.include "macros.inc" .section .text, "ax" # 0x80005600 - 0x8036FBA0 .global TRKSetBufferUsed TRKSetBufferUsed: /* 80088080 00084FC0 90 83 00 04 */ stw r4, 4(r3) /* 80088084 00084FC4 4E 80 00 20 */ blr .global TRKInitializeMessageBuffers TRKInitializeMessageBuffers: /* 80088088 00084FC8 7C 08 02 A6 */ mflr r0 /* 8008808C 00084FCC 3C 60 80 3F */ lis r3, gTRKMsgBufs@ha /* 80088090 00084FD0 90 01 00 04 */ stw r0, 4(r1) /* 80088094 00084FD4 38 03 91 10 */ addi r0, r3, gTRKMsgBufs@l /* 80088098 00084FD8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8008809C 00084FDC 93 E1 00 0C */ stw r31, 0xc(r1) /* 800880A0 00084FE0 93 C1 00 08 */ stw r30, 8(r1) /* 800880A4 00084FE4 3B C0 00 00 */ li r30, 0 /* 800880A8 00084FE8 1C 9E 08 90 */ mulli r4, r30, 0x890 /* 800880AC 00084FEC 7F E0 22 14 */ add r31, r0, r4 lbl_800880B0: /* 800880B0 00084FF0 7F E3 FB 78 */ mr r3, r31 /* 800880B4 00084FF4 48 00 21 99 */ bl TRKInitializeMutex /* 800880B8 00084FF8 7F E3 FB 78 */ mr r3, r31 /* 800880BC 00084FFC 48 00 21 99 */ bl TRKAcquireMutex /* 800880C0 00085000 38 7F 00 00 */ addi r3, r31, 0 /* 800880C4 00085004 38 80 00 00 */ li r4, 0 /* 800880C8 00085008 4B FF FF B9 */ bl TRKSetBufferUsed /* 800880CC 0008500C 7F E3 FB 78 */ mr r3, r31 /* 800880D0 00085010 48 00 21 8D */ bl TRKReleaseMutex /* 800880D4 00085014 3B DE 00 01 */ addi r30, r30, 1 /* 800880D8 00085018 3B FF 08 90 */ addi r31, r31, 0x890 /* 800880DC 0008501C 2C 1E 00 03 */ cmpwi r30, 3 /* 800880E0 00085020 41 80 FF D0 */ blt lbl_800880B0 /* 800880E4 00085024 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800880E8 00085028 38 60 00 00 */ li r3, 0 /* 800880EC 0008502C 83 C1 00 08 */ lwz r30, 8(r1) /* 800880F0 00085030 38 21 00 10 */ addi r1, r1, 0x10 /* 800880F4 00085034 80 01 00 04 */ lwz r0, 4(r1) /* 800880F8 00085038 7C 08 03 A6 */ mtlr r0 /* 800880FC 0008503C 4E 80 00 20 */ blr .global TRKGetFreeBuffer TRKGetFreeBuffer: /* 80088100 00085040 7C 08 02 A6 */ mflr r0 /* 80088104 00085044 90 01 00 04 */ stw r0, 4(r1) /* 80088108 00085048 38 00 00 00 */ li r0, 0 /* 8008810C 0008504C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80088110 00085050 BF 61 00 0C */ stmw r27, 0xc(r1) /* 80088114 00085054 3B 84 00 00 */ addi r28, r4, 0 /* 80088118 00085058 3B 63 00 00 */ addi r27, r3, 0 /* 8008811C 0008505C 3B E0 03 00 */ li r31, 0x300 /* 80088120 00085060 3B C0 00 00 */ li r30, 0 /* 80088124 00085064 90 04 00 00 */ stw r0, 0(r4) /* 80088128 00085068 48 00 00 54 */ b lbl_8008817C lbl_8008812C: /* 8008812C 0008506C 7F C3 F3 78 */ mr r3, r30 /* 80088130 00085070 48 00 00 6D */ bl TRKGetBuffer /* 80088134 00085074 7C 7D 1B 78 */ mr r29, r3 /* 80088138 00085078 48 00 21 1D */ bl TRKAcquireMutex /* 8008813C 0008507C 80 1D 00 04 */ lwz r0, 4(r29) /* 80088140 00085080 2C 00 00 00 */ cmpwi r0, 0 /* 80088144 00085084 40 82 00 2C */ bne lbl_80088170 /* 80088148 00085088 38 7D 00 00 */ addi r3, r29, 0 /* 8008814C 0008508C 38 80 00 01 */ li r4, 1 /* 80088150 00085090 48 00 00 E1 */ bl TRKResetBuffer /* 80088154 00085094 38 7D 00 00 */ addi r3, r29, 0 /* 80088158 00085098 38 80 00 01 */ li r4, 1 /* 8008815C 0008509C 4B FF FF 25 */ bl TRKSetBufferUsed /* 80088160 000850A0 93 BC 00 00 */ stw r29, 0(r28) /* 80088164 000850A4 3B E0 00 00 */ li r31, 0 /* 80088168 000850A8 93 DB 00 00 */ stw r30, 0(r27) /* 8008816C 000850AC 3B C0 00 03 */ li r30, 3 lbl_80088170: /* 80088170 000850B0 7F A3 EB 78 */ mr r3, r29 /* 80088174 000850B4 48 00 20 E9 */ bl TRKReleaseMutex /* 80088178 000850B8 3B DE 00 01 */ addi r30, r30, 1 lbl_8008817C: /* 8008817C 000850BC 2C 1E 00 03 */ cmpwi r30, 3 /* 80088180 000850C0 41 80 FF AC */ blt lbl_8008812C /* 80088184 000850C4 7F E3 FB 78 */ mr r3, r31 /* 80088188 000850C8 BB 61 00 0C */ lmw r27, 0xc(r1) /* 8008818C 000850CC 38 21 00 20 */ addi r1, r1, 0x20 /* 80088190 000850D0 80 01 00 04 */ lwz r0, 4(r1) /* 80088194 000850D4 7C 08 03 A6 */ mtlr r0 /* 80088198 000850D8 4E 80 00 20 */ blr .global TRKGetBuffer TRKGetBuffer: /* 8008819C 000850DC 2C 03 00 00 */ cmpwi r3, 0 /* 800881A0 000850E0 38 00 00 00 */ li r0, 0 /* 800881A4 000850E4 41 80 00 1C */ blt lbl_800881C0 /* 800881A8 000850E8 2C 03 00 03 */ cmpwi r3, 3 /* 800881AC 000850EC 40 80 00 14 */ bge lbl_800881C0 /* 800881B0 000850F0 1C 83 08 90 */ mulli r4, r3, 0x890 /* 800881B4 000850F4 3C 60 80 3F */ lis r3, gTRKMsgBufs@ha /* 800881B8 000850F8 38 03 91 10 */ addi r0, r3, gTRKMsgBufs@l /* 800881BC 000850FC 7C 00 22 14 */ add r0, r0, r4 lbl_800881C0: /* 800881C0 00085100 7C 03 03 78 */ mr r3, r0 /* 800881C4 00085104 4E 80 00 20 */ blr .global TRKReleaseBuffer TRKReleaseBuffer: /* 800881C8 00085108 7C 08 02 A6 */ mflr r0 /* 800881CC 0008510C 2C 03 FF FF */ cmpwi r3, -1 /* 800881D0 00085110 90 01 00 04 */ stw r0, 4(r1) /* 800881D4 00085114 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800881D8 00085118 93 E1 00 0C */ stw r31, 0xc(r1) /* 800881DC 0008511C 41 82 00 40 */ beq lbl_8008821C /* 800881E0 00085120 2C 03 00 00 */ cmpwi r3, 0 /* 800881E4 00085124 41 80 00 38 */ blt lbl_8008821C /* 800881E8 00085128 2C 03 00 03 */ cmpwi r3, 3 /* 800881EC 0008512C 40 80 00 30 */ bge lbl_8008821C /* 800881F0 00085130 1C 83 08 90 */ mulli r4, r3, 0x890 /* 800881F4 00085134 3C 60 80 3F */ lis r3, gTRKMsgBufs@ha /* 800881F8 00085138 38 03 91 10 */ addi r0, r3, gTRKMsgBufs@l /* 800881FC 0008513C 7F E0 22 14 */ add r31, r0, r4 /* 80088200 00085140 38 7F 00 00 */ addi r3, r31, 0 /* 80088204 00085144 48 00 20 51 */ bl TRKAcquireMutex /* 80088208 00085148 38 7F 00 00 */ addi r3, r31, 0 /* 8008820C 0008514C 38 80 00 00 */ li r4, 0 /* 80088210 00085150 4B FF FE 71 */ bl TRKSetBufferUsed /* 80088214 00085154 7F E3 FB 78 */ mr r3, r31 /* 80088218 00085158 48 00 20 45 */ bl TRKReleaseMutex lbl_8008821C: /* 8008821C 0008515C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80088220 00085160 38 21 00 10 */ addi r1, r1, 0x10 /* 80088224 00085164 80 01 00 04 */ lwz r0, 4(r1) /* 80088228 00085168 7C 08 03 A6 */ mtlr r0 /* 8008822C 0008516C 4E 80 00 20 */ blr .global TRKResetBuffer TRKResetBuffer: /* 80088230 00085170 7C 08 02 A6 */ mflr r0 /* 80088234 00085174 38 A0 00 00 */ li r5, 0 /* 80088238 00085178 90 01 00 04 */ stw r0, 4(r1) /* 8008823C 0008517C 54 80 06 3F */ clrlwi. r0, r4, 0x18 /* 80088240 00085180 94 21 FF F8 */ stwu r1, -8(r1) /* 80088244 00085184 90 A3 00 08 */ stw r5, 8(r3) /* 80088248 00085188 90 A3 00 0C */ stw r5, 0xc(r3) /* 8008824C 0008518C 40 82 00 14 */ bne lbl_80088260 /* 80088250 00085190 38 63 00 10 */ addi r3, r3, 0x10 /* 80088254 00085194 38 80 00 00 */ li r4, 0 /* 80088258 00085198 38 A0 08 80 */ li r5, 0x880 /* 8008825C 0008519C 4B F7 B0 0D */ bl TRK_memset lbl_80088260: /* 80088260 000851A0 38 21 00 08 */ addi r1, r1, 8 /* 80088264 000851A4 80 01 00 04 */ lwz r0, 4(r1) /* 80088268 000851A8 7C 08 03 A6 */ mtlr r0 /* 8008826C 000851AC 4E 80 00 20 */ blr .global TRKSetBufferPosition TRKSetBufferPosition: /* 80088270 000851B0 28 04 08 80 */ cmplwi r4, 0x880 /* 80088274 000851B4 38 A0 00 00 */ li r5, 0 /* 80088278 000851B8 40 81 00 0C */ ble lbl_80088284 /* 8008827C 000851BC 38 A0 03 01 */ li r5, 0x301 /* 80088280 000851C0 48 00 00 18 */ b lbl_80088298 lbl_80088284: /* 80088284 000851C4 90 83 00 0C */ stw r4, 0xc(r3) /* 80088288 000851C8 80 03 00 08 */ lwz r0, 8(r3) /* 8008828C 000851CC 7C 04 00 40 */ cmplw r4, r0 /* 80088290 000851D0 40 81 00 08 */ ble lbl_80088298 /* 80088294 000851D4 90 83 00 08 */ stw r4, 8(r3) lbl_80088298: /* 80088298 000851D8 7C A3 2B 78 */ mr r3, r5 /* 8008829C 000851DC 4E 80 00 20 */ blr .global TRKAppendBuffer TRKAppendBuffer: /* 800882A0 000851E0 7C 08 02 A6 */ mflr r0 /* 800882A4 000851E4 90 01 00 04 */ stw r0, 4(r1) /* 800882A8 000851E8 94 21 FF E8 */ stwu r1, -0x18(r1) /* 800882AC 000851EC 93 E1 00 14 */ stw r31, 0x14(r1) /* 800882B0 000851F0 3B E0 00 00 */ li r31, 0 /* 800882B4 000851F4 93 C1 00 10 */ stw r30, 0x10(r1) /* 800882B8 000851F8 7C BE 2B 79 */ or. r30, r5, r5 /* 800882BC 000851FC 93 A1 00 0C */ stw r29, 0xc(r1) /* 800882C0 00085200 3B A3 00 00 */ addi r29, r3, 0 /* 800882C4 00085204 40 82 00 0C */ bne lbl_800882D0 /* 800882C8 00085208 38 60 00 00 */ li r3, 0 /* 800882CC 0008520C 48 00 00 5C */ b lbl_80088328 lbl_800882D0: /* 800882D0 00085210 80 7D 00 0C */ lwz r3, 0xc(r29) /* 800882D4 00085214 20 03 08 80 */ subfic r0, r3, 0x880 /* 800882D8 00085218 7C 00 F0 40 */ cmplw r0, r30 /* 800882DC 0008521C 40 80 00 0C */ bge lbl_800882E8 /* 800882E0 00085220 3B E0 03 01 */ li r31, 0x301 /* 800882E4 00085224 7C 1E 03 78 */ mr r30, r0 lbl_800882E8: /* 800882E8 00085228 28 1E 00 01 */ cmplwi r30, 1 /* 800882EC 0008522C 40 82 00 14 */ bne lbl_80088300 /* 800882F0 00085230 88 04 00 00 */ lbz r0, 0(r4) /* 800882F4 00085234 7C 7D 1A 14 */ add r3, r29, r3 /* 800882F8 00085238 98 03 00 10 */ stb r0, 0x10(r3) /* 800882FC 0008523C 48 00 00 14 */ b lbl_80088310 lbl_80088300: /* 80088300 00085240 38 63 00 10 */ addi r3, r3, 0x10 /* 80088304 00085244 38 BE 00 00 */ addi r5, r30, 0 /* 80088308 00085248 7C 7D 1A 14 */ add r3, r29, r3 /* 8008830C 0008524C 4B F7 AF 39 */ bl TRK_memcpy lbl_80088310: /* 80088310 00085250 80 1D 00 0C */ lwz r0, 0xc(r29) /* 80088314 00085254 38 7F 00 00 */ addi r3, r31, 0 /* 80088318 00085258 7C 00 F2 14 */ add r0, r0, r30 /* 8008831C 0008525C 90 1D 00 0C */ stw r0, 0xc(r29) /* 80088320 00085260 80 1D 00 0C */ lwz r0, 0xc(r29) /* 80088324 00085264 90 1D 00 08 */ stw r0, 8(r29) lbl_80088328: /* 80088328 00085268 83 E1 00 14 */ lwz r31, 0x14(r1) /* 8008832C 0008526C 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80088330 00085270 83 A1 00 0C */ lwz r29, 0xc(r1) /* 80088334 00085274 38 21 00 18 */ addi r1, r1, 0x18 /* 80088338 00085278 80 01 00 04 */ lwz r0, 4(r1) /* 8008833C 0008527C 7C 08 03 A6 */ mtlr r0 /* 80088340 00085280 4E 80 00 20 */ blr .global TRKReadBuffer TRKReadBuffer: /* 80088344 00085284 7C 08 02 A6 */ mflr r0 /* 80088348 00085288 90 01 00 04 */ stw r0, 4(r1) /* 8008834C 0008528C 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80088350 00085290 93 E1 00 14 */ stw r31, 0x14(r1) /* 80088354 00085294 3B E0 00 00 */ li r31, 0 /* 80088358 00085298 93 C1 00 10 */ stw r30, 0x10(r1) /* 8008835C 0008529C 7C BE 2B 79 */ or. r30, r5, r5 /* 80088360 000852A0 93 A1 00 0C */ stw r29, 0xc(r1) /* 80088364 000852A4 3B A3 00 00 */ addi r29, r3, 0 /* 80088368 000852A8 38 64 00 00 */ addi r3, r4, 0 /* 8008836C 000852AC 40 82 00 0C */ bne lbl_80088378 /* 80088370 000852B0 38 60 00 00 */ li r3, 0 /* 80088374 000852B4 48 00 00 40 */ b lbl_800883B4 lbl_80088378: /* 80088378 000852B8 80 9D 00 0C */ lwz r4, 0xc(r29) /* 8008837C 000852BC 80 1D 00 08 */ lwz r0, 8(r29) /* 80088380 000852C0 7C 04 00 50 */ subf r0, r4, r0 /* 80088384 000852C4 7C 1E 00 40 */ cmplw r30, r0 /* 80088388 000852C8 40 81 00 0C */ ble lbl_80088394 /* 8008838C 000852CC 3B E0 03 02 */ li r31, 0x302 /* 80088390 000852D0 7C 1E 03 78 */ mr r30, r0 lbl_80088394: /* 80088394 000852D4 38 84 00 10 */ addi r4, r4, 0x10 /* 80088398 000852D8 38 BE 00 00 */ addi r5, r30, 0 /* 8008839C 000852DC 7C 9D 22 14 */ add r4, r29, r4 /* 800883A0 000852E0 4B F7 AE A5 */ bl TRK_memcpy /* 800883A4 000852E4 80 1D 00 0C */ lwz r0, 0xc(r29) /* 800883A8 000852E8 38 7F 00 00 */ addi r3, r31, 0 /* 800883AC 000852EC 7C 00 F2 14 */ add r0, r0, r30 /* 800883B0 000852F0 90 1D 00 0C */ stw r0, 0xc(r29) lbl_800883B4: /* 800883B4 000852F4 83 E1 00 14 */ lwz r31, 0x14(r1) /* 800883B8 000852F8 83 C1 00 10 */ lwz r30, 0x10(r1) /* 800883BC 000852FC 83 A1 00 0C */ lwz r29, 0xc(r1) /* 800883C0 00085300 38 21 00 18 */ addi r1, r1, 0x18 /* 800883C4 00085304 80 01 00 04 */ lwz r0, 4(r1) /* 800883C8 00085308 7C 08 03 A6 */ mtlr r0 /* 800883CC 0008530C 4E 80 00 20 */ blr .global TRKAppendBuffer1_ui16 TRKAppendBuffer1_ui16: /* 800883D0 00085310 7C 08 02 A6 */ mflr r0 /* 800883D4 00085314 3C A0 80 3F */ lis r5, gTRKBigEndian@ha /* 800883D8 00085318 90 01 00 04 */ stw r0, 4(r1) /* 800883DC 0008531C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800883E0 00085320 B0 81 00 08 */ sth r4, 8(r1) /* 800883E4 00085324 80 05 91 08 */ lwz r0, gTRKBigEndian@l(r5) /* 800883E8 00085328 2C 00 00 00 */ cmpwi r0, 0 /* 800883EC 0008532C 41 82 00 0C */ beq lbl_800883F8 /* 800883F0 00085330 38 81 00 08 */ addi r4, r1, 8 /* 800883F4 00085334 48 00 00 18 */ b lbl_8008840C lbl_800883F8: /* 800883F8 00085338 88 01 00 09 */ lbz r0, 9(r1) /* 800883FC 0008533C 38 81 00 0C */ addi r4, r1, 0xc /* 80088400 00085340 98 01 00 0C */ stb r0, 0xc(r1) /* 80088404 00085344 88 01 00 08 */ lbz r0, 8(r1) /* 80088408 00085348 98 01 00 0D */ stb r0, 0xd(r1) lbl_8008840C: /* 8008840C 0008534C 38 A0 00 02 */ li r5, 2 /* 80088410 00085350 4B FF FE 91 */ bl TRKAppendBuffer /* 80088414 00085354 38 21 00 10 */ addi r1, r1, 0x10 /* 80088418 00085358 80 01 00 04 */ lwz r0, 4(r1) /* 8008841C 0008535C 7C 08 03 A6 */ mtlr r0 /* 80088420 00085360 4E 80 00 20 */ blr .global TRKAppendBuffer1_ui32 TRKAppendBuffer1_ui32: /* 80088424 00085364 7C 08 02 A6 */ mflr r0 /* 80088428 00085368 3C A0 80 3F */ lis r5, gTRKBigEndian@ha /* 8008842C 0008536C 90 01 00 04 */ stw r0, 4(r1) /* 80088430 00085370 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80088434 00085374 90 81 00 08 */ stw r4, 8(r1) /* 80088438 00085378 80 05 91 08 */ lwz r0, gTRKBigEndian@l(r5) /* 8008843C 0008537C 2C 00 00 00 */ cmpwi r0, 0 /* 80088440 00085380 41 82 00 0C */ beq lbl_8008844C /* 80088444 00085384 38 81 00 08 */ addi r4, r1, 8 /* 80088448 00085388 48 00 00 28 */ b lbl_80088470 lbl_8008844C: /* 8008844C 0008538C 88 01 00 0B */ lbz r0, 0xb(r1) /* 80088450 00085390 38 81 00 0C */ addi r4, r1, 0xc /* 80088454 00085394 98 01 00 0C */ stb r0, 0xc(r1) /* 80088458 00085398 88 01 00 0A */ lbz r0, 0xa(r1) /* 8008845C 0008539C 98 01 00 0D */ stb r0, 0xd(r1) /* 80088460 000853A0 88 01 00 09 */ lbz r0, 9(r1) /* 80088464 000853A4 98 01 00 0E */ stb r0, 0xe(r1) /* 80088468 000853A8 88 01 00 08 */ lbz r0, 8(r1) /* 8008846C 000853AC 98 01 00 0F */ stb r0, 0xf(r1) lbl_80088470: /* 80088470 000853B0 38 A0 00 04 */ li r5, 4 /* 80088474 000853B4 4B FF FE 2D */ bl TRKAppendBuffer /* 80088478 000853B8 38 21 00 10 */ addi r1, r1, 0x10 /* 8008847C 000853BC 80 01 00 04 */ lwz r0, 4(r1) /* 80088480 000853C0 7C 08 03 A6 */ mtlr r0 /* 80088484 000853C4 4E 80 00 20 */ blr .global TRKAppendBuffer1_ui64 TRKAppendBuffer1_ui64: /* 80088488 000853C8 7C 08 02 A6 */ mflr r0 /* 8008848C 000853CC 3C 80 80 3F */ lis r4, gTRKBigEndian@ha /* 80088490 000853D0 90 01 00 04 */ stw r0, 4(r1) /* 80088494 000853D4 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80088498 000853D8 90 A1 00 08 */ stw r5, 8(r1) /* 8008849C 000853DC 90 C1 00 0C */ stw r6, 0xc(r1) /* 800884A0 000853E0 80 04 91 08 */ lwz r0, gTRKBigEndian@l(r4) /* 800884A4 000853E4 2C 00 00 00 */ cmpwi r0, 0 /* 800884A8 000853E8 41 82 00 0C */ beq lbl_800884B4 /* 800884AC 000853EC 38 81 00 08 */ addi r4, r1, 8 /* 800884B0 000853F0 48 00 00 48 */ b lbl_800884F8 lbl_800884B4: /* 800884B4 000853F4 88 01 00 0F */ lbz r0, 0xf(r1) /* 800884B8 000853F8 38 81 00 10 */ addi r4, r1, 0x10 /* 800884BC 000853FC 98 01 00 10 */ stb r0, 0x10(r1) /* 800884C0 00085400 88 01 00 0E */ lbz r0, 0xe(r1) /* 800884C4 00085404 98 01 00 11 */ stb r0, 0x11(r1) /* 800884C8 00085408 88 01 00 0D */ lbz r0, 0xd(r1) /* 800884CC 0008540C 98 01 00 12 */ stb r0, 0x12(r1) /* 800884D0 00085410 88 01 00 0C */ lbz r0, 0xc(r1) /* 800884D4 00085414 98 01 00 13 */ stb r0, 0x13(r1) /* 800884D8 00085418 88 01 00 0B */ lbz r0, 0xb(r1) /* 800884DC 0008541C 98 01 00 14 */ stb r0, 0x14(r1) /* 800884E0 00085420 88 01 00 0A */ lbz r0, 0xa(r1) /* 800884E4 00085424 98 01 00 15 */ stb r0, 0x15(r1) /* 800884E8 00085428 88 01 00 09 */ lbz r0, 9(r1) /* 800884EC 0008542C 98 01 00 16 */ stb r0, 0x16(r1) /* 800884F0 00085430 88 01 00 08 */ lbz r0, 8(r1) /* 800884F4 00085434 98 01 00 17 */ stb r0, 0x17(r1) lbl_800884F8: /* 800884F8 00085438 38 A0 00 08 */ li r5, 8 /* 800884FC 0008543C 4B FF FD A5 */ bl TRKAppendBuffer /* 80088500 00085440 38 21 00 18 */ addi r1, r1, 0x18 /* 80088504 00085444 80 01 00 04 */ lwz r0, 4(r1) /* 80088508 00085448 7C 08 03 A6 */ mtlr r0 /* 8008850C 0008544C 4E 80 00 20 */ blr .global TRKAppendBuffer_ui8 TRKAppendBuffer_ui8: /* 80088510 00085450 39 20 00 00 */ li r9, 0 /* 80088514 00085454 38 00 00 00 */ li r0, 0 /* 80088518 00085458 48 00 00 48 */ b lbl_80088560 lbl_8008851C: /* 8008851C 0008545C 80 E3 00 0C */ lwz r7, 0xc(r3) /* 80088520 00085460 89 04 00 00 */ lbz r8, 0(r4) /* 80088524 00085464 28 07 08 80 */ cmplwi r7, 0x880 /* 80088528 00085468 41 80 00 0C */ blt lbl_80088534 /* 8008852C 0008546C 38 E0 03 01 */ li r7, 0x301 /* 80088530 00085470 48 00 00 24 */ b lbl_80088554 lbl_80088534: /* 80088534 00085474 38 C7 00 01 */ addi r6, r7, 1 /* 80088538 00085478 38 07 00 10 */ addi r0, r7, 0x10 /* 8008853C 0008547C 90 C3 00 0C */ stw r6, 0xc(r3) /* 80088540 00085480 38 E0 00 00 */ li r7, 0 /* 80088544 00085484 7D 03 01 AE */ stbx r8, r3, r0 /* 80088548 00085488 80 C3 00 08 */ lwz r6, 8(r3) /* 8008854C 0008548C 38 06 00 01 */ addi r0, r6, 1 /* 80088550 00085490 90 03 00 08 */ stw r0, 8(r3) lbl_80088554: /* 80088554 00085494 38 07 00 00 */ addi r0, r7, 0 /* 80088558 00085498 39 29 00 01 */ addi r9, r9, 1 /* 8008855C 0008549C 38 84 00 01 */ addi r4, r4, 1 lbl_80088560: /* 80088560 000854A0 2C 00 00 00 */ cmpwi r0, 0 /* 80088564 000854A4 40 82 00 0C */ bne lbl_80088570 /* 80088568 000854A8 7C 09 28 00 */ cmpw r9, r5 /* 8008856C 000854AC 41 80 FF B0 */ blt lbl_8008851C lbl_80088570: /* 80088570 000854B0 7C 03 03 78 */ mr r3, r0 /* 80088574 000854B4 4E 80 00 20 */ blr .global TRKAppendBuffer_ui32 TRKAppendBuffer_ui32: /* 80088578 000854B8 7C 08 02 A6 */ mflr r0 /* 8008857C 000854BC 90 01 00 04 */ stw r0, 4(r1) /* 80088580 000854C0 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80088584 000854C4 93 E1 00 14 */ stw r31, 0x14(r1) /* 80088588 000854C8 93 C1 00 10 */ stw r30, 0x10(r1) /* 8008858C 000854CC 3B C0 00 00 */ li r30, 0 /* 80088590 000854D0 57 C0 10 3A */ slwi r0, r30, 2 /* 80088594 000854D4 93 A1 00 0C */ stw r29, 0xc(r1) /* 80088598 000854D8 7F E4 02 14 */ add r31, r4, r0 /* 8008859C 000854DC 3B A5 00 00 */ addi r29, r5, 0 /* 800885A0 000854E0 93 81 00 08 */ stw r28, 8(r1) /* 800885A4 000854E4 3B 83 00 00 */ addi r28, r3, 0 /* 800885A8 000854E8 38 60 00 00 */ li r3, 0 /* 800885AC 000854EC 48 00 00 18 */ b lbl_800885C4 lbl_800885B0: /* 800885B0 000854F0 7F 83 E3 78 */ mr r3, r28 /* 800885B4 000854F4 80 9F 00 00 */ lwz r4, 0(r31) /* 800885B8 000854F8 4B FF FE 6D */ bl TRKAppendBuffer1_ui32 /* 800885BC 000854FC 3B DE 00 01 */ addi r30, r30, 1 /* 800885C0 00085500 3B FF 00 04 */ addi r31, r31, 4 lbl_800885C4: /* 800885C4 00085504 2C 03 00 00 */ cmpwi r3, 0 /* 800885C8 00085508 40 82 00 0C */ bne lbl_800885D4 /* 800885CC 0008550C 7C 1E E8 00 */ cmpw r30, r29 /* 800885D0 00085510 41 80 FF E0 */ blt lbl_800885B0 lbl_800885D4: /* 800885D4 00085514 83 E1 00 14 */ lwz r31, 0x14(r1) /* 800885D8 00085518 83 C1 00 10 */ lwz r30, 0x10(r1) /* 800885DC 0008551C 83 A1 00 0C */ lwz r29, 0xc(r1) /* 800885E0 00085520 83 81 00 08 */ lwz r28, 8(r1) /* 800885E4 00085524 38 21 00 18 */ addi r1, r1, 0x18 /* 800885E8 00085528 80 01 00 04 */ lwz r0, 4(r1) /* 800885EC 0008552C 7C 08 03 A6 */ mtlr r0 /* 800885F0 00085530 4E 80 00 20 */ blr .global TRKReadBuffer1_ui8 TRKReadBuffer1_ui8: /* 800885F4 00085534 7C 08 02 A6 */ mflr r0 /* 800885F8 00085538 38 A0 00 01 */ li r5, 1 /* 800885FC 0008553C 90 01 00 04 */ stw r0, 4(r1) /* 80088600 00085540 94 21 FF F8 */ stwu r1, -8(r1) /* 80088604 00085544 4B FF FD 41 */ bl TRKReadBuffer /* 80088608 00085548 38 21 00 08 */ addi r1, r1, 8 /* 8008860C 0008554C 80 01 00 04 */ lwz r0, 4(r1) /* 80088610 00085550 7C 08 03 A6 */ mtlr r0 /* 80088614 00085554 4E 80 00 20 */ blr .global TRKReadBuffer1_ui16 TRKReadBuffer1_ui16: /* 80088618 00085558 7C 08 02 A6 */ mflr r0 /* 8008861C 0008555C 3C A0 80 3F */ lis r5, gTRKBigEndian@ha /* 80088620 00085560 90 01 00 04 */ stw r0, 4(r1) /* 80088624 00085564 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80088628 00085568 93 E1 00 14 */ stw r31, 0x14(r1) /* 8008862C 0008556C 93 C1 00 10 */ stw r30, 0x10(r1) /* 80088630 00085570 3B C4 00 00 */ addi r30, r4, 0 /* 80088634 00085574 80 05 91 08 */ lwz r0, gTRKBigEndian@l(r5) /* 80088638 00085578 2C 00 00 00 */ cmpwi r0, 0 /* 8008863C 0008557C 41 82 00 0C */ beq lbl_80088648 /* 80088640 00085580 7F DF F3 78 */ mr r31, r30 /* 80088644 00085584 48 00 00 08 */ b lbl_8008864C lbl_80088648: /* 80088648 00085588 3B E1 00 08 */ addi r31, r1, 8 lbl_8008864C: /* 8008864C 0008558C 38 9F 00 00 */ addi r4, r31, 0 /* 80088650 00085590 38 A0 00 02 */ li r5, 2 /* 80088654 00085594 4B FF FC F1 */ bl TRKReadBuffer /* 80088658 00085598 3C 80 80 3F */ lis r4, gTRKBigEndian@ha /* 8008865C 0008559C 80 04 91 08 */ lwz r0, gTRKBigEndian@l(r4) /* 80088660 000855A0 2C 00 00 00 */ cmpwi r0, 0 /* 80088664 000855A4 40 82 00 1C */ bne lbl_80088680 /* 80088668 000855A8 2C 03 00 00 */ cmpwi r3, 0 /* 8008866C 000855AC 40 82 00 14 */ bne lbl_80088680 /* 80088670 000855B0 88 1F 00 01 */ lbz r0, 1(r31) /* 80088674 000855B4 98 1E 00 00 */ stb r0, 0(r30) /* 80088678 000855B8 88 1F 00 00 */ lbz r0, 0(r31) /* 8008867C 000855BC 98 1E 00 01 */ stb r0, 1(r30) lbl_80088680: /* 80088680 000855C0 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80088684 000855C4 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80088688 000855C8 38 21 00 18 */ addi r1, r1, 0x18 /* 8008868C 000855CC 80 01 00 04 */ lwz r0, 4(r1) /* 80088690 000855D0 7C 08 03 A6 */ mtlr r0 /* 80088694 000855D4 4E 80 00 20 */ blr .global TRKReadBuffer1_ui32 TRKReadBuffer1_ui32: /* 80088698 000855D8 7C 08 02 A6 */ mflr r0 /* 8008869C 000855DC 3C A0 80 3F */ lis r5, gTRKBigEndian@ha /* 800886A0 000855E0 90 01 00 04 */ stw r0, 4(r1) /* 800886A4 000855E4 94 21 FF E8 */ stwu r1, -0x18(r1) /* 800886A8 000855E8 93 E1 00 14 */ stw r31, 0x14(r1) /* 800886AC 000855EC 93 C1 00 10 */ stw r30, 0x10(r1) /* 800886B0 000855F0 3B C4 00 00 */ addi r30, r4, 0 /* 800886B4 000855F4 80 05 91 08 */ lwz r0, gTRKBigEndian@l(r5) /* 800886B8 000855F8 2C 00 00 00 */ cmpwi r0, 0 /* 800886BC 000855FC 41 82 00 0C */ beq lbl_800886C8 /* 800886C0 00085600 7F DF F3 78 */ mr r31, r30 /* 800886C4 00085604 48 00 00 08 */ b lbl_800886CC lbl_800886C8: /* 800886C8 00085608 3B E1 00 08 */ addi r31, r1, 8 lbl_800886CC: /* 800886CC 0008560C 38 9F 00 00 */ addi r4, r31, 0 /* 800886D0 00085610 38 A0 00 04 */ li r5, 4 /* 800886D4 00085614 4B FF FC 71 */ bl TRKReadBuffer /* 800886D8 00085618 3C 80 80 3F */ lis r4, gTRKBigEndian@ha /* 800886DC 0008561C 80 04 91 08 */ lwz r0, gTRKBigEndian@l(r4) /* 800886E0 00085620 2C 00 00 00 */ cmpwi r0, 0 /* 800886E4 00085624 40 82 00 2C */ bne lbl_80088710 /* 800886E8 00085628 2C 03 00 00 */ cmpwi r3, 0 /* 800886EC 0008562C 40 82 00 24 */ bne lbl_80088710 /* 800886F0 00085630 88 1F 00 03 */ lbz r0, 3(r31) /* 800886F4 00085634 98 1E 00 00 */ stb r0, 0(r30) /* 800886F8 00085638 88 1F 00 02 */ lbz r0, 2(r31) /* 800886FC 0008563C 98 1E 00 01 */ stb r0, 1(r30) /* 80088700 00085640 88 1F 00 01 */ lbz r0, 1(r31) /* 80088704 00085644 98 1E 00 02 */ stb r0, 2(r30) /* 80088708 00085648 88 1F 00 00 */ lbz r0, 0(r31) /* 8008870C 0008564C 98 1E 00 03 */ stb r0, 3(r30) lbl_80088710: /* 80088710 00085650 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80088714 00085654 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80088718 00085658 38 21 00 18 */ addi r1, r1, 0x18 /* 8008871C 0008565C 80 01 00 04 */ lwz r0, 4(r1) /* 80088720 00085660 7C 08 03 A6 */ mtlr r0 /* 80088724 00085664 4E 80 00 20 */ blr .global TRKReadBuffer1_ui64 TRKReadBuffer1_ui64: /* 80088728 00085668 7C 08 02 A6 */ mflr r0 /* 8008872C 0008566C 3C A0 80 3F */ lis r5, gTRKBigEndian@ha /* 80088730 00085670 90 01 00 04 */ stw r0, 4(r1) /* 80088734 00085674 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80088738 00085678 93 E1 00 14 */ stw r31, 0x14(r1) /* 8008873C 0008567C 93 C1 00 10 */ stw r30, 0x10(r1) /* 80088740 00085680 3B C4 00 00 */ addi r30, r4, 0 /* 80088744 00085684 80 05 91 08 */ lwz r0, gTRKBigEndian@l(r5) /* 80088748 00085688 2C 00 00 00 */ cmpwi r0, 0 /* 8008874C 0008568C 41 82 00 0C */ beq lbl_80088758 /* 80088750 00085690 7F DF F3 78 */ mr r31, r30 /* 80088754 00085694 48 00 00 08 */ b lbl_8008875C lbl_80088758: /* 80088758 00085698 3B E1 00 08 */ addi r31, r1, 8 lbl_8008875C: /* 8008875C 0008569C 38 9F 00 00 */ addi r4, r31, 0 /* 80088760 000856A0 38 A0 00 08 */ li r5, 8 /* 80088764 000856A4 4B FF FB E1 */ bl TRKReadBuffer /* 80088768 000856A8 3C 80 80 3F */ lis r4, gTRKBigEndian@ha /* 8008876C 000856AC 80 04 91 08 */ lwz r0, gTRKBigEndian@l(r4) /* 80088770 000856B0 2C 00 00 00 */ cmpwi r0, 0 /* 80088774 000856B4 40 82 00 4C */ bne lbl_800887C0 /* 80088778 000856B8 2C 03 00 00 */ cmpwi r3, 0 /* 8008877C 000856BC 40 82 00 44 */ bne lbl_800887C0 /* 80088780 000856C0 88 1F 00 07 */ lbz r0, 7(r31) /* 80088784 000856C4 98 1E 00 00 */ stb r0, 0(r30) /* 80088788 000856C8 88 1F 00 06 */ lbz r0, 6(r31) /* 8008878C 000856CC 98 1E 00 01 */ stb r0, 1(r30) /* 80088790 000856D0 88 1F 00 05 */ lbz r0, 5(r31) /* 80088794 000856D4 98 1E 00 02 */ stb r0, 2(r30) /* 80088798 000856D8 88 1F 00 04 */ lbz r0, 4(r31) /* 8008879C 000856DC 98 1E 00 03 */ stb r0, 3(r30) /* 800887A0 000856E0 88 1F 00 03 */ lbz r0, 3(r31) /* 800887A4 000856E4 98 1E 00 04 */ stb r0, 4(r30) /* 800887A8 000856E8 88 1F 00 02 */ lbz r0, 2(r31) /* 800887AC 000856EC 98 1E 00 05 */ stb r0, 5(r30) /* 800887B0 000856F0 88 1F 00 01 */ lbz r0, 1(r31) /* 800887B4 000856F4 98 1E 00 06 */ stb r0, 6(r30) /* 800887B8 000856F8 88 1F 00 00 */ lbz r0, 0(r31) /* 800887BC 000856FC 98 1E 00 07 */ stb r0, 7(r30) lbl_800887C0: /* 800887C0 00085700 83 E1 00 14 */ lwz r31, 0x14(r1) /* 800887C4 00085704 83 C1 00 10 */ lwz r30, 0x10(r1) /* 800887C8 00085708 38 21 00 18 */ addi r1, r1, 0x18 /* 800887CC 0008570C 80 01 00 04 */ lwz r0, 4(r1) /* 800887D0 00085710 7C 08 03 A6 */ mtlr r0 /* 800887D4 00085714 4E 80 00 20 */ blr .global TRKReadBuffer_ui8 TRKReadBuffer_ui8: /* 800887D8 00085718 7C 08 02 A6 */ mflr r0 /* 800887DC 0008571C 90 01 00 04 */ stw r0, 4(r1) /* 800887E0 00085720 94 21 FF E8 */ stwu r1, -0x18(r1) /* 800887E4 00085724 93 E1 00 14 */ stw r31, 0x14(r1) /* 800887E8 00085728 3B E0 00 00 */ li r31, 0 /* 800887EC 0008572C 93 C1 00 10 */ stw r30, 0x10(r1) /* 800887F0 00085730 3B C5 00 00 */ addi r30, r5, 0 /* 800887F4 00085734 93 A1 00 0C */ stw r29, 0xc(r1) /* 800887F8 00085738 3B A4 00 00 */ addi r29, r4, 0 /* 800887FC 0008573C 93 81 00 08 */ stw r28, 8(r1) /* 80088800 00085740 3B 83 00 00 */ addi r28, r3, 0 /* 80088804 00085744 38 60 00 00 */ li r3, 0 /* 80088808 00085748 48 00 00 14 */ b lbl_8008881C lbl_8008880C: /* 8008880C 0008574C 38 7C 00 00 */ addi r3, r28, 0 /* 80088810 00085750 7C 9D FA 14 */ add r4, r29, r31 /* 80088814 00085754 4B FF FD E1 */ bl TRKReadBuffer1_ui8 /* 80088818 00085758 3B FF 00 01 */ addi r31, r31, 1 lbl_8008881C: /* 8008881C 0008575C 2C 03 00 00 */ cmpwi r3, 0 /* 80088820 00085760 40 82 00 0C */ bne lbl_8008882C /* 80088824 00085764 7C 1F F0 00 */ cmpw r31, r30 /* 80088828 00085768 41 80 FF E4 */ blt lbl_8008880C lbl_8008882C: /* 8008882C 0008576C 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80088830 00085770 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80088834 00085774 83 A1 00 0C */ lwz r29, 0xc(r1) /* 80088838 00085778 83 81 00 08 */ lwz r28, 8(r1) /* 8008883C 0008577C 38 21 00 18 */ addi r1, r1, 0x18 /* 80088840 00085780 80 01 00 04 */ lwz r0, 4(r1) /* 80088844 00085784 7C 08 03 A6 */ mtlr r0 /* 80088848 00085788 4E 80 00 20 */ blr .global TRKReadBuffer_ui32 TRKReadBuffer_ui32: /* 8008884C 0008578C 7C 08 02 A6 */ mflr r0 /* 80088850 00085790 90 01 00 04 */ stw r0, 4(r1) /* 80088854 00085794 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80088858 00085798 93 E1 00 14 */ stw r31, 0x14(r1) /* 8008885C 0008579C 93 C1 00 10 */ stw r30, 0x10(r1) /* 80088860 000857A0 3B C0 00 00 */ li r30, 0 /* 80088864 000857A4 57 C0 10 3A */ slwi r0, r30, 2 /* 80088868 000857A8 93 A1 00 0C */ stw r29, 0xc(r1) /* 8008886C 000857AC 7F E4 02 14 */ add r31, r4, r0 /* 80088870 000857B0 3B A5 00 00 */ addi r29, r5, 0 /* 80088874 000857B4 93 81 00 08 */ stw r28, 8(r1) /* 80088878 000857B8 3B 83 00 00 */ addi r28, r3, 0 /* 8008887C 000857BC 38 60 00 00 */ li r3, 0 /* 80088880 000857C0 48 00 00 18 */ b lbl_80088898 lbl_80088884: /* 80088884 000857C4 38 7C 00 00 */ addi r3, r28, 0 /* 80088888 000857C8 38 9F 00 00 */ addi r4, r31, 0 /* 8008888C 000857CC 4B FF FE 0D */ bl TRKReadBuffer1_ui32 /* 80088890 000857D0 3B DE 00 01 */ addi r30, r30, 1 /* 80088894 000857D4 3B FF 00 04 */ addi r31, r31, 4 lbl_80088898: /* 80088898 000857D8 2C 03 00 00 */ cmpwi r3, 0 /* 8008889C 000857DC 40 82 00 0C */ bne lbl_800888A8 /* 800888A0 000857E0 7C 1E E8 00 */ cmpw r30, r29 /* 800888A4 000857E4 41 80 FF E0 */ blt lbl_80088884 lbl_800888A8: /* 800888A8 000857E8 83 E1 00 14 */ lwz r31, 0x14(r1) /* 800888AC 000857EC 83 C1 00 10 */ lwz r30, 0x10(r1) /* 800888B0 000857F0 83 A1 00 0C */ lwz r29, 0xc(r1) /* 800888B4 000857F4 83 81 00 08 */ lwz r28, 8(r1) /* 800888B8 000857F8 38 21 00 18 */ addi r1, r1, 0x18 /* 800888BC 000857FC 80 01 00 04 */ lwz r0, 4(r1) /* 800888C0 00085800 7C 08 03 A6 */ mtlr r0 /* 800888C4 00085804 4E 80 00 20 */ blr .section .bss, "wa" # 0x803E6000 - 0x80408AC0 .global gTRKMsgBufs gTRKMsgBufs: .skip 0x19B0