diff options
Diffstat (limited to 'asm/TRK_MINNOW_DOLPHIN/support.s')
-rw-r--r-- | asm/TRK_MINNOW_DOLPHIN/support.s | 337 |
1 files changed, 337 insertions, 0 deletions
diff --git a/asm/TRK_MINNOW_DOLPHIN/support.s b/asm/TRK_MINNOW_DOLPHIN/support.s new file mode 100644 index 0000000..fd15ef5 --- /dev/null +++ b/asm/TRK_MINNOW_DOLPHIN/support.s @@ -0,0 +1,337 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global TRKSuppAccessFile +TRKSuppAccessFile: +/* 80089DD0 00086D10 7C 08 02 A6 */ mflr r0 +/* 80089DD4 00086D14 90 01 00 04 */ stw r0, 4(r1) +/* 80089DD8 00086D18 94 21 FF B8 */ stwu r1, -0x48(r1) +/* 80089DDC 00086D1C BE A1 00 1C */ stmw r21, 0x1c(r1) +/* 80089DE0 00086D20 7C 9B 23 79 */ or. r27, r4, r4 +/* 80089DE4 00086D24 3B 23 00 00 */ addi r25, r3, 0 +/* 80089DE8 00086D28 3A E5 00 00 */ addi r23, r5, 0 +/* 80089DEC 00086D2C 3B 46 00 00 */ addi r26, r6, 0 +/* 80089DF0 00086D30 3A C7 00 00 */ addi r22, r7, 0 +/* 80089DF4 00086D34 3B C8 00 00 */ addi r30, r8, 0 +/* 80089DF8 00086D38 41 82 00 10 */ beq lbl_80089E08 +/* 80089DFC 00086D3C 80 17 00 00 */ lwz r0, 0(r23) +/* 80089E00 00086D40 28 00 00 00 */ cmplwi r0, 0 +/* 80089E04 00086D44 40 82 00 0C */ bne lbl_80089E10 +lbl_80089E08: +/* 80089E08 00086D48 38 60 00 02 */ li r3, 2 +/* 80089E0C 00086D4C 48 00 02 88 */ b lbl_8008A094 +lbl_80089E10: +/* 80089E10 00086D50 38 00 00 00 */ li r0, 0 +/* 80089E14 00086D54 98 1A 00 00 */ stb r0, 0(r26) +/* 80089E18 00086D58 3B 00 00 00 */ li r24, 0 +/* 80089E1C 00086D5C 3B 80 00 00 */ li r28, 0 +/* 80089E20 00086D60 3A A0 00 00 */ li r21, 0 +/* 80089E24 00086D64 48 00 02 40 */ b lbl_8008A064 +lbl_80089E28: +/* 80089E28 00086D68 7C 1C 18 50 */ subf r0, r28, r3 +/* 80089E2C 00086D6C 28 00 08 00 */ cmplwi r0, 0x800 +/* 80089E30 00086D70 40 81 00 0C */ ble lbl_80089E3C +/* 80089E34 00086D74 3B E0 08 00 */ li r31, 0x800 +/* 80089E38 00086D78 48 00 00 08 */ b lbl_80089E40 +lbl_80089E3C: +/* 80089E3C 00086D7C 7C 1F 03 78 */ mr r31, r0 +lbl_80089E40: +/* 80089E40 00086D80 38 61 00 0C */ addi r3, r1, 0xc +/* 80089E44 00086D84 38 81 00 10 */ addi r4, r1, 0x10 +/* 80089E48 00086D88 4B FF E2 B9 */ bl TRKGetFreeBuffer +/* 80089E4C 00086D8C 7C 75 1B 79 */ or. r21, r3, r3 +/* 80089E50 00086D90 40 82 00 58 */ bne lbl_80089EA8 +/* 80089E54 00086D94 80 E1 00 10 */ lwz r7, 0x10(r1) +/* 80089E58 00086D98 80 07 00 0C */ lwz r0, 0xc(r7) +/* 80089E5C 00086D9C 28 00 08 80 */ cmplwi r0, 0x880 +/* 80089E60 00086DA0 41 80 00 0C */ blt lbl_80089E6C +/* 80089E64 00086DA4 38 A0 03 01 */ li r5, 0x301 +/* 80089E68 00086DA8 48 00 00 3C */ b lbl_80089EA4 +lbl_80089E6C: +/* 80089E6C 00086DAC 2C 1E 00 00 */ cmpwi r30, 0 +/* 80089E70 00086DB0 41 82 00 0C */ beq lbl_80089E7C +/* 80089E74 00086DB4 38 C0 00 D1 */ li r6, 0xd1 +/* 80089E78 00086DB8 48 00 00 08 */ b lbl_80089E80 +lbl_80089E7C: +/* 80089E7C 00086DBC 38 C0 00 D0 */ li r6, 0xd0 +lbl_80089E80: +/* 80089E80 00086DC0 80 87 00 0C */ lwz r4, 0xc(r7) +/* 80089E84 00086DC4 38 A0 00 00 */ li r5, 0 +/* 80089E88 00086DC8 38 64 00 01 */ addi r3, r4, 1 +/* 80089E8C 00086DCC 38 04 00 10 */ addi r0, r4, 0x10 +/* 80089E90 00086DD0 90 67 00 0C */ stw r3, 0xc(r7) +/* 80089E94 00086DD4 7C C7 01 AE */ stbx r6, r7, r0 +/* 80089E98 00086DD8 80 67 00 08 */ lwz r3, 8(r7) +/* 80089E9C 00086DDC 38 03 00 01 */ addi r0, r3, 1 +/* 80089EA0 00086DE0 90 07 00 08 */ stw r0, 8(r7) +lbl_80089EA4: +/* 80089EA4 00086DE4 7C B5 2B 78 */ mr r21, r5 +lbl_80089EA8: +/* 80089EA8 00086DE8 2C 15 00 00 */ cmpwi r21, 0 +/* 80089EAC 00086DEC 40 82 00 14 */ bne lbl_80089EC0 +/* 80089EB0 00086DF0 80 61 00 10 */ lwz r3, 0x10(r1) +/* 80089EB4 00086DF4 7F 24 CB 78 */ mr r4, r25 +/* 80089EB8 00086DF8 4B FF E5 6D */ bl TRKAppendBuffer1_ui32 +/* 80089EBC 00086DFC 7C 75 1B 78 */ mr r21, r3 +lbl_80089EC0: +/* 80089EC0 00086E00 2C 15 00 00 */ cmpwi r21, 0 +/* 80089EC4 00086E04 40 82 00 14 */ bne lbl_80089ED8 +/* 80089EC8 00086E08 80 61 00 10 */ lwz r3, 0x10(r1) +/* 80089ECC 00086E0C 57 E4 04 3E */ clrlwi r4, r31, 0x10 +/* 80089ED0 00086E10 4B FF E5 01 */ bl TRKAppendBuffer1_ui16 +/* 80089ED4 00086E14 7C 75 1B 78 */ mr r21, r3 +lbl_80089ED8: +/* 80089ED8 00086E18 2C 1E 00 00 */ cmpwi r30, 0 +/* 80089EDC 00086E1C 40 82 00 20 */ bne lbl_80089EFC +/* 80089EE0 00086E20 2C 15 00 00 */ cmpwi r21, 0 +/* 80089EE4 00086E24 40 82 00 18 */ bne lbl_80089EFC +/* 80089EE8 00086E28 80 61 00 10 */ lwz r3, 0x10(r1) +/* 80089EEC 00086E2C 38 BF 00 00 */ addi r5, r31, 0 +/* 80089EF0 00086E30 7C 9B E2 14 */ add r4, r27, r28 +/* 80089EF4 00086E34 4B FF E6 1D */ bl TRKAppendBuffer_ui8 +/* 80089EF8 00086E38 7C 75 1B 78 */ mr r21, r3 +lbl_80089EFC: +/* 80089EFC 00086E3C 2C 15 00 00 */ cmpwi r21, 0 +/* 80089F00 00086E40 40 82 01 58 */ bne lbl_8008A058 +/* 80089F04 00086E44 2C 16 00 00 */ cmpwi r22, 0 +/* 80089F08 00086E48 41 82 01 44 */ beq lbl_8008A04C +/* 80089F0C 00086E4C 38 00 00 00 */ li r0, 0 +/* 80089F10 00086E50 2C 1E 00 00 */ cmpwi r30, 0 +/* 80089F14 00086E54 B0 01 00 0A */ sth r0, 0xa(r1) +/* 80089F18 00086E58 98 01 00 08 */ stb r0, 8(r1) +/* 80089F1C 00086E5C 41 82 00 10 */ beq lbl_80089F2C +/* 80089F20 00086E60 28 19 00 00 */ cmplwi r25, 0 +/* 80089F24 00086E64 40 82 00 08 */ bne lbl_80089F2C +/* 80089F28 00086E68 38 00 00 01 */ li r0, 1 +lbl_80089F2C: +/* 80089F2C 00086E6C 2C 1E 00 00 */ cmpwi r30, 0 +/* 80089F30 00086E70 41 82 00 0C */ beq lbl_80089F3C +/* 80089F34 00086E74 38 A0 00 05 */ li r5, 5 +/* 80089F38 00086E78 48 00 00 08 */ b lbl_80089F40 +lbl_80089F3C: +/* 80089F3C 00086E7C 38 A0 00 05 */ li r5, 5 +lbl_80089F40: +/* 80089F40 00086E80 7C 00 00 34 */ cntlzw r0, r0 +/* 80089F44 00086E84 80 61 00 10 */ lwz r3, 0x10(r1) +/* 80089F48 00086E88 54 07 D9 7E */ srwi r7, r0, 5 +/* 80089F4C 00086E8C 38 81 00 14 */ addi r4, r1, 0x14 +/* 80089F50 00086E90 38 C0 00 03 */ li r6, 3 +/* 80089F54 00086E94 48 00 01 55 */ bl TRKRequestSend +/* 80089F58 00086E98 7C 75 1B 79 */ or. r21, r3, r3 +/* 80089F5C 00086E9C 40 82 00 18 */ bne lbl_80089F74 +/* 80089F60 00086EA0 80 61 00 14 */ lwz r3, 0x14(r1) +/* 80089F64 00086EA4 4B FF E2 39 */ bl TRKGetBuffer +/* 80089F68 00086EA8 3B A3 00 00 */ addi r29, r3, 0 +/* 80089F6C 00086EAC 38 80 00 02 */ li r4, 2 +/* 80089F70 00086EB0 4B FF E3 01 */ bl TRKSetBufferPosition +lbl_80089F74: +/* 80089F74 00086EB4 2C 15 00 00 */ cmpwi r21, 0 +/* 80089F78 00086EB8 40 82 00 14 */ bne lbl_80089F8C +/* 80089F7C 00086EBC 38 7D 00 00 */ addi r3, r29, 0 +/* 80089F80 00086EC0 38 81 00 08 */ addi r4, r1, 8 +/* 80089F84 00086EC4 4B FF E6 71 */ bl TRKReadBuffer1_ui8 +/* 80089F88 00086EC8 7C 75 1B 78 */ mr r21, r3 +lbl_80089F8C: +/* 80089F8C 00086ECC 2C 15 00 00 */ cmpwi r21, 0 +/* 80089F90 00086ED0 40 82 00 14 */ bne lbl_80089FA4 +/* 80089F94 00086ED4 38 7D 00 00 */ addi r3, r29, 0 +/* 80089F98 00086ED8 38 81 00 0A */ addi r4, r1, 0xa +/* 80089F9C 00086EDC 4B FF E6 7D */ bl TRKReadBuffer1_ui16 +/* 80089FA0 00086EE0 7C 75 1B 78 */ mr r21, r3 +lbl_80089FA4: +/* 80089FA4 00086EE4 2C 1E 00 00 */ cmpwi r30, 0 +/* 80089FA8 00086EE8 41 82 00 58 */ beq lbl_8008A000 +/* 80089FAC 00086EEC 2C 15 00 00 */ cmpwi r21, 0 +/* 80089FB0 00086EF0 40 82 00 50 */ bne lbl_8008A000 +/* 80089FB4 00086EF4 A0 61 00 0A */ lhz r3, 0xa(r1) +/* 80089FB8 00086EF8 80 9D 00 08 */ lwz r4, 8(r29) +/* 80089FBC 00086EFC 38 03 00 05 */ addi r0, r3, 5 +/* 80089FC0 00086F00 7C 04 00 40 */ cmplw r4, r0 +/* 80089FC4 00086F04 41 82 00 20 */ beq lbl_80089FE4 +/* 80089FC8 00086F08 88 01 00 08 */ lbz r0, 8(r1) +/* 80089FCC 00086F0C 38 64 FF FB */ addi r3, r4, -5 +/* 80089FD0 00086F10 B0 61 00 0A */ sth r3, 0xa(r1) +/* 80089FD4 00086F14 28 00 00 00 */ cmplwi r0, 0 +/* 80089FD8 00086F18 40 82 00 0C */ bne lbl_80089FE4 +/* 80089FDC 00086F1C 38 00 00 01 */ li r0, 1 +/* 80089FE0 00086F20 98 01 00 08 */ stb r0, 8(r1) +lbl_80089FE4: +/* 80089FE4 00086F24 A0 A1 00 0A */ lhz r5, 0xa(r1) +/* 80089FE8 00086F28 7C 05 F8 40 */ cmplw r5, r31 +/* 80089FEC 00086F2C 41 81 00 14 */ bgt lbl_8008A000 +/* 80089FF0 00086F30 38 7D 00 00 */ addi r3, r29, 0 +/* 80089FF4 00086F34 7C 9B E2 14 */ add r4, r27, r28 +/* 80089FF8 00086F38 4B FF E7 E1 */ bl TRKReadBuffer_ui8 +/* 80089FFC 00086F3C 7C 75 1B 78 */ mr r21, r3 +lbl_8008A000: +/* 8008A000 00086F40 A0 61 00 0A */ lhz r3, 0xa(r1) +/* 8008A004 00086F44 7C 03 F8 40 */ cmplw r3, r31 +/* 8008A008 00086F48 41 82 00 30 */ beq lbl_8008A038 +/* 8008A00C 00086F4C 2C 1E 00 00 */ cmpwi r30, 0 +/* 8008A010 00086F50 41 82 00 0C */ beq lbl_8008A01C +/* 8008A014 00086F54 7C 03 F8 40 */ cmplw r3, r31 +/* 8008A018 00086F58 41 80 00 18 */ blt lbl_8008A030 +lbl_8008A01C: +/* 8008A01C 00086F5C 88 01 00 08 */ lbz r0, 8(r1) +/* 8008A020 00086F60 28 00 00 00 */ cmplwi r0, 0 +/* 8008A024 00086F64 40 82 00 0C */ bne lbl_8008A030 +/* 8008A028 00086F68 38 00 00 01 */ li r0, 1 +/* 8008A02C 00086F6C 98 01 00 08 */ stb r0, 8(r1) +lbl_8008A030: +/* 8008A030 00086F70 3B E3 00 00 */ addi r31, r3, 0 +/* 8008A034 00086F74 3B 00 00 01 */ li r24, 1 +lbl_8008A038: +/* 8008A038 00086F78 88 01 00 08 */ lbz r0, 8(r1) +/* 8008A03C 00086F7C 98 1A 00 00 */ stb r0, 0(r26) +/* 8008A040 00086F80 80 61 00 14 */ lwz r3, 0x14(r1) +/* 8008A044 00086F84 4B FF E1 85 */ bl TRKReleaseBuffer +/* 8008A048 00086F88 48 00 00 10 */ b lbl_8008A058 +lbl_8008A04C: +/* 8008A04C 00086F8C 80 61 00 10 */ lwz r3, 0x10(r1) +/* 8008A050 00086F90 4B FF E0 09 */ bl TRKMessageSend +/* 8008A054 00086F94 7C 75 1B 78 */ mr r21, r3 +lbl_8008A058: +/* 8008A058 00086F98 80 61 00 0C */ lwz r3, 0xc(r1) +/* 8008A05C 00086F9C 4B FF E1 6D */ bl TRKReleaseBuffer +/* 8008A060 00086FA0 7F 9C FA 14 */ add r28, r28, r31 +lbl_8008A064: +/* 8008A064 00086FA4 2C 18 00 00 */ cmpwi r24, 0 +/* 8008A068 00086FA8 40 82 00 24 */ bne lbl_8008A08C +/* 8008A06C 00086FAC 80 77 00 00 */ lwz r3, 0(r23) +/* 8008A070 00086FB0 7C 1C 18 40 */ cmplw r28, r3 +/* 8008A074 00086FB4 40 80 00 18 */ bge lbl_8008A08C +/* 8008A078 00086FB8 2C 15 00 00 */ cmpwi r21, 0 +/* 8008A07C 00086FBC 40 82 00 10 */ bne lbl_8008A08C +/* 8008A080 00086FC0 88 1A 00 00 */ lbz r0, 0(r26) +/* 8008A084 00086FC4 28 00 00 00 */ cmplwi r0, 0 +/* 8008A088 00086FC8 41 82 FD A0 */ beq lbl_80089E28 +lbl_8008A08C: +/* 8008A08C 00086FCC 93 97 00 00 */ stw r28, 0(r23) +/* 8008A090 00086FD0 7E A3 AB 78 */ mr r3, r21 +lbl_8008A094: +/* 8008A094 00086FD4 BA A1 00 1C */ lmw r21, 0x1c(r1) +/* 8008A098 00086FD8 38 21 00 48 */ addi r1, r1, 0x48 +/* 8008A09C 00086FDC 80 01 00 04 */ lwz r0, 4(r1) +/* 8008A0A0 00086FE0 7C 08 03 A6 */ mtlr r0 +/* 8008A0A4 00086FE4 4E 80 00 20 */ blr + +.global TRKRequestSend +TRKRequestSend: +/* 8008A0A8 00086FE8 7C 08 02 A6 */ mflr r0 +/* 8008A0AC 00086FEC 90 01 00 04 */ stw r0, 4(r1) +/* 8008A0B0 00086FF0 38 00 FF FF */ li r0, -1 +/* 8008A0B4 00086FF4 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 8008A0B8 00086FF8 BE C1 00 10 */ stmw r22, 0x10(r1) +/* 8008A0BC 00086FFC 3A E4 00 00 */ addi r23, r4, 0 +/* 8008A0C0 00087000 3C 80 04 C5 */ lis r4, 0x04C4B3EC@ha +/* 8008A0C4 00087004 3B 66 00 01 */ addi r27, r6, 1 +/* 8008A0C8 00087008 3A C3 00 00 */ addi r22, r3, 0 +/* 8008A0CC 0008700C 3B E4 B3 EC */ addi r31, r4, 0x04C4B3EC@l +/* 8008A0D0 00087010 3B 05 00 00 */ addi r24, r5, 0 +/* 8008A0D4 00087014 3B 27 00 00 */ addi r25, r7, 0 +/* 8008A0D8 00087018 3B C0 00 00 */ li r30, 0 +/* 8008A0DC 0008701C 3B 40 00 01 */ li r26, 1 +/* 8008A0E0 00087020 90 17 00 00 */ stw r0, 0(r23) +/* 8008A0E4 00087024 48 00 01 24 */ b lbl_8008A208 +lbl_8008A0E8: +/* 8008A0E8 00087028 7E C3 B3 78 */ mr r3, r22 +/* 8008A0EC 0008702C 4B FF DF 6D */ bl TRKMessageSend +/* 8008A0F0 00087030 7C 7E 1B 79 */ or. r30, r3, r3 +/* 8008A0F4 00087034 40 82 01 10 */ bne lbl_8008A204 +/* 8008A0F8 00087038 2C 19 00 00 */ cmpwi r25, 0 +/* 8008A0FC 0008703C 41 82 00 08 */ beq lbl_8008A104 +/* 8008A100 00087040 3B 80 00 00 */ li r28, 0 +lbl_8008A104: +/* 8008A104 00087044 4B FF E7 C5 */ bl TRKTestForPacket +/* 8008A108 00087048 90 77 00 00 */ stw r3, 0(r23) +/* 8008A10C 0008704C 80 77 00 00 */ lwz r3, 0(r23) +/* 8008A110 00087050 2C 03 FF FF */ cmpwi r3, -1 +/* 8008A114 00087054 40 82 00 18 */ bne lbl_8008A12C +/* 8008A118 00087058 2C 19 00 00 */ cmpwi r25, 0 +/* 8008A11C 0008705C 41 82 FF E8 */ beq lbl_8008A104 +/* 8008A120 00087060 3B 9C 00 01 */ addi r28, r28, 1 +/* 8008A124 00087064 7C 1C F8 40 */ cmplw r28, r31 +/* 8008A128 00087068 41 80 FF DC */ blt lbl_8008A104 +lbl_8008A12C: +/* 8008A12C 0008706C 2C 03 FF FF */ cmpwi r3, -1 +/* 8008A130 00087070 41 82 00 4C */ beq lbl_8008A17C +/* 8008A134 00087074 3B 40 00 00 */ li r26, 0 +/* 8008A138 00087078 4B FF E0 65 */ bl TRKGetBuffer +/* 8008A13C 0008707C 3B A3 00 00 */ addi r29, r3, 0 +/* 8008A140 00087080 38 80 00 00 */ li r4, 0 +/* 8008A144 00087084 4B FF E1 2D */ bl TRKSetBufferPosition +/* 8008A148 00087088 38 7D 00 00 */ addi r3, r29, 0 +/* 8008A14C 0008708C 38 81 00 08 */ addi r4, r1, 8 +/* 8008A150 00087090 4B FF E4 A5 */ bl TRKReadBuffer1_ui8 +/* 8008A154 00087094 7C 7E 1B 79 */ or. r30, r3, r3 +/* 8008A158 00087098 40 82 00 24 */ bne lbl_8008A17C +/* 8008A15C 0008709C 88 01 00 08 */ lbz r0, 8(r1) +/* 8008A160 000870A0 28 00 00 80 */ cmplwi r0, 0x80 +/* 8008A164 000870A4 40 80 00 18 */ bge lbl_8008A17C +/* 8008A168 000870A8 80 77 00 00 */ lwz r3, 0(r23) +/* 8008A16C 000870AC 4B FF E8 A9 */ bl TRKProcessInput +/* 8008A170 000870B0 38 00 FF FF */ li r0, -1 +/* 8008A174 000870B4 90 17 00 00 */ stw r0, 0(r23) +/* 8008A178 000870B8 4B FF FF 8C */ b lbl_8008A104 +lbl_8008A17C: +/* 8008A17C 000870BC 80 17 00 00 */ lwz r0, 0(r23) +/* 8008A180 000870C0 2C 00 FF FF */ cmpwi r0, -1 +/* 8008A184 000870C4 41 82 00 80 */ beq lbl_8008A204 +/* 8008A188 000870C8 80 1D 00 08 */ lwz r0, 8(r29) +/* 8008A18C 000870CC 7C 00 C0 40 */ cmplw r0, r24 +/* 8008A190 000870D0 40 80 00 08 */ bge lbl_8008A198 +/* 8008A194 000870D4 3B 40 00 01 */ li r26, 1 +lbl_8008A198: +/* 8008A198 000870D8 2C 1E 00 00 */ cmpwi r30, 0 +/* 8008A19C 000870DC 40 82 00 1C */ bne lbl_8008A1B8 +/* 8008A1A0 000870E0 2C 1A 00 00 */ cmpwi r26, 0 +/* 8008A1A4 000870E4 40 82 00 14 */ bne lbl_8008A1B8 +/* 8008A1A8 000870E8 38 7D 00 00 */ addi r3, r29, 0 +/* 8008A1AC 000870EC 38 81 00 09 */ addi r4, r1, 9 +/* 8008A1B0 000870F0 4B FF E4 45 */ bl TRKReadBuffer1_ui8 +/* 8008A1B4 000870F4 7C 7E 1B 78 */ mr r30, r3 +lbl_8008A1B8: +/* 8008A1B8 000870F8 2C 1E 00 00 */ cmpwi r30, 0 +/* 8008A1BC 000870FC 40 82 00 28 */ bne lbl_8008A1E4 +/* 8008A1C0 00087100 2C 1A 00 00 */ cmpwi r26, 0 +/* 8008A1C4 00087104 40 82 00 20 */ bne lbl_8008A1E4 +/* 8008A1C8 00087108 88 01 00 08 */ lbz r0, 8(r1) +/* 8008A1CC 0008710C 28 00 00 80 */ cmplwi r0, 0x80 +/* 8008A1D0 00087110 40 82 00 10 */ bne lbl_8008A1E0 +/* 8008A1D4 00087114 88 01 00 09 */ lbz r0, 9(r1) +/* 8008A1D8 00087118 28 00 00 00 */ cmplwi r0, 0 +/* 8008A1DC 0008711C 41 82 00 08 */ beq lbl_8008A1E4 +lbl_8008A1E0: +/* 8008A1E0 00087120 3B 40 00 01 */ li r26, 1 +lbl_8008A1E4: +/* 8008A1E4 00087124 2C 1E 00 00 */ cmpwi r30, 0 +/* 8008A1E8 00087128 40 82 00 0C */ bne lbl_8008A1F4 +/* 8008A1EC 0008712C 2C 1A 00 00 */ cmpwi r26, 0 +/* 8008A1F0 00087130 41 82 00 14 */ beq lbl_8008A204 +lbl_8008A1F4: +/* 8008A1F4 00087134 80 77 00 00 */ lwz r3, 0(r23) +/* 8008A1F8 00087138 4B FF DF D1 */ bl TRKReleaseBuffer +/* 8008A1FC 0008713C 38 00 FF FF */ li r0, -1 +/* 8008A200 00087140 90 17 00 00 */ stw r0, 0(r23) +lbl_8008A204: +/* 8008A204 00087144 3B 7B FF FF */ addi r27, r27, -1 +lbl_8008A208: +/* 8008A208 00087148 2C 1B 00 00 */ cmpwi r27, 0 +/* 8008A20C 0008714C 41 82 00 18 */ beq lbl_8008A224 +/* 8008A210 00087150 80 17 00 00 */ lwz r0, 0(r23) +/* 8008A214 00087154 2C 00 FF FF */ cmpwi r0, -1 +/* 8008A218 00087158 40 82 00 0C */ bne lbl_8008A224 +/* 8008A21C 0008715C 2C 1E 00 00 */ cmpwi r30, 0 +/* 8008A220 00087160 41 82 FE C8 */ beq lbl_8008A0E8 +lbl_8008A224: +/* 8008A224 00087164 80 17 00 00 */ lwz r0, 0(r23) +/* 8008A228 00087168 2C 00 FF FF */ cmpwi r0, -1 +/* 8008A22C 0008716C 40 82 00 08 */ bne lbl_8008A234 +/* 8008A230 00087170 3B C0 08 00 */ li r30, 0x800 +lbl_8008A234: +/* 8008A234 00087174 7F C3 F3 78 */ mr r3, r30 +/* 8008A238 00087178 BA C1 00 10 */ lmw r22, 0x10(r1) +/* 8008A23C 0008717C 38 21 00 38 */ addi r1, r1, 0x38 +/* 8008A240 00087180 80 01 00 04 */ lwz r0, 4(r1) +/* 8008A244 00087184 7C 08 03 A6 */ mtlr r0 +/* 8008A248 00087188 4E 80 00 20 */ blr |