papermario/ver/us/asm/nonmatchings/EB8E90/func_80240BD4_EB9A24.s
Lightning 1c64f15db1
Make a 224 functions show up in the elf (#530)
* Make a 224 functions show up in the elf

* fix up appendGfx_model (as an example)

* Changed all L labels to .L for local jump tables. Did not change global jump tables found in /data/ as .L is for local only

* Decompile even more misc battle map funcs (#531)

* decompile misc battle map funcs

* fix warnings

* Decompile misc battle map funcs (#528)

* .

* .

* resolve issues

* Update fx_api.c

* Update fx_api.c

* Make a 224 functions show up in the elf

* fix up appendGfx_model (as an example)

* Changed all L labels to .L for local jump tables. Did not change global jump tables found in /data/ as .L is for local only

* Fix merge issue

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
Co-authored-by: Alexander Faßbender <31699028+Brotenko@users.noreply.github.com>
2021-11-16 16:19:38 +09:00

233 lines
14 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_80249200_EC2050
.word .L80240DE4_EB9C34, .L80240DF4_EB9C44, .L80240E0C_EB9C5C, .L80240E1C_EB9C6C, .L80240E34_EB9C84, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240E4C_EB9C9C, .L80240E5C_EB9CAC, .L80240E74_EB9CC4, .L80240E84_EB9CD4, .L80240E9C_EB9CEC, .L80240EB4_EB9D04, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ED4_EB9D24, .L80240ECC_EB9D1C
.section .text
glabel func_80240BD4_EB9A24
/* EB9A24 80240BD4 27BDFF98 */ addiu $sp, $sp, -0x68
/* EB9A28 80240BD8 AFB5005C */ sw $s5, 0x5c($sp)
/* EB9A2C 80240BDC 0080A82D */ daddu $s5, $a0, $zero
/* EB9A30 80240BE0 AFBF0060 */ sw $ra, 0x60($sp)
/* EB9A34 80240BE4 AFB40058 */ sw $s4, 0x58($sp)
/* EB9A38 80240BE8 AFB30054 */ sw $s3, 0x54($sp)
/* EB9A3C 80240BEC AFB20050 */ sw $s2, 0x50($sp)
/* EB9A40 80240BF0 AFB1004C */ sw $s1, 0x4c($sp)
/* EB9A44 80240BF4 AFB00048 */ sw $s0, 0x48($sp)
/* EB9A48 80240BF8 8EB10148 */ lw $s1, 0x148($s5)
/* EB9A4C 80240BFC 86240008 */ lh $a0, 8($s1)
/* EB9A50 80240C00 0C00F92F */ jal dead_get_npc_unsafe
/* EB9A54 80240C04 00A0802D */ daddu $s0, $a1, $zero
/* EB9A58 80240C08 8EA3000C */ lw $v1, 0xc($s5)
/* EB9A5C 80240C0C 02A0202D */ daddu $a0, $s5, $zero
/* EB9A60 80240C10 8C650000 */ lw $a1, ($v1)
/* EB9A64 80240C14 0C0B53A3 */ jal dead_evt_get_variable
/* EB9A68 80240C18 0040902D */ daddu $s2, $v0, $zero
/* EB9A6C 80240C1C AFA00018 */ sw $zero, 0x18($sp)
/* EB9A70 80240C20 8E2300D0 */ lw $v1, 0xd0($s1)
/* EB9A74 80240C24 8C630094 */ lw $v1, 0x94($v1)
/* EB9A78 80240C28 AFA3001C */ sw $v1, 0x1c($sp)
/* EB9A7C 80240C2C 8E2300D0 */ lw $v1, 0xd0($s1)
/* EB9A80 80240C30 8C630080 */ lw $v1, 0x80($v1)
/* EB9A84 80240C34 AFA30020 */ sw $v1, 0x20($sp)
/* EB9A88 80240C38 8E2300D0 */ lw $v1, 0xd0($s1)
/* EB9A8C 80240C3C 8C630088 */ lw $v1, 0x88($v1)
/* EB9A90 80240C40 AFA30024 */ sw $v1, 0x24($sp)
/* EB9A94 80240C44 8E2300D0 */ lw $v1, 0xd0($s1)
/* EB9A98 80240C48 8C63008C */ lw $v1, 0x8c($v1)
/* EB9A9C 80240C4C AFA30028 */ sw $v1, 0x28($sp)
/* EB9AA0 80240C50 8E2300D0 */ lw $v1, 0xd0($s1)
/* EB9AA4 80240C54 3C014282 */ lui $at, 0x4282
/* EB9AA8 80240C58 44810000 */ mtc1 $at, $f0
/* EB9AAC 80240C5C 8C630090 */ lw $v1, 0x90($v1)
/* EB9AB0 80240C60 E7A00030 */ swc1 $f0, 0x30($sp)
/* EB9AB4 80240C64 A7A00034 */ sh $zero, 0x34($sp)
/* EB9AB8 80240C68 AFA3002C */ sw $v1, 0x2c($sp)
/* EB9ABC 80240C6C C6400038 */ lwc1 $f0, 0x38($s2)
/* EB9AC0 80240C70 E6200108 */ swc1 $f0, 0x108($s1)
/* EB9AC4 80240C74 C640003C */ lwc1 $f0, 0x3c($s2)
/* EB9AC8 80240C78 27B40018 */ addiu $s4, $sp, 0x18
/* EB9ACC 80240C7C E620010C */ swc1 $f0, 0x10c($s1)
/* EB9AD0 80240C80 3C0138D1 */ lui $at, 0x38d1
/* EB9AD4 80240C84 3421B717 */ ori $at, $at, 0xb717
/* EB9AD8 80240C88 44810000 */ mtc1 $at, $f0
/* EB9ADC 80240C8C C6420040 */ lwc1 $f2, 0x40($s2)
/* EB9AE0 80240C90 0040982D */ daddu $s3, $v0, $zero
/* EB9AE4 80240C94 E6200114 */ swc1 $f0, 0x114($s1)
/* EB9AE8 80240C98 E6200118 */ swc1 $f0, 0x118($s1)
/* EB9AEC 80240C9C 16000005 */ bnez $s0, .L80240CB4
/* EB9AF0 80240CA0 E6220110 */ swc1 $f2, 0x110($s1)
/* EB9AF4 80240CA4 8E2200B0 */ lw $v0, 0xb0($s1)
/* EB9AF8 80240CA8 30420004 */ andi $v0, $v0, 4
/* EB9AFC 80240CAC 10400044 */ beqz $v0, .L80240DC0
/* EB9B00 80240CB0 00000000 */ nop
.L80240CB4:
/* EB9B04 80240CB4 2404F7FF */ addiu $a0, $zero, -0x801
/* EB9B08 80240CB8 AEA00070 */ sw $zero, 0x70($s5)
/* EB9B0C 80240CBC A640008E */ sh $zero, 0x8e($s2)
/* EB9B10 80240CC0 8E2200CC */ lw $v0, 0xcc($s1)
/* EB9B14 80240CC4 8E430000 */ lw $v1, ($s2)
/* EB9B18 80240CC8 8C420000 */ lw $v0, ($v0)
/* EB9B1C 80240CCC 00641824 */ and $v1, $v1, $a0
/* EB9B20 80240CD0 AE430000 */ sw $v1, ($s2)
/* EB9B24 80240CD4 AE420028 */ sw $v0, 0x28($s2)
/* EB9B28 80240CD8 8E2200D0 */ lw $v0, 0xd0($s1)
/* EB9B2C 80240CDC 8C420098 */ lw $v0, 0x98($v0)
/* EB9B30 80240CE0 54400005 */ bnel $v0, $zero, .L80240CF8
/* EB9B34 80240CE4 2402FDFF */ addiu $v0, $zero, -0x201
/* EB9B38 80240CE8 34620200 */ ori $v0, $v1, 0x200
/* EB9B3C 80240CEC 2403FFF7 */ addiu $v1, $zero, -9
/* EB9B40 80240CF0 08090340 */ j .L80240D00
/* EB9B44 80240CF4 00431024 */ and $v0, $v0, $v1
.L80240CF8:
/* EB9B48 80240CF8 00621024 */ and $v0, $v1, $v0
/* EB9B4C 80240CFC 34420008 */ ori $v0, $v0, 8
.L80240D00:
/* EB9B50 80240D00 AE420000 */ sw $v0, ($s2)
/* EB9B54 80240D04 8E2200B0 */ lw $v0, 0xb0($s1)
/* EB9B58 80240D08 30420004 */ andi $v0, $v0, 4
/* EB9B5C 80240D0C 10400008 */ beqz $v0, .L80240D30
/* EB9B60 80240D10 24020063 */ addiu $v0, $zero, 0x63
/* EB9B64 80240D14 AEA20070 */ sw $v0, 0x70($s5)
/* EB9B68 80240D18 AEA00074 */ sw $zero, 0x74($s5)
/* EB9B6C 80240D1C 8E2200B0 */ lw $v0, 0xb0($s1)
/* EB9B70 80240D20 2403FFFB */ addiu $v1, $zero, -5
/* EB9B74 80240D24 00431024 */ and $v0, $v0, $v1
/* EB9B78 80240D28 08090357 */ j .L80240D5C
/* EB9B7C 80240D2C AE2200B0 */ sw $v0, 0xb0($s1)
.L80240D30:
/* EB9B80 80240D30 8E220000 */ lw $v0, ($s1)
/* EB9B84 80240D34 3C034000 */ lui $v1, 0x4000
/* EB9B88 80240D38 00431024 */ and $v0, $v0, $v1
/* EB9B8C 80240D3C 10400007 */ beqz $v0, .L80240D5C
/* EB9B90 80240D40 3C03BFFF */ lui $v1, 0xbfff
/* EB9B94 80240D44 2402000C */ addiu $v0, $zero, 0xc
/* EB9B98 80240D48 AEA20070 */ sw $v0, 0x70($s5)
/* EB9B9C 80240D4C 8E220000 */ lw $v0, ($s1)
/* EB9BA0 80240D50 3463FFFF */ ori $v1, $v1, 0xffff
/* EB9BA4 80240D54 00431024 */ and $v0, $v0, $v1
/* EB9BA8 80240D58 AE220000 */ sw $v0, ($s1)
.L80240D5C:
/* EB9BAC 80240D5C 27A50038 */ addiu $a1, $sp, 0x38
/* EB9BB0 80240D60 27A6003C */ addiu $a2, $sp, 0x3c
/* EB9BB4 80240D64 C6400038 */ lwc1 $f0, 0x38($s2)
/* EB9BB8 80240D68 864200A8 */ lh $v0, 0xa8($s2)
/* EB9BBC 80240D6C 3C0142C8 */ lui $at, 0x42c8
/* EB9BC0 80240D70 44812000 */ mtc1 $at, $f4
/* EB9BC4 80240D74 44823000 */ mtc1 $v0, $f6
/* EB9BC8 80240D78 00000000 */ nop
/* EB9BCC 80240D7C 468031A0 */ cvt.s.w $f6, $f6
/* EB9BD0 80240D80 27A20044 */ addiu $v0, $sp, 0x44
/* EB9BD4 80240D84 E7A00038 */ swc1 $f0, 0x38($sp)
/* EB9BD8 80240D88 C640003C */ lwc1 $f0, 0x3c($s2)
/* EB9BDC 80240D8C C6420040 */ lwc1 $f2, 0x40($s2)
/* EB9BE0 80240D90 46060000 */ add.s $f0, $f0, $f6
/* EB9BE4 80240D94 E7A40044 */ swc1 $f4, 0x44($sp)
/* EB9BE8 80240D98 E7A20040 */ swc1 $f2, 0x40($sp)
/* EB9BEC 80240D9C E7A0003C */ swc1 $f0, 0x3c($sp)
/* EB9BF0 80240DA0 AFA20010 */ sw $v0, 0x10($sp)
/* EB9BF4 80240DA4 8E440080 */ lw $a0, 0x80($s2)
/* EB9BF8 80240DA8 0C03908F */ jal dead_npc_raycast_down_sides
/* EB9BFC 80240DAC 27A70040 */ addiu $a3, $sp, 0x40
/* EB9C00 80240DB0 10400003 */ beqz $v0, .L80240DC0
/* EB9C04 80240DB4 00000000 */ nop
/* EB9C08 80240DB8 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* EB9C0C 80240DBC E640003C */ swc1 $f0, 0x3c($s2)
.L80240DC0:
/* EB9C10 80240DC0 8EA30070 */ lw $v1, 0x70($s5)
/* EB9C14 80240DC4 2C620064 */ sltiu $v0, $v1, 0x64
/* EB9C18 80240DC8 10400042 */ beqz $v0, .L80240ED4_EB9D24
/* EB9C1C 80240DCC 00031080 */ sll $v0, $v1, 2
/* EB9C20 80240DD0 3C018025 */ lui $at, %hi(jtbl_80249200_EC2050)
/* EB9C24 80240DD4 00220821 */ addu $at, $at, $v0
/* EB9C28 80240DD8 8C229200 */ lw $v0, %lo(jtbl_80249200_EC2050)($at)
/* EB9C2C 80240DDC 00400008 */ jr $v0
/* EB9C30 80240DE0 00000000 */ nop
.L80240DE4_EB9C34:
/* EB9C34 80240DE4 02A0202D */ daddu $a0, $s5, $zero
/* EB9C38 80240DE8 0260282D */ daddu $a1, $s3, $zero
/* EB9C3C 80240DEC 0C090010 */ jal EB8E90_UnkNpcAIFunc24
/* EB9C40 80240DF0 0280302D */ daddu $a2, $s4, $zero
.L80240DF4_EB9C44:
/* EB9C44 80240DF4 02A0202D */ daddu $a0, $s5, $zero
/* EB9C48 80240DF8 0260282D */ daddu $a1, $s3, $zero
/* EB9C4C 80240DFC 0C090066 */ jal EB8E90_UnkFunc13
/* EB9C50 80240E00 0280302D */ daddu $a2, $s4, $zero
/* EB9C54 80240E04 080903B5 */ j .L80240ED4_EB9D24
/* EB9C58 80240E08 00000000 */ nop
.L80240E0C_EB9C5C:
/* EB9C5C 80240E0C 02A0202D */ daddu $a0, $s5, $zero
/* EB9C60 80240E10 0260282D */ daddu $a1, $s3, $zero
/* EB9C64 80240E14 0C090110 */ jal EB8E90_UnkNpcAIFunc1
/* EB9C68 80240E18 0280302D */ daddu $a2, $s4, $zero
.L80240E1C_EB9C6C:
/* EB9C6C 80240E1C 02A0202D */ daddu $a0, $s5, $zero
/* EB9C70 80240E20 0260282D */ daddu $a1, $s3, $zero
/* EB9C74 80240E24 0C090140 */ jal EB8E90_UnkFunc14
/* EB9C78 80240E28 0280302D */ daddu $a2, $s4, $zero
/* EB9C7C 80240E2C 080903B5 */ j .L80240ED4_EB9D24
/* EB9C80 80240E30 00000000 */ nop
.L80240E34_EB9C84:
/* EB9C84 80240E34 02A0202D */ daddu $a0, $s5, $zero
/* EB9C88 80240E38 0260282D */ daddu $a1, $s3, $zero
/* EB9C8C 80240E3C 0C0901AF */ jal EB8E90_UnkNpcAIFunc25
/* EB9C90 80240E40 0280302D */ daddu $a2, $s4, $zero
/* EB9C94 80240E44 080903B5 */ j .L80240ED4_EB9D24
/* EB9C98 80240E48 00000000 */ nop
.L80240E4C_EB9C9C:
/* EB9C9C 80240E4C 02A0202D */ daddu $a0, $s5, $zero
/* EB9CA0 80240E50 0260282D */ daddu $a1, $s3, $zero
/* EB9CA4 80240E54 0C0901DC */ jal EB8E90_NpcJumpFunc2
/* EB9CA8 80240E58 0280302D */ daddu $a2, $s4, $zero
.L80240E5C_EB9CAC:
/* EB9CAC 80240E5C 02A0202D */ daddu $a0, $s5, $zero
/* EB9CB0 80240E60 0260282D */ daddu $a1, $s3, $zero
/* EB9CB4 80240E64 0C0901F9 */ jal EB8E90_NpcJumpFunc
/* EB9CB8 80240E68 0280302D */ daddu $a2, $s4, $zero
/* EB9CBC 80240E6C 080903B5 */ j .L80240ED4_EB9D24
/* EB9CC0 80240E70 00000000 */ nop
.L80240E74_EB9CC4:
/* EB9CC4 80240E74 02A0202D */ daddu $a0, $s5, $zero
/* EB9CC8 80240E78 0260282D */ daddu $a1, $s3, $zero
/* EB9CCC 80240E7C 0C090217 */ jal EB8E90_UnkNpcAIFunc13
/* EB9CD0 80240E80 0280302D */ daddu $a2, $s4, $zero
.L80240E84_EB9CD4:
/* EB9CD4 80240E84 02A0202D */ daddu $a0, $s5, $zero
/* EB9CD8 80240E88 0260282D */ daddu $a1, $s3, $zero
/* EB9CDC 80240E8C 0C090263 */ jal EB8E90_UnkFunc15
/* EB9CE0 80240E90 0280302D */ daddu $a2, $s4, $zero
/* EB9CE4 80240E94 080903B5 */ j .L80240ED4_EB9D24
/* EB9CE8 80240E98 00000000 */ nop
.L80240E9C_EB9CEC:
/* EB9CEC 80240E9C 02A0202D */ daddu $a0, $s5, $zero
/* EB9CF0 80240EA0 0260282D */ daddu $a1, $s3, $zero
/* EB9CF4 80240EA4 0C0902AB */ jal EB8E90_UnkNpcDurationFlagFunc
/* EB9CF8 80240EA8 0280302D */ daddu $a2, $s4, $zero
/* EB9CFC 80240EAC 080903B5 */ j .L80240ED4_EB9D24
/* EB9D00 80240EB0 00000000 */ nop
.L80240EB4_EB9D04:
/* EB9D04 80240EB4 02A0202D */ daddu $a0, $s5, $zero
/* EB9D08 80240EB8 0260282D */ daddu $a1, $s3, $zero
/* EB9D0C 80240EBC 0C0902C5 */ jal EB8E90_UnkFunc16
/* EB9D10 80240EC0 0280302D */ daddu $a2, $s4, $zero
/* EB9D14 80240EC4 080903B5 */ j .L80240ED4_EB9D24
/* EB9D18 80240EC8 00000000 */ nop
.L80240ECC_EB9D1C:
/* EB9D1C 80240ECC 0C013AE3 */ jal func_8004EB8C
/* EB9D20 80240ED0 02A0202D */ daddu $a0, $s5, $zero
.L80240ED4_EB9D24:
/* EB9D24 80240ED4 8FBF0060 */ lw $ra, 0x60($sp)
/* EB9D28 80240ED8 8FB5005C */ lw $s5, 0x5c($sp)
/* EB9D2C 80240EDC 8FB40058 */ lw $s4, 0x58($sp)
/* EB9D30 80240EE0 8FB30054 */ lw $s3, 0x54($sp)
/* EB9D34 80240EE4 8FB20050 */ lw $s2, 0x50($sp)
/* EB9D38 80240EE8 8FB1004C */ lw $s1, 0x4c($sp)
/* EB9D3C 80240EEC 8FB00048 */ lw $s0, 0x48($sp)
/* EB9D40 80240EF0 0000102D */ daddu $v0, $zero, $zero
/* EB9D44 80240EF4 03E00008 */ jr $ra
/* EB9D48 80240EF8 27BD0068 */ addiu $sp, $sp, 0x68