papermario/asm/nonmatchings/code_31650/func_80056250.s

224 lines
12 KiB
ArmAsm
Raw Normal View History

2020-12-02 01:13:24 +01:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80056250
/* 31650 80056250 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 31654 80056254 AFB50024 */ sw $s5, 0x24($sp)
/* 31658 80056258 00A0A82D */ daddu $s5, $a1, $zero
/* 3165C 8005625C 3C038008 */ lui $v1, %hi(D_80078E50)
/* 31660 80056260 24638E50 */ addiu $v1, $v1, %lo(D_80078E50)
/* 31664 80056264 AFBF002C */ sw $ra, 0x2c($sp)
/* 31668 80056268 AFB60028 */ sw $s6, 0x28($sp)
/* 3166C 8005626C AFB40020 */ sw $s4, 0x20($sp)
/* 31670 80056270 AFB3001C */ sw $s3, 0x1c($sp)
/* 31674 80056274 AFB20018 */ sw $s2, 0x18($sp)
/* 31678 80056278 AFB10014 */ sw $s1, 0x14($sp)
/* 3167C 8005627C AFB00010 */ sw $s0, 0x10($sp)
/* 31680 80056280 8C620000 */ lw $v0, ($v1)
/* 31684 80056284 8EB30014 */ lw $s3, 0x14($s5)
/* 31688 80056288 144000BC */ bnez $v0, .L8005657C
/* 3168C 8005628C 0080382D */ daddu $a3, $a0, $zero
/* 31690 80056290 8EA20000 */ lw $v0, ($s5)
/* 31694 80056294 0260202D */ daddu $a0, $s3, $zero
/* 31698 80056298 ACE2000C */ sw $v0, 0xc($a3)
/* 3169C 8005629C 8EA20004 */ lw $v0, 4($s5)
/* 316A0 800562A0 AC670000 */ sw $a3, ($v1)
/* 316A4 800562A4 ACE00000 */ sw $zero, ($a3)
/* 316A8 800562A8 ACE00004 */ sw $zero, 4($a3)
/* 316AC 800562AC ACE20010 */ sw $v0, 0x10($a3)
/* 316B0 800562B0 8EA20008 */ lw $v0, 8($s5)
/* 316B4 800562B4 3C108008 */ lui $s0, %hi(D_80078E54)
/* 316B8 800562B8 26108E54 */ addiu $s0, $s0, %lo(D_80078E54)
/* 316BC 800562BC AE070000 */ sw $a3, ($s0)
/* 316C0 800562C0 3C018008 */ lui $at, %hi(D_80078E58)
/* 316C4 800562C4 A0208E58 */ sb $zero, %lo(D_80078E58)($at)
/* 316C8 800562C8 ACE20008 */ sw $v0, 8($a3)
/* 316CC 800562CC 8EA30010 */ lw $v1, 0x10($s5)
/* 316D0 800562D0 24027FFF */ addiu $v0, $zero, 0x7fff
/* 316D4 800562D4 3C018008 */ lui $at, %hi(D_80078E5A)
/* 316D8 800562D8 A4228E5A */ sh $v0, %lo(D_80078E5A)($at)
/* 316DC 800562DC ACE30014 */ sw $v1, 0x14($a3)
/* 316E0 800562E0 8EA50000 */ lw $a1, ($s5)
/* 316E4 800562E4 24020001 */ addiu $v0, $zero, 1
/* 316E8 800562E8 3C018008 */ lui $at, %hi(D_80078E5C)
/* 316EC 800562EC A0228E5C */ sb $v0, %lo(D_80078E5C)($at)
/* 316F0 800562F0 0C015FE4 */ jal alHeapAlloc
/* 316F4 800562F4 2406007C */ addiu $a2, $zero, 0x7c
/* 316F8 800562F8 8E030000 */ lw $v1, ($s0)
/* 316FC 800562FC AC62001C */ sw $v0, 0x1c($v1)
/* 31700 80056300 8EA20000 */ lw $v0, ($s5)
/* 31704 80056304 18400043 */ blez $v0, .L80056414
/* 31708 80056308 0000882D */ daddu $s1, $zero, $zero
/* 3170C 8005630C 0200B02D */ daddu $s6, $s0, $zero
/* 31710 80056310 24120001 */ addiu $s2, $zero, 1
/* 31714 80056314 0220A02D */ daddu $s4, $s1, $zero
/* 31718 80056318 0260202D */ daddu $a0, $s3, $zero
.L8005631C:
/* 3171C 8005631C 8EC20000 */ lw $v0, ($s6)
/* 31720 80056320 24050001 */ addiu $a1, $zero, 1
/* 31724 80056324 8C50001C */ lw $s0, 0x1c($v0)
/* 31728 80056328 24060020 */ addiu $a2, $zero, 0x20
/* 3172C 8005632C 0C015FE4 */ jal alHeapAlloc
/* 31730 80056330 02148021 */ addu $s0, $s0, $s4
/* 31734 80056334 0260202D */ daddu $a0, $s3, $zero
/* 31738 80056338 24050001 */ addiu $a1, $zero, 1
/* 3173C 8005633C 24060020 */ addiu $a2, $zero, 0x20
/* 31740 80056340 0C015FE4 */ jal alHeapAlloc
/* 31744 80056344 AE020004 */ sw $v0, 4($s0)
/* 31748 80056348 8EC30000 */ lw $v1, ($s6)
/* 3174C 8005634C 26040024 */ addiu $a0, $s0, 0x24
/* 31750 80056350 AE020008 */ sw $v0, 8($s0)
/* 31754 80056354 8C620014 */ lw $v0, 0x14($v1)
/* 31758 80056358 0040F809 */ jalr $v0
/* 3175C 8005635C 2694007C */ addiu $s4, $s4, 0x7c
/* 31760 80056360 0260202D */ daddu $a0, $s3, $zero
/* 31764 80056364 24050001 */ addiu $a1, $zero, 1
/* 31768 80056368 24060020 */ addiu $a2, $zero, 0x20
/* 3176C 8005636C AE020020 */ sw $v0, 0x20($s0)
/* 31770 80056370 AE00002C */ sw $zero, 0x2c($s0)
/* 31774 80056374 AE120030 */ sw $s2, 0x30($s0)
/* 31778 80056378 0C015FE4 */ jal alHeapAlloc
/* 3177C 8005637C AE000034 */ sw $zero, 0x34($s0)
/* 31780 80056380 0260202D */ daddu $a0, $s3, $zero
/* 31784 80056384 24050001 */ addiu $a1, $zero, 1
/* 31788 80056388 3C013F80 */ lui $at, 0x3f80
/* 3178C 8005638C 44810000 */ mtc1 $at, $f0
/* 31790 80056390 24060050 */ addiu $a2, $zero, 0x50
/* 31794 80056394 AE020038 */ sw $v0, 0x38($s0)
/* 31798 80056398 AE000040 */ sw $zero, 0x40($s0)
/* 3179C 8005639C AE120044 */ sw $s2, 0x44($s0)
/* 317A0 800563A0 0C015FE4 */ jal alHeapAlloc
/* 317A4 800563A4 E600003C */ swc1 $f0, 0x3c($s0)
/* 317A8 800563A8 AE020048 */ sw $v0, 0x48($s0)
/* 317AC 800563AC 24020040 */ addiu $v0, $zero, 0x40
/* 317B0 800563B0 AE12006C */ sw $s2, 0x6c($s0)
/* 317B4 800563B4 AE000070 */ sw $zero, 0x70($s0)
/* 317B8 800563B8 A612004E */ sh $s2, 0x4e($s0)
/* 317BC 800563BC A612005C */ sh $s2, 0x5c($s0)
/* 317C0 800563C0 A6120062 */ sh $s2, 0x62($s0)
/* 317C4 800563C4 A6120050 */ sh $s2, 0x50($s0)
/* 317C8 800563C8 A6120052 */ sh $s2, 0x52($s0)
/* 317CC 800563CC A6000054 */ sh $zero, 0x54($s0)
/* 317D0 800563D0 A6000056 */ sh $zero, 0x56($s0)
/* 317D4 800563D4 A612005A */ sh $s2, 0x5a($s0)
/* 317D8 800563D8 A6000058 */ sh $zero, 0x58($s0)
/* 317DC 800563DC A6120060 */ sh $s2, 0x60($s0)
/* 317E0 800563E0 A600005E */ sh $zero, 0x5e($s0)
/* 317E4 800563E4 AE000064 */ sw $zero, 0x64($s0)
/* 317E8 800563E8 AE000068 */ sw $zero, 0x68($s0)
/* 317EC 800563EC A602004C */ sh $v0, 0x4c($s0)
/* 317F0 800563F0 A6000074 */ sh $zero, 0x74($s0)
/* 317F4 800563F4 AE000000 */ sw $zero, ($s0)
/* 317F8 800563F8 A2000078 */ sb $zero, 0x78($s0)
/* 317FC 800563FC A2110079 */ sb $s1, 0x79($s0)
/* 31800 80056400 8EA20000 */ lw $v0, ($s5)
/* 31804 80056404 26310001 */ addiu $s1, $s1, 1
/* 31808 80056408 0222102A */ slt $v0, $s1, $v0
/* 3180C 8005640C 1440FFC3 */ bnez $v0, .L8005631C
/* 31810 80056410 0260202D */ daddu $a0, $s3, $zero
.L80056414:
/* 31814 80056414 0260202D */ daddu $a0, $s3, $zero
/* 31818 80056418 8EA50004 */ lw $a1, 4($s5)
/* 3181C 8005641C 0C015FE4 */ jal alHeapAlloc
/* 31820 80056420 24060018 */ addiu $a2, $zero, 0x18
/* 31824 80056424 3C038008 */ lui $v1, %hi(D_80078E54)
/* 31828 80056428 8C638E54 */ lw $v1, %lo(D_80078E54)($v1)
/* 3182C 8005642C AC620020 */ sw $v0, 0x20($v1)
/* 31830 80056430 8EA20004 */ lw $v0, 4($s5)
/* 31834 80056434 18400022 */ blez $v0, .L800564C0
/* 31838 80056438 0000882D */ daddu $s1, $zero, $zero
/* 3183C 8005643C 24147FFF */ addiu $s4, $zero, 0x7fff
/* 31840 80056440 0220902D */ daddu $s2, $s1, $zero
.L80056444:
/* 31844 80056444 0260202D */ daddu $a0, $s3, $zero
/* 31848 80056448 24050001 */ addiu $a1, $zero, 1
/* 3184C 8005644C 3C028008 */ lui $v0, %hi(D_80078E54)
/* 31850 80056450 8C428E54 */ lw $v0, %lo(D_80078E54)($v0)
/* 31854 80056454 24060014 */ addiu $a2, $zero, 0x14
/* 31858 80056458 8C500020 */ lw $s0, 0x20($v0)
/* 3185C 8005645C 02258821 */ addu $s1, $s1, $a1
/* 31860 80056460 02128021 */ addu $s0, $s0, $s2
/* 31864 80056464 AE000010 */ sw $zero, 0x10($s0)
/* 31868 80056468 AE000014 */ sw $zero, 0x14($s0)
/* 3186C 8005646C A6140000 */ sh $s4, ($s0)
/* 31870 80056470 0C015FE4 */ jal alHeapAlloc
/* 31874 80056474 A200000C */ sb $zero, 0xc($s0)
/* 31878 80056478 0260202D */ daddu $a0, $s3, $zero
/* 3187C 8005647C 24050001 */ addiu $a1, $zero, 1
/* 31880 80056480 24060014 */ addiu $a2, $zero, 0x14
/* 31884 80056484 0C015FE4 */ jal alHeapAlloc
/* 31888 80056488 AE020004 */ sw $v0, 4($s0)
/* 3188C 8005648C 8E040004 */ lw $a0, 4($s0)
/* 31890 80056490 9205000C */ lbu $a1, 0xc($s0)
/* 31894 80056494 0260302D */ daddu $a2, $s3, $zero
/* 31898 80056498 0C0163A1 */ jal func_80058E84
/* 3189C 8005649C AE020008 */ sw $v0, 8($s0)
/* 318A0 800564A0 8E040008 */ lw $a0, 8($s0)
/* 318A4 800564A4 9205000C */ lbu $a1, 0xc($s0)
/* 318A8 800564A8 0C0163A1 */ jal func_80058E84
/* 318AC 800564AC 0260302D */ daddu $a2, $s3, $zero
/* 318B0 800564B0 8EA20004 */ lw $v0, 4($s5)
/* 318B4 800564B4 0222102A */ slt $v0, $s1, $v0
/* 318B8 800564B8 1440FFE2 */ bnez $v0, .L80056444
/* 318BC 800564BC 26520018 */ addiu $s2, $s2, 0x18
.L800564C0:
/* 318C0 800564C0 0260202D */ daddu $a0, $s3, $zero
/* 318C4 800564C4 24050170 */ addiu $a1, $zero, 0x170
/* 318C8 800564C8 0C015FE4 */ jal alHeapAlloc
/* 318CC 800564CC 24060002 */ addiu $a2, $zero, 2
/* 318D0 800564D0 0260202D */ daddu $a0, $s3, $zero
/* 318D4 800564D4 24050170 */ addiu $a1, $zero, 0x170
/* 318D8 800564D8 24060002 */ addiu $a2, $zero, 2
/* 318DC 800564DC 3C108008 */ lui $s0, %hi(D_80078E54)
/* 318E0 800564E0 26108E54 */ addiu $s0, $s0, %lo(D_80078E54)
/* 318E4 800564E4 8E030000 */ lw $v1, ($s0)
/* 318E8 800564E8 0000882D */ daddu $s1, $zero, $zero
/* 318EC 800564EC 0C015FE4 */ jal alHeapAlloc
/* 318F0 800564F0 AC620024 */ sw $v0, 0x24($v1)
/* 318F4 800564F4 0260202D */ daddu $a0, $s3, $zero
/* 318F8 800564F8 240502E0 */ addiu $a1, $zero, 0x2e0
/* 318FC 800564FC 24060002 */ addiu $a2, $zero, 2
/* 31900 80056500 3C01800A */ lui $at, %hi(D_800A3FEC)
/* 31904 80056504 A0203FEC */ sb $zero, %lo(D_800A3FEC)($at)
/* 31908 80056508 3C01800A */ lui $at, %hi(D_800A3FEE)
/* 3190C 8005650C A4203FEE */ sh $zero, %lo(D_800A3FEE)($at)
/* 31910 80056510 8E070000 */ lw $a3, ($s0)
/* 31914 80056514 24030004 */ addiu $v1, $zero, 4
/* 31918 80056518 3C01800A */ lui $at, %hi(D_800A3FF0)
/* 3191C 8005651C AC233FF0 */ sw $v1, %lo(D_800A3FF0)($at)
/* 31920 80056520 0C015FE4 */ jal alHeapAlloc
/* 31924 80056524 ACE20028 */ sw $v0, 0x28($a3)
/* 31928 80056528 0260202D */ daddu $a0, $s3, $zero
/* 3192C 8005652C 240502E0 */ addiu $a1, $zero, 0x2e0
/* 31930 80056530 24060002 */ addiu $a2, $zero, 2
/* 31934 80056534 3C10800A */ lui $s0, %hi(D_800A3FE0)
/* 31938 80056538 26103FE0 */ addiu $s0, $s0, %lo(D_800A3FE0)
/* 3193C 8005653C 0C015FE4 */ jal alHeapAlloc
/* 31940 80056540 AE020000 */ sw $v0, ($s0)
/* 31944 80056544 8E100000 */ lw $s0, ($s0)
/* 31948 80056548 0040182D */ daddu $v1, $v0, $zero
/* 3194C 8005654C 3C01800A */ lui $at, %hi(D_800A3FE4)
/* 31950 80056550 AC233FE4 */ sw $v1, %lo(D_800A3FE4)($at)
.L80056554:
/* 31954 80056554 A6000000 */ sh $zero, ($s0)
/* 31958 80056558 A4600000 */ sh $zero, ($v1)
/* 3195C 8005655C 24630002 */ addiu $v1, $v1, 2
/* 31960 80056560 26310001 */ addiu $s1, $s1, 1
/* 31964 80056564 2A2202E0 */ slti $v0, $s1, 0x2e0
/* 31968 80056568 1440FFFA */ bnez $v0, .L80056554
/* 3196C 8005656C 26100002 */ addiu $s0, $s0, 2
/* 31970 80056570 3C028008 */ lui $v0, %hi(D_80078E54)
/* 31974 80056574 8C428E54 */ lw $v0, %lo(D_80078E54)($v0)
/* 31978 80056578 AC530018 */ sw $s3, 0x18($v0)
.L8005657C:
/* 3197C 8005657C 8FBF002C */ lw $ra, 0x2c($sp)
/* 31980 80056580 8FB60028 */ lw $s6, 0x28($sp)
/* 31984 80056584 8FB50024 */ lw $s5, 0x24($sp)
/* 31988 80056588 8FB40020 */ lw $s4, 0x20($sp)
/* 3198C 8005658C 8FB3001C */ lw $s3, 0x1c($sp)
/* 31990 80056590 8FB20018 */ lw $s2, 0x18($sp)
/* 31994 80056594 8FB10014 */ lw $s1, 0x14($sp)
/* 31998 80056598 8FB00010 */ lw $s0, 0x10($sp)
/* 3199C 8005659C 03E00008 */ jr $ra
/* 319A0 800565A0 27BD0030 */ addiu $sp, $sp, 0x30