prime/asm/MetroidPrime/CDamageInfo.s

170 lines
7.6 KiB
ArmAsm

.include "macros.inc"
.section .sdata2, "a"
.balign 8
.global lbl_805AAB20
lbl_805AAB20:
# ROM: 0x3F73C0
.4byte 0x42700000
.global lbl_805AAB24
lbl_805AAB24:
# ROM: 0x3F73C4
.4byte 0
.global lbl_805AAB28
lbl_805AAB28:
# ROM: 0x3F73C8
.float 2.0
.4byte 0
.section .text, "ax"
.global __ct__11CDamageInfoFRC11CDamageInfof
__ct__11CDamageInfoFRC11CDamageInfof:
/* 800C3448 000C03A8 C0 02 8E 00 */ lfs f0, lbl_805AAB20@sda21(r2)
/* 800C344C 000C03AC 38 A0 00 01 */ li r5, 1
/* 800C3450 000C03B0 C0 64 00 14 */ lfs f3, 0x14(r4)
/* 800C3454 000C03B4 C0 44 00 10 */ lfs f2, 0x10(r4)
/* 800C3458 000C03B8 EC 00 00 72 */ fmuls f0, f0, f1
/* 800C345C 000C03BC C0 24 00 08 */ lfs f1, 8(r4)
/* 800C3460 000C03C0 80 04 00 00 */ lwz r0, 0(r4)
/* 800C3464 000C03C4 EC 01 00 32 */ fmuls f0, f1, f0
/* 800C3468 000C03C8 90 03 00 00 */ stw r0, 0(r3)
/* 800C346C 000C03CC 88 04 00 04 */ lbz r0, 4(r4)
/* 800C3470 000C03D0 98 03 00 04 */ stb r0, 4(r3)
/* 800C3474 000C03D4 D0 03 00 08 */ stfs f0, 8(r3)
/* 800C3478 000C03D8 C0 03 00 08 */ lfs f0, 8(r3)
/* 800C347C 000C03DC D0 03 00 0C */ stfs f0, 0xc(r3)
/* 800C3480 000C03E0 D0 43 00 10 */ stfs f2, 0x10(r3)
/* 800C3484 000C03E4 D0 63 00 14 */ stfs f3, 0x14(r3)
/* 800C3488 000C03E8 88 03 00 18 */ lbz r0, 0x18(r3)
/* 800C348C 000C03EC 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
/* 800C3490 000C03F0 98 03 00 18 */ stb r0, 0x18(r3)
/* 800C3494 000C03F4 4E 80 00 20 */ blr
.global GetRadiusDamage__11CDamageInfoCFRC20CDamageVulnerability
GetRadiusDamage__11CDamageInfoCFRC20CDamageVulnerability:
/* 800C3498 000C03F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C349C 000C03FC 7C 08 02 A6 */ mflr r0
/* 800C34A0 000C0400 38 A0 00 00 */ li r5, 0
/* 800C34A4 000C0404 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C34A8 000C0408 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800C34AC 000C040C 7C 7F 1B 78 */ mr r31, r3
/* 800C34B0 000C0410 7C 83 23 78 */ mr r3, r4
/* 800C34B4 000C0414 7F E4 FB 78 */ mr r4, r31
/* 800C34B8 000C0418 48 03 F0 05 */ bl GetVulnerability__20CDamageVulnerabilityCFRC11CWeaponMode
/* 800C34BC 000C041C 2C 03 00 02 */ cmpwi r3, 2
/* 800C34C0 000C0420 40 82 00 0C */ bne lbl_800C34CC
/* 800C34C4 000C0424 C0 22 8E 04 */ lfs f1, lbl_805AAB24@sda21(r2)
/* 800C34C8 000C0428 48 00 00 20 */ b lbl_800C34E8
lbl_800C34CC:
/* 800C34CC 000C042C 2C 03 00 00 */ cmpwi r3, 0
/* 800C34D0 000C0430 40 82 00 14 */ bne lbl_800C34E4
/* 800C34D4 000C0434 C0 22 8E 08 */ lfs f1, lbl_805AAB28@sda21(r2)
/* 800C34D8 000C0438 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 800C34DC 000C043C EC 21 00 32 */ fmuls f1, f1, f0
/* 800C34E0 000C0440 48 00 00 08 */ b lbl_800C34E8
lbl_800C34E4:
/* 800C34E4 000C0444 C0 3F 00 0C */ lfs f1, 0xc(r31)
lbl_800C34E8:
/* 800C34E8 000C0448 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C34EC 000C044C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800C34F0 000C0450 7C 08 03 A6 */ mtlr r0
/* 800C34F4 000C0454 38 21 00 10 */ addi r1, r1, 0x10
/* 800C34F8 000C0458 4E 80 00 20 */ blr
.global GetDamage__11CDamageInfoCFRC20CDamageVulnerability
GetDamage__11CDamageInfoCFRC20CDamageVulnerability:
/* 800C34FC 000C045C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C3500 000C0460 7C 08 02 A6 */ mflr r0
/* 800C3504 000C0464 38 A0 00 00 */ li r5, 0
/* 800C3508 000C0468 90 01 00 14 */ stw r0, 0x14(r1)
/* 800C350C 000C046C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800C3510 000C0470 7C 7F 1B 78 */ mr r31, r3
/* 800C3514 000C0474 7C 83 23 78 */ mr r3, r4
/* 800C3518 000C0478 7F E4 FB 78 */ mr r4, r31
/* 800C351C 000C047C 48 03 EF A1 */ bl GetVulnerability__20CDamageVulnerabilityCFRC11CWeaponMode
/* 800C3520 000C0480 2C 03 00 02 */ cmpwi r3, 2
/* 800C3524 000C0484 40 82 00 0C */ bne lbl_800C3530
/* 800C3528 000C0488 C0 22 8E 04 */ lfs f1, lbl_805AAB24@sda21(r2)
/* 800C352C 000C048C 48 00 00 20 */ b lbl_800C354C
lbl_800C3530:
/* 800C3530 000C0490 2C 03 00 00 */ cmpwi r3, 0
/* 800C3534 000C0494 40 82 00 14 */ bne lbl_800C3548
/* 800C3538 000C0498 C0 22 8E 08 */ lfs f1, lbl_805AAB28@sda21(r2)
/* 800C353C 000C049C C0 1F 00 08 */ lfs f0, 8(r31)
/* 800C3540 000C04A0 EC 21 00 32 */ fmuls f1, f1, f0
/* 800C3544 000C04A4 48 00 00 08 */ b lbl_800C354C
lbl_800C3548:
/* 800C3548 000C04A8 C0 3F 00 08 */ lfs f1, 8(r31)
lbl_800C354C:
/* 800C354C 000C04AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C3550 000C04B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800C3554 000C04B4 7C 08 03 A6 */ mtlr r0
/* 800C3558 000C04B8 38 21 00 10 */ addi r1, r1, 0x10
/* 800C355C 000C04BC 4E 80 00 20 */ blr
.global __ct__11CDamageInfoFR12CInputStream
__ct__11CDamageInfoFR12CInputStream:
/* 800C3560 000C04C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800C3564 000C04C4 7C 08 02 A6 */ mflr r0
/* 800C3568 000C04C8 38 E0 FF FF */ li r7, -1
/* 800C356C 000C04CC 38 C0 00 00 */ li r6, 0
/* 800C3570 000C04D0 90 01 00 24 */ stw r0, 0x24(r1)
/* 800C3574 000C04D4 88 A1 00 14 */ lbz r5, 0x14(r1)
/* 800C3578 000C04D8 50 C5 3E 30 */ rlwimi r5, r6, 7, 0x18, 0x18
/* 800C357C 000C04DC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800C3580 000C04E0 7C 9F 23 78 */ mr r31, r4
/* 800C3584 000C04E4 54 A0 06 3E */ clrlwi r0, r5, 0x18
/* 800C3588 000C04E8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800C358C 000C04EC 50 C0 36 72 */ rlwimi r0, r6, 6, 0x19, 0x19
/* 800C3590 000C04F0 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 800C3594 000C04F4 7C 7E 1B 78 */ mr r30, r3
/* 800C3598 000C04F8 90 E3 00 00 */ stw r7, 0(r3)
/* 800C359C 000C04FC 50 C4 2E B4 */ rlwimi r4, r6, 5, 0x1a, 0x1a
/* 800C35A0 000C0500 7F E3 FB 78 */ mr r3, r31
/* 800C35A4 000C0504 98 A1 00 14 */ stb r5, 0x14(r1)
/* 800C35A8 000C0508 98 01 00 14 */ stb r0, 0x14(r1)
/* 800C35AC 000C050C 98 9E 00 04 */ stb r4, 4(r30)
/* 800C35B0 000C0510 88 1E 00 18 */ lbz r0, 0x18(r30)
/* 800C35B4 000C0514 50 C0 3E 30 */ rlwimi r0, r6, 7, 0x18, 0x18
/* 800C35B8 000C0518 90 E1 00 10 */ stw r7, 0x10(r1)
/* 800C35BC 000C051C 98 81 00 14 */ stb r4, 0x14(r1)
/* 800C35C0 000C0520 98 1E 00 18 */ stb r0, 0x18(r30)
/* 800C35C4 000C0524 48 27 B6 C1 */ bl ReadLong__12CInputStreamFv
/* 800C35C8 000C0528 7F E3 FB 78 */ mr r3, r31
/* 800C35CC 000C052C 48 27 B6 B9 */ bl ReadLong__12CInputStreamFv
/* 800C35D0 000C0530 88 01 00 0C */ lbz r0, 0xc(r1)
/* 800C35D4 000C0534 38 A0 00 00 */ li r5, 0
/* 800C35D8 000C0538 50 A0 3E 30 */ rlwimi r0, r5, 7, 0x18, 0x18
/* 800C35DC 000C053C 90 7E 00 00 */ stw r3, 0(r30)
/* 800C35E0 000C0540 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 800C35E4 000C0544 98 01 00 0C */ stb r0, 0xc(r1)
/* 800C35E8 000C0548 50 A4 36 72 */ rlwimi r4, r5, 6, 0x19, 0x19
/* 800C35EC 000C054C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 800C35F0 000C0550 50 A0 2E B4 */ rlwimi r0, r5, 5, 0x1a, 0x1a
/* 800C35F4 000C0554 98 81 00 0C */ stb r4, 0xc(r1)
/* 800C35F8 000C0558 90 61 00 08 */ stw r3, 8(r1)
/* 800C35FC 000C055C 7F E3 FB 78 */ mr r3, r31
/* 800C3600 000C0560 98 01 00 0C */ stb r0, 0xc(r1)
/* 800C3604 000C0564 98 1E 00 04 */ stb r0, 4(r30)
/* 800C3608 000C0568 48 27 B6 21 */ bl ReadFloat__12CInputStreamFv
/* 800C360C 000C056C D0 3E 00 08 */ stfs f1, 8(r30)
/* 800C3610 000C0570 7F E3 FB 78 */ mr r3, r31
/* 800C3614 000C0574 C0 1E 00 08 */ lfs f0, 8(r30)
/* 800C3618 000C0578 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 800C361C 000C057C 48 27 B6 0D */ bl ReadFloat__12CInputStreamFv
/* 800C3620 000C0580 D0 3E 00 10 */ stfs f1, 0x10(r30)
/* 800C3624 000C0584 7F E3 FB 78 */ mr r3, r31
/* 800C3628 000C0588 48 27 B6 01 */ bl ReadFloat__12CInputStreamFv
/* 800C362C 000C058C D0 3E 00 14 */ stfs f1, 0x14(r30)
/* 800C3630 000C0590 7F C3 F3 78 */ mr r3, r30
/* 800C3634 000C0594 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800C3638 000C0598 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800C363C 000C059C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800C3640 000C05A0 7C 08 03 A6 */ mtlr r0
/* 800C3644 000C05A4 38 21 00 20 */ addi r1, r1, 0x20
/* 800C3648 000C05A8 4E 80 00 20 */ blr