mirror of
https://github.com/pmret/papermario.git
synced 2024-11-19 09:22:30 +01:00
155 lines
7.8 KiB
ArmAsm
155 lines
7.8 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
glabel func_80037624
|
||
|
/* 12A24 80037624 27BDFFF8 */ addiu $sp, $sp, -8
|
||
|
/* 12A28 80037628 0000582D */ daddu $t3, $zero, $zero
|
||
|
/* 12A2C 8003762C 3C02800A */ lui $v0, %hi(D_8009A64C)
|
||
|
/* 12A30 80037630 2442A64C */ addiu $v0, $v0, %lo(D_8009A64C)
|
||
|
/* 12A34 80037634 0040382D */ daddu $a3, $v0, $zero
|
||
|
/* 12A38 80037638 3C18FD18 */ lui $t8, 0xfd18
|
||
|
/* 12A3C 8003763C 3718010F */ ori $t8, $t8, 0x10f
|
||
|
/* 12A40 80037640 3C19800A */ lui $t9, %hi(D_8009E788)
|
||
|
/* 12A44 80037644 2739E788 */ addiu $t9, $t9, %lo(D_8009E788)
|
||
|
/* 12A48 80037648 3C0EF518 */ lui $t6, 0xf518
|
||
|
/* 12A4C 8003764C 35CE8800 */ ori $t6, $t6, 0x8800
|
||
|
/* 12A50 80037650 3C0DE44A */ lui $t5, 0xe44a
|
||
|
/* 12A54 80037654 35AD4000 */ ori $t5, $t5, 0x4000
|
||
|
/* 12A58 80037658 3C0C0006 */ lui $t4, 6
|
||
|
/* 12A5C 8003765C 358C4000 */ ori $t4, $t4, 0x4000
|
||
|
/* 12A60 80037660 0160502D */ daddu $t2, $t3, $zero
|
||
|
/* 12A64 80037664 0160482D */ daddu $t1, $t3, $zero
|
||
|
/* 12A68 80037668 3C02DE00 */ lui $v0, 0xde00
|
||
|
/* 12A6C 8003766C AFB00000 */ sw $s0, ($sp)
|
||
|
/* 12A70 80037670 8CE30000 */ lw $v1, ($a3)
|
||
|
/* 12A74 80037674 3C01C2C8 */ lui $at, 0xc2c8
|
||
|
/* 12A78 80037678 44810000 */ mtc1 $at, $f0
|
||
|
/* 12A7C 8003767C 0060202D */ daddu $a0, $v1, $zero
|
||
|
/* 12A80 80037680 24630008 */ addiu $v1, $v1, 8
|
||
|
/* 12A84 80037684 ACE30000 */ sw $v1, ($a3)
|
||
|
/* 12A88 80037688 AC820000 */ sw $v0, ($a0)
|
||
|
/* 12A8C 8003768C 3C028007 */ lui $v0, %hi(D_80077A20)
|
||
|
/* 12A90 80037690 24427A20 */ addiu $v0, $v0, %lo(D_80077A20)
|
||
|
/* 12A94 80037694 AC820004 */ sw $v0, 4($a0)
|
||
|
/* 12A98 80037698 24620008 */ addiu $v0, $v1, 8
|
||
|
/* 12A9C 8003769C 46006302 */ mul.s $f12, $f12, $f0
|
||
|
/* 12AA0 800376A0 00000000 */ nop
|
||
|
/* 12AA4 800376A4 ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12AA8 800376A8 3C02E700 */ lui $v0, 0xe700
|
||
|
/* 12AAC 800376AC AC620000 */ sw $v0, ($v1)
|
||
|
/* 12AB0 800376B0 AC600004 */ sw $zero, 4($v1)
|
||
|
/* 12AB4 800376B4 4600608D */ trunc.w.s $f2, $f12
|
||
|
/* 12AB8 800376B8 440F1000 */ mfc1 $t7, $f2
|
||
|
/* 12ABC 800376BC 00000000 */ nop
|
||
|
/* 12AC0 800376C0 25E80022 */ addiu $t0, $t7, 0x22
|
||
|
.L800376C4:
|
||
|
/* 12AC4 800376C4 3C040743 */ lui $a0, 0x743
|
||
|
/* 12AC8 800376C8 3484C004 */ ori $a0, $a0, 0xc004
|
||
|
/* 12ACC 800376CC 3C050043 */ lui $a1, 0x43
|
||
|
/* 12AD0 800376D0 34A5C004 */ ori $a1, $a1, 0xc004
|
||
|
/* 12AD4 800376D4 8CE60000 */ lw $a2, ($a3)
|
||
|
/* 12AD8 800376D8 8F220000 */ lw $v0, ($t9)
|
||
|
/* 12ADC 800376DC 00C0182D */ daddu $v1, $a2, $zero
|
||
|
/* 12AE0 800376E0 24C60008 */ addiu $a2, $a2, 8
|
||
|
/* 12AE4 800376E4 00491021 */ addu $v0, $v0, $t1
|
||
|
/* 12AE8 800376E8 ACE60000 */ sw $a2, ($a3)
|
||
|
/* 12AEC 800376EC AC620004 */ sw $v0, 4($v1)
|
||
|
/* 12AF0 800376F0 24C20008 */ addiu $v0, $a2, 8
|
||
|
/* 12AF4 800376F4 AC780000 */ sw $t8, ($v1)
|
||
|
/* 12AF8 800376F8 ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12AFC 800376FC 3C020700 */ lui $v0, 0x700
|
||
|
/* 12B00 80037700 ACC20004 */ sw $v0, 4($a2)
|
||
|
/* 12B04 80037704 24C20010 */ addiu $v0, $a2, 0x10
|
||
|
/* 12B08 80037708 ACCE0000 */ sw $t6, ($a2)
|
||
|
/* 12B0C 8003770C ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12B10 80037710 3C02E600 */ lui $v0, 0xe600
|
||
|
/* 12B14 80037714 ACC20008 */ sw $v0, 8($a2)
|
||
|
/* 12B18 80037718 24C20018 */ addiu $v0, $a2, 0x18
|
||
|
/* 12B1C 8003771C ACC0000C */ sw $zero, 0xc($a2)
|
||
|
/* 12B20 80037720 ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12B24 80037724 3C02F400 */ lui $v0, 0xf400
|
||
|
/* 12B28 80037728 ACC20010 */ sw $v0, 0x10($a2)
|
||
|
/* 12B2C 8003772C 24C20020 */ addiu $v0, $a2, 0x20
|
||
|
/* 12B30 80037730 ACC40014 */ sw $a0, 0x14($a2)
|
||
|
/* 12B34 80037734 ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12B38 80037738 3C02E700 */ lui $v0, 0xe700
|
||
|
/* 12B3C 8003773C ACC20018 */ sw $v0, 0x18($a2)
|
||
|
/* 12B40 80037740 24C20028 */ addiu $v0, $a2, 0x28
|
||
|
/* 12B44 80037744 24C30030 */ addiu $v1, $a2, 0x30
|
||
|
/* 12B48 80037748 ACC0001C */ sw $zero, 0x1c($a2)
|
||
|
/* 12B4C 8003774C ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12B50 80037750 3C02F200 */ lui $v0, 0xf200
|
||
|
/* 12B54 80037754 ACCE0020 */ sw $t6, 0x20($a2)
|
||
|
/* 12B58 80037758 ACC00024 */ sw $zero, 0x24($a2)
|
||
|
/* 12B5C 8003775C ACE30000 */ sw $v1, ($a3)
|
||
|
/* 12B60 80037760 ACC20028 */ sw $v0, 0x28($a2)
|
||
|
/* 12B64 80037764 24C20038 */ addiu $v0, $a2, 0x38
|
||
|
/* 12B68 80037768 ACC5002C */ sw $a1, 0x2c($a2)
|
||
|
/* 12B6C 8003776C ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12B70 80037770 25E20024 */ addiu $v0, $t7, 0x24
|
||
|
/* 12B74 80037774 01421021 */ addu $v0, $t2, $v0
|
||
|
/* 12B78 80037778 00021480 */ sll $v0, $v0, 0x12
|
||
|
/* 12B7C 8003777C 00021403 */ sra $v0, $v0, 0x10
|
||
|
/* 12B80 80037780 18400004 */ blez $v0, .L80037794
|
||
|
/* 12B84 80037784 30420FFF */ andi $v0, $v0, 0xfff
|
||
|
/* 12B88 80037788 004D1025 */ or $v0, $v0, $t5
|
||
|
/* 12B8C 8003778C 0800DDE6 */ j .L80037798
|
||
|
/* 12B90 80037790 ACC20030 */ sw $v0, 0x30($a2)
|
||
|
.L80037794:
|
||
|
/* 12B94 80037794 ACCD0030 */ sw $t5, 0x30($a2)
|
||
|
.L80037798:
|
||
|
/* 12B98 80037798 00081480 */ sll $v0, $t0, 0x12
|
||
|
/* 12B9C 8003779C 00021403 */ sra $v0, $v0, 0x10
|
||
|
/* 12BA0 800377A0 18400004 */ blez $v0, .L800377B4
|
||
|
/* 12BA4 800377A4 30420FFF */ andi $v0, $v0, 0xfff
|
||
|
/* 12BA8 800377A8 004C1025 */ or $v0, $v0, $t4
|
||
|
/* 12BAC 800377AC 0800DDEE */ j .L800377B8
|
||
|
/* 12BB0 800377B0 AC620004 */ sw $v0, 4($v1)
|
||
|
.L800377B4:
|
||
|
/* 12BB4 800377B4 AC6C0004 */ sw $t4, 4($v1)
|
||
|
.L800377B8:
|
||
|
/* 12BB8 800377B8 8CE30000 */ lw $v1, ($a3)
|
||
|
/* 12BBC 800377BC 24620008 */ addiu $v0, $v1, 8
|
||
|
/* 12BC0 800377C0 ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12BC4 800377C4 3C02E100 */ lui $v0, 0xe100
|
||
|
/* 12BC8 800377C8 AC620000 */ sw $v0, ($v1)
|
||
|
/* 12BCC 800377CC 00081080 */ sll $v0, $t0, 2
|
||
|
/* 12BD0 800377D0 04430008 */ bgezl $v0, .L800377F4
|
||
|
/* 12BD4 800377D4 AC600004 */ sw $zero, 4($v1)
|
||
|
/* 12BD8 800377D8 00081480 */ sll $v0, $t0, 0x12
|
||
|
/* 12BDC 800377DC 00021343 */ sra $v0, $v0, 0xd
|
||
|
/* 12BE0 800377E0 5C400001 */ bgtzl $v0, .L800377E8
|
||
|
/* 12BE4 800377E4 0000102D */ daddu $v0, $zero, $zero
|
||
|
.L800377E8:
|
||
|
/* 12BE8 800377E8 00021023 */ negu $v0, $v0
|
||
|
/* 12BEC 800377EC 3042FFFF */ andi $v0, $v0, 0xffff
|
||
|
/* 12BF0 800377F0 AC620004 */ sw $v0, 4($v1)
|
||
|
.L800377F4:
|
||
|
/* 12BF4 800377F4 3C040400 */ lui $a0, 0x400
|
||
|
/* 12BF8 800377F8 34840400 */ ori $a0, $a0, 0x400
|
||
|
/* 12BFC 800377FC 25080002 */ addiu $t0, $t0, 2
|
||
|
/* 12C00 80037800 254A0002 */ addiu $t2, $t2, 2
|
||
|
/* 12C04 80037804 25290880 */ addiu $t1, $t1, 0x880
|
||
|
/* 12C08 80037808 8CE20000 */ lw $v0, ($a3)
|
||
|
/* 12C0C 8003780C 256B0001 */ addiu $t3, $t3, 1
|
||
|
/* 12C10 80037810 0040182D */ daddu $v1, $v0, $zero
|
||
|
/* 12C14 80037814 24420008 */ addiu $v0, $v0, 8
|
||
|
/* 12C18 80037818 ACE20000 */ sw $v0, ($a3)
|
||
|
/* 12C1C 8003781C 3C02F100 */ lui $v0, 0xf100
|
||
|
/* 12C20 80037820 AC620000 */ sw $v0, ($v1)
|
||
|
/* 12C24 80037824 2962002C */ slti $v0, $t3, 0x2c
|
||
|
/* 12C28 80037828 1440FFA6 */ bnez $v0, .L800376C4
|
||
|
/* 12C2C 8003782C AC640004 */ sw $a0, 4($v1)
|
||
|
/* 12C30 80037830 3C03800A */ lui $v1, %hi(D_8009A64C)
|
||
|
/* 12C34 80037834 2463A64C */ addiu $v1, $v1, %lo(D_8009A64C)
|
||
|
/* 12C38 80037838 8C620000 */ lw $v0, ($v1)
|
||
|
/* 12C3C 8003783C 0040202D */ daddu $a0, $v0, $zero
|
||
|
/* 12C40 80037840 24420008 */ addiu $v0, $v0, 8
|
||
|
/* 12C44 80037844 AC620000 */ sw $v0, ($v1)
|
||
|
/* 12C48 80037848 3C02E700 */ lui $v0, 0xe700
|
||
|
/* 12C4C 8003784C AC820000 */ sw $v0, ($a0)
|
||
|
/* 12C50 80037850 AC800004 */ sw $zero, 4($a0)
|
||
|
/* 12C54 80037854 8FB00000 */ lw $s0, ($sp)
|
||
|
/* 12C58 80037858 03E00008 */ jr $ra
|
||
|
/* 12C5C 8003785C 27BD0008 */ addiu $sp, $sp, 8
|