diff options
author | Max <mparisi@stevens.edu> | 2020-10-06 13:28:30 -0400 |
---|---|---|
committer | Max <mparisi@stevens.edu> | 2020-10-06 13:28:30 -0400 |
commit | e4b6a9439145bc17deda9fb830172087119ae51e (patch) | |
tree | 09ee82ce757ea85f4adfc00577e0641d84f399a3 /asm/SDK | |
parent | 6a518c5528783d7ab0f93a36aab5738aed1e8fbb (diff) |
split gap_conn, gap_utils, hcicmds, hidd_api, hidd_conn, hidd_mgmt, hidd_pm, hidh_api
Diffstat (limited to 'asm/SDK')
-rw-r--r-- | asm/SDK/BTE/bta_dm_act.s | 2 | ||||
-rw-r--r-- | asm/SDK/BTE/bta_hh_act.s | 38 | ||||
-rw-r--r-- | asm/SDK/BTE/bte_init.s | 4 | ||||
-rw-r--r-- | asm/SDK/BTE/btm_acl.s | 36 | ||||
-rw-r--r-- | asm/SDK/BTE/btm_devctl.s | 64 | ||||
-rw-r--r-- | asm/SDK/BTE/btm_inq.s | 34 | ||||
-rw-r--r-- | asm/SDK/BTE/btm_pm.s | 16 | ||||
-rw-r--r-- | asm/SDK/BTE/btm_sco.s | 18 | ||||
-rw-r--r-- | asm/SDK/BTE/btm_sec.s | 70 | ||||
-rw-r--r-- | asm/SDK/BTE/btu_hcif.s | 2 | ||||
-rw-r--r-- | asm/SDK/BTE/gap_api.s | 10 | ||||
-rw-r--r-- | asm/SDK/BTE/gap_conn.s | 822 | ||||
-rw-r--r-- | asm/SDK/BTE/gap_utils.s | 441 | ||||
-rw-r--r-- | asm/SDK/BTE/hcicmds.s | 2804 | ||||
-rw-r--r-- | asm/SDK/BTE/hidd_api.s | 32 | ||||
-rw-r--r-- | asm/SDK/BTE/hidd_conn.s | 58 | ||||
-rw-r--r-- | asm/SDK/BTE/hidd_mgmt.s | 60 | ||||
-rw-r--r-- | asm/SDK/BTE/hidd_pm.s | 253 | ||||
-rw-r--r-- | asm/SDK/BTE/hidh_api.s | 981 |
19 files changed, 5598 insertions, 147 deletions
diff --git a/asm/SDK/BTE/bta_dm_act.s b/asm/SDK/BTE/bta_dm_act.s index 827568f..c930a03 100644 --- a/asm/SDK/BTE/bta_dm_act.s +++ b/asm/SDK/BTE/bta_dm_act.s @@ -2513,7 +2513,7 @@ bta_dm_send_hci_reset: /* 802C0000 002BBC60 2C 03 00 00 */ cmpwi r3, 0
/* 802C0004 002BBC64 41 82 00 0C */ beq lbl_802C0010
/* 802C0008 002BBC68 38 80 00 00 */ li r4, 0
-/* 802C000C 002BBC6C 48 01 19 35 */ bl func_802D1940
+/* 802C000C 002BBC6C 48 01 19 35 */ bl btsnd_hcic_write_scan_enable
lbl_802C0010:
/* 802C0010 002BBC70 3C 60 80 2C */ lis r3, bta_dm_reset_complete@ha
/* 802C0014 002BBC74 38 63 FF D8 */ addi r3, r3, bta_dm_reset_complete@l
diff --git a/asm/SDK/BTE/bta_hh_act.s b/asm/SDK/BTE/bta_hh_act.s index 15b83ed..9a55aea 100644 --- a/asm/SDK/BTE/bta_hh_act.s +++ b/asm/SDK/BTE/bta_hh_act.s @@ -13,7 +13,7 @@ bta_hh_api_enable: /* 802C102C 002BCC8C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802C1030 002BCC90 7C 7D 1B 78 */ mr r29, r3
/* 802C1034 002BCC94 98 01 00 08 */ stb r0, 8(r1)
-/* 802C1038 002BCC98 48 01 1F 51 */ bl func_802D2F88
+/* 802C1038 002BCC98 48 01 1F 51 */ bl HID_HostInit
/* 802C103C 002BCC9C 3F E0 80 57 */ lis r31, lbl_80568948@ha
/* 802C1040 002BCCA0 38 80 00 00 */ li r4, 0
/* 802C1044 002BCCA4 38 7F 89 48 */ addi r3, r31, lbl_80568948@l
@@ -21,10 +21,10 @@ bta_hh_api_enable: /* 802C104C 002BCCAC 4B D4 30 B9 */ bl memset
/* 802C1050 002BCCB0 88 9D 00 08 */ lbz r4, 8(r29)
/* 802C1054 002BCCB4 38 6D 8A 30 */ addi r3, r13, lbl_8063DCF0-_SDA_BASE_
-/* 802C1058 002BCCB8 48 01 25 71 */ bl func_802D35C8
+/* 802C1058 002BCCB8 48 01 25 71 */ bl HID_HostSetSecurityLevel
/* 802C105C 002BCCBC 3C 60 80 2C */ lis r3, bta_hh_cback@ha
/* 802C1060 002BCCC0 38 63 24 C4 */ addi r3, r3, bta_hh_cback@l
-/* 802C1064 002BCCC4 48 01 1F 69 */ bl func_802D2FCC
+/* 802C1064 002BCCC4 48 01 1F 69 */ bl HID_HostRegister
/* 802C1068 002BCCC8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C106C 002BCCCC 40 82 00 E4 */ bne lbl_802C1150
/* 802C1070 002BCCD0 80 9D 00 30 */ lwz r4, 0x30(r29)
@@ -117,7 +117,7 @@ bta_hh_api_disable: /* 802C11B8 002BCE18 40 82 00 80 */ bne lbl_802C1238
/* 802C11BC 002BCE1C 38 00 00 00 */ li r0, 0
/* 802C11C0 002BCE20 98 01 00 08 */ stb r0, 8(r1)
-/* 802C11C4 002BCE24 48 01 1E 85 */ bl func_802D3048
+/* 802C11C4 002BCE24 48 01 1E 85 */ bl HID_HostDeregister
/* 802C11C8 002BCE28 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C11CC 002BCE2C 41 82 00 0C */ beq lbl_802C11D8
/* 802C11D0 002BCE30 38 00 00 06 */ li r0, 6
@@ -183,7 +183,7 @@ bta_hh_disc_cmpl: /* 802C129C 002BCEFC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802C12A0 002BCF00 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802C12A4 002BCF04 98 01 00 08 */ stb r0, 8(r1)
-/* 802C12A8 002BCF08 48 01 1D A1 */ bl func_802D3048
+/* 802C12A8 002BCF08 48 01 1D A1 */ bl HID_HostDeregister
/* 802C12AC 002BCF0C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C12B0 002BCF10 41 82 00 0C */ beq lbl_802C12BC
/* 802C12B4 002BCF14 38 00 00 06 */ li r0, 6
@@ -263,7 +263,7 @@ lbl_802C13A4: /* 802C13C4 002BD024 38 7F 00 08 */ addi r3, r31, 8
/* 802C13C8 002BD028 57 A4 04 3E */ clrlwi r4, r29, 0x10
/* 802C13CC 002BD02C 38 A1 00 09 */ addi r5, r1, 9
-/* 802C13D0 002BD030 48 01 1D 5D */ bl func_802D312C
+/* 802C13D0 002BD030 48 01 1D 5D */ bl HID_HostAddDev
/* 802C13D4 002BD034 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C13D8 002BD038 98 61 00 08 */ stb r3, 8(r1)
/* 802C13DC 002BD03C 40 82 00 38 */ bne lbl_802C1414
@@ -339,7 +339,7 @@ lbl_802C14CC: /* 802C14D8 002BD138 A0 9F 00 0E */ lhz r4, 0xe(r31)
/* 802C14DC 002BD13C 38 7F 00 08 */ addi r3, r31, 8
/* 802C14E0 002BD140 38 A1 00 08 */ addi r5, r1, 8
-/* 802C14E4 002BD144 48 01 1C 49 */ bl func_802D312C
+/* 802C14E4 002BD144 48 01 1C 49 */ bl HID_HostAddDev
/* 802C14E8 002BD148 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C14EC 002BD14C 98 61 00 09 */ stb r3, 9(r1)
/* 802C14F0 002BD150 40 82 00 38 */ bne lbl_802C1528
@@ -379,7 +379,7 @@ lbl_802C153C: /* 802C1570 002BD1D0 38 7D 00 08 */ addi r3, r29, 8
/* 802C1574 002BD1D4 38 C6 13 30 */ addi r6, r6, bta_hh_sdp_cback@l
/* 802C1578 002BD1D8 A0 A5 00 08 */ lhz r5, 8(r5)
-/* 802C157C 002BD1DC 48 01 14 F5 */ bl func_802D2A70
+/* 802C157C 002BD1DC 48 01 14 F5 */ bl HID_HostGetSDPRecord
/* 802C1580 002BD1E0 54 65 06 3F */ clrlwi. r5, r3, 0x18
/* 802C1584 002BD1E4 98 61 00 09 */ stb r3, 9(r1)
/* 802C1588 002BD1E8 41 82 00 38 */ beq lbl_802C15C0
@@ -449,9 +449,9 @@ lbl_802C1638: /* 802C1670 002BD2D0 40 82 00 4C */ bne lbl_802C16BC
/* 802C1674 002BD2D4 88 9D 00 14 */ lbz r4, 0x14(r29)
/* 802C1678 002BD2D8 38 6D 8A 30 */ addi r3, r13, lbl_8063DCF0-_SDA_BASE_
-/* 802C167C 002BD2DC 48 01 1F 4D */ bl func_802D35C8
+/* 802C167C 002BD2DC 48 01 1F 4D */ bl HID_HostSetSecurityLevel
/* 802C1680 002BD2E0 88 7D 00 16 */ lbz r3, 0x16(r29)
-/* 802C1684 002BD2E4 48 01 1D 01 */ bl func_802D3384
+/* 802C1684 002BD2E4 48 01 1D 01 */ bl HID_HostOpenDev
/* 802C1688 002BD2E8 54 65 06 3F */ clrlwi. r5, r3, 0x18
/* 802C168C 002BD2EC 7C 7F 1B 78 */ mr r31, r3
/* 802C1690 002BD2F0 41 82 00 3C */ beq lbl_802C16CC
@@ -464,7 +464,7 @@ lbl_802C1638: /* 802C16AC 002BD30C 4B FF B8 7D */ bl LogMsg_1
lbl_802C16B0:
/* 802C16B0 002BD310 88 7D 00 16 */ lbz r3, 0x16(r29)
-/* 802C16B4 002BD314 48 01 1C 09 */ bl func_802D32BC
+/* 802C16B4 002BD314 48 01 1C 09 */ bl HID_HostRemoveDev
/* 802C16B8 002BD318 48 00 00 14 */ b lbl_802C16CC
lbl_802C16BC:
/* 802C16BC 002BD31C 7F A3 EB 78 */ mr r3, r29
@@ -529,7 +529,7 @@ lbl_802C1784: /* 802C1784 002BD3E4 38 00 00 06 */ li r0, 6
/* 802C1788 002BD3E8 98 61 00 09 */ stb r3, 9(r1)
/* 802C178C 002BD3EC 98 01 00 08 */ stb r0, 8(r1)
-/* 802C1790 002BD3F0 48 01 1D 99 */ bl func_802D3528
+/* 802C1790 002BD3F0 48 01 1D 99 */ bl HID_HostCloseDev
/* 802C1794 002BD3F4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C1798 002BD3F8 41 82 00 20 */ beq lbl_802C17B8
/* 802C179C 002BD3FC 3C A0 80 57 */ lis r5, lbl_80568948@ha
@@ -591,7 +591,7 @@ lbl_802C17FC: /* 802C1868 002BD4C8 38 C0 00 00 */ li r6, 0
/* 802C186C 002BD4CC 38 E0 00 00 */ li r7, 0
/* 802C1870 002BD4D0 39 00 00 00 */ li r8, 0
-/* 802C1874 002BD4D4 48 01 1B 75 */ bl func_802D33E8
+/* 802C1874 002BD4D4 48 01 1B 75 */ bl HID_HostWriteDev
/* 802C1878 002BD4D8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C187C 002BD4DC 98 61 00 0E */ stb r3, 0xe(r1)
/* 802C1880 002BD4E0 41 82 00 24 */ beq lbl_802C18A4
@@ -1055,7 +1055,7 @@ lbl_802C1EE4: /* 802C1EEC 002BDB4C 38 9F 00 08 */ addi r4, r31, 8
/* 802C1EF0 002BDB50 4B FF B6 71 */ bl bdcpy
/* 802C1EF4 002BDB54 88 7F 00 16 */ lbz r3, 0x16(r31)
-/* 802C1EF8 002BDB58 48 01 16 31 */ bl func_802D3528
+/* 802C1EF8 002BDB58 48 01 16 31 */ bl HID_HostCloseDev
/* 802C1EFC 002BDB5C 3C A0 80 57 */ lis r5, lbl_80568948@ha
/* 802C1F00 002BDB60 38 81 00 10 */ addi r4, r1, 0x10
/* 802C1F04 002BDB64 38 A5 89 48 */ addi r5, r5, lbl_80568948@l
@@ -1097,7 +1097,7 @@ lbl_802C1F6C: /* 802C1F8C 002BDBEC 2C 00 00 00 */ cmpwi r0, 0
/* 802C1F90 002BDBF0 41 82 00 14 */ beq lbl_802C1FA4
/* 802C1F94 002BDBF4 88 7F 00 16 */ lbz r3, 0x16(r31)
-/* 802C1F98 002BDBF8 48 01 13 25 */ bl func_802D32BC
+/* 802C1F98 002BDBF8 48 01 13 25 */ bl HID_HostRemoveDev
/* 802C1F9C 002BDBFC 7F E3 FB 78 */ mr r3, r31
/* 802C1FA0 002BDC00 48 00 12 1D */ bl bta_hh_clean_up_kdev
lbl_802C1FA4:
@@ -1114,7 +1114,7 @@ lbl_802C1FA4: /* 802C1FCC 002BDC2C 2C 00 00 00 */ cmpwi r0, 0
/* 802C1FD0 002BDC30 41 82 00 78 */ beq lbl_802C2048
/* 802C1FD4 002BDC34 98 81 00 08 */ stb r4, 8(r1)
-/* 802C1FD8 002BDC38 48 01 10 71 */ bl func_802D3048
+/* 802C1FD8 002BDC38 48 01 10 71 */ bl HID_HostDeregister
/* 802C1FDC 002BDC3C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C1FE0 002BDC40 41 82 00 0C */ beq lbl_802C1FEC
/* 802C1FE4 002BDC44 38 00 00 06 */ li r0, 6
@@ -1190,7 +1190,7 @@ lbl_802C20C4: /* 802C20DC 002BDD3C A0 9F 00 0E */ lhz r4, 0xe(r31)
/* 802C20E0 002BDD40 38 7F 00 08 */ addi r3, r31, 8
/* 802C20E4 002BDD44 38 A1 00 08 */ addi r5, r1, 8
-/* 802C20E8 002BDD48 48 01 10 45 */ bl func_802D312C
+/* 802C20E8 002BDD48 48 01 10 45 */ bl HID_HostAddDev
/* 802C20EC 002BDD4C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C20F0 002BDD50 40 82 00 54 */ bne lbl_802C2144
/* 802C20F4 002BDD54 88 81 00 08 */ lbz r4, 8(r1)
@@ -1227,7 +1227,7 @@ lbl_802C214C: /* 802C2164 002BDDC4 28 00 00 03 */ cmplwi r0, 3
/* 802C2168 002BDDC8 41 82 00 44 */ beq lbl_802C21AC
/* 802C216C 002BDDCC 88 61 00 17 */ lbz r3, 0x17(r1)
-/* 802C2170 002BDDD0 48 01 11 4D */ bl func_802D32BC
+/* 802C2170 002BDDD0 48 01 11 4D */ bl HID_HostRemoveDev
/* 802C2174 002BDDD4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C2178 002BDDD8 40 82 00 34 */ bne lbl_802C21AC
/* 802C217C 002BDDDC 38 00 00 00 */ li r0, 0
@@ -1355,7 +1355,7 @@ bta_hh_write_dev_act: /* 802C233C 002BDF9C A0 DE 00 0C */ lhz r6, 0xc(r30)
/* 802C2340 002BDFA0 88 FE 00 0A */ lbz r7, 0xa(r30)
/* 802C2344 002BDFA4 81 1E 00 10 */ lwz r8, 0x10(r30)
-/* 802C2348 002BDFA8 48 01 10 A1 */ bl func_802D33E8
+/* 802C2348 002BDFA8 48 01 10 A1 */ bl HID_HostWriteDev
/* 802C234C 002BDFAC 54 65 06 3F */ clrlwi. r5, r3, 0x18
/* 802C2350 002BDFB0 41 82 00 88 */ beq lbl_802C23D8
/* 802C2354 002BDFB4 88 0D AE F8 */ lbz r0, lbl_806401B8-_SDA_BASE_(r13)
diff --git a/asm/SDK/BTE/bte_init.s b/asm/SDK/BTE/bte_init.s index 05d83ef..a3b3b5d 100644 --- a/asm/SDK/BTE/bte_init.s +++ b/asm/SDK/BTE/bte_init.s @@ -9,8 +9,8 @@ BTE_InitStack: /* 802BCE30 002B8A90 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BCE34 002B8A94 48 01 EB 25 */ bl func_802DB958
/* 802BCE38 002B8A98 48 01 1D F9 */ bl GAP_Init
-/* 802BCE3C 002B8A9C 48 01 56 C9 */ bl func_802D2504
-/* 802BCE40 002B8AA0 48 01 61 49 */ bl func_802D2F88
+/* 802BCE3C 002B8A9C 48 01 56 C9 */ bl HID_DevInit
+/* 802BCE40 002B8AA0 48 01 61 49 */ bl HID_HostInit
/* 802BCE44 002B8AA4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BCE48 002B8AA8 7C 08 03 A6 */ mtlr r0
/* 802BCE4C 002B8AAC 38 21 00 10 */ addi r1, r1, 0x10
diff --git a/asm/SDK/BTE/btm_acl.s b/asm/SDK/BTE/btm_acl.s index 604790d..ade2302 100644 --- a/asm/SDK/BTE/btm_acl.s +++ b/asm/SDK/BTE/btm_acl.s @@ -146,9 +146,9 @@ lbl_802C3600: /* 802C3614 002BF274 4B D4 09 ED */ bl memcpy
lbl_802C3618:
/* 802C3618 002BF278 A0 7F 00 00 */ lhz r3, 0(r31)
-/* 802C361C 002BF27C 48 00 D5 11 */ bl func_802D0B2C
+/* 802C361C 002BF27C 48 00 D5 11 */ bl btsnd_hcic_read_rmt_clk_offset
/* 802C3620 002BF280 A0 7F 00 00 */ lhz r3, 0(r31)
-/* 802C3624 002BF284 48 00 D4 8D */ bl func_802D0AB0
+/* 802C3624 002BF284 48 00 D4 8D */ bl btsnd_hcic_rmt_ver_req
/* 802C3628 002BF288 7F 63 DB 78 */ mr r3, r27
/* 802C362C 002BF28C 48 00 1F 39 */ bl btm_find_dev_by_handle
/* 802C3630 002BF290 2C 03 00 00 */ cmpwi r3, 0
@@ -194,7 +194,7 @@ lbl_802C369C: lbl_802C36C8:
/* 802C36C8 002BF328 A0 7F 00 00 */ lhz r3, 0(r31)
/* 802C36CC 002BF32C 57 C4 04 3E */ clrlwi r4, r30, 0x10
-/* 802C36D0 002BF330 48 00 D0 55 */ bl func_802D0724
+/* 802C36D0 002BF330 48 00 D0 55 */ bl btsnd_hcic_change_conn_type
/* 802C36D4 002BF334 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C36D8 002BF338 41 82 00 08 */ beq lbl_802C36E0
/* 802C36DC 002BF33C B3 DF 00 02 */ sth r30, 2(r31)
@@ -239,7 +239,7 @@ lbl_802C3750: /* 802C3764 002BF3C4 40 82 00 10 */ bne lbl_802C3774
/* 802C3768 002BF3C8 A0 7E 00 00 */ lhz r3, 0(r30)
/* 802C376C 002BF3CC 7F 84 E3 78 */ mr r4, r28
-/* 802C3770 002BF3D0 48 00 E4 B5 */ bl func_802D1C24
+/* 802C3770 002BF3D0 48 00 E4 B5 */ bl btsnd_hcic_write_link_super_tout
lbl_802C3774:
/* 802C3774 002BF3D4 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C3778 002BF3D8 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
@@ -259,7 +259,7 @@ lbl_802C37A8: /* 802C37AC 002BF40C 42 00 FE 9C */ bdnz lbl_802C3648
lbl_802C37B0:
/* 802C37B0 002BF410 A0 7F 00 00 */ lhz r3, 0(r31)
-/* 802C37B4 002BF414 48 00 D2 81 */ bl func_802D0A34
+/* 802C37B4 002BF414 48 00 D2 81 */ bl btsnd_hcic_rmt_features_req
/* 802C37B8 002BF418 48 00 00 10 */ b lbl_802C37C8
lbl_802C37BC:
/* 802C37BC 002BF41C 38 84 00 01 */ addi r4, r4, 1
@@ -476,7 +476,7 @@ lbl_802C3A80: /* 802C3A98 002BF6F8 41 82 00 2C */ beq lbl_802C3AC4
/* 802C3A9C 002BF6FC A0 7F 00 00 */ lhz r3, 0(r31)
/* 802C3AA0 002BF700 38 80 00 00 */ li r4, 0
-/* 802C3AA4 002BF704 48 00 CD 8D */ bl func_802D0830
+/* 802C3AA4 002BF704 48 00 CD 8D */ bl btsnd_hcic_set_conn_encrypt
/* 802C3AA8 002BF708 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C3AAC 002BF70C 40 82 00 0C */ bne lbl_802C3AB8
/* 802C3AB0 002BF710 38 60 00 03 */ li r3, 3
@@ -488,7 +488,7 @@ lbl_802C3AB8: lbl_802C3AC4:
/* 802C3AC4 002BF724 7F 83 E3 78 */ mr r3, r28
/* 802C3AC8 002BF728 7F A4 EB 78 */ mr r4, r29
-/* 802C3ACC 002BF72C 48 00 D6 5D */ bl func_802D1128
+/* 802C3ACC 002BF72C 48 00 D6 5D */ bl btsnd_hcic_switch_role
/* 802C3AD0 002BF730 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C3AD4 002BF734 40 82 00 0C */ bne lbl_802C3AE0
/* 802C3AD8 002BF738 38 60 00 03 */ li r3, 3
@@ -583,7 +583,7 @@ lbl_802C3C00: /* 802C3C04 002BF864 38 7D 00 3C */ addi r3, r29, 0x3c
/* 802C3C08 002BF868 7C 00 00 34 */ cntlzw r0, r0
/* 802C3C0C 002BF86C 54 04 DE 3E */ rlwinm r4, r0, 0x1b, 0x18, 0x1f
-/* 802C3C10 002BF870 48 00 D5 19 */ bl func_802D1128
+/* 802C3C10 002BF870 48 00 D5 19 */ bl btsnd_hcic_switch_role
/* 802C3C14 002BF874 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C3C18 002BF878 40 82 00 60 */ bne lbl_802C3C78
/* 802C3C1C 002BF87C 3B C0 00 00 */ li r30, 0
@@ -737,7 +737,7 @@ lbl_802C3E38: /* 802C3E3C 002BFA9C 41 82 00 24 */ beq lbl_802C3E60
/* 802C3E40 002BFAA0 A0 7F 00 00 */ lhz r3, 0(r31)
/* 802C3E44 002BFAA4 A0 9D 00 00 */ lhz r4, 0(r29)
-/* 802C3E48 002BFAA8 48 00 D3 91 */ bl func_802D11D8
+/* 802C3E48 002BFAA8 48 00 D3 91 */ bl btsnd_hcic_write_policy_set
/* 802C3E4C 002BFAAC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C3E50 002BFAB0 38 60 00 03 */ li r3, 3
/* 802C3E54 002BFAB4 41 82 00 10 */ beq lbl_802C3E64
@@ -956,7 +956,7 @@ lbl_802C411C: lbl_802C4148:
/* 802C4148 002BFDA8 A0 7F 00 00 */ lhz r3, 0(r31)
/* 802C414C 002BFDAC 57 C4 04 3E */ clrlwi r4, r30, 0x10
-/* 802C4150 002BFDB0 48 00 C5 D5 */ bl func_802D0724
+/* 802C4150 002BFDB0 48 00 C5 D5 */ bl btsnd_hcic_change_conn_type
/* 802C4154 002BFDB4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C4158 002BFDB8 41 82 00 08 */ beq lbl_802C4160
/* 802C415C 002BFDBC B3 DF 00 02 */ sth r30, 2(r31)
@@ -1001,7 +1001,7 @@ lbl_802C41D0: /* 802C41E4 002BFE44 40 82 00 10 */ bne lbl_802C41F4
/* 802C41E8 002BFE48 A0 7D 00 00 */ lhz r3, 0(r29)
/* 802C41EC 002BFE4C 7F 84 E3 78 */ mr r4, r28
-/* 802C41F0 002BFE50 48 00 DA 35 */ bl func_802D1C24
+/* 802C41F0 002BFE50 48 00 DA 35 */ bl btsnd_hcic_write_link_super_tout
lbl_802C41F4:
/* 802C41F4 002BFE54 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C41F8 002BFE58 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
@@ -1318,14 +1318,14 @@ lbl_802C45F4: /* 802C4608 002C0268 40 82 00 10 */ bne lbl_802C4618
/* 802C460C 002C026C A0 7B 00 00 */ lhz r3, 0(r27)
/* 802C4610 002C0270 7F C4 F3 78 */ mr r4, r30
-/* 802C4614 002C0274 48 00 D6 11 */ bl func_802D1C24
+/* 802C4614 002C0274 48 00 D6 11 */ bl btsnd_hcic_write_link_super_tout
lbl_802C4618:
/* 802C4618 002C0278 88 1D 01 1B */ lbz r0, 0x11b(r29)
/* 802C461C 002C027C 28 00 00 03 */ cmplwi r0, 3
/* 802C4620 002C0280 40 82 00 24 */ bne lbl_802C4644
/* 802C4624 002C0284 A0 7D 00 00 */ lhz r3, 0(r29)
/* 802C4628 002C0288 38 80 00 01 */ li r4, 1
-/* 802C462C 002C028C 48 00 C2 05 */ bl func_802D0830
+/* 802C462C 002C028C 48 00 C2 05 */ bl btsnd_hcic_set_conn_encrypt
/* 802C4630 002C0290 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C4634 002C0294 41 82 00 10 */ beq lbl_802C4644
/* 802C4638 002C0298 38 00 00 04 */ li r0, 4
@@ -1672,7 +1672,7 @@ lbl_802C4AAC: /* 802C4AC8 002C0728 4B FF 8A 15 */ bl btu_start_timer
/* 802C4ACC 002C072C 93 BF 05 E0 */ stw r29, 0x5e0(r31)
/* 802C4AD0 002C0730 A0 7E 00 00 */ lhz r3, 0(r30)
-/* 802C4AD4 002C0734 48 00 D4 15 */ bl func_802D1EE8
+/* 802C4AD4 002C0734 48 00 D4 15 */ bl btsnd_hcic_read_rssi
/* 802C4AD8 002C0738 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C4ADC 002C073C 40 82 00 1C */ bne lbl_802C4AF8
/* 802C4AE0 002C0740 38 00 00 00 */ li r0, 0
@@ -1762,7 +1762,7 @@ lbl_802C4BE8: /* 802C4C04 002C0864 4B FF 88 D9 */ bl btu_start_timer
/* 802C4C08 002C0868 93 BF 05 FC */ stw r29, 0x5fc(r31)
/* 802C4C0C 002C086C A0 7E 00 00 */ lhz r3, 0(r30)
-/* 802C4C10 002C0870 48 00 D2 5D */ bl func_802D1E6C
+/* 802C4C10 002C0870 48 00 D2 5D */ bl btsnd_hcic_get_link_quality
/* 802C4C14 002C0874 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C4C18 002C0878 40 82 00 1C */ bne lbl_802C4C34
/* 802C4C1C 002C087C 38 7F 05 E4 */ addi r3, r31, 0x5e4
@@ -1986,7 +1986,7 @@ lbl_802C4F0C: lbl_802C4F14:
/* 802C4F14 002C0B74 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 802C4F18 002C0B78 38 80 00 13 */ li r4, 0x13
-/* 802C4F1C 002C0B7C 48 00 B1 75 */ bl func_802D0090
+/* 802C4F1C 002C0B7C 48 00 B1 75 */ bl btsnd_hcic_disconnect
/* 802C4F20 002C0B80 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C4F24 002C0B84 40 82 00 0C */ bne lbl_802C4F30
/* 802C4F28 002C0B88 38 60 00 03 */ li r3, 3
@@ -2061,7 +2061,7 @@ lbl_802C4FFC: lbl_802C5018:
/* 802C5018 002C0C78 A0 7C 00 00 */ lhz r3, 0(r28)
/* 802C501C 002C0C7C 57 24 04 3E */ clrlwi r4, r25, 0x10
-/* 802C5020 002C0C80 48 00 B7 05 */ bl func_802D0724
+/* 802C5020 002C0C80 48 00 B7 05 */ bl btsnd_hcic_change_conn_type
/* 802C5024 002C0C84 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C5028 002C0C88 41 82 00 08 */ beq lbl_802C5030
/* 802C502C 002C0C8C B3 3C 00 02 */ sth r25, 2(r28)
@@ -2138,7 +2138,7 @@ lbl_802C5110: lbl_802C512C:
/* 802C512C 002C0D8C A0 7C 00 00 */ lhz r3, 0(r28)
/* 802C5130 002C0D90 57 44 04 3E */ clrlwi r4, r26, 0x10
-/* 802C5134 002C0D94 48 00 B5 F1 */ bl func_802D0724
+/* 802C5134 002C0D94 48 00 B5 F1 */ bl btsnd_hcic_change_conn_type
/* 802C5138 002C0D98 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C513C 002C0D9C 41 82 00 08 */ beq lbl_802C5144
/* 802C5140 002C0DA0 B3 5C 00 02 */ sth r26, 2(r28)
diff --git a/asm/SDK/BTE/btm_devctl.s b/asm/SDK/BTE/btm_devctl.s index 27adef1..4bd8cc5 100644 --- a/asm/SDK/BTE/btm_devctl.s +++ b/asm/SDK/BTE/btm_devctl.s @@ -38,7 +38,7 @@ btm_dev_init: /* 802C58B8 002C1518 98 DF 06 4E */ stb r6, 0x64e(r31)
/* 802C58BC 002C151C 98 1F 06 4F */ stb r0, 0x64f(r31)
/* 802C58C0 002C1520 4B FF 7C 1D */ bl btu_start_timer
-/* 802C58C4 002C1524 48 00 B9 A9 */ bl func_802D126C
+/* 802C58C4 002C1524 48 00 B9 A9 */ bl btsnd_hcic_reset
/* 802C58C8 002C1528 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C58CC 002C152C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C58D0 002C1530 7C 08 03 A6 */ mtlr r0
@@ -124,7 +124,7 @@ lbl_802C59C0: /* 802C59E8 002C1648 98 DF 06 4E */ stb r6, 0x64e(r31)
/* 802C59EC 002C164C 98 1F 06 4F */ stb r0, 0x64f(r31)
/* 802C59F0 002C1650 4B FF 7A ED */ bl btu_start_timer
-/* 802C59F4 002C1654 48 00 B8 79 */ bl func_802D126C
+/* 802C59F4 002C1654 48 00 B8 79 */ bl btsnd_hcic_reset
/* 802C59F8 002C1658 81 9F 05 68 */ lwz r12, 0x568(r31)
/* 802C59FC 002C165C 2C 0C 00 00 */ cmpwi r12, 0
/* 802C5A00 002C1660 41 82 00 10 */ beq lbl_802C5A10
@@ -171,7 +171,7 @@ lbl_802C5A68: /* 802C5A90 002C16F0 98 DF 06 4E */ stb r6, 0x64e(r31)
/* 802C5A94 002C16F4 98 1F 06 4F */ stb r0, 0x64f(r31)
/* 802C5A98 002C16F8 4B FF 7A 45 */ bl btu_start_timer
-/* 802C5A9C 002C16FC 48 00 B7 D1 */ bl func_802D126C
+/* 802C5A9C 002C16FC 48 00 B7 D1 */ bl btsnd_hcic_reset
/* 802C5AA0 002C1700 81 9F 05 68 */ lwz r12, 0x568(r31)
/* 802C5AA4 002C1704 2C 0C 00 00 */ cmpwi r12, 0
/* 802C5AA8 002C1708 41 82 00 10 */ beq lbl_802C5AB8
@@ -244,7 +244,7 @@ lbl_802C5B70: lbl_802C5B90:
/* 802C5B90 002C17F0 7F C3 F3 78 */ mr r3, r30
/* 802C5B94 002C17F4 7F E4 FB 78 */ mr r4, r31
-/* 802C5B98 002C17F8 48 00 C3 C9 */ bl func_802D1F60
+/* 802C5B98 002C17F8 48 00 C3 C9 */ bl btsnd_hcic_set_afh_channels
/* 802C5B9C 002C17FC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C5BA0 002C1800 41 82 00 18 */ beq lbl_802C5BB8
/* 802C5BA4 002C1804 3C 60 80 57 */ lis r3, lbl_80568B78@ha
@@ -298,7 +298,7 @@ lbl_802C5C30: /* 802C5C44 002C18A4 38 A0 00 04 */ li r5, 4
/* 802C5C48 002C18A8 98 06 06 4F */ stb r0, 0x64f(r6)
/* 802C5C4C 002C18AC 4B FF 78 91 */ bl btu_start_timer
-/* 802C5C50 002C18B0 48 00 B6 1D */ bl func_802D126C
+/* 802C5C50 002C18B0 48 00 B6 1D */ bl btsnd_hcic_reset
/* 802C5C54 002C18B4 48 00 02 08 */ b lbl_802C5E5C
lbl_802C5C58:
/* 802C5C58 002C18B8 38 00 00 04 */ li r0, 4
@@ -309,7 +309,7 @@ lbl_802C5C58: /* 802C5C6C 002C18CC 98 06 06 4F */ stb r0, 0x64f(r6)
/* 802C5C70 002C18D0 98 06 06 4E */ stb r0, 0x64e(r6)
/* 802C5C74 002C18D4 4B FF 78 69 */ bl btu_start_timer
-/* 802C5C78 002C18D8 48 00 B5 F5 */ bl func_802D126C
+/* 802C5C78 002C18D8 48 00 B5 F5 */ bl btsnd_hcic_reset
/* 802C5C7C 002C18DC 48 00 00 28 */ b lbl_802C5CA4
lbl_802C5C80:
/* 802C5C80 002C18E0 38 66 05 74 */ addi r3, r6, 0x574
@@ -320,7 +320,7 @@ lbl_802C5C80: /* 802C5C94 002C18F4 4B FF 3F B9 */ bl GKI_getpoolbuf
/* 802C5C98 002C18F8 2C 03 00 00 */ cmpwi r3, 0
/* 802C5C9C 002C18FC 41 82 00 08 */ beq lbl_802C5CA4
-/* 802C5CA0 002C1900 48 00 C1 45 */ bl func_802D1DE4
+/* 802C5CA0 002C1900 48 00 C1 45 */ bl btsnd_hcic_read_buffer_size
lbl_802C5CA4:
/* 802C5CA4 002C1904 3F E0 80 57 */ lis r31, lbl_80568B78@ha
/* 802C5CA8 002C1908 38 A0 00 03 */ li r5, 3
@@ -338,7 +338,7 @@ lbl_802C5CA4: /* 802C5CD8 002C1938 2C 03 00 00 */ cmpwi r3, 0
/* 802C5CDC 002C193C 41 82 00 0C */ beq lbl_802C5CE8
/* 802C5CE0 002C1940 38 9F 06 48 */ addi r4, r31, 0x648
-/* 802C5CE4 002C1944 48 00 BD FD */ bl func_802D1AE0
+/* 802C5CE4 002C1944 48 00 BD FD */ bl btsnd_hcic_write_dev_class
lbl_802C5CE8:
/* 802C5CE8 002C1948 3C 00 80 57 */ lis r0, 0x8057
/* 802C5CEC 002C194C 37 E0 8B 78 */ addic. r31, r0, -29832
@@ -366,7 +366,7 @@ lbl_802C5CE8: lbl_802C5D44:
/* 802C5D44 002C19A4 7F C3 F3 78 */ mr r3, r30
/* 802C5D48 002C19A8 7F E4 FB 78 */ mr r4, r31
-/* 802C5D4C 002C19AC 48 00 BA 7D */ bl func_802D17C8
+/* 802C5D4C 002C19AC 48 00 BA 7D */ bl btsnd_hcic_change_name
lbl_802C5D50:
/* 802C5D50 002C19B0 3C A0 80 57 */ lis r5, lbl_80568B78@ha
/* 802C5D54 002C19B4 38 A5 8B 78 */ addi r5, r5, lbl_80568B78@l
@@ -389,7 +389,7 @@ lbl_802C5D6C: /* 802C5D94 002C19F4 38 A0 00 04 */ li r5, 4
/* 802C5D98 002C19F8 98 06 06 4F */ stb r0, 0x64f(r6)
/* 802C5D9C 002C19FC 4B FF 77 41 */ bl btu_start_timer
-/* 802C5DA0 002C1A00 48 00 B4 CD */ bl func_802D126C
+/* 802C5DA0 002C1A00 48 00 B4 CD */ bl btsnd_hcic_reset
/* 802C5DA4 002C1A04 48 00 00 B8 */ b lbl_802C5E5C
lbl_802C5DA8:
/* 802C5DA8 002C1A08 38 66 05 74 */ addi r3, r6, 0x574
@@ -400,7 +400,7 @@ lbl_802C5DA8: /* 802C5DBC 002C1A1C 4B FF 3E 91 */ bl GKI_getpoolbuf
/* 802C5DC0 002C1A20 2C 03 00 00 */ cmpwi r3, 0
/* 802C5DC4 002C1A24 41 82 00 98 */ beq lbl_802C5E5C
-/* 802C5DC8 002C1A28 48 00 C0 1D */ bl func_802D1DE4
+/* 802C5DC8 002C1A28 48 00 C0 1D */ bl btsnd_hcic_read_buffer_size
/* 802C5DCC 002C1A2C 48 00 00 90 */ b lbl_802C5E5C
lbl_802C5DD0:
/* 802C5DD0 002C1A30 88 66 06 4F */ lbz r3, 0x64f(r6)
@@ -416,15 +416,15 @@ lbl_802C5DD0: /* 802C5DF8 002C1A58 38 A0 00 04 */ li r5, 4
/* 802C5DFC 002C1A5C 98 06 06 4F */ stb r0, 0x64f(r6)
/* 802C5E00 002C1A60 4B FF 76 DD */ bl btu_start_timer
-/* 802C5E04 002C1A64 48 00 B4 69 */ bl func_802D126C
+/* 802C5E04 002C1A64 48 00 B4 69 */ bl btsnd_hcic_reset
/* 802C5E08 002C1A68 48 00 00 54 */ b lbl_802C5E5C
lbl_802C5E0C:
/* 802C5E0C 002C1A6C 38 66 05 74 */ addi r3, r6, 0x574
/* 802C5E10 002C1A70 38 80 00 01 */ li r4, 1
/* 802C5E14 002C1A74 38 A0 00 01 */ li r5, 1
/* 802C5E18 002C1A78 4B FF 76 C5 */ bl btu_start_timer
-/* 802C5E1C 002C1A7C 48 00 BF 0D */ bl func_802D1D28
-/* 802C5E20 002C1A80 48 00 BF ED */ bl func_802D1E0C
+/* 802C5E1C 002C1A7C 48 00 BF 0D */ bl btsnd_hcic_read_local_ver
+/* 802C5E20 002C1A80 48 00 BF ED */ bl btsnd_hcic_read_bd_addr
/* 802C5E24 002C1A84 48 00 33 0D */ bl btm_pm_reset
/* 802C5E28 002C1A88 48 00 00 34 */ b lbl_802C5E5C
lbl_802C5E2C:
@@ -499,7 +499,7 @@ lbl_802C5EDC: /* 802C5F24 002C1B84 98 9F 06 4E */ stb r4, 0x64e(r31)
/* 802C5F28 002C1B88 98 1F 06 4F */ stb r0, 0x64f(r31)
/* 802C5F2C 002C1B8C 4B FF 75 B1 */ bl btu_start_timer
-/* 802C5F30 002C1B90 48 00 B3 3D */ bl func_802D126C
+/* 802C5F30 002C1B90 48 00 B3 3D */ bl btsnd_hcic_reset
/* 802C5F34 002C1B94 48 00 00 28 */ b lbl_802C5F5C
lbl_802C5F38:
/* 802C5F38 002C1B98 38 7F 05 74 */ addi r3, r31, 0x574
@@ -510,7 +510,7 @@ lbl_802C5F38: /* 802C5F4C 002C1BAC 4B FF 3D 01 */ bl GKI_getpoolbuf
/* 802C5F50 002C1BB0 2C 03 00 00 */ cmpwi r3, 0
/* 802C5F54 002C1BB4 41 82 00 08 */ beq lbl_802C5F5C
-/* 802C5F58 002C1BB8 48 00 BE 8D */ bl func_802D1DE4
+/* 802C5F58 002C1BB8 48 00 BE 8D */ bl btsnd_hcic_read_buffer_size
lbl_802C5F5C:
/* 802C5F5C 002C1BBC 3F E0 80 57 */ lis r31, lbl_80568B78@ha
/* 802C5F60 002C1BC0 38 A0 00 03 */ li r5, 3
@@ -528,7 +528,7 @@ lbl_802C5F5C: /* 802C5F90 002C1BF0 2C 03 00 00 */ cmpwi r3, 0
/* 802C5F94 002C1BF4 41 82 00 0C */ beq lbl_802C5FA0
/* 802C5F98 002C1BF8 38 9F 06 48 */ addi r4, r31, 0x648
-/* 802C5F9C 002C1BFC 48 00 BB 45 */ bl func_802D1AE0
+/* 802C5F9C 002C1BFC 48 00 BB 45 */ bl btsnd_hcic_write_dev_class
lbl_802C5FA0:
/* 802C5FA0 002C1C00 3C 00 80 57 */ lis r0, 0x8057
/* 802C5FA4 002C1C04 37 E0 8B 78 */ addic. r31, r0, -29832
@@ -556,7 +556,7 @@ lbl_802C5FA0: lbl_802C5FFC:
/* 802C5FFC 002C1C5C 7F C3 F3 78 */ mr r3, r30
/* 802C6000 002C1C60 7F E4 FB 78 */ mr r4, r31
-/* 802C6004 002C1C64 48 00 B7 C5 */ bl func_802D17C8
+/* 802C6004 002C1C64 48 00 B7 C5 */ bl btsnd_hcic_change_name
lbl_802C6008:
/* 802C6008 002C1C68 3C A0 80 57 */ lis r5, lbl_80568B78@ha
/* 802C600C 002C1C6C 38 A5 8B 78 */ addi r5, r5, lbl_80568B78@l
@@ -600,7 +600,7 @@ btm_read_hci_buf_size_complete: /* 802C6094 002C1CF4 38 80 00 1E */ li r4, 0x1e
/* 802C6098 002C1CF8 38 A0 00 14 */ li r5, 0x14
/* 802C609C 002C1CFC 38 C0 00 0A */ li r6, 0xa
-/* 802C60A0 002C1D00 48 00 BA C9 */ bl func_802D1B68
+/* 802C60A0 002C1D00 48 00 BA C9 */ bl btsnd_hcic_set_host_buf_size
lbl_802C60A4:
/* 802C60A4 002C1D04 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C60A8 002C1D08 38 00 00 04 */ li r0, 4
@@ -612,15 +612,15 @@ lbl_802C60A4: /* 802C60C0 002C1D20 98 03 06 4F */ stb r0, 0x64f(r3)
/* 802C60C4 002C1D24 98 03 06 4E */ stb r0, 0x64e(r3)
/* 802C60C8 002C1D28 4B FF 74 15 */ bl btu_start_timer
-/* 802C60CC 002C1D2C 48 00 B1 A1 */ bl func_802D126C
+/* 802C60CC 002C1D2C 48 00 B1 A1 */ bl btsnd_hcic_reset
/* 802C60D0 002C1D30 48 00 00 20 */ b lbl_802C60F0
lbl_802C60D4:
/* 802C60D4 002C1D34 38 63 05 74 */ addi r3, r3, 0x574
/* 802C60D8 002C1D38 38 80 00 01 */ li r4, 1
/* 802C60DC 002C1D3C 38 A0 00 01 */ li r5, 1
/* 802C60E0 002C1D40 4B FF 73 FD */ bl btu_start_timer
-/* 802C60E4 002C1D44 48 00 BC 45 */ bl func_802D1D28
-/* 802C60E8 002C1D48 48 00 BD 25 */ bl func_802D1E0C
+/* 802C60E4 002C1D44 48 00 BC 45 */ bl btsnd_hcic_read_local_ver
+/* 802C60E8 002C1D48 48 00 BD 25 */ bl btsnd_hcic_read_bd_addr
/* 802C60EC 002C1D4C 48 00 30 45 */ bl btm_pm_reset
lbl_802C60F0:
/* 802C60F0 002C1D50 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -667,14 +667,14 @@ lbl_802C616C: /* 802C6184 002C1DE4 98 03 06 4F */ stb r0, 0x64f(r3)
/* 802C6188 002C1DE8 98 03 06 4E */ stb r0, 0x64e(r3)
/* 802C618C 002C1DEC 4B FF 73 51 */ bl btu_start_timer
-/* 802C6190 002C1DF0 48 00 B0 DD */ bl func_802D126C
+/* 802C6190 002C1DF0 48 00 B0 DD */ bl btsnd_hcic_reset
/* 802C6194 002C1DF4 48 00 00 18 */ b lbl_802C61AC
lbl_802C6198:
/* 802C6198 002C1DF8 38 63 05 74 */ addi r3, r3, 0x574
/* 802C619C 002C1DFC 38 80 00 01 */ li r4, 1
/* 802C61A0 002C1E00 38 A0 00 01 */ li r5, 1
/* 802C61A4 002C1E04 4B FF 73 39 */ bl btu_start_timer
-/* 802C61A8 002C1E08 48 00 BB E1 */ bl func_802D1D88
+/* 802C61A8 002C1E08 48 00 BB E1 */ bl btsnd_hcic_read_local_features
lbl_802C61AC:
/* 802C61AC 002C1E0C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C61B0 002C1E10 7C 08 03 A6 */ mtlr r0
@@ -995,7 +995,7 @@ lbl_802C6600: lbl_802C6620:
/* 802C6620 002C2280 7F 63 DB 78 */ mr r3, r27
/* 802C6624 002C2284 7F A4 EB 78 */ mr r4, r29
-/* 802C6628 002C2288 48 00 B9 39 */ bl func_802D1F60
+/* 802C6628 002C2288 48 00 B9 39 */ bl btsnd_hcic_set_afh_channels
/* 802C662C 002C228C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C6630 002C2290 41 82 00 14 */ beq lbl_802C6644
/* 802C6634 002C2294 3C 60 80 57 */ lis r3, lbl_80568B78@ha
@@ -1076,7 +1076,7 @@ lbl_802C6700: lbl_802C673C:
/* 802C673C 002C239C 7F E3 FB 78 */ mr r3, r31
/* 802C6740 002C23A0 7F C4 F3 78 */ mr r4, r30
-/* 802C6744 002C23A4 48 00 B0 85 */ bl func_802D17C8
+/* 802C6744 002C23A4 48 00 B0 85 */ bl btsnd_hcic_change_name
/* 802C6748 002C23A8 38 60 00 01 */ li r3, 1
/* 802C674C 002C23AC 48 00 00 08 */ b lbl_802C6754
lbl_802C6750:
@@ -1219,7 +1219,7 @@ lbl_802C6914: /* 802C691C 002C257C 2C 03 00 00 */ cmpwi r3, 0
/* 802C6920 002C2580 41 82 00 14 */ beq lbl_802C6934
/* 802C6924 002C2584 7F C4 F3 78 */ mr r4, r30
-/* 802C6928 002C2588 48 00 B1 B9 */ bl func_802D1AE0
+/* 802C6928 002C2588 48 00 B1 B9 */ bl btsnd_hcic_write_dev_class
/* 802C692C 002C258C 38 60 00 00 */ li r3, 0
/* 802C6930 002C2590 48 00 00 08 */ b lbl_802C6938
lbl_802C6934:
@@ -1310,7 +1310,7 @@ lbl_802C6A40: /* 802C6A40 002C26A0 7F 64 DB 78 */ mr r4, r27
/* 802C6A44 002C26A4 7F 85 E3 78 */ mr r5, r28
/* 802C6A48 002C26A8 7F A6 EB 78 */ mr r6, r29
-/* 802C6A4C 002C26AC 48 00 B9 C5 */ bl func_802D2410
+/* 802C6A4C 002C26AC 48 00 B9 C5 */ bl btsnd_hcic_vendor_spec_cmd
/* 802C6A50 002C26B0 2C 1E 00 00 */ cmpwi r30, 0
/* 802C6A54 002C26B4 41 82 00 0C */ beq lbl_802C6A60
/* 802C6A58 002C26B8 38 60 00 01 */ li r3, 1
@@ -1454,7 +1454,7 @@ lbl_802C6C00: /* 802C6C30 002C2890 2C 03 00 00 */ cmpwi r3, 0
/* 802C6C34 002C2894 41 82 00 14 */ beq lbl_802C6C48
/* 802C6C38 002C2898 7F E4 FB 78 */ mr r4, r31
-/* 802C6C3C 002C289C 48 00 AC CD */ bl func_802D1908
+/* 802C6C3C 002C289C 48 00 AC CD */ bl btsnd_hcic_write_page_tout
/* 802C6C40 002C28A0 38 60 00 00 */ li r3, 0
/* 802C6C44 002C28A4 48 00 00 08 */ b lbl_802C6C4C
lbl_802C6C48:
@@ -1515,7 +1515,7 @@ lbl_802C6CE8: /* 802C6D00 002C2960 38 C6 8B 78 */ addi r6, r6, lbl_80568B78@l
/* 802C6D04 002C2964 7F E5 FB 78 */ mr r5, r31
/* 802C6D08 002C2968 93 C6 05 70 */ stw r30, 0x570(r6)
-/* 802C6D0C 002C296C 48 00 A7 ED */ bl func_802D14F8
+/* 802C6D0C 002C296C 48 00 A7 ED */ bl btsnd_hcic_read_stored_key
/* 802C6D10 002C2970 38 60 00 00 */ li r3, 0
/* 802C6D14 002C2974 48 00 00 08 */ b lbl_802C6D1C
lbl_802C6D18:
@@ -1574,7 +1574,7 @@ lbl_802C6DB0: /* 802C6DCC 002C2A2C 7F A5 EB 78 */ mr r5, r29
/* 802C6DD0 002C2A30 93 E6 05 70 */ stw r31, 0x570(r6)
/* 802C6DD4 002C2A34 7F C6 F3 78 */ mr r6, r30
-/* 802C6DD8 002C2A38 48 00 A7 81 */ bl func_802D1558
+/* 802C6DD8 002C2A38 48 00 A7 81 */ bl btsnd_hcic_write_stored_key
/* 802C6DDC 002C2A3C 38 60 00 00 */ li r3, 0
/* 802C6DE0 002C2A40 48 00 00 08 */ b lbl_802C6DE8
lbl_802C6DE4:
@@ -1634,7 +1634,7 @@ lbl_802C6E90: /* 802C6E98 002C2AF8 38 A5 8B 78 */ addi r5, r5, lbl_80568B78@l
/* 802C6E9C 002C2AFC 7F E4 FB 78 */ mr r4, r31
/* 802C6EA0 002C2B00 93 C5 05 70 */ stw r30, 0x570(r5)
-/* 802C6EA4 002C2B04 48 00 A8 75 */ bl func_802D1718
+/* 802C6EA4 002C2B04 48 00 A8 75 */ bl btsnd_hcic_delete_stored_key
/* 802C6EA8 002C2B08 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C6EAC 002C2B0C 40 82 00 0C */ bne lbl_802C6EB8
/* 802C6EB0 002C2B10 38 60 00 03 */ li r3, 3
diff --git a/asm/SDK/BTE/btm_inq.s b/asm/SDK/BTE/btm_inq.s index 7a04897..3cb5c87 100644 --- a/asm/SDK/BTE/btm_inq.s +++ b/asm/SDK/BTE/btm_inq.s @@ -88,12 +88,12 @@ lbl_802C73DC: /* 802C7420 002C3080 7F A3 EB 78 */ mr r3, r29
/* 802C7424 002C3084 38 A1 00 0C */ addi r5, r1, 0xc
/* 802C7428 002C3088 38 80 00 02 */ li r4, 2
-/* 802C742C 002C308C 48 00 A8 8D */ bl func_802D1CB8
+/* 802C742C 002C308C 48 00 A8 8D */ bl btsnd_hcic_write_cur_iac_lap
/* 802C7430 002C3090 48 00 00 10 */ b lbl_802C7440
lbl_802C7434:
/* 802C7434 002C3094 38 80 00 01 */ li r4, 1
/* 802C7438 002C3098 38 A2 A4 70 */ addi r5, r2, lbl_80642A70-_SDA2_BASE_
-/* 802C743C 002C309C 48 00 A8 7D */ bl func_802D1CB8
+/* 802C743C 002C309C 48 00 A8 7D */ bl btsnd_hcic_write_cur_iac_lap
lbl_802C7440:
/* 802C7440 002C30A0 63 DE 00 01 */ ori r30, r30, 1
/* 802C7444 002C30A4 48 00 00 0C */ b lbl_802C7450
@@ -120,7 +120,7 @@ lbl_802C7470: /* 802C748C 002C30EC 7F 65 DB 78 */ mr r5, r27
/* 802C7490 002C30F0 B3 66 16 A0 */ sth r27, 0x16a0(r6)
/* 802C7494 002C30F4 B3 86 16 A2 */ sth r28, 0x16a2(r6)
-/* 802C7498 002C30F8 48 00 A5 1D */ bl func_802D19B4
+/* 802C7498 002C30F8 48 00 A5 1D */ bl btsnd_hcic_write_inqscan_cfg
/* 802C749C 002C30FC 48 00 00 0C */ b lbl_802C74A8
lbl_802C74A0:
/* 802C74A0 002C3100 38 60 00 03 */ li r3, 3
@@ -142,7 +142,7 @@ lbl_802C74D4: /* 802C74D8 002C3138 57 C4 06 3E */ clrlwi r4, r30, 0x18
/* 802C74DC 002C313C 38 A5 8B 78 */ addi r5, r5, lbl_80568B78@l
/* 802C74E0 002C3140 B3 E5 16 98 */ sth r31, 0x1698(r5)
-/* 802C74E4 002C3144 48 00 A4 5D */ bl func_802D1940
+/* 802C74E4 002C3144 48 00 A4 5D */ bl btsnd_hcic_write_scan_enable
/* 802C74E8 002C3148 48 00 00 0C */ b lbl_802C74F4
lbl_802C74EC:
/* 802C74EC 002C314C 38 60 00 03 */ li r3, 3
@@ -220,7 +220,7 @@ lbl_802C75C8: /* 802C75E8 002C3248 2C 03 00 00 */ cmpwi r3, 0
/* 802C75EC 002C324C 41 82 00 14 */ beq lbl_802C7600
/* 802C75F0 002C3250 57 C4 06 3E */ clrlwi r4, r30, 0x18
-/* 802C75F4 002C3254 48 00 AD 8D */ bl func_802D2380
+/* 802C75F4 002C3254 48 00 AD 8D */ bl btsnd_hcic_write_inqscan_type
/* 802C75F8 002C3258 B3 DF 16 A4 */ sth r30, 0x16a4(r31)
/* 802C75FC 002C325C 48 00 00 14 */ b lbl_802C7610
lbl_802C7600:
@@ -273,7 +273,7 @@ lbl_802C7678: /* 802C7698 002C32F8 2C 03 00 00 */ cmpwi r3, 0
/* 802C769C 002C32FC 41 82 00 14 */ beq lbl_802C76B0
/* 802C76A0 002C3300 57 C4 06 3E */ clrlwi r4, r30, 0x18
-/* 802C76A4 002C3304 48 00 AD 3D */ bl func_802D23E0
+/* 802C76A4 002C3304 48 00 AD 3D */ bl btsnd_hcic_write_pagescan_type
/* 802C76A8 002C3308 B3 DF 16 A6 */ sth r30, 0x16a6(r31)
/* 802C76AC 002C330C 48 00 00 14 */ b lbl_802C76C0
lbl_802C76B0:
@@ -325,7 +325,7 @@ lbl_802C7738: /* 802C7740 002C33A0 2C 03 00 00 */ cmpwi r3, 0
/* 802C7744 002C33A4 41 82 00 10 */ beq lbl_802C7754
/* 802C7748 002C33A8 7F E4 FB 78 */ mr r4, r31
-/* 802C774C 002C33AC 48 00 AC 65 */ bl func_802D23B0
+/* 802C774C 002C33AC 48 00 AC 65 */ bl btsnd_hcic_write_inquiry_mode
/* 802C7750 002C33B0 48 00 00 0C */ b lbl_802C775C
lbl_802C7754:
/* 802C7754 002C33B4 38 60 00 03 */ li r3, 3
@@ -422,7 +422,7 @@ lbl_802C7874: /* 802C7888 002C34E8 7F A4 EB 78 */ mr r4, r29
/* 802C788C 002C34EC 7F 85 E3 78 */ mr r5, r28
/* 802C7890 002C34F0 B3 BF 16 9E */ sth r29, 0x169e(r31)
-/* 802C7894 002C34F4 48 00 A0 DD */ bl func_802D1970
+/* 802C7894 002C34F4 48 00 A0 DD */ bl btsnd_hcic_write_pagescan_cfg
/* 802C7898 002C34F8 48 00 00 0C */ b lbl_802C78A4
lbl_802C789C:
/* 802C789C 002C34FC 38 60 00 03 */ li r3, 3
@@ -440,7 +440,7 @@ lbl_802C78A4: lbl_802C78C8:
/* 802C78C8 002C3528 B3 7F 16 9A */ sth r27, 0x169a(r31)
/* 802C78CC 002C352C 57 C4 06 3E */ clrlwi r4, r30, 0x18
-/* 802C78D0 002C3530 48 00 A0 71 */ bl func_802D1940
+/* 802C78D0 002C3530 48 00 A0 71 */ bl btsnd_hcic_write_scan_enable
/* 802C78D4 002C3534 48 00 00 0C */ b lbl_802C78E0
lbl_802C78D8:
/* 802C78D8 002C3538 38 60 00 03 */ li r3, 3
@@ -507,7 +507,7 @@ lbl_802C7964: /* 802C79A4 002C3604 98 1E 18 45 */ stb r0, 0x1845(r30)
/* 802C79A8 002C3608 48 00 00 14 */ b lbl_802C79BC
lbl_802C79AC:
-/* 802C79AC 002C360C 48 00 84 E5 */ bl func_802CFE90
+/* 802C79AC 002C360C 48 00 84 E5 */ bl btsnd_hcic_inq_cancel
/* 802C79B0 002C3610 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C79B4 002C3614 40 82 00 08 */ bne lbl_802C79BC
/* 802C79B8 002C3618 3B A0 00 03 */ li r29, 3
@@ -747,7 +747,7 @@ lbl_802C7CE8: /* 802C7CEC 002C394C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 802C7CF0 002C3950 41 82 00 20 */ beq lbl_802C7D10
/* 802C7CF4 002C3954 38 7F 16 A8 */ addi r3, r31, 0x16a8
-/* 802C7CF8 002C3958 48 00 8C 9D */ bl func_802D0994
+/* 802C7CF8 002C3958 48 00 8C 9D */ bl btsnd_hcic_rmt_name_req_cancel
/* 802C7CFC 002C395C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C7D00 002C3960 38 60 00 03 */ li r3, 3
/* 802C7D04 002C3964 41 82 00 10 */ beq lbl_802C7D14
@@ -1335,7 +1335,7 @@ lbl_802C84C0: /* 802C84D8 002C4138 7F A6 EB 78 */ mr r6, r29
/* 802C84DC 002C413C 7F C7 F3 78 */ mr r7, r30
/* 802C84E0 002C4140 38 80 00 01 */ li r4, 1
-/* 802C84E4 002C4144 48 00 8D E5 */ bl func_802D12C8
+/* 802C84E4 002C4144 48 00 8D E5 */ bl btsnd_hcic_set_event_filter
/* 802C84E8 002C4148 38 60 00 01 */ li r3, 1
/* 802C84EC 002C414C 48 00 00 08 */ b lbl_802C84F4
lbl_802C84F0:
@@ -1454,7 +1454,7 @@ lbl_802C8668: /* 802C8678 002C42D8 A0 9F 18 40 */ lhz r4, 0x1840(r31)
/* 802C867C 002C42DC 88 DF 18 35 */ lbz r6, 0x1835(r31)
/* 802C8680 002C42E0 88 FF 18 36 */ lbz r7, 0x1836(r31)
-/* 802C8684 002C42E4 48 00 78 6D */ bl func_802CFEF0
+/* 802C8684 002C42E4 48 00 78 6D */ bl btsnd_hcic_per_inq_mode
/* 802C8688 002C42E8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C868C 002C42EC 40 82 00 84 */ bne lbl_802C8710
/* 802C8690 002C42F0 38 60 00 03 */ li r3, 3
@@ -1487,7 +1487,7 @@ lbl_802C86F0: /* 802C86F0 002C4350 88 9F 18 35 */ lbz r4, 0x1835(r31)
/* 802C86F4 002C4354 7F A3 EB 78 */ mr r3, r29
/* 802C86F8 002C4358 38 A0 00 00 */ li r5, 0
-/* 802C86FC 002C435C 48 00 76 ED */ bl func_802CFDE8
+/* 802C86FC 002C435C 48 00 76 ED */ bl btsnd_hcic_inquiry
/* 802C8700 002C4360 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C8704 002C4364 40 82 00 0C */ bne lbl_802C8710
/* 802C8708 002C4368 38 60 00 03 */ li r3, 3
@@ -1647,7 +1647,7 @@ lbl_802C8900: /* 802C8934 002C4594 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 802C8938 002C4598 7C 00 18 40 */ cmplw r0, r3
/* 802C893C 002C459C 40 82 00 08 */ bne lbl_802C8944
-/* 802C8940 002C45A0 48 00 75 51 */ bl func_802CFE90
+/* 802C8940 002C45A0 48 00 75 51 */ bl btsnd_hcic_inq_cancel
lbl_802C8944:
/* 802C8944 002C45A4 2C 16 00 00 */ cmpwi r22, 0
/* 802C8948 002C45A8 9A 19 00 18 */ stb r16, 0x18(r25)
@@ -1817,14 +1817,14 @@ lbl_802C8B54: /* 802C8B8C 002C47EC 88 98 00 0B */ lbz r4, 0xb(r24)
/* 802C8B90 002C47F0 88 B8 00 0D */ lbz r5, 0xd(r24)
/* 802C8B94 002C47F4 60 06 80 00 */ ori r6, r0, 0x8000
-/* 802C8B98 002C47F8 48 00 7D 25 */ bl func_802D08BC
+/* 802C8B98 002C47F8 48 00 7D 25 */ bl btsnd_hcic_rmt_name_req
/* 802C8B9C 002C47FC 48 00 00 18 */ b lbl_802C8BB4
lbl_802C8BA0:
/* 802C8BA0 002C4800 7E E3 BB 78 */ mr r3, r23
/* 802C8BA4 002C4804 38 80 00 01 */ li r4, 1
/* 802C8BA8 002C4808 38 A0 00 00 */ li r5, 0
/* 802C8BAC 002C480C 38 C0 00 00 */ li r6, 0
-/* 802C8BB0 002C4810 48 00 7D 0D */ bl func_802D08BC
+/* 802C8BB0 002C4810 48 00 7D 0D */ bl btsnd_hcic_rmt_name_req
lbl_802C8BB4:
/* 802C8BB4 002C4814 7C 7D 1B 78 */ mr r29, r3
lbl_802C8BB8:
diff --git a/asm/SDK/BTE/btm_pm.s b/asm/SDK/BTE/btm_pm.s index af35c65..1c93b8b 100644 --- a/asm/SDK/BTE/btm_pm.s +++ b/asm/SDK/BTE/btm_pm.s @@ -648,14 +648,14 @@ lbl_802C96AC: /* 802C96B0 002C5310 7F E3 FB 78 */ mr r3, r31
/* 802C96B4 002C5314 7C 84 02 14 */ add r4, r4, r0
/* 802C96B8 002C5318 A0 84 00 34 */ lhz r4, 0x34(r4)
-/* 802C96BC 002C531C 48 00 78 B1 */ bl func_802D0F6C
+/* 802C96BC 002C531C 48 00 78 B1 */ bl btsnd_hcic_exit_sniff_mode
/* 802C96C0 002C5320 48 00 00 A8 */ b lbl_802C9768
lbl_802C96C4:
/* 802C96C4 002C5324 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 802C96C8 002C5328 7F E3 FB 78 */ mr r3, r31
/* 802C96CC 002C532C 7C 84 02 14 */ add r4, r4, r0
/* 802C96D0 002C5330 A0 84 00 34 */ lhz r4, 0x34(r4)
-/* 802C96D4 002C5334 48 00 79 D1 */ bl func_802D10A4
+/* 802C96D4 002C5334 48 00 79 D1 */ bl btsnd_hcic_exit_park_mode
/* 802C96D8 002C5338 48 00 00 90 */ b lbl_802C9768
lbl_802C96DC:
/* 802C96DC 002C533C 3C 60 80 57 */ lis r3, lbl_80568B78@ha
@@ -670,7 +670,7 @@ lbl_802C96F0: /* 802C96FC 002C535C 7F E3 FB 78 */ mr r3, r31
/* 802C9700 002C5360 7C 84 02 14 */ add r4, r4, r0
/* 802C9704 002C5364 A0 84 00 34 */ lhz r4, 0x34(r4)
-/* 802C9708 002C5368 48 00 76 E5 */ bl func_802D0DEC
+/* 802C9708 002C5368 48 00 76 E5 */ bl btsnd_hcic_hold_mode
/* 802C970C 002C536C 48 00 00 5C */ b lbl_802C9768
lbl_802C9710:
/* 802C9710 002C5370 1C 1E 01 1C */ mulli r0, r30, 0x11c
@@ -681,7 +681,7 @@ lbl_802C9710: /* 802C9724 002C5384 7C 84 02 14 */ add r4, r4, r0
/* 802C9728 002C5388 A0 84 00 34 */ lhz r4, 0x34(r4)
/* 802C972C 002C538C A1 01 00 0E */ lhz r8, 0xe(r1)
-/* 802C9730 002C5390 48 00 77 71 */ bl func_802D0EA0
+/* 802C9730 002C5390 48 00 77 71 */ bl btsnd_hcic_sniff_mode
/* 802C9734 002C5394 48 00 00 34 */ b lbl_802C9768
lbl_802C9738:
/* 802C9738 002C5398 1C 1E 01 1C */ mulli r0, r30, 0x11c
@@ -690,7 +690,7 @@ lbl_802C9738: /* 802C9744 002C53A4 7F E3 FB 78 */ mr r3, r31
/* 802C9748 002C53A8 7C 84 02 14 */ add r4, r4, r0
/* 802C974C 002C53AC A0 84 00 34 */ lhz r4, 0x34(r4)
-/* 802C9750 002C53B0 48 00 78 A1 */ bl func_802D0FF0
+/* 802C9750 002C53B0 48 00 78 A1 */ bl btsnd_hcic_park_mode
/* 802C9754 002C53B4 48 00 00 14 */ b lbl_802C9768
lbl_802C9758:
/* 802C9758 002C53B8 3C 60 80 57 */ lis r3, lbl_80568B78@ha
@@ -811,7 +811,7 @@ btm_pm_proc_mode_change: lbl_802C98F0:
/* 802C98F0 002C5550 A0 7F 00 34 */ lhz r3, 0x34(r31)
/* 802C98F4 002C5554 A0 9F 00 36 */ lhz r4, 0x36(r31)
-/* 802C98F8 002C5558 48 00 6E 2D */ bl func_802D0724
+/* 802C98F8 002C5558 48 00 6E 2D */ bl btsnd_hcic_change_conn_type
lbl_802C98FC:
/* 802C98FC 002C555C 1C 1D 00 22 */ mulli r0, r29, 0x22
/* 802C9900 002C5560 3C 60 80 57 */ lis r3, lbl_80568B78@ha
@@ -878,7 +878,7 @@ lbl_802C999C: /* 802C99E0 002C5640 41 82 00 24 */ beq lbl_802C9A04
/* 802C99E4 002C5644 7F 43 D3 78 */ mr r3, r26
/* 802C99E8 002C5648 38 80 00 00 */ li r4, 0
-/* 802C99EC 002C564C 48 00 6E 45 */ bl func_802D0830
+/* 802C99EC 002C564C 48 00 6E 45 */ bl btsnd_hcic_set_conn_encrypt
/* 802C99F0 002C5650 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C99F4 002C5654 41 82 00 44 */ beq lbl_802C9A38
/* 802C99F8 002C5658 38 00 00 02 */ li r0, 2
@@ -892,7 +892,7 @@ lbl_802C9A04: /* 802C9A14 002C5674 88 04 01 4E */ lbz r0, 0x14e(r4)
/* 802C9A18 002C5678 7C 00 00 34 */ cntlzw r0, r0
/* 802C9A1C 002C567C 54 04 DE 3E */ rlwinm r4, r0, 0x1b, 0x18, 0x1f
-/* 802C9A20 002C5680 48 00 77 09 */ bl func_802D1128
+/* 802C9A20 002C5680 48 00 77 09 */ bl btsnd_hcic_switch_role
/* 802C9A24 002C5684 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C9A28 002C5688 41 82 00 10 */ beq lbl_802C9A38
/* 802C9A2C 002C568C 38 00 00 00 */ li r0, 0
diff --git a/asm/SDK/BTE/btm_sco.s b/asm/SDK/BTE/btm_sco.s index 3fdba78..9943c9a 100644 --- a/asm/SDK/BTE/btm_sco.s +++ b/asm/SDK/BTE/btm_sco.s @@ -76,13 +76,13 @@ lbl_802C9B68: /* 802C9B7C 002C57DC 7F C3 F3 78 */ mr r3, r30
/* 802C9B80 002C57E0 7F A4 EB 78 */ mr r4, r29
/* 802C9B84 002C57E4 7F 65 DB 78 */ mr r5, r27
-/* 802C9B88 002C57E8 48 00 66 7D */ bl func_802D0204
+/* 802C9B88 002C57E8 48 00 66 7D */ bl btsnd_hcic_reject_conn
/* 802C9B8C 002C57EC 48 00 00 FC */ b lbl_802C9C88
lbl_802C9B90:
/* 802C9B90 002C57F0 7F C3 F3 78 */ mr r3, r30
/* 802C9B94 002C57F4 7F A4 EB 78 */ mr r4, r29
/* 802C9B98 002C57F8 7F 65 DB 78 */ mr r5, r27
-/* 802C9B9C 002C57FC 48 00 71 F1 */ bl func_802D0D8C
+/* 802C9B9C 002C57FC 48 00 71 F1 */ bl btsnd_hcic_reject_esco_conn
/* 802C9BA0 002C5800 48 00 00 E8 */ b lbl_802C9C88
lbl_802C9BA4:
/* 802C9BA4 002C5804 38 60 00 01 */ li r3, 1
@@ -138,14 +138,14 @@ lbl_802C9C4C: /* 802C9C60 002C58C0 57 8A 04 3E */ clrlwi r10, r28, 0x10
/* 802C9C64 002C58C4 A1 1F 00 1E */ lhz r8, 0x1e(r31)
/* 802C9C68 002C58C8 89 3F 00 22 */ lbz r9, 0x22(r31)
-/* 802C9C6C 002C58CC 48 00 70 39 */ bl func_802D0CA4
+/* 802C9C6C 002C58CC 48 00 70 39 */ bl btsnd_hcic_accept_esco_conn
/* 802C9C70 002C58D0 B3 9F 00 20 */ sth r28, 0x20(r31)
/* 802C9C74 002C58D4 48 00 00 14 */ b lbl_802C9C88
lbl_802C9C78:
/* 802C9C78 002C58D8 7F C3 F3 78 */ mr r3, r30
/* 802C9C7C 002C58DC 7F A4 EB 78 */ mr r4, r29
/* 802C9C80 002C58E0 38 A0 00 00 */ li r5, 0
-/* 802C9C84 002C58E4 48 00 65 21 */ bl func_802D01A4
+/* 802C9C84 002C58E4 48 00 65 21 */ bl btsnd_hcic_accept_conn
lbl_802C9C88:
/* 802C9C88 002C58E8 39 61 00 20 */ addi r11, r1, 0x20
/* 802C9C8C 002C58EC 4B EF D4 E5 */ bl _restgpr_26
@@ -202,7 +202,7 @@ lbl_802C9D30: /* 802C9D44 002C59A4 A0 1A 00 20 */ lhz r0, 0x20(r26)
/* 802C9D48 002C59A8 57 A3 04 3E */ clrlwi r3, r29, 0x10
/* 802C9D4C 002C59AC 54 04 2E 34 */ rlwinm r4, r0, 5, 0x18, 0x1a
-/* 802C9D50 002C59B0 48 00 63 C9 */ bl func_802D0118
+/* 802C9D50 002C59B0 48 00 63 C9 */ bl btsnd_hcic_add_SCO_conn
/* 802C9D54 002C59B4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C9D58 002C59B8 40 82 00 9C */ bne lbl_802C9DF4
/* 802C9D5C 002C59BC 38 00 00 03 */ li r0, 3
@@ -240,7 +240,7 @@ lbl_802C9DC0: /* 802C9DD0 002C5A30 A0 DA 00 1C */ lhz r6, 0x1c(r26)
/* 802C9DD4 002C5A34 A0 FA 00 1E */ lhz r7, 0x1e(r26)
/* 802C9DD8 002C5A38 89 1A 00 22 */ lbz r8, 0x22(r26)
-/* 802C9DDC 002C5A3C 48 00 6D CD */ bl func_802D0BA8
+/* 802C9DDC 002C5A3C 48 00 6D CD */ bl btsnd_hcic_setup_esco_conn
/* 802C9DE0 002C5A40 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C9DE4 002C5A44 40 82 00 0C */ bne lbl_802C9DF0
/* 802C9DE8 002C5A48 38 00 00 03 */ li r0, 3
@@ -554,7 +554,7 @@ lbl_802CA220: /* 802CA224 002C5E84 38 80 00 13 */ li r4, 0x13
/* 802CA228 002C5E88 B0 1F 18 5C */ sth r0, 0x185c(r31)
/* 802CA22C 002C5E8C A0 7F 18 5E */ lhz r3, 0x185e(r31)
-/* 802CA230 002C5E90 48 00 5E 61 */ bl func_802D0090
+/* 802CA230 002C5E90 48 00 5E 61 */ bl btsnd_hcic_disconnect
/* 802CA234 002C5E94 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CA238 002C5E98 40 82 00 10 */ bne lbl_802CA248
/* 802CA23C 002C5E9C B3 DF 18 5C */ sth r30, 0x185c(r31)
@@ -796,7 +796,7 @@ lbl_802CA55C: /* 802CA55C 002C61BC A0 1D 00 0C */ lhz r0, 0xc(r29)
/* 802CA560 002C61C0 A0 7F 18 5E */ lhz r3, 0x185e(r31)
/* 802CA564 002C61C4 54 04 2E 34 */ rlwinm r4, r0, 5, 0x18, 0x1a
-/* 802CA568 002C61C8 48 00 61 BD */ bl func_802D0724
+/* 802CA568 002C61C8 48 00 61 BD */ bl btsnd_hcic_change_conn_type
/* 802CA56C 002C61CC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CA570 002C61D0 40 82 00 D0 */ bne lbl_802CA640
/* 802CA574 002C61D4 38 60 00 03 */ li r3, 3
@@ -848,7 +848,7 @@ lbl_802CA60C: /* 802CA61C 002C627C A0 DC 00 00 */ lhz r6, 0(r28)
/* 802CA620 002C6280 A0 FD 00 0A */ lhz r7, 0xa(r29)
/* 802CA624 002C6284 89 1C 00 04 */ lbz r8, 4(r28)
-/* 802CA628 002C6288 48 00 65 81 */ bl func_802D0BA8
+/* 802CA628 002C6288 48 00 65 81 */ bl btsnd_hcic_setup_esco_conn
/* 802CA62C 002C628C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CA630 002C6290 40 82 00 0C */ bne lbl_802CA63C
/* 802CA634 002C6294 38 60 00 03 */ li r3, 3
diff --git a/asm/SDK/BTE/btm_sec.s b/asm/SDK/BTE/btm_sec.s index a3511ec..8220079 100644 --- a/asm/SDK/BTE/btm_sec.s +++ b/asm/SDK/BTE/btm_sec.s @@ -118,7 +118,7 @@ lbl_802CAA2C: /* 802CAA38 002C6698 28 00 00 01 */ cmplwi r0, 1
/* 802CAA3C 002C669C 40 81 00 0C */ ble lbl_802CAA48
/* 802CAA40 002C66A0 7F A3 EB 78 */ mr r3, r29
-/* 802CAA44 002C66A4 48 00 6A 41 */ bl func_802D1484
+/* 802CAA44 002C66A4 48 00 6A 41 */ bl btsnd_hcic_write_pin_type
lbl_802CAA48:
/* 802CAA48 002C66A8 3C C0 80 57 */ lis r6, lbl_80568B78@ha
/* 802CAA4C 002C66AC 7F C4 F3 78 */ mr r4, r30
@@ -318,14 +318,14 @@ BTM_PINCodeReply: /* 802CAD10 002C6970 38 00 00 0E */ li r0, 0xe
/* 802CAD14 002C6974 7F 23 CB 78 */ mr r3, r25
/* 802CAD18 002C6978 98 1E 27 BF */ stb r0, 0x27bf(r30)
-/* 802CAD1C 002C697C 48 00 59 69 */ bl func_802D0684
+/* 802CAD1C 002C697C 48 00 59 69 */ bl btsnd_hcic_pin_code_neg_reply
/* 802CAD20 002C6980 48 00 00 38 */ b lbl_802CAD58
lbl_802CAD24:
/* 802CAD24 002C6984 9B FE 27 BF */ stb r31, 0x27bf(r30)
/* 802CAD28 002C6988 7F 23 CB 78 */ mr r3, r25
/* 802CAD2C 002C698C 7F 64 DB 78 */ mr r4, r27
/* 802CAD30 002C6990 7F 85 E3 78 */ mr r5, r28
-/* 802CAD34 002C6994 48 00 57 6D */ bl func_802D04A0
+/* 802CAD34 002C6994 48 00 57 6D */ bl btsnd_hcic_pin_code_req_reply
/* 802CAD38 002C6998 7F 23 CB 78 */ mr r3, r25
/* 802CAD3C 002C699C 4B FF A8 E1 */ bl btm_find_dev
/* 802CAD40 002C69A0 2C 03 00 00 */ cmpwi r3, 0
@@ -603,7 +603,7 @@ lbl_802CB0DC: /* 802CB11C 002C6D7C 38 00 00 01 */ li r0, 1
/* 802CB120 002C6D80 38 60 00 01 */ li r3, 1
/* 802CB124 002C6D84 98 04 19 7C */ stb r0, 0x197c(r4)
-/* 802CB128 002C6D88 48 00 63 5D */ bl func_802D1484
+/* 802CB128 002C6D88 48 00 63 5D */ bl btsnd_hcic_write_pin_type
lbl_802CB12C:
/* 802CB12C 002C6D8C 3F A0 80 57 */ lis r29, lbl_80568B78@ha
/* 802CB130 002C6D90 3B 60 00 00 */ li r27, 0
@@ -618,7 +618,7 @@ lbl_802CB12C: /* 802CB154 002C6DB4 98 7E 00 76 */ stb r3, 0x76(r30)
/* 802CB158 002C6DB8 98 1E 00 7F */ stb r0, 0x7f(r30)
/* 802CB15C 002C6DBC A0 7E 00 18 */ lhz r3, 0x18(r30)
-/* 802CB160 002C6DC0 48 00 56 55 */ bl func_802D07B4
+/* 802CB160 002C6DC0 48 00 56 55 */ bl btsnd_hcic_auth_request
/* 802CB164 002C6DC4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CB168 002C6DC8 40 82 00 0C */ bne lbl_802CB174
/* 802CB16C 002C6DCC 38 60 00 03 */ li r3, 3
@@ -640,7 +640,7 @@ lbl_802CB180: /* 802CB1A4 002C6E04 4B FF 1D 6D */ bl LogMsg_0
lbl_802CB1A8:
/* 802CB1A8 002C6E08 38 60 00 01 */ li r3, 1
-/* 802CB1AC 002C6E0C 48 00 68 4D */ bl func_802D19F8
+/* 802CB1AC 002C6E0C 48 00 68 4D */ bl btsnd_hcic_write_auth_enable
/* 802CB1B0 002C6E10 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CB1B4 002C6E14 40 82 00 2C */ bne lbl_802CB1E0
/* 802CB1B8 002C6E18 3C 60 80 57 */ lis r3, lbl_80568B78@ha
@@ -681,7 +681,7 @@ lbl_802CB1F0: /* 802CB238 002C6E98 88 C4 00 0D */ lbz r6, 0xd(r4)
/* 802CB23C 002C6E9C 60 07 80 00 */ ori r7, r0, 0x8000
/* 802CB240 002C6EA0 38 80 00 18 */ li r4, 0x18
-/* 802CB244 002C6EA4 48 00 4D 6D */ bl func_802CFFB0
+/* 802CB244 002C6EA4 48 00 4D 6D */ bl btsnd_hcic_create_conn
/* 802CB248 002C6EA8 48 00 00 20 */ b lbl_802CB268
lbl_802CB24C:
/* 802CB24C 002C6EAC A0 FE 00 1A */ lhz r7, 0x1a(r30)
@@ -690,7 +690,7 @@ lbl_802CB24C: /* 802CB258 002C6EB8 38 80 00 18 */ li r4, 0x18
/* 802CB25C 002C6EBC 38 A0 00 01 */ li r5, 1
/* 802CB260 002C6EC0 38 C0 00 00 */ li r6, 0
-/* 802CB264 002C6EC4 48 00 4D 4D */ bl func_802CFFB0
+/* 802CB264 002C6EC4 48 00 4D 4D */ bl btsnd_hcic_create_conn
lbl_802CB268:
/* 802CB268 002C6EC8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CB26C 002C6ECC 41 82 00 0C */ beq lbl_802CB278
@@ -731,7 +731,7 @@ lbl_802CB2E0: /* 802CB2EC 002C6F4C 38 03 FF FD */ addi r0, r3, -3
/* 802CB2F0 002C6F50 7C 00 00 34 */ cntlzw r0, r0
/* 802CB2F4 002C6F54 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
-/* 802CB2F8 002C6F58 48 00 67 01 */ bl func_802D19F8
+/* 802CB2F8 002C6F58 48 00 67 01 */ bl btsnd_hcic_write_auth_enable
lbl_802CB2FC:
/* 802CB2FC 002C6F5C 38 60 00 03 */ li r3, 3
lbl_802CB300:
@@ -1277,7 +1277,7 @@ lbl_802CBA8C: /* 802CBA98 002C76F8 41 82 00 90 */ beq lbl_802CBB28
/* 802CBA9C 002C76FC 7F A4 EB 78 */ mr r4, r29
/* 802CBAA0 002C7700 38 A0 00 0F */ li r5, 0xf
-/* 802CBAA4 002C7704 48 00 47 61 */ bl func_802D0204
+/* 802CBAA4 002C7704 48 00 47 61 */ bl btsnd_hcic_reject_conn
/* 802CBAA8 002C7708 48 00 00 80 */ b lbl_802CBB28
lbl_802CBAAC:
/* 802CBAAC 002C770C 3C 60 80 57 */ lis r3, lbl_80568B78@ha
@@ -1297,7 +1297,7 @@ lbl_802CBAAC: /* 802CBAE4 002C7744 41 82 00 44 */ beq lbl_802CBB28
/* 802CBAE8 002C7748 7F A4 EB 78 */ mr r4, r29
/* 802CBAEC 002C774C 38 A0 00 0F */ li r5, 0xf
-/* 802CBAF0 002C7750 48 00 47 15 */ bl func_802D0204
+/* 802CBAF0 002C7750 48 00 47 15 */ bl btsnd_hcic_reject_conn
/* 802CBAF4 002C7754 48 00 00 34 */ b lbl_802CBB28
lbl_802CBAF8:
/* 802CBAF8 002C7758 3F E0 80 57 */ lis r31, lbl_80568B78@ha
@@ -1342,9 +1342,9 @@ btm_sec_dev_reset: /* 802CBB78 002C77D8 28 00 00 03 */ cmplwi r0, 3
/* 802CBB7C 002C77DC 40 82 00 14 */ bne lbl_802CBB90
/* 802CBB80 002C77E0 38 60 00 01 */ li r3, 1
-/* 802CBB84 002C77E4 48 00 5E 75 */ bl func_802D19F8
+/* 802CBB84 002C77E4 48 00 5E 75 */ bl btsnd_hcic_write_auth_enable
/* 802CBB88 002C77E8 38 60 00 01 */ li r3, 1
-/* 802CBB8C 002C77EC 48 00 5E E1 */ bl func_802D1A6C
+/* 802CBB8C 002C77EC 48 00 5E E1 */ bl btsnd_hcic_write_encr_mode
lbl_802CBB90:
/* 802CBB90 002C77F0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CBB94 002C77F4 7C 08 03 A6 */ mtlr r0
@@ -1572,7 +1572,7 @@ lbl_802CBE78: /* 802CBE98 002C7AF8 7C 60 00 38 */ and r0, r3, r0
/* 802CBE9C 002C7AFC 98 1F 00 81 */ stb r0, 0x81(r31)
/* 802CBEA0 002C7B00 A0 7F 00 18 */ lhz r3, 0x18(r31)
-/* 802CBEA4 002C7B04 48 00 41 ED */ bl func_802D0090
+/* 802CBEA4 002C7B04 48 00 41 ED */ bl btsnd_hcic_disconnect
/* 802CBEA8 002C7B08 48 00 00 7C */ b lbl_802CBF24
lbl_802CBEAC:
/* 802CBEAC 002C7B0C 88 1F 00 7F */ lbz r0, 0x7f(r31)
@@ -1670,7 +1670,7 @@ lbl_802CBFEC: /* 802CBFF8 002C7C58 38 03 FF FD */ addi r0, r3, -3
/* 802CBFFC 002C7C5C 7C 00 00 34 */ cntlzw r0, r0
/* 802CC000 002C7C60 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
-/* 802CC004 002C7C64 48 00 59 F5 */ bl func_802D19F8
+/* 802CC004 002C7C64 48 00 59 F5 */ bl btsnd_hcic_write_auth_enable
lbl_802CC008:
/* 802CC008 002C7C68 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802CC00C 002C7C6C 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
@@ -1680,7 +1680,7 @@ lbl_802CC008: /* 802CC01C 002C7C7C 38 00 00 00 */ li r0, 0
/* 802CC020 002C7C80 88 64 00 20 */ lbz r3, 0x20(r4)
/* 802CC024 002C7C84 98 04 19 7C */ stb r0, 0x197c(r4)
-/* 802CC028 002C7C88 48 00 54 5D */ bl func_802D1484
+/* 802CC028 002C7C88 48 00 54 5D */ bl btsnd_hcic_write_pin_type
lbl_802CC02C:
/* 802CC02C 002C7C8C 2C 1F 00 00 */ cmpwi r31, 0
/* 802CC030 002C7C90 41 82 00 90 */ beq lbl_802CC0C0
@@ -1716,7 +1716,7 @@ lbl_802CC094: /* 802CC0A4 002C7D04 7F 44 D3 78 */ mr r4, r26
/* 802CC0A8 002C7D08 98 03 00 7F */ stb r0, 0x7f(r3)
/* 802CC0AC 002C7D0C 7F A3 EB 78 */ mr r3, r29
-/* 802CC0B0 002C7D10 48 00 3F E1 */ bl func_802D0090
+/* 802CC0B0 002C7D10 48 00 3F E1 */ bl btsnd_hcic_disconnect
/* 802CC0B4 002C7D14 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CC0B8 002C7D18 40 82 00 08 */ bne lbl_802CC0C0
/* 802CC0BC 002C7D1C 9B 7C 00 7F */ stb r27, 0x7f(r28)
@@ -1771,7 +1771,7 @@ lbl_802CC154: /* 802CC170 002C7DD0 7C 60 00 38 */ and r0, r3, r0
/* 802CC174 002C7DD4 98 1F 00 81 */ stb r0, 0x81(r31)
/* 802CC178 002C7DD8 A0 7F 00 18 */ lhz r3, 0x18(r31)
-/* 802CC17C 002C7DDC 48 00 3F 15 */ bl func_802D0090
+/* 802CC17C 002C7DDC 48 00 3F 15 */ bl btsnd_hcic_disconnect
/* 802CC180 002C7DE0 48 00 00 E8 */ b lbl_802CC268
lbl_802CC184:
/* 802CC184 002C7DE4 2C 1E 00 00 */ cmpwi r30, 0
@@ -1801,7 +1801,7 @@ lbl_802CC1C0: lbl_802CC1E0:
/* 802CC1E0 002C7E40 A0 7F 00 18 */ lhz r3, 0x18(r31)
/* 802CC1E4 002C7E44 38 80 00 05 */ li r4, 5
-/* 802CC1E8 002C7E48 48 00 3E A9 */ bl func_802D0090
+/* 802CC1E8 002C7E48 48 00 3E A9 */ bl btsnd_hcic_disconnect
/* 802CC1EC 002C7E4C 48 00 00 7C */ b lbl_802CC268
lbl_802CC1F0:
/* 802CC1F0 002C7E50 88 1F 00 76 */ lbz r0, 0x76(r31)
@@ -2100,7 +2100,7 @@ lbl_802CC5FC: /* 802CC608 002C8268 38 03 FF FD */ addi r0, r3, -3
/* 802CC60C 002C826C 7C 00 00 34 */ cntlzw r0, r0
/* 802CC610 002C8270 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
-/* 802CC614 002C8274 48 00 53 E5 */ bl func_802D19F8
+/* 802CC614 002C8274 48 00 53 E5 */ bl btsnd_hcic_write_auth_enable
lbl_802CC618:
/* 802CC618 002C8278 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802CC61C 002C827C 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
@@ -2110,7 +2110,7 @@ lbl_802CC618: /* 802CC62C 002C828C 38 00 00 00 */ li r0, 0
/* 802CC630 002C8290 88 64 00 20 */ lbz r3, 0x20(r4)
/* 802CC634 002C8294 98 04 19 7C */ stb r0, 0x197c(r4)
-/* 802CC638 002C8298 48 00 4E 4D */ bl func_802D1484
+/* 802CC638 002C8298 48 00 4E 4D */ bl btsnd_hcic_write_pin_type
lbl_802CC63C:
/* 802CC63C 002C829C 2C 1D 00 00 */ cmpwi r29, 0
/* 802CC640 002C82A0 41 82 01 6C */ beq lbl_802CC7AC
@@ -2270,7 +2270,7 @@ lbl_802CC86C: /* 802CC878 002C84D8 38 80 00 13 */ li r4, 0x13
/* 802CC87C 002C84DC 7C A0 00 38 */ and r0, r5, r0
/* 802CC880 002C84E0 98 1F 00 81 */ stb r0, 0x81(r31)
-/* 802CC884 002C84E4 48 00 38 0D */ bl func_802D0090
+/* 802CC884 002C84E4 48 00 38 0D */ bl btsnd_hcic_disconnect
/* 802CC888 002C84E8 48 00 00 D8 */ b lbl_802CC960
lbl_802CC88C:
/* 802CC88C 002C84EC B3 9F 00 18 */ sth r28, 0x18(r31)
@@ -2375,7 +2375,7 @@ lbl_802CC9E8: /* 802CC9EC 002C864C 7F A4 EB 78 */ mr r4, r29
/* 802CC9F0 002C8650 98 03 00 7F */ stb r0, 0x7f(r3)
/* 802CC9F4 002C8654 7F 83 E3 78 */ mr r3, r28
-/* 802CC9F8 002C8658 48 00 36 99 */ bl func_802D0090
+/* 802CC9F8 002C8658 48 00 36 99 */ bl btsnd_hcic_disconnect
/* 802CC9FC 002C865C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CCA00 002C8660 41 82 00 0C */ beq lbl_802CCA0C
/* 802CCA04 002C8664 38 60 00 01 */ li r3, 1
@@ -2634,7 +2634,7 @@ lbl_802CCD7C: /* 802CCD8C 002C89EC 41 82 00 14 */ beq lbl_802CCDA0
/* 802CCD90 002C89F0 7F C3 F3 78 */ mr r3, r30
/* 802CCD94 002C89F4 38 9F 00 25 */ addi r4, r31, 0x25
-/* 802CCD98 002C89F8 48 00 34 C9 */ bl func_802D0260
+/* 802CCD98 002C89F8 48 00 34 C9 */ bl btsnd_hcic_link_key_req_reply
/* 802CCD9C 002C89FC 48 00 00 98 */ b lbl_802CCE34
lbl_802CCDA0:
/* 802CCDA0 002C8A00 2C 1F 00 00 */ cmpwi r31, 0
@@ -2661,7 +2661,7 @@ lbl_802CCDB4: /* 802CCDF0 002C8A50 40 82 00 3C */ bne lbl_802CCE2C
/* 802CCDF4 002C8A54 7F C3 F3 78 */ mr r3, r30
/* 802CCDF8 002C8A58 38 9F 00 25 */ addi r4, r31, 0x25
-/* 802CCDFC 002C8A5C 48 00 34 65 */ bl func_802D0260
+/* 802CCDFC 002C8A5C 48 00 34 65 */ bl btsnd_hcic_link_key_req_reply
/* 802CCE00 002C8A60 48 00 00 34 */ b lbl_802CCE34
lbl_802CCE04:
/* 802CCE04 002C8A64 7F C3 F3 78 */ mr r3, r30
@@ -2672,11 +2672,11 @@ lbl_802CCE04: /* 802CCE18 002C8A78 40 82 00 14 */ bne lbl_802CCE2C
/* 802CCE1C 002C8A7C 7F C3 F3 78 */ mr r3, r30
/* 802CCE20 002C8A80 38 81 00 08 */ addi r4, r1, 8
-/* 802CCE24 002C8A84 48 00 34 3D */ bl func_802D0260
+/* 802CCE24 002C8A84 48 00 34 3D */ bl btsnd_hcic_link_key_req_reply
/* 802CCE28 002C8A88 48 00 00 0C */ b lbl_802CCE34
lbl_802CCE2C:
/* 802CCE2C 002C8A8C 7F C3 F3 78 */ mr r3, r30
-/* 802CCE30 002C8A90 48 00 35 D1 */ bl func_802D0400
+/* 802CCE30 002C8A90 48 00 35 D1 */ bl btsnd_hcic_link_key_neg_reply
lbl_802CCE34:
/* 802CCE34 002C8A94 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CCE38 002C8A98 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -2710,7 +2710,7 @@ lbl_802CCE84: /* 802CCE9C 002C8AFC 38 A0 00 06 */ li r5, 6
/* 802CCEA0 002C8B00 4B D3 72 65 */ bl memset
/* 802CCEA4 002C8B04 38 7F 27 B4 */ addi r3, r31, 0x27b4
-/* 802CCEA8 002C8B08 48 00 37 DD */ bl func_802D0684
+/* 802CCEA8 002C8B08 48 00 37 DD */ bl btsnd_hcic_pin_code_neg_reply
/* 802CCEAC 002C8B0C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CCEB0 002C8B10 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CCEB4 002C8B14 7C 08 03 A6 */ mtlr r0
@@ -2799,13 +2799,13 @@ lbl_802CCFE8: /* 802CCFE8 002C8C48 2C 1E 00 10 */ cmpwi r30, 0x10
/* 802CCFEC 002C8C4C 41 80 00 10 */ blt lbl_802CCFFC
/* 802CCFF0 002C8C50 7F 63 DB 78 */ mr r3, r27
-/* 802CCFF4 002C8C54 48 00 36 91 */ bl func_802D0684
+/* 802CCFF4 002C8C54 48 00 36 91 */ bl btsnd_hcic_pin_code_neg_reply
/* 802CCFF8 002C8C58 48 00 02 0C */ b lbl_802CD204
lbl_802CCFFC:
/* 802CCFFC 002C8C5C 88 9D 00 21 */ lbz r4, 0x21(r29)
/* 802CD000 002C8C60 7F 63 DB 78 */ mr r3, r27
/* 802CD004 002C8C64 38 BD 00 22 */ addi r5, r29, 0x22
-/* 802CD008 002C8C68 48 00 34 99 */ bl func_802D04A0
+/* 802CD008 002C8C68 48 00 34 99 */ bl btsnd_hcic_pin_code_req_reply
/* 802CD00C 002C8C6C 48 00 01 F8 */ b lbl_802CD204
lbl_802CD010:
/* 802CD010 002C8C70 7F 63 DB 78 */ mr r3, r27
@@ -2852,7 +2852,7 @@ lbl_802CD0A8: /* 802CD0A8 002C8D08 88 9D 19 7F */ lbz r4, 0x197f(r29)
/* 802CD0AC 002C8D0C 7F 63 DB 78 */ mr r3, r27
/* 802CD0B0 002C8D10 38 BD 19 80 */ addi r5, r29, 0x1980
-/* 802CD0B4 002C8D14 48 00 33 ED */ bl func_802D04A0
+/* 802CD0B4 002C8D14 48 00 33 ED */ bl btsnd_hcic_pin_code_req_reply
/* 802CD0B8 002C8D18 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802CD0BC 002C8D1C 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802CD0C0 002C8D20 88 04 19 7B */ lbz r0, 0x197b(r4)
@@ -2878,7 +2878,7 @@ lbl_802CD100: /* 802CD10C 002C8D6C 38 03 FF FD */ addi r0, r3, -3
/* 802CD110 002C8D70 7C 00 00 34 */ cntlzw r0, r0
/* 802CD114 002C8D74 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
-/* 802CD118 002C8D78 48 00 48 E1 */ bl func_802D19F8
+/* 802CD118 002C8D78 48 00 48 E1 */ bl btsnd_hcic_write_auth_enable
/* 802CD11C 002C8D7C 48 00 00 A8 */ b lbl_802CD1C4
lbl_802CD120:
/* 802CD120 002C8D80 88 1D 19 79 */ lbz r0, 0x1979(r29)
@@ -2942,7 +2942,7 @@ lbl_802CD1C4: /* 802CD1F8 002C8E58 4B FE FD 61 */ bl LogMsg_3
lbl_802CD1FC:
/* 802CD1FC 002C8E5C 7F 63 DB 78 */ mr r3, r27
-/* 802CD200 002C8E60 48 00 34 85 */ bl func_802D0684
+/* 802CD200 002C8E60 48 00 34 85 */ bl btsnd_hcic_pin_code_neg_reply
lbl_802CD204:
/* 802CD204 002C8E64 39 61 00 20 */ addi r11, r1, 0x20
/* 802CD208 002C8E68 4B EF 9F 6D */ bl _restgpr_27
@@ -3108,7 +3108,7 @@ lbl_802CD434: /* 802CD434 002C9094 38 00 00 01 */ li r0, 1
/* 802CD438 002C9098 A0 7E 00 18 */ lhz r3, 0x18(r30)
/* 802CD43C 002C909C 98 1E 00 7F */ stb r0, 0x7f(r30)
-/* 802CD440 002C90A0 48 00 33 75 */ bl func_802D07B4
+/* 802CD440 002C90A0 48 00 33 75 */ bl btsnd_hcic_auth_request
/* 802CD444 002C90A4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CD448 002C90A8 40 82 00 0C */ bne lbl_802CD454
/* 802CD44C 002C90AC 38 60 00 03 */ li r3, 3
@@ -3147,7 +3147,7 @@ lbl_802CD490: lbl_802CD4C0:
/* 802CD4C0 002C9120 A0 7E 00 18 */ lhz r3, 0x18(r30)
/* 802CD4C4 002C9124 38 80 00 01 */ li r4, 1
-/* 802CD4C8 002C9128 48 00 33 69 */ bl func_802D0830
+/* 802CD4C8 002C9128 48 00 33 69 */ bl btsnd_hcic_set_conn_encrypt
/* 802CD4CC 002C912C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802CD4D0 002C9130 40 82 00 0C */ bne lbl_802CD4DC
/* 802CD4D4 002C9134 38 60 00 00 */ li r3, 0
diff --git a/asm/SDK/BTE/btu_hcif.s b/asm/SDK/BTE/btu_hcif.s index 6e4b96b..d48fc0c 100644 --- a/asm/SDK/BTE/btu_hcif.s +++ b/asm/SDK/BTE/btu_hcif.s @@ -297,7 +297,7 @@ lbl_802CDC30: /* 802CDC84 002C98E4 7F 83 E3 78 */ mr r3, r28
/* 802CDC88 002C98E8 7F C4 F3 78 */ mr r4, r30
/* 802CDC8C 002C98EC 7F A5 EB 78 */ mr r5, r29
-/* 802CDC90 002C98F0 48 00 4C 3D */ bl func_802D28CC
+/* 802CDC90 002C98F0 48 00 4C 3D */ bl hidd_pm_proc_mode_change
/* 802CDC94 002C98F4 48 00 01 80 */ b lbl_802CDE14
lbl_802CDC98:
/* 802CDC98 002C98F8 88 07 00 0A */ lbz r0, 0xa(r7)
diff --git a/asm/SDK/BTE/gap_api.s b/asm/SDK/BTE/gap_api.s index b8b55c7..b6af6fd 100644 --- a/asm/SDK/BTE/gap_api.s +++ b/asm/SDK/BTE/gap_api.s @@ -13,16 +13,16 @@ GAP_Init: /* 802CEC48 002CA8A8 3F E0 80 57 */ lis r31, lbl_8056B340@ha
/* 802CEC4C 002CA8AC 38 7F B3 40 */ addi r3, r31, lbl_8056B340@l
/* 802CEC50 002CA8B0 4B D3 54 B5 */ bl memset
-/* 802CEC54 002CA8B4 3C A0 80 2D */ lis r5, lbl_802CF9A4@ha
-/* 802CEC58 002CA8B8 3C 60 80 2D */ lis r3, lbl_802CF9B0@ha
-/* 802CEC5C 002CA8BC 38 A5 F9 A4 */ addi r5, r5, lbl_802CF9A4@l
+/* 802CEC54 002CA8B4 3C A0 80 2D */ lis r5, gap_btm_cback0@ha
+/* 802CEC58 002CA8B8 3C 60 80 2D */ lis r3, gap_btm_cback1@ha
+/* 802CEC5C 002CA8BC 38 A5 F9 A4 */ addi r5, r5, gap_btm_cback0@l
/* 802CEC60 002CA8C0 38 9F B3 40 */ addi r4, r31, -19648
-/* 802CEC64 002CA8C4 38 63 F9 B0 */ addi r3, r3, lbl_802CF9B0@l
+/* 802CEC64 002CA8C4 38 63 F9 B0 */ addi r3, r3, gap_btm_cback1@l
/* 802CEC68 002CA8C8 38 00 00 05 */ li r0, 5
/* 802CEC6C 002CA8CC 90 A4 00 20 */ stw r5, 0x20(r4)
/* 802CEC70 002CA8D0 90 64 00 24 */ stw r3, 0x24(r4)
/* 802CEC74 002CA8D4 98 04 00 28 */ stb r0, 0x28(r4)
-/* 802CEC78 002CA8D8 48 00 00 19 */ bl func_802CEC90
+/* 802CEC78 002CA8D8 48 00 00 19 */ bl gap_conn_init
/* 802CEC7C 002CA8DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CEC80 002CA8E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CEC84 002CA8E4 7C 08 03 A6 */ mtlr r0
diff --git a/asm/SDK/BTE/gap_conn.s b/asm/SDK/BTE/gap_conn.s new file mode 100644 index 0000000..de5bc2d --- /dev/null +++ b/asm/SDK/BTE/gap_conn.s @@ -0,0 +1,822 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gap_conn_init
+gap_conn_init:
+/* 802CEC90 002CA8F0 3D 40 80 2D */ lis r10, gap_connect_ind@ha
+/* 802CEC94 002CA8F4 3D 20 80 57 */ lis r9, lbl_8056B340@ha
+/* 802CEC98 002CA8F8 3D 00 80 2D */ lis r8, gap_connect_cfm@ha
+/* 802CEC9C 002CA8FC 3C E0 80 2D */ lis r7, gap_config_ind@ha
+/* 802CECA0 002CA900 3C C0 80 2D */ lis r6, gap_config_cfm@ha
+/* 802CECA4 002CA904 3C A0 80 2D */ lis r5, gap_disconnect_ind@ha
+/* 802CECA8 002CA908 3C 80 80 2D */ lis r4, gap_data_ind@ha
+/* 802CECAC 002CA90C 3C 60 80 2D */ lis r3, gap_congestion_ind@ha
+/* 802CECB0 002CA910 39 4A ED 00 */ addi r10, r10, gap_connect_ind@l
+/* 802CECB4 002CA914 39 29 B3 40 */ addi r9, r9, lbl_8056B340@l
+/* 802CECB8 002CA918 38 00 00 00 */ li r0, 0
+/* 802CECBC 002CA91C 39 08 EE 8C */ addi r8, r8, gap_connect_cfm@l
+/* 802CECC0 002CA920 38 E7 F0 68 */ addi r7, r7, gap_config_ind@l
+/* 802CECC4 002CA924 38 C6 F1 A4 */ addi r6, r6, gap_config_cfm@l
+/* 802CECC8 002CA928 38 A5 F3 90 */ addi r5, r5, gap_disconnect_ind@l
+/* 802CECCC 002CA92C 38 84 F5 88 */ addi r4, r4, gap_data_ind@l
+/* 802CECD0 002CA930 38 63 F6 98 */ addi r3, r3, gap_congestion_ind@l
+/* 802CECD4 002CA934 91 49 00 84 */ stw r10, 0x84(r9)
+/* 802CECD8 002CA938 91 09 00 88 */ stw r8, 0x88(r9)
+/* 802CECDC 002CA93C 90 09 00 8C */ stw r0, 0x8c(r9)
+/* 802CECE0 002CA940 90 E9 00 90 */ stw r7, 0x90(r9)
+/* 802CECE4 002CA944 90 C9 00 94 */ stw r6, 0x94(r9)
+/* 802CECE8 002CA948 90 A9 00 98 */ stw r5, 0x98(r9)
+/* 802CECEC 002CA94C 90 09 00 9C */ stw r0, 0x9c(r9)
+/* 802CECF0 002CA950 90 09 00 A0 */ stw r0, 0xa0(r9)
+/* 802CECF4 002CA954 90 89 00 A4 */ stw r4, 0xa4(r9)
+/* 802CECF8 002CA958 90 69 00 A8 */ stw r3, 0xa8(r9)
+/* 802CECFC 002CA95C 4E 80 00 20 */ blr
+
+gap_connect_ind:
+/* 802CED00 002CA960 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CED04 002CA964 7C 08 02 A6 */ mflr r0
+/* 802CED08 002CA968 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CED0C 002CA96C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802CED10 002CA970 4B EF 84 15 */ bl _savegpr_26
+/* 802CED14 002CA974 3C E0 80 57 */ lis r7, lbl_8056B340@ha
+/* 802CED18 002CA978 7C 7A 1B 78 */ mr r26, r3
+/* 802CED1C 002CA97C 38 E7 B3 40 */ addi r7, r7, lbl_8056B340@l
+/* 802CED20 002CA980 7C 9F 23 78 */ mr r31, r4
+/* 802CED24 002CA984 7C BB 2B 78 */ mr r27, r5
+/* 802CED28 002CA988 7C DC 33 78 */ mr r28, r6
+/* 802CED2C 002CA98C 3B A7 00 AC */ addi r29, r7, 0xac
+/* 802CED30 002CA990 3B C0 00 00 */ li r30, 0
+lbl_802CED34:
+/* 802CED34 002CA994 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802CED38 002CA998 28 00 00 01 */ cmplwi r0, 1
+/* 802CED3C 002CA99C 40 82 00 34 */ bne lbl_802CED70
+/* 802CED40 002CA9A0 A0 1D 00 10 */ lhz r0, 0x10(r29)
+/* 802CED44 002CA9A4 7C 00 D8 40 */ cmplw r0, r27
+/* 802CED48 002CA9A8 40 82 00 28 */ bne lbl_802CED70
+/* 802CED4C 002CA9AC 88 1D 00 08 */ lbz r0, 8(r29)
+/* 802CED50 002CA9B0 2C 00 00 00 */ cmpwi r0, 0
+/* 802CED54 002CA9B4 41 82 00 2C */ beq lbl_802CED80
+/* 802CED58 002CA9B8 7F 43 D3 78 */ mr r3, r26
+/* 802CED5C 002CA9BC 38 9D 00 09 */ addi r4, r29, 9
+/* 802CED60 002CA9C0 38 A0 00 06 */ li r5, 6
+/* 802CED64 002CA9C4 4B EF B6 35 */ bl memcmp
+/* 802CED68 002CA9C8 2C 03 00 00 */ cmpwi r3, 0
+/* 802CED6C 002CA9CC 41 82 00 14 */ beq lbl_802CED80
+lbl_802CED70:
+/* 802CED70 002CA9D0 3B DE 00 01 */ addi r30, r30, 1
+/* 802CED74 002CA9D4 3B BD 00 60 */ addi r29, r29, 0x60
+/* 802CED78 002CA9D8 28 1E 00 08 */ cmplwi r30, 8
+/* 802CED7C 002CA9DC 41 80 FF B8 */ blt lbl_802CED34
+lbl_802CED80:
+/* 802CED80 002CA9E0 57 C0 04 3E */ clrlwi r0, r30, 0x10
+/* 802CED84 002CA9E4 28 00 00 08 */ cmplwi r0, 8
+/* 802CED88 002CA9E8 40 82 00 80 */ bne lbl_802CEE08
+/* 802CED8C 002CA9EC 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CED90 002CA9F0 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CED94 002CA9F4 88 03 00 28 */ lbz r0, 0x28(r3)
+/* 802CED98 002CA9F8 28 00 00 02 */ cmplwi r0, 2
+/* 802CED9C 002CA9FC 41 80 00 14 */ blt lbl_802CEDB0
+/* 802CEDA0 002CAA00 3C 60 00 0E */ lis r3, 0x000E0001@ha
+/* 802CEDA4 002CAA04 38 8D 8A 50 */ addi r4, r13, lbl_8063DD10-_SDA_BASE_
+/* 802CEDA8 002CAA08 38 63 00 01 */ addi r3, r3, 0x000E0001@l
+/* 802CEDAC 002CAA0C 4B FE E1 65 */ bl LogMsg_0
+lbl_802CEDB0:
+/* 802CEDB0 002CAA10 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CEDB4 002CAA14 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CEDB8 002CAA18 88 03 00 28 */ lbz r0, 0x28(r3)
+/* 802CEDBC 002CAA1C 28 00 00 02 */ cmplwi r0, 2
+/* 802CEDC0 002CAA20 41 80 00 18 */ blt lbl_802CEDD8
+/* 802CEDC4 002CAA24 3C 60 00 0E */ lis r3, 0x000E0001@ha
+/* 802CEDC8 002CAA28 3C 80 80 44 */ lis r4, lbl_80442330@ha
+/* 802CEDCC 002CAA2C 38 63 00 01 */ addi r3, r3, 0x000E0001@l
+/* 802CEDD0 002CAA30 38 84 23 30 */ addi r4, r4, lbl_80442330@l
+/* 802CEDD4 002CAA34 4B FE E1 3D */ bl LogMsg_0
+lbl_802CEDD8:
+/* 802CEDD8 002CAA38 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CEDDC 002CAA3C 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CEDE0 002CAA40 88 03 00 28 */ lbz r0, 0x28(r3)
+/* 802CEDE4 002CAA44 28 00 00 02 */ cmplwi r0, 2
+/* 802CEDE8 002CAA48 41 80 00 14 */ blt lbl_802CEDFC
+/* 802CEDEC 002CAA4C 3C 60 00 0E */ lis r3, 0x000E0001@ha
+/* 802CEDF0 002CAA50 38 8D 8A 50 */ addi r4, r13, lbl_8063DD10-_SDA_BASE_
+/* 802CEDF4 002CAA54 38 63 00 01 */ addi r3, r3, 0x000E0001@l
+/* 802CEDF8 002CAA58 4B FE E1 19 */ bl LogMsg_0
+lbl_802CEDFC:
+/* 802CEDFC 002CAA5C 7F E3 FB 78 */ mr r3, r31
+/* 802CEE00 002CAA60 48 00 71 A9 */ bl func_802D5FA8
+/* 802CEE04 002CAA64 48 00 00 70 */ b lbl_802CEE74
+lbl_802CEE08:
+/* 802CEE08 002CAA68 38 00 00 03 */ li r0, 3
+/* 802CEE0C 002CAA6C 7F 44 D3 78 */ mr r4, r26
+/* 802CEE10 002CAA70 98 1D 00 00 */ stb r0, 0(r29)
+/* 802CEE14 002CAA74 38 7D 00 09 */ addi r3, r29, 9
+/* 802CEE18 002CAA78 38 A0 00 06 */ li r5, 6
+/* 802CEE1C 002CAA7C 4B D3 51 E5 */ bl memcpy
+/* 802CEE20 002CAA80 B3 FD 00 06 */ sth r31, 6(r29)
+/* 802CEE24 002CAA84 7F 43 D3 78 */ mr r3, r26
+/* 802CEE28 002CAA88 7F 84 E3 78 */ mr r4, r28
+/* 802CEE2C 002CAA8C 7F E5 FB 78 */ mr r5, r31
+/* 802CEE30 002CAA90 38 C0 00 00 */ li r6, 0
+/* 802CEE34 002CAA94 38 E0 00 00 */ li r7, 0
+/* 802CEE38 002CAA98 48 00 6E 59 */ bl func_802D5C90
+/* 802CEE3C 002CAA9C 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CEE40 002CAAA0 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CEE44 002CAAA4 88 03 00 28 */ lbz r0, 0x28(r3)
+/* 802CEE48 002CAAA8 28 00 00 04 */ cmplwi r0, 4
+/* 802CEE4C 002CAAAC 41 80 00 1C */ blt lbl_802CEE68
+/* 802CEE50 002CAAB0 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CEE54 002CAAB4 3C 80 80 44 */ lis r4, lbl_80442374@ha
+/* 802CEE58 002CAAB8 A0 BD 00 06 */ lhz r5, 6(r29)
+/* 802CEE5C 002CAABC 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CEE60 002CAAC0 38 84 23 74 */ addi r4, r4, lbl_80442374@l
+/* 802CEE64 002CAAC4 4B FE E0 C5 */ bl LogMsg_1
+lbl_802CEE68:
+/* 802CEE68 002CAAC8 7F E3 FB 78 */ mr r3, r31
+/* 802CEE6C 002CAACC 38 9D 00 24 */ addi r4, r29, 0x24
+/* 802CEE70 002CAAD0 48 00 6F B1 */ bl func_802D5E20
+lbl_802CEE74:
+/* 802CEE74 002CAAD4 39 61 00 20 */ addi r11, r1, 0x20
+/* 802CEE78 002CAAD8 4B EF 82 F9 */ bl _restgpr_26
+/* 802CEE7C 002CAADC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802CEE80 002CAAE0 7C 08 03 A6 */ mtlr r0
+/* 802CEE84 002CAAE4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802CEE88 002CAAE8 4E 80 00 20 */ blr
+
+gap_connect_cfm:
+/* 802CEE8C 002CAAEC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802CEE90 002CAAF0 7C 08 02 A6 */ mflr r0
+/* 802CEE94 002CAAF4 3C A0 80 57 */ lis r5, lbl_8056B340@ha
+/* 802CEE98 002CAAF8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802CEE9C 002CAAFC 38 00 00 02 */ li r0, 2
+/* 802CEEA0 002CAB00 38 A5 B3 40 */ addi r5, r5, lbl_8056B340@l
+/* 802CEEA4 002CAB04 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802CEEA8 002CAB08 3B E5 00 AC */ addi r31, r5, 0xac
+/* 802CEEAC 002CAB0C 38 A0 00 00 */ li r5, 0
+/* 802CEEB0 002CAB10 93 C1 00 08 */ stw r30, 8(r1)
+/* 802CEEB4 002CAB14 7C 09 03 A6 */ mtctr r0
+lbl_802CEEB8:
+/* 802CEEB8 002CAB18 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802CEEBC 002CAB1C 2C 00 00 00 */ cmpwi r0, 0
+/* 802CEEC0 002CAB20 41 82 00 14 */ beq lbl_802CEED4
+/* 802CEEC4 002CAB24 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CEEC8 002CAB28 7C 00 18 40 */ cmplw r0, r3
+/* 802CEECC 002CAB2C 40 82 00 08 */ bne lbl_802CEED4
+/* 802CEED0 002CAB30 48 00 00 74 */ b lbl_802CEF44
+lbl_802CEED4:
+/* 802CEED4 002CAB34 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CEED8 002CAB38 38 A5 00 01 */ addi r5, r5, 1
+/* 802CEEDC 002CAB3C 2C 00 00 00 */ cmpwi r0, 0
+/* 802CEEE0 002CAB40 41 82 00 14 */ beq lbl_802CEEF4
+/* 802CEEE4 002CAB44 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CEEE8 002CAB48 7C 00 18 40 */ cmplw r0, r3
+/* 802CEEEC 002CAB4C 40 82 00 08 */ bne lbl_802CEEF4
+/* 802CEEF0 002CAB50 48 00 00 54 */ b lbl_802CEF44
+lbl_802CEEF4:
+/* 802CEEF4 002CAB54 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CEEF8 002CAB58 38 A5 00 01 */ addi r5, r5, 1
+/* 802CEEFC 002CAB5C 2C 00 00 00 */ cmpwi r0, 0
+/* 802CEF00 002CAB60 41 82 00 14 */ beq lbl_802CEF14
+/* 802CEF04 002CAB64 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CEF08 002CAB68 7C 00 18 40 */ cmplw r0, r3
+/* 802CEF0C 002CAB6C 40 82 00 08 */ bne lbl_802CEF14
+/* 802CEF10 002CAB70 48 00 00 34 */ b lbl_802CEF44
+lbl_802CEF14:
+/* 802CEF14 002CAB74 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CEF18 002CAB78 38 A5 00 01 */ addi r5, r5, 1
+/* 802CEF1C 002CAB7C 2C 00 00 00 */ cmpwi r0, 0
+/* 802CEF20 002CAB80 41 82 00 14 */ beq lbl_802CEF34
+/* 802CEF24 002CAB84 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CEF28 002CAB88 7C 00 18 40 */ cmplw r0, r3
+/* 802CEF2C 002CAB8C 40 82 00 08 */ bne lbl_802CEF34
+/* 802CEF30 002CAB90 48 00 00 14 */ b lbl_802CEF44
+lbl_802CEF34:
+/* 802CEF34 002CAB94 38 A5 00 01 */ addi r5, r5, 1
+/* 802CEF38 002CAB98 3B FF 00 60 */ addi r31, r31, 0x60
+/* 802CEF3C 002CAB9C 42 00 FF 7C */ bdnz lbl_802CEEB8
+/* 802CEF40 002CABA0 3B E0 00 00 */ li r31, 0
+lbl_802CEF44:
+/* 802CEF44 002CABA4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802CEF48 002CABA8 41 82 01 08 */ beq lbl_802CF050
+/* 802CEF4C 002CABAC 2C 04 00 00 */ cmpwi r4, 0
+/* 802CEF50 002CABB0 40 82 00 24 */ bne lbl_802CEF74
+/* 802CEF54 002CABB4 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802CEF58 002CABB8 28 00 00 02 */ cmplwi r0, 2
+/* 802CEF5C 002CABBC 40 82 00 18 */ bne lbl_802CEF74
+/* 802CEF60 002CABC0 38 00 00 03 */ li r0, 3
+/* 802CEF64 002CABC4 38 9F 00 24 */ addi r4, r31, 0x24
+/* 802CEF68 002CABC8 98 1F 00 00 */ stb r0, 0(r31)
+/* 802CEF6C 002CABCC 48 00 6E B5 */ bl func_802D5E20
+/* 802CEF70 002CABD0 48 00 00 E0 */ b lbl_802CF050
+lbl_802CEF74:
+/* 802CEF74 002CABD4 81 9F 00 20 */ lwz r12, 0x20(r31)
+/* 802CEF78 002CABD8 2C 0C 00 00 */ cmpwi r12, 0
+/* 802CEF7C 002CABDC 41 82 00 14 */ beq lbl_802CEF90
+/* 802CEF80 002CABE0 A0 7F 00 04 */ lhz r3, 4(r31)
+/* 802CEF84 002CABE4 38 80 01 01 */ li r4, 0x101
+/* 802CEF88 002CABE8 7D 89 03 A6 */ mtctr r12
+/* 802CEF8C 002CABEC 4E 80 04 21 */ bctrl
+lbl_802CEF90:
+/* 802CEF90 002CABF0 A3 DF 00 10 */ lhz r30, 0x10(r31)
+/* 802CEF94 002CABF4 48 00 00 10 */ b lbl_802CEFA4
+lbl_802CEF98:
+/* 802CEF98 002CABF8 38 7F 00 14 */ addi r3, r31, 0x14
+/* 802CEF9C 002CABFC 4B FE B4 35 */ bl GKI_dequeue
+/* 802CEFA0 002CAC00 4B FE AD 95 */ bl GKI_freebuf
+lbl_802CEFA4:
+/* 802CEFA4 002CAC04 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 802CEFA8 002CAC08 2C 00 00 00 */ cmpwi r0, 0
+/* 802CEFAC 002CAC0C 40 82 FF EC */ bne lbl_802CEF98
+/* 802CEFB0 002CAC10 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CEFB4 002CAC14 38 80 00 00 */ li r4, 0
+/* 802CEFB8 002CAC18 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CEFBC 002CAC1C 38 00 00 02 */ li r0, 2
+/* 802CEFC0 002CAC20 98 9F 00 00 */ stb r4, 0(r31)
+/* 802CEFC4 002CAC24 38 83 00 AC */ addi r4, r3, 0xac
+/* 802CEFC8 002CAC28 38 60 00 00 */ li r3, 0
+/* 802CEFCC 002CAC2C 7C 09 03 A6 */ mtctr r0
+lbl_802CEFD0:
+/* 802CEFD0 002CAC30 88 04 00 00 */ lbz r0, 0(r4)
+/* 802CEFD4 002CAC34 2C 00 00 00 */ cmpwi r0, 0
+/* 802CEFD8 002CAC38 41 82 00 10 */ beq lbl_802CEFE8
+/* 802CEFDC 002CAC3C A0 04 00 10 */ lhz r0, 0x10(r4)
+/* 802CEFE0 002CAC40 7C 00 F0 40 */ cmplw r0, r30
+/* 802CEFE4 002CAC44 41 82 00 6C */ beq lbl_802CF050
+lbl_802CEFE8:
+/* 802CEFE8 002CAC48 88 04 00 60 */ lbz r0, 0x60(r4)
+/* 802CEFEC 002CAC4C 38 63 00 01 */ addi r3, r3, 1
+/* 802CEFF0 002CAC50 2C 00 00 00 */ cmpwi r0, 0
+/* 802CEFF4 002CAC54 41 82 00 10 */ beq lbl_802CF004
+/* 802CEFF8 002CAC58 A0 04 00 70 */ lhz r0, 0x70(r4)
+/* 802CEFFC 002CAC5C 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF000 002CAC60 41 82 00 50 */ beq lbl_802CF050
+lbl_802CF004:
+/* 802CF004 002CAC64 88 04 00 C0 */ lbz r0, 0xc0(r4)
+/* 802CF008 002CAC68 38 63 00 01 */ addi r3, r3, 1
+/* 802CF00C 002CAC6C 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF010 002CAC70 41 82 00 10 */ beq lbl_802CF020
+/* 802CF014 002CAC74 A0 04 00 D0 */ lhz r0, 0xd0(r4)
+/* 802CF018 002CAC78 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF01C 002CAC7C 41 82 00 34 */ beq lbl_802CF050
+lbl_802CF020:
+/* 802CF020 002CAC80 88 04 01 20 */ lbz r0, 0x120(r4)
+/* 802CF024 002CAC84 38 63 00 01 */ addi r3, r3, 1
+/* 802CF028 002CAC88 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF02C 002CAC8C 41 82 00 10 */ beq lbl_802CF03C
+/* 802CF030 002CAC90 A0 04 01 30 */ lhz r0, 0x130(r4)
+/* 802CF034 002CAC94 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF038 002CAC98 41 82 00 18 */ beq lbl_802CF050
+lbl_802CF03C:
+/* 802CF03C 002CAC9C 38 63 00 01 */ addi r3, r3, 1
+/* 802CF040 002CACA0 38 84 01 80 */ addi r4, r4, 0x180
+/* 802CF044 002CACA4 42 00 FF 8C */ bdnz lbl_802CEFD0
+/* 802CF048 002CACA8 7F C3 F3 78 */ mr r3, r30
+/* 802CF04C 002CACAC 48 00 69 81 */ bl func_802D59CC
+lbl_802CF050:
+/* 802CF050 002CACB0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802CF054 002CACB4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802CF058 002CACB8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802CF05C 002CACBC 7C 08 03 A6 */ mtlr r0
+/* 802CF060 002CACC0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802CF064 002CACC4 4E 80 00 20 */ blr
+
+gap_config_ind:
+/* 802CF068 002CACC8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802CF06C 002CACCC 7C 08 02 A6 */ mflr r0
+/* 802CF070 002CACD0 3C A0 80 57 */ lis r5, lbl_8056B340@ha
+/* 802CF074 002CACD4 38 C0 00 00 */ li r6, 0
+/* 802CF078 002CACD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802CF07C 002CACDC 38 00 00 02 */ li r0, 2
+/* 802CF080 002CACE0 38 A5 B3 40 */ addi r5, r5, lbl_8056B340@l
+/* 802CF084 002CACE4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802CF088 002CACE8 3B E5 00 AC */ addi r31, r5, 0xac
+/* 802CF08C 002CACEC 7C 09 03 A6 */ mtctr r0
+lbl_802CF090:
+/* 802CF090 002CACF0 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802CF094 002CACF4 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF098 002CACF8 41 82 00 14 */ beq lbl_802CF0AC
+/* 802CF09C 002CACFC A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF0A0 002CAD00 7C 00 18 40 */ cmplw r0, r3
+/* 802CF0A4 002CAD04 40 82 00 08 */ bne lbl_802CF0AC
+/* 802CF0A8 002CAD08 48 00 00 74 */ b lbl_802CF11C
+lbl_802CF0AC:
+/* 802CF0AC 002CAD0C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF0B0 002CAD10 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF0B4 002CAD14 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF0B8 002CAD18 41 82 00 14 */ beq lbl_802CF0CC
+/* 802CF0BC 002CAD1C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF0C0 002CAD20 7C 00 18 40 */ cmplw r0, r3
+/* 802CF0C4 002CAD24 40 82 00 08 */ bne lbl_802CF0CC
+/* 802CF0C8 002CAD28 48 00 00 54 */ b lbl_802CF11C
+lbl_802CF0CC:
+/* 802CF0CC 002CAD2C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF0D0 002CAD30 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF0D4 002CAD34 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF0D8 002CAD38 41 82 00 14 */ beq lbl_802CF0EC
+/* 802CF0DC 002CAD3C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF0E0 002CAD40 7C 00 18 40 */ cmplw r0, r3
+/* 802CF0E4 002CAD44 40 82 00 08 */ bne lbl_802CF0EC
+/* 802CF0E8 002CAD48 48 00 00 34 */ b lbl_802CF11C
+lbl_802CF0EC:
+/* 802CF0EC 002CAD4C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF0F0 002CAD50 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF0F4 002CAD54 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF0F8 002CAD58 41 82 00 14 */ beq lbl_802CF10C
+/* 802CF0FC 002CAD5C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF100 002CAD60 7C 00 18 40 */ cmplw r0, r3
+/* 802CF104 002CAD64 40 82 00 08 */ bne lbl_802CF10C
+/* 802CF108 002CAD68 48 00 00 14 */ b lbl_802CF11C
+lbl_802CF10C:
+/* 802CF10C 002CAD6C 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF110 002CAD70 3B FF 00 60 */ addi r31, r31, 0x60
+/* 802CF114 002CAD74 42 00 FF 7C */ bdnz lbl_802CF090
+/* 802CF118 002CAD78 3B E0 00 00 */ li r31, 0
+lbl_802CF11C:
+/* 802CF11C 002CAD7C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802CF120 002CAD80 41 82 00 70 */ beq lbl_802CF190
+/* 802CF124 002CAD84 88 04 00 02 */ lbz r0, 2(r4)
+/* 802CF128 002CAD88 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF12C 002CAD8C 41 82 00 10 */ beq lbl_802CF13C
+/* 802CF130 002CAD90 A0 04 00 04 */ lhz r0, 4(r4)
+/* 802CF134 002CAD94 28 00 06 9B */ cmplwi r0, 0x69b
+/* 802CF138 002CAD98 40 81 00 10 */ ble lbl_802CF148
+lbl_802CF13C:
+/* 802CF13C 002CAD9C 38 00 06 9B */ li r0, 0x69b
+/* 802CF140 002CADA0 B0 1F 00 12 */ sth r0, 0x12(r31)
+/* 802CF144 002CADA4 48 00 00 08 */ b lbl_802CF14C
+lbl_802CF148:
+/* 802CF148 002CADA8 B0 1F 00 12 */ sth r0, 0x12(r31)
+lbl_802CF14C:
+/* 802CF14C 002CADAC 38 00 00 00 */ li r0, 0
+/* 802CF150 002CADB0 98 04 00 20 */ stb r0, 0x20(r4)
+/* 802CF154 002CADB4 98 04 00 02 */ stb r0, 2(r4)
+/* 802CF158 002CADB8 B0 04 00 00 */ sth r0, 0(r4)
+/* 802CF15C 002CADBC 48 00 6D 7D */ bl func_802D5ED8
+/* 802CF160 002CADC0 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802CF164 002CADC4 60 03 00 02 */ ori r3, r0, 2
+/* 802CF168 002CADC8 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
+/* 802CF16C 002CADCC 98 7F 00 01 */ stb r3, 1(r31)
+/* 802CF170 002CADD0 41 82 00 20 */ beq lbl_802CF190
+/* 802CF174 002CADD4 38 00 00 04 */ li r0, 4
+/* 802CF178 002CADD8 38 80 01 00 */ li r4, 0x100
+/* 802CF17C 002CADDC 98 1F 00 00 */ stb r0, 0(r31)
+/* 802CF180 002CADE0 81 9F 00 20 */ lwz r12, 0x20(r31)
+/* 802CF184 002CADE4 A0 7F 00 04 */ lhz r3, 4(r31)
+/* 802CF188 002CADE8 7D 89 03 A6 */ mtctr r12
+/* 802CF18C 002CADEC 4E 80 04 21 */ bctrl
+lbl_802CF190:
+/* 802CF190 002CADF0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802CF194 002CADF4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802CF198 002CADF8 7C 08 03 A6 */ mtlr r0
+/* 802CF19C 002CADFC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802CF1A0 002CAE00 4E 80 00 20 */ blr
+
+gap_config_cfm:
+/* 802CF1A4 002CAE04 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802CF1A8 002CAE08 7C 08 02 A6 */ mflr r0
+/* 802CF1AC 002CAE0C 3C A0 80 57 */ lis r5, lbl_8056B340@ha
+/* 802CF1B0 002CAE10 38 C0 00 00 */ li r6, 0
+/* 802CF1B4 002CAE14 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802CF1B8 002CAE18 38 00 00 02 */ li r0, 2
+/* 802CF1BC 002CAE1C 38 A5 B3 40 */ addi r5, r5, lbl_8056B340@l
+/* 802CF1C0 002CAE20 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802CF1C4 002CAE24 3B E5 00 AC */ addi r31, r5, 0xac
+/* 802CF1C8 002CAE28 93 C1 00 08 */ stw r30, 8(r1)
+/* 802CF1CC 002CAE2C 7C 09 03 A6 */ mtctr r0
+lbl_802CF1D0:
+/* 802CF1D0 002CAE30 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802CF1D4 002CAE34 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF1D8 002CAE38 41 82 00 14 */ beq lbl_802CF1EC
+/* 802CF1DC 002CAE3C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF1E0 002CAE40 7C 00 18 40 */ cmplw r0, r3
+/* 802CF1E4 002CAE44 40 82 00 08 */ bne lbl_802CF1EC
+/* 802CF1E8 002CAE48 48 00 00 74 */ b lbl_802CF25C
+lbl_802CF1EC:
+/* 802CF1EC 002CAE4C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF1F0 002CAE50 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF1F4 002CAE54 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF1F8 002CAE58 41 82 00 14 */ beq lbl_802CF20C
+/* 802CF1FC 002CAE5C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF200 002CAE60 7C 00 18 40 */ cmplw r0, r3
+/* 802CF204 002CAE64 40 82 00 08 */ bne lbl_802CF20C
+/* 802CF208 002CAE68 48 00 00 54 */ b lbl_802CF25C
+lbl_802CF20C:
+/* 802CF20C 002CAE6C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF210 002CAE70 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF214 002CAE74 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF218 002CAE78 41 82 00 14 */ beq lbl_802CF22C
+/* 802CF21C 002CAE7C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF220 002CAE80 7C 00 18 40 */ cmplw r0, r3
+/* 802CF224 002CAE84 40 82 00 08 */ bne lbl_802CF22C
+/* 802CF228 002CAE88 48 00 00 34 */ b lbl_802CF25C
+lbl_802CF22C:
+/* 802CF22C 002CAE8C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF230 002CAE90 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF234 002CAE94 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF238 002CAE98 41 82 00 14 */ beq lbl_802CF24C
+/* 802CF23C 002CAE9C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF240 002CAEA0 7C 00 18 40 */ cmplw r0, r3
+/* 802CF244 002CAEA4 40 82 00 08 */ bne lbl_802CF24C
+/* 802CF248 002CAEA8 48 00 00 14 */ b lbl_802CF25C
+lbl_802CF24C:
+/* 802CF24C 002CAEAC 38 C6 00 01 */ addi r6, r6, 1
+/* 802CF250 002CAEB0 3B FF 00 60 */ addi r31, r31, 0x60
+/* 802CF254 002CAEB4 42 00 FF 7C */ bdnz lbl_802CF1D0
+/* 802CF258 002CAEB8 3B E0 00 00 */ li r31, 0
+lbl_802CF25C:
+/* 802CF25C 002CAEBC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802CF260 002CAEC0 41 82 01 18 */ beq lbl_802CF378
+/* 802CF264 002CAEC4 A0 04 00 00 */ lhz r0, 0(r4)
+/* 802CF268 002CAEC8 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF26C 002CAECC 40 82 00 38 */ bne lbl_802CF2A4
+/* 802CF270 002CAED0 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802CF274 002CAED4 60 03 00 04 */ ori r3, r0, 4
+/* 802CF278 002CAED8 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
+/* 802CF27C 002CAEDC 98 7F 00 01 */ stb r3, 1(r31)
+/* 802CF280 002CAEE0 41 82 00 F8 */ beq lbl_802CF378
+/* 802CF284 002CAEE4 38 00 00 04 */ li r0, 4
+/* 802CF288 002CAEE8 38 80 01 00 */ li r4, 0x100
+/* 802CF28C 002CAEEC 98 1F 00 00 */ stb r0, 0(r31)
+/* 802CF290 002CAEF0 81 9F 00 20 */ lwz r12, 0x20(r31)
+/* 802CF294 002CAEF4 A0 7F 00 04 */ lhz r3, 4(r31)
+/* 802CF298 002CAEF8 7D 89 03 A6 */ mtctr r12
+/* 802CF29C 002CAEFC 4E 80 04 21 */ bctrl
+/* 802CF2A0 002CAF00 48 00 00 D8 */ b lbl_802CF378
+lbl_802CF2A4:
+/* 802CF2A4 002CAF04 81 9F 00 20 */ lwz r12, 0x20(r31)
+/* 802CF2A8 002CAF08 38 80 01 01 */ li r4, 0x101
+/* 802CF2AC 002CAF0C A0 7F 00 04 */ lhz r3, 4(r31)
+/* 802CF2B0 002CAF10 7D 89 03 A6 */ mtctr r12
+/* 802CF2B4 002CAF14 4E 80 04 21 */ bctrl
+/* 802CF2B8 002CAF18 A3 DF 00 10 */ lhz r30, 0x10(r31)
+/* 802CF2BC 002CAF1C 48 00 00 10 */ b lbl_802CF2CC
+lbl_802CF2C0:
+/* 802CF2C0 002CAF20 38 7F 00 14 */ addi r3, r31, 0x14
+/* 802CF2C4 002CAF24 4B FE B1 0D */ bl GKI_dequeue
+/* 802CF2C8 002CAF28 4B FE AA 6D */ bl GKI_freebuf
+lbl_802CF2CC:
+/* 802CF2CC 002CAF2C 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 802CF2D0 002CAF30 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF2D4 002CAF34 40 82 FF EC */ bne lbl_802CF2C0
+/* 802CF2D8 002CAF38 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CF2DC 002CAF3C 38 80 00 00 */ li r4, 0
+/* 802CF2E0 002CAF40 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CF2E4 002CAF44 38 00 00 02 */ li r0, 2
+/* 802CF2E8 002CAF48 98 9F 00 00 */ stb r4, 0(r31)
+/* 802CF2EC 002CAF4C 38 83 00 AC */ addi r4, r3, 0xac
+/* 802CF2F0 002CAF50 38 60 00 00 */ li r3, 0
+/* 802CF2F4 002CAF54 7C 09 03 A6 */ mtctr r0
+lbl_802CF2F8:
+/* 802CF2F8 002CAF58 88 04 00 00 */ lbz r0, 0(r4)
+/* 802CF2FC 002CAF5C 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF300 002CAF60 41 82 00 10 */ beq lbl_802CF310
+/* 802CF304 002CAF64 A0 04 00 10 */ lhz r0, 0x10(r4)
+/* 802CF308 002CAF68 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF30C 002CAF6C 41 82 00 6C */ beq lbl_802CF378
+lbl_802CF310:
+/* 802CF310 002CAF70 88 04 00 60 */ lbz r0, 0x60(r4)
+/* 802CF314 002CAF74 38 63 00 01 */ addi r3, r3, 1
+/* 802CF318 002CAF78 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF31C 002CAF7C 41 82 00 10 */ beq lbl_802CF32C
+/* 802CF320 002CAF80 A0 04 00 70 */ lhz r0, 0x70(r4)
+/* 802CF324 002CAF84 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF328 002CAF88 41 82 00 50 */ beq lbl_802CF378
+lbl_802CF32C:
+/* 802CF32C 002CAF8C 88 04 00 C0 */ lbz r0, 0xc0(r4)
+/* 802CF330 002CAF90 38 63 00 01 */ addi r3, r3, 1
+/* 802CF334 002CAF94 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF338 002CAF98 41 82 00 10 */ beq lbl_802CF348
+/* 802CF33C 002CAF9C A0 04 00 D0 */ lhz r0, 0xd0(r4)
+/* 802CF340 002CAFA0 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF344 002CAFA4 41 82 00 34 */ beq lbl_802CF378
+lbl_802CF348:
+/* 802CF348 002CAFA8 88 04 01 20 */ lbz r0, 0x120(r4)
+/* 802CF34C 002CAFAC 38 63 00 01 */ addi r3, r3, 1
+/* 802CF350 002CAFB0 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF354 002CAFB4 41 82 00 10 */ beq lbl_802CF364
+/* 802CF358 002CAFB8 A0 04 01 30 */ lhz r0, 0x130(r4)
+/* 802CF35C 002CAFBC 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF360 002CAFC0 41 82 00 18 */ beq lbl_802CF378
+lbl_802CF364:
+/* 802CF364 002CAFC4 38 63 00 01 */ addi r3, r3, 1
+/* 802CF368 002CAFC8 38 84 01 80 */ addi r4, r4, 0x180
+/* 802CF36C 002CAFCC 42 00 FF 8C */ bdnz lbl_802CF2F8
+/* 802CF370 002CAFD0 7F C3 F3 78 */ mr r3, r30
+/* 802CF374 002CAFD4 48 00 66 59 */ bl func_802D59CC
+lbl_802CF378:
+/* 802CF378 002CAFD8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802CF37C 002CAFDC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802CF380 002CAFE0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802CF384 002CAFE4 7C 08 03 A6 */ mtlr r0
+/* 802CF388 002CAFE8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802CF38C 002CAFEC 4E 80 00 20 */ blr
+
+gap_disconnect_ind:
+/* 802CF390 002CAFF0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CF394 002CAFF4 7C 08 02 A6 */ mflr r0
+/* 802CF398 002CAFF8 3C A0 80 57 */ lis r5, lbl_8056B340@ha
+/* 802CF39C 002CAFFC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CF3A0 002CB000 38 A5 B3 40 */ addi r5, r5, lbl_8056B340@l
+/* 802CF3A4 002CB004 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802CF3A8 002CB008 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802CF3AC 002CB00C 7C 9E 23 78 */ mr r30, r4
+/* 802CF3B0 002CB010 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802CF3B4 002CB014 7C 7D 1B 78 */ mr r29, r3
+/* 802CF3B8 002CB018 88 05 00 28 */ lbz r0, 0x28(r5)
+/* 802CF3BC 002CB01C 28 00 00 04 */ cmplwi r0, 4
+/* 802CF3C0 002CB020 41 80 00 1C */ blt lbl_802CF3DC
+/* 802CF3C4 002CB024 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CF3C8 002CB028 3C 80 80 44 */ lis r4, lbl_804423A0@ha
+/* 802CF3CC 002CB02C 7F A5 EB 78 */ mr r5, r29
+/* 802CF3D0 002CB030 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CF3D4 002CB034 38 84 23 A0 */ addi r4, r4, lbl_804423A0@l
+/* 802CF3D8 002CB038 4B FE DB 51 */ bl LogMsg_1
+lbl_802CF3DC:
+/* 802CF3DC 002CB03C 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CF3E0 002CB040 38 00 00 02 */ li r0, 2
+/* 802CF3E4 002CB044 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CF3E8 002CB048 38 80 00 00 */ li r4, 0
+/* 802CF3EC 002CB04C 3B E3 00 AC */ addi r31, r3, 0xac
+/* 802CF3F0 002CB050 7C 09 03 A6 */ mtctr r0
+lbl_802CF3F4:
+/* 802CF3F4 002CB054 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802CF3F8 002CB058 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF3FC 002CB05C 41 82 00 14 */ beq lbl_802CF410
+/* 802CF400 002CB060 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF404 002CB064 7C 00 E8 40 */ cmplw r0, r29
+/* 802CF408 002CB068 40 82 00 08 */ bne lbl_802CF410
+/* 802CF40C 002CB06C 48 00 00 74 */ b lbl_802CF480
+lbl_802CF410:
+/* 802CF410 002CB070 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF414 002CB074 38 84 00 01 */ addi r4, r4, 1
+/* 802CF418 002CB078 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF41C 002CB07C 41 82 00 14 */ beq lbl_802CF430
+/* 802CF420 002CB080 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF424 002CB084 7C 00 E8 40 */ cmplw r0, r29
+/* 802CF428 002CB088 40 82 00 08 */ bne lbl_802CF430
+/* 802CF42C 002CB08C 48 00 00 54 */ b lbl_802CF480
+lbl_802CF430:
+/* 802CF430 002CB090 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF434 002CB094 38 84 00 01 */ addi r4, r4, 1
+/* 802CF438 002CB098 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF43C 002CB09C 41 82 00 14 */ beq lbl_802CF450
+/* 802CF440 002CB0A0 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF444 002CB0A4 7C 00 E8 40 */ cmplw r0, r29
+/* 802CF448 002CB0A8 40 82 00 08 */ bne lbl_802CF450
+/* 802CF44C 002CB0AC 48 00 00 34 */ b lbl_802CF480
+lbl_802CF450:
+/* 802CF450 002CB0B0 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF454 002CB0B4 38 84 00 01 */ addi r4, r4, 1
+/* 802CF458 002CB0B8 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF45C 002CB0BC 41 82 00 14 */ beq lbl_802CF470
+/* 802CF460 002CB0C0 A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF464 002CB0C4 7C 00 E8 40 */ cmplw r0, r29
+/* 802CF468 002CB0C8 40 82 00 08 */ bne lbl_802CF470
+/* 802CF46C 002CB0CC 48 00 00 14 */ b lbl_802CF480
+lbl_802CF470:
+/* 802CF470 002CB0D0 38 84 00 01 */ addi r4, r4, 1
+/* 802CF474 002CB0D4 3B FF 00 60 */ addi r31, r31, 0x60
+/* 802CF478 002CB0D8 42 00 FF 7C */ bdnz lbl_802CF3F4
+/* 802CF47C 002CB0DC 3B E0 00 00 */ li r31, 0
+lbl_802CF480:
+/* 802CF480 002CB0E0 2C 1F 00 00 */ cmpwi r31, 0
+/* 802CF484 002CB0E4 41 82 00 E8 */ beq lbl_802CF56C
+/* 802CF488 002CB0E8 2C 1E 00 00 */ cmpwi r30, 0
+/* 802CF48C 002CB0EC 41 82 00 0C */ beq lbl_802CF498
+/* 802CF490 002CB0F0 7F A3 EB 78 */ mr r3, r29
+/* 802CF494 002CB0F4 48 00 6B B9 */ bl func_802D604C
+lbl_802CF498:
+/* 802CF498 002CB0F8 81 9F 00 20 */ lwz r12, 0x20(r31)
+/* 802CF49C 002CB0FC 38 80 01 01 */ li r4, 0x101
+/* 802CF4A0 002CB100 A0 7F 00 04 */ lhz r3, 4(r31)
+/* 802CF4A4 002CB104 7D 89 03 A6 */ mtctr r12
+/* 802CF4A8 002CB108 4E 80 04 21 */ bctrl
+/* 802CF4AC 002CB10C A3 DF 00 10 */ lhz r30, 0x10(r31)
+/* 802CF4B0 002CB110 48 00 00 10 */ b lbl_802CF4C0
+lbl_802CF4B4:
+/* 802CF4B4 002CB114 38 7F 00 14 */ addi r3, r31, 0x14
+/* 802CF4B8 002CB118 4B FE AF 19 */ bl GKI_dequeue
+/* 802CF4BC 002CB11C 4B FE A8 79 */ bl GKI_freebuf
+lbl_802CF4C0:
+/* 802CF4C0 002CB120 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 802CF4C4 002CB124 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF4C8 002CB128 40 82 FF EC */ bne lbl_802CF4B4
+/* 802CF4CC 002CB12C 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CF4D0 002CB130 38 80 00 00 */ li r4, 0
+/* 802CF4D4 002CB134 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CF4D8 002CB138 38 00 00 02 */ li r0, 2
+/* 802CF4DC 002CB13C 98 9F 00 00 */ stb r4, 0(r31)
+/* 802CF4E0 002CB140 38 83 00 AC */ addi r4, r3, 0xac
+/* 802CF4E4 002CB144 38 60 00 00 */ li r3, 0
+/* 802CF4E8 002CB148 7C 09 03 A6 */ mtctr r0
+lbl_802CF4EC:
+/* 802CF4EC 002CB14C 88 04 00 00 */ lbz r0, 0(r4)
+/* 802CF4F0 002CB150 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF4F4 002CB154 41 82 00 10 */ beq lbl_802CF504
+/* 802CF4F8 002CB158 A0 04 00 10 */ lhz r0, 0x10(r4)
+/* 802CF4FC 002CB15C 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF500 002CB160 41 82 00 6C */ beq lbl_802CF56C
+lbl_802CF504:
+/* 802CF504 002CB164 88 04 00 60 */ lbz r0, 0x60(r4)
+/* 802CF508 002CB168 38 63 00 01 */ addi r3, r3, 1
+/* 802CF50C 002CB16C 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF510 002CB170 41 82 00 10 */ beq lbl_802CF520
+/* 802CF514 002CB174 A0 04 00 70 */ lhz r0, 0x70(r4)
+/* 802CF518 002CB178 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF51C 002CB17C 41 82 00 50 */ beq lbl_802CF56C
+lbl_802CF520:
+/* 802CF520 002CB180 88 04 00 C0 */ lbz r0, 0xc0(r4)
+/* 802CF524 002CB184 38 63 00 01 */ addi r3, r3, 1
+/* 802CF528 002CB188 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF52C 002CB18C 41 82 00 10 */ beq lbl_802CF53C
+/* 802CF530 002CB190 A0 04 00 D0 */ lhz r0, 0xd0(r4)
+/* 802CF534 002CB194 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF538 002CB198 41 82 00 34 */ beq lbl_802CF56C
+lbl_802CF53C:
+/* 802CF53C 002CB19C 88 04 01 20 */ lbz r0, 0x120(r4)
+/* 802CF540 002CB1A0 38 63 00 01 */ addi r3, r3, 1
+/* 802CF544 002CB1A4 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF548 002CB1A8 41 82 00 10 */ beq lbl_802CF558
+/* 802CF54C 002CB1AC A0 04 01 30 */ lhz r0, 0x130(r4)
+/* 802CF550 002CB1B0 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF554 002CB1B4 41 82 00 18 */ beq lbl_802CF56C
+lbl_802CF558:
+/* 802CF558 002CB1B8 38 63 00 01 */ addi r3, r3, 1
+/* 802CF55C 002CB1BC 38 84 01 80 */ addi r4, r4, 0x180
+/* 802CF560 002CB1C0 42 00 FF 8C */ bdnz lbl_802CF4EC
+/* 802CF564 002CB1C4 7F C3 F3 78 */ mr r3, r30
+/* 802CF568 002CB1C8 48 00 64 65 */ bl func_802D59CC
+lbl_802CF56C:
+/* 802CF56C 002CB1CC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802CF570 002CB1D0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802CF574 002CB1D4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802CF578 002CB1D8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802CF57C 002CB1DC 7C 08 03 A6 */ mtlr r0
+/* 802CF580 002CB1E0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802CF584 002CB1E4 4E 80 00 20 */ blr
+
+gap_data_ind:
+/* 802CF588 002CB1E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802CF58C 002CB1EC 7C 08 02 A6 */ mflr r0
+/* 802CF590 002CB1F0 3C A0 80 57 */ lis r5, lbl_8056B340@ha
+/* 802CF594 002CB1F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802CF598 002CB1F8 38 00 00 02 */ li r0, 2
+/* 802CF59C 002CB1FC 38 A5 B3 40 */ addi r5, r5, lbl_8056B340@l
+/* 802CF5A0 002CB200 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802CF5A4 002CB204 3B E5 00 AC */ addi r31, r5, 0xac
+/* 802CF5A8 002CB208 38 A0 00 00 */ li r5, 0
+/* 802CF5AC 002CB20C 7C 09 03 A6 */ mtctr r0
+lbl_802CF5B0:
+/* 802CF5B0 002CB210 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802CF5B4 002CB214 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF5B8 002CB218 41 82 00 14 */ beq lbl_802CF5CC
+/* 802CF5BC 002CB21C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF5C0 002CB220 7C 00 18 40 */ cmplw r0, r3
+/* 802CF5C4 002CB224 40 82 00 08 */ bne lbl_802CF5CC
+/* 802CF5C8 002CB228 48 00 00 74 */ b lbl_802CF63C
+lbl_802CF5CC:
+/* 802CF5CC 002CB22C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF5D0 002CB230 38 A5 00 01 */ addi r5, r5, 1
+/* 802CF5D4 002CB234 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF5D8 002CB238 41 82 00 14 */ beq lbl_802CF5EC
+/* 802CF5DC 002CB23C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF5E0 002CB240 7C 00 18 40 */ cmplw r0, r3
+/* 802CF5E4 002CB244 40 82 00 08 */ bne lbl_802CF5EC
+/* 802CF5E8 002CB248 48 00 00 54 */ b lbl_802CF63C
+lbl_802CF5EC:
+/* 802CF5EC 002CB24C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF5F0 002CB250 38 A5 00 01 */ addi r5, r5, 1
+/* 802CF5F4 002CB254 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF5F8 002CB258 41 82 00 14 */ beq lbl_802CF60C
+/* 802CF5FC 002CB25C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF600 002CB260 7C 00 18 40 */ cmplw r0, r3
+/* 802CF604 002CB264 40 82 00 08 */ bne lbl_802CF60C
+/* 802CF608 002CB268 48 00 00 34 */ b lbl_802CF63C
+lbl_802CF60C:
+/* 802CF60C 002CB26C 8C 1F 00 60 */ lbzu r0, 0x60(r31)
+/* 802CF610 002CB270 38 A5 00 01 */ addi r5, r5, 1
+/* 802CF614 002CB274 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF618 002CB278 41 82 00 14 */ beq lbl_802CF62C
+/* 802CF61C 002CB27C A0 1F 00 06 */ lhz r0, 6(r31)
+/* 802CF620 002CB280 7C 00 18 40 */ cmplw r0, r3
+/* 802CF624 002CB284 40 82 00 08 */ bne lbl_802CF62C
+/* 802CF628 002CB288 48 00 00 14 */ b lbl_802CF63C
+lbl_802CF62C:
+/* 802CF62C 002CB28C 38 A5 00 01 */ addi r5, r5, 1
+/* 802CF630 002CB290 3B FF 00 60 */ addi r31, r31, 0x60
+/* 802CF634 002CB294 42 00 FF 7C */ bdnz lbl_802CF5B0
+/* 802CF638 002CB298 3B E0 00 00 */ li r31, 0
+lbl_802CF63C:
+/* 802CF63C 002CB29C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802CF640 002CB2A0 40 82 00 10 */ bne lbl_802CF650
+/* 802CF644 002CB2A4 7C 83 23 78 */ mr r3, r4
+/* 802CF648 002CB2A8 4B FE A6 ED */ bl GKI_freebuf
+/* 802CF64C 002CB2AC 48 00 00 38 */ b lbl_802CF684
+lbl_802CF650:
+/* 802CF650 002CB2B0 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802CF654 002CB2B4 28 00 00 04 */ cmplwi r0, 4
+/* 802CF658 002CB2B8 40 82 00 24 */ bne lbl_802CF67C
+/* 802CF65C 002CB2BC 38 7F 00 14 */ addi r3, r31, 0x14
+/* 802CF660 002CB2C0 4B FE AA F5 */ bl GKI_enqueue
+/* 802CF664 002CB2C4 81 9F 00 20 */ lwz r12, 0x20(r31)
+/* 802CF668 002CB2C8 38 80 01 02 */ li r4, 0x102
+/* 802CF66C 002CB2CC A0 7F 00 04 */ lhz r3, 4(r31)
+/* 802CF670 002CB2D0 7D 89 03 A6 */ mtctr r12
+/* 802CF674 002CB2D4 4E 80 04 21 */ bctrl
+/* 802CF678 002CB2D8 48 00 00 0C */ b lbl_802CF684
+lbl_802CF67C:
+/* 802CF67C 002CB2DC 7C 83 23 78 */ mr r3, r4
+/* 802CF680 002CB2E0 4B FE A6 B5 */ bl GKI_freebuf
+lbl_802CF684:
+/* 802CF684 002CB2E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802CF688 002CB2E8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802CF68C 002CB2EC 7C 08 03 A6 */ mtlr r0
+/* 802CF690 002CB2F0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802CF694 002CB2F4 4E 80 00 20 */ blr
+
+gap_congestion_ind:
+/* 802CF698 002CB2F8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802CF69C 002CB2FC 7C 08 02 A6 */ mflr r0
+/* 802CF6A0 002CB300 3C A0 80 57 */ lis r5, lbl_8056B340@ha
+/* 802CF6A4 002CB304 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802CF6A8 002CB308 38 A5 B3 40 */ addi r5, r5, lbl_8056B340@l
+/* 802CF6AC 002CB30C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802CF6B0 002CB310 7C 9F 23 78 */ mr r31, r4
+/* 802CF6B4 002CB314 93 C1 00 08 */ stw r30, 8(r1)
+/* 802CF6B8 002CB318 7C 7E 1B 78 */ mr r30, r3
+/* 802CF6BC 002CB31C 88 05 00 28 */ lbz r0, 0x28(r5)
+/* 802CF6C0 002CB320 28 00 00 04 */ cmplwi r0, 4
+/* 802CF6C4 002CB324 41 80 00 20 */ blt lbl_802CF6E4
+/* 802CF6C8 002CB328 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CF6CC 002CB32C 3C 80 80 44 */ lis r4, lbl_804423C8@ha
+/* 802CF6D0 002CB330 7F E5 FB 78 */ mr r5, r31
+/* 802CF6D4 002CB334 7F C6 F3 78 */ mr r6, r30
+/* 802CF6D8 002CB338 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CF6DC 002CB33C 38 84 23 C8 */ addi r4, r4, lbl_804423C8@l
+/* 802CF6E0 002CB340 4B FE D8 61 */ bl LogMsg_2
+lbl_802CF6E4:
+/* 802CF6E4 002CB344 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CF6E8 002CB348 38 00 00 02 */ li r0, 2
+/* 802CF6EC 002CB34C 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CF6F0 002CB350 38 80 00 00 */ li r4, 0
+/* 802CF6F4 002CB354 38 63 00 AC */ addi r3, r3, 0xac
+/* 802CF6F8 002CB358 7C 09 03 A6 */ mtctr r0
+lbl_802CF6FC:
+/* 802CF6FC 002CB35C 88 03 00 00 */ lbz r0, 0(r3)
+/* 802CF700 002CB360 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF704 002CB364 41 82 00 14 */ beq lbl_802CF718
+/* 802CF708 002CB368 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802CF70C 002CB36C 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF710 002CB370 40 82 00 08 */ bne lbl_802CF718
+/* 802CF714 002CB374 48 00 00 74 */ b lbl_802CF788
+lbl_802CF718:
+/* 802CF718 002CB378 8C 03 00 60 */ lbzu r0, 0x60(r3)
+/* 802CF71C 002CB37C 38 84 00 01 */ addi r4, r4, 1
+/* 802CF720 002CB380 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF724 002CB384 41 82 00 14 */ beq lbl_802CF738
+/* 802CF728 002CB388 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802CF72C 002CB38C 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF730 002CB390 40 82 00 08 */ bne lbl_802CF738
+/* 802CF734 002CB394 48 00 00 54 */ b lbl_802CF788
+lbl_802CF738:
+/* 802CF738 002CB398 8C 03 00 60 */ lbzu r0, 0x60(r3)
+/* 802CF73C 002CB39C 38 84 00 01 */ addi r4, r4, 1
+/* 802CF740 002CB3A0 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF744 002CB3A4 41 82 00 14 */ beq lbl_802CF758
+/* 802CF748 002CB3A8 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802CF74C 002CB3AC 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF750 002CB3B0 40 82 00 08 */ bne lbl_802CF758
+/* 802CF754 002CB3B4 48 00 00 34 */ b lbl_802CF788
+lbl_802CF758:
+/* 802CF758 002CB3B8 8C 03 00 60 */ lbzu r0, 0x60(r3)
+/* 802CF75C 002CB3BC 38 84 00 01 */ addi r4, r4, 1
+/* 802CF760 002CB3C0 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF764 002CB3C4 41 82 00 14 */ beq lbl_802CF778
+/* 802CF768 002CB3C8 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802CF76C 002CB3CC 7C 00 F0 40 */ cmplw r0, r30
+/* 802CF770 002CB3D0 40 82 00 08 */ bne lbl_802CF778
+/* 802CF774 002CB3D4 48 00 00 14 */ b lbl_802CF788
+lbl_802CF778:
+/* 802CF778 002CB3D8 38 84 00 01 */ addi r4, r4, 1
+/* 802CF77C 002CB3DC 38 63 00 60 */ addi r3, r3, 0x60
+/* 802CF780 002CB3E0 42 00 FF 7C */ bdnz lbl_802CF6FC
+/* 802CF784 002CB3E4 38 60 00 00 */ li r3, 0
+lbl_802CF788:
+/* 802CF788 002CB3E8 2C 03 00 00 */ cmpwi r3, 0
+/* 802CF78C 002CB3EC 41 82 00 28 */ beq lbl_802CF7B4
+/* 802CF790 002CB3F0 7C 1F 00 D0 */ neg r0, r31
+/* 802CF794 002CB3F4 81 83 00 20 */ lwz r12, 0x20(r3)
+/* 802CF798 002CB3F8 7C 00 FB 78 */ or r0, r0, r31
+/* 802CF79C 002CB3FC A0 63 00 04 */ lhz r3, 4(r3)
+/* 802CF7A0 002CB400 7C 04 FE 70 */ srawi r4, r0, 0x1f
+/* 802CF7A4 002CB404 38 04 01 04 */ addi r0, r4, 0x104
+/* 802CF7A8 002CB408 54 04 04 3E */ clrlwi r4, r0, 0x10
+/* 802CF7AC 002CB40C 7D 89 03 A6 */ mtctr r12
+/* 802CF7B0 002CB410 4E 80 04 21 */ bctrl
+lbl_802CF7B4:
+/* 802CF7B4 002CB414 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802CF7B8 002CB418 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802CF7BC 002CB41C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802CF7C0 002CB420 7C 08 03 A6 */ mtlr r0
+/* 802CF7C4 002CB424 38 21 00 10 */ addi r1, r1, 0x10
+/* 802CF7C8 002CB428 4E 80 00 20 */ blr
diff --git a/asm/SDK/BTE/gap_utils.s b/asm/SDK/BTE/gap_utils.s new file mode 100644 index 0000000..9996790 --- /dev/null +++ b/asm/SDK/BTE/gap_utils.s @@ -0,0 +1,441 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+btm_cback:
+/* 802CF7CC 002CB42C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CF7D0 002CB430 7C 08 02 A6 */ mflr r0
+/* 802CF7D4 002CB434 3C E0 80 44 */ lis r7, lbl_80442400@ha
+/* 802CF7D8 002CB438 28 03 00 02 */ cmplwi r3, 2
+/* 802CF7DC 002CB43C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CF7E0 002CB440 38 E7 24 00 */ addi r7, r7, lbl_80442400@l
+/* 802CF7E4 002CB444 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802CF7E8 002CB448 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802CF7EC 002CB44C 7C 9E 23 78 */ mr r30, r4
+/* 802CF7F0 002CB450 40 80 01 9C */ bge lbl_802CF98C
+/* 802CF7F4 002CB454 3D 00 80 57 */ lis r8, lbl_8056B340@ha
+/* 802CF7F8 002CB458 54 60 23 36 */ rlwinm r0, r3, 4, 0xc, 0x1b
+/* 802CF7FC 002CB45C 39 08 B3 40 */ addi r8, r8, lbl_8056B340@l
+/* 802CF800 002CB460 7F E8 02 14 */ add r31, r8, r0
+/* 802CF804 002CB464 88 1F 00 0F */ lbz r0, 0xf(r31)
+/* 802CF808 002CB468 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF80C 002CB46C 41 82 01 80 */ beq lbl_802CF98C
+/* 802CF810 002CB470 A0 1F 00 0C */ lhz r0, 0xc(r31)
+/* 802CF814 002CB474 2C 00 00 03 */ cmpwi r0, 3
+/* 802CF818 002CB478 41 82 00 6C */ beq lbl_802CF884
+/* 802CF81C 002CB47C 40 80 00 10 */ bge lbl_802CF82C
+/* 802CF820 002CB480 2C 00 00 02 */ cmpwi r0, 2
+/* 802CF824 002CB484 40 80 00 14 */ bge lbl_802CF838
+/* 802CF828 002CB488 48 00 01 34 */ b lbl_802CF95C
+lbl_802CF82C:
+/* 802CF82C 002CB48C 2C 00 00 05 */ cmpwi r0, 5
+/* 802CF830 002CB490 40 80 01 2C */ bge lbl_802CF95C
+/* 802CF834 002CB494 48 00 00 9C */ b lbl_802CF8D0
+lbl_802CF838:
+/* 802CF838 002CB498 88 C4 00 01 */ lbz r6, 1(r4)
+/* 802CF83C 002CB49C 38 60 01 14 */ li r3, 0x114
+/* 802CF840 002CB4A0 88 08 00 28 */ lbz r0, 0x28(r8)
+/* 802CF844 002CB4A4 3B C1 00 08 */ addi r30, r1, 8
+/* 802CF848 002CB4A8 98 C1 00 0A */ stb r6, 0xa(r1)
+/* 802CF84C 002CB4AC 28 00 00 04 */ cmplwi r0, 4
+/* 802CF850 002CB4B0 88 04 00 00 */ lbz r0, 0(r4)
+/* 802CF854 002CB4B4 7C 00 00 34 */ cntlzw r0, r0
+/* 802CF858 002CB4B8 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f
+/* 802CF85C 002CB4BC 7C 00 00 D0 */ neg r0, r0
+/* 802CF860 002CB4C0 7C 60 00 78 */ andc r0, r3, r0
+/* 802CF864 002CB4C4 B0 01 00 08 */ sth r0, 8(r1)
+/* 802CF868 002CB4C8 41 80 00 F4 */ blt lbl_802CF95C
+/* 802CF86C 002CB4CC 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CF870 002CB4D0 38 87 00 00 */ addi r4, r7, 0
+/* 802CF874 002CB4D4 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CF878 002CB4D8 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 802CF87C 002CB4DC 4B FE D6 C5 */ bl LogMsg_2
+/* 802CF880 002CB4E0 48 00 00 DC */ b lbl_802CF95C
+lbl_802CF884:
+/* 802CF884 002CB4E4 A0 A4 00 00 */ lhz r5, 0(r4)
+/* 802CF888 002CB4E8 2C 05 00 00 */ cmpwi r5, 0
+/* 802CF88C 002CB4EC 41 82 00 24 */ beq lbl_802CF8B0
+/* 802CF890 002CB4F0 88 08 00 28 */ lbz r0, 0x28(r8)
+/* 802CF894 002CB4F4 28 00 00 04 */ cmplwi r0, 4
+/* 802CF898 002CB4F8 41 80 00 C4 */ blt lbl_802CF95C
+/* 802CF89C 002CB4FC 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CF8A0 002CB500 38 87 00 3C */ addi r4, r7, 0x3c
+/* 802CF8A4 002CB504 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CF8A8 002CB508 4B FE D6 81 */ bl LogMsg_1
+/* 802CF8AC 002CB50C 48 00 00 B0 */ b lbl_802CF95C
+lbl_802CF8B0:
+/* 802CF8B0 002CB510 88 08 00 28 */ lbz r0, 0x28(r8)
+/* 802CF8B4 002CB514 28 00 00 04 */ cmplwi r0, 4
+/* 802CF8B8 002CB518 41 80 00 A4 */ blt lbl_802CF95C
+/* 802CF8BC 002CB51C 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CF8C0 002CB520 38 87 00 70 */ addi r4, r7, 0x70
+/* 802CF8C4 002CB524 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CF8C8 002CB528 4B FE D6 49 */ bl LogMsg_0
+/* 802CF8CC 002CB52C 48 00 00 90 */ b lbl_802CF95C
+lbl_802CF8D0:
+/* 802CF8D0 002CB530 A0 04 00 00 */ lhz r0, 0(r4)
+/* 802CF8D4 002CB534 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802CF8D8 002CB538 28 00 00 08 */ cmplwi r0, 8
+/* 802CF8DC 002CB53C 41 81 00 54 */ bgt lbl_802CF930
+/* 802CF8E0 002CB540 3C 60 80 44 */ lis r3, lbl_804424CC@ha
+/* 802CF8E4 002CB544 54 00 10 3A */ slwi r0, r0, 2
+/* 802CF8E8 002CB548 38 63 24 CC */ addi r3, r3, lbl_804424CC@l
+/* 802CF8EC 002CB54C 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802CF8F0 002CB550 7C 69 03 A6 */ mtctr r3
+/* 802CF8F4 002CB554 4E 80 04 20 */ bctr
+/* 802CF8F8 002CB558 38 A0 00 00 */ li r5, 0
+/* 802CF8FC 002CB55C 48 00 00 38 */ b lbl_802CF934
+/* 802CF900 002CB560 38 A0 01 0B */ li r5, 0x10b
+/* 802CF904 002CB564 48 00 00 30 */ b lbl_802CF934
+/* 802CF908 002CB568 38 A0 01 03 */ li r5, 0x103
+/* 802CF90C 002CB56C 48 00 00 28 */ b lbl_802CF934
+/* 802CF910 002CB570 38 A0 01 09 */ li r5, 0x109
+/* 802CF914 002CB574 48 00 00 20 */ b lbl_802CF934
+/* 802CF918 002CB578 38 A0 01 0C */ li r5, 0x10c
+/* 802CF91C 002CB57C 48 00 00 18 */ b lbl_802CF934
+/* 802CF920 002CB580 38 A0 01 0D */ li r5, 0x10d
+/* 802CF924 002CB584 48 00 00 10 */ b lbl_802CF934
+/* 802CF928 002CB588 38 A0 01 15 */ li r5, 0x115
+/* 802CF92C 002CB58C 48 00 00 08 */ b lbl_802CF934
+lbl_802CF930:
+/* 802CF930 002CB590 38 A0 01 14 */ li r5, 0x114
+lbl_802CF934:
+/* 802CF934 002CB594 3C 60 80 57 */ lis r3, lbl_8056B340@ha
+/* 802CF938 002CB598 B0 A4 00 00 */ sth r5, 0(r4)
+/* 802CF93C 002CB59C 38 63 B3 40 */ addi r3, r3, lbl_8056B340@l
+/* 802CF940 002CB5A0 88 03 00 28 */ lbz r0, 0x28(r3)
+/* 802CF944 002CB5A4 28 00 00 04 */ cmplwi r0, 4
+/* 802CF948 002CB5A8 41 80 00 14 */ blt lbl_802CF95C
+/* 802CF94C 002CB5AC 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CF950 002CB5B0 38 87 00 98 */ addi r4, r7, 0x98
+/* 802CF954 002CB5B4 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CF958 002CB5B8 4B FE D5 D1 */ bl LogMsg_1
+lbl_802CF95C:
+/* 802CF95C 002CB5BC 81 9F 00 04 */ lwz r12, 4(r31)
+/* 802CF960 002CB5C0 2C 0C 00 00 */ cmpwi r12, 0
+/* 802CF964 002CB5C4 41 82 00 14 */ beq lbl_802CF978
+/* 802CF968 002CB5C8 7F C4 F3 78 */ mr r4, r30
+/* 802CF96C 002CB5CC A0 7F 00 0C */ lhz r3, 0xc(r31)
+/* 802CF970 002CB5D0 7D 89 03 A6 */ mtctr r12
+/* 802CF974 002CB5D4 4E 80 04 21 */ bctrl
+lbl_802CF978:
+/* 802CF978 002CB5D8 2C 1F 00 00 */ cmpwi r31, 0
+/* 802CF97C 002CB5DC 41 82 00 10 */ beq lbl_802CF98C
+/* 802CF980 002CB5E0 38 00 00 00 */ li r0, 0
+/* 802CF984 002CB5E4 90 1F 00 04 */ stw r0, 4(r31)
+/* 802CF988 002CB5E8 98 1F 00 0F */ stb r0, 0xf(r31)
+lbl_802CF98C:
+/* 802CF98C 002CB5EC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802CF990 002CB5F0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802CF994 002CB5F4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802CF998 002CB5F8 7C 08 03 A6 */ mtlr r0
+/* 802CF99C 002CB5FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802CF9A0 002CB600 4E 80 00 20 */ blr
+
+.global gap_btm_cback0
+gap_btm_cback0:
+/* 802CF9A4 002CB604 7C 64 1B 78 */ mr r4, r3
+/* 802CF9A8 002CB608 38 60 00 00 */ li r3, 0
+/* 802CF9AC 002CB60C 4B FF FE 20 */ b btm_cback
+
+.global gap_btm_cback1
+gap_btm_cback1:
+/* 802CF9B0 002CB610 7C 64 1B 78 */ mr r4, r3
+/* 802CF9B4 002CB614 38 60 00 01 */ li r3, 1
+/* 802CF9B8 002CB618 4B FF FE 14 */ b btm_cback
+
+gap_find_addr_name_cb:
+/* 802CF9BC 002CB61C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CF9C0 002CB620 7C 08 02 A6 */ mflr r0
+/* 802CF9C4 002CB624 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CF9C8 002CB628 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802CF9CC 002CB62C 3F E0 80 57 */ lis r31, lbl_8056B340@ha
+/* 802CF9D0 002CB630 3B FF B3 40 */ addi r31, r31, lbl_8056B340@l
+/* 802CF9D4 002CB634 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802CF9D8 002CB638 3B DF 00 34 */ addi r30, r31, 0x34
+/* 802CF9DC 002CB63C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802CF9E0 002CB640 7C 7D 1B 78 */ mr r29, r3
+/* 802CF9E4 002CB644 88 1F 00 7E */ lbz r0, 0x7e(r31)
+/* 802CF9E8 002CB648 2C 00 00 00 */ cmpwi r0, 0
+/* 802CF9EC 002CB64C 41 82 01 CC */ beq lbl_802CFBB8
+/* 802CF9F0 002CB650 A0 A3 00 00 */ lhz r5, 0(r3)
+/* 802CF9F4 002CB654 2C 05 00 00 */ cmpwi r5, 0
+/* 802CF9F8 002CB658 40 82 01 10 */ bne lbl_802CFB08
+/* 802CF9FC 002CB65C 88 1F 00 28 */ lbz r0, 0x28(r31)
+/* 802CFA00 002CB660 28 00 00 04 */ cmplwi r0, 4
+/* 802CFA04 002CB664 41 80 00 1C */ blt lbl_802CFA20
+/* 802CFA08 002CB668 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CFA0C 002CB66C 3C 80 80 44 */ lis r4, lbl_80442578@ha
+/* 802CFA10 002CB670 38 DD 00 04 */ addi r6, r29, 4
+/* 802CFA14 002CB674 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CFA18 002CB678 38 84 25 78 */ addi r4, r4, lbl_80442578@l
+/* 802CFA1C 002CB67C 4B FE D5 25 */ bl LogMsg_2
+lbl_802CFA20:
+/* 802CFA20 002CB680 38 7E 00 08 */ addi r3, r30, 8
+/* 802CFA24 002CB684 4B EF 71 41 */ bl strlen
+/* 802CFA28 002CB688 7C 65 1B 78 */ mr r5, r3
+/* 802CFA2C 002CB68C 38 7E 00 08 */ addi r3, r30, 8
+/* 802CFA30 002CB690 38 9D 00 04 */ addi r4, r29, 4
+/* 802CFA34 002CB694 4B EF EB 35 */ bl strncmp
+/* 802CFA38 002CB698 2C 03 00 00 */ cmpwi r3, 0
+/* 802CFA3C 002CB69C 40 82 00 24 */ bne lbl_802CFA60
+/* 802CFA40 002CB6A0 80 9F 00 30 */ lwz r4, 0x30(r31)
+/* 802CFA44 002CB6A4 38 7E 00 02 */ addi r3, r30, 2
+/* 802CFA48 002CB6A8 38 A0 00 06 */ li r5, 6
+/* 802CFA4C 002CB6AC 38 84 00 02 */ addi r4, r4, 2
+/* 802CFA50 002CB6B0 4B D3 45 B1 */ bl memcpy
+/* 802CFA54 002CB6B4 38 00 00 00 */ li r0, 0
+/* 802CFA58 002CB6B8 B0 1E 00 00 */ sth r0, 0(r30)
+/* 802CFA5C 002CB6BC 48 00 01 34 */ b lbl_802CFB90
+lbl_802CFA60:
+/* 802CFA60 002CB6C0 80 7F 00 30 */ lwz r3, 0x30(r31)
+/* 802CFA64 002CB6C4 4B FF 84 3D */ bl BTM_InqDbNext
+/* 802CFA68 002CB6C8 2C 03 00 00 */ cmpwi r3, 0
+/* 802CFA6C 002CB6CC 90 7F 00 30 */ stw r3, 0x30(r31)
+/* 802CFA70 002CB6D0 41 82 00 8C */ beq lbl_802CFAFC
+/* 802CFA74 002CB6D4 3C 80 80 2D */ lis r4, gap_find_addr_name_cb@ha
+/* 802CFA78 002CB6D8 38 63 00 02 */ addi r3, r3, 2
+/* 802CFA7C 002CB6DC 38 84 F9 BC */ addi r4, r4, gap_find_addr_name_cb@l
+/* 802CFA80 002CB6E0 4B FF 81 49 */ bl BTM_ReadRemoteDeviceName
+/* 802CFA84 002CB6E4 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802CFA88 002CB6E8 28 00 00 01 */ cmplwi r0, 1
+/* 802CFA8C 002CB6EC 41 82 01 2C */ beq lbl_802CFBB8
+/* 802CFA90 002CB6F0 A0 1D 00 00 */ lhz r0, 0(r29)
+/* 802CFA94 002CB6F4 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802CFA98 002CB6F8 28 00 00 08 */ cmplwi r0, 8
+/* 802CFA9C 002CB6FC 41 81 00 54 */ bgt lbl_802CFAF0
+/* 802CFAA0 002CB700 3C 60 80 44 */ lis r3, lbl_8044261C@ha
+/* 802CFAA4 002CB704 54 00 10 3A */ slwi r0, r0, 2
+/* 802CFAA8 002CB708 38 63 26 1C */ addi r3, r3, lbl_8044261C@l
+/* 802CFAAC 002CB70C 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802CFAB0 002CB710 7C 69 03 A6 */ mtctr r3
+/* 802CFAB4 002CB714 4E 80 04 20 */ bctr
+/* 802CFAB8 002CB718 38 00 00 00 */ li r0, 0
+/* 802CFABC 002CB71C 48 00 00 38 */ b lbl_802CFAF4
+/* 802CFAC0 002CB720 38 00 01 0B */ li r0, 0x10b
+/* 802CFAC4 002CB724 48 00 00 30 */ b lbl_802CFAF4
+/* 802CFAC8 002CB728 38 00 01 03 */ li r0, 0x103
+/* 802CFACC 002CB72C 48 00 00 28 */ b lbl_802CFAF4
+/* 802CFAD0 002CB730 38 00 01 09 */ li r0, 0x109
+/* 802CFAD4 002CB734 48 00 00 20 */ b lbl_802CFAF4
+/* 802CFAD8 002CB738 38 00 01 0C */ li r0, 0x10c
+/* 802CFADC 002CB73C 48 00 00 18 */ b lbl_802CFAF4
+/* 802CFAE0 002CB740 38 00 01 0D */ li r0, 0x10d
+/* 802CFAE4 002CB744 48 00 00 10 */ b lbl_802CFAF4
+/* 802CFAE8 002CB748 38 00 01 15 */ li r0, 0x115
+/* 802CFAEC 002CB74C 48 00 00 08 */ b lbl_802CFAF4
+lbl_802CFAF0:
+/* 802CFAF0 002CB750 38 00 01 14 */ li r0, 0x114
+lbl_802CFAF4:
+/* 802CFAF4 002CB754 B0 1E 00 00 */ sth r0, 0(r30)
+/* 802CFAF8 002CB758 48 00 00 98 */ b lbl_802CFB90
+lbl_802CFAFC:
+/* 802CFAFC 002CB75C 38 00 01 02 */ li r0, 0x102
+/* 802CFB00 002CB760 B0 1E 00 00 */ sth r0, 0(r30)
+/* 802CFB04 002CB764 48 00 00 8C */ b lbl_802CFB90
+lbl_802CFB08:
+/* 802CFB08 002CB768 88 1F 00 28 */ lbz r0, 0x28(r31)
+/* 802CFB0C 002CB76C 28 00 00 04 */ cmplwi r0, 4
+/* 802CFB10 002CB770 41 80 00 18 */ blt lbl_802CFB28
+/* 802CFB14 002CB774 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CFB18 002CB778 3C 80 80 44 */ lis r4, lbl_804425BC@ha
+/* 802CFB1C 002CB77C 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CFB20 002CB780 38 84 25 BC */ addi r4, r4, lbl_804425BC@l
+/* 802CFB24 002CB784 4B FE D4 05 */ bl LogMsg_1
+lbl_802CFB28:
+/* 802CFB28 002CB788 A0 1D 00 00 */ lhz r0, 0(r29)
+/* 802CFB2C 002CB78C 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802CFB30 002CB790 28 00 00 08 */ cmplwi r0, 8
+/* 802CFB34 002CB794 41 81 00 54 */ bgt lbl_802CFB88
+/* 802CFB38 002CB798 3C 60 80 44 */ lis r3, lbl_804425F8@ha
+/* 802CFB3C 002CB79C 54 00 10 3A */ slwi r0, r0, 2
+/* 802CFB40 002CB7A0 38 63 25 F8 */ addi r3, r3, lbl_804425F8@l
+/* 802CFB44 002CB7A4 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802CFB48 002CB7A8 7C 69 03 A6 */ mtctr r3
+/* 802CFB4C 002CB7AC 4E 80 04 20 */ bctr
+/* 802CFB50 002CB7B0 38 00 00 00 */ li r0, 0
+/* 802CFB54 002CB7B4 48 00 00 38 */ b lbl_802CFB8C
+/* 802CFB58 002CB7B8 38 00 01 0B */ li r0, 0x10b
+/* 802CFB5C 002CB7BC 48 00 00 30 */ b lbl_802CFB8C
+/* 802CFB60 002CB7C0 38 00 01 03 */ li r0, 0x103
+/* 802CFB64 002CB7C4 48 00 00 28 */ b lbl_802CFB8C
+/* 802CFB68 002CB7C8 38 00 01 09 */ li r0, 0x109
+/* 802CFB6C 002CB7CC 48 00 00 20 */ b lbl_802CFB8C
+/* 802CFB70 002CB7D0 38 00 01 0C */ li r0, 0x10c
+/* 802CFB74 002CB7D4 48 00 00 18 */ b lbl_802CFB8C
+/* 802CFB78 002CB7D8 38 00 01 0D */ li r0, 0x10d
+/* 802CFB7C 002CB7DC 48 00 00 10 */ b lbl_802CFB8C
+/* 802CFB80 002CB7E0 38 00 01 15 */ li r0, 0x115
+/* 802CFB84 002CB7E4 48 00 00 08 */ b lbl_802CFB8C
+lbl_802CFB88:
+/* 802CFB88 002CB7E8 38 00 01 14 */ li r0, 0x114
+lbl_802CFB8C:
+/* 802CFB8C 002CB7EC B0 1E 00 00 */ sth r0, 0(r30)
+lbl_802CFB90:
+/* 802CFB90 002CB7F0 81 9F 00 2C */ lwz r12, 0x2c(r31)
+/* 802CFB94 002CB7F4 2C 0C 00 00 */ cmpwi r12, 0
+/* 802CFB98 002CB7F8 41 82 00 14 */ beq lbl_802CFBAC
+/* 802CFB9C 002CB7FC 7F C4 F3 78 */ mr r4, r30
+/* 802CFBA0 002CB800 38 60 00 05 */ li r3, 5
+/* 802CFBA4 002CB804 7D 89 03 A6 */ mtctr r12
+/* 802CFBA8 002CB808 4E 80 04 21 */ bctrl
+lbl_802CFBAC:
+/* 802CFBAC 002CB80C 38 00 00 00 */ li r0, 0
+/* 802CFBB0 002CB810 98 1F 00 7E */ stb r0, 0x7e(r31)
+/* 802CFBB4 002CB814 90 1F 00 2C */ stw r0, 0x2c(r31)
+lbl_802CFBB8:
+/* 802CFBB8 002CB818 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802CFBBC 002CB81C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802CFBC0 002CB820 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802CFBC4 002CB824 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802CFBC8 002CB828 7C 08 03 A6 */ mtlr r0
+/* 802CFBCC 002CB82C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802CFBD0 002CB830 4E 80 00 20 */ blr
+
+gap_find_addr_inq_cb:
+/* 802CFBD4 002CB834 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CFBD8 002CB838 7C 08 02 A6 */ mflr r0
+/* 802CFBDC 002CB83C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CFBE0 002CB840 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802CFBE4 002CB844 3F E0 80 57 */ lis r31, lbl_8056B340@ha
+/* 802CFBE8 002CB848 3B FF B3 40 */ addi r31, r31, lbl_8056B340@l
+/* 802CFBEC 002CB84C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802CFBF0 002CB850 3B DF 00 34 */ addi r30, r31, 0x34
+/* 802CFBF4 002CB854 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802CFBF8 002CB858 7C 7D 1B 78 */ mr r29, r3
+/* 802CFBFC 002CB85C 88 1F 00 7E */ lbz r0, 0x7e(r31)
+/* 802CFC00 002CB860 2C 00 00 00 */ cmpwi r0, 0
+/* 802CFC04 002CB864 41 82 01 68 */ beq lbl_802CFD6C
+/* 802CFC08 002CB868 88 1F 00 28 */ lbz r0, 0x28(r31)
+/* 802CFC0C 002CB86C 28 00 00 04 */ cmplwi r0, 4
+/* 802CFC10 002CB870 41 80 00 20 */ blt lbl_802CFC30
+/* 802CFC14 002CB874 3C 60 00 0E */ lis r3, 0x000E0003@ha
+/* 802CFC18 002CB878 3C 80 80 44 */ lis r4, lbl_80442640@ha
+/* 802CFC1C 002CB87C 88 BD 00 00 */ lbz r5, 0(r29)
+/* 802CFC20 002CB880 38 63 00 03 */ addi r3, r3, 0x000E0003@l
+/* 802CFC24 002CB884 88 DD 00 01 */ lbz r6, 1(r29)
+/* 802CFC28 002CB888 38 84 26 40 */ addi r4, r4, lbl_80442640@l
+/* 802CFC2C 002CB88C 4B FE D3 15 */ bl LogMsg_2
+lbl_802CFC30:
+/* 802CFC30 002CB890 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802CFC34 002CB894 2C 00 00 00 */ cmpwi r0, 0
+/* 802CFC38 002CB898 40 82 00 AC */ bne lbl_802CFCE4
+/* 802CFC3C 002CB89C 38 00 01 11 */ li r0, 0x111
+/* 802CFC40 002CB8A0 B0 1E 00 00 */ sth r0, 0(r30)
+/* 802CFC44 002CB8A4 4B FF 81 A5 */ bl BTM_InqDbFirst
+/* 802CFC48 002CB8A8 2C 03 00 00 */ cmpwi r3, 0
+/* 802CFC4C 002CB8AC 90 7F 00 30 */ stw r3, 0x30(r31)
+/* 802CFC50 002CB8B0 41 82 00 88 */ beq lbl_802CFCD8
+/* 802CFC54 002CB8B4 3C 80 80 2D */ lis r4, gap_find_addr_name_cb@ha
+/* 802CFC58 002CB8B8 38 63 00 02 */ addi r3, r3, 2
+/* 802CFC5C 002CB8BC 38 84 F9 BC */ addi r4, r4, gap_find_addr_name_cb@l
+/* 802CFC60 002CB8C0 4B FF 7F 69 */ bl BTM_ReadRemoteDeviceName
+/* 802CFC64 002CB8C4 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802CFC68 002CB8C8 28 00 00 01 */ cmplwi r0, 1
+/* 802CFC6C 002CB8CC 41 82 01 00 */ beq lbl_802CFD6C
+/* 802CFC70 002CB8D0 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802CFC74 002CB8D4 28 00 00 08 */ cmplwi r0, 8
+/* 802CFC78 002CB8D8 41 81 00 54 */ bgt lbl_802CFCCC
+/* 802CFC7C 002CB8DC 3C 60 80 44 */ lis r3, lbl_804426A8@ha
+/* 802CFC80 002CB8E0 54 00 10 3A */ slwi r0, r0, 2
+/* 802CFC84 002CB8E4 38 63 26 A8 */ addi r3, r3, lbl_804426A8@l
+/* 802CFC88 002CB8E8 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802CFC8C 002CB8EC 7C 69 03 A6 */ mtctr r3
+/* 802CFC90 002CB8F0 4E 80 04 20 */ bctr
+/* 802CFC94 002CB8F4 38 00 00 00 */ li r0, 0
+/* 802CFC98 002CB8F8 48 00 00 38 */ b lbl_802CFCD0
+/* 802CFC9C 002CB8FC 38 00 01 0B */ li r0, 0x10b
+/* 802CFCA0 002CB900 48 00 00 30 */ b lbl_802CFCD0
+/* 802CFCA4 002CB904 38 00 01 03 */ li r0, 0x103
+/* 802CFCA8 002CB908 48 00 00 28 */ b lbl_802CFCD0
+/* 802CFCAC 002CB90C 38 00 01 09 */ li r0, 0x109
+/* 802CFCB0 002CB910 48 00 00 20 */ b lbl_802CFCD0
+/* 802CFCB4 002CB914 38 00 01 0C */ li r0, 0x10c
+/* 802CFCB8 002CB918 48 00 00 18 */ b lbl_802CFCD0
+/* 802CFCBC 002CB91C 38 00 01 0D */ li r0, 0x10d
+/* 802CFCC0 002CB920 48 00 00 10 */ b lbl_802CFCD0
+/* 802CFCC4 002CB924 38 00 01 15 */ li r0, 0x115
+/* 802CFCC8 002CB928 48 00 00 08 */ b lbl_802CFCD0
+lbl_802CFCCC:
+/* 802CFCCC 002CB92C 38 00 01 14 */ li r0, 0x114
+lbl_802CFCD0:
+/* 802CFCD0 002CB930 B0 1E 00 00 */ sth r0, 0(r30)
+/* 802CFCD4 002CB934 48 00 00 70 */ b lbl_802CFD44
+lbl_802CFCD8:
+/* 802CFCD8 002CB938 38 00 01 02 */ li r0, 0x102
+/* 802CFCDC 002CB93C B0 1E 00 00 */ sth r0, 0(r30)
+/* 802CFCE0 002CB940 48 00 00 64 */ b lbl_802CFD44
+lbl_802CFCE4:
+/* 802CFCE4 002CB944 28 00 00 08 */ cmplwi r0, 8
+/* 802CFCE8 002CB948 41 81 00 54 */ bgt lbl_802CFD3C
+/* 802CFCEC 002CB94C 3C 60 80 44 */ lis r3, lbl_80442684@ha
+/* 802CFCF0 002CB950 54 00 10 3A */ slwi r0, r0, 2
+/* 802CFCF4 002CB954 38 63 26 84 */ addi r3, r3, lbl_80442684@l
+/* 802CFCF8 002CB958 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802CFCFC 002CB95C 7C 69 03 A6 */ mtctr r3
+/* 802CFD00 002CB960 4E 80 04 20 */ bctr
+/* 802CFD04 002CB964 38 00 00 00 */ li r0, 0
+/* 802CFD08 002CB968 48 00 00 38 */ b lbl_802CFD40
+/* 802CFD0C 002CB96C 38 00 01 0B */ li r0, 0x10b
+/* 802CFD10 002CB970 48 00 00 30 */ b lbl_802CFD40
+/* 802CFD14 002CB974 38 00 01 03 */ li r0, 0x103
+/* 802CFD18 002CB978 48 00 00 28 */ b lbl_802CFD40
+/* 802CFD1C 002CB97C 38 00 01 09 */ li r0, 0x109
+/* 802CFD20 002CB980 48 00 00 20 */ b lbl_802CFD40
+/* 802CFD24 002CB984 38 00 01 0C */ li r0, 0x10c
+/* 802CFD28 002CB988 48 00 00 18 */ b lbl_802CFD40
+/* 802CFD2C 002CB98C 38 00 01 0D */ li r0, 0x10d
+/* 802CFD30 002CB990 48 00 00 10 */ b lbl_802CFD40
+/* 802CFD34 002CB994 38 00 01 15 */ li r0, 0x115
+/* 802CFD38 002CB998 48 00 00 08 */ b lbl_802CFD40
+lbl_802CFD3C:
+/* 802CFD3C 002CB99C 38 00 01 14 */ li r0, 0x114
+lbl_802CFD40:
+/* 802CFD40 002CB9A0 B0 1E 00 00 */ sth r0, 0(r30)
+lbl_802CFD44:
+/* 802CFD44 002CB9A4 81 9F 00 2C */ lwz r12, 0x2c(r31)
+/* 802CFD48 002CB9A8 2C 0C 00 00 */ cmpwi r12, 0
+/* 802CFD4C 002CB9AC 41 82 00 14 */ beq lbl_802CFD60
+/* 802CFD50 002CB9B0 7F C4 F3 78 */ mr r4, r30
+/* 802CFD54 002CB9B4 38 60 00 05 */ li r3, 5
+/* 802CFD58 002CB9B8 7D 89 03 A6 */ mtctr r12
+/* 802CFD5C 002CB9BC 4E 80 04 21 */ bctrl
+lbl_802CFD60:
+/* 802CFD60 002CB9C0 38 00 00 00 */ li r0, 0
+/* 802CFD64 002CB9C4 98 1F 00 7E */ stb r0, 0x7e(r31)
+/* 802CFD68 002CB9C8 90 1F 00 2C */ stw r0, 0x2c(r31)
+lbl_802CFD6C:
+/* 802CFD6C 002CB9CC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802CFD70 002CB9D0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802CFD74 002CB9D4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802CFD78 002CB9D8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802CFD7C 002CB9DC 7C 08 03 A6 */ mtlr r0
+/* 802CFD80 002CB9E0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802CFD84 002CB9E4 4E 80 00 20 */ blr
+
+gap_convert_btm_status:
+/* 802CFD88 002CB9E8 28 03 00 08 */ cmplwi r3, 8
+/* 802CFD8C 002CB9EC 41 81 00 54 */ bgt lbl_802CFDE0
+/* 802CFD90 002CB9F0 3C 80 80 44 */ lis r4, lbl_804426CC@ha
+/* 802CFD94 002CB9F4 54 60 10 3A */ slwi r0, r3, 2
+/* 802CFD98 002CB9F8 38 84 26 CC */ addi r4, r4, lbl_804426CC@l
+/* 802CFD9C 002CB9FC 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802CFDA0 002CBA00 7C 89 03 A6 */ mtctr r4
+/* 802CFDA4 002CBA04 4E 80 04 20 */ bctr
+/* 802CFDA8 002CBA08 38 60 00 00 */ li r3, 0
+/* 802CFDAC 002CBA0C 4E 80 00 20 */ blr
+/* 802CFDB0 002CBA10 38 60 01 0B */ li r3, 0x10b
+/* 802CFDB4 002CBA14 4E 80 00 20 */ blr
+/* 802CFDB8 002CBA18 38 60 01 03 */ li r3, 0x103
+/* 802CFDBC 002CBA1C 4E 80 00 20 */ blr
+/* 802CFDC0 002CBA20 38 60 01 09 */ li r3, 0x109
+/* 802CFDC4 002CBA24 4E 80 00 20 */ blr
+/* 802CFDC8 002CBA28 38 60 01 0C */ li r3, 0x10c
+/* 802CFDCC 002CBA2C 4E 80 00 20 */ blr
+/* 802CFDD0 002CBA30 38 60 01 0D */ li r3, 0x10d
+/* 802CFDD4 002CBA34 4E 80 00 20 */ blr
+/* 802CFDD8 002CBA38 38 60 01 15 */ li r3, 0x115
+/* 802CFDDC 002CBA3C 4E 80 00 20 */ blr
+lbl_802CFDE0:
+/* 802CFDE0 002CBA40 38 60 01 14 */ li r3, 0x114
+/* 802CFDE4 002CBA44 4E 80 00 20 */ blr
diff --git a/asm/SDK/BTE/hcicmds.s b/asm/SDK/BTE/hcicmds.s new file mode 100644 index 0000000..589b9ee --- /dev/null +++ b/asm/SDK/BTE/hcicmds.s @@ -0,0 +1,2804 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global btsnd_hcic_inquiry
+btsnd_hcic_inquiry:
+/* 802CFDE8 002CBA48 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CFDEC 002CBA4C 7C 08 02 A6 */ mflr r0
+/* 802CFDF0 002CBA50 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CFDF4 002CBA54 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802CFDF8 002CBA58 7C BF 2B 78 */ mr r31, r5
+/* 802CFDFC 002CBA5C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802CFE00 002CBA60 7C 9E 23 78 */ mr r30, r4
+/* 802CFE04 002CBA64 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802CFE08 002CBA68 7C 7D 1B 78 */ mr r29, r3
+/* 802CFE0C 002CBA6C 38 60 00 02 */ li r3, 2
+/* 802CFE10 002CBA70 4B FE 9E 3D */ bl GKI_getpoolbuf
+/* 802CFE14 002CBA74 2C 03 00 00 */ cmpwi r3, 0
+/* 802CFE18 002CBA78 40 82 00 0C */ bne lbl_802CFE24
+/* 802CFE1C 002CBA7C 38 60 00 00 */ li r3, 0
+/* 802CFE20 002CBA80 48 00 00 54 */ b lbl_802CFE74
+lbl_802CFE24:
+/* 802CFE24 002CBA84 38 00 00 08 */ li r0, 8
+/* 802CFE28 002CBA88 38 A0 00 00 */ li r5, 0
+/* 802CFE2C 002CBA8C B0 03 00 02 */ sth r0, 2(r3)
+/* 802CFE30 002CBA90 38 80 00 01 */ li r4, 1
+/* 802CFE34 002CBA94 38 00 00 04 */ li r0, 4
+/* 802CFE38 002CBA98 38 C0 00 05 */ li r6, 5
+/* 802CFE3C 002CBA9C B0 A3 00 04 */ sth r5, 4(r3)
+/* 802CFE40 002CBAA0 88 BD 00 02 */ lbz r5, 2(r29)
+/* 802CFE44 002CBAA4 98 83 00 08 */ stb r4, 8(r3)
+/* 802CFE48 002CBAA8 88 9D 00 01 */ lbz r4, 1(r29)
+/* 802CFE4C 002CBAAC 98 03 00 09 */ stb r0, 9(r3)
+/* 802CFE50 002CBAB0 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802CFE54 002CBAB4 98 C3 00 0A */ stb r6, 0xa(r3)
+/* 802CFE58 002CBAB8 98 A3 00 0B */ stb r5, 0xb(r3)
+/* 802CFE5C 002CBABC 98 83 00 0C */ stb r4, 0xc(r3)
+/* 802CFE60 002CBAC0 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802CFE64 002CBAC4 9B C3 00 0E */ stb r30, 0xe(r3)
+/* 802CFE68 002CBAC8 9B E3 00 0F */ stb r31, 0xf(r3)
+/* 802CFE6C 002CBACC 4B FF DF C9 */ bl btu_hcif_send_cmd
+/* 802CFE70 002CBAD0 38 60 00 01 */ li r3, 1
+lbl_802CFE74:
+/* 802CFE74 002CBAD4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802CFE78 002CBAD8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802CFE7C 002CBADC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802CFE80 002CBAE0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802CFE84 002CBAE4 7C 08 03 A6 */ mtlr r0
+/* 802CFE88 002CBAE8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802CFE8C 002CBAEC 4E 80 00 20 */ blr
+
+.global btsnd_hcic_inq_cancel
+btsnd_hcic_inq_cancel:
+/* 802CFE90 002CBAF0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802CFE94 002CBAF4 7C 08 02 A6 */ mflr r0
+/* 802CFE98 002CBAF8 38 60 00 02 */ li r3, 2
+/* 802CFE9C 002CBAFC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802CFEA0 002CBB00 4B FE 9D AD */ bl GKI_getpoolbuf
+/* 802CFEA4 002CBB04 2C 03 00 00 */ cmpwi r3, 0
+/* 802CFEA8 002CBB08 40 82 00 0C */ bne lbl_802CFEB4
+/* 802CFEAC 002CBB0C 38 60 00 00 */ li r3, 0
+/* 802CFEB0 002CBB10 48 00 00 30 */ b lbl_802CFEE0
+lbl_802CFEB4:
+/* 802CFEB4 002CBB14 38 00 00 03 */ li r0, 3
+/* 802CFEB8 002CBB18 38 A0 00 00 */ li r5, 0
+/* 802CFEBC 002CBB1C B0 03 00 02 */ sth r0, 2(r3)
+/* 802CFEC0 002CBB20 38 80 00 02 */ li r4, 2
+/* 802CFEC4 002CBB24 38 00 00 04 */ li r0, 4
+/* 802CFEC8 002CBB28 B0 A3 00 04 */ sth r5, 4(r3)
+/* 802CFECC 002CBB2C 98 83 00 08 */ stb r4, 8(r3)
+/* 802CFED0 002CBB30 98 03 00 09 */ stb r0, 9(r3)
+/* 802CFED4 002CBB34 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802CFED8 002CBB38 4B FF DF 5D */ bl btu_hcif_send_cmd
+/* 802CFEDC 002CBB3C 38 60 00 01 */ li r3, 1
+lbl_802CFEE0:
+/* 802CFEE0 002CBB40 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802CFEE4 002CBB44 7C 08 03 A6 */ mtlr r0
+/* 802CFEE8 002CBB48 38 21 00 10 */ addi r1, r1, 0x10
+/* 802CFEEC 002CBB4C 4E 80 00 20 */ blr
+
+.global btsnd_hcic_per_inq_mode
+btsnd_hcic_per_inq_mode:
+/* 802CFEF0 002CBB50 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CFEF4 002CBB54 7C 08 02 A6 */ mflr r0
+/* 802CFEF8 002CBB58 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CFEFC 002CBB5C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802CFF00 002CBB60 4B EF 72 29 */ bl _savegpr_27
+/* 802CFF04 002CBB64 7C 7B 1B 78 */ mr r27, r3
+/* 802CFF08 002CBB68 7C 9C 23 78 */ mr r28, r4
+/* 802CFF0C 002CBB6C 7C BD 2B 78 */ mr r29, r5
+/* 802CFF10 002CBB70 7C DE 33 78 */ mr r30, r6
+/* 802CFF14 002CBB74 7C FF 3B 78 */ mr r31, r7
+/* 802CFF18 002CBB78 38 60 00 02 */ li r3, 2
+/* 802CFF1C 002CBB7C 4B FE 9D 31 */ bl GKI_getpoolbuf
+/* 802CFF20 002CBB80 2C 03 00 00 */ cmpwi r3, 0
+/* 802CFF24 002CBB84 40 82 00 0C */ bne lbl_802CFF30
+/* 802CFF28 002CBB88 38 60 00 00 */ li r3, 0
+/* 802CFF2C 002CBB8C 48 00 00 6C */ b lbl_802CFF98
+lbl_802CFF30:
+/* 802CFF30 002CBB90 38 00 00 0C */ li r0, 0xc
+/* 802CFF34 002CBB94 38 A0 00 00 */ li r5, 0
+/* 802CFF38 002CBB98 B0 03 00 02 */ sth r0, 2(r3)
+/* 802CFF3C 002CBB9C 38 80 00 03 */ li r4, 3
+/* 802CFF40 002CBBA0 38 00 00 04 */ li r0, 4
+/* 802CFF44 002CBBA4 39 00 00 09 */ li r8, 9
+/* 802CFF48 002CBBA8 B0 A3 00 04 */ sth r5, 4(r3)
+/* 802CFF4C 002CBBAC 7F 67 46 70 */ srawi r7, r27, 8
+/* 802CFF50 002CBBB0 57 86 C6 3E */ rlwinm r6, r28, 0x18, 0x18, 0x1f
+/* 802CFF54 002CBBB4 88 BD 00 02 */ lbz r5, 2(r29)
+/* 802CFF58 002CBBB8 98 83 00 08 */ stb r4, 8(r3)
+/* 802CFF5C 002CBBBC 88 9D 00 01 */ lbz r4, 1(r29)
+/* 802CFF60 002CBBC0 98 03 00 09 */ stb r0, 9(r3)
+/* 802CFF64 002CBBC4 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802CFF68 002CBBC8 99 03 00 0A */ stb r8, 0xa(r3)
+/* 802CFF6C 002CBBCC 9B 63 00 0B */ stb r27, 0xb(r3)
+/* 802CFF70 002CBBD0 98 E3 00 0C */ stb r7, 0xc(r3)
+/* 802CFF74 002CBBD4 9B 83 00 0D */ stb r28, 0xd(r3)
+/* 802CFF78 002CBBD8 98 C3 00 0E */ stb r6, 0xe(r3)
+/* 802CFF7C 002CBBDC 98 A3 00 0F */ stb r5, 0xf(r3)
+/* 802CFF80 002CBBE0 98 83 00 10 */ stb r4, 0x10(r3)
+/* 802CFF84 002CBBE4 98 03 00 11 */ stb r0, 0x11(r3)
+/* 802CFF88 002CBBE8 9B C3 00 12 */ stb r30, 0x12(r3)
+/* 802CFF8C 002CBBEC 9B E3 00 13 */ stb r31, 0x13(r3)
+/* 802CFF90 002CBBF0 4B FF DE A5 */ bl btu_hcif_send_cmd
+/* 802CFF94 002CBBF4 38 60 00 01 */ li r3, 1
+lbl_802CFF98:
+/* 802CFF98 002CBBF8 39 61 00 20 */ addi r11, r1, 0x20
+/* 802CFF9C 002CBBFC 4B EF 71 D9 */ bl _restgpr_27
+/* 802CFFA0 002CBC00 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802CFFA4 002CBC04 7C 08 03 A6 */ mtlr r0
+/* 802CFFA8 002CBC08 38 21 00 20 */ addi r1, r1, 0x20
+/* 802CFFAC 002CBC0C 4E 80 00 20 */ blr
+
+.global btsnd_hcic_create_conn
+btsnd_hcic_create_conn:
+/* 802CFFB0 002CBC10 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802CFFB4 002CBC14 7C 08 02 A6 */ mflr r0
+/* 802CFFB8 002CBC18 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802CFFBC 002CBC1C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802CFFC0 002CBC20 4B EF 71 65 */ bl _savegpr_26
+/* 802CFFC4 002CBC24 7C 7A 1B 78 */ mr r26, r3
+/* 802CFFC8 002CBC28 7C 9B 23 78 */ mr r27, r4
+/* 802CFFCC 002CBC2C 7C BC 2B 78 */ mr r28, r5
+/* 802CFFD0 002CBC30 7C DD 33 78 */ mr r29, r6
+/* 802CFFD4 002CBC34 7C FE 3B 78 */ mr r30, r7
+/* 802CFFD8 002CBC38 7D 1F 43 78 */ mr r31, r8
+/* 802CFFDC 002CBC3C 38 60 00 02 */ li r3, 2
+/* 802CFFE0 002CBC40 4B FE 9C 6D */ bl GKI_getpoolbuf
+/* 802CFFE4 002CBC44 2C 03 00 00 */ cmpwi r3, 0
+/* 802CFFE8 002CBC48 40 82 00 0C */ bne lbl_802CFFF4
+/* 802CFFEC 002CBC4C 38 60 00 00 */ li r3, 0
+/* 802CFFF0 002CBC50 48 00 00 88 */ b lbl_802D0078
+lbl_802CFFF4:
+/* 802CFFF4 002CBC54 38 80 00 10 */ li r4, 0x10
+/* 802CFFF8 002CBC58 38 00 00 00 */ li r0, 0
+/* 802CFFFC 002CBC5C B0 83 00 02 */ sth r4, 2(r3)
+/* 802D0000 002CBC60 38 E0 00 05 */ li r7, 5
+/* 802D0004 002CBC64 38 C0 00 04 */ li r6, 4
+/* 802D0008 002CBC68 38 A0 00 0D */ li r5, 0xd
+/* 802D000C 002CBC6C B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0010 002CBC70 7F 64 46 70 */ srawi r4, r27, 8
+/* 802D0014 002CBC74 57 C0 C6 3E */ rlwinm r0, r30, 0x18, 0x18, 0x1f
+/* 802D0018 002CBC78 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D001C 002CBC7C 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D0020 002CBC80 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D0024 002CBC84 88 BA 00 05 */ lbz r5, 5(r26)
+/* 802D0028 002CBC88 98 A3 00 0B */ stb r5, 0xb(r3)
+/* 802D002C 002CBC8C 88 BA 00 04 */ lbz r5, 4(r26)
+/* 802D0030 002CBC90 98 A3 00 0C */ stb r5, 0xc(r3)
+/* 802D0034 002CBC94 88 BA 00 03 */ lbz r5, 3(r26)
+/* 802D0038 002CBC98 98 A3 00 0D */ stb r5, 0xd(r3)
+/* 802D003C 002CBC9C 88 BA 00 02 */ lbz r5, 2(r26)
+/* 802D0040 002CBCA0 98 A3 00 0E */ stb r5, 0xe(r3)
+/* 802D0044 002CBCA4 88 BA 00 01 */ lbz r5, 1(r26)
+/* 802D0048 002CBCA8 98 A3 00 0F */ stb r5, 0xf(r3)
+/* 802D004C 002CBCAC 88 BA 00 00 */ lbz r5, 0(r26)
+/* 802D0050 002CBCB0 98 A3 00 10 */ stb r5, 0x10(r3)
+/* 802D0054 002CBCB4 9B 63 00 11 */ stb r27, 0x11(r3)
+/* 802D0058 002CBCB8 98 83 00 12 */ stb r4, 0x12(r3)
+/* 802D005C 002CBCBC 9B 83 00 13 */ stb r28, 0x13(r3)
+/* 802D0060 002CBCC0 9B A3 00 14 */ stb r29, 0x14(r3)
+/* 802D0064 002CBCC4 9B C3 00 15 */ stb r30, 0x15(r3)
+/* 802D0068 002CBCC8 98 03 00 16 */ stb r0, 0x16(r3)
+/* 802D006C 002CBCCC 9B E3 00 17 */ stb r31, 0x17(r3)
+/* 802D0070 002CBCD0 4B FF DD C5 */ bl btu_hcif_send_cmd
+/* 802D0074 002CBCD4 38 60 00 01 */ li r3, 1
+lbl_802D0078:
+/* 802D0078 002CBCD8 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D007C 002CBCDC 4B EF 70 F5 */ bl _restgpr_26
+/* 802D0080 002CBCE0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D0084 002CBCE4 7C 08 03 A6 */ mtlr r0
+/* 802D0088 002CBCE8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D008C 002CBCEC 4E 80 00 20 */ blr
+
+.global btsnd_hcic_disconnect
+btsnd_hcic_disconnect:
+/* 802D0090 002CBCF0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0094 002CBCF4 7C 08 02 A6 */ mflr r0
+/* 802D0098 002CBCF8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D009C 002CBCFC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D00A0 002CBD00 7C 9F 23 78 */ mr r31, r4
+/* 802D00A4 002CBD04 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D00A8 002CBD08 7C 7E 1B 78 */ mr r30, r3
+/* 802D00AC 002CBD0C 38 60 00 02 */ li r3, 2
+/* 802D00B0 002CBD10 4B FE 9B 9D */ bl GKI_getpoolbuf
+/* 802D00B4 002CBD14 2C 03 00 00 */ cmpwi r3, 0
+/* 802D00B8 002CBD18 40 82 00 0C */ bne lbl_802D00C4
+/* 802D00BC 002CBD1C 38 60 00 00 */ li r3, 0
+/* 802D00C0 002CBD20 48 00 00 40 */ b lbl_802D0100
+lbl_802D00C4:
+/* 802D00C4 002CBD24 38 E0 00 06 */ li r7, 6
+/* 802D00C8 002CBD28 38 C0 00 00 */ li r6, 0
+/* 802D00CC 002CBD2C B0 E3 00 02 */ sth r7, 2(r3)
+/* 802D00D0 002CBD30 38 A0 00 04 */ li r5, 4
+/* 802D00D4 002CBD34 38 80 00 03 */ li r4, 3
+/* 802D00D8 002CBD38 57 C0 C6 3E */ rlwinm r0, r30, 0x18, 0x18, 0x1f
+/* 802D00DC 002CBD3C B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D00E0 002CBD40 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D00E4 002CBD44 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D00E8 002CBD48 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D00EC 002CBD4C 9B C3 00 0B */ stb r30, 0xb(r3)
+/* 802D00F0 002CBD50 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D00F4 002CBD54 9B E3 00 0D */ stb r31, 0xd(r3)
+/* 802D00F8 002CBD58 4B FF DD 3D */ bl btu_hcif_send_cmd
+/* 802D00FC 002CBD5C 38 60 00 01 */ li r3, 1
+lbl_802D0100:
+/* 802D0100 002CBD60 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0104 002CBD64 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0108 002CBD68 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D010C 002CBD6C 7C 08 03 A6 */ mtlr r0
+/* 802D0110 002CBD70 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D0114 002CBD74 4E 80 00 20 */ blr
+
+.global btsnd_hcic_add_SCO_conn
+btsnd_hcic_add_SCO_conn:
+/* 802D0118 002CBD78 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D011C 002CBD7C 7C 08 02 A6 */ mflr r0
+/* 802D0120 002CBD80 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D0124 002CBD84 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0128 002CBD88 7C 9F 23 78 */ mr r31, r4
+/* 802D012C 002CBD8C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D0130 002CBD90 7C 7E 1B 78 */ mr r30, r3
+/* 802D0134 002CBD94 38 60 00 02 */ li r3, 2
+/* 802D0138 002CBD98 4B FE 9B 15 */ bl GKI_getpoolbuf
+/* 802D013C 002CBD9C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0140 002CBDA0 40 82 00 0C */ bne lbl_802D014C
+/* 802D0144 002CBDA4 38 60 00 00 */ li r3, 0
+/* 802D0148 002CBDA8 48 00 00 44 */ b lbl_802D018C
+lbl_802D014C:
+/* 802D014C 002CBDAC 38 E0 00 07 */ li r7, 7
+/* 802D0150 002CBDB0 38 C0 00 00 */ li r6, 0
+/* 802D0154 002CBDB4 B0 E3 00 02 */ sth r7, 2(r3)
+/* 802D0158 002CBDB8 38 A0 00 04 */ li r5, 4
+/* 802D015C 002CBDBC 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D0160 002CBDC0 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0164 002CBDC4 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D0168 002CBDC8 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D016C 002CBDCC 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0170 002CBDD0 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D0174 002CBDD4 9B C3 00 0B */ stb r30, 0xb(r3)
+/* 802D0178 002CBDD8 98 83 00 0C */ stb r4, 0xc(r3)
+/* 802D017C 002CBDDC 9B E3 00 0D */ stb r31, 0xd(r3)
+/* 802D0180 002CBDE0 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D0184 002CBDE4 4B FF DC B1 */ bl btu_hcif_send_cmd
+/* 802D0188 002CBDE8 38 60 00 01 */ li r3, 1
+lbl_802D018C:
+/* 802D018C 002CBDEC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0190 002CBDF0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0194 002CBDF4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D0198 002CBDF8 7C 08 03 A6 */ mtlr r0
+/* 802D019C 002CBDFC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D01A0 002CBE00 4E 80 00 20 */ blr
+
+.global btsnd_hcic_accept_conn
+btsnd_hcic_accept_conn:
+/* 802D01A4 002CBE04 39 20 00 0A */ li r9, 0xa
+/* 802D01A8 002CBE08 39 00 00 00 */ li r8, 0
+/* 802D01AC 002CBE0C 38 E0 00 09 */ li r7, 9
+/* 802D01B0 002CBE10 38 C0 00 04 */ li r6, 4
+/* 802D01B4 002CBE14 38 00 00 07 */ li r0, 7
+/* 802D01B8 002CBE18 B1 23 00 02 */ sth r9, 2(r3)
+/* 802D01BC 002CBE1C B1 03 00 04 */ sth r8, 4(r3)
+/* 802D01C0 002CBE20 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D01C4 002CBE24 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D01C8 002CBE28 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D01CC 002CBE2C 88 04 00 05 */ lbz r0, 5(r4)
+/* 802D01D0 002CBE30 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D01D4 002CBE34 88 04 00 04 */ lbz r0, 4(r4)
+/* 802D01D8 002CBE38 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D01DC 002CBE3C 88 04 00 03 */ lbz r0, 3(r4)
+/* 802D01E0 002CBE40 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D01E4 002CBE44 88 04 00 02 */ lbz r0, 2(r4)
+/* 802D01E8 002CBE48 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D01EC 002CBE4C 88 04 00 01 */ lbz r0, 1(r4)
+/* 802D01F0 002CBE50 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D01F4 002CBE54 88 04 00 00 */ lbz r0, 0(r4)
+/* 802D01F8 002CBE58 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D01FC 002CBE5C 98 A3 00 11 */ stb r5, 0x11(r3)
+/* 802D0200 002CBE60 4B FF DC 34 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_reject_conn
+btsnd_hcic_reject_conn:
+/* 802D0204 002CBE64 39 00 00 0A */ li r8, 0xa
+/* 802D0208 002CBE68 38 E0 00 00 */ li r7, 0
+/* 802D020C 002CBE6C 38 C0 00 04 */ li r6, 4
+/* 802D0210 002CBE70 38 00 00 07 */ li r0, 7
+/* 802D0214 002CBE74 B1 03 00 02 */ sth r8, 2(r3)
+/* 802D0218 002CBE78 B0 E3 00 04 */ sth r7, 4(r3)
+/* 802D021C 002CBE7C 99 03 00 08 */ stb r8, 8(r3)
+/* 802D0220 002CBE80 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D0224 002CBE84 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D0228 002CBE88 88 04 00 05 */ lbz r0, 5(r4)
+/* 802D022C 002CBE8C 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D0230 002CBE90 88 04 00 04 */ lbz r0, 4(r4)
+/* 802D0234 002CBE94 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0238 002CBE98 88 04 00 03 */ lbz r0, 3(r4)
+/* 802D023C 002CBE9C 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D0240 002CBEA0 88 04 00 02 */ lbz r0, 2(r4)
+/* 802D0244 002CBEA4 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D0248 002CBEA8 88 04 00 01 */ lbz r0, 1(r4)
+/* 802D024C 002CBEAC 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D0250 002CBEB0 88 04 00 00 */ lbz r0, 0(r4)
+/* 802D0254 002CBEB4 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D0258 002CBEB8 98 A3 00 11 */ stb r5, 0x11(r3)
+/* 802D025C 002CBEBC 4B FF DB D8 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_link_key_req_reply
+btsnd_hcic_link_key_req_reply:
+/* 802D0260 002CBEC0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D0264 002CBEC4 7C 08 02 A6 */ mflr r0
+/* 802D0268 002CBEC8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D026C 002CBECC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D0270 002CBED0 4B EF 6E A9 */ bl _savegpr_23
+/* 802D0274 002CBED4 7C 7E 1B 78 */ mr r30, r3
+/* 802D0278 002CBED8 7C 9F 23 78 */ mr r31, r4
+/* 802D027C 002CBEDC 38 60 00 02 */ li r3, 2
+/* 802D0280 002CBEE0 4B FE 99 CD */ bl GKI_getpoolbuf
+/* 802D0284 002CBEE4 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0288 002CBEE8 40 82 00 0C */ bne lbl_802D0294
+/* 802D028C 002CBEEC 38 60 00 00 */ li r3, 0
+/* 802D0290 002CBEF0 48 00 01 58 */ b lbl_802D03E8
+lbl_802D0294:
+/* 802D0294 002CBEF4 38 00 00 19 */ li r0, 0x19
+/* 802D0298 002CBEF8 38 80 00 00 */ li r4, 0
+/* 802D029C 002CBEFC B0 03 00 02 */ sth r0, 2(r3)
+/* 802D02A0 002CBF00 38 00 00 0B */ li r0, 0xb
+/* 802D02A4 002CBF04 38 C0 00 04 */ li r6, 4
+/* 802D02A8 002CBF08 38 A0 00 16 */ li r5, 0x16
+/* 802D02AC 002CBF0C B0 83 00 04 */ sth r4, 4(r3)
+/* 802D02B0 002CBF10 23 04 00 0F */ subfic r24, r4, 0xf
+/* 802D02B4 002CBF14 3B 20 00 01 */ li r25, 1
+/* 802D02B8 002CBF18 3B 60 00 02 */ li r27, 2
+/* 802D02BC 002CBF1C 98 03 00 08 */ stb r0, 8(r3)
+/* 802D02C0 002CBF20 23 59 00 0F */ subfic r26, r25, 0xf
+/* 802D02C4 002CBF24 23 9B 00 0F */ subfic r28, r27, 0xf
+/* 802D02C8 002CBF28 38 80 00 03 */ li r4, 3
+/* 802D02CC 002CBF2C 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D02D0 002CBF30 23 A4 00 0F */ subfic r29, r4, 0xf
+/* 802D02D4 002CBF34 39 20 00 05 */ li r9, 5
+/* 802D02D8 002CBF38 21 46 00 0F */ subfic r10, r6, 0xf
+/* 802D02DC 002CBF3C 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D02E0 002CBF40 21 09 00 0F */ subfic r8, r9, 0xf
+/* 802D02E4 002CBF44 38 E0 00 06 */ li r7, 6
+/* 802D02E8 002CBF48 38 A0 00 07 */ li r5, 7
+/* 802D02EC 002CBF4C 88 9E 00 05 */ lbz r4, 5(r30)
+/* 802D02F0 002CBF50 20 C7 00 0F */ subfic r6, r7, 0xf
+/* 802D02F4 002CBF54 3A E0 00 08 */ li r23, 8
+/* 802D02F8 002CBF58 3B 20 00 09 */ li r25, 9
+/* 802D02FC 002CBF5C 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D0300 002CBF60 20 85 00 0F */ subfic r4, r5, 0xf
+/* 802D0304 002CBF64 3B 60 00 0A */ li r27, 0xa
+/* 802D0308 002CBF68 39 60 00 0C */ li r11, 0xc
+/* 802D030C 002CBF6C 88 BE 00 04 */ lbz r5, 4(r30)
+/* 802D0310 002CBF70 39 20 00 0D */ li r9, 0xd
+/* 802D0314 002CBF74 38 E0 00 0E */ li r7, 0xe
+/* 802D0318 002CBF78 98 A3 00 0C */ stb r5, 0xc(r3)
+/* 802D031C 002CBF7C 38 A0 00 0F */ li r5, 0xf
+/* 802D0320 002CBF80 89 9E 00 03 */ lbz r12, 3(r30)
+/* 802D0324 002CBF84 99 83 00 0D */ stb r12, 0xd(r3)
+/* 802D0328 002CBF88 89 9E 00 02 */ lbz r12, 2(r30)
+/* 802D032C 002CBF8C 99 83 00 0E */ stb r12, 0xe(r3)
+/* 802D0330 002CBF90 89 9E 00 01 */ lbz r12, 1(r30)
+/* 802D0334 002CBF94 99 83 00 0F */ stb r12, 0xf(r3)
+/* 802D0338 002CBF98 89 9E 00 00 */ lbz r12, 0(r30)
+/* 802D033C 002CBF9C 99 83 00 10 */ stb r12, 0x10(r3)
+/* 802D0340 002CBFA0 7D 9F C0 AE */ lbzx r12, r31, r24
+/* 802D0344 002CBFA4 23 17 00 0F */ subfic r24, r23, 0xf
+/* 802D0348 002CBFA8 99 83 00 11 */ stb r12, 0x11(r3)
+/* 802D034C 002CBFAC 7D 9F D0 AE */ lbzx r12, r31, r26
+/* 802D0350 002CBFB0 23 59 00 0F */ subfic r26, r25, 0xf
+/* 802D0354 002CBFB4 99 83 00 12 */ stb r12, 0x12(r3)
+/* 802D0358 002CBFB8 7D 9F E0 AE */ lbzx r12, r31, r28
+/* 802D035C 002CBFBC 23 9B 00 0F */ subfic r28, r27, 0xf
+/* 802D0360 002CBFC0 99 83 00 13 */ stb r12, 0x13(r3)
+/* 802D0364 002CBFC4 7D 9F E8 AE */ lbzx r12, r31, r29
+/* 802D0368 002CBFC8 23 A0 00 0F */ subfic r29, r0, 0xf
+/* 802D036C 002CBFCC 99 83 00 14 */ stb r12, 0x14(r3)
+/* 802D0370 002CBFD0 7C 1F 50 AE */ lbzx r0, r31, r10
+/* 802D0374 002CBFD4 21 4B 00 0F */ subfic r10, r11, 0xf
+/* 802D0378 002CBFD8 98 03 00 15 */ stb r0, 0x15(r3)
+/* 802D037C 002CBFDC 7C 1F 40 AE */ lbzx r0, r31, r8
+/* 802D0380 002CBFE0 21 09 00 0F */ subfic r8, r9, 0xf
+/* 802D0384 002CBFE4 98 03 00 16 */ stb r0, 0x16(r3)
+/* 802D0388 002CBFE8 7C 1F 30 AE */ lbzx r0, r31, r6
+/* 802D038C 002CBFEC 20 C7 00 0F */ subfic r6, r7, 0xf
+/* 802D0390 002CBFF0 98 03 00 17 */ stb r0, 0x17(r3)
+/* 802D0394 002CBFF4 7C 1F 20 AE */ lbzx r0, r31, r4
+/* 802D0398 002CBFF8 20 85 00 0F */ subfic r4, r5, 0xf
+/* 802D039C 002CBFFC 98 03 00 18 */ stb r0, 0x18(r3)
+/* 802D03A0 002CC000 7D 9F C0 AE */ lbzx r12, r31, r24
+/* 802D03A4 002CC004 99 83 00 19 */ stb r12, 0x19(r3)
+/* 802D03A8 002CC008 7D 9F D0 AE */ lbzx r12, r31, r26
+/* 802D03AC 002CC00C 99 83 00 1A */ stb r12, 0x1a(r3)
+/* 802D03B0 002CC010 7D 9F E0 AE */ lbzx r12, r31, r28
+/* 802D03B4 002CC014 99 83 00 1B */ stb r12, 0x1b(r3)
+/* 802D03B8 002CC018 7D 9F E8 AE */ lbzx r12, r31, r29
+/* 802D03BC 002CC01C 99 83 00 1C */ stb r12, 0x1c(r3)
+/* 802D03C0 002CC020 7C 1F 50 AE */ lbzx r0, r31, r10
+/* 802D03C4 002CC024 98 03 00 1D */ stb r0, 0x1d(r3)
+/* 802D03C8 002CC028 7C 1F 40 AE */ lbzx r0, r31, r8
+/* 802D03CC 002CC02C 98 03 00 1E */ stb r0, 0x1e(r3)
+/* 802D03D0 002CC030 7C 1F 30 AE */ lbzx r0, r31, r6
+/* 802D03D4 002CC034 98 03 00 1F */ stb r0, 0x1f(r3)
+/* 802D03D8 002CC038 7C 1F 20 AE */ lbzx r0, r31, r4
+/* 802D03DC 002CC03C 98 03 00 20 */ stb r0, 0x20(r3)
+/* 802D03E0 002CC040 4B FF DA 55 */ bl btu_hcif_send_cmd
+/* 802D03E4 002CC044 38 60 00 01 */ li r3, 1
+lbl_802D03E8:
+/* 802D03E8 002CC048 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D03EC 002CC04C 4B EF 6D 79 */ bl _restgpr_23
+/* 802D03F0 002CC050 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D03F4 002CC054 7C 08 03 A6 */ mtlr r0
+/* 802D03F8 002CC058 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D03FC 002CC05C 4E 80 00 20 */ blr
+
+.global btsnd_hcic_link_key_neg_reply
+btsnd_hcic_link_key_neg_reply:
+/* 802D0400 002CC060 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0404 002CC064 7C 08 02 A6 */ mflr r0
+/* 802D0408 002CC068 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D040C 002CC06C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0410 002CC070 7C 7F 1B 78 */ mr r31, r3
+/* 802D0414 002CC074 38 60 00 02 */ li r3, 2
+/* 802D0418 002CC078 4B FE 98 35 */ bl GKI_getpoolbuf
+/* 802D041C 002CC07C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0420 002CC080 40 82 00 0C */ bne lbl_802D042C
+/* 802D0424 002CC084 38 60 00 00 */ li r3, 0
+/* 802D0428 002CC088 48 00 00 64 */ b lbl_802D048C
+lbl_802D042C:
+/* 802D042C 002CC08C 38 00 00 09 */ li r0, 9
+/* 802D0430 002CC090 38 C0 00 00 */ li r6, 0
+/* 802D0434 002CC094 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D0438 002CC098 38 A0 00 0C */ li r5, 0xc
+/* 802D043C 002CC09C 38 80 00 04 */ li r4, 4
+/* 802D0440 002CC0A0 38 00 00 06 */ li r0, 6
+/* 802D0444 002CC0A4 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D0448 002CC0A8 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D044C 002CC0AC 98 83 00 09 */ stb r4, 9(r3)
+/* 802D0450 002CC0B0 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D0454 002CC0B4 88 1F 00 05 */ lbz r0, 5(r31)
+/* 802D0458 002CC0B8 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D045C 002CC0BC 88 1F 00 04 */ lbz r0, 4(r31)
+/* 802D0460 002CC0C0 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0464 002CC0C4 88 1F 00 03 */ lbz r0, 3(r31)
+/* 802D0468 002CC0C8 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D046C 002CC0CC 88 1F 00 02 */ lbz r0, 2(r31)
+/* 802D0470 002CC0D0 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D0474 002CC0D4 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802D0478 002CC0D8 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D047C 002CC0DC 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802D0480 002CC0E0 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D0484 002CC0E4 4B FF D9 B1 */ bl btu_hcif_send_cmd
+/* 802D0488 002CC0E8 38 60 00 01 */ li r3, 1
+lbl_802D048C:
+/* 802D048C 002CC0EC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0490 002CC0F0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0494 002CC0F4 7C 08 03 A6 */ mtlr r0
+/* 802D0498 002CC0F8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D049C 002CC0FC 4E 80 00 20 */ blr
+
+.global btsnd_hcic_pin_code_req_reply
+btsnd_hcic_pin_code_req_reply:
+/* 802D04A0 002CC100 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D04A4 002CC104 7C 08 02 A6 */ mflr r0
+/* 802D04A8 002CC108 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D04AC 002CC10C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802D04B0 002CC110 7C BF 2B 78 */ mr r31, r5
+/* 802D04B4 002CC114 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802D04B8 002CC118 7C 9E 23 78 */ mr r30, r4
+/* 802D04BC 002CC11C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802D04C0 002CC120 7C 7D 1B 78 */ mr r29, r3
+/* 802D04C4 002CC124 38 60 00 02 */ li r3, 2
+/* 802D04C8 002CC128 4B FE 97 85 */ bl GKI_getpoolbuf
+/* 802D04CC 002CC12C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D04D0 002CC130 40 82 00 0C */ bne lbl_802D04DC
+/* 802D04D4 002CC134 38 60 00 00 */ li r3, 0
+/* 802D04D8 002CC138 48 00 01 90 */ b lbl_802D0668
+lbl_802D04DC:
+/* 802D04DC 002CC13C 38 00 00 1A */ li r0, 0x1a
+/* 802D04E0 002CC140 38 80 00 00 */ li r4, 0
+/* 802D04E4 002CC144 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D04E8 002CC148 38 E0 00 0D */ li r7, 0xd
+/* 802D04EC 002CC14C 38 C0 00 04 */ li r6, 4
+/* 802D04F0 002CC150 38 00 00 17 */ li r0, 0x17
+/* 802D04F4 002CC154 B0 83 00 04 */ sth r4, 4(r3)
+/* 802D04F8 002CC158 2C 9E 00 00 */ cmpwi cr1, r30, 0
+/* 802D04FC 002CC15C 38 83 00 12 */ addi r4, r3, 0x12
+/* 802D0500 002CC160 38 A0 00 00 */ li r5, 0
+/* 802D0504 002CC164 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D0508 002CC168 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D050C 002CC16C 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D0510 002CC170 88 1D 00 05 */ lbz r0, 5(r29)
+/* 802D0514 002CC174 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D0518 002CC178 88 1D 00 04 */ lbz r0, 4(r29)
+/* 802D051C 002CC17C 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0520 002CC180 88 1D 00 03 */ lbz r0, 3(r29)
+/* 802D0524 002CC184 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D0528 002CC188 88 1D 00 02 */ lbz r0, 2(r29)
+/* 802D052C 002CC18C 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D0530 002CC190 88 1D 00 01 */ lbz r0, 1(r29)
+/* 802D0534 002CC194 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D0538 002CC198 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802D053C 002CC19C 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D0540 002CC1A0 9B C3 00 11 */ stb r30, 0x11(r3)
+/* 802D0544 002CC1A4 40 85 00 C0 */ ble cr1, lbl_802D0604
+/* 802D0548 002CC1A8 2C 1E 00 08 */ cmpwi r30, 8
+/* 802D054C 002CC1AC 38 FE FF F8 */ addi r7, r30, -8
+/* 802D0550 002CC1B0 40 81 00 8C */ ble lbl_802D05DC
+/* 802D0554 002CC1B4 39 00 00 00 */ li r8, 0
+/* 802D0558 002CC1B8 41 84 00 18 */ blt cr1, lbl_802D0570
+/* 802D055C 002CC1BC 3C C0 80 00 */ lis r6, 0x7FFFFFFE@ha
+/* 802D0560 002CC1C0 38 06 FF FE */ addi r0, r6, 0x7FFFFFFE@l
+/* 802D0564 002CC1C4 7C 1E 00 00 */ cmpw r30, r0
+/* 802D0568 002CC1C8 41 81 00 08 */ bgt lbl_802D0570
+/* 802D056C 002CC1CC 39 00 00 01 */ li r8, 1
+lbl_802D0570:
+/* 802D0570 002CC1D0 2C 08 00 00 */ cmpwi r8, 0
+/* 802D0574 002CC1D4 41 82 00 68 */ beq lbl_802D05DC
+/* 802D0578 002CC1D8 38 07 00 07 */ addi r0, r7, 7
+/* 802D057C 002CC1DC 54 00 E8 FE */ srwi r0, r0, 3
+/* 802D0580 002CC1E0 7C 09 03 A6 */ mtctr r0
+/* 802D0584 002CC1E4 2C 07 00 00 */ cmpwi r7, 0
+/* 802D0588 002CC1E8 40 81 00 54 */ ble lbl_802D05DC
+lbl_802D058C:
+/* 802D058C 002CC1EC 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802D0590 002CC1F0 38 A5 00 08 */ addi r5, r5, 8
+/* 802D0594 002CC1F4 98 04 00 00 */ stb r0, 0(r4)
+/* 802D0598 002CC1F8 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802D059C 002CC1FC 98 04 00 01 */ stb r0, 1(r4)
+/* 802D05A0 002CC200 88 1F 00 02 */ lbz r0, 2(r31)
+/* 802D05A4 002CC204 98 04 00 02 */ stb r0, 2(r4)
+/* 802D05A8 002CC208 88 1F 00 03 */ lbz r0, 3(r31)
+/* 802D05AC 002CC20C 98 04 00 03 */ stb r0, 3(r4)
+/* 802D05B0 002CC210 88 1F 00 04 */ lbz r0, 4(r31)
+/* 802D05B4 002CC214 98 04 00 04 */ stb r0, 4(r4)
+/* 802D05B8 002CC218 88 1F 00 05 */ lbz r0, 5(r31)
+/* 802D05BC 002CC21C 98 04 00 05 */ stb r0, 5(r4)
+/* 802D05C0 002CC220 88 1F 00 06 */ lbz r0, 6(r31)
+/* 802D05C4 002CC224 98 04 00 06 */ stb r0, 6(r4)
+/* 802D05C8 002CC228 88 1F 00 07 */ lbz r0, 7(r31)
+/* 802D05CC 002CC22C 3B FF 00 08 */ addi r31, r31, 8
+/* 802D05D0 002CC230 98 04 00 07 */ stb r0, 7(r4)
+/* 802D05D4 002CC234 38 84 00 08 */ addi r4, r4, 8
+/* 802D05D8 002CC238 42 00 FF B4 */ bdnz lbl_802D058C
+lbl_802D05DC:
+/* 802D05DC 002CC23C 7C 05 F0 50 */ subf r0, r5, r30
+/* 802D05E0 002CC240 7C 09 03 A6 */ mtctr r0
+/* 802D05E4 002CC244 7C 05 F0 00 */ cmpw r5, r30
+/* 802D05E8 002CC248 40 80 00 1C */ bge lbl_802D0604
+lbl_802D05EC:
+/* 802D05EC 002CC24C 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802D05F0 002CC250 38 A5 00 01 */ addi r5, r5, 1
+/* 802D05F4 002CC254 3B FF 00 01 */ addi r31, r31, 1
+/* 802D05F8 002CC258 98 04 00 00 */ stb r0, 0(r4)
+/* 802D05FC 002CC25C 38 84 00 01 */ addi r4, r4, 1
+/* 802D0600 002CC260 42 00 FF EC */ bdnz lbl_802D05EC
+lbl_802D0604:
+/* 802D0604 002CC264 2C 05 00 10 */ cmpwi r5, 0x10
+/* 802D0608 002CC268 20 A5 00 10 */ subfic r5, r5, 0x10
+/* 802D060C 002CC26C 38 C0 00 00 */ li r6, 0
+/* 802D0610 002CC270 40 80 00 50 */ bge lbl_802D0660
+/* 802D0614 002CC274 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
+/* 802D0618 002CC278 7C 09 03 A6 */ mtctr r0
+/* 802D061C 002CC27C 41 82 00 34 */ beq lbl_802D0650
+lbl_802D0620:
+/* 802D0620 002CC280 98 C4 00 00 */ stb r6, 0(r4)
+/* 802D0624 002CC284 98 C4 00 01 */ stb r6, 1(r4)
+/* 802D0628 002CC288 98 C4 00 02 */ stb r6, 2(r4)
+/* 802D062C 002CC28C 98 C4 00 03 */ stb r6, 3(r4)
+/* 802D0630 002CC290 98 C4 00 04 */ stb r6, 4(r4)
+/* 802D0634 002CC294 98 C4 00 05 */ stb r6, 5(r4)
+/* 802D0638 002CC298 98 C4 00 06 */ stb r6, 6(r4)
+/* 802D063C 002CC29C 98 C4 00 07 */ stb r6, 7(r4)
+/* 802D0640 002CC2A0 38 84 00 08 */ addi r4, r4, 8
+/* 802D0644 002CC2A4 42 00 FF DC */ bdnz lbl_802D0620
+/* 802D0648 002CC2A8 70 A5 00 07 */ andi. r5, r5, 7
+/* 802D064C 002CC2AC 41 82 00 14 */ beq lbl_802D0660
+lbl_802D0650:
+/* 802D0650 002CC2B0 7C A9 03 A6 */ mtctr r5
+lbl_802D0654:
+/* 802D0654 002CC2B4 98 C4 00 00 */ stb r6, 0(r4)
+/* 802D0658 002CC2B8 38 84 00 01 */ addi r4, r4, 1
+/* 802D065C 002CC2BC 42 00 FF F8 */ bdnz lbl_802D0654
+lbl_802D0660:
+/* 802D0660 002CC2C0 4B FF D7 D5 */ bl btu_hcif_send_cmd
+/* 802D0664 002CC2C4 38 60 00 01 */ li r3, 1
+lbl_802D0668:
+/* 802D0668 002CC2C8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D066C 002CC2CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802D0670 002CC2D0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802D0674 002CC2D4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802D0678 002CC2D8 7C 08 03 A6 */ mtlr r0
+/* 802D067C 002CC2DC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D0680 002CC2E0 4E 80 00 20 */ blr
+
+.global btsnd_hcic_pin_code_neg_reply
+btsnd_hcic_pin_code_neg_reply:
+/* 802D0684 002CC2E4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0688 002CC2E8 7C 08 02 A6 */ mflr r0
+/* 802D068C 002CC2EC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D0690 002CC2F0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0694 002CC2F4 7C 7F 1B 78 */ mr r31, r3
+/* 802D0698 002CC2F8 38 60 00 02 */ li r3, 2
+/* 802D069C 002CC2FC 4B FE 95 B1 */ bl GKI_getpoolbuf
+/* 802D06A0 002CC300 2C 03 00 00 */ cmpwi r3, 0
+/* 802D06A4 002CC304 40 82 00 0C */ bne lbl_802D06B0
+/* 802D06A8 002CC308 38 60 00 00 */ li r3, 0
+/* 802D06AC 002CC30C 48 00 00 64 */ b lbl_802D0710
+lbl_802D06B0:
+/* 802D06B0 002CC310 38 00 00 09 */ li r0, 9
+/* 802D06B4 002CC314 38 C0 00 00 */ li r6, 0
+/* 802D06B8 002CC318 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D06BC 002CC31C 38 A0 00 0E */ li r5, 0xe
+/* 802D06C0 002CC320 38 80 00 04 */ li r4, 4
+/* 802D06C4 002CC324 38 00 00 06 */ li r0, 6
+/* 802D06C8 002CC328 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D06CC 002CC32C 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D06D0 002CC330 98 83 00 09 */ stb r4, 9(r3)
+/* 802D06D4 002CC334 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D06D8 002CC338 88 1F 00 05 */ lbz r0, 5(r31)
+/* 802D06DC 002CC33C 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D06E0 002CC340 88 1F 00 04 */ lbz r0, 4(r31)
+/* 802D06E4 002CC344 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D06E8 002CC348 88 1F 00 03 */ lbz r0, 3(r31)
+/* 802D06EC 002CC34C 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D06F0 002CC350 88 1F 00 02 */ lbz r0, 2(r31)
+/* 802D06F4 002CC354 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D06F8 002CC358 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802D06FC 002CC35C 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D0700 002CC360 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802D0704 002CC364 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D0708 002CC368 4B FF D7 2D */ bl btu_hcif_send_cmd
+/* 802D070C 002CC36C 38 60 00 01 */ li r3, 1
+lbl_802D0710:
+/* 802D0710 002CC370 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0714 002CC374 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0718 002CC378 7C 08 03 A6 */ mtlr r0
+/* 802D071C 002CC37C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D0720 002CC380 4E 80 00 20 */ blr
+
+.global btsnd_hcic_change_conn_type
+btsnd_hcic_change_conn_type:
+/* 802D0724 002CC384 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0728 002CC388 7C 08 02 A6 */ mflr r0
+/* 802D072C 002CC38C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D0730 002CC390 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0734 002CC394 7C 9F 23 78 */ mr r31, r4
+/* 802D0738 002CC398 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D073C 002CC39C 7C 7E 1B 78 */ mr r30, r3
+/* 802D0740 002CC3A0 38 60 00 02 */ li r3, 2
+/* 802D0744 002CC3A4 4B FE 95 09 */ bl GKI_getpoolbuf
+/* 802D0748 002CC3A8 2C 03 00 00 */ cmpwi r3, 0
+/* 802D074C 002CC3AC 40 82 00 0C */ bne lbl_802D0758
+/* 802D0750 002CC3B0 38 60 00 00 */ li r3, 0
+/* 802D0754 002CC3B4 48 00 00 48 */ b lbl_802D079C
+lbl_802D0758:
+/* 802D0758 002CC3B8 38 80 00 07 */ li r4, 7
+/* 802D075C 002CC3BC 38 00 00 00 */ li r0, 0
+/* 802D0760 002CC3C0 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D0764 002CC3C4 38 C0 00 0F */ li r6, 0xf
+/* 802D0768 002CC3C8 38 A0 00 04 */ li r5, 4
+/* 802D076C 002CC3CC 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D0770 002CC3D0 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0774 002CC3D4 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0778 002CC3D8 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D077C 002CC3DC 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0780 002CC3E0 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D0784 002CC3E4 9B C3 00 0B */ stb r30, 0xb(r3)
+/* 802D0788 002CC3E8 98 83 00 0C */ stb r4, 0xc(r3)
+/* 802D078C 002CC3EC 9B E3 00 0D */ stb r31, 0xd(r3)
+/* 802D0790 002CC3F0 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D0794 002CC3F4 4B FF D6 A1 */ bl btu_hcif_send_cmd
+/* 802D0798 002CC3F8 38 60 00 01 */ li r3, 1
+lbl_802D079C:
+/* 802D079C 002CC3FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D07A0 002CC400 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D07A4 002CC404 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D07A8 002CC408 7C 08 03 A6 */ mtlr r0
+/* 802D07AC 002CC40C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D07B0 002CC410 4E 80 00 20 */ blr
+
+.global btsnd_hcic_auth_request
+btsnd_hcic_auth_request:
+/* 802D07B4 002CC414 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D07B8 002CC418 7C 08 02 A6 */ mflr r0
+/* 802D07BC 002CC41C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D07C0 002CC420 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D07C4 002CC424 7C 7F 1B 78 */ mr r31, r3
+/* 802D07C8 002CC428 38 60 00 02 */ li r3, 2
+/* 802D07CC 002CC42C 4B FE 94 81 */ bl GKI_getpoolbuf
+/* 802D07D0 002CC430 2C 03 00 00 */ cmpwi r3, 0
+/* 802D07D4 002CC434 40 82 00 0C */ bne lbl_802D07E0
+/* 802D07D8 002CC438 38 60 00 00 */ li r3, 0
+/* 802D07DC 002CC43C 48 00 00 40 */ b lbl_802D081C
+lbl_802D07E0:
+/* 802D07E0 002CC440 38 80 00 05 */ li r4, 5
+/* 802D07E4 002CC444 38 00 00 00 */ li r0, 0
+/* 802D07E8 002CC448 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D07EC 002CC44C 38 C0 00 11 */ li r6, 0x11
+/* 802D07F0 002CC450 38 A0 00 04 */ li r5, 4
+/* 802D07F4 002CC454 38 80 00 02 */ li r4, 2
+/* 802D07F8 002CC458 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D07FC 002CC45C 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0800 002CC460 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0804 002CC464 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0808 002CC468 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D080C 002CC46C 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D0810 002CC470 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0814 002CC474 4B FF D6 21 */ bl btu_hcif_send_cmd
+/* 802D0818 002CC478 38 60 00 01 */ li r3, 1
+lbl_802D081C:
+/* 802D081C 002CC47C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0820 002CC480 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0824 002CC484 7C 08 03 A6 */ mtlr r0
+/* 802D0828 002CC488 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D082C 002CC48C 4E 80 00 20 */ blr
+
+.global btsnd_hcic_set_conn_encrypt
+btsnd_hcic_set_conn_encrypt:
+/* 802D0830 002CC490 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0834 002CC494 7C 08 02 A6 */ mflr r0
+/* 802D0838 002CC498 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D083C 002CC49C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0840 002CC4A0 7C 9F 23 78 */ mr r31, r4
+/* 802D0844 002CC4A4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D0848 002CC4A8 7C 7E 1B 78 */ mr r30, r3
+/* 802D084C 002CC4AC 38 60 00 02 */ li r3, 2
+/* 802D0850 002CC4B0 4B FE 93 FD */ bl GKI_getpoolbuf
+/* 802D0854 002CC4B4 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0858 002CC4B8 40 82 00 0C */ bne lbl_802D0864
+/* 802D085C 002CC4BC 38 60 00 00 */ li r3, 0
+/* 802D0860 002CC4C0 48 00 00 44 */ b lbl_802D08A4
+lbl_802D0864:
+/* 802D0864 002CC4C4 38 80 00 06 */ li r4, 6
+/* 802D0868 002CC4C8 38 00 00 00 */ li r0, 0
+/* 802D086C 002CC4CC B0 83 00 02 */ sth r4, 2(r3)
+/* 802D0870 002CC4D0 38 C0 00 13 */ li r6, 0x13
+/* 802D0874 002CC4D4 38 A0 00 04 */ li r5, 4
+/* 802D0878 002CC4D8 38 80 00 03 */ li r4, 3
+/* 802D087C 002CC4DC B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0880 002CC4E0 57 C0 C6 3E */ rlwinm r0, r30, 0x18, 0x18, 0x1f
+/* 802D0884 002CC4E4 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0888 002CC4E8 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D088C 002CC4EC 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D0890 002CC4F0 9B C3 00 0B */ stb r30, 0xb(r3)
+/* 802D0894 002CC4F4 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0898 002CC4F8 9B E3 00 0D */ stb r31, 0xd(r3)
+/* 802D089C 002CC4FC 4B FF D5 99 */ bl btu_hcif_send_cmd
+/* 802D08A0 002CC500 38 60 00 01 */ li r3, 1
+lbl_802D08A4:
+/* 802D08A4 002CC504 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D08A8 002CC508 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D08AC 002CC50C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D08B0 002CC510 7C 08 03 A6 */ mtlr r0
+/* 802D08B4 002CC514 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D08B8 002CC518 4E 80 00 20 */ blr
+
+.global btsnd_hcic_rmt_name_req
+btsnd_hcic_rmt_name_req:
+/* 802D08BC 002CC51C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D08C0 002CC520 7C 08 02 A6 */ mflr r0
+/* 802D08C4 002CC524 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D08C8 002CC528 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802D08CC 002CC52C 7C DF 33 78 */ mr r31, r6
+/* 802D08D0 002CC530 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802D08D4 002CC534 7C BE 2B 78 */ mr r30, r5
+/* 802D08D8 002CC538 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802D08DC 002CC53C 7C 9D 23 78 */ mr r29, r4
+/* 802D08E0 002CC540 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802D08E4 002CC544 7C 7C 1B 78 */ mr r28, r3
+/* 802D08E8 002CC548 38 60 00 02 */ li r3, 2
+/* 802D08EC 002CC54C 4B FE 93 61 */ bl GKI_getpoolbuf
+/* 802D08F0 002CC550 2C 03 00 00 */ cmpwi r3, 0
+/* 802D08F4 002CC554 40 82 00 0C */ bne lbl_802D0900
+/* 802D08F8 002CC558 38 60 00 00 */ li r3, 0
+/* 802D08FC 002CC55C 48 00 00 78 */ b lbl_802D0974
+lbl_802D0900:
+/* 802D0900 002CC560 38 80 00 0D */ li r4, 0xd
+/* 802D0904 002CC564 38 00 00 00 */ li r0, 0
+/* 802D0908 002CC568 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D090C 002CC56C 38 C0 00 19 */ li r6, 0x19
+/* 802D0910 002CC570 38 A0 00 04 */ li r5, 4
+/* 802D0914 002CC574 38 80 00 0A */ li r4, 0xa
+/* 802D0918 002CC578 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D091C 002CC57C 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0920 002CC580 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0924 002CC584 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0928 002CC588 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D092C 002CC58C 88 9C 00 05 */ lbz r4, 5(r28)
+/* 802D0930 002CC590 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D0934 002CC594 88 9C 00 04 */ lbz r4, 4(r28)
+/* 802D0938 002CC598 98 83 00 0C */ stb r4, 0xc(r3)
+/* 802D093C 002CC59C 88 9C 00 03 */ lbz r4, 3(r28)
+/* 802D0940 002CC5A0 98 83 00 0D */ stb r4, 0xd(r3)
+/* 802D0944 002CC5A4 88 9C 00 02 */ lbz r4, 2(r28)
+/* 802D0948 002CC5A8 98 83 00 0E */ stb r4, 0xe(r3)
+/* 802D094C 002CC5AC 88 9C 00 01 */ lbz r4, 1(r28)
+/* 802D0950 002CC5B0 98 83 00 0F */ stb r4, 0xf(r3)
+/* 802D0954 002CC5B4 88 9C 00 00 */ lbz r4, 0(r28)
+/* 802D0958 002CC5B8 98 83 00 10 */ stb r4, 0x10(r3)
+/* 802D095C 002CC5BC 9B A3 00 11 */ stb r29, 0x11(r3)
+/* 802D0960 002CC5C0 9B C3 00 12 */ stb r30, 0x12(r3)
+/* 802D0964 002CC5C4 9B E3 00 13 */ stb r31, 0x13(r3)
+/* 802D0968 002CC5C8 98 03 00 14 */ stb r0, 0x14(r3)
+/* 802D096C 002CC5CC 4B FF D4 C9 */ bl btu_hcif_send_cmd
+/* 802D0970 002CC5D0 38 60 00 01 */ li r3, 1
+lbl_802D0974:
+/* 802D0974 002CC5D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D0978 002CC5D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802D097C 002CC5DC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802D0980 002CC5E0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802D0984 002CC5E4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802D0988 002CC5E8 7C 08 03 A6 */ mtlr r0
+/* 802D098C 002CC5EC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D0990 002CC5F0 4E 80 00 20 */ blr
+
+.global btsnd_hcic_rmt_name_req_cancel
+btsnd_hcic_rmt_name_req_cancel:
+/* 802D0994 002CC5F4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0998 002CC5F8 7C 08 02 A6 */ mflr r0
+/* 802D099C 002CC5FC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D09A0 002CC600 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D09A4 002CC604 7C 7F 1B 78 */ mr r31, r3
+/* 802D09A8 002CC608 38 60 00 02 */ li r3, 2
+/* 802D09AC 002CC60C 4B FE 92 A1 */ bl GKI_getpoolbuf
+/* 802D09B0 002CC610 2C 03 00 00 */ cmpwi r3, 0
+/* 802D09B4 002CC614 40 82 00 0C */ bne lbl_802D09C0
+/* 802D09B8 002CC618 38 60 00 00 */ li r3, 0
+/* 802D09BC 002CC61C 48 00 00 64 */ b lbl_802D0A20
+lbl_802D09C0:
+/* 802D09C0 002CC620 38 00 00 09 */ li r0, 9
+/* 802D09C4 002CC624 38 C0 00 00 */ li r6, 0
+/* 802D09C8 002CC628 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D09CC 002CC62C 38 A0 00 1A */ li r5, 0x1a
+/* 802D09D0 002CC630 38 80 00 04 */ li r4, 4
+/* 802D09D4 002CC634 38 00 00 06 */ li r0, 6
+/* 802D09D8 002CC638 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D09DC 002CC63C 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D09E0 002CC640 98 83 00 09 */ stb r4, 9(r3)
+/* 802D09E4 002CC644 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D09E8 002CC648 88 1F 00 05 */ lbz r0, 5(r31)
+/* 802D09EC 002CC64C 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D09F0 002CC650 88 1F 00 04 */ lbz r0, 4(r31)
+/* 802D09F4 002CC654 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D09F8 002CC658 88 1F 00 03 */ lbz r0, 3(r31)
+/* 802D09FC 002CC65C 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D0A00 002CC660 88 1F 00 02 */ lbz r0, 2(r31)
+/* 802D0A04 002CC664 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D0A08 002CC668 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802D0A0C 002CC66C 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D0A10 002CC670 88 1F 00 00 */ lbz r0, 0(r31)
+/* 802D0A14 002CC674 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D0A18 002CC678 4B FF D4 1D */ bl btu_hcif_send_cmd
+/* 802D0A1C 002CC67C 38 60 00 01 */ li r3, 1
+lbl_802D0A20:
+/* 802D0A20 002CC680 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0A24 002CC684 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0A28 002CC688 7C 08 03 A6 */ mtlr r0
+/* 802D0A2C 002CC68C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D0A30 002CC690 4E 80 00 20 */ blr
+
+.global btsnd_hcic_rmt_features_req
+btsnd_hcic_rmt_features_req:
+/* 802D0A34 002CC694 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0A38 002CC698 7C 08 02 A6 */ mflr r0
+/* 802D0A3C 002CC69C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D0A40 002CC6A0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0A44 002CC6A4 7C 7F 1B 78 */ mr r31, r3
+/* 802D0A48 002CC6A8 38 60 00 02 */ li r3, 2
+/* 802D0A4C 002CC6AC 4B FE 92 01 */ bl GKI_getpoolbuf
+/* 802D0A50 002CC6B0 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0A54 002CC6B4 40 82 00 0C */ bne lbl_802D0A60
+/* 802D0A58 002CC6B8 38 60 00 00 */ li r3, 0
+/* 802D0A5C 002CC6BC 48 00 00 40 */ b lbl_802D0A9C
+lbl_802D0A60:
+/* 802D0A60 002CC6C0 38 80 00 05 */ li r4, 5
+/* 802D0A64 002CC6C4 38 00 00 00 */ li r0, 0
+/* 802D0A68 002CC6C8 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D0A6C 002CC6CC 38 C0 00 1B */ li r6, 0x1b
+/* 802D0A70 002CC6D0 38 A0 00 04 */ li r5, 4
+/* 802D0A74 002CC6D4 38 80 00 02 */ li r4, 2
+/* 802D0A78 002CC6D8 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0A7C 002CC6DC 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0A80 002CC6E0 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0A84 002CC6E4 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0A88 002CC6E8 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D0A8C 002CC6EC 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D0A90 002CC6F0 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0A94 002CC6F4 4B FF D3 A1 */ bl btu_hcif_send_cmd
+/* 802D0A98 002CC6F8 38 60 00 01 */ li r3, 1
+lbl_802D0A9C:
+/* 802D0A9C 002CC6FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0AA0 002CC700 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0AA4 002CC704 7C 08 03 A6 */ mtlr r0
+/* 802D0AA8 002CC708 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D0AAC 002CC70C 4E 80 00 20 */ blr
+
+.global btsnd_hcic_rmt_ver_req
+btsnd_hcic_rmt_ver_req:
+/* 802D0AB0 002CC710 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0AB4 002CC714 7C 08 02 A6 */ mflr r0
+/* 802D0AB8 002CC718 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D0ABC 002CC71C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0AC0 002CC720 7C 7F 1B 78 */ mr r31, r3
+/* 802D0AC4 002CC724 38 60 00 02 */ li r3, 2
+/* 802D0AC8 002CC728 4B FE 91 85 */ bl GKI_getpoolbuf
+/* 802D0ACC 002CC72C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0AD0 002CC730 40 82 00 0C */ bne lbl_802D0ADC
+/* 802D0AD4 002CC734 38 60 00 00 */ li r3, 0
+/* 802D0AD8 002CC738 48 00 00 40 */ b lbl_802D0B18
+lbl_802D0ADC:
+/* 802D0ADC 002CC73C 38 80 00 05 */ li r4, 5
+/* 802D0AE0 002CC740 38 00 00 00 */ li r0, 0
+/* 802D0AE4 002CC744 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D0AE8 002CC748 38 C0 00 1D */ li r6, 0x1d
+/* 802D0AEC 002CC74C 38 A0 00 04 */ li r5, 4
+/* 802D0AF0 002CC750 38 80 00 02 */ li r4, 2
+/* 802D0AF4 002CC754 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0AF8 002CC758 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0AFC 002CC75C 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0B00 002CC760 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0B04 002CC764 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D0B08 002CC768 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D0B0C 002CC76C 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0B10 002CC770 4B FF D3 25 */ bl btu_hcif_send_cmd
+/* 802D0B14 002CC774 38 60 00 01 */ li r3, 1
+lbl_802D0B18:
+/* 802D0B18 002CC778 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0B1C 002CC77C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0B20 002CC780 7C 08 03 A6 */ mtlr r0
+/* 802D0B24 002CC784 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D0B28 002CC788 4E 80 00 20 */ blr
+
+.global btsnd_hcic_read_rmt_clk_offset
+btsnd_hcic_read_rmt_clk_offset:
+/* 802D0B2C 002CC78C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0B30 002CC790 7C 08 02 A6 */ mflr r0
+/* 802D0B34 002CC794 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D0B38 002CC798 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0B3C 002CC79C 7C 7F 1B 78 */ mr r31, r3
+/* 802D0B40 002CC7A0 38 60 00 02 */ li r3, 2
+/* 802D0B44 002CC7A4 4B FE 91 09 */ bl GKI_getpoolbuf
+/* 802D0B48 002CC7A8 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0B4C 002CC7AC 40 82 00 0C */ bne lbl_802D0B58
+/* 802D0B50 002CC7B0 38 60 00 00 */ li r3, 0
+/* 802D0B54 002CC7B4 48 00 00 40 */ b lbl_802D0B94
+lbl_802D0B58:
+/* 802D0B58 002CC7B8 38 80 00 05 */ li r4, 5
+/* 802D0B5C 002CC7BC 38 00 00 00 */ li r0, 0
+/* 802D0B60 002CC7C0 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D0B64 002CC7C4 38 C0 00 1F */ li r6, 0x1f
+/* 802D0B68 002CC7C8 38 A0 00 04 */ li r5, 4
+/* 802D0B6C 002CC7CC 38 80 00 02 */ li r4, 2
+/* 802D0B70 002CC7D0 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0B74 002CC7D4 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0B78 002CC7D8 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0B7C 002CC7DC 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0B80 002CC7E0 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D0B84 002CC7E4 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D0B88 002CC7E8 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0B8C 002CC7EC 4B FF D2 A9 */ bl btu_hcif_send_cmd
+/* 802D0B90 002CC7F0 38 60 00 01 */ li r3, 1
+lbl_802D0B94:
+/* 802D0B94 002CC7F4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0B98 002CC7F8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0B9C 002CC7FC 7C 08 03 A6 */ mtlr r0
+/* 802D0BA0 002CC800 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D0BA4 002CC804 4E 80 00 20 */ blr
+
+.global btsnd_hcic_setup_esco_conn
+btsnd_hcic_setup_esco_conn:
+/* 802D0BA8 002CC808 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D0BAC 002CC80C 7C 08 02 A6 */ mflr r0
+/* 802D0BB0 002CC810 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D0BB4 002CC814 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D0BB8 002CC818 4B EF 65 69 */ bl _savegpr_25
+/* 802D0BBC 002CC81C 7C 79 1B 78 */ mr r25, r3
+/* 802D0BC0 002CC820 7C 9A 23 78 */ mr r26, r4
+/* 802D0BC4 002CC824 7C BB 2B 78 */ mr r27, r5
+/* 802D0BC8 002CC828 7C DC 33 78 */ mr r28, r6
+/* 802D0BCC 002CC82C 7C FD 3B 78 */ mr r29, r7
+/* 802D0BD0 002CC830 7D 1E 43 78 */ mr r30, r8
+/* 802D0BD4 002CC834 7D 3F 4B 78 */ mr r31, r9
+/* 802D0BD8 002CC838 38 60 00 02 */ li r3, 2
+/* 802D0BDC 002CC83C 4B FE 90 71 */ bl GKI_getpoolbuf
+/* 802D0BE0 002CC840 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0BE4 002CC844 40 82 00 0C */ bne lbl_802D0BF0
+/* 802D0BE8 002CC848 38 60 00 00 */ li r3, 0
+/* 802D0BEC 002CC84C 48 00 00 A0 */ b lbl_802D0C8C
+lbl_802D0BF0:
+/* 802D0BF0 002CC850 38 00 00 14 */ li r0, 0x14
+/* 802D0BF4 002CC854 7F 2C 46 70 */ srawi r12, r25, 8
+/* 802D0BF8 002CC858 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D0BFC 002CC85C 38 00 00 00 */ li r0, 0
+/* 802D0C00 002CC860 38 C0 00 28 */ li r6, 0x28
+/* 802D0C04 002CC864 38 80 00 04 */ li r4, 4
+/* 802D0C08 002CC868 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0C0C 002CC86C 38 00 00 11 */ li r0, 0x11
+/* 802D0C10 002CC870 57 4B C6 3E */ rlwinm r11, r26, 0x18, 0x18, 0x1f
+/* 802D0C14 002CC874 57 4A 86 3E */ rlwinm r10, r26, 0x10, 0x18, 0x1f
+/* 802D0C18 002CC878 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0C1C 002CC87C 57 49 46 3E */ srwi r9, r26, 0x18
+/* 802D0C20 002CC880 57 68 C6 3E */ rlwinm r8, r27, 0x18, 0x18, 0x1f
+/* 802D0C24 002CC884 57 67 86 3E */ rlwinm r7, r27, 0x10, 0x18, 0x1f
+/* 802D0C28 002CC888 98 83 00 09 */ stb r4, 9(r3)
+/* 802D0C2C 002CC88C 7F 85 46 70 */ srawi r5, r28, 8
+/* 802D0C30 002CC890 57 66 46 3E */ srwi r6, r27, 0x18
+/* 802D0C34 002CC894 7F A4 46 70 */ srawi r4, r29, 8
+/* 802D0C38 002CC898 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D0C3C 002CC89C 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0C40 002CC8A0 9B 23 00 0B */ stb r25, 0xb(r3)
+/* 802D0C44 002CC8A4 99 83 00 0C */ stb r12, 0xc(r3)
+/* 802D0C48 002CC8A8 9B 43 00 0D */ stb r26, 0xd(r3)
+/* 802D0C4C 002CC8AC 99 63 00 0E */ stb r11, 0xe(r3)
+/* 802D0C50 002CC8B0 99 43 00 0F */ stb r10, 0xf(r3)
+/* 802D0C54 002CC8B4 99 23 00 10 */ stb r9, 0x10(r3)
+/* 802D0C58 002CC8B8 9B 63 00 11 */ stb r27, 0x11(r3)
+/* 802D0C5C 002CC8BC 99 03 00 12 */ stb r8, 0x12(r3)
+/* 802D0C60 002CC8C0 98 E3 00 13 */ stb r7, 0x13(r3)
+/* 802D0C64 002CC8C4 98 C3 00 14 */ stb r6, 0x14(r3)
+/* 802D0C68 002CC8C8 9B 83 00 15 */ stb r28, 0x15(r3)
+/* 802D0C6C 002CC8CC 98 A3 00 16 */ stb r5, 0x16(r3)
+/* 802D0C70 002CC8D0 9B A3 00 17 */ stb r29, 0x17(r3)
+/* 802D0C74 002CC8D4 98 83 00 18 */ stb r4, 0x18(r3)
+/* 802D0C78 002CC8D8 9B C3 00 19 */ stb r30, 0x19(r3)
+/* 802D0C7C 002CC8DC 9B E3 00 1A */ stb r31, 0x1a(r3)
+/* 802D0C80 002CC8E0 98 03 00 1B */ stb r0, 0x1b(r3)
+/* 802D0C84 002CC8E4 4B FF D1 B1 */ bl btu_hcif_send_cmd
+/* 802D0C88 002CC8E8 38 60 00 01 */ li r3, 1
+lbl_802D0C8C:
+/* 802D0C8C 002CC8EC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D0C90 002CC8F0 4B EF 64 DD */ bl _restgpr_25
+/* 802D0C94 002CC8F4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D0C98 002CC8F8 7C 08 03 A6 */ mtlr r0
+/* 802D0C9C 002CC8FC 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D0CA0 002CC900 4E 80 00 20 */ blr
+
+.global btsnd_hcic_accept_esco_conn
+btsnd_hcic_accept_esco_conn:
+/* 802D0CA4 002CC904 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D0CA8 002CC908 7C 08 02 A6 */ mflr r0
+/* 802D0CAC 002CC90C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D0CB0 002CC910 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D0CB4 002CC914 4B EF 64 6D */ bl _savegpr_25
+/* 802D0CB8 002CC918 3B 40 00 18 */ li r26, 0x18
+/* 802D0CBC 002CC91C 39 80 00 00 */ li r12, 0
+/* 802D0CC0 002CC920 39 60 00 29 */ li r11, 0x29
+/* 802D0CC4 002CC924 38 00 00 04 */ li r0, 4
+/* 802D0CC8 002CC928 3B 20 00 15 */ li r25, 0x15
+/* 802D0CCC 002CC92C B3 43 00 02 */ sth r26, 2(r3)
+/* 802D0CD0 002CC930 54 BA C6 3E */ rlwinm r26, r5, 0x18, 0x18, 0x1f
+/* 802D0CD4 002CC934 54 BB 86 3E */ rlwinm r27, r5, 0x10, 0x18, 0x1f
+/* 802D0CD8 002CC938 B1 83 00 04 */ sth r12, 4(r3)
+/* 802D0CDC 002CC93C 54 BC 46 3E */ srwi r28, r5, 0x18
+/* 802D0CE0 002CC940 54 DD C6 3E */ rlwinm r29, r6, 0x18, 0x18, 0x1f
+/* 802D0CE4 002CC944 54 DE 86 3E */ rlwinm r30, r6, 0x10, 0x18, 0x1f
+/* 802D0CE8 002CC948 99 63 00 08 */ stb r11, 8(r3)
+/* 802D0CEC 002CC94C 54 DF 46 3E */ srwi r31, r6, 0x18
+/* 802D0CF0 002CC950 7C EC 46 70 */ srawi r12, r7, 8
+/* 802D0CF4 002CC954 55 0B C6 3E */ rlwinm r11, r8, 0x18, 0x18, 0x1f
+/* 802D0CF8 002CC958 98 03 00 09 */ stb r0, 9(r3)
+/* 802D0CFC 002CC95C 55 40 C6 3E */ rlwinm r0, r10, 0x18, 0x18, 0x1f
+/* 802D0D00 002CC960 9B 23 00 0A */ stb r25, 0xa(r3)
+/* 802D0D04 002CC964 8B 24 00 05 */ lbz r25, 5(r4)
+/* 802D0D08 002CC968 9B 23 00 0B */ stb r25, 0xb(r3)
+/* 802D0D0C 002CC96C 8B 24 00 04 */ lbz r25, 4(r4)
+/* 802D0D10 002CC970 9B 23 00 0C */ stb r25, 0xc(r3)
+/* 802D0D14 002CC974 8B 24 00 03 */ lbz r25, 3(r4)
+/* 802D0D18 002CC978 9B 23 00 0D */ stb r25, 0xd(r3)
+/* 802D0D1C 002CC97C 8B 24 00 02 */ lbz r25, 2(r4)
+/* 802D0D20 002CC980 9B 23 00 0E */ stb r25, 0xe(r3)
+/* 802D0D24 002CC984 8B 24 00 01 */ lbz r25, 1(r4)
+/* 802D0D28 002CC988 9B 23 00 0F */ stb r25, 0xf(r3)
+/* 802D0D2C 002CC98C 88 84 00 00 */ lbz r4, 0(r4)
+/* 802D0D30 002CC990 98 83 00 10 */ stb r4, 0x10(r3)
+/* 802D0D34 002CC994 98 A3 00 11 */ stb r5, 0x11(r3)
+/* 802D0D38 002CC998 9B 43 00 12 */ stb r26, 0x12(r3)
+/* 802D0D3C 002CC99C 9B 63 00 13 */ stb r27, 0x13(r3)
+/* 802D0D40 002CC9A0 9B 83 00 14 */ stb r28, 0x14(r3)
+/* 802D0D44 002CC9A4 98 C3 00 15 */ stb r6, 0x15(r3)
+/* 802D0D48 002CC9A8 9B A3 00 16 */ stb r29, 0x16(r3)
+/* 802D0D4C 002CC9AC 9B C3 00 17 */ stb r30, 0x17(r3)
+/* 802D0D50 002CC9B0 9B E3 00 18 */ stb r31, 0x18(r3)
+/* 802D0D54 002CC9B4 98 E3 00 19 */ stb r7, 0x19(r3)
+/* 802D0D58 002CC9B8 99 83 00 1A */ stb r12, 0x1a(r3)
+/* 802D0D5C 002CC9BC 99 03 00 1B */ stb r8, 0x1b(r3)
+/* 802D0D60 002CC9C0 99 63 00 1C */ stb r11, 0x1c(r3)
+/* 802D0D64 002CC9C4 99 23 00 1D */ stb r9, 0x1d(r3)
+/* 802D0D68 002CC9C8 99 43 00 1E */ stb r10, 0x1e(r3)
+/* 802D0D6C 002CC9CC 98 03 00 1F */ stb r0, 0x1f(r3)
+/* 802D0D70 002CC9D0 4B FF D0 C5 */ bl btu_hcif_send_cmd
+/* 802D0D74 002CC9D4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D0D78 002CC9D8 4B EF 63 F5 */ bl _restgpr_25
+/* 802D0D7C 002CC9DC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D0D80 002CC9E0 7C 08 03 A6 */ mtlr r0
+/* 802D0D84 002CC9E4 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D0D88 002CC9E8 4E 80 00 20 */ blr
+
+.global btsnd_hcic_reject_esco_conn
+btsnd_hcic_reject_esco_conn:
+/* 802D0D8C 002CC9EC 39 20 00 0A */ li r9, 0xa
+/* 802D0D90 002CC9F0 39 00 00 00 */ li r8, 0
+/* 802D0D94 002CC9F4 38 E0 00 2A */ li r7, 0x2a
+/* 802D0D98 002CC9F8 38 C0 00 04 */ li r6, 4
+/* 802D0D9C 002CC9FC 38 00 00 07 */ li r0, 7
+/* 802D0DA0 002CCA00 B1 23 00 02 */ sth r9, 2(r3)
+/* 802D0DA4 002CCA04 B1 03 00 04 */ sth r8, 4(r3)
+/* 802D0DA8 002CCA08 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D0DAC 002CCA0C 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D0DB0 002CCA10 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D0DB4 002CCA14 88 04 00 05 */ lbz r0, 5(r4)
+/* 802D0DB8 002CCA18 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D0DBC 002CCA1C 88 04 00 04 */ lbz r0, 4(r4)
+/* 802D0DC0 002CCA20 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0DC4 002CCA24 88 04 00 03 */ lbz r0, 3(r4)
+/* 802D0DC8 002CCA28 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D0DCC 002CCA2C 88 04 00 02 */ lbz r0, 2(r4)
+/* 802D0DD0 002CCA30 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D0DD4 002CCA34 88 04 00 01 */ lbz r0, 1(r4)
+/* 802D0DD8 002CCA38 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D0DDC 002CCA3C 88 04 00 00 */ lbz r0, 0(r4)
+/* 802D0DE0 002CCA40 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D0DE4 002CCA44 98 A3 00 11 */ stb r5, 0x11(r3)
+/* 802D0DE8 002CCA48 4B FF D0 4C */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_hold_mode
+btsnd_hcic_hold_mode:
+/* 802D0DEC 002CCA4C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D0DF0 002CCA50 7C 08 02 A6 */ mflr r0
+/* 802D0DF4 002CCA54 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0DF8 002CCA58 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D0DFC 002CCA5C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802D0E00 002CCA60 7C DF 33 78 */ mr r31, r6
+/* 802D0E04 002CCA64 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802D0E08 002CCA68 7C BE 2B 78 */ mr r30, r5
+/* 802D0E0C 002CCA6C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802D0E10 002CCA70 7C 9D 23 78 */ mr r29, r4
+/* 802D0E14 002CCA74 40 82 00 1C */ bne lbl_802D0E30
+/* 802D0E18 002CCA78 38 60 00 02 */ li r3, 2
+/* 802D0E1C 002CCA7C 4B FE 8E 31 */ bl GKI_getpoolbuf
+/* 802D0E20 002CCA80 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0E24 002CCA84 40 82 00 0C */ bne lbl_802D0E30
+/* 802D0E28 002CCA88 38 60 00 00 */ li r3, 0
+/* 802D0E2C 002CCA8C 48 00 00 58 */ b lbl_802D0E84
+lbl_802D0E30:
+/* 802D0E30 002CCA90 38 00 00 09 */ li r0, 9
+/* 802D0E34 002CCA94 7F A5 46 70 */ srawi r5, r29, 8
+/* 802D0E38 002CCA98 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D0E3C 002CCA9C 38 00 00 00 */ li r0, 0
+/* 802D0E40 002CCAA0 39 00 00 01 */ li r8, 1
+/* 802D0E44 002CCAA4 38 E0 00 08 */ li r7, 8
+/* 802D0E48 002CCAA8 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0E4C 002CCAAC 38 C0 00 06 */ li r6, 6
+/* 802D0E50 002CCAB0 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D0E54 002CCAB4 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0E58 002CCAB8 99 03 00 08 */ stb r8, 8(r3)
+/* 802D0E5C 002CCABC 98 E3 00 09 */ stb r7, 9(r3)
+/* 802D0E60 002CCAC0 98 C3 00 0A */ stb r6, 0xa(r3)
+/* 802D0E64 002CCAC4 9B A3 00 0B */ stb r29, 0xb(r3)
+/* 802D0E68 002CCAC8 98 A3 00 0C */ stb r5, 0xc(r3)
+/* 802D0E6C 002CCACC 9B C3 00 0D */ stb r30, 0xd(r3)
+/* 802D0E70 002CCAD0 98 83 00 0E */ stb r4, 0xe(r3)
+/* 802D0E74 002CCAD4 9B E3 00 0F */ stb r31, 0xf(r3)
+/* 802D0E78 002CCAD8 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D0E7C 002CCADC 4B FF CF B9 */ bl btu_hcif_send_cmd
+/* 802D0E80 002CCAE0 38 60 00 01 */ li r3, 1
+lbl_802D0E84:
+/* 802D0E84 002CCAE4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D0E88 002CCAE8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802D0E8C 002CCAEC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802D0E90 002CCAF0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802D0E94 002CCAF4 7C 08 03 A6 */ mtlr r0
+/* 802D0E98 002CCAF8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D0E9C 002CCAFC 4E 80 00 20 */ blr
+
+.global btsnd_hcic_sniff_mode
+btsnd_hcic_sniff_mode:
+/* 802D0EA0 002CCB00 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D0EA4 002CCB04 7C 08 02 A6 */ mflr r0
+/* 802D0EA8 002CCB08 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D0EAC 002CCB0C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D0EB0 002CCB10 4B EF 62 79 */ bl _savegpr_27
+/* 802D0EB4 002CCB14 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0EB8 002CCB18 7C 9B 23 78 */ mr r27, r4
+/* 802D0EBC 002CCB1C 7C BC 2B 78 */ mr r28, r5
+/* 802D0EC0 002CCB20 7C DD 33 78 */ mr r29, r6
+/* 802D0EC4 002CCB24 7C FE 3B 78 */ mr r30, r7
+/* 802D0EC8 002CCB28 7D 1F 43 78 */ mr r31, r8
+/* 802D0ECC 002CCB2C 40 82 00 1C */ bne lbl_802D0EE8
+/* 802D0ED0 002CCB30 38 60 00 02 */ li r3, 2
+/* 802D0ED4 002CCB34 4B FE 8D 79 */ bl GKI_getpoolbuf
+/* 802D0ED8 002CCB38 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0EDC 002CCB3C 40 82 00 0C */ bne lbl_802D0EE8
+/* 802D0EE0 002CCB40 38 60 00 00 */ li r3, 0
+/* 802D0EE4 002CCB44 48 00 00 70 */ b lbl_802D0F54
+lbl_802D0EE8:
+/* 802D0EE8 002CCB48 38 00 00 0D */ li r0, 0xd
+/* 802D0EEC 002CCB4C 7F 67 46 70 */ srawi r7, r27, 8
+/* 802D0EF0 002CCB50 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D0EF4 002CCB54 38 80 00 00 */ li r4, 0
+/* 802D0EF8 002CCB58 7F 86 46 70 */ srawi r6, r28, 8
+/* 802D0EFC 002CCB5C 38 00 00 03 */ li r0, 3
+/* 802D0F00 002CCB60 B0 83 00 04 */ sth r4, 4(r3)
+/* 802D0F04 002CCB64 7F A5 46 70 */ srawi r5, r29, 8
+/* 802D0F08 002CCB68 39 20 00 08 */ li r9, 8
+/* 802D0F0C 002CCB6C 39 00 00 0A */ li r8, 0xa
+/* 802D0F10 002CCB70 98 03 00 08 */ stb r0, 8(r3)
+/* 802D0F14 002CCB74 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D0F18 002CCB78 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0F1C 002CCB7C 99 23 00 09 */ stb r9, 9(r3)
+/* 802D0F20 002CCB80 99 03 00 0A */ stb r8, 0xa(r3)
+/* 802D0F24 002CCB84 9B 63 00 0B */ stb r27, 0xb(r3)
+/* 802D0F28 002CCB88 98 E3 00 0C */ stb r7, 0xc(r3)
+/* 802D0F2C 002CCB8C 9B 83 00 0D */ stb r28, 0xd(r3)
+/* 802D0F30 002CCB90 98 C3 00 0E */ stb r6, 0xe(r3)
+/* 802D0F34 002CCB94 9B A3 00 0F */ stb r29, 0xf(r3)
+/* 802D0F38 002CCB98 98 A3 00 10 */ stb r5, 0x10(r3)
+/* 802D0F3C 002CCB9C 9B C3 00 11 */ stb r30, 0x11(r3)
+/* 802D0F40 002CCBA0 98 83 00 12 */ stb r4, 0x12(r3)
+/* 802D0F44 002CCBA4 9B E3 00 13 */ stb r31, 0x13(r3)
+/* 802D0F48 002CCBA8 98 03 00 14 */ stb r0, 0x14(r3)
+/* 802D0F4C 002CCBAC 4B FF CE E9 */ bl btu_hcif_send_cmd
+/* 802D0F50 002CCBB0 38 60 00 01 */ li r3, 1
+lbl_802D0F54:
+/* 802D0F54 002CCBB4 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D0F58 002CCBB8 4B EF 62 1D */ bl _restgpr_27
+/* 802D0F5C 002CCBBC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D0F60 002CCBC0 7C 08 03 A6 */ mtlr r0
+/* 802D0F64 002CCBC4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D0F68 002CCBC8 4E 80 00 20 */ blr
+
+.global btsnd_hcic_exit_sniff_mode
+btsnd_hcic_exit_sniff_mode:
+/* 802D0F6C 002CCBCC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D0F70 002CCBD0 7C 08 02 A6 */ mflr r0
+/* 802D0F74 002CCBD4 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0F78 002CCBD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D0F7C 002CCBDC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D0F80 002CCBE0 7C 9F 23 78 */ mr r31, r4
+/* 802D0F84 002CCBE4 40 82 00 1C */ bne lbl_802D0FA0
+/* 802D0F88 002CCBE8 38 60 00 02 */ li r3, 2
+/* 802D0F8C 002CCBEC 4B FE 8C C1 */ bl GKI_getpoolbuf
+/* 802D0F90 002CCBF0 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0F94 002CCBF4 40 82 00 0C */ bne lbl_802D0FA0
+/* 802D0F98 002CCBF8 38 60 00 00 */ li r3, 0
+/* 802D0F9C 002CCBFC 48 00 00 40 */ b lbl_802D0FDC
+lbl_802D0FA0:
+/* 802D0FA0 002CCC00 38 80 00 05 */ li r4, 5
+/* 802D0FA4 002CCC04 38 00 00 00 */ li r0, 0
+/* 802D0FA8 002CCC08 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D0FAC 002CCC0C 38 C0 00 04 */ li r6, 4
+/* 802D0FB0 002CCC10 38 A0 00 08 */ li r5, 8
+/* 802D0FB4 002CCC14 38 80 00 02 */ li r4, 2
+/* 802D0FB8 002CCC18 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D0FBC 002CCC1C 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D0FC0 002CCC20 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D0FC4 002CCC24 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D0FC8 002CCC28 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D0FCC 002CCC2C 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D0FD0 002CCC30 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D0FD4 002CCC34 4B FF CE 61 */ bl btu_hcif_send_cmd
+/* 802D0FD8 002CCC38 38 60 00 01 */ li r3, 1
+lbl_802D0FDC:
+/* 802D0FDC 002CCC3C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D0FE0 002CCC40 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D0FE4 002CCC44 7C 08 03 A6 */ mtlr r0
+/* 802D0FE8 002CCC48 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D0FEC 002CCC4C 4E 80 00 20 */ blr
+
+.global btsnd_hcic_park_mode
+btsnd_hcic_park_mode:
+/* 802D0FF0 002CCC50 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D0FF4 002CCC54 7C 08 02 A6 */ mflr r0
+/* 802D0FF8 002CCC58 2C 03 00 00 */ cmpwi r3, 0
+/* 802D0FFC 002CCC5C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D1000 002CCC60 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802D1004 002CCC64 7C DF 33 78 */ mr r31, r6
+/* 802D1008 002CCC68 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802D100C 002CCC6C 7C BE 2B 78 */ mr r30, r5
+/* 802D1010 002CCC70 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802D1014 002CCC74 7C 9D 23 78 */ mr r29, r4
+/* 802D1018 002CCC78 40 82 00 1C */ bne lbl_802D1034
+/* 802D101C 002CCC7C 38 60 00 02 */ li r3, 2
+/* 802D1020 002CCC80 4B FE 8C 2D */ bl GKI_getpoolbuf
+/* 802D1024 002CCC84 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1028 002CCC88 40 82 00 0C */ bne lbl_802D1034
+/* 802D102C 002CCC8C 38 60 00 00 */ li r3, 0
+/* 802D1030 002CCC90 48 00 00 58 */ b lbl_802D1088
+lbl_802D1034:
+/* 802D1034 002CCC94 38 00 00 09 */ li r0, 9
+/* 802D1038 002CCC98 7F A5 46 70 */ srawi r5, r29, 8
+/* 802D103C 002CCC9C B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1040 002CCCA0 38 00 00 00 */ li r0, 0
+/* 802D1044 002CCCA4 39 00 00 05 */ li r8, 5
+/* 802D1048 002CCCA8 38 E0 00 08 */ li r7, 8
+/* 802D104C 002CCCAC B0 03 00 04 */ sth r0, 4(r3)
+/* 802D1050 002CCCB0 38 C0 00 06 */ li r6, 6
+/* 802D1054 002CCCB4 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D1058 002CCCB8 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D105C 002CCCBC 99 03 00 08 */ stb r8, 8(r3)
+/* 802D1060 002CCCC0 98 E3 00 09 */ stb r7, 9(r3)
+/* 802D1064 002CCCC4 98 C3 00 0A */ stb r6, 0xa(r3)
+/* 802D1068 002CCCC8 9B A3 00 0B */ stb r29, 0xb(r3)
+/* 802D106C 002CCCCC 98 A3 00 0C */ stb r5, 0xc(r3)
+/* 802D1070 002CCCD0 9B C3 00 0D */ stb r30, 0xd(r3)
+/* 802D1074 002CCCD4 98 83 00 0E */ stb r4, 0xe(r3)
+/* 802D1078 002CCCD8 9B E3 00 0F */ stb r31, 0xf(r3)
+/* 802D107C 002CCCDC 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D1080 002CCCE0 4B FF CD B5 */ bl btu_hcif_send_cmd
+/* 802D1084 002CCCE4 38 60 00 01 */ li r3, 1
+lbl_802D1088:
+/* 802D1088 002CCCE8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D108C 002CCCEC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802D1090 002CCCF0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802D1094 002CCCF4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802D1098 002CCCF8 7C 08 03 A6 */ mtlr r0
+/* 802D109C 002CCCFC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D10A0 002CCD00 4E 80 00 20 */ blr
+
+.global btsnd_hcic_exit_park_mode
+btsnd_hcic_exit_park_mode:
+/* 802D10A4 002CCD04 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D10A8 002CCD08 7C 08 02 A6 */ mflr r0
+/* 802D10AC 002CCD0C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D10B0 002CCD10 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D10B4 002CCD14 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D10B8 002CCD18 7C 9F 23 78 */ mr r31, r4
+/* 802D10BC 002CCD1C 40 82 00 1C */ bne lbl_802D10D8
+/* 802D10C0 002CCD20 38 60 00 02 */ li r3, 2
+/* 802D10C4 002CCD24 4B FE 8B 89 */ bl GKI_getpoolbuf
+/* 802D10C8 002CCD28 2C 03 00 00 */ cmpwi r3, 0
+/* 802D10CC 002CCD2C 40 82 00 0C */ bne lbl_802D10D8
+/* 802D10D0 002CCD30 38 60 00 00 */ li r3, 0
+/* 802D10D4 002CCD34 48 00 00 40 */ b lbl_802D1114
+lbl_802D10D8:
+/* 802D10D8 002CCD38 38 80 00 05 */ li r4, 5
+/* 802D10DC 002CCD3C 38 00 00 00 */ li r0, 0
+/* 802D10E0 002CCD40 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D10E4 002CCD44 38 C0 00 06 */ li r6, 6
+/* 802D10E8 002CCD48 38 A0 00 08 */ li r5, 8
+/* 802D10EC 002CCD4C 38 80 00 02 */ li r4, 2
+/* 802D10F0 002CCD50 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D10F4 002CCD54 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D10F8 002CCD58 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D10FC 002CCD5C 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D1100 002CCD60 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D1104 002CCD64 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D1108 002CCD68 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D110C 002CCD6C 4B FF CD 29 */ bl btu_hcif_send_cmd
+/* 802D1110 002CCD70 38 60 00 01 */ li r3, 1
+lbl_802D1114:
+/* 802D1114 002CCD74 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1118 002CCD78 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D111C 002CCD7C 7C 08 03 A6 */ mtlr r0
+/* 802D1120 002CCD80 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1124 002CCD84 4E 80 00 20 */ blr
+
+.global btsnd_hcic_switch_role
+btsnd_hcic_switch_role:
+/* 802D1128 002CCD88 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D112C 002CCD8C 7C 08 02 A6 */ mflr r0
+/* 802D1130 002CCD90 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1134 002CCD94 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1138 002CCD98 7C 9F 23 78 */ mr r31, r4
+/* 802D113C 002CCD9C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D1140 002CCDA0 7C 7E 1B 78 */ mr r30, r3
+/* 802D1144 002CCDA4 38 60 00 02 */ li r3, 2
+/* 802D1148 002CCDA8 4B FE 8B 05 */ bl GKI_getpoolbuf
+/* 802D114C 002CCDAC 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1150 002CCDB0 40 82 00 0C */ bne lbl_802D115C
+/* 802D1154 002CCDB4 38 60 00 00 */ li r3, 0
+/* 802D1158 002CCDB8 48 00 00 68 */ b lbl_802D11C0
+lbl_802D115C:
+/* 802D115C 002CCDBC 38 00 00 0A */ li r0, 0xa
+/* 802D1160 002CCDC0 38 C0 00 00 */ li r6, 0
+/* 802D1164 002CCDC4 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1168 002CCDC8 38 A0 00 0B */ li r5, 0xb
+/* 802D116C 002CCDCC 38 80 00 08 */ li r4, 8
+/* 802D1170 002CCDD0 38 00 00 07 */ li r0, 7
+/* 802D1174 002CCDD4 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D1178 002CCDD8 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D117C 002CCDDC 98 83 00 09 */ stb r4, 9(r3)
+/* 802D1180 002CCDE0 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1184 002CCDE4 88 1E 00 05 */ lbz r0, 5(r30)
+/* 802D1188 002CCDE8 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D118C 002CCDEC 88 1E 00 04 */ lbz r0, 4(r30)
+/* 802D1190 002CCDF0 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D1194 002CCDF4 88 1E 00 03 */ lbz r0, 3(r30)
+/* 802D1198 002CCDF8 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D119C 002CCDFC 88 1E 00 02 */ lbz r0, 2(r30)
+/* 802D11A0 002CCE00 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D11A4 002CCE04 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802D11A8 002CCE08 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D11AC 002CCE0C 88 1E 00 00 */ lbz r0, 0(r30)
+/* 802D11B0 002CCE10 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D11B4 002CCE14 9B E3 00 11 */ stb r31, 0x11(r3)
+/* 802D11B8 002CCE18 4B FF CC 7D */ bl btu_hcif_send_cmd
+/* 802D11BC 002CCE1C 38 60 00 01 */ li r3, 1
+lbl_802D11C0:
+/* 802D11C0 002CCE20 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D11C4 002CCE24 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D11C8 002CCE28 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D11CC 002CCE2C 7C 08 03 A6 */ mtlr r0
+/* 802D11D0 002CCE30 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D11D4 002CCE34 4E 80 00 20 */ blr
+
+.global btsnd_hcic_write_policy_set
+btsnd_hcic_write_policy_set:
+/* 802D11D8 002CCE38 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D11DC 002CCE3C 7C 08 02 A6 */ mflr r0
+/* 802D11E0 002CCE40 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D11E4 002CCE44 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D11E8 002CCE48 7C 9F 23 78 */ mr r31, r4
+/* 802D11EC 002CCE4C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D11F0 002CCE50 7C 7E 1B 78 */ mr r30, r3
+/* 802D11F4 002CCE54 38 60 00 02 */ li r3, 2
+/* 802D11F8 002CCE58 4B FE 8A 55 */ bl GKI_getpoolbuf
+/* 802D11FC 002CCE5C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1200 002CCE60 40 82 00 0C */ bne lbl_802D120C
+/* 802D1204 002CCE64 38 60 00 00 */ li r3, 0
+/* 802D1208 002CCE68 48 00 00 4C */ b lbl_802D1254
+lbl_802D120C:
+/* 802D120C 002CCE6C 38 80 00 07 */ li r4, 7
+/* 802D1210 002CCE70 38 00 00 00 */ li r0, 0
+/* 802D1214 002CCE74 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D1218 002CCE78 38 E0 00 0D */ li r7, 0xd
+/* 802D121C 002CCE7C 38 C0 00 08 */ li r6, 8
+/* 802D1220 002CCE80 38 A0 00 04 */ li r5, 4
+/* 802D1224 002CCE84 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D1228 002CCE88 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D122C 002CCE8C 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D1230 002CCE90 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D1234 002CCE94 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D1238 002CCE98 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D123C 002CCE9C 9B C3 00 0B */ stb r30, 0xb(r3)
+/* 802D1240 002CCEA0 98 83 00 0C */ stb r4, 0xc(r3)
+/* 802D1244 002CCEA4 9B E3 00 0D */ stb r31, 0xd(r3)
+/* 802D1248 002CCEA8 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D124C 002CCEAC 4B FF CB E9 */ bl btu_hcif_send_cmd
+/* 802D1250 002CCEB0 38 60 00 01 */ li r3, 1
+lbl_802D1254:
+/* 802D1254 002CCEB4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1258 002CCEB8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D125C 002CCEBC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D1260 002CCEC0 7C 08 03 A6 */ mtlr r0
+/* 802D1264 002CCEC4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1268 002CCEC8 4E 80 00 20 */ blr
+
+.global btsnd_hcic_reset
+btsnd_hcic_reset:
+/* 802D126C 002CCECC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1270 002CCED0 7C 08 02 A6 */ mflr r0
+/* 802D1274 002CCED4 38 60 00 02 */ li r3, 2
+/* 802D1278 002CCED8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D127C 002CCEDC 4B FE 89 D1 */ bl GKI_getpoolbuf
+/* 802D1280 002CCEE0 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1284 002CCEE4 40 82 00 0C */ bne lbl_802D1290
+/* 802D1288 002CCEE8 38 60 00 00 */ li r3, 0
+/* 802D128C 002CCEEC 48 00 00 2C */ b lbl_802D12B8
+lbl_802D1290:
+/* 802D1290 002CCEF0 38 A0 00 03 */ li r5, 3
+/* 802D1294 002CCEF4 38 80 00 00 */ li r4, 0
+/* 802D1298 002CCEF8 B0 A3 00 02 */ sth r5, 2(r3)
+/* 802D129C 002CCEFC 38 00 00 0C */ li r0, 0xc
+/* 802D12A0 002CCF00 B0 83 00 04 */ sth r4, 4(r3)
+/* 802D12A4 002CCF04 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D12A8 002CCF08 98 03 00 09 */ stb r0, 9(r3)
+/* 802D12AC 002CCF0C 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D12B0 002CCF10 4B FF CB 85 */ bl btu_hcif_send_cmd
+/* 802D12B4 002CCF14 38 60 00 01 */ li r3, 1
+lbl_802D12B8:
+/* 802D12B8 002CCF18 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D12BC 002CCF1C 7C 08 03 A6 */ mtlr r0
+/* 802D12C0 002CCF20 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D12C4 002CCF24 4E 80 00 20 */ blr
+
+.global btsnd_hcic_set_event_filter
+btsnd_hcic_set_event_filter:
+/* 802D12C8 002CCF28 38 00 00 00 */ li r0, 0
+/* 802D12CC 002CCF2C 39 20 00 05 */ li r9, 5
+/* 802D12D0 002CCF30 39 00 00 0C */ li r8, 0xc
+/* 802D12D4 002CCF34 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D12D8 002CCF38 2C 04 00 00 */ cmpwi r4, 0
+/* 802D12DC 002CCF3C 7C C0 33 78 */ mr r0, r6
+/* 802D12E0 002CCF40 99 23 00 08 */ stb r9, 8(r3)
+/* 802D12E4 002CCF44 99 03 00 09 */ stb r8, 9(r3)
+/* 802D12E8 002CCF48 41 82 01 84 */ beq lbl_802D146C
+/* 802D12EC 002CCF4C 39 07 00 05 */ addi r8, r7, 5
+/* 802D12F0 002CCF50 39 27 00 02 */ addi r9, r7, 2
+/* 802D12F4 002CCF54 B1 03 00 02 */ sth r8, 2(r3)
+/* 802D12F8 002CCF58 28 05 00 01 */ cmplwi r5, 1
+/* 802D12FC 002CCF5C 39 03 00 0D */ addi r8, r3, 0xd
+/* 802D1300 002CCF60 99 23 00 0A */ stb r9, 0xa(r3)
+/* 802D1304 002CCF64 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D1308 002CCF68 98 A3 00 0C */ stb r5, 0xc(r3)
+/* 802D130C 002CCF6C 40 82 00 48 */ bne lbl_802D1354
+/* 802D1310 002CCF70 88 86 00 02 */ lbz r4, 2(r6)
+/* 802D1314 002CCF74 38 07 FF FA */ addi r0, r7, -6
+/* 802D1318 002CCF78 54 07 06 3E */ clrlwi r7, r0, 0x18
+/* 802D131C 002CCF7C 98 88 00 00 */ stb r4, 0(r8)
+/* 802D1320 002CCF80 38 06 00 06 */ addi r0, r6, 6
+/* 802D1324 002CCF84 88 86 00 01 */ lbz r4, 1(r6)
+/* 802D1328 002CCF88 98 88 00 01 */ stb r4, 1(r8)
+/* 802D132C 002CCF8C 88 86 00 00 */ lbz r4, 0(r6)
+/* 802D1330 002CCF90 98 88 00 02 */ stb r4, 2(r8)
+/* 802D1334 002CCF94 88 86 00 05 */ lbz r4, 5(r6)
+/* 802D1338 002CCF98 98 88 00 03 */ stb r4, 3(r8)
+/* 802D133C 002CCF9C 88 86 00 04 */ lbz r4, 4(r6)
+/* 802D1340 002CCFA0 98 88 00 04 */ stb r4, 4(r8)
+/* 802D1344 002CCFA4 88 86 00 03 */ lbz r4, 3(r6)
+/* 802D1348 002CCFA8 98 88 00 05 */ stb r4, 5(r8)
+/* 802D134C 002CCFAC 39 08 00 06 */ addi r8, r8, 6
+/* 802D1350 002CCFB0 48 00 00 4C */ b lbl_802D139C
+lbl_802D1354:
+/* 802D1354 002CCFB4 28 05 00 02 */ cmplwi r5, 2
+/* 802D1358 002CCFB8 40 82 00 44 */ bne lbl_802D139C
+/* 802D135C 002CCFBC 88 86 00 05 */ lbz r4, 5(r6)
+/* 802D1360 002CCFC0 38 07 FF FA */ addi r0, r7, -6
+/* 802D1364 002CCFC4 54 07 06 3E */ clrlwi r7, r0, 0x18
+/* 802D1368 002CCFC8 98 88 00 00 */ stb r4, 0(r8)
+/* 802D136C 002CCFCC 38 06 00 06 */ addi r0, r6, 6
+/* 802D1370 002CCFD0 88 86 00 04 */ lbz r4, 4(r6)
+/* 802D1374 002CCFD4 98 88 00 01 */ stb r4, 1(r8)
+/* 802D1378 002CCFD8 88 86 00 03 */ lbz r4, 3(r6)
+/* 802D137C 002CCFDC 98 88 00 02 */ stb r4, 2(r8)
+/* 802D1380 002CCFE0 88 86 00 02 */ lbz r4, 2(r6)
+/* 802D1384 002CCFE4 98 88 00 03 */ stb r4, 3(r8)
+/* 802D1388 002CCFE8 88 86 00 01 */ lbz r4, 1(r6)
+/* 802D138C 002CCFEC 98 88 00 04 */ stb r4, 4(r8)
+/* 802D1390 002CCFF0 88 86 00 00 */ lbz r4, 0(r6)
+/* 802D1394 002CCFF4 98 88 00 05 */ stb r4, 5(r8)
+/* 802D1398 002CCFF8 39 08 00 06 */ addi r8, r8, 6
+lbl_802D139C:
+/* 802D139C 002CCFFC 2C 87 00 00 */ cmpwi cr1, r7, 0
+/* 802D13A0 002CD000 41 86 00 E0 */ beq cr1, lbl_802D1480
+/* 802D13A4 002CD004 39 20 00 00 */ li r9, 0
+/* 802D13A8 002CD008 40 85 00 D8 */ ble cr1, lbl_802D1480
+/* 802D13AC 002CD00C 2C 07 00 08 */ cmpwi r7, 8
+/* 802D13B0 002CD010 38 A7 FF F8 */ addi r5, r7, -8
+/* 802D13B4 002CD014 40 81 00 8C */ ble lbl_802D1440
+/* 802D13B8 002CD018 38 C0 00 00 */ li r6, 0
+/* 802D13BC 002CD01C 41 84 00 18 */ blt cr1, lbl_802D13D4
+/* 802D13C0 002CD020 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha
+/* 802D13C4 002CD024 38 84 FF FE */ addi r4, r4, 0x7FFFFFFE@l
+/* 802D13C8 002CD028 7C 07 20 00 */ cmpw r7, r4
+/* 802D13CC 002CD02C 41 81 00 08 */ bgt lbl_802D13D4
+/* 802D13D0 002CD030 38 C0 00 01 */ li r6, 1
+lbl_802D13D4:
+/* 802D13D4 002CD034 2C 06 00 00 */ cmpwi r6, 0
+/* 802D13D8 002CD038 41 82 00 68 */ beq lbl_802D1440
+/* 802D13DC 002CD03C 38 85 00 07 */ addi r4, r5, 7
+/* 802D13E0 002CD040 54 84 E8 FE */ srwi r4, r4, 3
+/* 802D13E4 002CD044 7C 89 03 A6 */ mtctr r4
+/* 802D13E8 002CD048 2C 05 00 00 */ cmpwi r5, 0
+/* 802D13EC 002CD04C 40 81 00 54 */ ble lbl_802D1440
+lbl_802D13F0:
+/* 802D13F0 002CD050 7C 89 00 AE */ lbzx r4, r9, r0
+/* 802D13F4 002CD054 7C A0 4A 14 */ add r5, r0, r9
+/* 802D13F8 002CD058 39 29 00 08 */ addi r9, r9, 8
+/* 802D13FC 002CD05C 98 88 00 00 */ stb r4, 0(r8)
+/* 802D1400 002CD060 88 85 00 01 */ lbz r4, 1(r5)
+/* 802D1404 002CD064 98 88 00 01 */ stb r4, 1(r8)
+/* 802D1408 002CD068 88 85 00 02 */ lbz r4, 2(r5)
+/* 802D140C 002CD06C 98 88 00 02 */ stb r4, 2(r8)
+/* 802D1410 002CD070 88 85 00 03 */ lbz r4, 3(r5)
+/* 802D1414 002CD074 98 88 00 03 */ stb r4, 3(r8)
+/* 802D1418 002CD078 88 85 00 04 */ lbz r4, 4(r5)
+/* 802D141C 002CD07C 98 88 00 04 */ stb r4, 4(r8)
+/* 802D1420 002CD080 88 85 00 05 */ lbz r4, 5(r5)
+/* 802D1424 002CD084 98 88 00 05 */ stb r4, 5(r8)
+/* 802D1428 002CD088 88 85 00 06 */ lbz r4, 6(r5)
+/* 802D142C 002CD08C 98 88 00 06 */ stb r4, 6(r8)
+/* 802D1430 002CD090 88 85 00 07 */ lbz r4, 7(r5)
+/* 802D1434 002CD094 98 88 00 07 */ stb r4, 7(r8)
+/* 802D1438 002CD098 39 08 00 08 */ addi r8, r8, 8
+/* 802D143C 002CD09C 42 00 FF B4 */ bdnz lbl_802D13F0
+lbl_802D1440:
+/* 802D1440 002CD0A0 7C 89 38 50 */ subf r4, r9, r7
+/* 802D1444 002CD0A4 7C A0 4A 14 */ add r5, r0, r9
+/* 802D1448 002CD0A8 7C 89 03 A6 */ mtctr r4
+/* 802D144C 002CD0AC 7C 09 38 00 */ cmpw r9, r7
+/* 802D1450 002CD0B0 40 80 00 30 */ bge lbl_802D1480
+lbl_802D1454:
+/* 802D1454 002CD0B4 88 05 00 00 */ lbz r0, 0(r5)
+/* 802D1458 002CD0B8 38 A5 00 01 */ addi r5, r5, 1
+/* 802D145C 002CD0BC 98 08 00 00 */ stb r0, 0(r8)
+/* 802D1460 002CD0C0 39 08 00 01 */ addi r8, r8, 1
+/* 802D1464 002CD0C4 42 00 FF F0 */ bdnz lbl_802D1454
+/* 802D1468 002CD0C8 48 00 00 18 */ b lbl_802D1480
+lbl_802D146C:
+/* 802D146C 002CD0CC 38 A0 00 04 */ li r5, 4
+/* 802D1470 002CD0D0 38 00 00 01 */ li r0, 1
+/* 802D1474 002CD0D4 B0 A3 00 02 */ sth r5, 2(r3)
+/* 802D1478 002CD0D8 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D147C 002CD0DC 98 83 00 0B */ stb r4, 0xb(r3)
+lbl_802D1480:
+/* 802D1480 002CD0E0 4B FF C9 B4 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_pin_type
+btsnd_hcic_write_pin_type:
+/* 802D1484 002CD0E4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1488 002CD0E8 7C 08 02 A6 */ mflr r0
+/* 802D148C 002CD0EC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1490 002CD0F0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1494 002CD0F4 7C 7F 1B 78 */ mr r31, r3
+/* 802D1498 002CD0F8 38 60 00 02 */ li r3, 2
+/* 802D149C 002CD0FC 4B FE 87 B1 */ bl GKI_getpoolbuf
+/* 802D14A0 002CD100 2C 03 00 00 */ cmpwi r3, 0
+/* 802D14A4 002CD104 40 82 00 0C */ bne lbl_802D14B0
+/* 802D14A8 002CD108 38 60 00 00 */ li r3, 0
+/* 802D14AC 002CD10C 48 00 00 38 */ b lbl_802D14E4
+lbl_802D14B0:
+/* 802D14B0 002CD110 38 00 00 04 */ li r0, 4
+/* 802D14B4 002CD114 38 C0 00 00 */ li r6, 0
+/* 802D14B8 002CD118 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D14BC 002CD11C 38 A0 00 0A */ li r5, 0xa
+/* 802D14C0 002CD120 38 80 00 0C */ li r4, 0xc
+/* 802D14C4 002CD124 38 00 00 01 */ li r0, 1
+/* 802D14C8 002CD128 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D14CC 002CD12C 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D14D0 002CD130 98 83 00 09 */ stb r4, 9(r3)
+/* 802D14D4 002CD134 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D14D8 002CD138 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D14DC 002CD13C 4B FF C9 59 */ bl btu_hcif_send_cmd
+/* 802D14E0 002CD140 38 60 00 01 */ li r3, 1
+lbl_802D14E4:
+/* 802D14E4 002CD144 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D14E8 002CD148 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D14EC 002CD14C 7C 08 03 A6 */ mtlr r0
+/* 802D14F0 002CD150 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D14F4 002CD154 4E 80 00 20 */ blr
+
+.global btsnd_hcic_read_stored_key
+btsnd_hcic_read_stored_key:
+/* 802D14F8 002CD158 39 20 00 0A */ li r9, 0xa
+/* 802D14FC 002CD15C 39 00 00 00 */ li r8, 0
+/* 802D1500 002CD160 38 E0 00 0D */ li r7, 0xd
+/* 802D1504 002CD164 38 C0 00 0C */ li r6, 0xc
+/* 802D1508 002CD168 38 00 00 07 */ li r0, 7
+/* 802D150C 002CD16C B1 23 00 02 */ sth r9, 2(r3)
+/* 802D1510 002CD170 B1 03 00 04 */ sth r8, 4(r3)
+/* 802D1514 002CD174 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D1518 002CD178 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D151C 002CD17C 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1520 002CD180 88 04 00 05 */ lbz r0, 5(r4)
+/* 802D1524 002CD184 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D1528 002CD188 88 04 00 04 */ lbz r0, 4(r4)
+/* 802D152C 002CD18C 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D1530 002CD190 88 04 00 03 */ lbz r0, 3(r4)
+/* 802D1534 002CD194 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D1538 002CD198 88 04 00 02 */ lbz r0, 2(r4)
+/* 802D153C 002CD19C 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D1540 002CD1A0 88 04 00 01 */ lbz r0, 1(r4)
+/* 802D1544 002CD1A4 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D1548 002CD1A8 88 04 00 00 */ lbz r0, 0(r4)
+/* 802D154C 002CD1AC 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D1550 002CD1B0 98 A3 00 11 */ stb r5, 0x11(r3)
+/* 802D1554 002CD1B4 4B FF C8 E0 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_stored_key
+btsnd_hcic_write_stored_key:
+/* 802D1558 002CD1B8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D155C 002CD1BC 7C 08 02 A6 */ mflr r0
+/* 802D1560 002CD1C0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D1564 002CD1C4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D1568 002CD1C8 4B EF 5B AD */ bl _savegpr_22
+/* 802D156C 002CD1CC 1C E4 00 16 */ mulli r7, r4, 0x16
+/* 802D1570 002CD1D0 38 00 00 00 */ li r0, 0
+/* 802D1574 002CD1D4 39 20 00 11 */ li r9, 0x11
+/* 802D1578 002CD1D8 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D157C 002CD1DC 39 00 00 0C */ li r8, 0xc
+/* 802D1580 002CD1E0 39 47 00 04 */ addi r10, r7, 4
+/* 802D1584 002CD1E4 55 47 04 3E */ clrlwi r7, r10, 0x10
+/* 802D1588 002CD1E8 28 04 00 0B */ cmplwi r4, 0xb
+/* 802D158C 002CD1EC 38 07 FF FD */ addi r0, r7, -3
+/* 802D1590 002CD1F0 B1 43 00 02 */ sth r10, 2(r3)
+/* 802D1594 002CD1F4 99 23 00 08 */ stb r9, 8(r3)
+/* 802D1598 002CD1F8 99 03 00 09 */ stb r8, 9(r3)
+/* 802D159C 002CD1FC 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D15A0 002CD200 40 81 00 08 */ ble lbl_802D15A8
+/* 802D15A4 002CD204 38 80 00 0B */ li r4, 0xb
+lbl_802D15A8:
+/* 802D15A8 002CD208 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D15AC 002CD20C 38 E3 00 0C */ addi r7, r3, 0xc
+/* 802D15B0 002CD210 7C 89 03 A6 */ mtctr r4
+/* 802D15B4 002CD214 2C 04 00 00 */ cmpwi r4, 0
+/* 802D15B8 002CD218 40 81 01 44 */ ble lbl_802D16FC
+lbl_802D15BC:
+/* 802D15BC 002CD21C 88 05 00 05 */ lbz r0, 5(r5)
+/* 802D15C0 002CD220 3A C0 00 00 */ li r22, 0
+/* 802D15C4 002CD224 22 F6 00 0F */ subfic r23, r22, 0xf
+/* 802D15C8 002CD228 3B 00 00 01 */ li r24, 1
+/* 802D15CC 002CD22C 98 07 00 00 */ stb r0, 0(r7)
+/* 802D15D0 002CD230 23 38 00 0F */ subfic r25, r24, 0xf
+/* 802D15D4 002CD234 3B 40 00 02 */ li r26, 2
+/* 802D15D8 002CD238 3B 80 00 03 */ li r28, 3
+/* 802D15DC 002CD23C 88 05 00 04 */ lbz r0, 4(r5)
+/* 802D15E0 002CD240 23 7A 00 0F */ subfic r27, r26, 0xf
+/* 802D15E4 002CD244 23 BC 00 0F */ subfic r29, r28, 0xf
+/* 802D15E8 002CD248 3B C0 00 04 */ li r30, 4
+/* 802D15EC 002CD24C 98 07 00 01 */ stb r0, 1(r7)
+/* 802D15F0 002CD250 23 FE 00 0F */ subfic r31, r30, 0xf
+/* 802D15F4 002CD254 39 80 00 05 */ li r12, 5
+/* 802D15F8 002CD258 39 40 00 06 */ li r10, 6
+/* 802D15FC 002CD25C 88 05 00 03 */ lbz r0, 3(r5)
+/* 802D1600 002CD260 21 6C 00 0F */ subfic r11, r12, 0xf
+/* 802D1604 002CD264 21 2A 00 0F */ subfic r9, r10, 0xf
+/* 802D1608 002CD268 39 00 00 07 */ li r8, 7
+/* 802D160C 002CD26C 98 07 00 02 */ stb r0, 2(r7)
+/* 802D1610 002CD270 20 88 00 0F */ subfic r4, r8, 0xf
+/* 802D1614 002CD274 3A C0 00 08 */ li r22, 8
+/* 802D1618 002CD278 3B 00 00 09 */ li r24, 9
+/* 802D161C 002CD27C 88 05 00 02 */ lbz r0, 2(r5)
+/* 802D1620 002CD280 3B 40 00 0A */ li r26, 0xa
+/* 802D1624 002CD284 3B 80 00 0B */ li r28, 0xb
+/* 802D1628 002CD288 3B C0 00 0C */ li r30, 0xc
+/* 802D162C 002CD28C 98 07 00 03 */ stb r0, 3(r7)
+/* 802D1630 002CD290 39 80 00 0D */ li r12, 0xd
+/* 802D1634 002CD294 39 40 00 0E */ li r10, 0xe
+/* 802D1638 002CD298 39 00 00 0F */ li r8, 0xf
+/* 802D163C 002CD29C 88 05 00 01 */ lbz r0, 1(r5)
+/* 802D1640 002CD2A0 98 07 00 04 */ stb r0, 4(r7)
+/* 802D1644 002CD2A4 88 05 00 00 */ lbz r0, 0(r5)
+/* 802D1648 002CD2A8 38 A5 00 06 */ addi r5, r5, 6
+/* 802D164C 002CD2AC 98 07 00 05 */ stb r0, 5(r7)
+/* 802D1650 002CD2B0 7C 06 B8 AE */ lbzx r0, r6, r23
+/* 802D1654 002CD2B4 22 F6 00 0F */ subfic r23, r22, 0xf
+/* 802D1658 002CD2B8 98 07 00 06 */ stb r0, 6(r7)
+/* 802D165C 002CD2BC 7C 06 C8 AE */ lbzx r0, r6, r25
+/* 802D1660 002CD2C0 23 38 00 0F */ subfic r25, r24, 0xf
+/* 802D1664 002CD2C4 98 07 00 07 */ stb r0, 7(r7)
+/* 802D1668 002CD2C8 7C 06 D8 AE */ lbzx r0, r6, r27
+/* 802D166C 002CD2CC 23 7A 00 0F */ subfic r27, r26, 0xf
+/* 802D1670 002CD2D0 98 07 00 08 */ stb r0, 8(r7)
+/* 802D1674 002CD2D4 7C 06 E8 AE */ lbzx r0, r6, r29
+/* 802D1678 002CD2D8 23 BC 00 0F */ subfic r29, r28, 0xf
+/* 802D167C 002CD2DC 98 07 00 09 */ stb r0, 9(r7)
+/* 802D1680 002CD2E0 7C 06 F8 AE */ lbzx r0, r6, r31
+/* 802D1684 002CD2E4 23 FE 00 0F */ subfic r31, r30, 0xf
+/* 802D1688 002CD2E8 98 07 00 0A */ stb r0, 0xa(r7)
+/* 802D168C 002CD2EC 7C 06 58 AE */ lbzx r0, r6, r11
+/* 802D1690 002CD2F0 21 6C 00 0F */ subfic r11, r12, 0xf
+/* 802D1694 002CD2F4 98 07 00 0B */ stb r0, 0xb(r7)
+/* 802D1698 002CD2F8 7C 06 48 AE */ lbzx r0, r6, r9
+/* 802D169C 002CD2FC 21 2A 00 0F */ subfic r9, r10, 0xf
+/* 802D16A0 002CD300 98 07 00 0C */ stb r0, 0xc(r7)
+/* 802D16A4 002CD304 7C 06 20 AE */ lbzx r0, r6, r4
+/* 802D16A8 002CD308 20 88 00 0F */ subfic r4, r8, 0xf
+/* 802D16AC 002CD30C 98 07 00 0D */ stb r0, 0xd(r7)
+/* 802D16B0 002CD310 7C 06 B8 AE */ lbzx r0, r6, r23
+/* 802D16B4 002CD314 98 07 00 0E */ stb r0, 0xe(r7)
+/* 802D16B8 002CD318 7C 06 C8 AE */ lbzx r0, r6, r25
+/* 802D16BC 002CD31C 98 07 00 0F */ stb r0, 0xf(r7)
+/* 802D16C0 002CD320 7C 06 D8 AE */ lbzx r0, r6, r27
+/* 802D16C4 002CD324 98 07 00 10 */ stb r0, 0x10(r7)
+/* 802D16C8 002CD328 7C 06 E8 AE */ lbzx r0, r6, r29
+/* 802D16CC 002CD32C 98 07 00 11 */ stb r0, 0x11(r7)
+/* 802D16D0 002CD330 7C 06 F8 AE */ lbzx r0, r6, r31
+/* 802D16D4 002CD334 98 07 00 12 */ stb r0, 0x12(r7)
+/* 802D16D8 002CD338 7C 06 58 AE */ lbzx r0, r6, r11
+/* 802D16DC 002CD33C 98 07 00 13 */ stb r0, 0x13(r7)
+/* 802D16E0 002CD340 7C 06 48 AE */ lbzx r0, r6, r9
+/* 802D16E4 002CD344 98 07 00 14 */ stb r0, 0x14(r7)
+/* 802D16E8 002CD348 7C 06 20 AE */ lbzx r0, r6, r4
+/* 802D16EC 002CD34C 38 C6 00 10 */ addi r6, r6, 0x10
+/* 802D16F0 002CD350 98 07 00 15 */ stb r0, 0x15(r7)
+/* 802D16F4 002CD354 38 E7 00 16 */ addi r7, r7, 0x16
+/* 802D16F8 002CD358 42 00 FE C4 */ bdnz lbl_802D15BC
+lbl_802D16FC:
+/* 802D16FC 002CD35C 4B FF C7 39 */ bl btu_hcif_send_cmd
+/* 802D1700 002CD360 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D1704 002CD364 4B EF 5A 5D */ bl _restgpr_22
+/* 802D1708 002CD368 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D170C 002CD36C 7C 08 03 A6 */ mtlr r0
+/* 802D1710 002CD370 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D1714 002CD374 4E 80 00 20 */ blr
+
+.global btsnd_hcic_delete_stored_key
+btsnd_hcic_delete_stored_key:
+/* 802D1718 002CD378 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D171C 002CD37C 7C 08 02 A6 */ mflr r0
+/* 802D1720 002CD380 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1724 002CD384 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1728 002CD388 7C 9F 23 78 */ mr r31, r4
+/* 802D172C 002CD38C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D1730 002CD390 7C 7E 1B 78 */ mr r30, r3
+/* 802D1734 002CD394 38 60 00 02 */ li r3, 2
+/* 802D1738 002CD398 4B FE 85 15 */ bl GKI_getpoolbuf
+/* 802D173C 002CD39C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1740 002CD3A0 40 82 00 0C */ bne lbl_802D174C
+/* 802D1744 002CD3A4 38 60 00 00 */ li r3, 0
+/* 802D1748 002CD3A8 48 00 00 68 */ b lbl_802D17B0
+lbl_802D174C:
+/* 802D174C 002CD3AC 38 00 00 0A */ li r0, 0xa
+/* 802D1750 002CD3B0 38 C0 00 00 */ li r6, 0
+/* 802D1754 002CD3B4 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1758 002CD3B8 38 A0 00 12 */ li r5, 0x12
+/* 802D175C 002CD3BC 38 80 00 0C */ li r4, 0xc
+/* 802D1760 002CD3C0 38 00 00 07 */ li r0, 7
+/* 802D1764 002CD3C4 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D1768 002CD3C8 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D176C 002CD3CC 98 83 00 09 */ stb r4, 9(r3)
+/* 802D1770 002CD3D0 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1774 002CD3D4 88 1E 00 05 */ lbz r0, 5(r30)
+/* 802D1778 002CD3D8 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D177C 002CD3DC 88 1E 00 04 */ lbz r0, 4(r30)
+/* 802D1780 002CD3E0 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D1784 002CD3E4 88 1E 00 03 */ lbz r0, 3(r30)
+/* 802D1788 002CD3E8 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D178C 002CD3EC 88 1E 00 02 */ lbz r0, 2(r30)
+/* 802D1790 002CD3F0 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D1794 002CD3F4 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802D1798 002CD3F8 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D179C 002CD3FC 88 1E 00 00 */ lbz r0, 0(r30)
+/* 802D17A0 002CD400 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D17A4 002CD404 9B E3 00 11 */ stb r31, 0x11(r3)
+/* 802D17A8 002CD408 4B FF C6 8D */ bl btu_hcif_send_cmd
+/* 802D17AC 002CD40C 38 60 00 01 */ li r3, 1
+lbl_802D17B0:
+/* 802D17B0 002CD410 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D17B4 002CD414 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D17B8 002CD418 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D17BC 002CD41C 7C 08 03 A6 */ mtlr r0
+/* 802D17C0 002CD420 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D17C4 002CD424 4E 80 00 20 */ blr
+
+.global btsnd_hcic_change_name
+btsnd_hcic_change_name:
+/* 802D17C8 002CD428 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D17CC 002CD42C 7C 08 02 A6 */ mflr r0
+/* 802D17D0 002CD430 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D17D4 002CD434 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D17D8 002CD438 7C 7F 1B 78 */ mr r31, r3
+/* 802D17DC 002CD43C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D17E0 002CD440 7C 9E 23 78 */ mr r30, r4
+/* 802D17E4 002CD444 7F C3 F3 78 */ mr r3, r30
+/* 802D17E8 002CD448 4B EF 53 7D */ bl strlen
+/* 802D17EC 002CD44C 38 03 00 01 */ addi r0, r3, 1
+/* 802D17F0 002CD450 38 C0 00 FB */ li r6, 0xfb
+/* 802D17F4 002CD454 54 07 04 3E */ clrlwi r7, r0, 0x10
+/* 802D17F8 002CD458 38 A0 00 00 */ li r5, 0
+/* 802D17FC 002CD45C 38 80 00 13 */ li r4, 0x13
+/* 802D1800 002CD460 38 60 00 0C */ li r3, 0xc
+/* 802D1804 002CD464 38 00 00 F8 */ li r0, 0xf8
+/* 802D1808 002CD468 B0 DF 00 02 */ sth r6, 2(r31)
+/* 802D180C 002CD46C 2C 87 00 00 */ cmpwi cr1, r7, 0
+/* 802D1810 002CD470 38 DF 00 0B */ addi r6, r31, 0xb
+/* 802D1814 002CD474 B0 BF 00 04 */ sth r5, 4(r31)
+/* 802D1818 002CD478 39 00 00 00 */ li r8, 0
+/* 802D181C 002CD47C 98 9F 00 08 */ stb r4, 8(r31)
+/* 802D1820 002CD480 98 7F 00 09 */ stb r3, 9(r31)
+/* 802D1824 002CD484 98 1F 00 0A */ stb r0, 0xa(r31)
+/* 802D1828 002CD488 40 85 00 C0 */ ble cr1, lbl_802D18E8
+/* 802D182C 002CD48C 2C 07 00 08 */ cmpwi r7, 8
+/* 802D1830 002CD490 38 87 FF F8 */ addi r4, r7, -8
+/* 802D1834 002CD494 40 81 00 8C */ ble lbl_802D18C0
+/* 802D1838 002CD498 38 A0 00 00 */ li r5, 0
+/* 802D183C 002CD49C 41 84 00 18 */ blt cr1, lbl_802D1854
+/* 802D1840 002CD4A0 3C 60 80 00 */ lis r3, 0x7FFFFFFE@ha
+/* 802D1844 002CD4A4 38 03 FF FE */ addi r0, r3, 0x7FFFFFFE@l
+/* 802D1848 002CD4A8 7C 07 00 00 */ cmpw r7, r0
+/* 802D184C 002CD4AC 41 81 00 08 */ bgt lbl_802D1854
+/* 802D1850 002CD4B0 38 A0 00 01 */ li r5, 1
+lbl_802D1854:
+/* 802D1854 002CD4B4 2C 05 00 00 */ cmpwi r5, 0
+/* 802D1858 002CD4B8 41 82 00 68 */ beq lbl_802D18C0
+/* 802D185C 002CD4BC 38 04 00 07 */ addi r0, r4, 7
+/* 802D1860 002CD4C0 54 00 E8 FE */ srwi r0, r0, 3
+/* 802D1864 002CD4C4 7C 09 03 A6 */ mtctr r0
+/* 802D1868 002CD4C8 2C 04 00 00 */ cmpwi r4, 0
+/* 802D186C 002CD4CC 40 81 00 54 */ ble lbl_802D18C0
+lbl_802D1870:
+/* 802D1870 002CD4D0 7C 1E 40 AE */ lbzx r0, r30, r8
+/* 802D1874 002CD4D4 7C 7E 42 14 */ add r3, r30, r8
+/* 802D1878 002CD4D8 39 08 00 08 */ addi r8, r8, 8
+/* 802D187C 002CD4DC 98 06 00 00 */ stb r0, 0(r6)
+/* 802D1880 002CD4E0 88 03 00 01 */ lbz r0, 1(r3)
+/* 802D1884 002CD4E4 98 06 00 01 */ stb r0, 1(r6)
+/* 802D1888 002CD4E8 88 03 00 02 */ lbz r0, 2(r3)
+/* 802D188C 002CD4EC 98 06 00 02 */ stb r0, 2(r6)
+/* 802D1890 002CD4F0 88 03 00 03 */ lbz r0, 3(r3)
+/* 802D1894 002CD4F4 98 06 00 03 */ stb r0, 3(r6)
+/* 802D1898 002CD4F8 88 03 00 04 */ lbz r0, 4(r3)
+/* 802D189C 002CD4FC 98 06 00 04 */ stb r0, 4(r6)
+/* 802D18A0 002CD500 88 03 00 05 */ lbz r0, 5(r3)
+/* 802D18A4 002CD504 98 06 00 05 */ stb r0, 5(r6)
+/* 802D18A8 002CD508 88 03 00 06 */ lbz r0, 6(r3)
+/* 802D18AC 002CD50C 98 06 00 06 */ stb r0, 6(r6)
+/* 802D18B0 002CD510 88 03 00 07 */ lbz r0, 7(r3)
+/* 802D18B4 002CD514 98 06 00 07 */ stb r0, 7(r6)
+/* 802D18B8 002CD518 38 C6 00 08 */ addi r6, r6, 8
+/* 802D18BC 002CD51C 42 00 FF B4 */ bdnz lbl_802D1870
+lbl_802D18C0:
+/* 802D18C0 002CD520 7C 08 38 50 */ subf r0, r8, r7
+/* 802D18C4 002CD524 7C 7E 42 14 */ add r3, r30, r8
+/* 802D18C8 002CD528 7C 09 03 A6 */ mtctr r0
+/* 802D18CC 002CD52C 7C 08 38 00 */ cmpw r8, r7
+/* 802D18D0 002CD530 40 80 00 18 */ bge lbl_802D18E8
+lbl_802D18D4:
+/* 802D18D4 002CD534 88 03 00 00 */ lbz r0, 0(r3)
+/* 802D18D8 002CD538 38 63 00 01 */ addi r3, r3, 1
+/* 802D18DC 002CD53C 98 06 00 00 */ stb r0, 0(r6)
+/* 802D18E0 002CD540 38 C6 00 01 */ addi r6, r6, 1
+/* 802D18E4 002CD544 42 00 FF F0 */ bdnz lbl_802D18D4
+lbl_802D18E8:
+/* 802D18E8 002CD548 7F E3 FB 78 */ mr r3, r31
+/* 802D18EC 002CD54C 4B FF C5 49 */ bl btu_hcif_send_cmd
+/* 802D18F0 002CD550 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D18F4 002CD554 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D18F8 002CD558 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D18FC 002CD55C 7C 08 03 A6 */ mtlr r0
+/* 802D1900 002CD560 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1904 002CD564 4E 80 00 20 */ blr
+
+.global btsnd_hcic_write_page_tout
+btsnd_hcic_write_page_tout:
+/* 802D1908 002CD568 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f
+/* 802D190C 002CD56C 39 20 00 05 */ li r9, 5
+/* 802D1910 002CD570 39 00 00 00 */ li r8, 0
+/* 802D1914 002CD574 38 E0 00 18 */ li r7, 0x18
+/* 802D1918 002CD578 38 C0 00 0C */ li r6, 0xc
+/* 802D191C 002CD57C 38 A0 00 02 */ li r5, 2
+/* 802D1920 002CD580 B1 23 00 02 */ sth r9, 2(r3)
+/* 802D1924 002CD584 B1 03 00 04 */ sth r8, 4(r3)
+/* 802D1928 002CD588 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D192C 002CD58C 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D1930 002CD590 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D1934 002CD594 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D1938 002CD598 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D193C 002CD59C 4B FF C4 F8 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_scan_enable
+btsnd_hcic_write_scan_enable:
+/* 802D1940 002CD5A0 39 00 00 04 */ li r8, 4
+/* 802D1944 002CD5A4 38 E0 00 00 */ li r7, 0
+/* 802D1948 002CD5A8 38 C0 00 1A */ li r6, 0x1a
+/* 802D194C 002CD5AC 38 A0 00 0C */ li r5, 0xc
+/* 802D1950 002CD5B0 38 00 00 01 */ li r0, 1
+/* 802D1954 002CD5B4 B1 03 00 02 */ sth r8, 2(r3)
+/* 802D1958 002CD5B8 B0 E3 00 04 */ sth r7, 4(r3)
+/* 802D195C 002CD5BC 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D1960 002CD5C0 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D1964 002CD5C4 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1968 002CD5C8 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D196C 002CD5CC 4B FF C4 C8 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_pagescan_cfg
+btsnd_hcic_write_pagescan_cfg:
+/* 802D1970 002CD5D0 54 86 C6 3E */ rlwinm r6, r4, 0x18, 0x18, 0x1f
+/* 802D1974 002CD5D4 54 A0 C6 3E */ rlwinm r0, r5, 0x18, 0x18, 0x1f
+/* 802D1978 002CD5D8 39 60 00 07 */ li r11, 7
+/* 802D197C 002CD5DC 39 40 00 00 */ li r10, 0
+/* 802D1980 002CD5E0 39 20 00 1C */ li r9, 0x1c
+/* 802D1984 002CD5E4 39 00 00 0C */ li r8, 0xc
+/* 802D1988 002CD5E8 38 E0 00 04 */ li r7, 4
+/* 802D198C 002CD5EC B1 63 00 02 */ sth r11, 2(r3)
+/* 802D1990 002CD5F0 B1 43 00 04 */ sth r10, 4(r3)
+/* 802D1994 002CD5F4 99 23 00 08 */ stb r9, 8(r3)
+/* 802D1998 002CD5F8 99 03 00 09 */ stb r8, 9(r3)
+/* 802D199C 002CD5FC 98 E3 00 0A */ stb r7, 0xa(r3)
+/* 802D19A0 002CD600 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D19A4 002CD604 98 C3 00 0C */ stb r6, 0xc(r3)
+/* 802D19A8 002CD608 98 A3 00 0D */ stb r5, 0xd(r3)
+/* 802D19AC 002CD60C 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D19B0 002CD610 4B FF C4 84 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_inqscan_cfg
+btsnd_hcic_write_inqscan_cfg:
+/* 802D19B4 002CD614 54 86 C6 3E */ rlwinm r6, r4, 0x18, 0x18, 0x1f
+/* 802D19B8 002CD618 54 A0 C6 3E */ rlwinm r0, r5, 0x18, 0x18, 0x1f
+/* 802D19BC 002CD61C 39 60 00 07 */ li r11, 7
+/* 802D19C0 002CD620 39 40 00 00 */ li r10, 0
+/* 802D19C4 002CD624 39 20 00 1E */ li r9, 0x1e
+/* 802D19C8 002CD628 39 00 00 0C */ li r8, 0xc
+/* 802D19CC 002CD62C 38 E0 00 04 */ li r7, 4
+/* 802D19D0 002CD630 B1 63 00 02 */ sth r11, 2(r3)
+/* 802D19D4 002CD634 B1 43 00 04 */ sth r10, 4(r3)
+/* 802D19D8 002CD638 99 23 00 08 */ stb r9, 8(r3)
+/* 802D19DC 002CD63C 99 03 00 09 */ stb r8, 9(r3)
+/* 802D19E0 002CD640 98 E3 00 0A */ stb r7, 0xa(r3)
+/* 802D19E4 002CD644 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D19E8 002CD648 98 C3 00 0C */ stb r6, 0xc(r3)
+/* 802D19EC 002CD64C 98 A3 00 0D */ stb r5, 0xd(r3)
+/* 802D19F0 002CD650 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D19F4 002CD654 4B FF C4 40 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_auth_enable
+btsnd_hcic_write_auth_enable:
+/* 802D19F8 002CD658 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D19FC 002CD65C 7C 08 02 A6 */ mflr r0
+/* 802D1A00 002CD660 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1A04 002CD664 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1A08 002CD668 7C 7F 1B 78 */ mr r31, r3
+/* 802D1A0C 002CD66C 38 60 00 02 */ li r3, 2
+/* 802D1A10 002CD670 4B FE 82 3D */ bl GKI_getpoolbuf
+/* 802D1A14 002CD674 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1A18 002CD678 40 82 00 0C */ bne lbl_802D1A24
+/* 802D1A1C 002CD67C 38 60 00 00 */ li r3, 0
+/* 802D1A20 002CD680 48 00 00 38 */ b lbl_802D1A58
+lbl_802D1A24:
+/* 802D1A24 002CD684 38 00 00 04 */ li r0, 4
+/* 802D1A28 002CD688 38 C0 00 00 */ li r6, 0
+/* 802D1A2C 002CD68C B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1A30 002CD690 38 A0 00 20 */ li r5, 0x20
+/* 802D1A34 002CD694 38 80 00 0C */ li r4, 0xc
+/* 802D1A38 002CD698 38 00 00 01 */ li r0, 1
+/* 802D1A3C 002CD69C B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D1A40 002CD6A0 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D1A44 002CD6A4 98 83 00 09 */ stb r4, 9(r3)
+/* 802D1A48 002CD6A8 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1A4C 002CD6AC 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D1A50 002CD6B0 4B FF C3 E5 */ bl btu_hcif_send_cmd
+/* 802D1A54 002CD6B4 38 60 00 01 */ li r3, 1
+lbl_802D1A58:
+/* 802D1A58 002CD6B8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1A5C 002CD6BC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D1A60 002CD6C0 7C 08 03 A6 */ mtlr r0
+/* 802D1A64 002CD6C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1A68 002CD6C8 4E 80 00 20 */ blr
+
+.global btsnd_hcic_write_encr_mode
+btsnd_hcic_write_encr_mode:
+/* 802D1A6C 002CD6CC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1A70 002CD6D0 7C 08 02 A6 */ mflr r0
+/* 802D1A74 002CD6D4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1A78 002CD6D8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1A7C 002CD6DC 7C 7F 1B 78 */ mr r31, r3
+/* 802D1A80 002CD6E0 38 60 00 02 */ li r3, 2
+/* 802D1A84 002CD6E4 4B FE 81 C9 */ bl GKI_getpoolbuf
+/* 802D1A88 002CD6E8 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1A8C 002CD6EC 40 82 00 0C */ bne lbl_802D1A98
+/* 802D1A90 002CD6F0 38 60 00 00 */ li r3, 0
+/* 802D1A94 002CD6F4 48 00 00 38 */ b lbl_802D1ACC
+lbl_802D1A98:
+/* 802D1A98 002CD6F8 38 00 00 04 */ li r0, 4
+/* 802D1A9C 002CD6FC 38 C0 00 00 */ li r6, 0
+/* 802D1AA0 002CD700 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1AA4 002CD704 38 A0 00 22 */ li r5, 0x22
+/* 802D1AA8 002CD708 38 80 00 0C */ li r4, 0xc
+/* 802D1AAC 002CD70C 38 00 00 01 */ li r0, 1
+/* 802D1AB0 002CD710 B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D1AB4 002CD714 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D1AB8 002CD718 98 83 00 09 */ stb r4, 9(r3)
+/* 802D1ABC 002CD71C 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1AC0 002CD720 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D1AC4 002CD724 4B FF C3 71 */ bl btu_hcif_send_cmd
+/* 802D1AC8 002CD728 38 60 00 01 */ li r3, 1
+lbl_802D1ACC:
+/* 802D1ACC 002CD72C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1AD0 002CD730 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D1AD4 002CD734 7C 08 03 A6 */ mtlr r0
+/* 802D1AD8 002CD738 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1ADC 002CD73C 4E 80 00 20 */ blr
+
+.global btsnd_hcic_write_dev_class
+btsnd_hcic_write_dev_class:
+/* 802D1AE0 002CD740 39 00 00 06 */ li r8, 6
+/* 802D1AE4 002CD744 38 E0 00 00 */ li r7, 0
+/* 802D1AE8 002CD748 38 C0 00 24 */ li r6, 0x24
+/* 802D1AEC 002CD74C 38 A0 00 0C */ li r5, 0xc
+/* 802D1AF0 002CD750 38 00 00 03 */ li r0, 3
+/* 802D1AF4 002CD754 B1 03 00 02 */ sth r8, 2(r3)
+/* 802D1AF8 002CD758 B0 E3 00 04 */ sth r7, 4(r3)
+/* 802D1AFC 002CD75C 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D1B00 002CD760 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D1B04 002CD764 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1B08 002CD768 88 04 00 02 */ lbz r0, 2(r4)
+/* 802D1B0C 002CD76C 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D1B10 002CD770 88 04 00 01 */ lbz r0, 1(r4)
+/* 802D1B14 002CD774 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D1B18 002CD778 88 04 00 00 */ lbz r0, 0(r4)
+/* 802D1B1C 002CD77C 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D1B20 002CD780 4B FF C3 14 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_auto_flush_tout
+btsnd_hcic_write_auto_flush_tout:
+/* 802D1B24 002CD784 54 86 C6 3E */ rlwinm r6, r4, 0x18, 0x18, 0x1f
+/* 802D1B28 002CD788 54 A0 C6 3E */ rlwinm r0, r5, 0x18, 0x18, 0x1f
+/* 802D1B2C 002CD78C 39 60 00 07 */ li r11, 7
+/* 802D1B30 002CD790 39 40 00 00 */ li r10, 0
+/* 802D1B34 002CD794 39 20 00 28 */ li r9, 0x28
+/* 802D1B38 002CD798 39 00 00 0C */ li r8, 0xc
+/* 802D1B3C 002CD79C 38 E0 00 04 */ li r7, 4
+/* 802D1B40 002CD7A0 B1 63 00 02 */ sth r11, 2(r3)
+/* 802D1B44 002CD7A4 B1 43 00 04 */ sth r10, 4(r3)
+/* 802D1B48 002CD7A8 99 23 00 08 */ stb r9, 8(r3)
+/* 802D1B4C 002CD7AC 99 03 00 09 */ stb r8, 9(r3)
+/* 802D1B50 002CD7B0 98 E3 00 0A */ stb r7, 0xa(r3)
+/* 802D1B54 002CD7B4 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D1B58 002CD7B8 98 C3 00 0C */ stb r6, 0xc(r3)
+/* 802D1B5C 002CD7BC 98 A3 00 0D */ stb r5, 0xd(r3)
+/* 802D1B60 002CD7C0 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D1B64 002CD7C4 4B FF C2 D0 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_set_host_buf_size
+btsnd_hcic_set_host_buf_size:
+/* 802D1B68 002CD7C8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D1B6C 002CD7CC 7C 08 02 A6 */ mflr r0
+/* 802D1B70 002CD7D0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D1B74 002CD7D4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802D1B78 002CD7D8 7C DF 33 78 */ mr r31, r6
+/* 802D1B7C 002CD7DC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802D1B80 002CD7E0 7C BE 2B 78 */ mr r30, r5
+/* 802D1B84 002CD7E4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802D1B88 002CD7E8 7C 9D 23 78 */ mr r29, r4
+/* 802D1B8C 002CD7EC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802D1B90 002CD7F0 7C 7C 1B 78 */ mr r28, r3
+/* 802D1B94 002CD7F4 38 60 00 02 */ li r3, 2
+/* 802D1B98 002CD7F8 4B FE 80 B5 */ bl GKI_getpoolbuf
+/* 802D1B9C 002CD7FC 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1BA0 002CD800 40 82 00 0C */ bne lbl_802D1BAC
+/* 802D1BA4 002CD804 38 60 00 00 */ li r3, 0
+/* 802D1BA8 002CD808 48 00 00 5C */ b lbl_802D1C04
+lbl_802D1BAC:
+/* 802D1BAC 002CD80C 38 00 00 0A */ li r0, 0xa
+/* 802D1BB0 002CD810 7F 85 46 70 */ srawi r5, r28, 8
+/* 802D1BB4 002CD814 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1BB8 002CD818 38 00 00 00 */ li r0, 0
+/* 802D1BBC 002CD81C 39 00 00 33 */ li r8, 0x33
+/* 802D1BC0 002CD820 38 E0 00 0C */ li r7, 0xc
+/* 802D1BC4 002CD824 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D1BC8 002CD828 38 C0 00 07 */ li r6, 7
+/* 802D1BCC 002CD82C 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D1BD0 002CD830 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D1BD4 002CD834 99 03 00 08 */ stb r8, 8(r3)
+/* 802D1BD8 002CD838 98 E3 00 09 */ stb r7, 9(r3)
+/* 802D1BDC 002CD83C 98 C3 00 0A */ stb r6, 0xa(r3)
+/* 802D1BE0 002CD840 9B 83 00 0B */ stb r28, 0xb(r3)
+/* 802D1BE4 002CD844 98 A3 00 0C */ stb r5, 0xc(r3)
+/* 802D1BE8 002CD848 9B A3 00 0D */ stb r29, 0xd(r3)
+/* 802D1BEC 002CD84C 9B C3 00 0E */ stb r30, 0xe(r3)
+/* 802D1BF0 002CD850 98 83 00 0F */ stb r4, 0xf(r3)
+/* 802D1BF4 002CD854 9B E3 00 10 */ stb r31, 0x10(r3)
+/* 802D1BF8 002CD858 98 03 00 11 */ stb r0, 0x11(r3)
+/* 802D1BFC 002CD85C 4B FF C2 39 */ bl btu_hcif_send_cmd
+/* 802D1C00 002CD860 38 60 00 01 */ li r3, 1
+lbl_802D1C04:
+/* 802D1C04 002CD864 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D1C08 002CD868 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802D1C0C 002CD86C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802D1C10 002CD870 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802D1C14 002CD874 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802D1C18 002CD878 7C 08 03 A6 */ mtlr r0
+/* 802D1C1C 002CD87C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D1C20 002CD880 4E 80 00 20 */ blr
+
+.global btsnd_hcic_write_link_super_tout
+btsnd_hcic_write_link_super_tout:
+/* 802D1C24 002CD884 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1C28 002CD888 7C 08 02 A6 */ mflr r0
+/* 802D1C2C 002CD88C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1C30 002CD890 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1C34 002CD894 7C 9F 23 78 */ mr r31, r4
+/* 802D1C38 002CD898 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D1C3C 002CD89C 7C 7E 1B 78 */ mr r30, r3
+/* 802D1C40 002CD8A0 38 60 00 02 */ li r3, 2
+/* 802D1C44 002CD8A4 4B FE 80 09 */ bl GKI_getpoolbuf
+/* 802D1C48 002CD8A8 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1C4C 002CD8AC 40 82 00 0C */ bne lbl_802D1C58
+/* 802D1C50 002CD8B0 38 60 00 00 */ li r3, 0
+/* 802D1C54 002CD8B4 48 00 00 4C */ b lbl_802D1CA0
+lbl_802D1C58:
+/* 802D1C58 002CD8B8 38 80 00 07 */ li r4, 7
+/* 802D1C5C 002CD8BC 38 00 00 00 */ li r0, 0
+/* 802D1C60 002CD8C0 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D1C64 002CD8C4 38 E0 00 37 */ li r7, 0x37
+/* 802D1C68 002CD8C8 38 C0 00 0C */ li r6, 0xc
+/* 802D1C6C 002CD8CC 38 A0 00 04 */ li r5, 4
+/* 802D1C70 002CD8D0 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D1C74 002CD8D4 7F C4 46 70 */ srawi r4, r30, 8
+/* 802D1C78 002CD8D8 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D1C7C 002CD8DC 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D1C80 002CD8E0 98 C3 00 09 */ stb r6, 9(r3)
+/* 802D1C84 002CD8E4 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D1C88 002CD8E8 9B C3 00 0B */ stb r30, 0xb(r3)
+/* 802D1C8C 002CD8EC 98 83 00 0C */ stb r4, 0xc(r3)
+/* 802D1C90 002CD8F0 9B E3 00 0D */ stb r31, 0xd(r3)
+/* 802D1C94 002CD8F4 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D1C98 002CD8F8 4B FF C1 9D */ bl btu_hcif_send_cmd
+/* 802D1C9C 002CD8FC 38 60 00 01 */ li r3, 1
+lbl_802D1CA0:
+/* 802D1CA0 002CD900 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1CA4 002CD904 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D1CA8 002CD908 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D1CAC 002CD90C 7C 08 03 A6 */ mtlr r0
+/* 802D1CB0 002CD910 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1CB4 002CD914 4E 80 00 20 */ blr
+
+.global btsnd_hcic_write_cur_iac_lap
+btsnd_hcic_write_cur_iac_lap:
+/* 802D1CB8 002CD918 54 80 15 BA */ rlwinm r0, r4, 2, 0x16, 0x1d
+/* 802D1CBC 002CD91C 39 20 00 00 */ li r9, 0
+/* 802D1CC0 002CD920 7C C4 00 50 */ subf r6, r4, r0
+/* 802D1CC4 002CD924 39 00 00 3A */ li r8, 0x3a
+/* 802D1CC8 002CD928 39 46 00 04 */ addi r10, r6, 4
+/* 802D1CCC 002CD92C 38 E0 00 0C */ li r7, 0xc
+/* 802D1CD0 002CD930 55 46 04 3E */ clrlwi r6, r10, 0x10
+/* 802D1CD4 002CD934 B1 43 00 02 */ sth r10, 2(r3)
+/* 802D1CD8 002CD938 38 06 FF FD */ addi r0, r6, -3
+/* 802D1CDC 002CD93C 38 C3 00 0C */ addi r6, r3, 0xc
+/* 802D1CE0 002CD940 B1 23 00 04 */ sth r9, 4(r3)
+/* 802D1CE4 002CD944 99 03 00 08 */ stb r8, 8(r3)
+/* 802D1CE8 002CD948 98 E3 00 09 */ stb r7, 9(r3)
+/* 802D1CEC 002CD94C 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D1CF0 002CD950 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D1CF4 002CD954 7C 89 03 A6 */ mtctr r4
+/* 802D1CF8 002CD958 2C 04 00 00 */ cmpwi r4, 0
+/* 802D1CFC 002CD95C 40 81 00 28 */ ble lbl_802D1D24
+lbl_802D1D00:
+/* 802D1D00 002CD960 88 05 00 02 */ lbz r0, 2(r5)
+/* 802D1D04 002CD964 98 06 00 00 */ stb r0, 0(r6)
+/* 802D1D08 002CD968 88 05 00 01 */ lbz r0, 1(r5)
+/* 802D1D0C 002CD96C 98 06 00 01 */ stb r0, 1(r6)
+/* 802D1D10 002CD970 88 05 00 00 */ lbz r0, 0(r5)
+/* 802D1D14 002CD974 38 A5 00 03 */ addi r5, r5, 3
+/* 802D1D18 002CD978 98 06 00 02 */ stb r0, 2(r6)
+/* 802D1D1C 002CD97C 38 C6 00 03 */ addi r6, r6, 3
+/* 802D1D20 002CD980 42 00 FF E0 */ bdnz lbl_802D1D00
+lbl_802D1D24:
+/* 802D1D24 002CD984 4B FF C1 10 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_read_local_ver
+btsnd_hcic_read_local_ver:
+/* 802D1D28 002CD988 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1D2C 002CD98C 7C 08 02 A6 */ mflr r0
+/* 802D1D30 002CD990 38 60 00 02 */ li r3, 2
+/* 802D1D34 002CD994 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1D38 002CD998 4B FE 7F 15 */ bl GKI_getpoolbuf
+/* 802D1D3C 002CD99C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1D40 002CD9A0 40 82 00 0C */ bne lbl_802D1D4C
+/* 802D1D44 002CD9A4 38 60 00 00 */ li r3, 0
+/* 802D1D48 002CD9A8 48 00 00 30 */ b lbl_802D1D78
+lbl_802D1D4C:
+/* 802D1D4C 002CD9AC 38 00 00 03 */ li r0, 3
+/* 802D1D50 002CD9B0 38 A0 00 00 */ li r5, 0
+/* 802D1D54 002CD9B4 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1D58 002CD9B8 38 80 00 01 */ li r4, 1
+/* 802D1D5C 002CD9BC 38 00 00 10 */ li r0, 0x10
+/* 802D1D60 002CD9C0 B0 A3 00 04 */ sth r5, 4(r3)
+/* 802D1D64 002CD9C4 98 83 00 08 */ stb r4, 8(r3)
+/* 802D1D68 002CD9C8 98 03 00 09 */ stb r0, 9(r3)
+/* 802D1D6C 002CD9CC 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D1D70 002CD9D0 4B FF C0 C5 */ bl btu_hcif_send_cmd
+/* 802D1D74 002CD9D4 38 60 00 01 */ li r3, 1
+lbl_802D1D78:
+/* 802D1D78 002CD9D8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1D7C 002CD9DC 7C 08 03 A6 */ mtlr r0
+/* 802D1D80 002CD9E0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1D84 002CD9E4 4E 80 00 20 */ blr
+
+.global btsnd_hcic_read_local_features
+btsnd_hcic_read_local_features:
+/* 802D1D88 002CD9E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1D8C 002CD9EC 7C 08 02 A6 */ mflr r0
+/* 802D1D90 002CD9F0 38 60 00 02 */ li r3, 2
+/* 802D1D94 002CD9F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1D98 002CD9F8 4B FE 7E B5 */ bl GKI_getpoolbuf
+/* 802D1D9C 002CD9FC 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1DA0 002CDA00 40 82 00 0C */ bne lbl_802D1DAC
+/* 802D1DA4 002CDA04 38 60 00 00 */ li r3, 0
+/* 802D1DA8 002CDA08 48 00 00 2C */ b lbl_802D1DD4
+lbl_802D1DAC:
+/* 802D1DAC 002CDA0C 38 A0 00 03 */ li r5, 3
+/* 802D1DB0 002CDA10 38 80 00 00 */ li r4, 0
+/* 802D1DB4 002CDA14 B0 A3 00 02 */ sth r5, 2(r3)
+/* 802D1DB8 002CDA18 38 00 00 10 */ li r0, 0x10
+/* 802D1DBC 002CDA1C B0 83 00 04 */ sth r4, 4(r3)
+/* 802D1DC0 002CDA20 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D1DC4 002CDA24 98 03 00 09 */ stb r0, 9(r3)
+/* 802D1DC8 002CDA28 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D1DCC 002CDA2C 4B FF C0 69 */ bl btu_hcif_send_cmd
+/* 802D1DD0 002CDA30 38 60 00 01 */ li r3, 1
+lbl_802D1DD4:
+/* 802D1DD4 002CDA34 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1DD8 002CDA38 7C 08 03 A6 */ mtlr r0
+/* 802D1DDC 002CDA3C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1DE0 002CDA40 4E 80 00 20 */ blr
+
+.global btsnd_hcic_read_buffer_size
+btsnd_hcic_read_buffer_size:
+/* 802D1DE4 002CDA44 38 A0 00 00 */ li r5, 0
+/* 802D1DE8 002CDA48 38 C0 00 03 */ li r6, 3
+/* 802D1DEC 002CDA4C 38 80 00 05 */ li r4, 5
+/* 802D1DF0 002CDA50 38 00 00 10 */ li r0, 0x10
+/* 802D1DF4 002CDA54 B0 C3 00 02 */ sth r6, 2(r3)
+/* 802D1DF8 002CDA58 B0 A3 00 04 */ sth r5, 4(r3)
+/* 802D1DFC 002CDA5C 98 83 00 08 */ stb r4, 8(r3)
+/* 802D1E00 002CDA60 98 03 00 09 */ stb r0, 9(r3)
+/* 802D1E04 002CDA64 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D1E08 002CDA68 4B FF C0 2C */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_read_bd_addr
+btsnd_hcic_read_bd_addr:
+/* 802D1E0C 002CDA6C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1E10 002CDA70 7C 08 02 A6 */ mflr r0
+/* 802D1E14 002CDA74 38 60 00 02 */ li r3, 2
+/* 802D1E18 002CDA78 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1E1C 002CDA7C 4B FE 7E 31 */ bl GKI_getpoolbuf
+/* 802D1E20 002CDA80 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1E24 002CDA84 40 82 00 0C */ bne lbl_802D1E30
+/* 802D1E28 002CDA88 38 60 00 00 */ li r3, 0
+/* 802D1E2C 002CDA8C 48 00 00 30 */ b lbl_802D1E5C
+lbl_802D1E30:
+/* 802D1E30 002CDA90 38 00 00 03 */ li r0, 3
+/* 802D1E34 002CDA94 38 A0 00 00 */ li r5, 0
+/* 802D1E38 002CDA98 B0 03 00 02 */ sth r0, 2(r3)
+/* 802D1E3C 002CDA9C 38 80 00 09 */ li r4, 9
+/* 802D1E40 002CDAA0 38 00 00 10 */ li r0, 0x10
+/* 802D1E44 002CDAA4 B0 A3 00 04 */ sth r5, 4(r3)
+/* 802D1E48 002CDAA8 98 83 00 08 */ stb r4, 8(r3)
+/* 802D1E4C 002CDAAC 98 03 00 09 */ stb r0, 9(r3)
+/* 802D1E50 002CDAB0 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D1E54 002CDAB4 4B FF BF E1 */ bl btu_hcif_send_cmd
+/* 802D1E58 002CDAB8 38 60 00 01 */ li r3, 1
+lbl_802D1E5C:
+/* 802D1E5C 002CDABC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1E60 002CDAC0 7C 08 03 A6 */ mtlr r0
+/* 802D1E64 002CDAC4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1E68 002CDAC8 4E 80 00 20 */ blr
+
+.global btsnd_hcic_get_link_quality
+btsnd_hcic_get_link_quality:
+/* 802D1E6C 002CDACC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1E70 002CDAD0 7C 08 02 A6 */ mflr r0
+/* 802D1E74 002CDAD4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1E78 002CDAD8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1E7C 002CDADC 7C 7F 1B 78 */ mr r31, r3
+/* 802D1E80 002CDAE0 38 60 00 02 */ li r3, 2
+/* 802D1E84 002CDAE4 4B FE 7D C9 */ bl GKI_getpoolbuf
+/* 802D1E88 002CDAE8 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1E8C 002CDAEC 40 82 00 0C */ bne lbl_802D1E98
+/* 802D1E90 002CDAF0 38 60 00 00 */ li r3, 0
+/* 802D1E94 002CDAF4 48 00 00 40 */ b lbl_802D1ED4
+lbl_802D1E98:
+/* 802D1E98 002CDAF8 38 80 00 05 */ li r4, 5
+/* 802D1E9C 002CDAFC 38 00 00 00 */ li r0, 0
+/* 802D1EA0 002CDB00 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D1EA4 002CDB04 38 C0 00 03 */ li r6, 3
+/* 802D1EA8 002CDB08 38 A0 00 14 */ li r5, 0x14
+/* 802D1EAC 002CDB0C 38 80 00 02 */ li r4, 2
+/* 802D1EB0 002CDB10 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D1EB4 002CDB14 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D1EB8 002CDB18 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D1EBC 002CDB1C 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D1EC0 002CDB20 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D1EC4 002CDB24 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D1EC8 002CDB28 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D1ECC 002CDB2C 4B FF BF 69 */ bl btu_hcif_send_cmd
+/* 802D1ED0 002CDB30 38 60 00 01 */ li r3, 1
+lbl_802D1ED4:
+/* 802D1ED4 002CDB34 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1ED8 002CDB38 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D1EDC 002CDB3C 7C 08 03 A6 */ mtlr r0
+/* 802D1EE0 002CDB40 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1EE4 002CDB44 4E 80 00 20 */ blr
+
+.global btsnd_hcic_read_rssi
+btsnd_hcic_read_rssi:
+/* 802D1EE8 002CDB48 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D1EEC 002CDB4C 7C 08 02 A6 */ mflr r0
+/* 802D1EF0 002CDB50 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D1EF4 002CDB54 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D1EF8 002CDB58 7C 7F 1B 78 */ mr r31, r3
+/* 802D1EFC 002CDB5C 38 60 00 02 */ li r3, 2
+/* 802D1F00 002CDB60 4B FE 7D 4D */ bl GKI_getpoolbuf
+/* 802D1F04 002CDB64 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1F08 002CDB68 40 82 00 0C */ bne lbl_802D1F14
+/* 802D1F0C 002CDB6C 38 60 00 00 */ li r3, 0
+/* 802D1F10 002CDB70 48 00 00 3C */ b lbl_802D1F4C
+lbl_802D1F14:
+/* 802D1F14 002CDB74 38 E0 00 05 */ li r7, 5
+/* 802D1F18 002CDB78 38 C0 00 00 */ li r6, 0
+/* 802D1F1C 002CDB7C B0 E3 00 02 */ sth r7, 2(r3)
+/* 802D1F20 002CDB80 38 A0 00 14 */ li r5, 0x14
+/* 802D1F24 002CDB84 38 80 00 02 */ li r4, 2
+/* 802D1F28 002CDB88 57 E0 C6 3E */ rlwinm r0, r31, 0x18, 0x18, 0x1f
+/* 802D1F2C 002CDB8C B0 C3 00 04 */ sth r6, 4(r3)
+/* 802D1F30 002CDB90 98 E3 00 08 */ stb r7, 8(r3)
+/* 802D1F34 002CDB94 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D1F38 002CDB98 98 83 00 0A */ stb r4, 0xa(r3)
+/* 802D1F3C 002CDB9C 9B E3 00 0B */ stb r31, 0xb(r3)
+/* 802D1F40 002CDBA0 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D1F44 002CDBA4 4B FF BE F1 */ bl btu_hcif_send_cmd
+/* 802D1F48 002CDBA8 38 60 00 01 */ li r3, 1
+lbl_802D1F4C:
+/* 802D1F4C 002CDBAC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D1F50 002CDBB0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D1F54 002CDBB4 7C 08 03 A6 */ mtlr r0
+/* 802D1F58 002CDBB8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D1F5C 002CDBBC 4E 80 00 20 */ blr
+
+.global btsnd_hcic_set_afh_channels
+btsnd_hcic_set_afh_channels:
+/* 802D1F60 002CDBC0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D1F64 002CDBC4 7C 08 02 A6 */ mflr r0
+/* 802D1F68 002CDBC8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D1F6C 002CDBCC 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 802D1F70 002CDBD0 7C 9F 23 78 */ mr r31, r4
+/* 802D1F74 002CDBD4 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 802D1F78 002CDBD8 7C 7E 1B 78 */ mr r30, r3
+/* 802D1F7C 002CDBDC 38 60 00 02 */ li r3, 2
+/* 802D1F80 002CDBE0 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 802D1F84 002CDBE4 3F A0 80 40 */ lis r29, lbl_803FDDD8@ha
+/* 802D1F88 002CDBE8 8D 9D DD D8 */ lbzu r12, lbl_803FDDD8@l(r29)
+/* 802D1F8C 002CDBEC 89 7D 00 01 */ lbz r11, 1(r29)
+/* 802D1F90 002CDBF0 89 5D 00 02 */ lbz r10, 2(r29)
+/* 802D1F94 002CDBF4 89 3D 00 03 */ lbz r9, 3(r29)
+/* 802D1F98 002CDBF8 89 1D 00 04 */ lbz r8, 4(r29)
+/* 802D1F9C 002CDBFC 88 FD 00 05 */ lbz r7, 5(r29)
+/* 802D1FA0 002CDC00 88 DD 00 06 */ lbz r6, 6(r29)
+/* 802D1FA4 002CDC04 88 BD 00 07 */ lbz r5, 7(r29)
+/* 802D1FA8 002CDC08 88 9D 00 08 */ lbz r4, 8(r29)
+/* 802D1FAC 002CDC0C 88 1D 00 09 */ lbz r0, 9(r29)
+/* 802D1FB0 002CDC10 99 81 00 08 */ stb r12, 8(r1)
+/* 802D1FB4 002CDC14 99 61 00 09 */ stb r11, 9(r1)
+/* 802D1FB8 002CDC18 99 41 00 0A */ stb r10, 0xa(r1)
+/* 802D1FBC 002CDC1C 99 21 00 0B */ stb r9, 0xb(r1)
+/* 802D1FC0 002CDC20 99 01 00 0C */ stb r8, 0xc(r1)
+/* 802D1FC4 002CDC24 98 E1 00 0D */ stb r7, 0xd(r1)
+/* 802D1FC8 002CDC28 98 C1 00 0E */ stb r6, 0xe(r1)
+/* 802D1FCC 002CDC2C 98 A1 00 0F */ stb r5, 0xf(r1)
+/* 802D1FD0 002CDC30 98 81 00 10 */ stb r4, 0x10(r1)
+/* 802D1FD4 002CDC34 98 01 00 11 */ stb r0, 0x11(r1)
+/* 802D1FD8 002CDC38 4B FE 7C 75 */ bl GKI_getpoolbuf
+/* 802D1FDC 002CDC3C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D1FE0 002CDC40 40 82 00 0C */ bne lbl_802D1FEC
+/* 802D1FE4 002CDC44 38 60 00 00 */ li r3, 0
+/* 802D1FE8 002CDC48 48 00 03 7C */ b lbl_802D2364
+lbl_802D1FEC:
+/* 802D1FEC 002CDC4C 38 80 00 0D */ li r4, 0xd
+/* 802D1FF0 002CDC50 38 00 00 00 */ li r0, 0
+/* 802D1FF4 002CDC54 B0 83 00 02 */ sth r4, 2(r3)
+/* 802D1FF8 002CDC58 38 A0 00 3F */ li r5, 0x3f
+/* 802D1FFC 002CDC5C 38 80 00 0C */ li r4, 0xc
+/* 802D2000 002CDC60 7C 1E F8 40 */ cmplw r30, r31
+/* 802D2004 002CDC64 B0 03 00 04 */ sth r0, 4(r3)
+/* 802D2008 002CDC68 38 00 00 0A */ li r0, 0xa
+/* 802D200C 002CDC6C 98 A3 00 08 */ stb r5, 8(r3)
+/* 802D2010 002CDC70 98 83 00 09 */ stb r4, 9(r3)
+/* 802D2014 002CDC74 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D2018 002CDC78 41 81 02 F4 */ bgt lbl_802D230C
+/* 802D201C 002CDC7C 28 1F 00 4E */ cmplwi r31, 0x4e
+/* 802D2020 002CDC80 41 81 02 EC */ bgt lbl_802D230C
+/* 802D2024 002CDC84 7C 9E F8 00 */ cmpw cr1, r30, r31
+/* 802D2028 002CDC88 41 85 02 E4 */ bgt cr1, lbl_802D230C
+/* 802D202C 002CDC8C 7D 7E F8 50 */ subf r11, r30, r31
+/* 802D2030 002CDC90 38 FF FF F8 */ addi r7, r31, -8
+/* 802D2034 002CDC94 39 8B 00 01 */ addi r12, r11, 1
+/* 802D2038 002CDC98 2C 0C 00 08 */ cmpwi r12, 8
+/* 802D203C 002CDC9C 40 81 02 80 */ ble lbl_802D22BC
+/* 802D2040 002CDCA0 38 A0 00 00 */ li r5, 0
+/* 802D2044 002CDCA4 38 C0 00 00 */ li r6, 0
+/* 802D2048 002CDCA8 39 00 00 00 */ li r8, 0
+/* 802D204C 002CDCAC 39 20 00 00 */ li r9, 0
+/* 802D2050 002CDCB0 39 40 00 00 */ li r10, 0
+/* 802D2054 002CDCB4 41 85 00 18 */ bgt cr1, lbl_802D206C
+/* 802D2058 002CDCB8 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha
+/* 802D205C 002CDCBC 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l
+/* 802D2060 002CDCC0 7C 1F 00 00 */ cmpw r31, r0
+/* 802D2064 002CDCC4 41 81 00 08 */ bgt lbl_802D206C
+/* 802D2068 002CDCC8 39 40 00 01 */ li r10, 1
+lbl_802D206C:
+/* 802D206C 002CDCCC 2C 0A 00 00 */ cmpwi r10, 0
+/* 802D2070 002CDCD0 41 82 00 18 */ beq lbl_802D2088
+/* 802D2074 002CDCD4 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha
+/* 802D2078 002CDCD8 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l
+/* 802D207C 002CDCDC 7C 1E 00 00 */ cmpw r30, r0
+/* 802D2080 002CDCE0 41 81 00 08 */ bgt lbl_802D2088
+/* 802D2084 002CDCE4 39 20 00 01 */ li r9, 1
+lbl_802D2088:
+/* 802D2088 002CDCE8 2C 09 00 00 */ cmpwi r9, 0
+/* 802D208C 002CDCEC 41 82 00 14 */ beq lbl_802D20A0
+/* 802D2090 002CDCF0 3C 1E 80 00 */ addis r0, r30, 0x8000
+/* 802D2094 002CDCF4 28 00 00 00 */ cmplwi r0, 0
+/* 802D2098 002CDCF8 41 82 00 08 */ beq lbl_802D20A0
+/* 802D209C 002CDCFC 39 00 00 01 */ li r8, 1
+lbl_802D20A0:
+/* 802D20A0 002CDD00 2C 08 00 00 */ cmpwi r8, 0
+/* 802D20A4 002CDD04 41 82 00 38 */ beq lbl_802D20DC
+/* 802D20A8 002CDD08 7C 1E 00 D0 */ neg r0, r30
+/* 802D20AC 002CDD0C 57 E8 00 00 */ rlwinm r8, r31, 0, 0, 0
+/* 802D20B0 002CDD10 54 00 00 00 */ rlwinm r0, r0, 0, 0, 0
+/* 802D20B4 002CDD14 38 80 00 01 */ li r4, 1
+/* 802D20B8 002CDD18 7C 08 00 00 */ cmpw r8, r0
+/* 802D20BC 002CDD1C 40 82 00 14 */ bne lbl_802D20D0
+/* 802D20C0 002CDD20 55 60 00 00 */ rlwinm r0, r11, 0, 0, 0
+/* 802D20C4 002CDD24 7C 08 00 00 */ cmpw r8, r0
+/* 802D20C8 002CDD28 41 82 00 08 */ beq lbl_802D20D0
+/* 802D20CC 002CDD2C 38 80 00 00 */ li r4, 0
+lbl_802D20D0:
+/* 802D20D0 002CDD30 2C 04 00 00 */ cmpwi r4, 0
+/* 802D20D4 002CDD34 41 82 00 08 */ beq lbl_802D20DC
+/* 802D20D8 002CDD38 38 C0 00 01 */ li r6, 1
+lbl_802D20DC:
+/* 802D20DC 002CDD3C 2C 06 00 00 */ cmpwi r6, 0
+/* 802D20E0 002CDD40 41 82 00 28 */ beq lbl_802D2108
+/* 802D20E4 002CDD44 55 60 00 01 */ rlwinm. r0, r11, 0, 0, 0
+/* 802D20E8 002CDD48 38 80 00 01 */ li r4, 1
+/* 802D20EC 002CDD4C 40 82 00 10 */ bne lbl_802D20FC
+/* 802D20F0 002CDD50 55 80 00 01 */ rlwinm. r0, r12, 0, 0, 0
+/* 802D20F4 002CDD54 41 82 00 08 */ beq lbl_802D20FC
+/* 802D20F8 002CDD58 38 80 00 00 */ li r4, 0
+lbl_802D20FC:
+/* 802D20FC 002CDD5C 2C 04 00 00 */ cmpwi r4, 0
+/* 802D2100 002CDD60 41 82 00 08 */ beq lbl_802D2108
+/* 802D2104 002CDD64 38 A0 00 01 */ li r5, 1
+lbl_802D2108:
+/* 802D2108 002CDD68 2C 05 00 00 */ cmpwi r5, 0
+/* 802D210C 002CDD6C 41 82 01 B0 */ beq lbl_802D22BC
+/* 802D2110 002CDD70 38 A7 00 08 */ addi r5, r7, 8
+/* 802D2114 002CDD74 7F C0 1E 70 */ srawi r0, r30, 3
+/* 802D2118 002CDD78 7C BE 28 50 */ subf r5, r30, r5
+/* 802D211C 002CDD7C 38 81 00 08 */ addi r4, r1, 8
+/* 802D2120 002CDD80 7C C0 01 94 */ addze r6, r0
+/* 802D2124 002CDD84 38 00 00 01 */ li r0, 1
+/* 802D2128 002CDD88 54 A5 E8 FE */ srwi r5, r5, 3
+/* 802D212C 002CDD8C 7C C4 32 14 */ add r6, r4, r6
+/* 802D2130 002CDD90 7C A9 03 A6 */ mtctr r5
+/* 802D2134 002CDD94 7C 1E 38 00 */ cmpw r30, r7
+/* 802D2138 002CDD98 41 81 01 84 */ bgt lbl_802D22BC
+lbl_802D213C:
+/* 802D213C 002CDD9C 57 C5 E8 04 */ slwi r5, r30, 0x1d
+/* 802D2140 002CDDA0 57 C8 0F FE */ srwi r8, r30, 0x1f
+/* 802D2144 002CDDA4 7C A8 28 50 */ subf r5, r8, r5
+/* 802D2148 002CDDA8 89 46 00 00 */ lbz r10, 0(r6)
+/* 802D214C 002CDDAC 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 802D2150 002CDDB0 38 FE 00 01 */ addi r7, r30, 1
+/* 802D2154 002CDDB4 7C A5 42 14 */ add r5, r5, r8
+/* 802D2158 002CDDB8 39 3E 00 02 */ addi r9, r30, 2
+/* 802D215C 002CDDBC 7C 05 28 30 */ slw r5, r0, r5
+/* 802D2160 002CDDC0 39 1E 00 03 */ addi r8, r30, 3
+/* 802D2164 002CDDC4 7D 4B 28 78 */ andc r11, r10, r5
+/* 802D2168 002CDDC8 54 EA 0F FE */ srwi r10, r7, 0x1f
+/* 802D216C 002CDDCC 99 66 00 00 */ stb r11, 0(r6)
+/* 802D2170 002CDDD0 54 E5 E8 04 */ slwi r5, r7, 0x1d
+/* 802D2174 002CDDD4 7C EB 1E 70 */ srawi r11, r7, 3
+/* 802D2178 002CDDD8 38 FE 00 04 */ addi r7, r30, 4
+/* 802D217C 002CDDDC 7C AA 28 50 */ subf r5, r10, r5
+/* 802D2180 002CDDE0 38 C6 00 01 */ addi r6, r6, 1
+/* 802D2184 002CDDE4 7F AB 01 94 */ addze r29, r11
+/* 802D2188 002CDDE8 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 802D218C 002CDDEC 7D 84 E8 AE */ lbzx r12, r4, r29
+/* 802D2190 002CDDF0 7D 45 52 14 */ add r10, r5, r10
+/* 802D2194 002CDDF4 7C 0B 50 30 */ slw r11, r0, r10
+/* 802D2198 002CDDF8 55 25 E8 04 */ slwi r5, r9, 0x1d
+/* 802D219C 002CDDFC 55 2A 0F FE */ srwi r10, r9, 0x1f
+/* 802D21A0 002CDE00 7D 29 1E 70 */ srawi r9, r9, 3
+/* 802D21A4 002CDE04 7D 8B 58 78 */ andc r11, r12, r11
+/* 802D21A8 002CDE08 7C AA 28 50 */ subf r5, r10, r5
+/* 802D21AC 002CDE0C 7D 64 E9 AE */ stbx r11, r4, r29
+/* 802D21B0 002CDE10 7F A9 01 94 */ addze r29, r9
+/* 802D21B4 002CDE14 39 3E 00 05 */ addi r9, r30, 5
+/* 802D21B8 002CDE18 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 802D21BC 002CDE1C 7D 84 E8 AE */ lbzx r12, r4, r29
+/* 802D21C0 002CDE20 7C A5 52 14 */ add r5, r5, r10
+/* 802D21C4 002CDE24 7D 0A 1E 70 */ srawi r10, r8, 3
+/* 802D21C8 002CDE28 7C 0B 28 30 */ slw r11, r0, r5
+/* 802D21CC 002CDE2C 7D 8C 58 78 */ andc r12, r12, r11
+/* 802D21D0 002CDE30 55 05 E8 04 */ slwi r5, r8, 0x1d
+/* 802D21D4 002CDE34 55 08 0F FE */ srwi r8, r8, 0x1f
+/* 802D21D8 002CDE38 7D 84 E9 AE */ stbx r12, r4, r29
+/* 802D21DC 002CDE3C 7C A8 28 50 */ subf r5, r8, r5
+/* 802D21E0 002CDE40 7D 6A 01 94 */ addze r11, r10
+/* 802D21E4 002CDE44 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 802D21E8 002CDE48 7D 44 58 AE */ lbzx r10, r4, r11
+/* 802D21EC 002CDE4C 7D 05 42 14 */ add r8, r5, r8
+/* 802D21F0 002CDE50 7C E5 1E 70 */ srawi r5, r7, 3
+/* 802D21F4 002CDE54 7C 08 40 30 */ slw r8, r0, r8
+/* 802D21F8 002CDE58 7D 4A 40 78 */ andc r10, r10, r8
+/* 802D21FC 002CDE5C 7F A5 01 94 */ addze r29, r5
+/* 802D2200 002CDE60 7D 44 59 AE */ stbx r10, r4, r11
+/* 802D2204 002CDE64 54 E5 E8 04 */ slwi r5, r7, 0x1d
+/* 802D2208 002CDE68 54 E8 0F FE */ srwi r8, r7, 0x1f
+/* 802D220C 002CDE6C 7D 27 1E 70 */ srawi r7, r9, 3
+/* 802D2210 002CDE70 7C A8 28 50 */ subf r5, r8, r5
+/* 802D2214 002CDE74 7D 64 E8 AE */ lbzx r11, r4, r29
+/* 802D2218 002CDE78 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 802D221C 002CDE7C 7D 87 01 94 */ addze r12, r7
+/* 802D2220 002CDE80 7C A5 42 14 */ add r5, r5, r8
+/* 802D2224 002CDE84 39 1E 00 06 */ addi r8, r30, 6
+/* 802D2228 002CDE88 7C 0A 28 30 */ slw r10, r0, r5
+/* 802D222C 002CDE8C 55 25 E8 04 */ slwi r5, r9, 0x1d
+/* 802D2230 002CDE90 55 29 0F FE */ srwi r9, r9, 0x1f
+/* 802D2234 002CDE94 7D 6A 50 78 */ andc r10, r11, r10
+/* 802D2238 002CDE98 7D 44 E9 AE */ stbx r10, r4, r29
+/* 802D223C 002CDE9C 7C A9 28 50 */ subf r5, r9, r5
+/* 802D2240 002CDEA0 54 A7 18 3E */ rotlwi r7, r5, 3
+/* 802D2244 002CDEA4 7D 27 4A 14 */ add r9, r7, r9
+/* 802D2248 002CDEA8 7D 05 1E 70 */ srawi r5, r8, 3
+/* 802D224C 002CDEAC 7D 65 01 94 */ addze r11, r5
+/* 802D2250 002CDEB0 38 FE 00 07 */ addi r7, r30, 7
+/* 802D2254 002CDEB4 7D 44 60 AE */ lbzx r10, r4, r12
+/* 802D2258 002CDEB8 7C 09 48 30 */ slw r9, r0, r9
+/* 802D225C 002CDEBC 55 05 E8 04 */ slwi r5, r8, 0x1d
+/* 802D2260 002CDEC0 3B DE 00 08 */ addi r30, r30, 8
+/* 802D2264 002CDEC4 7D 4A 48 78 */ andc r10, r10, r9
+/* 802D2268 002CDEC8 55 09 0F FE */ srwi r9, r8, 0x1f
+/* 802D226C 002CDECC 7D 44 61 AE */ stbx r10, r4, r12
+/* 802D2270 002CDED0 7C A9 28 50 */ subf r5, r9, r5
+/* 802D2274 002CDED4 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 802D2278 002CDED8 7C E8 1E 70 */ srawi r8, r7, 3
+/* 802D227C 002CDEDC 7C A5 4A 14 */ add r5, r5, r9
+/* 802D2280 002CDEE0 7D 44 58 AE */ lbzx r10, r4, r11
+/* 802D2284 002CDEE4 7C 09 28 30 */ slw r9, r0, r5
+/* 802D2288 002CDEE8 54 E5 E8 04 */ slwi r5, r7, 0x1d
+/* 802D228C 002CDEEC 54 E7 0F FE */ srwi r7, r7, 0x1f
+/* 802D2290 002CDEF0 7D 49 48 78 */ andc r9, r10, r9
+/* 802D2294 002CDEF4 7C A7 28 50 */ subf r5, r7, r5
+/* 802D2298 002CDEF8 7D 24 59 AE */ stbx r9, r4, r11
+/* 802D229C 002CDEFC 7D 28 01 94 */ addze r9, r8
+/* 802D22A0 002CDF00 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 802D22A4 002CDF04 7D 04 48 AE */ lbzx r8, r4, r9
+/* 802D22A8 002CDF08 7C A5 3A 14 */ add r5, r5, r7
+/* 802D22AC 002CDF0C 7C 05 28 30 */ slw r5, r0, r5
+/* 802D22B0 002CDF10 7D 05 28 78 */ andc r5, r8, r5
+/* 802D22B4 002CDF14 7C A4 49 AE */ stbx r5, r4, r9
+/* 802D22B8 002CDF18 42 00 FE 84 */ bdnz lbl_802D213C
+lbl_802D22BC:
+/* 802D22BC 002CDF1C 38 1F 00 01 */ addi r0, r31, 1
+/* 802D22C0 002CDF20 38 E1 00 08 */ addi r7, r1, 8
+/* 802D22C4 002CDF24 7C 1E 00 50 */ subf r0, r30, r0
+/* 802D22C8 002CDF28 38 A0 00 01 */ li r5, 1
+/* 802D22CC 002CDF2C 7C 09 03 A6 */ mtctr r0
+/* 802D22D0 002CDF30 7C 1E F8 00 */ cmpw r30, r31
+/* 802D22D4 002CDF34 41 81 00 38 */ bgt lbl_802D230C
+lbl_802D22D8:
+/* 802D22D8 002CDF38 57 C0 E8 04 */ slwi r0, r30, 0x1d
+/* 802D22DC 002CDF3C 57 C4 0F FE */ srwi r4, r30, 0x1f
+/* 802D22E0 002CDF40 7F C6 1E 70 */ srawi r6, r30, 3
+/* 802D22E4 002CDF44 3B DE 00 01 */ addi r30, r30, 1
+/* 802D22E8 002CDF48 7C 04 00 50 */ subf r0, r4, r0
+/* 802D22EC 002CDF4C 7D 06 01 94 */ addze r8, r6
+/* 802D22F0 002CDF50 54 00 18 3E */ rotlwi r0, r0, 3
+/* 802D22F4 002CDF54 7C C7 40 AE */ lbzx r6, r7, r8
+/* 802D22F8 002CDF58 7C 00 22 14 */ add r0, r0, r4
+/* 802D22FC 002CDF5C 7C A0 00 30 */ slw r0, r5, r0
+/* 802D2300 002CDF60 7C C0 00 78 */ andc r0, r6, r0
+/* 802D2304 002CDF64 7C 07 41 AE */ stbx r0, r7, r8
+/* 802D2308 002CDF68 42 00 FF D0 */ bdnz lbl_802D22D8
+lbl_802D230C:
+/* 802D230C 002CDF6C 88 01 00 08 */ lbz r0, 8(r1)
+/* 802D2310 002CDF70 98 03 00 0B */ stb r0, 0xb(r3)
+/* 802D2314 002CDF74 88 01 00 09 */ lbz r0, 9(r1)
+/* 802D2318 002CDF78 98 03 00 0C */ stb r0, 0xc(r3)
+/* 802D231C 002CDF7C 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 802D2320 002CDF80 98 03 00 0D */ stb r0, 0xd(r3)
+/* 802D2324 002CDF84 88 01 00 0B */ lbz r0, 0xb(r1)
+/* 802D2328 002CDF88 98 03 00 0E */ stb r0, 0xe(r3)
+/* 802D232C 002CDF8C 88 01 00 0C */ lbz r0, 0xc(r1)
+/* 802D2330 002CDF90 98 03 00 0F */ stb r0, 0xf(r3)
+/* 802D2334 002CDF94 88 01 00 0D */ lbz r0, 0xd(r1)
+/* 802D2338 002CDF98 98 03 00 10 */ stb r0, 0x10(r3)
+/* 802D233C 002CDF9C 88 01 00 0E */ lbz r0, 0xe(r1)
+/* 802D2340 002CDFA0 98 03 00 11 */ stb r0, 0x11(r3)
+/* 802D2344 002CDFA4 88 01 00 0F */ lbz r0, 0xf(r1)
+/* 802D2348 002CDFA8 98 03 00 12 */ stb r0, 0x12(r3)
+/* 802D234C 002CDFAC 88 01 00 10 */ lbz r0, 0x10(r1)
+/* 802D2350 002CDFB0 98 03 00 13 */ stb r0, 0x13(r3)
+/* 802D2354 002CDFB4 88 01 00 11 */ lbz r0, 0x11(r1)
+/* 802D2358 002CDFB8 98 03 00 14 */ stb r0, 0x14(r3)
+/* 802D235C 002CDFBC 4B FF BA D9 */ bl btu_hcif_send_cmd
+/* 802D2360 002CDFC0 38 60 00 01 */ li r3, 1
+lbl_802D2364:
+/* 802D2364 002CDFC4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D2368 002CDFC8 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 802D236C 002CDFCC 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 802D2370 002CDFD0 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 802D2374 002CDFD4 7C 08 03 A6 */ mtlr r0
+/* 802D2378 002CDFD8 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D237C 002CDFDC 4E 80 00 20 */ blr
+
+.global btsnd_hcic_write_inqscan_type
+btsnd_hcic_write_inqscan_type:
+/* 802D2380 002CDFE0 39 00 00 04 */ li r8, 4
+/* 802D2384 002CDFE4 38 E0 00 00 */ li r7, 0
+/* 802D2388 002CDFE8 38 C0 00 43 */ li r6, 0x43
+/* 802D238C 002CDFEC 38 A0 00 0C */ li r5, 0xc
+/* 802D2390 002CDFF0 38 00 00 01 */ li r0, 1
+/* 802D2394 002CDFF4 B1 03 00 02 */ sth r8, 2(r3)
+/* 802D2398 002CDFF8 B0 E3 00 04 */ sth r7, 4(r3)
+/* 802D239C 002CDFFC 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D23A0 002CE000 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D23A4 002CE004 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D23A8 002CE008 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D23AC 002CE00C 4B FF BA 88 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_inquiry_mode
+btsnd_hcic_write_inquiry_mode:
+/* 802D23B0 002CE010 39 00 00 04 */ li r8, 4
+/* 802D23B4 002CE014 38 E0 00 00 */ li r7, 0
+/* 802D23B8 002CE018 38 C0 00 45 */ li r6, 0x45
+/* 802D23BC 002CE01C 38 A0 00 0C */ li r5, 0xc
+/* 802D23C0 002CE020 38 00 00 01 */ li r0, 1
+/* 802D23C4 002CE024 B1 03 00 02 */ sth r8, 2(r3)
+/* 802D23C8 002CE028 B0 E3 00 04 */ sth r7, 4(r3)
+/* 802D23CC 002CE02C 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D23D0 002CE030 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D23D4 002CE034 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D23D8 002CE038 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D23DC 002CE03C 4B FF BA 58 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_write_pagescan_type
+btsnd_hcic_write_pagescan_type:
+/* 802D23E0 002CE040 39 00 00 04 */ li r8, 4
+/* 802D23E4 002CE044 38 E0 00 00 */ li r7, 0
+/* 802D23E8 002CE048 38 C0 00 47 */ li r6, 0x47
+/* 802D23EC 002CE04C 38 A0 00 0C */ li r5, 0xc
+/* 802D23F0 002CE050 38 00 00 01 */ li r0, 1
+/* 802D23F4 002CE054 B1 03 00 02 */ sth r8, 2(r3)
+/* 802D23F8 002CE058 B0 E3 00 04 */ sth r7, 4(r3)
+/* 802D23FC 002CE05C 98 C3 00 08 */ stb r6, 8(r3)
+/* 802D2400 002CE060 98 A3 00 09 */ stb r5, 9(r3)
+/* 802D2404 002CE064 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D2408 002CE068 98 83 00 0B */ stb r4, 0xb(r3)
+/* 802D240C 002CE06C 4B FF BA 28 */ b btu_hcif_send_cmd
+
+.global btsnd_hcic_vendor_spec_cmd
+btsnd_hcic_vendor_spec_cmd:
+/* 802D2410 002CE070 60 88 FC 00 */ ori r8, r4, 0xfc00
+/* 802D2414 002CE074 38 E5 00 03 */ addi r7, r5, 3
+/* 802D2418 002CE078 7D 00 46 70 */ srawi r0, r8, 8
+/* 802D241C 002CE07C 38 80 00 00 */ li r4, 0
+/* 802D2420 002CE080 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 802D2424 002CE084 B0 E3 00 02 */ sth r7, 2(r3)
+/* 802D2428 002CE088 39 23 00 0B */ addi r9, r3, 0xb
+/* 802D242C 002CE08C 39 40 00 00 */ li r10, 0
+/* 802D2430 002CE090 B0 83 00 04 */ sth r4, 4(r3)
+/* 802D2434 002CE094 99 03 00 08 */ stb r8, 8(r3)
+/* 802D2438 002CE098 98 03 00 09 */ stb r0, 9(r3)
+/* 802D243C 002CE09C 98 A3 00 0A */ stb r5, 0xa(r3)
+/* 802D2440 002CE0A0 40 85 00 C0 */ ble cr1, lbl_802D2500
+/* 802D2444 002CE0A4 2C 05 00 08 */ cmpwi r5, 8
+/* 802D2448 002CE0A8 38 E5 FF F8 */ addi r7, r5, -8
+/* 802D244C 002CE0AC 40 81 00 8C */ ble lbl_802D24D8
+/* 802D2450 002CE0B0 39 00 00 00 */ li r8, 0
+/* 802D2454 002CE0B4 41 84 00 18 */ blt cr1, lbl_802D246C
+/* 802D2458 002CE0B8 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha
+/* 802D245C 002CE0BC 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l
+/* 802D2460 002CE0C0 7C 05 00 00 */ cmpw r5, r0
+/* 802D2464 002CE0C4 41 81 00 08 */ bgt lbl_802D246C
+/* 802D2468 002CE0C8 39 00 00 01 */ li r8, 1
+lbl_802D246C:
+/* 802D246C 002CE0CC 2C 08 00 00 */ cmpwi r8, 0
+/* 802D2470 002CE0D0 41 82 00 68 */ beq lbl_802D24D8
+/* 802D2474 002CE0D4 38 07 00 07 */ addi r0, r7, 7
+/* 802D2478 002CE0D8 54 00 E8 FE */ srwi r0, r0, 3
+/* 802D247C 002CE0DC 7C 09 03 A6 */ mtctr r0
+/* 802D2480 002CE0E0 2C 07 00 00 */ cmpwi r7, 0
+/* 802D2484 002CE0E4 40 81 00 54 */ ble lbl_802D24D8
+lbl_802D2488:
+/* 802D2488 002CE0E8 7C 06 50 AE */ lbzx r0, r6, r10
+/* 802D248C 002CE0EC 7C 86 52 14 */ add r4, r6, r10
+/* 802D2490 002CE0F0 39 4A 00 08 */ addi r10, r10, 8
+/* 802D2494 002CE0F4 98 09 00 00 */ stb r0, 0(r9)
+/* 802D2498 002CE0F8 88 04 00 01 */ lbz r0, 1(r4)
+/* 802D249C 002CE0FC 98 09 00 01 */ stb r0, 1(r9)
+/* 802D24A0 002CE100 88 04 00 02 */ lbz r0, 2(r4)
+/* 802D24A4 002CE104 98 09 00 02 */ stb r0, 2(r9)
+/* 802D24A8 002CE108 88 04 00 03 */ lbz r0, 3(r4)
+/* 802D24AC 002CE10C 98 09 00 03 */ stb r0, 3(r9)
+/* 802D24B0 002CE110 88 04 00 04 */ lbz r0, 4(r4)
+/* 802D24B4 002CE114 98 09 00 04 */ stb r0, 4(r9)
+/* 802D24B8 002CE118 88 04 00 05 */ lbz r0, 5(r4)
+/* 802D24BC 002CE11C 98 09 00 05 */ stb r0, 5(r9)
+/* 802D24C0 002CE120 88 04 00 06 */ lbz r0, 6(r4)
+/* 802D24C4 002CE124 98 09 00 06 */ stb r0, 6(r9)
+/* 802D24C8 002CE128 88 04 00 07 */ lbz r0, 7(r4)
+/* 802D24CC 002CE12C 98 09 00 07 */ stb r0, 7(r9)
+/* 802D24D0 002CE130 39 29 00 08 */ addi r9, r9, 8
+/* 802D24D4 002CE134 42 00 FF B4 */ bdnz lbl_802D2488
+lbl_802D24D8:
+/* 802D24D8 002CE138 7C 0A 28 50 */ subf r0, r10, r5
+/* 802D24DC 002CE13C 7C 86 52 14 */ add r4, r6, r10
+/* 802D24E0 002CE140 7C 09 03 A6 */ mtctr r0
+/* 802D24E4 002CE144 7C 0A 28 00 */ cmpw r10, r5
+/* 802D24E8 002CE148 40 80 00 18 */ bge lbl_802D2500
+lbl_802D24EC:
+/* 802D24EC 002CE14C 88 04 00 00 */ lbz r0, 0(r4)
+/* 802D24F0 002CE150 38 84 00 01 */ addi r4, r4, 1
+/* 802D24F4 002CE154 98 09 00 00 */ stb r0, 0(r9)
+/* 802D24F8 002CE158 39 29 00 01 */ addi r9, r9, 1
+/* 802D24FC 002CE15C 42 00 FF F0 */ bdnz lbl_802D24EC
+lbl_802D2500:
+/* 802D2500 002CE160 4B FF B9 34 */ b btu_hcif_send_cmd
diff --git a/asm/SDK/BTE/hidd_api.s b/asm/SDK/BTE/hidd_api.s new file mode 100644 index 0000000..9050d9d --- /dev/null +++ b/asm/SDK/BTE/hidd_api.s @@ -0,0 +1,32 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global HID_DevInit
+HID_DevInit:
+/* 802D2504 002CE164 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D2508 002CE168 7C 08 02 A6 */ mflr r0
+/* 802D250C 002CE16C 38 80 00 00 */ li r4, 0
+/* 802D2510 002CE170 38 A0 01 44 */ li r5, 0x144
+/* 802D2514 002CE174 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D2518 002CE178 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D251C 002CE17C 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
+/* 802D2520 002CE180 38 7F B6 F0 */ addi r3, r31, lbl_8056B6F0@l
+/* 802D2524 002CE184 4B D3 1B E1 */ bl memset
+/* 802D2528 002CE188 3C 60 80 2D */ lis r3, hidd_proc_repage_timeout@ha
+/* 802D252C 002CE18C 38 BF B6 F0 */ addi r5, r31, -18704
+/* 802D2530 002CE190 38 C0 00 01 */ li r6, 1
+/* 802D2534 002CE194 38 80 00 40 */ li r4, 0x40
+/* 802D2538 002CE198 38 63 26 2C */ addi r3, r3, hidd_proc_repage_timeout@l
+/* 802D253C 002CE19C 38 00 00 00 */ li r0, 0
+/* 802D2540 002CE1A0 98 C5 00 CA */ stb r6, 0xca(r5)
+/* 802D2544 002CE1A4 B0 85 00 CC */ sth r4, 0xcc(r5)
+/* 802D2548 002CE1A8 98 C5 01 06 */ stb r6, 0x106(r5)
+/* 802D254C 002CE1AC B0 85 01 08 */ sth r4, 0x108(r5)
+/* 802D2550 002CE1B0 90 65 00 2C */ stw r3, 0x2c(r5)
+/* 802D2554 002CE1B4 98 05 01 41 */ stb r0, 0x141(r5)
+/* 802D2558 002CE1B8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D255C 002CE1BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D2560 002CE1C0 7C 08 03 A6 */ mtlr r0
+/* 802D2564 002CE1C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D2568 002CE1C8 4E 80 00 20 */ blr
diff --git a/asm/SDK/BTE/hidd_conn.s b/asm/SDK/BTE/hidd_conn.s new file mode 100644 index 0000000..0278585 --- /dev/null +++ b/asm/SDK/BTE/hidd_conn.s @@ -0,0 +1,58 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global hidd_conn_initiate
+hidd_conn_initiate:
+/* 802D256C 002CE1CC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D2570 002CE1D0 7C 08 02 A6 */ mflr r0
+/* 802D2574 002CE1D4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D2578 002CE1D8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802D257C 002CE1DC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802D2580 002CE1E0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802D2584 002CE1E4 3F A0 80 57 */ lis r29, lbl_8056B6F0@ha
+/* 802D2588 002CE1E8 3B BD B6 F0 */ addi r29, r29, lbl_8056B6F0@l
+/* 802D258C 002CE1EC 88 1D 01 41 */ lbz r0, 0x141(r29)
+/* 802D2590 002CE1F0 28 00 00 04 */ cmplwi r0, 4
+/* 802D2594 002CE1F4 41 80 00 18 */ blt lbl_802D25AC
+/* 802D2598 002CE1F8 3C 60 00 1E */ lis r3, 0x001E0003@ha
+/* 802D259C 002CE1FC 3C 80 80 44 */ lis r4, lbl_804426F0@ha
+/* 802D25A0 002CE200 38 63 00 03 */ addi r3, r3, 0x001E0003@l
+/* 802D25A4 002CE204 38 84 26 F0 */ addi r4, r4, lbl_804426F0@l
+/* 802D25A8 002CE208 4B FE A9 69 */ bl LogMsg_0
+lbl_802D25AC:
+/* 802D25AC 002CE20C 38 00 00 00 */ li r0, 0
+/* 802D25B0 002CE210 3B C0 00 01 */ li r30, 1
+/* 802D25B4 002CE214 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
+/* 802D25B8 002CE218 B0 1D 00 14 */ sth r0, 0x14(r29)
+/* 802D25BC 002CE21C 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l
+/* 802D25C0 002CE220 38 60 00 11 */ li r3, 0x11
+/* 802D25C4 002CE224 B0 1D 00 16 */ sth r0, 0x16(r29)
+/* 802D25C8 002CE228 9B DD 00 11 */ stb r30, 0x11(r29)
+/* 802D25CC 002CE22C 48 00 34 91 */ bl func_802D5A5C
+/* 802D25D0 002CE230 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 802D25D4 002CE234 B0 7D 00 14 */ sth r3, 0x14(r29)
+/* 802D25D8 002CE238 40 82 00 30 */ bne lbl_802D2608
+/* 802D25DC 002CE23C 38 7F B6 F0 */ addi r3, r31, -18704
+/* 802D25E0 002CE240 88 03 01 41 */ lbz r0, 0x141(r3)
+/* 802D25E4 002CE244 28 00 00 02 */ cmplwi r0, 2
+/* 802D25E8 002CE248 41 80 00 18 */ blt lbl_802D2600
+/* 802D25EC 002CE24C 3C 60 00 1E */ lis r3, 0x001E0001@ha
+/* 802D25F0 002CE250 3C 80 80 44 */ lis r4, lbl_80442708@ha
+/* 802D25F4 002CE254 38 63 00 01 */ addi r3, r3, 0x001E0001@l
+/* 802D25F8 002CE258 38 84 27 08 */ addi r4, r4, lbl_80442708@l
+/* 802D25FC 002CE25C 4B FE A9 15 */ bl LogMsg_0
+lbl_802D2600:
+/* 802D2600 002CE260 38 60 00 0E */ li r3, 0xe
+/* 802D2604 002CE264 48 00 00 0C */ b lbl_802D2610
+lbl_802D2608:
+/* 802D2608 002CE268 9B DD 00 10 */ stb r30, 0x10(r29)
+/* 802D260C 002CE26C 38 60 00 00 */ li r3, 0
+lbl_802D2610:
+/* 802D2610 002CE270 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D2614 002CE274 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802D2618 002CE278 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802D261C 002CE27C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802D2620 002CE280 7C 08 03 A6 */ mtlr r0
+/* 802D2624 002CE284 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D2628 002CE288 4E 80 00 20 */ blr
diff --git a/asm/SDK/BTE/hidd_mgmt.s b/asm/SDK/BTE/hidd_mgmt.s new file mode 100644 index 0000000..92724c6 --- /dev/null +++ b/asm/SDK/BTE/hidd_mgmt.s @@ -0,0 +1,60 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global hidd_proc_repage_timeout
+hidd_proc_repage_timeout:
+/* 802D262C 002CE28C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D2630 002CE290 7C 08 02 A6 */ mflr r0
+/* 802D2634 002CE294 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha
+/* 802D2638 002CE298 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D263C 002CE29C 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l
+/* 802D2640 002CE2A0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D2644 002CE2A4 88 03 01 41 */ lbz r0, 0x141(r3)
+/* 802D2648 002CE2A8 28 00 00 05 */ cmplwi r0, 5
+/* 802D264C 002CE2AC 41 80 00 18 */ blt lbl_802D2664
+/* 802D2650 002CE2B0 3C 60 00 1E */ lis r3, 0x001E0004@ha
+/* 802D2654 002CE2B4 3C 80 80 44 */ lis r4, lbl_80442720@ha
+/* 802D2658 002CE2B8 38 63 00 04 */ addi r3, r3, 0x001E0004@l
+/* 802D265C 002CE2BC 38 84 27 20 */ addi r4, r4, lbl_80442720@l
+/* 802D2660 002CE2C0 4B FE A8 B1 */ bl LogMsg_0
+lbl_802D2664:
+/* 802D2664 002CE2C4 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
+/* 802D2668 002CE2C8 3B FF B6 F0 */ addi r31, r31, lbl_8056B6F0@l
+/* 802D266C 002CE2CC 88 7F 00 09 */ lbz r3, 9(r31)
+/* 802D2670 002CE2D0 38 03 00 01 */ addi r0, r3, 1
+/* 802D2674 002CE2D4 98 1F 00 09 */ stb r0, 9(r31)
+/* 802D2678 002CE2D8 4B FF FE F5 */ bl hidd_conn_initiate
+/* 802D267C 002CE2DC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D2680 002CE2E0 41 82 00 48 */ beq lbl_802D26C8
+/* 802D2684 002CE2E4 88 1F 00 09 */ lbz r0, 9(r31)
+/* 802D2688 002CE2E8 28 00 00 0F */ cmplwi r0, 0xf
+/* 802D268C 002CE2EC 40 81 00 28 */ ble lbl_802D26B4
+/* 802D2690 002CE2F0 81 9F 00 C4 */ lwz r12, 0xc4(r31)
+/* 802D2694 002CE2F4 38 00 00 00 */ li r0, 0
+/* 802D2698 002CE2F8 98 1F 00 08 */ stb r0, 8(r31)
+/* 802D269C 002CE2FC 38 60 00 01 */ li r3, 1
+/* 802D26A0 002CE300 38 80 00 00 */ li r4, 0
+/* 802D26A4 002CE304 38 A0 00 00 */ li r5, 0
+/* 802D26A8 002CE308 7D 89 03 A6 */ mtctr r12
+/* 802D26AC 002CE30C 4E 80 04 21 */ bctrl
+/* 802D26B0 002CE310 48 00 00 30 */ b lbl_802D26E0
+lbl_802D26B4:
+/* 802D26B4 002CE314 38 7F 00 1C */ addi r3, r31, 0x1c
+/* 802D26B8 002CE318 38 80 00 16 */ li r4, 0x16
+/* 802D26BC 002CE31C 38 A0 00 01 */ li r5, 1
+/* 802D26C0 002CE320 4B FE AE 1D */ bl btu_start_timer
+/* 802D26C4 002CE324 48 00 00 1C */ b lbl_802D26E0
+lbl_802D26C8:
+/* 802D26C8 002CE328 81 9F 00 C4 */ lwz r12, 0xc4(r31)
+/* 802D26CC 002CE32C 38 60 00 02 */ li r3, 2
+/* 802D26D0 002CE330 88 9F 00 09 */ lbz r4, 9(r31)
+/* 802D26D4 002CE334 38 A0 00 00 */ li r5, 0
+/* 802D26D8 002CE338 7D 89 03 A6 */ mtctr r12
+/* 802D26DC 002CE33C 4E 80 04 21 */ bctrl
+lbl_802D26E0:
+/* 802D26E0 002CE340 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D26E4 002CE344 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D26E8 002CE348 7C 08 03 A6 */ mtlr r0
+/* 802D26EC 002CE34C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D26F0 002CE350 4E 80 00 20 */ blr
diff --git a/asm/SDK/BTE/hidd_pm.s b/asm/SDK/BTE/hidd_pm.s new file mode 100644 index 0000000..068e3aa --- /dev/null +++ b/asm/SDK/BTE/hidd_pm.s @@ -0,0 +1,253 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global hidd_pm_set_now +hidd_pm_set_now: +/* 802D26F4 002CE354 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D26F8 002CE358 7C 08 02 A6 */ mflr r0 +/* 802D26FC 002CE35C 3C 80 80 57 */ lis r4, lbl_8056B6F0@ha +/* 802D2700 002CE360 38 A0 00 00 */ li r5, 0 +/* 802D2704 002CE364 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D2708 002CE368 38 84 B6 F0 */ addi r4, r4, lbl_8056B6F0@l +/* 802D270C 002CE36C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802D2710 002CE370 88 04 00 6E */ lbz r0, 0x6e(r4) +/* 802D2714 002CE374 90 A1 00 0C */ stw r5, 0xc(r1) +/* 802D2718 002CE378 2C 00 00 00 */ cmpwi r0, 0 +/* 802D271C 002CE37C 90 A1 00 10 */ stw r5, 0x10(r1) +/* 802D2720 002CE380 B0 A1 00 14 */ sth r5, 0x14(r1) +/* 802D2724 002CE384 98 A1 00 08 */ stb r5, 8(r1) +/* 802D2728 002CE388 40 82 00 38 */ bne lbl_802D2760 +/* 802D272C 002CE38C 88 C4 00 6A */ lbz r6, 0x6a(r4) +/* 802D2730 002CE390 88 A3 00 08 */ lbz r5, 8(r3) +/* 802D2734 002CE394 7C 05 30 40 */ cmplw r5, r6 +/* 802D2738 002CE398 40 82 00 40 */ bne lbl_802D2778 +/* 802D273C 002CE39C 2C 05 00 00 */ cmpwi r5, 0 +/* 802D2740 002CE3A0 41 82 00 20 */ beq lbl_802D2760 +/* 802D2744 002CE3A4 A0 84 00 6C */ lhz r4, 0x6c(r4) +/* 802D2748 002CE3A8 A0 03 00 02 */ lhz r0, 2(r3) +/* 802D274C 002CE3AC 7C 04 00 40 */ cmplw r4, r0 +/* 802D2750 002CE3B0 41 80 00 28 */ blt lbl_802D2778 +/* 802D2754 002CE3B4 A0 03 00 00 */ lhz r0, 0(r3) +/* 802D2758 002CE3B8 7C 04 00 40 */ cmplw r4, r0 +/* 802D275C 002CE3BC 41 81 00 1C */ bgt lbl_802D2778 +lbl_802D2760: +/* 802D2760 002CE3C0 3C 80 80 57 */ lis r4, lbl_8056B6F0@ha +/* 802D2764 002CE3C4 38 00 00 FF */ li r0, 0xff +/* 802D2768 002CE3C8 38 84 B6 F0 */ addi r4, r4, lbl_8056B6F0@l +/* 802D276C 002CE3CC 38 60 00 01 */ li r3, 1 +/* 802D2770 002CE3D0 98 04 00 78 */ stb r0, 0x78(r4) +/* 802D2774 002CE3D4 48 00 01 44 */ b lbl_802D28B8 +lbl_802D2778: +/* 802D2778 002CE3D8 2C 05 00 02 */ cmpwi r5, 2 +/* 802D277C 002CE3DC 41 82 00 80 */ beq lbl_802D27FC +/* 802D2780 002CE3E0 40 80 00 10 */ bge lbl_802D2790 +/* 802D2784 002CE3E4 2C 05 00 00 */ cmpwi r5, 0 +/* 802D2788 002CE3E8 41 82 00 14 */ beq lbl_802D279C +/* 802D278C 002CE3EC 48 00 00 E4 */ b lbl_802D2870 +lbl_802D2790: +/* 802D2790 002CE3F0 2C 05 00 04 */ cmpwi r5, 4 +/* 802D2794 002CE3F4 40 80 00 DC */ bge lbl_802D2870 +/* 802D2798 002CE3F8 48 00 00 A0 */ b lbl_802D2838 +lbl_802D279C: +/* 802D279C 002CE3FC 28 06 00 02 */ cmplwi r6, 2 +/* 802D27A0 002CE400 40 82 00 2C */ bne lbl_802D27CC +/* 802D27A4 002CE404 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha +/* 802D27A8 002CE408 38 A1 00 0C */ addi r5, r1, 0xc +/* 802D27AC 002CE40C 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l +/* 802D27B0 002CE410 38 60 00 80 */ li r3, 0x80 +/* 802D27B4 002CE414 4B FF 66 F5 */ bl BTM_SetPowerMode +/* 802D27B8 002CE418 38 9F B6 F0 */ addi r4, r31, -18704 +/* 802D27BC 002CE41C 38 00 00 01 */ li r0, 1 +/* 802D27C0 002CE420 98 61 00 08 */ stb r3, 8(r1) +/* 802D27C4 002CE424 98 04 00 6E */ stb r0, 0x6e(r4) +/* 802D27C8 002CE428 48 00 00 A8 */ b lbl_802D2870 +lbl_802D27CC: +/* 802D27CC 002CE42C 28 06 00 03 */ cmplwi r6, 3 +/* 802D27D0 002CE430 40 82 00 A0 */ bne lbl_802D2870 +/* 802D27D4 002CE434 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha +/* 802D27D8 002CE438 38 A1 00 0C */ addi r5, r1, 0xc +/* 802D27DC 002CE43C 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l +/* 802D27E0 002CE440 38 60 00 80 */ li r3, 0x80 +/* 802D27E4 002CE444 4B FF 66 C5 */ bl BTM_SetPowerMode +/* 802D27E8 002CE448 38 9F B6 F0 */ addi r4, r31, -18704 +/* 802D27EC 002CE44C 38 00 00 01 */ li r0, 1 +/* 802D27F0 002CE450 98 61 00 08 */ stb r3, 8(r1) +/* 802D27F4 002CE454 98 04 00 6E */ stb r0, 0x6e(r4) +/* 802D27F8 002CE458 48 00 00 78 */ b lbl_802D2870 +lbl_802D27FC: +/* 802D27FC 002CE45C 2C 06 00 00 */ cmpwi r6, 0 +/* 802D2800 002CE460 41 82 00 10 */ beq lbl_802D2810 +/* 802D2804 002CE464 38 61 00 0C */ addi r3, r1, 0xc +/* 802D2808 002CE468 4B FF FE ED */ bl hidd_pm_set_now +/* 802D280C 002CE46C 48 00 00 64 */ b lbl_802D2870 +lbl_802D2810: +/* 802D2810 002CE470 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha +/* 802D2814 002CE474 7C 65 1B 78 */ mr r5, r3 +/* 802D2818 002CE478 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l +/* 802D281C 002CE47C 38 60 00 80 */ li r3, 0x80 +/* 802D2820 002CE480 4B FF 66 89 */ bl BTM_SetPowerMode +/* 802D2824 002CE484 38 9F B6 F0 */ addi r4, r31, -18704 +/* 802D2828 002CE488 38 00 00 01 */ li r0, 1 +/* 802D282C 002CE48C 98 61 00 08 */ stb r3, 8(r1) +/* 802D2830 002CE490 98 04 00 6E */ stb r0, 0x6e(r4) +/* 802D2834 002CE494 48 00 00 3C */ b lbl_802D2870 +lbl_802D2838: +/* 802D2838 002CE498 2C 06 00 00 */ cmpwi r6, 0 +/* 802D283C 002CE49C 41 82 00 10 */ beq lbl_802D284C +/* 802D2840 002CE4A0 38 61 00 0C */ addi r3, r1, 0xc +/* 802D2844 002CE4A4 4B FF FE B1 */ bl hidd_pm_set_now +/* 802D2848 002CE4A8 48 00 00 28 */ b lbl_802D2870 +lbl_802D284C: +/* 802D284C 002CE4AC 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha +/* 802D2850 002CE4B0 7C 65 1B 78 */ mr r5, r3 +/* 802D2854 002CE4B4 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l +/* 802D2858 002CE4B8 38 60 00 80 */ li r3, 0x80 +/* 802D285C 002CE4BC 4B FF 66 4D */ bl BTM_SetPowerMode +/* 802D2860 002CE4C0 38 9F B6 F0 */ addi r4, r31, -18704 +/* 802D2864 002CE4C4 38 00 00 01 */ li r0, 1 +/* 802D2868 002CE4C8 98 61 00 08 */ stb r3, 8(r1) +/* 802D286C 002CE4CC 98 04 00 6E */ stb r0, 0x6e(r4) +lbl_802D2870: +/* 802D2870 002CE4D0 88 81 00 08 */ lbz r4, 8(r1) +/* 802D2874 002CE4D4 28 04 00 01 */ cmplwi r4, 1 +/* 802D2878 002CE4D8 41 81 00 0C */ bgt lbl_802D2884 +/* 802D287C 002CE4DC 38 60 00 01 */ li r3, 1 +/* 802D2880 002CE4E0 48 00 00 38 */ b lbl_802D28B8 +lbl_802D2884: +/* 802D2884 002CE4E4 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha +/* 802D2888 002CE4E8 38 04 00 37 */ addi r0, r4, 0x37 +/* 802D288C 002CE4EC 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l +/* 802D2890 002CE4F0 98 01 00 08 */ stb r0, 8(r1) +/* 802D2894 002CE4F4 81 83 00 C4 */ lwz r12, 0xc4(r3) +/* 802D2898 002CE4F8 2C 0C 00 00 */ cmpwi r12, 0 +/* 802D289C 002CE4FC 41 82 00 18 */ beq lbl_802D28B4 +/* 802D28A0 002CE500 88 83 00 6F */ lbz r4, 0x6f(r3) +/* 802D28A4 002CE504 38 A1 00 08 */ addi r5, r1, 8 +/* 802D28A8 002CE508 38 60 00 04 */ li r3, 4 +/* 802D28AC 002CE50C 7D 89 03 A6 */ mtctr r12 +/* 802D28B0 002CE510 4E 80 04 21 */ bctrl +lbl_802D28B4: +/* 802D28B4 002CE514 38 60 00 00 */ li r3, 0 +lbl_802D28B8: +/* 802D28B8 002CE518 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D28BC 002CE51C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802D28C0 002CE520 7C 08 03 A6 */ mtlr r0 +/* 802D28C4 002CE524 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D28C8 002CE528 4E 80 00 20 */ blr + +.global hidd_pm_proc_mode_change +hidd_pm_proc_mode_change: +/* 802D28CC 002CE52C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D28D0 002CE530 7C 08 02 A6 */ mflr r0 +/* 802D28D4 002CE534 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D28D8 002CE538 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802D28DC 002CE53C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 802D28E0 002CE540 3F C0 80 57 */ lis r30, lbl_8056B6F0@ha +/* 802D28E4 002CE544 3B DE B6 F0 */ addi r30, r30, lbl_8056B6F0@l +/* 802D28E8 002CE548 93 A1 00 14 */ stw r29, 0x14(r1) +/* 802D28EC 002CE54C 7C 9D 23 78 */ mr r29, r4 +/* 802D28F0 002CE550 88 1E 01 40 */ lbz r0, 0x140(r30) +/* 802D28F4 002CE554 98 61 00 08 */ stb r3, 8(r1) +/* 802D28F8 002CE558 2C 00 00 00 */ cmpwi r0, 0 +/* 802D28FC 002CE55C B0 A1 00 0A */ sth r5, 0xa(r1) +/* 802D2900 002CE560 41 82 01 08 */ beq lbl_802D2A08 +/* 802D2904 002CE564 3B E0 00 00 */ li r31, 0 +/* 802D2908 002CE568 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D290C 002CE56C 9B FE 00 6E */ stb r31, 0x6e(r30) +/* 802D2910 002CE570 41 82 00 28 */ beq lbl_802D2938 +/* 802D2914 002CE574 81 9E 00 C4 */ lwz r12, 0xc4(r30) +/* 802D2918 002CE578 2C 0C 00 00 */ cmpwi r12, 0 +/* 802D291C 002CE57C 41 82 00 EC */ beq lbl_802D2A08 +/* 802D2920 002CE580 38 A1 00 08 */ addi r5, r1, 8 +/* 802D2924 002CE584 88 9E 00 6F */ lbz r4, 0x6f(r30) +/* 802D2928 002CE588 38 60 00 04 */ li r3, 4 +/* 802D292C 002CE58C 7D 89 03 A6 */ mtctr r12 +/* 802D2930 002CE590 4E 80 04 21 */ bctrl +/* 802D2934 002CE594 48 00 00 D4 */ b lbl_802D2A08 +lbl_802D2938: +/* 802D2938 002CE598 88 1E 00 78 */ lbz r0, 0x78(r30) +/* 802D293C 002CE59C 54 A3 04 3E */ clrlwi r3, r5, 0x10 +/* 802D2940 002CE5A0 98 9E 00 6A */ stb r4, 0x6a(r30) +/* 802D2944 002CE5A4 28 00 00 FF */ cmplwi r0, 0xff +/* 802D2948 002CE5A8 B0 BE 00 6C */ sth r5, 0x6c(r30) +/* 802D294C 002CE5AC 41 82 00 54 */ beq lbl_802D29A0 +/* 802D2950 002CE5B0 7C 00 20 40 */ cmplw r0, r4 +/* 802D2954 002CE5B4 40 82 00 24 */ bne lbl_802D2978 +/* 802D2958 002CE5B8 2C 00 00 00 */ cmpwi r0, 0 +/* 802D295C 002CE5BC 41 82 00 30 */ beq lbl_802D298C +/* 802D2960 002CE5C0 A0 1E 00 72 */ lhz r0, 0x72(r30) +/* 802D2964 002CE5C4 7C 03 00 40 */ cmplw r3, r0 +/* 802D2968 002CE5C8 41 80 00 10 */ blt lbl_802D2978 +/* 802D296C 002CE5CC A0 1E 00 70 */ lhz r0, 0x70(r30) +/* 802D2970 002CE5D0 7C 03 00 40 */ cmplw r3, r0 +/* 802D2974 002CE5D4 40 81 00 18 */ ble lbl_802D298C +lbl_802D2978: +/* 802D2978 002CE5D8 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha +/* 802D297C 002CE5DC 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l +/* 802D2980 002CE5E0 38 63 00 70 */ addi r3, r3, 0x70 +/* 802D2984 002CE5E4 4B FF FD 71 */ bl hidd_pm_set_now +/* 802D2988 002CE5E8 48 00 00 58 */ b lbl_802D29E0 +lbl_802D298C: +/* 802D298C 002CE5EC 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha +/* 802D2990 002CE5F0 38 00 00 FF */ li r0, 0xff +/* 802D2994 002CE5F4 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l +/* 802D2998 002CE5F8 98 03 00 78 */ stb r0, 0x78(r3) +/* 802D299C 002CE5FC 48 00 00 44 */ b lbl_802D29E0 +lbl_802D29A0: +/* 802D29A0 002CE600 2C 04 00 00 */ cmpwi r4, 0 +/* 802D29A4 002CE604 40 82 00 3C */ bne lbl_802D29E0 +/* 802D29A8 002CE608 38 7E 00 70 */ addi r3, r30, 0x70 +/* 802D29AC 002CE60C 38 9E 00 4C */ addi r4, r30, 0x4c +/* 802D29B0 002CE610 38 A0 00 0A */ li r5, 0xa +/* 802D29B4 002CE614 4B D3 16 4D */ bl memcpy +/* 802D29B8 002CE618 38 7E 00 4C */ addi r3, r30, 0x4c +/* 802D29BC 002CE61C 4B FF FD 39 */ bl hidd_pm_set_now +/* 802D29C0 002CE620 3C 60 80 2D */ lis r3, hidd_pm_inact_timeout@ha +/* 802D29C4 002CE624 9B FE 00 6F */ stb r31, 0x6f(r30) +/* 802D29C8 002CE628 38 63 2A 24 */ addi r3, r3, hidd_pm_inact_timeout@l +/* 802D29CC 002CE62C 38 80 00 16 */ li r4, 0x16 +/* 802D29D0 002CE630 90 7E 00 44 */ stw r3, 0x44(r30) +/* 802D29D4 002CE634 38 7E 00 34 */ addi r3, r30, 0x34 +/* 802D29D8 002CE638 38 A0 00 3C */ li r5, 0x3c +/* 802D29DC 002CE63C 4B FE AB 01 */ bl btu_start_timer +lbl_802D29E0: +/* 802D29E0 002CE640 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha +/* 802D29E4 002CE644 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l +/* 802D29E8 002CE648 81 83 00 C4 */ lwz r12, 0xc4(r3) +/* 802D29EC 002CE64C 2C 0C 00 00 */ cmpwi r12, 0 +/* 802D29F0 002CE650 41 82 00 18 */ beq lbl_802D2A08 +/* 802D29F4 002CE654 7F A4 EB 78 */ mr r4, r29 +/* 802D29F8 002CE658 38 A1 00 0A */ addi r5, r1, 0xa +/* 802D29FC 002CE65C 38 60 00 03 */ li r3, 3 +/* 802D2A00 002CE660 7D 89 03 A6 */ mtctr r12 +/* 802D2A04 002CE664 4E 80 04 21 */ bctrl +lbl_802D2A08: +/* 802D2A08 002CE668 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D2A0C 002CE66C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802D2A10 002CE670 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 802D2A14 002CE674 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 802D2A18 002CE678 7C 08 03 A6 */ mtlr r0 +/* 802D2A1C 002CE67C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D2A20 002CE680 4E 80 00 20 */ blr + +hidd_pm_inact_timeout: +/* 802D2A24 002CE684 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D2A28 002CE688 7C 08 02 A6 */ mflr r0 +/* 802D2A2C 002CE68C 38 A0 00 0A */ li r5, 0xa +/* 802D2A30 002CE690 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D2A34 002CE694 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D2A38 002CE698 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha +/* 802D2A3C 002CE69C 3B FF B6 F0 */ addi r31, r31, lbl_8056B6F0@l +/* 802D2A40 002CE6A0 38 7F 00 70 */ addi r3, r31, 0x70 +/* 802D2A44 002CE6A4 38 9F 00 56 */ addi r4, r31, 0x56 +/* 802D2A48 002CE6A8 4B D3 15 B9 */ bl memcpy +/* 802D2A4C 002CE6AC 38 7F 00 56 */ addi r3, r31, 0x56 +/* 802D2A50 002CE6B0 4B FF FC A5 */ bl hidd_pm_set_now +/* 802D2A54 002CE6B4 38 00 00 01 */ li r0, 1 +/* 802D2A58 002CE6B8 98 1F 00 6F */ stb r0, 0x6f(r31) +/* 802D2A5C 002CE6BC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D2A60 002CE6C0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D2A64 002CE6C4 7C 08 03 A6 */ mtlr r0 +/* 802D2A68 002CE6C8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D2A6C 002CE6CC 4E 80 00 20 */ blr diff --git a/asm/SDK/BTE/hidh_api.s b/asm/SDK/BTE/hidh_api.s new file mode 100644 index 0000000..79bc22a --- /dev/null +++ b/asm/SDK/BTE/hidh_api.s @@ -0,0 +1,981 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global HID_HostGetSDPRecord
+HID_HostGetSDPRecord:
+/* 802D2A70 002CE6D0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D2A74 002CE6D4 7C 08 02 A6 */ mflr r0
+/* 802D2A78 002CE6D8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D2A7C 002CE6DC 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 802D2A80 002CE6E0 3F E0 80 57 */ lis r31, lbl_8056B838@ha
+/* 802D2A84 002CE6E4 3B FF B8 38 */ addi r31, r31, lbl_8056B838@l
+/* 802D2A88 002CE6E8 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 802D2A8C 002CE6EC 7C DE 33 78 */ mr r30, r6
+/* 802D2A90 002CE6F0 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 802D2A94 002CE6F4 7C 9D 23 78 */ mr r29, r4
+/* 802D2A98 002CE6F8 93 81 00 20 */ stw r28, 0x20(r1)
+/* 802D2A9C 002CE6FC 7C 7C 1B 78 */ mr r28, r3
+/* 802D2AA0 002CE700 88 1F 03 80 */ lbz r0, 0x380(r31)
+/* 802D2AA4 002CE704 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2AA8 002CE708 41 82 00 0C */ beq lbl_802D2AB4
+/* 802D2AAC 002CE70C 38 60 00 10 */ li r3, 0x10
+/* 802D2AB0 002CE710 48 00 00 68 */ b lbl_802D2B18
+lbl_802D2AB4:
+/* 802D2AB4 002CE714 38 E0 00 02 */ li r7, 2
+/* 802D2AB8 002CE718 38 00 11 24 */ li r0, 0x1124
+/* 802D2ABC 002CE71C 90 9F 03 88 */ stw r4, 0x388(r31)
+/* 802D2AC0 002CE720 7C A4 2B 78 */ mr r4, r5
+/* 802D2AC4 002CE724 7F A3 EB 78 */ mr r3, r29
+/* 802D2AC8 002CE728 38 C1 00 08 */ addi r6, r1, 8
+/* 802D2ACC 002CE72C B0 E1 00 08 */ sth r7, 8(r1)
+/* 802D2AD0 002CE730 38 A0 00 01 */ li r5, 1
+/* 802D2AD4 002CE734 38 E0 00 00 */ li r7, 0
+/* 802D2AD8 002CE738 39 00 00 00 */ li r8, 0
+/* 802D2ADC 002CE73C B0 01 00 0C */ sth r0, 0xc(r1)
+/* 802D2AE0 002CE740 48 00 F3 09 */ bl func_802E1DE8
+/* 802D2AE4 002CE744 3C A0 80 2D */ lis r5, hidh_search_callback@ha
+/* 802D2AE8 002CE748 7F 83 E3 78 */ mr r3, r28
+/* 802D2AEC 002CE74C 7F A4 EB 78 */ mr r4, r29
+/* 802D2AF0 002CE750 38 A5 2B 38 */ addi r5, r5, hidh_search_callback@l
+/* 802D2AF4 002CE754 48 00 F6 6D */ bl func_802E2160
+/* 802D2AF8 002CE758 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D2AFC 002CE75C 41 82 00 18 */ beq lbl_802D2B14
+/* 802D2B00 002CE760 38 00 00 01 */ li r0, 1
+/* 802D2B04 002CE764 93 DF 03 84 */ stw r30, 0x384(r31)
+/* 802D2B08 002CE768 38 60 00 00 */ li r3, 0
+/* 802D2B0C 002CE76C 98 1F 03 80 */ stb r0, 0x380(r31)
+/* 802D2B10 002CE770 48 00 00 08 */ b lbl_802D2B18
+lbl_802D2B14:
+/* 802D2B14 002CE774 38 60 00 03 */ li r3, 3
+lbl_802D2B18:
+/* 802D2B18 002CE778 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D2B1C 002CE77C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 802D2B20 002CE780 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 802D2B24 002CE784 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 802D2B28 002CE788 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 802D2B2C 002CE78C 7C 08 03 A6 */ mtlr r0
+/* 802D2B30 002CE790 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D2B34 002CE794 4E 80 00 20 */ blr
+
+hidh_search_callback:
+/* 802D2B38 002CE798 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D2B3C 002CE79C 7C 08 02 A6 */ mflr r0
+/* 802D2B40 002CE7A0 38 80 00 02 */ li r4, 2
+/* 802D2B44 002CE7A4 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2B48 002CE7A8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D2B4C 002CE7AC 38 00 11 24 */ li r0, 0x1124
+/* 802D2B50 002CE7B0 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 802D2B54 002CE7B4 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 802D2B58 002CE7B8 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 802D2B5C 002CE7BC 3B A0 00 00 */ li r29, 0
+/* 802D2B60 002CE7C0 93 81 00 20 */ stw r28, 0x20(r1)
+/* 802D2B64 002CE7C4 3F 80 80 57 */ lis r28, lbl_8056B838@ha
+/* 802D2B68 002CE7C8 3B 9C B8 38 */ addi r28, r28, lbl_8056B838@l
+/* 802D2B6C 002CE7CC B0 81 00 08 */ sth r4, 8(r1)
+/* 802D2B70 002CE7D0 3B DC 03 8C */ addi r30, r28, 0x38c
+/* 802D2B74 002CE7D4 80 9C 03 88 */ lwz r4, 0x388(r28)
+/* 802D2B78 002CE7D8 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 802D2B7C 002CE7DC 9B BC 03 80 */ stb r29, 0x380(r28)
+/* 802D2B80 002CE7E0 41 82 00 1C */ beq lbl_802D2B9C
+/* 802D2B84 002CE7E4 81 9C 03 84 */ lwz r12, 0x384(r28)
+/* 802D2B88 002CE7E8 38 80 00 00 */ li r4, 0
+/* 802D2B8C 002CE7EC 38 A0 00 00 */ li r5, 0
+/* 802D2B90 002CE7F0 7D 89 03 A6 */ mtctr r12
+/* 802D2B94 002CE7F4 4E 80 04 21 */ bctrl
+/* 802D2B98 002CE7F8 48 00 03 D0 */ b lbl_802D2F68
+lbl_802D2B9C:
+/* 802D2B9C 002CE7FC 7C 83 23 78 */ mr r3, r4
+/* 802D2BA0 002CE800 38 81 00 08 */ addi r4, r1, 8
+/* 802D2BA4 002CE804 38 A0 00 00 */ li r5, 0
+/* 802D2BA8 002CE808 48 00 F7 6D */ bl func_802E2314
+/* 802D2BAC 002CE80C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2BB0 002CE810 7C 7F 1B 78 */ mr r31, r3
+/* 802D2BB4 002CE814 40 82 00 20 */ bne lbl_802D2BD4
+/* 802D2BB8 002CE818 81 9C 03 84 */ lwz r12, 0x384(r28)
+/* 802D2BBC 002CE81C 38 60 00 0C */ li r3, 0xc
+/* 802D2BC0 002CE820 38 80 00 00 */ li r4, 0
+/* 802D2BC4 002CE824 38 A0 00 00 */ li r5, 0
+/* 802D2BC8 002CE828 7D 89 03 A6 */ mtctr r12
+/* 802D2BCC 002CE82C 4E 80 04 21 */ bctrl
+/* 802D2BD0 002CE830 48 00 03 98 */ b lbl_802D2F68
+lbl_802D2BD4:
+/* 802D2BD4 002CE834 7F C3 F3 78 */ mr r3, r30
+/* 802D2BD8 002CE838 38 80 00 00 */ li r4, 0
+/* 802D2BDC 002CE83C 38 A0 00 74 */ li r5, 0x74
+/* 802D2BE0 002CE840 4B D3 15 25 */ bl memset
+/* 802D2BE4 002CE844 7F E3 FB 78 */ mr r3, r31
+/* 802D2BE8 002CE848 38 80 02 06 */ li r4, 0x206
+/* 802D2BEC 002CE84C 48 00 F6 35 */ bl func_802E2220
+/* 802D2BF0 002CE850 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2BF4 002CE854 41 82 00 58 */ beq lbl_802D2C4C
+/* 802D2BF8 002CE858 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802D2BFC 002CE85C 7C 00 66 70 */ srawi r0, r0, 0xc
+/* 802D2C00 002CE860 2C 00 00 06 */ cmpwi r0, 6
+/* 802D2C04 002CE864 40 82 00 48 */ bne lbl_802D2C4C
+/* 802D2C08 002CE868 80 63 00 08 */ lwz r3, 8(r3)
+/* 802D2C0C 002CE86C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2C10 002CE870 41 82 00 3C */ beq lbl_802D2C4C
+/* 802D2C14 002CE874 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802D2C18 002CE878 7C 00 66 70 */ srawi r0, r0, 0xc
+/* 802D2C1C 002CE87C 2C 00 00 06 */ cmpwi r0, 6
+/* 802D2C20 002CE880 40 82 00 2C */ bne lbl_802D2C4C
+/* 802D2C24 002CE884 80 63 00 08 */ lwz r3, 8(r3)
+/* 802D2C28 002CE888 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2C2C 002CE88C 41 82 00 20 */ beq lbl_802D2C4C
+/* 802D2C30 002CE890 80 83 00 00 */ lwz r4, 0(r3)
+/* 802D2C34 002CE894 2C 04 00 00 */ cmpwi r4, 0
+/* 802D2C38 002CE898 41 82 00 14 */ beq lbl_802D2C4C
+/* 802D2C3C 002CE89C A0 64 00 06 */ lhz r3, 6(r4)
+/* 802D2C40 002CE8A0 7C 60 66 70 */ srawi r0, r3, 0xc
+/* 802D2C44 002CE8A4 2C 00 00 04 */ cmpwi r0, 4
+/* 802D2C48 002CE8A8 41 82 00 28 */ beq lbl_802D2C70
+lbl_802D2C4C:
+/* 802D2C4C 002CE8AC 3C A0 80 57 */ lis r5, lbl_8056B838@ha
+/* 802D2C50 002CE8B0 38 60 00 0D */ li r3, 0xd
+/* 802D2C54 002CE8B4 38 A5 B8 38 */ addi r5, r5, lbl_8056B838@l
+/* 802D2C58 002CE8B8 38 80 00 00 */ li r4, 0
+/* 802D2C5C 002CE8BC 81 85 03 84 */ lwz r12, 0x384(r5)
+/* 802D2C60 002CE8C0 38 A0 00 00 */ li r5, 0
+/* 802D2C64 002CE8C4 7D 89 03 A6 */ mtctr r12
+/* 802D2C68 002CE8C8 4E 80 04 21 */ bctrl
+/* 802D2C6C 002CE8CC 48 00 02 FC */ b lbl_802D2F68
+lbl_802D2C70:
+/* 802D2C70 002CE8D0 54 60 05 3F */ clrlwi. r0, r3, 0x14
+/* 802D2C74 002CE8D4 B0 1E 00 68 */ sth r0, 0x68(r30)
+/* 802D2C78 002CE8D8 41 82 00 0C */ beq lbl_802D2C84
+/* 802D2C7C 002CE8DC 38 04 00 08 */ addi r0, r4, 8
+/* 802D2C80 002CE8E0 90 1E 00 6C */ stw r0, 0x6c(r30)
+lbl_802D2C84:
+/* 802D2C84 002CE8E4 7F E3 FB 78 */ mr r3, r31
+/* 802D2C88 002CE8E8 38 80 02 04 */ li r4, 0x204
+/* 802D2C8C 002CE8EC 48 00 F5 95 */ bl func_802E2220
+/* 802D2C90 002CE8F0 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2C94 002CE8F4 41 82 00 14 */ beq lbl_802D2CA8
+/* 802D2C98 002CE8F8 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2C9C 002CE8FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2CA0 002CE900 41 82 00 08 */ beq lbl_802D2CA8
+/* 802D2CA4 002CE904 63 BD 00 01 */ ori r29, r29, 1
+lbl_802D2CA8:
+/* 802D2CA8 002CE908 7F E3 FB 78 */ mr r3, r31
+/* 802D2CAC 002CE90C 38 80 02 05 */ li r4, 0x205
+/* 802D2CB0 002CE910 48 00 F5 71 */ bl func_802E2220
+/* 802D2CB4 002CE914 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2CB8 002CE918 41 82 00 18 */ beq lbl_802D2CD0
+/* 802D2CBC 002CE91C 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2CC0 002CE920 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2CC4 002CE924 41 82 00 0C */ beq lbl_802D2CD0
+/* 802D2CC8 002CE928 63 A0 00 04 */ ori r0, r29, 4
+/* 802D2CCC 002CE92C 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_802D2CD0:
+/* 802D2CD0 002CE930 7F E3 FB 78 */ mr r3, r31
+/* 802D2CD4 002CE934 38 80 02 0D */ li r4, 0x20d
+/* 802D2CD8 002CE938 48 00 F5 49 */ bl func_802E2220
+/* 802D2CDC 002CE93C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2CE0 002CE940 41 82 00 18 */ beq lbl_802D2CF8
+/* 802D2CE4 002CE944 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2CE8 002CE948 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2CEC 002CE94C 41 82 00 0C */ beq lbl_802D2CF8
+/* 802D2CF0 002CE950 63 A0 00 02 */ ori r0, r29, 2
+/* 802D2CF4 002CE954 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_802D2CF8:
+/* 802D2CF8 002CE958 7F E3 FB 78 */ mr r3, r31
+/* 802D2CFC 002CE95C 38 80 02 08 */ li r4, 0x208
+/* 802D2D00 002CE960 48 00 F5 21 */ bl func_802E2220
+/* 802D2D04 002CE964 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2D08 002CE968 41 82 00 18 */ beq lbl_802D2D20
+/* 802D2D0C 002CE96C 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2D10 002CE970 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2D14 002CE974 41 82 00 0C */ beq lbl_802D2D20
+/* 802D2D18 002CE978 63 A0 00 08 */ ori r0, r29, 8
+/* 802D2D1C 002CE97C 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_802D2D20:
+/* 802D2D20 002CE980 7F E3 FB 78 */ mr r3, r31
+/* 802D2D24 002CE984 38 80 02 09 */ li r4, 0x209
+/* 802D2D28 002CE988 48 00 F4 F9 */ bl func_802E2220
+/* 802D2D2C 002CE98C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2D30 002CE990 41 82 00 18 */ beq lbl_802D2D48
+/* 802D2D34 002CE994 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2D38 002CE998 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2D3C 002CE99C 41 82 00 0C */ beq lbl_802D2D48
+/* 802D2D40 002CE9A0 63 A0 00 10 */ ori r0, r29, 0x10
+/* 802D2D44 002CE9A4 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_802D2D48:
+/* 802D2D48 002CE9A8 7F E3 FB 78 */ mr r3, r31
+/* 802D2D4C 002CE9AC 38 80 02 0A */ li r4, 0x20a
+/* 802D2D50 002CE9B0 48 00 F4 D1 */ bl func_802E2220
+/* 802D2D54 002CE9B4 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2D58 002CE9B8 41 82 00 18 */ beq lbl_802D2D70
+/* 802D2D5C 002CE9BC 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2D60 002CE9C0 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2D64 002CE9C4 41 82 00 0C */ beq lbl_802D2D70
+/* 802D2D68 002CE9C8 63 A0 00 20 */ ori r0, r29, 0x20
+/* 802D2D6C 002CE9CC 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_802D2D70:
+/* 802D2D70 002CE9D0 7F E3 FB 78 */ mr r3, r31
+/* 802D2D74 002CE9D4 38 80 01 00 */ li r4, 0x100
+/* 802D2D78 002CE9D8 48 00 F4 A9 */ bl func_802E2220
+/* 802D2D7C 002CE9DC 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2D80 002CE9E0 7C 64 1B 78 */ mr r4, r3
+/* 802D2D84 002CE9E4 41 82 00 4C */ beq lbl_802D2DD0
+/* 802D2D88 002CE9E8 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802D2D8C 002CE9EC 54 1C 05 3E */ clrlwi r28, r0, 0x14
+/* 802D2D90 002CE9F0 28 1C 00 20 */ cmplwi r28, 0x20
+/* 802D2D94 002CE9F4 40 80 00 20 */ bge lbl_802D2DB4
+/* 802D2D98 002CE9F8 7F C3 F3 78 */ mr r3, r30
+/* 802D2D9C 002CE9FC 7F 85 E3 78 */ mr r5, r28
+/* 802D2DA0 002CEA00 38 84 00 08 */ addi r4, r4, 8
+/* 802D2DA4 002CEA04 4B D3 12 5D */ bl memcpy
+/* 802D2DA8 002CEA08 38 00 00 00 */ li r0, 0
+/* 802D2DAC 002CEA0C 7C 1E E1 AE */ stbx r0, r30, r28
+/* 802D2DB0 002CEA10 48 00 00 28 */ b lbl_802D2DD8
+lbl_802D2DB4:
+/* 802D2DB4 002CEA14 7F C3 F3 78 */ mr r3, r30
+/* 802D2DB8 002CEA18 38 84 00 08 */ addi r4, r4, 8
+/* 802D2DBC 002CEA1C 38 A0 00 1F */ li r5, 0x1f
+/* 802D2DC0 002CEA20 4B D3 12 41 */ bl memcpy
+/* 802D2DC4 002CEA24 38 00 00 00 */ li r0, 0
+/* 802D2DC8 002CEA28 98 1E 00 20 */ stb r0, 0x20(r30)
+/* 802D2DCC 002CEA2C 48 00 00 0C */ b lbl_802D2DD8
+lbl_802D2DD0:
+/* 802D2DD0 002CEA30 38 00 00 00 */ li r0, 0
+/* 802D2DD4 002CEA34 98 1E 00 00 */ stb r0, 0(r30)
+lbl_802D2DD8:
+/* 802D2DD8 002CEA38 7F E3 FB 78 */ mr r3, r31
+/* 802D2DDC 002CEA3C 38 80 01 01 */ li r4, 0x101
+/* 802D2DE0 002CEA40 48 00 F4 41 */ bl func_802E2220
+/* 802D2DE4 002CEA44 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2DE8 002CEA48 7C 64 1B 78 */ mr r4, r3
+/* 802D2DEC 002CEA4C 41 82 00 50 */ beq lbl_802D2E3C
+/* 802D2DF0 002CEA50 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802D2DF4 002CEA54 54 1C 05 3E */ clrlwi r28, r0, 0x14
+/* 802D2DF8 002CEA58 28 1C 00 20 */ cmplwi r28, 0x20
+/* 802D2DFC 002CEA5C 40 80 00 24 */ bge lbl_802D2E20
+/* 802D2E00 002CEA60 7F 85 E3 78 */ mr r5, r28
+/* 802D2E04 002CEA64 38 7E 00 20 */ addi r3, r30, 0x20
+/* 802D2E08 002CEA68 38 84 00 08 */ addi r4, r4, 8
+/* 802D2E0C 002CEA6C 4B D3 11 F5 */ bl memcpy
+/* 802D2E10 002CEA70 7C 7E E2 14 */ add r3, r30, r28
+/* 802D2E14 002CEA74 38 00 00 00 */ li r0, 0
+/* 802D2E18 002CEA78 98 03 00 20 */ stb r0, 0x20(r3)
+/* 802D2E1C 002CEA7C 48 00 00 28 */ b lbl_802D2E44
+lbl_802D2E20:
+/* 802D2E20 002CEA80 38 7E 00 20 */ addi r3, r30, 0x20
+/* 802D2E24 002CEA84 38 84 00 08 */ addi r4, r4, 8
+/* 802D2E28 002CEA88 38 A0 00 1F */ li r5, 0x1f
+/* 802D2E2C 002CEA8C 4B D3 11 D5 */ bl memcpy
+/* 802D2E30 002CEA90 38 00 00 00 */ li r0, 0
+/* 802D2E34 002CEA94 98 1E 00 40 */ stb r0, 0x40(r30)
+/* 802D2E38 002CEA98 48 00 00 0C */ b lbl_802D2E44
+lbl_802D2E3C:
+/* 802D2E3C 002CEA9C 38 00 00 00 */ li r0, 0
+/* 802D2E40 002CEAA0 98 1E 00 20 */ stb r0, 0x20(r30)
+lbl_802D2E44:
+/* 802D2E44 002CEAA4 7F E3 FB 78 */ mr r3, r31
+/* 802D2E48 002CEAA8 38 80 01 02 */ li r4, 0x102
+/* 802D2E4C 002CEAAC 48 00 F3 D5 */ bl func_802E2220
+/* 802D2E50 002CEAB0 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2E54 002CEAB4 7C 64 1B 78 */ mr r4, r3
+/* 802D2E58 002CEAB8 41 82 00 50 */ beq lbl_802D2EA8
+/* 802D2E5C 002CEABC A0 03 00 06 */ lhz r0, 6(r3)
+/* 802D2E60 002CEAC0 54 1C 05 3E */ clrlwi r28, r0, 0x14
+/* 802D2E64 002CEAC4 28 1C 00 20 */ cmplwi r28, 0x20
+/* 802D2E68 002CEAC8 40 80 00 24 */ bge lbl_802D2E8C
+/* 802D2E6C 002CEACC 7F 85 E3 78 */ mr r5, r28
+/* 802D2E70 002CEAD0 38 7E 00 40 */ addi r3, r30, 0x40
+/* 802D2E74 002CEAD4 38 84 00 08 */ addi r4, r4, 8
+/* 802D2E78 002CEAD8 4B D3 11 89 */ bl memcpy
+/* 802D2E7C 002CEADC 7C 7E E2 14 */ add r3, r30, r28
+/* 802D2E80 002CEAE0 38 00 00 00 */ li r0, 0
+/* 802D2E84 002CEAE4 98 03 00 40 */ stb r0, 0x40(r3)
+/* 802D2E88 002CEAE8 48 00 00 28 */ b lbl_802D2EB0
+lbl_802D2E8C:
+/* 802D2E8C 002CEAEC 38 7E 00 40 */ addi r3, r30, 0x40
+/* 802D2E90 002CEAF0 38 84 00 08 */ addi r4, r4, 8
+/* 802D2E94 002CEAF4 38 A0 00 1F */ li r5, 0x1f
+/* 802D2E98 002CEAF8 4B D3 11 69 */ bl memcpy
+/* 802D2E9C 002CEAFC 38 00 00 00 */ li r0, 0
+/* 802D2EA0 002CEB00 98 1E 00 60 */ stb r0, 0x60(r30)
+/* 802D2EA4 002CEB04 48 00 00 0C */ b lbl_802D2EB0
+lbl_802D2EA8:
+/* 802D2EA8 002CEB08 38 00 00 00 */ li r0, 0
+/* 802D2EAC 002CEB0C 98 1E 00 40 */ stb r0, 0x40(r30)
+lbl_802D2EB0:
+/* 802D2EB0 002CEB10 7F E3 FB 78 */ mr r3, r31
+/* 802D2EB4 002CEB14 38 80 02 00 */ li r4, 0x200
+/* 802D2EB8 002CEB18 48 00 F3 69 */ bl func_802E2220
+/* 802D2EBC 002CEB1C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2EC0 002CEB20 41 82 00 0C */ beq lbl_802D2ECC
+/* 802D2EC4 002CEB24 A0 03 00 08 */ lhz r0, 8(r3)
+/* 802D2EC8 002CEB28 B0 1E 00 60 */ sth r0, 0x60(r30)
+lbl_802D2ECC:
+/* 802D2ECC 002CEB2C 7F E3 FB 78 */ mr r3, r31
+/* 802D2ED0 002CEB30 38 80 02 03 */ li r4, 0x203
+/* 802D2ED4 002CEB34 48 00 F3 4D */ bl func_802E2220
+/* 802D2ED8 002CEB38 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2EDC 002CEB3C 41 82 00 0C */ beq lbl_802D2EE8
+/* 802D2EE0 002CEB40 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2EE4 002CEB44 98 1E 00 65 */ stb r0, 0x65(r30)
+lbl_802D2EE8:
+/* 802D2EE8 002CEB48 7F E3 FB 78 */ mr r3, r31
+/* 802D2EEC 002CEB4C 38 80 02 02 */ li r4, 0x202
+/* 802D2EF0 002CEB50 48 00 F3 31 */ bl func_802E2220
+/* 802D2EF4 002CEB54 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2EF8 002CEB58 41 82 00 0C */ beq lbl_802D2F04
+/* 802D2EFC 002CEB5C 88 03 00 08 */ lbz r0, 8(r3)
+/* 802D2F00 002CEB60 98 1E 00 64 */ stb r0, 0x64(r30)
+lbl_802D2F04:
+/* 802D2F04 002CEB64 7F E3 FB 78 */ mr r3, r31
+/* 802D2F08 002CEB68 38 80 02 01 */ li r4, 0x201
+/* 802D2F0C 002CEB6C 48 00 F3 15 */ bl func_802E2220
+/* 802D2F10 002CEB70 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2F14 002CEB74 41 82 00 0C */ beq lbl_802D2F20
+/* 802D2F18 002CEB78 A0 03 00 08 */ lhz r0, 8(r3)
+/* 802D2F1C 002CEB7C B0 1E 00 62 */ sth r0, 0x62(r30)
+lbl_802D2F20:
+/* 802D2F20 002CEB80 7F E3 FB 78 */ mr r3, r31
+/* 802D2F24 002CEB84 38 80 02 0C */ li r4, 0x20c
+/* 802D2F28 002CEB88 48 00 F2 F9 */ bl func_802E2220
+/* 802D2F2C 002CEB8C 2C 03 00 00 */ cmpwi r3, 0
+/* 802D2F30 002CEB90 41 82 00 14 */ beq lbl_802D2F44
+/* 802D2F34 002CEB94 A0 03 00 08 */ lhz r0, 8(r3)
+/* 802D2F38 002CEB98 63 A3 00 40 */ ori r3, r29, 0x40
+/* 802D2F3C 002CEB9C 54 7D 04 3E */ clrlwi r29, r3, 0x10
+/* 802D2F40 002CEBA0 B0 1E 00 66 */ sth r0, 0x66(r30)
+lbl_802D2F44:
+/* 802D2F44 002CEBA4 3C C0 80 57 */ lis r6, lbl_8056B838@ha
+/* 802D2F48 002CEBA8 57 A4 04 3E */ clrlwi r4, r29, 0x10
+/* 802D2F4C 002CEBAC 38 C6 B8 38 */ addi r6, r6, lbl_8056B838@l
+/* 802D2F50 002CEBB0 38 60 00 00 */ li r3, 0
+/* 802D2F54 002CEBB4 81 86 03 84 */ lwz r12, 0x384(r6)
+/* 802D2F58 002CEBB8 38 A6 03 8C */ addi r5, r6, 0x38c
+/* 802D2F5C 002CEBBC 93 E6 03 FC */ stw r31, 0x3fc(r6)
+/* 802D2F60 002CEBC0 7D 89 03 A6 */ mtctr r12
+/* 802D2F64 002CEBC4 4E 80 04 21 */ bctrl
+lbl_802D2F68:
+/* 802D2F68 002CEBC8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D2F6C 002CEBCC 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 802D2F70 002CEBD0 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 802D2F74 002CEBD4 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 802D2F78 002CEBD8 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 802D2F7C 002CEBDC 7C 08 03 A6 */ mtlr r0
+/* 802D2F80 002CEBE0 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D2F84 002CEBE4 4E 80 00 20 */ blr
+
+.global HID_HostInit
+HID_HostInit:
+/* 802D2F88 002CEBE8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D2F8C 002CEBEC 7C 08 02 A6 */ mflr r0
+/* 802D2F90 002CEBF0 38 80 00 00 */ li r4, 0
+/* 802D2F94 002CEBF4 38 A0 04 04 */ li r5, 0x404
+/* 802D2F98 002CEBF8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D2F9C 002CEBFC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D2FA0 002CEC00 3F E0 80 57 */ lis r31, lbl_8056B838@ha
+/* 802D2FA4 002CEC04 38 7F B8 38 */ addi r3, r31, lbl_8056B838@l
+/* 802D2FA8 002CEC08 4B D3 11 5D */ bl memset
+/* 802D2FAC 002CEC0C 38 7F B8 38 */ addi r3, r31, -18376
+/* 802D2FB0 002CEC10 38 00 00 00 */ li r0, 0
+/* 802D2FB4 002CEC14 98 03 04 01 */ stb r0, 0x401(r3)
+/* 802D2FB8 002CEC18 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D2FBC 002CEC1C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D2FC0 002CEC20 7C 08 03 A6 */ mtlr r0
+/* 802D2FC4 002CEC24 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D2FC8 002CEC28 4E 80 00 20 */ blr
+
+.global HID_HostRegister
+HID_HostRegister:
+/* 802D2FCC 002CEC2C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802D2FD0 002CEC30 7C 08 02 A6 */ mflr r0
+/* 802D2FD4 002CEC34 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802D2FD8 002CEC38 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802D2FDC 002CEC3C 3F E0 80 57 */ lis r31, lbl_8056B838@ha
+/* 802D2FE0 002CEC40 3B FF B8 38 */ addi r31, r31, lbl_8056B838@l
+/* 802D2FE4 002CEC44 93 C1 00 08 */ stw r30, 8(r1)
+/* 802D2FE8 002CEC48 7C 7E 1B 78 */ mr r30, r3
+/* 802D2FEC 002CEC4C 88 1F 04 00 */ lbz r0, 0x400(r31)
+/* 802D2FF0 002CEC50 2C 00 00 00 */ cmpwi r0, 0
+/* 802D2FF4 002CEC54 41 82 00 0C */ beq lbl_802D3000
+/* 802D2FF8 002CEC58 38 60 00 02 */ li r3, 2
+/* 802D2FFC 002CEC5C 48 00 00 34 */ b lbl_802D3030
+lbl_802D3000:
+/* 802D3000 002CEC60 2C 03 00 00 */ cmpwi r3, 0
+/* 802D3004 002CEC64 40 82 00 0C */ bne lbl_802D3010
+/* 802D3008 002CEC68 38 60 00 05 */ li r3, 5
+/* 802D300C 002CEC6C 48 00 00 24 */ b lbl_802D3030
+lbl_802D3010:
+/* 802D3010 002CEC70 48 00 07 E1 */ bl func_802D37F0
+/* 802D3014 002CEC74 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D3018 002CEC78 41 82 00 08 */ beq lbl_802D3020
+/* 802D301C 002CEC7C 48 00 00 14 */ b lbl_802D3030
+lbl_802D3020:
+/* 802D3020 002CEC80 38 00 00 01 */ li r0, 1
+/* 802D3024 002CEC84 93 DF 03 40 */ stw r30, 0x340(r31)
+/* 802D3028 002CEC88 38 60 00 00 */ li r3, 0
+/* 802D302C 002CEC8C 98 1F 04 00 */ stb r0, 0x400(r31)
+lbl_802D3030:
+/* 802D3030 002CEC90 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802D3034 002CEC94 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802D3038 002CEC98 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802D303C 002CEC9C 7C 08 03 A6 */ mtlr r0
+/* 802D3040 002CECA0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802D3044 002CECA4 4E 80 00 20 */ blr
+
+.global HID_HostDeregister
+HID_HostDeregister:
+/* 802D3048 002CECA8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D304C 002CECAC 7C 08 02 A6 */ mflr r0
+/* 802D3050 002CECB0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D3054 002CECB4 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D3058 002CECB8 4B EF 40 D1 */ bl _savegpr_27
+/* 802D305C 002CECBC 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D3060 002CECC0 3B A3 B8 38 */ addi r29, r3, lbl_8056B838@l
+/* 802D3064 002CECC4 88 1D 04 00 */ lbz r0, 0x400(r29)
+/* 802D3068 002CECC8 2C 00 00 00 */ cmpwi r0, 0
+/* 802D306C 002CECCC 40 82 00 0C */ bne lbl_802D3078
+/* 802D3070 002CECD0 38 60 00 01 */ li r3, 1
+/* 802D3074 002CECD4 48 00 00 A0 */ b lbl_802D3114
+lbl_802D3078:
+/* 802D3078 002CECD8 3B 60 00 00 */ li r27, 0
+/* 802D307C 002CECDC 3B C0 00 01 */ li r30, 1
+/* 802D3080 002CECE0 3B E0 00 00 */ li r31, 0
+lbl_802D3084:
+/* 802D3084 002CECE4 88 1D 04 00 */ lbz r0, 0x400(r29)
+/* 802D3088 002CECE8 2F 00 00 00 */ cmpwi cr6, r0, 0
+/* 802D308C 002CECEC 41 9A 00 64 */ beq cr6, lbl_802D30F0
+/* 802D3090 002CECF0 57 60 06 3E */ clrlwi r0, r27, 0x18
+/* 802D3094 002CECF4 28 80 00 10 */ cmplwi cr1, r0, 0x10
+/* 802D3098 002CECF8 41 85 00 58 */ bgt cr1, lbl_802D30F0
+/* 802D309C 002CECFC 1C 00 00 34 */ mulli r0, r0, 0x34
+/* 802D30A0 002CED00 7F 9D 02 14 */ add r28, r29, r0
+/* 802D30A4 002CED04 7C 1D 00 AE */ lbzx r0, r29, r0
+/* 802D30A8 002CED08 2C 00 00 00 */ cmpwi r0, 0
+/* 802D30AC 002CED0C 41 82 00 44 */ beq lbl_802D30F0
+/* 802D30B0 002CED10 41 9A 00 30 */ beq cr6, lbl_802D30E0
+/* 802D30B4 002CED14 41 85 00 2C */ bgt cr1, lbl_802D30E0
+/* 802D30B8 002CED18 41 82 00 28 */ beq lbl_802D30E0
+/* 802D30BC 002CED1C 9B DC 00 0C */ stb r30, 0xc(r28)
+/* 802D30C0 002CED20 38 7C 00 1C */ addi r3, r28, 0x1c
+/* 802D30C4 002CED24 4B FE A4 89 */ bl btu_stop_timer
+/* 802D30C8 002CED28 88 1C 00 0A */ lbz r0, 0xa(r28)
+/* 802D30CC 002CED2C 28 00 00 01 */ cmplwi r0, 1
+/* 802D30D0 002CED30 40 82 00 10 */ bne lbl_802D30E0
+/* 802D30D4 002CED34 9B DC 00 0C */ stb r30, 0xc(r28)
+/* 802D30D8 002CED38 57 63 06 3E */ clrlwi r3, r27, 0x18
+/* 802D30DC 002CED3C 48 00 08 6D */ bl func_802D3948
+lbl_802D30E0:
+/* 802D30E0 002CED40 9B FC 00 00 */ stb r31, 0(r28)
+/* 802D30E4 002CED44 9B FC 00 10 */ stb r31, 0x10(r28)
+/* 802D30E8 002CED48 B3 FC 00 16 */ sth r31, 0x16(r28)
+/* 802D30EC 002CED4C B3 FC 00 14 */ sth r31, 0x14(r28)
+lbl_802D30F0:
+/* 802D30F0 002CED50 3B 7B 00 01 */ addi r27, r27, 1
+/* 802D30F4 002CED54 28 1B 00 10 */ cmplwi r27, 0x10
+/* 802D30F8 002CED58 41 80 FF 8C */ blt lbl_802D3084
+/* 802D30FC 002CED5C 48 00 27 09 */ bl func_802D5804
+/* 802D3100 002CED60 3C 80 80 57 */ lis r4, lbl_8056B838@ha
+/* 802D3104 002CED64 38 00 00 00 */ li r0, 0
+/* 802D3108 002CED68 38 84 B8 38 */ addi r4, r4, lbl_8056B838@l
+/* 802D310C 002CED6C 38 60 00 00 */ li r3, 0
+/* 802D3110 002CED70 98 04 04 00 */ stb r0, 0x400(r4)
+lbl_802D3114:
+/* 802D3114 002CED74 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D3118 002CED78 4B EF 40 5D */ bl _restgpr_27
+/* 802D311C 002CED7C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D3120 002CED80 7C 08 03 A6 */ mtlr r0
+/* 802D3124 002CED84 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D3128 002CED88 4E 80 00 20 */ blr
+
+.global HID_HostAddDev
+HID_HostAddDev:
+/* 802D312C 002CED8C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D3130 002CED90 7C 08 02 A6 */ mflr r0
+/* 802D3134 002CED94 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D3138 002CED98 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D313C 002CED9C 4B EF 3F E9 */ bl _savegpr_26
+/* 802D3140 002CEDA0 3F E0 80 57 */ lis r31, lbl_8056B838@ha
+/* 802D3144 002CEDA4 7C 7A 1B 78 */ mr r26, r3
+/* 802D3148 002CEDA8 3B FF B8 38 */ addi r31, r31, lbl_8056B838@l
+/* 802D314C 002CEDAC 7C 9B 23 78 */ mr r27, r4
+/* 802D3150 002CEDB0 88 1F 04 00 */ lbz r0, 0x400(r31)
+/* 802D3154 002CEDB4 7C BC 2B 78 */ mr r28, r5
+/* 802D3158 002CEDB8 2C 00 00 00 */ cmpwi r0, 0
+/* 802D315C 002CEDBC 40 82 00 0C */ bne lbl_802D3168
+/* 802D3160 002CEDC0 38 60 00 01 */ li r3, 1
+/* 802D3164 002CEDC4 48 00 01 40 */ b lbl_802D32A4
+lbl_802D3168:
+/* 802D3168 002CEDC8 3B A0 00 00 */ li r29, 0
+lbl_802D316C:
+/* 802D316C 002CEDCC 7F 43 D3 78 */ mr r3, r26
+/* 802D3170 002CEDD0 38 9F 00 01 */ addi r4, r31, 1
+/* 802D3174 002CEDD4 38 A0 00 06 */ li r5, 6
+/* 802D3178 002CEDD8 4B EF 72 21 */ bl memcmp
+/* 802D317C 002CEDDC 2C 03 00 00 */ cmpwi r3, 0
+/* 802D3180 002CEDE0 41 82 00 14 */ beq lbl_802D3194
+/* 802D3184 002CEDE4 3B BD 00 01 */ addi r29, r29, 1
+/* 802D3188 002CEDE8 3B FF 00 34 */ addi r31, r31, 0x34
+/* 802D318C 002CEDEC 2C 1D 00 10 */ cmpwi r29, 0x10
+/* 802D3190 002CEDF0 41 80 FF DC */ blt lbl_802D316C
+lbl_802D3194:
+/* 802D3194 002CEDF4 2C 1D 00 10 */ cmpwi r29, 0x10
+/* 802D3198 002CEDF8 40 82 00 A0 */ bne lbl_802D3238
+/* 802D319C 002CEDFC 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D31A0 002CEE00 38 00 00 02 */ li r0, 2
+/* 802D31A4 002CEE04 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D31A8 002CEE08 3B A0 00 00 */ li r29, 0
+/* 802D31AC 002CEE0C 7C 09 03 A6 */ mtctr r0
+lbl_802D31B0:
+/* 802D31B0 002CEE10 88 03 00 00 */ lbz r0, 0(r3)
+/* 802D31B4 002CEE14 2C 00 00 00 */ cmpwi r0, 0
+/* 802D31B8 002CEE18 41 82 00 80 */ beq lbl_802D3238
+/* 802D31BC 002CEE1C 88 03 00 34 */ lbz r0, 0x34(r3)
+/* 802D31C0 002CEE20 3B BD 00 01 */ addi r29, r29, 1
+/* 802D31C4 002CEE24 2C 00 00 00 */ cmpwi r0, 0
+/* 802D31C8 002CEE28 41 82 00 70 */ beq lbl_802D3238
+/* 802D31CC 002CEE2C 88 03 00 68 */ lbz r0, 0x68(r3)
+/* 802D31D0 002CEE30 3B BD 00 01 */ addi r29, r29, 1
+/* 802D31D4 002CEE34 2C 00 00 00 */ cmpwi r0, 0
+/* 802D31D8 002CEE38 41 82 00 60 */ beq lbl_802D3238
+/* 802D31DC 002CEE3C 88 03 00 9C */ lbz r0, 0x9c(r3)
+/* 802D31E0 002CEE40 3B BD 00 01 */ addi r29, r29, 1
+/* 802D31E4 002CEE44 2C 00 00 00 */ cmpwi r0, 0
+/* 802D31E8 002CEE48 41 82 00 50 */ beq lbl_802D3238
+/* 802D31EC 002CEE4C 88 03 00 D0 */ lbz r0, 0xd0(r3)
+/* 802D31F0 002CEE50 3B BD 00 01 */ addi r29, r29, 1
+/* 802D31F4 002CEE54 2C 00 00 00 */ cmpwi r0, 0
+/* 802D31F8 002CEE58 41 82 00 40 */ beq lbl_802D3238
+/* 802D31FC 002CEE5C 88 03 01 04 */ lbz r0, 0x104(r3)
+/* 802D3200 002CEE60 3B BD 00 01 */ addi r29, r29, 1
+/* 802D3204 002CEE64 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3208 002CEE68 41 82 00 30 */ beq lbl_802D3238
+/* 802D320C 002CEE6C 88 03 01 38 */ lbz r0, 0x138(r3)
+/* 802D3210 002CEE70 3B BD 00 01 */ addi r29, r29, 1
+/* 802D3214 002CEE74 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3218 002CEE78 41 82 00 20 */ beq lbl_802D3238
+/* 802D321C 002CEE7C 88 03 01 6C */ lbz r0, 0x16c(r3)
+/* 802D3220 002CEE80 3B BD 00 01 */ addi r29, r29, 1
+/* 802D3224 002CEE84 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3228 002CEE88 41 82 00 10 */ beq lbl_802D3238
+/* 802D322C 002CEE8C 38 63 01 A0 */ addi r3, r3, 0x1a0
+/* 802D3230 002CEE90 3B BD 00 01 */ addi r29, r29, 1
+/* 802D3234 002CEE94 42 00 FF 7C */ bdnz lbl_802D31B0
+lbl_802D3238:
+/* 802D3238 002CEE98 2C 1D 00 10 */ cmpwi r29, 0x10
+/* 802D323C 002CEE9C 40 82 00 0C */ bne lbl_802D3248
+/* 802D3240 002CEEA0 38 60 00 03 */ li r3, 3
+/* 802D3244 002CEEA4 48 00 00 60 */ b lbl_802D32A4
+lbl_802D3248:
+/* 802D3248 002CEEA8 1F DD 00 34 */ mulli r30, r29, 0x34
+/* 802D324C 002CEEAC 3F E0 80 57 */ lis r31, lbl_8056B838@ha
+/* 802D3250 002CEEB0 3B FF B8 38 */ addi r31, r31, lbl_8056B838@l
+/* 802D3254 002CEEB4 7C 1F F0 AE */ lbzx r0, r31, r30
+/* 802D3258 002CEEB8 2C 00 00 00 */ cmpwi r0, 0
+/* 802D325C 002CEEBC 40 82 00 30 */ bne lbl_802D328C
+/* 802D3260 002CEEC0 38 00 00 01 */ li r0, 1
+/* 802D3264 002CEEC4 7C 7F F2 14 */ add r3, r31, r30
+/* 802D3268 002CEEC8 7C 1F F1 AE */ stbx r0, r31, r30
+/* 802D326C 002CEECC 7F 44 D3 78 */ mr r4, r26
+/* 802D3270 002CEED0 38 63 00 01 */ addi r3, r3, 1
+/* 802D3274 002CEED4 38 A0 00 06 */ li r5, 6
+/* 802D3278 002CEED8 4B D3 0D 89 */ bl memcpy
+/* 802D327C 002CEEDC 7C 7F F2 14 */ add r3, r31, r30
+/* 802D3280 002CEEE0 38 00 00 00 */ li r0, 0
+/* 802D3284 002CEEE4 98 03 00 0A */ stb r0, 0xa(r3)
+/* 802D3288 002CEEE8 98 03 00 0C */ stb r0, 0xc(r3)
+lbl_802D328C:
+/* 802D328C 002CEEEC 3C 80 80 57 */ lis r4, lbl_8056B838@ha
+/* 802D3290 002CEEF0 38 60 00 00 */ li r3, 0
+/* 802D3294 002CEEF4 38 84 B8 38 */ addi r4, r4, lbl_8056B838@l
+/* 802D3298 002CEEF8 7C 84 F2 14 */ add r4, r4, r30
+/* 802D329C 002CEEFC B3 64 00 08 */ sth r27, 8(r4)
+/* 802D32A0 002CEF00 9B BC 00 00 */ stb r29, 0(r28)
+lbl_802D32A4:
+/* 802D32A4 002CEF04 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D32A8 002CEF08 4B EF 3E C9 */ bl _restgpr_26
+/* 802D32AC 002CEF0C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D32B0 002CEF10 7C 08 03 A6 */ mtlr r0
+/* 802D32B4 002CEF14 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D32B8 002CEF18 4E 80 00 20 */ blr
+
+.global HID_HostRemoveDev
+HID_HostRemoveDev:
+/* 802D32BC 002CEF1C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D32C0 002CEF20 7C 08 02 A6 */ mflr r0
+/* 802D32C4 002CEF24 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D32C8 002CEF28 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D32CC 002CEF2C 4B EF 3E 5D */ bl _savegpr_27
+/* 802D32D0 002CEF30 3F C0 80 57 */ lis r30, lbl_8056B838@ha
+/* 802D32D4 002CEF34 7C 7B 1B 78 */ mr r27, r3
+/* 802D32D8 002CEF38 3B DE B8 38 */ addi r30, r30, lbl_8056B838@l
+/* 802D32DC 002CEF3C 88 1E 04 00 */ lbz r0, 0x400(r30)
+/* 802D32E0 002CEF40 2F 00 00 00 */ cmpwi cr6, r0, 0
+/* 802D32E4 002CEF44 40 9A 00 0C */ bne cr6, lbl_802D32F0
+/* 802D32E8 002CEF48 38 60 00 01 */ li r3, 1
+/* 802D32EC 002CEF4C 48 00 00 80 */ b lbl_802D336C
+lbl_802D32F0:
+/* 802D32F0 002CEF50 28 83 00 10 */ cmplwi cr1, r3, 0x10
+/* 802D32F4 002CEF54 41 85 00 18 */ bgt cr1, lbl_802D330C
+/* 802D32F8 002CEF58 1F 83 00 34 */ mulli r28, r3, 0x34
+/* 802D32FC 002CEF5C 7C 1E E0 AE */ lbzx r0, r30, r28
+/* 802D3300 002CEF60 7F BE E2 14 */ add r29, r30, r28
+/* 802D3304 002CEF64 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3308 002CEF68 40 82 00 0C */ bne lbl_802D3314
+lbl_802D330C:
+/* 802D330C 002CEF6C 38 60 00 05 */ li r3, 5
+/* 802D3310 002CEF70 48 00 00 5C */ b lbl_802D336C
+lbl_802D3314:
+/* 802D3314 002CEF74 41 9A 00 34 */ beq cr6, lbl_802D3348
+/* 802D3318 002CEF78 41 85 00 30 */ bgt cr1, lbl_802D3348
+/* 802D331C 002CEF7C 41 82 00 2C */ beq lbl_802D3348
+/* 802D3320 002CEF80 3B E0 00 01 */ li r31, 1
+/* 802D3324 002CEF84 38 7D 00 1C */ addi r3, r29, 0x1c
+/* 802D3328 002CEF88 9B FD 00 0C */ stb r31, 0xc(r29)
+/* 802D332C 002CEF8C 4B FE A2 21 */ bl btu_stop_timer
+/* 802D3330 002CEF90 88 1D 00 0A */ lbz r0, 0xa(r29)
+/* 802D3334 002CEF94 28 00 00 01 */ cmplwi r0, 1
+/* 802D3338 002CEF98 40 82 00 10 */ bne lbl_802D3348
+/* 802D333C 002CEF9C 9B FD 00 0C */ stb r31, 0xc(r29)
+/* 802D3340 002CEFA0 7F 63 DB 78 */ mr r3, r27
+/* 802D3344 002CEFA4 48 00 06 05 */ bl func_802D3948
+lbl_802D3348:
+/* 802D3348 002CEFA8 38 00 00 00 */ li r0, 0
+/* 802D334C 002CEFAC 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D3350 002CEFB0 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D3354 002CEFB4 98 1D 00 00 */ stb r0, 0(r29)
+/* 802D3358 002CEFB8 7C 83 E2 14 */ add r4, r3, r28
+/* 802D335C 002CEFBC 98 04 00 10 */ stb r0, 0x10(r4)
+/* 802D3360 002CEFC0 38 60 00 00 */ li r3, 0
+/* 802D3364 002CEFC4 B0 04 00 16 */ sth r0, 0x16(r4)
+/* 802D3368 002CEFC8 B0 04 00 14 */ sth r0, 0x14(r4)
+lbl_802D336C:
+/* 802D336C 002CEFCC 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D3370 002CEFD0 4B EF 3E 05 */ bl _restgpr_27
+/* 802D3374 002CEFD4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D3378 002CEFD8 7C 08 03 A6 */ mtlr r0
+/* 802D337C 002CEFDC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D3380 002CEFE0 4E 80 00 20 */ blr
+
+.global HID_HostOpenDev
+HID_HostOpenDev:
+/* 802D3384 002CEFE4 3C 80 80 57 */ lis r4, lbl_8056B838@ha
+/* 802D3388 002CEFE8 38 84 B8 38 */ addi r4, r4, lbl_8056B838@l
+/* 802D338C 002CEFEC 88 04 04 00 */ lbz r0, 0x400(r4)
+/* 802D3390 002CEFF0 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3394 002CEFF4 40 82 00 0C */ bne lbl_802D33A0
+/* 802D3398 002CEFF8 38 60 00 01 */ li r3, 1
+/* 802D339C 002CEFFC 4E 80 00 20 */ blr
+lbl_802D33A0:
+/* 802D33A0 002CF000 28 03 00 10 */ cmplwi r3, 0x10
+/* 802D33A4 002CF004 41 81 00 14 */ bgt lbl_802D33B8
+/* 802D33A8 002CF008 1C A3 00 34 */ mulli r5, r3, 0x34
+/* 802D33AC 002CF00C 7C 04 28 AE */ lbzx r0, r4, r5
+/* 802D33B0 002CF010 2C 00 00 00 */ cmpwi r0, 0
+/* 802D33B4 002CF014 40 82 00 0C */ bne lbl_802D33C0
+lbl_802D33B8:
+/* 802D33B8 002CF018 38 60 00 05 */ li r3, 5
+/* 802D33BC 002CF01C 4E 80 00 20 */ blr
+lbl_802D33C0:
+/* 802D33C0 002CF020 7C 84 2A 14 */ add r4, r4, r5
+/* 802D33C4 002CF024 88 04 00 0A */ lbz r0, 0xa(r4)
+/* 802D33C8 002CF028 2C 00 00 00 */ cmpwi r0, 0
+/* 802D33CC 002CF02C 41 82 00 0C */ beq lbl_802D33D8
+/* 802D33D0 002CF030 38 60 00 0A */ li r3, 0xa
+/* 802D33D4 002CF034 4E 80 00 20 */ blr
+lbl_802D33D8:
+/* 802D33D8 002CF038 38 00 00 01 */ li r0, 1
+/* 802D33DC 002CF03C 98 04 00 0C */ stb r0, 0xc(r4)
+/* 802D33E0 002CF040 48 00 23 28 */ b lbl_802D5708
+/* 802D33E4 002CF044 4E 80 00 20 */ blr
+
+.global HID_HostWriteDev
+HID_HostWriteDev:
+/* 802D33E8 002CF048 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802D33EC 002CF04C 7C 08 02 A6 */ mflr r0
+/* 802D33F0 002CF050 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802D33F4 002CF054 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D33F8 002CF058 4B EF 3D 25 */ bl _savegpr_24
+/* 802D33FC 002CF05C 3D 20 80 57 */ lis r9, lbl_8056B838@ha
+/* 802D3400 002CF060 3F E0 80 44 */ lis r31, lbl_80442740@ha
+/* 802D3404 002CF064 39 29 B8 38 */ addi r9, r9, lbl_8056B838@l
+/* 802D3408 002CF068 7C 79 1B 78 */ mr r25, r3
+/* 802D340C 002CF06C 88 09 04 00 */ lbz r0, 0x400(r9)
+/* 802D3410 002CF070 7C 9A 23 78 */ mr r26, r4
+/* 802D3414 002CF074 7C BB 2B 78 */ mr r27, r5
+/* 802D3418 002CF078 7C DC 33 78 */ mr r28, r6
+/* 802D341C 002CF07C 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3420 002CF080 7C FD 3B 78 */ mr r29, r7
+/* 802D3424 002CF084 7D 1E 43 78 */ mr r30, r8
+/* 802D3428 002CF088 3B FF 27 40 */ addi r31, r31, lbl_80442740@l
+/* 802D342C 002CF08C 3B 00 00 00 */ li r24, 0
+/* 802D3430 002CF090 40 82 00 20 */ bne lbl_802D3450
+/* 802D3434 002CF094 88 09 04 01 */ lbz r0, 0x401(r9)
+/* 802D3438 002CF098 28 00 00 01 */ cmplwi r0, 1
+/* 802D343C 002CF09C 41 80 00 10 */ blt lbl_802D344C
+/* 802D3440 002CF0A0 38 9F 00 00 */ addi r4, r31, 0
+/* 802D3444 002CF0A4 3C 60 00 1E */ lis r3, 0x1e
+/* 802D3448 002CF0A8 4B FE 9A C9 */ bl LogMsg_0
+lbl_802D344C:
+/* 802D344C 002CF0AC 3B 00 00 01 */ li r24, 1
+lbl_802D3450:
+/* 802D3450 002CF0B0 28 19 00 10 */ cmplwi r25, 0x10
+/* 802D3454 002CF0B4 41 81 00 1C */ bgt lbl_802D3470
+/* 802D3458 002CF0B8 1C 19 00 34 */ mulli r0, r25, 0x34
+/* 802D345C 002CF0BC 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D3460 002CF0C0 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D3464 002CF0C4 7C 03 00 AE */ lbzx r0, r3, r0
+/* 802D3468 002CF0C8 2C 00 00 00 */ cmpwi r0, 0
+/* 802D346C 002CF0CC 40 82 00 28 */ bne lbl_802D3494
+lbl_802D3470:
+/* 802D3470 002CF0D0 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D3474 002CF0D4 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D3478 002CF0D8 88 03 04 01 */ lbz r0, 0x401(r3)
+/* 802D347C 002CF0DC 28 00 00 01 */ cmplwi r0, 1
+/* 802D3480 002CF0E0 41 80 00 10 */ blt lbl_802D3490
+/* 802D3484 002CF0E4 38 9F 00 18 */ addi r4, r31, 0x18
+/* 802D3488 002CF0E8 3C 60 00 1E */ lis r3, 0x1e
+/* 802D348C 002CF0EC 4B FE 9A 85 */ bl LogMsg_0
+lbl_802D3490:
+/* 802D3490 002CF0F0 3B 00 00 05 */ li r24, 5
+lbl_802D3494:
+/* 802D3494 002CF0F4 1C 19 00 34 */ mulli r0, r25, 0x34
+/* 802D3498 002CF0F8 3C 80 80 57 */ lis r4, lbl_8056B838@ha
+/* 802D349C 002CF0FC 38 84 B8 38 */ addi r4, r4, lbl_8056B838@l
+/* 802D34A0 002CF100 7C 64 02 14 */ add r3, r4, r0
+/* 802D34A4 002CF104 88 03 00 0A */ lbz r0, 0xa(r3)
+/* 802D34A8 002CF108 28 00 00 01 */ cmplwi r0, 1
+/* 802D34AC 002CF10C 41 82 00 24 */ beq lbl_802D34D0
+/* 802D34B0 002CF110 88 04 04 01 */ lbz r0, 0x401(r4)
+/* 802D34B4 002CF114 28 00 00 01 */ cmplwi r0, 1
+/* 802D34B8 002CF118 41 80 00 14 */ blt lbl_802D34CC
+/* 802D34BC 002CF11C 7F 25 CB 78 */ mr r5, r25
+/* 802D34C0 002CF120 38 9F 00 30 */ addi r4, r31, 0x30
+/* 802D34C4 002CF124 3C 60 00 1E */ lis r3, 0x1e
+/* 802D34C8 002CF128 4B FE 9A 61 */ bl LogMsg_1
+lbl_802D34CC:
+/* 802D34CC 002CF12C 3B 00 00 04 */ li r24, 4
+lbl_802D34D0:
+/* 802D34D0 002CF130 2C 18 00 00 */ cmpwi r24, 0
+/* 802D34D4 002CF134 41 82 00 18 */ beq lbl_802D34EC
+/* 802D34D8 002CF138 2C 1E 00 00 */ cmpwi r30, 0
+/* 802D34DC 002CF13C 41 82 00 30 */ beq lbl_802D350C
+/* 802D34E0 002CF140 7F C3 F3 78 */ mr r3, r30
+/* 802D34E4 002CF144 4B FE 68 51 */ bl GKI_freebuf
+/* 802D34E8 002CF148 48 00 00 24 */ b lbl_802D350C
+lbl_802D34EC:
+/* 802D34EC 002CF14C 7F 23 CB 78 */ mr r3, r25
+/* 802D34F0 002CF150 7F 44 D3 78 */ mr r4, r26
+/* 802D34F4 002CF154 7F 65 DB 78 */ mr r5, r27
+/* 802D34F8 002CF158 7F 86 E3 78 */ mr r6, r28
+/* 802D34FC 002CF15C 7F A7 EB 78 */ mr r7, r29
+/* 802D3500 002CF160 7F C8 F3 78 */ mr r8, r30
+/* 802D3504 002CF164 48 00 1F 69 */ bl func_802D546C
+/* 802D3508 002CF168 7C 78 1B 78 */ mr r24, r3
+lbl_802D350C:
+/* 802D350C 002CF16C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802D3510 002CF170 7F 03 C3 78 */ mr r3, r24
+/* 802D3514 002CF174 4B EF 3C 55 */ bl _restgpr_24
+/* 802D3518 002CF178 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802D351C 002CF17C 7C 08 03 A6 */ mtlr r0
+/* 802D3520 002CF180 38 21 00 30 */ addi r1, r1, 0x30
+/* 802D3524 002CF184 4E 80 00 20 */ blr
+
+.global HID_HostCloseDev
+HID_HostCloseDev:
+/* 802D3528 002CF188 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D352C 002CF18C 7C 08 02 A6 */ mflr r0
+/* 802D3530 002CF190 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D3534 002CF194 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D3538 002CF198 4B EF 3B F1 */ bl _savegpr_27
+/* 802D353C 002CF19C 3F C0 80 57 */ lis r30, lbl_8056B838@ha
+/* 802D3540 002CF1A0 7C 7B 1B 78 */ mr r27, r3
+/* 802D3544 002CF1A4 3B DE B8 38 */ addi r30, r30, lbl_8056B838@l
+/* 802D3548 002CF1A8 88 1E 04 00 */ lbz r0, 0x400(r30)
+/* 802D354C 002CF1AC 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3550 002CF1B0 40 82 00 0C */ bne lbl_802D355C
+/* 802D3554 002CF1B4 38 60 00 01 */ li r3, 1
+/* 802D3558 002CF1B8 48 00 00 58 */ b lbl_802D35B0
+lbl_802D355C:
+/* 802D355C 002CF1BC 28 03 00 10 */ cmplwi r3, 0x10
+/* 802D3560 002CF1C0 41 81 00 18 */ bgt lbl_802D3578
+/* 802D3564 002CF1C4 1F 83 00 34 */ mulli r28, r3, 0x34
+/* 802D3568 002CF1C8 7C 1E E0 AE */ lbzx r0, r30, r28
+/* 802D356C 002CF1CC 7F BE E2 14 */ add r29, r30, r28
+/* 802D3570 002CF1D0 2C 00 00 00 */ cmpwi r0, 0
+/* 802D3574 002CF1D4 40 82 00 0C */ bne lbl_802D3580
+lbl_802D3578:
+/* 802D3578 002CF1D8 38 60 00 05 */ li r3, 5
+/* 802D357C 002CF1DC 48 00 00 34 */ b lbl_802D35B0
+lbl_802D3580:
+/* 802D3580 002CF1E0 3B E0 00 01 */ li r31, 1
+/* 802D3584 002CF1E4 38 7D 00 1C */ addi r3, r29, 0x1c
+/* 802D3588 002CF1E8 9B FD 00 0C */ stb r31, 0xc(r29)
+/* 802D358C 002CF1EC 4B FE 9F C1 */ bl btu_stop_timer
+/* 802D3590 002CF1F0 88 1D 00 0A */ lbz r0, 0xa(r29)
+/* 802D3594 002CF1F4 28 00 00 01 */ cmplwi r0, 1
+/* 802D3598 002CF1F8 41 82 00 0C */ beq lbl_802D35A4
+/* 802D359C 002CF1FC 38 60 00 04 */ li r3, 4
+/* 802D35A0 002CF200 48 00 00 10 */ b lbl_802D35B0
+lbl_802D35A4:
+/* 802D35A4 002CF204 9B FD 00 0C */ stb r31, 0xc(r29)
+/* 802D35A8 002CF208 7F 63 DB 78 */ mr r3, r27
+/* 802D35AC 002CF20C 48 00 03 9D */ bl func_802D3948
+lbl_802D35B0:
+/* 802D35B0 002CF210 39 61 00 20 */ addi r11, r1, 0x20
+/* 802D35B4 002CF214 4B EF 3B C1 */ bl _restgpr_27
+/* 802D35B8 002CF218 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D35BC 002CF21C 7C 08 03 A6 */ mtlr r0
+/* 802D35C0 002CF220 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D35C4 002CF224 4E 80 00 20 */ blr
+
+.global HID_HostSetSecurityLevel
+HID_HostSetSecurityLevel:
+/* 802D35C8 002CF228 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802D35CC 002CF22C 7C 08 02 A6 */ mflr r0
+/* 802D35D0 002CF230 38 A0 00 20 */ li r5, 0x20
+/* 802D35D4 002CF234 38 E0 00 11 */ li r7, 0x11
+/* 802D35D8 002CF238 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802D35DC 002CF23C 39 00 00 06 */ li r8, 6
+/* 802D35E0 002CF240 39 20 00 01 */ li r9, 1
+/* 802D35E4 002CF244 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802D35E8 002CF248 3F E0 80 44 */ lis r31, lbl_80442740@ha
+/* 802D35EC 002CF24C 3B FF 27 40 */ addi r31, r31, lbl_80442740@l
+/* 802D35F0 002CF250 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802D35F4 002CF254 7C 9E 23 78 */ mr r30, r4
+/* 802D35F8 002CF258 7F C6 F3 78 */ mr r6, r30
+/* 802D35FC 002CF25C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802D3600 002CF260 7C 7D 1B 78 */ mr r29, r3
+/* 802D3604 002CF264 38 60 00 00 */ li r3, 0
+/* 802D3608 002CF268 7F A4 EB 78 */ mr r4, r29
+/* 802D360C 002CF26C 4B FF 74 79 */ bl BTM_SetSecurityLevel
+/* 802D3610 002CF270 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D3614 002CF274 40 82 00 2C */ bne lbl_802D3640
+/* 802D3618 002CF278 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D361C 002CF27C 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D3620 002CF280 88 03 04 01 */ lbz r0, 0x401(r3)
+/* 802D3624 002CF284 28 00 00 01 */ cmplwi r0, 1
+/* 802D3628 002CF288 41 80 00 10 */ blt lbl_802D3638
+/* 802D362C 002CF28C 38 9F 00 54 */ addi r4, r31, 0x54
+/* 802D3630 002CF290 3C 60 00 1E */ lis r3, 0x1e
+/* 802D3634 002CF294 4B FE 98 DD */ bl LogMsg_0
+lbl_802D3638:
+/* 802D3638 002CF298 38 60 00 03 */ li r3, 3
+/* 802D363C 002CF29C 48 00 01 98 */ b lbl_802D37D4
+lbl_802D3640:
+/* 802D3640 002CF2A0 7F A4 EB 78 */ mr r4, r29
+/* 802D3644 002CF2A4 7F C6 F3 78 */ mr r6, r30
+/* 802D3648 002CF2A8 38 60 00 01 */ li r3, 1
+/* 802D364C 002CF2AC 38 A0 00 20 */ li r5, 0x20
+/* 802D3650 002CF2B0 38 E0 00 11 */ li r7, 0x11
+/* 802D3654 002CF2B4 39 00 00 06 */ li r8, 6
+/* 802D3658 002CF2B8 39 20 00 01 */ li r9, 1
+/* 802D365C 002CF2BC 4B FF 74 29 */ bl BTM_SetSecurityLevel
+/* 802D3660 002CF2C0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D3664 002CF2C4 40 82 00 2C */ bne lbl_802D3690
+/* 802D3668 002CF2C8 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D366C 002CF2CC 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D3670 002CF2D0 88 03 04 01 */ lbz r0, 0x401(r3)
+/* 802D3674 002CF2D4 28 00 00 01 */ cmplwi r0, 1
+/* 802D3678 002CF2D8 41 80 00 10 */ blt lbl_802D3688
+/* 802D367C 002CF2DC 38 9F 00 74 */ addi r4, r31, 0x74
+/* 802D3680 002CF2E0 3C 60 00 1E */ lis r3, 0x1e
+/* 802D3684 002CF2E4 4B FE 98 8D */ bl LogMsg_0
+lbl_802D3688:
+/* 802D3688 002CF2E8 38 60 00 03 */ li r3, 3
+/* 802D368C 002CF2EC 48 00 01 48 */ b lbl_802D37D4
+lbl_802D3690:
+/* 802D3690 002CF2F0 7F A4 EB 78 */ mr r4, r29
+/* 802D3694 002CF2F4 38 60 00 00 */ li r3, 0
+/* 802D3698 002CF2F8 38 A0 00 21 */ li r5, 0x21
+/* 802D369C 002CF2FC 38 C0 00 00 */ li r6, 0
+/* 802D36A0 002CF300 38 E0 00 11 */ li r7, 0x11
+/* 802D36A4 002CF304 39 00 00 06 */ li r8, 6
+/* 802D36A8 002CF308 39 20 00 02 */ li r9, 2
+/* 802D36AC 002CF30C 4B FF 73 D9 */ bl BTM_SetSecurityLevel
+/* 802D36B0 002CF310 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D36B4 002CF314 40 82 00 2C */ bne lbl_802D36E0
+/* 802D36B8 002CF318 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D36BC 002CF31C 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D36C0 002CF320 88 03 04 01 */ lbz r0, 0x401(r3)
+/* 802D36C4 002CF324 28 00 00 01 */ cmplwi r0, 1
+/* 802D36C8 002CF328 41 80 00 10 */ blt lbl_802D36D8
+/* 802D36CC 002CF32C 38 9F 00 94 */ addi r4, r31, 0x94
+/* 802D36D0 002CF330 3C 60 00 1E */ lis r3, 0x1e
+/* 802D36D4 002CF334 4B FE 98 3D */ bl LogMsg_0
+lbl_802D36D8:
+/* 802D36D8 002CF338 38 60 00 03 */ li r3, 3
+/* 802D36DC 002CF33C 48 00 00 F8 */ b lbl_802D37D4
+lbl_802D36E0:
+/* 802D36E0 002CF340 7F A4 EB 78 */ mr r4, r29
+/* 802D36E4 002CF344 38 60 00 01 */ li r3, 1
+/* 802D36E8 002CF348 38 A0 00 21 */ li r5, 0x21
+/* 802D36EC 002CF34C 38 C0 00 00 */ li r6, 0
+/* 802D36F0 002CF350 38 E0 00 11 */ li r7, 0x11
+/* 802D36F4 002CF354 39 00 00 06 */ li r8, 6
+/* 802D36F8 002CF358 39 20 00 02 */ li r9, 2
+/* 802D36FC 002CF35C 4B FF 73 89 */ bl BTM_SetSecurityLevel
+/* 802D3700 002CF360 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D3704 002CF364 40 82 00 2C */ bne lbl_802D3730
+/* 802D3708 002CF368 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D370C 002CF36C 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D3710 002CF370 88 03 04 01 */ lbz r0, 0x401(r3)
+/* 802D3714 002CF374 28 00 00 01 */ cmplwi r0, 1
+/* 802D3718 002CF378 41 80 00 10 */ blt lbl_802D3728
+/* 802D371C 002CF37C 38 9F 00 B4 */ addi r4, r31, 0xb4
+/* 802D3720 002CF380 3C 60 00 1E */ lis r3, 0x1e
+/* 802D3724 002CF384 4B FE 97 ED */ bl LogMsg_0
+lbl_802D3728:
+/* 802D3728 002CF388 38 60 00 03 */ li r3, 3
+/* 802D372C 002CF38C 48 00 00 A8 */ b lbl_802D37D4
+lbl_802D3730:
+/* 802D3730 002CF390 7F A4 EB 78 */ mr r4, r29
+/* 802D3734 002CF394 38 60 00 01 */ li r3, 1
+/* 802D3738 002CF398 38 A0 00 22 */ li r5, 0x22
+/* 802D373C 002CF39C 38 C0 00 00 */ li r6, 0
+/* 802D3740 002CF3A0 38 E0 00 13 */ li r7, 0x13
+/* 802D3744 002CF3A4 39 00 00 06 */ li r8, 6
+/* 802D3748 002CF3A8 39 20 00 00 */ li r9, 0
+/* 802D374C 002CF3AC 4B FF 73 39 */ bl BTM_SetSecurityLevel
+/* 802D3750 002CF3B0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D3754 002CF3B4 40 82 00 2C */ bne lbl_802D3780
+/* 802D3758 002CF3B8 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D375C 002CF3BC 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D3760 002CF3C0 88 03 04 01 */ lbz r0, 0x401(r3)
+/* 802D3764 002CF3C4 28 00 00 01 */ cmplwi r0, 1
+/* 802D3768 002CF3C8 41 80 00 10 */ blt lbl_802D3778
+/* 802D376C 002CF3CC 38 9F 00 D4 */ addi r4, r31, 0xd4
+/* 802D3770 002CF3D0 3C 60 00 1E */ lis r3, 0x1e
+/* 802D3774 002CF3D4 4B FE 97 9D */ bl LogMsg_0
+lbl_802D3778:
+/* 802D3778 002CF3D8 38 60 00 03 */ li r3, 3
+/* 802D377C 002CF3DC 48 00 00 58 */ b lbl_802D37D4
+lbl_802D3780:
+/* 802D3780 002CF3E0 7F A4 EB 78 */ mr r4, r29
+/* 802D3784 002CF3E4 38 60 00 00 */ li r3, 0
+/* 802D3788 002CF3E8 38 A0 00 22 */ li r5, 0x22
+/* 802D378C 002CF3EC 38 C0 00 00 */ li r6, 0
+/* 802D3790 002CF3F0 38 E0 00 13 */ li r7, 0x13
+/* 802D3794 002CF3F4 39 00 00 06 */ li r8, 6
+/* 802D3798 002CF3F8 39 20 00 00 */ li r9, 0
+/* 802D379C 002CF3FC 4B FF 72 E9 */ bl BTM_SetSecurityLevel
+/* 802D37A0 002CF400 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802D37A4 002CF404 40 82 00 2C */ bne lbl_802D37D0
+/* 802D37A8 002CF408 3C 60 80 57 */ lis r3, lbl_8056B838@ha
+/* 802D37AC 002CF40C 38 63 B8 38 */ addi r3, r3, lbl_8056B838@l
+/* 802D37B0 002CF410 88 03 04 01 */ lbz r0, 0x401(r3)
+/* 802D37B4 002CF414 28 00 00 01 */ cmplwi r0, 1
+/* 802D37B8 002CF418 41 80 00 10 */ blt lbl_802D37C8
+/* 802D37BC 002CF41C 38 9F 00 F4 */ addi r4, r31, 0xf4
+/* 802D37C0 002CF420 3C 60 00 1E */ lis r3, 0x1e
+/* 802D37C4 002CF424 4B FE 97 4D */ bl LogMsg_0
+lbl_802D37C8:
+/* 802D37C8 002CF428 38 60 00 03 */ li r3, 3
+/* 802D37CC 002CF42C 48 00 00 08 */ b lbl_802D37D4
+lbl_802D37D0:
+/* 802D37D0 002CF430 38 60 00 00 */ li r3, 0
+lbl_802D37D4:
+/* 802D37D4 002CF434 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802D37D8 002CF438 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802D37DC 002CF43C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802D37E0 002CF440 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802D37E4 002CF444 7C 08 03 A6 */ mtlr r0
+/* 802D37E8 002CF448 38 21 00 20 */ addi r1, r1, 0x20
+/* 802D37EC 002CF44C 4E 80 00 20 */ blr
|