prime/asm/MetroidPrime/BodyState/CBSGroundHit.s

475 lines
22 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.balign 8
.global lbl_803E18B0
lbl_803E18B0:
# ROM: 0x3DE8B0
.4byte 0
.4byte 0
.4byte __dt__12CBSGroundHitFv
.4byte IsInAir__10CBodyStateCFRC15CBodyController
.4byte IsDead__10CBodyStateCFv
.4byte IsDying__10CBodyStateCFv
.4byte IsMoving__10CBodyStateCFv
.4byte ApplyGravity__10CBodyStateCFv
.4byte ApplyHeadTracking__10CBodyStateCFv
.4byte ApplyAnimationDeltas__10CBodyStateCFv
.4byte CanShoot__10CBodyStateCFv
.4byte Start__12CBSGroundHitFR15CBodyControllerR13CStateManager
.4byte UpdateBody__12CBSGroundHitFfR15CBodyControllerR13CStateManager
.4byte Shutdown__12CBSGroundHitFR15CBodyController
.section .text, "ax"
.global __dt__12CBSGroundHitFv
__dt__12CBSGroundHitFv:
/* 8013ED5C 0013BCBC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8013ED60 0013BCC0 7C 08 02 A6 */ mflr r0
/* 8013ED64 0013BCC4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8013ED68 0013BCC8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8013ED6C 0013BCCC 7C 7F 1B 79 */ or. r31, r3, r3
/* 8013ED70 0013BCD0 41 82 00 30 */ beq lbl_8013EDA0
/* 8013ED74 0013BCD4 3C 60 80 3E */ lis r3, lbl_803E18B0@ha
/* 8013ED78 0013BCD8 38 03 18 B0 */ addi r0, r3, lbl_803E18B0@l
/* 8013ED7C 0013BCDC 90 1F 00 00 */ stw r0, 0(r31)
/* 8013ED80 0013BCE0 41 82 00 10 */ beq lbl_8013ED90
/* 8013ED84 0013BCE4 3C 60 80 3E */ lis r3, lbl_803E1318@ha
/* 8013ED88 0013BCE8 38 03 13 18 */ addi r0, r3, lbl_803E1318@l
/* 8013ED8C 0013BCEC 90 1F 00 00 */ stw r0, 0(r31)
lbl_8013ED90:
/* 8013ED90 0013BCF0 7C 80 07 35 */ extsh. r0, r4
/* 8013ED94 0013BCF4 40 81 00 0C */ ble lbl_8013EDA0
/* 8013ED98 0013BCF8 7F E3 FB 78 */ mr r3, r31
/* 8013ED9C 0013BCFC 48 1D 6B 95 */ bl Free__7CMemoryFPCv
lbl_8013EDA0:
/* 8013EDA0 0013BD00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8013EDA4 0013BD04 7F E3 FB 78 */ mr r3, r31
/* 8013EDA8 0013BD08 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8013EDAC 0013BD0C 7C 08 03 A6 */ mtlr r0
/* 8013EDB0 0013BD10 38 21 00 10 */ addi r1, r1, 0x10
/* 8013EDB4 0013BD14 4E 80 00 20 */ blr
.global GetBodyStateTransition__12CBSGroundHitFfR15CBodyController
GetBodyStateTransition__12CBSGroundHitFfR15CBodyController:
/* 8013EDB8 0013BD18 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8013EDBC 0013BD1C 7C 08 02 A6 */ mflr r0
/* 8013EDC0 0013BD20 38 64 00 04 */ addi r3, r4, 4
/* 8013EDC4 0013BD24 90 01 00 14 */ stw r0, 0x14(r1)
/* 8013EDC8 0013BD28 88 04 03 00 */ lbz r0, 0x300(r4)
/* 8013EDCC 0013BD2C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8013EDD0 0013BD30 41 82 00 20 */ beq lbl_8013EDF0
/* 8013EDD4 0013BD34 38 80 00 02 */ li r4, 2
/* 8013EDD8 0013BD38 4B FF 26 79 */ bl GetCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 8013EDDC 0013BD3C 28 03 00 00 */ cmplwi r3, 0
/* 8013EDE0 0013BD40 38 60 00 02 */ li r3, 2
/* 8013EDE4 0013BD44 41 82 00 10 */ beq lbl_8013EDF4
/* 8013EDE8 0013BD48 38 60 00 04 */ li r3, 4
/* 8013EDEC 0013BD4C 48 00 00 08 */ b lbl_8013EDF4
lbl_8013EDF0:
/* 8013EDF0 0013BD50 38 60 FF FF */ li r3, -1
lbl_8013EDF4:
/* 8013EDF4 0013BD54 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8013EDF8 0013BD58 7C 08 03 A6 */ mtlr r0
/* 8013EDFC 0013BD5C 38 21 00 10 */ addi r1, r1, 0x10
/* 8013EE00 0013BD60 4E 80 00 20 */ blr
.global Shutdown__12CBSGroundHitFR15CBodyController
Shutdown__12CBSGroundHitFR15CBodyController:
/* 8013EE04 0013BD64 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8013EE08 0013BD68 7C 08 02 A6 */ mflr r0
/* 8013EE0C 0013BD6C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8013EE10 0013BD70 7C 80 23 78 */ mr r0, r4
/* 8013EE14 0013BD74 80 83 00 0C */ lwz r4, 0xc(r3)
/* 8013EE18 0013BD78 7C 03 03 78 */ mr r3, r0
/* 8013EE1C 0013BD7C 4B FF BD 89 */ bl SetFallState__15CBodyControllerFQ23pas10EFallState
/* 8013EE20 0013BD80 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8013EE24 0013BD84 7C 08 03 A6 */ mtlr r0
/* 8013EE28 0013BD88 38 21 00 10 */ addi r1, r1, 0x10
/* 8013EE2C 0013BD8C 4E 80 00 20 */ blr
.global UpdateBody__12CBSGroundHitFfR15CBodyControllerR13CStateManager
UpdateBody__12CBSGroundHitFfR15CBodyControllerR13CStateManager:
/* 8013EE30 0013BD90 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8013EE34 0013BD94 7C 08 02 A6 */ mflr r0
/* 8013EE38 0013BD98 90 01 00 44 */ stw r0, 0x44(r1)
/* 8013EE3C 0013BD9C DB E1 00 30 */ stfd f31, 0x30(r1)
/* 8013EE40 0013BDA0 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 8013EE44 0013BDA4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8013EE48 0013BDA8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8013EE4C 0013BDAC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8013EE50 0013BDB0 FF E0 08 90 */ fmr f31, f1
/* 8013EE54 0013BDB4 7C 7D 1B 78 */ mr r29, r3
/* 8013EE58 0013BDB8 7C 9E 23 78 */ mr r30, r4
/* 8013EE5C 0013BDBC 4B FF FF 5D */ bl GetBodyStateTransition__12CBSGroundHitFfR15CBodyController
/* 8013EE60 0013BDC0 7C 7F 1B 78 */ mr r31, r3
/* 8013EE64 0013BDC4 2C 1F FF FF */ cmpwi r31, -1
/* 8013EE68 0013BDC8 40 82 00 44 */ bne lbl_8013EEAC
/* 8013EE6C 0013BDCC C0 3D 00 08 */ lfs f1, 8(r29)
/* 8013EE70 0013BDD0 C0 02 9B 28 */ lfs f0, lbl_805AB848@sda21(r2)
/* 8013EE74 0013BDD4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8013EE78 0013BDD8 40 81 00 34 */ ble lbl_8013EEAC
/* 8013EE7C 0013BDDC C0 1D 00 04 */ lfs f0, 4(r29)
/* 8013EE80 0013BDE0 38 61 00 0C */ addi r3, r1, 0xc
/* 8013EE84 0013BDE4 38 81 00 08 */ addi r4, r1, 8
/* 8013EE88 0013BDE8 EC 00 07 F2 */ fmuls f0, f0, f31
/* 8013EE8C 0013BDEC D0 01 00 08 */ stfs f0, 8(r1)
/* 8013EE90 0013BDF0 48 1D 22 69 */ bl ZRotation__11CQuaternionFRC9CRelAngle
/* 8013EE94 0013BDF4 7F C3 F3 78 */ mr r3, r30
/* 8013EE98 0013BDF8 38 81 00 0C */ addi r4, r1, 0xc
/* 8013EE9C 0013BDFC 4B FF B9 6D */ bl SetDeltaRotation__15CBodyControllerFRC11CQuaternion
/* 8013EEA0 0013BE00 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8013EEA4 0013BE04 EC 00 F8 28 */ fsubs f0, f0, f31
/* 8013EEA8 0013BE08 D0 1D 00 08 */ stfs f0, 8(r29)
lbl_8013EEAC:
/* 8013EEAC 0013BE0C 7F E3 FB 78 */ mr r3, r31
/* 8013EEB0 0013BE10 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 8013EEB4 0013BE14 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8013EEB8 0013BE18 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 8013EEBC 0013BE1C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8013EEC0 0013BE20 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8013EEC4 0013BE24 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8013EEC8 0013BE28 7C 08 03 A6 */ mtlr r0
/* 8013EECC 0013BE2C 38 21 00 40 */ addi r1, r1, 0x40
/* 8013EED0 0013BE30 4E 80 00 20 */ blr
.global Start__12CBSGroundHitFR15CBodyControllerR13CStateManager
Start__12CBSGroundHitFR15CBodyControllerR13CStateManager:
/* 8013EED4 0013BE34 94 21 FE A0 */ stwu r1, -0x160(r1)
/* 8013EED8 0013BE38 7C 08 02 A6 */ mflr r0
/* 8013EEDC 0013BE3C 90 01 01 64 */ stw r0, 0x164(r1)
/* 8013EEE0 0013BE40 DB E1 01 50 */ stfd f31, 0x150(r1)
/* 8013EEE4 0013BE44 F3 E1 01 58 */ psq_st f31, 344(r1), 0, qr0
/* 8013EEE8 0013BE48 BF 61 01 3C */ stmw r27, 0x13c(r1)
/* 8013EEEC 0013BE4C 7C 9E 23 78 */ mr r30, r4
/* 8013EEF0 0013BE50 7C 7D 1B 78 */ mr r29, r3
/* 8013EEF4 0013BE54 7C BB 2B 78 */ mr r27, r5
/* 8013EEF8 0013BE58 38 80 00 04 */ li r4, 4
/* 8013EEFC 0013BE5C 38 7E 00 04 */ addi r3, r30, 4
/* 8013EF00 0013BE60 4B FF 25 51 */ bl GetCmd__16CBodyStateCmdMgrF13EBodyStateCmd
/* 8013EF04 0013BE64 80 9E 00 00 */ lwz r4, 0(r30)
/* 8013EF08 0013BE68 7C 65 1B 78 */ mr r5, r3
/* 8013EF0C 0013BE6C 38 61 00 90 */ addi r3, r1, 0x90
/* 8013EF10 0013BE70 38 84 00 34 */ addi r4, r4, 0x34
/* 8013EF14 0013BE74 38 A5 00 08 */ addi r5, r5, 8
/* 8013EF18 0013BE78 48 1D 3B 0D */ bl TransposeRotate__12CTransform4fCFRC9CVector3f
/* 8013EF1C 0013BE7C C0 21 00 94 */ lfs f1, 0x94(r1)
/* 8013EF20 0013BE80 C0 41 00 90 */ lfs f2, 0x90(r1)
/* 8013EF24 0013BE84 48 25 5D 49 */ bl atan2
/* 8013EF28 0013BE88 FC 80 08 18 */ frsp f4, f1
/* 8013EF2C 0013BE8C C0 02 9B 2C */ lfs f0, lbl_805AB84C@sda21(r2)
/* 8013EF30 0013BE90 3C 00 43 30 */ lis r0, 0x4330
/* 8013EF34 0013BE94 C8 62 9B 50 */ lfd f3, lbl_805AB870@sda21(r2)
/* 8013EF38 0013BE98 90 01 01 18 */ stw r0, 0x118(r1)
/* 8013EF3C 0013BE9C EC 44 00 32 */ fmuls f2, f4, f0
/* 8013EF40 0013BEA0 C0 22 9B 30 */ lfs f1, lbl_805AB850@sda21(r2)
/* 8013EF44 0013BEA4 C0 02 9B 28 */ lfs f0, lbl_805AB848@sda21(r2)
/* 8013EF48 0013BEA8 FC 40 10 1E */ fctiwz f2, f2
/* 8013EF4C 0013BEAC D8 41 01 10 */ stfd f2, 0x110(r1)
/* 8013EF50 0013BEB0 80 01 01 14 */ lwz r0, 0x114(r1)
/* 8013EF54 0013BEB4 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8013EF58 0013BEB8 90 01 01 1C */ stw r0, 0x11c(r1)
/* 8013EF5C 0013BEBC C8 41 01 18 */ lfd f2, 0x118(r1)
/* 8013EF60 0013BEC0 EC 42 18 28 */ fsubs f2, f2, f3
/* 8013EF64 0013BEC4 EF E2 20 7C */ fnmsubs f31, f2, f1, f4
/* 8013EF68 0013BEC8 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8013EF6C 0013BECC 40 80 00 08 */ bge lbl_8013EF74
/* 8013EF70 0013BED0 EF FF 08 2A */ fadds f31, f31, f1
lbl_8013EF74:
/* 8013EF74 0013BED4 7F C3 F3 78 */ mr r3, r30
/* 8013EF78 0013BED8 4B FF BC 35 */ bl GetFallState__15CBodyControllerCFv
/* 8013EF7C 0013BEDC 7C 60 1B 78 */ mr r0, r3
/* 8013EF80 0013BEE0 7F C3 F3 78 */ mr r3, r30
/* 8013EF84 0013BEE4 7C 1F 03 78 */ mr r31, r0
/* 8013EF88 0013BEE8 4B FF B4 CD */ bl GetPASDatabase__15CBodyControllerCFv
/* 8013EF8C 0013BEEC 7C 60 1B 78 */ mr r0, r3
/* 8013EF90 0013BEF0 38 61 00 38 */ addi r3, r1, 0x38
/* 8013EF94 0013BEF4 7C 1C 03 78 */ mr r28, r0
/* 8013EF98 0013BEF8 48 1A 40 E5 */ bl NoParameter__12CPASAnimParmFv
/* 8013EF9C 0013BEFC 38 61 00 40 */ addi r3, r1, 0x40
/* 8013EFA0 0013BF00 48 1A 40 DD */ bl NoParameter__12CPASAnimParmFv
/* 8013EFA4 0013BF04 38 61 00 48 */ addi r3, r1, 0x48
/* 8013EFA8 0013BF08 48 1A 40 D5 */ bl NoParameter__12CPASAnimParmFv
/* 8013EFAC 0013BF0C 38 61 00 50 */ addi r3, r1, 0x50
/* 8013EFB0 0013BF10 48 1A 40 CD */ bl NoParameter__12CPASAnimParmFv
/* 8013EFB4 0013BF14 38 61 00 58 */ addi r3, r1, 0x58
/* 8013EFB8 0013BF18 48 1A 40 C5 */ bl NoParameter__12CPASAnimParmFv
/* 8013EFBC 0013BF1C 38 61 00 60 */ addi r3, r1, 0x60
/* 8013EFC0 0013BF20 48 1A 40 BD */ bl NoParameter__12CPASAnimParmFv
/* 8013EFC4 0013BF24 C0 02 9B 34 */ lfs f0, lbl_805AB854@sda21(r2)
/* 8013EFC8 0013BF28 38 61 00 68 */ addi r3, r1, 0x68
/* 8013EFCC 0013BF2C EC 20 07 F2 */ fmuls f1, f0, f31
/* 8013EFD0 0013BF30 48 1A 40 19 */ bl FromReal32__12CPASAnimParmFf
/* 8013EFD4 0013BF34 7F E4 FB 78 */ mr r4, r31
/* 8013EFD8 0013BF38 38 61 00 70 */ addi r3, r1, 0x70
/* 8013EFDC 0013BF3C 48 1A 3F A9 */ bl FromEnum__12CPASAnimParmFi
/* 8013EFE0 0013BF40 38 61 00 40 */ addi r3, r1, 0x40
/* 8013EFE4 0013BF44 38 01 00 38 */ addi r0, r1, 0x38
/* 8013EFE8 0013BF48 90 61 00 08 */ stw r3, 8(r1)
/* 8013EFEC 0013BF4C 38 61 00 C4 */ addi r3, r1, 0xc4
/* 8013EFF0 0013BF50 38 A1 00 70 */ addi r5, r1, 0x70
/* 8013EFF4 0013BF54 38 C1 00 68 */ addi r6, r1, 0x68
/* 8013EFF8 0013BF58 90 01 00 0C */ stw r0, 0xc(r1)
/* 8013EFFC 0013BF5C 38 E1 00 60 */ addi r7, r1, 0x60
/* 8013F000 0013BF60 39 01 00 58 */ addi r8, r1, 0x58
/* 8013F004 0013BF64 39 21 00 50 */ addi r9, r1, 0x50
/* 8013F008 0013BF68 39 41 00 48 */ addi r10, r1, 0x48
/* 8013F00C 0013BF6C 38 80 00 0B */ li r4, 0xb
/* 8013F010 0013BF70 4B F3 E2 B5 */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 8013F014 0013BF74 80 DB 09 00 */ lwz r6, 0x900(r27)
/* 8013F018 0013BF78 7F 84 E3 78 */ mr r4, r28
/* 8013F01C 0013BF7C 38 61 00 30 */ addi r3, r1, 0x30
/* 8013F020 0013BF80 38 A1 00 C4 */ addi r5, r1, 0xc4
/* 8013F024 0013BF84 38 E0 FF FF */ li r7, -1
/* 8013F028 0013BF88 48 1A 60 39 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 8013F02C 0013BF8C 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 8013F030 0013BF90 38 00 00 00 */ li r0, 0
/* 8013F034 0013BF94 C0 02 9B 38 */ lfs f0, lbl_805AB858@sda21(r2)
/* 8013F038 0013BF98 38 A0 FF FF */ li r5, -1
/* 8013F03C 0013BF9C 38 E0 00 01 */ li r7, 1
/* 8013F040 0013BFA0 93 E1 00 9C */ stw r31, 0x9c(r1)
/* 8013F044 0013BFA4 7F C3 F3 78 */ mr r3, r30
/* 8013F048 0013BFA8 38 81 00 9C */ addi r4, r1, 0x9c
/* 8013F04C 0013BFAC 90 A1 00 A0 */ stw r5, 0xa0(r1)
/* 8013F050 0013BFB0 38 A0 00 00 */ li r5, 0
/* 8013F054 0013BFB4 38 C0 00 00 */ li r6, 0
/* 8013F058 0013BFB8 D0 01 00 A4 */ stfs f0, 0xa4(r1)
/* 8013F05C 0013BFBC 98 E1 00 A8 */ stb r7, 0xa8(r1)
/* 8013F060 0013BFC0 90 01 00 AC */ stw r0, 0xac(r1)
/* 8013F064 0013BFC4 90 01 00 B0 */ stw r0, 0xb0(r1)
/* 8013F068 0013BFC8 98 01 00 B4 */ stb r0, 0xb4(r1)
/* 8013F06C 0013BFCC 90 01 00 B8 */ stw r0, 0xb8(r1)
/* 8013F070 0013BFD0 90 01 00 BC */ stw r0, 0xbc(r1)
/* 8013F074 0013BFD4 90 01 00 C0 */ stw r0, 0xc0(r1)
/* 8013F078 0013BFD8 4B FF B8 A5 */ bl SetCurrentAnimation__15CBodyControllerFRC18CAnimPlaybackParmsbb
/* 8013F07C 0013BFDC 7F 83 E3 78 */ mr r3, r28
/* 8013F080 0013BFE0 38 80 00 0B */ li r4, 0xb
/* 8013F084 0013BFE4 48 1A 5E 41 */ bl GetAnimState__12CPASDatabaseCFi
/* 8013F088 0013BFE8 7C 7C 1B 78 */ mr r28, r3
/* 8013F08C 0013BFEC 7F E5 FB 78 */ mr r5, r31
/* 8013F090 0013BFF0 38 61 00 28 */ addi r3, r1, 0x28
/* 8013F094 0013BFF4 38 C0 00 02 */ li r6, 2
/* 8013F098 0013BFF8 7F 84 E3 78 */ mr r4, r28
/* 8013F09C 0013BFFC 48 1A 4F 59 */ bl GetAnimParmData__13CPASAnimStateCFiUi
/* 8013F0A0 0013C000 80 81 00 28 */ lwz r4, 0x28(r1)
/* 8013F0A4 0013C004 38 61 00 88 */ addi r3, r1, 0x88
/* 8013F0A8 0013C008 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8013F0AC 0013C00C 90 81 00 88 */ stw r4, 0x88(r1)
/* 8013F0B0 0013C010 90 01 00 8C */ stw r0, 0x8c(r1)
/* 8013F0B4 0013C014 48 1A 3E B1 */ bl GetBoolValue__12CPASAnimParmCFv
/* 8013F0B8 0013C018 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8013F0BC 0013C01C 40 82 01 50 */ bne lbl_8013F20C
/* 8013F0C0 0013C020 7F 84 E3 78 */ mr r4, r28
/* 8013F0C4 0013C024 7F E5 FB 78 */ mr r5, r31
/* 8013F0C8 0013C028 38 61 00 20 */ addi r3, r1, 0x20
/* 8013F0CC 0013C02C 38 C0 00 01 */ li r6, 1
/* 8013F0D0 0013C030 48 1A 4F 25 */ bl GetAnimParmData__13CPASAnimStateCFiUi
/* 8013F0D4 0013C034 80 81 00 20 */ lwz r4, 0x20(r1)
/* 8013F0D8 0013C038 38 61 00 80 */ addi r3, r1, 0x80
/* 8013F0DC 0013C03C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8013F0E0 0013C040 90 81 00 80 */ stw r4, 0x80(r1)
/* 8013F0E4 0013C044 90 01 00 84 */ stw r0, 0x84(r1)
/* 8013F0E8 0013C048 48 1A 3E 85 */ bl GetReal32Value__12CPASAnimParmCFv
/* 8013F0EC 0013C04C C0 02 9B 3C */ lfs f0, lbl_805AB85C@sda21(r2)
/* 8013F0F0 0013C050 3C 00 43 30 */ lis r0, 0x4330
/* 8013F0F4 0013C054 C0 42 9B 2C */ lfs f2, lbl_805AB84C@sda21(r2)
/* 8013F0F8 0013C058 EC A0 00 72 */ fmuls f5, f0, f1
/* 8013F0FC 0013C05C 90 01 01 10 */ stw r0, 0x110(r1)
/* 8013F100 0013C060 C8 62 9B 50 */ lfd f3, lbl_805AB870@sda21(r2)
/* 8013F104 0013C064 C0 22 9B 30 */ lfs f1, lbl_805AB850@sda21(r2)
/* 8013F108 0013C068 EC 9F 28 28 */ fsubs f4, f31, f5
/* 8013F10C 0013C06C C0 02 9B 28 */ lfs f0, lbl_805AB848@sda21(r2)
/* 8013F110 0013C070 EC 44 00 B2 */ fmuls f2, f4, f2
/* 8013F114 0013C074 FC 40 10 1E */ fctiwz f2, f2
/* 8013F118 0013C078 D8 41 01 18 */ stfd f2, 0x118(r1)
/* 8013F11C 0013C07C 80 01 01 1C */ lwz r0, 0x11c(r1)
/* 8013F120 0013C080 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8013F124 0013C084 90 01 01 14 */ stw r0, 0x114(r1)
/* 8013F128 0013C088 C8 41 01 10 */ lfd f2, 0x110(r1)
/* 8013F12C 0013C08C EC 42 18 28 */ fsubs f2, f2, f3
/* 8013F130 0013C090 EC C2 20 7C */ fnmsubs f6, f2, f1, f4
/* 8013F134 0013C094 FC 80 30 90 */ fmr f4, f6
/* 8013F138 0013C098 FC 06 00 40 */ fcmpo cr0, f6, f0
/* 8013F13C 0013C09C 40 80 00 08 */ bge lbl_8013F144
/* 8013F140 0013C0A0 EC 86 08 2A */ fadds f4, f6, f1
lbl_8013F144:
/* 8013F144 0013C0A4 EC A5 F8 28 */ fsubs f5, f5, f31
/* 8013F148 0013C0A8 C0 02 9B 2C */ lfs f0, lbl_805AB84C@sda21(r2)
/* 8013F14C 0013C0AC 3C 00 43 30 */ lis r0, 0x4330
/* 8013F150 0013C0B0 C8 62 9B 50 */ lfd f3, lbl_805AB870@sda21(r2)
/* 8013F154 0013C0B4 90 01 01 28 */ stw r0, 0x128(r1)
/* 8013F158 0013C0B8 EC 45 00 32 */ fmuls f2, f5, f0
/* 8013F15C 0013C0BC C0 22 9B 30 */ lfs f1, lbl_805AB850@sda21(r2)
/* 8013F160 0013C0C0 C0 02 9B 28 */ lfs f0, lbl_805AB848@sda21(r2)
/* 8013F164 0013C0C4 FC 40 10 1E */ fctiwz f2, f2
/* 8013F168 0013C0C8 D0 81 00 14 */ stfs f4, 0x14(r1)
/* 8013F16C 0013C0CC D8 41 01 20 */ stfd f2, 0x120(r1)
/* 8013F170 0013C0D0 80 01 01 24 */ lwz r0, 0x124(r1)
/* 8013F174 0013C0D4 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8013F178 0013C0D8 90 01 01 2C */ stw r0, 0x12c(r1)
/* 8013F17C 0013C0DC C8 41 01 28 */ lfd f2, 0x128(r1)
/* 8013F180 0013C0E0 EC 42 18 28 */ fsubs f2, f2, f3
/* 8013F184 0013C0E4 EC 42 28 7C */ fnmsubs f2, f2, f1, f5
/* 8013F188 0013C0E8 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8013F18C 0013C0EC 40 80 00 08 */ bge lbl_8013F194
/* 8013F190 0013C0F0 EC 42 08 2A */ fadds f2, f2, f1
lbl_8013F194:
/* 8013F194 0013C0F4 FC 02 20 40 */ fcmpo cr0, f2, f4
/* 8013F198 0013C0F8 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8013F19C 0013C0FC 40 80 00 0C */ bge lbl_8013F1A8
/* 8013F1A0 0013C100 38 61 00 10 */ addi r3, r1, 0x10
/* 8013F1A4 0013C104 48 00 00 08 */ b lbl_8013F1AC
lbl_8013F1A8:
/* 8013F1A8 0013C108 38 61 00 14 */ addi r3, r1, 0x14
lbl_8013F1AC:
/* 8013F1AC 0013C10C C0 02 9B 28 */ lfs f0, lbl_805AB848@sda21(r2)
/* 8013F1B0 0013C110 C0 23 00 00 */ lfs f1, 0(r3)
/* 8013F1B4 0013C114 FC 06 00 40 */ fcmpo cr0, f6, f0
/* 8013F1B8 0013C118 40 80 00 0C */ bge lbl_8013F1C4
/* 8013F1BC 0013C11C C0 02 9B 30 */ lfs f0, lbl_805AB850@sda21(r2)
/* 8013F1C0 0013C120 EC C6 00 2A */ fadds f6, f6, f0
lbl_8013F1C4:
/* 8013F1C4 0013C124 C0 02 9B 40 */ lfs f0, lbl_805AB860@sda21(r2)
/* 8013F1C8 0013C128 FC 06 00 40 */ fcmpo cr0, f6, f0
/* 8013F1CC 0013C12C 40 81 00 0C */ ble lbl_8013F1D8
/* 8013F1D0 0013C130 FF E0 08 50 */ fneg f31, f1
/* 8013F1D4 0013C134 48 00 00 08 */ b lbl_8013F1DC
lbl_8013F1D8:
/* 8013F1D8 0013C138 FF E0 08 90 */ fmr f31, f1
lbl_8013F1DC:
/* 8013F1DC 0013C13C 7F C3 F3 78 */ mr r3, r30
/* 8013F1E0 0013C140 4B FF B6 D9 */ bl GetAnimTimeRemaining__15CBodyControllerCFv
/* 8013F1E4 0013C144 C0 42 9B 44 */ lfs f2, lbl_805AB864@sda21(r2)
/* 8013F1E8 0013C148 C0 02 9B 48 */ lfs f0, lbl_805AB868@sda21(r2)
/* 8013F1EC 0013C14C EC 22 00 72 */ fmuls f1, f2, f1
/* 8013F1F0 0013C150 D0 3D 00 08 */ stfs f1, 8(r29)
/* 8013F1F4 0013C154 C0 3D 00 08 */ lfs f1, 8(r29)
/* 8013F1F8 0013C158 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8013F1FC 0013C15C 40 81 00 08 */ ble lbl_8013F204
/* 8013F200 0013C160 EF FF 08 24 */ fdivs f31, f31, f1
lbl_8013F204:
/* 8013F204 0013C164 D3 FD 00 04 */ stfs f31, 4(r29)
/* 8013F208 0013C168 48 00 00 10 */ b lbl_8013F218
lbl_8013F20C:
/* 8013F20C 0013C16C C0 02 9B 28 */ lfs f0, lbl_805AB848@sda21(r2)
/* 8013F210 0013C170 D0 1D 00 08 */ stfs f0, 8(r29)
/* 8013F214 0013C174 D0 1D 00 04 */ stfs f0, 4(r29)
lbl_8013F218:
/* 8013F218 0013C178 7F 84 E3 78 */ mr r4, r28
/* 8013F21C 0013C17C 7F E5 FB 78 */ mr r5, r31
/* 8013F220 0013C180 38 61 00 18 */ addi r3, r1, 0x18
/* 8013F224 0013C184 38 C0 00 03 */ li r6, 3
/* 8013F228 0013C188 48 1A 4D CD */ bl GetAnimParmData__13CPASAnimStateCFiUi
/* 8013F22C 0013C18C 80 81 00 18 */ lwz r4, 0x18(r1)
/* 8013F230 0013C190 38 61 00 78 */ addi r3, r1, 0x78
/* 8013F234 0013C194 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8013F238 0013C198 90 81 00 78 */ stw r4, 0x78(r1)
/* 8013F23C 0013C19C 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8013F240 0013C1A0 48 1A 3D 1D */ bl GetEnumValue__12CPASAnimParmCFv
/* 8013F244 0013C1A4 34 A1 00 C8 */ addic. r5, r1, 0xc8
/* 8013F248 0013C1A8 90 7D 00 0C */ stw r3, 0xc(r29)
/* 8013F24C 0013C1AC 41 82 00 58 */ beq lbl_8013F2A4
/* 8013F250 0013C1B0 80 C5 00 00 */ lwz r6, 0(r5)
/* 8013F254 0013C1B4 38 60 00 00 */ li r3, 0
/* 8013F258 0013C1B8 2C 06 00 00 */ cmpwi r6, 0
/* 8013F25C 0013C1BC 40 81 00 40 */ ble lbl_8013F29C
/* 8013F260 0013C1C0 2C 06 00 08 */ cmpwi r6, 8
/* 8013F264 0013C1C4 38 86 FF F8 */ addi r4, r6, -8
/* 8013F268 0013C1C8 40 81 00 20 */ ble lbl_8013F288
/* 8013F26C 0013C1CC 38 04 00 07 */ addi r0, r4, 7
/* 8013F270 0013C1D0 54 00 E8 FE */ srwi r0, r0, 3
/* 8013F274 0013C1D4 7C 09 03 A6 */ mtctr r0
/* 8013F278 0013C1D8 2C 04 00 00 */ cmpwi r4, 0
/* 8013F27C 0013C1DC 40 81 00 0C */ ble lbl_8013F288
lbl_8013F280:
/* 8013F280 0013C1E0 38 63 00 08 */ addi r3, r3, 8
/* 8013F284 0013C1E4 42 00 FF FC */ bdnz lbl_8013F280
lbl_8013F288:
/* 8013F288 0013C1E8 7C 03 30 50 */ subf r0, r3, r6
/* 8013F28C 0013C1EC 7C 09 03 A6 */ mtctr r0
/* 8013F290 0013C1F0 7C 03 30 00 */ cmpw r3, r6
/* 8013F294 0013C1F4 40 80 00 08 */ bge lbl_8013F29C
lbl_8013F298:
/* 8013F298 0013C1F8 42 00 00 00 */ bdnz lbl_8013F298
lbl_8013F29C:
/* 8013F29C 0013C1FC 38 00 00 00 */ li r0, 0
/* 8013F2A0 0013C200 90 05 00 00 */ stw r0, 0(r5)
lbl_8013F2A4:
/* 8013F2A4 0013C204 E3 E1 01 58 */ psq_l f31, 344(r1), 0, qr0
/* 8013F2A8 0013C208 CB E1 01 50 */ lfd f31, 0x150(r1)
/* 8013F2AC 0013C20C BB 61 01 3C */ lmw r27, 0x13c(r1)
/* 8013F2B0 0013C210 80 01 01 64 */ lwz r0, 0x164(r1)
/* 8013F2B4 0013C214 7C 08 03 A6 */ mtlr r0
/* 8013F2B8 0013C218 38 21 01 60 */ addi r1, r1, 0x160
/* 8013F2BC 0013C21C 4E 80 00 20 */ blr
.global __ct__12CBSGroundHitFv
__ct__12CBSGroundHitFv:
/* 8013F2C0 0013C220 3C A0 80 3E */ lis r5, lbl_803E1318@ha
/* 8013F2C4 0013C224 3C 80 80 3E */ lis r4, lbl_803E18B0@ha
/* 8013F2C8 0013C228 38 05 13 18 */ addi r0, r5, lbl_803E1318@l
/* 8013F2CC 0013C22C C0 02 9B 28 */ lfs f0, lbl_805AB848@sda21(r2)
/* 8013F2D0 0013C230 90 03 00 00 */ stw r0, 0(r3)
/* 8013F2D4 0013C234 38 84 18 B0 */ addi r4, r4, lbl_803E18B0@l
/* 8013F2D8 0013C238 38 00 FF FF */ li r0, -1
/* 8013F2DC 0013C23C 90 83 00 00 */ stw r4, 0(r3)
/* 8013F2E0 0013C240 D0 03 00 04 */ stfs f0, 4(r3)
/* 8013F2E4 0013C244 D0 03 00 08 */ stfs f0, 8(r3)
/* 8013F2E8 0013C248 90 03 00 0C */ stw r0, 0xc(r3)
/* 8013F2EC 0013C24C 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AB848
lbl_805AB848:
# ROM: 0x3F80E8
.4byte 0
.global lbl_805AB84C
lbl_805AB84C:
# ROM: 0x3F80EC
.4byte 0x3E22F983
.global lbl_805AB850
lbl_805AB850:
# ROM: 0x3F80F0
.float 6.2831855
.global lbl_805AB854
lbl_805AB854:
# ROM: 0x3F80F4
.4byte 0x42652EE0
.global lbl_805AB858
lbl_805AB858:
# ROM: 0x3F80F8
.float 1.0
.global lbl_805AB85C
lbl_805AB85C:
# ROM: 0x3F80FC
.float 0.017453292
.global lbl_805AB860
lbl_805AB860:
# ROM: 0x3F8100
.4byte 0x40490FDB
.global lbl_805AB864
lbl_805AB864:
# ROM: 0x3F8104
.float 0.15
.global lbl_805AB868
lbl_805AB868:
# ROM: 0x3F8108
.float 1.1920929E-7
.4byte 0
.global lbl_805AB870
lbl_805AB870:
# ROM: 0x3F8110
.double 4.503601774854144E15