summaryrefslogtreecommitdiff
path: root/asm/SDK/MEM/mem_heapCommon.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/MEM/mem_heapCommon.s')
-rw-r--r--asm/SDK/MEM/mem_heapCommon.s334
1 files changed, 334 insertions, 0 deletions
diff --git a/asm/SDK/MEM/mem_heapCommon.s b/asm/SDK/MEM/mem_heapCommon.s
new file mode 100644
index 0000000..0d05b07
--- /dev/null
+++ b/asm/SDK/MEM/mem_heapCommon.s
@@ -0,0 +1,334 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global FindContainHeap_
+FindContainHeap_:
+/* 802964CC 0029212C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802964D0 00292130 7C 08 02 A6 */ mflr r0
+/* 802964D4 00292134 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802964D8 00292138 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802964DC 0029213C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802964E0 00292140 7C 7E 1B 78 */ mr r30, r3
+/* 802964E4 00292144 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802964E8 00292148 3B A0 00 00 */ li r29, 0
+/* 802964EC 0029214C 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802964F0 00292150 7C 9C 23 78 */ mr r28, r4
+/* 802964F4 00292154 48 00 00 DC */ b lbl_802965D0
+lbl_802964F8:
+/* 802964F8 00292158 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 802964FC 0029215C 7C 00 E0 40 */ cmplw r0, r28
+/* 80296500 00292160 41 81 00 D0 */ bgt lbl_802965D0
+/* 80296504 00292164 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80296508 00292168 7C 1C 00 40 */ cmplw r28, r0
+/* 8029650C 0029216C 40 80 00 C4 */ bge lbl_802965D0
+/* 80296510 00292170 3B E0 00 00 */ li r31, 0
+/* 80296514 00292174 48 00 00 8C */ b lbl_802965A0
+lbl_80296518:
+/* 80296518 00292178 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8029651C 0029217C 7C 00 E0 40 */ cmplw r0, r28
+/* 80296520 00292180 41 81 00 80 */ bgt lbl_802965A0
+/* 80296524 00292184 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80296528 00292188 7C 1C 00 40 */ cmplw r28, r0
+/* 8029652C 0029218C 40 80 00 74 */ bge lbl_802965A0
+/* 80296530 00292190 3B C0 00 00 */ li r30, 0
+/* 80296534 00292194 48 00 00 3C */ b lbl_80296570
+lbl_80296538:
+/* 80296538 00292198 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8029653C 0029219C 7C 00 E0 40 */ cmplw r0, r28
+/* 80296540 002921A0 41 81 00 30 */ bgt lbl_80296570
+/* 80296544 002921A4 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80296548 002921A8 7C 1C 00 40 */ cmplw r28, r0
+/* 8029654C 002921AC 40 80 00 24 */ bge lbl_80296570
+/* 80296550 002921B0 7F 84 E3 78 */ mr r4, r28
+/* 80296554 002921B4 38 63 00 0C */ addi r3, r3, 0xc
+/* 80296558 002921B8 4B FF FF 75 */ bl FindContainHeap_
+/* 8029655C 002921BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80296560 002921C0 41 82 00 08 */ beq lbl_80296568
+/* 80296564 002921C4 48 00 00 28 */ b lbl_8029658C
+lbl_80296568:
+/* 80296568 002921C8 7F C3 F3 78 */ mr r3, r30
+/* 8029656C 002921CC 48 00 00 20 */ b lbl_8029658C
+lbl_80296570:
+/* 80296570 002921D0 7F C4 F3 78 */ mr r4, r30
+/* 80296574 002921D4 38 7F 00 0C */ addi r3, r31, 0xc
+/* 80296578 002921D8 48 00 12 F9 */ bl MEMGetNextListObject
+/* 8029657C 002921DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80296580 002921E0 7C 7E 1B 78 */ mr r30, r3
+/* 80296584 002921E4 40 82 FF B4 */ bne lbl_80296538
+/* 80296588 002921E8 38 60 00 00 */ li r3, 0
+lbl_8029658C:
+/* 8029658C 002921EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80296590 002921F0 41 82 00 08 */ beq lbl_80296598
+/* 80296594 002921F4 48 00 00 28 */ b lbl_802965BC
+lbl_80296598:
+/* 80296598 002921F8 7F E3 FB 78 */ mr r3, r31
+/* 8029659C 002921FC 48 00 00 20 */ b lbl_802965BC
+lbl_802965A0:
+/* 802965A0 00292200 7F E4 FB 78 */ mr r4, r31
+/* 802965A4 00292204 38 7D 00 0C */ addi r3, r29, 0xc
+/* 802965A8 00292208 48 00 12 C9 */ bl MEMGetNextListObject
+/* 802965AC 0029220C 2C 03 00 00 */ cmpwi r3, 0
+/* 802965B0 00292210 7C 7F 1B 78 */ mr r31, r3
+/* 802965B4 00292214 40 82 FF 64 */ bne lbl_80296518
+/* 802965B8 00292218 38 60 00 00 */ li r3, 0
+lbl_802965BC:
+/* 802965BC 0029221C 2C 03 00 00 */ cmpwi r3, 0
+/* 802965C0 00292220 41 82 00 08 */ beq lbl_802965C8
+/* 802965C4 00292224 48 00 00 28 */ b lbl_802965EC
+lbl_802965C8:
+/* 802965C8 00292228 7F A3 EB 78 */ mr r3, r29
+/* 802965CC 0029222C 48 00 00 20 */ b lbl_802965EC
+lbl_802965D0:
+/* 802965D0 00292230 7F C3 F3 78 */ mr r3, r30
+/* 802965D4 00292234 7F A4 EB 78 */ mr r4, r29
+/* 802965D8 00292238 48 00 12 99 */ bl MEMGetNextListObject
+/* 802965DC 0029223C 2C 03 00 00 */ cmpwi r3, 0
+/* 802965E0 00292240 7C 7D 1B 78 */ mr r29, r3
+/* 802965E4 00292244 40 82 FF 14 */ bne lbl_802964F8
+/* 802965E8 00292248 38 60 00 00 */ li r3, 0
+lbl_802965EC:
+/* 802965EC 0029224C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802965F0 00292250 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802965F4 00292254 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802965F8 00292258 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802965FC 0029225C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80296600 00292260 7C 08 03 A6 */ mtlr r0
+/* 80296604 00292264 38 21 00 20 */ addi r1, r1, 0x20
+/* 80296608 00292268 4E 80 00 20 */ blr
+
+.global MEMiInitHeapHead
+MEMiInitHeapHead:
+/* 8029660C 0029226C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80296610 00292270 7C 08 02 A6 */ mflr r0
+/* 80296614 00292274 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80296618 00292278 39 61 00 20 */ addi r11, r1, 0x20
+/* 8029661C 0029227C 4B F3 0B 0D */ bl _savegpr_27
+/* 80296620 00292280 38 00 00 00 */ li r0, 0
+/* 80296624 00292284 90 83 00 00 */ stw r4, 0(r3)
+/* 80296628 00292288 50 E0 06 3E */ rlwimi r0, r7, 0, 0x18, 0x1f
+/* 8029662C 0029228C 7C 7B 1B 78 */ mr r27, r3
+/* 80296630 00292290 90 A3 00 18 */ stw r5, 0x18(r3)
+/* 80296634 00292294 38 80 00 04 */ li r4, 4
+/* 80296638 00292298 90 C3 00 1C */ stw r6, 0x1c(r3)
+/* 8029663C 0029229C 90 03 00 38 */ stw r0, 0x38(r3)
+/* 80296640 002922A0 38 63 00 0C */ addi r3, r3, 0xc
+/* 80296644 002922A4 48 00 11 39 */ bl MEMInitList
+/* 80296648 002922A8 80 0D AC 48 */ lwz r0, lbl_8063FF08-_SDA_BASE_(r13)
+/* 8029664C 002922AC 2C 00 00 00 */ cmpwi r0, 0
+/* 80296650 002922B0 40 82 00 28 */ bne lbl_80296678
+/* 80296654 002922B4 3C 60 80 53 */ lis r3, lbl_805311C0@ha
+/* 80296658 002922B8 38 80 00 04 */ li r4, 4
+/* 8029665C 002922BC 38 63 11 C0 */ addi r3, r3, lbl_805311C0@l
+/* 80296660 002922C0 48 00 11 1D */ bl MEMInitList
+/* 80296664 002922C4 3C 60 80 53 */ lis r3, lbl_805311D0@ha
+/* 80296668 002922C8 38 63 11 D0 */ addi r3, r3, lbl_805311D0@l
+/* 8029666C 002922CC 4B FD 92 A5 */ bl OSInitMutex
+/* 80296670 002922D0 38 00 00 01 */ li r0, 1
+/* 80296674 002922D4 90 0D AC 48 */ stw r0, lbl_8063FF08-_SDA_BASE_(r13)
+lbl_80296678:
+/* 80296678 002922D8 38 7B 00 20 */ addi r3, r27, 0x20
+/* 8029667C 002922DC 4B FD 92 95 */ bl OSInitMutex
+/* 80296680 002922E0 3C 60 80 53 */ lis r3, lbl_805311D0@ha
+/* 80296684 002922E4 38 63 11 D0 */ addi r3, r3, lbl_805311D0@l
+/* 80296688 002922E8 4B FD 92 C1 */ bl OSLockMutex
+/* 8029668C 002922EC 3F E0 80 53 */ lis r31, lbl_805311C0@ha
+/* 80296690 002922F0 3B C0 00 00 */ li r30, 0
+/* 80296694 002922F4 3B 9F 11 C0 */ addi r28, r31, lbl_805311C0@l
+/* 80296698 002922F8 48 00 00 DC */ b lbl_80296774
+lbl_8029669C:
+/* 8029669C 002922FC 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 802966A0 00292300 7C 00 D8 40 */ cmplw r0, r27
+/* 802966A4 00292304 41 81 00 D0 */ bgt lbl_80296774
+/* 802966A8 00292308 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802966AC 0029230C 7C 1B 00 40 */ cmplw r27, r0
+/* 802966B0 00292310 40 80 00 C4 */ bge lbl_80296774
+/* 802966B4 00292314 3B E0 00 00 */ li r31, 0
+/* 802966B8 00292318 48 00 00 8C */ b lbl_80296744
+lbl_802966BC:
+/* 802966BC 0029231C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 802966C0 00292320 7C 00 D8 40 */ cmplw r0, r27
+/* 802966C4 00292324 41 81 00 80 */ bgt lbl_80296744
+/* 802966C8 00292328 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802966CC 0029232C 7C 1B 00 40 */ cmplw r27, r0
+/* 802966D0 00292330 40 80 00 74 */ bge lbl_80296744
+/* 802966D4 00292334 3B A0 00 00 */ li r29, 0
+/* 802966D8 00292338 48 00 00 3C */ b lbl_80296714
+lbl_802966DC:
+/* 802966DC 0029233C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 802966E0 00292340 7C 00 D8 40 */ cmplw r0, r27
+/* 802966E4 00292344 41 81 00 30 */ bgt lbl_80296714
+/* 802966E8 00292348 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802966EC 0029234C 7C 1B 00 40 */ cmplw r27, r0
+/* 802966F0 00292350 40 80 00 24 */ bge lbl_80296714
+/* 802966F4 00292354 7F 64 DB 78 */ mr r4, r27
+/* 802966F8 00292358 38 63 00 0C */ addi r3, r3, 0xc
+/* 802966FC 0029235C 4B FF FD D1 */ bl FindContainHeap_
+/* 80296700 00292360 2C 03 00 00 */ cmpwi r3, 0
+/* 80296704 00292364 41 82 00 08 */ beq lbl_8029670C
+/* 80296708 00292368 48 00 00 28 */ b lbl_80296730
+lbl_8029670C:
+/* 8029670C 0029236C 7F A3 EB 78 */ mr r3, r29
+/* 80296710 00292370 48 00 00 20 */ b lbl_80296730
+lbl_80296714:
+/* 80296714 00292374 7F A4 EB 78 */ mr r4, r29
+/* 80296718 00292378 38 7F 00 0C */ addi r3, r31, 0xc
+/* 8029671C 0029237C 48 00 11 55 */ bl MEMGetNextListObject
+/* 80296720 00292380 2C 03 00 00 */ cmpwi r3, 0
+/* 80296724 00292384 7C 7D 1B 78 */ mr r29, r3
+/* 80296728 00292388 40 82 FF B4 */ bne lbl_802966DC
+/* 8029672C 0029238C 38 60 00 00 */ li r3, 0
+lbl_80296730:
+/* 80296730 00292390 2C 03 00 00 */ cmpwi r3, 0
+/* 80296734 00292394 41 82 00 08 */ beq lbl_8029673C
+/* 80296738 00292398 48 00 00 28 */ b lbl_80296760
+lbl_8029673C:
+/* 8029673C 0029239C 7F E3 FB 78 */ mr r3, r31
+/* 80296740 002923A0 48 00 00 20 */ b lbl_80296760
+lbl_80296744:
+/* 80296744 002923A4 7F E4 FB 78 */ mr r4, r31
+/* 80296748 002923A8 38 7E 00 0C */ addi r3, r30, 0xc
+/* 8029674C 002923AC 48 00 11 25 */ bl MEMGetNextListObject
+/* 80296750 002923B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80296754 002923B4 7C 7F 1B 78 */ mr r31, r3
+/* 80296758 002923B8 40 82 FF 64 */ bne lbl_802966BC
+/* 8029675C 002923BC 38 60 00 00 */ li r3, 0
+lbl_80296760:
+/* 80296760 002923C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80296764 002923C4 41 82 00 08 */ beq lbl_8029676C
+/* 80296768 002923C8 48 00 00 28 */ b lbl_80296790
+lbl_8029676C:
+/* 8029676C 002923CC 7F C3 F3 78 */ mr r3, r30
+/* 80296770 002923D0 48 00 00 20 */ b lbl_80296790
+lbl_80296774:
+/* 80296774 002923D4 7F C4 F3 78 */ mr r4, r30
+/* 80296778 002923D8 38 7F 11 C0 */ addi r3, r31, 0x11c0
+/* 8029677C 002923DC 48 00 10 F5 */ bl MEMGetNextListObject
+/* 80296780 002923E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80296784 002923E4 7C 7E 1B 78 */ mr r30, r3
+/* 80296788 002923E8 40 82 FF 14 */ bne lbl_8029669C
+/* 8029678C 002923EC 38 60 00 00 */ li r3, 0
+lbl_80296790:
+/* 80296790 002923F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80296794 002923F4 41 82 00 08 */ beq lbl_8029679C
+/* 80296798 002923F8 3B 83 00 0C */ addi r28, r3, 0xc
+lbl_8029679C:
+/* 8029679C 002923FC 7F 83 E3 78 */ mr r3, r28
+/* 802967A0 00292400 7F 64 DB 78 */ mr r4, r27
+/* 802967A4 00292404 48 00 0F F1 */ bl MEMAppendListObject
+/* 802967A8 00292408 3C 60 80 53 */ lis r3, lbl_805311D0@ha
+/* 802967AC 0029240C 38 63 11 D0 */ addi r3, r3, lbl_805311D0@l
+/* 802967B0 00292410 4B FD 92 75 */ bl OSUnlockMutex
+/* 802967B4 00292414 39 61 00 20 */ addi r11, r1, 0x20
+/* 802967B8 00292418 4B F3 09 BD */ bl _restgpr_27
+/* 802967BC 0029241C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802967C0 00292420 7C 08 03 A6 */ mtlr r0
+/* 802967C4 00292424 38 21 00 20 */ addi r1, r1, 0x20
+/* 802967C8 00292428 4E 80 00 20 */ blr
+
+.global MEMiFinalizeHeap
+MEMiFinalizeHeap:
+/* 802967CC 0029242C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802967D0 00292430 7C 08 02 A6 */ mflr r0
+/* 802967D4 00292434 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802967D8 00292438 39 61 00 20 */ addi r11, r1, 0x20
+/* 802967DC 0029243C 4B F3 09 4D */ bl _savegpr_27
+/* 802967E0 00292440 3C 80 80 53 */ lis r4, lbl_805311D0@ha
+/* 802967E4 00292444 7C 7B 1B 78 */ mr r27, r3
+/* 802967E8 00292448 38 64 11 D0 */ addi r3, r4, lbl_805311D0@l
+/* 802967EC 0029244C 4B FD 91 5D */ bl OSLockMutex
+/* 802967F0 00292450 3F E0 80 53 */ lis r31, lbl_805311C0@ha
+/* 802967F4 00292454 3B C0 00 00 */ li r30, 0
+/* 802967F8 00292458 3B 9F 11 C0 */ addi r28, r31, lbl_805311C0@l
+/* 802967FC 0029245C 48 00 00 DC */ b lbl_802968D8
+lbl_80296800:
+/* 80296800 00292460 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 80296804 00292464 7C 00 D8 40 */ cmplw r0, r27
+/* 80296808 00292468 41 81 00 D0 */ bgt lbl_802968D8
+/* 8029680C 0029246C 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80296810 00292470 7C 1B 00 40 */ cmplw r27, r0
+/* 80296814 00292474 40 80 00 C4 */ bge lbl_802968D8
+/* 80296818 00292478 3B E0 00 00 */ li r31, 0
+/* 8029681C 0029247C 48 00 00 8C */ b lbl_802968A8
+lbl_80296820:
+/* 80296820 00292480 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 80296824 00292484 7C 00 D8 40 */ cmplw r0, r27
+/* 80296828 00292488 41 81 00 80 */ bgt lbl_802968A8
+/* 8029682C 0029248C 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80296830 00292490 7C 1B 00 40 */ cmplw r27, r0
+/* 80296834 00292494 40 80 00 74 */ bge lbl_802968A8
+/* 80296838 00292498 3B A0 00 00 */ li r29, 0
+/* 8029683C 0029249C 48 00 00 3C */ b lbl_80296878
+lbl_80296840:
+/* 80296840 002924A0 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 80296844 002924A4 7C 00 D8 40 */ cmplw r0, r27
+/* 80296848 002924A8 41 81 00 30 */ bgt lbl_80296878
+/* 8029684C 002924AC 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80296850 002924B0 7C 1B 00 40 */ cmplw r27, r0
+/* 80296854 002924B4 40 80 00 24 */ bge lbl_80296878
+/* 80296858 002924B8 7F 64 DB 78 */ mr r4, r27
+/* 8029685C 002924BC 38 63 00 0C */ addi r3, r3, 0xc
+/* 80296860 002924C0 4B FF FC 6D */ bl FindContainHeap_
+/* 80296864 002924C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80296868 002924C8 41 82 00 08 */ beq lbl_80296870
+/* 8029686C 002924CC 48 00 00 28 */ b lbl_80296894
+lbl_80296870:
+/* 80296870 002924D0 7F A3 EB 78 */ mr r3, r29
+/* 80296874 002924D4 48 00 00 20 */ b lbl_80296894
+lbl_80296878:
+/* 80296878 002924D8 7F A4 EB 78 */ mr r4, r29
+/* 8029687C 002924DC 38 7F 00 0C */ addi r3, r31, 0xc
+/* 80296880 002924E0 48 00 0F F1 */ bl MEMGetNextListObject
+/* 80296884 002924E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80296888 002924E8 7C 7D 1B 78 */ mr r29, r3
+/* 8029688C 002924EC 40 82 FF B4 */ bne lbl_80296840
+/* 80296890 002924F0 38 60 00 00 */ li r3, 0
+lbl_80296894:
+/* 80296894 002924F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80296898 002924F8 41 82 00 08 */ beq lbl_802968A0
+/* 8029689C 002924FC 48 00 00 28 */ b lbl_802968C4
+lbl_802968A0:
+/* 802968A0 00292500 7F E3 FB 78 */ mr r3, r31
+/* 802968A4 00292504 48 00 00 20 */ b lbl_802968C4
+lbl_802968A8:
+/* 802968A8 00292508 7F E4 FB 78 */ mr r4, r31
+/* 802968AC 0029250C 38 7E 00 0C */ addi r3, r30, 0xc
+/* 802968B0 00292510 48 00 0F C1 */ bl MEMGetNextListObject
+/* 802968B4 00292514 2C 03 00 00 */ cmpwi r3, 0
+/* 802968B8 00292518 7C 7F 1B 78 */ mr r31, r3
+/* 802968BC 0029251C 40 82 FF 64 */ bne lbl_80296820
+/* 802968C0 00292520 38 60 00 00 */ li r3, 0
+lbl_802968C4:
+/* 802968C4 00292524 2C 03 00 00 */ cmpwi r3, 0
+/* 802968C8 00292528 41 82 00 08 */ beq lbl_802968D0
+/* 802968CC 0029252C 48 00 00 28 */ b lbl_802968F4
+lbl_802968D0:
+/* 802968D0 00292530 7F C3 F3 78 */ mr r3, r30
+/* 802968D4 00292534 48 00 00 20 */ b lbl_802968F4
+lbl_802968D8:
+/* 802968D8 00292538 7F C4 F3 78 */ mr r4, r30
+/* 802968DC 0029253C 38 7F 11 C0 */ addi r3, r31, 0x11c0
+/* 802968E0 00292540 48 00 0F 91 */ bl MEMGetNextListObject
+/* 802968E4 00292544 2C 03 00 00 */ cmpwi r3, 0
+/* 802968E8 00292548 7C 7E 1B 78 */ mr r30, r3
+/* 802968EC 0029254C 40 82 FF 14 */ bne lbl_80296800
+/* 802968F0 00292550 38 60 00 00 */ li r3, 0
+lbl_802968F4:
+/* 802968F4 00292554 2C 03 00 00 */ cmpwi r3, 0
+/* 802968F8 00292558 41 82 00 08 */ beq lbl_80296900
+/* 802968FC 0029255C 3B 83 00 0C */ addi r28, r3, 0xc
+lbl_80296900:
+/* 80296900 00292560 7F 83 E3 78 */ mr r3, r28
+/* 80296904 00292564 7F 64 DB 78 */ mr r4, r27
+/* 80296908 00292568 48 00 0E FD */ bl MEMRemoveListObject
+/* 8029690C 0029256C 3C 60 80 53 */ lis r3, lbl_805311D0@ha
+/* 80296910 00292570 38 63 11 D0 */ addi r3, r3, lbl_805311D0@l
+/* 80296914 00292574 4B FD 91 11 */ bl OSUnlockMutex
+/* 80296918 00292578 38 00 00 00 */ li r0, 0
+/* 8029691C 0029257C 39 61 00 20 */ addi r11, r1, 0x20
+/* 80296920 00292580 90 1B 00 00 */ stw r0, 0(r27)
+/* 80296924 00292584 4B F3 08 51 */ bl _restgpr_27
+/* 80296928 00292588 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8029692C 0029258C 7C 08 03 A6 */ mtlr r0
+/* 80296930 00292590 38 21 00 20 */ addi r1, r1, 0x20
+/* 80296934 00292594 4E 80 00 20 */ blr