mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
149 lines
7.3 KiB
ArmAsm
149 lines
7.3 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_800598A0
|
|
/* 34CA0 800598A0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* 34CA4 800598A4 00063400 */ sll $a2, $a2, 0x10
|
|
/* 34CA8 800598A8 00063403 */ sra $a2, $a2, 0x10
|
|
/* 34CAC 800598AC 2CC20008 */ sltiu $v0, $a2, 8
|
|
/* 34CB0 800598B0 1040007D */ beqz $v0, .L80059AA8
|
|
/* 34CB4 800598B4 AFBF0010 */ sw $ra, 0x10($sp)
|
|
/* 34CB8 800598B8 00061080 */ sll $v0, $a2, 2
|
|
/* 34CBC 800598BC 3C01800A */ lui $at, %hi(jtbl_80098970_73D70)
|
|
/* 34CC0 800598C0 00220821 */ addu $at, $at, $v0
|
|
/* 34CC4 800598C4 8C228970 */ lw $v0, %lo(jtbl_80098970_73D70)($at)
|
|
/* 34CC8 800598C8 00400008 */ jr $v0
|
|
/* 34CCC 800598CC 00000000 */ nop
|
|
glabel L800598D0_34CD0
|
|
/* 34CD0 800598D0 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34CD4 800598D4 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34CD8 800598D8 00021840 */ sll $v1, $v0, 1
|
|
/* 34CDC 800598DC 00621821 */ addu $v1, $v1, $v0
|
|
/* 34CE0 800598E0 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34CE4 800598E4 00031900 */ sll $v1, $v1, 4
|
|
/* 34CE8 800598E8 00621821 */ addu $v1, $v1, $v0
|
|
/* 34CEC 800598EC 2402FFF8 */ addiu $v0, $zero, -8
|
|
/* 34CF0 800598F0 00E21024 */ and $v0, $a3, $v0
|
|
/* 34CF4 800598F4 080166AA */ j .L80059AA8
|
|
/* 34CF8 800598F8 AC620000 */ sw $v0, ($v1)
|
|
glabel L800598FC_34CFC
|
|
/* 34CFC 800598FC 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34D00 80059900 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34D04 80059904 00021840 */ sll $v1, $v0, 1
|
|
/* 34D08 80059908 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D0C 8005990C 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34D10 80059910 00031900 */ sll $v1, $v1, 4
|
|
/* 34D14 80059914 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D18 80059918 2402FFF8 */ addiu $v0, $zero, -8
|
|
/* 34D1C 8005991C 00E21024 */ and $v0, $a3, $v0
|
|
/* 34D20 80059920 080166AA */ j .L80059AA8
|
|
/* 34D24 80059924 AC620004 */ sw $v0, 4($v1)
|
|
glabel L80059928_34D28
|
|
/* 34D28 80059928 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34D2C 8005992C 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34D30 80059930 00021840 */ sll $v1, $v0, 1
|
|
/* 34D34 80059934 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D38 80059938 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34D3C 8005993C 00031900 */ sll $v1, $v1, 4
|
|
/* 34D40 80059940 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D44 80059944 080166AA */ j .L80059AA8
|
|
/* 34D48 80059948 A4670008 */ sh $a3, 8($v1)
|
|
glabel L8005994C_34D4C
|
|
/* 34D4C 8005994C 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34D50 80059950 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34D54 80059954 00021840 */ sll $v1, $v0, 1
|
|
/* 34D58 80059958 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D5C 8005995C 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34D60 80059960 00031900 */ sll $v1, $v1, 4
|
|
/* 34D64 80059964 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D68 80059968 080166AA */ j .L80059AA8
|
|
/* 34D6C 8005996C A467000A */ sh $a3, 0xa($v1)
|
|
glabel L80059970_34D70
|
|
/* 34D70 80059970 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34D74 80059974 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34D78 80059978 00021840 */ sll $v1, $v0, 1
|
|
/* 34D7C 8005997C 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D80 80059980 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34D84 80059984 00031900 */ sll $v1, $v1, 4
|
|
/* 34D88 80059988 00621821 */ addu $v1, $v1, $v0
|
|
/* 34D8C 8005998C 080166AA */ j .L80059AA8
|
|
/* 34D90 80059990 A467000C */ sh $a3, 0xc($v1)
|
|
glabel L80059994_34D94
|
|
/* 34D94 80059994 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34D98 80059998 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34D9C 8005999C 00021840 */ sll $v1, $v0, 1
|
|
/* 34DA0 800599A0 00621821 */ addu $v1, $v1, $v0
|
|
/* 34DA4 800599A4 00031900 */ sll $v1, $v1, 4
|
|
/* 34DA8 800599A8 44870000 */ mtc1 $a3, $f0
|
|
/* 34DAC 800599AC 00000000 */ nop
|
|
/* 34DB0 800599B0 46800020 */ cvt.s.w $f0, $f0
|
|
/* 34DB4 800599B4 3C01447A */ lui $at, 0x447a
|
|
/* 34DB8 800599B8 44811000 */ mtc1 $at, $f2
|
|
/* 34DBC 800599BC 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34DC0 800599C0 3C048008 */ lui $a0, %hi(D_80078E50)
|
|
/* 34DC4 800599C4 8C848E50 */ lw $a0, %lo(D_80078E50)($a0)
|
|
/* 34DC8 800599C8 46020003 */ div.s $f0, $f0, $f2
|
|
/* 34DCC 800599CC 46000021 */ cvt.d.s $f0, $f0
|
|
/* 34DD0 800599D0 46200000 */ add.d $f0, $f0, $f0
|
|
/* 34DD4 800599D4 00621821 */ addu $v1, $v1, $v0
|
|
/* 34DD8 800599D8 C4820008 */ lwc1 $f2, 8($a0)
|
|
/* 34DDC 800599DC 468010A1 */ cvt.d.w $f2, $f2
|
|
/* 34DE0 800599E0 46220003 */ div.d $f0, $f0, $f2
|
|
/* 34DE4 800599E4 46200020 */ cvt.s.d $f0, $f0
|
|
/* 34DE8 800599E8 080166AA */ j .L80059AA8
|
|
/* 34DEC 800599EC E4600010 */ swc1 $f0, 0x10($v1)
|
|
glabel L800599F0_34DF0
|
|
/* 34DF0 800599F0 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34DF4 800599F4 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34DF8 800599F8 00021840 */ sll $v1, $v0, 1
|
|
/* 34DFC 800599FC 00621821 */ addu $v1, $v1, $v0
|
|
/* 34E00 80059A00 00031900 */ sll $v1, $v1, 4
|
|
/* 34E04 80059A04 44870000 */ mtc1 $a3, $f0
|
|
/* 34E08 80059A08 00000000 */ nop
|
|
/* 34E0C 80059A0C 46800020 */ cvt.s.w $f0, $f0
|
|
/* 34E10 80059A10 46000021 */ cvt.d.s $f0, $f0
|
|
/* 34E14 80059A14 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34E18 80059A18 3C01800A */ lui $at, %hi(D_80098990)
|
|
/* 34E1C 80059A1C D4228990 */ ldc1 $f2, %lo(D_80098990)($at)
|
|
/* 34E20 80059A20 00622021 */ addu $a0, $v1, $v0
|
|
/* 34E24 80059A24 8C830004 */ lw $v1, 4($a0)
|
|
/* 34E28 80059A28 8C820000 */ lw $v0, ($a0)
|
|
/* 34E2C 80059A2C 00621823 */ subu $v1, $v1, $v0
|
|
/* 34E30 80059A30 44832000 */ mtc1 $v1, $f4
|
|
/* 34E34 80059A34 00000000 */ nop
|
|
/* 34E38 80059A38 46802121 */ cvt.d.w $f4, $f4
|
|
/* 34E3C 80059A3C 04610006 */ bgez $v1, .L80059A58
|
|
/* 34E40 80059A40 46220083 */ div.d $f2, $f0, $f2
|
|
/* 34E44 80059A44 3C0141F0 */ lui $at, 0x41f0
|
|
/* 34E48 80059A48 44810800 */ mtc1 $at, $f1
|
|
/* 34E4C 80059A4C 44800000 */ mtc1 $zero, $f0
|
|
/* 34E50 80059A50 00000000 */ nop
|
|
/* 34E54 80059A54 46202100 */ add.d $f4, $f4, $f0
|
|
.L80059A58:
|
|
/* 34E58 80059A58 46241002 */ mul.d $f0, $f2, $f4
|
|
/* 34E5C 80059A5C 00000000 */ nop
|
|
/* 34E60 80059A60 46200020 */ cvt.s.d $f0, $f0
|
|
/* 34E64 80059A64 080166AA */ j .L80059AA8
|
|
/* 34E68 80059A68 E480001C */ swc1 $f0, 0x1c($a0)
|
|
glabel L80059A6C_34E6C
|
|
/* 34E6C 80059A6C 00051400 */ sll $v0, $a1, 0x10
|
|
/* 34E70 80059A70 00021403 */ sra $v0, $v0, 0x10
|
|
/* 34E74 80059A74 00021840 */ sll $v1, $v0, 1
|
|
/* 34E78 80059A78 00621821 */ addu $v1, $v1, $v0
|
|
/* 34E7C 80059A7C 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34E80 80059A80 00031900 */ sll $v1, $v1, 4
|
|
/* 34E84 80059A84 00621021 */ addu $v0, $v1, $v0
|
|
/* 34E88 80059A88 8C420020 */ lw $v0, 0x20($v0)
|
|
/* 34E8C 80059A8C 10400006 */ beqz $v0, .L80059AA8
|
|
/* 34E90 80059A90 00000000 */ nop
|
|
/* 34E94 80059A94 A4470000 */ sh $a3, ($v0)
|
|
/* 34E98 80059A98 8C82000C */ lw $v0, 0xc($a0)
|
|
/* 34E9C 80059A9C 00621021 */ addu $v0, $v1, $v0
|
|
/* 34EA0 80059AA0 0C016374 */ jal func_80058DD0
|
|
/* 34EA4 80059AA4 8C440020 */ lw $a0, 0x20($v0)
|
|
.L80059AA8:
|
|
/* 34EA8 80059AA8 8FBF0010 */ lw $ra, 0x10($sp)
|
|
/* 34EAC 80059AAC 0000102D */ daddu $v0, $zero, $zero
|
|
/* 34EB0 80059AB0 03E00008 */ jr $ra
|
|
/* 34EB4 80059AB4 27BD0018 */ addiu $sp, $sp, 0x18
|