prime/asm/MetroidPrime/Enemies/CGrenadeLauncher.s

2516 lines
120 KiB
ArmAsm

.include "macros.inc"
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CGrenadeLauncher_cpp
.section .data
.balign 8
.global lbl_803E7F58
lbl_803E7F58:
# ROM: 0x3E4F58
.4byte 0
.4byte 0
.4byte __dt__16CGrenadeLauncherFv
.4byte Accept__16CGrenadeLauncherFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__16CGrenadeLauncherFfR13CStateManager
.4byte AcceptScriptMsg__16CGrenadeLauncherF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__6CActorFb
.4byte PreRender__16CGrenadeLauncherFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__16CGrenadeLauncherCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__16CGrenadeLauncherCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__6CActorFv
.4byte HealthInfo__16CGrenadeLauncherFR13CStateManager
.4byte GetDamageVulnerability__16CGrenadeLauncherCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__16CGrenadeLauncherCFv
.4byte Touch__16CGrenadeLauncherFR6CActorR13CStateManager
.4byte GetOrbitPosition__13CPhysicsActorCFRC13CStateManager
.4byte GetAimPosition__13CPhysicsActorCFRC13CStateManagerf
.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
.4byte GetCollisionResponseType__6CActorCFRC9CVector3fRC9CVector3fRC11CWeaponModei
.4byte FluidFXThink__6CActorFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
.4byte GetSortingBounds__6CActorCFRC13CStateManager
.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventTypef
.4byte GetCollisionPrimitive__16CGrenadeLauncherCFv
.4byte GetPrimitiveTransform__13CPhysicsActorCFv
.4byte CollidedWith__13CPhysicsActorFRC9TUniqueIdRC18CCollisionInfoListR13CStateManager
.4byte GetStepDownHeight__13CPhysicsActorCFv
.4byte GetStepUpHeight__13CPhysicsActorCFv
.4byte GetWeight__13CPhysicsActorCFv
.global lbl_803E7FDC
lbl_803E7FDC:
# ROM: 0x3E4FDC
.4byte lbl_80230C48
.4byte lbl_80230C78
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CA8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230C3C
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD8
.4byte lbl_80230CD0
.4byte 0
.section .sdata
.balign 8
.global lbl_805A81A8
lbl_805A81A8:
# ROM: 0x3F5B48
.4byte 0x00000021
.global lbl_805A81AC
lbl_805A81AC:
# ROM: 0x3F5B4C
.4byte 0x00000013
.global lbl_805A81B0
lbl_805A81B0:
# ROM: 0x3F5B50
.float 0.01
.global lbl_805A81B4
lbl_805A81B4:
# ROM: 0x3F5B54
.4byte 0xBF490FDB
.global lbl_805A81B8
lbl_805A81B8:
# ROM: 0x3F5B58
.4byte 0xC0400000
.global lbl_805A81BC
lbl_805A81BC:
# ROM: 0x3F5B5C
.4byte 0xC1200000
.global lbl_805A81C0
lbl_805A81C0:
# ROM: 0x3F5B60
.4byte 0xBF490FDB
.global lbl_805A81C4
lbl_805A81C4:
# ROM: 0x3F5B64
.4byte 0xC0400000
.global lbl_805A81C8
lbl_805A81C8:
# ROM: 0x3F5B68
.4byte 0xC1200000
.global lbl_805A81CC
lbl_805A81CC:
# ROM: 0x3F5B6C
.4byte 0xBF000000
.global lbl_805A81D0
lbl_805A81D0:
# ROM: 0x3F5B70
.4byte 0xBF000000
.global lbl_805A81D4
lbl_805A81D4:
# ROM: 0x3F5B74
.4byte 0
.global lbl_805A81D8
lbl_805A81D8:
# ROM: 0x3F5B78
.4byte 0
.global lbl_805A81DC
lbl_805A81DC:
# ROM: 0x3F5B7C
.4byte 0
.global lbl_805A81E0
lbl_805A81E0:
# ROM: 0x3F5B80
.float 1.0
.4byte 0
.section .sbss, "wa"
.balign 8
.global lbl_805A90E8
lbl_805A90E8:
.skip 0x4
.global lbl_805A90EC
lbl_805A90EC:
.skip 0x4
.section .text, "ax"
.global HealthInfo__16CGrenadeLauncherFR13CStateManager
HealthInfo__16CGrenadeLauncherFR13CStateManager:
/* 8022F68C 0022C5EC 38 63 02 5C */ addi r3, r3, 0x25c
/* 8022F690 0022C5F0 4E 80 00 20 */ blr
.global GetDamageVulnerability__16CGrenadeLauncherCFv
GetDamageVulnerability__16CGrenadeLauncherCFv:
/* 8022F694 0022C5F4 38 63 02 64 */ addi r3, r3, 0x264
/* 8022F698 0022C5F8 4E 80 00 20 */ blr
.global sub_8022f69c
sub_8022f69c:
/* 8022F69C 0022C5FC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8022F6A0 0022C600 7C 08 02 A6 */ mflr r0
/* 8022F6A4 0022C604 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022F6A8 0022C608 90 01 00 24 */ stw r0, 0x24(r1)
/* 8022F6AC 0022C60C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8022F6B0 0022C610 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8022F6B4 0022C614 7C 7E 1B 78 */ mr r30, r3
/* 8022F6B8 0022C618 C0 43 03 EC */ lfs f2, 0x3ec(r3)
/* 8022F6BC 0022C61C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8022F6C0 0022C620 40 81 00 90 */ ble lbl_8022F750
/* 8022F6C4 0022C624 EC 02 08 28 */ fsubs f0, f2, f1
/* 8022F6C8 0022C628 38 81 00 14 */ addi r4, r1, 0x14
/* 8022F6CC 0022C62C 38 6D 96 18 */ addi r3, r13, lbl_805A81D8@sda21
/* 8022F6D0 0022C630 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8022F6D4 0022C634 4B E2 00 5D */ bl "Max<f>__5CMathFRCfRCf"
/* 8022F6D8 0022C638 C0 23 00 00 */ lfs f1, 0(r3)
/* 8022F6DC 0022C63C 38 81 00 08 */ addi r4, r1, 8
/* 8022F6E0 0022C640 C0 02 B6 68 */ lfs f0, lbl_805AD388@sda21(r2)
/* 8022F6E4 0022C644 38 6D 96 1C */ addi r3, r13, lbl_805A81DC@sda21
/* 8022F6E8 0022C648 D0 3E 03 EC */ stfs f1, 0x3ec(r30)
/* 8022F6EC 0022C64C 38 AD 96 20 */ addi r5, r13, lbl_805A81E0@sda21
/* 8022F6F0 0022C650 C0 3E 03 EC */ lfs f1, 0x3ec(r30)
/* 8022F6F4 0022C654 EC 01 00 24 */ fdivs f0, f1, f0
/* 8022F6F8 0022C658 D0 01 00 08 */ stfs f0, 8(r1)
/* 8022F6FC 0022C65C 4B DD CB B9 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022F700 0022C660 C0 22 B6 64 */ lfs f1, lbl_805AD384@sda21(r2)
/* 8022F704 0022C664 7C 7F 1B 78 */ mr r31, r3
/* 8022F708 0022C668 C0 82 B6 6C */ lfs f4, lbl_805AD38C@sda21(r2)
/* 8022F70C 0022C66C 38 61 00 0C */ addi r3, r1, 0xc
/* 8022F710 0022C670 FC 40 08 90 */ fmr f2, f1
/* 8022F714 0022C674 FC 60 08 90 */ fmr f3, f1
/* 8022F718 0022C678 48 13 3C D5 */ bl __ct__6CColorFffff
/* 8022F71C 0022C67C C0 3F 00 00 */ lfs f1, 0(r31)
/* 8022F720 0022C680 7C 64 1B 78 */ mr r4, r3
/* 8022F724 0022C684 38 61 00 10 */ addi r3, r1, 0x10
/* 8022F728 0022C688 38 BE 03 F0 */ addi r5, r30, 0x3f0
/* 8022F72C 0022C68C 48 13 3B 81 */ bl Lerp__6CColorFRC6CColorRC6CColorf
/* 8022F730 0022C690 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8022F734 0022C694 C0 42 B6 70 */ lfs f2, lbl_805AD390@sda21(r2)
/* 8022F738 0022C698 90 1E 03 F4 */ stw r0, 0x3f4(r30)
/* 8022F73C 0022C69C C0 3E 03 EC */ lfs f1, 0x3ec(r30)
/* 8022F740 0022C6A0 C0 1E 03 E8 */ lfs f0, 0x3e8(r30)
/* 8022F744 0022C6A4 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8022F748 0022C6A8 D0 1E 00 D0 */ stfs f0, 0xd0(r30)
/* 8022F74C 0022C6AC 48 00 00 0C */ b lbl_8022F758
lbl_8022F750:
/* 8022F750 0022C6B0 C0 1E 03 E8 */ lfs f0, 0x3e8(r30)
/* 8022F754 0022C6B4 D0 1E 00 D0 */ stfs f0, 0xd0(r30)
lbl_8022F758:
/* 8022F758 0022C6B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8022F75C 0022C6BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8022F760 0022C6C0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8022F764 0022C6C4 7C 08 03 A6 */ mtlr r0
/* 8022F768 0022C6C8 38 21 00 20 */ addi r1, r1, 0x20
/* 8022F76C 0022C6CC 4E 80 00 20 */ blr
.global sub_8022f770
sub_8022f770:
/* 8022F770 0022C6D0 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 8022F774 0022C6D4 7C 08 02 A6 */ mflr r0
/* 8022F778 0022C6D8 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 8022F77C 0022C6DC BF 61 00 AC */ stmw r27, 0xac(r1)
/* 8022F780 0022C6E0 7C 7E 1B 78 */ mr r30, r3
/* 8022F784 0022C6E4 7C 9F 23 78 */ mr r31, r4
/* 8022F788 0022C6E8 88 03 03 C4 */ lbz r0, 0x3c4(r3)
/* 8022F78C 0022C6EC 28 00 00 00 */ cmplwi r0, 0
/* 8022F790 0022C6F0 41 82 01 78 */ beq lbl_8022F908
/* 8022F794 0022C6F4 38 61 00 6C */ addi r3, r1, 0x6c
/* 8022F798 0022C6F8 38 9E 00 34 */ addi r4, r30, 0x34
/* 8022F79C 0022C6FC 48 0E 33 D9 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8022F7A0 0022C700 3C 60 80 3D */ lis r3, lbl_803D3410@ha
/* 8022F7A4 0022C704 3B 80 00 00 */ li r28, 0
/* 8022F7A8 0022C708 38 63 34 10 */ addi r3, r3, lbl_803D3410@l
/* 8022F7AC 0022C70C 3B 60 00 00 */ li r27, 0
/* 8022F7B0 0022C710 38 83 00 20 */ addi r4, r3, 0x20
/* 8022F7B4 0022C714 38 60 01 00 */ li r3, 0x100
/* 8022F7B8 0022C718 38 A0 00 00 */ li r5, 0
/* 8022F7BC 0022C71C 48 0E 60 B1 */ bl __nw__FUlPCcPCc
/* 8022F7C0 0022C720 7C 7D 1B 79 */ or. r29, r3, r3
/* 8022F7C4 0022C724 41 82 00 B4 */ beq lbl_8022F878
/* 8022F7C8 0022C728 80 BE 00 64 */ lwz r5, 0x64(r30)
/* 8022F7CC 0022C72C 3C 60 80 3D */ lis r3, lbl_803D3410@ha
/* 8022F7D0 0022C730 38 83 34 10 */ addi r4, r3, lbl_803D3410@l
/* 8022F7D4 0022C734 38 61 00 38 */ addi r3, r1, 0x38
/* 8022F7D8 0022C738 C0 05 00 00 */ lfs f0, 0(r5)
/* 8022F7DC 0022C73C 38 84 00 27 */ addi r4, r4, 0x27
/* 8022F7E0 0022C740 D0 01 00 48 */ stfs f0, 0x48(r1)
/* 8022F7E4 0022C744 C0 05 00 04 */ lfs f0, 4(r5)
/* 8022F7E8 0022C748 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 8022F7EC 0022C74C C0 05 00 08 */ lfs f0, 8(r5)
/* 8022F7F0 0022C750 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 8022F7F4 0022C754 4B DD 54 C5 */ bl string_l__4rstlFPCc
/* 8022F7F8 0022C758 80 0D A3 88 */ lwz r0, kInvalidEditorId@sda21(r13)
/* 8022F7FC 0022C75C 3C 60 80 57 */ lis r3, NullConnectionList__7CEntity@ha
/* 8022F800 0022C760 38 A3 D4 10 */ addi r5, r3, NullConnectionList__7CEntity@l
/* 8022F804 0022C764 38 81 00 30 */ addi r4, r1, 0x30
/* 8022F808 0022C768 90 01 00 34 */ stw r0, 0x34(r1)
/* 8022F80C 0022C76C 38 61 00 54 */ addi r3, r1, 0x54
/* 8022F810 0022C770 38 C1 00 34 */ addi r6, r1, 0x34
/* 8022F814 0022C774 3B 80 00 01 */ li r28, 1
/* 8022F818 0022C778 80 1E 00 04 */ lwz r0, 4(r30)
/* 8022F81C 0022C77C 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8022F820 0022C780 90 01 00 30 */ stw r0, 0x30(r1)
/* 8022F824 0022C784 4B E2 1C 61 */ bl "__ct__11CEntityInfoF7TAreaIdRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>9TEditorId"
/* 8022F828 0022C788 7F E4 FB 78 */ mr r4, r31
/* 8022F82C 0022C78C 38 61 00 10 */ addi r3, r1, 0x10
/* 8022F830 0022C790 3B 60 00 01 */ li r27, 1
/* 8022F834 0022C794 4B E1 D8 A9 */ bl AllocateUniqueId__13CStateManagerFv
/* 8022F838 0022C798 A0 01 00 10 */ lhz r0, 0x10(r1)
/* 8022F83C 0022C79C B0 01 00 14 */ sth r0, 0x14(r1)
/* 8022F840 0022C7A0 48 11 A7 6D */ bl White__6CColorFv
/* 8022F844 0022C7A4 38 01 00 48 */ addi r0, r1, 0x48
/* 8022F848 0022C7A8 38 9E 03 B8 */ addi r4, r30, 0x3b8
/* 8022F84C 0022C7AC 90 01 00 08 */ stw r0, 8(r1)
/* 8022F850 0022C7B0 38 A1 00 14 */ addi r5, r1, 0x14
/* 8022F854 0022C7B4 38 E1 00 54 */ addi r7, r1, 0x54
/* 8022F858 0022C7B8 39 01 00 38 */ addi r8, r1, 0x38
/* 8022F85C 0022C7BC 90 61 00 0C */ stw r3, 0xc(r1)
/* 8022F860 0022C7C0 7F A3 EB 78 */ mr r3, r29
/* 8022F864 0022C7C4 39 21 00 6C */ addi r9, r1, 0x6c
/* 8022F868 0022C7C8 38 C0 00 01 */ li r6, 1
/* 8022F86C 0022C7CC 39 40 00 00 */ li r10, 0
/* 8022F870 0022C7D0 4B E2 B2 89 */ bl "__ct__10CExplosionFRC31TLockedToken<15CGenDescription>9TUniqueIdbRC11CEntityInfoRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor"
/* 8022F874 0022C7D4 7C 7D 1B 78 */ mr r29, r3
lbl_8022F878:
/* 8022F878 0022C7D8 7F 60 07 75 */ extsb. r0, r27
/* 8022F87C 0022C7DC 41 82 00 44 */ beq lbl_8022F8C0
/* 8022F880 0022C7E0 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 8022F884 0022C7E4 80 61 00 64 */ lwz r3, 0x64(r1)
/* 8022F888 0022C7E8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8022F88C 0022C7EC 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8022F890 0022C7F0 7C 64 1B 78 */ mr r4, r3
/* 8022F894 0022C7F4 7C 03 02 14 */ add r0, r3, r0
/* 8022F898 0022C7F8 90 61 00 18 */ stw r3, 0x18(r1)
/* 8022F89C 0022C7FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8022F8A0 0022C800 90 01 00 20 */ stw r0, 0x20(r1)
/* 8022F8A4 0022C804 48 00 00 08 */ b lbl_8022F8AC
lbl_8022F8A8:
/* 8022F8A8 0022C808 38 84 00 0C */ addi r4, r4, 0xc
lbl_8022F8AC:
/* 8022F8AC 0022C80C 7C 04 00 40 */ cmplw r4, r0
/* 8022F8B0 0022C810 40 82 FF F8 */ bne lbl_8022F8A8
/* 8022F8B4 0022C814 28 03 00 00 */ cmplwi r3, 0
/* 8022F8B8 0022C818 41 82 00 08 */ beq lbl_8022F8C0
/* 8022F8BC 0022C81C 48 0E 60 75 */ bl Free__7CMemoryFPCv
lbl_8022F8C0:
/* 8022F8C0 0022C820 7F 80 07 75 */ extsb. r0, r28
/* 8022F8C4 0022C824 41 82 00 0C */ beq lbl_8022F8D0
/* 8022F8C8 0022C828 38 61 00 38 */ addi r3, r1, 0x38
/* 8022F8CC 0022C82C 48 10 E2 15 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_8022F8D0:
/* 8022F8D0 0022C830 28 1D 00 00 */ cmplwi r29, 0
/* 8022F8D4 0022C834 41 82 00 34 */ beq lbl_8022F908
/* 8022F8D8 0022C838 7F E3 FB 78 */ mr r3, r31
/* 8022F8DC 0022C83C 7F A4 EB 78 */ mr r4, r29
/* 8022F8E0 0022C840 4B E1 D4 15 */ bl AddObject__13CStateManagerFP7CEntity
/* 8022F8E4 0022C844 A0 9E 03 14 */ lhz r4, 0x314(r30)
/* 8022F8E8 0022C848 38 61 00 28 */ addi r3, r1, 0x28
/* 8022F8EC 0022C84C 88 A2 CC 40 */ lbz r5, kMaxVolume__9CAudioSys@sda21(r2)
/* 8022F8F0 0022C850 38 C0 00 40 */ li r6, 0x40
/* 8022F8F4 0022C854 A9 02 C5 FA */ lha r8, kMedPriority__11CSfxManager@sda21(r2)
/* 8022F8F8 0022C858 38 E0 00 00 */ li r7, 0
/* 8022F8FC 0022C85C 81 42 C6 00 */ lwz r10, kAllAreas__11CSfxManager@sda21(r2)
/* 8022F900 0022C860 39 20 00 00 */ li r9, 0
/* 8022F904 0022C864 48 0B A4 71 */ bl SfxStart__11CSfxManagerFUsssbsbi
lbl_8022F908:
/* 8022F908 0022C868 BB 61 00 AC */ lmw r27, 0xac(r1)
/* 8022F90C 0022C86C 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 8022F910 0022C870 7C 08 03 A6 */ mtlr r0
/* 8022F914 0022C874 38 21 00 C0 */ addi r1, r1, 0xc0
/* 8022F918 0022C878 4E 80 00 20 */ blr
.global sub_8022f91c
sub_8022f91c:
/* 8022F91C 0022C87C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8022F920 0022C880 7C 08 02 A6 */ mflr r0
/* 8022F924 0022C884 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022F928 0022C888 90 01 00 24 */ stw r0, 0x24(r1)
/* 8022F92C 0022C88C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8022F930 0022C890 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8022F934 0022C894 7C 7E 1B 78 */ mr r30, r3
/* 8022F938 0022C898 C0 43 03 48 */ lfs f2, 0x348(r3)
/* 8022F93C 0022C89C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8022F940 0022C8A0 40 81 00 88 */ ble lbl_8022F9C8
/* 8022F944 0022C8A4 EC 02 08 28 */ fsubs f0, f2, f1
/* 8022F948 0022C8A8 38 81 00 14 */ addi r4, r1, 0x14
/* 8022F94C 0022C8AC 38 6D 96 14 */ addi r3, r13, lbl_805A81D4@sda21
/* 8022F950 0022C8B0 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8022F954 0022C8B4 4B E1 FD DD */ bl "Max<f>__5CMathFRCfRCf"
/* 8022F958 0022C8B8 C0 22 B6 6C */ lfs f1, lbl_805AD38C@sda21(r2)
/* 8022F95C 0022C8BC C0 03 00 00 */ lfs f0, 0(r3)
/* 8022F960 0022C8C0 38 61 00 08 */ addi r3, r1, 8
/* 8022F964 0022C8C4 C0 42 B6 64 */ lfs f2, lbl_805AD384@sda21(r2)
/* 8022F968 0022C8C8 FC 80 08 90 */ fmr f4, f1
/* 8022F96C 0022C8CC D0 1E 03 48 */ stfs f0, 0x348(r30)
/* 8022F970 0022C8D0 FC 60 10 90 */ fmr f3, f2
/* 8022F974 0022C8D4 48 13 3A 79 */ bl __ct__6CColorFffff
/* 8022F978 0022C8D8 C0 22 B6 6C */ lfs f1, lbl_805AD38C@sda21(r2)
/* 8022F97C 0022C8DC 7C 7F 1B 78 */ mr r31, r3
/* 8022F980 0022C8E0 38 61 00 0C */ addi r3, r1, 0xc
/* 8022F984 0022C8E4 FC 40 08 90 */ fmr f2, f1
/* 8022F988 0022C8E8 FC 60 08 90 */ fmr f3, f1
/* 8022F98C 0022C8EC FC 80 08 90 */ fmr f4, f1
/* 8022F990 0022C8F0 48 13 3A 5D */ bl __ct__6CColorFffff
/* 8022F994 0022C8F4 C0 3E 03 48 */ lfs f1, 0x348(r30)
/* 8022F998 0022C8F8 7C 64 1B 78 */ mr r4, r3
/* 8022F99C 0022C8FC 7F E5 FB 78 */ mr r5, r31
/* 8022F9A0 0022C900 38 61 00 10 */ addi r3, r1, 0x10
/* 8022F9A4 0022C904 48 13 39 09 */ bl Lerp__6CColorFRC6CColorRC6CColorf
/* 8022F9A8 0022C908 88 81 00 12 */ lbz r4, 0x12(r1)
/* 8022F9AC 0022C90C 38 00 00 FF */ li r0, 0xff
/* 8022F9B0 0022C910 88 A1 00 11 */ lbz r5, 0x11(r1)
/* 8022F9B4 0022C914 88 61 00 10 */ lbz r3, 0x10(r1)
/* 8022F9B8 0022C918 98 7E 03 4C */ stb r3, 0x34c(r30)
/* 8022F9BC 0022C91C 98 BE 03 4D */ stb r5, 0x34d(r30)
/* 8022F9C0 0022C920 98 9E 03 4E */ stb r4, 0x34e(r30)
/* 8022F9C4 0022C924 98 1E 03 4F */ stb r0, 0x34f(r30)
lbl_8022F9C8:
/* 8022F9C8 0022C928 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8022F9CC 0022C92C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8022F9D0 0022C930 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8022F9D4 0022C934 7C 08 03 A6 */ mtlr r0
/* 8022F9D8 0022C938 38 21 00 20 */ addi r1, r1, 0x20
/* 8022F9DC 0022C93C 4E 80 00 20 */ blr
.global sub_8022f9e0
sub_8022f9e0:
/* 8022F9E0 0022C940 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8022F9E4 0022C944 7C 08 02 A6 */ mflr r0
/* 8022F9E8 0022C948 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8022F9EC 0022C94C DB E1 00 90 */ stfd f31, 0x90(r1)
/* 8022F9F0 0022C950 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 8022F9F4 0022C954 DB C1 00 80 */ stfd f30, 0x80(r1)
/* 8022F9F8 0022C958 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0
/* 8022F9FC 0022C95C DB A1 00 70 */ stfd f29, 0x70(r1)
/* 8022FA00 0022C960 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0
/* 8022FA04 0022C964 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 8022FA08 0022C968 93 C1 00 68 */ stw r30, 0x68(r1)
/* 8022FA0C 0022C96C 7C 7F 1B 78 */ mr r31, r3
/* 8022FA10 0022C970 FF C0 08 90 */ fmr f30, f1
/* 8022FA14 0022C974 80 C3 00 64 */ lwz r6, 0x64(r3)
/* 8022FA18 0022C978 7C 85 23 78 */ mr r5, r4
/* 8022FA1C 0022C97C 38 60 00 00 */ li r3, 0
/* 8022FA20 0022C980 28 06 00 00 */ cmplwi r6, 0
/* 8022FA24 0022C984 41 82 00 14 */ beq lbl_8022FA38
/* 8022FA28 0022C988 80 06 00 10 */ lwz r0, 0x10(r6)
/* 8022FA2C 0022C98C 28 00 00 00 */ cmplwi r0, 0
/* 8022FA30 0022C990 41 82 00 08 */ beq lbl_8022FA38
/* 8022FA34 0022C994 38 60 00 01 */ li r3, 1
lbl_8022FA38:
/* 8022FA38 0022C998 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8022FA3C 0022C99C 41 82 03 98 */ beq lbl_8022FDD4
/* 8022FA40 0022C9A0 80 1F 02 58 */ lwz r0, 0x258(r31)
/* 8022FA44 0022C9A4 2C 00 00 01 */ cmpwi r0, 1
/* 8022FA48 0022C9A8 40 82 03 8C */ bne lbl_8022FDD4
/* 8022FA4C 0022C9AC 88 1F 03 FE */ lbz r0, 0x3fe(r31)
/* 8022FA50 0022C9B0 28 00 00 00 */ cmplwi r0, 0
/* 8022FA54 0022C9B4 41 82 03 80 */ beq lbl_8022FDD4
/* 8022FA58 0022C9B8 80 85 08 4C */ lwz r4, 0x84c(r5)
/* 8022FA5C 0022C9BC 38 61 00 44 */ addi r3, r1, 0x44
/* 8022FA60 0022C9C0 C0 22 B6 64 */ lfs f1, lbl_805AD384@sda21(r2)
/* 8022FA64 0022C9C4 81 84 00 00 */ lwz r12, 0(r4)
/* 8022FA68 0022C9C8 81 8C 00 4C */ lwz r12, 0x4c(r12)
/* 8022FA6C 0022C9CC 7D 89 03 A6 */ mtctr r12
/* 8022FA70 0022C9D0 4E 80 04 21 */ bctrl
/* 8022FA74 0022C9D4 C0 9F 00 60 */ lfs f4, 0x60(r31)
/* 8022FA78 0022C9D8 38 9F 00 34 */ addi r4, r31, 0x34
/* 8022FA7C 0022C9DC C0 3F 00 60 */ lfs f1, 0x60(r31)
/* 8022FA80 0022C9E0 38 61 00 2C */ addi r3, r1, 0x2c
/* 8022FA84 0022C9E4 C0 A1 00 48 */ lfs f5, 0x48(r1)
/* 8022FA88 0022C9E8 38 A1 00 20 */ addi r5, r1, 0x20
/* 8022FA8C 0022C9EC C0 1F 00 50 */ lfs f0, 0x50(r31)
/* 8022FA90 0022C9F0 EC C4 08 28 */ fsubs f6, f4, f1
/* 8022FA94 0022C9F4 C0 21 00 44 */ lfs f1, 0x44(r1)
/* 8022FA98 0022C9F8 EC A5 00 28 */ fsubs f5, f5, f0
/* 8022FA9C 0022C9FC C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 8022FAA0 0022CA00 C0 7F 00 50 */ lfs f3, 0x50(r31)
/* 8022FAA4 0022CA04 C0 5F 00 40 */ lfs f2, 0x40(r31)
/* 8022FAA8 0022CA08 EC 01 00 28 */ fsubs f0, f1, f0
/* 8022FAAC 0022CA0C D0 61 00 3C */ stfs f3, 0x3c(r1)
/* 8022FAB0 0022CA10 D0 41 00 38 */ stfs f2, 0x38(r1)
/* 8022FAB4 0022CA14 D0 81 00 40 */ stfs f4, 0x40(r1)
/* 8022FAB8 0022CA18 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8022FABC 0022CA1C D0 A1 00 24 */ stfs f5, 0x24(r1)
/* 8022FAC0 0022CA20 D0 C1 00 28 */ stfs f6, 0x28(r1)
/* 8022FAC4 0022CA24 48 0E 2F 61 */ bl TransposeRotate__12CTransform4fCFRC9CVector3f
/* 8022FAC8 0022CA28 C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 8022FACC 0022CA2C 38 61 00 50 */ addi r3, r1, 0x50
/* 8022FAD0 0022CA30 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8022FAD4 0022CA34 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8022FAD8 0022CA38 D0 41 00 50 */ stfs f2, 0x50(r1)
/* 8022FADC 0022CA3C D0 21 00 54 */ stfs f1, 0x54(r1)
/* 8022FAE0 0022CA40 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8022FAE4 0022CA44 48 0E 4C 15 */ bl CanBeNormalized__9CVector3fCFv
/* 8022FAE8 0022CA48 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8022FAEC 0022CA4C 41 82 03 6C */ beq lbl_8022FE58
/* 8022FAF0 0022CA50 C0 21 00 50 */ lfs f1, 0x50(r1)
/* 8022FAF4 0022CA54 C0 41 00 54 */ lfs f2, 0x54(r1)
/* 8022FAF8 0022CA58 48 16 51 75 */ bl atan2
/* 8022FAFC 0022CA5C FC 00 08 18 */ frsp f0, f1
/* 8022FB00 0022CA60 38 81 00 1C */ addi r4, r1, 0x1c
/* 8022FB04 0022CA64 38 6D 95 F4 */ addi r3, r13, lbl_805A81B4@sda21
/* 8022FB08 0022CA68 38 A2 B6 74 */ addi r5, r2, lbl_805AD394@sda21
/* 8022FB0C 0022CA6C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8022FB10 0022CA70 4B DD C7 A5 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FB14 0022CA74 C0 23 00 00 */ lfs f1, 0(r3)
/* 8022FB18 0022CA78 38 81 00 18 */ addi r4, r1, 0x18
/* 8022FB1C 0022CA7C C0 02 B6 80 */ lfs f0, lbl_805AD3A0@sda21(r2)
/* 8022FB20 0022CA80 38 6D 95 F8 */ addi r3, r13, lbl_805A81B8@sda21
/* 8022FB24 0022CA84 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 8022FB28 0022CA88 38 A2 B6 78 */ addi r5, r2, lbl_805AD398@sda21
/* 8022FB2C 0022CA8C EC 40 00 72 */ fmuls f2, f0, f1
/* 8022FB30 0022CA90 C0 22 B6 84 */ lfs f1, lbl_805AD3A4@sda21(r2)
/* 8022FB34 0022CA94 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 8022FB38 0022CA98 C0 1F 03 D8 */ lfs f0, 0x3d8(r31)
/* 8022FB3C 0022CA9C EC 02 00 28 */ fsubs f0, f2, f0
/* 8022FB40 0022CAA0 EC 01 00 32 */ fmuls f0, f1, f0
/* 8022FB44 0022CAA4 EC 00 F0 24 */ fdivs f0, f0, f30
/* 8022FB48 0022CAA8 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8022FB4C 0022CAAC 4B DD C7 69 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FB50 0022CAB0 C0 23 00 00 */ lfs f1, 0(r3)
/* 8022FB54 0022CAB4 38 81 00 14 */ addi r4, r1, 0x14
/* 8022FB58 0022CAB8 38 6D 95 FC */ addi r3, r13, lbl_805A81BC@sda21
/* 8022FB5C 0022CABC 38 A2 B6 7C */ addi r5, r2, lbl_805AD39C@sda21
/* 8022FB60 0022CAC0 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 8022FB64 0022CAC4 C0 1F 03 DC */ lfs f0, 0x3dc(r31)
/* 8022FB68 0022CAC8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8022FB6C 0022CACC EC 00 F0 24 */ fdivs f0, f0, f30
/* 8022FB70 0022CAD0 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8022FB74 0022CAD4 4B DD C7 41 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FB78 0022CAD8 C0 23 00 00 */ lfs f1, 0(r3)
/* 8022FB7C 0022CADC C0 1F 03 DC */ lfs f0, 0x3dc(r31)
/* 8022FB80 0022CAE0 EC 1E 00 7A */ fmadds f0, f30, f1, f0
/* 8022FB84 0022CAE4 D0 1F 03 DC */ stfs f0, 0x3dc(r31)
/* 8022FB88 0022CAE8 C0 21 00 54 */ lfs f1, 0x54(r1)
/* 8022FB8C 0022CAEC C0 01 00 50 */ lfs f0, 0x50(r1)
/* 8022FB90 0022CAF0 EC 21 00 72 */ fmuls f1, f1, f1
/* 8022FB94 0022CAF4 EC 00 00 32 */ fmuls f0, f0, f0
/* 8022FB98 0022CAF8 EC 21 00 2A */ fadds f1, f1, f0
/* 8022FB9C 0022CAFC 48 0E 59 65 */ bl SqrtF__5CMathFf
/* 8022FBA0 0022CB00 FC 40 08 90 */ fmr f2, f1
/* 8022FBA4 0022CB04 C0 21 00 58 */ lfs f1, 0x58(r1)
/* 8022FBA8 0022CB08 48 16 50 C5 */ bl atan2
/* 8022FBAC 0022CB0C FC 00 08 18 */ frsp f0, f1
/* 8022FBB0 0022CB10 38 81 00 10 */ addi r4, r1, 0x10
/* 8022FBB4 0022CB14 38 6D 96 00 */ addi r3, r13, lbl_805A81C0@sda21
/* 8022FBB8 0022CB18 38 A2 B6 74 */ addi r5, r2, lbl_805AD394@sda21
/* 8022FBBC 0022CB1C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8022FBC0 0022CB20 4B DD C6 F5 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FBC4 0022CB24 C0 23 00 00 */ lfs f1, 0(r3)
/* 8022FBC8 0022CB28 38 81 00 18 */ addi r4, r1, 0x18
/* 8022FBCC 0022CB2C C0 02 B6 80 */ lfs f0, lbl_805AD3A0@sda21(r2)
/* 8022FBD0 0022CB30 38 6D 96 04 */ addi r3, r13, lbl_805A81C4@sda21
/* 8022FBD4 0022CB34 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8022FBD8 0022CB38 38 A2 B6 78 */ addi r5, r2, lbl_805AD398@sda21
/* 8022FBDC 0022CB3C EC 40 00 72 */ fmuls f2, f0, f1
/* 8022FBE0 0022CB40 C0 22 B6 84 */ lfs f1, lbl_805AD3A4@sda21(r2)
/* 8022FBE4 0022CB44 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8022FBE8 0022CB48 C0 1F 03 E0 */ lfs f0, 0x3e0(r31)
/* 8022FBEC 0022CB4C EC 02 00 28 */ fsubs f0, f2, f0
/* 8022FBF0 0022CB50 EC 01 00 32 */ fmuls f0, f1, f0
/* 8022FBF4 0022CB54 EC 00 F0 24 */ fdivs f0, f0, f30
/* 8022FBF8 0022CB58 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8022FBFC 0022CB5C 4B DD C6 B9 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FC00 0022CB60 C0 23 00 00 */ lfs f1, 0(r3)
/* 8022FC04 0022CB64 38 81 00 14 */ addi r4, r1, 0x14
/* 8022FC08 0022CB68 38 6D 96 08 */ addi r3, r13, lbl_805A81C8@sda21
/* 8022FC0C 0022CB6C 38 A2 B6 7C */ addi r5, r2, lbl_805AD39C@sda21
/* 8022FC10 0022CB70 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 8022FC14 0022CB74 C0 1F 03 E4 */ lfs f0, 0x3e4(r31)
/* 8022FC18 0022CB78 EC 01 00 28 */ fsubs f0, f1, f0
/* 8022FC1C 0022CB7C EC 00 F0 24 */ fdivs f0, f0, f30
/* 8022FC20 0022CB80 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8022FC24 0022CB84 4B DD C6 91 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FC28 0022CB88 C0 23 00 00 */ lfs f1, 0(r3)
/* 8022FC2C 0022CB8C 38 81 00 0C */ addi r4, r1, 0xc
/* 8022FC30 0022CB90 C0 1F 03 E4 */ lfs f0, 0x3e4(r31)
/* 8022FC34 0022CB94 38 6D 96 0C */ addi r3, r13, lbl_805A81CC@sda21
/* 8022FC38 0022CB98 38 A2 B6 60 */ addi r5, r2, lbl_805AD380@sda21
/* 8022FC3C 0022CB9C EC 1E 00 7A */ fmadds f0, f30, f1, f0
/* 8022FC40 0022CBA0 D0 1F 03 E4 */ stfs f0, 0x3e4(r31)
/* 8022FC44 0022CBA4 C0 3F 03 DC */ lfs f1, 0x3dc(r31)
/* 8022FC48 0022CBA8 C0 1F 03 D8 */ lfs f0, 0x3d8(r31)
/* 8022FC4C 0022CBAC EC 1E 00 7A */ fmadds f0, f30, f1, f0
/* 8022FC50 0022CBB0 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8022FC54 0022CBB4 4B DD C6 61 */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FC58 0022CBB8 C0 3F 03 E4 */ lfs f1, 0x3e4(r31)
/* 8022FC5C 0022CBBC 38 81 00 08 */ addi r4, r1, 8
/* 8022FC60 0022CBC0 C0 1F 03 E0 */ lfs f0, 0x3e0(r31)
/* 8022FC64 0022CBC4 38 A2 B6 60 */ addi r5, r2, lbl_805AD380@sda21
/* 8022FC68 0022CBC8 C3 E3 00 00 */ lfs f31, 0(r3)
/* 8022FC6C 0022CBCC 38 6D 96 10 */ addi r3, r13, lbl_805A81D0@sda21
/* 8022FC70 0022CBD0 EC 1E 00 7A */ fmadds f0, f30, f1, f0
/* 8022FC74 0022CBD4 D0 01 00 08 */ stfs f0, 8(r1)
/* 8022FC78 0022CBD8 4B DD C6 3D */ bl "Clamp<f>__5CMathFRCfRCfRCf"
/* 8022FC7C 0022CBDC C0 5F 03 D8 */ lfs f2, 0x3d8(r31)
/* 8022FC80 0022CBE0 80 9F 00 64 */ lwz r4, 0x64(r31)
/* 8022FC84 0022CBE4 FC 1F 10 00 */ fcmpu cr0, f31, f2
/* 8022FC88 0022CBE8 C3 A3 00 00 */ lfs f29, 0(r3)
/* 8022FC8C 0022CBEC 83 C4 00 10 */ lwz r30, 0x10(r4)
/* 8022FC90 0022CBF0 41 82 00 98 */ beq lbl_8022FD28
/* 8022FC94 0022CBF4 FC 00 12 10 */ fabs f0, f2
/* 8022FC98 0022CBF8 C0 22 B6 64 */ lfs f1, lbl_805AD384@sda21(r2)
/* 8022FC9C 0022CBFC FC 60 FA 10 */ fabs f3, f31
/* 8022FCA0 0022CC00 FC 00 00 18 */ frsp f0, f0
/* 8022FCA4 0022CC04 FF C0 18 18 */ frsp f30, f3
/* 8022FCA8 0022CC08 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8022FCAC 0022CC0C 40 81 00 3C */ ble lbl_8022FCE8
/* 8022FCB0 0022CC10 EC 02 07 F2 */ fmuls f0, f2, f31
/* 8022FCB4 0022CC14 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8022FCB8 0022CC18 4C 40 13 82 */ cror 2, 0, 2
/* 8022FCBC 0022CC1C 40 82 00 2C */ bne lbl_8022FCE8
/* 8022FCC0 0022CC20 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 8022FCC4 0022CC24 7F C3 F3 78 */ mr r3, r30
/* 8022FCC8 0022CC28 40 80 00 0C */ bge lbl_8022FCD4
/* 8022FCCC 0022CC2C 38 00 00 00 */ li r0, 0
/* 8022FCD0 0022CC30 48 00 00 08 */ b lbl_8022FCD8
lbl_8022FCD4:
/* 8022FCD4 0022CC34 38 00 00 01 */ li r0, 1
lbl_8022FCD8:
/* 8022FCD8 0022CC38 54 00 10 3A */ slwi r0, r0, 2
/* 8022FCDC 0022CC3C 7C 9F 02 14 */ add r4, r31, r0
/* 8022FCE0 0022CC40 80 84 03 C8 */ lwz r4, 0x3c8(r4)
/* 8022FCE4 0022CC44 4B DF A4 75 */ bl DelAdditiveAnimation__9CAnimDataFUi
lbl_8022FCE8:
/* 8022FCE8 0022CC48 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022FCEC 0022CC4C FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 8022FCF0 0022CC50 40 81 00 38 */ ble lbl_8022FD28
/* 8022FCF4 0022CC54 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8022FCF8 0022CC58 7F C3 F3 78 */ mr r3, r30
/* 8022FCFC 0022CC5C 40 80 00 0C */ bge lbl_8022FD08
/* 8022FD00 0022CC60 38 00 00 00 */ li r0, 0
/* 8022FD04 0022CC64 48 00 00 08 */ b lbl_8022FD0C
lbl_8022FD08:
/* 8022FD08 0022CC68 38 00 00 01 */ li r0, 1
lbl_8022FD0C:
/* 8022FD0C 0022CC6C 54 00 10 3A */ slwi r0, r0, 2
/* 8022FD10 0022CC70 FC 20 F0 90 */ fmr f1, f30
/* 8022FD14 0022CC74 7C 9F 02 14 */ add r4, r31, r0
/* 8022FD18 0022CC78 38 A0 00 00 */ li r5, 0
/* 8022FD1C 0022CC7C 80 84 03 C8 */ lwz r4, 0x3c8(r4)
/* 8022FD20 0022CC80 38 C0 00 00 */ li r6, 0
/* 8022FD24 0022CC84 4B DF A4 AD */ bl AddAdditiveAnimation__9CAnimDataFUifbb
lbl_8022FD28:
/* 8022FD28 0022CC88 C0 5F 03 E0 */ lfs f2, 0x3e0(r31)
/* 8022FD2C 0022CC8C FC 1D 10 00 */ fcmpu cr0, f29, f2
/* 8022FD30 0022CC90 41 82 00 98 */ beq lbl_8022FDC8
/* 8022FD34 0022CC94 FC 00 12 10 */ fabs f0, f2
/* 8022FD38 0022CC98 C0 22 B6 64 */ lfs f1, lbl_805AD384@sda21(r2)
/* 8022FD3C 0022CC9C FC 60 EA 10 */ fabs f3, f29
/* 8022FD40 0022CCA0 FC 00 00 18 */ frsp f0, f0
/* 8022FD44 0022CCA4 FF C0 18 18 */ frsp f30, f3
/* 8022FD48 0022CCA8 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8022FD4C 0022CCAC 40 81 00 3C */ ble lbl_8022FD88
/* 8022FD50 0022CCB0 EC 02 07 72 */ fmuls f0, f2, f29
/* 8022FD54 0022CCB4 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8022FD58 0022CCB8 4C 40 13 82 */ cror 2, 0, 2
/* 8022FD5C 0022CCBC 40 82 00 2C */ bne lbl_8022FD88
/* 8022FD60 0022CCC0 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 8022FD64 0022CCC4 7F C3 F3 78 */ mr r3, r30
/* 8022FD68 0022CCC8 40 81 00 0C */ ble lbl_8022FD74
/* 8022FD6C 0022CCCC 38 00 00 02 */ li r0, 2
/* 8022FD70 0022CCD0 48 00 00 08 */ b lbl_8022FD78
lbl_8022FD74:
/* 8022FD74 0022CCD4 38 00 00 03 */ li r0, 3
lbl_8022FD78:
/* 8022FD78 0022CCD8 54 00 10 3A */ slwi r0, r0, 2
/* 8022FD7C 0022CCDC 7C 9F 02 14 */ add r4, r31, r0
/* 8022FD80 0022CCE0 80 84 03 C8 */ lwz r4, 0x3c8(r4)
/* 8022FD84 0022CCE4 4B DF A3 D5 */ bl DelAdditiveAnimation__9CAnimDataFUi
lbl_8022FD88:
/* 8022FD88 0022CCE8 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022FD8C 0022CCEC FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 8022FD90 0022CCF0 40 81 00 38 */ ble lbl_8022FDC8
/* 8022FD94 0022CCF4 FC 1D 00 40 */ fcmpo cr0, f29, f0
/* 8022FD98 0022CCF8 7F C3 F3 78 */ mr r3, r30
/* 8022FD9C 0022CCFC 40 81 00 0C */ ble lbl_8022FDA8
/* 8022FDA0 0022CD00 38 00 00 02 */ li r0, 2
/* 8022FDA4 0022CD04 48 00 00 08 */ b lbl_8022FDAC
lbl_8022FDA8:
/* 8022FDA8 0022CD08 38 00 00 03 */ li r0, 3
lbl_8022FDAC:
/* 8022FDAC 0022CD0C 54 00 10 3A */ slwi r0, r0, 2
/* 8022FDB0 0022CD10 FC 20 F0 90 */ fmr f1, f30
/* 8022FDB4 0022CD14 7C 9F 02 14 */ add r4, r31, r0
/* 8022FDB8 0022CD18 38 A0 00 00 */ li r5, 0
/* 8022FDBC 0022CD1C 80 84 03 C8 */ lwz r4, 0x3c8(r4)
/* 8022FDC0 0022CD20 38 C0 00 00 */ li r6, 0
/* 8022FDC4 0022CD24 4B DF A4 0D */ bl AddAdditiveAnimation__9CAnimDataFUifbb
lbl_8022FDC8:
/* 8022FDC8 0022CD28 D3 FF 03 D8 */ stfs f31, 0x3d8(r31)
/* 8022FDCC 0022CD2C D3 BF 03 E0 */ stfs f29, 0x3e0(r31)
/* 8022FDD0 0022CD30 48 00 00 88 */ b lbl_8022FE58
lbl_8022FDD4:
/* 8022FDD4 0022CD34 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022FDD8 0022CD38 C0 3F 03 D8 */ lfs f1, 0x3d8(r31)
/* 8022FDDC 0022CD3C 83 C6 00 10 */ lwz r30, 0x10(r6)
/* 8022FDE0 0022CD40 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 8022FDE4 0022CD44 41 82 00 34 */ beq lbl_8022FE18
/* 8022FDE8 0022CD48 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8022FDEC 0022CD4C 7F C3 F3 78 */ mr r3, r30
/* 8022FDF0 0022CD50 40 80 00 0C */ bge lbl_8022FDFC
/* 8022FDF4 0022CD54 38 00 00 00 */ li r0, 0
/* 8022FDF8 0022CD58 48 00 00 08 */ b lbl_8022FE00
lbl_8022FDFC:
/* 8022FDFC 0022CD5C 38 00 00 01 */ li r0, 1
lbl_8022FE00:
/* 8022FE00 0022CD60 54 00 10 3A */ slwi r0, r0, 2
/* 8022FE04 0022CD64 7C 9F 02 14 */ add r4, r31, r0
/* 8022FE08 0022CD68 80 84 03 C8 */ lwz r4, 0x3c8(r4)
/* 8022FE0C 0022CD6C 4B DF A3 4D */ bl DelAdditiveAnimation__9CAnimDataFUi
/* 8022FE10 0022CD70 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022FE14 0022CD74 D0 1F 03 D8 */ stfs f0, 0x3d8(r31)
lbl_8022FE18:
/* 8022FE18 0022CD78 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022FE1C 0022CD7C C0 3F 03 E0 */ lfs f1, 0x3e0(r31)
/* 8022FE20 0022CD80 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 8022FE24 0022CD84 41 82 00 34 */ beq lbl_8022FE58
/* 8022FE28 0022CD88 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8022FE2C 0022CD8C 7F C3 F3 78 */ mr r3, r30
/* 8022FE30 0022CD90 40 81 00 0C */ ble lbl_8022FE3C
/* 8022FE34 0022CD94 38 00 00 02 */ li r0, 2
/* 8022FE38 0022CD98 48 00 00 08 */ b lbl_8022FE40
lbl_8022FE3C:
/* 8022FE3C 0022CD9C 38 00 00 03 */ li r0, 3
lbl_8022FE40:
/* 8022FE40 0022CDA0 54 00 10 3A */ slwi r0, r0, 2
/* 8022FE44 0022CDA4 7C 9F 02 14 */ add r4, r31, r0
/* 8022FE48 0022CDA8 80 84 03 C8 */ lwz r4, 0x3c8(r4)
/* 8022FE4C 0022CDAC 4B DF A3 0D */ bl DelAdditiveAnimation__9CAnimDataFUi
/* 8022FE50 0022CDB0 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022FE54 0022CDB4 D0 1F 03 E0 */ stfs f0, 0x3e0(r31)
lbl_8022FE58:
/* 8022FE58 0022CDB8 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 8022FE5C 0022CDBC CB E1 00 90 */ lfd f31, 0x90(r1)
/* 8022FE60 0022CDC0 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0
/* 8022FE64 0022CDC4 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 8022FE68 0022CDC8 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0
/* 8022FE6C 0022CDCC CB A1 00 70 */ lfd f29, 0x70(r1)
/* 8022FE70 0022CDD0 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 8022FE74 0022CDD4 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8022FE78 0022CDD8 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 8022FE7C 0022CDDC 7C 08 03 A6 */ mtlr r0
/* 8022FE80 0022CDE0 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8022FE84 0022CDE4 4E 80 00 20 */ blr
.global sub_8022fe88
sub_8022fe88:
/* 8022FE88 0022CDE8 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 8022FE8C 0022CDEC 7C 08 02 A6 */ mflr r0
/* 8022FE90 0022CDF0 80 82 B6 5C */ lwz r4, lbl_805AD37C@sda21(r2)
/* 8022FE94 0022CDF4 90 01 00 94 */ stw r0, 0x94(r1)
/* 8022FE98 0022CDF8 93 E1 00 8C */ stw r31, 0x8c(r1)
/* 8022FE9C 0022CDFC 7C 7F 1B 78 */ mr r31, r3
/* 8022FEA0 0022CE00 38 61 00 18 */ addi r3, r1, 0x18
/* 8022FEA4 0022CE04 4B DD 4E 15 */ bl string_l__4rstlFPCc
/* 8022FEA8 0022CE08 7F E4 FB 78 */ mr r4, r31
/* 8022FEAC 0022CE0C 38 61 00 28 */ addi r3, r1, 0x28
/* 8022FEB0 0022CE10 38 A1 00 18 */ addi r5, r1, 0x18
/* 8022FEB4 0022CE14 4B E2 30 4D */ bl "GetLocatorTransform__6CActorCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 8022FEB8 0022CE18 38 61 00 58 */ addi r3, r1, 0x58
/* 8022FEBC 0022CE1C 38 81 00 28 */ addi r4, r1, 0x28
/* 8022FEC0 0022CE20 48 0E 2C B5 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 8022FEC4 0022CE24 38 61 00 18 */ addi r3, r1, 0x18
/* 8022FEC8 0022CE28 48 10 DC 19 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8022FECC 0022CE2C C0 21 00 64 */ lfs f1, 0x64(r1)
/* 8022FED0 0022CE30 C0 01 00 74 */ lfs f0, 0x74(r1)
/* 8022FED4 0022CE34 D0 21 00 08 */ stfs f1, 8(r1)
/* 8022FED8 0022CE38 C0 3F 03 44 */ lfs f1, 0x344(r31)
/* 8022FEDC 0022CE3C D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8022FEE0 0022CE40 C0 01 00 84 */ lfs f0, 0x84(r1)
/* 8022FEE4 0022CE44 80 01 00 08 */ lwz r0, 8(r1)
/* 8022FEE8 0022CE48 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8022FEEC 0022CE4C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8022FEF0 0022CE50 90 1F 03 38 */ stw r0, 0x338(r31)
/* 8022FEF4 0022CE54 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8022FEF8 0022CE58 90 7F 03 3C */ stw r3, 0x33c(r31)
/* 8022FEFC 0022CE5C 90 1F 03 40 */ stw r0, 0x340(r31)
/* 8022FF00 0022CE60 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8022FF04 0022CE64 D0 3F 03 44 */ stfs f1, 0x344(r31)
/* 8022FF08 0022CE68 83 E1 00 8C */ lwz r31, 0x8c(r1)
/* 8022FF0C 0022CE6C 80 01 00 94 */ lwz r0, 0x94(r1)
/* 8022FF10 0022CE70 7C 08 03 A6 */ mtlr r0
/* 8022FF14 0022CE74 38 21 00 90 */ addi r1, r1, 0x90
/* 8022FF18 0022CE78 4E 80 00 20 */ blr
.global sub_8022ff1c
sub_8022ff1c:
/* 8022FF1C 0022CE7C 94 21 FD 20 */ stwu r1, -0x2e0(r1)
/* 8022FF20 0022CE80 7C 08 02 A6 */ mflr r0
/* 8022FF24 0022CE84 90 01 02 E4 */ stw r0, 0x2e4(r1)
/* 8022FF28 0022CE88 BF 41 02 C8 */ stmw r26, 0x2c8(r1)
/* 8022FF2C 0022CE8C 7C 9F 23 78 */ mr r31, r4
/* 8022FF30 0022CE90 7C 7E 1B 78 */ mr r30, r3
/* 8022FF34 0022CE94 80 83 00 64 */ lwz r4, 0x64(r3)
/* 8022FF38 0022CE98 38 60 00 00 */ li r3, 0
/* 8022FF3C 0022CE9C 28 04 00 00 */ cmplwi r4, 0
/* 8022FF40 0022CEA0 41 82 00 14 */ beq lbl_8022FF54
/* 8022FF44 0022CEA4 80 04 00 10 */ lwz r0, 0x10(r4)
/* 8022FF48 0022CEA8 28 00 00 00 */ cmplwi r0, 0
/* 8022FF4C 0022CEAC 41 82 00 08 */ beq lbl_8022FF54
/* 8022FF50 0022CEB0 38 60 00 01 */ li r3, 1
lbl_8022FF54:
/* 8022FF54 0022CEB4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8022FF58 0022CEB8 41 82 04 CC */ beq lbl_80230424
/* 8022FF5C 0022CEBC 38 61 00 50 */ addi r3, r1, 0x50
/* 8022FF60 0022CEC0 48 0B 31 1D */ bl NoParameter__12CPASAnimParmFv
/* 8022FF64 0022CEC4 38 61 00 58 */ addi r3, r1, 0x58
/* 8022FF68 0022CEC8 48 0B 31 15 */ bl NoParameter__12CPASAnimParmFv
/* 8022FF6C 0022CECC 38 61 00 60 */ addi r3, r1, 0x60
/* 8022FF70 0022CED0 48 0B 31 0D */ bl NoParameter__12CPASAnimParmFv
/* 8022FF74 0022CED4 38 61 00 68 */ addi r3, r1, 0x68
/* 8022FF78 0022CED8 48 0B 31 05 */ bl NoParameter__12CPASAnimParmFv
/* 8022FF7C 0022CEDC 38 61 00 70 */ addi r3, r1, 0x70
/* 8022FF80 0022CEE0 48 0B 30 FD */ bl NoParameter__12CPASAnimParmFv
/* 8022FF84 0022CEE4 38 61 00 78 */ addi r3, r1, 0x78
/* 8022FF88 0022CEE8 48 0B 30 F5 */ bl NoParameter__12CPASAnimParmFv
/* 8022FF8C 0022CEEC 38 61 00 80 */ addi r3, r1, 0x80
/* 8022FF90 0022CEF0 48 0B 30 ED */ bl NoParameter__12CPASAnimParmFv
/* 8022FF94 0022CEF4 38 61 00 88 */ addi r3, r1, 0x88
/* 8022FF98 0022CEF8 48 0B 30 E5 */ bl NoParameter__12CPASAnimParmFv
/* 8022FF9C 0022CEFC 38 61 00 58 */ addi r3, r1, 0x58
/* 8022FFA0 0022CF00 38 01 00 50 */ addi r0, r1, 0x50
/* 8022FFA4 0022CF04 90 61 00 08 */ stw r3, 8(r1)
/* 8022FFA8 0022CF08 38 61 02 80 */ addi r3, r1, 0x280
/* 8022FFAC 0022CF0C 38 A1 00 88 */ addi r5, r1, 0x88
/* 8022FFB0 0022CF10 38 C1 00 80 */ addi r6, r1, 0x80
/* 8022FFB4 0022CF14 90 01 00 0C */ stw r0, 0xc(r1)
/* 8022FFB8 0022CF18 38 E1 00 78 */ addi r7, r1, 0x78
/* 8022FFBC 0022CF1C 39 01 00 70 */ addi r8, r1, 0x70
/* 8022FFC0 0022CF20 39 21 00 68 */ addi r9, r1, 0x68
/* 8022FFC4 0022CF24 39 41 00 60 */ addi r10, r1, 0x60
/* 8022FFC8 0022CF28 38 80 00 17 */ li r4, 0x17
/* 8022FFCC 0022CF2C 4B E4 D2 F9 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 8022FFD0 0022CF30 80 9E 00 64 */ lwz r4, 0x64(r30)
/* 8022FFD4 0022CF34 38 61 00 48 */ addi r3, r1, 0x48
/* 8022FFD8 0022CF38 80 DF 09 00 */ lwz r6, 0x900(r31)
/* 8022FFDC 0022CF3C 38 A1 02 80 */ addi r5, r1, 0x280
/* 8022FFE0 0022CF40 80 84 00 10 */ lwz r4, 0x10(r4)
/* 8022FFE4 0022CF44 38 E0 FF FF */ li r7, -1
/* 8022FFE8 0022CF48 38 84 00 3C */ addi r4, r4, 0x3c
/* 8022FFEC 0022CF4C 48 0B 50 75 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 8022FFF0 0022CF50 C0 21 00 48 */ lfs f1, 0x48(r1)
/* 8022FFF4 0022CF54 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 8022FFF8 0022CF58 80 81 00 4C */ lwz r4, 0x4c(r1)
/* 8022FFFC 0022CF5C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80230000 0022CF60 40 81 03 C8 */ ble lbl_802303C8
/* 80230004 0022CF64 80 7E 00 64 */ lwz r3, 0x64(r30)
/* 80230008 0022CF68 38 A0 00 00 */ li r5, 0
/* 8023000C 0022CF6C C0 22 B6 6C */ lfs f1, lbl_805AD38C@sda21(r2)
/* 80230010 0022CF70 38 C0 00 01 */ li r6, 1
/* 80230014 0022CF74 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80230018 0022CF78 4B DF A1 B9 */ bl AddAdditiveAnimation__9CAnimDataFUifbb
/* 8023001C 0022CF7C 80 82 B6 58 */ lwz r4, lbl_805AD378@sda21(r2)
/* 80230020 0022CF80 38 61 01 10 */ addi r3, r1, 0x110
/* 80230024 0022CF84 4B DD 4C 95 */ bl string_l__4rstlFPCc
/* 80230028 0022CF88 7F C4 F3 78 */ mr r4, r30
/* 8023002C 0022CF8C 38 61 01 A4 */ addi r3, r1, 0x1a4
/* 80230030 0022CF90 38 A1 01 10 */ addi r5, r1, 0x110
/* 80230034 0022CF94 4B E2 2E CD */ bl "GetLocatorTransform__6CActorCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 80230038 0022CF98 38 61 02 04 */ addi r3, r1, 0x204
/* 8023003C 0022CF9C 38 81 01 A4 */ addi r4, r1, 0x1a4
/* 80230040 0022CFA0 48 0E 2B 35 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80230044 0022CFA4 38 61 01 10 */ addi r3, r1, 0x110
/* 80230048 0022CFA8 48 10 DA 99 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 8023004C 0022CFAC C0 41 02 10 */ lfs f2, 0x210(r1)
/* 80230050 0022CFB0 38 61 01 04 */ addi r3, r1, 0x104
/* 80230054 0022CFB4 C0 21 02 20 */ lfs f1, 0x220(r1)
/* 80230058 0022CFB8 38 9E 00 34 */ addi r4, r30, 0x34
/* 8023005C 0022CFBC C0 01 02 30 */ lfs f0, 0x230(r1)
/* 80230060 0022CFC0 38 A1 00 F8 */ addi r5, r1, 0xf8
/* 80230064 0022CFC4 D0 41 00 F8 */ stfs f2, 0xf8(r1)
/* 80230068 0022CFC8 D0 21 00 FC */ stfs f1, 0xfc(r1)
/* 8023006C 0022CFCC D0 01 01 00 */ stfs f0, 0x100(r1)
/* 80230070 0022CFD0 48 0E 2A 11 */ bl Rotate__12CTransform4fCFRC9CVector3f
/* 80230074 0022CFD4 C0 3E 00 50 */ lfs f1, 0x50(r30)
/* 80230078 0022CFD8 3B 9E 03 18 */ addi r28, r30, 0x318
/* 8023007C 0022CFDC C0 01 01 08 */ lfs f0, 0x108(r1)
/* 80230080 0022CFE0 7F E4 FB 78 */ mr r4, r31
/* 80230084 0022CFE4 C0 7E 00 60 */ lfs f3, 0x60(r30)
/* 80230088 0022CFE8 38 61 00 EC */ addi r3, r1, 0xec
/* 8023008C 0022CFEC C0 41 01 0C */ lfs f2, 0x10c(r1)
/* 80230090 0022CFF0 EC 81 00 2A */ fadds f4, f1, f0
/* 80230094 0022CFF4 C0 3E 00 40 */ lfs f1, 0x40(r30)
/* 80230098 0022CFF8 C0 01 01 04 */ lfs f0, 0x104(r1)
/* 8023009C 0022CFFC EC 43 10 2A */ fadds f2, f3, f2
/* 802300A0 0022D000 D0 81 01 54 */ stfs f4, 0x154(r1)
/* 802300A4 0022D004 EC 01 00 2A */ fadds f0, f1, f0
/* 802300A8 0022D008 D0 41 01 58 */ stfs f2, 0x158(r1)
/* 802300AC 0022D00C D0 01 01 50 */ stfs f0, 0x150(r1)
/* 802300B0 0022D010 C0 1E 03 20 */ lfs f0, 0x320(r30)
/* 802300B4 0022D014 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 802300B8 0022D018 C0 1E 03 18 */ lfs f0, 0x318(r30)
/* 802300BC 0022D01C D0 01 00 40 */ stfs f0, 0x40(r1)
/* 802300C0 0022D020 48 00 07 A5 */ bl sub_80230864
/* 802300C4 0022D024 C0 41 00 EC */ lfs f2, 0xec(r1)
/* 802300C8 0022D028 7F 85 E3 78 */ mr r5, r28
/* 802300CC 0022D02C C0 21 00 F0 */ lfs f1, 0xf0(r1)
/* 802300D0 0022D030 38 61 01 44 */ addi r3, r1, 0x144
/* 802300D4 0022D034 C0 01 00 F4 */ lfs f0, 0xf4(r1)
/* 802300D8 0022D038 38 81 01 50 */ addi r4, r1, 0x150
/* 802300DC 0022D03C D0 41 01 44 */ stfs f2, 0x144(r1)
/* 802300E0 0022D040 38 C1 00 44 */ addi r6, r1, 0x44
/* 802300E4 0022D044 38 E1 00 40 */ addi r7, r1, 0x40
/* 802300E8 0022D048 D0 21 01 48 */ stfs f1, 0x148(r1)
/* 802300EC 0022D04C D0 01 01 4C */ stfs f0, 0x14c(r1)
/* 802300F0 0022D050 48 00 05 19 */ bl sub_80230608
/* 802300F4 0022D054 C0 21 01 4C */ lfs f1, 0x14c(r1)
/* 802300F8 0022D058 38 61 01 38 */ addi r3, r1, 0x138
/* 802300FC 0022D05C C0 01 01 58 */ lfs f0, 0x158(r1)
/* 80230100 0022D060 C0 61 01 48 */ lfs f3, 0x148(r1)
/* 80230104 0022D064 EC 81 00 28 */ fsubs f4, f1, f0
/* 80230108 0022D068 C0 41 01 54 */ lfs f2, 0x154(r1)
/* 8023010C 0022D06C C0 21 01 44 */ lfs f1, 0x144(r1)
/* 80230110 0022D070 C0 01 01 50 */ lfs f0, 0x150(r1)
/* 80230114 0022D074 EC 43 10 28 */ fsubs f2, f3, f2
/* 80230118 0022D078 D0 81 01 40 */ stfs f4, 0x140(r1)
/* 8023011C 0022D07C EC 21 00 28 */ fsubs f1, f1, f0
/* 80230120 0022D080 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 80230124 0022D084 D0 41 01 3C */ stfs f2, 0x13c(r1)
/* 80230128 0022D088 D0 21 01 38 */ stfs f1, 0x138(r1)
/* 8023012C 0022D08C D0 01 01 40 */ stfs f0, 0x140(r1)
/* 80230130 0022D090 C0 5E 00 58 */ lfs f2, 0x58(r30)
/* 80230134 0022D094 C0 3E 00 48 */ lfs f1, 0x48(r30)
/* 80230138 0022D098 C0 1E 00 38 */ lfs f0, 0x38(r30)
/* 8023013C 0022D09C D0 01 01 2C */ stfs f0, 0x12c(r1)
/* 80230140 0022D0A0 D0 21 01 30 */ stfs f1, 0x130(r1)
/* 80230144 0022D0A4 D0 41 01 34 */ stfs f2, 0x134(r1)
/* 80230148 0022D0A8 48 0E 45 B1 */ bl CanBeNormalized__9CVector3fCFv
/* 8023014C 0022D0AC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80230150 0022D0B0 41 82 00 18 */ beq lbl_80230168
/* 80230154 0022D0B4 38 61 00 E0 */ addi r3, r1, 0xe0
/* 80230158 0022D0B8 38 81 01 38 */ addi r4, r1, 0x138
/* 8023015C 0022D0BC 48 0E 46 F5 */ bl AsNormalized__9CVector3fCFv
/* 80230160 0022D0C0 38 A1 00 E0 */ addi r5, r1, 0xe0
/* 80230164 0022D0C4 48 00 00 08 */ b lbl_8023016C
lbl_80230168:
/* 80230168 0022D0C8 38 A1 01 2C */ addi r5, r1, 0x12c
lbl_8023016C:
/* 8023016C 0022D0CC C0 05 00 00 */ lfs f0, 0(r5)
/* 80230170 0022D0D0 38 61 01 2C */ addi r3, r1, 0x12c
/* 80230174 0022D0D4 38 81 01 20 */ addi r4, r1, 0x120
/* 80230178 0022D0D8 D0 01 01 20 */ stfs f0, 0x120(r1)
/* 8023017C 0022D0DC C0 05 00 04 */ lfs f0, 4(r5)
/* 80230180 0022D0E0 D0 01 01 24 */ stfs f0, 0x124(r1)
/* 80230184 0022D0E4 C0 05 00 08 */ lfs f0, 8(r5)
/* 80230188 0022D0E8 D0 01 01 28 */ stfs f0, 0x128(r1)
/* 8023018C 0022D0EC 48 0E 44 A5 */ bl GetAngleDiff__9CVector3fFRC9CVector3fRC9CVector3f
/* 80230190 0022D0F0 C0 02 B6 88 */ lfs f0, lbl_805AD3A8@sda21(r2)
/* 80230194 0022D0F4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80230198 0022D0F8 40 81 00 34 */ ble lbl_802301CC
/* 8023019C 0022D0FC D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 802301A0 0022D100 38 61 00 D4 */ addi r3, r1, 0xd4
/* 802301A4 0022D104 38 81 01 2C */ addi r4, r1, 0x12c
/* 802301A8 0022D108 38 A1 01 20 */ addi r5, r1, 0x120
/* 802301AC 0022D10C 38 C1 00 3C */ addi r6, r1, 0x3c
/* 802301B0 0022D110 48 0E 47 A5 */ bl Slerp__9CVector3fFRC9CVector3fRC9CVector3fRC9CRelAngle
/* 802301B4 0022D114 C0 41 00 D4 */ lfs f2, 0xd4(r1)
/* 802301B8 0022D118 C0 21 00 D8 */ lfs f1, 0xd8(r1)
/* 802301BC 0022D11C C0 01 00 DC */ lfs f0, 0xdc(r1)
/* 802301C0 0022D120 D0 41 01 20 */ stfs f2, 0x120(r1)
/* 802301C4 0022D124 D0 21 01 24 */ stfs f1, 0x124(r1)
/* 802301C8 0022D128 D0 01 01 28 */ stfs f0, 0x128(r1)
lbl_802301CC:
/* 802301CC 0022D12C C0 01 00 44 */ lfs f0, 0x44(r1)
/* 802301D0 0022D130 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 802301D4 0022D134 38 A3 66 F4 */ addi r5, r3, sUpVector__9CVector3f@l
/* 802301D8 0022D138 38 81 01 20 */ addi r4, r1, 0x120
/* 802301DC 0022D13C D0 01 00 38 */ stfs f0, 0x38(r1)
/* 802301E0 0022D140 38 61 00 C8 */ addi r3, r1, 0xc8
/* 802301E4 0022D144 38 C1 00 38 */ addi r6, r1, 0x38
/* 802301E8 0022D148 48 0E 47 6D */ bl Slerp__9CVector3fFRC9CVector3fRC9CVector3fRC9CRelAngle
/* 802301EC 0022D14C C0 21 01 54 */ lfs f1, 0x154(r1)
/* 802301F0 0022D150 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 802301F4 0022D154 C0 01 00 CC */ lfs f0, 0xcc(r1)
/* 802301F8 0022D158 38 C3 66 F4 */ addi r6, r3, sUpVector__9CVector3f@l
/* 802301FC 0022D15C C0 61 01 58 */ lfs f3, 0x158(r1)
/* 80230200 0022D160 38 61 01 74 */ addi r3, r1, 0x174
/* 80230204 0022D164 EC 81 00 2A */ fadds f4, f1, f0
/* 80230208 0022D168 C0 41 00 D0 */ lfs f2, 0xd0(r1)
/* 8023020C 0022D16C C0 21 01 50 */ lfs f1, 0x150(r1)
/* 80230210 0022D170 38 81 01 50 */ addi r4, r1, 0x150
/* 80230214 0022D174 C0 01 00 C8 */ lfs f0, 0xc8(r1)
/* 80230218 0022D178 EC 43 10 2A */ fadds f2, f3, f2
/* 8023021C 0022D17C EC 01 00 2A */ fadds f0, f1, f0
/* 80230220 0022D180 D0 81 00 C0 */ stfs f4, 0xc0(r1)
/* 80230224 0022D184 38 A1 00 BC */ addi r5, r1, 0xbc
/* 80230228 0022D188 D0 41 00 C4 */ stfs f2, 0xc4(r1)
/* 8023022C 0022D18C D0 01 00 BC */ stfs f0, 0xbc(r1)
/* 80230230 0022D190 48 0E 38 E1 */ bl LookAt__12CTransform4fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 80230234 0022D194 38 61 01 D4 */ addi r3, r1, 0x1d4
/* 80230238 0022D198 38 81 01 74 */ addi r4, r1, 0x174
/* 8023023C 0022D19C 48 0E 29 39 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80230240 0022D1A0 3C 60 80 3D */ lis r3, lbl_803D3410@ha
/* 80230244 0022D1A4 3B A0 00 00 */ li r29, 0
/* 80230248 0022D1A8 38 63 34 10 */ addi r3, r3, lbl_803D3410@l
/* 8023024C 0022D1AC 3B 60 00 00 */ li r27, 0
/* 80230250 0022D1B0 38 83 00 20 */ addi r4, r3, 0x20
/* 80230254 0022D1B4 3B 40 00 00 */ li r26, 0
/* 80230258 0022D1B8 38 60 02 B8 */ li r3, 0x2b8
/* 8023025C 0022D1BC 38 A0 00 00 */ li r5, 0
/* 80230260 0022D1C0 48 0E 56 0D */ bl __nw__FUlPCcPCc
/* 80230264 0022D1C4 7C 7C 1B 79 */ or. r28, r3, r3
/* 80230268 0022D1C8 41 82 00 E0 */ beq lbl_80230348
/* 8023026C 0022D1CC A0 1E 02 CC */ lhz r0, 0x2cc(r30)
/* 80230270 0022D1D0 38 61 02 34 */ addi r3, r1, 0x234
/* 80230274 0022D1D4 38 81 00 A0 */ addi r4, r1, 0xa0
/* 80230278 0022D1D8 B0 01 00 18 */ sth r0, 0x18(r1)
/* 8023027C 0022D1DC 80 BE 00 64 */ lwz r5, 0x64(r30)
/* 80230280 0022D1E0 80 1E 03 0C */ lwz r0, 0x30c(r30)
/* 80230284 0022D1E4 C0 45 00 00 */ lfs f2, 0(r5)
/* 80230288 0022D1E8 C0 25 00 04 */ lfs f1, 4(r5)
/* 8023028C 0022D1EC C0 05 00 08 */ lfs f0, 8(r5)
/* 80230290 0022D1F0 D0 41 00 B0 */ stfs f2, 0xb0(r1)
/* 80230294 0022D1F4 D0 21 00 B4 */ stfs f1, 0xb4(r1)
/* 80230298 0022D1F8 D0 01 00 B8 */ stfs f0, 0xb8(r1)
/* 8023029C 0022D1FC 90 01 00 A0 */ stw r0, 0xa0(r1)
/* 802302A0 0022D200 D0 41 00 A4 */ stfs f2, 0xa4(r1)
/* 802302A4 0022D204 D0 21 00 A8 */ stfs f1, 0xa8(r1)
/* 802302A8 0022D208 D0 01 00 AC */ stfs f0, 0xac(r1)
/* 802302AC 0022D20C 4B EE 6A B1 */ bl __ct__10CModelDataFRC10CStaticRes
/* 802302B0 0022D210 80 0D A3 88 */ lwz r0, kInvalidEditorId@sda21(r13)
/* 802302B4 0022D214 3C 60 80 57 */ lis r3, NullConnectionList__7CEntity@ha
/* 802302B8 0022D218 38 A3 D4 10 */ addi r5, r3, NullConnectionList__7CEntity@l
/* 802302BC 0022D21C 38 81 00 30 */ addi r4, r1, 0x30
/* 802302C0 0022D220 90 01 00 34 */ stw r0, 0x34(r1)
/* 802302C4 0022D224 38 61 01 5C */ addi r3, r1, 0x15c
/* 802302C8 0022D228 38 C1 00 34 */ addi r6, r1, 0x34
/* 802302CC 0022D22C 3B A0 00 01 */ li r29, 1
/* 802302D0 0022D230 80 1E 00 04 */ lwz r0, 4(r30)
/* 802302D4 0022D234 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802302D8 0022D238 90 01 00 30 */ stw r0, 0x30(r1)
/* 802302DC 0022D23C 4B E2 11 A9 */ bl "__ct__11CEntityInfoF7TAreaIdRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>9TEditorId"
/* 802302E0 0022D240 3C 80 80 3D */ lis r4, lbl_803D3410@ha
/* 802302E4 0022D244 38 61 00 90 */ addi r3, r1, 0x90
/* 802302E8 0022D248 38 84 34 10 */ addi r4, r4, lbl_803D3410@l
/* 802302EC 0022D24C 3B 60 00 01 */ li r27, 1
/* 802302F0 0022D250 38 84 00 43 */ addi r4, r4, 0x43
/* 802302F4 0022D254 4B DD 49 C5 */ bl string_l__4rstlFPCc
/* 802302F8 0022D258 7F E4 FB 78 */ mr r4, r31
/* 802302FC 0022D25C 38 61 00 10 */ addi r3, r1, 0x10
/* 80230300 0022D260 3B 40 00 01 */ li r26, 1
/* 80230304 0022D264 4B E1 CD D9 */ bl AllocateUniqueId__13CStateManagerFv
/* 80230308 0022D268 A0 A1 00 10 */ lhz r5, 0x10(r1)
/* 8023030C 0022D26C 38 1E 02 D0 */ addi r0, r30, 0x2d0
/* 80230310 0022D270 7F 83 E3 78 */ mr r3, r28
/* 80230314 0022D274 38 81 00 14 */ addi r4, r1, 0x14
/* 80230318 0022D278 B0 A1 00 14 */ sth r5, 0x14(r1)
/* 8023031C 0022D27C 38 A1 00 90 */ addi r5, r1, 0x90
/* 80230320 0022D280 38 C1 01 5C */ addi r6, r1, 0x15c
/* 80230324 0022D284 38 E1 01 D4 */ addi r7, r1, 0x1d4
/* 80230328 0022D288 90 01 00 08 */ stw r0, 8(r1)
/* 8023032C 0022D28C 39 01 02 34 */ addi r8, r1, 0x234
/* 80230330 0022D290 39 3E 03 50 */ addi r9, r30, 0x350
/* 80230334 0022D294 39 41 00 18 */ addi r10, r1, 0x18
/* 80230338 0022D298 C0 21 00 40 */ lfs f1, 0x40(r1)
/* 8023033C 0022D29C C0 5E 03 F8 */ lfs f2, 0x3f8(r30)
/* 80230340 0022D2A0 4B FF EE CD */ bl __ct__14CBouncyGrenade
/* 80230344 0022D2A4 7C 7C 1B 78 */ mr r28, r3
lbl_80230348:
/* 80230348 0022D2A8 7F 40 07 75 */ extsb. r0, r26
/* 8023034C 0022D2AC 41 82 00 0C */ beq lbl_80230358
/* 80230350 0022D2B0 38 61 00 90 */ addi r3, r1, 0x90
/* 80230354 0022D2B4 48 10 D7 8D */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_80230358:
/* 80230358 0022D2B8 7F 60 07 75 */ extsb. r0, r27
/* 8023035C 0022D2BC 41 82 00 44 */ beq lbl_802303A0
/* 80230360 0022D2C0 80 01 01 64 */ lwz r0, 0x164(r1)
/* 80230364 0022D2C4 80 61 01 6C */ lwz r3, 0x16c(r1)
/* 80230368 0022D2C8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8023036C 0022D2CC 90 61 00 20 */ stw r3, 0x20(r1)
/* 80230370 0022D2D0 7C 64 1B 78 */ mr r4, r3
/* 80230374 0022D2D4 7C 03 02 14 */ add r0, r3, r0
/* 80230378 0022D2D8 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8023037C 0022D2DC 90 01 00 28 */ stw r0, 0x28(r1)
/* 80230380 0022D2E0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80230384 0022D2E4 48 00 00 08 */ b lbl_8023038C
lbl_80230388:
/* 80230388 0022D2E8 38 84 00 0C */ addi r4, r4, 0xc
lbl_8023038C:
/* 8023038C 0022D2EC 7C 04 00 40 */ cmplw r4, r0
/* 80230390 0022D2F0 40 82 FF F8 */ bne lbl_80230388
/* 80230394 0022D2F4 28 03 00 00 */ cmplwi r3, 0
/* 80230398 0022D2F8 41 82 00 08 */ beq lbl_802303A0
/* 8023039C 0022D2FC 48 0E 55 95 */ bl Free__7CMemoryFPCv
lbl_802303A0:
/* 802303A0 0022D300 7F A0 07 75 */ extsb. r0, r29
/* 802303A4 0022D304 41 82 00 10 */ beq lbl_802303B4
/* 802303A8 0022D308 38 61 02 34 */ addi r3, r1, 0x234
/* 802303AC 0022D30C 38 80 FF FF */ li r4, -1
/* 802303B0 0022D310 4B EE 66 9D */ bl __dt__10CModelDataFv
lbl_802303B4:
/* 802303B4 0022D314 28 1C 00 00 */ cmplwi r28, 0
/* 802303B8 0022D318 41 82 00 10 */ beq lbl_802303C8
/* 802303BC 0022D31C 7F E3 FB 78 */ mr r3, r31
/* 802303C0 0022D320 7F 84 E3 78 */ mr r4, r28
/* 802303C4 0022D324 4B E1 C9 31 */ bl AddObject__13CStateManagerFP7CEntity
lbl_802303C8:
/* 802303C8 0022D328 34 A1 02 84 */ addic. r5, r1, 0x284
/* 802303CC 0022D32C 41 82 00 58 */ beq lbl_80230424
/* 802303D0 0022D330 80 C5 00 00 */ lwz r6, 0(r5)
/* 802303D4 0022D334 38 60 00 00 */ li r3, 0
/* 802303D8 0022D338 2C 06 00 00 */ cmpwi r6, 0
/* 802303DC 0022D33C 40 81 00 40 */ ble lbl_8023041C
/* 802303E0 0022D340 2C 06 00 08 */ cmpwi r6, 8
/* 802303E4 0022D344 38 86 FF F8 */ addi r4, r6, -8
/* 802303E8 0022D348 40 81 00 20 */ ble lbl_80230408
/* 802303EC 0022D34C 38 04 00 07 */ addi r0, r4, 7
/* 802303F0 0022D350 54 00 E8 FE */ srwi r0, r0, 3
/* 802303F4 0022D354 7C 09 03 A6 */ mtctr r0
/* 802303F8 0022D358 2C 04 00 00 */ cmpwi r4, 0
/* 802303FC 0022D35C 40 81 00 0C */ ble lbl_80230408
lbl_80230400:
/* 80230400 0022D360 38 63 00 08 */ addi r3, r3, 8
/* 80230404 0022D364 42 00 FF FC */ bdnz lbl_80230400
lbl_80230408:
/* 80230408 0022D368 7C 03 30 50 */ subf r0, r3, r6
/* 8023040C 0022D36C 7C 09 03 A6 */ mtctr r0
/* 80230410 0022D370 7C 03 30 00 */ cmpw r3, r6
/* 80230414 0022D374 40 80 00 08 */ bge lbl_8023041C
lbl_80230418:
/* 80230418 0022D378 42 00 00 00 */ bdnz lbl_80230418
lbl_8023041C:
/* 8023041C 0022D37C 38 00 00 00 */ li r0, 0
/* 80230420 0022D380 90 05 00 00 */ stw r0, 0(r5)
lbl_80230424:
/* 80230424 0022D384 BB 41 02 C8 */ lmw r26, 0x2c8(r1)
/* 80230428 0022D388 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 8023042C 0022D38C 7C 08 03 A6 */ mtlr r0
/* 80230430 0022D390 38 21 02 E0 */ addi r1, r1, 0x2e0
/* 80230434 0022D394 4E 80 00 20 */ blr
.global sub_80230438
sub_80230438:
/* 80230438 0022D398 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8023043C 0022D39C 7C 08 02 A6 */ mflr r0
/* 80230440 0022D3A0 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 80230444 0022D3A4 93 E1 00 CC */ stw r31, 0xcc(r1)
/* 80230448 0022D3A8 7C 7F 1B 78 */ mr r31, r3
/* 8023044C 0022D3AC 38 60 00 00 */ li r3, 0
/* 80230450 0022D3B0 80 9F 00 64 */ lwz r4, 0x64(r31)
/* 80230454 0022D3B4 28 04 00 00 */ cmplwi r4, 0
/* 80230458 0022D3B8 41 82 00 14 */ beq lbl_8023046C
/* 8023045C 0022D3BC 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80230460 0022D3C0 28 00 00 00 */ cmplwi r0, 0
/* 80230464 0022D3C4 41 82 00 08 */ beq lbl_8023046C
/* 80230468 0022D3C8 38 60 00 01 */ li r3, 1
lbl_8023046C:
/* 8023046C 0022D3CC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80230470 0022D3D0 41 82 01 84 */ beq lbl_802305F4
/* 80230474 0022D3D4 80 1F 02 58 */ lwz r0, 0x258(r31)
/* 80230478 0022D3D8 2C 00 00 00 */ cmpwi r0, 0
/* 8023047C 0022D3DC 41 80 01 78 */ blt lbl_802305F4
/* 80230480 0022D3E0 2C 00 00 01 */ cmpwi r0, 1
/* 80230484 0022D3E4 41 81 01 70 */ bgt lbl_802305F4
/* 80230488 0022D3E8 38 61 00 18 */ addi r3, r1, 0x18
/* 8023048C 0022D3EC 48 0B 2B F1 */ bl NoParameter__12CPASAnimParmFv
/* 80230490 0022D3F0 38 61 00 20 */ addi r3, r1, 0x20
/* 80230494 0022D3F4 48 0B 2B E9 */ bl NoParameter__12CPASAnimParmFv
/* 80230498 0022D3F8 38 61 00 28 */ addi r3, r1, 0x28
/* 8023049C 0022D3FC 48 0B 2B E1 */ bl NoParameter__12CPASAnimParmFv
/* 802304A0 0022D400 38 61 00 30 */ addi r3, r1, 0x30
/* 802304A4 0022D404 48 0B 2B D9 */ bl NoParameter__12CPASAnimParmFv
/* 802304A8 0022D408 38 61 00 38 */ addi r3, r1, 0x38
/* 802304AC 0022D40C 48 0B 2B D1 */ bl NoParameter__12CPASAnimParmFv
/* 802304B0 0022D410 38 61 00 40 */ addi r3, r1, 0x40
/* 802304B4 0022D414 48 0B 2B C9 */ bl NoParameter__12CPASAnimParmFv
/* 802304B8 0022D418 80 1F 02 58 */ lwz r0, 0x258(r31)
/* 802304BC 0022D41C 38 82 B6 50 */ addi r4, r2, lbl_805AD370@sda21
/* 802304C0 0022D420 38 61 00 48 */ addi r3, r1, 0x48
/* 802304C4 0022D424 54 00 10 3A */ slwi r0, r0, 2
/* 802304C8 0022D428 7C 84 00 2E */ lwzx r4, r4, r0
/* 802304CC 0022D42C 48 0B 2A B9 */ bl FromEnum__12CPASAnimParmFi
/* 802304D0 0022D430 38 61 00 50 */ addi r3, r1, 0x50
/* 802304D4 0022D434 38 80 00 00 */ li r4, 0
/* 802304D8 0022D438 48 0B 2A AD */ bl FromEnum__12CPASAnimParmFi
/* 802304DC 0022D43C 38 61 00 20 */ addi r3, r1, 0x20
/* 802304E0 0022D440 38 01 00 18 */ addi r0, r1, 0x18
/* 802304E4 0022D444 90 61 00 08 */ stw r3, 8(r1)
/* 802304E8 0022D448 38 61 00 80 */ addi r3, r1, 0x80
/* 802304EC 0022D44C 38 A1 00 50 */ addi r5, r1, 0x50
/* 802304F0 0022D450 38 C1 00 48 */ addi r6, r1, 0x48
/* 802304F4 0022D454 90 01 00 0C */ stw r0, 0xc(r1)
/* 802304F8 0022D458 38 E1 00 40 */ addi r7, r1, 0x40
/* 802304FC 0022D45C 39 01 00 38 */ addi r8, r1, 0x38
/* 80230500 0022D460 39 21 00 30 */ addi r9, r1, 0x30
/* 80230504 0022D464 39 41 00 28 */ addi r10, r1, 0x28
/* 80230508 0022D468 38 80 00 05 */ li r4, 5
/* 8023050C 0022D46C 4B E4 CD B9 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 80230510 0022D470 80 9F 00 64 */ lwz r4, 0x64(r31)
/* 80230514 0022D474 38 61 00 10 */ addi r3, r1, 0x10
/* 80230518 0022D478 38 A1 00 80 */ addi r5, r1, 0x80
/* 8023051C 0022D47C 38 C0 FF FF */ li r6, -1
/* 80230520 0022D480 80 84 00 10 */ lwz r4, 0x10(r4)
/* 80230524 0022D484 38 84 00 3C */ addi r4, r4, 0x3c
/* 80230528 0022D488 48 0B 4C 45 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDatai
/* 8023052C 0022D48C C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80230530 0022D490 C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 80230534 0022D494 80 81 00 14 */ lwz r4, 0x14(r1)
/* 80230538 0022D498 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8023053C 0022D49C 40 81 00 5C */ ble lbl_80230598
/* 80230540 0022D4A0 C0 02 B6 6C */ lfs f0, lbl_805AD38C@sda21(r2)
/* 80230544 0022D4A4 38 00 00 00 */ li r0, 0
/* 80230548 0022D4A8 38 C0 FF FF */ li r6, -1
/* 8023054C 0022D4AC 38 60 00 01 */ li r3, 1
/* 80230550 0022D4B0 90 81 00 58 */ stw r4, 0x58(r1)
/* 80230554 0022D4B4 38 81 00 58 */ addi r4, r1, 0x58
/* 80230558 0022D4B8 38 A0 00 00 */ li r5, 0
/* 8023055C 0022D4BC 90 C1 00 5C */ stw r6, 0x5c(r1)
/* 80230560 0022D4C0 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 80230564 0022D4C4 98 61 00 64 */ stb r3, 0x64(r1)
/* 80230568 0022D4C8 90 01 00 68 */ stw r0, 0x68(r1)
/* 8023056C 0022D4CC 90 01 00 6C */ stw r0, 0x6c(r1)
/* 80230570 0022D4D0 98 01 00 70 */ stb r0, 0x70(r1)
/* 80230574 0022D4D4 90 01 00 74 */ stw r0, 0x74(r1)
/* 80230578 0022D4D8 90 01 00 78 */ stw r0, 0x78(r1)
/* 8023057C 0022D4DC 90 01 00 7C */ stw r0, 0x7c(r1)
/* 80230580 0022D4E0 80 7F 00 64 */ lwz r3, 0x64(r31)
/* 80230584 0022D4E4 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80230588 0022D4E8 4B DF C7 F5 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 8023058C 0022D4EC 80 7F 00 64 */ lwz r3, 0x64(r31)
/* 80230590 0022D4F0 38 80 00 01 */ li r4, 1
/* 80230594 0022D4F4 4B EE 4F CD */ bl EnableLooping__10CModelDataFb
lbl_80230598:
/* 80230598 0022D4F8 34 A1 00 84 */ addic. r5, r1, 0x84
/* 8023059C 0022D4FC 41 82 00 58 */ beq lbl_802305F4
/* 802305A0 0022D500 80 C5 00 00 */ lwz r6, 0(r5)
/* 802305A4 0022D504 38 60 00 00 */ li r3, 0
/* 802305A8 0022D508 2C 06 00 00 */ cmpwi r6, 0
/* 802305AC 0022D50C 40 81 00 40 */ ble lbl_802305EC
/* 802305B0 0022D510 2C 06 00 08 */ cmpwi r6, 8
/* 802305B4 0022D514 38 86 FF F8 */ addi r4, r6, -8
/* 802305B8 0022D518 40 81 00 20 */ ble lbl_802305D8
/* 802305BC 0022D51C 38 04 00 07 */ addi r0, r4, 7
/* 802305C0 0022D520 54 00 E8 FE */ srwi r0, r0, 3
/* 802305C4 0022D524 7C 09 03 A6 */ mtctr r0
/* 802305C8 0022D528 2C 04 00 00 */ cmpwi r4, 0
/* 802305CC 0022D52C 40 81 00 0C */ ble lbl_802305D8
lbl_802305D0:
/* 802305D0 0022D530 38 63 00 08 */ addi r3, r3, 8
/* 802305D4 0022D534 42 00 FF FC */ bdnz lbl_802305D0
lbl_802305D8:
/* 802305D8 0022D538 7C 03 30 50 */ subf r0, r3, r6
/* 802305DC 0022D53C 7C 09 03 A6 */ mtctr r0
/* 802305E0 0022D540 7C 03 30 00 */ cmpw r3, r6
/* 802305E4 0022D544 40 80 00 08 */ bge lbl_802305EC
lbl_802305E8:
/* 802305E8 0022D548 42 00 00 00 */ bdnz lbl_802305E8
lbl_802305EC:
/* 802305EC 0022D54C 38 00 00 00 */ li r0, 0
/* 802305F0 0022D550 90 05 00 00 */ stw r0, 0(r5)
lbl_802305F4:
/* 802305F4 0022D554 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 802305F8 0022D558 83 E1 00 CC */ lwz r31, 0xcc(r1)
/* 802305FC 0022D55C 7C 08 03 A6 */ mtlr r0
/* 80230600 0022D560 38 21 00 D0 */ addi r1, r1, 0xd0
/* 80230604 0022D564 4E 80 00 20 */ blr
.global sub_80230608
sub_80230608:
/* 80230608 0022D568 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 8023060C 0022D56C 7C 08 02 A6 */ mflr r0
/* 80230610 0022D570 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 80230614 0022D574 DB E1 00 E0 */ stfd f31, 0xe0(r1)
/* 80230618 0022D578 F3 E1 00 E8 */ psq_st f31, 232(r1), 0, qr0
/* 8023061C 0022D57C DB C1 00 D0 */ stfd f30, 0xd0(r1)
/* 80230620 0022D580 F3 C1 00 D8 */ psq_st f30, 216(r1), 0, qr0
/* 80230624 0022D584 DB A1 00 C0 */ stfd f29, 0xc0(r1)
/* 80230628 0022D588 F3 A1 00 C8 */ psq_st f29, 200(r1), 0, qr0
/* 8023062C 0022D58C DB 81 00 B0 */ stfd f28, 0xb0(r1)
/* 80230630 0022D590 F3 81 00 B8 */ psq_st f28, 184(r1), 0, qr0
/* 80230634 0022D594 DB 61 00 A0 */ stfd f27, 0xa0(r1)
/* 80230638 0022D598 F3 61 00 A8 */ psq_st f27, 168(r1), 0, qr0
/* 8023063C 0022D59C DB 41 00 90 */ stfd f26, 0x90(r1)
/* 80230640 0022D5A0 F3 41 00 98 */ psq_st f26, 152(r1), 0, qr0
/* 80230644 0022D5A4 DB 21 00 80 */ stfd f25, 0x80(r1)
/* 80230648 0022D5A8 F3 21 00 88 */ psq_st f25, 136(r1), 0, qr0
/* 8023064C 0022D5AC DB 01 00 70 */ stfd f24, 0x70(r1)
/* 80230650 0022D5B0 F3 01 00 78 */ psq_st f24, 120(r1), 0, qr0
/* 80230654 0022D5B4 DA E1 00 60 */ stfd f23, 0x60(r1)
/* 80230658 0022D5B8 F2 E1 00 68 */ psq_st f23, 104(r1), 0, qr0
/* 8023065C 0022D5BC DA C1 00 50 */ stfd f22, 0x50(r1)
/* 80230660 0022D5C0 F2 C1 00 58 */ psq_st f22, 88(r1), 0, qr0
/* 80230664 0022D5C4 DA A1 00 40 */ stfd f21, 0x40(r1)
/* 80230668 0022D5C8 F2 A1 00 48 */ psq_st f21, 72(r1), 0, qr0
/* 8023066C 0022D5CC DA 81 00 30 */ stfd f20, 0x30(r1)
/* 80230670 0022D5D0 F2 81 00 38 */ psq_st f20, 56(r1), 0, qr0
/* 80230674 0022D5D4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80230678 0022D5D8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8023067C 0022D5DC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80230680 0022D5E0 7C BD 2B 78 */ mr r29, r5
/* 80230684 0022D5E4 C0 42 B6 90 */ lfs f2, lbl_805AD3B0@sda21(r2)
/* 80230688 0022D5E8 C0 65 00 08 */ lfs f3, 8(r5)
/* 8023068C 0022D5EC 7C 68 1B 78 */ mr r8, r3
/* 80230690 0022D5F0 C0 25 00 0C */ lfs f1, 0xc(r5)
/* 80230694 0022D5F4 7C DE 33 78 */ mr r30, r6
/* 80230698 0022D5F8 C0 0D 95 F0 */ lfs f0, lbl_805A81B0@sda21(r13)
/* 8023069C 0022D5FC FF 80 18 90 */ fmr f28, f3
/* 802306A0 0022D600 EC 21 18 28 */ fsubs f1, f1, f3
/* 802306A4 0022D604 C3 65 00 00 */ lfs f27, 0(r5)
/* 802306A8 0022D608 C3 42 B6 8C */ lfs f26, lbl_805AD3AC@sda21(r2)
/* 802306AC 0022D60C 7C FF 3B 78 */ mr r31, r7
/* 802306B0 0022D610 EC 22 00 72 */ fmuls f1, f2, f1
/* 802306B4 0022D614 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 802306B8 0022D618 D0 21 00 08 */ stfs f1, 8(r1)
/* 802306BC 0022D61C 40 80 00 0C */ bge lbl_802306C8
/* 802306C0 0022D620 38 A1 00 08 */ addi r5, r1, 8
/* 802306C4 0022D624 48 00 00 08 */ b lbl_802306CC
lbl_802306C8:
/* 802306C8 0022D628 38 AD 95 F0 */ addi r5, r13, lbl_805A81B0@sda21
lbl_802306CC:
/* 802306CC 0022D62C C0 48 00 08 */ lfs f2, 8(r8)
/* 802306D0 0022D630 38 61 00 0C */ addi r3, r1, 0xc
/* 802306D4 0022D634 C0 04 00 08 */ lfs f0, 8(r4)
/* 802306D8 0022D638 C0 68 00 00 */ lfs f3, 0(r8)
/* 802306DC 0022D63C C0 24 00 00 */ lfs f1, 0(r4)
/* 802306E0 0022D640 EF C2 00 28 */ fsubs f30, f2, f0
/* 802306E4 0022D644 C0 48 00 04 */ lfs f2, 4(r8)
/* 802306E8 0022D648 C0 04 00 04 */ lfs f0, 4(r4)
/* 802306EC 0022D64C EC 23 08 28 */ fsubs f1, f3, f1
/* 802306F0 0022D650 C3 25 00 00 */ lfs f25, 0(r5)
/* 802306F4 0022D654 EC 42 00 28 */ fsubs f2, f2, f0
/* 802306F8 0022D658 48 0E 3B 09 */ bl __ct__9CVector2fFff
/* 802306FC 0022D65C C0 21 00 0C */ lfs f1, 0xc(r1)
/* 80230700 0022D660 38 61 00 14 */ addi r3, r1, 0x14
/* 80230704 0022D664 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80230708 0022D668 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8023070C 0022D66C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80230710 0022D670 48 0E 39 E5 */ bl Magnitude__9CVector2fCFv
/* 80230714 0022D674 C0 42 B6 94 */ lfs f2, lbl_805AD3B4@sda21(r2)
/* 80230718 0022D678 FF E0 08 90 */ fmr f31, f1
/* 8023071C 0022D67C C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2)
/* 80230720 0022D680 C0 3D 00 00 */ lfs f1, 0(r29)
/* 80230724 0022D684 EC 02 00 32 */ fmuls f0, f2, f0
/* 80230728 0022D688 C0 5D 00 04 */ lfs f2, 4(r29)
/* 8023072C 0022D68C EF 01 00 72 */ fmuls f24, f1, f1
/* 80230730 0022D690 C2 DD 00 08 */ lfs f22, 8(r29)
/* 80230734 0022D694 EE E2 00 B2 */ fmuls f23, f2, f2
/* 80230738 0022D698 C2 A2 B6 98 */ lfs f21, lbl_805AD3B8@sda21(r2)
/* 8023073C 0022D69C EC 00 07 F2 */ fmuls f0, f0, f31
/* 80230740 0022D6A0 EF BF 00 32 */ fmuls f29, f31, f0
/* 80230744 0022D6A4 48 00 00 8C */ b lbl_802307D0
lbl_80230748:
/* 80230748 0022D6A8 FC 20 B0 90 */ fmr f1, f22
/* 8023074C 0022D6AC 48 0E 45 F9 */ bl FastCosR__5CMathFf
/* 80230750 0022D6B0 FE 80 08 90 */ fmr f20, f1
/* 80230754 0022D6B4 FC 20 B0 90 */ fmr f1, f22
/* 80230758 0022D6B8 48 0E 46 99 */ bl FastSinR__5CMathFf
/* 8023075C 0022D6BC EC 14 05 32 */ fmuls f0, f20, f20
/* 80230760 0022D6C0 EC 34 00 72 */ fmuls f1, f20, f1
/* 80230764 0022D6C4 EC 1E 00 32 */ fmuls f0, f30, f0
/* 80230768 0022D6C8 EC 1F 00 78 */ fmsubs f0, f31, f1, f0
/* 8023076C 0022D6CC FC 00 A8 40 */ fcmpo cr0, f0, f21
/* 80230770 0022D6D0 40 81 00 5C */ ble lbl_802307CC
/* 80230774 0022D6D4 EC 3D 00 24 */ fdivs f1, f29, f0
/* 80230778 0022D6D8 FC 01 C0 40 */ fcmpo cr0, f1, f24
/* 8023077C 0022D6DC 4C 41 13 82 */ cror 2, 1, 2
/* 80230780 0022D6E0 40 82 00 20 */ bne lbl_802307A0
/* 80230784 0022D6E4 FC 01 B8 40 */ fcmpo cr0, f1, f23
/* 80230788 0022D6E8 4C 40 13 82 */ cror 2, 0, 2
/* 8023078C 0022D6EC 40 82 00 14 */ bne lbl_802307A0
/* 80230790 0022D6F0 FF 80 B0 90 */ fmr f28, f22
/* 80230794 0022D6F4 48 0E 4D 6D */ bl SqrtF__5CMathFf
/* 80230798 0022D6F8 FF 60 08 90 */ fmr f27, f1
/* 8023079C 0022D6FC 48 00 00 44 */ b lbl_802307E0
lbl_802307A0:
/* 802307A0 0022D700 FC 01 B8 40 */ fcmpo cr0, f1, f23
/* 802307A4 0022D704 40 81 00 0C */ ble lbl_802307B0
/* 802307A8 0022D708 EE 81 B8 28 */ fsubs f20, f1, f23
/* 802307AC 0022D70C 48 00 00 08 */ b lbl_802307B4
lbl_802307B0:
/* 802307B0 0022D710 EE 98 08 28 */ fsubs f20, f24, f1
lbl_802307B4:
/* 802307B4 0022D714 FC 14 D0 40 */ fcmpo cr0, f20, f26
/* 802307B8 0022D718 40 80 00 14 */ bge lbl_802307CC
/* 802307BC 0022D71C FF 80 B0 90 */ fmr f28, f22
/* 802307C0 0022D720 48 0E 4D 41 */ bl SqrtF__5CMathFf
/* 802307C4 0022D724 FF 40 A0 90 */ fmr f26, f20
/* 802307C8 0022D728 FF 60 08 90 */ fmr f27, f1
lbl_802307CC:
/* 802307CC 0022D72C EE D6 C8 2A */ fadds f22, f22, f25
lbl_802307D0:
/* 802307D0 0022D730 C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 802307D4 0022D734 FC 16 00 40 */ fcmpo cr0, f22, f0
/* 802307D8 0022D738 4C 40 13 82 */ cror 2, 0, 2
/* 802307DC 0022D73C 41 82 FF 6C */ beq lbl_80230748
lbl_802307E0:
/* 802307E0 0022D740 D3 9E 00 00 */ stfs f28, 0(r30)
/* 802307E4 0022D744 D3 7F 00 00 */ stfs f27, 0(r31)
/* 802307E8 0022D748 E3 E1 00 E8 */ psq_l f31, 232(r1), 0, qr0
/* 802307EC 0022D74C CB E1 00 E0 */ lfd f31, 0xe0(r1)
/* 802307F0 0022D750 E3 C1 00 D8 */ psq_l f30, 216(r1), 0, qr0
/* 802307F4 0022D754 CB C1 00 D0 */ lfd f30, 0xd0(r1)
/* 802307F8 0022D758 E3 A1 00 C8 */ psq_l f29, 200(r1), 0, qr0
/* 802307FC 0022D75C CB A1 00 C0 */ lfd f29, 0xc0(r1)
/* 80230800 0022D760 E3 81 00 B8 */ psq_l f28, 184(r1), 0, qr0
/* 80230804 0022D764 CB 81 00 B0 */ lfd f28, 0xb0(r1)
/* 80230808 0022D768 E3 61 00 A8 */ psq_l f27, 168(r1), 0, qr0
/* 8023080C 0022D76C CB 61 00 A0 */ lfd f27, 0xa0(r1)
/* 80230810 0022D770 E3 41 00 98 */ psq_l f26, 152(r1), 0, qr0
/* 80230814 0022D774 CB 41 00 90 */ lfd f26, 0x90(r1)
/* 80230818 0022D778 E3 21 00 88 */ psq_l f25, 136(r1), 0, qr0
/* 8023081C 0022D77C CB 21 00 80 */ lfd f25, 0x80(r1)
/* 80230820 0022D780 E3 01 00 78 */ psq_l f24, 120(r1), 0, qr0
/* 80230824 0022D784 CB 01 00 70 */ lfd f24, 0x70(r1)
/* 80230828 0022D788 E2 E1 00 68 */ psq_l f23, 104(r1), 0, qr0
/* 8023082C 0022D78C CA E1 00 60 */ lfd f23, 0x60(r1)
/* 80230830 0022D790 E2 C1 00 58 */ psq_l f22, 88(r1), 0, qr0
/* 80230834 0022D794 CA C1 00 50 */ lfd f22, 0x50(r1)
/* 80230838 0022D798 E2 A1 00 48 */ psq_l f21, 72(r1), 0, qr0
/* 8023083C 0022D79C CA A1 00 40 */ lfd f21, 0x40(r1)
/* 80230840 0022D7A0 E2 81 00 38 */ psq_l f20, 56(r1), 0, qr0
/* 80230844 0022D7A4 CA 81 00 30 */ lfd f20, 0x30(r1)
/* 80230848 0022D7A8 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8023084C 0022D7AC 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80230850 0022D7B0 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 80230854 0022D7B4 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80230858 0022D7B8 7C 08 03 A6 */ mtlr r0
/* 8023085C 0022D7BC 38 21 00 F0 */ addi r1, r1, 0xf0
/* 80230860 0022D7C0 4E 80 00 20 */ blr
.global sub_80230864
sub_80230864:
/* 80230864 0022D7C4 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80230868 0022D7C8 7C 08 02 A6 */ mflr r0
/* 8023086C 0022D7CC 90 01 00 54 */ stw r0, 0x54(r1)
/* 80230870 0022D7D0 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 80230874 0022D7D4 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0
/* 80230878 0022D7D8 DB C1 00 30 */ stfd f30, 0x30(r1)
/* 8023087C 0022D7DC F3 C1 00 38 */ psq_st f30, 56(r1), 0, qr0
/* 80230880 0022D7E0 DB A1 00 20 */ stfd f29, 0x20(r1)
/* 80230884 0022D7E4 F3 A1 00 28 */ psq_st f29, 40(r1), 0, qr0
/* 80230888 0022D7E8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8023088C 0022D7EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80230890 0022D7F0 7C 9F 23 78 */ mr r31, r4
/* 80230894 0022D7F4 7C 7E 1B 78 */ mr r30, r3
/* 80230898 0022D7F8 80 84 08 4C */ lwz r4, 0x84c(r4)
/* 8023089C 0022D7FC 7F E5 FB 78 */ mr r5, r31
/* 802308A0 0022D800 38 61 00 08 */ addi r3, r1, 8
/* 802308A4 0022D804 C0 22 B6 6C */ lfs f1, lbl_805AD38C@sda21(r2)
/* 802308A8 0022D808 81 84 00 00 */ lwz r12, 0(r4)
/* 802308AC 0022D80C 81 8C 00 4C */ lwz r12, 0x4c(r12)
/* 802308B0 0022D810 7D 89 03 A6 */ mtctr r12
/* 802308B4 0022D814 4E 80 04 21 */ bctrl
/* 802308B8 0022D818 80 7F 08 4C */ lwz r3, 0x84c(r31)
/* 802308BC 0022D81C C3 E1 00 08 */ lfs f31, 8(r1)
/* 802308C0 0022D820 80 03 02 F8 */ lwz r0, 0x2f8(r3)
/* 802308C4 0022D824 C3 C1 00 0C */ lfs f30, 0xc(r1)
/* 802308C8 0022D828 2C 00 00 00 */ cmpwi r0, 0
/* 802308CC 0022D82C C3 A1 00 10 */ lfs f29, 0x10(r1)
/* 802308D0 0022D830 40 82 00 20 */ bne lbl_802308F0
/* 802308D4 0022D834 48 05 45 0D */ bl GetEyeHeight__7CPlayerCFv
/* 802308D8 0022D838 C0 42 B6 94 */ lfs f2, lbl_805AD3B4@sda21(r2)
/* 802308DC 0022D83C C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 802308E0 0022D840 EC 22 00 72 */ fmuls f1, f2, f1
/* 802308E4 0022D844 EF FF 00 28 */ fsubs f31, f31, f0
/* 802308E8 0022D848 EF DE 00 28 */ fsubs f30, f30, f0
/* 802308EC 0022D84C EF BD 08 28 */ fsubs f29, f29, f1
lbl_802308F0:
/* 802308F0 0022D850 D3 FE 00 00 */ stfs f31, 0(r30)
/* 802308F4 0022D854 D3 DE 00 04 */ stfs f30, 4(r30)
/* 802308F8 0022D858 D3 BE 00 08 */ stfs f29, 8(r30)
/* 802308FC 0022D85C E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 80230900 0022D860 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80230904 0022D864 E3 C1 00 38 */ psq_l f30, 56(r1), 0, qr0
/* 80230908 0022D868 CB C1 00 30 */ lfd f30, 0x30(r1)
/* 8023090C 0022D86C E3 A1 00 28 */ psq_l f29, 40(r1), 0, qr0
/* 80230910 0022D870 CB A1 00 20 */ lfd f29, 0x20(r1)
/* 80230914 0022D874 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80230918 0022D878 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8023091C 0022D87C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80230920 0022D880 7C 08 03 A6 */ mtlr r0
/* 80230924 0022D884 38 21 00 50 */ addi r1, r1, 0x50
/* 80230928 0022D888 4E 80 00 20 */ blr
.global GetCollisionPrimitive__16CGrenadeLauncherCFv
GetCollisionPrimitive__16CGrenadeLauncherCFv:
/* 8023092C 0022D88C 38 63 03 28 */ addi r3, r3, 0x328
/* 80230930 0022D890 4E 80 00 20 */ blr
.global GetTouchBounds__16CGrenadeLauncherCFv
GetTouchBounds__16CGrenadeLauncherCFv:
/* 80230934 0022D894 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80230938 0022D898 7C 08 02 A6 */ mflr r0
/* 8023093C 0022D89C 7C 85 23 78 */ mr r5, r4
/* 80230940 0022D8A0 90 01 00 34 */ stw r0, 0x34(r1)
/* 80230944 0022D8A4 38 85 03 28 */ addi r4, r5, 0x328
/* 80230948 0022D8A8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8023094C 0022D8AC 7C 7F 1B 78 */ mr r31, r3
/* 80230950 0022D8B0 38 61 00 08 */ addi r3, r1, 8
/* 80230954 0022D8B4 81 85 03 28 */ lwz r12, 0x328(r5)
/* 80230958 0022D8B8 38 A5 00 34 */ addi r5, r5, 0x34
/* 8023095C 0022D8BC 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80230960 0022D8C0 7D 89 03 A6 */ mtctr r12
/* 80230964 0022D8C4 4E 80 04 21 */ bctrl
/* 80230968 0022D8C8 38 00 00 01 */ li r0, 1
/* 8023096C 0022D8CC 28 1F 00 00 */ cmplwi r31, 0
/* 80230970 0022D8D0 98 1F 00 18 */ stb r0, 0x18(r31)
/* 80230974 0022D8D4 41 82 00 34 */ beq lbl_802309A8
/* 80230978 0022D8D8 C0 01 00 08 */ lfs f0, 8(r1)
/* 8023097C 0022D8DC D0 1F 00 00 */ stfs f0, 0(r31)
/* 80230980 0022D8E0 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 80230984 0022D8E4 D0 1F 00 04 */ stfs f0, 4(r31)
/* 80230988 0022D8E8 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8023098C 0022D8EC D0 1F 00 08 */ stfs f0, 8(r31)
/* 80230990 0022D8F0 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 80230994 0022D8F4 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 80230998 0022D8F8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8023099C 0022D8FC D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 802309A0 0022D900 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 802309A4 0022D904 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_802309A8:
/* 802309A8 0022D908 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802309AC 0022D90C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802309B0 0022D910 7C 08 03 A6 */ mtlr r0
/* 802309B4 0022D914 38 21 00 30 */ addi r1, r1, 0x30
/* 802309B8 0022D918 4E 80 00 20 */ blr
.global Touch__16CGrenadeLauncherFR6CActorR13CStateManager
Touch__16CGrenadeLauncherFR6CActorR13CStateManager:
/* 802309BC 0022D91C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802309C0 0022D920 7C 08 02 A6 */ mflr r0
/* 802309C4 0022D924 90 01 00 44 */ stw r0, 0x44(r1)
/* 802309C8 0022D928 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802309CC 0022D92C 93 C1 00 38 */ stw r30, 0x38(r1)
/* 802309D0 0022D930 7C BE 2B 78 */ mr r30, r5
/* 802309D4 0022D934 93 A1 00 34 */ stw r29, 0x34(r1)
/* 802309D8 0022D938 7C 7D 1B 78 */ mr r29, r3
/* 802309DC 0022D93C 38 61 00 14 */ addi r3, r1, 0x14
/* 802309E0 0022D940 4B E7 CD 99 */ bl "__ct__29TCastToPtr<15CGameProjectile>FR7CEntity"
/* 802309E4 0022D944 83 E3 00 04 */ lwz r31, 4(r3)
/* 802309E8 0022D948 28 1F 00 00 */ cmplwi r31, 0
/* 802309EC 0022D94C 41 82 00 B0 */ beq lbl_80230A9C
/* 802309F0 0022D950 80 7E 08 4C */ lwz r3, 0x84c(r30)
/* 802309F4 0022D954 A0 9F 00 EC */ lhz r4, 0xec(r31)
/* 802309F8 0022D958 A0 03 00 08 */ lhz r0, 8(r3)
/* 802309FC 0022D95C 7C 04 00 40 */ cmplw r4, r0
/* 80230A00 0022D960 40 82 00 9C */ bne lbl_80230A9C
/* 80230A04 0022D964 7F A3 EB 78 */ mr r3, r29
/* 80230A08 0022D968 81 9D 00 00 */ lwz r12, 0(r29)
/* 80230A0C 0022D96C 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 80230A10 0022D970 7D 89 03 A6 */ mtctr r12
/* 80230A14 0022D974 4E 80 04 21 */ bctrl
/* 80230A18 0022D978 80 9F 00 F0 */ lwz r4, 0xf0(r31)
/* 80230A1C 0022D97C 38 E0 00 00 */ li r7, 0
/* 80230A20 0022D980 88 01 00 20 */ lbz r0, 0x20(r1)
/* 80230A24 0022D984 50 E0 3E 30 */ rlwimi r0, r7, 7, 0x18, 0x18
/* 80230A28 0022D988 90 81 00 1C */ stw r4, 0x1c(r1)
/* 80230A2C 0022D98C 38 81 00 1C */ addi r4, r1, 0x1c
/* 80230A30 0022D990 54 06 06 3E */ clrlwi r6, r0, 0x18
/* 80230A34 0022D994 38 A0 00 00 */ li r5, 0
/* 80230A38 0022D998 50 E6 36 72 */ rlwimi r6, r7, 6, 0x19, 0x19
/* 80230A3C 0022D99C 98 01 00 20 */ stb r0, 0x20(r1)
/* 80230A40 0022D9A0 54 C0 06 3E */ clrlwi r0, r6, 0x18
/* 80230A44 0022D9A4 98 C1 00 20 */ stb r6, 0x20(r1)
/* 80230A48 0022D9A8 50 E0 2E B4 */ rlwimi r0, r7, 5, 0x1a, 0x1a
/* 80230A4C 0022D9AC 98 01 00 20 */ stb r0, 0x20(r1)
/* 80230A50 0022D9B0 4B ED 1C B9 */ bl WeaponHurts__20CDamageVulnerabilityCFRC11CWeaponModei
/* 80230A54 0022D9B4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80230A58 0022D9B8 41 82 00 44 */ beq lbl_80230A9C
/* 80230A5C 0022D9BC C0 02 B6 94 */ lfs f0, lbl_805AD3B4@sda21(r2)
/* 80230A60 0022D9C0 7F C3 F3 78 */ mr r3, r30
/* 80230A64 0022D9C4 38 81 00 10 */ addi r4, r1, 0x10
/* 80230A68 0022D9C8 D0 1D 03 48 */ stfs f0, 0x348(r29)
/* 80230A6C 0022D9CC A0 1D 02 CC */ lhz r0, 0x2cc(r29)
/* 80230A70 0022D9D0 B0 01 00 10 */ sth r0, 0x10(r1)
/* 80230A74 0022D9D4 4B E1 BB 01 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80230A78 0022D9D8 7C 64 1B 79 */ or. r4, r3, r3
/* 80230A7C 0022D9DC 41 82 00 20 */ beq lbl_80230A9C
/* 80230A80 0022D9E0 A0 1D 00 08 */ lhz r0, 8(r29)
/* 80230A84 0022D9E4 7F C3 F3 78 */ mr r3, r30
/* 80230A88 0022D9E8 38 A1 00 0C */ addi r5, r1, 0xc
/* 80230A8C 0022D9EC 38 C0 00 1E */ li r6, 0x1e
/* 80230A90 0022D9F0 B0 01 00 08 */ sth r0, 8(r1)
/* 80230A94 0022D9F4 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80230A98 0022D9F8 4B E1 34 39 */ bl SendScriptMsg__13CStateManagerFP7CEntity9TUniqueId20EScriptObjectMessage
lbl_80230A9C:
/* 80230A9C 0022D9FC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80230AA0 0022DA00 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80230AA4 0022DA04 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 80230AA8 0022DA08 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 80230AAC 0022DA0C 7C 08 03 A6 */ mtlr r0
/* 80230AB0 0022DA10 38 21 00 40 */ addi r1, r1, 0x40
/* 80230AB4 0022DA14 4E 80 00 20 */ blr
.global AddToRenderer__16CGrenadeLauncherCFRC14CFrustumPlanesRC13CStateManager
AddToRenderer__16CGrenadeLauncherCFRC14CFrustumPlanesRC13CStateManager:
/* 80230AB8 0022DA18 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80230ABC 0022DA1C 7C 08 02 A6 */ mflr r0
/* 80230AC0 0022DA20 90 01 00 14 */ stw r0, 0x14(r1)
/* 80230AC4 0022DA24 4B E2 40 75 */ bl AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
/* 80230AC8 0022DA28 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80230ACC 0022DA2C 7C 08 03 A6 */ mtlr r0
/* 80230AD0 0022DA30 38 21 00 10 */ addi r1, r1, 0x10
/* 80230AD4 0022DA34 4E 80 00 20 */ blr
.global PreRender__16CGrenadeLauncherFR13CStateManagerRC14CFrustumPlanes
PreRender__16CGrenadeLauncherFR13CStateManagerRC14CFrustumPlanes:
/* 80230AD8 0022DA38 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80230ADC 0022DA3C 7C 08 02 A6 */ mflr r0
/* 80230AE0 0022DA40 90 01 00 24 */ stw r0, 0x24(r1)
/* 80230AE4 0022DA44 88 03 03 F7 */ lbz r0, 0x3f7(r3)
/* 80230AE8 0022DA48 28 00 00 FF */ cmplwi r0, 0xff
/* 80230AEC 0022DA4C 40 82 00 48 */ bne lbl_80230B34
/* 80230AF0 0022DA50 88 03 03 F4 */ lbz r0, 0x3f4(r3)
/* 80230AF4 0022DA54 39 00 00 FF */ li r8, 0xff
/* 80230AF8 0022DA58 89 43 03 F5 */ lbz r10, 0x3f5(r3)
/* 80230AFC 0022DA5C 38 E0 00 02 */ li r7, 2
/* 80230B00 0022DA60 89 23 03 F6 */ lbz r9, 0x3f6(r3)
/* 80230B04 0022DA64 38 C0 00 00 */ li r6, 0
/* 80230B08 0022DA68 98 01 00 08 */ stb r0, 8(r1)
/* 80230B0C 0022DA6C 38 00 00 03 */ li r0, 3
/* 80230B10 0022DA70 98 E3 00 B4 */ stb r7, 0xb4(r3)
/* 80230B14 0022DA74 98 C3 00 B5 */ stb r6, 0xb5(r3)
/* 80230B18 0022DA78 99 41 00 09 */ stb r10, 9(r1)
/* 80230B1C 0022DA7C 99 21 00 0A */ stb r9, 0xa(r1)
/* 80230B20 0022DA80 99 01 00 0B */ stb r8, 0xb(r1)
/* 80230B24 0022DA84 B0 03 00 B6 */ sth r0, 0xb6(r3)
/* 80230B28 0022DA88 80 01 00 08 */ lwz r0, 8(r1)
/* 80230B2C 0022DA8C 90 03 00 B8 */ stw r0, 0xb8(r3)
/* 80230B30 0022DA90 48 00 00 3C */ b lbl_80230B6C
lbl_80230B34:
/* 80230B34 0022DA94 80 C3 03 F4 */ lwz r6, 0x3f4(r3)
/* 80230B38 0022DA98 39 20 00 05 */ li r9, 5
/* 80230B3C 0022DA9C 38 E0 00 03 */ li r7, 3
/* 80230B40 0022DAA0 39 00 00 00 */ li r8, 0
/* 80230B44 0022DAA4 99 23 00 B4 */ stb r9, 0xb4(r3)
/* 80230B48 0022DAA8 54 E0 00 3A */ rlwinm r0, r7, 0, 0, 0x1d
/* 80230B4C 0022DAAC 60 00 00 03 */ ori r0, r0, 3
/* 80230B50 0022DAB0 99 03 00 B5 */ stb r8, 0xb5(r3)
/* 80230B54 0022DAB4 B0 03 00 B6 */ sth r0, 0xb6(r3)
/* 80230B58 0022DAB8 99 21 00 0C */ stb r9, 0xc(r1)
/* 80230B5C 0022DABC 99 01 00 0D */ stb r8, 0xd(r1)
/* 80230B60 0022DAC0 B0 E1 00 0E */ sth r7, 0xe(r1)
/* 80230B64 0022DAC4 90 C1 00 10 */ stw r6, 0x10(r1)
/* 80230B68 0022DAC8 90 C3 00 B8 */ stw r6, 0xb8(r3)
lbl_80230B6C:
/* 80230B6C 0022DACC 4B E2 41 75 */ bl PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
/* 80230B70 0022DAD0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80230B74 0022DAD4 7C 08 03 A6 */ mtlr r0
/* 80230B78 0022DAD8 38 21 00 20 */ addi r1, r1, 0x20
/* 80230B7C 0022DADC 4E 80 00 20 */ blr
.global Render__16CGrenadeLauncherCFRC13CStateManager
Render__16CGrenadeLauncherCFRC13CStateManager:
/* 80230B80 0022DAE0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80230B84 0022DAE4 7C 08 02 A6 */ mflr r0
/* 80230B88 0022DAE8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80230B8C 0022DAEC 88 03 03 FD */ lbz r0, 0x3fd(r3)
/* 80230B90 0022DAF0 28 00 00 00 */ cmplwi r0, 0
/* 80230B94 0022DAF4 41 82 00 08 */ beq lbl_80230B9C
/* 80230B98 0022DAF8 4B EE 99 51 */ bl Render__13CPhysicsActorCFRC13CStateManager
lbl_80230B9C:
/* 80230B9C 0022DAFC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80230BA0 0022DB00 7C 08 03 A6 */ mtlr r0
/* 80230BA4 0022DB04 38 21 00 10 */ addi r1, r1, 0x10
/* 80230BA8 0022DB08 4E 80 00 20 */ blr
.global Accept__16CGrenadeLauncherFR8IVisitor
Accept__16CGrenadeLauncherFR8IVisitor:
/* 80230BAC 0022DB0C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80230BB0 0022DB10 7C 08 02 A6 */ mflr r0
/* 80230BB4 0022DB14 90 01 00 14 */ stw r0, 0x14(r1)
/* 80230BB8 0022DB18 7C 60 1B 78 */ mr r0, r3
/* 80230BBC 0022DB1C 7C 83 23 78 */ mr r3, r4
/* 80230BC0 0022DB20 81 84 00 00 */ lwz r12, 0(r4)
/* 80230BC4 0022DB24 7C 04 03 78 */ mr r4, r0
/* 80230BC8 0022DB28 81 8C 00 50 */ lwz r12, 0x50(r12)
/* 80230BCC 0022DB2C 7D 89 03 A6 */ mtctr r12
/* 80230BD0 0022DB30 4E 80 04 21 */ bctrl
/* 80230BD4 0022DB34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80230BD8 0022DB38 7C 08 03 A6 */ mtlr r0
/* 80230BDC 0022DB3C 38 21 00 10 */ addi r1, r1, 0x10
/* 80230BE0 0022DB40 4E 80 00 20 */ blr
.global AcceptScriptMsg__16CGrenadeLauncherF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__16CGrenadeLauncherF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 80230BE4 0022DB44 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80230BE8 0022DB48 7C 08 02 A6 */ mflr r0
/* 80230BEC 0022DB4C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80230BF0 0022DB50 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80230BF4 0022DB54 7C 7F 1B 78 */ mr r31, r3
/* 80230BF8 0022DB58 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80230BFC 0022DB5C 7C BE 2B 78 */ mr r30, r5
/* 80230C00 0022DB60 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80230C04 0022DB64 7C 9D 23 78 */ mr r29, r4
/* 80230C08 0022DB68 A0 05 00 00 */ lhz r0, 0(r5)
/* 80230C0C 0022DB6C 38 A1 00 08 */ addi r5, r1, 8
/* 80230C10 0022DB70 B0 01 00 08 */ sth r0, 8(r1)
/* 80230C14 0022DB74 4B E2 2A 01 */ bl AcceptScriptMsg__6CActorF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 80230C18 0022DB78 38 1D FF F2 */ addi r0, r29, -14
/* 80230C1C 0022DB7C 28 00 00 1B */ cmplwi r0, 0x1b
/* 80230C20 0022DB80 41 81 00 B8 */ bgt lbl_80230CD8
/* 80230C24 0022DB84 3C 60 80 3E */ lis r3, lbl_803E7FDC@ha
/* 80230C28 0022DB88 54 00 10 3A */ slwi r0, r0, 2
/* 80230C2C 0022DB8C 38 63 7F DC */ addi r3, r3, lbl_803E7FDC@l
/* 80230C30 0022DB90 7C 03 00 2E */ lwzx r0, r3, r0
/* 80230C34 0022DB94 7C 09 03 A6 */ mtctr r0
/* 80230C38 0022DB98 4E 80 04 20 */ bctr
.global lbl_80230C3C
lbl_80230C3C:
/* 80230C3C 0022DB9C 7F E3 FB 78 */ mr r3, r31
/* 80230C40 0022DBA0 4B FF F7 F9 */ bl sub_80230438
/* 80230C44 0022DBA4 48 00 00 94 */ b lbl_80230CD8
.global lbl_80230C48
lbl_80230C48:
/* 80230C48 0022DBA8 A0 7E 00 00 */ lhz r3, 0(r30)
/* 80230C4C 0022DBAC A0 1F 02 CC */ lhz r0, 0x2cc(r31)
/* 80230C50 0022DBB0 7C 03 00 40 */ cmplw r3, r0
/* 80230C54 0022DBB4 40 82 00 84 */ bne lbl_80230CD8
/* 80230C58 0022DBB8 80 1F 02 58 */ lwz r0, 0x258(r31)
/* 80230C5C 0022DBBC 2C 00 00 01 */ cmpwi r0, 1
/* 80230C60 0022DBC0 41 82 00 78 */ beq lbl_80230CD8
/* 80230C64 0022DBC4 38 00 00 01 */ li r0, 1
/* 80230C68 0022DBC8 7F E3 FB 78 */ mr r3, r31
/* 80230C6C 0022DBCC 90 1F 02 58 */ stw r0, 0x258(r31)
/* 80230C70 0022DBD0 4B FF F7 C9 */ bl sub_80230438
/* 80230C74 0022DBD4 48 00 00 64 */ b lbl_80230CD8
.global lbl_80230C78
lbl_80230C78:
/* 80230C78 0022DBD8 A0 7E 00 00 */ lhz r3, 0(r30)
/* 80230C7C 0022DBDC A0 1F 02 CC */ lhz r0, 0x2cc(r31)
/* 80230C80 0022DBE0 7C 03 00 40 */ cmplw r3, r0
/* 80230C84 0022DBE4 40 82 00 54 */ bne lbl_80230CD8
/* 80230C88 0022DBE8 80 1F 02 58 */ lwz r0, 0x258(r31)
/* 80230C8C 0022DBEC 2C 00 00 00 */ cmpwi r0, 0
/* 80230C90 0022DBF0 41 82 00 48 */ beq lbl_80230CD8
/* 80230C94 0022DBF4 38 00 00 00 */ li r0, 0
/* 80230C98 0022DBF8 7F E3 FB 78 */ mr r3, r31
/* 80230C9C 0022DBFC 90 1F 02 58 */ stw r0, 0x258(r31)
/* 80230CA0 0022DC00 4B FF F7 99 */ bl sub_80230438
/* 80230CA4 0022DC04 48 00 00 34 */ b lbl_80230CD8
.global lbl_80230CA8
lbl_80230CA8:
/* 80230CA8 0022DC08 A0 7E 00 00 */ lhz r3, 0(r30)
/* 80230CAC 0022DC0C A0 1F 02 CC */ lhz r0, 0x2cc(r31)
/* 80230CB0 0022DC10 7C 03 00 40 */ cmplw r3, r0
/* 80230CB4 0022DC14 40 82 00 24 */ bne lbl_80230CD8
/* 80230CB8 0022DC18 80 1F 02 58 */ lwz r0, 0x258(r31)
/* 80230CBC 0022DC1C 2C 00 00 01 */ cmpwi r0, 1
/* 80230CC0 0022DC20 40 82 00 18 */ bne lbl_80230CD8
/* 80230CC4 0022DC24 38 00 00 01 */ li r0, 1
/* 80230CC8 0022DC28 98 1F 03 FC */ stb r0, 0x3fc(r31)
/* 80230CCC 0022DC2C 48 00 00 0C */ b lbl_80230CD8
.global lbl_80230CD0
lbl_80230CD0:
/* 80230CD0 0022DC30 C0 02 B6 68 */ lfs f0, lbl_805AD388@sda21(r2)
/* 80230CD4 0022DC34 D0 1F 03 EC */ stfs f0, 0x3ec(r31)
.global lbl_80230CD8
lbl_80230CD8:
/* 80230CD8 0022DC38 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80230CDC 0022DC3C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80230CE0 0022DC40 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80230CE4 0022DC44 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80230CE8 0022DC48 7C 08 03 A6 */ mtlr r0
/* 80230CEC 0022DC4C 38 21 00 20 */ addi r1, r1, 0x20
/* 80230CF0 0022DC50 4E 80 00 20 */ blr
.global Think__16CGrenadeLauncherFfR13CStateManager
Think__16CGrenadeLauncherFfR13CStateManager:
/* 80230CF4 0022DC54 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 80230CF8 0022DC58 7C 08 02 A6 */ mflr r0
/* 80230CFC 0022DC5C 90 01 00 84 */ stw r0, 0x84(r1)
/* 80230D00 0022DC60 DB E1 00 70 */ stfd f31, 0x70(r1)
/* 80230D04 0022DC64 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
/* 80230D08 0022DC68 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 80230D0C 0022DC6C 93 C1 00 68 */ stw r30, 0x68(r1)
/* 80230D10 0022DC70 93 A1 00 64 */ stw r29, 0x64(r1)
/* 80230D14 0022DC74 88 03 00 30 */ lbz r0, 0x30(r3)
/* 80230D18 0022DC78 FF E0 08 90 */ fmr f31, f1
/* 80230D1C 0022DC7C 7C 7D 1B 78 */ mr r29, r3
/* 80230D20 0022DC80 7C 9E 23 78 */ mr r30, r4
/* 80230D24 0022DC84 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80230D28 0022DC88 41 82 01 68 */ beq lbl_80230E90
/* 80230D2C 0022DC8C 88 1D 03 FC */ lbz r0, 0x3fc(r29)
/* 80230D30 0022DC90 28 00 00 00 */ cmplwi r0, 0
/* 80230D34 0022DC94 41 82 00 10 */ beq lbl_80230D44
/* 80230D38 0022DC98 4B FF F1 E5 */ bl sub_8022ff1c
/* 80230D3C 0022DC9C 38 00 00 00 */ li r0, 0
/* 80230D40 0022DCA0 98 1D 03 FC */ stb r0, 0x3fc(r29)
lbl_80230D44:
/* 80230D44 0022DCA4 7F A3 EB 78 */ mr r3, r29
/* 80230D48 0022DCA8 4B FF F1 41 */ bl sub_8022fe88
/* 80230D4C 0022DCAC FC 20 F8 90 */ fmr f1, f31
/* 80230D50 0022DCB0 7F A3 EB 78 */ mr r3, r29
/* 80230D54 0022DCB4 4B FF EB C9 */ bl sub_8022f91c
/* 80230D58 0022DCB8 FC 20 F8 90 */ fmr f1, f31
/* 80230D5C 0022DCBC 7F A3 EB 78 */ mr r3, r29
/* 80230D60 0022DCC0 7F C4 F3 78 */ mr r4, r30
/* 80230D64 0022DCC4 4B FF EC 7D */ bl sub_8022f9e0
/* 80230D68 0022DCC8 FC 20 F8 90 */ fmr f1, f31
/* 80230D6C 0022DCCC 7F A3 EB 78 */ mr r3, r29
/* 80230D70 0022DCD0 4B FF E9 2D */ bl sub_8022f69c
/* 80230D74 0022DCD4 FC 20 F8 90 */ fmr f1, f31
/* 80230D78 0022DCD8 7F A4 EB 78 */ mr r4, r29
/* 80230D7C 0022DCDC 7F C5 F3 78 */ mr r5, r30
/* 80230D80 0022DCE0 38 61 00 24 */ addi r3, r1, 0x24
/* 80230D84 0022DCE4 38 C0 00 01 */ li r6, 1
/* 80230D88 0022DCE8 4B E2 45 15 */ bl UpdateAnimation__6CActorFfR13CStateManagerb
/* 80230D8C 0022DCEC C0 E1 00 24 */ lfs f7, 0x24(r1)
/* 80230D90 0022DCF0 FC 20 F8 90 */ fmr f1, f31
/* 80230D94 0022DCF4 C0 C1 00 28 */ lfs f6, 0x28(r1)
/* 80230D98 0022DCF8 7F A3 EB 78 */ mr r3, r29
/* 80230D9C 0022DCFC C0 A1 00 2C */ lfs f5, 0x2c(r1)
/* 80230DA0 0022DD00 3B E1 00 4C */ addi r31, r1, 0x4c
/* 80230DA4 0022DD04 C0 81 00 30 */ lfs f4, 0x30(r1)
/* 80230DA8 0022DD08 C0 61 00 34 */ lfs f3, 0x34(r1)
/* 80230DAC 0022DD0C 38 81 00 40 */ addi r4, r1, 0x40
/* 80230DB0 0022DD10 C0 41 00 38 */ lfs f2, 0x38(r1)
/* 80230DB4 0022DD14 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 80230DB8 0022DD18 D0 E1 00 40 */ stfs f7, 0x40(r1)
/* 80230DBC 0022DD1C D0 C1 00 44 */ stfs f6, 0x44(r1)
/* 80230DC0 0022DD20 D0 A1 00 48 */ stfs f5, 0x48(r1)
/* 80230DC4 0022DD24 D0 81 00 4C */ stfs f4, 0x4c(r1)
/* 80230DC8 0022DD28 D0 61 00 50 */ stfs f3, 0x50(r1)
/* 80230DCC 0022DD2C D0 41 00 54 */ stfs f2, 0x54(r1)
/* 80230DD0 0022DD30 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 80230DD4 0022DD34 4B EE A0 A5 */ bl MoveToOR__13CPhysicsActorFRC9CVector3ff
/* 80230DD8 0022DD38 FC 20 F8 90 */ fmr f1, f31
/* 80230DDC 0022DD3C 7F A3 EB 78 */ mr r3, r29
/* 80230DE0 0022DD40 7F E4 FB 78 */ mr r4, r31
/* 80230DE4 0022DD44 4B EE A0 31 */ bl RotateToOR__13CPhysicsActorFRC11CQuaternionf
/* 80230DE8 0022DD48 A0 1D 02 CC */ lhz r0, 0x2cc(r29)
/* 80230DEC 0022DD4C 7F C3 F3 78 */ mr r3, r30
/* 80230DF0 0022DD50 38 81 00 18 */ addi r4, r1, 0x18
/* 80230DF4 0022DD54 B0 01 00 18 */ sth r0, 0x18(r1)
/* 80230DF8 0022DD58 4B E1 B7 7D */ bl ObjectById__13CStateManagerF9TUniqueId
/* 80230DFC 0022DD5C 7C 64 1B 78 */ mr r4, r3
/* 80230E00 0022DD60 38 61 00 1C */ addi r3, r1, 0x1c
/* 80230E04 0022DD64 4B E7 BC 59 */ bl "__ct__24TCastToPtr<10CPatterned>FP7CEntity"
/* 80230E08 0022DD68 83 E3 00 04 */ lwz r31, 4(r3)
/* 80230E0C 0022DD6C 28 1F 00 00 */ cmplwi r31, 0
/* 80230E10 0022DD70 41 82 00 3C */ beq lbl_80230E4C
/* 80230E14 0022DD74 88 1F 04 00 */ lbz r0, 0x400(r31)
/* 80230E18 0022DD78 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80230E1C 0022DD7C 41 82 00 30 */ beq lbl_80230E4C
/* 80230E20 0022DD80 7F A3 EB 78 */ mr r3, r29
/* 80230E24 0022DD84 7F C4 F3 78 */ mr r4, r30
/* 80230E28 0022DD88 81 9D 00 00 */ lwz r12, 0(r29)
/* 80230E2C 0022DD8C 81 8C 00 34 */ lwz r12, 0x34(r12)
/* 80230E30 0022DD90 7D 89 03 A6 */ mtctr r12
/* 80230E34 0022DD94 4E 80 04 21 */ bctrl
/* 80230E38 0022DD98 C0 23 00 00 */ lfs f1, 0(r3)
/* 80230E3C 0022DD9C C0 02 B6 64 */ lfs f0, lbl_805AD384@sda21(r2)
/* 80230E40 0022DDA0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80230E44 0022DDA4 4C 40 13 82 */ cror 2, 0, 2
/* 80230E48 0022DDA8 40 82 00 48 */ bne lbl_80230E90
lbl_80230E4C:
/* 80230E4C 0022DDAC A0 1D 00 08 */ lhz r0, 8(r29)
/* 80230E50 0022DDB0 7F C3 F3 78 */ mr r3, r30
/* 80230E54 0022DDB4 7F E4 FB 78 */ mr r4, r31
/* 80230E58 0022DDB8 38 A1 00 14 */ addi r5, r1, 0x14
/* 80230E5C 0022DDBC B0 01 00 10 */ sth r0, 0x10(r1)
/* 80230E60 0022DDC0 38 C0 00 29 */ li r6, 0x29
/* 80230E64 0022DDC4 B0 01 00 14 */ sth r0, 0x14(r1)
/* 80230E68 0022DDC8 4B E1 30 69 */ bl SendScriptMsg__13CStateManagerFP7CEntity9TUniqueId20EScriptObjectMessage
/* 80230E6C 0022DDCC 7F A3 EB 78 */ mr r3, r29
/* 80230E70 0022DDD0 7F C4 F3 78 */ mr r4, r30
/* 80230E74 0022DDD4 4B FF E8 FD */ bl sub_8022f770
/* 80230E78 0022DDD8 A0 1D 00 08 */ lhz r0, 8(r29)
/* 80230E7C 0022DDDC 7F C3 F3 78 */ mr r3, r30
/* 80230E80 0022DDE0 38 81 00 0C */ addi r4, r1, 0xc
/* 80230E84 0022DDE4 B0 01 00 08 */ sth r0, 8(r1)
/* 80230E88 0022DDE8 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80230E8C 0022DDEC 4B E1 B3 E1 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
lbl_80230E90:
/* 80230E90 0022DDF0 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
/* 80230E94 0022DDF4 80 01 00 84 */ lwz r0, 0x84(r1)
/* 80230E98 0022DDF8 CB E1 00 70 */ lfd f31, 0x70(r1)
/* 80230E9C 0022DDFC 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 80230EA0 0022DE00 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 80230EA4 0022DE04 83 A1 00 64 */ lwz r29, 0x64(r1)
/* 80230EA8 0022DE08 7C 08 03 A6 */ mtlr r0
/* 80230EAC 0022DE0C 38 21 00 80 */ addi r1, r1, 0x80
/* 80230EB0 0022DE10 4E 80 00 20 */ blr
.global __dt__16CGrenadeLauncherFv
__dt__16CGrenadeLauncherFv:
/* 80230EB4 0022DE14 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80230EB8 0022DE18 7C 08 02 A6 */ mflr r0
/* 80230EBC 0022DE1C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80230EC0 0022DE20 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80230EC4 0022DE24 7C 9F 23 78 */ mr r31, r4
/* 80230EC8 0022DE28 93 C1 00 08 */ stw r30, 8(r1)
/* 80230ECC 0022DE2C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80230ED0 0022DE30 41 82 00 9C */ beq lbl_80230F6C
/* 80230ED4 0022DE34 3C 60 80 3E */ lis r3, lbl_803E7F58@ha
/* 80230ED8 0022DE38 34 1E 03 B8 */ addic. r0, r30, 0x3b8
/* 80230EDC 0022DE3C 38 03 7F 58 */ addi r0, r3, lbl_803E7F58@l
/* 80230EE0 0022DE40 90 1E 00 00 */ stw r0, 0(r30)
/* 80230EE4 0022DE44 41 82 00 30 */ beq lbl_80230F14
/* 80230EE8 0022DE48 88 1E 03 C4 */ lbz r0, 0x3c4(r30)
/* 80230EEC 0022DE4C 28 00 00 00 */ cmplwi r0, 0
/* 80230EF0 0022DE50 41 82 00 1C */ beq lbl_80230F0C
/* 80230EF4 0022DE54 34 7E 03 B8 */ addic. r3, r30, 0x3b8
/* 80230EF8 0022DE58 41 82 00 14 */ beq lbl_80230F0C
/* 80230EFC 0022DE5C 28 03 00 00 */ cmplwi r3, 0
/* 80230F00 0022DE60 41 82 00 0C */ beq lbl_80230F0C
/* 80230F04 0022DE64 38 80 00 00 */ li r4, 0
/* 80230F08 0022DE68 48 10 FF 39 */ bl __dt__6CTokenFv
lbl_80230F0C:
/* 80230F0C 0022DE6C 38 00 00 00 */ li r0, 0
/* 80230F10 0022DE70 98 1E 03 C4 */ stb r0, 0x3c4(r30)
lbl_80230F14:
/* 80230F14 0022DE74 34 1E 03 50 */ addic. r0, r30, 0x350
/* 80230F18 0022DE78 41 82 00 10 */ beq lbl_80230F28
/* 80230F1C 0022DE7C 38 7E 03 50 */ addi r3, r30, 0x350
/* 80230F20 0022DE80 38 80 FF FF */ li r4, -1
/* 80230F24 0022DE84 4B ED 56 E5 */ bl __dt__16CLightParametersFv
lbl_80230F28:
/* 80230F28 0022DE88 34 1E 03 28 */ addic. r0, r30, 0x328
/* 80230F2C 0022DE8C 41 82 00 24 */ beq lbl_80230F50
/* 80230F30 0022DE90 3C 60 80 3F */ lis r3, __vt__17CCollidableSphere@ha
/* 80230F34 0022DE94 34 1E 03 28 */ addic. r0, r30, 0x328
/* 80230F38 0022DE98 38 03 CA F8 */ addi r0, r3, __vt__17CCollidableSphere@l
/* 80230F3C 0022DE9C 90 1E 03 28 */ stw r0, 0x328(r30)
/* 80230F40 0022DEA0 41 82 00 10 */ beq lbl_80230F50
/* 80230F44 0022DEA4 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha
/* 80230F48 0022DEA8 38 03 97 E4 */ addi r0, r3, __vt__19CCollisionPrimitive@l
/* 80230F4C 0022DEAC 90 1E 03 28 */ stw r0, 0x328(r30)
lbl_80230F50:
/* 80230F50 0022DEB0 7F C3 F3 78 */ mr r3, r30
/* 80230F54 0022DEB4 38 80 00 00 */ li r4, 0
/* 80230F58 0022DEB8 4B EE B4 BD */ bl __dt__13CPhysicsActorFv
/* 80230F5C 0022DEBC 7F E0 07 35 */ extsh. r0, r31
/* 80230F60 0022DEC0 40 81 00 0C */ ble lbl_80230F6C
/* 80230F64 0022DEC4 7F C3 F3 78 */ mr r3, r30
/* 80230F68 0022DEC8 48 0E 49 C9 */ bl Free__7CMemoryFPCv
lbl_80230F6C:
/* 80230F6C 0022DECC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80230F70 0022DED0 7F C3 F3 78 */ mr r3, r30
/* 80230F74 0022DED4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80230F78 0022DED8 83 C1 00 08 */ lwz r30, 8(r1)
/* 80230F7C 0022DEDC 7C 08 03 A6 */ mtlr r0
/* 80230F80 0022DEE0 38 21 00 10 */ addi r1, r1, 0x10
/* 80230F84 0022DEE4 4E 80 00 20 */ blr
.global __ct__16CGrenadeLauncherF9TUniqueId
__ct__16CGrenadeLauncherF9TUniqueId:
/* 80230F88 0022DEE8 94 21 FE 80 */ stwu r1, -0x180(r1)
/* 80230F8C 0022DEEC 7C 08 02 A6 */ mflr r0
/* 80230F90 0022DEF0 90 01 01 84 */ stw r0, 0x184(r1)
/* 80230F94 0022DEF4 DB E1 01 70 */ stfd f31, 0x170(r1)
/* 80230F98 0022DEF8 F3 E1 01 78 */ psq_st f31, 376(r1), 0, qr0
/* 80230F9C 0022DEFC DB C1 01 60 */ stfd f30, 0x160(r1)
/* 80230FA0 0022DF00 F3 C1 01 68 */ psq_st f30, 360(r1), 0, qr0
/* 80230FA4 0022DF04 BE 61 01 2C */ stmw r19, 0x12c(r1)
/* 80230FA8 0022DF08 FF E0 08 90 */ fmr f31, f1
/* 80230FAC 0022DF0C 83 81 01 88 */ lwz r28, 0x188(r1)
/* 80230FB0 0022DF10 83 A1 01 8C */ lwz r29, 0x18c(r1)
/* 80230FB4 0022DF14 7C 7A 1B 78 */ mr r26, r3
/* 80230FB8 0022DF18 83 C1 01 90 */ lwz r30, 0x190(r1)
/* 80230FBC 0022DF1C 7C 93 23 78 */ mr r19, r4
/* 80230FC0 0022DF20 83 E1 01 94 */ lwz r31, 0x194(r1)
/* 80230FC4 0022DF24 7C B4 2B 78 */ mr r20, r5
/* 80230FC8 0022DF28 7C D5 33 78 */ mr r21, r6
/* 80230FCC 0022DF2C 7C F6 3B 78 */ mr r22, r7
/* 80230FD0 0022DF30 7D 1B 43 78 */ mr r27, r8
/* 80230FD4 0022DF34 7D 37 4B 78 */ mr r23, r9
/* 80230FD8 0022DF38 7D 58 53 78 */ mr r24, r10
/* 80230FDC 0022DF3C 4B DE A5 59 */ bl Identity__10CAxisAngleFv
/* 80230FE0 0022DF40 7C 79 1B 78 */ mr r25, r3
/* 80230FE4 0022DF44 4B DE A5 51 */ bl Identity__10CAxisAngleFv
/* 80230FE8 0022DF48 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 80230FEC 0022DF4C C4 84 66 A0 */ lfsu f4, sZeroVector__9CVector3f@l(r4)
/* 80230FF0 0022DF50 C0 02 B6 9C */ lfs f0, lbl_805AD3BC@sda21(r2)
/* 80230FF4 0022DF54 38 01 00 AC */ addi r0, r1, 0xac
/* 80230FF8 0022DF58 C0 A4 00 04 */ lfs f5, 4(r4)
/* 80230FFC 0022DF5C 7E 86 A3 78 */ mr r6, r20
/* 80231000 0022DF60 C0 C4 00 08 */ lfs f6, 8(r4)
/* 80231004 0022DF64 7E A7 AB 78 */ mr r7, r21
/* 80231008 0022DF68 D0 81 00 AC */ stfs f4, 0xac(r1)
/* 8023100C 0022DF6C 7E C8 B3 78 */ mr r8, r22
/* 80231010 0022DF70 A1 73 00 00 */ lhz r11, 0(r19)
/* 80231014 0022DF74 7F 69 DB 78 */ mr r9, r27
/* 80231018 0022DF78 D0 A1 00 B0 */ stfs f5, 0xb0(r1)
/* 8023101C 0022DF7C 38 81 00 18 */ addi r4, r1, 0x18
/* 80231020 0022DF80 C0 22 B6 A0 */ lfs f1, lbl_805AD3C0@sda21(r2)
/* 80231024 0022DF84 38 A0 00 01 */ li r5, 1
/* 80231028 0022DF88 D0 C1 00 B4 */ stfs f6, 0xb4(r1)
/* 8023102C 0022DF8C 39 4D A5 28 */ addi r10, r13, lbl_805A90E8@sda21
/* 80231030 0022DF90 C0 42 B6 90 */ lfs f2, lbl_805AD3B0@sda21(r2)
/* 80231034 0022DF94 C0 63 00 00 */ lfs f3, 0(r3)
/* 80231038 0022DF98 D0 61 00 B8 */ stfs f3, 0xb8(r1)
/* 8023103C 0022DF9C C0 63 00 04 */ lfs f3, 4(r3)
/* 80231040 0022DFA0 D0 61 00 BC */ stfs f3, 0xbc(r1)
/* 80231044 0022DFA4 C0 63 00 08 */ lfs f3, 8(r3)
/* 80231048 0022DFA8 7F 43 D3 78 */ mr r3, r26
/* 8023104C 0022DFAC D0 61 00 C0 */ stfs f3, 0xc0(r1)
/* 80231050 0022DFB0 D0 81 00 C4 */ stfs f4, 0xc4(r1)
/* 80231054 0022DFB4 D0 A1 00 C8 */ stfs f5, 0xc8(r1)
/* 80231058 0022DFB8 D0 C1 00 CC */ stfs f6, 0xcc(r1)
/* 8023105C 0022DFBC C0 79 00 00 */ lfs f3, 0(r25)
/* 80231060 0022DFC0 D0 61 00 D0 */ stfs f3, 0xd0(r1)
/* 80231064 0022DFC4 C0 79 00 04 */ lfs f3, 4(r25)
/* 80231068 0022DFC8 D0 61 00 D4 */ stfs f3, 0xd4(r1)
/* 8023106C 0022DFCC C0 79 00 08 */ lfs f3, 8(r25)
/* 80231070 0022DFD0 D0 61 00 D8 */ stfs f3, 0xd8(r1)
/* 80231074 0022DFD4 D0 01 00 DC */ stfs f0, 0xdc(r1)
/* 80231078 0022DFD8 B1 61 00 18 */ sth r11, 0x18(r1)
/* 8023107C 0022DFDC 92 E1 00 08 */ stw r23, 8(r1)
/* 80231080 0022DFE0 90 01 00 0C */ stw r0, 0xc(r1)
/* 80231084 0022DFE4 93 A1 00 10 */ stw r29, 0x10(r1)
/* 80231088 0022DFE8 4B EE B4 29 */ bl "__ct__13CPhysicsActorF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC13CMaterialListRC6CAABoxRC10SMoverDataRC16CActorParametersff"
/* 8023108C 0022DFEC 3C 60 80 3E */ lis r3, lbl_803E7F58@ha
/* 80231090 0022DFF0 38 00 00 00 */ li r0, 0
/* 80231094 0022DFF4 38 63 7F 58 */ addi r3, r3, lbl_803E7F58@l
/* 80231098 0022DFF8 7F E4 FB 78 */ mr r4, r31
/* 8023109C 0022DFFC 90 7A 00 00 */ stw r3, 0(r26)
/* 802310A0 0022E000 38 7A 02 D0 */ addi r3, r26, 0x2d0
/* 802310A4 0022E004 90 1A 02 58 */ stw r0, 0x258(r26)
/* 802310A8 0022E008 C0 18 00 00 */ lfs f0, 0(r24)
/* 802310AC 0022E00C D0 1A 02 5C */ stfs f0, 0x25c(r26)
/* 802310B0 0022E010 C0 18 00 04 */ lfs f0, 4(r24)
/* 802310B4 0022E014 D0 1A 02 60 */ stfs f0, 0x260(r26)
/* 802310B8 0022E018 80 BC 00 00 */ lwz r5, 0(r28)
/* 802310BC 0022E01C 80 1C 00 04 */ lwz r0, 4(r28)
/* 802310C0 0022E020 90 BA 02 64 */ stw r5, 0x264(r26)
/* 802310C4 0022E024 90 1A 02 68 */ stw r0, 0x268(r26)
/* 802310C8 0022E028 80 BC 00 08 */ lwz r5, 8(r28)
/* 802310CC 0022E02C 80 1C 00 0C */ lwz r0, 0xc(r28)
/* 802310D0 0022E030 90 BA 02 6C */ stw r5, 0x26c(r26)
/* 802310D4 0022E034 90 1A 02 70 */ stw r0, 0x270(r26)
/* 802310D8 0022E038 80 BC 00 10 */ lwz r5, 0x10(r28)
/* 802310DC 0022E03C 80 1C 00 14 */ lwz r0, 0x14(r28)
/* 802310E0 0022E040 90 BA 02 74 */ stw r5, 0x274(r26)
/* 802310E4 0022E044 90 1A 02 78 */ stw r0, 0x278(r26)
/* 802310E8 0022E048 80 BC 00 18 */ lwz r5, 0x18(r28)
/* 802310EC 0022E04C 80 1C 00 1C */ lwz r0, 0x1c(r28)
/* 802310F0 0022E050 90 BA 02 7C */ stw r5, 0x27c(r26)
/* 802310F4 0022E054 90 1A 02 80 */ stw r0, 0x280(r26)
/* 802310F8 0022E058 80 BC 00 20 */ lwz r5, 0x20(r28)
/* 802310FC 0022E05C 80 1C 00 24 */ lwz r0, 0x24(r28)
/* 80231100 0022E060 90 BA 02 84 */ stw r5, 0x284(r26)
/* 80231104 0022E064 90 1A 02 88 */ stw r0, 0x288(r26)
/* 80231108 0022E068 80 BC 00 28 */ lwz r5, 0x28(r28)
/* 8023110C 0022E06C 80 1C 00 2C */ lwz r0, 0x2c(r28)
/* 80231110 0022E070 90 BA 02 8C */ stw r5, 0x28c(r26)
/* 80231114 0022E074 90 1A 02 90 */ stw r0, 0x290(r26)
/* 80231118 0022E078 80 BC 00 30 */ lwz r5, 0x30(r28)
/* 8023111C 0022E07C 80 1C 00 34 */ lwz r0, 0x34(r28)
/* 80231120 0022E080 90 BA 02 94 */ stw r5, 0x294(r26)
/* 80231124 0022E084 90 1A 02 98 */ stw r0, 0x298(r26)
/* 80231128 0022E088 80 1C 00 38 */ lwz r0, 0x38(r28)
/* 8023112C 0022E08C 90 1A 02 9C */ stw r0, 0x29c(r26)
/* 80231130 0022E090 80 BC 00 3C */ lwz r5, 0x3c(r28)
/* 80231134 0022E094 80 1C 00 40 */ lwz r0, 0x40(r28)
/* 80231138 0022E098 90 BA 02 A0 */ stw r5, 0x2a0(r26)
/* 8023113C 0022E09C 90 1A 02 A4 */ stw r0, 0x2a4(r26)
/* 80231140 0022E0A0 80 BC 00 44 */ lwz r5, 0x44(r28)
/* 80231144 0022E0A4 80 1C 00 48 */ lwz r0, 0x48(r28)
/* 80231148 0022E0A8 90 BA 02 A8 */ stw r5, 0x2a8(r26)
/* 8023114C 0022E0AC 90 1A 02 AC */ stw r0, 0x2ac(r26)
/* 80231150 0022E0B0 80 BC 00 4C */ lwz r5, 0x4c(r28)
/* 80231154 0022E0B4 80 1C 00 50 */ lwz r0, 0x50(r28)
/* 80231158 0022E0B8 90 BA 02 B0 */ stw r5, 0x2b0(r26)
/* 8023115C 0022E0BC 90 1A 02 B4 */ stw r0, 0x2b4(r26)
/* 80231160 0022E0C0 80 BC 00 54 */ lwz r5, 0x54(r28)
/* 80231164 0022E0C4 80 1C 00 58 */ lwz r0, 0x58(r28)
/* 80231168 0022E0C8 90 BA 02 B8 */ stw r5, 0x2b8(r26)
/* 8023116C 0022E0CC 90 1A 02 BC */ stw r0, 0x2bc(r26)
/* 80231170 0022E0D0 80 1C 00 5C */ lwz r0, 0x5c(r28)
/* 80231174 0022E0D4 90 1A 02 C0 */ stw r0, 0x2c0(r26)
/* 80231178 0022E0D8 80 1C 00 60 */ lwz r0, 0x60(r28)
/* 8023117C 0022E0DC 90 1A 02 C4 */ stw r0, 0x2c4(r26)
/* 80231180 0022E0E0 80 1C 00 64 */ lwz r0, 0x64(r28)
/* 80231184 0022E0E4 90 1A 02 C8 */ stw r0, 0x2c8(r26)
/* 80231188 0022E0E8 A0 1E 00 00 */ lhz r0, 0(r30)
/* 8023118C 0022E0EC B0 1A 02 CC */ sth r0, 0x2cc(r26)
/* 80231190 0022E0F0 48 00 03 B1 */ bl sub_80231540
/* 80231194 0022E0F4 C0 3B 00 00 */ lfs f1, 0(r27)
/* 80231198 0022E0F8 3A 7A 03 28 */ addi r19, r26, 0x328
/* 8023119C 0022E0FC C0 1B 00 04 */ lfs f0, 4(r27)
/* 802311A0 0022E100 7E 63 9B 78 */ mr r3, r19
/* 802311A4 0022E104 C3 DB 00 08 */ lfs f30, 8(r27)
/* 802311A8 0022E108 38 8D A5 28 */ addi r4, r13, lbl_805A90E8@sda21
/* 802311AC 0022E10C D0 21 00 A0 */ stfs f1, 0xa0(r1)
/* 802311B0 0022E110 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 802311B4 0022E114 D3 C1 00 A8 */ stfs f30, 0xa8(r1)
/* 802311B8 0022E118 48 09 E6 FD */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList
/* 802311BC 0022E11C 3C 60 80 3F */ lis r3, __vt__17CCollidableSphere@ha
/* 802311C0 0022E120 C0 22 B6 6C */ lfs f1, lbl_805AD38C@sda21(r2)
/* 802311C4 0022E124 38 03 CA F8 */ addi r0, r3, __vt__17CCollidableSphere@l
/* 802311C8 0022E128 C0 A2 B6 64 */ lfs f5, lbl_805AD384@sda21(r2)
/* 802311CC 0022E12C 90 13 00 00 */ stw r0, 0(r19)
/* 802311D0 0022E130 FC 40 08 90 */ fmr f2, f1
/* 802311D4 0022E134 C0 02 B6 A4 */ lfs f0, lbl_805AD3C4@sda21(r2)
/* 802311D8 0022E138 FC 60 08 90 */ fmr f3, f1
/* 802311DC 0022E13C D0 B3 00 10 */ stfs f5, 0x10(r19)
/* 802311E0 0022E140 FC 80 08 90 */ fmr f4, f1
/* 802311E4 0022E144 38 7A 03 4C */ addi r3, r26, 0x34c
/* 802311E8 0022E148 D0 B3 00 14 */ stfs f5, 0x14(r19)
/* 802311EC 0022E14C D0 B3 00 18 */ stfs f5, 0x18(r19)
/* 802311F0 0022E150 D3 D3 00 1C */ stfs f30, 0x1c(r19)
/* 802311F4 0022E154 D0 1A 03 48 */ stfs f0, 0x348(r26)
/* 802311F8 0022E158 48 13 21 F5 */ bl __ct__6CColorFffff
/* 802311FC 0022E15C 7F A4 EB 78 */ mr r4, r29
/* 80231200 0022E160 38 7A 03 50 */ addi r3, r26, 0x350
/* 80231204 0022E164 4B E9 44 19 */ bl __ct__16CActorParametersFRC16CActorParameters
/* 80231208 0022E168 80 9F 00 40 */ lwz r4, 0x40(r31)
/* 8023120C 0022E16C 3B 60 00 00 */ li r27, 0
/* 80231210 0022E170 3B 80 00 00 */ li r28, 0
/* 80231214 0022E174 3B C0 00 00 */ li r30, 0
/* 80231218 0022E178 3C 04 00 01 */ addis r0, r4, 1
/* 8023121C 0022E17C 3B E0 00 00 */ li r31, 0
/* 80231220 0022E180 28 00 FF FF */ cmplwi r0, 0xffff
/* 80231224 0022E184 41 82 00 90 */ beq lbl_802312B4
/* 80231228 0022E188 3C 60 50 41 */ lis r3, 0x50415254@ha
/* 8023122C 0022E18C 90 81 00 70 */ stw r4, 0x70(r1)
/* 80231230 0022E190 38 03 52 54 */ addi r0, r3, 0x50415254@l
/* 80231234 0022E194 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 80231238 0022E198 90 01 00 6C */ stw r0, 0x6c(r1)
/* 8023123C 0022E19C 38 61 00 64 */ addi r3, r1, 0x64
/* 80231240 0022E1A0 38 A1 00 6C */ addi r5, r1, 0x6c
/* 80231244 0022E1A4 81 84 00 00 */ lwz r12, 0(r4)
/* 80231248 0022E1A8 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8023124C 0022E1AC 7D 89 03 A6 */ mtctr r12
/* 80231250 0022E1B0 4E 80 04 21 */ bctrl
/* 80231254 0022E1B4 3A 61 00 94 */ addi r19, r1, 0x94
/* 80231258 0022E1B8 38 81 00 64 */ addi r4, r1, 0x64
/* 8023125C 0022E1BC 7E 63 9B 78 */ mr r3, r19
/* 80231260 0022E1C0 3B 60 00 01 */ li r27, 1
/* 80231264 0022E1C4 48 10 FC 45 */ bl __ct__6CTokenFRC6CToken
/* 80231268 0022E1C8 7E 63 9B 78 */ mr r3, r19
/* 8023126C 0022E1CC 48 10 FB A1 */ bl GetObj__6CTokenFv
/* 80231270 0022E1D0 80 63 00 04 */ lwz r3, 4(r3)
/* 80231274 0022E1D4 38 00 00 01 */ li r0, 1
/* 80231278 0022E1D8 37 21 00 84 */ addic. r25, r1, 0x84
/* 8023127C 0022E1DC 3B 80 00 01 */ li r28, 1
/* 80231280 0022E1E0 90 61 00 9C */ stw r3, 0x9c(r1)
/* 80231284 0022E1E4 98 01 00 90 */ stb r0, 0x90(r1)
/* 80231288 0022E1E8 41 82 00 20 */ beq lbl_802312A8
/* 8023128C 0022E1EC 7F 23 CB 78 */ mr r3, r25
/* 80231290 0022E1F0 7E 64 9B 78 */ mr r4, r19
/* 80231294 0022E1F4 48 10 FC 15 */ bl __ct__6CTokenFRC6CToken
/* 80231298 0022E1F8 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 8023129C 0022E1FC 7F 23 CB 78 */ mr r3, r25
/* 802312A0 0022E200 90 19 00 08 */ stw r0, 8(r25)
/* 802312A4 0022E204 48 10 FA E1 */ bl Lock__6CTokenFv
lbl_802312A8:
/* 802312A8 0022E208 3B 21 00 84 */ addi r25, r1, 0x84
/* 802312AC 0022E20C 3B C0 00 01 */ li r30, 1
/* 802312B0 0022E210 48 00 00 14 */ b lbl_802312C4
lbl_802312B4:
/* 802312B4 0022E214 38 00 00 00 */ li r0, 0
/* 802312B8 0022E218 3B 21 00 74 */ addi r25, r1, 0x74
/* 802312BC 0022E21C 98 01 00 80 */ stb r0, 0x80(r1)
/* 802312C0 0022E220 3B E0 00 01 */ li r31, 1
lbl_802312C4:
/* 802312C4 0022E224 88 19 00 0C */ lbz r0, 0xc(r25)
/* 802312C8 0022E228 98 1A 03 C4 */ stb r0, 0x3c4(r26)
/* 802312CC 0022E22C 88 19 00 0C */ lbz r0, 0xc(r25)
/* 802312D0 0022E230 28 00 00 00 */ cmplwi r0, 0
/* 802312D4 0022E234 41 82 00 28 */ beq lbl_802312FC
/* 802312D8 0022E238 37 1A 03 B8 */ addic. r24, r26, 0x3b8
/* 802312DC 0022E23C 41 82 00 20 */ beq lbl_802312FC
/* 802312E0 0022E240 7F 03 C3 78 */ mr r3, r24
/* 802312E4 0022E244 7F 24 CB 78 */ mr r4, r25
/* 802312E8 0022E248 48 10 FB C1 */ bl __ct__6CTokenFRC6CToken
/* 802312EC 0022E24C 80 19 00 08 */ lwz r0, 8(r25)
/* 802312F0 0022E250 7F 03 C3 78 */ mr r3, r24
/* 802312F4 0022E254 90 18 00 08 */ stw r0, 8(r24)
/* 802312F8 0022E258 48 10 FA 8D */ bl Lock__6CTokenFv
lbl_802312FC:
/* 802312FC 0022E25C 7F E0 07 75 */ extsb. r0, r31
/* 80231300 0022E260 41 82 00 30 */ beq lbl_80231330
/* 80231304 0022E264 88 01 00 80 */ lbz r0, 0x80(r1)
/* 80231308 0022E268 28 00 00 00 */ cmplwi r0, 0
/* 8023130C 0022E26C 41 82 00 1C */ beq lbl_80231328
/* 80231310 0022E270 34 61 00 74 */ addic. r3, r1, 0x74
/* 80231314 0022E274 41 82 00 14 */ beq lbl_80231328
/* 80231318 0022E278 28 03 00 00 */ cmplwi r3, 0
/* 8023131C 0022E27C 41 82 00 0C */ beq lbl_80231328
/* 80231320 0022E280 38 80 00 00 */ li r4, 0
/* 80231324 0022E284 48 10 FB 1D */ bl __dt__6CTokenFv
lbl_80231328:
/* 80231328 0022E288 38 00 00 00 */ li r0, 0
/* 8023132C 0022E28C 98 01 00 80 */ stb r0, 0x80(r1)
lbl_80231330:
/* 80231330 0022E290 7F C0 07 75 */ extsb. r0, r30
/* 80231334 0022E294 41 82 00 30 */ beq lbl_80231364
/* 80231338 0022E298 88 01 00 90 */ lbz r0, 0x90(r1)
/* 8023133C 0022E29C 28 00 00 00 */ cmplwi r0, 0
/* 80231340 0022E2A0 41 82 00 1C */ beq lbl_8023135C
/* 80231344 0022E2A4 34 61 00 84 */ addic. r3, r1, 0x84
/* 80231348 0022E2A8 41 82 00 14 */ beq lbl_8023135C
/* 8023134C 0022E2AC 28 03 00 00 */ cmplwi r3, 0
/* 80231350 0022E2B0 41 82 00 0C */ beq lbl_8023135C
/* 80231354 0022E2B4 38 80 00 00 */ li r4, 0
/* 80231358 0022E2B8 48 10 FA E9 */ bl __dt__6CTokenFv
lbl_8023135C:
/* 8023135C 0022E2BC 38 00 00 00 */ li r0, 0
/* 80231360 0022E2C0 98 01 00 90 */ stb r0, 0x90(r1)
lbl_80231364:
/* 80231364 0022E2C4 7F 80 07 75 */ extsb. r0, r28
/* 80231368 0022E2C8 41 82 00 10 */ beq lbl_80231378
/* 8023136C 0022E2CC 38 61 00 94 */ addi r3, r1, 0x94
/* 80231370 0022E2D0 38 80 00 00 */ li r4, 0
/* 80231374 0022E2D4 48 10 FA CD */ bl __dt__6CTokenFv
lbl_80231378:
/* 80231378 0022E2D8 7F 60 07 75 */ extsb. r0, r27
/* 8023137C 0022E2DC 41 82 00 10 */ beq lbl_8023138C
/* 80231380 0022E2E0 38 61 00 64 */ addi r3, r1, 0x64
/* 80231384 0022E2E4 38 80 FF FF */ li r4, -1
/* 80231388 0022E2E8 48 10 FA B9 */ bl __dt__6CTokenFv
lbl_8023138C:
/* 8023138C 0022E2EC C0 42 B6 64 */ lfs f2, lbl_805AD384@sda21(r2)
/* 80231390 0022E2F0 38 7A 03 F0 */ addi r3, r26, 0x3f0
/* 80231394 0022E2F4 C0 22 B6 94 */ lfs f1, lbl_805AD3B4@sda21(r2)
/* 80231398 0022E2F8 D0 5A 03 D8 */ stfs f2, 0x3d8(r26)
/* 8023139C 0022E2FC FC 60 10 90 */ fmr f3, f2
/* 802313A0 0022E300 C0 82 B6 6C */ lfs f4, lbl_805AD38C@sda21(r2)
/* 802313A4 0022E304 D0 5A 03 DC */ stfs f2, 0x3dc(r26)
/* 802313A8 0022E308 D0 5A 03 E0 */ stfs f2, 0x3e0(r26)
/* 802313AC 0022E30C D0 5A 03 E4 */ stfs f2, 0x3e4(r26)
/* 802313B0 0022E310 C0 1D 00 64 */ lfs f0, 0x64(r29)
/* 802313B4 0022E314 D0 1A 03 E8 */ stfs f0, 0x3e8(r26)
/* 802313B8 0022E318 D0 5A 03 EC */ stfs f2, 0x3ec(r26)
/* 802313BC 0022E31C 48 13 20 31 */ bl __ct__6CColorFffff
/* 802313C0 0022E320 C0 22 B6 64 */ lfs f1, lbl_805AD384@sda21(r2)
/* 802313C4 0022E324 38 7A 03 F4 */ addi r3, r26, 0x3f4
/* 802313C8 0022E328 C0 82 B6 6C */ lfs f4, lbl_805AD38C@sda21(r2)
/* 802313CC 0022E32C FC 40 08 90 */ fmr f2, f1
/* 802313D0 0022E330 FC 60 08 90 */ fmr f3, f1
/* 802313D4 0022E334 48 13 20 19 */ bl __ct__6CColorFffff
/* 802313D8 0022E338 D3 FA 03 F8 */ stfs f31, 0x3f8(r26)
/* 802313DC 0022E33C 38 60 00 00 */ li r3, 0
/* 802313E0 0022E340 38 00 00 01 */ li r0, 1
/* 802313E4 0022E344 38 80 00 01 */ li r4, 1
/* 802313E8 0022E348 98 7A 03 FC */ stb r3, 0x3fc(r26)
/* 802313EC 0022E34C 98 1A 03 FD */ stb r0, 0x3fd(r26)
/* 802313F0 0022E350 98 1A 03 FE */ stb r0, 0x3fe(r26)
/* 802313F4 0022E354 80 7A 00 64 */ lwz r3, 0x64(r26)
/* 802313F8 0022E358 4B EE 41 69 */ bl EnableLooping__10CModelDataFb
/* 802313FC 0022E35C 3B 21 00 E4 */ addi r25, r1, 0xe4
/* 80231400 0022E360 3B 81 00 2C */ addi r28, r1, 0x2c
/* 80231404 0022E364 3B 61 00 24 */ addi r27, r1, 0x24
/* 80231408 0022E368 3B A0 00 00 */ li r29, 0
/* 8023140C 0022E36C 3B 00 00 00 */ li r24, 0
lbl_80231410:
/* 80231410 0022E370 38 61 00 24 */ addi r3, r1, 0x24
/* 80231414 0022E374 48 0B 1C 69 */ bl NoParameter__12CPASAnimParmFv
/* 80231418 0022E378 38 61 00 2C */ addi r3, r1, 0x2c
/* 8023141C 0022E37C 48 0B 1C 61 */ bl NoParameter__12CPASAnimParmFv
/* 80231420 0022E380 38 61 00 34 */ addi r3, r1, 0x34
/* 80231424 0022E384 48 0B 1C 59 */ bl NoParameter__12CPASAnimParmFv
/* 80231428 0022E388 38 61 00 3C */ addi r3, r1, 0x3c
/* 8023142C 0022E38C 48 0B 1C 51 */ bl NoParameter__12CPASAnimParmFv
/* 80231430 0022E390 38 61 00 44 */ addi r3, r1, 0x44
/* 80231434 0022E394 48 0B 1C 49 */ bl NoParameter__12CPASAnimParmFv
/* 80231438 0022E398 38 61 00 4C */ addi r3, r1, 0x4c
/* 8023143C 0022E39C 48 0B 1C 41 */ bl NoParameter__12CPASAnimParmFv
/* 80231440 0022E3A0 38 61 00 54 */ addi r3, r1, 0x54
/* 80231444 0022E3A4 48 0B 1C 39 */ bl NoParameter__12CPASAnimParmFv
/* 80231448 0022E3A8 7F A4 EB 78 */ mr r4, r29
/* 8023144C 0022E3AC 38 61 00 5C */ addi r3, r1, 0x5c
/* 80231450 0022E3B0 48 0B 1B 35 */ bl FromEnum__12CPASAnimParmFi
/* 80231454 0022E3B4 93 81 00 08 */ stw r28, 8(r1)
/* 80231458 0022E3B8 38 61 00 E0 */ addi r3, r1, 0xe0
/* 8023145C 0022E3BC 38 A1 00 5C */ addi r5, r1, 0x5c
/* 80231460 0022E3C0 38 C1 00 54 */ addi r6, r1, 0x54
/* 80231464 0022E3C4 93 61 00 0C */ stw r27, 0xc(r1)
/* 80231468 0022E3C8 38 E1 00 4C */ addi r7, r1, 0x4c
/* 8023146C 0022E3CC 39 01 00 44 */ addi r8, r1, 0x44
/* 80231470 0022E3D0 39 21 00 3C */ addi r9, r1, 0x3c
/* 80231474 0022E3D4 39 41 00 34 */ addi r10, r1, 0x34
/* 80231478 0022E3D8 38 80 00 16 */ li r4, 0x16
/* 8023147C 0022E3DC 4B E4 BE 49 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 80231480 0022E3E0 80 9A 00 64 */ lwz r4, 0x64(r26)
/* 80231484 0022E3E4 38 61 00 1C */ addi r3, r1, 0x1c
/* 80231488 0022E3E8 38 A1 00 E0 */ addi r5, r1, 0xe0
/* 8023148C 0022E3EC 38 C0 FF FF */ li r6, -1
/* 80231490 0022E3F0 80 84 00 10 */ lwz r4, 0x10(r4)
/* 80231494 0022E3F4 38 84 00 3C */ addi r4, r4, 0x3c
/* 80231498 0022E3F8 48 0B 3C D5 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDatai
/* 8023149C 0022E3FC 80 61 00 20 */ lwz r3, 0x20(r1)
/* 802314A0 0022E400 38 18 03 C8 */ addi r0, r24, 0x3c8
/* 802314A4 0022E404 28 19 00 00 */ cmplwi r25, 0
/* 802314A8 0022E408 7C 7A 01 2E */ stwx r3, r26, r0
/* 802314AC 0022E40C 41 82 00 5C */ beq lbl_80231508
/* 802314B0 0022E410 80 A1 00 E4 */ lwz r5, 0xe4(r1)
/* 802314B4 0022E414 38 60 00 00 */ li r3, 0
/* 802314B8 0022E418 2C 05 00 00 */ cmpwi r5, 0
/* 802314BC 0022E41C 40 81 00 44 */ ble lbl_80231500
/* 802314C0 0022E420 2C 05 00 08 */ cmpwi r5, 8
/* 802314C4 0022E424 38 85 FF F8 */ addi r4, r5, -8
/* 802314C8 0022E428 40 81 00 20 */ ble lbl_802314E8
/* 802314CC 0022E42C 38 04 00 07 */ addi r0, r4, 7
/* 802314D0 0022E430 54 00 E8 FE */ srwi r0, r0, 3
/* 802314D4 0022E434 7C 09 03 A6 */ mtctr r0
/* 802314D8 0022E438 2C 04 00 00 */ cmpwi r4, 0
/* 802314DC 0022E43C 40 81 00 0C */ ble lbl_802314E8
lbl_802314E0:
/* 802314E0 0022E440 38 63 00 08 */ addi r3, r3, 8
/* 802314E4 0022E444 42 00 FF FC */ bdnz lbl_802314E0
lbl_802314E8:
/* 802314E8 0022E448 7C 03 28 50 */ subf r0, r3, r5
/* 802314EC 0022E44C 7C 09 03 A6 */ mtctr r0
/* 802314F0 0022E450 7C 03 28 00 */ cmpw r3, r5
/* 802314F4 0022E454 40 80 00 0C */ bge lbl_80231500
lbl_802314F8:
/* 802314F8 0022E458 38 63 00 01 */ addi r3, r3, 1
/* 802314FC 0022E45C 42 00 FF FC */ bdnz lbl_802314F8
lbl_80231500:
/* 80231500 0022E460 38 00 00 00 */ li r0, 0
/* 80231504 0022E464 90 01 00 E4 */ stw r0, 0xe4(r1)
lbl_80231508:
/* 80231508 0022E468 3B BD 00 01 */ addi r29, r29, 1
/* 8023150C 0022E46C 3B 18 00 04 */ addi r24, r24, 4
/* 80231510 0022E470 2C 1D 00 04 */ cmpwi r29, 4
/* 80231514 0022E474 41 80 FE FC */ blt lbl_80231410
/* 80231518 0022E478 7F 43 D3 78 */ mr r3, r26
/* 8023151C 0022E47C E3 E1 01 78 */ psq_l f31, 376(r1), 0, qr0
/* 80231520 0022E480 CB E1 01 70 */ lfd f31, 0x170(r1)
/* 80231524 0022E484 E3 C1 01 68 */ psq_l f30, 360(r1), 0, qr0
/* 80231528 0022E488 CB C1 01 60 */ lfd f30, 0x160(r1)
/* 8023152C 0022E48C BA 61 01 2C */ lmw r19, 0x12c(r1)
/* 80231530 0022E490 80 01 01 84 */ lwz r0, 0x184(r1)
/* 80231534 0022E494 7C 08 03 A6 */ mtlr r0
/* 80231538 0022E498 38 21 01 80 */ addi r1, r1, 0x180
/* 8023153C 0022E49C 4E 80 00 20 */ blr
.global sub_80231540
sub_80231540:
/* 80231540 0022E4A0 C0 04 00 00 */ lfs f0, 0(r4)
/* 80231544 0022E4A4 D0 03 00 00 */ stfs f0, 0(r3)
/* 80231548 0022E4A8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8023154C 0022E4AC D0 03 00 04 */ stfs f0, 4(r3)
/* 80231550 0022E4B0 80 04 00 08 */ lwz r0, 8(r4)
/* 80231554 0022E4B4 90 03 00 08 */ stw r0, 8(r3)
/* 80231558 0022E4B8 88 04 00 0C */ lbz r0, 0xc(r4)
/* 8023155C 0022E4BC 98 03 00 0C */ stb r0, 0xc(r3)
/* 80231560 0022E4C0 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 80231564 0022E4C4 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 80231568 0022E4C8 C0 04 00 14 */ lfs f0, 0x14(r4)
/* 8023156C 0022E4CC D0 03 00 14 */ stfs f0, 0x14(r3)
/* 80231570 0022E4D0 C0 04 00 18 */ lfs f0, 0x18(r4)
/* 80231574 0022E4D4 D0 03 00 18 */ stfs f0, 0x18(r3)
/* 80231578 0022E4D8 C0 04 00 1C */ lfs f0, 0x1c(r4)
/* 8023157C 0022E4DC D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 80231580 0022E4E0 88 04 00 20 */ lbz r0, 0x20(r4)
/* 80231584 0022E4E4 98 03 00 20 */ stb r0, 0x20(r3)
/* 80231588 0022E4E8 80 04 00 24 */ lwz r0, 0x24(r4)
/* 8023158C 0022E4EC 90 03 00 24 */ stw r0, 0x24(r3)
/* 80231590 0022E4F0 80 04 00 28 */ lwz r0, 0x28(r4)
/* 80231594 0022E4F4 90 03 00 28 */ stw r0, 0x28(r3)
/* 80231598 0022E4F8 80 04 00 2C */ lwz r0, 0x2c(r4)
/* 8023159C 0022E4FC 90 03 00 2C */ stw r0, 0x2c(r3)
/* 802315A0 0022E500 80 04 00 30 */ lwz r0, 0x30(r4)
/* 802315A4 0022E504 90 03 00 30 */ stw r0, 0x30(r3)
/* 802315A8 0022E508 80 04 00 34 */ lwz r0, 0x34(r4)
/* 802315AC 0022E50C 90 03 00 34 */ stw r0, 0x34(r3)
/* 802315B0 0022E510 A0 04 00 38 */ lhz r0, 0x38(r4)
/* 802315B4 0022E514 B0 03 00 38 */ sth r0, 0x38(r3)
/* 802315B8 0022E518 A0 04 00 3A */ lhz r0, 0x3a(r4)
/* 802315BC 0022E51C B0 03 00 3A */ sth r0, 0x3a(r3)
/* 802315C0 0022E520 80 04 00 3C */ lwz r0, 0x3c(r4)
/* 802315C4 0022E524 90 03 00 3C */ stw r0, 0x3c(r3)
/* 802315C8 0022E528 80 04 00 40 */ lwz r0, 0x40(r4)
/* 802315CC 0022E52C 90 03 00 40 */ stw r0, 0x40(r3)
/* 802315D0 0022E530 A0 04 00 44 */ lhz r0, 0x44(r4)
/* 802315D4 0022E534 B0 03 00 44 */ sth r0, 0x44(r3)
/* 802315D8 0022E538 C0 04 00 48 */ lfs f0, 0x48(r4)
/* 802315DC 0022E53C D0 03 00 48 */ stfs f0, 0x48(r3)
/* 802315E0 0022E540 C0 04 00 4C */ lfs f0, 0x4c(r4)
/* 802315E4 0022E544 D0 03 00 4C */ stfs f0, 0x4c(r3)
/* 802315E8 0022E548 C0 04 00 50 */ lfs f0, 0x50(r4)
/* 802315EC 0022E54C D0 03 00 50 */ stfs f0, 0x50(r3)
/* 802315F0 0022E550 C0 04 00 54 */ lfs f0, 0x54(r4)
/* 802315F4 0022E554 D0 03 00 54 */ stfs f0, 0x54(r3)
/* 802315F8 0022E558 4E 80 00 20 */ blr
.global __sinit_CGrenadeLauncher_cpp
__sinit_CGrenadeLauncher_cpp:
/* 802315FC 0022E55C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80231600 0022E560 7C 08 02 A6 */ mflr r0
/* 80231604 0022E564 38 60 00 00 */ li r3, 0
/* 80231608 0022E568 38 80 00 01 */ li r4, 1
/* 8023160C 0022E56C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80231610 0022E570 38 00 00 00 */ li r0, 0
/* 80231614 0022E574 80 AD 95 E8 */ lwz r5, lbl_805A81A8@sda21(r13)
/* 80231618 0022E578 90 0D A5 2C */ stw r0, lbl_805A90EC@sda21(r13)
/* 8023161C 0022E57C 90 0D A5 28 */ stw r0, lbl_805A90E8@sda21(r13)
/* 80231620 0022E580 48 15 88 D5 */ bl __shl2i
/* 80231624 0022E584 80 0D A5 28 */ lwz r0, lbl_805A90E8@sda21(r13)
/* 80231628 0022E588 80 CD A5 2C */ lwz r6, lbl_805A90EC@sda21(r13)
/* 8023162C 0022E58C 7C 00 1B 78 */ or r0, r0, r3
/* 80231630 0022E590 80 AD 95 EC */ lwz r5, lbl_805A81AC@sda21(r13)
/* 80231634 0022E594 7C C4 23 78 */ or r4, r6, r4
/* 80231638 0022E598 90 0D A5 28 */ stw r0, lbl_805A90E8@sda21(r13)
/* 8023163C 0022E59C 38 60 00 00 */ li r3, 0
/* 80231640 0022E5A0 90 8D A5 2C */ stw r4, lbl_805A90EC@sda21(r13)
/* 80231644 0022E5A4 38 80 00 01 */ li r4, 1
/* 80231648 0022E5A8 48 15 88 AD */ bl __shl2i
/* 8023164C 0022E5AC 80 0D A5 28 */ lwz r0, lbl_805A90E8@sda21(r13)
/* 80231650 0022E5B0 80 AD A5 2C */ lwz r5, lbl_805A90EC@sda21(r13)
/* 80231654 0022E5B4 7C 00 1B 78 */ or r0, r0, r3
/* 80231658 0022E5B8 7C A3 23 78 */ or r3, r5, r4
/* 8023165C 0022E5BC 90 0D A5 28 */ stw r0, lbl_805A90E8@sda21(r13)
/* 80231660 0022E5C0 90 6D A5 2C */ stw r3, lbl_805A90EC@sda21(r13)
/* 80231664 0022E5C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80231668 0022E5C8 7C 08 03 A6 */ mtlr r0
/* 8023166C 0022E5CC 38 21 00 10 */ addi r1, r1, 0x10
/* 80231670 0022E5D0 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AD370
lbl_805AD370:
# ROM: 0x3F9C10
.4byte 0
.4byte 0x00000003
.global lbl_805AD378
lbl_805AD378:
# ROM: 0x3F9C18
.4byte lbl_803D3410
.global lbl_805AD37C
lbl_805AD37C:
# ROM: 0x3F9C1C
.4byte lbl_803D341D
.global lbl_805AD380
lbl_805AD380:
# ROM: 0x3F9C20
.float 0.5
.global lbl_805AD384
lbl_805AD384:
# ROM: 0x3F9C24
.4byte 0
.global lbl_805AD388
lbl_805AD388:
# ROM: 0x3F9C28
.4byte 0x3EA8F5C3
.global lbl_805AD38C
lbl_805AD38C:
# ROM: 0x3F9C2C
.float 1.0
.global lbl_805AD390
lbl_805AD390:
# ROM: 0x3F9C30
.float 5.0
.global lbl_805AD394
lbl_805AD394:
# ROM: 0x3F9C34
.float 0.7853982
.global lbl_805AD398
lbl_805AD398:
# ROM: 0x3F9C38
.4byte 0x40400000
.global lbl_805AD39C
lbl_805AD39C:
# ROM: 0x3F9C3C
.4byte 0x41200000
.global lbl_805AD3A0
lbl_805AD3A0:
# ROM: 0x3F9C40
.4byte 0x3F22F983
.global lbl_805AD3A4
lbl_805AD3A4:
# ROM: 0x3F9C44
.float 0.25
.global lbl_805AD3A8
lbl_805AD3A8:
# ROM: 0x3F9C48
.float 0.7853982
.global lbl_805AD3AC
lbl_805AD3AC:
# ROM: 0x3F9C4C
.4byte 0x7F7FFFFF
.global lbl_805AD3B0
lbl_805AD3B0:
# ROM: 0x3F9C50
.float 0.1
.global lbl_805AD3B4
lbl_805AD3B4:
# ROM: 0x3F9C54
.float 0.5
.global lbl_805AD3B8
lbl_805AD3B8:
# ROM: 0x3F9C58
.float 1.1920929E-7
.global lbl_805AD3BC
lbl_805AD3BC:
# ROM: 0x3F9C5C
.4byte 0x447A0000
.global lbl_805AD3C0
lbl_805AD3C0:
# ROM: 0x3F9C60
.float 0.3
.global lbl_805AD3C4
lbl_805AD3C4:
# ROM: 0x3F9C64
.float -1.0
.section .rodata
.balign 8
.global lbl_803D3410
lbl_803D3410:
# ROM: 0x3D0410
.asciz "grenade_LCTR"
.global lbl_803D341D
lbl_803D341D:
# ROM: 0x3D041D
.byte 0x6C, 0x6F, 0x63
.asciz "kon_target_LCTR"
.asciz "??(??)"
.byte 0x47
.asciz "renade Launcher Explode Fx"
.byte 0x42
.asciz "ouncy Grenade"
.balign 4
.4byte 0