papermario/asm/nonmatchings/code_13870_len_6980/func_8003E1D0.s
2020-09-23 23:16:13 -04:00

74 lines
3.6 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8003E1D0
/* 195D0 8003E1D0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 195D4 8003E1D4 AFB00018 */ sw $s0, 0x18($sp)
/* 195D8 8003E1D8 0080802D */ daddu $s0, $a0, $zero
/* 195DC 8003E1DC 3C048007 */ lui $a0, 0x8007
/* 195E0 8003E1E0 24847C3A */ addiu $a0, $a0, 0x7c3a
/* 195E4 8003E1E4 AFBF001C */ sw $ra, 0x1c($sp)
/* 195E8 8003E1E8 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 195EC 8003E1EC 94820000 */ lhu $v0, ($a0)
/* 195F0 8003E1F0 24430001 */ addiu $v1, $v0, 1
/* 195F4 8003E1F4 00021400 */ sll $v0, $v0, 0x10
/* 195F8 8003E1F8 00021403 */ sra $v0, $v0, 0x10
/* 195FC 8003E1FC 28420004 */ slti $v0, $v0, 4
/* 19600 8003E200 14400032 */ bnez $v0, .L8003E2CC
/* 19604 8003E204 A4830000 */ sh $v1, ($a0)
/* 19608 8003E208 C60C000C */ lwc1 $f12, 0xc($s0)
/* 1960C 8003E20C A4800000 */ sh $zero, ($a0)
/* 19610 8003E210 0C00A6C9 */ jal clamp_angle
/* 19614 8003E214 46006307 */ neg.s $f12, $f12
/* 19618 8003E218 3C0140C9 */ lui $at, 0x40c9
/* 1961C 8003E21C 34210FD0 */ ori $at, $at, 0xfd0
/* 19620 8003E220 44811000 */ mtc1 $at, $f2
/* 19624 8003E224 00000000 */ nop
/* 19628 8003E228 46020502 */ mul.s $f20, $f0, $f2
/* 1962C 8003E22C 00000000 */ nop
/* 19630 8003E230 3C0143B4 */ lui $at, 0x43b4
/* 19634 8003E234 44810000 */ mtc1 $at, $f0
/* 19638 8003E238 00000000 */ nop
/* 1963C 8003E23C 4600A503 */ div.s $f20, $f20, $f0
/* 19640 8003E240 0C00A85B */ jal sin_rad
/* 19644 8003E244 4600A306 */ mov.s $f12, $f20
/* 19648 8003E248 4600A306 */ mov.s $f12, $f20
/* 1964C 8003E24C 0C00A874 */ jal cos_rad
/* 19650 8003E250 46000506 */ mov.s $f20, $f0
/* 19654 8003E254 860200A6 */ lh $v0, 0xa6($s0)
/* 19658 8003E258 44821000 */ mtc1 $v0, $f2
/* 1965C 8003E25C 00000000 */ nop
/* 19660 8003E260 468010A0 */ cvt.s.w $f2, $f2
/* 19664 8003E264 46141502 */ mul.s $f20, $f2, $f20
/* 19668 8003E268 00000000 */ nop
/* 1966C 8003E26C 46001082 */ mul.s $f2, $f2, $f0
/* 19670 8003E270 00000000 */ nop
/* 19674 8003E274 3C013E4C */ lui $at, 0x3e4c
/* 19678 8003E278 3421CCCD */ ori $at, $at, 0xcccd
/* 1967C 8003E27C 44810000 */ mtc1 $at, $f0
/* 19680 8003E280 00000000 */ nop
/* 19684 8003E284 4600A502 */ mul.s $f20, $f20, $f0
/* 19688 8003E288 00000000 */ nop
/* 1968C 8003E28C 46001082 */ mul.s $f2, $f2, $f0
/* 19690 8003E290 00000000 */ nop
/* 19694 8003E294 C6000038 */ lwc1 $f0, 0x38($s0)
/* 19698 8003E298 C606003C */ lwc1 $f6, 0x3c($s0)
/* 1969C 8003E29C 46140000 */ add.s $f0, $f0, $f20
/* 196A0 8003E2A0 44802000 */ mtc1 $zero, $f4
/* 196A4 8003E2A4 00000000 */ nop
/* 196A8 8003E2A8 46043180 */ add.s $f6, $f6, $f4
/* 196AC 8003E2AC 44050000 */ mfc1 $a1, $f0
/* 196B0 8003E2B0 C6000040 */ lwc1 $f0, 0x40($s0)
/* 196B4 8003E2B4 46020000 */ add.s $f0, $f0, $f2
/* 196B8 8003E2B8 44063000 */ mfc1 $a2, $f6
/* 196BC 8003E2BC 44070000 */ mfc1 $a3, $f0
/* 196C0 8003E2C0 0000202D */ daddu $a0, $zero, $zero
/* 196C4 8003E2C4 0C01C16C */ jal func_800705B0
/* 196C8 8003E2C8 E7A40010 */ swc1 $f4, 0x10($sp)
.L8003E2CC:
/* 196CC 8003E2CC 8FBF001C */ lw $ra, 0x1c($sp)
/* 196D0 8003E2D0 8FB00018 */ lw $s0, 0x18($sp)
/* 196D4 8003E2D4 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 196D8 8003E2D8 03E00008 */ jr $ra
/* 196DC 8003E2DC 27BD0028 */ addiu $sp, $sp, 0x28