prime/asm/Kyoto/Alloc/CMediumAllocPool.s

701 lines
33 KiB
ArmAsm

.include "macros.inc"
.section .sbss, "ax"
.balign 8
.global gMediumAllocPtr__16CMediumAllocPool
gMediumAllocPtr__16CMediumAllocPool:
.skip 0x4
.section .text, "ax"
.global InitBookKeeping__18SMediumAllocPuddleFPvUi
InitBookKeeping__18SMediumAllocPuddleFPvUi:
/* 80350540 0034D4A0 54 85 04 3E */ clrlwi r5, r4, 0x10
/* 80350544 0034D4A4 28 05 00 04 */ cmplwi r5, 4
/* 80350548 0034D4A8 40 80 00 48 */ bge lbl_80350590
/* 8035054C 0034D4AC 28 05 00 03 */ cmplwi r5, 3
/* 80350550 0034D4B0 40 82 00 0C */ bne lbl_8035055C
/* 80350554 0034D4B4 38 A0 00 60 */ li r5, 0x60
/* 80350558 0034D4B8 48 00 00 14 */ b lbl_8035056C
lbl_8035055C:
/* 8035055C 0034D4BC 28 05 00 02 */ cmplwi r5, 2
/* 80350560 0034D4C0 38 A0 00 20 */ li r5, 0x20
/* 80350564 0034D4C4 40 82 00 08 */ bne lbl_8035056C
/* 80350568 0034D4C8 38 A0 00 40 */ li r5, 0x40
lbl_8035056C:
/* 8035056C 0034D4CC 54 80 04 3E */ clrlwi r0, r4, 0x10
/* 80350570 0034D4D0 60 A4 00 80 */ ori r4, r5, 0x80
/* 80350574 0034D4D4 28 00 00 01 */ cmplwi r0, 1
/* 80350578 0034D4D8 98 83 00 00 */ stb r4, 0(r3)
/* 8035057C 0034D4DC 54 84 06 3E */ clrlwi r4, r4, 0x18
/* 80350580 0034D4E0 4C 81 00 20 */ blelr
/* 80350584 0034D4E4 7C 63 02 14 */ add r3, r3, r0
/* 80350588 0034D4E8 98 83 FF FF */ stb r4, -1(r3)
/* 8035058C 0034D4EC 4E 80 00 20 */ blr
lbl_80350590:
/* 80350590 0034D4F0 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f
/* 80350594 0034D4F4 7C A3 2A 14 */ add r5, r3, r5
/* 80350598 0034D4F8 60 00 00 80 */ ori r0, r0, 0x80
/* 8035059C 0034D4FC 98 03 00 00 */ stb r0, 0(r3)
/* 803505A0 0034D500 98 83 00 01 */ stb r4, 1(r3)
/* 803505A4 0034D504 98 85 FF FE */ stb r4, -2(r5)
/* 803505A8 0034D508 98 05 FF FF */ stb r0, -1(r5)
/* 803505AC 0034D50C 4E 80 00 20 */ blr
.global GetBlockOffset__18SMediumAllocPuddleFCPvCPv
GetBlockOffset__18SMediumAllocPuddleFCPvCPv:
/* 803505B0 0034D510 7C 03 20 50 */ subf r0, r3, r4
/* 803505B4 0034D514 2C 00 00 01 */ cmpwi r0, 1
/* 803505B8 0034D518 40 81 00 0C */ ble lbl_803505C4
/* 803505BC 0034D51C 88 83 00 01 */ lbz r4, 1(r3)
/* 803505C0 0034D520 48 00 00 08 */ b lbl_803505C8
lbl_803505C4:
/* 803505C4 0034D524 38 80 00 00 */ li r4, 0
lbl_803505C8:
/* 803505C8 0034D528 88 03 00 00 */ lbz r0, 0(r3)
/* 803505CC 0034D52C 54 83 06 3E */ clrlwi r3, r4, 0x18
/* 803505D0 0034D530 54 00 44 6E */ rlwinm r0, r0, 8, 0x11, 0x17
/* 803505D4 0034D534 7C 63 02 14 */ add r3, r3, r0
/* 803505D8 0034D538 54 60 04 65 */ rlwinm. r0, r3, 0, 0x11, 0x12
/* 803505DC 0034D53C 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 803505E0 0034D540 4D 82 00 20 */ beqlr
/* 803505E4 0034D544 28 00 60 00 */ cmplwi r0, 0x6000
/* 803505E8 0034D548 40 82 00 0C */ bne lbl_803505F4
/* 803505EC 0034D54C 38 00 00 03 */ li r0, 3
/* 803505F0 0034D550 48 00 00 14 */ b lbl_80350604
lbl_803505F4:
/* 803505F4 0034D554 20 00 40 00 */ subfic r0, r0, 0x4000
/* 803505F8 0034D558 7C 00 00 34 */ cntlzw r0, r0
/* 803505FC 0034D55C 54 03 D9 7E */ srwi r3, r0, 5
/* 80350600 0034D560 38 03 00 01 */ addi r0, r3, 1
lbl_80350604:
/* 80350604 0034D564 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 80350608 0034D568 4E 80 00 20 */ blr
.global Free__18SMediumAllocPuddleFCPv
Free__18SMediumAllocPuddleFCPv:
/* 8035060C 0034D56C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80350610 0034D570 7C 08 02 A6 */ mflr r0
/* 80350614 0034D574 90 01 00 24 */ stw r0, 0x24(r1)
/* 80350618 0034D578 BF 61 00 0C */ stmw r27, 0xc(r1)
/* 8035061C 0034D57C 7C 7B 1B 78 */ mr r27, r3
/* 80350620 0034D580 3B 80 00 00 */ li r28, 0
/* 80350624 0034D584 80 03 00 04 */ lwz r0, 4(r3)
/* 80350628 0034D588 80 63 00 08 */ lwz r3, 8(r3)
/* 8035062C 0034D58C 7C 80 20 50 */ subf r4, r0, r4
/* 80350630 0034D590 80 1B 00 14 */ lwz r0, 0x14(r27)
/* 80350634 0034D594 54 84 D9 7E */ srwi r4, r4, 5
/* 80350638 0034D598 7C C3 20 AE */ lbzx r6, r3, r4
/* 8035063C 0034D59C 7C 00 32 14 */ add r0, r0, r6
/* 80350640 0034D5A0 7C DD 33 78 */ mr r29, r6
/* 80350644 0034D5A4 90 1B 00 14 */ stw r0, 0x14(r27)
/* 80350648 0034D5A8 80 7B 00 18 */ lwz r3, 0x18(r27)
/* 8035064C 0034D5AC 38 03 FF FF */ addi r0, r3, -1
/* 80350650 0034D5B0 90 1B 00 18 */ stw r0, 0x18(r27)
/* 80350654 0034D5B4 83 FB 00 08 */ lwz r31, 8(r27)
/* 80350658 0034D5B8 80 1B 00 0C */ lwz r0, 0xc(r27)
/* 8035065C 0034D5BC 7C FF 22 14 */ add r7, r31, r4
/* 80350660 0034D5C0 80 7B 00 1C */ lwz r3, 0x1c(r27)
/* 80350664 0034D5C4 7C 00 38 40 */ cmplw r0, r7
/* 80350668 0034D5C8 7C FE 3B 78 */ mr r30, r7
/* 8035066C 0034D5CC 7C 9F 1A 14 */ add r4, r31, r3
/* 80350670 0034D5D0 40 82 00 08 */ bne lbl_80350678
/* 80350674 0034D5D4 3B 80 00 01 */ li r28, 1
lbl_80350678:
/* 80350678 0034D5D8 7C 07 F8 40 */ cmplw r7, r31
/* 8035067C 0034D5DC 40 81 00 60 */ ble lbl_803506DC
/* 80350680 0034D5E0 88 A7 FF FF */ lbz r5, -1(r7)
/* 80350684 0034D5E4 54 A0 06 31 */ rlwinm. r0, r5, 0, 0x18, 0x18
/* 80350688 0034D5E8 41 82 00 54 */ beq lbl_803506DC
/* 8035068C 0034D5EC 54 A0 06 75 */ rlwinm. r0, r5, 0, 0x19, 0x1a
/* 80350690 0034D5F0 40 82 00 18 */ bne lbl_803506A8
/* 80350694 0034D5F4 88 67 FF FE */ lbz r3, -2(r7)
/* 80350698 0034D5F8 54 A0 44 6E */ rlwinm r0, r5, 8, 0x11, 0x17
/* 8035069C 0034D5FC 7C 03 02 14 */ add r0, r3, r0
/* 803506A0 0034D600 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803506A4 0034D604 48 00 00 28 */ b lbl_803506CC
lbl_803506A8:
/* 803506A8 0034D608 28 00 00 60 */ cmplwi r0, 0x60
/* 803506AC 0034D60C 40 82 00 0C */ bne lbl_803506B8
/* 803506B0 0034D610 38 00 00 03 */ li r0, 3
/* 803506B4 0034D614 48 00 00 14 */ b lbl_803506C8
lbl_803506B8:
/* 803506B8 0034D618 20 00 00 40 */ subfic r0, r0, 0x40
/* 803506BC 0034D61C 7C 00 00 34 */ cntlzw r0, r0
/* 803506C0 0034D620 54 03 D9 7E */ srwi r3, r0, 5
/* 803506C4 0034D624 38 03 00 01 */ addi r0, r3, 1
lbl_803506C8:
/* 803506C8 0034D628 54 00 04 3E */ clrlwi r0, r0, 0x10
lbl_803506CC:
/* 803506CC 0034D62C 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 803506D0 0034D630 7C 1D 02 14 */ add r0, r29, r0
/* 803506D4 0034D634 7F C3 F0 50 */ subf r30, r3, r30
/* 803506D8 0034D638 54 1D 04 3E */ clrlwi r29, r0, 0x10
lbl_803506DC:
/* 803506DC 0034D63C 7C 67 32 14 */ add r3, r7, r6
/* 803506E0 0034D640 7C 03 20 40 */ cmplw r3, r4
/* 803506E4 0034D644 40 80 00 1C */ bge lbl_80350700
/* 803506E8 0034D648 88 03 00 00 */ lbz r0, 0(r3)
/* 803506EC 0034D64C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 803506F0 0034D650 40 81 00 10 */ ble lbl_80350700
/* 803506F4 0034D654 4B FF FE BD */ bl GetBlockOffset__18SMediumAllocPuddleFCPvCPv
/* 803506F8 0034D658 7C 1D 1A 14 */ add r0, r29, r3
/* 803506FC 0034D65C 54 1D 04 3E */ clrlwi r29, r0, 0x10
lbl_80350700:
/* 80350700 0034D660 7F C3 F3 78 */ mr r3, r30
/* 80350704 0034D664 57 A4 04 3E */ clrlwi r4, r29, 0x10
/* 80350708 0034D668 4B FF FE 39 */ bl InitBookKeeping__18SMediumAllocPuddleFPvUi
/* 8035070C 0034D66C 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 80350710 0034D670 41 82 00 24 */ beq lbl_80350734
/* 80350714 0034D674 7C 1E F8 40 */ cmplw r30, r31
/* 80350718 0034D678 40 82 00 10 */ bne lbl_80350728
/* 8035071C 0034D67C 38 00 00 00 */ li r0, 0
/* 80350720 0034D680 90 1B 00 0C */ stw r0, 0xc(r27)
/* 80350724 0034D684 48 00 00 10 */ b lbl_80350734
lbl_80350728:
/* 80350728 0034D688 88 1E FF FF */ lbz r0, -1(r30)
/* 8035072C 0034D68C 7C 00 F0 50 */ subf r0, r0, r30
/* 80350730 0034D690 90 1B 00 0C */ stw r0, 0xc(r27)
lbl_80350734:
/* 80350734 0034D694 BB 61 00 0C */ lmw r27, 0xc(r1)
/* 80350738 0034D698 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8035073C 0034D69C 7C 08 03 A6 */ mtlr r0
/* 80350740 0034D6A0 38 21 00 20 */ addi r1, r1, 0x20
/* 80350744 0034D6A4 4E 80 00 20 */ blr
.global FindFreeEntry__18SMediumAllocPuddleFUi
FindFreeEntry__18SMediumAllocPuddleFUi:
/* 80350748 0034D6A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8035074C 0034D6AC 7C 08 02 A6 */ mflr r0
/* 80350750 0034D6B0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80350754 0034D6B4 BF 41 00 08 */ stmw r26, 8(r1)
/* 80350758 0034D6B8 7C 9B 23 78 */ mr r27, r4
/* 8035075C 0034D6BC 7C 7A 1B 78 */ mr r26, r3
/* 80350760 0034D6C0 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80350764 0034D6C4 7C 00 D8 40 */ cmplw r0, r27
/* 80350768 0034D6C8 41 80 00 A8 */ blt lbl_80350810
/* 8035076C 0034D6CC 83 FA 00 0C */ lwz r31, 0xc(r26)
/* 80350770 0034D6D0 83 DA 00 08 */ lwz r30, 8(r26)
/* 80350774 0034D6D4 28 1F 00 00 */ cmplwi r31, 0
/* 80350778 0034D6D8 40 82 00 08 */ bne lbl_80350780
/* 8035077C 0034D6DC 7F DF F3 78 */ mr r31, r30
lbl_80350780:
/* 80350780 0034D6E0 80 1A 00 1C */ lwz r0, 0x1c(r26)
/* 80350784 0034D6E4 7F FC FB 78 */ mr r28, r31
/* 80350788 0034D6E8 7F BE 02 14 */ add r29, r30, r0
lbl_8035078C:
/* 8035078C 0034D6EC 88 7C 00 00 */ lbz r3, 0(r28)
/* 80350790 0034D6F0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18
/* 80350794 0034D6F4 41 82 00 0C */ beq lbl_803507A0
/* 80350798 0034D6F8 7C 1C E8 40 */ cmplw r28, r29
/* 8035079C 0034D6FC 40 82 00 1C */ bne lbl_803507B8
lbl_803507A0:
/* 803507A0 0034D700 7C 1C E8 40 */ cmplw r28, r29
/* 803507A4 0034D704 40 82 00 0C */ bne lbl_803507B0
/* 803507A8 0034D708 7F DC F3 78 */ mr r28, r30
/* 803507AC 0034D70C 48 00 00 5C */ b lbl_80350808
lbl_803507B0:
/* 803507B0 0034D710 7F 9C 1A 14 */ add r28, r28, r3
/* 803507B4 0034D714 48 00 00 54 */ b lbl_80350808
lbl_803507B8:
/* 803507B8 0034D718 7F 83 E3 78 */ mr r3, r28
/* 803507BC 0034D71C 7F A4 EB 78 */ mr r4, r29
/* 803507C0 0034D720 4B FF FD F1 */ bl GetBlockOffset__18SMediumAllocPuddleFCPvCPv
/* 803507C4 0034D724 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 803507C8 0034D728 7C 00 D8 40 */ cmplw r0, r27
/* 803507CC 0034D72C 41 80 00 24 */ blt lbl_803507F0
/* 803507D0 0034D730 7C 1B 00 50 */ subf r0, r27, r0
/* 803507D4 0034D734 54 04 04 3F */ clrlwi. r4, r0, 0x10
/* 803507D8 0034D738 41 82 00 0C */ beq lbl_803507E4
/* 803507DC 0034D73C 7C 7C DA 14 */ add r3, r28, r27
/* 803507E0 0034D740 4B FF FD 61 */ bl InitBookKeeping__18SMediumAllocPuddleFPvUi
lbl_803507E4:
/* 803507E4 0034D744 93 9A 00 0C */ stw r28, 0xc(r26)
/* 803507E8 0034D748 7F 83 E3 78 */ mr r3, r28
/* 803507EC 0034D74C 48 00 00 28 */ b lbl_80350814
lbl_803507F0:
/* 803507F0 0034D750 7F 9C 02 14 */ add r28, r28, r0
/* 803507F4 0034D754 7C 1C F8 40 */ cmplw r28, r31
/* 803507F8 0034D758 41 82 00 18 */ beq lbl_80350810
/* 803507FC 0034D75C 7C 1C E8 40 */ cmplw r28, r29
/* 80350800 0034D760 40 82 00 08 */ bne lbl_80350808
/* 80350804 0034D764 7F DC F3 78 */ mr r28, r30
lbl_80350808:
/* 80350808 0034D768 7C 1C F8 40 */ cmplw r28, r31
/* 8035080C 0034D76C 40 82 FF 80 */ bne lbl_8035078C
lbl_80350810:
/* 80350810 0034D770 38 60 00 00 */ li r3, 0
lbl_80350814:
/* 80350814 0034D774 BB 41 00 08 */ lmw r26, 8(r1)
/* 80350818 0034D778 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8035081C 0034D77C 7C 08 03 A6 */ mtlr r0
/* 80350820 0034D780 38 21 00 20 */ addi r1, r1, 0x20
/* 80350824 0034D784 4E 80 00 20 */ blr
.global FindFree__16CMediumAllocPoolFi
FindFree__16CMediumAllocPoolFi:
/* 80350828 0034D788 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8035082C 0034D78C 7C 08 02 A6 */ mflr r0
/* 80350830 0034D790 90 01 00 14 */ stw r0, 0x14(r1)
/* 80350834 0034D794 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80350838 0034D798 7C 9F 23 78 */ mr r31, r4
/* 8035083C 0034D79C 93 C1 00 08 */ stw r30, 8(r1)
/* 80350840 0034D7A0 7C 7E 1B 78 */ mr r30, r3
/* 80350844 0034D7A4 4B FF FF 05 */ bl FindFreeEntry__18SMediumAllocPuddleFUi
/* 80350848 0034D7A8 28 03 00 00 */ cmplwi r3, 0
/* 8035084C 0034D7AC 40 82 00 0C */ bne lbl_80350858
/* 80350850 0034D7B0 38 60 00 00 */ li r3, 0
/* 80350854 0034D7B4 48 00 00 3C */ b lbl_80350890
lbl_80350858:
/* 80350858 0034D7B8 80 1E 00 08 */ lwz r0, 8(r30)
/* 8035085C 0034D7BC 7C 83 FA 14 */ add r4, r3, r31
/* 80350860 0034D7C0 80 BE 00 04 */ lwz r5, 4(r30)
/* 80350864 0034D7C4 7C 00 18 50 */ subf r0, r0, r3
/* 80350868 0034D7C8 9B E3 00 00 */ stb r31, 0(r3)
/* 8035086C 0034D7CC 54 00 28 34 */ slwi r0, r0, 5
/* 80350870 0034D7D0 7C 65 02 14 */ add r3, r5, r0
/* 80350874 0034D7D4 9B E4 FF FF */ stb r31, -1(r4)
/* 80350878 0034D7D8 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8035087C 0034D7DC 7C 1F 00 50 */ subf r0, r31, r0
/* 80350880 0034D7E0 90 1E 00 14 */ stw r0, 0x14(r30)
/* 80350884 0034D7E4 80 9E 00 18 */ lwz r4, 0x18(r30)
/* 80350888 0034D7E8 38 04 00 01 */ addi r0, r4, 1
/* 8035088C 0034D7EC 90 1E 00 18 */ stw r0, 0x18(r30)
lbl_80350890:
/* 80350890 0034D7F0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80350894 0034D7F4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80350898 0034D7F8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8035089C 0034D7FC 7C 08 03 A6 */ mtlr r0
/* 803508A0 0034D800 38 21 00 10 */ addi r1, r1, 0x10
/* 803508A4 0034D804 4E 80 00 20 */ blr
.global __dt__18SMediumAllocPuddleFv
__dt__18SMediumAllocPuddleFv:
/* 803508A8 0034D808 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803508AC 0034D80C 7C 08 02 A6 */ mflr r0
/* 803508B0 0034D810 90 01 00 14 */ stw r0, 0x14(r1)
/* 803508B4 0034D814 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803508B8 0034D818 7C 9F 23 78 */ mr r31, r4
/* 803508BC 0034D81C 93 C1 00 08 */ stw r30, 8(r1)
/* 803508C0 0034D820 7C 7E 1B 79 */ or. r30, r3, r3
/* 803508C4 0034D824 41 82 00 2C */ beq lbl_803508F0
/* 803508C8 0034D828 41 82 00 18 */ beq lbl_803508E0
/* 803508CC 0034D82C 88 1E 00 00 */ lbz r0, 0(r30)
/* 803508D0 0034D830 28 00 00 00 */ cmplwi r0, 0
/* 803508D4 0034D834 41 82 00 0C */ beq lbl_803508E0
/* 803508D8 0034D838 80 7E 00 04 */ lwz r3, 4(r30)
/* 803508DC 0034D83C 4B FC 50 55 */ bl Free__7CMemoryFPCv
lbl_803508E0:
/* 803508E0 0034D840 7F E0 07 35 */ extsh. r0, r31
/* 803508E4 0034D844 40 81 00 0C */ ble lbl_803508F0
/* 803508E8 0034D848 7F C3 F3 78 */ mr r3, r30
/* 803508EC 0034D84C 4B FC 50 45 */ bl Free__7CMemoryFPCv
lbl_803508F0:
/* 803508F0 0034D850 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803508F4 0034D854 7F C3 F3 78 */ mr r3, r30
/* 803508F8 0034D858 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803508FC 0034D85C 83 C1 00 08 */ lwz r30, 8(r1)
/* 80350900 0034D860 7C 08 03 A6 */ mtlr r0
/* 80350904 0034D864 38 21 00 10 */ addi r1, r1, 0x10
/* 80350908 0034D868 4E 80 00 20 */ blr
.global __ct__18SMediumAllocPuddleFUiPv
__ct__18SMediumAllocPuddleFUiPv:
/* 8035090C 0034D86C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80350910 0034D870 7C 08 02 A6 */ mflr r0
/* 80350914 0034D874 38 E0 00 00 */ li r7, 0
/* 80350918 0034D878 7C 89 23 78 */ mr r9, r4
/* 8035091C 0034D87C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80350920 0034D880 7C 05 00 D0 */ neg r0, r5
/* 80350924 0034D884 7C 00 2B 78 */ or r0, r0, r5
/* 80350928 0034D888 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8035092C 0034D88C 7C 7F 1B 78 */ mr r31, r3
/* 80350930 0034D890 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80350934 0034D894 54 80 28 34 */ slwi r0, r4, 5
/* 80350938 0034D898 98 7F 00 00 */ stb r3, 0(r31)
/* 8035093C 0034D89C 7D 05 02 14 */ add r8, r5, r0
/* 80350940 0034D8A0 38 00 FF FF */ li r0, -1
/* 80350944 0034D8A4 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 80350948 0034D8A8 90 BF 00 04 */ stw r5, 4(r31)
/* 8035094C 0034D8AC 91 1F 00 08 */ stw r8, 8(r31)
/* 80350950 0034D8B0 90 FF 00 0C */ stw r7, 0xc(r31)
/* 80350954 0034D8B4 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80350958 0034D8B8 91 3F 00 14 */ stw r9, 0x14(r31)
/* 8035095C 0034D8BC 90 FF 00 18 */ stw r7, 0x18(r31)
/* 80350960 0034D8C0 91 3F 00 1C */ stw r9, 0x1c(r31)
/* 80350964 0034D8C4 88 1F 00 20 */ lbz r0, 0x20(r31)
/* 80350968 0034D8C8 50 C0 3E 30 */ rlwimi r0, r6, 7, 0x18, 0x18
/* 8035096C 0034D8CC 98 1F 00 20 */ stb r0, 0x20(r31)
/* 80350970 0034D8D0 80 7F 00 08 */ lwz r3, 8(r31)
/* 80350974 0034D8D4 4B FF FB CD */ bl InitBookKeeping__18SMediumAllocPuddleFPvUi
/* 80350978 0034D8D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8035097C 0034D8DC 7F E3 FB 78 */ mr r3, r31
/* 80350980 0034D8E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80350984 0034D8E4 7C 08 03 A6 */ mtlr r0
/* 80350988 0034D8E8 38 21 00 10 */ addi r1, r1, 0x10
/* 8035098C 0034D8EC 4E 80 00 20 */ blr
.global AddPuddle__16CMediumAllocPoolFUiPvi
AddPuddle__16CMediumAllocPoolFUiPvi:
/* 80350990 0034D8F0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80350994 0034D8F4 7C 08 02 A6 */ mflr r0
/* 80350998 0034D8F8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8035099C 0034D8FC 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 803509A0 0034D900 7C 7F 1B 78 */ mr r31, r3
/* 803509A4 0034D904 38 61 00 08 */ addi r3, r1, 8
/* 803509A8 0034D908 4B FF FF 65 */ bl __ct__18SMediumAllocPuddleFUiPv
/* 803509AC 0034D90C 7F E3 FB 78 */ mr r3, r31
/* 803509B0 0034D910 38 81 00 08 */ addi r4, r1, 8
/* 803509B4 0034D914 48 00 00 39 */ bl "push_back__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FRC18SMediumAllocPuddle"
/* 803509B8 0034D918 38 61 00 08 */ addi r3, r1, 8
/* 803509BC 0034D91C 38 80 FF FF */ li r4, -1
/* 803509C0 0034D920 4B FF FE E9 */ bl __dt__18SMediumAllocPuddleFv
/* 803509C4 0034D924 80 1F 00 08 */ lwz r0, 8(r31)
/* 803509C8 0034D928 90 1F 00 18 */ stw r0, 0x18(r31)
/* 803509CC 0034D92C 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 803509D0 0034D930 80 03 00 00 */ lwz r0, 0(r3)
/* 803509D4 0034D934 90 1F 00 18 */ stw r0, 0x18(r31)
/* 803509D8 0034D938 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 803509DC 0034D93C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803509E0 0034D940 7C 08 03 A6 */ mtlr r0
/* 803509E4 0034D944 38 21 00 40 */ addi r1, r1, 0x40
/* 803509E8 0034D948 4E 80 00 20 */ blr
.global "push_back__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FRC18SMediumAllocPuddle"
"push_back__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FRC18SMediumAllocPuddle":
/* 803509EC 0034D94C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803509F0 0034D950 7C 08 02 A6 */ mflr r0
/* 803509F4 0034D954 7C 85 23 78 */ mr r5, r4
/* 803509F8 0034D958 90 01 00 14 */ stw r0, 0x14(r1)
/* 803509FC 0034D95C 80 83 00 08 */ lwz r4, 8(r3)
/* 80350A00 0034D960 48 00 00 15 */ bl "do_insert_before__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FPQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>4nodeRC18SMediumAllocPuddle"
/* 80350A04 0034D964 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80350A08 0034D968 7C 08 03 A6 */ mtlr r0
/* 80350A0C 0034D96C 38 21 00 10 */ addi r1, r1, 0x10
/* 80350A10 0034D970 4E 80 00 20 */ blr
.global "do_insert_before__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FPQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>4nodeRC18SMediumAllocPuddle"
"do_insert_before__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FPQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>4nodeRC18SMediumAllocPuddle":
/* 80350A14 0034D974 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80350A18 0034D978 7C 08 02 A6 */ mflr r0
/* 80350A1C 0034D97C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80350A20 0034D980 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80350A24 0034D984 7C 9F 23 78 */ mr r31, r4
/* 80350A28 0034D988 3C 80 80 3E */ lis r4, lbl_803D8240@ha
/* 80350A2C 0034D98C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80350A30 0034D990 7C 7E 1B 78 */ mr r30, r3
/* 80350A34 0034D994 38 84 82 40 */ addi r4, r4, lbl_803D8240@l
/* 80350A38 0034D998 38 60 00 2C */ li r3, 0x2c
/* 80350A3C 0034D99C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80350A40 0034D9A0 93 81 00 10 */ stw r28, 0x10(r1)
/* 80350A44 0034D9A4 7C BC 2B 78 */ mr r28, r5
/* 80350A48 0034D9A8 38 A0 00 00 */ li r5, 0
/* 80350A4C 0034D9AC 83 BF 00 00 */ lwz r29, 0(r31)
/* 80350A50 0034D9B0 4B FC 4D C9 */ bl __nwa__FUlPCcPCc
/* 80350A54 0034D9B4 28 03 00 00 */ cmplwi r3, 0
/* 80350A58 0034D9B8 41 82 00 0C */ beq lbl_80350A64
/* 80350A5C 0034D9BC 93 A3 00 00 */ stw r29, 0(r3)
/* 80350A60 0034D9C0 93 E3 00 04 */ stw r31, 4(r3)
lbl_80350A64:
/* 80350A64 0034D9C4 34 A3 00 08 */ addic. r5, r3, 8
/* 80350A68 0034D9C8 41 82 00 54 */ beq lbl_80350ABC
/* 80350A6C 0034D9CC 88 9C 00 00 */ lbz r4, 0(r28)
/* 80350A70 0034D9D0 38 00 00 00 */ li r0, 0
/* 80350A74 0034D9D4 98 85 00 00 */ stb r4, 0(r5)
/* 80350A78 0034D9D8 80 9C 00 04 */ lwz r4, 4(r28)
/* 80350A7C 0034D9DC 90 85 00 04 */ stw r4, 4(r5)
/* 80350A80 0034D9E0 98 1C 00 00 */ stb r0, 0(r28)
/* 80350A84 0034D9E4 80 1C 00 08 */ lwz r0, 8(r28)
/* 80350A88 0034D9E8 90 05 00 08 */ stw r0, 8(r5)
/* 80350A8C 0034D9EC 80 1C 00 0C */ lwz r0, 0xc(r28)
/* 80350A90 0034D9F0 90 05 00 0C */ stw r0, 0xc(r5)
/* 80350A94 0034D9F4 80 1C 00 10 */ lwz r0, 0x10(r28)
/* 80350A98 0034D9F8 90 05 00 10 */ stw r0, 0x10(r5)
/* 80350A9C 0034D9FC 80 1C 00 14 */ lwz r0, 0x14(r28)
/* 80350AA0 0034DA00 90 05 00 14 */ stw r0, 0x14(r5)
/* 80350AA4 0034DA04 80 1C 00 18 */ lwz r0, 0x18(r28)
/* 80350AA8 0034DA08 90 05 00 18 */ stw r0, 0x18(r5)
/* 80350AAC 0034DA0C 80 1C 00 1C */ lwz r0, 0x1c(r28)
/* 80350AB0 0034DA10 90 05 00 1C */ stw r0, 0x1c(r5)
/* 80350AB4 0034DA14 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 80350AB8 0034DA18 98 05 00 20 */ stb r0, 0x20(r5)
lbl_80350ABC:
/* 80350ABC 0034DA1C 80 1E 00 04 */ lwz r0, 4(r30)
/* 80350AC0 0034DA20 7C 1F 00 40 */ cmplw r31, r0
/* 80350AC4 0034DA24 40 82 00 08 */ bne lbl_80350ACC
/* 80350AC8 0034DA28 90 7E 00 04 */ stw r3, 4(r30)
lbl_80350ACC:
/* 80350ACC 0034DA2C 80 83 00 00 */ lwz r4, 0(r3)
/* 80350AD0 0034DA30 90 64 00 04 */ stw r3, 4(r4)
/* 80350AD4 0034DA34 80 83 00 04 */ lwz r4, 4(r3)
/* 80350AD8 0034DA38 90 64 00 00 */ stw r3, 0(r4)
/* 80350ADC 0034DA3C 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 80350AE0 0034DA40 38 04 00 01 */ addi r0, r4, 1
/* 80350AE4 0034DA44 90 1E 00 14 */ stw r0, 0x14(r30)
/* 80350AE8 0034DA48 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80350AEC 0034DA4C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80350AF0 0034DA50 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80350AF4 0034DA54 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80350AF8 0034DA58 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80350AFC 0034DA5C 7C 08 03 A6 */ mtlr r0
/* 80350B00 0034DA60 38 21 00 20 */ addi r1, r1, 0x20
/* 80350B04 0034DA64 4E 80 00 20 */ blr
.global GetNumBlocksAvailable__16CMediumAllocPoolFv
GetNumBlocksAvailable__16CMediumAllocPoolFv:
/* 80350B08 0034DA68 80 83 00 04 */ lwz r4, 4(r3)
/* 80350B0C 0034DA6C 38 A0 00 00 */ li r5, 0
/* 80350B10 0034DA70 80 63 00 08 */ lwz r3, 8(r3)
/* 80350B14 0034DA74 48 00 00 10 */ b lbl_80350B24
lbl_80350B18:
/* 80350B18 0034DA78 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 80350B1C 0034DA7C 80 84 00 04 */ lwz r4, 4(r4)
/* 80350B20 0034DA80 7C A5 02 14 */ add r5, r5, r0
lbl_80350B24:
/* 80350B24 0034DA84 7C 04 18 40 */ cmplw r4, r3
/* 80350B28 0034DA88 40 82 FF F0 */ bne lbl_80350B18
/* 80350B2C 0034DA8C 7C A3 2B 78 */ mr r3, r5
/* 80350B30 0034DA90 4E 80 00 20 */ blr
.global GetTotalEntries__16CMediumAllocPoolFv
GetTotalEntries__16CMediumAllocPoolFv:
/* 80350B34 0034DA94 80 83 00 04 */ lwz r4, 4(r3)
/* 80350B38 0034DA98 38 A0 00 00 */ li r5, 0
/* 80350B3C 0034DA9C 80 63 00 08 */ lwz r3, 8(r3)
/* 80350B40 0034DAA0 48 00 00 10 */ b lbl_80350B50
lbl_80350B44:
/* 80350B44 0034DAA4 80 04 00 24 */ lwz r0, 0x24(r4)
/* 80350B48 0034DAA8 80 84 00 04 */ lwz r4, 4(r4)
/* 80350B4C 0034DAAC 7C A5 02 14 */ add r5, r5, r0
lbl_80350B50:
/* 80350B50 0034DAB0 7C 04 18 40 */ cmplw r4, r3
/* 80350B54 0034DAB4 40 82 FF F0 */ bne lbl_80350B44
/* 80350B58 0034DAB8 7C A3 2B 78 */ mr r3, r5
/* 80350B5C 0034DABC 4E 80 00 20 */ blr
.global GetNumAllocs__16CMediumAllocPoolFv
GetNumAllocs__16CMediumAllocPoolFv:
/* 80350B60 0034DAC0 80 83 00 04 */ lwz r4, 4(r3)
/* 80350B64 0034DAC4 38 A0 00 00 */ li r5, 0
/* 80350B68 0034DAC8 80 63 00 08 */ lwz r3, 8(r3)
/* 80350B6C 0034DACC 48 00 00 10 */ b lbl_80350B7C
lbl_80350B70:
/* 80350B70 0034DAD0 80 04 00 20 */ lwz r0, 0x20(r4)
/* 80350B74 0034DAD4 80 84 00 04 */ lwz r4, 4(r4)
/* 80350B78 0034DAD8 7C A5 02 14 */ add r5, r5, r0
lbl_80350B7C:
/* 80350B7C 0034DADC 7C 04 18 40 */ cmplw r4, r3
/* 80350B80 0034DAE0 40 82 FF F0 */ bne lbl_80350B70
/* 80350B84 0034DAE4 7C A3 2B 78 */ mr r3, r5
/* 80350B88 0034DAE8 4E 80 00 20 */ blr
.global Free__16CMediumAllocPoolFPCv
Free__16CMediumAllocPoolFPCv:
/* 80350B8C 0034DAEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80350B90 0034DAF0 7C 08 02 A6 */ mflr r0
/* 80350B94 0034DAF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80350B98 0034DAF8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80350B9C 0034DAFC 93 C1 00 08 */ stw r30, 8(r1)
/* 80350BA0 0034DB00 7C 7E 1B 78 */ mr r30, r3
/* 80350BA4 0034DB04 83 E3 00 04 */ lwz r31, 4(r3)
/* 80350BA8 0034DB08 80 C3 00 08 */ lwz r6, 8(r3)
/* 80350BAC 0034DB0C 48 00 00 68 */ b lbl_80350C14
lbl_80350BB0:
/* 80350BB0 0034DB10 38 7F 00 08 */ addi r3, r31, 8
/* 80350BB4 0034DB14 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 80350BB8 0034DB18 80 1F 00 24 */ lwz r0, 0x24(r31)
/* 80350BBC 0034DB1C 7C A5 20 50 */ subf r5, r5, r4
/* 80350BC0 0034DB20 54 00 28 34 */ slwi r0, r0, 5
/* 80350BC4 0034DB24 7C 05 00 40 */ cmplw r5, r0
/* 80350BC8 0034DB28 40 80 00 48 */ bge lbl_80350C10
/* 80350BCC 0034DB2C 4B FF FA 41 */ bl Free__18SMediumAllocPuddleFCPv
/* 80350BD0 0034DB30 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 80350BD4 0034DB34 28 00 00 00 */ cmplwi r0, 0
/* 80350BD8 0034DB38 40 82 00 30 */ bne lbl_80350C08
/* 80350BDC 0034DB3C 88 1F 00 28 */ lbz r0, 0x28(r31)
/* 80350BE0 0034DB40 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80350BE4 0034DB44 41 82 00 24 */ beq lbl_80350C08
/* 80350BE8 0034DB48 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 80350BEC 0034DB4C 7C 00 F8 40 */ cmplw r0, r31
/* 80350BF0 0034DB50 40 82 00 0C */ bne lbl_80350BFC
/* 80350BF4 0034DB54 80 1E 00 04 */ lwz r0, 4(r30)
/* 80350BF8 0034DB58 90 1E 00 18 */ stw r0, 0x18(r30)
lbl_80350BFC:
/* 80350BFC 0034DB5C 7F C3 F3 78 */ mr r3, r30
/* 80350C00 0034DB60 7F E4 FB 78 */ mr r4, r31
/* 80350C04 0034DB64 48 00 01 8D */ bl "erase__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iteratorRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iterator"
lbl_80350C08:
/* 80350C08 0034DB68 38 60 00 02 */ li r3, 2
/* 80350C0C 0034DB6C 48 00 00 14 */ b lbl_80350C20
lbl_80350C10:
/* 80350C10 0034DB70 83 FF 00 04 */ lwz r31, 4(r31)
lbl_80350C14:
/* 80350C14 0034DB74 7C 1F 30 40 */ cmplw r31, r6
/* 80350C18 0034DB78 40 82 FF 98 */ bne lbl_80350BB0
/* 80350C1C 0034DB7C 38 60 00 01 */ li r3, 1
lbl_80350C20:
/* 80350C20 0034DB80 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80350C24 0034DB84 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80350C28 0034DB88 83 C1 00 08 */ lwz r30, 8(r1)
/* 80350C2C 0034DB8C 7C 08 03 A6 */ mtlr r0
/* 80350C30 0034DB90 38 21 00 10 */ addi r1, r1, 0x10
/* 80350C34 0034DB94 4E 80 00 20 */ blr
.global Alloc__16CMediumAllocPoolFUi
Alloc__16CMediumAllocPoolFUi:
/* 80350C38 0034DB98 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80350C3C 0034DB9C 7C 08 02 A6 */ mflr r0
/* 80350C40 0034DBA0 28 04 00 20 */ cmplwi r4, 0x20
/* 80350C44 0034DBA4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80350C48 0034DBA8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80350C4C 0034DBAC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80350C50 0034DBB0 3B C0 00 01 */ li r30, 1
/* 80350C54 0034DBB4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80350C58 0034DBB8 7C 7D 1B 78 */ mr r29, r3
/* 80350C5C 0034DBBC 80 63 00 18 */ lwz r3, 0x18(r3)
/* 80350C60 0034DBC0 38 63 00 08 */ addi r3, r3, 8
/* 80350C64 0034DBC4 41 80 00 0C */ blt lbl_80350C70
/* 80350C68 0034DBC8 38 04 00 1F */ addi r0, r4, 0x1f
/* 80350C6C 0034DBCC 54 1E D9 7E */ srwi r30, r0, 5
lbl_80350C70:
/* 80350C70 0034DBD0 7F C4 F3 78 */ mr r4, r30
/* 80350C74 0034DBD4 4B FF FB B5 */ bl FindFree__16CMediumAllocPoolFi
/* 80350C78 0034DBD8 28 03 00 00 */ cmplwi r3, 0
/* 80350C7C 0034DBDC 40 82 00 44 */ bne lbl_80350CC0
/* 80350C80 0034DBE0 83 FD 00 04 */ lwz r31, 4(r29)
/* 80350C84 0034DBE4 48 00 00 30 */ b lbl_80350CB4
lbl_80350C88:
/* 80350C88 0034DBE8 80 1D 00 18 */ lwz r0, 0x18(r29)
/* 80350C8C 0034DBEC 7C 1F 00 40 */ cmplw r31, r0
/* 80350C90 0034DBF0 41 82 00 20 */ beq lbl_80350CB0
/* 80350C94 0034DBF4 7F C4 F3 78 */ mr r4, r30
/* 80350C98 0034DBF8 38 7F 00 08 */ addi r3, r31, 8
/* 80350C9C 0034DBFC 4B FF FB 8D */ bl FindFree__16CMediumAllocPoolFi
/* 80350CA0 0034DC00 28 03 00 00 */ cmplwi r3, 0
/* 80350CA4 0034DC04 41 82 00 0C */ beq lbl_80350CB0
/* 80350CA8 0034DC08 93 FD 00 18 */ stw r31, 0x18(r29)
/* 80350CAC 0034DC0C 48 00 00 14 */ b lbl_80350CC0
lbl_80350CB0:
/* 80350CB0 0034DC10 83 FF 00 04 */ lwz r31, 4(r31)
lbl_80350CB4:
/* 80350CB4 0034DC14 80 1D 00 08 */ lwz r0, 8(r29)
/* 80350CB8 0034DC18 7C 1F 00 40 */ cmplw r31, r0
/* 80350CBC 0034DC1C 40 82 FF CC */ bne lbl_80350C88
lbl_80350CC0:
/* 80350CC0 0034DC20 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80350CC4 0034DC24 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80350CC8 0034DC28 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80350CCC 0034DC2C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80350CD0 0034DC30 7C 08 03 A6 */ mtlr r0
/* 80350CD4 0034DC34 38 21 00 20 */ addi r1, r1, 0x20
/* 80350CD8 0034DC38 4E 80 00 20 */ blr
.global HasPuddles__16CMediumAllocPoolCFv
HasPuddles__16CMediumAllocPoolCFv:
/* 80350CDC 0034DC3C 80 63 00 14 */ lwz r3, 0x14(r3)
/* 80350CE0 0034DC40 7C 03 00 D0 */ neg r0, r3
/* 80350CE4 0034DC44 7C 00 1B 78 */ or r0, r0, r3
/* 80350CE8 0034DC48 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80350CEC 0034DC4C 4E 80 00 20 */ blr
.global ClearPuddles__16CMediumAllocPoolFv
ClearPuddles__16CMediumAllocPoolFv:
/* 80350CF0 0034DC50 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80350CF4 0034DC54 7C 08 02 A6 */ mflr r0
/* 80350CF8 0034DC58 90 01 00 14 */ stw r0, 0x14(r1)
/* 80350CFC 0034DC5C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80350D00 0034DC60 93 C1 00 08 */ stw r30, 8(r1)
/* 80350D04 0034DC64 7C 7E 1B 78 */ mr r30, r3
/* 80350D08 0034DC68 80 03 00 08 */ lwz r0, 8(r3)
/* 80350D0C 0034DC6C 90 03 00 18 */ stw r0, 0x18(r3)
/* 80350D10 0034DC70 80 83 00 04 */ lwz r4, 4(r3)
/* 80350D14 0034DC74 83 E3 00 08 */ lwz r31, 8(r3)
/* 80350D18 0034DC78 7C 83 23 78 */ mr r3, r4
/* 80350D1C 0034DC7C 48 00 00 08 */ b lbl_80350D24
lbl_80350D20:
/* 80350D20 0034DC80 80 63 00 04 */ lwz r3, 4(r3)
lbl_80350D24:
/* 80350D24 0034DC84 7C 03 F8 40 */ cmplw r3, r31
/* 80350D28 0034DC88 40 82 FF F8 */ bne lbl_80350D20
/* 80350D2C 0034DC8C 48 00 00 10 */ b lbl_80350D3C
lbl_80350D30:
/* 80350D30 0034DC90 7F C3 F3 78 */ mr r3, r30
/* 80350D34 0034DC94 48 00 00 5D */ bl "erase__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iteratorRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iterator"
/* 80350D38 0034DC98 7C 64 1B 78 */ mr r4, r3
lbl_80350D3C:
/* 80350D3C 0034DC9C 7C 04 F8 40 */ cmplw r4, r31
/* 80350D40 0034DCA0 40 82 FF F0 */ bne lbl_80350D30
/* 80350D44 0034DCA4 38 00 00 00 */ li r0, 0
/* 80350D48 0034DCA8 90 0D AA 18 */ stw r0, gMediumAllocPtr__16CMediumAllocPool@sda21(r13)
/* 80350D4C 0034DCAC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80350D50 0034DCB0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80350D54 0034DCB4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80350D58 0034DCB8 7C 08 03 A6 */ mtlr r0
/* 80350D5C 0034DCBC 38 21 00 10 */ addi r1, r1, 0x10
/* 80350D60 0034DCC0 4E 80 00 20 */ blr
.global __ct__16CMediumAllocPoolFv
__ct__16CMediumAllocPoolFv:
/* 80350D64 0034DCC4 38 83 00 0C */ addi r4, r3, 0xc
/* 80350D68 0034DCC8 38 00 00 00 */ li r0, 0
/* 80350D6C 0034DCCC 90 83 00 04 */ stw r4, 4(r3)
/* 80350D70 0034DCD0 90 83 00 08 */ stw r4, 8(r3)
/* 80350D74 0034DCD4 90 83 00 0C */ stw r4, 0xc(r3)
/* 80350D78 0034DCD8 90 83 00 10 */ stw r4, 0x10(r3)
/* 80350D7C 0034DCDC 90 03 00 14 */ stw r0, 0x14(r3)
/* 80350D80 0034DCE0 80 03 00 04 */ lwz r0, 4(r3)
/* 80350D84 0034DCE4 90 03 00 18 */ stw r0, 0x18(r3)
/* 80350D88 0034DCE8 90 6D AA 18 */ stw r3, gMediumAllocPtr__16CMediumAllocPool@sda21(r13)
/* 80350D8C 0034DCEC 4E 80 00 20 */ blr
.global "erase__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iteratorRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iterator"
"erase__Q24rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>FRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iteratorRCQ34rstl53list<18SMediumAllocPuddle,Q24rstl17rmemory_allocator>8iterator":
/* 80350D90 0034DCF0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80350D94 0034DCF4 7C 08 02 A6 */ mflr r0
/* 80350D98 0034DCF8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80350D9C 0034DCFC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80350DA0 0034DD00 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80350DA4 0034DD04 7C 9E 23 78 */ mr r30, r4
/* 80350DA8 0034DD08 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80350DAC 0034DD0C 7C 7D 1B 78 */ mr r29, r3
/* 80350DB0 0034DD10 80 03 00 04 */ lwz r0, 4(r3)
/* 80350DB4 0034DD14 83 E4 00 04 */ lwz r31, 4(r4)
/* 80350DB8 0034DD18 7C 1E 00 40 */ cmplw r30, r0
/* 80350DBC 0034DD1C 40 82 00 08 */ bne lbl_80350DC4
/* 80350DC0 0034DD20 93 FD 00 04 */ stw r31, 4(r29)
lbl_80350DC4:
/* 80350DC4 0034DD24 80 1E 00 04 */ lwz r0, 4(r30)
/* 80350DC8 0034DD28 38 7E 00 08 */ addi r3, r30, 8
/* 80350DCC 0034DD2C 80 BE 00 00 */ lwz r5, 0(r30)
/* 80350DD0 0034DD30 38 80 FF FF */ li r4, -1
/* 80350DD4 0034DD34 90 05 00 04 */ stw r0, 4(r5)
/* 80350DD8 0034DD38 80 1E 00 00 */ lwz r0, 0(r30)
/* 80350DDC 0034DD3C 80 BE 00 04 */ lwz r5, 4(r30)
/* 80350DE0 0034DD40 90 05 00 00 */ stw r0, 0(r5)
/* 80350DE4 0034DD44 4B FF FA C5 */ bl __dt__18SMediumAllocPuddleFv
/* 80350DE8 0034DD48 28 1E 00 00 */ cmplwi r30, 0
/* 80350DEC 0034DD4C 41 82 00 0C */ beq lbl_80350DF8
/* 80350DF0 0034DD50 7F C3 F3 78 */ mr r3, r30
/* 80350DF4 0034DD54 4B FC 4B 3D */ bl Free__7CMemoryFPCv
lbl_80350DF8:
/* 80350DF8 0034DD58 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 80350DFC 0034DD5C 7F E3 FB 78 */ mr r3, r31
/* 80350E00 0034DD60 38 04 FF FF */ addi r0, r4, -1
/* 80350E04 0034DD64 90 1D 00 14 */ stw r0, 0x14(r29)
/* 80350E08 0034DD68 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80350E0C 0034DD6C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80350E10 0034DD70 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80350E14 0034DD74 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80350E18 0034DD78 7C 08 03 A6 */ mtlr r0
/* 80350E1C 0034DD7C 38 21 00 20 */ addi r1, r1, 0x20
/* 80350E20 0034DD80 4E 80 00 20 */ blr
.section .rodata
.balign 8
.global lbl_803D8240
lbl_803D8240:
# ROM: 0x3D5240
.asciz "??(??)"
.balign 4