papermario/asm/nonmatchings/code_7900D0/func_802A16F4_7907C4.s
2021-01-11 21:40:52 +09:00

137 lines
6.8 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802A16F4_7907C4
/* 7907C4 802A16F4 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7907C8 802A16F8 AFBF001C */ sw $ra, 0x1c($sp)
/* 7907CC 802A16FC AFB00018 */ sw $s0, 0x18($sp)
/* 7907D0 802A1700 0C09A75B */ jal get_actor
/* 7907D4 802A1704 8C840148 */ lw $a0, 0x148($a0)
/* 7907D8 802A1708 0040802D */ daddu $s0, $v0, $zero
/* 7907DC 802A170C 0C09A75B */ jal get_actor
/* 7907E0 802A1710 86040428 */ lh $a0, 0x428($s0)
/* 7907E4 802A1714 82050426 */ lb $a1, 0x426($s0)
/* 7907E8 802A1718 0040802D */ daddu $s0, $v0, $zero
/* 7907EC 802A171C 0C099117 */ jal get_actor_part
/* 7907F0 802A1720 0200202D */ daddu $a0, $s0, $zero
/* 7907F4 802A1724 8E030000 */ lw $v1, ($s0)
/* 7907F8 802A1728 0040202D */ daddu $a0, $v0, $zero
/* 7907FC 802A172C 30624000 */ andi $v0, $v1, 0x4000
/* 790800 802A1730 14400069 */ bnez $v0, .L802A18D8
/* 790804 802A1734 24020002 */ addiu $v0, $zero, 2
/* 790808 802A1738 3C020040 */ lui $v0, 0x40
/* 79080C 802A173C 00621024 */ and $v0, $v1, $v0
/* 790810 802A1740 10400003 */ beqz $v0, .L802A1750
/* 790814 802A1744 30622000 */ andi $v0, $v1, 0x2000
/* 790818 802A1748 080A8636 */ j .L802A18D8
/* 79081C 802A174C 24020002 */ addiu $v0, $zero, 2
.L802A1750:
/* 790820 802A1750 14400061 */ bnez $v0, .L802A18D8
/* 790824 802A1754 24020002 */ addiu $v0, $zero, 2
/* 790828 802A1758 8C83007C */ lw $v1, 0x7c($a0)
/* 79082C 802A175C 3C020004 */ lui $v0, 4
/* 790830 802A1760 00621024 */ and $v0, $v1, $v0
/* 790834 802A1764 1440005C */ bnez $v0, .L802A18D8
/* 790838 802A1768 24020002 */ addiu $v0, $zero, 2
/* 79083C 802A176C 3C020008 */ lui $v0, 8
/* 790840 802A1770 00621024 */ and $v0, $v1, $v0
/* 790844 802A1774 14400058 */ bnez $v0, .L802A18D8
/* 790848 802A1778 24020002 */ addiu $v0, $zero, 2
/* 79084C 802A177C 0200202D */ daddu $a0, $s0, $zero
/* 790850 802A1780 0000282D */ daddu $a1, $zero, $zero
/* 790854 802A1784 2406000A */ addiu $a2, $zero, 0xa
/* 790858 802A1788 24020004 */ addiu $v0, $zero, 4
/* 79085C 802A178C A2020224 */ sb $v0, 0x224($s0)
/* 790860 802A1790 24020003 */ addiu $v0, $zero, 3
/* 790864 802A1794 0C09E23E */ jal dispatch_damage_event_actor_0
/* 790868 802A1798 A2020223 */ sb $v0, 0x223($s0)
/* 79086C 802A179C 86020150 */ lh $v0, 0x150($s0)
/* 790870 802A17A0 C6000144 */ lwc1 $f0, 0x144($s0)
/* 790874 802A17A4 8E030000 */ lw $v1, ($s0)
/* 790878 802A17A8 44821000 */ mtc1 $v0, $f2
/* 79087C 802A17AC 00000000 */ nop
/* 790880 802A17B0 468010A0 */ cvt.s.w $f2, $f2
/* 790884 802A17B4 92020190 */ lbu $v0, 0x190($s0)
/* 790888 802A17B8 46020000 */ add.s $f0, $f0, $f2
/* 79088C 802A17BC 00021042 */ srl $v0, $v0, 1
/* 790890 802A17C0 44821000 */ mtc1 $v0, $f2
/* 790894 802A17C4 00000000 */ nop
/* 790898 802A17C8 468010A0 */ cvt.s.w $f2, $f2
/* 79089C 802A17CC 30620800 */ andi $v0, $v1, 0x800
/* 7908A0 802A17D0 1040000D */ beqz $v0, .L802A1808
/* 7908A4 802A17D4 46020100 */ add.s $f4, $f0, $f2
/* 7908A8 802A17D8 86020152 */ lh $v0, 0x152($s0)
/* 7908AC 802A17DC C6000148 */ lwc1 $f0, 0x148($s0)
/* 7908B0 802A17E0 44821000 */ mtc1 $v0, $f2
/* 7908B4 802A17E4 00000000 */ nop
/* 7908B8 802A17E8 468010A0 */ cvt.s.w $f2, $f2
/* 7908BC 802A17EC 92020191 */ lbu $v0, 0x191($s0)
/* 7908C0 802A17F0 46020000 */ add.s $f0, $f0, $f2
/* 7908C4 802A17F4 44821000 */ mtc1 $v0, $f2
/* 7908C8 802A17F8 00000000 */ nop
/* 7908CC 802A17FC 468010A0 */ cvt.s.w $f2, $f2
/* 7908D0 802A1800 080A861D */ j .L802A1874
/* 7908D4 802A1804 46020001 */ sub.s $f0, $f0, $f2
.L802A1808:
/* 7908D8 802A1808 30628000 */ andi $v0, $v1, 0x8000
/* 7908DC 802A180C 1440000D */ bnez $v0, .L802A1844
/* 7908E0 802A1810 00000000 */ nop
/* 7908E4 802A1814 86020152 */ lh $v0, 0x152($s0)
/* 7908E8 802A1818 C6000148 */ lwc1 $f0, 0x148($s0)
/* 7908EC 802A181C 44821000 */ mtc1 $v0, $f2
/* 7908F0 802A1820 00000000 */ nop
/* 7908F4 802A1824 468010A0 */ cvt.s.w $f2, $f2
/* 7908F8 802A1828 92020191 */ lbu $v0, 0x191($s0)
/* 7908FC 802A182C 46020000 */ add.s $f0, $f0, $f2
/* 790900 802A1830 44821000 */ mtc1 $v0, $f2
/* 790904 802A1834 00000000 */ nop
/* 790908 802A1838 468010A0 */ cvt.s.w $f2, $f2
/* 79090C 802A183C 080A861D */ j .L802A1874
/* 790910 802A1840 46001000 */ add.s $f0, $f2, $f0
.L802A1844:
/* 790914 802A1844 86020152 */ lh $v0, 0x152($s0)
/* 790918 802A1848 C6020148 */ lwc1 $f2, 0x148($s0)
/* 79091C 802A184C 44820000 */ mtc1 $v0, $f0
/* 790920 802A1850 00000000 */ nop
/* 790924 802A1854 46800020 */ cvt.s.w $f0, $f0
/* 790928 802A1858 92020191 */ lbu $v0, 0x191($s0)
/* 79092C 802A185C 46001080 */ add.s $f2, $f2, $f0
/* 790930 802A1860 00021040 */ sll $v0, $v0, 1
/* 790934 802A1864 44820000 */ mtc1 $v0, $f0
/* 790938 802A1868 00000000 */ nop
/* 79093C 802A186C 46800020 */ cvt.s.w $f0, $f0
/* 790940 802A1870 46001000 */ add.s $f0, $f2, $f0
.L802A1874:
/* 790944 802A1874 86020154 */ lh $v0, 0x154($s0)
/* 790948 802A1878 44060000 */ mfc1 $a2, $f0
/* 79094C 802A187C C600014C */ lwc1 $f0, 0x14c($s0)
/* 790950 802A1880 44821000 */ mtc1 $v0, $f2
/* 790954 802A1884 00000000 */ nop
/* 790958 802A1888 468010A0 */ cvt.s.w $f2, $f2
/* 79095C 802A188C 46020000 */ add.s $f0, $f0, $f2
/* 790960 802A1890 3C0140A0 */ lui $at, 0x40a0
/* 790964 802A1894 44811000 */ mtc1 $at, $f2
/* 790968 802A1898 24040005 */ addiu $a0, $zero, 5
/* 79096C 802A189C 46020000 */ add.s $f0, $f0, $f2
/* 790970 802A18A0 44052000 */ mfc1 $a1, $f4
/* 790974 802A18A4 3C013F80 */ lui $at, 0x3f80
/* 790978 802A18A8 44812000 */ mtc1 $at, $f4
/* 79097C 802A18AC 44070000 */ mfc1 $a3, $f0
/* 790980 802A18B0 2402003C */ addiu $v0, $zero, 0x3c
/* 790984 802A18B4 AFA20014 */ sw $v0, 0x14($sp)
/* 790988 802A18B8 0C01C634 */ jal func_800718D0
/* 79098C 802A18BC E7A40010 */ swc1 $f4, 0x10($sp)
/* 790990 802A18C0 0C05272D */ jal play_sound
/* 790994 802A18C4 24042106 */ addiu $a0, $zero, 0x2106
/* 790998 802A18C8 24020002 */ addiu $v0, $zero, 2
/* 79099C 802A18CC 24030001 */ addiu $v1, $zero, 1
/* 7909A0 802A18D0 3C01802A */ lui $at, %hi(D_802A2CC0)
/* 7909A4 802A18D4 AC232CC0 */ sw $v1, %lo(D_802A2CC0)($at)
.L802A18D8:
/* 7909A8 802A18D8 8FBF001C */ lw $ra, 0x1c($sp)
/* 7909AC 802A18DC 8FB00018 */ lw $s0, 0x18($sp)
/* 7909B0 802A18E0 03E00008 */ jr $ra
/* 7909B4 802A18E4 27BD0020 */ addiu $sp, $sp, 0x20
/* 7909B8 802A18E8 00000000 */ nop
/* 7909BC 802A18EC 00000000 */ nop