411 lines
18 KiB
ArmAsm
411 lines
18 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
|
|
.global iosCreateHeap
|
|
iosCreateHeap:
|
|
/* 80050280 0004C0C0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80050284 0004C0C4 7C 08 02 A6 */ mflr r0
|
|
/* 80050288 0004C0C8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8005028C 0004C0CC 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80050290 0004C0D0 3B E0 FF FC */ li r31, -0x4
|
|
/* 80050294 0004C0D4 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80050298 0004C0D8 7C 9E 23 78 */ mr r30, r4
|
|
/* 8005029C 0004C0DC 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 800502A0 0004C0E0 7C 7D 1B 78 */ mr r29, r3
|
|
/* 800502A4 0004C0E4 4B FD 15 7D */ bl OSDisableInterrupts
|
|
/* 800502A8 0004C0E8 57 A0 06 FF */ clrlwi. r0, r29, 27
|
|
/* 800502AC 0004C0EC 40 82 00 E0 */ bne lbl_8005038C
|
|
/* 800502B0 0004C0F0 3C 80 80 4C */ lis r4, __heaps@ha
|
|
/* 800502B4 0004C0F4 84 04 DE 60 */ lwzu r0, __heaps@l(r4)
|
|
/* 800502B8 0004C0F8 3B E0 00 00 */ li r31, 0x0
|
|
/* 800502BC 0004C0FC 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 800502C0 0004C100 41 82 00 78 */ beq lbl_80050338
|
|
/* 800502C4 0004C104 80 04 00 10 */ lwz r0, 0x10(r4)
|
|
/* 800502C8 0004C108 3B E0 00 01 */ li r31, 0x1
|
|
/* 800502CC 0004C10C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 800502D0 0004C110 41 82 00 68 */ beq lbl_80050338
|
|
/* 800502D4 0004C114 80 04 00 20 */ lwz r0, 0x20(r4)
|
|
/* 800502D8 0004C118 3B E0 00 02 */ li r31, 0x2
|
|
/* 800502DC 0004C11C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 800502E0 0004C120 41 82 00 58 */ beq lbl_80050338
|
|
/* 800502E4 0004C124 80 04 00 30 */ lwz r0, 0x30(r4)
|
|
/* 800502E8 0004C128 3B E0 00 03 */ li r31, 0x3
|
|
/* 800502EC 0004C12C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 800502F0 0004C130 41 82 00 48 */ beq lbl_80050338
|
|
/* 800502F4 0004C134 80 04 00 40 */ lwz r0, 0x40(r4)
|
|
/* 800502F8 0004C138 3B E0 00 04 */ li r31, 0x4
|
|
/* 800502FC 0004C13C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80050300 0004C140 41 82 00 38 */ beq lbl_80050338
|
|
/* 80050304 0004C144 80 04 00 50 */ lwz r0, 0x50(r4)
|
|
/* 80050308 0004C148 3B E0 00 05 */ li r31, 0x5
|
|
/* 8005030C 0004C14C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80050310 0004C150 41 82 00 28 */ beq lbl_80050338
|
|
/* 80050314 0004C154 80 04 00 60 */ lwz r0, 0x60(r4)
|
|
/* 80050318 0004C158 3B E0 00 06 */ li r31, 0x6
|
|
/* 8005031C 0004C15C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80050320 0004C160 41 82 00 18 */ beq lbl_80050338
|
|
/* 80050324 0004C164 80 04 00 70 */ lwz r0, 0x70(r4)
|
|
/* 80050328 0004C168 3B E0 00 07 */ li r31, 0x7
|
|
/* 8005032C 0004C16C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80050330 0004C170 41 82 00 08 */ beq lbl_80050338
|
|
/* 80050334 0004C174 3B E0 00 08 */ li r31, 0x8
|
|
.global lbl_80050338
|
|
lbl_80050338:
|
|
/* 80050338 0004C178 2C 1F 00 08 */ cmpwi r31, 0x8
|
|
/* 8005033C 0004C17C 40 82 00 0C */ bne lbl_80050348
|
|
/* 80050340 0004C180 3B E0 FF FB */ li r31, -0x5
|
|
/* 80050344 0004C184 48 00 00 48 */ b lbl_8005038C
|
|
.global lbl_80050348
|
|
lbl_80050348:
|
|
/* 80050348 0004C188 3C A0 80 4C */ lis r5, __heaps@ha
|
|
/* 8005034C 0004C18C 57 E0 20 36 */ slwi r0, r31, 4
|
|
/* 80050350 0004C190 38 A5 DE 60 */ addi r5, r5, __heaps@l
|
|
/* 80050354 0004C194 3C 80 BA BE */ lis r4, 0xbabe
|
|
/* 80050358 0004C198 7C C5 02 14 */ add r6, r5, r0
|
|
/* 8005035C 0004C19C 38 00 00 00 */ li r0, 0x0
|
|
/* 80050360 0004C1A0 93 A6 00 00 */ stw r29, 0x0(r6)
|
|
/* 80050364 0004C1A4 38 BE FF F0 */ addi r5, r30, -0x10
|
|
/* 80050368 0004C1A8 93 C6 00 08 */ stw r30, 0x8(r6)
|
|
/* 8005036C 0004C1AC 93 A6 00 0C */ stw r29, 0xc(r6)
|
|
/* 80050370 0004C1B0 90 9D 00 00 */ stw r4, 0x0(r29)
|
|
/* 80050374 0004C1B4 80 86 00 0C */ lwz r4, 0xc(r6)
|
|
/* 80050378 0004C1B8 90 A4 00 04 */ stw r5, 0x4(r4)
|
|
/* 8005037C 0004C1BC 80 86 00 0C */ lwz r4, 0xc(r6)
|
|
/* 80050380 0004C1C0 90 04 00 08 */ stw r0, 0x8(r4)
|
|
/* 80050384 0004C1C4 80 86 00 0C */ lwz r4, 0xc(r6)
|
|
/* 80050388 0004C1C8 90 04 00 0C */ stw r0, 0xc(r4)
|
|
.global lbl_8005038C
|
|
lbl_8005038C:
|
|
/* 8005038C 0004C1CC 4B FD 14 D5 */ bl OSRestoreInterrupts
|
|
/* 80050390 0004C1D0 7F E3 FB 78 */ mr r3, r31
|
|
/* 80050394 0004C1D4 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80050398 0004C1D8 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8005039C 0004C1DC 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 800503A0 0004C1E0 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 800503A4 0004C1E4 7C 08 03 A6 */ mtlr r0
|
|
/* 800503A8 0004C1E8 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 800503AC 0004C1EC 4E 80 00 20 */ blr
|
|
.global __iosAlloc
|
|
__iosAlloc:
|
|
/* 800503B0 0004C1F0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 800503B4 0004C1F4 7C 08 02 A6 */ mflr r0
|
|
/* 800503B8 0004C1F8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 800503BC 0004C1FC 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 800503C0 0004C200 3B E0 00 00 */ li r31, 0x0
|
|
/* 800503C4 0004C204 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 800503C8 0004C208 7C BE 2B 78 */ mr r30, r5
|
|
/* 800503CC 0004C20C 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 800503D0 0004C210 7C 9D 23 78 */ mr r29, r4
|
|
/* 800503D4 0004C214 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 800503D8 0004C218 7C 7C 1B 78 */ mr r28, r3
|
|
/* 800503DC 0004C21C 4B FD 14 45 */ bl OSDisableInterrupts
|
|
/* 800503E0 0004C220 2C 1D 00 00 */ cmpwi r29, 0x0
|
|
/* 800503E4 0004C224 41 82 01 A0 */ beq lbl_80050584
|
|
/* 800503E8 0004C228 2C 1E 00 00 */ cmpwi r30, 0x0
|
|
/* 800503EC 0004C22C 41 82 01 98 */ beq lbl_80050584
|
|
/* 800503F0 0004C230 38 1E FF FF */ addi r0, r30, -0x1
|
|
/* 800503F4 0004C234 7F C0 00 39 */ and. r0, r30, r0
|
|
/* 800503F8 0004C238 40 82 01 8C */ bne lbl_80050584
|
|
/* 800503FC 0004C23C 28 1E 00 20 */ cmplwi r30, 0x20
|
|
/* 80050400 0004C240 40 80 00 08 */ bge lbl_80050408
|
|
/* 80050404 0004C244 3B C0 00 20 */ li r30, 0x20
|
|
.global lbl_80050408
|
|
lbl_80050408:
|
|
/* 80050408 0004C248 28 1C 00 07 */ cmplwi r28, 0x7
|
|
/* 8005040C 0004C24C 38 1D 00 1F */ addi r0, r29, 0x1f
|
|
/* 80050410 0004C250 54 1D 00 34 */ clrrwi r29, r0, 5
|
|
/* 80050414 0004C254 41 81 00 1C */ bgt lbl_80050430
|
|
/* 80050418 0004C258 3C 80 80 4C */ lis r4, __heaps@ha
|
|
/* 8005041C 0004C25C 57 80 20 36 */ slwi r0, r28, 4
|
|
/* 80050420 0004C260 38 84 DE 60 */ addi r4, r4, __heaps@l
|
|
/* 80050424 0004C264 7C 04 00 6E */ lwzux r0, r4, r0
|
|
/* 80050428 0004C268 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 8005042C 0004C26C 40 82 00 0C */ bne lbl_80050438
|
|
.global lbl_80050430
|
|
lbl_80050430:
|
|
/* 80050430 0004C270 3B E0 00 00 */ li r31, 0x0
|
|
/* 80050434 0004C274 48 00 01 50 */ b lbl_80050584
|
|
.global lbl_80050438
|
|
lbl_80050438:
|
|
/* 80050438 0004C278 81 04 00 0C */ lwz r8, 0xc(r4)
|
|
/* 8005043C 0004C27C 38 DE FF FF */ addi r6, r30, -0x1
|
|
/* 80050440 0004C280 38 A0 00 00 */ li r5, 0x0
|
|
/* 80050444 0004C284 48 00 00 58 */ b lbl_8005049C
|
|
.global lbl_80050448
|
|
lbl_80050448:
|
|
/* 80050448 0004C288 80 E8 00 04 */ lwz r7, 0x4(r8)
|
|
/* 8005044C 0004C28C 38 08 00 10 */ addi r0, r8, 0x10
|
|
/* 80050450 0004C290 7C 00 30 38 */ and r0, r0, r6
|
|
/* 80050454 0004C294 7C 07 E8 40 */ cmplw r7, r29
|
|
/* 80050458 0004C298 7C 00 F0 50 */ subf r0, r0, r30
|
|
/* 8005045C 0004C29C 7C C0 00 38 */ and r0, r6, r0
|
|
/* 80050460 0004C2A0 40 82 00 14 */ bne lbl_80050474
|
|
/* 80050464 0004C2A4 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80050468 0004C2A8 40 82 00 0C */ bne lbl_80050474
|
|
/* 8005046C 0004C2AC 7D 05 43 78 */ mr r5, r8
|
|
/* 80050470 0004C2B0 48 00 00 34 */ b lbl_800504A4
|
|
.global lbl_80050474
|
|
lbl_80050474:
|
|
/* 80050474 0004C2B4 7C 1D 02 14 */ add r0, r29, r0
|
|
/* 80050478 0004C2B8 7C 07 00 40 */ cmplw r7, r0
|
|
/* 8005047C 0004C2BC 41 80 00 1C */ blt lbl_80050498
|
|
/* 80050480 0004C2C0 2C 05 00 00 */ cmpwi r5, 0x0
|
|
/* 80050484 0004C2C4 41 82 00 10 */ beq lbl_80050494
|
|
/* 80050488 0004C2C8 80 05 00 04 */ lwz r0, 0x4(r5)
|
|
/* 8005048C 0004C2CC 7C 07 00 40 */ cmplw r7, r0
|
|
/* 80050490 0004C2D0 40 80 00 08 */ bge lbl_80050498
|
|
.global lbl_80050494
|
|
lbl_80050494:
|
|
/* 80050494 0004C2D4 7D 05 43 78 */ mr r5, r8
|
|
.global lbl_80050498
|
|
lbl_80050498:
|
|
/* 80050498 0004C2D8 81 08 00 0C */ lwz r8, 0xc(r8)
|
|
.global lbl_8005049C
|
|
lbl_8005049C:
|
|
/* 8005049C 0004C2DC 2C 08 00 00 */ cmpwi r8, 0x0
|
|
/* 800504A0 0004C2E0 40 82 FF A8 */ bne lbl_80050448
|
|
.global lbl_800504A4
|
|
lbl_800504A4:
|
|
/* 800504A4 0004C2E4 2C 05 00 00 */ cmpwi r5, 0x0
|
|
/* 800504A8 0004C2E8 41 82 00 DC */ beq lbl_80050584
|
|
/* 800504AC 0004C2EC 38 FE FF FF */ addi r7, r30, -0x1
|
|
/* 800504B0 0004C2F0 38 05 00 10 */ addi r0, r5, 0x10
|
|
/* 800504B4 0004C2F4 7C 00 38 38 */ and r0, r0, r7
|
|
/* 800504B8 0004C2F8 80 C5 00 04 */ lwz r6, 0x4(r5)
|
|
/* 800504BC 0004C2FC 7C 00 F0 50 */ subf r0, r0, r30
|
|
/* 800504C0 0004C300 7C E8 00 38 */ and r8, r7, r0
|
|
/* 800504C4 0004C304 7C FD 42 14 */ add r7, r29, r8
|
|
/* 800504C8 0004C308 38 07 00 10 */ addi r0, r7, 0x10
|
|
/* 800504CC 0004C30C 7C 06 00 40 */ cmplw r6, r0
|
|
/* 800504D0 0004C310 40 81 00 48 */ ble lbl_80050518
|
|
/* 800504D4 0004C314 7C C5 EA 14 */ add r6, r5, r29
|
|
/* 800504D8 0004C318 3C 00 BA BE */ lis r0, 0xbabe
|
|
/* 800504DC 0004C31C 7D 28 32 14 */ add r9, r8, r6
|
|
/* 800504E0 0004C320 90 09 00 10 */ stw r0, 0x10(r9)
|
|
/* 800504E4 0004C324 80 05 00 04 */ lwz r0, 0x4(r5)
|
|
/* 800504E8 0004C328 7C 1D 00 50 */ subf r0, r29, r0
|
|
/* 800504EC 0004C32C 7C C8 00 50 */ subf r6, r8, r0
|
|
/* 800504F0 0004C330 38 06 FF F0 */ addi r0, r6, -0x10
|
|
/* 800504F4 0004C334 90 09 00 14 */ stw r0, 0x14(r9)
|
|
/* 800504F8 0004C338 80 C5 00 0C */ lwz r6, 0xc(r5)
|
|
/* 800504FC 0004C33C 90 C9 00 1C */ stw r6, 0x1c(r9)
|
|
/* 80050500 0004C340 39 29 00 10 */ addi r9, r9, 0x10
|
|
/* 80050504 0004C344 2C 06 00 00 */ cmpwi r6, 0x0
|
|
/* 80050508 0004C348 41 82 00 08 */ beq lbl_80050510
|
|
/* 8005050C 0004C34C 91 26 00 08 */ stw r9, 0x8(r6)
|
|
.global lbl_80050510
|
|
lbl_80050510:
|
|
/* 80050510 0004C350 91 25 00 0C */ stw r9, 0xc(r5)
|
|
/* 80050514 0004C354 90 E5 00 04 */ stw r7, 0x4(r5)
|
|
.global lbl_80050518
|
|
lbl_80050518:
|
|
/* 80050518 0004C358 3C C0 BA BE */ lis r6, 0xBABE0001@ha
|
|
/* 8005051C 0004C35C 38 06 00 01 */ addi r0, r6, 0xBABE0001@l
|
|
/* 80050520 0004C360 90 05 00 00 */ stw r0, 0x0(r5)
|
|
/* 80050524 0004C364 80 C5 00 08 */ lwz r6, 0x8(r5)
|
|
/* 80050528 0004C368 2C 06 00 00 */ cmpwi r6, 0x0
|
|
/* 8005052C 0004C36C 41 82 00 10 */ beq lbl_8005053C
|
|
/* 80050530 0004C370 80 05 00 0C */ lwz r0, 0xc(r5)
|
|
/* 80050534 0004C374 90 06 00 0C */ stw r0, 0xc(r6)
|
|
/* 80050538 0004C378 48 00 00 0C */ b lbl_80050544
|
|
.global lbl_8005053C
|
|
lbl_8005053C:
|
|
/* 8005053C 0004C37C 80 05 00 0C */ lwz r0, 0xc(r5)
|
|
/* 80050540 0004C380 90 04 00 0C */ stw r0, 0xc(r4)
|
|
.global lbl_80050544
|
|
lbl_80050544:
|
|
/* 80050544 0004C384 80 85 00 0C */ lwz r4, 0xc(r5)
|
|
/* 80050548 0004C388 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 8005054C 0004C38C 41 82 00 0C */ beq lbl_80050558
|
|
/* 80050550 0004C390 80 05 00 08 */ lwz r0, 0x8(r5)
|
|
/* 80050554 0004C394 90 04 00 08 */ stw r0, 0x8(r4)
|
|
.global lbl_80050558
|
|
lbl_80050558:
|
|
/* 80050558 0004C398 38 00 00 00 */ li r0, 0x0
|
|
/* 8005055C 0004C39C 90 05 00 0C */ stw r0, 0xc(r5)
|
|
/* 80050560 0004C3A0 7F E5 42 14 */ add r31, r5, r8
|
|
/* 80050564 0004C3A4 2C 08 00 00 */ cmpwi r8, 0x0
|
|
/* 80050568 0004C3A8 90 05 00 08 */ stw r0, 0x8(r5)
|
|
/* 8005056C 0004C3AC 3B FF 00 10 */ addi r31, r31, 0x10
|
|
/* 80050570 0004C3B0 41 82 00 14 */ beq lbl_80050584
|
|
/* 80050574 0004C3B4 3C 80 BA BE */ lis r4, 0xBABE0002@ha
|
|
/* 80050578 0004C3B8 38 04 00 02 */ addi r0, r4, 0xBABE0002@l
|
|
/* 8005057C 0004C3BC 90 1F FF F0 */ stw r0, -0x10(r31)
|
|
/* 80050580 0004C3C0 90 BF FF F8 */ stw r5, -0x8(r31)
|
|
.global lbl_80050584
|
|
lbl_80050584:
|
|
/* 80050584 0004C3C4 4B FD 12 DD */ bl OSRestoreInterrupts
|
|
/* 80050588 0004C3C8 7F E3 FB 78 */ mr r3, r31
|
|
/* 8005058C 0004C3CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80050590 0004C3D0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80050594 0004C3D4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80050598 0004C3D8 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 8005059C 0004C3DC 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 800505A0 0004C3E0 7C 08 03 A6 */ mtlr r0
|
|
/* 800505A4 0004C3E4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 800505A8 0004C3E8 4E 80 00 20 */ blr
|
|
/* 800505AC 0004C3EC 00 00 00 00 */ .4byte 0x00000000
|
|
.global iosAllocAligned
|
|
iosAllocAligned:
|
|
/* 800505B0 0004C3F0 4B FF FE 00 */ b __iosAlloc
|
|
/* 800505B4 0004C3F4 00 00 00 00 */ .4byte 0x00000000
|
|
/* 800505B8 0004C3F8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 800505BC 0004C3FC 00 00 00 00 */ .4byte 0x00000000
|
|
.global iosFree
|
|
iosFree:
|
|
/* 800505C0 0004C400 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 800505C4 0004C404 7C 08 02 A6 */ mflr r0
|
|
/* 800505C8 0004C408 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 800505CC 0004C40C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 800505D0 0004C410 3B E0 FF FC */ li r31, -0x4
|
|
/* 800505D4 0004C414 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 800505D8 0004C418 7C 9E 23 78 */ mr r30, r4
|
|
/* 800505DC 0004C41C 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 800505E0 0004C420 7C 7D 1B 78 */ mr r29, r3
|
|
/* 800505E4 0004C424 4B FD 12 3D */ bl OSDisableInterrupts
|
|
/* 800505E8 0004C428 2C 1E 00 00 */ cmpwi r30, 0x0
|
|
/* 800505EC 0004C42C 41 82 01 98 */ beq lbl_80050784
|
|
/* 800505F0 0004C430 28 1D 00 07 */ cmplwi r29, 0x7
|
|
/* 800505F4 0004C434 41 81 00 20 */ bgt lbl_80050614
|
|
/* 800505F8 0004C438 3C 80 80 4C */ lis r4, __heaps@ha
|
|
/* 800505FC 0004C43C 57 A0 20 36 */ slwi r0, r29, 4
|
|
/* 80050600 0004C440 38 84 DE 60 */ addi r4, r4, __heaps@l
|
|
/* 80050604 0004C444 7C A4 02 14 */ add r5, r4, r0
|
|
/* 80050608 0004C448 7C 84 00 2E */ lwzx r4, r4, r0
|
|
/* 8005060C 0004C44C 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 80050610 0004C450 40 82 00 0C */ bne lbl_8005061C
|
|
.global lbl_80050614
|
|
lbl_80050614:
|
|
/* 80050614 0004C454 3B E0 FF FC */ li r31, -0x4
|
|
/* 80050618 0004C458 48 00 01 6C */ b lbl_80050784
|
|
.global lbl_8005061C
|
|
lbl_8005061C:
|
|
/* 8005061C 0004C45C 38 04 00 10 */ addi r0, r4, 0x10
|
|
/* 80050620 0004C460 7C 1E 00 40 */ cmplw r30, r0
|
|
/* 80050624 0004C464 41 80 01 60 */ blt lbl_80050784
|
|
/* 80050628 0004C468 80 05 00 08 */ lwz r0, 0x8(r5)
|
|
/* 8005062C 0004C46C 7C 04 02 14 */ add r0, r4, r0
|
|
/* 80050630 0004C470 7C 1E 00 40 */ cmplw r30, r0
|
|
/* 80050634 0004C474 41 81 01 50 */ bgt lbl_80050784
|
|
/* 80050638 0004C478 80 9E FF F0 */ lwz r4, -0x10(r30)
|
|
/* 8005063C 0004C47C 38 DE FF F0 */ addi r6, r30, -0x10
|
|
/* 80050640 0004C480 3C 04 45 42 */ addis r0, r4, 0x4542
|
|
/* 80050644 0004C484 28 00 00 02 */ cmplwi r0, 0x2
|
|
/* 80050648 0004C488 40 82 00 08 */ bne lbl_80050650
|
|
/* 8005064C 0004C48C 80 C6 00 08 */ lwz r6, 0x8(r6)
|
|
.global lbl_80050650
|
|
lbl_80050650:
|
|
/* 80050650 0004C490 80 86 00 00 */ lwz r4, 0x0(r6)
|
|
/* 80050654 0004C494 3C 04 45 42 */ addis r0, r4, 0x4542
|
|
/* 80050658 0004C498 28 00 00 01 */ cmplwi r0, 0x1
|
|
/* 8005065C 0004C49C 40 82 01 28 */ bne lbl_80050784
|
|
/* 80050660 0004C4A0 3C 00 BA BE */ lis r0, 0xbabe
|
|
/* 80050664 0004C4A4 90 06 00 00 */ stw r0, 0x0(r6)
|
|
/* 80050668 0004C4A8 80 85 00 0C */ lwz r4, 0xc(r5)
|
|
/* 8005066C 0004C4AC 7C 87 23 78 */ mr r7, r4
|
|
/* 80050670 0004C4B0 48 00 00 20 */ b lbl_80050690
|
|
/* 80050674 0004C4B4 60 00 00 00 */ nop
|
|
.global lbl_80050678
|
|
lbl_80050678:
|
|
/* 80050678 0004C4B8 80 07 00 0C */ lwz r0, 0xc(r7)
|
|
/* 8005067C 0004C4BC 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80050680 0004C4C0 41 82 00 18 */ beq lbl_80050698
|
|
/* 80050684 0004C4C4 7C 00 30 40 */ cmplw r0, r6
|
|
/* 80050688 0004C4C8 41 81 00 10 */ bgt lbl_80050698
|
|
/* 8005068C 0004C4CC 7C 07 03 78 */ mr r7, r0
|
|
.global lbl_80050690
|
|
lbl_80050690:
|
|
/* 80050690 0004C4D0 2C 07 00 00 */ cmpwi r7, 0x0
|
|
/* 80050694 0004C4D4 40 82 FF E4 */ bne lbl_80050678
|
|
.global lbl_80050698
|
|
lbl_80050698:
|
|
/* 80050698 0004C4D8 2C 07 00 00 */ cmpwi r7, 0x0
|
|
/* 8005069C 0004C4DC 41 82 00 30 */ beq lbl_800506CC
|
|
/* 800506A0 0004C4E0 7C 06 38 40 */ cmplw r6, r7
|
|
/* 800506A4 0004C4E4 40 81 00 28 */ ble lbl_800506CC
|
|
/* 800506A8 0004C4E8 90 E6 00 08 */ stw r7, 0x8(r6)
|
|
/* 800506AC 0004C4EC 80 07 00 0C */ lwz r0, 0xc(r7)
|
|
/* 800506B0 0004C4F0 90 06 00 0C */ stw r0, 0xc(r6)
|
|
/* 800506B4 0004C4F4 90 C7 00 0C */ stw r6, 0xc(r7)
|
|
/* 800506B8 0004C4F8 80 86 00 0C */ lwz r4, 0xc(r6)
|
|
/* 800506BC 0004C4FC 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 800506C0 0004C500 41 82 00 2C */ beq lbl_800506EC
|
|
/* 800506C4 0004C504 90 C4 00 08 */ stw r6, 0x8(r4)
|
|
/* 800506C8 0004C508 48 00 00 24 */ b lbl_800506EC
|
|
.global lbl_800506CC
|
|
lbl_800506CC:
|
|
/* 800506CC 0004C50C 90 86 00 0C */ stw r4, 0xc(r6)
|
|
/* 800506D0 0004C510 38 00 00 00 */ li r0, 0x0
|
|
/* 800506D4 0004C514 90 C5 00 0C */ stw r6, 0xc(r5)
|
|
/* 800506D8 0004C518 90 06 00 08 */ stw r0, 0x8(r6)
|
|
/* 800506DC 0004C51C 80 86 00 0C */ lwz r4, 0xc(r6)
|
|
/* 800506E0 0004C520 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 800506E4 0004C524 41 82 00 08 */ beq lbl_800506EC
|
|
/* 800506E8 0004C528 90 C4 00 08 */ stw r6, 0x8(r4)
|
|
.global lbl_800506EC
|
|
lbl_800506EC:
|
|
/* 800506EC 0004C52C 2C 06 00 00 */ cmpwi r6, 0x0
|
|
/* 800506F0 0004C530 41 82 00 44 */ beq lbl_80050734
|
|
/* 800506F4 0004C534 80 06 00 04 */ lwz r0, 0x4(r6)
|
|
/* 800506F8 0004C538 80 A6 00 0C */ lwz r5, 0xc(r6)
|
|
/* 800506FC 0004C53C 7C 86 02 14 */ add r4, r6, r0
|
|
/* 80050700 0004C540 38 04 00 10 */ addi r0, r4, 0x10
|
|
/* 80050704 0004C544 7C 05 00 40 */ cmplw r5, r0
|
|
/* 80050708 0004C548 40 82 00 2C */ bne lbl_80050734
|
|
/* 8005070C 0004C54C 80 85 00 0C */ lwz r4, 0xc(r5)
|
|
/* 80050710 0004C550 90 86 00 0C */ stw r4, 0xc(r6)
|
|
/* 80050714 0004C554 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 80050718 0004C558 41 82 00 08 */ beq lbl_80050720
|
|
/* 8005071C 0004C55C 90 C4 00 08 */ stw r6, 0x8(r4)
|
|
.global lbl_80050720
|
|
lbl_80050720:
|
|
/* 80050720 0004C560 80 86 00 04 */ lwz r4, 0x4(r6)
|
|
/* 80050724 0004C564 80 05 00 04 */ lwz r0, 0x4(r5)
|
|
/* 80050728 0004C568 7C 80 22 14 */ add r4, r0, r4
|
|
/* 8005072C 0004C56C 38 04 00 10 */ addi r0, r4, 0x10
|
|
/* 80050730 0004C570 90 06 00 04 */ stw r0, 0x4(r6)
|
|
.global lbl_80050734
|
|
lbl_80050734:
|
|
/* 80050734 0004C574 80 A6 00 08 */ lwz r5, 0x8(r6)
|
|
/* 80050738 0004C578 2C 05 00 00 */ cmpwi r5, 0x0
|
|
/* 8005073C 0004C57C 41 82 00 44 */ beq lbl_80050780
|
|
/* 80050740 0004C580 80 05 00 04 */ lwz r0, 0x4(r5)
|
|
/* 80050744 0004C584 80 C5 00 0C */ lwz r6, 0xc(r5)
|
|
/* 80050748 0004C588 7C 85 02 14 */ add r4, r5, r0
|
|
/* 8005074C 0004C58C 38 04 00 10 */ addi r0, r4, 0x10
|
|
/* 80050750 0004C590 7C 06 00 40 */ cmplw r6, r0
|
|
/* 80050754 0004C594 40 82 00 2C */ bne lbl_80050780
|
|
/* 80050758 0004C598 80 86 00 0C */ lwz r4, 0xc(r6)
|
|
/* 8005075C 0004C59C 90 85 00 0C */ stw r4, 0xc(r5)
|
|
/* 80050760 0004C5A0 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 80050764 0004C5A4 41 82 00 08 */ beq lbl_8005076C
|
|
/* 80050768 0004C5A8 90 A4 00 08 */ stw r5, 0x8(r4)
|
|
.global lbl_8005076C
|
|
lbl_8005076C:
|
|
/* 8005076C 0004C5AC 80 85 00 04 */ lwz r4, 0x4(r5)
|
|
/* 80050770 0004C5B0 80 06 00 04 */ lwz r0, 0x4(r6)
|
|
/* 80050774 0004C5B4 7C 80 22 14 */ add r4, r0, r4
|
|
/* 80050778 0004C5B8 38 04 00 10 */ addi r0, r4, 0x10
|
|
/* 8005077C 0004C5BC 90 05 00 04 */ stw r0, 0x4(r5)
|
|
.global lbl_80050780
|
|
lbl_80050780:
|
|
/* 80050780 0004C5C0 3B E0 00 00 */ li r31, 0x0
|
|
.global lbl_80050784
|
|
lbl_80050784:
|
|
/* 80050784 0004C5C4 4B FD 10 DD */ bl OSRestoreInterrupts
|
|
/* 80050788 0004C5C8 7F E3 FB 78 */ mr r3, r31
|
|
/* 8005078C 0004C5CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80050790 0004C5D0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80050794 0004C5D4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80050798 0004C5D8 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8005079C 0004C5DC 7C 08 03 A6 */ mtlr r0
|
|
/* 800507A0 0004C5E0 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 800507A4 0004C5E4 4E 80 00 20 */ blr
|
|
/* 800507A8 0004C5E8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 800507AC 0004C5EC 00 00 00 00 */ .4byte 0x00000000
|
|
.include "macros.inc"
|
|
|
|
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
|
|
.global __heaps
|
|
__heaps:
|
|
.skip 0x80
|