.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