papermario/asm/nonmatchings/code_1b40_len_20b0/func_8002725C.s

274 lines
12 KiB
ArmAsm
Raw Normal View History

2020-07-31 22:38:29 +02:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
2020-08-01 18:55:49 +02:00
glabel func_8002725C
2020-07-31 22:38:29 +02:00
/* 00265C 8002725C 27BDFF88 */ addiu $sp, $sp, -0x78
/* 002660 80027260 0080582D */ daddu $t3, $a0, $zero
/* 002664 80027264 AFA5007C */ sw $a1, 0x7c($sp)
/* 002668 80027268 0000282D */ daddu $a1, $zero, $zero
/* 00266C 8002726C 27A90018 */ addiu $t1, $sp, 0x18
/* 002670 80027270 27A80038 */ addiu $t0, $sp, 0x38
/* 002674 80027274 27A70058 */ addiu $a3, $sp, 0x58
/* 002678 80027278 8BAC007C */ lwl $t4, 0x7c($sp)
/* 00267C 8002727C 9BAC007F */ lwr $t4, 0x7f($sp)
/* 002680 80027280 ABAC0008 */ swl $t4, 8($sp)
/* 002684 80027284 BBAC000B */ swr $t4, 0xb($sp)
/* 002688 80027288 8BAC007C */ lwl $t4, 0x7c($sp)
/* 00268C 8002728C 9BAC007F */ lwr $t4, 0x7f($sp)
/* 002690 80027290 ABAC0000 */ swl $t4, ($sp)
/* 002694 80027294 BBAC0003 */ swr $t4, 3($sp)
.L80027298:
/* 002698 80027298 01251021 */ addu $v0, $t1, $a1
/* 00269C 8002729C 01051821 */ addu $v1, $t0, $a1
/* 0026A0 800272A0 00E52021 */ addu $a0, $a3, $a1
/* 0026A4 800272A4 24A50001 */ addiu $a1, $a1, 1
/* 0026A8 800272A8 A0400000 */ sb $zero, ($v0)
/* 0026AC 800272AC 28A20020 */ slti $v0, $a1, 0x20
/* 0026B0 800272B0 A0600000 */ sb $zero, ($v1)
/* 0026B4 800272B4 1440FFF8 */ bnez $v0, .L80027298
/* 0026B8 800272B8 A0800000 */ sb $zero, ($a0)
/* 0026BC 800272BC 0000282D */ daddu $a1, $zero, $zero
/* 0026C0 800272C0 240A0008 */ addiu $t2, $zero, 8
/* 0026C4 800272C4 27A90018 */ addiu $t1, $sp, 0x18
/* 0026C8 800272C8 27A80038 */ addiu $t0, $sp, 0x38
/* 0026CC 800272CC 27A70058 */ addiu $a3, $sp, 0x58
/* 0026D0 800272D0 0160202D */ daddu $a0, $t3, $zero
.L800272D4:
/* 0026D4 800272D4 90820003 */ lbu $v0, 3($a0)
/* 0026D8 800272D8 144A0010 */ bne $v0, $t2, .L8002731C
/* 0026DC 800272DC 24A50001 */ addiu $a1, $a1, 1
/* 0026E0 800272E0 90830000 */ lbu $v1, ($a0)
/* 0026E4 800272E4 01231821 */ addu $v1, $t1, $v1
/* 0026E8 800272E8 90620000 */ lbu $v0, ($v1)
/* 0026EC 800272EC 24420001 */ addiu $v0, $v0, 1
/* 0026F0 800272F0 A0620000 */ sb $v0, ($v1)
/* 0026F4 800272F4 90830001 */ lbu $v1, 1($a0)
/* 0026F8 800272F8 01031821 */ addu $v1, $t0, $v1
/* 0026FC 800272FC 90620000 */ lbu $v0, ($v1)
/* 002700 80027300 24420001 */ addiu $v0, $v0, 1
/* 002704 80027304 A0620000 */ sb $v0, ($v1)
/* 002708 80027308 90830002 */ lbu $v1, 2($a0)
/* 00270C 8002730C 00E31821 */ addu $v1, $a3, $v1
/* 002710 80027310 90620000 */ lbu $v0, ($v1)
/* 002714 80027314 24420001 */ addiu $v0, $v0, 1
/* 002718 80027318 A0620000 */ sb $v0, ($v1)
.L8002731C:
/* 00271C 8002731C 28A20006 */ slti $v0, $a1, 6
/* 002720 80027320 1440FFEC */ bnez $v0, .L800272D4
/* 002724 80027324 24840004 */ addiu $a0, $a0, 4
/* 002728 80027328 0000282D */ daddu $a1, $zero, $zero
/* 00272C 8002732C 27A40018 */ addiu $a0, $sp, 0x18
/* 002730 80027330 00851821 */ addu $v1, $a0, $a1
.L80027334:
/* 002734 80027334 90620000 */ lbu $v0, ($v1)
/* 002738 80027338 50400004 */ beql $v0, $zero, .L8002734C
/* 00273C 8002733C 24A50001 */ addiu $a1, $a1, 1
/* 002740 80027340 2442FFFF */ addiu $v0, $v0, -1
/* 002744 80027344 08009CD6 */ j .L80027358
/* 002748 80027348 A0620000 */ sb $v0, ($v1)
.L8002734C:
/* 00274C 8002734C 28A20020 */ slti $v0, $a1, 0x20
/* 002750 80027350 1440FFF8 */ bnez $v0, .L80027334
/* 002754 80027354 00851821 */ addu $v1, $a0, $a1
.L80027358:
/* 002758 80027358 28A20020 */ slti $v0, $a1, 0x20
/* 00275C 8002735C 10400009 */ beqz $v0, .L80027384
/* 002760 80027360 27A30018 */ addiu $v1, $sp, 0x18
/* 002764 80027364 00651021 */ addu $v0, $v1, $a1
.L80027368:
/* 002768 80027368 90420000 */ lbu $v0, ($v0)
/* 00276C 8002736C 14400005 */ bnez $v0, .L80027384
/* 002770 80027370 00000000 */ nop
/* 002774 80027374 24A50001 */ addiu $a1, $a1, 1
/* 002778 80027378 28A20020 */ slti $v0, $a1, 0x20
/* 00277C 8002737C 1440FFFA */ bnez $v0, .L80027368
/* 002780 80027380 00651021 */ addu $v0, $v1, $a1
.L80027384:
/* 002784 80027384 93A20000 */ lbu $v0, ($sp)
/* 002788 80027388 00A2102A */ slt $v0, $a1, $v0
/* 00278C 8002738C 54400001 */ bnel $v0, $zero, .L80027394
/* 002790 80027390 A3A50000 */ sb $a1, ($sp)
.L80027394:
/* 002794 80027394 0000282D */ daddu $a1, $zero, $zero
/* 002798 80027398 27A40038 */ addiu $a0, $sp, 0x38
/* 00279C 8002739C 00851821 */ addu $v1, $a0, $a1
.L800273A0:
/* 0027A0 800273A0 90620000 */ lbu $v0, ($v1)
/* 0027A4 800273A4 50400004 */ beql $v0, $zero, .L800273B8
/* 0027A8 800273A8 24A50001 */ addiu $a1, $a1, 1
/* 0027AC 800273AC 2442FFFF */ addiu $v0, $v0, -1
/* 0027B0 800273B0 08009CF1 */ j .L800273C4
/* 0027B4 800273B4 A0620000 */ sb $v0, ($v1)
.L800273B8:
/* 0027B8 800273B8 28A20020 */ slti $v0, $a1, 0x20
/* 0027BC 800273BC 1440FFF8 */ bnez $v0, .L800273A0
/* 0027C0 800273C0 00851821 */ addu $v1, $a0, $a1
.L800273C4:
/* 0027C4 800273C4 28A20020 */ slti $v0, $a1, 0x20
/* 0027C8 800273C8 10400009 */ beqz $v0, .L800273F0
/* 0027CC 800273CC 27A30038 */ addiu $v1, $sp, 0x38
/* 0027D0 800273D0 00651021 */ addu $v0, $v1, $a1
.L800273D4:
/* 0027D4 800273D4 90420000 */ lbu $v0, ($v0)
/* 0027D8 800273D8 14400005 */ bnez $v0, .L800273F0
/* 0027DC 800273DC 00000000 */ nop
/* 0027E0 800273E0 24A50001 */ addiu $a1, $a1, 1
/* 0027E4 800273E4 28A20020 */ slti $v0, $a1, 0x20
/* 0027E8 800273E8 1440FFFA */ bnez $v0, .L800273D4
/* 0027EC 800273EC 00651021 */ addu $v0, $v1, $a1
.L800273F0:
/* 0027F0 800273F0 93A20001 */ lbu $v0, 1($sp)
/* 0027F4 800273F4 00A2102A */ slt $v0, $a1, $v0
/* 0027F8 800273F8 54400001 */ bnel $v0, $zero, .L80027400
/* 0027FC 800273FC A3A50001 */ sb $a1, 1($sp)
.L80027400:
/* 002800 80027400 0000282D */ daddu $a1, $zero, $zero
/* 002804 80027404 27A40058 */ addiu $a0, $sp, 0x58
/* 002808 80027408 00851821 */ addu $v1, $a0, $a1
.L8002740C:
/* 00280C 8002740C 90620000 */ lbu $v0, ($v1)
/* 002810 80027410 50400004 */ beql $v0, $zero, .L80027424
/* 002814 80027414 24A50001 */ addiu $a1, $a1, 1
/* 002818 80027418 2442FFFF */ addiu $v0, $v0, -1
/* 00281C 8002741C 08009D0C */ j .L80027430
/* 002820 80027420 A0620000 */ sb $v0, ($v1)
.L80027424:
/* 002824 80027424 28A20020 */ slti $v0, $a1, 0x20
/* 002828 80027428 1440FFF8 */ bnez $v0, .L8002740C
/* 00282C 8002742C 00851821 */ addu $v1, $a0, $a1
.L80027430:
/* 002830 80027430 28A20020 */ slti $v0, $a1, 0x20
/* 002834 80027434 10400009 */ beqz $v0, .L8002745C
/* 002838 80027438 27A30058 */ addiu $v1, $sp, 0x58
/* 00283C 8002743C 00651021 */ addu $v0, $v1, $a1
.L80027440:
/* 002840 80027440 90420000 */ lbu $v0, ($v0)
/* 002844 80027444 14400005 */ bnez $v0, .L8002745C
/* 002848 80027448 00000000 */ nop
/* 00284C 8002744C 24A50001 */ addiu $a1, $a1, 1
/* 002850 80027450 28A20020 */ slti $v0, $a1, 0x20
/* 002854 80027454 1440FFFA */ bnez $v0, .L80027440
/* 002858 80027458 00651021 */ addu $v0, $v1, $a1
.L8002745C:
/* 00285C 8002745C 93A20002 */ lbu $v0, 2($sp)
/* 002860 80027460 00A2102A */ slt $v0, $a1, $v0
/* 002864 80027464 54400001 */ bnel $v0, $zero, .L8002746C
/* 002868 80027468 A3A50002 */ sb $a1, 2($sp)
.L8002746C:
/* 00286C 8002746C 2405001F */ addiu $a1, $zero, 0x1f
/* 002870 80027470 27A30018 */ addiu $v1, $sp, 0x18
/* 002874 80027474 00651021 */ addu $v0, $v1, $a1
.L80027478:
/* 002878 80027478 90420000 */ lbu $v0, ($v0)
/* 00287C 8002747C 14400004 */ bnez $v0, .L80027490
/* 002880 80027480 00000000 */ nop
/* 002884 80027484 24A5FFFF */ addiu $a1, $a1, -1
/* 002888 80027488 04A1FFFB */ bgez $a1, .L80027478
/* 00288C 8002748C 00651021 */ addu $v0, $v1, $a1
.L80027490:
/* 002890 80027490 93A20008 */ lbu $v0, 8($sp)
/* 002894 80027494 0045102A */ slt $v0, $v0, $a1
/* 002898 80027498 54400001 */ bnel $v0, $zero, .L800274A0
/* 00289C 8002749C A3A50008 */ sb $a1, 8($sp)
.L800274A0:
/* 0028A0 800274A0 2405001F */ addiu $a1, $zero, 0x1f
/* 0028A4 800274A4 27A30038 */ addiu $v1, $sp, 0x38
/* 0028A8 800274A8 00651021 */ addu $v0, $v1, $a1
.L800274AC:
/* 0028AC 800274AC 90420000 */ lbu $v0, ($v0)
/* 0028B0 800274B0 14400004 */ bnez $v0, .L800274C4
/* 0028B4 800274B4 00000000 */ nop
/* 0028B8 800274B8 24A5FFFF */ addiu $a1, $a1, -1
/* 0028BC 800274BC 04A1FFFB */ bgez $a1, .L800274AC
/* 0028C0 800274C0 00651021 */ addu $v0, $v1, $a1
.L800274C4:
/* 0028C4 800274C4 93A20009 */ lbu $v0, 9($sp)
/* 0028C8 800274C8 0045102A */ slt $v0, $v0, $a1
/* 0028CC 800274CC 54400001 */ bnel $v0, $zero, .L800274D4
/* 0028D0 800274D0 A3A50009 */ sb $a1, 9($sp)
.L800274D4:
/* 0028D4 800274D4 2405001F */ addiu $a1, $zero, 0x1f
/* 0028D8 800274D8 27A30058 */ addiu $v1, $sp, 0x58
/* 0028DC 800274DC 00651021 */ addu $v0, $v1, $a1
.L800274E0:
/* 0028E0 800274E0 90420000 */ lbu $v0, ($v0)
/* 0028E4 800274E4 14400004 */ bnez $v0, .L800274F8
/* 0028E8 800274E8 00000000 */ nop
/* 0028EC 800274EC 24A5FFFF */ addiu $a1, $a1, -1
/* 0028F0 800274F0 04A1FFFB */ bgez $a1, .L800274E0
/* 0028F4 800274F4 00651021 */ addu $v0, $v1, $a1
.L800274F8:
/* 0028F8 800274F8 93A2000A */ lbu $v0, 0xa($sp)
/* 0028FC 800274FC 0045102A */ slt $v0, $v0, $a1
/* 002900 80027500 54400001 */ bnel $v0, $zero, .L80027508
/* 002904 80027504 A3A5000A */ sb $a1, 0xa($sp)
.L80027508:
/* 002908 80027508 93A20008 */ lbu $v0, 8($sp)
/* 00290C 8002750C 93A30000 */ lbu $v1, ($sp)
/* 002910 80027510 93A4007C */ lbu $a0, 0x7c($sp)
/* 002914 80027514 00431021 */ addu $v0, $v0, $v1
/* 002918 80027518 00441023 */ subu $v0, $v0, $a0
/* 00291C 8002751C A3A20010 */ sb $v0, 0x10($sp)
/* 002920 80027520 93A20009 */ lbu $v0, 9($sp)
/* 002924 80027524 93A30001 */ lbu $v1, 1($sp)
/* 002928 80027528 93A4007D */ lbu $a0, 0x7d($sp)
/* 00292C 8002752C 00431021 */ addu $v0, $v0, $v1
/* 002930 80027530 00441023 */ subu $v0, $v0, $a0
/* 002934 80027534 A3A20011 */ sb $v0, 0x11($sp)
/* 002938 80027538 93A2000A */ lbu $v0, 0xa($sp)
/* 00293C 8002753C 93A30002 */ lbu $v1, 2($sp)
/* 002940 80027540 93A4007E */ lbu $a0, 0x7e($sp)
/* 002944 80027544 00431021 */ addu $v0, $v0, $v1
/* 002948 80027548 00441023 */ subu $v0, $v0, $a0
/* 00294C 8002754C A3A20012 */ sb $v0, 0x12($sp)
/* 002950 80027550 93A2007C */ lbu $v0, 0x7c($sp)
/* 002954 80027554 93A4007F */ lbu $a0, 0x7f($sp)
/* 002958 80027558 00440018 */ mult $v0, $a0
/* 00295C 8002755C 24030008 */ addiu $v1, $zero, 8
/* 002960 80027560 00002812 */ mflo $a1
/* 002964 80027564 93A20010 */ lbu $v0, 0x10($sp)
/* 002968 80027568 00641823 */ subu $v1, $v1, $a0
/* 00296C 8002756C 00430018 */ mult $v0, $v1
/* 002970 80027570 00001012 */ mflo $v0
/* 002974 80027574 00A21021 */ addu $v0, $a1, $v0
/* 002978 80027578 000210C3 */ sra $v0, $v0, 3
/* 00297C 8002757C A3A20010 */ sb $v0, 0x10($sp)
/* 002980 80027580 93A2007D */ lbu $v0, 0x7d($sp)
/* 002984 80027584 00440018 */ mult $v0, $a0
/* 002988 80027588 00002812 */ mflo $a1
/* 00298C 8002758C 93A20011 */ lbu $v0, 0x11($sp)
/* 002990 80027590 00000000 */ nop
/* 002994 80027594 00430018 */ mult $v0, $v1
/* 002998 80027598 00001012 */ mflo $v0
/* 00299C 8002759C 00A21021 */ addu $v0, $a1, $v0
/* 0029A0 800275A0 000210C3 */ sra $v0, $v0, 3
/* 0029A4 800275A4 A3A20011 */ sb $v0, 0x11($sp)
/* 0029A8 800275A8 93A2007E */ lbu $v0, 0x7e($sp)
/* 0029AC 800275AC 00440018 */ mult $v0, $a0
/* 0029B0 800275B0 00002012 */ mflo $a0
/* 0029B4 800275B4 93A20012 */ lbu $v0, 0x12($sp)
/* 0029B8 800275B8 00000000 */ nop
/* 0029BC 800275BC 00430018 */ mult $v0, $v1
/* 0029C0 800275C0 00001012 */ mflo $v0
/* 0029C4 800275C4 00821021 */ addu $v0, $a0, $v0
/* 0029C8 800275C8 000210C3 */ sra $v0, $v0, 3
/* 0029CC 800275CC A3A20012 */ sb $v0, 0x12($sp)
/* 0029D0 800275D0 93A20010 */ lbu $v0, 0x10($sp)
/* 0029D4 800275D4 93A40011 */ lbu $a0, 0x11($sp)
/* 0029D8 800275D8 93A30012 */ lbu $v1, 0x12($sp)
/* 0029DC 800275DC 000212C0 */ sll $v0, $v0, 0xb
/* 0029E0 800275E0 00042180 */ sll $a0, $a0, 6
/* 0029E4 800275E4 00441021 */ addu $v0, $v0, $a0
/* 0029E8 800275E8 00031840 */ sll $v1, $v1, 1
/* 0029EC 800275EC 00431021 */ addu $v0, $v0, $v1
/* 0029F0 800275F0 24420001 */ addiu $v0, $v0, 1
/* 0029F4 800275F4 A4C20000 */ sh $v0, ($a2)
/* 0029F8 800275F8 03E00008 */ jr $ra
/* 0029FC 800275FC 27BD0078 */ addiu $sp, $sp, 0x78
2020-08-06 06:11:15 +02:00