papermario/asm/nonmatchings/code_f8f60_len_1560/func_802D5270.s
2020-09-23 23:16:13 -04:00

121 lines
5.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802D5270
/* F9C20 802D5270 24C6FFFF */ addiu $a2, $a2, -1
/* F9C24 802D5274 18C00010 */ blez $a2, .L802D52B8
/* F9C28 802D5278 0000202D */ daddu $a0, $zero, $zero
/* F9C2C 802D527C 00861021 */ addu $v0, $a0, $a2
.L802D5280:
/* F9C30 802D5280 00021FC2 */ srl $v1, $v0, 0x1f
/* F9C34 802D5284 00431021 */ addu $v0, $v0, $v1
/* F9C38 802D5288 00021843 */ sra $v1, $v0, 1
/* F9C3C 802D528C 00031080 */ sll $v0, $v1, 2
/* F9C40 802D5290 00471021 */ addu $v0, $v0, $a3
/* F9C44 802D5294 C4400000 */ lwc1 $f0, ($v0)
/* F9C48 802D5298 460C003C */ c.lt.s $f0, $f12
/* F9C4C 802D529C 00000000 */ nop
/* F9C50 802D52A0 45020002 */ bc1fl .L802D52AC
/* F9C54 802D52A4 0060302D */ daddu $a2, $v1, $zero
/* F9C58 802D52A8 24640001 */ addiu $a0, $v1, 1
.L802D52AC:
/* F9C5C 802D52AC 0086102A */ slt $v0, $a0, $a2
/* F9C60 802D52B0 1440FFF3 */ bnez $v0, .L802D5280
/* F9C64 802D52B4 00861021 */ addu $v0, $a0, $a2
.L802D52B8:
/* F9C68 802D52B8 5C800001 */ bgtzl $a0, .L802D52C0
/* F9C6C 802D52BC 2484FFFF */ addiu $a0, $a0, -1
.L802D52C0:
/* F9C70 802D52C0 00041080 */ sll $v0, $a0, 2
/* F9C74 802D52C4 00471021 */ addu $v0, $v0, $a3
/* F9C78 802D52C8 00041840 */ sll $v1, $a0, 1
/* F9C7C 802D52CC 00641821 */ addu $v1, $v1, $a0
/* F9C80 802D52D0 00031880 */ sll $v1, $v1, 2
/* F9C84 802D52D4 8FA40014 */ lw $a0, 0x14($sp)
/* F9C88 802D52D8 C4480000 */ lwc1 $f8, ($v0)
/* F9C8C 802D52DC 00642021 */ addu $a0, $v1, $a0
/* F9C90 802D52E0 C4840000 */ lwc1 $f4, ($a0)
/* F9C94 802D52E4 46086281 */ sub.s $f10, $f12, $f8
/* F9C98 802D52E8 3C014040 */ lui $at, 0x4040
/* F9C9C 802D52EC 44816000 */ mtc1 $at, $f12
/* F9CA0 802D52F0 00000000 */ nop
/* F9CA4 802D52F4 460C2002 */ mul.s $f0, $f4, $f12
/* F9CA8 802D52F8 00000000 */ nop
/* F9CAC 802D52FC C48E000C */ lwc1 $f14, 0xc($a0)
/* F9CB0 802D5300 46047081 */ sub.s $f2, $f14, $f4
/* F9CB4 802D5304 460A1082 */ mul.s $f2, $f2, $f10
/* F9CB8 802D5308 00000000 */ nop
/* F9CBC 802D530C C4460004 */ lwc1 $f6, 4($v0)
/* F9CC0 802D5310 46083181 */ sub.s $f6, $f6, $f8
/* F9CC4 802D5314 46042100 */ add.s $f4, $f4, $f4
/* F9CC8 802D5318 460E2100 */ add.s $f4, $f4, $f14
/* F9CCC 802D531C 46062102 */ mul.s $f4, $f4, $f6
/* F9CD0 802D5320 00000000 */ nop
/* F9CD4 802D5324 46061083 */ div.s $f2, $f2, $f6
/* F9CD8 802D5328 46001080 */ add.s $f2, $f2, $f0
/* F9CDC 802D532C 8FA20010 */ lw $v0, 0x10($sp)
/* F9CE0 802D5330 460A1082 */ mul.s $f2, $f2, $f10
/* F9CE4 802D5334 00000000 */ nop
/* F9CE8 802D5338 00621821 */ addu $v1, $v1, $v0
/* F9CEC 802D533C C4680000 */ lwc1 $f8, ($v1)
/* F9CF0 802D5340 C460000C */ lwc1 $f0, 0xc($v1)
/* F9CF4 802D5344 46080001 */ sub.s $f0, $f0, $f8
/* F9CF8 802D5348 46060003 */ div.s $f0, $f0, $f6
/* F9CFC 802D534C 46040001 */ sub.s $f0, $f0, $f4
/* F9D00 802D5350 46001080 */ add.s $f2, $f2, $f0
/* F9D04 802D5354 460A1082 */ mul.s $f2, $f2, $f10
/* F9D08 802D5358 00000000 */ nop
/* F9D0C 802D535C 46081080 */ add.s $f2, $f2, $f8
/* F9D10 802D5360 E4A20000 */ swc1 $f2, ($a1)
/* F9D14 802D5364 C4840004 */ lwc1 $f4, 4($a0)
/* F9D18 802D5368 460C2002 */ mul.s $f0, $f4, $f12
/* F9D1C 802D536C 00000000 */ nop
/* F9D20 802D5370 C4880010 */ lwc1 $f8, 0x10($a0)
/* F9D24 802D5374 46044081 */ sub.s $f2, $f8, $f4
/* F9D28 802D5378 460A1082 */ mul.s $f2, $f2, $f10
/* F9D2C 802D537C 00000000 */ nop
/* F9D30 802D5380 46042100 */ add.s $f4, $f4, $f4
/* F9D34 802D5384 46082100 */ add.s $f4, $f4, $f8
/* F9D38 802D5388 46062102 */ mul.s $f4, $f4, $f6
/* F9D3C 802D538C 00000000 */ nop
/* F9D40 802D5390 46061083 */ div.s $f2, $f2, $f6
/* F9D44 802D5394 46001080 */ add.s $f2, $f2, $f0
/* F9D48 802D5398 460A1082 */ mul.s $f2, $f2, $f10
/* F9D4C 802D539C 00000000 */ nop
/* F9D50 802D53A0 C4680004 */ lwc1 $f8, 4($v1)
/* F9D54 802D53A4 C4600010 */ lwc1 $f0, 0x10($v1)
/* F9D58 802D53A8 46080001 */ sub.s $f0, $f0, $f8
/* F9D5C 802D53AC 46060003 */ div.s $f0, $f0, $f6
/* F9D60 802D53B0 46040001 */ sub.s $f0, $f0, $f4
/* F9D64 802D53B4 46001080 */ add.s $f2, $f2, $f0
/* F9D68 802D53B8 460A1082 */ mul.s $f2, $f2, $f10
/* F9D6C 802D53BC 00000000 */ nop
/* F9D70 802D53C0 46081080 */ add.s $f2, $f2, $f8
/* F9D74 802D53C4 E4A20004 */ swc1 $f2, 4($a1)
/* F9D78 802D53C8 C4840008 */ lwc1 $f4, 8($a0)
/* F9D7C 802D53CC 460C2302 */ mul.s $f12, $f4, $f12
/* F9D80 802D53D0 00000000 */ nop
/* F9D84 802D53D4 C4800014 */ lwc1 $f0, 0x14($a0)
/* F9D88 802D53D8 46040081 */ sub.s $f2, $f0, $f4
/* F9D8C 802D53DC 460A1082 */ mul.s $f2, $f2, $f10
/* F9D90 802D53E0 00000000 */ nop
/* F9D94 802D53E4 46042100 */ add.s $f4, $f4, $f4
/* F9D98 802D53E8 46002100 */ add.s $f4, $f4, $f0
/* F9D9C 802D53EC 46062102 */ mul.s $f4, $f4, $f6
/* F9DA0 802D53F0 00000000 */ nop
/* F9DA4 802D53F4 46061083 */ div.s $f2, $f2, $f6
/* F9DA8 802D53F8 460C1080 */ add.s $f2, $f2, $f12
/* F9DAC 802D53FC 460A1082 */ mul.s $f2, $f2, $f10
/* F9DB0 802D5400 00000000 */ nop
/* F9DB4 802D5404 C4680008 */ lwc1 $f8, 8($v1)
/* F9DB8 802D5408 C4600014 */ lwc1 $f0, 0x14($v1)
/* F9DBC 802D540C 46080001 */ sub.s $f0, $f0, $f8
/* F9DC0 802D5410 46060003 */ div.s $f0, $f0, $f6
/* F9DC4 802D5414 46040001 */ sub.s $f0, $f0, $f4
/* F9DC8 802D5418 46001080 */ add.s $f2, $f2, $f0
/* F9DCC 802D541C 460A1082 */ mul.s $f2, $f2, $f10
/* F9DD0 802D5420 00000000 */ nop
/* F9DD4 802D5424 46081080 */ add.s $f2, $f2, $f8
/* F9DD8 802D5428 03E00008 */ jr $ra
/* F9DDC 802D542C E4A20008 */ swc1 $f2, 8($a1)