papermario/asm/nonmatchings/battle/area_tik3/619340/func_80218C50_619340.s
2021-01-13 00:42:27 +09:00

316 lines
15 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80218C50_619340
/* 619340 80218C50 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 619344 80218C54 AFB40020 */ sw $s4, 0x20($sp)
/* 619348 80218C58 0080A02D */ daddu $s4, $a0, $zero
/* 61934C 80218C5C AFBF0028 */ sw $ra, 0x28($sp)
/* 619350 80218C60 AFB50024 */ sw $s5, 0x24($sp)
/* 619354 80218C64 AFB3001C */ sw $s3, 0x1c($sp)
/* 619358 80218C68 AFB20018 */ sw $s2, 0x18($sp)
/* 61935C 80218C6C AFB10014 */ sw $s1, 0x14($sp)
/* 619360 80218C70 AFB00010 */ sw $s0, 0x10($sp)
/* 619364 80218C74 F7BA0048 */ sdc1 $f26, 0x48($sp)
/* 619368 80218C78 F7B80040 */ sdc1 $f24, 0x40($sp)
/* 61936C 80218C7C F7B60038 */ sdc1 $f22, 0x38($sp)
/* 619370 80218C80 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 619374 80218C84 8E82000C */ lw $v0, 0xc($s4)
/* 619378 80218C88 0C0B1EAF */ jal get_variable
/* 61937C 80218C8C 8C450000 */ lw $a1, ($v0)
/* 619380 80218C90 0C046C04 */ jal get_model_list_index_from_tree_index
/* 619384 80218C94 0040202D */ daddu $a0, $v0, $zero
/* 619388 80218C98 0C046B4C */ jal get_model_from_list_index
/* 61938C 80218C9C 0040202D */ daddu $a0, $v0, $zero
/* 619390 80218CA0 3C12800E */ lui $s2, %hi(gBattleStatus)
/* 619394 80218CA4 2652C070 */ addiu $s2, $s2, %lo(gBattleStatus)
/* 619398 80218CA8 AE80008C */ sw $zero, 0x8c($s4)
/* 61939C 80218CAC 8E5000D8 */ lw $s0, 0xd8($s2)
/* 6193A0 80218CB0 1200003C */ beqz $s0, .L80218DA4
/* 6193A4 80218CB4 0040882D */ daddu $s1, $v0, $zero
/* 6193A8 80218CB8 C6020144 */ lwc1 $f2, 0x144($s0)
/* 6193AC 80218CBC C6200098 */ lwc1 $f0, 0x98($s1)
/* 6193B0 80218CC0 46001081 */ sub.s $f2, $f2, $f0
/* 6193B4 80218CC4 46021182 */ mul.s $f6, $f2, $f2
/* 6193B8 80218CC8 00000000 */ nop
/* 6193BC 80218CCC C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 6193C0 80218CD0 C602014C */ lwc1 $f2, 0x14c($s0)
/* 6193C4 80218CD4 46001081 */ sub.s $f2, $f2, $f0
/* 6193C8 80218CD8 46021102 */ mul.s $f4, $f2, $f2
/* 6193CC 80218CDC 00000000 */ nop
/* 6193D0 80218CE0 92020191 */ lbu $v0, 0x191($s0)
/* 6193D4 80218CE4 C6020148 */ lwc1 $f2, 0x148($s0)
/* 6193D8 80218CE8 44820000 */ mtc1 $v0, $f0
/* 6193DC 80218CEC 00000000 */ nop
/* 6193E0 80218CF0 46800020 */ cvt.s.w $f0, $f0
/* 6193E4 80218CF4 46001080 */ add.s $f2, $f2, $f0
/* 6193E8 80218CF8 3C013FC0 */ lui $at, 0x3fc0
/* 6193EC 80218CFC 44810000 */ mtc1 $at, $f0
/* 6193F0 80218D00 00000000 */ nop
/* 6193F4 80218D04 46001081 */ sub.s $f2, $f2, $f0
/* 6193F8 80218D08 46043300 */ add.s $f12, $f6, $f4
/* 6193FC 80218D0C C620009C */ lwc1 $f0, 0x9c($s1)
/* 619400 80218D10 46001501 */ sub.s $f20, $f2, $f0
/* 619404 80218D14 46006084 */ sqrt.s $f2, $f12
/* 619408 80218D18 46021032 */ c.eq.s $f2, $f2
/* 61940C 80218D1C 00000000 */ nop
/* 619410 80218D20 45010004 */ bc1t .L80218D34
/* 619414 80218D24 00000000 */ nop
/* 619418 80218D28 0C0187BC */ jal sqrtf
/* 61941C 80218D2C 00000000 */ nop
/* 619420 80218D30 46000086 */ mov.s $f2, $f0
.L80218D34:
/* 619424 80218D34 44800000 */ mtc1 $zero, $f0
/* 619428 80218D38 00000000 */ nop
/* 61942C 80218D3C 4614003C */ c.lt.s $f0, $f20
/* 619430 80218D40 00000000 */ nop
/* 619434 80218D44 45000017 */ bc1f .L80218DA4
/* 619438 80218D48 46001106 */ mov.s $f4, $f2
/* 61943C 80218D4C 92020191 */ lbu $v0, 0x191($s0)
/* 619440 80218D50 44820000 */ mtc1 $v0, $f0
/* 619444 80218D54 00000000 */ nop
/* 619448 80218D58 46800020 */ cvt.s.w $f0, $f0
/* 61944C 80218D5C 4600A03C */ c.lt.s $f20, $f0
/* 619450 80218D60 00000000 */ nop
/* 619454 80218D64 4500000F */ bc1f .L80218DA4
/* 619458 80218D68 00000000 */ nop
/* 61945C 80218D6C 92020190 */ lbu $v0, 0x190($s0)
/* 619460 80218D70 3C013F00 */ lui $at, 0x3f00
/* 619464 80218D74 44811000 */ mtc1 $at, $f2
/* 619468 80218D78 44820000 */ mtc1 $v0, $f0
/* 61946C 80218D7C 00000000 */ nop
/* 619470 80218D80 46800020 */ cvt.s.w $f0, $f0
/* 619474 80218D84 46020002 */ mul.s $f0, $f0, $f2
/* 619478 80218D88 00000000 */ nop
/* 61947C 80218D8C 4600203C */ c.lt.s $f4, $f0
/* 619480 80218D90 00000000 */ nop
/* 619484 80218D94 45000003 */ bc1f .L80218DA4
/* 619488 80218D98 24020001 */ addiu $v0, $zero, 1
/* 61948C 80218D9C 0808642B */ j .L802190AC
/* 619490 80218DA0 AE82008C */ sw $v0, 0x8c($s4)
.L80218DA4:
/* 619494 80218DA4 8E5000DC */ lw $s0, 0xdc($s2)
/* 619498 80218DA8 12000041 */ beqz $s0, .L80218EB0
/* 61949C 80218DAC 0000982D */ daddu $s3, $zero, $zero
/* 6194A0 80218DB0 C6020144 */ lwc1 $f2, 0x144($s0)
/* 6194A4 80218DB4 C6200098 */ lwc1 $f0, 0x98($s1)
/* 6194A8 80218DB8 46001081 */ sub.s $f2, $f2, $f0
/* 6194AC 80218DBC 46021182 */ mul.s $f6, $f2, $f2
/* 6194B0 80218DC0 00000000 */ nop
/* 6194B4 80218DC4 C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 6194B8 80218DC8 C602014C */ lwc1 $f2, 0x14c($s0)
/* 6194BC 80218DCC 46001081 */ sub.s $f2, $f2, $f0
/* 6194C0 80218DD0 46021102 */ mul.s $f4, $f2, $f2
/* 6194C4 80218DD4 00000000 */ nop
/* 6194C8 80218DD8 92020191 */ lbu $v0, 0x191($s0)
/* 6194CC 80218DDC C6020148 */ lwc1 $f2, 0x148($s0)
/* 6194D0 80218DE0 44820000 */ mtc1 $v0, $f0
/* 6194D4 80218DE4 00000000 */ nop
/* 6194D8 80218DE8 46800020 */ cvt.s.w $f0, $f0
/* 6194DC 80218DEC 46001080 */ add.s $f2, $f2, $f0
/* 6194E0 80218DF0 3C013FC0 */ lui $at, 0x3fc0
/* 6194E4 80218DF4 44810000 */ mtc1 $at, $f0
/* 6194E8 80218DF8 00000000 */ nop
/* 6194EC 80218DFC 46001081 */ sub.s $f2, $f2, $f0
/* 6194F0 80218E00 46043300 */ add.s $f12, $f6, $f4
/* 6194F4 80218E04 C620009C */ lwc1 $f0, 0x9c($s1)
/* 6194F8 80218E08 46001501 */ sub.s $f20, $f2, $f0
/* 6194FC 80218E0C 46006084 */ sqrt.s $f2, $f12
/* 619500 80218E10 46021032 */ c.eq.s $f2, $f2
/* 619504 80218E14 00000000 */ nop
/* 619508 80218E18 45010004 */ bc1t .L80218E2C
/* 61950C 80218E1C 00000000 */ nop
/* 619510 80218E20 0C0187BC */ jal sqrtf
/* 619514 80218E24 00000000 */ nop
/* 619518 80218E28 46000086 */ mov.s $f2, $f0
.L80218E2C:
/* 61951C 80218E2C 44800000 */ mtc1 $zero, $f0
/* 619520 80218E30 00000000 */ nop
/* 619524 80218E34 4614003C */ c.lt.s $f0, $f20
/* 619528 80218E38 00000000 */ nop
/* 61952C 80218E3C 4500001B */ bc1f .L80218EAC
/* 619530 80218E40 46001106 */ mov.s $f4, $f2
/* 619534 80218E44 92020191 */ lbu $v0, 0x191($s0)
/* 619538 80218E48 44820000 */ mtc1 $v0, $f0
/* 61953C 80218E4C 00000000 */ nop
/* 619540 80218E50 46800020 */ cvt.s.w $f0, $f0
/* 619544 80218E54 4600A03C */ c.lt.s $f20, $f0
/* 619548 80218E58 00000000 */ nop
/* 61954C 80218E5C 45000014 */ bc1f .L80218EB0
/* 619550 80218E60 0000982D */ daddu $s3, $zero, $zero
/* 619554 80218E64 92020190 */ lbu $v0, 0x190($s0)
/* 619558 80218E68 3C013F00 */ lui $at, 0x3f00
/* 61955C 80218E6C 44811000 */ mtc1 $at, $f2
/* 619560 80218E70 44820000 */ mtc1 $v0, $f0
/* 619564 80218E74 00000000 */ nop
/* 619568 80218E78 46800020 */ cvt.s.w $f0, $f0
/* 61956C 80218E7C 46020002 */ mul.s $f0, $f0, $f2
/* 619570 80218E80 00000000 */ nop
/* 619574 80218E84 4600203C */ c.lt.s $f4, $f0
/* 619578 80218E88 00000000 */ nop
/* 61957C 80218E8C 45000008 */ bc1f .L80218EB0
/* 619580 80218E90 24020001 */ addiu $v0, $zero, 1
/* 619584 80218E94 0808642B */ j .L802190AC
/* 619588 80218E98 AE82008C */ sw $v0, 0x8c($s4)
.L80218E9C:
/* 61958C 80218E9C 0808642B */ j .L802190AC
/* 619590 80218EA0 AE82008C */ sw $v0, 0x8c($s4)
.L80218EA4:
/* 619594 80218EA4 0808642B */ j .L802190AC
/* 619598 80218EA8 AE82008C */ sw $v0, 0x8c($s4)
.L80218EAC:
/* 61959C 80218EAC 0000982D */ daddu $s3, $zero, $zero
.L80218EB0:
/* 6195A0 80218EB0 3C150010 */ lui $s5, 0x10
/* 6195A4 80218EB4 3C013FC0 */ lui $at, 0x3fc0
/* 6195A8 80218EB8 4481D000 */ mtc1 $at, $f26
/* 6195AC 80218EBC 4480C000 */ mtc1 $zero, $f24
/* 6195B0 80218EC0 3C013F00 */ lui $at, 0x3f00
/* 6195B4 80218EC4 4481B000 */ mtc1 $at, $f22
.L80218EC8:
/* 6195B8 80218EC8 8E5000E0 */ lw $s0, 0xe0($s2)
/* 6195BC 80218ECC 52000074 */ beql $s0, $zero, .L802190A0
/* 6195C0 80218ED0 26730001 */ addiu $s3, $s3, 1
/* 6195C4 80218ED4 8E020000 */ lw $v0, ($s0)
/* 6195C8 80218ED8 30420001 */ andi $v0, $v0, 1
/* 6195CC 80218EDC 54400070 */ bnel $v0, $zero, .L802190A0
/* 6195D0 80218EE0 26730001 */ addiu $s3, $s3, 1
/* 6195D4 80218EE4 C6020144 */ lwc1 $f2, 0x144($s0)
/* 6195D8 80218EE8 C6200098 */ lwc1 $f0, 0x98($s1)
/* 6195DC 80218EEC 46001081 */ sub.s $f2, $f2, $f0
/* 6195E0 80218EF0 46021182 */ mul.s $f6, $f2, $f2
/* 6195E4 80218EF4 00000000 */ nop
/* 6195E8 80218EF8 C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 6195EC 80218EFC C602014C */ lwc1 $f2, 0x14c($s0)
/* 6195F0 80218F00 46001081 */ sub.s $f2, $f2, $f0
/* 6195F4 80218F04 46021102 */ mul.s $f4, $f2, $f2
/* 6195F8 80218F08 00000000 */ nop
/* 6195FC 80218F0C 92020191 */ lbu $v0, 0x191($s0)
/* 619600 80218F10 C6020148 */ lwc1 $f2, 0x148($s0)
/* 619604 80218F14 44820000 */ mtc1 $v0, $f0
/* 619608 80218F18 00000000 */ nop
/* 61960C 80218F1C 46800020 */ cvt.s.w $f0, $f0
/* 619610 80218F20 46001080 */ add.s $f2, $f2, $f0
/* 619614 80218F24 461A1081 */ sub.s $f2, $f2, $f26
/* 619618 80218F28 46043300 */ add.s $f12, $f6, $f4
/* 61961C 80218F2C C620009C */ lwc1 $f0, 0x9c($s1)
/* 619620 80218F30 46001501 */ sub.s $f20, $f2, $f0
/* 619624 80218F34 46006004 */ sqrt.s $f0, $f12
/* 619628 80218F38 46000032 */ c.eq.s $f0, $f0
/* 61962C 80218F3C 00000000 */ nop
/* 619630 80218F40 45010003 */ bc1t .L80218F50
/* 619634 80218F44 00000000 */ nop
/* 619638 80218F48 0C0187BC */ jal sqrtf
/* 61963C 80218F4C 00000000 */ nop
.L80218F50:
/* 619640 80218F50 4614C03C */ c.lt.s $f24, $f20
/* 619644 80218F54 00000000 */ nop
/* 619648 80218F58 45000013 */ bc1f .L80218FA8
/* 61964C 80218F5C 46000106 */ mov.s $f4, $f0
/* 619650 80218F60 92020191 */ lbu $v0, 0x191($s0)
/* 619654 80218F64 44820000 */ mtc1 $v0, $f0
/* 619658 80218F68 00000000 */ nop
/* 61965C 80218F6C 46800020 */ cvt.s.w $f0, $f0
/* 619660 80218F70 4600A03C */ c.lt.s $f20, $f0
/* 619664 80218F74 00000000 */ nop
/* 619668 80218F78 4500000B */ bc1f .L80218FA8
/* 61966C 80218F7C 00000000 */ nop
/* 619670 80218F80 92020190 */ lbu $v0, 0x190($s0)
/* 619674 80218F84 44820000 */ mtc1 $v0, $f0
/* 619678 80218F88 00000000 */ nop
/* 61967C 80218F8C 46800020 */ cvt.s.w $f0, $f0
/* 619680 80218F90 46160002 */ mul.s $f0, $f0, $f22
/* 619684 80218F94 00000000 */ nop
/* 619688 80218F98 4600203C */ c.lt.s $f4, $f0
/* 61968C 80218F9C 00000000 */ nop
/* 619690 80218FA0 4501FFBE */ bc1t .L80218E9C
/* 619694 80218FA4 24020001 */ addiu $v0, $zero, 1
.L80218FA8:
/* 619698 80218FA8 8E1001F4 */ lw $s0, 0x1f4($s0)
/* 61969C 80218FAC 5200003C */ beql $s0, $zero, .L802190A0
/* 6196A0 80218FB0 26730001 */ addiu $s3, $s3, 1
.L80218FB4:
/* 6196A4 80218FB4 8E030000 */ lw $v1, ($s0)
/* 6196A8 80218FB8 30620001 */ andi $v0, $v1, 1
/* 6196AC 80218FBC 14400034 */ bnez $v0, .L80219090
/* 6196B0 80218FC0 00751024 */ and $v0, $v1, $s5
/* 6196B4 80218FC4 10400032 */ beqz $v0, .L80219090
/* 6196B8 80218FC8 00000000 */ nop
/* 6196BC 80218FCC C6020058 */ lwc1 $f2, 0x58($s0)
/* 6196C0 80218FD0 C6200098 */ lwc1 $f0, 0x98($s1)
/* 6196C4 80218FD4 46001081 */ sub.s $f2, $f2, $f0
/* 6196C8 80218FD8 46021182 */ mul.s $f6, $f2, $f2
/* 6196CC 80218FDC 00000000 */ nop
/* 6196D0 80218FE0 C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 6196D4 80218FE4 C6020060 */ lwc1 $f2, 0x60($s0)
/* 6196D8 80218FE8 46001081 */ sub.s $f2, $f2, $f0
/* 6196DC 80218FEC 46021102 */ mul.s $f4, $f2, $f2
/* 6196E0 80218FF0 00000000 */ nop
/* 6196E4 80218FF4 92020073 */ lbu $v0, 0x73($s0)
/* 6196E8 80218FF8 C600005C */ lwc1 $f0, 0x5c($s0)
/* 6196EC 80218FFC 44821000 */ mtc1 $v0, $f2
/* 6196F0 80219000 00000000 */ nop
/* 6196F4 80219004 468010A0 */ cvt.s.w $f2, $f2
/* 6196F8 80219008 46020000 */ add.s $f0, $f0, $f2
/* 6196FC 8021900C 461A0001 */ sub.s $f0, $f0, $f26
/* 619700 80219010 46043300 */ add.s $f12, $f6, $f4
/* 619704 80219014 C622009C */ lwc1 $f2, 0x9c($s1)
/* 619708 80219018 46020501 */ sub.s $f20, $f0, $f2
/* 61970C 8021901C 46006004 */ sqrt.s $f0, $f12
/* 619710 80219020 46000032 */ c.eq.s $f0, $f0
/* 619714 80219024 00000000 */ nop
/* 619718 80219028 45010003 */ bc1t .L80219038
/* 61971C 8021902C 00000000 */ nop
/* 619720 80219030 0C0187BC */ jal sqrtf
/* 619724 80219034 00000000 */ nop
.L80219038:
/* 619728 80219038 4614C03C */ c.lt.s $f24, $f20
/* 61972C 8021903C 00000000 */ nop
/* 619730 80219040 45000013 */ bc1f .L80219090
/* 619734 80219044 46000106 */ mov.s $f4, $f0
/* 619738 80219048 92020073 */ lbu $v0, 0x73($s0)
/* 61973C 8021904C 44820000 */ mtc1 $v0, $f0
/* 619740 80219050 00000000 */ nop
/* 619744 80219054 46800020 */ cvt.s.w $f0, $f0
/* 619748 80219058 4600A03C */ c.lt.s $f20, $f0
/* 61974C 8021905C 00000000 */ nop
/* 619750 80219060 4500000B */ bc1f .L80219090
/* 619754 80219064 00000000 */ nop
/* 619758 80219068 92020072 */ lbu $v0, 0x72($s0)
/* 61975C 8021906C 44820000 */ mtc1 $v0, $f0
/* 619760 80219070 00000000 */ nop
/* 619764 80219074 46800020 */ cvt.s.w $f0, $f0
/* 619768 80219078 46160002 */ mul.s $f0, $f0, $f22
/* 61976C 8021907C 00000000 */ nop
/* 619770 80219080 4600203C */ c.lt.s $f4, $f0
/* 619774 80219084 00000000 */ nop
/* 619778 80219088 4501FF86 */ bc1t .L80218EA4
/* 61977C 8021908C 24020001 */ addiu $v0, $zero, 1
.L80219090:
/* 619780 80219090 8E10000C */ lw $s0, 0xc($s0)
/* 619784 80219094 1600FFC7 */ bnez $s0, .L80218FB4
/* 619788 80219098 00000000 */ nop
/* 61978C 8021909C 26730001 */ addiu $s3, $s3, 1
.L802190A0:
/* 619790 802190A0 2A620018 */ slti $v0, $s3, 0x18
/* 619794 802190A4 1440FF88 */ bnez $v0, .L80218EC8
/* 619798 802190A8 26520004 */ addiu $s2, $s2, 4
.L802190AC:
/* 61979C 802190AC 24020002 */ addiu $v0, $zero, 2
/* 6197A0 802190B0 8FBF0028 */ lw $ra, 0x28($sp)
/* 6197A4 802190B4 8FB50024 */ lw $s5, 0x24($sp)
/* 6197A8 802190B8 8FB40020 */ lw $s4, 0x20($sp)
/* 6197AC 802190BC 8FB3001C */ lw $s3, 0x1c($sp)
/* 6197B0 802190C0 8FB20018 */ lw $s2, 0x18($sp)
/* 6197B4 802190C4 8FB10014 */ lw $s1, 0x14($sp)
/* 6197B8 802190C8 8FB00010 */ lw $s0, 0x10($sp)
/* 6197BC 802190CC D7BA0048 */ ldc1 $f26, 0x48($sp)
/* 6197C0 802190D0 D7B80040 */ ldc1 $f24, 0x40($sp)
/* 6197C4 802190D4 D7B60038 */ ldc1 $f22, 0x38($sp)
/* 6197C8 802190D8 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 6197CC 802190DC 03E00008 */ jr $ra
/* 6197D0 802190E0 27BD0050 */ addiu $sp, $sp, 0x50
/* 6197D4 802190E4 00000000 */ nop
/* 6197D8 802190E8 00000000 */ nop
/* 6197DC 802190EC 00000000 */ nop