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

226 lines
11 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802413A8_EE7958
/* EE7958 802413A8 27BDFF88 */ addiu $sp, $sp, -0x78
/* EE795C 802413AC AFB3004C */ sw $s3, 0x4c($sp)
/* EE7960 802413B0 0080982D */ daddu $s3, $a0, $zero
/* EE7964 802413B4 AFBF0054 */ sw $ra, 0x54($sp)
/* EE7968 802413B8 AFB40050 */ sw $s4, 0x50($sp)
/* EE796C 802413BC AFB20048 */ sw $s2, 0x48($sp)
/* EE7970 802413C0 AFB10044 */ sw $s1, 0x44($sp)
/* EE7974 802413C4 AFB00040 */ sw $s0, 0x40($sp)
/* EE7978 802413C8 F7BA0070 */ sdc1 $f26, 0x70($sp)
/* EE797C 802413CC F7B80068 */ sdc1 $f24, 0x68($sp)
/* EE7980 802413D0 F7B60060 */ sdc1 $f22, 0x60($sp)
/* EE7984 802413D4 F7B40058 */ sdc1 $f20, 0x58($sp)
/* EE7988 802413D8 8E710148 */ lw $s1, 0x148($s3)
/* EE798C 802413DC 00A0902D */ daddu $s2, $a1, $zero
/* EE7990 802413E0 86240008 */ lh $a0, 8($s1)
/* EE7994 802413E4 0C00F92F */ jal func_8003E4BC
/* EE7998 802413E8 00C0A02D */ daddu $s4, $a2, $zero
/* EE799C 802413EC 0040802D */ daddu $s0, $v0, $zero
/* EE79A0 802413F0 C6200078 */ lwc1 $f0, 0x78($s1)
/* EE79A4 802413F4 46800020 */ cvt.s.w $f0, $f0
/* EE79A8 802413F8 46000021 */ cvt.d.s $f0, $f0
/* EE79AC 802413FC 3C014059 */ lui $at, 0x4059
/* EE79B0 80241400 44811800 */ mtc1 $at, $f3
/* EE79B4 80241404 44801000 */ mtc1 $zero, $f2
/* EE79B8 80241408 8602008E */ lh $v0, 0x8e($s0)
/* EE79BC 8024140C 9603008E */ lhu $v1, 0x8e($s0)
/* EE79C0 80241410 46220003 */ div.d $f0, $f0, $f2
/* EE79C4 80241414 46200620 */ cvt.s.d $f24, $f0
/* EE79C8 80241418 C6200088 */ lwc1 $f0, 0x88($s1)
/* EE79CC 8024141C 46800020 */ cvt.s.w $f0, $f0
/* EE79D0 80241420 46000021 */ cvt.d.s $f0, $f0
/* EE79D4 80241424 46220003 */ div.d $f0, $f0, $f2
/* EE79D8 80241428 46200020 */ cvt.s.d $f0, $f0
/* EE79DC 8024142C 18400003 */ blez $v0, .L8024143C
/* EE79E0 80241430 4600C680 */ add.s $f26, $f24, $f0
/* EE79E4 80241434 2462FFFF */ addiu $v0, $v1, -1
/* EE79E8 80241438 A602008E */ sh $v0, 0x8e($s0)
.L8024143C:
/* EE79EC 8024143C 8E220070 */ lw $v0, 0x70($s1)
/* EE79F0 80241440 18400034 */ blez $v0, .L80241514
/* EE79F4 80241444 00000000 */ nop
/* EE79F8 80241448 C62C0074 */ lwc1 $f12, 0x74($s1)
/* EE79FC 8024144C 46806320 */ cvt.s.w $f12, $f12
/* EE7A00 80241450 44820000 */ mtc1 $v0, $f0
/* EE7A04 80241454 00000000 */ nop
/* EE7A08 80241458 46800020 */ cvt.s.w $f0, $f0
/* EE7A0C 8024145C 46000021 */ cvt.d.s $f0, $f0
/* EE7A10 80241460 46220003 */ div.d $f0, $f0, $f2
/* EE7A14 80241464 0C00AD77 */ jal func_8002B5DC
/* EE7A18 80241468 462005A0 */ cvt.s.d $f22, $f0
/* EE7A1C 8024146C 8E020000 */ lw $v0, ($s0)
/* EE7A20 80241470 30420008 */ andi $v0, $v0, 8
/* EE7A24 80241474 10400003 */ beqz $v0, .L80241484
/* EE7A28 80241478 46000506 */ mov.s $f20, $f0
/* EE7A2C 8024147C 08090531 */ j .L802414C4
/* EE7A30 80241480 0000102D */ daddu $v0, $zero, $zero
.L80241484:
/* EE7A34 80241484 27A50028 */ addiu $a1, $sp, 0x28
/* EE7A38 80241488 27A6002C */ addiu $a2, $sp, 0x2c
/* EE7A3C 8024148C C6000038 */ lwc1 $f0, 0x38($s0)
/* EE7A40 80241490 C602003C */ lwc1 $f2, 0x3c($s0)
/* EE7A44 80241494 C6040040 */ lwc1 $f4, 0x40($s0)
/* EE7A48 80241498 3C01447A */ lui $at, 0x447a
/* EE7A4C 8024149C 44813000 */ mtc1 $at, $f6
/* EE7A50 802414A0 27A20034 */ addiu $v0, $sp, 0x34
/* EE7A54 802414A4 E7A00028 */ swc1 $f0, 0x28($sp)
/* EE7A58 802414A8 E7A2002C */ swc1 $f2, 0x2c($sp)
/* EE7A5C 802414AC E7A40030 */ swc1 $f4, 0x30($sp)
/* EE7A60 802414B0 E7A60034 */ swc1 $f6, 0x34($sp)
/* EE7A64 802414B4 AFA20010 */ sw $v0, 0x10($sp)
/* EE7A68 802414B8 8E040080 */ lw $a0, 0x80($s0)
/* EE7A6C 802414BC 0C03908F */ jal func_800E423C
/* EE7A70 802414C0 27A70030 */ addiu $a3, $sp, 0x30
.L802414C4:
/* EE7A74 802414C4 10400007 */ beqz $v0, .L802414E4
/* EE7A78 802414C8 00000000 */ nop
/* EE7A7C 802414CC 4616A082 */ mul.s $f2, $f20, $f22
/* EE7A80 802414D0 00000000 */ nop
/* EE7A84 802414D4 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* EE7A88 802414D8 46180000 */ add.s $f0, $f0, $f24
/* EE7A8C 802414DC 0809053C */ j .L802414F0
/* EE7A90 802414E0 46020000 */ add.s $f0, $f0, $f2
.L802414E4:
/* EE7A94 802414E4 4616A002 */ mul.s $f0, $f20, $f22
/* EE7A98 802414E8 00000000 */ nop
/* EE7A9C 802414EC 4600D000 */ add.s $f0, $f26, $f0
.L802414F0:
/* EE7AA0 802414F0 E600003C */ swc1 $f0, 0x3c($s0)
/* EE7AA4 802414F4 8E220074 */ lw $v0, 0x74($s1)
/* EE7AA8 802414F8 2442000A */ addiu $v0, $v0, 0xa
/* EE7AAC 802414FC 44826000 */ mtc1 $v0, $f12
/* EE7AB0 80241500 00000000 */ nop
/* EE7AB4 80241504 0C00AB85 */ jal func_8002AE14
/* EE7AB8 80241508 46806320 */ cvt.s.w $f12, $f12
/* EE7ABC 8024150C 4600020D */ trunc.w.s $f8, $f0
/* EE7AC0 80241510 E6280074 */ swc1 $f8, 0x74($s1)
.L80241514:
/* EE7AC4 80241514 8E220090 */ lw $v0, 0x90($s1)
/* EE7AC8 80241518 1C400040 */ bgtz $v0, .L8024161C
/* EE7ACC 8024151C 2442FFFF */ addiu $v0, $v0, -1
/* EE7AD0 80241520 860200A8 */ lh $v0, 0xa8($s0)
/* EE7AD4 80241524 C600003C */ lwc1 $f0, 0x3c($s0)
/* EE7AD8 80241528 44821000 */ mtc1 $v0, $f2
/* EE7ADC 8024152C 00000000 */ nop
/* EE7AE0 80241530 468010A0 */ cvt.s.w $f2, $f2
/* EE7AE4 80241534 3C028010 */ lui $v0, %hi(D_800FFC90)
/* EE7AE8 80241538 8C42FC90 */ lw $v0, %lo(D_800FFC90)($v0)
/* EE7AEC 8024153C 46020000 */ add.s $f0, $f0, $f2
/* EE7AF0 80241540 3C014024 */ lui $at, 0x4024
/* EE7AF4 80241544 44812800 */ mtc1 $at, $f5
/* EE7AF8 80241548 44802000 */ mtc1 $zero, $f4
/* EE7AFC 8024154C C442002C */ lwc1 $f2, 0x2c($v0)
/* EE7B00 80241550 46000021 */ cvt.d.s $f0, $f0
/* EE7B04 80241554 46240000 */ add.d $f0, $f0, $f4
/* EE7B08 80241558 460010A1 */ cvt.d.s $f2, $f2
/* EE7B0C 8024155C 4620103C */ c.lt.d $f2, $f0
/* EE7B10 80241560 00000000 */ nop
/* EE7B14 80241564 4500002E */ bc1f .L80241620
/* EE7B18 80241568 0280202D */ daddu $a0, $s4, $zero
/* EE7B1C 8024156C 24020001 */ addiu $v0, $zero, 1
/* EE7B20 80241570 AFA20010 */ sw $v0, 0x10($sp)
/* EE7B24 80241574 8E460024 */ lw $a2, 0x24($s2)
/* EE7B28 80241578 8E470028 */ lw $a3, 0x28($s2)
/* EE7B2C 8024157C 0C013469 */ jal func_8004D1A4
/* EE7B30 80241580 0220282D */ daddu $a1, $s1, $zero
/* EE7B34 80241584 10400026 */ beqz $v0, .L80241620
/* EE7B38 80241588 0000202D */ daddu $a0, $zero, $zero
/* EE7B3C 8024158C 0200282D */ daddu $a1, $s0, $zero
/* EE7B40 80241590 0000302D */ daddu $a2, $zero, $zero
/* EE7B44 80241594 2412000C */ addiu $s2, $zero, 0xc
/* EE7B48 80241598 860300A8 */ lh $v1, 0xa8($s0)
/* EE7B4C 8024159C 3C013F80 */ lui $at, 0x3f80
/* EE7B50 802415A0 44810000 */ mtc1 $at, $f0
/* EE7B54 802415A4 3C014000 */ lui $at, 0x4000
/* EE7B58 802415A8 44811000 */ mtc1 $at, $f2
/* EE7B5C 802415AC 3C01C1A0 */ lui $at, 0xc1a0
/* EE7B60 802415B0 44812000 */ mtc1 $at, $f4
/* EE7B64 802415B4 44834000 */ mtc1 $v1, $f8
/* EE7B68 802415B8 00000000 */ nop
/* EE7B6C 802415BC 46804220 */ cvt.s.w $f8, $f8
/* EE7B70 802415C0 44074000 */ mfc1 $a3, $f8
/* EE7B74 802415C4 27A20038 */ addiu $v0, $sp, 0x38
/* EE7B78 802415C8 AFB2001C */ sw $s2, 0x1c($sp)
/* EE7B7C 802415CC AFA20020 */ sw $v0, 0x20($sp)
/* EE7B80 802415D0 E7A00010 */ swc1 $f0, 0x10($sp)
/* EE7B84 802415D4 E7A20014 */ swc1 $f2, 0x14($sp)
/* EE7B88 802415D8 0C01D444 */ jal func_80075110
/* EE7B8C 802415DC E7A40018 */ swc1 $f4, 0x18($sp)
/* EE7B90 802415E0 0200202D */ daddu $a0, $s0, $zero
/* EE7B94 802415E4 240502F4 */ addiu $a1, $zero, 0x2f4
/* EE7B98 802415E8 C480003C */ lwc1 $f0, 0x3c($a0)
/* EE7B9C 802415EC 3C060020 */ lui $a2, 0x20
/* EE7BA0 802415F0 0C013600 */ jal func_8004D800
/* EE7BA4 802415F4 E4800064 */ swc1 $f0, 0x64($a0)
/* EE7BA8 802415F8 8E220018 */ lw $v0, 0x18($s1)
/* EE7BAC 802415FC 9442002A */ lhu $v0, 0x2a($v0)
/* EE7BB0 80241600 30420001 */ andi $v0, $v0, 1
/* EE7BB4 80241604 10400003 */ beqz $v0, .L80241614
/* EE7BB8 80241608 2402000A */ addiu $v0, $zero, 0xa
/* EE7BBC 8024160C 080905AF */ j .L802416BC
/* EE7BC0 80241610 AE620070 */ sw $v0, 0x70($s3)
.L80241614:
/* EE7BC4 80241614 080905AF */ j .L802416BC
/* EE7BC8 80241618 AE720070 */ sw $s2, 0x70($s3)
.L8024161C:
/* EE7BCC 8024161C AE220090 */ sw $v0, 0x90($s1)
.L80241620:
/* EE7BD0 80241620 8602008C */ lh $v0, 0x8c($s0)
/* EE7BD4 80241624 14400025 */ bnez $v0, .L802416BC
/* EE7BD8 80241628 00000000 */ nop
/* EE7BDC 8024162C 8602008E */ lh $v0, 0x8e($s0)
/* EE7BE0 80241630 1C400022 */ bgtz $v0, .L802416BC
/* EE7BE4 80241634 00000000 */ nop
/* EE7BE8 80241638 8E620074 */ lw $v0, 0x74($s3)
/* EE7BEC 8024163C 2442FFFF */ addiu $v0, $v0, -1
/* EE7BF0 80241640 1840001D */ blez $v0, .L802416B8
/* EE7BF4 80241644 AE620074 */ sw $v0, 0x74($s3)
/* EE7BF8 80241648 8E220018 */ lw $v0, 0x18($s1)
/* EE7BFC 8024164C 9442002A */ lhu $v0, 0x2a($v0)
/* EE7C00 80241650 30420010 */ andi $v0, $v0, 0x10
/* EE7C04 80241654 14400007 */ bnez $v0, .L80241674
/* EE7C08 80241658 00000000 */ nop
/* EE7C0C 8024165C C600000C */ lwc1 $f0, 0xc($s0)
/* EE7C10 80241660 3C014334 */ lui $at, 0x4334
/* EE7C14 80241664 44816000 */ mtc1 $at, $f12
/* EE7C18 80241668 0C00AB85 */ jal func_8002AE14
/* EE7C1C 8024166C 460C0300 */ add.s $f12, $f0, $f12
/* EE7C20 80241670 E600000C */ swc1 $f0, 0xc($s0)
.L80241674:
/* EE7C24 80241674 0C00AB3B */ jal func_8002ACEC
/* EE7C28 80241678 240403E8 */ addiu $a0, $zero, 0x3e8
/* EE7C2C 8024167C 3C032E8B */ lui $v1, 0x2e8b
/* EE7C30 80241680 3463A2E9 */ ori $v1, $v1, 0xa2e9
/* EE7C34 80241684 00430018 */ mult $v0, $v1
/* EE7C38 80241688 00021FC3 */ sra $v1, $v0, 0x1f
/* EE7C3C 8024168C 00004010 */ mfhi $t0
/* EE7C40 80241690 00082043 */ sra $a0, $t0, 1
/* EE7C44 80241694 00832023 */ subu $a0, $a0, $v1
/* EE7C48 80241698 00041840 */ sll $v1, $a0, 1
/* EE7C4C 8024169C 00641821 */ addu $v1, $v1, $a0
/* EE7C50 802416A0 00031880 */ sll $v1, $v1, 2
/* EE7C54 802416A4 00641823 */ subu $v1, $v1, $a0
/* EE7C58 802416A8 00431023 */ subu $v0, $v0, $v1
/* EE7C5C 802416AC 24420005 */ addiu $v0, $v0, 5
/* EE7C60 802416B0 080905AF */ j .L802416BC
/* EE7C64 802416B4 A602008E */ sh $v0, 0x8e($s0)
.L802416B8:
/* EE7C68 802416B8 AE600070 */ sw $zero, 0x70($s3)
.L802416BC:
/* EE7C6C 802416BC 8FBF0054 */ lw $ra, 0x54($sp)
/* EE7C70 802416C0 8FB40050 */ lw $s4, 0x50($sp)
/* EE7C74 802416C4 8FB3004C */ lw $s3, 0x4c($sp)
/* EE7C78 802416C8 8FB20048 */ lw $s2, 0x48($sp)
/* EE7C7C 802416CC 8FB10044 */ lw $s1, 0x44($sp)
/* EE7C80 802416D0 8FB00040 */ lw $s0, 0x40($sp)
/* EE7C84 802416D4 D7BA0070 */ ldc1 $f26, 0x70($sp)
/* EE7C88 802416D8 D7B80068 */ ldc1 $f24, 0x68($sp)
/* EE7C8C 802416DC D7B60060 */ ldc1 $f22, 0x60($sp)
/* EE7C90 802416E0 D7B40058 */ ldc1 $f20, 0x58($sp)
/* EE7C94 802416E4 03E00008 */ jr $ra
/* EE7C98 802416E8 27BD0078 */ addiu $sp, $sp, 0x78