papermario/asm/nonmatchings/code_135EE0/func_80246DEC.s
2020-08-12 22:37:16 -04:00

102 lines
4.3 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80246DEC
/* 13A12C 80246DEC 82040001 */ lb $a0, 1($s0)
/* 13A130 80246DF0 8E020008 */ lw $v0, 8($s0)
/* 13A134 80246DF4 00641821 */ addu $v1, $v1, $a0
/* 13A138 80246DF8 00431021 */ addu $v0, $v0, $v1
/* 13A13C 80246DFC 90420000 */ lbu $v0, ($v0)
/* 13A140 80246E00 A2020003 */ sb $v0, 3($s0)
/* 13A144 80246E04 304200FF */ andi $v0, $v0, 0xff
/* 13A148 80246E08 10470003 */ beq $v0, $a3, .L80246E18
/* 13A14C 80246E0C 00000000 */ nop
/* 13A150 80246E10 0C05272D */ jal play_sound
/* 13A154 80246E14 240400C7 */ addiu $a0, $zero, 0xc7
.L80246E18:
/* 13A158 80246E18 3C028011 */ lui $v0, 0x8011
/* 13A15C 80246E1C 2442F290 */ addiu $v0, $v0, -0xd70
/* 13A160 80246E20 90430000 */ lbu $v1, ($v0)
/* 13A164 80246E24 90420001 */ lbu $v0, 1($v0)
/* 13A168 80246E28 00031E00 */ sll $v1, $v1, 0x18
/* 13A16C 80246E2C 00032E03 */ sra $a1, $v1, 0x18
/* 13A170 80246E30 00021600 */ sll $v0, $v0, 0x18
/* 13A174 80246E34 00022603 */ sra $a0, $v0, 0x18
/* 13A178 80246E38 24A20001 */ addiu $v0, $a1, 1
/* 13A17C 80246E3C 0040282D */ daddu $a1, $v0, $zero
/* 13A180 80246E40 00021400 */ sll $v0, $v0, 0x10
/* 13A184 80246E44 04410002 */ bgez $v0, .L80246E50
/* 13A188 80246E48 0000882D */ daddu $s1, $zero, $zero
/* 13A18C 80246E4C 0220282D */ daddu $a1, $s1, $zero
.L80246E50:
/* 13A190 80246E50 00051400 */ sll $v0, $a1, 0x10
/* 13A194 80246E54 00021403 */ sra $v0, $v0, 0x10
/* 13A198 80246E58 28420004 */ slti $v0, $v0, 4
/* 13A19C 80246E5C 50400001 */ beql $v0, $zero, .L80246E64
/* 13A1A0 80246E60 24050003 */ addiu $a1, $zero, 3
.L80246E64:
/* 13A1A4 80246E64 24820001 */ addiu $v0, $a0, 1
/* 13A1A8 80246E68 0040202D */ daddu $a0, $v0, $zero
/* 13A1AC 80246E6C 00021400 */ sll $v0, $v0, 0x10
/* 13A1B0 80246E70 04420001 */ bltzl $v0, .L80246E78
/* 13A1B4 80246E74 0000202D */ daddu $a0, $zero, $zero
.L80246E78:
/* 13A1B8 80246E78 00041400 */ sll $v0, $a0, 0x10
/* 13A1BC 80246E7C 00021403 */ sra $v0, $v0, 0x10
/* 13A1C0 80246E80 28420004 */ slti $v0, $v0, 4
/* 13A1C4 80246E84 50400001 */ beql $v0, $zero, .L80246E8C
/* 13A1C8 80246E88 24040003 */ addiu $a0, $zero, 3
.L80246E8C:
/* 13A1CC 80246E8C 92020003 */ lbu $v0, 3($s0)
/* 13A1D0 80246E90 00021840 */ sll $v1, $v0, 1
/* 13A1D4 80246E94 00621821 */ addu $v1, $v1, $v0
/* 13A1D8 80246E98 00031880 */ sll $v1, $v1, 2
/* 13A1DC 80246E9C 3C018025 */ lui $at, 0x8025
/* 13A1E0 80246EA0 00230821 */ addu $at, $at, $v1
/* 13A1E4 80246EA4 8C23F3B8 */ lw $v1, -0xc48($at)
/* 13A1E8 80246EA8 24020028 */ addiu $v0, $zero, 0x28
/* 13A1EC 80246EAC 10620016 */ beq $v1, $v0, .L80246F08
/* 13A1F0 80246EB0 28620029 */ slti $v0, $v1, 0x29
/* 13A1F4 80246EB4 10400009 */ beqz $v0, .L80246EDC
/* 13A1F8 80246EB8 24020025 */ addiu $v0, $zero, 0x25
/* 13A1FC 80246EBC 1062000C */ beq $v1, $v0, .L80246EF0
/* 13A200 80246EC0 00051400 */ sll $v0, $a1, 0x10
/* 13A204 80246EC4 08091BCA */ j func_80246F28
/* 13A208 80246EC8 00000000 */ nop
.L80246ECC:
/* 13A20C 80246ECC 08091B6E */ j func_80246DB8
/* 13A210 80246ED0 A2020002 */ sb $v0, 2($s0)
.L80246ED4:
/* 13A214 80246ED4 08091B27 */ j func_80246C9C
/* 13A218 80246ED8 A2020001 */ sb $v0, 1($s0)
.L80246EDC:
/* 13A21C 80246EDC 2402002F */ addiu $v0, $zero, 0x2f
/* 13A220 80246EE0 5062000C */ beql $v1, $v0, .L80246F14
/* 13A224 80246EE4 0000202D */ daddu $a0, $zero, $zero
/* 13A228 80246EE8 08091BCA */ j func_80246F28
/* 13A22C 80246EEC 00000000 */ nop
.L80246EF0:
/* 13A230 80246EF0 00021C03 */ sra $v1, $v0, 0x10
/* 13A234 80246EF4 28620002 */ slti $v0, $v1, 2
/* 13A238 80246EF8 5040000B */ beql $v0, $zero, .L80246F28
/* 13A23C 80246EFC 2471FFFF */ addiu $s1, $v1, -1
/* 13A240 80246F00 08091BCA */ j func_80246F28
/* 13A244 80246F04 00000000 */ nop
.L80246F08:
/* 13A248 80246F08 00041400 */ sll $v0, $a0, 0x10
/* 13A24C 80246F0C 08091BCA */ j func_80246F28
/* 13A250 80246F10 00028C03 */ sra $s1, $v0, 0x10
.L80246F14:
/* 13A254 80246F14 3C05F840 */ lui $a1, 0xf840
/* 13A258 80246F18 0C0B1EAF */ jal get_variable
/* 13A25C 80246F1C 34A55BE5 */ ori $a1, $a1, 0x5be5
/* 13A260 80246F20 54400001 */ bnezl $v0, .L80246F28
/* 13A264 80246F24 24110001 */ addiu $s1, $zero, 1