.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