prime/asm/MetroidPrime/Cameras/CPathCamera.s

1222 lines
62 KiB
ArmAsm

.include "macros.inc"
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CPathCamera_cpp
.section .data
.balign 8
.global lbl_803E0C68
lbl_803E0C68:
# ROM: 0x3DDC68
.4byte 0
.4byte 0
.4byte __dt__11CPathCameraFv
.4byte Accept__11CPathCameraFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__11CPathCameraFfR13CStateManager
.4byte AcceptScriptMsg__11CPathCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__11CGameCameraFb
.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__11CPathCameraCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__6CActorFv
.4byte HealthInfo__6CActorFR13CStateManager
.4byte GetDamageVulnerability__6CActorCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__6CActorCFv
.4byte Touch__6CActorFR6CActorR13CStateManager
.4byte GetOrbitPosition__6CActorCFRC13CStateManager
.4byte GetAimPosition__6CActorCFRC13CStateManagerf
.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
.4byte GetCollisionResponseType__6CActorCFRC9CVector3fRC9CVector3fRC11CWeaponModei
.4byte FluidFXThink__6CActorFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
.4byte GetSortingBounds__6CActorCFRC12CTransform4f
.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventType
.4byte ProcessInput__11CPathCameraFRC11CFinalInputR13CStateManager
.4byte Reset__11CPathCameraFRC12CTransform4fR13CStateManager
.4byte 0
.section .sdata
.balign 8
.global lbl_805A76B0
lbl_805A76B0:
# ROM: 0x3F5050
.4byte 0x00000013
.global lbl_805A76B4
lbl_805A76B4:
# ROM: 0x3F5054
.4byte 0x00000012
.global lbl_805A76B8
lbl_805A76B8:
# ROM: 0x3F5058
.4byte 0
.global lbl_805A76BC
lbl_805A76BC:
# ROM: 0x3F505C
.4byte 0
.global lbl_805A76C0
lbl_805A76C0:
# ROM: 0x3F5060
.float 1.0
.4byte 0
.section .bss
.balign 8
.lcomm lbl_8046C720, 0x18, 4
.section .sbss
.balign 8
# CPathCamera
.global lbl_805A8F60
lbl_805A8F60:
.skip 0x4
.global lbl_805A8F64
lbl_805A8F64:
.skip 0x4
.global lbl_805A8F68
lbl_805A8F68:
.skip 0x4
.global lbl_805A8F6C
lbl_805A8F6C:
.skip 0x4
.section .sdata2, "a"
.balign 8
.global lbl_805AB5C8
lbl_805AB5C8:
# ROM: 0x3F7E68
.float 0.0
.global lbl_805AB5CC
lbl_805AB5CC:
# ROM: 0x3F7E6C
.float 0.017453292
.global lbl_805AB5D0
lbl_805AB5D0:
# ROM: 0x3F7E70
.float 90.0
.4byte 0
.global lbl_805AB5D8
lbl_805AB5D8:
# ROM: 0x3F7E78
.double 1.0
.global lbl_805AB5E0
lbl_805AB5E0:
# ROM: 0x3F7E80
.float -1.0
.global lbl_805AB5E4
lbl_805AB5E4:
# ROM: 0x3F7E84
.float 1.0
.section .text, "ax"
.global AcceptScriptMsg__11CPathCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__11CPathCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 8012D91C 0012A87C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8012D920 0012A880 7C 08 02 A6 */ mflr r0
/* 8012D924 0012A884 90 01 00 34 */ stw r0, 0x34(r1)
/* 8012D928 0012A888 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8012D92C 0012A88C 7C DF 33 78 */ mr r31, r6
/* 8012D930 0012A890 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8012D934 0012A894 7C 9E 23 78 */ mr r30, r4
/* 8012D938 0012A898 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8012D93C 0012A89C 7C 7D 1B 78 */ mr r29, r3
/* 8012D940 0012A8A0 A0 05 00 00 */ lhz r0, 0(r5)
/* 8012D944 0012A8A4 38 A1 00 10 */ addi r5, r1, 0x10
/* 8012D948 0012A8A8 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8012D94C 0012A8AC 4B F2 D9 FD */ bl AcceptScriptMsg__11CGameCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 8012D950 0012A8B0 88 1D 00 30 */ lbz r0, 0x30(r29)
/* 8012D954 0012A8B4 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8012D958 0012A8B8 41 82 00 30 */ beq lbl_8012D988
/* 8012D95C 0012A8BC 2C 1E 00 23 */ cmpwi r30, 0x23
/* 8012D960 0012A8C0 41 82 00 08 */ beq lbl_8012D968
/* 8012D964 0012A8C4 48 00 00 24 */ b lbl_8012D988
lbl_8012D968:
/* 8012D968 0012A8C8 A0 1D 00 08 */ lhz r0, 8(r29)
/* 8012D96C 0012A8CC 7F E6 FB 78 */ mr r6, r31
/* 8012D970 0012A8D0 38 7D 01 88 */ addi r3, r29, 0x188
/* 8012D974 0012A8D4 38 81 00 0C */ addi r4, r1, 0xc
/* 8012D978 0012A8D8 B0 01 00 08 */ sth r0, 8(r1)
/* 8012D97C 0012A8DC 38 BD 00 20 */ addi r5, r29, 0x20
/* 8012D980 0012A8E0 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8012D984 0012A8E4 4B F2 FC 21 */ bl "Initialise__13CCameraSplineFRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>R13CStateManager"
lbl_8012D988:
/* 8012D988 0012A8E8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8012D98C 0012A8EC 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8012D990 0012A8F0 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8012D994 0012A8F4 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8012D998 0012A8F8 7C 08 03 A6 */ mtlr r0
/* 8012D99C 0012A8FC 38 21 00 30 */ addi r1, r1, 0x30
/* 8012D9A0 0012A900 4E 80 00 20 */ blr
.global Render__11CPathCameraCFRC13CStateManager
Render__11CPathCameraCFRC13CStateManager:
/* 8012D9A4 0012A904 4E 80 00 20 */ blr
.global Accept__11CPathCameraFR8IVisitor
Accept__11CPathCameraFR8IVisitor:
/* 8012D9A8 0012A908 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8012D9AC 0012A90C 7C 08 02 A6 */ mflr r0
/* 8012D9B0 0012A910 90 01 00 14 */ stw r0, 0x14(r1)
/* 8012D9B4 0012A914 7C 60 1B 78 */ mr r0, r3
/* 8012D9B8 0012A918 7C 83 23 78 */ mr r3, r4
/* 8012D9BC 0012A91C 81 84 00 00 */ lwz r12, 0(r4)
/* 8012D9C0 0012A920 7C 04 03 78 */ mr r4, r0
/* 8012D9C4 0012A924 81 8C 00 48 */ lwz r12, 0x48(r12)
/* 8012D9C8 0012A928 7D 89 03 A6 */ mtctr r12
/* 8012D9CC 0012A92C 4E 80 04 21 */ bctrl
/* 8012D9D0 0012A930 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8012D9D4 0012A934 7C 08 03 A6 */ mtlr r0
/* 8012D9D8 0012A938 38 21 00 10 */ addi r1, r1, 0x10
/* 8012D9DC 0012A93C 4E 80 00 20 */ blr
.global ProcessInput__11CPathCameraFRC11CFinalInputR13CStateManager
ProcessInput__11CPathCameraFRC11CFinalInputR13CStateManager:
/* 8012D9E0 0012A940 4E 80 00 20 */ blr
.global Think__11CPathCameraFfR13CStateManager
Think__11CPathCameraFfR13CStateManager:
/* 8012D9E4 0012A944 94 21 FE 80 */ stwu r1, -0x180(r1)
/* 8012D9E8 0012A948 7C 08 02 A6 */ mflr r0
/* 8012D9EC 0012A94C 90 01 01 84 */ stw r0, 0x184(r1)
/* 8012D9F0 0012A950 DB E1 01 70 */ stfd f31, 0x170(r1)
/* 8012D9F4 0012A954 F3 E1 01 78 */ psq_st f31, 376(r1), 0, qr0
/* 8012D9F8 0012A958 93 E1 01 6C */ stw r31, 0x16c(r1)
/* 8012D9FC 0012A95C 93 C1 01 68 */ stw r30, 0x168(r1)
/* 8012DA00 0012A960 93 A1 01 64 */ stw r29, 0x164(r1)
/* 8012DA04 0012A964 88 03 00 30 */ lbz r0, 0x30(r3)
/* 8012DA08 0012A968 FF E0 08 90 */ fmr f31, f1
/* 8012DA0C 0012A96C 7C 7F 1B 78 */ mr r31, r3
/* 8012DA10 0012A970 7C 9D 23 78 */ mr r29, r4
/* 8012DA14 0012A974 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8012DA18 0012A978 41 82 03 00 */ beq lbl_8012DD18
/* 8012DA1C 0012A97C A3 DF 00 08 */ lhz r30, 8(r31)
/* 8012DA20 0012A980 38 61 00 08 */ addi r3, r1, 8
/* 8012DA24 0012A984 80 9D 08 70 */ lwz r4, 0x870(r29)
/* 8012DA28 0012A988 4B ED B8 95 */ bl GetPathCameraId__14CCameraManagerCFv
/* 8012DA2C 0012A98C A0 01 00 08 */ lhz r0, 8(r1)
/* 8012DA30 0012A990 7C 00 F0 40 */ cmplw r0, r30
/* 8012DA34 0012A994 40 82 02 E4 */ bne lbl_8012DD18
/* 8012DA38 0012A998 38 61 01 2C */ addi r3, r1, 0x12c
/* 8012DA3C 0012A99C 38 9F 00 34 */ addi r4, r31, 0x34
/* 8012DA40 0012A9A0 48 1E 51 35 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8012DA44 0012A9A4 80 1F 01 90 */ lwz r0, 0x190(r31)
/* 8012DA48 0012A9A8 2C 00 00 00 */ cmpwi r0, 0
/* 8012DA4C 0012A9AC 40 81 02 CC */ ble lbl_8012DD18
/* 8012DA50 0012A9B0 80 7D 08 70 */ lwz r3, 0x870(r29)
/* 8012DA54 0012A9B4 80 83 00 80 */ lwz r4, 0x80(r3)
/* 8012DA58 0012A9B8 C0 04 01 D8 */ lfs f0, 0x1d8(r4)
/* 8012DA5C 0012A9BC D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8012DA60 0012A9C0 C0 04 01 DC */ lfs f0, 0x1dc(r4)
/* 8012DA64 0012A9C4 D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8012DA68 0012A9C8 C0 04 01 E0 */ lfs f0, 0x1e0(r4)
/* 8012DA6C 0012A9CC D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8012DA70 0012A9D0 80 1F 01 EC */ lwz r0, 0x1ec(r31)
/* 8012DA74 0012A9D4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 8012DA78 0012A9D8 41 82 00 30 */ beq lbl_8012DAA8
/* 8012DA7C 0012A9DC 7F A4 EB 78 */ mr r4, r29
/* 8012DA80 0012A9E0 4B ED B9 51 */ bl GetCameraHint__14CCameraManagerCFR13CStateManager
/* 8012DA84 0012A9E4 28 03 00 00 */ cmplwi r3, 0
/* 8012DA88 0012A9E8 41 82 00 20 */ beq lbl_8012DAA8
/* 8012DA8C 0012A9EC C0 43 00 60 */ lfs f2, 0x60(r3)
/* 8012DA90 0012A9F0 C0 23 00 50 */ lfs f1, 0x50(r3)
/* 8012DA94 0012A9F4 C0 03 00 40 */ lfs f0, 0x40(r3)
/* 8012DA98 0012A9F8 D0 21 00 34 */ stfs f1, 0x34(r1)
/* 8012DA9C 0012A9FC D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8012DAA0 0012AA00 D0 41 00 38 */ stfs f2, 0x38(r1)
/* 8012DAA4 0012AA04 D0 41 00 68 */ stfs f2, 0x68(r1)
lbl_8012DAA8:
/* 8012DAA8 0012AA08 C0 3F 00 50 */ lfs f1, 0x50(r31)
/* 8012DAAC 0012AA0C 38 61 00 48 */ addi r3, r1, 0x48
/* 8012DAB0 0012AA10 C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8012DAB4 0012AA14 C0 7F 00 60 */ lfs f3, 0x60(r31)
/* 8012DAB8 0012AA18 C0 41 00 68 */ lfs f2, 0x68(r1)
/* 8012DABC 0012AA1C EC 81 00 28 */ fsubs f4, f1, f0
/* 8012DAC0 0012AA20 C0 3F 00 40 */ lfs f1, 0x40(r31)
/* 8012DAC4 0012AA24 C0 01 00 60 */ lfs f0, 0x60(r1)
/* 8012DAC8 0012AA28 EC 43 10 28 */ fsubs f2, f3, f2
/* 8012DACC 0012AA2C D0 81 00 58 */ stfs f4, 0x58(r1)
/* 8012DAD0 0012AA30 EC 01 00 28 */ fsubs f0, f1, f0
/* 8012DAD4 0012AA34 D0 41 00 5C */ stfs f2, 0x5c(r1)
/* 8012DAD8 0012AA38 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 8012DADC 0012AA3C 80 9D 08 4C */ lwz r4, 0x84c(r29)
/* 8012DAE0 0012AA40 C0 04 01 38 */ lfs f0, 0x138(r4)
/* 8012DAE4 0012AA44 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8012DAE8 0012AA48 C0 04 01 3C */ lfs f0, 0x13c(r4)
/* 8012DAEC 0012AA4C D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 8012DAF0 0012AA50 C0 04 01 40 */ lfs f0, 0x140(r4)
/* 8012DAF4 0012AA54 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 8012DAF8 0012AA58 48 1E 6C 01 */ bl CanBeNormalized__9CVector3fCFv
/* 8012DAFC 0012AA5C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012DB00 0012AA60 40 82 00 D0 */ bne lbl_8012DBD0
/* 8012DB04 0012AA64 38 61 00 54 */ addi r3, r1, 0x54
/* 8012DB08 0012AA68 48 1E 6B F1 */ bl CanBeNormalized__9CVector3fCFv
/* 8012DB0C 0012AA6C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012DB10 0012AA70 41 82 00 C0 */ beq lbl_8012DBD0
/* 8012DB14 0012AA74 80 1F 01 EC */ lwz r0, 0x1ec(r31)
/* 8012DB18 0012AA78 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8012DB1C 0012AA7C 41 82 00 4C */ beq lbl_8012DB68
/* 8012DB20 0012AA80 C0 3F 01 D4 */ lfs f1, 0x1d4(r31)
/* 8012DB24 0012AA84 38 61 00 FC */ addi r3, r1, 0xfc
/* 8012DB28 0012AA88 38 9F 01 88 */ addi r4, r31, 0x188
/* 8012DB2C 0012AA8C 4B F2 DF 55 */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8012DB30 0012AA90 38 7F 00 34 */ addi r3, r31, 0x34
/* 8012DB34 0012AA94 38 81 00 FC */ addi r4, r1, 0xfc
/* 8012DB38 0012AA98 48 1E 50 09 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8012DB3C 0012AA9C 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DB40 0012AAA0 38 60 00 01 */ li r3, 1
/* 8012DB44 0012AAA4 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8012DB48 0012AAA8 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DB4C 0012AAAC 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DB50 0012AAB0 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8012DB54 0012AAB4 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DB58 0012AAB8 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DB5C 0012AABC 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8012DB60 0012AAC0 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DB64 0012AAC4 48 00 01 B4 */ b lbl_8012DD18
lbl_8012DB68:
/* 8012DB68 0012AAC8 C0 5F 00 60 */ lfs f2, 0x60(r31)
/* 8012DB6C 0012AACC 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 8012DB70 0012AAD0 C0 3F 00 50 */ lfs f1, 0x50(r31)
/* 8012DB74 0012AAD4 38 C3 66 F4 */ addi r6, r3, sUpVector__9CVector3f@l
/* 8012DB78 0012AAD8 C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8012DB7C 0012AADC 38 61 00 CC */ addi r3, r1, 0xcc
/* 8012DB80 0012AAE0 38 81 00 24 */ addi r4, r1, 0x24
/* 8012DB84 0012AAE4 38 A1 00 60 */ addi r5, r1, 0x60
/* 8012DB88 0012AAE8 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8012DB8C 0012AAEC D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8012DB90 0012AAF0 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 8012DB94 0012AAF4 48 1E 5F 7D */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 8012DB98 0012AAF8 38 7F 00 34 */ addi r3, r31, 0x34
/* 8012DB9C 0012AAFC 38 81 00 CC */ addi r4, r1, 0xcc
/* 8012DBA0 0012AB00 48 1E 4F A1 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8012DBA4 0012AB04 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DBA8 0012AB08 38 60 00 01 */ li r3, 1
/* 8012DBAC 0012AB0C 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8012DBB0 0012AB10 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DBB4 0012AB14 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DBB8 0012AB18 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8012DBBC 0012AB1C 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DBC0 0012AB20 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DBC4 0012AB24 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8012DBC8 0012AB28 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DBCC 0012AB2C 48 00 01 4C */ b lbl_8012DD18
lbl_8012DBD0:
/* 8012DBD0 0012AB30 FC 20 F8 90 */ fmr f1, f31
/* 8012DBD4 0012AB34 7F E4 FB 78 */ mr r4, r31
/* 8012DBD8 0012AB38 7F A5 EB 78 */ mr r5, r29
/* 8012DBDC 0012AB3C 38 61 00 9C */ addi r3, r1, 0x9c
/* 8012DBE0 0012AB40 48 00 02 51 */ bl MoveAlongSpline__11CPathCameraFfR13CStateManager
/* 8012DBE4 0012AB44 38 61 01 2C */ addi r3, r1, 0x12c
/* 8012DBE8 0012AB48 38 81 00 9C */ addi r4, r1, 0x9c
/* 8012DBEC 0012AB4C 48 1E 4F 55 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8012DBF0 0012AB50 C0 41 01 38 */ lfs f2, 0x138(r1)
/* 8012DBF4 0012AB54 7F E3 FB 78 */ mr r3, r31
/* 8012DBF8 0012AB58 C0 21 01 48 */ lfs f1, 0x148(r1)
/* 8012DBFC 0012AB5C 38 81 00 18 */ addi r4, r1, 0x18
/* 8012DC00 0012AB60 C0 01 01 58 */ lfs f0, 0x158(r1)
/* 8012DC04 0012AB64 D0 41 00 18 */ stfs f2, 0x18(r1)
/* 8012DC08 0012AB68 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 8012DC0C 0012AB6C D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8012DC10 0012AB70 4B F2 52 7D */ bl SetTranslation__6CActorFRC9CVector3f
/* 8012DC14 0012AB74 80 1F 01 EC */ lwz r0, 0x1ec(r31)
/* 8012DC18 0012AB78 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 8012DC1C 0012AB7C 41 82 00 10 */ beq lbl_8012DC2C
/* 8012DC20 0012AB80 7F E3 FB 78 */ mr r3, r31
/* 8012DC24 0012AB84 7F A4 EB 78 */ mr r4, r29
/* 8012DC28 0012AB88 48 00 01 15 */ bl ClampToClosedDoor__11CPathCameraFR13CStateManager
lbl_8012DC2C:
/* 8012DC2C 0012AB8C C0 21 00 68 */ lfs f1, 0x68(r1)
/* 8012DC30 0012AB90 38 61 00 3C */ addi r3, r1, 0x3c
/* 8012DC34 0012AB94 C0 1F 00 60 */ lfs f0, 0x60(r31)
/* 8012DC38 0012AB98 C0 61 00 64 */ lfs f3, 0x64(r1)
/* 8012DC3C 0012AB9C C0 5F 00 50 */ lfs f2, 0x50(r31)
/* 8012DC40 0012ABA0 EC 81 00 28 */ fsubs f4, f1, f0
/* 8012DC44 0012ABA4 C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8012DC48 0012ABA8 C0 21 00 60 */ lfs f1, 0x60(r1)
/* 8012DC4C 0012ABAC EC 43 10 28 */ fsubs f2, f3, f2
/* 8012DC50 0012ABB0 D0 81 00 44 */ stfs f4, 0x44(r1)
/* 8012DC54 0012ABB4 EC 21 00 28 */ fsubs f1, f1, f0
/* 8012DC58 0012ABB8 C0 02 98 A8 */ lfs f0, lbl_805AB5C8@sda21(r2)
/* 8012DC5C 0012ABBC D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8012DC60 0012ABC0 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 8012DC64 0012ABC4 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8012DC68 0012ABC8 48 1E 6A 91 */ bl CanBeNormalized__9CVector3fCFv
/* 8012DC6C 0012ABCC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012DC70 0012ABD0 41 82 00 68 */ beq lbl_8012DCD8
/* 8012DC74 0012ABD4 C0 5F 00 60 */ lfs f2, 0x60(r31)
/* 8012DC78 0012ABD8 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 8012DC7C 0012ABDC C0 3F 00 50 */ lfs f1, 0x50(r31)
/* 8012DC80 0012ABE0 38 C3 66 F4 */ addi r6, r3, sUpVector__9CVector3f@l
/* 8012DC84 0012ABE4 C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8012DC88 0012ABE8 38 61 00 6C */ addi r3, r1, 0x6c
/* 8012DC8C 0012ABEC 38 81 00 0C */ addi r4, r1, 0xc
/* 8012DC90 0012ABF0 38 A1 00 60 */ addi r5, r1, 0x60
/* 8012DC94 0012ABF4 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8012DC98 0012ABF8 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8012DC9C 0012ABFC D0 41 00 14 */ stfs f2, 0x14(r1)
/* 8012DCA0 0012AC00 48 1E 5E 71 */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 8012DCA4 0012AC04 38 7F 00 34 */ addi r3, r31, 0x34
/* 8012DCA8 0012AC08 38 81 00 6C */ addi r4, r1, 0x6c
/* 8012DCAC 0012AC0C 48 1E 4E 95 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8012DCB0 0012AC10 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DCB4 0012AC14 38 60 00 01 */ li r3, 1
/* 8012DCB8 0012AC18 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8012DCBC 0012AC1C 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DCC0 0012AC20 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DCC4 0012AC24 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8012DCC8 0012AC28 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DCCC 0012AC2C 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DCD0 0012AC30 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8012DCD4 0012AC34 98 1F 00 E4 */ stb r0, 0xe4(r31)
lbl_8012DCD8:
/* 8012DCD8 0012AC38 80 1F 01 EC */ lwz r0, 0x1ec(r31)
/* 8012DCDC 0012AC3C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8012DCE0 0012AC40 41 82 00 38 */ beq lbl_8012DD18
/* 8012DCE4 0012AC44 38 7F 00 34 */ addi r3, r31, 0x34
/* 8012DCE8 0012AC48 38 81 01 2C */ addi r4, r1, 0x12c
/* 8012DCEC 0012AC4C 48 1E 4E 55 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8012DCF0 0012AC50 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DCF4 0012AC54 38 60 00 01 */ li r3, 1
/* 8012DCF8 0012AC58 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8012DCFC 0012AC5C 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DD00 0012AC60 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DD04 0012AC64 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8012DD08 0012AC68 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8012DD0C 0012AC6C 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8012DD10 0012AC70 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8012DD14 0012AC74 98 1F 00 E4 */ stb r0, 0xe4(r31)
lbl_8012DD18:
/* 8012DD18 0012AC78 E3 E1 01 78 */ psq_l f31, 376(r1), 0, qr0
/* 8012DD1C 0012AC7C 80 01 01 84 */ lwz r0, 0x184(r1)
/* 8012DD20 0012AC80 CB E1 01 70 */ lfd f31, 0x170(r1)
/* 8012DD24 0012AC84 83 E1 01 6C */ lwz r31, 0x16c(r1)
/* 8012DD28 0012AC88 83 C1 01 68 */ lwz r30, 0x168(r1)
/* 8012DD2C 0012AC8C 83 A1 01 64 */ lwz r29, 0x164(r1)
/* 8012DD30 0012AC90 7C 08 03 A6 */ mtlr r0
/* 8012DD34 0012AC94 38 21 01 80 */ addi r1, r1, 0x180
/* 8012DD38 0012AC98 4E 80 00 20 */ blr
.global ClampToClosedDoor__11CPathCameraFR13CStateManager
ClampToClosedDoor__11CPathCameraFR13CStateManager:
/* 8012DD3C 0012AC9C 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8012DD40 0012ACA0 7C 08 02 A6 */ mflr r0
/* 8012DD44 0012ACA4 90 01 00 74 */ stw r0, 0x74(r1)
/* 8012DD48 0012ACA8 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 8012DD4C 0012ACAC 7C 9F 23 78 */ mr r31, r4
/* 8012DD50 0012ACB0 93 C1 00 68 */ stw r30, 0x68(r1)
/* 8012DD54 0012ACB4 7C 7E 1B 78 */ mr r30, r3
/* 8012DD58 0012ACB8 7F E3 FB 78 */ mr r3, r31
/* 8012DD5C 0012ACBC 80 A4 08 70 */ lwz r5, 0x870(r4)
/* 8012DD60 0012ACC0 38 81 00 0C */ addi r4, r1, 0xc
/* 8012DD64 0012ACC4 80 A5 00 80 */ lwz r5, 0x80(r5)
/* 8012DD68 0012ACC8 A0 05 03 DC */ lhz r0, 0x3dc(r5)
/* 8012DD6C 0012ACCC B0 01 00 08 */ sth r0, 8(r1)
/* 8012DD70 0012ACD0 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8012DD74 0012ACD4 4B F1 E8 31 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8012DD78 0012ACD8 7C 64 1B 78 */ mr r4, r3
/* 8012DD7C 0012ACDC 38 61 00 10 */ addi r3, r1, 0x10
/* 8012DD80 0012ACE0 4B F7 C3 71 */ bl "__ct__25TCastToPtr<11CScriptDoor>FP7CEntity"
/* 8012DD84 0012ACE4 80 63 00 04 */ lwz r3, 4(r3)
/* 8012DD88 0012ACE8 28 03 00 00 */ cmplwi r3, 0
/* 8012DD8C 0012ACEC 41 82 00 8C */ beq lbl_8012DE18
/* 8012DD90 0012ACF0 88 03 02 A8 */ lbz r0, 0x2a8(r3)
/* 8012DD94 0012ACF4 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 8012DD98 0012ACF8 40 82 00 80 */ bne lbl_8012DE18
/* 8012DD9C 0012ACFC C0 5E 00 60 */ lfs f2, 0x60(r30)
/* 8012DDA0 0012AD00 7F E4 FB 78 */ mr r4, r31
/* 8012DDA4 0012AD04 C0 3E 00 50 */ lfs f1, 0x50(r30)
/* 8012DDA8 0012AD08 38 61 00 18 */ addi r3, r1, 0x18
/* 8012DDAC 0012AD0C C0 1E 00 40 */ lfs f0, 0x40(r30)
/* 8012DDB0 0012AD10 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8012DDB4 0012AD14 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 8012DDB8 0012AD18 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 8012DDBC 0012AD1C 4B F5 53 81 */ bl IsBallNearDoor__11CBallCameraCFRC9CVector3fR13CStateManager
/* 8012DDC0 0012AD20 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012DDC4 0012AD24 41 82 00 54 */ beq lbl_8012DE18
/* 8012DDC8 0012AD28 C0 5E 01 D8 */ lfs f2, 0x1d8(r30)
/* 8012DDCC 0012AD2C C0 7E 01 DC */ lfs f3, 0x1dc(r30)
/* 8012DDD0 0012AD30 C0 1E 01 D4 */ lfs f0, 0x1d4(r30)
/* 8012DDD4 0012AD34 EC 22 18 2A */ fadds f1, f2, f3
/* 8012DDD8 0012AD38 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 8012DDDC 0012AD3C 40 81 00 08 */ ble lbl_8012DDE4
/* 8012DDE0 0012AD40 EC 22 18 28 */ fsubs f1, f2, f3
lbl_8012DDE4:
/* 8012DDE4 0012AD44 D0 3E 01 D4 */ stfs f1, 0x1d4(r30)
/* 8012DDE8 0012AD48 38 61 00 30 */ addi r3, r1, 0x30
/* 8012DDEC 0012AD4C 38 9E 01 88 */ addi r4, r30, 0x188
/* 8012DDF0 0012AD50 4B F2 DC 91 */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8012DDF4 0012AD54 C0 41 00 5C */ lfs f2, 0x5c(r1)
/* 8012DDF8 0012AD58 7F C3 F3 78 */ mr r3, r30
/* 8012DDFC 0012AD5C C0 21 00 4C */ lfs f1, 0x4c(r1)
/* 8012DE00 0012AD60 38 81 00 24 */ addi r4, r1, 0x24
/* 8012DE04 0012AD64 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8012DE08 0012AD68 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8012DE0C 0012AD6C D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8012DE10 0012AD70 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 8012DE14 0012AD74 4B F2 50 79 */ bl SetTranslation__6CActorFRC9CVector3f
lbl_8012DE18:
/* 8012DE18 0012AD78 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8012DE1C 0012AD7C 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 8012DE20 0012AD80 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 8012DE24 0012AD84 7C 08 03 A6 */ mtlr r0
/* 8012DE28 0012AD88 38 21 00 70 */ addi r1, r1, 0x70
/* 8012DE2C 0012AD8C 4E 80 00 20 */ blr
.global MoveAlongSpline__11CPathCameraFfR13CStateManager
MoveAlongSpline__11CPathCameraFfR13CStateManager:
/* 8012DE30 0012AD90 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 8012DE34 0012AD94 7C 08 02 A6 */ mflr r0
/* 8012DE38 0012AD98 90 01 01 44 */ stw r0, 0x144(r1)
/* 8012DE3C 0012AD9C DB E1 01 30 */ stfd f31, 0x130(r1)
/* 8012DE40 0012ADA0 F3 E1 01 38 */ psq_st f31, 312(r1), 0, qr0
/* 8012DE44 0012ADA4 DB C1 01 20 */ stfd f30, 0x120(r1)
/* 8012DE48 0012ADA8 F3 C1 01 28 */ psq_st f30, 296(r1), 0, qr0
/* 8012DE4C 0012ADAC DB A1 01 10 */ stfd f29, 0x110(r1)
/* 8012DE50 0012ADB0 F3 A1 01 18 */ psq_st f29, 280(r1), 0, qr0
/* 8012DE54 0012ADB4 DB 81 01 00 */ stfd f28, 0x100(r1)
/* 8012DE58 0012ADB8 F3 81 01 08 */ psq_st f28, 264(r1), 0, qr0
/* 8012DE5C 0012ADBC 93 E1 00 FC */ stw r31, 0xfc(r1)
/* 8012DE60 0012ADC0 93 C1 00 F8 */ stw r30, 0xf8(r1)
/* 8012DE64 0012ADC4 93 A1 00 F4 */ stw r29, 0xf4(r1)
/* 8012DE68 0012ADC8 FF A0 08 90 */ fmr f29, f1
/* 8012DE6C 0012ADCC 7C 9E 23 78 */ mr r30, r4
/* 8012DE70 0012ADD0 7C 7D 1B 78 */ mr r29, r3
/* 8012DE74 0012ADD4 7C BF 2B 78 */ mr r31, r5
/* 8012DE78 0012ADD8 38 61 00 C0 */ addi r3, r1, 0xc0
/* 8012DE7C 0012ADDC 38 9E 00 34 */ addi r4, r30, 0x34
/* 8012DE80 0012ADE0 48 1E 4C F5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8012DE84 0012ADE4 80 BF 08 4C */ lwz r5, 0x84c(r31)
/* 8012DE88 0012ADE8 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012DE8C 0012ADEC 38 81 00 0C */ addi r4, r1, 0xc
/* 8012DE90 0012ADF0 C0 45 00 60 */ lfs f2, 0x60(r5)
/* 8012DE94 0012ADF4 C0 25 00 50 */ lfs f1, 0x50(r5)
/* 8012DE98 0012ADF8 C0 05 00 40 */ lfs f0, 0x40(r5)
/* 8012DE9C 0012ADFC D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8012DEA0 0012AE00 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8012DEA4 0012AE04 80 A1 00 28 */ lwz r5, 0x28(r1)
/* 8012DEA8 0012AE08 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 8012DEAC 0012AE0C 80 C1 00 24 */ lwz r6, 0x24(r1)
/* 8012DEB0 0012AE10 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8012DEB4 0012AE14 90 C1 00 0C */ stw r6, 0xc(r1)
/* 8012DEB8 0012AE18 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8012DEBC 0012AE1C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8012DEC0 0012AE20 C0 3E 01 D8 */ lfs f1, 0x1d8(r30)
/* 8012DEC4 0012AE24 4B F2 D5 0D */ bl FindClosestLengthOnSpline__13CCameraSplineCFf9CVector3f
/* 8012DEC8 0012AE28 FF E0 08 90 */ fmr f31, f1
/* 8012DECC 0012AE2C D3 FE 01 D8 */ stfs f31, 0x1d8(r30)
/* 8012DED0 0012AE30 80 1E 01 EC */ lwz r0, 0x1ec(r30)
/* 8012DED4 0012AE34 C3 DE 01 DC */ lfs f30, 0x1dc(r30)
/* 8012DED8 0012AE38 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 8012DEDC 0012AE3C 41 82 00 E0 */ beq lbl_8012DFBC
/* 8012DEE0 0012AE40 C3 82 98 A8 */ lfs f28, lbl_805AB5C8@sda21(r2)
/* 8012DEE4 0012AE44 38 61 00 90 */ addi r3, r1, 0x90
/* 8012DEE8 0012AE48 38 9E 01 88 */ addi r4, r30, 0x188
/* 8012DEEC 0012AE4C 4B F2 DB 95 */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8012DEF0 0012AE50 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8012DEF4 0012AE54 38 61 00 18 */ addi r3, r1, 0x18
/* 8012DEF8 0012AE58 C0 01 00 BC */ lfs f0, 0xbc(r1)
/* 8012DEFC 0012AE5C C0 61 00 28 */ lfs f3, 0x28(r1)
/* 8012DF00 0012AE60 EC 81 00 28 */ fsubs f4, f1, f0
/* 8012DF04 0012AE64 C0 41 00 AC */ lfs f2, 0xac(r1)
/* 8012DF08 0012AE68 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 8012DF0C 0012AE6C C0 01 00 9C */ lfs f0, 0x9c(r1)
/* 8012DF10 0012AE70 EC 43 10 28 */ fsubs f2, f3, f2
/* 8012DF14 0012AE74 D0 81 00 20 */ stfs f4, 0x20(r1)
/* 8012DF18 0012AE78 EC 21 00 28 */ fsubs f1, f1, f0
/* 8012DF1C 0012AE7C C0 02 98 A8 */ lfs f0, lbl_805AB5C8@sda21(r2)
/* 8012DF20 0012AE80 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 8012DF24 0012AE84 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 8012DF28 0012AE88 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8012DF2C 0012AE8C 48 1E 67 CD */ bl CanBeNormalized__9CVector3fCFv
/* 8012DF30 0012AE90 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012DF34 0012AE94 41 82 00 10 */ beq lbl_8012DF44
/* 8012DF38 0012AE98 38 61 00 18 */ addi r3, r1, 0x18
/* 8012DF3C 0012AE9C 48 1E 69 7D */ bl Magnitude__9CVector3fCFv
/* 8012DF40 0012AEA0 FF 80 08 90 */ fmr f28, f1
lbl_8012DF44:
/* 8012DF44 0012AEA4 C0 5E 01 F0 */ lfs f2, 0x1f0(r30)
/* 8012DF48 0012AEA8 38 81 00 08 */ addi r4, r1, 8
/* 8012DF4C 0012AEAC C0 1E 01 F4 */ lfs f0, 0x1f4(r30)
/* 8012DF50 0012AEB0 38 6D 8A FC */ addi r3, r13, lbl_805A76BC@sda21
/* 8012DF54 0012AEB4 EC 3C 10 28 */ fsubs f1, f28, f2
/* 8012DF58 0012AEB8 38 AD 8B 00 */ addi r5, r13, lbl_805A76C0@sda21
/* 8012DF5C 0012AEBC EC 00 10 28 */ fsubs f0, f0, f2
/* 8012DF60 0012AEC0 EC 01 00 24 */ fdivs f0, f1, f0
/* 8012DF64 0012AEC4 D0 01 00 08 */ stfs f0, 8(r1)
/* 8012DF68 0012AEC8 4B ED E3 4D */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8012DF6C 0012AECC C0 43 00 00 */ lfs f2, 0(r3)
/* 8012DF70 0012AED0 C0 02 98 B0 */ lfs f0, lbl_805AB5D0@sda21(r2)
/* 8012DF74 0012AED4 C0 22 98 AC */ lfs f1, lbl_805AB5CC@sda21(r2)
/* 8012DF78 0012AED8 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8012DF7C 0012AEDC EC 21 00 32 */ fmuls f1, f1, f0
/* 8012DF80 0012AEE0 48 26 6B 5D */ bl sin
/* 8012DF84 0012AEE4 FC 20 08 18 */ frsp f1, f1
/* 8012DF88 0012AEE8 C8 02 98 B8 */ lfd f0, lbl_805AB5D8@sda21(r2)
/* 8012DF8C 0012AEEC FC 20 0A 10 */ fabs f1, f1
/* 8012DF90 0012AEF0 FC 40 08 18 */ frsp f2, f1
/* 8012DF94 0012AEF4 FC 20 12 10 */ fabs f1, f2
/* 8012DF98 0012AEF8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012DF9C 0012AEFC 40 81 00 14 */ ble lbl_8012DFB0
/* 8012DFA0 0012AF00 C0 02 98 C0 */ lfs f0, lbl_805AB5E0@sda21(r2)
/* 8012DFA4 0012AF04 C0 22 98 C4 */ lfs f1, lbl_805AB5E4@sda21(r2)
/* 8012DFA8 0012AF08 FC 02 00 6E */ fsel f0, f2, f1, f0
/* 8012DFAC 0012AF0C EC 41 00 32 */ fmuls f2, f1, f0
lbl_8012DFB0:
/* 8012DFB0 0012AF10 C0 02 98 C4 */ lfs f0, lbl_805AB5E4@sda21(r2)
/* 8012DFB4 0012AF14 EC 00 10 28 */ fsubs f0, f0, f2
/* 8012DFB8 0012AF18 EF DE 00 32 */ fmuls f30, f30, f0
lbl_8012DFBC:
/* 8012DFBC 0012AF1C 88 1E 01 D0 */ lbz r0, 0x1d0(r30)
/* 8012DFC0 0012AF20 28 00 00 00 */ cmplwi r0, 0
/* 8012DFC4 0012AF24 41 82 00 74 */ beq lbl_8012E038
/* 8012DFC8 0012AF28 EC 3F F0 2A */ fadds f1, f31, f30
/* 8012DFCC 0012AF2C 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012DFD0 0012AF30 4B F2 E2 59 */ bl ValidateLength__13CCameraSplineCFf
/* 8012DFD4 0012AF34 FC 00 08 90 */ fmr f0, f1
/* 8012DFD8 0012AF38 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012DFDC 0012AF3C EC 3F F0 28 */ fsubs f1, f31, f30
/* 8012DFE0 0012AF40 FF 80 00 90 */ fmr f28, f0
/* 8012DFE4 0012AF44 4B F2 E2 45 */ bl ValidateLength__13CCameraSplineCFf
/* 8012DFE8 0012AF48 C0 7E 01 D4 */ lfs f3, 0x1d4(r30)
/* 8012DFEC 0012AF4C C0 1E 01 CC */ lfs f0, 0x1cc(r30)
/* 8012DFF0 0012AF50 EC 43 F8 28 */ fsubs f2, f3, f31
/* 8012DFF4 0012AF54 FC 03 F8 40 */ fcmpo cr0, f3, f31
/* 8012DFF8 0012AF58 FC 40 12 10 */ fabs f2, f2
/* 8012DFFC 0012AF5C FC 40 10 18 */ frsp f2, f2
/* 8012E000 0012AF60 EC 00 10 28 */ fsubs f0, f0, f2
/* 8012E004 0012AF64 40 81 00 1C */ ble lbl_8012E020
/* 8012E008 0012AF68 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8012E00C 0012AF6C 4C 40 13 82 */ cror 2, 0, 2
/* 8012E010 0012AF70 40 82 00 50 */ bne lbl_8012E060
/* 8012E014 0012AF74 FC 20 E0 90 */ fmr f1, f28
/* 8012E018 0012AF78 48 00 00 48 */ b lbl_8012E060
/* 8012E01C 0012AF7C 48 00 00 44 */ b lbl_8012E060
lbl_8012E020:
/* 8012E020 0012AF80 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8012E024 0012AF84 4C 40 13 82 */ cror 2, 0, 2
/* 8012E028 0012AF88 40 82 00 08 */ bne lbl_8012E030
/* 8012E02C 0012AF8C 48 00 00 34 */ b lbl_8012E060
lbl_8012E030:
/* 8012E030 0012AF90 FC 20 E0 90 */ fmr f1, f28
/* 8012E034 0012AF94 48 00 00 2C */ b lbl_8012E060
lbl_8012E038:
/* 8012E038 0012AF98 C0 1E 01 D4 */ lfs f0, 0x1d4(r30)
/* 8012E03C 0012AF9C FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 8012E040 0012AFA0 40 81 00 14 */ ble lbl_8012E054
/* 8012E044 0012AFA4 EC 3F F0 2A */ fadds f1, f31, f30
/* 8012E048 0012AFA8 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012E04C 0012AFAC 4B F2 E1 DD */ bl ValidateLength__13CCameraSplineCFf
/* 8012E050 0012AFB0 48 00 00 10 */ b lbl_8012E060
lbl_8012E054:
/* 8012E054 0012AFB4 EC 3F F0 28 */ fsubs f1, f31, f30
/* 8012E058 0012AFB8 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012E05C 0012AFBC 4B F2 E1 CD */ bl ValidateLength__13CCameraSplineCFf
lbl_8012E060:
/* 8012E060 0012AFC0 80 1E 01 EC */ lwz r0, 0x1ec(r30)
/* 8012E064 0012AFC4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8012E068 0012AFC8 41 82 00 28 */ beq lbl_8012E090
/* 8012E06C 0012AFCC D0 3E 01 D4 */ stfs f1, 0x1d4(r30)
/* 8012E070 0012AFD0 38 61 00 60 */ addi r3, r1, 0x60
/* 8012E074 0012AFD4 38 9E 01 88 */ addi r4, r30, 0x188
/* 8012E078 0012AFD8 C0 3E 01 D4 */ lfs f1, 0x1d4(r30)
/* 8012E07C 0012AFDC 4B F2 DA 05 */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8012E080 0012AFE0 38 61 00 C0 */ addi r3, r1, 0xc0
/* 8012E084 0012AFE4 38 81 00 60 */ addi r4, r1, 0x60
/* 8012E088 0012AFE8 48 1E 4A B9 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8012E08C 0012AFEC 48 00 01 34 */ b lbl_8012E1C0
lbl_8012E090:
/* 8012E090 0012AFF0 88 1E 01 D0 */ lbz r0, 0x1d0(r30)
/* 8012E094 0012AFF4 28 00 00 00 */ cmplwi r0, 0
/* 8012E098 0012AFF8 41 82 00 BC */ beq lbl_8012E154
/* 8012E09C 0012AFFC C0 5E 01 D4 */ lfs f2, 0x1d4(r30)
/* 8012E0A0 0012B000 C0 1E 01 CC */ lfs f0, 0x1cc(r30)
/* 8012E0A4 0012B004 EC 41 10 28 */ fsubs f2, f1, f2
/* 8012E0A8 0012B008 FC 40 12 10 */ fabs f2, f2
/* 8012E0AC 0012B00C FC 40 10 18 */ frsp f2, f2
/* 8012E0B0 0012B010 EC 00 10 28 */ fsubs f0, f0, f2
/* 8012E0B4 0012B014 FC 60 10 90 */ fmr f3, f2
/* 8012E0B8 0012B018 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8012E0BC 0012B01C 40 81 00 08 */ ble lbl_8012E0C4
/* 8012E0C0 0012B020 FC 60 00 90 */ fmr f3, f0
lbl_8012E0C4:
/* 8012E0C4 0012B024 C0 5E 01 E4 */ lfs f2, 0x1e4(r30)
/* 8012E0C8 0012B028 C8 02 98 B8 */ lfd f0, lbl_805AB5D8@sda21(r2)
/* 8012E0CC 0012B02C EC A3 10 24 */ fdivs f5, f3, f2
/* 8012E0D0 0012B030 FC 40 2A 10 */ fabs f2, f5
/* 8012E0D4 0012B034 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8012E0D8 0012B038 40 81 00 14 */ ble lbl_8012E0EC
/* 8012E0DC 0012B03C C0 02 98 C0 */ lfs f0, lbl_805AB5E0@sda21(r2)
/* 8012E0E0 0012B040 C0 42 98 C4 */ lfs f2, lbl_805AB5E4@sda21(r2)
/* 8012E0E4 0012B044 FC 05 00 AE */ fsel f0, f5, f2, f0
/* 8012E0E8 0012B048 EC A2 00 32 */ fmuls f5, f2, f0
lbl_8012E0EC:
/* 8012E0EC 0012B04C C0 7E 01 D4 */ lfs f3, 0x1d4(r30)
/* 8012E0F0 0012B050 C0 9E 01 E0 */ lfs f4, 0x1e0(r30)
/* 8012E0F4 0012B054 EC 43 08 28 */ fsubs f2, f3, f1
/* 8012E0F8 0012B058 C0 1E 01 CC */ lfs f0, 0x1cc(r30)
/* 8012E0FC 0012B05C EC 84 07 72 */ fmuls f4, f4, f29
/* 8012E100 0012B060 FC 03 08 40 */ fcmpo cr0, f3, f1
/* 8012E104 0012B064 FC 20 12 10 */ fabs f1, f2
/* 8012E108 0012B068 EC 45 01 32 */ fmuls f2, f5, f4
/* 8012E10C 0012B06C FC 20 08 18 */ frsp f1, f1
/* 8012E110 0012B070 EC 00 08 28 */ fsubs f0, f0, f1
/* 8012E114 0012B074 40 81 00 1C */ ble lbl_8012E130
/* 8012E118 0012B078 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012E11C 0012B07C 4C 40 13 82 */ cror 2, 0, 2
/* 8012E120 0012B080 40 82 00 20 */ bne lbl_8012E140
/* 8012E124 0012B084 C0 02 98 C0 */ lfs f0, lbl_805AB5E0@sda21(r2)
/* 8012E128 0012B088 EC 42 00 32 */ fmuls f2, f2, f0
/* 8012E12C 0012B08C 48 00 00 14 */ b lbl_8012E140
lbl_8012E130:
/* 8012E130 0012B090 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012E134 0012B094 40 81 00 0C */ ble lbl_8012E140
/* 8012E138 0012B098 C0 02 98 C0 */ lfs f0, lbl_805AB5E0@sda21(r2)
/* 8012E13C 0012B09C EC 42 00 32 */ fmuls f2, f2, f0
lbl_8012E140:
/* 8012E140 0012B0A0 EC 23 10 2A */ fadds f1, f3, f2
/* 8012E144 0012B0A4 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012E148 0012B0A8 4B F2 E0 E1 */ bl ValidateLength__13CCameraSplineCFf
/* 8012E14C 0012B0AC D0 3E 01 D4 */ stfs f1, 0x1d4(r30)
/* 8012E150 0012B0B0 48 00 00 54 */ b lbl_8012E1A4
lbl_8012E154:
/* 8012E154 0012B0B4 C0 1E 01 D4 */ lfs f0, 0x1d4(r30)
/* 8012E158 0012B0B8 C0 5E 01 E4 */ lfs f2, 0x1e4(r30)
/* 8012E15C 0012B0BC EC 21 00 28 */ fsubs f1, f1, f0
/* 8012E160 0012B0C0 C8 02 98 B8 */ lfd f0, lbl_805AB5D8@sda21(r2)
/* 8012E164 0012B0C4 EC 41 10 24 */ fdivs f2, f1, f2
/* 8012E168 0012B0C8 FC 20 12 10 */ fabs f1, f2
/* 8012E16C 0012B0CC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012E170 0012B0D0 40 81 00 14 */ ble lbl_8012E184
/* 8012E174 0012B0D4 C0 02 98 C0 */ lfs f0, lbl_805AB5E0@sda21(r2)
/* 8012E178 0012B0D8 C0 22 98 C4 */ lfs f1, lbl_805AB5E4@sda21(r2)
/* 8012E17C 0012B0DC FC 02 00 6E */ fsel f0, f2, f1, f0
/* 8012E180 0012B0E0 EC 41 00 32 */ fmuls f2, f1, f0
lbl_8012E184:
/* 8012E184 0012B0E4 C0 1E 01 E0 */ lfs f0, 0x1e0(r30)
/* 8012E188 0012B0E8 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012E18C 0012B0EC C0 3E 01 D4 */ lfs f1, 0x1d4(r30)
/* 8012E190 0012B0F0 EC 00 07 72 */ fmuls f0, f0, f29
/* 8012E194 0012B0F4 EC 02 00 32 */ fmuls f0, f2, f0
/* 8012E198 0012B0F8 EC 21 00 2A */ fadds f1, f1, f0
/* 8012E19C 0012B0FC 4B F2 E0 8D */ bl ValidateLength__13CCameraSplineCFf
/* 8012E1A0 0012B100 D0 3E 01 D4 */ stfs f1, 0x1d4(r30)
lbl_8012E1A4:
/* 8012E1A4 0012B104 C0 3E 01 D4 */ lfs f1, 0x1d4(r30)
/* 8012E1A8 0012B108 38 61 00 30 */ addi r3, r1, 0x30
/* 8012E1AC 0012B10C 38 9E 01 88 */ addi r4, r30, 0x188
/* 8012E1B0 0012B110 4B F2 D8 D1 */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8012E1B4 0012B114 38 61 00 C0 */ addi r3, r1, 0xc0
/* 8012E1B8 0012B118 38 81 00 30 */ addi r4, r1, 0x30
/* 8012E1BC 0012B11C 48 1E 49 85 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8012E1C0:
/* 8012E1C0 0012B120 7F A3 EB 78 */ mr r3, r29
/* 8012E1C4 0012B124 38 81 00 C0 */ addi r4, r1, 0xc0
/* 8012E1C8 0012B128 48 1E 49 AD */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8012E1CC 0012B12C E3 E1 01 38 */ psq_l f31, 312(r1), 0, qr0
/* 8012E1D0 0012B130 CB E1 01 30 */ lfd f31, 0x130(r1)
/* 8012E1D4 0012B134 E3 C1 01 28 */ psq_l f30, 296(r1), 0, qr0
/* 8012E1D8 0012B138 CB C1 01 20 */ lfd f30, 0x120(r1)
/* 8012E1DC 0012B13C E3 A1 01 18 */ psq_l f29, 280(r1), 0, qr0
/* 8012E1E0 0012B140 CB A1 01 10 */ lfd f29, 0x110(r1)
/* 8012E1E4 0012B144 E3 81 01 08 */ psq_l f28, 264(r1), 0, qr0
/* 8012E1E8 0012B148 CB 81 01 00 */ lfd f28, 0x100(r1)
/* 8012E1EC 0012B14C 83 E1 00 FC */ lwz r31, 0xfc(r1)
/* 8012E1F0 0012B150 83 C1 00 F8 */ lwz r30, 0xf8(r1)
/* 8012E1F4 0012B154 80 01 01 44 */ lwz r0, 0x144(r1)
/* 8012E1F8 0012B158 83 A1 00 F4 */ lwz r29, 0xf4(r1)
/* 8012E1FC 0012B15C 7C 08 03 A6 */ mtlr r0
/* 8012E200 0012B160 38 21 01 40 */ addi r1, r1, 0x140
/* 8012E204 0012B164 4E 80 00 20 */ blr
.global Reset__11CPathCameraFRC12CTransform4fR13CStateManager
Reset__11CPathCameraFRC12CTransform4fR13CStateManager:
/* 8012E208 0012B168 94 21 FD 40 */ stwu r1, -0x2c0(r1)
/* 8012E20C 0012B16C 7C 08 02 A6 */ mflr r0
/* 8012E210 0012B170 90 01 02 C4 */ stw r0, 0x2c4(r1)
/* 8012E214 0012B174 DB E1 02 B0 */ stfd f31, 0x2b0(r1)
/* 8012E218 0012B178 F3 E1 02 B8 */ psq_st f31, 696(r1), 0, qr0
/* 8012E21C 0012B17C DB C1 02 A0 */ stfd f30, 0x2a0(r1)
/* 8012E220 0012B180 F3 C1 02 A8 */ psq_st f30, 680(r1), 0, qr0
/* 8012E224 0012B184 DB A1 02 90 */ stfd f29, 0x290(r1)
/* 8012E228 0012B188 F3 A1 02 98 */ psq_st f29, 664(r1), 0, qr0
/* 8012E22C 0012B18C DB 81 02 80 */ stfd f28, 0x280(r1)
/* 8012E230 0012B190 F3 81 02 88 */ psq_st f28, 648(r1), 0, qr0
/* 8012E234 0012B194 DB 61 02 70 */ stfd f27, 0x270(r1)
/* 8012E238 0012B198 F3 61 02 78 */ psq_st f27, 632(r1), 0, qr0
/* 8012E23C 0012B19C DB 41 02 60 */ stfd f26, 0x260(r1)
/* 8012E240 0012B1A0 F3 41 02 68 */ psq_st f26, 616(r1), 0, qr0
/* 8012E244 0012B1A4 DB 21 02 50 */ stfd f25, 0x250(r1)
/* 8012E248 0012B1A8 F3 21 02 58 */ psq_st f25, 600(r1), 0, qr0
/* 8012E24C 0012B1AC DB 01 02 40 */ stfd f24, 0x240(r1)
/* 8012E250 0012B1B0 F3 01 02 48 */ psq_st f24, 584(r1), 0, qr0
/* 8012E254 0012B1B4 DA E1 02 30 */ stfd f23, 0x230(r1)
/* 8012E258 0012B1B8 F2 E1 02 38 */ psq_st f23, 568(r1), 0, qr0
/* 8012E25C 0012B1BC 93 E1 02 2C */ stw r31, 0x22c(r1)
/* 8012E260 0012B1C0 93 C1 02 28 */ stw r30, 0x228(r1)
/* 8012E264 0012B1C4 93 A1 02 24 */ stw r29, 0x224(r1)
/* 8012E268 0012B1C8 7C BF 2B 78 */ mr r31, r5
/* 8012E26C 0012B1CC 80 8D A1 18 */ lwz r4, gpTweakPlayer@sda21(r13)
/* 8012E270 0012B1D0 80 A5 08 4C */ lwz r5, 0x84c(r5)
/* 8012E274 0012B1D4 7C 7E 1B 78 */ mr r30, r3
/* 8012E278 0012B1D8 C0 04 02 7C */ lfs f0, 0x27c(r4)
/* 8012E27C 0012B1DC 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012E280 0012B1E0 C0 45 00 60 */ lfs f2, 0x60(r5)
/* 8012E284 0012B1E4 38 81 00 50 */ addi r4, r1, 0x50
/* 8012E288 0012B1E8 C0 25 00 50 */ lfs f1, 0x50(r5)
/* 8012E28C 0012B1EC EC 02 00 2A */ fadds f0, f2, f0
/* 8012E290 0012B1F0 D0 41 00 AC */ stfs f2, 0xac(r1)
/* 8012E294 0012B1F4 C0 45 00 40 */ lfs f2, 0x40(r5)
/* 8012E298 0012B1F8 D0 21 00 A8 */ stfs f1, 0xa8(r1)
/* 8012E29C 0012B1FC C0 22 98 A8 */ lfs f1, lbl_805AB5C8@sda21(r2)
/* 8012E2A0 0012B200 D0 41 00 A4 */ stfs f2, 0xa4(r1)
/* 8012E2A4 0012B204 80 A1 00 A8 */ lwz r5, 0xa8(r1)
/* 8012E2A8 0012B208 D0 01 00 AC */ stfs f0, 0xac(r1)
/* 8012E2AC 0012B20C 80 C1 00 A4 */ lwz r6, 0xa4(r1)
/* 8012E2B0 0012B210 80 01 00 AC */ lwz r0, 0xac(r1)
/* 8012E2B4 0012B214 90 C1 00 50 */ stw r6, 0x50(r1)
/* 8012E2B8 0012B218 90 A1 00 54 */ stw r5, 0x54(r1)
/* 8012E2BC 0012B21C 90 01 00 58 */ stw r0, 0x58(r1)
/* 8012E2C0 0012B220 4B F2 D1 11 */ bl FindClosestLengthOnSpline__13CCameraSplineCFf9CVector3f
/* 8012E2C4 0012B224 FE E0 08 90 */ fmr f23, f1
/* 8012E2C8 0012B228 C0 3E 01 DC */ lfs f1, 0x1dc(r30)
/* 8012E2CC 0012B22C C0 0D 8A F8 */ lfs f0, lbl_805A76B8@sda21(r13)
/* 8012E2D0 0012B230 EC 37 08 28 */ fsubs f1, f23, f1
/* 8012E2D4 0012B234 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8012E2D8 0012B238 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8012E2DC 0012B23C 40 80 00 0C */ bge lbl_8012E2E8
/* 8012E2E0 0012B240 38 61 00 10 */ addi r3, r1, 0x10
/* 8012E2E4 0012B244 48 00 00 08 */ b lbl_8012E2EC
lbl_8012E2E8:
/* 8012E2E8 0012B248 38 6D 8A F8 */ addi r3, r13, lbl_805A76B8@sda21
lbl_8012E2EC:
/* 8012E2EC 0012B24C C3 23 00 00 */ lfs f25, 0(r3)
/* 8012E2F0 0012B250 38 61 01 B8 */ addi r3, r1, 0x1b8
/* 8012E2F4 0012B254 38 9E 01 88 */ addi r4, r30, 0x188
/* 8012E2F8 0012B258 FC 20 C8 90 */ fmr f1, f25
/* 8012E2FC 0012B25C 4B F2 D7 85 */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8012E300 0012B260 C0 3E 01 CC */ lfs f1, 0x1cc(r30)
/* 8012E304 0012B264 C3 A1 01 E4 */ lfs f29, 0x1e4(r1)
/* 8012E308 0012B268 D0 21 00 08 */ stfs f1, 8(r1)
/* 8012E30C 0012B26C C3 C1 01 D4 */ lfs f30, 0x1d4(r1)
/* 8012E310 0012B270 C0 1E 01 DC */ lfs f0, 0x1dc(r30)
/* 8012E314 0012B274 C3 E1 01 C4 */ lfs f31, 0x1c4(r1)
/* 8012E318 0012B278 EC 17 00 2A */ fadds f0, f23, f0
/* 8012E31C 0012B27C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012E320 0012B280 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8012E324 0012B284 40 80 00 0C */ bge lbl_8012E330
/* 8012E328 0012B288 38 61 00 08 */ addi r3, r1, 8
/* 8012E32C 0012B28C 48 00 00 08 */ b lbl_8012E334
lbl_8012E330:
/* 8012E330 0012B290 38 61 00 0C */ addi r3, r1, 0xc
lbl_8012E334:
/* 8012E334 0012B294 C3 03 00 00 */ lfs f24, 0(r3)
/* 8012E338 0012B298 38 61 01 88 */ addi r3, r1, 0x188
/* 8012E33C 0012B29C 38 9E 01 88 */ addi r4, r30, 0x188
/* 8012E340 0012B2A0 FC 20 C0 90 */ fmr f1, f24
/* 8012E344 0012B2A4 4B F2 D7 3D */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8012E348 0012B2A8 80 9F 08 70 */ lwz r4, 0x870(r31)
/* 8012E34C 0012B2AC 38 61 01 E8 */ addi r3, r1, 0x1e8
/* 8012E350 0012B2B0 C3 41 01 B4 */ lfs f26, 0x1b4(r1)
/* 8012E354 0012B2B4 80 84 00 80 */ lwz r4, 0x80(r4)
/* 8012E358 0012B2B8 C3 61 01 A4 */ lfs f27, 0x1a4(r1)
/* 8012E35C 0012B2BC C3 81 01 94 */ lfs f28, 0x194(r1)
/* 8012E360 0012B2C0 38 84 00 34 */ addi r4, r4, 0x34
/* 8012E364 0012B2C4 48 1E 48 11 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8012E368 0012B2C8 80 7F 08 4C */ lwz r3, 0x84c(r31)
/* 8012E36C 0012B2CC 80 03 02 F8 */ lwz r0, 0x2f8(r3)
/* 8012E370 0012B2D0 2C 00 00 01 */ cmpwi r0, 1
/* 8012E374 0012B2D4 41 82 00 20 */ beq lbl_8012E394
/* 8012E378 0012B2D8 80 9F 08 70 */ lwz r4, 0x870(r31)
/* 8012E37C 0012B2DC 7F E5 FB 78 */ mr r5, r31
/* 8012E380 0012B2E0 38 61 01 58 */ addi r3, r1, 0x158
/* 8012E384 0012B2E4 4B ED C5 E5 */ bl GetCurrentCameraTransform__14CCameraManagerCFRC13CStateManager
/* 8012E388 0012B2E8 38 61 01 E8 */ addi r3, r1, 0x1e8
/* 8012E38C 0012B2EC 38 81 01 58 */ addi r4, r1, 0x158
/* 8012E390 0012B2F0 48 1E 47 B1 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8012E394:
/* 8012E394 0012B2F4 C0 41 02 14 */ lfs f2, 0x214(r1)
/* 8012E398 0012B2F8 3B A0 00 00 */ li r29, 0
/* 8012E39C 0012B2FC C0 21 01 F4 */ lfs f1, 0x1f4(r1)
/* 8012E3A0 0012B300 C0 01 02 04 */ lfs f0, 0x204(r1)
/* 8012E3A4 0012B304 D0 21 00 98 */ stfs f1, 0x98(r1)
/* 8012E3A8 0012B308 D0 01 00 9C */ stfs f0, 0x9c(r1)
/* 8012E3AC 0012B30C D0 41 00 A0 */ stfs f2, 0xa0(r1)
/* 8012E3B0 0012B310 80 1E 01 E8 */ lwz r0, 0x1e8(r30)
/* 8012E3B4 0012B314 2C 00 00 00 */ cmpwi r0, 0
/* 8012E3B8 0012B318 40 82 00 88 */ bne lbl_8012E440
/* 8012E3BC 0012B31C C0 41 00 A8 */ lfs f2, 0xa8(r1)
/* 8012E3C0 0012B320 38 61 00 8C */ addi r3, r1, 0x8c
/* 8012E3C4 0012B324 C0 21 00 AC */ lfs f1, 0xac(r1)
/* 8012E3C8 0012B328 C0 01 00 A4 */ lfs f0, 0xa4(r1)
/* 8012E3CC 0012B32C EC 42 F0 28 */ fsubs f2, f2, f30
/* 8012E3D0 0012B330 EC 21 E8 28 */ fsubs f1, f1, f29
/* 8012E3D4 0012B334 EC 00 F8 28 */ fsubs f0, f0, f31
/* 8012E3D8 0012B338 D0 41 00 90 */ stfs f2, 0x90(r1)
/* 8012E3DC 0012B33C D0 01 00 8C */ stfs f0, 0x8c(r1)
/* 8012E3E0 0012B340 D0 21 00 94 */ stfs f1, 0x94(r1)
/* 8012E3E4 0012B344 48 1E 63 15 */ bl CanBeNormalized__9CVector3fCFv
/* 8012E3E8 0012B348 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8012E3EC 0012B34C 41 82 00 60 */ beq lbl_8012E44C
/* 8012E3F0 0012B350 38 61 00 38 */ addi r3, r1, 0x38
/* 8012E3F4 0012B354 38 81 00 8C */ addi r4, r1, 0x8c
/* 8012E3F8 0012B358 48 1E 64 59 */ bl AsNormalized__9CVector3fCFv
/* 8012E3FC 0012B35C C0 81 01 FC */ lfs f4, 0x1fc(r1)
/* 8012E400 0012B360 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8012E404 0012B364 C0 A1 01 EC */ lfs f5, 0x1ec(r1)
/* 8012E408 0012B368 EC 04 00 32 */ fmuls f0, f4, f0
/* 8012E40C 0012B36C C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8012E410 0012B370 C0 61 02 0C */ lfs f3, 0x20c(r1)
/* 8012E414 0012B374 C0 41 00 40 */ lfs f2, 0x40(r1)
/* 8012E418 0012B378 EC 25 00 7A */ fmadds f1, f5, f1, f0
/* 8012E41C 0012B37C C0 02 98 A8 */ lfs f0, lbl_805AB5C8@sda21(r2)
/* 8012E420 0012B380 D0 A1 00 44 */ stfs f5, 0x44(r1)
/* 8012E424 0012B384 EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 8012E428 0012B388 D0 81 00 48 */ stfs f4, 0x48(r1)
/* 8012E42C 0012B38C D0 61 00 4C */ stfs f3, 0x4c(r1)
/* 8012E430 0012B390 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8012E434 0012B394 40 81 00 18 */ ble lbl_8012E44C
/* 8012E438 0012B398 3B A0 00 01 */ li r29, 1
/* 8012E43C 0012B39C 48 00 00 10 */ b lbl_8012E44C
lbl_8012E440:
/* 8012E440 0012B3A0 20 00 00 01 */ subfic r0, r0, 1
/* 8012E444 0012B3A4 7C 00 00 34 */ cntlzw r0, r0
/* 8012E448 0012B3A8 54 1D D9 7E */ srwi r29, r0, 5
lbl_8012E44C:
/* 8012E44C 0012B3AC C0 41 00 9C */ lfs f2, 0x9c(r1)
/* 8012E450 0012B3B0 38 61 00 80 */ addi r3, r1, 0x80
/* 8012E454 0012B3B4 C0 21 00 A0 */ lfs f1, 0xa0(r1)
/* 8012E458 0012B3B8 C0 01 00 98 */ lfs f0, 0x98(r1)
/* 8012E45C 0012B3BC EC 5E 10 28 */ fsubs f2, f30, f2
/* 8012E460 0012B3C0 EC 3D 08 28 */ fsubs f1, f29, f1
/* 8012E464 0012B3C4 EC 1F 00 28 */ fsubs f0, f31, f0
/* 8012E468 0012B3C8 D0 41 00 84 */ stfs f2, 0x84(r1)
/* 8012E46C 0012B3CC D0 01 00 80 */ stfs f0, 0x80(r1)
/* 8012E470 0012B3D0 D0 21 00 88 */ stfs f1, 0x88(r1)
/* 8012E474 0012B3D4 48 1E 64 45 */ bl Magnitude__9CVector3fCFv
/* 8012E478 0012B3D8 FE E0 08 90 */ fmr f23, f1
/* 8012E47C 0012B3DC 38 61 00 2C */ addi r3, r1, 0x2c
/* 8012E480 0012B3E0 38 81 00 80 */ addi r4, r1, 0x80
/* 8012E484 0012B3E4 48 1E 63 CD */ bl AsNormalized__9CVector3fCFv
/* 8012E488 0012B3E8 FC 20 B8 90 */ fmr f1, f23
/* 8012E48C 0012B3EC 3C 60 80 47 */ lis r3, lbl_8046C720@ha
/* 8012E490 0012B3F0 38 E3 C7 20 */ addi r7, r3, lbl_8046C720@l
/* 8012E494 0012B3F4 7F E4 FB 78 */ mr r4, r31
/* 8012E498 0012B3F8 38 61 01 28 */ addi r3, r1, 0x128
/* 8012E49C 0012B3FC 38 A1 00 98 */ addi r5, r1, 0x98
/* 8012E4A0 0012B400 38 C1 00 2C */ addi r6, r1, 0x2c
/* 8012E4A4 0012B404 4B F1 EA F5 */ bl RayStaticIntersection__13CStateManagerCFRC9CVector3fRC9CVector3ffRC15CMaterialFilter
/* 8012E4A8 0012B408 C0 41 00 9C */ lfs f2, 0x9c(r1)
/* 8012E4AC 0012B40C 38 61 00 74 */ addi r3, r1, 0x74
/* 8012E4B0 0012B410 C0 21 00 A0 */ lfs f1, 0xa0(r1)
/* 8012E4B4 0012B414 C0 01 00 98 */ lfs f0, 0x98(r1)
/* 8012E4B8 0012B418 EC 5B 10 28 */ fsubs f2, f27, f2
/* 8012E4BC 0012B41C EC 3A 08 28 */ fsubs f1, f26, f1
/* 8012E4C0 0012B420 EC 1C 00 28 */ fsubs f0, f28, f0
/* 8012E4C4 0012B424 D0 41 00 78 */ stfs f2, 0x78(r1)
/* 8012E4C8 0012B428 D0 01 00 74 */ stfs f0, 0x74(r1)
/* 8012E4CC 0012B42C D0 21 00 7C */ stfs f1, 0x7c(r1)
/* 8012E4D0 0012B430 48 1E 63 E9 */ bl Magnitude__9CVector3fCFv
/* 8012E4D4 0012B434 FE E0 08 90 */ fmr f23, f1
/* 8012E4D8 0012B438 38 61 00 20 */ addi r3, r1, 0x20
/* 8012E4DC 0012B43C 38 81 00 74 */ addi r4, r1, 0x74
/* 8012E4E0 0012B440 48 1E 63 71 */ bl AsNormalized__9CVector3fCFv
/* 8012E4E4 0012B444 FC 20 B8 90 */ fmr f1, f23
/* 8012E4E8 0012B448 3C 60 80 47 */ lis r3, lbl_8046C720@ha
/* 8012E4EC 0012B44C 38 E3 C7 20 */ addi r7, r3, lbl_8046C720@l
/* 8012E4F0 0012B450 7F E4 FB 78 */ mr r4, r31
/* 8012E4F4 0012B454 38 61 00 F8 */ addi r3, r1, 0xf8
/* 8012E4F8 0012B458 38 A1 00 98 */ addi r5, r1, 0x98
/* 8012E4FC 0012B45C 38 C1 00 20 */ addi r6, r1, 0x20
/* 8012E500 0012B460 4B F1 EA 99 */ bl RayStaticIntersection__13CStateManagerCFRC9CVector3fRC9CVector3ffRC15CMaterialFilter
/* 8012E504 0012B464 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
/* 8012E508 0012B468 C4 43 66 A0 */ lfsu f2, sZeroVector__9CVector3f@l(r3)
/* 8012E50C 0012B46C 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8012E510 0012B470 C0 23 00 04 */ lfs f1, 4(r3)
/* 8012E514 0012B474 C0 03 00 08 */ lfs f0, 8(r3)
/* 8012E518 0012B478 D0 41 00 68 */ stfs f2, 0x68(r1)
/* 8012E51C 0012B47C D0 21 00 6C */ stfs f1, 0x6c(r1)
/* 8012E520 0012B480 D0 01 00 70 */ stfs f0, 0x70(r1)
/* 8012E524 0012B484 41 82 00 18 */ beq lbl_8012E53C
/* 8012E528 0012B488 D3 3E 01 D4 */ stfs f25, 0x1d4(r30)
/* 8012E52C 0012B48C D3 E1 00 68 */ stfs f31, 0x68(r1)
/* 8012E530 0012B490 D3 C1 00 6C */ stfs f30, 0x6c(r1)
/* 8012E534 0012B494 D3 A1 00 70 */ stfs f29, 0x70(r1)
/* 8012E538 0012B498 48 00 00 14 */ b lbl_8012E54C
lbl_8012E53C:
/* 8012E53C 0012B49C D3 1E 01 D4 */ stfs f24, 0x1d4(r30)
/* 8012E540 0012B4A0 D3 81 00 68 */ stfs f28, 0x68(r1)
/* 8012E544 0012B4A4 D3 61 00 6C */ stfs f27, 0x6c(r1)
/* 8012E548 0012B4A8 D3 41 00 70 */ stfs f26, 0x70(r1)
lbl_8012E54C:
/* 8012E54C 0012B4AC 80 1E 01 E8 */ lwz r0, 0x1e8(r30)
/* 8012E550 0012B4B0 2C 00 00 03 */ cmpwi r0, 3
/* 8012E554 0012B4B4 40 82 00 84 */ bne lbl_8012E5D8
/* 8012E558 0012B4B8 3C 60 80 47 */ lis r3, lbl_8046C720@ha
/* 8012E55C 0012B4BC 81 21 00 A4 */ lwz r9, 0xa4(r1)
/* 8012E560 0012B4C0 38 83 C7 20 */ addi r4, r3, lbl_8046C720@l
/* 8012E564 0012B4C4 81 01 00 A8 */ lwz r8, 0xa8(r1)
/* 8012E568 0012B4C8 C8 44 00 00 */ lfd f2, 0(r4)
/* 8012E56C 0012B4CC 7F E7 FB 78 */ mr r7, r31
/* 8012E570 0012B4D0 C8 24 00 08 */ lfd f1, 8(r4)
/* 8012E574 0012B4D4 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012E578 0012B4D8 C8 04 00 10 */ lfd f0, 0x10(r4)
/* 8012E57C 0012B4DC 38 81 00 14 */ addi r4, r1, 0x14
/* 8012E580 0012B4E0 80 01 00 AC */ lwz r0, 0xac(r1)
/* 8012E584 0012B4E4 38 C1 00 B0 */ addi r6, r1, 0xb0
/* 8012E588 0012B4E8 D8 41 00 B0 */ stfd f2, 0xb0(r1)
/* 8012E58C 0012B4EC 38 A0 00 00 */ li r5, 0
/* 8012E590 0012B4F0 D8 21 00 B8 */ stfd f1, 0xb8(r1)
/* 8012E594 0012B4F4 D8 01 00 C0 */ stfd f0, 0xc0(r1)
/* 8012E598 0012B4F8 91 21 00 14 */ stw r9, 0x14(r1)
/* 8012E59C 0012B4FC 91 01 00 18 */ stw r8, 0x18(r1)
/* 8012E5A0 0012B500 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8012E5A4 0012B504 4B F2 E0 51 */ bl ClampLength__13CCameraSplineCFRC9CVector3fbRC15CMaterialFilterRC13CStateManager
/* 8012E5A8 0012B508 FC 01 C8 40 */ fcmpo cr0, f1, f25
/* 8012E5AC 0012B50C 4C 40 13 82 */ cror 2, 0, 2
/* 8012E5B0 0012B510 40 82 00 18 */ bne lbl_8012E5C8
/* 8012E5B4 0012B514 D3 3E 01 D4 */ stfs f25, 0x1d4(r30)
/* 8012E5B8 0012B518 D3 E1 00 68 */ stfs f31, 0x68(r1)
/* 8012E5BC 0012B51C D3 C1 00 6C */ stfs f30, 0x6c(r1)
/* 8012E5C0 0012B520 D3 A1 00 70 */ stfs f29, 0x70(r1)
/* 8012E5C4 0012B524 48 00 00 14 */ b lbl_8012E5D8
lbl_8012E5C8:
/* 8012E5C8 0012B528 D3 1E 01 D4 */ stfs f24, 0x1d4(r30)
/* 8012E5CC 0012B52C D3 81 00 68 */ stfs f28, 0x68(r1)
/* 8012E5D0 0012B530 D3 61 00 6C */ stfs f27, 0x6c(r1)
/* 8012E5D4 0012B534 D3 41 00 70 */ stfs f26, 0x70(r1)
lbl_8012E5D8:
/* 8012E5D8 0012B538 80 9F 08 70 */ lwz r4, 0x870(r31)
/* 8012E5DC 0012B53C 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 8012E5E0 0012B540 38 C3 66 F4 */ addi r6, r3, sUpVector__9CVector3f@l
/* 8012E5E4 0012B544 38 A1 00 5C */ addi r5, r1, 0x5c
/* 8012E5E8 0012B548 80 E4 00 80 */ lwz r7, 0x80(r4)
/* 8012E5EC 0012B54C 38 61 00 C8 */ addi r3, r1, 0xc8
/* 8012E5F0 0012B550 38 81 00 68 */ addi r4, r1, 0x68
/* 8012E5F4 0012B554 C0 07 01 CC */ lfs f0, 0x1cc(r7)
/* 8012E5F8 0012B558 D0 01 00 5C */ stfs f0, 0x5c(r1)
/* 8012E5FC 0012B55C C0 07 01 D0 */ lfs f0, 0x1d0(r7)
/* 8012E600 0012B560 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8012E604 0012B564 C0 07 01 D4 */ lfs f0, 0x1d4(r7)
/* 8012E608 0012B568 D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8012E60C 0012B56C 48 1E 55 05 */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 8012E610 0012B570 38 7E 00 34 */ addi r3, r30, 0x34
/* 8012E614 0012B574 38 81 00 C8 */ addi r4, r1, 0xc8
/* 8012E618 0012B578 48 1E 45 29 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8012E61C 0012B57C 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8012E620 0012B580 38 60 00 01 */ li r3, 1
/* 8012E624 0012B584 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8012E628 0012B588 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8012E62C 0012B58C 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8012E630 0012B590 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8012E634 0012B594 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8012E638 0012B598 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8012E63C 0012B59C 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8012E640 0012B5A0 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8012E644 0012B5A4 E3 E1 02 B8 */ psq_l f31, 696(r1), 0, qr0
/* 8012E648 0012B5A8 CB E1 02 B0 */ lfd f31, 0x2b0(r1)
/* 8012E64C 0012B5AC E3 C1 02 A8 */ psq_l f30, 680(r1), 0, qr0
/* 8012E650 0012B5B0 CB C1 02 A0 */ lfd f30, 0x2a0(r1)
/* 8012E654 0012B5B4 E3 A1 02 98 */ psq_l f29, 664(r1), 0, qr0
/* 8012E658 0012B5B8 CB A1 02 90 */ lfd f29, 0x290(r1)
/* 8012E65C 0012B5BC E3 81 02 88 */ psq_l f28, 648(r1), 0, qr0
/* 8012E660 0012B5C0 CB 81 02 80 */ lfd f28, 0x280(r1)
/* 8012E664 0012B5C4 E3 61 02 78 */ psq_l f27, 632(r1), 0, qr0
/* 8012E668 0012B5C8 CB 61 02 70 */ lfd f27, 0x270(r1)
/* 8012E66C 0012B5CC E3 41 02 68 */ psq_l f26, 616(r1), 0, qr0
/* 8012E670 0012B5D0 CB 41 02 60 */ lfd f26, 0x260(r1)
/* 8012E674 0012B5D4 E3 21 02 58 */ psq_l f25, 600(r1), 0, qr0
/* 8012E678 0012B5D8 CB 21 02 50 */ lfd f25, 0x250(r1)
/* 8012E67C 0012B5DC E3 01 02 48 */ psq_l f24, 584(r1), 0, qr0
/* 8012E680 0012B5E0 CB 01 02 40 */ lfd f24, 0x240(r1)
/* 8012E684 0012B5E4 E2 E1 02 38 */ psq_l f23, 568(r1), 0, qr0
/* 8012E688 0012B5E8 CA E1 02 30 */ lfd f23, 0x230(r1)
/* 8012E68C 0012B5EC 83 E1 02 2C */ lwz r31, 0x22c(r1)
/* 8012E690 0012B5F0 83 C1 02 28 */ lwz r30, 0x228(r1)
/* 8012E694 0012B5F4 80 01 02 C4 */ lwz r0, 0x2c4(r1)
/* 8012E698 0012B5F8 83 A1 02 24 */ lwz r29, 0x224(r1)
/* 8012E69C 0012B5FC 7C 08 03 A6 */ mtlr r0
/* 8012E6A0 0012B600 38 21 02 C0 */ addi r1, r1, 0x2c0
/* 8012E6A4 0012B604 4E 80 00 20 */ blr
.global __dt__11CPathCameraFv
__dt__11CPathCameraFv:
/* 8012E6A8 0012B608 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8012E6AC 0012B60C 7C 08 02 A6 */ mflr r0
/* 8012E6B0 0012B610 90 01 00 14 */ stw r0, 0x14(r1)
/* 8012E6B4 0012B614 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8012E6B8 0012B618 7C 9F 23 78 */ mr r31, r4
/* 8012E6BC 0012B61C 93 C1 00 08 */ stw r30, 8(r1)
/* 8012E6C0 0012B620 7C 7E 1B 79 */ or. r30, r3, r3
/* 8012E6C4 0012B624 41 82 00 38 */ beq lbl_8012E6FC
/* 8012E6C8 0012B628 3C 80 80 3E */ lis r4, lbl_803E0C68@ha
/* 8012E6CC 0012B62C 38 7E 01 88 */ addi r3, r30, 0x188
/* 8012E6D0 0012B630 38 04 0C 68 */ addi r0, r4, lbl_803E0C68@l
/* 8012E6D4 0012B634 38 80 FF FF */ li r4, -1
/* 8012E6D8 0012B638 90 1E 00 00 */ stw r0, 0(r30)
/* 8012E6DC 0012B63C 4B F2 EF 0D */ bl __dt__13CCameraSplineFv
/* 8012E6E0 0012B640 7F C3 F3 78 */ mr r3, r30
/* 8012E6E4 0012B644 38 80 00 00 */ li r4, 0
/* 8012E6E8 0012B648 4B F2 F3 75 */ bl __dt__11CGameCameraFv
/* 8012E6EC 0012B64C 7F E0 07 35 */ extsh. r0, r31
/* 8012E6F0 0012B650 40 81 00 0C */ ble lbl_8012E6FC
/* 8012E6F4 0012B654 7F C3 F3 78 */ mr r3, r30
/* 8012E6F8 0012B658 48 1E 72 39 */ bl Free__7CMemoryFPCv
lbl_8012E6FC:
/* 8012E6FC 0012B65C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8012E700 0012B660 7F C3 F3 78 */ mr r3, r30
/* 8012E704 0012B664 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8012E708 0012B668 83 C1 00 08 */ lwz r30, 8(r1)
/* 8012E70C 0012B66C 7C 08 03 A6 */ mtlr r0
/* 8012E710 0012B670 38 21 00 10 */ addi r1, r1, 0x10
/* 8012E714 0012B674 4E 80 00 20 */ blr
.global "__ct__11CPathCameraF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbbbbbfffffffQ211CPathCamera22EInitialSplinePosition"
"__ct__11CPathCameraF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fbbbbbfffffffQ211CPathCamera22EInitialSplinePosition":
/* 8012E718 0012B678 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 8012E71C 0012B67C 7C 08 02 A6 */ mflr r0
/* 8012E720 0012B680 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 8012E724 0012B684 DB E1 00 B0 */ stfd f31, 0xb0(r1)
/* 8012E728 0012B688 F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0
/* 8012E72C 0012B68C DB C1 00 A0 */ stfd f30, 0xa0(r1)
/* 8012E730 0012B690 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, qr0
/* 8012E734 0012B694 DB A1 00 90 */ stfd f29, 0x90(r1)
/* 8012E738 0012B698 F3 A1 00 98 */ psq_st f29, 152(r1), 0, qr0
/* 8012E73C 0012B69C DB 81 00 80 */ stfd f28, 0x80(r1)
/* 8012E740 0012B6A0 F3 81 00 88 */ psq_st f28, 136(r1), 0, qr0
/* 8012E744 0012B6A4 DB 61 00 70 */ stfd f27, 0x70(r1)
/* 8012E748 0012B6A8 F3 61 00 78 */ psq_st f27, 120(r1), 0, qr0
/* 8012E74C 0012B6AC DB 41 00 60 */ stfd f26, 0x60(r1)
/* 8012E750 0012B6B0 F3 41 00 68 */ psq_st f26, 104(r1), 0, qr0
/* 8012E754 0012B6B4 DB 21 00 50 */ stfd f25, 0x50(r1)
/* 8012E758 0012B6B8 F3 21 00 58 */ psq_st f25, 88(r1), 0, qr0
/* 8012E75C 0012B6BC DB 01 00 40 */ stfd f24, 0x40(r1)
/* 8012E760 0012B6C0 F3 01 00 48 */ psq_st f24, 72(r1), 0, qr0
/* 8012E764 0012B6C4 BF 21 00 24 */ stmw r25, 0x24(r1)
/* 8012E768 0012B6C8 A1 6D A3 8C */ lhz r11, kInvalidUniqueId@sda21(r13)
/* 8012E76C 0012B6CC FF 00 08 90 */ fmr f24, f1
/* 8012E770 0012B6D0 A0 04 00 00 */ lhz r0, 0(r4)
/* 8012E774 0012B6D4 FF 20 10 90 */ fmr f25, f2
/* 8012E778 0012B6D8 FF 40 18 90 */ fmr f26, f3
/* 8012E77C 0012B6DC B1 61 00 10 */ sth r11, 0x10(r1)
/* 8012E780 0012B6E0 FF 60 20 90 */ fmr f27, f4
/* 8012E784 0012B6E4 FF 80 28 90 */ fmr f28, f5
/* 8012E788 0012B6E8 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8012E78C 0012B6EC 7C 79 1B 78 */ mr r25, r3
/* 8012E790 0012B6F0 7C BA 2B 78 */ mr r26, r5
/* 8012E794 0012B6F4 7C DB 33 78 */ mr r27, r6
/* 8012E798 0012B6F8 7C FC 3B 78 */ mr r28, r7
/* 8012E79C 0012B6FC 7D 1D 43 78 */ mr r29, r8
/* 8012E7A0 0012B700 7D 3E 4B 78 */ mr r30, r9
/* 8012E7A4 0012B704 7D 5F 53 78 */ mr r31, r10
/* 8012E7A8 0012B708 4B ED D9 11 */ bl DefaultAspect__14CCameraManagerFv
/* 8012E7AC 0012B70C FF A0 08 90 */ fmr f29, f1
/* 8012E7B0 0012B710 4B ED D9 11 */ bl DefaultFarPlane__14CCameraManagerFv
/* 8012E7B4 0012B714 FF C0 08 90 */ fmr f30, f1
/* 8012E7B8 0012B718 4B ED D9 11 */ bl DefaultNearPlane__14CCameraManagerFv
/* 8012E7BC 0012B71C FF E0 08 90 */ fmr f31, f1
/* 8012E7C0 0012B720 4B ED D9 19 */ bl DefaultThirdPersonFov__14CCameraManagerFv
/* 8012E7C4 0012B724 38 00 00 00 */ li r0, 0
/* 8012E7C8 0012B728 FC 40 F8 90 */ fmr f2, f31
/* 8012E7CC 0012B72C FC 60 F0 90 */ fmr f3, f30
/* 8012E7D0 0012B730 90 01 00 08 */ stw r0, 8(r1)
/* 8012E7D4 0012B734 FC 80 E8 90 */ fmr f4, f29
/* 8012E7D8 0012B738 7F 23 CB 78 */ mr r3, r25
/* 8012E7DC 0012B73C 7F A5 EB 78 */ mr r5, r29
/* 8012E7E0 0012B740 7F 46 D3 78 */ mr r6, r26
/* 8012E7E4 0012B744 7F 67 DB 78 */ mr r7, r27
/* 8012E7E8 0012B748 7F 88 E3 78 */ mr r8, r28
/* 8012E7EC 0012B74C 38 81 00 14 */ addi r4, r1, 0x14
/* 8012E7F0 0012B750 39 21 00 10 */ addi r9, r1, 0x10
/* 8012E7F4 0012B754 39 40 00 00 */ li r10, 0
/* 8012E7F8 0012B758 4B F2 F2 C5 */ bl "__ct__11CGameCameraF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fffff9TUniqueIdbi"
/* 8012E7FC 0012B75C 3C 60 80 3E */ lis r3, lbl_803E0C68@ha
/* 8012E800 0012B760 57 C4 07 FE */ clrlwi r4, r30, 0x1f
/* 8012E804 0012B764 38 03 0C 68 */ addi r0, r3, lbl_803E0C68@l
/* 8012E808 0012B768 90 19 00 00 */ stw r0, 0(r25)
/* 8012E80C 0012B76C 38 79 01 88 */ addi r3, r25, 0x188
/* 8012E810 0012B770 4B F2 EF 51 */ bl __ct__13CCameraSplineFb
/* 8012E814 0012B774 C0 02 98 A8 */ lfs f0, lbl_805AB5C8@sda21(r2)
/* 8012E818 0012B778 7F 23 CB 78 */ mr r3, r25
/* 8012E81C 0012B77C D0 19 01 D4 */ stfs f0, 0x1d4(r25)
/* 8012E820 0012B780 D0 19 01 D8 */ stfs f0, 0x1d8(r25)
/* 8012E824 0012B784 D3 19 01 DC */ stfs f24, 0x1dc(r25)
/* 8012E828 0012B788 D3 39 01 E0 */ stfs f25, 0x1e0(r25)
/* 8012E82C 0012B78C D3 59 01 E4 */ stfs f26, 0x1e4(r25)
/* 8012E830 0012B790 93 F9 01 E8 */ stw r31, 0x1e8(r25)
/* 8012E834 0012B794 93 D9 01 EC */ stw r30, 0x1ec(r25)
/* 8012E838 0012B798 D3 79 01 F0 */ stfs f27, 0x1f0(r25)
/* 8012E83C 0012B79C D3 99 01 F4 */ stfs f28, 0x1f4(r25)
/* 8012E840 0012B7A0 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0
/* 8012E844 0012B7A4 CB E1 00 B0 */ lfd f31, 0xb0(r1)
/* 8012E848 0012B7A8 E3 C1 00 A8 */ psq_l f30, 168(r1), 0, qr0
/* 8012E84C 0012B7AC CB C1 00 A0 */ lfd f30, 0xa0(r1)
/* 8012E850 0012B7B0 E3 A1 00 98 */ psq_l f29, 152(r1), 0, qr0
/* 8012E854 0012B7B4 CB A1 00 90 */ lfd f29, 0x90(r1)
/* 8012E858 0012B7B8 E3 81 00 88 */ psq_l f28, 136(r1), 0, qr0
/* 8012E85C 0012B7BC CB 81 00 80 */ lfd f28, 0x80(r1)
/* 8012E860 0012B7C0 E3 61 00 78 */ psq_l f27, 120(r1), 0, qr0
/* 8012E864 0012B7C4 CB 61 00 70 */ lfd f27, 0x70(r1)
/* 8012E868 0012B7C8 E3 41 00 68 */ psq_l f26, 104(r1), 0, qr0
/* 8012E86C 0012B7CC CB 41 00 60 */ lfd f26, 0x60(r1)
/* 8012E870 0012B7D0 E3 21 00 58 */ psq_l f25, 88(r1), 0, qr0
/* 8012E874 0012B7D4 CB 21 00 50 */ lfd f25, 0x50(r1)
/* 8012E878 0012B7D8 E3 01 00 48 */ psq_l f24, 72(r1), 0, qr0
/* 8012E87C 0012B7DC CB 01 00 40 */ lfd f24, 0x40(r1)
/* 8012E880 0012B7E0 BB 21 00 24 */ lmw r25, 0x24(r1)
/* 8012E884 0012B7E4 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 8012E888 0012B7E8 7C 08 03 A6 */ mtlr r0
/* 8012E88C 0012B7EC 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8012E890 0012B7F0 4E 80 00 20 */ blr
.global __sinit_CPathCamera_cpp
__sinit_CPathCamera_cpp:
/* 8012E894 0012B7F4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8012E898 0012B7F8 7C 08 02 A6 */ mflr r0
/* 8012E89C 0012B7FC 38 60 00 00 */ li r3, 0
/* 8012E8A0 0012B800 38 80 00 01 */ li r4, 1
/* 8012E8A4 0012B804 90 01 00 24 */ stw r0, 0x24(r1)
/* 8012E8A8 0012B808 80 AD 8A F0 */ lwz r5, lbl_805A76B0@sda21(r13)
/* 8012E8AC 0012B80C 48 25 B6 49 */ bl __shl2i
/* 8012E8B0 0012B810 90 8D A3 A4 */ stw r4, lbl_805A8F64@sda21(r13)
/* 8012E8B4 0012B814 38 80 00 01 */ li r4, 1
/* 8012E8B8 0012B818 80 AD 8A F4 */ lwz r5, lbl_805A76B4@sda21(r13)
/* 8012E8BC 0012B81C 90 6D A3 A0 */ stw r3, lbl_805A8F60@sda21(r13)
/* 8012E8C0 0012B820 38 60 00 00 */ li r3, 0
/* 8012E8C4 0012B824 48 25 B6 31 */ bl __shl2i
/* 8012E8C8 0012B828 3C A0 80 47 */ lis r5, lbl_8046C720@ha
/* 8012E8CC 0012B82C 80 0D A3 A0 */ lwz r0, lbl_805A8F60@sda21(r13)
/* 8012E8D0 0012B830 38 A5 C7 20 */ addi r5, r5, lbl_8046C720@l
/* 8012E8D4 0012B834 38 E0 00 03 */ li r7, 3
/* 8012E8D8 0012B838 80 CD A3 A4 */ lwz r6, lbl_805A8F64@sda21(r13)
/* 8012E8DC 0012B83C 90 8D A3 AC */ stw r4, lbl_805A8F6C@sda21(r13)
/* 8012E8E0 0012B840 90 6D A3 A8 */ stw r3, lbl_805A8F68@sda21(r13)
/* 8012E8E4 0012B844 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8012E8E8 0012B848 90 C5 00 04 */ stw r6, 4(r5)
/* 8012E8EC 0012B84C 90 05 00 00 */ stw r0, 0(r5)
/* 8012E8F0 0012B850 90 85 00 0C */ stw r4, 0xc(r5)
/* 8012E8F4 0012B854 90 65 00 08 */ stw r3, 8(r5)
/* 8012E8F8 0012B858 90 E5 00 10 */ stw r7, 0x10(r5)
/* 8012E8FC 0012B85C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8012E900 0012B860 7C 08 03 A6 */ mtlr r0
/* 8012E904 0012B864 38 21 00 20 */ addi r1, r1, 0x20
/* 8012E908 0012B868 4E 80 00 20 */ blr