papermario/asm/nonmatchings/code_ED0310/func_80240320_ED0310.s
Ethan Roseman 20a99f4037 OK
2021-02-03 15:40:16 +09:00

117 lines
5.9 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80240320_ED0310
/* ED0310 80240320 27BDFFC8 */ addiu $sp, $sp, -0x38
/* ED0314 80240324 AFB3002C */ sw $s3, 0x2c($sp)
/* ED0318 80240328 0080982D */ daddu $s3, $a0, $zero
/* ED031C 8024032C AFBF0030 */ sw $ra, 0x30($sp)
/* ED0320 80240330 AFB20028 */ sw $s2, 0x28($sp)
/* ED0324 80240334 AFB10024 */ sw $s1, 0x24($sp)
/* ED0328 80240338 AFB00020 */ sw $s0, 0x20($sp)
/* ED032C 8024033C 8E710148 */ lw $s1, 0x148($s3)
/* ED0330 80240340 86240008 */ lh $a0, 8($s1)
/* ED0334 80240344 0C00F92F */ jal func_8003E4BC
/* ED0338 80240348 00A0902D */ daddu $s2, $a1, $zero
/* ED033C 8024034C 8E440004 */ lw $a0, 4($s2)
/* ED0340 80240350 0040802D */ daddu $s0, $v0, $zero
/* ED0344 80240354 00041FC2 */ srl $v1, $a0, 0x1f
/* ED0348 80240358 00832021 */ addu $a0, $a0, $v1
/* ED034C 8024035C 00042043 */ sra $a0, $a0, 1
/* ED0350 80240360 0C00AB3B */ jal func_8002ACEC
/* ED0354 80240364 24840001 */ addiu $a0, $a0, 1
/* ED0358 80240368 8E430004 */ lw $v1, 4($s2)
/* ED035C 8024036C 000327C2 */ srl $a0, $v1, 0x1f
/* ED0360 80240370 00641821 */ addu $v1, $v1, $a0
/* ED0364 80240374 00031843 */ sra $v1, $v1, 1
/* ED0368 80240378 00621821 */ addu $v1, $v1, $v0
/* ED036C 8024037C A603008E */ sh $v1, 0x8e($s0)
/* ED0370 80240380 8E2300D0 */ lw $v1, 0xd0($s1)
/* ED0374 80240384 C6000040 */ lwc1 $f0, 0x40($s0)
/* ED0378 80240388 C4640000 */ lwc1 $f4, ($v1)
/* ED037C 8024038C 46802120 */ cvt.s.w $f4, $f4
/* ED0380 80240390 C4620008 */ lwc1 $f2, 8($v1)
/* ED0384 80240394 468010A0 */ cvt.s.w $f2, $f2
/* ED0388 80240398 E7A00010 */ swc1 $f0, 0x10($sp)
/* ED038C 8024039C 8E2200D0 */ lw $v0, 0xd0($s1)
/* ED0390 802403A0 44061000 */ mfc1 $a2, $f2
/* ED0394 802403A4 C440000C */ lwc1 $f0, 0xc($v0)
/* ED0398 802403A8 46800020 */ cvt.s.w $f0, $f0
/* ED039C 802403AC E7A00014 */ swc1 $f0, 0x14($sp)
/* ED03A0 802403B0 8E2200D0 */ lw $v0, 0xd0($s1)
/* ED03A4 802403B4 44052000 */ mfc1 $a1, $f4
/* ED03A8 802403B8 C4400010 */ lwc1 $f0, 0x10($v0)
/* ED03AC 802403BC 46800020 */ cvt.s.w $f0, $f0
/* ED03B0 802403C0 E7A00018 */ swc1 $f0, 0x18($sp)
/* ED03B4 802403C4 8C640018 */ lw $a0, 0x18($v1)
/* ED03B8 802403C8 0C013431 */ jal func_8004D0C4
/* ED03BC 802403CC 8E070038 */ lw $a3, 0x38($s0)
/* ED03C0 802403D0 1040000E */ beqz $v0, .L8024040C
/* ED03C4 802403D4 00000000 */ nop
/* ED03C8 802403D8 8E2200D0 */ lw $v0, 0xd0($s1)
/* ED03CC 802403DC C60C0038 */ lwc1 $f12, 0x38($s0)
/* ED03D0 802403E0 C60E0040 */ lwc1 $f14, 0x40($s0)
/* ED03D4 802403E4 C4460000 */ lwc1 $f6, ($v0)
/* ED03D8 802403E8 468031A0 */ cvt.s.w $f6, $f6
/* ED03DC 802403EC 44063000 */ mfc1 $a2, $f6
/* ED03E0 802403F0 C4460008 */ lwc1 $f6, 8($v0)
/* ED03E4 802403F4 468031A0 */ cvt.s.w $f6, $f6
/* ED03E8 802403F8 44073000 */ mfc1 $a3, $f6
/* ED03EC 802403FC 0C00ABDC */ jal fio_validate_header_checksums
/* ED03F0 80240400 00000000 */ nop
/* ED03F4 80240404 0809010F */ j .L8024043C
/* ED03F8 80240408 E600000C */ swc1 $f0, 0xc($s0)
.L8024040C:
/* ED03FC 8024040C 0C00AB3B */ jal func_8002ACEC
/* ED0400 80240410 2404003C */ addiu $a0, $zero, 0x3c
/* ED0404 80240414 C60C000C */ lwc1 $f12, 0xc($s0)
/* ED0408 80240418 44820000 */ mtc1 $v0, $f0
/* ED040C 8024041C 00000000 */ nop
/* ED0410 80240420 46800020 */ cvt.s.w $f0, $f0
/* ED0414 80240424 46006300 */ add.s $f12, $f12, $f0
/* ED0418 80240428 3C0141F0 */ lui $at, 0x41f0
/* ED041C 8024042C 44810000 */ mtc1 $at, $f0
/* ED0420 80240430 0C00AB85 */ jal func_8002AE14
/* ED0424 80240434 46006301 */ sub.s $f12, $f12, $f0
/* ED0428 80240438 E600000C */ swc1 $f0, 0xc($s0)
.L8024043C:
/* ED042C 8024043C 8E2200CC */ lw $v0, 0xcc($s1)
/* ED0430 80240440 8C420004 */ lw $v0, 4($v0)
/* ED0434 80240444 AE020028 */ sw $v0, 0x28($s0)
/* ED0438 80240448 AE600074 */ sw $zero, 0x74($s3)
/* ED043C 8024044C 8E2200D0 */ lw $v0, 0xd0($s1)
/* ED0440 80240450 8C420014 */ lw $v0, 0x14($v0)
/* ED0444 80240454 04410004 */ bgez $v0, .L80240468
/* ED0448 80240458 00000000 */ nop
/* ED044C 8024045C C6400000 */ lwc1 $f0, ($s2)
/* ED0450 80240460 08090122 */ j .L80240488
/* ED0454 80240464 E6000018 */ swc1 $f0, 0x18($s0)
.L80240468:
/* ED0458 80240468 3C018024 */ lui $at, %hi(D_802441D0_ED41C0)
/* ED045C 8024046C D42241D0 */ ldc1 $f2, %lo(D_802441D0_ED41C0)($at)
/* ED0460 80240470 44820000 */ mtc1 $v0, $f0
/* ED0464 80240474 00000000 */ nop
/* ED0468 80240478 46800021 */ cvt.d.w $f0, $f0
/* ED046C 8024047C 46220003 */ div.d $f0, $f0, $f2
/* ED0470 80240480 46200020 */ cvt.s.d $f0, $f0
/* ED0474 80240484 E6000018 */ swc1 $f0, 0x18($s0)
.L80240488:
/* ED0478 80240488 C600003C */ lwc1 $f0, 0x3c($s0)
/* ED047C 8024048C 3C014059 */ lui $at, 0x4059
/* ED0480 80240490 44811800 */ mtc1 $at, $f3
/* ED0484 80240494 44801000 */ mtc1 $zero, $f2
/* ED0488 80240498 46000021 */ cvt.d.s $f0, $f0
/* ED048C 8024049C 46220002 */ mul.d $f0, $f0, $f2
/* ED0490 802404A0 00000000 */ nop
/* ED0494 802404A4 24020001 */ addiu $v0, $zero, 1
/* ED0498 802404A8 4620018D */ trunc.w.d $f6, $f0
/* ED049C 802404AC E626007C */ swc1 $f6, 0x7c($s1)
/* ED04A0 802404B0 AE620070 */ sw $v0, 0x70($s3)
/* ED04A4 802404B4 8FBF0030 */ lw $ra, 0x30($sp)
/* ED04A8 802404B8 8FB3002C */ lw $s3, 0x2c($sp)
/* ED04AC 802404BC 8FB20028 */ lw $s2, 0x28($sp)
/* ED04B0 802404C0 8FB10024 */ lw $s1, 0x24($sp)
/* ED04B4 802404C4 8FB00020 */ lw $s0, 0x20($sp)
/* ED04B8 802404C8 03E00008 */ jr $ra
/* ED04BC 802404CC 27BD0038 */ addiu $sp, $sp, 0x38