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

267 lines
13 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E003E000
/* 352440 E003E000 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 352444 E003E004 F7BA00A0 */ sdc1 $f26, 0xa0($sp)
/* 352448 E003E008 C7BA00C8 */ lwc1 $f26, 0xc8($sp)
/* 35244C E003E00C F7BE00B0 */ sdc1 $f30, 0xb0($sp)
/* 352450 E003E010 C7BE00CC */ lwc1 $f30, 0xcc($sp)
/* 352454 E003E014 44800000 */ mtc1 $zero, $f0
/* 352458 E003E018 F7BC00A8 */ sdc1 $f28, 0xa8($sp)
/* 35245C E003E01C C7BC00D0 */ lwc1 $f28, 0xd0($sp)
/* 352460 E003E020 AFB20080 */ sw $s2, 0x80($sp)
/* 352464 E003E024 0080902D */ daddu $s2, $a0, $zero
/* 352468 E003E028 AFB00078 */ sw $s0, 0x78($sp)
/* 35246C E003E02C 27B00010 */ addiu $s0, $sp, 0x10
/* 352470 E003E030 AFB1007C */ sw $s1, 0x7c($sp)
/* 352474 E003E034 24110001 */ addiu $s1, $zero, 1
/* 352478 E003E038 AFBF0084 */ sw $ra, 0x84($sp)
/* 35247C E003E03C F7B80098 */ sdc1 $f24, 0x98($sp)
/* 352480 E003E040 F7B60090 */ sdc1 $f22, 0x90($sp)
/* 352484 E003E044 F7B40088 */ sdc1 $f20, 0x88($sp)
/* 352488 E003E048 AFA500BC */ sw $a1, 0xbc($sp)
/* 35248C E003E04C AFA600C0 */ sw $a2, 0xc0($sp)
/* 352490 E003E050 4600D032 */ c.eq.s $f26, $f0
/* 352494 E003E054 00000000 */ nop
/* 352498 E003E058 45000009 */ bc1f .LE003E080
/* 35249C E003E05C AFA700C4 */ sw $a3, 0xc4($sp)
/* 3524A0 E003E060 4600F032 */ c.eq.s $f30, $f0
/* 3524A4 E003E064 00000000 */ nop
/* 3524A8 E003E068 45000005 */ bc1f .LE003E080
/* 3524AC E003E06C 00000000 */ nop
/* 3524B0 E003E070 4600E032 */ c.eq.s $f28, $f0
/* 3524B4 E003E074 00000000 */ nop
/* 3524B8 E003E078 450100D3 */ bc1t .LE003E3C8
/* 3524BC E003E07C 0000102D */ daddu $v0, $zero, $zero
.LE003E080:
/* 3524C0 E003E080 461AD002 */ mul.s $f0, $f26, $f26
/* 3524C4 E003E084 00000000 */ nop
/* 3524C8 E003E088 461EF082 */ mul.s $f2, $f30, $f30
/* 3524CC E003E08C 00000000 */ nop
/* 3524D0 E003E090 461CE102 */ mul.s $f4, $f28, $f28
/* 3524D4 E003E094 00000000 */ nop
/* 3524D8 E003E098 46020000 */ add.s $f0, $f0, $f2
/* 3524DC E003E09C 46040300 */ add.s $f12, $f0, $f4
/* 3524E0 E003E0A0 4480A000 */ mtc1 $zero, $f20
/* 3524E4 E003E0A4 00000000 */ nop
/* 3524E8 E003E0A8 46146032 */ c.eq.s $f12, $f20
/* 3524EC E003E0AC 00000000 */ nop
/* 3524F0 E003E0B0 450100C5 */ bc1t .LE003E3C8
/* 3524F4 E003E0B4 0000102D */ daddu $v0, $zero, $zero
/* 3524F8 E003E0B8 0C080154 */ jal func_E0200550
/* 3524FC E003E0BC 00000000 */ nop
/* 352500 E003E0C0 3C013F80 */ lui $at, 0x3f80
/* 352504 E003E0C4 44811000 */ mtc1 $at, $f2
/* 352508 E003E0C8 00000000 */ nop
/* 35250C E003E0CC 46001303 */ div.s $f12, $f2, $f0
/* 352510 E003E0D0 460CD682 */ mul.s $f26, $f26, $f12
/* 352514 E003E0D4 00000000 */ nop
/* 352518 E003E0D8 460CF782 */ mul.s $f30, $f30, $f12
/* 35251C E003E0DC 00000000 */ nop
/* 352520 E003E0E0 460CE702 */ mul.s $f28, $f28, $f12
/* 352524 E003E0E4 00000000 */ nop
/* 352528 E003E0E8 4614D032 */ c.eq.s $f26, $f20
/* 35252C E003E0EC 00000000 */ nop
/* 352530 E003E0F0 45000006 */ bc1f .LE003E10C
/* 352534 E003E0F4 4600E586 */ mov.s $f22, $f28
/* 352538 E003E0F8 4614E032 */ c.eq.s $f28, $f20
/* 35253C E003E0FC 00000000 */ nop
/* 352540 E003E100 45010005 */ bc1t .LE003E118
/* 352544 E003E104 46001586 */ mov.s $f22, $f2
/* 352548 E003E108 4600E586 */ mov.s $f22, $f28
.LE003E10C:
/* 35254C E003E10C 4600A606 */ mov.s $f24, $f20
/* 352550 E003E110 0800F847 */ j .LE003E11C
/* 352554 E003E114 4600D507 */ neg.s $f20, $f26
.LE003E118:
/* 352558 E003E118 4600A606 */ mov.s $f24, $f20
.LE003E11C:
/* 35255C E003E11C 4616B002 */ mul.s $f0, $f22, $f22
/* 352560 E003E120 00000000 */ nop
/* 352564 E003E124 4618C082 */ mul.s $f2, $f24, $f24
/* 352568 E003E128 00000000 */ nop
/* 35256C E003E12C 4614A102 */ mul.s $f4, $f20, $f20
/* 352570 E003E130 00000000 */ nop
/* 352574 E003E134 46020000 */ add.s $f0, $f0, $f2
/* 352578 E003E138 46040300 */ add.s $f12, $f0, $f4
/* 35257C E003E13C 44808000 */ mtc1 $zero, $f16
/* 352580 E003E140 00000000 */ nop
/* 352584 E003E144 46106032 */ c.eq.s $f12, $f16
/* 352588 E003E148 00000000 */ nop
/* 35258C E003E14C 4501009E */ bc1t .LE003E3C8
/* 352590 E003E150 0000102D */ daddu $v0, $zero, $zero
/* 352594 E003E154 0C080154 */ jal func_E0200550
/* 352598 E003E158 00000000 */ nop
/* 35259C E003E15C 3C013F80 */ lui $at, 0x3f80
/* 3525A0 E003E160 44819000 */ mtc1 $at, $f18
/* 3525A4 E003E164 00000000 */ nop
/* 3525A8 E003E168 46009303 */ div.s $f12, $f18, $f0
/* 3525AC E003E16C 460CB582 */ mul.s $f22, $f22, $f12
/* 3525B0 E003E170 00000000 */ nop
/* 3525B4 E003E174 460CC602 */ mul.s $f24, $f24, $f12
/* 3525B8 E003E178 00000000 */ nop
/* 3525BC E003E17C 460CA502 */ mul.s $f20, $f20, $f12
/* 3525C0 E003E180 00000000 */ nop
/* 3525C4 E003E184 461CC102 */ mul.s $f4, $f24, $f28
/* 3525C8 E003E188 00000000 */ nop
/* 3525CC E003E18C 461EA002 */ mul.s $f0, $f20, $f30
/* 3525D0 E003E190 00000000 */ nop
/* 3525D4 E003E194 461AA202 */ mul.s $f8, $f20, $f26
/* 3525D8 E003E198 00000000 */ nop
/* 3525DC E003E19C 461CB082 */ mul.s $f2, $f22, $f28
/* 3525E0 E003E1A0 00000000 */ nop
/* 3525E4 E003E1A4 461EB282 */ mul.s $f10, $f22, $f30
/* 3525E8 E003E1A8 00000000 */ nop
/* 3525EC E003E1AC 461AC182 */ mul.s $f6, $f24, $f26
/* 3525F0 E003E1B0 00000000 */ nop
/* 3525F4 E003E1B4 46002101 */ sub.s $f4, $f4, $f0
/* 3525F8 E003E1B8 46042002 */ mul.s $f0, $f4, $f4
/* 3525FC E003E1BC 00000000 */ nop
/* 352600 E003E1C0 46024201 */ sub.s $f8, $f8, $f2
/* 352604 E003E1C4 E7A40068 */ swc1 $f4, 0x68($sp)
/* 352608 E003E1C8 46084102 */ mul.s $f4, $f8, $f8
/* 35260C E003E1CC 00000000 */ nop
/* 352610 E003E1D0 46065281 */ sub.s $f10, $f10, $f6
/* 352614 E003E1D4 460A5082 */ mul.s $f2, $f10, $f10
/* 352618 E003E1D8 00000000 */ nop
/* 35261C E003E1DC 46040000 */ add.s $f0, $f0, $f4
/* 352620 E003E1E0 44808000 */ mtc1 $zero, $f16
/* 352624 E003E1E4 46020300 */ add.s $f12, $f0, $f2
/* 352628 E003E1E8 E7A8006C */ swc1 $f8, 0x6c($sp)
/* 35262C E003E1EC 46106032 */ c.eq.s $f12, $f16
/* 352630 E003E1F0 00000000 */ nop
/* 352634 E003E1F4 45000003 */ bc1f .LE003E204
/* 352638 E003E1F8 E7AA0070 */ swc1 $f10, 0x70($sp)
/* 35263C E003E1FC 0800F8F2 */ j .LE003E3C8
/* 352640 E003E200 0000102D */ daddu $v0, $zero, $zero
.LE003E204:
/* 352644 E003E204 0C080154 */ jal func_E0200550
/* 352648 E003E208 00000000 */ nop
/* 35264C E003E20C 3C013F80 */ lui $at, 0x3f80
/* 352650 E003E210 44819000 */ mtc1 $at, $f18
/* 352654 E003E214 C7B00068 */ lwc1 $f16, 0x68($sp)
/* 352658 E003E218 46009303 */ div.s $f12, $f18, $f0
/* 35265C E003E21C 460C8402 */ mul.s $f16, $f16, $f12
/* 352660 E003E220 00000000 */ nop
/* 352664 E003E224 C7B2006C */ lwc1 $f18, 0x6c($sp)
/* 352668 E003E228 460C9482 */ mul.s $f18, $f18, $f12
/* 35266C E003E22C 00000000 */ nop
/* 352670 E003E230 E7B00068 */ swc1 $f16, 0x68($sp)
/* 352674 E003E234 C7B00070 */ lwc1 $f16, 0x70($sp)
/* 352678 E003E238 460C8402 */ mul.s $f16, $f16, $f12
/* 35267C E003E23C 00000000 */ nop
/* 352680 E003E240 0200202D */ daddu $a0, $s0, $zero
/* 352684 E003E244 3C02E004 */ lui $v0, %hi(func_E003E3F8)
/* 352688 E003E248 2442E3F8 */ addiu $v0, $v0, %lo(func_E003E3F8)
/* 35268C E003E24C E7B2006C */ swc1 $f18, 0x6c($sp)
/* 352690 E003E250 E7B00070 */ swc1 $f16, 0x70($sp)
/* 352694 E003E254 AC820008 */ sw $v0, 8($a0)
/* 352698 E003E258 3C02E004 */ lui $v0, %hi(func_E003E400)
/* 35269C E003E25C 2442E400 */ addiu $v0, $v0, %lo(func_E003E400)
/* 3526A0 E003E260 AC82000C */ sw $v0, 0xc($a0)
/* 3526A4 E003E264 3C02E004 */ lui $v0, %hi(func_E003E5F4)
/* 3526A8 E003E268 2442E5F4 */ addiu $v0, $v0, %lo(func_E003E5F4)
/* 3526AC E003E26C AC820010 */ sw $v0, 0x10($a0)
/* 3526B0 E003E270 2402001F */ addiu $v0, $zero, 0x1f
/* 3526B4 E003E274 AC800000 */ sw $zero, ($a0)
/* 3526B8 E003E278 AC800014 */ sw $zero, 0x14($a0)
/* 3526BC E003E27C 0C080124 */ jal func_E0200490
/* 3526C0 E003E280 AC820004 */ sw $v0, 4($a0)
/* 3526C4 E003E284 00112140 */ sll $a0, $s1, 5
/* 3526C8 E003E288 00912023 */ subu $a0, $a0, $s1
/* 3526CC E003E28C 00042080 */ sll $a0, $a0, 2
/* 3526D0 E003E290 0040802D */ daddu $s0, $v0, $zero
/* 3526D4 E003E294 0C08012C */ jal func_E02004B0
/* 3526D8 E003E298 AE110008 */ sw $s1, 8($s0)
/* 3526DC E003E29C 0040302D */ daddu $a2, $v0, $zero
/* 3526E0 E003E2A0 14C00003 */ bnez $a2, .LE003E2B0
/* 3526E4 E003E2A4 AE02000C */ sw $v0, 0xc($s0)
.LE003E2A8:
/* 3526E8 E003E2A8 0800F8AA */ j .LE003E2A8
/* 3526EC E003E2AC 00000000 */ nop
.LE003E2B0:
/* 3526F0 E003E2B0 24030010 */ addiu $v1, $zero, 0x10
/* 3526F4 E003E2B4 240500F8 */ addiu $a1, $zero, 0xf8
/* 3526F8 E003E2B8 4600D307 */ neg.s $f12, $f26
/* 3526FC E003E2BC ACD20000 */ sw $s2, ($a2)
/* 352700 E003E2C0 C7B200BC */ lwc1 $f18, 0xbc($sp)
/* 352704 E003E2C4 3C01E004 */ lui $at, %hi(D_E003E870)
/* 352708 E003E2C8 D422E870 */ ldc1 $f2, %lo(D_E003E870)($at)
/* 35270C E003E2CC 3C014080 */ lui $at, 0x4080
/* 352710 E003E2D0 44815000 */ mtc1 $at, $f10
/* 352714 E003E2D4 3C01438B */ lui $at, 0x438b
/* 352718 E003E2D8 44813000 */ mtc1 $at, $f6
/* 35271C E003E2DC 460A6302 */ mul.s $f12, $f12, $f10
/* 352720 E003E2E0 00000000 */ nop
/* 352724 E003E2E4 3C014200 */ lui $at, 0x4200
/* 352728 E003E2E8 44814000 */ mtc1 $at, $f8
/* 35272C E003E2EC 2404005C */ addiu $a0, $zero, 0x5c
/* 352730 E003E2F0 E4D20004 */ swc1 $f18, 4($a2)
/* 352734 E003E2F4 C7B000C0 */ lwc1 $f16, 0xc0($sp)
/* 352738 E003E2F8 4600F107 */ neg.s $f4, $f30
/* 35273C E003E2FC E4D00008 */ swc1 $f16, 8($a2)
/* 352740 E003E300 C7B200C4 */ lwc1 $f18, 0xc4($sp)
/* 352744 E003E304 460A2102 */ mul.s $f4, $f4, $f10
/* 352748 E003E308 00000000 */ nop
/* 35274C E003E30C E4D2000C */ swc1 $f18, 0xc($a2)
/* 352750 E003E310 ACC3006C */ sw $v1, 0x6c($a2)
/* 352754 E003E314 240300E5 */ addiu $v1, $zero, 0xe5
/* 352758 E003E318 ACC00068 */ sw $zero, 0x68($a2)
/* 35275C E003E31C ACC00070 */ sw $zero, 0x70($a2)
/* 352760 E003E320 A0C50074 */ sb $a1, 0x74($a2)
/* 352764 E003E324 A0C40075 */ sb $a0, 0x75($a2)
/* 352768 E003E328 A0C30076 */ sb $v1, 0x76($a2)
/* 35276C E003E32C A0C50077 */ sb $a1, 0x77($a2)
/* 352770 E003E330 A0C40078 */ sb $a0, 0x78($a2)
/* 352774 E003E334 A0C30079 */ sb $v1, 0x79($a2)
/* 352778 E003E338 E4D6001C */ swc1 $f22, 0x1c($a2)
/* 35277C E003E33C C7A000D4 */ lwc1 $f0, 0xd4($sp)
/* 352780 E003E340 3C013F80 */ lui $at, 0x3f80
/* 352784 E003E344 44817000 */ mtc1 $at, $f14
/* 352788 E003E348 46000021 */ cvt.d.s $f0, $f0
/* 35278C E003E34C 46220002 */ mul.d $f0, $f0, $f2
/* 352790 E003E350 00000000 */ nop
/* 352794 E003E354 E4D80020 */ swc1 $f24, 0x20($a2)
/* 352798 E003E358 E4D40024 */ swc1 $f20, 0x24($a2)
/* 35279C E003E35C ACC00028 */ sw $zero, 0x28($a2)
/* 3527A0 E003E360 C7B00068 */ lwc1 $f16, 0x68($sp)
/* 3527A4 E003E364 0200102D */ daddu $v0, $s0, $zero
/* 3527A8 E003E368 E4D0002C */ swc1 $f16, 0x2c($a2)
/* 3527AC E003E36C C7B2006C */ lwc1 $f18, 0x6c($sp)
/* 3527B0 E003E370 4600E087 */ neg.s $f2, $f28
/* 3527B4 E003E374 E4D20030 */ swc1 $f18, 0x30($a2)
/* 3527B8 E003E378 C7B00070 */ lwc1 $f16, 0x70($sp)
/* 3527BC E003E37C 460A1082 */ mul.s $f2, $f2, $f10
/* 3527C0 E003E380 00000000 */ nop
/* 3527C4 E003E384 E4D00034 */ swc1 $f16, 0x34($a2)
/* 3527C8 E003E388 ACC00038 */ sw $zero, 0x38($a2)
/* 3527CC E003E38C E4DA003C */ swc1 $f26, 0x3c($a2)
/* 3527D0 E003E390 E4DE0040 */ swc1 $f30, 0x40($a2)
/* 3527D4 E003E394 E4DC0044 */ swc1 $f28, 0x44($a2)
/* 3527D8 E003E398 ACC00048 */ sw $zero, 0x48($a2)
/* 3527DC E003E39C ACC0004C */ sw $zero, 0x4c($a2)
/* 3527E0 E003E3A0 ACC00050 */ sw $zero, 0x50($a2)
/* 3527E4 E003E3A4 ACC00054 */ sw $zero, 0x54($a2)
/* 3527E8 E003E3A8 E4C6005C */ swc1 $f6, 0x5c($a2)
/* 3527EC E003E3AC E4C80060 */ swc1 $f8, 0x60($a2)
/* 3527F0 E003E3B0 E4CC0010 */ swc1 $f12, 0x10($a2)
/* 3527F4 E003E3B4 E4C40014 */ swc1 $f4, 0x14($a2)
/* 3527F8 E003E3B8 E4C20018 */ swc1 $f2, 0x18($a2)
/* 3527FC E003E3BC E4CE0058 */ swc1 $f14, 0x58($a2)
/* 352800 E003E3C0 46200020 */ cvt.s.d $f0, $f0
/* 352804 E003E3C4 E4C00064 */ swc1 $f0, 0x64($a2)
.LE003E3C8:
/* 352808 E003E3C8 8FBF0084 */ lw $ra, 0x84($sp)
/* 35280C E003E3CC 8FB20080 */ lw $s2, 0x80($sp)
/* 352810 E003E3D0 8FB1007C */ lw $s1, 0x7c($sp)
/* 352814 E003E3D4 8FB00078 */ lw $s0, 0x78($sp)
/* 352818 E003E3D8 D7BE00B0 */ ldc1 $f30, 0xb0($sp)
/* 35281C E003E3DC D7BC00A8 */ ldc1 $f28, 0xa8($sp)
/* 352820 E003E3E0 D7BA00A0 */ ldc1 $f26, 0xa0($sp)
/* 352824 E003E3E4 D7B80098 */ ldc1 $f24, 0x98($sp)
/* 352828 E003E3E8 D7B60090 */ ldc1 $f22, 0x90($sp)
/* 35282C E003E3EC D7B40088 */ ldc1 $f20, 0x88($sp)
/* 352830 E003E3F0 03E00008 */ jr $ra
/* 352834 E003E3F4 27BD00B8 */ addiu $sp, $sp, 0xb8