mirror of
https://github.com/pmret/papermario.git
synced 2024-11-19 01:12:28 +01:00
147 lines
7.5 KiB
ArmAsm
147 lines
7.5 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
glabel func_8005B430
|
||
|
/* 36830 8005B430 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||
|
/* 36834 8005B434 00042400 */ sll $a0, $a0, 0x10
|
||
|
/* 36838 8005B438 00042403 */ sra $a0, $a0, 0x10
|
||
|
/* 3683C 8005B43C 000410C0 */ sll $v0, $a0, 3
|
||
|
/* 36840 8005B440 00441023 */ subu $v0, $v0, $a0
|
||
|
/* 36844 8005B444 3C03800B */ lui $v1, %hi(D_800B42C4)
|
||
|
/* 36848 8005B448 8C6342C4 */ lw $v1, %lo(D_800B42C4)($v1)
|
||
|
/* 3684C 8005B44C 00021080 */ sll $v0, $v0, 2
|
||
|
/* 36850 8005B450 AFB30024 */ sw $s3, 0x24($sp)
|
||
|
/* 36854 8005B454 0000982D */ daddu $s3, $zero, $zero
|
||
|
/* 36858 8005B458 AFBF0034 */ sw $ra, 0x34($sp)
|
||
|
/* 3685C 8005B45C AFB60030 */ sw $s6, 0x30($sp)
|
||
|
/* 36860 8005B460 AFB5002C */ sw $s5, 0x2c($sp)
|
||
|
/* 36864 8005B464 AFB40028 */ sw $s4, 0x28($sp)
|
||
|
/* 36868 8005B468 AFB20020 */ sw $s2, 0x20($sp)
|
||
|
/* 3686C 8005B46C AFB1001C */ sw $s1, 0x1c($sp)
|
||
|
/* 36870 8005B470 AFB00018 */ sw $s0, 0x18($sp)
|
||
|
/* 36874 8005B474 0062A021 */ addu $s4, $v1, $v0
|
||
|
/* 36878 8005B478 8682000A */ lh $v0, 0xa($s4)
|
||
|
/* 3687C 8005B47C 3C038000 */ lui $v1, 0x8000
|
||
|
/* 36880 8005B480 A6850008 */ sh $a1, 8($s4)
|
||
|
/* 36884 8005B484 00022040 */ sll $a0, $v0, 1
|
||
|
/* 36888 8005B488 00822021 */ addu $a0, $a0, $v0
|
||
|
/* 3688C 8005B48C 8E820000 */ lw $v0, ($s4)
|
||
|
/* 36890 8005B490 00042080 */ sll $a0, $a0, 2
|
||
|
/* 36894 8005B494 00431025 */ or $v0, $v0, $v1
|
||
|
/* 36898 8005B498 0C00AB5C */ jal func_8002AD70
|
||
|
/* 3689C 8005B49C AE820000 */ sw $v0, ($s4)
|
||
|
/* 368A0 8005B4A0 0040A82D */ daddu $s5, $v0, $zero
|
||
|
/* 368A4 8005B4A4 8E91000C */ lw $s1, 0xc($s4)
|
||
|
/* 368A8 8005B4A8 8682000A */ lh $v0, 0xa($s4)
|
||
|
/* 368AC 8005B4AC 02A0B02D */ daddu $s6, $s5, $zero
|
||
|
/* 368B0 8005B4B0 18400015 */ blez $v0, .L8005B508
|
||
|
/* 368B4 8005B4B4 AFA00010 */ sw $zero, 0x10($sp)
|
||
|
/* 368B8 8005B4B8 27B20010 */ addiu $s2, $sp, 0x10
|
||
|
/* 368BC 8005B4BC 26300008 */ addiu $s0, $s1, 8
|
||
|
.L8005B4C0:
|
||
|
/* 368C0 8005B4C0 02A0202D */ daddu $a0, $s5, $zero
|
||
|
/* 368C4 8005B4C4 0240302D */ daddu $a2, $s2, $zero
|
||
|
/* 368C8 8005B4C8 26730001 */ addiu $s3, $s3, 1
|
||
|
/* 368CC 8005B4CC 8E250000 */ lw $a1, ($s1)
|
||
|
/* 368D0 8005B4D0 0C016D94 */ jal func_8005B650
|
||
|
/* 368D4 8005B4D4 26310040 */ addiu $s1, $s1, 0x40
|
||
|
/* 368D8 8005B4D8 02A0202D */ daddu $a0, $s5, $zero
|
||
|
/* 368DC 8005B4DC 8E05FFFC */ lw $a1, -4($s0)
|
||
|
/* 368E0 8005B4E0 0C016D94 */ jal func_8005B650
|
||
|
/* 368E4 8005B4E4 0240302D */ daddu $a2, $s2, $zero
|
||
|
/* 368E8 8005B4E8 02A0202D */ daddu $a0, $s5, $zero
|
||
|
/* 368EC 8005B4EC 8E050000 */ lw $a1, ($s0)
|
||
|
/* 368F0 8005B4F0 0C016D94 */ jal func_8005B650
|
||
|
/* 368F4 8005B4F4 0240302D */ daddu $a2, $s2, $zero
|
||
|
/* 368F8 8005B4F8 8682000A */ lh $v0, 0xa($s4)
|
||
|
/* 368FC 8005B4FC 0262102A */ slt $v0, $s3, $v0
|
||
|
/* 36900 8005B500 1440FFEF */ bnez $v0, .L8005B4C0
|
||
|
/* 36904 8005B504 26100040 */ addiu $s0, $s0, 0x40
|
||
|
.L8005B508:
|
||
|
/* 36908 8005B508 8FA20010 */ lw $v0, 0x10($sp)
|
||
|
/* 3690C 8005B50C 0000982D */ daddu $s3, $zero, $zero
|
||
|
/* 36910 8005B510 00022040 */ sll $a0, $v0, 1
|
||
|
/* 36914 8005B514 00822021 */ addu $a0, $a0, $v0
|
||
|
/* 36918 8005B518 97A20012 */ lhu $v0, 0x12($sp)
|
||
|
/* 3691C 8005B51C 000420C0 */ sll $a0, $a0, 3
|
||
|
/* 36920 8005B520 0C00AB5C */ jal func_8002AD70
|
||
|
/* 36924 8005B524 A6820014 */ sh $v0, 0x14($s4)
|
||
|
/* 36928 8005B528 8FA30010 */ lw $v1, 0x10($sp)
|
||
|
/* 3692C 8005B52C 0040902D */ daddu $s2, $v0, $zero
|
||
|
/* 36930 8005B530 18600013 */ blez $v1, .L8005B580
|
||
|
/* 36934 8005B534 AE920018 */ sw $s2, 0x18($s4)
|
||
|
/* 36938 8005B538 0060202D */ daddu $a0, $v1, $zero
|
||
|
/* 3693C 8005B53C 26430008 */ addiu $v1, $s2, 8
|
||
|
.L8005B540:
|
||
|
/* 36940 8005B540 8EC20000 */ lw $v0, ($s6)
|
||
|
/* 36944 8005B544 26D60004 */ addiu $s6, $s6, 4
|
||
|
/* 36948 8005B548 C4400000 */ lwc1 $f0, ($v0)
|
||
|
/* 3694C 8005B54C 26730001 */ addiu $s3, $s3, 1
|
||
|
/* 36950 8005B550 E4600004 */ swc1 $f0, 4($v1)
|
||
|
/* 36954 8005B554 E6400000 */ swc1 $f0, ($s2)
|
||
|
/* 36958 8005B558 C4400004 */ lwc1 $f0, 4($v0)
|
||
|
/* 3695C 8005B55C 26520018 */ addiu $s2, $s2, 0x18
|
||
|
/* 36960 8005B560 E4600008 */ swc1 $f0, 8($v1)
|
||
|
/* 36964 8005B564 E460FFFC */ swc1 $f0, -4($v1)
|
||
|
/* 36968 8005B568 C4400008 */ lwc1 $f0, 8($v0)
|
||
|
/* 3696C 8005B56C 0264102A */ slt $v0, $s3, $a0
|
||
|
/* 36970 8005B570 E460000C */ swc1 $f0, 0xc($v1)
|
||
|
/* 36974 8005B574 E4600000 */ swc1 $f0, ($v1)
|
||
|
/* 36978 8005B578 1440FFF1 */ bnez $v0, .L8005B540
|
||
|
/* 3697C 8005B57C 24630018 */ addiu $v1, $v1, 0x18
|
||
|
.L8005B580:
|
||
|
/* 36980 8005B580 8E920018 */ lw $s2, 0x18($s4)
|
||
|
/* 36984 8005B584 8682000A */ lh $v0, 0xa($s4)
|
||
|
/* 36988 8005B588 8E91000C */ lw $s1, 0xc($s4)
|
||
|
/* 3698C 8005B58C 18400024 */ blez $v0, .L8005B620
|
||
|
/* 36990 8005B590 0000982D */ daddu $s3, $zero, $zero
|
||
|
/* 36994 8005B594 27B60010 */ addiu $s6, $sp, 0x10
|
||
|
/* 36998 8005B598 26300008 */ addiu $s0, $s1, 8
|
||
|
.L8005B59C:
|
||
|
/* 3699C 8005B59C 02A0202D */ daddu $a0, $s5, $zero
|
||
|
/* 369A0 8005B5A0 02C0302D */ daddu $a2, $s6, $zero
|
||
|
/* 369A4 8005B5A4 8E250000 */ lw $a1, ($s1)
|
||
|
/* 369A8 8005B5A8 0C016DA9 */ jal func_8005B6A4
|
||
|
/* 369AC 8005B5AC 26730001 */ addiu $s3, $s3, 1
|
||
|
/* 369B0 8005B5B0 02A0202D */ daddu $a0, $s5, $zero
|
||
|
/* 369B4 8005B5B4 02C0302D */ daddu $a2, $s6, $zero
|
||
|
/* 369B8 8005B5B8 00021840 */ sll $v1, $v0, 1
|
||
|
/* 369BC 8005B5BC 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 369C0 8005B5C0 000318C0 */ sll $v1, $v1, 3
|
||
|
/* 369C4 8005B5C4 02431821 */ addu $v1, $s2, $v1
|
||
|
/* 369C8 8005B5C8 AE230000 */ sw $v1, ($s1)
|
||
|
/* 369CC 8005B5CC 8E05FFFC */ lw $a1, -4($s0)
|
||
|
/* 369D0 8005B5D0 0C016DA9 */ jal func_8005B6A4
|
||
|
/* 369D4 8005B5D4 26310040 */ addiu $s1, $s1, 0x40
|
||
|
/* 369D8 8005B5D8 02A0202D */ daddu $a0, $s5, $zero
|
||
|
/* 369DC 8005B5DC 02C0302D */ daddu $a2, $s6, $zero
|
||
|
/* 369E0 8005B5E0 00021840 */ sll $v1, $v0, 1
|
||
|
/* 369E4 8005B5E4 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 369E8 8005B5E8 000318C0 */ sll $v1, $v1, 3
|
||
|
/* 369EC 8005B5EC 8E050000 */ lw $a1, ($s0)
|
||
|
/* 369F0 8005B5F0 02431821 */ addu $v1, $s2, $v1
|
||
|
/* 369F4 8005B5F4 0C016DA9 */ jal func_8005B6A4
|
||
|
/* 369F8 8005B5F8 AE03FFFC */ sw $v1, -4($s0)
|
||
|
/* 369FC 8005B5FC 00021840 */ sll $v1, $v0, 1
|
||
|
/* 36A00 8005B600 00621821 */ addu $v1, $v1, $v0
|
||
|
/* 36A04 8005B604 000318C0 */ sll $v1, $v1, 3
|
||
|
/* 36A08 8005B608 02431821 */ addu $v1, $s2, $v1
|
||
|
/* 36A0C 8005B60C AE030000 */ sw $v1, ($s0)
|
||
|
/* 36A10 8005B610 8682000A */ lh $v0, 0xa($s4)
|
||
|
/* 36A14 8005B614 0262102A */ slt $v0, $s3, $v0
|
||
|
/* 36A18 8005B618 1440FFE0 */ bnez $v0, .L8005B59C
|
||
|
/* 36A1C 8005B61C 26100040 */ addiu $s0, $s0, 0x40
|
||
|
.L8005B620:
|
||
|
/* 36A20 8005B620 0C00AB6D */ jal func_8002ADB4
|
||
|
/* 36A24 8005B624 02A0202D */ daddu $a0, $s5, $zero
|
||
|
/* 36A28 8005B628 8FBF0034 */ lw $ra, 0x34($sp)
|
||
|
/* 36A2C 8005B62C 8FB60030 */ lw $s6, 0x30($sp)
|
||
|
/* 36A30 8005B630 8FB5002C */ lw $s5, 0x2c($sp)
|
||
|
/* 36A34 8005B634 8FB40028 */ lw $s4, 0x28($sp)
|
||
|
/* 36A38 8005B638 8FB30024 */ lw $s3, 0x24($sp)
|
||
|
/* 36A3C 8005B63C 8FB20020 */ lw $s2, 0x20($sp)
|
||
|
/* 36A40 8005B640 8FB1001C */ lw $s1, 0x1c($sp)
|
||
|
/* 36A44 8005B644 8FB00018 */ lw $s0, 0x18($sp)
|
||
|
/* 36A48 8005B648 03E00008 */ jr $ra
|
||
|
/* 36A4C 8005B64C 27BD0038 */ addiu $sp, $sp, 0x38
|