mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
131 lines
5.9 KiB
ArmAsm
131 lines
5.9 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_8013C048
|
|
/* 0D2748 8013C048 0080582D */ daddu $t3, $a0, $zero
|
|
/* 0D274C 8013C04C 3C098015 */ lui $t1, 0x8015
|
|
/* 0D2750 8013C050 2529EE14 */ addiu $t1, $t1, -0x11ec
|
|
/* 0D2754 8013C054 0000402D */ daddu $t0, $zero, $zero
|
|
/* 0D2758 8013C058 91660004 */ lbu $a2, 4($t3)
|
|
/* 0D275C 8013C05C 44804000 */ mtc1 $zero, $f8
|
|
/* 0D2760 8013C060 95220000 */ lhu $v0, ($t1)
|
|
/* 0D2764 8013C064 3C038015 */ lui $v1, 0x8015
|
|
/* 0D2768 8013C068 8C636950 */ lw $v1, 0x6950($v1)
|
|
/* 0D276C 8013C06C 3C0A8015 */ lui $t2, 0x8015
|
|
/* 0D2770 8013C070 254AEE10 */ addiu $t2, $t2, -0x11f0
|
|
/* 0D2774 8013C074 A5620008 */ sh $v0, 8($t3)
|
|
/* 0D2778 8013C078 95220000 */ lhu $v0, ($t1)
|
|
/* 0D277C 8013C07C 8D450000 */ lw $a1, ($t2)
|
|
/* 0D2780 8013C080 00021100 */ sll $v0, $v0, 4
|
|
/* 0D2784 8013C084 00623821 */ addu $a3, $v1, $v0
|
|
/* 0D2788 8013C088 84A4000E */ lh $a0, 0xe($a1)
|
|
/* 0D278C 8013C08C 94A20008 */ lhu $v0, 8($a1)
|
|
/* 0D2790 8013C090 91630003 */ lbu $v1, 3($t3)
|
|
/* 0D2794 8013C094 44843000 */ mtc1 $a0, $f6
|
|
/* 0D2798 8013C098 00000000 */ nop
|
|
/* 0D279C 8013C09C 468031A0 */ cvt.s.w $f6, $f6
|
|
/* 0D27A0 8013C0A0 44821000 */ mtc1 $v0, $f2
|
|
/* 0D27A4 8013C0A4 00000000 */ nop
|
|
/* 0D27A8 8013C0A8 468010A0 */ cvt.s.w $f2, $f2
|
|
/* 0D27AC 8013C0AC 44830000 */ mtc1 $v1, $f0
|
|
/* 0D27B0 8013C0B0 00000000 */ nop
|
|
/* 0D27B4 8013C0B4 46800020 */ cvt.s.w $f0, $f0
|
|
/* 0D27B8 8013C0B8 46001283 */ div.s $f10, $f2, $f0
|
|
/* 0D27BC 8013C0BC 94A2000A */ lhu $v0, 0xa($a1)
|
|
/* 0D27C0 8013C0C0 44860000 */ mtc1 $a2, $f0
|
|
/* 0D27C4 8013C0C4 00000000 */ nop
|
|
/* 0D27C8 8013C0C8 46800020 */ cvt.s.w $f0, $f0
|
|
/* 0D27CC 8013C0CC 44821000 */ mtc1 $v0, $f2
|
|
/* 0D27D0 8013C0D0 00000000 */ nop
|
|
/* 0D27D4 8013C0D4 468010A0 */ cvt.s.w $f2, $f2
|
|
/* 0D27D8 8013C0D8 00C8102A */ slt $v0, $a2, $t0
|
|
/* 0D27DC 8013C0DC 1440004B */ bnez $v0, .L8013C20C
|
|
/* 0D27E0 8013C0E0 46001083 */ div.s $f2, $f2, $f0
|
|
/* 0D27E4 8013C0E4 0140282D */ daddu $a1, $t2, $zero
|
|
/* 0D27E8 8013C0E8 0120602D */ daddu $t4, $t1, $zero
|
|
.L8013C0EC:
|
|
/* 0D27EC 8013C0EC 1506000B */ bne $t0, $a2, .L8013C11C
|
|
/* 0D27F0 8013C0F0 0000302D */ daddu $a2, $zero, $zero
|
|
/* 0D27F4 8013C0F4 8CA20000 */ lw $v0, ($a1)
|
|
/* 0D27F8 8013C0F8 9443000A */ lhu $v1, 0xa($v0)
|
|
/* 0D27FC 8013C0FC 8442000E */ lh $v0, 0xe($v0)
|
|
/* 0D2800 8013C100 44834000 */ mtc1 $v1, $f8
|
|
/* 0D2804 8013C104 00000000 */ nop
|
|
/* 0D2808 8013C108 46804220 */ cvt.s.w $f8, $f8
|
|
/* 0D280C 8013C10C 00431023 */ subu $v0, $v0, $v1
|
|
/* 0D2810 8013C110 44823000 */ mtc1 $v0, $f6
|
|
/* 0D2814 8013C114 00000000 */ nop
|
|
/* 0D2818 8013C118 468031A0 */ cvt.s.w $f6, $f6
|
|
.L8013C11C:
|
|
/* 0D281C 8013C11C 8CA20000 */ lw $v0, ($a1)
|
|
/* 0D2820 8013C120 44802000 */ mtc1 $zero, $f4
|
|
/* 0D2824 8013C124 8442000C */ lh $v0, 0xc($v0)
|
|
/* 0D2828 8013C128 91630003 */ lbu $v1, 3($t3)
|
|
/* 0D282C 8013C12C 44820000 */ mtc1 $v0, $f0
|
|
/* 0D2830 8013C130 00000000 */ nop
|
|
/* 0D2834 8013C134 46800020 */ cvt.s.w $f0, $f0
|
|
/* 0D2838 8013C138 0066102A */ slt $v0, $v1, $a2
|
|
/* 0D283C 8013C13C 5440002E */ bnel $v0, $zero, .L8013C1F8
|
|
/* 0D2840 8013C140 46023181 */ sub.s $f6, $f6, $f2
|
|
/* 0D2844 8013C144 4600330D */ trunc.w.s $f12, $f6
|
|
/* 0D2848 8013C148 440A6000 */ mfc1 $t2, $f12
|
|
/* 0D284C 8013C14C 4600430D */ trunc.w.s $f12, $f8
|
|
/* 0D2850 8013C150 44026000 */ mfc1 $v0, $f12
|
|
/* 0D2854 8013C154 00000000 */ nop
|
|
/* 0D2858 8013C158 24420100 */ addiu $v0, $v0, 0x100
|
|
/* 0D285C 8013C15C 00024940 */ sll $t1, $v0, 5
|
|
/* 0D2860 8013C160 24E4000A */ addiu $a0, $a3, 0xa
|
|
.L8013C164:
|
|
/* 0D2864 8013C164 14C3000B */ bne $a2, $v1, .L8013C194
|
|
/* 0D2868 8013C168 00000000 */ nop
|
|
/* 0D286C 8013C16C 8CA20000 */ lw $v0, ($a1)
|
|
/* 0D2870 8013C170 94430008 */ lhu $v1, 8($v0)
|
|
/* 0D2874 8013C174 8442000C */ lh $v0, 0xc($v0)
|
|
/* 0D2878 8013C178 44832000 */ mtc1 $v1, $f4
|
|
/* 0D287C 8013C17C 00000000 */ nop
|
|
/* 0D2880 8013C180 46802120 */ cvt.s.w $f4, $f4
|
|
/* 0D2884 8013C184 00431021 */ addu $v0, $v0, $v1
|
|
/* 0D2888 8013C188 44820000 */ mtc1 $v0, $f0
|
|
/* 0D288C 8013C18C 00000000 */ nop
|
|
/* 0D2890 8013C190 46800020 */ cvt.s.w $f0, $f0
|
|
.L8013C194:
|
|
/* 0D2894 8013C194 4600030D */ trunc.w.s $f12, $f0
|
|
/* 0D2898 8013C198 44026000 */ mfc1 $v0, $f12
|
|
/* 0D289C 8013C19C 00000000 */ nop
|
|
/* 0D28A0 8013C1A0 A4E20000 */ sh $v0, ($a3)
|
|
/* 0D28A4 8013C1A4 4600230D */ trunc.w.s $f12, $f4
|
|
/* 0D28A8 8013C1A8 44026000 */ mfc1 $v0, $f12
|
|
/* 0D28AC 8013C1AC 00000000 */ nop
|
|
/* 0D28B0 8013C1B0 24420100 */ addiu $v0, $v0, 0x100
|
|
/* 0D28B4 8013C1B4 00021140 */ sll $v0, $v0, 5
|
|
/* 0D28B8 8013C1B8 A48AFFF8 */ sh $t2, -8($a0)
|
|
/* 0D28BC 8013C1BC A480FFFA */ sh $zero, -6($a0)
|
|
/* 0D28C0 8013C1C0 A482FFFE */ sh $v0, -2($a0)
|
|
/* 0D28C4 8013C1C4 A4890000 */ sh $t1, ($a0)
|
|
/* 0D28C8 8013C1C8 24840010 */ addiu $a0, $a0, 0x10
|
|
/* 0D28CC 8013C1CC 24E70010 */ addiu $a3, $a3, 0x10
|
|
/* 0D28D0 8013C1D0 24C60001 */ addiu $a2, $a2, 1
|
|
/* 0D28D4 8013C1D4 95820000 */ lhu $v0, ($t4)
|
|
/* 0D28D8 8013C1D8 460A0000 */ add.s $f0, $f0, $f10
|
|
/* 0D28DC 8013C1DC 24420001 */ addiu $v0, $v0, 1
|
|
/* 0D28E0 8013C1E0 A5820000 */ sh $v0, ($t4)
|
|
/* 0D28E4 8013C1E4 91630003 */ lbu $v1, 3($t3)
|
|
/* 0D28E8 8013C1E8 0066102A */ slt $v0, $v1, $a2
|
|
/* 0D28EC 8013C1EC 1040FFDD */ beqz $v0, .L8013C164
|
|
/* 0D28F0 8013C1F0 460A2100 */ add.s $f4, $f4, $f10
|
|
/* 0D28F4 8013C1F4 46023181 */ sub.s $f6, $f6, $f2
|
|
.L8013C1F8:
|
|
/* 0D28F8 8013C1F8 25080001 */ addiu $t0, $t0, 1
|
|
/* 0D28FC 8013C1FC 91660004 */ lbu $a2, 4($t3)
|
|
/* 0D2900 8013C200 00C8102A */ slt $v0, $a2, $t0
|
|
/* 0D2904 8013C204 1040FFB9 */ beqz $v0, .L8013C0EC
|
|
/* 0D2908 8013C208 46024200 */ add.s $f8, $f8, $f2
|
|
.L8013C20C:
|
|
/* 0D290C 8013C20C 3C028015 */ lui $v0, 0x8015
|
|
/* 0D2910 8013C210 9442EE14 */ lhu $v0, -0x11ec($v0)
|
|
/* 0D2914 8013C214 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 0D2918 8013C218 03E00008 */ jr $ra
|
|
/* 0D291C 8013C21C A562000A */ sh $v0, 0xa($t3)
|
|
|