papermario/asm/nonmatchings/code_d5a50_len_5fd0/func_80144C20.s
2021-01-11 21:40:52 +09:00

128 lines
5.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80144C20
/* DB320 80144C20 2402F7FF */ addiu $v0, $zero, -0x801
/* DB324 80144C24 00822024 */ and $a0, $a0, $v0
/* DB328 80144C28 00042080 */ sll $a0, $a0, 2
/* DB32C 80144C2C 3C028015 */ lui $v0, %hi(D_80157960)
/* DB330 80144C30 8C427960 */ lw $v0, %lo(D_80157960)($v0)
/* DB334 80144C34 44853000 */ mtc1 $a1, $f6
/* DB338 80144C38 00822021 */ addu $a0, $a0, $v0
/* DB33C 80144C3C 8C850000 */ lw $a1, ($a0)
/* DB340 80144C40 8CA20000 */ lw $v0, ($a1)
/* DB344 80144C44 3C030010 */ lui $v1, 0x10
/* DB348 80144C48 00431024 */ and $v0, $v0, $v1
/* DB34C 80144C4C 14400012 */ bnez $v0, .L80144C98
/* DB350 80144C50 E4A60030 */ swc1 $f6, 0x30($a1)
/* DB354 80144C54 80A30046 */ lb $v1, 0x46($a1)
/* DB358 80144C58 3C048015 */ lui $a0, %hi(D_8014EFCC)
/* DB35C 80144C5C 2484EFCC */ addiu $a0, $a0, %lo(D_8014EFCC)
/* DB360 80144C60 00031040 */ sll $v0, $v1, 1
/* DB364 80144C64 00431021 */ addu $v0, $v0, $v1
/* DB368 80144C68 00021040 */ sll $v0, $v0, 1
/* DB36C 80144C6C 00441021 */ addu $v0, $v0, $a0
/* DB370 80144C70 84480000 */ lh $t0, ($v0)
/* DB374 80144C74 80A30045 */ lb $v1, 0x45($a1)
/* DB378 80144C78 84490002 */ lh $t1, 2($v0)
/* DB37C 80144C7C 00031040 */ sll $v0, $v1, 1
/* DB380 80144C80 00431021 */ addu $v0, $v0, $v1
/* DB384 80144C84 00021040 */ sll $v0, $v0, 1
/* DB388 80144C88 00441021 */ addu $v0, $v0, $a0
/* DB38C 80144C8C 84440000 */ lh $a0, ($v0)
/* DB390 80144C90 0805132A */ j .L80144CA8
/* DB394 80144C94 84460002 */ lh $a2, 2($v0)
.L80144C98:
/* DB398 80144C98 90A8004E */ lbu $t0, 0x4e($a1)
/* DB39C 80144C9C 90A9004F */ lbu $t1, 0x4f($a1)
/* DB3A0 80144CA0 90A40050 */ lbu $a0, 0x50($a1)
/* DB3A4 80144CA4 90A60051 */ lbu $a2, 0x51($a1)
.L80144CA8:
/* DB3A8 80144CA8 44840000 */ mtc1 $a0, $f0
/* DB3AC 80144CAC 00000000 */ nop
/* DB3B0 80144CB0 46800020 */ cvt.s.w $f0, $f0
/* DB3B4 80144CB4 46060002 */ mul.s $f0, $f0, $f6
/* DB3B8 80144CB8 00000000 */ nop
/* DB3BC 80144CBC 3C014F00 */ lui $at, 0x4f00
/* DB3C0 80144CC0 44811000 */ mtc1 $at, $f2
/* DB3C4 80144CC4 00000000 */ nop
/* DB3C8 80144CC8 4600103E */ c.le.s $f2, $f0
/* DB3CC 80144CCC 00000000 */ nop
/* DB3D0 80144CD0 45010005 */ bc1t .L80144CE8
/* DB3D4 80144CD4 24A70048 */ addiu $a3, $a1, 0x48
/* DB3D8 80144CD8 4600020D */ trunc.w.s $f8, $f0
/* DB3DC 80144CDC 44034000 */ mfc1 $v1, $f8
/* DB3E0 80144CE0 08051340 */ j .L80144D00
/* DB3E4 80144CE4 00000000 */ nop
.L80144CE8:
/* DB3E8 80144CE8 46020001 */ sub.s $f0, $f0, $f2
/* DB3EC 80144CEC 3C028000 */ lui $v0, 0x8000
/* DB3F0 80144CF0 4600020D */ trunc.w.s $f8, $f0
/* DB3F4 80144CF4 44034000 */ mfc1 $v1, $f8
/* DB3F8 80144CF8 00000000 */ nop
/* DB3FC 80144CFC 00621825 */ or $v1, $v1, $v0
.L80144D00:
/* DB400 80144D00 44860000 */ mtc1 $a2, $f0
/* DB404 80144D04 00000000 */ nop
/* DB408 80144D08 46800020 */ cvt.s.w $f0, $f0
/* DB40C 80144D0C 46060002 */ mul.s $f0, $f0, $f6
/* DB410 80144D10 00000000 */ nop
/* DB414 80144D14 3C014F00 */ lui $at, 0x4f00
/* DB418 80144D18 44811000 */ mtc1 $at, $f2
/* DB41C 80144D1C A0E30000 */ sb $v1, ($a3)
/* DB420 80144D20 4600103E */ c.le.s $f2, $f0
/* DB424 80144D24 00000000 */ nop
/* DB428 80144D28 45010005 */ bc1t .L80144D40
/* DB42C 80144D2C 24A70049 */ addiu $a3, $a1, 0x49
/* DB430 80144D30 4600020D */ trunc.w.s $f8, $f0
/* DB434 80144D34 44034000 */ mfc1 $v1, $f8
/* DB438 80144D38 08051356 */ j .L80144D58
/* DB43C 80144D3C 00000000 */ nop
.L80144D40:
/* DB440 80144D40 46020001 */ sub.s $f0, $f0, $f2
/* DB444 80144D44 3C028000 */ lui $v0, 0x8000
/* DB448 80144D48 4600020D */ trunc.w.s $f8, $f0
/* DB44C 80144D4C 44034000 */ mfc1 $v1, $f8
/* DB450 80144D50 00000000 */ nop
/* DB454 80144D54 00621825 */ or $v1, $v1, $v0
.L80144D58:
/* DB458 80144D58 44842000 */ mtc1 $a0, $f4
/* DB45C 80144D5C 00000000 */ nop
/* DB460 80144D60 46802120 */ cvt.s.w $f4, $f4
/* DB464 80144D64 44880000 */ mtc1 $t0, $f0
/* DB468 80144D68 00000000 */ nop
/* DB46C 80144D6C 46800020 */ cvt.s.w $f0, $f0
/* DB470 80144D70 46002103 */ div.s $f4, $f4, $f0
/* DB474 80144D74 46062102 */ mul.s $f4, $f4, $f6
/* DB478 80144D78 00000000 */ nop
/* DB47C 80144D7C 44861000 */ mtc1 $a2, $f2
/* DB480 80144D80 00000000 */ nop
/* DB484 80144D84 468010A0 */ cvt.s.w $f2, $f2
/* DB488 80144D88 44890000 */ mtc1 $t1, $f0
/* DB48C 80144D8C 00000000 */ nop
/* DB490 80144D90 46800020 */ cvt.s.w $f0, $f0
/* DB494 80144D94 46001083 */ div.s $f2, $f2, $f0
/* DB498 80144D98 46061082 */ mul.s $f2, $f2, $f6
/* DB49C 80144D9C 00000000 */ nop
/* DB4A0 80144DA0 3C013F80 */ lui $at, 0x3f80
/* DB4A4 80144DA4 44810000 */ mtc1 $at, $f0
/* DB4A8 80144DA8 3C014480 */ lui $at, 0x4480
/* DB4AC 80144DAC 44813000 */ mtc1 $at, $f6
/* DB4B0 80144DB0 46040103 */ div.s $f4, $f0, $f4
/* DB4B4 80144DB4 46062102 */ mul.s $f4, $f4, $f6
/* DB4B8 80144DB8 00000000 */ nop
/* DB4BC 80144DBC A0E30000 */ sb $v1, ($a3)
/* DB4C0 80144DC0 2403FEFF */ addiu $v1, $zero, -0x101
/* DB4C4 80144DC4 8CA20000 */ lw $v0, ($a1)
/* DB4C8 80144DC8 46020083 */ div.s $f2, $f0, $f2
/* DB4CC 80144DCC 46061082 */ mul.s $f2, $f2, $f6
/* DB4D0 80144DD0 00000000 */ nop
/* DB4D4 80144DD4 00431024 */ and $v0, $v0, $v1
/* DB4D8 80144DD8 34420810 */ ori $v0, $v0, 0x810
/* DB4DC 80144DDC ACA20000 */ sw $v0, ($a1)
/* DB4E0 80144DE0 4600220D */ trunc.w.s $f8, $f4
/* DB4E4 80144DE4 E4A80034 */ swc1 $f8, 0x34($a1)
/* DB4E8 80144DE8 4600120D */ trunc.w.s $f8, $f2
/* DB4EC 80144DEC 03E00008 */ jr $ra
/* DB4F0 80144DF0 E4A80038 */ swc1 $f8, 0x38($a1)