.include "macros.inc" .section .data .balign 8 .global lbl_803DF700 lbl_803DF700: # ROM: 0x3DC700 .4byte 0 .4byte 0 .4byte sub_800de904 .4byte 0 .section .text, "ax" .global FAiFiniteStateMachineFactory__FRC10SObjectTagR12CInputStreamRC15CVParamTransfer FAiFiniteStateMachineFactory__FRC10SObjectTagR12CInputStreamRC15CVParamTransfer: /* 800DE7FC 000DB75C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DE800 000DB760 7C 08 02 A6 */ mflr r0 /* 800DE804 000DB764 3C 80 80 3D */ lis r4, lbl_803CE528@ha /* 800DE808 000DB768 90 01 00 14 */ stw r0, 0x14(r1) /* 800DE80C 000DB76C 38 84 E5 28 */ addi r4, r4, lbl_803CE528@l /* 800DE810 000DB770 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DE814 000DB774 7C BF 2B 78 */ mr r31, r5 /* 800DE818 000DB778 38 A0 00 00 */ li r5, 0 /* 800DE81C 000DB77C 93 C1 00 08 */ stw r30, 8(r1) /* 800DE820 000DB780 7C 7E 1B 78 */ mr r30, r3 /* 800DE824 000DB784 38 60 00 20 */ li r3, 0x20 /* 800DE828 000DB788 48 23 70 45 */ bl __nw__FUlPCcPCc /* 800DE82C 000DB78C 7C 64 1B 79 */ or. r4, r3, r3 /* 800DE830 000DB790 41 82 00 10 */ beq lbl_800DE840 /* 800DE834 000DB794 7F E4 FB 78 */ mr r4, r31 /* 800DE838 000DB798 4B FA 0E 3D */ bl __ct__13CStateMachineFR12CInputStream /* 800DE83C 000DB79C 7C 64 1B 78 */ mr r4, r3 lbl_800DE840: /* 800DE840 000DB7A0 7F C3 F3 78 */ mr r3, r30 /* 800DE844 000DB7A4 48 00 00 1D */ bl "__ct<13CStateMachine>__16CFactoryFnReturnFP13CStateMachine" /* 800DE848 000DB7A8 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DE84C 000DB7AC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DE850 000DB7B0 83 C1 00 08 */ lwz r30, 8(r1) /* 800DE854 000DB7B4 7C 08 03 A6 */ mtlr r0 /* 800DE858 000DB7B8 38 21 00 10 */ addi r1, r1, 0x10 /* 800DE85C 000DB7BC 4E 80 00 20 */ blr .global "__ct<13CStateMachine>__16CFactoryFnReturnFP13CStateMachine" "__ct<13CStateMachine>__16CFactoryFnReturnFP13CStateMachine": /* 800DE860 000DB7C0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 800DE864 000DB7C4 7C 08 02 A6 */ mflr r0 /* 800DE868 000DB7C8 90 01 00 24 */ stw r0, 0x24(r1) /* 800DE86C 000DB7CC 7C 04 00 D0 */ neg r0, r4 /* 800DE870 000DB7D0 7C 00 23 78 */ or r0, r0, r4 /* 800DE874 000DB7D4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800DE878 000DB7D8 54 00 0F FE */ srwi r0, r0, 0x1f /* 800DE87C 000DB7DC 7C 7F 1B 78 */ mr r31, r3 /* 800DE880 000DB7E0 38 61 00 08 */ addi r3, r1, 8 /* 800DE884 000DB7E4 90 81 00 14 */ stw r4, 0x14(r1) /* 800DE888 000DB7E8 38 81 00 10 */ addi r4, r1, 0x10 /* 800DE88C 000DB7EC 98 01 00 10 */ stb r0, 0x10(r1) /* 800DE890 000DB7F0 48 00 01 E1 */ bl "GetIObjObjectFor__23TToken<13CStateMachine>FRCQ24rstl25auto_ptr<13CStateMachine>" /* 800DE894 000DB7F4 80 61 00 0C */ lwz r3, 0xc(r1) /* 800DE898 000DB7F8 38 00 00 00 */ li r0, 0 /* 800DE89C 000DB7FC 98 01 00 08 */ stb r0, 8(r1) /* 800DE8A0 000DB800 7C 03 00 D0 */ neg r0, r3 /* 800DE8A4 000DB804 7C 00 1B 78 */ or r0, r0, r3 /* 800DE8A8 000DB808 54 00 0F FE */ srwi r0, r0, 0x1f /* 800DE8AC 000DB80C 98 1F 00 00 */ stb r0, 0(r31) /* 800DE8B0 000DB810 90 7F 00 04 */ stw r3, 4(r31) /* 800DE8B4 000DB814 88 01 00 08 */ lbz r0, 8(r1) /* 800DE8B8 000DB818 28 00 00 00 */ cmplwi r0, 0 /* 800DE8BC 000DB81C 41 82 00 24 */ beq lbl_800DE8E0 /* 800DE8C0 000DB820 80 61 00 0C */ lwz r3, 0xc(r1) /* 800DE8C4 000DB824 28 03 00 00 */ cmplwi r3, 0 /* 800DE8C8 000DB828 41 82 00 18 */ beq lbl_800DE8E0 /* 800DE8CC 000DB82C 81 83 00 00 */ lwz r12, 0(r3) /* 800DE8D0 000DB830 38 80 00 01 */ li r4, 1 /* 800DE8D4 000DB834 81 8C 00 08 */ lwz r12, 8(r12) /* 800DE8D8 000DB838 7D 89 03 A6 */ mtctr r12 /* 800DE8DC 000DB83C 4E 80 04 21 */ bctrl lbl_800DE8E0: /* 800DE8E0 000DB840 38 61 00 10 */ addi r3, r1, 0x10 /* 800DE8E4 000DB844 38 80 FF FF */ li r4, -1 /* 800DE8E8 000DB848 48 00 02 51 */ bl "__dt__Q24rstl53auto_ptr<41TObjOwnerDerivedFromIObj<13CStateMachine>>Fv" /* 800DE8EC 000DB84C 80 01 00 24 */ lwz r0, 0x24(r1) /* 800DE8F0 000DB850 7F E3 FB 78 */ mr r3, r31 /* 800DE8F4 000DB854 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800DE8F8 000DB858 7C 08 03 A6 */ mtlr r0 /* 800DE8FC 000DB85C 38 21 00 20 */ addi r1, r1, 0x20 /* 800DE900 000DB860 4E 80 00 20 */ blr .global sub_800de904 sub_800de904: /* 800DE904 000DB864 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DE908 000DB868 7C 08 02 A6 */ mflr r0 /* 800DE90C 000DB86C 90 01 00 14 */ stw r0, 0x14(r1) /* 800DE910 000DB870 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DE914 000DB874 7C 9F 23 78 */ mr r31, r4 /* 800DE918 000DB878 93 C1 00 08 */ stw r30, 8(r1) /* 800DE91C 000DB87C 7C 7E 1B 79 */ or. r30, r3, r3 /* 800DE920 000DB880 41 82 00 58 */ beq lbl_800DE978 /* 800DE924 000DB884 3C 60 80 3E */ lis r3, lbl_803DF700@ha /* 800DE928 000DB888 38 03 F7 00 */ addi r0, r3, lbl_803DF700@l /* 800DE92C 000DB88C 90 1E 00 00 */ stw r0, 0(r30) /* 800DE930 000DB890 80 7E 00 04 */ lwz r3, 4(r30) /* 800DE934 000DB894 28 03 00 00 */ cmplwi r3, 0 /* 800DE938 000DB898 41 82 00 0C */ beq lbl_800DE944 /* 800DE93C 000DB89C 38 80 00 01 */ li r4, 1 /* 800DE940 000DB8A0 48 00 00 55 */ bl sub_800de994 lbl_800DE944: /* 800DE944 000DB8A4 28 1E 00 00 */ cmplwi r30, 0 /* 800DE948 000DB8A8 41 82 00 20 */ beq lbl_800DE968 /* 800DE94C 000DB8AC 3C 60 80 3E */ lis r3, __vt__31TObjOwnerDerivedFromIObjUntyped@ha /* 800DE950 000DB8B0 38 03 8D 78 */ addi r0, r3, __vt__31TObjOwnerDerivedFromIObjUntyped@l /* 800DE954 000DB8B4 90 1E 00 00 */ stw r0, 0(r30) /* 800DE958 000DB8B8 41 82 00 10 */ beq lbl_800DE968 /* 800DE95C 000DB8BC 3C 60 80 3E */ lis r3, __vt__4IObj@ha /* 800DE960 000DB8C0 38 03 8D 6C */ addi r0, r3, __vt__4IObj@l /* 800DE964 000DB8C4 90 1E 00 00 */ stw r0, 0(r30) lbl_800DE968: /* 800DE968 000DB8C8 7F E0 07 35 */ extsh. r0, r31 /* 800DE96C 000DB8CC 40 81 00 0C */ ble lbl_800DE978 /* 800DE970 000DB8D0 7F C3 F3 78 */ mr r3, r30 /* 800DE974 000DB8D4 48 23 6F BD */ bl Free__7CMemoryFPCv lbl_800DE978: /* 800DE978 000DB8D8 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DE97C 000DB8DC 7F C3 F3 78 */ mr r3, r30 /* 800DE980 000DB8E0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DE984 000DB8E4 83 C1 00 08 */ lwz r30, 8(r1) /* 800DE988 000DB8E8 7C 08 03 A6 */ mtlr r0 /* 800DE98C 000DB8EC 38 21 00 10 */ addi r1, r1, 0x10 /* 800DE990 000DB8F0 4E 80 00 20 */ blr .global sub_800de994 sub_800de994: /* 800DE994 000DB8F4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 800DE998 000DB8F8 7C 08 02 A6 */ mflr r0 /* 800DE99C 000DB8FC 90 01 00 34 */ stw r0, 0x34(r1) /* 800DE9A0 000DB900 93 E1 00 2C */ stw r31, 0x2c(r1) /* 800DE9A4 000DB904 7C 9F 23 78 */ mr r31, r4 /* 800DE9A8 000DB908 93 C1 00 28 */ stw r30, 0x28(r1) /* 800DE9AC 000DB90C 7C 7E 1B 79 */ or. r30, r3, r3 /* 800DE9B0 000DB910 41 82 00 A4 */ beq lbl_800DEA54 /* 800DE9B4 000DB914 34 1E 00 10 */ addic. r0, r30, 0x10 /* 800DE9B8 000DB918 41 82 00 44 */ beq lbl_800DE9FC /* 800DE9BC 000DB91C 80 1E 00 14 */ lwz r0, 0x14(r30) /* 800DE9C0 000DB920 80 7E 00 1C */ lwz r3, 0x1c(r30) /* 800DE9C4 000DB924 1C 00 00 1C */ mulli r0, r0, 0x1c /* 800DE9C8 000DB928 90 61 00 1C */ stw r3, 0x1c(r1) /* 800DE9CC 000DB92C 7C 64 1B 78 */ mr r4, r3 /* 800DE9D0 000DB930 7C 03 02 14 */ add r0, r3, r0 /* 800DE9D4 000DB934 90 61 00 18 */ stw r3, 0x18(r1) /* 800DE9D8 000DB938 90 01 00 24 */ stw r0, 0x24(r1) /* 800DE9DC 000DB93C 90 01 00 20 */ stw r0, 0x20(r1) /* 800DE9E0 000DB940 48 00 00 08 */ b lbl_800DE9E8 lbl_800DE9E4: /* 800DE9E4 000DB944 38 84 00 1C */ addi r4, r4, 0x1c lbl_800DE9E8: /* 800DE9E8 000DB948 7C 04 00 40 */ cmplw r4, r0 /* 800DE9EC 000DB94C 40 82 FF F8 */ bne lbl_800DE9E4 /* 800DE9F0 000DB950 28 03 00 00 */ cmplwi r3, 0 /* 800DE9F4 000DB954 41 82 00 08 */ beq lbl_800DE9FC /* 800DE9F8 000DB958 48 23 6F 39 */ bl Free__7CMemoryFPCv lbl_800DE9FC: /* 800DE9FC 000DB95C 28 1E 00 00 */ cmplwi r30, 0 /* 800DEA00 000DB960 41 82 00 44 */ beq lbl_800DEA44 /* 800DEA04 000DB964 80 1E 00 04 */ lwz r0, 4(r30) /* 800DEA08 000DB968 80 7E 00 0C */ lwz r3, 0xc(r30) /* 800DEA0C 000DB96C 1C 00 00 34 */ mulli r0, r0, 0x34 /* 800DEA10 000DB970 90 61 00 0C */ stw r3, 0xc(r1) /* 800DEA14 000DB974 7C 64 1B 78 */ mr r4, r3 /* 800DEA18 000DB978 7C 03 02 14 */ add r0, r3, r0 /* 800DEA1C 000DB97C 90 61 00 08 */ stw r3, 8(r1) /* 800DEA20 000DB980 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEA24 000DB984 90 01 00 10 */ stw r0, 0x10(r1) /* 800DEA28 000DB988 48 00 00 08 */ b lbl_800DEA30 lbl_800DEA2C: /* 800DEA2C 000DB98C 38 84 00 34 */ addi r4, r4, 0x34 lbl_800DEA30: /* 800DEA30 000DB990 7C 04 00 40 */ cmplw r4, r0 /* 800DEA34 000DB994 40 82 FF F8 */ bne lbl_800DEA2C /* 800DEA38 000DB998 28 03 00 00 */ cmplwi r3, 0 /* 800DEA3C 000DB99C 41 82 00 08 */ beq lbl_800DEA44 /* 800DEA40 000DB9A0 48 23 6E F1 */ bl Free__7CMemoryFPCv lbl_800DEA44: /* 800DEA44 000DB9A4 7F E0 07 35 */ extsh. r0, r31 /* 800DEA48 000DB9A8 40 81 00 0C */ ble lbl_800DEA54 /* 800DEA4C 000DB9AC 7F C3 F3 78 */ mr r3, r30 /* 800DEA50 000DB9B0 48 23 6E E1 */ bl Free__7CMemoryFPCv lbl_800DEA54: /* 800DEA54 000DB9B4 80 01 00 34 */ lwz r0, 0x34(r1) /* 800DEA58 000DB9B8 7F C3 F3 78 */ mr r3, r30 /* 800DEA5C 000DB9BC 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 800DEA60 000DB9C0 83 C1 00 28 */ lwz r30, 0x28(r1) /* 800DEA64 000DB9C4 7C 08 03 A6 */ mtlr r0 /* 800DEA68 000DB9C8 38 21 00 30 */ addi r1, r1, 0x30 /* 800DEA6C 000DB9CC 4E 80 00 20 */ blr .global "GetIObjObjectFor__23TToken<13CStateMachine>FRCQ24rstl25auto_ptr<13CStateMachine>" "GetIObjObjectFor__23TToken<13CStateMachine>FRCQ24rstl25auto_ptr<13CStateMachine>": /* 800DEA70 000DB9D0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEA74 000DB9D4 7C 08 02 A6 */ mflr r0 /* 800DEA78 000DB9D8 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEA7C 000DB9DC 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DEA80 000DB9E0 7C 7F 1B 78 */ mr r31, r3 /* 800DEA84 000DB9E4 48 00 00 19 */ bl "GetNewDerivedObject__41TObjOwnerDerivedFromIObj<13CStateMachine>FRCQ24rstl25auto_ptr<13CStateMachine>" /* 800DEA88 000DB9E8 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEA8C 000DB9EC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DEA90 000DB9F0 7C 08 03 A6 */ mtlr r0 /* 800DEA94 000DB9F4 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEA98 000DB9F8 4E 80 00 20 */ blr .global "GetNewDerivedObject__41TObjOwnerDerivedFromIObj<13CStateMachine>FRCQ24rstl25auto_ptr<13CStateMachine>" "GetNewDerivedObject__41TObjOwnerDerivedFromIObj<13CStateMachine>FRCQ24rstl25auto_ptr<13CStateMachine>": /* 800DEA9C 000DB9FC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEAA0 000DBA00 7C 08 02 A6 */ mflr r0 /* 800DEAA4 000DBA04 3C A0 80 3D */ lis r5, lbl_803CE528@ha /* 800DEAA8 000DBA08 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEAAC 000DBA0C 38 05 E5 28 */ addi r0, r5, lbl_803CE528@l /* 800DEAB0 000DBA10 38 A0 00 00 */ li r5, 0 /* 800DEAB4 000DBA14 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DEAB8 000DBA18 7C 9F 23 78 */ mr r31, r4 /* 800DEABC 000DBA1C 7C 04 03 78 */ mr r4, r0 /* 800DEAC0 000DBA20 93 C1 00 08 */ stw r30, 8(r1) /* 800DEAC4 000DBA24 7C 7E 1B 78 */ mr r30, r3 /* 800DEAC8 000DBA28 38 60 00 08 */ li r3, 8 /* 800DEACC 000DBA2C 48 23 6D A1 */ bl __nw__FUlPCcPCc /* 800DEAD0 000DBA30 28 03 00 00 */ cmplwi r3, 0 /* 800DEAD4 000DBA34 41 82 00 38 */ beq lbl_800DEB0C /* 800DEAD8 000DBA38 3C 80 80 3E */ lis r4, __vt__4IObj@ha /* 800DEADC 000DBA3C 3C A0 80 3E */ lis r5, __vt__31TObjOwnerDerivedFromIObjUntyped@ha /* 800DEAE0 000DBA40 38 04 8D 6C */ addi r0, r4, __vt__4IObj@l /* 800DEAE4 000DBA44 3C 80 80 3E */ lis r4, lbl_803DF700@ha /* 800DEAE8 000DBA48 90 03 00 00 */ stw r0, 0(r3) /* 800DEAEC 000DBA4C 38 C5 8D 78 */ addi r6, r5, __vt__31TObjOwnerDerivedFromIObjUntyped@l /* 800DEAF0 000DBA50 38 A0 00 00 */ li r5, 0 /* 800DEAF4 000DBA54 38 04 F7 00 */ addi r0, r4, lbl_803DF700@l /* 800DEAF8 000DBA58 90 C3 00 00 */ stw r6, 0(r3) /* 800DEAFC 000DBA5C 98 BF 00 00 */ stb r5, 0(r31) /* 800DEB00 000DBA60 80 9F 00 04 */ lwz r4, 4(r31) /* 800DEB04 000DBA64 90 83 00 04 */ stw r4, 4(r3) /* 800DEB08 000DBA68 90 03 00 00 */ stw r0, 0(r3) lbl_800DEB0C: /* 800DEB0C 000DBA6C 7C 03 00 D0 */ neg r0, r3 /* 800DEB10 000DBA70 7C 00 1B 78 */ or r0, r0, r3 /* 800DEB14 000DBA74 54 00 0F FE */ srwi r0, r0, 0x1f /* 800DEB18 000DBA78 98 1E 00 00 */ stb r0, 0(r30) /* 800DEB1C 000DBA7C 90 7E 00 04 */ stw r3, 4(r30) /* 800DEB20 000DBA80 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DEB24 000DBA84 83 C1 00 08 */ lwz r30, 8(r1) /* 800DEB28 000DBA88 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEB2C 000DBA8C 7C 08 03 A6 */ mtlr r0 /* 800DEB30 000DBA90 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEB34 000DBA94 4E 80 00 20 */ blr .global "__dt__Q24rstl53auto_ptr<41TObjOwnerDerivedFromIObj<13CStateMachine>>Fv" "__dt__Q24rstl53auto_ptr<41TObjOwnerDerivedFromIObj<13CStateMachine>>Fv": /* 800DEB38 000DBA98 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEB3C 000DBA9C 7C 08 02 A6 */ mflr r0 /* 800DEB40 000DBAA0 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEB44 000DBAA4 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DEB48 000DBAA8 7C 9F 23 78 */ mr r31, r4 /* 800DEB4C 000DBAAC 93 C1 00 08 */ stw r30, 8(r1) /* 800DEB50 000DBAB0 7C 7E 1B 79 */ or. r30, r3, r3 /* 800DEB54 000DBAB4 41 82 00 2C */ beq lbl_800DEB80 /* 800DEB58 000DBAB8 88 1E 00 00 */ lbz r0, 0(r30) /* 800DEB5C 000DBABC 28 00 00 00 */ cmplwi r0, 0 /* 800DEB60 000DBAC0 41 82 00 10 */ beq lbl_800DEB70 /* 800DEB64 000DBAC4 80 7E 00 04 */ lwz r3, 4(r30) /* 800DEB68 000DBAC8 38 80 00 01 */ li r4, 1 /* 800DEB6C 000DBACC 4B FF FE 29 */ bl sub_800de994 lbl_800DEB70: /* 800DEB70 000DBAD0 7F E0 07 35 */ extsh. r0, r31 /* 800DEB74 000DBAD4 40 81 00 0C */ ble lbl_800DEB80 /* 800DEB78 000DBAD8 7F C3 F3 78 */ mr r3, r30 /* 800DEB7C 000DBADC 48 23 6D B5 */ bl Free__7CMemoryFPCv lbl_800DEB80: /* 800DEB80 000DBAE0 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEB84 000DBAE4 7F C3 F3 78 */ mr r3, r30 /* 800DEB88 000DBAE8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DEB8C 000DBAEC 83 C1 00 08 */ lwz r30, 8(r1) /* 800DEB90 000DBAF0 7C 08 03 A6 */ mtlr r0 /* 800DEB94 000DBAF4 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEB98 000DBAF8 4E 80 00 20 */ blr .section .rodata .balign 8 .global lbl_803CE528 lbl_803CE528: # ROM: 0x3CB528 .asciz "??(??)" .balign 4