mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
235 lines
12 KiB
ArmAsm
235 lines
12 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_80056250
|
|
/* 031650 80056250 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 031654 80056254 AFB50024 */ sw $s5, 0x24($sp)
|
|
/* 031658 80056258 00A0A82D */ daddu $s5, $a1, $zero
|
|
/* 03165C 8005625C 3C038008 */ lui $v1, 0x8008
|
|
/* 031660 80056260 24638E50 */ addiu $v1, $v1, -0x71b0
|
|
/* 031664 80056264 AFBF002C */ sw $ra, 0x2c($sp)
|
|
/* 031668 80056268 AFB60028 */ sw $s6, 0x28($sp)
|
|
/* 03166C 8005626C AFB40020 */ sw $s4, 0x20($sp)
|
|
/* 031670 80056270 AFB3001C */ sw $s3, 0x1c($sp)
|
|
/* 031674 80056274 AFB20018 */ sw $s2, 0x18($sp)
|
|
/* 031678 80056278 AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 03167C 8005627C AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 031680 80056280 8C620000 */ lw $v0, ($v1)
|
|
/* 031684 80056284 8EB30014 */ lw $s3, 0x14($s5)
|
|
/* 031688 80056288 144000BC */ bnez $v0, .L8005657C
|
|
/* 03168C 8005628C 0080382D */ daddu $a3, $a0, $zero
|
|
/* 031690 80056290 8EA20000 */ lw $v0, ($s5)
|
|
/* 031694 80056294 0260202D */ daddu $a0, $s3, $zero
|
|
/* 031698 80056298 ACE2000C */ sw $v0, 0xc($a3)
|
|
/* 03169C 8005629C 8EA20004 */ lw $v0, 4($s5)
|
|
/* 0316A0 800562A0 AC670000 */ sw $a3, ($v1)
|
|
/* 0316A4 800562A4 ACE00000 */ sw $zero, ($a3)
|
|
/* 0316A8 800562A8 ACE00004 */ sw $zero, 4($a3)
|
|
/* 0316AC 800562AC ACE20010 */ sw $v0, 0x10($a3)
|
|
/* 0316B0 800562B0 8EA20008 */ lw $v0, 8($s5)
|
|
/* 0316B4 800562B4 3C108008 */ lui $s0, 0x8008
|
|
/* 0316B8 800562B8 26108E54 */ addiu $s0, $s0, -0x71ac
|
|
/* 0316BC 800562BC AE070000 */ sw $a3, ($s0)
|
|
/* 0316C0 800562C0 3C018008 */ lui $at, 0x8008
|
|
/* 0316C4 800562C4 A0208E58 */ sb $zero, -0x71a8($at)
|
|
/* 0316C8 800562C8 ACE20008 */ sw $v0, 8($a3)
|
|
/* 0316CC 800562CC 8EA30010 */ lw $v1, 0x10($s5)
|
|
/* 0316D0 800562D0 24027FFF */ addiu $v0, $zero, 0x7fff
|
|
/* 0316D4 800562D4 3C018008 */ lui $at, 0x8008
|
|
/* 0316D8 800562D8 A4228E5A */ sh $v0, -0x71a6($at)
|
|
/* 0316DC 800562DC ACE30014 */ sw $v1, 0x14($a3)
|
|
/* 0316E0 800562E0 8EA50000 */ lw $a1, ($s5)
|
|
/* 0316E4 800562E4 24020001 */ addiu $v0, $zero, 1
|
|
/* 0316E8 800562E8 3C018008 */ lui $at, 0x8008
|
|
/* 0316EC 800562EC A0228E5C */ sb $v0, -0x71a4($at)
|
|
/* 0316F0 800562F0 0C015FE4 */ jal alHeapAlloc
|
|
/* 0316F4 800562F4 2406007C */ addiu $a2, $zero, 0x7c
|
|
/* 0316F8 800562F8 8E030000 */ lw $v1, ($s0)
|
|
/* 0316FC 800562FC AC62001C */ sw $v0, 0x1c($v1)
|
|
/* 031700 80056300 8EA20000 */ lw $v0, ($s5)
|
|
/* 031704 80056304 18400043 */ blez $v0, .L80056414
|
|
/* 031708 80056308 0000882D */ daddu $s1, $zero, $zero
|
|
/* 03170C 8005630C 0200B02D */ daddu $s6, $s0, $zero
|
|
/* 031710 80056310 24120001 */ addiu $s2, $zero, 1
|
|
/* 031714 80056314 0220A02D */ daddu $s4, $s1, $zero
|
|
/* 031718 80056318 0260202D */ daddu $a0, $s3, $zero
|
|
.L8005631C:
|
|
/* 03171C 8005631C 8EC20000 */ lw $v0, ($s6)
|
|
/* 031720 80056320 24050001 */ addiu $a1, $zero, 1
|
|
/* 031724 80056324 8C50001C */ lw $s0, 0x1c($v0)
|
|
/* 031728 80056328 24060020 */ addiu $a2, $zero, 0x20
|
|
/* 03172C 8005632C 0C015FE4 */ jal alHeapAlloc
|
|
/* 031730 80056330 02148021 */ addu $s0, $s0, $s4
|
|
/* 031734 80056334 0260202D */ daddu $a0, $s3, $zero
|
|
/* 031738 80056338 24050001 */ addiu $a1, $zero, 1
|
|
/* 03173C 8005633C 24060020 */ addiu $a2, $zero, 0x20
|
|
/* 031740 80056340 0C015FE4 */ jal alHeapAlloc
|
|
/* 031744 80056344 AE020004 */ sw $v0, 4($s0)
|
|
/* 031748 80056348 8EC30000 */ lw $v1, ($s6)
|
|
/* 03174C 8005634C 26040024 */ addiu $a0, $s0, 0x24
|
|
/* 031750 80056350 AE020008 */ sw $v0, 8($s0)
|
|
/* 031754 80056354 8C620014 */ lw $v0, 0x14($v1)
|
|
/* 031758 80056358 0040F809 */ jalr $v0
|
|
/* 03175C 8005635C 2694007C */ addiu $s4, $s4, 0x7c
|
|
/* 031760 80056360 0260202D */ daddu $a0, $s3, $zero
|
|
/* 031764 80056364 24050001 */ addiu $a1, $zero, 1
|
|
/* 031768 80056368 24060020 */ addiu $a2, $zero, 0x20
|
|
/* 03176C 8005636C AE020020 */ sw $v0, 0x20($s0)
|
|
/* 031770 80056370 AE00002C */ sw $zero, 0x2c($s0)
|
|
/* 031774 80056374 AE120030 */ sw $s2, 0x30($s0)
|
|
/* 031778 80056378 0C015FE4 */ jal alHeapAlloc
|
|
/* 03177C 8005637C AE000034 */ sw $zero, 0x34($s0)
|
|
/* 031780 80056380 0260202D */ daddu $a0, $s3, $zero
|
|
/* 031784 80056384 24050001 */ addiu $a1, $zero, 1
|
|
/* 031788 80056388 3C013F80 */ lui $at, 0x3f80
|
|
/* 03178C 8005638C 44810000 */ mtc1 $at, $f0
|
|
/* 031790 80056390 24060050 */ addiu $a2, $zero, 0x50
|
|
/* 031794 80056394 AE020038 */ sw $v0, 0x38($s0)
|
|
/* 031798 80056398 AE000040 */ sw $zero, 0x40($s0)
|
|
/* 03179C 8005639C AE120044 */ sw $s2, 0x44($s0)
|
|
/* 0317A0 800563A0 0C015FE4 */ jal alHeapAlloc
|
|
/* 0317A4 800563A4 E600003C */ swc1 $f0, 0x3c($s0)
|
|
/* 0317A8 800563A8 AE020048 */ sw $v0, 0x48($s0)
|
|
/* 0317AC 800563AC 24020040 */ addiu $v0, $zero, 0x40
|
|
/* 0317B0 800563B0 AE12006C */ sw $s2, 0x6c($s0)
|
|
/* 0317B4 800563B4 AE000070 */ sw $zero, 0x70($s0)
|
|
/* 0317B8 800563B8 A612004E */ sh $s2, 0x4e($s0)
|
|
/* 0317BC 800563BC A612005C */ sh $s2, 0x5c($s0)
|
|
/* 0317C0 800563C0 A6120062 */ sh $s2, 0x62($s0)
|
|
/* 0317C4 800563C4 A6120050 */ sh $s2, 0x50($s0)
|
|
/* 0317C8 800563C8 A6120052 */ sh $s2, 0x52($s0)
|
|
/* 0317CC 800563CC A6000054 */ sh $zero, 0x54($s0)
|
|
/* 0317D0 800563D0 A6000056 */ sh $zero, 0x56($s0)
|
|
/* 0317D4 800563D4 A612005A */ sh $s2, 0x5a($s0)
|
|
/* 0317D8 800563D8 A6000058 */ sh $zero, 0x58($s0)
|
|
/* 0317DC 800563DC A6120060 */ sh $s2, 0x60($s0)
|
|
/* 0317E0 800563E0 A600005E */ sh $zero, 0x5e($s0)
|
|
/* 0317E4 800563E4 AE000064 */ sw $zero, 0x64($s0)
|
|
/* 0317E8 800563E8 AE000068 */ sw $zero, 0x68($s0)
|
|
/* 0317EC 800563EC A602004C */ sh $v0, 0x4c($s0)
|
|
/* 0317F0 800563F0 A6000074 */ sh $zero, 0x74($s0)
|
|
/* 0317F4 800563F4 AE000000 */ sw $zero, ($s0)
|
|
/* 0317F8 800563F8 A2000078 */ sb $zero, 0x78($s0)
|
|
/* 0317FC 800563FC A2110079 */ sb $s1, 0x79($s0)
|
|
/* 031800 80056400 8EA20000 */ lw $v0, ($s5)
|
|
/* 031804 80056404 26310001 */ addiu $s1, $s1, 1
|
|
/* 031808 80056408 0222102A */ slt $v0, $s1, $v0
|
|
/* 03180C 8005640C 1440FFC3 */ bnez $v0, .L8005631C
|
|
/* 031810 80056410 0260202D */ daddu $a0, $s3, $zero
|
|
.L80056414:
|
|
/* 031814 80056414 0260202D */ daddu $a0, $s3, $zero
|
|
/* 031818 80056418 8EA50004 */ lw $a1, 4($s5)
|
|
/* 03181C 8005641C 0C015FE4 */ jal alHeapAlloc
|
|
/* 031820 80056420 24060018 */ addiu $a2, $zero, 0x18
|
|
/* 031824 80056424 3C038008 */ lui $v1, 0x8008
|
|
/* 031828 80056428 8C638E54 */ lw $v1, -0x71ac($v1)
|
|
/* 03182C 8005642C AC620020 */ sw $v0, 0x20($v1)
|
|
/* 031830 80056430 8EA20004 */ lw $v0, 4($s5)
|
|
/* 031834 80056434 18400022 */ blez $v0, .L800564C0
|
|
/* 031838 80056438 0000882D */ daddu $s1, $zero, $zero
|
|
/* 03183C 8005643C 24147FFF */ addiu $s4, $zero, 0x7fff
|
|
/* 031840 80056440 0220902D */ daddu $s2, $s1, $zero
|
|
.L80056444:
|
|
/* 031844 80056444 0260202D */ daddu $a0, $s3, $zero
|
|
/* 031848 80056448 24050001 */ addiu $a1, $zero, 1
|
|
/* 03184C 8005644C 3C028008 */ lui $v0, 0x8008
|
|
/* 031850 80056450 8C428E54 */ lw $v0, -0x71ac($v0)
|
|
/* 031854 80056454 24060014 */ addiu $a2, $zero, 0x14
|
|
/* 031858 80056458 8C500020 */ lw $s0, 0x20($v0)
|
|
/* 03185C 8005645C 02258821 */ addu $s1, $s1, $a1
|
|
/* 031860 80056460 02128021 */ addu $s0, $s0, $s2
|
|
/* 031864 80056464 AE000010 */ sw $zero, 0x10($s0)
|
|
/* 031868 80056468 AE000014 */ sw $zero, 0x14($s0)
|
|
/* 03186C 8005646C A6140000 */ sh $s4, ($s0)
|
|
/* 031870 80056470 0C015FE4 */ jal alHeapAlloc
|
|
/* 031874 80056474 A200000C */ sb $zero, 0xc($s0)
|
|
/* 031878 80056478 0260202D */ daddu $a0, $s3, $zero
|
|
/* 03187C 8005647C 24050001 */ addiu $a1, $zero, 1
|
|
/* 031880 80056480 24060014 */ addiu $a2, $zero, 0x14
|
|
/* 031884 80056484 0C015FE4 */ jal alHeapAlloc
|
|
/* 031888 80056488 AE020004 */ sw $v0, 4($s0)
|
|
/* 03188C 8005648C 8E040004 */ lw $a0, 4($s0)
|
|
/* 031890 80056490 9205000C */ lbu $a1, 0xc($s0)
|
|
/* 031894 80056494 0260302D */ daddu $a2, $s3, $zero
|
|
/* 031898 80056498 0C0163A1 */ jal func_80058E84
|
|
/* 03189C 8005649C AE020008 */ sw $v0, 8($s0)
|
|
/* 0318A0 800564A0 8E040008 */ lw $a0, 8($s0)
|
|
/* 0318A4 800564A4 9205000C */ lbu $a1, 0xc($s0)
|
|
/* 0318A8 800564A8 0C0163A1 */ jal func_80058E84
|
|
/* 0318AC 800564AC 0260302D */ daddu $a2, $s3, $zero
|
|
/* 0318B0 800564B0 8EA20004 */ lw $v0, 4($s5)
|
|
/* 0318B4 800564B4 0222102A */ slt $v0, $s1, $v0
|
|
/* 0318B8 800564B8 1440FFE2 */ bnez $v0, .L80056444
|
|
/* 0318BC 800564BC 26520018 */ addiu $s2, $s2, 0x18
|
|
.L800564C0:
|
|
/* 0318C0 800564C0 0260202D */ daddu $a0, $s3, $zero
|
|
/* 0318C4 800564C4 24050170 */ addiu $a1, $zero, 0x170
|
|
/* 0318C8 800564C8 0C015FE4 */ jal alHeapAlloc
|
|
/* 0318CC 800564CC 24060002 */ addiu $a2, $zero, 2
|
|
/* 0318D0 800564D0 0260202D */ daddu $a0, $s3, $zero
|
|
/* 0318D4 800564D4 24050170 */ addiu $a1, $zero, 0x170
|
|
/* 0318D8 800564D8 24060002 */ addiu $a2, $zero, 2
|
|
/* 0318DC 800564DC 3C108008 */ lui $s0, 0x8008
|
|
/* 0318E0 800564E0 26108E54 */ addiu $s0, $s0, -0x71ac
|
|
/* 0318E4 800564E4 8E030000 */ lw $v1, ($s0)
|
|
/* 0318E8 800564E8 0000882D */ daddu $s1, $zero, $zero
|
|
/* 0318EC 800564EC 0C015FE4 */ jal alHeapAlloc
|
|
/* 0318F0 800564F0 AC620024 */ sw $v0, 0x24($v1)
|
|
/* 0318F4 800564F4 0260202D */ daddu $a0, $s3, $zero
|
|
/* 0318F8 800564F8 240502E0 */ addiu $a1, $zero, 0x2e0
|
|
/* 0318FC 800564FC 24060002 */ addiu $a2, $zero, 2
|
|
/* 031900 80056500 3C01800A */ lui $at, 0x800a
|
|
/* 031904 80056504 A0203FEC */ sb $zero, 0x3fec($at)
|
|
/* 031908 80056508 3C01800A */ lui $at, 0x800a
|
|
/* 03190C 8005650C A4203FEE */ sh $zero, 0x3fee($at)
|
|
/* 031910 80056510 8E070000 */ lw $a3, ($s0)
|
|
/* 031914 80056514 24030004 */ addiu $v1, $zero, 4
|
|
/* 031918 80056518 3C01800A */ lui $at, 0x800a
|
|
/* 03191C 8005651C AC233FF0 */ sw $v1, 0x3ff0($at)
|
|
/* 031920 80056520 0C015FE4 */ jal alHeapAlloc
|
|
/* 031924 80056524 ACE20028 */ sw $v0, 0x28($a3)
|
|
/* 031928 80056528 0260202D */ daddu $a0, $s3, $zero
|
|
/* 03192C 8005652C 240502E0 */ addiu $a1, $zero, 0x2e0
|
|
/* 031930 80056530 24060002 */ addiu $a2, $zero, 2
|
|
/* 031934 80056534 3C10800A */ lui $s0, 0x800a
|
|
/* 031938 80056538 26103FE0 */ addiu $s0, $s0, 0x3fe0
|
|
/* 03193C 8005653C 0C015FE4 */ jal alHeapAlloc
|
|
/* 031940 80056540 AE020000 */ sw $v0, ($s0)
|
|
/* 031944 80056544 8E100000 */ lw $s0, ($s0)
|
|
/* 031948 80056548 0040182D */ daddu $v1, $v0, $zero
|
|
/* 03194C 8005654C 3C01800A */ lui $at, 0x800a
|
|
/* 031950 80056550 AC233FE4 */ sw $v1, 0x3fe4($at)
|
|
.L80056554:
|
|
/* 031954 80056554 A6000000 */ sh $zero, ($s0)
|
|
/* 031958 80056558 A4600000 */ sh $zero, ($v1)
|
|
/* 03195C 8005655C 24630002 */ addiu $v1, $v1, 2
|
|
/* 031960 80056560 26310001 */ addiu $s1, $s1, 1
|
|
/* 031964 80056564 2A2202E0 */ slti $v0, $s1, 0x2e0
|
|
/* 031968 80056568 1440FFFA */ bnez $v0, .L80056554
|
|
/* 03196C 8005656C 26100002 */ addiu $s0, $s0, 2
|
|
/* 031970 80056570 3C028008 */ lui $v0, 0x8008
|
|
/* 031974 80056574 8C428E54 */ lw $v0, -0x71ac($v0)
|
|
/* 031978 80056578 AC530018 */ sw $s3, 0x18($v0)
|
|
.L8005657C:
|
|
/* 03197C 8005657C 8FBF002C */ lw $ra, 0x2c($sp)
|
|
/* 031980 80056580 8FB60028 */ lw $s6, 0x28($sp)
|
|
/* 031984 80056584 8FB50024 */ lw $s5, 0x24($sp)
|
|
/* 031988 80056588 8FB40020 */ lw $s4, 0x20($sp)
|
|
/* 03198C 8005658C 8FB3001C */ lw $s3, 0x1c($sp)
|
|
/* 031990 80056590 8FB20018 */ lw $s2, 0x18($sp)
|
|
/* 031994 80056594 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 031998 80056598 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 03199C 8005659C 03E00008 */ jr $ra
|
|
/* 0319A0 800565A0 27BD0030 */ addiu $sp, $sp, 0x30
|
|
|
|
/* 0319A4 800565A4 3C038008 */ lui $v1, 0x8008
|
|
/* 0319A8 800565A8 24638E50 */ addiu $v1, $v1, -0x71b0
|
|
/* 0319AC 800565AC 8C620000 */ lw $v0, ($v1)
|
|
/* 0319B0 800565B0 54400001 */ bnel $v0, $zero, .L800565B8
|
|
/* 0319B4 800565B4 AC600000 */ sw $zero, ($v1)
|
|
.L800565B8:
|
|
/* 0319B8 800565B8 03E00008 */ jr $ra
|
|
/* 0319BC 800565BC 00000000 */ nop
|
|
|