donut-decomp/asm/TRK_Hollywood_Revolution/msgbuf.s

676 lines
29 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global TRK_InitializeMessageBuffers
TRK_InitializeMessageBuffers:
/* 80016F68 00012DA8 3C 60 80 49 */ lis r3, gTRKMsgBufs@ha
/* 80016F6C 00012DAC 38 00 00 00 */ li r0, 0x0
/* 80016F70 00012DB0 38 83 71 48 */ addi r4, r3, gTRKMsgBufs@l
/* 80016F74 00012DB4 90 03 71 48 */ stw r0, 0x7148(r3)
/* 80016F78 00012DB8 38 60 00 00 */ li r3, 0x0
/* 80016F7C 00012DBC 90 04 08 8C */ stw r0, 0x88c(r4)
/* 80016F80 00012DC0 90 04 11 18 */ stw r0, 0x1118(r4)
/* 80016F84 00012DC4 4E 80 00 20 */ blr
.global TRK_GetFreeBuffer
TRK_GetFreeBuffer:
/* 80016F88 00012DC8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80016F8C 00012DCC 7C 08 02 A6 */ mflr r0
/* 80016F90 00012DD0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80016F94 00012DD4 38 00 00 00 */ li r0, 0x0
/* 80016F98 00012DD8 BF 41 00 08 */ stmw r26, 0x8(r1)
/* 80016F9C 00012DDC 7C 7A 1B 78 */ mr r26, r3
/* 80016FA0 00012DE0 7C 9B 23 78 */ mr r27, r4
/* 80016FA4 00012DE4 3B C0 03 00 */ li r30, 0x300
/* 80016FA8 00012DE8 3B A0 00 00 */ li r29, 0x0
/* 80016FAC 00012DEC 3B E0 00 01 */ li r31, 0x1
/* 80016FB0 00012DF0 90 04 00 00 */ stw r0, 0x0(r4)
/* 80016FB4 00012DF4 48 00 00 3C */ b lbl_80016FF0
.global lbl_80016FB8
lbl_80016FB8:
/* 80016FB8 00012DF8 7F A3 EB 78 */ mr r3, r29
/* 80016FBC 00012DFC 48 00 00 69 */ bl TRKGetBuffer
/* 80016FC0 00012E00 80 03 00 00 */ lwz r0, 0x0(r3)
/* 80016FC4 00012E04 7C 7C 1B 78 */ mr r28, r3
/* 80016FC8 00012E08 2C 00 00 00 */ cmpwi r0, 0x0
/* 80016FCC 00012E0C 40 82 00 20 */ bne lbl_80016FEC
/* 80016FD0 00012E10 38 80 00 01 */ li r4, 0x1
/* 80016FD4 00012E14 48 00 00 9D */ bl TRKResetBuffer
/* 80016FD8 00012E18 93 FC 00 00 */ stw r31, 0x0(r28)
/* 80016FDC 00012E1C 3B C0 00 00 */ li r30, 0x0
/* 80016FE0 00012E20 93 9B 00 00 */ stw r28, 0x0(r27)
/* 80016FE4 00012E24 93 BA 00 00 */ stw r29, 0x0(r26)
/* 80016FE8 00012E28 3B A0 00 03 */ li r29, 0x3
.global lbl_80016FEC
lbl_80016FEC:
/* 80016FEC 00012E2C 3B BD 00 01 */ addi r29, r29, 0x1
.global lbl_80016FF0
lbl_80016FF0:
/* 80016FF0 00012E30 2C 1D 00 03 */ cmpwi r29, 0x3
/* 80016FF4 00012E34 41 80 FF C4 */ blt lbl_80016FB8
/* 80016FF8 00012E38 2C 1E 03 00 */ cmpwi r30, 0x300
/* 80016FFC 00012E3C 40 82 00 10 */ bne lbl_8001700C
/* 80017000 00012E40 3C 60 80 42 */ lis r3, "@stringBase0_80421D00"@ha
/* 80017004 00012E44 38 63 1D 00 */ addi r3, r3, "@stringBase0_80421D00"@l
/* 80017008 00012E48 48 00 69 89 */ bl OSReport
.global lbl_8001700C
lbl_8001700C:
/* 8001700C 00012E4C 7F C3 F3 78 */ mr r3, r30
/* 80017010 00012E50 BB 41 00 08 */ lmw r26, 0x8(r1)
/* 80017014 00012E54 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80017018 00012E58 7C 08 03 A6 */ mtlr r0
/* 8001701C 00012E5C 38 21 00 20 */ addi r1, r1, 0x20
/* 80017020 00012E60 4E 80 00 20 */ blr
.global TRKGetBuffer
TRKGetBuffer:
/* 80017024 00012E64 28 03 00 02 */ cmplwi r3, 0x2
/* 80017028 00012E68 38 00 00 00 */ li r0, 0x0
/* 8001702C 00012E6C 41 81 00 14 */ bgt lbl_80017040
/* 80017030 00012E70 1C 03 08 8C */ mulli r0, r3, 0x88c
/* 80017034 00012E74 3C 60 80 49 */ lis r3, gTRKMsgBufs@ha
/* 80017038 00012E78 38 63 71 48 */ addi r3, r3, gTRKMsgBufs@l
/* 8001703C 00012E7C 7C 03 02 14 */ add r0, r3, r0
.global lbl_80017040
lbl_80017040:
/* 80017040 00012E80 7C 03 03 78 */ mr r3, r0
/* 80017044 00012E84 4E 80 00 20 */ blr
.global TRK_ReleaseBuffer
TRK_ReleaseBuffer:
/* 80017048 00012E88 2C 03 FF FF */ cmpwi r3, -0x1
/* 8001704C 00012E8C 4D 82 00 20 */ beqlr
/* 80017050 00012E90 28 03 00 02 */ cmplwi r3, 0x2
/* 80017054 00012E94 4D 81 00 20 */ bgtlr
/* 80017058 00012E98 1C 03 08 8C */ mulli r0, r3, 0x88c
/* 8001705C 00012E9C 3C 60 80 49 */ lis r3, gTRKMsgBufs@ha
/* 80017060 00012EA0 38 80 00 00 */ li r4, 0x0
/* 80017064 00012EA4 38 63 71 48 */ addi r3, r3, gTRKMsgBufs@l
/* 80017068 00012EA8 7C 83 01 2E */ stwx r4, r3, r0
/* 8001706C 00012EAC 4E 80 00 20 */ blr
.global TRKResetBuffer
TRKResetBuffer:
/* 80017070 00012EB0 2C 04 00 00 */ cmpwi r4, 0x0
/* 80017074 00012EB4 38 00 00 00 */ li r0, 0x0
/* 80017078 00012EB8 90 03 00 04 */ stw r0, 0x4(r3)
/* 8001707C 00012EBC 90 03 00 08 */ stw r0, 0x8(r3)
/* 80017080 00012EC0 4C 82 00 20 */ bnelr
/* 80017084 00012EC4 38 80 00 00 */ li r4, 0x0
/* 80017088 00012EC8 38 A0 08 80 */ li r5, 0x880
/* 8001708C 00012ECC 38 63 00 0C */ addi r3, r3, 0xc
/* 80017090 00012ED0 4B FF E7 3C */ b TRK_memset
/* 80017094 00012ED4 4E 80 00 20 */ blr
.global TRK_SetBufferPosition
TRK_SetBufferPosition:
/* 80017098 00012ED8 28 04 08 80 */ cmplwi r4, 0x880
/* 8001709C 00012EDC 38 A0 00 00 */ li r5, 0x0
/* 800170A0 00012EE0 40 81 00 0C */ ble lbl_800170AC
/* 800170A4 00012EE4 38 A0 03 01 */ li r5, 0x301
/* 800170A8 00012EE8 48 00 00 18 */ b lbl_800170C0
.global lbl_800170AC
lbl_800170AC:
/* 800170AC 00012EEC 80 03 00 04 */ lwz r0, 0x4(r3)
/* 800170B0 00012EF0 90 83 00 08 */ stw r4, 0x8(r3)
/* 800170B4 00012EF4 7C 04 00 40 */ cmplw r4, r0
/* 800170B8 00012EF8 40 81 00 08 */ ble lbl_800170C0
/* 800170BC 00012EFC 90 83 00 04 */ stw r4, 0x4(r3)
.global lbl_800170C0
lbl_800170C0:
/* 800170C0 00012F00 7C A3 2B 78 */ mr r3, r5
/* 800170C4 00012F04 4E 80 00 20 */ blr
.global TRK_AppendBuffer
TRK_AppendBuffer:
/* 800170C8 00012F08 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800170CC 00012F0C 7C 08 02 A6 */ mflr r0
/* 800170D0 00012F10 2C 05 00 00 */ cmpwi r5, 0x0
/* 800170D4 00012F14 90 01 00 24 */ stw r0, 0x24(r1)
/* 800170D8 00012F18 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800170DC 00012F1C 3B E0 00 00 */ li r31, 0x0
/* 800170E0 00012F20 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800170E4 00012F24 7C BE 2B 78 */ mr r30, r5
/* 800170E8 00012F28 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800170EC 00012F2C 7C 7D 1B 78 */ mr r29, r3
/* 800170F0 00012F30 40 82 00 0C */ bne lbl_800170FC
/* 800170F4 00012F34 38 60 00 00 */ li r3, 0x0
/* 800170F8 00012F38 48 00 00 58 */ b lbl_80017150
.global lbl_800170FC
lbl_800170FC:
/* 800170FC 00012F3C 80 03 00 08 */ lwz r0, 0x8(r3)
/* 80017100 00012F40 20 C0 08 80 */ subfic r6, r0, 0x880
/* 80017104 00012F44 7C 06 28 40 */ cmplw r6, r5
/* 80017108 00012F48 40 80 00 0C */ bge lbl_80017114
/* 8001710C 00012F4C 3B E0 03 01 */ li r31, 0x301
/* 80017110 00012F50 7C DE 33 78 */ mr r30, r6
.global lbl_80017114
lbl_80017114:
/* 80017114 00012F54 28 1E 00 01 */ cmplwi r30, 0x1
/* 80017118 00012F58 40 82 00 14 */ bne lbl_8001712C
/* 8001711C 00012F5C 7C 63 02 14 */ add r3, r3, r0
/* 80017120 00012F60 88 04 00 00 */ lbz r0, 0x0(r4)
/* 80017124 00012F64 98 03 00 0C */ stb r0, 0xc(r3)
/* 80017128 00012F68 48 00 00 14 */ b lbl_8001713C
.global lbl_8001712C
lbl_8001712C:
/* 8001712C 00012F6C 7C 63 02 14 */ add r3, r3, r0
/* 80017130 00012F70 7F C5 F3 78 */ mr r5, r30
/* 80017134 00012F74 38 63 00 0C */ addi r3, r3, 0xc
/* 80017138 00012F78 4B FF E5 59 */ bl TRK_memcpy
.global lbl_8001713C
lbl_8001713C:
/* 8001713C 00012F7C 80 1D 00 08 */ lwz r0, 0x8(r29)
/* 80017140 00012F80 7F E3 FB 78 */ mr r3, r31
/* 80017144 00012F84 7C 00 F2 14 */ add r0, r0, r30
/* 80017148 00012F88 90 1D 00 08 */ stw r0, 0x8(r29)
/* 8001714C 00012F8C 90 1D 00 04 */ stw r0, 0x4(r29)
.global lbl_80017150
lbl_80017150:
/* 80017150 00012F90 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80017154 00012F94 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80017158 00012F98 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8001715C 00012F9C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80017160 00012FA0 7C 08 03 A6 */ mtlr r0
/* 80017164 00012FA4 38 21 00 20 */ addi r1, r1, 0x20
/* 80017168 00012FA8 4E 80 00 20 */ blr
.global TRK_ReadBuffer
TRK_ReadBuffer:
/* 8001716C 00012FAC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80017170 00012FB0 7C 08 02 A6 */ mflr r0
/* 80017174 00012FB4 2C 05 00 00 */ cmpwi r5, 0x0
/* 80017178 00012FB8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001717C 00012FBC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80017180 00012FC0 3B E0 00 00 */ li r31, 0x0
/* 80017184 00012FC4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80017188 00012FC8 7C BE 2B 78 */ mr r30, r5
/* 8001718C 00012FCC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80017190 00012FD0 7C 7D 1B 78 */ mr r29, r3
/* 80017194 00012FD4 40 82 00 0C */ bne lbl_800171A0
/* 80017198 00012FD8 38 60 00 00 */ li r3, 0x0
/* 8001719C 00012FDC 48 00 00 44 */ b lbl_800171E0
.global lbl_800171A0
lbl_800171A0:
/* 800171A0 00012FE0 80 C3 00 08 */ lwz r6, 0x8(r3)
/* 800171A4 00012FE4 80 03 00 04 */ lwz r0, 0x4(r3)
/* 800171A8 00012FE8 7C 06 00 50 */ subf r0, r6, r0
/* 800171AC 00012FEC 7C 05 00 40 */ cmplw r5, r0
/* 800171B0 00012FF0 40 81 00 0C */ ble lbl_800171BC
/* 800171B4 00012FF4 3B E0 03 02 */ li r31, 0x302
/* 800171B8 00012FF8 7C 1E 03 78 */ mr r30, r0
.global lbl_800171BC
lbl_800171BC:
/* 800171BC 00012FFC 7C DD 32 14 */ add r6, r29, r6
/* 800171C0 00013000 7C 83 23 78 */ mr r3, r4
/* 800171C4 00013004 7F C5 F3 78 */ mr r5, r30
/* 800171C8 00013008 38 86 00 0C */ addi r4, r6, 0xc
/* 800171CC 0001300C 4B FF E4 C5 */ bl TRK_memcpy
/* 800171D0 00013010 80 1D 00 08 */ lwz r0, 0x8(r29)
/* 800171D4 00013014 7F E3 FB 78 */ mr r3, r31
/* 800171D8 00013018 7C 00 F2 14 */ add r0, r0, r30
/* 800171DC 0001301C 90 1D 00 08 */ stw r0, 0x8(r29)
.global lbl_800171E0
lbl_800171E0:
/* 800171E0 00013020 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800171E4 00013024 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800171E8 00013028 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800171EC 0001302C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800171F0 00013030 7C 08 03 A6 */ mtlr r0
/* 800171F4 00013034 38 21 00 20 */ addi r1, r1, 0x20
/* 800171F8 00013038 4E 80 00 20 */ blr
.global TRKAppendBuffer1_ui32
TRKAppendBuffer1_ui32:
/* 800171FC 0001303C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80017200 00013040 7C 08 02 A6 */ mflr r0
/* 80017204 00013044 90 01 00 24 */ stw r0, 0x24(r1)
/* 80017208 00013048 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8001720C 0001304C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80017210 00013050 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80017214 00013054 7C 7D 1B 78 */ mr r29, r3
/* 80017218 00013058 80 0D E3 28 */ lwz r0, gTRKBigEndian@sda21(r13)
/* 8001721C 0001305C 90 81 00 08 */ stw r4, 0x8(r1)
/* 80017220 00013060 2C 00 00 00 */ cmpwi r0, 0x0
/* 80017224 00013064 41 82 00 0C */ beq lbl_80017230
/* 80017228 00013068 38 81 00 08 */ addi r4, r1, 0x8
/* 8001722C 0001306C 48 00 00 28 */ b lbl_80017254
.global lbl_80017230
lbl_80017230:
/* 80017230 00013070 88 E1 00 0B */ lbz r7, 0xb(r1)
/* 80017234 00013074 38 81 00 0C */ addi r4, r1, 0xc
/* 80017238 00013078 88 C1 00 0A */ lbz r6, 0xa(r1)
/* 8001723C 0001307C 88 A1 00 09 */ lbz r5, 0x9(r1)
/* 80017240 00013080 88 01 00 08 */ lbz r0, 0x8(r1)
/* 80017244 00013084 98 E1 00 0C */ stb r7, 0xc(r1)
/* 80017248 00013088 98 C1 00 0D */ stb r6, 0xd(r1)
/* 8001724C 0001308C 98 A1 00 0E */ stb r5, 0xe(r1)
/* 80017250 00013090 98 01 00 0F */ stb r0, 0xf(r1)
.global lbl_80017254
lbl_80017254:
/* 80017254 00013094 80 A3 00 08 */ lwz r5, 0x8(r3)
/* 80017258 00013098 3B E0 00 04 */ li r31, 0x4
/* 8001725C 0001309C 3B C0 00 00 */ li r30, 0x0
/* 80017260 000130A0 20 05 08 80 */ subfic r0, r5, 0x880
/* 80017264 000130A4 28 00 00 04 */ cmplwi r0, 0x4
/* 80017268 000130A8 40 80 00 0C */ bge lbl_80017274
/* 8001726C 000130AC 3B C0 03 01 */ li r30, 0x301
/* 80017270 000130B0 7C 1F 03 78 */ mr r31, r0
.global lbl_80017274
lbl_80017274:
/* 80017274 000130B4 28 1F 00 01 */ cmplwi r31, 0x1
/* 80017278 000130B8 40 82 00 14 */ bne lbl_8001728C
/* 8001727C 000130BC 7C 63 2A 14 */ add r3, r3, r5
/* 80017280 000130C0 88 04 00 00 */ lbz r0, 0x0(r4)
/* 80017284 000130C4 98 03 00 0C */ stb r0, 0xc(r3)
/* 80017288 000130C8 48 00 00 14 */ b lbl_8001729C
.global lbl_8001728C
lbl_8001728C:
/* 8001728C 000130CC 7C 63 2A 14 */ add r3, r3, r5
/* 80017290 000130D0 7F E5 FB 78 */ mr r5, r31
/* 80017294 000130D4 38 63 00 0C */ addi r3, r3, 0xc
/* 80017298 000130D8 4B FF E3 F9 */ bl TRK_memcpy
.global lbl_8001729C
lbl_8001729C:
/* 8001729C 000130DC 80 1D 00 08 */ lwz r0, 0x8(r29)
/* 800172A0 000130E0 7F C3 F3 78 */ mr r3, r30
/* 800172A4 000130E4 7C 00 FA 14 */ add r0, r0, r31
/* 800172A8 000130E8 90 1D 00 08 */ stw r0, 0x8(r29)
/* 800172AC 000130EC 90 1D 00 04 */ stw r0, 0x4(r29)
/* 800172B0 000130F0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800172B4 000130F4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800172B8 000130F8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800172BC 000130FC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800172C0 00013100 7C 08 03 A6 */ mtlr r0
/* 800172C4 00013104 38 21 00 20 */ addi r1, r1, 0x20
/* 800172C8 00013108 4E 80 00 20 */ blr
.global TRKAppendBuffer1_ui64
TRKAppendBuffer1_ui64:
/* 800172CC 0001310C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800172D0 00013110 7C 08 02 A6 */ mflr r0
/* 800172D4 00013114 90 01 00 34 */ stw r0, 0x34(r1)
/* 800172D8 00013118 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 800172DC 0001311C 7C 7F 1B 78 */ mr r31, r3
/* 800172E0 00013120 93 C1 00 28 */ stw r30, 0x28(r1)
/* 800172E4 00013124 93 A1 00 24 */ stw r29, 0x24(r1)
/* 800172E8 00013128 80 0D E3 28 */ lwz r0, gTRKBigEndian@sda21(r13)
/* 800172EC 0001312C 90 A1 00 08 */ stw r5, 0x8(r1)
/* 800172F0 00013130 2C 00 00 00 */ cmpwi r0, 0x0
/* 800172F4 00013134 90 C1 00 0C */ stw r6, 0xc(r1)
/* 800172F8 00013138 41 82 00 0C */ beq lbl_80017304
/* 800172FC 0001313C 38 81 00 08 */ addi r4, r1, 0x8
/* 80017300 00013140 48 00 00 48 */ b lbl_80017348
.global lbl_80017304
lbl_80017304:
/* 80017304 00013144 89 61 00 0F */ lbz r11, 0xf(r1)
/* 80017308 00013148 38 81 00 10 */ addi r4, r1, 0x10
/* 8001730C 0001314C 89 41 00 0E */ lbz r10, 0xe(r1)
/* 80017310 00013150 89 21 00 0D */ lbz r9, 0xd(r1)
/* 80017314 00013154 89 01 00 0C */ lbz r8, 0xc(r1)
/* 80017318 00013158 88 E1 00 0B */ lbz r7, 0xb(r1)
/* 8001731C 0001315C 88 C1 00 0A */ lbz r6, 0xa(r1)
/* 80017320 00013160 88 A1 00 09 */ lbz r5, 0x9(r1)
/* 80017324 00013164 88 01 00 08 */ lbz r0, 0x8(r1)
/* 80017328 00013168 99 61 00 10 */ stb r11, 0x10(r1)
/* 8001732C 0001316C 99 41 00 11 */ stb r10, 0x11(r1)
/* 80017330 00013170 99 21 00 12 */ stb r9, 0x12(r1)
/* 80017334 00013174 99 01 00 13 */ stb r8, 0x13(r1)
/* 80017338 00013178 98 E1 00 14 */ stb r7, 0x14(r1)
/* 8001733C 0001317C 98 C1 00 15 */ stb r6, 0x15(r1)
/* 80017340 00013180 98 A1 00 16 */ stb r5, 0x16(r1)
/* 80017344 00013184 98 01 00 17 */ stb r0, 0x17(r1)
.global lbl_80017348
lbl_80017348:
/* 80017348 00013188 80 A3 00 08 */ lwz r5, 0x8(r3)
/* 8001734C 0001318C 3B C0 00 08 */ li r30, 0x8
/* 80017350 00013190 3B A0 00 00 */ li r29, 0x0
/* 80017354 00013194 20 05 08 80 */ subfic r0, r5, 0x880
/* 80017358 00013198 28 00 00 08 */ cmplwi r0, 0x8
/* 8001735C 0001319C 40 80 00 0C */ bge lbl_80017368
/* 80017360 000131A0 3B A0 03 01 */ li r29, 0x301
/* 80017364 000131A4 7C 1E 03 78 */ mr r30, r0
.global lbl_80017368
lbl_80017368:
/* 80017368 000131A8 28 1E 00 01 */ cmplwi r30, 0x1
/* 8001736C 000131AC 40 82 00 14 */ bne lbl_80017380
/* 80017370 000131B0 7C 63 2A 14 */ add r3, r3, r5
/* 80017374 000131B4 88 04 00 00 */ lbz r0, 0x0(r4)
/* 80017378 000131B8 98 03 00 0C */ stb r0, 0xc(r3)
/* 8001737C 000131BC 48 00 00 14 */ b lbl_80017390
.global lbl_80017380
lbl_80017380:
/* 80017380 000131C0 7C 63 2A 14 */ add r3, r3, r5
/* 80017384 000131C4 7F C5 F3 78 */ mr r5, r30
/* 80017388 000131C8 38 63 00 0C */ addi r3, r3, 0xc
/* 8001738C 000131CC 4B FF E3 05 */ bl TRK_memcpy
.global lbl_80017390
lbl_80017390:
/* 80017390 000131D0 80 1F 00 08 */ lwz r0, 0x8(r31)
/* 80017394 000131D4 7F A3 EB 78 */ mr r3, r29
/* 80017398 000131D8 7C 00 F2 14 */ add r0, r0, r30
/* 8001739C 000131DC 90 1F 00 08 */ stw r0, 0x8(r31)
/* 800173A0 000131E0 90 1F 00 04 */ stw r0, 0x4(r31)
/* 800173A4 000131E4 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 800173A8 000131E8 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 800173AC 000131EC 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 800173B0 000131F0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800173B4 000131F4 7C 08 03 A6 */ mtlr r0
/* 800173B8 000131F8 38 21 00 30 */ addi r1, r1, 0x30
/* 800173BC 000131FC 4E 80 00 20 */ blr
.global TRKAppendBuffer_ui8
TRKAppendBuffer_ui8:
/* 800173C0 00013200 39 20 00 00 */ li r9, 0x0
/* 800173C4 00013204 38 E0 00 00 */ li r7, 0x0
/* 800173C8 00013208 48 00 00 44 */ b lbl_8001740C
.global lbl_800173CC
lbl_800173CC:
/* 800173CC 0001320C 80 E3 00 08 */ lwz r7, 0x8(r3)
/* 800173D0 00013210 89 04 00 00 */ lbz r8, 0x0(r4)
/* 800173D4 00013214 28 07 08 80 */ cmplwi r7, 0x880
/* 800173D8 00013218 41 80 00 0C */ blt lbl_800173E4
/* 800173DC 0001321C 38 E0 03 01 */ li r7, 0x301
/* 800173E0 00013220 48 00 00 24 */ b lbl_80017404
.global lbl_800173E4
lbl_800173E4:
/* 800173E4 00013224 7C C3 3A 14 */ add r6, r3, r7
/* 800173E8 00013228 38 07 00 01 */ addi r0, r7, 0x1
/* 800173EC 0001322C 99 06 00 0C */ stb r8, 0xc(r6)
/* 800173F0 00013230 38 E0 00 00 */ li r7, 0x0
/* 800173F4 00013234 80 C3 00 04 */ lwz r6, 0x4(r3)
/* 800173F8 00013238 90 03 00 08 */ stw r0, 0x8(r3)
/* 800173FC 0001323C 38 06 00 01 */ addi r0, r6, 0x1
/* 80017400 00013240 90 03 00 04 */ stw r0, 0x4(r3)
.global lbl_80017404
lbl_80017404:
/* 80017404 00013244 39 29 00 01 */ addi r9, r9, 0x1
/* 80017408 00013248 38 84 00 01 */ addi r4, r4, 0x1
.global lbl_8001740C
lbl_8001740C:
/* 8001740C 0001324C 2C 07 00 00 */ cmpwi r7, 0x0
/* 80017410 00013250 40 82 00 0C */ bne lbl_8001741C
/* 80017414 00013254 7C 09 28 00 */ cmpw r9, r5
/* 80017418 00013258 41 80 FF B4 */ blt lbl_800173CC
.global lbl_8001741C
lbl_8001741C:
/* 8001741C 0001325C 7C E3 3B 78 */ mr r3, r7
/* 80017420 00013260 4E 80 00 20 */ blr
.global TRKAppendBuffer_ui32
TRKAppendBuffer_ui32:
/* 80017424 00013264 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80017428 00013268 7C 08 02 A6 */ mflr r0
/* 8001742C 0001326C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80017430 00013270 BF 41 00 18 */ stmw r26, 0x18(r1)
/* 80017434 00013274 7C 7D 1B 78 */ mr r29, r3
/* 80017438 00013278 7C 9B 23 78 */ mr r27, r4
/* 8001743C 0001327C 7C BE 2B 78 */ mr r30, r5
/* 80017440 00013280 3B E0 00 00 */ li r31, 0x0
/* 80017444 00013284 3B 40 00 00 */ li r26, 0x0
/* 80017448 00013288 48 00 00 A4 */ b lbl_800174EC
.global lbl_8001744C
lbl_8001744C:
/* 8001744C 0001328C 80 0D E3 28 */ lwz r0, gTRKBigEndian@sda21(r13)
/* 80017450 00013290 80 7B 00 00 */ lwz r3, 0x0(r27)
/* 80017454 00013294 2C 00 00 00 */ cmpwi r0, 0x0
/* 80017458 00013298 90 61 00 0C */ stw r3, 0xc(r1)
/* 8001745C 0001329C 41 82 00 0C */ beq lbl_80017468
/* 80017460 000132A0 38 81 00 0C */ addi r4, r1, 0xc
/* 80017464 000132A4 48 00 00 28 */ b lbl_8001748C
.global lbl_80017468
lbl_80017468:
/* 80017468 000132A8 88 C1 00 0F */ lbz r6, 0xf(r1)
/* 8001746C 000132AC 38 81 00 08 */ addi r4, r1, 0x8
/* 80017470 000132B0 88 A1 00 0E */ lbz r5, 0xe(r1)
/* 80017474 000132B4 88 61 00 0D */ lbz r3, 0xd(r1)
/* 80017478 000132B8 88 01 00 0C */ lbz r0, 0xc(r1)
/* 8001747C 000132BC 98 C1 00 08 */ stb r6, 0x8(r1)
/* 80017480 000132C0 98 A1 00 09 */ stb r5, 0x9(r1)
/* 80017484 000132C4 98 61 00 0A */ stb r3, 0xa(r1)
/* 80017488 000132C8 98 01 00 0B */ stb r0, 0xb(r1)
.global lbl_8001748C
lbl_8001748C:
/* 8001748C 000132CC 80 7D 00 08 */ lwz r3, 0x8(r29)
/* 80017490 000132D0 3B 80 00 04 */ li r28, 0x4
/* 80017494 000132D4 3B 40 00 00 */ li r26, 0x0
/* 80017498 000132D8 20 03 08 80 */ subfic r0, r3, 0x880
/* 8001749C 000132DC 28 00 00 04 */ cmplwi r0, 0x4
/* 800174A0 000132E0 40 80 00 0C */ bge lbl_800174AC
/* 800174A4 000132E4 3B 40 03 01 */ li r26, 0x301
/* 800174A8 000132E8 7C 1C 03 78 */ mr r28, r0
.global lbl_800174AC
lbl_800174AC:
/* 800174AC 000132EC 28 1C 00 01 */ cmplwi r28, 0x1
/* 800174B0 000132F0 40 82 00 14 */ bne lbl_800174C4
/* 800174B4 000132F4 7C 7D 1A 14 */ add r3, r29, r3
/* 800174B8 000132F8 88 04 00 00 */ lbz r0, 0x0(r4)
/* 800174BC 000132FC 98 03 00 0C */ stb r0, 0xc(r3)
/* 800174C0 00013300 48 00 00 14 */ b lbl_800174D4
.global lbl_800174C4
lbl_800174C4:
/* 800174C4 00013304 7C 7D 1A 14 */ add r3, r29, r3
/* 800174C8 00013308 7F 85 E3 78 */ mr r5, r28
/* 800174CC 0001330C 38 63 00 0C */ addi r3, r3, 0xc
/* 800174D0 00013310 4B FF E1 C1 */ bl TRK_memcpy
.global lbl_800174D4
lbl_800174D4:
/* 800174D4 00013314 80 1D 00 08 */ lwz r0, 0x8(r29)
/* 800174D8 00013318 3B 7B 00 04 */ addi r27, r27, 0x4
/* 800174DC 0001331C 3B FF 00 01 */ addi r31, r31, 0x1
/* 800174E0 00013320 7C 00 E2 14 */ add r0, r0, r28
/* 800174E4 00013324 90 1D 00 08 */ stw r0, 0x8(r29)
/* 800174E8 00013328 90 1D 00 04 */ stw r0, 0x4(r29)
.global lbl_800174EC
lbl_800174EC:
/* 800174EC 0001332C 2C 1A 00 00 */ cmpwi r26, 0x0
/* 800174F0 00013330 40 82 00 0C */ bne lbl_800174FC
/* 800174F4 00013334 7C 1F F0 00 */ cmpw r31, r30
/* 800174F8 00013338 41 80 FF 54 */ blt lbl_8001744C
.global lbl_800174FC
lbl_800174FC:
/* 800174FC 0001333C 7F 43 D3 78 */ mr r3, r26
/* 80017500 00013340 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 80017504 00013344 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80017508 00013348 7C 08 03 A6 */ mtlr r0
/* 8001750C 0001334C 38 21 00 30 */ addi r1, r1, 0x30
/* 80017510 00013350 4E 80 00 20 */ blr
.global TRKReadBuffer1_ui64
TRKReadBuffer1_ui64:
/* 80017514 00013354 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80017518 00013358 7C 08 02 A6 */ mflr r0
/* 8001751C 0001335C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80017520 00013360 BF 61 00 1C */ stmw r27, 0x1c(r1)
/* 80017524 00013364 7C 7B 1B 78 */ mr r27, r3
/* 80017528 00013368 7C 9D 23 78 */ mr r29, r4
/* 8001752C 0001336C 80 0D E3 28 */ lwz r0, gTRKBigEndian@sda21(r13)
/* 80017530 00013370 2C 00 00 00 */ cmpwi r0, 0x0
/* 80017534 00013374 41 82 00 0C */ beq lbl_80017540
/* 80017538 00013378 7F BE EB 78 */ mr r30, r29
/* 8001753C 0001337C 48 00 00 08 */ b lbl_80017544
.global lbl_80017540
lbl_80017540:
/* 80017540 00013380 3B C1 00 08 */ addi r30, r1, 0x8
.global lbl_80017544
lbl_80017544:
/* 80017544 00013384 80 83 00 08 */ lwz r4, 0x8(r3)
/* 80017548 00013388 3B 80 00 08 */ li r28, 0x8
/* 8001754C 0001338C 80 03 00 04 */ lwz r0, 0x4(r3)
/* 80017550 00013390 3B E0 00 00 */ li r31, 0x0
/* 80017554 00013394 7C 04 00 50 */ subf r0, r4, r0
/* 80017558 00013398 28 00 00 08 */ cmplwi r0, 0x8
/* 8001755C 0001339C 40 80 00 0C */ bge lbl_80017568
/* 80017560 000133A0 3B E0 03 02 */ li r31, 0x302
/* 80017564 000133A4 7C 1C 03 78 */ mr r28, r0
.global lbl_80017568
lbl_80017568:
/* 80017568 000133A8 7C 9B 22 14 */ add r4, r27, r4
/* 8001756C 000133AC 7F C3 F3 78 */ mr r3, r30
/* 80017570 000133B0 7F 85 E3 78 */ mr r5, r28
/* 80017574 000133B4 38 84 00 0C */ addi r4, r4, 0xc
/* 80017578 000133B8 4B FF E1 19 */ bl TRK_memcpy
/* 8001757C 000133BC 80 1B 00 08 */ lwz r0, 0x8(r27)
/* 80017580 000133C0 7C 00 E2 14 */ add r0, r0, r28
/* 80017584 000133C4 90 1B 00 08 */ stw r0, 0x8(r27)
/* 80017588 000133C8 80 0D E3 28 */ lwz r0, gTRKBigEndian@sda21(r13)
/* 8001758C 000133CC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80017590 000133D0 40 82 00 4C */ bne lbl_800175DC
/* 80017594 000133D4 2C 1F 00 00 */ cmpwi r31, 0x0
/* 80017598 000133D8 40 82 00 44 */ bne lbl_800175DC
/* 8001759C 000133DC 88 1E 00 07 */ lbz r0, 0x7(r30)
/* 800175A0 000133E0 98 1D 00 00 */ stb r0, 0x0(r29)
/* 800175A4 000133E4 88 1E 00 06 */ lbz r0, 0x6(r30)
/* 800175A8 000133E8 98 1D 00 01 */ stb r0, 0x1(r29)
/* 800175AC 000133EC 88 1E 00 05 */ lbz r0, 0x5(r30)
/* 800175B0 000133F0 98 1D 00 02 */ stb r0, 0x2(r29)
/* 800175B4 000133F4 88 1E 00 04 */ lbz r0, 0x4(r30)
/* 800175B8 000133F8 98 1D 00 03 */ stb r0, 0x3(r29)
/* 800175BC 000133FC 88 1E 00 03 */ lbz r0, 0x3(r30)
/* 800175C0 00013400 98 1D 00 04 */ stb r0, 0x4(r29)
/* 800175C4 00013404 88 1E 00 02 */ lbz r0, 0x2(r30)
/* 800175C8 00013408 98 1D 00 05 */ stb r0, 0x5(r29)
/* 800175CC 0001340C 88 1E 00 01 */ lbz r0, 0x1(r30)
/* 800175D0 00013410 98 1D 00 06 */ stb r0, 0x6(r29)
/* 800175D4 00013414 88 1E 00 00 */ lbz r0, 0x0(r30)
/* 800175D8 00013418 98 1D 00 07 */ stb r0, 0x7(r29)
.global lbl_800175DC
lbl_800175DC:
/* 800175DC 0001341C 7F E3 FB 78 */ mr r3, r31
/* 800175E0 00013420 BB 61 00 1C */ lmw r27, 0x1c(r1)
/* 800175E4 00013424 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800175E8 00013428 7C 08 03 A6 */ mtlr r0
/* 800175EC 0001342C 38 21 00 30 */ addi r1, r1, 0x30
/* 800175F0 00013430 4E 80 00 20 */ blr
.global TRKReadBuffer_ui8
TRKReadBuffer_ui8:
/* 800175F4 00013434 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800175F8 00013438 7C 08 02 A6 */ mflr r0
/* 800175FC 0001343C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80017600 00013440 BF 41 00 08 */ stmw r26, 0x8(r1)
/* 80017604 00013444 7C 7A 1B 78 */ mr r26, r3
/* 80017608 00013448 7C 9B 23 78 */ mr r27, r4
/* 8001760C 0001344C 7C BC 2B 78 */ mr r28, r5
/* 80017610 00013450 3B A0 00 00 */ li r29, 0x0
/* 80017614 00013454 3B C0 00 00 */ li r30, 0x0
/* 80017618 00013458 48 00 00 4C */ b lbl_80017664
.global lbl_8001761C
lbl_8001761C:
/* 8001761C 0001345C 80 7A 00 08 */ lwz r3, 0x8(r26)
/* 80017620 00013460 3B E0 00 01 */ li r31, 0x1
/* 80017624 00013464 80 1A 00 04 */ lwz r0, 0x4(r26)
/* 80017628 00013468 3B C0 00 00 */ li r30, 0x0
/* 8001762C 0001346C 7C 03 00 50 */ subf r0, r3, r0
/* 80017630 00013470 28 00 00 01 */ cmplwi r0, 0x1
/* 80017634 00013474 40 80 00 0C */ bge lbl_80017640
/* 80017638 00013478 3B C0 03 02 */ li r30, 0x302
/* 8001763C 0001347C 7C 1F 03 78 */ mr r31, r0
.global lbl_80017640
lbl_80017640:
/* 80017640 00013480 7C 9A 1A 14 */ add r4, r26, r3
/* 80017644 00013484 7F E5 FB 78 */ mr r5, r31
/* 80017648 00013488 7C 7B EA 14 */ add r3, r27, r29
/* 8001764C 0001348C 38 84 00 0C */ addi r4, r4, 0xc
/* 80017650 00013490 4B FF E0 41 */ bl TRK_memcpy
/* 80017654 00013494 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 80017658 00013498 3B BD 00 01 */ addi r29, r29, 0x1
/* 8001765C 0001349C 7C 00 FA 14 */ add r0, r0, r31
/* 80017660 000134A0 90 1A 00 08 */ stw r0, 0x8(r26)
.global lbl_80017664
lbl_80017664:
/* 80017664 000134A4 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80017668 000134A8 40 82 00 0C */ bne lbl_80017674
/* 8001766C 000134AC 7C 1D E0 00 */ cmpw r29, r28
/* 80017670 000134B0 41 80 FF AC */ blt lbl_8001761C
.global lbl_80017674
lbl_80017674:
/* 80017674 000134B4 7F C3 F3 78 */ mr r3, r30
/* 80017678 000134B8 BB 41 00 08 */ lmw r26, 0x8(r1)
/* 8001767C 000134BC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80017680 000134C0 7C 08 03 A6 */ mtlr r0
/* 80017684 000134C4 38 21 00 20 */ addi r1, r1, 0x20
/* 80017688 000134C8 4E 80 00 20 */ blr
.global TRKReadBuffer_ui32
TRKReadBuffer_ui32:
/* 8001768C 000134CC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80017690 000134D0 7C 08 02 A6 */ mflr r0
/* 80017694 000134D4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80017698 000134D8 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 8001769C 000134DC 7C 7B 1B 78 */ mr r27, r3
/* 800176A0 000134E0 7C 9F 23 78 */ mr r31, r4
/* 800176A4 000134E4 7C BC 2B 78 */ mr r28, r5
/* 800176A8 000134E8 3B A0 00 00 */ li r29, 0x0
/* 800176AC 000134EC 3B C0 00 00 */ li r30, 0x0
/* 800176B0 000134F0 48 00 00 9C */ b lbl_8001774C
.global lbl_800176B4
lbl_800176B4:
/* 800176B4 000134F4 80 0D E3 28 */ lwz r0, gTRKBigEndian@sda21(r13)
/* 800176B8 000134F8 2C 00 00 00 */ cmpwi r0, 0x0
/* 800176BC 000134FC 41 82 00 0C */ beq lbl_800176C8
/* 800176C0 00013500 7F FA FB 78 */ mr r26, r31
/* 800176C4 00013504 48 00 00 08 */ b lbl_800176CC
.global lbl_800176C8
lbl_800176C8:
/* 800176C8 00013508 3B 41 00 08 */ addi r26, r1, 0x8
.global lbl_800176CC
lbl_800176CC:
/* 800176CC 0001350C 80 7B 00 08 */ lwz r3, 0x8(r27)
/* 800176D0 00013510 3B 20 00 04 */ li r25, 0x4
/* 800176D4 00013514 80 1B 00 04 */ lwz r0, 0x4(r27)
/* 800176D8 00013518 3B C0 00 00 */ li r30, 0x0
/* 800176DC 0001351C 7C 03 00 50 */ subf r0, r3, r0
/* 800176E0 00013520 28 00 00 04 */ cmplwi r0, 0x4
/* 800176E4 00013524 40 80 00 0C */ bge lbl_800176F0
/* 800176E8 00013528 3B C0 03 02 */ li r30, 0x302
/* 800176EC 0001352C 7C 19 03 78 */ mr r25, r0
.global lbl_800176F0
lbl_800176F0:
/* 800176F0 00013530 7C 9B 1A 14 */ add r4, r27, r3
/* 800176F4 00013534 7F 43 D3 78 */ mr r3, r26
/* 800176F8 00013538 7F 25 CB 78 */ mr r5, r25
/* 800176FC 0001353C 38 84 00 0C */ addi r4, r4, 0xc
/* 80017700 00013540 4B FF DF 91 */ bl TRK_memcpy
/* 80017704 00013544 80 1B 00 08 */ lwz r0, 0x8(r27)
/* 80017708 00013548 7C 00 CA 14 */ add r0, r0, r25
/* 8001770C 0001354C 90 1B 00 08 */ stw r0, 0x8(r27)
/* 80017710 00013550 80 0D E3 28 */ lwz r0, gTRKBigEndian@sda21(r13)
/* 80017714 00013554 2C 00 00 00 */ cmpwi r0, 0x0
/* 80017718 00013558 40 82 00 2C */ bne lbl_80017744
/* 8001771C 0001355C 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80017720 00013560 40 82 00 24 */ bne lbl_80017744
/* 80017724 00013564 88 1A 00 03 */ lbz r0, 0x3(r26)
/* 80017728 00013568 98 1F 00 00 */ stb r0, 0x0(r31)
/* 8001772C 0001356C 88 1A 00 02 */ lbz r0, 0x2(r26)
/* 80017730 00013570 98 1F 00 01 */ stb r0, 0x1(r31)
/* 80017734 00013574 88 1A 00 01 */ lbz r0, 0x1(r26)
/* 80017738 00013578 98 1F 00 02 */ stb r0, 0x2(r31)
/* 8001773C 0001357C 88 1A 00 00 */ lbz r0, 0x0(r26)
/* 80017740 00013580 98 1F 00 03 */ stb r0, 0x3(r31)
.global lbl_80017744
lbl_80017744:
/* 80017744 00013584 3B FF 00 04 */ addi r31, r31, 0x4
/* 80017748 00013588 3B BD 00 01 */ addi r29, r29, 0x1
.global lbl_8001774C
lbl_8001774C:
/* 8001774C 0001358C 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80017750 00013590 40 82 00 0C */ bne lbl_8001775C
/* 80017754 00013594 7C 1D E0 00 */ cmpw r29, r28
/* 80017758 00013598 41 80 FF 5C */ blt lbl_800176B4
.global lbl_8001775C
lbl_8001775C:
/* 8001775C 0001359C 7F C3 F3 78 */ mr r3, r30
/* 80017760 000135A0 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 80017764 000135A4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80017768 000135A8 7C 08 03 A6 */ mtlr r0
/* 8001776C 000135AC 38 21 00 30 */ addi r1, r1, 0x30
/* 80017770 000135B0 4E 80 00 20 */ blr
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@stringBase0_80421D00"
"@stringBase0_80421D00":
.4byte 0x4D657472
.4byte 0x6F54524B
.4byte 0x202D2045
.4byte 0x52524F52
.4byte 0x203A204E
.4byte 0x6F206275
.4byte 0x66666572
.4byte 0x20617661
.4byte 0x696C6162
.4byte 0x6C650A00
.include "macros.inc"
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
.global gTRKMsgBufs
gTRKMsgBufs:
.skip 0x19A8