prime/asm/MetroidPrime/ScriptObjects/CScriptPickup.s

1133 lines
56 KiB
ArmAsm

.include "macros.inc"
.section .data
.balign 8
.global lbl_803DF4F8
lbl_803DF4F8:
# ROM: 0x3DC4F8
.4byte 0
.4byte 0
.4byte __dt__13CScriptPickupFv
.4byte Accept__13CScriptPickupFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__13CScriptPickupFfR13CStateManager
.4byte AcceptScriptMsg__13CScriptPickupF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__6CActorFb
.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__13CScriptPickupCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__6CActorFv
.4byte HealthInfo__6CActorFR13CStateManager
.4byte GetDamageVulnerability__6CActorCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__13CScriptPickupCFv
.4byte Touch__13CScriptPickupFR6CActorR13CStateManager
.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__13CPhysicsActorCFv
.4byte GetPrimitiveTransform__13CPhysicsActorCFv
.4byte CollidedWith__13CPhysicsActorFRC9TUniqueIdRC18CCollisionInfoListR13CStateManager
.4byte GetStepDownHeight__13CPhysicsActorCFv
.4byte GetStepUpHeight__13CPhysicsActorCFv
.4byte GetWeight__13CPhysicsActorCFv
.4byte 0
.section .sdata
.balign 8
.global lbl_805A7280
lbl_805A7280:
# ROM: 0x3F4C20
.4byte 0x41F00000
.global lbl_805A7284
lbl_805A7284:
# ROM: 0x3F4C24
.float 2.0
.section .sdata2, "a"
.balign 8
.global lbl_805AAAE8
lbl_805AAAE8:
# ROM: 0x3F7388
.4byte 0
.global lbl_805AAAEC
lbl_805AAAEC:
# ROM: 0x3F738C
.float 0.5
.global lbl_805AAAF0
lbl_805AAAF0:
# ROM: 0x3F7390
.float 1.0
.global lbl_805AAAF4
lbl_805AAAF4:
# ROM: 0x3F7394
.float 5.0
.global lbl_805AAAF8
lbl_805AAAF8:
# ROM: 0x3F7398
.float 2.0
.global lbl_805AAAFC
lbl_805AAAFC:
# ROM: 0x3F739C
.float 1.1920929E-7
.global lbl_805AAB00
lbl_805AAB00:
# ROM: 0x3F73A0
.4byte 0x41A00000
.global lbl_805AAB04
lbl_805AAB04:
# ROM: 0x3F73A4
.float 0.017453292
.global lbl_805AAB08
lbl_805AAB08:
# ROM: 0x3F73A8
.4byte 0x3E22F983
.global lbl_805AAB0C
lbl_805AAB0C:
# ROM: 0x3F73AC
.float 6.2831855
.global lbl_805AAB10
lbl_805AAB10:
# ROM: 0x3F73B0
.double 4.503601774854144E15
.global lbl_805AAB18
lbl_805AAB18:
# ROM: 0x3F73B8
.float 0.3
.global lbl_805AAB1C
lbl_805AAB1C:
# ROM: 0x3F73BC
.float 0.1
.section .text, "ax"
.global SetSpawned__13CScriptPickupFv
SetSpawned__13CScriptPickupFv:
/* 800C25F0 000BF550 88 03 02 8C */ lbz r0, 0x28c(r3)
/* 800C25F4 000BF554 38 80 00 01 */ li r4, 1
/* 800C25F8 000BF558 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 800C25FC 000BF55C 98 03 02 8C */ stb r0, 0x28c(r3)
/* 800C2600 000BF560 4E 80 00 20 */ blr
.global GetPossibility__13CScriptPickupCFv
GetPossibility__13CScriptPickupCFv:
/* 800C2604 000BF564 C0 23 02 64 */ lfs f1, 0x264(r3)
/* 800C2608 000BF568 4E 80 00 20 */ blr
.global GetItem__13CScriptPickupCFv
GetItem__13CScriptPickupCFv:
/* 800C260C 000BF56C 80 63 02 58 */ lwz r3, 0x258(r3)
/* 800C2610 000BF570 4E 80 00 20 */ blr
.global Accept__13CScriptPickupFR8IVisitor
Accept__13CScriptPickupFR8IVisitor:
/* 800C2614 000BF574 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C2618 000BF578 7C 08 02 A6 */ mflr r0
/* 800C261C 000BF57C 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C2620 000BF580 7C 60 1B 78 */ mr r0, r3
/* 800C2624 000BF584 7C 83 23 78 */ mr r3, r4
/* 800C2628 000BF588 81 84 00 00 */ lwz r12, 0(r4)
/* 800C262C 000BF58C 7C 04 03 78 */ mr r4, r0
/* 800C2630 000BF590 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 800C2634 000BF594 7D 89 03 A6 */ mtctr r12
/* 800C2638 000BF598 4E 80 04 21 */ bctrl
/* 800C263C 000BF59C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C2640 000BF5A0 7C 08 03 A6 */ mtlr r0
/* 800C2644 000BF5A4 38 21 00 10 */ addi r1, r1, 0x10
/* 800C2648 000BF5A8 4E 80 00 20 */ blr
.global Render__13CScriptPickupCFRC13CStateManager
Render__13CScriptPickupCFRC13CStateManager:
/* 800C264C 000BF5AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C2650 000BF5B0 7C 08 02 A6 */ mflr r0
/* 800C2654 000BF5B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C2658 000BF5B8 48 05 7E 91 */ bl Render__13CPhysicsActorCFRC13CStateManager
/* 800C265C 000BF5BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C2660 000BF5C0 7C 08 03 A6 */ mtlr r0
/* 800C2664 000BF5C4 38 21 00 10 */ addi r1, r1, 0x10
/* 800C2668 000BF5C8 4E 80 00 20 */ blr
.global AcceptScriptMsg__13CScriptPickupF20EScriptObjectMessage9TUniqueIdR13CStateManager
AcceptScriptMsg__13CScriptPickupF20EScriptObjectMessage9TUniqueIdR13CStateManager:
/* 800C266C 000BF5CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C2670 000BF5D0 7C 08 02 A6 */ mflr r0
/* 800C2674 000BF5D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C2678 000BF5D8 A0 05 00 00 */ lhz r0, 0(r5)
/* 800C267C 000BF5DC 38 A1 00 08 */ addi r5, r1, 8
/* 800C2680 000BF5E0 B0 01 00 08 */ sth r0, 8(r1)
/* 800C2684 000BF5E4 4B F9 0F 91 */ bl AcceptScriptMsg__6CActorF20EScriptObjectMessage9TUniqueIdR13CStateManager
/* 800C2688 000BF5E8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C268C 000BF5EC 7C 08 03 A6 */ mtlr r0
/* 800C2690 000BF5F0 38 21 00 10 */ addi r1, r1, 0x10
/* 800C2694 000BF5F4 4E 80 00 20 */ blr
.global GetTouchBounds__13CScriptPickupCFv
GetTouchBounds__13CScriptPickupCFv:
/* 800C2698 000BF5F8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800C269C 000BF5FC 7C 08 02 A6 */ mflr r0
/* 800C26A0 000BF600 90 01 00 34 */ stw r0, 0x34(r1)
/* 800C26A4 000BF604 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 800C26A8 000BF608 7C 7F 1B 78 */ mr r31, r3
/* 800C26AC 000BF60C 38 61 00 08 */ addi r3, r1, 8
/* 800C26B0 000BF610 48 05 82 7D */ bl GetBoundingBox__13CPhysicsActorCFv
/* 800C26B4 000BF614 38 00 00 01 */ li r0, 1
/* 800C26B8 000BF618 28 1F 00 00 */ cmplwi r31, 0
/* 800C26BC 000BF61C 98 1F 00 18 */ stb r0, 0x18(r31)
/* 800C26C0 000BF620 41 82 00 34 */ beq lbl_800C26F4
/* 800C26C4 000BF624 C0 01 00 08 */ lfs f0, 8(r1)
/* 800C26C8 000BF628 D0 1F 00 00 */ stfs f0, 0(r31)
/* 800C26CC 000BF62C C0 01 00 0C */ lfs f0, 0xc(r1)
/* 800C26D0 000BF630 D0 1F 00 04 */ stfs f0, 4(r31)
/* 800C26D4 000BF634 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 800C26D8 000BF638 D0 1F 00 08 */ stfs f0, 8(r31)
/* 800C26DC 000BF63C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 800C26E0 000BF640 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 800C26E4 000BF644 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 800C26E8 000BF648 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 800C26EC 000BF64C C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 800C26F0 000BF650 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_800C26F4:
/* 800C26F4 000BF654 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800C26F8 000BF658 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 800C26FC 000BF65C 7C 08 03 A6 */ mtlr r0
/* 800C2700 000BF660 38 21 00 30 */ addi r1, r1, 0x30
/* 800C2704 000BF664 4E 80 00 20 */ blr
.global Touch__13CScriptPickupFR6CActorR13CStateManager
Touch__13CScriptPickupFR6CActorR13CStateManager:
/* 800C2708 000BF668 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 800C270C 000BF66C 7C 08 02 A6 */ mflr r0
/* 800C2710 000BF670 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 800C2714 000BF674 BF 21 00 A4 */ stmw r25, 0xa4(r1)
/* 800C2718 000BF678 7C 7D 1B 78 */ mr r29, r3
/* 800C271C 000BF67C 7C BE 2B 78 */ mr r30, r5
/* 800C2720 000BF680 88 03 00 30 */ lbz r0, 0x30(r3)
/* 800C2724 000BF684 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800C2728 000BF688 41 82 03 44 */ beq lbl_800C2A6C
/* 800C272C 000BF68C C0 3D 02 78 */ lfs f1, 0x278(r29)
/* 800C2730 000BF690 C0 02 8D C8 */ lfs f0, lbl_805AAAE8@sda21(r2)
/* 800C2734 000BF694 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800C2738 000BF698 4C 41 13 82 */ cror 2, 1, 2
/* 800C273C 000BF69C 41 82 03 30 */ beq lbl_800C2A6C
/* 800C2740 000BF6A0 38 61 00 44 */ addi r3, r1, 0x44
/* 800C2744 000BF6A4 4B FE 9C BD */ bl "__ct__20TCastToPtr<7CPlayer>FR7CEntity"
/* 800C2748 000BF6A8 80 03 00 04 */ lwz r0, 4(r3)
/* 800C274C 000BF6AC 28 00 00 00 */ cmplwi r0, 0
/* 800C2750 000BF6B0 41 82 03 1C */ beq lbl_800C2A6C
/* 800C2754 000BF6B4 83 FD 02 58 */ lwz r31, 0x258(r29)
/* 800C2758 000BF6B8 2C 1F 00 1D */ cmpwi r31, 0x1d
/* 800C275C 000BF6BC 41 80 00 34 */ blt lbl_800C2790
/* 800C2760 000BF6C0 2C 1F 00 28 */ cmpwi r31, 0x28
/* 800C2764 000BF6C4 41 81 00 2C */ bgt lbl_800C2790
/* 800C2768 000BF6C8 7F E3 FB 78 */ mr r3, r31
/* 800C276C 000BF6CC 48 1D A1 CD */ bl GetArtifactHeadScanFromItemType__13CArtifactDollF9EItemType
/* 800C2770 000BF6D0 3C 03 00 01 */ addis r0, r3, 1
/* 800C2774 000BF6D4 28 00 FF FF */ cmplwi r0, 0xffff
/* 800C2778 000BF6D8 41 82 00 18 */ beq lbl_800C2790
/* 800C277C 000BF6DC 80 BE 08 B8 */ lwz r5, 0x8b8(r30)
/* 800C2780 000BF6E0 7C 64 1B 78 */ mr r4, r3
/* 800C2784 000BF6E4 C0 22 8D CC */ lfs f1, lbl_805AAAEC@sda21(r2)
/* 800C2788 000BF6E8 80 65 00 00 */ lwz r3, 0(r5)
/* 800C278C 000BF6EC 4B FC EE 49 */ bl SetScanTime__12CPlayerStateFUif
lbl_800C2790:
/* 800C2790 000BF6F0 88 1D 02 88 */ lbz r0, 0x288(r29)
/* 800C2794 000BF6F4 28 00 00 00 */ cmplwi r0, 0
/* 800C2798 000BF6F8 41 82 01 84 */ beq lbl_800C291C
/* 800C279C 000BF6FC 80 7E 08 B8 */ lwz r3, 0x8b8(r30)
/* 800C27A0 000BF700 7F C4 F3 78 */ mr r4, r30
/* 800C27A4 000BF704 80 63 00 00 */ lwz r3, 0(r3)
/* 800C27A8 000BF708 4B FC ED B1 */ bl GetActiveVisor__12CPlayerStateCFRC13CStateManager
/* 800C27AC 000BF70C 2C 03 00 03 */ cmpwi r3, 3
/* 800C27B0 000BF710 41 82 01 6C */ beq lbl_800C291C
/* 800C27B4 000BF714 3C 60 80 3D */ lis r3, lbl_803CE020@ha
/* 800C27B8 000BF718 3B 80 00 00 */ li r28, 0
/* 800C27BC 000BF71C 38 83 E0 20 */ addi r4, r3, lbl_803CE020@l
/* 800C27C0 000BF720 3B 20 00 00 */ li r25, 0
/* 800C27C4 000BF724 3B 60 00 00 */ li r27, 0
/* 800C27C8 000BF728 38 60 01 00 */ li r3, 0x100
/* 800C27CC 000BF72C 38 A0 00 00 */ li r5, 0
/* 800C27D0 000BF730 48 25 30 9D */ bl __nw__FUlPCcPCc
/* 800C27D4 000BF734 7C 7A 1B 79 */ or. r26, r3, r3
/* 800C27D8 000BF738 41 82 00 CC */ beq lbl_800C28A4
/* 800C27DC 000BF73C 3B 21 00 5C */ addi r25, r1, 0x5c
/* 800C27E0 000BF740 38 9D 02 7C */ addi r4, r29, 0x27c
/* 800C27E4 000BF744 7F 23 CB 78 */ mr r3, r25
/* 800C27E8 000BF748 48 27 E6 C1 */ bl __ct__6CTokenFRC6CToken
/* 800C27EC 000BF74C 7F 23 CB 78 */ mr r3, r25
/* 800C27F0 000BF750 48 27 E6 1D */ bl GetObj__6CTokenFv
/* 800C27F4 000BF754 80 03 00 04 */ lwz r0, 4(r3)
/* 800C27F8 000BF758 7F C4 F3 78 */ mr r4, r30
/* 800C27FC 000BF75C 38 61 00 18 */ addi r3, r1, 0x18
/* 800C2800 000BF760 3B 60 00 01 */ li r27, 1
/* 800C2804 000BF764 90 01 00 64 */ stw r0, 0x64(r1)
/* 800C2808 000BF768 4B F8 A8 D5 */ bl AllocateUniqueId__13CStateManagerFv
/* 800C280C 000BF76C A0 81 00 18 */ lhz r4, 0x18(r1)
/* 800C2810 000BF770 3C 60 80 57 */ lis r3, NullConnectionList__7CEntity@ha
/* 800C2814 000BF774 38 A3 D4 10 */ addi r5, r3, NullConnectionList__7CEntity@l
/* 800C2818 000BF778 80 0D A3 88 */ lwz r0, kInvalidEditorId@sda21(r13)
/* 800C281C 000BF77C B0 81 00 1C */ sth r4, 0x1c(r1)
/* 800C2820 000BF780 38 61 00 84 */ addi r3, r1, 0x84
/* 800C2824 000BF784 38 81 00 34 */ addi r4, r1, 0x34
/* 800C2828 000BF788 38 C1 00 38 */ addi r6, r1, 0x38
/* 800C282C 000BF78C 80 FD 00 04 */ lwz r7, 4(r29)
/* 800C2830 000BF790 90 E1 00 30 */ stw r7, 0x30(r1)
/* 800C2834 000BF794 90 E1 00 34 */ stw r7, 0x34(r1)
/* 800C2838 000BF798 90 01 00 38 */ stw r0, 0x38(r1)
/* 800C283C 000BF79C 4B F8 EC 49 */ bl "__ct__11CEntityInfoF7TAreaIdRCQ24rstl48vector<11SConnection,Q24rstl17rmemory_allocator>9TEditorId"
/* 800C2840 000BF7A0 3C 80 80 3D */ lis r4, lbl_803CE020@ha
/* 800C2844 000BF7A4 38 61 00 68 */ addi r3, r1, 0x68
/* 800C2848 000BF7A8 38 84 E0 20 */ addi r4, r4, lbl_803CE020@l
/* 800C284C 000BF7AC 3B 20 00 01 */ li r25, 1
/* 800C2850 000BF7B0 38 84 00 07 */ addi r4, r4, 7
/* 800C2854 000BF7B4 4B F4 24 65 */ bl string_l__4rstlFPCc
/* 800C2858 000BF7B8 C0 02 8D D0 */ lfs f0, lbl_805AAAF0@sda21(r2)
/* 800C285C 000BF7BC 3B 80 00 01 */ li r28, 1
/* 800C2860 000BF7C0 D0 01 00 78 */ stfs f0, 0x78(r1)
/* 800C2864 000BF7C4 D0 01 00 7C */ stfs f0, 0x7c(r1)
/* 800C2868 000BF7C8 D0 01 00 80 */ stfs f0, 0x80(r1)
/* 800C286C 000BF7CC 48 28 77 41 */ bl White__6CColorFv
/* 800C2870 000BF7D0 38 01 00 78 */ addi r0, r1, 0x78
/* 800C2874 000BF7D4 38 81 00 5C */ addi r4, r1, 0x5c
/* 800C2878 000BF7D8 90 01 00 08 */ stw r0, 8(r1)
/* 800C287C 000BF7DC 38 A1 00 1C */ addi r5, r1, 0x1c
/* 800C2880 000BF7E0 38 E1 00 84 */ addi r7, r1, 0x84
/* 800C2884 000BF7E4 39 01 00 68 */ addi r8, r1, 0x68
/* 800C2888 000BF7E8 90 61 00 0C */ stw r3, 0xc(r1)
/* 800C288C 000BF7EC 7F 43 D3 78 */ mr r3, r26
/* 800C2890 000BF7F0 39 3D 00 34 */ addi r9, r29, 0x34
/* 800C2894 000BF7F4 38 C0 00 01 */ li r6, 1
/* 800C2898 000BF7F8 39 40 00 00 */ li r10, 0
/* 800C289C 000BF7FC 4B F9 82 5D */ bl "__ct__10CExplosionFRC31TLockedToken<15CGenDescription>9TUniqueIdbRC11CEntityInfoRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC12CTransform4fUiRC9CVector3fRC6CColor"
/* 800C28A0 000BF800 7C 7A 1B 78 */ mr r26, r3
lbl_800C28A4:
/* 800C28A4 000BF804 7F C3 F3 78 */ mr r3, r30
/* 800C28A8 000BF808 7F 44 D3 78 */ mr r4, r26
/* 800C28AC 000BF80C 4B F8 A4 49 */ bl AddObject__13CStateManagerFP7CEntityQ213CStateManager18EScriptPersistence
/* 800C28B0 000BF810 7F 60 07 75 */ extsb. r0, r27
/* 800C28B4 000BF814 41 82 00 10 */ beq lbl_800C28C4
/* 800C28B8 000BF818 38 61 00 5C */ addi r3, r1, 0x5c
/* 800C28BC 000BF81C 38 80 00 00 */ li r4, 0
/* 800C28C0 000BF820 48 27 E5 81 */ bl __dt__6CTokenFv
lbl_800C28C4:
/* 800C28C4 000BF824 7F 20 07 75 */ extsb. r0, r25
/* 800C28C8 000BF828 41 82 00 44 */ beq lbl_800C290C
/* 800C28CC 000BF82C 80 01 00 8C */ lwz r0, 0x8c(r1)
/* 800C28D0 000BF830 80 61 00 94 */ lwz r3, 0x94(r1)
/* 800C28D4 000BF834 1C 00 00 0C */ mulli r0, r0, 0xc
/* 800C28D8 000BF838 90 61 00 24 */ stw r3, 0x24(r1)
/* 800C28DC 000BF83C 7C 64 1B 78 */ mr r4, r3
/* 800C28E0 000BF840 7C 03 02 14 */ add r0, r3, r0
/* 800C28E4 000BF844 90 61 00 20 */ stw r3, 0x20(r1)
/* 800C28E8 000BF848 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800C28EC 000BF84C 90 01 00 28 */ stw r0, 0x28(r1)
/* 800C28F0 000BF850 48 00 00 08 */ b lbl_800C28F8
lbl_800C28F4:
/* 800C28F4 000BF854 38 84 00 0C */ addi r4, r4, 0xc
lbl_800C28F8:
/* 800C28F8 000BF858 7C 04 00 40 */ cmplw r4, r0
/* 800C28FC 000BF85C 40 82 FF F8 */ bne lbl_800C28F4
/* 800C2900 000BF860 28 03 00 00 */ cmplwi r3, 0
/* 800C2904 000BF864 41 82 00 08 */ beq lbl_800C290C
/* 800C2908 000BF868 48 25 30 29 */ bl Free__7CMemoryFPCv
lbl_800C290C:
/* 800C290C 000BF86C 7F 80 07 75 */ extsb. r0, r28
/* 800C2910 000BF870 41 82 00 0C */ beq lbl_800C291C
/* 800C2914 000BF874 38 61 00 68 */ addi r3, r1, 0x68
/* 800C2918 000BF878 48 27 B1 C9 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
lbl_800C291C:
/* 800C291C 000BF87C 80 7E 08 B8 */ lwz r3, 0x8b8(r30)
/* 800C2920 000BF880 7F E4 FB 78 */ mr r4, r31
/* 800C2924 000BF884 80 BD 02 60 */ lwz r5, 0x260(r29)
/* 800C2928 000BF888 80 63 00 00 */ lwz r3, 0(r3)
/* 800C292C 000BF88C 4B FC F4 3D */ bl InitializePowerUp__12CPlayerStateFQ212CPlayerState9EItemTypei
/* 800C2930 000BF890 80 7E 08 B8 */ lwz r3, 0x8b8(r30)
/* 800C2934 000BF894 7F E4 FB 78 */ mr r4, r31
/* 800C2938 000BF898 80 BD 02 5C */ lwz r5, 0x25c(r29)
/* 800C293C 000BF89C 80 63 00 00 */ lwz r3, 0(r3)
/* 800C2940 000BF8A0 4B FC F2 B1 */ bl IncrPickUp__12CPlayerStateFQ212CPlayerState9EItemTypei
/* 800C2944 000BF8A4 A0 1D 00 08 */ lhz r0, 8(r29)
/* 800C2948 000BF8A8 7F C3 F3 78 */ mr r3, r30
/* 800C294C 000BF8AC 38 81 00 14 */ addi r4, r1, 0x14
/* 800C2950 000BF8B0 B0 01 00 10 */ sth r0, 0x10(r1)
/* 800C2954 000BF8B4 B0 01 00 14 */ sth r0, 0x14(r1)
/* 800C2958 000BF8B8 4B F8 99 15 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
/* 800C295C 000BF8BC 7F A3 EB 78 */ mr r3, r29
/* 800C2960 000BF8C0 7F C5 F3 78 */ mr r5, r30
/* 800C2964 000BF8C4 38 80 00 01 */ li r4, 1
/* 800C2968 000BF8C8 38 C0 FF FF */ li r6, -1
/* 800C296C 000BF8CC 4B F8 E7 55 */ bl SendScriptMsgs__7CEntityF18EScriptObjectStateR13CStateManager20EScriptObjectMessage
/* 800C2970 000BF8D0 80 1D 02 60 */ lwz r0, 0x260(r29)
/* 800C2974 000BF8D4 2C 00 00 00 */ cmpwi r0, 0
/* 800C2978 000BF8D8 40 81 00 84 */ ble lbl_800C29FC
/* 800C297C 000BF8DC 80 7E 08 B8 */ lwz r3, 0x8b8(r30)
/* 800C2980 000BF8E0 83 43 00 00 */ lwz r26, 0(r3)
/* 800C2984 000BF8E4 7F 43 D3 78 */ mr r3, r26
/* 800C2988 000BF8E8 4B FC EB 25 */ bl GetTotalPickupCount__12CPlayerStateCFv
/* 800C298C 000BF8EC 7C 7B 1B 78 */ mr r27, r3
/* 800C2990 000BF8F0 7F 43 D3 78 */ mr r3, r26
/* 800C2994 000BF8F4 4B FC E8 A1 */ bl CalculateItemCollectionRate__12CPlayerStateCFv
/* 800C2998 000BF8F8 7C 03 D8 00 */ cmpw r3, r27
/* 800C299C 000BF8FC 40 82 00 60 */ bne lbl_800C29FC
/* 800C29A0 000BF900 80 8D A0 80 */ lwz r4, gpGameState@sda21(r13)
/* 800C29A4 000BF904 3C 60 80 3D */ lis r3, lbl_803CE020@ha
/* 800C29A8 000BF908 38 A3 E0 20 */ addi r5, r3, lbl_803CE020@l
/* 800C29AC 000BF90C 80 6D A0 60 */ lwz r3, gpResourceFactory@sda21(r13)
/* 800C29B0 000BF910 88 04 01 78 */ lbz r0, 0x178(r4)
/* 800C29B4 000BF914 3B 44 00 A8 */ addi r26, r4, 0xa8
/* 800C29B8 000BF918 38 85 00 38 */ addi r4, r5, 0x38
/* 800C29BC 000BF91C 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
/* 800C29C0 000BF920 41 82 00 08 */ beq lbl_800C29C8
/* 800C29C4 000BF924 38 85 00 21 */ addi r4, r5, 0x21
lbl_800C29C8:
/* 800C29C8 000BF928 81 83 00 00 */ lwz r12, 0(r3)
/* 800C29CC 000BF92C 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 800C29D0 000BF930 7D 89 03 A6 */ mtctr r12
/* 800C29D4 000BF934 4E 80 04 21 */ bctrl
/* 800C29D8 000BF938 80 9E 0F 80 */ lwz r4, 0xf80(r30)
/* 800C29DC 000BF93C 80 A3 00 04 */ lwz r5, 4(r3)
/* 800C29E0 000BF940 7F C3 F3 78 */ mr r3, r30
/* 800C29E4 000BF944 C0 22 8D C8 */ lfs f1, lbl_805AAAE8@sda21(r2)
/* 800C29E8 000BF948 38 84 00 01 */ addi r4, r4, 1
/* 800C29EC 000BF94C 4B F8 15 41 */ bl sub_80043f2c
/* 800C29F0 000BF950 7F 43 D3 78 */ mr r3, r26
/* 800C29F4 000BF954 38 80 00 01 */ li r4, 1
/* 800C29F8 000BF958 48 11 27 B9 */ bl SetAllItemsCollected__14CSystemOptionsFb
lbl_800C29FC:
/* 800C29FC 000BF95C 2C 1F 00 07 */ cmpwi r31, 7
/* 800C2A00 000BF960 40 82 00 6C */ bne lbl_800C2A6C
/* 800C2A04 000BF964 80 6D A0 80 */ lwz r3, gpGameState@sda21(r13)
/* 800C2A08 000BF968 3B 43 00 A8 */ addi r26, r3, 0xa8
/* 800C2A0C 000BF96C 7F 43 D3 78 */ mr r3, r26
/* 800C2A10 000BF970 48 11 28 45 */ bl sub_801d5254
/* 800C2A14 000BF974 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800C2A18 000BF978 41 82 00 54 */ beq lbl_800C2A6C
/* 800C2A1C 000BF97C 7F 43 D3 78 */ mr r3, r26
/* 800C2A20 000BF980 48 11 28 01 */ bl sub_801d5220
/* 800C2A24 000BF984 80 6D A0 74 */ lwz r3, gpStringTable@sda21(r13)
/* 800C2A28 000BF988 38 80 00 6D */ li r4, 0x6d
/* 800C2A2C 000BF98C 48 29 3C D1 */ bl GetString__12CStringTableCFi
/* 800C2A30 000BF990 7C 64 1B 78 */ mr r4, r3
/* 800C2A34 000BF994 38 61 00 4C */ addi r3, r1, 0x4c
/* 800C2A38 000BF998 4B F5 2F B9 */ bl wstring_l__4rstlFPCw
/* 800C2A3C 000BF99C C0 02 8D D4 */ lfs f0, lbl_805AAAF4@sda21(r2)
/* 800C2A40 000BF9A0 38 00 00 00 */ li r0, 0
/* 800C2A44 000BF9A4 38 A0 00 01 */ li r5, 1
/* 800C2A48 000BF9A8 98 01 00 41 */ stb r0, 0x41(r1)
/* 800C2A4C 000BF9AC 38 61 00 4C */ addi r3, r1, 0x4c
/* 800C2A50 000BF9B0 38 81 00 3C */ addi r4, r1, 0x3c
/* 800C2A54 000BF9B4 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 800C2A58 000BF9B8 98 A1 00 40 */ stb r5, 0x40(r1)
/* 800C2A5C 000BF9BC 98 01 00 42 */ stb r0, 0x42(r1)
/* 800C2A60 000BF9C0 4B FA 92 09 */ bl DisplayHudMemo__9CSamusHudFRC7wstringRC12SHudMemoInfo
/* 800C2A64 000BF9C4 38 61 00 4C */ addi r3, r1, 0x4c
/* 800C2A68 000BF9C8 48 27 A6 CD */ bl "internal_dereference__Q24rstl66basic_string<w,Q24rstl14char_traits<w>,Q24rstl17rmemory_allocator>Fv"
lbl_800C2A6C:
/* 800C2A6C 000BF9CC BB 21 00 A4 */ lmw r25, 0xa4(r1)
/* 800C2A70 000BF9D0 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 800C2A74 000BF9D4 7C 08 03 A6 */ mtlr r0
/* 800C2A78 000BF9D8 38 21 00 C0 */ addi r1, r1, 0xc0
/* 800C2A7C 000BF9DC 4E 80 00 20 */ blr
.global Think__13CScriptPickupFfR13CStateManager
Think__13CScriptPickupFfR13CStateManager:
/* 800C2A80 000BF9E0 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 800C2A84 000BF9E4 7C 08 02 A6 */ mflr r0
/* 800C2A88 000BF9E8 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 800C2A8C 000BF9EC DB E1 00 E0 */ stfd f31, 0xe0(r1)
/* 800C2A90 000BF9F0 F3 E1 00 E8 */ psq_st f31, 232(r1), 0, qr0
/* 800C2A94 000BF9F4 DB C1 00 D0 */ stfd f30, 0xd0(r1)
/* 800C2A98 000BF9F8 F3 C1 00 D8 */ psq_st f30, 216(r1), 0, qr0
/* 800C2A9C 000BF9FC DB A1 00 C0 */ stfd f29, 0xc0(r1)
/* 800C2AA0 000BFA00 F3 A1 00 C8 */ psq_st f29, 200(r1), 0, qr0
/* 800C2AA4 000BFA04 93 E1 00 BC */ stw r31, 0xbc(r1)
/* 800C2AA8 000BFA08 93 C1 00 B8 */ stw r30, 0xb8(r1)
/* 800C2AAC 000BFA0C 93 A1 00 B4 */ stw r29, 0xb4(r1)
/* 800C2AB0 000BFA10 88 03 00 30 */ lbz r0, 0x30(r3)
/* 800C2AB4 000BFA14 FF E0 08 90 */ fmr f31, f1
/* 800C2AB8 000BFA18 7C 7E 1B 78 */ mr r30, r3
/* 800C2ABC 000BFA1C 7C 9F 23 78 */ mr r31, r4
/* 800C2AC0 000BFA20 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800C2AC4 000BFA24 41 82 05 64 */ beq lbl_800C3028
/* 800C2AC8 000BFA28 C0 3E 02 78 */ lfs f1, 0x278(r30)
/* 800C2ACC 000BFA2C C0 02 8D C8 */ lfs f0, lbl_805AAAE8@sda21(r2)
/* 800C2AD0 000BFA30 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800C2AD4 000BFA34 4C 41 13 82 */ cror 2, 1, 2
/* 800C2AD8 000BFA38 40 82 00 18 */ bne lbl_800C2AF0
/* 800C2ADC 000BFA3C 48 05 88 9D */ bl Stop__13CPhysicsActorFv
/* 800C2AE0 000BFA40 C0 1E 02 78 */ lfs f0, 0x278(r30)
/* 800C2AE4 000BFA44 EC 00 F8 28 */ fsubs f0, f0, f31
/* 800C2AE8 000BFA48 D0 1E 02 78 */ stfs f0, 0x278(r30)
/* 800C2AEC 000BFA4C 48 00 05 3C */ b lbl_800C3028
lbl_800C2AF0:
/* 800C2AF0 000BFA50 C0 1E 02 70 */ lfs f0, 0x270(r30)
/* 800C2AF4 000BFA54 EC 00 F8 2A */ fadds f0, f0, f31
/* 800C2AF8 000BFA58 D0 1E 02 70 */ stfs f0, 0x270(r30)
/* 800C2AFC 000BFA5C 88 1E 02 8C */ lbz r0, 0x28c(r30)
/* 800C2B00 000BFA60 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 800C2B04 000BFA64 41 82 00 54 */ beq lbl_800C2B58
/* 800C2B08 000BFA68 C0 1E 02 6C */ lfs f0, 0x26c(r30)
/* 800C2B0C 000BFA6C C0 3E 02 70 */ lfs f1, 0x270(r30)
/* 800C2B10 000BFA70 C0 62 8D D8 */ lfs f3, lbl_805AAAF8@sda21(r2)
/* 800C2B14 000BFA74 EC 00 08 28 */ fsubs f0, f0, f1
/* 800C2B18 000BFA78 FC 00 18 40 */ fcmpo cr0, f0, f3
/* 800C2B1C 000BFA7C 40 80 00 3C */ bge lbl_800C2B58
/* 800C2B20 000BFA80 EC 43 0F FC */ fnmsubs f2, f3, f31, f1
/* 800C2B24 000BFA84 C0 02 8D DC */ lfs f0, lbl_805AAAFC@sda21(r2)
/* 800C2B28 000BFA88 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 800C2B2C 000BFA8C C0 3E 02 6C */ lfs f1, 0x26c(r30)
/* 800C2B30 000BFA90 EC 21 18 28 */ fsubs f1, f1, f3
/* 800C2B34 000BFA94 EC 01 00 28 */ fsubs f0, f1, f0
/* 800C2B38 000BFA98 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 800C2B3C 000BFA9C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 800C2B40 000BFAA0 40 80 00 0C */ bge lbl_800C2B4C
/* 800C2B44 000BFAA4 38 61 00 10 */ addi r3, r1, 0x10
/* 800C2B48 000BFAA8 48 00 00 08 */ b lbl_800C2B50
lbl_800C2B4C:
/* 800C2B4C 000BFAAC 38 61 00 14 */ addi r3, r1, 0x14
lbl_800C2B50:
/* 800C2B50 000BFAB0 C0 03 00 00 */ lfs f0, 0(r3)
/* 800C2B54 000BFAB4 D0 1E 02 70 */ stfs f0, 0x270(r30)
lbl_800C2B58:
/* 800C2B58 000BFAB8 C0 22 8D D0 */ lfs f1, lbl_805AAAF0@sda21(r2)
/* 800C2B5C 000BFABC 38 80 00 00 */ li r4, 0
/* 800C2B60 000BFAC0 38 00 00 03 */ li r0, 3
/* 800C2B64 000BFAC4 98 81 00 28 */ stb r4, 0x28(r1)
/* 800C2B68 000BFAC8 FC 40 08 90 */ fmr f2, f1
/* 800C2B6C 000BFACC 38 61 00 2C */ addi r3, r1, 0x2c
/* 800C2B70 000BFAD0 FC 60 08 90 */ fmr f3, f1
/* 800C2B74 000BFAD4 98 81 00 29 */ stb r4, 0x29(r1)
/* 800C2B78 000BFAD8 FC 80 08 90 */ fmr f4, f1
/* 800C2B7C 000BFADC B0 01 00 2A */ sth r0, 0x2a(r1)
/* 800C2B80 000BFAE0 48 2A 08 6D */ bl __ct__6CColorFffff
/* 800C2B84 000BFAE4 C0 3E 02 68 */ lfs f1, 0x268(r30)
/* 800C2B88 000BFAE8 C0 02 8D C8 */ lfs f0, lbl_805AAAE8@sda21(r2)
/* 800C2B8C 000BFAEC 88 61 00 28 */ lbz r3, 0x28(r1)
/* 800C2B90 000BFAF0 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 800C2B94 000BFAF4 88 81 00 29 */ lbz r4, 0x29(r1)
/* 800C2B98 000BFAF8 A0 01 00 2A */ lhz r0, 0x2a(r1)
/* 800C2B9C 000BFAFC 80 A1 00 2C */ lwz r5, 0x2c(r1)
/* 800C2BA0 000BFB00 41 82 00 68 */ beq lbl_800C2C08
/* 800C2BA4 000BFB04 C0 5E 02 70 */ lfs f2, 0x270(r30)
/* 800C2BA8 000BFB08 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 800C2BAC 000BFB0C 40 80 00 54 */ bge lbl_800C2C00
/* 800C2BB0 000BFB10 EC 82 08 24 */ fdivs f4, f2, f1
/* 800C2BB4 000BFB14 C0 22 8D D0 */ lfs f1, lbl_805AAAF0@sda21(r2)
/* 800C2BB8 000BFB18 38 A0 00 05 */ li r5, 5
/* 800C2BBC 000BFB1C 38 80 00 00 */ li r4, 0
/* 800C2BC0 000BFB20 38 00 00 03 */ li r0, 3
/* 800C2BC4 000BFB24 98 A1 00 20 */ stb r5, 0x20(r1)
/* 800C2BC8 000BFB28 FC 40 08 90 */ fmr f2, f1
/* 800C2BCC 000BFB2C 98 81 00 21 */ stb r4, 0x21(r1)
/* 800C2BD0 000BFB30 FC 60 08 90 */ fmr f3, f1
/* 800C2BD4 000BFB34 38 61 00 24 */ addi r3, r1, 0x24
/* 800C2BD8 000BFB38 B0 01 00 22 */ sth r0, 0x22(r1)
/* 800C2BDC 000BFB3C 48 2A 08 11 */ bl __ct__6CColorFffff
/* 800C2BE0 000BFB40 A0 01 00 22 */ lhz r0, 0x22(r1)
/* 800C2BE4 000BFB44 88 61 00 20 */ lbz r3, 0x20(r1)
/* 800C2BE8 000BFB48 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 800C2BEC 000BFB4C 88 81 00 21 */ lbz r4, 0x21(r1)
/* 800C2BF0 000BFB50 60 00 00 01 */ ori r0, r0, 1
/* 800C2BF4 000BFB54 80 A1 00 24 */ lwz r5, 0x24(r1)
/* 800C2BF8 000BFB58 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 800C2BFC 000BFB5C 48 00 00 98 */ b lbl_800C2C94
lbl_800C2C00:
/* 800C2C00 000BFB60 D0 1E 02 68 */ stfs f0, 0x268(r30)
/* 800C2C04 000BFB64 48 00 00 90 */ b lbl_800C2C94
lbl_800C2C08:
/* 800C2C08 000BFB68 C0 5E 02 6C */ lfs f2, 0x26c(r30)
/* 800C2C0C 000BFB6C FC 02 00 00 */ fcmpu cr0, f2, f0
/* 800C2C10 000BFB70 41 82 00 84 */ beq lbl_800C2C94
/* 800C2C14 000BFB74 C0 22 8D D8 */ lfs f1, lbl_805AAAF8@sda21(r2)
/* 800C2C18 000BFB78 C0 82 8D D0 */ lfs f4, lbl_805AAAF0@sda21(r2)
/* 800C2C1C 000BFB7C FC 02 08 40 */ fcmpo cr0, f2, f1
/* 800C2C20 000BFB80 40 80 00 14 */ bge lbl_800C2C34
/* 800C2C24 000BFB84 C0 1E 02 70 */ lfs f0, 0x270(r30)
/* 800C2C28 000BFB88 EC 02 00 24 */ fdivs f0, f2, f0
/* 800C2C2C 000BFB8C EC 84 00 28 */ fsubs f4, f4, f0
/* 800C2C30 000BFB90 48 00 00 1C */ b lbl_800C2C4C
lbl_800C2C34:
/* 800C2C34 000BFB94 C0 1E 02 70 */ lfs f0, 0x270(r30)
/* 800C2C38 000BFB98 EC 42 00 28 */ fsubs f2, f2, f0
/* 800C2C3C 000BFB9C FC 02 08 40 */ fcmpo cr0, f2, f1
/* 800C2C40 000BFBA0 40 80 00 0C */ bge lbl_800C2C4C
/* 800C2C44 000BFBA4 C0 02 8D CC */ lfs f0, lbl_805AAAEC@sda21(r2)
/* 800C2C48 000BFBA8 EC 82 00 32 */ fmuls f4, f2, f0
lbl_800C2C4C:
/* 800C2C4C 000BFBAC C0 22 8D D0 */ lfs f1, lbl_805AAAF0@sda21(r2)
/* 800C2C50 000BFBB0 38 A0 00 05 */ li r5, 5
/* 800C2C54 000BFBB4 38 80 00 00 */ li r4, 0
/* 800C2C58 000BFBB8 38 00 00 03 */ li r0, 3
/* 800C2C5C 000BFBBC FC 40 08 90 */ fmr f2, f1
/* 800C2C60 000BFBC0 98 A1 00 18 */ stb r5, 0x18(r1)
/* 800C2C64 000BFBC4 FC 60 08 90 */ fmr f3, f1
/* 800C2C68 000BFBC8 38 61 00 1C */ addi r3, r1, 0x1c
/* 800C2C6C 000BFBCC 98 81 00 19 */ stb r4, 0x19(r1)
/* 800C2C70 000BFBD0 B0 01 00 1A */ sth r0, 0x1a(r1)
/* 800C2C74 000BFBD4 48 2A 07 79 */ bl __ct__6CColorFffff
/* 800C2C78 000BFBD8 A0 01 00 1A */ lhz r0, 0x1a(r1)
/* 800C2C7C 000BFBDC 88 61 00 18 */ lbz r3, 0x18(r1)
/* 800C2C80 000BFBE0 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 800C2C84 000BFBE4 88 81 00 19 */ lbz r4, 0x19(r1)
/* 800C2C88 000BFBE8 60 00 00 01 */ ori r0, r0, 1
/* 800C2C8C 000BFBEC 80 A1 00 1C */ lwz r5, 0x1c(r1)
/* 800C2C90 000BFBF0 54 00 04 3E */ clrlwi r0, r0, 0x10
lbl_800C2C94:
/* 800C2C94 000BFBF4 98 7E 00 B4 */ stb r3, 0xb4(r30)
/* 800C2C98 000BFBF8 38 60 00 00 */ li r3, 0
/* 800C2C9C 000BFBFC 98 9E 00 B5 */ stb r4, 0xb5(r30)
/* 800C2CA0 000BFC00 B0 1E 00 B6 */ sth r0, 0xb6(r30)
/* 800C2CA4 000BFC04 90 BE 00 B8 */ stw r5, 0xb8(r30)
/* 800C2CA8 000BFC08 80 9E 00 64 */ lwz r4, 0x64(r30)
/* 800C2CAC 000BFC0C 28 04 00 00 */ cmplwi r4, 0
/* 800C2CB0 000BFC10 41 82 00 14 */ beq lbl_800C2CC4
/* 800C2CB4 000BFC14 80 04 00 10 */ lwz r0, 0x10(r4)
/* 800C2CB8 000BFC18 28 00 00 00 */ cmplwi r0, 0
/* 800C2CBC 000BFC1C 41 82 00 08 */ beq lbl_800C2CC4
/* 800C2CC0 000BFC20 38 60 00 01 */ li r3, 1
lbl_800C2CC4:
/* 800C2CC4 000BFC24 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800C2CC8 000BFC28 41 82 00 78 */ beq lbl_800C2D40
/* 800C2CCC 000BFC2C FC 20 F8 90 */ fmr f1, f31
/* 800C2CD0 000BFC30 7F C4 F3 78 */ mr r4, r30
/* 800C2CD4 000BFC34 7F E5 FB 78 */ mr r5, r31
/* 800C2CD8 000BFC38 38 61 00 60 */ addi r3, r1, 0x60
/* 800C2CDC 000BFC3C 38 C0 00 01 */ li r6, 1
/* 800C2CE0 000BFC40 4B F9 25 BD */ bl UpdateAnimation__6CActorFfR13CStateManagerb
/* 800C2CE4 000BFC44 C0 E1 00 60 */ lfs f7, 0x60(r1)
/* 800C2CE8 000BFC48 FC 20 F8 90 */ fmr f1, f31
/* 800C2CEC 000BFC4C C0 C1 00 64 */ lfs f6, 0x64(r1)
/* 800C2CF0 000BFC50 7F C3 F3 78 */ mr r3, r30
/* 800C2CF4 000BFC54 C0 A1 00 68 */ lfs f5, 0x68(r1)
/* 800C2CF8 000BFC58 3B A1 00 88 */ addi r29, r1, 0x88
/* 800C2CFC 000BFC5C C0 81 00 6C */ lfs f4, 0x6c(r1)
/* 800C2D00 000BFC60 C0 61 00 70 */ lfs f3, 0x70(r1)
/* 800C2D04 000BFC64 38 81 00 7C */ addi r4, r1, 0x7c
/* 800C2D08 000BFC68 C0 41 00 74 */ lfs f2, 0x74(r1)
/* 800C2D0C 000BFC6C C0 01 00 78 */ lfs f0, 0x78(r1)
/* 800C2D10 000BFC70 D0 E1 00 7C */ stfs f7, 0x7c(r1)
/* 800C2D14 000BFC74 D0 C1 00 80 */ stfs f6, 0x80(r1)
/* 800C2D18 000BFC78 D0 A1 00 84 */ stfs f5, 0x84(r1)
/* 800C2D1C 000BFC7C D0 81 00 88 */ stfs f4, 0x88(r1)
/* 800C2D20 000BFC80 D0 61 00 8C */ stfs f3, 0x8c(r1)
/* 800C2D24 000BFC84 D0 41 00 90 */ stfs f2, 0x90(r1)
/* 800C2D28 000BFC88 D0 01 00 94 */ stfs f0, 0x94(r1)
/* 800C2D2C 000BFC8C 48 05 81 4D */ bl MoveToOR__13CPhysicsActorFRC9CVector3ff
/* 800C2D30 000BFC90 FC 20 F8 90 */ fmr f1, f31
/* 800C2D34 000BFC94 7F C3 F3 78 */ mr r3, r30
/* 800C2D38 000BFC98 7F A4 EB 78 */ mr r4, r29
/* 800C2D3C 000BFC9C 48 05 80 D9 */ bl RotateToOR__13CPhysicsActorFRC11CQuaternionf
lbl_800C2D40:
/* 800C2D40 000BFCA0 88 7E 02 8C */ lbz r3, 0x28c(r30)
/* 800C2D44 000BFCA4 54 60 D7 FF */ rlwinm. r0, r3, 0x1a, 0x1f, 0x1f
/* 800C2D48 000BFCA8 41 82 01 54 */ beq lbl_800C2E9C
/* 800C2D4C 000BFCAC 3C 60 80 5A */ lis r3, sUpVector__9CVector3f@ha
/* 800C2D50 000BFCB0 80 9F 08 4C */ lwz r4, 0x84c(r31)
/* 800C2D54 000BFCB4 38 63 66 F4 */ addi r3, r3, sUpVector__9CVector3f@l
/* 800C2D58 000BFCB8 C0 A2 8D D8 */ lfs f5, lbl_805AAAF8@sda21(r2)
/* 800C2D5C 000BFCBC C0 43 00 04 */ lfs f2, 4(r3)
/* 800C2D60 000BFCC0 C0 23 00 08 */ lfs f1, 8(r3)
/* 800C2D64 000BFCC4 C0 03 00 00 */ lfs f0, 0(r3)
/* 800C2D68 000BFCC8 EC 85 00 B2 */ fmuls f4, f5, f2
/* 800C2D6C 000BFCCC C0 C4 00 50 */ lfs f6, 0x50(r4)
/* 800C2D70 000BFCD0 EC 45 00 72 */ fmuls f2, f5, f1
/* 800C2D74 000BFCD4 C0 64 00 60 */ lfs f3, 0x60(r4)
/* 800C2D78 000BFCD8 EC 05 00 32 */ fmuls f0, f5, f0
/* 800C2D7C 000BFCDC C0 24 00 40 */ lfs f1, 0x40(r4)
/* 800C2D80 000BFCE0 EC A6 20 2A */ fadds f5, f6, f4
/* 800C2D84 000BFCE4 C0 9E 00 50 */ lfs f4, 0x50(r30)
/* 800C2D88 000BFCE8 EC 63 10 2A */ fadds f3, f3, f2
/* 800C2D8C 000BFCEC C0 5E 00 60 */ lfs f2, 0x60(r30)
/* 800C2D90 000BFCF0 EC 21 00 2A */ fadds f1, f1, f0
/* 800C2D94 000BFCF4 C0 1E 00 40 */ lfs f0, 0x40(r30)
/* 800C2D98 000BFCF8 EC 85 20 28 */ fsubs f4, f5, f4
/* 800C2D9C 000BFCFC EC 43 10 28 */ fsubs f2, f3, f2
/* 800C2DA0 000BFD00 EC 01 00 28 */ fsubs f0, f1, f0
/* 800C2DA4 000BFD04 D0 81 00 58 */ stfs f4, 0x58(r1)
/* 800C2DA8 000BFD08 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 800C2DAC 000BFD0C D0 41 00 5C */ stfs f2, 0x5c(r1)
/* 800C2DB0 000BFD10 C0 1E 02 74 */ lfs f0, 0x274(r30)
/* 800C2DB4 000BFD14 EC 00 F8 2A */ fadds f0, f0, f31
/* 800C2DB8 000BFD18 D0 1E 02 74 */ stfs f0, 0x274(r30)
/* 800C2DBC 000BFD1C C0 2D 86 C4 */ lfs f1, lbl_805A7284@sda21(r13)
/* 800C2DC0 000BFD20 C0 1E 02 74 */ lfs f0, 0x274(r30)
/* 800C2DC4 000BFD24 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800C2DC8 000BFD28 40 80 00 0C */ bge lbl_800C2DD4
/* 800C2DCC 000BFD2C 38 8D 86 C4 */ addi r4, r13, lbl_805A7284@sda21
/* 800C2DD0 000BFD30 48 00 00 08 */ b lbl_800C2DD8
lbl_800C2DD4:
/* 800C2DD4 000BFD34 38 9E 02 74 */ addi r4, r30, 0x274
lbl_800C2DD8:
/* 800C2DD8 000BFD38 C0 22 8D CC */ lfs f1, lbl_805AAAEC@sda21(r2)
/* 800C2DDC 000BFD3C 38 61 00 3C */ addi r3, r1, 0x3c
/* 800C2DE0 000BFD40 C0 04 00 00 */ lfs f0, 0(r4)
/* 800C2DE4 000BFD44 38 81 00 54 */ addi r4, r1, 0x54
/* 800C2DE8 000BFD48 EF A1 00 32 */ fmuls f29, f1, f0
/* 800C2DEC 000BFD4C 48 25 1A 65 */ bl AsNormalized__9CVector3fCFv
/* 800C2DF0 000BFD50 C0 02 8D E0 */ lfs f0, lbl_805AAB00@sda21(r2)
/* 800C2DF4 000BFD54 C0 41 00 3C */ lfs f2, 0x3c(r1)
/* 800C2DF8 000BFD58 EC 60 07 72 */ fmuls f3, f0, f29
/* 800C2DFC 000BFD5C C0 21 00 44 */ lfs f1, 0x44(r1)
/* 800C2E00 000BFD60 C0 01 00 40 */ lfs f0, 0x40(r1)
/* 800C2E04 000BFD64 EC 43 00 B2 */ fmuls f2, f3, f2
/* 800C2E08 000BFD68 EC 23 00 72 */ fmuls f1, f3, f1
/* 800C2E0C 000BFD6C EC 03 00 32 */ fmuls f0, f3, f0
/* 800C2E10 000BFD70 D0 41 00 54 */ stfs f2, 0x54(r1)
/* 800C2E14 000BFD74 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 800C2E18 000BFD78 D0 21 00 5C */ stfs f1, 0x5c(r1)
/* 800C2E1C 000BFD7C 88 1E 02 8C */ lbz r0, 0x28c(r30)
/* 800C2E20 000BFD80 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f
/* 800C2E24 000BFD84 41 82 00 68 */ beq lbl_800C2E8C
/* 800C2E28 000BFD88 80 7F 08 4C */ lwz r3, 0x84c(r31)
/* 800C2E2C 000BFD8C 80 63 04 90 */ lwz r3, 0x490(r3)
/* 800C2E30 000BFD90 88 03 08 34 */ lbz r0, 0x834(r3)
/* 800C2E34 000BFD94 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800C2E38 000BFD98 41 82 00 0C */ beq lbl_800C2E44
/* 800C2E3C 000BFD9C C0 23 03 40 */ lfs f1, 0x340(r3)
/* 800C2E40 000BFDA0 48 00 00 08 */ b lbl_800C2E48
lbl_800C2E44:
/* 800C2E44 000BFDA4 C0 22 8D C8 */ lfs f1, lbl_805AAAE8@sda21(r2)
lbl_800C2E48:
/* 800C2E48 000BFDA8 C0 0D A1 B0 */ lfs f0, lbl_805A8D70@sda21(r13)
/* 800C2E4C 000BFDAC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800C2E50 000BFDB0 40 80 00 3C */ bge lbl_800C2E8C
/* 800C2E54 000BFDB4 88 1E 02 8C */ lbz r0, 0x28c(r30)
/* 800C2E58 000BFDB8 38 80 00 00 */ li r4, 0
/* 800C2E5C 000BFDBC 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
/* 800C2E60 000BFDC0 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
/* 800C2E64 000BFDC4 98 1E 02 8C */ stb r0, 0x28c(r30)
/* 800C2E68 000BFDC8 88 1E 02 8C */ lbz r0, 0x28c(r30)
/* 800C2E6C 000BFDCC 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 800C2E70 000BFDD0 98 1E 02 8C */ stb r0, 0x28c(r30)
/* 800C2E74 000BFDD4 C4 43 66 A0 */ lfsu f2, sZeroVector__9CVector3f@l(r3)
/* 800C2E78 000BFDD8 C0 23 00 04 */ lfs f1, 4(r3)
/* 800C2E7C 000BFDDC C0 03 00 08 */ lfs f0, 8(r3)
/* 800C2E80 000BFDE0 D0 41 00 54 */ stfs f2, 0x54(r1)
/* 800C2E84 000BFDE4 D0 21 00 58 */ stfs f1, 0x58(r1)
/* 800C2E88 000BFDE8 D0 01 00 5C */ stfs f0, 0x5c(r1)
lbl_800C2E8C:
/* 800C2E8C 000BFDEC 7F C3 F3 78 */ mr r3, r30
/* 800C2E90 000BFDF0 38 81 00 54 */ addi r4, r1, 0x54
/* 800C2E94 000BFDF4 48 05 7E 0D */ bl SetVelocityWR__13CPhysicsActorFRC9CVector3f
/* 800C2E98 000BFDF8 48 00 01 5C */ b lbl_800C2FF4
lbl_800C2E9C:
/* 800C2E9C 000BFDFC 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 800C2EA0 000BFE00 41 82 01 54 */ beq lbl_800C2FF4
/* 800C2EA4 000BFE04 80 7F 08 4C */ lwz r3, 0x84c(r31)
/* 800C2EA8 000BFE08 80 63 04 90 */ lwz r3, 0x490(r3)
/* 800C2EAC 000BFE0C 88 03 08 34 */ lbz r0, 0x834(r3)
/* 800C2EB0 000BFE10 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 800C2EB4 000BFE14 41 82 00 0C */ beq lbl_800C2EC0
/* 800C2EB8 000BFE18 C0 23 03 40 */ lfs f1, 0x340(r3)
/* 800C2EBC 000BFE1C 48 00 00 08 */ b lbl_800C2EC4
lbl_800C2EC0:
/* 800C2EC0 000BFE20 C0 22 8D C8 */ lfs f1, lbl_805AAAE8@sda21(r2)
lbl_800C2EC4:
/* 800C2EC4 000BFE24 C0 0D A1 B0 */ lfs f0, lbl_805A8D70@sda21(r13)
/* 800C2EC8 000BFE28 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800C2ECC 000BFE2C 40 81 01 28 */ ble lbl_800C2FF4
/* 800C2ED0 000BFE30 80 BF 08 70 */ lwz r5, 0x870(r31)
/* 800C2ED4 000BFE34 38 61 00 30 */ addi r3, r1, 0x30
/* 800C2ED8 000BFE38 C0 9E 00 50 */ lfs f4, 0x50(r30)
/* 800C2EDC 000BFE3C 38 81 00 48 */ addi r4, r1, 0x48
/* 800C2EE0 000BFE40 80 A5 00 7C */ lwz r5, 0x7c(r5)
/* 800C2EE4 000BFE44 C0 7E 00 60 */ lfs f3, 0x60(r30)
/* 800C2EE8 000BFE48 C0 05 00 50 */ lfs f0, 0x50(r5)
/* 800C2EEC 000BFE4C C0 45 00 60 */ lfs f2, 0x60(r5)
/* 800C2EF0 000BFE50 C0 3E 00 40 */ lfs f1, 0x40(r30)
/* 800C2EF4 000BFE54 EC 84 00 28 */ fsubs f4, f4, f0
/* 800C2EF8 000BFE58 C0 05 00 40 */ lfs f0, 0x40(r5)
/* 800C2EFC 000BFE5C EC 43 10 28 */ fsubs f2, f3, f2
/* 800C2F00 000BFE60 EC 01 00 28 */ fsubs f0, f1, f0
/* 800C2F04 000BFE64 D0 81 00 4C */ stfs f4, 0x4c(r1)
/* 800C2F08 000BFE68 D0 41 00 50 */ stfs f2, 0x50(r1)
/* 800C2F0C 000BFE6C D0 01 00 48 */ stfs f0, 0x48(r1)
/* 800C2F10 000BFE70 C3 A5 00 58 */ lfs f29, 0x58(r5)
/* 800C2F14 000BFE74 C3 C5 00 48 */ lfs f30, 0x48(r5)
/* 800C2F18 000BFE78 C3 E5 00 38 */ lfs f31, 0x38(r5)
/* 800C2F1C 000BFE7C 48 25 19 35 */ bl AsNormalized__9CVector3fCFv
/* 800C2F20 000BFE80 80 6D A1 20 */ lwz r3, gpTweakGame@sda21(r13)
/* 800C2F24 000BFE84 3C 00 43 30 */ lis r0, 0x4330
/* 800C2F28 000BFE88 C0 41 00 34 */ lfs f2, 0x34(r1)
/* 800C2F2C 000BFE8C C0 22 8D E4 */ lfs f1, lbl_805AAB04@sda21(r2)
/* 800C2F30 000BFE90 C0 03 00 24 */ lfs f0, 0x24(r3)
/* 800C2F34 000BFE94 EC 5E 00 B2 */ fmuls f2, f30, f2
/* 800C2F38 000BFE98 C0 61 00 30 */ lfs f3, 0x30(r1)
/* 800C2F3C 000BFE9C EC 81 00 32 */ fmuls f4, f1, f0
/* 800C2F40 000BFEA0 C0 02 8D E8 */ lfs f0, lbl_805AAB08@sda21(r2)
/* 800C2F44 000BFEA4 EC 3F 10 FA */ fmadds f1, f31, f3, f2
/* 800C2F48 000BFEA8 C0 41 00 38 */ lfs f2, 0x38(r1)
/* 800C2F4C 000BFEAC 90 01 00 A0 */ stw r0, 0xa0(r1)
/* 800C2F50 000BFEB0 EC 04 00 32 */ fmuls f0, f4, f0
/* 800C2F54 000BFEB4 EF BD 08 BA */ fmadds f29, f29, f2, f1
/* 800C2F58 000BFEB8 C8 62 8D F0 */ lfd f3, lbl_805AAB10@sda21(r2)
/* 800C2F5C 000BFEBC C0 42 8D EC */ lfs f2, lbl_805AAB0C@sda21(r2)
/* 800C2F60 000BFEC0 FC 20 00 1E */ fctiwz f1, f0
/* 800C2F64 000BFEC4 C0 02 8D C8 */ lfs f0, lbl_805AAAE8@sda21(r2)
/* 800C2F68 000BFEC8 D8 21 00 98 */ stfd f1, 0x98(r1)
/* 800C2F6C 000BFECC 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 800C2F70 000BFED0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 800C2F74 000BFED4 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 800C2F78 000BFED8 C8 21 00 A0 */ lfd f1, 0xa0(r1)
/* 800C2F7C 000BFEDC EC 21 18 28 */ fsubs f1, f1, f3
/* 800C2F80 000BFEE0 EC 21 20 BC */ fnmsubs f1, f1, f2, f4
/* 800C2F84 000BFEE4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800C2F88 000BFEE8 40 80 00 08 */ bge lbl_800C2F90
/* 800C2F8C 000BFEEC EC 21 10 2A */ fadds f1, f1, f2
lbl_800C2F90:
/* 800C2F90 000BFEF0 48 2D 14 61 */ bl cos
/* 800C2F94 000BFEF4 FC 00 08 18 */ frsp f0, f1
/* 800C2F98 000BFEF8 FC 1D 00 40 */ fcmpo cr0, f29, f0
/* 800C2F9C 000BFEFC 40 81 00 58 */ ble lbl_800C2FF4
/* 800C2FA0 000BFF00 C0 21 00 48 */ lfs f1, 0x48(r1)
/* 800C2FA4 000BFF04 C0 01 00 4C */ lfs f0, 0x4c(r1)
/* 800C2FA8 000BFF08 EC 41 00 72 */ fmuls f2, f1, f1
/* 800C2FAC 000BFF0C C0 61 00 50 */ lfs f3, 0x50(r1)
/* 800C2FB0 000BFF10 EC 20 00 32 */ fmuls f1, f0, f0
/* 800C2FB4 000BFF14 C0 0D 86 C0 */ lfs f0, lbl_805A7280@sda21(r13)
/* 800C2FB8 000BFF18 EC 63 00 F2 */ fmuls f3, f3, f3
/* 800C2FBC 000BFF1C EC 00 00 32 */ fmuls f0, f0, f0
/* 800C2FC0 000BFF20 EC 22 08 2A */ fadds f1, f2, f1
/* 800C2FC4 000BFF24 EC 23 08 2A */ fadds f1, f3, f1
/* 800C2FC8 000BFF28 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800C2FCC 000BFF2C 40 80 00 28 */ bge lbl_800C2FF4
/* 800C2FD0 000BFF30 88 1E 02 8C */ lbz r0, 0x28c(r30)
/* 800C2FD4 000BFF34 38 60 00 01 */ li r3, 1
/* 800C2FD8 000BFF38 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800C2FDC 000BFF3C C0 02 8D C8 */ lfs f0, lbl_805AAAE8@sda21(r2)
/* 800C2FE0 000BFF40 98 1E 02 8C */ stb r0, 0x28c(r30)
/* 800C2FE4 000BFF44 88 1E 02 8C */ lbz r0, 0x28c(r30)
/* 800C2FE8 000BFF48 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 800C2FEC 000BFF4C 98 1E 02 8C */ stb r0, 0x28c(r30)
/* 800C2FF0 000BFF50 D0 1E 02 74 */ stfs f0, 0x274(r30)
lbl_800C2FF4:
/* 800C2FF4 000BFF54 C0 3E 02 6C */ lfs f1, 0x26c(r30)
/* 800C2FF8 000BFF58 C0 02 8D C8 */ lfs f0, lbl_805AAAE8@sda21(r2)
/* 800C2FFC 000BFF5C FC 01 00 00 */ fcmpu cr0, f1, f0
/* 800C3000 000BFF60 41 82 00 28 */ beq lbl_800C3028
/* 800C3004 000BFF64 C0 1E 02 70 */ lfs f0, 0x270(r30)
/* 800C3008 000BFF68 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 800C300C 000BFF6C 40 81 00 1C */ ble lbl_800C3028
/* 800C3010 000BFF70 A0 1E 00 08 */ lhz r0, 8(r30)
/* 800C3014 000BFF74 7F E3 FB 78 */ mr r3, r31
/* 800C3018 000BFF78 38 81 00 0C */ addi r4, r1, 0xc
/* 800C301C 000BFF7C B0 01 00 08 */ sth r0, 8(r1)
/* 800C3020 000BFF80 B0 01 00 0C */ sth r0, 0xc(r1)
/* 800C3024 000BFF84 4B F8 92 49 */ bl FreeScriptObject__13CStateManagerF9TUniqueId
lbl_800C3028:
/* 800C3028 000BFF88 E3 E1 00 E8 */ psq_l f31, 232(r1), 0, qr0
/* 800C302C 000BFF8C CB E1 00 E0 */ lfd f31, 0xe0(r1)
/* 800C3030 000BFF90 E3 C1 00 D8 */ psq_l f30, 216(r1), 0, qr0
/* 800C3034 000BFF94 CB C1 00 D0 */ lfd f30, 0xd0(r1)
/* 800C3038 000BFF98 E3 A1 00 C8 */ psq_l f29, 200(r1), 0, qr0
/* 800C303C 000BFF9C CB A1 00 C0 */ lfd f29, 0xc0(r1)
/* 800C3040 000BFFA0 83 E1 00 BC */ lwz r31, 0xbc(r1)
/* 800C3044 000BFFA4 83 C1 00 B8 */ lwz r30, 0xb8(r1)
/* 800C3048 000BFFA8 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 800C304C 000BFFAC 83 A1 00 B4 */ lwz r29, 0xb4(r1)
/* 800C3050 000BFFB0 7C 08 03 A6 */ mtlr r0
/* 800C3054 000BFFB4 38 21 00 F0 */ addi r1, r1, 0xf0
/* 800C3058 000BFFB8 4E 80 00 20 */ blr
.global __dt__13CScriptPickupFv
__dt__13CScriptPickupFv:
/* 800C305C 000BFFBC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C3060 000BFFC0 7C 08 02 A6 */ mflr r0
/* 800C3064 000BFFC4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C3068 000BFFC8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800C306C 000BFFCC 7C 9F 23 78 */ mr r31, r4
/* 800C3070 000BFFD0 93 C1 00 08 */ stw r30, 8(r1)
/* 800C3074 000BFFD4 7C 7E 1B 79 */ or. r30, r3, r3
/* 800C3078 000BFFD8 41 82 00 60 */ beq lbl_800C30D8
/* 800C307C 000BFFDC 3C 60 80 3E */ lis r3, lbl_803DF4F8@ha
/* 800C3080 000BFFE0 34 1E 02 7C */ addic. r0, r30, 0x27c
/* 800C3084 000BFFE4 38 03 F4 F8 */ addi r0, r3, lbl_803DF4F8@l
/* 800C3088 000BFFE8 90 1E 00 00 */ stw r0, 0(r30)
/* 800C308C 000BFFEC 41 82 00 30 */ beq lbl_800C30BC
/* 800C3090 000BFFF0 88 1E 02 88 */ lbz r0, 0x288(r30)
/* 800C3094 000BFFF4 28 00 00 00 */ cmplwi r0, 0
/* 800C3098 000BFFF8 41 82 00 1C */ beq lbl_800C30B4
/* 800C309C 000BFFFC 34 7E 02 7C */ addic. r3, r30, 0x27c
/* 800C30A0 000C0000 41 82 00 14 */ beq lbl_800C30B4
/* 800C30A4 000C0004 28 03 00 00 */ cmplwi r3, 0
/* 800C30A8 000C0008 41 82 00 0C */ beq lbl_800C30B4
/* 800C30AC 000C000C 38 80 00 00 */ li r4, 0
/* 800C30B0 000C0010 48 27 DD 91 */ bl __dt__6CTokenFv
lbl_800C30B4:
/* 800C30B4 000C0014 38 00 00 00 */ li r0, 0
/* 800C30B8 000C0018 98 1E 02 88 */ stb r0, 0x288(r30)
lbl_800C30BC:
/* 800C30BC 000C001C 7F C3 F3 78 */ mr r3, r30
/* 800C30C0 000C0020 38 80 00 00 */ li r4, 0
/* 800C30C4 000C0024 48 05 93 51 */ bl __dt__13CPhysicsActorFv
/* 800C30C8 000C0028 7F E0 07 35 */ extsh. r0, r31
/* 800C30CC 000C002C 40 81 00 0C */ ble lbl_800C30D8
/* 800C30D0 000C0030 7F C3 F3 78 */ mr r3, r30
/* 800C30D4 000C0034 48 25 28 5D */ bl Free__7CMemoryFPCv
lbl_800C30D8:
/* 800C30D8 000C0038 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C30DC 000C003C 7F C3 F3 78 */ mr r3, r30
/* 800C30E0 000C0040 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800C30E4 000C0044 83 C1 00 08 */ lwz r30, 8(r1)
/* 800C30E8 000C0048 7C 08 03 A6 */ mtlr r0
/* 800C30EC 000C004C 38 21 00 10 */ addi r1, r1, 0x10
/* 800C30F0 000C0050 4E 80 00 20 */ blr
.global "__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxQ212CPlayerState9EItemTypeiiUiffffb"
"__ct__13CScriptPickupF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC6CAABoxQ212CPlayerState9EItemTypeiiUiffffb":
/* 800C30F4 000C0054 94 21 FE E0 */ stwu r1, -0x120(r1)
/* 800C30F8 000C0058 7C 08 02 A6 */ mflr r0
/* 800C30FC 000C005C 90 01 01 24 */ stw r0, 0x124(r1)
/* 800C3100 000C0060 DB E1 01 10 */ stfd f31, 0x110(r1)
/* 800C3104 000C0064 F3 E1 01 18 */ psq_st f31, 280(r1), 0, qr0
/* 800C3108 000C0068 DB C1 01 00 */ stfd f30, 0x100(r1)
/* 800C310C 000C006C F3 C1 01 08 */ psq_st f30, 264(r1), 0, qr0
/* 800C3110 000C0070 DB A1 00 F0 */ stfd f29, 0xf0(r1)
/* 800C3114 000C0074 F3 A1 00 F8 */ psq_st f29, 248(r1), 0, qr0
/* 800C3118 000C0078 DB 81 00 E0 */ stfd f28, 0xe0(r1)
/* 800C311C 000C007C F3 81 00 E8 */ psq_st f28, 232(r1), 0, qr0
/* 800C3120 000C0080 BE 41 00 A8 */ stmw r18, 0xa8(r1)
/* 800C3124 000C0084 FF 80 08 90 */ fmr f28, f1
/* 800C3128 000C0088 83 41 01 28 */ lwz r26, 0x128(r1)
/* 800C312C 000C008C FF A0 10 90 */ fmr f29, f2
/* 800C3130 000C0090 83 61 01 2C */ lwz r27, 0x12c(r1)
/* 800C3134 000C0094 FF C0 18 90 */ fmr f30, f3
/* 800C3138 000C0098 83 81 01 30 */ lwz r28, 0x130(r1)
/* 800C313C 000C009C FF E0 20 90 */ fmr f31, f4
/* 800C3140 000C00A0 83 A1 01 34 */ lwz r29, 0x134(r1)
/* 800C3144 000C00A4 8B C1 01 3B */ lbz r30, 0x13b(r1)
/* 800C3148 000C00A8 7C 73 1B 78 */ mr r19, r3
/* 800C314C 000C00AC 7C 92 23 78 */ mr r18, r4
/* 800C3150 000C00B0 7C B4 2B 78 */ mr r20, r5
/* 800C3154 000C00B4 7C D5 33 78 */ mr r21, r6
/* 800C3158 000C00B8 7C F6 3B 78 */ mr r22, r7
/* 800C315C 000C00BC 7D 17 43 78 */ mr r23, r8
/* 800C3160 000C00C0 7D 38 4B 78 */ mr r24, r9
/* 800C3164 000C00C4 7D 59 53 78 */ mr r25, r10
/* 800C3168 000C00C8 4B F5 83 CD */ bl Identity__10CAxisAngleFv
/* 800C316C 000C00CC 7C 7F 1B 78 */ mr r31, r3
/* 800C3170 000C00D0 4B F5 83 C5 */ bl Identity__10CAxisAngleFv
/* 800C3174 000C00D4 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 800C3178 000C00D8 C4 84 66 A0 */ lfsu f4, sZeroVector__9CVector3f@l(r4)
/* 800C317C 000C00DC C0 02 8D D0 */ lfs f0, lbl_805AAAF0@sda21(r2)
/* 800C3180 000C00E0 39 80 00 00 */ li r12, 0
/* 800C3184 000C00E4 C0 A4 00 04 */ lfs f5, 4(r4)
/* 800C3188 000C00E8 38 01 00 74 */ addi r0, r1, 0x74
/* 800C318C 000C00EC C0 C4 00 08 */ lfs f6, 8(r4)
/* 800C3190 000C00F0 7F C5 F3 78 */ mr r5, r30
/* 800C3194 000C00F4 D0 81 00 74 */ stfs f4, 0x74(r1)
/* 800C3198 000C00F8 7E 86 A3 78 */ mr r6, r20
/* 800C319C 000C00FC A1 72 00 00 */ lhz r11, 0(r18)
/* 800C31A0 000C0100 7E A7 AB 78 */ mr r7, r21
/* 800C31A4 000C0104 D0 A1 00 78 */ stfs f5, 0x78(r1)
/* 800C31A8 000C0108 7E C8 B3 78 */ mr r8, r22
/* 800C31AC 000C010C C0 22 8D F8 */ lfs f1, lbl_805AAB18@sda21(r2)
/* 800C31B0 000C0110 7E E9 BB 78 */ mr r9, r23
/* 800C31B4 000C0114 D0 C1 00 7C */ stfs f6, 0x7c(r1)
/* 800C31B8 000C0118 38 81 00 18 */ addi r4, r1, 0x18
/* 800C31BC 000C011C C0 42 8D FC */ lfs f2, lbl_805AAB1C@sda21(r2)
/* 800C31C0 000C0120 39 41 00 38 */ addi r10, r1, 0x38
/* 800C31C4 000C0124 C0 63 00 00 */ lfs f3, 0(r3)
/* 800C31C8 000C0128 D0 61 00 80 */ stfs f3, 0x80(r1)
/* 800C31CC 000C012C C0 63 00 04 */ lfs f3, 4(r3)
/* 800C31D0 000C0130 D0 61 00 84 */ stfs f3, 0x84(r1)
/* 800C31D4 000C0134 C0 63 00 08 */ lfs f3, 8(r3)
/* 800C31D8 000C0138 7E 63 9B 78 */ mr r3, r19
/* 800C31DC 000C013C D0 61 00 88 */ stfs f3, 0x88(r1)
/* 800C31E0 000C0140 D0 81 00 8C */ stfs f4, 0x8c(r1)
/* 800C31E4 000C0144 D0 A1 00 90 */ stfs f5, 0x90(r1)
/* 800C31E8 000C0148 D0 C1 00 94 */ stfs f6, 0x94(r1)
/* 800C31EC 000C014C C0 7F 00 00 */ lfs f3, 0(r31)
/* 800C31F0 000C0150 D0 61 00 98 */ stfs f3, 0x98(r1)
/* 800C31F4 000C0154 C0 7F 00 04 */ lfs f3, 4(r31)
/* 800C31F8 000C0158 D0 61 00 9C */ stfs f3, 0x9c(r1)
/* 800C31FC 000C015C C0 7F 00 08 */ lfs f3, 8(r31)
/* 800C3200 000C0160 D0 61 00 A0 */ stfs f3, 0xa0(r1)
/* 800C3204 000C0164 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 800C3208 000C0168 91 81 00 3C */ stw r12, 0x3c(r1)
/* 800C320C 000C016C 91 81 00 38 */ stw r12, 0x38(r1)
/* 800C3210 000C0170 B1 61 00 18 */ sth r11, 0x18(r1)
/* 800C3214 000C0174 93 21 00 08 */ stw r25, 8(r1)
/* 800C3218 000C0178 90 01 00 0C */ stw r0, 0xc(r1)
/* 800C321C 000C017C 93 01 00 10 */ stw r24, 0x10(r1)
/* 800C3220 000C0180 48 05 92 91 */ bl "__ct__13CPhysicsActorF9TUniqueIdbRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC13CMaterialListRC6CAABoxRC10SMoverDataRC16CActorParametersff"
/* 800C3224 000C0184 3C 60 80 3E */ lis r3, lbl_803DF4F8@ha
/* 800C3228 000C0188 3C 1D 00 01 */ addis r0, r29, 1
/* 800C322C 000C018C 38 63 F4 F8 */ addi r3, r3, lbl_803DF4F8@l
/* 800C3230 000C0190 C0 02 8D C8 */ lfs f0, lbl_805AAAE8@sda21(r2)
/* 800C3234 000C0194 90 73 00 00 */ stw r3, 0(r19)
/* 800C3238 000C0198 38 60 00 00 */ li r3, 0
/* 800C323C 000C019C 28 00 FF FF */ cmplwi r0, 0xffff
/* 800C3240 000C01A0 93 53 02 58 */ stw r26, 0x258(r19)
/* 800C3244 000C01A4 93 73 02 5C */ stw r27, 0x25c(r19)
/* 800C3248 000C01A8 93 93 02 60 */ stw r28, 0x260(r19)
/* 800C324C 000C01AC D3 93 02 64 */ stfs f28, 0x264(r19)
/* 800C3250 000C01B0 D3 D3 02 68 */ stfs f30, 0x268(r19)
/* 800C3254 000C01B4 D3 B3 02 6C */ stfs f29, 0x26c(r19)
/* 800C3258 000C01B8 D0 13 02 70 */ stfs f0, 0x270(r19)
/* 800C325C 000C01BC D3 F3 02 78 */ stfs f31, 0x278(r19)
/* 800C3260 000C01C0 98 73 02 88 */ stb r3, 0x288(r19)
/* 800C3264 000C01C4 88 13 02 8C */ lbz r0, 0x28c(r19)
/* 800C3268 000C01C8 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 800C326C 000C01CC 98 13 02 8C */ stb r0, 0x28c(r19)
/* 800C3270 000C01D0 88 13 02 8C */ lbz r0, 0x28c(r19)
/* 800C3274 000C01D4 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 800C3278 000C01D8 98 13 02 8C */ stb r0, 0x28c(r19)
/* 800C327C 000C01DC 88 13 02 8C */ lbz r0, 0x28c(r19)
/* 800C3280 000C01E0 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 800C3284 000C01E4 98 13 02 8C */ stb r0, 0x28c(r19)
/* 800C3288 000C01E8 41 82 00 B0 */ beq lbl_800C3338
/* 800C328C 000C01EC 3C 60 50 41 */ lis r3, 0x50415254@ha
/* 800C3290 000C01F0 93 A1 00 30 */ stw r29, 0x30(r1)
/* 800C3294 000C01F4 38 03 52 54 */ addi r0, r3, 0x50415254@l
/* 800C3298 000C01F8 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 800C329C 000C01FC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800C32A0 000C0200 38 61 00 24 */ addi r3, r1, 0x24
/* 800C32A4 000C0204 38 A1 00 2C */ addi r5, r1, 0x2c
/* 800C32A8 000C0208 81 84 00 00 */ lwz r12, 0(r4)
/* 800C32AC 000C020C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 800C32B0 000C0210 7D 89 03 A6 */ mtctr r12
/* 800C32B4 000C0214 4E 80 04 21 */ bctrl
/* 800C32B8 000C0218 38 61 00 40 */ addi r3, r1, 0x40
/* 800C32BC 000C021C 38 81 00 24 */ addi r4, r1, 0x24
/* 800C32C0 000C0220 48 27 DB E9 */ bl __ct__6CTokenFRC6CToken
/* 800C32C4 000C0224 38 00 00 00 */ li r0, 0
/* 800C32C8 000C0228 90 01 00 48 */ stw r0, 0x48(r1)
/* 800C32CC 000C022C 88 13 02 88 */ lbz r0, 0x288(r19)
/* 800C32D0 000C0230 28 00 00 00 */ cmplwi r0, 0
/* 800C32D4 000C0234 40 82 00 2C */ bne lbl_800C3300
/* 800C32D8 000C0238 36 93 02 7C */ addic. r20, r19, 0x27c
/* 800C32DC 000C023C 41 82 00 18 */ beq lbl_800C32F4
/* 800C32E0 000C0240 7E 83 A3 78 */ mr r3, r20
/* 800C32E4 000C0244 38 81 00 40 */ addi r4, r1, 0x40
/* 800C32E8 000C0248 48 27 DB C1 */ bl __ct__6CTokenFRC6CToken
/* 800C32EC 000C024C 80 01 00 48 */ lwz r0, 0x48(r1)
/* 800C32F0 000C0250 90 14 00 08 */ stw r0, 8(r20)
lbl_800C32F4:
/* 800C32F4 000C0254 38 00 00 01 */ li r0, 1
/* 800C32F8 000C0258 98 13 02 88 */ stb r0, 0x288(r19)
/* 800C32FC 000C025C 48 00 00 1C */ b lbl_800C3318
lbl_800C3300:
/* 800C3300 000C0260 3A 93 02 7C */ addi r20, r19, 0x27c
/* 800C3304 000C0264 38 81 00 40 */ addi r4, r1, 0x40
/* 800C3308 000C0268 7E 83 A3 78 */ mr r3, r20
/* 800C330C 000C026C 48 27 D9 B9 */ bl __as__6CTokenFRC6CToken
/* 800C3310 000C0270 80 01 00 48 */ lwz r0, 0x48(r1)
/* 800C3314 000C0274 90 14 00 08 */ stw r0, 8(r20)
lbl_800C3318:
/* 800C3318 000C0278 38 61 00 40 */ addi r3, r1, 0x40
/* 800C331C 000C027C 38 80 00 00 */ li r4, 0
/* 800C3320 000C0280 48 27 DB 21 */ bl __dt__6CTokenFv
/* 800C3324 000C0284 38 61 00 24 */ addi r3, r1, 0x24
/* 800C3328 000C0288 38 80 FF FF */ li r4, -1
/* 800C332C 000C028C 48 27 DB 15 */ bl __dt__6CTokenFv
/* 800C3330 000C0290 38 73 02 7C */ addi r3, r19, 0x27c
/* 800C3334 000C0294 48 27 DA 51 */ bl Lock__6CTokenFv
lbl_800C3338:
/* 800C3338 000C0298 80 93 00 64 */ lwz r4, 0x64(r19)
/* 800C333C 000C029C 38 60 00 00 */ li r3, 0
/* 800C3340 000C02A0 28 04 00 00 */ cmplwi r4, 0
/* 800C3344 000C02A4 41 82 00 14 */ beq lbl_800C3358
/* 800C3348 000C02A8 80 04 00 10 */ lwz r0, 0x10(r4)
/* 800C334C 000C02AC 28 00 00 00 */ cmplwi r0, 0
/* 800C3350 000C02B0 41 82 00 08 */ beq lbl_800C3358
/* 800C3354 000C02B4 38 60 00 01 */ li r3, 1
lbl_800C3358:
/* 800C3358 000C02B8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 800C335C 000C02BC 41 82 00 50 */ beq lbl_800C33AC
/* 800C3360 000C02C0 C0 02 8D D0 */ lfs f0, lbl_805AAAF0@sda21(r2)
/* 800C3364 000C02C4 38 C0 00 00 */ li r6, 0
/* 800C3368 000C02C8 38 60 FF FF */ li r3, -1
/* 800C336C 000C02CC 38 00 00 01 */ li r0, 1
/* 800C3370 000C02D0 90 C1 00 4C */ stw r6, 0x4c(r1)
/* 800C3374 000C02D4 38 81 00 4C */ addi r4, r1, 0x4c
/* 800C3378 000C02D8 38 A0 00 00 */ li r5, 0
/* 800C337C 000C02DC 90 61 00 50 */ stw r3, 0x50(r1)
/* 800C3380 000C02E0 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 800C3384 000C02E4 98 01 00 58 */ stb r0, 0x58(r1)
/* 800C3388 000C02E8 90 C1 00 5C */ stw r6, 0x5c(r1)
/* 800C338C 000C02EC 90 C1 00 60 */ stw r6, 0x60(r1)
/* 800C3390 000C02F0 98 C1 00 64 */ stb r6, 0x64(r1)
/* 800C3394 000C02F4 90 C1 00 68 */ stw r6, 0x68(r1)
/* 800C3398 000C02F8 90 C1 00 6C */ stw r6, 0x6c(r1)
/* 800C339C 000C02FC 90 C1 00 70 */ stw r6, 0x70(r1)
/* 800C33A0 000C0300 80 73 00 64 */ lwz r3, 0x64(r19)
/* 800C33A4 000C0304 80 63 00 10 */ lwz r3, 0x10(r3)
/* 800C33A8 000C0308 4B F6 99 D5 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
lbl_800C33AC:
/* 800C33AC 000C030C C0 13 02 68 */ lfs f0, 0x268(r19)
/* 800C33B0 000C0310 C0 82 8D C8 */ lfs f4, lbl_805AAAE8@sda21(r2)
/* 800C33B4 000C0314 FC 00 20 00 */ fcmpu cr0, f0, f4
/* 800C33B8 000C0318 41 82 00 58 */ beq lbl_800C3410
/* 800C33BC 000C031C C0 22 8D D0 */ lfs f1, lbl_805AAAF0@sda21(r2)
/* 800C33C0 000C0320 38 A0 00 05 */ li r5, 5
/* 800C33C4 000C0324 38 80 00 00 */ li r4, 0
/* 800C33C8 000C0328 38 00 00 03 */ li r0, 3
/* 800C33CC 000C032C FC 40 08 90 */ fmr f2, f1
/* 800C33D0 000C0330 98 A1 00 1C */ stb r5, 0x1c(r1)
/* 800C33D4 000C0334 FC 60 08 90 */ fmr f3, f1
/* 800C33D8 000C0338 38 61 00 20 */ addi r3, r1, 0x20
/* 800C33DC 000C033C 98 81 00 1D */ stb r4, 0x1d(r1)
/* 800C33E0 000C0340 B0 01 00 1E */ sth r0, 0x1e(r1)
/* 800C33E4 000C0344 48 2A 00 09 */ bl __ct__6CColorFffff
/* 800C33E8 000C0348 A0 01 00 1E */ lhz r0, 0x1e(r1)
/* 800C33EC 000C034C 88 81 00 1D */ lbz r4, 0x1d(r1)
/* 800C33F0 000C0350 54 03 00 3A */ rlwinm r3, r0, 0, 0, 0x1d
/* 800C33F4 000C0354 80 A1 00 20 */ lwz r5, 0x20(r1)
/* 800C33F8 000C0358 88 01 00 1C */ lbz r0, 0x1c(r1)
/* 800C33FC 000C035C 60 63 00 01 */ ori r3, r3, 1
/* 800C3400 000C0360 98 13 00 B4 */ stb r0, 0xb4(r19)
/* 800C3404 000C0364 98 93 00 B5 */ stb r4, 0xb5(r19)
/* 800C3408 000C0368 B0 73 00 B6 */ sth r3, 0xb6(r19)
/* 800C340C 000C036C 90 B3 00 B8 */ stw r5, 0xb8(r19)
lbl_800C3410:
/* 800C3410 000C0370 7E 63 9B 78 */ mr r3, r19
/* 800C3414 000C0374 E3 E1 01 18 */ psq_l f31, 280(r1), 0, qr0
/* 800C3418 000C0378 CB E1 01 10 */ lfd f31, 0x110(r1)
/* 800C341C 000C037C E3 C1 01 08 */ psq_l f30, 264(r1), 0, qr0
/* 800C3420 000C0380 CB C1 01 00 */ lfd f30, 0x100(r1)
/* 800C3424 000C0384 E3 A1 00 F8 */ psq_l f29, 248(r1), 0, qr0
/* 800C3428 000C0388 CB A1 00 F0 */ lfd f29, 0xf0(r1)
/* 800C342C 000C038C E3 81 00 E8 */ psq_l f28, 232(r1), 0, qr0
/* 800C3430 000C0390 CB 81 00 E0 */ lfd f28, 0xe0(r1)
/* 800C3434 000C0394 BA 41 00 A8 */ lmw r18, 0xa8(r1)
/* 800C3438 000C0398 80 01 01 24 */ lwz r0, 0x124(r1)
/* 800C343C 000C039C 7C 08 03 A6 */ mtlr r0
/* 800C3440 000C03A0 38 21 01 20 */ addi r1, r1, 0x120
/* 800C3444 000C03A4 4E 80 00 20 */ blr
.section .rodata
.balign 8
.global lbl_803CE020
lbl_803CE020:
# ROM: 0x3CB020
.asciz "??(??)"
.byte 0x45
.asciz "xplosion - Pickup Effect"
.byte 0x53, 0x54, 0x52
.asciz "G_AllPickupsFound_2"
.asciz "STRG_AllPickupsFound_1"
.balign 4