mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
156 lines
7.7 KiB
ArmAsm
156 lines
7.7 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
glabel func_80050620
|
||
|
/* 2BA20 80050620 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||
|
/* 2BA24 80050624 AFBF003C */ sw $ra, 0x3c($sp)
|
||
|
/* 2BA28 80050628 AFBE0038 */ sw $fp, 0x38($sp)
|
||
|
/* 2BA2C 8005062C AFB70034 */ sw $s7, 0x34($sp)
|
||
|
/* 2BA30 80050630 AFB60030 */ sw $s6, 0x30($sp)
|
||
|
/* 2BA34 80050634 AFB5002C */ sw $s5, 0x2c($sp)
|
||
|
/* 2BA38 80050638 AFB40028 */ sw $s4, 0x28($sp)
|
||
|
/* 2BA3C 8005063C AFB30024 */ sw $s3, 0x24($sp)
|
||
|
/* 2BA40 80050640 AFB20020 */ sw $s2, 0x20($sp)
|
||
|
/* 2BA44 80050644 AFB1001C */ sw $s1, 0x1c($sp)
|
||
|
/* 2BA48 80050648 AFB00018 */ sw $s0, 0x18($sp)
|
||
|
/* 2BA4C 8005064C 8C820000 */ lw $v0, ($a0)
|
||
|
/* 2BA50 80050650 8C840010 */ lw $a0, 0x10($a0)
|
||
|
/* 2BA54 80050654 0000B82D */ daddu $s7, $zero, $zero
|
||
|
/* 2BA58 80050658 1040006A */ beqz $v0, .L80050804
|
||
|
/* 2BA5C 8005065C AFA40010 */ sw $a0, 0x10($sp)
|
||
|
/* 2BA60 80050660 0C013511 */ jal func_8004D444
|
||
|
/* 2BA64 80050664 0040202D */ daddu $a0, $v0, $zero
|
||
|
/* 2BA68 80050668 0040882D */ daddu $s1, $v0, $zero
|
||
|
/* 2BA6C 8005066C 12200063 */ beqz $s1, .L800507FC
|
||
|
/* 2BA70 80050670 02E0A82D */ daddu $s5, $s7, $zero
|
||
|
/* 2BA74 80050674 241E0001 */ addiu $fp, $zero, 1
|
||
|
/* 2BA78 80050678 3C168008 */ lui $s6, %hi(D_80078524)
|
||
|
/* 2BA7C 8005067C 26D68524 */ addiu $s6, $s6, %lo(D_80078524)
|
||
|
/* 2BA80 80050680 2414025C */ addiu $s4, $zero, 0x25c
|
||
|
.L80050684:
|
||
|
/* 2BA84 80050684 02349021 */ addu $s2, $s1, $s4
|
||
|
/* 2BA88 80050688 8E420000 */ lw $v0, ($s2)
|
||
|
/* 2BA8C 8005068C 50400056 */ beql $v0, $zero, .L800507E8
|
||
|
/* 2BA90 80050690 26B50001 */ addiu $s5, $s5, 1
|
||
|
/* 2BA94 80050694 92420059 */ lbu $v0, 0x59($s2)
|
||
|
/* 2BA98 80050698 10400052 */ beqz $v0, .L800507E4
|
||
|
/* 2BA9C 8005069C 0040182D */ daddu $v1, $v0, $zero
|
||
|
/* 2BAA0 800506A0 00031040 */ sll $v0, $v1, 1
|
||
|
/* 2BAA4 800506A4 00431021 */ addu $v0, $v0, $v1
|
||
|
/* 2BAA8 800506A8 00021140 */ sll $v0, $v0, 5
|
||
|
/* 2BAAC 800506AC 244201FC */ addiu $v0, $v0, 0x1fc
|
||
|
/* 2BAB0 800506B0 8FA70010 */ lw $a3, 0x10($sp)
|
||
|
/* 2BAB4 800506B4 10E00024 */ beqz $a3, .L80050748
|
||
|
/* 2BAB8 800506B8 02229821 */ addu $s3, $s1, $v0
|
||
|
/* 2BABC 800506BC 9242005A */ lbu $v0, 0x5a($s2)
|
||
|
/* 2BAC0 800506C0 50400049 */ beql $v0, $zero, .L800507E8
|
||
|
/* 2BAC4 800506C4 26B50001 */ addiu $s5, $s5, 1
|
||
|
/* 2BAC8 800506C8 A240005A */ sb $zero, 0x5a($s2)
|
||
|
/* 2BACC 800506CC 92650052 */ lbu $a1, 0x52($s3)
|
||
|
/* 2BAD0 800506D0 92620053 */ lbu $v0, 0x53($s3)
|
||
|
/* 2BAD4 800506D4 00A2102A */ slt $v0, $a1, $v0
|
||
|
/* 2BAD8 800506D8 10400014 */ beqz $v0, .L8005072C
|
||
|
/* 2BADC 800506DC A27E005A */ sb $fp, 0x5a($s3)
|
||
|
/* 2BAE0 800506E0 000510C0 */ sll $v0, $a1, 3
|
||
|
/* 2BAE4 800506E4 00451021 */ addu $v0, $v0, $a1
|
||
|
/* 2BAE8 800506E8 000210C0 */ sll $v0, $v0, 3
|
||
|
/* 2BAEC 800506EC 24461320 */ addiu $a2, $v0, 0x1320
|
||
|
.L800506F0:
|
||
|
/* 2BAF0 800506F0 8E220000 */ lw $v0, ($s1)
|
||
|
/* 2BAF4 800506F4 00462021 */ addu $a0, $v0, $a2
|
||
|
/* 2BAF8 800506F8 90830045 */ lbu $v1, 0x45($a0)
|
||
|
/* 2BAFC 800506FC 92220234 */ lbu $v0, 0x234($s1)
|
||
|
/* 2BB00 80050700 14620005 */ bne $v1, $v0, .L80050718
|
||
|
/* 2BB04 80050704 00000000 */ nop
|
||
|
/* 2BB08 80050708 9082003D */ lbu $v0, 0x3d($a0)
|
||
|
/* 2BB0C 8005070C AC960018 */ sw $s6, 0x18($a0)
|
||
|
/* 2BB10 80050710 34420010 */ ori $v0, $v0, 0x10
|
||
|
/* 2BB14 80050714 A082003D */ sb $v0, 0x3d($a0)
|
||
|
.L80050718:
|
||
|
/* 2BB18 80050718 92620053 */ lbu $v0, 0x53($s3)
|
||
|
/* 2BB1C 8005071C 24A50001 */ addiu $a1, $a1, 1
|
||
|
/* 2BB20 80050720 00A2102A */ slt $v0, $a1, $v0
|
||
|
/* 2BB24 80050724 1440FFF2 */ bnez $v0, .L800506F0
|
||
|
/* 2BB28 80050728 24C60048 */ addiu $a2, $a2, 0x48
|
||
|
.L8005072C:
|
||
|
/* 2BB2C 8005072C 0220202D */ daddu $a0, $s1, $zero
|
||
|
/* 2BB30 80050730 82500018 */ lb $s0, 0x18($s2)
|
||
|
/* 2BB34 80050734 0C013ED8 */ jal func_8004FB60
|
||
|
/* 2BB38 80050738 0240282D */ daddu $a1, $s2, $zero
|
||
|
/* 2BB3C 8005073C 0220202D */ daddu $a0, $s1, $zero
|
||
|
/* 2BB40 80050740 080141F4 */ j .L800507D0
|
||
|
/* 2BB44 80050744 0240282D */ daddu $a1, $s2, $zero
|
||
|
.L80050748:
|
||
|
/* 2BB48 80050748 9242005A */ lbu $v0, 0x5a($s2)
|
||
|
/* 2BB4C 8005074C 54400026 */ bnel $v0, $zero, .L800507E8
|
||
|
/* 2BB50 80050750 26B50001 */ addiu $s5, $s5, 1
|
||
|
/* 2BB54 80050754 A25E005A */ sb $fp, 0x5a($s2)
|
||
|
/* 2BB58 80050758 A260005A */ sb $zero, 0x5a($s3)
|
||
|
/* 2BB5C 8005075C 92450052 */ lbu $a1, 0x52($s2)
|
||
|
/* 2BB60 80050760 92420053 */ lbu $v0, 0x53($s2)
|
||
|
/* 2BB64 80050764 00A2102A */ slt $v0, $a1, $v0
|
||
|
/* 2BB68 80050768 10400013 */ beqz $v0, .L800507B8
|
||
|
/* 2BB6C 8005076C 000510C0 */ sll $v0, $a1, 3
|
||
|
/* 2BB70 80050770 00451021 */ addu $v0, $v0, $a1
|
||
|
/* 2BB74 80050774 000210C0 */ sll $v0, $v0, 3
|
||
|
/* 2BB78 80050778 24461320 */ addiu $a2, $v0, 0x1320
|
||
|
.L8005077C:
|
||
|
/* 2BB7C 8005077C 8E220000 */ lw $v0, ($s1)
|
||
|
/* 2BB80 80050780 00462021 */ addu $a0, $v0, $a2
|
||
|
/* 2BB84 80050784 90830045 */ lbu $v1, 0x45($a0)
|
||
|
/* 2BB88 80050788 92220234 */ lbu $v0, 0x234($s1)
|
||
|
/* 2BB8C 8005078C 14620005 */ bne $v1, $v0, .L800507A4
|
||
|
/* 2BB90 80050790 00000000 */ nop
|
||
|
/* 2BB94 80050794 9082003D */ lbu $v0, 0x3d($a0)
|
||
|
/* 2BB98 80050798 AC960018 */ sw $s6, 0x18($a0)
|
||
|
/* 2BB9C 8005079C 34420010 */ ori $v0, $v0, 0x10
|
||
|
/* 2BBA0 800507A0 A082003D */ sb $v0, 0x3d($a0)
|
||
|
.L800507A4:
|
||
|
/* 2BBA4 800507A4 92420053 */ lbu $v0, 0x53($s2)
|
||
|
/* 2BBA8 800507A8 24A50001 */ addiu $a1, $a1, 1
|
||
|
/* 2BBAC 800507AC 00A2102A */ slt $v0, $a1, $v0
|
||
|
/* 2BBB0 800507B0 1440FFF2 */ bnez $v0, .L8005077C
|
||
|
/* 2BBB4 800507B4 24C60048 */ addiu $a2, $a2, 0x48
|
||
|
.L800507B8:
|
||
|
/* 2BBB8 800507B8 0220202D */ daddu $a0, $s1, $zero
|
||
|
/* 2BBBC 800507BC 82700018 */ lb $s0, 0x18($s3)
|
||
|
/* 2BBC0 800507C0 0C013ED8 */ jal func_8004FB60
|
||
|
/* 2BBC4 800507C4 0260282D */ daddu $a1, $s3, $zero
|
||
|
/* 2BBC8 800507C8 0220202D */ daddu $a0, $s1, $zero
|
||
|
/* 2BBCC 800507CC 0260282D */ daddu $a1, $s3, $zero
|
||
|
.L800507D0:
|
||
|
/* 2BBD0 800507D0 24020060 */ addiu $v0, $zero, 0x60
|
||
|
/* 2BBD4 800507D4 A22000D4 */ sb $zero, 0xd4($s1)
|
||
|
/* 2BBD8 800507D8 A62200D4 */ sh $v0, 0xd4($s1)
|
||
|
/* 2BBDC 800507DC 0C013EE0 */ jal func_8004FB80
|
||
|
/* 2BBE0 800507E0 A23000D6 */ sb $s0, 0xd6($s1)
|
||
|
.L800507E4:
|
||
|
/* 2BBE4 800507E4 26B50001 */ addiu $s5, $s5, 1
|
||
|
.L800507E8:
|
||
|
/* 2BBE8 800507E8 2AA20010 */ slti $v0, $s5, 0x10
|
||
|
/* 2BBEC 800507EC 1440FFA5 */ bnez $v0, .L80050684
|
||
|
/* 2BBF0 800507F0 26940060 */ addiu $s4, $s4, 0x60
|
||
|
/* 2BBF4 800507F4 08014203 */ j .L8005080C
|
||
|
/* 2BBF8 800507F8 02E0102D */ daddu $v0, $s7, $zero
|
||
|
.L800507FC:
|
||
|
/* 2BBFC 800507FC 08014202 */ j .L80050808
|
||
|
/* 2BC00 80050800 24170002 */ addiu $s7, $zero, 2
|
||
|
.L80050804:
|
||
|
/* 2BC04 80050804 24170003 */ addiu $s7, $zero, 3
|
||
|
.L80050808:
|
||
|
/* 2BC08 80050808 02E0102D */ daddu $v0, $s7, $zero
|
||
|
.L8005080C:
|
||
|
/* 2BC0C 8005080C 8FBF003C */ lw $ra, 0x3c($sp)
|
||
|
/* 2BC10 80050810 8FBE0038 */ lw $fp, 0x38($sp)
|
||
|
/* 2BC14 80050814 8FB70034 */ lw $s7, 0x34($sp)
|
||
|
/* 2BC18 80050818 8FB60030 */ lw $s6, 0x30($sp)
|
||
|
/* 2BC1C 8005081C 8FB5002C */ lw $s5, 0x2c($sp)
|
||
|
/* 2BC20 80050820 8FB40028 */ lw $s4, 0x28($sp)
|
||
|
/* 2BC24 80050824 8FB30024 */ lw $s3, 0x24($sp)
|
||
|
/* 2BC28 80050828 8FB20020 */ lw $s2, 0x20($sp)
|
||
|
/* 2BC2C 8005082C 8FB1001C */ lw $s1, 0x1c($sp)
|
||
|
/* 2BC30 80050830 8FB00018 */ lw $s0, 0x18($sp)
|
||
|
/* 2BC34 80050834 03E00008 */ jr $ra
|
||
|
/* 2BC38 80050838 27BD0040 */ addiu $sp, $sp, 0x40
|
||
|
/* 2BC3C 8005083C 00000000 */ nop
|