papermario/asm/nonmatchings/code_415D90/func_802A45D8.s
2020-08-12 21:56:23 -04:00

93 lines
4.2 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.include "include/macro.inc"
glabel func_802A45D8
/* 419368 802A45D8 3C03802B */ lui $v1, 0x802b
/* 41936C 802A45DC 2463D608 */ addiu $v1, $v1, -0x29f8
/* 419370 802A45E0 3C06802B */ lui $a2, 0x802b
/* 419374 802A45E4 90C6D673 */ lbu $a2, -0x298d($a2)
/* 419378 802A45E8 3C04802B */ lui $a0, 0x802b
/* 41937C 802A45EC 2484D66C */ addiu $a0, $a0, -0x2994
/* 419380 802A45F0 3C01802B */ lui $at, 0x802b
/* 419384 802A45F4 A020D604 */ sb $zero, -0x29fc($at)
/* 419388 802A45F8 A0600000 */ sb $zero, ($v1)
/* 41938C 802A45FC 3C01802B */ lui $at, 0x802b
/* 419390 802A4600 A026D605 */ sb $a2, -0x29fb($at)
/* 419394 802A4604 3C01802B */ lui $at, 0x802b
/* 419398 802A4608 A026D606 */ sb $a2, -0x29fa($at)
/* 41939C 802A460C 90870003 */ lbu $a3, 3($a0)
/* 4193A0 802A4610 3C09802B */ lui $t1, 0x802b
/* 4193A4 802A4614 2529D60A */ addiu $t1, $t1, -0x29f6
/* 4193A8 802A4618 00071600 */ sll $v0, $a3, 0x18
/* 4193AC 802A461C 00021603 */ sra $v0, $v0, 0x18
/* 4193B0 802A4620 28420007 */ slti $v0, $v0, 7
/* 4193B4 802A4624 14400003 */ bnez $v0, .L802A4634
/* 4193B8 802A4628 A1270000 */ sb $a3, ($t1)
/* 4193BC 802A462C 24020006 */ addiu $v0, $zero, 6
/* 4193C0 802A4630 A1220000 */ sb $v0, ($t1)
.L802A4634:
/* 4193C4 802A4634 3C08802B */ lui $t0, 0x802b
/* 4193C8 802A4638 2508D609 */ addiu $t0, $t0, -0x29f7
/* 4193CC 802A463C 8C8A0000 */ lw $t2, ($a0)
/* 4193D0 802A4640 24020006 */ addiu $v0, $zero, 6
/* 4193D4 802A4644 A1020000 */ sb $v0, ($t0)
/* 4193D8 802A4648 0142102A */ slt $v0, $t2, $v0
/* 4193DC 802A464C 54400001 */ bnezl $v0, .L802A4654
/* 4193E0 802A4650 A1070000 */ sb $a3, ($t0)
.L802A4654:
/* 4193E4 802A4654 240200FF */ addiu $v0, $zero, 0xff
/* 4193E8 802A4658 3C01802B */ lui $at, 0x802b
/* 4193EC 802A465C AC22D624 */ sw $v0, -0x29dc($at)
/* 4193F0 802A4660 24020001 */ addiu $v0, $zero, 1
/* 4193F4 802A4664 00C0202D */ daddu $a0, $a2, $zero
/* 4193F8 802A4668 3C01802B */ lui $at, 0x802b
/* 4193FC 802A466C A022D60B */ sb $v0, -0x29f5($at)
/* 419400 802A4670 00041600 */ sll $v0, $a0, 0x18
/* 419404 802A4674 00022E03 */ sra $a1, $v0, 0x18
/* 419408 802A4678 04A20001 */ bltzl $a1, .L802A4680
/* 41940C 802A467C A0640000 */ sb $a0, ($v1)
.L802A4680:
/* 419410 802A4680 81020000 */ lb $v0, ($t0)
/* 419414 802A4684 00A2102A */ slt $v0, $a1, $v0
/* 419418 802A4688 14400005 */ bnez $v0, .L802A46A0
/* 41941C 802A468C 00000000 */ nop
/* 419420 802A4690 91220000 */ lbu $v0, ($t1)
/* 419424 802A4694 2442FFFF */ addiu $v0, $v0, -1
/* 419428 802A4698 00C21023 */ subu $v0, $a2, $v0
/* 41942C 802A469C A0620000 */ sb $v0, ($v1)
.L802A46A0:
/* 419430 802A46A0 90630000 */ lbu $v1, ($v1)
/* 419434 802A46A4 24620006 */ addiu $v0, $v1, 6
/* 419438 802A46A8 A1020000 */ sb $v0, ($t0)
/* 41943C 802A46AC 00021600 */ sll $v0, $v0, 0x18
/* 419440 802A46B0 00021603 */ sra $v0, $v0, 0x18
/* 419444 802A46B4 0142102A */ slt $v0, $t2, $v0
/* 419448 802A46B8 54400001 */ bnezl $v0, .L802A46C0
/* 41944C 802A46BC A1070000 */ sb $a3, ($t0)
.L802A46C0:
/* 419450 802A46C0 00031E00 */ sll $v1, $v1, 0x18
/* 419454 802A46C4 00031E03 */ sra $v1, $v1, 0x18
/* 419458 802A46C8 00032023 */ negu $a0, $v1
/* 41945C 802A46CC 00041040 */ sll $v0, $a0, 1
/* 419460 802A46D0 00441021 */ addu $v0, $v0, $a0
/* 419464 802A46D4 00021080 */ sll $v0, $v0, 2
/* 419468 802A46D8 00441021 */ addu $v0, $v0, $a0
/* 41946C 802A46DC 00A31823 */ subu $v1, $a1, $v1
/* 419470 802A46E0 3C01802B */ lui $at, 0x802b
/* 419474 802A46E4 A422D60C */ sh $v0, -0x29f4($at)
/* 419478 802A46E8 00031040 */ sll $v0, $v1, 1
/* 41947C 802A46EC 00431021 */ addu $v0, $v0, $v1
/* 419480 802A46F0 00021080 */ sll $v0, $v0, 2
/* 419484 802A46F4 00431021 */ addu $v0, $v0, $v1
/* 419488 802A46F8 3C01802B */ lui $at, 0x802b
/* 41948C 802A46FC A422D60E */ sh $v0, -0x29f2($at)
/* 419490 802A4700 3C01802B */ lui $at, 0x802b
/* 419494 802A4704 A020D607 */ sb $zero, -0x29f9($at)
/* 419498 802A4708 3C01802B */ lui $at, 0x802b
/* 41949C 802A470C AC20D6D4 */ sw $zero, -0x292c($at)
/* 4194A0 802A4710 03E00008 */ jr $ra
/* 4194A4 802A4714 00000000 */ nop