summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-05 19:01:28 -0400
committerMax <mparisi@stevens.edu>2020-10-05 19:01:28 -0400
commit3fe6878bb224fc78634e4381f264aeaf1aa9fd0e (patch)
tree6a33a417e969e07dd2a9908e29cc1306f0e65dfa
parent49177bc2222f7bb32a231f3b36d82942bbcbb756 (diff)
split gki_ppc and hcisu_h2
-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
-rw-r--r--asm/text_8_7.s761
-rw-r--r--obj_files.mk2
6 files changed, 785 insertions, 763 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
diff --git a/asm/text_8_7.s b/asm/text_8_7.s
index 93309a5..d3b2661 100644
--- a/asm/text_8_7.s
+++ b/asm/text_8_7.s
@@ -2,677 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_802BAF68
-func_802BAF68:
-/* 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 func_802BAFF8
-func_802BAFF8:
-/* 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 func_802BB0A0
-func_802BB0A0:
-/* 802BB0A0 002B6D00 4E 80 00 20 */ blr
-
-.global func_802BB0A4
-func_802BB0A4:
-/* 802BB0A4 002B6D04 4E 80 00 20 */ blr
-
-.global func_802BB0A8
-func_802BB0A8:
-/* 802BB0A8 002B6D08 4E 80 00 20 */ blr
-
-.global func_802BB0AC
-func_802BB0AC:
-/* 802BB0AC 002B6D0C 4E 80 00 20 */ blr
-
-.global func_802BB0B0
-func_802BB0B0:
-/* 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 func_802BB154
-func_802BB154:
-/* 802BB154 002B6DB4 38 60 00 02 */ li r3, 2
-/* 802BB158 002B6DB8 4E 80 00 20 */ blr
-
-.global func_802BB15C
-func_802BB15C:
-/* 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 func_802BB180
-func_802BB180:
-/* 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 func_802BB1C4
-func_802BB1C4:
-/* 802BB1C4 002B6E24 4E 80 00 20 */ blr
-
-.global func_802BB1C8
-func_802BB1C8:
-/* 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 func_802BB1F4
-func_802BB1F4:
-/* 802BB1F4 002B6E54 4B FF 9B 1C */ b App_MEMfree
-lbl_802BB1F8:
-/* 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 func_802BB21C
-func_802BB21C:
-/* 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 func_802BB5B4
-func_802BB5B4:
-/* 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
-/* 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
-/* 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, lbl_802BB1F8@ha
-/* 802BB7D4 002B7434 38 61 00 08 */ addi r3, r1, 8
-/* 802BB7D8 002B7438 38 84 B1 F8 */ addi r4, r4, lbl_802BB1F8@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
-/* 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
-/* 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 func_802BB5B4
-/* 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
-/* 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 func_802BB21C
-/* 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
lbl_802BB894:
/* 802BB894 002B74F4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802BB898 002B74F8 7C 08 02 A6 */ mflr r0
@@ -691,12 +20,12 @@ lbl_802BB894:
/* 802BB8CC 002B752C 9B DF 00 13 */ stb r30, 0x13(r31)
/* 802BB8D0 002B7530 9B CD AE C8 */ stb r30, lbl_80640188-_SDA_BASE_(r13)
/* 802BB8D4 002B7534 4B FF 85 99 */ bl IUSB_CloseLib
-/* 802BB8D8 002B7538 4B FF F8 A9 */ bl func_802BB180
+/* 802BB8D8 002B7538 4B FF F8 A9 */ bl GKI_disable
/* 802BB8DC 002B753C 38 00 00 05 */ li r0, 5
/* 802BB8E0 002B7540 9B DF 00 28 */ stb r30, 0x28(r31)
/* 802BB8E4 002B7544 98 1F 00 29 */ stb r0, 0x29(r31)
/* 802BB8E8 002B7548 9B CD AE C9 */ stb r30, lbl_80640189-_SDA_BASE_(r13)
-/* 802BB8EC 002B754C 4B FF F8 71 */ bl func_802BB15C
+/* 802BB8EC 002B754C 4B FF F8 71 */ bl GKI_enable
/* 802BB8F0 002B7550 81 9F 00 20 */ lwz r12, 0x20(r31)
/* 802BB8F4 002B7554 2C 0C 00 00 */ cmpwi r12, 0
/* 802BB8F8 002B7558 41 82 00 14 */ beq lbl_802BB90C
@@ -1203,13 +532,13 @@ lbl_802BC000:
/* 802BC004 002B7C64 41 82 00 28 */ beq lbl_802BC02C
/* 802BC008 002B7C68 7F 83 E3 78 */ mr r3, r28
/* 802BC00C 002B7C6C 4B FF DD 29 */ bl GKI_freebuf
-/* 802BC010 002B7C70 4B FF F1 71 */ bl func_802BB180
+/* 802BC010 002B7C70 4B FF F1 71 */ bl GKI_disable
/* 802BC014 002B7C74 3C 80 80 56 */ lis r4, lbl_80564DE0@ha
/* 802BC018 002B7C78 38 84 4D E0 */ addi r4, r4, lbl_80564DE0@l
/* 802BC01C 002B7C7C 88 64 00 48 */ lbz r3, 0x48(r4)
/* 802BC020 002B7C80 38 03 FF FF */ addi r0, r3, -1
/* 802BC024 002B7C84 98 04 00 48 */ stb r0, 0x48(r4)
-/* 802BC028 002B7C88 4B FF F1 35 */ bl func_802BB15C
+/* 802BC028 002B7C88 4B FF F1 35 */ bl GKI_enable
lbl_802BC02C:
/* 802BC02C 002B7C8C 3F C0 80 56 */ lis r30, lbl_80564DE0@ha
/* 802BC030 002B7C90 3B FE 4D E0 */ addi r31, r30, lbl_80564DE0@l
@@ -1251,11 +580,11 @@ lbl_802BC0AC:
/* 802BC0BC 002B7D1C 4B FF E1 D5 */ bl GKI_enqueue_head
/* 802BC0C0 002B7D20 48 00 00 18 */ b lbl_802BC0D8
lbl_802BC0C4:
-/* 802BC0C4 002B7D24 4B FF F0 BD */ bl func_802BB180
+/* 802BC0C4 002B7D24 4B FF F0 BD */ bl GKI_disable
/* 802BC0C8 002B7D28 88 7F 00 48 */ lbz r3, 0x48(r31)
/* 802BC0CC 002B7D2C 38 03 00 01 */ addi r0, r3, 1
/* 802BC0D0 002B7D30 98 1F 00 48 */ stb r0, 0x48(r31)
-/* 802BC0D4 002B7D34 4B FF F0 89 */ bl func_802BB15C
+/* 802BC0D4 002B7D34 4B FF F0 89 */ bl GKI_enable
lbl_802BC0D8:
/* 802BC0D8 002B7D38 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BC0DC 002B7D3C 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -1303,13 +632,13 @@ lbl_802BC174:
/* 802BC178 002B7DD8 41 82 00 28 */ beq lbl_802BC1A0
/* 802BC17C 002B7DDC 7F 83 E3 78 */ mr r3, r28
/* 802BC180 002B7DE0 4B FF DB B5 */ bl GKI_freebuf
-/* 802BC184 002B7DE4 4B FF EF FD */ bl func_802BB180
+/* 802BC184 002B7DE4 4B FF EF FD */ bl GKI_disable
/* 802BC188 002B7DE8 3C 80 80 56 */ lis r4, lbl_80564DE0@ha
/* 802BC18C 002B7DEC 38 84 4D E0 */ addi r4, r4, lbl_80564DE0@l
/* 802BC190 002B7DF0 88 64 00 38 */ lbz r3, 0x38(r4)
/* 802BC194 002B7DF4 38 03 FF FF */ addi r0, r3, -1
/* 802BC198 002B7DF8 98 04 00 38 */ stb r0, 0x38(r4)
-/* 802BC19C 002B7DFC 4B FF EF C1 */ bl func_802BB15C
+/* 802BC19C 002B7DFC 4B FF EF C1 */ bl GKI_enable
lbl_802BC1A0:
/* 802BC1A0 002B7E00 3F C0 80 56 */ lis r30, lbl_80564DE0@ha
/* 802BC1A4 002B7E04 3B FE 4D E0 */ addi r31, r30, lbl_80564DE0@l
@@ -1348,11 +677,11 @@ lbl_802BC214:
/* 802BC224 002B7E84 4B FF E0 6D */ bl GKI_enqueue_head
/* 802BC228 002B7E88 48 00 00 18 */ b lbl_802BC240
lbl_802BC22C:
-/* 802BC22C 002B7E8C 4B FF EF 55 */ bl func_802BB180
+/* 802BC22C 002B7E8C 4B FF EF 55 */ bl GKI_disable
/* 802BC230 002B7E90 88 7F 00 38 */ lbz r3, 0x38(r31)
/* 802BC234 002B7E94 38 03 00 01 */ addi r0, r3, 1
/* 802BC238 002B7E98 98 1F 00 38 */ stb r0, 0x38(r31)
-/* 802BC23C 002B7E9C 4B FF EF 21 */ bl func_802BB15C
+/* 802BC23C 002B7E9C 4B FF EF 21 */ bl GKI_enable
lbl_802BC240:
/* 802BC240 002B7EA0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BC244 002B7EA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -1455,11 +784,11 @@ func_802BC36C:
/* 802BC398 002B7FF8 3F A0 80 56 */ lis r29, lbl_80564DE0@ha
/* 802BC39C 002B7FFC 38 7D 4D E0 */ addi r3, r29, lbl_80564DE0@l
/* 802BC3A0 002B8000 4B D4 7D 65 */ bl memset
-/* 802BC3A4 002B8004 4B FF ED DD */ bl func_802BB180
+/* 802BC3A4 002B8004 4B FF ED DD */ bl GKI_disable
/* 802BC3A8 002B8008 3B BD 4D E0 */ addi r29, r29, 0x4de0
/* 802BC3AC 002B800C 38 00 00 05 */ li r0, 5
/* 802BC3B0 002B8010 98 1D 00 29 */ stb r0, 0x29(r29)
-/* 802BC3B4 002B8014 4B FF ED A9 */ bl func_802BB15C
+/* 802BC3B4 002B8014 4B FF ED A9 */ bl GKI_enable
/* 802BC3B8 002B8018 88 0D AE C9 */ lbz r0, lbl_80640189-_SDA_BASE_(r13)
/* 802BC3BC 002B801C 2C 00 00 00 */ cmpwi r0, 0
/* 802BC3C0 002B8020 40 82 00 14 */ bne lbl_802BC3D4
@@ -1591,12 +920,12 @@ lbl_802BC584:
/* 802BC594 002B81F4 4C C6 31 82 */ crclr 6
/* 802BC598 002B81F8 4B D4 B5 2D */ bl func_80007AC4
lbl_802BC59C:
-/* 802BC59C 002B81FC 4B FF EB E5 */ bl func_802BB180
+/* 802BC59C 002B81FC 4B FF EB E5 */ bl GKI_disable
/* 802BC5A0 002B8200 3C 60 80 56 */ lis r3, lbl_80564DE0@ha
/* 802BC5A4 002B8204 38 00 00 04 */ li r0, 4
/* 802BC5A8 002B8208 38 63 4D E0 */ addi r3, r3, lbl_80564DE0@l
/* 802BC5AC 002B820C 98 03 00 29 */ stb r0, 0x29(r3)
-/* 802BC5B0 002B8210 4B FF EB AD */ bl func_802BB15C
+/* 802BC5B0 002B8210 4B FF EB AD */ bl GKI_enable
/* 802BC5B4 002B8214 38 00 00 01 */ li r0, 1
/* 802BC5B8 002B8218 90 0D 89 C8 */ stw r0, lbl_8063DC88-_SDA_BASE_(r13)
lbl_802BC5BC:
@@ -1669,11 +998,11 @@ lbl_802BC688:
/* 802BC6A8 002B8308 4B D4 B4 1D */ bl func_80007AC4
/* 802BC6AC 002B830C 48 00 00 28 */ b lbl_802BC6D4
lbl_802BC6B0:
-/* 802BC6B0 002B8310 4B FF EA D1 */ bl func_802BB180
+/* 802BC6B0 002B8310 4B FF EA D1 */ bl GKI_disable
/* 802BC6B4 002B8314 38 00 00 02 */ li r0, 2
/* 802BC6B8 002B8318 93 BF 00 20 */ stw r29, 0x20(r31)
/* 802BC6BC 002B831C 98 1F 00 29 */ stb r0, 0x29(r31)
-/* 802BC6C0 002B8320 4B FF EA 9D */ bl func_802BB15C
+/* 802BC6C0 002B8320 4B FF EA 9D */ bl GKI_enable
/* 802BC6C4 002B8324 4B FF F7 9D */ bl func_802BBE60
/* 802BC6C8 002B8328 4B FF F6 85 */ bl func_802BBD4C
/* 802BC6CC 002B832C 38 00 00 00 */ li r0, 0
@@ -1918,11 +1247,11 @@ lbl_802BCA14:
/* 802BCA18 002B8678 4B FF D3 1D */ bl GKI_freebuf
/* 802BCA1C 002B867C 48 00 02 48 */ b lbl_802BCC64
lbl_802BCA20:
-/* 802BCA20 002B8680 4B FF E7 61 */ bl func_802BB180
+/* 802BCA20 002B8680 4B FF E7 61 */ bl GKI_disable
/* 802BCA24 002B8684 88 7A 00 48 */ lbz r3, 0x48(r26)
/* 802BCA28 002B8688 38 03 00 01 */ addi r0, r3, 1
/* 802BCA2C 002B868C 98 1A 00 48 */ stb r0, 0x48(r26)
-/* 802BCA30 002B8690 4B FF E7 2D */ bl func_802BB15C
+/* 802BCA30 002B8690 4B FF E7 2D */ bl GKI_enable
/* 802BCA34 002B8694 48 00 02 30 */ b lbl_802BCC64
lbl_802BCA38:
/* 802BCA38 002B8698 3F A0 80 56 */ lis r29, lbl_80564DE0@ha
@@ -2073,11 +1402,11 @@ lbl_802BCC44:
/* 802BCC48 002B88A8 4B FF D0 ED */ bl GKI_freebuf
/* 802BCC4C 002B88AC 48 00 00 18 */ b lbl_802BCC64
lbl_802BCC50:
-/* 802BCC50 002B88B0 4B FF E5 31 */ bl func_802BB180
+/* 802BCC50 002B88B0 4B FF E5 31 */ bl GKI_disable
/* 802BCC54 002B88B4 88 7B 00 38 */ lbz r3, 0x38(r27)
/* 802BCC58 002B88B8 38 03 00 01 */ addi r0, r3, 1
/* 802BCC5C 002B88BC 98 1B 00 38 */ stb r0, 0x38(r27)
-/* 802BCC60 002B88C0 4B FF E4 FD */ bl func_802BB15C
+/* 802BCC60 002B88C0 4B FF E4 FD */ bl GKI_enable
lbl_802BCC64:
/* 802BCC64 002B88C4 57 A3 04 3E */ clrlwi r3, r29, 0x10
lbl_802BCC68:
@@ -2094,12 +1423,12 @@ func_802BCC80:
/* 802BCC84 002B88E4 7C 08 02 A6 */ mflr r0
/* 802BCC88 002B88E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BCC8C 002B88EC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802BCC90 002B88F0 4B FF E4 F1 */ bl func_802BB180
+/* 802BCC90 002B88F0 4B FF E4 F1 */ bl GKI_disable
/* 802BCC94 002B88F4 3C 60 80 56 */ lis r3, lbl_80564DE0@ha
/* 802BCC98 002B88F8 38 00 00 00 */ li r0, 0
/* 802BCC9C 002B88FC 3B E3 4D E0 */ addi r31, r3, lbl_80564DE0@l
/* 802BCCA0 002B8900 98 1F 00 29 */ stb r0, 0x29(r31)
-/* 802BCCA4 002B8904 4B FF E4 B9 */ bl func_802BB15C
+/* 802BCCA4 002B8904 4B FF E4 B9 */ bl GKI_enable
/* 802BCCA8 002B8908 A0 1F 00 34 */ lhz r0, 0x34(r31)
/* 802BCCAC 002B890C 2C 00 00 00 */ cmpwi r0, 0
/* 802BCCB0 002B8910 41 82 00 20 */ beq lbl_802BCCD0
@@ -2146,7 +1475,7 @@ func_802BCD2C:
/* 802BCD30 002B8990 7C 08 02 A6 */ mflr r0
/* 802BCD34 002B8994 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BCD38 002B8998 4B FF 71 35 */ bl IUSB_CloseLib
-/* 802BCD3C 002B899C 4B FF E4 45 */ bl func_802BB180
+/* 802BCD3C 002B899C 4B FF E4 45 */ bl GKI_disable
/* 802BCD40 002B89A0 3C 60 80 56 */ lis r3, lbl_80564DE0@ha
/* 802BCD44 002B89A4 38 00 00 00 */ li r0, 0
/* 802BCD48 002B89A8 38 63 4D E0 */ addi r3, r3, lbl_80564DE0@l
@@ -2154,7 +1483,7 @@ func_802BCD2C:
/* 802BCD50 002B89B0 98 83 00 29 */ stb r4, 0x29(r3)
/* 802BCD54 002B89B4 98 03 00 28 */ stb r0, 0x28(r3)
/* 802BCD58 002B89B8 98 0D AE C9 */ stb r0, lbl_80640189-_SDA_BASE_(r13)
-/* 802BCD5C 002B89BC 4B FF E4 01 */ bl func_802BB15C
+/* 802BCD5C 002B89BC 4B FF E4 01 */ bl GKI_enable
/* 802BCD60 002B89C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BCD64 002B89C4 7C 08 03 A6 */ mtlr r0
/* 802BCD68 002B89C8 38 21 00 10 */ addi r1, r1, 0x10
@@ -2360,8 +1689,8 @@ func_802BCFD0:
/* 802BCFDC 002B8C3C 38 00 00 00 */ li r0, 0
/* 802BCFE0 002B8C40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BCFE4 002B8C44 90 0D AE EC */ stw r0, lbl_806401AC-_SDA_BASE_(r13)
-/* 802BCFE8 002B8C48 4B FF DF 81 */ bl func_802BAF68
-/* 802BCFEC 002B8C4C 4B FF E1 71 */ bl func_802BB15C
+/* 802BCFE8 002B8C48 4B FF DF 81 */ bl GKI_init
+/* 802BCFEC 002B8C4C 4B FF E1 71 */ bl GKI_enable
/* 802BCFF0 002B8C50 48 01 1B 15 */ bl func_802CEB04
/* 802BCFF4 002B8C54 3C 80 80 40 */ lis r4, lbl_803FDAA8@ha
/* 802BCFF8 002B8C58 38 0D 8A 20 */ addi r0, r13, lbl_8063DCE0-_SDA_BASE_
@@ -2373,7 +1702,7 @@ func_802BCFD0:
/* 802BD010 002B8C70 48 00 00 0C */ b lbl_802BD01C
lbl_802BD014:
/* 802BD014 002B8C74 38 60 00 64 */ li r3, 0x64
-/* 802BD018 002B8C78 4B FF E0 95 */ bl func_802BB0AC
+/* 802BD018 002B8C78 4B FF E0 95 */ bl GKI_delay
lbl_802BD01C:
/* 802BD01C 002B8C7C 80 0D 89 C8 */ lwz r0, lbl_8063DC88-_SDA_BASE_(r13)
/* 802BD020 002B8C80 2C 00 00 00 */ cmpwi r0, 0
@@ -2398,11 +1727,11 @@ lbl_802BD01C:
/* 802BD06C 002B8CCC 54 08 D9 7C */ rlwinm r8, r0, 0x1b, 5, 0x1e
/* 802BD070 002B8CD0 4B FA C9 85 */ bl OSSetPeriodicAlarm
/* 802BD074 002B8CD4 38 60 00 00 */ li r3, 0
-/* 802BD078 002B8CD8 4B FF E0 29 */ bl func_802BB0A0
+/* 802BD078 002B8CD8 4B FF E0 29 */ bl GKI_run
/* 802BD07C 002B8CDC 48 00 00 0C */ b lbl_802BD088
lbl_802BD080:
/* 802BD080 002B8CE0 38 60 07 D0 */ li r3, 0x7d0
-/* 802BD084 002B8CE4 4B FF E0 29 */ bl func_802BB0AC
+/* 802BD084 002B8CE4 4B FF E0 29 */ bl GKI_delay
lbl_802BD088:
/* 802BD088 002B8CE8 48 00 30 65 */ bl func_802C00EC
/* 802BD08C 002B8CEC 54 60 06 3F */ clrlwi. r0, r3, 0x18
@@ -2424,11 +1753,13 @@ func_802BD0AC:
/* 802BD0C0 002B8D20 38 63 86 20 */ addi r3, r3, lbl_80568620@l
/* 802BD0C4 002B8D24 4B FA C9 B5 */ bl OSCancelAlarm
/* 802BD0C8 002B8D28 4B FF FD 2D */ bl func_802BCDF4
-/* 802BD0CC 002B8D2C 4B FF DF 2D */ bl func_802BAFF8
+/* 802BD0CC 002B8D2C 4B FF DF 2D */ bl GKI_shutdown
/* 802BD0D0 002B8D30 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BD0D4 002B8D34 7C 08 03 A6 */ mtlr r0
/* 802BD0D8 002B8D38 38 21 00 10 */ addi r1, r1, 0x10
/* 802BD0DC 002B8D3C 4E 80 00 20 */ blr
+
+.global lbl_802BD0E0
lbl_802BD0E0:
/* 802BD0E0 002B8D40 81 8D AE EC */ lwz r12, lbl_806401AC-_SDA_BASE_(r13)
/* 802BD0E4 002B8D44 2C 0C 00 00 */ cmpwi r12, 0
@@ -2473,7 +1804,7 @@ lbl_802BD150:
/* 802BD16C 002B8DCC 80 6D AE F0 */ lwz r3, lbl_806401B0-_SDA_BASE_(r13)
/* 802BD170 002B8DD0 38 03 00 01 */ addi r0, r3, 1
/* 802BD174 002B8DD4 90 0D AE F0 */ stw r0, lbl_806401B0-_SDA_BASE_(r13)
-/* 802BD178 002B8DD8 4B FF E0 09 */ bl func_802BB180
+/* 802BD178 002B8DD8 4B FF E0 09 */ bl GKI_disable
/* 802BD17C 002B8DDC 80 0D 8A 2C */ lwz r0, lbl_8063DCEC-_SDA_BASE_(r13)
/* 802BD180 002B8DE0 2C 00 00 00 */ cmpwi r0, 0
/* 802BD184 002B8DE4 41 82 00 18 */ beq lbl_802BD19C
@@ -2486,10 +1817,10 @@ lbl_802BD19C:
/* 802BD19C 002B8DFC 88 6D 8A 28 */ lbz r3, lbl_8063DCE8-_SDA_BASE_(r13)
/* 802BD1A0 002B8E00 38 03 00 01 */ addi r0, r3, 1
/* 802BD1A4 002B8E04 98 0D 8A 28 */ stb r0, lbl_8063DCE8-_SDA_BASE_(r13)
-/* 802BD1A8 002B8E08 4B FF DF B5 */ bl func_802BB15C
+/* 802BD1A8 002B8E08 4B FF DF B5 */ bl GKI_enable
/* 802BD1AC 002B8E0C 48 00 03 18 */ b lbl_802BD4C4
lbl_802BD1B0:
-/* 802BD1B0 002B8E10 4B FF DF AD */ bl func_802BB15C
+/* 802BD1B0 002B8E10 4B FF DF AD */ bl GKI_enable
/* 802BD1B4 002B8E14 80 6D AE F4 */ lwz r3, lbl_806401B4-_SDA_BASE_(r13)
/* 802BD1B8 002B8E18 3B E0 00 05 */ li r31, 5
/* 802BD1BC 002B8E1C 80 8D AE F0 */ lwz r4, lbl_806401B0-_SDA_BASE_(r13)
@@ -3036,7 +2367,7 @@ func_802BD888:
/* 802BD8B8 002B9518 38 80 03 E8 */ li r4, 0x3e8
/* 802BD8BC 002B951C 88 A5 00 03 */ lbz r5, 3(r5)
/* 802BD8C0 002B9520 48 00 02 0D */ bl func_802BDACC
-/* 802BD8C4 002B9524 4B FF D8 91 */ bl func_802BB154
+/* 802BD8C4 002B9524 4B FF D8 91 */ bl GKI_get_taskid
/* 802BD8C8 002B9528 98 7F 00 7D */ stb r3, 0x7d(r31)
/* 802BD8CC 002B952C 80 6D 8A 10 */ lwz r3, lbl_8063DCD0-_SDA_BASE_(r13)
/* 802BD8D0 002B9530 88 03 00 04 */ lbz r0, 4(r3)
@@ -5796,14 +5127,14 @@ func_802C002C:
/* 802C0048 002BBCA8 38 64 88 14 */ addi r3, r4, lbl_80568814@l
/* 802C004C 002BBCAC 38 80 00 00 */ li r4, 0
/* 802C0050 002BBCB0 4B D4 40 B5 */ bl memset
-/* 802C0054 002BBCB4 4B FF B0 51 */ bl func_802BB0A4
+/* 802C0054 002BBCB4 4B FF B0 51 */ bl GKI_sched_lock
/* 802C0058 002BBCB8 38 60 00 01 */ li r3, 1
/* 802C005C 002BBCBC 38 82 A4 58 */ addi r4, r2, lbl_80642A58-_SDA2_BASE_
/* 802C0060 002BBCC0 4B FF D9 99 */ bl func_802BD9F8
/* 802C0064 002BBCC4 38 60 00 02 */ li r3, 2
/* 802C0068 002BBCC8 38 82 A4 60 */ addi r4, r2, lbl_80642A60-_SDA2_BASE_
/* 802C006C 002BBCCC 4B FF D9 8D */ bl func_802BD9F8
-/* 802C0070 002BBCD0 4B FF B0 39 */ bl func_802BB0A8
+/* 802C0070 002BBCD0 4B FF B0 39 */ bl GKI_sched_unlock
/* 802C0074 002BBCD4 38 60 00 0C */ li r3, 0xc
/* 802C0078 002BBCD8 4B FF 9A 35 */ bl GKI_getbuf
/* 802C007C 002BBCDC 2C 03 00 00 */ cmpwi r3, 0
@@ -5847,10 +5178,10 @@ func_802C00EC:
/* 802C00F0 002BBD50 7C 08 02 A6 */ mflr r0
/* 802C00F4 002BBD54 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C00F8 002BBD58 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802C00FC 002BBD5C 4B FF AF A9 */ bl func_802BB0A4
+/* 802C00FC 002BBD5C 4B FF AF A9 */ bl GKI_sched_lock
/* 802C0100 002BBD60 48 00 59 D1 */ bl func_802C5AD0
/* 802C0104 002BBD64 7C 7F 1B 78 */ mr r31, r3
-/* 802C0108 002BBD68 4B FF AF A1 */ bl func_802BB0A8
+/* 802C0108 002BBD68 4B FF AF A1 */ bl GKI_sched_unlock
/* 802C010C 002BBD6C 7F E3 FB 78 */ mr r3, r31
/* 802C0110 002BBD70 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C0114 002BBD74 80 01 00 14 */ lwz r0, 0x14(r1)
@@ -6055,7 +5386,7 @@ lbl_802C03B8:
/* 802C03C4 002BC024 28 00 00 17 */ cmplwi r0, 0x17
/* 802C03C8 002BC028 41 80 FF B4 */ blt lbl_802C037C
lbl_802C03CC:
-/* 802C03CC 002BC02C 4B FF AC D9 */ bl func_802BB0A4
+/* 802C03CC 002BC02C 4B FF AC D9 */ bl GKI_sched_lock
/* 802C03D0 002BC030 7F 83 E3 78 */ mr r3, r28
/* 802C03D4 002BC034 7F A8 EB 78 */ mr r8, r29
/* 802C03D8 002BC038 38 E1 00 08 */ addi r7, r1, 8
@@ -6064,7 +5395,7 @@ lbl_802C03CC:
/* 802C03E4 002BC044 38 C0 00 00 */ li r6, 0
/* 802C03E8 002BC048 48 00 4D 89 */ bl func_802C5170
/* 802C03EC 002BC04C 7C 7C 1B 78 */ mr r28, r3
-/* 802C03F0 002BC050 4B FF AC B9 */ bl func_802BB0A8
+/* 802C03F0 002BC050 4B FF AC B9 */ bl GKI_sched_unlock
/* 802C03F4 002BC054 57 80 06 3E */ clrlwi r0, r28, 0x18
/* 802C03F8 002BC058 39 61 00 30 */ addi r11, r1, 0x30
/* 802C03FC 002BC05C 7C 00 00 34 */ cntlzw r0, r0
@@ -6082,11 +5413,11 @@ func_802C0418:
/* 802C0420 002BC080 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C0424 002BC084 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802C0428 002BC088 7C 7F 1B 78 */ mr r31, r3
-/* 802C042C 002BC08C 4B FF AC 79 */ bl func_802BB0A4
+/* 802C042C 002BC08C 4B FF AC 79 */ bl GKI_sched_lock
/* 802C0430 002BC090 7F E3 FB 78 */ mr r3, r31
/* 802C0434 002BC094 48 00 4E C5 */ bl func_802C52F8
/* 802C0438 002BC098 7C 7F 1B 78 */ mr r31, r3
-/* 802C043C 002BC09C 4B FF AC 6D */ bl func_802BB0A8
+/* 802C043C 002BC09C 4B FF AC 6D */ bl GKI_sched_unlock
/* 802C0440 002BC0A0 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 802C0444 002BC0A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C0448 002BC0A8 7C 00 00 34 */ cntlzw r0, r0
@@ -8550,11 +7881,11 @@ func_802C275C:
/* 802C2770 002BE3D0 7C 9E 23 78 */ mr r30, r4
/* 802C2774 002BE3D4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802C2778 002BE3D8 7C 7D 1B 78 */ mr r29, r3
-/* 802C277C 002BE3DC 4B FF 89 29 */ bl func_802BB0A4
+/* 802C277C 002BE3DC 4B FF 89 29 */ bl GKI_sched_lock
/* 802C2780 002BE3E0 38 60 00 17 */ li r3, 0x17
/* 802C2784 002BE3E4 38 82 A4 68 */ addi r4, r2, lbl_80642A68-_SDA2_BASE_
/* 802C2788 002BE3E8 4B FF B2 71 */ bl func_802BD9F8
-/* 802C278C 002BE3EC 4B FF 89 1D */ bl func_802BB0A8
+/* 802C278C 002BE3EC 4B FF 89 1D */ bl GKI_sched_unlock
/* 802C2790 002BE3F0 38 60 00 34 */ li r3, 0x34
/* 802C2794 002BE3F4 4B FF 73 19 */ bl GKI_getbuf
/* 802C2798 002BE3F8 2C 03 00 00 */ cmpwi r3, 0
diff --git a/obj_files.mk b/obj_files.mk
index 87970d8..d6a6041 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -231,6 +231,8 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/SDK/WUD/debug_msg.o \
$(BUILD_DIR)/asm/SDK/BTE/gki_buffer.o \
$(BUILD_DIR)/asm/SDK/BTE/gki_time.o \
+ $(BUILD_DIR)/asm/SDK/BTE/gki_ppc.o \
+ $(BUILD_DIR)/asm/SDK/BTE/hcisu_h2.o \
$(BUILD_DIR)/asm/text_8_7.o \
$(BUILD_DIR)/asm/text_9.o \
$(BUILD_DIR)/asm/text_10.o \