papermario/asm/nonmatchings/code_EDEA00/func_80240E84_EDF844.s
2021-01-13 00:42:27 +09:00

84 lines
4.3 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240E84_EDF844
/* EDF844 80240E84 27BDFFD8 */ addiu $sp, $sp, -0x28
/* EDF848 80240E88 AFB3001C */ sw $s3, 0x1c($sp)
/* EDF84C 80240E8C 0080982D */ daddu $s3, $a0, $zero
/* EDF850 80240E90 AFBF0020 */ sw $ra, 0x20($sp)
/* EDF854 80240E94 AFB20018 */ sw $s2, 0x18($sp)
/* EDF858 80240E98 AFB10014 */ sw $s1, 0x14($sp)
/* EDF85C 80240E9C AFB00010 */ sw $s0, 0x10($sp)
/* EDF860 80240EA0 8E720148 */ lw $s2, 0x148($s3)
/* EDF864 80240EA4 86440008 */ lh $a0, 8($s2)
/* EDF868 80240EA8 0C00F92F */ jal func_8003E4BC
/* EDF86C 80240EAC 00A0802D */ daddu $s0, $a1, $zero
/* EDF870 80240EB0 0040882D */ daddu $s1, $v0, $zero
/* EDF874 80240EB4 C6420080 */ lwc1 $f2, 0x80($s2)
/* EDF878 80240EB8 468010A0 */ cvt.s.w $f2, $f2
/* EDF87C 80240EBC 460010A1 */ cvt.d.s $f2, $f2
/* EDF880 80240EC0 C6400084 */ lwc1 $f0, 0x84($s2)
/* EDF884 80240EC4 46800020 */ cvt.s.w $f0, $f0
/* EDF888 80240EC8 46000021 */ cvt.d.s $f0, $f0
/* EDF88C 80240ECC 3C014059 */ lui $at, 0x4059
/* EDF890 80240ED0 44812800 */ mtc1 $at, $f5
/* EDF894 80240ED4 44802000 */ mtc1 $zero, $f4
/* EDF898 80240ED8 8E4200CC */ lw $v0, 0xcc($s2)
/* EDF89C 80240EDC C62C0038 */ lwc1 $f12, 0x38($s1)
/* EDF8A0 80240EE0 C62E0040 */ lwc1 $f14, 0x40($s1)
/* EDF8A4 80240EE4 46241083 */ div.d $f2, $f2, $f4
/* EDF8A8 80240EE8 462010A0 */ cvt.s.d $f2, $f2
/* EDF8AC 80240EEC 46240003 */ div.d $f0, $f0, $f4
/* EDF8B0 80240EF0 8C420020 */ lw $v0, 0x20($v0)
/* EDF8B4 80240EF4 46200020 */ cvt.s.d $f0, $f0
/* EDF8B8 80240EF8 E622001C */ swc1 $f2, 0x1c($s1)
/* EDF8BC 80240EFC E6200014 */ swc1 $f0, 0x14($s1)
/* EDF8C0 80240F00 AE220028 */ sw $v0, 0x28($s1)
/* EDF8C4 80240F04 C6000018 */ lwc1 $f0, 0x18($s0)
/* EDF8C8 80240F08 3C028010 */ lui $v0, %hi(D_800FFC90)
/* EDF8CC 80240F0C 8C42FC90 */ lw $v0, %lo(D_800FFC90)($v0)
/* EDF8D0 80240F10 E6200018 */ swc1 $f0, 0x18($s1)
/* EDF8D4 80240F14 8C460028 */ lw $a2, 0x28($v0)
/* EDF8D8 80240F18 0C00ABDC */ jal fio_validate_header_checksums
/* EDF8DC 80240F1C 8C470030 */ lw $a3, 0x30($v0)
/* EDF8E0 80240F20 E620000C */ swc1 $f0, 0xc($s1)
/* EDF8E4 80240F24 8E420018 */ lw $v0, 0x18($s2)
/* EDF8E8 80240F28 AE400074 */ sw $zero, 0x74($s2)
/* EDF8EC 80240F2C 9442002A */ lhu $v0, 0x2a($v0)
/* EDF8F0 80240F30 30420002 */ andi $v0, $v0, 2
/* EDF8F4 80240F34 10400005 */ beqz $v0, .L80240F4C
/* EDF8F8 80240F38 24020003 */ addiu $v0, $zero, 3
/* EDF8FC 80240F3C A622008E */ sh $v0, 0x8e($s1)
/* EDF900 80240F40 2402000D */ addiu $v0, $zero, 0xd
/* EDF904 80240F44 080903E7 */ j .L80240F9C
/* EDF908 80240F48 AE620070 */ sw $v0, 0x70($s3)
.L80240F4C:
/* EDF90C 80240F4C 24030001 */ addiu $v1, $zero, 1
/* EDF910 80240F50 2402000E */ addiu $v0, $zero, 0xe
/* EDF914 80240F54 A623008E */ sh $v1, 0x8e($s1)
/* EDF918 80240F58 AE620070 */ sw $v0, 0x70($s3)
/* EDF91C 80240F5C C6200038 */ lwc1 $f0, 0x38($s1)
/* EDF920 80240F60 4600018D */ trunc.w.s $f6, $f0
/* EDF924 80240F64 44023000 */ mfc1 $v0, $f6
/* EDF928 80240F68 00000000 */ nop
/* EDF92C 80240F6C A6420010 */ sh $v0, 0x10($s2)
/* EDF930 80240F70 C620003C */ lwc1 $f0, 0x3c($s1)
/* EDF934 80240F74 4600018D */ trunc.w.s $f6, $f0
/* EDF938 80240F78 44023000 */ mfc1 $v0, $f6
/* EDF93C 80240F7C 00000000 */ nop
/* EDF940 80240F80 A6420012 */ sh $v0, 0x12($s2)
/* EDF944 80240F84 C6200040 */ lwc1 $f0, 0x40($s1)
/* EDF948 80240F88 A2430007 */ sb $v1, 7($s2)
/* EDF94C 80240F8C 4600018D */ trunc.w.s $f6, $f0
/* EDF950 80240F90 44023000 */ mfc1 $v0, $f6
/* EDF954 80240F94 00000000 */ nop
/* EDF958 80240F98 A6420014 */ sh $v0, 0x14($s2)
.L80240F9C:
/* EDF95C 80240F9C 8FBF0020 */ lw $ra, 0x20($sp)
/* EDF960 80240FA0 8FB3001C */ lw $s3, 0x1c($sp)
/* EDF964 80240FA4 8FB20018 */ lw $s2, 0x18($sp)
/* EDF968 80240FA8 8FB10014 */ lw $s1, 0x14($sp)
/* EDF96C 80240FAC 8FB00010 */ lw $s0, 0x10($sp)
/* EDF970 80240FB0 03E00008 */ jr $ra
/* EDF974 80240FB4 27BD0028 */ addiu $sp, $sp, 0x28