papermario/asm/nonmatchings/code_d610_len_1330/func_800322DC.s
2020-09-23 23:16:13 -04:00

207 lines
9.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800322DC
/* D6DC 800322DC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* D6E0 800322E0 F7BC0030 */ sdc1 $f28, 0x30($sp)
/* D6E4 800322E4 AFA60048 */ sw $a2, 0x48($sp)
/* D6E8 800322E8 C7BC0048 */ lwc1 $f28, 0x48($sp)
/* D6EC 800322EC F7B80020 */ sdc1 $f24, 0x20($sp)
/* D6F0 800322F0 C7B80050 */ lwc1 $f24, 0x50($sp)
/* D6F4 800322F4 F7B40010 */ sdc1 $f20, 0x10($sp)
/* D6F8 800322F8 46006506 */ mov.s $f20, $f12
/* D6FC 800322FC F7B60018 */ sdc1 $f22, 0x18($sp)
/* D700 80032300 46007586 */ mov.s $f22, $f14
/* D704 80032304 F7BA0028 */ sdc1 $f26, 0x28($sp)
/* D708 80032308 C7BA0054 */ lwc1 $f26, 0x54($sp)
/* D70C 8003230C 4614E481 */ sub.s $f18, $f28, $f20
/* D710 80032310 C7A20058 */ lwc1 $f2, 0x58($sp)
/* D714 80032314 C7A0005C */ lwc1 $f0, 0x5c($sp)
/* D718 80032318 4616D181 */ sub.s $f6, $f26, $f22
/* D71C 8003231C F7BE0038 */ sdc1 $f30, 0x38($sp)
/* D720 80032320 46160781 */ sub.s $f30, $f0, $f22
/* D724 80032324 AFA7004C */ sw $a3, 0x4c($sp)
/* D728 80032328 46181401 */ sub.s $f16, $f2, $f24
/* D72C 8003232C C7BC004C */ lwc1 $f28, 0x4c($sp)
/* D730 80032330 4616E301 */ sub.s $f12, $f28, $f22
/* D734 80032334 4614C701 */ sub.s $f28, $f24, $f20
/* D738 80032338 461A0381 */ sub.s $f14, $f0, $f26
/* D73C 8003233C E7BC0008 */ swc1 $f28, 8($sp)
/* D740 80032340 46141701 */ sub.s $f28, $f2, $f20
/* D744 80032344 44802000 */ mtc1 $zero, $f4
/* D748 80032348 46009286 */ mov.s $f10, $f18
/* D74C 8003234C 46049032 */ c.eq.s $f18, $f4
/* D750 80032350 46006207 */ neg.s $f8, $f12
/* D754 80032354 45000005 */ bc1f .L8003236C
/* D758 80032358 E7BC0000 */ swc1 $f28, ($sp)
/* D75C 8003235C 46046032 */ c.eq.s $f12, $f4
/* D760 80032360 00000000 */ nop
/* D764 80032364 45010097 */ bc1t .L800325C4
/* D768 80032368 0000102D */ daddu $v0, $zero, $zero
.L8003236C:
/* D76C 8003236C 44800000 */ mtc1 $zero, $f0
/* D770 80032370 00000000 */ nop
/* D774 80032374 46008032 */ c.eq.s $f16, $f0
/* D778 80032378 00000000 */ nop
/* D77C 8003237C 45000005 */ bc1f .L80032394
/* D780 80032380 00000000 */ nop
/* D784 80032384 46007032 */ c.eq.s $f14, $f0
/* D788 80032388 00000000 */ nop
/* D78C 8003238C 4501008D */ bc1t .L800325C4
/* D790 80032390 0000102D */ daddu $v0, $zero, $zero
.L80032394:
/* D794 80032394 46065002 */ mul.s $f0, $f10, $f6
/* D798 80032398 00000000 */ nop
/* D79C 8003239C C7BC0008 */ lwc1 $f28, 8($sp)
/* D7A0 800323A0 461C4082 */ mul.s $f2, $f8, $f28
/* D7A4 800323A4 00000000 */ nop
/* D7A8 800323A8 46001180 */ add.s $f6, $f2, $f0
/* D7AC 800323AC 44800000 */ mtc1 $zero, $f0
/* D7B0 800323B0 00000000 */ nop
/* D7B4 800323B4 4600303C */ c.lt.s $f6, $f0
/* D7B8 800323B8 3C01BF80 */ lui $at, 0xbf80
/* D7BC 800323BC 44812000 */ mtc1 $at, $f4
/* D7C0 800323C0 45010007 */ bc1t .L800323E0
/* D7C4 800323C4 00000000 */ nop
/* D7C8 800323C8 4606003C */ c.lt.s $f0, $f6
/* D7CC 800323CC 00000000 */ nop
/* D7D0 800323D0 45000003 */ bc1f .L800323E0
/* D7D4 800323D4 46000106 */ mov.s $f4, $f0
/* D7D8 800323D8 3C013F80 */ lui $at, 0x3f80
/* D7DC 800323DC 44812000 */ mtc1 $at, $f4
.L800323E0:
/* D7E0 800323E0 461E5002 */ mul.s $f0, $f10, $f30
/* D7E4 800323E4 00000000 */ nop
/* D7E8 800323E8 C7BC0000 */ lwc1 $f28, ($sp)
/* D7EC 800323EC 461C4082 */ mul.s $f2, $f8, $f28
/* D7F0 800323F0 00000000 */ nop
/* D7F4 800323F4 46001080 */ add.s $f2, $f2, $f0
/* D7F8 800323F8 44800000 */ mtc1 $zero, $f0
/* D7FC 800323FC 00000000 */ nop
/* D800 80032400 4600103C */ c.lt.s $f2, $f0
/* D804 80032404 00000000 */ nop
/* D808 80032408 45000005 */ bc1f .L80032420
/* D80C 8003240C 46002186 */ mov.s $f6, $f4
/* D810 80032410 3C01BF80 */ lui $at, 0xbf80
/* D814 80032414 44810000 */ mtc1 $at, $f0
/* D818 80032418 0800C90F */ j .L8003243C
/* D81C 8003241C 00000000 */ nop
.L80032420:
/* D820 80032420 4602003C */ c.lt.s $f0, $f2
/* D824 80032424 00000000 */ nop
/* D828 80032428 45000004 */ bc1f .L8003243C
/* D82C 8003242C 00000000 */ nop
/* D830 80032430 3C013F80 */ lui $at, 0x3f80
/* D834 80032434 44810000 */ mtc1 $at, $f0
/* D838 80032438 00000000 */ nop
.L8003243C:
/* D83C 8003243C 46003032 */ c.eq.s $f6, $f0
/* D840 80032440 00000000 */ nop
/* D844 80032444 4501005F */ bc1t .L800325C4
/* D848 80032448 0000102D */ daddu $v0, $zero, $zero
/* D84C 8003244C 46009085 */ abs.s $f2, $f18
/* D850 80032450 46008005 */ abs.s $f0, $f16
/* D854 80032454 4602003C */ c.lt.s $f0, $f2
/* D858 80032458 00000000 */ nop
/* D85C 8003245C 4500001E */ bc1f .L800324D8
/* D860 80032460 00000000 */ nop
/* D864 80032464 460CA002 */ mul.s $f0, $f20, $f12
/* D868 80032468 00000000 */ nop
/* D86C 8003246C 4612B182 */ mul.s $f6, $f22, $f18
/* D870 80032470 00000000 */ nop
/* D874 80032474 461A9202 */ mul.s $f8, $f18, $f26
/* D878 80032478 00000000 */ nop
/* D87C 8003247C 46186282 */ mul.s $f10, $f12, $f24
/* D880 80032480 00000000 */ nop
/* D884 80032484 46106082 */ mul.s $f2, $f12, $f16
/* D888 80032488 00000000 */ nop
/* D88C 8003248C 460E9102 */ mul.s $f4, $f18, $f14
/* D890 80032490 00000000 */ nop
/* D894 80032494 46060001 */ sub.s $f0, $f0, $f6
/* D898 80032498 46041081 */ sub.s $f2, $f2, $f4
/* D89C 8003249C 46080000 */ add.s $f0, $f0, $f8
/* D8A0 800324A0 460A0181 */ sub.s $f6, $f0, $f10
/* D8A4 800324A4 46023183 */ div.s $f6, $f6, $f2
/* D8A8 800324A8 46068002 */ mul.s $f0, $f16, $f6
/* D8AC 800324AC 00000000 */ nop
/* D8B0 800324B0 4600C000 */ add.s $f0, $f24, $f0
/* D8B4 800324B4 46140001 */ sub.s $f0, $f0, $f20
/* D8B8 800324B8 46120183 */ div.s $f6, $f0, $f18
/* D8BC 800324BC 46069002 */ mul.s $f0, $f18, $f6
/* D8C0 800324C0 00000000 */ nop
/* D8C4 800324C4 46066082 */ mul.s $f2, $f12, $f6
/* D8C8 800324C8 00000000 */ nop
/* D8CC 800324CC 4600A200 */ add.s $f8, $f20, $f0
/* D8D0 800324D0 0800C952 */ j .L80032548
/* D8D4 800324D4 4602B180 */ add.s $f6, $f22, $f2
.L800324D8:
/* D8D8 800324D8 4610D002 */ mul.s $f0, $f26, $f16
/* D8DC 800324DC 00000000 */ nop
/* D8E0 800324E0 460EA182 */ mul.s $f6, $f20, $f14
/* D8E4 800324E4 00000000 */ nop
/* D8E8 800324E8 460ED202 */ mul.s $f8, $f26, $f14
/* D8EC 800324EC 00000000 */ nop
/* D8F0 800324F0 4610B282 */ mul.s $f10, $f22, $f16
/* D8F4 800324F4 00000000 */ nop
/* D8F8 800324F8 46106082 */ mul.s $f2, $f12, $f16
/* D8FC 800324FC 00000000 */ nop
/* D900 80032500 460E9102 */ mul.s $f4, $f18, $f14
/* D904 80032504 00000000 */ nop
/* D908 80032508 46060000 */ add.s $f0, $f0, $f6
/* D90C 8003250C 46041081 */ sub.s $f2, $f2, $f4
/* D910 80032510 46080001 */ sub.s $f0, $f0, $f8
/* D914 80032514 460A0181 */ sub.s $f6, $f0, $f10
/* D918 80032518 46023183 */ div.s $f6, $f6, $f2
/* D91C 8003251C 46069002 */ mul.s $f0, $f18, $f6
/* D920 80032520 00000000 */ nop
/* D924 80032524 4600A000 */ add.s $f0, $f20, $f0
/* D928 80032528 46180001 */ sub.s $f0, $f0, $f24
/* D92C 8003252C 46100183 */ div.s $f6, $f0, $f16
/* D930 80032530 46068002 */ mul.s $f0, $f16, $f6
/* D934 80032534 00000000 */ nop
/* D938 80032538 46067082 */ mul.s $f2, $f14, $f6
/* D93C 8003253C 00000000 */ nop
/* D940 80032540 4600C200 */ add.s $f8, $f24, $f0
/* D944 80032544 4602D180 */ add.s $f6, $f26, $f2
.L80032548:
/* D948 80032548 46144101 */ sub.s $f4, $f8, $f20
/* D94C 8003254C C7BC0048 */ lwc1 $f28, 0x48($sp)
/* D950 80032550 461C4001 */ sub.s $f0, $f8, $f28
/* D954 80032554 46002102 */ mul.s $f4, $f4, $f0
/* D958 80032558 00000000 */ nop
/* D95C 8003255C C7BC004C */ lwc1 $f28, 0x4c($sp)
/* D960 80032560 461C3081 */ sub.s $f2, $f6, $f28
/* D964 80032564 46163001 */ sub.s $f0, $f6, $f22
/* D968 80032568 46020002 */ mul.s $f0, $f0, $f2
/* D96C 8003256C 00000000 */ nop
/* D970 80032570 46002100 */ add.s $f4, $f4, $f0
/* D974 80032574 44800000 */ mtc1 $zero, $f0
/* D978 80032578 00000000 */ nop
/* D97C 8003257C 4604003C */ c.lt.s $f0, $f4
/* D980 80032580 00000000 */ nop
/* D984 80032584 4501000F */ bc1t .L800325C4
/* D988 80032588 0000102D */ daddu $v0, $zero, $zero
/* D98C 8003258C 46184081 */ sub.s $f2, $f8, $f24
/* D990 80032590 46021082 */ mul.s $f2, $f2, $f2
/* D994 80032594 00000000 */ nop
/* D998 80032598 461A3001 */ sub.s $f0, $f6, $f26
/* D99C 8003259C 8FA30060 */ lw $v1, 0x60($sp)
/* D9A0 800325A0 46000002 */ mul.s $f0, $f0, $f0
/* D9A4 800325A4 00000000 */ nop
/* D9A8 800325A8 E4680000 */ swc1 $f8, ($v1)
/* D9AC 800325AC 8FA30064 */ lw $v1, 0x64($sp)
/* D9B0 800325B0 E4660000 */ swc1 $f6, ($v1)
/* D9B4 800325B4 46001080 */ add.s $f2, $f2, $f0
/* D9B8 800325B8 8FA30068 */ lw $v1, 0x68($sp)
/* D9BC 800325BC 24020001 */ addiu $v0, $zero, 1
/* D9C0 800325C0 E4620000 */ swc1 $f2, ($v1)
.L800325C4:
/* D9C4 800325C4 D7BE0038 */ ldc1 $f30, 0x38($sp)
/* D9C8 800325C8 D7BC0030 */ ldc1 $f28, 0x30($sp)
/* D9CC 800325CC D7BA0028 */ ldc1 $f26, 0x28($sp)
/* D9D0 800325D0 D7B80020 */ ldc1 $f24, 0x20($sp)
/* D9D4 800325D4 D7B60018 */ ldc1 $f22, 0x18($sp)
/* D9D8 800325D8 D7B40010 */ ldc1 $f20, 0x10($sp)
/* D9DC 800325DC 03E00008 */ jr $ra
/* D9E0 800325E0 27BD0040 */ addiu $sp, $sp, 0x40