summaryrefslogtreecommitdiff
path: root/asm/TRK_MINNOW_DOLPHIN/msghndlr.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/TRK_MINNOW_DOLPHIN/msghndlr.s')
-rw-r--r--asm/TRK_MINNOW_DOLPHIN/msghndlr.s1434
1 files changed, 1434 insertions, 0 deletions
diff --git a/asm/TRK_MINNOW_DOLPHIN/msghndlr.s b/asm/TRK_MINNOW_DOLPHIN/msghndlr.s
new file mode 100644
index 0000000..69b3e1d
--- /dev/null
+++ b/asm/TRK_MINNOW_DOLPHIN/msghndlr.s
@@ -0,0 +1,1434 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80005600 - 0x8036FBA0
+.global TRKMessageIntoReply
+TRKMessageIntoReply:
+/* 80088B2C 00085A6C 7C 08 02 A6 */ mflr r0
+/* 80088B30 00085A70 90 01 00 04 */ stw r0, 4(r1)
+/* 80088B34 00085A74 94 21 FF E8 */ stwu r1, -0x18(r1)
+/* 80088B38 00085A78 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 80088B3C 00085A7C 3B E5 00 00 */ addi r31, r5, 0
+/* 80088B40 00085A80 93 C1 00 10 */ stw r30, 0x10(r1)
+/* 80088B44 00085A84 3B C4 00 00 */ addi r30, r4, 0
+/* 80088B48 00085A88 38 80 00 01 */ li r4, 1
+/* 80088B4C 00085A8C 93 A1 00 0C */ stw r29, 0xc(r1)
+/* 80088B50 00085A90 3B A3 00 00 */ addi r29, r3, 0
+/* 80088B54 00085A94 4B FF F6 DD */ bl TRKResetBuffer
+/* 80088B58 00085A98 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80088B5C 00085A9C 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088B60 00085AA0 40 80 00 20 */ bge lbl_80088B80
+/* 80088B64 00085AA4 38 03 00 01 */ addi r0, r3, 1
+/* 80088B68 00085AA8 7C 7D 1A 14 */ add r3, r29, r3
+/* 80088B6C 00085AAC 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 80088B70 00085AB0 9B C3 00 10 */ stb r30, 0x10(r3)
+/* 80088B74 00085AB4 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80088B78 00085AB8 38 03 00 01 */ addi r0, r3, 1
+/* 80088B7C 00085ABC 90 1D 00 08 */ stw r0, 8(r29)
+lbl_80088B80:
+/* 80088B80 00085AC0 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80088B84 00085AC4 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088B88 00085AC8 40 80 00 20 */ bge lbl_80088BA8
+/* 80088B8C 00085ACC 38 03 00 01 */ addi r0, r3, 1
+/* 80088B90 00085AD0 7C 7D 1A 14 */ add r3, r29, r3
+/* 80088B94 00085AD4 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 80088B98 00085AD8 9B E3 00 10 */ stb r31, 0x10(r3)
+/* 80088B9C 00085ADC 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80088BA0 00085AE0 38 03 00 01 */ addi r0, r3, 1
+/* 80088BA4 00085AE4 90 1D 00 08 */ stw r0, 8(r29)
+lbl_80088BA8:
+/* 80088BA8 00085AE8 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 80088BAC 00085AEC 83 C1 00 10 */ lwz r30, 0x10(r1)
+/* 80088BB0 00085AF0 83 A1 00 0C */ lwz r29, 0xc(r1)
+/* 80088BB4 00085AF4 38 21 00 18 */ addi r1, r1, 0x18
+/* 80088BB8 00085AF8 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088BBC 00085AFC 7C 08 03 A6 */ mtlr r0
+/* 80088BC0 00085B00 4E 80 00 20 */ blr
+
+.global TRKSendACK
+TRKSendACK:
+/* 80088BC4 00085B04 7C 08 02 A6 */ mflr r0
+/* 80088BC8 00085B08 90 01 00 04 */ stw r0, 4(r1)
+/* 80088BCC 00085B0C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80088BD0 00085B10 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80088BD4 00085B14 3B E0 00 03 */ li r31, 3
+/* 80088BD8 00085B18 93 C1 00 08 */ stw r30, 8(r1)
+/* 80088BDC 00085B1C 3B C3 00 00 */ addi r30, r3, 0
+lbl_80088BE0:
+/* 80088BE0 00085B20 7F C3 F3 78 */ mr r3, r30
+/* 80088BE4 00085B24 4B FF F4 75 */ bl TRKMessageSend
+/* 80088BE8 00085B28 2C 03 00 00 */ cmpwi r3, 0
+/* 80088BEC 00085B2C 3B FF FF FF */ addi r31, r31, -1
+/* 80088BF0 00085B30 41 82 00 0C */ beq lbl_80088BFC
+/* 80088BF4 00085B34 2C 1F 00 00 */ cmpwi r31, 0
+/* 80088BF8 00085B38 41 81 FF E8 */ bgt lbl_80088BE0
+lbl_80088BFC:
+/* 80088BFC 00085B3C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80088C00 00085B40 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80088C04 00085B44 38 21 00 10 */ addi r1, r1, 0x10
+/* 80088C08 00085B48 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088C0C 00085B4C 7C 08 03 A6 */ mtlr r0
+/* 80088C10 00085B50 4E 80 00 20 */ blr
+
+.global TRKStandardACK
+TRKStandardACK:
+/* 80088C14 00085B54 7C 08 02 A6 */ mflr r0
+/* 80088C18 00085B58 90 01 00 04 */ stw r0, 4(r1)
+/* 80088C1C 00085B5C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80088C20 00085B60 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80088C24 00085B64 7C 7F 1B 78 */ mr r31, r3
+/* 80088C28 00085B68 4B FF FF 05 */ bl TRKMessageIntoReply
+/* 80088C2C 00085B6C 7F E3 FB 78 */ mr r3, r31
+/* 80088C30 00085B70 4B FF FF 95 */ bl TRKSendACK
+/* 80088C34 00085B74 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80088C38 00085B78 38 21 00 10 */ addi r1, r1, 0x10
+/* 80088C3C 00085B7C 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088C40 00085B80 7C 08 03 A6 */ mtlr r0
+/* 80088C44 00085B84 4E 80 00 20 */ blr
+
+.global TRKDoUnsupported
+TRKDoUnsupported:
+/* 80088C48 00085B88 7C 08 02 A6 */ mflr r0
+/* 80088C4C 00085B8C 38 80 00 80 */ li r4, 0x80
+/* 80088C50 00085B90 90 01 00 04 */ stw r0, 4(r1)
+/* 80088C54 00085B94 38 A0 00 10 */ li r5, 0x10
+/* 80088C58 00085B98 94 21 FF F8 */ stwu r1, -8(r1)
+/* 80088C5C 00085B9C 4B FF FF B9 */ bl TRKStandardACK
+/* 80088C60 00085BA0 38 21 00 08 */ addi r1, r1, 8
+/* 80088C64 00085BA4 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088C68 00085BA8 7C 08 03 A6 */ mtlr r0
+/* 80088C6C 00085BAC 4E 80 00 20 */ blr
+
+.global TRKDoConnect
+TRKDoConnect:
+/* 80088C70 00085BB0 7C 08 02 A6 */ mflr r0
+/* 80088C74 00085BB4 38 80 00 80 */ li r4, 0x80
+/* 80088C78 00085BB8 90 01 00 04 */ stw r0, 4(r1)
+/* 80088C7C 00085BBC 38 A0 00 00 */ li r5, 0
+/* 80088C80 00085BC0 94 21 FF F8 */ stwu r1, -8(r1)
+/* 80088C84 00085BC4 4B FF FF 91 */ bl TRKStandardACK
+/* 80088C88 00085BC8 38 21 00 08 */ addi r1, r1, 8
+/* 80088C8C 00085BCC 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088C90 00085BD0 7C 08 03 A6 */ mtlr r0
+/* 80088C94 00085BD4 4E 80 00 20 */ blr
+
+.global TRKDoDisconnect
+TRKDoDisconnect:
+/* 80088C98 00085BD8 7C 08 02 A6 */ mflr r0
+/* 80088C9C 00085BDC 38 80 00 80 */ li r4, 0x80
+/* 80088CA0 00085BE0 90 01 00 04 */ stw r0, 4(r1)
+/* 80088CA4 00085BE4 38 A0 00 00 */ li r5, 0
+/* 80088CA8 00085BE8 94 21 FF E8 */ stwu r1, -0x18(r1)
+/* 80088CAC 00085BEC 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 80088CB0 00085BF0 4B FF FF 65 */ bl TRKStandardACK
+/* 80088CB4 00085BF4 7C 7F 1B 79 */ or. r31, r3, r3
+/* 80088CB8 00085BF8 40 82 00 18 */ bne lbl_80088CD0
+/* 80088CBC 00085BFC 38 61 00 08 */ addi r3, r1, 8
+/* 80088CC0 00085C00 38 80 00 01 */ li r4, 1
+/* 80088CC4 00085C04 4B FF F1 C5 */ bl TRKConstructEvent
+/* 80088CC8 00085C08 38 61 00 08 */ addi r3, r1, 8
+/* 80088CCC 00085C0C 4B FF F0 DD */ bl TRKPostEvent
+lbl_80088CD0:
+/* 80088CD0 00085C10 7F E3 FB 78 */ mr r3, r31
+/* 80088CD4 00085C14 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 80088CD8 00085C18 38 21 00 18 */ addi r1, r1, 0x18
+/* 80088CDC 00085C1C 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088CE0 00085C20 7C 08 03 A6 */ mtlr r0
+/* 80088CE4 00085C24 4E 80 00 20 */ blr
+
+.global TRKDoReset
+TRKDoReset:
+/* 80088CE8 00085C28 7C 08 02 A6 */ mflr r0
+/* 80088CEC 00085C2C 38 80 00 80 */ li r4, 0x80
+/* 80088CF0 00085C30 90 01 00 04 */ stw r0, 4(r1)
+/* 80088CF4 00085C34 38 A0 00 00 */ li r5, 0
+/* 80088CF8 00085C38 94 21 FF F8 */ stwu r1, -8(r1)
+/* 80088CFC 00085C3C 4B FF FF 19 */ bl TRKStandardACK
+/* 80088D00 00085C40 4B F7 C4 CD */ bl __TRK_reset
+/* 80088D04 00085C44 38 60 00 00 */ li r3, 0
+/* 80088D08 00085C48 38 21 00 08 */ addi r1, r1, 8
+/* 80088D0C 00085C4C 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088D10 00085C50 7C 08 03 A6 */ mtlr r0
+/* 80088D14 00085C54 4E 80 00 20 */ blr
+
+.global TRKDoVersions
+TRKDoVersions:
+/* 80088D18 00085C58 7C 08 02 A6 */ mflr r0
+/* 80088D1C 00085C5C 90 01 00 04 */ stw r0, 4(r1)
+/* 80088D20 00085C60 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80088D24 00085C64 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80088D28 00085C68 7C 7F 1B 78 */ mr r31, r3
+/* 80088D2C 00085C6C 80 03 00 08 */ lwz r0, 8(r3)
+/* 80088D30 00085C70 28 00 00 01 */ cmplwi r0, 1
+/* 80088D34 00085C74 41 82 00 18 */ beq lbl_80088D4C
+/* 80088D38 00085C78 38 7F 00 00 */ addi r3, r31, 0
+/* 80088D3C 00085C7C 38 80 00 80 */ li r4, 0x80
+/* 80088D40 00085C80 38 A0 00 02 */ li r5, 2
+/* 80088D44 00085C84 4B FF FE D1 */ bl TRKStandardACK
+/* 80088D48 00085C88 48 00 01 40 */ b lbl_80088E88
+lbl_80088D4C:
+/* 80088D4C 00085C8C 38 7F 00 00 */ addi r3, r31, 0
+/* 80088D50 00085C90 38 80 00 80 */ li r4, 0x80
+/* 80088D54 00085C94 38 A0 00 00 */ li r5, 0
+/* 80088D58 00085C98 4B FF FD D5 */ bl TRKMessageIntoReply
+/* 80088D5C 00085C9C 38 61 00 08 */ addi r3, r1, 8
+/* 80088D60 00085CA0 48 00 1F 45 */ bl TRKTargetVersions
+/* 80088D64 00085CA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80088D68 00085CA8 40 82 00 3C */ bne lbl_80088DA4
+/* 80088D6C 00085CAC 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80088D70 00085CB0 88 A1 00 08 */ lbz r5, 8(r1)
+/* 80088D74 00085CB4 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088D78 00085CB8 41 80 00 0C */ blt lbl_80088D84
+/* 80088D7C 00085CBC 38 60 03 01 */ li r3, 0x301
+/* 80088D80 00085CC0 48 00 00 24 */ b lbl_80088DA4
+lbl_80088D84:
+/* 80088D84 00085CC4 38 03 00 01 */ addi r0, r3, 1
+/* 80088D88 00085CC8 7C 9F 1A 14 */ add r4, r31, r3
+/* 80088D8C 00085CCC 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80088D90 00085CD0 38 60 00 00 */ li r3, 0
+/* 80088D94 00085CD4 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80088D98 00085CD8 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80088D9C 00085CDC 38 04 00 01 */ addi r0, r4, 1
+/* 80088DA0 00085CE0 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80088DA4:
+/* 80088DA4 00085CE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80088DA8 00085CE8 40 82 00 3C */ bne lbl_80088DE4
+/* 80088DAC 00085CEC 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80088DB0 00085CF0 88 A1 00 09 */ lbz r5, 9(r1)
+/* 80088DB4 00085CF4 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088DB8 00085CF8 41 80 00 0C */ blt lbl_80088DC4
+/* 80088DBC 00085CFC 38 60 03 01 */ li r3, 0x301
+/* 80088DC0 00085D00 48 00 00 24 */ b lbl_80088DE4
+lbl_80088DC4:
+/* 80088DC4 00085D04 38 03 00 01 */ addi r0, r3, 1
+/* 80088DC8 00085D08 7C 9F 1A 14 */ add r4, r31, r3
+/* 80088DCC 00085D0C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80088DD0 00085D10 38 60 00 00 */ li r3, 0
+/* 80088DD4 00085D14 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80088DD8 00085D18 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80088DDC 00085D1C 38 04 00 01 */ addi r0, r4, 1
+/* 80088DE0 00085D20 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80088DE4:
+/* 80088DE4 00085D24 2C 03 00 00 */ cmpwi r3, 0
+/* 80088DE8 00085D28 40 82 00 3C */ bne lbl_80088E24
+/* 80088DEC 00085D2C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80088DF0 00085D30 88 A1 00 0A */ lbz r5, 0xa(r1)
+/* 80088DF4 00085D34 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088DF8 00085D38 41 80 00 0C */ blt lbl_80088E04
+/* 80088DFC 00085D3C 38 60 03 01 */ li r3, 0x301
+/* 80088E00 00085D40 48 00 00 24 */ b lbl_80088E24
+lbl_80088E04:
+/* 80088E04 00085D44 38 03 00 01 */ addi r0, r3, 1
+/* 80088E08 00085D48 7C 9F 1A 14 */ add r4, r31, r3
+/* 80088E0C 00085D4C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80088E10 00085D50 38 60 00 00 */ li r3, 0
+/* 80088E14 00085D54 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80088E18 00085D58 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80088E1C 00085D5C 38 04 00 01 */ addi r0, r4, 1
+/* 80088E20 00085D60 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80088E24:
+/* 80088E24 00085D64 2C 03 00 00 */ cmpwi r3, 0
+/* 80088E28 00085D68 40 82 00 3C */ bne lbl_80088E64
+/* 80088E2C 00085D6C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80088E30 00085D70 88 A1 00 0B */ lbz r5, 0xb(r1)
+/* 80088E34 00085D74 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088E38 00085D78 41 80 00 0C */ blt lbl_80088E44
+/* 80088E3C 00085D7C 38 60 03 01 */ li r3, 0x301
+/* 80088E40 00085D80 48 00 00 24 */ b lbl_80088E64
+lbl_80088E44:
+/* 80088E44 00085D84 38 03 00 01 */ addi r0, r3, 1
+/* 80088E48 00085D88 7C 9F 1A 14 */ add r4, r31, r3
+/* 80088E4C 00085D8C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80088E50 00085D90 38 60 00 00 */ li r3, 0
+/* 80088E54 00085D94 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80088E58 00085D98 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80088E5C 00085D9C 38 04 00 01 */ addi r0, r4, 1
+/* 80088E60 00085DA0 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80088E64:
+/* 80088E64 00085DA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80088E68 00085DA8 41 82 00 18 */ beq lbl_80088E80
+/* 80088E6C 00085DAC 38 7F 00 00 */ addi r3, r31, 0
+/* 80088E70 00085DB0 38 80 00 80 */ li r4, 0x80
+/* 80088E74 00085DB4 38 A0 00 03 */ li r5, 3
+/* 80088E78 00085DB8 4B FF FD 9D */ bl TRKStandardACK
+/* 80088E7C 00085DBC 48 00 00 0C */ b lbl_80088E88
+lbl_80088E80:
+/* 80088E80 00085DC0 7F E3 FB 78 */ mr r3, r31
+/* 80088E84 00085DC4 4B FF FD 41 */ bl TRKSendACK
+lbl_80088E88:
+/* 80088E88 00085DC8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80088E8C 00085DCC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80088E90 00085DD0 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088E94 00085DD4 7C 08 03 A6 */ mtlr r0
+/* 80088E98 00085DD8 4E 80 00 20 */ blr
+
+.global TRKDoSupportMask
+TRKDoSupportMask:
+/* 80088E9C 00085DDC 7C 08 02 A6 */ mflr r0
+/* 80088EA0 00085DE0 90 01 00 04 */ stw r0, 4(r1)
+/* 80088EA4 00085DE4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80088EA8 00085DE8 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80088EAC 00085DEC 7C 7F 1B 78 */ mr r31, r3
+/* 80088EB0 00085DF0 80 03 00 08 */ lwz r0, 8(r3)
+/* 80088EB4 00085DF4 28 00 00 01 */ cmplwi r0, 1
+/* 80088EB8 00085DF8 41 82 00 18 */ beq lbl_80088ED0
+/* 80088EBC 00085DFC 38 7F 00 00 */ addi r3, r31, 0
+/* 80088EC0 00085E00 38 80 00 80 */ li r4, 0x80
+/* 80088EC4 00085E04 38 A0 00 02 */ li r5, 2
+/* 80088EC8 00085E08 4B FF FD 4D */ bl TRKStandardACK
+/* 80088ECC 00085E0C 48 00 00 98 */ b lbl_80088F64
+lbl_80088ED0:
+/* 80088ED0 00085E10 38 7F 00 00 */ addi r3, r31, 0
+/* 80088ED4 00085E14 38 80 00 80 */ li r4, 0x80
+/* 80088ED8 00085E18 38 A0 00 00 */ li r5, 0
+/* 80088EDC 00085E1C 4B FF FC 51 */ bl TRKMessageIntoReply
+/* 80088EE0 00085E20 38 61 00 08 */ addi r3, r1, 8
+/* 80088EE4 00085E24 48 00 1D E9 */ bl TRKTargetSupportMask
+/* 80088EE8 00085E28 2C 03 00 00 */ cmpwi r3, 0
+/* 80088EEC 00085E2C 40 82 00 14 */ bne lbl_80088F00
+/* 80088EF0 00085E30 38 7F 00 00 */ addi r3, r31, 0
+/* 80088EF4 00085E34 38 81 00 08 */ addi r4, r1, 8
+/* 80088EF8 00085E38 38 A0 00 20 */ li r5, 0x20
+/* 80088EFC 00085E3C 4B FF F3 A5 */ bl TRKAppendBuffer
+lbl_80088F00:
+/* 80088F00 00085E40 2C 03 00 00 */ cmpwi r3, 0
+/* 80088F04 00085E44 40 82 00 3C */ bne lbl_80088F40
+/* 80088F08 00085E48 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80088F0C 00085E4C 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088F10 00085E50 41 80 00 0C */ blt lbl_80088F1C
+/* 80088F14 00085E54 38 60 03 01 */ li r3, 0x301
+/* 80088F18 00085E58 48 00 00 28 */ b lbl_80088F40
+lbl_80088F1C:
+/* 80088F1C 00085E5C 38 03 00 01 */ addi r0, r3, 1
+/* 80088F20 00085E60 7C 9F 1A 14 */ add r4, r31, r3
+/* 80088F24 00085E64 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80088F28 00085E68 38 00 00 02 */ li r0, 2
+/* 80088F2C 00085E6C 38 60 00 00 */ li r3, 0
+/* 80088F30 00085E70 98 04 00 10 */ stb r0, 0x10(r4)
+/* 80088F34 00085E74 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80088F38 00085E78 38 04 00 01 */ addi r0, r4, 1
+/* 80088F3C 00085E7C 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80088F40:
+/* 80088F40 00085E80 2C 03 00 00 */ cmpwi r3, 0
+/* 80088F44 00085E84 41 82 00 18 */ beq lbl_80088F5C
+/* 80088F48 00085E88 38 7F 00 00 */ addi r3, r31, 0
+/* 80088F4C 00085E8C 38 80 00 80 */ li r4, 0x80
+/* 80088F50 00085E90 38 A0 00 03 */ li r5, 3
+/* 80088F54 00085E94 4B FF FC C1 */ bl TRKStandardACK
+/* 80088F58 00085E98 48 00 00 0C */ b lbl_80088F64
+lbl_80088F5C:
+/* 80088F5C 00085E9C 7F E3 FB 78 */ mr r3, r31
+/* 80088F60 00085EA0 4B FF FC 65 */ bl TRKSendACK
+lbl_80088F64:
+/* 80088F64 00085EA4 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80088F68 00085EA8 38 21 00 30 */ addi r1, r1, 0x30
+/* 80088F6C 00085EAC 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088F70 00085EB0 7C 08 03 A6 */ mtlr r0
+/* 80088F74 00085EB4 4E 80 00 20 */ blr
+
+.global TRKDoCPUType
+TRKDoCPUType:
+/* 80088F78 00085EB8 7C 08 02 A6 */ mflr r0
+/* 80088F7C 00085EBC 90 01 00 04 */ stw r0, 4(r1)
+/* 80088F80 00085EC0 94 21 FF E8 */ stwu r1, -0x18(r1)
+/* 80088F84 00085EC4 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 80088F88 00085EC8 7C 7F 1B 78 */ mr r31, r3
+/* 80088F8C 00085ECC 80 03 00 08 */ lwz r0, 8(r3)
+/* 80088F90 00085ED0 28 00 00 01 */ cmplwi r0, 1
+/* 80088F94 00085ED4 41 82 00 18 */ beq lbl_80088FAC
+/* 80088F98 00085ED8 38 7F 00 00 */ addi r3, r31, 0
+/* 80088F9C 00085EDC 38 80 00 80 */ li r4, 0x80
+/* 80088FA0 00085EE0 38 A0 00 02 */ li r5, 2
+/* 80088FA4 00085EE4 4B FF FC 71 */ bl TRKStandardACK
+/* 80088FA8 00085EE8 48 00 02 00 */ b lbl_800891A8
+lbl_80088FAC:
+/* 80088FAC 00085EEC 38 7F 00 00 */ addi r3, r31, 0
+/* 80088FB0 00085EF0 38 80 00 80 */ li r4, 0x80
+/* 80088FB4 00085EF4 38 A0 00 00 */ li r5, 0
+/* 80088FB8 00085EF8 4B FF FB 75 */ bl TRKMessageIntoReply
+/* 80088FBC 00085EFC 38 61 00 08 */ addi r3, r1, 8
+/* 80088FC0 00085F00 48 00 1D B1 */ bl TRKTargetCPUType
+/* 80088FC4 00085F04 2C 03 00 00 */ cmpwi r3, 0
+/* 80088FC8 00085F08 40 82 00 3C */ bne lbl_80089004
+/* 80088FCC 00085F0C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80088FD0 00085F10 88 A1 00 08 */ lbz r5, 8(r1)
+/* 80088FD4 00085F14 28 03 08 80 */ cmplwi r3, 0x880
+/* 80088FD8 00085F18 41 80 00 0C */ blt lbl_80088FE4
+/* 80088FDC 00085F1C 38 60 03 01 */ li r3, 0x301
+/* 80088FE0 00085F20 48 00 00 24 */ b lbl_80089004
+lbl_80088FE4:
+/* 80088FE4 00085F24 38 03 00 01 */ addi r0, r3, 1
+/* 80088FE8 00085F28 7C 9F 1A 14 */ add r4, r31, r3
+/* 80088FEC 00085F2C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80088FF0 00085F30 38 60 00 00 */ li r3, 0
+/* 80088FF4 00085F34 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80088FF8 00085F38 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80088FFC 00085F3C 38 04 00 01 */ addi r0, r4, 1
+/* 80089000 00085F40 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80089004:
+/* 80089004 00085F44 2C 03 00 00 */ cmpwi r3, 0
+/* 80089008 00085F48 40 82 00 3C */ bne lbl_80089044
+/* 8008900C 00085F4C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80089010 00085F50 88 A1 00 09 */ lbz r5, 9(r1)
+/* 80089014 00085F54 28 03 08 80 */ cmplwi r3, 0x880
+/* 80089018 00085F58 41 80 00 0C */ blt lbl_80089024
+/* 8008901C 00085F5C 38 60 03 01 */ li r3, 0x301
+/* 80089020 00085F60 48 00 00 24 */ b lbl_80089044
+lbl_80089024:
+/* 80089024 00085F64 38 03 00 01 */ addi r0, r3, 1
+/* 80089028 00085F68 7C 9F 1A 14 */ add r4, r31, r3
+/* 8008902C 00085F6C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80089030 00085F70 38 60 00 00 */ li r3, 0
+/* 80089034 00085F74 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80089038 00085F78 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8008903C 00085F7C 38 04 00 01 */ addi r0, r4, 1
+/* 80089040 00085F80 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80089044:
+/* 80089044 00085F84 2C 03 00 00 */ cmpwi r3, 0
+/* 80089048 00085F88 40 82 00 3C */ bne lbl_80089084
+/* 8008904C 00085F8C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80089050 00085F90 88 A1 00 0A */ lbz r5, 0xa(r1)
+/* 80089054 00085F94 28 03 08 80 */ cmplwi r3, 0x880
+/* 80089058 00085F98 41 80 00 0C */ blt lbl_80089064
+/* 8008905C 00085F9C 38 60 03 01 */ li r3, 0x301
+/* 80089060 00085FA0 48 00 00 24 */ b lbl_80089084
+lbl_80089064:
+/* 80089064 00085FA4 38 03 00 01 */ addi r0, r3, 1
+/* 80089068 00085FA8 7C 9F 1A 14 */ add r4, r31, r3
+/* 8008906C 00085FAC 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80089070 00085FB0 38 60 00 00 */ li r3, 0
+/* 80089074 00085FB4 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80089078 00085FB8 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8008907C 00085FBC 38 04 00 01 */ addi r0, r4, 1
+/* 80089080 00085FC0 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80089084:
+/* 80089084 00085FC4 2C 03 00 00 */ cmpwi r3, 0
+/* 80089088 00085FC8 40 82 00 3C */ bne lbl_800890C4
+/* 8008908C 00085FCC 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80089090 00085FD0 88 A1 00 0B */ lbz r5, 0xb(r1)
+/* 80089094 00085FD4 28 03 08 80 */ cmplwi r3, 0x880
+/* 80089098 00085FD8 41 80 00 0C */ blt lbl_800890A4
+/* 8008909C 00085FDC 38 60 03 01 */ li r3, 0x301
+/* 800890A0 00085FE0 48 00 00 24 */ b lbl_800890C4
+lbl_800890A4:
+/* 800890A4 00085FE4 38 03 00 01 */ addi r0, r3, 1
+/* 800890A8 00085FE8 7C 9F 1A 14 */ add r4, r31, r3
+/* 800890AC 00085FEC 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 800890B0 00085FF0 38 60 00 00 */ li r3, 0
+/* 800890B4 00085FF4 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 800890B8 00085FF8 80 9F 00 08 */ lwz r4, 8(r31)
+/* 800890BC 00085FFC 38 04 00 01 */ addi r0, r4, 1
+/* 800890C0 00086000 90 1F 00 08 */ stw r0, 8(r31)
+lbl_800890C4:
+/* 800890C4 00086004 2C 03 00 00 */ cmpwi r3, 0
+/* 800890C8 00086008 40 82 00 3C */ bne lbl_80089104
+/* 800890CC 0008600C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 800890D0 00086010 88 A1 00 0C */ lbz r5, 0xc(r1)
+/* 800890D4 00086014 28 03 08 80 */ cmplwi r3, 0x880
+/* 800890D8 00086018 41 80 00 0C */ blt lbl_800890E4
+/* 800890DC 0008601C 38 60 03 01 */ li r3, 0x301
+/* 800890E0 00086020 48 00 00 24 */ b lbl_80089104
+lbl_800890E4:
+/* 800890E4 00086024 38 03 00 01 */ addi r0, r3, 1
+/* 800890E8 00086028 7C 9F 1A 14 */ add r4, r31, r3
+/* 800890EC 0008602C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 800890F0 00086030 38 60 00 00 */ li r3, 0
+/* 800890F4 00086034 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 800890F8 00086038 80 9F 00 08 */ lwz r4, 8(r31)
+/* 800890FC 0008603C 38 04 00 01 */ addi r0, r4, 1
+/* 80089100 00086040 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80089104:
+/* 80089104 00086044 2C 03 00 00 */ cmpwi r3, 0
+/* 80089108 00086048 40 82 00 3C */ bne lbl_80089144
+/* 8008910C 0008604C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80089110 00086050 88 A1 00 0D */ lbz r5, 0xd(r1)
+/* 80089114 00086054 28 03 08 80 */ cmplwi r3, 0x880
+/* 80089118 00086058 41 80 00 0C */ blt lbl_80089124
+/* 8008911C 0008605C 38 60 03 01 */ li r3, 0x301
+/* 80089120 00086060 48 00 00 24 */ b lbl_80089144
+lbl_80089124:
+/* 80089124 00086064 38 03 00 01 */ addi r0, r3, 1
+/* 80089128 00086068 7C 9F 1A 14 */ add r4, r31, r3
+/* 8008912C 0008606C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80089130 00086070 38 60 00 00 */ li r3, 0
+/* 80089134 00086074 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80089138 00086078 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8008913C 0008607C 38 04 00 01 */ addi r0, r4, 1
+/* 80089140 00086080 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80089144:
+/* 80089144 00086084 2C 03 00 00 */ cmpwi r3, 0
+/* 80089148 00086088 40 82 00 3C */ bne lbl_80089184
+/* 8008914C 0008608C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 80089150 00086090 88 A1 00 0E */ lbz r5, 0xe(r1)
+/* 80089154 00086094 28 03 08 80 */ cmplwi r3, 0x880
+/* 80089158 00086098 41 80 00 0C */ blt lbl_80089164
+/* 8008915C 0008609C 38 60 03 01 */ li r3, 0x301
+/* 80089160 000860A0 48 00 00 24 */ b lbl_80089184
+lbl_80089164:
+/* 80089164 000860A4 38 03 00 01 */ addi r0, r3, 1
+/* 80089168 000860A8 7C 9F 1A 14 */ add r4, r31, r3
+/* 8008916C 000860AC 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80089170 000860B0 38 60 00 00 */ li r3, 0
+/* 80089174 000860B4 98 A4 00 10 */ stb r5, 0x10(r4)
+/* 80089178 000860B8 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8008917C 000860BC 38 04 00 01 */ addi r0, r4, 1
+/* 80089180 000860C0 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80089184:
+/* 80089184 000860C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80089188 000860C8 41 82 00 18 */ beq lbl_800891A0
+/* 8008918C 000860CC 38 7F 00 00 */ addi r3, r31, 0
+/* 80089190 000860D0 38 80 00 80 */ li r4, 0x80
+/* 80089194 000860D4 38 A0 00 03 */ li r5, 3
+/* 80089198 000860D8 4B FF FA 7D */ bl TRKStandardACK
+/* 8008919C 000860DC 48 00 00 0C */ b lbl_800891A8
+lbl_800891A0:
+/* 800891A0 000860E0 7F E3 FB 78 */ mr r3, r31
+/* 800891A4 000860E4 4B FF FA 21 */ bl TRKSendACK
+lbl_800891A8:
+/* 800891A8 000860E8 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 800891AC 000860EC 38 21 00 18 */ addi r1, r1, 0x18
+/* 800891B0 000860F0 80 01 00 04 */ lwz r0, 4(r1)
+/* 800891B4 000860F4 7C 08 03 A6 */ mtlr r0
+/* 800891B8 000860F8 4E 80 00 20 */ blr
+
+.global TRKDoReadMemory
+TRKDoReadMemory:
+/* 800891BC 000860FC 7C 08 02 A6 */ mflr r0
+/* 800891C0 00086100 90 01 00 04 */ stw r0, 4(r1)
+/* 800891C4 00086104 94 21 F7 E0 */ stwu r1, -0x820(r1)
+/* 800891C8 00086108 93 E1 08 1C */ stw r31, 0x81c(r1)
+/* 800891CC 0008610C 7C 7F 1B 78 */ mr r31, r3
+/* 800891D0 00086110 93 C1 08 18 */ stw r30, 0x818(r1)
+/* 800891D4 00086114 80 03 00 08 */ lwz r0, 8(r3)
+/* 800891D8 00086118 28 00 00 08 */ cmplwi r0, 8
+/* 800891DC 0008611C 41 82 00 18 */ beq lbl_800891F4
+/* 800891E0 00086120 38 7F 00 00 */ addi r3, r31, 0
+/* 800891E4 00086124 38 80 00 80 */ li r4, 0x80
+/* 800891E8 00086128 38 A0 00 02 */ li r5, 2
+/* 800891EC 0008612C 4B FF FA 29 */ bl TRKStandardACK
+/* 800891F0 00086130 48 00 01 9C */ b lbl_8008938C
+lbl_800891F4:
+/* 800891F4 00086134 38 7F 00 00 */ addi r3, r31, 0
+/* 800891F8 00086138 38 80 00 00 */ li r4, 0
+/* 800891FC 0008613C 4B FF F0 75 */ bl TRKSetBufferPosition
+/* 80089200 00086140 38 7F 00 00 */ addi r3, r31, 0
+/* 80089204 00086144 38 81 00 08 */ addi r4, r1, 8
+/* 80089208 00086148 4B FF F3 ED */ bl TRKReadBuffer1_ui8
+/* 8008920C 0008614C 7C 7E 1B 79 */ or. r30, r3, r3
+/* 80089210 00086150 40 82 00 14 */ bne lbl_80089224
+/* 80089214 00086154 38 7F 00 00 */ addi r3, r31, 0
+/* 80089218 00086158 38 81 00 09 */ addi r4, r1, 9
+/* 8008921C 0008615C 4B FF F3 D9 */ bl TRKReadBuffer1_ui8
+/* 80089220 00086160 7C 7E 1B 78 */ mr r30, r3
+lbl_80089224:
+/* 80089224 00086164 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089228 00086168 40 82 00 14 */ bne lbl_8008923C
+/* 8008922C 0008616C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089230 00086170 38 81 00 0A */ addi r4, r1, 0xa
+/* 80089234 00086174 4B FF F3 E5 */ bl TRKReadBuffer1_ui16
+/* 80089238 00086178 7C 7E 1B 78 */ mr r30, r3
+lbl_8008923C:
+/* 8008923C 0008617C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089240 00086180 40 82 00 14 */ bne lbl_80089254
+/* 80089244 00086184 38 7F 00 00 */ addi r3, r31, 0
+/* 80089248 00086188 38 81 00 0C */ addi r4, r1, 0xc
+/* 8008924C 0008618C 4B FF F4 4D */ bl TRKReadBuffer1_ui32
+/* 80089250 00086190 7C 7E 1B 78 */ mr r30, r3
+lbl_80089254:
+/* 80089254 00086194 88 01 00 09 */ lbz r0, 9(r1)
+/* 80089258 00086198 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 8008925C 0008619C 41 82 00 18 */ beq lbl_80089274
+/* 80089260 000861A0 38 7F 00 00 */ addi r3, r31, 0
+/* 80089264 000861A4 38 80 00 80 */ li r4, 0x80
+/* 80089268 000861A8 38 A0 00 12 */ li r5, 0x12
+/* 8008926C 000861AC 4B FF F9 A9 */ bl TRKStandardACK
+/* 80089270 000861B0 48 00 01 1C */ b lbl_8008938C
+lbl_80089274:
+/* 80089274 000861B4 A0 01 00 0A */ lhz r0, 0xa(r1)
+/* 80089278 000861B8 28 00 08 00 */ cmplwi r0, 0x800
+/* 8008927C 000861BC 40 81 00 18 */ ble lbl_80089294
+/* 80089280 000861C0 38 7F 00 00 */ addi r3, r31, 0
+/* 80089284 000861C4 38 80 00 80 */ li r4, 0x80
+/* 80089288 000861C8 38 A0 00 11 */ li r5, 0x11
+/* 8008928C 000861CC 4B FF F9 89 */ bl TRKStandardACK
+/* 80089290 000861D0 48 00 00 FC */ b lbl_8008938C
+lbl_80089294:
+/* 80089294 000861D4 38 7F 00 00 */ addi r3, r31, 0
+/* 80089298 000861D8 38 80 00 80 */ li r4, 0x80
+/* 8008929C 000861DC 38 A0 00 00 */ li r5, 0
+/* 800892A0 000861E0 4B FF F8 8D */ bl TRKMessageIntoReply
+/* 800892A4 000861E4 2C 1E 00 00 */ cmpwi r30, 0
+/* 800892A8 000861E8 40 82 00 74 */ bne lbl_8008931C
+/* 800892AC 000861EC 88 01 00 09 */ lbz r0, 9(r1)
+/* 800892B0 000861F0 A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 800892B4 000861F4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 800892B8 000861F8 90 61 00 10 */ stw r3, 0x10(r1)
+/* 800892BC 000861FC 41 82 00 0C */ beq lbl_800892C8
+/* 800892C0 00086200 38 C0 00 00 */ li r6, 0
+/* 800892C4 00086204 48 00 00 08 */ b lbl_800892CC
+lbl_800892C8:
+/* 800892C8 00086208 38 C0 00 01 */ li r6, 1
+lbl_800892CC:
+/* 800892CC 0008620C 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 800892D0 00086210 38 61 00 14 */ addi r3, r1, 0x14
+/* 800892D4 00086214 38 A1 00 10 */ addi r5, r1, 0x10
+/* 800892D8 00086218 38 E0 00 01 */ li r7, 1
+/* 800892DC 0008621C 48 00 12 E1 */ bl TRKTargetAccessMemory
+/* 800892E0 00086220 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 800892E4 00086224 7C 7E 1B 79 */ or. r30, r3, r3
+/* 800892E8 00086228 B0 01 00 0A */ sth r0, 0xa(r1)
+/* 800892EC 0008622C 40 82 00 14 */ bne lbl_80089300
+/* 800892F0 00086230 7F E3 FB 78 */ mr r3, r31
+/* 800892F4 00086234 A0 81 00 0A */ lhz r4, 0xa(r1)
+/* 800892F8 00086238 4B FF F0 D9 */ bl TRKAppendBuffer1_ui16
+/* 800892FC 0008623C 7C 7E 1B 78 */ mr r30, r3
+lbl_80089300:
+/* 80089300 00086240 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089304 00086244 40 82 00 18 */ bne lbl_8008931C
+/* 80089308 00086248 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 8008930C 0008624C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089310 00086250 38 81 00 14 */ addi r4, r1, 0x14
+/* 80089314 00086254 4B FF EF 8D */ bl TRKAppendBuffer
+/* 80089318 00086258 7C 7E 1B 78 */ mr r30, r3
+lbl_8008931C:
+/* 8008931C 0008625C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089320 00086260 41 82 00 64 */ beq lbl_80089384
+/* 80089324 00086264 38 1E F9 00 */ addi r0, r30, -1792
+/* 80089328 00086268 28 00 00 06 */ cmplwi r0, 6
+/* 8008932C 0008626C 41 81 00 44 */ bgt lbl_80089370
+/* 80089330 00086270 3C 60 80 3B */ lis r3, "@175"@ha
+/* 80089334 00086274 38 63 EF E0 */ addi r3, r3, "@175"@l
+/* 80089338 00086278 54 00 10 3A */ slwi r0, r0, 2
+/* 8008933C 0008627C 7C 03 00 2E */ lwzx r0, r3, r0
+/* 80089340 00086280 7C 09 03 A6 */ mtctr r0
+/* 80089344 00086284 4E 80 04 20 */ bctr
+lbl_80089348:
+/* 80089348 00086288 38 A0 00 15 */ li r5, 0x15
+/* 8008934C 0008628C 48 00 00 28 */ b lbl_80089374
+lbl_80089350:
+/* 80089350 00086290 38 A0 00 13 */ li r5, 0x13
+/* 80089354 00086294 48 00 00 20 */ b lbl_80089374
+lbl_80089358:
+/* 80089358 00086298 38 A0 00 21 */ li r5, 0x21
+/* 8008935C 0008629C 48 00 00 18 */ b lbl_80089374
+lbl_80089360:
+/* 80089360 000862A0 38 A0 00 22 */ li r5, 0x22
+/* 80089364 000862A4 48 00 00 10 */ b lbl_80089374
+lbl_80089368:
+/* 80089368 000862A8 38 A0 00 20 */ li r5, 0x20
+/* 8008936C 000862AC 48 00 00 08 */ b lbl_80089374
+lbl_80089370:
+/* 80089370 000862B0 38 A0 00 03 */ li r5, 3
+lbl_80089374:
+/* 80089374 000862B4 38 7F 00 00 */ addi r3, r31, 0
+/* 80089378 000862B8 38 80 00 80 */ li r4, 0x80
+/* 8008937C 000862BC 4B FF F8 99 */ bl TRKStandardACK
+/* 80089380 000862C0 48 00 00 0C */ b lbl_8008938C
+lbl_80089384:
+/* 80089384 000862C4 7F E3 FB 78 */ mr r3, r31
+/* 80089388 000862C8 4B FF F8 3D */ bl TRKSendACK
+lbl_8008938C:
+/* 8008938C 000862CC 83 E1 08 1C */ lwz r31, 0x81c(r1)
+/* 80089390 000862D0 83 C1 08 18 */ lwz r30, 0x818(r1)
+/* 80089394 000862D4 38 21 08 20 */ addi r1, r1, 0x820
+/* 80089398 000862D8 80 01 00 04 */ lwz r0, 4(r1)
+/* 8008939C 000862DC 7C 08 03 A6 */ mtlr r0
+/* 800893A0 000862E0 4E 80 00 20 */ blr
+
+.global TRKDoWriteMemory
+TRKDoWriteMemory:
+/* 800893A4 000862E4 7C 08 02 A6 */ mflr r0
+/* 800893A8 000862E8 90 01 00 04 */ stw r0, 4(r1)
+/* 800893AC 000862EC 94 21 F7 E0 */ stwu r1, -0x820(r1)
+/* 800893B0 000862F0 93 E1 08 1C */ stw r31, 0x81c(r1)
+/* 800893B4 000862F4 7C 7F 1B 78 */ mr r31, r3
+/* 800893B8 000862F8 93 C1 08 18 */ stw r30, 0x818(r1)
+/* 800893BC 000862FC 80 03 00 08 */ lwz r0, 8(r3)
+/* 800893C0 00086300 28 00 00 08 */ cmplwi r0, 8
+/* 800893C4 00086304 41 81 00 18 */ bgt lbl_800893DC
+/* 800893C8 00086308 38 7F 00 00 */ addi r3, r31, 0
+/* 800893CC 0008630C 38 80 00 80 */ li r4, 0x80
+/* 800893D0 00086310 38 A0 00 02 */ li r5, 2
+/* 800893D4 00086314 4B FF F8 41 */ bl TRKStandardACK
+/* 800893D8 00086318 48 00 01 B0 */ b lbl_80089588
+lbl_800893DC:
+/* 800893DC 0008631C 38 7F 00 00 */ addi r3, r31, 0
+/* 800893E0 00086320 38 80 00 00 */ li r4, 0
+/* 800893E4 00086324 4B FF EE 8D */ bl TRKSetBufferPosition
+/* 800893E8 00086328 38 7F 00 00 */ addi r3, r31, 0
+/* 800893EC 0008632C 38 81 00 08 */ addi r4, r1, 8
+/* 800893F0 00086330 4B FF F2 05 */ bl TRKReadBuffer1_ui8
+/* 800893F4 00086334 7C 7E 1B 79 */ or. r30, r3, r3
+/* 800893F8 00086338 40 82 00 14 */ bne lbl_8008940C
+/* 800893FC 0008633C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089400 00086340 38 81 00 09 */ addi r4, r1, 9
+/* 80089404 00086344 4B FF F1 F1 */ bl TRKReadBuffer1_ui8
+/* 80089408 00086348 7C 7E 1B 78 */ mr r30, r3
+lbl_8008940C:
+/* 8008940C 0008634C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089410 00086350 40 82 00 14 */ bne lbl_80089424
+/* 80089414 00086354 38 7F 00 00 */ addi r3, r31, 0
+/* 80089418 00086358 38 81 00 0A */ addi r4, r1, 0xa
+/* 8008941C 0008635C 4B FF F1 FD */ bl TRKReadBuffer1_ui16
+/* 80089420 00086360 7C 7E 1B 78 */ mr r30, r3
+lbl_80089424:
+/* 80089424 00086364 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089428 00086368 40 82 00 14 */ bne lbl_8008943C
+/* 8008942C 0008636C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089430 00086370 38 81 00 0C */ addi r4, r1, 0xc
+/* 80089434 00086374 4B FF F2 65 */ bl TRKReadBuffer1_ui32
+/* 80089438 00086378 7C 7E 1B 78 */ mr r30, r3
+lbl_8008943C:
+/* 8008943C 0008637C 88 01 00 09 */ lbz r0, 9(r1)
+/* 80089440 00086380 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80089444 00086384 41 82 00 18 */ beq lbl_8008945C
+/* 80089448 00086388 38 7F 00 00 */ addi r3, r31, 0
+/* 8008944C 0008638C 38 80 00 80 */ li r4, 0x80
+/* 80089450 00086390 38 A0 00 12 */ li r5, 0x12
+/* 80089454 00086394 4B FF F7 C1 */ bl TRKStandardACK
+/* 80089458 00086398 48 00 01 30 */ b lbl_80089588
+lbl_8008945C:
+/* 8008945C 0008639C A0 81 00 0A */ lhz r4, 0xa(r1)
+/* 80089460 000863A0 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80089464 000863A4 38 04 00 08 */ addi r0, r4, 8
+/* 80089468 000863A8 7C 03 00 40 */ cmplw r3, r0
+/* 8008946C 000863AC 40 82 00 0C */ bne lbl_80089478
+/* 80089470 000863B0 28 04 08 00 */ cmplwi r4, 0x800
+/* 80089474 000863B4 40 81 00 18 */ ble lbl_8008948C
+lbl_80089478:
+/* 80089478 000863B8 38 7F 00 00 */ addi r3, r31, 0
+/* 8008947C 000863BC 38 80 00 80 */ li r4, 0x80
+/* 80089480 000863C0 38 A0 00 11 */ li r5, 0x11
+/* 80089484 000863C4 4B FF F7 91 */ bl TRKStandardACK
+/* 80089488 000863C8 48 00 01 00 */ b lbl_80089588
+lbl_8008948C:
+/* 8008948C 000863CC 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089490 000863D0 40 82 00 58 */ bne lbl_800894E8
+/* 80089494 000863D4 90 81 00 10 */ stw r4, 0x10(r1)
+/* 80089498 000863D8 38 7F 00 00 */ addi r3, r31, 0
+/* 8008949C 000863DC 38 81 00 14 */ addi r4, r1, 0x14
+/* 800894A0 000863E0 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 800894A4 000863E4 4B FF EE A1 */ bl TRKReadBuffer
+/* 800894A8 000863E8 7C 7E 1B 79 */ or. r30, r3, r3
+/* 800894AC 000863EC 40 82 00 34 */ bne lbl_800894E0
+/* 800894B0 000863F0 88 01 00 09 */ lbz r0, 9(r1)
+/* 800894B4 000863F4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 800894B8 000863F8 41 82 00 0C */ beq lbl_800894C4
+/* 800894BC 000863FC 38 C0 00 00 */ li r6, 0
+/* 800894C0 00086400 48 00 00 08 */ b lbl_800894C8
+lbl_800894C4:
+/* 800894C4 00086404 38 C0 00 01 */ li r6, 1
+lbl_800894C8:
+/* 800894C8 00086408 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 800894CC 0008640C 38 61 00 14 */ addi r3, r1, 0x14
+/* 800894D0 00086410 38 A1 00 10 */ addi r5, r1, 0x10
+/* 800894D4 00086414 38 E0 00 00 */ li r7, 0
+/* 800894D8 00086418 48 00 10 E5 */ bl TRKTargetAccessMemory
+/* 800894DC 0008641C 7C 7E 1B 78 */ mr r30, r3
+lbl_800894E0:
+/* 800894E0 00086420 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 800894E4 00086424 B0 01 00 0A */ sth r0, 0xa(r1)
+lbl_800894E8:
+/* 800894E8 00086428 2C 1E 00 00 */ cmpwi r30, 0
+/* 800894EC 0008642C 40 82 00 14 */ bne lbl_80089500
+/* 800894F0 00086430 38 7F 00 00 */ addi r3, r31, 0
+/* 800894F4 00086434 38 80 00 80 */ li r4, 0x80
+/* 800894F8 00086438 38 A0 00 00 */ li r5, 0
+/* 800894FC 0008643C 4B FF F6 31 */ bl TRKMessageIntoReply
+lbl_80089500:
+/* 80089500 00086440 2C 1E 00 00 */ cmpwi r30, 0
+/* 80089504 00086444 40 82 00 14 */ bne lbl_80089518
+/* 80089508 00086448 7F E3 FB 78 */ mr r3, r31
+/* 8008950C 0008644C A0 81 00 0A */ lhz r4, 0xa(r1)
+/* 80089510 00086450 4B FF EE C1 */ bl TRKAppendBuffer1_ui16
+/* 80089514 00086454 7C 7E 1B 78 */ mr r30, r3
+lbl_80089518:
+/* 80089518 00086458 2C 1E 00 00 */ cmpwi r30, 0
+/* 8008951C 0008645C 41 82 00 64 */ beq lbl_80089580
+/* 80089520 00086460 38 1E F9 00 */ addi r0, r30, -1792
+/* 80089524 00086464 28 00 00 06 */ cmplwi r0, 6
+/* 80089528 00086468 41 81 00 44 */ bgt lbl_8008956C
+/* 8008952C 0008646C 3C 60 80 3B */ lis r3, "@214"@ha
+/* 80089530 00086470 38 63 EF FC */ addi r3, r3, "@214"@l
+/* 80089534 00086474 54 00 10 3A */ slwi r0, r0, 2
+/* 80089538 00086478 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8008953C 0008647C 7C 09 03 A6 */ mtctr r0
+/* 80089540 00086480 4E 80 04 20 */ bctr
+lbl_80089544:
+/* 80089544 00086484 38 A0 00 15 */ li r5, 0x15
+/* 80089548 00086488 48 00 00 28 */ b lbl_80089570
+lbl_8008954C:
+/* 8008954C 0008648C 38 A0 00 13 */ li r5, 0x13
+/* 80089550 00086490 48 00 00 20 */ b lbl_80089570
+lbl_80089554:
+/* 80089554 00086494 38 A0 00 21 */ li r5, 0x21
+/* 80089558 00086498 48 00 00 18 */ b lbl_80089570
+lbl_8008955C:
+/* 8008955C 0008649C 38 A0 00 22 */ li r5, 0x22
+/* 80089560 000864A0 48 00 00 10 */ b lbl_80089570
+lbl_80089564:
+/* 80089564 000864A4 38 A0 00 20 */ li r5, 0x20
+/* 80089568 000864A8 48 00 00 08 */ b lbl_80089570
+lbl_8008956C:
+/* 8008956C 000864AC 38 A0 00 03 */ li r5, 3
+lbl_80089570:
+/* 80089570 000864B0 38 7F 00 00 */ addi r3, r31, 0
+/* 80089574 000864B4 38 80 00 80 */ li r4, 0x80
+/* 80089578 000864B8 4B FF F6 9D */ bl TRKStandardACK
+/* 8008957C 000864BC 48 00 00 0C */ b lbl_80089588
+lbl_80089580:
+/* 80089580 000864C0 7F E3 FB 78 */ mr r3, r31
+/* 80089584 000864C4 4B FF F6 41 */ bl TRKSendACK
+lbl_80089588:
+/* 80089588 000864C8 83 E1 08 1C */ lwz r31, 0x81c(r1)
+/* 8008958C 000864CC 83 C1 08 18 */ lwz r30, 0x818(r1)
+/* 80089590 000864D0 38 21 08 20 */ addi r1, r1, 0x820
+/* 80089594 000864D4 80 01 00 04 */ lwz r0, 4(r1)
+/* 80089598 000864D8 7C 08 03 A6 */ mtlr r0
+/* 8008959C 000864DC 4E 80 00 20 */ blr
+
+.global TRKDoReadRegisters
+TRKDoReadRegisters:
+/* 800895A0 000864E0 7C 08 02 A6 */ mflr r0
+/* 800895A4 000864E4 90 01 00 04 */ stw r0, 4(r1)
+/* 800895A8 000864E8 94 21 FF E8 */ stwu r1, -0x18(r1)
+/* 800895AC 000864EC 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 800895B0 000864F0 7C 7F 1B 78 */ mr r31, r3
+/* 800895B4 000864F4 80 03 00 08 */ lwz r0, 8(r3)
+/* 800895B8 000864F8 28 00 00 06 */ cmplwi r0, 6
+/* 800895BC 000864FC 41 82 00 18 */ beq lbl_800895D4
+/* 800895C0 00086500 38 7F 00 00 */ addi r3, r31, 0
+/* 800895C4 00086504 38 80 00 80 */ li r4, 0x80
+/* 800895C8 00086508 38 A0 00 02 */ li r5, 2
+/* 800895CC 0008650C 4B FF F6 49 */ bl TRKStandardACK
+/* 800895D0 00086510 48 00 01 C0 */ b lbl_80089790
+lbl_800895D4:
+/* 800895D4 00086514 38 7F 00 00 */ addi r3, r31, 0
+/* 800895D8 00086518 38 80 00 00 */ li r4, 0
+/* 800895DC 0008651C 4B FF EC 95 */ bl TRKSetBufferPosition
+/* 800895E0 00086520 38 7F 00 00 */ addi r3, r31, 0
+/* 800895E4 00086524 38 81 00 08 */ addi r4, r1, 8
+/* 800895E8 00086528 4B FF F0 0D */ bl TRKReadBuffer1_ui8
+/* 800895EC 0008652C 2C 03 00 00 */ cmpwi r3, 0
+/* 800895F0 00086530 40 82 00 10 */ bne lbl_80089600
+/* 800895F4 00086534 38 7F 00 00 */ addi r3, r31, 0
+/* 800895F8 00086538 38 81 00 09 */ addi r4, r1, 9
+/* 800895FC 0008653C 4B FF EF F9 */ bl TRKReadBuffer1_ui8
+lbl_80089600:
+/* 80089600 00086540 2C 03 00 00 */ cmpwi r3, 0
+/* 80089604 00086544 40 82 00 10 */ bne lbl_80089614
+/* 80089608 00086548 38 7F 00 00 */ addi r3, r31, 0
+/* 8008960C 0008654C 38 81 00 0A */ addi r4, r1, 0xa
+/* 80089610 00086550 4B FF F0 09 */ bl TRKReadBuffer1_ui16
+lbl_80089614:
+/* 80089614 00086554 2C 03 00 00 */ cmpwi r3, 0
+/* 80089618 00086558 40 82 00 10 */ bne lbl_80089628
+/* 8008961C 0008655C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089620 00086560 38 81 00 0C */ addi r4, r1, 0xc
+/* 80089624 00086564 4B FF EF F5 */ bl TRKReadBuffer1_ui16
+lbl_80089628:
+/* 80089628 00086568 A0 81 00 0A */ lhz r4, 0xa(r1)
+/* 8008962C 0008656C A0 01 00 0C */ lhz r0, 0xc(r1)
+/* 80089630 00086570 7C 04 00 40 */ cmplw r4, r0
+/* 80089634 00086574 40 81 00 18 */ ble lbl_8008964C
+/* 80089638 00086578 38 7F 00 00 */ addi r3, r31, 0
+/* 8008963C 0008657C 38 80 00 80 */ li r4, 0x80
+/* 80089640 00086580 38 A0 00 14 */ li r5, 0x14
+/* 80089644 00086584 4B FF F5 D1 */ bl TRKStandardACK
+/* 80089648 00086588 48 00 01 48 */ b lbl_80089790
+lbl_8008964C:
+/* 8008964C 0008658C 2C 03 00 00 */ cmpwi r3, 0
+/* 80089650 00086590 40 82 00 14 */ bne lbl_80089664
+/* 80089654 00086594 38 7F 00 00 */ addi r3, r31, 0
+/* 80089658 00086598 38 80 00 80 */ li r4, 0x80
+/* 8008965C 0008659C 38 A0 00 00 */ li r5, 0
+/* 80089660 000865A0 4B FF F4 CD */ bl TRKMessageIntoReply
+lbl_80089664:
+/* 80089664 000865A4 88 01 00 09 */ lbz r0, 9(r1)
+/* 80089668 000865A8 54 00 07 7E */ clrlwi r0, r0, 0x1d
+/* 8008966C 000865AC 2C 00 00 02 */ cmpwi r0, 2
+/* 80089670 000865B0 41 82 00 5C */ beq lbl_800896CC
+/* 80089674 000865B4 40 80 00 14 */ bge lbl_80089688
+/* 80089678 000865B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8008967C 000865BC 41 82 00 18 */ beq lbl_80089694
+/* 80089680 000865C0 40 80 00 30 */ bge lbl_800896B0
+/* 80089684 000865C4 48 00 00 80 */ b lbl_80089704
+lbl_80089688:
+/* 80089688 000865C8 2C 00 00 04 */ cmpwi r0, 4
+/* 8008968C 000865CC 40 80 00 78 */ bge lbl_80089704
+/* 80089690 000865D0 48 00 00 58 */ b lbl_800896E8
+lbl_80089694:
+/* 80089694 000865D4 A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 80089698 000865D8 7F E5 FB 78 */ mr r5, r31
+/* 8008969C 000865DC A0 81 00 0C */ lhz r4, 0xc(r1)
+/* 800896A0 000865E0 38 C1 00 10 */ addi r6, r1, 0x10
+/* 800896A4 000865E4 38 E0 00 01 */ li r7, 1
+/* 800896A8 000865E8 48 00 10 C5 */ bl TRKTargetAccessDefault
+/* 800896AC 000865EC 48 00 00 5C */ b lbl_80089708
+lbl_800896B0:
+/* 800896B0 000865F0 A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 800896B4 000865F4 7F E5 FB 78 */ mr r5, r31
+/* 800896B8 000865F8 A0 81 00 0C */ lhz r4, 0xc(r1)
+/* 800896BC 000865FC 38 C1 00 10 */ addi r6, r1, 0x10
+/* 800896C0 00086600 38 E0 00 01 */ li r7, 1
+/* 800896C4 00086604 48 00 11 A5 */ bl TRKTargetAccessFP
+/* 800896C8 00086608 48 00 00 40 */ b lbl_80089708
+lbl_800896CC:
+/* 800896CC 0008660C A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 800896D0 00086610 7F E5 FB 78 */ mr r5, r31
+/* 800896D4 00086614 A0 81 00 0C */ lhz r4, 0xc(r1)
+/* 800896D8 00086618 38 C1 00 10 */ addi r6, r1, 0x10
+/* 800896DC 0008661C 38 E0 00 01 */ li r7, 1
+/* 800896E0 00086620 48 00 12 D1 */ bl TRKTargetAccessExtended1
+/* 800896E4 00086624 48 00 00 24 */ b lbl_80089708
+lbl_800896E8:
+/* 800896E8 00086628 A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 800896EC 0008662C 7F E5 FB 78 */ mr r5, r31
+/* 800896F0 00086630 A0 81 00 0C */ lhz r4, 0xc(r1)
+/* 800896F4 00086634 38 C1 00 10 */ addi r6, r1, 0x10
+/* 800896F8 00086638 38 E0 00 01 */ li r7, 1
+/* 800896FC 0008663C 48 00 14 2D */ bl TRKTargetAccessExtended2
+/* 80089700 00086640 48 00 00 08 */ b lbl_80089708
+lbl_80089704:
+/* 80089704 00086644 38 60 07 03 */ li r3, 0x703
+lbl_80089708:
+/* 80089708 00086648 2C 03 00 00 */ cmpwi r3, 0
+/* 8008970C 0008664C 41 82 00 7C */ beq lbl_80089788
+/* 80089710 00086650 2C 03 07 04 */ cmpwi r3, 0x704
+/* 80089714 00086654 41 82 00 48 */ beq lbl_8008975C
+/* 80089718 00086658 40 80 00 1C */ bge lbl_80089734
+/* 8008971C 0008665C 2C 03 07 02 */ cmpwi r3, 0x702
+/* 80089720 00086660 41 82 00 34 */ beq lbl_80089754
+/* 80089724 00086664 40 80 00 20 */ bge lbl_80089744
+/* 80089728 00086668 2C 03 07 01 */ cmpwi r3, 0x701
+/* 8008972C 0008666C 40 80 00 20 */ bge lbl_8008974C
+/* 80089730 00086670 48 00 00 44 */ b lbl_80089774
+lbl_80089734:
+/* 80089734 00086674 2C 03 07 06 */ cmpwi r3, 0x706
+/* 80089738 00086678 41 82 00 34 */ beq lbl_8008976C
+/* 8008973C 0008667C 40 80 00 38 */ bge lbl_80089774
+/* 80089740 00086680 48 00 00 24 */ b lbl_80089764
+lbl_80089744:
+/* 80089744 00086684 38 A0 00 12 */ li r5, 0x12
+/* 80089748 00086688 48 00 00 30 */ b lbl_80089778
+lbl_8008974C:
+/* 8008974C 0008668C 38 A0 00 14 */ li r5, 0x14
+/* 80089750 00086690 48 00 00 28 */ b lbl_80089778
+lbl_80089754:
+/* 80089754 00086694 38 A0 00 15 */ li r5, 0x15
+/* 80089758 00086698 48 00 00 20 */ b lbl_80089778
+lbl_8008975C:
+/* 8008975C 0008669C 38 A0 00 21 */ li r5, 0x21
+/* 80089760 000866A0 48 00 00 18 */ b lbl_80089778
+lbl_80089764:
+/* 80089764 000866A4 38 A0 00 22 */ li r5, 0x22
+/* 80089768 000866A8 48 00 00 10 */ b lbl_80089778
+lbl_8008976C:
+/* 8008976C 000866AC 38 A0 00 20 */ li r5, 0x20
+/* 80089770 000866B0 48 00 00 08 */ b lbl_80089778
+lbl_80089774:
+/* 80089774 000866B4 38 A0 00 03 */ li r5, 3
+lbl_80089778:
+/* 80089778 000866B8 38 7F 00 00 */ addi r3, r31, 0
+/* 8008977C 000866BC 38 80 00 80 */ li r4, 0x80
+/* 80089780 000866C0 4B FF F4 95 */ bl TRKStandardACK
+/* 80089784 000866C4 48 00 00 0C */ b lbl_80089790
+lbl_80089788:
+/* 80089788 000866C8 7F E3 FB 78 */ mr r3, r31
+/* 8008978C 000866CC 4B FF F4 39 */ bl TRKSendACK
+lbl_80089790:
+/* 80089790 000866D0 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 80089794 000866D4 38 21 00 18 */ addi r1, r1, 0x18
+/* 80089798 000866D8 80 01 00 04 */ lwz r0, 4(r1)
+/* 8008979C 000866DC 7C 08 03 A6 */ mtlr r0
+/* 800897A0 000866E0 4E 80 00 20 */ blr
+
+.global TRKDoWriteRegisters
+TRKDoWriteRegisters:
+/* 800897A4 000866E4 7C 08 02 A6 */ mflr r0
+/* 800897A8 000866E8 90 01 00 04 */ stw r0, 4(r1)
+/* 800897AC 000866EC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 800897B0 000866F0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 800897B4 000866F4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 800897B8 000866F8 7C 7E 1B 78 */ mr r30, r3
+/* 800897BC 000866FC 80 03 00 08 */ lwz r0, 8(r3)
+/* 800897C0 00086700 28 00 00 06 */ cmplwi r0, 6
+/* 800897C4 00086704 41 81 00 18 */ bgt lbl_800897DC
+/* 800897C8 00086708 38 7E 00 00 */ addi r3, r30, 0
+/* 800897CC 0008670C 38 80 00 80 */ li r4, 0x80
+/* 800897D0 00086710 38 A0 00 02 */ li r5, 2
+/* 800897D4 00086714 4B FF F4 41 */ bl TRKStandardACK
+/* 800897D8 00086718 48 00 01 BC */ b lbl_80089994
+lbl_800897DC:
+/* 800897DC 0008671C 38 7E 00 00 */ addi r3, r30, 0
+/* 800897E0 00086720 38 80 00 00 */ li r4, 0
+/* 800897E4 00086724 4B FF EA 8D */ bl TRKSetBufferPosition
+/* 800897E8 00086728 38 7E 00 00 */ addi r3, r30, 0
+/* 800897EC 0008672C 38 81 00 08 */ addi r4, r1, 8
+/* 800897F0 00086730 4B FF EE 05 */ bl TRKReadBuffer1_ui8
+/* 800897F4 00086734 2C 03 00 00 */ cmpwi r3, 0
+/* 800897F8 00086738 40 82 00 10 */ bne lbl_80089808
+/* 800897FC 0008673C 38 7E 00 00 */ addi r3, r30, 0
+/* 80089800 00086740 38 81 00 09 */ addi r4, r1, 9
+/* 80089804 00086744 4B FF ED F1 */ bl TRKReadBuffer1_ui8
+lbl_80089808:
+/* 80089808 00086748 2C 03 00 00 */ cmpwi r3, 0
+/* 8008980C 0008674C 40 82 00 10 */ bne lbl_8008981C
+/* 80089810 00086750 38 7E 00 00 */ addi r3, r30, 0
+/* 80089814 00086754 38 81 00 0A */ addi r4, r1, 0xa
+/* 80089818 00086758 4B FF EE 01 */ bl TRKReadBuffer1_ui16
+lbl_8008981C:
+/* 8008981C 0008675C 2C 03 00 00 */ cmpwi r3, 0
+/* 80089820 00086760 40 82 00 10 */ bne lbl_80089830
+/* 80089824 00086764 38 7E 00 00 */ addi r3, r30, 0
+/* 80089828 00086768 38 81 00 0C */ addi r4, r1, 0xc
+/* 8008982C 0008676C 4B FF ED ED */ bl TRKReadBuffer1_ui16
+lbl_80089830:
+/* 80089830 00086770 A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 80089834 00086774 A0 81 00 0C */ lhz r4, 0xc(r1)
+/* 80089838 00086778 7C 03 20 40 */ cmplw r3, r4
+/* 8008983C 0008677C 40 81 00 18 */ ble lbl_80089854
+/* 80089840 00086780 38 7E 00 00 */ addi r3, r30, 0
+/* 80089844 00086784 38 80 00 80 */ li r4, 0x80
+/* 80089848 00086788 38 A0 00 14 */ li r5, 0x14
+/* 8008984C 0008678C 4B FF F3 C9 */ bl TRKStandardACK
+/* 80089850 00086790 48 00 01 44 */ b lbl_80089994
+lbl_80089854:
+/* 80089854 00086794 88 01 00 09 */ lbz r0, 9(r1)
+/* 80089858 00086798 2C 00 00 02 */ cmpwi r0, 2
+/* 8008985C 0008679C 41 82 00 54 */ beq lbl_800898B0
+/* 80089860 000867A0 40 80 00 14 */ bge lbl_80089874
+/* 80089864 000867A4 2C 00 00 00 */ cmpwi r0, 0
+/* 80089868 000867A8 41 82 00 18 */ beq lbl_80089880
+/* 8008986C 000867AC 40 80 00 2C */ bge lbl_80089898
+/* 80089870 000867B0 48 00 00 70 */ b lbl_800898E0
+lbl_80089874:
+/* 80089874 000867B4 2C 00 00 04 */ cmpwi r0, 4
+/* 80089878 000867B8 40 80 00 68 */ bge lbl_800898E0
+/* 8008987C 000867BC 48 00 00 4C */ b lbl_800898C8
+lbl_80089880:
+/* 80089880 000867C0 38 C1 00 10 */ addi r6, r1, 0x10
+/* 80089884 000867C4 38 BE 00 00 */ addi r5, r30, 0
+/* 80089888 000867C8 38 E0 00 00 */ li r7, 0
+/* 8008988C 000867CC 48 00 0E E1 */ bl TRKTargetAccessDefault
+/* 80089890 000867D0 7C 7F 1B 78 */ mr r31, r3
+/* 80089894 000867D4 48 00 00 50 */ b lbl_800898E4
+lbl_80089898:
+/* 80089898 000867D8 38 C1 00 10 */ addi r6, r1, 0x10
+/* 8008989C 000867DC 38 BE 00 00 */ addi r5, r30, 0
+/* 800898A0 000867E0 38 E0 00 00 */ li r7, 0
+/* 800898A4 000867E4 48 00 0F C5 */ bl TRKTargetAccessFP
+/* 800898A8 000867E8 7C 7F 1B 78 */ mr r31, r3
+/* 800898AC 000867EC 48 00 00 38 */ b lbl_800898E4
+lbl_800898B0:
+/* 800898B0 000867F0 38 C1 00 10 */ addi r6, r1, 0x10
+/* 800898B4 000867F4 38 BE 00 00 */ addi r5, r30, 0
+/* 800898B8 000867F8 38 E0 00 00 */ li r7, 0
+/* 800898BC 000867FC 48 00 10 F5 */ bl TRKTargetAccessExtended1
+/* 800898C0 00086800 7C 7F 1B 78 */ mr r31, r3
+/* 800898C4 00086804 48 00 00 20 */ b lbl_800898E4
+lbl_800898C8:
+/* 800898C8 00086808 38 C1 00 10 */ addi r6, r1, 0x10
+/* 800898CC 0008680C 38 BE 00 00 */ addi r5, r30, 0
+/* 800898D0 00086810 38 E0 00 00 */ li r7, 0
+/* 800898D4 00086814 48 00 12 55 */ bl TRKTargetAccessExtended2
+/* 800898D8 00086818 7C 7F 1B 78 */ mr r31, r3
+/* 800898DC 0008681C 48 00 00 08 */ b lbl_800898E4
+lbl_800898E0:
+/* 800898E0 00086820 3B E0 07 03 */ li r31, 0x703
+lbl_800898E4:
+/* 800898E4 00086824 2C 1F 00 00 */ cmpwi r31, 0
+/* 800898E8 00086828 40 82 00 14 */ bne lbl_800898FC
+/* 800898EC 0008682C 38 7E 00 00 */ addi r3, r30, 0
+/* 800898F0 00086830 38 80 00 80 */ li r4, 0x80
+/* 800898F4 00086834 38 A0 00 00 */ li r5, 0
+/* 800898F8 00086838 4B FF F2 35 */ bl TRKMessageIntoReply
+lbl_800898FC:
+/* 800898FC 0008683C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80089900 00086840 41 82 00 8C */ beq lbl_8008998C
+/* 80089904 00086844 2C 1F 07 03 */ cmpwi r31, 0x703
+/* 80089908 00086848 41 82 00 38 */ beq lbl_80089940
+/* 8008990C 0008684C 40 80 00 1C */ bge lbl_80089928
+/* 80089910 00086850 2C 1F 07 01 */ cmpwi r31, 0x701
+/* 80089914 00086854 41 82 00 34 */ beq lbl_80089948
+/* 80089918 00086858 40 80 00 40 */ bge lbl_80089958
+/* 8008991C 0008685C 2C 1F 03 02 */ cmpwi r31, 0x302
+/* 80089920 00086860 41 82 00 30 */ beq lbl_80089950
+/* 80089924 00086864 48 00 00 54 */ b lbl_80089978
+lbl_80089928:
+/* 80089928 00086868 2C 1F 07 06 */ cmpwi r31, 0x706
+/* 8008992C 0008686C 41 82 00 44 */ beq lbl_80089970
+/* 80089930 00086870 40 80 00 48 */ bge lbl_80089978
+/* 80089934 00086874 2C 1F 07 05 */ cmpwi r31, 0x705
+/* 80089938 00086878 40 80 00 30 */ bge lbl_80089968
+/* 8008993C 0008687C 48 00 00 24 */ b lbl_80089960
+lbl_80089940:
+/* 80089940 00086880 38 A0 00 12 */ li r5, 0x12
+/* 80089944 00086884 48 00 00 38 */ b lbl_8008997C
+lbl_80089948:
+/* 80089948 00086888 38 A0 00 14 */ li r5, 0x14
+/* 8008994C 0008688C 48 00 00 30 */ b lbl_8008997C
+lbl_80089950:
+/* 80089950 00086890 38 A0 00 02 */ li r5, 2
+/* 80089954 00086894 48 00 00 28 */ b lbl_8008997C
+lbl_80089958:
+/* 80089958 00086898 38 A0 00 15 */ li r5, 0x15
+/* 8008995C 0008689C 48 00 00 20 */ b lbl_8008997C
+lbl_80089960:
+/* 80089960 000868A0 38 A0 00 21 */ li r5, 0x21
+/* 80089964 000868A4 48 00 00 18 */ b lbl_8008997C
+lbl_80089968:
+/* 80089968 000868A8 38 A0 00 22 */ li r5, 0x22
+/* 8008996C 000868AC 48 00 00 10 */ b lbl_8008997C
+lbl_80089970:
+/* 80089970 000868B0 38 A0 00 20 */ li r5, 0x20
+/* 80089974 000868B4 48 00 00 08 */ b lbl_8008997C
+lbl_80089978:
+/* 80089978 000868B8 38 A0 00 03 */ li r5, 3
+lbl_8008997C:
+/* 8008997C 000868BC 38 7E 00 00 */ addi r3, r30, 0
+/* 80089980 000868C0 38 80 00 80 */ li r4, 0x80
+/* 80089984 000868C4 4B FF F2 91 */ bl TRKStandardACK
+/* 80089988 000868C8 48 00 00 0C */ b lbl_80089994
+lbl_8008998C:
+/* 8008998C 000868CC 7F C3 F3 78 */ mr r3, r30
+/* 80089990 000868D0 4B FF F2 35 */ bl TRKSendACK
+lbl_80089994:
+/* 80089994 000868D4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80089998 000868D8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8008999C 000868DC 38 21 00 20 */ addi r1, r1, 0x20
+/* 800899A0 000868E0 80 01 00 04 */ lwz r0, 4(r1)
+/* 800899A4 000868E4 7C 08 03 A6 */ mtlr r0
+/* 800899A8 000868E8 4E 80 00 20 */ blr
+
+.global TRKDoFlushCache
+TRKDoFlushCache:
+/* 800899AC 000868EC 7C 08 02 A6 */ mflr r0
+/* 800899B0 000868F0 90 01 00 04 */ stw r0, 4(r1)
+/* 800899B4 000868F4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 800899B8 000868F8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 800899BC 000868FC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 800899C0 00086900 7C 7E 1B 78 */ mr r30, r3
+/* 800899C4 00086904 80 03 00 08 */ lwz r0, 8(r3)
+/* 800899C8 00086908 28 00 00 0A */ cmplwi r0, 0xa
+/* 800899CC 0008690C 41 82 00 18 */ beq lbl_800899E4
+/* 800899D0 00086910 38 7E 00 00 */ addi r3, r30, 0
+/* 800899D4 00086914 38 80 00 80 */ li r4, 0x80
+/* 800899D8 00086918 38 A0 00 02 */ li r5, 2
+/* 800899DC 0008691C 4B FF F2 39 */ bl TRKStandardACK
+/* 800899E0 00086920 48 00 00 EC */ b lbl_80089ACC
+lbl_800899E4:
+/* 800899E4 00086924 38 7E 00 00 */ addi r3, r30, 0
+/* 800899E8 00086928 38 80 00 00 */ li r4, 0
+/* 800899EC 0008692C 4B FF E8 85 */ bl TRKSetBufferPosition
+/* 800899F0 00086930 38 7E 00 00 */ addi r3, r30, 0
+/* 800899F4 00086934 38 81 00 08 */ addi r4, r1, 8
+/* 800899F8 00086938 4B FF EB FD */ bl TRKReadBuffer1_ui8
+/* 800899FC 0008693C 7C 7F 1B 79 */ or. r31, r3, r3
+/* 80089A00 00086940 40 82 00 14 */ bne lbl_80089A14
+/* 80089A04 00086944 38 7E 00 00 */ addi r3, r30, 0
+/* 80089A08 00086948 38 81 00 09 */ addi r4, r1, 9
+/* 80089A0C 0008694C 4B FF EB E9 */ bl TRKReadBuffer1_ui8
+/* 80089A10 00086950 7C 7F 1B 78 */ mr r31, r3
+lbl_80089A14:
+/* 80089A14 00086954 2C 1F 00 00 */ cmpwi r31, 0
+/* 80089A18 00086958 40 82 00 14 */ bne lbl_80089A2C
+/* 80089A1C 0008695C 38 7E 00 00 */ addi r3, r30, 0
+/* 80089A20 00086960 38 81 00 0C */ addi r4, r1, 0xc
+/* 80089A24 00086964 4B FF EC 75 */ bl TRKReadBuffer1_ui32
+/* 80089A28 00086968 7C 7F 1B 78 */ mr r31, r3
+lbl_80089A2C:
+/* 80089A2C 0008696C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80089A30 00086970 40 82 00 14 */ bne lbl_80089A44
+/* 80089A34 00086974 38 7E 00 00 */ addi r3, r30, 0
+/* 80089A38 00086978 38 81 00 10 */ addi r4, r1, 0x10
+/* 80089A3C 0008697C 4B FF EC 5D */ bl TRKReadBuffer1_ui32
+/* 80089A40 00086980 7C 7F 1B 78 */ mr r31, r3
+lbl_80089A44:
+/* 80089A44 00086984 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80089A48 00086988 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 80089A4C 0008698C 7C 04 28 40 */ cmplw r4, r5
+/* 80089A50 00086990 40 81 00 18 */ ble lbl_80089A68
+/* 80089A54 00086994 38 7E 00 00 */ addi r3, r30, 0
+/* 80089A58 00086998 38 80 00 80 */ li r4, 0x80
+/* 80089A5C 0008699C 38 A0 00 13 */ li r5, 0x13
+/* 80089A60 000869A0 4B FF F1 B5 */ bl TRKStandardACK
+/* 80089A64 000869A4 48 00 00 68 */ b lbl_80089ACC
+lbl_80089A68:
+/* 80089A68 000869A8 2C 1F 00 00 */ cmpwi r31, 0
+/* 80089A6C 000869AC 40 82 00 10 */ bne lbl_80089A7C
+/* 80089A70 000869B0 88 61 00 09 */ lbz r3, 9(r1)
+/* 80089A74 000869B4 48 00 1B FD */ bl TRKTargetFlushCache
+/* 80089A78 000869B8 7C 7F 1B 78 */ mr r31, r3
+lbl_80089A7C:
+/* 80089A7C 000869BC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80089A80 000869C0 40 82 00 14 */ bne lbl_80089A94
+/* 80089A84 000869C4 38 7E 00 00 */ addi r3, r30, 0
+/* 80089A88 000869C8 38 80 00 80 */ li r4, 0x80
+/* 80089A8C 000869CC 38 A0 00 00 */ li r5, 0
+/* 80089A90 000869D0 4B FF F0 9D */ bl TRKMessageIntoReply
+lbl_80089A94:
+/* 80089A94 000869D4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80089A98 000869D8 41 82 00 2C */ beq lbl_80089AC4
+/* 80089A9C 000869DC 2C 1F 07 03 */ cmpwi r31, 0x703
+/* 80089AA0 000869E0 41 82 00 08 */ beq lbl_80089AA8
+/* 80089AA4 000869E4 48 00 00 0C */ b lbl_80089AB0
+lbl_80089AA8:
+/* 80089AA8 000869E8 38 A0 00 12 */ li r5, 0x12
+/* 80089AAC 000869EC 48 00 00 08 */ b lbl_80089AB4
+lbl_80089AB0:
+/* 80089AB0 000869F0 38 A0 00 03 */ li r5, 3
+lbl_80089AB4:
+/* 80089AB4 000869F4 38 7E 00 00 */ addi r3, r30, 0
+/* 80089AB8 000869F8 38 80 00 80 */ li r4, 0x80
+/* 80089ABC 000869FC 4B FF F1 59 */ bl TRKStandardACK
+/* 80089AC0 00086A00 48 00 00 0C */ b lbl_80089ACC
+lbl_80089AC4:
+/* 80089AC4 00086A04 7F C3 F3 78 */ mr r3, r30
+/* 80089AC8 00086A08 4B FF F0 FD */ bl TRKSendACK
+lbl_80089ACC:
+/* 80089ACC 00086A0C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80089AD0 00086A10 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80089AD4 00086A14 38 21 00 20 */ addi r1, r1, 0x20
+/* 80089AD8 00086A18 80 01 00 04 */ lwz r0, 4(r1)
+/* 80089ADC 00086A1C 7C 08 03 A6 */ mtlr r0
+/* 80089AE0 00086A20 4E 80 00 20 */ blr
+
+.global TRKDoContinue
+TRKDoContinue:
+/* 80089AE4 00086A24 7C 08 02 A6 */ mflr r0
+/* 80089AE8 00086A28 90 01 00 04 */ stw r0, 4(r1)
+/* 80089AEC 00086A2C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80089AF0 00086A30 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80089AF4 00086A34 7C 7F 1B 78 */ mr r31, r3
+/* 80089AF8 00086A38 48 00 1B B5 */ bl TRKTargetStopped
+/* 80089AFC 00086A3C 2C 03 00 00 */ cmpwi r3, 0
+/* 80089B00 00086A40 40 82 00 18 */ bne lbl_80089B18
+/* 80089B04 00086A44 38 7F 00 00 */ addi r3, r31, 0
+/* 80089B08 00086A48 38 80 00 80 */ li r4, 0x80
+/* 80089B0C 00086A4C 38 A0 00 16 */ li r5, 0x16
+/* 80089B10 00086A50 4B FF F1 05 */ bl TRKStandardACK
+/* 80089B14 00086A54 48 00 00 20 */ b lbl_80089B34
+lbl_80089B18:
+/* 80089B18 00086A58 38 7F 00 00 */ addi r3, r31, 0
+/* 80089B1C 00086A5C 38 80 00 80 */ li r4, 0x80
+/* 80089B20 00086A60 38 A0 00 00 */ li r5, 0
+/* 80089B24 00086A64 4B FF F0 F1 */ bl TRKStandardACK
+/* 80089B28 00086A68 2C 03 00 00 */ cmpwi r3, 0
+/* 80089B2C 00086A6C 40 82 00 08 */ bne lbl_80089B34
+/* 80089B30 00086A70 48 00 28 3D */ bl TRKTargetContinue
+lbl_80089B34:
+/* 80089B34 00086A74 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80089B38 00086A78 38 21 00 10 */ addi r1, r1, 0x10
+/* 80089B3C 00086A7C 80 01 00 04 */ lwz r0, 4(r1)
+/* 80089B40 00086A80 7C 08 03 A6 */ mtlr r0
+/* 80089B44 00086A84 4E 80 00 20 */ blr
+
+.global TRKDoStep
+TRKDoStep:
+/* 80089B48 00086A88 7C 08 02 A6 */ mflr r0
+/* 80089B4C 00086A8C 90 01 00 04 */ stw r0, 4(r1)
+/* 80089B50 00086A90 94 21 FF E8 */ stwu r1, -0x18(r1)
+/* 80089B54 00086A94 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 80089B58 00086A98 7C 7F 1B 78 */ mr r31, r3
+/* 80089B5C 00086A9C 80 03 00 08 */ lwz r0, 8(r3)
+/* 80089B60 00086AA0 28 00 00 03 */ cmplwi r0, 3
+/* 80089B64 00086AA4 40 80 00 18 */ bge lbl_80089B7C
+/* 80089B68 00086AA8 38 7F 00 00 */ addi r3, r31, 0
+/* 80089B6C 00086AAC 38 80 00 80 */ li r4, 0x80
+/* 80089B70 00086AB0 38 A0 00 02 */ li r5, 2
+/* 80089B74 00086AB4 4B FF F0 A1 */ bl TRKStandardACK
+/* 80089B78 00086AB8 48 00 01 C0 */ b lbl_80089D38
+lbl_80089B7C:
+/* 80089B7C 00086ABC 38 7F 00 00 */ addi r3, r31, 0
+/* 80089B80 00086AC0 38 80 00 00 */ li r4, 0
+/* 80089B84 00086AC4 4B FF E6 ED */ bl TRKSetBufferPosition
+/* 80089B88 00086AC8 38 7F 00 00 */ addi r3, r31, 0
+/* 80089B8C 00086ACC 38 81 00 08 */ addi r4, r1, 8
+/* 80089B90 00086AD0 4B FF EA 65 */ bl TRKReadBuffer1_ui8
+/* 80089B94 00086AD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80089B98 00086AD8 40 82 00 10 */ bne lbl_80089BA8
+/* 80089B9C 00086ADC 38 7F 00 00 */ addi r3, r31, 0
+/* 80089BA0 00086AE0 38 81 00 09 */ addi r4, r1, 9
+/* 80089BA4 00086AE4 4B FF EA 51 */ bl TRKReadBuffer1_ui8
+lbl_80089BA8:
+/* 80089BA8 00086AE8 88 01 00 09 */ lbz r0, 9(r1)
+/* 80089BAC 00086AEC 2C 00 00 10 */ cmpwi r0, 0x10
+/* 80089BB0 00086AF0 41 82 00 2C */ beq lbl_80089BDC
+/* 80089BB4 00086AF4 40 80 00 1C */ bge lbl_80089BD0
+/* 80089BB8 00086AF8 2C 00 00 01 */ cmpwi r0, 1
+/* 80089BBC 00086AFC 41 82 00 54 */ beq lbl_80089C10
+/* 80089BC0 00086B00 40 80 00 C8 */ bge lbl_80089C88
+/* 80089BC4 00086B04 2C 00 00 00 */ cmpwi r0, 0
+/* 80089BC8 00086B08 40 80 00 14 */ bge lbl_80089BDC
+/* 80089BCC 00086B0C 48 00 00 BC */ b lbl_80089C88
+lbl_80089BD0:
+/* 80089BD0 00086B10 2C 00 00 12 */ cmpwi r0, 0x12
+/* 80089BD4 00086B14 40 80 00 B4 */ bge lbl_80089C88
+/* 80089BD8 00086B18 48 00 00 38 */ b lbl_80089C10
+lbl_80089BDC:
+/* 80089BDC 00086B1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80089BE0 00086B20 40 82 00 10 */ bne lbl_80089BF0
+/* 80089BE4 00086B24 38 7F 00 00 */ addi r3, r31, 0
+/* 80089BE8 00086B28 38 81 00 0A */ addi r4, r1, 0xa
+/* 80089BEC 00086B2C 4B FF EA 09 */ bl TRKReadBuffer1_ui8
+lbl_80089BF0:
+/* 80089BF0 00086B30 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 80089BF4 00086B34 28 00 00 01 */ cmplwi r0, 1
+/* 80089BF8 00086B38 40 80 00 A4 */ bge lbl_80089C9C
+/* 80089BFC 00086B3C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089C00 00086B40 38 80 00 80 */ li r4, 0x80
+/* 80089C04 00086B44 38 A0 00 11 */ li r5, 0x11
+/* 80089C08 00086B48 4B FF F0 0D */ bl TRKStandardACK
+/* 80089C0C 00086B4C 48 00 01 2C */ b lbl_80089D38
+lbl_80089C10:
+/* 80089C10 00086B50 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80089C14 00086B54 28 00 00 0A */ cmplwi r0, 0xa
+/* 80089C18 00086B58 41 82 00 18 */ beq lbl_80089C30
+/* 80089C1C 00086B5C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089C20 00086B60 38 80 00 80 */ li r4, 0x80
+/* 80089C24 00086B64 38 A0 00 02 */ li r5, 2
+/* 80089C28 00086B68 4B FF EF ED */ bl TRKStandardACK
+/* 80089C2C 00086B6C 48 00 01 0C */ b lbl_80089D38
+lbl_80089C30:
+/* 80089C30 00086B70 2C 03 00 00 */ cmpwi r3, 0
+/* 80089C34 00086B74 40 82 00 10 */ bne lbl_80089C44
+/* 80089C38 00086B78 38 7F 00 00 */ addi r3, r31, 0
+/* 80089C3C 00086B7C 38 81 00 0C */ addi r4, r1, 0xc
+/* 80089C40 00086B80 4B FF EA 59 */ bl TRKReadBuffer1_ui32
+lbl_80089C44:
+/* 80089C44 00086B84 2C 03 00 00 */ cmpwi r3, 0
+/* 80089C48 00086B88 40 82 00 10 */ bne lbl_80089C58
+/* 80089C4C 00086B8C 38 7F 00 00 */ addi r3, r31, 0
+/* 80089C50 00086B90 38 81 00 10 */ addi r4, r1, 0x10
+/* 80089C54 00086B94 4B FF EA 45 */ bl TRKReadBuffer1_ui32
+lbl_80089C58:
+/* 80089C58 00086B98 48 00 19 19 */ bl TRKTargetGetPC
+/* 80089C5C 00086B9C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80089C60 00086BA0 7C 03 00 40 */ cmplw r3, r0
+/* 80089C64 00086BA4 41 80 00 10 */ blt lbl_80089C74
+/* 80089C68 00086BA8 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80089C6C 00086BAC 7C 03 00 40 */ cmplw r3, r0
+/* 80089C70 00086BB0 40 81 00 2C */ ble lbl_80089C9C
+lbl_80089C74:
+/* 80089C74 00086BB4 38 7F 00 00 */ addi r3, r31, 0
+/* 80089C78 00086BB8 38 80 00 80 */ li r4, 0x80
+/* 80089C7C 00086BBC 38 A0 00 11 */ li r5, 0x11
+/* 80089C80 00086BC0 4B FF EF 95 */ bl TRKStandardACK
+/* 80089C84 00086BC4 48 00 00 B4 */ b lbl_80089D38
+lbl_80089C88:
+/* 80089C88 00086BC8 38 7F 00 00 */ addi r3, r31, 0
+/* 80089C8C 00086BCC 38 80 00 80 */ li r4, 0x80
+/* 80089C90 00086BD0 38 A0 00 12 */ li r5, 0x12
+/* 80089C94 00086BD4 4B FF EF 81 */ bl TRKStandardACK
+/* 80089C98 00086BD8 48 00 00 A0 */ b lbl_80089D38
+lbl_80089C9C:
+/* 80089C9C 00086BDC 48 00 1A 11 */ bl TRKTargetStopped
+/* 80089CA0 00086BE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80089CA4 00086BE4 40 82 00 18 */ bne lbl_80089CBC
+/* 80089CA8 00086BE8 38 7F 00 00 */ addi r3, r31, 0
+/* 80089CAC 00086BEC 38 80 00 80 */ li r4, 0x80
+/* 80089CB0 00086BF0 38 A0 00 16 */ li r5, 0x16
+/* 80089CB4 00086BF4 4B FF EF 61 */ bl TRKStandardACK
+/* 80089CB8 00086BF8 48 00 00 80 */ b lbl_80089D38
+lbl_80089CBC:
+/* 80089CBC 00086BFC 38 7F 00 00 */ addi r3, r31, 0
+/* 80089CC0 00086C00 38 80 00 80 */ li r4, 0x80
+/* 80089CC4 00086C04 38 A0 00 00 */ li r5, 0
+/* 80089CC8 00086C08 4B FF EF 4D */ bl TRKStandardACK
+/* 80089CCC 00086C0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80089CD0 00086C10 40 82 00 68 */ bne lbl_80089D38
+/* 80089CD4 00086C14 88 01 00 09 */ lbz r0, 9(r1)
+/* 80089CD8 00086C18 2C 00 00 10 */ cmpwi r0, 0x10
+/* 80089CDC 00086C1C 41 82 00 2C */ beq lbl_80089D08
+/* 80089CE0 00086C20 40 80 00 1C */ bge lbl_80089CFC
+/* 80089CE4 00086C24 2C 00 00 01 */ cmpwi r0, 1
+/* 80089CE8 00086C28 41 82 00 38 */ beq lbl_80089D20
+/* 80089CEC 00086C2C 40 80 00 4C */ bge lbl_80089D38
+/* 80089CF0 00086C30 2C 00 00 00 */ cmpwi r0, 0
+/* 80089CF4 00086C34 40 80 00 14 */ bge lbl_80089D08
+/* 80089CF8 00086C38 48 00 00 40 */ b lbl_80089D38
+lbl_80089CFC:
+/* 80089CFC 00086C3C 2C 00 00 12 */ cmpwi r0, 0x12
+/* 80089D00 00086C40 40 80 00 38 */ bge lbl_80089D38
+/* 80089D04 00086C44 48 00 00 1C */ b lbl_80089D20
+lbl_80089D08:
+/* 80089D08 00086C48 20 00 00 10 */ subfic r0, r0, 0x10
+/* 80089D0C 00086C4C 88 61 00 0A */ lbz r3, 0xa(r1)
+/* 80089D10 00086C50 7C 00 00 34 */ cntlzw r0, r0
+/* 80089D14 00086C54 54 04 D9 7E */ srwi r4, r0, 5
+/* 80089D18 00086C58 48 00 17 CD */ bl TRKTargetSingleStep
+/* 80089D1C 00086C5C 48 00 00 1C */ b lbl_80089D38
+lbl_80089D20:
+/* 80089D20 00086C60 20 00 00 11 */ subfic r0, r0, 0x11
+/* 80089D24 00086C64 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80089D28 00086C68 7C 00 00 34 */ cntlzw r0, r0
+/* 80089D2C 00086C6C 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 80089D30 00086C70 54 05 D9 7E */ srwi r5, r0, 5
+/* 80089D34 00086C74 48 00 17 F5 */ bl TRKTargetStepOutOfRange
+lbl_80089D38:
+/* 80089D38 00086C78 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 80089D3C 00086C7C 38 21 00 18 */ addi r1, r1, 0x18
+/* 80089D40 00086C80 80 01 00 04 */ lwz r0, 4(r1)
+/* 80089D44 00086C84 7C 08 03 A6 */ mtlr r0
+/* 80089D48 00086C88 4E 80 00 20 */ blr
+
+.global TRKDoStop
+TRKDoStop:
+/* 80089D4C 00086C8C 7C 08 02 A6 */ mflr r0
+/* 80089D50 00086C90 90 01 00 04 */ stw r0, 4(r1)
+/* 80089D54 00086C94 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80089D58 00086C98 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80089D5C 00086C9C 7C 7F 1B 78 */ mr r31, r3
+/* 80089D60 00086CA0 48 00 19 6D */ bl TRKTargetStop
+/* 80089D64 00086CA4 2C 03 07 04 */ cmpwi r3, 0x704
+/* 80089D68 00086CA8 41 82 00 2C */ beq lbl_80089D94
+/* 80089D6C 00086CAC 40 80 00 10 */ bge lbl_80089D7C
+/* 80089D70 00086CB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80089D74 00086CB4 41 82 00 18 */ beq lbl_80089D8C
+/* 80089D78 00086CB8 48 00 00 34 */ b lbl_80089DAC
+lbl_80089D7C:
+/* 80089D7C 00086CBC 2C 03 07 06 */ cmpwi r3, 0x706
+/* 80089D80 00086CC0 41 82 00 24 */ beq lbl_80089DA4
+/* 80089D84 00086CC4 40 80 00 28 */ bge lbl_80089DAC
+/* 80089D88 00086CC8 48 00 00 14 */ b lbl_80089D9C
+lbl_80089D8C:
+/* 80089D8C 00086CCC 38 A0 00 00 */ li r5, 0
+/* 80089D90 00086CD0 48 00 00 20 */ b lbl_80089DB0
+lbl_80089D94:
+/* 80089D94 00086CD4 38 A0 00 21 */ li r5, 0x21
+/* 80089D98 00086CD8 48 00 00 18 */ b lbl_80089DB0
+lbl_80089D9C:
+/* 80089D9C 00086CDC 38 A0 00 22 */ li r5, 0x22
+/* 80089DA0 00086CE0 48 00 00 10 */ b lbl_80089DB0
+lbl_80089DA4:
+/* 80089DA4 00086CE4 38 A0 00 20 */ li r5, 0x20
+/* 80089DA8 00086CE8 48 00 00 08 */ b lbl_80089DB0
+lbl_80089DAC:
+/* 80089DAC 00086CEC 38 A0 00 01 */ li r5, 1
+lbl_80089DB0:
+/* 80089DB0 00086CF0 38 7F 00 00 */ addi r3, r31, 0
+/* 80089DB4 00086CF4 38 80 00 80 */ li r4, 0x80
+/* 80089DB8 00086CF8 4B FF EE 5D */ bl TRKStandardACK
+/* 80089DBC 00086CFC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80089DC0 00086D00 38 21 00 10 */ addi r1, r1, 0x10
+/* 80089DC4 00086D04 80 01 00 04 */ lwz r0, 4(r1)
+/* 80089DC8 00086D08 7C 08 03 A6 */ mtlr r0
+/* 80089DCC 00086D0C 4E 80 00 20 */ blr
+
+.section .data, "wa" # 0x803A8380 - 0x803E6000
+"@175":
+ .4byte lbl_80089350
+ .4byte lbl_80089370
+ .4byte lbl_80089348
+ .4byte lbl_80089370
+ .4byte lbl_80089358
+ .4byte lbl_80089360
+ .4byte lbl_80089368
+"@214":
+ .4byte lbl_8008954C
+ .4byte lbl_8008956C
+ .4byte lbl_80089544
+ .4byte lbl_8008956C
+ .4byte lbl_80089554
+ .4byte lbl_8008955C
+ .4byte lbl_80089564