papermario/asm/nonmatchings/os/code_448c0_len_210/osPfsGetOneChannelData.s
2020-11-29 02:13:07 -05:00

43 lines
2.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel osPfsGetOneChannelData
/* 44A44 80069644 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 44A48 80069648 00A03821 */ addu $a3, $a1, $zero
/* 44A4C 8006964C 3C06800E */ lui $a2, %hi(D_800DA000)
/* 44A50 80069650 24C6A000 */ addiu $a2, $a2, %lo(D_800DA000)
/* 44A54 80069654 18800005 */ blez $a0, .L8006966C
/* 44A58 80069658 00001821 */ addu $v1, $zero, $zero
.L8006965C:
/* 44A5C 8006965C 24630001 */ addiu $v1, $v1, 1
/* 44A60 80069660 0064102A */ slt $v0, $v1, $a0
/* 44A64 80069664 1440FFFD */ bnez $v0, .L8006965C
/* 44A68 80069668 24C60001 */ addiu $a2, $a2, 1
.L8006966C:
/* 44A6C 8006966C 88C20000 */ lwl $v0, ($a2)
/* 44A70 80069670 98C20003 */ lwr $v0, 3($a2)
/* 44A74 80069674 80C30004 */ lb $v1, 4($a2)
/* 44A78 80069678 80C40005 */ lb $a0, 5($a2)
/* 44A7C 8006967C ABA20000 */ swl $v0, ($sp)
/* 44A80 80069680 BBA20003 */ swr $v0, 3($sp)
/* 44A84 80069684 A3A30004 */ sb $v1, 4($sp)
/* 44A88 80069688 A3A40005 */ sb $a0, 5($sp)
/* 44A8C 8006968C 93A20001 */ lbu $v0, 1($sp)
/* 44A90 80069690 304200C0 */ andi $v0, $v0, 0xc0
/* 44A94 80069694 00021102 */ srl $v0, $v0, 4
/* 44A98 80069698 14400008 */ bnez $v0, .L800696BC
/* 44A9C 8006969C A0E20003 */ sb $v0, 3($a3)
/* 44AA0 800696A0 93A20004 */ lbu $v0, 4($sp)
/* 44AA4 800696A4 93A30003 */ lbu $v1, 3($sp)
/* 44AA8 800696A8 00021200 */ sll $v0, $v0, 8
/* 44AAC 800696AC 00621825 */ or $v1, $v1, $v0
/* 44AB0 800696B0 A4E30000 */ sh $v1, ($a3)
/* 44AB4 800696B4 93A20005 */ lbu $v0, 5($sp)
/* 44AB8 800696B8 A0E20002 */ sb $v0, 2($a3)
.L800696BC:
/* 44ABC 800696BC 03E00008 */ jr $ra
/* 44AC0 800696C0 27BD0010 */ addiu $sp, $sp, 0x10
/* 44AC4 800696C4 00000000 */ nop
/* 44AC8 800696C8 00000000 */ nop
/* 44ACC 800696CC 00000000 */ nop