prime/asm/MetroidPrime/Cameras/CBallCameraFailsafeState.s

1000 lines
49 KiB
ArmAsm

.include "macros.inc"
.section .sdata
.balign 8
.global lbl_805A8248
lbl_805A8248:
# ROM: 0x3F5BE8
.4byte 0
.global lbl_805A824C
lbl_805A824C:
# ROM: 0x3F5BEC
.float 1.0
.global lbl_805A8250
lbl_805A8250:
# ROM: 0x3F5BF0
.4byte 0x00000013
.global lbl_805A8254
lbl_805A8254:
# ROM: 0x3F5BF4
.4byte 0x00000013
.global lbl_805A8258
lbl_805A8258:
# ROM: 0x3F5BF8
.4byte 0x00000012
.global lbl_805A825C
lbl_805A825C:
# ROM: 0x3F5BFC
.4byte 0x00000020
.global lbl_805A8260
lbl_805A8260:
# ROM: 0x3F5C00
.4byte 0x00000021
.global lbl_805A8264
lbl_805A8264:
# ROM: 0x3F5C04
.4byte 0x00000015
.global lbl_805A8268
lbl_805A8268:
# ROM: 0x3F5C08
.4byte 0
.global lbl_805A826C
lbl_805A826C:
# ROM: 0x3F5C0C
.float 1.0
.section .text, "ax"
.global nullsub_19
nullsub_19:
/* 8023E604 0023B564 4E 80 00 20 */ blr
.global __ct__Q211CBallCamera14SFailsafeStateFv
__ct__Q211CBallCamera14SFailsafeStateFv:
/* 8023E608 0023B568 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023E60C 0023B56C 7C 08 02 A6 */ mflr r0
/* 8023E610 0023B570 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8023E614 0023B574 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023E618 0023B578 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 8023E61C 0023B57C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8023E620 0023B580 7C 7F 1B 78 */ mr r31, r3
/* 8023E624 0023B584 48 0D 45 51 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8023E628 0023B588 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha
/* 8023E62C 0023B58C 38 7F 00 30 */ addi r3, r31, 0x30
/* 8023E630 0023B590 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l
/* 8023E634 0023B594 48 0D 45 41 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8023E638 0023B598 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
/* 8023E63C 0023B59C 38 00 00 00 */ li r0, 0
/* 8023E640 0023B5A0 38 83 66 A0 */ addi r4, r3, sZeroVector__9CVector3f@l
/* 8023E644 0023B5A4 7F E3 FB 78 */ mr r3, r31
/* 8023E648 0023B5A8 C0 04 00 00 */ lfs f0, 0(r4)
/* 8023E64C 0023B5AC D0 1F 00 60 */ stfs f0, 0x60(r31)
/* 8023E650 0023B5B0 C0 04 00 04 */ lfs f0, 4(r4)
/* 8023E654 0023B5B4 D0 1F 00 64 */ stfs f0, 0x64(r31)
/* 8023E658 0023B5B8 C0 04 00 08 */ lfs f0, 8(r4)
/* 8023E65C 0023B5BC D0 1F 00 68 */ stfs f0, 0x68(r31)
/* 8023E660 0023B5C0 C0 04 00 00 */ lfs f0, 0(r4)
/* 8023E664 0023B5C4 D0 1F 00 6C */ stfs f0, 0x6c(r31)
/* 8023E668 0023B5C8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8023E66C 0023B5CC D0 1F 00 70 */ stfs f0, 0x70(r31)
/* 8023E670 0023B5D0 C0 04 00 08 */ lfs f0, 8(r4)
/* 8023E674 0023B5D4 D0 1F 00 74 */ stfs f0, 0x74(r31)
/* 8023E678 0023B5D8 C0 04 00 00 */ lfs f0, 0(r4)
/* 8023E67C 0023B5DC D0 1F 00 78 */ stfs f0, 0x78(r31)
/* 8023E680 0023B5E0 C0 04 00 04 */ lfs f0, 4(r4)
/* 8023E684 0023B5E4 D0 1F 00 7C */ stfs f0, 0x7c(r31)
/* 8023E688 0023B5E8 C0 04 00 08 */ lfs f0, 8(r4)
/* 8023E68C 0023B5EC D0 1F 00 80 */ stfs f0, 0x80(r31)
/* 8023E690 0023B5F0 C0 04 00 00 */ lfs f0, 0(r4)
/* 8023E694 0023B5F4 D0 1F 00 84 */ stfs f0, 0x84(r31)
/* 8023E698 0023B5F8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8023E69C 0023B5FC D0 1F 00 88 */ stfs f0, 0x88(r31)
/* 8023E6A0 0023B600 C0 04 00 08 */ lfs f0, 8(r4)
/* 8023E6A4 0023B604 D0 1F 00 8C */ stfs f0, 0x8c(r31)
/* 8023E6A8 0023B608 90 1F 00 94 */ stw r0, 0x94(r31)
/* 8023E6AC 0023B60C 90 1F 00 98 */ stw r0, 0x98(r31)
/* 8023E6B0 0023B610 90 1F 00 9C */ stw r0, 0x9c(r31)
/* 8023E6B4 0023B614 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8023E6B8 0023B618 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023E6BC 0023B61C 7C 08 03 A6 */ mtlr r0
/* 8023E6C0 0023B620 38 21 00 10 */ addi r1, r1, 0x10
/* 8023E6C4 0023B624 4E 80 00 20 */ blr
.global UpdateTransitionFromBallCamera__11CBallCameraFR13CStateManager
UpdateTransitionFromBallCamera__11CBallCameraFR13CStateManager:
/* 8023E6C8 0023B628 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8023E6CC 0023B62C 7C 08 02 A6 */ mflr r0
/* 8023E6D0 0023B630 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8023E6D4 0023B634 DB E1 00 C0 */ stfd f31, 0xc0(r1)
/* 8023E6D8 0023B638 F3 E1 00 C8 */ psq_st f31, 200(r1), 0, qr0
/* 8023E6DC 0023B63C DB C1 00 B0 */ stfd f30, 0xb0(r1)
/* 8023E6E0 0023B640 F3 C1 00 B8 */ psq_st f30, 184(r1), 0, qr0
/* 8023E6E4 0023B644 DB A1 00 A0 */ stfd f29, 0xa0(r1)
/* 8023E6E8 0023B648 F3 A1 00 A8 */ psq_st f29, 168(r1), 0, qr0
/* 8023E6EC 0023B64C DB 81 00 90 */ stfd f28, 0x90(r1)
/* 8023E6F0 0023B650 F3 81 00 98 */ psq_st f28, 152(r1), 0, qr0
/* 8023E6F4 0023B654 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 8023E6F8 0023B658 93 C1 00 88 */ stw r30, 0x88(r1)
/* 8023E6FC 0023B65C 93 A1 00 84 */ stw r29, 0x84(r1)
/* 8023E700 0023B660 7C 9F 23 78 */ mr r31, r4
/* 8023E704 0023B664 C3 82 B7 A0 */ lfs f28, lbl_805AD4C0@sda21(r2)
/* 8023E708 0023B668 83 A4 08 4C */ lwz r29, 0x84c(r4)
/* 8023E70C 0023B66C 7C 7E 1B 78 */ mr r30, r3
/* 8023E710 0023B670 C0 3D 05 78 */ lfs f1, 0x578(r29)
/* 8023E714 0023B674 FC 1C 08 00 */ fcmpu cr0, f28, f1
/* 8023E718 0023B678 40 82 00 08 */ bne lbl_8023E720
/* 8023E71C 0023B67C 48 00 00 24 */ b lbl_8023E740
lbl_8023E720:
/* 8023E720 0023B680 C0 1D 05 74 */ lfs f0, 0x574(r29)
/* 8023E724 0023B684 38 81 00 08 */ addi r4, r1, 8
/* 8023E728 0023B688 38 6D 96 88 */ addi r3, r13, lbl_805A8248@sda21
/* 8023E72C 0023B68C 38 AD 96 8C */ addi r5, r13, lbl_805A824C@sda21
/* 8023E730 0023B690 EC 00 08 24 */ fdivs f0, f0, f1
/* 8023E734 0023B694 D0 01 00 08 */ stfs f0, 8(r1)
/* 8023E738 0023B698 4B DC DB 7D */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8023E73C 0023B69C C3 83 00 00 */ lfs f28, 0(r3)
lbl_8023E740:
/* 8023E740 0023B6A0 7F A4 EB 78 */ mr r4, r29
/* 8023E744 0023B6A4 38 61 00 1C */ addi r3, r1, 0x1c
/* 8023E748 0023B6A8 48 04 66 35 */ bl GetEyePosition__7CPlayerCFv
/* 8023E74C 0023B6AC C0 61 00 1C */ lfs f3, 0x1c(r1)
/* 8023E750 0023B6B0 FC 20 E0 90 */ fmr f1, f28
/* 8023E754 0023B6B4 C0 41 00 20 */ lfs f2, 0x20(r1)
/* 8023E758 0023B6B8 38 61 00 10 */ addi r3, r1, 0x10
/* 8023E75C 0023B6BC C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8023E760 0023B6C0 D0 61 00 40 */ stfs f3, 0x40(r1)
/* 8023E764 0023B6C4 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 8023E768 0023B6C8 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8023E76C 0023B6CC 80 BE 04 7C */ lwz r5, 0x47c(r30)
/* 8023E770 0023B6D0 C3 FD 00 40 */ lfs f31, 0x40(r29)
/* 8023E774 0023B6D4 C0 05 00 84 */ lfs f0, 0x84(r5)
/* 8023E778 0023B6D8 80 85 00 9C */ lwz r4, 0x9c(r5)
/* 8023E77C 0023B6DC EC 9F 00 28 */ fsubs f4, f31, f0
/* 8023E780 0023B6E0 C3 BD 00 60 */ lfs f29, 0x60(r29)
/* 8023E784 0023B6E4 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8023E788 0023B6E8 C0 45 00 8C */ lfs f2, 0x8c(r5)
/* 8023E78C 0023B6EC EC 00 20 2A */ fadds f0, f0, f4
/* 8023E790 0023B6F0 C3 DD 00 50 */ lfs f30, 0x50(r29)
/* 8023E794 0023B6F4 C0 65 00 88 */ lfs f3, 0x88(r5)
/* 8023E798 0023B6F8 EC 5D 10 28 */ fsubs f2, f29, f2
/* 8023E79C 0023B6FC D0 04 00 0C */ stfs f0, 0xc(r4)
/* 8023E7A0 0023B700 EC 7E 18 28 */ fsubs f3, f30, f3
/* 8023E7A4 0023B704 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 8023E7A8 0023B708 EC 00 18 2A */ fadds f0, f0, f3
/* 8023E7AC 0023B70C D0 04 00 10 */ stfs f0, 0x10(r4)
/* 8023E7B0 0023B710 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 8023E7B4 0023B714 EC 00 10 2A */ fadds f0, f0, f2
/* 8023E7B8 0023B718 D0 04 00 14 */ stfs f0, 0x14(r4)
/* 8023E7BC 0023B71C 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023E7C0 0023B720 80 84 00 9C */ lwz r4, 0x9c(r4)
/* 8023E7C4 0023B724 C0 04 00 18 */ lfs f0, 0x18(r4)
/* 8023E7C8 0023B728 EC 00 20 2A */ fadds f0, f0, f4
/* 8023E7CC 0023B72C D0 04 00 18 */ stfs f0, 0x18(r4)
/* 8023E7D0 0023B730 C0 04 00 1C */ lfs f0, 0x1c(r4)
/* 8023E7D4 0023B734 EC 00 18 2A */ fadds f0, f0, f3
/* 8023E7D8 0023B738 D0 04 00 1C */ stfs f0, 0x1c(r4)
/* 8023E7DC 0023B73C C0 04 00 20 */ lfs f0, 0x20(r4)
/* 8023E7E0 0023B740 EC 00 10 2A */ fadds f0, f0, f2
/* 8023E7E4 0023B744 D0 04 00 20 */ stfs f0, 0x20(r4)
/* 8023E7E8 0023B748 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023E7EC 0023B74C 80 84 00 9C */ lwz r4, 0x9c(r4)
/* 8023E7F0 0023B750 C0 04 00 24 */ lfs f0, 0x24(r4)
/* 8023E7F4 0023B754 EC 00 20 2A */ fadds f0, f0, f4
/* 8023E7F8 0023B758 D0 04 00 24 */ stfs f0, 0x24(r4)
/* 8023E7FC 0023B75C C0 04 00 28 */ lfs f0, 0x28(r4)
/* 8023E800 0023B760 EC 00 18 2A */ fadds f0, f0, f3
/* 8023E804 0023B764 D0 04 00 28 */ stfs f0, 0x28(r4)
/* 8023E808 0023B768 C0 04 00 2C */ lfs f0, 0x2c(r4)
/* 8023E80C 0023B76C EC 00 10 2A */ fadds f0, f0, f2
/* 8023E810 0023B770 D0 04 00 2C */ stfs f0, 0x2c(r4)
/* 8023E814 0023B774 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023E818 0023B778 38 84 00 90 */ addi r4, r4, 0x90
/* 8023E81C 0023B77C 48 00 05 A9 */ bl "GetFailsafeBezierPoint__11CBallCameraFRCQ24rstl18vector<9CVector3f>f"
/* 8023E820 0023B780 C0 22 B7 A8 */ lfs f1, lbl_805AD4C8@sda21(r2)
/* 8023E824 0023B784 38 81 00 0C */ addi r4, r1, 0xc
/* 8023E828 0023B788 C0 02 B7 A4 */ lfs f0, lbl_805AD4C4@sda21(r2)
/* 8023E82C 0023B78C 38 6D 96 A8 */ addi r3, r13, lbl_805A8268@sda21
/* 8023E830 0023B790 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8023E834 0023B794 38 AD 96 AC */ addi r5, r13, lbl_805A826C@sda21
/* 8023E838 0023B798 EC 01 07 3C */ fnmsubs f0, f1, f28, f0
/* 8023E83C 0023B79C C0 21 00 48 */ lfs f1, 0x48(r1)
/* 8023E840 0023B7A0 C0 81 00 10 */ lfs f4, 0x10(r1)
/* 8023E844 0023B7A4 C0 61 00 14 */ lfs f3, 0x14(r1)
/* 8023E848 0023B7A8 EF 82 08 28 */ fsubs f28, f2, f1
/* 8023E84C 0023B7AC D0 81 00 34 */ stfs f4, 0x34(r1)
/* 8023E850 0023B7B0 D0 61 00 38 */ stfs f3, 0x38(r1)
/* 8023E854 0023B7B4 D0 41 00 3C */ stfs f2, 0x3c(r1)
/* 8023E858 0023B7B8 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8023E85C 0023B7BC 4B DC DA 59 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8023E860 0023B7C0 C0 03 00 00 */ lfs f0, 0(r3)
/* 8023E864 0023B7C4 38 61 00 28 */ addi r3, r1, 0x28
/* 8023E868 0023B7C8 C0 A1 00 48 */ lfs f5, 0x48(r1)
/* 8023E86C 0023B7CC EF 9C 00 32 */ fmuls f28, f28, f0
/* 8023E870 0023B7D0 C0 61 00 44 */ lfs f3, 0x44(r1)
/* 8023E874 0023B7D4 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8023E878 0023B7D8 C0 41 00 40 */ lfs f2, 0x40(r1)
/* 8023E87C 0023B7DC EC 9C 28 2A */ fadds f4, f28, f5
/* 8023E880 0023B7E0 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8023E884 0023B7E4 EC 63 00 28 */ fsubs f3, f3, f0
/* 8023E888 0023B7E8 C0 02 B7 A0 */ lfs f0, lbl_805AD4C0@sda21(r2)
/* 8023E88C 0023B7EC EC 22 08 28 */ fsubs f1, f2, f1
/* 8023E890 0023B7F0 EC 45 20 28 */ fsubs f2, f5, f4
/* 8023E894 0023B7F4 D0 81 00 3C */ stfs f4, 0x3c(r1)
/* 8023E898 0023B7F8 D0 41 00 30 */ stfs f2, 0x30(r1)
/* 8023E89C 0023B7FC D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8023E8A0 0023B800 D0 61 00 2C */ stfs f3, 0x2c(r1)
/* 8023E8A4 0023B804 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8023E8A8 0023B808 48 0D 60 11 */ bl Magnitude__9CVector3fCFv
/* 8023E8AC 0023B80C C0 02 B7 AC */ lfs f0, lbl_805AD4CC@sda21(r2)
/* 8023E8B0 0023B810 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8023E8B4 0023B814 40 81 00 54 */ ble lbl_8023E908
/* 8023E8B8 0023B818 3C 80 80 5A */ lis r4, sUpVector__9CVector3f@ha
/* 8023E8BC 0023B81C 38 61 00 4C */ addi r3, r1, 0x4c
/* 8023E8C0 0023B820 38 C4 66 F4 */ addi r6, r4, sUpVector__9CVector3f@l
/* 8023E8C4 0023B824 38 A1 00 40 */ addi r5, r1, 0x40
/* 8023E8C8 0023B828 38 81 00 34 */ addi r4, r1, 0x34
/* 8023E8CC 0023B82C 48 0D 52 45 */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 8023E8D0 0023B830 38 7E 00 34 */ addi r3, r30, 0x34
/* 8023E8D4 0023B834 38 81 00 4C */ addi r4, r1, 0x4c
/* 8023E8D8 0023B838 48 0D 42 69 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8023E8DC 0023B83C 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8023E8E0 0023B840 38 60 00 01 */ li r3, 1
/* 8023E8E4 0023B844 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8023E8E8 0023B848 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8023E8EC 0023B84C 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8023E8F0 0023B850 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8023E8F4 0023B854 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8023E8F8 0023B858 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8023E8FC 0023B85C 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8023E900 0023B860 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8023E904 0023B864 48 00 00 4C */ b lbl_8023E950
lbl_8023E908:
/* 8023E908 0023B868 80 9F 08 70 */ lwz r4, 0x870(r31)
/* 8023E90C 0023B86C 38 7E 00 34 */ addi r3, r30, 0x34
/* 8023E910 0023B870 80 84 00 7C */ lwz r4, 0x7c(r4)
/* 8023E914 0023B874 38 84 00 34 */ addi r4, r4, 0x34
/* 8023E918 0023B878 48 0D 42 29 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8023E91C 0023B87C 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8023E920 0023B880 38 A0 00 01 */ li r5, 1
/* 8023E924 0023B884 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 8023E928 0023B888 7F C3 F3 78 */ mr r3, r30
/* 8023E92C 0023B88C 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8023E930 0023B890 38 81 00 34 */ addi r4, r1, 0x34
/* 8023E934 0023B894 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8023E938 0023B898 50 A0 1F 38 */ rlwimi r0, r5, 3, 0x1c, 0x1c
/* 8023E93C 0023B89C 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8023E940 0023B8A0 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8023E944 0023B8A4 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 8023E948 0023B8A8 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8023E94C 0023B8AC 4B E1 45 41 */ bl SetTranslation__6CActorFRC9CVector3f
lbl_8023E950:
/* 8023E950 0023B8B0 80 7F 08 70 */ lwz r3, 0x870(r31)
/* 8023E954 0023B8B4 7F E5 FB 78 */ mr r5, r31
/* 8023E958 0023B8B8 38 9E 00 34 */ addi r4, r30, 0x34
/* 8023E95C 0023B8BC 80 63 00 7C */ lwz r3, 0x7c(r3)
/* 8023E960 0023B8C0 81 83 00 00 */ lwz r12, 0(r3)
/* 8023E964 0023B8C4 81 8C 00 70 */ lwz r12, 0x70(r12)
/* 8023E968 0023B8C8 7D 89 03 A6 */ mtctr r12
/* 8023E96C 0023B8CC 4E 80 04 21 */ bctrl
/* 8023E970 0023B8D0 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023E974 0023B8D4 38 60 00 00 */ li r3, 0
/* 8023E978 0023B8D8 D3 E4 00 84 */ stfs f31, 0x84(r4)
/* 8023E97C 0023B8DC D3 C4 00 88 */ stfs f30, 0x88(r4)
/* 8023E980 0023B8E0 D3 A4 00 8C */ stfs f29, 0x8c(r4)
/* 8023E984 0023B8E4 E3 E1 00 C8 */ psq_l f31, 200(r1), 0, qr0
/* 8023E988 0023B8E8 CB E1 00 C0 */ lfd f31, 0xc0(r1)
/* 8023E98C 0023B8EC E3 C1 00 B8 */ psq_l f30, 184(r1), 0, qr0
/* 8023E990 0023B8F0 CB C1 00 B0 */ lfd f30, 0xb0(r1)
/* 8023E994 0023B8F4 E3 A1 00 A8 */ psq_l f29, 168(r1), 0, qr0
/* 8023E998 0023B8F8 CB A1 00 A0 */ lfd f29, 0xa0(r1)
/* 8023E99C 0023B8FC E3 81 00 98 */ psq_l f28, 152(r1), 0, qr0
/* 8023E9A0 0023B900 CB 81 00 90 */ lfd f28, 0x90(r1)
/* 8023E9A4 0023B904 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 8023E9A8 0023B908 83 C1 00 88 */ lwz r30, 0x88(r1)
/* 8023E9AC 0023B90C 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8023E9B0 0023B910 83 A1 00 84 */ lwz r29, 0x84(r1)
/* 8023E9B4 0023B914 7C 08 03 A6 */ mtlr r0
/* 8023E9B8 0023B918 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8023E9BC 0023B91C 4E 80 00 20 */ blr
.global TransitionFromMorphBallState__11CBallCameraFR13CStateManager
TransitionFromMorphBallState__11CBallCameraFR13CStateManager:
/* 8023E9C0 0023B920 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8023E9C4 0023B924 7C 08 02 A6 */ mflr r0
/* 8023E9C8 0023B928 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8023E9CC 0023B92C DB E1 00 90 */ stfd f31, 0x90(r1)
/* 8023E9D0 0023B930 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 8023E9D4 0023B934 DB C1 00 80 */ stfd f30, 0x80(r1)
/* 8023E9D8 0023B938 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0
/* 8023E9DC 0023B93C DB A1 00 70 */ stfd f29, 0x70(r1)
/* 8023E9E0 0023B940 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0
/* 8023E9E4 0023B944 DB 81 00 60 */ stfd f28, 0x60(r1)
/* 8023E9E8 0023B948 F3 81 00 68 */ psq_st f28, 104(r1), 0, qr0
/* 8023E9EC 0023B94C 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 8023E9F0 0023B950 93 C1 00 58 */ stw r30, 0x58(r1)
/* 8023E9F4 0023B954 93 A1 00 54 */ stw r29, 0x54(r1)
/* 8023E9F8 0023B958 93 81 00 50 */ stw r28, 0x50(r1)
/* 8023E9FC 0023B95C 7C 9F 23 78 */ mr r31, r4
/* 8023EA00 0023B960 7C 7E 1B 78 */ mr r30, r3
/* 8023EA04 0023B964 80 84 08 4C */ lwz r4, 0x84c(r4)
/* 8023EA08 0023B968 80 63 04 7C */ lwz r3, 0x47c(r3)
/* 8023EA0C 0023B96C 38 84 00 34 */ addi r4, r4, 0x34
/* 8023EA10 0023B970 48 0D 41 31 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8023EA14 0023B974 80 7E 04 7C */ lwz r3, 0x47c(r30)
/* 8023EA18 0023B978 38 9E 00 34 */ addi r4, r30, 0x34
/* 8023EA1C 0023B97C 38 63 00 30 */ addi r3, r3, 0x30
/* 8023EA20 0023B980 48 0D 41 21 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8023EA24 0023B984 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023EA28 0023B988 38 61 00 28 */ addi r3, r1, 0x28
/* 8023EA2C 0023B98C C0 1E 01 D8 */ lfs f0, 0x1d8(r30)
/* 8023EA30 0023B990 D0 04 00 60 */ stfs f0, 0x60(r4)
/* 8023EA34 0023B994 C0 1E 01 DC */ lfs f0, 0x1dc(r30)
/* 8023EA38 0023B998 D0 04 00 64 */ stfs f0, 0x64(r4)
/* 8023EA3C 0023B99C C0 1E 01 E0 */ lfs f0, 0x1e0(r30)
/* 8023EA40 0023B9A0 D0 04 00 68 */ stfs f0, 0x68(r4)
/* 8023EA44 0023B9A4 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023EA48 0023B9A8 C0 44 00 2C */ lfs f2, 0x2c(r4)
/* 8023EA4C 0023B9AC C0 24 00 1C */ lfs f1, 0x1c(r4)
/* 8023EA50 0023B9B0 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8023EA54 0023B9B4 D0 04 00 84 */ stfs f0, 0x84(r4)
/* 8023EA58 0023B9B8 D0 24 00 88 */ stfs f1, 0x88(r4)
/* 8023EA5C 0023B9BC D0 44 00 8C */ stfs f2, 0x8c(r4)
/* 8023EA60 0023B9C0 80 BE 04 7C */ lwz r5, 0x47c(r30)
/* 8023EA64 0023B9C4 80 9F 08 4C */ lwz r4, 0x84c(r31)
/* 8023EA68 0023B9C8 C3 A5 00 5C */ lfs f29, 0x5c(r5)
/* 8023EA6C 0023B9CC C3 C5 00 4C */ lfs f30, 0x4c(r5)
/* 8023EA70 0023B9D0 C3 E5 00 3C */ lfs f31, 0x3c(r5)
/* 8023EA74 0023B9D4 48 04 63 09 */ bl GetEyePosition__7CPlayerCFv
/* 8023EA78 0023B9D8 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8023EA7C 0023B9DC 38 61 00 1C */ addi r3, r1, 0x1c
/* 8023EA80 0023B9E0 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8023EA84 0023B9E4 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8023EA88 0023B9E8 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8023EA8C 0023B9EC D0 21 00 44 */ stfs f1, 0x44(r1)
/* 8023EA90 0023B9F0 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8023EA94 0023B9F4 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023EA98 0023B9F8 C0 44 00 64 */ lfs f2, 0x64(r4)
/* 8023EA9C 0023B9FC C0 24 00 68 */ lfs f1, 0x68(r4)
/* 8023EAA0 0023BA00 C0 04 00 60 */ lfs f0, 0x60(r4)
/* 8023EAA4 0023BA04 EC 42 F0 28 */ fsubs f2, f2, f30
/* 8023EAA8 0023BA08 EC 21 E8 28 */ fsubs f1, f1, f29
/* 8023EAAC 0023BA0C EC 00 F8 28 */ fsubs f0, f0, f31
/* 8023EAB0 0023BA10 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 8023EAB4 0023BA14 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8023EAB8 0023BA18 D0 21 00 24 */ stfs f1, 0x24(r1)
/* 8023EABC 0023BA1C 48 0D 5D FD */ bl Magnitude__9CVector3fCFv
/* 8023EAC0 0023BA20 FF 80 08 90 */ fmr f28, f1
/* 8023EAC4 0023BA24 80 9E 04 7C */ lwz r4, 0x47c(r30)
/* 8023EAC8 0023BA28 C0 22 B7 B0 */ lfs f1, lbl_805AD4D0@sda21(r2)
/* 8023EACC 0023BA2C 7F E6 FB 78 */ mr r6, r31
/* 8023EAD0 0023BA30 C0 C4 00 04 */ lfs f6, 4(r4)
/* 8023EAD4 0023BA34 38 61 00 40 */ addi r3, r1, 0x40
/* 8023EAD8 0023BA38 FC 00 E0 50 */ fneg f0, f28
/* 8023EADC 0023BA3C C0 A4 00 14 */ lfs f5, 0x14(r4)
/* 8023EAE0 0023BA40 C0 64 00 24 */ lfs f3, 0x24(r4)
/* 8023EAE4 0023BA44 38 81 00 34 */ addi r4, r1, 0x34
/* 8023EAE8 0023BA48 C0 81 00 44 */ lfs f4, 0x44(r1)
/* 8023EAEC 0023BA4C 38 A1 00 18 */ addi r5, r1, 0x18
/* 8023EAF0 0023BA50 EC E1 00 32 */ fmuls f7, f1, f0
/* 8023EAF4 0023BA54 C0 41 00 48 */ lfs f2, 0x48(r1)
/* 8023EAF8 0023BA58 C0 01 00 40 */ lfs f0, 0x40(r1)
/* 8023EAFC 0023BA5C EC C7 01 B2 */ fmuls f6, f7, f6
/* 8023EB00 0023BA60 EC A7 01 72 */ fmuls f5, f7, f5
/* 8023EB04 0023BA64 EC 67 00 F2 */ fmuls f3, f7, f3
/* 8023EB08 0023BA68 EC 06 00 2A */ fadds f0, f6, f0
/* 8023EB0C 0023BA6C EC 85 20 2A */ fadds f4, f5, f4
/* 8023EB10 0023BA70 EC 43 10 2A */ fadds f2, f3, f2
/* 8023EB14 0023BA74 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8023EB18 0023BA78 D0 81 00 38 */ stfs f4, 0x38(r1)
/* 8023EB1C 0023BA7C D0 41 00 3C */ stfs f2, 0x3c(r1)
/* 8023EB20 0023BA80 48 00 03 49 */ bl CheckTransitionLineOfSight__11CBallCameraFRC9CVector3fRC9CVector3fRffR13CStateManager
/* 8023EB24 0023BA84 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8023EB28 0023BA88 41 82 00 50 */ beq lbl_8023EB78
/* 8023EB2C 0023BA8C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8023EB30 0023BA90 80 7E 04 7C */ lwz r3, 0x47c(r30)
/* 8023EB34 0023BA94 FC C0 00 50 */ fneg f6, f0
/* 8023EB38 0023BA98 C0 01 00 40 */ lfs f0, 0x40(r1)
/* 8023EB3C 0023BA9C C0 23 00 04 */ lfs f1, 4(r3)
/* 8023EB40 0023BAA0 C0 63 00 14 */ lfs f3, 0x14(r3)
/* 8023EB44 0023BAA4 EC 26 00 72 */ fmuls f1, f6, f1
/* 8023EB48 0023BAA8 C0 43 00 24 */ lfs f2, 0x24(r3)
/* 8023EB4C 0023BAAC EC A6 00 F2 */ fmuls f5, f6, f3
/* 8023EB50 0023BAB0 C0 81 00 44 */ lfs f4, 0x44(r1)
/* 8023EB54 0023BAB4 EC 66 00 B2 */ fmuls f3, f6, f2
/* 8023EB58 0023BAB8 C0 41 00 48 */ lfs f2, 0x48(r1)
/* 8023EB5C 0023BABC EC 01 00 2A */ fadds f0, f1, f0
/* 8023EB60 0023BAC0 EC 85 20 2A */ fadds f4, f5, f4
/* 8023EB64 0023BAC4 EC 23 10 2A */ fadds f1, f3, f2
/* 8023EB68 0023BAC8 D0 03 00 6C */ stfs f0, 0x6c(r3)
/* 8023EB6C 0023BACC D0 83 00 70 */ stfs f4, 0x70(r3)
/* 8023EB70 0023BAD0 D0 23 00 74 */ stfs f1, 0x74(r3)
/* 8023EB74 0023BAD4 48 00 00 24 */ b lbl_8023EB98
lbl_8023EB78:
/* 8023EB78 0023BAD8 D3 81 00 18 */ stfs f28, 0x18(r1)
/* 8023EB7C 0023BADC C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8023EB80 0023BAE0 80 7E 04 7C */ lwz r3, 0x47c(r30)
/* 8023EB84 0023BAE4 D0 03 00 6C */ stfs f0, 0x6c(r3)
/* 8023EB88 0023BAE8 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8023EB8C 0023BAEC D0 03 00 70 */ stfs f0, 0x70(r3)
/* 8023EB90 0023BAF0 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8023EB94 0023BAF4 D0 03 00 74 */ stfs f0, 0x74(r3)
lbl_8023EB98:
/* 8023EB98 0023BAF8 80 7E 04 7C */ lwz r3, 0x47c(r30)
/* 8023EB9C 0023BAFC 80 03 00 94 */ lwz r0, 0x94(r3)
/* 8023EBA0 0023BB00 80 83 00 9C */ lwz r4, 0x9c(r3)
/* 8023EBA4 0023BB04 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8023EBA8 0023BB08 90 81 00 0C */ stw r4, 0xc(r1)
/* 8023EBAC 0023BB0C 7C 04 02 14 */ add r0, r4, r0
/* 8023EBB0 0023BB10 90 81 00 08 */ stw r4, 8(r1)
/* 8023EBB4 0023BB14 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023EBB8 0023BB18 90 01 00 10 */ stw r0, 0x10(r1)
/* 8023EBBC 0023BB1C 48 00 00 08 */ b lbl_8023EBC4
lbl_8023EBC0:
/* 8023EBC0 0023BB20 38 84 00 0C */ addi r4, r4, 0xc
lbl_8023EBC4:
/* 8023EBC4 0023BB24 7C 04 00 40 */ cmplw r4, r0
/* 8023EBC8 0023BB28 40 82 FF F8 */ bne lbl_8023EBC0
/* 8023EBCC 0023BB2C 38 00 00 00 */ li r0, 0
/* 8023EBD0 0023BB30 38 80 00 04 */ li r4, 4
/* 8023EBD4 0023BB34 90 03 00 94 */ stw r0, 0x94(r3)
/* 8023EBD8 0023BB38 80 7E 04 7C */ lwz r3, 0x47c(r30)
/* 8023EBDC 0023BB3C 38 63 00 90 */ addi r3, r3, 0x90
/* 8023EBE0 0023BB40 4B E1 F1 19 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
/* 8023EBE4 0023BB44 80 7E 04 7C */ lwz r3, 0x47c(r30)
/* 8023EBE8 0023BB48 3B A3 00 90 */ addi r29, r3, 0x90
/* 8023EBEC 0023BB4C 80 03 00 94 */ lwz r0, 0x94(r3)
/* 8023EBF0 0023BB50 80 A3 00 98 */ lwz r5, 0x98(r3)
/* 8023EBF4 0023BB54 7C 00 28 00 */ cmpw r0, r5
/* 8023EBF8 0023BB58 41 80 00 1C */ blt lbl_8023EC14
/* 8023EBFC 0023BB5C 2C 05 00 00 */ cmpwi r5, 0
/* 8023EC00 0023BB60 7F A3 EB 78 */ mr r3, r29
/* 8023EC04 0023BB64 38 80 00 04 */ li r4, 4
/* 8023EC08 0023BB68 41 82 00 08 */ beq lbl_8023EC10
/* 8023EC0C 0023BB6C 54 A4 08 3C */ slwi r4, r5, 1
lbl_8023EC10:
/* 8023EC10 0023BB70 4B E1 F0 E9 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_8023EC14:
/* 8023EC14 0023BB74 80 1D 00 04 */ lwz r0, 4(r29)
/* 8023EC18 0023BB78 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8023EC1C 0023BB7C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8023EC20 0023BB80 7C 63 02 15 */ add. r3, r3, r0
/* 8023EC24 0023BB84 41 82 00 10 */ beq lbl_8023EC34
/* 8023EC28 0023BB88 D3 E3 00 00 */ stfs f31, 0(r3)
/* 8023EC2C 0023BB8C D3 C3 00 04 */ stfs f30, 4(r3)
/* 8023EC30 0023BB90 D3 A3 00 08 */ stfs f29, 8(r3)
lbl_8023EC34:
/* 8023EC34 0023BB94 80 7D 00 04 */ lwz r3, 4(r29)
/* 8023EC38 0023BB98 38 03 00 01 */ addi r0, r3, 1
/* 8023EC3C 0023BB9C 90 1D 00 04 */ stw r0, 4(r29)
/* 8023EC40 0023BBA0 83 9E 04 7C */ lwz r28, 0x47c(r30)
/* 8023EC44 0023BBA4 3B BC 00 90 */ addi r29, r28, 0x90
/* 8023EC48 0023BBA8 80 1C 00 94 */ lwz r0, 0x94(r28)
/* 8023EC4C 0023BBAC 80 BC 00 98 */ lwz r5, 0x98(r28)
/* 8023EC50 0023BBB0 7C 00 28 00 */ cmpw r0, r5
/* 8023EC54 0023BBB4 41 80 00 1C */ blt lbl_8023EC70
/* 8023EC58 0023BBB8 2C 05 00 00 */ cmpwi r5, 0
/* 8023EC5C 0023BBBC 7F A3 EB 78 */ mr r3, r29
/* 8023EC60 0023BBC0 38 80 00 04 */ li r4, 4
/* 8023EC64 0023BBC4 41 82 00 08 */ beq lbl_8023EC6C
/* 8023EC68 0023BBC8 54 A4 08 3C */ slwi r4, r5, 1
lbl_8023EC6C:
/* 8023EC6C 0023BBCC 4B E1 F0 8D */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_8023EC70:
/* 8023EC70 0023BBD0 80 1D 00 04 */ lwz r0, 4(r29)
/* 8023EC74 0023BBD4 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8023EC78 0023BBD8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8023EC7C 0023BBDC 7C 63 02 15 */ add. r3, r3, r0
/* 8023EC80 0023BBE0 41 82 00 1C */ beq lbl_8023EC9C
/* 8023EC84 0023BBE4 C0 1C 00 6C */ lfs f0, 0x6c(r28)
/* 8023EC88 0023BBE8 D0 03 00 00 */ stfs f0, 0(r3)
/* 8023EC8C 0023BBEC C0 1C 00 70 */ lfs f0, 0x70(r28)
/* 8023EC90 0023BBF0 D0 03 00 04 */ stfs f0, 4(r3)
/* 8023EC94 0023BBF4 C0 1C 00 74 */ lfs f0, 0x74(r28)
/* 8023EC98 0023BBF8 D0 03 00 08 */ stfs f0, 8(r3)
lbl_8023EC9C:
/* 8023EC9C 0023BBFC 80 7D 00 04 */ lwz r3, 4(r29)
/* 8023ECA0 0023BC00 38 03 00 01 */ addi r0, r3, 1
/* 8023ECA4 0023BC04 90 1D 00 04 */ stw r0, 4(r29)
/* 8023ECA8 0023BC08 83 9E 04 7C */ lwz r28, 0x47c(r30)
/* 8023ECAC 0023BC0C 3B BC 00 90 */ addi r29, r28, 0x90
/* 8023ECB0 0023BC10 80 1C 00 94 */ lwz r0, 0x94(r28)
/* 8023ECB4 0023BC14 80 BC 00 98 */ lwz r5, 0x98(r28)
/* 8023ECB8 0023BC18 7C 00 28 00 */ cmpw r0, r5
/* 8023ECBC 0023BC1C 41 80 00 1C */ blt lbl_8023ECD8
/* 8023ECC0 0023BC20 2C 05 00 00 */ cmpwi r5, 0
/* 8023ECC4 0023BC24 7F A3 EB 78 */ mr r3, r29
/* 8023ECC8 0023BC28 38 80 00 04 */ li r4, 4
/* 8023ECCC 0023BC2C 41 82 00 08 */ beq lbl_8023ECD4
/* 8023ECD0 0023BC30 54 A4 08 3C */ slwi r4, r5, 1
lbl_8023ECD4:
/* 8023ECD4 0023BC34 4B E1 F0 25 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_8023ECD8:
/* 8023ECD8 0023BC38 80 1D 00 04 */ lwz r0, 4(r29)
/* 8023ECDC 0023BC3C 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8023ECE0 0023BC40 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8023ECE4 0023BC44 7C 63 02 15 */ add. r3, r3, r0
/* 8023ECE8 0023BC48 41 82 00 1C */ beq lbl_8023ED04
/* 8023ECEC 0023BC4C C0 1C 00 6C */ lfs f0, 0x6c(r28)
/* 8023ECF0 0023BC50 D0 03 00 00 */ stfs f0, 0(r3)
/* 8023ECF4 0023BC54 C0 1C 00 70 */ lfs f0, 0x70(r28)
/* 8023ECF8 0023BC58 D0 03 00 04 */ stfs f0, 4(r3)
/* 8023ECFC 0023BC5C C0 1C 00 74 */ lfs f0, 0x74(r28)
/* 8023ED00 0023BC60 D0 03 00 08 */ stfs f0, 8(r3)
lbl_8023ED04:
/* 8023ED04 0023BC64 80 7D 00 04 */ lwz r3, 4(r29)
/* 8023ED08 0023BC68 38 03 00 01 */ addi r0, r3, 1
/* 8023ED0C 0023BC6C 90 1D 00 04 */ stw r0, 4(r29)
/* 8023ED10 0023BC70 80 7E 04 7C */ lwz r3, 0x47c(r30)
/* 8023ED14 0023BC74 3B A3 00 90 */ addi r29, r3, 0x90
/* 8023ED18 0023BC78 80 03 00 94 */ lwz r0, 0x94(r3)
/* 8023ED1C 0023BC7C 80 A3 00 98 */ lwz r5, 0x98(r3)
/* 8023ED20 0023BC80 7C 00 28 00 */ cmpw r0, r5
/* 8023ED24 0023BC84 41 80 00 1C */ blt lbl_8023ED40
/* 8023ED28 0023BC88 2C 05 00 00 */ cmpwi r5, 0
/* 8023ED2C 0023BC8C 7F A3 EB 78 */ mr r3, r29
/* 8023ED30 0023BC90 38 80 00 04 */ li r4, 4
/* 8023ED34 0023BC94 41 82 00 08 */ beq lbl_8023ED3C
/* 8023ED38 0023BC98 54 A4 08 3C */ slwi r4, r5, 1
lbl_8023ED3C:
/* 8023ED3C 0023BC9C 4B E1 EF BD */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_8023ED40:
/* 8023ED40 0023BCA0 80 1D 00 04 */ lwz r0, 4(r29)
/* 8023ED44 0023BCA4 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8023ED48 0023BCA8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8023ED4C 0023BCAC 7C 63 02 15 */ add. r3, r3, r0
/* 8023ED50 0023BCB0 41 82 00 1C */ beq lbl_8023ED6C
/* 8023ED54 0023BCB4 C0 01 00 40 */ lfs f0, 0x40(r1)
/* 8023ED58 0023BCB8 D0 03 00 00 */ stfs f0, 0(r3)
/* 8023ED5C 0023BCBC C0 01 00 44 */ lfs f0, 0x44(r1)
/* 8023ED60 0023BCC0 D0 03 00 04 */ stfs f0, 4(r3)
/* 8023ED64 0023BCC4 C0 01 00 48 */ lfs f0, 0x48(r1)
/* 8023ED68 0023BCC8 D0 03 00 08 */ stfs f0, 8(r3)
lbl_8023ED6C:
/* 8023ED6C 0023BCCC 80 BD 00 04 */ lwz r5, 4(r29)
/* 8023ED70 0023BCD0 7F C3 F3 78 */ mr r3, r30
/* 8023ED74 0023BCD4 7F E4 FB 78 */ mr r4, r31
/* 8023ED78 0023BCD8 38 05 00 01 */ addi r0, r5, 1
/* 8023ED7C 0023BCDC 90 1D 00 04 */ stw r0, 4(r29)
/* 8023ED80 0023BCE0 4B E4 2A 51 */ bl CheckFailsafeFromMorphBallState__11CBallCameraCFR13CStateManager
/* 8023ED84 0023BCE4 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 8023ED88 0023BCE8 CB E1 00 90 */ lfd f31, 0x90(r1)
/* 8023ED8C 0023BCEC E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0
/* 8023ED90 0023BCF0 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 8023ED94 0023BCF4 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0
/* 8023ED98 0023BCF8 CB A1 00 70 */ lfd f29, 0x70(r1)
/* 8023ED9C 0023BCFC E3 81 00 68 */ psq_l f28, 104(r1), 0, qr0
/* 8023EDA0 0023BD00 CB 81 00 60 */ lfd f28, 0x60(r1)
/* 8023EDA4 0023BD04 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 8023EDA8 0023BD08 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 8023EDAC 0023BD0C 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 8023EDB0 0023BD10 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8023EDB4 0023BD14 83 81 00 50 */ lwz r28, 0x50(r1)
/* 8023EDB8 0023BD18 7C 08 03 A6 */ mtlr r0
/* 8023EDBC 0023BD1C 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8023EDC0 0023BD20 4E 80 00 20 */ blr
.global "GetFailsafeBezierPoint__11CBallCameraFRCQ24rstl18vector<9CVector3f>f"
"GetFailsafeBezierPoint__11CBallCameraFRCQ24rstl18vector<9CVector3f>f":
/* 8023EDC4 0023BD24 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8023EDC8 0023BD28 7C 08 02 A6 */ mflr r0
/* 8023EDCC 0023BD2C C8 62 B7 B8 */ lfd f3, lbl_805AD4D8@sda21(r2)
/* 8023EDD0 0023BD30 38 E0 00 00 */ li r7, 0
/* 8023EDD4 0023BD34 90 01 00 24 */ stw r0, 0x24(r1)
/* 8023EDD8 0023BD38 3C 00 43 30 */ lis r0, 0x4330
/* 8023EDDC 0023BD3C C0 02 B7 A4 */ lfs f0, lbl_805AD4C4@sda21(r2)
/* 8023EDE0 0023BD40 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8023EDE4 0023BD44 7C 7F 1B 78 */ mr r31, r3
/* 8023EDE8 0023BD48 80 A4 00 04 */ lwz r5, 4(r4)
/* 8023EDEC 0023BD4C 90 01 00 08 */ stw r0, 8(r1)
/* 8023EDF0 0023BD50 38 05 FF FD */ addi r0, r5, -3
/* 8023EDF4 0023BD54 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8023EDF8 0023BD58 90 01 00 0C */ stw r0, 0xc(r1)
/* 8023EDFC 0023BD5C C8 41 00 08 */ lfd f2, 8(r1)
/* 8023EE00 0023BD60 EC 42 18 28 */ fsubs f2, f2, f3
/* 8023EE04 0023BD64 EC 21 00 B2 */ fmuls f1, f1, f2
/* 8023EE08 0023BD68 48 00 00 0C */ b lbl_8023EE14
lbl_8023EE0C:
/* 8023EE0C 0023BD6C EC 21 00 28 */ fsubs f1, f1, f0
/* 8023EE10 0023BD70 38 E7 00 01 */ addi r7, r7, 1
lbl_8023EE14:
/* 8023EE14 0023BD74 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8023EE18 0023BD78 41 81 FF F4 */ bgt lbl_8023EE0C
/* 8023EE1C 0023BD7C 38 67 00 03 */ addi r3, r7, 3
/* 8023EE20 0023BD80 38 A7 00 01 */ addi r5, r7, 1
/* 8023EE24 0023BD84 38 07 00 02 */ addi r0, r7, 2
/* 8023EE28 0023BD88 81 04 00 0C */ lwz r8, 0xc(r4)
/* 8023EE2C 0023BD8C 1C C3 00 0C */ mulli r6, r3, 0xc
/* 8023EE30 0023BD90 7F E3 FB 78 */ mr r3, r31
/* 8023EE34 0023BD94 1C 87 00 0C */ mulli r4, r7, 0xc
/* 8023EE38 0023BD98 7C E8 32 14 */ add r7, r8, r6
/* 8023EE3C 0023BD9C 1C A5 00 0C */ mulli r5, r5, 0xc
/* 8023EE40 0023BDA0 7C 88 22 14 */ add r4, r8, r4
/* 8023EE44 0023BDA4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8023EE48 0023BDA8 7C A8 2A 14 */ add r5, r8, r5
/* 8023EE4C 0023BDAC 7C C8 02 14 */ add r6, r8, r0
/* 8023EE50 0023BDB0 48 0D 60 C9 */ bl GetBezierPoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff
/* 8023EE54 0023BDB4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8023EE58 0023BDB8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8023EE5C 0023BDBC 7C 08 03 A6 */ mtlr r0
/* 8023EE60 0023BDC0 38 21 00 20 */ addi r1, r1, 0x20
/* 8023EE64 0023BDC4 4E 80 00 20 */ blr
.global CheckTransitionLineOfSight__11CBallCameraFRC9CVector3fRC9CVector3fRffR13CStateManager
CheckTransitionLineOfSight__11CBallCameraFRC9CVector3fRC9CVector3fRffR13CStateManager:
/* 8023EE68 0023BDC8 94 21 DB 00 */ stwu r1, -0x2500(r1)
/* 8023EE6C 0023BDCC 7C 08 02 A6 */ mflr r0
/* 8023EE70 0023BDD0 90 01 25 04 */ stw r0, 0x2504(r1)
/* 8023EE74 0023BDD4 38 00 24 F8 */ li r0, 0x24f8
/* 8023EE78 0023BDD8 DB E1 24 F0 */ stfd f31, 0x24f0(r1)
/* 8023EE7C 0023BDDC 13 E1 00 0E */ psq_stx f31, r1, r0, 0, qr0
/* 8023EE80 0023BDE0 38 00 24 E8 */ li r0, 0x24e8
/* 8023EE84 0023BDE4 DB C1 24 E0 */ stfd f30, 0x24e0(r1)
/* 8023EE88 0023BDE8 13 C1 00 0E */ psq_stx f30, r1, r0, 0, qr0
/* 8023EE8C 0023BDEC 38 00 24 D8 */ li r0, 0x24d8
/* 8023EE90 0023BDF0 DB A1 24 D0 */ stfd f29, 0x24d0(r1)
/* 8023EE94 0023BDF4 13 A1 00 0E */ psq_stx f29, r1, r0, 0, qr0
/* 8023EE98 0023BDF8 38 00 24 C8 */ li r0, 0x24c8
/* 8023EE9C 0023BDFC DB 81 24 C0 */ stfd f28, 0x24c0(r1)
/* 8023EEA0 0023BE00 13 81 00 0E */ psq_stx f28, r1, r0, 0, qr0
/* 8023EEA4 0023BE04 BF 41 24 A8 */ stmw r26, 0x24a8(r1)
/* 8023EEA8 0023BE08 7C 7C 1B 78 */ mr r28, r3
/* 8023EEAC 0023BE0C 7C 9A 23 78 */ mr r26, r4
/* 8023EEB0 0023BE10 C0 84 00 04 */ lfs f4, 4(r4)
/* 8023EEB4 0023BE14 FF A0 08 90 */ fmr f29, f1
/* 8023EEB8 0023BE18 C0 03 00 04 */ lfs f0, 4(r3)
/* 8023EEBC 0023BE1C 7C BD 2B 78 */ mr r29, r5
/* 8023EEC0 0023BE20 C0 64 00 08 */ lfs f3, 8(r4)
/* 8023EEC4 0023BE24 7C DE 33 78 */ mr r30, r6
/* 8023EEC8 0023BE28 C0 43 00 08 */ lfs f2, 8(r3)
/* 8023EECC 0023BE2C EC 84 00 28 */ fsubs f4, f4, f0
/* 8023EED0 0023BE30 C0 24 00 00 */ lfs f1, 0(r4)
/* 8023EED4 0023BE34 C0 03 00 00 */ lfs f0, 0(r3)
/* 8023EED8 0023BE38 EC 43 10 28 */ fsubs f2, f3, f2
/* 8023EEDC 0023BE3C 38 61 00 58 */ addi r3, r1, 0x58
/* 8023EEE0 0023BE40 EC 01 00 28 */ fsubs f0, f1, f0
/* 8023EEE4 0023BE44 D0 81 00 5C */ stfs f4, 0x5c(r1)
/* 8023EEE8 0023BE48 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8023EEEC 0023BE4C D0 41 00 60 */ stfs f2, 0x60(r1)
/* 8023EEF0 0023BE50 48 0D 59 C9 */ bl Magnitude__9CVector3fCFv
/* 8023EEF4 0023BE54 FF E0 08 90 */ fmr f31, f1
/* 8023EEF8 0023BE58 C0 22 B7 A4 */ lfs f1, lbl_805AD4C4@sda21(r2)
/* 8023EEFC 0023BE5C C0 02 B7 C0 */ lfs f0, lbl_805AD4E0@sda21(r2)
/* 8023EF00 0023BE60 3B E0 00 01 */ li r31, 1
/* 8023EF04 0023BE64 C0 61 00 58 */ lfs f3, 0x58(r1)
/* 8023EF08 0023BE68 EC 81 F8 24 */ fdivs f4, f1, f31
/* 8023EF0C 0023BE6C C0 41 00 5C */ lfs f2, 0x5c(r1)
/* 8023EF10 0023BE70 C0 21 00 60 */ lfs f1, 0x60(r1)
/* 8023EF14 0023BE74 EC 64 00 F2 */ fmuls f3, f4, f3
/* 8023EF18 0023BE78 EC 44 00 B2 */ fmuls f2, f4, f2
/* 8023EF1C 0023BE7C EC 24 00 72 */ fmuls f1, f4, f1
/* 8023EF20 0023BE80 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8023EF24 0023BE84 D0 61 00 4C */ stfs f3, 0x4c(r1)
/* 8023EF28 0023BE88 D0 41 00 50 */ stfs f2, 0x50(r1)
/* 8023EF2C 0023BE8C D0 21 00 54 */ stfs f1, 0x54(r1)
/* 8023EF30 0023BE90 40 81 03 B0 */ ble lbl_8023F2E0
/* 8023EF34 0023BE94 3C 60 80 5A */ lis r3, mskInvertedBox__6CAABox@ha
/* 8023EF38 0023BE98 C0 02 B7 C4 */ lfs f0, lbl_805AD4E4@sda21(r2)
/* 8023EF3C 0023BE9C 38 A3 67 54 */ addi r5, r3, mskInvertedBox__6CAABox@l
/* 8023EF40 0023BEA0 7F 84 E3 78 */ mr r4, r28
/* 8023EF44 0023BEA4 C0 A5 00 00 */ lfs f5, 0(r5)
/* 8023EF48 0023BEA8 EF C0 07 72 */ fmuls f30, f0, f29
/* 8023EF4C 0023BEAC C0 85 00 04 */ lfs f4, 4(r5)
/* 8023EF50 0023BEB0 38 61 00 B8 */ addi r3, r1, 0xb8
/* 8023EF54 0023BEB4 C0 65 00 08 */ lfs f3, 8(r5)
/* 8023EF58 0023BEB8 C0 45 00 0C */ lfs f2, 0xc(r5)
/* 8023EF5C 0023BEBC C0 25 00 10 */ lfs f1, 0x10(r5)
/* 8023EF60 0023BEC0 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 8023EF64 0023BEC4 D0 A1 00 B8 */ stfs f5, 0xb8(r1)
/* 8023EF68 0023BEC8 D0 81 00 BC */ stfs f4, 0xbc(r1)
/* 8023EF6C 0023BECC D0 61 00 C0 */ stfs f3, 0xc0(r1)
/* 8023EF70 0023BED0 D0 41 00 C4 */ stfs f2, 0xc4(r1)
/* 8023EF74 0023BED4 D0 21 00 C8 */ stfs f1, 0xc8(r1)
/* 8023EF78 0023BED8 D0 01 00 CC */ stfs f0, 0xcc(r1)
/* 8023EF7C 0023BEDC 48 0F 8B 8D */ bl AccumulateBounds__6CAABoxFRC9CVector3f
/* 8023EF80 0023BEE0 7F 44 D3 78 */ mr r4, r26
/* 8023EF84 0023BEE4 38 61 00 B8 */ addi r3, r1, 0xb8
/* 8023EF88 0023BEE8 48 0F 8B 81 */ bl AccumulateBounds__6CAABoxFRC9CVector3f
/* 8023EF8C 0023BEEC C0 41 00 C8 */ lfs f2, 0xc8(r1)
/* 8023EF90 0023BEF0 38 61 00 A0 */ addi r3, r1, 0xa0
/* 8023EF94 0023BEF4 C0 21 00 CC */ lfs f1, 0xcc(r1)
/* 8023EF98 0023BEF8 38 81 00 40 */ addi r4, r1, 0x40
/* 8023EF9C 0023BEFC C0 01 00 C4 */ lfs f0, 0xc4(r1)
/* 8023EFA0 0023BF00 EC A2 F0 2A */ fadds f5, f2, f30
/* 8023EFA4 0023BF04 C0 41 00 BC */ lfs f2, 0xbc(r1)
/* 8023EFA8 0023BF08 EC 81 F0 2A */ fadds f4, f1, f30
/* 8023EFAC 0023BF0C C0 21 00 C0 */ lfs f1, 0xc0(r1)
/* 8023EFB0 0023BF10 EC 60 F0 2A */ fadds f3, f0, f30
/* 8023EFB4 0023BF14 C0 01 00 B8 */ lfs f0, 0xb8(r1)
/* 8023EFB8 0023BF18 EC 42 F0 28 */ fsubs f2, f2, f30
/* 8023EFBC 0023BF1C D0 A1 00 38 */ stfs f5, 0x38(r1)
/* 8023EFC0 0023BF20 EC 21 F0 28 */ fsubs f1, f1, f30
/* 8023EFC4 0023BF24 38 A1 00 34 */ addi r5, r1, 0x34
/* 8023EFC8 0023BF28 EC 00 F0 28 */ fsubs f0, f0, f30
/* 8023EFCC 0023BF2C D0 61 00 34 */ stfs f3, 0x34(r1)
/* 8023EFD0 0023BF30 D0 81 00 3C */ stfs f4, 0x3c(r1)
/* 8023EFD4 0023BF34 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 8023EFD8 0023BF38 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 8023EFDC 0023BF3C D0 21 00 48 */ stfs f1, 0x48(r1)
/* 8023EFE0 0023BF40 48 0F 95 29 */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 8023EFE4 0023BF44 80 A1 00 A0 */ lwz r5, 0xa0(r1)
/* 8023EFE8 0023BF48 38 00 00 00 */ li r0, 0
/* 8023EFEC 0023BF4C 81 61 00 A4 */ lwz r11, 0xa4(r1)
/* 8023EFF0 0023BF50 7F C3 F3 78 */ mr r3, r30
/* 8023EFF4 0023BF54 81 41 00 A8 */ lwz r10, 0xa8(r1)
/* 8023EFF8 0023BF58 38 81 1C A4 */ addi r4, r1, 0x1ca4
/* 8023EFFC 0023BF5C 81 21 00 AC */ lwz r9, 0xac(r1)
/* 8023F000 0023BF60 38 C1 00 B8 */ addi r6, r1, 0xb8
/* 8023F004 0023BF64 81 01 00 B0 */ lwz r8, 0xb0(r1)
/* 8023F008 0023BF68 80 E1 00 B4 */ lwz r7, 0xb4(r1)
/* 8023F00C 0023BF6C 90 A1 00 B8 */ stw r5, 0xb8(r1)
/* 8023F010 0023BF70 80 BE 08 4C */ lwz r5, 0x84c(r30)
/* 8023F014 0023BF74 91 61 00 BC */ stw r11, 0xbc(r1)
/* 8023F018 0023BF78 91 41 00 C0 */ stw r10, 0xc0(r1)
/* 8023F01C 0023BF7C 91 21 00 C4 */ stw r9, 0xc4(r1)
/* 8023F020 0023BF80 91 01 00 C8 */ stw r8, 0xc8(r1)
/* 8023F024 0023BF84 90 E1 00 CC */ stw r7, 0xcc(r1)
/* 8023F028 0023BF88 90 01 1C A4 */ stw r0, 0x1ca4(r1)
/* 8023F02C 0023BF8C 4B E0 D6 D1 */ bl "BuildColliderList__13CStateManagerCFRQ24rstl32reserved_vector<9TUniqueId,1024>RC6CActorRC6CAABox"
/* 8023F030 0023BF90 38 61 01 60 */ addi r3, r1, 0x160
/* 8023F034 0023BF94 38 81 00 B8 */ addi r4, r1, 0xb8
/* 8023F038 0023BF98 48 06 4A 59 */ bl __ct__19CAreaCollisionCacheFRC6CAABox
/* 8023F03C 0023BF9C 7F C3 F3 78 */ mr r3, r30
/* 8023F040 0023BFA0 38 81 01 60 */ addi r4, r1, 0x160
/* 8023F044 0023BFA4 4B F4 56 81 */ bl BuildAreaCollisionCache__14CGameCollisionFRC13CStateManagerR19CAreaCollisionCache
/* 8023F048 0023BFA8 88 01 1C A0 */ lbz r0, 0x1ca0(r1)
/* 8023F04C 0023BFAC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8023F050 0023BFB0 41 82 00 08 */ beq lbl_8023F058
/* 8023F054 0023BFB4 3B E0 00 00 */ li r31, 0
lbl_8023F058:
/* 8023F058 0023BFB8 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8023F05C 0023BFBC 41 82 01 98 */ beq lbl_8023F1F4
/* 8023F060 0023BFC0 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8023F064 0023BFC4 38 61 01 00 */ addi r3, r1, 0x100
/* 8023F068 0023BFC8 38 80 00 00 */ li r4, 0
/* 8023F06C 0023BFCC B0 01 00 10 */ sth r0, 0x10(r1)
/* 8023F070 0023BFD0 48 08 F1 19 */ bl __ct__14CCollisionInfoFQ214CCollisionInfo8EInvalid
/* 8023F074 0023BFD4 38 00 00 00 */ li r0, 0
/* 8023F078 0023BFD8 80 AD 96 90 */ lwz r5, lbl_805A8250@sda21(r13)
/* 8023F07C 0023BFDC DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8023F080 0023BFE0 38 60 00 00 */ li r3, 0
/* 8023F084 0023BFE4 38 80 00 01 */ li r4, 1
/* 8023F088 0023BFE8 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8023F08C 0023BFEC 90 01 00 18 */ stw r0, 0x18(r1)
/* 8023F090 0023BFF0 48 14 AE 65 */ bl __shl2i
/* 8023F094 0023BFF4 80 01 00 18 */ lwz r0, 0x18(r1)
/* 8023F098 0023BFF8 3C A0 80 5A */ lis r5, sZeroVector__9CVector3f@ha
/* 8023F09C 0023BFFC C7 C5 66 A0 */ lfsu f30, sZeroVector__9CVector3f@l(r5)
/* 8023F0A0 0023C000 7C 00 1B 78 */ or r0, r0, r3
/* 8023F0A4 0023C004 80 C1 00 1C */ lwz r6, 0x1c(r1)
/* 8023F0A8 0023C008 90 01 00 18 */ stw r0, 0x18(r1)
/* 8023F0AC 0023C00C 38 61 00 80 */ addi r3, r1, 0x80
/* 8023F0B0 0023C010 7C C4 23 78 */ or r4, r6, r4
/* 8023F0B4 0023C014 C3 E5 00 04 */ lfs f31, 4(r5)
/* 8023F0B8 0023C018 90 81 00 1C */ stw r4, 0x1c(r1)
/* 8023F0BC 0023C01C 38 81 00 18 */ addi r4, r1, 0x18
/* 8023F0C0 0023C020 C3 85 00 08 */ lfs f28, 8(r5)
/* 8023F0C4 0023C024 48 09 07 F1 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList
/* 8023F0C8 0023C028 80 E1 00 4C */ lwz r7, 0x4c(r1)
/* 8023F0CC 0023C02C 3C 60 80 3F */ lis r3, lbl_803ECAF8@ha
/* 8023F0D0 0023C030 39 03 CA F8 */ addi r8, r3, lbl_803ECAF8@l
/* 8023F0D4 0023C034 80 C1 00 50 */ lwz r6, 0x50(r1)
/* 8023F0D8 0023C038 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8023F0DC 0023C03C 38 60 00 00 */ li r3, 0
/* 8023F0E0 0023C040 80 AD 96 98 */ lwz r5, lbl_805A8258@sda21(r13)
/* 8023F0E4 0023C044 38 80 00 01 */ li r4, 1
/* 8023F0E8 0023C048 91 01 00 80 */ stw r8, 0x80(r1)
/* 8023F0EC 0023C04C D3 C1 00 90 */ stfs f30, 0x90(r1)
/* 8023F0F0 0023C050 D3 E1 00 94 */ stfs f31, 0x94(r1)
/* 8023F0F4 0023C054 D3 81 00 98 */ stfs f28, 0x98(r1)
/* 8023F0F8 0023C058 D3 A1 00 9C */ stfs f29, 0x9c(r1)
/* 8023F0FC 0023C05C 90 E1 00 28 */ stw r7, 0x28(r1)
/* 8023F100 0023C060 90 C1 00 2C */ stw r6, 0x2c(r1)
/* 8023F104 0023C064 90 01 00 30 */ stw r0, 0x30(r1)
/* 8023F108 0023C068 48 14 AD ED */ bl __shl2i
/* 8023F10C 0023C06C 80 AD 96 9C */ lwz r5, lbl_805A825C@sda21(r13)
/* 8023F110 0023C070 7C 9A 23 78 */ mr r26, r4
/* 8023F114 0023C074 7C 7B 1B 78 */ mr r27, r3
/* 8023F118 0023C078 38 60 00 00 */ li r3, 0
/* 8023F11C 0023C07C 38 80 00 01 */ li r4, 1
/* 8023F120 0023C080 48 14 AD D5 */ bl __shl2i
/* 8023F124 0023C084 80 AD 96 A0 */ lwz r5, lbl_805A8260@sda21(r13)
/* 8023F128 0023C088 7F 5A 23 78 */ or r26, r26, r4
/* 8023F12C 0023C08C 7F 7B 1B 78 */ or r27, r27, r3
/* 8023F130 0023C090 38 60 00 00 */ li r3, 0
/* 8023F134 0023C094 38 80 00 01 */ li r4, 1
/* 8023F138 0023C098 48 14 AD BD */ bl __shl2i
/* 8023F13C 0023C09C 80 AD 96 A4 */ lwz r5, lbl_805A8264@sda21(r13)
/* 8023F140 0023C0A0 7F 5A 23 78 */ or r26, r26, r4
/* 8023F144 0023C0A4 7F 7B 1B 78 */ or r27, r27, r3
/* 8023F148 0023C0A8 38 60 00 00 */ li r3, 0
/* 8023F14C 0023C0AC 38 80 00 01 */ li r4, 1
/* 8023F150 0023C0B0 48 14 AD A5 */ bl __shl2i
/* 8023F154 0023C0B4 80 AD 96 94 */ lwz r5, lbl_805A8254@sda21(r13)
/* 8023F158 0023C0B8 7F 5A 23 78 */ or r26, r26, r4
/* 8023F15C 0023C0BC 7F 7B 1B 78 */ or r27, r27, r3
/* 8023F160 0023C0C0 38 60 00 00 */ li r3, 0
/* 8023F164 0023C0C4 38 80 00 01 */ li r4, 1
/* 8023F168 0023C0C8 48 14 AD 8D */ bl __shl2i
/* 8023F16C 0023C0CC 38 00 00 03 */ li r0, 3
/* 8023F170 0023C0D0 90 81 00 6C */ stw r4, 0x6c(r1)
/* 8023F174 0023C0D4 7F 84 E3 78 */ mr r4, r28
/* 8023F178 0023C0D8 90 61 00 68 */ stw r3, 0x68(r1)
/* 8023F17C 0023C0DC 38 61 00 D0 */ addi r3, r1, 0xd0
/* 8023F180 0023C0E0 93 41 00 74 */ stw r26, 0x74(r1)
/* 8023F184 0023C0E4 93 61 00 70 */ stw r27, 0x70(r1)
/* 8023F188 0023C0E8 90 01 00 78 */ stw r0, 0x78(r1)
/* 8023F18C 0023C0EC 48 0D 3F B5 */ bl Translate__12CTransform4fFRC9CVector3f
/* 8023F190 0023C0F0 38 61 01 00 */ addi r3, r1, 0x100
/* 8023F194 0023C0F4 38 01 00 20 */ addi r0, r1, 0x20
/* 8023F198 0023C0F8 90 61 00 08 */ stw r3, 8(r1)
/* 8023F19C 0023C0FC 7F C3 F3 78 */ mr r3, r30
/* 8023F1A0 0023C100 38 81 01 60 */ addi r4, r1, 0x160
/* 8023F1A4 0023C104 38 A1 00 80 */ addi r5, r1, 0x80
/* 8023F1A8 0023C108 90 01 00 0C */ stw r0, 0xc(r1)
/* 8023F1AC 0023C10C 38 C1 00 D0 */ addi r6, r1, 0xd0
/* 8023F1B0 0023C110 38 E1 00 68 */ addi r7, r1, 0x68
/* 8023F1B4 0023C114 39 01 1C A4 */ addi r8, r1, 0x1ca4
/* 8023F1B8 0023C118 39 21 00 28 */ addi r9, r1, 0x28
/* 8023F1BC 0023C11C 39 41 00 10 */ addi r10, r1, 0x10
/* 8023F1C0 0023C120 4B F4 51 2D */ bl "DetectCollision_Cached_Moving__14CGameCollisionFRC13CStateManagerR19CAreaCollisionCacheRC19CCollisionPrimitiveRC12CTransform4fRC15CMaterialFilterRCQ24rstl32reserved_vector<9TUniqueId,1024>9CVector3fR9TUniqueIdR14CCollisionInfoRd"
/* 8023F1C4 0023C124 3C 80 80 3F */ lis r4, lbl_803ECAF8@ha
/* 8023F1C8 0023C128 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8023F1CC 0023C12C 38 84 CA F8 */ addi r4, r4, lbl_803ECAF8@l
/* 8023F1D0 0023C130 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha
/* 8023F1D4 0023C134 90 81 00 80 */ stw r4, 0x80(r1)
/* 8023F1D8 0023C138 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l
/* 8023F1DC 0023C13C 90 61 00 80 */ stw r3, 0x80(r1)
/* 8023F1E0 0023C140 41 82 00 14 */ beq lbl_8023F1F4
/* 8023F1E4 0023C144 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 8023F1E8 0023C148 3B E0 00 00 */ li r31, 0
/* 8023F1EC 0023C14C FC 00 00 18 */ frsp f0, f0
/* 8023F1F0 0023C150 D0 1D 00 00 */ stfs f0, 0(r29)
lbl_8023F1F4:
/* 8023F1F4 0023C154 34 E1 01 78 */ addic. r7, r1, 0x178
/* 8023F1F8 0023C158 41 82 00 94 */ beq lbl_8023F28C
/* 8023F1FC 0023C15C 38 C7 00 04 */ addi r6, r7, 4
/* 8023F200 0023C160 38 60 00 00 */ li r3, 0
/* 8023F204 0023C164 48 00 00 74 */ b lbl_8023F278
lbl_8023F208:
/* 8023F208 0023C168 28 06 00 00 */ cmplwi r6, 0
/* 8023F20C 0023C16C 41 82 00 64 */ beq lbl_8023F270
/* 8023F210 0023C170 34 06 00 04 */ addic. r0, r6, 4
/* 8023F214 0023C174 41 82 00 5C */ beq lbl_8023F270
/* 8023F218 0023C178 81 06 00 04 */ lwz r8, 4(r6)
/* 8023F21C 0023C17C 38 80 00 00 */ li r4, 0
/* 8023F220 0023C180 2C 08 00 00 */ cmpwi r8, 0
/* 8023F224 0023C184 40 81 00 44 */ ble lbl_8023F268
/* 8023F228 0023C188 2C 08 00 08 */ cmpwi r8, 8
/* 8023F22C 0023C18C 38 A8 FF F8 */ addi r5, r8, -8
/* 8023F230 0023C190 40 81 00 20 */ ble lbl_8023F250
/* 8023F234 0023C194 38 05 00 07 */ addi r0, r5, 7
/* 8023F238 0023C198 54 00 E8 FE */ srwi r0, r0, 3
/* 8023F23C 0023C19C 7C 09 03 A6 */ mtctr r0
/* 8023F240 0023C1A0 2C 05 00 00 */ cmpwi r5, 0
/* 8023F244 0023C1A4 40 81 00 0C */ ble lbl_8023F250
lbl_8023F248:
/* 8023F248 0023C1A8 38 84 00 08 */ addi r4, r4, 8
/* 8023F24C 0023C1AC 42 00 FF FC */ bdnz lbl_8023F248
lbl_8023F250:
/* 8023F250 0023C1B0 7C 04 40 50 */ subf r0, r4, r8
/* 8023F254 0023C1B4 7C 09 03 A6 */ mtctr r0
/* 8023F258 0023C1B8 7C 04 40 00 */ cmpw r4, r8
/* 8023F25C 0023C1BC 40 80 00 0C */ bge lbl_8023F268
lbl_8023F260:
/* 8023F260 0023C1C0 38 84 00 01 */ addi r4, r4, 1
/* 8023F264 0023C1C4 42 00 FF FC */ bdnz lbl_8023F260
lbl_8023F268:
/* 8023F268 0023C1C8 38 00 00 00 */ li r0, 0
/* 8023F26C 0023C1CC 90 06 00 04 */ stw r0, 4(r6)
lbl_8023F270:
/* 8023F270 0023C1D0 38 C6 09 0C */ addi r6, r6, 0x90c
/* 8023F274 0023C1D4 38 63 00 01 */ addi r3, r3, 1
lbl_8023F278:
/* 8023F278 0023C1D8 80 07 00 00 */ lwz r0, 0(r7)
/* 8023F27C 0023C1DC 7C 03 00 00 */ cmpw r3, r0
/* 8023F280 0023C1E0 41 80 FF 88 */ blt lbl_8023F208
/* 8023F284 0023C1E4 38 00 00 00 */ li r0, 0
/* 8023F288 0023C1E8 90 07 00 00 */ stw r0, 0(r7)
lbl_8023F28C:
/* 8023F28C 0023C1EC 80 A1 1C A4 */ lwz r5, 0x1ca4(r1)
/* 8023F290 0023C1F0 38 60 00 00 */ li r3, 0
/* 8023F294 0023C1F4 2C 05 00 00 */ cmpwi r5, 0
/* 8023F298 0023C1F8 40 81 00 40 */ ble lbl_8023F2D8
/* 8023F29C 0023C1FC 2C 05 00 08 */ cmpwi r5, 8
/* 8023F2A0 0023C200 38 85 FF F8 */ addi r4, r5, -8
/* 8023F2A4 0023C204 40 81 00 20 */ ble lbl_8023F2C4
/* 8023F2A8 0023C208 38 04 00 07 */ addi r0, r4, 7
/* 8023F2AC 0023C20C 54 00 E8 FE */ srwi r0, r0, 3
/* 8023F2B0 0023C210 7C 09 03 A6 */ mtctr r0
/* 8023F2B4 0023C214 2C 04 00 00 */ cmpwi r4, 0
/* 8023F2B8 0023C218 40 81 00 0C */ ble lbl_8023F2C4
lbl_8023F2BC:
/* 8023F2BC 0023C21C 38 63 00 08 */ addi r3, r3, 8
/* 8023F2C0 0023C220 42 00 FF FC */ bdnz lbl_8023F2BC
lbl_8023F2C4:
/* 8023F2C4 0023C224 7C 03 28 50 */ subf r0, r3, r5
/* 8023F2C8 0023C228 7C 09 03 A6 */ mtctr r0
/* 8023F2CC 0023C22C 7C 03 28 00 */ cmpw r3, r5
/* 8023F2D0 0023C230 40 80 00 08 */ bge lbl_8023F2D8
lbl_8023F2D4:
/* 8023F2D4 0023C234 42 00 00 00 */ bdnz lbl_8023F2D4
lbl_8023F2D8:
/* 8023F2D8 0023C238 38 00 00 00 */ li r0, 0
/* 8023F2DC 0023C23C 90 01 1C A4 */ stw r0, 0x1ca4(r1)
lbl_8023F2E0:
/* 8023F2E0 0023C240 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 8023F2E4 0023C244 7C 00 00 34 */ cntlzw r0, r0
/* 8023F2E8 0023C248 54 03 D9 7E */ srwi r3, r0, 5
/* 8023F2EC 0023C24C 38 00 24 F8 */ li r0, 0x24f8
/* 8023F2F0 0023C250 13 E1 00 0C */ psq_lx f31, r1, r0, 0, qr0
/* 8023F2F4 0023C254 CB E1 24 F0 */ lfd f31, 0x24f0(r1)
/* 8023F2F8 0023C258 38 00 24 E8 */ li r0, 0x24e8
/* 8023F2FC 0023C25C 13 C1 00 0C */ psq_lx f30, r1, r0, 0, qr0
/* 8023F300 0023C260 CB C1 24 E0 */ lfd f30, 0x24e0(r1)
/* 8023F304 0023C264 38 00 24 D8 */ li r0, 0x24d8
/* 8023F308 0023C268 13 A1 00 0C */ psq_lx f29, r1, r0, 0, qr0
/* 8023F30C 0023C26C CB A1 24 D0 */ lfd f29, 0x24d0(r1)
/* 8023F310 0023C270 38 00 24 C8 */ li r0, 0x24c8
/* 8023F314 0023C274 13 81 00 0C */ psq_lx f28, r1, r0, 0, qr0
/* 8023F318 0023C278 CB 81 24 C0 */ lfd f28, 0x24c0(r1)
/* 8023F31C 0023C27C BB 41 24 A8 */ lmw r26, 0x24a8(r1)
/* 8023F320 0023C280 80 01 25 04 */ lwz r0, 0x2504(r1)
/* 8023F324 0023C284 7C 08 03 A6 */ mtlr r0
/* 8023F328 0023C288 38 21 25 00 */ addi r1, r1, 0x2500
/* 8023F32C 0023C28C 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AD4C0
lbl_805AD4C0:
# ROM: 0x3F9D60
.4byte 0
.global lbl_805AD4C4
lbl_805AD4C4:
# ROM: 0x3F9D64
.float 1.0
.global lbl_805AD4C8
lbl_805AD4C8:
# ROM: 0x3F9D68
.float 1.5
.global lbl_805AD4CC
lbl_805AD4CC:
# ROM: 0x3F9D6C
.4byte 0x3A9C4000
.global lbl_805AD4D0
lbl_805AD4D0:
# ROM: 0x3F9D70
.float 0.6
.4byte 0
.global lbl_805AD4D8
lbl_805AD4D8:
# ROM: 0x3F9D78
.double 4.503601774854144E15
.global lbl_805AD4E0
lbl_805AD4E0:
# ROM: 0x3F9D80
.4byte 0x35A00000
.global lbl_805AD4E4
lbl_805AD4E4:
# ROM: 0x3F9D84
.float 2.0