papermario/asm/nonmatchings/code_26840_len_20d0/func_8004D1B4.s
2020-09-23 23:16:13 -04:00

43 lines
1.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8004D1B4
/* 285B4 8004D1B4 8CA20000 */ lw $v0, ($a1)
/* 285B8 8004D1B8 90470002 */ lbu $a3, 2($v0)
/* 285BC 8004D1BC 90430000 */ lbu $v1, ($v0)
/* 285C0 8004D1C0 90440001 */ lbu $a0, 1($v0)
/* 285C4 8004D1C4 24420003 */ addiu $v0, $v0, 3
/* 285C8 8004D1C8 ACA20000 */ sw $v0, ($a1)
/* 285CC 8004D1CC 00031A00 */ sll $v1, $v1, 8
/* 285D0 8004D1D0 00832021 */ addu $a0, $a0, $v1
/* 285D4 8004D1D4 10E00003 */ beqz $a3, .L8004D1E4
/* 285D8 8004D1D8 0080302D */ daddu $a2, $a0, $zero
/* 285DC 8004D1DC 00071200 */ sll $v0, $a3, 8
/* 285E0 8004D1E0 344700FF */ ori $a3, $v0, 0xff
.L8004D1E4:
/* 285E4 8004D1E4 00041400 */ sll $v0, $a0, 0x10
/* 285E8 8004D1E8 58400001 */ blezl $v0, .L8004D1F0
/* 285EC 8004D1EC 24060001 */ addiu $a2, $zero, 1
.L8004D1F0:
/* 285F0 8004D1F0 8CA2006C */ lw $v0, 0x6c($a1)
/* 285F4 8004D1F4 00071C00 */ sll $v1, $a3, 0x10
/* 285F8 8004D1F8 00621823 */ subu $v1, $v1, $v0
/* 285FC 8004D1FC 00061400 */ sll $v0, $a2, 0x10
/* 28600 8004D200 00021403 */ sra $v0, $v0, 0x10
/* 28604 8004D204 14400002 */ bnez $v0, .L8004D210
/* 28608 8004D208 0062001A */ div $zero, $v1, $v0
/* 2860C 8004D20C 0007000D */ break 7
.L8004D210:
/* 28610 8004D210 2401FFFF */ addiu $at, $zero, -1
/* 28614 8004D214 14410004 */ bne $v0, $at, .L8004D228
/* 28618 8004D218 3C018000 */ lui $at, 0x8000
/* 2861C 8004D21C 14610002 */ bne $v1, $at, .L8004D228
/* 28620 8004D220 00000000 */ nop
/* 28624 8004D224 0006000D */ break 6
.L8004D228:
/* 28628 8004D228 00001812 */ mflo $v1
/* 2862C 8004D22C A4A60074 */ sh $a2, 0x74($a1)
/* 28630 8004D230 A4A70076 */ sh $a3, 0x76($a1)
/* 28634 8004D234 03E00008 */ jr $ra
/* 28638 8004D238 ACA30070 */ sw $v1, 0x70($a1)