prime/asm/MetroidPrime/Cameras/CGameCamera.s

3393 lines
168 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.global lbl_803DA188
lbl_803DA188:
# ROM: 0x3D7188
.4byte 0
.4byte 0
.4byte __dt__13CCameraSplineFv
.global lbl_803DA194
lbl_803DA194:
# ROM: 0x3D7194
.4byte 0
.4byte 0
.4byte __dt__11CGameCameraFv
.4byte Accept__11CGameCameraFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__7CEntityFfR13CStateManager
.4byte AcceptScriptMsg__11CGameCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__11CGameCameraFb
.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__6CActorCFRC13CStateManager
.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 0
.4byte 0
.section .sdata
.global lbl_805A6E80
lbl_805A6E80:
# ROM: 0x3F4820
.4byte 0
.global lbl_805A6E84
lbl_805A6E84:
# ROM: 0x3F4824
.4byte 0
.global lbl_805A6E88
lbl_805A6E88:
# ROM: 0x3F4828
.4byte 0
.global lbl_805A6E8C
lbl_805A6E8C:
# ROM: 0x3F482C
.4byte 0x3F800000
.global lbl_805A6E90
lbl_805A6E90:
# ROM: 0x3F4830
.4byte 0
.global lbl_805A6E94
lbl_805A6E94:
# ROM: 0x3F4834
.4byte 0x3F800000
.section .text, "ax"
.global UpdatePerspective__11CGameCameraFf
UpdatePerspective__11CGameCameraFf:
/* 8005AE3C 00057D9C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8005AE40 00057DA0 7C 08 02 A6 */ mflr r0
/* 8005AE44 00057DA4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8005AE48 00057DA8 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8005AE4C 00057DAC F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 8005AE50 00057DB0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8005AE54 00057DB4 7C 7F 1B 78 */ mr r31, r3
/* 8005AE58 00057DB8 C0 42 86 B8 */ lfs f2, lbl_805AA3D8@sda21(r2)
/* 8005AE5C 00057DBC C0 03 01 74 */ lfs f0, 0x174(r3)
/* 8005AE60 00057DC0 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 8005AE64 00057DC4 40 81 00 10 */ ble lbl_8005AE74
/* 8005AE68 00057DC8 EC 00 08 28 */ fsubs f0, f0, f1
/* 8005AE6C 00057DCC D0 1F 01 74 */ stfs f0, 0x174(r31)
/* 8005AE70 00057DD0 48 00 00 8C */ b lbl_8005AEFC
lbl_8005AE74:
/* 8005AE74 00057DD4 C0 1F 01 78 */ lfs f0, 0x178(r31)
/* 8005AE78 00057DD8 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 8005AE7C 00057DDC 40 81 00 80 */ ble lbl_8005AEFC
/* 8005AE80 00057DE0 EC 00 08 28 */ fsubs f0, f0, f1
/* 8005AE84 00057DE4 D0 1F 01 78 */ stfs f0, 0x178(r31)
/* 8005AE88 00057DE8 C0 3F 01 78 */ lfs f1, 0x178(r31)
/* 8005AE8C 00057DEC FC 01 10 40 */ fcmpo cr0, f1, f2
/* 8005AE90 00057DF0 4C 40 13 82 */ cror 2, 0, 2
/* 8005AE94 00057DF4 40 82 00 20 */ bne lbl_8005AEB4
/* 8005AE98 00057DF8 C0 1F 01 84 */ lfs f0, 0x184(r31)
/* 8005AE9C 00057DFC 38 60 00 01 */ li r3, 1
/* 8005AEA0 00057E00 D0 1F 01 5C */ stfs f0, 0x15c(r31)
/* 8005AEA4 00057E04 88 1F 01 70 */ lbz r0, 0x170(r31)
/* 8005AEA8 00057E08 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8005AEAC 00057E0C 98 1F 01 70 */ stb r0, 0x170(r31)
/* 8005AEB0 00057E10 48 00 00 4C */ b lbl_8005AEFC
lbl_8005AEB4:
/* 8005AEB4 00057E14 C0 1F 01 7C */ lfs f0, 0x17c(r31)
/* 8005AEB8 00057E18 38 81 00 08 */ addi r4, r1, 8
/* 8005AEBC 00057E1C C0 5F 01 80 */ lfs f2, 0x180(r31)
/* 8005AEC0 00057E20 38 6D 82 D0 */ addi r3, r13, lbl_805A6E90@sda21
/* 8005AEC4 00057E24 EC 01 00 24 */ fdivs f0, f1, f0
/* 8005AEC8 00057E28 C0 3F 01 84 */ lfs f1, 0x184(r31)
/* 8005AECC 00057E2C 38 AD 82 D4 */ addi r5, r13, lbl_805A6E94@sda21
/* 8005AED0 00057E30 EF E2 08 28 */ fsubs f31, f2, f1
/* 8005AED4 00057E34 D0 01 00 08 */ stfs f0, 8(r1)
/* 8005AED8 00057E38 4B FB 13 DD */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8005AEDC 00057E3C C0 23 00 00 */ lfs f1, 0(r3)
/* 8005AEE0 00057E40 38 60 00 01 */ li r3, 1
/* 8005AEE4 00057E44 C0 1F 01 84 */ lfs f0, 0x184(r31)
/* 8005AEE8 00057E48 EC 1F 00 7A */ fmadds f0, f31, f1, f0
/* 8005AEEC 00057E4C D0 1F 01 5C */ stfs f0, 0x15c(r31)
/* 8005AEF0 00057E50 88 1F 01 70 */ lbz r0, 0x170(r31)
/* 8005AEF4 00057E54 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8005AEF8 00057E58 98 1F 01 70 */ stb r0, 0x170(r31)
lbl_8005AEFC:
/* 8005AEFC 00057E5C E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 8005AF00 00057E60 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8005AF04 00057E64 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8005AF08 00057E68 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8005AF0C 00057E6C 7C 08 03 A6 */ mtlr r0
/* 8005AF10 00057E70 38 21 00 30 */ addi r1, r1, 0x30
/* 8005AF14 00057E74 4E 80 00 20 */ blr
.global SetFovInterpolation__11CGameCameraFffff
SetFovInterpolation__11CGameCameraFffff:
/* 8005AF18 00057E78 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005AF1C 00057E7C FC 03 00 40 */ fcmpo cr0, f3, f0
/* 8005AF20 00057E80 4C 40 13 82 */ cror 2, 0, 2
/* 8005AF24 00057E84 40 82 00 28 */ bne lbl_8005AF4C
/* 8005AF28 00057E88 D0 43 01 5C */ stfs f2, 0x15c(r3)
/* 8005AF2C 00057E8C 38 80 00 01 */ li r4, 1
/* 8005AF30 00057E90 88 03 01 70 */ lbz r0, 0x170(r3)
/* 8005AF34 00057E94 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8005AF38 00057E98 98 03 01 70 */ stb r0, 0x170(r3)
/* 8005AF3C 00057E9C D0 43 01 84 */ stfs f2, 0x184(r3)
/* 8005AF40 00057EA0 D0 03 01 78 */ stfs f0, 0x178(r3)
/* 8005AF44 00057EA4 D0 03 01 74 */ stfs f0, 0x174(r3)
/* 8005AF48 00057EA8 4E 80 00 20 */ blr
lbl_8005AF4C:
/* 8005AF4C 00057EAC FC 04 00 40 */ fcmpo cr0, f4, f0
/* 8005AF50 00057EB0 40 80 00 0C */ bge lbl_8005AF5C
/* 8005AF54 00057EB4 D0 03 01 74 */ stfs f0, 0x174(r3)
/* 8005AF58 00057EB8 48 00 00 08 */ b lbl_8005AF60
lbl_8005AF5C:
/* 8005AF5C 00057EBC D0 83 01 74 */ stfs f4, 0x174(r3)
lbl_8005AF60:
/* 8005AF60 00057EC0 D0 63 01 7C */ stfs f3, 0x17c(r3)
/* 8005AF64 00057EC4 38 80 00 01 */ li r4, 1
/* 8005AF68 00057EC8 D0 63 01 78 */ stfs f3, 0x178(r3)
/* 8005AF6C 00057ECC D0 23 01 80 */ stfs f1, 0x180(r3)
/* 8005AF70 00057ED0 D0 43 01 84 */ stfs f2, 0x184(r3)
/* 8005AF74 00057ED4 D0 23 01 5C */ stfs f1, 0x15c(r3)
/* 8005AF78 00057ED8 88 03 01 70 */ lbz r0, 0x170(r3)
/* 8005AF7C 00057EDC 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8005AF80 00057EE0 98 03 01 70 */ stb r0, 0x170(r3)
/* 8005AF84 00057EE4 4E 80 00 20 */ blr
.global SkipFovInterpolation__11CGameCameraFv
SkipFovInterpolation__11CGameCameraFv:
/* 8005AF88 00057EE8 C0 23 01 78 */ lfs f1, 0x178(r3)
/* 8005AF8C 00057EEC C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005AF90 00057EF0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005AF94 00057EF4 40 81 00 1C */ ble lbl_8005AFB0
/* 8005AF98 00057EF8 C0 03 01 84 */ lfs f0, 0x184(r3)
/* 8005AF9C 00057EFC 38 80 00 01 */ li r4, 1
/* 8005AFA0 00057F00 D0 03 01 5C */ stfs f0, 0x15c(r3)
/* 8005AFA4 00057F04 88 03 01 70 */ lbz r0, 0x170(r3)
/* 8005AFA8 00057F08 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 8005AFAC 00057F0C 98 03 01 70 */ stb r0, 0x170(r3)
lbl_8005AFB0:
/* 8005AFB0 00057F10 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005AFB4 00057F14 D0 03 01 78 */ stfs f0, 0x178(r3)
/* 8005AFB8 00057F18 D0 03 01 74 */ stfs f0, 0x174(r3)
/* 8005AFBC 00057F1C 4E 80 00 20 */ blr
.global ValidateCameraTransform__11CGameCameraFRC12CTransform4fRC12CTransform4f
ValidateCameraTransform__11CGameCameraFRC12CTransform4fRC12CTransform4f:
/* 8005AFC0 00057F20 94 21 FE 80 */ stwu r1, -0x180(r1)
/* 8005AFC4 00057F24 7C 08 02 A6 */ mflr r0
/* 8005AFC8 00057F28 90 01 01 84 */ stw r0, 0x184(r1)
/* 8005AFCC 00057F2C 93 E1 01 7C */ stw r31, 0x17c(r1)
/* 8005AFD0 00057F30 7C DF 33 78 */ mr r31, r6
/* 8005AFD4 00057F34 93 C1 01 78 */ stw r30, 0x178(r1)
/* 8005AFD8 00057F38 7C BE 2B 78 */ mr r30, r5
/* 8005AFDC 00057F3C 7F C4 F3 78 */ mr r4, r30
/* 8005AFE0 00057F40 93 A1 01 74 */ stw r29, 0x174(r1)
/* 8005AFE4 00057F44 7C 7D 1B 78 */ mr r29, r3
/* 8005AFE8 00057F48 38 61 01 40 */ addi r3, r1, 0x140
/* 8005AFEC 00057F4C 48 2B 7B 89 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8005AFF0 00057F50 C0 5E 00 20 */ lfs f2, 0x20(r30)
/* 8005AFF4 00057F54 38 61 00 88 */ addi r3, r1, 0x88
/* 8005AFF8 00057F58 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8005AFFC 00057F5C C0 1E 00 00 */ lfs f0, 0(r30)
/* 8005B000 00057F60 D0 21 00 8C */ stfs f1, 0x8c(r1)
/* 8005B004 00057F64 D0 01 00 88 */ stfs f0, 0x88(r1)
/* 8005B008 00057F68 D0 41 00 90 */ stfs f2, 0x90(r1)
/* 8005B00C 00057F6C 48 2B 98 AD */ bl Magnitude__9CVector3fCFv
/* 8005B010 00057F70 C0 42 86 BC */ lfs f2, lbl_805AA3DC@sda21(r2)
/* 8005B014 00057F74 C8 02 86 C0 */ lfd f0, lbl_805AA3E0@sda21(r2)
/* 8005B018 00057F78 EC 21 10 28 */ fsubs f1, f1, f2
/* 8005B01C 00057F7C FC 20 0A 10 */ fabs f1, f1
/* 8005B020 00057F80 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B024 00057F84 40 80 00 74 */ bge lbl_8005B098
/* 8005B028 00057F88 C0 5E 00 24 */ lfs f2, 0x24(r30)
/* 8005B02C 00057F8C 38 61 00 7C */ addi r3, r1, 0x7c
/* 8005B030 00057F90 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8005B034 00057F94 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8005B038 00057F98 D0 21 00 80 */ stfs f1, 0x80(r1)
/* 8005B03C 00057F9C D0 01 00 7C */ stfs f0, 0x7c(r1)
/* 8005B040 00057FA0 D0 41 00 84 */ stfs f2, 0x84(r1)
/* 8005B044 00057FA4 48 2B 98 75 */ bl Magnitude__9CVector3fCFv
/* 8005B048 00057FA8 C0 42 86 BC */ lfs f2, lbl_805AA3DC@sda21(r2)
/* 8005B04C 00057FAC C8 02 86 C0 */ lfd f0, lbl_805AA3E0@sda21(r2)
/* 8005B050 00057FB0 EC 21 10 28 */ fsubs f1, f1, f2
/* 8005B054 00057FB4 FC 20 0A 10 */ fabs f1, f1
/* 8005B058 00057FB8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B05C 00057FBC 40 80 00 3C */ bge lbl_8005B098
/* 8005B060 00057FC0 C0 5E 00 28 */ lfs f2, 0x28(r30)
/* 8005B064 00057FC4 38 61 00 70 */ addi r3, r1, 0x70
/* 8005B068 00057FC8 C0 3E 00 18 */ lfs f1, 0x18(r30)
/* 8005B06C 00057FCC C0 1E 00 08 */ lfs f0, 8(r30)
/* 8005B070 00057FD0 D0 21 00 74 */ stfs f1, 0x74(r1)
/* 8005B074 00057FD4 D0 01 00 70 */ stfs f0, 0x70(r1)
/* 8005B078 00057FD8 D0 41 00 78 */ stfs f2, 0x78(r1)
/* 8005B07C 00057FDC 48 2B 98 3D */ bl Magnitude__9CVector3fCFv
/* 8005B080 00057FE0 C0 42 86 BC */ lfs f2, lbl_805AA3DC@sda21(r2)
/* 8005B084 00057FE4 C8 02 86 C0 */ lfd f0, lbl_805AA3E0@sda21(r2)
/* 8005B088 00057FE8 EC 21 10 28 */ fsubs f1, f1, f2
/* 8005B08C 00057FEC FC 20 0A 10 */ fabs f1, f1
/* 8005B090 00057FF0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B094 00057FF4 41 80 00 0C */ blt lbl_8005B0A0
lbl_8005B098:
/* 8005B098 00057FF8 38 61 01 40 */ addi r3, r1, 0x140
/* 8005B09C 00057FFC 48 2B 83 09 */ bl Orthonormalize__12CTransform4fFv
lbl_8005B0A0:
/* 8005B0A0 00058000 3C 60 80 5A */ lis r3, lbl_805A66F4@ha
/* 8005B0A4 00058004 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8005B0A8 00058008 38 63 66 F4 */ addi r3, r3, lbl_805A66F4@l
/* 8005B0AC 0005800C C0 7E 00 04 */ lfs f3, 4(r30)
/* 8005B0B0 00058010 C0 03 00 04 */ lfs f0, 4(r3)
/* 8005B0B4 00058014 C0 43 00 00 */ lfs f2, 0(r3)
/* 8005B0B8 00058018 EC 21 00 32 */ fmuls f1, f1, f0
/* 8005B0BC 0005801C C0 BE 00 24 */ lfs f5, 0x24(r30)
/* 8005B0C0 00058020 C0 83 00 08 */ lfs f4, 8(r3)
/* 8005B0C4 00058024 C8 02 86 C8 */ lfd f0, lbl_805AA3E8@sda21(r2)
/* 8005B0C8 00058028 EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 8005B0CC 0005802C EC 45 09 3A */ fmadds f2, f5, f4, f1
/* 8005B0D0 00058030 FC 20 12 10 */ fabs f1, f2
/* 8005B0D4 00058034 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B0D8 00058038 40 81 00 14 */ ble lbl_8005B0EC
/* 8005B0DC 0005803C C0 02 86 D0 */ lfs f0, lbl_805AA3F0@sda21(r2)
/* 8005B0E0 00058040 C0 22 86 BC */ lfs f1, lbl_805AA3DC@sda21(r2)
/* 8005B0E4 00058044 FC 02 00 6E */ fsel f0, f2, f1, f0
/* 8005B0E8 00058048 EC 41 00 32 */ fmuls f2, f1, f0
lbl_8005B0EC:
/* 8005B0EC 0005804C FC 20 12 10 */ fabs f1, f2
/* 8005B0F0 00058050 C0 02 86 D4 */ lfs f0, lbl_805AA3F4@sda21(r2)
/* 8005B0F4 00058054 FC 20 08 18 */ frsp f1, f1
/* 8005B0F8 00058058 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B0FC 0005805C 40 81 00 10 */ ble lbl_8005B10C
/* 8005B100 00058060 7F E4 FB 78 */ mr r4, r31
/* 8005B104 00058064 38 61 01 40 */ addi r3, r1, 0x140
/* 8005B108 00058068 48 2B 7A 39 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8005B10C:
/* 8005B10C 0005806C C0 21 01 68 */ lfs f1, 0x168(r1)
/* 8005B110 00058070 C0 02 86 D8 */ lfs f0, lbl_805AA3F8@sda21(r2)
/* 8005B114 00058074 C0 61 01 48 */ lfs f3, 0x148(r1)
/* 8005B118 00058078 C0 41 01 58 */ lfs f2, 0x158(r1)
/* 8005B11C 0005807C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B120 00058080 D0 61 00 64 */ stfs f3, 0x64(r1)
/* 8005B124 00058084 D0 41 00 68 */ stfs f2, 0x68(r1)
/* 8005B128 00058088 D0 21 00 6C */ stfs f1, 0x6c(r1)
/* 8005B12C 0005808C 40 80 00 88 */ bge lbl_8005B1B4
/* 8005B130 00058090 C0 62 86 DC */ lfs f3, lbl_805AA3FC@sda21(r2)
/* 8005B134 00058094 38 61 00 48 */ addi r3, r1, 0x48
/* 8005B138 00058098 C0 41 01 44 */ lfs f2, 0x144(r1)
/* 8005B13C 0005809C 38 81 00 3C */ addi r4, r1, 0x3c
/* 8005B140 000580A0 C0 21 01 54 */ lfs f1, 0x154(r1)
/* 8005B144 000580A4 C0 01 01 64 */ lfs f0, 0x164(r1)
/* 8005B148 000580A8 D0 61 00 08 */ stfs f3, 8(r1)
/* 8005B14C 000580AC D0 41 00 3C */ stfs f2, 0x3c(r1)
/* 8005B150 000580B0 D0 21 00 40 */ stfs f1, 0x40(r1)
/* 8005B154 000580B4 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8005B158 000580B8 48 2B 8C 79 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8005B15C 000580BC 7C 64 1B 78 */ mr r4, r3
/* 8005B160 000580C0 38 61 00 54 */ addi r3, r1, 0x54
/* 8005B164 000580C4 38 A1 00 08 */ addi r5, r1, 8
/* 8005B168 000580C8 48 2B 61 8D */ bl AxisAngle__11CQuaternionFRC13CUnitVector3fRC9CRelAngle
/* 8005B16C 000580CC C0 61 00 54 */ lfs f3, 0x54(r1)
/* 8005B170 000580D0 38 61 00 E0 */ addi r3, r1, 0xe0
/* 8005B174 000580D4 C0 41 00 58 */ lfs f2, 0x58(r1)
/* 8005B178 000580D8 38 81 00 A0 */ addi r4, r1, 0xa0
/* 8005B17C 000580DC C0 21 00 5C */ lfs f1, 0x5c(r1)
/* 8005B180 000580E0 C0 01 00 60 */ lfs f0, 0x60(r1)
/* 8005B184 000580E4 D0 61 00 A0 */ stfs f3, 0xa0(r1)
/* 8005B188 000580E8 D0 41 00 A4 */ stfs f2, 0xa4(r1)
/* 8005B18C 000580EC D0 21 00 A8 */ stfs f1, 0xa8(r1)
/* 8005B190 000580F0 D0 01 00 AC */ stfs f0, 0xac(r1)
/* 8005B194 000580F4 48 2B 6E 25 */ bl BuildTransform4f__11CQuaternionCFv
/* 8005B198 000580F8 38 61 01 10 */ addi r3, r1, 0x110
/* 8005B19C 000580FC 38 81 00 E0 */ addi r4, r1, 0xe0
/* 8005B1A0 00058100 38 A1 01 40 */ addi r5, r1, 0x140
/* 8005B1A4 00058104 48 2B 77 AD */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8005B1A8 00058108 38 61 01 40 */ addi r3, r1, 0x140
/* 8005B1AC 0005810C 38 81 01 10 */ addi r4, r1, 0x110
/* 8005B1B0 00058110 48 2B 79 91 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8005B1B4:
/* 8005B1B4 00058114 C0 21 01 60 */ lfs f1, 0x160(r1)
/* 8005B1B8 00058118 C0 A2 86 B8 */ lfs f5, lbl_805AA3D8@sda21(r2)
/* 8005B1BC 0005811C C0 61 01 40 */ lfs f3, 0x140(r1)
/* 8005B1C0 00058120 EC 01 28 28 */ fsubs f0, f1, f5
/* 8005B1C4 00058124 C0 41 01 50 */ lfs f2, 0x150(r1)
/* 8005B1C8 00058128 C0 82 86 E0 */ lfs f4, lbl_805AA400@sda21(r2)
/* 8005B1CC 0005812C D0 61 00 30 */ stfs f3, 0x30(r1)
/* 8005B1D0 00058130 FC 00 02 10 */ fabs f0, f0
/* 8005B1D4 00058134 D0 41 00 34 */ stfs f2, 0x34(r1)
/* 8005B1D8 00058138 FC 00 20 40 */ fcmpo cr0, f0, f4
/* 8005B1DC 0005813C D0 21 00 38 */ stfs f1, 0x38(r1)
/* 8005B1E0 00058140 41 80 00 B4 */ blt lbl_8005B294
/* 8005B1E4 00058144 C0 21 01 68 */ lfs f1, 0x168(r1)
/* 8005B1E8 00058148 C0 61 01 48 */ lfs f3, 0x148(r1)
/* 8005B1EC 0005814C EC 01 28 28 */ fsubs f0, f1, f5
/* 8005B1F0 00058150 C0 41 01 58 */ lfs f2, 0x158(r1)
/* 8005B1F4 00058154 D0 61 00 24 */ stfs f3, 0x24(r1)
/* 8005B1F8 00058158 FC 00 02 10 */ fabs f0, f0
/* 8005B1FC 0005815C D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8005B200 00058160 D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 8005B204 00058164 FC 00 20 40 */ fcmpo cr0, f0, f4
/* 8005B208 00058168 41 80 00 8C */ blt lbl_8005B294
/* 8005B20C 0005816C C0 01 01 64 */ lfs f0, 0x164(r1)
/* 8005B210 00058170 38 61 00 94 */ addi r3, r1, 0x94
/* 8005B214 00058174 C0 21 01 54 */ lfs f1, 0x154(r1)
/* 8005B218 00058178 D0 01 00 9C */ stfs f0, 0x9c(r1)
/* 8005B21C 0005817C C0 01 01 44 */ lfs f0, 0x144(r1)
/* 8005B220 00058180 D0 21 00 98 */ stfs f1, 0x98(r1)
/* 8005B224 00058184 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 8005B228 00058188 D0 A1 00 9C */ stfs f5, 0x9c(r1)
/* 8005B22C 0005818C 48 2B 94 CD */ bl CanBeNormalized__9CVector3fCFv
/* 8005B230 00058190 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005B234 00058194 41 82 00 54 */ beq lbl_8005B288
/* 8005B238 00058198 C0 41 01 44 */ lfs f2, 0x144(r1)
/* 8005B23C 0005819C 3C 60 80 5A */ lis r3, skZero3f@ha
/* 8005B240 000581A0 C0 21 01 54 */ lfs f1, 0x154(r1)
/* 8005B244 000581A4 38 83 66 A0 */ addi r4, r3, skZero3f@l
/* 8005B248 000581A8 C0 01 01 64 */ lfs f0, 0x164(r1)
/* 8005B24C 000581AC 38 61 00 18 */ addi r3, r1, 0x18
/* 8005B250 000581B0 D0 41 00 0C */ stfs f2, 0xc(r1)
/* 8005B254 000581B4 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8005B258 000581B8 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8005B25C 000581BC 48 2B 8B 75 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8005B260 000581C0 3C A0 80 5A */ lis r5, lbl_805A66F4@ha
/* 8005B264 000581C4 7C 64 1B 78 */ mr r4, r3
/* 8005B268 000581C8 38 C5 66 F4 */ addi r6, r5, lbl_805A66F4@l
/* 8005B26C 000581CC 38 61 00 B0 */ addi r3, r1, 0xb0
/* 8005B270 000581D0 38 A1 00 0C */ addi r5, r1, 0xc
/* 8005B274 000581D4 48 2B 88 9D */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 8005B278 000581D8 38 61 01 40 */ addi r3, r1, 0x140
/* 8005B27C 000581DC 38 81 00 B0 */ addi r4, r1, 0xb0
/* 8005B280 000581E0 48 2B 78 C1 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8005B284 000581E4 48 00 00 10 */ b lbl_8005B294
lbl_8005B288:
/* 8005B288 000581E8 7F E4 FB 78 */ mr r4, r31
/* 8005B28C 000581EC 38 61 01 40 */ addi r3, r1, 0x140
/* 8005B290 000581F0 48 2B 78 B1 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8005B294:
/* 8005B294 000581F4 C0 5E 00 2C */ lfs f2, 0x2c(r30)
/* 8005B298 000581F8 7F A3 EB 78 */ mr r3, r29
/* 8005B29C 000581FC C0 3E 00 1C */ lfs f1, 0x1c(r30)
/* 8005B2A0 00058200 38 81 01 40 */ addi r4, r1, 0x140
/* 8005B2A4 00058204 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8005B2A8 00058208 D0 21 01 5C */ stfs f1, 0x15c(r1)
/* 8005B2AC 0005820C D0 01 01 4C */ stfs f0, 0x14c(r1)
/* 8005B2B0 00058210 D0 41 01 6C */ stfs f2, 0x16c(r1)
/* 8005B2B4 00058214 48 2B 78 C1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8005B2B8 00058218 80 01 01 84 */ lwz r0, 0x184(r1)
/* 8005B2BC 0005821C 83 E1 01 7C */ lwz r31, 0x17c(r1)
/* 8005B2C0 00058220 83 C1 01 78 */ lwz r30, 0x178(r1)
/* 8005B2C4 00058224 83 A1 01 74 */ lwz r29, 0x174(r1)
/* 8005B2C8 00058228 7C 08 03 A6 */ mtlr r0
/* 8005B2CC 0005822C 38 21 01 80 */ addi r1, r1, 0x180
/* 8005B2D0 00058230 4E 80 00 20 */ blr
.global Accept__11CGameCameraFR8IVisitor
Accept__11CGameCameraFR8IVisitor:
/* 8005B2D4 00058234 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005B2D8 00058238 7C 08 02 A6 */ mflr r0
/* 8005B2DC 0005823C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005B2E0 00058240 7C 60 1B 78 */ mr r0, r3
/* 8005B2E4 00058244 7C 83 23 78 */ mr r3, r4
/* 8005B2E8 00058248 81 84 00 00 */ lwz r12, 0(r4)
/* 8005B2EC 0005824C 7C 04 03 78 */ mr r4, r0
/* 8005B2F0 00058250 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 8005B2F4 00058254 7D 89 03 A6 */ mtctr r12
/* 8005B2F8 00058258 4E 80 04 21 */ bctrl
/* 8005B2FC 0005825C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005B300 00058260 7C 08 03 A6 */ mtlr r0
/* 8005B304 00058264 38 21 00 10 */ addi r1, r1, 0x10
/* 8005B308 00058268 4E 80 00 20 */ blr
.global SetActive__11CGameCameraFb
SetActive__11CGameCameraFb:
/* 8005B30C 0005826C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005B310 00058270 7C 08 02 A6 */ mflr r0
/* 8005B314 00058274 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005B318 00058278 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8005B31C 0005827C 7C 7F 1B 78 */ mr r31, r3
/* 8005B320 00058280 4B FF 85 2D */ bl SetActive__6CActorFb
/* 8005B324 00058284 88 1F 00 E7 */ lbz r0, 0xe7(r31)
/* 8005B328 00058288 38 60 00 00 */ li r3, 0
/* 8005B32C 0005828C 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8005B330 00058290 98 1F 00 E7 */ stb r0, 0xe7(r31)
/* 8005B334 00058294 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8005B338 00058298 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005B33C 0005829C 7C 08 03 A6 */ mtlr r0
/* 8005B340 000582A0 38 21 00 10 */ addi r1, r1, 0x10
/* 8005B344 000582A4 4E 80 00 20 */ blr
.global AcceptScriptMsg__11CGameCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__11CGameCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 8005B348 000582A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8005B34C 000582AC 7C 08 02 A6 */ mflr r0
/* 8005B350 000582B0 2C 04 00 26 */ cmpwi r4, 0x26
/* 8005B354 000582B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005B358 000582B8 41 82 00 58 */ beq lbl_8005B3B0
/* 8005B35C 000582BC 40 80 00 10 */ bge lbl_8005B36C
/* 8005B360 000582C0 2C 04 00 25 */ cmpwi r4, 0x25
/* 8005B364 000582C4 40 80 00 14 */ bge lbl_8005B378
/* 8005B368 000582C8 48 00 00 48 */ b lbl_8005B3B0
lbl_8005B36C:
/* 8005B36C 000582CC 2C 04 00 28 */ cmpwi r4, 0x28
/* 8005B370 000582D0 40 80 00 40 */ bge lbl_8005B3B0
/* 8005B374 000582D4 48 00 00 20 */ b lbl_8005B394
lbl_8005B378:
/* 8005B378 000582D8 A0 05 00 00 */ lhz r0, 0(r5)
/* 8005B37C 000582DC 38 A1 00 10 */ addi r5, r1, 0x10
/* 8005B380 000582E0 38 80 00 01 */ li r4, 1
/* 8005B384 000582E4 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8005B388 000582E8 80 66 08 70 */ lwz r3, 0x870(r6)
/* 8005B38C 000582EC 4B FB 01 91 */ bl SetInsideFluid__14CCameraManagerFb9TUniqueId
/* 8005B390 000582F0 48 00 00 30 */ b lbl_8005B3C0
lbl_8005B394:
/* 8005B394 000582F4 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8005B398 000582F8 38 A1 00 0C */ addi r5, r1, 0xc
/* 8005B39C 000582FC 38 80 00 00 */ li r4, 0
/* 8005B3A0 00058300 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8005B3A4 00058304 80 66 08 70 */ lwz r3, 0x870(r6)
/* 8005B3A8 00058308 4B FB 01 75 */ bl SetInsideFluid__14CCameraManagerFb9TUniqueId
/* 8005B3AC 0005830C 48 00 00 14 */ b lbl_8005B3C0
lbl_8005B3B0:
/* 8005B3B0 00058310 A0 05 00 00 */ lhz r0, 0(r5)
/* 8005B3B4 00058314 38 A1 00 08 */ addi r5, r1, 8
/* 8005B3B8 00058318 B0 01 00 08 */ sth r0, 8(r1)
/* 8005B3BC 0005831C 4B FF 82 59 */ bl AcceptScriptMsg__6CActorF20EScriptObjectMessage9TUniqueIdR13CStateManager
lbl_8005B3C0:
/* 8005B3C0 00058320 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005B3C4 00058324 7C 08 03 A6 */ mtlr r0
/* 8005B3C8 00058328 38 21 00 20 */ addi r1, r1, 0x20
/* 8005B3CC 0005832C 4E 80 00 20 */ blr
.global FindClosestLengthOnSpline__13CCameraSplineCFf9CVector3f
FindClosestLengthOnSpline__13CCameraSplineCFf9CVector3f:
/* 8005B3D0 00058330 94 21 FE 10 */ stwu r1, -0x1f0(r1)
/* 8005B3D4 00058334 7C 08 02 A6 */ mflr r0
/* 8005B3D8 00058338 90 01 01 F4 */ stw r0, 0x1f4(r1)
/* 8005B3DC 0005833C DB E1 01 E0 */ stfd f31, 0x1e0(r1)
/* 8005B3E0 00058340 F3 E1 01 E8 */ psq_st f31, 488(r1), 0, qr0
/* 8005B3E4 00058344 DB C1 01 D0 */ stfd f30, 0x1d0(r1)
/* 8005B3E8 00058348 F3 C1 01 D8 */ psq_st f30, 472(r1), 0, qr0
/* 8005B3EC 0005834C DB A1 01 C0 */ stfd f29, 0x1c0(r1)
/* 8005B3F0 00058350 F3 A1 01 C8 */ psq_st f29, 456(r1), 0, qr0
/* 8005B3F4 00058354 DB 81 01 B0 */ stfd f28, 0x1b0(r1)
/* 8005B3F8 00058358 F3 81 01 B8 */ psq_st f28, 440(r1), 0, qr0
/* 8005B3FC 0005835C DB 61 01 A0 */ stfd f27, 0x1a0(r1)
/* 8005B400 00058360 F3 61 01 A8 */ psq_st f27, 424(r1), 0, qr0
/* 8005B404 00058364 DB 41 01 90 */ stfd f26, 0x190(r1)
/* 8005B408 00058368 F3 41 01 98 */ psq_st f26, 408(r1), 0, qr0
/* 8005B40C 0005836C DB 21 01 80 */ stfd f25, 0x180(r1)
/* 8005B410 00058370 F3 21 01 88 */ psq_st f25, 392(r1), 0, qr0
/* 8005B414 00058374 DB 01 01 70 */ stfd f24, 0x170(r1)
/* 8005B418 00058378 F3 01 01 78 */ psq_st f24, 376(r1), 0, qr0
/* 8005B41C 0005837C DA E1 01 60 */ stfd f23, 0x160(r1)
/* 8005B420 00058380 F2 E1 01 68 */ psq_st f23, 360(r1), 0, qr0
/* 8005B424 00058384 DA C1 01 50 */ stfd f22, 0x150(r1)
/* 8005B428 00058388 F2 C1 01 58 */ psq_st f22, 344(r1), 0, qr0
/* 8005B42C 0005838C DA A1 01 40 */ stfd f21, 0x140(r1)
/* 8005B430 00058390 F2 A1 01 48 */ psq_st f21, 328(r1), 0, qr0
/* 8005B434 00058394 DA 81 01 30 */ stfd f20, 0x130(r1)
/* 8005B438 00058398 F2 81 01 38 */ psq_st f20, 312(r1), 0, qr0
/* 8005B43C 0005839C DA 61 01 20 */ stfd f19, 0x120(r1)
/* 8005B440 000583A0 F2 61 01 28 */ psq_st f19, 296(r1), 0, qr0
/* 8005B444 000583A4 DA 41 01 10 */ stfd f18, 0x110(r1)
/* 8005B448 000583A8 F2 41 01 18 */ psq_st f18, 280(r1), 0, qr0
/* 8005B44C 000583AC DA 21 01 00 */ stfd f17, 0x100(r1)
/* 8005B450 000583B0 F2 21 01 08 */ psq_st f17, 264(r1), 0, qr0
/* 8005B454 000583B4 DA 01 00 F0 */ stfd f16, 0xf0(r1)
/* 8005B458 000583B8 F2 01 00 F8 */ psq_st f16, 248(r1), 0, qr0
/* 8005B45C 000583BC D9 E1 00 E0 */ stfd f15, 0xe0(r1)
/* 8005B460 000583C0 F1 E1 00 E8 */ psq_st f15, 232(r1), 0, qr0
/* 8005B464 000583C4 BF 41 00 C8 */ stmw r26, 0xc8(r1)
/* 8005B468 000583C8 7C 7A 1B 78 */ mr r26, r3
/* 8005B46C 000583CC C3 62 86 E4 */ lfs f27, lbl_805AA404@sda21(r2)
/* 8005B470 000583D0 88 03 00 48 */ lbz r0, 0x48(r3)
/* 8005B474 000583D4 FF 20 08 90 */ fmr f25, f1
/* 8005B478 000583D8 80 63 00 08 */ lwz r3, 8(r3)
/* 8005B47C 000583DC FF 40 D8 90 */ fmr f26, f27
/* 8005B480 000583E0 28 00 00 00 */ cmplwi r0, 0
/* 8005B484 000583E4 C3 82 86 D0 */ lfs f28, lbl_805AA3F0@sda21(r2)
/* 8005B488 000583E8 7C 9B 23 78 */ mr r27, r4
/* 8005B48C 000583EC 3B A3 FF FF */ addi r29, r3, -1
/* 8005B490 000583F0 41 82 00 08 */ beq lbl_8005B498
/* 8005B494 000583F4 3B BD 00 01 */ addi r29, r29, 1
lbl_8005B498:
/* 8005B498 000583F8 3B E0 00 00 */ li r31, 0
/* 8005B49C 000583FC C3 02 86 B8 */ lfs f24, lbl_805AA3D8@sda21(r2)
/* 8005B4A0 00058400 7F FE FB 78 */ mr r30, r31
/* 8005B4A4 00058404 3B 80 00 00 */ li r28, 0
/* 8005B4A8 00058408 48 00 05 20 */ b lbl_8005B9C8
lbl_8005B4AC:
/* 8005B4AC 0005840C 80 9A 00 10 */ lwz r4, 0x10(r26)
/* 8005B4B0 00058410 88 1A 00 48 */ lbz r0, 0x48(r26)
/* 8005B4B4 00058414 7C 64 FA 14 */ add r3, r4, r31
/* 8005B4B8 00058418 28 00 00 00 */ cmplwi r0, 0
/* 8005B4BC 0005841C C2 C3 00 00 */ lfs f22, 0(r3)
/* 8005B4C0 00058420 C2 E3 00 04 */ lfs f23, 4(r3)
/* 8005B4C4 00058424 C2 A3 00 08 */ lfs f21, 8(r3)
/* 8005B4C8 00058428 40 82 00 20 */ bne lbl_8005B4E8
/* 8005B4CC 0005842C 38 1C 00 01 */ addi r0, r28, 1
/* 8005B4D0 00058430 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005B4D4 00058434 7C 64 02 14 */ add r3, r4, r0
/* 8005B4D8 00058438 C2 83 00 00 */ lfs f20, 0(r3)
/* 8005B4DC 0005843C C2 63 00 04 */ lfs f19, 4(r3)
/* 8005B4E0 00058440 C2 43 00 08 */ lfs f18, 8(r3)
/* 8005B4E4 00058444 48 00 00 3C */ b lbl_8005B520
lbl_8005B4E8:
/* 8005B4E8 00058448 80 7A 00 08 */ lwz r3, 8(r26)
/* 8005B4EC 0005844C 38 03 FF FF */ addi r0, r3, -1
/* 8005B4F0 00058450 7C 1C 00 00 */ cmpw r28, r0
/* 8005B4F4 00058454 40 82 00 14 */ bne lbl_8005B508
/* 8005B4F8 00058458 C2 84 00 00 */ lfs f20, 0(r4)
/* 8005B4FC 0005845C C2 64 00 04 */ lfs f19, 4(r4)
/* 8005B500 00058460 C2 44 00 08 */ lfs f18, 8(r4)
/* 8005B504 00058464 48 00 00 1C */ b lbl_8005B520
lbl_8005B508:
/* 8005B508 00058468 38 1C 00 01 */ addi r0, r28, 1
/* 8005B50C 0005846C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005B510 00058470 7C 64 02 14 */ add r3, r4, r0
/* 8005B514 00058474 C2 83 00 00 */ lfs f20, 0(r3)
/* 8005B518 00058478 C2 63 00 04 */ lfs f19, 4(r3)
/* 8005B51C 0005847C C2 43 00 08 */ lfs f18, 8(r3)
lbl_8005B520:
/* 8005B520 00058480 EE 34 B0 28 */ fsubs f17, f20, f22
/* 8005B524 00058484 2C 1C 00 00 */ cmpwi r28, 0
/* 8005B528 00058488 EE 13 B8 28 */ fsubs f16, f19, f23
/* 8005B52C 0005848C ED F2 A8 28 */ fsubs f15, f18, f21
/* 8005B530 00058490 EF F6 A0 28 */ fsubs f31, f22, f20
/* 8005B534 00058494 D2 21 00 80 */ stfs f17, 0x80(r1)
/* 8005B538 00058498 EF D7 98 28 */ fsubs f30, f23, f19
/* 8005B53C 0005849C EF B5 90 28 */ fsubs f29, f21, f18
/* 8005B540 000584A0 D2 01 00 84 */ stfs f16, 0x84(r1)
/* 8005B544 000584A4 D1 E1 00 88 */ stfs f15, 0x88(r1)
/* 8005B548 000584A8 D3 E1 00 74 */ stfs f31, 0x74(r1)
/* 8005B54C 000584AC D3 C1 00 78 */ stfs f30, 0x78(r1)
/* 8005B550 000584B0 D3 A1 00 7C */ stfs f29, 0x7c(r1)
/* 8005B554 000584B4 41 82 00 48 */ beq lbl_8005B59C
/* 8005B558 000584B8 38 1C FF FF */ addi r0, r28, -1
/* 8005B55C 000584BC 80 7A 00 10 */ lwz r3, 0x10(r26)
/* 8005B560 000584C0 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005B564 000584C4 7C 63 02 14 */ add r3, r3, r0
/* 8005B568 000584C8 C0 43 00 04 */ lfs f2, 4(r3)
/* 8005B56C 000584CC C0 23 00 08 */ lfs f1, 8(r3)
/* 8005B570 000584D0 C0 03 00 00 */ lfs f0, 0(r3)
/* 8005B574 000584D4 EC 57 10 28 */ fsubs f2, f23, f2
/* 8005B578 000584D8 EC 35 08 28 */ fsubs f1, f21, f1
/* 8005B57C 000584DC EC 16 00 28 */ fsubs f0, f22, f0
/* 8005B580 000584E0 EC 42 80 2A */ fadds f2, f2, f16
/* 8005B584 000584E4 EC 21 78 2A */ fadds f1, f1, f15
/* 8005B588 000584E8 EC 00 88 2A */ fadds f0, f0, f17
/* 8005B58C 000584EC D0 41 00 84 */ stfs f2, 0x84(r1)
/* 8005B590 000584F0 D0 01 00 80 */ stfs f0, 0x80(r1)
/* 8005B594 000584F4 D0 21 00 88 */ stfs f1, 0x88(r1)
/* 8005B598 000584F8 48 00 00 84 */ b lbl_8005B61C
lbl_8005B59C:
/* 8005B59C 000584FC 80 9A 00 10 */ lwz r4, 0x10(r26)
/* 8005B5A0 00058500 88 1A 00 48 */ lbz r0, 0x48(r26)
/* 8005B5A4 00058504 C0 A4 00 00 */ lfs f5, 0(r4)
/* 8005B5A8 00058508 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8005B5AC 0005850C 28 00 00 00 */ cmplwi r0, 0
/* 8005B5B0 00058510 C0 64 00 04 */ lfs f3, 4(r4)
/* 8005B5B4 00058514 C0 44 00 10 */ lfs f2, 0x10(r4)
/* 8005B5B8 00058518 EC 85 00 28 */ fsubs f4, f5, f0
/* 8005B5BC 0005851C C0 24 00 08 */ lfs f1, 8(r4)
/* 8005B5C0 00058520 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 8005B5C4 00058524 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005B5C8 00058528 EC 85 20 2A */ fadds f4, f5, f4
/* 8005B5CC 0005852C EC 01 00 28 */ fsubs f0, f1, f0
/* 8005B5D0 00058530 EC 63 10 2A */ fadds f3, f3, f2
/* 8005B5D4 00058534 EC 01 00 2A */ fadds f0, f1, f0
/* 8005B5D8 00058538 41 82 00 20 */ beq lbl_8005B5F8
/* 8005B5DC 0005853C 80 7A 00 08 */ lwz r3, 8(r26)
/* 8005B5E0 00058540 38 03 FF FF */ addi r0, r3, -1
/* 8005B5E4 00058544 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005B5E8 00058548 7C 64 02 14 */ add r3, r4, r0
/* 8005B5EC 0005854C C0 83 00 00 */ lfs f4, 0(r3)
/* 8005B5F0 00058550 C0 63 00 04 */ lfs f3, 4(r3)
/* 8005B5F4 00058554 C0 03 00 08 */ lfs f0, 8(r3)
lbl_8005B5F8:
/* 8005B5F8 00058558 EC 56 20 28 */ fsubs f2, f22, f4
/* 8005B5FC 0005855C EC 37 18 28 */ fsubs f1, f23, f3
/* 8005B600 00058560 EC 15 00 28 */ fsubs f0, f21, f0
/* 8005B604 00058564 EC 42 88 2A */ fadds f2, f2, f17
/* 8005B608 00058568 EC 21 80 2A */ fadds f1, f1, f16
/* 8005B60C 0005856C EC 00 78 2A */ fadds f0, f0, f15
/* 8005B610 00058570 D0 41 00 80 */ stfs f2, 0x80(r1)
/* 8005B614 00058574 D0 21 00 84 */ stfs f1, 0x84(r1)
/* 8005B618 00058578 D0 01 00 88 */ stfs f0, 0x88(r1)
lbl_8005B61C:
/* 8005B61C 0005857C 38 61 00 80 */ addi r3, r1, 0x80
/* 8005B620 00058580 48 2B 92 D9 */ bl Normalize__9CVector3fFv
/* 8005B624 00058584 80 7A 00 08 */ lwz r3, 8(r26)
/* 8005B628 00058588 38 03 FF FE */ addi r0, r3, -2
/* 8005B62C 0005858C 7C 1C 00 00 */ cmpw r28, r0
/* 8005B630 00058590 40 80 00 48 */ bge lbl_8005B678
/* 8005B634 00058594 38 1C 00 02 */ addi r0, r28, 2
/* 8005B638 00058598 80 7A 00 10 */ lwz r3, 0x10(r26)
/* 8005B63C 0005859C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005B640 000585A0 7C 63 02 14 */ add r3, r3, r0
/* 8005B644 000585A4 C0 43 00 04 */ lfs f2, 4(r3)
/* 8005B648 000585A8 C0 23 00 08 */ lfs f1, 8(r3)
/* 8005B64C 000585AC C0 03 00 00 */ lfs f0, 0(r3)
/* 8005B650 000585B0 EC 53 10 28 */ fsubs f2, f19, f2
/* 8005B654 000585B4 EC 32 08 28 */ fsubs f1, f18, f1
/* 8005B658 000585B8 EC 14 00 28 */ fsubs f0, f20, f0
/* 8005B65C 000585BC EC 42 F0 2A */ fadds f2, f2, f30
/* 8005B660 000585C0 EC 21 E8 2A */ fadds f1, f1, f29
/* 8005B664 000585C4 EC 00 F8 2A */ fadds f0, f0, f31
/* 8005B668 000585C8 D0 41 00 78 */ stfs f2, 0x78(r1)
/* 8005B66C 000585CC D0 01 00 74 */ stfs f0, 0x74(r1)
/* 8005B670 000585D0 D0 21 00 7C */ stfs f1, 0x7c(r1)
/* 8005B674 000585D4 48 00 00 A4 */ b lbl_8005B718
lbl_8005B678:
/* 8005B678 000585D8 88 1A 00 48 */ lbz r0, 0x48(r26)
/* 8005B67C 000585DC 80 9A 00 10 */ lwz r4, 0x10(r26)
/* 8005B680 000585E0 28 00 00 00 */ cmplwi r0, 0
/* 8005B684 000585E4 41 82 00 30 */ beq lbl_8005B6B4
/* 8005B688 000585E8 38 1D FF FF */ addi r0, r29, -1
/* 8005B68C 000585EC 7C 1C 00 00 */ cmpw r28, r0
/* 8005B690 000585F0 40 82 00 14 */ bne lbl_8005B6A4
/* 8005B694 000585F4 C0 84 00 0C */ lfs f4, 0xc(r4)
/* 8005B698 000585F8 C0 64 00 10 */ lfs f3, 0x10(r4)
/* 8005B69C 000585FC C0 04 00 14 */ lfs f0, 0x14(r4)
/* 8005B6A0 00058600 48 00 00 54 */ b lbl_8005B6F4
lbl_8005B6A4:
/* 8005B6A4 00058604 C0 84 00 00 */ lfs f4, 0(r4)
/* 8005B6A8 00058608 C0 64 00 04 */ lfs f3, 4(r4)
/* 8005B6AC 0005860C C0 04 00 08 */ lfs f0, 8(r4)
/* 8005B6B0 00058610 48 00 00 44 */ b lbl_8005B6F4
lbl_8005B6B4:
/* 8005B6B4 00058614 38 1C 00 01 */ addi r0, r28, 1
/* 8005B6B8 00058618 7C 64 FA 14 */ add r3, r4, r31
/* 8005B6BC 0005861C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005B6C0 00058620 C0 83 00 00 */ lfs f4, 0(r3)
/* 8005B6C4 00058624 C0 43 00 04 */ lfs f2, 4(r3)
/* 8005B6C8 00058628 C0 03 00 08 */ lfs f0, 8(r3)
/* 8005B6CC 0005862C 7C 64 02 14 */ add r3, r4, r0
/* 8005B6D0 00058630 C0 A3 00 00 */ lfs f5, 0(r3)
/* 8005B6D4 00058634 C0 63 00 04 */ lfs f3, 4(r3)
/* 8005B6D8 00058638 C0 23 00 08 */ lfs f1, 8(r3)
/* 8005B6DC 0005863C EC 85 20 28 */ fsubs f4, f5, f4
/* 8005B6E0 00058640 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005B6E4 00058644 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005B6E8 00058648 EC 85 20 2A */ fadds f4, f5, f4
/* 8005B6EC 0005864C EC 63 10 2A */ fadds f3, f3, f2
/* 8005B6F0 00058650 EC 01 00 2A */ fadds f0, f1, f0
lbl_8005B6F4:
/* 8005B6F4 00058654 EC 54 20 28 */ fsubs f2, f20, f4
/* 8005B6F8 00058658 EC 33 18 28 */ fsubs f1, f19, f3
/* 8005B6FC 0005865C EC 12 00 28 */ fsubs f0, f18, f0
/* 8005B700 00058660 EC 42 F8 2A */ fadds f2, f2, f31
/* 8005B704 00058664 EC 21 F0 2A */ fadds f1, f1, f30
/* 8005B708 00058668 EC 00 E8 2A */ fadds f0, f0, f29
/* 8005B70C 0005866C D0 41 00 74 */ stfs f2, 0x74(r1)
/* 8005B710 00058670 D0 21 00 78 */ stfs f1, 0x78(r1)
/* 8005B714 00058674 D0 01 00 7C */ stfs f0, 0x7c(r1)
lbl_8005B718:
/* 8005B718 00058678 38 61 00 74 */ addi r3, r1, 0x74
/* 8005B71C 0005867C 48 2B 91 DD */ bl Normalize__9CVector3fFv
/* 8005B720 00058680 C0 1B 00 04 */ lfs f0, 4(r27)
/* 8005B724 00058684 38 61 00 50 */ addi r3, r1, 0x50
/* 8005B728 00058688 C0 3B 00 00 */ lfs f1, 0(r27)
/* 8005B72C 0005868C 38 81 00 44 */ addi r4, r1, 0x44
/* 8005B730 00058690 EC A0 B8 28 */ fsubs f5, f0, f23
/* 8005B734 00058694 C0 01 00 84 */ lfs f0, 0x84(r1)
/* 8005B738 00058698 EC 61 B0 28 */ fsubs f3, f1, f22
/* 8005B73C 0005869C C0 5B 00 08 */ lfs f2, 8(r27)
/* 8005B740 000586A0 C0 21 00 80 */ lfs f1, 0x80(r1)
/* 8005B744 000586A4 EC 05 00 32 */ fmuls f0, f5, f0
/* 8005B748 000586A8 EC 82 A8 28 */ fsubs f4, f2, f21
/* 8005B74C 000586AC C0 41 00 88 */ lfs f2, 0x88(r1)
/* 8005B750 000586B0 D0 61 00 5C */ stfs f3, 0x5c(r1)
/* 8005B754 000586B4 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 8005B758 000586B8 D0 A1 00 60 */ stfs f5, 0x60(r1)
/* 8005B75C 000586BC EE E4 00 BA */ fmadds f23, f4, f2, f0
/* 8005B760 000586C0 D0 81 00 64 */ stfs f4, 0x64(r1)
/* 8005B764 000586C4 D2 21 00 38 */ stfs f17, 0x38(r1)
/* 8005B768 000586C8 D2 01 00 3C */ stfs f16, 0x3c(r1)
/* 8005B76C 000586CC D1 E1 00 40 */ stfs f15, 0x40(r1)
/* 8005B770 000586D0 D2 21 00 44 */ stfs f17, 0x44(r1)
/* 8005B774 000586D4 D2 01 00 48 */ stfs f16, 0x48(r1)
/* 8005B778 000586D8 D1 E1 00 4C */ stfs f15, 0x4c(r1)
/* 8005B77C 000586DC 48 2B 90 D5 */ bl AsNormalized__9CVector3fCFv
/* 8005B780 000586E0 C0 1B 00 04 */ lfs f0, 4(r27)
/* 8005B784 000586E4 38 61 00 20 */ addi r3, r1, 0x20
/* 8005B788 000586E8 C0 3B 00 00 */ lfs f1, 0(r27)
/* 8005B78C 000586EC 38 81 00 14 */ addi r4, r1, 0x14
/* 8005B790 000586F0 EC E0 98 28 */ fsubs f7, f0, f19
/* 8005B794 000586F4 C0 01 00 78 */ lfs f0, 0x78(r1)
/* 8005B798 000586F8 C0 81 00 84 */ lfs f4, 0x84(r1)
/* 8005B79C 000586FC EC 41 A0 28 */ fsubs f2, f1, f20
/* 8005B7A0 00058700 C0 21 00 54 */ lfs f1, 0x54(r1)
/* 8005B7A4 00058704 EC 07 00 32 */ fmuls f0, f7, f0
/* 8005B7A8 00058708 C0 7B 00 08 */ lfs f3, 8(r27)
/* 8005B7AC 0005870C EC 84 00 72 */ fmuls f4, f4, f1
/* 8005B7B0 00058710 C0 21 00 74 */ lfs f1, 0x74(r1)
/* 8005B7B4 00058714 EC C3 90 28 */ fsubs f6, f3, f18
/* 8005B7B8 00058718 C0 A1 00 80 */ lfs f5, 0x80(r1)
/* 8005B7BC 0005871C C0 61 00 50 */ lfs f3, 0x50(r1)
/* 8005B7C0 00058720 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8005B7C4 00058724 C0 21 00 7C */ lfs f1, 0x7c(r1)
/* 8005B7C8 00058728 EC 65 20 FA */ fmadds f3, f5, f3, f4
/* 8005B7CC 0005872C C0 81 00 88 */ lfs f4, 0x88(r1)
/* 8005B7D0 00058730 EE C6 00 7A */ fmadds f22, f6, f1, f0
/* 8005B7D4 00058734 C0 01 00 58 */ lfs f0, 0x58(r1)
/* 8005B7D8 00058738 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 8005B7DC 0005873C ED E4 18 3A */ fmadds f15, f4, f0, f3
/* 8005B7E0 00058740 D0 E1 00 30 */ stfs f7, 0x30(r1)
/* 8005B7E4 00058744 D0 C1 00 34 */ stfs f6, 0x34(r1)
/* 8005B7E8 00058748 D3 E1 00 08 */ stfs f31, 8(r1)
/* 8005B7EC 0005874C D3 C1 00 0C */ stfs f30, 0xc(r1)
/* 8005B7F0 00058750 D3 A1 00 10 */ stfs f29, 0x10(r1)
/* 8005B7F4 00058754 D3 E1 00 14 */ stfs f31, 0x14(r1)
/* 8005B7F8 00058758 D3 C1 00 18 */ stfs f30, 0x18(r1)
/* 8005B7FC 0005875C D3 A1 00 1C */ stfs f29, 0x1c(r1)
/* 8005B800 00058760 48 2B 90 51 */ bl AsNormalized__9CVector3fCFv
/* 8005B804 00058764 C0 21 00 78 */ lfs f1, 0x78(r1)
/* 8005B808 00058768 EC B7 78 24 */ fdivs f5, f23, f15
/* 8005B80C 0005876C C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8005B810 00058770 88 1A 00 48 */ lbz r0, 0x48(r26)
/* 8005B814 00058774 C0 61 00 74 */ lfs f3, 0x74(r1)
/* 8005B818 00058778 C0 41 00 20 */ lfs f2, 0x20(r1)
/* 8005B81C 0005877C 28 00 00 00 */ cmplwi r0, 0
/* 8005B820 00058780 EC 01 00 32 */ fmuls f0, f1, f0
/* 8005B824 00058784 C0 81 00 7C */ lfs f4, 0x7c(r1)
/* 8005B828 00058788 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8005B82C 0005878C EC 03 00 BA */ fmadds f0, f3, f2, f0
/* 8005B830 00058790 EC 04 00 7A */ fmadds f0, f4, f1, f0
/* 8005B834 00058794 EC 16 00 24 */ fdivs f0, f22, f0
/* 8005B838 00058798 EC 05 00 2A */ fadds f0, f5, f0
/* 8005B83C 0005879C EC 45 00 24 */ fdivs f2, f5, f0
/* 8005B840 000587A0 40 82 00 3C */ bne lbl_8005B87C
/* 8005B844 000587A4 2C 1C 00 00 */ cmpwi r28, 0
/* 8005B848 000587A8 40 82 00 14 */ bne lbl_8005B85C
/* 8005B84C 000587AC C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005B850 000587B0 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8005B854 000587B4 40 80 00 08 */ bge lbl_8005B85C
/* 8005B858 000587B8 FC 40 00 90 */ fmr f2, f0
lbl_8005B85C:
/* 8005B85C 000587BC 80 7A 00 08 */ lwz r3, 8(r26)
/* 8005B860 000587C0 38 03 FF FE */ addi r0, r3, -2
/* 8005B864 000587C4 7C 1C 00 00 */ cmpw r28, r0
/* 8005B868 000587C8 40 82 00 14 */ bne lbl_8005B87C
/* 8005B86C 000587CC C0 02 86 BC */ lfs f0, lbl_805AA3DC@sda21(r2)
/* 8005B870 000587D0 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8005B874 000587D4 40 81 00 08 */ ble lbl_8005B87C
/* 8005B878 000587D8 FC 40 00 90 */ fmr f2, f0
lbl_8005B87C:
/* 8005B87C 000587DC FC 02 C0 40 */ fcmpo cr0, f2, f24
/* 8005B880 000587E0 4C 41 13 82 */ cror 2, 1, 2
/* 8005B884 000587E4 40 82 01 38 */ bne lbl_8005B9BC
/* 8005B888 000587E8 C0 02 86 BC */ lfs f0, lbl_805AA3DC@sda21(r2)
/* 8005B88C 000587EC FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8005B890 000587F0 4C 40 13 82 */ cror 2, 0, 2
/* 8005B894 000587F4 40 82 01 28 */ bne lbl_8005B9BC
/* 8005B898 000587F8 80 7A 00 08 */ lwz r3, 8(r26)
/* 8005B89C 000587FC 38 03 FF FF */ addi r0, r3, -1
/* 8005B8A0 00058800 7C 1C 00 00 */ cmpw r28, r0
/* 8005B8A4 00058804 40 82 00 18 */ bne lbl_8005B8BC
/* 8005B8A8 00058808 80 7A 00 30 */ lwz r3, 0x30(r26)
/* 8005B8AC 0005880C C0 3A 00 44 */ lfs f1, 0x44(r26)
/* 8005B8B0 00058810 7C 03 F4 2E */ lfsx f0, r3, r30
/* 8005B8B4 00058814 EC 21 00 28 */ fsubs f1, f1, f0
/* 8005B8B8 00058818 48 00 00 1C */ b lbl_8005B8D4
lbl_8005B8BC:
/* 8005B8BC 0005881C 38 1C 00 01 */ addi r0, r28, 1
/* 8005B8C0 00058820 80 7A 00 30 */ lwz r3, 0x30(r26)
/* 8005B8C4 00058824 54 00 10 3A */ slwi r0, r0, 2
/* 8005B8C8 00058828 7C 23 04 2E */ lfsx f1, r3, r0
/* 8005B8CC 0005882C 7C 03 F4 2E */ lfsx f0, r3, r30
/* 8005B8D0 00058830 EC 21 00 28 */ fsubs f1, f1, f0
lbl_8005B8D4:
/* 8005B8D4 00058834 80 BA 00 30 */ lwz r5, 0x30(r26)
/* 8005B8D8 00058838 7F 44 D3 78 */ mr r4, r26
/* 8005B8DC 0005883C 38 61 00 8C */ addi r3, r1, 0x8c
/* 8005B8E0 00058840 7C 05 F4 2E */ lfsx f0, r5, r30
/* 8005B8E4 00058844 ED E2 00 7A */ fmadds f15, f2, f1, f0
/* 8005B8E8 00058848 FC 20 78 90 */ fmr f1, f15
/* 8005B8EC 0005884C 48 00 01 95 */ bl GetInterpolatedSplinePointByLength__13CCameraSplineCFf
/* 8005B8F0 00058850 C0 3B 00 04 */ lfs f1, 4(r27)
/* 8005B8F4 00058854 38 61 00 68 */ addi r3, r1, 0x68
/* 8005B8F8 00058858 C0 01 00 A8 */ lfs f0, 0xa8(r1)
/* 8005B8FC 0005885C C0 7B 00 08 */ lfs f3, 8(r27)
/* 8005B900 00058860 C0 41 00 B8 */ lfs f2, 0xb8(r1)
/* 8005B904 00058864 EC 81 00 28 */ fsubs f4, f1, f0
/* 8005B908 00058868 C0 3B 00 00 */ lfs f1, 0(r27)
/* 8005B90C 0005886C C0 01 00 98 */ lfs f0, 0x98(r1)
/* 8005B910 00058870 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005B914 00058874 D0 81 00 6C */ stfs f4, 0x6c(r1)
/* 8005B918 00058878 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005B91C 0005887C C2 02 86 B8 */ lfs f16, lbl_805AA3D8@sda21(r2)
/* 8005B920 00058880 D0 41 00 70 */ stfs f2, 0x70(r1)
/* 8005B924 00058884 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8005B928 00058888 48 2B 8D D1 */ bl CanBeNormalized__9CVector3fCFv
/* 8005B92C 0005888C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005B930 00058890 41 82 00 10 */ beq lbl_8005B940
/* 8005B934 00058894 38 61 00 68 */ addi r3, r1, 0x68
/* 8005B938 00058898 48 2B 8F 81 */ bl Magnitude__9CVector3fCFv
/* 8005B93C 0005889C FE 00 08 90 */ fmr f16, f1
lbl_8005B940:
/* 8005B940 000588A0 EC 0F C8 28 */ fsubs f0, f15, f25
/* 8005B944 000588A4 88 1A 00 48 */ lbz r0, 0x48(r26)
/* 8005B948 000588A8 28 00 00 00 */ cmplwi r0, 0
/* 8005B94C 000588AC FC 00 02 10 */ fabs f0, f0
/* 8005B950 000588B0 FC 20 00 18 */ frsp f1, f0
/* 8005B954 000588B4 FC 60 08 90 */ fmr f3, f1
/* 8005B958 000588B8 41 82 00 18 */ beq lbl_8005B970
/* 8005B95C 000588BC C0 1A 00 44 */ lfs f0, 0x44(r26)
/* 8005B960 000588C0 EC 00 08 28 */ fsubs f0, f0, f1
/* 8005B964 000588C4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B968 000588C8 40 81 00 08 */ ble lbl_8005B970
/* 8005B96C 000588CC FC 60 00 90 */ fmr f3, f0
lbl_8005B970:
/* 8005B970 000588D0 EC 50 D0 28 */ fsubs f2, f16, f26
/* 8005B974 000588D4 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
/* 8005B978 000588D8 C0 02 86 E0 */ lfs f0, lbl_805AA400@sda21(r2)
/* 8005B97C 000588DC FC 40 12 10 */ fabs f2, f2
/* 8005B980 000588E0 FC 40 10 18 */ frsp f2, f2
/* 8005B984 000588E4 EC 22 08 28 */ fsubs f1, f2, f1
/* 8005B988 000588E8 FC 20 0A 10 */ fabs f1, f1
/* 8005B98C 000588EC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005B990 000588F0 40 80 00 18 */ bge lbl_8005B9A8
/* 8005B994 000588F4 FC 03 D8 40 */ fcmpo cr0, f3, f27
/* 8005B998 000588F8 40 80 00 24 */ bge lbl_8005B9BC
/* 8005B99C 000588FC FF 80 78 90 */ fmr f28, f15
/* 8005B9A0 00058900 FF 60 18 90 */ fmr f27, f3
/* 8005B9A4 00058904 48 00 00 18 */ b lbl_8005B9BC
lbl_8005B9A8:
/* 8005B9A8 00058908 FC 10 D0 40 */ fcmpo cr0, f16, f26
/* 8005B9AC 0005890C 40 80 00 10 */ bge lbl_8005B9BC
/* 8005B9B0 00058910 FF 80 78 90 */ fmr f28, f15
/* 8005B9B4 00058914 FF 60 18 90 */ fmr f27, f3
/* 8005B9B8 00058918 FF 40 80 90 */ fmr f26, f16
lbl_8005B9BC:
/* 8005B9BC 0005891C 3B FF 00 0C */ addi r31, r31, 0xc
/* 8005B9C0 00058920 3B DE 00 04 */ addi r30, r30, 4
/* 8005B9C4 00058924 3B 9C 00 01 */ addi r28, r28, 1
lbl_8005B9C8:
/* 8005B9C8 00058928 7C 1C E8 00 */ cmpw r28, r29
/* 8005B9CC 0005892C 41 80 FA E0 */ blt lbl_8005B4AC
/* 8005B9D0 00058930 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005B9D4 00058934 FC 1C 00 40 */ fcmpo cr0, f28, f0
/* 8005B9D8 00058938 40 80 00 08 */ bge lbl_8005B9E0
/* 8005B9DC 0005893C FF 80 00 90 */ fmr f28, f0
lbl_8005B9E0:
/* 8005B9E0 00058940 FC 20 E0 90 */ fmr f1, f28
/* 8005B9E4 00058944 E3 E1 01 E8 */ psq_l f31, 488(r1), 0, qr0
/* 8005B9E8 00058948 CB E1 01 E0 */ lfd f31, 0x1e0(r1)
/* 8005B9EC 0005894C E3 C1 01 D8 */ psq_l f30, 472(r1), 0, qr0
/* 8005B9F0 00058950 CB C1 01 D0 */ lfd f30, 0x1d0(r1)
/* 8005B9F4 00058954 E3 A1 01 C8 */ psq_l f29, 456(r1), 0, qr0
/* 8005B9F8 00058958 CB A1 01 C0 */ lfd f29, 0x1c0(r1)
/* 8005B9FC 0005895C E3 81 01 B8 */ psq_l f28, 440(r1), 0, qr0
/* 8005BA00 00058960 CB 81 01 B0 */ lfd f28, 0x1b0(r1)
/* 8005BA04 00058964 E3 61 01 A8 */ psq_l f27, 424(r1), 0, qr0
/* 8005BA08 00058968 CB 61 01 A0 */ lfd f27, 0x1a0(r1)
/* 8005BA0C 0005896C E3 41 01 98 */ psq_l f26, 408(r1), 0, qr0
/* 8005BA10 00058970 CB 41 01 90 */ lfd f26, 0x190(r1)
/* 8005BA14 00058974 E3 21 01 88 */ psq_l f25, 392(r1), 0, qr0
/* 8005BA18 00058978 CB 21 01 80 */ lfd f25, 0x180(r1)
/* 8005BA1C 0005897C E3 01 01 78 */ psq_l f24, 376(r1), 0, qr0
/* 8005BA20 00058980 CB 01 01 70 */ lfd f24, 0x170(r1)
/* 8005BA24 00058984 E2 E1 01 68 */ psq_l f23, 360(r1), 0, qr0
/* 8005BA28 00058988 CA E1 01 60 */ lfd f23, 0x160(r1)
/* 8005BA2C 0005898C E2 C1 01 58 */ psq_l f22, 344(r1), 0, qr0
/* 8005BA30 00058990 CA C1 01 50 */ lfd f22, 0x150(r1)
/* 8005BA34 00058994 E2 A1 01 48 */ psq_l f21, 328(r1), 0, qr0
/* 8005BA38 00058998 CA A1 01 40 */ lfd f21, 0x140(r1)
/* 8005BA3C 0005899C E2 81 01 38 */ psq_l f20, 312(r1), 0, qr0
/* 8005BA40 000589A0 CA 81 01 30 */ lfd f20, 0x130(r1)
/* 8005BA44 000589A4 E2 61 01 28 */ psq_l f19, 296(r1), 0, qr0
/* 8005BA48 000589A8 CA 61 01 20 */ lfd f19, 0x120(r1)
/* 8005BA4C 000589AC E2 41 01 18 */ psq_l f18, 280(r1), 0, qr0
/* 8005BA50 000589B0 CA 41 01 10 */ lfd f18, 0x110(r1)
/* 8005BA54 000589B4 E2 21 01 08 */ psq_l f17, 264(r1), 0, qr0
/* 8005BA58 000589B8 CA 21 01 00 */ lfd f17, 0x100(r1)
/* 8005BA5C 000589BC E2 01 00 F8 */ psq_l f16, 248(r1), 0, qr0
/* 8005BA60 000589C0 CA 01 00 F0 */ lfd f16, 0xf0(r1)
/* 8005BA64 000589C4 E1 E1 00 E8 */ psq_l f15, 232(r1), 0, qr0
/* 8005BA68 000589C8 C9 E1 00 E0 */ lfd f15, 0xe0(r1)
/* 8005BA6C 000589CC BB 41 00 C8 */ lmw r26, 0xc8(r1)
/* 8005BA70 000589D0 80 01 01 F4 */ lwz r0, 0x1f4(r1)
/* 8005BA74 000589D4 7C 08 03 A6 */ mtlr r0
/* 8005BA78 000589D8 38 21 01 F0 */ addi r1, r1, 0x1f0
/* 8005BA7C 000589DC 4E 80 00 20 */ blr
.global GetInterpolatedSplinePointByLength__13CCameraSplineCFf
GetInterpolatedSplinePointByLength__13CCameraSplineCFf:
/* 8005BA80 000589E0 94 21 FE 40 */ stwu r1, -0x1c0(r1)
/* 8005BA84 000589E4 7C 08 02 A6 */ mflr r0
/* 8005BA88 000589E8 90 01 01 C4 */ stw r0, 0x1c4(r1)
/* 8005BA8C 000589EC DB E1 01 B0 */ stfd f31, 0x1b0(r1)
/* 8005BA90 000589F0 F3 E1 01 B8 */ psq_st f31, 440(r1), 0, qr0
/* 8005BA94 000589F4 93 E1 01 AC */ stw r31, 0x1ac(r1)
/* 8005BA98 000589F8 93 C1 01 A8 */ stw r30, 0x1a8(r1)
/* 8005BA9C 000589FC 93 A1 01 A4 */ stw r29, 0x1a4(r1)
/* 8005BAA0 00058A00 80 A4 00 08 */ lwz r5, 8(r4)
/* 8005BAA4 00058A04 7C 9E 23 78 */ mr r30, r4
/* 8005BAA8 00058A08 7C 7D 1B 78 */ mr r29, r3
/* 8005BAAC 00058A0C 2C 05 00 00 */ cmpwi r5, 0
/* 8005BAB0 00058A10 40 81 04 EC */ ble lbl_8005BF9C
/* 8005BAB4 00058A14 38 05 FF FF */ addi r0, r5, -1
/* 8005BAB8 00058A18 3B E0 00 00 */ li r31, 0
/* 8005BABC 00058A1C 38 C0 00 01 */ li r6, 1
/* 8005BAC0 00058A20 38 80 00 04 */ li r4, 4
/* 8005BAC4 00058A24 7C 09 03 A6 */ mtctr r0
/* 8005BAC8 00058A28 2C 05 00 01 */ cmpwi r5, 1
/* 8005BACC 00058A2C 40 81 00 28 */ ble lbl_8005BAF4
lbl_8005BAD0:
/* 8005BAD0 00058A30 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 8005BAD4 00058A34 7C 03 24 2E */ lfsx f0, r3, r4
/* 8005BAD8 00058A38 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8005BADC 00058A3C 40 81 00 0C */ ble lbl_8005BAE8
/* 8005BAE0 00058A40 3B E6 FF FF */ addi r31, r6, -1
/* 8005BAE4 00058A44 48 00 00 10 */ b lbl_8005BAF4
lbl_8005BAE8:
/* 8005BAE8 00058A48 38 84 00 04 */ addi r4, r4, 4
/* 8005BAEC 00058A4C 38 C6 00 01 */ addi r6, r6, 1
/* 8005BAF0 00058A50 42 00 FF E0 */ bdnz lbl_8005BAD0
lbl_8005BAF4:
/* 8005BAF4 00058A54 7C 06 28 00 */ cmpw r6, r5
/* 8005BAF8 00058A58 40 82 00 08 */ bne lbl_8005BB00
/* 8005BAFC 00058A5C 3B E6 FF FF */ addi r31, r6, -1
lbl_8005BB00:
/* 8005BB00 00058A60 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005BB04 00058A64 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005BB08 00058A68 40 80 00 08 */ bge lbl_8005BB10
/* 8005BB0C 00058A6C 3B E0 00 00 */ li r31, 0
lbl_8005BB10:
/* 8005BB10 00058A70 C0 5E 00 44 */ lfs f2, 0x44(r30)
/* 8005BB14 00058A74 FC 01 10 40 */ fcmpo cr0, f1, f2
/* 8005BB18 00058A78 4C 41 13 82 */ cror 2, 1, 2
/* 8005BB1C 00058A7C 40 82 00 24 */ bne lbl_8005BB40
/* 8005BB20 00058A80 88 1E 00 48 */ lbz r0, 0x48(r30)
/* 8005BB24 00058A84 28 00 00 00 */ cmplwi r0, 0
/* 8005BB28 00058A88 41 82 00 10 */ beq lbl_8005BB38
/* 8005BB2C 00058A8C EC 21 10 28 */ fsubs f1, f1, f2
/* 8005BB30 00058A90 3B E0 00 00 */ li r31, 0
/* 8005BB34 00058A94 48 00 00 0C */ b lbl_8005BB40
lbl_8005BB38:
/* 8005BB38 00058A98 3B E5 FF FE */ addi r31, r5, -2
/* 8005BB3C 00058A9C FC 20 10 90 */ fmr f1, f2
lbl_8005BB40:
/* 8005BB40 00058AA0 38 05 FF FF */ addi r0, r5, -1
/* 8005BB44 00058AA4 7C 1F 00 00 */ cmpw r31, r0
/* 8005BB48 00058AA8 40 82 00 3C */ bne lbl_8005BB84
/* 8005BB4C 00058AAC 88 1E 00 48 */ lbz r0, 0x48(r30)
/* 8005BB50 00058AB0 28 00 00 00 */ cmplwi r0, 0
/* 8005BB54 00058AB4 41 82 00 18 */ beq lbl_8005BB6C
/* 8005BB58 00058AB8 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 8005BB5C 00058ABC 57 E0 10 3A */ slwi r0, r31, 2
/* 8005BB60 00058AC0 7C 03 04 2E */ lfsx f0, r3, r0
/* 8005BB64 00058AC4 EC 42 00 28 */ fsubs f2, f2, f0
/* 8005BB68 00058AC8 48 00 00 38 */ b lbl_8005BBA0
lbl_8005BB6C:
/* 8005BB6C 00058ACC 38 05 FF FE */ addi r0, r5, -2
/* 8005BB70 00058AD0 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 8005BB74 00058AD4 54 00 10 3A */ slwi r0, r0, 2
/* 8005BB78 00058AD8 7C 03 04 2E */ lfsx f0, r3, r0
/* 8005BB7C 00058ADC EC 42 00 28 */ fsubs f2, f2, f0
/* 8005BB80 00058AE0 48 00 00 20 */ b lbl_8005BBA0
lbl_8005BB84:
/* 8005BB84 00058AE4 38 1F 00 01 */ addi r0, r31, 1
/* 8005BB88 00058AE8 80 9E 00 30 */ lwz r4, 0x30(r30)
/* 8005BB8C 00058AEC 57 E3 10 3A */ slwi r3, r31, 2
/* 8005BB90 00058AF0 54 00 10 3A */ slwi r0, r0, 2
/* 8005BB94 00058AF4 7C 04 1C 2E */ lfsx f0, r4, r3
/* 8005BB98 00058AF8 7C 44 04 2E */ lfsx f2, r4, r0
/* 8005BB9C 00058AFC EC 42 00 28 */ fsubs f2, f2, f0
lbl_8005BBA0:
/* 8005BBA0 00058B00 80 BE 00 30 */ lwz r5, 0x30(r30)
/* 8005BBA4 00058B04 57 E0 10 3A */ slwi r0, r31, 2
/* 8005BBA8 00058B08 38 81 00 0C */ addi r4, r1, 0xc
/* 8005BBAC 00058B0C 38 6D 82 C8 */ addi r3, r13, lbl_805A6E88@sda21
/* 8005BBB0 00058B10 7C 05 04 2E */ lfsx f0, r5, r0
/* 8005BBB4 00058B14 38 AD 82 CC */ addi r5, r13, lbl_805A6E8C@sda21
/* 8005BBB8 00058B18 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005BBBC 00058B1C EC 00 10 24 */ fdivs f0, f0, f2
/* 8005BBC0 00058B20 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8005BBC4 00058B24 4B FB 06 F1 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8005BBC8 00058B28 C3 E3 00 00 */ lfs f31, 0(r3)
/* 8005BBCC 00058B2C 38 00 00 00 */ li r0, 0
/* 8005BBD0 00058B30 7F C3 F3 78 */ mr r3, r30
/* 8005BBD4 00058B34 7F E4 FB 78 */ mr r4, r31
/* 8005BBD8 00058B38 90 01 01 6C */ stw r0, 0x16c(r1)
/* 8005BBDC 00058B3C 38 A1 01 6C */ addi r5, r1, 0x16c
/* 8005BBE0 00058B40 38 C1 01 38 */ addi r6, r1, 0x138
/* 8005BBE4 00058B44 90 01 01 38 */ stw r0, 0x138(r1)
/* 8005BBE8 00058B48 48 00 0C 21 */ bl "GetSurroundingPoints__13CCameraSplineFiRQ24rstl27reserved_vector<9CVector3f>RQ24rstl27reserved_vector<9CVector3f>"
/* 8005BBEC 00058B4C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005BBF0 00058B50 41 82 03 08 */ beq lbl_8005BEF8
/* 8005BBF4 00058B54 C0 21 01 4C */ lfs f1, 0x14c(r1)
/* 8005BBF8 00058B58 3B C1 01 54 */ addi r30, r1, 0x154
/* 8005BBFC 00058B5C C0 01 01 58 */ lfs f0, 0x158(r1)
/* 8005BC00 00058B60 3B E1 01 48 */ addi r31, r1, 0x148
/* 8005BC04 00058B64 C0 41 01 48 */ lfs f2, 0x148(r1)
/* 8005BC08 00058B68 EC 01 00 32 */ fmuls f0, f1, f0
/* 8005BC0C 00058B6C C0 21 01 54 */ lfs f1, 0x154(r1)
/* 8005BC10 00058B70 C0 81 01 50 */ lfs f4, 0x150(r1)
/* 8005BC14 00058B74 C0 61 01 5C */ lfs f3, 0x15c(r1)
/* 8005BC18 00058B78 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8005BC1C 00058B7C C8 02 86 C8 */ lfd f0, lbl_805AA3E8@sda21(r2)
/* 8005BC20 00058B80 EC 24 08 FA */ fmadds f1, f4, f3, f1
/* 8005BC24 00058B84 FC 40 0A 10 */ fabs f2, f1
/* 8005BC28 00058B88 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8005BC2C 00058B8C 40 81 00 14 */ ble lbl_8005BC40
/* 8005BC30 00058B90 C0 02 86 D0 */ lfs f0, lbl_805AA3F0@sda21(r2)
/* 8005BC34 00058B94 C0 42 86 BC */ lfs f2, lbl_805AA3DC@sda21(r2)
/* 8005BC38 00058B98 FC 01 00 AE */ fsel f0, f1, f2, f0
/* 8005BC3C 00058B9C EC 22 00 32 */ fmuls f1, f2, f0
lbl_8005BC40:
/* 8005BC40 00058BA0 C0 02 86 E8 */ lfs f0, lbl_805AA408@sda21(r2)
/* 8005BC44 00058BA4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005BC48 00058BA8 4C 41 13 82 */ cror 2, 1, 2
/* 8005BC4C 00058BAC 40 82 01 14 */ bne lbl_8005BD60
/* 8005BC50 00058BB0 3C 80 80 5A */ lis r4, skZero3f@ha
/* 8005BC54 00058BB4 3C 60 80 5A */ lis r3, lbl_805A66F4@ha
/* 8005BC58 00058BB8 38 C3 66 F4 */ addi r6, r3, lbl_805A66F4@l
/* 8005BC5C 00058BBC 7F C5 F3 78 */ mr r5, r30
/* 8005BC60 00058BC0 38 84 66 A0 */ addi r4, r4, skZero3f@l
/* 8005BC64 00058BC4 38 61 00 A8 */ addi r3, r1, 0xa8
/* 8005BC68 00058BC8 48 2B 7E A9 */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 8005BC6C 00058BCC 38 61 01 08 */ addi r3, r1, 0x108
/* 8005BC70 00058BD0 38 81 00 A8 */ addi r4, r1, 0xa8
/* 8005BC74 00058BD4 48 2B 6F 01 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8005BC78 00058BD8 FC 20 F8 90 */ fmr f1, f31
/* 8005BC7C 00058BDC 38 81 01 70 */ addi r4, r1, 0x170
/* 8005BC80 00058BE0 38 E4 00 24 */ addi r7, r4, 0x24
/* 8005BC84 00058BE4 38 61 00 50 */ addi r3, r1, 0x50
/* 8005BC88 00058BE8 38 A4 00 0C */ addi r5, r4, 0xc
/* 8005BC8C 00058BEC 38 C4 00 18 */ addi r6, r4, 0x18
/* 8005BC90 00058BF0 48 2B 94 35 */ bl GetCatmullRomSplinePoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff
/* 8005BC94 00058BF4 C0 41 00 50 */ lfs f2, 0x50(r1)
/* 8005BC98 00058BF8 7F A3 EB 78 */ mr r3, r29
/* 8005BC9C 00058BFC C0 21 00 54 */ lfs f1, 0x54(r1)
/* 8005BCA0 00058C00 38 81 01 08 */ addi r4, r1, 0x108
/* 8005BCA4 00058C04 C0 01 00 58 */ lfs f0, 0x58(r1)
/* 8005BCA8 00058C08 D0 41 01 14 */ stfs f2, 0x114(r1)
/* 8005BCAC 00058C0C D0 21 01 24 */ stfs f1, 0x124(r1)
/* 8005BCB0 00058C10 D0 01 01 34 */ stfs f0, 0x134(r1)
/* 8005BCB4 00058C14 48 2B 6E C1 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8005BCB8 00058C18 80 A1 01 38 */ lwz r5, 0x138(r1)
/* 8005BCBC 00058C1C 38 60 00 00 */ li r3, 0
/* 8005BCC0 00058C20 2C 05 00 00 */ cmpwi r5, 0
/* 8005BCC4 00058C24 40 81 00 40 */ ble lbl_8005BD04
/* 8005BCC8 00058C28 2C 05 00 08 */ cmpwi r5, 8
/* 8005BCCC 00058C2C 38 85 FF F8 */ addi r4, r5, -8
/* 8005BCD0 00058C30 40 81 00 20 */ ble lbl_8005BCF0
/* 8005BCD4 00058C34 38 04 00 07 */ addi r0, r4, 7
/* 8005BCD8 00058C38 54 00 E8 FE */ srwi r0, r0, 3
/* 8005BCDC 00058C3C 7C 09 03 A6 */ mtctr r0
/* 8005BCE0 00058C40 2C 04 00 00 */ cmpwi r4, 0
/* 8005BCE4 00058C44 40 81 00 0C */ ble lbl_8005BCF0
lbl_8005BCE8:
/* 8005BCE8 00058C48 38 63 00 08 */ addi r3, r3, 8
/* 8005BCEC 00058C4C 42 00 FF FC */ bdnz lbl_8005BCE8
lbl_8005BCF0:
/* 8005BCF0 00058C50 7C 03 28 50 */ subf r0, r3, r5
/* 8005BCF4 00058C54 7C 09 03 A6 */ mtctr r0
/* 8005BCF8 00058C58 7C 03 28 00 */ cmpw r3, r5
/* 8005BCFC 00058C5C 40 80 00 08 */ bge lbl_8005BD04
lbl_8005BD00:
/* 8005BD00 00058C60 42 00 00 00 */ bdnz lbl_8005BD00
lbl_8005BD04:
/* 8005BD04 00058C64 80 A1 01 6C */ lwz r5, 0x16c(r1)
/* 8005BD08 00058C68 38 60 00 00 */ li r3, 0
/* 8005BD0C 00058C6C 90 61 01 38 */ stw r3, 0x138(r1)
/* 8005BD10 00058C70 2C 05 00 00 */ cmpwi r5, 0
/* 8005BD14 00058C74 40 81 00 40 */ ble lbl_8005BD54
/* 8005BD18 00058C78 2C 05 00 08 */ cmpwi r5, 8
/* 8005BD1C 00058C7C 38 85 FF F8 */ addi r4, r5, -8
/* 8005BD20 00058C80 40 81 00 20 */ ble lbl_8005BD40
/* 8005BD24 00058C84 38 04 00 07 */ addi r0, r4, 7
/* 8005BD28 00058C88 54 00 E8 FE */ srwi r0, r0, 3
/* 8005BD2C 00058C8C 7C 09 03 A6 */ mtctr r0
/* 8005BD30 00058C90 2C 04 00 00 */ cmpwi r4, 0
/* 8005BD34 00058C94 40 81 00 0C */ ble lbl_8005BD40
lbl_8005BD38:
/* 8005BD38 00058C98 38 63 00 08 */ addi r3, r3, 8
/* 8005BD3C 00058C9C 42 00 FF FC */ bdnz lbl_8005BD38
lbl_8005BD40:
/* 8005BD40 00058CA0 7C 03 28 50 */ subf r0, r3, r5
/* 8005BD44 00058CA4 7C 09 03 A6 */ mtctr r0
/* 8005BD48 00058CA8 7C 03 28 00 */ cmpw r3, r5
/* 8005BD4C 00058CAC 40 80 00 08 */ bge lbl_8005BD54
lbl_8005BD50:
/* 8005BD50 00058CB0 42 00 00 00 */ bdnz lbl_8005BD50
lbl_8005BD54:
/* 8005BD54 00058CB4 38 00 00 00 */ li r0, 0
/* 8005BD58 00058CB8 90 01 01 6C */ stw r0, 0x16c(r1)
/* 8005BD5C 00058CBC 48 00 02 50 */ b lbl_8005BFAC
lbl_8005BD60:
/* 8005BD60 00058CC0 48 33 8E CD */ bl acos
/* 8005BD64 00058CC4 FC 00 08 18 */ frsp f0, f1
/* 8005BD68 00058CC8 7F C4 F3 78 */ mr r4, r30
/* 8005BD6C 00058CCC 38 61 00 28 */ addi r3, r1, 0x28
/* 8005BD70 00058CD0 EC 1F 00 32 */ fmuls f0, f31, f0
/* 8005BD74 00058CD4 D0 01 00 08 */ stfs f0, 8(r1)
/* 8005BD78 00058CD8 48 2B 80 59 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8005BD7C 00058CDC 7C 7E 1B 78 */ mr r30, r3
/* 8005BD80 00058CE0 7F E4 FB 78 */ mr r4, r31
/* 8005BD84 00058CE4 38 61 00 34 */ addi r3, r1, 0x34
/* 8005BD88 00058CE8 48 2B 80 49 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8005BD8C 00058CEC 7C 64 1B 78 */ mr r4, r3
/* 8005BD90 00058CF0 7F C5 F3 78 */ mr r5, r30
/* 8005BD94 00058CF4 38 61 00 40 */ addi r3, r1, 0x40
/* 8005BD98 00058CF8 38 C1 00 08 */ addi r6, r1, 8
/* 8005BD9C 00058CFC 48 2B 58 F9 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8005BDA0 00058D00 C0 61 00 40 */ lfs f3, 0x40(r1)
/* 8005BDA4 00058D04 7F E5 FB 78 */ mr r5, r31
/* 8005BDA8 00058D08 C0 41 00 44 */ lfs f2, 0x44(r1)
/* 8005BDAC 00058D0C 38 61 00 1C */ addi r3, r1, 0x1c
/* 8005BDB0 00058D10 C0 21 00 48 */ lfs f1, 0x48(r1)
/* 8005BDB4 00058D14 38 81 00 68 */ addi r4, r1, 0x68
/* 8005BDB8 00058D18 C0 01 00 4C */ lfs f0, 0x4c(r1)
/* 8005BDBC 00058D1C D0 61 00 68 */ stfs f3, 0x68(r1)
/* 8005BDC0 00058D20 D0 41 00 6C */ stfs f2, 0x6c(r1)
/* 8005BDC4 00058D24 D0 21 00 70 */ stfs f1, 0x70(r1)
/* 8005BDC8 00058D28 D0 01 00 74 */ stfs f0, 0x74(r1)
/* 8005BDCC 00058D2C 48 2B 54 99 */ bl Transform__11CQuaternionCFRC9CVector3f
/* 8005BDD0 00058D30 C0 41 00 1C */ lfs f2, 0x1c(r1)
/* 8005BDD4 00058D34 3C 80 80 5A */ lis r4, skZero3f@ha
/* 8005BDD8 00058D38 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8005BDDC 00058D3C 3C 60 80 5A */ lis r3, lbl_805A66F4@ha
/* 8005BDE0 00058D40 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8005BDE4 00058D44 38 C3 66 F4 */ addi r6, r3, lbl_805A66F4@l
/* 8005BDE8 00058D48 D0 41 00 5C */ stfs f2, 0x5c(r1)
/* 8005BDEC 00058D4C 38 84 66 A0 */ addi r4, r4, skZero3f@l
/* 8005BDF0 00058D50 38 61 00 78 */ addi r3, r1, 0x78
/* 8005BDF4 00058D54 38 A1 00 5C */ addi r5, r1, 0x5c
/* 8005BDF8 00058D58 D0 21 00 60 */ stfs f1, 0x60(r1)
/* 8005BDFC 00058D5C D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8005BE00 00058D60 48 2B 7D 11 */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 8005BE04 00058D64 38 61 00 D8 */ addi r3, r1, 0xd8
/* 8005BE08 00058D68 38 81 00 78 */ addi r4, r1, 0x78
/* 8005BE0C 00058D6C 48 2B 6D 69 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8005BE10 00058D70 FC 20 F8 90 */ fmr f1, f31
/* 8005BE14 00058D74 38 81 01 70 */ addi r4, r1, 0x170
/* 8005BE18 00058D78 38 E4 00 24 */ addi r7, r4, 0x24
/* 8005BE1C 00058D7C 38 61 00 10 */ addi r3, r1, 0x10
/* 8005BE20 00058D80 38 A4 00 0C */ addi r5, r4, 0xc
/* 8005BE24 00058D84 38 C4 00 18 */ addi r6, r4, 0x18
/* 8005BE28 00058D88 48 2B 92 9D */ bl GetCatmullRomSplinePoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff
/* 8005BE2C 00058D8C C0 41 00 10 */ lfs f2, 0x10(r1)
/* 8005BE30 00058D90 7F A3 EB 78 */ mr r3, r29
/* 8005BE34 00058D94 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8005BE38 00058D98 38 81 00 D8 */ addi r4, r1, 0xd8
/* 8005BE3C 00058D9C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8005BE40 00058DA0 D0 41 00 E4 */ stfs f2, 0xe4(r1)
/* 8005BE44 00058DA4 D0 21 00 F4 */ stfs f1, 0xf4(r1)
/* 8005BE48 00058DA8 D0 01 01 04 */ stfs f0, 0x104(r1)
/* 8005BE4C 00058DAC 48 2B 6D 29 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8005BE50 00058DB0 80 A1 01 38 */ lwz r5, 0x138(r1)
/* 8005BE54 00058DB4 38 60 00 00 */ li r3, 0
/* 8005BE58 00058DB8 2C 05 00 00 */ cmpwi r5, 0
/* 8005BE5C 00058DBC 40 81 00 40 */ ble lbl_8005BE9C
/* 8005BE60 00058DC0 2C 05 00 08 */ cmpwi r5, 8
/* 8005BE64 00058DC4 38 85 FF F8 */ addi r4, r5, -8
/* 8005BE68 00058DC8 40 81 00 20 */ ble lbl_8005BE88
/* 8005BE6C 00058DCC 38 04 00 07 */ addi r0, r4, 7
/* 8005BE70 00058DD0 54 00 E8 FE */ srwi r0, r0, 3
/* 8005BE74 00058DD4 7C 09 03 A6 */ mtctr r0
/* 8005BE78 00058DD8 2C 04 00 00 */ cmpwi r4, 0
/* 8005BE7C 00058DDC 40 81 00 0C */ ble lbl_8005BE88
lbl_8005BE80:
/* 8005BE80 00058DE0 38 63 00 08 */ addi r3, r3, 8
/* 8005BE84 00058DE4 42 00 FF FC */ bdnz lbl_8005BE80
lbl_8005BE88:
/* 8005BE88 00058DE8 7C 03 28 50 */ subf r0, r3, r5
/* 8005BE8C 00058DEC 7C 09 03 A6 */ mtctr r0
/* 8005BE90 00058DF0 7C 03 28 00 */ cmpw r3, r5
/* 8005BE94 00058DF4 40 80 00 08 */ bge lbl_8005BE9C
lbl_8005BE98:
/* 8005BE98 00058DF8 42 00 00 00 */ bdnz lbl_8005BE98
lbl_8005BE9C:
/* 8005BE9C 00058DFC 80 A1 01 6C */ lwz r5, 0x16c(r1)
/* 8005BEA0 00058E00 38 60 00 00 */ li r3, 0
/* 8005BEA4 00058E04 90 61 01 38 */ stw r3, 0x138(r1)
/* 8005BEA8 00058E08 2C 05 00 00 */ cmpwi r5, 0
/* 8005BEAC 00058E0C 40 81 00 40 */ ble lbl_8005BEEC
/* 8005BEB0 00058E10 2C 05 00 08 */ cmpwi r5, 8
/* 8005BEB4 00058E14 38 85 FF F8 */ addi r4, r5, -8
/* 8005BEB8 00058E18 40 81 00 20 */ ble lbl_8005BED8
/* 8005BEBC 00058E1C 38 04 00 07 */ addi r0, r4, 7
/* 8005BEC0 00058E20 54 00 E8 FE */ srwi r0, r0, 3
/* 8005BEC4 00058E24 7C 09 03 A6 */ mtctr r0
/* 8005BEC8 00058E28 2C 04 00 00 */ cmpwi r4, 0
/* 8005BECC 00058E2C 40 81 00 0C */ ble lbl_8005BED8
lbl_8005BED0:
/* 8005BED0 00058E30 38 63 00 08 */ addi r3, r3, 8
/* 8005BED4 00058E34 42 00 FF FC */ bdnz lbl_8005BED0
lbl_8005BED8:
/* 8005BED8 00058E38 7C 03 28 50 */ subf r0, r3, r5
/* 8005BEDC 00058E3C 7C 09 03 A6 */ mtctr r0
/* 8005BEE0 00058E40 7C 03 28 00 */ cmpw r3, r5
/* 8005BEE4 00058E44 40 80 00 08 */ bge lbl_8005BEEC
lbl_8005BEE8:
/* 8005BEE8 00058E48 42 00 00 00 */ bdnz lbl_8005BEE8
lbl_8005BEEC:
/* 8005BEEC 00058E4C 38 00 00 00 */ li r0, 0
/* 8005BEF0 00058E50 90 01 01 6C */ stw r0, 0x16c(r1)
/* 8005BEF4 00058E54 48 00 00 B8 */ b lbl_8005BFAC
lbl_8005BEF8:
/* 8005BEF8 00058E58 80 A1 01 38 */ lwz r5, 0x138(r1)
/* 8005BEFC 00058E5C 38 60 00 00 */ li r3, 0
/* 8005BF00 00058E60 2C 05 00 00 */ cmpwi r5, 0
/* 8005BF04 00058E64 40 81 00 40 */ ble lbl_8005BF44
/* 8005BF08 00058E68 2C 05 00 08 */ cmpwi r5, 8
/* 8005BF0C 00058E6C 38 85 FF F8 */ addi r4, r5, -8
/* 8005BF10 00058E70 40 81 00 20 */ ble lbl_8005BF30
/* 8005BF14 00058E74 38 04 00 07 */ addi r0, r4, 7
/* 8005BF18 00058E78 54 00 E8 FE */ srwi r0, r0, 3
/* 8005BF1C 00058E7C 7C 09 03 A6 */ mtctr r0
/* 8005BF20 00058E80 2C 04 00 00 */ cmpwi r4, 0
/* 8005BF24 00058E84 40 81 00 0C */ ble lbl_8005BF30
lbl_8005BF28:
/* 8005BF28 00058E88 38 63 00 08 */ addi r3, r3, 8
/* 8005BF2C 00058E8C 42 00 FF FC */ bdnz lbl_8005BF28
lbl_8005BF30:
/* 8005BF30 00058E90 7C 03 28 50 */ subf r0, r3, r5
/* 8005BF34 00058E94 7C 09 03 A6 */ mtctr r0
/* 8005BF38 00058E98 7C 03 28 00 */ cmpw r3, r5
/* 8005BF3C 00058E9C 40 80 00 08 */ bge lbl_8005BF44
lbl_8005BF40:
/* 8005BF40 00058EA0 42 00 00 00 */ bdnz lbl_8005BF40
lbl_8005BF44:
/* 8005BF44 00058EA4 80 A1 01 6C */ lwz r5, 0x16c(r1)
/* 8005BF48 00058EA8 38 60 00 00 */ li r3, 0
/* 8005BF4C 00058EAC 90 61 01 38 */ stw r3, 0x138(r1)
/* 8005BF50 00058EB0 2C 05 00 00 */ cmpwi r5, 0
/* 8005BF54 00058EB4 40 81 00 40 */ ble lbl_8005BF94
/* 8005BF58 00058EB8 2C 05 00 08 */ cmpwi r5, 8
/* 8005BF5C 00058EBC 38 85 FF F8 */ addi r4, r5, -8
/* 8005BF60 00058EC0 40 81 00 20 */ ble lbl_8005BF80
/* 8005BF64 00058EC4 38 04 00 07 */ addi r0, r4, 7
/* 8005BF68 00058EC8 54 00 E8 FE */ srwi r0, r0, 3
/* 8005BF6C 00058ECC 7C 09 03 A6 */ mtctr r0
/* 8005BF70 00058ED0 2C 04 00 00 */ cmpwi r4, 0
/* 8005BF74 00058ED4 40 81 00 0C */ ble lbl_8005BF80
lbl_8005BF78:
/* 8005BF78 00058ED8 38 63 00 08 */ addi r3, r3, 8
/* 8005BF7C 00058EDC 42 00 FF FC */ bdnz lbl_8005BF78
lbl_8005BF80:
/* 8005BF80 00058EE0 7C 03 28 50 */ subf r0, r3, r5
/* 8005BF84 00058EE4 7C 09 03 A6 */ mtctr r0
/* 8005BF88 00058EE8 7C 03 28 00 */ cmpw r3, r5
/* 8005BF8C 00058EEC 40 80 00 08 */ bge lbl_8005BF94
lbl_8005BF90:
/* 8005BF90 00058EF0 42 00 00 00 */ bdnz lbl_8005BF90
lbl_8005BF94:
/* 8005BF94 00058EF4 38 00 00 00 */ li r0, 0
/* 8005BF98 00058EF8 90 01 01 6C */ stw r0, 0x16c(r1)
lbl_8005BF9C:
/* 8005BF9C 00058EFC 3C 80 80 5A */ lis r4, skIdentity4f@ha
/* 8005BFA0 00058F00 7F A3 EB 78 */ mr r3, r29
/* 8005BFA4 00058F04 38 84 66 70 */ addi r4, r4, skIdentity4f@l
/* 8005BFA8 00058F08 48 2B 6B CD */ bl __ct__12CTransform4fFRC12CTransform4f
lbl_8005BFAC:
/* 8005BFAC 00058F0C E3 E1 01 B8 */ psq_l f31, 440(r1), 0, qr0
/* 8005BFB0 00058F10 80 01 01 C4 */ lwz r0, 0x1c4(r1)
/* 8005BFB4 00058F14 CB E1 01 B0 */ lfd f31, 0x1b0(r1)
/* 8005BFB8 00058F18 83 E1 01 AC */ lwz r31, 0x1ac(r1)
/* 8005BFBC 00058F1C 83 C1 01 A8 */ lwz r30, 0x1a8(r1)
/* 8005BFC0 00058F20 83 A1 01 A4 */ lwz r29, 0x1a4(r1)
/* 8005BFC4 00058F24 7C 08 03 A6 */ mtlr r0
/* 8005BFC8 00058F28 38 21 01 C0 */ addi r1, r1, 0x1c0
/* 8005BFCC 00058F2C 4E 80 00 20 */ blr
.global GetInterpolatedSplinePointByTime__13CCameraSplineCFff
GetInterpolatedSplinePointByTime__13CCameraSplineCFff:
/* 8005BFD0 00058F30 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8005BFD4 00058F34 7C 08 02 A6 */ mflr r0
/* 8005BFD8 00058F38 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8005BFDC 00058F3C DB E1 00 90 */ stfd f31, 0x90(r1)
/* 8005BFE0 00058F40 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 8005BFE4 00058F44 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 8005BFE8 00058F48 80 C4 00 08 */ lwz r6, 8(r4)
/* 8005BFEC 00058F4C 7C 7F 1B 78 */ mr r31, r3
/* 8005BFF0 00058F50 2C 06 00 00 */ cmpwi r6, 0
/* 8005BFF4 00058F54 40 81 01 FC */ ble lbl_8005C1F0
/* 8005BFF8 00058F58 38 A6 FF FF */ addi r5, r6, -1
/* 8005BFFC 00058F5C 3C 00 43 30 */ lis r0, 0x4330
/* 8005C000 00058F60 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 8005C004 00058F64 90 01 00 70 */ stw r0, 0x70(r1)
/* 8005C008 00058F68 C8 62 86 F0 */ lfd f3, lbl_805AA410@sda21(r2)
/* 8005C00C 00058F6C 90 61 00 74 */ stw r3, 0x74(r1)
/* 8005C010 00058F70 C8 01 00 70 */ lfd f0, 0x70(r1)
/* 8005C014 00058F74 EC 00 18 28 */ fsubs f0, f0, f3
/* 8005C018 00058F78 EC 62 00 24 */ fdivs f3, f2, f0
/* 8005C01C 00058F7C EC 01 18 24 */ fdivs f0, f1, f3
/* 8005C020 00058F80 FC 00 00 1E */ fctiwz f0, f0
/* 8005C024 00058F84 D8 01 00 78 */ stfd f0, 0x78(r1)
/* 8005C028 00058F88 80 01 00 7C */ lwz r0, 0x7c(r1)
/* 8005C02C 00058F8C 7C 00 30 00 */ cmpw r0, r6
/* 8005C030 00058F90 7C 06 03 78 */ mr r6, r0
/* 8005C034 00058F94 41 80 00 08 */ blt lbl_8005C03C
/* 8005C038 00058F98 7C A6 2B 78 */ mr r6, r5
lbl_8005C03C:
/* 8005C03C 00058F9C 6C C0 80 00 */ xoris r0, r6, 0x8000
/* 8005C040 00058FA0 3C A0 43 30 */ lis r5, 0x4330
/* 8005C044 00058FA4 90 01 00 84 */ stw r0, 0x84(r1)
/* 8005C048 00058FA8 38 00 00 00 */ li r0, 0
/* 8005C04C 00058FAC C8 42 86 F0 */ lfd f2, lbl_805AA410@sda21(r2)
/* 8005C050 00058FB0 7C 83 23 78 */ mr r3, r4
/* 8005C054 00058FB4 90 A1 00 80 */ stw r5, 0x80(r1)
/* 8005C058 00058FB8 7C C4 33 78 */ mr r4, r6
/* 8005C05C 00058FBC 38 A1 00 3C */ addi r5, r1, 0x3c
/* 8005C060 00058FC0 38 C1 00 08 */ addi r6, r1, 8
/* 8005C064 00058FC4 C8 01 00 80 */ lfd f0, 0x80(r1)
/* 8005C068 00058FC8 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8005C06C 00058FCC EC 00 10 28 */ fsubs f0, f0, f2
/* 8005C070 00058FD0 90 01 00 08 */ stw r0, 8(r1)
/* 8005C074 00058FD4 EC 00 08 FC */ fnmsubs f0, f0, f3, f1
/* 8005C078 00058FD8 EF E0 18 24 */ fdivs f31, f0, f3
/* 8005C07C 00058FDC 48 00 07 8D */ bl "GetSurroundingPoints__13CCameraSplineFiRQ24rstl27reserved_vector<9CVector3f>RQ24rstl27reserved_vector<9CVector3f>"
/* 8005C080 00058FE0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005C084 00058FE4 41 82 00 C8 */ beq lbl_8005C14C
/* 8005C088 00058FE8 FC 20 F8 90 */ fmr f1, f31
/* 8005C08C 00058FEC 38 81 00 40 */ addi r4, r1, 0x40
/* 8005C090 00058FF0 38 E4 00 24 */ addi r7, r4, 0x24
/* 8005C094 00058FF4 7F E3 FB 78 */ mr r3, r31
/* 8005C098 00058FF8 38 A4 00 0C */ addi r5, r4, 0xc
/* 8005C09C 00058FFC 38 C4 00 18 */ addi r6, r4, 0x18
/* 8005C0A0 00059000 48 2B 90 25 */ bl GetCatmullRomSplinePoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff
/* 8005C0A4 00059004 80 A1 00 08 */ lwz r5, 8(r1)
/* 8005C0A8 00059008 38 60 00 00 */ li r3, 0
/* 8005C0AC 0005900C 2C 05 00 00 */ cmpwi r5, 0
/* 8005C0B0 00059010 40 81 00 40 */ ble lbl_8005C0F0
/* 8005C0B4 00059014 2C 05 00 08 */ cmpwi r5, 8
/* 8005C0B8 00059018 38 85 FF F8 */ addi r4, r5, -8
/* 8005C0BC 0005901C 40 81 00 20 */ ble lbl_8005C0DC
/* 8005C0C0 00059020 38 04 00 07 */ addi r0, r4, 7
/* 8005C0C4 00059024 54 00 E8 FE */ srwi r0, r0, 3
/* 8005C0C8 00059028 7C 09 03 A6 */ mtctr r0
/* 8005C0CC 0005902C 2C 04 00 00 */ cmpwi r4, 0
/* 8005C0D0 00059030 40 81 00 0C */ ble lbl_8005C0DC
lbl_8005C0D4:
/* 8005C0D4 00059034 38 63 00 08 */ addi r3, r3, 8
/* 8005C0D8 00059038 42 00 FF FC */ bdnz lbl_8005C0D4
lbl_8005C0DC:
/* 8005C0DC 0005903C 7C 03 28 50 */ subf r0, r3, r5
/* 8005C0E0 00059040 7C 09 03 A6 */ mtctr r0
/* 8005C0E4 00059044 7C 03 28 00 */ cmpw r3, r5
/* 8005C0E8 00059048 40 80 00 08 */ bge lbl_8005C0F0
lbl_8005C0EC:
/* 8005C0EC 0005904C 42 00 00 00 */ bdnz lbl_8005C0EC
lbl_8005C0F0:
/* 8005C0F0 00059050 80 A1 00 3C */ lwz r5, 0x3c(r1)
/* 8005C0F4 00059054 38 60 00 00 */ li r3, 0
/* 8005C0F8 00059058 90 61 00 08 */ stw r3, 8(r1)
/* 8005C0FC 0005905C 2C 05 00 00 */ cmpwi r5, 0
/* 8005C100 00059060 40 81 00 40 */ ble lbl_8005C140
/* 8005C104 00059064 2C 05 00 08 */ cmpwi r5, 8
/* 8005C108 00059068 38 85 FF F8 */ addi r4, r5, -8
/* 8005C10C 0005906C 40 81 00 20 */ ble lbl_8005C12C
/* 8005C110 00059070 38 04 00 07 */ addi r0, r4, 7
/* 8005C114 00059074 54 00 E8 FE */ srwi r0, r0, 3
/* 8005C118 00059078 7C 09 03 A6 */ mtctr r0
/* 8005C11C 0005907C 2C 04 00 00 */ cmpwi r4, 0
/* 8005C120 00059080 40 81 00 0C */ ble lbl_8005C12C
lbl_8005C124:
/* 8005C124 00059084 38 63 00 08 */ addi r3, r3, 8
/* 8005C128 00059088 42 00 FF FC */ bdnz lbl_8005C124
lbl_8005C12C:
/* 8005C12C 0005908C 7C 03 28 50 */ subf r0, r3, r5
/* 8005C130 00059090 7C 09 03 A6 */ mtctr r0
/* 8005C134 00059094 7C 03 28 00 */ cmpw r3, r5
/* 8005C138 00059098 40 80 00 08 */ bge lbl_8005C140
lbl_8005C13C:
/* 8005C13C 0005909C 42 00 00 00 */ bdnz lbl_8005C13C
lbl_8005C140:
/* 8005C140 000590A0 38 00 00 00 */ li r0, 0
/* 8005C144 000590A4 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8005C148 000590A8 48 00 00 C4 */ b lbl_8005C20C
lbl_8005C14C:
/* 8005C14C 000590AC 80 A1 00 08 */ lwz r5, 8(r1)
/* 8005C150 000590B0 38 60 00 00 */ li r3, 0
/* 8005C154 000590B4 2C 05 00 00 */ cmpwi r5, 0
/* 8005C158 000590B8 40 81 00 40 */ ble lbl_8005C198
/* 8005C15C 000590BC 2C 05 00 08 */ cmpwi r5, 8
/* 8005C160 000590C0 38 85 FF F8 */ addi r4, r5, -8
/* 8005C164 000590C4 40 81 00 20 */ ble lbl_8005C184
/* 8005C168 000590C8 38 04 00 07 */ addi r0, r4, 7
/* 8005C16C 000590CC 54 00 E8 FE */ srwi r0, r0, 3
/* 8005C170 000590D0 7C 09 03 A6 */ mtctr r0
/* 8005C174 000590D4 2C 04 00 00 */ cmpwi r4, 0
/* 8005C178 000590D8 40 81 00 0C */ ble lbl_8005C184
lbl_8005C17C:
/* 8005C17C 000590DC 38 63 00 08 */ addi r3, r3, 8
/* 8005C180 000590E0 42 00 FF FC */ bdnz lbl_8005C17C
lbl_8005C184:
/* 8005C184 000590E4 7C 03 28 50 */ subf r0, r3, r5
/* 8005C188 000590E8 7C 09 03 A6 */ mtctr r0
/* 8005C18C 000590EC 7C 03 28 00 */ cmpw r3, r5
/* 8005C190 000590F0 40 80 00 08 */ bge lbl_8005C198
lbl_8005C194:
/* 8005C194 000590F4 42 00 00 00 */ bdnz lbl_8005C194
lbl_8005C198:
/* 8005C198 000590F8 80 A1 00 3C */ lwz r5, 0x3c(r1)
/* 8005C19C 000590FC 38 60 00 00 */ li r3, 0
/* 8005C1A0 00059100 90 61 00 08 */ stw r3, 8(r1)
/* 8005C1A4 00059104 2C 05 00 00 */ cmpwi r5, 0
/* 8005C1A8 00059108 40 81 00 40 */ ble lbl_8005C1E8
/* 8005C1AC 0005910C 2C 05 00 08 */ cmpwi r5, 8
/* 8005C1B0 00059110 38 85 FF F8 */ addi r4, r5, -8
/* 8005C1B4 00059114 40 81 00 20 */ ble lbl_8005C1D4
/* 8005C1B8 00059118 38 04 00 07 */ addi r0, r4, 7
/* 8005C1BC 0005911C 54 00 E8 FE */ srwi r0, r0, 3
/* 8005C1C0 00059120 7C 09 03 A6 */ mtctr r0
/* 8005C1C4 00059124 2C 04 00 00 */ cmpwi r4, 0
/* 8005C1C8 00059128 40 81 00 0C */ ble lbl_8005C1D4
lbl_8005C1CC:
/* 8005C1CC 0005912C 38 63 00 08 */ addi r3, r3, 8
/* 8005C1D0 00059130 42 00 FF FC */ bdnz lbl_8005C1CC
lbl_8005C1D4:
/* 8005C1D4 00059134 7C 03 28 50 */ subf r0, r3, r5
/* 8005C1D8 00059138 7C 09 03 A6 */ mtctr r0
/* 8005C1DC 0005913C 7C 03 28 00 */ cmpw r3, r5
/* 8005C1E0 00059140 40 80 00 08 */ bge lbl_8005C1E8
lbl_8005C1E4:
/* 8005C1E4 00059144 42 00 00 00 */ bdnz lbl_8005C1E4
lbl_8005C1E8:
/* 8005C1E8 00059148 38 00 00 00 */ li r0, 0
/* 8005C1EC 0005914C 90 01 00 3C */ stw r0, 0x3c(r1)
lbl_8005C1F0:
/* 8005C1F0 00059150 3C 60 80 5A */ lis r3, skZero3f@ha
/* 8005C1F4 00059154 C4 03 66 A0 */ lfsu f0, skZero3f@l(r3)
/* 8005C1F8 00059158 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8005C1FC 0005915C C0 03 00 04 */ lfs f0, 4(r3)
/* 8005C200 00059160 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8005C204 00059164 C0 03 00 08 */ lfs f0, 8(r3)
/* 8005C208 00059168 D0 1F 00 08 */ stfs f0, 8(r31)
lbl_8005C20C:
/* 8005C20C 0005916C E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 8005C210 00059170 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8005C214 00059174 CB E1 00 90 */ lfd f31, 0x90(r1)
/* 8005C218 00059178 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 8005C21C 0005917C 7C 08 03 A6 */ mtlr r0
/* 8005C220 00059180 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8005C224 00059184 4E 80 00 20 */ blr
.global ValidateLength__13CCameraSplineCFf
ValidateLength__13CCameraSplineCFf:
/* 8005C228 00059188 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005C22C 0005918C 7C 08 02 A6 */ mflr r0
/* 8005C230 00059190 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005C234 00059194 88 03 00 48 */ lbz r0, 0x48(r3)
/* 8005C238 00059198 D0 21 00 08 */ stfs f1, 8(r1)
/* 8005C23C 0005919C 28 00 00 00 */ cmplwi r0, 0
/* 8005C240 000591A0 41 82 00 50 */ beq lbl_8005C290
/* 8005C244 000591A4 48 00 00 10 */ b lbl_8005C254
lbl_8005C248:
/* 8005C248 000591A8 C0 01 00 08 */ lfs f0, 8(r1)
/* 8005C24C 000591AC EC 00 08 28 */ fsubs f0, f0, f1
/* 8005C250 000591B0 D0 01 00 08 */ stfs f0, 8(r1)
lbl_8005C254:
/* 8005C254 000591B4 C0 01 00 08 */ lfs f0, 8(r1)
/* 8005C258 000591B8 C0 23 00 44 */ lfs f1, 0x44(r3)
/* 8005C25C 000591BC FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8005C260 000591C0 4C 41 13 82 */ cror 2, 1, 2
/* 8005C264 000591C4 41 82 FF E4 */ beq lbl_8005C248
/* 8005C268 000591C8 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005C26C 000591CC 48 00 00 14 */ b lbl_8005C280
lbl_8005C270:
/* 8005C270 000591D0 C0 41 00 08 */ lfs f2, 8(r1)
/* 8005C274 000591D4 C0 23 00 44 */ lfs f1, 0x44(r3)
/* 8005C278 000591D8 EC 22 08 2A */ fadds f1, f2, f1
/* 8005C27C 000591DC D0 21 00 08 */ stfs f1, 8(r1)
lbl_8005C280:
/* 8005C280 000591E0 C0 21 00 08 */ lfs f1, 8(r1)
/* 8005C284 000591E4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8005C288 000591E8 41 80 FF E8 */ blt lbl_8005C270
/* 8005C28C 000591EC 48 00 00 1C */ b lbl_8005C2A8
lbl_8005C290:
/* 8005C290 000591F0 38 81 00 08 */ addi r4, r1, 8
/* 8005C294 000591F4 38 A3 00 44 */ addi r5, r3, 0x44
/* 8005C298 000591F8 38 6D 82 C4 */ addi r3, r13, lbl_805A6E84@sda21
/* 8005C29C 000591FC 4B FB 00 19 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8005C2A0 00059200 C0 03 00 00 */ lfs f0, 0(r3)
/* 8005C2A4 00059204 D0 01 00 08 */ stfs f0, 8(r1)
lbl_8005C2A8:
/* 8005C2A8 00059208 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005C2AC 0005920C C0 21 00 08 */ lfs f1, 8(r1)
/* 8005C2B0 00059210 7C 08 03 A6 */ mtlr r0
/* 8005C2B4 00059214 38 21 00 10 */ addi r1, r1, 0x10
/* 8005C2B8 00059218 4E 80 00 20 */ blr
.global CalculateSplineLength__13CCameraSplineFv
CalculateSplineLength__13CCameraSplineFv:
/* 8005C2BC 0005921C 94 21 FE E0 */ stwu r1, -0x120(r1)
/* 8005C2C0 00059220 7C 08 02 A6 */ mflr r0
/* 8005C2C4 00059224 90 01 01 24 */ stw r0, 0x124(r1)
/* 8005C2C8 00059228 DB E1 01 10 */ stfd f31, 0x110(r1)
/* 8005C2CC 0005922C F3 E1 01 18 */ psq_st f31, 280(r1), 0, qr0
/* 8005C2D0 00059230 DB C1 01 00 */ stfd f30, 0x100(r1)
/* 8005C2D4 00059234 F3 C1 01 08 */ psq_st f30, 264(r1), 0, qr0
/* 8005C2D8 00059238 DB A1 00 F0 */ stfd f29, 0xf0(r1)
/* 8005C2DC 0005923C F3 A1 00 F8 */ psq_st f29, 248(r1), 0, qr0
/* 8005C2E0 00059240 DB 81 00 E0 */ stfd f28, 0xe0(r1)
/* 8005C2E4 00059244 F3 81 00 E8 */ psq_st f28, 232(r1), 0, qr0
/* 8005C2E8 00059248 DB 61 00 D0 */ stfd f27, 0xd0(r1)
/* 8005C2EC 0005924C F3 61 00 D8 */ psq_st f27, 216(r1), 0, qr0
/* 8005C2F0 00059250 DB 41 00 C0 */ stfd f26, 0xc0(r1)
/* 8005C2F4 00059254 F3 41 00 C8 */ psq_st f26, 200(r1), 0, qr0
/* 8005C2F8 00059258 DB 21 00 B0 */ stfd f25, 0xb0(r1)
/* 8005C2FC 0005925C F3 21 00 B8 */ psq_st f25, 184(r1), 0, qr0
/* 8005C300 00059260 DB 01 00 A0 */ stfd f24, 0xa0(r1)
/* 8005C304 00059264 F3 01 00 A8 */ psq_st f24, 168(r1), 0, qr0
/* 8005C308 00059268 DA E1 00 90 */ stfd f23, 0x90(r1)
/* 8005C30C 0005926C F2 E1 00 98 */ psq_st f23, 152(r1), 0, qr0
/* 8005C310 00059270 DA C1 00 80 */ stfd f22, 0x80(r1)
/* 8005C314 00059274 F2 C1 00 88 */ psq_st f22, 136(r1), 0, qr0
/* 8005C318 00059278 DA A1 00 70 */ stfd f21, 0x70(r1)
/* 8005C31C 0005927C F2 A1 00 78 */ psq_st f21, 120(r1), 0, qr0
/* 8005C320 00059280 DA 81 00 60 */ stfd f20, 0x60(r1)
/* 8005C324 00059284 F2 81 00 68 */ psq_st f20, 104(r1), 0, qr0
/* 8005C328 00059288 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 8005C32C 0005928C 93 C1 00 58 */ stw r30, 0x58(r1)
/* 8005C330 00059290 93 A1 00 54 */ stw r29, 0x54(r1)
/* 8005C334 00059294 80 03 00 28 */ lwz r0, 0x28(r3)
/* 8005C338 00059298 7C 7F 1B 78 */ mr r31, r3
/* 8005C33C 0005929C 80 63 00 30 */ lwz r3, 0x30(r3)
/* 8005C340 000592A0 54 00 10 3A */ slwi r0, r0, 2
/* 8005C344 000592A4 C3 E2 86 B8 */ lfs f31, lbl_805AA3D8@sda21(r2)
/* 8005C348 000592A8 7C 03 02 14 */ add r0, r3, r0
/* 8005C34C 000592AC 90 61 00 0C */ stw r3, 0xc(r1)
/* 8005C350 000592B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005C354 000592B4 90 01 00 10 */ stw r0, 0x10(r1)
/* 8005C358 000592B8 90 61 00 08 */ stw r3, 8(r1)
/* 8005C35C 000592BC 48 00 00 08 */ b lbl_8005C364
lbl_8005C360:
/* 8005C360 000592C0 38 63 00 04 */ addi r3, r3, 4
lbl_8005C364:
/* 8005C364 000592C4 7C 03 00 40 */ cmplw r3, r0
/* 8005C368 000592C8 40 82 FF F8 */ bne lbl_8005C360
/* 8005C36C 000592CC 38 00 00 00 */ li r0, 0
/* 8005C370 000592D0 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8005C374 000592D4 80 7F 00 08 */ lwz r3, 8(r31)
/* 8005C378 000592D8 2C 03 00 00 */ cmpwi r3, 0
/* 8005C37C 000592DC 40 81 01 F8 */ ble lbl_8005C574
/* 8005C380 000592E0 38 03 FF FF */ addi r0, r3, -1
/* 8005C384 000592E4 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8005C388 000592E8 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8005C38C 000592EC 3F C0 43 30 */ lis r30, 0x4330
/* 8005C390 000592F0 90 01 00 44 */ stw r0, 0x44(r1)
/* 8005C394 000592F4 3B A0 00 00 */ li r29, 0
/* 8005C398 000592F8 CB A2 86 F0 */ lfd f29, lbl_805AA410@sda21(r2)
/* 8005C39C 000592FC 93 C1 00 40 */ stw r30, 0x40(r1)
/* 8005C3A0 00059300 C0 22 86 BC */ lfs f1, lbl_805AA3DC@sda21(r2)
/* 8005C3A4 00059304 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 8005C3A8 00059308 C3 83 00 00 */ lfs f28, 0(r3)
/* 8005C3AC 0005930C EC 00 E8 28 */ fsubs f0, f0, f29
/* 8005C3B0 00059310 C3 63 00 04 */ lfs f27, 4(r3)
/* 8005C3B4 00059314 C3 43 00 08 */ lfs f26, 8(r3)
/* 8005C3B8 00059318 C3 C2 86 F8 */ lfs f30, lbl_805AA418@sda21(r2)
/* 8005C3BC 0005931C EE C1 00 24 */ fdivs f22, f1, f0
/* 8005C3C0 00059320 48 00 00 E4 */ b lbl_8005C4A4
lbl_8005C3C4:
/* 8005C3C4 00059324 6F A3 80 00 */ xoris r3, r29, 0x8000
/* 8005C3C8 00059328 93 C1 00 40 */ stw r30, 0x40(r1)
/* 8005C3CC 0005932C 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8005C3D0 00059330 90 61 00 44 */ stw r3, 0x44(r1)
/* 8005C3D4 00059334 80 BF 00 2C */ lwz r5, 0x2c(r31)
/* 8005C3D8 00059338 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 8005C3DC 0005933C 7C 00 28 00 */ cmpw r0, r5
/* 8005C3E0 00059340 C2 82 86 B8 */ lfs f20, lbl_805AA3D8@sda21(r2)
/* 8005C3E4 00059344 EC 00 E8 28 */ fsubs f0, f0, f29
/* 8005C3E8 00059348 EE A0 05 B2 */ fmuls f21, f0, f22
/* 8005C3EC 0005934C 41 80 00 1C */ blt lbl_8005C408
/* 8005C3F0 00059350 2C 05 00 00 */ cmpwi r5, 0
/* 8005C3F4 00059354 38 7F 00 24 */ addi r3, r31, 0x24
/* 8005C3F8 00059358 38 80 00 04 */ li r4, 4
/* 8005C3FC 0005935C 41 82 00 08 */ beq lbl_8005C404
/* 8005C400 00059360 54 A4 08 3C */ slwi r4, r5, 1
lbl_8005C404:
/* 8005C404 00059364 48 00 19 F5 */ bl "reserve__Q24rstl36vector<f,Q24rstl17rmemory_allocator>Fi"
lbl_8005C408:
/* 8005C408 00059368 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8005C40C 0005936C 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 8005C410 00059370 54 00 10 3A */ slwi r0, r0, 2
/* 8005C414 00059374 7C 63 02 15 */ add. r3, r3, r0
/* 8005C418 00059378 41 82 00 08 */ beq lbl_8005C420
/* 8005C41C 0005937C D3 E3 00 00 */ stfs f31, 0(r3)
lbl_8005C420:
/* 8005C420 00059380 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 8005C424 00059384 38 03 00 01 */ addi r0, r3, 1
/* 8005C428 00059388 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8005C42C 0005938C 48 00 00 68 */ b lbl_8005C494
lbl_8005C430:
/* 8005C430 00059390 EE 96 A7 BA */ fmadds f20, f22, f30, f20
/* 8005C434 00059394 C0 42 86 BC */ lfs f2, lbl_805AA3DC@sda21(r2)
/* 8005C438 00059398 7F E4 FB 78 */ mr r4, r31
/* 8005C43C 0005939C 38 61 00 18 */ addi r3, r1, 0x18
/* 8005C440 000593A0 EC 35 A0 2A */ fadds f1, f21, f20
/* 8005C444 000593A4 4B FF FB 8D */ bl GetInterpolatedSplinePointByTime__13CCameraSplineCFff
/* 8005C448 000593A8 C2 E1 00 18 */ lfs f23, 0x18(r1)
/* 8005C44C 000593AC 38 61 00 30 */ addi r3, r1, 0x30
/* 8005C450 000593B0 C3 21 00 1C */ lfs f25, 0x1c(r1)
/* 8005C454 000593B4 C3 01 00 20 */ lfs f24, 0x20(r1)
/* 8005C458 000593B8 EC 57 E0 28 */ fsubs f2, f23, f28
/* 8005C45C 000593BC EC 39 D8 28 */ fsubs f1, f25, f27
/* 8005C460 000593C0 EC 18 D0 28 */ fsubs f0, f24, f26
/* 8005C464 000593C4 D0 41 00 30 */ stfs f2, 0x30(r1)
/* 8005C468 000593C8 D0 21 00 34 */ stfs f1, 0x34(r1)
/* 8005C46C 000593CC D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8005C470 000593D0 48 2B 82 89 */ bl CanBeNormalized__9CVector3fCFv
/* 8005C474 000593D4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005C478 000593D8 41 82 00 1C */ beq lbl_8005C494
/* 8005C47C 000593DC 38 61 00 30 */ addi r3, r1, 0x30
/* 8005C480 000593E0 48 2B 84 39 */ bl Magnitude__9CVector3fCFv
/* 8005C484 000593E4 FF 80 B8 90 */ fmr f28, f23
/* 8005C488 000593E8 FF 60 C8 90 */ fmr f27, f25
/* 8005C48C 000593EC FF 40 C0 90 */ fmr f26, f24
/* 8005C490 000593F0 EF FF 08 2A */ fadds f31, f31, f1
lbl_8005C494:
/* 8005C494 000593F4 FC 14 B0 40 */ fcmpo cr0, f20, f22
/* 8005C498 000593F8 4C 40 13 82 */ cror 2, 0, 2
/* 8005C49C 000593FC 41 82 FF 94 */ beq lbl_8005C430
/* 8005C4A0 00059400 3B BD 00 01 */ addi r29, r29, 1
lbl_8005C4A4:
/* 8005C4A4 00059404 80 7F 00 08 */ lwz r3, 8(r31)
/* 8005C4A8 00059408 38 03 FF FF */ addi r0, r3, -1
/* 8005C4AC 0005940C 7C 1D 00 00 */ cmpw r29, r0
/* 8005C4B0 00059410 41 80 FF 14 */ blt lbl_8005C3C4
/* 8005C4B4 00059414 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8005C4B8 00059418 80 BF 00 2C */ lwz r5, 0x2c(r31)
/* 8005C4BC 0005941C 7C 00 28 00 */ cmpw r0, r5
/* 8005C4C0 00059420 41 80 00 1C */ blt lbl_8005C4DC
/* 8005C4C4 00059424 2C 05 00 00 */ cmpwi r5, 0
/* 8005C4C8 00059428 38 7F 00 24 */ addi r3, r31, 0x24
/* 8005C4CC 0005942C 38 80 00 04 */ li r4, 4
/* 8005C4D0 00059430 41 82 00 08 */ beq lbl_8005C4D8
/* 8005C4D4 00059434 54 A4 08 3C */ slwi r4, r5, 1
lbl_8005C4D8:
/* 8005C4D8 00059438 48 00 19 21 */ bl "reserve__Q24rstl36vector<f,Q24rstl17rmemory_allocator>Fi"
lbl_8005C4DC:
/* 8005C4DC 0005943C 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 8005C4E0 00059440 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 8005C4E4 00059444 54 00 10 3A */ slwi r0, r0, 2
/* 8005C4E8 00059448 7C 63 02 15 */ add. r3, r3, r0
/* 8005C4EC 0005944C 41 82 00 08 */ beq lbl_8005C4F4
/* 8005C4F0 00059450 D3 E3 00 00 */ stfs f31, 0(r3)
lbl_8005C4F4:
/* 8005C4F4 00059454 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 8005C4F8 00059458 38 03 00 01 */ addi r0, r3, 1
/* 8005C4FC 0005945C 90 1F 00 28 */ stw r0, 0x28(r31)
/* 8005C500 00059460 88 1F 00 48 */ lbz r0, 0x48(r31)
/* 8005C504 00059464 28 00 00 00 */ cmplwi r0, 0
/* 8005C508 00059468 41 82 00 64 */ beq lbl_8005C56C
/* 8005C50C 0005946C 80 9F 00 08 */ lwz r4, 8(r31)
/* 8005C510 00059470 38 61 00 24 */ addi r3, r1, 0x24
/* 8005C514 00059474 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 8005C518 00059478 38 04 FF FF */ addi r0, r4, -1
/* 8005C51C 0005947C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C520 00059480 C0 A5 00 04 */ lfs f5, 4(r5)
/* 8005C524 00059484 C0 65 00 08 */ lfs f3, 8(r5)
/* 8005C528 00059488 C0 25 00 00 */ lfs f1, 0(r5)
/* 8005C52C 0005948C 7C 85 02 14 */ add r4, r5, r0
/* 8005C530 00059490 C0 84 00 04 */ lfs f4, 4(r4)
/* 8005C534 00059494 C0 44 00 08 */ lfs f2, 8(r4)
/* 8005C538 00059498 C0 04 00 00 */ lfs f0, 0(r4)
/* 8005C53C 0005949C EC 85 20 28 */ fsubs f4, f5, f4
/* 8005C540 000594A0 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005C544 000594A4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005C548 000594A8 D0 81 00 28 */ stfs f4, 0x28(r1)
/* 8005C54C 000594AC D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8005C550 000594B0 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 8005C554 000594B4 48 2B 81 A5 */ bl CanBeNormalized__9CVector3fCFv
/* 8005C558 000594B8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005C55C 000594BC 41 82 00 10 */ beq lbl_8005C56C
/* 8005C560 000594C0 38 61 00 24 */ addi r3, r1, 0x24
/* 8005C564 000594C4 48 2B 83 55 */ bl Magnitude__9CVector3fCFv
/* 8005C568 000594C8 EF FF 08 2A */ fadds f31, f31, f1
lbl_8005C56C:
/* 8005C56C 000594CC FC 20 F8 90 */ fmr f1, f31
/* 8005C570 000594D0 48 00 00 08 */ b lbl_8005C578
lbl_8005C574:
/* 8005C574 000594D4 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
lbl_8005C578:
/* 8005C578 000594D8 E3 E1 01 18 */ psq_l f31, 280(r1), 0, qr0
/* 8005C57C 000594DC CB E1 01 10 */ lfd f31, 0x110(r1)
/* 8005C580 000594E0 E3 C1 01 08 */ psq_l f30, 264(r1), 0, qr0
/* 8005C584 000594E4 CB C1 01 00 */ lfd f30, 0x100(r1)
/* 8005C588 000594E8 E3 A1 00 F8 */ psq_l f29, 248(r1), 0, qr0
/* 8005C58C 000594EC CB A1 00 F0 */ lfd f29, 0xf0(r1)
/* 8005C590 000594F0 E3 81 00 E8 */ psq_l f28, 232(r1), 0, qr0
/* 8005C594 000594F4 CB 81 00 E0 */ lfd f28, 0xe0(r1)
/* 8005C598 000594F8 E3 61 00 D8 */ psq_l f27, 216(r1), 0, qr0
/* 8005C59C 000594FC CB 61 00 D0 */ lfd f27, 0xd0(r1)
/* 8005C5A0 00059500 E3 41 00 C8 */ psq_l f26, 200(r1), 0, qr0
/* 8005C5A4 00059504 CB 41 00 C0 */ lfd f26, 0xc0(r1)
/* 8005C5A8 00059508 E3 21 00 B8 */ psq_l f25, 184(r1), 0, qr0
/* 8005C5AC 0005950C CB 21 00 B0 */ lfd f25, 0xb0(r1)
/* 8005C5B0 00059510 E3 01 00 A8 */ psq_l f24, 168(r1), 0, qr0
/* 8005C5B4 00059514 CB 01 00 A0 */ lfd f24, 0xa0(r1)
/* 8005C5B8 00059518 E2 E1 00 98 */ psq_l f23, 152(r1), 0, qr0
/* 8005C5BC 0005951C CA E1 00 90 */ lfd f23, 0x90(r1)
/* 8005C5C0 00059520 E2 C1 00 88 */ psq_l f22, 136(r1), 0, qr0
/* 8005C5C4 00059524 CA C1 00 80 */ lfd f22, 0x80(r1)
/* 8005C5C8 00059528 E2 A1 00 78 */ psq_l f21, 120(r1), 0, qr0
/* 8005C5CC 0005952C CA A1 00 70 */ lfd f21, 0x70(r1)
/* 8005C5D0 00059530 E2 81 00 68 */ psq_l f20, 104(r1), 0, qr0
/* 8005C5D4 00059534 CA 81 00 60 */ lfd f20, 0x60(r1)
/* 8005C5D8 00059538 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 8005C5DC 0005953C 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 8005C5E0 00059540 80 01 01 24 */ lwz r0, 0x124(r1)
/* 8005C5E4 00059544 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 8005C5E8 00059548 7C 08 03 A6 */ mtlr r0
/* 8005C5EC 0005954C 38 21 01 20 */ addi r1, r1, 0x120
/* 8005C5F0 00059550 4E 80 00 20 */ blr
.global ClampLength__13CCameraSplineCFRC9CVector3fbRC15CMaterialFilterRC13CStateManager
ClampLength__13CCameraSplineCFRC9CVector3fbRC15CMaterialFilterRC13CStateManager:
/* 8005C5F4 00059554 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 8005C5F8 00059558 7C 08 02 A6 */ mflr r0
/* 8005C5FC 0005955C 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 8005C600 00059560 DB E1 00 E0 */ stfd f31, 0xe0(r1)
/* 8005C604 00059564 F3 E1 00 E8 */ psq_st f31, 232(r1), 0, qr0
/* 8005C608 00059568 DB C1 00 D0 */ stfd f30, 0xd0(r1)
/* 8005C60C 0005956C F3 C1 00 D8 */ psq_st f30, 216(r1), 0, qr0
/* 8005C610 00059570 DB A1 00 C0 */ stfd f29, 0xc0(r1)
/* 8005C614 00059574 F3 A1 00 C8 */ psq_st f29, 200(r1), 0, qr0
/* 8005C618 00059578 93 E1 00 BC */ stw r31, 0xbc(r1)
/* 8005C61C 0005957C 93 C1 00 B8 */ stw r30, 0xb8(r1)
/* 8005C620 00059580 93 A1 00 B4 */ stw r29, 0xb4(r1)
/* 8005C624 00059584 93 81 00 B0 */ stw r28, 0xb0(r1)
/* 8005C628 00059588 7C 7C 1B 78 */ mr r28, r3
/* 8005C62C 0005958C 7C BF 2B 78 */ mr r31, r5
/* 8005C630 00059590 80 63 00 08 */ lwz r3, 8(r3)
/* 8005C634 00059594 7C DD 33 78 */ mr r29, r6
/* 8005C638 00059598 7C FE 3B 78 */ mr r30, r7
/* 8005C63C 0005959C 2C 03 00 00 */ cmpwi r3, 0
/* 8005C640 000595A0 40 82 00 0C */ bne lbl_8005C64C
/* 8005C644 000595A4 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
/* 8005C648 000595A8 48 00 01 88 */ b lbl_8005C7D0
lbl_8005C64C:
/* 8005C64C 000595AC 88 1C 00 48 */ lbz r0, 0x48(r28)
/* 8005C650 000595B0 28 00 00 00 */ cmplwi r0, 0
/* 8005C654 000595B4 41 82 00 0C */ beq lbl_8005C660
/* 8005C658 000595B8 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
/* 8005C65C 000595BC 48 00 01 74 */ b lbl_8005C7D0
lbl_8005C660:
/* 8005C660 000595C0 80 BC 00 10 */ lwz r5, 0x10(r28)
/* 8005C664 000595C4 38 03 FF FF */ addi r0, r3, -1
/* 8005C668 000595C8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C66C 000595CC C0 64 00 04 */ lfs f3, 4(r4)
/* 8005C670 000595D0 C0 25 00 00 */ lfs f1, 0(r5)
/* 8005C674 000595D4 38 61 00 2C */ addi r3, r1, 0x2c
/* 8005C678 000595D8 C0 04 00 00 */ lfs f0, 0(r4)
/* 8005C67C 000595DC D0 21 00 44 */ stfs f1, 0x44(r1)
/* 8005C680 000595E0 7C C5 02 14 */ add r6, r5, r0
/* 8005C684 000595E4 C0 44 00 08 */ lfs f2, 8(r4)
/* 8005C688 000595E8 C0 85 00 04 */ lfs f4, 4(r5)
/* 8005C68C 000595EC EC 20 08 28 */ fsubs f1, f0, f1
/* 8005C690 000595F0 D0 81 00 48 */ stfs f4, 0x48(r1)
/* 8005C694 000595F4 EC C3 20 28 */ fsubs f6, f3, f4
/* 8005C698 000595F8 C0 85 00 08 */ lfs f4, 8(r5)
/* 8005C69C 000595FC D0 81 00 4C */ stfs f4, 0x4c(r1)
/* 8005C6A0 00059600 EC A2 20 28 */ fsubs f5, f2, f4
/* 8005C6A4 00059604 C0 86 00 00 */ lfs f4, 0(r6)
/* 8005C6A8 00059608 D0 81 00 38 */ stfs f4, 0x38(r1)
/* 8005C6AC 0005960C EC 00 20 28 */ fsubs f0, f0, f4
/* 8005C6B0 00059610 C0 86 00 04 */ lfs f4, 4(r6)
/* 8005C6B4 00059614 D0 81 00 3C */ stfs f4, 0x3c(r1)
/* 8005C6B8 00059618 EC 83 20 28 */ fsubs f4, f3, f4
/* 8005C6BC 0005961C C0 66 00 08 */ lfs f3, 8(r6)
/* 8005C6C0 00059620 EC 42 18 28 */ fsubs f2, f2, f3
/* 8005C6C4 00059624 D0 61 00 40 */ stfs f3, 0x40(r1)
/* 8005C6C8 00059628 D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 8005C6CC 0005962C D0 C1 00 30 */ stfs f6, 0x30(r1)
/* 8005C6D0 00059630 D0 A1 00 34 */ stfs f5, 0x34(r1)
/* 8005C6D4 00059634 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8005C6D8 00059638 D0 81 00 24 */ stfs f4, 0x24(r1)
/* 8005C6DC 0005963C D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8005C6E0 00059640 48 2B 81 D9 */ bl Magnitude__9CVector3fCFv
/* 8005C6E4 00059644 FF A0 08 90 */ fmr f29, f1
/* 8005C6E8 00059648 38 61 00 20 */ addi r3, r1, 0x20
/* 8005C6EC 0005964C 48 2B 81 CD */ bl Magnitude__9CVector3fCFv
/* 8005C6F0 00059650 FF C0 08 90 */ fmr f30, f1
/* 8005C6F4 00059654 38 61 00 2C */ addi r3, r1, 0x2c
/* 8005C6F8 00059658 48 2B 80 01 */ bl CanBeNormalized__9CVector3fCFv
/* 8005C6FC 0005965C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005C700 00059660 40 82 00 0C */ bne lbl_8005C70C
/* 8005C704 00059664 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
/* 8005C708 00059668 48 00 00 C8 */ b lbl_8005C7D0
lbl_8005C70C:
/* 8005C70C 0005966C 38 61 00 20 */ addi r3, r1, 0x20
/* 8005C710 00059670 48 2B 7F E9 */ bl CanBeNormalized__9CVector3fCFv
/* 8005C714 00059674 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8005C718 00059678 40 82 00 0C */ bne lbl_8005C724
/* 8005C71C 0005967C C0 3C 00 44 */ lfs f1, 0x44(r28)
/* 8005C720 00059680 48 00 00 B0 */ b lbl_8005C7D0
lbl_8005C724:
/* 8005C724 00059684 57 E0 06 3F */ clrlwi. r0, r31, 0x18
/* 8005C728 00059688 41 82 00 94 */ beq lbl_8005C7BC
/* 8005C72C 0005968C 38 61 00 2C */ addi r3, r1, 0x2c
/* 8005C730 00059690 48 2B 81 89 */ bl Magnitude__9CVector3fCFv
/* 8005C734 00059694 FF E0 08 90 */ fmr f31, f1
/* 8005C738 00059698 38 61 00 14 */ addi r3, r1, 0x14
/* 8005C73C 0005969C 38 81 00 2C */ addi r4, r1, 0x2c
/* 8005C740 000596A0 48 2B 81 11 */ bl AsNormalized__9CVector3fCFv
/* 8005C744 000596A4 FC 20 F8 90 */ fmr f1, f31
/* 8005C748 000596A8 7F C4 F3 78 */ mr r4, r30
/* 8005C74C 000596AC 7F A7 EB 78 */ mr r7, r29
/* 8005C750 000596B0 38 61 00 80 */ addi r3, r1, 0x80
/* 8005C754 000596B4 38 A1 00 44 */ addi r5, r1, 0x44
/* 8005C758 000596B8 38 C1 00 14 */ addi r6, r1, 0x14
/* 8005C75C 000596BC 4B FF 08 3D */ bl RayStaticIntersection__13CStateManagerCFRC9CVector3fRC9CVector3ffRC15CMaterialFilter
/* 8005C760 000596C0 8B E1 00 A0 */ lbz r31, 0xa0(r1)
/* 8005C764 000596C4 38 61 00 20 */ addi r3, r1, 0x20
/* 8005C768 000596C8 48 2B 81 51 */ bl Magnitude__9CVector3fCFv
/* 8005C76C 000596CC FF E0 08 90 */ fmr f31, f1
/* 8005C770 000596D0 38 61 00 08 */ addi r3, r1, 8
/* 8005C774 000596D4 38 81 00 20 */ addi r4, r1, 0x20
/* 8005C778 000596D8 48 2B 80 D9 */ bl AsNormalized__9CVector3fCFv
/* 8005C77C 000596DC FC 20 F8 90 */ fmr f1, f31
/* 8005C780 000596E0 7F C4 F3 78 */ mr r4, r30
/* 8005C784 000596E4 7F A7 EB 78 */ mr r7, r29
/* 8005C788 000596E8 38 61 00 50 */ addi r3, r1, 0x50
/* 8005C78C 000596EC 38 A1 00 38 */ addi r5, r1, 0x38
/* 8005C790 000596F0 38 C1 00 08 */ addi r6, r1, 8
/* 8005C794 000596F4 4B FF 08 05 */ bl RayStaticIntersection__13CStateManagerCFRC9CVector3fRC9CVector3ffRC15CMaterialFilter
/* 8005C798 000596F8 28 1F 00 00 */ cmplwi r31, 0
/* 8005C79C 000596FC 88 01 00 70 */ lbz r0, 0x70(r1)
/* 8005C7A0 00059700 41 82 00 0C */ beq lbl_8005C7AC
/* 8005C7A4 00059704 C0 3C 00 44 */ lfs f1, 0x44(r28)
/* 8005C7A8 00059708 48 00 00 28 */ b lbl_8005C7D0
lbl_8005C7AC:
/* 8005C7AC 0005970C 28 00 00 00 */ cmplwi r0, 0
/* 8005C7B0 00059710 41 82 00 0C */ beq lbl_8005C7BC
/* 8005C7B4 00059714 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
/* 8005C7B8 00059718 48 00 00 18 */ b lbl_8005C7D0
lbl_8005C7BC:
/* 8005C7BC 0005971C FC 1D F0 40 */ fcmpo cr0, f29, f30
/* 8005C7C0 00059720 40 80 00 0C */ bge lbl_8005C7CC
/* 8005C7C4 00059724 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
/* 8005C7C8 00059728 48 00 00 08 */ b lbl_8005C7D0
lbl_8005C7CC:
/* 8005C7CC 0005972C C0 3C 00 44 */ lfs f1, 0x44(r28)
lbl_8005C7D0:
/* 8005C7D0 00059730 E3 E1 00 E8 */ psq_l f31, 232(r1), 0, qr0
/* 8005C7D4 00059734 CB E1 00 E0 */ lfd f31, 0xe0(r1)
/* 8005C7D8 00059738 E3 C1 00 D8 */ psq_l f30, 216(r1), 0, qr0
/* 8005C7DC 0005973C CB C1 00 D0 */ lfd f30, 0xd0(r1)
/* 8005C7E0 00059740 E3 A1 00 C8 */ psq_l f29, 200(r1), 0, qr0
/* 8005C7E4 00059744 CB A1 00 C0 */ lfd f29, 0xc0(r1)
/* 8005C7E8 00059748 83 E1 00 BC */ lwz r31, 0xbc(r1)
/* 8005C7EC 0005974C 83 C1 00 B8 */ lwz r30, 0xb8(r1)
/* 8005C7F0 00059750 83 A1 00 B4 */ lwz r29, 0xb4(r1)
/* 8005C7F4 00059754 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 8005C7F8 00059758 83 81 00 B0 */ lwz r28, 0xb0(r1)
/* 8005C7FC 0005975C 7C 08 03 A6 */ mtlr r0
/* 8005C800 00059760 38 21 00 F0 */ addi r1, r1, 0xf0
/* 8005C804 00059764 4E 80 00 20 */ blr
.global "GetSurroundingPoints__13CCameraSplineFiRQ24rstl27reserved_vector<9CVector3f>RQ24rstl27reserved_vector<9CVector3f>"
"GetSurroundingPoints__13CCameraSplineFiRQ24rstl27reserved_vector<9CVector3f>RQ24rstl27reserved_vector<9CVector3f>":
/* 8005C808 00059768 80 E3 00 08 */ lwz r7, 8(r3)
/* 8005C80C 0005976C 2C 07 00 03 */ cmpwi r7, 3
/* 8005C810 00059770 40 81 00 14 */ ble lbl_8005C824
/* 8005C814 00059774 2C 04 00 00 */ cmpwi r4, 0
/* 8005C818 00059778 41 80 00 0C */ blt lbl_8005C824
/* 8005C81C 0005977C 7C 04 38 00 */ cmpw r4, r7
/* 8005C820 00059780 41 80 00 0C */ blt lbl_8005C82C
lbl_8005C824:
/* 8005C824 00059784 38 60 00 00 */ li r3, 0
/* 8005C828 00059788 4E 80 00 20 */ blr
lbl_8005C82C:
/* 8005C82C 0005978C 2C 04 00 00 */ cmpwi r4, 0
/* 8005C830 00059790 40 81 00 90 */ ble lbl_8005C8C0
/* 8005C834 00059794 80 05 00 00 */ lwz r0, 0(r5)
/* 8005C838 00059798 39 04 FF FF */ addi r8, r4, -1
/* 8005C83C 0005979C 1D 48 00 0C */ mulli r10, r8, 0xc
/* 8005C840 000597A0 81 03 00 10 */ lwz r8, 0x10(r3)
/* 8005C844 000597A4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C848 000597A8 7D 28 52 14 */ add r9, r8, r10
/* 8005C84C 000597AC 7D 05 02 14 */ add r8, r5, r0
/* 8005C850 000597B0 35 08 00 04 */ addic. r8, r8, 4
/* 8005C854 000597B4 41 82 00 1C */ beq lbl_8005C870
/* 8005C858 000597B8 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005C85C 000597BC D0 08 00 00 */ stfs f0, 0(r8)
/* 8005C860 000597C0 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005C864 000597C4 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005C868 000597C8 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005C86C 000597CC D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005C870:
/* 8005C870 000597D0 81 05 00 00 */ lwz r8, 0(r5)
/* 8005C874 000597D4 38 08 00 01 */ addi r0, r8, 1
/* 8005C878 000597D8 90 05 00 00 */ stw r0, 0(r5)
/* 8005C87C 000597DC 80 06 00 00 */ lwz r0, 0(r6)
/* 8005C880 000597E0 81 03 00 40 */ lwz r8, 0x40(r3)
/* 8005C884 000597E4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C888 000597E8 7D 28 52 14 */ add r9, r8, r10
/* 8005C88C 000597EC 7D 06 02 14 */ add r8, r6, r0
/* 8005C890 000597F0 35 08 00 04 */ addic. r8, r8, 4
/* 8005C894 000597F4 41 82 00 1C */ beq lbl_8005C8B0
/* 8005C898 000597F8 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005C89C 000597FC D0 08 00 00 */ stfs f0, 0(r8)
/* 8005C8A0 00059800 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005C8A4 00059804 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005C8A8 00059808 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005C8AC 0005980C D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005C8B0:
/* 8005C8B0 00059810 81 06 00 00 */ lwz r8, 0(r6)
/* 8005C8B4 00059814 38 08 00 01 */ addi r0, r8, 1
/* 8005C8B8 00059818 90 06 00 00 */ stw r0, 0(r6)
/* 8005C8BC 0005981C 48 00 01 38 */ b lbl_8005C9F4
lbl_8005C8C0:
/* 8005C8C0 00059820 88 03 00 48 */ lbz r0, 0x48(r3)
/* 8005C8C4 00059824 28 00 00 00 */ cmplwi r0, 0
/* 8005C8C8 00059828 41 82 00 90 */ beq lbl_8005C958
/* 8005C8CC 0005982C 80 05 00 00 */ lwz r0, 0(r5)
/* 8005C8D0 00059830 39 07 FF FF */ addi r8, r7, -1
/* 8005C8D4 00059834 1D 48 00 0C */ mulli r10, r8, 0xc
/* 8005C8D8 00059838 81 03 00 10 */ lwz r8, 0x10(r3)
/* 8005C8DC 0005983C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C8E0 00059840 7D 28 52 14 */ add r9, r8, r10
/* 8005C8E4 00059844 7D 05 02 14 */ add r8, r5, r0
/* 8005C8E8 00059848 35 08 00 04 */ addic. r8, r8, 4
/* 8005C8EC 0005984C 41 82 00 1C */ beq lbl_8005C908
/* 8005C8F0 00059850 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005C8F4 00059854 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005C8F8 00059858 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005C8FC 0005985C D0 08 00 04 */ stfs f0, 4(r8)
/* 8005C900 00059860 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005C904 00059864 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005C908:
/* 8005C908 00059868 81 05 00 00 */ lwz r8, 0(r5)
/* 8005C90C 0005986C 38 08 00 01 */ addi r0, r8, 1
/* 8005C910 00059870 90 05 00 00 */ stw r0, 0(r5)
/* 8005C914 00059874 80 06 00 00 */ lwz r0, 0(r6)
/* 8005C918 00059878 81 03 00 40 */ lwz r8, 0x40(r3)
/* 8005C91C 0005987C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C920 00059880 7D 28 52 14 */ add r9, r8, r10
/* 8005C924 00059884 7D 06 02 14 */ add r8, r6, r0
/* 8005C928 00059888 35 08 00 04 */ addic. r8, r8, 4
/* 8005C92C 0005988C 41 82 00 1C */ beq lbl_8005C948
/* 8005C930 00059890 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005C934 00059894 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005C938 00059898 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005C93C 0005989C D0 08 00 04 */ stfs f0, 4(r8)
/* 8005C940 000598A0 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005C944 000598A4 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005C948:
/* 8005C948 000598A8 81 06 00 00 */ lwz r8, 0(r6)
/* 8005C94C 000598AC 38 08 00 01 */ addi r0, r8, 1
/* 8005C950 000598B0 90 06 00 00 */ stw r0, 0(r6)
/* 8005C954 000598B4 48 00 00 A0 */ b lbl_8005C9F4
lbl_8005C958:
/* 8005C958 000598B8 81 23 00 10 */ lwz r9, 0x10(r3)
/* 8005C95C 000598BC 80 05 00 00 */ lwz r0, 0(r5)
/* 8005C960 000598C0 C0 A9 00 00 */ lfs f5, 0(r9)
/* 8005C964 000598C4 C0 09 00 0C */ lfs f0, 0xc(r9)
/* 8005C968 000598C8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C96C 000598CC C0 69 00 04 */ lfs f3, 4(r9)
/* 8005C970 000598D0 C0 49 00 10 */ lfs f2, 0x10(r9)
/* 8005C974 000598D4 EC 80 28 28 */ fsubs f4, f0, f5
/* 8005C978 000598D8 7D 05 02 14 */ add r8, r5, r0
/* 8005C97C 000598DC C0 29 00 08 */ lfs f1, 8(r9)
/* 8005C980 000598E0 C0 09 00 14 */ lfs f0, 0x14(r9)
/* 8005C984 000598E4 EC 42 18 28 */ fsubs f2, f2, f3
/* 8005C988 000598E8 EC 85 20 28 */ fsubs f4, f5, f4
/* 8005C98C 000598EC EC 00 08 28 */ fsubs f0, f0, f1
/* 8005C990 000598F0 35 08 00 04 */ addic. r8, r8, 4
/* 8005C994 000598F4 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005C998 000598F8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005C99C 000598FC 41 82 00 10 */ beq lbl_8005C9AC
/* 8005C9A0 00059900 D0 88 00 00 */ stfs f4, 0(r8)
/* 8005C9A4 00059904 D0 48 00 04 */ stfs f2, 4(r8)
/* 8005C9A8 00059908 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005C9AC:
/* 8005C9AC 0005990C 81 05 00 00 */ lwz r8, 0(r5)
/* 8005C9B0 00059910 38 08 00 01 */ addi r0, r8, 1
/* 8005C9B4 00059914 90 05 00 00 */ stw r0, 0(r5)
/* 8005C9B8 00059918 80 06 00 00 */ lwz r0, 0(r6)
/* 8005C9BC 0005991C 81 23 00 40 */ lwz r9, 0x40(r3)
/* 8005C9C0 00059920 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005C9C4 00059924 7D 06 02 14 */ add r8, r6, r0
/* 8005C9C8 00059928 35 08 00 04 */ addic. r8, r8, 4
/* 8005C9CC 0005992C 41 82 00 1C */ beq lbl_8005C9E8
/* 8005C9D0 00059930 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005C9D4 00059934 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005C9D8 00059938 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005C9DC 0005993C D0 08 00 04 */ stfs f0, 4(r8)
/* 8005C9E0 00059940 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005C9E4 00059944 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005C9E8:
/* 8005C9E8 00059948 81 06 00 00 */ lwz r8, 0(r6)
/* 8005C9EC 0005994C 38 08 00 01 */ addi r0, r8, 1
/* 8005C9F0 00059950 90 06 00 00 */ stw r0, 0(r6)
lbl_8005C9F4:
/* 8005C9F4 00059954 80 05 00 00 */ lwz r0, 0(r5)
/* 8005C9F8 00059958 1D 44 00 0C */ mulli r10, r4, 0xc
/* 8005C9FC 0005995C 81 03 00 10 */ lwz r8, 0x10(r3)
/* 8005CA00 00059960 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CA04 00059964 7D 28 52 14 */ add r9, r8, r10
/* 8005CA08 00059968 7D 05 02 14 */ add r8, r5, r0
/* 8005CA0C 0005996C 35 08 00 04 */ addic. r8, r8, 4
/* 8005CA10 00059970 41 82 00 1C */ beq lbl_8005CA2C
/* 8005CA14 00059974 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005CA18 00059978 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005CA1C 0005997C C0 09 00 04 */ lfs f0, 4(r9)
/* 8005CA20 00059980 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005CA24 00059984 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005CA28 00059988 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CA2C:
/* 8005CA2C 0005998C 81 05 00 00 */ lwz r8, 0(r5)
/* 8005CA30 00059990 38 08 00 01 */ addi r0, r8, 1
/* 8005CA34 00059994 90 05 00 00 */ stw r0, 0(r5)
/* 8005CA38 00059998 80 06 00 00 */ lwz r0, 0(r6)
/* 8005CA3C 0005999C 81 03 00 40 */ lwz r8, 0x40(r3)
/* 8005CA40 000599A0 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CA44 000599A4 7D 28 52 14 */ add r9, r8, r10
/* 8005CA48 000599A8 7D 06 02 14 */ add r8, r6, r0
/* 8005CA4C 000599AC 35 08 00 04 */ addic. r8, r8, 4
/* 8005CA50 000599B0 41 82 00 1C */ beq lbl_8005CA6C
/* 8005CA54 000599B4 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005CA58 000599B8 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005CA5C 000599BC C0 09 00 04 */ lfs f0, 4(r9)
/* 8005CA60 000599C0 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005CA64 000599C4 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005CA68 000599C8 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CA6C:
/* 8005CA6C 000599CC 81 26 00 00 */ lwz r9, 0(r6)
/* 8005CA70 000599D0 39 04 00 01 */ addi r8, r4, 1
/* 8005CA74 000599D4 7C 08 38 00 */ cmpw r8, r7
/* 8005CA78 000599D8 38 09 00 01 */ addi r0, r9, 1
/* 8005CA7C 000599DC 90 06 00 00 */ stw r0, 0(r6)
/* 8005CA80 000599E0 41 80 01 58 */ blt lbl_8005CBD8
/* 8005CA84 000599E4 88 03 00 48 */ lbz r0, 0x48(r3)
/* 8005CA88 000599E8 28 00 00 00 */ cmplwi r0, 0
/* 8005CA8C 000599EC 41 82 00 90 */ beq lbl_8005CB1C
/* 8005CA90 000599F0 80 05 00 00 */ lwz r0, 0(r5)
/* 8005CA94 000599F4 7D 07 40 50 */ subf r8, r7, r8
/* 8005CA98 000599F8 1D 48 00 0C */ mulli r10, r8, 0xc
/* 8005CA9C 000599FC 81 03 00 10 */ lwz r8, 0x10(r3)
/* 8005CAA0 00059A00 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CAA4 00059A04 7D 28 52 14 */ add r9, r8, r10
/* 8005CAA8 00059A08 7D 05 02 14 */ add r8, r5, r0
/* 8005CAAC 00059A0C 35 08 00 04 */ addic. r8, r8, 4
/* 8005CAB0 00059A10 41 82 00 1C */ beq lbl_8005CACC
/* 8005CAB4 00059A14 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005CAB8 00059A18 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005CABC 00059A1C C0 09 00 04 */ lfs f0, 4(r9)
/* 8005CAC0 00059A20 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005CAC4 00059A24 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005CAC8 00059A28 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CACC:
/* 8005CACC 00059A2C 81 05 00 00 */ lwz r8, 0(r5)
/* 8005CAD0 00059A30 38 08 00 01 */ addi r0, r8, 1
/* 8005CAD4 00059A34 90 05 00 00 */ stw r0, 0(r5)
/* 8005CAD8 00059A38 80 06 00 00 */ lwz r0, 0(r6)
/* 8005CADC 00059A3C 81 03 00 40 */ lwz r8, 0x40(r3)
/* 8005CAE0 00059A40 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CAE4 00059A44 7D 28 52 14 */ add r9, r8, r10
/* 8005CAE8 00059A48 7D 06 02 14 */ add r8, r6, r0
/* 8005CAEC 00059A4C 35 08 00 04 */ addic. r8, r8, 4
/* 8005CAF0 00059A50 41 82 00 1C */ beq lbl_8005CB0C
/* 8005CAF4 00059A54 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005CAF8 00059A58 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005CAFC 00059A5C C0 09 00 04 */ lfs f0, 4(r9)
/* 8005CB00 00059A60 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005CB04 00059A64 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005CB08 00059A68 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CB0C:
/* 8005CB0C 00059A6C 81 06 00 00 */ lwz r8, 0(r6)
/* 8005CB10 00059A70 38 08 00 01 */ addi r0, r8, 1
/* 8005CB14 00059A74 90 06 00 00 */ stw r0, 0(r6)
/* 8005CB18 00059A78 48 00 01 44 */ b lbl_8005CC5C
lbl_8005CB1C:
/* 8005CB1C 00059A7C 38 07 FF FF */ addi r0, r7, -1
/* 8005CB20 00059A80 39 07 FF FE */ addi r8, r7, -2
/* 8005CB24 00059A84 1D 60 00 0C */ mulli r11, r0, 0xc
/* 8005CB28 00059A88 81 23 00 10 */ lwz r9, 0x10(r3)
/* 8005CB2C 00059A8C 80 05 00 00 */ lwz r0, 0(r5)
/* 8005CB30 00059A90 7D 49 5A 14 */ add r10, r9, r11
/* 8005CB34 00059A94 1D 08 00 0C */ mulli r8, r8, 0xc
/* 8005CB38 00059A98 C0 AA 00 00 */ lfs f5, 0(r10)
/* 8005CB3C 00059A9C C0 6A 00 04 */ lfs f3, 4(r10)
/* 8005CB40 00059AA0 C0 2A 00 08 */ lfs f1, 8(r10)
/* 8005CB44 00059AA4 7D 09 42 14 */ add r8, r9, r8
/* 8005CB48 00059AA8 C0 88 00 00 */ lfs f4, 0(r8)
/* 8005CB4C 00059AAC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CB50 00059AB0 C0 48 00 04 */ lfs f2, 4(r8)
/* 8005CB54 00059AB4 C0 08 00 08 */ lfs f0, 8(r8)
/* 8005CB58 00059AB8 EC 84 28 28 */ fsubs f4, f4, f5
/* 8005CB5C 00059ABC EC 42 18 28 */ fsubs f2, f2, f3
/* 8005CB60 00059AC0 7D 05 02 14 */ add r8, r5, r0
/* 8005CB64 00059AC4 EC 00 08 28 */ fsubs f0, f0, f1
/* 8005CB68 00059AC8 35 08 00 04 */ addic. r8, r8, 4
/* 8005CB6C 00059ACC EC 85 20 28 */ fsubs f4, f5, f4
/* 8005CB70 00059AD0 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005CB74 00059AD4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005CB78 00059AD8 41 82 00 10 */ beq lbl_8005CB88
/* 8005CB7C 00059ADC D0 88 00 00 */ stfs f4, 0(r8)
/* 8005CB80 00059AE0 D0 48 00 04 */ stfs f2, 4(r8)
/* 8005CB84 00059AE4 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CB88:
/* 8005CB88 00059AE8 81 05 00 00 */ lwz r8, 0(r5)
/* 8005CB8C 00059AEC 38 08 00 01 */ addi r0, r8, 1
/* 8005CB90 00059AF0 90 05 00 00 */ stw r0, 0(r5)
/* 8005CB94 00059AF4 80 06 00 00 */ lwz r0, 0(r6)
/* 8005CB98 00059AF8 81 03 00 40 */ lwz r8, 0x40(r3)
/* 8005CB9C 00059AFC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CBA0 00059B00 7D 28 5A 14 */ add r9, r8, r11
/* 8005CBA4 00059B04 7D 06 02 14 */ add r8, r6, r0
/* 8005CBA8 00059B08 35 08 00 04 */ addic. r8, r8, 4
/* 8005CBAC 00059B0C 41 82 00 1C */ beq lbl_8005CBC8
/* 8005CBB0 00059B10 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005CBB4 00059B14 D0 08 00 00 */ stfs f0, 0(r8)
/* 8005CBB8 00059B18 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005CBBC 00059B1C D0 08 00 04 */ stfs f0, 4(r8)
/* 8005CBC0 00059B20 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005CBC4 00059B24 D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CBC8:
/* 8005CBC8 00059B28 81 06 00 00 */ lwz r8, 0(r6)
/* 8005CBCC 00059B2C 38 08 00 01 */ addi r0, r8, 1
/* 8005CBD0 00059B30 90 06 00 00 */ stw r0, 0(r6)
/* 8005CBD4 00059B34 48 00 00 88 */ b lbl_8005CC5C
lbl_8005CBD8:
/* 8005CBD8 00059B38 80 05 00 00 */ lwz r0, 0(r5)
/* 8005CBDC 00059B3C 1D 48 00 0C */ mulli r10, r8, 0xc
/* 8005CBE0 00059B40 81 03 00 10 */ lwz r8, 0x10(r3)
/* 8005CBE4 00059B44 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CBE8 00059B48 7D 28 52 14 */ add r9, r8, r10
/* 8005CBEC 00059B4C 7D 05 02 14 */ add r8, r5, r0
/* 8005CBF0 00059B50 35 08 00 04 */ addic. r8, r8, 4
/* 8005CBF4 00059B54 41 82 00 1C */ beq lbl_8005CC10
/* 8005CBF8 00059B58 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005CBFC 00059B5C D0 08 00 00 */ stfs f0, 0(r8)
/* 8005CC00 00059B60 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005CC04 00059B64 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005CC08 00059B68 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005CC0C 00059B6C D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CC10:
/* 8005CC10 00059B70 81 05 00 00 */ lwz r8, 0(r5)
/* 8005CC14 00059B74 38 08 00 01 */ addi r0, r8, 1
/* 8005CC18 00059B78 90 05 00 00 */ stw r0, 0(r5)
/* 8005CC1C 00059B7C 80 06 00 00 */ lwz r0, 0(r6)
/* 8005CC20 00059B80 81 03 00 40 */ lwz r8, 0x40(r3)
/* 8005CC24 00059B84 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CC28 00059B88 7D 28 52 14 */ add r9, r8, r10
/* 8005CC2C 00059B8C 7D 06 02 14 */ add r8, r6, r0
/* 8005CC30 00059B90 35 08 00 04 */ addic. r8, r8, 4
/* 8005CC34 00059B94 41 82 00 1C */ beq lbl_8005CC50
/* 8005CC38 00059B98 C0 09 00 00 */ lfs f0, 0(r9)
/* 8005CC3C 00059B9C D0 08 00 00 */ stfs f0, 0(r8)
/* 8005CC40 00059BA0 C0 09 00 04 */ lfs f0, 4(r9)
/* 8005CC44 00059BA4 D0 08 00 04 */ stfs f0, 4(r8)
/* 8005CC48 00059BA8 C0 09 00 08 */ lfs f0, 8(r9)
/* 8005CC4C 00059BAC D0 08 00 08 */ stfs f0, 8(r8)
lbl_8005CC50:
/* 8005CC50 00059BB0 81 06 00 00 */ lwz r8, 0(r6)
/* 8005CC54 00059BB4 38 08 00 01 */ addi r0, r8, 1
/* 8005CC58 00059BB8 90 06 00 00 */ stw r0, 0(r6)
lbl_8005CC5C:
/* 8005CC5C 00059BBC 38 84 00 02 */ addi r4, r4, 2
/* 8005CC60 00059BC0 7C 04 38 00 */ cmpw r4, r7
/* 8005CC64 00059BC4 41 80 01 58 */ blt lbl_8005CDBC
/* 8005CC68 00059BC8 88 03 00 48 */ lbz r0, 0x48(r3)
/* 8005CC6C 00059BCC 28 00 00 00 */ cmplwi r0, 0
/* 8005CC70 00059BD0 41 82 00 90 */ beq lbl_8005CD00
/* 8005CC74 00059BD4 80 05 00 00 */ lwz r0, 0(r5)
/* 8005CC78 00059BD8 7C 87 20 50 */ subf r4, r7, r4
/* 8005CC7C 00059BDC 1D 04 00 0C */ mulli r8, r4, 0xc
/* 8005CC80 00059BE0 80 83 00 10 */ lwz r4, 0x10(r3)
/* 8005CC84 00059BE4 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CC88 00059BE8 7C E4 42 14 */ add r7, r4, r8
/* 8005CC8C 00059BEC 7C 85 02 14 */ add r4, r5, r0
/* 8005CC90 00059BF0 34 84 00 04 */ addic. r4, r4, 4
/* 8005CC94 00059BF4 41 82 00 1C */ beq lbl_8005CCB0
/* 8005CC98 00059BF8 C0 07 00 00 */ lfs f0, 0(r7)
/* 8005CC9C 00059BFC D0 04 00 00 */ stfs f0, 0(r4)
/* 8005CCA0 00059C00 C0 07 00 04 */ lfs f0, 4(r7)
/* 8005CCA4 00059C04 D0 04 00 04 */ stfs f0, 4(r4)
/* 8005CCA8 00059C08 C0 07 00 08 */ lfs f0, 8(r7)
/* 8005CCAC 00059C0C D0 04 00 08 */ stfs f0, 8(r4)
lbl_8005CCB0:
/* 8005CCB0 00059C10 80 85 00 00 */ lwz r4, 0(r5)
/* 8005CCB4 00059C14 38 04 00 01 */ addi r0, r4, 1
/* 8005CCB8 00059C18 90 05 00 00 */ stw r0, 0(r5)
/* 8005CCBC 00059C1C 80 06 00 00 */ lwz r0, 0(r6)
/* 8005CCC0 00059C20 80 63 00 40 */ lwz r3, 0x40(r3)
/* 8005CCC4 00059C24 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CCC8 00059C28 7C 83 42 14 */ add r4, r3, r8
/* 8005CCCC 00059C2C 7C 66 02 14 */ add r3, r6, r0
/* 8005CCD0 00059C30 34 63 00 04 */ addic. r3, r3, 4
/* 8005CCD4 00059C34 41 82 00 1C */ beq lbl_8005CCF0
/* 8005CCD8 00059C38 C0 04 00 00 */ lfs f0, 0(r4)
/* 8005CCDC 00059C3C D0 03 00 00 */ stfs f0, 0(r3)
/* 8005CCE0 00059C40 C0 04 00 04 */ lfs f0, 4(r4)
/* 8005CCE4 00059C44 D0 03 00 04 */ stfs f0, 4(r3)
/* 8005CCE8 00059C48 C0 04 00 08 */ lfs f0, 8(r4)
/* 8005CCEC 00059C4C D0 03 00 08 */ stfs f0, 8(r3)
lbl_8005CCF0:
/* 8005CCF0 00059C50 80 66 00 00 */ lwz r3, 0(r6)
/* 8005CCF4 00059C54 38 03 00 01 */ addi r0, r3, 1
/* 8005CCF8 00059C58 90 06 00 00 */ stw r0, 0(r6)
/* 8005CCFC 00059C5C 48 00 01 44 */ b lbl_8005CE40
lbl_8005CD00:
/* 8005CD00 00059C60 38 07 FF FF */ addi r0, r7, -1
/* 8005CD04 00059C64 38 87 FF FE */ addi r4, r7, -2
/* 8005CD08 00059C68 1D 20 00 0C */ mulli r9, r0, 0xc
/* 8005CD0C 00059C6C 80 E3 00 10 */ lwz r7, 0x10(r3)
/* 8005CD10 00059C70 80 05 00 00 */ lwz r0, 0(r5)
/* 8005CD14 00059C74 7D 07 4A 14 */ add r8, r7, r9
/* 8005CD18 00059C78 1C 84 00 0C */ mulli r4, r4, 0xc
/* 8005CD1C 00059C7C C0 A8 00 00 */ lfs f5, 0(r8)
/* 8005CD20 00059C80 C0 68 00 04 */ lfs f3, 4(r8)
/* 8005CD24 00059C84 C0 28 00 08 */ lfs f1, 8(r8)
/* 8005CD28 00059C88 7C 87 22 14 */ add r4, r7, r4
/* 8005CD2C 00059C8C C0 84 00 00 */ lfs f4, 0(r4)
/* 8005CD30 00059C90 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CD34 00059C94 C0 44 00 04 */ lfs f2, 4(r4)
/* 8005CD38 00059C98 C0 04 00 08 */ lfs f0, 8(r4)
/* 8005CD3C 00059C9C EC 84 28 28 */ fsubs f4, f4, f5
/* 8005CD40 00059CA0 EC 42 18 28 */ fsubs f2, f2, f3
/* 8005CD44 00059CA4 7C 85 02 14 */ add r4, r5, r0
/* 8005CD48 00059CA8 EC 00 08 28 */ fsubs f0, f0, f1
/* 8005CD4C 00059CAC 34 84 00 04 */ addic. r4, r4, 4
/* 8005CD50 00059CB0 EC 85 20 28 */ fsubs f4, f5, f4
/* 8005CD54 00059CB4 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005CD58 00059CB8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005CD5C 00059CBC 41 82 00 10 */ beq lbl_8005CD6C
/* 8005CD60 00059CC0 D0 84 00 00 */ stfs f4, 0(r4)
/* 8005CD64 00059CC4 D0 44 00 04 */ stfs f2, 4(r4)
/* 8005CD68 00059CC8 D0 04 00 08 */ stfs f0, 8(r4)
lbl_8005CD6C:
/* 8005CD6C 00059CCC 80 85 00 00 */ lwz r4, 0(r5)
/* 8005CD70 00059CD0 38 04 00 01 */ addi r0, r4, 1
/* 8005CD74 00059CD4 90 05 00 00 */ stw r0, 0(r5)
/* 8005CD78 00059CD8 80 06 00 00 */ lwz r0, 0(r6)
/* 8005CD7C 00059CDC 80 63 00 40 */ lwz r3, 0x40(r3)
/* 8005CD80 00059CE0 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CD84 00059CE4 7C 83 4A 14 */ add r4, r3, r9
/* 8005CD88 00059CE8 7C 66 02 14 */ add r3, r6, r0
/* 8005CD8C 00059CEC 34 63 00 04 */ addic. r3, r3, 4
/* 8005CD90 00059CF0 41 82 00 1C */ beq lbl_8005CDAC
/* 8005CD94 00059CF4 C0 04 00 00 */ lfs f0, 0(r4)
/* 8005CD98 00059CF8 D0 03 00 00 */ stfs f0, 0(r3)
/* 8005CD9C 00059CFC C0 04 00 04 */ lfs f0, 4(r4)
/* 8005CDA0 00059D00 D0 03 00 04 */ stfs f0, 4(r3)
/* 8005CDA4 00059D04 C0 04 00 08 */ lfs f0, 8(r4)
/* 8005CDA8 00059D08 D0 03 00 08 */ stfs f0, 8(r3)
lbl_8005CDAC:
/* 8005CDAC 00059D0C 80 66 00 00 */ lwz r3, 0(r6)
/* 8005CDB0 00059D10 38 03 00 01 */ addi r0, r3, 1
/* 8005CDB4 00059D14 90 06 00 00 */ stw r0, 0(r6)
/* 8005CDB8 00059D18 48 00 00 88 */ b lbl_8005CE40
lbl_8005CDBC:
/* 8005CDBC 00059D1C 80 05 00 00 */ lwz r0, 0(r5)
/* 8005CDC0 00059D20 1D 04 00 0C */ mulli r8, r4, 0xc
/* 8005CDC4 00059D24 80 83 00 10 */ lwz r4, 0x10(r3)
/* 8005CDC8 00059D28 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CDCC 00059D2C 7C E4 42 14 */ add r7, r4, r8
/* 8005CDD0 00059D30 7C 85 02 14 */ add r4, r5, r0
/* 8005CDD4 00059D34 34 84 00 04 */ addic. r4, r4, 4
/* 8005CDD8 00059D38 41 82 00 1C */ beq lbl_8005CDF4
/* 8005CDDC 00059D3C C0 07 00 00 */ lfs f0, 0(r7)
/* 8005CDE0 00059D40 D0 04 00 00 */ stfs f0, 0(r4)
/* 8005CDE4 00059D44 C0 07 00 04 */ lfs f0, 4(r7)
/* 8005CDE8 00059D48 D0 04 00 04 */ stfs f0, 4(r4)
/* 8005CDEC 00059D4C C0 07 00 08 */ lfs f0, 8(r7)
/* 8005CDF0 00059D50 D0 04 00 08 */ stfs f0, 8(r4)
lbl_8005CDF4:
/* 8005CDF4 00059D54 80 85 00 00 */ lwz r4, 0(r5)
/* 8005CDF8 00059D58 38 04 00 01 */ addi r0, r4, 1
/* 8005CDFC 00059D5C 90 05 00 00 */ stw r0, 0(r5)
/* 8005CE00 00059D60 80 06 00 00 */ lwz r0, 0(r6)
/* 8005CE04 00059D64 80 63 00 40 */ lwz r3, 0x40(r3)
/* 8005CE08 00059D68 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CE0C 00059D6C 7C 83 42 14 */ add r4, r3, r8
/* 8005CE10 00059D70 7C 66 02 14 */ add r3, r6, r0
/* 8005CE14 00059D74 34 63 00 04 */ addic. r3, r3, 4
/* 8005CE18 00059D78 41 82 00 1C */ beq lbl_8005CE34
/* 8005CE1C 00059D7C C0 04 00 00 */ lfs f0, 0(r4)
/* 8005CE20 00059D80 D0 03 00 00 */ stfs f0, 0(r3)
/* 8005CE24 00059D84 C0 04 00 04 */ lfs f0, 4(r4)
/* 8005CE28 00059D88 D0 03 00 04 */ stfs f0, 4(r3)
/* 8005CE2C 00059D8C C0 04 00 08 */ lfs f0, 8(r4)
/* 8005CE30 00059D90 D0 03 00 08 */ stfs f0, 8(r3)
lbl_8005CE34:
/* 8005CE34 00059D94 80 66 00 00 */ lwz r3, 0(r6)
/* 8005CE38 00059D98 38 03 00 01 */ addi r0, r3, 1
/* 8005CE3C 00059D9C 90 06 00 00 */ stw r0, 0(r6)
lbl_8005CE40:
/* 8005CE40 00059DA0 38 60 00 01 */ li r3, 1
/* 8005CE44 00059DA4 4E 80 00 20 */ blr
.global Reset__13CCameraSplineFi
Reset__13CCameraSplineFi:
/* 8005CE48 00059DA8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8005CE4C 00059DAC 7C 08 02 A6 */ mflr r0
/* 8005CE50 00059DB0 90 01 00 44 */ stw r0, 0x44(r1)
/* 8005CE54 00059DB4 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8005CE58 00059DB8 7C 9F 23 78 */ mr r31, r4
/* 8005CE5C 00059DBC 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8005CE60 00059DC0 7C 7E 1B 78 */ mr r30, r3
/* 8005CE64 00059DC4 80 03 00 08 */ lwz r0, 8(r3)
/* 8005CE68 00059DC8 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8005CE6C 00059DCC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CE70 00059DD0 90 61 00 2C */ stw r3, 0x2c(r1)
/* 8005CE74 00059DD4 7C 03 02 14 */ add r0, r3, r0
/* 8005CE78 00059DD8 90 61 00 28 */ stw r3, 0x28(r1)
/* 8005CE7C 00059DDC 90 01 00 34 */ stw r0, 0x34(r1)
/* 8005CE80 00059DE0 90 01 00 30 */ stw r0, 0x30(r1)
/* 8005CE84 00059DE4 48 00 00 08 */ b lbl_8005CE8C
lbl_8005CE88:
/* 8005CE88 00059DE8 38 63 00 0C */ addi r3, r3, 0xc
lbl_8005CE8C:
/* 8005CE8C 00059DEC 7C 03 00 40 */ cmplw r3, r0
/* 8005CE90 00059DF0 40 82 FF F8 */ bne lbl_8005CE88
/* 8005CE94 00059DF4 38 00 00 00 */ li r0, 0
/* 8005CE98 00059DF8 90 1E 00 08 */ stw r0, 8(r30)
/* 8005CE9C 00059DFC 80 1E 00 28 */ lwz r0, 0x28(r30)
/* 8005CEA0 00059E00 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 8005CEA4 00059E04 54 00 10 3A */ slwi r0, r0, 2
/* 8005CEA8 00059E08 7C 03 02 14 */ add r0, r3, r0
/* 8005CEAC 00059E0C 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8005CEB0 00059E10 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005CEB4 00059E14 90 01 00 20 */ stw r0, 0x20(r1)
/* 8005CEB8 00059E18 90 61 00 18 */ stw r3, 0x18(r1)
/* 8005CEBC 00059E1C 48 00 00 08 */ b lbl_8005CEC4
lbl_8005CEC0:
/* 8005CEC0 00059E20 38 63 00 04 */ addi r3, r3, 4
lbl_8005CEC4:
/* 8005CEC4 00059E24 7C 03 00 40 */ cmplw r3, r0
/* 8005CEC8 00059E28 40 82 FF F8 */ bne lbl_8005CEC0
/* 8005CECC 00059E2C 38 00 00 00 */ li r0, 0
/* 8005CED0 00059E30 90 1E 00 28 */ stw r0, 0x28(r30)
/* 8005CED4 00059E34 80 1E 00 38 */ lwz r0, 0x38(r30)
/* 8005CED8 00059E38 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 8005CEDC 00059E3C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CEE0 00059E40 90 61 00 0C */ stw r3, 0xc(r1)
/* 8005CEE4 00059E44 7C 03 02 14 */ add r0, r3, r0
/* 8005CEE8 00059E48 90 61 00 08 */ stw r3, 8(r1)
/* 8005CEEC 00059E4C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005CEF0 00059E50 90 01 00 10 */ stw r0, 0x10(r1)
/* 8005CEF4 00059E54 48 00 00 08 */ b lbl_8005CEFC
lbl_8005CEF8:
/* 8005CEF8 00059E58 38 63 00 0C */ addi r3, r3, 0xc
lbl_8005CEFC:
/* 8005CEFC 00059E5C 7C 03 00 40 */ cmplw r3, r0
/* 8005CF00 00059E60 40 82 FF F8 */ bne lbl_8005CEF8
/* 8005CF04 00059E64 38 00 00 00 */ li r0, 0
/* 8005CF08 00059E68 28 1F 00 00 */ cmplwi r31, 0
/* 8005CF0C 00059E6C 90 1E 00 38 */ stw r0, 0x38(r30)
/* 8005CF10 00059E70 41 82 00 28 */ beq lbl_8005CF38
/* 8005CF14 00059E74 7F E4 FB 78 */ mr r4, r31
/* 8005CF18 00059E78 38 7E 00 04 */ addi r3, r30, 4
/* 8005CF1C 00059E7C 48 00 0D DD */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
/* 8005CF20 00059E80 7F E4 FB 78 */ mr r4, r31
/* 8005CF24 00059E84 38 7E 00 24 */ addi r3, r30, 0x24
/* 8005CF28 00059E88 48 00 0E D1 */ bl "reserve__Q24rstl36vector<f,Q24rstl17rmemory_allocator>Fi"
/* 8005CF2C 00059E8C 7F E4 FB 78 */ mr r4, r31
/* 8005CF30 00059E90 38 7E 00 34 */ addi r3, r30, 0x34
/* 8005CF34 00059E94 48 00 0D C5 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_8005CF38:
/* 8005CF38 00059E98 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8005CF3C 00059E9C 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8005CF40 00059EA0 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8005CF44 00059EA4 7C 08 03 A6 */ mtlr r0
/* 8005CF48 00059EA8 38 21 00 40 */ addi r1, r1, 0x40
/* 8005CF4C 00059EAC 4E 80 00 20 */ blr
.global AddKnot__13CCameraSplineFRC9CVector3fRC9CVector3f
AddKnot__13CCameraSplineFRC9CVector3fRC9CVector3f:
/* 8005CF50 00059EB0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8005CF54 00059EB4 7C 08 02 A6 */ mflr r0
/* 8005CF58 00059EB8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005CF5C 00059EBC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8005CF60 00059EC0 7C 7F 1B 78 */ mr r31, r3
/* 8005CF64 00059EC4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8005CF68 00059EC8 7C BE 2B 78 */ mr r30, r5
/* 8005CF6C 00059ECC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8005CF70 00059ED0 7C 9D 23 78 */ mr r29, r4
/* 8005CF74 00059ED4 80 03 00 08 */ lwz r0, 8(r3)
/* 8005CF78 00059ED8 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 8005CF7C 00059EDC 7C 00 28 00 */ cmpw r0, r5
/* 8005CF80 00059EE0 41 80 00 1C */ blt lbl_8005CF9C
/* 8005CF84 00059EE4 2C 05 00 00 */ cmpwi r5, 0
/* 8005CF88 00059EE8 38 7F 00 04 */ addi r3, r31, 4
/* 8005CF8C 00059EEC 38 80 00 04 */ li r4, 4
/* 8005CF90 00059EF0 41 82 00 08 */ beq lbl_8005CF98
/* 8005CF94 00059EF4 54 A4 08 3C */ slwi r4, r5, 1
lbl_8005CF98:
/* 8005CF98 00059EF8 48 00 0D 61 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_8005CF9C:
/* 8005CF9C 00059EFC 80 1F 00 08 */ lwz r0, 8(r31)
/* 8005CFA0 00059F00 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8005CFA4 00059F04 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005CFA8 00059F08 7C 63 02 15 */ add. r3, r3, r0
/* 8005CFAC 00059F0C 41 82 00 1C */ beq lbl_8005CFC8
/* 8005CFB0 00059F10 C0 1D 00 00 */ lfs f0, 0(r29)
/* 8005CFB4 00059F14 D0 03 00 00 */ stfs f0, 0(r3)
/* 8005CFB8 00059F18 C0 1D 00 04 */ lfs f0, 4(r29)
/* 8005CFBC 00059F1C D0 03 00 04 */ stfs f0, 4(r3)
/* 8005CFC0 00059F20 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8005CFC4 00059F24 D0 03 00 08 */ stfs f0, 8(r3)
lbl_8005CFC8:
/* 8005CFC8 00059F28 80 7F 00 08 */ lwz r3, 8(r31)
/* 8005CFCC 00059F2C 38 03 00 01 */ addi r0, r3, 1
/* 8005CFD0 00059F30 90 1F 00 08 */ stw r0, 8(r31)
/* 8005CFD4 00059F34 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 8005CFD8 00059F38 80 BF 00 3C */ lwz r5, 0x3c(r31)
/* 8005CFDC 00059F3C 7C 00 28 00 */ cmpw r0, r5
/* 8005CFE0 00059F40 41 80 00 1C */ blt lbl_8005CFFC
/* 8005CFE4 00059F44 2C 05 00 00 */ cmpwi r5, 0
/* 8005CFE8 00059F48 38 7F 00 34 */ addi r3, r31, 0x34
/* 8005CFEC 00059F4C 38 80 00 04 */ li r4, 4
/* 8005CFF0 00059F50 41 82 00 08 */ beq lbl_8005CFF8
/* 8005CFF4 00059F54 54 A4 08 3C */ slwi r4, r5, 1
lbl_8005CFF8:
/* 8005CFF8 00059F58 48 00 0D 01 */ bl "reserve__Q24rstl45vector<9CVector3f,Q24rstl17rmemory_allocator>Fi"
lbl_8005CFFC:
/* 8005CFFC 00059F5C 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 8005D000 00059F60 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 8005D004 00059F64 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005D008 00059F68 7C 63 02 15 */ add. r3, r3, r0
/* 8005D00C 00059F6C 41 82 00 1C */ beq lbl_8005D028
/* 8005D010 00059F70 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8005D014 00059F74 D0 03 00 00 */ stfs f0, 0(r3)
/* 8005D018 00059F78 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8005D01C 00059F7C D0 03 00 04 */ stfs f0, 4(r3)
/* 8005D020 00059F80 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8005D024 00059F84 D0 03 00 08 */ stfs f0, 8(r3)
lbl_8005D028:
/* 8005D028 00059F88 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 8005D02C 00059F8C 38 03 00 01 */ addi r0, r3, 1
/* 8005D030 00059F90 90 1F 00 38 */ stw r0, 0x38(r31)
/* 8005D034 00059F94 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8005D038 00059F98 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8005D03C 00059F9C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8005D040 00059FA0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005D044 00059FA4 7C 08 03 A6 */ mtlr r0
/* 8005D048 00059FA8 38 21 00 20 */ addi r1, r1, 0x20
/* 8005D04C 00059FAC 4E 80 00 20 */ blr
.global SetKnotPosition__13CCameraSplineFiRC9CVector3f
SetKnotPosition__13CCameraSplineFiRC9CVector3f:
/* 8005D050 00059FB0 80 03 00 08 */ lwz r0, 8(r3)
/* 8005D054 00059FB4 7C 04 00 00 */ cmpw r4, r0
/* 8005D058 00059FB8 4C 80 00 20 */ bgelr
/* 8005D05C 00059FBC 1C 04 00 0C */ mulli r0, r4, 0xc
/* 8005D060 00059FC0 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8005D064 00059FC4 C0 05 00 00 */ lfs f0, 0(r5)
/* 8005D068 00059FC8 7C 63 02 14 */ add r3, r3, r0
/* 8005D06C 00059FCC D0 03 00 00 */ stfs f0, 0(r3)
/* 8005D070 00059FD0 C0 05 00 04 */ lfs f0, 4(r5)
/* 8005D074 00059FD4 D0 03 00 04 */ stfs f0, 4(r3)
/* 8005D078 00059FD8 C0 05 00 08 */ lfs f0, 8(r5)
/* 8005D07C 00059FDC D0 03 00 08 */ stfs f0, 8(r3)
/* 8005D080 00059FE0 4E 80 00 20 */ blr
.global GetKnotPosition__11CBallCameraCFi
GetKnotPosition__11CBallCameraCFi:
/* 8005D084 00059FE4 80 04 00 08 */ lwz r0, 8(r4)
/* 8005D088 00059FE8 7C 05 00 00 */ cmpw r5, r0
/* 8005D08C 00059FEC 40 80 00 2C */ bge lbl_8005D0B8
/* 8005D090 00059FF0 1C 05 00 0C */ mulli r0, r5, 0xc
/* 8005D094 00059FF4 80 84 00 10 */ lwz r4, 0x10(r4)
/* 8005D098 00059FF8 7C 84 02 14 */ add r4, r4, r0
/* 8005D09C 00059FFC C0 04 00 00 */ lfs f0, 0(r4)
/* 8005D0A0 0005A000 D0 03 00 00 */ stfs f0, 0(r3)
/* 8005D0A4 0005A004 C0 04 00 04 */ lfs f0, 4(r4)
/* 8005D0A8 0005A008 D0 03 00 04 */ stfs f0, 4(r3)
/* 8005D0AC 0005A00C C0 04 00 08 */ lfs f0, 8(r4)
/* 8005D0B0 0005A010 D0 03 00 08 */ stfs f0, 8(r3)
/* 8005D0B4 0005A014 4E 80 00 20 */ blr
lbl_8005D0B8:
/* 8005D0B8 0005A018 3C 80 80 5A */ lis r4, skZero3f@ha
/* 8005D0BC 0005A01C C4 04 66 A0 */ lfsu f0, skZero3f@l(r4)
/* 8005D0C0 0005A020 D0 03 00 00 */ stfs f0, 0(r3)
/* 8005D0C4 0005A024 C0 04 00 04 */ lfs f0, 4(r4)
/* 8005D0C8 0005A028 D0 03 00 04 */ stfs f0, 4(r3)
/* 8005D0CC 0005A02C C0 04 00 08 */ lfs f0, 8(r4)
/* 8005D0D0 0005A030 D0 03 00 08 */ stfs f0, 8(r3)
/* 8005D0D4 0005A034 4E 80 00 20 */ blr
.global GetKnotT__13CCameraSplineCFi
GetKnotT__13CCameraSplineCFi:
/* 8005D0D8 0005A038 80 03 00 08 */ lwz r0, 8(r3)
/* 8005D0DC 0005A03C 7C 04 00 00 */ cmpw r4, r0
/* 8005D0E0 0005A040 40 80 00 14 */ bge lbl_8005D0F4
/* 8005D0E4 0005A044 80 63 00 30 */ lwz r3, 0x30(r3)
/* 8005D0E8 0005A048 54 80 10 3A */ slwi r0, r4, 2
/* 8005D0EC 0005A04C 7C 23 04 2E */ lfsx f1, r3, r0
/* 8005D0F0 0005A050 4E 80 00 20 */ blr
lbl_8005D0F4:
/* 8005D0F4 0005A054 C0 22 86 B8 */ lfs f1, lbl_805AA3D8@sda21(r2)
/* 8005D0F8 0005A058 4E 80 00 20 */ blr
.global "CalculateKnots__13CCameraSplineFRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>R13CStateManager"
"CalculateKnots__13CCameraSplineFRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>R13CStateManager":
/* 8005D0FC 0005A05C 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 8005D100 0005A060 7C 08 02 A6 */ mflr r0
/* 8005D104 0005A064 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 8005D108 0005A068 BF 41 00 D8 */ stmw r26, 0xd8(r1)
/* 8005D10C 0005A06C 7C 7B 1B 78 */ mr r27, r3
/* 8005D110 0005A070 7C DC 33 78 */ mr r28, r6
/* 8005D114 0005A074 3B E0 00 00 */ li r31, 0
/* 8005D118 0005A078 80 05 00 04 */ lwz r0, 4(r5)
/* 8005D11C 0005A07C 80 85 00 0C */ lwz r4, 0xc(r5)
/* 8005D120 0005A080 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005D124 0005A084 7C 64 02 14 */ add r3, r4, r0
/* 8005D128 0005A088 48 00 00 24 */ b lbl_8005D14C
lbl_8005D12C:
/* 8005D12C 0005A08C 80 04 00 00 */ lwz r0, 0(r4)
/* 8005D130 0005A090 2C 00 00 0F */ cmpwi r0, 0xf
/* 8005D134 0005A094 40 82 00 14 */ bne lbl_8005D148
/* 8005D138 0005A098 80 04 00 04 */ lwz r0, 4(r4)
/* 8005D13C 0005A09C 2C 00 00 06 */ cmpwi r0, 6
/* 8005D140 0005A0A0 40 82 00 08 */ bne lbl_8005D148
/* 8005D144 0005A0A4 7C 9F 23 78 */ mr r31, r4
lbl_8005D148:
/* 8005D148 0005A0A8 38 84 00 0C */ addi r4, r4, 0xc
lbl_8005D14C:
/* 8005D14C 0005A0AC 7C 04 18 40 */ cmplw r4, r3
/* 8005D150 0005A0B0 40 82 FF DC */ bne lbl_8005D12C
/* 8005D154 0005A0B4 28 1F 00 00 */ cmplwi r31, 0
/* 8005D158 0005A0B8 41 82 03 44 */ beq lbl_8005D49C
/* 8005D15C 0005A0BC 80 1F 00 08 */ lwz r0, 8(r31)
/* 8005D160 0005A0C0 7F 84 E3 78 */ mr r4, r28
/* 8005D164 0005A0C4 38 61 00 20 */ addi r3, r1, 0x20
/* 8005D168 0005A0C8 38 A1 00 74 */ addi r5, r1, 0x74
/* 8005D16C 0005A0CC 90 01 00 74 */ stw r0, 0x74(r1)
/* 8005D170 0005A0D0 4B FE AD AD */ bl GetIdForScript__13CStateManagerCF9TEditorId
/* 8005D174 0005A0D4 A0 01 00 20 */ lhz r0, 0x20(r1)
/* 8005D178 0005A0D8 7F 83 E3 78 */ mr r3, r28
/* 8005D17C 0005A0DC 38 81 00 24 */ addi r4, r1, 0x24
/* 8005D180 0005A0E0 B0 01 00 24 */ sth r0, 0x24(r1)
/* 8005D184 0005A0E4 4B FE F3 F1 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8005D188 0005A0E8 7C 64 1B 78 */ mr r4, r3
/* 8005D18C 0005A0EC 38 61 00 90 */ addi r3, r1, 0x90
/* 8005D190 0005A0F0 48 04 DC 15 */ bl "__ct__35TCastToPtr<21CScriptCameraWaypoint>FP7CEntity"
/* 8005D194 0005A0F4 80 1B 00 18 */ lwz r0, 0x18(r27)
/* 8005D198 0005A0F8 3B A0 00 00 */ li r29, 0
/* 8005D19C 0005A0FC 80 9B 00 20 */ lwz r4, 0x20(r27)
/* 8005D1A0 0005A100 54 00 08 3C */ slwi r0, r0, 1
/* 8005D1A4 0005A104 83 C3 00 04 */ lwz r30, 4(r3)
/* 8005D1A8 0005A108 7C 04 02 14 */ add r0, r4, r0
/* 8005D1AC 0005A10C 90 81 00 3C */ stw r4, 0x3c(r1)
/* 8005D1B0 0005A110 90 01 00 44 */ stw r0, 0x44(r1)
/* 8005D1B4 0005A114 90 01 00 40 */ stw r0, 0x40(r1)
/* 8005D1B8 0005A118 90 81 00 38 */ stw r4, 0x38(r1)
/* 8005D1BC 0005A11C 48 00 00 08 */ b lbl_8005D1C4
lbl_8005D1C0:
/* 8005D1C0 0005A120 38 84 00 02 */ addi r4, r4, 2
lbl_8005D1C4:
/* 8005D1C4 0005A124 7C 04 00 40 */ cmplw r4, r0
/* 8005D1C8 0005A128 40 82 FF F8 */ bne lbl_8005D1C0
/* 8005D1CC 0005A12C 38 00 00 00 */ li r0, 0
/* 8005D1D0 0005A130 38 7B 00 14 */ addi r3, r27, 0x14
/* 8005D1D4 0005A134 90 1B 00 18 */ stw r0, 0x18(r27)
/* 8005D1D8 0005A138 38 80 00 04 */ li r4, 4
/* 8005D1DC 0005A13C 4B FA F2 2D */ bl "reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi"
/* 8005D1E0 0005A140 48 00 01 00 */ b lbl_8005D2E0
lbl_8005D1E4:
/* 8005D1E4 0005A144 80 DB 00 18 */ lwz r6, 0x18(r27)
/* 8005D1E8 0005A148 80 1B 00 20 */ lwz r0, 0x20(r27)
/* 8005D1EC 0005A14C 54 C4 08 3C */ slwi r4, r6, 1
/* 8005D1F0 0005A150 A0 FE 00 08 */ lhz r7, 8(r30)
/* 8005D1F4 0005A154 7C A0 22 14 */ add r5, r0, r4
/* 8005D1F8 0005A158 90 01 00 6C */ stw r0, 0x6c(r1)
/* 8005D1FC 0005A15C 90 A1 00 60 */ stw r5, 0x60(r1)
/* 8005D200 0005A160 90 01 00 70 */ stw r0, 0x70(r1)
/* 8005D204 0005A164 90 A1 00 64 */ stw r5, 0x64(r1)
/* 8005D208 0005A168 90 A1 00 68 */ stw r5, 0x68(r1)
/* 8005D20C 0005A16C 48 00 00 10 */ b lbl_8005D21C
lbl_8005D210:
/* 8005D210 0005A170 80 61 00 70 */ lwz r3, 0x70(r1)
/* 8005D214 0005A174 38 03 00 02 */ addi r0, r3, 2
/* 8005D218 0005A178 90 01 00 70 */ stw r0, 0x70(r1)
lbl_8005D21C:
/* 8005D21C 0005A17C 80 61 00 70 */ lwz r3, 0x70(r1)
/* 8005D220 0005A180 7C 03 28 40 */ cmplw r3, r5
/* 8005D224 0005A184 41 82 00 10 */ beq lbl_8005D234
/* 8005D228 0005A188 A0 03 00 00 */ lhz r0, 0(r3)
/* 8005D22C 0005A18C 7C 00 38 40 */ cmplw r0, r7
/* 8005D230 0005A190 40 82 FF E0 */ bne lbl_8005D210
lbl_8005D234:
/* 8005D234 0005A194 80 61 00 70 */ lwz r3, 0x70(r1)
/* 8005D238 0005A198 80 01 00 60 */ lwz r0, 0x60(r1)
/* 8005D23C 0005A19C 7C 03 00 40 */ cmplw r3, r0
/* 8005D240 0005A1A0 40 82 00 A8 */ bne lbl_8005D2E8
/* 8005D244 0005A1A4 80 1B 00 1C */ lwz r0, 0x1c(r27)
/* 8005D248 0005A1A8 7C 06 00 00 */ cmpw r6, r0
/* 8005D24C 0005A1AC 40 82 00 0C */ bne lbl_8005D258
/* 8005D250 0005A1B0 38 7B 00 14 */ addi r3, r27, 0x14
/* 8005D254 0005A1B4 4B FA F1 B5 */ bl "reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi"
lbl_8005D258:
/* 8005D258 0005A1B8 80 1B 00 18 */ lwz r0, 0x18(r27)
/* 8005D25C 0005A1BC 80 BB 00 1C */ lwz r5, 0x1c(r27)
/* 8005D260 0005A1C0 A3 5E 00 08 */ lhz r26, 8(r30)
/* 8005D264 0005A1C4 7C 00 28 00 */ cmpw r0, r5
/* 8005D268 0005A1C8 41 80 00 1C */ blt lbl_8005D284
/* 8005D26C 0005A1CC 2C 05 00 00 */ cmpwi r5, 0
/* 8005D270 0005A1D0 38 7B 00 14 */ addi r3, r27, 0x14
/* 8005D274 0005A1D4 38 80 00 04 */ li r4, 4
/* 8005D278 0005A1D8 41 82 00 08 */ beq lbl_8005D280
/* 8005D27C 0005A1DC 54 A4 08 3C */ slwi r4, r5, 1
lbl_8005D280:
/* 8005D280 0005A1E0 4B FA F1 89 */ bl "reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi"
lbl_8005D284:
/* 8005D284 0005A1E4 80 1B 00 18 */ lwz r0, 0x18(r27)
/* 8005D288 0005A1E8 80 7B 00 20 */ lwz r3, 0x20(r27)
/* 8005D28C 0005A1EC 54 00 08 3C */ slwi r0, r0, 1
/* 8005D290 0005A1F0 7C 63 02 15 */ add. r3, r3, r0
/* 8005D294 0005A1F4 41 82 00 08 */ beq lbl_8005D29C
/* 8005D298 0005A1F8 B3 43 00 00 */ sth r26, 0(r3)
lbl_8005D29C:
/* 8005D29C 0005A1FC 80 DB 00 18 */ lwz r6, 0x18(r27)
/* 8005D2A0 0005A200 7F C4 F3 78 */ mr r4, r30
/* 8005D2A4 0005A204 7F 85 E3 78 */ mr r5, r28
/* 8005D2A8 0005A208 38 61 00 18 */ addi r3, r1, 0x18
/* 8005D2AC 0005A20C 38 06 00 01 */ addi r0, r6, 1
/* 8005D2B0 0005A210 3B BD 00 01 */ addi r29, r29, 1
/* 8005D2B4 0005A214 90 1B 00 18 */ stw r0, 0x18(r27)
/* 8005D2B8 0005A218 48 05 7F 51 */ bl GetRandomNextWaypointId__21CScriptCameraWaypointCFRC13CStateManager
/* 8005D2BC 0005A21C A0 01 00 18 */ lhz r0, 0x18(r1)
/* 8005D2C0 0005A220 7F 83 E3 78 */ mr r3, r28
/* 8005D2C4 0005A224 38 81 00 1C */ addi r4, r1, 0x1c
/* 8005D2C8 0005A228 B0 01 00 1C */ sth r0, 0x1c(r1)
/* 8005D2CC 0005A22C 4B FE F2 A9 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8005D2D0 0005A230 7C 64 1B 78 */ mr r4, r3
/* 8005D2D4 0005A234 38 61 00 88 */ addi r3, r1, 0x88
/* 8005D2D8 0005A238 48 04 DA CD */ bl "__ct__35TCastToPtr<21CScriptCameraWaypoint>FP7CEntity"
/* 8005D2DC 0005A23C 83 C3 00 04 */ lwz r30, 4(r3)
lbl_8005D2E0:
/* 8005D2E0 0005A240 28 1E 00 00 */ cmplwi r30, 0
/* 8005D2E4 0005A244 40 82 FF 00 */ bne lbl_8005D1E4
lbl_8005D2E8:
/* 8005D2E8 0005A248 7F 63 DB 78 */ mr r3, r27
/* 8005D2EC 0005A24C 7F A4 EB 78 */ mr r4, r29
/* 8005D2F0 0005A250 4B FF FB 59 */ bl Reset__13CCameraSplineFi
/* 8005D2F4 0005A254 38 00 00 00 */ li r0, 0
/* 8005D2F8 0005A258 38 7B 00 14 */ addi r3, r27, 0x14
/* 8005D2FC 0005A25C 90 01 00 CC */ stw r0, 0xcc(r1)
/* 8005D300 0005A260 38 81 00 C8 */ addi r4, r1, 0xc8
/* 8005D304 0005A264 90 01 00 D0 */ stw r0, 0xd0(r1)
/* 8005D308 0005A268 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8005D30C 0005A26C 48 00 01 A5 */ bl sub_8005d4b0
/* 8005D310 0005A270 80 01 00 CC */ lwz r0, 0xcc(r1)
/* 8005D314 0005A274 80 61 00 D4 */ lwz r3, 0xd4(r1)
/* 8005D318 0005A278 54 00 08 3C */ slwi r0, r0, 1
/* 8005D31C 0005A27C 7C 03 02 14 */ add r0, r3, r0
/* 8005D320 0005A280 90 61 00 2C */ stw r3, 0x2c(r1)
/* 8005D324 0005A284 7C 64 1B 78 */ mr r4, r3
/* 8005D328 0005A288 90 01 00 34 */ stw r0, 0x34(r1)
/* 8005D32C 0005A28C 90 01 00 30 */ stw r0, 0x30(r1)
/* 8005D330 0005A290 90 61 00 28 */ stw r3, 0x28(r1)
/* 8005D334 0005A294 48 00 00 08 */ b lbl_8005D33C
lbl_8005D338:
/* 8005D338 0005A298 38 84 00 02 */ addi r4, r4, 2
lbl_8005D33C:
/* 8005D33C 0005A29C 7C 04 00 40 */ cmplw r4, r0
/* 8005D340 0005A2A0 40 82 FF F8 */ bne lbl_8005D338
/* 8005D344 0005A2A4 28 03 00 00 */ cmplwi r3, 0
/* 8005D348 0005A2A8 41 82 00 08 */ beq lbl_8005D350
/* 8005D34C 0005A2AC 48 2B 85 E5 */ bl Free__7CMemoryFPCv
lbl_8005D350:
/* 8005D350 0005A2B0 80 1F 00 08 */ lwz r0, 8(r31)
/* 8005D354 0005A2B4 7F 84 E3 78 */ mr r4, r28
/* 8005D358 0005A2B8 38 61 00 10 */ addi r3, r1, 0x10
/* 8005D35C 0005A2BC 38 A1 00 5C */ addi r5, r1, 0x5c
/* 8005D360 0005A2C0 90 01 00 5C */ stw r0, 0x5c(r1)
/* 8005D364 0005A2C4 4B FE AB B9 */ bl GetIdForScript__13CStateManagerCF9TEditorId
/* 8005D368 0005A2C8 A0 01 00 10 */ lhz r0, 0x10(r1)
/* 8005D36C 0005A2CC 7F 83 E3 78 */ mr r3, r28
/* 8005D370 0005A2D0 38 81 00 14 */ addi r4, r1, 0x14
/* 8005D374 0005A2D4 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8005D378 0005A2D8 4B FE F1 FD */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8005D37C 0005A2DC 7C 64 1B 78 */ mr r4, r3
/* 8005D380 0005A2E0 38 61 00 80 */ addi r3, r1, 0x80
/* 8005D384 0005A2E4 48 04 DA 21 */ bl "__ct__35TCastToPtr<21CScriptCameraWaypoint>FP7CEntity"
/* 8005D388 0005A2E8 83 E3 00 04 */ lwz r31, 4(r3)
/* 8005D38C 0005A2EC 48 00 01 08 */ b lbl_8005D494
lbl_8005D390:
/* 8005D390 0005A2F0 80 1B 00 18 */ lwz r0, 0x18(r27)
/* 8005D394 0005A2F4 80 7B 00 20 */ lwz r3, 0x20(r27)
/* 8005D398 0005A2F8 54 00 08 3C */ slwi r0, r0, 1
/* 8005D39C 0005A2FC A0 BF 00 08 */ lhz r5, 8(r31)
/* 8005D3A0 0005A300 7C 83 02 14 */ add r4, r3, r0
/* 8005D3A4 0005A304 90 61 00 54 */ stw r3, 0x54(r1)
/* 8005D3A8 0005A308 90 81 00 48 */ stw r4, 0x48(r1)
/* 8005D3AC 0005A30C 90 61 00 58 */ stw r3, 0x58(r1)
/* 8005D3B0 0005A310 90 81 00 4C */ stw r4, 0x4c(r1)
/* 8005D3B4 0005A314 90 81 00 50 */ stw r4, 0x50(r1)
/* 8005D3B8 0005A318 48 00 00 10 */ b lbl_8005D3C8
lbl_8005D3BC:
/* 8005D3BC 0005A31C 80 61 00 58 */ lwz r3, 0x58(r1)
/* 8005D3C0 0005A320 38 03 00 02 */ addi r0, r3, 2
/* 8005D3C4 0005A324 90 01 00 58 */ stw r0, 0x58(r1)
lbl_8005D3C8:
/* 8005D3C8 0005A328 80 61 00 58 */ lwz r3, 0x58(r1)
/* 8005D3CC 0005A32C 7C 03 20 40 */ cmplw r3, r4
/* 8005D3D0 0005A330 41 82 00 10 */ beq lbl_8005D3E0
/* 8005D3D4 0005A334 A0 03 00 00 */ lhz r0, 0(r3)
/* 8005D3D8 0005A338 7C 00 28 40 */ cmplw r0, r5
/* 8005D3DC 0005A33C 40 82 FF E0 */ bne lbl_8005D3BC
lbl_8005D3E0:
/* 8005D3E0 0005A340 80 61 00 58 */ lwz r3, 0x58(r1)
/* 8005D3E4 0005A344 80 01 00 48 */ lwz r0, 0x48(r1)
/* 8005D3E8 0005A348 7C 03 00 40 */ cmplw r3, r0
/* 8005D3EC 0005A34C 40 82 00 B0 */ bne lbl_8005D49C
/* 8005D3F0 0005A350 C0 5F 00 58 */ lfs f2, 0x58(r31)
/* 8005D3F4 0005A354 7F 63 DB 78 */ mr r3, r27
/* 8005D3F8 0005A358 C0 3F 00 48 */ lfs f1, 0x48(r31)
/* 8005D3FC 0005A35C 38 81 00 BC */ addi r4, r1, 0xbc
/* 8005D400 0005A360 C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 8005D404 0005A364 38 A1 00 A4 */ addi r5, r1, 0xa4
/* 8005D408 0005A368 D0 21 00 9C */ stfs f1, 0x9c(r1)
/* 8005D40C 0005A36C D0 01 00 98 */ stfs f0, 0x98(r1)
/* 8005D410 0005A370 80 C1 00 9C */ lwz r6, 0x9c(r1)
/* 8005D414 0005A374 D0 41 00 A0 */ stfs f2, 0xa0(r1)
/* 8005D418 0005A378 80 E1 00 98 */ lwz r7, 0x98(r1)
/* 8005D41C 0005A37C 80 01 00 A0 */ lwz r0, 0xa0(r1)
/* 8005D420 0005A380 90 E1 00 A4 */ stw r7, 0xa4(r1)
/* 8005D424 0005A384 90 C1 00 A8 */ stw r6, 0xa8(r1)
/* 8005D428 0005A388 90 01 00 AC */ stw r0, 0xac(r1)
/* 8005D42C 0005A38C C0 5F 00 60 */ lfs f2, 0x60(r31)
/* 8005D430 0005A390 C0 3F 00 50 */ lfs f1, 0x50(r31)
/* 8005D434 0005A394 C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8005D438 0005A398 D0 21 00 B4 */ stfs f1, 0xb4(r1)
/* 8005D43C 0005A39C D0 01 00 B0 */ stfs f0, 0xb0(r1)
/* 8005D440 0005A3A0 80 C1 00 B4 */ lwz r6, 0xb4(r1)
/* 8005D444 0005A3A4 D0 41 00 B8 */ stfs f2, 0xb8(r1)
/* 8005D448 0005A3A8 80 E1 00 B0 */ lwz r7, 0xb0(r1)
/* 8005D44C 0005A3AC 80 01 00 B8 */ lwz r0, 0xb8(r1)
/* 8005D450 0005A3B0 90 E1 00 BC */ stw r7, 0xbc(r1)
/* 8005D454 0005A3B4 90 C1 00 C0 */ stw r6, 0xc0(r1)
/* 8005D458 0005A3B8 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 8005D45C 0005A3BC 4B FF FA F5 */ bl AddKnot__13CCameraSplineFRC9CVector3fRC9CVector3f
/* 8005D460 0005A3C0 7F E4 FB 78 */ mr r4, r31
/* 8005D464 0005A3C4 7F 85 E3 78 */ mr r5, r28
/* 8005D468 0005A3C8 38 61 00 08 */ addi r3, r1, 8
/* 8005D46C 0005A3CC 48 05 7D 9D */ bl GetRandomNextWaypointId__21CScriptCameraWaypointCFRC13CStateManager
/* 8005D470 0005A3D0 A0 01 00 08 */ lhz r0, 8(r1)
/* 8005D474 0005A3D4 7F 83 E3 78 */ mr r3, r28
/* 8005D478 0005A3D8 38 81 00 0C */ addi r4, r1, 0xc
/* 8005D47C 0005A3DC B0 01 00 0C */ sth r0, 0xc(r1)
/* 8005D480 0005A3E0 4B FE F0 F5 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8005D484 0005A3E4 7C 64 1B 78 */ mr r4, r3
/* 8005D488 0005A3E8 38 61 00 78 */ addi r3, r1, 0x78
/* 8005D48C 0005A3EC 48 04 D9 19 */ bl "__ct__35TCastToPtr<21CScriptCameraWaypoint>FP7CEntity"
/* 8005D490 0005A3F0 83 E3 00 04 */ lwz r31, 4(r3)
lbl_8005D494:
/* 8005D494 0005A3F4 28 1F 00 00 */ cmplwi r31, 0
/* 8005D498 0005A3F8 40 82 FE F8 */ bne lbl_8005D390
lbl_8005D49C:
/* 8005D49C 0005A3FC BB 41 00 D8 */ lmw r26, 0xd8(r1)
/* 8005D4A0 0005A400 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 8005D4A4 0005A404 7C 08 03 A6 */ mtlr r0
/* 8005D4A8 0005A408 38 21 00 F0 */ addi r1, r1, 0xf0
/* 8005D4AC 0005A40C 4E 80 00 20 */ blr
.global sub_8005d4b0
sub_8005d4b0:
/* 8005D4B0 0005A410 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8005D4B4 0005A414 7C 08 02 A6 */ mflr r0
/* 8005D4B8 0005A418 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005D4BC 0005A41C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8005D4C0 0005A420 7C 7F 1B 78 */ mr r31, r3
/* 8005D4C4 0005A424 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8005D4C8 0005A428 7C 9E 23 78 */ mr r30, r4
/* 8005D4CC 0005A42C 7C 1F F0 40 */ cmplw r31, r30
/* 8005D4D0 0005A430 40 82 00 08 */ bne lbl_8005D4D8
/* 8005D4D4 0005A434 48 00 00 B8 */ b lbl_8005D58C
lbl_8005D4D8:
/* 8005D4D8 0005A438 80 1F 00 04 */ lwz r0, 4(r31)
/* 8005D4DC 0005A43C 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8005D4E0 0005A440 54 00 08 3C */ slwi r0, r0, 1
/* 8005D4E4 0005A444 7C 03 02 14 */ add r0, r3, r0
/* 8005D4E8 0005A448 90 61 00 0C */ stw r3, 0xc(r1)
/* 8005D4EC 0005A44C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005D4F0 0005A450 90 01 00 10 */ stw r0, 0x10(r1)
/* 8005D4F4 0005A454 90 61 00 08 */ stw r3, 8(r1)
/* 8005D4F8 0005A458 48 00 00 08 */ b lbl_8005D500
lbl_8005D4FC:
/* 8005D4FC 0005A45C 38 63 00 02 */ addi r3, r3, 2
lbl_8005D500:
/* 8005D500 0005A460 7C 03 00 40 */ cmplw r3, r0
/* 8005D504 0005A464 40 82 FF F8 */ bne lbl_8005D4FC
/* 8005D508 0005A468 38 00 00 00 */ li r0, 0
/* 8005D50C 0005A46C 90 1F 00 04 */ stw r0, 4(r31)
/* 8005D510 0005A470 80 9E 00 04 */ lwz r4, 4(r30)
/* 8005D514 0005A474 2C 04 00 00 */ cmpwi r4, 0
/* 8005D518 0005A478 40 82 00 28 */ bne lbl_8005D540
/* 8005D51C 0005A47C 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8005D520 0005A480 28 03 00 00 */ cmplwi r3, 0
/* 8005D524 0005A484 41 82 00 08 */ beq lbl_8005D52C
/* 8005D528 0005A488 48 2B 84 09 */ bl Free__7CMemoryFPCv
lbl_8005D52C:
/* 8005D52C 0005A48C 38 00 00 00 */ li r0, 0
/* 8005D530 0005A490 90 1F 00 04 */ stw r0, 4(r31)
/* 8005D534 0005A494 90 1F 00 08 */ stw r0, 8(r31)
/* 8005D538 0005A498 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8005D53C 0005A49C 48 00 00 4C */ b lbl_8005D588
lbl_8005D540:
/* 8005D540 0005A4A0 7F E3 FB 78 */ mr r3, r31
/* 8005D544 0005A4A4 4B FA EE C5 */ bl "reserve__Q24rstl45vector<9TUniqueId,Q24rstl17rmemory_allocator>Fi"
/* 8005D548 0005A4A8 80 1E 00 04 */ lwz r0, 4(r30)
/* 8005D54C 0005A4AC 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 8005D550 0005A4B0 54 00 08 3C */ slwi r0, r0, 1
/* 8005D554 0005A4B4 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8005D558 0005A4B8 7C 85 02 14 */ add r4, r5, r0
/* 8005D55C 0005A4BC 48 00 00 1C */ b lbl_8005D578
lbl_8005D560:
/* 8005D560 0005A4C0 28 03 00 00 */ cmplwi r3, 0
/* 8005D564 0005A4C4 41 82 00 0C */ beq lbl_8005D570
/* 8005D568 0005A4C8 A0 05 00 00 */ lhz r0, 0(r5)
/* 8005D56C 0005A4CC B0 03 00 00 */ sth r0, 0(r3)
lbl_8005D570:
/* 8005D570 0005A4D0 38 63 00 02 */ addi r3, r3, 2
/* 8005D574 0005A4D4 38 A5 00 02 */ addi r5, r5, 2
lbl_8005D578:
/* 8005D578 0005A4D8 7C 05 20 40 */ cmplw r5, r4
/* 8005D57C 0005A4DC 40 82 FF E4 */ bne lbl_8005D560
/* 8005D580 0005A4E0 80 1E 00 04 */ lwz r0, 4(r30)
/* 8005D584 0005A4E4 90 1F 00 04 */ stw r0, 4(r31)
lbl_8005D588:
/* 8005D588 0005A4E8 7F E3 FB 78 */ mr r3, r31
lbl_8005D58C:
/* 8005D58C 0005A4EC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005D590 0005A4F0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8005D594 0005A4F4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8005D598 0005A4F8 7C 08 03 A6 */ mtlr r0
/* 8005D59C 0005A4FC 38 21 00 20 */ addi r1, r1, 0x20
/* 8005D5A0 0005A500 4E 80 00 20 */ blr
.global "Initialise__13CCameraSplineFRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>R13CStateManager"
"Initialise__13CCameraSplineFRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>R13CStateManager":
/* 8005D5A4 0005A504 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8005D5A8 0005A508 7C 08 02 A6 */ mflr r0
/* 8005D5AC 0005A50C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005D5B0 0005A510 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8005D5B4 0005A514 7C 7F 1B 78 */ mr r31, r3
/* 8005D5B8 0005A518 A0 04 00 00 */ lhz r0, 0(r4)
/* 8005D5BC 0005A51C 38 81 00 08 */ addi r4, r1, 8
/* 8005D5C0 0005A520 B0 01 00 08 */ sth r0, 8(r1)
/* 8005D5C4 0005A524 4B FF FB 39 */ bl "CalculateKnots__13CCameraSplineFRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>R13CStateManager"
/* 8005D5C8 0005A528 7F E3 FB 78 */ mr r3, r31
/* 8005D5CC 0005A52C 4B FF EC F1 */ bl CalculateSplineLength__13CCameraSplineFv
/* 8005D5D0 0005A530 D0 3F 00 44 */ stfs f1, 0x44(r31)
/* 8005D5D4 0005A534 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8005D5D8 0005A538 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8005D5DC 0005A53C 7C 08 03 A6 */ mtlr r0
/* 8005D5E0 0005A540 38 21 00 20 */ addi r1, r1, 0x20
/* 8005D5E4 0005A544 4E 80 00 20 */ blr
.global __dt__13CCameraSplineFv
__dt__13CCameraSplineFv:
/* 8005D5E8 0005A548 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8005D5EC 0005A54C 7C 08 02 A6 */ mflr r0
/* 8005D5F0 0005A550 90 01 00 54 */ stw r0, 0x54(r1)
/* 8005D5F4 0005A554 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8005D5F8 0005A558 7C 9F 23 78 */ mr r31, r4
/* 8005D5FC 0005A55C 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8005D600 0005A560 7C 7E 1B 79 */ or. r30, r3, r3
/* 8005D604 0005A564 41 82 01 40 */ beq lbl_8005D744
/* 8005D608 0005A568 3C 60 80 3E */ lis r3, lbl_803DA188@ha
/* 8005D60C 0005A56C 34 1E 00 34 */ addic. r0, r30, 0x34
/* 8005D610 0005A570 38 03 A1 88 */ addi r0, r3, lbl_803DA188@l
/* 8005D614 0005A574 90 1E 00 00 */ stw r0, 0(r30)
/* 8005D618 0005A578 41 82 00 44 */ beq lbl_8005D65C
/* 8005D61C 0005A57C 80 1E 00 38 */ lwz r0, 0x38(r30)
/* 8005D620 0005A580 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 8005D624 0005A584 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005D628 0005A588 90 61 00 3C */ stw r3, 0x3c(r1)
/* 8005D62C 0005A58C 7C 64 1B 78 */ mr r4, r3
/* 8005D630 0005A590 7C 03 02 14 */ add r0, r3, r0
/* 8005D634 0005A594 90 61 00 38 */ stw r3, 0x38(r1)
/* 8005D638 0005A598 90 01 00 44 */ stw r0, 0x44(r1)
/* 8005D63C 0005A59C 90 01 00 40 */ stw r0, 0x40(r1)
/* 8005D640 0005A5A0 48 00 00 08 */ b lbl_8005D648
lbl_8005D644:
/* 8005D644 0005A5A4 38 84 00 0C */ addi r4, r4, 0xc
lbl_8005D648:
/* 8005D648 0005A5A8 7C 04 00 40 */ cmplw r4, r0
/* 8005D64C 0005A5AC 40 82 FF F8 */ bne lbl_8005D644
/* 8005D650 0005A5B0 28 03 00 00 */ cmplwi r3, 0
/* 8005D654 0005A5B4 41 82 00 08 */ beq lbl_8005D65C
/* 8005D658 0005A5B8 48 2B 82 D9 */ bl Free__7CMemoryFPCv
lbl_8005D65C:
/* 8005D65C 0005A5BC 34 1E 00 24 */ addic. r0, r30, 0x24
/* 8005D660 0005A5C0 41 82 00 44 */ beq lbl_8005D6A4
/* 8005D664 0005A5C4 80 1E 00 28 */ lwz r0, 0x28(r30)
/* 8005D668 0005A5C8 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 8005D66C 0005A5CC 54 00 10 3A */ slwi r0, r0, 2
/* 8005D670 0005A5D0 7C 03 02 14 */ add r0, r3, r0
/* 8005D674 0005A5D4 90 61 00 2C */ stw r3, 0x2c(r1)
/* 8005D678 0005A5D8 7C 64 1B 78 */ mr r4, r3
/* 8005D67C 0005A5DC 90 01 00 34 */ stw r0, 0x34(r1)
/* 8005D680 0005A5E0 90 01 00 30 */ stw r0, 0x30(r1)
/* 8005D684 0005A5E4 90 61 00 28 */ stw r3, 0x28(r1)
/* 8005D688 0005A5E8 48 00 00 08 */ b lbl_8005D690
lbl_8005D68C:
/* 8005D68C 0005A5EC 38 84 00 04 */ addi r4, r4, 4
lbl_8005D690:
/* 8005D690 0005A5F0 7C 04 00 40 */ cmplw r4, r0
/* 8005D694 0005A5F4 40 82 FF F8 */ bne lbl_8005D68C
/* 8005D698 0005A5F8 28 03 00 00 */ cmplwi r3, 0
/* 8005D69C 0005A5FC 41 82 00 08 */ beq lbl_8005D6A4
/* 8005D6A0 0005A600 48 2B 82 91 */ bl Free__7CMemoryFPCv
lbl_8005D6A4:
/* 8005D6A4 0005A604 34 1E 00 14 */ addic. r0, r30, 0x14
/* 8005D6A8 0005A608 41 82 00 44 */ beq lbl_8005D6EC
/* 8005D6AC 0005A60C 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 8005D6B0 0005A610 80 7E 00 20 */ lwz r3, 0x20(r30)
/* 8005D6B4 0005A614 54 00 08 3C */ slwi r0, r0, 1
/* 8005D6B8 0005A618 7C 03 02 14 */ add r0, r3, r0
/* 8005D6BC 0005A61C 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8005D6C0 0005A620 7C 64 1B 78 */ mr r4, r3
/* 8005D6C4 0005A624 90 01 00 24 */ stw r0, 0x24(r1)
/* 8005D6C8 0005A628 90 01 00 20 */ stw r0, 0x20(r1)
/* 8005D6CC 0005A62C 90 61 00 18 */ stw r3, 0x18(r1)
/* 8005D6D0 0005A630 48 00 00 08 */ b lbl_8005D6D8
lbl_8005D6D4:
/* 8005D6D4 0005A634 38 84 00 02 */ addi r4, r4, 2
lbl_8005D6D8:
/* 8005D6D8 0005A638 7C 04 00 40 */ cmplw r4, r0
/* 8005D6DC 0005A63C 40 82 FF F8 */ bne lbl_8005D6D4
/* 8005D6E0 0005A640 28 03 00 00 */ cmplwi r3, 0
/* 8005D6E4 0005A644 41 82 00 08 */ beq lbl_8005D6EC
/* 8005D6E8 0005A648 48 2B 82 49 */ bl Free__7CMemoryFPCv
lbl_8005D6EC:
/* 8005D6EC 0005A64C 34 1E 00 04 */ addic. r0, r30, 4
/* 8005D6F0 0005A650 41 82 00 44 */ beq lbl_8005D734
/* 8005D6F4 0005A654 80 1E 00 08 */ lwz r0, 8(r30)
/* 8005D6F8 0005A658 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 8005D6FC 0005A65C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8005D700 0005A660 90 61 00 0C */ stw r3, 0xc(r1)
/* 8005D704 0005A664 7C 64 1B 78 */ mr r4, r3
/* 8005D708 0005A668 7C 03 02 14 */ add r0, r3, r0
/* 8005D70C 0005A66C 90 61 00 08 */ stw r3, 8(r1)
/* 8005D710 0005A670 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005D714 0005A674 90 01 00 10 */ stw r0, 0x10(r1)
/* 8005D718 0005A678 48 00 00 08 */ b lbl_8005D720
lbl_8005D71C:
/* 8005D71C 0005A67C 38 84 00 0C */ addi r4, r4, 0xc
lbl_8005D720:
/* 8005D720 0005A680 7C 04 00 40 */ cmplw r4, r0
/* 8005D724 0005A684 40 82 FF F8 */ bne lbl_8005D71C
/* 8005D728 0005A688 28 03 00 00 */ cmplwi r3, 0
/* 8005D72C 0005A68C 41 82 00 08 */ beq lbl_8005D734
/* 8005D730 0005A690 48 2B 82 01 */ bl Free__7CMemoryFPCv
lbl_8005D734:
/* 8005D734 0005A694 7F E0 07 35 */ extsh. r0, r31
/* 8005D738 0005A698 40 81 00 0C */ ble lbl_8005D744
/* 8005D73C 0005A69C 7F C3 F3 78 */ mr r3, r30
/* 8005D740 0005A6A0 48 2B 81 F1 */ bl Free__7CMemoryFPCv
lbl_8005D744:
/* 8005D744 0005A6A4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8005D748 0005A6A8 7F C3 F3 78 */ mr r3, r30
/* 8005D74C 0005A6AC 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8005D750 0005A6B0 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 8005D754 0005A6B4 7C 08 03 A6 */ mtlr r0
/* 8005D758 0005A6B8 38 21 00 50 */ addi r1, r1, 0x50
/* 8005D75C 0005A6BC 4E 80 00 20 */ blr
.global __ct__13CCameraSplineFb
__ct__13CCameraSplineFb:
/* 8005D760 0005A6C0 3C A0 80 3E */ lis r5, lbl_803DA188@ha
/* 8005D764 0005A6C4 38 00 00 00 */ li r0, 0
/* 8005D768 0005A6C8 38 A5 A1 88 */ addi r5, r5, lbl_803DA188@l
/* 8005D76C 0005A6CC C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005D770 0005A6D0 90 A3 00 00 */ stw r5, 0(r3)
/* 8005D774 0005A6D4 90 03 00 08 */ stw r0, 8(r3)
/* 8005D778 0005A6D8 90 03 00 0C */ stw r0, 0xc(r3)
/* 8005D77C 0005A6DC 90 03 00 10 */ stw r0, 0x10(r3)
/* 8005D780 0005A6E0 90 03 00 18 */ stw r0, 0x18(r3)
/* 8005D784 0005A6E4 90 03 00 1C */ stw r0, 0x1c(r3)
/* 8005D788 0005A6E8 90 03 00 20 */ stw r0, 0x20(r3)
/* 8005D78C 0005A6EC 90 03 00 28 */ stw r0, 0x28(r3)
/* 8005D790 0005A6F0 90 03 00 2C */ stw r0, 0x2c(r3)
/* 8005D794 0005A6F4 90 03 00 30 */ stw r0, 0x30(r3)
/* 8005D798 0005A6F8 90 03 00 38 */ stw r0, 0x38(r3)
/* 8005D79C 0005A6FC 90 03 00 3C */ stw r0, 0x3c(r3)
/* 8005D7A0 0005A700 90 03 00 40 */ stw r0, 0x40(r3)
/* 8005D7A4 0005A704 D0 03 00 44 */ stfs f0, 0x44(r3)
/* 8005D7A8 0005A708 98 83 00 48 */ stb r4, 0x48(r3)
/* 8005D7AC 0005A70C 4E 80 00 20 */ blr
.global Reset__13CCameraSpringFv
Reset__13CCameraSpringFv:
/* 8005D7B0 0005A710 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005D7B4 0005A714 7C 08 02 A6 */ mflr r0
/* 8005D7B8 0005A718 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005D7BC 0005A71C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8005D7C0 0005A720 7C 7F 1B 78 */ mr r31, r3
/* 8005D7C4 0005A724 C0 23 00 00 */ lfs f1, 0(r3)
/* 8005D7C8 0005A728 48 2B 7D 39 */ bl SqrtF__5CMathFf
/* 8005D7CC 0005A72C C0 42 86 FC */ lfs f2, lbl_805AA41C@sda21(r2)
/* 8005D7D0 0005A730 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005D7D4 0005A734 EC 22 00 72 */ fmuls f1, f2, f1
/* 8005D7D8 0005A738 D0 3F 00 04 */ stfs f1, 4(r31)
/* 8005D7DC 0005A73C D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8005D7E0 0005A740 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8005D7E4 0005A744 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005D7E8 0005A748 7C 08 03 A6 */ mtlr r0
/* 8005D7EC 0005A74C 38 21 00 10 */ addi r1, r1, 0x10
/* 8005D7F0 0005A750 4E 80 00 20 */ blr
.global ApplyDistanceSpringNoMax__13CCameraSpringFfff
ApplyDistanceSpringNoMax__13CCameraSpringFfff:
/* 8005D7F4 0005A754 C0 E3 00 10 */ lfs f7, 0x10(r3)
/* 8005D7F8 0005A758 EC 81 10 28 */ fsubs f4, f1, f2
/* 8005D7FC 0005A75C C0 03 00 04 */ lfs f0, 4(r3)
/* 8005D800 0005A760 C0 A3 00 00 */ lfs f5, 0(r3)
/* 8005D804 0005A764 EC C7 00 F2 */ fmuls f6, f7, f3
/* 8005D808 0005A768 EC 00 01 F2 */ fmuls f0, f0, f7
/* 8005D80C 0005A76C C1 03 00 0C */ lfs f8, 0xc(r3)
/* 8005D810 0005A770 EC 48 11 BA */ fmadds f2, f8, f6, f2
/* 8005D814 0005A774 EC 05 01 38 */ fmsubs f0, f5, f4, f0
/* 8005D818 0005A778 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 8005D81C 0005A77C EC 00 00 F2 */ fmuls f0, f0, f3
/* 8005D820 0005A780 EC 08 38 3A */ fmadds f0, f8, f0, f7
/* 8005D824 0005A784 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8005D828 0005A788 40 80 00 08 */ bge lbl_8005D830
/* 8005D82C 0005A78C FC 40 08 90 */ fmr f2, f1
lbl_8005D830:
/* 8005D830 0005A790 FC 20 10 90 */ fmr f1, f2
/* 8005D834 0005A794 4E 80 00 20 */ blr
.global ApplyDistanceSpring__13CCameraSpringFfff
ApplyDistanceSpring__13CCameraSpringFfff:
/* 8005D838 0005A798 C0 E3 00 10 */ lfs f7, 0x10(r3)
/* 8005D83C 0005A79C EC 81 10 28 */ fsubs f4, f1, f2
/* 8005D840 0005A7A0 C0 03 00 04 */ lfs f0, 4(r3)
/* 8005D844 0005A7A4 C0 A3 00 00 */ lfs f5, 0(r3)
/* 8005D848 0005A7A8 EC C7 00 F2 */ fmuls f6, f7, f3
/* 8005D84C 0005A7AC EC 00 01 F2 */ fmuls f0, f0, f7
/* 8005D850 0005A7B0 C1 03 00 0C */ lfs f8, 0xc(r3)
/* 8005D854 0005A7B4 EC C8 11 BA */ fmadds f6, f8, f6, f2
/* 8005D858 0005A7B8 EC 05 01 38 */ fmsubs f0, f5, f4, f0
/* 8005D85C 0005A7BC FC 06 08 40 */ fcmpo cr0, f6, f1
/* 8005D860 0005A7C0 EC 00 00 F2 */ fmuls f0, f0, f3
/* 8005D864 0005A7C4 EC 08 38 3A */ fmadds f0, f8, f0, f7
/* 8005D868 0005A7C8 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8005D86C 0005A7CC 40 80 00 08 */ bge lbl_8005D874
/* 8005D870 0005A7D0 FC C0 08 90 */ fmr f6, f1
lbl_8005D874:
/* 8005D874 0005A7D4 EC 06 08 28 */ fsubs f0, f6, f1
/* 8005D878 0005A7D8 C0 43 00 08 */ lfs f2, 8(r3)
/* 8005D87C 0005A7DC FC 00 10 40 */ fcmpo cr0, f0, f2
/* 8005D880 0005A7E0 40 81 00 08 */ ble lbl_8005D888
/* 8005D884 0005A7E4 EC C1 10 2A */ fadds f6, f1, f2
lbl_8005D888:
/* 8005D888 0005A7E8 FC 20 30 90 */ fmr f1, f6
/* 8005D88C 0005A7EC 4E 80 00 20 */ blr
.global ConvertToScreenSpace__11CGameCameraCFRC9CVector3f
ConvertToScreenSpace__11CGameCameraCFRC9CVector3f:
/* 8005D890 0005A7F0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8005D894 0005A7F4 7C 08 02 A6 */ mflr r0
/* 8005D898 0005A7F8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8005D89C 0005A7FC 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8005D8A0 0005A800 7C 9F 23 78 */ mr r31, r4
/* 8005D8A4 0005A804 38 9F 00 34 */ addi r4, r31, 0x34
/* 8005D8A8 0005A808 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8005D8AC 0005A80C 7C 7E 1B 78 */ mr r30, r3
/* 8005D8B0 0005A810 38 61 00 14 */ addi r3, r1, 0x14
/* 8005D8B4 0005A814 C0 25 00 08 */ lfs f1, 8(r5)
/* 8005D8B8 0005A818 C0 1F 00 60 */ lfs f0, 0x60(r31)
/* 8005D8BC 0005A81C C0 65 00 04 */ lfs f3, 4(r5)
/* 8005D8C0 0005A820 EC 81 00 28 */ fsubs f4, f1, f0
/* 8005D8C4 0005A824 C0 5F 00 50 */ lfs f2, 0x50(r31)
/* 8005D8C8 0005A828 C0 25 00 00 */ lfs f1, 0(r5)
/* 8005D8CC 0005A82C 38 A1 00 08 */ addi r5, r1, 8
/* 8005D8D0 0005A830 C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8005D8D4 0005A834 EC 43 10 28 */ fsubs f2, f3, f2
/* 8005D8D8 0005A838 EC 01 00 28 */ fsubs f0, f1, f0
/* 8005D8DC 0005A83C D0 81 00 10 */ stfs f4, 0x10(r1)
/* 8005D8E0 0005A840 D0 41 00 0C */ stfs f2, 0xc(r1)
/* 8005D8E4 0005A844 D0 01 00 08 */ stfs f0, 8(r1)
/* 8005D8E8 0005A848 48 2B 51 3D */ bl TransposeRotate__12CTransform4fCFRC9CVector3f
/* 8005D8EC 0005A84C C0 61 00 14 */ lfs f3, 0x14(r1)
/* 8005D8F0 0005A850 38 00 00 00 */ li r0, 0
/* 8005D8F4 0005A854 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005D8F8 0005A858 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8005D8FC 0005A85C C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8005D900 0005A860 FC 00 18 00 */ fcmpu cr0, f0, f3
/* 8005D904 0005A864 D0 61 00 20 */ stfs f3, 0x20(r1)
/* 8005D908 0005A868 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 8005D90C 0005A86C D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8005D910 0005A870 40 82 00 14 */ bne lbl_8005D924
/* 8005D914 0005A874 FC 00 10 00 */ fcmpu cr0, f0, f2
/* 8005D918 0005A878 40 82 00 0C */ bne lbl_8005D924
/* 8005D91C 0005A87C FC 00 08 00 */ fcmpu cr0, f0, f1
/* 8005D920 0005A880 41 82 00 08 */ beq lbl_8005D928
lbl_8005D924:
/* 8005D924 0005A884 38 00 00 01 */ li r0, 1
lbl_8005D928:
/* 8005D928 0005A888 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 8005D92C 0005A88C 41 82 00 20 */ beq lbl_8005D94C
/* 8005D930 0005A890 7F E3 FB 78 */ mr r3, r31
/* 8005D934 0005A894 48 00 00 45 */ bl GetPerspectiveMatrix__11CGameCameraCFv
/* 8005D938 0005A898 7C 64 1B 78 */ mr r4, r3
/* 8005D93C 0005A89C 7F C3 F3 78 */ mr r3, r30
/* 8005D940 0005A8A0 38 A1 00 20 */ addi r5, r1, 0x20
/* 8005D944 0005A8A4 48 2B 2E 0D */ bl MultiplyOneOverW__9CMatrix4fCFRC9CVector3f
/* 8005D948 0005A8A8 48 00 00 18 */ b lbl_8005D960
lbl_8005D94C:
/* 8005D94C 0005A8AC C0 22 86 D0 */ lfs f1, lbl_805AA3F0@sda21(r2)
/* 8005D950 0005A8B0 C0 02 86 BC */ lfs f0, lbl_805AA3DC@sda21(r2)
/* 8005D954 0005A8B4 D0 3E 00 00 */ stfs f1, 0(r30)
/* 8005D958 0005A8B8 D0 3E 00 04 */ stfs f1, 4(r30)
/* 8005D95C 0005A8BC D0 1E 00 08 */ stfs f0, 8(r30)
lbl_8005D960:
/* 8005D960 0005A8C0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8005D964 0005A8C4 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8005D968 0005A8C8 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8005D96C 0005A8CC 7C 08 03 A6 */ mtlr r0
/* 8005D970 0005A8D0 38 21 00 40 */ addi r1, r1, 0x40
/* 8005D974 0005A8D4 4E 80 00 20 */ blr
.global GetPerspectiveMatrix__11CGameCameraCFv
GetPerspectiveMatrix__11CGameCameraCFv:
/* 8005D978 0005A8D8 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8005D97C 0005A8DC 7C 08 02 A6 */ mflr r0
/* 8005D980 0005A8E0 90 01 00 54 */ stw r0, 0x54(r1)
/* 8005D984 0005A8E4 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8005D988 0005A8E8 7C 7F 1B 78 */ mr r31, r3
/* 8005D98C 0005A8EC 88 03 01 70 */ lbz r0, 0x170(r3)
/* 8005D990 0005A8F0 54 00 CF FE */ rlwinm r0, r0, 0x19, 0x1f, 0x1f
/* 8005D994 0005A8F4 28 00 00 01 */ cmplwi r0, 1
/* 8005D998 0005A8F8 40 82 00 AC */ bne lbl_8005DA44
/* 8005D99C 0005A8FC C0 3F 01 5C */ lfs f1, 0x15c(r31)
/* 8005D9A0 0005A900 38 61 00 08 */ addi r3, r1, 8
/* 8005D9A4 0005A904 C0 5F 01 68 */ lfs f2, 0x168(r31)
/* 8005D9A8 0005A908 C0 7F 01 60 */ lfs f3, 0x160(r31)
/* 8005D9AC 0005A90C C0 9F 01 64 */ lfs f4, 0x164(r31)
/* 8005D9B0 0005A910 48 2A E7 D9 */ bl CalculatePerspectiveMatrix__9CGraphicsFffff
/* 8005D9B4 0005A914 C0 21 00 08 */ lfs f1, 8(r1)
/* 8005D9B8 0005A918 38 60 00 00 */ li r3, 0
/* 8005D9BC 0005A91C C0 01 00 0C */ lfs f0, 0xc(r1)
/* 8005D9C0 0005A920 D0 3F 00 EC */ stfs f1, 0xec(r31)
/* 8005D9C4 0005A924 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8005D9C8 0005A928 D0 1F 00 F0 */ stfs f0, 0xf0(r31)
/* 8005D9CC 0005A92C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8005D9D0 0005A930 D0 3F 00 F4 */ stfs f1, 0xf4(r31)
/* 8005D9D4 0005A934 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8005D9D8 0005A938 D0 1F 00 F8 */ stfs f0, 0xf8(r31)
/* 8005D9DC 0005A93C C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8005D9E0 0005A940 D0 3F 00 FC */ stfs f1, 0xfc(r31)
/* 8005D9E4 0005A944 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8005D9E8 0005A948 D0 1F 01 00 */ stfs f0, 0x100(r31)
/* 8005D9EC 0005A94C C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8005D9F0 0005A950 D0 3F 01 04 */ stfs f1, 0x104(r31)
/* 8005D9F4 0005A954 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8005D9F8 0005A958 D0 1F 01 08 */ stfs f0, 0x108(r31)
/* 8005D9FC 0005A95C C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8005DA00 0005A960 D0 3F 01 0C */ stfs f1, 0x10c(r31)
/* 8005DA04 0005A964 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8005DA08 0005A968 D0 1F 01 10 */ stfs f0, 0x110(r31)
/* 8005DA0C 0005A96C C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8005DA10 0005A970 D0 3F 01 14 */ stfs f1, 0x114(r31)
/* 8005DA14 0005A974 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8005DA18 0005A978 D0 1F 01 18 */ stfs f0, 0x118(r31)
/* 8005DA1C 0005A97C C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8005DA20 0005A980 D0 3F 01 1C */ stfs f1, 0x11c(r31)
/* 8005DA24 0005A984 C0 21 00 40 */ lfs f1, 0x40(r1)
/* 8005DA28 0005A988 D0 1F 01 20 */ stfs f0, 0x120(r31)
/* 8005DA2C 0005A98C C0 01 00 44 */ lfs f0, 0x44(r1)
/* 8005DA30 0005A990 D0 3F 01 24 */ stfs f1, 0x124(r31)
/* 8005DA34 0005A994 D0 1F 01 28 */ stfs f0, 0x128(r31)
/* 8005DA38 0005A998 88 1F 01 70 */ lbz r0, 0x170(r31)
/* 8005DA3C 0005A99C 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8005DA40 0005A9A0 98 1F 01 70 */ stb r0, 0x170(r31)
lbl_8005DA44:
/* 8005DA44 0005A9A4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8005DA48 0005A9A8 38 7F 00 EC */ addi r3, r31, 0xec
/* 8005DA4C 0005A9AC 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8005DA50 0005A9B0 7C 08 03 A6 */ mtlr r0
/* 8005DA54 0005A9B4 38 21 00 50 */ addi r1, r1, 0x50
/* 8005DA58 0005A9B8 4E 80 00 20 */ blr
.global __dt__11CGameCameraFv
__dt__11CGameCameraFv:
/* 8005DA5C 0005A9BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8005DA60 0005A9C0 7C 08 02 A6 */ mflr r0
/* 8005DA64 0005A9C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005DA68 0005A9C8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8005DA6C 0005A9CC 7C 9F 23 78 */ mr r31, r4
/* 8005DA70 0005A9D0 93 C1 00 08 */ stw r30, 8(r1)
/* 8005DA74 0005A9D4 7C 7E 1B 79 */ or. r30, r3, r3
/* 8005DA78 0005A9D8 41 82 00 28 */ beq lbl_8005DAA0
/* 8005DA7C 0005A9DC 3C A0 80 3E */ lis r5, lbl_803DA194@ha
/* 8005DA80 0005A9E0 38 80 00 00 */ li r4, 0
/* 8005DA84 0005A9E4 38 05 A1 94 */ addi r0, r5, lbl_803DA194@l
/* 8005DA88 0005A9E8 90 1E 00 00 */ stw r0, 0(r30)
/* 8005DA8C 0005A9EC 4B FF 7C 65 */ bl __dt__6CActorFv
/* 8005DA90 0005A9F0 7F E0 07 35 */ extsh. r0, r31
/* 8005DA94 0005A9F4 40 81 00 0C */ ble lbl_8005DAA0
/* 8005DA98 0005A9F8 7F C3 F3 78 */ mr r3, r30
/* 8005DA9C 0005A9FC 48 2B 7E 95 */ bl Free__7CMemoryFPCv
lbl_8005DAA0:
/* 8005DAA0 0005AA00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8005DAA4 0005AA04 7F C3 F3 78 */ mr r3, r30
/* 8005DAA8 0005AA08 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8005DAAC 0005AA0C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8005DAB0 0005AA10 7C 08 03 A6 */ mtlr r0
/* 8005DAB4 0005AA14 38 21 00 10 */ addi r1, r1, 0x10
/* 8005DAB8 0005AA18 4E 80 00 20 */ blr
.global "__ct__11CGameCameraF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fffff9TUniqueIdbi"
"__ct__11CGameCameraF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fffff9TUniqueIdbi":
/* 8005DABC 0005AA1C 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 8005DAC0 0005AA20 7C 08 02 A6 */ mflr r0
/* 8005DAC4 0005AA24 90 01 01 44 */ stw r0, 0x144(r1)
/* 8005DAC8 0005AA28 DB E1 01 30 */ stfd f31, 0x130(r1)
/* 8005DACC 0005AA2C F3 E1 01 38 */ psq_st f31, 312(r1), 0, qr0
/* 8005DAD0 0005AA30 DB C1 01 20 */ stfd f30, 0x120(r1)
/* 8005DAD4 0005AA34 F3 C1 01 28 */ psq_st f30, 296(r1), 0, qr0
/* 8005DAD8 0005AA38 DB A1 01 10 */ stfd f29, 0x110(r1)
/* 8005DADC 0005AA3C F3 A1 01 18 */ psq_st f29, 280(r1), 0, qr0
/* 8005DAE0 0005AA40 DB 81 01 00 */ stfd f28, 0x100(r1)
/* 8005DAE4 0005AA44 F3 81 01 08 */ psq_st f28, 264(r1), 0, qr0
/* 8005DAE8 0005AA48 BE E1 00 DC */ stmw r23, 0xdc(r1)
/* 8005DAEC 0005AA4C FF 80 08 90 */ fmr f28, f1
/* 8005DAF0 0005AA50 7C 78 1B 78 */ mr r24, r3
/* 8005DAF4 0005AA54 FF A0 10 90 */ fmr f29, f2
/* 8005DAF8 0005AA58 83 E1 01 48 */ lwz r31, 0x148(r1)
/* 8005DAFC 0005AA5C FF C0 18 90 */ fmr f30, f3
/* 8005DB00 0005AA60 7C 97 23 78 */ mr r23, r4
/* 8005DB04 0005AA64 FF E0 20 90 */ fmr f31, f4
/* 8005DB08 0005AA68 7C B9 2B 78 */ mr r25, r5
/* 8005DB0C 0005AA6C 7C DA 33 78 */ mr r26, r6
/* 8005DB10 0005AA70 7C FB 3B 78 */ mr r27, r7
/* 8005DB14 0005AA74 7D 1C 43 78 */ mr r28, r8
/* 8005DB18 0005AA78 7D 3D 4B 78 */ mr r29, r9
/* 8005DB1C 0005AA7C 7D 5E 53 78 */ mr r30, r10
/* 8005DB20 0005AA80 38 61 00 88 */ addi r3, r1, 0x88
/* 8005DB24 0005AA84 4B FD CC 81 */ bl CModelDataNull__10CModelDataFv
/* 8005DB28 0005AA88 38 61 00 20 */ addi r3, r1, 0x20
/* 8005DB2C 0005AA8C 4B FB D3 0D */ bl None__16CActorParametersFv
/* 8005DB30 0005AA90 A0 8D A3 8C */ lhz r4, kInvalidUniqueId@sda21(r13)
/* 8005DB34 0005AA94 38 00 00 00 */ li r0, 0
/* 8005DB38 0005AA98 80 AD 82 C0 */ lwz r5, lbl_805A6E80@sda21(r13)
/* 8005DB3C 0005AA9C 38 60 00 00 */ li r3, 0
/* 8005DB40 0005AAA0 B0 81 00 10 */ sth r4, 0x10(r1)
/* 8005DB44 0005AAA4 38 80 00 01 */ li r4, 1
/* 8005DB48 0005AAA8 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8005DB4C 0005AAAC 90 01 00 18 */ stw r0, 0x18(r1)
/* 8005DB50 0005AAB0 48 32 C3 A5 */ bl __shl2i
/* 8005DB54 0005AAB4 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 8005DB58 0005AAB8 39 61 00 20 */ addi r11, r1, 0x20
/* 8005DB5C 0005AABC 80 C1 00 1C */ lwz r6, 0x1c(r1)
/* 8005DB60 0005AAC0 38 01 00 10 */ addi r0, r1, 0x10
/* 8005DB64 0005AAC4 7C A3 1B 78 */ or r3, r5, r3
/* 8005DB68 0005AAC8 A1 37 00 00 */ lhz r9, 0(r23)
/* 8005DB6C 0005AACC 7C C4 23 78 */ or r4, r6, r4
/* 8005DB70 0005AAD0 90 61 00 18 */ stw r3, 0x18(r1)
/* 8005DB74 0005AAD4 7F 03 C3 78 */ mr r3, r24
/* 8005DB78 0005AAD8 7F 25 CB 78 */ mr r5, r25
/* 8005DB7C 0005AADC 90 81 00 1C */ stw r4, 0x1c(r1)
/* 8005DB80 0005AAE0 7F 46 D3 78 */ mr r6, r26
/* 8005DB84 0005AAE4 7F 67 DB 78 */ mr r7, r27
/* 8005DB88 0005AAE8 7F 88 E3 78 */ mr r8, r28
/* 8005DB8C 0005AAEC B1 21 00 14 */ sth r9, 0x14(r1)
/* 8005DB90 0005AAF0 38 81 00 14 */ addi r4, r1, 0x14
/* 8005DB94 0005AAF4 39 21 00 88 */ addi r9, r1, 0x88
/* 8005DB98 0005AAF8 39 41 00 18 */ addi r10, r1, 0x18
/* 8005DB9C 0005AAFC 91 61 00 08 */ stw r11, 8(r1)
/* 8005DBA0 0005AB00 90 01 00 0C */ stw r0, 0xc(r1)
/* 8005DBA4 0005AB04 4B FF 7C 7D */ bl "__ct__6CActorF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC13CMaterialListRC16CActorParameters9TUniqueId"
/* 8005DBA8 0005AB08 38 61 00 20 */ addi r3, r1, 0x20
/* 8005DBAC 0005AB0C 38 80 FF FF */ li r4, -1
/* 8005DBB0 0005AB10 48 0A 8A 59 */ bl __dt__16CActorParametersFv
/* 8005DBB4 0005AB14 38 61 00 88 */ addi r3, r1, 0x88
/* 8005DBB8 0005AB18 38 80 FF FF */ li r4, -1
/* 8005DBBC 0005AB1C 48 0B 8E 91 */ bl __dt__10CModelDataFv
/* 8005DBC0 0005AB20 3C 80 80 3E */ lis r4, lbl_803DA194@ha
/* 8005DBC4 0005AB24 3C 60 80 5A */ lis r3, lbl_805A6620@ha
/* 8005DBC8 0005AB28 38 04 A1 94 */ addi r0, r4, lbl_803DA194@l
/* 8005DBCC 0005AB2C 7F 84 E3 78 */ mr r4, r28
/* 8005DBD0 0005AB30 90 18 00 00 */ stw r0, 0(r24)
/* 8005DBD4 0005AB34 38 A3 66 20 */ addi r5, r3, lbl_805A6620@l
/* 8005DBD8 0005AB38 38 78 01 2C */ addi r3, r24, 0x12c
/* 8005DBDC 0005AB3C A0 1D 00 00 */ lhz r0, 0(r29)
/* 8005DBE0 0005AB40 B0 18 00 E8 */ sth r0, 0xe8(r24)
/* 8005DBE4 0005AB44 C0 05 00 00 */ lfs f0, 0(r5)
/* 8005DBE8 0005AB48 D0 18 00 EC */ stfs f0, 0xec(r24)
/* 8005DBEC 0005AB4C C0 05 00 04 */ lfs f0, 4(r5)
/* 8005DBF0 0005AB50 D0 18 00 F0 */ stfs f0, 0xf0(r24)
/* 8005DBF4 0005AB54 C0 05 00 08 */ lfs f0, 8(r5)
/* 8005DBF8 0005AB58 D0 18 00 F4 */ stfs f0, 0xf4(r24)
/* 8005DBFC 0005AB5C C0 05 00 0C */ lfs f0, 0xc(r5)
/* 8005DC00 0005AB60 D0 18 00 F8 */ stfs f0, 0xf8(r24)
/* 8005DC04 0005AB64 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 8005DC08 0005AB68 D0 18 00 FC */ stfs f0, 0xfc(r24)
/* 8005DC0C 0005AB6C C0 05 00 14 */ lfs f0, 0x14(r5)
/* 8005DC10 0005AB70 D0 18 01 00 */ stfs f0, 0x100(r24)
/* 8005DC14 0005AB74 C0 05 00 18 */ lfs f0, 0x18(r5)
/* 8005DC18 0005AB78 D0 18 01 04 */ stfs f0, 0x104(r24)
/* 8005DC1C 0005AB7C C0 05 00 1C */ lfs f0, 0x1c(r5)
/* 8005DC20 0005AB80 D0 18 01 08 */ stfs f0, 0x108(r24)
/* 8005DC24 0005AB84 C0 05 00 20 */ lfs f0, 0x20(r5)
/* 8005DC28 0005AB88 D0 18 01 0C */ stfs f0, 0x10c(r24)
/* 8005DC2C 0005AB8C C0 05 00 24 */ lfs f0, 0x24(r5)
/* 8005DC30 0005AB90 D0 18 01 10 */ stfs f0, 0x110(r24)
/* 8005DC34 0005AB94 C0 05 00 28 */ lfs f0, 0x28(r5)
/* 8005DC38 0005AB98 D0 18 01 14 */ stfs f0, 0x114(r24)
/* 8005DC3C 0005AB9C C0 05 00 2C */ lfs f0, 0x2c(r5)
/* 8005DC40 0005ABA0 D0 18 01 18 */ stfs f0, 0x118(r24)
/* 8005DC44 0005ABA4 C0 05 00 30 */ lfs f0, 0x30(r5)
/* 8005DC48 0005ABA8 D0 18 01 1C */ stfs f0, 0x11c(r24)
/* 8005DC4C 0005ABAC C0 05 00 34 */ lfs f0, 0x34(r5)
/* 8005DC50 0005ABB0 D0 18 01 20 */ stfs f0, 0x120(r24)
/* 8005DC54 0005ABB4 C0 05 00 38 */ lfs f0, 0x38(r5)
/* 8005DC58 0005ABB8 D0 18 01 24 */ stfs f0, 0x124(r24)
/* 8005DC5C 0005ABBC C0 05 00 3C */ lfs f0, 0x3c(r5)
/* 8005DC60 0005ABC0 D0 18 01 28 */ stfs f0, 0x128(r24)
/* 8005DC64 0005ABC4 48 2B 4F 11 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8005DC68 0005ABC8 D3 98 01 5C */ stfs f28, 0x15c(r24)
/* 8005DC6C 0005ABCC 38 C0 00 01 */ li r6, 1
/* 8005DC70 0005ABD0 C0 02 86 B8 */ lfs f0, lbl_805AA3D8@sda21(r2)
/* 8005DC74 0005ABD4 38 80 00 00 */ li r4, 0
/* 8005DC78 0005ABD8 D3 B8 01 60 */ stfs f29, 0x160(r24)
/* 8005DC7C 0005ABDC 7F 03 C3 78 */ mr r3, r24
/* 8005DC80 0005ABE0 D3 D8 01 64 */ stfs f30, 0x164(r24)
/* 8005DC84 0005ABE4 D3 F8 01 68 */ stfs f31, 0x168(r24)
/* 8005DC88 0005ABE8 93 F8 01 6C */ stw r31, 0x16c(r24)
/* 8005DC8C 0005ABEC 88 18 01 70 */ lbz r0, 0x170(r24)
/* 8005DC90 0005ABF0 50 C0 3E 30 */ rlwimi r0, r6, 7, 0x18, 0x18
/* 8005DC94 0005ABF4 98 18 01 70 */ stb r0, 0x170(r24)
/* 8005DC98 0005ABF8 88 18 01 70 */ lbz r0, 0x170(r24)
/* 8005DC9C 0005ABFC 53 C0 36 72 */ rlwimi r0, r30, 6, 0x19, 0x19
/* 8005DCA0 0005AC00 98 18 01 70 */ stb r0, 0x170(r24)
/* 8005DCA4 0005AC04 D0 18 01 74 */ stfs f0, 0x174(r24)
/* 8005DCA8 0005AC08 D0 18 01 78 */ stfs f0, 0x178(r24)
/* 8005DCAC 0005AC0C D0 18 01 7C */ stfs f0, 0x17c(r24)
/* 8005DCB0 0005AC10 D3 98 01 80 */ stfs f28, 0x180(r24)
/* 8005DCB4 0005AC14 D3 98 01 84 */ stfs f28, 0x184(r24)
/* 8005DCB8 0005AC18 88 18 00 E7 */ lbz r0, 0xe7(r24)
/* 8005DCBC 0005AC1C 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d
/* 8005DCC0 0005AC20 98 18 00 E7 */ stb r0, 0xe7(r24)
/* 8005DCC4 0005AC24 E3 E1 01 38 */ psq_l f31, 312(r1), 0, qr0
/* 8005DCC8 0005AC28 CB E1 01 30 */ lfd f31, 0x130(r1)
/* 8005DCCC 0005AC2C E3 C1 01 28 */ psq_l f30, 296(r1), 0, qr0
/* 8005DCD0 0005AC30 CB C1 01 20 */ lfd f30, 0x120(r1)
/* 8005DCD4 0005AC34 E3 A1 01 18 */ psq_l f29, 280(r1), 0, qr0
/* 8005DCD8 0005AC38 CB A1 01 10 */ lfd f29, 0x110(r1)
/* 8005DCDC 0005AC3C E3 81 01 08 */ psq_l f28, 264(r1), 0, qr0
/* 8005DCE0 0005AC40 CB 81 01 00 */ lfd f28, 0x100(r1)
/* 8005DCE4 0005AC44 BA E1 00 DC */ lmw r23, 0xdc(r1)
/* 8005DCE8 0005AC48 80 01 01 44 */ lwz r0, 0x144(r1)
/* 8005DCEC 0005AC4C 7C 08 03 A6 */ mtlr r0
/* 8005DCF0 0005AC50 38 21 01 40 */ addi r1, r1, 0x140
/* 8005DCF4 0005AC54 4E 80 00 20 */ blr