prime/asm/MetroidPrime/Cameras/CFirstPersonCamera.s

2090 lines
106 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.global lbl_803D9660
lbl_803D9660:
# ROM: 0x3D6660
.4byte 0
.4byte 0
.4byte __dt__18CFirstPersonCameraFv
.4byte Accept__18CFirstPersonCameraFR8IVisitor
.4byte PreThink__18CFirstPersonCameraFfR13CStateManager
.4byte Think__18CFirstPersonCameraFfR13CStateManager
.4byte AcceptScriptMsg__11CGameCameraF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__11CGameCameraFb
.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__18CFirstPersonCameraCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__6CActorFv
.4byte HealthInfo__6CActorFR13CStateManager
.4byte GetDamageVulnerability__6CActorCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__6CActorCFv
.4byte Touch__6CActorFR6CActorR13CStateManager
.4byte GetOrbitPosition__6CActorCFRC13CStateManager
.4byte GetAimPosition__6CActorCFRC13CStateManagerf
.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
.4byte GetCollisionResponseType__6CActorCFRC9CVector3fRC9CVector3fRC11CWeaponModei
.4byte FluidFXThink__6CActorFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
.4byte GetSortingBounds__6CActorCFRC12CTransform4f
.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventType
.4byte ProcessInput__18CFirstPersonCameraFRC11CFinalInputR13CStateManager
.4byte Reset__18CFirstPersonCameraFRC12CTransform4fR13CStateManager
.4byte 0
.section .rodata
.global lbl_803CC420
lbl_803CC420:
.asciz "First Person Camera"
.4byte 0
.section .sdata
.global lbl_805A6BF8
lbl_805A6BF8:
# ROM: 0x3F4598
.4byte 0
.global lbl_805A6BFC
lbl_805A6BFC:
# ROM: 0x3F459C
.float 1.0
.global lbl_805A6C00
lbl_805A6C00:
# ROM: 0x3F45A0
.4byte 0
.global lbl_805A6C04
lbl_805A6C04:
# ROM: 0x3F45A4
.float 1.0
.global lbl_805A6C08
lbl_805A6C08:
# ROM: 0x3F45A8
.4byte 0
.global lbl_805A6C0C
lbl_805A6C0C:
# ROM: 0x3F45AC
.float 1.0
.global lbl_805A6C10
lbl_805A6C10:
# ROM: 0x3F45B0
.4byte 0
.global lbl_805A6C14
lbl_805A6C14:
# ROM: 0x3F45B4
.float 1.0
.global lbl_805A6C18
lbl_805A6C18:
# ROM: 0x3F45B8
.4byte 0
.global lbl_805A6C1C
lbl_805A6C1C:
# ROM: 0x3F45BC
.float 1.0
.global lbl_805A6C20
lbl_805A6C20:
# ROM: 0x3F45C0
.4byte 0
.global lbl_805A6C24
lbl_805A6C24:
# ROM: 0x3F45C4
.float 1.0
.global lbl_805A6C28
lbl_805A6C28:
# ROM: 0x3F45C8
.4byte 0
.global lbl_805A6C2C
lbl_805A6C2C:
# ROM: 0x3F45CC
.float 1.0
.global lbl_805A6C30
lbl_805A6C30:
# ROM: 0x3F45D0
.4byte 0
.global lbl_805A6C34
lbl_805A6C34:
# ROM: 0x3F45D4
.float 1.0
.global lbl_805A6C38
lbl_805A6C38:
# ROM: 0x3F45D8
.4byte 0
.global lbl_805A6C3C
lbl_805A6C3C:
# ROM: 0x3F45DC
.float 1.0
.global lbl_805A6C40
lbl_805A6C40:
# ROM: 0x3F45E0
.4byte 0
.global lbl_805A6C44
lbl_805A6C44:
# ROM: 0x3F45E4
.float 1.0
.section .sdata2
.global lbl_805A9DD0
lbl_805A9DD0:
# ROM: 0x3F6670
.4byte 0
.global lbl_805A9DD4
lbl_805A9DD4:
# ROM: 0x3F6674
.float 1.0
.global lbl_805A9DD8
lbl_805A9DD8:
# ROM: 0x3F6678
.4byte 0x3727C5AC
.4byte 0
.global lbl_805A9DE0
lbl_805A9DE0:
# ROM: 0x3F6680
.double 1.0
.global lbl_805A9DE8
lbl_805A9DE8:
# ROM: 0x3F6688
.float -1.0
.global lbl_805A9DEC
lbl_805A9DEC:
# ROM: 0x3F668C
.float 1.0E-4
.global lbl_805A9DF0
lbl_805A9DF0:
# ROM: 0x3F6690
.float 6.2831855
.global lbl_805A9DF4
lbl_805A9DF4:
# ROM: 0x3F6694
.float 0.5
.global lbl_805A9DF8
lbl_805A9DF8:
# ROM: 0x3F6698
.float 0.25
.global lbl_805A9DFC
lbl_805A9DFC:
# ROM: 0x3F669C
.4byte 0x3F7FF972
.section .text, "ax"
.global GetGunFollowTransform__18CFirstPersonCameraCFv
GetGunFollowTransform__18CFirstPersonCameraCFv:
/* 8000E0E4 0000B044 38 63 01 90 */ addi r3, r3, 0x190
/* 8000E0E8 0000B048 4E 80 00 20 */ blr
.global Accept__18CFirstPersonCameraFR8IVisitor
Accept__18CFirstPersonCameraFR8IVisitor:
/* 8000E0EC 0000B04C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8000E0F0 0000B050 7C 08 02 A6 */ mflr r0
/* 8000E0F4 0000B054 90 01 00 14 */ stw r0, 0x14(r1)
/* 8000E0F8 0000B058 7C 60 1B 78 */ mr r0, r3
/* 8000E0FC 0000B05C 7C 83 23 78 */ mr r3, r4
/* 8000E100 0000B060 81 84 00 00 */ lwz r12, 0(r4)
/* 8000E104 0000B064 7C 04 03 78 */ mr r4, r0
/* 8000E108 0000B068 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 8000E10C 0000B06C 7D 89 03 A6 */ mtctr r12
/* 8000E110 0000B070 4E 80 04 21 */ bctrl
/* 8000E114 0000B074 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8000E118 0000B078 7C 08 03 A6 */ mtlr r0
/* 8000E11C 0000B07C 38 21 00 10 */ addi r1, r1, 0x10
/* 8000E120 0000B080 4E 80 00 20 */ blr
.global Think__18CFirstPersonCameraFfR13CStateManager
Think__18CFirstPersonCameraFfR13CStateManager:
/* 8000E124 0000B084 94 21 FF 20 */ stwu r1, -0xe0(r1)
/* 8000E128 0000B088 7C 08 02 A6 */ mflr r0
/* 8000E12C 0000B08C 90 01 00 E4 */ stw r0, 0xe4(r1)
/* 8000E130 0000B090 DB E1 00 D0 */ stfd f31, 0xd0(r1)
/* 8000E134 0000B094 F3 E1 00 D8 */ psq_st f31, 216(r1), 0, qr0
/* 8000E138 0000B098 93 E1 00 CC */ stw r31, 0xcc(r1)
/* 8000E13C 0000B09C 93 C1 00 C8 */ stw r30, 0xc8(r1)
/* 8000E140 0000B0A0 93 A1 00 C4 */ stw r29, 0xc4(r1)
/* 8000E144 0000B0A4 7C 7F 1B 78 */ mr r31, r3
/* 8000E148 0000B0A8 7C 9D 23 78 */ mr r29, r4
/* 8000E14C 0000B0AC A0 03 00 E8 */ lhz r0, 0xe8(r3)
/* 8000E150 0000B0B0 FF E0 08 90 */ fmr f31, f1
/* 8000E154 0000B0B4 7F A3 EB 78 */ mr r3, r29
/* 8000E158 0000B0B8 38 81 00 0C */ addi r4, r1, 0xc
/* 8000E15C 0000B0BC B0 01 00 08 */ sth r0, 8(r1)
/* 8000E160 0000B0C0 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8000E164 0000B0C4 48 03 E4 11 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8000E168 0000B0C8 7C 64 1B 78 */ mr r4, r3
/* 8000E16C 0000B0CC 38 61 00 14 */ addi r3, r1, 0x14
/* 8000E170 0000B0D0 48 09 E2 25 */ bl "__ct__20TCastToPtr<7CPlayer>FP7CEntity"
/* 8000E174 0000B0D4 83 C3 00 04 */ lwz r30, 4(r3)
/* 8000E178 0000B0D8 28 1E 00 00 */ cmplwi r30, 0
/* 8000E17C 0000B0DC 41 82 01 78 */ beq lbl_8000E2F4
/* 8000E180 0000B0E0 88 7F 01 C6 */ lbz r3, 0x1c6(r31)
/* 8000E184 0000B0E4 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 8000E188 0000B0E8 40 82 00 D8 */ bne lbl_8000E260
/* 8000E18C 0000B0EC 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8000E190 0000B0F0 2C 00 00 01 */ cmpwi r0, 1
/* 8000E194 0000B0F4 40 82 00 6C */ bne lbl_8000E200
/* 8000E198 0000B0F8 80 1E 02 F4 */ lwz r0, 0x2f4(r30)
/* 8000E19C 0000B0FC 2C 00 00 04 */ cmpwi r0, 4
/* 8000E1A0 0000B100 40 82 01 54 */ bne lbl_8000E2F4
/* 8000E1A4 0000B104 7F C4 F3 78 */ mr r4, r30
/* 8000E1A8 0000B108 38 61 00 58 */ addi r3, r1, 0x58
/* 8000E1AC 0000B10C 48 27 75 3D */ bl CreateTransformFromMovementDirection__7CPlayerCFv
/* 8000E1B0 0000B110 38 7F 00 34 */ addi r3, r31, 0x34
/* 8000E1B4 0000B114 38 81 00 58 */ addi r4, r1, 0x58
/* 8000E1B8 0000B118 48 30 49 89 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000E1BC 0000B11C 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E1C0 0000B120 38 A0 00 01 */ li r5, 1
/* 8000E1C4 0000B124 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 8000E1C8 0000B128 7F C4 F3 78 */ mr r4, r30
/* 8000E1CC 0000B12C 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E1D0 0000B130 38 61 00 1C */ addi r3, r1, 0x1c
/* 8000E1D4 0000B134 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E1D8 0000B138 50 A0 1F 38 */ rlwimi r0, r5, 3, 0x1c, 0x1c
/* 8000E1DC 0000B13C 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E1E0 0000B140 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E1E4 0000B144 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 8000E1E8 0000B148 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E1EC 0000B14C 48 27 6B 91 */ bl GetEyePosition__7CPlayerCFv
/* 8000E1F0 0000B150 7F E3 FB 78 */ mr r3, r31
/* 8000E1F4 0000B154 38 81 00 1C */ addi r4, r1, 0x1c
/* 8000E1F8 0000B158 48 04 4C 95 */ bl SetTranslation__6CActorFRC9CVector3f
/* 8000E1FC 0000B15C 48 00 00 F8 */ b lbl_8000E2F4
lbl_8000E200:
/* 8000E200 0000B160 2C 00 00 00 */ cmpwi r0, 0
/* 8000E204 0000B164 41 82 00 68 */ beq lbl_8000E26C
/* 8000E208 0000B168 2C 00 00 03 */ cmpwi r0, 3
/* 8000E20C 0000B16C 40 82 00 E8 */ bne lbl_8000E2F4
/* 8000E210 0000B170 C0 42 80 B0 */ lfs f2, lbl_805A9DD0@sda21(r2)
/* 8000E214 0000B174 C0 3E 05 78 */ lfs f1, 0x578(r30)
/* 8000E218 0000B178 FC 02 08 00 */ fcmpu cr0, f2, f1
/* 8000E21C 0000B17C 40 82 00 08 */ bne lbl_8000E224
/* 8000E220 0000B180 48 00 00 24 */ b lbl_8000E244
lbl_8000E224:
/* 8000E224 0000B184 C0 1E 05 74 */ lfs f0, 0x574(r30)
/* 8000E228 0000B188 38 81 00 10 */ addi r4, r1, 0x10
/* 8000E22C 0000B18C 38 6D 80 38 */ addi r3, r13, lbl_805A6BF8@sda21
/* 8000E230 0000B190 38 AD 80 3C */ addi r5, r13, lbl_805A6BFC@sda21
/* 8000E234 0000B194 EC 00 08 24 */ fdivs f0, f0, f1
/* 8000E238 0000B198 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8000E23C 0000B19C 4B FF E0 79 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000E240 0000B1A0 C0 43 00 00 */ lfs f2, 0(r3)
lbl_8000E244:
/* 8000E244 0000B1A4 C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000E248 0000B1A8 C0 02 80 B8 */ lfs f0, lbl_805A9DD8@sda21(r2)
/* 8000E24C 0000B1AC EC 22 08 28 */ fsubs f1, f2, f1
/* 8000E250 0000B1B0 FC 20 0A 10 */ fabs f1, f1
/* 8000E254 0000B1B4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000E258 0000B1B8 41 80 00 14 */ blt lbl_8000E26C
/* 8000E25C 0000B1BC 48 00 00 98 */ b lbl_8000E2F4
lbl_8000E260:
/* 8000E260 0000B1C0 38 00 00 00 */ li r0, 0
/* 8000E264 0000B1C4 50 03 3E 30 */ rlwimi r3, r0, 7, 0x18, 0x18
/* 8000E268 0000B1C8 98 7F 01 C6 */ stb r3, 0x1c6(r31)
lbl_8000E26C:
/* 8000E26C 0000B1CC 38 61 00 88 */ addi r3, r1, 0x88
/* 8000E270 0000B1D0 38 9F 00 34 */ addi r4, r31, 0x34
/* 8000E274 0000B1D4 48 30 49 01 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8000E278 0000B1D8 7F E3 FB 78 */ mr r3, r31
/* 8000E27C 0000B1DC 7F A4 EB 78 */ mr r4, r29
/* 8000E280 0000B1E0 48 00 15 55 */ bl UpdateElevation__18CFirstPersonCameraFR13CStateManager
/* 8000E284 0000B1E4 FC 20 F8 90 */ fmr f1, f31
/* 8000E288 0000B1E8 7F E3 FB 78 */ mr r3, r31
/* 8000E28C 0000B1EC 7F A4 EB 78 */ mr r4, r29
/* 8000E290 0000B1F0 48 00 01 41 */ bl UpdateTransform__18CFirstPersonCameraFR13CStateManagerf
/* 8000E294 0000B1F4 7F E4 FB 78 */ mr r4, r31
/* 8000E298 0000B1F8 38 61 00 28 */ addi r3, r1, 0x28
/* 8000E29C 0000B1FC 38 BF 00 34 */ addi r5, r31, 0x34
/* 8000E2A0 0000B200 38 C1 00 88 */ addi r6, r1, 0x88
/* 8000E2A4 0000B204 48 04 CD 1D */ bl ValidateCameraTransform__11CGameCameraFRC12CTransform4fRC12CTransform4f
/* 8000E2A8 0000B208 38 7F 00 34 */ addi r3, r31, 0x34
/* 8000E2AC 0000B20C 38 81 00 28 */ addi r4, r1, 0x28
/* 8000E2B0 0000B210 48 30 48 91 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000E2B4 0000B214 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E2B8 0000B218 38 60 00 01 */ li r3, 1
/* 8000E2BC 0000B21C 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8000E2C0 0000B220 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000E2C4 0000B224 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E2C8 0000B228 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E2CC 0000B22C 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8000E2D0 0000B230 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E2D4 0000B234 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E2D8 0000B238 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8000E2DC 0000B23C 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E2E0 0000B240 C0 3F 01 D4 */ lfs f1, 0x1d4(r31)
/* 8000E2E4 0000B244 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000E2E8 0000B248 40 81 00 0C */ ble lbl_8000E2F4
/* 8000E2EC 0000B24C EC 01 F8 28 */ fsubs f0, f1, f31
/* 8000E2F0 0000B250 D0 1F 01 D4 */ stfs f0, 0x1d4(r31)
lbl_8000E2F4:
/* 8000E2F4 0000B254 E3 E1 00 D8 */ psq_l f31, 216(r1), 0, qr0
/* 8000E2F8 0000B258 80 01 00 E4 */ lwz r0, 0xe4(r1)
/* 8000E2FC 0000B25C CB E1 00 D0 */ lfd f31, 0xd0(r1)
/* 8000E300 0000B260 83 E1 00 CC */ lwz r31, 0xcc(r1)
/* 8000E304 0000B264 83 C1 00 C8 */ lwz r30, 0xc8(r1)
/* 8000E308 0000B268 83 A1 00 C4 */ lwz r29, 0xc4(r1)
/* 8000E30C 0000B26C 7C 08 03 A6 */ mtlr r0
/* 8000E310 0000B270 38 21 00 E0 */ addi r1, r1, 0xe0
/* 8000E314 0000B274 4E 80 00 20 */ blr
.global SkipCinematic__18CFirstPersonCameraFv
SkipCinematic__18CFirstPersonCameraFv:
/* 8000E318 0000B278 3C 80 80 5A */ lis r4, skZero3f@ha
/* 8000E31C 0000B27C C4 24 66 A0 */ lfsu f1, skZero3f@l(r4)
/* 8000E320 0000B280 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000E324 0000B284 D0 23 01 C8 */ stfs f1, 0x1c8(r3)
/* 8000E328 0000B288 C0 24 00 04 */ lfs f1, 4(r4)
/* 8000E32C 0000B28C D0 23 01 CC */ stfs f1, 0x1cc(r3)
/* 8000E330 0000B290 C0 24 00 08 */ lfs f1, 8(r4)
/* 8000E334 0000B294 D0 23 01 D0 */ stfs f1, 0x1d0(r3)
/* 8000E338 0000B298 D0 03 01 D4 */ stfs f0, 0x1d4(r3)
/* 8000E33C 0000B29C 4E 80 00 20 */ blr
.global Reset__18CFirstPersonCameraFRC12CTransform4fR13CStateManager
Reset__18CFirstPersonCameraFRC12CTransform4fR13CStateManager:
/* 8000E340 0000B2A0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8000E344 0000B2A4 7C 08 02 A6 */ mflr r0
/* 8000E348 0000B2A8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8000E34C 0000B2AC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8000E350 0000B2B0 7C BF 2B 78 */ mr r31, r5
/* 8000E354 0000B2B4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8000E358 0000B2B8 7C 7E 1B 78 */ mr r30, r3
/* 8000E35C 0000B2BC 38 7E 00 34 */ addi r3, r30, 0x34
/* 8000E360 0000B2C0 48 30 47 E1 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000E364 0000B2C4 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8000E368 0000B2C8 38 80 00 01 */ li r4, 1
/* 8000E36C 0000B2CC 50 80 26 F6 */ rlwimi r0, r4, 4, 0x1b, 0x1b
/* 8000E370 0000B2D0 38 61 00 08 */ addi r3, r1, 8
/* 8000E374 0000B2D4 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8000E378 0000B2D8 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8000E37C 0000B2DC 50 80 1F 38 */ rlwimi r0, r4, 3, 0x1c, 0x1c
/* 8000E380 0000B2E0 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8000E384 0000B2E4 88 1E 00 E4 */ lbz r0, 0xe4(r30)
/* 8000E388 0000B2E8 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d
/* 8000E38C 0000B2EC 98 1E 00 E4 */ stb r0, 0xe4(r30)
/* 8000E390 0000B2F0 80 9F 08 4C */ lwz r4, 0x84c(r31)
/* 8000E394 0000B2F4 48 27 69 E9 */ bl GetEyePosition__7CPlayerCFv
/* 8000E398 0000B2F8 7F C3 F3 78 */ mr r3, r30
/* 8000E39C 0000B2FC 38 81 00 08 */ addi r4, r1, 8
/* 8000E3A0 0000B300 48 04 4A ED */ bl SetTranslation__6CActorFRC9CVector3f
/* 8000E3A4 0000B304 38 7E 01 90 */ addi r3, r30, 0x190
/* 8000E3A8 0000B308 38 9E 00 34 */ addi r4, r30, 0x34
/* 8000E3AC 0000B30C 48 30 47 95 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000E3B0 0000B310 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8000E3B4 0000B314 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8000E3B8 0000B318 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8000E3BC 0000B31C 7C 08 03 A6 */ mtlr r0
/* 8000E3C0 0000B320 38 21 00 20 */ addi r1, r1, 0x20
/* 8000E3C4 0000B324 4E 80 00 20 */ blr
.global Render__18CFirstPersonCameraCFRC13CStateManager
Render__18CFirstPersonCameraCFRC13CStateManager:
/* 8000E3C8 0000B328 4E 80 00 20 */ blr
.global PreThink__18CFirstPersonCameraFfR13CStateManager
PreThink__18CFirstPersonCameraFfR13CStateManager:
/* 8000E3CC 0000B32C 4E 80 00 20 */ blr
.global UpdateTransform__18CFirstPersonCameraFR13CStateManagerf
UpdateTransform__18CFirstPersonCameraFR13CStateManagerf:
/* 8000E3D0 0000B330 94 21 F6 E0 */ stwu r1, -0x920(r1)
/* 8000E3D4 0000B334 7C 08 02 A6 */ mflr r0
/* 8000E3D8 0000B338 90 01 09 24 */ stw r0, 0x924(r1)
/* 8000E3DC 0000B33C DB E1 09 10 */ stfd f31, 0x910(r1)
/* 8000E3E0 0000B340 F3 E1 09 18 */ psq_st f31, -1768(r1), 0, qr0
/* 8000E3E4 0000B344 DB C1 09 00 */ stfd f30, 0x900(r1)
/* 8000E3E8 0000B348 F3 C1 09 08 */ psq_st f30, -1784(r1), 0, qr0
/* 8000E3EC 0000B34C DB A1 08 F0 */ stfd f29, 0x8f0(r1)
/* 8000E3F0 0000B350 F3 A1 08 F8 */ psq_st f29, -1800(r1), 0, qr0
/* 8000E3F4 0000B354 DB 81 08 E0 */ stfd f28, 0x8e0(r1)
/* 8000E3F8 0000B358 F3 81 08 E8 */ psq_st f28, -1816(r1), 0, qr0
/* 8000E3FC 0000B35C DB 61 08 D0 */ stfd f27, 0x8d0(r1)
/* 8000E400 0000B360 F3 61 08 D8 */ psq_st f27, -1832(r1), 0, qr0
/* 8000E404 0000B364 DB 41 08 C0 */ stfd f26, 0x8c0(r1)
/* 8000E408 0000B368 F3 41 08 C8 */ psq_st f26, -1848(r1), 0, qr0
/* 8000E40C 0000B36C 93 E1 08 BC */ stw r31, 0x8bc(r1)
/* 8000E410 0000B370 93 C1 08 B8 */ stw r30, 0x8b8(r1)
/* 8000E414 0000B374 93 A1 08 B4 */ stw r29, 0x8b4(r1)
/* 8000E418 0000B378 93 81 08 B0 */ stw r28, 0x8b0(r1)
/* 8000E41C 0000B37C 7C 7F 1B 78 */ mr r31, r3
/* 8000E420 0000B380 7C 9D 23 78 */ mr r29, r4
/* 8000E424 0000B384 A0 03 00 E8 */ lhz r0, 0xe8(r3)
/* 8000E428 0000B388 FF 80 08 90 */ fmr f28, f1
/* 8000E42C 0000B38C 7F A3 EB 78 */ mr r3, r29
/* 8000E430 0000B390 38 81 00 1C */ addi r4, r1, 0x1c
/* 8000E434 0000B394 B0 01 00 18 */ sth r0, 0x18(r1)
/* 8000E438 0000B398 B0 01 00 1C */ sth r0, 0x1c(r1)
/* 8000E43C 0000B39C 48 03 E1 39 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8000E440 0000B3A0 7C 64 1B 78 */ mr r4, r3
/* 8000E444 0000B3A4 38 61 00 88 */ addi r3, r1, 0x88
/* 8000E448 0000B3A8 48 09 DF 4D */ bl "__ct__20TCastToPtr<7CPlayer>FP7CEntity"
/* 8000E44C 0000B3AC 83 C3 00 04 */ lwz r30, 4(r3)
/* 8000E450 0000B3B0 28 1E 00 00 */ cmplwi r30, 0
/* 8000E454 0000B3B4 40 82 00 40 */ bne lbl_8000E494
/* 8000E458 0000B3B8 3C 80 80 5A */ lis r4, skIdentity4f@ha
/* 8000E45C 0000B3BC 38 7F 00 34 */ addi r3, r31, 0x34
/* 8000E460 0000B3C0 38 84 66 70 */ addi r4, r4, skIdentity4f@l
/* 8000E464 0000B3C4 48 30 46 DD */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000E468 0000B3C8 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E46C 0000B3CC 38 60 00 01 */ li r3, 1
/* 8000E470 0000B3D0 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 8000E474 0000B3D4 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E478 0000B3D8 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E47C 0000B3DC 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8000E480 0000B3E0 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E484 0000B3E4 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000E488 0000B3E8 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 8000E48C 0000B3EC 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000E490 0000B3F0 48 00 12 F4 */ b lbl_8000F784
lbl_8000E494:
/* 8000E494 0000B3F4 38 61 08 78 */ addi r3, r1, 0x878
/* 8000E498 0000B3F8 38 9E 00 34 */ addi r4, r30, 0x34
/* 8000E49C 0000B3FC 48 30 46 D9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8000E4A0 0000B400 C0 3F 01 C0 */ lfs f1, 0x1c0(r31)
/* 8000E4A4 0000B404 48 38 66 39 */ bl sin
/* 8000E4A8 0000B408 FF 40 08 18 */ frsp f26, f1
/* 8000E4AC 0000B40C C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000E4B0 0000B410 FC 20 D2 10 */ fabs f1, f26
/* 8000E4B4 0000B414 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000E4B8 0000B418 40 81 00 14 */ ble lbl_8000E4CC
/* 8000E4BC 0000B41C C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000E4C0 0000B420 C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000E4C4 0000B424 FC 1A 00 6E */ fsel f0, f26, f1, f0
/* 8000E4C8 0000B428 EF 41 00 32 */ fmuls f26, f1, f0
lbl_8000E4CC:
/* 8000E4CC 0000B42C C0 3F 01 C0 */ lfs f1, 0x1c0(r31)
/* 8000E4D0 0000B430 48 38 5F 21 */ bl cos
/* 8000E4D4 0000B434 FC 40 08 18 */ frsp f2, f1
/* 8000E4D8 0000B438 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000E4DC 0000B43C FC 20 12 10 */ fabs f1, f2
/* 8000E4E0 0000B440 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000E4E4 0000B444 40 81 00 14 */ ble lbl_8000E4F8
/* 8000E4E8 0000B448 C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000E4EC 0000B44C C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000E4F0 0000B450 FC 02 00 6E */ fsel f0, f2, f1, f0
/* 8000E4F4 0000B454 EC 41 00 32 */ fmuls f2, f1, f0
lbl_8000E4F8:
/* 8000E4F8 0000B458 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000E4FC 0000B45C 38 61 02 F8 */ addi r3, r1, 0x2f8
/* 8000E500 0000B460 D0 41 02 F0 */ stfs f2, 0x2f0(r1)
/* 8000E504 0000B464 38 81 08 78 */ addi r4, r1, 0x878
/* 8000E508 0000B468 38 A1 02 EC */ addi r5, r1, 0x2ec
/* 8000E50C 0000B46C D0 01 02 EC */ stfs f0, 0x2ec(r1)
/* 8000E510 0000B470 D3 41 02 F4 */ stfs f26, 0x2f4(r1)
/* 8000E514 0000B474 48 30 45 6D */ bl Rotate__12CTransform4fCFRC9CVector3f
/* 8000E518 0000B478 C0 41 02 F8 */ lfs f2, 0x2f8(r1)
/* 8000E51C 0000B47C C0 21 02 FC */ lfs f1, 0x2fc(r1)
/* 8000E520 0000B480 C0 01 03 00 */ lfs f0, 0x300(r1)
/* 8000E524 0000B484 D0 41 04 4C */ stfs f2, 0x44c(r1)
/* 8000E528 0000B488 D0 21 04 50 */ stfs f1, 0x450(r1)
/* 8000E52C 0000B48C D0 01 04 54 */ stfs f0, 0x454(r1)
/* 8000E530 0000B490 88 1E 03 DC */ lbz r0, 0x3dc(r30)
/* 8000E534 0000B494 28 00 00 00 */ cmplwi r0, 0
/* 8000E538 0000B498 41 82 01 5C */ beq lbl_8000E694
/* 8000E53C 0000B49C C0 1F 01 C0 */ lfs f0, 0x1c0(r31)
/* 8000E540 0000B4A0 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000E544 0000B4A4 FC 00 02 10 */ fabs f0, f0
/* 8000E548 0000B4A8 C3 FE 03 EC */ lfs f31, 0x3ec(r30)
/* 8000E54C 0000B4AC C0 23 01 34 */ lfs f1, 0x134(r3)
/* 8000E550 0000B4B0 FC 40 FA 10 */ fabs f2, f31
/* 8000E554 0000B4B4 FC 00 00 18 */ frsp f0, f0
/* 8000E558 0000B4B8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8000E55C 0000B4BC FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000E560 0000B4C0 40 81 00 14 */ ble lbl_8000E574
/* 8000E564 0000B4C4 C0 42 80 C8 */ lfs f2, lbl_805A9DE8@sda21(r2)
/* 8000E568 0000B4C8 C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000E56C 0000B4CC FC 3F 10 6E */ fsel f1, f31, f1, f2
/* 8000E570 0000B4D0 EF E0 00 72 */ fmuls f31, f0, f1
lbl_8000E574:
/* 8000E574 0000B4D4 FC 20 F8 90 */ fmr f1, f31
/* 8000E578 0000B4D8 48 38 65 65 */ bl sin
/* 8000E57C 0000B4DC C0 1E 03 E4 */ lfs f0, 0x3e4(r30)
/* 8000E580 0000B4E0 FF 40 08 18 */ frsp f26, f1
/* 8000E584 0000B4E4 FC 20 00 50 */ fneg f1, f0
/* 8000E588 0000B4E8 48 38 5E 69 */ bl cos
/* 8000E58C 0000B4EC FF 60 08 18 */ frsp f27, f1
/* 8000E590 0000B4F0 FC 20 F8 90 */ fmr f1, f31
/* 8000E594 0000B4F4 48 38 5E 5D */ bl cos
/* 8000E598 0000B4F8 C0 1E 03 E4 */ lfs f0, 0x3e4(r30)
/* 8000E59C 0000B4FC FF A0 08 18 */ frsp f29, f1
/* 8000E5A0 0000B500 FC 20 00 50 */ fneg f1, f0
/* 8000E5A4 0000B504 48 38 65 39 */ bl sin
/* 8000E5A8 0000B508 FF C0 08 18 */ frsp f30, f1
/* 8000E5AC 0000B50C FC 20 F8 90 */ fmr f1, f31
/* 8000E5B0 0000B510 48 38 5E 41 */ bl cos
/* 8000E5B4 0000B514 FC 20 08 18 */ frsp f1, f1
/* 8000E5B8 0000B518 D3 41 04 48 */ stfs f26, 0x448(r1)
/* 8000E5BC 0000B51C EC 1B 07 72 */ fmuls f0, f27, f29
/* 8000E5C0 0000B520 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000E5C4 0000B524 EC 3E 00 72 */ fmuls f1, f30, f1
/* 8000E5C8 0000B528 D0 01 04 44 */ stfs f0, 0x444(r1)
/* 8000E5CC 0000B52C D0 21 04 40 */ stfs f1, 0x440(r1)
/* 8000E5D0 0000B530 88 03 02 28 */ lbz r0, 0x228(r3)
/* 8000E5D4 0000B534 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8000E5D8 0000B538 41 82 00 30 */ beq lbl_8000E608
/* 8000E5DC 0000B53C C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000E5E0 0000B540 3C 60 80 5A */ lis r3, skZero3f@ha
/* 8000E5E4 0000B544 38 83 66 A0 */ addi r4, r3, skZero3f@l
/* 8000E5E8 0000B548 C0 22 80 CC */ lfs f1, lbl_805A9DEC@sda21(r2)
/* 8000E5EC 0000B54C D0 01 04 40 */ stfs f0, 0x440(r1)
/* 8000E5F0 0000B550 38 61 04 40 */ addi r3, r1, 0x440
/* 8000E5F4 0000B554 48 30 19 71 */ bl close_enough__FRC9CVector3fRC9CVector3ff
/* 8000E5F8 0000B558 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000E5FC 0000B55C 40 82 00 0C */ bne lbl_8000E608
/* 8000E600 0000B560 38 61 04 40 */ addi r3, r1, 0x440
/* 8000E604 0000B564 48 30 62 F5 */ bl Normalize__9CVector3fFv
lbl_8000E608:
/* 8000E608 0000B568 C0 22 80 B0 */ lfs f1, lbl_805A9DD0@sda21(r2)
/* 8000E60C 0000B56C 38 61 02 D0 */ addi r3, r1, 0x2d0
/* 8000E610 0000B570 C0 42 80 D0 */ lfs f2, lbl_805A9DF0@sda21(r2)
/* 8000E614 0000B574 C0 02 80 B4 */ lfs f0, lbl_805A9DD4@sda21(r2)
/* 8000E618 0000B578 D0 41 00 54 */ stfs f2, 0x54(r1)
/* 8000E61C 0000B57C D0 21 02 D0 */ stfs f1, 0x2d0(r1)
/* 8000E620 0000B580 D0 01 02 D4 */ stfs f0, 0x2d4(r1)
/* 8000E624 0000B584 D0 21 02 D8 */ stfs f1, 0x2d8(r1)
/* 8000E628 0000B588 48 30 62 D1 */ bl Normalize__9CVector3fFv
/* 8000E62C 0000B58C 38 61 02 C4 */ addi r3, r1, 0x2c4
/* 8000E630 0000B590 38 81 04 4C */ addi r4, r1, 0x44c
/* 8000E634 0000B594 48 30 57 9D */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000E638 0000B598 7C 65 1B 78 */ mr r5, r3
/* 8000E63C 0000B59C 38 61 02 DC */ addi r3, r1, 0x2dc
/* 8000E640 0000B5A0 38 81 02 D0 */ addi r4, r1, 0x2d0
/* 8000E644 0000B5A4 38 C1 00 54 */ addi r6, r1, 0x54
/* 8000E648 0000B5A8 48 30 30 4D */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000E64C 0000B5AC C0 61 02 DC */ lfs f3, 0x2dc(r1)
/* 8000E650 0000B5B0 38 61 02 B8 */ addi r3, r1, 0x2b8
/* 8000E654 0000B5B4 C0 41 02 E0 */ lfs f2, 0x2e0(r1)
/* 8000E658 0000B5B8 38 81 04 30 */ addi r4, r1, 0x430
/* 8000E65C 0000B5BC C0 21 02 E4 */ lfs f1, 0x2e4(r1)
/* 8000E660 0000B5C0 38 A1 04 40 */ addi r5, r1, 0x440
/* 8000E664 0000B5C4 C0 01 02 E8 */ lfs f0, 0x2e8(r1)
/* 8000E668 0000B5C8 D0 61 04 30 */ stfs f3, 0x430(r1)
/* 8000E66C 0000B5CC D0 41 04 34 */ stfs f2, 0x434(r1)
/* 8000E670 0000B5D0 D0 21 04 38 */ stfs f1, 0x438(r1)
/* 8000E674 0000B5D4 D0 01 04 3C */ stfs f0, 0x43c(r1)
/* 8000E678 0000B5D8 48 30 2B ED */ bl Transform__11CQuaternionCFRC9CVector3f
/* 8000E67C 0000B5DC C0 41 02 B8 */ lfs f2, 0x2b8(r1)
/* 8000E680 0000B5E0 C0 21 02 BC */ lfs f1, 0x2bc(r1)
/* 8000E684 0000B5E4 C0 01 02 C0 */ lfs f0, 0x2c0(r1)
/* 8000E688 0000B5E8 D0 41 04 4C */ stfs f2, 0x44c(r1)
/* 8000E68C 0000B5EC D0 21 04 50 */ stfs f1, 0x450(r1)
/* 8000E690 0000B5F0 D0 01 04 54 */ stfs f0, 0x454(r1)
lbl_8000E694:
/* 8000E694 0000B5F4 7F C4 F3 78 */ mr r4, r30
/* 8000E698 0000B5F8 38 61 02 AC */ addi r3, r1, 0x2ac
/* 8000E69C 0000B5FC 48 27 66 E1 */ bl GetEyePosition__7CPlayerCFv
/* 8000E6A0 0000B600 C0 3F 01 D4 */ lfs f1, 0x1d4(r31)
/* 8000E6A4 0000B604 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000E6A8 0000B608 C3 E1 02 AC */ lfs f31, 0x2ac(r1)
/* 8000E6AC 0000B60C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000E6B0 0000B610 C3 C1 02 B0 */ lfs f30, 0x2b0(r1)
/* 8000E6B4 0000B614 C3 A1 02 B4 */ lfs f29, 0x2b4(r1)
/* 8000E6B8 0000B618 40 81 00 64 */ ble lbl_8000E71C
/* 8000E6BC 0000B61C C0 02 80 D4 */ lfs f0, lbl_805A9DF4@sda21(r2)
/* 8000E6C0 0000B620 38 81 00 50 */ addi r4, r1, 0x50
/* 8000E6C4 0000B624 38 6D 80 40 */ addi r3, r13, lbl_805A6C00@sda21
/* 8000E6C8 0000B628 38 AD 80 44 */ addi r5, r13, lbl_805A6C04@sda21
/* 8000E6CC 0000B62C EC 01 00 32 */ fmuls f0, f1, f0
/* 8000E6D0 0000B630 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 8000E6D4 0000B634 4B FF DB E1 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000E6D8 0000B638 C0 63 00 00 */ lfs f3, 0(r3)
/* 8000E6DC 0000B63C C0 5F 01 C8 */ lfs f2, 0x1c8(r31)
/* 8000E6E0 0000B640 C0 3F 01 CC */ lfs f1, 0x1cc(r31)
/* 8000E6E4 0000B644 C0 1F 01 D0 */ lfs f0, 0x1d0(r31)
/* 8000E6E8 0000B648 EC 43 00 B2 */ fmuls f2, f3, f2
/* 8000E6EC 0000B64C EC 23 00 72 */ fmuls f1, f3, f1
/* 8000E6F0 0000B650 83 9E 07 6C */ lwz r28, 0x76c(r30)
/* 8000E6F4 0000B654 EC 03 00 32 */ fmuls f0, f3, f0
/* 8000E6F8 0000B658 EF FF 10 2A */ fadds f31, f31, f2
/* 8000E6FC 0000B65C 7F 83 E3 78 */ mr r3, r28
/* 8000E700 0000B660 EF DE 08 2A */ fadds f30, f30, f1
/* 8000E704 0000B664 EF BD 00 2A */ fadds f29, f29, f0
/* 8000E708 0000B668 48 0D B4 25 */ bl ResetCameraBobTime__16CPlayerCameraBobFv
/* 8000E70C 0000B66C 3C 80 80 5A */ lis r4, skIdentity4f@ha
/* 8000E710 0000B670 38 7C 00 2C */ addi r3, r28, 0x2c
/* 8000E714 0000B674 38 84 66 70 */ addi r4, r4, skIdentity4f@l
/* 8000E718 0000B678 48 30 44 29 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8000E71C:
/* 8000E71C 0000B67C 80 1E 03 04 */ lwz r0, 0x304(r30)
/* 8000E720 0000B680 2C 00 00 04 */ cmpwi r0, 4
/* 8000E724 0000B684 41 82 00 24 */ beq lbl_8000E748
/* 8000E728 0000B688 40 80 02 9C */ bge lbl_8000E9C4
/* 8000E72C 0000B68C 2C 00 00 01 */ cmpwi r0, 1
/* 8000E730 0000B690 41 82 00 18 */ beq lbl_8000E748
/* 8000E734 0000B694 40 80 00 EC */ bge lbl_8000E820
/* 8000E738 0000B698 2C 00 00 00 */ cmpwi r0, 0
/* 8000E73C 0000B69C 40 80 01 18 */ bge lbl_8000E854
/* 8000E740 0000B6A0 48 00 02 84 */ b lbl_8000E9C4
/* 8000E744 0000B6A4 48 00 02 80 */ b lbl_8000E9C4
lbl_8000E748:
/* 8000E748 0000B6A8 A0 1E 03 10 */ lhz r0, 0x310(r30)
/* 8000E74C 0000B6AC 7F A3 EB 78 */ mr r3, r29
/* 8000E750 0000B6B0 38 81 00 14 */ addi r4, r1, 0x14
/* 8000E754 0000B6B4 B0 01 00 10 */ sth r0, 0x10(r1)
/* 8000E758 0000B6B8 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8000E75C 0000B6BC 48 03 DE 49 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8000E760 0000B6C0 7C 64 1B 78 */ mr r4, r3
/* 8000E764 0000B6C4 38 61 00 80 */ addi r3, r1, 0x80
/* 8000E768 0000B6C8 48 0A 15 29 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 8000E76C 0000B6CC 80 83 00 04 */ lwz r4, 4(r3)
/* 8000E770 0000B6D0 28 04 00 00 */ cmplwi r4, 0
/* 8000E774 0000B6D4 41 82 00 84 */ beq lbl_8000E7F8
/* 8000E778 0000B6D8 80 64 00 68 */ lwz r3, 0x68(r4)
/* 8000E77C 0000B6DC 38 00 02 00 */ li r0, 0x200
/* 8000E780 0000B6E0 80 A4 00 6C */ lwz r5, 0x6c(r4)
/* 8000E784 0000B6E4 38 80 00 00 */ li r4, 0
/* 8000E788 0000B6E8 7C 60 00 38 */ and r0, r3, r0
/* 8000E78C 0000B6EC 7C A3 20 38 */ and r3, r5, r4
/* 8000E790 0000B6F0 7C 63 22 78 */ xor r3, r3, r4
/* 8000E794 0000B6F4 7C 00 22 78 */ xor r0, r0, r4
/* 8000E798 0000B6F8 7C 60 03 79 */ or. r0, r3, r0
/* 8000E79C 0000B6FC 41 82 00 5C */ beq lbl_8000E7F8
/* 8000E7A0 0000B700 C0 5E 03 18 */ lfs f2, 0x318(r30)
/* 8000E7A4 0000B704 38 61 04 24 */ addi r3, r1, 0x424
/* 8000E7A8 0000B708 C0 3E 03 1C */ lfs f1, 0x31c(r30)
/* 8000E7AC 0000B70C C0 1E 03 14 */ lfs f0, 0x314(r30)
/* 8000E7B0 0000B710 EC 42 F0 28 */ fsubs f2, f2, f30
/* 8000E7B4 0000B714 EC 21 E8 28 */ fsubs f1, f1, f29
/* 8000E7B8 0000B718 EC 00 F8 28 */ fsubs f0, f0, f31
/* 8000E7BC 0000B71C D0 41 04 28 */ stfs f2, 0x428(r1)
/* 8000E7C0 0000B720 D0 01 04 24 */ stfs f0, 0x424(r1)
/* 8000E7C4 0000B724 D0 21 04 2C */ stfs f1, 0x42c(r1)
/* 8000E7C8 0000B728 48 30 5F 31 */ bl CanBeNormalized__9CVector3fCFv
/* 8000E7CC 0000B72C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000E7D0 0000B730 41 82 00 0C */ beq lbl_8000E7DC
/* 8000E7D4 0000B734 38 61 04 24 */ addi r3, r1, 0x424
/* 8000E7D8 0000B738 48 30 61 21 */ bl Normalize__9CVector3fFv
lbl_8000E7DC:
/* 8000E7DC 0000B73C C0 41 04 24 */ lfs f2, 0x424(r1)
/* 8000E7E0 0000B740 C0 21 04 28 */ lfs f1, 0x428(r1)
/* 8000E7E4 0000B744 C0 01 04 2C */ lfs f0, 0x42c(r1)
/* 8000E7E8 0000B748 D0 41 04 4C */ stfs f2, 0x44c(r1)
/* 8000E7EC 0000B74C D0 21 04 50 */ stfs f1, 0x450(r1)
/* 8000E7F0 0000B750 D0 01 04 54 */ stfs f0, 0x454(r1)
/* 8000E7F4 0000B754 48 00 01 D0 */ b lbl_8000E9C4
lbl_8000E7F8:
/* 8000E7F8 0000B758 C0 5E 03 18 */ lfs f2, 0x318(r30)
/* 8000E7FC 0000B75C C0 3E 03 1C */ lfs f1, 0x31c(r30)
/* 8000E800 0000B760 C0 1E 03 14 */ lfs f0, 0x314(r30)
/* 8000E804 0000B764 EC 42 F0 28 */ fsubs f2, f2, f30
/* 8000E808 0000B768 EC 21 E8 28 */ fsubs f1, f1, f29
/* 8000E80C 0000B76C EC 00 F8 28 */ fsubs f0, f0, f31
/* 8000E810 0000B770 D0 41 04 50 */ stfs f2, 0x450(r1)
/* 8000E814 0000B774 D0 01 04 4C */ stfs f0, 0x44c(r1)
/* 8000E818 0000B778 D0 21 04 54 */ stfs f1, 0x454(r1)
/* 8000E81C 0000B77C 48 00 01 A8 */ b lbl_8000E9C4
lbl_8000E820:
/* 8000E820 0000B780 88 1E 03 DD */ lbz r0, 0x3dd(r30)
/* 8000E824 0000B784 28 00 00 00 */ cmplwi r0, 0
/* 8000E828 0000B788 40 82 01 9C */ bne lbl_8000E9C4
/* 8000E82C 0000B78C C0 5E 03 18 */ lfs f2, 0x318(r30)
/* 8000E830 0000B790 C0 3E 03 1C */ lfs f1, 0x31c(r30)
/* 8000E834 0000B794 C0 1E 03 14 */ lfs f0, 0x314(r30)
/* 8000E838 0000B798 EC 42 F0 28 */ fsubs f2, f2, f30
/* 8000E83C 0000B79C EC 21 E8 28 */ fsubs f1, f1, f29
/* 8000E840 0000B7A0 EC 00 F8 28 */ fsubs f0, f0, f31
/* 8000E844 0000B7A4 D0 41 04 50 */ stfs f2, 0x450(r1)
/* 8000E848 0000B7A8 D0 01 04 4C */ stfs f0, 0x44c(r1)
/* 8000E84C 0000B7AC D0 21 04 54 */ stfs f1, 0x454(r1)
/* 8000E850 0000B7B0 48 00 01 74 */ b lbl_8000E9C4
lbl_8000E854:
/* 8000E854 0000B7B4 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8000E858 0000B7B8 2C 00 00 00 */ cmpwi r0, 0
/* 8000E85C 0000B7BC 40 82 01 68 */ bne lbl_8000E9C4
/* 8000E860 0000B7C0 88 1E 03 DC */ lbz r0, 0x3dc(r30)
/* 8000E864 0000B7C4 28 00 00 00 */ cmplwi r0, 0
/* 8000E868 0000B7C8 40 82 01 5C */ bne lbl_8000E9C4
/* 8000E86C 0000B7CC A0 7F 01 C4 */ lhz r3, 0x1c4(r31)
/* 8000E870 0000B7D0 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8000E874 0000B7D4 7C 03 00 40 */ cmplw r3, r0
/* 8000E878 0000B7D8 40 82 01 4C */ bne lbl_8000E9C4
/* 8000E87C 0000B7DC C0 5E 02 94 */ lfs f2, 0x294(r30)
/* 8000E880 0000B7E0 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000E884 0000B7E4 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000E888 0000B7E8 40 81 00 A0 */ ble lbl_8000E928
/* 8000E88C 0000B7EC 80 CD A1 18 */ lwz r6, gpTweakPlayer@sda21(r13)
/* 8000E890 0000B7F0 38 81 00 74 */ addi r4, r1, 0x74
/* 8000E894 0000B7F4 38 6D 80 48 */ addi r3, r13, lbl_805A6C08@sda21
/* 8000E898 0000B7F8 38 AD 80 4C */ addi r5, r13, lbl_805A6C0C@sda21
/* 8000E89C 0000B7FC C0 26 02 88 */ lfs f1, 0x288(r6)
/* 8000E8A0 0000B800 C0 06 02 8C */ lfs f0, 0x28c(r6)
/* 8000E8A4 0000B804 EC 22 08 28 */ fsubs f1, f2, f1
/* 8000E8A8 0000B808 EC 01 00 24 */ fdivs f0, f1, f0
/* 8000E8AC 0000B80C D0 01 00 74 */ stfs f0, 0x74(r1)
/* 8000E8B0 0000B810 4B FF DA 05 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000E8B4 0000B814 C0 43 00 00 */ lfs f2, 0(r3)
/* 8000E8B8 0000B818 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000E8BC 0000B81C D0 41 00 74 */ stfs f2, 0x74(r1)
/* 8000E8C0 0000B820 C0 23 02 90 */ lfs f1, 0x290(r3)
/* 8000E8C4 0000B824 C0 1F 01 C0 */ lfs f0, 0x1c0(r31)
/* 8000E8C8 0000B828 EF 62 00 72 */ fmuls f27, f2, f1
/* 8000E8CC 0000B82C EF 7B 00 2A */ fadds f27, f27, f0
/* 8000E8D0 0000B830 FC 20 D8 90 */ fmr f1, f27
/* 8000E8D4 0000B834 48 38 62 09 */ bl sin
/* 8000E8D8 0000B838 FF 40 08 18 */ frsp f26, f1
/* 8000E8DC 0000B83C FC 20 D8 90 */ fmr f1, f27
/* 8000E8E0 0000B840 48 38 5B 11 */ bl cos
/* 8000E8E4 0000B844 FC 40 08 18 */ frsp f2, f1
/* 8000E8E8 0000B848 C0 22 80 B0 */ lfs f1, lbl_805A9DD0@sda21(r2)
/* 8000E8EC 0000B84C FC 00 D0 50 */ fneg f0, f26
/* 8000E8F0 0000B850 38 61 02 A0 */ addi r3, r1, 0x2a0
/* 8000E8F4 0000B854 D0 21 04 4C */ stfs f1, 0x44c(r1)
/* 8000E8F8 0000B858 38 81 08 78 */ addi r4, r1, 0x878
/* 8000E8FC 0000B85C D0 41 04 50 */ stfs f2, 0x450(r1)
/* 8000E900 0000B860 38 A1 04 4C */ addi r5, r1, 0x44c
/* 8000E904 0000B864 D0 01 04 54 */ stfs f0, 0x454(r1)
/* 8000E908 0000B868 48 30 41 79 */ bl Rotate__12CTransform4fCFRC9CVector3f
/* 8000E90C 0000B86C C0 41 02 A0 */ lfs f2, 0x2a0(r1)
/* 8000E910 0000B870 C0 21 02 A4 */ lfs f1, 0x2a4(r1)
/* 8000E914 0000B874 C0 01 02 A8 */ lfs f0, 0x2a8(r1)
/* 8000E918 0000B878 D0 41 04 4C */ stfs f2, 0x44c(r1)
/* 8000E91C 0000B87C D0 21 04 50 */ stfs f1, 0x450(r1)
/* 8000E920 0000B880 D0 01 04 54 */ stfs f0, 0x454(r1)
/* 8000E924 0000B884 48 00 00 A0 */ b lbl_8000E9C4
lbl_8000E928:
/* 8000E928 0000B888 C0 5E 02 9C */ lfs f2, 0x29c(r30)
/* 8000E92C 0000B88C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000E930 0000B890 40 81 00 94 */ ble lbl_8000E9C4
/* 8000E934 0000B894 80 CD A1 18 */ lwz r6, gpTweakPlayer@sda21(r13)
/* 8000E938 0000B898 38 81 00 70 */ addi r4, r1, 0x70
/* 8000E93C 0000B89C 38 6D 80 50 */ addi r3, r13, lbl_805A6C10@sda21
/* 8000E940 0000B8A0 38 AD 80 54 */ addi r5, r13, lbl_805A6C14@sda21
/* 8000E944 0000B8A4 C0 26 02 94 */ lfs f1, 0x294(r6)
/* 8000E948 0000B8A8 C0 06 02 98 */ lfs f0, 0x298(r6)
/* 8000E94C 0000B8AC EC 22 08 28 */ fsubs f1, f2, f1
/* 8000E950 0000B8B0 EC 01 00 24 */ fdivs f0, f1, f0
/* 8000E954 0000B8B4 D0 01 00 70 */ stfs f0, 0x70(r1)
/* 8000E958 0000B8B8 4B FF D9 5D */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000E95C 0000B8BC C0 23 00 00 */ lfs f1, 0(r3)
/* 8000E960 0000B8C0 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000E964 0000B8C4 D0 21 00 70 */ stfs f1, 0x70(r1)
/* 8000E968 0000B8C8 C0 03 02 9C */ lfs f0, 0x29c(r3)
/* 8000E96C 0000B8CC EF 61 00 32 */ fmuls f27, f1, f0
/* 8000E970 0000B8D0 FC 20 D8 90 */ fmr f1, f27
/* 8000E974 0000B8D4 48 38 61 69 */ bl sin
/* 8000E978 0000B8D8 FF 40 08 18 */ frsp f26, f1
/* 8000E97C 0000B8DC FC 20 D8 90 */ fmr f1, f27
/* 8000E980 0000B8E0 48 38 5A 71 */ bl cos
/* 8000E984 0000B8E4 FC 40 08 18 */ frsp f2, f1
/* 8000E988 0000B8E8 C0 22 80 B0 */ lfs f1, lbl_805A9DD0@sda21(r2)
/* 8000E98C 0000B8EC FC 00 D0 50 */ fneg f0, f26
/* 8000E990 0000B8F0 38 61 02 94 */ addi r3, r1, 0x294
/* 8000E994 0000B8F4 D0 21 04 4C */ stfs f1, 0x44c(r1)
/* 8000E998 0000B8F8 38 81 08 78 */ addi r4, r1, 0x878
/* 8000E99C 0000B8FC D0 41 04 50 */ stfs f2, 0x450(r1)
/* 8000E9A0 0000B900 38 A1 04 4C */ addi r5, r1, 0x44c
/* 8000E9A4 0000B904 D0 01 04 54 */ stfs f0, 0x454(r1)
/* 8000E9A8 0000B908 48 30 40 D9 */ bl Rotate__12CTransform4fCFRC9CVector3f
/* 8000E9AC 0000B90C C0 41 02 94 */ lfs f2, 0x294(r1)
/* 8000E9B0 0000B910 C0 21 02 98 */ lfs f1, 0x298(r1)
/* 8000E9B4 0000B914 C0 01 02 9C */ lfs f0, 0x29c(r1)
/* 8000E9B8 0000B918 D0 41 04 4C */ stfs f2, 0x44c(r1)
/* 8000E9BC 0000B91C D0 21 04 50 */ stfs f1, 0x450(r1)
/* 8000E9C0 0000B920 D0 01 04 54 */ stfs f0, 0x454(r1)
lbl_8000E9C4:
/* 8000E9C4 0000B924 38 61 04 4C */ addi r3, r1, 0x44c
/* 8000E9C8 0000B928 48 30 5D 31 */ bl CanBeNormalized__9CVector3fCFv
/* 8000E9CC 0000B92C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000E9D0 0000B930 41 82 00 0C */ beq lbl_8000E9DC
/* 8000E9D4 0000B934 38 61 04 4C */ addi r3, r1, 0x44c
/* 8000E9D8 0000B938 48 30 5F 21 */ bl Normalize__9CVector3fFv
lbl_8000E9DC:
/* 8000E9DC 0000B93C 3C 80 80 5A */ lis r4, lbl_805A6660@ha
/* 8000E9E0 0000B940 38 61 08 48 */ addi r3, r1, 0x848
/* 8000E9E4 0000B944 38 A4 66 60 */ addi r5, r4, lbl_805A6660@l
/* 8000E9E8 0000B948 38 9F 01 90 */ addi r4, r31, 0x190
/* 8000E9EC 0000B94C C0 65 00 00 */ lfs f3, 0(r5)
/* 8000E9F0 0000B950 C0 45 00 04 */ lfs f2, 4(r5)
/* 8000E9F4 0000B954 C0 25 00 08 */ lfs f1, 8(r5)
/* 8000E9F8 0000B958 C0 05 00 0C */ lfs f0, 0xc(r5)
/* 8000E9FC 0000B95C D0 61 04 14 */ stfs f3, 0x414(r1)
/* 8000EA00 0000B960 D0 41 04 18 */ stfs f2, 0x418(r1)
/* 8000EA04 0000B964 D0 21 04 1C */ stfs f1, 0x41c(r1)
/* 8000EA08 0000B968 D0 01 04 20 */ stfs f0, 0x420(r1)
/* 8000EA0C 0000B96C 48 30 41 69 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8000EA10 0000B970 88 1E 03 DC */ lbz r0, 0x3dc(r30)
/* 8000EA14 0000B974 28 00 00 00 */ cmplwi r0, 0
/* 8000EA18 0000B978 40 82 09 F8 */ bne lbl_8000F410
/* 8000EA1C 0000B97C 80 1E 03 04 */ lwz r0, 0x304(r30)
/* 8000EA20 0000B980 2C 00 00 04 */ cmpwi r0, 4
/* 8000EA24 0000B984 41 82 06 2C */ beq lbl_8000F050
/* 8000EA28 0000B988 40 80 00 14 */ bge lbl_8000EA3C
/* 8000EA2C 0000B98C 2C 00 00 01 */ cmpwi r0, 1
/* 8000EA30 0000B990 41 82 06 20 */ beq lbl_8000F050
/* 8000EA34 0000B994 40 80 04 14 */ bge lbl_8000EE48
/* 8000EA38 0000B998 48 00 00 10 */ b lbl_8000EA48
lbl_8000EA3C:
/* 8000EA3C 0000B99C 2C 00 00 06 */ cmpwi r0, 6
/* 8000EA40 0000B9A0 40 80 00 08 */ bge lbl_8000EA48
/* 8000EA44 0000B9A4 48 00 02 04 */ b lbl_8000EC48
lbl_8000EA48:
/* 8000EA48 0000B9A8 C0 7F 01 B4 */ lfs f3, 0x1b4(r31)
/* 8000EA4C 0000B9AC 38 61 04 08 */ addi r3, r1, 0x408
/* 8000EA50 0000B9B0 C0 5F 01 A4 */ lfs f2, 0x1a4(r31)
/* 8000EA54 0000B9B4 C0 3F 01 94 */ lfs f1, 0x194(r31)
/* 8000EA58 0000B9B8 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000EA5C 0000B9BC D0 61 04 10 */ stfs f3, 0x410(r1)
/* 8000EA60 0000B9C0 D0 21 04 08 */ stfs f1, 0x408(r1)
/* 8000EA64 0000B9C4 D0 41 04 0C */ stfs f2, 0x40c(r1)
/* 8000EA68 0000B9C8 D0 01 04 10 */ stfs f0, 0x410(r1)
/* 8000EA6C 0000B9CC 48 30 5C 8D */ bl CanBeNormalized__9CVector3fCFv
/* 8000EA70 0000B9D0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000EA74 0000B9D4 41 82 00 0C */ beq lbl_8000EA80
/* 8000EA78 0000B9D8 38 61 04 08 */ addi r3, r1, 0x408
/* 8000EA7C 0000B9DC 48 30 5E 7D */ bl Normalize__9CVector3fFv
lbl_8000EA80:
/* 8000EA80 0000B9E0 C0 01 04 54 */ lfs f0, 0x454(r1)
/* 8000EA84 0000B9E4 38 61 03 FC */ addi r3, r1, 0x3fc
/* 8000EA88 0000B9E8 C0 41 04 4C */ lfs f2, 0x44c(r1)
/* 8000EA8C 0000B9EC C0 21 04 50 */ lfs f1, 0x450(r1)
/* 8000EA90 0000B9F0 D0 01 04 04 */ stfs f0, 0x404(r1)
/* 8000EA94 0000B9F4 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000EA98 0000B9F8 D0 41 03 FC */ stfs f2, 0x3fc(r1)
/* 8000EA9C 0000B9FC D0 21 04 00 */ stfs f1, 0x400(r1)
/* 8000EAA0 0000BA00 D0 01 04 04 */ stfs f0, 0x404(r1)
/* 8000EAA4 0000BA04 48 30 5C 55 */ bl CanBeNormalized__9CVector3fCFv
/* 8000EAA8 0000BA08 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000EAAC 0000BA0C 41 82 00 0C */ beq lbl_8000EAB8
/* 8000EAB0 0000BA10 38 61 03 FC */ addi r3, r1, 0x3fc
/* 8000EAB4 0000BA14 48 30 5E 45 */ bl Normalize__9CVector3fFv
lbl_8000EAB8:
/* 8000EAB8 0000BA18 C0 02 80 D0 */ lfs f0, lbl_805A9DF0@sda21(r2)
/* 8000EABC 0000BA1C 38 61 02 6C */ addi r3, r1, 0x26c
/* 8000EAC0 0000BA20 38 81 03 FC */ addi r4, r1, 0x3fc
/* 8000EAC4 0000BA24 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 8000EAC8 0000BA28 48 30 53 09 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EACC 0000BA2C 7C 7C 1B 78 */ mr r28, r3
/* 8000EAD0 0000BA30 38 61 02 78 */ addi r3, r1, 0x278
/* 8000EAD4 0000BA34 38 81 04 08 */ addi r4, r1, 0x408
/* 8000EAD8 0000BA38 48 30 52 F9 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EADC 0000BA3C 7C 64 1B 78 */ mr r4, r3
/* 8000EAE0 0000BA40 7F 85 E3 78 */ mr r5, r28
/* 8000EAE4 0000BA44 38 61 02 84 */ addi r3, r1, 0x284
/* 8000EAE8 0000BA48 38 C1 00 4C */ addi r6, r1, 0x4c
/* 8000EAEC 0000BA4C 48 30 2B A9 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000EAF0 0000BA50 C0 61 02 84 */ lfs f3, 0x284(r1)
/* 8000EAF4 0000BA54 38 61 07 88 */ addi r3, r1, 0x788
/* 8000EAF8 0000BA58 C0 41 02 88 */ lfs f2, 0x288(r1)
/* 8000EAFC 0000BA5C 38 9F 01 90 */ addi r4, r31, 0x190
/* 8000EB00 0000BA60 C0 21 02 8C */ lfs f1, 0x28c(r1)
/* 8000EB04 0000BA64 C0 01 02 90 */ lfs f0, 0x290(r1)
/* 8000EB08 0000BA68 D0 61 03 EC */ stfs f3, 0x3ec(r1)
/* 8000EB0C 0000BA6C D0 41 03 F0 */ stfs f2, 0x3f0(r1)
/* 8000EB10 0000BA70 D0 21 03 F4 */ stfs f1, 0x3f4(r1)
/* 8000EB14 0000BA74 D0 01 03 F8 */ stfs f0, 0x3f8(r1)
/* 8000EB18 0000BA78 48 30 41 29 */ bl GetRotation__12CTransform4fCFv
/* 8000EB1C 0000BA7C 38 61 07 B8 */ addi r3, r1, 0x7b8
/* 8000EB20 0000BA80 38 81 03 EC */ addi r4, r1, 0x3ec
/* 8000EB24 0000BA84 48 30 34 95 */ bl BuildTransform4f__11CQuaternionCFv
/* 8000EB28 0000BA88 38 61 07 E8 */ addi r3, r1, 0x7e8
/* 8000EB2C 0000BA8C 38 81 07 B8 */ addi r4, r1, 0x7b8
/* 8000EB30 0000BA90 38 A1 07 88 */ addi r5, r1, 0x788
/* 8000EB34 0000BA94 48 30 3E 1D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8000EB38 0000BA98 38 61 08 48 */ addi r3, r1, 0x848
/* 8000EB3C 0000BA9C 38 81 07 E8 */ addi r4, r1, 0x7e8
/* 8000EB40 0000BAA0 48 30 40 01 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000EB44 0000BAA4 C0 41 08 6C */ lfs f2, 0x86c(r1)
/* 8000EB48 0000BAA8 38 61 03 E0 */ addi r3, r1, 0x3e0
/* 8000EB4C 0000BAAC C0 21 08 4C */ lfs f1, 0x84c(r1)
/* 8000EB50 0000BAB0 C0 01 08 5C */ lfs f0, 0x85c(r1)
/* 8000EB54 0000BAB4 D0 21 03 E0 */ stfs f1, 0x3e0(r1)
/* 8000EB58 0000BAB8 D0 01 03 E4 */ stfs f0, 0x3e4(r1)
/* 8000EB5C 0000BABC D0 41 03 E8 */ stfs f2, 0x3e8(r1)
/* 8000EB60 0000BAC0 48 30 5B 99 */ bl CanBeNormalized__9CVector3fCFv
/* 8000EB64 0000BAC4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000EB68 0000BAC8 41 82 00 0C */ beq lbl_8000EB74
/* 8000EB6C 0000BACC 38 61 03 E0 */ addi r3, r1, 0x3e0
/* 8000EB70 0000BAD0 48 30 5D 89 */ bl Normalize__9CVector3fFv
lbl_8000EB74:
/* 8000EB74 0000BAD4 C0 21 03 E4 */ lfs f1, 0x3e4(r1)
/* 8000EB78 0000BAD8 C0 01 04 50 */ lfs f0, 0x450(r1)
/* 8000EB7C 0000BADC 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000EB80 0000BAE0 EC 01 00 32 */ fmuls f0, f1, f0
/* 8000EB84 0000BAE4 C0 41 03 E0 */ lfs f2, 0x3e0(r1)
/* 8000EB88 0000BAE8 C0 21 04 4C */ lfs f1, 0x44c(r1)
/* 8000EB8C 0000BAEC C0 83 02 80 */ lfs f4, 0x280(r3)
/* 8000EB90 0000BAF0 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000EB94 0000BAF4 C0 61 03 E8 */ lfs f3, 0x3e8(r1)
/* 8000EB98 0000BAF8 C0 41 04 54 */ lfs f2, 0x454(r1)
/* 8000EB9C 0000BAFC EF 9C 01 32 */ fmuls f28, f28, f4
/* 8000EBA0 0000BB00 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000EBA4 0000BB04 EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 8000EBA8 0000BB08 FC 40 0A 10 */ fabs f2, f1
/* 8000EBAC 0000BB0C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000EBB0 0000BB10 40 81 00 14 */ ble lbl_8000EBC4
/* 8000EBB4 0000BB14 C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000EBB8 0000BB18 C0 42 80 B4 */ lfs f2, lbl_805A9DD4@sda21(r2)
/* 8000EBBC 0000BB1C FC 01 00 AE */ fsel f0, f1, f2, f0
/* 8000EBC0 0000BB20 EC 22 00 32 */ fmuls f1, f2, f0
lbl_8000EBC4:
/* 8000EBC4 0000BB24 48 38 60 69 */ bl acos
/* 8000EBC8 0000BB28 FC 00 08 18 */ frsp f0, f1
/* 8000EBCC 0000BB2C 38 81 00 6C */ addi r4, r1, 0x6c
/* 8000EBD0 0000BB30 38 6D 80 58 */ addi r3, r13, lbl_805A6C18@sda21
/* 8000EBD4 0000BB34 38 AD 80 5C */ addi r5, r13, lbl_805A6C1C@sda21
/* 8000EBD8 0000BB38 EC 00 E0 24 */ fdivs f0, f0, f28
/* 8000EBDC 0000BB3C D0 01 00 6C */ stfs f0, 0x6c(r1)
/* 8000EBE0 0000BB40 4B FF D6 D5 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000EBE4 0000BB44 C0 03 00 00 */ lfs f0, 0(r3)
/* 8000EBE8 0000BB48 38 61 02 44 */ addi r3, r1, 0x244
/* 8000EBEC 0000BB4C 38 81 04 4C */ addi r4, r1, 0x44c
/* 8000EBF0 0000BB50 EC 3C 00 32 */ fmuls f1, f28, f0
/* 8000EBF4 0000BB54 D0 01 00 6C */ stfs f0, 0x6c(r1)
/* 8000EBF8 0000BB58 D0 21 00 48 */ stfs f1, 0x48(r1)
/* 8000EBFC 0000BB5C 48 30 51 D5 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EC00 0000BB60 7C 7C 1B 78 */ mr r28, r3
/* 8000EC04 0000BB64 38 61 02 50 */ addi r3, r1, 0x250
/* 8000EC08 0000BB68 38 81 03 E0 */ addi r4, r1, 0x3e0
/* 8000EC0C 0000BB6C 48 30 51 C5 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EC10 0000BB70 7C 64 1B 78 */ mr r4, r3
/* 8000EC14 0000BB74 7F 85 E3 78 */ mr r5, r28
/* 8000EC18 0000BB78 38 61 02 5C */ addi r3, r1, 0x25c
/* 8000EC1C 0000BB7C 38 C1 00 48 */ addi r6, r1, 0x48
/* 8000EC20 0000BB80 48 30 2A 75 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000EC24 0000BB84 C0 01 02 5C */ lfs f0, 0x25c(r1)
/* 8000EC28 0000BB88 80 81 02 60 */ lwz r4, 0x260(r1)
/* 8000EC2C 0000BB8C 80 61 02 64 */ lwz r3, 0x264(r1)
/* 8000EC30 0000BB90 80 01 02 68 */ lwz r0, 0x268(r1)
/* 8000EC34 0000BB94 D0 01 04 14 */ stfs f0, 0x414(r1)
/* 8000EC38 0000BB98 90 81 04 18 */ stw r4, 0x418(r1)
/* 8000EC3C 0000BB9C 90 61 04 1C */ stw r3, 0x41c(r1)
/* 8000EC40 0000BBA0 90 01 04 20 */ stw r0, 0x420(r1)
/* 8000EC44 0000BBA4 48 00 09 D4 */ b lbl_8000F618
lbl_8000EC48:
/* 8000EC48 0000BBA8 C0 7F 01 B4 */ lfs f3, 0x1b4(r31)
/* 8000EC4C 0000BBAC 38 61 03 D4 */ addi r3, r1, 0x3d4
/* 8000EC50 0000BBB0 C0 5F 01 A4 */ lfs f2, 0x1a4(r31)
/* 8000EC54 0000BBB4 C0 3F 01 94 */ lfs f1, 0x194(r31)
/* 8000EC58 0000BBB8 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000EC5C 0000BBBC D0 61 03 DC */ stfs f3, 0x3dc(r1)
/* 8000EC60 0000BBC0 D0 21 03 D4 */ stfs f1, 0x3d4(r1)
/* 8000EC64 0000BBC4 D0 41 03 D8 */ stfs f2, 0x3d8(r1)
/* 8000EC68 0000BBC8 D0 01 03 DC */ stfs f0, 0x3dc(r1)
/* 8000EC6C 0000BBCC 48 30 5A 8D */ bl CanBeNormalized__9CVector3fCFv
/* 8000EC70 0000BBD0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000EC74 0000BBD4 41 82 00 0C */ beq lbl_8000EC80
/* 8000EC78 0000BBD8 38 61 03 D4 */ addi r3, r1, 0x3d4
/* 8000EC7C 0000BBDC 48 30 5C 7D */ bl Normalize__9CVector3fFv
lbl_8000EC80:
/* 8000EC80 0000BBE0 C0 01 04 54 */ lfs f0, 0x454(r1)
/* 8000EC84 0000BBE4 38 61 03 C8 */ addi r3, r1, 0x3c8
/* 8000EC88 0000BBE8 C0 41 04 4C */ lfs f2, 0x44c(r1)
/* 8000EC8C 0000BBEC C0 21 04 50 */ lfs f1, 0x450(r1)
/* 8000EC90 0000BBF0 D0 01 03 D0 */ stfs f0, 0x3d0(r1)
/* 8000EC94 0000BBF4 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000EC98 0000BBF8 D0 41 03 C8 */ stfs f2, 0x3c8(r1)
/* 8000EC9C 0000BBFC D0 21 03 CC */ stfs f1, 0x3cc(r1)
/* 8000ECA0 0000BC00 D0 01 03 D0 */ stfs f0, 0x3d0(r1)
/* 8000ECA4 0000BC04 48 30 5A 55 */ bl CanBeNormalized__9CVector3fCFv
/* 8000ECA8 0000BC08 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000ECAC 0000BC0C 41 82 00 0C */ beq lbl_8000ECB8
/* 8000ECB0 0000BC10 38 61 03 C8 */ addi r3, r1, 0x3c8
/* 8000ECB4 0000BC14 48 30 5C 45 */ bl Normalize__9CVector3fFv
lbl_8000ECB8:
/* 8000ECB8 0000BC18 C0 02 80 D0 */ lfs f0, lbl_805A9DF0@sda21(r2)
/* 8000ECBC 0000BC1C 38 61 02 1C */ addi r3, r1, 0x21c
/* 8000ECC0 0000BC20 38 81 03 C8 */ addi r4, r1, 0x3c8
/* 8000ECC4 0000BC24 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8000ECC8 0000BC28 48 30 51 09 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000ECCC 0000BC2C 7C 7C 1B 78 */ mr r28, r3
/* 8000ECD0 0000BC30 38 61 02 28 */ addi r3, r1, 0x228
/* 8000ECD4 0000BC34 38 81 03 D4 */ addi r4, r1, 0x3d4
/* 8000ECD8 0000BC38 48 30 50 F9 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000ECDC 0000BC3C 7C 64 1B 78 */ mr r4, r3
/* 8000ECE0 0000BC40 7F 85 E3 78 */ mr r5, r28
/* 8000ECE4 0000BC44 38 61 02 34 */ addi r3, r1, 0x234
/* 8000ECE8 0000BC48 38 C1 00 44 */ addi r6, r1, 0x44
/* 8000ECEC 0000BC4C 48 30 29 A9 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000ECF0 0000BC50 C0 61 02 34 */ lfs f3, 0x234(r1)
/* 8000ECF4 0000BC54 38 61 06 F8 */ addi r3, r1, 0x6f8
/* 8000ECF8 0000BC58 C0 41 02 38 */ lfs f2, 0x238(r1)
/* 8000ECFC 0000BC5C 38 9F 01 90 */ addi r4, r31, 0x190
/* 8000ED00 0000BC60 C0 21 02 3C */ lfs f1, 0x23c(r1)
/* 8000ED04 0000BC64 C0 01 02 40 */ lfs f0, 0x240(r1)
/* 8000ED08 0000BC68 D0 61 03 B8 */ stfs f3, 0x3b8(r1)
/* 8000ED0C 0000BC6C D0 41 03 BC */ stfs f2, 0x3bc(r1)
/* 8000ED10 0000BC70 D0 21 03 C0 */ stfs f1, 0x3c0(r1)
/* 8000ED14 0000BC74 D0 01 03 C4 */ stfs f0, 0x3c4(r1)
/* 8000ED18 0000BC78 48 30 3F 29 */ bl GetRotation__12CTransform4fCFv
/* 8000ED1C 0000BC7C 38 61 07 28 */ addi r3, r1, 0x728
/* 8000ED20 0000BC80 38 81 03 B8 */ addi r4, r1, 0x3b8
/* 8000ED24 0000BC84 48 30 32 95 */ bl BuildTransform4f__11CQuaternionCFv
/* 8000ED28 0000BC88 38 61 07 58 */ addi r3, r1, 0x758
/* 8000ED2C 0000BC8C 38 81 07 28 */ addi r4, r1, 0x728
/* 8000ED30 0000BC90 38 A1 06 F8 */ addi r5, r1, 0x6f8
/* 8000ED34 0000BC94 48 30 3C 1D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8000ED38 0000BC98 38 61 08 48 */ addi r3, r1, 0x848
/* 8000ED3C 0000BC9C 38 81 07 58 */ addi r4, r1, 0x758
/* 8000ED40 0000BCA0 48 30 3E 01 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000ED44 0000BCA4 C0 41 08 6C */ lfs f2, 0x86c(r1)
/* 8000ED48 0000BCA8 38 61 03 AC */ addi r3, r1, 0x3ac
/* 8000ED4C 0000BCAC C0 21 08 4C */ lfs f1, 0x84c(r1)
/* 8000ED50 0000BCB0 C0 01 08 5C */ lfs f0, 0x85c(r1)
/* 8000ED54 0000BCB4 D0 21 03 AC */ stfs f1, 0x3ac(r1)
/* 8000ED58 0000BCB8 D0 01 03 B0 */ stfs f0, 0x3b0(r1)
/* 8000ED5C 0000BCBC D0 41 03 B4 */ stfs f2, 0x3b4(r1)
/* 8000ED60 0000BCC0 48 30 59 99 */ bl CanBeNormalized__9CVector3fCFv
/* 8000ED64 0000BCC4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000ED68 0000BCC8 41 82 00 0C */ beq lbl_8000ED74
/* 8000ED6C 0000BCCC 38 61 03 AC */ addi r3, r1, 0x3ac
/* 8000ED70 0000BCD0 48 30 5B 89 */ bl Normalize__9CVector3fFv
lbl_8000ED74:
/* 8000ED74 0000BCD4 C0 21 03 B0 */ lfs f1, 0x3b0(r1)
/* 8000ED78 0000BCD8 C0 01 04 50 */ lfs f0, 0x450(r1)
/* 8000ED7C 0000BCDC 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000ED80 0000BCE0 EC 01 00 32 */ fmuls f0, f1, f0
/* 8000ED84 0000BCE4 C0 41 03 AC */ lfs f2, 0x3ac(r1)
/* 8000ED88 0000BCE8 C0 21 04 4C */ lfs f1, 0x44c(r1)
/* 8000ED8C 0000BCEC C0 83 02 B0 */ lfs f4, 0x2b0(r3)
/* 8000ED90 0000BCF0 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000ED94 0000BCF4 C0 61 03 B4 */ lfs f3, 0x3b4(r1)
/* 8000ED98 0000BCF8 C0 41 04 54 */ lfs f2, 0x454(r1)
/* 8000ED9C 0000BCFC EF 9C 01 32 */ fmuls f28, f28, f4
/* 8000EDA0 0000BD00 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000EDA4 0000BD04 EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 8000EDA8 0000BD08 FC 40 0A 10 */ fabs f2, f1
/* 8000EDAC 0000BD0C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000EDB0 0000BD10 40 81 00 14 */ ble lbl_8000EDC4
/* 8000EDB4 0000BD14 C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000EDB8 0000BD18 C0 42 80 B4 */ lfs f2, lbl_805A9DD4@sda21(r2)
/* 8000EDBC 0000BD1C FC 01 00 AE */ fsel f0, f1, f2, f0
/* 8000EDC0 0000BD20 EC 22 00 32 */ fmuls f1, f2, f0
lbl_8000EDC4:
/* 8000EDC4 0000BD24 48 38 5E 69 */ bl acos
/* 8000EDC8 0000BD28 FC 00 08 18 */ frsp f0, f1
/* 8000EDCC 0000BD2C 38 81 00 68 */ addi r4, r1, 0x68
/* 8000EDD0 0000BD30 38 6D 80 60 */ addi r3, r13, lbl_805A6C20@sda21
/* 8000EDD4 0000BD34 38 AD 80 64 */ addi r5, r13, lbl_805A6C24@sda21
/* 8000EDD8 0000BD38 EC 00 E0 24 */ fdivs f0, f0, f28
/* 8000EDDC 0000BD3C D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8000EDE0 0000BD40 4B FF D4 D5 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000EDE4 0000BD44 C0 03 00 00 */ lfs f0, 0(r3)
/* 8000EDE8 0000BD48 38 61 01 F4 */ addi r3, r1, 0x1f4
/* 8000EDEC 0000BD4C 38 81 04 4C */ addi r4, r1, 0x44c
/* 8000EDF0 0000BD50 EC 3C 00 32 */ fmuls f1, f28, f0
/* 8000EDF4 0000BD54 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8000EDF8 0000BD58 D0 21 00 40 */ stfs f1, 0x40(r1)
/* 8000EDFC 0000BD5C 48 30 4F D5 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EE00 0000BD60 7C 7C 1B 78 */ mr r28, r3
/* 8000EE04 0000BD64 38 61 02 00 */ addi r3, r1, 0x200
/* 8000EE08 0000BD68 38 81 03 AC */ addi r4, r1, 0x3ac
/* 8000EE0C 0000BD6C 48 30 4F C5 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EE10 0000BD70 7C 64 1B 78 */ mr r4, r3
/* 8000EE14 0000BD74 7F 85 E3 78 */ mr r5, r28
/* 8000EE18 0000BD78 38 61 02 0C */ addi r3, r1, 0x20c
/* 8000EE1C 0000BD7C 38 C1 00 40 */ addi r6, r1, 0x40
/* 8000EE20 0000BD80 48 30 28 75 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000EE24 0000BD84 C0 01 02 0C */ lfs f0, 0x20c(r1)
/* 8000EE28 0000BD88 80 81 02 10 */ lwz r4, 0x210(r1)
/* 8000EE2C 0000BD8C 80 61 02 14 */ lwz r3, 0x214(r1)
/* 8000EE30 0000BD90 80 01 02 18 */ lwz r0, 0x218(r1)
/* 8000EE34 0000BD94 D0 01 04 14 */ stfs f0, 0x414(r1)
/* 8000EE38 0000BD98 90 81 04 18 */ stw r4, 0x418(r1)
/* 8000EE3C 0000BD9C 90 61 04 1C */ stw r3, 0x41c(r1)
/* 8000EE40 0000BDA0 90 01 04 20 */ stw r0, 0x420(r1)
/* 8000EE44 0000BDA4 48 00 07 D4 */ b lbl_8000F618
lbl_8000EE48:
/* 8000EE48 0000BDA8 C0 7F 01 B4 */ lfs f3, 0x1b4(r31)
/* 8000EE4C 0000BDAC 38 61 03 A0 */ addi r3, r1, 0x3a0
/* 8000EE50 0000BDB0 C0 5F 01 A4 */ lfs f2, 0x1a4(r31)
/* 8000EE54 0000BDB4 C0 3F 01 94 */ lfs f1, 0x194(r31)
/* 8000EE58 0000BDB8 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000EE5C 0000BDBC D0 61 03 A8 */ stfs f3, 0x3a8(r1)
/* 8000EE60 0000BDC0 D0 21 03 A0 */ stfs f1, 0x3a0(r1)
/* 8000EE64 0000BDC4 D0 41 03 A4 */ stfs f2, 0x3a4(r1)
/* 8000EE68 0000BDC8 D0 01 03 A8 */ stfs f0, 0x3a8(r1)
/* 8000EE6C 0000BDCC 48 30 58 8D */ bl CanBeNormalized__9CVector3fCFv
/* 8000EE70 0000BDD0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000EE74 0000BDD4 41 82 00 0C */ beq lbl_8000EE80
/* 8000EE78 0000BDD8 38 61 03 A0 */ addi r3, r1, 0x3a0
/* 8000EE7C 0000BDDC 48 30 5A 7D */ bl Normalize__9CVector3fFv
lbl_8000EE80:
/* 8000EE80 0000BDE0 C0 01 04 54 */ lfs f0, 0x454(r1)
/* 8000EE84 0000BDE4 38 61 03 94 */ addi r3, r1, 0x394
/* 8000EE88 0000BDE8 C0 41 04 4C */ lfs f2, 0x44c(r1)
/* 8000EE8C 0000BDEC C0 21 04 50 */ lfs f1, 0x450(r1)
/* 8000EE90 0000BDF0 D0 01 03 9C */ stfs f0, 0x39c(r1)
/* 8000EE94 0000BDF4 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000EE98 0000BDF8 D0 41 03 94 */ stfs f2, 0x394(r1)
/* 8000EE9C 0000BDFC D0 21 03 98 */ stfs f1, 0x398(r1)
/* 8000EEA0 0000BE00 D0 01 03 9C */ stfs f0, 0x39c(r1)
/* 8000EEA4 0000BE04 48 30 58 55 */ bl CanBeNormalized__9CVector3fCFv
/* 8000EEA8 0000BE08 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000EEAC 0000BE0C 41 82 00 0C */ beq lbl_8000EEB8
/* 8000EEB0 0000BE10 38 61 03 94 */ addi r3, r1, 0x394
/* 8000EEB4 0000BE14 48 30 5A 45 */ bl Normalize__9CVector3fFv
lbl_8000EEB8:
/* 8000EEB8 0000BE18 C0 02 80 D0 */ lfs f0, lbl_805A9DF0@sda21(r2)
/* 8000EEBC 0000BE1C 38 61 01 CC */ addi r3, r1, 0x1cc
/* 8000EEC0 0000BE20 38 81 03 94 */ addi r4, r1, 0x394
/* 8000EEC4 0000BE24 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8000EEC8 0000BE28 48 30 4F 09 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EECC 0000BE2C 7C 7C 1B 78 */ mr r28, r3
/* 8000EED0 0000BE30 38 61 01 D8 */ addi r3, r1, 0x1d8
/* 8000EED4 0000BE34 38 81 03 A0 */ addi r4, r1, 0x3a0
/* 8000EED8 0000BE38 48 30 4E F9 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000EEDC 0000BE3C 7C 64 1B 78 */ mr r4, r3
/* 8000EEE0 0000BE40 7F 85 E3 78 */ mr r5, r28
/* 8000EEE4 0000BE44 38 61 01 E4 */ addi r3, r1, 0x1e4
/* 8000EEE8 0000BE48 38 C1 00 3C */ addi r6, r1, 0x3c
/* 8000EEEC 0000BE4C 48 30 27 A9 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000EEF0 0000BE50 C0 61 01 E4 */ lfs f3, 0x1e4(r1)
/* 8000EEF4 0000BE54 38 61 06 68 */ addi r3, r1, 0x668
/* 8000EEF8 0000BE58 C0 41 01 E8 */ lfs f2, 0x1e8(r1)
/* 8000EEFC 0000BE5C 38 9F 01 90 */ addi r4, r31, 0x190
/* 8000EF00 0000BE60 C0 21 01 EC */ lfs f1, 0x1ec(r1)
/* 8000EF04 0000BE64 C0 01 01 F0 */ lfs f0, 0x1f0(r1)
/* 8000EF08 0000BE68 D0 61 03 84 */ stfs f3, 0x384(r1)
/* 8000EF0C 0000BE6C D0 41 03 88 */ stfs f2, 0x388(r1)
/* 8000EF10 0000BE70 D0 21 03 8C */ stfs f1, 0x38c(r1)
/* 8000EF14 0000BE74 D0 01 03 90 */ stfs f0, 0x390(r1)
/* 8000EF18 0000BE78 48 30 3D 29 */ bl GetRotation__12CTransform4fCFv
/* 8000EF1C 0000BE7C 38 61 06 98 */ addi r3, r1, 0x698
/* 8000EF20 0000BE80 38 81 03 84 */ addi r4, r1, 0x384
/* 8000EF24 0000BE84 48 30 30 95 */ bl BuildTransform4f__11CQuaternionCFv
/* 8000EF28 0000BE88 38 61 06 C8 */ addi r3, r1, 0x6c8
/* 8000EF2C 0000BE8C 38 81 06 98 */ addi r4, r1, 0x698
/* 8000EF30 0000BE90 38 A1 06 68 */ addi r5, r1, 0x668
/* 8000EF34 0000BE94 48 30 3A 1D */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8000EF38 0000BE98 38 61 08 48 */ addi r3, r1, 0x848
/* 8000EF3C 0000BE9C 38 81 06 C8 */ addi r4, r1, 0x6c8
/* 8000EF40 0000BEA0 48 30 3C 01 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000EF44 0000BEA4 C0 41 08 6C */ lfs f2, 0x86c(r1)
/* 8000EF48 0000BEA8 38 61 03 78 */ addi r3, r1, 0x378
/* 8000EF4C 0000BEAC C0 21 08 4C */ lfs f1, 0x84c(r1)
/* 8000EF50 0000BEB0 C0 01 08 5C */ lfs f0, 0x85c(r1)
/* 8000EF54 0000BEB4 D0 21 03 78 */ stfs f1, 0x378(r1)
/* 8000EF58 0000BEB8 D0 01 03 7C */ stfs f0, 0x37c(r1)
/* 8000EF5C 0000BEBC D0 41 03 80 */ stfs f2, 0x380(r1)
/* 8000EF60 0000BEC0 48 30 57 99 */ bl CanBeNormalized__9CVector3fCFv
/* 8000EF64 0000BEC4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000EF68 0000BEC8 41 82 00 0C */ beq lbl_8000EF74
/* 8000EF6C 0000BECC 38 61 03 78 */ addi r3, r1, 0x378
/* 8000EF70 0000BED0 48 30 59 89 */ bl Normalize__9CVector3fFv
lbl_8000EF74:
/* 8000EF74 0000BED4 C0 21 03 7C */ lfs f1, 0x37c(r1)
/* 8000EF78 0000BED8 C0 01 04 50 */ lfs f0, 0x450(r1)
/* 8000EF7C 0000BEDC 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000EF80 0000BEE0 EC 01 00 32 */ fmuls f0, f1, f0
/* 8000EF84 0000BEE4 C0 41 03 78 */ lfs f2, 0x378(r1)
/* 8000EF88 0000BEE8 C0 21 04 4C */ lfs f1, 0x44c(r1)
/* 8000EF8C 0000BEEC C0 63 01 84 */ lfs f3, 0x184(r3)
/* 8000EF90 0000BEF0 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8000EF94 0000BEF4 C0 41 03 80 */ lfs f2, 0x380(r1)
/* 8000EF98 0000BEF8 C0 21 04 54 */ lfs f1, 0x454(r1)
/* 8000EF9C 0000BEFC EF 5C 00 F2 */ fmuls f26, f28, f3
/* 8000EFA0 0000BF00 C0 62 80 D8 */ lfs f3, lbl_805A9DF8@sda21(r2)
/* 8000EFA4 0000BF04 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000EFA8 0000BF08 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000EFAC 0000BF0C EF 5A 00 F2 */ fmuls f26, f26, f3
/* 8000EFB0 0000BF10 FC 40 0A 10 */ fabs f2, f1
/* 8000EFB4 0000BF14 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000EFB8 0000BF18 40 81 00 14 */ ble lbl_8000EFCC
/* 8000EFBC 0000BF1C C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000EFC0 0000BF20 C0 42 80 B4 */ lfs f2, lbl_805A9DD4@sda21(r2)
/* 8000EFC4 0000BF24 FC 01 00 AE */ fsel f0, f1, f2, f0
/* 8000EFC8 0000BF28 EC 22 00 32 */ fmuls f1, f2, f0
lbl_8000EFCC:
/* 8000EFCC 0000BF2C 48 38 5C 61 */ bl acos
/* 8000EFD0 0000BF30 FC 00 08 18 */ frsp f0, f1
/* 8000EFD4 0000BF34 38 81 00 64 */ addi r4, r1, 0x64
/* 8000EFD8 0000BF38 38 6D 80 68 */ addi r3, r13, lbl_805A6C28@sda21
/* 8000EFDC 0000BF3C 38 AD 80 6C */ addi r5, r13, lbl_805A6C2C@sda21
/* 8000EFE0 0000BF40 EC 00 D0 24 */ fdivs f0, f0, f26
/* 8000EFE4 0000BF44 D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8000EFE8 0000BF48 4B FF D2 CD */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000EFEC 0000BF4C C0 03 00 00 */ lfs f0, 0(r3)
/* 8000EFF0 0000BF50 38 61 01 A4 */ addi r3, r1, 0x1a4
/* 8000EFF4 0000BF54 38 81 04 4C */ addi r4, r1, 0x44c
/* 8000EFF8 0000BF58 EC 3A 00 32 */ fmuls f1, f26, f0
/* 8000EFFC 0000BF5C D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8000F000 0000BF60 D0 21 00 38 */ stfs f1, 0x38(r1)
/* 8000F004 0000BF64 48 30 4D CD */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F008 0000BF68 7C 7C 1B 78 */ mr r28, r3
/* 8000F00C 0000BF6C 38 61 01 B0 */ addi r3, r1, 0x1b0
/* 8000F010 0000BF70 38 81 03 78 */ addi r4, r1, 0x378
/* 8000F014 0000BF74 48 30 4D BD */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F018 0000BF78 7C 64 1B 78 */ mr r4, r3
/* 8000F01C 0000BF7C 7F 85 E3 78 */ mr r5, r28
/* 8000F020 0000BF80 38 61 01 BC */ addi r3, r1, 0x1bc
/* 8000F024 0000BF84 38 C1 00 38 */ addi r6, r1, 0x38
/* 8000F028 0000BF88 48 30 26 6D */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000F02C 0000BF8C C0 01 01 BC */ lfs f0, 0x1bc(r1)
/* 8000F030 0000BF90 80 81 01 C0 */ lwz r4, 0x1c0(r1)
/* 8000F034 0000BF94 80 61 01 C4 */ lwz r3, 0x1c4(r1)
/* 8000F038 0000BF98 80 01 01 C8 */ lwz r0, 0x1c8(r1)
/* 8000F03C 0000BF9C D0 01 04 14 */ stfs f0, 0x414(r1)
/* 8000F040 0000BFA0 90 81 04 18 */ stw r4, 0x418(r1)
/* 8000F044 0000BFA4 90 61 04 1C */ stw r3, 0x41c(r1)
/* 8000F048 0000BFA8 90 01 04 20 */ stw r0, 0x420(r1)
/* 8000F04C 0000BFAC 48 00 05 CC */ b lbl_8000F618
lbl_8000F050:
/* 8000F050 0000BFB0 C0 5F 01 B4 */ lfs f2, 0x1b4(r31)
/* 8000F054 0000BFB4 38 61 03 6C */ addi r3, r1, 0x36c
/* 8000F058 0000BFB8 C0 3F 01 A4 */ lfs f1, 0x1a4(r31)
/* 8000F05C 0000BFBC C0 1F 01 94 */ lfs f0, 0x194(r31)
/* 8000F060 0000BFC0 D0 01 03 6C */ stfs f0, 0x36c(r1)
/* 8000F064 0000BFC4 D0 21 03 70 */ stfs f1, 0x370(r1)
/* 8000F068 0000BFC8 D0 41 03 74 */ stfs f2, 0x374(r1)
/* 8000F06C 0000BFCC 48 30 56 8D */ bl CanBeNormalized__9CVector3fCFv
/* 8000F070 0000BFD0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F074 0000BFD4 41 82 00 0C */ beq lbl_8000F080
/* 8000F078 0000BFD8 38 61 03 6C */ addi r3, r1, 0x36c
/* 8000F07C 0000BFDC 48 30 58 7D */ bl Normalize__9CVector3fFv
lbl_8000F080:
/* 8000F080 0000BFE0 C0 21 03 70 */ lfs f1, 0x370(r1)
/* 8000F084 0000BFE4 C0 01 04 50 */ lfs f0, 0x450(r1)
/* 8000F088 0000BFE8 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000F08C 0000BFEC EC 01 00 32 */ fmuls f0, f1, f0
/* 8000F090 0000BFF0 C0 41 03 6C */ lfs f2, 0x36c(r1)
/* 8000F094 0000BFF4 C0 21 04 4C */ lfs f1, 0x44c(r1)
/* 8000F098 0000BFF8 C0 83 01 84 */ lfs f4, 0x184(r3)
/* 8000F09C 0000BFFC EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000F0A0 0000C000 C0 61 03 74 */ lfs f3, 0x374(r1)
/* 8000F0A4 0000C004 C0 41 04 54 */ lfs f2, 0x454(r1)
/* 8000F0A8 0000C008 EF 7C 01 32 */ fmuls f27, f28, f4
/* 8000F0AC 0000C00C C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000F0B0 0000C010 EF 43 08 BA */ fmadds f26, f3, f2, f1
/* 8000F0B4 0000C014 FC 20 D2 10 */ fabs f1, f26
/* 8000F0B8 0000C018 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000F0BC 0000C01C 40 81 00 14 */ ble lbl_8000F0D0
/* 8000F0C0 0000C020 C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000F0C4 0000C024 C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000F0C8 0000C028 FC 1A 00 6E */ fsel f0, f26, f1, f0
/* 8000F0CC 0000C02C EF 41 00 32 */ fmuls f26, f1, f0
lbl_8000F0D0:
/* 8000F0D0 0000C030 FC 20 D0 90 */ fmr f1, f26
/* 8000F0D4 0000C034 48 38 5B 59 */ bl acos
/* 8000F0D8 0000C038 FC 00 08 18 */ frsp f0, f1
/* 8000F0DC 0000C03C 38 81 00 60 */ addi r4, r1, 0x60
/* 8000F0E0 0000C040 38 6D 80 70 */ addi r3, r13, lbl_805A6C30@sda21
/* 8000F0E4 0000C044 38 AD 80 74 */ addi r5, r13, lbl_805A6C34@sda21
/* 8000F0E8 0000C048 EC 00 D8 24 */ fdivs f0, f0, f27
/* 8000F0EC 0000C04C D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8000F0F0 0000C050 4B FF D1 C5 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000F0F4 0000C054 C0 02 80 DC */ lfs f0, lbl_805A9DFC@sda21(r2)
/* 8000F0F8 0000C058 C0 23 00 00 */ lfs f1, 0(r3)
/* 8000F0FC 0000C05C FC 1A 00 40 */ fcmpo cr0, f26, f0
/* 8000F100 0000C060 D0 21 00 60 */ stfs f1, 0x60(r1)
/* 8000F104 0000C064 41 81 00 1C */ bgt lbl_8000F120
/* 8000F108 0000C068 88 1F 01 8C */ lbz r0, 0x18c(r31)
/* 8000F10C 0000C06C 28 00 00 00 */ cmplwi r0, 0
/* 8000F110 0000C070 40 82 00 10 */ bne lbl_8000F120
/* 8000F114 0000C074 88 1E 03 74 */ lbz r0, 0x374(r30)
/* 8000F118 0000C078 28 00 00 00 */ cmplwi r0, 0
/* 8000F11C 0000C07C 41 82 00 60 */ beq lbl_8000F17C
lbl_8000F120:
/* 8000F120 0000C080 C0 02 80 D0 */ lfs f0, lbl_805A9DF0@sda21(r2)
/* 8000F124 0000C084 38 61 01 7C */ addi r3, r1, 0x17c
/* 8000F128 0000C088 38 81 04 4C */ addi r4, r1, 0x44c
/* 8000F12C 0000C08C D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8000F130 0000C090 48 30 4C A1 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F134 0000C094 7C 7C 1B 78 */ mr r28, r3
/* 8000F138 0000C098 38 61 01 88 */ addi r3, r1, 0x188
/* 8000F13C 0000C09C 38 81 03 6C */ addi r4, r1, 0x36c
/* 8000F140 0000C0A0 48 30 4C 91 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F144 0000C0A4 7C 64 1B 78 */ mr r4, r3
/* 8000F148 0000C0A8 7F 85 E3 78 */ mr r5, r28
/* 8000F14C 0000C0AC 38 61 01 94 */ addi r3, r1, 0x194
/* 8000F150 0000C0B0 38 C1 00 34 */ addi r6, r1, 0x34
/* 8000F154 0000C0B4 48 30 25 41 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000F158 0000C0B8 C0 01 01 94 */ lfs f0, 0x194(r1)
/* 8000F15C 0000C0BC 80 81 01 98 */ lwz r4, 0x198(r1)
/* 8000F160 0000C0C0 80 61 01 9C */ lwz r3, 0x19c(r1)
/* 8000F164 0000C0C4 80 01 01 A0 */ lwz r0, 0x1a0(r1)
/* 8000F168 0000C0C8 D0 01 04 14 */ stfs f0, 0x414(r1)
/* 8000F16C 0000C0CC 90 81 04 18 */ stw r4, 0x418(r1)
/* 8000F170 0000C0D0 90 61 04 1C */ stw r3, 0x41c(r1)
/* 8000F174 0000C0D4 90 01 04 20 */ stw r0, 0x420(r1)
/* 8000F178 0000C0D8 48 00 00 5C */ b lbl_8000F1D4
lbl_8000F17C:
/* 8000F17C 0000C0DC EC 1B 00 72 */ fmuls f0, f27, f1
/* 8000F180 0000C0E0 38 61 01 54 */ addi r3, r1, 0x154
/* 8000F184 0000C0E4 38 81 04 4C */ addi r4, r1, 0x44c
/* 8000F188 0000C0E8 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8000F18C 0000C0EC 48 30 4C 45 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F190 0000C0F0 7C 7C 1B 78 */ mr r28, r3
/* 8000F194 0000C0F4 38 61 01 60 */ addi r3, r1, 0x160
/* 8000F198 0000C0F8 38 81 03 6C */ addi r4, r1, 0x36c
/* 8000F19C 0000C0FC 48 30 4C 35 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F1A0 0000C100 7C 64 1B 78 */ mr r4, r3
/* 8000F1A4 0000C104 7F 85 E3 78 */ mr r5, r28
/* 8000F1A8 0000C108 38 61 01 6C */ addi r3, r1, 0x16c
/* 8000F1AC 0000C10C 38 C1 00 30 */ addi r6, r1, 0x30
/* 8000F1B0 0000C110 48 30 24 E5 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000F1B4 0000C114 C0 01 01 6C */ lfs f0, 0x16c(r1)
/* 8000F1B8 0000C118 80 81 01 70 */ lwz r4, 0x170(r1)
/* 8000F1BC 0000C11C 80 61 01 74 */ lwz r3, 0x174(r1)
/* 8000F1C0 0000C120 80 01 01 78 */ lwz r0, 0x178(r1)
/* 8000F1C4 0000C124 D0 01 04 14 */ stfs f0, 0x414(r1)
/* 8000F1C8 0000C128 90 81 04 18 */ stw r4, 0x418(r1)
/* 8000F1CC 0000C12C 90 61 04 1C */ stw r3, 0x41c(r1)
/* 8000F1D0 0000C130 90 01 04 20 */ stw r0, 0x420(r1)
lbl_8000F1D4:
/* 8000F1D4 0000C134 A0 1E 03 10 */ lhz r0, 0x310(r30)
/* 8000F1D8 0000C138 7F A3 EB 78 */ mr r3, r29
/* 8000F1DC 0000C13C 38 81 00 0C */ addi r4, r1, 0xc
/* 8000F1E0 0000C140 B0 01 00 08 */ sth r0, 8(r1)
/* 8000F1E4 0000C144 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8000F1E8 0000C148 48 03 D3 BD */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8000F1EC 0000C14C 7C 64 1B 78 */ mr r4, r3
/* 8000F1F0 0000C150 38 61 00 78 */ addi r3, r1, 0x78
/* 8000F1F4 0000C154 48 09 A8 D5 */ bl "__ct__33TCastToPtr<19CScriptGrapplePoint>FP7CEntity"
/* 8000F1F8 0000C158 80 03 00 04 */ lwz r0, 4(r3)
/* 8000F1FC 0000C15C 28 00 00 00 */ cmplwi r0, 0
/* 8000F200 0000C160 41 82 04 18 */ beq lbl_8000F618
/* 8000F204 0000C164 C0 1E 02 9C */ lfs f0, 0x29c(r30)
/* 8000F208 0000C168 C0 22 80 B0 */ lfs f1, lbl_805A9DD0@sda21(r2)
/* 8000F20C 0000C16C FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8000F210 0000C170 40 81 04 08 */ ble lbl_8000F618
/* 8000F214 0000C174 C0 7F 01 B4 */ lfs f3, 0x1b4(r31)
/* 8000F218 0000C178 38 61 03 60 */ addi r3, r1, 0x360
/* 8000F21C 0000C17C C0 5F 01 A4 */ lfs f2, 0x1a4(r31)
/* 8000F220 0000C180 C0 1F 01 94 */ lfs f0, 0x194(r31)
/* 8000F224 0000C184 D0 61 03 68 */ stfs f3, 0x368(r1)
/* 8000F228 0000C188 D0 01 03 60 */ stfs f0, 0x360(r1)
/* 8000F22C 0000C18C D0 41 03 64 */ stfs f2, 0x364(r1)
/* 8000F230 0000C190 D0 21 03 68 */ stfs f1, 0x368(r1)
/* 8000F234 0000C194 48 30 54 C5 */ bl CanBeNormalized__9CVector3fCFv
/* 8000F238 0000C198 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F23C 0000C19C 41 82 00 0C */ beq lbl_8000F248
/* 8000F240 0000C1A0 38 61 03 60 */ addi r3, r1, 0x360
/* 8000F244 0000C1A4 48 30 56 B5 */ bl Normalize__9CVector3fFv
lbl_8000F248:
/* 8000F248 0000C1A8 C0 01 04 54 */ lfs f0, 0x454(r1)
/* 8000F24C 0000C1AC 38 61 03 54 */ addi r3, r1, 0x354
/* 8000F250 0000C1B0 C0 41 04 4C */ lfs f2, 0x44c(r1)
/* 8000F254 0000C1B4 C0 21 04 50 */ lfs f1, 0x450(r1)
/* 8000F258 0000C1B8 D0 01 03 5C */ stfs f0, 0x35c(r1)
/* 8000F25C 0000C1BC C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F260 0000C1C0 D0 41 03 54 */ stfs f2, 0x354(r1)
/* 8000F264 0000C1C4 D0 21 03 58 */ stfs f1, 0x358(r1)
/* 8000F268 0000C1C8 D0 01 03 5C */ stfs f0, 0x35c(r1)
/* 8000F26C 0000C1CC 48 30 54 8D */ bl CanBeNormalized__9CVector3fCFv
/* 8000F270 0000C1D0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F274 0000C1D4 41 82 00 0C */ beq lbl_8000F280
/* 8000F278 0000C1D8 38 61 03 54 */ addi r3, r1, 0x354
/* 8000F27C 0000C1DC 48 30 56 7D */ bl Normalize__9CVector3fFv
lbl_8000F280:
/* 8000F280 0000C1E0 C0 02 80 D0 */ lfs f0, lbl_805A9DF0@sda21(r2)
/* 8000F284 0000C1E4 38 61 01 2C */ addi r3, r1, 0x12c
/* 8000F288 0000C1E8 38 81 03 54 */ addi r4, r1, 0x354
/* 8000F28C 0000C1EC D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8000F290 0000C1F0 48 30 4B 41 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F294 0000C1F4 7C 7C 1B 78 */ mr r28, r3
/* 8000F298 0000C1F8 38 61 01 38 */ addi r3, r1, 0x138
/* 8000F29C 0000C1FC 38 81 03 60 */ addi r4, r1, 0x360
/* 8000F2A0 0000C200 48 30 4B 31 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F2A4 0000C204 7C 64 1B 78 */ mr r4, r3
/* 8000F2A8 0000C208 7F 85 E3 78 */ mr r5, r28
/* 8000F2AC 0000C20C 38 61 01 44 */ addi r3, r1, 0x144
/* 8000F2B0 0000C210 38 C1 00 2C */ addi r6, r1, 0x2c
/* 8000F2B4 0000C214 48 30 23 E1 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000F2B8 0000C218 C0 61 01 44 */ lfs f3, 0x144(r1)
/* 8000F2BC 0000C21C 38 61 05 D8 */ addi r3, r1, 0x5d8
/* 8000F2C0 0000C220 C0 41 01 48 */ lfs f2, 0x148(r1)
/* 8000F2C4 0000C224 38 9F 01 90 */ addi r4, r31, 0x190
/* 8000F2C8 0000C228 C0 21 01 4C */ lfs f1, 0x14c(r1)
/* 8000F2CC 0000C22C C0 01 01 50 */ lfs f0, 0x150(r1)
/* 8000F2D0 0000C230 D0 61 03 44 */ stfs f3, 0x344(r1)
/* 8000F2D4 0000C234 D0 41 03 48 */ stfs f2, 0x348(r1)
/* 8000F2D8 0000C238 D0 21 03 4C */ stfs f1, 0x34c(r1)
/* 8000F2DC 0000C23C D0 01 03 50 */ stfs f0, 0x350(r1)
/* 8000F2E0 0000C240 48 30 39 61 */ bl GetRotation__12CTransform4fCFv
/* 8000F2E4 0000C244 38 61 06 08 */ addi r3, r1, 0x608
/* 8000F2E8 0000C248 38 81 03 44 */ addi r4, r1, 0x344
/* 8000F2EC 0000C24C 48 30 2C CD */ bl BuildTransform4f__11CQuaternionCFv
/* 8000F2F0 0000C250 38 61 06 38 */ addi r3, r1, 0x638
/* 8000F2F4 0000C254 38 81 06 08 */ addi r4, r1, 0x608
/* 8000F2F8 0000C258 38 A1 05 D8 */ addi r5, r1, 0x5d8
/* 8000F2FC 0000C25C 48 30 36 55 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8000F300 0000C260 38 61 08 48 */ addi r3, r1, 0x848
/* 8000F304 0000C264 38 81 06 38 */ addi r4, r1, 0x638
/* 8000F308 0000C268 48 30 38 39 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000F30C 0000C26C C0 41 08 6C */ lfs f2, 0x86c(r1)
/* 8000F310 0000C270 38 61 03 38 */ addi r3, r1, 0x338
/* 8000F314 0000C274 C0 21 08 4C */ lfs f1, 0x84c(r1)
/* 8000F318 0000C278 C0 01 08 5C */ lfs f0, 0x85c(r1)
/* 8000F31C 0000C27C D0 21 03 38 */ stfs f1, 0x338(r1)
/* 8000F320 0000C280 D0 01 03 3C */ stfs f0, 0x33c(r1)
/* 8000F324 0000C284 D0 41 03 40 */ stfs f2, 0x340(r1)
/* 8000F328 0000C288 48 30 53 D1 */ bl CanBeNormalized__9CVector3fCFv
/* 8000F32C 0000C28C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F330 0000C290 41 82 00 0C */ beq lbl_8000F33C
/* 8000F334 0000C294 38 61 03 38 */ addi r3, r1, 0x338
/* 8000F338 0000C298 48 30 55 C1 */ bl Normalize__9CVector3fFv
lbl_8000F33C:
/* 8000F33C 0000C29C C0 21 03 3C */ lfs f1, 0x33c(r1)
/* 8000F340 0000C2A0 C0 01 04 50 */ lfs f0, 0x450(r1)
/* 8000F344 0000C2A4 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000F348 0000C2A8 EC 01 00 32 */ fmuls f0, f1, f0
/* 8000F34C 0000C2AC C0 41 03 38 */ lfs f2, 0x338(r1)
/* 8000F350 0000C2B0 C0 21 04 4C */ lfs f1, 0x44c(r1)
/* 8000F354 0000C2B4 C0 83 02 B0 */ lfs f4, 0x2b0(r3)
/* 8000F358 0000C2B8 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000F35C 0000C2BC C0 61 03 40 */ lfs f3, 0x340(r1)
/* 8000F360 0000C2C0 C0 41 04 54 */ lfs f2, 0x454(r1)
/* 8000F364 0000C2C4 EF 7C 01 32 */ fmuls f27, f28, f4
/* 8000F368 0000C2C8 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000F36C 0000C2CC EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 8000F370 0000C2D0 FC 40 0A 10 */ fabs f2, f1
/* 8000F374 0000C2D4 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000F378 0000C2D8 40 81 00 14 */ ble lbl_8000F38C
/* 8000F37C 0000C2DC C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000F380 0000C2E0 C0 42 80 B4 */ lfs f2, lbl_805A9DD4@sda21(r2)
/* 8000F384 0000C2E4 FC 01 00 AE */ fsel f0, f1, f2, f0
/* 8000F388 0000C2E8 EC 22 00 32 */ fmuls f1, f2, f0
lbl_8000F38C:
/* 8000F38C 0000C2EC 48 38 58 A1 */ bl acos
/* 8000F390 0000C2F0 FC 00 08 18 */ frsp f0, f1
/* 8000F394 0000C2F4 38 81 00 5C */ addi r4, r1, 0x5c
/* 8000F398 0000C2F8 38 6D 80 78 */ addi r3, r13, lbl_805A6C38@sda21
/* 8000F39C 0000C2FC 38 AD 80 7C */ addi r5, r13, lbl_805A6C3C@sda21
/* 8000F3A0 0000C300 EC 00 D8 24 */ fdivs f0, f0, f27
/* 8000F3A4 0000C304 D0 01 00 5C */ stfs f0, 0x5c(r1)
/* 8000F3A8 0000C308 4B FF CF 0D */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000F3AC 0000C30C C0 23 00 00 */ lfs f1, 0(r3)
/* 8000F3B0 0000C310 38 61 01 04 */ addi r3, r1, 0x104
/* 8000F3B4 0000C314 C0 02 80 D0 */ lfs f0, lbl_805A9DF0@sda21(r2)
/* 8000F3B8 0000C318 38 81 03 54 */ addi r4, r1, 0x354
/* 8000F3BC 0000C31C D0 21 00 60 */ stfs f1, 0x60(r1)
/* 8000F3C0 0000C320 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8000F3C4 0000C324 48 30 4A 0D */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F3C8 0000C328 7C 7C 1B 78 */ mr r28, r3
/* 8000F3CC 0000C32C 38 61 01 10 */ addi r3, r1, 0x110
/* 8000F3D0 0000C330 38 81 03 38 */ addi r4, r1, 0x338
/* 8000F3D4 0000C334 48 30 49 FD */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F3D8 0000C338 7C 64 1B 78 */ mr r4, r3
/* 8000F3DC 0000C33C 7F 85 E3 78 */ mr r5, r28
/* 8000F3E0 0000C340 38 61 01 1C */ addi r3, r1, 0x11c
/* 8000F3E4 0000C344 38 C1 00 28 */ addi r6, r1, 0x28
/* 8000F3E8 0000C348 48 30 22 AD */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000F3EC 0000C34C C0 01 01 1C */ lfs f0, 0x11c(r1)
/* 8000F3F0 0000C350 80 81 01 20 */ lwz r4, 0x120(r1)
/* 8000F3F4 0000C354 80 61 01 24 */ lwz r3, 0x124(r1)
/* 8000F3F8 0000C358 80 01 01 28 */ lwz r0, 0x128(r1)
/* 8000F3FC 0000C35C D0 01 04 14 */ stfs f0, 0x414(r1)
/* 8000F400 0000C360 90 81 04 18 */ stw r4, 0x418(r1)
/* 8000F404 0000C364 90 61 04 1C */ stw r3, 0x41c(r1)
/* 8000F408 0000C368 90 01 04 20 */ stw r0, 0x420(r1)
/* 8000F40C 0000C36C 48 00 02 0C */ b lbl_8000F618
lbl_8000F410:
/* 8000F410 0000C370 C0 7F 01 B4 */ lfs f3, 0x1b4(r31)
/* 8000F414 0000C374 38 61 03 2C */ addi r3, r1, 0x32c
/* 8000F418 0000C378 C0 5F 01 A4 */ lfs f2, 0x1a4(r31)
/* 8000F41C 0000C37C C0 3F 01 94 */ lfs f1, 0x194(r31)
/* 8000F420 0000C380 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F424 0000C384 D0 61 03 34 */ stfs f3, 0x334(r1)
/* 8000F428 0000C388 D0 21 03 2C */ stfs f1, 0x32c(r1)
/* 8000F42C 0000C38C D0 41 03 30 */ stfs f2, 0x330(r1)
/* 8000F430 0000C390 D0 01 03 34 */ stfs f0, 0x334(r1)
/* 8000F434 0000C394 48 30 52 C5 */ bl CanBeNormalized__9CVector3fCFv
/* 8000F438 0000C398 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F43C 0000C39C 41 82 00 0C */ beq lbl_8000F448
/* 8000F440 0000C3A0 38 61 03 2C */ addi r3, r1, 0x32c
/* 8000F444 0000C3A4 48 30 54 B5 */ bl Normalize__9CVector3fFv
lbl_8000F448:
/* 8000F448 0000C3A8 C0 01 04 54 */ lfs f0, 0x454(r1)
/* 8000F44C 0000C3AC 38 61 03 20 */ addi r3, r1, 0x320
/* 8000F450 0000C3B0 C0 41 04 4C */ lfs f2, 0x44c(r1)
/* 8000F454 0000C3B4 C0 21 04 50 */ lfs f1, 0x450(r1)
/* 8000F458 0000C3B8 D0 01 03 28 */ stfs f0, 0x328(r1)
/* 8000F45C 0000C3BC C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F460 0000C3C0 D0 41 03 20 */ stfs f2, 0x320(r1)
/* 8000F464 0000C3C4 D0 21 03 24 */ stfs f1, 0x324(r1)
/* 8000F468 0000C3C8 D0 01 03 28 */ stfs f0, 0x328(r1)
/* 8000F46C 0000C3CC 48 30 52 8D */ bl CanBeNormalized__9CVector3fCFv
/* 8000F470 0000C3D0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F474 0000C3D4 41 82 00 0C */ beq lbl_8000F480
/* 8000F478 0000C3D8 38 61 03 20 */ addi r3, r1, 0x320
/* 8000F47C 0000C3DC 48 30 54 7D */ bl Normalize__9CVector3fFv
lbl_8000F480:
/* 8000F480 0000C3E0 C0 02 80 D0 */ lfs f0, lbl_805A9DF0@sda21(r2)
/* 8000F484 0000C3E4 38 61 00 DC */ addi r3, r1, 0xdc
/* 8000F488 0000C3E8 38 81 03 20 */ addi r4, r1, 0x320
/* 8000F48C 0000C3EC D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8000F490 0000C3F0 48 30 49 41 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F494 0000C3F4 7C 7C 1B 78 */ mr r28, r3
/* 8000F498 0000C3F8 38 61 00 E8 */ addi r3, r1, 0xe8
/* 8000F49C 0000C3FC 38 81 03 2C */ addi r4, r1, 0x32c
/* 8000F4A0 0000C400 48 30 49 31 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F4A4 0000C404 7C 64 1B 78 */ mr r4, r3
/* 8000F4A8 0000C408 7F 85 E3 78 */ mr r5, r28
/* 8000F4AC 0000C40C 38 61 00 F4 */ addi r3, r1, 0xf4
/* 8000F4B0 0000C410 38 C1 00 24 */ addi r6, r1, 0x24
/* 8000F4B4 0000C414 48 30 21 E1 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000F4B8 0000C418 C0 61 00 F4 */ lfs f3, 0xf4(r1)
/* 8000F4BC 0000C41C 38 61 05 48 */ addi r3, r1, 0x548
/* 8000F4C0 0000C420 C0 41 00 F8 */ lfs f2, 0xf8(r1)
/* 8000F4C4 0000C424 38 9F 01 90 */ addi r4, r31, 0x190
/* 8000F4C8 0000C428 C0 21 00 FC */ lfs f1, 0xfc(r1)
/* 8000F4CC 0000C42C C0 01 01 00 */ lfs f0, 0x100(r1)
/* 8000F4D0 0000C430 D0 61 03 10 */ stfs f3, 0x310(r1)
/* 8000F4D4 0000C434 D0 41 03 14 */ stfs f2, 0x314(r1)
/* 8000F4D8 0000C438 D0 21 03 18 */ stfs f1, 0x318(r1)
/* 8000F4DC 0000C43C D0 01 03 1C */ stfs f0, 0x31c(r1)
/* 8000F4E0 0000C440 48 30 37 61 */ bl GetRotation__12CTransform4fCFv
/* 8000F4E4 0000C444 38 61 05 78 */ addi r3, r1, 0x578
/* 8000F4E8 0000C448 38 81 03 10 */ addi r4, r1, 0x310
/* 8000F4EC 0000C44C 48 30 2A CD */ bl BuildTransform4f__11CQuaternionCFv
/* 8000F4F0 0000C450 38 61 05 A8 */ addi r3, r1, 0x5a8
/* 8000F4F4 0000C454 38 81 05 78 */ addi r4, r1, 0x578
/* 8000F4F8 0000C458 38 A1 05 48 */ addi r5, r1, 0x548
/* 8000F4FC 0000C45C 48 30 34 55 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8000F500 0000C460 38 61 08 48 */ addi r3, r1, 0x848
/* 8000F504 0000C464 38 81 05 A8 */ addi r4, r1, 0x5a8
/* 8000F508 0000C468 48 30 36 39 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000F50C 0000C46C C0 41 08 6C */ lfs f2, 0x86c(r1)
/* 8000F510 0000C470 38 61 03 04 */ addi r3, r1, 0x304
/* 8000F514 0000C474 C0 21 08 4C */ lfs f1, 0x84c(r1)
/* 8000F518 0000C478 C0 01 08 5C */ lfs f0, 0x85c(r1)
/* 8000F51C 0000C47C D0 21 03 04 */ stfs f1, 0x304(r1)
/* 8000F520 0000C480 D0 01 03 08 */ stfs f0, 0x308(r1)
/* 8000F524 0000C484 D0 41 03 0C */ stfs f2, 0x30c(r1)
/* 8000F528 0000C488 48 30 51 D1 */ bl CanBeNormalized__9CVector3fCFv
/* 8000F52C 0000C48C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F530 0000C490 41 82 00 0C */ beq lbl_8000F53C
/* 8000F534 0000C494 38 61 03 04 */ addi r3, r1, 0x304
/* 8000F538 0000C498 48 30 53 C1 */ bl Normalize__9CVector3fFv
lbl_8000F53C:
/* 8000F53C 0000C49C C0 21 03 08 */ lfs f1, 0x308(r1)
/* 8000F540 0000C4A0 C0 01 04 50 */ lfs f0, 0x450(r1)
/* 8000F544 0000C4A4 80 6D A1 18 */ lwz r3, gpTweakPlayer@sda21(r13)
/* 8000F548 0000C4A8 EC 01 00 32 */ fmuls f0, f1, f0
/* 8000F54C 0000C4AC C0 41 03 04 */ lfs f2, 0x304(r1)
/* 8000F550 0000C4B0 C0 21 04 4C */ lfs f1, 0x44c(r1)
/* 8000F554 0000C4B4 C0 83 01 38 */ lfs f4, 0x138(r3)
/* 8000F558 0000C4B8 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000F55C 0000C4BC C0 61 03 0C */ lfs f3, 0x30c(r1)
/* 8000F560 0000C4C0 C0 41 04 54 */ lfs f2, 0x454(r1)
/* 8000F564 0000C4C4 EF 7C 01 32 */ fmuls f27, f28, f4
/* 8000F568 0000C4C8 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000F56C 0000C4CC EC 23 08 BA */ fmadds f1, f3, f2, f1
/* 8000F570 0000C4D0 FC 40 0A 10 */ fabs f2, f1
/* 8000F574 0000C4D4 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000F578 0000C4D8 40 81 00 14 */ ble lbl_8000F58C
/* 8000F57C 0000C4DC C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000F580 0000C4E0 C0 42 80 B4 */ lfs f2, lbl_805A9DD4@sda21(r2)
/* 8000F584 0000C4E4 FC 01 00 AE */ fsel f0, f1, f2, f0
/* 8000F588 0000C4E8 EC 22 00 32 */ fmuls f1, f2, f0
lbl_8000F58C:
/* 8000F58C 0000C4EC 48 38 56 A1 */ bl acos
/* 8000F590 0000C4F0 FC 00 08 18 */ frsp f0, f1
/* 8000F594 0000C4F4 80 AD A1 18 */ lwz r5, gpTweakPlayer@sda21(r13)
/* 8000F598 0000C4F8 38 81 00 58 */ addi r4, r1, 0x58
/* 8000F59C 0000C4FC 38 6D 80 80 */ addi r3, r13, lbl_805A6C40@sda21
/* 8000F5A0 0000C500 C0 25 01 4C */ lfs f1, 0x14c(r5)
/* 8000F5A4 0000C504 38 AD 80 84 */ addi r5, r13, lbl_805A6C44@sda21
/* 8000F5A8 0000C508 EC 00 D8 24 */ fdivs f0, f0, f27
/* 8000F5AC 0000C50C EC 01 00 32 */ fmuls f0, f1, f0
/* 8000F5B0 0000C510 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8000F5B4 0000C514 4B FF CD 01 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8000F5B8 0000C518 C0 03 00 00 */ lfs f0, 0(r3)
/* 8000F5BC 0000C51C 38 61 00 B4 */ addi r3, r1, 0xb4
/* 8000F5C0 0000C520 38 81 04 4C */ addi r4, r1, 0x44c
/* 8000F5C4 0000C524 EC 3B 00 32 */ fmuls f1, f27, f0
/* 8000F5C8 0000C528 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8000F5CC 0000C52C D0 21 00 20 */ stfs f1, 0x20(r1)
/* 8000F5D0 0000C530 48 30 48 01 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F5D4 0000C534 7C 7C 1B 78 */ mr r28, r3
/* 8000F5D8 0000C538 38 61 00 C0 */ addi r3, r1, 0xc0
/* 8000F5DC 0000C53C 38 81 03 04 */ addi r4, r1, 0x304
/* 8000F5E0 0000C540 48 30 47 F1 */ bl __ct__13CUnitVector3fFRC9CVector3f
/* 8000F5E4 0000C544 7C 64 1B 78 */ mr r4, r3
/* 8000F5E8 0000C548 7F 85 E3 78 */ mr r5, r28
/* 8000F5EC 0000C54C 38 61 00 CC */ addi r3, r1, 0xcc
/* 8000F5F0 0000C550 38 C1 00 20 */ addi r6, r1, 0x20
/* 8000F5F4 0000C554 48 30 20 A1 */ bl LookAt__11CQuaternionFRC13CUnitVector3fRC13CUnitVector3fRC9CRelAngle
/* 8000F5F8 0000C558 C0 01 00 CC */ lfs f0, 0xcc(r1)
/* 8000F5FC 0000C55C 80 81 00 D0 */ lwz r4, 0xd0(r1)
/* 8000F600 0000C560 80 61 00 D4 */ lwz r3, 0xd4(r1)
/* 8000F604 0000C564 80 01 00 D8 */ lwz r0, 0xd8(r1)
/* 8000F608 0000C568 D0 01 04 14 */ stfs f0, 0x414(r1)
/* 8000F60C 0000C56C 90 81 04 18 */ stw r4, 0x418(r1)
/* 8000F610 0000C570 90 61 04 1C */ stw r3, 0x41c(r1)
/* 8000F614 0000C574 90 01 04 20 */ stw r0, 0x420(r1)
lbl_8000F618:
/* 8000F618 0000C578 83 9E 07 6C */ lwz r28, 0x76c(r30)
/* 8000F61C 0000C57C 38 61 05 18 */ addi r3, r1, 0x518
/* 8000F620 0000C580 7F 84 E3 78 */ mr r4, r28
/* 8000F624 0000C584 48 0D A7 81 */ bl GetCameraBobTransformation__16CPlayerCameraBobCFv
/* 8000F628 0000C588 38 61 08 18 */ addi r3, r1, 0x818
/* 8000F62C 0000C58C 38 81 05 18 */ addi r4, r1, 0x518
/* 8000F630 0000C590 48 30 35 45 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8000F634 0000C594 80 1E 02 F8 */ lwz r0, 0x2f8(r30)
/* 8000F638 0000C598 2C 00 00 01 */ cmpwi r0, 1
/* 8000F63C 0000C59C 41 82 00 48 */ beq lbl_8000F684
/* 8000F640 0000C5A0 80 1E 03 04 */ lwz r0, 0x304(r30)
/* 8000F644 0000C5A4 2C 00 00 05 */ cmpwi r0, 5
/* 8000F648 0000C5A8 41 82 00 3C */ beq lbl_8000F684
/* 8000F64C 0000C5AC 80 1E 03 B8 */ lwz r0, 0x3b8(r30)
/* 8000F650 0000C5B0 2C 00 00 00 */ cmpwi r0, 0
/* 8000F654 0000C5B4 40 82 00 30 */ bne lbl_8000F684
/* 8000F658 0000C5B8 80 1D 09 04 */ lwz r0, 0x904(r29)
/* 8000F65C 0000C5BC 2C 00 00 01 */ cmpwi r0, 1
/* 8000F660 0000C5C0 41 82 00 24 */ beq lbl_8000F684
/* 8000F664 0000C5C4 80 7D 08 70 */ lwz r3, 0x870(r29)
/* 8000F668 0000C5C8 4B FF B2 99 */ bl IsInCinematicCamera__14CCameraManagerCFv
/* 8000F66C 0000C5CC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F670 0000C5D0 40 82 00 14 */ bne lbl_8000F684
/* 8000F674 0000C5D4 C0 3F 01 D4 */ lfs f1, 0x1d4(r31)
/* 8000F678 0000C5D8 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F67C 0000C5DC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000F680 0000C5E0 40 81 00 20 */ ble lbl_8000F6A0
lbl_8000F684:
/* 8000F684 0000C5E4 3C 80 80 5A */ lis r4, skIdentity4f@ha
/* 8000F688 0000C5E8 38 61 08 18 */ addi r3, r1, 0x818
/* 8000F68C 0000C5EC 38 84 66 70 */ addi r4, r4, skIdentity4f@l
/* 8000F690 0000C5F0 48 30 34 B1 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000F694 0000C5F4 38 7C 00 2C */ addi r3, r28, 0x2c
/* 8000F698 0000C5F8 38 81 08 18 */ addi r4, r1, 0x818
/* 8000F69C 0000C5FC 48 30 34 A5 */ bl __as__12CTransform4fFRC12CTransform4f
lbl_8000F6A0:
/* 8000F6A0 0000C600 38 61 04 B8 */ addi r3, r1, 0x4b8
/* 8000F6A4 0000C604 38 81 04 14 */ addi r4, r1, 0x414
/* 8000F6A8 0000C608 48 30 29 11 */ bl BuildTransform4f__11CQuaternionCFv
/* 8000F6AC 0000C60C 38 61 04 E8 */ addi r3, r1, 0x4e8
/* 8000F6B0 0000C610 38 81 04 B8 */ addi r4, r1, 0x4b8
/* 8000F6B4 0000C614 38 A1 08 48 */ addi r5, r1, 0x848
/* 8000F6B8 0000C618 48 30 32 99 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8000F6BC 0000C61C 38 7F 01 90 */ addi r3, r31, 0x190
/* 8000F6C0 0000C620 38 81 04 E8 */ addi r4, r1, 0x4e8
/* 8000F6C4 0000C624 48 30 34 7D */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000F6C8 0000C628 38 61 04 58 */ addi r3, r1, 0x458
/* 8000F6CC 0000C62C 38 81 08 18 */ addi r4, r1, 0x818
/* 8000F6D0 0000C630 48 30 35 71 */ bl GetRotation__12CTransform4fCFv
/* 8000F6D4 0000C634 38 61 04 88 */ addi r3, r1, 0x488
/* 8000F6D8 0000C638 38 9F 01 90 */ addi r4, r31, 0x190
/* 8000F6DC 0000C63C 38 A1 04 58 */ addi r5, r1, 0x458
/* 8000F6E0 0000C640 48 30 32 71 */ bl __ml__12CTransform4fCFRC12CTransform4f
/* 8000F6E4 0000C644 38 7F 00 34 */ addi r3, r31, 0x34
/* 8000F6E8 0000C648 38 81 04 88 */ addi r4, r1, 0x488
/* 8000F6EC 0000C64C 48 30 34 55 */ bl __as__12CTransform4fFRC12CTransform4f
/* 8000F6F0 0000C650 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000F6F4 0000C654 38 C0 00 01 */ li r6, 1
/* 8000F6F8 0000C658 50 C0 26 F6 */ rlwimi r0, r6, 4, 0x1b, 0x1b
/* 8000F6FC 0000C65C 38 61 00 9C */ addi r3, r1, 0x9c
/* 8000F700 0000C660 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000F704 0000C664 38 9E 00 34 */ addi r4, r30, 0x34
/* 8000F708 0000C668 38 A1 00 90 */ addi r5, r1, 0x90
/* 8000F70C 0000C66C 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000F710 0000C670 50 C0 1F 38 */ rlwimi r0, r6, 3, 0x1c, 0x1c
/* 8000F714 0000C674 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000F718 0000C678 88 1F 00 E4 */ lbz r0, 0xe4(r31)
/* 8000F71C 0000C67C 50 C0 17 7A */ rlwimi r0, r6, 2, 0x1d, 0x1d
/* 8000F720 0000C680 98 1F 00 E4 */ stb r0, 0xe4(r31)
/* 8000F724 0000C684 D3 FF 01 9C */ stfs f31, 0x19c(r31)
/* 8000F728 0000C688 D3 DF 01 AC */ stfs f30, 0x1ac(r31)
/* 8000F72C 0000C68C D3 BF 01 BC */ stfs f29, 0x1bc(r31)
/* 8000F730 0000C690 C0 41 08 24 */ lfs f2, 0x824(r1)
/* 8000F734 0000C694 C0 21 08 34 */ lfs f1, 0x834(r1)
/* 8000F738 0000C698 C0 01 08 44 */ lfs f0, 0x844(r1)
/* 8000F73C 0000C69C D0 41 00 90 */ stfs f2, 0x90(r1)
/* 8000F740 0000C6A0 D0 21 00 94 */ stfs f1, 0x94(r1)
/* 8000F744 0000C6A4 D0 01 00 98 */ stfs f0, 0x98(r1)
/* 8000F748 0000C6A8 48 30 33 39 */ bl Rotate__12CTransform4fCFRC9CVector3f
/* 8000F74C 0000C6AC C0 41 00 9C */ lfs f2, 0x9c(r1)
/* 8000F750 0000C6B0 7F E3 FB 78 */ mr r3, r31
/* 8000F754 0000C6B4 C0 21 00 A0 */ lfs f1, 0xa0(r1)
/* 8000F758 0000C6B8 38 81 00 A8 */ addi r4, r1, 0xa8
/* 8000F75C 0000C6BC C0 01 00 A4 */ lfs f0, 0xa4(r1)
/* 8000F760 0000C6C0 EC 5F 10 2A */ fadds f2, f31, f2
/* 8000F764 0000C6C4 EC 3E 08 2A */ fadds f1, f30, f1
/* 8000F768 0000C6C8 EC 1D 00 2A */ fadds f0, f29, f0
/* 8000F76C 0000C6CC D0 41 00 A8 */ stfs f2, 0xa8(r1)
/* 8000F770 0000C6D0 D0 21 00 AC */ stfs f1, 0xac(r1)
/* 8000F774 0000C6D4 D0 01 00 B0 */ stfs f0, 0xb0(r1)
/* 8000F778 0000C6D8 48 04 37 15 */ bl SetTranslation__6CActorFRC9CVector3f
/* 8000F77C 0000C6DC 38 7F 01 90 */ addi r3, r31, 0x190
/* 8000F780 0000C6E0 48 30 3C 25 */ bl Orthonormalize__12CTransform4fFv
lbl_8000F784:
/* 8000F784 0000C6E4 E3 E1 09 18 */ psq_l f31, -1768(r1), 0, qr0
/* 8000F788 0000C6E8 CB E1 09 10 */ lfd f31, 0x910(r1)
/* 8000F78C 0000C6EC E3 C1 09 08 */ psq_l f30, -1784(r1), 0, qr0
/* 8000F790 0000C6F0 CB C1 09 00 */ lfd f30, 0x900(r1)
/* 8000F794 0000C6F4 E3 A1 08 F8 */ psq_l f29, -1800(r1), 0, qr0
/* 8000F798 0000C6F8 CB A1 08 F0 */ lfd f29, 0x8f0(r1)
/* 8000F79C 0000C6FC E3 81 08 E8 */ psq_l f28, -1816(r1), 0, qr0
/* 8000F7A0 0000C700 CB 81 08 E0 */ lfd f28, 0x8e0(r1)
/* 8000F7A4 0000C704 E3 61 08 D8 */ psq_l f27, -1832(r1), 0, qr0
/* 8000F7A8 0000C708 CB 61 08 D0 */ lfd f27, 0x8d0(r1)
/* 8000F7AC 0000C70C E3 41 08 C8 */ psq_l f26, -1848(r1), 0, qr0
/* 8000F7B0 0000C710 CB 41 08 C0 */ lfd f26, 0x8c0(r1)
/* 8000F7B4 0000C714 83 E1 08 BC */ lwz r31, 0x8bc(r1)
/* 8000F7B8 0000C718 83 C1 08 B8 */ lwz r30, 0x8b8(r1)
/* 8000F7BC 0000C71C 83 A1 08 B4 */ lwz r29, 0x8b4(r1)
/* 8000F7C0 0000C720 80 01 09 24 */ lwz r0, 0x924(r1)
/* 8000F7C4 0000C724 83 81 08 B0 */ lwz r28, 0x8b0(r1)
/* 8000F7C8 0000C728 7C 08 03 A6 */ mtlr r0
/* 8000F7CC 0000C72C 38 21 09 20 */ addi r1, r1, 0x920
/* 8000F7D0 0000C730 4E 80 00 20 */ blr
.global UpdateElevation__18CFirstPersonCameraFR13CStateManager
UpdateElevation__18CFirstPersonCameraFR13CStateManager:
/* 8000F7D4 0000C734 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8000F7D8 0000C738 7C 08 02 A6 */ mflr r0
/* 8000F7DC 0000C73C 90 01 00 84 */ stw r0, 0x84(r1)
/* 8000F7E0 0000C740 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 8000F7E4 0000C744 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
/* 8000F7E8 0000C748 DB C1 00 60 */ stfd f30, 0x60(r1)
/* 8000F7EC 0000C74C F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0
/* 8000F7F0 0000C750 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 8000F7F4 0000C754 93 C1 00 58 */ stw r30, 0x58(r1)
/* 8000F7F8 0000C758 93 A1 00 54 */ stw r29, 0x54(r1)
/* 8000F7FC 0000C75C C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F800 0000C760 7C 7D 1B 78 */ mr r29, r3
/* 8000F804 0000C764 7C 9F 23 78 */ mr r31, r4
/* 8000F808 0000C768 38 81 00 10 */ addi r4, r1, 0x10
/* 8000F80C 0000C76C D0 03 01 C0 */ stfs f0, 0x1c0(r3)
/* 8000F810 0000C770 7F E3 FB 78 */ mr r3, r31
/* 8000F814 0000C774 A0 1D 00 E8 */ lhz r0, 0xe8(r29)
/* 8000F818 0000C778 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8000F81C 0000C77C B0 01 00 10 */ sth r0, 0x10(r1)
/* 8000F820 0000C780 48 03 CD 85 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8000F824 0000C784 7C 64 1B 78 */ mr r4, r3
/* 8000F828 0000C788 38 61 00 1C */ addi r3, r1, 0x1c
/* 8000F82C 0000C78C 48 09 CB 69 */ bl "__ct__20TCastToPtr<7CPlayer>FP7CEntity"
/* 8000F830 0000C790 83 C3 00 04 */ lwz r30, 4(r3)
/* 8000F834 0000C794 28 1E 00 00 */ cmplwi r30, 0
/* 8000F838 0000C798 41 82 02 1C */ beq lbl_8000FA54
/* 8000F83C 0000C79C A0 7D 01 C4 */ lhz r3, 0x1c4(r29)
/* 8000F840 0000C7A0 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8000F844 0000C7A4 7C 03 00 40 */ cmplw r3, r0
/* 8000F848 0000C7A8 41 82 02 0C */ beq lbl_8000FA54
/* 8000F84C 0000C7AC A0 1D 01 C4 */ lhz r0, 0x1c4(r29)
/* 8000F850 0000C7B0 7F E3 FB 78 */ mr r3, r31
/* 8000F854 0000C7B4 38 81 00 08 */ addi r4, r1, 8
/* 8000F858 0000C7B8 B0 01 00 08 */ sth r0, 8(r1)
/* 8000F85C 0000C7BC 48 03 CD 49 */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 8000F860 0000C7C0 7C 64 1B 78 */ mr r4, r3
/* 8000F864 0000C7C4 38 61 00 14 */ addi r3, r1, 0x14
/* 8000F868 0000C7C8 48 09 B8 51 */ bl "__ct__38TCastToPtr<24CScriptCameraPitchVolume>FP7CEntity"
/* 8000F86C 0000C7CC 83 E3 00 04 */ lwz r31, 4(r3)
/* 8000F870 0000C7D0 28 1F 00 00 */ cmplwi r31, 0
/* 8000F874 0000C7D4 41 82 01 E0 */ beq lbl_8000FA54
/* 8000F878 0000C7D8 C3 FF 01 24 */ lfs f31, 0x124(r31)
/* 8000F87C 0000C7DC 38 61 00 3C */ addi r3, r1, 0x3c
/* 8000F880 0000C7E0 C3 DF 01 28 */ lfs f30, 0x128(r31)
/* 8000F884 0000C7E4 C0 7F 00 58 */ lfs f3, 0x58(r31)
/* 8000F888 0000C7E8 C0 5F 00 48 */ lfs f2, 0x48(r31)
/* 8000F88C 0000C7EC C0 3F 00 38 */ lfs f1, 0x38(r31)
/* 8000F890 0000C7F0 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F894 0000C7F4 D0 61 00 44 */ stfs f3, 0x44(r1)
/* 8000F898 0000C7F8 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 8000F89C 0000C7FC D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8000F8A0 0000C800 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8000F8A4 0000C804 48 30 4E 55 */ bl CanBeNormalized__9CVector3fCFv
/* 8000F8A8 0000C808 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F8AC 0000C80C 40 82 00 18 */ bne lbl_8000F8C4
/* 8000F8B0 0000C810 C0 22 80 B0 */ lfs f1, lbl_805A9DD0@sda21(r2)
/* 8000F8B4 0000C814 C0 02 80 B4 */ lfs f0, lbl_805A9DD4@sda21(r2)
/* 8000F8B8 0000C818 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 8000F8BC 0000C81C D0 01 00 40 */ stfs f0, 0x40(r1)
/* 8000F8C0 0000C820 D0 21 00 44 */ stfs f1, 0x44(r1)
lbl_8000F8C4:
/* 8000F8C4 0000C824 C0 7E 00 58 */ lfs f3, 0x58(r30)
/* 8000F8C8 0000C828 38 61 00 30 */ addi r3, r1, 0x30
/* 8000F8CC 0000C82C C0 5E 00 48 */ lfs f2, 0x48(r30)
/* 8000F8D0 0000C830 C0 3E 00 38 */ lfs f1, 0x38(r30)
/* 8000F8D4 0000C834 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F8D8 0000C838 D0 61 00 38 */ stfs f3, 0x38(r1)
/* 8000F8DC 0000C83C D0 21 00 30 */ stfs f1, 0x30(r1)
/* 8000F8E0 0000C840 D0 41 00 34 */ stfs f2, 0x34(r1)
/* 8000F8E4 0000C844 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8000F8E8 0000C848 48 30 50 11 */ bl Normalize__9CVector3fFv
/* 8000F8EC 0000C84C C0 21 00 40 */ lfs f1, 0x40(r1)
/* 8000F8F0 0000C850 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8000F8F4 0000C854 C0 41 00 3C */ lfs f2, 0x3c(r1)
/* 8000F8F8 0000C858 EC 01 00 32 */ fmuls f0, f1, f0
/* 8000F8FC 0000C85C C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8000F900 0000C860 C0 81 00 44 */ lfs f4, 0x44(r1)
/* 8000F904 0000C864 C0 61 00 38 */ lfs f3, 0x38(r1)
/* 8000F908 0000C868 EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000F90C 0000C86C C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000F910 0000C870 EC 44 08 FA */ fmadds f2, f4, f3, f1
/* 8000F914 0000C874 FC 20 12 10 */ fabs f1, f2
/* 8000F918 0000C878 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000F91C 0000C87C 40 81 00 14 */ ble lbl_8000F930
/* 8000F920 0000C880 C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000F924 0000C884 C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000F928 0000C888 FC 02 00 6E */ fsel f0, f2, f1, f0
/* 8000F92C 0000C88C EC 41 00 32 */ fmuls f2, f1, f0
lbl_8000F930:
/* 8000F930 0000C890 C0 02 80 B0 */ lfs f0, lbl_805A9DD0@sda21(r2)
/* 8000F934 0000C894 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8000F938 0000C898 40 80 00 14 */ bge lbl_8000F94C
/* 8000F93C 0000C89C FC 00 10 50 */ fneg f0, f2
/* 8000F940 0000C8A0 EC 1E 00 32 */ fmuls f0, f30, f0
/* 8000F944 0000C8A4 D0 1D 01 C0 */ stfs f0, 0x1c0(r29)
/* 8000F948 0000C8A8 48 00 00 10 */ b lbl_8000F958
lbl_8000F94C:
/* 8000F94C 0000C8AC FC 00 10 50 */ fneg f0, f2
/* 8000F950 0000C8B0 EC 1F 00 32 */ fmuls f0, f31, f0
/* 8000F954 0000C8B4 D0 1D 01 C0 */ stfs f0, 0x1c0(r29)
lbl_8000F958:
/* 8000F958 0000C8B8 C0 3E 00 60 */ lfs f1, 0x60(r30)
/* 8000F95C 0000C8BC 38 61 00 24 */ addi r3, r1, 0x24
/* 8000F960 0000C8C0 C0 1F 00 60 */ lfs f0, 0x60(r31)
/* 8000F964 0000C8C4 C0 7E 00 50 */ lfs f3, 0x50(r30)
/* 8000F968 0000C8C8 C0 5F 00 50 */ lfs f2, 0x50(r31)
/* 8000F96C 0000C8CC EC 81 00 28 */ fsubs f4, f1, f0
/* 8000F970 0000C8D0 C0 3E 00 40 */ lfs f1, 0x40(r30)
/* 8000F974 0000C8D4 C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8000F978 0000C8D8 EC 43 10 28 */ fsubs f2, f3, f2
/* 8000F97C 0000C8DC C3 C2 80 B0 */ lfs f30, lbl_805A9DD0@sda21(r2)
/* 8000F980 0000C8E0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8000F984 0000C8E4 D0 81 00 2C */ stfs f4, 0x2c(r1)
/* 8000F988 0000C8E8 D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8000F98C 0000C8EC D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8000F990 0000C8F0 D3 C1 00 2C */ stfs f30, 0x2c(r1)
/* 8000F994 0000C8F4 48 30 4D 65 */ bl CanBeNormalized__9CVector3fCFv
/* 8000F998 0000C8F8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8000F99C 0000C8FC 41 82 00 AC */ beq lbl_8000FA48
/* 8000F9A0 0000C900 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8000F9A4 0000C904 C0 01 00 40 */ lfs f0, 0x40(r1)
/* 8000F9A8 0000C908 C0 41 00 24 */ lfs f2, 0x24(r1)
/* 8000F9AC 0000C90C EC 01 00 32 */ fmuls f0, f1, f0
/* 8000F9B0 0000C910 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8000F9B4 0000C914 C0 81 00 2C */ lfs f4, 0x2c(r1)
/* 8000F9B8 0000C918 C0 61 00 44 */ lfs f3, 0x44(r1)
/* 8000F9BC 0000C91C EC 22 00 7A */ fmadds f1, f2, f1, f0
/* 8000F9C0 0000C920 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000F9C4 0000C924 EC 44 08 FA */ fmadds f2, f4, f3, f1
/* 8000F9C8 0000C928 FC 20 12 10 */ fabs f1, f2
/* 8000F9CC 0000C92C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000F9D0 0000C930 40 81 00 14 */ ble lbl_8000F9E4
/* 8000F9D4 0000C934 C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000F9D8 0000C938 C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000F9DC 0000C93C FC 02 00 6E */ fsel f0, f2, f1, f0
/* 8000F9E0 0000C940 EC 41 00 32 */ fmuls f2, f1, f0
lbl_8000F9E4:
/* 8000F9E4 0000C944 FF C0 12 10 */ fabs f30, f2
/* 8000F9E8 0000C948 38 61 00 24 */ addi r3, r1, 0x24
/* 8000F9EC 0000C94C 48 30 4E CD */ bl Magnitude__9CVector3fCFv
/* 8000F9F0 0000C950 FC 00 F0 18 */ frsp f0, f30
/* 8000F9F4 0000C954 C0 9F 01 38 */ lfs f4, 0x138(r31)
/* 8000F9F8 0000C958 C0 7F 01 30 */ lfs f3, 0x130(r31)
/* 8000F9FC 0000C95C EC 00 00 72 */ fmuls f0, f0, f1
/* 8000FA00 0000C960 FC 00 20 40 */ fcmpo cr0, f0, f4
/* 8000FA04 0000C964 4C 40 13 82 */ cror 2, 0, 2
/* 8000FA08 0000C968 40 82 00 0C */ bne lbl_8000FA14
/* 8000FA0C 0000C96C C3 C2 80 B4 */ lfs f30, lbl_805A9DD4@sda21(r2)
/* 8000FA10 0000C970 48 00 00 38 */ b lbl_8000FA48
lbl_8000FA14:
/* 8000FA14 0000C974 EC 40 20 28 */ fsubs f2, f0, f4
/* 8000FA18 0000C978 C8 02 80 C0 */ lfd f0, lbl_805A9DE0@sda21(r2)
/* 8000FA1C 0000C97C EC 23 20 28 */ fsubs f1, f3, f4
/* 8000FA20 0000C980 EC 42 08 24 */ fdivs f2, f2, f1
/* 8000FA24 0000C984 FC 20 12 10 */ fabs f1, f2
/* 8000FA28 0000C988 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8000FA2C 0000C98C 40 81 00 14 */ ble lbl_8000FA40
/* 8000FA30 0000C990 C0 02 80 C8 */ lfs f0, lbl_805A9DE8@sda21(r2)
/* 8000FA34 0000C994 C0 22 80 B4 */ lfs f1, lbl_805A9DD4@sda21(r2)
/* 8000FA38 0000C998 FC 02 00 6E */ fsel f0, f2, f1, f0
/* 8000FA3C 0000C99C EC 41 00 32 */ fmuls f2, f1, f0
lbl_8000FA40:
/* 8000FA40 0000C9A0 C0 02 80 B4 */ lfs f0, lbl_805A9DD4@sda21(r2)
/* 8000FA44 0000C9A4 EF C0 10 28 */ fsubs f30, f0, f2
lbl_8000FA48:
/* 8000FA48 0000C9A8 C0 1D 01 C0 */ lfs f0, 0x1c0(r29)
/* 8000FA4C 0000C9AC EC 00 07 B2 */ fmuls f0, f0, f30
/* 8000FA50 0000C9B0 D0 1D 01 C0 */ stfs f0, 0x1c0(r29)
lbl_8000FA54:
/* 8000FA54 0000C9B4 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
/* 8000FA58 0000C9B8 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 8000FA5C 0000C9BC E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0
/* 8000FA60 0000C9C0 CB C1 00 60 */ lfd f30, 0x60(r1)
/* 8000FA64 0000C9C4 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 8000FA68 0000C9C8 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 8000FA6C 0000C9CC 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8000FA70 0000C9D0 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 8000FA74 0000C9D4 7C 08 03 A6 */ mtlr r0
/* 8000FA78 0000C9D8 38 21 00 80 */ addi r1, r1, 0x80
/* 8000FA7C 0000C9DC 4E 80 00 20 */ blr
.global ProcessInput__18CFirstPersonCameraFRC11CFinalInputR13CStateManager
ProcessInput__18CFirstPersonCameraFRC11CFinalInputR13CStateManager:
/* 8000FA80 0000C9E0 4E 80 00 20 */ blr
.global __dt__18CFirstPersonCameraFv
__dt__18CFirstPersonCameraFv:
/* 8000FA84 0000C9E4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8000FA88 0000C9E8 7C 08 02 A6 */ mflr r0
/* 8000FA8C 0000C9EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8000FA90 0000C9F0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8000FA94 0000C9F4 7C 9F 23 78 */ mr r31, r4
/* 8000FA98 0000C9F8 93 C1 00 08 */ stw r30, 8(r1)
/* 8000FA9C 0000C9FC 7C 7E 1B 79 */ or. r30, r3, r3
/* 8000FAA0 0000CA00 41 82 00 28 */ beq lbl_8000FAC8
/* 8000FAA4 0000CA04 3C A0 80 3E */ lis r5, lbl_803D9660@ha
/* 8000FAA8 0000CA08 38 80 00 00 */ li r4, 0
/* 8000FAAC 0000CA0C 38 05 96 60 */ addi r0, r5, lbl_803D9660@l
/* 8000FAB0 0000CA10 90 1E 00 00 */ stw r0, 0(r30)
/* 8000FAB4 0000CA14 48 04 DF A9 */ bl __dt__11CGameCameraFv
/* 8000FAB8 0000CA18 7F E0 07 35 */ extsh. r0, r31
/* 8000FABC 0000CA1C 40 81 00 0C */ ble lbl_8000FAC8
/* 8000FAC0 0000CA20 7F C3 F3 78 */ mr r3, r30
/* 8000FAC4 0000CA24 48 30 5E 6D */ bl Free__7CMemoryFPCv
lbl_8000FAC8:
/* 8000FAC8 0000CA28 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8000FACC 0000CA2C 7F C3 F3 78 */ mr r3, r30
/* 8000FAD0 0000CA30 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8000FAD4 0000CA34 83 C1 00 08 */ lwz r30, 8(r1)
/* 8000FAD8 0000CA38 7C 08 03 A6 */ mtlr r0
/* 8000FADC 0000CA3C 38 21 00 10 */ addi r1, r1, 0x10
/* 8000FAE0 0000CA40 4E 80 00 20 */ blr
.global __ct__18CFirstPersonCameraFRC9TUniqueIdRC12CTransform4f9TUniqueIdfffff
__ct__18CFirstPersonCameraFRC9TUniqueIdRC12CTransform4f9TUniqueIdfffff:
/* 8000FAE4 0000CA44 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 8000FAE8 0000CA48 7C 08 02 A6 */ mflr r0
/* 8000FAEC 0000CA4C 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 8000FAF0 0000CA50 DB E1 00 B0 */ stfd f31, 0xb0(r1)
/* 8000FAF4 0000CA54 F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0
/* 8000FAF8 0000CA58 DB C1 00 A0 */ stfd f30, 0xa0(r1)
/* 8000FAFC 0000CA5C F3 C1 00 A8 */ psq_st f30, 168(r1), 0, qr0
/* 8000FB00 0000CA60 DB A1 00 90 */ stfd f29, 0x90(r1)
/* 8000FB04 0000CA64 F3 A1 00 98 */ psq_st f29, 152(r1), 0, qr0
/* 8000FB08 0000CA68 DB 81 00 80 */ stfd f28, 0x80(r1)
/* 8000FB0C 0000CA6C F3 81 00 88 */ psq_st f28, 136(r1), 0, qr0
/* 8000FB10 0000CA70 DB 61 00 70 */ stfd f27, 0x70(r1)
/* 8000FB14 0000CA74 F3 61 00 78 */ psq_st f27, 120(r1), 0, qr0
/* 8000FB18 0000CA78 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 8000FB1C 0000CA7C 93 C1 00 68 */ stw r30, 0x68(r1)
/* 8000FB20 0000CA80 93 A1 00 64 */ stw r29, 0x64(r1)
/* 8000FB24 0000CA84 93 81 00 60 */ stw r28, 0x60(r1)
/* 8000FB28 0000CA88 3C E0 80 3D */ lis r7, lbl_803CC420@ha
/* 8000FB2C 0000CA8C FF 60 08 90 */ fmr f27, f1
/* 8000FB30 0000CA90 FF 80 10 90 */ fmr f28, f2
/* 8000FB34 0000CA94 38 07 C4 20 */ addi r0, r7, lbl_803CC420@l
/* 8000FB38 0000CA98 7C 7E 1B 78 */ mr r30, r3
/* 8000FB3C 0000CA9C 7C 9C 23 78 */ mr r28, r4
/* 8000FB40 0000CAA0 FF A0 18 90 */ fmr f29, f3
/* 8000FB44 0000CAA4 FF C0 20 90 */ fmr f30, f4
/* 8000FB48 0000CAA8 FF E0 28 90 */ fmr f31, f5
/* 8000FB4C 0000CAAC 7C BF 2B 78 */ mr r31, r5
/* 8000FB50 0000CAB0 7C DD 33 78 */ mr r29, r6
/* 8000FB54 0000CAB4 7C 04 03 78 */ mr r4, r0
/* 8000FB58 0000CAB8 38 61 00 30 */ addi r3, r1, 0x30
/* 8000FB5C 0000CABC 4B FF 51 5D */ bl string_l__4rstlFPCc
/* 8000FB60 0000CAC0 80 8D A3 88 */ lwz r4, kInvalidEditorId@sda21(r13)
/* 8000FB64 0000CAC4 3C 60 80 57 */ lis r3, lbl_8056D410@ha
/* 8000FB68 0000CAC8 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13)
/* 8000FB6C 0000CACC 38 A3 D4 10 */ addi r5, r3, lbl_8056D410@l
/* 8000FB70 0000CAD0 90 81 00 28 */ stw r4, 0x28(r1)
/* 8000FB74 0000CAD4 38 61 00 40 */ addi r3, r1, 0x40
/* 8000FB78 0000CAD8 38 81 00 2C */ addi r4, r1, 0x2c
/* 8000FB7C 0000CADC 38 C1 00 28 */ addi r6, r1, 0x28
/* 8000FB80 0000CAE0 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8000FB84 0000CAE4 48 04 19 01 */ bl "__ct__11CEntityInfoF7TAreaIdRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>9TEditorId"
/* 8000FB88 0000CAE8 A0 7D 00 00 */ lhz r3, 0(r29)
/* 8000FB8C 0000CAEC FC 20 E0 90 */ fmr f1, f28
/* 8000FB90 0000CAF0 A0 1C 00 00 */ lhz r0, 0(r28)
/* 8000FB94 0000CAF4 FC 40 E8 90 */ fmr f2, f29
/* 8000FB98 0000CAF8 B0 61 00 10 */ sth r3, 0x10(r1)
/* 8000FB9C 0000CAFC FC 60 F0 90 */ fmr f3, f30
/* 8000FBA0 0000CB00 FC 80 F8 90 */ fmr f4, f31
/* 8000FBA4 0000CB04 B0 01 00 14 */ sth r0, 0x14(r1)
/* 8000FBA8 0000CB08 38 00 00 00 */ li r0, 0
/* 8000FBAC 0000CB0C 7F C3 F3 78 */ mr r3, r30
/* 8000FBB0 0000CB10 7F E8 FB 78 */ mr r8, r31
/* 8000FBB4 0000CB14 90 01 00 08 */ stw r0, 8(r1)
/* 8000FBB8 0000CB18 38 81 00 14 */ addi r4, r1, 0x14
/* 8000FBBC 0000CB1C 38 C1 00 30 */ addi r6, r1, 0x30
/* 8000FBC0 0000CB20 38 E1 00 40 */ addi r7, r1, 0x40
/* 8000FBC4 0000CB24 39 21 00 10 */ addi r9, r1, 0x10
/* 8000FBC8 0000CB28 38 A0 00 01 */ li r5, 1
/* 8000FBCC 0000CB2C 39 40 00 00 */ li r10, 0
/* 8000FBD0 0000CB30 48 04 DE ED */ bl "__ct__11CGameCameraF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fffff9TUniqueIdbi"
/* 8000FBD4 0000CB34 80 01 00 48 */ lwz r0, 0x48(r1)
/* 8000FBD8 0000CB38 80 61 00 50 */ lwz r3, 0x50(r1)
/* 8000FBDC 0000CB3C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8000FBE0 0000CB40 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8000FBE4 0000CB44 7C 64 1B 78 */ mr r4, r3
/* 8000FBE8 0000CB48 7C 03 02 14 */ add r0, r3, r0
/* 8000FBEC 0000CB4C 90 61 00 18 */ stw r3, 0x18(r1)
/* 8000FBF0 0000CB50 90 01 00 24 */ stw r0, 0x24(r1)
/* 8000FBF4 0000CB54 90 01 00 20 */ stw r0, 0x20(r1)
/* 8000FBF8 0000CB58 48 00 00 08 */ b lbl_8000FC00
lbl_8000FBFC:
/* 8000FBFC 0000CB5C 38 84 00 0C */ addi r4, r4, 0xc
lbl_8000FC00:
/* 8000FC00 0000CB60 7C 04 00 40 */ cmplw r4, r0
/* 8000FC04 0000CB64 40 82 FF F8 */ bne lbl_8000FBFC
/* 8000FC08 0000CB68 28 03 00 00 */ cmplwi r3, 0
/* 8000FC0C 0000CB6C 41 82 00 08 */ beq lbl_8000FC14
/* 8000FC10 0000CB70 48 30 5D 21 */ bl Free__7CMemoryFPCv
lbl_8000FC14:
/* 8000FC14 0000CB74 38 61 00 30 */ addi r3, r1, 0x30
/* 8000FC18 0000CB78 48 32 DE C9 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8000FC1C 0000CB7C 3C 60 80 3E */ lis r3, lbl_803D9660@ha
/* 8000FC20 0000CB80 38 00 00 00 */ li r0, 0
/* 8000FC24 0000CB84 38 63 96 60 */ addi r3, r3, lbl_803D9660@l
/* 8000FC28 0000CB88 7F E4 FB 78 */ mr r4, r31
/* 8000FC2C 0000CB8C 90 7E 00 00 */ stw r3, 0(r30)
/* 8000FC30 0000CB90 38 7E 01 90 */ addi r3, r30, 0x190
/* 8000FC34 0000CB94 D3 7E 01 88 */ stfs f27, 0x188(r30)
/* 8000FC38 0000CB98 98 1E 01 8C */ stb r0, 0x18c(r30)
/* 8000FC3C 0000CB9C 48 30 2F 39 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8000FC40 0000CBA0 C0 22 80 B0 */ lfs f1, lbl_805A9DD0@sda21(r2)
/* 8000FC44 0000CBA4 38 A0 00 00 */ li r5, 0
/* 8000FC48 0000CBA8 3C 80 80 5A */ lis r4, skZero3f@ha
/* 8000FC4C 0000CBAC 7F C3 F3 78 */ mr r3, r30
/* 8000FC50 0000CBB0 D0 3E 01 C0 */ stfs f1, 0x1c0(r30)
/* 8000FC54 0000CBB4 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8000FC58 0000CBB8 B0 1E 01 C4 */ sth r0, 0x1c4(r30)
/* 8000FC5C 0000CBBC 88 1E 01 C6 */ lbz r0, 0x1c6(r30)
/* 8000FC60 0000CBC0 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
/* 8000FC64 0000CBC4 98 1E 01 C6 */ stb r0, 0x1c6(r30)
/* 8000FC68 0000CBC8 C4 04 66 A0 */ lfsu f0, skZero3f@l(r4)
/* 8000FC6C 0000CBCC D0 1E 01 C8 */ stfs f0, 0x1c8(r30)
/* 8000FC70 0000CBD0 C0 04 00 04 */ lfs f0, 4(r4)
/* 8000FC74 0000CBD4 D0 1E 01 CC */ stfs f0, 0x1cc(r30)
/* 8000FC78 0000CBD8 C0 04 00 08 */ lfs f0, 8(r4)
/* 8000FC7C 0000CBDC D0 1E 01 D0 */ stfs f0, 0x1d0(r30)
/* 8000FC80 0000CBE0 D0 3E 01 D4 */ stfs f1, 0x1d4(r30)
/* 8000FC84 0000CBE4 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0
/* 8000FC88 0000CBE8 CB E1 00 B0 */ lfd f31, 0xb0(r1)
/* 8000FC8C 0000CBEC E3 C1 00 A8 */ psq_l f30, 168(r1), 0, qr0
/* 8000FC90 0000CBF0 CB C1 00 A0 */ lfd f30, 0xa0(r1)
/* 8000FC94 0000CBF4 E3 A1 00 98 */ psq_l f29, 152(r1), 0, qr0
/* 8000FC98 0000CBF8 CB A1 00 90 */ lfd f29, 0x90(r1)
/* 8000FC9C 0000CBFC E3 81 00 88 */ psq_l f28, 136(r1), 0, qr0
/* 8000FCA0 0000CC00 CB 81 00 80 */ lfd f28, 0x80(r1)
/* 8000FCA4 0000CC04 E3 61 00 78 */ psq_l f27, 120(r1), 0, qr0
/* 8000FCA8 0000CC08 CB 61 00 70 */ lfd f27, 0x70(r1)
/* 8000FCAC 0000CC0C 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 8000FCB0 0000CC10 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 8000FCB4 0000CC14 83 A1 00 64 */ lwz r29, 0x64(r1)
/* 8000FCB8 0000CC18 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 8000FCBC 0000CC1C 83 81 00 60 */ lwz r28, 0x60(r1)
/* 8000FCC0 0000CC20 7C 08 03 A6 */ mtlr r0
/* 8000FCC4 0000CC24 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8000FCC8 0000CC28 4E 80 00 20 */ blr