papermario/asm/nonmatchings/code_303c0_len_3e10/func_80055240.s

75 lines
3.3 KiB
ArmAsm
Raw Normal View History

2020-08-04 08:49:11 +02:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80055240
/* 030640 80055240 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 030644 80055244 0080582D */ daddu $t3, $a0, $zero
/* 030648 80055248 00C0502D */ daddu $t2, $a2, $zero
/* 03064C 8005524C 00E0402D */ daddu $t0, $a3, $zero
/* 030650 80055250 0100382D */ daddu $a3, $t0, $zero
/* 030654 80055254 30A500FF */ andi $a1, $a1, 0xff
/* 030658 80055258 00051A00 */ sll $v1, $a1, 8
/* 03065C 8005525C 3C04800A */ lui $a0, 0x800a
/* 030660 80055260 8C84A640 */ lw $a0, -0x59c0($a0)
/* 030664 80055264 0060482D */ daddu $t1, $v1, $zero
/* 030668 80055268 10A00002 */ beqz $a1, .L80055274
/* 03066C 8005526C AFBF0018 */ sw $ra, 0x18($sp)
/* 030670 80055270 346900FF */ ori $t1, $v1, 0xff
.L80055274:
/* 030674 80055274 00061600 */ sll $v0, $a2, 0x18
/* 030678 80055278 04420001 */ bltzl $v0, .L80055280
/* 03067C 8005527C 240A007F */ addiu $t2, $zero, 0x7f
.L80055280:
/* 030680 80055280 00081400 */ sll $v0, $t0, 0x10
/* 030684 80055284 00021C03 */ sra $v1, $v0, 0x10
/* 030688 80055288 28620961 */ slti $v0, $v1, 0x961
/* 03068C 8005528C 14400003 */ bnez $v0, .L8005529C
/* 030690 80055290 2862F6A0 */ slti $v0, $v1, -0x960
/* 030694 80055294 080154A9 */ j .L800552A4
/* 030698 80055298 24070960 */ addiu $a3, $zero, 0x960
.L8005529C:
/* 03069C 8005529C 54400001 */ bnel $v0, $zero, .L800552A4
/* 0306A0 800552A0 2407F6A0 */ addiu $a3, $zero, -0x960
.L800552A4:
/* 0306A4 800552A4 314200FF */ andi $v0, $t2, 0xff
/* 0306A8 800552A8 00093400 */ sll $a2, $t1, 0x10
/* 0306AC 800552AC 00073C00 */ sll $a3, $a3, 0x10
/* 0306B0 800552B0 0160282D */ daddu $a1, $t3, $zero
/* 0306B4 800552B4 00063403 */ sra $a2, $a2, 0x10
/* 0306B8 800552B8 00073C03 */ sra $a3, $a3, 0x10
/* 0306BC 800552BC 0C012DB6 */ jal func_8004B6D8
/* 0306C0 800552C0 AFA20010 */ sw $v0, 0x10($sp)
/* 0306C4 800552C4 8FBF0018 */ lw $ra, 0x18($sp)
/* 0306C8 800552C8 03E00008 */ jr $ra
/* 0306CC 800552CC 27BD0020 */ addiu $sp, $sp, 0x20
/* 0306D0 800552D0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0306D4 800552D4 0080482D */ daddu $t1, $a0, $zero
/* 0306D8 800552D8 00C0402D */ daddu $t0, $a2, $zero
/* 0306DC 800552DC 30A500FF */ andi $a1, $a1, 0xff
/* 0306E0 800552E0 00051A00 */ sll $v1, $a1, 8
/* 0306E4 800552E4 3C04800A */ lui $a0, 0x800a
/* 0306E8 800552E8 8C84A640 */ lw $a0, -0x59c0($a0)
/* 0306EC 800552EC 0060382D */ daddu $a3, $v1, $zero
/* 0306F0 800552F0 10A00002 */ beqz $a1, .L800552FC
/* 0306F4 800552F4 AFBF0018 */ sw $ra, 0x18($sp)
/* 0306F8 800552F8 346700FF */ ori $a3, $v1, 0xff
.L800552FC:
/* 0306FC 800552FC 00061600 */ sll $v0, $a2, 0x18
/* 030700 80055300 04420001 */ bltzl $v0, .L80055308
/* 030704 80055304 2408007F */ addiu $t0, $zero, 0x7f
.L80055308:
/* 030708 80055308 310200FF */ andi $v0, $t0, 0xff
/* 03070C 8005530C 00073400 */ sll $a2, $a3, 0x10
/* 030710 80055310 35251000 */ ori $a1, $t1, 0x1000
/* 030714 80055314 00063403 */ sra $a2, $a2, 0x10
/* 030718 80055318 0000382D */ daddu $a3, $zero, $zero
/* 03071C 8005531C 0C012DB6 */ jal func_8004B6D8
/* 030720 80055320 AFA20010 */ sw $v0, 0x10($sp)
/* 030724 80055324 8FBF0018 */ lw $ra, 0x18($sp)
/* 030728 80055328 03E00008 */ jr $ra
/* 03072C 8005532C 27BD0020 */ addiu $sp, $sp, 0x20