papermario/asm/nonmatchings/code_31650/func_80058B20.s
Ethan Roseman 5062328c73 new file
2020-12-01 19:13:24 -05:00

91 lines
4.6 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80058B20
/* 33F20 80058B20 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 33F24 80058B24 AFB3001C */ sw $s3, 0x1c($sp)
/* 33F28 80058B28 8FB30044 */ lw $s3, 0x44($sp)
/* 33F2C 80058B2C AFB50024 */ sw $s5, 0x24($sp)
/* 33F30 80058B30 8FB50048 */ lw $s5, 0x48($sp)
/* 33F34 80058B34 AFB40020 */ sw $s4, 0x20($sp)
/* 33F38 80058B38 97B40042 */ lhu $s4, 0x42($sp)
/* 33F3C 80058B3C AFB10014 */ sw $s1, 0x14($sp)
/* 33F40 80058B40 0080882D */ daddu $s1, $a0, $zero
/* 33F44 80058B44 AFB20018 */ sw $s2, 0x18($sp)
/* 33F48 80058B48 00A0902D */ daddu $s2, $a1, $zero
/* 33F4C 80058B4C AFB60028 */ sw $s6, 0x28($sp)
/* 33F50 80058B50 00C0B02D */ daddu $s6, $a2, $zero
/* 33F54 80058B54 AFB00010 */ sw $s0, 0x10($sp)
/* 33F58 80058B58 00E0802D */ daddu $s0, $a3, $zero
/* 33F5C 80058B5C 1A000019 */ blez $s0, .L80058BC4
/* 33F60 80058B60 AFBF002C */ sw $ra, 0x2c($sp)
/* 33F64 80058B64 8E430014 */ lw $v1, 0x14($s2)
/* 33F68 80058B68 8E42001C */ lw $v0, 0x1c($s2)
/* 33F6C 80058B6C 8E440030 */ lw $a0, 0x30($s2)
/* 33F70 80058B70 8E460020 */ lw $a2, 0x20($s2)
/* 33F74 80058B74 90670025 */ lbu $a3, 0x25($v1)
/* 33F78 80058B78 0040F809 */ jalr $v0
/* 33F7C 80058B7C 0200282D */ daddu $a1, $s0, $zero
/* 33F80 80058B80 30480007 */ andi $t0, $v0, 7
/* 33F84 80058B84 02088021 */ addu $s0, $s0, $t0
/* 33F88 80058B88 0220302D */ daddu $a2, $s1, $zero
/* 33F8C 80058B8C 26310008 */ addiu $s1, $s1, 8
/* 33F90 80058B90 32030007 */ andi $v1, $s0, 7
/* 33F94 80058B94 2463FFF8 */ addiu $v1, $v1, -8
/* 33F98 80058B98 02031823 */ subu $v1, $s0, $v1
/* 33F9C 80058B9C 30630FFF */ andi $v1, $v1, 0xfff
/* 33FA0 80058BA0 00031B00 */ sll $v1, $v1, 0xc
/* 33FA4 80058BA4 32640FFF */ andi $a0, $s3, 0xfff
/* 33FA8 80058BA8 3C050400 */ lui $a1, 0x400
/* 33FAC 80058BAC 00852025 */ or $a0, $a0, $a1
/* 33FB0 80058BB0 00641825 */ or $v1, $v1, $a0
/* 33FB4 80058BB4 00481023 */ subu $v0, $v0, $t0
/* 33FB8 80058BB8 ACC30000 */ sw $v1, ($a2)
/* 33FBC 80058BBC 080162F2 */ j .L80058BC8
/* 33FC0 80058BC0 ACC20004 */ sw $v0, 4($a2)
.L80058BC4:
/* 33FC4 80058BC4 0000402D */ daddu $t0, $zero, $zero
.L80058BC8:
/* 33FC8 80058BC8 32A20002 */ andi $v0, $s5, 2
/* 33FCC 80058BCC 10400009 */ beqz $v0, .L80058BF4
/* 33FD0 80058BD0 0220202D */ daddu $a0, $s1, $zero
/* 33FD4 80058BD4 26310008 */ addiu $s1, $s1, 8
/* 33FD8 80058BD8 3C031FFF */ lui $v1, 0x1fff
/* 33FDC 80058BDC 3C020F00 */ lui $v0, 0xf00
/* 33FE0 80058BE0 AC820000 */ sw $v0, ($a0)
/* 33FE4 80058BE4 8E420004 */ lw $v0, 4($s2)
/* 33FE8 80058BE8 3463FFFF */ ori $v1, $v1, 0xffff
/* 33FEC 80058BEC 00431024 */ and $v0, $v0, $v1
/* 33FF0 80058BF0 AC820004 */ sw $v0, 4($a0)
.L80058BF4:
/* 33FF4 80058BF4 3C0700FF */ lui $a3, 0xff
/* 33FF8 80058BF8 34E7FFFF */ ori $a3, $a3, 0xffff
/* 33FFC 80058BFC 26220008 */ addiu $v0, $s1, 8
/* 34000 80058C00 0220302D */ daddu $a2, $s1, $zero
/* 34004 80058C04 00152700 */ sll $a0, $s5, 0x1c
/* 34008 80058C08 00161840 */ sll $v1, $s6, 1
/* 3400C 80058C0C 30630FFF */ andi $v1, $v1, 0xfff
/* 34010 80058C10 00031C00 */ sll $v1, $v1, 0x10
/* 34014 80058C14 00832025 */ or $a0, $a0, $v1
/* 34018 80058C18 00081B00 */ sll $v1, $t0, 0xc
/* 3401C 80058C1C 00832025 */ or $a0, $a0, $v1
/* 34020 80058C20 32850FFF */ andi $a1, $s4, 0xfff
/* 34024 80058C24 8E430000 */ lw $v1, ($s2)
/* 34028 80058C28 00852025 */ or $a0, $a0, $a1
/* 3402C 80058C2C ACC40004 */ sw $a0, 4($a2)
/* 34030 80058C30 3C040100 */ lui $a0, 0x100
/* 34034 80058C34 00671824 */ and $v1, $v1, $a3
/* 34038 80058C38 00641825 */ or $v1, $v1, $a0
/* 3403C 80058C3C ACC30000 */ sw $v1, ($a2)
/* 34040 80058C40 AE40002C */ sw $zero, 0x2c($s2)
/* 34044 80058C44 8FBF002C */ lw $ra, 0x2c($sp)
/* 34048 80058C48 8FB60028 */ lw $s6, 0x28($sp)
/* 3404C 80058C4C 8FB50024 */ lw $s5, 0x24($sp)
/* 34050 80058C50 8FB40020 */ lw $s4, 0x20($sp)
/* 34054 80058C54 8FB3001C */ lw $s3, 0x1c($sp)
/* 34058 80058C58 8FB20018 */ lw $s2, 0x18($sp)
/* 3405C 80058C5C 8FB10014 */ lw $s1, 0x14($sp)
/* 34060 80058C60 8FB00010 */ lw $s0, 0x10($sp)
/* 34064 80058C64 03E00008 */ jr $ra
/* 34068 80058C68 27BD0030 */ addiu $sp, $sp, 0x30