papermario/asm/nonmatchings/battle/area_tik2/609B30/func_80219080_609B30.s
2020-12-28 14:34:30 +09:00

316 lines
16 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80219080_609B30
/* 609B30 80219080 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 609B34 80219084 AFB40020 */ sw $s4, 0x20($sp)
/* 609B38 80219088 0080A02D */ daddu $s4, $a0, $zero
/* 609B3C 8021908C AFBF0028 */ sw $ra, 0x28($sp)
/* 609B40 80219090 AFB50024 */ sw $s5, 0x24($sp)
/* 609B44 80219094 AFB3001C */ sw $s3, 0x1c($sp)
/* 609B48 80219098 AFB20018 */ sw $s2, 0x18($sp)
/* 609B4C 8021909C AFB10014 */ sw $s1, 0x14($sp)
/* 609B50 802190A0 AFB00010 */ sw $s0, 0x10($sp)
/* 609B54 802190A4 F7BA0048 */ sdc1 $f26, 0x48($sp)
/* 609B58 802190A8 F7B80040 */ sdc1 $f24, 0x40($sp)
/* 609B5C 802190AC F7B60038 */ sdc1 $f22, 0x38($sp)
/* 609B60 802190B0 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 609B64 802190B4 8E82000C */ lw $v0, 0xc($s4)
/* 609B68 802190B8 0C0B1EAF */ jal get_variable
/* 609B6C 802190BC 8C450000 */ lw $a1, ($v0)
/* 609B70 802190C0 0C046C04 */ jal get_model_list_index_from_tree_index
/* 609B74 802190C4 0040202D */ daddu $a0, $v0, $zero
/* 609B78 802190C8 0C046B4C */ jal get_model_from_list_index
/* 609B7C 802190CC 0040202D */ daddu $a0, $v0, $zero
/* 609B80 802190D0 3C12800E */ lui $s2, %hi(gBattleStatus)
/* 609B84 802190D4 2652C070 */ addiu $s2, $s2, %lo(gBattleStatus)
/* 609B88 802190D8 AE80008C */ sw $zero, 0x8c($s4)
/* 609B8C 802190DC 8E5000D8 */ lw $s0, 0xd8($s2)
/* 609B90 802190E0 1200003C */ beqz $s0, .L802191D4
/* 609B94 802190E4 0040882D */ daddu $s1, $v0, $zero
/* 609B98 802190E8 C6020144 */ lwc1 $f2, 0x144($s0)
/* 609B9C 802190EC C6200098 */ lwc1 $f0, 0x98($s1)
/* 609BA0 802190F0 46001081 */ sub.s $f2, $f2, $f0
/* 609BA4 802190F4 46021182 */ mul.s $f6, $f2, $f2
/* 609BA8 802190F8 00000000 */ nop
/* 609BAC 802190FC C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 609BB0 80219100 C602014C */ lwc1 $f2, 0x14c($s0)
/* 609BB4 80219104 46001081 */ sub.s $f2, $f2, $f0
/* 609BB8 80219108 46021102 */ mul.s $f4, $f2, $f2
/* 609BBC 8021910C 00000000 */ nop
/* 609BC0 80219110 92020191 */ lbu $v0, 0x191($s0)
/* 609BC4 80219114 C6020148 */ lwc1 $f2, 0x148($s0)
/* 609BC8 80219118 44820000 */ mtc1 $v0, $f0
/* 609BCC 8021911C 00000000 */ nop
/* 609BD0 80219120 46800020 */ cvt.s.w $f0, $f0
/* 609BD4 80219124 46001080 */ add.s $f2, $f2, $f0
/* 609BD8 80219128 3C013FC0 */ lui $at, 0x3fc0
/* 609BDC 8021912C 44810000 */ mtc1 $at, $f0
/* 609BE0 80219130 00000000 */ nop
/* 609BE4 80219134 46001081 */ sub.s $f2, $f2, $f0
/* 609BE8 80219138 46043300 */ add.s $f12, $f6, $f4
/* 609BEC 8021913C C620009C */ lwc1 $f0, 0x9c($s1)
/* 609BF0 80219140 46001501 */ sub.s $f20, $f2, $f0
/* 609BF4 80219144 46006084 */ sqrt.s $f2, $f12
/* 609BF8 80219148 46021032 */ c.eq.s $f2, $f2
/* 609BFC 8021914C 00000000 */ nop
/* 609C00 80219150 45010004 */ bc1t .L80219164
/* 609C04 80219154 00000000 */ nop
/* 609C08 80219158 0C0187BC */ jal sqrtf
/* 609C0C 8021915C 00000000 */ nop
/* 609C10 80219160 46000086 */ mov.s $f2, $f0
.L80219164:
/* 609C14 80219164 44800000 */ mtc1 $zero, $f0
/* 609C18 80219168 00000000 */ nop
/* 609C1C 8021916C 4614003C */ c.lt.s $f0, $f20
/* 609C20 80219170 00000000 */ nop
/* 609C24 80219174 45000017 */ bc1f .L802191D4
/* 609C28 80219178 46001106 */ mov.s $f4, $f2
/* 609C2C 8021917C 92020191 */ lbu $v0, 0x191($s0)
/* 609C30 80219180 44820000 */ mtc1 $v0, $f0
/* 609C34 80219184 00000000 */ nop
/* 609C38 80219188 46800020 */ cvt.s.w $f0, $f0
/* 609C3C 8021918C 4600A03C */ c.lt.s $f20, $f0
/* 609C40 80219190 00000000 */ nop
/* 609C44 80219194 4500000F */ bc1f .L802191D4
/* 609C48 80219198 00000000 */ nop
/* 609C4C 8021919C 92020190 */ lbu $v0, 0x190($s0)
/* 609C50 802191A0 3C013F00 */ lui $at, 0x3f00
/* 609C54 802191A4 44811000 */ mtc1 $at, $f2
/* 609C58 802191A8 44820000 */ mtc1 $v0, $f0
/* 609C5C 802191AC 00000000 */ nop
/* 609C60 802191B0 46800020 */ cvt.s.w $f0, $f0
/* 609C64 802191B4 46020002 */ mul.s $f0, $f0, $f2
/* 609C68 802191B8 00000000 */ nop
/* 609C6C 802191BC 4600203C */ c.lt.s $f4, $f0
/* 609C70 802191C0 00000000 */ nop
/* 609C74 802191C4 45000003 */ bc1f .L802191D4
/* 609C78 802191C8 24020001 */ addiu $v0, $zero, 1
/* 609C7C 802191CC 08086537 */ j .L802194DC
/* 609C80 802191D0 AE82008C */ sw $v0, 0x8c($s4)
.L802191D4:
/* 609C84 802191D4 8E5000DC */ lw $s0, 0xdc($s2)
/* 609C88 802191D8 12000041 */ beqz $s0, .L802192E0
/* 609C8C 802191DC 0000982D */ daddu $s3, $zero, $zero
/* 609C90 802191E0 C6020144 */ lwc1 $f2, 0x144($s0)
/* 609C94 802191E4 C6200098 */ lwc1 $f0, 0x98($s1)
/* 609C98 802191E8 46001081 */ sub.s $f2, $f2, $f0
/* 609C9C 802191EC 46021182 */ mul.s $f6, $f2, $f2
/* 609CA0 802191F0 00000000 */ nop
/* 609CA4 802191F4 C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 609CA8 802191F8 C602014C */ lwc1 $f2, 0x14c($s0)
/* 609CAC 802191FC 46001081 */ sub.s $f2, $f2, $f0
/* 609CB0 80219200 46021102 */ mul.s $f4, $f2, $f2
/* 609CB4 80219204 00000000 */ nop
/* 609CB8 80219208 92020191 */ lbu $v0, 0x191($s0)
/* 609CBC 8021920C C6020148 */ lwc1 $f2, 0x148($s0)
/* 609CC0 80219210 44820000 */ mtc1 $v0, $f0
/* 609CC4 80219214 00000000 */ nop
/* 609CC8 80219218 46800020 */ cvt.s.w $f0, $f0
/* 609CCC 8021921C 46001080 */ add.s $f2, $f2, $f0
/* 609CD0 80219220 3C013FC0 */ lui $at, 0x3fc0
/* 609CD4 80219224 44810000 */ mtc1 $at, $f0
/* 609CD8 80219228 00000000 */ nop
/* 609CDC 8021922C 46001081 */ sub.s $f2, $f2, $f0
/* 609CE0 80219230 46043300 */ add.s $f12, $f6, $f4
/* 609CE4 80219234 C620009C */ lwc1 $f0, 0x9c($s1)
/* 609CE8 80219238 46001501 */ sub.s $f20, $f2, $f0
/* 609CEC 8021923C 46006084 */ sqrt.s $f2, $f12
/* 609CF0 80219240 46021032 */ c.eq.s $f2, $f2
/* 609CF4 80219244 00000000 */ nop
/* 609CF8 80219248 45010004 */ bc1t .L8021925C
/* 609CFC 8021924C 00000000 */ nop
/* 609D00 80219250 0C0187BC */ jal sqrtf
/* 609D04 80219254 00000000 */ nop
/* 609D08 80219258 46000086 */ mov.s $f2, $f0
.L8021925C:
/* 609D0C 8021925C 44800000 */ mtc1 $zero, $f0
/* 609D10 80219260 00000000 */ nop
/* 609D14 80219264 4614003C */ c.lt.s $f0, $f20
/* 609D18 80219268 00000000 */ nop
/* 609D1C 8021926C 4500001B */ bc1f .L802192DC
/* 609D20 80219270 46001106 */ mov.s $f4, $f2
/* 609D24 80219274 92020191 */ lbu $v0, 0x191($s0)
/* 609D28 80219278 44820000 */ mtc1 $v0, $f0
/* 609D2C 8021927C 00000000 */ nop
/* 609D30 80219280 46800020 */ cvt.s.w $f0, $f0
/* 609D34 80219284 4600A03C */ c.lt.s $f20, $f0
/* 609D38 80219288 00000000 */ nop
/* 609D3C 8021928C 45000014 */ bc1f .L802192E0
/* 609D40 80219290 0000982D */ daddu $s3, $zero, $zero
/* 609D44 80219294 92020190 */ lbu $v0, 0x190($s0)
/* 609D48 80219298 3C013F00 */ lui $at, 0x3f00
/* 609D4C 8021929C 44811000 */ mtc1 $at, $f2
/* 609D50 802192A0 44820000 */ mtc1 $v0, $f0
/* 609D54 802192A4 00000000 */ nop
/* 609D58 802192A8 46800020 */ cvt.s.w $f0, $f0
/* 609D5C 802192AC 46020002 */ mul.s $f0, $f0, $f2
/* 609D60 802192B0 00000000 */ nop
/* 609D64 802192B4 4600203C */ c.lt.s $f4, $f0
/* 609D68 802192B8 00000000 */ nop
/* 609D6C 802192BC 45000008 */ bc1f .L802192E0
/* 609D70 802192C0 24020001 */ addiu $v0, $zero, 1
/* 609D74 802192C4 08086537 */ j .L802194DC
/* 609D78 802192C8 AE82008C */ sw $v0, 0x8c($s4)
.L802192CC:
/* 609D7C 802192CC 08086537 */ j .L802194DC
/* 609D80 802192D0 AE82008C */ sw $v0, 0x8c($s4)
.L802192D4:
/* 609D84 802192D4 08086537 */ j .L802194DC
/* 609D88 802192D8 AE82008C */ sw $v0, 0x8c($s4)
.L802192DC:
/* 609D8C 802192DC 0000982D */ daddu $s3, $zero, $zero
.L802192E0:
/* 609D90 802192E0 3C150010 */ lui $s5, 0x10
/* 609D94 802192E4 3C013FC0 */ lui $at, 0x3fc0
/* 609D98 802192E8 4481D000 */ mtc1 $at, $f26
/* 609D9C 802192EC 4480C000 */ mtc1 $zero, $f24
/* 609DA0 802192F0 3C013F00 */ lui $at, 0x3f00
/* 609DA4 802192F4 4481B000 */ mtc1 $at, $f22
.L802192F8:
/* 609DA8 802192F8 8E5000E0 */ lw $s0, 0xe0($s2)
/* 609DAC 802192FC 52000074 */ beql $s0, $zero, .L802194D0
/* 609DB0 80219300 26730001 */ addiu $s3, $s3, 1
/* 609DB4 80219304 8E020000 */ lw $v0, ($s0)
/* 609DB8 80219308 30420001 */ andi $v0, $v0, 1
/* 609DBC 8021930C 54400070 */ bnel $v0, $zero, .L802194D0
/* 609DC0 80219310 26730001 */ addiu $s3, $s3, 1
/* 609DC4 80219314 C6020144 */ lwc1 $f2, 0x144($s0)
/* 609DC8 80219318 C6200098 */ lwc1 $f0, 0x98($s1)
/* 609DCC 8021931C 46001081 */ sub.s $f2, $f2, $f0
/* 609DD0 80219320 46021182 */ mul.s $f6, $f2, $f2
/* 609DD4 80219324 00000000 */ nop
/* 609DD8 80219328 C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 609DDC 8021932C C602014C */ lwc1 $f2, 0x14c($s0)
/* 609DE0 80219330 46001081 */ sub.s $f2, $f2, $f0
/* 609DE4 80219334 46021102 */ mul.s $f4, $f2, $f2
/* 609DE8 80219338 00000000 */ nop
/* 609DEC 8021933C 92020191 */ lbu $v0, 0x191($s0)
/* 609DF0 80219340 C6020148 */ lwc1 $f2, 0x148($s0)
/* 609DF4 80219344 44820000 */ mtc1 $v0, $f0
/* 609DF8 80219348 00000000 */ nop
/* 609DFC 8021934C 46800020 */ cvt.s.w $f0, $f0
/* 609E00 80219350 46001080 */ add.s $f2, $f2, $f0
/* 609E04 80219354 461A1081 */ sub.s $f2, $f2, $f26
/* 609E08 80219358 46043300 */ add.s $f12, $f6, $f4
/* 609E0C 8021935C C620009C */ lwc1 $f0, 0x9c($s1)
/* 609E10 80219360 46001501 */ sub.s $f20, $f2, $f0
/* 609E14 80219364 46006004 */ sqrt.s $f0, $f12
/* 609E18 80219368 46000032 */ c.eq.s $f0, $f0
/* 609E1C 8021936C 00000000 */ nop
/* 609E20 80219370 45010003 */ bc1t .L80219380
/* 609E24 80219374 00000000 */ nop
/* 609E28 80219378 0C0187BC */ jal sqrtf
/* 609E2C 8021937C 00000000 */ nop
.L80219380:
/* 609E30 80219380 4614C03C */ c.lt.s $f24, $f20
/* 609E34 80219384 00000000 */ nop
/* 609E38 80219388 45000013 */ bc1f .L802193D8
/* 609E3C 8021938C 46000106 */ mov.s $f4, $f0
/* 609E40 80219390 92020191 */ lbu $v0, 0x191($s0)
/* 609E44 80219394 44820000 */ mtc1 $v0, $f0
/* 609E48 80219398 00000000 */ nop
/* 609E4C 8021939C 46800020 */ cvt.s.w $f0, $f0
/* 609E50 802193A0 4600A03C */ c.lt.s $f20, $f0
/* 609E54 802193A4 00000000 */ nop
/* 609E58 802193A8 4500000B */ bc1f .L802193D8
/* 609E5C 802193AC 00000000 */ nop
/* 609E60 802193B0 92020190 */ lbu $v0, 0x190($s0)
/* 609E64 802193B4 44820000 */ mtc1 $v0, $f0
/* 609E68 802193B8 00000000 */ nop
/* 609E6C 802193BC 46800020 */ cvt.s.w $f0, $f0
/* 609E70 802193C0 46160002 */ mul.s $f0, $f0, $f22
/* 609E74 802193C4 00000000 */ nop
/* 609E78 802193C8 4600203C */ c.lt.s $f4, $f0
/* 609E7C 802193CC 00000000 */ nop
/* 609E80 802193D0 4501FFBE */ bc1t .L802192CC
/* 609E84 802193D4 24020001 */ addiu $v0, $zero, 1
.L802193D8:
/* 609E88 802193D8 8E1001F4 */ lw $s0, 0x1f4($s0)
/* 609E8C 802193DC 5200003C */ beql $s0, $zero, .L802194D0
/* 609E90 802193E0 26730001 */ addiu $s3, $s3, 1
.L802193E4:
/* 609E94 802193E4 8E030000 */ lw $v1, ($s0)
/* 609E98 802193E8 30620001 */ andi $v0, $v1, 1
/* 609E9C 802193EC 14400034 */ bnez $v0, .L802194C0
/* 609EA0 802193F0 00751024 */ and $v0, $v1, $s5
/* 609EA4 802193F4 10400032 */ beqz $v0, .L802194C0
/* 609EA8 802193F8 00000000 */ nop
/* 609EAC 802193FC C6020058 */ lwc1 $f2, 0x58($s0)
/* 609EB0 80219400 C6200098 */ lwc1 $f0, 0x98($s1)
/* 609EB4 80219404 46001081 */ sub.s $f2, $f2, $f0
/* 609EB8 80219408 46021182 */ mul.s $f6, $f2, $f2
/* 609EBC 8021940C 00000000 */ nop
/* 609EC0 80219410 C62000A0 */ lwc1 $f0, 0xa0($s1)
/* 609EC4 80219414 C6020060 */ lwc1 $f2, 0x60($s0)
/* 609EC8 80219418 46001081 */ sub.s $f2, $f2, $f0
/* 609ECC 8021941C 46021102 */ mul.s $f4, $f2, $f2
/* 609ED0 80219420 00000000 */ nop
/* 609ED4 80219424 92020073 */ lbu $v0, 0x73($s0)
/* 609ED8 80219428 C600005C */ lwc1 $f0, 0x5c($s0)
/* 609EDC 8021942C 44821000 */ mtc1 $v0, $f2
/* 609EE0 80219430 00000000 */ nop
/* 609EE4 80219434 468010A0 */ cvt.s.w $f2, $f2
/* 609EE8 80219438 46020000 */ add.s $f0, $f0, $f2
/* 609EEC 8021943C 461A0001 */ sub.s $f0, $f0, $f26
/* 609EF0 80219440 46043300 */ add.s $f12, $f6, $f4
/* 609EF4 80219444 C622009C */ lwc1 $f2, 0x9c($s1)
/* 609EF8 80219448 46020501 */ sub.s $f20, $f0, $f2
/* 609EFC 8021944C 46006004 */ sqrt.s $f0, $f12
/* 609F00 80219450 46000032 */ c.eq.s $f0, $f0
/* 609F04 80219454 00000000 */ nop
/* 609F08 80219458 45010003 */ bc1t .L80219468
/* 609F0C 8021945C 00000000 */ nop
/* 609F10 80219460 0C0187BC */ jal sqrtf
/* 609F14 80219464 00000000 */ nop
.L80219468:
/* 609F18 80219468 4614C03C */ c.lt.s $f24, $f20
/* 609F1C 8021946C 00000000 */ nop
/* 609F20 80219470 45000013 */ bc1f .L802194C0
/* 609F24 80219474 46000106 */ mov.s $f4, $f0
/* 609F28 80219478 92020073 */ lbu $v0, 0x73($s0)
/* 609F2C 8021947C 44820000 */ mtc1 $v0, $f0
/* 609F30 80219480 00000000 */ nop
/* 609F34 80219484 46800020 */ cvt.s.w $f0, $f0
/* 609F38 80219488 4600A03C */ c.lt.s $f20, $f0
/* 609F3C 8021948C 00000000 */ nop
/* 609F40 80219490 4500000B */ bc1f .L802194C0
/* 609F44 80219494 00000000 */ nop
/* 609F48 80219498 92020072 */ lbu $v0, 0x72($s0)
/* 609F4C 8021949C 44820000 */ mtc1 $v0, $f0
/* 609F50 802194A0 00000000 */ nop
/* 609F54 802194A4 46800020 */ cvt.s.w $f0, $f0
/* 609F58 802194A8 46160002 */ mul.s $f0, $f0, $f22
/* 609F5C 802194AC 00000000 */ nop
/* 609F60 802194B0 4600203C */ c.lt.s $f4, $f0
/* 609F64 802194B4 00000000 */ nop
/* 609F68 802194B8 4501FF86 */ bc1t .L802192D4
/* 609F6C 802194BC 24020001 */ addiu $v0, $zero, 1
.L802194C0:
/* 609F70 802194C0 8E10000C */ lw $s0, 0xc($s0)
/* 609F74 802194C4 1600FFC7 */ bnez $s0, .L802193E4
/* 609F78 802194C8 00000000 */ nop
/* 609F7C 802194CC 26730001 */ addiu $s3, $s3, 1
.L802194D0:
/* 609F80 802194D0 2A620018 */ slti $v0, $s3, 0x18
/* 609F84 802194D4 1440FF88 */ bnez $v0, .L802192F8
/* 609F88 802194D8 26520004 */ addiu $s2, $s2, 4
.L802194DC:
/* 609F8C 802194DC 24020002 */ addiu $v0, $zero, 2
/* 609F90 802194E0 8FBF0028 */ lw $ra, 0x28($sp)
/* 609F94 802194E4 8FB50024 */ lw $s5, 0x24($sp)
/* 609F98 802194E8 8FB40020 */ lw $s4, 0x20($sp)
/* 609F9C 802194EC 8FB3001C */ lw $s3, 0x1c($sp)
/* 609FA0 802194F0 8FB20018 */ lw $s2, 0x18($sp)
/* 609FA4 802194F4 8FB10014 */ lw $s1, 0x14($sp)
/* 609FA8 802194F8 8FB00010 */ lw $s0, 0x10($sp)
/* 609FAC 802194FC D7BA0048 */ ldc1 $f26, 0x48($sp)
/* 609FB0 80219500 D7B80040 */ ldc1 $f24, 0x40($sp)
/* 609FB4 80219504 D7B60038 */ ldc1 $f22, 0x38($sp)
/* 609FB8 80219508 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 609FBC 8021950C 03E00008 */ jr $ra
/* 609FC0 80219510 27BD0050 */ addiu $sp, $sp, 0x50
/* 609FC4 80219514 00000000 */ nop
/* 609FC8 80219518 00000000 */ nop
/* 609FCC 8021951C 00000000 */ nop