mirror of
https://github.com/pmret/papermario.git
synced 2024-11-13 22:43:00 +01:00
108 lines
4.8 KiB
ArmAsm
108 lines
4.8 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_80242E00
|
|
/* 163660 80242E00 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* 163664 80242E04 AFB20018 */ sw $s2, 0x18($sp)
|
|
/* 163668 80242E08 00A0902D */ daddu $s2, $a1, $zero
|
|
/* 16366C 80242E0C AFB3001C */ sw $s3, 0x1c($sp)
|
|
/* 163670 80242E10 00C0982D */ daddu $s3, $a2, $zero
|
|
/* 163674 80242E14 AFB40020 */ sw $s4, 0x20($sp)
|
|
/* 163678 80242E18 3C148016 */ lui $s4, 0x8016
|
|
/* 16367C 80242E1C 26949D50 */ addiu $s4, $s4, -0x62b0
|
|
/* 163680 80242E20 00042140 */ sll $a0, $a0, 5
|
|
/* 163684 80242E24 AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 163688 80242E28 3C118025 */ lui $s1, 0x8025
|
|
/* 16368C 80242E2C 26319BB0 */ addiu $s1, $s1, -0x6450
|
|
/* 163690 80242E30 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* 163694 80242E34 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 163698 80242E38 8E220000 */ lw $v0, ($s1)
|
|
/* 16369C 80242E3C 14400012 */ bnez $v0, .L80242E88
|
|
/* 1636A0 80242E40 00948021 */ addu $s0, $a0, $s4
|
|
/* 1636A4 80242E44 0C00CD4A */ jal get_game_mode
|
|
/* 1636A8 80242E48 00000000 */ nop
|
|
/* 1636AC 80242E4C 00021400 */ sll $v0, $v0, 0x10
|
|
/* 1636B0 80242E50 00021403 */ sra $v0, $v0, 0x10
|
|
/* 1636B4 80242E54 2403000F */ addiu $v1, $zero, 0xf
|
|
/* 1636B8 80242E58 10430008 */ beq $v0, $v1, .L80242E7C
|
|
/* 1636BC 80242E5C 00000000 */ nop
|
|
/* 1636C0 80242E60 0C00CD4A */ jal get_game_mode
|
|
/* 1636C4 80242E64 00000000 */ nop
|
|
/* 1636C8 80242E68 00021400 */ sll $v0, $v0, 0x10
|
|
/* 1636CC 80242E6C 00021403 */ sra $v0, $v0, 0x10
|
|
/* 1636D0 80242E70 2403000D */ addiu $v1, $zero, 0xd
|
|
/* 1636D4 80242E74 14430024 */ bne $v0, $v1, .L80242F08
|
|
/* 1636D8 80242E78 00000000 */ nop
|
|
.L80242E7C:
|
|
/* 1636DC 80242E7C 8E220000 */ lw $v0, ($s1)
|
|
/* 1636E0 80242E80 10400018 */ beqz $v0, .L80242EE4
|
|
/* 1636E4 80242E84 00000000 */ nop
|
|
.L80242E88:
|
|
/* 1636E8 80242E88 2404002C */ addiu $a0, $zero, 0x2c
|
|
/* 1636EC 80242E8C 2406FFFF */ addiu $a2, $zero, -1
|
|
/* 1636F0 80242E90 0080282D */ daddu $a1, $a0, $zero
|
|
/* 1636F4 80242E94 3C038016 */ lui $v1, 0x8016
|
|
/* 1636F8 80242E98 2463A2D0 */ addiu $v1, $v1, -0x5d30
|
|
.L80242E9C:
|
|
/* 1636FC 80242E9C 80620003 */ lb $v0, 3($v1)
|
|
/* 163700 80242EA0 10460003 */ beq $v0, $a2, .L80242EB0
|
|
/* 163704 80242EA4 00000000 */ nop
|
|
/* 163708 80242EA8 54450006 */ bnel $v0, $a1, .L80242EC4
|
|
/* 16370C 80242EAC 24840001 */ addiu $a0, $a0, 1
|
|
.L80242EB0:
|
|
/* 163710 80242EB0 90620000 */ lbu $v0, ($v1)
|
|
/* 163714 80242EB4 30420008 */ andi $v0, $v0, 8
|
|
/* 163718 80242EB8 14400006 */ bnez $v0, .L80242ED4
|
|
/* 16371C 80242EBC 28820040 */ slti $v0, $a0, 0x40
|
|
/* 163720 80242EC0 24840001 */ addiu $a0, $a0, 1
|
|
.L80242EC4:
|
|
/* 163724 80242EC4 28820040 */ slti $v0, $a0, 0x40
|
|
/* 163728 80242EC8 1440FFF4 */ bnez $v0, .L80242E9C
|
|
/* 16372C 80242ECC 24630020 */ addiu $v1, $v1, 0x20
|
|
/* 163730 80242ED0 28820040 */ slti $v0, $a0, 0x40
|
|
.L80242ED4:
|
|
/* 163734 80242ED4 14400003 */ bnez $v0, .L80242EE4
|
|
/* 163738 80242ED8 00000000 */ nop
|
|
/* 16373C 80242EDC 3C018025 */ lui $at, 0x8025
|
|
/* 163740 80242EE0 AC209BB0 */ sw $zero, -0x6450($at)
|
|
.L80242EE4:
|
|
/* 163744 80242EE4 3C018025 */ lui $at, 0x8025
|
|
/* 163748 80242EE8 AC329BA0 */ sw $s2, -0x6460($at)
|
|
/* 16374C 80242EEC 3C018025 */ lui $at, 0x8025
|
|
/* 163750 80242EF0 AC329B94 */ sw $s2, -0x646c($at)
|
|
/* 163754 80242EF4 3C018025 */ lui $at, 0x8025
|
|
/* 163758 80242EF8 AC339BA4 */ sw $s3, -0x645c($at)
|
|
/* 16375C 80242EFC 3C018025 */ lui $at, 0x8025
|
|
/* 163760 80242F00 08090BD2 */ j .L80242F48
|
|
/* 163764 80242F04 AC339B98 */ sw $s3, -0x6468($at)
|
|
|
|
.L80242F08:
|
|
/* 163768 80242F08 92020000 */ lbu $v0, ($s0)
|
|
/* 16376C 80242F0C 30420008 */ andi $v0, $v0, 8
|
|
/* 163770 80242F10 1440000D */ bnez $v0, .L80242F48
|
|
/* 163774 80242F14 2402FFFF */ addiu $v0, $zero, -1
|
|
/* 163778 80242F18 82040003 */ lb $a0, 3($s0)
|
|
/* 16377C 80242F1C 10820006 */ beq $a0, $v0, .L80242F38
|
|
/* 163780 80242F20 00041140 */ sll $v0, $a0, 5
|
|
/* 163784 80242F24 00541021 */ addu $v0, $v0, $s4
|
|
/* 163788 80242F28 90420000 */ lbu $v0, ($v0)
|
|
/* 16378C 80242F2C 30420008 */ andi $v0, $v0, 8
|
|
/* 163790 80242F30 14400005 */ bnez $v0, .L80242F48
|
|
/* 163794 80242F34 00000000 */ nop
|
|
.L80242F38:
|
|
/* 163798 80242F38 3C018025 */ lui $at, 0x8025
|
|
/* 16379C 80242F3C AC329BA0 */ sw $s2, -0x6460($at)
|
|
/* 1637A0 80242F40 3C018025 */ lui $at, 0x8025
|
|
/* 1637A4 80242F44 AC339BA4 */ sw $s3, -0x645c($at)
|
|
.L80242F48:
|
|
/* 1637A8 80242F48 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 1637AC 80242F4C 8FB40020 */ lw $s4, 0x20($sp)
|
|
/* 1637B0 80242F50 8FB3001C */ lw $s3, 0x1c($sp)
|
|
/* 1637B4 80242F54 8FB20018 */ lw $s2, 0x18($sp)
|
|
/* 1637B8 80242F58 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 1637BC 80242F5C 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 1637C0 80242F60 03E00008 */ jr $ra
|
|
/* 1637C4 80242F64 27BD0028 */ addiu $sp, $sp, 0x28
|
|
|