papermario/asm/nonmatchings/code_16c8e0/HealActor.s
2020-08-12 22:37:16 -04:00

333 lines
15 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel HealActor
/* 19F584 80270CA4 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 19F588 80270CA8 AFB20020 */ sw $s2, 0x20($sp)
/* 19F58C 80270CAC 0080902D */ daddu $s2, $a0, $zero
/* 19F590 80270CB0 AFBF0028 */ sw $ra, 0x28($sp)
/* 19F594 80270CB4 AFB30024 */ sw $s3, 0x24($sp)
/* 19F598 80270CB8 AFB1001C */ sw $s1, 0x1c($sp)
/* 19F59C 80270CBC AFB00018 */ sw $s0, 0x18($sp)
/* 19F5A0 80270CC0 F7BE0058 */ sdc1 $f30, 0x58($sp)
/* 19F5A4 80270CC4 F7BC0050 */ sdc1 $f28, 0x50($sp)
/* 19F5A8 80270CC8 F7BA0048 */ sdc1 $f26, 0x48($sp)
/* 19F5AC 80270CCC F7B80040 */ sdc1 $f24, 0x40($sp)
/* 19F5B0 80270CD0 F7B60038 */ sdc1 $f22, 0x38($sp)
/* 19F5B4 80270CD4 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 19F5B8 80270CD8 8E50000C */ lw $s0, 0xc($s2)
/* 19F5BC 80270CDC 54A00001 */ bnezl $a1, .L80270CE4
/* 19F5C0 80270CE0 AE400070 */ sw $zero, 0x70($s2)
.L80270CE4:
/* 19F5C4 80270CE4 8E420070 */ lw $v0, 0x70($s2)
/* 19F5C8 80270CE8 1440002B */ bnez $v0, .L80270D98
/* 19F5CC 80270CEC 00000000 */ nop
/* 19F5D0 80270CF0 8E050000 */ lw $a1, ($s0)
/* 19F5D4 80270CF4 26100004 */ addiu $s0, $s0, 4
/* 19F5D8 80270CF8 0C0B1EAF */ jal get_variable
/* 19F5DC 80270CFC 0240202D */ daddu $a0, $s2, $zero
/* 19F5E0 80270D00 0040882D */ daddu $s1, $v0, $zero
/* 19F5E4 80270D04 2402FF81 */ addiu $v0, $zero, -0x7f
/* 19F5E8 80270D08 16220002 */ bne $s1, $v0, .L80270D14
/* 19F5EC 80270D0C 00000000 */ nop
/* 19F5F0 80270D10 8E510148 */ lw $s1, 0x148($s2)
.L80270D14:
/* 19F5F4 80270D14 8E050000 */ lw $a1, ($s0)
/* 19F5F8 80270D18 26100004 */ addiu $s0, $s0, 4
/* 19F5FC 80270D1C 0C0B1EAF */ jal get_variable
/* 19F600 80270D20 0240202D */ daddu $a0, $s2, $zero
/* 19F604 80270D24 0040982D */ daddu $s3, $v0, $zero
/* 19F608 80270D28 8E050000 */ lw $a1, ($s0)
/* 19F60C 80270D2C 0C0B1EAF */ jal get_variable
/* 19F610 80270D30 0240202D */ daddu $a0, $s2, $zero
/* 19F614 80270D34 3C01802A */ lui $at, 0x802a
/* 19F618 80270D38 AC22FBD0 */ sw $v0, -0x430($at)
/* 19F61C 80270D3C 0C09A75B */ jal get_actor
/* 19F620 80270D40 0220202D */ daddu $a0, $s1, $zero
/* 19F624 80270D44 0040802D */ daddu $s0, $v0, $zero
/* 19F628 80270D48 24040008 */ addiu $a0, $zero, 8
/* 19F62C 80270D4C AE500074 */ sw $s0, 0x74($s2)
/* 19F630 80270D50 0C093903 */ jal func_8024E40C
/* 19F634 80270D54 AE530078 */ sw $s3, 0x78($s2)
/* 19F638 80270D58 0C093978 */ jal set_cam_zoffset
/* 19F63C 80270D5C 2404000C */ addiu $a0, $zero, 0xc
/* 19F640 80270D60 86040192 */ lh $a0, 0x192($s0)
/* 19F644 80270D64 0C09390F */ jal cam_target_actor
/* 19F648 80270D68 00000000 */ nop
/* 19F64C 80270D6C 0C093936 */ jal move_cam_over
/* 19F650 80270D70 2404000A */ addiu $a0, $zero, 0xa
/* 19F654 80270D74 0C093983 */ jal func_8024E60C
/* 19F658 80270D78 00000000 */ nop
/* 19F65C 80270D7C 24020001 */ addiu $v0, $zero, 1
/* 19F660 80270D80 3C01802A */ lui $at, 0x802a
/* 19F664 80270D84 A022FBD4 */ sb $v0, -0x42c($at)
/* 19F668 80270D88 24020005 */ addiu $v0, $zero, 5
/* 19F66C 80270D8C AE42007C */ sw $v0, 0x7c($s2)
/* 19F670 80270D90 24020001 */ addiu $v0, $zero, 1
/* 19F674 80270D94 AE420070 */ sw $v0, 0x70($s2)
.L80270D98:
/* 19F678 80270D98 0C09A75B */ jal get_actor
/* 19F67C 80270D9C 8E440148 */ lw $a0, 0x148($s2)
/* 19F680 80270DA0 8E500074 */ lw $s0, 0x74($s2)
/* 19F684 80270DA4 8E530078 */ lw $s3, 0x78($s2)
/* 19F688 80270DA8 86020150 */ lh $v0, 0x150($s0)
/* 19F68C 80270DAC 8E030000 */ lw $v1, ($s0)
/* 19F690 80270DB0 C6000144 */ lwc1 $f0, 0x144($s0)
/* 19F694 80270DB4 44821000 */ mtc1 $v0, $f2
/* 19F698 80270DB8 00000000 */ nop
/* 19F69C 80270DBC 468010A0 */ cvt.s.w $f2, $f2
/* 19F6A0 80270DC0 30620800 */ andi $v0, $v1, 0x800
/* 19F6A4 80270DC4 1040000E */ beqz $v0, .L80270E00
/* 19F6A8 80270DC8 46020780 */ add.s $f30, $f0, $f2
/* 19F6AC 80270DCC 86020152 */ lh $v0, 0x152($s0)
/* 19F6B0 80270DD0 C6020148 */ lwc1 $f2, 0x148($s0)
/* 19F6B4 80270DD4 44820000 */ mtc1 $v0, $f0
/* 19F6B8 80270DD8 00000000 */ nop
/* 19F6BC 80270DDC 46800020 */ cvt.s.w $f0, $f0
/* 19F6C0 80270DE0 92020191 */ lbu $v0, 0x191($s0)
/* 19F6C4 80270DE4 46001080 */ add.s $f2, $f2, $f0
/* 19F6C8 80270DE8 00021042 */ srl $v0, $v0, 1
/* 19F6CC 80270DEC 44820000 */ mtc1 $v0, $f0
/* 19F6D0 80270DF0 00000000 */ nop
/* 19F6D4 80270DF4 46800020 */ cvt.s.w $f0, $f0
/* 19F6D8 80270DF8 0809C39B */ j .L80270E6C
/* 19F6DC 80270DFC 46001601 */ sub.s $f24, $f2, $f0
.L80270E00:
/* 19F6E0 80270E00 30628000 */ andi $v0, $v1, 0x8000
/* 19F6E4 80270E04 1440000E */ bnez $v0, .L80270E40
/* 19F6E8 80270E08 00000000 */ nop
/* 19F6EC 80270E0C 86020152 */ lh $v0, 0x152($s0)
/* 19F6F0 80270E10 C6020148 */ lwc1 $f2, 0x148($s0)
/* 19F6F4 80270E14 44820000 */ mtc1 $v0, $f0
/* 19F6F8 80270E18 00000000 */ nop
/* 19F6FC 80270E1C 46800020 */ cvt.s.w $f0, $f0
/* 19F700 80270E20 92020191 */ lbu $v0, 0x191($s0)
/* 19F704 80270E24 46001080 */ add.s $f2, $f2, $f0
/* 19F708 80270E28 00021042 */ srl $v0, $v0, 1
/* 19F70C 80270E2C 44820000 */ mtc1 $v0, $f0
/* 19F710 80270E30 00000000 */ nop
/* 19F714 80270E34 46800020 */ cvt.s.w $f0, $f0
/* 19F718 80270E38 0809C39B */ j .L80270E6C
/* 19F71C 80270E3C 46020600 */ add.s $f24, $f0, $f2
.L80270E40:
/* 19F720 80270E40 86020152 */ lh $v0, 0x152($s0)
/* 19F724 80270E44 C6000148 */ lwc1 $f0, 0x148($s0)
/* 19F728 80270E48 44821000 */ mtc1 $v0, $f2
/* 19F72C 80270E4C 00000000 */ nop
/* 19F730 80270E50 468010A0 */ cvt.s.w $f2, $f2
/* 19F734 80270E54 92020191 */ lbu $v0, 0x191($s0)
/* 19F738 80270E58 46020000 */ add.s $f0, $f0, $f2
/* 19F73C 80270E5C 44821000 */ mtc1 $v0, $f2
/* 19F740 80270E60 00000000 */ nop
/* 19F744 80270E64 468010A0 */ cvt.s.w $f2, $f2
/* 19F748 80270E68 46020600 */ add.s $f24, $f0, $f2
.L80270E6C:
/* 19F74C 80270E6C 86020154 */ lh $v0, 0x154($s0)
/* 19F750 80270E70 86030150 */ lh $v1, 0x150($s0)
/* 19F754 80270E74 C600014C */ lwc1 $f0, 0x14c($s0)
/* 19F758 80270E78 44821000 */ mtc1 $v0, $f2
/* 19F75C 80270E7C 00000000 */ nop
/* 19F760 80270E80 468010A0 */ cvt.s.w $f2, $f2
/* 19F764 80270E84 44832000 */ mtc1 $v1, $f4
/* 19F768 80270E88 00000000 */ nop
/* 19F76C 80270E8C 46802120 */ cvt.s.w $f4, $f4
/* 19F770 80270E90 92020190 */ lbu $v0, 0x190($s0)
/* 19F774 80270E94 46020000 */ add.s $f0, $f0, $f2
/* 19F778 80270E98 3C014120 */ lui $at, 0x4120
/* 19F77C 80270E9C 44811000 */ mtc1 $at, $f2
/* 19F780 80270EA0 8E030000 */ lw $v1, ($s0)
/* 19F784 80270EA4 46020700 */ add.s $f28, $f0, $f2
/* 19F788 80270EA8 C6000144 */ lwc1 $f0, 0x144($s0)
/* 19F78C 80270EAC 00021042 */ srl $v0, $v0, 1
/* 19F790 80270EB0 46040000 */ add.s $f0, $f0, $f4
/* 19F794 80270EB4 44821000 */ mtc1 $v0, $f2
/* 19F798 80270EB8 00000000 */ nop
/* 19F79C 80270EBC 468010A0 */ cvt.s.w $f2, $f2
/* 19F7A0 80270EC0 30620800 */ andi $v0, $v1, 0x800
/* 19F7A4 80270EC4 1040000D */ beqz $v0, .L80270EFC
/* 19F7A8 80270EC8 46020680 */ add.s $f26, $f0, $f2
/* 19F7AC 80270ECC 86020152 */ lh $v0, 0x152($s0)
/* 19F7B0 80270ED0 C6000148 */ lwc1 $f0, 0x148($s0)
/* 19F7B4 80270ED4 44821000 */ mtc1 $v0, $f2
/* 19F7B8 80270ED8 00000000 */ nop
/* 19F7BC 80270EDC 468010A0 */ cvt.s.w $f2, $f2
/* 19F7C0 80270EE0 92020191 */ lbu $v0, 0x191($s0)
/* 19F7C4 80270EE4 46020000 */ add.s $f0, $f0, $f2
/* 19F7C8 80270EE8 44821000 */ mtc1 $v0, $f2
/* 19F7CC 80270EEC 00000000 */ nop
/* 19F7D0 80270EF0 468010A0 */ cvt.s.w $f2, $f2
/* 19F7D4 80270EF4 0809C3DA */ j .L80270F68
/* 19F7D8 80270EF8 46020501 */ sub.s $f20, $f0, $f2
.L80270EFC:
/* 19F7DC 80270EFC 30628000 */ andi $v0, $v1, 0x8000
/* 19F7E0 80270F00 1440000D */ bnez $v0, .L80270F38
/* 19F7E4 80270F04 00000000 */ nop
/* 19F7E8 80270F08 86020152 */ lh $v0, 0x152($s0)
/* 19F7EC 80270F0C C6000148 */ lwc1 $f0, 0x148($s0)
/* 19F7F0 80270F10 44821000 */ mtc1 $v0, $f2
/* 19F7F4 80270F14 00000000 */ nop
/* 19F7F8 80270F18 468010A0 */ cvt.s.w $f2, $f2
/* 19F7FC 80270F1C 92020191 */ lbu $v0, 0x191($s0)
/* 19F800 80270F20 46020000 */ add.s $f0, $f0, $f2
/* 19F804 80270F24 44821000 */ mtc1 $v0, $f2
/* 19F808 80270F28 00000000 */ nop
/* 19F80C 80270F2C 468010A0 */ cvt.s.w $f2, $f2
/* 19F810 80270F30 0809C3DA */ j .L80270F68
/* 19F814 80270F34 46001500 */ add.s $f20, $f2, $f0
.L80270F38:
/* 19F818 80270F38 86020152 */ lh $v0, 0x152($s0)
/* 19F81C 80270F3C C6020148 */ lwc1 $f2, 0x148($s0)
/* 19F820 80270F40 44820000 */ mtc1 $v0, $f0
/* 19F824 80270F44 00000000 */ nop
/* 19F828 80270F48 46800020 */ cvt.s.w $f0, $f0
/* 19F82C 80270F4C 92020191 */ lbu $v0, 0x191($s0)
/* 19F830 80270F50 46001080 */ add.s $f2, $f2, $f0
/* 19F834 80270F54 00021040 */ sll $v0, $v0, 1
/* 19F838 80270F58 44820000 */ mtc1 $v0, $f0
/* 19F83C 80270F5C 00000000 */ nop
/* 19F840 80270F60 46800020 */ cvt.s.w $f0, $f0
/* 19F844 80270F64 46001500 */ add.s $f20, $f2, $f0
.L80270F68:
/* 19F848 80270F68 86020154 */ lh $v0, 0x154($s0)
/* 19F84C 80270F6C C600014C */ lwc1 $f0, 0x14c($s0)
/* 19F850 80270F70 44821000 */ mtc1 $v0, $f2
/* 19F854 80270F74 00000000 */ nop
/* 19F858 80270F78 468010A0 */ cvt.s.w $f2, $f2
/* 19F85C 80270F7C 46020000 */ add.s $f0, $f0, $f2
/* 19F860 80270F80 8E420070 */ lw $v0, 0x70($s2)
/* 19F864 80270F84 3C014120 */ lui $at, 0x4120
/* 19F868 80270F88 44811000 */ mtc1 $at, $f2
/* 19F86C 80270F8C 2443FFFF */ addiu $v1, $v0, -1
/* 19F870 80270F90 2C620005 */ sltiu $v0, $v1, 5
/* 19F874 80270F94 1040005F */ beqz $v0, .L80271114
/* 19F878 80270F98 46020580 */ add.s $f22, $f0, $f2
/* 19F87C 80270F9C 00031080 */ sll $v0, $v1, 2
/* 19F880 80270FA0 3C01802A */ lui $at, 0x802a
/* 19F884 80270FA4 00220821 */ addu $at, $at, $v0
/* 19F888 80270FA8 8C22D868 */ lw $v0, -0x2798($at)
/* 19F88C 80270FAC 00400008 */ jr $v0
/* 19F890 80270FB0 00000000 */ nop
/* 19F894 80270FB4 8E42007C */ lw $v0, 0x7c($s2)
/* 19F898 80270FB8 14400049 */ bnez $v0, .L802710E0
/* 19F89C 80270FBC 2442FFFF */ addiu $v0, $v0, -1
/* 19F8A0 80270FC0 0200202D */ daddu $a0, $s0, $zero
/* 19F8A4 80270FC4 0C09DC58 */ jal dispatch_event_actor
/* 19F8A8 80270FC8 2405003F */ addiu $a1, $zero, 0x3f
/* 19F8AC 80270FCC 4405D000 */ mfc1 $a1, $f26
/* 19F8B0 80270FD0 4406A000 */ mfc1 $a2, $f20
/* 19F8B4 80270FD4 4407B000 */ mfc1 $a3, $f22
/* 19F8B8 80270FD8 0000202D */ daddu $a0, $zero, $zero
/* 19F8BC 80270FDC 0C01C424 */ jal func_80071090
/* 19F8C0 80270FE0 AFB30010 */ sw $s3, 0x10($sp)
/* 19F8C4 80270FE4 4600F306 */ mov.s $f12, $f30
/* 19F8C8 80270FE8 4600C386 */ mov.s $f14, $f24
/* 19F8CC 80270FEC 4406E000 */ mfc1 $a2, $f28
/* 19F8D0 80270FF0 0C0B5D18 */ jal func_802D7460
/* 19F8D4 80270FF4 0260382D */ daddu $a3, $s3, $zero
/* 19F8D8 80270FF8 2402001E */ addiu $v0, $zero, 0x1e
/* 19F8DC 80270FFC AE42007C */ sw $v0, 0x7c($s2)
/* 19F8E0 80271000 24020002 */ addiu $v0, $zero, 2
/* 19F8E4 80271004 0809C445 */ j .L80271114
/* 19F8E8 80271008 AE420070 */ sw $v0, 0x70($s2)
/* 19F8EC 8027100C 8E42007C */ lw $v0, 0x7c($s2)
/* 19F8F0 80271010 14400033 */ bnez $v0, .L802710E0
/* 19F8F4 80271014 2442FFFF */ addiu $v0, $v0, -1
/* 19F8F8 80271018 0C093903 */ jal func_8024E40C
/* 19F8FC 8027101C 24040002 */ addiu $a0, $zero, 2
/* 19F900 80271020 0C093936 */ jal move_cam_over
/* 19F904 80271024 2404000F */ addiu $a0, $zero, 0xf
/* 19F908 80271028 920201B8 */ lbu $v0, 0x1b8($s0)
/* 19F90C 8027102C 820301B9 */ lb $v1, 0x1b9($s0)
/* 19F910 80271030 00531021 */ addu $v0, $v0, $s3
/* 19F914 80271034 A20201B8 */ sb $v0, 0x1b8($s0)
/* 19F918 80271038 00021600 */ sll $v0, $v0, 0x18
/* 19F91C 8027103C 00021603 */ sra $v0, $v0, 0x18
/* 19F920 80271040 0062182A */ slt $v1, $v1, $v0
/* 19F924 80271044 920201B9 */ lbu $v0, 0x1b9($s0)
/* 19F928 80271048 54600001 */ bnezl $v1, .L80271050
/* 19F92C 8027104C A20201B8 */ sb $v0, 0x1b8($s0)
.L80271050:
/* 19F930 80271050 4600F306 */ mov.s $f12, $f30
/* 19F934 80271054 4600C386 */ mov.s $f14, $f24
/* 19F938 80271058 4406E000 */ mfc1 $a2, $f28
/* 19F93C 8027105C 0C0B5D30 */ jal func_802D74C0
/* 19F940 80271060 0260382D */ daddu $a3, $s3, $zero
/* 19F944 80271064 2402000F */ addiu $v0, $zero, 0xf
/* 19F948 80271068 AE42007C */ sw $v0, 0x7c($s2)
/* 19F94C 8027106C 24020003 */ addiu $v0, $zero, 3
/* 19F950 80271070 0809C445 */ j .L80271114
/* 19F954 80271074 AE420070 */ sw $v0, 0x70($s2)
/* 19F958 80271078 8E42007C */ lw $v0, 0x7c($s2)
/* 19F95C 8027107C 14400018 */ bnez $v0, .L802710E0
/* 19F960 80271080 2442FFFF */ addiu $v0, $v0, -1
/* 19F964 80271084 3C02802A */ lui $v0, 0x802a
/* 19F968 80271088 8C42FBD0 */ lw $v0, -0x430($v0)
/* 19F96C 8027108C 14400002 */ bnez $v0, .L80271098
/* 19F970 80271090 24040020 */ addiu $a0, $zero, 0x20
/* 19F974 80271094 2404001F */ addiu $a0, $zero, 0x1f
.L80271098:
/* 19F978 80271098 2405003C */ addiu $a1, $zero, 0x3c
/* 19F97C 8027109C 0C093E81 */ jal show_variable_battle_message
/* 19F980 802710A0 0260302D */ daddu $a2, $s3, $zero
/* 19F984 802710A4 24020004 */ addiu $v0, $zero, 4
/* 19F988 802710A8 0809C445 */ j .L80271114
/* 19F98C 802710AC AE420070 */ sw $v0, 0x70($s2)
/* 19F990 802710B0 0C093EAD */ jal is_popup_displayed
/* 19F994 802710B4 00000000 */ nop
/* 19F998 802710B8 14400017 */ bnez $v0, .L80271118
/* 19F99C 802710BC 0000102D */ daddu $v0, $zero, $zero
/* 19F9A0 802710C0 2402000A */ addiu $v0, $zero, 0xa
/* 19F9A4 802710C4 AE42007C */ sw $v0, 0x7c($s2)
/* 19F9A8 802710C8 24020005 */ addiu $v0, $zero, 5
/* 19F9AC 802710CC 0809C445 */ j .L80271114
/* 19F9B0 802710D0 AE420070 */ sw $v0, 0x70($s2)
/* 19F9B4 802710D4 8E42007C */ lw $v0, 0x7c($s2)
/* 19F9B8 802710D8 10400003 */ beqz $v0, .L802710E8
/* 19F9BC 802710DC 2442FFFF */ addiu $v0, $v0, -1
.L802710E0:
/* 19F9C0 802710E0 0809C445 */ j .L80271114
/* 19F9C4 802710E4 AE42007C */ sw $v0, 0x7c($s2)
.L802710E8:
/* 19F9C8 802710E8 8E0201D8 */ lw $v0, 0x1d8($s0)
/* 19F9CC 802710EC 10400005 */ beqz $v0, .L80271104
/* 19F9D0 802710F0 00000000 */ nop
/* 19F9D4 802710F4 0C0B1059 */ jal does_script_exist
/* 19F9D8 802710F8 8E0401E8 */ lw $a0, 0x1e8($s0)
/* 19F9DC 802710FC 14400006 */ bnez $v0, .L80271118
/* 19F9E0 80271100 0000102D */ daddu $v0, $zero, $zero
.L80271104:
/* 19F9E4 80271104 3C01802A */ lui $at, 0x802a
/* 19F9E8 80271108 A020FBD4 */ sb $zero, -0x42c($at)
/* 19F9EC 8027110C 0809C446 */ j .L80271118
/* 19F9F0 80271110 24020002 */ addiu $v0, $zero, 2
.L80271114:
.L80271114:
/* 19F9F4 80271114 0000102D */ daddu $v0, $zero, $zero
.L80271118:
.L80271118:
/* 19F9F8 80271118 8FBF0028 */ lw $ra, 0x28($sp)
/* 19F9FC 8027111C 8FB30024 */ lw $s3, 0x24($sp)
/* 19FA00 80271120 8FB20020 */ lw $s2, 0x20($sp)
/* 19FA04 80271124 8FB1001C */ lw $s1, 0x1c($sp)
/* 19FA08 80271128 8FB00018 */ lw $s0, 0x18($sp)
/* 19FA0C 8027112C D7BE0058 */ ldc1 $f30, 0x58($sp)
/* 19FA10 80271130 D7BC0050 */ ldc1 $f28, 0x50($sp)
/* 19FA14 80271134 D7BA0048 */ ldc1 $f26, 0x48($sp)
/* 19FA18 80271138 D7B80040 */ ldc1 $f24, 0x40($sp)
/* 19FA1C 8027113C D7B60038 */ ldc1 $f22, 0x38($sp)
/* 19FA20 80271140 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 19FA24 80271144 03E00008 */ jr $ra
/* 19FA28 80271148 27BD0060 */ addiu $sp, $sp, 0x60