prime/asm/MetroidPrime/Weapons/CProjectileInfo.s

352 lines
18 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax"
.global PredictInterceptPos__15CProjectileInfoFRC9CVector3fRC9CVector3fRC7CPlayerbff
PredictInterceptPos__15CProjectileInfoFRC9CVector3fRC9CVector3fRC7CPlayerbff:
/* 8021BC98 00218BF8 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8021BC9C 00218BFC 7C 08 02 A6 */ mflr r0
/* 8021BCA0 00218C00 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8021BCA4 00218C04 DB E1 00 90 */ stfd f31, 0x90(r1)
/* 8021BCA8 00218C08 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 8021BCAC 00218C0C DB C1 00 80 */ stfd f30, 0x80(r1)
/* 8021BCB0 00218C10 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0
/* 8021BCB4 00218C14 BF 61 00 6C */ stmw r27, 0x6c(r1)
/* 8021BCB8 00218C18 3D 00 80 5A */ lis r8, sZeroVector__9CVector3f@ha
/* 8021BCBC 00218C1C 7C 7E 1B 78 */ mr r30, r3
/* 8021BCC0 00218C20 38 68 66 A0 */ addi r3, r8, sZeroVector__9CVector3f@l
/* 8021BCC4 00218C24 FF C0 08 90 */ fmr f30, f1
/* 8021BCC8 00218C28 C0 63 00 00 */ lfs f3, 0(r3)
/* 8021BCCC 00218C2C FF E0 10 90 */ fmr f31, f2
/* 8021BCD0 00218C30 C0 23 00 04 */ lfs f1, 4(r3)
/* 8021BCD4 00218C34 7C DC 33 78 */ mr r28, r6
/* 8021BCD8 00218C38 C0 03 00 08 */ lfs f0, 8(r3)
/* 8021BCDC 00218C3C 7C 9B 23 78 */ mr r27, r4
/* 8021BCE0 00218C40 D0 61 00 50 */ stfs f3, 0x50(r1)
/* 8021BCE4 00218C44 7C BF 2B 78 */ mr r31, r5
/* 8021BCE8 00218C48 7C FD 3B 78 */ mr r29, r7
/* 8021BCEC 00218C4C D0 21 00 54 */ stfs f1, 0x54(r1)
/* 8021BCF0 00218C50 7F 84 E3 78 */ mr r4, r28
/* 8021BCF4 00218C54 38 61 00 20 */ addi r3, r1, 0x20
/* 8021BCF8 00218C58 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8021BCFC 00218C5C 48 06 C7 F5 */ bl GetDampedClampedVelocityWR__7CPlayerCFv
/* 8021BD00 00218C60 C0 41 00 20 */ lfs f2, 0x20(r1)
/* 8021BD04 00218C64 7F 83 E3 78 */ mr r3, r28
/* 8021BD08 00218C68 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 8021BD0C 00218C6C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8021BD10 00218C70 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 8021BD14 00218C74 D0 21 00 48 */ stfs f1, 0x48(r1)
/* 8021BD18 00218C78 D0 01 00 4C */ stfs f0, 0x4c(r1)
/* 8021BD1C 00218C7C 48 06 C6 41 */ bl GetGravity__7CPlayerCFv
/* 8021BD20 00218C80 80 1C 03 04 */ lwz r0, 0x304(r28)
/* 8021BD24 00218C84 38 60 00 00 */ li r3, 0
/* 8021BD28 00218C88 C0 02 B3 E0 */ lfs f0, lbl_805AD100@sda21(r2)
/* 8021BD2C 00218C8C 2C 00 00 00 */ cmpwi r0, 0
/* 8021BD30 00218C90 D0 21 00 40 */ stfs f1, 0x40(r1)
/* 8021BD34 00218C94 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8021BD38 00218C98 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8021BD3C 00218C9C 41 82 00 E0 */ beq lbl_8021BE1C
/* 8021BD40 00218CA0 41 80 01 28 */ blt lbl_8021BE68
/* 8021BD44 00218CA4 2C 00 00 06 */ cmpwi r0, 6
/* 8021BD48 00218CA8 40 80 01 20 */ bge lbl_8021BE68
/* 8021BD4C 00218CAC 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8021BD50 00218CB0 3B BC 03 14 */ addi r29, r28, 0x314
/* 8021BD54 00218CB4 41 82 00 38 */ beq lbl_8021BD8C
/* 8021BD58 00218CB8 80 1C 02 58 */ lwz r0, 0x258(r28)
/* 8021BD5C 00218CBC 2C 00 00 02 */ cmpwi r0, 2
/* 8021BD60 00218CC0 40 82 00 2C */ bne lbl_8021BD8C
/* 8021BD64 00218CC4 FC 20 F0 90 */ fmr f1, f30
/* 8021BD68 00218CC8 7F 63 DB 78 */ mr r3, r27
/* 8021BD6C 00218CCC FC 40 F8 90 */ fmr f2, f31
/* 8021BD70 00218CD0 7F E4 FB 78 */ mr r4, r31
/* 8021BD74 00218CD4 7F A7 EB 78 */ mr r7, r29
/* 8021BD78 00218CD8 38 A1 00 44 */ addi r5, r1, 0x44
/* 8021BD7C 00218CDC 38 C1 00 38 */ addi r6, r1, 0x38
/* 8021BD80 00218CE0 39 01 00 50 */ addi r8, r1, 0x50
/* 8021BD84 00218CE4 4B F2 0F CD */ bl ProjectOrbitalIntersection__18CSteeringBehaviorsFRC9CVector3fffRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3fR9CVector3f
/* 8021BD88 00218CE8 48 00 00 E0 */ b lbl_8021BE68
lbl_8021BD8C:
/* 8021BD8C 00218CEC 38 61 00 44 */ addi r3, r1, 0x44
/* 8021BD90 00218CF0 48 0F 89 69 */ bl CanBeNormalized__9CVector3fCFv
/* 8021BD94 00218CF4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8021BD98 00218CF8 41 82 00 44 */ beq lbl_8021BDDC
/* 8021BD9C 00218CFC 38 61 00 14 */ addi r3, r1, 0x14
/* 8021BDA0 00218D00 38 81 00 44 */ addi r4, r1, 0x44
/* 8021BDA4 00218D04 48 0F 8A AD */ bl AsNormalized__9CVector3fCFv
/* 8021BDA8 00218D08 7F 83 E3 78 */ mr r3, r28
/* 8021BDAC 00218D0C 48 06 C6 7D */ bl GetAverageSpeed__7CPlayerCFv
/* 8021BDB0 00218D10 C0 61 00 14 */ lfs f3, 0x14(r1)
/* 8021BDB4 00218D14 39 01 00 08 */ addi r8, r1, 8
/* 8021BDB8 00218D18 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8021BDBC 00218D1C C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8021BDC0 00218D20 EC 61 00 F2 */ fmuls f3, f1, f3
/* 8021BDC4 00218D24 EC 41 00 B2 */ fmuls f2, f1, f2
/* 8021BDC8 00218D28 EC 01 00 32 */ fmuls f0, f1, f0
/* 8021BDCC 00218D2C D0 61 00 08 */ stfs f3, 8(r1)
/* 8021BDD0 00218D30 D0 41 00 0C */ stfs f2, 0xc(r1)
/* 8021BDD4 00218D34 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8021BDD8 00218D38 48 00 00 08 */ b lbl_8021BDE0
lbl_8021BDDC:
/* 8021BDDC 00218D3C 39 01 00 44 */ addi r8, r1, 0x44
lbl_8021BDE0:
/* 8021BDE0 00218D40 C0 08 00 00 */ lfs f0, 0(r8)
/* 8021BDE4 00218D44 FC 20 F0 90 */ fmr f1, f30
/* 8021BDE8 00218D48 FC 40 F8 90 */ fmr f2, f31
/* 8021BDEC 00218D4C 7F 63 DB 78 */ mr r3, r27
/* 8021BDF0 00218D50 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8021BDF4 00218D54 7F E4 FB 78 */ mr r4, r31
/* 8021BDF8 00218D58 7F A6 EB 78 */ mr r6, r29
/* 8021BDFC 00218D5C C0 08 00 04 */ lfs f0, 4(r8)
/* 8021BE00 00218D60 38 A1 00 2C */ addi r5, r1, 0x2c
/* 8021BE04 00218D64 38 E1 00 50 */ addi r7, r1, 0x50
/* 8021BE08 00218D68 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8021BE0C 00218D6C C0 08 00 08 */ lfs f0, 8(r8)
/* 8021BE10 00218D70 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8021BE14 00218D74 4B F2 13 59 */ bl ProjectOrbitalIntersection__18CSteeringBehaviorsFRC9CVector3fffRC9CVector3fRC9CVector3fRC9CVector3fR9CVector3f
/* 8021BE18 00218D78 48 00 00 50 */ b lbl_8021BE68
lbl_8021BE1C:
/* 8021BE1C 00218D7C 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 8021BE20 00218D80 41 82 00 30 */ beq lbl_8021BE50
/* 8021BE24 00218D84 80 1C 02 58 */ lwz r0, 0x258(r28)
/* 8021BE28 00218D88 2C 00 00 02 */ cmpwi r0, 2
/* 8021BE2C 00218D8C 40 82 00 24 */ bne lbl_8021BE50
/* 8021BE30 00218D90 FC 20 F0 90 */ fmr f1, f30
/* 8021BE34 00218D94 7F 63 DB 78 */ mr r3, r27
/* 8021BE38 00218D98 7F E4 FB 78 */ mr r4, r31
/* 8021BE3C 00218D9C 38 A1 00 44 */ addi r5, r1, 0x44
/* 8021BE40 00218DA0 38 C1 00 38 */ addi r6, r1, 0x38
/* 8021BE44 00218DA4 38 E1 00 50 */ addi r7, r1, 0x50
/* 8021BE48 00218DA8 4B F2 17 25 */ bl ProjectLinearIntersection__18CSteeringBehaviorsFRC9CVector3ffRC9CVector3fRC9CVector3fRC9CVector3fR9CVector3f
/* 8021BE4C 00218DAC 48 00 00 1C */ b lbl_8021BE68
lbl_8021BE50:
/* 8021BE50 00218DB0 FC 20 F0 90 */ fmr f1, f30
/* 8021BE54 00218DB4 7F 63 DB 78 */ mr r3, r27
/* 8021BE58 00218DB8 7F E4 FB 78 */ mr r4, r31
/* 8021BE5C 00218DBC 38 A1 00 44 */ addi r5, r1, 0x44
/* 8021BE60 00218DC0 38 C1 00 50 */ addi r6, r1, 0x50
/* 8021BE64 00218DC4 4B F2 1A 15 */ bl ProjectLinearIntersection__18CSteeringBehaviorsFRC9CVector3ffRC9CVector3fRC9CVector3fR9CVector3f
lbl_8021BE68:
/* 8021BE68 00218DC8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8021BE6C 00218DCC 40 82 00 44 */ bne lbl_8021BEB0
/* 8021BE70 00218DD0 C0 A2 B3 E4 */ lfs f5, lbl_805AD104@sda21(r2)
/* 8021BE74 00218DD4 C0 41 00 48 */ lfs f2, 0x48(r1)
/* 8021BE78 00218DD8 C0 21 00 4C */ lfs f1, 0x4c(r1)
/* 8021BE7C 00218DDC C0 01 00 44 */ lfs f0, 0x44(r1)
/* 8021BE80 00218DE0 EC 85 00 B2 */ fmuls f4, f5, f2
/* 8021BE84 00218DE4 C0 DF 00 04 */ lfs f6, 4(r31)
/* 8021BE88 00218DE8 EC 45 00 72 */ fmuls f2, f5, f1
/* 8021BE8C 00218DEC C0 7F 00 08 */ lfs f3, 8(r31)
/* 8021BE90 00218DF0 EC 05 00 32 */ fmuls f0, f5, f0
/* 8021BE94 00218DF4 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8021BE98 00218DF8 EC 86 20 2A */ fadds f4, f6, f4
/* 8021BE9C 00218DFC EC 43 10 2A */ fadds f2, f3, f2
/* 8021BEA0 00218E00 EC 01 00 2A */ fadds f0, f1, f0
/* 8021BEA4 00218E04 D0 81 00 54 */ stfs f4, 0x54(r1)
/* 8021BEA8 00218E08 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 8021BEAC 00218E0C D0 41 00 58 */ stfs f2, 0x58(r1)
lbl_8021BEB0:
/* 8021BEB0 00218E10 C0 01 00 50 */ lfs f0, 0x50(r1)
/* 8021BEB4 00218E14 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8021BEB8 00218E18 C0 01 00 54 */ lfs f0, 0x54(r1)
/* 8021BEBC 00218E1C D0 1E 00 04 */ stfs f0, 4(r30)
/* 8021BEC0 00218E20 C0 01 00 58 */ lfs f0, 0x58(r1)
/* 8021BEC4 00218E24 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8021BEC8 00218E28 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 8021BECC 00218E2C CB E1 00 90 */ lfd f31, 0x90(r1)
/* 8021BED0 00218E30 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0
/* 8021BED4 00218E34 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 8021BED8 00218E38 BB 61 00 6C */ lmw r27, 0x6c(r1)
/* 8021BEDC 00218E3C 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8021BEE0 00218E40 7C 08 03 A6 */ mtlr r0
/* 8021BEE4 00218E44 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8021BEE8 00218E48 4E 80 00 20 */ blr
.global PredictInterceptPos__15CProjectileInfoFRC9CVector3fRC9CVector3fRC7CPlayerbf
PredictInterceptPos__15CProjectileInfoFRC9CVector3fRC9CVector3fRC7CPlayerbf:
/* 8021BEEC 00218E4C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8021BEF0 00218E50 7C 08 02 A6 */ mflr r0
/* 8021BEF4 00218E54 90 01 00 34 */ stw r0, 0x34(r1)
/* 8021BEF8 00218E58 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 8021BEFC 00218E5C FF E0 08 90 */ fmr f31, f1
/* 8021BF00 00218E60 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 8021BF04 00218E64 7C 7B 1B 78 */ mr r27, r3
/* 8021BF08 00218E68 7C BC 2B 78 */ mr r28, r5
/* 8021BF0C 00218E6C 7C DD 33 78 */ mr r29, r6
/* 8021BF10 00218E70 7C FE 3B 78 */ mr r30, r7
/* 8021BF14 00218E74 7D 1F 43 78 */ mr r31, r8
/* 8021BF18 00218E78 7C 83 23 78 */ mr r3, r4
/* 8021BF1C 00218E7C 48 00 00 39 */ bl GetProjectileSpeed__15CProjectileInfoCFv
/* 8021BF20 00218E80 FC 40 F8 90 */ fmr f2, f31
/* 8021BF24 00218E84 7F 63 DB 78 */ mr r3, r27
/* 8021BF28 00218E88 7F 84 E3 78 */ mr r4, r28
/* 8021BF2C 00218E8C 7F A5 EB 78 */ mr r5, r29
/* 8021BF30 00218E90 7F C6 F3 78 */ mr r6, r30
/* 8021BF34 00218E94 7F E7 FB 78 */ mr r7, r31
/* 8021BF38 00218E98 4B FF FD 61 */ bl PredictInterceptPos__15CProjectileInfoFRC9CVector3fRC9CVector3fRC7CPlayerbff
/* 8021BF3C 00218E9C CB E1 00 28 */ lfd f31, 0x28(r1)
/* 8021BF40 00218EA0 BB 61 00 14 */ lmw r27, 0x14(r1)
/* 8021BF44 00218EA4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8021BF48 00218EA8 7C 08 03 A6 */ mtlr r0
/* 8021BF4C 00218EAC 38 21 00 30 */ addi r1, r1, 0x30
/* 8021BF50 00218EB0 4E 80 00 20 */ blr
.global GetProjectileSpeed__15CProjectileInfoCFv
GetProjectileSpeed__15CProjectileInfoCFv:
/* 8021BF54 00218EB4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8021BF58 00218EB8 7C 08 02 A6 */ mflr r0
/* 8021BF5C 00218EBC 90 01 00 34 */ stw r0, 0x34(r1)
/* 8021BF60 00218EC0 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 8021BF64 00218EC4 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 8021BF68 00218EC8 C3 E2 B3 E8 */ lfs f31, lbl_805AD108@sda21(r2)
/* 8021BF6C 00218ECC 7C 64 1B 78 */ mr r4, r3
/* 8021BF70 00218ED0 38 61 00 08 */ addi r3, r1, 8
/* 8021BF74 00218ED4 48 12 4F 35 */ bl __ct__6CTokenFRC6CToken
/* 8021BF78 00218ED8 38 61 00 08 */ addi r3, r1, 8
/* 8021BF7C 00218EDC 48 12 4E 91 */ bl GetObj__6CTokenFv
/* 8021BF80 00218EE0 80 63 00 04 */ lwz r3, 4(r3)
/* 8021BF84 00218EE4 80 03 00 04 */ lwz r0, 4(r3)
/* 8021BF88 00218EE8 28 00 00 00 */ cmplwi r0, 0
/* 8021BF8C 00218EEC 41 82 00 5C */ beq lbl_8021BFE8
/* 8021BF90 00218EF0 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 8021BF94 00218EF4 C4 44 66 A0 */ lfsu f2, sZeroVector__9CVector3f@l(r4)
/* 8021BF98 00218EF8 38 61 00 08 */ addi r3, r1, 8
/* 8021BF9C 00218EFC C0 24 00 04 */ lfs f1, 4(r4)
/* 8021BFA0 00218F00 C0 04 00 08 */ lfs f0, 8(r4)
/* 8021BFA4 00218F04 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8021BFA8 00218F08 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8021BFAC 00218F0C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8021BFB0 00218F10 48 12 4E 5D */ bl GetObj__6CTokenFv
/* 8021BFB4 00218F14 80 63 00 04 */ lwz r3, 4(r3)
/* 8021BFB8 00218F18 38 A1 00 10 */ addi r5, r1, 0x10
/* 8021BFBC 00218F1C 38 80 00 00 */ li r4, 0
/* 8021BFC0 00218F20 80 63 00 04 */ lwz r3, 4(r3)
/* 8021BFC4 00218F24 81 83 00 00 */ lwz r12, 0(r3)
/* 8021BFC8 00218F28 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8021BFCC 00218F2C 7D 89 03 A6 */ mtctr r12
/* 8021BFD0 00218F30 4E 80 04 21 */ bctrl
/* 8021BFD4 00218F34 48 09 51 69 */ bl GetTickPeriod__17CProjectileWeaponFv
/* 8021BFD8 00218F38 FF E0 08 90 */ fmr f31, f1
/* 8021BFDC 00218F3C 38 61 00 10 */ addi r3, r1, 0x10
/* 8021BFE0 00218F40 48 0F 88 D9 */ bl Magnitude__9CVector3fCFv
/* 8021BFE4 00218F44 EF E1 F8 24 */ fdivs f31, f1, f31
lbl_8021BFE8:
/* 8021BFE8 00218F48 38 61 00 08 */ addi r3, r1, 8
/* 8021BFEC 00218F4C 38 80 00 00 */ li r4, 0
/* 8021BFF0 00218F50 48 12 4E 51 */ bl __dt__6CTokenFv
/* 8021BFF4 00218F54 FC 20 F8 90 */ fmr f1, f31
/* 8021BFF8 00218F58 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 8021BFFC 00218F5C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8021C000 00218F60 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 8021C004 00218F64 7C 08 03 A6 */ mtlr r0
/* 8021C008 00218F68 38 21 00 30 */ addi r1, r1, 0x30
/* 8021C00C 00218F6C 4E 80 00 20 */ blr
.global __ct__15CProjectileInfoFR12CInputStream
__ct__15CProjectileInfoFR12CInputStream:
/* 8021C010 00218F70 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8021C014 00218F74 7C 08 02 A6 */ mflr r0
/* 8021C018 00218F78 90 01 00 24 */ stw r0, 0x24(r1)
/* 8021C01C 00218F7C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8021C020 00218F80 7C 9F 23 78 */ mr r31, r4
/* 8021C024 00218F84 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8021C028 00218F88 7C 7E 1B 78 */ mr r30, r3
/* 8021C02C 00218F8C 7F E3 FB 78 */ mr r3, r31
/* 8021C030 00218F90 48 12 2C 55 */ bl ReadLong__12CInputStreamFv
/* 8021C034 00218F94 3C 80 57 50 */ lis r4, 0x57505343@ha
/* 8021C038 00218F98 90 61 00 14 */ stw r3, 0x14(r1)
/* 8021C03C 00218F9C 38 04 53 43 */ addi r0, r4, 0x57505343@l
/* 8021C040 00218FA0 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8021C044 00218FA4 90 01 00 10 */ stw r0, 0x10(r1)
/* 8021C048 00218FA8 38 61 00 08 */ addi r3, r1, 8
/* 8021C04C 00218FAC 38 A1 00 10 */ addi r5, r1, 0x10
/* 8021C050 00218FB0 81 84 00 00 */ lwz r12, 0(r4)
/* 8021C054 00218FB4 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8021C058 00218FB8 7D 89 03 A6 */ mtctr r12
/* 8021C05C 00218FBC 4E 80 04 21 */ bctrl
/* 8021C060 00218FC0 7F C3 F3 78 */ mr r3, r30
/* 8021C064 00218FC4 38 81 00 08 */ addi r4, r1, 8
/* 8021C068 00218FC8 48 12 4E 41 */ bl __ct__6CTokenFRC6CToken
/* 8021C06C 00218FCC 38 00 00 00 */ li r0, 0
/* 8021C070 00218FD0 38 61 00 08 */ addi r3, r1, 8
/* 8021C074 00218FD4 90 1E 00 08 */ stw r0, 8(r30)
/* 8021C078 00218FD8 38 80 FF FF */ li r4, -1
/* 8021C07C 00218FDC 48 12 4D C5 */ bl __dt__6CTokenFv
/* 8021C080 00218FE0 7F E4 FB 78 */ mr r4, r31
/* 8021C084 00218FE4 38 7E 00 0C */ addi r3, r30, 0xc
/* 8021C088 00218FE8 4B EA 74 D9 */ bl __ct__11CDamageInfoFR12CInputStream
/* 8021C08C 00218FEC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8021C090 00218FF0 7F C3 F3 78 */ mr r3, r30
/* 8021C094 00218FF4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8021C098 00218FF8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8021C09C 00218FFC 7C 08 03 A6 */ mtlr r0
/* 8021C0A0 00219000 38 21 00 20 */ addi r1, r1, 0x20
/* 8021C0A4 00219004 4E 80 00 20 */ blr
.global __ct__15CProjectileInfoFUiRC11CDamageInfo
__ct__15CProjectileInfoFUiRC11CDamageInfo:
/* 8021C0A8 00219008 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8021C0AC 0021900C 7C 08 02 A6 */ mflr r0
/* 8021C0B0 00219010 3C C0 57 50 */ lis r6, 0x57505343@ha
/* 8021C0B4 00219014 90 01 00 24 */ stw r0, 0x24(r1)
/* 8021C0B8 00219018 38 06 53 43 */ addi r0, r6, 0x57505343@l
/* 8021C0BC 0021901C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8021C0C0 00219020 7C BF 2B 78 */ mr r31, r5
/* 8021C0C4 00219024 38 A1 00 10 */ addi r5, r1, 0x10
/* 8021C0C8 00219028 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8021C0CC 0021902C 7C 7E 1B 78 */ mr r30, r3
/* 8021C0D0 00219030 38 61 00 08 */ addi r3, r1, 8
/* 8021C0D4 00219034 90 81 00 14 */ stw r4, 0x14(r1)
/* 8021C0D8 00219038 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13)
/* 8021C0DC 0021903C 90 01 00 10 */ stw r0, 0x10(r1)
/* 8021C0E0 00219040 81 84 00 00 */ lwz r12, 0(r4)
/* 8021C0E4 00219044 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8021C0E8 00219048 7D 89 03 A6 */ mtctr r12
/* 8021C0EC 0021904C 4E 80 04 21 */ bctrl
/* 8021C0F0 00219050 7F C3 F3 78 */ mr r3, r30
/* 8021C0F4 00219054 38 81 00 08 */ addi r4, r1, 8
/* 8021C0F8 00219058 48 12 4D B1 */ bl __ct__6CTokenFRC6CToken
/* 8021C0FC 0021905C 38 00 00 00 */ li r0, 0
/* 8021C100 00219060 38 61 00 08 */ addi r3, r1, 8
/* 8021C104 00219064 90 1E 00 08 */ stw r0, 8(r30)
/* 8021C108 00219068 38 80 FF FF */ li r4, -1
/* 8021C10C 0021906C 48 12 4D 35 */ bl __dt__6CTokenFv
/* 8021C110 00219070 80 1F 00 00 */ lwz r0, 0(r31)
/* 8021C114 00219074 7F C3 F3 78 */ mr r3, r30
/* 8021C118 00219078 90 1E 00 0C */ stw r0, 0xc(r30)
/* 8021C11C 0021907C 88 1F 00 04 */ lbz r0, 4(r31)
/* 8021C120 00219080 98 1E 00 10 */ stb r0, 0x10(r30)
/* 8021C124 00219084 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8021C128 00219088 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8021C12C 0021908C C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8021C130 00219090 D0 1E 00 18 */ stfs f0, 0x18(r30)
/* 8021C134 00219094 C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 8021C138 00219098 D0 1E 00 1C */ stfs f0, 0x1c(r30)
/* 8021C13C 0021909C C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 8021C140 002190A0 D0 1E 00 20 */ stfs f0, 0x20(r30)
/* 8021C144 002190A4 88 1F 00 18 */ lbz r0, 0x18(r31)
/* 8021C148 002190A8 98 1E 00 24 */ stb r0, 0x24(r30)
/* 8021C14C 002190AC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8021C150 002190B0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8021C154 002190B4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8021C158 002190B8 7C 08 03 A6 */ mtlr r0
/* 8021C15C 002190BC 38 21 00 20 */ addi r1, r1, 0x20
/* 8021C160 002190C0 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AD100
lbl_805AD100:
# ROM: 0x3F99A0
.4byte 0
.global lbl_805AD104
lbl_805AD104:
# ROM: 0x3F99A4
.float 1.5
.global lbl_805AD108
lbl_805AD108:
# ROM: 0x3F99A8
.4byte 0x472FC800
.4byte 0