papermario/asm/nonmatchings/battle/area_nok/48D1A0/func_802182D8_48D478.s
Ethan Roseman 20a99f4037 OK
2021-02-03 15:40:16 +09:00

112 lines
5.3 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802182D8_48D478
/* 48D478 802182D8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 48D47C 802182DC F7B60020 */ sdc1 $f22, 0x20($sp)
/* 48D480 802182E0 46006586 */ mov.s $f22, $f12
/* 48D484 802182E4 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 48D488 802182E8 AFBF0010 */ sw $ra, 0x10($sp)
/* 48D48C 802182EC 0C00A3FC */ jal length2D
/* 48D490 802182F0 46007506 */ mov.s $f20, $f14
/* 48D494 802182F4 4600A18D */ trunc.w.s $f6, $f20
/* 48D498 802182F8 44023000 */ mfc1 $v0, $f6
/* 48D49C 802182FC 00000000 */ nop
/* 48D4A0 80218300 04420001 */ bltzl $v0, .L80218308
/* 48D4A4 80218304 00021023 */ negu $v0, $v0
.L80218308:
/* 48D4A8 80218308 44821000 */ mtc1 $v0, $f2
/* 48D4AC 8021830C 00000000 */ nop
/* 48D4B0 80218310 468010A0 */ cvt.s.w $f2, $f2
/* 48D4B4 80218314 46001103 */ div.s $f4, $f2, $f0
/* 48D4B8 80218318 0000202D */ daddu $a0, $zero, $zero
/* 48D4BC 8021831C 2406005A */ addiu $a2, $zero, 0x5a
/* 48D4C0 80218320 0080282D */ daddu $a1, $a0, $zero
/* 48D4C4 80218324 3C078022 */ lui $a3, %hi(D_8021D57C_49271C)
/* 48D4C8 80218328 24E7D57C */ addiu $a3, $a3, %lo(D_8021D57C_49271C)
/* 48D4CC 8021832C 30C2FFFF */ andi $v0, $a2, 0xffff
.L80218330:
/* 48D4D0 80218330 3083FFFF */ andi $v1, $a0, 0xffff
/* 48D4D4 80218334 00431023 */ subu $v0, $v0, $v1
/* 48D4D8 80218338 00021FC2 */ srl $v1, $v0, 0x1f
/* 48D4DC 8021833C 00431021 */ addu $v0, $v0, $v1
/* 48D4E0 80218340 00021043 */ sra $v0, $v0, 1
/* 48D4E4 80218344 00821821 */ addu $v1, $a0, $v0
/* 48D4E8 80218348 3062FFFF */ andi $v0, $v1, 0xffff
/* 48D4EC 8021834C 00021080 */ sll $v0, $v0, 2
/* 48D4F0 80218350 00471021 */ addu $v0, $v0, $a3
/* 48D4F4 80218354 C4400000 */ lwc1 $f0, ($v0)
/* 48D4F8 80218358 4604003C */ c.lt.s $f0, $f4
/* 48D4FC 8021835C 00000000 */ nop
/* 48D500 80218360 45020002 */ bc1fl .L8021836C
/* 48D504 80218364 0060302D */ daddu $a2, $v1, $zero
/* 48D508 80218368 0060202D */ daddu $a0, $v1, $zero
.L8021836C:
/* 48D50C 8021836C 24A50001 */ addiu $a1, $a1, 1
/* 48D510 80218370 30A2FFFF */ andi $v0, $a1, 0xffff
/* 48D514 80218374 2C420007 */ sltiu $v0, $v0, 7
/* 48D518 80218378 1440FFED */ bnez $v0, .L80218330
/* 48D51C 8021837C 30C2FFFF */ andi $v0, $a2, 0xffff
/* 48D520 80218380 3082FFFF */ andi $v0, $a0, 0xffff
/* 48D524 80218384 00021080 */ sll $v0, $v0, 2
/* 48D528 80218388 30C3FFFF */ andi $v1, $a2, 0xffff
/* 48D52C 8021838C 3C018022 */ lui $at, %hi(D_8021D57C_49271C)
/* 48D530 80218390 00220821 */ addu $at, $at, $v0
/* 48D534 80218394 C422D57C */ lwc1 $f2, %lo(D_8021D57C_49271C)($at)
/* 48D538 80218398 00031880 */ sll $v1, $v1, 2
/* 48D53C 8021839C 46041081 */ sub.s $f2, $f2, $f4
/* 48D540 802183A0 3C018022 */ lui $at, %hi(D_8021D57C_49271C)
/* 48D544 802183A4 00230821 */ addu $at, $at, $v1
/* 48D548 802183A8 C420D57C */ lwc1 $f0, %lo(D_8021D57C_49271C)($at)
/* 48D54C 802183AC 46040001 */ sub.s $f0, $f0, $f4
/* 48D550 802183B0 46001085 */ abs.s $f2, $f2
/* 48D554 802183B4 46000005 */ abs.s $f0, $f0
/* 48D558 802183B8 4600103C */ c.lt.s $f2, $f0
/* 48D55C 802183BC 00000000 */ nop
/* 48D560 802183C0 45000002 */ bc1f .L802183CC
/* 48D564 802183C4 00C0182D */ daddu $v1, $a2, $zero
/* 48D568 802183C8 0080182D */ daddu $v1, $a0, $zero
.L802183CC:
/* 48D56C 802183CC 44800000 */ mtc1 $zero, $f0
/* 48D570 802183D0 00000000 */ nop
/* 48D574 802183D4 4600B03C */ c.lt.s $f22, $f0
/* 48D578 802183D8 00000000 */ nop
/* 48D57C 802183DC 4500000A */ bc1f .L80218408
/* 48D580 802183E0 00000000 */ nop
/* 48D584 802183E4 4614003E */ c.le.s $f0, $f20
/* 48D588 802183E8 00000000 */ nop
/* 48D58C 802183EC 45000004 */ bc1f .L80218400
/* 48D590 802183F0 240200B4 */ addiu $v0, $zero, 0xb4
/* 48D594 802183F4 00431823 */ subu $v1, $v0, $v1
/* 48D598 802183F8 44800000 */ mtc1 $zero, $f0
/* 48D59C 802183FC 00000000 */ nop
.L80218400:
/* 48D5A0 80218400 4600B03C */ c.lt.s $f22, $f0
/* 48D5A4 80218404 00000000 */ nop
.L80218408:
/* 48D5A8 80218408 45000005 */ bc1f .L80218420
/* 48D5AC 8021840C 00000000 */ nop
/* 48D5B0 80218410 4600A03C */ c.lt.s $f20, $f0
/* 48D5B4 80218414 00000000 */ nop
/* 48D5B8 80218418 45030001 */ bc1tl .L80218420
/* 48D5BC 8021841C 246300B4 */ addiu $v1, $v1, 0xb4
.L80218420:
/* 48D5C0 80218420 44800000 */ mtc1 $zero, $f0
/* 48D5C4 80218424 00000000 */ nop
/* 48D5C8 80218428 4616003E */ c.le.s $f0, $f22
/* 48D5CC 8021842C 00000000 */ nop
/* 48D5D0 80218430 45000006 */ bc1f .L8021844C
/* 48D5D4 80218434 00000000 */ nop
/* 48D5D8 80218438 4600A03C */ c.lt.s $f20, $f0
/* 48D5DC 8021843C 00000000 */ nop
/* 48D5E0 80218440 45000002 */ bc1f .L8021844C
/* 48D5E4 80218444 24020168 */ addiu $v0, $zero, 0x168
/* 48D5E8 80218448 00431823 */ subu $v1, $v0, $v1
.L8021844C:
/* 48D5EC 8021844C 8FBF0010 */ lw $ra, 0x10($sp)
/* 48D5F0 80218450 D7B60020 */ ldc1 $f22, 0x20($sp)
/* 48D5F4 80218454 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 48D5F8 80218458 3062FFFF */ andi $v0, $v1, 0xffff
/* 48D5FC 8021845C 03E00008 */ jr $ra
/* 48D600 80218460 27BD0028 */ addiu $sp, $sp, 0x28