papermario/asm/nonmatchings/code_135EE0/func_8024B128.s
2020-08-12 22:37:16 -04:00

195 lines
9.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8024B128
/* 13E468 8024B128 45010005 */ bc1t .L8024B140
/* 13E46C 8024B12C 00000000 */ nop
/* 13E470 8024B130 26310001 */ addiu $s1, $s1, 1
/* 13E474 8024B134 0230102A */ slt $v0, $s1, $s0
/* 13E478 8024B138 1440FFF8 */ bnez $v0, .L8024B11C
/* 13E47C 8024B13C 24630008 */ addiu $v1, $v1, 8
.L8024B140:
/* 13E480 8024B140 3C028027 */ lui $v0, 0x8027
/* 13E484 8024B144 8C4206B0 */ lw $v0, 0x6b0($v0)
/* 13E488 8024B148 2444FFFF */ addiu $a0, $v0, -1
/* 13E48C 8024B14C 0224102A */ slt $v0, $s1, $a0
/* 13E490 8024B150 1040000C */ beqz $v0, .L8024B184
/* 13E494 8024B154 000418C0 */ sll $v1, $a0, 3
.L8024B158:
/* 13E498 8024B158 02431821 */ addu $v1, $s2, $v1
/* 13E49C 8024B15C 2484FFFF */ addiu $a0, $a0, -1
/* 13E4A0 8024B160 000410C0 */ sll $v0, $a0, 3
/* 13E4A4 8024B164 02421021 */ addu $v0, $s2, $v0
/* 13E4A8 8024B168 8C4C0000 */ lw $t4, ($v0)
/* 13E4AC 8024B16C 8C4D0004 */ lw $t5, 4($v0)
/* 13E4B0 8024B170 AC6C0000 */ sw $t4, ($v1)
/* 13E4B4 8024B174 AC6D0004 */ sw $t5, 4($v1)
/* 13E4B8 8024B178 0224102A */ slt $v0, $s1, $a0
/* 13E4BC 8024B17C 1440FFF6 */ bnez $v0, .L8024B158
/* 13E4C0 8024B180 000418C0 */ sll $v1, $a0, 3
.L8024B184:
/* 13E4C4 8024B184 3C068027 */ lui $a2, 0x8027
/* 13E4C8 8024B188 24C606B0 */ addiu $a2, $a2, 0x6b0
/* 13E4CC 8024B18C 001110C0 */ sll $v0, $s1, 3
/* 13E4D0 8024B190 02421021 */ addu $v0, $s2, $v0
/* 13E4D4 8024B194 AC500004 */ sw $s0, 4($v0)
/* 13E4D8 8024B198 E4420000 */ swc1 $f2, ($v0)
/* 13E4DC 8024B19C 8CC20000 */ lw $v0, ($a2)
/* 13E4E0 8024B1A0 26100001 */ addiu $s0, $s0, 1
/* 13E4E4 8024B1A4 0202102A */ slt $v0, $s0, $v0
/* 13E4E8 8024B1A8 1440FFC4 */ bnez $v0, .L8024B0BC
/* 13E4EC 8024B1AC 26730168 */ addiu $s3, $s3, 0x168
.L8024B1B0:
/* 13E4F0 8024B1B0 3C048027 */ lui $a0, 0x8027
/* 13E4F4 8024B1B4 248406B0 */ addiu $a0, $a0, 0x6b0
/* 13E4F8 8024B1B8 8C820000 */ lw $v0, ($a0)
/* 13E4FC 8024B1BC 184000A8 */ blez $v0, .L8024B460
/* 13E500 8024B1C0 0000882D */ daddu $s1, $zero, $zero
/* 13E504 8024B1C4 27B20090 */ addiu $s2, $sp, 0x90
/* 13E508 8024B1C8 3C138027 */ lui $s3, 0x8027
/* 13E50C 8024B1CC 26730660 */ addiu $s3, $s3, 0x660
/* 13E510 8024B1D0 4480D000 */ mtc1 $zero, $f26
/* 13E514 8024B1D4 3C013F80 */ lui $at, 0x3f80
/* 13E518 8024B1D8 4481E000 */ mtc1 $at, $f28
/* 13E51C 8024B1DC 001118C0 */ sll $v1, $s1, 3
.L8024B1E0:
/* 13E520 8024B1E0 27A200D0 */ addiu $v0, $sp, 0xd0
/* 13E524 8024B1E4 00431021 */ addu $v0, $v0, $v1
/* 13E528 8024B1E8 8C500004 */ lw $s0, 4($v0)
/* 13E52C 8024B1EC 8C840000 */ lw $a0, ($a0)
/* 13E530 8024B1F0 00101840 */ sll $v1, $s0, 1
/* 13E534 8024B1F4 00701821 */ addu $v1, $v1, $s0
/* 13E538 8024B1F8 00031100 */ sll $v0, $v1, 4
/* 13E53C 8024B1FC 00431023 */ subu $v0, $v0, $v1
/* 13E540 8024B200 000210C0 */ sll $v0, $v0, 3
/* 13E544 8024B204 14800002 */ bnez $a0, .L8024B210
/* 13E548 8024B208 0044001A */ div $zero, $v0, $a0
/* 13E54C 8024B20C 0007000D */ break 7
.L8024B210:
/* 13E550 8024B210 2401FFFF */ addiu $at, $zero, -1
/* 13E554 8024B214 14810004 */ bne $a0, $at, .L8024B228
/* 13E558 8024B218 3C018000 */ lui $at, 0x8000
/* 13E55C 8024B21C 14410002 */ bne $v0, $at, .L8024B228
/* 13E560 8024B220 00000000 */ nop
/* 13E564 8024B224 0006000D */ break 6
.L8024B228:
/* 13E568 8024B228 00001012 */ mflo $v0
/* 13E56C 8024B22C 3C018027 */ lui $at, 0x8027
/* 13E570 8024B230 C42006A8 */ lwc1 $f0, 0x6a8($at)
/* 13E574 8024B234 4482A000 */ mtc1 $v0, $f20
/* 13E578 8024B238 00000000 */ nop
/* 13E57C 8024B23C 4680A520 */ cvt.s.w $f20, $f20
/* 13E580 8024B240 00041040 */ sll $v0, $a0, 1
/* 13E584 8024B244 00441021 */ addu $v0, $v0, $a0
/* 13E588 8024B248 4600A501 */ sub.s $f20, $f20, $f0
/* 13E58C 8024B24C 24420011 */ addiu $v0, $v0, 0x11
/* 13E590 8024B250 4482B000 */ mtc1 $v0, $f22
/* 13E594 8024B254 00000000 */ nop
/* 13E598 8024B258 4680B5A0 */ cvt.s.w $f22, $f22
/* 13E59C 8024B25C 0C00A8BB */ jal sin_deg
/* 13E5A0 8024B260 4600A306 */ mov.s $f12, $f20
/* 13E5A4 8024B264 4600B582 */ mul.s $f22, $f22, $f0
/* 13E5A8 8024B268 00000000 */ nop
/* 13E5AC 8024B26C 3C014228 */ lui $at, 0x4228
/* 13E5B0 8024B270 44810000 */ mtc1 $at, $f0
/* 13E5B4 8024B274 4600A306 */ mov.s $f12, $f20
/* 13E5B8 8024B278 0C00A8D4 */ jal cos_deg
/* 13E5BC 8024B27C 4600B580 */ add.s $f22, $f22, $f0
/* 13E5C0 8024B280 3C0141F0 */ lui $at, 0x41f0
/* 13E5C4 8024B284 44811000 */ mtc1 $at, $f2
/* 13E5C8 8024B288 00000000 */ nop
/* 13E5CC 8024B28C 46020002 */ mul.s $f0, $f0, $f2
/* 13E5D0 8024B290 00000000 */ nop
/* 13E5D4 8024B294 4600A306 */ mov.s $f12, $f20
/* 13E5D8 8024B298 0C00A8D4 */ jal cos_deg
/* 13E5DC 8024B29C 46001601 */ sub.s $f24, $f2, $f0
/* 13E5E0 8024B2A0 3C0141A0 */ lui $at, 0x41a0
/* 13E5E4 8024B2A4 44811000 */ mtc1 $at, $f2
/* 13E5E8 8024B2A8 00000000 */ nop
/* 13E5EC 8024B2AC 46020002 */ mul.s $f0, $f0, $f2
/* 13E5F0 8024B2B0 00000000 */ nop
/* 13E5F4 8024B2B4 8FAC018C */ lw $t4, 0x18c($sp)
/* 13E5F8 8024B2B8 25820016 */ addiu $v0, $t4, 0x16
/* 13E5FC 8024B2BC 44821000 */ mtc1 $v0, $f2
/* 13E600 8024B2C0 00000000 */ nop
/* 13E604 8024B2C4 468010A0 */ cvt.s.w $f2, $f2
/* 13E608 8024B2C8 46161080 */ add.s $f2, $f2, $f22
/* 13E60C 8024B2CC 44051000 */ mfc1 $a1, $f2
/* 13E610 8024B2D0 3C014270 */ lui $at, 0x4270
/* 13E614 8024B2D4 44811000 */ mtc1 $at, $f2
/* 13E618 8024B2D8 27A40050 */ addiu $a0, $sp, 0x50
/* 13E61C 8024B2DC 4602C080 */ add.s $f2, $f24, $f2
/* 13E620 8024B2E0 8FAD0190 */ lw $t5, 0x190($sp)
/* 13E624 8024B2E4 3C01403E */ lui $at, 0x403e
/* 13E628 8024B2E8 4481A800 */ mtc1 $at, $f21
/* 13E62C 8024B2EC 4480A000 */ mtc1 $zero, $f20
/* 13E630 8024B2F0 461A0000 */ add.s $f0, $f0, $f26
/* 13E634 8024B2F4 25A20051 */ addiu $v0, $t5, 0x51
/* 13E638 8024B2F8 44822000 */ mtc1 $v0, $f4
/* 13E63C 8024B2FC 00000000 */ nop
/* 13E640 8024B300 46802120 */ cvt.s.w $f4, $f4
/* 13E644 8024B304 4600C287 */ neg.s $f10, $f24
/* 13E648 8024B308 460010A1 */ cvt.d.s $f2, $f2
/* 13E64C 8024B30C 46002100 */ add.s $f4, $f4, $f0
/* 13E650 8024B310 3C013FE0 */ lui $at, 0x3fe0
/* 13E654 8024B314 44810800 */ mtc1 $at, $f1
/* 13E658 8024B318 44800000 */ mtc1 $zero, $f0
/* 13E65C 8024B31C 4622A503 */ div.d $f20, $f20, $f2
/* 13E660 8024B320 4620A500 */ add.d $f20, $f20, $f0
/* 13E664 8024B324 44075000 */ mfc1 $a3, $f10
/* 13E668 8024B328 44062000 */ mfc1 $a2, $f4
/* 13E66C 8024B32C 0C019E40 */ jal guTranslateF
/* 13E670 8024B330 4620A520 */ cvt.s.d $f20, $f20
/* 13E674 8024B334 3C054334 */ lui $a1, 0x4334
/* 13E678 8024B338 4406D000 */ mfc1 $a2, $f26
/* 13E67C 8024B33C 4407D000 */ mfc1 $a3, $f26
/* 13E680 8024B340 0240202D */ daddu $a0, $s2, $zero
/* 13E684 8024B344 0C019EC8 */ jal guRotateF
/* 13E688 8024B348 E7BC0010 */ swc1 $f28, 0x10($sp)
/* 13E68C 8024B34C 0240202D */ daddu $a0, $s2, $zero
/* 13E690 8024B350 27A50050 */ addiu $a1, $sp, 0x50
/* 13E694 8024B354 0C019D80 */ jal guMtxCatF
/* 13E698 8024B358 00A0302D */ daddu $a2, $a1, $zero
/* 13E69C 8024B35C 0240202D */ daddu $a0, $s2, $zero
/* 13E6A0 8024B360 4405A000 */ mfc1 $a1, $f20
/* 13E6A4 8024B364 4407E000 */ mfc1 $a3, $f28
/* 13E6A8 8024B368 0C019DF0 */ jal guScaleF
/* 13E6AC 8024B36C 00A0302D */ daddu $a2, $a1, $zero
/* 13E6B0 8024B370 0240202D */ daddu $a0, $s2, $zero
/* 13E6B4 8024B374 27A50050 */ addiu $a1, $sp, 0x50
/* 13E6B8 8024B378 0C019D80 */ jal guMtxCatF
/* 13E6BC 8024B37C 00A0302D */ daddu $a2, $a1, $zero
/* 13E6C0 8024B380 3C014100 */ lui $at, 0x4100
/* 13E6C4 8024B384 44810000 */ mtc1 $at, $f0
/* 13E6C8 8024B388 00000000 */ nop
/* 13E6CC 8024B38C 4618003C */ c.lt.s $f0, $f24
/* 13E6D0 8024B390 00000000 */ nop
/* 13E6D4 8024B394 45010011 */ bc1t .L8024B3DC
/* 13E6D8 8024B398 240600A0 */ addiu $a2, $zero, 0xa0
/* 13E6DC 8024B39C 3C0142BE */ lui $at, 0x42be
/* 13E6E0 8024B3A0 44811000 */ mtc1 $at, $f2
/* 13E6E4 8024B3A4 00000000 */ nop
/* 13E6E8 8024B3A8 4602C082 */ mul.s $f2, $f24, $f2
/* 13E6EC 8024B3AC 00000000 */ nop
/* 13E6F0 8024B3B0 3C013E00 */ lui $at, 0x3e00
/* 13E6F4 8024B3B4 44810000 */ mtc1 $at, $f0
/* 13E6F8 8024B3B8 00000000 */ nop
/* 13E6FC 8024B3BC 46001082 */ mul.s $f2, $f2, $f0
/* 13E700 8024B3C0 00000000 */ nop
/* 13E704 8024B3C4 3C01437F */ lui $at, 0x437f
/* 13E708 8024B3C8 44810000 */ mtc1 $at, $f0
/* 13E70C 8024B3CC 00000000 */ nop
/* 13E710 8024B3D0 46020001 */ sub.s $f0, $f0, $f2
/* 13E714 8024B3D4 4600028D */ trunc.w.s $f10, $f0
/* 13E718 8024B3D8 44065000 */ mfc1 $a2, $f10
.L8024B3DC:
/* 13E71C 8024B3DC 24050006 */ addiu $a1, $zero, 6
/* 13E720 8024B3E0 3C028027 */ lui $v0, 0x8027
/* 13E724 8024B3E4 24420680 */ addiu $v0, $v0, 0x680
/* 13E728 8024B3E8 00108080 */ sll $s0, $s0, 2
/* 13E72C 8024B3EC 02028021 */ addu $s0, $s0, $v0
/* 13E730 8024B3F0 8E030000 */ lw $v1, ($s0)
/* 13E734 8024B3F4 240200FF */ addiu $v0, $zero, 0xff
/* 13E738 8024B3F8 AFA20014 */ sw $v0, 0x14($sp)