prime/asm/MetroidPrime/Weapons/CEnergyProjectile.s

2172 lines
112 KiB
ArmAsm

.include "macros.inc"
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CEnergyProjectile_cpp
.section .data
.balign 8
.global __vt__17CEnergyProjectile
__vt__17CEnergyProjectile:
# ROM: 0x3E4158
.4byte 0
.4byte 0
.4byte __dt__17CEnergyProjectileFv
.4byte Accept__17CEnergyProjectileFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__17CEnergyProjectileFfR13CStateManager
.4byte AcceptScriptMsg__17CEnergyProjectileF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__6CActorFUc
.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__17CEnergyProjectileCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__17CEnergyProjectileCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__6CActorFv
.4byte HealthInfo__6CActorFR13CStateManager
.4byte GetDamageVulnerability__6CActorCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__15CGameProjectileCFv
.4byte Touch__17CEnergyProjectileFR6CActorR13CStateManager
.4byte GetOrbitPosition__6CActorCFRC13CStateManager
.4byte GetAimPosition__6CActorCFRC13CStateManagerf
.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
.4byte GetCollisionResponseType__7CWeaponCFRC9CVector3fRC9CVector3fRC11CWeaponModei
.4byte FluidFXThink__15CGameProjectileFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
.4byte GetSortingBounds__6CActorCFRC13CStateManager
.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventTypef
.4byte ResolveCollisionWithActor__17CEnergyProjectileFRC14CRayCastResultR6CActorR13CStateManager
.4byte Explode__17CEnergyProjectileFRC9CVector3fRC9CVector3f29EWeaponCollisionResponseTypesR13CStateManagerRC20CDamageVulnerability9TUniqueId
.4byte 0
.section .sbss, "wa"
.balign 8
.global lbl_805A90B8
lbl_805A90B8:
.skip 0x4
.global lbl_805A90BC
lbl_805A90BC:
.skip 0x4
.section .text, "ax"
.global SetCameraShake__17CEnergyProjectileFRC16CCameraShakeData
SetCameraShake__17CEnergyProjectileFRC16CCameraShakeData:
/* 80213ACC 00210A2C C0 04 00 00 */ lfs f0, 0(r4)
/* 80213AD0 00210A30 38 A0 00 01 */ li r5, 1
/* 80213AD4 00210A34 D0 03 02 FC */ stfs f0, 0x2fc(r3)
/* 80213AD8 00210A38 C0 04 00 04 */ lfs f0, 4(r4)
/* 80213ADC 00210A3C D0 03 03 00 */ stfs f0, 0x300(r3)
/* 80213AE0 00210A40 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80213AE4 00210A44 90 03 03 08 */ stw r0, 0x308(r3)
/* 80213AE8 00210A48 80 C4 00 10 */ lwz r6, 0x10(r4)
/* 80213AEC 00210A4C 80 04 00 14 */ lwz r0, 0x14(r4)
/* 80213AF0 00210A50 90 C3 03 0C */ stw r6, 0x30c(r3)
/* 80213AF4 00210A54 90 03 03 10 */ stw r0, 0x310(r3)
/* 80213AF8 00210A58 80 C4 00 18 */ lwz r6, 0x18(r4)
/* 80213AFC 00210A5C 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 80213B00 00210A60 90 C3 03 14 */ stw r6, 0x314(r3)
/* 80213B04 00210A64 90 03 03 18 */ stw r0, 0x318(r3)
/* 80213B08 00210A68 80 C4 00 20 */ lwz r6, 0x20(r4)
/* 80213B0C 00210A6C 80 04 00 24 */ lwz r0, 0x24(r4)
/* 80213B10 00210A70 90 C3 03 1C */ stw r6, 0x31c(r3)
/* 80213B14 00210A74 90 03 03 20 */ stw r0, 0x320(r3)
/* 80213B18 00210A78 80 C4 00 28 */ lwz r6, 0x28(r4)
/* 80213B1C 00210A7C 80 04 00 2C */ lwz r0, 0x2c(r4)
/* 80213B20 00210A80 90 C3 03 24 */ stw r6, 0x324(r3)
/* 80213B24 00210A84 90 03 03 28 */ stw r0, 0x328(r3)
/* 80213B28 00210A88 80 C4 00 30 */ lwz r6, 0x30(r4)
/* 80213B2C 00210A8C 80 04 00 34 */ lwz r0, 0x34(r4)
/* 80213B30 00210A90 90 C3 03 2C */ stw r6, 0x32c(r3)
/* 80213B34 00210A94 90 03 03 30 */ stw r0, 0x330(r3)
/* 80213B38 00210A98 80 C4 00 38 */ lwz r6, 0x38(r4)
/* 80213B3C 00210A9C 80 04 00 3C */ lwz r0, 0x3c(r4)
/* 80213B40 00210AA0 90 C3 03 34 */ stw r6, 0x334(r3)
/* 80213B44 00210AA4 90 03 03 38 */ stw r0, 0x338(r3)
/* 80213B48 00210AA8 C0 04 00 40 */ lfs f0, 0x40(r4)
/* 80213B4C 00210AAC D0 03 03 3C */ stfs f0, 0x33c(r3)
/* 80213B50 00210AB0 80 04 00 48 */ lwz r0, 0x48(r4)
/* 80213B54 00210AB4 90 03 03 44 */ stw r0, 0x344(r3)
/* 80213B58 00210AB8 80 C4 00 4C */ lwz r6, 0x4c(r4)
/* 80213B5C 00210ABC 80 04 00 50 */ lwz r0, 0x50(r4)
/* 80213B60 00210AC0 90 C3 03 48 */ stw r6, 0x348(r3)
/* 80213B64 00210AC4 90 03 03 4C */ stw r0, 0x34c(r3)
/* 80213B68 00210AC8 80 C4 00 54 */ lwz r6, 0x54(r4)
/* 80213B6C 00210ACC 80 04 00 58 */ lwz r0, 0x58(r4)
/* 80213B70 00210AD0 90 C3 03 50 */ stw r6, 0x350(r3)
/* 80213B74 00210AD4 90 03 03 54 */ stw r0, 0x354(r3)
/* 80213B78 00210AD8 80 C4 00 5C */ lwz r6, 0x5c(r4)
/* 80213B7C 00210ADC 80 04 00 60 */ lwz r0, 0x60(r4)
/* 80213B80 00210AE0 90 C3 03 58 */ stw r6, 0x358(r3)
/* 80213B84 00210AE4 90 03 03 5C */ stw r0, 0x35c(r3)
/* 80213B88 00210AE8 80 C4 00 64 */ lwz r6, 0x64(r4)
/* 80213B8C 00210AEC 80 04 00 68 */ lwz r0, 0x68(r4)
/* 80213B90 00210AF0 90 C3 03 60 */ stw r6, 0x360(r3)
/* 80213B94 00210AF4 90 03 03 64 */ stw r0, 0x364(r3)
/* 80213B98 00210AF8 80 C4 00 6C */ lwz r6, 0x6c(r4)
/* 80213B9C 00210AFC 80 04 00 70 */ lwz r0, 0x70(r4)
/* 80213BA0 00210B00 90 C3 03 68 */ stw r6, 0x368(r3)
/* 80213BA4 00210B04 90 03 03 6C */ stw r0, 0x36c(r3)
/* 80213BA8 00210B08 80 C4 00 74 */ lwz r6, 0x74(r4)
/* 80213BAC 00210B0C 80 04 00 78 */ lwz r0, 0x78(r4)
/* 80213BB0 00210B10 90 C3 03 70 */ stw r6, 0x370(r3)
/* 80213BB4 00210B14 90 03 03 74 */ stw r0, 0x374(r3)
/* 80213BB8 00210B18 C0 04 00 7C */ lfs f0, 0x7c(r4)
/* 80213BBC 00210B1C D0 03 03 78 */ stfs f0, 0x378(r3)
/* 80213BC0 00210B20 80 04 00 84 */ lwz r0, 0x84(r4)
/* 80213BC4 00210B24 90 03 03 80 */ stw r0, 0x380(r3)
/* 80213BC8 00210B28 80 C4 00 88 */ lwz r6, 0x88(r4)
/* 80213BCC 00210B2C 80 04 00 8C */ lwz r0, 0x8c(r4)
/* 80213BD0 00210B30 90 C3 03 84 */ stw r6, 0x384(r3)
/* 80213BD4 00210B34 90 03 03 88 */ stw r0, 0x388(r3)
/* 80213BD8 00210B38 80 C4 00 90 */ lwz r6, 0x90(r4)
/* 80213BDC 00210B3C 80 04 00 94 */ lwz r0, 0x94(r4)
/* 80213BE0 00210B40 90 C3 03 8C */ stw r6, 0x38c(r3)
/* 80213BE4 00210B44 90 03 03 90 */ stw r0, 0x390(r3)
/* 80213BE8 00210B48 80 C4 00 98 */ lwz r6, 0x98(r4)
/* 80213BEC 00210B4C 80 04 00 9C */ lwz r0, 0x9c(r4)
/* 80213BF0 00210B50 90 C3 03 94 */ stw r6, 0x394(r3)
/* 80213BF4 00210B54 90 03 03 98 */ stw r0, 0x398(r3)
/* 80213BF8 00210B58 80 C4 00 A0 */ lwz r6, 0xa0(r4)
/* 80213BFC 00210B5C 80 04 00 A4 */ lwz r0, 0xa4(r4)
/* 80213C00 00210B60 90 C3 03 9C */ stw r6, 0x39c(r3)
/* 80213C04 00210B64 90 03 03 A0 */ stw r0, 0x3a0(r3)
/* 80213C08 00210B68 80 C4 00 A8 */ lwz r6, 0xa8(r4)
/* 80213C0C 00210B6C 80 04 00 AC */ lwz r0, 0xac(r4)
/* 80213C10 00210B70 90 C3 03 A4 */ stw r6, 0x3a4(r3)
/* 80213C14 00210B74 90 03 03 A8 */ stw r0, 0x3a8(r3)
/* 80213C18 00210B78 80 C4 00 B0 */ lwz r6, 0xb0(r4)
/* 80213C1C 00210B7C 80 04 00 B4 */ lwz r0, 0xb4(r4)
/* 80213C20 00210B80 90 C3 03 AC */ stw r6, 0x3ac(r3)
/* 80213C24 00210B84 90 03 03 B0 */ stw r0, 0x3b0(r3)
/* 80213C28 00210B88 C0 04 00 B8 */ lfs f0, 0xb8(r4)
/* 80213C2C 00210B8C D0 03 03 B4 */ stfs f0, 0x3b4(r3)
/* 80213C30 00210B90 80 04 00 BC */ lwz r0, 0xbc(r4)
/* 80213C34 00210B94 90 03 03 B8 */ stw r0, 0x3b8(r3)
/* 80213C38 00210B98 80 04 00 C0 */ lwz r0, 0xc0(r4)
/* 80213C3C 00210B9C 90 03 03 BC */ stw r0, 0x3bc(r3)
/* 80213C40 00210BA0 80 C4 00 C4 */ lwz r6, 0xc4(r4)
/* 80213C44 00210BA4 80 04 00 C8 */ lwz r0, 0xc8(r4)
/* 80213C48 00210BA8 90 C3 03 C0 */ stw r6, 0x3c0(r3)
/* 80213C4C 00210BAC 90 03 03 C4 */ stw r0, 0x3c4(r3)
/* 80213C50 00210BB0 80 04 00 CC */ lwz r0, 0xcc(r4)
/* 80213C54 00210BB4 90 03 03 C8 */ stw r0, 0x3c8(r3)
/* 80213C58 00210BB8 C0 04 00 D0 */ lfs f0, 0xd0(r4)
/* 80213C5C 00210BBC D0 03 03 CC */ stfs f0, 0x3cc(r3)
/* 80213C60 00210BC0 88 03 03 D0 */ lbz r0, 0x3d0(r3)
/* 80213C64 00210BC4 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 80213C68 00210BC8 98 03 03 D0 */ stb r0, 0x3d0(r3)
/* 80213C6C 00210BCC 4E 80 00 20 */ blr
.global PlayImpactSound__17CEnergyProjectileFRC9CVector3f29EWeaponCollisionResponseTypes
PlayImpactSound__17CEnergyProjectileFRC9CVector3f29EWeaponCollisionResponseTypes:
/* 80213C70 00210BD0 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80213C74 00210BD4 7C 08 02 A6 */ mflr r0
/* 80213C78 00210BD8 90 01 00 64 */ stw r0, 0x64(r1)
/* 80213C7C 00210BDC DB E1 00 50 */ stfd f31, 0x50(r1)
/* 80213C80 00210BE0 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0
/* 80213C84 00210BE4 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 80213C88 00210BE8 93 C1 00 48 */ stw r30, 0x48(r1)
/* 80213C8C 00210BEC 93 A1 00 44 */ stw r29, 0x44(r1)
/* 80213C90 00210BF0 93 81 00 40 */ stw r28, 0x40(r1)
/* 80213C94 00210BF4 7C 7C 1B 78 */ mr r28, r3
/* 80213C98 00210BF8 7C 9D 23 78 */ mr r29, r4
/* 80213C9C 00210BFC 3B DC 01 70 */ addi r30, r28, 0x170
/* 80213CA0 00210C00 7C A4 2B 78 */ mr r4, r5
/* 80213CA4 00210C04 7F C3 F3 78 */ mr r3, r30
/* 80213CA8 00210C08 48 09 B6 25 */ bl GetSoundIdForCollision__17CProjectileWeaponCF29EWeaponCollisionResponseTypes
/* 80213CAC 00210C0C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80213CB0 00210C10 41 80 00 CC */ blt lbl_80213D7C
/* 80213CB4 00210C14 7F C3 F3 78 */ mr r3, r30
/* 80213CB8 00210C18 48 09 B5 1D */ bl GetAudibleRange__17CProjectileWeaponCFv
/* 80213CBC 00210C1C FF E0 08 90 */ fmr f31, f1
/* 80213CC0 00210C20 7F C3 F3 78 */ mr r3, r30
/* 80213CC4 00210C24 48 09 B4 9D */ bl GetAudibleFallOff__17CProjectileWeaponCFv
/* 80213CC8 00210C28 C0 82 B3 10 */ lfs f4, lbl_805AD030@sda21(r2)
/* 80213CCC 00210C2C 38 C0 00 00 */ li r6, 0
/* 80213CD0 00210C30 88 A2 CC 40 */ lbz r5, kMaxVolume__9CAudioSys@sda21(r2)
/* 80213CD4 00210C34 38 E0 00 01 */ li r7, 1
/* 80213CD8 00210C38 88 02 CC 41 */ lbz r0, lbl_805AE961@sda21(r2)
/* 80213CDC 00210C3C 38 80 00 14 */ li r4, 0x14
/* 80213CE0 00210C40 D0 81 00 14 */ stfs f4, 0x14(r1)
/* 80213CE4 00210C44 57 E3 04 3E */ clrlwi r3, r31, 0x10
/* 80213CE8 00210C48 C0 7D 00 00 */ lfs f3, 0(r29)
/* 80213CEC 00210C4C D0 81 00 18 */ stfs f4, 0x18(r1)
/* 80213CF0 00210C50 C0 5D 00 04 */ lfs f2, 4(r29)
/* 80213CF4 00210C54 D0 81 00 1C */ stfs f4, 0x1c(r1)
/* 80213CF8 00210C58 C0 1D 00 08 */ lfs f0, 8(r29)
/* 80213CFC 00210C5C D0 81 00 20 */ stfs f4, 0x20(r1)
/* 80213D00 00210C60 D0 81 00 24 */ stfs f4, 0x24(r1)
/* 80213D04 00210C64 D0 81 00 28 */ stfs f4, 0x28(r1)
/* 80213D08 00210C68 D3 E1 00 2C */ stfs f31, 0x2c(r1)
/* 80213D0C 00210C6C D0 21 00 30 */ stfs f1, 0x30(r1)
/* 80213D10 00210C70 90 E1 00 34 */ stw r7, 0x34(r1)
/* 80213D14 00210C74 B0 C1 00 38 */ sth r6, 0x38(r1)
/* 80213D18 00210C78 98 A1 00 3A */ stb r5, 0x3a(r1)
/* 80213D1C 00210C7C 98 81 00 3B */ stb r4, 0x3b(r1)
/* 80213D20 00210C80 98 C1 00 3C */ stb r6, 0x3c(r1)
/* 80213D24 00210C84 98 01 00 3D */ stb r0, 0x3d(r1)
/* 80213D28 00210C88 D0 61 00 14 */ stfs f3, 0x14(r1)
/* 80213D2C 00210C8C D0 41 00 18 */ stfs f2, 0x18(r1)
/* 80213D30 00210C90 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80213D34 00210C94 48 0D 4C 7D */ bl TranslateSFXID__11CSfxManagerFUs
/* 80213D38 00210C98 B0 61 00 38 */ sth r3, 0x38(r1)
/* 80213D3C 00210C9C 38 61 00 0C */ addi r3, r1, 0xc
/* 80213D40 00210CA0 A8 C2 C5 FA */ lha r6, kMedPriority__11CSfxManager@sda21(r2)
/* 80213D44 00210CA4 38 81 00 14 */ addi r4, r1, 0x14
/* 80213D48 00210CA8 81 02 C6 00 */ lwz r8, kAllAreas__11CSfxManager@sda21(r2)
/* 80213D4C 00210CAC 38 A0 00 01 */ li r5, 1
/* 80213D50 00210CB0 38 E0 00 00 */ li r7, 0
/* 80213D54 00210CB4 48 0D 62 8D */ bl AddEmitter__11CSfxManagerFRQ29CAudioSys18C3DEmitterParmDatabsbi
/* 80213D58 00210CB8 88 1C 02 E4 */ lbz r0, 0x2e4(r28)
/* 80213D5C 00210CBC 80 61 00 0C */ lwz r3, 0xc(r1)
/* 80213D60 00210CC0 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80213D64 00210CC4 90 61 00 10 */ stw r3, 0x10(r1)
/* 80213D68 00210CC8 41 82 00 14 */ beq lbl_80213D7C
/* 80213D6C 00210CCC 90 61 00 08 */ stw r3, 8(r1)
/* 80213D70 00210CD0 38 61 00 08 */ addi r3, r1, 8
/* 80213D74 00210CD4 38 80 00 00 */ li r4, 0
/* 80213D78 00210CD8 48 0D 51 35 */ bl PitchBend__11CSfxManagerF10CSfxHandlei
lbl_80213D7C:
/* 80213D7C 00210CDC E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0
/* 80213D80 00210CE0 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80213D84 00210CE4 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 80213D88 00210CE8 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 80213D8C 00210CEC 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80213D90 00210CF0 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 80213D94 00210CF4 83 81 00 40 */ lwz r28, 0x40(r1)
/* 80213D98 00210CF8 7C 08 03 A6 */ mtlr r0
/* 80213D9C 00210CFC 38 21 00 60 */ addi r1, r1, 0x60
/* 80213DA0 00210D00 4E 80 00 20 */ blr
.global ChangeProjectileOwner__17CEnergyProjectileF9TUniqueIdR13CStateManager
ChangeProjectileOwner__17CEnergyProjectileF9TUniqueIdR13CStateManager:
/* 80213DA4 00210D04 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80213DA8 00210D08 7C 08 02 A6 */ mflr r0
/* 80213DAC 00210D0C 90 01 00 74 */ stw r0, 0x74(r1)
/* 80213DB0 00210D10 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 80213DB4 00210D14 7C 7F 1B 78 */ mr r31, r3
/* 80213DB8 00210D18 93 C1 00 68 */ stw r30, 0x68(r1)
/* 80213DBC 00210D1C 7C BE 2B 78 */ mr r30, r5
/* 80213DC0 00210D20 7F C3 F3 78 */ mr r3, r30
/* 80213DC4 00210D24 93 A1 00 64 */ stw r29, 0x64(r1)
/* 80213DC8 00210D28 7C 9D 23 78 */ mr r29, r4
/* 80213DCC 00210D2C A0 04 00 00 */ lhz r0, 0(r4)
/* 80213DD0 00210D30 38 81 00 18 */ addi r4, r1, 0x18
/* 80213DD4 00210D34 B0 01 00 18 */ sth r0, 0x18(r1)
/* 80213DD8 00210D38 4B E3 87 CD */ bl GetObjectById__13CStateManagerCF9TUniqueId
/* 80213DDC 00210D3C 7C 64 1B 78 */ mr r4, r3
/* 80213DE0 00210D40 38 61 00 1C */ addi r3, r1, 0x1c
/* 80213DE4 00210D44 4B E9 BE AD */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 80213DE8 00210D48 80 03 00 04 */ lwz r0, 4(r3)
/* 80213DEC 00210D4C 28 00 00 00 */ cmplwi r0, 0
/* 80213DF0 00210D50 41 82 00 E8 */ beq lbl_80213ED8
/* 80213DF4 00210D54 80 6D A1 34 */ lwz r3, gpTweakPlayerGun@sda21(r13)
/* 80213DF8 00210D58 80 9F 01 10 */ lwz r4, 0x110(r31)
/* 80213DFC 00210D5C 4B E5 BE 29 */ bl GetRichochetDamage__15CTweakPlayerGunCF11EWeaponType
/* 80213E00 00210D60 C0 1F 01 18 */ lfs f0, 0x118(r31)
/* 80213E04 00210D64 7F C3 F3 78 */ mr r3, r30
/* 80213E08 00210D68 38 81 00 14 */ addi r4, r1, 0x14
/* 80213E0C 00210D6C EC 01 00 32 */ fmuls f0, f1, f0
/* 80213E10 00210D70 D0 1F 01 18 */ stfs f0, 0x118(r31)
/* 80213E14 00210D74 C0 1F 01 1C */ lfs f0, 0x11c(r31)
/* 80213E18 00210D78 EC 01 00 32 */ fmuls f0, f1, f0
/* 80213E1C 00210D7C D0 1F 01 1C */ stfs f0, 0x11c(r31)
/* 80213E20 00210D80 C0 1F 01 20 */ lfs f0, 0x120(r31)
/* 80213E24 00210D84 EC 01 00 32 */ fmuls f0, f1, f0
/* 80213E28 00210D88 D0 1F 01 20 */ stfs f0, 0x120(r31)
/* 80213E2C 00210D8C C0 1F 01 24 */ lfs f0, 0x124(r31)
/* 80213E30 00210D90 EC 01 00 32 */ fmuls f0, f1, f0
/* 80213E34 00210D94 D0 1F 01 24 */ stfs f0, 0x124(r31)
/* 80213E38 00210D98 A0 1F 00 EC */ lhz r0, 0xec(r31)
/* 80213E3C 00210D9C 80 BF 00 F0 */ lwz r5, 0xf0(r31)
/* 80213E40 00210DA0 B0 01 00 10 */ sth r0, 0x10(r1)
/* 80213E44 00210DA4 B0 01 00 14 */ sth r0, 0x14(r1)
/* 80213E48 00210DA8 4B E3 0E 91 */ bl RemoveWeaponId__13CStateManagerF9TUniqueId11EWeaponType
/* 80213E4C 00210DAC A0 DD 00 00 */ lhz r6, 0(r29)
/* 80213E50 00210DB0 7F C3 F3 78 */ mr r3, r30
/* 80213E54 00210DB4 38 81 00 08 */ addi r4, r1, 8
/* 80213E58 00210DB8 B0 DF 00 EC */ sth r6, 0xec(r31)
/* 80213E5C 00210DBC 80 BF 00 F0 */ lwz r5, 0xf0(r31)
/* 80213E60 00210DC0 A0 1D 00 00 */ lhz r0, 0(r29)
/* 80213E64 00210DC4 B0 C1 00 0C */ sth r6, 0xc(r1)
/* 80213E68 00210DC8 B0 01 00 08 */ sth r0, 8(r1)
/* 80213E6C 00210DCC 4B E3 0E 9D */ bl AddWeaponId__13CStateManagerF9TUniqueId11EWeaponType
/* 80213E70 00210DD0 81 3F 00 F8 */ lwz r9, 0xf8(r31)
/* 80213E74 00210DD4 38 00 00 03 */ li r0, 3
/* 80213E78 00210DD8 81 5F 00 FC */ lwz r10, 0xfc(r31)
/* 80213E7C 00210DDC 38 80 FF FF */ li r4, -1
/* 80213E80 00210DE0 80 FF 01 00 */ lwz r7, 0x100(r31)
/* 80213E84 00210DE4 38 60 FF FE */ li r3, -2
/* 80213E88 00210DE8 81 1F 01 04 */ lwz r8, 0x104(r31)
/* 80213E8C 00210DEC 60 E5 00 02 */ ori r5, r7, 2
/* 80213E90 00210DF0 80 DF 01 08 */ lwz r6, 0x108(r31)
/* 80213E94 00210DF4 7D 04 20 38 */ and r4, r8, r4
/* 80213E98 00210DF8 91 41 00 2C */ stw r10, 0x2c(r1)
/* 80213E9C 00210DFC 7C A3 18 38 */ and r3, r5, r3
/* 80213EA0 00210E00 91 21 00 28 */ stw r9, 0x28(r1)
/* 80213EA4 00210E04 C8 01 00 28 */ lfd f0, 0x28(r1)
/* 80213EA8 00210E08 90 81 00 34 */ stw r4, 0x34(r1)
/* 80213EAC 00210E0C 90 61 00 30 */ stw r3, 0x30(r1)
/* 80213EB0 00210E10 D8 1F 00 F8 */ stfd f0, 0xf8(r31)
/* 80213EB4 00210E14 C8 01 00 30 */ lfd f0, 0x30(r1)
/* 80213EB8 00210E18 91 41 00 44 */ stw r10, 0x44(r1)
/* 80213EBC 00210E1C D8 1F 01 00 */ stfd f0, 0x100(r31)
/* 80213EC0 00210E20 91 21 00 40 */ stw r9, 0x40(r1)
/* 80213EC4 00210E24 91 01 00 4C */ stw r8, 0x4c(r1)
/* 80213EC8 00210E28 90 E1 00 48 */ stw r7, 0x48(r1)
/* 80213ECC 00210E2C 90 C1 00 50 */ stw r6, 0x50(r1)
/* 80213ED0 00210E30 90 01 00 38 */ stw r0, 0x38(r1)
/* 80213ED4 00210E34 90 1F 01 08 */ stw r0, 0x108(r31)
lbl_80213ED8:
/* 80213ED8 00210E38 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80213EDC 00210E3C 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 80213EE0 00210E40 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 80213EE4 00210E44 83 A1 00 64 */ lwz r29, 0x64(r1)
/* 80213EE8 00210E48 7C 08 03 A6 */ mtlr r0
/* 80213EEC 00210E4C 38 21 00 70 */ addi r1, r1, 0x70
/* 80213EF0 00210E50 4E 80 00 20 */ blr
.global AcceptScriptMsg__17CEnergyProjectileF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__17CEnergyProjectileF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 80213EF4 00210E54 94 21 FE D0 */ stwu r1, -0x130(r1)
/* 80213EF8 00210E58 7C 08 02 A6 */ mflr r0
/* 80213EFC 00210E5C 90 01 01 34 */ stw r0, 0x134(r1)
/* 80213F00 00210E60 BF 41 01 18 */ stmw r26, 0x118(r1)
/* 80213F04 00210E64 7C 9C 23 78 */ mr r28, r4
/* 80213F08 00210E68 2C 1C 00 22 */ cmpwi r28, 0x22
/* 80213F0C 00210E6C 7C 7B 1B 78 */ mr r27, r3
/* 80213F10 00210E70 7C BD 2B 78 */ mr r29, r5
/* 80213F14 00210E74 7C DE 33 78 */ mr r30, r6
/* 80213F18 00210E78 41 82 00 14 */ beq lbl_80213F2C
/* 80213F1C 00210E7C 40 80 02 E0 */ bge lbl_802141FC
/* 80213F20 00210E80 2C 1C 00 21 */ cmpwi r28, 0x21
/* 80213F24 00210E84 40 80 00 58 */ bge lbl_80213F7C
/* 80213F28 00210E88 48 00 02 D4 */ b lbl_802141FC
lbl_80213F2C:
/* 80213F2C 00210E8C 88 1B 02 E4 */ lbz r0, 0x2e4(r27)
/* 80213F30 00210E90 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80213F34 00210E94 41 82 00 20 */ beq lbl_80213F54
/* 80213F38 00210E98 A0 1B 00 EC */ lhz r0, 0xec(r27)
/* 80213F3C 00210E9C 7F C3 F3 78 */ mr r3, r30
/* 80213F40 00210EA0 80 BB 00 F0 */ lwz r5, 0xf0(r27)
/* 80213F44 00210EA4 38 81 00 18 */ addi r4, r1, 0x18
/* 80213F48 00210EA8 B0 01 00 14 */ sth r0, 0x14(r1)
/* 80213F4C 00210EAC B0 01 00 18 */ sth r0, 0x18(r1)
/* 80213F50 00210EB0 4B E3 0D 89 */ bl RemoveWeaponId__13CStateManagerF9TUniqueId11EWeaponType
lbl_80213F54:
/* 80213F54 00210EB4 80 1B 02 E8 */ lwz r0, 0x2e8(r27)
/* 80213F58 00210EB8 28 00 00 00 */ cmplwi r0, 0
/* 80213F5C 00210EBC 41 82 02 A0 */ beq lbl_802141FC
/* 80213F60 00210EC0 80 1B 02 E8 */ lwz r0, 0x2e8(r27)
/* 80213F64 00210EC4 38 61 00 20 */ addi r3, r1, 0x20
/* 80213F68 00210EC8 90 01 00 20 */ stw r0, 0x20(r1)
/* 80213F6C 00210ECC 48 0D 5F 19 */ bl RemoveEmitter__11CSfxManagerF10CSfxHandle
/* 80213F70 00210ED0 38 00 00 00 */ li r0, 0
/* 80213F74 00210ED4 90 1B 02 E8 */ stw r0, 0x2e8(r27)
/* 80213F78 00210ED8 48 00 02 84 */ b lbl_802141FC
lbl_80213F7C:
/* 80213F7C 00210EDC 3B FB 01 70 */ addi r31, r27, 0x170
/* 80213F80 00210EE0 80 7B 02 6C */ lwz r3, 0x26c(r27)
/* 80213F84 00210EE4 28 03 00 00 */ cmplwi r3, 0
/* 80213F88 00210EE8 41 82 00 60 */ beq lbl_80213FE8
/* 80213F8C 00210EEC 81 83 00 00 */ lwz r12, 0(r3)
/* 80213F90 00210EF0 81 8C 00 64 */ lwz r12, 0x64(r12)
/* 80213F94 00210EF4 7D 89 03 A6 */ mtctr r12
/* 80213F98 00210EF8 4E 80 04 21 */ bctrl
/* 80213F9C 00210EFC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80213FA0 00210F00 41 82 00 48 */ beq lbl_80213FE8
/* 80213FA4 00210F04 3C 80 80 3D */ lis r4, lbl_803D2890@ha
/* 80213FA8 00210F08 38 61 00 80 */ addi r3, r1, 0x80
/* 80213FAC 00210F0C 38 84 28 90 */ addi r4, r4, lbl_803D2890@l
/* 80213FB0 00210F10 4B DF 0D 09 */ bl string_l__4rstlFPCc
/* 80213FB4 00210F14 80 9F 00 FC */ lwz r4, 0xfc(r31)
/* 80213FB8 00210F18 38 61 00 BC */ addi r3, r1, 0xbc
/* 80213FBC 00210F1C 81 84 00 00 */ lwz r12, 0(r4)
/* 80213FC0 00210F20 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 80213FC4 00210F24 7D 89 03 A6 */ mtctr r12
/* 80213FC8 00210F28 4E 80 04 21 */ bctrl
/* 80213FCC 00210F2C 7F 63 DB 78 */ mr r3, r27
/* 80213FD0 00210F30 7F C6 F3 78 */ mr r6, r30
/* 80213FD4 00210F34 38 81 00 80 */ addi r4, r1, 0x80
/* 80213FD8 00210F38 38 A1 00 BC */ addi r5, r1, 0xbc
/* 80213FDC 00210F3C 4B E2 39 21 */ bl "CreateProjectileLight__15CGameProjectileFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC6CLightR13CStateManager"
/* 80213FE0 00210F40 38 61 00 80 */ addi r3, r1, 0x80
/* 80213FE4 00210F44 48 12 9A FD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_80213FE8:
/* 80213FE8 00210F48 7F E4 FB 78 */ mr r4, r31
/* 80213FEC 00210F4C 38 61 00 74 */ addi r3, r1, 0x74
/* 80213FF0 00210F50 4B E2 45 91 */ bl GetWeaponDescription__17CProjectileWeaponCFv
/* 80213FF4 00210F54 80 A1 00 7C */ lwz r5, 0x7c(r1)
/* 80213FF8 00210F58 38 61 00 74 */ addi r3, r1, 0x74
/* 80213FFC 00210F5C 38 80 00 00 */ li r4, 0
/* 80214000 00210F60 80 05 00 A8 */ lwz r0, 0xa8(r5)
/* 80214004 00210F64 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80214008 00210F68 68 1A 00 01 */ xori r26, r0, 1
/* 8021400C 00210F6C 48 12 CE 35 */ bl __dt__6CTokenFv
/* 80214010 00210F70 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 80214014 00210F74 41 82 01 CC */ beq lbl_802141E0
/* 80214018 00210F78 C0 22 B3 14 */ lfs f1, lbl_805AD034@sda21(r2)
/* 8021401C 00210F7C 7F E4 FB 78 */ mr r4, r31
/* 80214020 00210F80 C0 02 B3 18 */ lfs f0, lbl_805AD038@sda21(r2)
/* 80214024 00210F84 38 61 00 68 */ addi r3, r1, 0x68
/* 80214028 00210F88 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8021402C 00210F8C D0 01 00 24 */ stfs f0, 0x24(r1)
/* 80214030 00210F90 4B E2 45 51 */ bl GetWeaponDescription__17CProjectileWeaponCFv
/* 80214034 00210F94 80 A1 00 70 */ lwz r5, 0x70(r1)
/* 80214038 00210F98 38 61 00 68 */ addi r3, r1, 0x68
/* 8021403C 00210F9C 38 80 00 00 */ li r4, 0
/* 80214040 00210FA0 83 45 00 AC */ lwz r26, 0xac(r5)
/* 80214044 00210FA4 48 12 CD FD */ bl __dt__6CTokenFv
/* 80214048 00210FA8 28 1A 00 00 */ cmplwi r26, 0
/* 8021404C 00210FAC 41 82 00 3C */ beq lbl_80214088
/* 80214050 00210FB0 7F E4 FB 78 */ mr r4, r31
/* 80214054 00210FB4 38 61 00 5C */ addi r3, r1, 0x5c
/* 80214058 00210FB8 4B E2 45 29 */ bl GetWeaponDescription__17CProjectileWeaponCFv
/* 8021405C 00210FBC 80 61 00 64 */ lwz r3, 0x64(r1)
/* 80214060 00210FC0 38 A1 00 28 */ addi r5, r1, 0x28
/* 80214064 00210FC4 38 80 00 00 */ li r4, 0
/* 80214068 00210FC8 80 63 00 AC */ lwz r3, 0xac(r3)
/* 8021406C 00210FCC 81 83 00 00 */ lwz r12, 0(r3)
/* 80214070 00210FD0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80214074 00210FD4 7D 89 03 A6 */ mtctr r12
/* 80214078 00210FD8 4E 80 04 21 */ bctrl
/* 8021407C 00210FDC 38 61 00 5C */ addi r3, r1, 0x5c
/* 80214080 00210FE0 38 80 00 00 */ li r4, 0
/* 80214084 00210FE4 48 12 CD BD */ bl __dt__6CTokenFv
lbl_80214088:
/* 80214088 00210FE8 7F E4 FB 78 */ mr r4, r31
/* 8021408C 00210FEC 38 61 00 50 */ addi r3, r1, 0x50
/* 80214090 00210FF0 4B E2 44 F1 */ bl GetWeaponDescription__17CProjectileWeaponCFv
/* 80214094 00210FF4 80 A1 00 58 */ lwz r5, 0x58(r1)
/* 80214098 00210FF8 38 61 00 50 */ addi r3, r1, 0x50
/* 8021409C 00210FFC 38 80 00 00 */ li r4, 0
/* 802140A0 00211000 83 45 00 B0 */ lwz r26, 0xb0(r5)
/* 802140A4 00211004 48 12 CD 9D */ bl __dt__6CTokenFv
/* 802140A8 00211008 28 1A 00 00 */ cmplwi r26, 0
/* 802140AC 0021100C 41 82 00 3C */ beq lbl_802140E8
/* 802140B0 00211010 7F E4 FB 78 */ mr r4, r31
/* 802140B4 00211014 38 61 00 44 */ addi r3, r1, 0x44
/* 802140B8 00211018 4B E2 44 C9 */ bl GetWeaponDescription__17CProjectileWeaponCFv
/* 802140BC 0021101C 80 61 00 4C */ lwz r3, 0x4c(r1)
/* 802140C0 00211020 38 A1 00 24 */ addi r5, r1, 0x24
/* 802140C4 00211024 38 80 00 00 */ li r4, 0
/* 802140C8 00211028 80 63 00 B0 */ lwz r3, 0xb0(r3)
/* 802140CC 0021102C 81 83 00 00 */ lwz r12, 0(r3)
/* 802140D0 00211030 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802140D4 00211034 7D 89 03 A6 */ mtctr r12
/* 802140D8 00211038 4E 80 04 21 */ bctrl
/* 802140DC 0021103C 38 61 00 44 */ addi r3, r1, 0x44
/* 802140E0 00211040 38 80 00 00 */ li r4, 0
/* 802140E4 00211044 48 12 CD 5D */ bl __dt__6CTokenFv
lbl_802140E8:
/* 802140E8 00211048 C0 42 B3 10 */ lfs f2, lbl_805AD030@sda21(r2)
/* 802140EC 0021104C 38 E0 00 00 */ li r7, 0
/* 802140F0 00211050 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 802140F4 00211054 39 00 00 09 */ li r8, 9
/* 802140F8 00211058 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 802140FC 0021105C 38 C0 00 FF */ li r6, 0xff
/* 80214100 00211060 88 02 CC 41 */ lbz r0, lbl_805AE961@sda21(r2)
/* 80214104 00211064 38 A0 00 14 */ li r5, 0x14
/* 80214108 00211068 D0 41 00 90 */ stfs f2, 0x90(r1)
/* 8021410C 0021106C 38 9B 01 70 */ addi r4, r27, 0x170
/* 80214110 00211070 38 61 00 38 */ addi r3, r1, 0x38
/* 80214114 00211074 D0 41 00 94 */ stfs f2, 0x94(r1)
/* 80214118 00211078 D0 41 00 98 */ stfs f2, 0x98(r1)
/* 8021411C 0021107C D0 41 00 9C */ stfs f2, 0x9c(r1)
/* 80214120 00211080 D0 41 00 A0 */ stfs f2, 0xa0(r1)
/* 80214124 00211084 D0 41 00 A4 */ stfs f2, 0xa4(r1)
/* 80214128 00211088 D0 21 00 A8 */ stfs f1, 0xa8(r1)
/* 8021412C 0021108C D0 01 00 AC */ stfs f0, 0xac(r1)
/* 80214130 00211090 91 01 00 B0 */ stw r8, 0xb0(r1)
/* 80214134 00211094 B0 E1 00 B4 */ sth r7, 0xb4(r1)
/* 80214138 00211098 98 C1 00 B6 */ stb r6, 0xb6(r1)
/* 8021413C 0021109C 98 A1 00 B7 */ stb r5, 0xb7(r1)
/* 80214140 002110A0 98 E1 00 B8 */ stb r7, 0xb8(r1)
/* 80214144 002110A4 98 01 00 B9 */ stb r0, 0xb9(r1)
/* 80214148 002110A8 81 9B 01 70 */ lwz r12, 0x170(r27)
/* 8021414C 002110AC 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80214150 002110B0 7D 89 03 A6 */ mtctr r12
/* 80214154 002110B4 4E 80 04 21 */ bctrl
/* 80214158 002110B8 C0 41 00 38 */ lfs f2, 0x38(r1)
/* 8021415C 002110BC 38 7B 01 70 */ addi r3, r27, 0x170
/* 80214160 002110C0 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 80214164 002110C4 C0 01 00 40 */ lfs f0, 0x40(r1)
/* 80214168 002110C8 D0 41 00 90 */ stfs f2, 0x90(r1)
/* 8021416C 002110CC D0 21 00 94 */ stfs f1, 0x94(r1)
/* 80214170 002110D0 D0 01 00 98 */ stfs f0, 0x98(r1)
/* 80214174 002110D4 48 09 AF C1 */ bl GetVelocity__17CProjectileWeaponCFv
/* 80214178 002110D8 C0 03 00 00 */ lfs f0, 0(r3)
/* 8021417C 002110DC 38 9B 01 70 */ addi r4, r27, 0x170
/* 80214180 002110E0 D0 01 00 9C */ stfs f0, 0x9c(r1)
/* 80214184 002110E4 C0 03 00 04 */ lfs f0, 4(r3)
/* 80214188 002110E8 D0 01 00 A0 */ stfs f0, 0xa0(r1)
/* 8021418C 002110EC C0 03 00 08 */ lfs f0, 8(r3)
/* 80214190 002110F0 38 61 00 2C */ addi r3, r1, 0x2c
/* 80214194 002110F4 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 80214198 002110F8 4B E2 43 E9 */ bl GetWeaponDescription__17CProjectileWeaponCFv
/* 8021419C 002110FC 80 61 00 34 */ lwz r3, 0x34(r1)
/* 802141A0 00211100 80 03 00 A8 */ lwz r0, 0xa8(r3)
/* 802141A4 00211104 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 802141A8 00211108 48 0D 48 09 */ bl TranslateSFXID__11CSfxManagerFUs
/* 802141AC 0021110C B0 61 00 B4 */ sth r3, 0xb4(r1)
/* 802141B0 00211110 38 61 00 2C */ addi r3, r1, 0x2c
/* 802141B4 00211114 38 80 00 00 */ li r4, 0
/* 802141B8 00211118 48 12 CC 89 */ bl __dt__6CTokenFv
/* 802141BC 0021111C A8 C2 C5 FA */ lha r6, kMedPriority__11CSfxManager@sda21(r2)
/* 802141C0 00211120 38 61 00 1C */ addi r3, r1, 0x1c
/* 802141C4 00211124 81 02 C6 00 */ lwz r8, kAllAreas__11CSfxManager@sda21(r2)
/* 802141C8 00211128 38 81 00 90 */ addi r4, r1, 0x90
/* 802141CC 0021112C 38 A0 00 01 */ li r5, 1
/* 802141D0 00211130 38 E0 00 01 */ li r7, 1
/* 802141D4 00211134 48 0D 5E 0D */ bl AddEmitter__11CSfxManagerFRQ29CAudioSys18C3DEmitterParmDatabsbi
/* 802141D8 00211138 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 802141DC 0021113C 90 1B 02 E8 */ stw r0, 0x2e8(r27)
lbl_802141E0:
/* 802141E0 00211140 A0 1B 00 EC */ lhz r0, 0xec(r27)
/* 802141E4 00211144 7F C3 F3 78 */ mr r3, r30
/* 802141E8 00211148 80 BB 00 F0 */ lwz r5, 0xf0(r27)
/* 802141EC 0021114C 38 81 00 10 */ addi r4, r1, 0x10
/* 802141F0 00211150 B0 01 00 0C */ sth r0, 0xc(r1)
/* 802141F4 00211154 B0 01 00 10 */ sth r0, 0x10(r1)
/* 802141F8 00211158 4B E3 0B 11 */ bl AddWeaponId__13CStateManagerF9TUniqueId11EWeaponType
lbl_802141FC:
/* 802141FC 0021115C A0 1D 00 00 */ lhz r0, 0(r29)
/* 80214200 00211160 7F 63 DB 78 */ mr r3, r27
/* 80214204 00211164 7F 84 E3 78 */ mr r4, r28
/* 80214208 00211168 7F C6 F3 78 */ mr r6, r30
/* 8021420C 0021116C B0 01 00 08 */ sth r0, 8(r1)
/* 80214210 00211170 38 A1 00 08 */ addi r5, r1, 8
/* 80214214 00211174 4B E2 43 B9 */ bl AcceptScriptMsg__15CGameProjectileF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 80214218 00211178 BB 41 01 18 */ lmw r26, 0x118(r1)
/* 8021421C 0021117C 80 01 01 34 */ lwz r0, 0x134(r1)
/* 80214220 00211180 7C 08 03 A6 */ mtlr r0
/* 80214224 00211184 38 21 01 30 */ addi r1, r1, 0x130
/* 80214228 00211188 4E 80 00 20 */ blr
.global Accept__17CEnergyProjectileFR8IVisitor
Accept__17CEnergyProjectileFR8IVisitor:
/* 8021422C 0021118C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80214230 00211190 7C 08 02 A6 */ mflr r0
/* 80214234 00211194 90 01 00 14 */ stw r0, 0x14(r1)
/* 80214238 00211198 7C 60 1B 78 */ mr r0, r3
/* 8021423C 0021119C 7C 83 23 78 */ mr r3, r4
/* 80214240 002111A0 81 84 00 00 */ lwz r12, 0(r4)
/* 80214244 002111A4 7C 04 03 78 */ mr r4, r0
/* 80214248 002111A8 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 8021424C 002111AC 7D 89 03 A6 */ mtctr r12
/* 80214250 002111B0 4E 80 04 21 */ bctrl
/* 80214254 002111B4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80214258 002111B8 7C 08 03 A6 */ mtlr r0
/* 8021425C 002111BC 38 21 00 10 */ addi r1, r1, 0x10
/* 80214260 002111C0 4E 80 00 20 */ blr
.global ResolveCollisionWithWorld__17CEnergyProjectileFRC14CRayCastResultR13CStateManager
ResolveCollisionWithWorld__17CEnergyProjectileFRC14CRayCastResultR13CStateManager:
/* 80214264 002111C4 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80214268 002111C8 7C 08 02 A6 */ mflr r0
/* 8021426C 002111CC 90 01 00 44 */ stw r0, 0x44(r1)
/* 80214270 002111D0 38 00 00 00 */ li r0, 0
/* 80214274 002111D4 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 80214278 002111D8 7C BF 2B 78 */ mr r31, r5
/* 8021427C 002111DC 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80214280 002111E0 7C 9E 23 78 */ mr r30, r4
/* 80214284 002111E4 93 A1 00 34 */ stw r29, 0x34(r1)
/* 80214288 002111E8 7C 7D 1B 78 */ mr r29, r3
/* 8021428C 002111EC 80 C4 00 28 */ lwz r6, 0x28(r4)
/* 80214290 002111F0 38 80 FF FF */ li r4, -1
/* 80214294 002111F4 81 0D A4 F8 */ lwz r8, lbl_805A90B8@sda21(r13)
/* 80214298 002111F8 81 2D A4 FC */ lwz r9, lbl_805A90BC@sda21(r13)
/* 8021429C 002111FC 80 FE 00 2C */ lwz r7, 0x2c(r30)
/* 802142A0 00211200 7D 06 30 38 */ and r6, r8, r6
/* 802142A4 00211204 7C C3 00 38 */ and r3, r6, r0
/* 802142A8 00211208 7D 25 38 38 */ and r5, r9, r7
/* 802142AC 0021120C 7C A4 20 38 */ and r4, r5, r4
/* 802142B0 00211210 48 0B B9 59 */ bl BitPosition__13CMaterialListFUx
/* 802142B4 00211214 48 09 E1 11 */ bl GetWorldCollisionResponseType__22CCollisionResponseDataFi
/* 802142B8 00211218 80 1D 00 E8 */ lwz r0, 0xe8(r29)
/* 802142BC 0021121C 7C 66 1B 78 */ mr r6, r3
/* 802142C0 00211220 70 00 00 90 */ andi. r0, r0, 0x90
/* 802142C4 00211224 2C 00 00 90 */ cmpwi r0, 0x90
/* 802142C8 00211228 41 82 00 9C */ beq lbl_80214364
/* 802142CC 0021122C A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 802142D0 00211230 3C 60 80 57 */ lis r3, sNormalVulnerability__20CDamageVulnerability@ha
/* 802142D4 00211234 39 03 D5 78 */ addi r8, r3, sNormalVulnerability__20CDamageVulnerability@l
/* 802142D8 00211238 7F E7 FB 78 */ mr r7, r31
/* 802142DC 0021123C B0 01 00 14 */ sth r0, 0x14(r1)
/* 802142E0 00211240 7F A3 EB 78 */ mr r3, r29
/* 802142E4 00211244 38 9E 00 04 */ addi r4, r30, 4
/* 802142E8 00211248 38 BE 00 10 */ addi r5, r30, 0x10
/* 802142EC 0021124C 81 9D 00 00 */ lwz r12, 0(r29)
/* 802142F0 00211250 39 21 00 14 */ addi r9, r1, 0x14
/* 802142F4 00211254 81 8C 00 70 */ lwz r12, 0x70(r12)
/* 802142F8 00211258 7D 89 03 A6 */ mtctr r12
/* 802142FC 0021125C 4E 80 04 21 */ bctrl
/* 80214300 00211260 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80214304 00211264 41 82 00 54 */ beq lbl_80214358
/* 80214308 00211268 80 1D 00 F8 */ lwz r0, 0xf8(r29)
/* 8021430C 0021126C 7F E3 FB 78 */ mr r3, r31
/* 80214310 00211270 80 FD 00 FC */ lwz r7, 0xfc(r29)
/* 80214314 00211274 7F A5 EB 78 */ mr r5, r29
/* 80214318 00211278 38 81 00 10 */ addi r4, r1, 0x10
/* 8021431C 0021127C 38 DE 00 04 */ addi r6, r30, 4
/* 80214320 00211280 90 E1 00 1C */ stw r7, 0x1c(r1)
/* 80214324 00211284 38 FD 01 2C */ addi r7, r29, 0x12c
/* 80214328 00211288 39 01 00 18 */ addi r8, r1, 0x18
/* 8021432C 0021128C 90 01 00 18 */ stw r0, 0x18(r1)
/* 80214330 00211290 80 1D 01 00 */ lwz r0, 0x100(r29)
/* 80214334 00211294 81 3D 01 04 */ lwz r9, 0x104(r29)
/* 80214338 00211298 91 21 00 24 */ stw r9, 0x24(r1)
/* 8021433C 0021129C 90 01 00 20 */ stw r0, 0x20(r1)
/* 80214340 002112A0 80 1D 01 08 */ lwz r0, 0x108(r29)
/* 80214344 002112A4 90 01 00 28 */ stw r0, 0x28(r1)
/* 80214348 002112A8 A0 1D 00 EC */ lhz r0, 0xec(r29)
/* 8021434C 002112AC B0 01 00 0C */ sth r0, 0xc(r1)
/* 80214350 002112B0 B0 01 00 10 */ sth r0, 0x10(r1)
/* 80214354 002112B4 4B E3 49 59 */ bl ApplyDamageToWorld__13CStateManagerF9TUniqueIdRC6CActorRC9CVector3fRC11CDamageInfoRC15CMaterialFilter
lbl_80214358:
/* 80214358 002112B8 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8021435C 002112BC B0 01 00 08 */ sth r0, 8(r1)
/* 80214360 002112C0 B0 1D 02 C2 */ sth r0, 0x2c2(r29)
lbl_80214364:
/* 80214364 002112C4 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80214368 002112C8 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8021436C 002112CC 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 80214370 002112D0 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 80214374 002112D4 7C 08 03 A6 */ mtlr r0
/* 80214378 002112D8 38 21 00 40 */ addi r1, r1, 0x40
/* 8021437C 002112DC 4E 80 00 20 */ blr
.global ResolveCollisionWithActor__17CEnergyProjectileFRC14CRayCastResultR6CActorR13CStateManager
ResolveCollisionWithActor__17CEnergyProjectileFRC14CRayCastResultR6CActorR13CStateManager:
/* 80214380 002112E0 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 80214384 002112E4 7C 08 02 A6 */ mflr r0
/* 80214388 002112E8 90 01 00 84 */ stw r0, 0x84(r1)
/* 8021438C 002112EC BF 61 00 6C */ stmw r27, 0x6c(r1)
/* 80214390 002112F0 7C 7B 1B 78 */ mr r27, r3
/* 80214394 002112F4 7C 9C 23 78 */ mr r28, r4
/* 80214398 002112F8 7C BD 2B 78 */ mr r29, r5
/* 8021439C 002112FC 7C DE 33 78 */ mr r30, r6
/* 802143A0 00211300 38 61 00 5C */ addi r3, r1, 0x5c
/* 802143A4 00211304 38 81 00 50 */ addi r4, r1, 0x50
/* 802143A8 00211308 A0 05 00 08 */ lhz r0, 8(r5)
/* 802143AC 0021130C B0 1B 02 C2 */ sth r0, 0x2c2(r27)
/* 802143B0 00211310 83 FB 00 E8 */ lwz r31, 0xe8(r27)
/* 802143B4 00211314 C0 5B 00 58 */ lfs f2, 0x58(r27)
/* 802143B8 00211318 C0 3B 00 48 */ lfs f1, 0x48(r27)
/* 802143BC 0021131C C0 1B 00 38 */ lfs f0, 0x38(r27)
/* 802143C0 00211320 B0 01 00 28 */ sth r0, 0x28(r1)
/* 802143C4 00211324 B0 01 00 2C */ sth r0, 0x2c(r1)
/* 802143C8 00211328 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 802143CC 0021132C D0 21 00 54 */ stfs f1, 0x54(r1)
/* 802143D0 00211330 D0 41 00 58 */ stfs f2, 0x58(r1)
/* 802143D4 00211334 48 10 04 7D */ bl AsNormalized__9CVector3fCFv
/* 802143D8 00211338 7F A3 EB 78 */ mr r3, r29
/* 802143DC 0021133C 7F E7 FB 78 */ mr r7, r31
/* 802143E0 00211340 81 9D 00 00 */ lwz r12, 0(r29)
/* 802143E4 00211344 38 9C 00 04 */ addi r4, r28, 4
/* 802143E8 00211348 38 A1 00 5C */ addi r5, r1, 0x5c
/* 802143EC 0021134C 38 DB 01 2C */ addi r6, r27, 0x12c
/* 802143F0 00211350 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 802143F4 00211354 7D 89 03 A6 */ mtctr r12
/* 802143F8 00211358 4E 80 04 21 */ bctrl
/* 802143FC 0021135C 7C 60 1B 78 */ mr r0, r3
/* 80214400 00211360 7F A3 EB 78 */ mr r3, r29
/* 80214404 00211364 81 9D 00 00 */ lwz r12, 0(r29)
/* 80214408 00211368 7C 1F 03 78 */ mr r31, r0
/* 8021440C 0021136C 7F 64 DB 78 */ mr r4, r27
/* 80214410 00211370 7F C5 F3 78 */ mr r5, r30
/* 80214414 00211374 81 8C 00 44 */ lwz r12, 0x44(r12)
/* 80214418 00211378 7D 89 03 A6 */ mtctr r12
/* 8021441C 0021137C 4E 80 04 21 */ bctrl
/* 80214420 00211380 A0 1D 00 08 */ lhz r0, 8(r29)
/* 80214424 00211384 7F A3 EB 78 */ mr r3, r29
/* 80214428 00211388 B0 01 00 24 */ sth r0, 0x24(r1)
/* 8021442C 0021138C 81 9D 00 00 */ lwz r12, 0(r29)
/* 80214430 00211390 B0 01 00 20 */ sth r0, 0x20(r1)
/* 80214434 00211394 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 80214438 00211398 7D 89 03 A6 */ mtctr r12
/* 8021443C 0021139C 4E 80 04 21 */ bctrl
/* 80214440 002113A0 81 9B 00 00 */ lwz r12, 0(r27)
/* 80214444 002113A4 7C 68 1B 78 */ mr r8, r3
/* 80214448 002113A8 7F 63 DB 78 */ mr r3, r27
/* 8021444C 002113AC 7F E6 FB 78 */ mr r6, r31
/* 80214450 002113B0 81 8C 00 70 */ lwz r12, 0x70(r12)
/* 80214454 002113B4 7F C7 F3 78 */ mr r7, r30
/* 80214458 002113B8 38 9C 00 04 */ addi r4, r28, 4
/* 8021445C 002113BC 38 BC 00 10 */ addi r5, r28, 0x10
/* 80214460 002113C0 39 21 00 24 */ addi r9, r1, 0x24
/* 80214464 002113C4 7D 89 03 A6 */ mtctr r12
/* 80214468 002113C8 4E 80 04 21 */ bctrl
/* 8021446C 002113CC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80214470 002113D0 40 82 00 3C */ bne lbl_802144AC
/* 80214474 002113D4 A0 1B 00 08 */ lhz r0, 8(r27)
/* 80214478 002113D8 7F C3 F3 78 */ mr r3, r30
/* 8021447C 002113DC 7F A4 EB 78 */ mr r4, r29
/* 80214480 002113E0 38 A1 00 1C */ addi r5, r1, 0x1c
/* 80214484 002113E4 B0 01 00 18 */ sth r0, 0x18(r1)
/* 80214488 002113E8 38 C0 00 1E */ li r6, 0x1e
/* 8021448C 002113EC B0 01 00 1C */ sth r0, 0x1c(r1)
/* 80214490 002113F0 4B E2 FA 41 */ bl SendScriptMsg__13CStateManagerFP7CEntity9TUniqueId20EScriptObjectMessage
/* 80214494 002113F4 7F A3 EB 78 */ mr r3, r29
/* 80214498 002113F8 7F C5 F3 78 */ mr r5, r30
/* 8021449C 002113FC 38 80 00 1F */ li r4, 0x1f
/* 802144A0 00211400 38 C0 FF FF */ li r6, -1
/* 802144A4 00211404 4B E3 CC 1D */ bl SendScriptMsgs__7CEntityF18EScriptObjectStateR13CStateManager20EScriptObjectMessage
/* 802144A8 00211408 48 00 00 28 */ b lbl_802144D0
lbl_802144AC:
/* 802144AC 0021140C 7F 63 DB 78 */ mr r3, r27
/* 802144B0 00211410 7F 84 E3 78 */ mr r4, r28
/* 802144B4 00211414 7F A5 EB 78 */ mr r5, r29
/* 802144B8 00211418 7F C6 F3 78 */ mr r6, r30
/* 802144BC 0021141C 4B E2 30 99 */ bl ResolveCollisionWithActor__15CGameProjectileFRC14CRayCastResultR6CActorR13CStateManager
/* 802144C0 00211420 7F 63 DB 78 */ mr r3, r27
/* 802144C4 00211424 7F C4 F3 78 */ mr r4, r30
/* 802144C8 00211428 38 BB 01 2C */ addi r5, r27, 0x12c
/* 802144CC 0021142C 4B E2 3D A9 */ bl ApplyDamageToActors__15CGameProjectileFR13CStateManager
lbl_802144D0:
/* 802144D0 00211430 7F A4 EB 78 */ mr r4, r29
/* 802144D4 00211434 38 61 00 30 */ addi r3, r1, 0x30
/* 802144D8 00211438 4B E9 A8 5D */ bl "__ct__31TCastToPtr<17CEnergyProjectile>FR7CEntity"
/* 802144DC 0021143C 83 E3 00 04 */ lwz r31, 4(r3)
/* 802144E0 00211440 28 1F 00 00 */ cmplwi r31, 0
/* 802144E4 00211444 41 82 00 90 */ beq lbl_80214574
/* 802144E8 00211448 A0 9B 00 EC */ lhz r4, 0xec(r27)
/* 802144EC 0021144C 7F 63 DB 78 */ mr r3, r27
/* 802144F0 00211450 B0 9F 02 C4 */ sth r4, 0x2c4(r31)
/* 802144F4 00211454 A0 1B 00 08 */ lhz r0, 8(r27)
/* 802144F8 00211458 B0 81 00 10 */ sth r4, 0x10(r1)
/* 802144FC 0021145C B0 01 00 0C */ sth r0, 0xc(r1)
/* 80214500 00211460 C0 5B 00 58 */ lfs f2, 0x58(r27)
/* 80214504 00211464 C0 3B 00 48 */ lfs f1, 0x48(r27)
/* 80214508 00211468 C0 1B 00 38 */ lfs f0, 0x38(r27)
/* 8021450C 0021146C B0 81 00 14 */ sth r4, 0x14(r1)
/* 80214510 00211470 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 80214514 00211474 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 80214518 00211478 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8021451C 0021147C C0 5B 00 60 */ lfs f2, 0x60(r27)
/* 80214520 00211480 C0 3B 00 50 */ lfs f1, 0x50(r27)
/* 80214524 00211484 C0 1B 00 40 */ lfs f0, 0x40(r27)
/* 80214528 00211488 B0 01 00 08 */ sth r0, 8(r1)
/* 8021452C 0021148C D0 01 00 44 */ stfs f0, 0x44(r1)
/* 80214530 00211490 D0 21 00 48 */ stfs f1, 0x48(r1)
/* 80214534 00211494 D0 41 00 4C */ stfs f2, 0x4c(r1)
/* 80214538 00211498 81 9B 00 00 */ lwz r12, 0(r27)
/* 8021453C 0021149C 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 80214540 002114A0 7D 89 03 A6 */ mtctr r12
/* 80214544 002114A4 4E 80 04 21 */ bctrl
/* 80214548 002114A8 81 9F 00 00 */ lwz r12, 0(r31)
/* 8021454C 002114AC 7C 68 1B 78 */ mr r8, r3
/* 80214550 002114B0 7F E3 FB 78 */ mr r3, r31
/* 80214554 002114B4 7F C7 F3 78 */ mr r7, r30
/* 80214558 002114B8 81 8C 00 70 */ lwz r12, 0x70(r12)
/* 8021455C 002114BC 38 81 00 44 */ addi r4, r1, 0x44
/* 80214560 002114C0 38 A1 00 38 */ addi r5, r1, 0x38
/* 80214564 002114C4 39 21 00 0C */ addi r9, r1, 0xc
/* 80214568 002114C8 38 C0 00 0D */ li r6, 0xd
/* 8021456C 002114CC 7D 89 03 A6 */ mtctr r12
/* 80214570 002114D0 4E 80 04 21 */ bctrl
lbl_80214574:
/* 80214574 002114D4 BB 61 00 6C */ lmw r27, 0x6c(r1)
/* 80214578 002114D8 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8021457C 002114DC 7C 08 03 A6 */ mtlr r0
/* 80214580 002114E0 38 21 00 80 */ addi r1, r1, 0x80
/* 80214584 002114E4 4E 80 00 20 */ blr
.global Think__17CEnergyProjectileFfR13CStateManager
Think__17CEnergyProjectileFfR13CStateManager:
/* 80214588 002114E8 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 8021458C 002114EC 7C 08 02 A6 */ mflr r0
/* 80214590 002114F0 90 01 01 44 */ stw r0, 0x144(r1)
/* 80214594 002114F4 DB E1 01 30 */ stfd f31, 0x130(r1)
/* 80214598 002114F8 F3 E1 01 38 */ psq_st f31, 312(r1), 0, qr0
/* 8021459C 002114FC 93 E1 01 2C */ stw r31, 0x12c(r1)
/* 802145A0 00211500 93 C1 01 28 */ stw r30, 0x128(r1)
/* 802145A4 00211504 93 A1 01 24 */ stw r29, 0x124(r1)
/* 802145A8 00211508 93 81 01 20 */ stw r28, 0x120(r1)
/* 802145AC 0021150C FF E0 08 90 */ fmr f31, f1
/* 802145B0 00211510 7C 7D 1B 78 */ mr r29, r3
/* 802145B4 00211514 7C 9E 23 78 */ mr r30, r4
/* 802145B8 00211518 4B EE DB 21 */ bl Think__7CWeaponFfR13CStateManager
/* 802145BC 0021151C 80 7E 08 50 */ lwz r3, 0x850(r30)
/* 802145C0 00211520 80 1D 00 04 */ lwz r0, 4(r29)
/* 802145C4 00211524 80 C3 00 68 */ lwz r6, 0x68(r3)
/* 802145C8 00211528 7C 00 30 00 */ cmpw r0, r6
/* 802145CC 0021152C 41 82 00 2C */ beq lbl_802145F8
/* 802145D0 00211530 80 1D 00 E8 */ lwz r0, 0xe8(r29)
/* 802145D4 00211534 54 00 05 28 */ rlwinm r0, r0, 0, 0x14, 0x14
/* 802145D8 00211538 2C 00 08 00 */ cmpwi r0, 0x800
/* 802145DC 0021153C 40 82 00 1C */ bne lbl_802145F8
/* 802145E0 00211540 90 C1 00 34 */ stw r6, 0x34(r1)
/* 802145E4 00211544 7F C3 F3 78 */ mr r3, r30
/* 802145E8 00211548 7F A4 EB 78 */ mr r4, r29
/* 802145EC 0021154C 38 A1 00 38 */ addi r5, r1, 0x38
/* 802145F0 00211550 90 C1 00 38 */ stw r6, 0x38(r1)
/* 802145F4 00211554 4B E3 0C 85 */ bl SetActorAreaId__13CStateManagerFR6CActor7TAreaId
lbl_802145F8:
/* 802145F8 00211558 FC 20 F8 90 */ fmr f1, f31
/* 802145FC 0021155C 7F A3 EB 78 */ mr r3, r29
/* 80214600 00211560 7F C4 F3 78 */ mr r4, r30
/* 80214604 00211564 4B E2 38 F9 */ bl UpdateProjectileMovement__15CGameProjectileFfR13CStateManager
/* 80214608 00211568 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 8021460C 0021156C 7F A4 EB 78 */ mr r4, r29
/* 80214610 00211570 7F C6 F3 78 */ mr r6, r30
/* 80214614 00211574 38 61 00 70 */ addi r3, r1, 0x70
/* 80214618 00211578 B0 01 00 28 */ sth r0, 0x28(r1)
/* 8021461C 0021157C 38 A1 00 28 */ addi r5, r1, 0x28
/* 80214620 00211580 4B E2 39 DD */ bl DoCollisionCheck__15CGameProjectileFR9TUniqueIdR13CStateManager
/* 80214624 00211584 88 81 00 90 */ lbz r4, 0x90(r1)
/* 80214628 00211588 C0 E1 00 70 */ lfs f7, 0x70(r1)
/* 8021462C 0021158C C0 C1 00 74 */ lfs f6, 0x74(r1)
/* 80214630 00211590 28 04 00 00 */ cmplwi r4, 0
/* 80214634 00211594 C0 A1 00 78 */ lfs f5, 0x78(r1)
/* 80214638 00211598 C0 81 00 7C */ lfs f4, 0x7c(r1)
/* 8021463C 0021159C C0 61 00 80 */ lfs f3, 0x80(r1)
/* 80214640 002115A0 C0 41 00 84 */ lfs f2, 0x84(r1)
/* 80214644 002115A4 C0 21 00 88 */ lfs f1, 0x88(r1)
/* 80214648 002115A8 C0 01 00 8C */ lfs f0, 0x8c(r1)
/* 8021464C 002115AC 80 01 00 98 */ lwz r0, 0x98(r1)
/* 80214650 002115B0 80 61 00 9C */ lwz r3, 0x9c(r1)
/* 80214654 002115B4 D0 E1 00 A0 */ stfs f7, 0xa0(r1)
/* 80214658 002115B8 D0 C1 00 A4 */ stfs f6, 0xa4(r1)
/* 8021465C 002115BC D0 A1 00 A8 */ stfs f5, 0xa8(r1)
/* 80214660 002115C0 D0 81 00 AC */ stfs f4, 0xac(r1)
/* 80214664 002115C4 D0 61 00 B0 */ stfs f3, 0xb0(r1)
/* 80214668 002115C8 D0 41 00 B4 */ stfs f2, 0xb4(r1)
/* 8021466C 002115CC D0 21 00 B8 */ stfs f1, 0xb8(r1)
/* 80214670 002115D0 D0 01 00 BC */ stfs f0, 0xbc(r1)
/* 80214674 002115D4 98 81 00 C0 */ stb r4, 0xc0(r1)
/* 80214678 002115D8 90 61 00 CC */ stw r3, 0xcc(r1)
/* 8021467C 002115DC 90 01 00 C8 */ stw r0, 0xc8(r1)
/* 80214680 002115E0 41 82 00 60 */ beq lbl_802146E0
/* 80214684 002115E4 A0 01 00 28 */ lhz r0, 0x28(r1)
/* 80214688 002115E8 7F C3 F3 78 */ mr r3, r30
/* 8021468C 002115EC 38 81 00 24 */ addi r4, r1, 0x24
/* 80214690 002115F0 B0 01 00 24 */ sth r0, 0x24(r1)
/* 80214694 002115F4 4B E3 7E E1 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80214698 002115F8 7C 64 1B 78 */ mr r4, r3
/* 8021469C 002115FC 38 61 00 44 */ addi r3, r1, 0x44
/* 802146A0 00211600 4B E9 B5 F1 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 802146A4 00211604 80 A3 00 04 */ lwz r5, 4(r3)
/* 802146A8 00211608 28 05 00 00 */ cmplwi r5, 0
/* 802146AC 0021160C 41 82 00 24 */ beq lbl_802146D0
/* 802146B0 00211610 81 9D 00 00 */ lwz r12, 0(r29)
/* 802146B4 00211614 7F A3 EB 78 */ mr r3, r29
/* 802146B8 00211618 7F C6 F3 78 */ mr r6, r30
/* 802146BC 0021161C 38 81 00 A0 */ addi r4, r1, 0xa0
/* 802146C0 00211620 81 8C 00 6C */ lwz r12, 0x6c(r12)
/* 802146C4 00211624 7D 89 03 A6 */ mtctr r12
/* 802146C8 00211628 4E 80 04 21 */ bctrl
/* 802146CC 0021162C 48 00 00 14 */ b lbl_802146E0
lbl_802146D0:
/* 802146D0 00211630 7F A3 EB 78 */ mr r3, r29
/* 802146D4 00211634 7F C5 F3 78 */ mr r5, r30
/* 802146D8 00211638 38 81 00 A0 */ addi r4, r1, 0xa0
/* 802146DC 0021163C 4B FF FB 89 */ bl ResolveCollisionWithWorld__17CEnergyProjectileFRC14CRayCastResultR13CStateManager
lbl_802146E0:
/* 802146E0 00211640 3B FD 01 70 */ addi r31, r29, 0x170
/* 802146E4 00211644 7F E3 FB 78 */ mr r3, r31
/* 802146E8 00211648 48 09 BF 61 */ bl UpdateParticleFX__17CProjectileWeaponFv
/* 802146EC 0021164C 88 1D 02 E4 */ lbz r0, 0x2e4(r29)
/* 802146F0 00211650 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 802146F4 00211654 41 82 00 64 */ beq lbl_80214758
/* 802146F8 00211658 88 1D 03 D0 */ lbz r0, 0x3d0(r29)
/* 802146FC 0021165C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 80214700 00211660 41 82 00 58 */ beq lbl_80214758
/* 80214704 00211664 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 80214708 00211668 3C A0 80 5A */ lis r5, sUpVector__9CVector3f@ha
/* 8021470C 0021166C 3C 80 80 57 */ lis r4, sNormalVulnerability__20CDamageVulnerability@ha
/* 80214710 00211670 7F A3 EB 78 */ mr r3, r29
/* 80214714 00211674 B0 01 00 20 */ sth r0, 0x20(r1)
/* 80214718 00211678 39 04 D5 78 */ addi r8, r4, sNormalVulnerability__20CDamageVulnerability@l
/* 8021471C 0021167C 38 A5 66 F4 */ addi r5, r5, sUpVector__9CVector3f@l
/* 80214720 00211680 7F C7 F3 78 */ mr r7, r30
/* 80214724 00211684 C0 5D 00 60 */ lfs f2, 0x60(r29)
/* 80214728 00211688 38 81 00 64 */ addi r4, r1, 0x64
/* 8021472C 0021168C C0 3D 00 50 */ lfs f1, 0x50(r29)
/* 80214730 00211690 39 21 00 20 */ addi r9, r1, 0x20
/* 80214734 00211694 C0 1D 00 40 */ lfs f0, 0x40(r29)
/* 80214738 00211698 38 C0 00 01 */ li r6, 1
/* 8021473C 0021169C D0 01 00 64 */ stfs f0, 0x64(r1)
/* 80214740 002116A0 D0 21 00 68 */ stfs f1, 0x68(r1)
/* 80214744 002116A4 D0 41 00 6C */ stfs f2, 0x6c(r1)
/* 80214748 002116A8 81 9D 00 00 */ lwz r12, 0(r29)
/* 8021474C 002116AC 81 8C 00 70 */ lwz r12, 0x70(r12)
/* 80214750 002116B0 7D 89 03 A6 */ mtctr r12
/* 80214754 002116B4 4E 80 04 21 */ bctrl
lbl_80214758:
/* 80214758 002116B8 A0 BD 02 C8 */ lhz r5, 0x2c8(r29)
/* 8021475C 002116BC A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 80214760 002116C0 7C 05 00 40 */ cmplw r5, r0
/* 80214764 002116C4 41 82 00 D0 */ beq lbl_80214834
/* 80214768 002116C8 B0 A1 00 18 */ sth r5, 0x18(r1)
/* 8021476C 002116CC 7F C3 F3 78 */ mr r3, r30
/* 80214770 002116D0 38 81 00 1C */ addi r4, r1, 0x1c
/* 80214774 002116D4 B0 A1 00 1C */ sth r5, 0x1c(r1)
/* 80214778 002116D8 4B E3 7D FD */ bl ObjectById__13CStateManagerF9TUniqueId
/* 8021477C 002116DC 7C 64 1B 78 */ mr r4, r3
/* 80214780 002116E0 38 61 00 3C */ addi r3, r1, 0x3c
/* 80214784 002116E4 4B E9 93 01 */ bl "__ct__24TCastToPtr<10CGameLight>FP7CEntity"
/* 80214788 002116E8 83 83 00 04 */ lwz r28, 4(r3)
/* 8021478C 002116EC 28 1C 00 00 */ cmplwi r28, 0
/* 80214790 002116F0 41 82 00 A4 */ beq lbl_80214834
/* 80214794 002116F4 38 7C 00 34 */ addi r3, r28, 0x34
/* 80214798 002116F8 38 9D 00 34 */ addi r4, r29, 0x34
/* 8021479C 002116FC 48 0F E3 A5 */ bl __as__12CTransform4fFRC12CTransform4f
/* 802147A0 00211700 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 802147A4 00211704 38 A0 00 01 */ li r5, 1
/* 802147A8 00211708 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 802147AC 0021170C 7F 83 E3 78 */ mr r3, r28
/* 802147B0 00211710 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 802147B4 00211714 38 81 00 58 */ addi r4, r1, 0x58
/* 802147B8 00211718 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 802147BC 0021171C 50 A0 1F 38 */ rlwimi r0, r5, 3, 0x1c, 0x1c
/* 802147C0 00211720 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 802147C4 00211724 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 802147C8 00211728 50 A0 17 7A */ rlwimi r0, r5, 2, 0x1d, 0x1d
/* 802147CC 0021172C 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 802147D0 00211730 C0 5D 00 60 */ lfs f2, 0x60(r29)
/* 802147D4 00211734 C0 3D 00 50 */ lfs f1, 0x50(r29)
/* 802147D8 00211738 C0 1D 00 40 */ lfs f0, 0x40(r29)
/* 802147DC 0021173C D0 01 00 58 */ stfs f0, 0x58(r1)
/* 802147E0 00211740 D0 21 00 5C */ stfs f1, 0x5c(r1)
/* 802147E4 00211744 D0 41 00 60 */ stfs f2, 0x60(r1)
/* 802147E8 00211748 4B E3 E6 A5 */ bl SetTranslation__6CActorFRC9CVector3f
/* 802147EC 0021174C 80 7F 00 FC */ lwz r3, 0xfc(r31)
/* 802147F0 00211750 28 03 00 00 */ cmplwi r3, 0
/* 802147F4 00211754 41 82 00 40 */ beq lbl_80214834
/* 802147F8 00211758 81 83 00 00 */ lwz r12, 0(r3)
/* 802147FC 0021175C 81 8C 00 64 */ lwz r12, 0x64(r12)
/* 80214800 00211760 7D 89 03 A6 */ mtctr r12
/* 80214804 00211764 4E 80 04 21 */ bctrl
/* 80214808 00211768 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8021480C 0021176C 41 82 00 28 */ beq lbl_80214834
/* 80214810 00211770 80 9F 00 FC */ lwz r4, 0xfc(r31)
/* 80214814 00211774 38 61 00 D0 */ addi r3, r1, 0xd0
/* 80214818 00211778 81 84 00 00 */ lwz r12, 0(r4)
/* 8021481C 0021177C 81 8C 00 68 */ lwz r12, 0x68(r12)
/* 80214820 00211780 7D 89 03 A6 */ mtctr r12
/* 80214824 00211784 4E 80 04 21 */ bctrl
/* 80214828 00211788 7F 83 E3 78 */ mr r3, r28
/* 8021482C 0021178C 38 81 00 D0 */ addi r4, r1, 0xd0
/* 80214830 00211790 4B EA 0F 15 */ bl SetLight__10CGameLightFRC6CLight
lbl_80214834:
/* 80214834 00211794 80 1D 02 E8 */ lwz r0, 0x2e8(r29)
/* 80214838 00211798 28 00 00 00 */ cmplwi r0, 0
/* 8021483C 0021179C 41 82 00 70 */ beq lbl_802148AC
/* 80214840 002117A0 80 1D 02 E8 */ lwz r0, 0x2e8(r29)
/* 80214844 002117A4 7F E3 FB 78 */ mr r3, r31
/* 80214848 002117A8 90 01 00 30 */ stw r0, 0x30(r1)
/* 8021484C 002117AC 48 09 A8 E9 */ bl GetVelocity__17CProjectileWeaponCFv
/* 80214850 002117B0 7F E4 FB 78 */ mr r4, r31
/* 80214854 002117B4 7C 7C 1B 78 */ mr r28, r3
/* 80214858 002117B8 81 9F 00 00 */ lwz r12, 0(r31)
/* 8021485C 002117BC 38 61 00 4C */ addi r3, r1, 0x4c
/* 80214860 002117C0 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80214864 002117C4 7D 89 03 A6 */ mtctr r12
/* 80214868 002117C8 4E 80 04 21 */ bctrl
/* 8021486C 002117CC 7F 85 E3 78 */ mr r5, r28
/* 80214870 002117D0 38 61 00 30 */ addi r3, r1, 0x30
/* 80214874 002117D4 38 81 00 4C */ addi r4, r1, 0x4c
/* 80214878 002117D8 38 C0 00 FF */ li r6, 0xff
/* 8021487C 002117DC 48 0D 56 35 */ bl UpdateEmitter__11CSfxManagerF10CSfxHandleRC9CVector3fRC9CVector3fUc
/* 80214880 002117E0 88 BD 02 E4 */ lbz r5, 0x2e4(r29)
/* 80214884 002117E4 38 80 20 00 */ li r4, 0x2000
/* 80214888 002117E8 80 1D 02 E8 */ lwz r0, 0x2e8(r29)
/* 8021488C 002117EC 38 61 00 2C */ addi r3, r1, 0x2c
/* 80214890 002117F0 54 A6 DF FE */ rlwinm r6, r5, 0x1b, 0x1f, 0x1f
/* 80214894 002117F4 7C A6 00 D0 */ neg r5, r6
/* 80214898 002117F8 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8021489C 002117FC 7C A0 33 78 */ or r0, r5, r6
/* 802148A0 00211800 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 802148A4 00211804 7C 84 00 78 */ andc r4, r4, r0
/* 802148A8 00211808 48 0D 46 05 */ bl PitchBend__11CSfxManagerF10CSfxHandlei
lbl_802148AC:
/* 802148AC 0021180C C0 3D 03 D4 */ lfs f1, 0x3d4(r29)
/* 802148B0 00211810 C0 02 B3 1C */ lfs f0, lbl_805AD03C@sda21(r2)
/* 802148B4 00211814 EC 21 F8 2A */ fadds f1, f1, f31
/* 802148B8 00211818 D0 3D 03 D4 */ stfs f1, 0x3d4(r29)
/* 802148BC 0021181C C0 3D 03 D4 */ lfs f1, 0x3d4(r29)
/* 802148C0 00211820 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802148C4 00211824 40 81 00 20 */ ble lbl_802148E4
/* 802148C8 00211828 A0 1D 00 08 */ lhz r0, 8(r29)
/* 802148CC 0021182C 7F C3 F3 78 */ mr r3, r30
/* 802148D0 00211830 38 81 00 14 */ addi r4, r1, 0x14
/* 802148D4 00211834 B0 01 00 10 */ sth r0, 0x10(r1)
/* 802148D8 00211838 B0 01 00 14 */ sth r0, 0x14(r1)
/* 802148DC 0021183C 4B E3 79 91 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
/* 802148E0 00211840 48 00 00 38 */ b lbl_80214918
lbl_802148E4:
/* 802148E4 00211844 7F E3 FB 78 */ mr r3, r31
/* 802148E8 00211848 48 09 B0 B5 */ bl IsSystemDeletable__17CProjectileWeaponCFv
/* 802148EC 0021184C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802148F0 00211850 40 82 00 10 */ bne lbl_80214900
/* 802148F4 00211854 88 1D 03 D0 */ lbz r0, 0x3d0(r29)
/* 802148F8 00211858 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 802148FC 0021185C 41 82 00 1C */ beq lbl_80214918
lbl_80214900:
/* 80214900 00211860 A0 1D 00 08 */ lhz r0, 8(r29)
/* 80214904 00211864 7F C3 F3 78 */ mr r3, r30
/* 80214908 00211868 38 81 00 0C */ addi r4, r1, 0xc
/* 8021490C 0021186C B0 01 00 08 */ sth r0, 8(r1)
/* 80214910 00211870 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80214914 00211874 4B E3 79 59 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
lbl_80214918:
/* 80214918 00211878 E3 E1 01 38 */ psq_l f31, 312(r1), 0, qr0
/* 8021491C 0021187C 80 01 01 44 */ lwz r0, 0x144(r1)
/* 80214920 00211880 CB E1 01 30 */ lfd f31, 0x130(r1)
/* 80214924 00211884 83 E1 01 2C */ lwz r31, 0x12c(r1)
/* 80214928 00211888 83 C1 01 28 */ lwz r30, 0x128(r1)
/* 8021492C 0021188C 83 A1 01 24 */ lwz r29, 0x124(r1)
/* 80214930 00211890 83 81 01 20 */ lwz r28, 0x120(r1)
/* 80214934 00211894 7C 08 03 A6 */ mtlr r0
/* 80214938 00211898 38 21 01 40 */ addi r1, r1, 0x140
/* 8021493C 0021189C 4E 80 00 20 */ blr
.global Render__17CEnergyProjectileCFRC13CStateManager
Render__17CEnergyProjectileCFRC13CStateManager:
/* 80214940 002118A0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80214944 002118A4 7C 08 02 A6 */ mflr r0
/* 80214948 002118A8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8021494C 002118AC 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 80214950 002118B0 7C 9F 23 78 */ mr r31, r4
/* 80214954 002118B4 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80214958 002118B8 7C 7E 1B 78 */ mr r30, r3
/* 8021495C 002118BC 93 A1 00 34 */ stw r29, 0x34(r1)
/* 80214960 002118C0 80 64 08 B8 */ lwz r3, 0x8b8(r4)
/* 80214964 002118C4 80 63 00 00 */ lwz r3, 0(r3)
/* 80214968 002118C8 4B E7 CB F1 */ bl GetActiveVisor__12CPlayerStateCFRC13CStateManager
/* 8021496C 002118CC 7C 7D 1B 79 */ or. r29, r3, r3
/* 80214970 002118D0 40 82 00 68 */ bne lbl_802149D8
/* 80214974 002118D4 80 7E 00 E8 */ lwz r3, 0xe8(r30)
/* 80214978 002118D8 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d
/* 8021497C 002118DC 2C 00 00 04 */ cmpwi r0, 4
/* 80214980 002118E0 41 82 00 10 */ beq lbl_80214990
/* 80214984 002118E4 54 60 06 30 */ rlwinm r0, r3, 0, 0x18, 0x18
/* 80214988 002118E8 2C 00 00 80 */ cmpwi r0, 0x80
/* 8021498C 002118EC 40 82 00 4C */ bne lbl_802149D8
lbl_80214990:
/* 80214990 002118F0 C8 1E 02 40 */ lfd f0, 0x240(r30)
/* 80214994 002118F4 C0 42 B3 20 */ lfs f2, lbl_805AD040@sda21(r2)
/* 80214998 002118F8 FC 20 00 18 */ frsp f1, f0
/* 8021499C 002118FC C0 02 B3 10 */ lfs f0, lbl_805AD030@sda21(r2)
/* 802149A0 00211900 EC 22 08 28 */ fsubs f1, f2, f1
/* 802149A4 00211904 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802149A8 00211908 40 81 00 30 */ ble lbl_802149D8
/* 802149AC 0021190C C0 02 B3 24 */ lfs f0, lbl_805AD044@sda21(r2)
/* 802149B0 00211910 7F E3 FB 78 */ mr r3, r31
/* 802149B4 00211914 C0 7E 00 60 */ lfs f3, 0x60(r30)
/* 802149B8 00211918 38 81 00 18 */ addi r4, r1, 0x18
/* 802149BC 0021191C C0 5E 00 50 */ lfs f2, 0x50(r30)
/* 802149C0 00211920 EC 20 00 72 */ fmuls f1, f0, f1
/* 802149C4 00211924 C0 1E 00 40 */ lfs f0, 0x40(r30)
/* 802149C8 00211928 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 802149CC 0021192C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 802149D0 00211930 D0 61 00 20 */ stfs f3, 0x20(r1)
/* 802149D4 00211934 4B E3 0A 29 */ bl DrawSpaceWarp__13CStateManagerCFRC9CVector3ff
lbl_802149D8:
/* 802149D8 00211938 2C 1D 00 01 */ cmpwi r29, 1
/* 802149DC 0021193C 40 82 00 70 */ bne lbl_80214A4C
/* 802149E0 00211940 80 1E 00 E8 */ lwz r0, 0xe8(r30)
/* 802149E4 00211944 54 04 07 38 */ rlwinm r4, r0, 0, 0x1c, 0x1c
/* 802149E8 00211948 38 64 FF F8 */ addi r3, r4, -8
/* 802149EC 0021194C 20 04 00 08 */ subfic r0, r4, 8
/* 802149F0 00211950 7C 60 03 78 */ or r0, r3, r0
/* 802149F4 00211954 54 00 0F FE */ srwi r0, r0, 0x1f
/* 802149F8 00211958 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
/* 802149FC 0021195C 48 13 55 B9 */ bl Black__6CColorFv
/* 80214A00 00211960 C0 22 B3 10 */ lfs f1, lbl_805AD030@sda21(r2)
/* 80214A04 00211964 7C 64 1B 78 */ mr r4, r3
/* 80214A08 00211968 C0 42 B3 28 */ lfs f2, lbl_805AD048@sda21(r2)
/* 80214A0C 0021196C 38 60 00 02 */ li r3, 2
/* 80214A10 00211970 48 0F 58 79 */ bl SetFog__9CGraphicsF11ERglFogModeffRC6CColor
/* 80214A14 00211974 38 7E 01 70 */ addi r3, r30, 0x170
/* 80214A18 00211978 48 09 AC 29 */ bl RenderParticles__17CProjectileWeaponCFv
/* 80214A1C 0021197C 7F C3 F3 78 */ mr r3, r30
/* 80214A20 00211980 7F E4 FB 78 */ mr r4, r31
/* 80214A24 00211984 4B E2 5A 0D */ bl Render__15CGameProjectileCFRC13CStateManager
/* 80214A28 00211988 80 1E 00 04 */ lwz r0, 4(r30)
/* 80214A2C 0021198C 7F E3 FB 78 */ mr r3, r31
/* 80214A30 00211990 38 81 00 14 */ addi r4, r1, 0x14
/* 80214A34 00211994 90 01 00 10 */ stw r0, 0x10(r1)
/* 80214A38 00211998 90 01 00 14 */ stw r0, 0x14(r1)
/* 80214A3C 0021199C 4B E3 23 45 */ bl SetupFogForArea__13CStateManagerCF7TAreaId
/* 80214A40 002119A0 38 00 00 00 */ li r0, 0
/* 80214A44 002119A4 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
/* 80214A48 002119A8 48 00 00 6C */ b lbl_80214AB4
lbl_80214A4C:
/* 80214A4C 002119AC 80 1E 00 E8 */ lwz r0, 0xe8(r30)
/* 80214A50 002119B0 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 80214A54 002119B4 2C 00 00 08 */ cmpwi r0, 8
/* 80214A58 002119B8 40 82 00 50 */ bne lbl_80214AA8
/* 80214A5C 002119BC 80 1F 0F 34 */ lwz r0, 0xf34(r31)
/* 80214A60 002119C0 2C 00 00 00 */ cmpwi r0, 0
/* 80214A64 002119C4 40 82 00 44 */ bne lbl_80214AA8
/* 80214A68 002119C8 38 00 00 01 */ li r0, 1
/* 80214A6C 002119CC 38 7E 01 70 */ addi r3, r30, 0x170
/* 80214A70 002119D0 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
/* 80214A74 002119D4 48 09 AB CD */ bl RenderParticles__17CProjectileWeaponCFv
/* 80214A78 002119D8 7F C3 F3 78 */ mr r3, r30
/* 80214A7C 002119DC 7F E4 FB 78 */ mr r4, r31
/* 80214A80 002119E0 4B E2 59 B1 */ bl Render__15CGameProjectileCFRC13CStateManager
/* 80214A84 002119E4 80 1E 00 04 */ lwz r0, 4(r30)
/* 80214A88 002119E8 7F E3 FB 78 */ mr r3, r31
/* 80214A8C 002119EC 38 81 00 0C */ addi r4, r1, 0xc
/* 80214A90 002119F0 90 01 00 08 */ stw r0, 8(r1)
/* 80214A94 002119F4 90 01 00 0C */ stw r0, 0xc(r1)
/* 80214A98 002119F8 4B E3 22 E9 */ bl SetupFogForArea__13CStateManagerCF7TAreaId
/* 80214A9C 002119FC 38 00 00 00 */ li r0, 0
/* 80214AA0 00211A00 98 0D A8 B9 */ stb r0, sSubtractBlend__11CElementGen@sda21(r13)
/* 80214AA4 00211A04 48 00 00 10 */ b lbl_80214AB4
lbl_80214AA8:
/* 80214AA8 00211A08 7F C3 F3 78 */ mr r3, r30
/* 80214AAC 00211A0C 7F E4 FB 78 */ mr r4, r31
/* 80214AB0 00211A10 4B E2 59 81 */ bl Render__15CGameProjectileCFRC13CStateManager
lbl_80214AB4:
/* 80214AB4 00211A14 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80214AB8 00211A18 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80214ABC 00211A1C 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 80214AC0 00211A20 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 80214AC4 00211A24 7C 08 03 A6 */ mtlr r0
/* 80214AC8 00211A28 38 21 00 40 */ addi r1, r1, 0x40
/* 80214ACC 00211A2C 4E 80 00 20 */ blr
.global AddToRenderer__17CEnergyProjectileCFRC14CFrustumPlanesRC13CStateManager
AddToRenderer__17CEnergyProjectileCFRC14CFrustumPlanesRC13CStateManager:
/* 80214AD0 00211A30 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80214AD4 00211A34 7C 08 02 A6 */ mflr r0
/* 80214AD8 00211A38 90 01 00 54 */ stw r0, 0x54(r1)
/* 80214ADC 00211A3C 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 80214AE0 00211A40 7C BF 2B 78 */ mr r31, r5
/* 80214AE4 00211A44 93 C1 00 48 */ stw r30, 0x48(r1)
/* 80214AE8 00211A48 7C 9E 23 78 */ mr r30, r4
/* 80214AEC 00211A4C 93 A1 00 44 */ stw r29, 0x44(r1)
/* 80214AF0 00211A50 7C 7D 1B 78 */ mr r29, r3
/* 80214AF4 00211A54 38 61 00 08 */ addi r3, r1, 8
/* 80214AF8 00211A58 38 9D 01 70 */ addi r4, r29, 0x170
/* 80214AFC 00211A5C 48 09 A2 0D */ bl GetBounds__17CProjectileWeaponCFv
/* 80214B00 00211A60 88 01 00 20 */ lbz r0, 0x20(r1)
/* 80214B04 00211A64 28 00 00 00 */ cmplwi r0, 0
/* 80214B08 00211A68 98 01 00 3C */ stb r0, 0x3c(r1)
/* 80214B0C 00211A6C 41 82 00 3C */ beq lbl_80214B48
/* 80214B10 00211A70 34 61 00 24 */ addic. r3, r1, 0x24
/* 80214B14 00211A74 41 82 00 34 */ beq lbl_80214B48
/* 80214B18 00211A78 C0 01 00 08 */ lfs f0, 8(r1)
/* 80214B1C 00211A7C D0 03 00 00 */ stfs f0, 0(r3)
/* 80214B20 00211A80 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 80214B24 00211A84 D0 03 00 04 */ stfs f0, 4(r3)
/* 80214B28 00211A88 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80214B2C 00211A8C D0 03 00 08 */ stfs f0, 8(r3)
/* 80214B30 00211A90 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 80214B34 00211A94 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 80214B38 00211A98 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80214B3C 00211A9C D0 03 00 10 */ stfs f0, 0x10(r3)
/* 80214B40 00211AA0 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 80214B44 00211AA4 D0 03 00 14 */ stfs f0, 0x14(r3)
lbl_80214B48:
/* 80214B48 00211AA8 88 01 00 3C */ lbz r0, 0x3c(r1)
/* 80214B4C 00211AAC 38 60 00 00 */ li r3, 0
/* 80214B50 00211AB0 98 61 00 20 */ stb r3, 0x20(r1)
/* 80214B54 00211AB4 28 00 00 00 */ cmplwi r0, 0
/* 80214B58 00211AB8 41 82 00 24 */ beq lbl_80214B7C
/* 80214B5C 00211ABC 7F C3 F3 78 */ mr r3, r30
/* 80214B60 00211AC0 38 81 00 24 */ addi r4, r1, 0x24
/* 80214B64 00211AC4 48 13 06 25 */ bl "BoxInFrustumPlanes__14CFrustumPlanesCFRCQ24rstl24optional_object<6CAABox>"
/* 80214B68 00211AC8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80214B6C 00211ACC 40 82 00 10 */ bne lbl_80214B7C
/* 80214B70 00211AD0 38 00 00 00 */ li r0, 0
/* 80214B74 00211AD4 98 01 00 3C */ stb r0, 0x3c(r1)
/* 80214B78 00211AD8 48 00 00 60 */ b lbl_80214BD8
lbl_80214B7C:
/* 80214B7C 00211ADC 80 7F 08 B8 */ lwz r3, 0x8b8(r31)
/* 80214B80 00211AE0 7F E4 FB 78 */ mr r4, r31
/* 80214B84 00211AE4 80 63 00 00 */ lwz r3, 0(r3)
/* 80214B88 00211AE8 4B E7 C9 D1 */ bl GetActiveVisor__12CPlayerStateCFRC13CStateManager
/* 80214B8C 00211AEC 2C 03 00 01 */ cmpwi r3, 1
/* 80214B90 00211AF0 41 82 00 34 */ beq lbl_80214BC4
/* 80214B94 00211AF4 80 1D 00 E8 */ lwz r0, 0xe8(r29)
/* 80214B98 00211AF8 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 80214B9C 00211AFC 2C 00 00 08 */ cmpwi r0, 8
/* 80214BA0 00211B00 40 82 00 10 */ bne lbl_80214BB0
/* 80214BA4 00211B04 80 1F 0F 34 */ lwz r0, 0xf34(r31)
/* 80214BA8 00211B08 2C 00 00 00 */ cmpwi r0, 0
/* 80214BAC 00211B0C 41 82 00 18 */ beq lbl_80214BC4
lbl_80214BB0:
/* 80214BB0 00211B10 38 7D 01 70 */ addi r3, r29, 0x170
/* 80214BB4 00211B14 81 9D 01 70 */ lwz r12, 0x170(r29)
/* 80214BB8 00211B18 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80214BBC 00211B1C 7D 89 03 A6 */ mtctr r12
/* 80214BC0 00211B20 4E 80 04 21 */ bctrl
lbl_80214BC4:
/* 80214BC4 00211B24 7F A3 EB 78 */ mr r3, r29
/* 80214BC8 00211B28 7F E4 FB 78 */ mr r4, r31
/* 80214BCC 00211B2C 4B E3 FE 01 */ bl EnsureRendered__6CActorCFRC13CStateManager
/* 80214BD0 00211B30 38 00 00 00 */ li r0, 0
/* 80214BD4 00211B34 98 01 00 3C */ stb r0, 0x3c(r1)
lbl_80214BD8:
/* 80214BD8 00211B38 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80214BDC 00211B3C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 80214BE0 00211B40 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80214BE4 00211B44 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 80214BE8 00211B48 7C 08 03 A6 */ mtlr r0
/* 80214BEC 00211B4C 38 21 00 50 */ addi r1, r1, 0x50
/* 80214BF0 00211B50 4E 80 00 20 */ blr
.global Touch__17CEnergyProjectileFR6CActorR13CStateManager
Touch__17CEnergyProjectileFR6CActorR13CStateManager:
/* 80214BF4 00211B54 4E 80 00 20 */ blr
.global Explode__17CEnergyProjectileFRC9CVector3fRC9CVector3f29EWeaponCollisionResponseTypesR13CStateManagerRC20CDamageVulnerability9TUniqueId
Explode__17CEnergyProjectileFRC9CVector3fRC9CVector3f29EWeaponCollisionResponseTypesR13CStateManagerRC20CDamageVulnerability9TUniqueId:
/* 80214BF8 00211B58 94 21 FD C0 */ stwu r1, -0x240(r1)
/* 80214BFC 00211B5C 7C 08 02 A6 */ mflr r0
/* 80214C00 00211B60 90 01 02 44 */ stw r0, 0x244(r1)
/* 80214C04 00211B64 DB E1 02 30 */ stfd f31, 0x230(r1)
/* 80214C08 00211B68 F3 E1 02 38 */ psq_st f31, 568(r1), 0, qr0
/* 80214C0C 00211B6C DB C1 02 20 */ stfd f30, 0x220(r1)
/* 80214C10 00211B70 F3 C1 02 28 */ psq_st f30, 552(r1), 0, qr0
/* 80214C14 00211B74 BE A1 01 F4 */ stmw r21, 0x1f4(r1)
/* 80214C18 00211B78 C0 62 B3 2C */ lfs f3, lbl_805AD04C@sda21(r2)
/* 80214C1C 00211B7C 7C 96 23 78 */ mr r22, r4
/* 80214C20 00211B80 C0 45 00 04 */ lfs f2, 4(r5)
/* 80214C24 00211B84 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 80214C28 00211B88 C0 25 00 08 */ lfs f1, 8(r5)
/* 80214C2C 00211B8C 7C 7F 1B 78 */ mr r31, r3
/* 80214C30 00211B90 C0 05 00 00 */ lfs f0, 0(r5)
/* 80214C34 00211B94 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80214C38 00211B98 C0 B6 00 04 */ lfs f5, 4(r22)
/* 80214C3C 00211B9C EC 23 00 72 */ fmuls f1, f3, f1
/* 80214C40 00211BA0 EC 03 00 32 */ fmuls f0, f3, f0
/* 80214C44 00211BA4 C0 96 00 08 */ lfs f4, 8(r22)
/* 80214C48 00211BA8 EC A5 10 2A */ fadds f5, f5, f2
/* 80214C4C 00211BAC C0 76 00 00 */ lfs f3, 0(r22)
/* 80214C50 00211BB0 EC 84 08 2A */ fadds f4, f4, f1
/* 80214C54 00211BB4 C4 44 66 A0 */ lfsu f2, sZeroVector__9CVector3f@l(r4)
/* 80214C58 00211BB8 EC 63 00 2A */ fadds f3, f3, f0
/* 80214C5C 00211BBC 7D 15 43 78 */ mr r21, r8
/* 80214C60 00211BC0 C0 24 00 04 */ lfs f1, 4(r4)
/* 80214C64 00211BC4 7C B7 2B 78 */ mr r23, r5
/* 80214C68 00211BC8 C0 04 00 08 */ lfs f0, 8(r4)
/* 80214C6C 00211BCC 7C D8 33 78 */ mr r24, r6
/* 80214C70 00211BD0 D0 A1 01 38 */ stfs f5, 0x138(r1)
/* 80214C74 00211BD4 7C FE 3B 78 */ mr r30, r7
/* 80214C78 00211BD8 7D 3D 4B 78 */ mr r29, r9
/* 80214C7C 00211BDC 7E A3 AB 78 */ mr r3, r21
/* 80214C80 00211BE0 D0 61 01 34 */ stfs f3, 0x134(r1)
/* 80214C84 00211BE4 38 9F 01 2C */ addi r4, r31, 0x12c
/* 80214C88 00211BE8 3B 80 00 01 */ li r28, 1
/* 80214C8C 00211BEC 3B 40 00 00 */ li r26, 0
/* 80214C90 00211BF0 D0 81 01 3C */ stfs f4, 0x13c(r1)
/* 80214C94 00211BF4 3B 20 00 00 */ li r25, 0
/* 80214C98 00211BF8 38 A0 00 00 */ li r5, 0
/* 80214C9C 00211BFC D0 41 01 28 */ stfs f2, 0x128(r1)
/* 80214CA0 00211C00 D0 21 01 2C */ stfs f1, 0x12c(r1)
/* 80214CA4 00211C04 D0 01 01 30 */ stfs f0, 0x130(r1)
/* 80214CA8 00211C08 4B EE D8 15 */ bl GetVulnerability__20CDamageVulnerabilityCFRC11CWeaponModei
/* 80214CAC 00211C0C 7C 7B 1B 78 */ mr r27, r3
/* 80214CB0 00211C10 2C 1B 00 02 */ cmpwi r27, 2
/* 80214CB4 00211C14 40 82 01 58 */ bne lbl_80214E0C
/* 80214CB8 00211C18 7E A3 AB 78 */ mr r3, r21
/* 80214CBC 00211C1C 38 9F 01 2C */ addi r4, r31, 0x12c
/* 80214CC0 00211C20 4B EE D7 D1 */ bl GetDeflectionType__20CDamageVulnerabilityCFRC11CWeaponMode
/* 80214CC4 00211C24 2C 03 00 01 */ cmpwi r3, 1
/* 80214CC8 00211C28 3B 20 00 01 */ li r25, 1
/* 80214CCC 00211C2C 41 82 00 B0 */ beq lbl_80214D7C
/* 80214CD0 00211C30 40 80 00 10 */ bge lbl_80214CE0
/* 80214CD4 00211C34 2C 03 00 00 */ cmpwi r3, 0
/* 80214CD8 00211C38 40 80 00 14 */ bge lbl_80214CEC
/* 80214CDC 00211C3C 48 00 00 A0 */ b lbl_80214D7C
lbl_80214CE0:
/* 80214CE0 00211C40 2C 03 00 04 */ cmpwi r3, 4
/* 80214CE4 00211C44 40 80 00 98 */ bge lbl_80214D7C
/* 80214CE8 00211C48 48 00 00 0C */ b lbl_80214CF4
lbl_80214CEC:
/* 80214CEC 00211C4C 3B 20 00 00 */ li r25, 0
/* 80214CF0 00211C50 48 00 00 8C */ b lbl_80214D7C
lbl_80214CF4:
/* 80214CF4 00211C54 2C 03 00 02 */ cmpwi r3, 2
/* 80214CF8 00211C58 38 60 00 00 */ li r3, 0
/* 80214CFC 00211C5C 40 82 00 28 */ bne lbl_80214D24
/* 80214D00 00211C60 80 1F 00 F0 */ lwz r0, 0xf0(r31)
/* 80214D04 00211C64 2C 00 00 06 */ cmpwi r0, 6
/* 80214D08 00211C68 41 82 00 20 */ beq lbl_80214D28
/* 80214D0C 00211C6C 80 1F 00 E8 */ lwz r0, 0xe8(r31)
/* 80214D10 00211C70 54 00 06 30 */ rlwinm r0, r0, 0, 0x18, 0x18
/* 80214D14 00211C74 2C 00 00 80 */ cmpwi r0, 0x80
/* 80214D18 00211C78 41 82 00 10 */ beq lbl_80214D28
/* 80214D1C 00211C7C 38 60 00 01 */ li r3, 1
/* 80214D20 00211C80 48 00 00 08 */ b lbl_80214D28
lbl_80214D24:
/* 80214D24 00211C84 38 60 00 01 */ li r3, 1
lbl_80214D28:
/* 80214D28 00211C88 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80214D2C 00211C8C 41 82 00 50 */ beq lbl_80214D7C
/* 80214D30 00211C90 80 DF 01 00 */ lwz r6, 0x100(r31)
/* 80214D34 00211C94 38 00 00 01 */ li r0, 1
/* 80214D38 00211C98 80 FF 01 04 */ lwz r7, 0x104(r31)
/* 80214D3C 00211C9C 38 80 00 00 */ li r4, 0
/* 80214D40 00211CA0 7C C0 00 38 */ and r0, r6, r0
/* 80214D44 00211CA4 81 1F 00 F8 */ lwz r8, 0xf8(r31)
/* 80214D48 00211CA8 7C E3 20 38 */ and r3, r7, r4
/* 80214D4C 00211CAC 81 3F 00 FC */ lwz r9, 0xfc(r31)
/* 80214D50 00211CB0 80 BF 01 08 */ lwz r5, 0x108(r31)
/* 80214D54 00211CB4 7C 63 22 78 */ xor r3, r3, r4
/* 80214D58 00211CB8 7C 00 22 78 */ xor r0, r0, r4
/* 80214D5C 00211CBC 91 21 01 74 */ stw r9, 0x174(r1)
/* 80214D60 00211CC0 7C 60 03 79 */ or. r0, r3, r0
/* 80214D64 00211CC4 91 01 01 70 */ stw r8, 0x170(r1)
/* 80214D68 00211CC8 90 E1 01 7C */ stw r7, 0x17c(r1)
/* 80214D6C 00211CCC 90 C1 01 78 */ stw r6, 0x178(r1)
/* 80214D70 00211CD0 90 A1 01 80 */ stw r5, 0x180(r1)
/* 80214D74 00211CD4 41 82 00 08 */ beq lbl_80214D7C
/* 80214D78 00211CD8 3B 40 00 01 */ li r26, 1
lbl_80214D7C:
/* 80214D7C 00211CDC 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 80214D80 00211CE0 41 82 00 8C */ beq lbl_80214E0C
/* 80214D84 00211CE4 80 7E 09 00 */ lwz r3, 0x900(r30)
/* 80214D88 00211CE8 C0 22 B3 10 */ lfs f1, lbl_805AD030@sda21(r2)
/* 80214D8C 00211CEC C0 42 B3 30 */ lfs f2, lbl_805AD050@sda21(r2)
/* 80214D90 00211CF0 48 0F D7 B5 */ bl Range__9CRandom16Fff
/* 80214D94 00211CF4 FF E0 08 90 */ fmr f31, f1
/* 80214D98 00211CF8 48 10 00 59 */ bl FastSinR__5CMathFf
/* 80214D9C 00211CFC FF C0 08 90 */ fmr f30, f1
/* 80214DA0 00211D00 FC 20 F8 90 */ fmr f1, f31
/* 80214DA4 00211D04 48 0F FF A1 */ bl FastCosR__5CMathFf
/* 80214DA8 00211D08 80 9E 08 4C */ lwz r4, 0x84c(r30)
/* 80214DAC 00211D0C FF E0 08 90 */ fmr f31, f1
/* 80214DB0 00211D10 7F C5 F3 78 */ mr r5, r30
/* 80214DB4 00211D14 38 61 00 D8 */ addi r3, r1, 0xd8
/* 80214DB8 00211D18 81 84 00 00 */ lwz r12, 0(r4)
/* 80214DBC 00211D1C C0 22 B3 10 */ lfs f1, lbl_805AD030@sda21(r2)
/* 80214DC0 00211D20 81 8C 00 4C */ lwz r12, 0x4c(r12)
/* 80214DC4 00211D24 7D 89 03 A6 */ mtctr r12
/* 80214DC8 00211D28 4E 80 04 21 */ bctrl
/* 80214DCC 00211D2C C0 01 00 E0 */ lfs f0, 0xe0(r1)
/* 80214DD0 00211D30 7F E3 FB 78 */ mr r3, r31
/* 80214DD4 00211D34 C0 41 00 D8 */ lfs f2, 0xd8(r1)
/* 80214DD8 00211D38 7F C5 F3 78 */ mr r5, r30
/* 80214DDC 00211D3C EC 60 F0 2A */ fadds f3, f0, f30
/* 80214DE0 00211D40 C0 21 00 DC */ lfs f1, 0xdc(r1)
/* 80214DE4 00211D44 C0 02 B3 10 */ lfs f0, lbl_805AD030@sda21(r2)
/* 80214DE8 00211D48 EC 42 F8 2A */ fadds f2, f2, f31
/* 80214DEC 00211D4C A0 1D 00 00 */ lhz r0, 0(r29)
/* 80214DF0 00211D50 38 81 00 34 */ addi r4, r1, 0x34
/* 80214DF4 00211D54 EC 01 00 2A */ fadds f0, f1, f0
/* 80214DF8 00211D58 D0 41 01 28 */ stfs f2, 0x128(r1)
/* 80214DFC 00211D5C D0 61 01 30 */ stfs f3, 0x130(r1)
/* 80214E00 00211D60 D0 01 01 2C */ stfs f0, 0x12c(r1)
/* 80214E04 00211D64 B0 01 00 34 */ sth r0, 0x34(r1)
/* 80214E08 00211D68 4B FF EF 9D */ bl ChangeProjectileOwner__17CEnergyProjectileF9TUniqueIdR13CStateManager
lbl_80214E0C:
/* 80214E0C 00211D6C 2C 1B 00 03 */ cmpwi r27, 3
/* 80214E10 00211D70 41 82 00 38 */ beq lbl_80214E48
/* 80214E14 00211D74 57 20 06 3F */ clrlwi. r0, r25, 0x18
/* 80214E18 00211D78 40 82 00 30 */ bne lbl_80214E48
/* 80214E1C 00211D7C 2C 18 00 0F */ cmpwi r24, 0xf
/* 80214E20 00211D80 38 00 00 00 */ li r0, 0
/* 80214E24 00211D84 41 82 00 1C */ beq lbl_80214E40
/* 80214E28 00211D88 2C 18 00 12 */ cmpwi r24, 0x12
/* 80214E2C 00211D8C 41 82 00 14 */ beq lbl_80214E40
/* 80214E30 00211D90 2C 18 00 45 */ cmpwi r24, 0x45
/* 80214E34 00211D94 41 80 00 10 */ blt lbl_80214E44
/* 80214E38 00211D98 2C 18 00 5D */ cmpwi r24, 0x5d
/* 80214E3C 00211D9C 41 81 00 08 */ bgt lbl_80214E44
lbl_80214E40:
/* 80214E40 00211DA0 38 00 00 01 */ li r0, 1
lbl_80214E44:
/* 80214E44 00211DA4 7C 19 03 78 */ mr r25, r0
lbl_80214E48:
/* 80214E48 00211DA8 7F E3 FB 78 */ mr r3, r31
/* 80214E4C 00211DAC 38 81 01 34 */ addi r4, r1, 0x134
/* 80214E50 00211DB0 4B E3 E0 3D */ bl SetTranslation__6CActorFRC9CVector3f
/* 80214E54 00211DB4 57 20 06 3F */ clrlwi. r0, r25, 0x18
/* 80214E58 00211DB8 41 82 00 28 */ beq lbl_80214E80
/* 80214E5C 00211DBC A0 8D A3 8C */ lhz r4, kInvalidUniqueId@sda21(r13)
/* 80214E60 00211DC0 38 60 00 00 */ li r3, 0
/* 80214E64 00211DC4 3B 80 00 00 */ li r28, 0
/* 80214E68 00211DC8 B0 9F 02 C0 */ sth r4, 0x2c0(r31)
/* 80214E6C 00211DCC 88 1F 03 D0 */ lbz r0, 0x3d0(r31)
/* 80214E70 00211DD0 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 80214E74 00211DD4 B0 81 00 30 */ sth r4, 0x30(r1)
/* 80214E78 00211DD8 98 1F 03 D0 */ stb r0, 0x3d0(r31)
/* 80214E7C 00211DDC 48 00 00 54 */ b lbl_80214ED0
lbl_80214E80:
/* 80214E80 00211DE0 7F E3 FB 78 */ mr r3, r31
/* 80214E84 00211DE4 7F C4 F3 78 */ mr r4, r30
/* 80214E88 00211DE8 48 00 07 75 */ bl StopProjectile__17CEnergyProjectileFR13CStateManager
/* 80214E8C 00211DEC 88 1F 03 D0 */ lbz r0, 0x3d0(r31)
/* 80214E90 00211DF0 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 80214E94 00211DF4 41 82 00 3C */ beq lbl_80214ED0
/* 80214E98 00211DF8 80 D6 00 00 */ lwz r6, 0(r22)
/* 80214E9C 00211DFC 38 7F 02 FC */ addi r3, r31, 0x2fc
/* 80214EA0 00211E00 80 B6 00 04 */ lwz r5, 4(r22)
/* 80214EA4 00211E04 38 81 00 CC */ addi r4, r1, 0xcc
/* 80214EA8 00211E08 80 16 00 08 */ lwz r0, 8(r22)
/* 80214EAC 00211E0C 90 C1 00 CC */ stw r6, 0xcc(r1)
/* 80214EB0 00211E10 C0 22 B3 14 */ lfs f1, lbl_805AD034@sda21(r2)
/* 80214EB4 00211E14 90 A1 00 D0 */ stw r5, 0xd0(r1)
/* 80214EB8 00211E18 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 80214EBC 00211E1C 4B F4 7F B1 */ bl SetSfxPositionAndDistance__16CCameraShakeDataFRC9CVector3ff
/* 80214EC0 00211E20 80 7E 08 70 */ lwz r3, 0x870(r30)
/* 80214EC4 00211E24 38 9F 02 FC */ addi r4, r31, 0x2fc
/* 80214EC8 00211E28 38 A0 00 00 */ li r5, 0
/* 80214ECC 00211E2C 4B DF 5B 55 */ bl AddCameraShaker__14CCameraManagerFRC16CCameraShakeDatab
lbl_80214ED0:
/* 80214ED0 00211E30 7F E3 FB 78 */ mr r3, r31
/* 80214ED4 00211E34 7E C4 B3 78 */ mr r4, r22
/* 80214ED8 00211E38 7F 05 C3 78 */ mr r5, r24
/* 80214EDC 00211E3C 4B FF ED 95 */ bl PlayImpactSound__17CEnergyProjectileFRC9CVector3f29EWeaponCollisionResponseTypes
/* 80214EE0 00211E40 7F C3 F3 78 */ mr r3, r30
/* 80214EE4 00211E44 7E C4 B3 78 */ mr r4, r22
/* 80214EE8 00211E48 38 A0 00 02 */ li r5, 2
/* 80214EEC 00211E4C 4B E3 38 99 */ bl InformListeners__13CStateManagerFRC9CVector3f16EListenNoiseType
/* 80214EF0 00211E50 57 80 06 3E */ clrlwi r0, r28, 0x18
/* 80214EF4 00211E54 3B 7F 01 70 */ addi r27, r31, 0x170
/* 80214EF8 00211E58 7C 00 00 34 */ cntlzw r0, r0
/* 80214EFC 00211E5C 7F 05 C3 78 */ mr r5, r24
/* 80214F00 00211E60 54 06 D9 7E */ srwi r6, r0, 5
/* 80214F04 00211E64 7F 64 DB 78 */ mr r4, r27
/* 80214F08 00211E68 7E E9 BB 78 */ mr r9, r23
/* 80214F0C 00211E6C 38 61 00 BC */ addi r3, r1, 0xbc
/* 80214F10 00211E70 57 47 06 3E */ clrlwi r7, r26, 0x18
/* 80214F14 00211E74 39 01 01 34 */ addi r8, r1, 0x134
/* 80214F18 00211E78 39 41 01 28 */ addi r10, r1, 0x128
/* 80214F1C 00211E7C 48 09 A4 25 */ bl CollisionOccured__17CProjectileWeaponF29EWeaponCollisionResponseTypesbbRC9CVector3fRC9CVector3fRC9CVector3f
/* 80214F20 00211E80 88 01 00 C8 */ lbz r0, 0xc8(r1)
/* 80214F24 00211E84 28 00 00 00 */ cmplwi r0, 0
/* 80214F28 00211E88 98 01 01 24 */ stb r0, 0x124(r1)
/* 80214F2C 00211E8C 41 82 00 28 */ beq lbl_80214F54
/* 80214F30 00211E90 36 C1 01 18 */ addic. r22, r1, 0x118
/* 80214F34 00211E94 38 81 00 BC */ addi r4, r1, 0xbc
/* 80214F38 00211E98 41 82 00 1C */ beq lbl_80214F54
/* 80214F3C 00211E9C 7E C3 B3 78 */ mr r3, r22
/* 80214F40 00211EA0 48 12 BF 69 */ bl __ct__6CTokenFRC6CToken
/* 80214F44 00211EA4 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 80214F48 00211EA8 7E C3 B3 78 */ mr r3, r22
/* 80214F4C 00211EAC 90 16 00 08 */ stw r0, 8(r22)
/* 80214F50 00211EB0 48 12 BE 35 */ bl Lock__6CTokenFv
lbl_80214F54:
/* 80214F54 00211EB4 88 01 00 C8 */ lbz r0, 0xc8(r1)
/* 80214F58 00211EB8 28 00 00 00 */ cmplwi r0, 0
/* 80214F5C 00211EBC 41 82 00 1C */ beq lbl_80214F78
/* 80214F60 00211EC0 34 61 00 BC */ addic. r3, r1, 0xbc
/* 80214F64 00211EC4 41 82 00 14 */ beq lbl_80214F78
/* 80214F68 00211EC8 28 03 00 00 */ cmplwi r3, 0
/* 80214F6C 00211ECC 41 82 00 0C */ beq lbl_80214F78
/* 80214F70 00211ED0 38 80 00 00 */ li r4, 0
/* 80214F74 00211ED4 48 12 BE CD */ bl __dt__6CTokenFv
lbl_80214F78:
/* 80214F78 00211ED8 88 01 01 24 */ lbz r0, 0x124(r1)
/* 80214F7C 00211EDC 38 60 00 00 */ li r3, 0
/* 80214F80 00211EE0 98 61 00 C8 */ stb r3, 0xc8(r1)
/* 80214F84 00211EE4 28 00 00 00 */ cmplwi r0, 0
/* 80214F88 00211EE8 41 82 06 1C */ beq lbl_802155A4
/* 80214F8C 00211EEC 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 80214F90 00211EF0 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 80214F94 00211EF4 38 C3 66 F4 */ addi r6, r3, sUpVector__9CVector3f@l
/* 80214F98 00211EF8 7E E5 BB 78 */ mr r5, r23
/* 80214F9C 00211EFC 38 84 66 A0 */ addi r4, r4, sZeroVector__9CVector3f@l
/* 80214FA0 00211F00 38 61 01 88 */ addi r3, r1, 0x188
/* 80214FA4 00211F04 48 0F EB 6D */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 80214FA8 00211F08 38 61 01 B8 */ addi r3, r1, 0x1b8
/* 80214FAC 00211F0C 38 81 01 88 */ addi r4, r1, 0x188
/* 80214FB0 00211F10 48 0F DB C5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80214FB4 00211F14 C0 41 01 34 */ lfs f2, 0x134(r1)
/* 80214FB8 00211F18 39 40 00 00 */ li r10, 0
/* 80214FBC 00211F1C C0 21 01 38 */ lfs f1, 0x138(r1)
/* 80214FC0 00211F20 7D 4B 53 78 */ mr r11, r10
/* 80214FC4 00211F24 C0 01 01 3C */ lfs f0, 0x13c(r1)
/* 80214FC8 00211F28 D0 41 01 C4 */ stfs f2, 0x1c4(r1)
/* 80214FCC 00211F2C D0 21 01 D4 */ stfs f1, 0x1d4(r1)
/* 80214FD0 00211F30 D0 01 01 E4 */ stfs f0, 0x1e4(r1)
/* 80214FD4 00211F34 80 1F 00 F0 */ lwz r0, 0xf0(r31)
/* 80214FD8 00211F38 2C 00 00 00 */ cmpwi r0, 0
/* 80214FDC 00211F3C 40 82 00 4C */ bne lbl_80215028
/* 80214FE0 00211F40 80 FF 01 04 */ lwz r7, 0x104(r31)
/* 80214FE4 00211F44 38 80 00 01 */ li r4, 1
/* 80214FE8 00211F48 80 DF 01 00 */ lwz r6, 0x100(r31)
/* 80214FEC 00211F4C 7C E3 50 38 */ and r3, r7, r10
/* 80214FF0 00211F50 81 1F 00 F8 */ lwz r8, 0xf8(r31)
/* 80214FF4 00211F54 7C C0 20 38 */ and r0, r6, r4
/* 80214FF8 00211F58 81 3F 00 FC */ lwz r9, 0xfc(r31)
/* 80214FFC 00211F5C 80 BF 01 08 */ lwz r5, 0x108(r31)
/* 80215000 00211F60 7C 63 52 78 */ xor r3, r3, r10
/* 80215004 00211F64 7C 00 52 78 */ xor r0, r0, r10
/* 80215008 00211F68 91 21 01 5C */ stw r9, 0x15c(r1)
/* 8021500C 00211F6C 7C 60 03 79 */ or. r0, r3, r0
/* 80215010 00211F70 91 01 01 58 */ stw r8, 0x158(r1)
/* 80215014 00211F74 90 E1 01 64 */ stw r7, 0x164(r1)
/* 80215018 00211F78 90 C1 01 60 */ stw r6, 0x160(r1)
/* 8021501C 00211F7C 90 A1 01 68 */ stw r5, 0x168(r1)
/* 80215020 00211F80 41 82 00 08 */ beq lbl_80215028
/* 80215024 00211F84 7C 8B 23 78 */ mr r11, r4
lbl_80215028:
/* 80215028 00211F88 55 60 06 3F */ clrlwi. r0, r11, 0x18
/* 8021502C 00211F8C 41 82 00 14 */ beq lbl_80215040
/* 80215030 00211F90 88 1F 02 E4 */ lbz r0, 0x2e4(r31)
/* 80215034 00211F94 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 80215038 00211F98 41 82 00 08 */ beq lbl_80215040
/* 8021503C 00211F9C 39 40 00 01 */ li r10, 1
lbl_80215040:
/* 80215040 00211FA0 55 40 06 3F */ clrlwi. r0, r10, 0x18
/* 80215044 00211FA4 40 82 04 04 */ bne lbl_80215448
/* 80215048 00211FA8 7F 64 DB 78 */ mr r4, r27
/* 8021504C 00211FAC 7F 05 C3 78 */ mr r5, r24
/* 80215050 00211FB0 38 61 00 AC */ addi r3, r1, 0xac
/* 80215054 00211FB4 48 09 A1 F5 */ bl GetDecalForCollision__17CProjectileWeaponCF29EWeaponCollisionResponseTypes
/* 80215058 00211FB8 88 01 00 B8 */ lbz r0, 0xb8(r1)
/* 8021505C 00211FBC 28 00 00 00 */ cmplwi r0, 0
/* 80215060 00211FC0 98 01 01 14 */ stb r0, 0x114(r1)
/* 80215064 00211FC4 41 82 00 28 */ beq lbl_8021508C
/* 80215068 00211FC8 36 C1 01 08 */ addic. r22, r1, 0x108
/* 8021506C 00211FCC 38 81 00 AC */ addi r4, r1, 0xac
/* 80215070 00211FD0 41 82 00 1C */ beq lbl_8021508C
/* 80215074 00211FD4 7E C3 B3 78 */ mr r3, r22
/* 80215078 00211FD8 48 12 BE 31 */ bl __ct__6CTokenFRC6CToken
/* 8021507C 00211FDC 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 80215080 00211FE0 7E C3 B3 78 */ mr r3, r22
/* 80215084 00211FE4 90 16 00 08 */ stw r0, 8(r22)
/* 80215088 00211FE8 48 12 BC FD */ bl Lock__6CTokenFv
lbl_8021508C:
/* 8021508C 00211FEC 88 01 00 B8 */ lbz r0, 0xb8(r1)
/* 80215090 00211FF0 28 00 00 00 */ cmplwi r0, 0
/* 80215094 00211FF4 41 82 00 1C */ beq lbl_802150B0
/* 80215098 00211FF8 34 61 00 AC */ addic. r3, r1, 0xac
/* 8021509C 00211FFC 41 82 00 14 */ beq lbl_802150B0
/* 802150A0 00212000 28 03 00 00 */ cmplwi r3, 0
/* 802150A4 00212004 41 82 00 0C */ beq lbl_802150B0
/* 802150A8 00212008 38 80 00 00 */ li r4, 0
/* 802150AC 0021200C 48 12 BD 95 */ bl __dt__6CTokenFv
lbl_802150B0:
/* 802150B0 00212010 88 01 01 14 */ lbz r0, 0x114(r1)
/* 802150B4 00212014 38 60 00 00 */ li r3, 0
/* 802150B8 00212018 98 61 00 B8 */ stb r3, 0xb8(r1)
/* 802150BC 0021201C 28 00 00 00 */ cmplwi r0, 0
/* 802150C0 00212020 41 82 00 2C */ beq lbl_802150EC
/* 802150C4 00212024 80 1F 00 E8 */ lwz r0, 0xe8(r31)
/* 802150C8 00212028 7F C6 F3 78 */ mr r6, r30
/* 802150CC 0021202C 38 61 01 08 */ addi r3, r1, 0x108
/* 802150D0 00212030 38 81 01 B8 */ addi r4, r1, 0x1b8
/* 802150D4 00212034 54 07 07 38 */ rlwinm r7, r0, 0, 0x1c, 0x1c
/* 802150D8 00212038 38 A7 FF F8 */ addi r5, r7, -8
/* 802150DC 0021203C 20 07 00 08 */ subfic r0, r7, 8
/* 802150E0 00212040 7C A0 03 78 */ or r0, r5, r0
/* 802150E4 00212044 54 05 0F FE */ srwi r5, r0, 0x1f
/* 802150E8 00212048 4B F0 20 41 */ bl "AddDecal__13CDecalManagerFRC27TToken<17CDecalDescription>RC12CTransform4fR13CStateManager"
lbl_802150EC:
/* 802150EC 0021204C C0 02 B3 20 */ lfs f0, lbl_805AD040@sda21(r2)
/* 802150F0 00212050 38 80 00 00 */ li r4, 0
/* 802150F4 00212054 D0 01 00 FC */ stfs f0, 0xfc(r1)
/* 802150F8 00212058 D0 01 01 00 */ stfs f0, 0x100(r1)
/* 802150FC 0021205C D0 01 01 04 */ stfs f0, 0x104(r1)
/* 80215100 00212060 80 7E 08 4C */ lwz r3, 0x84c(r30)
/* 80215104 00212064 80 03 02 F4 */ lwz r0, 0x2f4(r3)
/* 80215108 00212068 2C 00 00 00 */ cmpwi r0, 0
/* 8021510C 0021206C 40 82 00 80 */ bne lbl_8021518C
/* 80215110 00212070 80 7E 08 70 */ lwz r3, 0x870(r30)
/* 80215114 00212074 7F C4 F3 78 */ mr r4, r30
/* 80215118 00212078 4B DF 6A 01 */ bl GetCurrentCamera__14CCameraManagerCFRC13CStateManager
/* 8021511C 0021207C C0 21 01 D4 */ lfs f1, 0x1d4(r1)
/* 80215120 00212080 C0 03 00 50 */ lfs f0, 0x50(r3)
/* 80215124 00212084 C0 61 01 E4 */ lfs f3, 0x1e4(r1)
/* 80215128 00212088 C0 43 00 60 */ lfs f2, 0x60(r3)
/* 8021512C 0021208C EC 81 00 28 */ fsubs f4, f1, f0
/* 80215130 00212090 C0 03 00 40 */ lfs f0, 0x40(r3)
/* 80215134 00212094 38 61 00 F0 */ addi r3, r1, 0xf0
/* 80215138 00212098 C0 21 01 C4 */ lfs f1, 0x1c4(r1)
/* 8021513C 0021209C EC 43 10 28 */ fsubs f2, f3, f2
/* 80215140 002120A0 D0 81 00 F4 */ stfs f4, 0xf4(r1)
/* 80215144 002120A4 EC 01 00 28 */ fsubs f0, f1, f0
/* 80215148 002120A8 D0 41 00 F8 */ stfs f2, 0xf8(r1)
/* 8021514C 002120AC D0 01 00 F0 */ stfs f0, 0xf0(r1)
/* 80215150 002120B0 48 0F F7 69 */ bl Magnitude__9CVector3fCFv
/* 80215154 002120B4 C0 02 B3 34 */ lfs f0, lbl_805AD054@sda21(r2)
/* 80215158 002120B8 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8021515C 002120BC 40 80 00 20 */ bge lbl_8021517C
/* 80215160 002120C0 C0 42 B3 38 */ lfs f2, lbl_805AD058@sda21(r2)
/* 80215164 002120C4 C0 62 B3 24 */ lfs f3, lbl_805AD044@sda21(r2)
/* 80215168 002120C8 EC 01 00 B2 */ fmuls f0, f1, f2
/* 8021516C 002120CC EC 03 10 3A */ fmadds f0, f3, f0, f2
/* 80215170 002120D0 D0 01 00 FC */ stfs f0, 0xfc(r1)
/* 80215174 002120D4 D0 01 01 00 */ stfs f0, 0x100(r1)
/* 80215178 002120D8 D0 01 01 04 */ stfs f0, 0x104(r1)
lbl_8021517C:
/* 8021517C 002120DC C0 02 B3 34 */ lfs f0, lbl_805AD054@sda21(r2)
/* 80215180 002120E0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80215184 002120E4 7C 00 00 26 */ mfcr r0
/* 80215188 002120E8 54 04 0F FE */ srwi r4, r0, 0x1f
lbl_8021518C:
/* 8021518C 002120EC 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80215190 002120F0 40 82 00 24 */ bne lbl_802151B4
/* 80215194 002120F4 80 6D A0 78 */ lwz r3, gpMain@sda21(r13)
/* 80215198 002120F8 C0 02 B3 3C */ lfs f0, lbl_805AD05C@sda21(r2)
/* 8021519C 002120FC C0 43 01 1C */ lfs f2, 0x11c(r3)
/* 802151A0 00212100 C0 23 01 18 */ lfs f1, 0x118(r3)
/* 802151A4 00212104 EC 21 10 2A */ fadds f1, f1, f2
/* 802151A8 00212108 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802151AC 0021210C 40 81 00 08 */ ble lbl_802151B4
/* 802151B0 00212110 38 80 00 01 */ li r4, 1
lbl_802151B4:
/* 802151B4 00212114 80 1F 00 E8 */ lwz r0, 0xe8(r31)
/* 802151B8 00212118 3B 20 00 08 */ li r25, 8
/* 802151BC 0021211C 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
/* 802151C0 00212120 2C 00 00 08 */ cmpwi r0, 8
/* 802151C4 00212124 40 82 00 08 */ bne lbl_802151CC
/* 802151C8 00212128 63 39 00 04 */ ori r25, r25, 4
lbl_802151CC:
/* 802151CC 0021212C 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802151D0 00212130 41 82 00 08 */ beq lbl_802151D8
/* 802151D4 00212134 63 39 00 02 */ ori r25, r25, 2
lbl_802151D8:
/* 802151D8 00212138 3C 60 80 3D */ lis r3, lbl_803D2890@ha
/* 802151DC 0021213C 3A C0 00 00 */ li r22, 0
/* 802151E0 00212140 38 63 28 90 */ addi r3, r3, lbl_803D2890@l
/* 802151E4 00212144 3A A0 00 00 */ li r21, 0
/* 802151E8 00212148 38 83 00 1F */ addi r4, r3, 0x1f
/* 802151EC 0021214C 38 60 01 00 */ li r3, 0x100
/* 802151F0 00212150 38 A0 00 00 */ li r5, 0
/* 802151F4 00212154 48 10 06 79 */ bl __nw__FUlPCcPCc
/* 802151F8 00212158 7C 77 1B 79 */ or. r23, r3, r3
/* 802151FC 0021215C 41 82 00 98 */ beq lbl_80215294
/* 80215200 00212160 3C 80 80 3D */ lis r4, lbl_803D2890@ha
/* 80215204 00212164 38 61 00 9C */ addi r3, r1, 0x9c
/* 80215208 00212168 38 84 28 90 */ addi r4, r4, lbl_803D2890@l
/* 8021520C 0021216C 38 84 00 26 */ addi r4, r4, 0x26
/* 80215210 00212170 4B DE FA A9 */ bl string_l__4rstlFPCc
/* 80215214 00212174 80 0D A3 88 */ lwz r0, kInvalidEditorId@sda21(r13)
/* 80215218 00212178 3C 60 80 57 */ lis r3, NullConnectionList__7CEntity@ha
/* 8021521C 0021217C 38 A3 D4 10 */ addi r5, r3, NullConnectionList__7CEntity@l
/* 80215220 00212180 38 81 00 58 */ addi r4, r1, 0x58
/* 80215224 00212184 90 01 00 5C */ stw r0, 0x5c(r1)
/* 80215228 00212188 38 61 01 40 */ addi r3, r1, 0x140
/* 8021522C 0021218C 38 C1 00 5C */ addi r6, r1, 0x5c
/* 80215230 00212190 3A C0 00 01 */ li r22, 1
/* 80215234 00212194 80 1F 00 04 */ lwz r0, 4(r31)
/* 80215238 00212198 90 01 00 54 */ stw r0, 0x54(r1)
/* 8021523C 0021219C 90 01 00 58 */ stw r0, 0x58(r1)
/* 80215240 002121A0 4B E3 C2 45 */ bl "__ct__11CEntityInfoF7TAreaIdRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>9TEditorId"
/* 80215244 002121A4 7F C4 F3 78 */ mr r4, r30
/* 80215248 002121A8 38 61 00 28 */ addi r3, r1, 0x28
/* 8021524C 002121AC 3A A0 00 01 */ li r21, 1
/* 80215250 002121B0 4B E3 7E 8D */ bl AllocateUniqueId__13CStateManagerFv
/* 80215254 002121B4 A0 01 00 28 */ lhz r0, 0x28(r1)
/* 80215258 002121B8 B0 01 00 2C */ sth r0, 0x2c(r1)
/* 8021525C 002121BC 48 13 4D 51 */ bl White__6CColorFv
/* 80215260 002121C0 38 01 00 FC */ addi r0, r1, 0xfc
/* 80215264 002121C4 7F 2A CB 78 */ mr r10, r25
/* 80215268 002121C8 90 01 00 08 */ stw r0, 8(r1)
/* 8021526C 002121CC 38 81 01 18 */ addi r4, r1, 0x118
/* 80215270 002121D0 38 A1 00 2C */ addi r5, r1, 0x2c
/* 80215274 002121D4 38 E1 01 40 */ addi r7, r1, 0x140
/* 80215278 002121D8 90 61 00 0C */ stw r3, 0xc(r1)
/* 8021527C 002121DC 7E E3 BB 78 */ mr r3, r23
/* 80215280 002121E0 39 01 00 9C */ addi r8, r1, 0x9c
/* 80215284 002121E4 39 21 01 B8 */ addi r9, r1, 0x1b8
/* 80215288 002121E8 38 C0 00 01 */ li r6, 1
/* 8021528C 002121EC 4B E4 58 6D */ bl "__ct__10CExplosionFRC31TLockedToken<15CGenDescription>9TUniqueIdbRC11CEntityInfoRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor"
/* 80215290 002121F0 7C 77 1B 78 */ mr r23, r3
lbl_80215294:
/* 80215294 002121F4 7E A0 07 75 */ extsb. r0, r21
/* 80215298 002121F8 7E F9 BB 78 */ mr r25, r23
/* 8021529C 002121FC 41 82 00 44 */ beq lbl_802152E0
/* 802152A0 00212200 80 01 01 48 */ lwz r0, 0x148(r1)
/* 802152A4 00212204 80 61 01 50 */ lwz r3, 0x150(r1)
/* 802152A8 00212208 1C 00 00 0C */ mulli r0, r0, 0xc
/* 802152AC 0021220C 90 61 00 3C */ stw r3, 0x3c(r1)
/* 802152B0 00212210 7C 64 1B 78 */ mr r4, r3
/* 802152B4 00212214 7C 03 02 14 */ add r0, r3, r0
/* 802152B8 00212218 90 61 00 38 */ stw r3, 0x38(r1)
/* 802152BC 0021221C 90 01 00 44 */ stw r0, 0x44(r1)
/* 802152C0 00212220 90 01 00 40 */ stw r0, 0x40(r1)
/* 802152C4 00212224 48 00 00 08 */ b lbl_802152CC
lbl_802152C8:
/* 802152C8 00212228 38 84 00 0C */ addi r4, r4, 0xc
lbl_802152CC:
/* 802152CC 0021222C 7C 04 00 40 */ cmplw r4, r0
/* 802152D0 00212230 40 82 FF F8 */ bne lbl_802152C8
/* 802152D4 00212234 28 03 00 00 */ cmplwi r3, 0
/* 802152D8 00212238 41 82 00 08 */ beq lbl_802152E0
/* 802152DC 0021223C 48 10 06 55 */ bl Free__7CMemoryFPCv
lbl_802152E0:
/* 802152E0 00212240 7E C0 07 75 */ extsb. r0, r22
/* 802152E4 00212244 41 82 00 0C */ beq lbl_802152F0
/* 802152E8 00212248 38 61 00 9C */ addi r3, r1, 0x9c
/* 802152EC 0021224C 48 12 87 F5 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_802152F0:
/* 802152F0 00212250 7F C3 F3 78 */ mr r3, r30
/* 802152F4 00212254 7F 24 CB 78 */ mr r4, r25
/* 802152F8 00212258 4B E3 79 FD */ bl AddObject__13CStateManagerFP7CEntity
/* 802152FC 0021225C A0 1D 00 00 */ lhz r0, 0(r29)
/* 80215300 00212260 7F C3 F3 78 */ mr r3, r30
/* 80215304 00212264 38 81 00 24 */ addi r4, r1, 0x24
/* 80215308 00212268 B0 01 00 24 */ sth r0, 0x24(r1)
/* 8021530C 0021226C 4B E3 72 69 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80215310 00212270 7C 64 1B 78 */ mr r4, r3
/* 80215314 00212274 38 61 00 78 */ addi r3, r1, 0x78
/* 80215318 00212278 4B E9 A9 79 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 8021531C 0021227C 82 C3 00 04 */ lwz r22, 4(r3)
/* 80215320 00212280 28 16 00 00 */ cmplwi r22, 0
/* 80215324 00212284 41 82 00 F4 */ beq lbl_80215418
/* 80215328 00212288 7E C4 B3 78 */ mr r4, r22
/* 8021532C 0021228C 38 61 00 70 */ addi r3, r1, 0x70
/* 80215330 00212290 3B 40 00 00 */ li r26, 0
/* 80215334 00212294 4B E9 3A E1 */ bl "__ct__29TCastToPtr<15CScriptPlatform>FP7CEntity"
/* 80215338 00212298 80 03 00 04 */ lwz r0, 4(r3)
/* 8021533C 0021229C 28 00 00 00 */ cmplwi r0, 0
/* 80215340 002122A0 7C 1B 03 78 */ mr r27, r0
/* 80215344 002122A4 41 82 00 0C */ beq lbl_80215350
/* 80215348 002122A8 3B 40 00 01 */ li r26, 1
/* 8021534C 002122AC 48 00 00 A8 */ b lbl_802153F4
lbl_80215350:
/* 80215350 002122B0 80 76 00 68 */ lwz r3, 0x68(r22)
/* 80215354 002122B4 3C 00 00 10 */ lis r0, 0x10
/* 80215358 002122B8 80 B6 00 6C */ lwz r5, 0x6c(r22)
/* 8021535C 002122BC 38 80 00 00 */ li r4, 0
/* 80215360 002122C0 7C 60 00 38 */ and r0, r3, r0
/* 80215364 002122C4 7C A3 20 38 */ and r3, r5, r4
/* 80215368 002122C8 7C 63 22 78 */ xor r3, r3, r4
/* 8021536C 002122CC 7C 00 22 78 */ xor r0, r0, r4
/* 80215370 002122D0 7C 60 03 79 */ or. r0, r3, r0
/* 80215374 002122D4 41 82 00 80 */ beq lbl_802153F4
/* 80215378 002122D8 82 DE 08 48 */ lwz r22, 0x848(r30)
/* 8021537C 002122DC AA F6 20 08 */ lha r23, 0x2008(r22)
/* 80215380 002122E0 48 00 00 6C */ b lbl_802153EC
lbl_80215384:
/* 80215384 002122E4 7E C3 B3 78 */ mr r3, r22
/* 80215388 002122E8 7E E4 BB 78 */ mr r4, r23
/* 8021538C 002122EC 4B DF A9 89 */ bl __vc__11CObjectListFi
/* 80215390 002122F0 7C 64 1B 78 */ mr r4, r3
/* 80215394 002122F4 38 61 00 68 */ addi r3, r1, 0x68
/* 80215398 002122F8 4B E9 3A 7D */ bl "__ct__29TCastToPtr<15CScriptPlatform>FP7CEntity"
/* 8021539C 002122FC 83 03 00 04 */ lwz r24, 4(r3)
/* 802153A0 00212300 28 18 00 00 */ cmplwi r24, 0
/* 802153A4 00212304 41 82 00 2C */ beq lbl_802153D0
/* 802153A8 00212308 A0 1D 00 00 */ lhz r0, 0(r29)
/* 802153AC 0021230C 7F 03 C3 78 */ mr r3, r24
/* 802153B0 00212310 38 81 00 20 */ addi r4, r1, 0x20
/* 802153B4 00212314 B0 01 00 20 */ sth r0, 0x20(r1)
/* 802153B8 00212318 4B E9 C8 41 */ bl IsSlave__15CScriptPlatformCF9TUniqueId
/* 802153BC 0021231C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802153C0 00212320 41 82 00 10 */ beq lbl_802153D0
/* 802153C4 00212324 7F 1B C3 78 */ mr r27, r24
/* 802153C8 00212328 3B 40 00 01 */ li r26, 1
/* 802153CC 0021232C 48 00 00 28 */ b lbl_802153F4
lbl_802153D0:
/* 802153D0 00212330 2C 17 FF FF */ cmpwi r23, -1
/* 802153D4 00212334 41 82 00 14 */ beq lbl_802153E8
/* 802153D8 00212338 56 E3 18 38 */ slwi r3, r23, 3
/* 802153DC 0021233C 38 03 00 08 */ addi r0, r3, 8
/* 802153E0 00212340 7E F6 02 AE */ lhax r23, r22, r0
/* 802153E4 00212344 48 00 00 08 */ b lbl_802153EC
lbl_802153E8:
/* 802153E8 00212348 3A E0 FF FF */ li r23, -1
lbl_802153EC:
/* 802153EC 0021234C 2C 17 FF FF */ cmpwi r23, -1
/* 802153F0 00212350 40 82 FF 94 */ bne lbl_80215384
lbl_802153F4:
/* 802153F4 00212354 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 802153F8 00212358 41 82 00 20 */ beq lbl_80215418
/* 802153FC 0021235C A0 19 00 08 */ lhz r0, 8(r25)
/* 80215400 00212360 7F 63 DB 78 */ mr r3, r27
/* 80215404 00212364 7F C5 F3 78 */ mr r5, r30
/* 80215408 00212368 38 81 00 1C */ addi r4, r1, 0x1c
/* 8021540C 0021236C B0 01 00 18 */ sth r0, 0x18(r1)
/* 80215410 00212370 B0 01 00 1C */ sth r0, 0x1c(r1)
/* 80215414 00212374 4B E9 CB 1D */ bl AddSlave__15CScriptPlatformF9TUniqueIdR13CStateManager
lbl_80215418:
/* 80215418 00212378 88 01 01 14 */ lbz r0, 0x114(r1)
/* 8021541C 0021237C 28 00 00 00 */ cmplwi r0, 0
/* 80215420 00212380 41 82 00 1C */ beq lbl_8021543C
/* 80215424 00212384 34 61 01 08 */ addic. r3, r1, 0x108
/* 80215428 00212388 41 82 00 14 */ beq lbl_8021543C
/* 8021542C 0021238C 28 03 00 00 */ cmplwi r3, 0
/* 80215430 00212390 41 82 00 0C */ beq lbl_8021543C
/* 80215434 00212394 38 80 00 00 */ li r4, 0
/* 80215438 00212398 48 12 BA 09 */ bl __dt__6CTokenFv
lbl_8021543C:
/* 8021543C 0021239C 38 00 00 00 */ li r0, 0
/* 80215440 002123A0 98 01 01 14 */ stb r0, 0x114(r1)
/* 80215444 002123A4 48 00 00 14 */ b lbl_80215458
lbl_80215448:
/* 80215448 002123A8 88 1F 03 D0 */ lbz r0, 0x3d0(r31)
/* 8021544C 002123AC 38 60 00 01 */ li r3, 1
/* 80215450 002123B0 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 80215454 002123B4 98 1F 03 D0 */ stb r0, 0x3d0(r31)
lbl_80215458:
/* 80215458 002123B8 80 1F 00 E8 */ lwz r0, 0xe8(r31)
/* 8021545C 002123BC 70 00 00 88 */ andi. r0, r0, 0x88
/* 80215460 002123C0 2C 00 00 88 */ cmpwi r0, 0x88
/* 80215464 002123C4 40 82 01 40 */ bne lbl_802155A4
/* 80215468 002123C8 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8021546C 002123CC 3C 60 80 3D */ lis r3, lbl_803D2890@ha
/* 80215470 002123D0 38 A3 28 90 */ addi r5, r3, lbl_803D2890@l
/* 80215474 002123D4 38 61 00 60 */ addi r3, r1, 0x60
/* 80215478 002123D8 81 84 00 00 */ lwz r12, 0(r4)
/* 8021547C 002123DC 38 A5 00 44 */ addi r5, r5, 0x44
/* 80215480 002123E0 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80215484 002123E4 7D 89 03 A6 */ mtctr r12
/* 80215488 002123E8 4E 80 04 21 */ bctrl
/* 8021548C 002123EC 3A A1 00 E4 */ addi r21, r1, 0xe4
/* 80215490 002123F0 38 81 00 60 */ addi r4, r1, 0x60
/* 80215494 002123F4 7E A3 AB 78 */ mr r3, r21
/* 80215498 002123F8 48 12 BA 11 */ bl __ct__6CTokenFRC6CToken
/* 8021549C 002123FC 7E A3 AB 78 */ mr r3, r21
/* 802154A0 00212400 48 12 B9 6D */ bl GetObj__6CTokenFv
/* 802154A4 00212404 80 03 00 04 */ lwz r0, 4(r3)
/* 802154A8 00212408 38 61 00 60 */ addi r3, r1, 0x60
/* 802154AC 0021240C 38 80 FF FF */ li r4, -1
/* 802154B0 00212410 90 01 00 EC */ stw r0, 0xec(r1)
/* 802154B4 00212414 48 12 B9 8D */ bl __dt__6CTokenFv
/* 802154B8 00212418 3C 60 80 3D */ lis r3, lbl_803D2890@ha
/* 802154BC 0021241C 3A A0 00 00 */ li r21, 0
/* 802154C0 00212420 38 83 28 90 */ addi r4, r3, lbl_803D2890@l
/* 802154C4 00212424 38 60 05 A0 */ li r3, 0x5a0
/* 802154C8 00212428 38 84 00 1F */ addi r4, r4, 0x1f
/* 802154CC 0021242C 38 A0 00 00 */ li r5, 0
/* 802154D0 00212430 48 10 03 9D */ bl __nw__FUlPCcPCc
/* 802154D4 00212434 7C 76 1B 79 */ or. r22, r3, r3
/* 802154D8 00212438 41 82 00 A4 */ beq lbl_8021557C
/* 802154DC 0021243C C0 02 B3 20 */ lfs f0, lbl_805AD040@sda21(r2)
/* 802154E0 00212440 3C 60 80 3D */ lis r3, lbl_803D2890@ha
/* 802154E4 00212444 38 83 28 90 */ addi r4, r3, lbl_803D2890@l
/* 802154E8 00212448 3A E1 00 90 */ addi r23, r1, 0x90
/* 802154EC 0021244C D0 01 00 90 */ stfs f0, 0x90(r1)
/* 802154F0 00212450 38 61 00 80 */ addi r3, r1, 0x80
/* 802154F4 00212454 38 84 00 4F */ addi r4, r4, 0x4f
/* 802154F8 00212458 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 802154FC 0021245C D0 01 00 98 */ stfs f0, 0x98(r1)
/* 80215500 00212460 88 1F 00 E6 */ lbz r0, 0xe6(r31)
/* 80215504 00212464 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f
/* 80215508 00212468 68 18 00 01 */ xori r24, r0, 1
/* 8021550C 0021246C 4B DE F7 AD */ bl string_l__4rstlFPCc
/* 80215510 00212470 80 1F 00 04 */ lwz r0, 4(r31)
/* 80215514 00212474 7F C4 F3 78 */ mr r4, r30
/* 80215518 00212478 38 61 00 10 */ addi r3, r1, 0x10
/* 8021551C 0021247C 3A A0 00 01 */ li r21, 1
/* 80215520 00212480 90 01 00 48 */ stw r0, 0x48(r1)
/* 80215524 00212484 90 01 00 4C */ stw r0, 0x4c(r1)
/* 80215528 00212488 4B E3 7B B5 */ bl AllocateUniqueId__13CStateManagerFv
/* 8021552C 0021248C C0 22 B3 20 */ lfs f1, lbl_805AD040@sda21(r2)
/* 80215530 00212490 38 61 00 50 */ addi r3, r1, 0x50
/* 80215534 00212494 A0 01 00 10 */ lhz r0, 0x10(r1)
/* 80215538 00212498 FC 40 08 90 */ fmr f2, f1
/* 8021553C 0021249C FC 60 08 90 */ fmr f3, f1
/* 80215540 002124A0 B0 01 00 14 */ sth r0, 0x14(r1)
/* 80215544 002124A4 FC 80 08 90 */ fmr f4, f1
/* 80215548 002124A8 48 14 DE A5 */ bl __ct__6CColorFffff
/* 8021554C 002124AC 92 E1 00 08 */ stw r23, 8(r1)
/* 80215550 002124B0 38 81 00 E4 */ addi r4, r1, 0xe4
/* 80215554 002124B4 38 A1 00 14 */ addi r5, r1, 0x14
/* 80215558 002124B8 38 C1 00 4C */ addi r6, r1, 0x4c
/* 8021555C 002124BC 90 61 00 0C */ stw r3, 0xc(r1)
/* 80215560 002124C0 7E C3 B3 78 */ mr r3, r22
/* 80215564 002124C4 39 01 00 80 */ addi r8, r1, 0x80
/* 80215568 002124C8 39 21 01 B8 */ addi r9, r1, 0x1b8
/* 8021556C 002124CC 63 0A 00 02 */ ori r10, r24, 2
/* 80215570 002124D0 38 E0 00 01 */ li r7, 1
/* 80215574 002124D4 4B FA 24 E1 */ bl "__ct__10CIceImpactFRC31TLockedToken<15CGenDescription>9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor"
/* 80215578 002124D8 7C 76 1B 78 */ mr r22, r3
lbl_8021557C:
/* 8021557C 002124DC 7F C3 F3 78 */ mr r3, r30
/* 80215580 002124E0 7E C4 B3 78 */ mr r4, r22
/* 80215584 002124E4 4B E3 77 71 */ bl AddObject__13CStateManagerFP7CEntity
/* 80215588 002124E8 7E A0 07 75 */ extsb. r0, r21
/* 8021558C 002124EC 41 82 00 0C */ beq lbl_80215598
/* 80215590 002124F0 38 61 00 80 */ addi r3, r1, 0x80
/* 80215594 002124F4 48 12 85 4D */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_80215598:
/* 80215598 002124F8 38 61 00 E4 */ addi r3, r1, 0xe4
/* 8021559C 002124FC 38 80 00 00 */ li r4, 0
/* 802155A0 00212500 48 12 B8 A1 */ bl __dt__6CTokenFv
lbl_802155A4:
/* 802155A4 00212504 88 01 01 24 */ lbz r0, 0x124(r1)
/* 802155A8 00212508 57 96 06 3E */ clrlwi r22, r28, 0x18
/* 802155AC 0021250C 28 00 00 00 */ cmplwi r0, 0
/* 802155B0 00212510 41 82 00 1C */ beq lbl_802155CC
/* 802155B4 00212514 34 61 01 18 */ addic. r3, r1, 0x118
/* 802155B8 00212518 41 82 00 14 */ beq lbl_802155CC
/* 802155BC 0021251C 28 03 00 00 */ cmplwi r3, 0
/* 802155C0 00212520 41 82 00 0C */ beq lbl_802155CC
/* 802155C4 00212524 38 80 00 00 */ li r4, 0
/* 802155C8 00212528 48 12 B8 79 */ bl __dt__6CTokenFv
lbl_802155CC:
/* 802155CC 0021252C 38 00 00 00 */ li r0, 0
/* 802155D0 00212530 7E C3 B3 78 */ mr r3, r22
/* 802155D4 00212534 98 01 01 24 */ stb r0, 0x124(r1)
/* 802155D8 00212538 E3 E1 02 38 */ psq_l f31, 568(r1), 0, qr0
/* 802155DC 0021253C CB E1 02 30 */ lfd f31, 0x230(r1)
/* 802155E0 00212540 E3 C1 02 28 */ psq_l f30, 552(r1), 0, qr0
/* 802155E4 00212544 CB C1 02 20 */ lfd f30, 0x220(r1)
/* 802155E8 00212548 BA A1 01 F4 */ lmw r21, 0x1f4(r1)
/* 802155EC 0021254C 80 01 02 44 */ lwz r0, 0x244(r1)
/* 802155F0 00212550 7C 08 03 A6 */ mtlr r0
/* 802155F4 00212554 38 21 02 40 */ addi r1, r1, 0x240
/* 802155F8 00212558 4E 80 00 20 */ blr
.global StopProjectile__17CEnergyProjectileFR13CStateManager
StopProjectile__17CEnergyProjectileFR13CStateManager:
/* 802155FC 0021255C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80215600 00212560 7C 08 02 A6 */ mflr r0
/* 80215604 00212564 90 01 00 24 */ stw r0, 0x24(r1)
/* 80215608 00212568 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8021560C 0021256C 7C 9F 23 78 */ mr r31, r4
/* 80215610 00212570 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80215614 00212574 7C 7E 1B 78 */ mr r30, r3
/* 80215618 00212578 4B E2 22 91 */ bl DeleteProjectileLight__15CGameProjectileFR13CStateManager
/* 8021561C 0021257C A0 1E 00 EC */ lhz r0, 0xec(r30)
/* 80215620 00212580 7F E3 FB 78 */ mr r3, r31
/* 80215624 00212584 80 BE 00 F0 */ lwz r5, 0xf0(r30)
/* 80215628 00212588 38 81 00 0C */ addi r4, r1, 0xc
/* 8021562C 0021258C B0 01 00 08 */ sth r0, 8(r1)
/* 80215630 00212590 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80215634 00212594 4B E2 F6 A5 */ bl RemoveWeaponId__13CStateManagerF9TUniqueId11EWeaponType
/* 80215638 00212598 88 1E 02 E4 */ lbz r0, 0x2e4(r30)
/* 8021563C 0021259C 38 A0 00 00 */ li r5, 0
/* 80215640 002125A0 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
/* 80215644 002125A4 7F E3 FB 78 */ mr r3, r31
/* 80215648 002125A8 98 1E 02 E4 */ stb r0, 0x2e4(r30)
/* 8021564C 002125AC 7F C4 F3 78 */ mr r4, r30
/* 80215650 002125B0 90 BE 00 6C */ stw r5, 0x6c(r30)
/* 80215654 002125B4 90 BE 00 68 */ stw r5, 0x68(r30)
/* 80215658 002125B8 4B E3 70 ED */ bl UpdateActorInSortedLists__13CStateManagerFR6CActor
/* 8021565C 002125BC 80 1E 02 E8 */ lwz r0, 0x2e8(r30)
/* 80215660 002125C0 28 00 00 00 */ cmplwi r0, 0
/* 80215664 002125C4 41 82 00 1C */ beq lbl_80215680
/* 80215668 002125C8 80 1E 02 E8 */ lwz r0, 0x2e8(r30)
/* 8021566C 002125CC 38 61 00 10 */ addi r3, r1, 0x10
/* 80215670 002125D0 90 01 00 10 */ stw r0, 0x10(r1)
/* 80215674 002125D4 48 0D 48 11 */ bl RemoveEmitter__11CSfxManagerF10CSfxHandle
/* 80215678 002125D8 38 00 00 00 */ li r0, 0
/* 8021567C 002125DC 90 1E 02 E8 */ stw r0, 0x2e8(r30)
lbl_80215680:
/* 80215680 002125E0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80215684 002125E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80215688 002125E8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8021568C 002125EC 7C 08 03 A6 */ mtlr r0
/* 80215690 002125F0 38 21 00 20 */ addi r1, r1, 0x20
/* 80215694 002125F4 4E 80 00 20 */ blr
.global "__ct__17CEnergyProjectileFbRC28TToken<18CWeaponDescription>11EWeaponTypeRC12CTransform4f14EMaterialTypesRC11CDamageInfo9TUniqueId7TAreaId9TUniqueId9TUniqueIdUibRC9CVector3fRCQ24rstl50optional_object<31TLockedToken<15CGenDescription>>Usb"
"__ct__17CEnergyProjectileFbRC28TToken<18CWeaponDescription>11EWeaponTypeRC12CTransform4f14EMaterialTypesRC11CDamageInfo9TUniqueId7TAreaId9TUniqueId9TUniqueIdUibRC9CVector3fRCQ24rstl50optional_object<31TLockedToken<15CGenDescription>>Usb":
/* 80215698 002125F8 94 21 FE 90 */ stwu r1, -0x170(r1)
/* 8021569C 002125FC 7C 08 02 A6 */ mflr r0
/* 802156A0 00212600 3D 60 80 3D */ lis r11, lbl_803D2890@ha
/* 802156A4 00212604 90 01 01 74 */ stw r0, 0x174(r1)
/* 802156A8 00212608 39 6B 28 90 */ addi r11, r11, lbl_803D2890@l
/* 802156AC 0021260C BD E1 01 2C */ stmw r15, 0x12c(r1)
/* 802156B0 00212610 7C 70 1B 78 */ mr r16, r3
/* 802156B4 00212614 7C 91 23 78 */ mr r17, r4
/* 802156B8 00212618 83 01 01 78 */ lwz r24, 0x178(r1)
/* 802156BC 0021261C 83 21 01 7C */ lwz r25, 0x17c(r1)
/* 802156C0 00212620 7C B2 2B 78 */ mr r18, r5
/* 802156C4 00212624 83 41 01 80 */ lwz r26, 0x180(r1)
/* 802156C8 00212628 7C D3 33 78 */ mr r19, r6
/* 802156CC 0021262C 83 61 01 84 */ lwz r27, 0x184(r1)
/* 802156D0 00212630 7C F4 3B 78 */ mr r20, r7
/* 802156D4 00212634 8B 81 01 8B */ lbz r28, 0x18b(r1)
/* 802156D8 00212638 7D 15 43 78 */ mr r21, r8
/* 802156DC 0021263C 83 A1 01 8C */ lwz r29, 0x18c(r1)
/* 802156E0 00212640 7D 36 4B 78 */ mr r22, r9
/* 802156E4 00212644 83 C1 01 90 */ lwz r30, 0x190(r1)
/* 802156E8 00212648 7D 57 53 78 */ mr r23, r10
/* 802156EC 0021264C A3 E1 01 96 */ lhz r31, 0x196(r1)
/* 802156F0 00212650 38 61 00 40 */ addi r3, r1, 0x40
/* 802156F4 00212654 89 E1 01 9B */ lbz r15, 0x19b(r1)
/* 802156F8 00212658 38 8B 00 64 */ addi r4, r11, 0x64
/* 802156FC 0021265C 4B DE F5 BD */ bl string_l__4rstlFPCc
/* 80215700 00212660 A0 1A 00 00 */ lhz r0, 0(r26)
/* 80215704 00212664 3B 41 00 38 */ addi r26, r1, 0x38
/* 80215708 00212668 A2 F7 00 00 */ lhz r23, 0(r23)
/* 8021570C 0021266C 39 81 00 3C */ addi r12, r1, 0x3c
/* 80215710 00212670 B0 01 00 30 */ sth r0, 0x30(r1)
/* 80215714 00212674 39 61 00 34 */ addi r11, r1, 0x34
/* 80215718 00212678 38 01 00 30 */ addi r0, r1, 0x30
/* 8021571C 0021267C 7E 03 83 78 */ mr r3, r16
/* 80215720 00212680 A0 D9 00 00 */ lhz r6, 0(r25)
/* 80215724 00212684 7E 24 8B 78 */ mr r4, r17
/* 80215728 00212688 7E 45 93 78 */ mr r5, r18
/* 8021572C 0021268C 7E 67 9B 78 */ mr r7, r19
/* 80215730 00212690 B0 C1 00 34 */ sth r6, 0x34(r1)
/* 80215734 00212694 7E 88 A3 78 */ mr r8, r20
/* 80215738 00212698 7E A9 AB 78 */ mr r9, r21
/* 8021573C 0021269C 7E CA B3 78 */ mr r10, r22
/* 80215740 002126A0 82 38 00 00 */ lwz r17, 0(r24)
/* 80215744 002126A4 38 C1 00 40 */ addi r6, r1, 0x40
/* 80215748 002126A8 92 21 00 3C */ stw r17, 0x3c(r1)
/* 8021574C 002126AC B2 E1 00 38 */ sth r23, 0x38(r1)
/* 80215750 002126B0 93 41 00 08 */ stw r26, 8(r1)
/* 80215754 002126B4 91 81 00 0C */ stw r12, 0xc(r1)
/* 80215758 002126B8 91 61 00 10 */ stw r11, 0x10(r1)
/* 8021575C 002126BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80215760 002126C0 93 61 00 18 */ stw r27, 0x18(r1)
/* 80215764 002126C4 93 81 00 1C */ stw r28, 0x1c(r1)
/* 80215768 002126C8 93 A1 00 20 */ stw r29, 0x20(r1)
/* 8021576C 002126CC 93 C1 00 24 */ stw r30, 0x24(r1)
/* 80215770 002126D0 93 E1 00 28 */ stw r31, 0x28(r1)
/* 80215774 002126D4 91 E1 00 2C */ stw r15, 0x2c(r1)
/* 80215778 002126D8 4B E2 4D 0D */ bl "__ct__15CGameProjectileFbRC28TToken<18CWeaponDescription>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>11EWeaponTypeRC12CTransform4f14EMaterialTypesRC11CDamageInfo9TUniqueId7TAreaId9TUniqueId9TUniqueIdUibRC9CVector3fRCQ24rstl50optional_object<31TLockedToken<15CGenDescription>>Usb"
/* 8021577C 002126DC 38 61 00 40 */ addi r3, r1, 0x40
/* 80215780 002126E0 48 12 83 61 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 80215784 002126E4 3C 60 80 3E */ lis r3, __vt__17CEnergyProjectile@ha
/* 80215788 002126E8 38 00 00 00 */ li r0, 0
/* 8021578C 002126EC 38 83 71 58 */ addi r4, r3, __vt__17CEnergyProjectile@l
/* 80215790 002126F0 38 70 02 EC */ addi r3, r16, 0x2ec
/* 80215794 002126F4 90 90 00 00 */ stw r4, 0(r16)
/* 80215798 002126F8 90 10 02 E8 */ stw r0, 0x2e8(r16)
/* 8021579C 002126FC C0 54 00 24 */ lfs f2, 0x24(r20)
/* 802157A0 00212700 C0 34 00 14 */ lfs f1, 0x14(r20)
/* 802157A4 00212704 C0 14 00 04 */ lfs f0, 4(r20)
/* 802157A8 00212708 D0 10 02 EC */ stfs f0, 0x2ec(r16)
/* 802157AC 0021270C D0 30 02 F0 */ stfs f1, 0x2f0(r16)
/* 802157B0 00212710 D0 50 02 F4 */ stfs f2, 0x2f4(r16)
/* 802157B4 00212714 48 0F F1 05 */ bl Magnitude__9CVector3fCFv
/* 802157B8 00212718 D0 30 02 F8 */ stfs f1, 0x2f8(r16)
/* 802157BC 0021271C 38 61 00 50 */ addi r3, r1, 0x50
/* 802157C0 00212720 C0 22 B3 40 */ lfs f1, lbl_805AD060@sda21(r2)
/* 802157C4 00212724 C0 42 B3 24 */ lfs f2, lbl_805AD044@sda21(r2)
/* 802157C8 00212728 4B F4 83 ED */ bl BuildProjectileCameraShake__16CCameraShakeDataFff
/* 802157CC 0021272C 38 70 02 FC */ addi r3, r16, 0x2fc
/* 802157D0 00212730 38 81 00 50 */ addi r4, r1, 0x50
/* 802157D4 00212734 4B DF 55 D5 */ bl __ct__16CCameraShakeDataFRC16CCameraShakeData
/* 802157D8 00212738 34 81 00 D0 */ addic. r4, r1, 0xd0
/* 802157DC 0021273C 41 82 00 10 */ beq lbl_802157EC
/* 802157E0 00212740 3C 60 80 3E */ lis r3, __vt__22CCameraShakerComponent@ha
/* 802157E4 00212744 38 03 8E A8 */ addi r0, r3, __vt__22CCameraShakerComponent@l
/* 802157E8 00212748 90 04 00 00 */ stw r0, 0(r4)
lbl_802157EC:
/* 802157EC 0021274C 34 81 00 94 */ addic. r4, r1, 0x94
/* 802157F0 00212750 41 82 00 10 */ beq lbl_80215800
/* 802157F4 00212754 3C 60 80 3E */ lis r3, __vt__22CCameraShakerComponent@ha
/* 802157F8 00212758 38 03 8E A8 */ addi r0, r3, __vt__22CCameraShakerComponent@l
/* 802157FC 0021275C 90 04 00 00 */ stw r0, 0(r4)
lbl_80215800:
/* 80215800 00212760 34 81 00 58 */ addic. r4, r1, 0x58
/* 80215804 00212764 41 82 00 10 */ beq lbl_80215814
/* 80215808 00212768 3C 60 80 3E */ lis r3, __vt__22CCameraShakerComponent@ha
/* 8021580C 0021276C 38 03 8E A8 */ addi r0, r3, __vt__22CCameraShakerComponent@l
/* 80215810 00212770 90 04 00 00 */ stw r0, 0(r4)
lbl_80215814:
/* 80215814 00212774 88 10 03 D0 */ lbz r0, 0x3d0(r16)
/* 80215818 00212778 38 A0 00 00 */ li r5, 0
/* 8021581C 0021277C 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
/* 80215820 00212780 C0 02 B3 10 */ lfs f0, lbl_805AD030@sda21(r2)
/* 80215824 00212784 98 10 03 D0 */ stb r0, 0x3d0(r16)
/* 80215828 00212788 38 80 00 02 */ li r4, 2
/* 8021582C 0021278C 7E 03 83 78 */ mr r3, r16
/* 80215830 00212790 88 10 03 D0 */ lbz r0, 0x3d0(r16)
/* 80215834 00212794 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 80215838 00212798 98 10 03 D0 */ stb r0, 0x3d0(r16)
/* 8021583C 0021279C 88 10 03 D0 */ lbz r0, 0x3d0(r16)
/* 80215840 002127A0 50 A0 2E B4 */ rlwimi r0, r5, 5, 0x1a, 0x1a
/* 80215844 002127A4 98 10 03 D0 */ stb r0, 0x3d0(r16)
/* 80215848 002127A8 88 10 03 D0 */ lbz r0, 0x3d0(r16)
/* 8021584C 002127AC 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
/* 80215850 002127B0 98 10 03 D0 */ stb r0, 0x3d0(r16)
/* 80215854 002127B4 D0 10 03 D4 */ stfs f0, 0x3d4(r16)
/* 80215858 002127B8 88 10 00 E6 */ lbz r0, 0xe6(r16)
/* 8021585C 002127BC 50 80 1E F8 */ rlwimi r0, r4, 3, 0x1b, 0x1c
/* 80215860 002127C0 98 10 00 E6 */ stb r0, 0xe6(r16)
/* 80215864 002127C4 B9 E1 01 2C */ lmw r15, 0x12c(r1)
/* 80215868 002127C8 80 01 01 74 */ lwz r0, 0x174(r1)
/* 8021586C 002127CC 7C 08 03 A6 */ mtlr r0
/* 80215870 002127D0 38 21 01 70 */ addi r1, r1, 0x170
/* 80215874 002127D4 4E 80 00 20 */ blr
.global __sinit_CEnergyProjectile_cpp
__sinit_CEnergyProjectile_cpp:
/* 80215878 002127D8 3C 60 00 E4 */ lis r3, 0x00E3FFFE@ha
/* 8021587C 002127DC 38 00 00 00 */ li r0, 0
/* 80215880 002127E0 38 63 FF FE */ addi r3, r3, 0x00E3FFFE@l
/* 80215884 002127E4 90 0D A4 F8 */ stw r0, lbl_805A90B8@sda21(r13)
/* 80215888 002127E8 90 6D A4 FC */ stw r3, lbl_805A90BC@sda21(r13)
/* 8021588C 002127EC 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AD030
lbl_805AD030:
# ROM: 0x3F98D0
.4byte 0
.global lbl_805AD034
lbl_805AD034:
# ROM: 0x3F98D4
.4byte 0x42480000
.global lbl_805AD038
lbl_805AD038:
# ROM: 0x3F98D8
.float 0.2
.global lbl_805AD03C
lbl_805AD03C:
# ROM: 0x3F98DC
.4byte 0x42340000
.global lbl_805AD040
lbl_805AD040:
# ROM: 0x3F98E0
.float 1.0
.global lbl_805AD044
lbl_805AD044:
# ROM: 0x3F98E4
.float 0.75
.global lbl_805AD048
lbl_805AD048:
# ROM: 0x3F98E8
.4byte 0x42960000
.global lbl_805AD04C
lbl_805AD04C:
# ROM: 0x3F98EC
.float 0.01
.global lbl_805AD050
lbl_805AD050:
# ROM: 0x3F98F0
.float 6.2831855
.global lbl_805AD054
lbl_805AD054:
# ROM: 0x3F98F4
.float 4.0
.global lbl_805AD058
lbl_805AD058:
# ROM: 0x3F98F8
.float 0.25
.global lbl_805AD05C
lbl_805AD05C:
# ROM: 0x3F98FC
.4byte 0x3F4CCCCD
.global lbl_805AD060
lbl_805AD060:
# ROM: 0x3F9900
.float 0.5
.4byte 0
.section .rodata
.balign 8
.global lbl_803D2890
lbl_803D2890:
# ROM: 0x3CF890
.asciz "ProjectileLight_GameProjectile"
.byte 0x3F
.asciz "?(??)"
.byte 0x50, 0x72
.asciz "ojectile collision response"
.asciz "IceSpread1"
.byte 0x49
.asciz "ce spread explosion"
.asciz "GameProjectile"
.balign 4
.4byte 0