prime/asm/MetroidPrime/CRipple.s

125 lines
6.6 KiB
ArmAsm
Raw Normal View History

2022-04-13 06:53:45 +00:00
.include "macros.inc"
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global __ct__7CRippleF9TUniqueIdRC9CVector3ff
__ct__7CRippleF9TUniqueIdRC9CVector3ff:
/* 8011C91C 0011987C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8011C920 00119880 7C 08 02 A6 */ mflr r0
/* 8011C924 00119884 90 01 00 24 */ stw r0, 0x24(r1)
/* 8011C928 00119888 DB E1 00 10 */ stfd f31, 0x10(r1)
/* 8011C92C 0011988C F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0
/* 8011C930 00119890 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8011C934 00119894 A0 04 00 00 */ lhz r0, 0(r4)
/* 8011C938 00119898 7C 7F 1B 78 */ mr r31, r3
/* 8011C93C 0011989C C0 E2 96 D4 */ lfs f7, lbl_805AB3F4@sda21(r2)
/* 8011C940 001198A0 FF E0 08 90 */ fmr f31, f1
/* 8011C944 001198A4 B0 03 00 00 */ sth r0, 0(r3)
/* 8011C948 001198A8 C0 A2 96 D8 */ lfs f5, lbl_805AB3F8@sda21(r2)
/* 8011C94C 001198AC D0 E3 00 04 */ stfs f7, 4(r3)
/* 8011C950 001198B0 C0 82 96 DC */ lfs f4, lbl_805AB3FC@sda21(r2)
/* 8011C954 001198B4 C0 05 00 00 */ lfs f0, 0(r5)
/* 8011C958 001198B8 C0 62 96 E0 */ lfs f3, lbl_805AB400@sda21(r2)
/* 8011C95C 001198BC D0 03 00 08 */ stfs f0, 8(r3)
/* 8011C960 001198C0 C0 42 96 E4 */ lfs f2, lbl_805AB404@sda21(r2)
/* 8011C964 001198C4 C0 C5 00 04 */ lfs f6, 4(r5)
/* 8011C968 001198C8 C0 02 96 E8 */ lfs f0, lbl_805AB408@sda21(r2)
/* 8011C96C 001198CC D0 C3 00 0C */ stfs f6, 0xc(r3)
/* 8011C970 001198D0 C0 C5 00 08 */ lfs f6, 8(r5)
/* 8011C974 001198D4 D0 C3 00 10 */ stfs f6, 0x10(r3)
/* 8011C978 001198D8 D0 A3 00 14 */ stfs f5, 0x14(r3)
/* 8011C97C 001198DC D0 83 00 18 */ stfs f4, 0x18(r3)
/* 8011C980 001198E0 D0 63 00 1C */ stfs f3, 0x1c(r3)
/* 8011C984 001198E4 D0 43 00 20 */ stfs f2, 0x20(r3)
/* 8011C988 001198E8 D0 03 00 24 */ stfs f0, 0x24(r3)
/* 8011C98C 001198EC D0 E3 00 28 */ stfs f7, 0x28(r3)
/* 8011C990 001198F0 D0 E3 00 2C */ stfs f7, 0x2c(r3)
/* 8011C994 001198F4 D0 E3 00 30 */ stfs f7, 0x30(r3)
/* 8011C998 001198F8 D0 E3 00 34 */ stfs f7, 0x34(r3)
/* 8011C99C 001198FC D0 E3 00 38 */ stfs f7, 0x38(r3)
/* 8011C9A0 00119900 48 01 26 F9 */ bl sub_8012f098
/* 8011C9A4 00119904 C0 02 96 D4 */ lfs f0, lbl_805AB3F4@sda21(r2)
/* 8011C9A8 00119908 90 7F 00 3C */ stw r3, 0x3c(r31)
/* 8011C9AC 0011990C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8011C9B0 00119910 41 80 00 CC */ blt lbl_8011CA7C
/* 8011C9B4 00119914 C0 02 96 EC */ lfs f0, lbl_805AB40C@sda21(r2)
/* 8011C9B8 00119918 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8011C9BC 0011991C 41 81 00 C0 */ bgt lbl_8011CA7C
/* 8011C9C0 00119920 88 0D A3 98 */ lbz r0, lbl_805A8F58@sda21(r13)
/* 8011C9C4 00119924 7C 00 07 75 */ extsb. r0, r0
/* 8011C9C8 00119928 40 82 00 1C */ bne lbl_8011C9E4
/* 8011C9CC 0011992C 3C 80 00 01 */ lis r4, 0x0000ABBA@ha
/* 8011C9D0 00119930 38 6D A3 9C */ addi r3, r13, lbl_805A8F5C@sda21
/* 8011C9D4 00119934 38 84 AB BA */ addi r4, r4, 0x0000ABBA@l
/* 8011C9D8 00119938 48 1F 5C 15 */ bl __ct__9CRandom16FUi
/* 8011C9DC 0011993C 38 00 00 01 */ li r0, 1
/* 8011C9E0 00119940 98 0D A3 98 */ stb r0, lbl_805A8F58@sda21(r13)
lbl_8011C9E4:
/* 8011C9E4 00119944 38 6D A3 9C */ addi r3, r13, lbl_805A8F5C@sda21
/* 8011C9E8 00119948 48 1F 5A F5 */ bl Float__9CRandom16Fv
/* 8011C9EC 0011994C C0 02 96 F4 */ lfs f0, lbl_805AB414@sda21(r2)
/* 8011C9F0 00119950 C0 42 96 D8 */ lfs f2, lbl_805AB3F8@sda21(r2)
/* 8011C9F4 00119954 EC 21 00 28 */ fsubs f1, f1, f0
/* 8011C9F8 00119958 C0 62 96 F0 */ lfs f3, lbl_805AB410@sda21(r2)
/* 8011C9FC 0011995C C0 02 96 D4 */ lfs f0, lbl_805AB3F4@sda21(r2)
/* 8011CA00 00119960 EC 3F 00 72 */ fmuls f1, f31, f1
/* 8011CA04 00119964 EC 22 00 72 */ fmuls f1, f2, f1
/* 8011CA08 00119968 EC 23 F8 7A */ fmadds f1, f3, f1, f31
/* 8011CA0C 0011996C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8011CA10 00119970 40 80 00 0C */ bge lbl_8011CA1C
/* 8011CA14 00119974 FC 20 00 90 */ fmr f1, f0
/* 8011CA18 00119978 48 00 00 14 */ b lbl_8011CA2C
lbl_8011CA1C:
/* 8011CA1C 0011997C C0 02 96 EC */ lfs f0, lbl_805AB40C@sda21(r2)
/* 8011CA20 00119980 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8011CA24 00119984 40 81 00 08 */ ble lbl_8011CA2C
/* 8011CA28 00119988 FC 20 00 90 */ fmr f1, f0
lbl_8011CA2C:
/* 8011CA2C 0011998C C0 C2 96 D8 */ lfs f6, lbl_805AB3F8@sda21(r2)
/* 8011CA30 00119990 C0 42 96 F4 */ lfs f2, lbl_805AB414@sda21(r2)
/* 8011CA34 00119994 EC E6 00 72 */ fmuls f7, f6, f1
/* 8011CA38 00119998 C0 22 96 F8 */ lfs f1, lbl_805AB418@sda21(r2)
/* 8011CA3C 0011999C C0 62 97 00 */ lfs f3, lbl_805AB420@sda21(r2)
/* 8011CA40 001199A0 C0 02 96 FC */ lfs f0, lbl_805AB41C@sda21(r2)
/* 8011CA44 001199A4 EC A2 09 FA */ fmadds f5, f2, f7, f1
/* 8011CA48 001199A8 C0 42 97 08 */ lfs f2, lbl_805AB428@sda21(r2)
/* 8011CA4C 001199AC C0 22 97 04 */ lfs f1, lbl_805AB424@sda21(r2)
/* 8011CA50 001199B0 EC 83 01 FA */ fmadds f4, f3, f7, f0
/* 8011CA54 001199B4 EC 66 38 2A */ fadds f3, f6, f7
/* 8011CA58 001199B8 C0 02 97 0C */ lfs f0, lbl_805AB42C@sda21(r2)
/* 8011CA5C 001199BC D0 BF 00 14 */ stfs f5, 0x14(r31)
/* 8011CA60 001199C0 EC 22 09 FA */ fmadds f1, f2, f7, f1
/* 8011CA64 001199C4 D0 9F 00 18 */ stfs f4, 0x18(r31)
/* 8011CA68 001199C8 D0 7F 00 1C */ stfs f3, 0x1c(r31)
/* 8011CA6C 001199CC D0 3F 00 20 */ stfs f1, 0x20(r31)
/* 8011CA70 001199D0 C0 3F 00 20 */ lfs f1, 0x20(r31)
/* 8011CA74 001199D4 EC 01 00 24 */ fdivs f0, f1, f0
/* 8011CA78 001199D8 D0 1F 00 24 */ stfs f0, 0x24(r31)
lbl_8011CA7C:
/* 8011CA7C 001199DC C0 62 96 EC */ lfs f3, lbl_805AB40C@sda21(r2)
/* 8011CA80 001199E0 7F E3 FB 78 */ mr r3, r31
/* 8011CA84 001199E4 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8011CA88 001199E8 C0 02 97 10 */ lfs f0, lbl_805AB430@sda21(r2)
/* 8011CA8C 001199EC EC 43 08 24 */ fdivs f2, f3, f1
/* 8011CA90 001199F0 C0 22 97 14 */ lfs f1, lbl_805AB434@sda21(r2)
/* 8011CA94 001199F4 D0 5F 00 28 */ stfs f2, 0x28(r31)
/* 8011CA98 001199F8 C0 5F 00 18 */ lfs f2, 0x18(r31)
/* 8011CA9C 001199FC EC 43 10 24 */ fdivs f2, f3, f2
/* 8011CAA0 00119A00 D0 5F 00 2C */ stfs f2, 0x2c(r31)
/* 8011CAA4 00119A04 C0 5F 00 18 */ lfs f2, 0x18(r31)
/* 8011CAA8 00119A08 EC 02 00 24 */ fdivs f0, f2, f0
/* 8011CAAC 00119A0C D0 1F 00 30 */ stfs f0, 0x30(r31)
/* 8011CAB0 00119A10 C0 1F 00 30 */ lfs f0, 0x30(r31)
/* 8011CAB4 00119A14 EC 03 00 24 */ fdivs f0, f3, f0
/* 8011CAB8 00119A18 D0 1F 00 34 */ stfs f0, 0x34(r31)
/* 8011CABC 00119A1C C0 1F 00 34 */ lfs f0, 0x34(r31)
/* 8011CAC0 00119A20 EC 01 00 32 */ fmuls f0, f1, f0
/* 8011CAC4 00119A24 D0 1F 00 38 */ stfs f0, 0x38(r31)
/* 8011CAC8 00119A28 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0
/* 8011CACC 00119A2C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8011CAD0 00119A30 CB E1 00 10 */ lfd f31, 0x10(r1)
/* 8011CAD4 00119A34 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8011CAD8 00119A38 7C 08 03 A6 */ mtlr r0
/* 8011CADC 00119A3C 38 21 00 20 */ addi r1, r1, 0x20
/* 8011CAE0 00119A40 4E 80 00 20 */ blr