prime/asm/Kyoto/Alloc/CGameAllocator.s

1608 lines
78 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.global lbl_803EF6D8
lbl_803EF6D8:
# ROM: 0x3EC6D8
.4byte 0
.4byte 0
.4byte __dt__14CGameAllocatorFv
.4byte Initialize__14CGameAllocatorFR10COsContext
.4byte Shutdown__14CGameAllocatorFv
.4byte Alloc__14CGameAllocatorFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
.4byte Free__14CGameAllocatorFPCv
.4byte ReleaseAll__14CGameAllocatorFv
.4byte AllocSecondary__14CGameAllocatorFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
.4byte FreeSecondary__14CGameAllocatorFPCv
.4byte ReleaseAllSecondary__14CGameAllocatorFv
.4byte SetOutOfMemoryCallback__14CGameAllocatorFPFPCvUi_CbPCv
.4byte EnumAllocations__14CGameAllocatorCFPFRCQ210IAllocator10SAllocInfoPCv_CbPCvb
.4byte GetAllocInfo__14CGameAllocatorCFPCv
.4byte OffsetFakeStatics__14CGameAllocatorFi
.4byte GetMetrics__14CGameAllocatorCFv
.section .sbss, "wa"
.global lbl_805A95D8
lbl_805A95D8:
.skip 0x8
.global lbl_805A95E0
lbl_805A95E0:
.skip 0x4
.global lbl_805A95E4
lbl_805A95E4:
.skip 0x4
.global lbl_805A95E8
lbl_805A95E8:
.skip 0x1
.global lbl_805A95E9
lbl_805A95E9:
.skip 0x1
.global lbl_805A95EA
lbl_805A95EA:
.skip 0x6
.section .text, "ax"
.global OffsetFakeStatics__14CGameAllocatorFi
OffsetFakeStatics__14CGameAllocatorFi:
/* 80351138 0034E098 80 03 00 B8 */ lwz r0, 0xb8(r3)
/* 8035113C 0034E09C 7C 00 22 14 */ add r0, r0, r4
/* 80351140 0034E0A0 90 03 00 B8 */ stw r0, 0xb8(r3)
/* 80351144 0034E0A4 4E 80 00 20 */ blr
.global GetLargestFreeChunk__14CGameAllocatorCFv
GetLargestFreeChunk__14CGameAllocatorCFv:
/* 80351148 0034E0A8 80 83 00 0C */ lwz r4, 0xc(r3)
/* 8035114C 0034E0AC 38 60 00 00 */ li r3, 0
/* 80351150 0034E0B0 48 00 00 28 */ b lbl_80351178
lbl_80351154:
/* 80351154 0034E0B4 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80351158 0034E0B8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8035115C 0034E0BC 40 82 00 14 */ bne lbl_80351170
/* 80351160 0034E0C0 80 04 00 04 */ lwz r0, 4(r4)
/* 80351164 0034E0C4 7C 00 18 40 */ cmplw r0, r3
/* 80351168 0034E0C8 40 81 00 08 */ ble lbl_80351170
/* 8035116C 0034E0CC 7C 03 03 78 */ mr r3, r0
lbl_80351170:
/* 80351170 0034E0D0 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80351174 0034E0D4 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
lbl_80351178:
/* 80351178 0034E0D8 28 04 00 00 */ cmplwi r4, 0
/* 8035117C 0034E0DC 40 82 FF D8 */ bne lbl_80351154
/* 80351180 0034E0E0 4E 80 00 20 */ blr
.global DumpAllocations__14CGameAllocatorCFv
DumpAllocations__14CGameAllocatorCFv:
/* 80351184 0034E0E4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351188 0034E0E8 7C 08 02 A6 */ mflr r0
/* 8035118C 0034E0EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351190 0034E0F0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351194 0034E0F4 93 C1 00 08 */ stw r30, 8(r1)
/* 80351198 0034E0F8 7C 7E 1B 78 */ mr r30, r3
/* 8035119C 0034E0FC 4B FF FF AD */ bl GetLargestFreeChunk__14CGameAllocatorCFv
/* 803511A0 0034E100 83 DE 00 0C */ lwz r30, 0xc(r30)
/* 803511A4 0034E104 3B E0 00 00 */ li r31, 0
/* 803511A8 0034E108 48 00 00 30 */ b lbl_803511D8
lbl_803511AC:
/* 803511AC 0034E10C 3B FF 00 01 */ addi r31, r31, 1
/* 803511B0 0034E110 57 E0 F0 02 */ slwi r0, r31, 0x1e
/* 803511B4 0034E114 57 E3 0F FE */ srwi r3, r31, 0x1f
/* 803511B8 0034E118 7C 03 00 50 */ subf r0, r3, r0
/* 803511BC 0034E11C 54 00 10 3E */ rotlwi r0, r0, 2
/* 803511C0 0034E120 7C 00 1A 15 */ add. r0, r0, r3
/* 803511C4 0034E124 40 82 00 0C */ bne lbl_803511D0
/* 803511C8 0034E128 C0 22 CC 98 */ lfs f1, lbl_805AE9B8@sda21(r2)
/* 803511CC 0034E12C 4B F8 50 A1 */ bl Wait__10CStopwatchFf
lbl_803511D0:
/* 803511D0 0034E130 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 803511D4 0034E134 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
lbl_803511D8:
/* 803511D8 0034E138 28 1E 00 00 */ cmplwi r30, 0
/* 803511DC 0034E13C 40 82 FF D0 */ bne lbl_803511AC
/* 803511E0 0034E140 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803511E4 0034E144 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803511E8 0034E148 83 C1 00 08 */ lwz r30, 8(r1)
/* 803511EC 0034E14C 7C 08 03 A6 */ mtlr r0
/* 803511F0 0034E150 38 21 00 10 */ addi r1, r1, 0x10
/* 803511F4 0034E154 4E 80 00 20 */ blr
.global RemoveFreeEntryFromFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
RemoveFreeEntryFromFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo:
/* 803511F8 0034E158 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803511FC 0034E15C 7C 08 02 A6 */ mflr r0
/* 80351200 0034E160 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351204 0034E164 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351208 0034E168 7C 9F 23 78 */ mr r31, r4
/* 8035120C 0034E16C 93 C1 00 08 */ stw r30, 8(r1)
/* 80351210 0034E170 7C 7E 1B 78 */ mr r30, r3
/* 80351214 0034E174 80 64 00 04 */ lwz r3, 4(r4)
/* 80351218 0034E178 48 00 00 E5 */ bl GetFreeBinEntryForSize__14CGameAllocatorFUi
/* 8035121C 0034E17C 54 60 10 3A */ slwi r0, r3, 2
/* 80351220 0034E180 38 80 00 00 */ li r4, 0
/* 80351224 0034E184 7C 7E 02 14 */ add r3, r30, r0
/* 80351228 0034E188 80 A3 00 14 */ lwz r5, 0x14(r3)
/* 8035122C 0034E18C 48 00 00 50 */ b lbl_8035127C
lbl_80351230:
/* 80351230 0034E190 7C 05 F8 40 */ cmplw r5, r31
/* 80351234 0034E194 40 82 00 3C */ bne lbl_80351270
/* 80351238 0034E198 28 04 00 00 */ cmplwi r4, 0
/* 8035123C 0034E19C 40 82 00 14 */ bne lbl_80351250
/* 80351240 0034E1A0 80 05 00 18 */ lwz r0, 0x18(r5)
/* 80351244 0034E1A4 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
/* 80351248 0034E1A8 90 03 00 14 */ stw r0, 0x14(r3)
/* 8035124C 0034E1AC 48 00 00 38 */ b lbl_80351284
lbl_80351250:
/* 80351250 0034E1B0 80 05 00 18 */ lwz r0, 0x18(r5)
/* 80351254 0034E1B4 80 64 00 18 */ lwz r3, 0x18(r4)
/* 80351258 0034E1B8 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
/* 8035125C 0034E1BC 90 04 00 18 */ stw r0, 0x18(r4)
/* 80351260 0034E1C0 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80351264 0034E1C4 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 80351268 0034E1C8 90 04 00 18 */ stw r0, 0x18(r4)
/* 8035126C 0034E1CC 48 00 00 18 */ b lbl_80351284
lbl_80351270:
/* 80351270 0034E1D0 80 05 00 18 */ lwz r0, 0x18(r5)
/* 80351274 0034E1D4 7C A4 2B 78 */ mr r4, r5
/* 80351278 0034E1D8 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
lbl_8035127C:
/* 8035127C 0034E1DC 28 05 00 00 */ cmplwi r5, 0
/* 80351280 0034E1E0 40 82 FF B0 */ bne lbl_80351230
lbl_80351284:
/* 80351284 0034E1E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351288 0034E1E8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8035128C 0034E1EC 83 C1 00 08 */ lwz r30, 8(r1)
/* 80351290 0034E1F0 7C 08 03 A6 */ mtlr r0
/* 80351294 0034E1F4 38 21 00 10 */ addi r1, r1, 0x10
/* 80351298 0034E1F8 4E 80 00 20 */ blr
.global AddFreeEntryToFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
AddFreeEntryToFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo:
/* 8035129C 0034E1FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803512A0 0034E200 7C 08 02 A6 */ mflr r0
/* 803512A4 0034E204 90 01 00 14 */ stw r0, 0x14(r1)
/* 803512A8 0034E208 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803512AC 0034E20C 7C 9F 23 78 */ mr r31, r4
/* 803512B0 0034E210 93 C1 00 08 */ stw r30, 8(r1)
/* 803512B4 0034E214 7C 7E 1B 78 */ mr r30, r3
/* 803512B8 0034E218 80 64 00 04 */ lwz r3, 4(r4)
/* 803512BC 0034E21C 48 00 00 41 */ bl GetFreeBinEntryForSize__14CGameAllocatorFUi
/* 803512C0 0034E220 54 60 10 3A */ slwi r0, r3, 2
/* 803512C4 0034E224 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 803512C8 0034E228 7C 9E 02 14 */ add r4, r30, r0
/* 803512CC 0034E22C 80 04 00 14 */ lwz r0, 0x14(r4)
/* 803512D0 0034E230 90 1F 00 18 */ stw r0, 0x18(r31)
/* 803512D4 0034E234 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 803512D8 0034E238 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 803512DC 0034E23C 90 1F 00 18 */ stw r0, 0x18(r31)
/* 803512E0 0034E240 93 E4 00 14 */ stw r31, 0x14(r4)
/* 803512E4 0034E244 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803512E8 0034E248 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803512EC 0034E24C 83 C1 00 08 */ lwz r30, 8(r1)
/* 803512F0 0034E250 7C 08 03 A6 */ mtlr r0
/* 803512F4 0034E254 38 21 00 10 */ addi r1, r1, 0x10
/* 803512F8 0034E258 4E 80 00 20 */ blr
.global GetFreeBinEntryForSize__14CGameAllocatorFUi
GetFreeBinEntryForSize__14CGameAllocatorFUi:
/* 803512FC 0034E25C 38 80 00 20 */ li r4, 0x20
/* 80351300 0034E260 38 A0 00 00 */ li r5, 0
/* 80351304 0034E264 3C 00 00 20 */ lis r0, 0x20
/* 80351308 0034E268 48 00 00 1C */ b lbl_80351324
lbl_8035130C:
/* 8035130C 0034E26C 7C 03 20 40 */ cmplw r3, r4
/* 80351310 0034E270 40 80 00 0C */ bge lbl_8035131C
/* 80351314 0034E274 7C A3 2B 78 */ mr r3, r5
/* 80351318 0034E278 4E 80 00 20 */ blr
lbl_8035131C:
/* 8035131C 0034E27C 54 84 08 3C */ slwi r4, r4, 1
/* 80351320 0034E280 38 A5 00 01 */ addi r5, r5, 1
lbl_80351324:
/* 80351324 0034E284 7C 04 00 40 */ cmplw r4, r0
/* 80351328 0034E288 41 80 FF E4 */ blt lbl_8035130C
/* 8035132C 0034E28C 38 60 00 0F */ li r3, 0xf
/* 80351330 0034E290 4E 80 00 20 */ blr
.global EnumAllocations__14CGameAllocatorCFPFRCQ210IAllocator10SAllocInfoPCv_CbPCvb
EnumAllocations__14CGameAllocatorCFPFRCQ210IAllocator10SAllocInfoPCv_CbPCvb:
/* 80351334 0034E294 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80351338 0034E298 7C 08 02 A6 */ mflr r0
/* 8035133C 0034E29C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80351340 0034E2A0 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80351344 0034E2A4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80351348 0034E2A8 3B C0 00 00 */ li r30, 0
/* 8035134C 0034E2AC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80351350 0034E2B0 7C BD 2B 78 */ mr r29, r5
/* 80351354 0034E2B4 93 81 00 20 */ stw r28, 0x20(r1)
/* 80351358 0034E2B8 7C 9C 23 78 */ mr r28, r4
/* 8035135C 0034E2BC 81 43 00 0C */ lwz r10, 0xc(r3)
/* 80351360 0034E2C0 48 00 00 88 */ b lbl_803513E8
lbl_80351364:
/* 80351364 0034E2C4 80 6A 00 1C */ lwz r3, 0x1c(r10)
/* 80351368 0034E2C8 3C 03 15 16 */ addis r0, r3, 0x1516
/* 8035136C 0034E2CC 28 00 EA EA */ cmplwi r0, 0xeaea
/* 80351370 0034E2D0 41 82 00 0C */ beq lbl_8035137C
/* 80351374 0034E2D4 38 60 FF FF */ li r3, -1
/* 80351378 0034E2D8 48 00 00 7C */ b lbl_803513F4
lbl_8035137C:
/* 8035137C 0034E2DC 80 6A 00 00 */ lwz r3, 0(r10)
/* 80351380 0034E2E0 3C 03 10 11 */ addis r0, r3, 0x1011
/* 80351384 0034E2E4 28 00 EF EF */ cmplwi r0, 0xefef
/* 80351388 0034E2E8 41 82 00 0C */ beq lbl_80351394
/* 8035138C 0034E2EC 38 60 FF FF */ li r3, -1
/* 80351390 0034E2F0 48 00 00 64 */ b lbl_803513F4
lbl_80351394:
/* 80351394 0034E2F4 80 6A 00 10 */ lwz r3, 0x10(r10)
/* 80351398 0034E2F8 7F 8C E3 78 */ mr r12, r28
/* 8035139C 0034E2FC 80 CA 00 14 */ lwz r6, 0x14(r10)
/* 803513A0 0034E300 38 00 00 00 */ li r0, 0
/* 803513A4 0034E304 81 2A 00 0C */ lwz r9, 0xc(r10)
/* 803513A8 0034E308 54 65 07 FE */ clrlwi r5, r3, 0x1f
/* 803513AC 0034E30C 81 0A 00 08 */ lwz r8, 8(r10)
/* 803513B0 0034E310 7F A4 EB 78 */ mr r4, r29
/* 803513B4 0034E314 80 EA 00 04 */ lwz r7, 4(r10)
/* 803513B8 0034E318 54 DF 00 34 */ rlwinm r31, r6, 0, 0, 0x1a
/* 803513BC 0034E31C 38 61 00 08 */ addi r3, r1, 8
/* 803513C0 0034E320 91 41 00 08 */ stw r10, 8(r1)
/* 803513C4 0034E324 90 E1 00 0C */ stw r7, 0xc(r1)
/* 803513C8 0034E328 98 A1 00 10 */ stb r5, 0x10(r1)
/* 803513CC 0034E32C 98 01 00 11 */ stb r0, 0x11(r1)
/* 803513D0 0034E330 91 01 00 14 */ stw r8, 0x14(r1)
/* 803513D4 0034E334 91 21 00 18 */ stw r9, 0x18(r1)
/* 803513D8 0034E338 7D 89 03 A6 */ mtctr r12
/* 803513DC 0034E33C 4E 80 04 21 */ bctrl
/* 803513E0 0034E340 7F EA FB 78 */ mr r10, r31
/* 803513E4 0034E344 3B DE 00 01 */ addi r30, r30, 1
lbl_803513E8:
/* 803513E8 0034E348 28 0A 00 00 */ cmplwi r10, 0
/* 803513EC 0034E34C 40 82 FF 78 */ bne lbl_80351364
/* 803513F0 0034E350 7F C3 F3 78 */ mr r3, r30
lbl_803513F4:
/* 803513F4 0034E354 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803513F8 0034E358 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803513FC 0034E35C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80351400 0034E360 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80351404 0034E364 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80351408 0034E368 7C 08 03 A6 */ mtlr r0
/* 8035140C 0034E36C 38 21 00 30 */ addi r1, r1, 0x30
/* 80351410 0034E370 4E 80 00 20 */ blr
.global GetMetrics__14CGameAllocatorCFv
GetMetrics__14CGameAllocatorCFv:
/* 80351414 0034E374 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 80351418 0034E378 7C 08 02 A6 */ mflr r0
/* 8035141C 0034E37C 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 80351420 0034E380 BF 41 00 A8 */ stmw r26, 0xa8(r1)
/* 80351424 0034E384 7C 7D 1B 78 */ mr r29, r3
/* 80351428 0034E388 7C 9E 23 78 */ mr r30, r4
/* 8035142C 0034E38C 80 64 00 74 */ lwz r3, 0x74(r4)
/* 80351430 0034E390 28 03 00 00 */ cmplwi r3, 0
/* 80351434 0034E394 41 82 00 10 */ beq lbl_80351444
/* 80351438 0034E398 4B FF F6 FD */ bl GetTotalEntries__16CMediumAllocPoolFv
/* 8035143C 0034E39C 54 7F 28 34 */ slwi r31, r3, 5
/* 80351440 0034E3A0 48 00 00 08 */ b lbl_80351448
lbl_80351444:
/* 80351444 0034E3A4 3B E0 00 00 */ li r31, 0
lbl_80351448:
/* 80351448 0034E3A8 80 7E 00 74 */ lwz r3, 0x74(r30)
/* 8035144C 0034E3AC 28 03 00 00 */ cmplwi r3, 0
/* 80351450 0034E3B0 41 82 00 10 */ beq lbl_80351460
/* 80351454 0034E3B4 4B FF F6 B5 */ bl GetNumBlocksAvailable__16CMediumAllocPoolFv
/* 80351458 0034E3B8 7C 7B 1B 78 */ mr r27, r3
/* 8035145C 0034E3BC 48 00 00 08 */ b lbl_80351464
lbl_80351460:
/* 80351460 0034E3C0 3B 60 00 00 */ li r27, 0
lbl_80351464:
/* 80351464 0034E3C4 83 5E 00 74 */ lwz r26, 0x74(r30)
/* 80351468 0034E3C8 28 1A 00 00 */ cmplwi r26, 0
/* 8035146C 0034E3CC 41 82 00 20 */ beq lbl_8035148C
/* 80351470 0034E3D0 7F 43 D3 78 */ mr r3, r26
/* 80351474 0034E3D4 4B FF F6 C1 */ bl GetTotalEntries__16CMediumAllocPoolFv
/* 80351478 0034E3D8 7C 7C 1B 78 */ mr r28, r3
/* 8035147C 0034E3DC 7F 43 D3 78 */ mr r3, r26
/* 80351480 0034E3E0 4B FF F6 89 */ bl GetNumBlocksAvailable__16CMediumAllocPoolFv
/* 80351484 0034E3E4 7F 83 E0 50 */ subf r28, r3, r28
/* 80351488 0034E3E8 48 00 00 08 */ b lbl_80351490
lbl_8035148C:
/* 8035148C 0034E3EC 3B 80 00 00 */ li r28, 0
lbl_80351490:
/* 80351490 0034E3F0 80 7E 00 74 */ lwz r3, 0x74(r30)
/* 80351494 0034E3F4 28 03 00 00 */ cmplwi r3, 0
/* 80351498 0034E3F8 41 82 00 10 */ beq lbl_803514A8
/* 8035149C 0034E3FC 4B FF F6 C5 */ bl GetNumAllocs__16CMediumAllocPoolFv
/* 803514A0 0034E400 7C 64 1B 78 */ mr r4, r3
/* 803514A4 0034E404 48 00 00 08 */ b lbl_803514AC
lbl_803514A8:
/* 803514A8 0034E408 38 80 00 00 */ li r4, 0
lbl_803514AC:
/* 803514AC 0034E40C 80 BE 00 60 */ lwz r5, 0x60(r30)
/* 803514B0 0034E410 28 05 00 00 */ cmplwi r5, 0
/* 803514B4 0034E414 41 82 00 0C */ beq lbl_803514C0
/* 803514B8 0034E418 80 C5 00 18 */ lwz r6, 0x18(r5)
/* 803514BC 0034E41C 48 00 00 08 */ b lbl_803514C4
lbl_803514C0:
/* 803514C0 0034E420 38 C0 00 00 */ li r6, 0
lbl_803514C4:
/* 803514C4 0034E424 28 05 00 00 */ cmplwi r5, 0
/* 803514C8 0034E428 41 82 00 14 */ beq lbl_803514DC
/* 803514CC 0034E42C 80 65 00 18 */ lwz r3, 0x18(r5)
/* 803514D0 0034E430 80 05 00 08 */ lwz r0, 8(r5)
/* 803514D4 0034E434 7C E3 00 50 */ subf r7, r3, r0
/* 803514D8 0034E438 48 00 00 08 */ b lbl_803514E0
lbl_803514DC:
/* 803514DC 0034E43C 38 E0 00 00 */ li r7, 0
lbl_803514E0:
/* 803514E0 0034E440 28 05 00 00 */ cmplwi r5, 0
/* 803514E4 0034E444 41 82 00 0C */ beq lbl_803514F0
/* 803514E8 0034E448 81 05 00 1C */ lwz r8, 0x1c(r5)
/* 803514EC 0034E44C 48 00 00 08 */ b lbl_803514F4
lbl_803514F0:
/* 803514F0 0034E450 39 00 00 00 */ li r8, 0
lbl_803514F4:
/* 803514F4 0034E454 80 BE 00 80 */ lwz r5, 0x80(r30)
/* 803514F8 0034E458 38 61 00 48 */ addi r3, r1, 0x48
/* 803514FC 0034E45C 80 1E 00 98 */ lwz r0, 0x98(r30)
/* 80351500 0034E460 90 01 00 08 */ stw r0, 8(r1)
/* 80351504 0034E464 80 1E 00 9C */ lwz r0, 0x9c(r30)
/* 80351508 0034E468 90 01 00 0C */ stw r0, 0xc(r1)
/* 8035150C 0034E46C 80 1E 00 A0 */ lwz r0, 0xa0(r30)
/* 80351510 0034E470 90 01 00 10 */ stw r0, 0x10(r1)
/* 80351514 0034E474 80 1E 00 A4 */ lwz r0, 0xa4(r30)
/* 80351518 0034E478 90 01 00 14 */ stw r0, 0x14(r1)
/* 8035151C 0034E47C 91 01 00 18 */ stw r8, 0x18(r1)
/* 80351520 0034E480 90 E1 00 1C */ stw r7, 0x1c(r1)
/* 80351524 0034E484 90 C1 00 20 */ stw r6, 0x20(r1)
/* 80351528 0034E488 90 81 00 24 */ stw r4, 0x24(r1)
/* 8035152C 0034E48C 93 81 00 28 */ stw r28, 0x28(r1)
/* 80351530 0034E490 93 61 00 2C */ stw r27, 0x2c(r1)
/* 80351534 0034E494 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 80351538 0034E498 7C 00 28 50 */ subf r0, r0, r5
/* 8035153C 0034E49C 90 01 00 30 */ stw r0, 0x30(r1)
/* 80351540 0034E4A0 80 1E 00 B4 */ lwz r0, 0xb4(r30)
/* 80351544 0034E4A4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80351548 0034E4A8 80 1E 00 BC */ lwz r0, 0xbc(r30)
/* 8035154C 0034E4AC 90 01 00 38 */ stw r0, 0x38(r1)
/* 80351550 0034E4B0 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 80351554 0034E4B4 80 1E 00 B8 */ lwz r0, 0xb8(r30)
/* 80351558 0034E4B8 90 01 00 40 */ stw r0, 0x40(r1)
/* 8035155C 0034E4BC 80 9E 00 08 */ lwz r4, 8(r30)
/* 80351560 0034E4C0 80 DE 00 84 */ lwz r6, 0x84(r30)
/* 80351564 0034E4C4 80 FE 00 88 */ lwz r7, 0x88(r30)
/* 80351568 0034E4C8 81 1E 00 8C */ lwz r8, 0x8c(r30)
/* 8035156C 0034E4CC 81 3E 00 90 */ lwz r9, 0x90(r30)
/* 80351570 0034E4D0 81 5E 00 94 */ lwz r10, 0x94(r30)
/* 80351574 0034E4D4 4B FC 47 6D */ bl __ct__Q210IAllocator8SMetricsFUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUiUi
/* 80351578 0034E4D8 80 1E 00 80 */ lwz r0, 0x80(r30)
/* 8035157C 0034E4DC 7F A3 EB 78 */ mr r3, r29
/* 80351580 0034E4E0 38 81 00 48 */ addi r4, r1, 0x48
/* 80351584 0034E4E4 90 1E 00 B0 */ stw r0, 0xb0(r30)
/* 80351588 0034E4E8 4B D7 20 C5 */ bl __ct__Q210IAllocator8SMetricsFRCQ210IAllocator8SMetrics
/* 8035158C 0034E4EC BB 41 00 A8 */ lmw r26, 0xa8(r1)
/* 80351590 0034E4F0 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 80351594 0034E4F4 7C 08 03 A6 */ mtlr r0
/* 80351598 0034E4F8 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8035159C 0034E4FC 4E 80 00 20 */ blr
.global GetAllocInfo__14CGameAllocatorCFPCv
GetAllocInfo__14CGameAllocatorCFPCv:
/* 803515A0 0034E500 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803515A4 0034E504 7C 08 02 A6 */ mflr r0
/* 803515A8 0034E508 90 01 00 14 */ stw r0, 0x14(r1)
/* 803515AC 0034E50C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803515B0 0034E510 7C 7F 1B 78 */ mr r31, r3
/* 803515B4 0034E514 7C 83 23 78 */ mr r3, r4
/* 803515B8 0034E518 7C A4 2B 78 */ mr r4, r5
/* 803515BC 0034E51C 48 00 10 A5 */ bl GetMemInfoFromBlockPtr__14CGameAllocatorCFPCv
/* 803515C0 0034E520 80 83 00 10 */ lwz r4, 0x10(r3)
/* 803515C4 0034E524 38 00 00 00 */ li r0, 0
/* 803515C8 0034E528 80 E3 00 0C */ lwz r7, 0xc(r3)
/* 803515CC 0034E52C 80 C3 00 08 */ lwz r6, 8(r3)
/* 803515D0 0034E530 54 84 07 FE */ clrlwi r4, r4, 0x1f
/* 803515D4 0034E534 80 A3 00 04 */ lwz r5, 4(r3)
/* 803515D8 0034E538 90 7F 00 00 */ stw r3, 0(r31)
/* 803515DC 0034E53C 90 BF 00 04 */ stw r5, 4(r31)
/* 803515E0 0034E540 98 9F 00 08 */ stb r4, 8(r31)
/* 803515E4 0034E544 98 1F 00 09 */ stb r0, 9(r31)
/* 803515E8 0034E548 90 DF 00 0C */ stw r6, 0xc(r31)
/* 803515EC 0034E54C 90 FF 00 10 */ stw r7, 0x10(r31)
/* 803515F0 0034E550 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803515F4 0034E554 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803515F8 0034E558 7C 08 03 A6 */ mtlr r0
/* 803515FC 0034E55C 38 21 00 10 */ addi r1, r1, 0x10
/* 80351600 0034E560 4E 80 00 20 */ blr
.global SetOutOfMemoryCallback__14CGameAllocatorFPFPCvUi_CbPCv
SetOutOfMemoryCallback__14CGameAllocatorFPFPCvUi_CbPCv:
/* 80351604 0034E564 90 83 00 58 */ stw r4, 0x58(r3)
/* 80351608 0034E568 90 A3 00 5C */ stw r5, 0x5c(r3)
/* 8035160C 0034E56C 4E 80 00 20 */ blr
.global ReleaseAllSecondary__14CGameAllocatorFv
ReleaseAllSecondary__14CGameAllocatorFv:
/* 80351610 0034E570 4E 80 00 20 */ blr
.global FreeSecondary__14CGameAllocatorFPCv
FreeSecondary__14CGameAllocatorFPCv:
/* 80351614 0034E574 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351618 0034E578 7C 08 02 A6 */ mflr r0
/* 8035161C 0034E57C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351620 0034E580 81 83 00 00 */ lwz r12, 0(r3)
/* 80351624 0034E584 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80351628 0034E588 7D 89 03 A6 */ mtctr r12
/* 8035162C 0034E58C 4E 80 04 21 */ bctrl
/* 80351630 0034E590 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351634 0034E594 7C 08 03 A6 */ mtlr r0
/* 80351638 0034E598 38 21 00 10 */ addi r1, r1, 0x10
/* 8035163C 0034E59C 4E 80 00 20 */ blr
.global AllocSecondary__14CGameAllocatorFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
AllocSecondary__14CGameAllocatorFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack:
/* 80351640 0034E5A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351644 0034E5A4 7C 08 02 A6 */ mflr r0
/* 80351648 0034E5A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8035164C 0034E5AC 81 83 00 00 */ lwz r12, 0(r3)
/* 80351650 0034E5B0 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80351654 0034E5B4 7D 89 03 A6 */ mtctr r12
/* 80351658 0034E5B8 4E 80 04 21 */ bctrl
/* 8035165C 0034E5BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351660 0034E5C0 7C 08 03 A6 */ mtlr r0
/* 80351664 0034E5C4 38 21 00 10 */ addi r1, r1, 0x10
/* 80351668 0034E5C8 4E 80 00 20 */ blr
.global ReleaseAll__14CGameAllocatorFv
ReleaseAll__14CGameAllocatorFv:
/* 8035166C 0034E5CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351670 0034E5D0 7C 08 02 A6 */ mflr r0
/* 80351674 0034E5D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351678 0034E5D8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8035167C 0034E5DC 93 C1 00 08 */ stw r30, 8(r1)
/* 80351680 0034E5E0 7C 7E 1B 78 */ mr r30, r3
/* 80351684 0034E5E4 80 63 00 74 */ lwz r3, 0x74(r3)
/* 80351688 0034E5E8 28 03 00 00 */ cmplwi r3, 0
/* 8035168C 0034E5EC 41 82 00 1C */ beq lbl_803516A8
/* 80351690 0034E5F0 4B FF F6 61 */ bl ClearPuddles__16CMediumAllocPoolFv
/* 80351694 0034E5F4 80 9E 00 74 */ lwz r4, 0x74(r30)
/* 80351698 0034E5F8 7F C3 F3 78 */ mr r3, r30
/* 8035169C 0034E5FC 48 00 00 65 */ bl FreeNormalAllocation__14CGameAllocatorFPCv
/* 803516A0 0034E600 38 00 00 00 */ li r0, 0
/* 803516A4 0034E604 90 1E 00 74 */ stw r0, 0x74(r30)
lbl_803516A8:
/* 803516A8 0034E608 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 803516AC 0034E60C 48 00 00 28 */ b lbl_803516D4
lbl_803516B0:
/* 803516B0 0034E610 80 04 00 10 */ lwz r0, 0x10(r4)
/* 803516B4 0034E614 80 64 00 14 */ lwz r3, 0x14(r4)
/* 803516B8 0034E618 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803516BC 0034E61C 54 7F 00 34 */ rlwinm r31, r3, 0, 0, 0x1a
/* 803516C0 0034E620 41 82 00 10 */ beq lbl_803516D0
/* 803516C4 0034E624 7F C3 F3 78 */ mr r3, r30
/* 803516C8 0034E628 38 84 00 20 */ addi r4, r4, 0x20
/* 803516CC 0034E62C 48 00 00 35 */ bl FreeNormalAllocation__14CGameAllocatorFPCv
lbl_803516D0:
/* 803516D0 0034E630 7F E4 FB 78 */ mr r4, r31
lbl_803516D4:
/* 803516D4 0034E634 28 04 00 00 */ cmplwi r4, 0
/* 803516D8 0034E638 40 82 FF D8 */ bne lbl_803516B0
/* 803516DC 0034E63C 38 00 00 00 */ li r0, 0
/* 803516E0 0034E640 90 1E 00 0C */ stw r0, 0xc(r30)
/* 803516E4 0034E644 90 1E 00 10 */ stw r0, 0x10(r30)
/* 803516E8 0034E648 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803516EC 0034E64C 83 C1 00 08 */ lwz r30, 8(r1)
/* 803516F0 0034E650 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803516F4 0034E654 7C 08 03 A6 */ mtlr r0
/* 803516F8 0034E658 38 21 00 10 */ addi r1, r1, 0x10
/* 803516FC 0034E65C 4E 80 00 20 */ blr
.global FreeNormalAllocation__14CGameAllocatorFPCv
FreeNormalAllocation__14CGameAllocatorFPCv:
/* 80351700 0034E660 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80351704 0034E664 7C 08 02 A6 */ mflr r0
/* 80351708 0034E668 90 01 00 34 */ stw r0, 0x34(r1)
/* 8035170C 0034E66C BF 21 00 14 */ stmw r25, 0x14(r1)
/* 80351710 0034E670 7C 79 1B 78 */ mr r25, r3
/* 80351714 0034E674 48 00 0F 4D */ bl GetMemInfoFromBlockPtr__14CGameAllocatorCFPCv
/* 80351718 0034E678 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8035171C 0034E67C 3B 80 00 00 */ li r28, 0
/* 80351720 0034E680 83 63 00 04 */ lwz r27, 4(r3)
/* 80351724 0034E684 7C 7D 1B 78 */ mr r29, r3
/* 80351728 0034E688 54 00 00 35 */ rlwinm. r0, r0, 0, 0, 0x1a
/* 8035172C 0034E68C 3B 40 00 00 */ li r26, 0
/* 80351730 0034E690 41 82 00 0C */ beq lbl_8035173C
/* 80351734 0034E694 7C 7D 00 50 */ subf r3, r29, r0
/* 80351738 0034E698 3B 43 FF E0 */ addi r26, r3, -32
lbl_8035173C:
/* 8035173C 0034E69C 93 5D 00 04 */ stw r26, 4(r29)
/* 80351740 0034E6A0 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 80351744 0034E6A4 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80351748 0034E6A8 54 7F 00 35 */ rlwinm. r31, r3, 0, 0, 0x1a
/* 8035174C 0034E6AC 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
/* 80351750 0034E6B0 41 82 00 68 */ beq lbl_803517B8
/* 80351754 0034E6B4 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 80351758 0034E6B8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8035175C 0034E6BC 40 82 00 5C */ bne lbl_803517B8
/* 80351760 0034E6C0 7F 23 CB 78 */ mr r3, r25
/* 80351764 0034E6C4 7F E4 FB 78 */ mr r4, r31
/* 80351768 0034E6C8 4B FF FA 91 */ bl RemoveFreeEntryFromFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
/* 8035176C 0034E6CC 80 7F 00 14 */ lwz r3, 0x14(r31)
/* 80351770 0034E6D0 28 1E 00 00 */ cmplwi r30, 0
/* 80351774 0034E6D4 93 DF 00 14 */ stw r30, 0x14(r31)
/* 80351778 0034E6D8 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 8035177C 0034E6DC 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 80351780 0034E6E0 90 1F 00 14 */ stw r0, 0x14(r31)
/* 80351784 0034E6E4 41 82 00 18 */ beq lbl_8035179C
/* 80351788 0034E6E8 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 8035178C 0034E6EC 93 FE 00 10 */ stw r31, 0x10(r30)
/* 80351790 0034E6F0 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 80351794 0034E6F4 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 80351798 0034E6F8 90 1E 00 10 */ stw r0, 0x10(r30)
lbl_8035179C:
/* 8035179C 0034E6FC 80 1D 00 04 */ lwz r0, 4(r29)
/* 803517A0 0034E700 7F FD FB 78 */ mr r29, r31
/* 803517A4 0034E704 80 7F 00 04 */ lwz r3, 4(r31)
/* 803517A8 0034E708 3B 80 00 20 */ li r28, 0x20
/* 803517AC 0034E70C 7C 60 1A 14 */ add r3, r0, r3
/* 803517B0 0034E710 38 03 00 20 */ addi r0, r3, 0x20
/* 803517B4 0034E714 90 1F 00 04 */ stw r0, 4(r31)
lbl_803517B8:
/* 803517B8 0034E718 28 1E 00 00 */ cmplwi r30, 0
/* 803517BC 0034E71C 41 82 00 8C */ beq lbl_80351848
/* 803517C0 0034E720 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 803517C4 0034E724 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 803517C8 0034E728 40 82 00 80 */ bne lbl_80351848
/* 803517CC 0034E72C 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 803517D0 0034E730 54 00 00 35 */ rlwinm. r0, r0, 0, 0, 0x1a
/* 803517D4 0034E734 41 82 00 74 */ beq lbl_80351848
/* 803517D8 0034E738 7F 23 CB 78 */ mr r3, r25
/* 803517DC 0034E73C 7F C4 F3 78 */ mr r4, r30
/* 803517E0 0034E740 4B FF FA 19 */ bl RemoveFreeEntryFromFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
/* 803517E4 0034E744 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 803517E8 0034E748 80 7D 00 14 */ lwz r3, 0x14(r29)
/* 803517EC 0034E74C 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
/* 803517F0 0034E750 90 1D 00 14 */ stw r0, 0x14(r29)
/* 803517F4 0034E754 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 803517F8 0034E758 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 803517FC 0034E75C 90 1D 00 14 */ stw r0, 0x14(r29)
/* 80351800 0034E760 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 80351804 0034E764 54 04 00 35 */ rlwinm. r4, r0, 0, 0, 0x1a
/* 80351808 0034E768 41 82 00 18 */ beq lbl_80351820
/* 8035180C 0034E76C 80 64 00 10 */ lwz r3, 0x10(r4)
/* 80351810 0034E770 93 A4 00 10 */ stw r29, 0x10(r4)
/* 80351814 0034E774 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80351818 0034E778 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 8035181C 0034E77C 90 04 00 10 */ stw r0, 0x10(r4)
lbl_80351820:
/* 80351820 0034E780 80 7D 00 04 */ lwz r3, 4(r29)
/* 80351824 0034E784 3B 9C 00 20 */ addi r28, r28, 0x20
/* 80351828 0034E788 80 1E 00 04 */ lwz r0, 4(r30)
/* 8035182C 0034E78C 7C 60 1A 14 */ add r3, r0, r3
/* 80351830 0034E790 38 03 00 20 */ addi r0, r3, 0x20
/* 80351834 0034E794 90 1D 00 04 */ stw r0, 4(r29)
/* 80351838 0034E798 80 1D 00 10 */ lwz r0, 0x10(r29)
/* 8035183C 0034E79C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80351840 0034E7A0 90 1D 00 10 */ stw r0, 0x10(r29)
/* 80351844 0034E7A4 48 00 00 10 */ b lbl_80351854
lbl_80351848:
/* 80351848 0034E7A8 80 1D 00 10 */ lwz r0, 0x10(r29)
/* 8035184C 0034E7AC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80351850 0034E7B0 90 1D 00 10 */ stw r0, 0x10(r29)
lbl_80351854:
/* 80351854 0034E7B4 7F 23 CB 78 */ mr r3, r25
/* 80351858 0034E7B8 7F A4 EB 78 */ mr r4, r29
/* 8035185C 0034E7BC 4B FF FA 41 */ bl AddFreeEntryToFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
/* 80351860 0034E7C0 80 79 00 84 */ lwz r3, 0x84(r25)
/* 80351864 0034E7C4 7C 9A E2 14 */ add r4, r26, r28
/* 80351868 0034E7C8 28 1B 00 38 */ cmplwi r27, 0x38
/* 8035186C 0034E7CC 38 03 FF FF */ addi r0, r3, -1
/* 80351870 0034E7D0 90 19 00 84 */ stw r0, 0x84(r25)
/* 80351874 0034E7D4 80 19 00 88 */ lwz r0, 0x88(r25)
/* 80351878 0034E7D8 7C 1B 00 50 */ subf r0, r27, r0
/* 8035187C 0034E7DC 90 19 00 88 */ stw r0, 0x88(r25)
/* 80351880 0034E7E0 80 19 00 8C */ lwz r0, 0x8c(r25)
/* 80351884 0034E7E4 7C 04 00 50 */ subf r0, r4, r0
/* 80351888 0034E7E8 90 19 00 8C */ stw r0, 0x8c(r25)
/* 8035188C 0034E7EC 80 19 00 90 */ lwz r0, 0x90(r25)
/* 80351890 0034E7F0 7C 00 22 14 */ add r0, r0, r4
/* 80351894 0034E7F4 90 19 00 90 */ stw r0, 0x90(r25)
/* 80351898 0034E7F8 41 81 00 10 */ bgt lbl_803518A8
/* 8035189C 0034E7FC 80 79 00 A8 */ lwz r3, 0xa8(r25)
/* 803518A0 0034E800 38 03 FF FF */ addi r0, r3, -1
/* 803518A4 0034E804 90 19 00 A8 */ stw r0, 0xa8(r25)
lbl_803518A8:
/* 803518A8 0034E808 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 803518AC 0034E80C 38 60 00 01 */ li r3, 1
/* 803518B0 0034E810 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803518B4 0034E814 7C 08 03 A6 */ mtlr r0
/* 803518B8 0034E818 38 21 00 30 */ addi r1, r1, 0x30
/* 803518BC 0034E81C 4E 80 00 20 */ blr
.global Free__14CGameAllocatorFPCv
Free__14CGameAllocatorFPCv:
/* 803518C0 0034E820 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803518C4 0034E824 7C 08 02 A6 */ mflr r0
/* 803518C8 0034E828 90 01 00 14 */ stw r0, 0x14(r1)
/* 803518CC 0034E82C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803518D0 0034E830 7C 9F 23 79 */ or. r31, r4, r4
/* 803518D4 0034E834 93 C1 00 08 */ stw r30, 8(r1)
/* 803518D8 0034E838 7C 7E 1B 78 */ mr r30, r3
/* 803518DC 0034E83C 40 82 00 0C */ bne lbl_803518E8
/* 803518E0 0034E840 38 60 00 01 */ li r3, 1
/* 803518E4 0034E844 48 00 00 6C */ b lbl_80351950
lbl_803518E8:
/* 803518E8 0034E848 80 7E 00 60 */ lwz r3, 0x60(r30)
/* 803518EC 0034E84C 28 03 00 00 */ cmplwi r3, 0
/* 803518F0 0034E850 41 82 00 28 */ beq lbl_80351918
/* 803518F4 0034E854 80 A3 00 00 */ lwz r5, 0(r3)
/* 803518F8 0034E858 80 03 00 08 */ lwz r0, 8(r3)
/* 803518FC 0034E85C 7C A5 F8 50 */ subf r5, r5, r31
/* 80351900 0034E860 7C A5 16 70 */ srawi r5, r5, 2
/* 80351904 0034E864 7C A5 01 94 */ addze r5, r5
/* 80351908 0034E868 7C 05 00 40 */ cmplw r5, r0
/* 8035190C 0034E86C 40 80 00 0C */ bge lbl_80351918
/* 80351910 0034E870 4B FF F5 15 */ bl Free__15CSmallAllocPoolFPCv
/* 80351914 0034E874 48 00 00 3C */ b lbl_80351950
lbl_80351918:
/* 80351918 0034E878 80 7E 00 74 */ lwz r3, 0x74(r30)
/* 8035191C 0034E87C 28 03 00 00 */ cmplwi r3, 0
/* 80351920 0034E880 41 82 00 24 */ beq lbl_80351944
/* 80351924 0034E884 7F E4 FB 78 */ mr r4, r31
/* 80351928 0034E888 4B FF F2 65 */ bl Free__16CMediumAllocPoolFPCv
/* 8035192C 0034E88C 2C 03 00 01 */ cmpwi r3, 1
/* 80351930 0034E890 41 82 00 14 */ beq lbl_80351944
/* 80351934 0034E894 7C 03 00 D0 */ neg r0, r3
/* 80351938 0034E898 7C 00 18 78 */ andc r0, r0, r3
/* 8035193C 0034E89C 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80351940 0034E8A0 48 00 00 10 */ b lbl_80351950
lbl_80351944:
/* 80351944 0034E8A4 7F C3 F3 78 */ mr r3, r30
/* 80351948 0034E8A8 7F E4 FB 78 */ mr r4, r31
/* 8035194C 0034E8AC 4B FF FD B5 */ bl FreeNormalAllocation__14CGameAllocatorFPCv
lbl_80351950:
/* 80351950 0034E8B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351954 0034E8B4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80351958 0034E8B8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8035195C 0034E8BC 7C 08 03 A6 */ mtlr r0
/* 80351960 0034E8C0 38 21 00 10 */ addi r1, r1, 0x10
/* 80351964 0034E8C4 4E 80 00 20 */ blr
.global UpdateAllocDebugStats__14CGameAllocatorFUiUiUi
UpdateAllocDebugStats__14CGameAllocatorFUiUiUi:
/* 80351968 0034E8C8 80 E3 00 84 */ lwz r7, 0x84(r3)
/* 8035196C 0034E8CC 7C C5 32 14 */ add r6, r5, r6
/* 80351970 0034E8D0 38 07 00 01 */ addi r0, r7, 1
/* 80351974 0034E8D4 90 03 00 84 */ stw r0, 0x84(r3)
/* 80351978 0034E8D8 80 A3 00 80 */ lwz r5, 0x80(r3)
/* 8035197C 0034E8DC 38 05 00 01 */ addi r0, r5, 1
/* 80351980 0034E8E0 90 03 00 80 */ stw r0, 0x80(r3)
/* 80351984 0034E8E4 80 03 00 88 */ lwz r0, 0x88(r3)
/* 80351988 0034E8E8 7C 00 22 14 */ add r0, r0, r4
/* 8035198C 0034E8EC 90 03 00 88 */ stw r0, 0x88(r3)
/* 80351990 0034E8F0 80 03 00 8C */ lwz r0, 0x8c(r3)
/* 80351994 0034E8F4 7C 00 32 14 */ add r0, r0, r6
/* 80351998 0034E8F8 90 03 00 8C */ stw r0, 0x8c(r3)
/* 8035199C 0034E8FC 80 03 00 90 */ lwz r0, 0x90(r3)
/* 803519A0 0034E900 7C 06 00 50 */ subf r0, r6, r0
/* 803519A4 0034E904 90 03 00 90 */ stw r0, 0x90(r3)
/* 803519A8 0034E908 80 A3 00 84 */ lwz r5, 0x84(r3)
/* 803519AC 0034E90C 80 03 00 94 */ lwz r0, 0x94(r3)
/* 803519B0 0034E910 7C 05 00 40 */ cmplw r5, r0
/* 803519B4 0034E914 40 81 00 08 */ ble lbl_803519BC
/* 803519B8 0034E918 90 A3 00 94 */ stw r5, 0x94(r3)
lbl_803519BC:
/* 803519BC 0034E91C 80 A3 00 8C */ lwz r5, 0x8c(r3)
/* 803519C0 0034E920 80 03 00 98 */ lwz r0, 0x98(r3)
/* 803519C4 0034E924 7C 05 00 40 */ cmplw r5, r0
/* 803519C8 0034E928 40 81 00 08 */ ble lbl_803519D0
/* 803519CC 0034E92C 90 A3 00 98 */ stw r5, 0x98(r3)
lbl_803519D0:
/* 803519D0 0034E930 80 03 00 9C */ lwz r0, 0x9c(r3)
/* 803519D4 0034E934 7C 04 00 40 */ cmplw r4, r0
/* 803519D8 0034E938 40 80 00 08 */ bge lbl_803519E0
/* 803519DC 0034E93C 90 83 00 9C */ stw r4, 0x9c(r3)
lbl_803519E0:
/* 803519E0 0034E940 80 03 00 A0 */ lwz r0, 0xa0(r3)
/* 803519E4 0034E944 7C 04 00 40 */ cmplw r4, r0
/* 803519E8 0034E948 40 81 00 08 */ ble lbl_803519F0
/* 803519EC 0034E94C 90 83 00 A0 */ stw r4, 0xa0(r3)
lbl_803519F0:
/* 803519F0 0034E950 80 C3 00 80 */ lwz r6, 0x80(r3)
/* 803519F4 0034E954 28 04 00 38 */ cmplwi r4, 0x38
/* 803519F8 0034E958 80 A3 00 A4 */ lwz r5, 0xa4(r3)
/* 803519FC 0034E95C 38 06 FF FF */ addi r0, r6, -1
/* 80351A00 0034E960 7C 05 01 D6 */ mullw r0, r5, r0
/* 80351A04 0034E964 7C 04 02 14 */ add r0, r4, r0
/* 80351A08 0034E968 7C 00 33 96 */ divwu r0, r0, r6
/* 80351A0C 0034E96C 90 03 00 A4 */ stw r0, 0xa4(r3)
/* 80351A10 0034E970 4D 81 00 20 */ bgtlr
/* 80351A14 0034E974 80 83 00 A8 */ lwz r4, 0xa8(r3)
/* 80351A18 0034E978 38 04 00 01 */ addi r0, r4, 1
/* 80351A1C 0034E97C 90 03 00 A8 */ stw r0, 0xa8(r3)
/* 80351A20 0034E980 4E 80 00 20 */ blr
.global FixupAllocPtrs__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfoUiUiQ210IAllocator5EHintRC10CCallStack
FixupAllocPtrs__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfoUiUiQ210IAllocator5EHintRC10CCallStack:
/* 80351A24 0034E984 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80351A28 0034E988 7C 08 02 A6 */ mflr r0
/* 80351A2C 0034E98C 90 01 00 74 */ stw r0, 0x74(r1)
/* 80351A30 0034E990 38 06 00 20 */ addi r0, r6, 0x20
/* 80351A34 0034E994 BF 01 00 50 */ stmw r24, 0x50(r1)
/* 80351A38 0034E998 7C 98 23 78 */ mr r24, r4
/* 80351A3C 0034E99C 7C B9 2B 78 */ mr r25, r5
/* 80351A40 0034E9A0 7D 1A 43 78 */ mr r26, r8
/* 80351A44 0034E9A4 54 FF 07 FE */ clrlwi r31, r7, 0x1f
/* 80351A48 0034E9A8 3B A0 00 00 */ li r29, 0
/* 80351A4C 0034E9AC 80 84 00 04 */ lwz r4, 4(r4)
/* 80351A50 0034E9B0 7C 04 00 40 */ cmplw r4, r0
/* 80351A54 0034E9B4 40 82 00 0C */ bne lbl_80351A60
/* 80351A58 0034E9B8 3B A0 00 20 */ li r29, 0x20
/* 80351A5C 0034E9BC 38 C6 00 20 */ addi r6, r6, 0x20
lbl_80351A60:
/* 80351A60 0034E9C0 7C 04 30 40 */ cmplw r4, r6
/* 80351A64 0034E9C4 7F 1C C3 78 */ mr r28, r24
/* 80351A68 0034E9C8 41 82 01 64 */ beq lbl_80351BCC
/* 80351A6C 0034E9CC 80 18 00 14 */ lwz r0, 0x14(r24)
/* 80351A70 0034E9D0 28 1F 00 00 */ cmplwi r31, 0
/* 80351A74 0034E9D4 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
/* 80351A78 0034E9D8 41 82 00 8C */ beq lbl_80351B04
/* 80351A7C 0034E9DC 3C 80 EF F0 */ lis r4, 0xEFEFEFEF@ha
/* 80351A80 0034E9E0 7C A6 F0 50 */ subf r5, r6, r30
/* 80351A84 0034E9E4 39 44 EF EF */ addi r10, r4, 0xEFEFEFEF@l
/* 80351A88 0034E9E8 39 00 00 00 */ li r8, 0
/* 80351A8C 0034E9EC 91 45 FF E0 */ stw r10, -0x20(r5)
/* 80351A90 0034E9F0 3C 80 80 3E */ lis r4, lbl_803D8248@ha
/* 80351A94 0034E9F4 38 84 82 48 */ addi r4, r4, lbl_803D8248@l
/* 80351A98 0034E9F8 3B 65 FF E0 */ addi r27, r5, -32
/* 80351A9C 0034E9FC 93 25 FF E4 */ stw r25, -0x1c(r5)
/* 80351AA0 0034EA00 39 24 00 20 */ addi r9, r4, 0x20
/* 80351AA4 0034EA04 3C 80 EA EB */ lis r4, 0xEAEAEAEA@ha
/* 80351AA8 0034EA08 38 A6 00 20 */ addi r5, r6, 0x20
/* 80351AAC 0034EA0C 91 3B 00 08 */ stw r9, 8(r27)
/* 80351AB0 0034EA10 38 E4 EA EA */ addi r7, r4, 0xEAEAEAEA@l
/* 80351AB4 0034EA14 7F 04 C3 78 */ mr r4, r24
/* 80351AB8 0034EA18 91 3B 00 0C */ stw r9, 0xc(r27)
/* 80351ABC 0034EA1C 93 1B 00 10 */ stw r24, 0x10(r27)
/* 80351AC0 0034EA20 93 DB 00 14 */ stw r30, 0x14(r27)
/* 80351AC4 0034EA24 91 1B 00 18 */ stw r8, 0x18(r27)
/* 80351AC8 0034EA28 90 FB 00 1C */ stw r7, 0x1c(r27)
/* 80351ACC 0034EA2C 80 18 00 04 */ lwz r0, 4(r24)
/* 80351AD0 0034EA30 91 41 00 28 */ stw r10, 0x28(r1)
/* 80351AD4 0034EA34 7C 05 00 50 */ subf r0, r5, r0
/* 80351AD8 0034EA38 93 21 00 2C */ stw r25, 0x2c(r1)
/* 80351ADC 0034EA3C 91 21 00 30 */ stw r9, 0x30(r1)
/* 80351AE0 0034EA40 91 21 00 34 */ stw r9, 0x34(r1)
/* 80351AE4 0034EA44 93 01 00 38 */ stw r24, 0x38(r1)
/* 80351AE8 0034EA48 93 C1 00 3C */ stw r30, 0x3c(r1)
/* 80351AEC 0034EA4C 91 01 00 40 */ stw r8, 0x40(r1)
/* 80351AF0 0034EA50 90 E1 00 44 */ stw r7, 0x44(r1)
/* 80351AF4 0034EA54 90 18 00 04 */ stw r0, 4(r24)
/* 80351AF8 0034EA58 4B FF F7 A5 */ bl AddFreeEntryToFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
/* 80351AFC 0034EA5C 7F 7C DB 78 */ mr r28, r27
/* 80351B00 0034EA60 48 00 00 84 */ b lbl_80351B84
lbl_80351B04:
/* 80351B04 0034EA64 3B 66 00 20 */ addi r27, r6, 0x20
/* 80351B08 0034EA68 81 18 00 18 */ lwz r8, 0x18(r24)
/* 80351B0C 0034EA6C 3C A0 EF F0 */ lis r5, 0xEFEFEFEF@ha
/* 80351B10 0034EA70 80 18 00 04 */ lwz r0, 4(r24)
/* 80351B14 0034EA74 38 E5 EF EF */ addi r7, r5, 0xEFEFEFEF@l
/* 80351B18 0034EA78 7F 78 DA 14 */ add r27, r24, r27
/* 80351B1C 0034EA7C 7C A6 00 50 */ subf r5, r6, r0
/* 80351B20 0034EA80 3C 80 80 3E */ lis r4, lbl_803D8248@ha
/* 80351B24 0034EA84 38 C5 FF E0 */ addi r6, r5, -32
/* 80351B28 0034EA88 90 FB 00 00 */ stw r7, 0(r27)
/* 80351B2C 0034EA8C 38 84 82 48 */ addi r4, r4, lbl_803D8248@l
/* 80351B30 0034EA90 55 08 00 34 */ rlwinm r8, r8, 0, 0, 0x1a
/* 80351B34 0034EA94 38 A4 00 20 */ addi r5, r4, 0x20
/* 80351B38 0034EA98 90 DB 00 04 */ stw r6, 4(r27)
/* 80351B3C 0034EA9C 3C 80 EA EB */ lis r4, 0xEAEAEAEA@ha
/* 80351B40 0034EAA0 90 BB 00 08 */ stw r5, 8(r27)
/* 80351B44 0034EAA4 38 04 EA EA */ addi r0, r4, 0xEAEAEAEA@l
/* 80351B48 0034EAA8 7F 64 DB 78 */ mr r4, r27
/* 80351B4C 0034EAAC 90 BB 00 0C */ stw r5, 0xc(r27)
/* 80351B50 0034EAB0 93 1B 00 10 */ stw r24, 0x10(r27)
/* 80351B54 0034EAB4 93 DB 00 14 */ stw r30, 0x14(r27)
/* 80351B58 0034EAB8 91 1B 00 18 */ stw r8, 0x18(r27)
/* 80351B5C 0034EABC 90 E1 00 08 */ stw r7, 8(r1)
/* 80351B60 0034EAC0 90 C1 00 0C */ stw r6, 0xc(r1)
/* 80351B64 0034EAC4 90 A1 00 10 */ stw r5, 0x10(r1)
/* 80351B68 0034EAC8 90 A1 00 14 */ stw r5, 0x14(r1)
/* 80351B6C 0034EACC 93 01 00 18 */ stw r24, 0x18(r1)
/* 80351B70 0034EAD0 93 C1 00 1C */ stw r30, 0x1c(r1)
/* 80351B74 0034EAD4 91 01 00 20 */ stw r8, 0x20(r1)
/* 80351B78 0034EAD8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80351B7C 0034EADC 90 1B 00 1C */ stw r0, 0x1c(r27)
/* 80351B80 0034EAE0 4B FF F7 1D */ bl AddFreeEntryToFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
lbl_80351B84:
/* 80351B84 0034EAE4 7F 43 D3 78 */ mr r3, r26
/* 80351B88 0034EAE8 4B F8 48 45 */ bl GetFileAndLineText__10CCallStackCFv
/* 80351B8C 0034EAEC 90 7C 00 08 */ stw r3, 8(r28)
/* 80351B90 0034EAF0 7F 43 D3 78 */ mr r3, r26
/* 80351B94 0034EAF4 4B F8 48 31 */ bl GetTypeText__10CCallStackCFv
/* 80351B98 0034EAF8 90 7C 00 0C */ stw r3, 0xc(r28)
/* 80351B9C 0034EAFC 3B A0 00 20 */ li r29, 0x20
/* 80351BA0 0034EB00 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 80351BA4 0034EB04 93 7E 00 10 */ stw r27, 0x10(r30)
/* 80351BA8 0034EB08 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 80351BAC 0034EB0C 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 80351BB0 0034EB10 90 1E 00 10 */ stw r0, 0x10(r30)
/* 80351BB4 0034EB14 80 78 00 14 */ lwz r3, 0x14(r24)
/* 80351BB8 0034EB18 93 78 00 14 */ stw r27, 0x14(r24)
/* 80351BBC 0034EB1C 80 18 00 14 */ lwz r0, 0x14(r24)
/* 80351BC0 0034EB20 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 80351BC4 0034EB24 90 18 00 14 */ stw r0, 0x14(r24)
/* 80351BC8 0034EB28 48 00 00 1C */ b lbl_80351BE4
lbl_80351BCC:
/* 80351BCC 0034EB2C 7F 43 D3 78 */ mr r3, r26
/* 80351BD0 0034EB30 4B F8 47 FD */ bl GetFileAndLineText__10CCallStackCFv
/* 80351BD4 0034EB34 90 78 00 08 */ stw r3, 8(r24)
/* 80351BD8 0034EB38 7F 43 D3 78 */ mr r3, r26
/* 80351BDC 0034EB3C 4B F8 47 E9 */ bl GetTypeText__10CCallStackCFv
/* 80351BE0 0034EB40 90 78 00 0C */ stw r3, 0xc(r24)
lbl_80351BE4:
/* 80351BE4 0034EB44 80 7C 00 10 */ lwz r3, 0x10(r28)
/* 80351BE8 0034EB48 28 1F 00 00 */ cmplwi r31, 0
/* 80351BEC 0034EB4C 38 80 00 00 */ li r4, 0
/* 80351BF0 0034EB50 54 60 06 FE */ clrlwi r0, r3, 0x1b
/* 80351BF4 0034EB54 54 65 00 34 */ rlwinm r5, r3, 0, 0, 0x1a
/* 80351BF8 0034EB58 41 82 00 08 */ beq lbl_80351C00
/* 80351BFC 0034EB5C 38 80 00 02 */ li r4, 2
lbl_80351C00:
/* 80351C00 0034EB60 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80351C04 0034EB64 7F A3 EB 78 */ mr r3, r29
/* 80351C08 0034EB68 7C 80 03 78 */ or r0, r4, r0
/* 80351C0C 0034EB6C 7C A0 03 78 */ or r0, r5, r0
/* 80351C10 0034EB70 90 1C 00 10 */ stw r0, 0x10(r28)
/* 80351C14 0034EB74 80 9C 00 10 */ lwz r4, 0x10(r28)
/* 80351C18 0034EB78 54 80 06 FC */ rlwinm r0, r4, 0, 0x1b, 0x1e
/* 80351C1C 0034EB7C 60 00 00 01 */ ori r0, r0, 1
/* 80351C20 0034EB80 50 80 00 34 */ rlwimi r0, r4, 0, 0, 0x1a
/* 80351C24 0034EB84 90 1C 00 10 */ stw r0, 0x10(r28)
/* 80351C28 0034EB88 93 3C 00 04 */ stw r25, 4(r28)
/* 80351C2C 0034EB8C BB 01 00 50 */ lmw r24, 0x50(r1)
/* 80351C30 0034EB90 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80351C34 0034EB94 7C 08 03 A6 */ mtlr r0
/* 80351C38 0034EB98 38 21 00 70 */ addi r1, r1, 0x70
/* 80351C3C 0034EB9C 4E 80 00 20 */ blr
.global FindFreeBlockFromTopOfHeap__14CGameAllocatorFUi
FindFreeBlockFromTopOfHeap__14CGameAllocatorFUi:
/* 80351C40 0034EBA0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351C44 0034EBA4 7C 08 02 A6 */ mflr r0
/* 80351C48 0034EBA8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351C4C 0034EBAC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351C50 0034EBB0 3B E0 00 00 */ li r31, 0
/* 80351C54 0034EBB4 80 C3 00 10 */ lwz r6, 0x10(r3)
/* 80351C58 0034EBB8 48 00 00 28 */ b lbl_80351C80
lbl_80351C5C:
/* 80351C5C 0034EBBC 80 A6 00 10 */ lwz r5, 0x10(r6)
/* 80351C60 0034EBC0 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
/* 80351C64 0034EBC4 40 82 00 18 */ bne lbl_80351C7C
/* 80351C68 0034EBC8 80 06 00 04 */ lwz r0, 4(r6)
/* 80351C6C 0034EBCC 7C 00 20 40 */ cmplw r0, r4
/* 80351C70 0034EBD0 41 80 00 0C */ blt lbl_80351C7C
/* 80351C74 0034EBD4 7C DF 33 78 */ mr r31, r6
/* 80351C78 0034EBD8 48 00 00 10 */ b lbl_80351C88
lbl_80351C7C:
/* 80351C7C 0034EBDC 54 A6 00 34 */ rlwinm r6, r5, 0, 0, 0x1a
lbl_80351C80:
/* 80351C80 0034EBE0 28 06 00 00 */ cmplwi r6, 0
/* 80351C84 0034EBE4 40 82 FF D8 */ bne lbl_80351C5C
lbl_80351C88:
/* 80351C88 0034EBE8 7F E4 FB 78 */ mr r4, r31
/* 80351C8C 0034EBEC 4B FF F5 6D */ bl RemoveFreeEntryFromFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
/* 80351C90 0034EBF0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351C94 0034EBF4 7F E3 FB 78 */ mr r3, r31
/* 80351C98 0034EBF8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80351C9C 0034EBFC 7C 08 03 A6 */ mtlr r0
/* 80351CA0 0034EC00 38 21 00 10 */ addi r1, r1, 0x10
/* 80351CA4 0034EC04 4E 80 00 20 */ blr
.global FindFreeBlock__14CGameAllocatorFUi
FindFreeBlock__14CGameAllocatorFUi:
/* 80351CA8 0034EC08 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80351CAC 0034EC0C 7C 08 02 A6 */ mflr r0
/* 80351CB0 0034EC10 90 01 00 24 */ stw r0, 0x24(r1)
/* 80351CB4 0034EC14 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80351CB8 0034EC18 3B E0 00 00 */ li r31, 0
/* 80351CBC 0034EC1C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80351CC0 0034EC20 7C 9E 23 78 */ mr r30, r4
/* 80351CC4 0034EC24 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80351CC8 0034EC28 7C 7D 1B 78 */ mr r29, r3
/* 80351CCC 0034EC2C 7F C3 F3 78 */ mr r3, r30
/* 80351CD0 0034EC30 4B FF F6 2D */ bl GetFreeBinEntryForSize__14CGameAllocatorFUi
/* 80351CD4 0034EC34 54 60 10 3A */ slwi r0, r3, 2
/* 80351CD8 0034EC38 38 C0 00 00 */ li r6, 0
/* 80351CDC 0034EC3C 38 E0 00 00 */ li r7, 0
/* 80351CE0 0034EC40 3D 00 10 00 */ lis r8, 0x1000
/* 80351CE4 0034EC44 7C BD 02 14 */ add r5, r29, r0
/* 80351CE8 0034EC48 48 00 00 74 */ b lbl_80351D5C
lbl_80351CEC:
/* 80351CEC 0034EC4C 81 25 00 14 */ lwz r9, 0x14(r5)
/* 80351CF0 0034EC50 39 40 00 00 */ li r10, 0
/* 80351CF4 0034EC54 48 00 00 58 */ b lbl_80351D4C
lbl_80351CF8:
/* 80351CF8 0034EC58 80 09 00 10 */ lwz r0, 0x10(r9)
/* 80351CFC 0034EC5C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80351D00 0034EC60 40 82 00 40 */ bne lbl_80351D40
/* 80351D04 0034EC64 80 09 00 04 */ lwz r0, 4(r9)
/* 80351D08 0034EC68 7C 00 F0 40 */ cmplw r0, r30
/* 80351D0C 0034EC6C 41 80 00 34 */ blt lbl_80351D40
/* 80351D10 0034EC70 7C 9E 00 50 */ subf r4, r30, r0
/* 80351D14 0034EC74 7C 04 40 40 */ cmplw r4, r8
/* 80351D18 0034EC78 40 80 00 28 */ bge lbl_80351D40
/* 80351D1C 0034EC7C 80 09 00 14 */ lwz r0, 0x14(r9)
/* 80351D20 0034EC80 54 00 00 35 */ rlwinm. r0, r0, 0, 0, 0x1a
/* 80351D24 0034EC84 41 82 00 1C */ beq lbl_80351D40
/* 80351D28 0034EC88 28 04 00 20 */ cmplwi r4, 0x20
/* 80351D2C 0034EC8C 7D 3F 4B 78 */ mr r31, r9
/* 80351D30 0034EC90 7D 47 53 78 */ mr r7, r10
/* 80351D34 0034EC94 7C 88 23 78 */ mr r8, r4
/* 80351D38 0034EC98 7C 66 1B 78 */ mr r6, r3
/* 80351D3C 0034EC9C 41 80 00 18 */ blt lbl_80351D54
lbl_80351D40:
/* 80351D40 0034ECA0 80 09 00 18 */ lwz r0, 0x18(r9)
/* 80351D44 0034ECA4 7D 2A 4B 78 */ mr r10, r9
/* 80351D48 0034ECA8 54 09 00 34 */ rlwinm r9, r0, 0, 0, 0x1a
lbl_80351D4C:
/* 80351D4C 0034ECAC 28 09 00 00 */ cmplwi r9, 0
/* 80351D50 0034ECB0 40 82 FF A8 */ bne lbl_80351CF8
lbl_80351D54:
/* 80351D54 0034ECB4 38 A5 00 04 */ addi r5, r5, 4
/* 80351D58 0034ECB8 38 63 00 01 */ addi r3, r3, 1
lbl_80351D5C:
/* 80351D5C 0034ECBC 28 03 00 10 */ cmplwi r3, 0x10
/* 80351D60 0034ECC0 40 80 00 0C */ bge lbl_80351D6C
/* 80351D64 0034ECC4 28 1F 00 00 */ cmplwi r31, 0
/* 80351D68 0034ECC8 41 82 FF 84 */ beq lbl_80351CEC
lbl_80351D6C:
/* 80351D6C 0034ECCC 28 1F 00 00 */ cmplwi r31, 0
/* 80351D70 0034ECD0 41 82 00 40 */ beq lbl_80351DB0
/* 80351D74 0034ECD4 28 07 00 00 */ cmplwi r7, 0
/* 80351D78 0034ECD8 40 82 00 1C */ bne lbl_80351D94
/* 80351D7C 0034ECDC 80 9F 00 18 */ lwz r4, 0x18(r31)
/* 80351D80 0034ECE0 54 C0 10 3A */ slwi r0, r6, 2
/* 80351D84 0034ECE4 7C 7D 02 14 */ add r3, r29, r0
/* 80351D88 0034ECE8 54 80 00 34 */ rlwinm r0, r4, 0, 0, 0x1a
/* 80351D8C 0034ECEC 90 03 00 14 */ stw r0, 0x14(r3)
/* 80351D90 0034ECF0 48 00 00 20 */ b lbl_80351DB0
lbl_80351D94:
/* 80351D94 0034ECF4 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 80351D98 0034ECF8 80 67 00 18 */ lwz r3, 0x18(r7)
/* 80351D9C 0034ECFC 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
/* 80351DA0 0034ED00 90 07 00 18 */ stw r0, 0x18(r7)
/* 80351DA4 0034ED04 80 07 00 18 */ lwz r0, 0x18(r7)
/* 80351DA8 0034ED08 50 60 06 FE */ rlwimi r0, r3, 0, 0x1b, 0x1f
/* 80351DAC 0034ED0C 90 07 00 18 */ stw r0, 0x18(r7)
lbl_80351DB0:
/* 80351DB0 0034ED10 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80351DB4 0034ED14 7F E3 FB 78 */ mr r3, r31
/* 80351DB8 0034ED18 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80351DBC 0034ED1C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80351DC0 0034ED20 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80351DC4 0034ED24 7C 08 03 A6 */ mtlr r0
/* 80351DC8 0034ED28 38 21 00 20 */ addi r1, r1, 0x20
/* 80351DCC 0034ED2C 4E 80 00 20 */ blr
.global Alloc__14CGameAllocatorFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack
Alloc__14CGameAllocatorFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack:
/* 80351DD0 0034ED30 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80351DD4 0034ED34 7C 08 02 A6 */ mflr r0
/* 80351DD8 0034ED38 90 01 00 44 */ stw r0, 0x44(r1)
/* 80351DDC 0034ED3C BE C1 00 18 */ stmw r22, 0x18(r1)
/* 80351DE0 0034ED40 7C 7F 1B 78 */ mr r31, r3
/* 80351DE4 0034ED44 7C 9A 23 78 */ mr r26, r4
/* 80351DE8 0034ED48 7C BB 2B 78 */ mr r27, r5
/* 80351DEC 0034ED4C 7C DC 33 78 */ mr r28, r6
/* 80351DF0 0034ED50 7C FD 3B 78 */ mr r29, r7
/* 80351DF4 0034ED54 7D 1E 43 78 */ mr r30, r8
/* 80351DF8 0034ED58 48 03 35 C9 */ bl OSGetTick
/* 80351DFC 0034ED5C 57 60 07 BD */ rlwinm. r0, r27, 0, 0x1e, 0x1e
/* 80351E00 0034ED60 7C 79 1B 78 */ mr r25, r3
/* 80351E04 0034ED64 41 82 00 0C */ beq lbl_80351E10
/* 80351E08 0034ED68 38 1A 00 1F */ addi r0, r26, 0x1f
/* 80351E0C 0034ED6C 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a
lbl_80351E10:
/* 80351E10 0034ED70 28 1A 00 38 */ cmplwi r26, 0x38
/* 80351E14 0034ED74 38 60 00 00 */ li r3, 0
/* 80351E18 0034ED78 41 81 00 1C */ bgt lbl_80351E34
/* 80351E1C 0034ED7C 57 60 07 BF */ clrlwi. r0, r27, 0x1e
/* 80351E20 0034ED80 40 82 00 14 */ bne lbl_80351E34
/* 80351E24 0034ED84 80 1F 00 60 */ lwz r0, 0x60(r31)
/* 80351E28 0034ED88 28 00 00 00 */ cmplwi r0, 0
/* 80351E2C 0034ED8C 41 82 00 08 */ beq lbl_80351E34
/* 80351E30 0034ED90 38 60 00 01 */ li r3, 1
lbl_80351E34:
/* 80351E34 0034ED94 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80351E38 0034ED98 7C 64 1B 78 */ mr r4, r3
/* 80351E3C 0034ED9C 41 82 00 1C */ beq lbl_80351E58
/* 80351E40 0034EDA0 80 7F 00 70 */ lwz r3, 0x70(r31)
/* 80351E44 0034EDA4 2C 03 00 00 */ cmpwi r3, 0
/* 80351E48 0034EDA8 40 81 00 10 */ ble lbl_80351E58
/* 80351E4C 0034EDAC 38 03 FF FF */ addi r0, r3, -1
/* 80351E50 0034EDB0 38 80 00 00 */ li r4, 0
/* 80351E54 0034EDB4 90 1F 00 70 */ stw r0, 0x70(r31)
lbl_80351E58:
/* 80351E58 0034EDB8 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80351E5C 0034EDBC 41 82 00 98 */ beq lbl_80351EF4
/* 80351E60 0034EDC0 80 7F 00 60 */ lwz r3, 0x60(r31)
/* 80351E64 0034EDC4 7F 44 D3 78 */ mr r4, r26
/* 80351E68 0034EDC8 4B FF F0 51 */ bl Alloc__15CSmallAllocPoolFUi
/* 80351E6C 0034EDCC 80 BF 00 60 */ lwz r5, 0x60(r31)
/* 80351E70 0034EDD0 7C 78 1B 78 */ mr r24, r3
/* 80351E74 0034EDD4 80 1F 00 AC */ lwz r0, 0xac(r31)
/* 80351E78 0034EDD8 80 85 00 18 */ lwz r4, 0x18(r5)
/* 80351E7C 0034EDDC 80 65 00 08 */ lwz r3, 8(r5)
/* 80351E80 0034EDE0 7C 84 18 50 */ subf r4, r4, r3
/* 80351E84 0034EDE4 7C 00 20 40 */ cmplw r0, r4
/* 80351E88 0034EDE8 40 80 00 38 */ bge lbl_80351EC0
/* 80351E8C 0034EDEC 90 9F 00 AC */ stw r4, 0xac(r31)
/* 80351E90 0034EDF0 88 0D AA 28 */ lbz r0, lbl_805A95E8@sda21(r13)
/* 80351E94 0034EDF4 7C 00 07 75 */ extsb. r0, r0
/* 80351E98 0034EDF8 40 82 00 14 */ bne lbl_80351EAC
/* 80351E9C 0034EDFC 38 60 00 00 */ li r3, 0
/* 80351EA0 0034EE00 38 00 00 01 */ li r0, 1
/* 80351EA4 0034EE04 90 6D AA 24 */ stw r3, lbl_805A95E4@sda21(r13)
/* 80351EA8 0034EE08 98 0D AA 28 */ stb r0, lbl_805A95E8@sda21(r13)
lbl_80351EAC:
/* 80351EAC 0034EE0C 80 6D AA 24 */ lwz r3, lbl_805A95E4@sda21(r13)
/* 80351EB0 0034EE10 38 03 00 80 */ addi r0, r3, 0x80
/* 80351EB4 0034EE14 7C 00 20 40 */ cmplw r0, r4
/* 80351EB8 0034EE18 40 80 00 08 */ bge lbl_80351EC0
/* 80351EBC 0034EE1C 90 8D AA 24 */ stw r4, lbl_805A95E4@sda21(r13)
lbl_80351EC0:
/* 80351EC0 0034EE20 28 18 00 00 */ cmplwi r24, 0
/* 80351EC4 0034EE24 41 82 00 20 */ beq lbl_80351EE4
/* 80351EC8 0034EE28 48 03 34 F9 */ bl OSGetTick
/* 80351ECC 0034EE2C 80 0D AA 20 */ lwz r0, lbl_805A95E0@sda21(r13)
/* 80351ED0 0034EE30 7C 99 18 50 */ subf r4, r25, r3
/* 80351ED4 0034EE34 7F 03 C3 78 */ mr r3, r24
/* 80351ED8 0034EE38 7C 00 22 14 */ add r0, r0, r4
/* 80351EDC 0034EE3C 90 0D AA 20 */ stw r0, lbl_805A95E0@sda21(r13)
/* 80351EE0 0034EE40 48 00 02 84 */ b lbl_80352164
lbl_80351EE4:
/* 80351EE4 0034EE44 38 60 00 19 */ li r3, 0x19
/* 80351EE8 0034EE48 38 00 00 01 */ li r0, 1
/* 80351EEC 0034EE4C 90 7F 00 70 */ stw r3, 0x70(r31)
/* 80351EF0 0034EE50 98 1F 00 6C */ stb r0, 0x6c(r31)
lbl_80351EF4:
/* 80351EF4 0034EE54 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80351EF8 0034EE58 28 03 00 00 */ cmplwi r3, 0
/* 80351EFC 0034EE5C 41 82 01 10 */ beq lbl_8035200C
/* 80351F00 0034EE60 28 1A 04 00 */ cmplwi r26, 0x400
/* 80351F04 0034EE64 41 81 01 08 */ bgt lbl_8035200C
/* 80351F08 0034EE68 57 60 07 FF */ clrlwi. r0, r27, 0x1f
/* 80351F0C 0034EE6C 40 82 01 00 */ bne lbl_8035200C
/* 80351F10 0034EE70 4B FF ED CD */ bl sub_80350cdc
/* 80351F14 0034EE74 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80351F18 0034EE78 40 82 00 20 */ bne lbl_80351F38
/* 80351F1C 0034EE7C 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80351F20 0034EE80 3A E0 00 00 */ li r23, 0
/* 80351F24 0034EE84 80 BF 00 78 */ lwz r5, 0x78(r31)
/* 80351F28 0034EE88 38 80 10 00 */ li r4, 0x1000
/* 80351F2C 0034EE8C 38 C0 00 00 */ li r6, 0
/* 80351F30 0034EE90 4B FF EA 61 */ bl AddPuddle__16CMediumAllocPoolFUiPvPvi
/* 80351F34 0034EE94 92 FF 00 78 */ stw r23, 0x78(r31)
lbl_80351F38:
/* 80351F38 0034EE98 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80351F3C 0034EE9C 7F 44 D3 78 */ mr r4, r26
/* 80351F40 0034EEA0 4B FF EC F9 */ bl Alloc__16CMediumAllocPoolFUi
/* 80351F44 0034EEA4 7C 77 1B 79 */ or. r23, r3, r3
/* 80351F48 0034EEA8 40 82 00 74 */ bne lbl_80351FBC
/* 80351F4C 0034EEAC 3C 80 80 3E */ lis r4, lbl_803D8248@ha
/* 80351F50 0034EEB0 38 61 00 08 */ addi r3, r1, 8
/* 80351F54 0034EEB4 38 C4 82 48 */ addi r6, r4, lbl_803D8248@l
/* 80351F58 0034EEB8 38 80 FF FF */ li r4, -1
/* 80351F5C 0034EEBC 38 A6 00 21 */ addi r5, r6, 0x21
/* 80351F60 0034EEC0 38 C6 00 38 */ addi r6, r6, 0x38
/* 80351F64 0034EEC4 4B F8 44 71 */ bl __ct__10CCallStackFUiPCcPCc
/* 80351F68 0034EEC8 81 9F 00 00 */ lwz r12, 0(r31)
/* 80351F6C 0034EECC 3C 80 00 02 */ lis r4, 0x00021000@ha
/* 80351F70 0034EED0 7C 68 1B 78 */ mr r8, r3
/* 80351F74 0034EED4 7F E3 FB 78 */ mr r3, r31
/* 80351F78 0034EED8 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80351F7C 0034EEDC 38 A0 00 00 */ li r5, 0
/* 80351F80 0034EEE0 38 84 10 00 */ addi r4, r4, 0x00021000@l
/* 80351F84 0034EEE4 38 C0 00 01 */ li r6, 1
/* 80351F88 0034EEE8 38 E0 00 00 */ li r7, 0
/* 80351F8C 0034EEEC 7D 89 03 A6 */ mtctr r12
/* 80351F90 0034EEF0 4E 80 04 21 */ bctrl
/* 80351F94 0034EEF4 7C 60 1B 78 */ mr r0, r3
/* 80351F98 0034EEF8 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80351F9C 0034EEFC 7C 05 03 78 */ mr r5, r0
/* 80351FA0 0034EF00 38 80 10 00 */ li r4, 0x1000
/* 80351FA4 0034EF04 38 C0 00 01 */ li r6, 1
/* 80351FA8 0034EF08 4B FF E9 E9 */ bl AddPuddle__16CMediumAllocPoolFUiPvPvi
/* 80351FAC 0034EF0C 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80351FB0 0034EF10 7F 44 D3 78 */ mr r4, r26
/* 80351FB4 0034EF14 4B FF EC 85 */ bl Alloc__16CMediumAllocPoolFUi
/* 80351FB8 0034EF18 7C 77 1B 78 */ mr r23, r3
lbl_80351FBC:
/* 80351FBC 0034EF1C 28 17 00 00 */ cmplwi r23, 0
/* 80351FC0 0034EF20 41 82 00 20 */ beq lbl_80351FE0
/* 80351FC4 0034EF24 48 03 33 FD */ bl OSGetTick
/* 80351FC8 0034EF28 80 0D AA 20 */ lwz r0, lbl_805A95E0@sda21(r13)
/* 80351FCC 0034EF2C 7C 99 18 50 */ subf r4, r25, r3
/* 80351FD0 0034EF30 7E E3 BB 78 */ mr r3, r23
/* 80351FD4 0034EF34 7C 00 22 14 */ add r0, r0, r4
/* 80351FD8 0034EF38 90 0D AA 20 */ stw r0, lbl_805A95E0@sda21(r13)
/* 80351FDC 0034EF3C 48 00 01 88 */ b lbl_80352164
lbl_80351FE0:
/* 80351FE0 0034EF40 88 1F 00 7C */ lbz r0, 0x7c(r31)
/* 80351FE4 0034EF44 28 00 00 00 */ cmplwi r0, 0
/* 80351FE8 0034EF48 40 82 00 1C */ bne lbl_80352004
/* 80351FEC 0034EF4C 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80351FF0 0034EF50 4B FF EB 45 */ bl GetTotalEntries__16CMediumAllocPoolFv
/* 80351FF4 0034EF54 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80351FF8 0034EF58 4B FF EB 69 */ bl GetNumAllocs__16CMediumAllocPoolFv
/* 80351FFC 0034EF5C 80 7F 00 74 */ lwz r3, 0x74(r31)
/* 80352000 0034EF60 4B FF EB 09 */ bl GetNumBlocksAvailable__16CMediumAllocPoolFv
lbl_80352004:
/* 80352004 0034EF64 38 00 00 01 */ li r0, 1
/* 80352008 0034EF68 98 1F 00 7C */ stb r0, 0x7c(r31)
lbl_8035200C:
/* 8035200C 0034EF6C 57 77 07 FF */ clrlwi. r23, r27, 0x1f
/* 80352010 0034EF70 38 1A 00 1F */ addi r0, r26, 0x1f
/* 80352014 0034EF74 54 16 00 34 */ rlwinm r22, r0, 0, 0, 0x1a
/* 80352018 0034EF78 41 82 00 18 */ beq lbl_80352030
/* 8035201C 0034EF7C 7F E3 FB 78 */ mr r3, r31
/* 80352020 0034EF80 7E C4 B3 78 */ mr r4, r22
/* 80352024 0034EF84 4B FF FC 1D */ bl FindFreeBlockFromTopOfHeap__14CGameAllocatorFUi
/* 80352028 0034EF88 7C 78 1B 78 */ mr r24, r3
/* 8035202C 0034EF8C 48 00 00 14 */ b lbl_80352040
lbl_80352030:
/* 80352030 0034EF90 7F E3 FB 78 */ mr r3, r31
/* 80352034 0034EF94 7E C4 B3 78 */ mr r4, r22
/* 80352038 0034EF98 4B FF FC 71 */ bl FindFreeBlock__14CGameAllocatorFUi
/* 8035203C 0034EF9C 7C 78 1B 78 */ mr r24, r3
lbl_80352040:
/* 80352040 0034EFA0 28 18 00 00 */ cmplwi r24, 0
/* 80352044 0034EFA4 40 82 00 BC */ bne lbl_80352100
/* 80352048 0034EFA8 81 9F 00 58 */ lwz r12, 0x58(r31)
/* 8035204C 0034EFAC 38 60 00 00 */ li r3, 0
/* 80352050 0034EFB0 28 0C 00 00 */ cmplwi r12, 0
/* 80352054 0034EFB4 41 82 00 80 */ beq lbl_803520D4
/* 80352058 0034EFB8 7F 44 D3 78 */ mr r4, r26
/* 8035205C 0034EFBC 80 7F 00 5C */ lwz r3, 0x5c(r31)
/* 80352060 0034EFC0 7D 89 03 A6 */ mtctr r12
/* 80352064 0034EFC4 4E 80 04 21 */ bctrl
/* 80352068 0034EFC8 88 0D AA 2A */ lbz r0, lbl_805A95EA@sda21(r13)
/* 8035206C 0034EFCC 7C 00 07 75 */ extsb. r0, r0
/* 80352070 0034EFD0 40 82 00 14 */ bne lbl_80352084
/* 80352074 0034EFD4 38 60 00 00 */ li r3, 0
/* 80352078 0034EFD8 38 00 00 01 */ li r0, 1
/* 8035207C 0034EFDC 98 6D AA 29 */ stb r3, lbl_805A95E9@sda21(r13)
/* 80352080 0034EFE0 98 0D AA 2A */ stb r0, lbl_805A95EA@sda21(r13)
lbl_80352084:
/* 80352084 0034EFE4 88 0D AA 29 */ lbz r0, lbl_805A95E9@sda21(r13)
/* 80352088 0034EFE8 28 00 00 00 */ cmplwi r0, 0
/* 8035208C 0034EFEC 40 82 00 40 */ bne lbl_803520CC
/* 80352090 0034EFF0 38 00 00 01 */ li r0, 1
/* 80352094 0034EFF4 7F E3 FB 78 */ mr r3, r31
/* 80352098 0034EFF8 98 0D AA 29 */ stb r0, lbl_805A95E9@sda21(r13)
/* 8035209C 0034EFFC 7F 44 D3 78 */ mr r4, r26
/* 803520A0 0034F000 7F 65 DB 78 */ mr r5, r27
/* 803520A4 0034F004 7F 86 E3 78 */ mr r6, r28
/* 803520A8 0034F008 81 9F 00 00 */ lwz r12, 0(r31)
/* 803520AC 0034F00C 7F A7 EB 78 */ mr r7, r29
/* 803520B0 0034F010 7F C8 F3 78 */ mr r8, r30
/* 803520B4 0034F014 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 803520B8 0034F018 7D 89 03 A6 */ mtctr r12
/* 803520BC 0034F01C 4E 80 04 21 */ bctrl
/* 803520C0 0034F020 38 00 00 00 */ li r0, 0
/* 803520C4 0034F024 98 0D AA 29 */ stb r0, lbl_805A95E9@sda21(r13)
/* 803520C8 0034F028 48 00 00 0C */ b lbl_803520D4
lbl_803520CC:
/* 803520CC 0034F02C 38 60 00 00 */ li r3, 0
/* 803520D0 0034F030 48 00 00 94 */ b lbl_80352164
lbl_803520D4:
/* 803520D4 0034F034 28 03 00 00 */ cmplwi r3, 0
/* 803520D8 0034F038 40 82 00 8C */ bne lbl_80352164
/* 803520DC 0034F03C 7F C3 F3 78 */ mr r3, r30
/* 803520E0 0034F040 4B F8 42 ED */ bl GetFileAndLineText__10CCallStackCFv
/* 803520E4 0034F044 7F C3 F3 78 */ mr r3, r30
/* 803520E8 0034F048 4B F8 42 DD */ bl GetTypeText__10CCallStackCFv
/* 803520EC 0034F04C 7F E3 FB 78 */ mr r3, r31
/* 803520F0 0034F050 4B FF F0 95 */ bl DumpAllocations__14CGameAllocatorCFv
/* 803520F4 0034F054 38 60 00 00 */ li r3, 0
/* 803520F8 0034F058 48 00 00 6C */ b lbl_80352164
/* 803520FC 0034F05C 48 00 00 68 */ b lbl_80352164
lbl_80352100:
/* 80352100 0034F060 7F E3 FB 78 */ mr r3, r31
/* 80352104 0034F064 7F 04 C3 78 */ mr r4, r24
/* 80352108 0034F068 7F 45 D3 78 */ mr r5, r26
/* 8035210C 0034F06C 7E C6 B3 78 */ mr r6, r22
/* 80352110 0034F070 7F 67 DB 78 */ mr r7, r27
/* 80352114 0034F074 7F C8 F3 78 */ mr r8, r30
/* 80352118 0034F078 4B FF F9 0D */ bl FixupAllocPtrs__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfoUiUiQ210IAllocator5EHintRC10CCallStack
/* 8035211C 0034F07C 28 17 00 00 */ cmplwi r23, 0
/* 80352120 0034F080 7C 66 1B 78 */ mr r6, r3
/* 80352124 0034F084 41 82 00 18 */ beq lbl_8035213C
/* 80352128 0034F088 80 18 00 10 */ lwz r0, 0x10(r24)
/* 8035212C 0034F08C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80352130 0034F090 40 82 00 0C */ bne lbl_8035213C
/* 80352134 0034F094 80 18 00 14 */ lwz r0, 0x14(r24)
/* 80352138 0034F098 54 18 00 34 */ rlwinm r24, r0, 0, 0, 0x1a
lbl_8035213C:
/* 8035213C 0034F09C 7F E3 FB 78 */ mr r3, r31
/* 80352140 0034F0A0 7F 44 D3 78 */ mr r4, r26
/* 80352144 0034F0A4 7E C5 B3 78 */ mr r5, r22
/* 80352148 0034F0A8 4B FF F8 21 */ bl UpdateAllocDebugStats__14CGameAllocatorFUiUiUi
/* 8035214C 0034F0AC 48 03 32 75 */ bl OSGetTick
/* 80352150 0034F0B0 80 0D AA 20 */ lwz r0, lbl_805A95E0@sda21(r13)
/* 80352154 0034F0B4 7C 99 18 50 */ subf r4, r25, r3
/* 80352158 0034F0B8 38 78 00 20 */ addi r3, r24, 0x20
/* 8035215C 0034F0BC 7C 00 22 14 */ add r0, r0, r4
/* 80352160 0034F0C0 90 0D AA 20 */ stw r0, lbl_805A95E0@sda21(r13)
lbl_80352164:
/* 80352164 0034F0C4 BA C1 00 18 */ lmw r22, 0x18(r1)
/* 80352168 0034F0C8 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8035216C 0034F0CC 7C 08 03 A6 */ mtlr r0
/* 80352170 0034F0D0 38 21 00 40 */ addi r1, r1, 0x40
/* 80352174 0034F0D4 4E 80 00 20 */ blr
.global Shutdown__14CGameAllocatorFv
Shutdown__14CGameAllocatorFv:
/* 80352178 0034F0D8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8035217C 0034F0DC 7C 08 02 A6 */ mflr r0
/* 80352180 0034F0E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80352184 0034F0E4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80352188 0034F0E8 7C 7F 1B 78 */ mr r31, r3
/* 8035218C 0034F0EC 81 83 00 00 */ lwz r12, 0(r3)
/* 80352190 0034F0F0 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 80352194 0034F0F4 7D 89 03 A6 */ mtctr r12
/* 80352198 0034F0F8 4E 80 04 21 */ bctrl
/* 8035219C 0034F0FC 38 00 00 00 */ li r0, 0
/* 803521A0 0034F100 98 1F 00 04 */ stb r0, 4(r31)
/* 803521A4 0034F104 90 1F 00 54 */ stw r0, 0x54(r31)
/* 803521A8 0034F108 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803521AC 0034F10C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803521B0 0034F110 7C 08 03 A6 */ mtlr r0
/* 803521B4 0034F114 38 21 00 10 */ addi r1, r1, 0x10
/* 803521B8 0034F118 4E 80 00 20 */ blr
.global Initialize__14CGameAllocatorFR10COsContext
Initialize__14CGameAllocatorFR10COsContext:
/* 803521BC 0034F11C 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 803521C0 0034F120 7C 08 02 A6 */ mflr r0
/* 803521C4 0034F124 90 01 00 84 */ stw r0, 0x84(r1)
/* 803521C8 0034F128 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 803521CC 0034F12C 7C 7F 1B 78 */ mr r31, r3
/* 803521D0 0034F130 93 C1 00 78 */ stw r30, 0x78(r1)
/* 803521D4 0034F134 80 A4 00 20 */ lwz r5, 0x20(r4)
/* 803521D8 0034F138 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 803521DC 0034F13C 38 80 00 20 */ li r4, 0x20
/* 803521E0 0034F140 38 65 00 1F */ addi r3, r5, 0x1f
/* 803521E4 0034F144 54 63 00 34 */ rlwinm r3, r3, 0, 0, 0x1a
/* 803521E8 0034F148 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
/* 803521EC 0034F14C 7C 63 00 50 */ subf r3, r3, r0
/* 803521F0 0034F150 38 03 FF C0 */ addi r0, r3, -64
/* 803521F4 0034F154 90 1F 00 08 */ stw r0, 8(r31)
/* 803521F8 0034F158 80 7F 00 08 */ lwz r3, 8(r31)
/* 803521FC 0034F15C 48 02 C5 B5 */ bl OSAllocFromArenaLo
/* 80352200 0034F160 90 7F 00 0C */ stw r3, 0xc(r31)
/* 80352204 0034F164 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 80352208 0034F168 54 60 00 06 */ rlwinm r0, r3, 0, 0, 3
/* 8035220C 0034F16C 7C 00 18 50 */ subf r0, r0, r3
/* 80352210 0034F170 90 1F 00 B4 */ stw r0, 0xb4(r31)
/* 80352214 0034F174 48 02 C5 85 */ bl OSGetArenaLo
/* 80352218 0034F178 80 7F 00 08 */ lwz r3, 8(r31)
/* 8035221C 0034F17C 38 E0 00 00 */ li r7, 0
/* 80352220 0034F180 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 80352224 0034F184 3C 80 EF F0 */ lis r4, 0xEFEFEFEF@ha
/* 80352228 0034F188 38 03 FF E0 */ addi r0, r3, -32
/* 8035222C 0034F18C 3C 60 80 3E */ lis r3, lbl_803D8248@ha
/* 80352230 0034F190 7C 05 02 14 */ add r0, r5, r0
/* 80352234 0034F194 39 44 EF EF */ addi r10, r4, 0xEFEFEFEF@l
/* 80352238 0034F198 90 1F 00 10 */ stw r0, 0x10(r31)
/* 8035223C 0034F19C 38 83 82 48 */ addi r4, r3, lbl_803D8248@l
/* 80352240 0034F1A0 39 04 00 42 */ addi r8, r4, 0x42
/* 80352244 0034F1A4 3C 60 EA EB */ lis r3, 0xEAEAEAEA@ha
/* 80352248 0034F1A8 81 9F 00 10 */ lwz r12, 0x10(r31)
/* 8035224C 0034F1AC 38 C3 EA EA */ addi r6, r3, 0xEAEAEAEA@l
/* 80352250 0034F1B0 81 3F 00 08 */ lwz r9, 8(r31)
/* 80352254 0034F1B4 38 A4 00 4A */ addi r5, r4, 0x4a
/* 80352258 0034F1B8 81 7F 00 0C */ lwz r11, 0xc(r31)
/* 8035225C 0034F1BC 7F E3 FB 78 */ mr r3, r31
/* 80352260 0034F1C0 38 89 FF C0 */ addi r4, r9, -64
/* 80352264 0034F1C4 91 41 00 50 */ stw r10, 0x50(r1)
/* 80352268 0034F1C8 91 4B 00 00 */ stw r10, 0(r11)
/* 8035226C 0034F1CC 90 8B 00 04 */ stw r4, 4(r11)
/* 80352270 0034F1D0 91 0B 00 08 */ stw r8, 8(r11)
/* 80352274 0034F1D4 91 0B 00 0C */ stw r8, 0xc(r11)
/* 80352278 0034F1D8 90 EB 00 10 */ stw r7, 0x10(r11)
/* 8035227C 0034F1DC 91 8B 00 14 */ stw r12, 0x14(r11)
/* 80352280 0034F1E0 91 8B 00 18 */ stw r12, 0x18(r11)
/* 80352284 0034F1E4 90 CB 00 1C */ stw r6, 0x1c(r11)
/* 80352288 0034F1E8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8035228C 0034F1EC 81 3F 00 10 */ lwz r9, 0x10(r31)
/* 80352290 0034F1F0 90 81 00 54 */ stw r4, 0x54(r1)
/* 80352294 0034F1F4 91 49 00 00 */ stw r10, 0(r9)
/* 80352298 0034F1F8 90 E9 00 04 */ stw r7, 4(r9)
/* 8035229C 0034F1FC 90 A9 00 08 */ stw r5, 8(r9)
/* 803522A0 0034F200 90 A9 00 0C */ stw r5, 0xc(r9)
/* 803522A4 0034F204 90 09 00 10 */ stw r0, 0x10(r9)
/* 803522A8 0034F208 90 E9 00 14 */ stw r7, 0x14(r9)
/* 803522AC 0034F20C 90 E9 00 18 */ stw r7, 0x18(r9)
/* 803522B0 0034F210 90 C9 00 1C */ stw r6, 0x1c(r9)
/* 803522B4 0034F214 90 FF 00 14 */ stw r7, 0x14(r31)
/* 803522B8 0034F218 90 FF 00 18 */ stw r7, 0x18(r31)
/* 803522BC 0034F21C 90 FF 00 1C */ stw r7, 0x1c(r31)
/* 803522C0 0034F220 90 FF 00 20 */ stw r7, 0x20(r31)
/* 803522C4 0034F224 90 FF 00 24 */ stw r7, 0x24(r31)
/* 803522C8 0034F228 90 FF 00 28 */ stw r7, 0x28(r31)
/* 803522CC 0034F22C 90 FF 00 2C */ stw r7, 0x2c(r31)
/* 803522D0 0034F230 90 FF 00 30 */ stw r7, 0x30(r31)
/* 803522D4 0034F234 90 FF 00 34 */ stw r7, 0x34(r31)
/* 803522D8 0034F238 90 FF 00 38 */ stw r7, 0x38(r31)
/* 803522DC 0034F23C 90 FF 00 3C */ stw r7, 0x3c(r31)
/* 803522E0 0034F240 90 FF 00 40 */ stw r7, 0x40(r31)
/* 803522E4 0034F244 90 FF 00 44 */ stw r7, 0x44(r31)
/* 803522E8 0034F248 90 FF 00 48 */ stw r7, 0x48(r31)
/* 803522EC 0034F24C 90 FF 00 4C */ stw r7, 0x4c(r31)
/* 803522F0 0034F250 90 FF 00 50 */ stw r7, 0x50(r31)
/* 803522F4 0034F254 91 01 00 58 */ stw r8, 0x58(r1)
/* 803522F8 0034F258 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 803522FC 0034F25C 91 01 00 5C */ stw r8, 0x5c(r1)
/* 80352300 0034F260 90 E1 00 60 */ stw r7, 0x60(r1)
/* 80352304 0034F264 91 81 00 64 */ stw r12, 0x64(r1)
/* 80352308 0034F268 91 81 00 68 */ stw r12, 0x68(r1)
/* 8035230C 0034F26C 90 C1 00 6C */ stw r6, 0x6c(r1)
/* 80352310 0034F270 91 41 00 30 */ stw r10, 0x30(r1)
/* 80352314 0034F274 90 E1 00 34 */ stw r7, 0x34(r1)
/* 80352318 0034F278 90 A1 00 38 */ stw r5, 0x38(r1)
/* 8035231C 0034F27C 90 A1 00 3C */ stw r5, 0x3c(r1)
/* 80352320 0034F280 90 01 00 40 */ stw r0, 0x40(r1)
/* 80352324 0034F284 90 E1 00 44 */ stw r7, 0x44(r1)
/* 80352328 0034F288 90 E1 00 48 */ stw r7, 0x48(r1)
/* 8035232C 0034F28C 90 C1 00 4C */ stw r6, 0x4c(r1)
/* 80352330 0034F290 4B FF EF 6D */ bl AddFreeEntryToFreeList__14CGameAllocatorFPQ214CGameAllocator12SGameMemInfo
/* 80352334 0034F294 39 00 00 00 */ li r8, 0
/* 80352338 0034F298 3C 60 80 3E */ lis r3, lbl_803D8248@ha
/* 8035233C 0034F29C 91 1F 00 80 */ stw r8, 0x80(r31)
/* 80352340 0034F2A0 38 83 82 48 */ addi r4, r3, lbl_803D8248@l
/* 80352344 0034F2A4 38 00 00 01 */ li r0, 1
/* 80352348 0034F2A8 38 61 00 28 */ addi r3, r1, 0x28
/* 8035234C 0034F2AC 91 1F 00 84 */ stw r8, 0x84(r31)
/* 80352350 0034F2B0 38 A4 00 52 */ addi r5, r4, 0x52
/* 80352354 0034F2B4 38 C4 00 38 */ addi r6, r4, 0x38
/* 80352358 0034F2B8 38 80 FF FF */ li r4, -1
/* 8035235C 0034F2BC 91 1F 00 88 */ stw r8, 0x88(r31)
/* 80352360 0034F2C0 91 1F 00 8C */ stw r8, 0x8c(r31)
/* 80352364 0034F2C4 80 FF 00 08 */ lwz r7, 8(r31)
/* 80352368 0034F2C8 90 FF 00 90 */ stw r7, 0x90(r31)
/* 8035236C 0034F2CC 91 1F 00 94 */ stw r8, 0x94(r31)
/* 80352370 0034F2D0 91 1F 00 98 */ stw r8, 0x98(r31)
/* 80352374 0034F2D4 91 1F 00 9C */ stw r8, 0x9c(r31)
/* 80352378 0034F2D8 91 1F 00 A0 */ stw r8, 0xa0(r31)
/* 8035237C 0034F2DC 91 1F 00 A4 */ stw r8, 0xa4(r31)
/* 80352380 0034F2E0 91 1F 00 A8 */ stw r8, 0xa8(r31)
/* 80352384 0034F2E4 98 1F 00 04 */ stb r0, 4(r31)
/* 80352388 0034F2E8 4B F8 40 4D */ bl __ct__10CCallStackFUiPCcPCc
/* 8035238C 0034F2EC 81 9F 00 00 */ lwz r12, 0(r31)
/* 80352390 0034F2F0 7C 68 1B 78 */ mr r8, r3
/* 80352394 0034F2F4 7F E3 FB 78 */ mr r3, r31
/* 80352398 0034F2F8 3C 80 00 0B */ lis r4, 0xb
/* 8035239C 0034F2FC 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 803523A0 0034F300 38 A0 00 00 */ li r5, 0
/* 803523A4 0034F304 38 C0 00 01 */ li r6, 1
/* 803523A8 0034F308 38 E0 00 00 */ li r7, 0
/* 803523AC 0034F30C 7D 89 03 A6 */ mtctr r12
/* 803523B0 0034F310 4E 80 04 21 */ bctrl
/* 803523B4 0034F314 3C 80 80 3E */ lis r4, lbl_803D8248@ha
/* 803523B8 0034F318 90 7F 00 64 */ stw r3, 0x64(r31)
/* 803523BC 0034F31C 38 C4 82 48 */ addi r6, r4, lbl_803D8248@l
/* 803523C0 0034F320 38 61 00 20 */ addi r3, r1, 0x20
/* 803523C4 0034F324 38 A6 00 68 */ addi r5, r6, 0x68
/* 803523C8 0034F328 38 80 FF FF */ li r4, -1
/* 803523CC 0034F32C 38 C6 00 38 */ addi r6, r6, 0x38
/* 803523D0 0034F330 4B F8 40 05 */ bl __ct__10CCallStackFUiPCcPCc
/* 803523D4 0034F334 81 9F 00 00 */ lwz r12, 0(r31)
/* 803523D8 0034F338 3C 80 00 01 */ lis r4, 0x00016000@ha
/* 803523DC 0034F33C 7C 68 1B 78 */ mr r8, r3
/* 803523E0 0034F340 7F E3 FB 78 */ mr r3, r31
/* 803523E4 0034F344 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 803523E8 0034F348 38 A0 00 00 */ li r5, 0
/* 803523EC 0034F34C 38 84 60 00 */ addi r4, r4, 0x00016000@l
/* 803523F0 0034F350 38 C0 00 01 */ li r6, 1
/* 803523F4 0034F354 38 E0 00 00 */ li r7, 0
/* 803523F8 0034F358 7D 89 03 A6 */ mtctr r12
/* 803523FC 0034F35C 4E 80 04 21 */ bctrl
/* 80352400 0034F360 3C 80 80 3E */ lis r4, lbl_803D8248@ha
/* 80352404 0034F364 90 7F 00 68 */ stw r3, 0x68(r31)
/* 80352408 0034F368 38 C4 82 48 */ addi r6, r4, lbl_803D8248@l
/* 8035240C 0034F36C 38 61 00 18 */ addi r3, r1, 0x18
/* 80352410 0034F370 38 A6 00 7E */ addi r5, r6, 0x7e
/* 80352414 0034F374 38 80 FF FF */ li r4, -1
/* 80352418 0034F378 38 C6 00 38 */ addi r6, r6, 0x38
/* 8035241C 0034F37C 4B F8 3F B9 */ bl __ct__10CCallStackFUiPCcPCc
/* 80352420 0034F380 81 9F 00 00 */ lwz r12, 0(r31)
/* 80352424 0034F384 7C 68 1B 78 */ mr r8, r3
/* 80352428 0034F388 7F E3 FB 78 */ mr r3, r31
/* 8035242C 0034F38C 38 80 00 20 */ li r4, 0x20
/* 80352430 0034F390 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80352434 0034F394 38 A0 00 00 */ li r5, 0
/* 80352438 0034F398 38 C0 00 01 */ li r6, 1
/* 8035243C 0034F39C 38 E0 00 00 */ li r7, 0
/* 80352440 0034F3A0 7D 89 03 A6 */ mtctr r12
/* 80352444 0034F3A4 4E 80 04 21 */ bctrl
/* 80352448 0034F3A8 7C 60 1B 79 */ or. r0, r3, r3
/* 8035244C 0034F3AC 41 82 00 1C */ beq lbl_80352468
/* 80352450 0034F3B0 3C 80 00 03 */ lis r4, 0x0002C000@ha
/* 80352454 0034F3B4 80 BF 00 64 */ lwz r5, 0x64(r31)
/* 80352458 0034F3B8 80 DF 00 68 */ lwz r6, 0x68(r31)
/* 8035245C 0034F3BC 38 84 C0 00 */ addi r4, r4, 0x0002C000@l
/* 80352460 0034F3C0 4B FF EC 71 */ bl __ct__15CSmallAllocPoolFUiPvPv
/* 80352464 0034F3C4 7C 60 1B 78 */ mr r0, r3
lbl_80352468:
/* 80352468 0034F3C8 3C 60 80 3E */ lis r3, lbl_803D8248@ha
/* 8035246C 0034F3CC 90 1F 00 60 */ stw r0, 0x60(r31)
/* 80352470 0034F3D0 38 C3 82 48 */ addi r6, r3, lbl_803D8248@l
/* 80352474 0034F3D4 38 61 00 10 */ addi r3, r1, 0x10
/* 80352478 0034F3D8 38 A6 00 94 */ addi r5, r6, 0x94
/* 8035247C 0034F3DC 38 80 FF FF */ li r4, -1
/* 80352480 0034F3E0 38 C6 00 38 */ addi r6, r6, 0x38
/* 80352484 0034F3E4 4B F8 3F 51 */ bl __ct__10CCallStackFUiPCcPCc
/* 80352488 0034F3E8 81 9F 00 00 */ lwz r12, 0(r31)
/* 8035248C 0034F3EC 7C 68 1B 78 */ mr r8, r3
/* 80352490 0034F3F0 7F E3 FB 78 */ mr r3, r31
/* 80352494 0034F3F4 38 80 00 1C */ li r4, 0x1c
/* 80352498 0034F3F8 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 8035249C 0034F3FC 38 A0 00 00 */ li r5, 0
/* 803524A0 0034F400 38 C0 00 01 */ li r6, 1
/* 803524A4 0034F404 38 E0 00 00 */ li r7, 0
/* 803524A8 0034F408 7D 89 03 A6 */ mtctr r12
/* 803524AC 0034F40C 4E 80 04 21 */ bctrl
/* 803524B0 0034F410 7C 60 1B 79 */ or. r0, r3, r3
/* 803524B4 0034F414 41 82 00 0C */ beq lbl_803524C0
/* 803524B8 0034F418 4B FF E8 AD */ bl __ct__16CMediumAllocPoolFv
/* 803524BC 0034F41C 7C 60 1B 78 */ mr r0, r3
lbl_803524C0:
/* 803524C0 0034F420 3C 60 80 3E */ lis r3, lbl_803D8248@ha
/* 803524C4 0034F424 90 1F 00 74 */ stw r0, 0x74(r31)
/* 803524C8 0034F428 38 83 82 48 */ addi r4, r3, lbl_803D8248@l
/* 803524CC 0034F42C 3F C0 00 02 */ lis r30, 2
/* 803524D0 0034F430 38 61 00 08 */ addi r3, r1, 8
/* 803524D4 0034F434 38 A4 00 21 */ addi r5, r4, 0x21
/* 803524D8 0034F438 38 C4 00 38 */ addi r6, r4, 0x38
/* 803524DC 0034F43C 38 80 FF FF */ li r4, -1
/* 803524E0 0034F440 4B F8 3E F5 */ bl __ct__10CCallStackFUiPCcPCc
/* 803524E4 0034F444 81 9F 00 00 */ lwz r12, 0(r31)
/* 803524E8 0034F448 7C 68 1B 78 */ mr r8, r3
/* 803524EC 0034F44C 7F E3 FB 78 */ mr r3, r31
/* 803524F0 0034F450 38 9E 10 00 */ addi r4, r30, 0x1000
/* 803524F4 0034F454 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 803524F8 0034F458 38 A0 00 00 */ li r5, 0
/* 803524FC 0034F45C 38 C0 00 01 */ li r6, 1
/* 80352500 0034F460 38 E0 00 00 */ li r7, 0
/* 80352504 0034F464 7D 89 03 A6 */ mtctr r12
/* 80352508 0034F468 4E 80 04 21 */ bctrl
/* 8035250C 0034F46C 90 7F 00 78 */ stw r3, 0x78(r31)
/* 80352510 0034F470 3C 60 00 0C */ lis r3, 0x000C6000@ha
/* 80352514 0034F474 38 03 60 00 */ addi r0, r3, 0x000C6000@l
/* 80352518 0034F478 38 60 00 01 */ li r3, 1
/* 8035251C 0034F47C 80 9F 00 84 */ lwz r4, 0x84(r31)
/* 80352520 0034F480 38 84 FF FC */ addi r4, r4, -4
/* 80352524 0034F484 90 9F 00 84 */ stw r4, 0x84(r31)
/* 80352528 0034F488 90 1F 00 BC */ stw r0, 0xbc(r31)
/* 8035252C 0034F48C 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 80352530 0034F490 83 C1 00 78 */ lwz r30, 0x78(r1)
/* 80352534 0034F494 80 01 00 84 */ lwz r0, 0x84(r1)
/* 80352538 0034F498 7C 08 03 A6 */ mtlr r0
/* 8035253C 0034F49C 38 21 00 80 */ addi r1, r1, 0x80
/* 80352540 0034F4A0 4E 80 00 20 */ blr
.global __dt__14CGameAllocatorFv
__dt__14CGameAllocatorFv:
/* 80352544 0034F4A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80352548 0034F4A8 7C 08 02 A6 */ mflr r0
/* 8035254C 0034F4AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80352550 0034F4B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80352554 0034F4B4 7C 9F 23 78 */ mr r31, r4
/* 80352558 0034F4B8 93 C1 00 08 */ stw r30, 8(r1)
/* 8035255C 0034F4BC 7C 7E 1B 79 */ or. r30, r3, r3
/* 80352560 0034F4C0 41 82 00 50 */ beq lbl_803525B0
/* 80352564 0034F4C4 3C 60 80 3F */ lis r3, lbl_803EF6D8@ha
/* 80352568 0034F4C8 38 03 F6 D8 */ addi r0, r3, lbl_803EF6D8@l
/* 8035256C 0034F4CC 90 1E 00 00 */ stw r0, 0(r30)
/* 80352570 0034F4D0 80 7E 00 74 */ lwz r3, 0x74(r30)
/* 80352574 0034F4D4 28 03 00 00 */ cmplwi r3, 0
/* 80352578 0034F4D8 41 82 00 1C */ beq lbl_80352594
/* 8035257C 0034F4DC 4B FF E7 75 */ bl ClearPuddles__16CMediumAllocPoolFv
/* 80352580 0034F4E0 80 9E 00 74 */ lwz r4, 0x74(r30)
/* 80352584 0034F4E4 7F C3 F3 78 */ mr r3, r30
/* 80352588 0034F4E8 4B FF F1 79 */ bl FreeNormalAllocation__14CGameAllocatorFPCv
/* 8035258C 0034F4EC 38 00 00 00 */ li r0, 0
/* 80352590 0034F4F0 90 1E 00 74 */ stw r0, 0x74(r30)
lbl_80352594:
/* 80352594 0034F4F4 7F C3 F3 78 */ mr r3, r30
/* 80352598 0034F4F8 38 80 00 00 */ li r4, 0
/* 8035259C 0034F4FC 4B FC 36 FD */ bl __dt__10IAllocatorFv
/* 803525A0 0034F500 7F E0 07 35 */ extsh. r0, r31
/* 803525A4 0034F504 40 81 00 0C */ ble lbl_803525B0
/* 803525A8 0034F508 7F C3 F3 78 */ mr r3, r30
/* 803525AC 0034F50C 4B FC 33 85 */ bl Free__7CMemoryFPCv
lbl_803525B0:
/* 803525B0 0034F510 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803525B4 0034F514 7F C3 F3 78 */ mr r3, r30
/* 803525B8 0034F518 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803525BC 0034F51C 83 C1 00 08 */ lwz r30, 8(r1)
/* 803525C0 0034F520 7C 08 03 A6 */ mtlr r0
/* 803525C4 0034F524 38 21 00 10 */ addi r1, r1, 0x10
/* 803525C8 0034F528 4E 80 00 20 */ blr
.global __ct__14CGameAllocatorFv
__ct__14CGameAllocatorFv:
/* 803525CC 0034F52C 3C A0 80 3F */ lis r5, __vt__10IAllocator@ha
/* 803525D0 0034F530 3C 80 80 3F */ lis r4, lbl_803EF6D8@ha
/* 803525D4 0034F534 38 A5 D9 C0 */ addi r5, r5, __vt__10IAllocator@l
/* 803525D8 0034F538 38 00 00 00 */ li r0, 0
/* 803525DC 0034F53C 90 A3 00 00 */ stw r5, 0(r3)
/* 803525E0 0034F540 38 84 F6 D8 */ addi r4, r4, lbl_803EF6D8@l
/* 803525E4 0034F544 90 83 00 00 */ stw r4, 0(r3)
/* 803525E8 0034F548 98 03 00 04 */ stb r0, 4(r3)
/* 803525EC 0034F54C 90 03 00 08 */ stw r0, 8(r3)
/* 803525F0 0034F550 90 03 00 0C */ stw r0, 0xc(r3)
/* 803525F4 0034F554 90 03 00 10 */ stw r0, 0x10(r3)
/* 803525F8 0034F558 90 03 00 54 */ stw r0, 0x54(r3)
/* 803525FC 0034F55C 90 03 00 58 */ stw r0, 0x58(r3)
/* 80352600 0034F560 90 03 00 5C */ stw r0, 0x5c(r3)
/* 80352604 0034F564 90 03 00 60 */ stw r0, 0x60(r3)
/* 80352608 0034F568 90 03 00 64 */ stw r0, 0x64(r3)
/* 8035260C 0034F56C 90 03 00 68 */ stw r0, 0x68(r3)
/* 80352610 0034F570 98 03 00 6C */ stb r0, 0x6c(r3)
/* 80352614 0034F574 90 03 00 70 */ stw r0, 0x70(r3)
/* 80352618 0034F578 90 03 00 74 */ stw r0, 0x74(r3)
/* 8035261C 0034F57C 90 03 00 80 */ stw r0, 0x80(r3)
/* 80352620 0034F580 90 03 00 84 */ stw r0, 0x84(r3)
/* 80352624 0034F584 90 03 00 88 */ stw r0, 0x88(r3)
/* 80352628 0034F588 90 03 00 8C */ stw r0, 0x8c(r3)
/* 8035262C 0034F58C 90 03 00 90 */ stw r0, 0x90(r3)
/* 80352630 0034F590 90 03 00 94 */ stw r0, 0x94(r3)
/* 80352634 0034F594 90 03 00 98 */ stw r0, 0x98(r3)
/* 80352638 0034F598 90 03 00 9C */ stw r0, 0x9c(r3)
/* 8035263C 0034F59C 90 03 00 A0 */ stw r0, 0xa0(r3)
/* 80352640 0034F5A0 90 03 00 A4 */ stw r0, 0xa4(r3)
/* 80352644 0034F5A4 90 03 00 A8 */ stw r0, 0xa8(r3)
/* 80352648 0034F5A8 90 03 00 AC */ stw r0, 0xac(r3)
/* 8035264C 0034F5AC 90 03 00 B0 */ stw r0, 0xb0(r3)
/* 80352650 0034F5B0 90 03 00 B4 */ stw r0, 0xb4(r3)
/* 80352654 0034F5B4 90 03 00 B8 */ stw r0, 0xb8(r3)
/* 80352658 0034F5B8 90 03 00 BC */ stw r0, 0xbc(r3)
/* 8035265C 0034F5BC 4E 80 00 20 */ blr
.global GetMemInfoFromBlockPtr__14CGameAllocatorCFPCv
GetMemInfoFromBlockPtr__14CGameAllocatorCFPCv:
/* 80352660 0034F5C0 38 64 FF E0 */ addi r3, r4, -32
/* 80352664 0034F5C4 4E 80 00 20 */ blr
.section .sdata2, "a"
.global lbl_805AE9B8
lbl_805AE9B8:
# ROM: 0x3FB258
.4byte 0x3BA3D70A
.4byte 0
.section .rodata
.global lbl_803D8248
lbl_803D8248:
# ROM: 0x3D5248
.asciz "<NULL>"
.byte 0x3C
.asciz "SOURCE MODULE UNLOADED>"
.4byte 0x004D6564
.asciz "iumAllocMainData "
.asciz " - Ignore"
.byte 0x4D, 0x65
.asciz "mHead"
.byte 0x4D, 0x65
.asciz "mTail"
.byte 0x53, 0x6D
.asciz "allAllocMainData "
.asciz "SmallAllocBookKeeping"
.byte 0x53, 0x6D
.asciz "allAllocClass "
.asciz "MediumAllocClass "
.balign 4
.4byte 0