papermario/asm/nonmatchings/code_2e230_len_2190/func_800549F8.s

181 lines
8.1 KiB
ArmAsm
Raw Normal View History

2020-08-04 08:49:11 +02:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.include "include/macro.inc"
glabel func_800549F8
/* 02FDF8 800549F8 00A0582D */ daddu $t3, $a1, $zero
/* 02FDFC 800549FC 3C03800A */ lui $v1, 0x800a
/* 02FE00 80054A00 8C63A5C0 */ lw $v1, -0x5a40($v1)
/* 02FE04 80054A04 93AA0013 */ lbu $t2, 0x13($sp)
/* 02FE08 80054A08 9162000E */ lbu $v0, 0xe($t3)
/* 02FE0C 80054A0C 8C690004 */ lw $t1, 4($v1)
/* 02FE10 80054A10 14400021 */ bnez $v0, .L80054A98
/* 02FE14 80054A14 C4620000 */ lwc1 $f2, ($v1)
/* 02FE18 80054A18 10E0001D */ beqz $a3, .L80054A90
/* 02FE1C 80054A1C 0000402D */ daddu $t0, $zero, $zero
.L80054A20:
/* 02FE20 80054A20 8CC30000 */ lw $v1, ($a2)
/* 02FE24 80054A24 50600016 */ beql $v1, $zero, .L80054A80
/* 02FE28 80054A28 ACC90000 */ sw $t1, ($a2)
/* 02FE2C 80054A2C 8C620000 */ lw $v0, ($v1)
/* 02FE30 80054A30 10400002 */ beqz $v0, .L80054A3C
/* 02FE34 80054A34 00441021 */ addu $v0, $v0, $a0
/* 02FE38 80054A38 AC620000 */ sw $v0, ($v1)
.L80054A3C:
/* 02FE3C 80054A3C 8C620008 */ lw $v0, 8($v1)
/* 02FE40 80054A40 10400002 */ beqz $v0, .L80054A4C
/* 02FE44 80054A44 00451021 */ addu $v0, $v0, $a1
/* 02FE48 80054A48 AC620008 */ sw $v0, 8($v1)
.L80054A4C:
/* 02FE4C 80054A4C 8C620018 */ lw $v0, 0x18($v1)
/* 02FE50 80054A50 10400002 */ beqz $v0, .L80054A5C
/* 02FE54 80054A54 00451021 */ addu $v0, $v0, $a1
/* 02FE58 80054A58 AC620018 */ sw $v0, 0x18($v1)
.L80054A5C:
/* 02FE5C 80054A5C 8C62002C */ lw $v0, 0x2c($v1)
/* 02FE60 80054A60 10400002 */ beqz $v0, .L80054A6C
/* 02FE64 80054A64 00451021 */ addu $v0, $v0, $a1
/* 02FE68 80054A68 AC62002C */ sw $v0, 0x2c($v1)
.L80054A6C:
/* 02FE6C 80054A6C C4600020 */ lwc1 $f0, 0x20($v1)
/* 02FE70 80054A70 46800020 */ cvt.s.w $f0, $f0
/* 02FE74 80054A74 46020003 */ div.s $f0, $f0, $f2
/* 02FE78 80054A78 A06A0025 */ sb $t2, 0x25($v1)
/* 02FE7C 80054A7C E4600020 */ swc1 $f0, 0x20($v1)
.L80054A80:
/* 02FE80 80054A80 25080001 */ addiu $t0, $t0, 1
/* 02FE84 80054A84 0107102B */ sltu $v0, $t0, $a3
/* 02FE88 80054A88 1440FFE5 */ bnez $v0, .L80054A20
/* 02FE8C 80054A8C 24C60004 */ addiu $a2, $a2, 4
.L80054A90:
/* 02FE90 80054A90 24020001 */ addiu $v0, $zero, 1
/* 02FE94 80054A94 A162000E */ sb $v0, 0xe($t3)
.L80054A98:
/* 02FE98 80054A98 03E00008 */ jr $ra
/* 02FE9C 80054A9C 00000000 */ nop
/* 02FEA0 80054AA0 3C028008 */ lui $v0, 0x8008
/* 02FEA4 80054AA4 8C428E54 */ lw $v0, -0x71ac($v0)
/* 02FEA8 80054AA8 27BDFF80 */ addiu $sp, $sp, -0x80
/* 02FEAC 80054AAC AFB60070 */ sw $s6, 0x70($sp)
/* 02FEB0 80054AB0 0080B02D */ daddu $s6, $a0, $zero
/* 02FEB4 80054AB4 AFB30064 */ sw $s3, 0x64($sp)
/* 02FEB8 80054AB8 00A0982D */ daddu $s3, $a1, $zero
/* 02FEBC 80054ABC AFB40068 */ sw $s4, 0x68($sp)
/* 02FEC0 80054AC0 27B40018 */ addiu $s4, $sp, 0x18
/* 02FEC4 80054AC4 AFBE0078 */ sw $fp, 0x78($sp)
/* 02FEC8 80054AC8 0000F02D */ daddu $fp, $zero, $zero
/* 02FECC 80054ACC AFB1005C */ sw $s1, 0x5c($sp)
/* 02FED0 80054AD0 2411000B */ addiu $s1, $zero, 0xb
/* 02FED4 80054AD4 AFB20060 */ sw $s2, 0x60($sp)
/* 02FED8 80054AD8 24120001 */ addiu $s2, $zero, 1
/* 02FEDC 80054ADC AFBF007C */ sw $ra, 0x7c($sp)
/* 02FEE0 80054AE0 AFB70074 */ sw $s7, 0x74($sp)
/* 02FEE4 80054AE4 AFB5006C */ sw $s5, 0x6c($sp)
/* 02FEE8 80054AE8 AFB00058 */ sw $s0, 0x58($sp)
/* 02FEEC 80054AEC AFA60088 */ sw $a2, 0x88($sp)
/* 02FEF0 80054AF0 AFA7008C */ sw $a3, 0x8c($sp)
/* 02FEF4 80054AF4 8C570018 */ lw $s7, 0x18($v0)
/* 02FEF8 80054AF8 2402000B */ addiu $v0, $zero, 0xb
.L80054AFC:
/* 02FEFC 80054AFC 1222000A */ beq $s1, $v0, .L80054B28
/* 02FF00 80054B00 2E22000C */ sltiu $v0, $s1, 0xc
/* 02FF04 80054B04 54400042 */ bnel $v0, $zero, .L80054C10
/* 02FF08 80054B08 0000902D */ daddu $s2, $zero, $zero
/* 02FF0C 80054B0C 24020015 */ addiu $v0, $zero, 0x15
/* 02FF10 80054B10 12220015 */ beq $s1, $v0, .L80054B68
/* 02FF14 80054B14 2402001F */ addiu $v0, $zero, 0x1f
/* 02FF18 80054B18 52220035 */ beql $s1, $v0, .L80054BF0
/* 02FF1C 80054B1C AFA00010 */ sw $zero, 0x10($sp)
/* 02FF20 80054B20 08015304 */ j .L80054C10
/* 02FF24 80054B24 0000902D */ daddu $s2, $zero, $zero
.L80054B28:
/* 02FF28 80054B28 27A50018 */ addiu $a1, $sp, 0x18
/* 02FF2C 80054B2C 8EC40000 */ lw $a0, ($s6)
/* 02FF30 80054B30 0C015380 */ jal al_DmaCopy
/* 02FF34 80054B34 24060040 */ addiu $a2, $zero, 0x40
/* 02FF38 80054B38 96830000 */ lhu $v1, ($s4)
/* 02FF3C 80054B3C 2402424B */ addiu $v0, $zero, 0x424b
/* 02FF40 80054B40 54620033 */ bnel $v1, $v0, .L80054C10
/* 02FF44 80054B44 0000902D */ daddu $s2, $zero, $zero
/* 02FF48 80054B48 8E820004 */ lw $v0, 4($s4)
/* 02FF4C 80054B4C 1040002F */ beqz $v0, .L80054C0C
/* 02FF50 80054B50 24024352 */ addiu $v0, $zero, 0x4352
/* 02FF54 80054B54 9683000C */ lhu $v1, 0xc($s4)
/* 02FF58 80054B58 5462002D */ bnel $v1, $v0, .L80054C10
/* 02FF5C 80054B5C 0000902D */ daddu $s2, $zero, $zero
/* 02FF60 80054B60 08015304 */ j .L80054C10
/* 02FF64 80054B64 24110015 */ addiu $s1, $zero, 0x15
.L80054B68:
/* 02FF68 80054B68 16600005 */ bnez $s3, .L80054B80
/* 02FF6C 80054B6C 02E0202D */ daddu $a0, $s7, $zero
/* 02FF70 80054B70 8E860004 */ lw $a2, 4($s4)
/* 02FF74 80054B74 0C015FE4 */ jal alHeapAlloc
/* 02FF78 80054B78 24050001 */ addiu $a1, $zero, 1
/* 02FF7C 80054B7C 0040982D */ daddu $s3, $v0, $zero
.L80054B80:
/* 02FF80 80054B80 8EC40000 */ lw $a0, ($s6)
/* 02FF84 80054B84 8E860004 */ lw $a2, 4($s4)
/* 02FF88 80054B88 0C015380 */ jal al_DmaCopy
/* 02FF8C 80054B8C 0260282D */ daddu $a1, $s3, $zero
/* 02FF90 80054B90 8FA4008C */ lw $a0, 0x8c($sp)
/* 02FF94 80054B94 8FA50088 */ lw $a1, 0x88($sp)
/* 02FF98 80054B98 0C0151D1 */ jal func_80054744
/* 02FF9C 80054B9C 0000802D */ daddu $s0, $zero, $zero
/* 02FFA0 80054BA0 0040A82D */ daddu $s5, $v0, $zero
/* 02FFA4 80054BA4 02A0182D */ daddu $v1, $s5, $zero
/* 02FFA8 80054BA8 0200282D */ daddu $a1, $s0, $zero
/* 02FFAC 80054BAC 0280202D */ daddu $a0, $s4, $zero
.L80054BB0:
/* 02FFB0 80054BB0 94820012 */ lhu $v0, 0x12($a0)
/* 02FFB4 80054BB4 10400004 */ beqz $v0, .L80054BC8
/* 02FFB8 80054BB8 00531021 */ addu $v0, $v0, $s3
/* 02FFBC 80054BBC 26100001 */ addiu $s0, $s0, 1
/* 02FFC0 80054BC0 080152F3 */ j .L80054BCC
/* 02FFC4 80054BC4 AC620000 */ sw $v0, ($v1)
.L80054BC8:
/* 02FFC8 80054BC8 AC600000 */ sw $zero, ($v1)
.L80054BCC:
/* 02FFCC 80054BCC 24630004 */ addiu $v1, $v1, 4
/* 02FFD0 80054BD0 24A50001 */ addiu $a1, $a1, 1
/* 02FFD4 80054BD4 2CA20010 */ sltiu $v0, $a1, 0x10
/* 02FFD8 80054BD8 1440FFF5 */ bnez $v0, .L80054BB0
/* 02FFDC 80054BDC 24840002 */ addiu $a0, $a0, 2
/* 02FFE0 80054BE0 5200000B */ beql $s0, $zero, .L80054C10
/* 02FFE4 80054BE4 0000902D */ daddu $s2, $zero, $zero
/* 02FFE8 80054BE8 08015304 */ j .L80054C10
/* 02FFEC 80054BEC 2411001F */ addiu $s1, $zero, 0x1f
.L80054BF0:
/* 02FFF0 80054BF0 0260202D */ daddu $a0, $s3, $zero
/* 02FFF4 80054BF4 0260282D */ daddu $a1, $s3, $zero
/* 02FFF8 80054BF8 02A0302D */ daddu $a2, $s5, $zero
/* 02FFFC 80054BFC 0C01527E */ jal func_800549F8
/* 030000 80054C00 24070010 */ addiu $a3, $zero, 0x10
/* 030004 80054C04 08015304 */ j .L80054C10
/* 030008 80054C08 0000882D */ daddu $s1, $zero, $zero
.L80054C0C:
/* 03000C 80054C0C 0000902D */ daddu $s2, $zero, $zero
.L80054C10:
/* 030010 80054C10 1640FFBA */ bnez $s2, .L80054AFC
/* 030014 80054C14 2402000B */ addiu $v0, $zero, 0xb
/* 030018 80054C18 0260102D */ daddu $v0, $s3, $zero
/* 03001C 80054C1C 8FBF007C */ lw $ra, 0x7c($sp)
/* 030020 80054C20 8FBE0078 */ lw $fp, 0x78($sp)
/* 030024 80054C24 8FB70074 */ lw $s7, 0x74($sp)
/* 030028 80054C28 8FB60070 */ lw $s6, 0x70($sp)
/* 03002C 80054C2C 8FB5006C */ lw $s5, 0x6c($sp)
/* 030030 80054C30 8FB40068 */ lw $s4, 0x68($sp)
/* 030034 80054C34 8FB30064 */ lw $s3, 0x64($sp)
/* 030038 80054C38 8FB20060 */ lw $s2, 0x60($sp)
/* 03003C 80054C3C 8FB1005C */ lw $s1, 0x5c($sp)
/* 030040 80054C40 8FB00058 */ lw $s0, 0x58($sp)
/* 030044 80054C44 03E00008 */ jr $ra
/* 030048 80054C48 27BD0080 */ addiu $sp, $sp, 0x80