mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
297 lines
13 KiB
ArmAsm
297 lines
13 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_800E5530
|
|
/* 07E9E0 800E5530 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 07E9E4 800E5534 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 07E9E8 800E5538 AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 07E9EC 800E553C 3C118011 */ lui $s1, 0x8011
|
|
/* 07E9F0 800E5540 2631EBB0 */ addiu $s1, $s1, -0x1450
|
|
/* 07E9F4 800E5544 3C038007 */ lui $v1, 0x8007
|
|
/* 07E9F8 800E5548 8C63419C */ lw $v1, 0x419c($v1)
|
|
/* 07E9FC 800E554C 3C058011 */ lui $a1, 0x8011
|
|
/* 07EA00 800E5550 24A5EFC8 */ addiu $a1, $a1, -0x1038
|
|
/* 07EA04 800E5554 AFBF0018 */ sw $ra, 0x18($sp)
|
|
/* 07EA08 800E5558 84640086 */ lh $a0, 0x86($v1)
|
|
/* 07EA0C 800E555C 2402000B */ addiu $v0, $zero, 0xb
|
|
/* 07EA10 800E5560 10820008 */ beq $a0, $v0, .L800E5584
|
|
/* 07EA14 800E5564 24100001 */ addiu $s0, $zero, 1
|
|
/* 07EA18 800E5568 2402000D */ addiu $v0, $zero, 0xd
|
|
/* 07EA1C 800E556C 148200B5 */ bne $a0, $v0, .L800E5844
|
|
/* 07EA20 800E5570 24020001 */ addiu $v0, $zero, 1
|
|
/* 07EA24 800E5574 8462008C */ lh $v0, 0x8c($v1)
|
|
/* 07EA28 800E5578 38420004 */ xori $v0, $v0, 4
|
|
/* 07EA2C 800E557C 08039610 */ j .L800E5840
|
|
/* 07EA30 800E5580 0002802B */ sltu $s0, $zero, $v0
|
|
|
|
.L800E5584:
|
|
/* 07EA34 800E5584 8463008C */ lh $v1, 0x8c($v1)
|
|
/* 07EA38 800E5588 2C62000C */ sltiu $v0, $v1, 0xc
|
|
/* 07EA3C 800E558C 104000AC */ beqz $v0, .L800E5840
|
|
/* 07EA40 800E5590 00031080 */ sll $v0, $v1, 2
|
|
/* 07EA44 800E5594 3C018011 */ lui $at, 0x8011
|
|
/* 07EA48 800E5598 00220821 */ addu $at, $at, $v0
|
|
/* 07EA4C 800E559C 8C22BF00 */ lw $v0, -0x4100($at)
|
|
/* 07EA50 800E55A0 00400008 */ jr $v0
|
|
/* 07EA54 800E55A4 00000000 */ nop
|
|
/* 07EA58 800E55A8 3C038011 */ lui $v1, 0x8011
|
|
/* 07EA5C 800E55AC 2463C9B0 */ addiu $v1, $v1, -0x3650
|
|
/* 07EA60 800E55B0 84620000 */ lh $v0, ($v1)
|
|
/* 07EA64 800E55B4 1440000A */ bnez $v0, .L800E55E0
|
|
/* 07EA68 800E55B8 00000000 */ nop
|
|
/* 07EA6C 800E55BC C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EA70 800E55C0 44800000 */ mtc1 $zero, $f0
|
|
/* 07EA74 800E55C4 00000000 */ nop
|
|
/* 07EA78 800E55C8 4600103E */ c.le.s $f2, $f0
|
|
/* 07EA7C 800E55CC 00000000 */ nop
|
|
/* 07EA80 800E55D0 4500009A */ bc1f .L800E583C
|
|
/* 07EA84 800E55D4 24020001 */ addiu $v0, $zero, 1
|
|
/* 07EA88 800E55D8 0803960F */ j .L800E583C
|
|
/* 07EA8C 800E55DC A4620000 */ sh $v0, ($v1)
|
|
|
|
.L800E55E0:
|
|
/* 07EA90 800E55E0 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EA94 800E55E4 44800000 */ mtc1 $zero, $f0
|
|
/* 07EA98 800E55E8 080395E6 */ j .L800E5798
|
|
/* 07EA9C 800E55EC 00000000 */ nop
|
|
|
|
/* 07EAA0 800E55F0 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EAA4 800E55F4 3C0141C8 */ lui $at, 0x41c8
|
|
/* 07EAA8 800E55F8 44810000 */ mtc1 $at, $f0
|
|
/* 07EAAC 800E55FC 080395E6 */ j .L800E5798
|
|
/* 07EAB0 800E5600 00000000 */ nop
|
|
|
|
/* 07EAB4 800E5604 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EAB8 800E5608 3C014248 */ lui $at, 0x4248
|
|
/* 07EABC 800E560C 44810000 */ mtc1 $at, $f0
|
|
/* 07EAC0 800E5610 080395E6 */ j .L800E5798
|
|
/* 07EAC4 800E5614 00000000 */ nop
|
|
|
|
/* 07EAC8 800E5618 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EACC 800E561C 3C01C3C3 */ lui $at, 0xc3c3
|
|
/* 07EAD0 800E5620 44810000 */ mtc1 $at, $f0
|
|
/* 07EAD4 800E5624 00000000 */ nop
|
|
/* 07EAD8 800E5628 4602003C */ c.lt.s $f0, $f2
|
|
/* 07EADC 800E562C 00000000 */ nop
|
|
/* 07EAE0 800E5630 45030083 */ bc1tl .L800E5840
|
|
/* 07EAE4 800E5634 0000802D */ daddu $s0, $zero, $zero
|
|
/* 07EAE8 800E5638 3C01C3F7 */ lui $at, 0xc3f7
|
|
/* 07EAEC 800E563C 34218000 */ ori $at, $at, 0x8000
|
|
/* 07EAF0 800E5640 44810000 */ mtc1 $at, $f0
|
|
/* 07EAF4 800E5644 00000000 */ nop
|
|
/* 07EAF8 800E5648 4600103C */ c.lt.s $f2, $f0
|
|
/* 07EAFC 800E564C 080395E8 */ j .L800E57A0
|
|
/* 07EB00 800E5650 00000000 */ nop
|
|
|
|
/* 07EB04 800E5654 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EB08 800E5658 3C01C2B4 */ lui $at, 0xc2b4
|
|
/* 07EB0C 800E565C 44810000 */ mtc1 $at, $f0
|
|
/* 07EB10 800E5660 00000000 */ nop
|
|
/* 07EB14 800E5664 4602003C */ c.lt.s $f0, $f2
|
|
/* 07EB18 800E5668 00000000 */ nop
|
|
/* 07EB1C 800E566C 45030074 */ bc1tl .L800E5840
|
|
/* 07EB20 800E5670 0000802D */ daddu $s0, $zero, $zero
|
|
/* 07EB24 800E5674 3C01C3B9 */ lui $at, 0xc3b9
|
|
/* 07EB28 800E5678 44810000 */ mtc1 $at, $f0
|
|
/* 07EB2C 800E567C 00000000 */ nop
|
|
/* 07EB30 800E5680 4600103C */ c.lt.s $f2, $f0
|
|
/* 07EB34 800E5684 080395E8 */ j .L800E57A0
|
|
/* 07EB38 800E5688 00000000 */ nop
|
|
|
|
/* 07EB3C 800E568C 3C028007 */ lui $v0, 0x8007
|
|
/* 07EB40 800E5690 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 07EB44 800E5694 8442008E */ lh $v0, 0x8e($v0)
|
|
/* 07EB48 800E5698 54400069 */ bnezl $v0, .L800E5840
|
|
/* 07EB4C 800E569C 24100002 */ addiu $s0, $zero, 2
|
|
/* 07EB50 800E56A0 3C038011 */ lui $v1, 0x8011
|
|
/* 07EB54 800E56A4 2463C9B0 */ addiu $v1, $v1, -0x3650
|
|
/* 07EB58 800E56A8 84620000 */ lh $v0, ($v1)
|
|
/* 07EB5C 800E56AC 1440000A */ bnez $v0, .L800E56D8
|
|
/* 07EB60 800E56B0 00000000 */ nop
|
|
/* 07EB64 800E56B4 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EB68 800E56B8 44800000 */ mtc1 $zero, $f0
|
|
/* 07EB6C 800E56BC 00000000 */ nop
|
|
/* 07EB70 800E56C0 4602003C */ c.lt.s $f0, $f2
|
|
/* 07EB74 800E56C4 00000000 */ nop
|
|
/* 07EB78 800E56C8 4503005D */ bc1tl .L800E5840
|
|
/* 07EB7C 800E56CC 24100002 */ addiu $s0, $zero, 2
|
|
/* 07EB80 800E56D0 24020001 */ addiu $v0, $zero, 1
|
|
/* 07EB84 800E56D4 A4620000 */ sh $v0, ($v1)
|
|
.L800E56D8:
|
|
/* 07EB88 800E56D8 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EB8C 800E56DC 44800000 */ mtc1 $zero, $f0
|
|
/* 07EB90 800E56E0 080395E6 */ j .L800E5798
|
|
/* 07EB94 800E56E4 00000000 */ nop
|
|
|
|
/* 07EB98 800E56E8 3C028007 */ lui $v0, 0x8007
|
|
/* 07EB9C 800E56EC 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 07EBA0 800E56F0 8442008E */ lh $v0, 0x8e($v0)
|
|
/* 07EBA4 800E56F4 54400052 */ bnezl $v0, .L800E5840
|
|
/* 07EBA8 800E56F8 24100002 */ addiu $s0, $zero, 2
|
|
/* 07EBAC 800E56FC 3C038011 */ lui $v1, 0x8011
|
|
/* 07EBB0 800E5700 2463C9B0 */ addiu $v1, $v1, -0x3650
|
|
/* 07EBB4 800E5704 84620000 */ lh $v0, ($v1)
|
|
/* 07EBB8 800E5708 1440000B */ bnez $v0, .L800E5738
|
|
/* 07EBBC 800E570C 00000000 */ nop
|
|
/* 07EBC0 800E5710 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EBC4 800E5714 3C01C302 */ lui $at, 0xc302
|
|
/* 07EBC8 800E5718 44810000 */ mtc1 $at, $f0
|
|
/* 07EBCC 800E571C 00000000 */ nop
|
|
/* 07EBD0 800E5720 4602003C */ c.lt.s $f0, $f2
|
|
/* 07EBD4 800E5724 00000000 */ nop
|
|
/* 07EBD8 800E5728 45030045 */ bc1tl .L800E5840
|
|
/* 07EBDC 800E572C 24100002 */ addiu $s0, $zero, 2
|
|
/* 07EBE0 800E5730 24020001 */ addiu $v0, $zero, 1
|
|
/* 07EBE4 800E5734 A4620000 */ sh $v0, ($v1)
|
|
.L800E5738:
|
|
/* 07EBE8 800E5738 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EBEC 800E573C 3C01C302 */ lui $at, 0xc302
|
|
/* 07EBF0 800E5740 44810000 */ mtc1 $at, $f0
|
|
/* 07EBF4 800E5744 080395E6 */ j .L800E5798
|
|
/* 07EBF8 800E5748 00000000 */ nop
|
|
|
|
/* 07EBFC 800E574C 3C038011 */ lui $v1, 0x8011
|
|
/* 07EC00 800E5750 2463C9B0 */ addiu $v1, $v1, -0x3650
|
|
/* 07EC04 800E5754 84620000 */ lh $v0, ($v1)
|
|
/* 07EC08 800E5758 1440000B */ bnez $v0, .L800E5788
|
|
/* 07EC0C 800E575C 00000000 */ nop
|
|
/* 07EC10 800E5760 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EC14 800E5764 3C01C402 */ lui $at, 0xc402
|
|
/* 07EC18 800E5768 44810000 */ mtc1 $at, $f0
|
|
/* 07EC1C 800E576C 00000000 */ nop
|
|
/* 07EC20 800E5770 4602003C */ c.lt.s $f0, $f2
|
|
/* 07EC24 800E5774 00000000 */ nop
|
|
/* 07EC28 800E5778 45030031 */ bc1tl .L800E5840
|
|
/* 07EC2C 800E577C 24100002 */ addiu $s0, $zero, 2
|
|
/* 07EC30 800E5780 24020001 */ addiu $v0, $zero, 1
|
|
/* 07EC34 800E5784 A4620000 */ sh $v0, ($v1)
|
|
.L800E5788:
|
|
/* 07EC38 800E5788 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EC3C 800E578C 3C01C402 */ lui $at, 0xc402
|
|
/* 07EC40 800E5790 44810000 */ mtc1 $at, $f0
|
|
/* 07EC44 800E5794 00000000 */ nop
|
|
.L800E5798:
|
|
/* 07EC48 800E5798 4602003C */ c.lt.s $f0, $f2
|
|
/* 07EC4C 800E579C 00000000 */ nop
|
|
.L800E57A0:
|
|
/* 07EC50 800E57A0 45000028 */ bc1f .L800E5844
|
|
/* 07EC54 800E57A4 24020001 */ addiu $v0, $zero, 1
|
|
/* 07EC58 800E57A8 08039611 */ j .L800E5844
|
|
/* 07EC5C 800E57AC 0000802D */ daddu $s0, $zero, $zero
|
|
|
|
/* 07EC60 800E57B0 3C028007 */ lui $v0, 0x8007
|
|
/* 07EC64 800E57B4 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 07EC68 800E57B8 8442008E */ lh $v0, 0x8e($v0)
|
|
/* 07EC6C 800E57BC 14400019 */ bnez $v0, .L800E5824
|
|
/* 07EC70 800E57C0 0000202D */ daddu $a0, $zero, $zero
|
|
/* 07EC74 800E57C4 3C038011 */ lui $v1, 0x8011
|
|
/* 07EC78 800E57C8 2463C9B0 */ addiu $v1, $v1, -0x3650
|
|
/* 07EC7C 800E57CC 84620000 */ lh $v0, ($v1)
|
|
/* 07EC80 800E57D0 1440000B */ bnez $v0, .L800E5800
|
|
/* 07EC84 800E57D4 00000000 */ nop
|
|
/* 07EC88 800E57D8 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07EC8C 800E57DC 3C01C402 */ lui $at, 0xc402
|
|
/* 07EC90 800E57E0 44810000 */ mtc1 $at, $f0
|
|
/* 07EC94 800E57E4 00000000 */ nop
|
|
/* 07EC98 800E57E8 4602003C */ c.lt.s $f0, $f2
|
|
/* 07EC9C 800E57EC 00000000 */ nop
|
|
/* 07ECA0 800E57F0 45030013 */ bc1tl .L800E5840
|
|
/* 07ECA4 800E57F4 24100002 */ addiu $s0, $zero, 2
|
|
/* 07ECA8 800E57F8 24020001 */ addiu $v0, $zero, 1
|
|
/* 07ECAC 800E57FC A4620000 */ sh $v0, ($v1)
|
|
.L800E5800:
|
|
/* 07ECB0 800E5800 C4A2002C */ lwc1 $f2, 0x2c($a1)
|
|
/* 07ECB4 800E5804 3C01C402 */ lui $at, 0xc402
|
|
/* 07ECB8 800E5808 44810000 */ mtc1 $at, $f0
|
|
/* 07ECBC 800E580C 00000000 */ nop
|
|
/* 07ECC0 800E5810 4602003C */ c.lt.s $f0, $f2
|
|
/* 07ECC4 800E5814 00000000 */ nop
|
|
/* 07ECC8 800E5818 45030001 */ bc1tl .L800E5820
|
|
/* 07ECCC 800E581C 0000802D */ daddu $s0, $zero, $zero
|
|
.L800E5820:
|
|
/* 07ECD0 800E5820 0000202D */ daddu $a0, $zero, $zero
|
|
.L800E5824:
|
|
/* 07ECD4 800E5824 3C05F5DE */ lui $a1, 0xf5de
|
|
/* 07ECD8 800E5828 0C0B1EAF */ jal get_variable
|
|
/* 07ECDC 800E582C 34A50180 */ ori $a1, $a1, 0x180
|
|
/* 07ECE0 800E5830 2842FFC6 */ slti $v0, $v0, -0x3a
|
|
/* 07ECE4 800E5834 14400003 */ bnez $v0, .L800E5844
|
|
/* 07ECE8 800E5838 24020001 */ addiu $v0, $zero, 1
|
|
.L800E583C:
|
|
/* 07ECEC 800E583C 24100002 */ addiu $s0, $zero, 2
|
|
.L800E5840:
|
|
/* 07ECF0 800E5840 24020001 */ addiu $v0, $zero, 1
|
|
.L800E5844:
|
|
/* 07ECF4 800E5844 16020014 */ bne $s0, $v0, .L800E5898
|
|
/* 07ECF8 800E5848 00000000 */ nop
|
|
/* 07ECFC 800E584C 3C048016 */ lui $a0, 0x8016
|
|
/* 07ED00 800E5850 8484A552 */ lh $a0, -0x5aae($a0)
|
|
/* 07ED04 800E5854 0C016F6A */ jal get_collider_type_by_id
|
|
/* 07ED08 800E5858 00000000 */ nop
|
|
/* 07ED0C 800E585C 304200FF */ andi $v0, $v0, 0xff
|
|
/* 07ED10 800E5860 24030003 */ addiu $v1, $zero, 3
|
|
/* 07ED14 800E5864 14430007 */ bne $v0, $v1, .L800E5884
|
|
/* 07ED18 800E5868 00000000 */ nop
|
|
/* 07ED1C 800E586C 3C03800B */ lui $v1, 0x800b
|
|
/* 07ED20 800E5870 24631D80 */ addiu $v1, $v1, 0x1d80
|
|
/* 07ED24 800E5874 94620002 */ lhu $v0, 2($v1)
|
|
/* 07ED28 800E5878 0000802D */ daddu $s0, $zero, $zero
|
|
/* 07ED2C 800E587C 08039635 */ j .L800E58D4
|
|
/* 07ED30 800E5880 34420001 */ ori $v0, $v0, 1
|
|
|
|
.L800E5884:
|
|
/* 07ED34 800E5884 3C03800B */ lui $v1, 0x800b
|
|
/* 07ED38 800E5888 24631D80 */ addiu $v1, $v1, 0x1d80
|
|
/* 07ED3C 800E588C 94620002 */ lhu $v0, 2($v1)
|
|
/* 07ED40 800E5890 08039635 */ j .L800E58D4
|
|
/* 07ED44 800E5894 3042FFFE */ andi $v0, $v0, 0xfffe
|
|
|
|
.L800E5898:
|
|
/* 07ED48 800E5898 82220000 */ lb $v0, ($s1)
|
|
/* 07ED4C 800E589C 10400009 */ beqz $v0, .L800E58C4
|
|
/* 07ED50 800E58A0 24020004 */ addiu $v0, $zero, 4
|
|
/* 07ED54 800E58A4 82230003 */ lb $v1, 3($s1)
|
|
/* 07ED58 800E58A8 14620006 */ bne $v1, $v0, .L800E58C4
|
|
/* 07ED5C 800E58AC 00000000 */ nop
|
|
/* 07ED60 800E58B0 3C03800B */ lui $v1, 0x800b
|
|
/* 07ED64 800E58B4 24631D80 */ addiu $v1, $v1, 0x1d80
|
|
/* 07ED68 800E58B8 94620002 */ lhu $v0, 2($v1)
|
|
/* 07ED6C 800E58BC 08039635 */ j .L800E58D4
|
|
/* 07ED70 800E58C0 34420002 */ ori $v0, $v0, 2
|
|
|
|
.L800E58C4:
|
|
/* 07ED74 800E58C4 3C03800B */ lui $v1, 0x800b
|
|
/* 07ED78 800E58C8 24631D80 */ addiu $v1, $v1, 0x1d80
|
|
/* 07ED7C 800E58CC 94620002 */ lhu $v0, 2($v1)
|
|
/* 07ED80 800E58D0 3042FFFD */ andi $v0, $v0, 0xfffd
|
|
.L800E58D4:
|
|
/* 07ED84 800E58D4 A4620002 */ sh $v0, 2($v1)
|
|
/* 07ED88 800E58D8 0200102D */ daddu $v0, $s0, $zero
|
|
/* 07ED8C 800E58DC 8FBF0018 */ lw $ra, 0x18($sp)
|
|
/* 07ED90 800E58E0 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 07ED94 800E58E4 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 07ED98 800E58E8 03E00008 */ jr $ra
|
|
/* 07ED9C 800E58EC 27BD0020 */ addiu $sp, $sp, 0x20
|
|
|
|
/* 07EDA0 800E58F0 3C018011 */ lui $at, 0x8011
|
|
/* 07EDA4 800E58F4 AC20C944 */ sw $zero, -0x36bc($at)
|
|
/* 07EDA8 800E58F8 0000282D */ daddu $a1, $zero, $zero
|
|
/* 07EDAC 800E58FC 240700B4 */ addiu $a3, $zero, 0xb4
|
|
/* 07EDB0 800E5900 3C068000 */ lui $a2, 0x8000
|
|
/* 07EDB4 800E5904 3C048011 */ lui $a0, 0x8011
|
|
/* 07EDB8 800E5908 2484EF10 */ addiu $a0, $a0, -0x10f0
|
|
/* 07EDBC 800E590C 3C038011 */ lui $v1, 0x8011
|
|
/* 07EDC0 800E5910 2463F6B8 */ addiu $v1, $v1, -0x948
|
|
.L800E5914:
|
|
/* 07EDC4 800E5914 A4670000 */ sh $a3, ($v1)
|
|
/* 07EDC8 800E5918 AC860000 */ sw $a2, ($a0)
|
|
/* 07EDCC 800E591C 24840004 */ addiu $a0, $a0, 4
|
|
/* 07EDD0 800E5920 24A50001 */ addiu $a1, $a1, 1
|
|
/* 07EDD4 800E5924 28A20005 */ slti $v0, $a1, 5
|
|
/* 07EDD8 800E5928 1440FFFA */ bnez $v0, .L800E5914
|
|
/* 07EDDC 800E592C 24630002 */ addiu $v1, $v1, 2
|
|
/* 07EDE0 800E5930 03E00008 */ jr $ra
|
|
/* 07EDE4 800E5934 00000000 */ nop
|
|
|