mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
100 lines
4.3 KiB
ArmAsm
100 lines
4.3 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_8013F1F8
|
|
/* 0D58F8 8013F1F8 0080382D */ daddu $a3, $a0, $zero
|
|
/* 0D58FC 8013F1FC 0000302D */ daddu $a2, $zero, $zero
|
|
/* 0D5900 8013F200 3C028015 */ lui $v0, 0x8015
|
|
/* 0D5904 8013F204 8C42EE10 */ lw $v0, -0x11f0($v0)
|
|
/* 0D5908 8013F208 3C018015 */ lui $at, 0x8015
|
|
/* 0D590C 8013F20C D4221138 */ ldc1 $f2, 0x1138($at)
|
|
/* 0D5910 8013F210 90420024 */ lbu $v0, 0x24($v0)
|
|
/* 0D5914 8013F214 94E3000A */ lhu $v1, 0xa($a3)
|
|
/* 0D5918 8013F218 44820000 */ mtc1 $v0, $f0
|
|
/* 0D591C 8013F21C 00000000 */ nop
|
|
/* 0D5920 8013F220 46800020 */ cvt.s.w $f0, $f0
|
|
/* 0D5924 8013F224 46000021 */ cvt.d.s $f0, $f0
|
|
/* 0D5928 8013F228 46220003 */ div.d $f0, $f0, $f2
|
|
/* 0D592C 8013F22C 94E20008 */ lhu $v0, 8($a3)
|
|
/* 0D5930 8013F230 00624823 */ subu $t1, $v1, $v0
|
|
/* 0D5934 8013F234 05200041 */ bltz $t1, .L8013F33C
|
|
/* 0D5938 8013F238 46200120 */ cvt.s.d $f4, $f0
|
|
/* 0D593C 8013F23C 3C088015 */ lui $t0, 0x8015
|
|
/* 0D5940 8013F240 25086950 */ addiu $t0, $t0, 0x6950
|
|
/* 0D5944 8013F244 3C014F00 */ lui $at, 0x4f00
|
|
/* 0D5948 8013F248 44811000 */ mtc1 $at, $f2
|
|
/* 0D594C 8013F24C 3C0A8000 */ lui $t2, 0x8000
|
|
/* 0D5950 8013F250 00062880 */ sll $a1, $a2, 2
|
|
.L8013F254:
|
|
/* 0D5954 8013F254 94E20008 */ lhu $v0, 8($a3)
|
|
/* 0D5958 8013F258 8CE3005C */ lw $v1, 0x5c($a3)
|
|
/* 0D595C 8013F25C 8D040000 */ lw $a0, ($t0)
|
|
/* 0D5960 8013F260 00461021 */ addu $v0, $v0, $a2
|
|
/* 0D5964 8013F264 00021100 */ sll $v0, $v0, 4
|
|
/* 0D5968 8013F268 00A31821 */ addu $v1, $a1, $v1
|
|
/* 0D596C 8013F26C 90630000 */ lbu $v1, ($v1)
|
|
/* 0D5970 8013F270 00441021 */ addu $v0, $v0, $a0
|
|
/* 0D5974 8013F274 A043000C */ sb $v1, 0xc($v0)
|
|
/* 0D5978 8013F278 94E20008 */ lhu $v0, 8($a3)
|
|
/* 0D597C 8013F27C 8CE3005C */ lw $v1, 0x5c($a3)
|
|
/* 0D5980 8013F280 8D040000 */ lw $a0, ($t0)
|
|
/* 0D5984 8013F284 00461021 */ addu $v0, $v0, $a2
|
|
/* 0D5988 8013F288 00021100 */ sll $v0, $v0, 4
|
|
/* 0D598C 8013F28C 00A31821 */ addu $v1, $a1, $v1
|
|
/* 0D5990 8013F290 90630001 */ lbu $v1, 1($v1)
|
|
/* 0D5994 8013F294 00441021 */ addu $v0, $v0, $a0
|
|
/* 0D5998 8013F298 A043000D */ sb $v1, 0xd($v0)
|
|
/* 0D599C 8013F29C 94E20008 */ lhu $v0, 8($a3)
|
|
/* 0D59A0 8013F2A0 8CE3005C */ lw $v1, 0x5c($a3)
|
|
/* 0D59A4 8013F2A4 8D040000 */ lw $a0, ($t0)
|
|
/* 0D59A8 8013F2A8 00461021 */ addu $v0, $v0, $a2
|
|
/* 0D59AC 8013F2AC 00021100 */ sll $v0, $v0, 4
|
|
/* 0D59B0 8013F2B0 00A31821 */ addu $v1, $a1, $v1
|
|
/* 0D59B4 8013F2B4 90630002 */ lbu $v1, 2($v1)
|
|
/* 0D59B8 8013F2B8 00441021 */ addu $v0, $v0, $a0
|
|
/* 0D59BC 8013F2BC A043000E */ sb $v1, 0xe($v0)
|
|
/* 0D59C0 8013F2C0 8CE2005C */ lw $v0, 0x5c($a3)
|
|
/* 0D59C4 8013F2C4 00A22821 */ addu $a1, $a1, $v0
|
|
/* 0D59C8 8013F2C8 94E20008 */ lhu $v0, 8($a3)
|
|
/* 0D59CC 8013F2CC 90A30003 */ lbu $v1, 3($a1)
|
|
/* 0D59D0 8013F2D0 00461021 */ addu $v0, $v0, $a2
|
|
/* 0D59D4 8013F2D4 44830000 */ mtc1 $v1, $f0
|
|
/* 0D59D8 8013F2D8 00000000 */ nop
|
|
/* 0D59DC 8013F2DC 46800020 */ cvt.s.w $f0, $f0
|
|
/* 0D59E0 8013F2E0 46040002 */ mul.s $f0, $f0, $f4
|
|
/* 0D59E4 8013F2E4 00000000 */ nop
|
|
/* 0D59E8 8013F2E8 8D030000 */ lw $v1, ($t0)
|
|
/* 0D59EC 8013F2EC 00021100 */ sll $v0, $v0, 4
|
|
/* 0D59F0 8013F2F0 00431021 */ addu $v0, $v0, $v1
|
|
/* 0D59F4 8013F2F4 4600103E */ c.le.s $f2, $f0
|
|
/* 0D59F8 8013F2F8 00000000 */ nop
|
|
/* 0D59FC 8013F2FC 45010005 */ bc1t .L8013F314
|
|
/* 0D5A00 8013F300 2442000F */ addiu $v0, $v0, 0xf
|
|
/* 0D5A04 8013F304 4600018D */ trunc.w.s $f6, $f0
|
|
/* 0D5A08 8013F308 44033000 */ mfc1 $v1, $f6
|
|
/* 0D5A0C 8013F30C 0804FCCB */ j .L8013F32C
|
|
/* 0D5A10 8013F310 A0430000 */ sb $v1, ($v0)
|
|
|
|
.L8013F314:
|
|
/* 0D5A14 8013F314 46020001 */ sub.s $f0, $f0, $f2
|
|
/* 0D5A18 8013F318 4600018D */ trunc.w.s $f6, $f0
|
|
/* 0D5A1C 8013F31C 44033000 */ mfc1 $v1, $f6
|
|
/* 0D5A20 8013F320 00000000 */ nop
|
|
/* 0D5A24 8013F324 006A1825 */ or $v1, $v1, $t2
|
|
/* 0D5A28 8013F328 A0430000 */ sb $v1, ($v0)
|
|
.L8013F32C:
|
|
/* 0D5A2C 8013F32C 24C60001 */ addiu $a2, $a2, 1
|
|
/* 0D5A30 8013F330 0126102A */ slt $v0, $t1, $a2
|
|
/* 0D5A34 8013F334 1040FFC7 */ beqz $v0, .L8013F254
|
|
/* 0D5A38 8013F338 00062880 */ sll $a1, $a2, 2
|
|
.L8013F33C:
|
|
/* 0D5A3C 8013F33C 03E00008 */ jr $ra
|
|
/* 0D5A40 8013F340 00000000 */ nop
|
|
|
|
/* 0D5A44 8013F344 00000000 */ nop
|
|
/* 0D5A48 8013F348 00000000 */ nop
|
|
/* 0D5A4C 8013F34C 00000000 */ nop
|
|
|
|
|