prime/asm/MetroidPrime/ScriptObjects/CScriptCameraHint.s

796 lines
40 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global Accept__17CScriptCameraHintFR8IVisitor
Accept__17CScriptCameraHintFR8IVisitor:
/* 800C468C 000C15EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C4690 000C15F0 7C 08 02 A6 */ mflr r0
/* 800C4694 000C15F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C4698 000C15F8 7C 60 1B 78 */ mr r0, r3
/* 800C469C 000C15FC 7C 83 23 78 */ mr r3, r4
/* 800C46A0 000C1600 81 84 00 00 */ lwz r12, 0(r4)
/* 800C46A4 000C1604 7C 04 03 78 */ mr r4, r0
/* 800C46A8 000C1608 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 800C46AC 000C160C 7D 89 03 A6 */ mtctr r12
/* 800C46B0 000C1610 4E 80 04 21 */ bctrl
/* 800C46B4 000C1614 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C46B8 000C1618 7C 08 03 A6 */ mtlr r0
/* 800C46BC 000C161C 38 21 00 10 */ addi r1, r1, 0x10
/* 800C46C0 000C1620 4E 80 00 20 */ blr
.global AcceptScriptMsg__17CScriptCameraHintF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__17CScriptCameraHintF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 800C46C4 000C1624 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 800C46C8 000C1628 7C 08 02 A6 */ mflr r0
/* 800C46CC 000C162C 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 800C46D0 000C1630 BF 41 00 A8 */ stmw r26, 0xa8(r1)
/* 800C46D4 000C1634 7C 9C 23 78 */ mr r28, r4
/* 800C46D8 000C1638 2C 1C 00 22 */ cmpwi r28, 0x22
/* 800C46DC 000C163C 7C 7B 1B 78 */ mr r27, r3
/* 800C46E0 000C1640 7C BD 2B 78 */ mr r29, r5
/* 800C46E4 000C1644 7C DE 33 78 */ mr r30, r6
/* 800C46E8 000C1648 41 82 00 20 */ beq lbl_800C4708
/* 800C46EC 000C164C 40 80 00 10 */ bge lbl_800C46FC
/* 800C46F0 000C1650 2C 1C 00 04 */ cmpwi r28, 4
/* 800C46F4 000C1654 41 82 00 14 */ beq lbl_800C4708
/* 800C46F8 000C1658 48 00 00 38 */ b lbl_800C4730
lbl_800C46FC:
/* 800C46FC 000C165C 2C 1C 00 24 */ cmpwi r28, 0x24
/* 800C4700 000C1660 40 80 00 30 */ bge lbl_800C4730
/* 800C4704 000C1664 48 00 00 24 */ b lbl_800C4728
lbl_800C4708:
/* 800C4708 000C1668 A0 1B 00 08 */ lhz r0, 8(r27)
/* 800C470C 000C166C 7F C5 F3 78 */ mr r5, r30
/* 800C4710 000C1670 80 7E 08 70 */ lwz r3, 0x870(r30)
/* 800C4714 000C1674 38 81 00 38 */ addi r4, r1, 0x38
/* 800C4718 000C1678 B0 01 00 34 */ sth r0, 0x34(r1)
/* 800C471C 000C167C B0 01 00 38 */ sth r0, 0x38(r1)
/* 800C4720 000C1680 4B F4 4E 5D */ bl DeleteCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager
/* 800C4724 000C1684 48 00 00 0C */ b lbl_800C4730
lbl_800C4728:
/* 800C4728 000C1688 7F C4 F3 78 */ mr r4, r30
/* 800C472C 000C168C 48 00 02 79 */ bl InitializeInArea__17CScriptCameraHintFR13CStateManager
lbl_800C4730:
/* 800C4730 000C1690 88 1B 00 30 */ lbz r0, 0x30(r27)
/* 800C4734 000C1694 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800C4738 000C1698 41 82 00 98 */ beq lbl_800C47D0
/* 800C473C 000C169C 2C 1C 00 06 */ cmpwi r28, 6
/* 800C4740 000C16A0 83 FE 08 70 */ lwz r31, 0x870(r30)
/* 800C4744 000C16A4 41 82 00 8C */ beq lbl_800C47D0
/* 800C4748 000C16A8 40 80 00 10 */ bge lbl_800C4758
/* 800C474C 000C16AC 2C 1C 00 05 */ cmpwi r28, 5
/* 800C4750 000C16B0 40 80 00 4C */ bge lbl_800C479C
/* 800C4754 000C16B4 48 00 00 7C */ b lbl_800C47D0
lbl_800C4758:
/* 800C4758 000C16B8 2C 1C 00 08 */ cmpwi r28, 8
/* 800C475C 000C16BC 40 80 00 74 */ bge lbl_800C47D0
/* 800C4760 000C16C0 A0 1D 00 00 */ lhz r0, 0(r29)
/* 800C4764 000C16C4 7F 63 DB 78 */ mr r3, r27
/* 800C4768 000C16C8 38 81 00 30 */ addi r4, r1, 0x30
/* 800C476C 000C16CC B0 01 00 30 */ sth r0, 0x30(r1)
/* 800C4770 000C16D0 48 00 05 F9 */ bl AddHelper__17CScriptCameraHintF9TUniqueId
/* 800C4774 000C16D4 A0 1B 00 08 */ lhz r0, 8(r27)
/* 800C4778 000C16D8 7F E3 FB 78 */ mr r3, r31
/* 800C477C 000C16DC 7F C5 F3 78 */ mr r5, r30
/* 800C4780 000C16E0 38 81 00 2C */ addi r4, r1, 0x2c
/* 800C4784 000C16E4 B0 01 00 28 */ sth r0, 0x28(r1)
/* 800C4788 000C16E8 B0 01 00 2C */ sth r0, 0x2c(r1)
/* 800C478C 000C16EC 4B F4 4E D9 */ bl AddActiveCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager
/* 800C4790 000C16F0 38 00 00 00 */ li r0, 0
/* 800C4794 000C16F4 98 1B 01 66 */ stb r0, 0x166(r27)
/* 800C4798 000C16F8 48 00 00 38 */ b lbl_800C47D0
lbl_800C479C:
/* 800C479C 000C16FC A0 1D 00 00 */ lhz r0, 0(r29)
/* 800C47A0 000C1700 7F 63 DB 78 */ mr r3, r27
/* 800C47A4 000C1704 7F C5 F3 78 */ mr r5, r30
/* 800C47A8 000C1708 38 81 00 24 */ addi r4, r1, 0x24
/* 800C47AC 000C170C B0 01 00 24 */ sth r0, 0x24(r1)
/* 800C47B0 000C1710 48 00 04 E9 */ bl RemoveHelper__17CScriptCameraHintF9TUniqueId
/* 800C47B4 000C1714 A0 1B 00 08 */ lhz r0, 8(r27)
/* 800C47B8 000C1718 7F E3 FB 78 */ mr r3, r31
/* 800C47BC 000C171C 7F C5 F3 78 */ mr r5, r30
/* 800C47C0 000C1720 38 81 00 20 */ addi r4, r1, 0x20
/* 800C47C4 000C1724 B0 01 00 1C */ sth r0, 0x1c(r1)
/* 800C47C8 000C1728 B0 01 00 20 */ sth r0, 0x20(r1)
/* 800C47CC 000C172C 4B F4 4C F5 */ bl AddInactiveCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager
lbl_800C47D0:
/* 800C47D0 000C1730 2C 1C 00 06 */ cmpwi r28, 6
/* 800C47D4 000C1734 83 FE 08 70 */ lwz r31, 0x870(r30)
/* 800C47D8 000C1738 41 82 00 08 */ beq lbl_800C47E0
/* 800C47DC 000C173C 48 00 01 98 */ b lbl_800C4974
lbl_800C47E0:
/* 800C47E0 000C1740 88 1B 00 30 */ lbz r0, 0x30(r27)
/* 800C47E4 000C1744 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800C47E8 000C1748 40 82 01 5C */ bne lbl_800C4944
/* 800C47EC 000C174C 7F 63 DB 78 */ mr r3, r27
/* 800C47F0 000C1750 38 80 00 01 */ li r4, 1
/* 800C47F4 000C1754 81 9B 00 00 */ lwz r12, 0(r27)
/* 800C47F8 000C1758 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 800C47FC 000C175C 7D 89 03 A6 */ mtctr r12
/* 800C4800 000C1760 4E 80 04 21 */ bctrl
/* 800C4804 000C1764 A0 1D 00 00 */ lhz r0, 0(r29)
/* 800C4808 000C1768 7F C3 F3 78 */ mr r3, r30
/* 800C480C 000C176C 38 81 00 18 */ addi r4, r1, 0x18
/* 800C4810 000C1770 B0 01 00 18 */ sth r0, 0x18(r1)
/* 800C4814 000C1774 4B F8 7D 91 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 800C4818 000C1778 7C 64 1B 78 */ mr r4, r3
/* 800C481C 000C177C 38 61 00 3C */ addi r3, r1, 0x3c
/* 800C4820 000C1780 4B FE B4 71 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 800C4824 000C1784 83 43 00 04 */ lwz r26, 4(r3)
/* 800C4828 000C1788 28 1A 00 00 */ cmplwi r26, 0
/* 800C482C 000C178C 41 82 01 18 */ beq lbl_800C4944
/* 800C4830 000C1790 C0 3B 01 94 */ lfs f1, 0x194(r27)
/* 800C4834 000C1794 38 61 00 68 */ addi r3, r1, 0x68
/* 800C4838 000C1798 C0 1A 00 60 */ lfs f0, 0x60(r26)
/* 800C483C 000C179C C0 9B 01 84 */ lfs f4, 0x184(r27)
/* 800C4840 000C17A0 C0 7A 00 50 */ lfs f3, 0x50(r26)
/* 800C4844 000C17A4 EC A1 00 28 */ fsubs f5, f1, f0
/* 800C4848 000C17A8 C0 5B 01 74 */ lfs f2, 0x174(r27)
/* 800C484C 000C17AC C0 3A 00 40 */ lfs f1, 0x40(r26)
/* 800C4850 000C17B0 EC 64 18 28 */ fsubs f3, f4, f3
/* 800C4854 000C17B4 C0 02 8E 20 */ lfs f0, lbl_805AAB40@sda21(r2)
/* 800C4858 000C17B8 EC 22 08 28 */ fsubs f1, f2, f1
/* 800C485C 000C17BC D0 A1 00 70 */ stfs f5, 0x70(r1)
/* 800C4860 000C17C0 D0 61 00 6C */ stfs f3, 0x6c(r1)
/* 800C4864 000C17C4 D0 21 00 68 */ stfs f1, 0x68(r1)
/* 800C4868 000C17C8 D0 01 00 70 */ stfs f0, 0x70(r1)
/* 800C486C 000C17CC 48 24 FE 8D */ bl CanBeNormalized__9CVector3fCFv
/* 800C4870 000C17D0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800C4874 000C17D4 41 82 00 10 */ beq lbl_800C4884
/* 800C4878 000C17D8 38 61 00 68 */ addi r3, r1, 0x68
/* 800C487C 000C17DC 48 25 00 7D */ bl Normalize__9CVector3fFv
/* 800C4880 000C17E0 48 00 00 1C */ b lbl_800C489C
lbl_800C4884:
/* 800C4884 000C17E4 C0 5A 00 58 */ lfs f2, 0x58(r26)
/* 800C4888 000C17E8 C0 3A 00 48 */ lfs f1, 0x48(r26)
/* 800C488C 000C17EC C0 1A 00 38 */ lfs f0, 0x38(r26)
/* 800C4890 000C17F0 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 800C4894 000C17F4 D0 21 00 6C */ stfs f1, 0x6c(r1)
/* 800C4898 000C17F8 D0 41 00 70 */ stfs f2, 0x70(r1)
lbl_800C489C:
/* 800C489C 000C17FC C0 9A 00 60 */ lfs f4, 0x60(r26)
/* 800C48A0 000C1800 3C 60 80 5A */ lis r3, lbl_805A66F4@ha
/* 800C48A4 000C1804 C0 7A 00 50 */ lfs f3, 0x50(r26)
/* 800C48A8 000C1808 38 C3 66 F4 */ addi r6, r3, lbl_805A66F4@l
/* 800C48AC 000C180C C0 5A 00 40 */ lfs f2, 0x40(r26)
/* 800C48B0 000C1810 38 61 00 74 */ addi r3, r1, 0x74
/* 800C48B4 000C1814 C0 01 00 68 */ lfs f0, 0x68(r1)
/* 800C48B8 000C1818 38 81 00 5C */ addi r4, r1, 0x5c
/* 800C48BC 000C181C D0 41 00 5C */ stfs f2, 0x5c(r1)
/* 800C48C0 000C1820 38 A1 00 44 */ addi r5, r1, 0x44
/* 800C48C4 000C1824 C0 21 00 6C */ lfs f1, 0x6c(r1)
/* 800C48C8 000C1828 EC 02 00 2A */ fadds f0, f2, f0
/* 800C48CC 000C182C D0 61 00 60 */ stfs f3, 0x60(r1)
/* 800C48D0 000C1830 EC C3 08 2A */ fadds f6, f3, f1
/* 800C48D4 000C1834 C0 21 00 70 */ lfs f1, 0x70(r1)
/* 800C48D8 000C1838 D0 81 00 64 */ stfs f4, 0x64(r1)
/* 800C48DC 000C183C C0 BB 01 94 */ lfs f5, 0x194(r27)
/* 800C48E0 000C1840 C0 9B 01 84 */ lfs f4, 0x184(r27)
/* 800C48E4 000C1844 C0 7B 01 74 */ lfs f3, 0x174(r27)
/* 800C48E8 000C1848 FC 40 28 18 */ frsp f2, f5
/* 800C48EC 000C184C D0 81 00 54 */ stfs f4, 0x54(r1)
/* 800C48F0 000C1850 EC 22 08 2A */ fadds f1, f2, f1
/* 800C48F4 000C1854 D0 61 00 50 */ stfs f3, 0x50(r1)
/* 800C48F8 000C1858 D0 A1 00 58 */ stfs f5, 0x58(r1)
/* 800C48FC 000C185C D0 A1 00 64 */ stfs f5, 0x64(r1)
/* 800C4900 000C1860 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 800C4904 000C1864 D0 C1 00 48 */ stfs f6, 0x48(r1)
/* 800C4908 000C1868 D0 21 00 4C */ stfs f1, 0x4c(r1)
/* 800C490C 000C186C 48 24 F2 05 */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 800C4910 000C1870 38 7B 00 34 */ addi r3, r27, 0x34
/* 800C4914 000C1874 38 81 00 74 */ addi r4, r1, 0x74
/* 800C4918 000C1878 48 24 E2 29 */ bl __as__12CTransform4fFRC12CTransform4f
/* 800C491C 000C187C 88 1B 00 E4 */ lbz r0, 0xe4(r27)
/* 800C4920 000C1880 38 60 00 01 */ li r3, 1
/* 800C4924 000C1884 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 800C4928 000C1888 98 1B 00 E4 */ stb r0, 0xe4(r27)
/* 800C492C 000C188C 88 1B 00 E4 */ lbz r0, 0xe4(r27)
/* 800C4930 000C1890 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 800C4934 000C1894 98 1B 00 E4 */ stb r0, 0xe4(r27)
/* 800C4938 000C1898 88 1B 00 E4 */ lbz r0, 0xe4(r27)
/* 800C493C 000C189C 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 800C4940 000C18A0 98 1B 00 E4 */ stb r0, 0xe4(r27)
lbl_800C4944:
/* 800C4944 000C18A4 A0 1D 00 00 */ lhz r0, 0(r29)
/* 800C4948 000C18A8 7F 63 DB 78 */ mr r3, r27
/* 800C494C 000C18AC 38 81 00 14 */ addi r4, r1, 0x14
/* 800C4950 000C18B0 B0 01 00 14 */ sth r0, 0x14(r1)
/* 800C4954 000C18B4 48 00 04 15 */ bl AddHelper__17CScriptCameraHintF9TUniqueId
/* 800C4958 000C18B8 A0 1B 00 08 */ lhz r0, 8(r27)
/* 800C495C 000C18BC 7F E3 FB 78 */ mr r3, r31
/* 800C4960 000C18C0 7F C5 F3 78 */ mr r5, r30
/* 800C4964 000C18C4 38 81 00 10 */ addi r4, r1, 0x10
/* 800C4968 000C18C8 B0 01 00 0C */ sth r0, 0xc(r1)
/* 800C496C 000C18CC B0 01 00 10 */ sth r0, 0x10(r1)
/* 800C4970 000C18D0 4B F4 4C F5 */ bl AddActiveCameraHint__14CCameraManagerF9TUniqueIdR13CStateManager
lbl_800C4974:
/* 800C4974 000C18D4 A0 1D 00 00 */ lhz r0, 0(r29)
/* 800C4978 000C18D8 7F 63 DB 78 */ mr r3, r27
/* 800C497C 000C18DC 7F 84 E3 78 */ mr r4, r28
/* 800C4980 000C18E0 7F C6 F3 78 */ mr r6, r30
/* 800C4984 000C18E4 B0 01 00 08 */ sth r0, 8(r1)
/* 800C4988 000C18E8 38 A1 00 08 */ addi r5, r1, 8
/* 800C498C 000C18EC 4B F8 EC 89 */ bl AcceptScriptMsg__6CActorF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 800C4990 000C18F0 BB 41 00 A8 */ lmw r26, 0xa8(r1)
/* 800C4994 000C18F4 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 800C4998 000C18F8 7C 08 03 A6 */ mtlr r0
/* 800C499C 000C18FC 38 21 00 C0 */ addi r1, r1, 0xc0
/* 800C49A0 000C1900 4E 80 00 20 */ blr
.global InitializeInArea__17CScriptCameraHintFR13CStateManager
InitializeInArea__17CScriptCameraHintFR13CStateManager:
/* 800C49A4 000C1904 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 800C49A8 000C1908 7C 08 02 A6 */ mflr r0
/* 800C49AC 000C190C 90 01 00 74 */ stw r0, 0x74(r1)
/* 800C49B0 000C1910 BF 21 00 54 */ stmw r25, 0x54(r1)
/* 800C49B4 000C1914 7C 7A 1B 78 */ mr r26, r3
/* 800C49B8 000C1918 7C 9B 23 78 */ mr r27, r4
/* 800C49BC 000C191C 83 E4 08 10 */ lwz r31, 0x810(r4)
/* 800C49C0 000C1920 A3 A3 00 08 */ lhz r29, 8(r3)
/* 800C49C4 000C1924 A0 0D A3 8C */ lhz r0, lbl_805A8F4C@sda21(r13)
/* 800C49C8 000C1928 B0 03 01 64 */ sth r0, 0x164(r3)
/* 800C49CC 000C192C AB 9F 20 08 */ lha r28, 0x2008(r31)
/* 800C49D0 000C1930 48 00 01 AC */ b lbl_800C4B7C
lbl_800C49D4:
/* 800C49D4 000C1934 7F E3 FB 78 */ mr r3, r31
/* 800C49D8 000C1938 7F 84 E3 78 */ mr r4, r28
/* 800C49DC 000C193C 4B F4 B3 39 */ bl __vc__11CObjectListFi
/* 800C49E0 000C1940 7C 64 1B 78 */ mr r4, r3
/* 800C49E4 000C1944 38 61 00 40 */ addi r3, r1, 0x40
/* 800C49E8 000C1948 4B FE 9F CD */ bl "__ct__20TCastToPtr<7CEntity>FP7CEntity"
/* 800C49EC 000C194C 80 63 00 04 */ lwz r3, 4(r3)
/* 800C49F0 000C1950 28 03 00 00 */ cmplwi r3, 0
/* 800C49F4 000C1954 41 82 01 6C */ beq lbl_800C4B60
/* 800C49F8 000C1958 3B C3 00 20 */ addi r30, r3, 0x20
/* 800C49FC 000C195C 83 23 00 2C */ lwz r25, 0x2c(r3)
/* 800C4A00 000C1960 48 00 01 48 */ b lbl_800C4B48
lbl_800C4A04:
/* 800C4A04 000C1964 80 19 00 08 */ lwz r0, 8(r25)
/* 800C4A08 000C1968 7F 64 DB 78 */ mr r4, r27
/* 800C4A0C 000C196C 38 61 00 14 */ addi r3, r1, 0x14
/* 800C4A10 000C1970 38 A1 00 28 */ addi r5, r1, 0x28
/* 800C4A14 000C1974 90 01 00 28 */ stw r0, 0x28(r1)
/* 800C4A18 000C1978 4B F8 35 05 */ bl GetIdForScript__13CStateManagerCF9TEditorId
/* 800C4A1C 000C197C A0 01 00 14 */ lhz r0, 0x14(r1)
/* 800C4A20 000C1980 7C 00 E8 40 */ cmplw r0, r29
/* 800C4A24 000C1984 40 82 01 20 */ bne lbl_800C4B44
/* 800C4A28 000C1988 80 19 00 04 */ lwz r0, 4(r25)
/* 800C4A2C 000C198C 2C 00 00 07 */ cmpwi r0, 7
/* 800C4A30 000C1990 41 82 00 0C */ beq lbl_800C4A3C
/* 800C4A34 000C1994 2C 00 00 05 */ cmpwi r0, 5
/* 800C4A38 000C1998 40 82 01 0C */ bne lbl_800C4B44
lbl_800C4A3C:
/* 800C4A3C 000C199C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 800C4A40 000C19A0 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800C4A44 000C19A4 48 00 00 E0 */ b lbl_800C4B24
lbl_800C4A48:
/* 800C4A48 000C19A8 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 800C4A4C 000C19AC 80 03 00 04 */ lwz r0, 4(r3)
/* 800C4A50 000C19B0 2C 00 00 07 */ cmpwi r0, 7
/* 800C4A54 000C19B4 41 82 00 0C */ beq lbl_800C4A60
/* 800C4A58 000C19B8 2C 00 00 05 */ cmpwi r0, 5
/* 800C4A5C 000C19BC 40 82 00 BC */ bne lbl_800C4B18
lbl_800C4A60:
/* 800C4A60 000C19C0 80 C1 00 2C */ lwz r6, 0x2c(r1)
/* 800C4A64 000C19C4 7F 64 DB 78 */ mr r4, r27
/* 800C4A68 000C19C8 38 61 00 10 */ addi r3, r1, 0x10
/* 800C4A6C 000C19CC 38 A1 00 24 */ addi r5, r1, 0x24
/* 800C4A70 000C19D0 80 06 00 08 */ lwz r0, 8(r6)
/* 800C4A74 000C19D4 90 01 00 24 */ stw r0, 0x24(r1)
/* 800C4A78 000C19D8 4B F8 34 A5 */ bl GetIdForScript__13CStateManagerCF9TEditorId
/* 800C4A7C 000C19DC A0 01 00 10 */ lhz r0, 0x10(r1)
/* 800C4A80 000C19E0 7F 63 DB 78 */ mr r3, r27
/* 800C4A84 000C19E4 38 81 00 0C */ addi r4, r1, 0xc
/* 800C4A88 000C19E8 B0 01 00 18 */ sth r0, 0x18(r1)
/* 800C4A8C 000C19EC B0 01 00 0C */ sth r0, 0xc(r1)
/* 800C4A90 000C19F0 4B F8 7A E5 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 800C4A94 000C19F4 7C 64 1B 78 */ mr r4, r3
/* 800C4A98 000C19F8 38 61 00 38 */ addi r3, r1, 0x38
/* 800C4A9C 000C19FC 4B FE 83 39 */ bl "__ct__25TCastToPtr<11CPathCamera>FP7CEntity"
/* 800C4AA0 000C1A00 83 23 00 04 */ lwz r25, 4(r3)
/* 800C4AA4 000C1A04 7F 63 DB 78 */ mr r3, r27
/* 800C4AA8 000C1A08 A0 01 00 18 */ lhz r0, 0x18(r1)
/* 800C4AAC 000C1A0C 38 81 00 08 */ addi r4, r1, 8
/* 800C4AB0 000C1A10 B0 01 00 08 */ sth r0, 8(r1)
/* 800C4AB4 000C1A14 4B F8 7A C1 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 800C4AB8 000C1A18 7C 64 1B 78 */ mr r4, r3
/* 800C4ABC 000C1A1C 38 61 00 30 */ addi r3, r1, 0x30
/* 800C4AC0 000C1A20 4B FE 14 65 */ bl "__ct__34TCastToPtr<20CScriptSpindleCamera>FP7CEntity"
/* 800C4AC4 000C1A24 28 19 00 00 */ cmplwi r25, 0
/* 800C4AC8 000C1A28 80 03 00 04 */ lwz r0, 4(r3)
/* 800C4ACC 000C1A2C 40 82 00 0C */ bne lbl_800C4AD8
/* 800C4AD0 000C1A30 28 00 00 00 */ cmplwi r0, 0
/* 800C4AD4 000C1A34 41 82 00 34 */ beq lbl_800C4B08
lbl_800C4AD8:
/* 800C4AD8 000C1A38 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 800C4ADC 000C1A3C 7F C4 F3 78 */ mr r4, r30
/* 800C4AE0 000C1A40 38 61 00 20 */ addi r3, r1, 0x20
/* 800C4AE4 000C1A44 38 A1 00 1C */ addi r5, r1, 0x1c
/* 800C4AE8 000C1A48 90 01 00 1C */ stw r0, 0x1c(r1)
/* 800C4AEC 000C1A4C 48 00 00 AD */ bl sub_800c4b98
/* 800C4AF0 000C1A50 A0 7A 01 64 */ lhz r3, 0x164(r26)
/* 800C4AF4 000C1A54 A0 01 00 18 */ lhz r0, 0x18(r1)
/* 800C4AF8 000C1A58 7C 03 00 40 */ cmplw r3, r0
/* 800C4AFC 000C1A5C 41 82 00 64 */ beq lbl_800C4B60
/* 800C4B00 000C1A60 B0 1A 01 64 */ sth r0, 0x164(r26)
/* 800C4B04 000C1A64 48 00 00 5C */ b lbl_800C4B60
lbl_800C4B08:
/* 800C4B08 000C1A68 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 800C4B0C 000C1A6C 38 03 00 0C */ addi r0, r3, 0xc
/* 800C4B10 000C1A70 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800C4B14 000C1A74 48 00 00 10 */ b lbl_800C4B24
lbl_800C4B18:
/* 800C4B18 000C1A78 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 800C4B1C 000C1A7C 38 03 00 0C */ addi r0, r3, 0xc
/* 800C4B20 000C1A80 90 01 00 2C */ stw r0, 0x2c(r1)
lbl_800C4B24:
/* 800C4B24 000C1A84 80 1E 00 04 */ lwz r0, 4(r30)
/* 800C4B28 000C1A88 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 800C4B2C 000C1A8C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 800C4B30 000C1A90 80 81 00 2C */ lwz r4, 0x2c(r1)
/* 800C4B34 000C1A94 7C 03 02 14 */ add r0, r3, r0
/* 800C4B38 000C1A98 7C 04 00 40 */ cmplw r4, r0
/* 800C4B3C 000C1A9C 40 82 FF 0C */ bne lbl_800C4A48
/* 800C4B40 000C1AA0 48 00 00 20 */ b lbl_800C4B60
lbl_800C4B44:
/* 800C4B44 000C1AA4 3B 39 00 0C */ addi r25, r25, 0xc
lbl_800C4B48:
/* 800C4B48 000C1AA8 80 1E 00 04 */ lwz r0, 4(r30)
/* 800C4B4C 000C1AAC 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 800C4B50 000C1AB0 1C 00 00 0C */ mulli r0, r0, 0xc
/* 800C4B54 000C1AB4 7C 03 02 14 */ add r0, r3, r0
/* 800C4B58 000C1AB8 7C 19 00 40 */ cmplw r25, r0
/* 800C4B5C 000C1ABC 40 82 FE A8 */ bne lbl_800C4A04
lbl_800C4B60:
/* 800C4B60 000C1AC0 2C 1C FF FF */ cmpwi r28, -1
/* 800C4B64 000C1AC4 41 82 00 14 */ beq lbl_800C4B78
/* 800C4B68 000C1AC8 57 83 18 38 */ slwi r3, r28, 3
/* 800C4B6C 000C1ACC 38 03 00 08 */ addi r0, r3, 8
/* 800C4B70 000C1AD0 7F 9F 02 AE */ lhax r28, r31, r0
/* 800C4B74 000C1AD4 48 00 00 08 */ b lbl_800C4B7C
lbl_800C4B78:
/* 800C4B78 000C1AD8 3B 80 FF FF */ li r28, -1
lbl_800C4B7C:
/* 800C4B7C 000C1ADC 2C 1C FF FF */ cmpwi r28, -1
/* 800C4B80 000C1AE0 40 82 FE 54 */ bne lbl_800C49D4
/* 800C4B84 000C1AE4 BB 21 00 54 */ lmw r25, 0x54(r1)
/* 800C4B88 000C1AE8 80 01 00 74 */ lwz r0, 0x74(r1)
/* 800C4B8C 000C1AEC 7C 08 03 A6 */ mtlr r0
/* 800C4B90 000C1AF0 38 21 00 70 */ addi r1, r1, 0x70
/* 800C4B94 000C1AF4 4E 80 00 20 */ blr
.global sub_800c4b98
sub_800c4b98:
/* 800C4B98 000C1AF8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800C4B9C 000C1AFC 7C 08 02 A6 */ mflr r0
/* 800C4BA0 000C1B00 90 01 00 24 */ stw r0, 0x24(r1)
/* 800C4BA4 000C1B04 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800C4BA8 000C1B08 7C 7F 1B 78 */ mr r31, r3
/* 800C4BAC 000C1B0C 80 C5 00 00 */ lwz r6, 0(r5)
/* 800C4BB0 000C1B10 80 05 00 00 */ lwz r0, 0(r5)
/* 800C4BB4 000C1B14 38 A1 00 10 */ addi r5, r1, 0x10
/* 800C4BB8 000C1B18 38 E6 00 0C */ addi r7, r6, 0xc
/* 800C4BBC 000C1B1C 38 C1 00 0C */ addi r6, r1, 0xc
/* 800C4BC0 000C1B20 90 E1 00 08 */ stw r7, 8(r1)
/* 800C4BC4 000C1B24 90 E1 00 0C */ stw r7, 0xc(r1)
/* 800C4BC8 000C1B28 90 01 00 10 */ stw r0, 0x10(r1)
/* 800C4BCC 000C1B2C 48 00 00 19 */ bl sub_800c4be4
/* 800C4BD0 000C1B30 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800C4BD4 000C1B34 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800C4BD8 000C1B38 7C 08 03 A6 */ mtlr r0
/* 800C4BDC 000C1B3C 38 21 00 20 */ addi r1, r1, 0x20
/* 800C4BE0 000C1B40 4E 80 00 20 */ blr
.global sub_800c4be4
sub_800c4be4:
/* 800C4BE4 000C1B44 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C4BE8 000C1B48 80 E5 00 00 */ lwz r7, 0(r5)
/* 800C4BEC 000C1B4C 80 06 00 00 */ lwz r0, 0(r6)
/* 800C4BF0 000C1B50 90 E1 00 0C */ stw r7, 0xc(r1)
/* 800C4BF4 000C1B54 90 01 00 08 */ stw r0, 8(r1)
/* 800C4BF8 000C1B58 48 00 00 08 */ b lbl_800C4C00
lbl_800C4BFC:
/* 800C4BFC 000C1B5C 38 E7 00 0C */ addi r7, r7, 0xc
lbl_800C4C00:
/* 800C4C00 000C1B60 7C 07 00 40 */ cmplw r7, r0
/* 800C4C04 000C1B64 40 82 FF F8 */ bne lbl_800C4BFC
/* 800C4C08 000C1B68 81 24 00 0C */ lwz r9, 0xc(r4)
/* 800C4C0C 000C1B6C 3C E0 2A AB */ lis r7, 0x2AAAAAAB@ha
/* 800C4C10 000C1B70 80 05 00 00 */ lwz r0, 0(r5)
/* 800C4C14 000C1B74 38 E7 AA AB */ addi r7, r7, 0x2AAAAAAB@l
/* 800C4C18 000C1B78 81 06 00 00 */ lwz r8, 0(r6)
/* 800C4C1C 000C1B7C 7C 09 00 50 */ subf r0, r9, r0
/* 800C4C20 000C1B80 7C 07 00 96 */ mulhw r0, r7, r0
/* 800C4C24 000C1B84 7C 00 0E 70 */ srawi r0, r0, 1
/* 800C4C28 000C1B88 54 06 0F FE */ srwi r6, r0, 0x1f
/* 800C4C2C 000C1B8C 7C C0 32 14 */ add r6, r0, r6
/* 800C4C30 000C1B90 1C 06 00 0C */ mulli r0, r6, 0xc
/* 800C4C34 000C1B94 7C CA 33 78 */ mr r10, r6
/* 800C4C38 000C1B98 7C E9 02 14 */ add r7, r9, r0
/* 800C4C3C 000C1B9C 48 00 00 30 */ b lbl_800C4C6C
lbl_800C4C40:
/* 800C4C40 000C1BA0 28 07 00 00 */ cmplwi r7, 0
/* 800C4C44 000C1BA4 41 82 00 1C */ beq lbl_800C4C60
/* 800C4C48 000C1BA8 80 08 00 00 */ lwz r0, 0(r8)
/* 800C4C4C 000C1BAC 90 07 00 00 */ stw r0, 0(r7)
/* 800C4C50 000C1BB0 80 08 00 04 */ lwz r0, 4(r8)
/* 800C4C54 000C1BB4 90 07 00 04 */ stw r0, 4(r7)
/* 800C4C58 000C1BB8 80 08 00 08 */ lwz r0, 8(r8)
/* 800C4C5C 000C1BBC 90 07 00 08 */ stw r0, 8(r7)
lbl_800C4C60:
/* 800C4C60 000C1BC0 38 E7 00 0C */ addi r7, r7, 0xc
/* 800C4C64 000C1BC4 39 4A 00 01 */ addi r10, r10, 1
/* 800C4C68 000C1BC8 39 08 00 0C */ addi r8, r8, 0xc
lbl_800C4C6C:
/* 800C4C6C 000C1BCC 80 04 00 04 */ lwz r0, 4(r4)
/* 800C4C70 000C1BD0 80 C4 00 0C */ lwz r6, 0xc(r4)
/* 800C4C74 000C1BD4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 800C4C78 000C1BD8 7C 06 02 14 */ add r0, r6, r0
/* 800C4C7C 000C1BDC 7C 08 00 40 */ cmplw r8, r0
/* 800C4C80 000C1BE0 40 82 FF C0 */ bne lbl_800C4C40
/* 800C4C84 000C1BE4 91 44 00 04 */ stw r10, 4(r4)
/* 800C4C88 000C1BE8 80 05 00 00 */ lwz r0, 0(r5)
/* 800C4C8C 000C1BEC 90 03 00 00 */ stw r0, 0(r3)
/* 800C4C90 000C1BF0 38 21 00 10 */ addi r1, r1, 0x10
/* 800C4C94 000C1BF4 4E 80 00 20 */ blr
.global RemoveHelper__17CScriptCameraHintF9TUniqueId
RemoveHelper__17CScriptCameraHintF9TUniqueId:
/* 800C4C98 000C1BF8 80 03 01 50 */ lwz r0, 0x150(r3)
/* 800C4C9C 000C1BFC 2C 00 00 00 */ cmpwi r0, 0
/* 800C4CA0 000C1C00 4D 82 00 20 */ beqlr
/* 800C4CA4 000C1C04 38 E3 01 54 */ addi r7, r3, 0x154
/* 800C4CA8 000C1C08 54 00 08 3C */ slwi r0, r0, 1
/* 800C4CAC 000C1C0C 7C E6 3B 78 */ mr r6, r7
/* 800C4CB0 000C1C10 7D 07 02 14 */ add r8, r7, r0
/* 800C4CB4 000C1C14 48 00 00 08 */ b lbl_800C4CBC
lbl_800C4CB8:
/* 800C4CB8 000C1C18 38 C6 00 02 */ addi r6, r6, 2
lbl_800C4CBC:
/* 800C4CBC 000C1C1C 7C 06 40 40 */ cmplw r6, r8
/* 800C4CC0 000C1C20 41 82 00 14 */ beq lbl_800C4CD4
/* 800C4CC4 000C1C24 A0 A6 00 00 */ lhz r5, 0(r6)
/* 800C4CC8 000C1C28 A0 04 00 00 */ lhz r0, 0(r4)
/* 800C4CCC 000C1C2C 7C 05 00 40 */ cmplw r5, r0
/* 800C4CD0 000C1C30 40 82 FF E8 */ bne lbl_800C4CB8
lbl_800C4CD4:
/* 800C4CD4 000C1C34 7C 06 40 40 */ cmplw r6, r8
/* 800C4CD8 000C1C38 40 82 00 4C */ bne lbl_800C4D24
/* 800C4CDC 000C1C3C 7C 07 38 40 */ cmplw r7, r7
/* 800C4CE0 000C1C40 4D 80 00 20 */ bltlr
/* 800C4CE4 000C1C44 7C 07 40 40 */ cmplw r7, r8
/* 800C4CE8 000C1C48 4C 80 00 20 */ bgelr
/* 800C4CEC 000C1C4C 7C E6 3B 78 */ mr r6, r7
/* 800C4CF0 000C1C50 48 00 00 10 */ b lbl_800C4D00
lbl_800C4CF4:
/* 800C4CF4 000C1C54 A0 06 00 02 */ lhz r0, 2(r6)
/* 800C4CF8 000C1C58 B0 06 00 00 */ sth r0, 0(r6)
/* 800C4CFC 000C1C5C 38 C6 00 02 */ addi r6, r6, 2
lbl_800C4D00:
/* 800C4D00 000C1C60 80 A3 01 50 */ lwz r5, 0x150(r3)
/* 800C4D04 000C1C64 54 A4 08 3C */ slwi r4, r5, 1
/* 800C4D08 000C1C68 38 04 FF FE */ addi r0, r4, -2
/* 800C4D0C 000C1C6C 7C 07 02 14 */ add r0, r7, r0
/* 800C4D10 000C1C70 7C 06 00 40 */ cmplw r6, r0
/* 800C4D14 000C1C74 41 80 FF E0 */ blt lbl_800C4CF4
/* 800C4D18 000C1C78 38 05 FF FF */ addi r0, r5, -1
/* 800C4D1C 000C1C7C 90 03 01 50 */ stw r0, 0x150(r3)
/* 800C4D20 000C1C80 4E 80 00 20 */ blr
lbl_800C4D24:
/* 800C4D24 000C1C84 7C 06 38 40 */ cmplw r6, r7
/* 800C4D28 000C1C88 4D 80 00 20 */ bltlr
/* 800C4D2C 000C1C8C 7C 06 40 40 */ cmplw r6, r8
/* 800C4D30 000C1C90 4C 80 00 20 */ bgelr
/* 800C4D34 000C1C94 48 00 00 10 */ b lbl_800C4D44
lbl_800C4D38:
/* 800C4D38 000C1C98 A0 06 00 02 */ lhz r0, 2(r6)
/* 800C4D3C 000C1C9C B0 06 00 00 */ sth r0, 0(r6)
/* 800C4D40 000C1CA0 38 C6 00 02 */ addi r6, r6, 2
lbl_800C4D44:
/* 800C4D44 000C1CA4 80 A3 01 50 */ lwz r5, 0x150(r3)
/* 800C4D48 000C1CA8 54 A4 08 3C */ slwi r4, r5, 1
/* 800C4D4C 000C1CAC 38 04 FF FE */ addi r0, r4, -2
/* 800C4D50 000C1CB0 7C 07 02 14 */ add r0, r7, r0
/* 800C4D54 000C1CB4 7C 06 00 40 */ cmplw r6, r0
/* 800C4D58 000C1CB8 41 80 FF E0 */ blt lbl_800C4D38
/* 800C4D5C 000C1CBC 38 05 FF FF */ addi r0, r5, -1
/* 800C4D60 000C1CC0 90 03 01 50 */ stw r0, 0x150(r3)
/* 800C4D64 000C1CC4 4E 80 00 20 */ blr
.global AddHelper__17CScriptCameraHintF9TUniqueId
AddHelper__17CScriptCameraHintF9TUniqueId:
/* 800C4D68 000C1CC8 80 03 01 50 */ lwz r0, 0x150(r3)
/* 800C4D6C 000C1CCC 38 C3 01 54 */ addi r6, r3, 0x154
/* 800C4D70 000C1CD0 54 00 08 3C */ slwi r0, r0, 1
/* 800C4D74 000C1CD4 7C E6 02 14 */ add r7, r6, r0
/* 800C4D78 000C1CD8 48 00 00 08 */ b lbl_800C4D80
lbl_800C4D7C:
/* 800C4D7C 000C1CDC 38 C6 00 02 */ addi r6, r6, 2
lbl_800C4D80:
/* 800C4D80 000C1CE0 7C 06 38 40 */ cmplw r6, r7
/* 800C4D84 000C1CE4 41 82 00 14 */ beq lbl_800C4D98
/* 800C4D88 000C1CE8 A0 A6 00 00 */ lhz r5, 0(r6)
/* 800C4D8C 000C1CEC A0 04 00 00 */ lhz r0, 0(r4)
/* 800C4D90 000C1CF0 7C 05 00 40 */ cmplw r5, r0
/* 800C4D94 000C1CF4 40 82 FF E8 */ bne lbl_800C4D7C
lbl_800C4D98:
/* 800C4D98 000C1CF8 7C 06 38 40 */ cmplw r6, r7
/* 800C4D9C 000C1CFC 4C 82 00 20 */ bnelr
/* 800C4DA0 000C1D00 28 07 00 00 */ cmplwi r7, 0
/* 800C4DA4 000C1D04 41 82 00 0C */ beq lbl_800C4DB0
/* 800C4DA8 000C1D08 A0 04 00 00 */ lhz r0, 0(r4)
/* 800C4DAC 000C1D0C B0 07 00 00 */ sth r0, 0(r7)
lbl_800C4DB0:
/* 800C4DB0 000C1D10 80 83 01 50 */ lwz r4, 0x150(r3)
/* 800C4DB4 000C1D14 38 04 00 01 */ addi r0, r4, 1
/* 800C4DB8 000C1D18 90 03 01 50 */ stw r0, 0x150(r3)
/* 800C4DBC 000C1D1C 4E 80 00 20 */ blr
.global ClearIdList__17CScriptCameraHintFv
ClearIdList__17CScriptCameraHintFv:
/* 800C4DC0 000C1D20 80 C3 01 50 */ lwz r6, 0x150(r3)
/* 800C4DC4 000C1D24 38 80 00 00 */ li r4, 0
/* 800C4DC8 000C1D28 2C 06 00 00 */ cmpwi r6, 0
/* 800C4DCC 000C1D2C 40 81 00 40 */ ble lbl_800C4E0C
/* 800C4DD0 000C1D30 2C 06 00 08 */ cmpwi r6, 8
/* 800C4DD4 000C1D34 38 A6 FF F8 */ addi r5, r6, -8
/* 800C4DD8 000C1D38 40 81 00 20 */ ble lbl_800C4DF8
/* 800C4DDC 000C1D3C 38 05 00 07 */ addi r0, r5, 7
/* 800C4DE0 000C1D40 54 00 E8 FE */ srwi r0, r0, 3
/* 800C4DE4 000C1D44 7C 09 03 A6 */ mtctr r0
/* 800C4DE8 000C1D48 2C 05 00 00 */ cmpwi r5, 0
/* 800C4DEC 000C1D4C 40 81 00 0C */ ble lbl_800C4DF8
lbl_800C4DF0:
/* 800C4DF0 000C1D50 38 84 00 08 */ addi r4, r4, 8
/* 800C4DF4 000C1D54 42 00 FF FC */ bdnz lbl_800C4DF0
lbl_800C4DF8:
/* 800C4DF8 000C1D58 7C 04 30 50 */ subf r0, r4, r6
/* 800C4DFC 000C1D5C 7C 09 03 A6 */ mtctr r0
/* 800C4E00 000C1D60 7C 04 30 00 */ cmpw r4, r6
/* 800C4E04 000C1D64 40 80 00 08 */ bge lbl_800C4E0C
lbl_800C4E08:
/* 800C4E08 000C1D68 42 00 00 00 */ bdnz lbl_800C4E08
lbl_800C4E0C:
/* 800C4E0C 000C1D6C 38 00 00 00 */ li r0, 0
/* 800C4E10 000C1D70 90 03 01 50 */ stw r0, 0x150(r3)
/* 800C4E14 000C1D74 4E 80 00 20 */ blr
.global GetFirstHelper__17CScriptCameraHintCFv
GetFirstHelper__17CScriptCameraHintCFv:
/* 800C4E18 000C1D78 80 04 01 50 */ lwz r0, 0x150(r4)
/* 800C4E1C 000C1D7C 2C 00 00 00 */ cmpwi r0, 0
/* 800C4E20 000C1D80 40 81 00 10 */ ble lbl_800C4E30
/* 800C4E24 000C1D84 A0 04 01 54 */ lhz r0, 0x154(r4)
/* 800C4E28 000C1D88 B0 03 00 00 */ sth r0, 0(r3)
/* 800C4E2C 000C1D8C 4E 80 00 20 */ blr
lbl_800C4E30:
/* 800C4E30 000C1D90 A0 0D A3 8C */ lhz r0, lbl_805A8F4C@sda21(r13)
/* 800C4E34 000C1D94 B0 03 00 00 */ sth r0, 0(r3)
/* 800C4E38 000C1D98 4E 80 00 20 */ blr
.global __dt__17CScriptCameraHintFv
__dt__17CScriptCameraHintFv:
/* 800C4E3C 000C1D9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C4E40 000C1DA0 7C 08 02 A6 */ mflr r0
/* 800C4E44 000C1DA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C4E48 000C1DA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800C4E4C 000C1DAC 7C 9F 23 78 */ mr r31, r4
/* 800C4E50 000C1DB0 93 C1 00 08 */ stw r30, 8(r1)
/* 800C4E54 000C1DB4 7C 7E 1B 79 */ or. r30, r3, r3
/* 800C4E58 000C1DB8 41 82 00 9C */ beq lbl_800C4EF4
/* 800C4E5C 000C1DBC 3C 60 80 3E */ lis r3, lbl_803DF688@ha
/* 800C4E60 000C1DC0 34 1E 01 50 */ addic. r0, r30, 0x150
/* 800C4E64 000C1DC4 38 03 F6 88 */ addi r0, r3, lbl_803DF688@l
/* 800C4E68 000C1DC8 90 1E 00 00 */ stw r0, 0(r30)
/* 800C4E6C 000C1DCC 41 82 00 58 */ beq lbl_800C4EC4
/* 800C4E70 000C1DD0 80 BE 01 50 */ lwz r5, 0x150(r30)
/* 800C4E74 000C1DD4 38 60 00 00 */ li r3, 0
/* 800C4E78 000C1DD8 2C 05 00 00 */ cmpwi r5, 0
/* 800C4E7C 000C1DDC 40 81 00 40 */ ble lbl_800C4EBC
/* 800C4E80 000C1DE0 2C 05 00 08 */ cmpwi r5, 8
/* 800C4E84 000C1DE4 38 85 FF F8 */ addi r4, r5, -8
/* 800C4E88 000C1DE8 40 81 00 20 */ ble lbl_800C4EA8
/* 800C4E8C 000C1DEC 38 04 00 07 */ addi r0, r4, 7
/* 800C4E90 000C1DF0 54 00 E8 FE */ srwi r0, r0, 3
/* 800C4E94 000C1DF4 7C 09 03 A6 */ mtctr r0
/* 800C4E98 000C1DF8 2C 04 00 00 */ cmpwi r4, 0
/* 800C4E9C 000C1DFC 40 81 00 0C */ ble lbl_800C4EA8
lbl_800C4EA0:
/* 800C4EA0 000C1E00 38 63 00 08 */ addi r3, r3, 8
/* 800C4EA4 000C1E04 42 00 FF FC */ bdnz lbl_800C4EA0
lbl_800C4EA8:
/* 800C4EA8 000C1E08 7C 03 28 50 */ subf r0, r3, r5
/* 800C4EAC 000C1E0C 7C 09 03 A6 */ mtctr r0
/* 800C4EB0 000C1E10 7C 03 28 00 */ cmpw r3, r5
/* 800C4EB4 000C1E14 40 80 00 08 */ bge lbl_800C4EBC
lbl_800C4EB8:
/* 800C4EB8 000C1E18 42 00 00 00 */ bdnz lbl_800C4EB8
lbl_800C4EBC:
/* 800C4EBC 000C1E1C 38 00 00 00 */ li r0, 0
/* 800C4EC0 000C1E20 90 1E 01 50 */ stw r0, 0x150(r30)
lbl_800C4EC4:
/* 800C4EC4 000C1E24 34 1E 00 EC */ addic. r0, r30, 0xec
/* 800C4EC8 000C1E28 41 82 00 10 */ beq lbl_800C4ED8
/* 800C4ECC 000C1E2C 3C 60 80 3E */ lis r3, lbl_803DF6F4@ha
/* 800C4ED0 000C1E30 38 03 F6 F4 */ addi r0, r3, lbl_803DF6F4@l
/* 800C4ED4 000C1E34 90 1E 00 EC */ stw r0, 0xec(r30)
lbl_800C4ED8:
/* 800C4ED8 000C1E38 7F C3 F3 78 */ mr r3, r30
/* 800C4EDC 000C1E3C 38 80 00 00 */ li r4, 0
/* 800C4EE0 000C1E40 4B F9 08 11 */ bl __dt__6CActorFv
/* 800C4EE4 000C1E44 7F E0 07 35 */ extsh. r0, r31
/* 800C4EE8 000C1E48 40 81 00 0C */ ble lbl_800C4EF4
/* 800C4EEC 000C1E4C 7F C3 F3 78 */ mr r3, r30
/* 800C4EF0 000C1E50 48 25 0A 41 */ bl Free__7CMemoryFPCv
lbl_800C4EF4:
/* 800C4EF4 000C1E54 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C4EF8 000C1E58 7F C3 F3 78 */ mr r3, r30
/* 800C4EFC 000C1E5C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800C4F00 000C1E60 83 C1 00 08 */ lwz r30, 8(r1)
/* 800C4F04 000C1E64 7C 08 03 A6 */ mtlr r0
/* 800C4F08 000C1E68 38 21 00 10 */ addi r1, r1, 0x10
/* 800C4F0C 000C1E6C 4E 80 00 20 */ blr
.global "__ct__17CScriptCameraHintF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbiQ211CBallCamera20EBallCameraBehaviourifffRC13CCameraSpringRC13CCameraSpringfRC9CVector3fRC9CVector3ff"
"__ct__17CScriptCameraHintF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbiQ211CBallCamera20EBallCameraBehaviourifffRC13CCameraSpringRC13CCameraSpringfRC9CVector3fRC9CVector3ff":
/* 800C4F10 000C1E70 94 21 FE 10 */ stwu r1, -0x1f0(r1)
/* 800C4F14 000C1E74 7C 08 02 A6 */ mflr r0
/* 800C4F18 000C1E78 90 01 01 F4 */ stw r0, 0x1f4(r1)
/* 800C4F1C 000C1E7C DB E1 01 E0 */ stfd f31, 0x1e0(r1)
/* 800C4F20 000C1E80 F3 E1 01 E8 */ psq_st f31, 488(r1), 0, qr0
/* 800C4F24 000C1E84 DB C1 01 D0 */ stfd f30, 0x1d0(r1)
/* 800C4F28 000C1E88 F3 C1 01 D8 */ psq_st f30, 472(r1), 0, qr0
/* 800C4F2C 000C1E8C DB A1 01 C0 */ stfd f29, 0x1c0(r1)
/* 800C4F30 000C1E90 F3 A1 01 C8 */ psq_st f29, 456(r1), 0, qr0
/* 800C4F34 000C1E94 DB 81 01 B0 */ stfd f28, 0x1b0(r1)
/* 800C4F38 000C1E98 F3 81 01 B8 */ psq_st f28, 440(r1), 0, qr0
/* 800C4F3C 000C1E9C DB 61 01 A0 */ stfd f27, 0x1a0(r1)
/* 800C4F40 000C1EA0 F3 61 01 A8 */ psq_st f27, 424(r1), 0, qr0
/* 800C4F44 000C1EA4 DB 41 01 90 */ stfd f26, 0x190(r1)
/* 800C4F48 000C1EA8 F3 41 01 98 */ psq_st f26, 408(r1), 0, qr0
/* 800C4F4C 000C1EAC DB 21 01 80 */ stfd f25, 0x180(r1)
/* 800C4F50 000C1EB0 F3 21 01 88 */ psq_st f25, 392(r1), 0, qr0
/* 800C4F54 000C1EB4 DB 01 01 70 */ stfd f24, 0x170(r1)
/* 800C4F58 000C1EB8 F3 01 01 78 */ psq_st f24, 376(r1), 0, qr0
/* 800C4F5C 000C1EBC DA E1 01 60 */ stfd f23, 0x160(r1)
/* 800C4F60 000C1EC0 F2 E1 01 68 */ psq_st f23, 360(r1), 0, qr0
/* 800C4F64 000C1EC4 DA C1 01 50 */ stfd f22, 0x150(r1)
/* 800C4F68 000C1EC8 F2 C1 01 58 */ psq_st f22, 344(r1), 0, qr0
/* 800C4F6C 000C1ECC DA A1 01 40 */ stfd f21, 0x140(r1)
/* 800C4F70 000C1ED0 F2 A1 01 48 */ psq_st f21, 328(r1), 0, qr0
/* 800C4F74 000C1ED4 DA 81 01 30 */ stfd f20, 0x130(r1)
/* 800C4F78 000C1ED8 F2 81 01 38 */ psq_st f20, 312(r1), 0, qr0
/* 800C4F7C 000C1EDC DA 61 01 20 */ stfd f19, 0x120(r1)
/* 800C4F80 000C1EE0 F2 61 01 28 */ psq_st f19, 296(r1), 0, qr0
/* 800C4F84 000C1EE4 BE 81 00 F0 */ stmw r20, 0xf0(r1)
/* 800C4F88 000C1EE8 FE 60 08 90 */ fmr f19, f1
/* 800C4F8C 000C1EEC 7C 74 1B 78 */ mr r20, r3
/* 800C4F90 000C1EF0 FE 80 10 90 */ fmr f20, f2
/* 800C4F94 000C1EF4 83 81 01 F8 */ lwz r28, 0x1f8(r1)
/* 800C4F98 000C1EF8 FE A0 18 90 */ fmr f21, f3
/* 800C4F9C 000C1EFC 83 A1 01 FC */ lwz r29, 0x1fc(r1)
/* 800C4FA0 000C1F00 FE C0 20 90 */ fmr f22, f4
/* 800C4FA4 000C1F04 83 C1 02 00 */ lwz r30, 0x200(r1)
/* 800C4FA8 000C1F08 FE E0 28 90 */ fmr f23, f5
/* 800C4FAC 000C1F0C 83 E1 02 04 */ lwz r31, 0x204(r1)
/* 800C4FB0 000C1F10 FF 00 30 90 */ fmr f24, f6
/* 800C4FB4 000C1F14 C3 61 02 08 */ lfs f27, 0x208(r1)
/* 800C4FB8 000C1F18 FF 20 38 90 */ fmr f25, f7
/* 800C4FBC 000C1F1C C3 81 02 0C */ lfs f28, 0x20c(r1)
/* 800C4FC0 000C1F20 FF 40 40 90 */ fmr f26, f8
/* 800C4FC4 000C1F24 C3 A1 02 10 */ lfs f29, 0x210(r1)
/* 800C4FC8 000C1F28 C3 C1 02 14 */ lfs f30, 0x214(r1)
/* 800C4FCC 000C1F2C 7C 95 23 78 */ mr r21, r4
/* 800C4FD0 000C1F30 C3 E1 02 18 */ lfs f31, 0x218(r1)
/* 800C4FD4 000C1F34 7C B6 2B 78 */ mr r22, r5
/* 800C4FD8 000C1F38 7C D7 33 78 */ mr r23, r6
/* 800C4FDC 000C1F3C 7C F8 3B 78 */ mr r24, r7
/* 800C4FE0 000C1F40 7D 19 43 78 */ mr r25, r8
/* 800C4FE4 000C1F44 7D 3A 4B 78 */ mr r26, r9
/* 800C4FE8 000C1F48 7D 5B 53 78 */ mr r27, r10
/* 800C4FEC 000C1F4C 38 61 00 98 */ addi r3, r1, 0x98
/* 800C4FF0 000C1F50 4B F7 57 B5 */ bl CModelDataNull__10CModelDataFv
/* 800C4FF4 000C1F54 38 61 00 30 */ addi r3, r1, 0x30
/* 800C4FF8 000C1F58 4B F5 5E 41 */ bl None__16CActorParametersFv
/* 800C4FFC 000C1F5C A0 8D A3 8C */ lhz r4, lbl_805A8F4C@sda21(r13)
/* 800C5000 000C1F60 38 00 00 00 */ li r0, 0
/* 800C5004 000C1F64 80 AD 86 D8 */ lwz r5, lbl_805A7298@sda21(r13)
/* 800C5008 000C1F68 38 60 00 00 */ li r3, 0
/* 800C500C 000C1F6C B0 81 00 20 */ sth r4, 0x20(r1)
/* 800C5010 000C1F70 38 80 00 01 */ li r4, 1
/* 800C5014 000C1F74 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800C5018 000C1F78 90 01 00 28 */ stw r0, 0x28(r1)
/* 800C501C 000C1F7C 48 2C 4E D9 */ bl __shl2i
/* 800C5020 000C1F80 80 A1 00 28 */ lwz r5, 0x28(r1)
/* 800C5024 000C1F84 39 61 00 30 */ addi r11, r1, 0x30
/* 800C5028 000C1F88 80 C1 00 2C */ lwz r6, 0x2c(r1)
/* 800C502C 000C1F8C 38 01 00 20 */ addi r0, r1, 0x20
/* 800C5030 000C1F90 7C A3 1B 78 */ or r3, r5, r3
/* 800C5034 000C1F94 A1 35 00 00 */ lhz r9, 0(r21)
/* 800C5038 000C1F98 7C C4 23 78 */ or r4, r6, r4
/* 800C503C 000C1F9C 90 61 00 28 */ stw r3, 0x28(r1)
/* 800C5040 000C1FA0 7E 83 A3 78 */ mr r3, r20
/* 800C5044 000C1FA4 7F 25 CB 78 */ mr r5, r25
/* 800C5048 000C1FA8 90 81 00 2C */ stw r4, 0x2c(r1)
/* 800C504C 000C1FAC 7E C6 B3 78 */ mr r6, r22
/* 800C5050 000C1FB0 7E E7 BB 78 */ mr r7, r23
/* 800C5054 000C1FB4 7F 08 C3 78 */ mr r8, r24
/* 800C5058 000C1FB8 B1 21 00 24 */ sth r9, 0x24(r1)
/* 800C505C 000C1FBC 38 81 00 24 */ addi r4, r1, 0x24
/* 800C5060 000C1FC0 39 21 00 98 */ addi r9, r1, 0x98
/* 800C5064 000C1FC4 39 41 00 28 */ addi r10, r1, 0x28
/* 800C5068 000C1FC8 91 61 00 08 */ stw r11, 8(r1)
/* 800C506C 000C1FCC 90 01 00 0C */ stw r0, 0xc(r1)
/* 800C5070 000C1FD0 4B F9 07 B1 */ bl "__ct__6CActorF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC13CMaterialListRC16CActorParameters9TUniqueId"
/* 800C5074 000C1FD4 38 61 00 30 */ addi r3, r1, 0x30
/* 800C5078 000C1FD8 38 80 FF FF */ li r4, -1
/* 800C507C 000C1FDC 48 04 15 8D */ bl __dt__16CActorParametersFv
/* 800C5080 000C1FE0 38 61 00 98 */ addi r3, r1, 0x98
/* 800C5084 000C1FE4 38 80 FF FF */ li r4, -1
/* 800C5088 000C1FE8 48 05 19 C5 */ bl __dt__10CModelDataFv
/* 800C508C 000C1FEC 3C 60 80 3E */ lis r3, lbl_803DF688@ha
/* 800C5090 000C1FF0 FC 20 98 90 */ fmr f1, f19
/* 800C5094 000C1FF4 38 03 F6 88 */ addi r0, r3, lbl_803DF688@l
/* 800C5098 000C1FF8 FC 40 A0 90 */ fmr f2, f20
/* 800C509C 000C1FFC 90 14 00 00 */ stw r0, 0(r20)
/* 800C50A0 000C2000 FC 60 A8 90 */ fmr f3, f21
/* 800C50A4 000C2004 FC 80 B0 90 */ fmr f4, f22
/* 800C50A8 000C2008 93 54 00 E8 */ stw r26, 0xe8(r20)
/* 800C50AC 000C200C FC A0 B8 90 */ fmr f5, f23
/* 800C50B0 000C2010 FC C0 C0 90 */ fmr f6, f24
/* 800C50B4 000C2014 7F 84 E3 78 */ mr r4, r28
/* 800C50B8 000C2018 D3 61 00 08 */ stfs f27, 8(r1)
/* 800C50BC 000C201C FC E0 C8 90 */ fmr f7, f25
/* 800C50C0 000C2020 7F 65 DB 78 */ mr r5, r27
/* 800C50C4 000C2024 D3 81 00 0C */ stfs f28, 0xc(r1)
/* 800C50C8 000C2028 FD 00 D0 90 */ fmr f8, f26
/* 800C50CC 000C202C 7F A6 EB 78 */ mr r6, r29
/* 800C50D0 000C2030 D3 A1 00 10 */ stfs f29, 0x10(r1)
/* 800C50D4 000C2034 7F C7 F3 78 */ mr r7, r30
/* 800C50D8 000C2038 7F E8 FB 78 */ mr r8, r31
/* 800C50DC 000C203C D3 C1 00 14 */ stfs f30, 0x14(r1)
/* 800C50E0 000C2040 38 74 00 EC */ addi r3, r20, 0xec
/* 800C50E4 000C2044 D3 E1 00 18 */ stfs f31, 0x18(r1)
/* 800C50E8 000C2048 48 00 00 ED */ bl __ct__11CCameraHintFiQ211CBallCamera20EBallCameraBehaviourfffRC9CVector3fRC9CVector3fRC9CVector3fffffffffff
/* 800C50EC 000C204C 38 A0 00 00 */ li r5, 0
/* 800C50F0 000C2050 7F 04 C3 78 */ mr r4, r24
/* 800C50F4 000C2054 90 B4 01 50 */ stw r5, 0x150(r20)
/* 800C50F8 000C2058 38 74 01 68 */ addi r3, r20, 0x168
/* 800C50FC 000C205C A0 0D A3 8C */ lhz r0, lbl_805A8F4C@sda21(r13)
/* 800C5100 000C2060 B0 14 01 64 */ sth r0, 0x164(r20)
/* 800C5104 000C2064 98 B4 01 66 */ stb r5, 0x166(r20)
/* 800C5108 000C2068 48 24 DA 6D */ bl __ct__12CTransform4fFRC12CTransform4f
/* 800C510C 000C206C 7E 83 A3 78 */ mr r3, r20
/* 800C5110 000C2070 E3 E1 01 E8 */ psq_l f31, 488(r1), 0, qr0
/* 800C5114 000C2074 CB E1 01 E0 */ lfd f31, 0x1e0(r1)
/* 800C5118 000C2078 E3 C1 01 D8 */ psq_l f30, 472(r1), 0, qr0
/* 800C511C 000C207C CB C1 01 D0 */ lfd f30, 0x1d0(r1)
/* 800C5120 000C2080 E3 A1 01 C8 */ psq_l f29, 456(r1), 0, qr0
/* 800C5124 000C2084 CB A1 01 C0 */ lfd f29, 0x1c0(r1)
/* 800C5128 000C2088 E3 81 01 B8 */ psq_l f28, 440(r1), 0, qr0
/* 800C512C 000C208C CB 81 01 B0 */ lfd f28, 0x1b0(r1)
/* 800C5130 000C2090 E3 61 01 A8 */ psq_l f27, 424(r1), 0, qr0
/* 800C5134 000C2094 CB 61 01 A0 */ lfd f27, 0x1a0(r1)
/* 800C5138 000C2098 E3 41 01 98 */ psq_l f26, 408(r1), 0, qr0
/* 800C513C 000C209C CB 41 01 90 */ lfd f26, 0x190(r1)
/* 800C5140 000C20A0 E3 21 01 88 */ psq_l f25, 392(r1), 0, qr0
/* 800C5144 000C20A4 CB 21 01 80 */ lfd f25, 0x180(r1)
/* 800C5148 000C20A8 E3 01 01 78 */ psq_l f24, 376(r1), 0, qr0
/* 800C514C 000C20AC CB 01 01 70 */ lfd f24, 0x170(r1)
/* 800C5150 000C20B0 E2 E1 01 68 */ psq_l f23, 360(r1), 0, qr0
/* 800C5154 000C20B4 CA E1 01 60 */ lfd f23, 0x160(r1)
/* 800C5158 000C20B8 E2 C1 01 58 */ psq_l f22, 344(r1), 0, qr0
/* 800C515C 000C20BC CA C1 01 50 */ lfd f22, 0x150(r1)
/* 800C5160 000C20C0 E2 A1 01 48 */ psq_l f21, 328(r1), 0, qr0
/* 800C5164 000C20C4 CA A1 01 40 */ lfd f21, 0x140(r1)
/* 800C5168 000C20C8 E2 81 01 38 */ psq_l f20, 312(r1), 0, qr0
/* 800C516C 000C20CC CA 81 01 30 */ lfd f20, 0x130(r1)
/* 800C5170 000C20D0 E2 61 01 28 */ psq_l f19, 296(r1), 0, qr0
/* 800C5174 000C20D4 CA 61 01 20 */ lfd f19, 0x120(r1)
/* 800C5178 000C20D8 BA 81 00 F0 */ lmw r20, 0xf0(r1)
/* 800C517C 000C20DC 80 01 01 F4 */ lwz r0, 0x1f4(r1)
/* 800C5180 000C20E0 7C 08 03 A6 */ mtlr r0
/* 800C5184 000C20E4 38 21 01 F0 */ addi r1, r1, 0x1f0
/* 800C5188 000C20E8 4E 80 00 20 */ blr