summaryrefslogtreecommitdiff
path: root/asm/SDK
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK')
-rw-r--r--asm/SDK/BTE/gki_buffer.s88
-rw-r--r--asm/SDK/BTE/gki_ppc.s211
-rw-r--r--asm/SDK/BTE/gki_time.s8
-rw-r--r--asm/SDK/BTE/hcisu_h2.s478
4 files changed, 737 insertions, 48 deletions
diff --git a/asm/SDK/BTE/gki_buffer.s b/asm/SDK/BTE/gki_buffer.s
index 76247f2..e2839c0 100644
--- a/asm/SDK/BTE/gki_buffer.s
+++ b/asm/SDK/BTE/gki_buffer.s
@@ -346,7 +346,7 @@ GKI_getbuf:
/* 802B9ADC 002B573C 38 03 FF F6 */ addi r0, r3, 0x0000FFF6@l
/* 802B9AE0 002B5740 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802B9AE4 002B5744 38 84 F1 30 */ addi r4, r4, lbl_8043F130@l
-/* 802B9AE8 002B5748 48 00 16 DD */ bl func_802BB1C4
+/* 802B9AE8 002B5748 48 00 16 DD */ bl GKI_exception
/* 802B9AEC 002B574C 38 60 00 00 */ li r3, 0
/* 802B9AF0 002B5750 48 00 01 44 */ b lbl_802B9C34
lbl_802B9AF4:
@@ -379,11 +379,11 @@ lbl_802B9B3C:
/* 802B9B50 002B57B0 38 03 FF F7 */ addi r0, r3, 0x0000FFF7@l
/* 802B9B54 002B57B4 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802B9B58 002B57B8 38 84 F1 48 */ addi r4, r4, lbl_8043F148@l
-/* 802B9B5C 002B57BC 48 00 16 69 */ bl func_802BB1C4
+/* 802B9B5C 002B57BC 48 00 16 69 */ bl GKI_exception
/* 802B9B60 002B57C0 38 60 00 00 */ li r3, 0
/* 802B9B64 002B57C4 48 00 00 D0 */ b lbl_802B9C34
lbl_802B9B68:
-/* 802B9B68 002B57C8 48 00 16 19 */ bl func_802BB180
+/* 802B9B68 002B57C8 48 00 16 19 */ bl GKI_disable
/* 802B9B6C 002B57CC 3C DE 00 03 */ addis r6, r30, 3
/* 802B9B70 002B57D0 38 A0 00 01 */ li r5, 1
/* 802B9B74 002B57D4 88 E6 8A 87 */ lbz r7, -0x7579(r6)
@@ -421,8 +421,8 @@ lbl_802B9BD0:
/* 802B9BEC 002B584C A0 04 89 98 */ lhz r0, -0x7668(r4)
/* 802B9BF0 002B5850 B0 04 89 9A */ sth r0, -0x7666(r4)
lbl_802B9BF4:
-/* 802B9BF4 002B5854 48 00 15 69 */ bl func_802BB15C
-/* 802B9BF8 002B5858 48 00 15 5D */ bl func_802BB154
+/* 802B9BF4 002B5854 48 00 15 69 */ bl GKI_enable
+/* 802B9BF8 002B5858 48 00 15 5D */ bl GKI_get_taskid
/* 802B9BFC 002B585C 98 7E 00 05 */ stb r3, 5(r30)
/* 802B9C00 002B5860 38 80 00 01 */ li r4, 1
/* 802B9C04 002B5864 38 00 00 00 */ li r0, 0
@@ -437,7 +437,7 @@ lbl_802B9C20:
/* 802B9C20 002B5880 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 802B9C24 002B5884 7C 00 38 40 */ cmplw r0, r7
/* 802B9C28 002B5888 41 80 FF 54 */ blt lbl_802B9B7C
-/* 802B9C2C 002B588C 48 00 15 31 */ bl func_802BB15C
+/* 802B9C2C 002B588C 48 00 15 31 */ bl GKI_enable
/* 802B9C30 002B5890 38 60 00 00 */ li r3, 0
lbl_802B9C34:
/* 802B9C34 002B5894 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -463,7 +463,7 @@ GKI_getpoolbuf:
/* 802B9C78 002B58D8 38 60 00 00 */ li r3, 0
/* 802B9C7C 002B58DC 48 00 00 A0 */ b lbl_802B9D1C
lbl_802B9C80:
-/* 802B9C80 002B58E0 48 00 15 01 */ bl func_802BB180
+/* 802B9C80 002B58E0 48 00 15 01 */ bl GKI_disable
/* 802B9C84 002B58E4 57 FF 25 36 */ rlwinm r31, r31, 4, 0x14, 0x1b
/* 802B9C88 002B58E8 3C 1E 00 03 */ addis r0, r30, 3
/* 802B9C8C 002B58EC 7C 80 FA 14 */ add r4, r0, r31
@@ -489,8 +489,8 @@ lbl_802B9CBC:
/* 802B9CD8 002B5938 A0 04 89 98 */ lhz r0, -0x7668(r4)
/* 802B9CDC 002B593C B0 04 89 9A */ sth r0, -0x7666(r4)
lbl_802B9CE0:
-/* 802B9CE0 002B5940 48 00 14 7D */ bl func_802BB15C
-/* 802B9CE4 002B5944 48 00 14 71 */ bl func_802BB154
+/* 802B9CE0 002B5940 48 00 14 7D */ bl GKI_enable
+/* 802B9CE4 002B5944 48 00 14 71 */ bl GKI_get_taskid
/* 802B9CE8 002B5948 98 7F 00 05 */ stb r3, 5(r31)
/* 802B9CEC 002B594C 38 80 00 01 */ li r4, 1
/* 802B9CF0 002B5950 38 00 00 00 */ li r0, 0
@@ -500,7 +500,7 @@ lbl_802B9CE0:
/* 802B9D00 002B5960 98 1F 00 07 */ stb r0, 7(r31)
/* 802B9D04 002B5964 48 00 00 18 */ b lbl_802B9D1C
lbl_802B9D08:
-/* 802B9D08 002B5968 48 00 14 55 */ bl func_802BB15C
+/* 802B9D08 002B5968 48 00 14 55 */ bl GKI_enable
/* 802B9D0C 002B596C 3C 1E 00 03 */ addis r0, r30, 3
/* 802B9D10 002B5970 7C 60 FA 14 */ add r3, r0, r31
/* 802B9D14 002B5974 A0 63 89 94 */ lhz r3, -0x766c(r3)
@@ -563,7 +563,7 @@ lbl_802B9DCC:
/* 802B9DD0 002B5A30 38 85 00 30 */ addi r4, r5, 0x30
/* 802B9DD4 002B5A34 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l
/* 802B9DD8 002B5A38 54 03 04 3E */ clrlwi r3, r0, 0x10
-/* 802B9DDC 002B5A3C 48 00 13 E9 */ bl func_802BB1C4
+/* 802B9DDC 002B5A3C 48 00 13 E9 */ bl GKI_exception
/* 802B9DE0 002B5A40 48 00 00 B0 */ b lbl_802B9E90
lbl_802B9DE4:
/* 802B9DE4 002B5A44 88 1F 00 06 */ lbz r0, 6(r31)
@@ -573,7 +573,7 @@ lbl_802B9DE4:
/* 802B9DF4 002B5A54 38 85 00 48 */ addi r4, r5, 0x48
/* 802B9DF8 002B5A58 38 03 FF FC */ addi r0, r3, 0x0000FFFC@l
/* 802B9DFC 002B5A5C 54 03 04 3E */ clrlwi r3, r0, 0x10
-/* 802B9E00 002B5A60 48 00 13 C5 */ bl func_802BB1C4
+/* 802B9E00 002B5A60 48 00 13 C5 */ bl GKI_exception
/* 802B9E04 002B5A64 48 00 00 8C */ b lbl_802B9E90
lbl_802B9E08:
/* 802B9E08 002B5A68 88 1F 00 04 */ lbz r0, 4(r31)
@@ -583,10 +583,10 @@ lbl_802B9E08:
/* 802B9E18 002B5A78 38 85 00 5C */ addi r4, r5, 0x5c
/* 802B9E1C 002B5A7C 38 03 FF FD */ addi r0, r3, 0x0000FFFD@l
/* 802B9E20 002B5A80 54 03 04 3E */ clrlwi r3, r0, 0x10
-/* 802B9E24 002B5A84 48 00 13 A1 */ bl func_802BB1C4
+/* 802B9E24 002B5A84 48 00 13 A1 */ bl GKI_exception
/* 802B9E28 002B5A88 48 00 00 68 */ b lbl_802B9E90
lbl_802B9E2C:
-/* 802B9E2C 002B5A8C 48 00 13 55 */ bl func_802BB180
+/* 802B9E2C 002B5A8C 48 00 13 55 */ bl GKI_disable
/* 802B9E30 002B5A90 88 1F 00 04 */ lbz r0, 4(r31)
/* 802B9E34 002B5A94 3C 60 80 54 */ lis r3, lbl_8053C2C0@ha
/* 802B9E38 002B5A98 38 63 C2 C0 */ addi r3, r3, lbl_8053C2C0@l
@@ -613,7 +613,7 @@ lbl_802B9E60:
/* 802B9E84 002B5AE4 38 03 FF FF */ addi r0, r3, -1
/* 802B9E88 002B5AE8 B0 04 89 EC */ sth r0, -0x7614(r4)
lbl_802B9E8C:
-/* 802B9E8C 002B5AEC 48 00 12 D1 */ bl func_802BB15C
+/* 802B9E8C 002B5AEC 48 00 12 D1 */ bl GKI_enable
lbl_802B9E90:
/* 802B9E90 002B5AF0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802B9E94 002B5AF4 83 E1 00 0C */ lwz r31, 0xc(r1)
@@ -674,7 +674,7 @@ lbl_802B9F48:
/* 802B9F4C 002B5BAC 38 86 00 68 */ addi r4, r6, 0x68
/* 802B9F50 002B5BB0 38 03 FF FB */ addi r0, r3, 0x0000FFFB@l
/* 802B9F54 002B5BB4 54 03 04 3E */ clrlwi r3, r0, 0x10
-/* 802B9F58 002B5BB8 48 00 12 6D */ bl func_802BB1C4
+/* 802B9F58 002B5BB8 48 00 12 6D */ bl GKI_exception
/* 802B9F5C 002B5BBC 7F E3 FB 78 */ mr r3, r31
/* 802B9F60 002B5BC0 4B FF FD D5 */ bl GKI_freebuf
/* 802B9F64 002B5BC4 48 00 01 20 */ b lbl_802BA084
@@ -716,7 +716,7 @@ lbl_802B9FD0:
/* 802B9FDC 002B5C3C 38 86 00 80 */ addi r4, r6, 0x80
/* 802B9FE0 002B5C40 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l
/* 802B9FE4 002B5C44 54 03 04 3E */ clrlwi r3, r0, 0x10
-/* 802B9FE8 002B5C48 48 00 11 DD */ bl func_802BB1C4
+/* 802B9FE8 002B5C48 48 00 11 DD */ bl GKI_exception
/* 802B9FEC 002B5C4C 48 00 00 98 */ b lbl_802BA084
lbl_802B9FF0:
/* 802B9FF0 002B5C50 88 1F 00 06 */ lbz r0, 6(r31)
@@ -726,10 +726,10 @@ lbl_802B9FF0:
/* 802BA000 002B5C60 38 86 00 98 */ addi r4, r6, 0x98
/* 802BA004 002B5C64 38 03 FF FA */ addi r0, r3, 0x0000FFFA@l
/* 802BA008 002B5C68 54 03 04 3E */ clrlwi r3, r0, 0x10
-/* 802BA00C 002B5C6C 48 00 11 B9 */ bl func_802BB1C4
+/* 802BA00C 002B5C6C 48 00 11 B9 */ bl GKI_exception
/* 802BA010 002B5C70 48 00 00 74 */ b lbl_802BA084
lbl_802BA014:
-/* 802BA014 002B5C74 48 00 11 6D */ bl func_802BB180
+/* 802BA014 002B5C74 48 00 11 6D */ bl GKI_disable
/* 802BA018 002B5C78 57 84 25 36 */ rlwinm r4, r28, 4, 0x14, 0x1b
/* 802BA01C 002B5C7C 3C 1E 00 03 */ addis r0, r30, 3
/* 802BA020 002B5C80 57 A5 15 BA */ rlwinm r5, r29, 2, 0x16, 0x1d
@@ -753,12 +753,12 @@ lbl_802BA048:
/* 802BA060 002B5CC0 90 7F 00 00 */ stw r3, 0(r31)
/* 802BA064 002B5CC4 98 1F 00 06 */ stb r0, 6(r31)
/* 802BA068 002B5CC8 9B 9F 00 05 */ stb r28, 5(r31)
-/* 802BA06C 002B5CCC 48 00 10 F1 */ bl func_802BB15C
+/* 802BA06C 002B5CCC 48 00 10 F1 */ bl GKI_enable
/* 802BA070 002B5CD0 38 00 00 01 */ li r0, 1
/* 802BA074 002B5CD4 7F 83 E3 78 */ mr r3, r28
/* 802BA078 002B5CD8 7C 00 E8 30 */ slw r0, r0, r29
/* 802BA07C 002B5CDC 54 04 04 3E */ clrlwi r4, r0, 0x10
-/* 802BA080 002B5CE0 48 00 10 31 */ bl func_802BB0B0
+/* 802BA080 002B5CE0 48 00 10 31 */ bl GKI_send_event
lbl_802BA084:
/* 802BA084 002B5CE4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BA088 002B5CE8 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -778,7 +778,7 @@ GKI_read_mbox:
/* 802BA0B4 002B5D14 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802BA0B8 002B5D18 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802BA0BC 002B5D1C 7C 7D 1B 78 */ mr r29, r3
-/* 802BA0C0 002B5D20 48 00 10 95 */ bl func_802BB154
+/* 802BA0C0 002B5D20 48 00 10 95 */ bl GKI_get_taskid
/* 802BA0C4 002B5D24 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 802BA0C8 002B5D28 7C 7F 1B 78 */ mr r31, r3
/* 802BA0CC 002B5D2C 28 00 00 08 */ cmplwi r0, 8
@@ -790,7 +790,7 @@ lbl_802BA0E0:
/* 802BA0E0 002B5D40 38 60 00 00 */ li r3, 0
/* 802BA0E4 002B5D44 48 00 00 54 */ b lbl_802BA138
lbl_802BA0E8:
-/* 802BA0E8 002B5D48 48 00 10 99 */ bl func_802BB180
+/* 802BA0E8 002B5D48 48 00 10 99 */ bl GKI_disable
/* 802BA0EC 002B5D4C 3C 60 80 54 */ lis r3, lbl_8053C2C0@ha
/* 802BA0F0 002B5D50 57 E4 25 36 */ rlwinm r4, r31, 4, 0x14, 0x1b
/* 802BA0F4 002B5D54 38 63 C2 C0 */ addi r3, r3, lbl_8053C2C0@l
@@ -809,7 +809,7 @@ lbl_802BA0E8:
/* 802BA128 002B5D88 90 65 00 00 */ stw r3, 0(r5)
/* 802BA12C 002B5D8C 98 05 00 06 */ stb r0, 6(r5)
lbl_802BA130:
-/* 802BA130 002B5D90 48 00 10 2D */ bl func_802BB15C
+/* 802BA130 002B5D90 48 00 10 2D */ bl GKI_enable
/* 802BA134 002B5D94 7F C3 F3 78 */ mr r3, r30
lbl_802BA138:
/* 802BA138 002B5D98 80 01 00 24 */ lwz r0, 0x24(r1)
@@ -870,7 +870,7 @@ lbl_802BA1E4:
/* 802BA1F4 002B5E54 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l
/* 802BA1F8 002B5E58 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802BA1FC 002B5E5C 38 84 F1 E0 */ addi r4, r4, lbl_8043F1E0@l
-/* 802BA200 002B5E60 48 00 0F C5 */ bl func_802BB1C4
+/* 802BA200 002B5E60 48 00 0F C5 */ bl GKI_exception
/* 802BA204 002B5E64 48 00 00 70 */ b lbl_802BA274
lbl_802BA208:
/* 802BA208 002B5E68 88 1F 00 06 */ lbz r0, 6(r31)
@@ -881,10 +881,10 @@ lbl_802BA208:
/* 802BA21C 002B5E7C 38 03 FF F9 */ addi r0, r3, 0x0000FFF9@l
/* 802BA220 002B5E80 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802BA224 002B5E84 38 84 F1 FC */ addi r4, r4, lbl_8043F1FC@l
-/* 802BA228 002B5E88 48 00 0F 9D */ bl func_802BB1C4
+/* 802BA228 002B5E88 48 00 0F 9D */ bl GKI_exception
/* 802BA22C 002B5E8C 48 00 00 48 */ b lbl_802BA274
lbl_802BA230:
-/* 802BA230 002B5E90 48 00 0F 51 */ bl func_802BB180
+/* 802BA230 002B5E90 48 00 0F 51 */ bl GKI_disable
/* 802BA234 002B5E94 80 1D 00 00 */ lwz r0, 0(r29)
/* 802BA238 002B5E98 2C 00 00 00 */ cmpwi r0, 0
/* 802BA23C 002B5E9C 41 82 00 10 */ beq lbl_802BA24C
@@ -902,7 +902,7 @@ lbl_802BA250:
/* 802BA264 002B5EC4 B0 9D 00 08 */ sth r4, 8(r29)
/* 802BA268 002B5EC8 90 7F 00 00 */ stw r3, 0(r31)
/* 802BA26C 002B5ECC 98 1F 00 06 */ stb r0, 6(r31)
-/* 802BA270 002B5ED0 48 00 0E ED */ bl func_802BB15C
+/* 802BA270 002B5ED0 48 00 0E ED */ bl GKI_enable
lbl_802BA274:
/* 802BA274 002B5ED4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BA278 002B5ED8 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -962,7 +962,7 @@ lbl_802BA320:
/* 802BA330 002B5F90 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l
/* 802BA334 002B5F94 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802BA338 002B5F98 38 84 F1 E0 */ addi r4, r4, lbl_8043F1E0@l
-/* 802BA33C 002B5F9C 48 00 0E 89 */ bl func_802BB1C4
+/* 802BA33C 002B5F9C 48 00 0E 89 */ bl GKI_exception
/* 802BA340 002B5FA0 48 00 00 74 */ b lbl_802BA3B4
lbl_802BA344:
/* 802BA344 002B5FA4 88 1F 00 06 */ lbz r0, 6(r31)
@@ -973,10 +973,10 @@ lbl_802BA344:
/* 802BA358 002B5FB8 38 03 FF F9 */ addi r0, r3, 0x0000FFF9@l
/* 802BA35C 002B5FBC 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802BA360 002B5FC0 38 84 F2 1C */ addi r4, r4, lbl_8043F21C@l
-/* 802BA364 002B5FC4 48 00 0E 61 */ bl func_802BB1C4
+/* 802BA364 002B5FC4 48 00 0E 61 */ bl GKI_exception
/* 802BA368 002B5FC8 48 00 00 4C */ b lbl_802BA3B4
lbl_802BA36C:
-/* 802BA36C 002B5FCC 48 00 0E 15 */ bl func_802BB180
+/* 802BA36C 002B5FCC 48 00 0E 15 */ bl GKI_disable
/* 802BA370 002B5FD0 80 7D 00 00 */ lwz r3, 0(r29)
/* 802BA374 002B5FD4 2C 03 00 00 */ cmpwi r3, 0
/* 802BA378 002B5FD8 41 82 00 14 */ beq lbl_802BA38C
@@ -995,7 +995,7 @@ lbl_802BA39C:
/* 802BA3A4 002B6004 38 63 00 01 */ addi r3, r3, 1
/* 802BA3A8 002B6008 B0 7D 00 08 */ sth r3, 8(r29)
/* 802BA3AC 002B600C 98 1F 00 06 */ stb r0, 6(r31)
-/* 802BA3B0 002B6010 48 00 0D AD */ bl func_802BB15C
+/* 802BA3B0 002B6010 48 00 0D AD */ bl GKI_enable
lbl_802BA3B4:
/* 802BA3B4 002B6014 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BA3B8 002B6018 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -1013,14 +1013,14 @@ GKI_dequeue:
/* 802BA3DC 002B603C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BA3E0 002B6040 93 C1 00 08 */ stw r30, 8(r1)
/* 802BA3E4 002B6044 7C 7E 1B 78 */ mr r30, r3
-/* 802BA3E8 002B6048 48 00 0D 99 */ bl func_802BB180
+/* 802BA3E8 002B6048 48 00 0D 99 */ bl GKI_disable
/* 802BA3EC 002B604C 2C 1E 00 00 */ cmpwi r30, 0
/* 802BA3F0 002B6050 41 82 00 10 */ beq lbl_802BA400
/* 802BA3F4 002B6054 A0 1E 00 08 */ lhz r0, 8(r30)
/* 802BA3F8 002B6058 2C 00 00 00 */ cmpwi r0, 0
/* 802BA3FC 002B605C 40 82 00 10 */ bne lbl_802BA40C
lbl_802BA400:
-/* 802BA400 002B6060 48 00 0D 5D */ bl func_802BB15C
+/* 802BA400 002B6060 48 00 0D 5D */ bl GKI_enable
/* 802BA404 002B6064 38 60 00 00 */ li r3, 0
/* 802BA408 002B6068 48 00 00 50 */ b lbl_802BA458
lbl_802BA40C:
@@ -1043,7 +1043,7 @@ lbl_802BA434:
/* 802BA444 002B60A4 B0 9E 00 08 */ sth r4, 8(r30)
/* 802BA448 002B60A8 90 7F FF F8 */ stw r3, -8(r31)
/* 802BA44C 002B60AC 98 1F FF FE */ stb r0, -2(r31)
-/* 802BA450 002B60B0 48 00 0D 0D */ bl func_802BB15C
+/* 802BA450 002B60B0 48 00 0D 0D */ bl GKI_enable
/* 802BA454 002B60B4 7F E3 FB 78 */ mr r3, r31
lbl_802BA458:
/* 802BA458 002B60B8 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -1062,11 +1062,11 @@ GKI_remove_from_queue:
/* 802BA480 002B60E0 7C 9F 23 78 */ mr r31, r4
/* 802BA484 002B60E4 93 C1 00 08 */ stw r30, 8(r1)
/* 802BA488 002B60E8 7C 7E 1B 78 */ mr r30, r3
-/* 802BA48C 002B60EC 48 00 0C F5 */ bl func_802BB180
+/* 802BA48C 002B60EC 48 00 0C F5 */ bl GKI_disable
/* 802BA490 002B60F0 80 7E 00 00 */ lwz r3, 0(r30)
/* 802BA494 002B60F4 7C 1F 18 40 */ cmplw r31, r3
/* 802BA498 002B60F8 40 82 00 14 */ bne lbl_802BA4AC
-/* 802BA49C 002B60FC 48 00 0C C1 */ bl func_802BB15C
+/* 802BA49C 002B60FC 48 00 0C C1 */ bl GKI_enable
/* 802BA4A0 002B6100 7F C3 F3 78 */ mr r3, r30
/* 802BA4A4 002B6104 4B FF FF 2D */ bl GKI_dequeue
/* 802BA4A8 002B6108 48 00 00 74 */ b lbl_802BA51C
@@ -1093,7 +1093,7 @@ lbl_802BA4E0:
/* 802BA4F0 002B6150 B0 9E 00 08 */ sth r4, 8(r30)
/* 802BA4F4 002B6154 90 65 00 00 */ stw r3, 0(r5)
/* 802BA4F8 002B6158 98 05 00 06 */ stb r0, 6(r5)
-/* 802BA4FC 002B615C 48 00 0C 61 */ bl func_802BB15C
+/* 802BA4FC 002B615C 48 00 0C 61 */ bl GKI_enable
/* 802BA500 002B6160 7F E3 FB 78 */ mr r3, r31
/* 802BA504 002B6164 48 00 00 18 */ b lbl_802BA51C
lbl_802BA508:
@@ -1101,7 +1101,7 @@ lbl_802BA508:
lbl_802BA50C:
/* 802BA50C 002B616C 2C 03 00 00 */ cmpwi r3, 0
/* 802BA510 002B6170 40 82 FF A8 */ bne lbl_802BA4B8
-/* 802BA514 002B6174 48 00 0C 49 */ bl func_802BB15C
+/* 802BA514 002B6174 48 00 0C 49 */ bl GKI_enable
/* 802BA518 002B6178 38 60 00 00 */ li r3, 0
lbl_802BA51C:
/* 802BA51C 002B617C 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -1191,7 +1191,7 @@ lbl_802BA61C:
/* 802BA628 002B6288 38 03 00 0C */ addi r0, r3, 0xc
/* 802BA62C 002B628C 7C 60 21 D6 */ mullw r3, r0, r4
/* 802BA630 002B6290 40 82 00 0C */ bne lbl_802BA63C
-/* 802BA634 002B6294 48 00 0B 95 */ bl func_802BB1C8
+/* 802BA634 002B6294 48 00 0B 95 */ bl GKI_os_malloc
/* 802BA638 002B6298 7C 66 1B 78 */ mr r6, r3
lbl_802BA63C:
/* 802BA63C 002B629C 2C 06 00 00 */ cmpwi r6, 0
@@ -1388,7 +1388,7 @@ GKI_delete_pool:
/* 802BA8F0 002B6550 40 82 00 08 */ bne lbl_802BA8F8
/* 802BA8F4 002B6554 48 00 01 04 */ b lbl_802BA9F8
lbl_802BA8F8:
-/* 802BA8F8 002B6558 48 00 08 89 */ bl func_802BB180
+/* 802BA8F8 002B6558 48 00 08 89 */ bl GKI_disable
/* 802BA8FC 002B655C 3C 9F 00 03 */ addis r4, r31, 3
/* 802BA900 002B6560 57 C0 25 36 */ rlwinm r0, r30, 4, 0x14, 0x1b
/* 802BA904 002B6564 7C 64 02 14 */ add r3, r4, r0
@@ -1404,7 +1404,7 @@ lbl_802BA8F8:
/* 802BA92C 002B658C 93 83 89 8C */ stw r28, -0x7674(r3)
/* 802BA930 002B6590 93 83 89 90 */ stw r28, -0x7670(r3)
/* 802BA934 002B6594 80 7D 8A 1C */ lwz r3, -0x75e4(r29)
-/* 802BA938 002B6598 48 00 08 BD */ bl func_802BB1F4
+/* 802BA938 002B6598 48 00 08 BD */ bl GKI_os_free
/* 802BA93C 002B659C 3C 9F 00 03 */ addis r4, r31, 3
/* 802BA940 002B65A0 93 9D 8A 1C */ stw r28, -0x75e4(r29)
/* 802BA944 002B65A4 7C 64 D2 14 */ add r3, r4, r26
@@ -1456,9 +1456,9 @@ lbl_802BA9DC:
/* 802BA9E4 002B6644 38 03 FF F8 */ addi r0, r3, 0x0000FFF8@l
/* 802BA9E8 002B6648 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802BA9EC 002B664C 38 84 F2 60 */ addi r4, r4, lbl_8043F260@l
-/* 802BA9F0 002B6650 48 00 07 D5 */ bl func_802BB1C4
+/* 802BA9F0 002B6650 48 00 07 D5 */ bl GKI_exception
lbl_802BA9F4:
-/* 802BA9F4 002B6654 48 00 07 69 */ bl func_802BB15C
+/* 802BA9F4 002B6654 48 00 07 69 */ bl GKI_enable
lbl_802BA9F8:
/* 802BA9F8 002B6658 39 61 00 20 */ addi r11, r1, 0x20
/* 802BA9FC 002B665C 4B F0 C7 75 */ bl _restgpr_26
diff --git a/asm/SDK/BTE/gki_ppc.s b/asm/SDK/BTE/gki_ppc.s
new file mode 100644
index 0000000..4a3fe47
--- /dev/null
+++ b/asm/SDK/BTE/gki_ppc.s
@@ -0,0 +1,211 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GKI_init
+GKI_init:
+/* 802BAF68 002B6BC8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BAF6C 002B6BCC 7C 08 02 A6 */ mflr r0
+/* 802BAF70 002B6BD0 3C A0 00 03 */ lis r5, 0x00028AE0@ha
+/* 802BAF74 002B6BD4 38 80 00 00 */ li r4, 0
+/* 802BAF78 002B6BD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BAF7C 002B6BDC 38 A5 8A E0 */ addi r5, r5, 0x00028AE0@l
+/* 802BAF80 002B6BE0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802BAF84 002B6BE4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802BAF88 002B6BE8 3F C0 80 54 */ lis r30, lbl_8053C2C0@ha
+/* 802BAF8C 002B6BEC 38 7E C2 C0 */ addi r3, r30, lbl_8053C2C0@l
+/* 802BAF90 002B6BF0 4B D4 91 75 */ bl memset
+/* 802BAF94 002B6BF4 4B FF E8 59 */ bl gki_buffer_init
+/* 802BAF98 002B6BF8 4B FF FA 79 */ bl gki_timers_init
+/* 802BAF9C 002B6BFC 3B FE C2 C0 */ addi r31, r30, -15680
+/* 802BAFA0 002B6C00 38 80 00 01 */ li r4, 1
+/* 802BAFA4 002B6C04 3C 7F 00 03 */ addis r3, r31, 3
+/* 802BAFA8 002B6C08 38 00 00 00 */ li r0, 0
+/* 802BAFAC 002B6C0C 98 83 88 02 */ stb r4, -0x77fe(r3)
+/* 802BAFB0 002B6C10 90 03 87 E8 */ stw r0, -0x7818(r3)
+/* 802BAFB4 002B6C14 90 03 88 48 */ stw r0, -0x77b8(r3)
+/* 802BAFB8 002B6C18 B0 03 88 0C */ sth r0, -0x77f4(r3)
+/* 802BAFBC 002B6C1C 98 1E C2 C0 */ stb r0, -0x3d40(r30)
+/* 802BAFC0 002B6C20 4B FB 37 B1 */ bl OSEnableInterrupts
+/* 802BAFC4 002B6C24 88 1E C2 C0 */ lbz r0, -0x3d40(r30)
+/* 802BAFC8 002B6C28 54 00 10 3A */ slwi r0, r0, 2
+/* 802BAFCC 002B6C2C 7C 9F 02 14 */ add r4, r31, r0
+/* 802BAFD0 002B6C30 90 64 00 04 */ stw r3, 4(r4)
+/* 802BAFD4 002B6C34 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
+/* 802BAFD8 002B6C38 38 03 00 01 */ addi r0, r3, 1
+/* 802BAFDC 002B6C3C 98 1E C2 C0 */ stb r0, -0x3d40(r30)
+/* 802BAFE0 002B6C40 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802BAFE4 002B6C44 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802BAFE8 002B6C48 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BAFEC 002B6C4C 7C 08 03 A6 */ mtlr r0
+/* 802BAFF0 002B6C50 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BAFF4 002B6C54 4E 80 00 20 */ blr
+
+.global GKI_shutdown
+GKI_shutdown:
+/* 802BAFF8 002B6C58 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BAFFC 002B6C5C 7C 08 02 A6 */ mflr r0
+/* 802BB000 002B6C60 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BB004 002B6C64 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802BB008 002B6C68 93 C1 00 08 */ stw r30, 8(r1)
+/* 802BB00C 002B6C6C 4B FB 37 51 */ bl OSDisableInterrupts
+/* 802BB010 002B6C70 3F C0 80 54 */ lis r30, lbl_8053C2C0@ha
+/* 802BB014 002B6C74 38 00 00 00 */ li r0, 0
+/* 802BB018 002B6C78 88 BE C2 C0 */ lbz r5, lbl_8053C2C0@l(r30)
+/* 802BB01C 002B6C7C 3B FE C2 C0 */ addi r31, r30, -15680
+/* 802BB020 002B6C80 3C 9F 00 03 */ addis r4, r31, 3
+/* 802BB024 002B6C84 54 A5 10 3A */ slwi r5, r5, 2
+/* 802BB028 002B6C88 7C BF 2A 14 */ add r5, r31, r5
+/* 802BB02C 002B6C8C 90 65 00 04 */ stw r3, 4(r5)
+/* 802BB030 002B6C90 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
+/* 802BB034 002B6C94 38 63 00 01 */ addi r3, r3, 1
+/* 802BB038 002B6C98 98 7E C2 C0 */ stb r3, -0x3d40(r30)
+/* 802BB03C 002B6C9C 98 04 88 02 */ stb r0, -0x77fe(r4)
+/* 802BB040 002B6CA0 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
+/* 802BB044 002B6CA4 38 63 FF FF */ addi r3, r3, -1
+/* 802BB048 002B6CA8 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
+/* 802BB04C 002B6CAC 98 7E C2 C0 */ stb r3, -0x3d40(r30)
+/* 802BB050 002B6CB0 7C 7F 02 14 */ add r3, r31, r0
+/* 802BB054 002B6CB4 80 63 00 04 */ lwz r3, 4(r3)
+/* 802BB058 002B6CB8 4B FB 37 2D */ bl OSRestoreInterrupts
+/* 802BB05C 002B6CBC 48 00 00 20 */ b lbl_802BB07C
+lbl_802BB060:
+/* 802BB060 002B6CC0 88 7E C2 C0 */ lbz r3, -0x3d40(r30)
+/* 802BB064 002B6CC4 38 63 FF FF */ addi r3, r3, -1
+/* 802BB068 002B6CC8 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
+/* 802BB06C 002B6CCC 98 7E C2 C0 */ stb r3, -0x3d40(r30)
+/* 802BB070 002B6CD0 7C 7F 02 14 */ add r3, r31, r0
+/* 802BB074 002B6CD4 80 63 00 04 */ lwz r3, 4(r3)
+/* 802BB078 002B6CD8 4B FB 37 0D */ bl OSRestoreInterrupts
+lbl_802BB07C:
+/* 802BB07C 002B6CDC 88 1E C2 C0 */ lbz r0, -0x3d40(r30)
+/* 802BB080 002B6CE0 2C 00 00 00 */ cmpwi r0, 0
+/* 802BB084 002B6CE4 40 82 FF DC */ bne lbl_802BB060
+/* 802BB088 002B6CE8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BB08C 002B6CEC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802BB090 002B6CF0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802BB094 002B6CF4 7C 08 03 A6 */ mtlr r0
+/* 802BB098 002B6CF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BB09C 002B6CFC 4E 80 00 20 */ blr
+
+.global GKI_run
+GKI_run:
+/* 802BB0A0 002B6D00 4E 80 00 20 */ blr
+
+.global GKI_sched_lock
+GKI_sched_lock:
+/* 802BB0A4 002B6D04 4E 80 00 20 */ blr
+
+.global GKI_sched_unlock
+GKI_sched_unlock:
+/* 802BB0A8 002B6D08 4E 80 00 20 */ blr
+
+.global GKI_delay
+GKI_delay:
+/* 802BB0AC 002B6D0C 4E 80 00 20 */ blr
+
+.global GKI_send_event
+GKI_send_event:
+/* 802BB0B0 002B6D10 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BB0B4 002B6D14 7C 08 02 A6 */ mflr r0
+/* 802BB0B8 002B6D18 28 03 00 08 */ cmplwi r3, 8
+/* 802BB0BC 002B6D1C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BB0C0 002B6D20 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802BB0C4 002B6D24 7C 9F 23 78 */ mr r31, r4
+/* 802BB0C8 002B6D28 93 C1 00 08 */ stw r30, 8(r1)
+/* 802BB0CC 002B6D2C 7C 7E 1B 78 */ mr r30, r3
+/* 802BB0D0 002B6D30 41 80 00 0C */ blt lbl_802BB0DC
+/* 802BB0D4 002B6D34 38 60 00 01 */ li r3, 1
+/* 802BB0D8 002B6D38 48 00 00 64 */ b lbl_802BB13C
+lbl_802BB0DC:
+/* 802BB0DC 002B6D3C 4B FB 36 81 */ bl OSDisableInterrupts
+/* 802BB0E0 002B6D40 3C E0 80 54 */ lis r7, lbl_8053C2C0@ha
+/* 802BB0E4 002B6D44 57 C0 0D FC */ rlwinm r0, r30, 1, 0x17, 0x1e
+/* 802BB0E8 002B6D48 88 A7 C2 C0 */ lbz r5, lbl_8053C2C0@l(r7)
+/* 802BB0EC 002B6D4C 38 C7 C2 C0 */ addi r6, r7, -15680
+/* 802BB0F0 002B6D50 3C 86 00 03 */ addis r4, r6, 3
+/* 802BB0F4 002B6D54 54 A5 10 3A */ slwi r5, r5, 2
+/* 802BB0F8 002B6D58 7C A6 2A 14 */ add r5, r6, r5
+/* 802BB0FC 002B6D5C 7C 84 02 14 */ add r4, r4, r0
+/* 802BB100 002B6D60 90 65 00 04 */ stw r3, 4(r5)
+/* 802BB104 002B6D64 88 67 C2 C0 */ lbz r3, -0x3d40(r7)
+/* 802BB108 002B6D68 38 03 00 01 */ addi r0, r3, 1
+/* 802BB10C 002B6D6C 98 07 C2 C0 */ stb r0, -0x3d40(r7)
+/* 802BB110 002B6D70 A0 04 88 08 */ lhz r0, -0x77f8(r4)
+/* 802BB114 002B6D74 7C 00 FB 78 */ or r0, r0, r31
+/* 802BB118 002B6D78 B0 04 88 08 */ sth r0, -0x77f8(r4)
+/* 802BB11C 002B6D7C 88 67 C2 C0 */ lbz r3, -0x3d40(r7)
+/* 802BB120 002B6D80 38 63 FF FF */ addi r3, r3, -1
+/* 802BB124 002B6D84 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
+/* 802BB128 002B6D88 98 67 C2 C0 */ stb r3, -0x3d40(r7)
+/* 802BB12C 002B6D8C 7C 66 02 14 */ add r3, r6, r0
+/* 802BB130 002B6D90 80 63 00 04 */ lwz r3, 4(r3)
+/* 802BB134 002B6D94 4B FB 36 51 */ bl OSRestoreInterrupts
+/* 802BB138 002B6D98 38 60 00 00 */ li r3, 0
+lbl_802BB13C:
+/* 802BB13C 002B6D9C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BB140 002B6DA0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802BB144 002B6DA4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802BB148 002B6DA8 7C 08 03 A6 */ mtlr r0
+/* 802BB14C 002B6DAC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BB150 002B6DB0 4E 80 00 20 */ blr
+
+.global GKI_get_taskid
+GKI_get_taskid:
+/* 802BB154 002B6DB4 38 60 00 02 */ li r3, 2
+/* 802BB158 002B6DB8 4E 80 00 20 */ blr
+
+.global GKI_enable
+GKI_enable:
+/* 802BB15C 002B6DBC 3C A0 80 54 */ lis r5, lbl_8053C2C0@ha
+/* 802BB160 002B6DC0 88 85 C2 C0 */ lbz r4, lbl_8053C2C0@l(r5)
+/* 802BB164 002B6DC4 38 65 C2 C0 */ addi r3, r5, -15680
+/* 802BB168 002B6DC8 38 84 FF FF */ addi r4, r4, -1
+/* 802BB16C 002B6DCC 54 80 15 BA */ rlwinm r0, r4, 2, 0x16, 0x1d
+/* 802BB170 002B6DD0 98 85 C2 C0 */ stb r4, -0x3d40(r5)
+/* 802BB174 002B6DD4 7C 63 02 14 */ add r3, r3, r0
+/* 802BB178 002B6DD8 80 63 00 04 */ lwz r3, 4(r3)
+/* 802BB17C 002B6DDC 4B FB 36 08 */ b OSRestoreInterrupts
+
+.global GKI_disable
+GKI_disable:
+/* 802BB180 002B6DE0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BB184 002B6DE4 7C 08 02 A6 */ mflr r0
+/* 802BB188 002B6DE8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BB18C 002B6DEC 4B FB 35 D1 */ bl OSDisableInterrupts
+/* 802BB190 002B6DF0 3C A0 80 54 */ lis r5, lbl_8053C2C0@ha
+/* 802BB194 002B6DF4 88 05 C2 C0 */ lbz r0, lbl_8053C2C0@l(r5)
+/* 802BB198 002B6DF8 38 85 C2 C0 */ addi r4, r5, -15680
+/* 802BB19C 002B6DFC 54 00 10 3A */ slwi r0, r0, 2
+/* 802BB1A0 002B6E00 7C 84 02 14 */ add r4, r4, r0
+/* 802BB1A4 002B6E04 90 64 00 04 */ stw r3, 4(r4)
+/* 802BB1A8 002B6E08 88 65 C2 C0 */ lbz r3, -0x3d40(r5)
+/* 802BB1AC 002B6E0C 38 03 00 01 */ addi r0, r3, 1
+/* 802BB1B0 002B6E10 98 05 C2 C0 */ stb r0, -0x3d40(r5)
+/* 802BB1B4 002B6E14 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BB1B8 002B6E18 7C 08 03 A6 */ mtlr r0
+/* 802BB1BC 002B6E1C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BB1C0 002B6E20 4E 80 00 20 */ blr
+
+.global GKI_exception
+GKI_exception:
+/* 802BB1C4 002B6E24 4E 80 00 20 */ blr
+
+.global GKI_os_malloc
+GKI_os_malloc:
+/* 802BB1C8 002B6E28 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BB1CC 002B6E2C 7C 08 02 A6 */ mflr r0
+/* 802BB1D0 002B6E30 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BB1D4 002B6E34 4B FF 9A ED */ bl App_MEMalloc
+/* 802BB1D8 002B6E38 2C 03 00 00 */ cmpwi r3, 0
+/* 802BB1DC 002B6E3C 40 82 00 08 */ bne lbl_802BB1E4
+/* 802BB1E0 002B6E40 38 60 00 00 */ li r3, 0
+lbl_802BB1E4:
+/* 802BB1E4 002B6E44 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BB1E8 002B6E48 7C 08 03 A6 */ mtlr r0
+/* 802BB1EC 002B6E4C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BB1F0 002B6E50 4E 80 00 20 */ blr
+
+.global GKI_os_free
+GKI_os_free:
+/* 802BB1F4 002B6E54 4B FF 9B 1C */ b App_MEMfree
diff --git a/asm/SDK/BTE/gki_time.s b/asm/SDK/BTE/gki_time.s
index 09d34c6..b7192a7 100644
--- a/asm/SDK/BTE/gki_time.s
+++ b/asm/SDK/BTE/gki_time.s
@@ -70,7 +70,7 @@ GKI_start_timer:
/* 802BAAF4 002B6754 7C 7B 1B 78 */ mr r27, r3
/* 802BAAF8 002B6758 7C 9D 23 78 */ mr r29, r4
/* 802BAAFC 002B675C 7C BF 2B 78 */ mr r31, r5
-/* 802BAB00 002B6760 48 00 06 55 */ bl func_802BB154
+/* 802BAB00 002B6760 48 00 06 55 */ bl GKI_get_taskid
/* 802BAB04 002B6764 2C 1D 00 00 */ cmpwi r29, 0
/* 802BAB08 002B6768 7C 7C 1B 78 */ mr r28, r3
/* 802BAB0C 002B676C 3B C0 00 00 */ li r30, 0
@@ -81,7 +81,7 @@ lbl_802BAB18:
/* 802BAB1C 002B677C 7C 00 FB 78 */ or r0, r0, r31
/* 802BAB20 002B6780 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 802BAB24 002B6784 7F BF 00 38 */ and r31, r29, r0
-/* 802BAB28 002B6788 48 00 06 59 */ bl func_802BB180
+/* 802BAB28 002B6788 48 00 06 59 */ bl GKI_disable
/* 802BAB2C 002B678C 3C 80 80 54 */ lis r4, lbl_8053C2C0@ha
/* 802BAB30 002B6790 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
/* 802BAB34 002B6794 38 84 C2 C0 */ addi r4, r4, lbl_8053C2C0@l
@@ -147,7 +147,7 @@ lbl_802BABF4:
/* 802BAC0C 002B686C 90 03 88 3C */ stw r0, -0x77c4(r3)
/* 802BAC10 002B6870 93 A3 88 38 */ stw r29, -0x77c8(r3)
lbl_802BAC14:
-/* 802BAC14 002B6874 48 00 05 49 */ bl func_802BB15C
+/* 802BAC14 002B6874 48 00 05 49 */ bl GKI_enable
/* 802BAC18 002B6878 39 61 00 20 */ addi r11, r1, 0x20
/* 802BAC1C 002B687C 4B F0 C5 59 */ bl _restgpr_27
/* 802BAC20 002B6880 80 01 00 24 */ lwz r0, 0x24(r1)
@@ -162,7 +162,7 @@ GKI_stop_timer:
/* 802BAC38 002B6898 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BAC3C 002B689C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BAC40 002B68A0 7C 7F 1B 78 */ mr r31, r3
-/* 802BAC44 002B68A4 48 00 05 11 */ bl func_802BB154
+/* 802BAC44 002B68A4 48 00 05 11 */ bl GKI_get_taskid
/* 802BAC48 002B68A8 2C 1F 00 01 */ cmpwi r31, 1
/* 802BAC4C 002B68AC 41 82 00 38 */ beq lbl_802BAC84
/* 802BAC50 002B68B0 40 80 00 54 */ bge lbl_802BACA4
diff --git a/asm/SDK/BTE/hcisu_h2.s b/asm/SDK/BTE/hcisu_h2.s
new file mode 100644
index 0000000..7be4480
--- /dev/null
+++ b/asm/SDK/BTE/hcisu_h2.s
@@ -0,0 +1,478 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+hcisu_h2_usb_cback:
+/* 802BB1F8 002B6E58 2C 03 00 04 */ cmpwi r3, 4
+/* 802BB1FC 002B6E5C 41 82 00 14 */ beq lbl_802BB210
+/* 802BB200 002B6E60 4C 80 00 20 */ bgelr
+/* 802BB204 002B6E64 2C 03 00 00 */ cmpwi r3, 0
+/* 802BB208 002B6E68 4D 82 00 20 */ beqlr
+/* 802BB20C 002B6E6C 4E 80 00 20 */ blr
+lbl_802BB210:
+/* 802BB210 002B6E70 7C 83 07 74 */ extsb r3, r4
+/* 802BB214 002B6E74 48 00 1E CC */ b lbl_802BD0E0
+/* 802BB218 002B6E78 4E 80 00 20 */ blr
+
+.global hcisu_h2_receive_msg
+hcisu_h2_receive_msg:
+/* 802BB21C 002B6E7C 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 802BB220 002B6E80 7C 08 02 A6 */ mflr r0
+/* 802BB224 002B6E84 90 01 00 64 */ stw r0, 0x64(r1)
+/* 802BB228 002B6E88 39 61 00 60 */ addi r11, r1, 0x60
+/* 802BB22C 002B6E8C 4B F0 BE C9 */ bl __save_gpr
+/* 802BB230 002B6E90 88 04 00 1E */ lbz r0, 0x1e(r4)
+/* 802BB234 002B6E94 7C 8F 23 78 */ mr r15, r4
+/* 802BB238 002B6E98 3A 60 00 00 */ li r19, 0
+/* 802BB23C 002B6E9C 28 00 00 02 */ cmplwi r0, 2
+/* 802BB240 002B6EA0 41 82 00 0C */ beq lbl_802BB24C
+/* 802BB244 002B6EA4 38 60 00 00 */ li r3, 0
+/* 802BB248 002B6EA8 48 00 03 54 */ b lbl_802BB59C
+lbl_802BB24C:
+/* 802BB24C 002B6EAC 3A 83 00 01 */ addi r20, r3, 1
+/* 802BB250 002B6EB0 54 60 0B FC */ rlwinm r0, r3, 1, 0xf, 0x1e
+/* 802BB254 002B6EB4 3F E0 80 56 */ lis r31, lbl_80564DA0@ha
+/* 802BB258 002B6EB8 7E C4 1A 14 */ add r22, r4, r3
+/* 802BB25C 002B6EBC 56 90 04 3E */ clrlwi r16, r20, 0x10
+/* 802BB260 002B6EC0 54 77 13 BA */ rlwinm r23, r3, 2, 0xe, 0x1d
+/* 802BB264 002B6EC4 7E A4 02 14 */ add r21, r4, r0
+/* 802BB268 002B6EC8 3B FF 4D A0 */ addi r31, r31, lbl_80564DA0@l
+/* 802BB26C 002B6ECC 3B A0 00 00 */ li r29, 0
+/* 802BB270 002B6ED0 3B C0 00 04 */ li r30, 4
+/* 802BB274 002B6ED4 3B 82 A4 38 */ addi r28, r2, lbl_80642A38-_SDA2_BASE_
+/* 802BB278 002B6ED8 3B 20 00 03 */ li r25, 3
+/* 802BB27C 002B6EDC 3B 00 00 02 */ li r24, 2
+/* 802BB280 002B6EE0 3D C0 80 44 */ lis r14, 0x8044
+/* 802BB284 002B6EE4 3B 42 A4 40 */ addi r26, r2, lbl_80642A40-_SDA2_BASE_
+/* 802BB288 002B6EE8 3B 60 00 01 */ li r27, 1
+lbl_802BB28C:
+/* 802BB28C 002B6EEC 56 03 06 3E */ clrlwi r3, r16, 0x18
+/* 802BB290 002B6EF0 38 81 00 08 */ addi r4, r1, 8
+/* 802BB294 002B6EF4 38 A0 00 01 */ li r5, 1
+/* 802BB298 002B6EF8 48 00 14 59 */ bl func_802BC6F0
+/* 802BB29C 002B6EFC 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 802BB2A0 002B6F00 41 82 02 F8 */ beq lbl_802BB598
+/* 802BB2A4 002B6F04 88 16 00 1A */ lbz r0, 0x1a(r22)
+/* 802BB2A8 002B6F08 3A 20 00 00 */ li r17, 0
+/* 802BB2AC 002B6F0C 3A 73 00 01 */ addi r19, r19, 1
+/* 802BB2B0 002B6F10 2C 00 00 02 */ cmpwi r0, 2
+/* 802BB2B4 002B6F14 41 82 01 C8 */ beq lbl_802BB47C
+/* 802BB2B8 002B6F18 40 80 00 14 */ bge lbl_802BB2CC
+/* 802BB2BC 002B6F1C 2C 00 00 00 */ cmpwi r0, 0
+/* 802BB2C0 002B6F20 41 82 00 1C */ beq lbl_802BB2DC
+/* 802BB2C4 002B6F24 40 80 00 C0 */ bge lbl_802BB384
+/* 802BB2C8 002B6F28 48 00 02 B0 */ b lbl_802BB578
+lbl_802BB2CC:
+/* 802BB2CC 002B6F2C 2C 00 00 04 */ cmpwi r0, 4
+/* 802BB2D0 002B6F30 41 82 02 90 */ beq lbl_802BB560
+/* 802BB2D4 002B6F34 40 80 02 A4 */ bge lbl_802BB578
+/* 802BB2D8 002B6F38 48 00 01 F0 */ b lbl_802BB4C8
+lbl_802BB2DC:
+/* 802BB2DC 002B6F3C 28 10 00 01 */ cmplwi r16, 1
+/* 802BB2E0 002B6F40 40 82 00 18 */ bne lbl_802BB2F8
+/* 802BB2E4 002B6F44 38 60 00 02 */ li r3, 2
+/* 802BB2E8 002B6F48 4B FF E9 65 */ bl GKI_getpoolbuf
+/* 802BB2EC 002B6F4C 7C 6F B9 2E */ stwx r3, r15, r23
+/* 802BB2F0 002B6F50 9B D6 00 14 */ stb r30, 0x14(r22)
+/* 802BB2F4 002B6F54 48 00 00 38 */ b lbl_802BB32C
+lbl_802BB2F8:
+/* 802BB2F8 002B6F58 28 10 00 02 */ cmplwi r16, 2
+/* 802BB2FC 002B6F5C 40 82 00 18 */ bne lbl_802BB314
+/* 802BB300 002B6F60 38 60 00 03 */ li r3, 3
+/* 802BB304 002B6F64 4B FF E9 49 */ bl GKI_getpoolbuf
+/* 802BB308 002B6F68 7C 6F B9 2E */ stwx r3, r15, r23
+/* 802BB30C 002B6F6C 9B 16 00 14 */ stb r24, 0x14(r22)
+/* 802BB310 002B6F70 48 00 00 1C */ b lbl_802BB32C
+lbl_802BB314:
+/* 802BB314 002B6F74 28 10 00 03 */ cmplwi r16, 3
+/* 802BB318 002B6F78 40 82 02 60 */ bne lbl_802BB578
+/* 802BB31C 002B6F7C 38 60 00 01 */ li r3, 1
+/* 802BB320 002B6F80 4B FF E9 2D */ bl GKI_getpoolbuf
+/* 802BB324 002B6F84 7C 6F B9 2E */ stwx r3, r15, r23
+/* 802BB328 002B6F88 9B 36 00 14 */ stb r25, 0x14(r22)
+lbl_802BB32C:
+/* 802BB32C 002B6F8C 7C 6F B8 2E */ lwzx r3, r15, r23
+/* 802BB330 002B6F90 2C 03 00 00 */ cmpwi r3, 0
+/* 802BB334 002B6F94 41 82 00 30 */ beq lbl_802BB364
+/* 802BB338 002B6F98 B3 A3 00 02 */ sth r29, 2(r3)
+/* 802BB33C 002B6F9C 88 16 00 14 */ lbz r0, 0x14(r22)
+/* 802BB340 002B6FA0 7C 6F B8 2E */ lwzx r3, r15, r23
+/* 802BB344 002B6FA4 54 00 08 3C */ slwi r0, r0, 1
+/* 802BB348 002B6FA8 7C 9A 02 14 */ add r4, r26, r0
+/* 802BB34C 002B6FAC A0 04 FF FE */ lhz r0, -2(r4)
+/* 802BB350 002B6FB0 B0 03 00 00 */ sth r0, 0(r3)
+/* 802BB354 002B6FB4 7C 6F B8 2E */ lwzx r3, r15, r23
+/* 802BB358 002B6FB8 B3 A3 00 04 */ sth r29, 4(r3)
+/* 802BB35C 002B6FBC 9B 76 00 1A */ stb r27, 0x1a(r22)
+/* 802BB360 002B6FC0 48 00 00 14 */ b lbl_802BB374
+lbl_802BB364:
+/* 802BB364 002B6FC4 38 8E F2 78 */ addi r4, r14, -3464
+/* 802BB368 002B6FC8 3C 60 00 07 */ lis r3, 7
+/* 802BB36C 002B6FCC 48 00 1B A5 */ bl func_802BCF10
+/* 802BB370 002B6FD0 9B 16 00 1A */ stb r24, 0x1a(r22)
+lbl_802BB374:
+/* 802BB374 002B6FD4 88 16 00 14 */ lbz r0, 0x14(r22)
+/* 802BB378 002B6FD8 7C 7C 02 14 */ add r3, r28, r0
+/* 802BB37C 002B6FDC 88 03 FF FF */ lbz r0, -1(r3)
+/* 802BB380 002B6FE0 B0 15 00 0C */ sth r0, 0xc(r21)
+lbl_802BB384:
+/* 802BB384 002B6FE4 7C CF B8 2E */ lwzx r6, r15, r23
+/* 802BB388 002B6FE8 88 A1 00 08 */ lbz r5, 8(r1)
+/* 802BB38C 002B6FEC A0 86 00 02 */ lhz r4, 2(r6)
+/* 802BB390 002B6FF0 7C 66 22 14 */ add r3, r6, r4
+/* 802BB394 002B6FF4 38 04 00 01 */ addi r0, r4, 1
+/* 802BB398 002B6FF8 98 A3 00 08 */ stb r5, 8(r3)
+/* 802BB39C 002B6FFC B0 06 00 02 */ sth r0, 2(r6)
+/* 802BB3A0 002B7000 A0 75 00 0C */ lhz r3, 0xc(r21)
+/* 802BB3A4 002B7004 38 63 FF FF */ addi r3, r3, -1
+/* 802BB3A8 002B7008 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 802BB3AC 002B700C B0 75 00 0C */ sth r3, 0xc(r21)
+/* 802BB3B0 002B7010 40 82 00 C0 */ bne lbl_802BB470
+/* 802BB3B4 002B7014 88 16 00 14 */ lbz r0, 0x14(r22)
+/* 802BB3B8 002B7018 8A 41 00 08 */ lbz r18, 8(r1)
+/* 802BB3BC 002B701C 28 00 00 02 */ cmplwi r0, 2
+/* 802BB3C0 002B7020 40 82 00 44 */ bne lbl_802BB404
+/* 802BB3C4 002B7024 88 16 00 17 */ lbz r0, 0x17(r22)
+/* 802BB3C8 002B7028 56 44 42 2E */ rlwinm r4, r18, 8, 8, 0x17
+/* 802BB3CC 002B702C 7C 6F B8 2E */ lwzx r3, r15, r23
+/* 802BB3D0 002B7030 7C 04 02 14 */ add r0, r4, r0
+/* 802BB3D4 002B7034 54 12 04 3E */ clrlwi r18, r0, 0x10
+/* 802BB3D8 002B7038 48 01 D2 45 */ bl func_802D861C
+/* 802BB3DC 002B703C 2C 03 00 00 */ cmpwi r3, 0
+/* 802BB3E0 002B7040 7C 6F B9 2E */ stwx r3, r15, r23
+/* 802BB3E4 002B7044 40 82 00 20 */ bne lbl_802BB404
+/* 802BB3E8 002B7048 2C 12 00 00 */ cmpwi r18, 0
+/* 802BB3EC 002B704C B2 55 00 0C */ sth r18, 0xc(r21)
+/* 802BB3F0 002B7050 40 82 00 0C */ bne lbl_802BB3FC
+/* 802BB3F4 002B7054 9B B6 00 1A */ stb r29, 0x1a(r22)
+/* 802BB3F8 002B7058 48 00 01 80 */ b lbl_802BB578
+lbl_802BB3FC:
+/* 802BB3FC 002B705C 9B D6 00 1A */ stb r30, 0x1a(r22)
+/* 802BB400 002B7060 48 00 01 78 */ b lbl_802BB578
+lbl_802BB404:
+/* 802BB404 002B7064 B2 55 00 0C */ sth r18, 0xc(r21)
+/* 802BB408 002B7068 7C 6F B8 2E */ lwzx r3, r15, r23
+/* 802BB40C 002B706C 4B FF EA 99 */ bl GKI_get_buf_size
+/* 802BB410 002B7070 88 16 00 14 */ lbz r0, 0x14(r22)
+/* 802BB414 002B7074 54 64 04 3E */ clrlwi r4, r3, 0x10
+/* 802BB418 002B7078 7C 7C 02 14 */ add r3, r28, r0
+/* 802BB41C 002B707C 88 03 FF FF */ lbz r0, -1(r3)
+/* 802BB420 002B7080 7C 72 02 14 */ add r3, r18, r0
+/* 802BB424 002B7084 38 03 00 08 */ addi r0, r3, 8
+/* 802BB428 002B7088 7C 00 20 40 */ cmplw r0, r4
+/* 802BB42C 002B708C 40 81 00 28 */ ble lbl_802BB454
+/* 802BB430 002B7090 7C 6F B8 2E */ lwzx r3, r15, r23
+/* 802BB434 002B7094 4B FF E9 01 */ bl GKI_freebuf
+/* 802BB438 002B7098 7F AF B9 2E */ stwx r29, r15, r23
+/* 802BB43C 002B709C 3C 60 80 44 */ lis r3, lbl_8043F2B4@ha
+/* 802BB440 002B70A0 38 83 F2 B4 */ addi r4, r3, lbl_8043F2B4@l
+/* 802BB444 002B70A4 9B D6 00 1A */ stb r30, 0x1a(r22)
+/* 802BB448 002B70A8 3C 60 00 07 */ lis r3, 7
+/* 802BB44C 002B70AC 48 00 1A C5 */ bl func_802BCF10
+/* 802BB450 002B70B0 48 00 01 28 */ b lbl_802BB578
+lbl_802BB454:
+/* 802BB454 002B70B4 2C 12 00 00 */ cmpwi r18, 0
+/* 802BB458 002B70B8 41 82 00 0C */ beq lbl_802BB464
+/* 802BB45C 002B70BC 9B 36 00 1A */ stb r25, 0x1a(r22)
+/* 802BB460 002B70C0 48 00 01 18 */ b lbl_802BB578
+lbl_802BB464:
+/* 802BB464 002B70C4 9B B6 00 1A */ stb r29, 0x1a(r22)
+/* 802BB468 002B70C8 3A 20 00 01 */ li r17, 1
+/* 802BB46C 002B70CC 48 00 01 0C */ b lbl_802BB578
+lbl_802BB470:
+/* 802BB470 002B70D0 88 01 00 08 */ lbz r0, 8(r1)
+/* 802BB474 002B70D4 98 16 00 17 */ stb r0, 0x17(r22)
+/* 802BB478 002B70D8 48 00 01 00 */ b lbl_802BB578
+lbl_802BB47C:
+/* 802BB47C 002B70DC A0 75 00 0C */ lhz r3, 0xc(r21)
+/* 802BB480 002B70E0 38 63 FF FF */ addi r3, r3, -1
+/* 802BB484 002B70E4 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 802BB488 002B70E8 B0 75 00 0C */ sth r3, 0xc(r21)
+/* 802BB48C 002B70EC 40 82 00 30 */ bne lbl_802BB4BC
+/* 802BB490 002B70F0 88 16 00 14 */ lbz r0, 0x14(r22)
+/* 802BB494 002B70F4 88 61 00 08 */ lbz r3, 8(r1)
+/* 802BB498 002B70F8 28 00 00 02 */ cmplwi r0, 2
+/* 802BB49C 002B70FC 40 82 00 14 */ bne lbl_802BB4B0
+/* 802BB4A0 002B7100 88 16 00 17 */ lbz r0, 0x17(r22)
+/* 802BB4A4 002B7104 54 63 42 2E */ rlwinm r3, r3, 8, 8, 0x17
+/* 802BB4A8 002B7108 7C 03 02 14 */ add r0, r3, r0
+/* 802BB4AC 002B710C 54 03 04 3E */ clrlwi r3, r0, 0x10
+lbl_802BB4B0:
+/* 802BB4B0 002B7110 B0 75 00 0C */ sth r3, 0xc(r21)
+/* 802BB4B4 002B7114 9B D6 00 1A */ stb r30, 0x1a(r22)
+/* 802BB4B8 002B7118 48 00 00 C0 */ b lbl_802BB578
+lbl_802BB4BC:
+/* 802BB4BC 002B711C 88 01 00 08 */ lbz r0, 8(r1)
+/* 802BB4C0 002B7120 98 16 00 17 */ stb r0, 0x17(r22)
+/* 802BB4C4 002B7124 48 00 00 B4 */ b lbl_802BB578
+lbl_802BB4C8:
+/* 802BB4C8 002B7128 7C EF B8 2E */ lwzx r7, r15, r23
+/* 802BB4CC 002B712C 56 83 06 3E */ clrlwi r3, r20, 0x18
+/* 802BB4D0 002B7130 88 C1 00 08 */ lbz r6, 8(r1)
+/* 802BB4D4 002B7134 A0 A7 00 02 */ lhz r5, 2(r7)
+/* 802BB4D8 002B7138 7C 87 2A 14 */ add r4, r7, r5
+/* 802BB4DC 002B713C 38 05 00 01 */ addi r0, r5, 1
+/* 802BB4E0 002B7140 98 C4 00 08 */ stb r6, 8(r4)
+/* 802BB4E4 002B7144 B0 07 00 02 */ sth r0, 2(r7)
+/* 802BB4E8 002B7148 A0 95 00 0C */ lhz r4, 0xc(r21)
+/* 802BB4EC 002B714C 38 04 FF FF */ addi r0, r4, -1
+/* 802BB4F0 002B7150 B0 15 00 0C */ sth r0, 0xc(r21)
+/* 802BB4F4 002B7154 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 802BB4F8 002B7158 7C 8F B8 2E */ lwzx r4, r15, r23
+/* 802BB4FC 002B715C A0 04 00 02 */ lhz r0, 2(r4)
+/* 802BB500 002B7160 7C 84 02 14 */ add r4, r4, r0
+/* 802BB504 002B7164 38 84 00 08 */ addi r4, r4, 8
+/* 802BB508 002B7168 48 00 11 E9 */ bl func_802BC6F0
+/* 802BB50C 002B716C 7C 8F B8 2E */ lwzx r4, r15, r23
+/* 802BB510 002B7170 7E 73 1A 14 */ add r19, r19, r3
+/* 802BB514 002B7174 A0 04 00 02 */ lhz r0, 2(r4)
+/* 802BB518 002B7178 7C 00 1A 14 */ add r0, r0, r3
+/* 802BB51C 002B717C B0 04 00 02 */ sth r0, 2(r4)
+/* 802BB520 002B7180 A0 15 00 0C */ lhz r0, 0xc(r21)
+/* 802BB524 002B7184 7C 63 00 50 */ subf r3, r3, r0
+/* 802BB528 002B7188 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 802BB52C 002B718C B0 75 00 0C */ sth r3, 0xc(r21)
+/* 802BB530 002B7190 40 82 00 48 */ bne lbl_802BB578
+/* 802BB534 002B7194 88 16 00 14 */ lbz r0, 0x14(r22)
+/* 802BB538 002B7198 28 00 00 02 */ cmplwi r0, 2
+/* 802BB53C 002B719C 40 82 00 18 */ bne lbl_802BB554
+/* 802BB540 002B71A0 48 01 D2 AD */ bl func_802D87EC
+/* 802BB544 002B71A4 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802BB548 002B71A8 40 82 00 0C */ bne lbl_802BB554
+/* 802BB54C 002B71AC 9B B6 00 1A */ stb r29, 0x1a(r22)
+/* 802BB550 002B71B0 48 00 00 28 */ b lbl_802BB578
+lbl_802BB554:
+/* 802BB554 002B71B4 9B B6 00 1A */ stb r29, 0x1a(r22)
+/* 802BB558 002B71B8 3A 20 00 01 */ li r17, 1
+/* 802BB55C 002B71BC 48 00 00 1C */ b lbl_802BB578
+lbl_802BB560:
+/* 802BB560 002B71C0 A0 75 00 0C */ lhz r3, 0xc(r21)
+/* 802BB564 002B71C4 38 63 FF FF */ addi r3, r3, -1
+/* 802BB568 002B71C8 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 802BB56C 002B71CC B0 75 00 0C */ sth r3, 0xc(r21)
+/* 802BB570 002B71D0 40 82 00 08 */ bne lbl_802BB578
+/* 802BB574 002B71D4 9B B6 00 1A */ stb r29, 0x1a(r22)
+lbl_802BB578:
+/* 802BB578 002B71D8 2C 11 00 00 */ cmpwi r17, 0
+/* 802BB57C 002B71DC 41 82 FD 10 */ beq lbl_802BB28C
+/* 802BB580 002B71E0 88 7F 00 1F */ lbz r3, 0x1f(r31)
+/* 802BB584 002B71E4 38 80 00 00 */ li r4, 0
+/* 802BB588 002B71E8 7C AF B8 2E */ lwzx r5, r15, r23
+/* 802BB58C 002B71EC 4B FF E9 5D */ bl GKI_send_msg
+/* 802BB590 002B71F0 7F AF B9 2E */ stwx r29, r15, r23
+/* 802BB594 002B71F4 4B FF FC F8 */ b lbl_802BB28C
+lbl_802BB598:
+/* 802BB598 002B71F8 7E 63 9B 78 */ mr r3, r19
+lbl_802BB59C:
+/* 802BB59C 002B71FC 39 61 00 60 */ addi r11, r1, 0x60
+/* 802BB5A0 002B7200 4B F0 BB A1 */ bl __restore_gpr
+/* 802BB5A4 002B7204 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 802BB5A8 002B7208 7C 08 03 A6 */ mtlr r0
+/* 802BB5AC 002B720C 38 21 00 60 */ addi r1, r1, 0x60
+/* 802BB5B0 002B7210 4E 80 00 20 */ blr
+
+.global hcisu_h2_send_msg_now
+hcisu_h2_send_msg_now:
+/* 802BB5B4 002B7214 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802BB5B8 002B7218 7C 08 02 A6 */ mflr r0
+/* 802BB5BC 002B721C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802BB5C0 002B7220 39 61 00 20 */ addi r11, r1, 0x20
+/* 802BB5C4 002B7224 4B F0 BB 65 */ bl _savegpr_27
+/* 802BB5C8 002B7228 A0 A4 00 00 */ lhz r5, 0(r4)
+/* 802BB5CC 002B722C 7C 9B 23 78 */ mr r27, r4
+/* 802BB5D0 002B7230 A0 04 00 04 */ lhz r0, 4(r4)
+/* 802BB5D4 002B7234 28 05 21 00 */ cmplwi r5, 0x2100
+/* 802BB5D8 002B7238 7C 64 02 14 */ add r3, r4, r0
+/* 802BB5DC 002B723C 38 C3 00 08 */ addi r6, r3, 8
+/* 802BB5E0 002B7240 40 82 00 0C */ bne lbl_802BB5EC
+/* 802BB5E4 002B7244 3B 80 00 02 */ li r28, 2
+/* 802BB5E8 002B7248 48 00 00 20 */ b lbl_802BB608
+lbl_802BB5EC:
+/* 802BB5EC 002B724C 28 05 22 00 */ cmplwi r5, 0x2200
+/* 802BB5F0 002B7250 40 82 00 0C */ bne lbl_802BB5FC
+/* 802BB5F4 002B7254 3B 80 00 03 */ li r28, 3
+/* 802BB5F8 002B7258 48 00 00 10 */ b lbl_802BB608
+lbl_802BB5FC:
+/* 802BB5FC 002B725C 28 05 20 00 */ cmplwi r5, 0x2000
+/* 802BB600 002B7260 40 82 00 08 */ bne lbl_802BB608
+/* 802BB604 002B7264 3B 80 00 00 */ li r28, 0
+lbl_802BB608:
+/* 802BB608 002B7268 28 05 21 00 */ cmplwi r5, 0x2100
+/* 802BB60C 002B726C 40 82 01 20 */ bne lbl_802BB72C
+/* 802BB610 002B7270 3C 60 80 57 */ lis r3, lbl_80568650@ha
+/* 802BB614 002B7274 A0 84 00 02 */ lhz r4, 2(r4)
+/* 802BB618 002B7278 3B C3 86 50 */ addi r30, r3, lbl_80568650@l
+/* 802BB61C 002B727C A0 1E 00 7E */ lhz r0, 0x7e(r30)
+/* 802BB620 002B7280 7C 04 00 40 */ cmplw r4, r0
+/* 802BB624 002B7284 40 81 01 08 */ ble lbl_802BB72C
+/* 802BB628 002B7288 88 06 00 01 */ lbz r0, 1(r6)
+/* 802BB62C 002B728C 88 66 00 00 */ lbz r3, 0(r6)
+/* 802BB630 002B7290 38 C6 00 02 */ addi r6, r6, 2
+/* 802BB634 002B7294 54 00 44 2E */ rlwinm r0, r0, 8, 0x10, 0x17
+/* 802BB638 002B7298 7C 03 02 14 */ add r0, r3, r0
+/* 802BB63C 002B729C 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 802BB640 002B72A0 70 00 CF FF */ andi. r0, r0, 0xcfff
+/* 802BB644 002B72A4 60 1F 10 00 */ ori r31, r0, 0x1000
+/* 802BB648 002B72A8 7F FD 46 70 */ srawi r29, r31, 8
+/* 802BB64C 002B72AC 48 00 00 D0 */ b lbl_802BB71C
+lbl_802BB650:
+/* 802BB650 002B72B0 7C C4 33 78 */ mr r4, r6
+/* 802BB654 002B72B4 7F 83 E3 78 */ mr r3, r28
+/* 802BB658 002B72B8 7F 66 DB 78 */ mr r6, r27
+/* 802BB65C 002B72BC 48 00 10 9D */ bl func_802BC6F8
+/* 802BB660 002B72C0 A0 7B 00 04 */ lhz r3, 4(r27)
+/* 802BB664 002B72C4 A0 1E 00 7C */ lhz r0, 0x7c(r30)
+/* 802BB668 002B72C8 A0 9B 00 02 */ lhz r4, 2(r27)
+/* 802BB66C 002B72CC 7C 03 02 14 */ add r0, r3, r0
+/* 802BB670 002B72D0 B0 1B 00 04 */ sth r0, 4(r27)
+/* 802BB674 002B72D4 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 802BB678 002B72D8 7C 7B 02 14 */ add r3, r27, r0
+/* 802BB67C 002B72DC A0 1E 00 7C */ lhz r0, 0x7c(r30)
+/* 802BB680 002B72E0 38 C3 00 0A */ addi r6, r3, 0xa
+/* 802BB684 002B72E4 7C 00 20 50 */ subf r0, r0, r4
+/* 802BB688 002B72E8 B0 1B 00 02 */ sth r0, 2(r27)
+/* 802BB68C 002B72EC 9B E3 00 08 */ stb r31, 8(r3)
+/* 802BB690 002B72F0 9B A3 00 09 */ stb r29, 9(r3)
+/* 802BB694 002B72F4 A0 7B 00 02 */ lhz r3, 2(r27)
+/* 802BB698 002B72F8 A0 1E 00 7E */ lhz r0, 0x7e(r30)
+/* 802BB69C 002B72FC 7C 03 00 40 */ cmplw r3, r0
+/* 802BB6A0 002B7300 40 81 00 20 */ ble lbl_802BB6C0
+/* 802BB6A4 002B7304 A0 1E 00 7C */ lhz r0, 0x7c(r30)
+/* 802BB6A8 002B7308 98 06 00 00 */ stb r0, 0(r6)
+/* 802BB6AC 002B730C A0 1E 00 7C */ lhz r0, 0x7c(r30)
+/* 802BB6B0 002B7310 7C 00 46 70 */ srawi r0, r0, 8
+/* 802BB6B4 002B7314 98 06 00 01 */ stb r0, 1(r6)
+/* 802BB6B8 002B7318 38 C6 00 02 */ addi r6, r6, 2
+/* 802BB6BC 002B731C 48 00 00 20 */ b lbl_802BB6DC
+lbl_802BB6C0:
+/* 802BB6C0 002B7320 38 03 FF FC */ addi r0, r3, -4
+/* 802BB6C4 002B7324 98 06 00 00 */ stb r0, 0(r6)
+/* 802BB6C8 002B7328 A0 7B 00 02 */ lhz r3, 2(r27)
+/* 802BB6CC 002B732C 38 03 FF FC */ addi r0, r3, -4
+/* 802BB6D0 002B7330 7C 00 46 70 */ srawi r0, r0, 8
+/* 802BB6D4 002B7334 98 06 00 01 */ stb r0, 1(r6)
+/* 802BB6D8 002B7338 38 C6 00 02 */ addi r6, r6, 2
+lbl_802BB6DC:
+/* 802BB6DC 002B733C A0 7B 00 06 */ lhz r3, 6(r27)
+/* 802BB6E0 002B7340 2C 03 00 00 */ cmpwi r3, 0
+/* 802BB6E4 002B7344 41 82 00 38 */ beq lbl_802BB71C
+/* 802BB6E8 002B7348 38 63 FF FF */ addi r3, r3, -1
+/* 802BB6EC 002B734C 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 802BB6F0 002B7350 B0 7B 00 06 */ sth r3, 6(r27)
+/* 802BB6F4 002B7354 40 82 00 28 */ bne lbl_802BB71C
+/* 802BB6F8 002B7358 38 00 19 00 */ li r0, 0x1900
+/* 802BB6FC 002B735C 3C 60 80 56 */ lis r3, lbl_80564DA0@ha
+/* 802BB700 002B7360 B0 1B 00 00 */ sth r0, 0(r27)
+/* 802BB704 002B7364 38 63 4D A0 */ addi r3, r3, lbl_80564DA0@l
+/* 802BB708 002B7368 7F 65 DB 78 */ mr r5, r27
+/* 802BB70C 002B736C 38 80 00 00 */ li r4, 0
+/* 802BB710 002B7370 88 63 00 1F */ lbz r3, 0x1f(r3)
+/* 802BB714 002B7374 4B FF E7 D5 */ bl GKI_send_msg
+/* 802BB718 002B7378 48 00 00 30 */ b lbl_802BB748
+lbl_802BB71C:
+/* 802BB71C 002B737C A0 BE 00 7E */ lhz r5, 0x7e(r30)
+/* 802BB720 002B7380 A0 1B 00 02 */ lhz r0, 2(r27)
+/* 802BB724 002B7384 7C 00 28 40 */ cmplw r0, r5
+/* 802BB728 002B7388 41 81 FF 28 */ bgt lbl_802BB650
+lbl_802BB72C:
+/* 802BB72C 002B738C A0 BB 00 02 */ lhz r5, 2(r27)
+/* 802BB730 002B7390 7C C4 33 78 */ mr r4, r6
+/* 802BB734 002B7394 7F 83 E3 78 */ mr r3, r28
+/* 802BB738 002B7398 7F 66 DB 78 */ mr r6, r27
+/* 802BB73C 002B739C 48 00 0F BD */ bl func_802BC6F8
+/* 802BB740 002B73A0 7F 63 DB 78 */ mr r3, r27
+/* 802BB744 002B73A4 4B FF E5 F1 */ bl GKI_freebuf
+lbl_802BB748:
+/* 802BB748 002B73A8 39 61 00 20 */ addi r11, r1, 0x20
+/* 802BB74C 002B73AC 4B F0 BA 29 */ bl _restgpr_27
+/* 802BB750 002B73B0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802BB754 002B73B4 7C 08 03 A6 */ mtlr r0
+/* 802BB758 002B73B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802BB75C 002B73BC 4E 80 00 20 */ blr
+
+hcisu_h2_init:
+/* 802BB760 002B73C0 3C C0 80 56 */ lis r6, lbl_80564DA0@ha
+/* 802BB764 002B73C4 38 00 00 00 */ li r0, 0
+/* 802BB768 002B73C8 38 C6 4D A0 */ addi r6, r6, lbl_80564DA0@l
+/* 802BB76C 002B73CC 98 06 00 1E */ stb r0, 0x1e(r6)
+/* 802BB770 002B73D0 98 06 00 1A */ stb r0, 0x1a(r6)
+/* 802BB774 002B73D4 98 06 00 1B */ stb r0, 0x1b(r6)
+/* 802BB778 002B73D8 98 06 00 1C */ stb r0, 0x1c(r6)
+/* 802BB77C 002B73DC 98 66 00 1F */ stb r3, 0x1f(r6)
+/* 802BB780 002B73E0 98 86 00 20 */ stb r4, 0x20(r6)
+/* 802BB784 002B73E4 B0 A6 00 12 */ sth r5, 0x12(r6)
+/* 802BB788 002B73E8 4E 80 00 20 */ blr
+
+hcisu_h2_open:
+/* 802BB78C 002B73EC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802BB790 002B73F0 7C 08 02 A6 */ mflr r0
+/* 802BB794 002B73F4 3C A0 80 56 */ lis r5, lbl_80564DA0@ha
+/* 802BB798 002B73F8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802BB79C 002B73FC 38 00 00 00 */ li r0, 0
+/* 802BB7A0 002B7400 38 A5 4D A0 */ addi r5, r5, lbl_80564DA0@l
+/* 802BB7A4 002B7404 98 01 00 13 */ stb r0, 0x13(r1)
+/* 802BB7A8 002B7408 38 00 00 02 */ li r0, 2
+/* 802BB7AC 002B740C 88 85 00 1F */ lbz r4, 0x1f(r5)
+/* 802BB7B0 002B7410 A0 C3 00 00 */ lhz r6, 0(r3)
+/* 802BB7B4 002B7414 B0 C1 00 0C */ sth r6, 0xc(r1)
+/* 802BB7B8 002B7418 A0 C3 00 02 */ lhz r6, 2(r3)
+/* 802BB7BC 002B741C 38 61 00 08 */ addi r3, r1, 8
+/* 802BB7C0 002B7420 B0 C1 00 0E */ sth r6, 0xe(r1)
+/* 802BB7C4 002B7424 B0 81 00 10 */ sth r4, 0x10(r1)
+/* 802BB7C8 002B7428 98 05 00 1E */ stb r0, 0x1e(r5)
+/* 802BB7CC 002B742C 48 00 0B A1 */ bl func_802BC36C
+/* 802BB7D0 002B7430 3C 80 80 2C */ lis r4, hcisu_h2_usb_cback@ha
+/* 802BB7D4 002B7434 38 61 00 08 */ addi r3, r1, 8
+/* 802BB7D8 002B7438 38 84 B1 F8 */ addi r4, r4, hcisu_h2_usb_cback@l
+/* 802BB7DC 002B743C 48 00 0D FD */ bl func_802BC5D8
+/* 802BB7E0 002B7440 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802BB7E4 002B7444 38 60 00 01 */ li r3, 1
+/* 802BB7E8 002B7448 7C 08 03 A6 */ mtlr r0
+/* 802BB7EC 002B744C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802BB7F0 002B7450 4E 80 00 20 */ blr
+
+hcisu_h2_close:
+/* 802BB7F4 002B7454 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BB7F8 002B7458 7C 08 02 A6 */ mflr r0
+/* 802BB7FC 002B745C 3C 60 80 56 */ lis r3, lbl_80564DA0@ha
+/* 802BB800 002B7460 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BB804 002B7464 38 00 00 00 */ li r0, 0
+/* 802BB808 002B7468 38 63 4D A0 */ addi r3, r3, lbl_80564DA0@l
+/* 802BB80C 002B746C 98 03 00 1E */ stb r0, 0x1e(r3)
+/* 802BB810 002B7470 48 00 14 71 */ bl func_802BCC80
+/* 802BB814 002B7474 48 00 15 19 */ bl func_802BCD2C
+/* 802BB818 002B7478 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BB81C 002B747C 7C 08 03 A6 */ mtlr r0
+/* 802BB820 002B7480 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BB824 002B7484 4E 80 00 20 */ blr
+
+hcisu_h2_send:
+/* 802BB828 002B7488 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BB82C 002B748C 7C 08 02 A6 */ mflr r0
+/* 802BB830 002B7490 3C A0 80 56 */ lis r5, lbl_80564DA0@ha
+/* 802BB834 002B7494 7C 64 1B 78 */ mr r4, r3
+/* 802BB838 002B7498 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BB83C 002B749C 38 65 4D A0 */ addi r3, r5, lbl_80564DA0@l
+/* 802BB840 002B74A0 4B FF FD 75 */ bl hcisu_h2_send_msg_now
+/* 802BB844 002B74A4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BB848 002B74A8 38 60 00 01 */ li r3, 1
+/* 802BB84C 002B74AC 7C 08 03 A6 */ mtlr r0
+/* 802BB850 002B74B0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BB854 002B74B4 4E 80 00 20 */ blr
+
+hcisu_h2_handle_event:
+/* 802BB858 002B74B8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BB85C 002B74BC 7C 08 02 A6 */ mflr r0
+/* 802BB860 002B74C0 3C 80 80 56 */ lis r4, lbl_80564DA0@ha
+/* 802BB864 002B74C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BB868 002B74C8 38 84 4D A0 */ addi r4, r4, lbl_80564DA0@l
+/* 802BB86C 002B74CC 38 03 FF F8 */ addi r0, r3, -8
+/* 802BB870 002B74D0 A0 64 00 12 */ lhz r3, 0x12(r4)
+/* 802BB874 002B74D4 7C 03 00 50 */ subf r0, r3, r0
+/* 802BB878 002B74D8 54 03 04 3E */ clrlwi r3, r0, 0x10
+/* 802BB87C 002B74DC 4B FF F9 A1 */ bl hcisu_h2_receive_msg
+/* 802BB880 002B74E0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BB884 002B74E4 38 60 00 00 */ li r3, 0
+/* 802BB888 002B74E8 7C 08 03 A6 */ mtlr r0
+/* 802BB88C 002B74EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BB890 002B74F0 4E 80 00 20 */ blr