mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
236 lines
10 KiB
ArmAsm
236 lines
10 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_800E2D18
|
|
/* 07C1C8 800E2D18 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 07C1CC 800E2D1C AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 07C1D0 800E2D20 3C108011 */ lui $s0, 0x8011
|
|
/* 07C1D4 800E2D24 2610EFC8 */ addiu $s0, $s0, -0x1038
|
|
/* 07C1D8 800E2D28 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 07C1DC 800E2D2C F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* 07C1E0 800E2D30 860200C0 */ lh $v0, 0xc0($s0)
|
|
/* 07C1E4 800E2D34 1040006A */ beqz $v0, .L800E2EE0
|
|
/* 07C1E8 800E2D38 00000000 */ nop
|
|
/* 07C1EC 800E2D3C 920200B4 */ lbu $v0, 0xb4($s0)
|
|
/* 07C1F0 800E2D40 2442FFFC */ addiu $v0, $v0, -4
|
|
/* 07C1F4 800E2D44 00021600 */ sll $v0, $v0, 0x18
|
|
/* 07C1F8 800E2D48 00021E03 */ sra $v1, $v0, 0x18
|
|
/* 07C1FC 800E2D4C 2C620014 */ sltiu $v0, $v1, 0x14
|
|
/* 07C200 800E2D50 10400045 */ beqz $v0, .L800E2E68
|
|
/* 07C204 800E2D54 00031080 */ sll $v0, $v1, 2
|
|
/* 07C208 800E2D58 3C018011 */ lui $at, 0x8011
|
|
/* 07C20C 800E2D5C 00220821 */ addu $at, $at, $v0
|
|
/* 07C210 800E2D60 8C22BD98 */ lw $v0, -0x4268($at)
|
|
/* 07C214 800E2D64 00400008 */ jr $v0
|
|
/* 07C218 800E2D68 00000000 */ nop
|
|
/* 07C21C 800E2D6C 0C038AEC */ jal func_800E2BB0
|
|
/* 07C220 800E2D70 00000000 */ nop
|
|
/* 07C224 800E2D74 08038BD3 */ j .L800E2F4C
|
|
/* 07C228 800E2D78 00000000 */ nop
|
|
|
|
/* 07C22C 800E2D7C 0C038A72 */ jal func_800E29C8
|
|
/* 07C230 800E2D80 00000000 */ nop
|
|
/* 07C234 800E2D84 08038BD3 */ j .L800E2F4C
|
|
/* 07C238 800E2D88 00000000 */ nop
|
|
|
|
/* 07C23C 800E2D8C 0C038D12 */ jal func_800E3448
|
|
/* 07C240 800E2D90 00000000 */ nop
|
|
/* 07C244 800E2D94 C600002C */ lwc1 $f0, 0x2c($s0)
|
|
/* 07C248 800E2D98 C6020070 */ lwc1 $f2, 0x70($s0)
|
|
/* 07C24C 800E2D9C 46020000 */ add.s $f0, $f0, $f2
|
|
/* 07C250 800E2DA0 4480A000 */ mtc1 $zero, $f20
|
|
/* 07C254 800E2DA4 00000000 */ nop
|
|
/* 07C258 800E2DA8 4614103E */ c.le.s $f2, $f20
|
|
/* 07C25C 800E2DAC 00000000 */ nop
|
|
/* 07C260 800E2DB0 45000066 */ bc1f .L800E2F4C
|
|
/* 07C264 800E2DB4 E600002C */ swc1 $f0, 0x2c($s0)
|
|
/* 07C268 800E2DB8 0C0389AC */ jal func_800E26B0
|
|
/* 07C26C 800E2DBC 00000000 */ nop
|
|
/* 07C270 800E2DC0 0C011052 */ jal func_80044148
|
|
/* 07C274 800E2DC4 00000000 */ nop
|
|
/* 07C278 800E2DC8 1040001F */ beqz $v0, .L800E2E48
|
|
/* 07C27C 800E2DCC 00000000 */ nop
|
|
/* 07C280 800E2DD0 3C013E1E */ lui $at, 0x3e1e
|
|
/* 07C284 800E2DD4 34210C17 */ ori $at, $at, 0xc17
|
|
/* 07C288 800E2DD8 44810000 */ mtc1 $at, $f0
|
|
/* 07C28C 800E2DDC 3C01BEB3 */ lui $at, 0xbeb3
|
|
/* 07C290 800E2DE0 34213DB0 */ ori $at, $at, 0x3db0
|
|
/* 07C294 800E2DE4 44811000 */ mtc1 $at, $f2
|
|
/* 07C298 800E2DE8 E6140078 */ swc1 $f20, 0x78($s0)
|
|
/* 07C29C 800E2DEC E614007C */ swc1 $f20, 0x7c($s0)
|
|
/* 07C2A0 800E2DF0 E6000070 */ swc1 $f0, 0x70($s0)
|
|
/* 07C2A4 800E2DF4 08038B94 */ j .L800E2E50
|
|
/* 07C2A8 800E2DF8 E6020074 */ swc1 $f2, 0x74($s0)
|
|
|
|
/* 07C2AC 800E2DFC C6000070 */ lwc1 $f0, 0x70($s0)
|
|
/* 07C2B0 800E2E00 3C014012 */ lui $at, 0x4012
|
|
/* 07C2B4 800E2E04 44811800 */ mtc1 $at, $f3
|
|
/* 07C2B8 800E2E08 44801000 */ mtc1 $zero, $f2
|
|
/* 07C2BC 800E2E0C 46000021 */ cvt.d.s $f0, $f0
|
|
/* 07C2C0 800E2E10 46220001 */ sub.d $f0, $f0, $f2
|
|
/* 07C2C4 800E2E14 C602002C */ lwc1 $f2, 0x2c($s0)
|
|
/* 07C2C8 800E2E18 46200020 */ cvt.s.d $f0, $f0
|
|
/* 07C2CC 800E2E1C E6000070 */ swc1 $f0, 0x70($s0)
|
|
/* 07C2D0 800E2E20 46000106 */ mov.s $f4, $f0
|
|
/* 07C2D4 800E2E24 46001080 */ add.s $f2, $f2, $f0
|
|
/* 07C2D8 800E2E28 44800000 */ mtc1 $zero, $f0
|
|
/* 07C2DC 800E2E2C 00000000 */ nop
|
|
/* 07C2E0 800E2E30 4600203E */ c.le.s $f4, $f0
|
|
/* 07C2E4 800E2E34 00000000 */ nop
|
|
/* 07C2E8 800E2E38 45000044 */ bc1f .L800E2F4C
|
|
/* 07C2EC 800E2E3C E602002C */ swc1 $f2, 0x2c($s0)
|
|
/* 07C2F0 800E2E40 0C0389AC */ jal func_800E26B0
|
|
/* 07C2F4 800E2E44 00000000 */ nop
|
|
.L800E2E48:
|
|
/* 07C2F8 800E2E48 0C038C1B */ jal func_800E306C
|
|
/* 07C2FC 800E2E4C 00000000 */ nop
|
|
.L800E2E50:
|
|
/* 07C300 800E2E50 0C038D12 */ jal func_800E3448
|
|
/* 07C304 800E2E54 00000000 */ nop
|
|
/* 07C308 800E2E58 0C039769 */ jal set_action_state
|
|
/* 07C30C 800E2E5C 24040008 */ addiu $a0, $zero, 8
|
|
/* 07C310 800E2E60 08038BD3 */ j .L800E2F4C
|
|
/* 07C314 800E2E64 00000000 */ nop
|
|
|
|
.L800E2E68:
|
|
/* 07C318 800E2E68 8E0200DC */ lw $v0, 0xdc($s0)
|
|
/* 07C31C 800E2E6C 30428000 */ andi $v0, $v0, 0x8000
|
|
/* 07C320 800E2E70 1440001B */ bnez $v0, .L800E2EE0
|
|
/* 07C324 800E2E74 00000000 */ nop
|
|
/* 07C328 800E2E78 0C0389AC */ jal func_800E26B0
|
|
/* 07C32C 800E2E7C 00000000 */ nop
|
|
/* 07C330 800E2E80 0C039769 */ jal set_action_state
|
|
/* 07C334 800E2E84 24040005 */ addiu $a0, $zero, 5
|
|
/* 07C338 800E2E88 0C038D12 */ jal func_800E3448
|
|
/* 07C33C 800E2E8C 00000000 */ nop
|
|
/* 07C340 800E2E90 8E020000 */ lw $v0, ($s0)
|
|
/* 07C344 800E2E94 3C030004 */ lui $v1, 4
|
|
/* 07C348 800E2E98 00431024 */ and $v0, $v0, $v1
|
|
/* 07C34C 800E2E9C 10400010 */ beqz $v0, .L800E2EE0
|
|
/* 07C350 800E2EA0 00000000 */ nop
|
|
/* 07C354 800E2EA4 C6060074 */ lwc1 $f6, 0x74($s0)
|
|
/* 07C358 800E2EA8 3C013F00 */ lui $at, 0x3f00
|
|
/* 07C35C 800E2EAC 44811000 */ mtc1 $at, $f2
|
|
/* 07C360 800E2EB0 00000000 */ nop
|
|
/* 07C364 800E2EB4 46023182 */ mul.s $f6, $f6, $f2
|
|
/* 07C368 800E2EB8 00000000 */ nop
|
|
/* 07C36C 800E2EBC C6040078 */ lwc1 $f4, 0x78($s0)
|
|
/* 07C370 800E2EC0 46022102 */ mul.s $f4, $f4, $f2
|
|
/* 07C374 800E2EC4 00000000 */ nop
|
|
/* 07C378 800E2EC8 C600007C */ lwc1 $f0, 0x7c($s0)
|
|
/* 07C37C 800E2ECC 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 07C380 800E2ED0 00000000 */ nop
|
|
/* 07C384 800E2ED4 E6060074 */ swc1 $f6, 0x74($s0)
|
|
/* 07C388 800E2ED8 E6040078 */ swc1 $f4, 0x78($s0)
|
|
/* 07C38C 800E2EDC E600007C */ swc1 $f0, 0x7c($s0)
|
|
.L800E2EE0:
|
|
/* 07C390 800E2EE0 0C038D12 */ jal func_800E3448
|
|
/* 07C394 800E2EE4 00000000 */ nop
|
|
/* 07C398 800E2EE8 C6020070 */ lwc1 $f2, 0x70($s0)
|
|
/* 07C39C 800E2EEC 44800000 */ mtc1 $zero, $f0
|
|
/* 07C3A0 800E2EF0 00000000 */ nop
|
|
/* 07C3A4 800E2EF4 4600103E */ c.le.s $f2, $f0
|
|
/* 07C3A8 800E2EF8 00000000 */ nop
|
|
/* 07C3AC 800E2EFC 45000009 */ bc1f .L800E2F24
|
|
/* 07C3B0 800E2F00 00000000 */ nop
|
|
/* 07C3B4 800E2F04 0C0389AC */ jal func_800E26B0
|
|
/* 07C3B8 800E2F08 00000000 */ nop
|
|
/* 07C3BC 800E2F0C 0C038C1B */ jal func_800E306C
|
|
/* 07C3C0 800E2F10 00000000 */ nop
|
|
/* 07C3C4 800E2F14 0C038D12 */ jal func_800E3448
|
|
/* 07C3C8 800E2F18 00000000 */ nop
|
|
/* 07C3CC 800E2F1C 0C039769 */ jal set_action_state
|
|
/* 07C3D0 800E2F20 24040008 */ addiu $a0, $zero, 8
|
|
.L800E2F24:
|
|
/* 07C3D4 800E2F24 C6000070 */ lwc1 $f0, 0x70($s0)
|
|
/* 07C3D8 800E2F28 C602006C */ lwc1 $f2, 0x6c($s0)
|
|
/* 07C3DC 800E2F2C 4600103C */ c.lt.s $f2, $f0
|
|
/* 07C3E0 800E2F30 00000000 */ nop
|
|
/* 07C3E4 800E2F34 45030001 */ bc1tl .L800E2F3C
|
|
/* 07C3E8 800E2F38 E6020070 */ swc1 $f2, 0x70($s0)
|
|
.L800E2F3C:
|
|
/* 07C3EC 800E2F3C C600002C */ lwc1 $f0, 0x2c($s0)
|
|
/* 07C3F0 800E2F40 C6020070 */ lwc1 $f2, 0x70($s0)
|
|
/* 07C3F4 800E2F44 46020000 */ add.s $f0, $f0, $f2
|
|
/* 07C3F8 800E2F48 E600002C */ swc1 $f0, 0x2c($s0)
|
|
.L800E2F4C:
|
|
/* 07C3FC 800E2F4C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 07C400 800E2F50 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 07C404 800E2F54 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* 07C408 800E2F58 03E00008 */ jr $ra
|
|
/* 07C40C 800E2F5C 27BD0020 */ addiu $sp, $sp, 0x20
|
|
|
|
/* 07C410 800E2F60 3C058011 */ lui $a1, 0x8011
|
|
/* 07C414 800E2F64 24A5EFC8 */ addiu $a1, $a1, -0x1038
|
|
/* 07C418 800E2F68 90A200B4 */ lbu $v0, 0xb4($a1)
|
|
/* 07C41C 800E2F6C 2442FFFD */ addiu $v0, $v0, -3
|
|
/* 07C420 800E2F70 00021600 */ sll $v0, $v0, 0x18
|
|
/* 07C424 800E2F74 00021E03 */ sra $v1, $v0, 0x18
|
|
/* 07C428 800E2F78 2C620015 */ sltiu $v0, $v1, 0x15
|
|
/* 07C42C 800E2F7C 10400039 */ beqz $v0, .L800E3064
|
|
/* 07C430 800E2F80 00031080 */ sll $v0, $v1, 2
|
|
/* 07C434 800E2F84 3C018011 */ lui $at, 0x8011
|
|
/* 07C438 800E2F88 00220821 */ addu $at, $at, $v0
|
|
/* 07C43C 800E2F8C 8C22BDE8 */ lw $v0, -0x4218($at)
|
|
/* 07C440 800E2F90 00400008 */ jr $v0
|
|
/* 07C444 800E2F94 00000000 */ nop
|
|
/* 07C448 800E2F98 3C014120 */ lui $at, 0x4120
|
|
/* 07C44C 800E2F9C 44810000 */ mtc1 $at, $f0
|
|
/* 07C450 800E2FA0 3C01C0A0 */ lui $at, 0xc0a0
|
|
/* 07C454 800E2FA4 44811000 */ mtc1 $at, $f2
|
|
/* 07C458 800E2FA8 3C013FC0 */ lui $at, 0x3fc0
|
|
/* 07C45C 800E2FAC 44812000 */ mtc1 $at, $f4
|
|
/* 07C460 800E2FB0 3C01BE99 */ lui $at, 0xbe99
|
|
/* 07C464 800E2FB4 3421999A */ ori $at, $at, 0x999a
|
|
/* 07C468 800E2FB8 44813000 */ mtc1 $at, $f6
|
|
/* 07C46C 800E2FBC E4A00070 */ swc1 $f0, 0x70($a1)
|
|
/* 07C470 800E2FC0 E4A20074 */ swc1 $f2, 0x74($a1)
|
|
/* 07C474 800E2FC4 E4A40078 */ swc1 $f4, 0x78($a1)
|
|
/* 07C478 800E2FC8 03E00008 */ jr $ra
|
|
/* 07C47C 800E2FCC E4A6007C */ swc1 $f6, 0x7c($a1)
|
|
|
|
/* 07C480 800E2FD0 3C04800F */ lui $a0, 0x800f
|
|
/* 07C484 800E2FD4 24847B50 */ addiu $a0, $a0, 0x7b50
|
|
/* 07C488 800E2FD8 8CA20000 */ lw $v0, ($a1)
|
|
/* 07C48C 800E2FDC 3C030004 */ lui $v1, 4
|
|
/* 07C490 800E2FE0 00431024 */ and $v0, $v0, $v1
|
|
/* 07C494 800E2FE4 1440000C */ bnez $v0, .L800E3018
|
|
/* 07C498 800E2FE8 0080302D */ daddu $a2, $a0, $zero
|
|
/* 07C49C 800E2FEC C4800000 */ lwc1 $f0, ($a0)
|
|
/* 07C4A0 800E2FF0 24840004 */ addiu $a0, $a0, 4
|
|
/* 07C4A4 800E2FF4 E4A00070 */ swc1 $f0, 0x70($a1)
|
|
/* 07C4A8 800E2FF8 C4800000 */ lwc1 $f0, ($a0)
|
|
/* 07C4AC 800E2FFC 24840004 */ addiu $a0, $a0, 4
|
|
/* 07C4B0 800E3000 E4A00074 */ swc1 $f0, 0x74($a1)
|
|
/* 07C4B4 800E3004 C4800000 */ lwc1 $f0, ($a0)
|
|
/* 07C4B8 800E3008 E4A00078 */ swc1 $f0, 0x78($a1)
|
|
/* 07C4BC 800E300C C4800004 */ lwc1 $f0, 4($a0)
|
|
/* 07C4C0 800E3010 03E00008 */ jr $ra
|
|
/* 07C4C4 800E3014 E4A0007C */ swc1 $f0, 0x7c($a1)
|
|
|
|
.L800E3018:
|
|
/* 07C4C8 800E3018 C4880000 */ lwc1 $f8, ($a0)
|
|
/* 07C4CC 800E301C 3C013F00 */ lui $at, 0x3f00
|
|
/* 07C4D0 800E3020 44811000 */ mtc1 $at, $f2
|
|
/* 07C4D4 800E3024 00000000 */ nop
|
|
/* 07C4D8 800E3028 46024202 */ mul.s $f8, $f8, $f2
|
|
/* 07C4DC 800E302C 00000000 */ nop
|
|
/* 07C4E0 800E3030 C4C60004 */ lwc1 $f6, 4($a2)
|
|
/* 07C4E4 800E3034 46023182 */ mul.s $f6, $f6, $f2
|
|
/* 07C4E8 800E3038 00000000 */ nop
|
|
/* 07C4EC 800E303C C4C40008 */ lwc1 $f4, 8($a2)
|
|
/* 07C4F0 800E3040 46022102 */ mul.s $f4, $f4, $f2
|
|
/* 07C4F4 800E3044 00000000 */ nop
|
|
/* 07C4F8 800E3048 C4C0000C */ lwc1 $f0, 0xc($a2)
|
|
/* 07C4FC 800E304C 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 07C500 800E3050 00000000 */ nop
|
|
/* 07C504 800E3054 E4A80070 */ swc1 $f8, 0x70($a1)
|
|
/* 07C508 800E3058 E4A60074 */ swc1 $f6, 0x74($a1)
|
|
/* 07C50C 800E305C E4A40078 */ swc1 $f4, 0x78($a1)
|
|
/* 07C510 800E3060 E4A0007C */ swc1 $f0, 0x7c($a1)
|
|
.L800E3064:
|
|
/* 07C514 800E3064 03E00008 */ jr $ra
|
|
/* 07C518 800E3068 00000000 */ nop
|
|
|