papermario/asm/nonmatchings/code_16c8e0/func_8025950C.s
2020-09-23 23:16:13 -04:00

126 lines
6.2 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8025950C
/* 187DEC 8025950C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 187DF0 80259510 AFB1001C */ sw $s1, 0x1c($sp)
/* 187DF4 80259514 0080882D */ daddu $s1, $a0, $zero
/* 187DF8 80259518 AFB20020 */ sw $s2, 0x20($sp)
/* 187DFC 8025951C 00A0902D */ daddu $s2, $a1, $zero
/* 187E00 80259520 AFB30024 */ sw $s3, 0x24($sp)
/* 187E04 80259524 00C0982D */ daddu $s3, $a2, $zero
/* 187E08 80259528 240600FF */ addiu $a2, $zero, 0xff
/* 187E0C 8025952C AFBF0028 */ sw $ra, 0x28($sp)
/* 187E10 80259530 AFB00018 */ sw $s0, 0x18($sp)
/* 187E14 80259534 86230098 */ lh $v1, 0x98($s1)
/* 187E18 80259538 8E3000C0 */ lw $s0, 0xc0($s1)
/* 187E1C 8025953C 0066102A */ slt $v0, $v1, $a2
/* 187E20 80259540 10400003 */ beqz $v0, .L80259550
/* 187E24 80259544 0000382D */ daddu $a3, $zero, $zero
/* 187E28 80259548 3C078000 */ lui $a3, 0x8000
/* 187E2C 8025954C 0060302D */ daddu $a2, $v1, $zero
.L80259550:
/* 187E30 80259550 8E220000 */ lw $v0, ($s1)
/* 187E34 80259554 30420100 */ andi $v0, $v0, 0x100
/* 187E38 80259558 1040000C */ beqz $v0, .L8025958C
/* 187E3C 8025955C 3C038080 */ lui $v1, 0x8080
/* 187E40 80259560 34638081 */ ori $v1, $v1, 0x8081
/* 187E44 80259564 00061100 */ sll $v0, $a2, 4
/* 187E48 80259568 00461023 */ subu $v0, $v0, $a2
/* 187E4C 8025956C 000210C0 */ sll $v0, $v0, 3
/* 187E50 80259570 00430018 */ mult $v0, $v1
/* 187E54 80259574 3C078000 */ lui $a3, 0x8000
/* 187E58 80259578 00004010 */ mfhi $t0
/* 187E5C 8025957C 01021821 */ addu $v1, $t0, $v0
/* 187E60 80259580 000319C3 */ sra $v1, $v1, 7
/* 187E64 80259584 000217C3 */ sra $v0, $v0, 0x1f
/* 187E68 80259588 00623023 */ subu $a2, $v1, $v0
.L8025958C:
/* 187E6C 8025958C 92020768 */ lbu $v0, 0x768($s0)
/* 187E70 80259590 1040003F */ beqz $v0, .L80259690
/* 187E74 80259594 0240282D */ daddu $a1, $s2, $zero
/* 187E78 80259598 96240088 */ lhu $a0, 0x88($s1)
/* 187E7C 8025959C 0C0B7A90 */ jal func_802DEA40
/* 187E80 802595A0 00000000 */ nop
/* 187E84 802595A4 AE0206D0 */ sw $v0, 0x6d0($s0)
/* 187E88 802595A8 0040202D */ daddu $a0, $v0, $zero
/* 187E8C 802595AC A20006CD */ sb $zero, 0x6cd($s0)
/* 187E90 802595B0 8C830000 */ lw $v1, ($a0)
/* 187E94 802595B4 2402FFFF */ addiu $v0, $zero, -1
/* 187E98 802595B8 1062000C */ beq $v1, $v0, .L802595EC
/* 187E9C 802595BC 00000000 */ nop
/* 187EA0 802595C0 0080182D */ daddu $v1, $a0, $zero
/* 187EA4 802595C4 0040202D */ daddu $a0, $v0, $zero
.L802595C8:
/* 187EA8 802595C8 920206CD */ lbu $v0, 0x6cd($s0)
/* 187EAC 802595CC 24420001 */ addiu $v0, $v0, 1
/* 187EB0 802595D0 A20206CD */ sb $v0, 0x6cd($s0)
/* 187EB4 802595D4 00021600 */ sll $v0, $v0, 0x18
/* 187EB8 802595D8 00021583 */ sra $v0, $v0, 0x16
/* 187EBC 802595DC 00431021 */ addu $v0, $v0, $v1
/* 187EC0 802595E0 8C420000 */ lw $v0, ($v0)
/* 187EC4 802595E4 1444FFF8 */ bne $v0, $a0, .L802595C8
/* 187EC8 802595E8 00000000 */ nop
.L802595EC:
/* 187ECC 802595EC 820206CD */ lb $v0, 0x6cd($s0)
/* 187ED0 802595F0 18400016 */ blez $v0, .L8025964C
/* 187ED4 802595F4 0000302D */ daddu $a2, $zero, $zero
.L802595F8:
/* 187ED8 802595F8 8E0206D0 */ lw $v0, 0x6d0($s0)
/* 187EDC 802595FC 00061880 */ sll $v1, $a2, 2
/* 187EE0 80259600 00621821 */ addu $v1, $v1, $v0
/* 187EE4 80259604 00061140 */ sll $v0, $a2, 5
/* 187EE8 80259608 8C630000 */ lw $v1, ($v1)
/* 187EEC 8025960C 10600009 */ beqz $v1, .L80259634
/* 187EF0 80259610 02022821 */ addu $a1, $s0, $v0
/* 187EF4 80259614 0000202D */ daddu $a0, $zero, $zero
.L80259618:
/* 187EF8 80259618 94620000 */ lhu $v0, ($v1)
/* 187EFC 8025961C 24630002 */ addiu $v1, $v1, 2
/* 187F00 80259620 24840001 */ addiu $a0, $a0, 1
/* 187F04 80259624 A4A20000 */ sh $v0, ($a1)
/* 187F08 80259628 28820010 */ slti $v0, $a0, 0x10
/* 187F0C 8025962C 1440FFFA */ bnez $v0, .L80259618
/* 187F10 80259630 24A50002 */ addiu $a1, $a1, 2
.L80259634:
/* 187F14 80259634 820206CD */ lb $v0, 0x6cd($s0)
/* 187F18 80259638 24C60001 */ addiu $a2, $a2, 1
/* 187F1C 8025963C 00C2102A */ slt $v0, $a2, $v0
/* 187F20 80259640 1440FFED */ bnez $v0, .L802595F8
/* 187F24 80259644 00000000 */ nop
/* 187F28 80259648 820206CD */ lb $v0, 0x6cd($s0)
.L8025964C:
/* 187F2C 8025964C 1840000A */ blez $v0, .L80259678
/* 187F30 80259650 0000302D */ daddu $a2, $zero, $zero
/* 187F34 80259654 0200202D */ daddu $a0, $s0, $zero
/* 187F38 80259658 0200182D */ daddu $v1, $s0, $zero
.L8025965C:
/* 187F3C 8025965C AC6406D4 */ sw $a0, 0x6d4($v1)
/* 187F40 80259660 24840020 */ addiu $a0, $a0, 0x20
/* 187F44 80259664 820206CD */ lb $v0, 0x6cd($s0)
/* 187F48 80259668 24C60001 */ addiu $a2, $a2, 1
/* 187F4C 8025966C 00C2102A */ slt $v0, $a2, $v0
/* 187F50 80259670 1440FFFA */ bnez $v0, .L8025965C
/* 187F54 80259674 24630004 */ addiu $v1, $v1, 4
.L80259678:
/* 187F58 80259678 0220202D */ daddu $a0, $s1, $zero
/* 187F5C 8025967C 0240282D */ daddu $a1, $s2, $zero
/* 187F60 80259680 0C0965B0 */ jal func_802596C0
/* 187F64 80259684 0260302D */ daddu $a2, $s3, $zero
/* 187F68 80259688 080965A9 */ j .L802596A4
/* 187F6C 8025968C 00000000 */ nop
.L80259690:
/* 187F70 80259690 8E240084 */ lw $a0, 0x84($s1)
/* 187F74 80259694 AFB30010 */ sw $s3, 0x10($sp)
/* 187F78 80259698 00872025 */ or $a0, $a0, $a3
/* 187F7C 8025969C 0C0B78F6 */ jal func_802DE3D8
/* 187F80 802596A0 0000382D */ daddu $a3, $zero, $zero
.L802596A4:
/* 187F84 802596A4 8FBF0028 */ lw $ra, 0x28($sp)
/* 187F88 802596A8 8FB30024 */ lw $s3, 0x24($sp)
/* 187F8C 802596AC 8FB20020 */ lw $s2, 0x20($sp)
/* 187F90 802596B0 8FB1001C */ lw $s1, 0x1c($sp)
/* 187F94 802596B4 8FB00018 */ lw $s0, 0x18($sp)
/* 187F98 802596B8 03E00008 */ jr $ra
/* 187F9C 802596BC 27BD0030 */ addiu $sp, $sp, 0x30