prime/asm/Kyoto/Animation/CMetaAnimSequence.s

566 lines
28 KiB
ArmAsm

.include "macros.inc"
.section .data
.global lbl_803ECD70
lbl_803ECD70:
# ROM: 0x3E9D70
.4byte 0
.4byte 0
.4byte __dt__17CMetaAnimSequenceFv
.4byte GetAnimationTree__9IMetaAnimCFRC15CAnimSysContextRC24CMetaAnimTreeBuildOrders
.4byte "GetUniquePrimitives__17CMetaAnimSequenceCFRQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>"
.4byte sub_802e1744
.4byte WriteAnimData__17CMetaAnimSequenceCFR13COutputStream
.4byte VGetAnimationTree__17CMetaAnimSequenceCFRC15CAnimSysContextRC24CMetaAnimTreeBuildOrders
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global __dt__17CMetaAnimSequenceFv
__dt__17CMetaAnimSequenceFv:
/* 802E1670 002DE5D0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802E1674 002DE5D4 7C 08 02 A6 */ mflr r0
/* 802E1678 002DE5D8 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E167C 002DE5DC 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802E1680 002DE5E0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 802E1684 002DE5E4 93 A1 00 24 */ stw r29, 0x24(r1)
/* 802E1688 002DE5E8 7C 9D 23 78 */ mr r29, r4
/* 802E168C 002DE5EC 93 81 00 20 */ stw r28, 0x20(r1)
/* 802E1690 002DE5F0 7C 7C 1B 79 */ or. r28, r3, r3
/* 802E1694 002DE5F4 41 82 00 8C */ beq lbl_802E1720
/* 802E1698 002DE5F8 3C 60 80 3F */ lis r3, lbl_803ECD70@ha
/* 802E169C 002DE5FC 34 1C 00 04 */ addic. r0, r28, 4
/* 802E16A0 002DE600 38 03 CD 70 */ addi r0, r3, lbl_803ECD70@l
/* 802E16A4 002DE604 90 1C 00 00 */ stw r0, 0(r28)
/* 802E16A8 002DE608 41 82 00 54 */ beq lbl_802E16FC
/* 802E16AC 002DE60C 80 1C 00 08 */ lwz r0, 8(r28)
/* 802E16B0 002DE610 83 DC 00 10 */ lwz r30, 0x10(r28)
/* 802E16B4 002DE614 54 00 10 3A */ slwi r0, r0, 2
/* 802E16B8 002DE618 7F FE 02 14 */ add r31, r30, r0
/* 802E16BC 002DE61C 93 C1 00 0C */ stw r30, 0xc(r1)
/* 802E16C0 002DE620 93 E1 00 14 */ stw r31, 0x14(r1)
/* 802E16C4 002DE624 93 E1 00 10 */ stw r31, 0x10(r1)
/* 802E16C8 002DE628 93 C1 00 08 */ stw r30, 8(r1)
/* 802E16CC 002DE62C 48 00 00 18 */ b lbl_802E16E4
lbl_802E16D0:
/* 802E16D0 002DE630 28 1E 00 00 */ cmplwi r30, 0
/* 802E16D4 002DE634 41 82 00 0C */ beq lbl_802E16E0
/* 802E16D8 002DE638 7F C3 F3 78 */ mr r3, r30
/* 802E16DC 002DE63C 4B D4 F8 55 */ bl sub_80030f30
lbl_802E16E0:
/* 802E16E0 002DE640 3B DE 00 04 */ addi r30, r30, 4
lbl_802E16E4:
/* 802E16E4 002DE644 7C 1E F8 40 */ cmplw r30, r31
/* 802E16E8 002DE648 40 82 FF E8 */ bne lbl_802E16D0
/* 802E16EC 002DE64C 80 7C 00 10 */ lwz r3, 0x10(r28)
/* 802E16F0 002DE650 28 03 00 00 */ cmplwi r3, 0
/* 802E16F4 002DE654 41 82 00 08 */ beq lbl_802E16FC
/* 802E16F8 002DE658 48 03 42 39 */ bl Free__7CMemoryFPCv
lbl_802E16FC:
/* 802E16FC 002DE65C 28 1C 00 00 */ cmplwi r28, 0
/* 802E1700 002DE660 41 82 00 10 */ beq lbl_802E1710
/* 802E1704 002DE664 3C 60 80 3F */ lis r3, lbl_803ECDF0@ha
/* 802E1708 002DE668 38 03 CD F0 */ addi r0, r3, lbl_803ECDF0@l
/* 802E170C 002DE66C 90 1C 00 00 */ stw r0, 0(r28)
lbl_802E1710:
/* 802E1710 002DE670 7F A0 07 35 */ extsh. r0, r29
/* 802E1714 002DE674 40 81 00 0C */ ble lbl_802E1720
/* 802E1718 002DE678 7F 83 E3 78 */ mr r3, r28
/* 802E171C 002DE67C 48 03 42 15 */ bl Free__7CMemoryFPCv
lbl_802E1720:
/* 802E1720 002DE680 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802E1724 002DE684 7F 83 E3 78 */ mr r3, r28
/* 802E1728 002DE688 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802E172C 002DE68C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 802E1730 002DE690 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 802E1734 002DE694 83 81 00 20 */ lwz r28, 0x20(r1)
/* 802E1738 002DE698 7C 08 03 A6 */ mtlr r0
/* 802E173C 002DE69C 38 21 00 30 */ addi r1, r1, 0x30
/* 802E1740 002DE6A0 4E 80 00 20 */ blr
.global sub_802e1744
sub_802e1744:
/* 802E1744 002DE6A4 38 60 00 04 */ li r3, 4
/* 802E1748 002DE6A8 4E 80 00 20 */ blr
.global CreateSequence__17CMetaAnimSequenceFR12CInputStream
CreateSequence__17CMetaAnimSequenceFR12CInputStream:
/* 802E174C 002DE6AC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802E1750 002DE6B0 7C 08 02 A6 */ mflr r0
/* 802E1754 002DE6B4 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E1758 002DE6B8 38 00 00 00 */ li r0, 0
/* 802E175C 002DE6BC 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802E1760 002DE6C0 93 C1 00 38 */ stw r30, 0x38(r1)
/* 802E1764 002DE6C4 93 A1 00 34 */ stw r29, 0x34(r1)
/* 802E1768 002DE6C8 7C 9D 23 78 */ mr r29, r4
/* 802E176C 002DE6CC 93 81 00 30 */ stw r28, 0x30(r1)
/* 802E1770 002DE6D0 7C 7C 1B 78 */ mr r28, r3
/* 802E1774 002DE6D4 7F A3 EB 78 */ mr r3, r29
/* 802E1778 002DE6D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E177C 002DE6DC 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E1780 002DE6E0 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E1784 002DE6E4 48 05 D5 01 */ bl ReadLong__12CInputStreamFv
/* 802E1788 002DE6E8 7C 7F 1B 78 */ mr r31, r3
/* 802E178C 002DE6EC 38 61 00 20 */ addi r3, r1, 0x20
/* 802E1790 002DE6F0 7F E4 FB 78 */ mr r4, r31
/* 802E1794 002DE6F4 4B D8 C8 AD */ bl "reserve__Q24rstl62vector<Q24rstl18rc_ptr<9IMetaAnim>,Q24rstl17rmemory_allocator>Fi"
/* 802E1798 002DE6F8 3B C0 00 00 */ li r30, 0
/* 802E179C 002DE6FC 48 00 00 98 */ b lbl_802E1834
lbl_802E17A0:
/* 802E17A0 002DE700 7F A4 EB 78 */ mr r4, r29
/* 802E17A4 002DE704 38 61 00 18 */ addi r3, r1, 0x18
/* 802E17A8 002DE708 4B FF E8 35 */ bl CreateMetaAnim__16CMetaAnimFactoryFR12CInputStream
/* 802E17AC 002DE70C 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 802E17B0 002DE710 38 61 00 18 */ addi r3, r1, 0x18
/* 802E17B4 002DE714 90 A1 00 1C */ stw r5, 0x1c(r1)
/* 802E17B8 002DE718 80 85 00 04 */ lwz r4, 4(r5)
/* 802E17BC 002DE71C 38 04 00 01 */ addi r0, r4, 1
/* 802E17C0 002DE720 90 05 00 04 */ stw r0, 4(r5)
/* 802E17C4 002DE724 4B D4 F7 6D */ bl sub_80030f30
/* 802E17C8 002DE728 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E17CC 002DE72C 80 A1 00 28 */ lwz r5, 0x28(r1)
/* 802E17D0 002DE730 7C 00 28 00 */ cmpw r0, r5
/* 802E17D4 002DE734 41 80 00 1C */ blt lbl_802E17F0
/* 802E17D8 002DE738 2C 05 00 00 */ cmpwi r5, 0
/* 802E17DC 002DE73C 38 61 00 20 */ addi r3, r1, 0x20
/* 802E17E0 002DE740 38 80 00 04 */ li r4, 4
/* 802E17E4 002DE744 41 82 00 08 */ beq lbl_802E17EC
/* 802E17E8 002DE748 54 A4 08 3C */ slwi r4, r5, 1
lbl_802E17EC:
/* 802E17EC 002DE74C 4B D8 C8 55 */ bl "reserve__Q24rstl62vector<Q24rstl18rc_ptr<9IMetaAnim>,Q24rstl17rmemory_allocator>Fi"
lbl_802E17F0:
/* 802E17F0 002DE750 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E17F4 002DE754 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 802E17F8 002DE758 54 00 10 3A */ slwi r0, r0, 2
/* 802E17FC 002DE75C 7C 63 02 15 */ add. r3, r3, r0
/* 802E1800 002DE760 41 82 00 1C */ beq lbl_802E181C
/* 802E1804 002DE764 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 802E1808 002DE768 90 03 00 00 */ stw r0, 0(r3)
/* 802E180C 002DE76C 80 83 00 00 */ lwz r4, 0(r3)
/* 802E1810 002DE770 80 64 00 04 */ lwz r3, 4(r4)
/* 802E1814 002DE774 38 03 00 01 */ addi r0, r3, 1
/* 802E1818 002DE778 90 04 00 04 */ stw r0, 4(r4)
lbl_802E181C:
/* 802E181C 002DE77C 80 81 00 24 */ lwz r4, 0x24(r1)
/* 802E1820 002DE780 38 61 00 1C */ addi r3, r1, 0x1c
/* 802E1824 002DE784 38 04 00 01 */ addi r0, r4, 1
/* 802E1828 002DE788 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E182C 002DE78C 4B D4 F7 05 */ bl sub_80030f30
/* 802E1830 002DE790 3B DE 00 01 */ addi r30, r30, 1
lbl_802E1834:
/* 802E1834 002DE794 7C 1E F8 00 */ cmpw r30, r31
/* 802E1838 002DE798 41 80 FF 68 */ blt lbl_802E17A0
/* 802E183C 002DE79C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E1840 002DE7A0 90 1C 00 04 */ stw r0, 4(r28)
/* 802E1844 002DE7A4 80 01 00 28 */ lwz r0, 0x28(r1)
/* 802E1848 002DE7A8 90 1C 00 08 */ stw r0, 8(r28)
/* 802E184C 002DE7AC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E1850 002DE7B0 2C 00 00 00 */ cmpwi r0, 0
/* 802E1854 002DE7B4 40 82 00 1C */ bne lbl_802E1870
/* 802E1858 002DE7B8 80 01 00 28 */ lwz r0, 0x28(r1)
/* 802E185C 002DE7BC 2C 00 00 00 */ cmpwi r0, 0
/* 802E1860 002DE7C0 40 82 00 10 */ bne lbl_802E1870
/* 802E1864 002DE7C4 38 00 00 00 */ li r0, 0
/* 802E1868 002DE7C8 90 1C 00 0C */ stw r0, 0xc(r28)
/* 802E186C 002DE7CC 48 00 00 74 */ b lbl_802E18E0
lbl_802E1870:
/* 802E1870 002DE7D0 80 1C 00 08 */ lwz r0, 8(r28)
/* 802E1874 002DE7D4 54 03 10 3B */ rlwinm. r3, r0, 2, 0, 0x1d
/* 802E1878 002DE7D8 40 82 00 10 */ bne lbl_802E1888
/* 802E187C 002DE7DC 38 00 00 00 */ li r0, 0
/* 802E1880 002DE7E0 90 1C 00 0C */ stw r0, 0xc(r28)
/* 802E1884 002DE7E4 48 00 00 18 */ b lbl_802E189C
lbl_802E1888:
/* 802E1888 002DE7E8 3C 80 80 3D */ lis r4, lbl_803D6D80@ha
/* 802E188C 002DE7EC 38 A0 00 00 */ li r5, 0
/* 802E1890 002DE7F0 38 84 6D 80 */ addi r4, r4, lbl_803D6D80@l
/* 802E1894 002DE7F4 48 03 3F 85 */ bl __nwa__FUlPCcPCc
/* 802E1898 002DE7F8 90 7C 00 0C */ stw r3, 0xc(r28)
lbl_802E189C:
/* 802E189C 002DE7FC 80 1C 00 04 */ lwz r0, 4(r28)
/* 802E18A0 002DE800 80 C1 00 2C */ lwz r6, 0x2c(r1)
/* 802E18A4 002DE804 80 BC 00 0C */ lwz r5, 0xc(r28)
/* 802E18A8 002DE808 7C 09 03 A6 */ mtctr r0
/* 802E18AC 002DE80C 2C 00 00 00 */ cmpwi r0, 0
/* 802E18B0 002DE810 40 81 00 30 */ ble lbl_802E18E0
lbl_802E18B4:
/* 802E18B4 002DE814 28 05 00 00 */ cmplwi r5, 0
/* 802E18B8 002DE818 41 82 00 1C */ beq lbl_802E18D4
/* 802E18BC 002DE81C 80 06 00 00 */ lwz r0, 0(r6)
/* 802E18C0 002DE820 90 05 00 00 */ stw r0, 0(r5)
/* 802E18C4 002DE824 80 85 00 00 */ lwz r4, 0(r5)
/* 802E18C8 002DE828 80 64 00 04 */ lwz r3, 4(r4)
/* 802E18CC 002DE82C 38 03 00 01 */ addi r0, r3, 1
/* 802E18D0 002DE830 90 04 00 04 */ stw r0, 4(r4)
lbl_802E18D4:
/* 802E18D4 002DE834 38 A5 00 04 */ addi r5, r5, 4
/* 802E18D8 002DE838 38 C6 00 04 */ addi r6, r6, 4
/* 802E18DC 002DE83C 42 00 FF D8 */ bdnz lbl_802E18B4
lbl_802E18E0:
/* 802E18E0 002DE840 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E18E4 002DE844 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 802E18E8 002DE848 54 00 10 3A */ slwi r0, r0, 2
/* 802E18EC 002DE84C 7F 9D 02 14 */ add r28, r29, r0
/* 802E18F0 002DE850 93 A1 00 0C */ stw r29, 0xc(r1)
/* 802E18F4 002DE854 93 81 00 14 */ stw r28, 0x14(r1)
/* 802E18F8 002DE858 93 81 00 10 */ stw r28, 0x10(r1)
/* 802E18FC 002DE85C 93 A1 00 08 */ stw r29, 8(r1)
/* 802E1900 002DE860 48 00 00 18 */ b lbl_802E1918
lbl_802E1904:
/* 802E1904 002DE864 28 1D 00 00 */ cmplwi r29, 0
/* 802E1908 002DE868 41 82 00 0C */ beq lbl_802E1914
/* 802E190C 002DE86C 7F A3 EB 78 */ mr r3, r29
/* 802E1910 002DE870 4B D4 F6 21 */ bl sub_80030f30
lbl_802E1914:
/* 802E1914 002DE874 3B BD 00 04 */ addi r29, r29, 4
lbl_802E1918:
/* 802E1918 002DE878 7C 1D E0 40 */ cmplw r29, r28
/* 802E191C 002DE87C 40 82 FF E8 */ bne lbl_802E1904
/* 802E1920 002DE880 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 802E1924 002DE884 28 03 00 00 */ cmplwi r3, 0
/* 802E1928 002DE888 41 82 00 08 */ beq lbl_802E1930
/* 802E192C 002DE88C 48 03 40 05 */ bl Free__7CMemoryFPCv
lbl_802E1930:
/* 802E1930 002DE890 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802E1934 002DE894 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802E1938 002DE898 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 802E193C 002DE89C 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 802E1940 002DE8A0 83 81 00 30 */ lwz r28, 0x30(r1)
/* 802E1944 002DE8A4 7C 08 03 A6 */ mtlr r0
/* 802E1948 002DE8A8 38 21 00 40 */ addi r1, r1, 0x40
/* 802E194C 002DE8AC 4E 80 00 20 */ blr
.global WriteAnimData__17CMetaAnimSequenceCFR13COutputStream
WriteAnimData__17CMetaAnimSequenceCFR13COutputStream:
/* 802E1950 002DE8B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E1954 002DE8B4 7C 08 02 A6 */ mflr r0
/* 802E1958 002DE8B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E195C 002DE8BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E1960 002DE8C0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E1964 002DE8C4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E1968 002DE8C8 7C 9D 23 78 */ mr r29, r4
/* 802E196C 002DE8CC 80 A3 00 08 */ lwz r5, 8(r3)
/* 802E1970 002DE8D0 83 C3 00 10 */ lwz r30, 0x10(r3)
/* 802E1974 002DE8D4 7F A3 EB 78 */ mr r3, r29
/* 802E1978 002DE8D8 54 A0 10 3A */ slwi r0, r5, 2
/* 802E197C 002DE8DC 90 A1 00 08 */ stw r5, 8(r1)
/* 802E1980 002DE8E0 7F FE 02 14 */ add r31, r30, r0
/* 802E1984 002DE8E4 48 05 DB 35 */ bl FlushShiftRegister__13COutputStreamFv
/* 802E1988 002DE8E8 7F A3 EB 78 */ mr r3, r29
/* 802E198C 002DE8EC 38 81 00 08 */ addi r4, r1, 8
/* 802E1990 002DE8F0 38 A0 00 04 */ li r5, 4
/* 802E1994 002DE8F4 48 05 DC 15 */ bl DoPut__13COutputStreamFPCvUl
/* 802E1998 002DE8F8 48 00 00 18 */ b lbl_802E19B0
lbl_802E199C:
/* 802E199C 002DE8FC 80 7E 00 00 */ lwz r3, 0(r30)
/* 802E19A0 002DE900 7F A4 EB 78 */ mr r4, r29
/* 802E19A4 002DE904 80 63 00 00 */ lwz r3, 0(r3)
/* 802E19A8 002DE908 48 00 59 79 */ bl PutTo__9IMetaAnimCFR13COutputStream
/* 802E19AC 002DE90C 3B DE 00 04 */ addi r30, r30, 4
lbl_802E19B0:
/* 802E19B0 002DE910 7C 1E F8 40 */ cmplw r30, r31
/* 802E19B4 002DE914 40 82 FF E8 */ bne lbl_802E199C
/* 802E19B8 002DE918 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E19BC 002DE91C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E19C0 002DE920 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E19C4 002DE924 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E19C8 002DE928 7C 08 03 A6 */ mtlr r0
/* 802E19CC 002DE92C 38 21 00 20 */ addi r1, r1, 0x20
/* 802E19D0 002DE930 4E 80 00 20 */ blr
.global "GetUniquePrimitives__17CMetaAnimSequenceCFRQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>"
"GetUniquePrimitives__17CMetaAnimSequenceCFRQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>":
/* 802E19D4 002DE934 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E19D8 002DE938 7C 08 02 A6 */ mflr r0
/* 802E19DC 002DE93C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E19E0 002DE940 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E19E4 002DE944 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E19E8 002DE948 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E19EC 002DE94C 7C 9D 23 78 */ mr r29, r4
/* 802E19F0 002DE950 80 03 00 08 */ lwz r0, 8(r3)
/* 802E19F4 002DE954 83 C3 00 10 */ lwz r30, 0x10(r3)
/* 802E19F8 002DE958 54 00 10 3A */ slwi r0, r0, 2
/* 802E19FC 002DE95C 7F FE 02 14 */ add r31, r30, r0
/* 802E1A00 002DE960 48 00 00 24 */ b lbl_802E1A24
lbl_802E1A04:
/* 802E1A04 002DE964 80 7E 00 00 */ lwz r3, 0(r30)
/* 802E1A08 002DE968 7F A4 EB 78 */ mr r4, r29
/* 802E1A0C 002DE96C 80 63 00 00 */ lwz r3, 0(r3)
/* 802E1A10 002DE970 81 83 00 00 */ lwz r12, 0(r3)
/* 802E1A14 002DE974 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802E1A18 002DE978 7D 89 03 A6 */ mtctr r12
/* 802E1A1C 002DE97C 4E 80 04 21 */ bctrl
/* 802E1A20 002DE980 3B DE 00 04 */ addi r30, r30, 4
lbl_802E1A24:
/* 802E1A24 002DE984 7C 1E F8 40 */ cmplw r30, r31
/* 802E1A28 002DE988 40 82 FF DC */ bne lbl_802E1A04
/* 802E1A2C 002DE98C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E1A30 002DE990 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E1A34 002DE994 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E1A38 002DE998 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E1A3C 002DE99C 7C 08 03 A6 */ mtlr r0
/* 802E1A40 002DE9A0 38 21 00 20 */ addi r1, r1, 0x20
/* 802E1A44 002DE9A4 4E 80 00 20 */ blr
.global VGetAnimationTree__17CMetaAnimSequenceCFRC15CAnimSysContextRC24CMetaAnimTreeBuildOrders
VGetAnimationTree__17CMetaAnimSequenceCFRC15CAnimSysContextRC24CMetaAnimTreeBuildOrders:
/* 802E1A48 002DE9A8 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 802E1A4C 002DE9AC 7C 08 02 A6 */ mflr r0
/* 802E1A50 002DE9B0 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 802E1A54 002DE9B4 BF 21 00 D4 */ stmw r25, 0xd4(r1)
/* 802E1A58 002DE9B8 7C DD 33 78 */ mr r29, r6
/* 802E1A5C 002DE9BC 7C 7A 1B 78 */ mr r26, r3
/* 802E1A60 002DE9C0 7C 9B 23 78 */ mr r27, r4
/* 802E1A64 002DE9C4 7C BC 2B 78 */ mr r28, r5
/* 802E1A68 002DE9C8 88 06 00 40 */ lbz r0, 0x40(r6)
/* 802E1A6C 002DE9CC 28 00 00 00 */ cmplwi r0, 0
/* 802E1A70 002DE9D0 41 82 00 40 */ beq lbl_802E1AB0
/* 802E1A74 002DE9D4 7F A4 EB 78 */ mr r4, r29
/* 802E1A78 002DE9D8 38 61 00 44 */ addi r3, r1, 0x44
/* 802E1A7C 002DE9DC 48 00 5B 25 */ bl PreAdvanceForAll__24CMetaAnimTreeBuildOrdersFRC20CPreAdvanceIndicator
/* 802E1A80 002DE9E0 7F 64 DB 78 */ mr r4, r27
/* 802E1A84 002DE9E4 7F 43 D3 78 */ mr r3, r26
/* 802E1A88 002DE9E8 81 9B 00 00 */ lwz r12, 0(r27)
/* 802E1A8C 002DE9EC 7F 85 E3 78 */ mr r5, r28
/* 802E1A90 002DE9F0 38 C1 00 44 */ addi r6, r1, 0x44
/* 802E1A94 002DE9F4 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802E1A98 002DE9F8 7D 89 03 A6 */ mtctr r12
/* 802E1A9C 002DE9FC 4E 80 04 21 */ bctrl
/* 802E1AA0 002DEA00 38 00 00 00 */ li r0, 0
/* 802E1AA4 002DEA04 98 01 00 C8 */ stb r0, 0xc8(r1)
/* 802E1AA8 002DEA08 98 01 00 84 */ stb r0, 0x84(r1)
/* 802E1AAC 002DEA0C 48 00 01 DC */ b lbl_802E1C88
lbl_802E1AB0:
/* 802E1AB0 002DEA10 80 1B 00 08 */ lwz r0, 8(r27)
/* 802E1AB4 002DEA14 38 A0 00 00 */ li r5, 0
/* 802E1AB8 002DEA18 83 DB 00 10 */ lwz r30, 0x10(r27)
/* 802E1ABC 002DEA1C 38 61 00 34 */ addi r3, r1, 0x34
/* 802E1AC0 002DEA20 54 00 10 3A */ slwi r0, r0, 2
/* 802E1AC4 002DEA24 90 A1 00 38 */ stw r5, 0x38(r1)
/* 802E1AC8 002DEA28 7F FE 02 14 */ add r31, r30, r0
/* 802E1ACC 002DEA2C 7C 1E F8 50 */ subf r0, r30, r31
/* 802E1AD0 002DEA30 90 A1 00 3C */ stw r5, 0x3c(r1)
/* 802E1AD4 002DEA34 7C 00 16 70 */ srawi r0, r0, 2
/* 802E1AD8 002DEA38 90 A1 00 40 */ stw r5, 0x40(r1)
/* 802E1ADC 002DEA3C 7C 80 01 94 */ addze r4, r0
/* 802E1AE0 002DEA40 4B D7 80 D5 */ bl "reserve__Q24rstl110vector<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Fi"
/* 802E1AE4 002DEA44 48 00 00 C8 */ b lbl_802E1BAC
lbl_802E1AE8:
/* 802E1AE8 002DEA48 80 FE 00 00 */ lwz r7, 0(r30)
/* 802E1AEC 002DEA4C 7F 85 E3 78 */ mr r5, r28
/* 802E1AF0 002DEA50 7F A6 EB 78 */ mr r6, r29
/* 802E1AF4 002DEA54 38 61 00 18 */ addi r3, r1, 0x18
/* 802E1AF8 002DEA58 90 E1 00 20 */ stw r7, 0x20(r1)
/* 802E1AFC 002DEA5C 80 87 00 04 */ lwz r4, 4(r7)
/* 802E1B00 002DEA60 38 04 00 01 */ addi r0, r4, 1
/* 802E1B04 002DEA64 90 07 00 04 */ stw r0, 4(r7)
/* 802E1B08 002DEA68 80 81 00 20 */ lwz r4, 0x20(r1)
/* 802E1B0C 002DEA6C 80 84 00 00 */ lwz r4, 0(r4)
/* 802E1B10 002DEA70 81 84 00 00 */ lwz r12, 0(r4)
/* 802E1B14 002DEA74 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802E1B18 002DEA78 7D 89 03 A6 */ mtctr r12
/* 802E1B1C 002DEA7C 4E 80 04 21 */ bctrl
/* 802E1B20 002DEA80 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 802E1B24 002DEA84 38 61 00 18 */ addi r3, r1, 0x18
/* 802E1B28 002DEA88 90 A1 00 1C */ stw r5, 0x1c(r1)
/* 802E1B2C 002DEA8C 80 85 00 04 */ lwz r4, 4(r5)
/* 802E1B30 002DEA90 38 04 00 01 */ addi r0, r4, 1
/* 802E1B34 002DEA94 90 05 00 04 */ stw r0, 4(r5)
/* 802E1B38 002DEA98 4B D4 F4 69 */ bl sub_80030fa0
/* 802E1B3C 002DEA9C 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 802E1B40 002DEAA0 80 01 00 38 */ lwz r0, 0x38(r1)
/* 802E1B44 002DEAA4 80 A1 00 3C */ lwz r5, 0x3c(r1)
/* 802E1B48 002DEAA8 80 63 00 00 */ lwz r3, 0(r3)
/* 802E1B4C 002DEAAC 7C 00 28 00 */ cmpw r0, r5
/* 802E1B50 002DEAB0 3B 23 00 04 */ addi r25, r3, 4
/* 802E1B54 002DEAB4 41 80 00 1C */ blt lbl_802E1B70
/* 802E1B58 002DEAB8 2C 05 00 00 */ cmpwi r5, 0
/* 802E1B5C 002DEABC 38 61 00 34 */ addi r3, r1, 0x34
/* 802E1B60 002DEAC0 38 80 00 04 */ li r4, 4
/* 802E1B64 002DEAC4 41 82 00 08 */ beq lbl_802E1B6C
/* 802E1B68 002DEAC8 54 A4 08 3C */ slwi r4, r5, 1
lbl_802E1B6C:
/* 802E1B6C 002DEACC 4B D7 80 49 */ bl "reserve__Q24rstl110vector<Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>,Q24rstl17rmemory_allocator>Fi"
lbl_802E1B70:
/* 802E1B70 002DEAD0 80 01 00 38 */ lwz r0, 0x38(r1)
/* 802E1B74 002DEAD4 80 61 00 40 */ lwz r3, 0x40(r1)
/* 802E1B78 002DEAD8 54 00 20 36 */ slwi r0, r0, 4
/* 802E1B7C 002DEADC 7C 63 02 15 */ add. r3, r3, r0
/* 802E1B80 002DEAE0 41 82 00 0C */ beq lbl_802E1B8C
/* 802E1B84 002DEAE4 7F 24 CB 78 */ mr r4, r25
/* 802E1B88 002DEAE8 48 05 C5 D9 */ bl "__ct__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
lbl_802E1B8C:
/* 802E1B8C 002DEAEC 80 81 00 38 */ lwz r4, 0x38(r1)
/* 802E1B90 002DEAF0 38 61 00 1C */ addi r3, r1, 0x1c
/* 802E1B94 002DEAF4 3B DE 00 04 */ addi r30, r30, 4
/* 802E1B98 002DEAF8 38 04 00 01 */ addi r0, r4, 1
/* 802E1B9C 002DEAFC 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E1BA0 002DEB00 4B D4 F4 01 */ bl sub_80030fa0
/* 802E1BA4 002DEB04 38 61 00 20 */ addi r3, r1, 0x20
/* 802E1BA8 002DEB08 4B D4 F3 89 */ bl sub_80030f30
lbl_802E1BAC:
/* 802E1BAC 002DEB0C 7C 1E F8 40 */ cmplw r30, r31
/* 802E1BB0 002DEB10 40 82 FF 38 */ bne lbl_802E1AE8
/* 802E1BB4 002DEB14 3C 60 80 3D */ lis r3, lbl_803D6D80@ha
/* 802E1BB8 002DEB18 3B A0 00 00 */ li r29, 0
/* 802E1BBC 002DEB1C 38 83 6D 80 */ addi r4, r3, lbl_803D6D80@l
/* 802E1BC0 002DEB20 38 A0 00 00 */ li r5, 0
/* 802E1BC4 002DEB24 38 60 00 9C */ li r3, 0x9c
/* 802E1BC8 002DEB28 48 03 3C A5 */ bl __nw__FUlPCcPCc
/* 802E1BCC 002DEB2C 7C 79 1B 79 */ or. r25, r3, r3
/* 802E1BD0 002DEB30 41 82 00 2C */ beq lbl_802E1BFC
/* 802E1BD4 002DEB34 38 61 00 24 */ addi r3, r1, 0x24
/* 802E1BD8 002DEB38 38 81 00 34 */ addi r4, r1, 0x34
/* 802E1BDC 002DEB3C 4B FF 90 BD */ bl sub_802dac98
/* 802E1BE0 002DEB40 7F 23 CB 78 */ mr r3, r25
/* 802E1BE4 002DEB44 7F 85 E3 78 */ mr r5, r28
/* 802E1BE8 002DEB48 38 9B 00 04 */ addi r4, r27, 4
/* 802E1BEC 002DEB4C 38 C1 00 24 */ addi r6, r1, 0x24
/* 802E1BF0 002DEB50 3B A0 00 01 */ li r29, 1
/* 802E1BF4 002DEB54 4B FF A6 99 */ bl "__ct__17CAnimTreeSequenceFRCQ24rstl62vector<Q24rstl18rc_ptr<9IMetaAnim>,Q24rstl17rmemory_allocator>RC15CAnimSysContextRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 802E1BF8 002DEB58 7C 79 1B 78 */ mr r25, r3
lbl_802E1BFC:
/* 802E1BFC 002DEB5C 3C 80 80 3D */ lis r4, lbl_803D6D80@ha
/* 802E1C00 002DEB60 38 60 00 08 */ li r3, 8
/* 802E1C04 002DEB64 38 84 6D 80 */ addi r4, r4, lbl_803D6D80@l
/* 802E1C08 002DEB68 38 A0 00 00 */ li r5, 0
/* 802E1C0C 002DEB6C 48 03 3C 61 */ bl __nw__FUlPCcPCc
/* 802E1C10 002DEB70 28 03 00 00 */ cmplwi r3, 0
/* 802E1C14 002DEB74 41 82 00 10 */ beq lbl_802E1C24
/* 802E1C18 002DEB78 93 23 00 00 */ stw r25, 0(r3)
/* 802E1C1C 002DEB7C 38 00 00 01 */ li r0, 1
/* 802E1C20 002DEB80 90 03 00 04 */ stw r0, 4(r3)
lbl_802E1C24:
/* 802E1C24 002DEB84 7F A0 07 75 */ extsb. r0, r29
/* 802E1C28 002DEB88 90 7A 00 00 */ stw r3, 0(r26)
/* 802E1C2C 002DEB8C 41 82 00 0C */ beq lbl_802E1C38
/* 802E1C30 002DEB90 38 61 00 24 */ addi r3, r1, 0x24
/* 802E1C34 002DEB94 48 05 BE AD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_802E1C38:
/* 802E1C38 002DEB98 80 01 00 38 */ lwz r0, 0x38(r1)
/* 802E1C3C 002DEB9C 83 21 00 40 */ lwz r25, 0x40(r1)
/* 802E1C40 002DEBA0 54 00 20 36 */ slwi r0, r0, 4
/* 802E1C44 002DEBA4 7F 59 02 14 */ add r26, r25, r0
/* 802E1C48 002DEBA8 93 21 00 0C */ stw r25, 0xc(r1)
/* 802E1C4C 002DEBAC 93 41 00 14 */ stw r26, 0x14(r1)
/* 802E1C50 002DEBB0 93 41 00 10 */ stw r26, 0x10(r1)
/* 802E1C54 002DEBB4 93 21 00 08 */ stw r25, 8(r1)
/* 802E1C58 002DEBB8 48 00 00 18 */ b lbl_802E1C70
lbl_802E1C5C:
/* 802E1C5C 002DEBBC 28 19 00 00 */ cmplwi r25, 0
/* 802E1C60 002DEBC0 41 82 00 0C */ beq lbl_802E1C6C
/* 802E1C64 002DEBC4 7F 23 CB 78 */ mr r3, r25
/* 802E1C68 002DEBC8 48 05 BE 79 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_802E1C6C:
/* 802E1C6C 002DEBCC 3B 39 00 10 */ addi r25, r25, 0x10
lbl_802E1C70:
/* 802E1C70 002DEBD0 7C 19 D0 40 */ cmplw r25, r26
/* 802E1C74 002DEBD4 40 82 FF E8 */ bne lbl_802E1C5C
/* 802E1C78 002DEBD8 80 61 00 40 */ lwz r3, 0x40(r1)
/* 802E1C7C 002DEBDC 28 03 00 00 */ cmplwi r3, 0
/* 802E1C80 002DEBE0 41 82 00 08 */ beq lbl_802E1C88
/* 802E1C84 002DEBE4 48 03 3C AD */ bl Free__7CMemoryFPCv
lbl_802E1C88:
/* 802E1C88 002DEBE8 BB 21 00 D4 */ lmw r25, 0xd4(r1)
/* 802E1C8C 002DEBEC 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 802E1C90 002DEBF0 7C 08 03 A6 */ mtlr r0
/* 802E1C94 002DEBF4 38 21 00 F0 */ addi r1, r1, 0xf0
/* 802E1C98 002DEBF8 4E 80 00 20 */ blr
.global __ct__17CMetaAnimSequenceFR12CInputStream
__ct__17CMetaAnimSequenceFR12CInputStream:
/* 802E1C9C 002DEBFC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802E1CA0 002DEC00 7C 08 02 A6 */ mflr r0
/* 802E1CA4 002DEC04 3C A0 80 3F */ lis r5, lbl_803ECDF0@ha
/* 802E1CA8 002DEC08 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E1CAC 002DEC0C 38 05 CD F0 */ addi r0, r5, lbl_803ECDF0@l
/* 802E1CB0 002DEC10 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802E1CB4 002DEC14 7C 7F 1B 78 */ mr r31, r3
/* 802E1CB8 002DEC18 3C 60 80 3F */ lis r3, lbl_803ECD70@ha
/* 802E1CBC 002DEC1C 93 C1 00 38 */ stw r30, 0x38(r1)
/* 802E1CC0 002DEC20 93 A1 00 34 */ stw r29, 0x34(r1)
/* 802E1CC4 002DEC24 90 1F 00 00 */ stw r0, 0(r31)
/* 802E1CC8 002DEC28 38 03 CD 70 */ addi r0, r3, lbl_803ECD70@l
/* 802E1CCC 002DEC2C 38 61 00 18 */ addi r3, r1, 0x18
/* 802E1CD0 002DEC30 90 1F 00 00 */ stw r0, 0(r31)
/* 802E1CD4 002DEC34 4B FF FA 79 */ bl CreateSequence__17CMetaAnimSequenceFR12CInputStream
/* 802E1CD8 002DEC38 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 802E1CDC 002DEC3C 90 1F 00 08 */ stw r0, 8(r31)
/* 802E1CE0 002DEC40 80 01 00 20 */ lwz r0, 0x20(r1)
/* 802E1CE4 002DEC44 90 1F 00 0C */ stw r0, 0xc(r31)
/* 802E1CE8 002DEC48 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 802E1CEC 002DEC4C 2C 00 00 00 */ cmpwi r0, 0
/* 802E1CF0 002DEC50 40 82 00 1C */ bne lbl_802E1D0C
/* 802E1CF4 002DEC54 80 01 00 20 */ lwz r0, 0x20(r1)
/* 802E1CF8 002DEC58 2C 00 00 00 */ cmpwi r0, 0
/* 802E1CFC 002DEC5C 40 82 00 10 */ bne lbl_802E1D0C
/* 802E1D00 002DEC60 38 00 00 00 */ li r0, 0
/* 802E1D04 002DEC64 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802E1D08 002DEC68 48 00 00 74 */ b lbl_802E1D7C
lbl_802E1D0C:
/* 802E1D0C 002DEC6C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 802E1D10 002DEC70 54 03 10 3B */ rlwinm. r3, r0, 2, 0, 0x1d
/* 802E1D14 002DEC74 40 82 00 10 */ bne lbl_802E1D24
/* 802E1D18 002DEC78 38 00 00 00 */ li r0, 0
/* 802E1D1C 002DEC7C 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802E1D20 002DEC80 48 00 00 18 */ b lbl_802E1D38
lbl_802E1D24:
/* 802E1D24 002DEC84 3C 80 80 3D */ lis r4, lbl_803D6D80@ha
/* 802E1D28 002DEC88 38 A0 00 00 */ li r5, 0
/* 802E1D2C 002DEC8C 38 84 6D 80 */ addi r4, r4, lbl_803D6D80@l
/* 802E1D30 002DEC90 48 03 3A E9 */ bl __nwa__FUlPCcPCc
/* 802E1D34 002DEC94 90 7F 00 10 */ stw r3, 0x10(r31)
lbl_802E1D38:
/* 802E1D38 002DEC98 80 1F 00 08 */ lwz r0, 8(r31)
/* 802E1D3C 002DEC9C 80 C1 00 24 */ lwz r6, 0x24(r1)
/* 802E1D40 002DECA0 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 802E1D44 002DECA4 7C 09 03 A6 */ mtctr r0
/* 802E1D48 002DECA8 2C 00 00 00 */ cmpwi r0, 0
/* 802E1D4C 002DECAC 40 81 00 30 */ ble lbl_802E1D7C
lbl_802E1D50:
/* 802E1D50 002DECB0 28 05 00 00 */ cmplwi r5, 0
/* 802E1D54 002DECB4 41 82 00 1C */ beq lbl_802E1D70
/* 802E1D58 002DECB8 80 06 00 00 */ lwz r0, 0(r6)
/* 802E1D5C 002DECBC 90 05 00 00 */ stw r0, 0(r5)
/* 802E1D60 002DECC0 80 85 00 00 */ lwz r4, 0(r5)
/* 802E1D64 002DECC4 80 64 00 04 */ lwz r3, 4(r4)
/* 802E1D68 002DECC8 38 03 00 01 */ addi r0, r3, 1
/* 802E1D6C 002DECCC 90 04 00 04 */ stw r0, 4(r4)
lbl_802E1D70:
/* 802E1D70 002DECD0 38 A5 00 04 */ addi r5, r5, 4
/* 802E1D74 002DECD4 38 C6 00 04 */ addi r6, r6, 4
/* 802E1D78 002DECD8 42 00 FF D8 */ bdnz lbl_802E1D50
lbl_802E1D7C:
/* 802E1D7C 002DECDC 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 802E1D80 002DECE0 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 802E1D84 002DECE4 54 00 10 3A */ slwi r0, r0, 2
/* 802E1D88 002DECE8 7F DD 02 14 */ add r30, r29, r0
/* 802E1D8C 002DECEC 93 A1 00 0C */ stw r29, 0xc(r1)
/* 802E1D90 002DECF0 93 C1 00 14 */ stw r30, 0x14(r1)
/* 802E1D94 002DECF4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 802E1D98 002DECF8 93 A1 00 08 */ stw r29, 8(r1)
/* 802E1D9C 002DECFC 48 00 00 18 */ b lbl_802E1DB4
lbl_802E1DA0:
/* 802E1DA0 002DED00 28 1D 00 00 */ cmplwi r29, 0
/* 802E1DA4 002DED04 41 82 00 0C */ beq lbl_802E1DB0
/* 802E1DA8 002DED08 7F A3 EB 78 */ mr r3, r29
/* 802E1DAC 002DED0C 4B D4 F1 85 */ bl sub_80030f30
lbl_802E1DB0:
/* 802E1DB0 002DED10 3B BD 00 04 */ addi r29, r29, 4
lbl_802E1DB4:
/* 802E1DB4 002DED14 7C 1D F0 40 */ cmplw r29, r30
/* 802E1DB8 002DED18 40 82 FF E8 */ bne lbl_802E1DA0
/* 802E1DBC 002DED1C 80 61 00 24 */ lwz r3, 0x24(r1)
/* 802E1DC0 002DED20 28 03 00 00 */ cmplwi r3, 0
/* 802E1DC4 002DED24 41 82 00 08 */ beq lbl_802E1DCC
/* 802E1DC8 002DED28 48 03 3B 69 */ bl Free__7CMemoryFPCv
lbl_802E1DCC:
/* 802E1DCC 002DED2C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802E1DD0 002DED30 7F E3 FB 78 */ mr r3, r31
/* 802E1DD4 002DED34 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 802E1DD8 002DED38 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 802E1DDC 002DED3C 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 802E1DE0 002DED40 7C 08 03 A6 */ mtlr r0
/* 802E1DE4 002DED44 38 21 00 40 */ addi r1, r1, 0x40
/* 802E1DE8 002DED48 4E 80 00 20 */ blr