papermario/ver/jp/asm/nonmatchings/main_13530/func_8003C804.s

90 lines
4.3 KiB
ArmAsm
Raw Normal View History

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8003C804
/* 17C04 8003C804 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 17C08 8003C808 AFB00018 */ sw $s0, 0x18($sp)
/* 17C0C 8003C80C 0080802D */ daddu $s0, $a0, $zero
/* 17C10 8003C810 AFB1001C */ sw $s1, 0x1c($sp)
/* 17C14 8003C814 00A0882D */ daddu $s1, $a1, $zero
/* 17C18 8003C818 AFB20020 */ sw $s2, 0x20($sp)
/* 17C1C 8003C81C 02119021 */ addu $s2, $s0, $s1
/* 17C20 8003C820 AFBF0024 */ sw $ra, 0x24($sp)
/* 17C24 8003C824 82430330 */ lb $v1, 0x330($s2)
/* 17C28 8003C828 10600005 */ beqz $v1, .L8003C840
/* 17C2C 8003C82C 24020001 */ addiu $v0, $zero, 1
/* 17C30 8003C830 10620023 */ beq $v1, $v0, .L8003C8C0
/* 17C34 8003C834 00111080 */ sll $v0, $s1, 2
/* 17C38 8003C838 0800F24D */ j .L8003C934
/* 17C3C 8003C83C 00000000 */ nop
.L8003C840:
/* 17C40 8003C840 860200A8 */ lh $v0, 0xa8($s0)
/* 17C44 8003C844 3C013FE0 */ lui $at, 0x3fe0
/* 17C48 8003C848 44810800 */ mtc1 $at, $f1
/* 17C4C 8003C84C 44800000 */ mtc1 $zero, $f0
/* 17C50 8003C850 44821000 */ mtc1 $v0, $f2
/* 17C54 8003C854 00000000 */ nop
/* 17C58 8003C858 468010A1 */ cvt.d.w $f2, $f2
/* 17C5C 8003C85C 46201082 */ mul.d $f2, $f2, $f0
/* 17C60 8003C860 00000000 */ nop
/* 17C64 8003C864 C6060040 */ lwc1 $f6, 0x40($s0)
/* 17C68 8003C868 3C013F80 */ lui $at, 0x3f80
/* 17C6C 8003C86C 44812000 */ mtc1 $at, $f4
/* 17C70 8003C870 C600003C */ lwc1 $f0, 0x3c($s0)
/* 17C74 8003C874 AFA00014 */ sw $zero, 0x14($sp)
/* 17C78 8003C878 E7A40010 */ swc1 $f4, 0x10($sp)
/* 17C7C 8003C87C 46000021 */ cvt.d.s $f0, $f0
/* 17C80 8003C880 46220000 */ add.d $f0, $f0, $f2
/* 17C84 8003C884 3C0140A0 */ lui $at, 0x40a0
/* 17C88 8003C888 44811000 */ mtc1 $at, $f2
/* 17C8C 8003C88C 8E050038 */ lw $a1, 0x38($s0)
/* 17C90 8003C890 46023181 */ sub.s $f6, $f6, $f2
/* 17C94 8003C894 46200020 */ cvt.s.d $f0, $f0
/* 17C98 8003C898 44060000 */ mfc1 $a2, $f0
/* 17C9C 8003C89C 44073000 */ mfc1 $a3, $f6
/* 17CA0 8003C8A0 0C01C5CC */ jal func_80071730
/* 17CA4 8003C8A4 24040002 */ addiu $a0, $zero, 2
/* 17CA8 8003C8A8 00111880 */ sll $v1, $s1, 2
/* 17CAC 8003C8AC 02031821 */ addu $v1, $s0, $v1
/* 17CB0 8003C8B0 AC620324 */ sw $v0, 0x324($v1)
/* 17CB4 8003C8B4 24020001 */ addiu $v0, $zero, 1
/* 17CB8 8003C8B8 0800F24D */ j .L8003C934
/* 17CBC 8003C8BC A2420330 */ sb $v0, 0x330($s2)
.L8003C8C0:
/* 17CC0 8003C8C0 02021021 */ addu $v0, $s0, $v0
/* 17CC4 8003C8C4 8C420324 */ lw $v0, 0x324($v0)
/* 17CC8 8003C8C8 C6000038 */ lwc1 $f0, 0x38($s0)
/* 17CCC 8003C8CC 8C43000C */ lw $v1, 0xc($v0)
/* 17CD0 8003C8D0 E4600004 */ swc1 $f0, 4($v1)
/* 17CD4 8003C8D4 860200A8 */ lh $v0, 0xa8($s0)
/* 17CD8 8003C8D8 3C013FE0 */ lui $at, 0x3fe0
/* 17CDC 8003C8DC 44810800 */ mtc1 $at, $f1
/* 17CE0 8003C8E0 44800000 */ mtc1 $zero, $f0
/* 17CE4 8003C8E4 44821000 */ mtc1 $v0, $f2
/* 17CE8 8003C8E8 00000000 */ nop
/* 17CEC 8003C8EC 468010A1 */ cvt.d.w $f2, $f2
/* 17CF0 8003C8F0 46201082 */ mul.d $f2, $f2, $f0
/* 17CF4 8003C8F4 00000000 */ nop
/* 17CF8 8003C8F8 C600003C */ lwc1 $f0, 0x3c($s0)
/* 17CFC 8003C8FC 46000021 */ cvt.d.s $f0, $f0
/* 17D00 8003C900 46220000 */ add.d $f0, $f0, $f2
/* 17D04 8003C904 46200020 */ cvt.s.d $f0, $f0
/* 17D08 8003C908 E4600008 */ swc1 $f0, 8($v1)
/* 17D0C 8003C90C C6020040 */ lwc1 $f2, 0x40($s0)
/* 17D10 8003C910 3C0140A0 */ lui $at, 0x40a0
/* 17D14 8003C914 44810000 */ mtc1 $at, $f0
/* 17D18 8003C918 00000000 */ nop
/* 17D1C 8003C91C 46001081 */ sub.s $f2, $f2, $f0
/* 17D20 8003C920 3C013F80 */ lui $at, 0x3f80
/* 17D24 8003C924 44810000 */ mtc1 $at, $f0
/* 17D28 8003C928 00000000 */ nop
/* 17D2C 8003C92C E4600030 */ swc1 $f0, 0x30($v1)
/* 17D30 8003C930 E462000C */ swc1 $f2, 0xc($v1)
.L8003C934:
/* 17D34 8003C934 8FBF0024 */ lw $ra, 0x24($sp)
/* 17D38 8003C938 8FB20020 */ lw $s2, 0x20($sp)
/* 17D3C 8003C93C 8FB1001C */ lw $s1, 0x1c($sp)
/* 17D40 8003C940 8FB00018 */ lw $s0, 0x18($sp)
/* 17D44 8003C944 03E00008 */ jr $ra
/* 17D48 8003C948 27BD0028 */ addiu $sp, $sp, 0x28