.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, 0x8008 /* 31660 80056260 24638E50 */ addiu $v1, $v1, -0x71b0 /* 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, 0x8008 /* 316B8 800562B8 26108E54 */ addiu $s0, $s0, -0x71ac /* 316BC 800562BC AE070000 */ sw $a3, ($s0) /* 316C0 800562C0 3C018008 */ lui $at, 0x8008 /* 316C4 800562C4 A0208E58 */ sb $zero, -0x71a8($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, 0x8008 /* 316D8 800562D8 A4228E5A */ sh $v0, -0x71a6($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, 0x8008 /* 316EC 800562EC A0228E5C */ sb $v0, -0x71a4($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, 0x8008 /* 31828 80056428 8C638E54 */ lw $v1, -0x71ac($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, 0x8008 /* 31850 80056450 8C428E54 */ lw $v0, -0x71ac($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, 0x8008 /* 318E0 800564E0 26108E54 */ addiu $s0, $s0, -0x71ac /* 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, 0x800a /* 31904 80056504 A0203FEC */ sb $zero, 0x3fec($at) /* 31908 80056508 3C01800A */ lui $at, 0x800a /* 3190C 8005650C A4203FEE */ sh $zero, 0x3fee($at) /* 31910 80056510 8E070000 */ lw $a3, ($s0) /* 31914 80056514 24030004 */ addiu $v1, $zero, 4 /* 31918 80056518 3C01800A */ lui $at, 0x800a /* 3191C 8005651C AC233FF0 */ sw $v1, 0x3ff0($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, 0x800a /* 31938 80056538 26103FE0 */ addiu $s0, $s0, 0x3fe0 /* 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, 0x800a /* 31950 80056550 AC233FE4 */ sw $v1, 0x3fe4($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, 0x8008 /* 31974 80056574 8C428E54 */ lw $v0, -0x71ac($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