mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
103 lines
5.0 KiB
ArmAsm
103 lines
5.0 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
glabel func_8003F240
|
||
|
/* 1A640 8003F240 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||
|
/* 1A644 8003F244 AFB20028 */ sw $s2, 0x28($sp)
|
||
|
/* 1A648 8003F248 0080902D */ daddu $s2, $a0, $zero
|
||
|
/* 1A64C 8003F24C AFBF0030 */ sw $ra, 0x30($sp)
|
||
|
/* 1A650 8003F250 AFB3002C */ sw $s3, 0x2c($sp)
|
||
|
/* 1A654 8003F254 AFB10024 */ sw $s1, 0x24($sp)
|
||
|
/* 1A658 8003F258 AFB00020 */ sw $s0, 0x20($sp)
|
||
|
/* 1A65C 8003F25C 8E530148 */ lw $s3, 0x148($s2)
|
||
|
/* 1A660 8003F260 86640008 */ lh $a0, 8($s3)
|
||
|
/* 1A664 8003F264 0C00E9EB */ jal func_8003A7AC
|
||
|
/* 1A668 8003F268 00A0802D */ daddu $s0, $a1, $zero
|
||
|
/* 1A66C 8003F26C 12000004 */ beqz $s0, .L8003F280
|
||
|
/* 1A670 8003F270 0040882D */ daddu $s1, $v0, $zero
|
||
|
/* 1A674 8003F274 24020014 */ addiu $v0, $zero, 0x14
|
||
|
/* 1A678 8003F278 AE400070 */ sw $zero, 0x70($s2)
|
||
|
/* 1A67C 8003F27C AE420074 */ sw $v0, 0x74($s2)
|
||
|
.L8003F280:
|
||
|
/* 1A680 8003F280 8E420074 */ lw $v0, 0x74($s2)
|
||
|
/* 1A684 8003F284 30420001 */ andi $v0, $v0, 1
|
||
|
/* 1A688 8003F288 10400004 */ beqz $v0, .L8003F29C
|
||
|
/* 1A68C 8003F28C 2403FFFD */ addiu $v1, $zero, -3
|
||
|
/* 1A690 8003F290 8E220000 */ lw $v0, ($s1)
|
||
|
/* 1A694 8003F294 0800FCA9 */ j .L8003F2A4
|
||
|
/* 1A698 8003F298 00431024 */ and $v0, $v0, $v1
|
||
|
.L8003F29C:
|
||
|
/* 1A69C 8003F29C 8E220000 */ lw $v0, ($s1)
|
||
|
/* 1A6A0 8003F2A0 34420002 */ ori $v0, $v0, 2
|
||
|
.L8003F2A4:
|
||
|
/* 1A6A4 8003F2A4 AE220000 */ sw $v0, ($s1)
|
||
|
/* 1A6A8 8003F2A8 8E430074 */ lw $v1, 0x74($s2)
|
||
|
/* 1A6AC 8003F2AC 2402000F */ addiu $v0, $zero, 0xf
|
||
|
/* 1A6B0 8003F2B0 1462001A */ bne $v1, $v0, .L8003F31C
|
||
|
/* 1A6B4 8003F2B4 00000000 */ nop
|
||
|
/* 1A6B8 8003F2B8 0C053B59 */ jal func_8014ED64
|
||
|
/* 1A6BC 8003F2BC 240403E5 */ addiu $a0, $zero, 0x3e5
|
||
|
/* 1A6C0 8003F2C0 962300A8 */ lhu $v1, 0xa8($s1)
|
||
|
/* 1A6C4 8003F2C4 C624003C */ lwc1 $f4, 0x3c($s1)
|
||
|
/* 1A6C8 8003F2C8 3C01BF80 */ lui $at, 0xbf80
|
||
|
/* 1A6CC 8003F2CC 44811000 */ mtc1 $at, $f2
|
||
|
/* 1A6D0 8003F2D0 2402000A */ addiu $v0, $zero, 0xa
|
||
|
/* 1A6D4 8003F2D4 AFA00010 */ sw $zero, 0x10($sp)
|
||
|
/* 1A6D8 8003F2D8 AFA00018 */ sw $zero, 0x18($sp)
|
||
|
/* 1A6DC 8003F2DC AFA2001C */ sw $v0, 0x1c($sp)
|
||
|
/* 1A6E0 8003F2E0 00031C00 */ sll $v1, $v1, 0x10
|
||
|
/* 1A6E4 8003F2E4 00031403 */ sra $v0, $v1, 0x10
|
||
|
/* 1A6E8 8003F2E8 00031FC2 */ srl $v1, $v1, 0x1f
|
||
|
/* 1A6EC 8003F2EC 00431021 */ addu $v0, $v0, $v1
|
||
|
/* 1A6F0 8003F2F0 00021043 */ sra $v0, $v0, 1
|
||
|
/* 1A6F4 8003F2F4 44820000 */ mtc1 $v0, $f0
|
||
|
/* 1A6F8 8003F2F8 00000000 */ nop
|
||
|
/* 1A6FC 8003F2FC 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* 1A700 8003F300 46002100 */ add.s $f4, $f4, $f0
|
||
|
/* 1A704 8003F304 E7A20014 */ swc1 $f2, 0x14($sp)
|
||
|
/* 1A708 8003F308 8E250038 */ lw $a1, 0x38($s1)
|
||
|
/* 1A70C 8003F30C 8E270040 */ lw $a3, 0x40($s1)
|
||
|
/* 1A710 8003F310 44062000 */ mfc1 $a2, $f4
|
||
|
/* 1A714 8003F314 0C01C05C */ jal func_80070170
|
||
|
/* 1A718 8003F318 24040001 */ addiu $a0, $zero, 1
|
||
|
.L8003F31C:
|
||
|
/* 1A71C 8003F31C 8E500074 */ lw $s0, 0x74($s2)
|
||
|
/* 1A720 8003F320 2402000A */ addiu $v0, $zero, 0xa
|
||
|
/* 1A724 8003F324 1602000F */ bne $s0, $v0, .L8003F364
|
||
|
/* 1A728 8003F328 00000000 */ nop
|
||
|
/* 1A72C 8003F32C 3C014120 */ lui $at, 0x4120
|
||
|
/* 1A730 8003F330 44811000 */ mtc1 $at, $f2
|
||
|
/* 1A734 8003F334 C6200040 */ lwc1 $f0, 0x40($s1)
|
||
|
/* 1A738 8003F338 46020000 */ add.s $f0, $f0, $f2
|
||
|
/* 1A73C 8003F33C C62E003C */ lwc1 $f14, 0x3c($s1)
|
||
|
/* 1A740 8003F340 C62C0038 */ lwc1 $f12, 0x38($s1)
|
||
|
/* 1A744 8003F344 44060000 */ mfc1 $a2, $f0
|
||
|
/* 1A748 8003F348 0C01BE34 */ jal func_8006F8D0
|
||
|
/* 1A74C 8003F34C 46027380 */ add.s $f14, $f14, $f2
|
||
|
/* 1A750 8003F350 8E420074 */ lw $v0, 0x74($s2)
|
||
|
/* 1A754 8003F354 14500005 */ bne $v0, $s0, .L8003F36C
|
||
|
/* 1A758 8003F358 2442FFFF */ addiu $v0, $v0, -1
|
||
|
/* 1A75C 8003F35C 0C011FCC */ jal func_80047F30
|
||
|
/* 1A760 8003F360 0260202D */ daddu $a0, $s3, $zero
|
||
|
.L8003F364:
|
||
|
/* 1A764 8003F364 8E420074 */ lw $v0, 0x74($s2)
|
||
|
/* 1A768 8003F368 2442FFFF */ addiu $v0, $v0, -1
|
||
|
.L8003F36C:
|
||
|
/* 1A76C 8003F36C 10400003 */ beqz $v0, .L8003F37C
|
||
|
/* 1A770 8003F370 AE420074 */ sw $v0, 0x74($s2)
|
||
|
/* 1A774 8003F374 0800FCE3 */ j .L8003F38C
|
||
|
/* 1A778 8003F378 0000102D */ daddu $v0, $zero, $zero
|
||
|
.L8003F37C:
|
||
|
/* 1A77C 8003F37C 8E230000 */ lw $v1, ($s1)
|
||
|
/* 1A780 8003F380 24020001 */ addiu $v0, $zero, 1
|
||
|
/* 1A784 8003F384 34630002 */ ori $v1, $v1, 2
|
||
|
/* 1A788 8003F388 AE230000 */ sw $v1, ($s1)
|
||
|
.L8003F38C:
|
||
|
/* 1A78C 8003F38C 8FBF0030 */ lw $ra, 0x30($sp)
|
||
|
/* 1A790 8003F390 8FB3002C */ lw $s3, 0x2c($sp)
|
||
|
/* 1A794 8003F394 8FB20028 */ lw $s2, 0x28($sp)
|
||
|
/* 1A798 8003F398 8FB10024 */ lw $s1, 0x24($sp)
|
||
|
/* 1A79C 8003F39C 8FB00020 */ lw $s0, 0x20($sp)
|
||
|
/* 1A7A0 8003F3A0 03E00008 */ jr $ra
|
||
|
/* 1A7A4 8003F3A4 27BD0038 */ addiu $sp, $sp, 0x38
|