.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel test_below_player /* 077480 800DDFD0 27BDFF80 */ addiu $sp, $sp, -0x80 /* 077484 800DDFD4 AFB40038 */ sw $s4, 0x38($sp) /* 077488 800DDFD8 8FB40090 */ lw $s4, 0x90($sp) /* 07748C 800DDFDC AFB1002C */ sw $s1, 0x2c($sp) /* 077490 800DDFE0 8FB10094 */ lw $s1, 0x94($sp) /* 077494 800DDFE4 AFB5003C */ sw $s5, 0x3c($sp) /* 077498 800DDFE8 8FB50098 */ lw $s5, 0x98($sp) /* 07749C 800DDFEC AFB60040 */ sw $s6, 0x40($sp) /* 0774A0 800DDFF0 8FB6009C */ lw $s6, 0x9c($sp) /* 0774A4 800DDFF4 AFB20030 */ sw $s2, 0x30($sp) /* 0774A8 800DDFF8 00C0902D */ daddu $s2, $a2, $zero /* 0774AC 800DDFFC AFB30034 */ sw $s3, 0x34($sp) /* 0774B0 800DE000 00E0982D */ daddu $s3, $a3, $zero /* 0774B4 800DE004 AFB70044 */ sw $s7, 0x44($sp) /* 0774B8 800DE008 8FB700A0 */ lw $s7, 0xa0($sp) /* 0774BC 800DE00C 3C0140C9 */ lui $at, 0x40c9 /* 0774C0 800DE010 34210FD0 */ ori $at, $at, 0xfd0 /* 0774C4 800DE014 44810000 */ mtc1 $at, $f0 /* 0774C8 800DE018 27A50010 */ addiu $a1, $sp, 0x10 /* 0774CC 800DE01C AFBE0048 */ sw $fp, 0x48($sp) /* 0774D0 800DE020 8FBE00A4 */ lw $fp, 0xa4($sp) /* 0774D4 800DE024 46006082 */ mul.s $f2, $f12, $f0 /* 0774D8 800DE028 00000000 */ nop /* 0774DC 800DE02C 3C0143B4 */ lui $at, 0x43b4 /* 0774E0 800DE030 44816000 */ mtc1 $at, $f12 /* 0774E4 800DE034 3C013E8F */ lui $at, 0x3e8f /* 0774E8 800DE038 34215C29 */ ori $at, $at, 0x5c29 /* 0774EC 800DE03C 44810000 */ mtc1 $at, $f0 /* 0774F0 800DE040 27A60014 */ addiu $a2, $sp, 0x14 /* 0774F4 800DE044 AFBF004C */ sw $ra, 0x4c($sp) /* 0774F8 800DE048 AFB00028 */ sw $s0, 0x28($sp) /* 0774FC 800DE04C F7BE0078 */ sdc1 $f30, 0x78($sp) /* 077500 800DE050 F7BC0070 */ sdc1 $f28, 0x70($sp) /* 077504 800DE054 F7BA0068 */ sdc1 $f26, 0x68($sp) /* 077508 800DE058 F7B80060 */ sdc1 $f24, 0x60($sp) /* 07750C 800DE05C F7B60058 */ sdc1 $f22, 0x58($sp) /* 077510 800DE060 F7B40050 */ sdc1 $f20, 0x50($sp) /* 077514 800DE064 AEA00000 */ sw $zero, ($s5) /* 077518 800DE068 AEC00000 */ sw $zero, ($s6) /* 07751C 800DE06C AEE00000 */ sw $zero, ($s7) /* 077520 800DE070 AFC00000 */ sw $zero, ($fp) /* 077524 800DE074 C63E0000 */ lwc1 $f30, ($s1) /* 077528 800DE078 46007502 */ mul.s $f20, $f14, $f0 /* 07752C 800DE07C 00000000 */ nop /* 077530 800DE080 0C00A82D */ jal sin_cos_rad /* 077534 800DE084 460C1303 */ div.s $f12, $f2, $f12 /* 077538 800DE088 C7A00010 */ lwc1 $f0, 0x10($sp) /* 07753C 800DE08C 4600A582 */ mul.s $f22, $f20, $f0 /* 077540 800DE090 00000000 */ nop /* 077544 800DE094 2410FFFF */ addiu $s0, $zero, -1 /* 077548 800DE098 27A40018 */ addiu $a0, $sp, 0x18 /* 07754C 800DE09C 27A5001C */ addiu $a1, $sp, 0x1c /* 077550 800DE0A0 C7A00014 */ lwc1 $f0, 0x14($sp) /* 077554 800DE0A4 4600A507 */ neg.s $f20, $f20 /* 077558 800DE0A8 4600A502 */ mul.s $f20, $f20, $f0 /* 07755C 800DE0AC 00000000 */ nop /* 077560 800DE0B0 27A60020 */ addiu $a2, $sp, 0x20 /* 077564 800DE0B4 C65C0000 */ lwc1 $f28, ($s2) /* 077568 800DE0B8 C6780000 */ lwc1 $f24, ($s3) /* 07756C 800DE0BC C69A0000 */ lwc1 $f26, ($s4) /* 077570 800DE0C0 4616E080 */ add.s $f2, $f28, $f22 /* 077574 800DE0C4 27A70024 */ addiu $a3, $sp, 0x24 /* 077578 800DE0C8 E7BE0024 */ swc1 $f30, 0x24($sp) /* 07757C 800DE0CC 4614D000 */ add.s $f0, $f26, $f20 /* 077580 800DE0D0 E7B8001C */ swc1 $f24, 0x1c($sp) /* 077584 800DE0D4 E7A20018 */ swc1 $f2, 0x18($sp) /* 077588 800DE0D8 0C037953 */ jal trace_below_player /* 07758C 800DE0DC E7A00020 */ swc1 $f0, 0x20($sp) /* 077590 800DE0E0 0040202D */ daddu $a0, $v0, $zero /* 077594 800DE0E4 0482001E */ bltzl $a0, .L800DE160 /* 077598 800DE0E8 27A40018 */ addiu $a0, $sp, 0x18 /* 07759C 800DE0EC C6200000 */ lwc1 $f0, ($s1) /* 0775A0 800DE0F0 C7A20024 */ lwc1 $f2, 0x24($sp) /* 0775A4 800DE0F4 46000005 */ abs.s $f0, $f0 /* 0775A8 800DE0F8 4600103E */ c.le.s $f2, $f0 /* 0775AC 800DE0FC 00000000 */ nop /* 0775B0 800DE100 45020017 */ bc1fl .L800DE160 /* 0775B4 800DE104 27A40018 */ addiu $a0, $sp, 0x18 /* 0775B8 800DE108 3C038007 */ lui $v1, 0x8007 /* 0775BC 800DE10C 2463419C */ addiu $v1, $v1, 0x419c /* 0775C0 800DE110 8C620000 */ lw $v0, ($v1) /* 0775C4 800DE114 C440011C */ lwc1 $f0, 0x11c($v0) /* 0775C8 800DE118 46000007 */ neg.s $f0, $f0 /* 0775CC 800DE11C E6A00000 */ swc1 $f0, ($s5) /* 0775D0 800DE120 8C620000 */ lw $v0, ($v1) /* 0775D4 800DE124 C4400124 */ lwc1 $f0, 0x124($v0) /* 0775D8 800DE128 46000007 */ neg.s $f0, $f0 /* 0775DC 800DE12C E6C00000 */ swc1 $f0, ($s6) /* 0775E0 800DE130 C7A00018 */ lwc1 $f0, 0x18($sp) /* 0775E4 800DE134 E6400000 */ swc1 $f0, ($s2) /* 0775E8 800DE138 C7A0001C */ lwc1 $f0, 0x1c($sp) /* 0775EC 800DE13C E6600000 */ swc1 $f0, ($s3) /* 0775F0 800DE140 C7A00020 */ lwc1 $f0, 0x20($sp) /* 0775F4 800DE144 E6800000 */ swc1 $f0, ($s4) /* 0775F8 800DE148 C7A00024 */ lwc1 $f0, 0x24($sp) /* 0775FC 800DE14C 0080802D */ daddu $s0, $a0, $zero /* 077600 800DE150 E6200000 */ swc1 $f0, ($s1) /* 077604 800DE154 E6F60000 */ swc1 $f22, ($s7) /* 077608 800DE158 E7D40000 */ swc1 $f20, ($fp) /* 07760C 800DE15C 27A40018 */ addiu $a0, $sp, 0x18 .L800DE160: /* 077610 800DE160 27A5001C */ addiu $a1, $sp, 0x1c /* 077614 800DE164 4616E081 */ sub.s $f2, $f28, $f22 /* 077618 800DE168 27A60020 */ addiu $a2, $sp, 0x20 /* 07761C 800DE16C 27A70024 */ addiu $a3, $sp, 0x24 /* 077620 800DE170 4614D001 */ sub.s $f0, $f26, $f20 /* 077624 800DE174 E7B8001C */ swc1 $f24, 0x1c($sp) /* 077628 800DE178 E7BE0024 */ swc1 $f30, 0x24($sp) /* 07762C 800DE17C E7A20018 */ swc1 $f2, 0x18($sp) /* 077630 800DE180 0C037953 */ jal trace_below_player /* 077634 800DE184 E7A00020 */ swc1 $f0, 0x20($sp) /* 077638 800DE188 0040202D */ daddu $a0, $v0, $zero /* 07763C 800DE18C 04820020 */ bltzl $a0, .L800DE210 /* 077640 800DE190 27A40018 */ addiu $a0, $sp, 0x18 /* 077644 800DE194 C6200000 */ lwc1 $f0, ($s1) /* 077648 800DE198 C7A20024 */ lwc1 $f2, 0x24($sp) /* 07764C 800DE19C 46000005 */ abs.s $f0, $f0 /* 077650 800DE1A0 4600103E */ c.le.s $f2, $f0 /* 077654 800DE1A4 00000000 */ nop /* 077658 800DE1A8 45020019 */ bc1fl .L800DE210 /* 07765C 800DE1AC 27A40018 */ addiu $a0, $sp, 0x18 /* 077660 800DE1B0 3C038007 */ lui $v1, 0x8007 /* 077664 800DE1B4 2463419C */ addiu $v1, $v1, 0x419c /* 077668 800DE1B8 8C620000 */ lw $v0, ($v1) /* 07766C 800DE1BC C440011C */ lwc1 $f0, 0x11c($v0) /* 077670 800DE1C0 46000007 */ neg.s $f0, $f0 /* 077674 800DE1C4 E6A00000 */ swc1 $f0, ($s5) /* 077678 800DE1C8 8C620000 */ lw $v0, ($v1) /* 07767C 800DE1CC C4400124 */ lwc1 $f0, 0x124($v0) /* 077680 800DE1D0 46000007 */ neg.s $f0, $f0 /* 077684 800DE1D4 E6C00000 */ swc1 $f0, ($s6) /* 077688 800DE1D8 C7A00018 */ lwc1 $f0, 0x18($sp) /* 07768C 800DE1DC E6400000 */ swc1 $f0, ($s2) /* 077690 800DE1E0 C7A0001C */ lwc1 $f0, 0x1c($sp) /* 077694 800DE1E4 E6600000 */ swc1 $f0, ($s3) /* 077698 800DE1E8 C7A00020 */ lwc1 $f0, 0x20($sp) /* 07769C 800DE1EC E6800000 */ swc1 $f0, ($s4) /* 0776A0 800DE1F0 C7A00024 */ lwc1 $f0, 0x24($sp) /* 0776A4 800DE1F4 0080802D */ daddu $s0, $a0, $zero /* 0776A8 800DE1F8 E6200000 */ swc1 $f0, ($s1) /* 0776AC 800DE1FC 4600B007 */ neg.s $f0, $f22 /* 0776B0 800DE200 E6E00000 */ swc1 $f0, ($s7) /* 0776B4 800DE204 4600A007 */ neg.s $f0, $f20 /* 0776B8 800DE208 E7C00000 */ swc1 $f0, ($fp) /* 0776BC 800DE20C 27A40018 */ addiu $a0, $sp, 0x18 .L800DE210: /* 0776C0 800DE210 27A5001C */ addiu $a1, $sp, 0x1c /* 0776C4 800DE214 4614E080 */ add.s $f2, $f28, $f20 /* 0776C8 800DE218 27A60020 */ addiu $a2, $sp, 0x20 /* 0776CC 800DE21C 27A70024 */ addiu $a3, $sp, 0x24 /* 0776D0 800DE220 4616D000 */ add.s $f0, $f26, $f22 /* 0776D4 800DE224 E7B8001C */ swc1 $f24, 0x1c($sp) /* 0776D8 800DE228 E7BE0024 */ swc1 $f30, 0x24($sp) /* 0776DC 800DE22C E7A20018 */ swc1 $f2, 0x18($sp) /* 0776E0 800DE230 0C037953 */ jal trace_below_player /* 0776E4 800DE234 E7A00020 */ swc1 $f0, 0x20($sp) /* 0776E8 800DE238 0040202D */ daddu $a0, $v0, $zero /* 0776EC 800DE23C 0482001E */ bltzl $a0, .L800DE2B8 /* 0776F0 800DE240 27A40018 */ addiu $a0, $sp, 0x18 /* 0776F4 800DE244 C6200000 */ lwc1 $f0, ($s1) /* 0776F8 800DE248 C7A20024 */ lwc1 $f2, 0x24($sp) /* 0776FC 800DE24C 46000005 */ abs.s $f0, $f0 /* 077700 800DE250 4600103E */ c.le.s $f2, $f0 /* 077704 800DE254 00000000 */ nop /* 077708 800DE258 45020017 */ bc1fl .L800DE2B8 /* 07770C 800DE25C 27A40018 */ addiu $a0, $sp, 0x18 /* 077710 800DE260 3C038007 */ lui $v1, 0x8007 /* 077714 800DE264 2463419C */ addiu $v1, $v1, 0x419c /* 077718 800DE268 8C620000 */ lw $v0, ($v1) /* 07771C 800DE26C C440011C */ lwc1 $f0, 0x11c($v0) /* 077720 800DE270 46000007 */ neg.s $f0, $f0 /* 077724 800DE274 E6A00000 */ swc1 $f0, ($s5) /* 077728 800DE278 8C620000 */ lw $v0, ($v1) /* 07772C 800DE27C C4400124 */ lwc1 $f0, 0x124($v0) /* 077730 800DE280 46000007 */ neg.s $f0, $f0 /* 077734 800DE284 E6C00000 */ swc1 $f0, ($s6) /* 077738 800DE288 C7A00018 */ lwc1 $f0, 0x18($sp) /* 07773C 800DE28C E6400000 */ swc1 $f0, ($s2) /* 077740 800DE290 C7A0001C */ lwc1 $f0, 0x1c($sp) /* 077744 800DE294 E6600000 */ swc1 $f0, ($s3) /* 077748 800DE298 C7A00020 */ lwc1 $f0, 0x20($sp) /* 07774C 800DE29C E6800000 */ swc1 $f0, ($s4) /* 077750 800DE2A0 C7A00024 */ lwc1 $f0, 0x24($sp) /* 077754 800DE2A4 0080802D */ daddu $s0, $a0, $zero /* 077758 800DE2A8 E6200000 */ swc1 $f0, ($s1) /* 07775C 800DE2AC E6F60000 */ swc1 $f22, ($s7) /* 077760 800DE2B0 E7D40000 */ swc1 $f20, ($fp) /* 077764 800DE2B4 27A40018 */ addiu $a0, $sp, 0x18 .L800DE2B8: /* 077768 800DE2B8 27A5001C */ addiu $a1, $sp, 0x1c /* 07776C 800DE2BC 4614E081 */ sub.s $f2, $f28, $f20 /* 077770 800DE2C0 27A60020 */ addiu $a2, $sp, 0x20 /* 077774 800DE2C4 27A70024 */ addiu $a3, $sp, 0x24 /* 077778 800DE2C8 4616D001 */ sub.s $f0, $f26, $f22 /* 07777C 800DE2CC E7B8001C */ swc1 $f24, 0x1c($sp) /* 077780 800DE2D0 E7BE0024 */ swc1 $f30, 0x24($sp) /* 077784 800DE2D4 E7A20018 */ swc1 $f2, 0x18($sp) /* 077788 800DE2D8 0C037953 */ jal trace_below_player /* 07778C 800DE2DC E7A00020 */ swc1 $f0, 0x20($sp) /* 077790 800DE2E0 0040202D */ daddu $a0, $v0, $zero /* 077794 800DE2E4 04820020 */ bltzl $a0, .L800DE368 /* 077798 800DE2E8 27A40018 */ addiu $a0, $sp, 0x18 /* 07779C 800DE2EC C6200000 */ lwc1 $f0, ($s1) /* 0777A0 800DE2F0 C7A20024 */ lwc1 $f2, 0x24($sp) /* 0777A4 800DE2F4 46000005 */ abs.s $f0, $f0 /* 0777A8 800DE2F8 4600103E */ c.le.s $f2, $f0 /* 0777AC 800DE2FC 00000000 */ nop /* 0777B0 800DE300 45020019 */ bc1fl .L800DE368 /* 0777B4 800DE304 27A40018 */ addiu $a0, $sp, 0x18 /* 0777B8 800DE308 3C038007 */ lui $v1, 0x8007 /* 0777BC 800DE30C 2463419C */ addiu $v1, $v1, 0x419c /* 0777C0 800DE310 8C620000 */ lw $v0, ($v1) /* 0777C4 800DE314 C440011C */ lwc1 $f0, 0x11c($v0) /* 0777C8 800DE318 46000007 */ neg.s $f0, $f0 /* 0777CC 800DE31C E6A00000 */ swc1 $f0, ($s5) /* 0777D0 800DE320 8C620000 */ lw $v0, ($v1) /* 0777D4 800DE324 C4400124 */ lwc1 $f0, 0x124($v0) /* 0777D8 800DE328 46000007 */ neg.s $f0, $f0 /* 0777DC 800DE32C E6C00000 */ swc1 $f0, ($s6) /* 0777E0 800DE330 C7A00018 */ lwc1 $f0, 0x18($sp) /* 0777E4 800DE334 E6400000 */ swc1 $f0, ($s2) /* 0777E8 800DE338 C7A0001C */ lwc1 $f0, 0x1c($sp) /* 0777EC 800DE33C E6600000 */ swc1 $f0, ($s3) /* 0777F0 800DE340 C7A00020 */ lwc1 $f0, 0x20($sp) /* 0777F4 800DE344 E6800000 */ swc1 $f0, ($s4) /* 0777F8 800DE348 C7A00024 */ lwc1 $f0, 0x24($sp) /* 0777FC 800DE34C 0080802D */ daddu $s0, $a0, $zero /* 077800 800DE350 E6200000 */ swc1 $f0, ($s1) /* 077804 800DE354 4600B007 */ neg.s $f0, $f22 /* 077808 800DE358 E6E00000 */ swc1 $f0, ($s7) /* 07780C 800DE35C 4600A007 */ neg.s $f0, $f20 /* 077810 800DE360 E7C00000 */ swc1 $f0, ($fp) /* 077814 800DE364 27A40018 */ addiu $a0, $sp, 0x18 .L800DE368: /* 077818 800DE368 27A5001C */ addiu $a1, $sp, 0x1c /* 07781C 800DE36C 27A60020 */ addiu $a2, $sp, 0x20 /* 077820 800DE370 27A70024 */ addiu $a3, $sp, 0x24 /* 077824 800DE374 E7BC0018 */ swc1 $f28, 0x18($sp) /* 077828 800DE378 E7B8001C */ swc1 $f24, 0x1c($sp) /* 07782C 800DE37C E7BA0020 */ swc1 $f26, 0x20($sp) /* 077830 800DE380 0C037953 */ jal trace_below_player /* 077834 800DE384 E7BE0024 */ swc1 $f30, 0x24($sp) /* 077838 800DE388 0040202D */ daddu $a0, $v0, $zero /* 07783C 800DE38C 0480001D */ bltz $a0, .L800DE404 /* 077840 800DE390 00000000 */ nop /* 077844 800DE394 C6200000 */ lwc1 $f0, ($s1) /* 077848 800DE398 C7A20024 */ lwc1 $f2, 0x24($sp) /* 07784C 800DE39C 46000005 */ abs.s $f0, $f0 /* 077850 800DE3A0 4600103E */ c.le.s $f2, $f0 /* 077854 800DE3A4 00000000 */ nop /* 077858 800DE3A8 45000016 */ bc1f .L800DE404 /* 07785C 800DE3AC 00000000 */ nop /* 077860 800DE3B0 3C038007 */ lui $v1, 0x8007 /* 077864 800DE3B4 2463419C */ addiu $v1, $v1, 0x419c /* 077868 800DE3B8 8C620000 */ lw $v0, ($v1) /* 07786C 800DE3BC C440011C */ lwc1 $f0, 0x11c($v0) /* 077870 800DE3C0 46000007 */ neg.s $f0, $f0 /* 077874 800DE3C4 E6A00000 */ swc1 $f0, ($s5) /* 077878 800DE3C8 8C620000 */ lw $v0, ($v1) /* 07787C 800DE3CC C4400124 */ lwc1 $f0, 0x124($v0) /* 077880 800DE3D0 46000007 */ neg.s $f0, $f0 /* 077884 800DE3D4 E6C00000 */ swc1 $f0, ($s6) /* 077888 800DE3D8 C7A00018 */ lwc1 $f0, 0x18($sp) /* 07788C 800DE3DC E6400000 */ swc1 $f0, ($s2) /* 077890 800DE3E0 C7A0001C */ lwc1 $f0, 0x1c($sp) /* 077894 800DE3E4 E6600000 */ swc1 $f0, ($s3) /* 077898 800DE3E8 C7A00020 */ lwc1 $f0, 0x20($sp) /* 07789C 800DE3EC E6800000 */ swc1 $f0, ($s4) /* 0778A0 800DE3F0 C7A00024 */ lwc1 $f0, 0x24($sp) /* 0778A4 800DE3F4 0080802D */ daddu $s0, $a0, $zero /* 0778A8 800DE3F8 E6200000 */ swc1 $f0, ($s1) /* 0778AC 800DE3FC AEE00000 */ sw $zero, ($s7) /* 0778B0 800DE400 AFC00000 */ sw $zero, ($fp) .L800DE404: /* 0778B4 800DE404 06010007 */ bgez $s0, .L800DE424 /* 0778B8 800DE408 0200102D */ daddu $v0, $s0, $zero /* 0778BC 800DE40C C7A00018 */ lwc1 $f0, 0x18($sp) /* 0778C0 800DE410 E6400000 */ swc1 $f0, ($s2) /* 0778C4 800DE414 C7A0001C */ lwc1 $f0, 0x1c($sp) /* 0778C8 800DE418 E6600000 */ swc1 $f0, ($s3) /* 0778CC 800DE41C C7A00020 */ lwc1 $f0, 0x20($sp) /* 0778D0 800DE420 E6800000 */ swc1 $f0, ($s4) .L800DE424: /* 0778D4 800DE424 8FBF004C */ lw $ra, 0x4c($sp) /* 0778D8 800DE428 8FBE0048 */ lw $fp, 0x48($sp) /* 0778DC 800DE42C 8FB70044 */ lw $s7, 0x44($sp) /* 0778E0 800DE430 8FB60040 */ lw $s6, 0x40($sp) /* 0778E4 800DE434 8FB5003C */ lw $s5, 0x3c($sp) /* 0778E8 800DE438 8FB40038 */ lw $s4, 0x38($sp) /* 0778EC 800DE43C 8FB30034 */ lw $s3, 0x34($sp) /* 0778F0 800DE440 8FB20030 */ lw $s2, 0x30($sp) /* 0778F4 800DE444 8FB1002C */ lw $s1, 0x2c($sp) /* 0778F8 800DE448 8FB00028 */ lw $s0, 0x28($sp) /* 0778FC 800DE44C D7BE0078 */ ldc1 $f30, 0x78($sp) /* 077900 800DE450 D7BC0070 */ ldc1 $f28, 0x70($sp) /* 077904 800DE454 D7BA0068 */ ldc1 $f26, 0x68($sp) /* 077908 800DE458 D7B80060 */ ldc1 $f24, 0x60($sp) /* 07790C 800DE45C D7B60058 */ ldc1 $f22, 0x58($sp) /* 077910 800DE460 D7B40050 */ ldc1 $f20, 0x50($sp) /* 077914 800DE464 03E00008 */ jr $ra /* 077918 800DE468 27BD0080 */ addiu $sp, $sp, 0x80