papermario/asm/nonmatchings/code_d5a50_len_5fd0/func_80144C20.s

184 lines
8.1 KiB
ArmAsm
Raw Normal View History

2020-08-04 08:49:11 +02:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.include "include/macro.inc"
glabel func_80144C20
/* 0DB320 80144C20 2402F7FF */ addiu $v0, $zero, -0x801
/* 0DB324 80144C24 00822024 */ and $a0, $a0, $v0
/* 0DB328 80144C28 00042080 */ sll $a0, $a0, 2
/* 0DB32C 80144C2C 3C028015 */ lui $v0, 0x8015
/* 0DB330 80144C30 8C427960 */ lw $v0, 0x7960($v0)
/* 0DB334 80144C34 44853000 */ mtc1 $a1, $f6
/* 0DB338 80144C38 00822021 */ addu $a0, $a0, $v0
/* 0DB33C 80144C3C 8C850000 */ lw $a1, ($a0)
/* 0DB340 80144C40 8CA20000 */ lw $v0, ($a1)
/* 0DB344 80144C44 3C030010 */ lui $v1, 0x10
/* 0DB348 80144C48 00431024 */ and $v0, $v0, $v1
/* 0DB34C 80144C4C 14400012 */ bnez $v0, .L80144C98
/* 0DB350 80144C50 E4A60030 */ swc1 $f6, 0x30($a1)
/* 0DB354 80144C54 80A30046 */ lb $v1, 0x46($a1)
/* 0DB358 80144C58 3C048015 */ lui $a0, 0x8015
/* 0DB35C 80144C5C 2484EFCC */ addiu $a0, $a0, -0x1034
/* 0DB360 80144C60 00031040 */ sll $v0, $v1, 1
/* 0DB364 80144C64 00431021 */ addu $v0, $v0, $v1
/* 0DB368 80144C68 00021040 */ sll $v0, $v0, 1
/* 0DB36C 80144C6C 00441021 */ addu $v0, $v0, $a0
/* 0DB370 80144C70 84480000 */ lh $t0, ($v0)
/* 0DB374 80144C74 80A30045 */ lb $v1, 0x45($a1)
/* 0DB378 80144C78 84490002 */ lh $t1, 2($v0)
/* 0DB37C 80144C7C 00031040 */ sll $v0, $v1, 1
/* 0DB380 80144C80 00431021 */ addu $v0, $v0, $v1
/* 0DB384 80144C84 00021040 */ sll $v0, $v0, 1
/* 0DB388 80144C88 00441021 */ addu $v0, $v0, $a0
/* 0DB38C 80144C8C 84440000 */ lh $a0, ($v0)
/* 0DB390 80144C90 0805132A */ j .L80144CA8
/* 0DB394 80144C94 84460002 */ lh $a2, 2($v0)
.L80144C98:
/* 0DB398 80144C98 90A8004E */ lbu $t0, 0x4e($a1)
/* 0DB39C 80144C9C 90A9004F */ lbu $t1, 0x4f($a1)
/* 0DB3A0 80144CA0 90A40050 */ lbu $a0, 0x50($a1)
/* 0DB3A4 80144CA4 90A60051 */ lbu $a2, 0x51($a1)
.L80144CA8:
/* 0DB3A8 80144CA8 44840000 */ mtc1 $a0, $f0
/* 0DB3AC 80144CAC 00000000 */ nop
/* 0DB3B0 80144CB0 46800020 */ cvt.s.w $f0, $f0
/* 0DB3B4 80144CB4 46060002 */ mul.s $f0, $f0, $f6
/* 0DB3B8 80144CB8 00000000 */ nop
/* 0DB3BC 80144CBC 3C014F00 */ lui $at, 0x4f00
/* 0DB3C0 80144CC0 44811000 */ mtc1 $at, $f2
/* 0DB3C4 80144CC4 00000000 */ nop
/* 0DB3C8 80144CC8 4600103E */ c.le.s $f2, $f0
/* 0DB3CC 80144CCC 00000000 */ nop
/* 0DB3D0 80144CD0 45010005 */ bc1t .L80144CE8
/* 0DB3D4 80144CD4 24A70048 */ addiu $a3, $a1, 0x48
/* 0DB3D8 80144CD8 4600020D */ trunc.w.s $f8, $f0
/* 0DB3DC 80144CDC 44034000 */ mfc1 $v1, $f8
/* 0DB3E0 80144CE0 08051340 */ j .L80144D00
/* 0DB3E4 80144CE4 00000000 */ nop
.L80144CE8:
/* 0DB3E8 80144CE8 46020001 */ sub.s $f0, $f0, $f2
/* 0DB3EC 80144CEC 3C028000 */ lui $v0, 0x8000
/* 0DB3F0 80144CF0 4600020D */ trunc.w.s $f8, $f0
/* 0DB3F4 80144CF4 44034000 */ mfc1 $v1, $f8
/* 0DB3F8 80144CF8 00000000 */ nop
/* 0DB3FC 80144CFC 00621825 */ or $v1, $v1, $v0
.L80144D00:
/* 0DB400 80144D00 44860000 */ mtc1 $a2, $f0
/* 0DB404 80144D04 00000000 */ nop
/* 0DB408 80144D08 46800020 */ cvt.s.w $f0, $f0
/* 0DB40C 80144D0C 46060002 */ mul.s $f0, $f0, $f6
/* 0DB410 80144D10 00000000 */ nop
/* 0DB414 80144D14 3C014F00 */ lui $at, 0x4f00
/* 0DB418 80144D18 44811000 */ mtc1 $at, $f2
/* 0DB41C 80144D1C A0E30000 */ sb $v1, ($a3)
/* 0DB420 80144D20 4600103E */ c.le.s $f2, $f0
/* 0DB424 80144D24 00000000 */ nop
/* 0DB428 80144D28 45010005 */ bc1t .L80144D40
/* 0DB42C 80144D2C 24A70049 */ addiu $a3, $a1, 0x49
/* 0DB430 80144D30 4600020D */ trunc.w.s $f8, $f0
/* 0DB434 80144D34 44034000 */ mfc1 $v1, $f8
/* 0DB438 80144D38 08051356 */ j .L80144D58
/* 0DB43C 80144D3C 00000000 */ nop
.L80144D40:
/* 0DB440 80144D40 46020001 */ sub.s $f0, $f0, $f2
/* 0DB444 80144D44 3C028000 */ lui $v0, 0x8000
/* 0DB448 80144D48 4600020D */ trunc.w.s $f8, $f0
/* 0DB44C 80144D4C 44034000 */ mfc1 $v1, $f8
/* 0DB450 80144D50 00000000 */ nop
/* 0DB454 80144D54 00621825 */ or $v1, $v1, $v0
.L80144D58:
/* 0DB458 80144D58 44842000 */ mtc1 $a0, $f4
/* 0DB45C 80144D5C 00000000 */ nop
/* 0DB460 80144D60 46802120 */ cvt.s.w $f4, $f4
/* 0DB464 80144D64 44880000 */ mtc1 $t0, $f0
/* 0DB468 80144D68 00000000 */ nop
/* 0DB46C 80144D6C 46800020 */ cvt.s.w $f0, $f0
/* 0DB470 80144D70 46002103 */ div.s $f4, $f4, $f0
/* 0DB474 80144D74 46062102 */ mul.s $f4, $f4, $f6
/* 0DB478 80144D78 00000000 */ nop
/* 0DB47C 80144D7C 44861000 */ mtc1 $a2, $f2
/* 0DB480 80144D80 00000000 */ nop
/* 0DB484 80144D84 468010A0 */ cvt.s.w $f2, $f2
/* 0DB488 80144D88 44890000 */ mtc1 $t1, $f0
/* 0DB48C 80144D8C 00000000 */ nop
/* 0DB490 80144D90 46800020 */ cvt.s.w $f0, $f0
/* 0DB494 80144D94 46001083 */ div.s $f2, $f2, $f0
/* 0DB498 80144D98 46061082 */ mul.s $f2, $f2, $f6
/* 0DB49C 80144D9C 00000000 */ nop
/* 0DB4A0 80144DA0 3C013F80 */ lui $at, 0x3f80
/* 0DB4A4 80144DA4 44810000 */ mtc1 $at, $f0
/* 0DB4A8 80144DA8 3C014480 */ lui $at, 0x4480
/* 0DB4AC 80144DAC 44813000 */ mtc1 $at, $f6
/* 0DB4B0 80144DB0 46040103 */ div.s $f4, $f0, $f4
/* 0DB4B4 80144DB4 46062102 */ mul.s $f4, $f4, $f6
/* 0DB4B8 80144DB8 00000000 */ nop
/* 0DB4BC 80144DBC A0E30000 */ sb $v1, ($a3)
/* 0DB4C0 80144DC0 2403FEFF */ addiu $v1, $zero, -0x101
/* 0DB4C4 80144DC4 8CA20000 */ lw $v0, ($a1)
/* 0DB4C8 80144DC8 46020083 */ div.s $f2, $f0, $f2
/* 0DB4CC 80144DCC 46061082 */ mul.s $f2, $f2, $f6
/* 0DB4D0 80144DD0 00000000 */ nop
/* 0DB4D4 80144DD4 00431024 */ and $v0, $v0, $v1
/* 0DB4D8 80144DD8 34420810 */ ori $v0, $v0, 0x810
/* 0DB4DC 80144DDC ACA20000 */ sw $v0, ($a1)
/* 0DB4E0 80144DE0 4600220D */ trunc.w.s $f8, $f4
/* 0DB4E4 80144DE4 E4A80034 */ swc1 $f8, 0x34($a1)
/* 0DB4E8 80144DE8 4600120D */ trunc.w.s $f8, $f2
/* 0DB4EC 80144DEC 03E00008 */ jr $ra
/* 0DB4F0 80144DF0 E4A80038 */ swc1 $f8, 0x38($a1)
/* 0DB4F4 80144DF4 2402F7FF */ addiu $v0, $zero, -0x801
/* 0DB4F8 80144DF8 00822024 */ and $a0, $a0, $v0
/* 0DB4FC 80144DFC 00042080 */ sll $a0, $a0, 2
/* 0DB500 80144E00 3C028015 */ lui $v0, 0x8015
/* 0DB504 80144E04 8C427960 */ lw $v0, 0x7960($v0)
/* 0DB508 80144E08 3C013F80 */ lui $at, 0x3f80
/* 0DB50C 80144E0C 44810000 */ mtc1 $at, $f0
/* 0DB510 80144E10 00822021 */ addu $a0, $a0, $v0
/* 0DB514 80144E14 8C840000 */ lw $a0, ($a0)
/* 0DB518 80144E18 24020400 */ addiu $v0, $zero, 0x400
/* 0DB51C 80144E1C AC820034 */ sw $v0, 0x34($a0)
/* 0DB520 80144E20 AC820038 */ sw $v0, 0x38($a0)
/* 0DB524 80144E24 8C820000 */ lw $v0, ($a0)
/* 0DB528 80144E28 2403FEFF */ addiu $v1, $zero, -0x101
/* 0DB52C 80144E2C A0850046 */ sb $a1, 0x46($a0)
/* 0DB530 80144E30 A0850045 */ sb $a1, 0x45($a0)
/* 0DB534 80144E34 E4800030 */ swc1 $f0, 0x30($a0)
/* 0DB538 80144E38 00431024 */ and $v0, $v0, $v1
/* 0DB53C 80144E3C 2403F7EF */ addiu $v1, $zero, -0x811
/* 0DB540 80144E40 00431024 */ and $v0, $v0, $v1
/* 0DB544 80144E44 03E00008 */ jr $ra
/* 0DB548 80144E48 AC820000 */ sw $v0, ($a0)
/* 0DB54C 80144E4C 2402F7FF */ addiu $v0, $zero, -0x801
/* 0DB550 80144E50 00822024 */ and $a0, $a0, $v0
/* 0DB554 80144E54 3C028015 */ lui $v0, 0x8015
/* 0DB558 80144E58 8C427960 */ lw $v0, 0x7960($v0)
/* 0DB55C 80144E5C 00042080 */ sll $a0, $a0, 2
/* 0DB560 80144E60 00822021 */ addu $a0, $a0, $v0
/* 0DB564 80144E64 8C820000 */ lw $v0, ($a0)
/* 0DB568 80144E68 90420000 */ lbu $v0, ($v0)
/* 0DB56C 80144E6C 03E00008 */ jr $ra
/* 0DB570 80144E70 3042000F */ andi $v0, $v0, 0xf
/* 0DB574 80144E74 2402F7FF */ addiu $v0, $zero, -0x801
/* 0DB578 80144E78 00822024 */ and $a0, $a0, $v0
/* 0DB57C 80144E7C 00042080 */ sll $a0, $a0, 2
/* 0DB580 80144E80 3C028015 */ lui $v0, 0x8015
/* 0DB584 80144E84 8C427960 */ lw $v0, 0x7960($v0)
/* 0DB588 80144E88 3C03F0FF */ lui $v1, 0xf0ff
/* 0DB58C 80144E8C 00822021 */ addu $a0, $a0, $v0
/* 0DB590 80144E90 8C840000 */ lw $a0, ($a0)
/* 0DB594 80144E94 3463FFFF */ ori $v1, $v1, 0xffff
/* 0DB598 80144E98 8C820000 */ lw $v0, ($a0)
/* 0DB59C 80144E9C 00052E00 */ sll $a1, $a1, 0x18
/* 0DB5A0 80144EA0 00431024 */ and $v0, $v0, $v1
/* 0DB5A4 80144EA4 00451025 */ or $v0, $v0, $a1
/* 0DB5A8 80144EA8 03E00008 */ jr $ra
/* 0DB5AC 80144EAC AC820000 */ sw $v0, ($a0)