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

69 lines
3.3 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8003E0D4
/* 194D4 8003E0D4 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 194D8 8003E0D8 AFB00010 */ sw $s0, 0x10($sp)
/* 194DC 8003E0DC 0080802D */ daddu $s0, $a0, $zero
/* 194E0 8003E0E0 3C048007 */ lui $a0, 0x8007
/* 194E4 8003E0E4 24847C38 */ addiu $a0, $a0, 0x7c38
/* 194E8 8003E0E8 AFBF0014 */ sw $ra, 0x14($sp)
/* 194EC 8003E0EC F7B40018 */ sdc1 $f20, 0x18($sp)
/* 194F0 8003E0F0 94820000 */ lhu $v0, ($a0)
/* 194F4 8003E0F4 24430001 */ addiu $v1, $v0, 1
/* 194F8 8003E0F8 00021400 */ sll $v0, $v0, 0x10
/* 194FC 8003E0FC 00021403 */ sra $v0, $v0, 0x10
/* 19500 8003E100 28420004 */ slti $v0, $v0, 4
/* 19504 8003E104 1440002D */ bnez $v0, .L8003E1BC
/* 19508 8003E108 A4830000 */ sh $v1, ($a0)
/* 1950C 8003E10C C60C000C */ lwc1 $f12, 0xc($s0)
/* 19510 8003E110 A4800000 */ sh $zero, ($a0)
/* 19514 8003E114 0C00A6C9 */ jal clamp_angle
/* 19518 8003E118 46006307 */ neg.s $f12, $f12
/* 1951C 8003E11C 3C0140C9 */ lui $at, 0x40c9
/* 19520 8003E120 34210FD0 */ ori $at, $at, 0xfd0
/* 19524 8003E124 44811000 */ mtc1 $at, $f2
/* 19528 8003E128 00000000 */ nop
/* 1952C 8003E12C 46020502 */ mul.s $f20, $f0, $f2
/* 19530 8003E130 00000000 */ nop
/* 19534 8003E134 3C0143B4 */ lui $at, 0x43b4
/* 19538 8003E138 44810000 */ mtc1 $at, $f0
/* 1953C 8003E13C 00000000 */ nop
/* 19540 8003E140 4600A503 */ div.s $f20, $f20, $f0
/* 19544 8003E144 0C00A85B */ jal sin_rad
/* 19548 8003E148 4600A306 */ mov.s $f12, $f20
/* 1954C 8003E14C 4600A306 */ mov.s $f12, $f20
/* 19550 8003E150 0C00A874 */ jal cos_rad
/* 19554 8003E154 46000506 */ mov.s $f20, $f0
/* 19558 8003E158 860200A6 */ lh $v0, 0xa6($s0)
/* 1955C 8003E15C 44821000 */ mtc1 $v0, $f2
/* 19560 8003E160 00000000 */ nop
/* 19564 8003E164 468010A0 */ cvt.s.w $f2, $f2
/* 19568 8003E168 46141502 */ mul.s $f20, $f2, $f20
/* 1956C 8003E16C 00000000 */ nop
/* 19570 8003E170 46001082 */ mul.s $f2, $f2, $f0
/* 19574 8003E174 00000000 */ nop
/* 19578 8003E178 3C013E4C */ lui $at, 0x3e4c
/* 1957C 8003E17C 3421CCCD */ ori $at, $at, 0xcccd
/* 19580 8003E180 44810000 */ mtc1 $at, $f0
/* 19584 8003E184 00000000 */ nop
/* 19588 8003E188 4600A502 */ mul.s $f20, $f20, $f0
/* 1958C 8003E18C 00000000 */ nop
/* 19590 8003E190 46001082 */ mul.s $f2, $f2, $f0
/* 19594 8003E194 00000000 */ nop
/* 19598 8003E198 C6000038 */ lwc1 $f0, 0x38($s0)
/* 1959C 8003E19C 46140000 */ add.s $f0, $f0, $f20
/* 195A0 8003E1A0 44050000 */ mfc1 $a1, $f0
/* 195A4 8003E1A4 C6000040 */ lwc1 $f0, 0x40($s0)
/* 195A8 8003E1A8 46020000 */ add.s $f0, $f0, $f2
/* 195AC 8003E1AC 3C064220 */ lui $a2, 0x4220
/* 195B0 8003E1B0 44070000 */ mfc1 $a3, $f0
/* 195B4 8003E1B4 0C01C244 */ jal func_80070910
/* 195B8 8003E1B8 24040001 */ addiu $a0, $zero, 1
.L8003E1BC:
/* 195BC 8003E1BC 8FBF0014 */ lw $ra, 0x14($sp)
/* 195C0 8003E1C0 8FB00010 */ lw $s0, 0x10($sp)
/* 195C4 8003E1C4 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 195C8 8003E1C8 03E00008 */ jr $ra
/* 195CC 8003E1CC 27BD0020 */ addiu $sp, $sp, 0x20