papermario/asm/nonmatchings/code_13870_len_6980/func_8003C668.s
2020-08-12 21:56:23 -04:00

85 lines
3.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.include "include/macro.inc"
glabel func_8003C668
/* 017A68 8003C668 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 017A6C 8003C66C AFB00018 */ sw $s0, 0x18($sp)
/* 017A70 8003C670 0080802D */ daddu $s0, $a0, $zero
/* 017A74 8003C674 AFB1001C */ sw $s1, 0x1c($sp)
/* 017A78 8003C678 00A0882D */ daddu $s1, $a1, $zero
/* 017A7C 8003C67C AFB20020 */ sw $s2, 0x20($sp)
/* 017A80 8003C680 02119021 */ addu $s2, $s0, $s1
/* 017A84 8003C684 AFBF0024 */ sw $ra, 0x24($sp)
/* 017A88 8003C688 82430330 */ lb $v1, 0x330($s2)
/* 017A8C 8003C68C 10600005 */ beqz $v1, .L8003C6A4
/* 017A90 8003C690 24020001 */ addiu $v0, $zero, 1
/* 017A94 8003C694 10620012 */ beq $v1, $v0, .L8003C6E0
/* 017A98 8003C698 00111080 */ sll $v0, $s1, 2
/* 017A9C 8003C69C 0800F1DD */ j .L8003C774
/* 017AA0 8003C6A0 00000000 */ nop
.L8003C6A4:
/* 017AA4 8003C6A4 00111080 */ sll $v0, $s1, 2
/* 017AA8 8003C6A8 24420324 */ addiu $v0, $v0, 0x324
/* 017AAC 8003C6AC 3C013F80 */ lui $at, 0x3f80
/* 017AB0 8003C6B0 44810000 */ mtc1 $at, $f0
/* 017AB4 8003C6B4 02021021 */ addu $v0, $s0, $v0
/* 017AB8 8003C6B8 AFA20014 */ sw $v0, 0x14($sp)
/* 017ABC 8003C6BC E7A00010 */ swc1 $f0, 0x10($sp)
/* 017AC0 8003C6C0 8E050038 */ lw $a1, 0x38($s0)
/* 017AC4 8003C6C4 8E06003C */ lw $a2, 0x3c($s0)
/* 017AC8 8003C6C8 8E070040 */ lw $a3, 0x40($s0)
/* 017ACC 8003C6CC 0C01C3AC */ jal func_80070EB0
/* 017AD0 8003C6D0 24040002 */ addiu $a0, $zero, 2
/* 017AD4 8003C6D4 24020001 */ addiu $v0, $zero, 1
/* 017AD8 8003C6D8 A2420330 */ sb $v0, 0x330($s2)
/* 017ADC 8003C6DC 00111080 */ sll $v0, $s1, 2
.L8003C6E0:
/* 017AE0 8003C6E0 02021021 */ addu $v0, $s0, $v0
/* 017AE4 8003C6E4 8C420324 */ lw $v0, 0x324($v0)
/* 017AE8 8003C6E8 C6000038 */ lwc1 $f0, 0x38($s0)
/* 017AEC 8003C6EC 8C43000C */ lw $v1, 0xc($v0)
/* 017AF0 8003C6F0 E4600004 */ swc1 $f0, 4($v1)
/* 017AF4 8003C6F4 C600003C */ lwc1 $f0, 0x3c($s0)
/* 017AF8 8003C6F8 E4600008 */ swc1 $f0, 8($v1)
/* 017AFC 8003C6FC C6000040 */ lwc1 $f0, 0x40($s0)
/* 017B00 8003C700 E460000C */ swc1 $f0, 0xc($v1)
/* 017B04 8003C704 860200A6 */ lh $v0, 0xa6($s0)
/* 017B08 8003C708 C6000054 */ lwc1 $f0, 0x54($s0)
/* 017B0C 8003C70C 44821000 */ mtc1 $v0, $f2
/* 017B10 8003C710 00000000 */ nop
/* 017B14 8003C714 468010A0 */ cvt.s.w $f2, $f2
/* 017B18 8003C718 46020002 */ mul.s $f0, $f0, $f2
/* 017B1C 8003C71C 00000000 */ nop
/* 017B20 8003C720 3C01800A */ lui $at, 0x800a
/* 017B24 8003C724 D4248520 */ ldc1 $f4, -0x7ae0($at)
/* 017B28 8003C728 46000021 */ cvt.d.s $f0, $f0
/* 017B2C 8003C72C 46240002 */ mul.d $f0, $f0, $f4
/* 017B30 8003C730 00000000 */ nop
/* 017B34 8003C734 46200020 */ cvt.s.d $f0, $f0
/* 017B38 8003C738 E460001C */ swc1 $f0, 0x1c($v1)
/* 017B3C 8003C73C 860200A8 */ lh $v0, 0xa8($s0)
/* 017B40 8003C740 C6000058 */ lwc1 $f0, 0x58($s0)
/* 017B44 8003C744 44821000 */ mtc1 $v0, $f2
/* 017B48 8003C748 00000000 */ nop
/* 017B4C 8003C74C 468010A0 */ cvt.s.w $f2, $f2
/* 017B50 8003C750 46020002 */ mul.s $f0, $f0, $f2
/* 017B54 8003C754 00000000 */ nop
/* 017B58 8003C758 46000021 */ cvt.d.s $f0, $f0
/* 017B5C 8003C75C 46240002 */ mul.d $f0, $f0, $f4
/* 017B60 8003C760 00000000 */ nop
/* 017B64 8003C764 46200020 */ cvt.s.d $f0, $f0
/* 017B68 8003C768 E4600020 */ swc1 $f0, 0x20($v1)
/* 017B6C 8003C76C C6000034 */ lwc1 $f0, 0x34($s0)
/* 017B70 8003C770 E4600064 */ swc1 $f0, 0x64($v1)
.L8003C774:
/* 017B74 8003C774 8FBF0024 */ lw $ra, 0x24($sp)
/* 017B78 8003C778 8FB20020 */ lw $s2, 0x20($sp)
/* 017B7C 8003C77C 8FB1001C */ lw $s1, 0x1c($sp)
/* 017B80 8003C780 8FB00018 */ lw $s0, 0x18($sp)
/* 017B84 8003C784 03E00008 */ jr $ra
/* 017B88 8003C788 27BD0028 */ addiu $sp, $sp, 0x28