prime/asm/MetroidPrime/Tweaks/CTweakSlideShow.s

190 lines
10 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.global lbl_803EC000
lbl_803EC000:
# ROM: 0x3E9000
.4byte 0
.4byte 0
.4byte sub_8029c7cc
.4byte 0
.section .text, "ax"
.global __ct__15CTweakSlideShowFR12CInputStream
__ct__15CTweakSlideShowFR12CInputStream:
/* 8029C5F8 00299558 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8029C5FC 0029955C 7C 08 02 A6 */ mflr r0
/* 8029C600 00299560 3C A0 80 3F */ lis r5, lbl_803EC000@ha
/* 8029C604 00299564 3C C0 80 3E */ lis r6, lbl_803D9CC4@ha
/* 8029C608 00299568 90 01 00 54 */ stw r0, 0x54(r1)
/* 8029C60C 0029956C 38 06 9C C4 */ addi r0, r6, lbl_803D9CC4@l
/* 8029C610 00299570 38 A5 C0 00 */ addi r5, r5, lbl_803EC000@l
/* 8029C614 00299574 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8029C618 00299578 7C 9F 23 78 */ mr r31, r4
/* 8029C61C 0029957C 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8029C620 00299580 7C 7E 1B 78 */ mr r30, r3
/* 8029C624 00299584 38 6D A9 18 */ addi r3, r13, "_EmptyString__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"@sda21
/* 8029C628 00299588 90 1E 00 00 */ stw r0, 0(r30)
/* 8029C62C 0029958C 38 00 00 00 */ li r0, 0
/* 8029C630 00299590 90 BE 00 00 */ stw r5, 0(r30)
/* 8029C634 00299594 90 7E 00 04 */ stw r3, 4(r30)
/* 8029C638 00299598 90 1E 00 08 */ stw r0, 8(r30)
/* 8029C63C 0029959C 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8029C640 002995A0 90 7E 00 14 */ stw r3, 0x14(r30)
/* 8029C644 002995A4 90 1E 00 18 */ stw r0, 0x18(r30)
/* 8029C648 002995A8 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 8029C64C 002995AC 48 0A D9 61 */ bl White__6CColorFv
/* 8029C650 002995B0 80 03 00 00 */ lwz r0, 0(r3)
/* 8029C654 002995B4 90 1E 00 24 */ stw r0, 0x24(r30)
/* 8029C658 002995B8 48 0A D9 55 */ bl White__6CColorFv
/* 8029C65C 002995BC 80 03 00 00 */ lwz r0, 0(r3)
/* 8029C660 002995C0 C0 02 C0 38 */ lfs f0, lbl_805ADD58@sda21(r2)
/* 8029C664 002995C4 90 1E 00 28 */ stw r0, 0x28(r30)
/* 8029C668 002995C8 D0 1E 00 2C */ stfs f0, 0x2c(r30)
/* 8029C66C 002995CC D0 1E 00 30 */ stfs f0, 0x30(r30)
/* 8029C670 002995D0 D0 1E 00 34 */ stfs f0, 0x34(r30)
/* 8029C674 002995D4 D0 1E 00 38 */ stfs f0, 0x38(r30)
/* 8029C678 002995D8 D0 1E 00 3C */ stfs f0, 0x3c(r30)
/* 8029C67C 002995DC 48 0A D9 31 */ bl White__6CColorFv
/* 8029C680 002995E0 80 03 00 00 */ lwz r0, 0(r3)
/* 8029C684 002995E4 7F E4 FB 78 */ mr r4, r31
/* 8029C688 002995E8 C0 22 C0 38 */ lfs f1, lbl_805ADD58@sda21(r2)
/* 8029C68C 002995EC 38 61 00 2C */ addi r3, r1, 0x2c
/* 8029C690 002995F0 90 1E 00 40 */ stw r0, 0x40(r30)
/* 8029C694 002995F4 38 A1 00 0C */ addi r5, r1, 0xc
/* 8029C698 002995F8 C0 02 C0 3C */ lfs f0, lbl_805ADD5C@sda21(r2)
/* 8029C69C 002995FC D0 3E 00 44 */ stfs f1, 0x44(r30)
/* 8029C6A0 00299600 D0 3E 00 48 */ stfs f1, 0x48(r30)
/* 8029C6A4 00299604 D0 3E 00 4C */ stfs f1, 0x4c(r30)
/* 8029C6A8 00299608 D0 3E 00 50 */ stfs f1, 0x50(r30)
/* 8029C6AC 0029960C D0 1E 00 54 */ stfs f0, 0x54(r30)
/* 8029C6B0 00299610 D0 1E 00 58 */ stfs f0, 0x58(r30)
/* 8029C6B4 00299614 48 0A 1C 45 */ bl "__ct__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>FR12CInputStreamRCQ24rstl17rmemory_allocator"
/* 8029C6B8 00299618 38 7E 00 04 */ addi r3, r30, 4
/* 8029C6BC 0029961C 38 81 00 2C */ addi r4, r1, 0x2c
/* 8029C6C0 00299620 48 0A 16 9D */ bl "assign__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8029C6C4 00299624 38 61 00 2C */ addi r3, r1, 0x2c
/* 8029C6C8 00299628 48 0A 14 19 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8029C6CC 0029962C 7F E4 FB 78 */ mr r4, r31
/* 8029C6D0 00299630 38 61 00 1C */ addi r3, r1, 0x1c
/* 8029C6D4 00299634 38 A1 00 08 */ addi r5, r1, 8
/* 8029C6D8 00299638 48 0A 1C 21 */ bl "__ct__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>FR12CInputStreamRCQ24rstl17rmemory_allocator"
/* 8029C6DC 0029963C 38 7E 00 14 */ addi r3, r30, 0x14
/* 8029C6E0 00299640 38 81 00 1C */ addi r4, r1, 0x1c
/* 8029C6E4 00299644 48 0A 16 79 */ bl "assign__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8029C6E8 00299648 38 61 00 1C */ addi r3, r1, 0x1c
/* 8029C6EC 0029964C 48 0A 13 F5 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8029C6F0 00299650 7F E4 FB 78 */ mr r4, r31
/* 8029C6F4 00299654 38 61 00 18 */ addi r3, r1, 0x18
/* 8029C6F8 00299658 48 0C 6D 55 */ bl __ct__6CColorFR12CInputStream
/* 8029C6FC 0029965C 80 01 00 18 */ lwz r0, 0x18(r1)
/* 8029C700 00299660 7F E4 FB 78 */ mr r4, r31
/* 8029C704 00299664 38 61 00 14 */ addi r3, r1, 0x14
/* 8029C708 00299668 90 1E 00 24 */ stw r0, 0x24(r30)
/* 8029C70C 0029966C 48 0C 6D 41 */ bl __ct__6CColorFR12CInputStream
/* 8029C710 00299670 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029C714 00299674 7F E3 FB 78 */ mr r3, r31
/* 8029C718 00299678 90 1E 00 28 */ stw r0, 0x28(r30)
/* 8029C71C 0029967C 48 0A 25 0D */ bl ReadFloat__12CInputStreamFv
/* 8029C720 00299680 D0 3E 00 2C */ stfs f1, 0x2c(r30)
/* 8029C724 00299684 7F E3 FB 78 */ mr r3, r31
/* 8029C728 00299688 48 0A 25 01 */ bl ReadFloat__12CInputStreamFv
/* 8029C72C 0029968C D0 3E 00 30 */ stfs f1, 0x30(r30)
/* 8029C730 00299690 7F E3 FB 78 */ mr r3, r31
/* 8029C734 00299694 48 0A 24 F5 */ bl ReadFloat__12CInputStreamFv
/* 8029C738 00299698 D0 3E 00 34 */ stfs f1, 0x34(r30)
/* 8029C73C 0029969C 7F E3 FB 78 */ mr r3, r31
/* 8029C740 002996A0 48 0A 24 E9 */ bl ReadFloat__12CInputStreamFv
/* 8029C744 002996A4 D0 3E 00 38 */ stfs f1, 0x38(r30)
/* 8029C748 002996A8 7F E3 FB 78 */ mr r3, r31
/* 8029C74C 002996AC 48 0A 24 DD */ bl ReadFloat__12CInputStreamFv
/* 8029C750 002996B0 D0 3E 00 3C */ stfs f1, 0x3c(r30)
/* 8029C754 002996B4 7F E4 FB 78 */ mr r4, r31
/* 8029C758 002996B8 38 61 00 10 */ addi r3, r1, 0x10
/* 8029C75C 002996BC 48 0C 6C F1 */ bl __ct__6CColorFR12CInputStream
/* 8029C760 002996C0 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8029C764 002996C4 7F E3 FB 78 */ mr r3, r31
/* 8029C768 002996C8 90 1E 00 40 */ stw r0, 0x40(r30)
/* 8029C76C 002996CC 48 0A 24 BD */ bl ReadFloat__12CInputStreamFv
/* 8029C770 002996D0 D0 3E 00 44 */ stfs f1, 0x44(r30)
/* 8029C774 002996D4 7F E3 FB 78 */ mr r3, r31
/* 8029C778 002996D8 48 0A 24 B1 */ bl ReadFloat__12CInputStreamFv
/* 8029C77C 002996DC D0 3E 00 48 */ stfs f1, 0x48(r30)
/* 8029C780 002996E0 7F E3 FB 78 */ mr r3, r31
/* 8029C784 002996E4 48 0A 24 A5 */ bl ReadFloat__12CInputStreamFv
/* 8029C788 002996E8 D0 3E 00 4C */ stfs f1, 0x4c(r30)
/* 8029C78C 002996EC 7F E3 FB 78 */ mr r3, r31
/* 8029C790 002996F0 48 0A 24 99 */ bl ReadFloat__12CInputStreamFv
/* 8029C794 002996F4 D0 3E 00 50 */ stfs f1, 0x50(r30)
/* 8029C798 002996F8 7F E3 FB 78 */ mr r3, r31
/* 8029C79C 002996FC 48 0A 24 8D */ bl ReadFloat__12CInputStreamFv
/* 8029C7A0 00299700 D0 3E 00 54 */ stfs f1, 0x54(r30)
/* 8029C7A4 00299704 7F E3 FB 78 */ mr r3, r31
/* 8029C7A8 00299708 48 0A 24 81 */ bl ReadFloat__12CInputStreamFv
/* 8029C7AC 0029970C D0 3E 00 58 */ stfs f1, 0x58(r30)
/* 8029C7B0 00299710 7F C3 F3 78 */ mr r3, r30
/* 8029C7B4 00299714 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8029C7B8 00299718 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8029C7BC 0029971C 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 8029C7C0 00299720 7C 08 03 A6 */ mtlr r0
/* 8029C7C4 00299724 38 21 00 50 */ addi r1, r1, 0x50
/* 8029C7C8 00299728 4E 80 00 20 */ blr
.global sub_8029c7cc
sub_8029c7cc:
/* 8029C7CC 0029972C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029C7D0 00299730 7C 08 02 A6 */ mflr r0
/* 8029C7D4 00299734 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029C7D8 00299738 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029C7DC 0029973C 7C 9F 23 78 */ mr r31, r4
/* 8029C7E0 00299740 93 C1 00 08 */ stw r30, 8(r1)
/* 8029C7E4 00299744 7C 7E 1B 79 */ or. r30, r3, r3
/* 8029C7E8 00299748 41 82 00 54 */ beq lbl_8029C83C
/* 8029C7EC 0029974C 3C 60 80 3F */ lis r3, lbl_803EC000@ha
/* 8029C7F0 00299750 34 1E 00 14 */ addic. r0, r30, 0x14
/* 8029C7F4 00299754 38 03 C0 00 */ addi r0, r3, lbl_803EC000@l
/* 8029C7F8 00299758 90 1E 00 00 */ stw r0, 0(r30)
/* 8029C7FC 0029975C 41 82 00 0C */ beq lbl_8029C808
/* 8029C800 00299760 38 7E 00 14 */ addi r3, r30, 0x14
/* 8029C804 00299764 48 0A 12 DD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8029C808:
/* 8029C808 00299768 34 1E 00 04 */ addic. r0, r30, 4
/* 8029C80C 0029976C 41 82 00 0C */ beq lbl_8029C818
/* 8029C810 00299770 38 7E 00 04 */ addi r3, r30, 4
/* 8029C814 00299774 48 0A 12 CD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8029C818:
/* 8029C818 00299778 28 1E 00 00 */ cmplwi r30, 0
/* 8029C81C 0029977C 41 82 00 10 */ beq lbl_8029C82C
/* 8029C820 00299780 3C 60 80 3E */ lis r3, lbl_803D9CC4@ha
/* 8029C824 00299784 38 03 9C C4 */ addi r0, r3, lbl_803D9CC4@l
/* 8029C828 00299788 90 1E 00 00 */ stw r0, 0(r30)
lbl_8029C82C:
/* 8029C82C 0029978C 7F E0 07 35 */ extsh. r0, r31
/* 8029C830 00299790 40 81 00 0C */ ble lbl_8029C83C
/* 8029C834 00299794 7F C3 F3 78 */ mr r3, r30
/* 8029C838 00299798 48 00 00 21 */ bl sub_8029c858
lbl_8029C83C:
/* 8029C83C 0029979C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029C840 002997A0 7F C3 F3 78 */ mr r3, r30
/* 8029C844 002997A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029C848 002997A8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8029C84C 002997AC 7C 08 03 A6 */ mtlr r0
/* 8029C850 002997B0 38 21 00 10 */ addi r1, r1, 0x10
/* 8029C854 002997B4 4E 80 00 20 */ blr
.global sub_8029c858
sub_8029c858:
/* 8029C858 002997B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029C85C 002997BC 7C 08 02 A6 */ mflr r0
/* 8029C860 002997C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029C864 002997C4 4B D9 A5 61 */ bl "ReferenceCount__29TOneStatic<15CTweakSlideShow>Fv"
/* 8029C868 002997C8 80 83 00 00 */ lwz r4, 0(r3)
/* 8029C86C 002997CC 38 04 FF FF */ addi r0, r4, -1
/* 8029C870 002997D0 90 03 00 00 */ stw r0, 0(r3)
/* 8029C874 002997D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029C878 002997D8 7C 08 03 A6 */ mtlr r0
/* 8029C87C 002997DC 38 21 00 10 */ addi r1, r1, 0x10
/* 8029C880 002997E0 4E 80 00 20 */ blr