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