mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
132 lines
6.1 KiB
ArmAsm
132 lines
6.1 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_8024B3FC
|
|
/* 13E73C 8024B3FC 24020040 */ addiu $v0, $zero, 0x40
|
|
/* 13E740 8024B400 AFA60010 */ sw $a2, 0x10($sp)
|
|
/* 13E744 8024B404 AFA20018 */ sw $v0, 0x18($sp)
|
|
/* 13E748 8024B408 00031880 */ sll $v1, $v1, 2
|
|
/* 13E74C 8024B40C 00731821 */ addu $v1, $v1, $s3
|
|
/* 13E750 8024B410 8C640000 */ lw $a0, ($v1)
|
|
/* 13E754 8024B414 0C0B7A25 */ jal func_802DE894
|
|
/* 13E758 8024B418 00C0382D */ daddu $a3, $a2, $zero
|
|
/* 13E75C 8024B41C 0000282D */ daddu $a1, $zero, $zero
|
|
/* 13E760 8024B420 00A0302D */ daddu $a2, $a1, $zero
|
|
/* 13E764 8024B424 8E030000 */ lw $v1, ($s0)
|
|
/* 13E768 8024B428 27A20050 */ addiu $v0, $sp, 0x50
|
|
/* 13E76C 8024B42C AFA20010 */ sw $v0, 0x10($sp)
|
|
/* 13E770 8024B430 00031880 */ sll $v1, $v1, 2
|
|
/* 13E774 8024B434 00731821 */ addu $v1, $v1, $s3
|
|
/* 13E778 8024B438 8C640000 */ lw $a0, ($v1)
|
|
/* 13E77C 8024B43C 0C0B78F6 */ jal func_802DE3D8
|
|
/* 13E780 8024B440 00A0382D */ daddu $a3, $a1, $zero
|
|
/* 13E784 8024B444 3C048027 */ lui $a0, 0x8027
|
|
/* 13E788 8024B448 248406B0 */ addiu $a0, $a0, 0x6b0
|
|
/* 13E78C 8024B44C 8C820000 */ lw $v0, ($a0)
|
|
/* 13E790 8024B450 26310001 */ addiu $s1, $s1, 1
|
|
/* 13E794 8024B454 0222102A */ slt $v0, $s1, $v0
|
|
/* 13E798 8024B458 1440FF61 */ bnez $v0, .L8024B1E0
|
|
/* 13E79C 8024B45C 001118C0 */ sll $v1, $s1, 3
|
|
.L8024B460:
|
|
/* 13E7A0 8024B460 3C05D838 */ lui $a1, 0xd838
|
|
/* 13E7A4 8024B464 3C03800A */ lui $v1, 0x800a
|
|
/* 13E7A8 8024B468 2463A66C */ addiu $v1, $v1, -0x5994
|
|
/* 13E7AC 8024B46C 34A50002 */ ori $a1, $a1, 2
|
|
/* 13E7B0 8024B470 8C620000 */ lw $v0, ($v1)
|
|
/* 13E7B4 8024B474 3C128027 */ lui $s2, 0x8027
|
|
/* 13E7B8 8024B478 265200D4 */ addiu $s2, $s2, 0xd4
|
|
/* 13E7BC 8024B47C 0040202D */ daddu $a0, $v0, $zero
|
|
/* 13E7C0 8024B480 24420008 */ addiu $v0, $v0, 8
|
|
/* 13E7C4 8024B484 AC620000 */ sw $v0, ($v1)
|
|
/* 13E7C8 8024B488 24020040 */ addiu $v0, $zero, 0x40
|
|
/* 13E7CC 8024B48C AC850000 */ sw $a1, ($a0)
|
|
/* 13E7D0 8024B490 AC820004 */ sw $v0, 4($a0)
|
|
/* 13E7D4 8024B494 82500000 */ lb $s0, ($s2)
|
|
/* 13E7D8 8024B498 24020004 */ addiu $v0, $zero, 4
|
|
/* 13E7DC 8024B49C 16020014 */ bne $s0, $v0, .L8024B4F0
|
|
/* 13E7E0 8024B4A0 00000000 */ nop
|
|
/* 13E7E4 8024B4A4 3C118027 */ lui $s1, 0x8027
|
|
/* 13E7E8 8024B4A8 263106AC */ addiu $s1, $s1, 0x6ac
|
|
/* 13E7EC 8024B4AC 8E220000 */ lw $v0, ($s1)
|
|
/* 13E7F0 8024B4B0 14400006 */ bnez $v0, .L8024B4CC
|
|
/* 13E7F4 8024B4B4 24040022 */ addiu $a0, $zero, 0x22
|
|
/* 13E7F8 8024B4B8 8FAD018C */ lw $t5, 0x18c($sp)
|
|
/* 13E7FC 8024B4BC 8FAF0190 */ lw $t7, 0x190($sp)
|
|
/* 13E800 8024B4C0 25A5002A */ addiu $a1, $t5, 0x2a
|
|
/* 13E804 8024B4C4 0C090B41 */ jal func_80242D04
|
|
/* 13E808 8024B4C8 25E60058 */ addiu $a2, $t7, 0x58
|
|
.L8024B4CC:
|
|
/* 13E80C 8024B4CC 82420000 */ lb $v0, ($s2)
|
|
/* 13E810 8024B4D0 14500007 */ bne $v0, $s0, .L8024B4F0
|
|
/* 13E814 8024B4D4 00000000 */ nop
|
|
/* 13E818 8024B4D8 8E220000 */ lw $v0, ($s1)
|
|
/* 13E81C 8024B4DC 14400004 */ bnez $v0, .L8024B4F0
|
|
/* 13E820 8024B4E0 24040008 */ addiu $a0, $zero, 8
|
|
/* 13E824 8024B4E4 24050012 */ addiu $a1, $zero, 0x12
|
|
/* 13E828 8024B4E8 0C093BA5 */ jal func_8024EE94
|
|
/* 13E82C 8024B4EC 2406009E */ addiu $a2, $zero, 0x9e
|
|
.L8024B4F0:
|
|
/* 13E830 8024B4F0 8FB8018C */ lw $t8, 0x18c($sp)
|
|
/* 13E834 8024B4F4 8FAC0190 */ lw $t4, 0x190($sp)
|
|
/* 13E838 8024B4F8 27050082 */ addiu $a1, $t8, 0x82
|
|
/* 13E83C 8024B4FC 25890018 */ addiu $t1, $t4, 0x18
|
|
/* 13E840 8024B500 270A0118 */ addiu $t2, $t8, 0x118
|
|
/* 13E844 8024B504 1CA00002 */ bgtz $a1, .L8024B510
|
|
/* 13E848 8024B508 258B0081 */ addiu $t3, $t4, 0x81
|
|
/* 13E84C 8024B50C 24050001 */ addiu $a1, $zero, 1
|
|
.L8024B510:
|
|
/* 13E850 8024B510 59200001 */ blezl $t1, .L8024B518
|
|
/* 13E854 8024B514 24090001 */ addiu $t1, $zero, 1
|
|
.L8024B518:
|
|
/* 13E858 8024B518 19400193 */ blez $t2, .L8024BB68
|
|
/* 13E85C 8024B51C 00000000 */ nop
|
|
/* 13E860 8024B520 19600191 */ blez $t3, .L8024BB68
|
|
/* 13E864 8024B524 28A2013F */ slti $v0, $a1, 0x13f
|
|
/* 13E868 8024B528 1040018F */ beqz $v0, .L8024BB68
|
|
/* 13E86C 8024B52C 292200EF */ slti $v0, $t1, 0xef
|
|
/* 13E870 8024B530 1040018D */ beqz $v0, .L8024BB68
|
|
/* 13E874 8024B534 2942013F */ slti $v0, $t2, 0x13f
|
|
/* 13E878 8024B538 50400001 */ beql $v0, $zero, .L8024B540
|
|
/* 13E87C 8024B53C 240A013F */ addiu $t2, $zero, 0x13f
|
|
.L8024B540:
|
|
/* 13E880 8024B540 296200EF */ slti $v0, $t3, 0xef
|
|
/* 13E884 8024B544 50400001 */ beql $v0, $zero, .L8024B54C
|
|
/* 13E888 8024B548 240B00EF */ addiu $t3, $zero, 0xef
|
|
.L8024B54C:
|
|
/* 13E88C 8024B54C 3C018027 */ lui $at, 0x8027
|
|
/* 13E890 8024B550 C42006A8 */ lwc1 $f0, 0x6a8($at)
|
|
/* 13E894 8024B554 3C0143B4 */ lui $at, 0x43b4
|
|
/* 13E898 8024B558 44812000 */ mtc1 $at, $f4
|
|
/* 13E89C 8024B55C 00000000 */ nop
|
|
/* 13E8A0 8024B560 46040000 */ add.s $f0, $f0, $f4
|
|
/* 13E8A4 8024B564 3C01466A */ lui $at, 0x466a
|
|
/* 13E8A8 8024B568 34216000 */ ori $at, $at, 0x6000
|
|
/* 13E8AC 8024B56C 44811000 */ mtc1 $at, $f2
|
|
/* 13E8B0 8024B570 00000000 */ nop
|
|
/* 13E8B4 8024B574 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 13E8B8 8024B578 00000000 */ nop
|
|
/* 13E8BC 8024B57C 3C038027 */ lui $v1, 0x8027
|
|
/* 13E8C0 8024B580 8C6306B0 */ lw $v1, 0x6b0($v1)
|
|
/* 13E8C4 8024B584 44831000 */ mtc1 $v1, $f2
|
|
/* 13E8C8 8024B588 00000000 */ nop
|
|
/* 13E8CC 8024B58C 468010A0 */ cvt.s.w $f2, $f2
|
|
/* 13E8D0 8024B590 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 13E8D4 8024B594 00000000 */ nop
|
|
/* 13E8D8 8024B598 3C0245E7 */ lui $v0, 0x45e7
|
|
/* 13E8DC 8024B59C 3442B273 */ ori $v0, $v0, 0xb273
|
|
/* 13E8E0 8024B5A0 46040003 */ div.s $f0, $f0, $f4
|
|
/* 13E8E4 8024B5A4 4600028D */ trunc.w.s $f10, $f0
|
|
/* 13E8E8 8024B5A8 44075000 */ mfc1 $a3, $f10
|
|
/* 13E8EC 8024B5AC 00000000 */ nop
|
|
/* 13E8F0 8024B5B0 00E20018 */ mult $a3, $v0
|
|
/* 13E8F4 8024B5B4 000717C3 */ sra $v0, $a3, 0x1f
|
|
/* 13E8F8 8024B5B8 00004010 */ mfhi $t0
|
|
/* 13E8FC 8024B5BC 00083303 */ sra $a2, $t0, 0xc
|
|
/* 13E900 8024B5C0 00C23023 */ subu $a2, $a2, $v0
|
|
/* 13E904 8024B5C4 14600002 */ bnez $v1, .L8024B5D0
|
|
/* 13E908 8024B5C8 00C3001A */ div $zero, $a2, $v1
|
|
/* 13E90C 8024B5CC 0007000D */ break 7
|
|
.L8024B5D0:
|
|
/* 13E910 8024B5D0 2401FFFF */ addiu $at, $zero, -1
|