prime/asm/Kyoto/Animation/CMetaTransTrans.s

226 lines
11 KiB
ArmAsm

.include "macros.inc"
.section .data
.balign 8
.global lbl_803ECDD8
lbl_803ECDD8:
# ROM: 0x3E9DD8
.4byte 0
.4byte 0
.4byte __dt__15CMetaTransTransFv
.4byte "VGetTransitionTree__15CMetaTransTransCFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC15CAnimSysContext"
.4byte GetType__15CMetaTransTransCFv
.4byte WriteTransData__15CMetaTransTransCFR13COutputStream
.section .text, "ax"
.global __dt__15CMetaTransTransFv
__dt__15CMetaTransTransFv:
/* 802E2B90 002DFAF0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E2B94 002DFAF4 7C 08 02 A6 */ mflr r0
/* 802E2B98 002DFAF8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E2B9C 002DFAFC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E2BA0 002DFB00 7C 7F 1B 79 */ or. r31, r3, r3
/* 802E2BA4 002DFB04 41 82 00 30 */ beq lbl_802E2BD4
/* 802E2BA8 002DFB08 3C 60 80 3F */ lis r3, lbl_803ECDD8@ha
/* 802E2BAC 002DFB0C 38 03 CD D8 */ addi r0, r3, lbl_803ECDD8@l
/* 802E2BB0 002DFB10 90 1F 00 00 */ stw r0, 0(r31)
/* 802E2BB4 002DFB14 41 82 00 10 */ beq lbl_802E2BC4
/* 802E2BB8 002DFB18 3C 60 80 3E */ lis r3, lbl_803D9C70@ha
/* 802E2BBC 002DFB1C 38 03 9C 70 */ addi r0, r3, lbl_803D9C70@l
/* 802E2BC0 002DFB20 90 1F 00 00 */ stw r0, 0(r31)
lbl_802E2BC4:
/* 802E2BC4 002DFB24 7C 80 07 35 */ extsh. r0, r4
/* 802E2BC8 002DFB28 40 81 00 0C */ ble lbl_802E2BD4
/* 802E2BCC 002DFB2C 7F E3 FB 78 */ mr r3, r31
/* 802E2BD0 002DFB30 48 03 2D 61 */ bl Free__7CMemoryFPCv
lbl_802E2BD4:
/* 802E2BD4 002DFB34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E2BD8 002DFB38 7F E3 FB 78 */ mr r3, r31
/* 802E2BDC 002DFB3C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E2BE0 002DFB40 7C 08 03 A6 */ mtlr r0
/* 802E2BE4 002DFB44 38 21 00 10 */ addi r1, r1, 0x10
/* 802E2BE8 002DFB48 4E 80 00 20 */ blr
.global GetType__15CMetaTransTransCFv
GetType__15CMetaTransTransCFv:
/* 802E2BEC 002DFB4C 38 60 00 01 */ li r3, 1
/* 802E2BF0 002DFB50 4E 80 00 20 */ blr
.global WriteTransData__15CMetaTransTransCFR13COutputStream
WriteTransData__15CMetaTransTransCFR13COutputStream:
/* 802E2BF4 002DFB54 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E2BF8 002DFB58 7C 08 02 A6 */ mflr r0
/* 802E2BFC 002DFB5C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E2C00 002DFB60 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E2C04 002DFB64 7C 9F 23 78 */ mr r31, r4
/* 802E2C08 002DFB68 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E2C0C 002DFB6C 7C 7E 1B 78 */ mr r30, r3
/* 802E2C10 002DFB70 38 7E 00 04 */ addi r3, r30, 4
/* 802E2C14 002DFB74 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E2C18 002DFB78 48 06 57 1D */ bl PutTo__13CCharAnimTimeCFR13COutputStream
/* 802E2C1C 002DFB7C 88 9E 00 0C */ lbz r4, 0xc(r30)
/* 802E2C20 002DFB80 7F E3 FB 78 */ mr r3, r31
/* 802E2C24 002DFB84 7C 04 00 D0 */ neg r0, r4
/* 802E2C28 002DFB88 7C 00 23 78 */ or r0, r0, r4
/* 802E2C2C 002DFB8C 54 1D 0F FE */ srwi r29, r0, 0x1f
/* 802E2C30 002DFB90 48 05 C8 89 */ bl FlushShiftRegister__13COutputStreamFv
/* 802E2C34 002DFB94 80 7F 00 04 */ lwz r3, 4(r31)
/* 802E2C38 002DFB98 80 1F 00 08 */ lwz r0, 8(r31)
/* 802E2C3C 002DFB9C 7C 03 00 40 */ cmplw r3, r0
/* 802E2C40 002DFBA0 41 80 00 0C */ blt lbl_802E2C4C
/* 802E2C44 002DFBA4 7F E3 FB 78 */ mr r3, r31
/* 802E2C48 002DFBA8 48 05 C8 DD */ bl DoFlush__13COutputStreamFv
lbl_802E2C4C:
/* 802E2C4C 002DFBAC 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 802E2C50 002DFBB0 7F E3 FB 78 */ mr r3, r31
/* 802E2C54 002DFBB4 38 04 00 01 */ addi r0, r4, 1
/* 802E2C58 002DFBB8 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802E2C5C 002DFBBC 80 9F 00 04 */ lwz r4, 4(r31)
/* 802E2C60 002DFBC0 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 802E2C64 002DFBC4 38 04 00 01 */ addi r0, r4, 1
/* 802E2C68 002DFBC8 90 1F 00 04 */ stw r0, 4(r31)
/* 802E2C6C 002DFBCC 7F A5 21 AE */ stbx r29, r5, r4
/* 802E2C70 002DFBD0 88 9E 00 0D */ lbz r4, 0xd(r30)
/* 802E2C74 002DFBD4 7C 04 00 D0 */ neg r0, r4
/* 802E2C78 002DFBD8 7C 00 23 78 */ or r0, r0, r4
/* 802E2C7C 002DFBDC 54 1D 0F FE */ srwi r29, r0, 0x1f
/* 802E2C80 002DFBE0 48 05 C8 39 */ bl FlushShiftRegister__13COutputStreamFv
/* 802E2C84 002DFBE4 80 7F 00 04 */ lwz r3, 4(r31)
/* 802E2C88 002DFBE8 80 1F 00 08 */ lwz r0, 8(r31)
/* 802E2C8C 002DFBEC 7C 03 00 40 */ cmplw r3, r0
/* 802E2C90 002DFBF0 41 80 00 0C */ blt lbl_802E2C9C
/* 802E2C94 002DFBF4 7F E3 FB 78 */ mr r3, r31
/* 802E2C98 002DFBF8 48 05 C8 8D */ bl DoFlush__13COutputStreamFv
lbl_802E2C9C:
/* 802E2C9C 002DFBFC 80 9F 00 10 */ lwz r4, 0x10(r31)
/* 802E2CA0 002DFC00 7F E3 FB 78 */ mr r3, r31
/* 802E2CA4 002DFC04 38 04 00 01 */ addi r0, r4, 1
/* 802E2CA8 002DFC08 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802E2CAC 002DFC0C 80 9F 00 04 */ lwz r4, 4(r31)
/* 802E2CB0 002DFC10 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 802E2CB4 002DFC14 38 04 00 01 */ addi r0, r4, 1
/* 802E2CB8 002DFC18 90 1F 00 04 */ stw r0, 4(r31)
/* 802E2CBC 002DFC1C 7F A5 21 AE */ stbx r29, r5, r4
/* 802E2CC0 002DFC20 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 802E2CC4 002DFC24 90 01 00 08 */ stw r0, 8(r1)
/* 802E2CC8 002DFC28 48 05 C7 F1 */ bl FlushShiftRegister__13COutputStreamFv
/* 802E2CCC 002DFC2C 7F E3 FB 78 */ mr r3, r31
/* 802E2CD0 002DFC30 38 81 00 08 */ addi r4, r1, 8
/* 802E2CD4 002DFC34 38 A0 00 04 */ li r5, 4
/* 802E2CD8 002DFC38 48 05 C8 D1 */ bl DoPut__13COutputStreamFPCvUl
/* 802E2CDC 002DFC3C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E2CE0 002DFC40 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E2CE4 002DFC44 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E2CE8 002DFC48 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E2CEC 002DFC4C 7C 08 03 A6 */ mtlr r0
/* 802E2CF0 002DFC50 38 21 00 20 */ addi r1, r1, 0x20
/* 802E2CF4 002DFC54 4E 80 00 20 */ blr
.global "VGetTransitionTree__15CMetaTransTransCFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC15CAnimSysContext"
"VGetTransitionTree__15CMetaTransTransCFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC15CAnimSysContext":
/* 802E2CF8 002DFC58 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802E2CFC 002DFC5C 7C 08 02 A6 */ mflr r0
/* 802E2D00 002DFC60 3C E0 80 3D */ lis r7, lbl_803D6DA0@ha
/* 802E2D04 002DFC64 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E2D08 002DFC68 38 07 6D A0 */ addi r0, r7, lbl_803D6DA0@l
/* 802E2D0C 002DFC6C BF 41 00 18 */ stmw r26, 0x18(r1)
/* 802E2D10 002DFC70 7C 7B 1B 78 */ mr r27, r3
/* 802E2D14 002DFC74 7C 9C 23 78 */ mr r28, r4
/* 802E2D18 002DFC78 7C BD 2B 78 */ mr r29, r5
/* 802E2D1C 002DFC7C 7C DE 33 78 */ mr r30, r6
/* 802E2D20 002DFC80 7C 04 03 78 */ mr r4, r0
/* 802E2D24 002DFC84 3B 40 00 00 */ li r26, 0
/* 802E2D28 002DFC88 38 60 00 38 */ li r3, 0x38
/* 802E2D2C 002DFC8C 38 A0 00 00 */ li r5, 0
/* 802E2D30 002DFC90 48 03 2B 3D */ bl __nw__FUlPCcPCc
/* 802E2D34 002DFC94 7C 7F 1B 79 */ or. r31, r3, r3
/* 802E2D38 002DFC98 41 82 00 44 */ beq lbl_802E2D7C
/* 802E2D3C 002DFC9C C0 3C 00 04 */ lfs f1, 4(r28)
/* 802E2D40 002DFCA0 7F A4 EB 78 */ mr r4, r29
/* 802E2D44 002DFCA4 7F C5 F3 78 */ mr r5, r30
/* 802E2D48 002DFCA8 38 61 00 08 */ addi r3, r1, 8
/* 802E2D4C 002DFCAC 48 01 2D 75 */ bl "CreatePrimitiveName__19CAnimTreeTransitionFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RCQ24rstl25ncrc_ptr<13CAnimTreeNode>f"
/* 802E2D50 002DFCB0 88 9C 00 0C */ lbz r4, 0xc(r28)
/* 802E2D54 002DFCB4 7F E3 FB 78 */ mr r3, r31
/* 802E2D58 002DFCB8 89 1C 00 0D */ lbz r8, 0xd(r28)
/* 802E2D5C 002DFCBC 7F A5 EB 78 */ mr r5, r29
/* 802E2D60 002DFCC0 81 3C 00 10 */ lwz r9, 0x10(r28)
/* 802E2D64 002DFCC4 7F C6 F3 78 */ mr r6, r30
/* 802E2D68 002DFCC8 38 FC 00 04 */ addi r7, r28, 4
/* 802E2D6C 002DFCCC 39 41 00 08 */ addi r10, r1, 8
/* 802E2D70 002DFCD0 3B 40 00 01 */ li r26, 1
/* 802E2D74 002DFCD4 48 01 3B 9D */ bl "__ct__19CAnimTreeTransitionFbRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC13CCharAnimTimebiRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 802E2D78 002DFCD8 7C 7F 1B 78 */ mr r31, r3
lbl_802E2D7C:
/* 802E2D7C 002DFCDC 3C 80 80 3D */ lis r4, lbl_803D6DA0@ha
/* 802E2D80 002DFCE0 38 60 00 08 */ li r3, 8
/* 802E2D84 002DFCE4 38 84 6D A0 */ addi r4, r4, lbl_803D6DA0@l
/* 802E2D88 002DFCE8 38 A0 00 00 */ li r5, 0
/* 802E2D8C 002DFCEC 48 03 2A E1 */ bl __nw__FUlPCcPCc
/* 802E2D90 002DFCF0 28 03 00 00 */ cmplwi r3, 0
/* 802E2D94 002DFCF4 41 82 00 10 */ beq lbl_802E2DA4
/* 802E2D98 002DFCF8 93 E3 00 00 */ stw r31, 0(r3)
/* 802E2D9C 002DFCFC 38 00 00 01 */ li r0, 1
/* 802E2DA0 002DFD00 90 03 00 04 */ stw r0, 4(r3)
lbl_802E2DA4:
/* 802E2DA4 002DFD04 7F 40 07 75 */ extsb. r0, r26
/* 802E2DA8 002DFD08 90 7B 00 00 */ stw r3, 0(r27)
/* 802E2DAC 002DFD0C 41 82 00 0C */ beq lbl_802E2DB8
/* 802E2DB0 002DFD10 38 61 00 08 */ addi r3, r1, 8
/* 802E2DB4 002DFD14 48 05 AD 2D */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_802E2DB8:
/* 802E2DB8 002DFD18 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 802E2DBC 002DFD1C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802E2DC0 002DFD20 7C 08 03 A6 */ mtlr r0
/* 802E2DC4 002DFD24 38 21 00 30 */ addi r1, r1, 0x30
/* 802E2DC8 002DFD28 4E 80 00 20 */ blr
.global __ct__15CMetaTransTransFR12CInputStream
__ct__15CMetaTransTransFR12CInputStream:
/* 802E2DCC 002DFD2C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E2DD0 002DFD30 7C 08 02 A6 */ mflr r0
/* 802E2DD4 002DFD34 3C A0 80 3E */ lis r5, lbl_803D9C70@ha
/* 802E2DD8 002DFD38 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E2DDC 002DFD3C 38 05 9C 70 */ addi r0, r5, lbl_803D9C70@l
/* 802E2DE0 002DFD40 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E2DE4 002DFD44 7C 9F 23 78 */ mr r31, r4
/* 802E2DE8 002DFD48 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E2DEC 002DFD4C 7C 7E 1B 78 */ mr r30, r3
/* 802E2DF0 002DFD50 3C 60 80 3F */ lis r3, lbl_803ECDD8@ha
/* 802E2DF4 002DFD54 90 1E 00 00 */ stw r0, 0(r30)
/* 802E2DF8 002DFD58 38 03 CD D8 */ addi r0, r3, lbl_803ECDD8@l
/* 802E2DFC 002DFD5C 38 61 00 08 */ addi r3, r1, 8
/* 802E2E00 002DFD60 90 1E 00 00 */ stw r0, 0(r30)
/* 802E2E04 002DFD64 48 06 60 11 */ bl __ct__13CCharAnimTimeFR12CInputStream
/* 802E2E08 002DFD68 C0 01 00 08 */ lfs f0, 8(r1)
/* 802E2E0C 002DFD6C 7F E3 FB 78 */ mr r3, r31
/* 802E2E10 002DFD70 D0 1E 00 04 */ stfs f0, 4(r30)
/* 802E2E14 002DFD74 80 01 00 0C */ lwz r0, 0xc(r1)
/* 802E2E18 002DFD78 90 1E 00 08 */ stw r0, 8(r30)
/* 802E2E1C 002DFD7C 48 05 BE C1 */ bl ReadBool__12CInputStreamFv
/* 802E2E20 002DFD80 98 7E 00 0C */ stb r3, 0xc(r30)
/* 802E2E24 002DFD84 7F E3 FB 78 */ mr r3, r31
/* 802E2E28 002DFD88 48 05 BE B5 */ bl ReadBool__12CInputStreamFv
/* 802E2E2C 002DFD8C 98 7E 00 0D */ stb r3, 0xd(r30)
/* 802E2E30 002DFD90 7F E3 FB 78 */ mr r3, r31
/* 802E2E34 002DFD94 48 05 BE 51 */ bl ReadLong__12CInputStreamFv
/* 802E2E38 002DFD98 90 7E 00 10 */ stw r3, 0x10(r30)
/* 802E2E3C 002DFD9C 7F C3 F3 78 */ mr r3, r30
/* 802E2E40 002DFDA0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E2E44 002DFDA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E2E48 002DFDA8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E2E4C 002DFDAC 7C 08 03 A6 */ mtlr r0
/* 802E2E50 002DFDB0 38 21 00 20 */ addi r1, r1, 0x20
/* 802E2E54 002DFDB4 4E 80 00 20 */ blr
.section .rodata
.balign 8
.global lbl_803D6DA0
lbl_803D6DA0:
# ROM: 0x3D3DA0
.asciz "??(??)"
.balign 4