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

1718 lines
80 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800ED9F8
/* 086EA8 800ED9F8 3C038011 */ lui $v1, 0x8011
/* 086EAC 800ED9FC 8463CFC8 */ lh $v1, -0x3038($v1)
/* 086EB0 800EDA00 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 086EB4 800EDA04 AFB10034 */ sw $s1, 0x34($sp)
/* 086EB8 800EDA08 AFB3003C */ sw $s3, 0x3c($sp)
/* 086EBC 800EDA0C 3C138011 */ lui $s3, 0x8011
/* 086EC0 800EDA10 2673EFC8 */ addiu $s3, $s3, -0x1038
/* 086EC4 800EDA14 AFB20038 */ sw $s2, 0x38($sp)
/* 086EC8 800EDA18 3C12800B */ lui $s2, 0x800b
/* 086ECC 800EDA1C 26521D80 */ addiu $s2, $s2, 0x1d80
/* 086ED0 800EDA20 AFBF0044 */ sw $ra, 0x44($sp)
/* 086ED4 800EDA24 AFB40040 */ sw $s4, 0x40($sp)
/* 086ED8 800EDA28 AFB00030 */ sw $s0, 0x30($sp)
/* 086EDC 800EDA2C F7B80058 */ sdc1 $f24, 0x58($sp)
/* 086EE0 800EDA30 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 086EE4 800EDA34 F7B40048 */ sdc1 $f20, 0x48($sp)
/* 086EE8 800EDA38 2C620033 */ sltiu $v0, $v1, 0x33
/* 086EEC 800EDA3C 104003CA */ beqz $v0, .L800EE968
/* 086EF0 800EDA40 0080882D */ daddu $s1, $a0, $zero
/* 086EF4 800EDA44 00031080 */ sll $v0, $v1, 2
/* 086EF8 800EDA48 3C018011 */ lui $at, 0x8011
/* 086EFC 800EDA4C 00220821 */ addu $at, $at, $v0
/* 086F00 800EDA50 8C22C218 */ lw $v0, -0x3de8($at)
/* 086F04 800EDA54 00400008 */ jr $v0
/* 086F08 800EDA58 00000000 */ nop
/* 086F0C 800EDA5C 3C038011 */ lui $v1, 0x8011
/* 086F10 800EDA60 2463CD38 */ addiu $v1, $v1, -0x32c8
/* 086F14 800EDA64 44806000 */ mtc1 $zero, $f12
/* 086F18 800EDA68 3C028011 */ lui $v0, 0x8011
/* 086F1C 800EDA6C 8C42CFBC */ lw $v0, -0x3044($v0)
/* 086F20 800EDA70 C6220038 */ lwc1 $f2, 0x38($s1)
/* 086F24 800EDA74 C624003C */ lwc1 $f4, 0x3c($s1)
/* 086F28 800EDA78 3C018011 */ lui $at, 0x8011
/* 086F2C 800EDA7C C42ACFC0 */ lwc1 $f10, -0x3040($at)
/* 086F30 800EDA80 3C0141A0 */ lui $at, 0x41a0
/* 086F34 800EDA84 44814000 */ mtc1 $at, $f8
/* 086F38 800EDA88 C6200040 */ lwc1 $f0, 0x40($s1)
/* 086F3C 800EDA8C 00021100 */ sll $v0, $v0, 4
/* 086F40 800EDA90 00438021 */ addu $s0, $v0, $v1
/* 086F44 800EDA94 C6160004 */ lwc1 $f22, 4($s0)
/* 086F48 800EDA98 C6060008 */ lwc1 $f6, 8($s0)
/* 086F4C 800EDA9C C614000C */ lwc1 $f20, 0xc($s0)
/* 086F50 800EDAA0 4608503C */ c.lt.s $f10, $f8
/* 086F54 800EDAA4 E7A20020 */ swc1 $f2, 0x20($sp)
/* 086F58 800EDAA8 E7A40024 */ swc1 $f4, 0x24($sp)
/* 086F5C 800EDAAC E7A00028 */ swc1 $f0, 0x28($sp)
/* 086F60 800EDAB0 3C018010 */ lui $at, 0x8010
/* 086F64 800EDAB4 E422833C */ swc1 $f2, -0x7cc4($at)
/* 086F68 800EDAB8 3C018010 */ lui $at, 0x8010
/* 086F6C 800EDABC E4248340 */ swc1 $f4, -0x7cc0($at)
/* 086F70 800EDAC0 3C018010 */ lui $at, 0x8010
/* 086F74 800EDAC4 E4208344 */ swc1 $f0, -0x7cbc($at)
/* 086F78 800EDAC8 45020008 */ bc1fl .L800EDAEC
/* 086F7C 800EDACC 46083000 */ add.s $f0, $f6, $f8
/* 086F80 800EDAD0 460A4081 */ sub.s $f2, $f8, $f10
/* 086F84 800EDAD4 3C013F00 */ lui $at, 0x3f00
/* 086F88 800EDAD8 44810000 */ mtc1 $at, $f0
/* 086F8C 800EDADC 00000000 */ nop
/* 086F90 800EDAE0 46001302 */ mul.s $f12, $f2, $f0
/* 086F94 800EDAE4 00000000 */ nop
/* 086F98 800EDAE8 46083000 */ add.s $f0, $f6, $f8
.L800EDAEC:
/* 086F9C 800EDAEC 460C0000 */ add.s $f0, $f0, $f12
/* 086FA0 800EDAF0 46040001 */ sub.s $f0, $f0, $f4
/* 086FA4 800EDAF4 3C013E00 */ lui $at, 0x3e00
/* 086FA8 800EDAF8 44811000 */ mtc1 $at, $f2
/* 086FAC 800EDAFC 00000000 */ nop
/* 086FB0 800EDB00 46020002 */ mul.s $f0, $f0, $f2
/* 086FB4 800EDB04 00000000 */ nop
/* 086FB8 800EDB08 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 086FBC 800EDB0C C62C0038 */ lwc1 $f12, 0x38($s1)
/* 086FC0 800EDB10 3C014040 */ lui $at, 0x4040
/* 086FC4 800EDB14 44811000 */ mtc1 $at, $f2
/* 086FC8 800EDB18 46002000 */ add.s $f0, $f4, $f0
/* 086FCC 800EDB1C E6220018 */ swc1 $f2, 0x18($s1)
/* 086FD0 800EDB20 E620003C */ swc1 $f0, 0x3c($s1)
/* 086FD4 800EDB24 8E660028 */ lw $a2, 0x28($s3)
/* 086FD8 800EDB28 8E670030 */ lw $a3, 0x30($s3)
/* 086FDC 800EDB2C 0C00A7B5 */ jal dist2D
/* 086FE0 800EDB30 E7A00024 */ swc1 $f0, 0x24($sp)
/* 086FE4 800EDB34 3C014049 */ lui $at, 0x4049
/* 086FE8 800EDB38 44811800 */ mtc1 $at, $f3
/* 086FEC 800EDB3C 44801000 */ mtc1 $zero, $f2
/* 086FF0 800EDB40 46000106 */ mov.s $f4, $f0
/* 086FF4 800EDB44 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 086FF8 800EDB48 46002021 */ cvt.d.s $f0, $f4
/* 086FFC 800EDB4C 4620103E */ c.le.d $f2, $f0
/* 087000 800EDB50 00000000 */ nop
/* 087004 800EDB54 45000033 */ bc1f .L800EDC24
/* 087008 800EDB58 00000000 */ nop
/* 08700C 800EDB5C C622003C */ lwc1 $f2, 0x3c($s1)
/* 087010 800EDB60 C660002C */ lwc1 $f0, 0x2c($s3)
/* 087014 800EDB64 4602003E */ c.le.s $f0, $f2
/* 087018 800EDB68 00000000 */ nop
/* 08701C 800EDB6C 45000029 */ bc1f .L800EDC14
/* 087020 800EDB70 00000000 */ nop
/* 087024 800EDB74 3C013E80 */ lui $at, 0x3e80
/* 087028 800EDB78 44810000 */ mtc1 $at, $f0
/* 08702C 800EDB7C 00000000 */ nop
/* 087030 800EDB80 46002002 */ mul.s $f0, $f4, $f0
/* 087034 800EDB84 00000000 */ nop
/* 087038 800EDB88 0803B709 */ j .L800EDC24
/* 08703C 800EDB8C E6200018 */ swc1 $f0, 0x18($s1)
.L800EDB90:
/* 087040 800EDB90 3C0140C0 */ lui $at, 0x40c0
/* 087044 800EDB94 44810000 */ mtc1 $at, $f0
.L800EDB98:
/* 087048 800EDB98 0803B76E */ j .L800EDDB8
/* 08704C 800EDB9C E6200018 */ swc1 $f0, 0x18($s1)
.L800EDBA0:
/* 087050 800EDBA0 C634000C */ lwc1 $f20, 0xc($s1)
/* 087054 800EDBA4 3C028011 */ lui $v0, 0x8011
/* 087058 800EDBA8 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 08705C 800EDBAC AE200018 */ sw $zero, 0x18($s1)
/* 087060 800EDBB0 AE200014 */ sw $zero, 0x14($s1)
/* 087064 800EDBB4 000218C0 */ sll $v1, $v0, 3
/* 087068 800EDBB8 00621821 */ addu $v1, $v1, $v0
/* 08706C 800EDBBC 00031880 */ sll $v1, $v1, 2
/* 087070 800EDBC0 3C028010 */ lui $v0, 0x8010
/* 087074 800EDBC4 00431021 */ addu $v0, $v0, $v1
/* 087078 800EDBC8 8C42835C */ lw $v0, -0x7ca4($v0)
/* 08707C 800EDBCC 0803B76E */ j .L800EDDB8
/* 087080 800EDBD0 AE220028 */ sw $v0, 0x28($s1)
.L800EDBD4:
/* 087084 800EDBD4 C634000C */ lwc1 $f20, 0xc($s1)
/* 087088 800EDBD8 3C038011 */ lui $v1, 0x8011
/* 08708C 800EDBDC 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 087090 800EDBE0 AE200018 */ sw $zero, 0x18($s1)
/* 087094 800EDBE4 AE200014 */ sw $zero, 0x14($s1)
/* 087098 800EDBE8 000310C0 */ sll $v0, $v1, 3
/* 08709C 800EDBEC 00431021 */ addu $v0, $v0, $v1
/* 0870A0 800EDBF0 00021080 */ sll $v0, $v0, 2
/* 0870A4 800EDBF4 3C038010 */ lui $v1, 0x8010
/* 0870A8 800EDBF8 00621821 */ addu $v1, $v1, $v0
/* 0870AC 800EDBFC 8C63835C */ lw $v1, -0x7ca4($v1)
/* 0870B0 800EDC00 24020005 */ addiu $v0, $zero, 5
/* 0870B4 800EDC04 3C018011 */ lui $at, 0x8011
/* 0870B8 800EDC08 A422CFC8 */ sh $v0, -0x3038($at)
/* 0870BC 800EDC0C 0803B76E */ j .L800EDDB8
/* 0870C0 800EDC10 AE230028 */ sw $v1, 0x28($s1)
.L800EDC14:
/* 0870C4 800EDC14 3C014100 */ lui $at, 0x4100
/* 0870C8 800EDC18 44810000 */ mtc1 $at, $f0
/* 0870CC 800EDC1C 00000000 */ nop
/* 0870D0 800EDC20 E6200018 */ swc1 $f0, 0x18($s1)
.L800EDC24:
/* 0870D4 800EDC24 3C018011 */ lui $at, 0x8011
/* 0870D8 800EDC28 C422CFC0 */ lwc1 $f2, -0x3040($at)
/* 0870DC 800EDC2C 3C0141A0 */ lui $at, 0x41a0
/* 0870E0 800EDC30 44810000 */ mtc1 $at, $f0
/* 0870E4 800EDC34 00000000 */ nop
/* 0870E8 800EDC38 4600103C */ c.lt.s $f2, $f0
/* 0870EC 800EDC3C 00000000 */ nop
/* 0870F0 800EDC40 45000005 */ bc1f .L800EDC58
/* 0870F4 800EDC44 00000000 */ nop
/* 0870F8 800EDC48 3C014080 */ lui $at, 0x4080
/* 0870FC 800EDC4C 44810000 */ mtc1 $at, $f0
/* 087100 800EDC50 00000000 */ nop
/* 087104 800EDC54 E6200018 */ swc1 $f0, 0x18($s1)
.L800EDC58:
/* 087108 800EDC58 3C128011 */ lui $s2, 0x8011
/* 08710C 800EDC5C 2652CFBC */ addiu $s2, $s2, -0x3044
/* 087110 800EDC60 3C148011 */ lui $s4, 0x8011
/* 087114 800EDC64 2694CD38 */ addiu $s4, $s4, -0x32c8
.L800EDC68:
/* 087118 800EDC68 C7AC0020 */ lwc1 $f12, 0x20($sp)
/* 08711C 800EDC6C C7AE0028 */ lwc1 $f14, 0x28($sp)
/* 087120 800EDC70 4406B000 */ mfc1 $a2, $f22
/* 087124 800EDC74 4407A000 */ mfc1 $a3, $f20
/* 087128 800EDC78 0C00A720 */ jal atan2
/* 08712C 800EDC7C 00000000 */ nop
/* 087130 800EDC80 C7AC0020 */ lwc1 $f12, 0x20($sp)
/* 087134 800EDC84 C7AE0028 */ lwc1 $f14, 0x28($sp)
/* 087138 800EDC88 4406B000 */ mfc1 $a2, $f22
/* 08713C 800EDC8C 4407A000 */ mfc1 $a3, $f20
/* 087140 800EDC90 0C00A7B5 */ jal dist2D
/* 087144 800EDC94 46000506 */ mov.s $f20, $f0
/* 087148 800EDC98 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 08714C 800EDC9C C6260018 */ lwc1 $f6, 0x18($s1)
/* 087150 800EDCA0 46000106 */ mov.s $f4, $f0
/* 087154 800EDCA4 4604303C */ c.lt.s $f6, $f4
/* 087158 800EDCA8 00000000 */ nop
/* 08715C 800EDCAC 45000026 */ bc1f .L800EDD48
/* 087160 800EDCB0 00000000 */ nop
/* 087164 800EDCB4 C622003C */ lwc1 $f2, 0x3c($s1)
/* 087168 800EDCB8 C660002C */ lwc1 $f0, 0x2c($s3)
/* 08716C 800EDCBC 4602003E */ c.le.s $f0, $f2
/* 087170 800EDCC0 00000000 */ nop
/* 087174 800EDCC4 45020011 */ bc1fl .L800EDD0C
/* 087178 800EDCC8 460030A1 */ cvt.d.s $f2, $f6
/* 08717C 800EDCCC 3C013E80 */ lui $at, 0x3e80
/* 087180 800EDCD0 44810000 */ mtc1 $at, $f0
/* 087184 800EDCD4 00000000 */ nop
/* 087188 800EDCD8 46002002 */ mul.s $f0, $f4, $f0
/* 08718C 800EDCDC 00000000 */ nop
/* 087190 800EDCE0 4606003E */ c.le.s $f0, $f6
/* 087194 800EDCE4 00000000 */ nop
/* 087198 800EDCE8 45030033 */ bc1tl .L800EDDB8
/* 08719C 800EDCEC E6200018 */ swc1 $f0, 0x18($s1)
/* 0871A0 800EDCF0 3C013D80 */ lui $at, 0x3d80
/* 0871A4 800EDCF4 44810000 */ mtc1 $at, $f0
/* 0871A8 800EDCF8 00000000 */ nop
/* 0871AC 800EDCFC 46002002 */ mul.s $f0, $f4, $f0
/* 0871B0 800EDD00 00000000 */ nop
/* 0871B4 800EDD04 0803B6E6 */ j .L800EDB98
/* 0871B8 800EDD08 46003000 */ add.s $f0, $f6, $f0
.L800EDD0C:
/* 0871BC 800EDD0C 3C014018 */ lui $at, 0x4018
/* 0871C0 800EDD10 44810800 */ mtc1 $at, $f1
/* 0871C4 800EDD14 44800000 */ mtc1 $zero, $f0
/* 0871C8 800EDD18 00000000 */ nop
/* 0871CC 800EDD1C 4622003C */ c.lt.d $f0, $f2
/* 0871D0 800EDD20 00000000 */ nop
/* 0871D4 800EDD24 4501FF9A */ bc1t .L800EDB90
/* 0871D8 800EDD28 00000000 */ nop
/* 0871DC 800EDD2C 3C013FF0 */ lui $at, 0x3ff0
/* 0871E0 800EDD30 44810800 */ mtc1 $at, $f1
/* 0871E4 800EDD34 44800000 */ mtc1 $zero, $f0
/* 0871E8 800EDD38 00000000 */ nop
/* 0871EC 800EDD3C 46201000 */ add.d $f0, $f2, $f0
/* 0871F0 800EDD40 0803B6E6 */ j .L800EDB98
/* 0871F4 800EDD44 46200020 */ cvt.s.d $f0, $f0
.L800EDD48:
/* 0871F8 800EDD48 8E430000 */ lw $v1, ($s2)
/* 0871FC 800EDD4C 3C028011 */ lui $v0, 0x8011
/* 087200 800EDD50 8C42CFB8 */ lw $v0, -0x3048($v0)
/* 087204 800EDD54 1062FF92 */ beq $v1, $v0, .L800EDBA0
/* 087208 800EDD58 00000000 */ nop
/* 08720C 800EDD5C C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087210 800EDD60 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 087214 800EDD64 8E660028 */ lw $a2, 0x28($s3)
/* 087218 800EDD68 0C00A7B5 */ jal dist2D
/* 08721C 800EDD6C 8E670030 */ lw $a3, 0x30($s3)
/* 087220 800EDD70 3C018011 */ lui $at, 0x8011
/* 087224 800EDD74 C422CFC0 */ lwc1 $f2, -0x3040($at)
/* 087228 800EDD78 4602003E */ c.le.s $f0, $f2
/* 08722C 800EDD7C 00000000 */ nop
/* 087230 800EDD80 4501FF94 */ bc1t .L800EDBD4
/* 087234 800EDD84 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 087238 800EDD88 8E420000 */ lw $v0, ($s2)
/* 08723C 800EDD8C 24420001 */ addiu $v0, $v0, 1
/* 087240 800EDD90 AE420000 */ sw $v0, ($s2)
/* 087244 800EDD94 28420028 */ slti $v0, $v0, 0x28
/* 087248 800EDD98 50400001 */ beql $v0, $zero, .L800EDDA0
/* 08724C 800EDD9C AE400000 */ sw $zero, ($s2)
.L800EDDA0:
/* 087250 800EDDA0 8E420000 */ lw $v0, ($s2)
/* 087254 800EDDA4 00021100 */ sll $v0, $v0, 4
/* 087258 800EDDA8 00548021 */ addu $s0, $v0, $s4
/* 08725C 800EDDAC C6160004 */ lwc1 $f22, 4($s0)
/* 087260 800EDDB0 0803B71A */ j .L800EDC68
/* 087264 800EDDB4 C614000C */ lwc1 $f20, 0xc($s0)
.L800EDDB8:
/* 087268 800EDDB8 8E250018 */ lw $a1, 0x18($s1)
/* 08726C 800EDDBC 4406A000 */ mfc1 $a2, $f20
/* 087270 800EDDC0 0220202D */ daddu $a0, $s1, $zero
/* 087274 800EDDC4 0C00EA95 */ jal npc_move_heading
/* 087278 800EDDC8 AE26000C */ sw $a2, 0xc($s1)
/* 08727C 800EDDCC 8E220000 */ lw $v0, ($s1)
/* 087280 800EDDD0 30424000 */ andi $v0, $v0, 0x4000
/* 087284 800EDDD4 104002E4 */ beqz $v0, .L800EE968
/* 087288 800EDDD8 24020001 */ addiu $v0, $zero, 1
/* 08728C 800EDDDC 3C018011 */ lui $at, 0x8011
/* 087290 800EDDE0 A422CFC8 */ sh $v0, -0x3038($at)
/* 087294 800EDDE4 0803BA5A */ j .L800EE968
/* 087298 800EDDE8 00000000 */ nop
/* 08729C 800EDDEC 3C048011 */ lui $a0, 0x8011
/* 0872A0 800EDDF0 2484CFBC */ addiu $a0, $a0, -0x3044
/* 0872A4 800EDDF4 8C830000 */ lw $v1, ($a0)
/* 0872A8 800EDDF8 3C028011 */ lui $v0, 0x8011
/* 0872AC 800EDDFC 8C42CFB8 */ lw $v0, -0x3048($v0)
/* 0872B0 800EDE00 106202D9 */ beq $v1, $v0, .L800EE968
/* 0872B4 800EDE04 24620001 */ addiu $v0, $v1, 1
/* 0872B8 800EDE08 AC820000 */ sw $v0, ($a0)
/* 0872BC 800EDE0C 28420028 */ slti $v0, $v0, 0x28
/* 0872C0 800EDE10 50400001 */ beql $v0, $zero, .L800EDE18
/* 0872C4 800EDE14 AC800000 */ sw $zero, ($a0)
.L800EDE18:
/* 0872C8 800EDE18 3C038011 */ lui $v1, 0x8011
/* 0872CC 800EDE1C 2463CD38 */ addiu $v1, $v1, -0x32c8
/* 0872D0 800EDE20 8C820000 */ lw $v0, ($a0)
/* 0872D4 800EDE24 3C013FA6 */ lui $at, 0x3fa6
/* 0872D8 800EDE28 34216666 */ ori $at, $at, 0x6666
/* 0872DC 800EDE2C 44810000 */ mtc1 $at, $f0
/* 0872E0 800EDE30 00021100 */ sll $v0, $v0, 4
/* 0872E4 800EDE34 00438021 */ addu $s0, $v0, $v1
/* 0872E8 800EDE38 C6160004 */ lwc1 $f22, 4($s0)
/* 0872EC 800EDE3C C6060008 */ lwc1 $f6, 8($s0)
/* 0872F0 800EDE40 C614000C */ lwc1 $f20, 0xc($s0)
/* 0872F4 800EDE44 3C108011 */ lui $s0, 0x8011
/* 0872F8 800EDE48 2610CFC8 */ addiu $s0, $s0, -0x3038
/* 0872FC 800EDE4C A620008E */ sh $zero, 0x8e($s1)
/* 087300 800EDE50 E6200014 */ swc1 $f0, 0x14($s1)
/* 087304 800EDE54 E6360060 */ swc1 $f22, 0x60($s1)
/* 087308 800EDE58 E6260064 */ swc1 $f6, 0x64($s1)
/* 08730C 800EDE5C E6340068 */ swc1 $f20, 0x68($s1)
/* 087310 800EDE60 86020000 */ lh $v0, ($s0)
/* 087314 800EDE64 24120001 */ addiu $s2, $zero, 1
/* 087318 800EDE68 14520005 */ bne $v0, $s2, .L800EDE80
/* 08731C 800EDE6C 00000000 */ nop
/* 087320 800EDE70 3C0140C0 */ lui $at, 0x40c0
/* 087324 800EDE74 44810000 */ mtc1 $at, $f0
/* 087328 800EDE78 00000000 */ nop
/* 08732C 800EDE7C E6200018 */ swc1 $f0, 0x18($s1)
.L800EDE80:
/* 087330 800EDE80 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087334 800EDE84 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 087338 800EDE88 8E260060 */ lw $a2, 0x60($s1)
/* 08733C 800EDE8C 0C00A7B5 */ jal dist2D
/* 087340 800EDE90 8E270068 */ lw $a3, 0x68($s1)
/* 087344 800EDE94 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087348 800EDE98 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 08734C 800EDE9C 8E260060 */ lw $a2, 0x60($s1)
/* 087350 800EDEA0 8E270068 */ lw $a3, 0x68($s1)
/* 087354 800EDEA4 0C00A720 */ jal atan2
/* 087358 800EDEA8 E6200010 */ swc1 $f0, 0x10($s1)
/* 08735C 800EDEAC E620000C */ swc1 $f0, 0xc($s1)
/* 087360 800EDEB0 C6200010 */ lwc1 $f0, 0x10($s1)
/* 087364 800EDEB4 3C014049 */ lui $at, 0x4049
/* 087368 800EDEB8 44811800 */ mtc1 $at, $f3
/* 08736C 800EDEBC 44801000 */ mtc1 $zero, $f2
/* 087370 800EDEC0 46000021 */ cvt.d.s $f0, $f0
/* 087374 800EDEC4 4620103C */ c.lt.d $f2, $f0
/* 087378 800EDEC8 00000000 */ nop
/* 08737C 800EDECC 45000005 */ bc1f .L800EDEE4
/* 087380 800EDED0 00000000 */ nop
/* 087384 800EDED4 3C014248 */ lui $at, 0x4248
/* 087388 800EDED8 44810000 */ mtc1 $at, $f0
/* 08738C 800EDEDC 00000000 */ nop
/* 087390 800EDEE0 E6200010 */ swc1 $f0, 0x10($s1)
.L800EDEE4:
/* 087394 800EDEE4 C6220064 */ lwc1 $f2, 0x64($s1)
/* 087398 800EDEE8 C620003C */ lwc1 $f0, 0x3c($s1)
/* 08739C 800EDEEC 46001101 */ sub.s $f4, $f2, $f0
/* 0873A0 800EDEF0 C6200010 */ lwc1 $f0, 0x10($s1)
/* 0873A4 800EDEF4 46000086 */ mov.s $f2, $f0
/* 0873A8 800EDEF8 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 0873AC 800EDEFC 4604103C */ c.lt.s $f2, $f4
/* 0873B0 800EDF00 00000000 */ nop
/* 0873B4 800EDF04 45000002 */ bc1f .L800EDF10
/* 0873B8 800EDF08 E7A40024 */ swc1 $f4, 0x24($sp)
/* 0873BC 800EDF0C E7A4002C */ swc1 $f4, 0x2c($sp)
.L800EDF10:
/* 0873C0 800EDF10 86020000 */ lh $v0, ($s0)
/* 0873C4 800EDF14 14520026 */ bne $v0, $s2, .L800EDFB0
/* 0873C8 800EDF18 2402000A */ addiu $v0, $zero, 0xa
/* 0873CC 800EDF1C 3C018011 */ lui $at, 0x8011
/* 0873D0 800EDF20 C420CFC0 */ lwc1 $f0, -0x3040($at)
/* 0873D4 800EDF24 C7A2002C */ lwc1 $f2, 0x2c($sp)
/* 0873D8 800EDF28 4600103C */ c.lt.s $f2, $f0
/* 0873DC 800EDF2C 00000000 */ nop
/* 0873E0 800EDF30 4500000B */ bc1f .L800EDF60
/* 0873E4 800EDF34 00000000 */ nop
/* 0873E8 800EDF38 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0873EC 800EDF3C C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0873F0 800EDF40 AE20001C */ sw $zero, 0x1c($s1)
/* 0873F4 800EDF44 8E660028 */ lw $a2, 0x28($s3)
/* 0873F8 800EDF48 0C00A720 */ jal atan2
/* 0873FC 800EDF4C 8E670030 */ lw $a3, 0x30($s3)
/* 087400 800EDF50 24020005 */ addiu $v0, $zero, 5
/* 087404 800EDF54 E620000C */ swc1 $f0, 0xc($s1)
/* 087408 800EDF58 0803BA5A */ j .L800EE968
/* 08740C 800EDF5C A6020000 */ sh $v0, ($s0)
.L800EDF60:
/* 087410 800EDF60 C6200018 */ lwc1 $f0, 0x18($s1)
/* 087414 800EDF64 46001003 */ div.s $f0, $f2, $f0
/* 087418 800EDF68 4600040D */ trunc.w.s $f16, $f0
/* 08741C 800EDF6C 44028000 */ mfc1 $v0, $f16
/* 087420 800EDF70 00000000 */ nop
/* 087424 800EDF74 A622008E */ sh $v0, 0x8e($s1)
/* 087428 800EDF78 00021400 */ sll $v0, $v0, 0x10
/* 08742C 800EDF7C 00021403 */ sra $v0, $v0, 0x10
/* 087430 800EDF80 2842000A */ slti $v0, $v0, 0xa
/* 087434 800EDF84 10400002 */ beqz $v0, .L800EDF90
/* 087438 800EDF88 2402000A */ addiu $v0, $zero, 0xa
/* 08743C 800EDF8C A622008E */ sh $v0, 0x8e($s1)
.L800EDF90:
/* 087440 800EDF90 8622008E */ lh $v0, 0x8e($s1)
/* 087444 800EDF94 C6200010 */ lwc1 $f0, 0x10($s1)
/* 087448 800EDF98 44821000 */ mtc1 $v0, $f2
/* 08744C 800EDF9C 00000000 */ nop
/* 087450 800EDFA0 468010A0 */ cvt.s.w $f2, $f2
/* 087454 800EDFA4 46020003 */ div.s $f0, $f0, $f2
/* 087458 800EDFA8 0803B7ED */ j .L800EDFB4
/* 08745C 800EDFAC E6200018 */ swc1 $f0, 0x18($s1)
.L800EDFB0:
/* 087460 800EDFB0 A622008E */ sh $v0, 0x8e($s1)
.L800EDFB4:
/* 087464 800EDFB4 8622008E */ lh $v0, 0x8e($s1)
/* 087468 800EDFB8 C6220014 */ lwc1 $f2, 0x14($s1)
/* 08746C 800EDFBC 44822000 */ mtc1 $v0, $f4
/* 087470 800EDFC0 00000000 */ nop
/* 087474 800EDFC4 46802120 */ cvt.s.w $f4, $f4
/* 087478 800EDFC8 46041082 */ mul.s $f2, $f2, $f4
/* 08747C 800EDFCC 00000000 */ nop
/* 087480 800EDFD0 46041082 */ mul.s $f2, $f2, $f4
/* 087484 800EDFD4 00000000 */ nop
/* 087488 800EDFD8 3C013F00 */ lui $at, 0x3f00
/* 08748C 800EDFDC 44810000 */ mtc1 $at, $f0
/* 087490 800EDFE0 00000000 */ nop
/* 087494 800EDFE4 46001082 */ mul.s $f2, $f2, $f0
/* 087498 800EDFE8 00000000 */ nop
/* 08749C 800EDFEC C7A00024 */ lwc1 $f0, 0x24($sp)
/* 0874A0 800EDFF0 46020000 */ add.s $f0, $f0, $f2
/* 0874A4 800EDFF4 3C014034 */ lui $at, 0x4034
/* 0874A8 800EDFF8 44811800 */ mtc1 $at, $f3
/* 0874AC 800EDFFC 44801000 */ mtc1 $zero, $f2
/* 0874B0 800EE000 46040003 */ div.s $f0, $f0, $f4
/* 0874B4 800EE004 E620001C */ swc1 $f0, 0x1c($s1)
/* 0874B8 800EE008 46000021 */ cvt.d.s $f0, $f0
/* 0874BC 800EE00C 4620103C */ c.lt.d $f2, $f0
/* 0874C0 800EE010 00000000 */ nop
/* 0874C4 800EE014 45000005 */ bc1f .L800EE02C
/* 0874C8 800EE018 00000000 */ nop
/* 0874CC 800EE01C 3C0141A0 */ lui $at, 0x41a0
/* 0874D0 800EE020 44810000 */ mtc1 $at, $f0
/* 0874D4 800EE024 00000000 */ nop
/* 0874D8 800EE028 E620001C */ swc1 $f0, 0x1c($s1)
.L800EE02C:
/* 0874DC 800EE02C 3C038011 */ lui $v1, 0x8011
/* 0874E0 800EE030 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 0874E4 800EE034 C6200038 */ lwc1 $f0, 0x38($s1)
/* 0874E8 800EE038 C622003C */ lwc1 $f2, 0x3c($s1)
/* 0874EC 800EE03C C6240040 */ lwc1 $f4, 0x40($s1)
/* 0874F0 800EE040 000310C0 */ sll $v0, $v1, 3
/* 0874F4 800EE044 00431021 */ addu $v0, $v0, $v1
/* 0874F8 800EE048 00021080 */ sll $v0, $v0, 2
/* 0874FC 800EE04C 3C038010 */ lui $v1, 0x8010
/* 087500 800EE050 00621821 */ addu $v1, $v1, $v0
/* 087504 800EE054 8C638350 */ lw $v1, -0x7cb0($v1)
/* 087508 800EE058 24020002 */ addiu $v0, $zero, 2
/* 08750C 800EE05C 3C018011 */ lui $at, 0x8011
/* 087510 800EE060 A422CFC8 */ sh $v0, -0x3038($at)
/* 087514 800EE064 E6200060 */ swc1 $f0, 0x60($s1)
/* 087518 800EE068 E6220064 */ swc1 $f2, 0x64($s1)
/* 08751C 800EE06C E6240068 */ swc1 $f4, 0x68($s1)
/* 087520 800EE070 0803BA5A */ j .L800EE968
/* 087524 800EE074 AE230028 */ sw $v1, 0x28($s1)
/* 087528 800EE078 C620001C */ lwc1 $f0, 0x1c($s1)
/* 08752C 800EE07C C6220014 */ lwc1 $f2, 0x14($s1)
/* 087530 800EE080 46020001 */ sub.s $f0, $f0, $f2
/* 087534 800EE084 C622003C */ lwc1 $f2, 0x3c($s1)
/* 087538 800EE088 46001080 */ add.s $f2, $f2, $f0
/* 08753C 800EE08C 4480A000 */ mtc1 $zero, $f20
/* 087540 800EE090 00000000 */ nop
/* 087544 800EE094 4614003E */ c.le.s $f0, $f20
/* 087548 800EE098 E620001C */ swc1 $f0, 0x1c($s1)
/* 08754C 800EE09C 4500000A */ bc1f .L800EE0C8
/* 087550 800EE0A0 E622003C */ swc1 $f2, 0x3c($s1)
/* 087554 800EE0A4 3C028011 */ lui $v0, 0x8011
/* 087558 800EE0A8 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 08755C 800EE0AC 000218C0 */ sll $v1, $v0, 3
/* 087560 800EE0B0 00621821 */ addu $v1, $v1, $v0
/* 087564 800EE0B4 00031880 */ sll $v1, $v1, 2
/* 087568 800EE0B8 3C028010 */ lui $v0, 0x8010
/* 08756C 800EE0BC 00431021 */ addu $v0, $v0, $v1
/* 087570 800EE0C0 8C428354 */ lw $v0, -0x7cac($v0)
/* 087574 800EE0C4 AE220028 */ sw $v0, 0x28($s1)
.L800EE0C8:
/* 087578 800EE0C8 8E250018 */ lw $a1, 0x18($s1)
/* 08757C 800EE0CC 8E26000C */ lw $a2, 0xc($s1)
/* 087580 800EE0D0 0C00EA95 */ jal npc_move_heading
/* 087584 800EE0D4 0220202D */ daddu $a0, $s1, $zero
/* 087588 800EE0D8 C620001C */ lwc1 $f0, 0x1c($s1)
/* 08758C 800EE0DC 4614003E */ c.le.s $f0, $f20
/* 087590 800EE0E0 00000000 */ nop
/* 087594 800EE0E4 45000220 */ bc1f .L800EE968
/* 087598 800EE0E8 00000000 */ nop
/* 08759C 800EE0EC C622003C */ lwc1 $f2, 0x3c($s1)
/* 0875A0 800EE0F0 C6200064 */ lwc1 $f0, 0x64($s1)
/* 0875A4 800EE0F4 4600103C */ c.lt.s $f2, $f0
/* 0875A8 800EE0F8 00000000 */ nop
/* 0875AC 800EE0FC 4500021A */ bc1f .L800EE968
/* 0875B0 800EE100 00000000 */ nop
/* 0875B4 800EE104 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0875B8 800EE108 3C038011 */ lui $v1, 0x8011
/* 0875BC 800EE10C 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 0875C0 800EE110 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0875C4 800EE114 000310C0 */ sll $v0, $v1, 3
/* 0875C8 800EE118 00431021 */ addu $v0, $v0, $v1
/* 0875CC 800EE11C 00021080 */ sll $v0, $v0, 2
/* 0875D0 800EE120 3C018010 */ lui $at, 0x8010
/* 0875D4 800EE124 00220821 */ addu $at, $at, $v0
/* 0875D8 800EE128 8C228358 */ lw $v0, -0x7ca8($at)
/* 0875DC 800EE12C E634001C */ swc1 $f20, 0x1c($s1)
/* 0875E0 800EE130 E620003C */ swc1 $f0, 0x3c($s1)
/* 0875E4 800EE134 AE220028 */ sw $v0, 0x28($s1)
/* 0875E8 800EE138 8E660028 */ lw $a2, 0x28($s3)
/* 0875EC 800EE13C 0C00A720 */ jal atan2
/* 0875F0 800EE140 8E670030 */ lw $a3, 0x30($s3)
/* 0875F4 800EE144 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0875F8 800EE148 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0875FC 800EE14C 8E260060 */ lw $a2, 0x60($s1)
/* 087600 800EE150 8E270068 */ lw $a3, 0x68($s1)
/* 087604 800EE154 3C108011 */ lui $s0, 0x8011
/* 087608 800EE158 2610CFC8 */ addiu $s0, $s0, -0x3038
/* 08760C 800EE15C E620000C */ swc1 $f0, 0xc($s1)
/* 087610 800EE160 0C00A7B5 */ jal dist2D
/* 087614 800EE164 A6000000 */ sh $zero, ($s0)
/* 087618 800EE168 3C018011 */ lui $at, 0x8011
/* 08761C 800EE16C C422CFC0 */ lwc1 $f2, -0x3040($at)
/* 087620 800EE170 4602003C */ c.lt.s $f0, $f2
/* 087624 800EE174 00000000 */ nop
/* 087628 800EE178 450001FB */ bc1f .L800EE968
/* 08762C 800EE17C E7A0002C */ swc1 $f0, 0x2c($sp)
/* 087630 800EE180 2402000F */ addiu $v0, $zero, 0xf
/* 087634 800EE184 0803BA5A */ j .L800EE968
/* 087638 800EE188 A6020000 */ sh $v0, ($s0)
/* 08763C 800EE18C 3C038011 */ lui $v1, 0x8011
/* 087640 800EE190 2463CD38 */ addiu $v1, $v1, -0x32c8
/* 087644 800EE194 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087648 800EE198 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 08764C 800EE19C 8E660028 */ lw $a2, 0x28($s3)
/* 087650 800EE1A0 8E670030 */ lw $a3, 0x30($s3)
/* 087654 800EE1A4 3C028011 */ lui $v0, 0x8011
/* 087658 800EE1A8 8C42CFBC */ lw $v0, -0x3044($v0)
/* 08765C 800EE1AC C622003C */ lwc1 $f2, 0x3c($s1)
/* 087660 800EE1B0 00021100 */ sll $v0, $v0, 4
/* 087664 800EE1B4 00438021 */ addu $s0, $v0, $v1
/* 087668 800EE1B8 46006006 */ mov.s $f0, $f12
/* 08766C 800EE1BC C6160004 */ lwc1 $f22, 4($s0)
/* 087670 800EE1C0 C614000C */ lwc1 $f20, 0xc($s0)
/* 087674 800EE1C4 46007106 */ mov.s $f4, $f14
/* 087678 800EE1C8 E7A00020 */ swc1 $f0, 0x20($sp)
/* 08767C 800EE1CC E7A20024 */ swc1 $f2, 0x24($sp)
/* 087680 800EE1D0 0C00A7B5 */ jal dist2D
/* 087684 800EE1D4 E7A40028 */ swc1 $f4, 0x28($sp)
/* 087688 800EE1D8 3C018011 */ lui $at, 0x8011
/* 08768C 800EE1DC C422CFC0 */ lwc1 $f2, -0x3040($at)
/* 087690 800EE1E0 4602003E */ c.le.s $f0, $f2
/* 087694 800EE1E4 00000000 */ nop
/* 087698 800EE1E8 450000A5 */ bc1f .L800EE480
/* 08769C 800EE1EC E7A0002C */ swc1 $f0, 0x2c($sp)
/* 0876A0 800EE1F0 3C048011 */ lui $a0, 0x8011
/* 0876A4 800EE1F4 2484CFCA */ addiu $a0, $a0, -0x3036
/* 0876A8 800EE1F8 84820000 */ lh $v0, ($a0)
/* 0876AC 800EE1FC 1440002D */ bnez $v0, .L800EE2B4
/* 0876B0 800EE200 00000000 */ nop
/* 0876B4 800EE204 962200A8 */ lhu $v0, 0xa8($s1)
/* 0876B8 800EE208 C660002C */ lwc1 $f0, 0x2c($s3)
/* 0876BC 800EE20C 00021400 */ sll $v0, $v0, 0x10
/* 0876C0 800EE210 00021C03 */ sra $v1, $v0, 0x10
/* 0876C4 800EE214 000217C2 */ srl $v0, $v0, 0x1f
/* 0876C8 800EE218 00621821 */ addu $v1, $v1, $v0
/* 0876CC 800EE21C 866200B0 */ lh $v0, 0xb0($s3)
/* 0876D0 800EE220 00031843 */ sra $v1, $v1, 1
/* 0876D4 800EE224 00431023 */ subu $v0, $v0, $v1
/* 0876D8 800EE228 44821000 */ mtc1 $v0, $f2
/* 0876DC 800EE22C 00000000 */ nop
/* 0876E0 800EE230 468010A0 */ cvt.s.w $f2, $f2
/* 0876E4 800EE234 46020000 */ add.s $f0, $f0, $f2
/* 0876E8 800EE238 C622003C */ lwc1 $f2, 0x3c($s1)
/* 0876EC 800EE23C 46020001 */ sub.s $f0, $f0, $f2
/* 0876F0 800EE240 3C013FA0 */ lui $at, 0x3fa0
/* 0876F4 800EE244 44811800 */ mtc1 $at, $f3
/* 0876F8 800EE248 44801000 */ mtc1 $zero, $f2
/* 0876FC 800EE24C 46000021 */ cvt.d.s $f0, $f0
/* 087700 800EE250 46220002 */ mul.d $f0, $f0, $f2
/* 087704 800EE254 00000000 */ nop
/* 087708 800EE258 3C038011 */ lui $v1, 0x8011
/* 08770C 800EE25C 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 087710 800EE260 000310C0 */ sll $v0, $v1, 3
/* 087714 800EE264 00431021 */ addu $v0, $v0, $v1
/* 087718 800EE268 C7A20024 */ lwc1 $f2, 0x24($sp)
/* 08771C 800EE26C 00021080 */ sll $v0, $v0, 2
/* 087720 800EE270 460010A1 */ cvt.d.s $f2, $f2
/* 087724 800EE274 46201080 */ add.d $f2, $f2, $f0
/* 087728 800EE278 AE200018 */ sw $zero, 0x18($s1)
/* 08772C 800EE27C AE200014 */ sw $zero, 0x14($s1)
/* 087730 800EE280 462010A0 */ cvt.s.d $f2, $f2
/* 087734 800EE284 E622003C */ swc1 $f2, 0x3c($s1)
/* 087738 800EE288 3C018010 */ lui $at, 0x8010
/* 08773C 800EE28C 00220821 */ addu $at, $at, $v0
/* 087740 800EE290 8C22835C */ lw $v0, -0x7ca4($at)
/* 087744 800EE294 E7A20024 */ swc1 $f2, 0x24($sp)
/* 087748 800EE298 AE220028 */ sw $v0, 0x28($s1)
/* 08774C 800EE29C 826300B4 */ lb $v1, 0xb4($s3)
/* 087750 800EE2A0 2402000C */ addiu $v0, $zero, 0xc
/* 087754 800EE2A4 50620076 */ beql $v1, $v0, .L800EE480
/* 087758 800EE2A8 A4800000 */ sh $zero, ($a0)
/* 08775C 800EE2AC 0803B920 */ j .L800EE480
/* 087760 800EE2B0 00000000 */ nop
.L800EE2B4:
/* 087764 800EE2B4 C66200A8 */ lwc1 $f2, 0xa8($s3)
/* 087768 800EE2B8 3C014334 */ lui $at, 0x4334
/* 08776C 800EE2BC 44810000 */ mtc1 $at, $f0
/* 087770 800EE2C0 C64C006C */ lwc1 $f12, 0x6c($s2)
/* 087774 800EE2C4 4600103C */ c.lt.s $f2, $f0
/* 087778 800EE2C8 3C01C2B4 */ lui $at, 0xc2b4
/* 08777C 800EE2CC 44810000 */ mtc1 $at, $f0
/* 087780 800EE2D0 45000003 */ bc1f .L800EE2E0
/* 087784 800EE2D4 00000000 */ nop
/* 087788 800EE2D8 3C0142B4 */ lui $at, 0x42b4
/* 08778C 800EE2DC 44810000 */ mtc1 $at, $f0
.L800EE2E0:
/* 087790 800EE2E0 0C00A6C9 */ jal clamp_angle
/* 087794 800EE2E4 46006300 */ add.s $f12, $f12, $f0
/* 087798 800EE2E8 44070000 */ mfc1 $a3, $f0
/* 08779C 800EE2EC C6600028 */ lwc1 $f0, 0x28($s3)
/* 0877A0 800EE2F0 3C018011 */ lui $at, 0x8011
/* 0877A4 800EE2F4 C424CFC0 */ lwc1 $f4, -0x3040($at)
/* 0877A8 800EE2F8 26240060 */ addiu $a0, $s1, 0x60
/* 0877AC 800EE2FC E6200060 */ swc1 $f0, 0x60($s1)
/* 0877B0 800EE300 3C014120 */ lui $at, 0x4120
/* 0877B4 800EE304 44810000 */ mtc1 $at, $f0
/* 0877B8 800EE308 C662002C */ lwc1 $f2, 0x2c($s3)
/* 0877BC 800EE30C 46002101 */ sub.s $f4, $f4, $f0
/* 0877C0 800EE310 E6220064 */ swc1 $f2, 0x64($s1)
/* 0877C4 800EE314 C6600030 */ lwc1 $f0, 0x30($s3)
/* 0877C8 800EE318 44062000 */ mfc1 $a2, $f4
/* 0877CC 800EE31C 26250068 */ addiu $a1, $s1, 0x68
/* 0877D0 800EE320 0C00A7E7 */ jal add_vec2D_polar
/* 0877D4 800EE324 E6200068 */ swc1 $f0, 0x68($s1)
/* 0877D8 800EE328 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0877DC 800EE32C C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0877E0 800EE330 8E260060 */ lw $a2, 0x60($s1)
/* 0877E4 800EE334 0C00A720 */ jal atan2
/* 0877E8 800EE338 8E270068 */ lw $a3, 0x68($s1)
/* 0877EC 800EE33C C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0877F0 800EE340 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0877F4 800EE344 8E260060 */ lw $a2, 0x60($s1)
/* 0877F8 800EE348 8E270068 */ lw $a3, 0x68($s1)
/* 0877FC 800EE34C 0C00A7B5 */ jal dist2D
/* 087800 800EE350 46000506 */ mov.s $f20, $f0
/* 087804 800EE354 3C014000 */ lui $at, 0x4000
/* 087808 800EE358 44811000 */ mtc1 $at, $f2
/* 08780C 800EE35C E7A0002C */ swc1 $f0, 0x2c($sp)
/* 087810 800EE360 4600103C */ c.lt.s $f2, $f0
/* 087814 800EE364 00000000 */ nop
/* 087818 800EE368 45000022 */ bc1f .L800EE3F4
/* 08781C 800EE36C E6220018 */ swc1 $f2, 0x18($s1)
/* 087820 800EE370 3C038011 */ lui $v1, 0x8011
/* 087824 800EE374 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 087828 800EE378 3C048010 */ lui $a0, 0x8010
/* 08782C 800EE37C 24848348 */ addiu $a0, $a0, -0x7cb8
/* 087830 800EE380 E634000C */ swc1 $f20, 0xc($s1)
/* 087834 800EE384 000310C0 */ sll $v0, $v1, 3
/* 087838 800EE388 00431021 */ addu $v0, $v0, $v1
/* 08783C 800EE38C 00021080 */ sll $v0, $v0, 2
/* 087840 800EE390 00442021 */ addu $a0, $v0, $a0
/* 087844 800EE394 8E220000 */ lw $v0, ($s1)
/* 087848 800EE398 8C830018 */ lw $v1, 0x18($a0)
/* 08784C 800EE39C 30424000 */ andi $v0, $v0, 0x4000
/* 087850 800EE3A0 14400004 */ bnez $v0, .L800EE3B4
/* 087854 800EE3A4 AE230028 */ sw $v1, 0x28($s1)
/* 087858 800EE3A8 3C018010 */ lui $at, 0x8010
/* 08785C 800EE3AC 0803B919 */ j .L800EE464
/* 087860 800EE3B0 A420803A */ sh $zero, -0x7fc6($at)
.L800EE3B4:
/* 087864 800EE3B4 3C038010 */ lui $v1, 0x8010
/* 087868 800EE3B8 2463803A */ addiu $v1, $v1, -0x7fc6
/* 08786C 800EE3BC 94620000 */ lhu $v0, ($v1)
/* 087870 800EE3C0 24420001 */ addiu $v0, $v0, 1
/* 087874 800EE3C4 A4620000 */ sh $v0, ($v1)
/* 087878 800EE3C8 00021400 */ sll $v0, $v0, 0x10
/* 08787C 800EE3CC 00021403 */ sra $v0, $v0, 0x10
/* 087880 800EE3D0 2842000B */ slti $v0, $v0, 0xb
/* 087884 800EE3D4 14400023 */ bnez $v0, .L800EE464
/* 087888 800EE3D8 00000000 */ nop
/* 08788C 800EE3DC C6740080 */ lwc1 $f20, 0x80($s3)
/* 087890 800EE3E0 AE200018 */ sw $zero, 0x18($s1)
/* 087894 800EE3E4 AE200014 */ sw $zero, 0x14($s1)
/* 087898 800EE3E8 E6340034 */ swc1 $f20, 0x34($s1)
/* 08789C 800EE3EC 0803B90E */ j .L800EE438
/* 0878A0 800EE3F0 8C820014 */ lw $v0, 0x14($a0)
.L800EE3F4:
/* 0878A4 800EE3F4 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0878A8 800EE3F8 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0878AC 800EE3FC 8E660028 */ lw $a2, 0x28($s3)
/* 0878B0 800EE400 0C00A720 */ jal atan2
/* 0878B4 800EE404 8E670030 */ lw $a3, 0x30($s3)
/* 0878B8 800EE408 3C038011 */ lui $v1, 0x8011
/* 0878BC 800EE40C 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 0878C0 800EE410 46000506 */ mov.s $f20, $f0
/* 0878C4 800EE414 E634000C */ swc1 $f20, 0xc($s1)
/* 0878C8 800EE418 AE200018 */ sw $zero, 0x18($s1)
/* 0878CC 800EE41C AE200014 */ sw $zero, 0x14($s1)
/* 0878D0 800EE420 000310C0 */ sll $v0, $v1, 3
/* 0878D4 800EE424 00431021 */ addu $v0, $v0, $v1
/* 0878D8 800EE428 00021080 */ sll $v0, $v0, 2
/* 0878DC 800EE42C 3C018010 */ lui $at, 0x8010
/* 0878E0 800EE430 00220821 */ addu $at, $at, $v0
/* 0878E4 800EE434 8C22835C */ lw $v0, -0x7ca4($at)
.L800EE438:
/* 0878E8 800EE438 3C048011 */ lui $a0, 0x8011
/* 0878EC 800EE43C 2484CFCA */ addiu $a0, $a0, -0x3036
/* 0878F0 800EE440 AE220028 */ sw $v0, 0x28($s1)
/* 0878F4 800EE444 84830000 */ lh $v1, ($a0)
/* 0878F8 800EE448 24020002 */ addiu $v0, $zero, 2
/* 0878FC 800EE44C 10620004 */ beq $v1, $v0, .L800EE460
/* 087900 800EE450 2402000C */ addiu $v0, $zero, 0xc
/* 087904 800EE454 826300B4 */ lb $v1, 0xb4($s3)
/* 087908 800EE458 14620002 */ bne $v1, $v0, .L800EE464
/* 08790C 800EE45C 00000000 */ nop
.L800EE460:
/* 087910 800EE460 A4800000 */ sh $zero, ($a0)
.L800EE464:
/* 087914 800EE464 8E250018 */ lw $a1, 0x18($s1)
/* 087918 800EE468 4406A000 */ mfc1 $a2, $f20
/* 08791C 800EE46C 0220202D */ daddu $a0, $s1, $zero
/* 087920 800EE470 0C00EA95 */ jal npc_move_heading
/* 087924 800EE474 AC86000C */ sw $a2, 0xc($a0)
/* 087928 800EE478 0803BA5A */ j .L800EE968
/* 08792C 800EE47C 00000000 */ nop
.L800EE480:
/* 087930 800EE480 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087934 800EE484 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 087938 800EE488 8E660028 */ lw $a2, 0x28($s3)
/* 08793C 800EE48C 0C00A7B5 */ jal dist2D
/* 087940 800EE490 8E670030 */ lw $a3, 0x30($s3)
/* 087944 800EE494 3C018011 */ lui $at, 0x8011
/* 087948 800EE498 C422CFC0 */ lwc1 $f2, -0x3040($at)
/* 08794C 800EE49C 4602003E */ c.le.s $f0, $f2
/* 087950 800EE4A0 00000000 */ nop
/* 087954 800EE4A4 45010130 */ bc1t .L800EE968
/* 087958 800EE4A8 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 08795C 800EE4AC 3C0142B4 */ lui $at, 0x42b4
/* 087960 800EE4B0 4481C000 */ mtc1 $at, $f24
/* 087964 800EE4B4 3C128011 */ lui $s2, 0x8011
/* 087968 800EE4B8 2652CFBC */ addiu $s2, $s2, -0x3044
/* 08796C 800EE4BC 3C148011 */ lui $s4, 0x8011
/* 087970 800EE4C0 2694CD38 */ addiu $s4, $s4, -0x32c8
.L800EE4C4:
/* 087974 800EE4C4 82020000 */ lb $v0, ($s0)
/* 087978 800EE4C8 14400024 */ bnez $v0, .L800EE55C
/* 08797C 800EE4CC 00000000 */ nop
/* 087980 800EE4D0 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087984 800EE4D4 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 087988 800EE4D8 4406B000 */ mfc1 $a2, $f22
/* 08798C 800EE4DC 4407A000 */ mfc1 $a3, $f20
/* 087990 800EE4E0 0C00A720 */ jal atan2
/* 087994 800EE4E4 00000000 */ nop
/* 087998 800EE4E8 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 08799C 800EE4EC C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0879A0 800EE4F0 8E660028 */ lw $a2, 0x28($s3)
/* 0879A4 800EE4F4 8E670030 */ lw $a3, 0x30($s3)
/* 0879A8 800EE4F8 0C00A720 */ jal atan2
/* 0879AC 800EE4FC 46000506 */ mov.s $f20, $f0
/* 0879B0 800EE500 4600A306 */ mov.s $f12, $f20
/* 0879B4 800EE504 0C00A70A */ jal get_clamped_angle_diff
/* 0879B8 800EE508 46000386 */ mov.s $f14, $f0
/* 0879BC 800EE50C 46000005 */ abs.s $f0, $f0
/* 0879C0 800EE510 4618003C */ c.lt.s $f0, $f24
/* 0879C4 800EE514 00000000 */ nop
/* 0879C8 800EE518 45010010 */ bc1t .L800EE55C
/* 0879CC 800EE51C 00000000 */ nop
/* 0879D0 800EE520 8E430000 */ lw $v1, ($s2)
/* 0879D4 800EE524 3C028011 */ lui $v0, 0x8011
/* 0879D8 800EE528 8C42CFB8 */ lw $v0, -0x3048($v0)
/* 0879DC 800EE52C 1062000B */ beq $v1, $v0, .L800EE55C
/* 0879E0 800EE530 24620001 */ addiu $v0, $v1, 1
/* 0879E4 800EE534 AE420000 */ sw $v0, ($s2)
/* 0879E8 800EE538 28420028 */ slti $v0, $v0, 0x28
/* 0879EC 800EE53C 50400001 */ beql $v0, $zero, .L800EE544
/* 0879F0 800EE540 AE400000 */ sw $zero, ($s2)
.L800EE544:
/* 0879F4 800EE544 8E420000 */ lw $v0, ($s2)
/* 0879F8 800EE548 00021100 */ sll $v0, $v0, 4
/* 0879FC 800EE54C 00548021 */ addu $s0, $v0, $s4
/* 087A00 800EE550 C6160004 */ lwc1 $f22, 4($s0)
/* 087A04 800EE554 0803B931 */ j .L800EE4C4
/* 087A08 800EE558 C614000C */ lwc1 $f20, 0xc($s0)
.L800EE55C:
/* 087A0C 800EE55C 3C018011 */ lui $at, 0x8011
/* 087A10 800EE560 A420CFC8 */ sh $zero, -0x3038($at)
/* 087A14 800EE564 0803BA5A */ j .L800EE968
/* 087A18 800EE568 00000000 */ nop
/* 087A1C 800EE56C 8E620004 */ lw $v0, 4($s3)
/* 087A20 800EE570 3C030010 */ lui $v1, 0x10
/* 087A24 800EE574 00431024 */ and $v0, $v0, $v1
/* 087A28 800EE578 144000FB */ bnez $v0, .L800EE968
/* 087A2C 800EE57C 00000000 */ nop
/* 087A30 800EE580 3C038011 */ lui $v1, 0x8011
/* 087A34 800EE584 8463CFCE */ lh $v1, -0x3032($v1)
/* 087A38 800EE588 10600006 */ beqz $v1, .L800EE5A4
/* 087A3C 800EE58C 00000000 */ nop
/* 087A40 800EE590 24020001 */ addiu $v0, $zero, 1
/* 087A44 800EE594 10620048 */ beq $v1, $v0, .L800EE6B8
/* 087A48 800EE598 00000000 */ nop
/* 087A4C 800EE59C 0803BA5A */ j .L800EE968
/* 087A50 800EE5A0 00000000 */ nop
.L800EE5A4:
/* 087A54 800EE5A4 0C0394D2 */ jal func_800E5348
/* 087A58 800EE5A8 00000000 */ nop
/* 087A5C 800EE5AC 3C014334 */ lui $at, 0x4334
/* 087A60 800EE5B0 44816000 */ mtc1 $at, $f12
/* 087A64 800EE5B4 0C00A6C9 */ jal clamp_angle
/* 087A68 800EE5B8 460C0300 */ add.s $f12, $f0, $f12
/* 087A6C 800EE5BC C6620028 */ lwc1 $f2, 0x28($s3)
/* 087A70 800EE5C0 E6220060 */ swc1 $f2, 0x60($s1)
/* 087A74 800EE5C4 C662002C */ lwc1 $f2, 0x2c($s3)
/* 087A78 800EE5C8 E6220064 */ swc1 $f2, 0x64($s1)
/* 087A7C 800EE5CC C6620030 */ lwc1 $f2, 0x30($s3)
/* 087A80 800EE5D0 26240060 */ addiu $a0, $s1, 0x60
/* 087A84 800EE5D4 E6220068 */ swc1 $f2, 0x68($s1)
/* 087A88 800EE5D8 866200B2 */ lh $v0, 0xb2($s3)
/* 087A8C 800EE5DC 44070000 */ mfc1 $a3, $f0
/* 087A90 800EE5E0 44828000 */ mtc1 $v0, $f16
/* 087A94 800EE5E4 00000000 */ nop
/* 087A98 800EE5E8 46808420 */ cvt.s.w $f16, $f16
/* 087A9C 800EE5EC 44068000 */ mfc1 $a2, $f16
/* 087AA0 800EE5F0 0C00A7E7 */ jal add_vec2D_polar
/* 087AA4 800EE5F4 26250068 */ addiu $a1, $s1, 0x68
/* 087AA8 800EE5F8 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087AAC 800EE5FC C62E0040 */ lwc1 $f14, 0x40($s1)
/* 087AB0 800EE600 8E260060 */ lw $a2, 0x60($s1)
/* 087AB4 800EE604 0C00A7B5 */ jal dist2D
/* 087AB8 800EE608 8E270068 */ lw $a3, 0x68($s1)
/* 087ABC 800EE60C 3C018010 */ lui $at, 0x8010
/* 087AC0 800EE610 C422802C */ lwc1 $f2, -0x7fd4($at)
/* 087AC4 800EE614 468010A0 */ cvt.s.w $f2, $f2
/* 087AC8 800EE618 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 087ACC 800EE61C 46020003 */ div.s $f0, $f0, $f2
/* 087AD0 800EE620 3C018010 */ lui $at, 0x8010
/* 087AD4 800EE624 E4208030 */ swc1 $f0, -0x7fd0($at)
/* 087AD8 800EE628 E6200018 */ swc1 $f0, 0x18($s1)
/* 087ADC 800EE62C 46000021 */ cvt.d.s $f0, $f0
/* 087AE0 800EE630 26240028 */ addiu $a0, $s1, 0x28
/* 087AE4 800EE634 3C038011 */ lui $v1, 0x8011
/* 087AE8 800EE638 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 087AEC 800EE63C 3C014010 */ lui $at, 0x4010
/* 087AF0 800EE640 44811800 */ mtc1 $at, $f3
/* 087AF4 800EE644 44801000 */ mtc1 $zero, $f2
/* 087AF8 800EE648 000310C0 */ sll $v0, $v1, 3
/* 087AFC 800EE64C 00431021 */ addu $v0, $v0, $v1
/* 087B00 800EE650 4622003C */ c.lt.d $f0, $f2
/* 087B04 800EE654 00000000 */ nop
/* 087B08 800EE658 45000003 */ bc1f .L800EE668
/* 087B0C 800EE65C 00021080 */ sll $v0, $v0, 2
/* 087B10 800EE660 0803B99B */ j .L800EE66C
/* 087B14 800EE664 24430004 */ addiu $v1, $v0, 4
.L800EE668:
/* 087B18 800EE668 24430018 */ addiu $v1, $v0, 0x18
.L800EE66C:
/* 087B1C 800EE66C 3C028010 */ lui $v0, 0x8010
/* 087B20 800EE670 24428348 */ addiu $v0, $v0, -0x7cb8
/* 087B24 800EE674 00431021 */ addu $v0, $v0, $v1
/* 087B28 800EE678 8C420000 */ lw $v0, ($v0)
/* 087B2C 800EE67C AC820000 */ sw $v0, ($a0)
/* 087B30 800EE680 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 087B34 800EE684 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 087B38 800EE688 8E260060 */ lw $a2, 0x60($s1)
/* 087B3C 800EE68C 0C00A720 */ jal atan2
/* 087B40 800EE690 8E270068 */ lw $a3, 0x68($s1)
/* 087B44 800EE694 3C038011 */ lui $v1, 0x8011
/* 087B48 800EE698 2463CFCE */ addiu $v1, $v1, -0x3032
/* 087B4C 800EE69C 94620000 */ lhu $v0, ($v1)
/* 087B50 800EE6A0 46000506 */ mov.s $f20, $f0
/* 087B54 800EE6A4 3C018010 */ lui $at, 0x8010
/* 087B58 800EE6A8 E4348034 */ swc1 $f20, -0x7fcc($at)
/* 087B5C 800EE6AC E634000C */ swc1 $f20, 0xc($s1)
/* 087B60 800EE6B0 24420001 */ addiu $v0, $v0, 1
/* 087B64 800EE6B4 A4620000 */ sh $v0, ($v1)
.L800EE6B8:
/* 087B68 800EE6B8 3C098010 */ lui $t1, 0x8010
/* 087B6C 800EE6BC 2529802C */ addiu $t1, $t1, -0x7fd4
/* 087B70 800EE6C0 8D280000 */ lw $t0, ($t1)
/* 087B74 800EE6C4 1100007E */ beqz $t0, .L800EE8C0
/* 087B78 800EE6C8 3C040001 */ lui $a0, 1
/* 087B7C 800EE6CC 27A50020 */ addiu $a1, $sp, 0x20
/* 087B80 800EE6D0 C6220038 */ lwc1 $f2, 0x38($s1)
/* 087B84 800EE6D4 862200A8 */ lh $v0, 0xa8($s1)
/* 087B88 800EE6D8 C6200040 */ lwc1 $f0, 0x40($s1)
/* 087B8C 800EE6DC 27A60024 */ addiu $a2, $sp, 0x24
/* 087B90 800EE6E0 E7A00028 */ swc1 $f0, 0x28($sp)
/* 087B94 800EE6E4 44820000 */ mtc1 $v0, $f0
/* 087B98 800EE6E8 00000000 */ nop
/* 087B9C 800EE6EC 46800020 */ cvt.s.w $f0, $f0
/* 087BA0 800EE6F0 E7A20020 */ swc1 $f2, 0x20($sp)
/* 087BA4 800EE6F4 862200A8 */ lh $v0, 0xa8($s1)
/* 087BA8 800EE6F8 C622003C */ lwc1 $f2, 0x3c($s1)
/* 087BAC 800EE6FC 24420001 */ addiu $v0, $v0, 1
/* 087BB0 800EE700 46001080 */ add.s $f2, $f2, $f0
/* 087BB4 800EE704 44820000 */ mtc1 $v0, $f0
/* 087BB8 800EE708 00000000 */ nop
/* 087BBC 800EE70C 46800020 */ cvt.s.w $f0, $f0
/* 087BC0 800EE710 27A2002C */ addiu $v0, $sp, 0x2c
/* 087BC4 800EE714 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 087BC8 800EE718 E7A20024 */ swc1 $f2, 0x24($sp)
/* 087BCC 800EE71C AFA20010 */ sw $v0, 0x10($sp)
/* 087BD0 800EE720 C620000C */ lwc1 $f0, 0xc($s1)
/* 087BD4 800EE724 27A70028 */ addiu $a3, $sp, 0x28
/* 087BD8 800EE728 E7A00014 */ swc1 $f0, 0x14($sp)
/* 087BDC 800EE72C 862300A6 */ lh $v1, 0xa6($s1)
/* 087BE0 800EE730 2502FFFF */ addiu $v0, $t0, -1
/* 087BE4 800EE734 AD220000 */ sw $v0, ($t1)
/* 087BE8 800EE738 44830000 */ mtc1 $v1, $f0
/* 087BEC 800EE73C 00000000 */ nop
/* 087BF0 800EE740 46800020 */ cvt.s.w $f0, $f0
/* 087BF4 800EE744 0C0371DE */ jal func_800DC778
/* 087BF8 800EE748 E7A00018 */ swc1 $f0, 0x18($sp)
/* 087BFC 800EE74C 14400017 */ bnez $v0, .L800EE7AC
/* 087C00 800EE750 00000000 */ nop
/* 087C04 800EE754 C624003C */ lwc1 $f4, 0x3c($s1)
/* 087C08 800EE758 C666002C */ lwc1 $f6, 0x2c($s3)
/* 087C0C 800EE75C 862200A8 */ lh $v0, 0xa8($s1)
/* 087C10 800EE760 46062001 */ sub.s $f0, $f4, $f6
/* 087C14 800EE764 24420005 */ addiu $v0, $v0, 5
/* 087C18 800EE768 44821000 */ mtc1 $v0, $f2
/* 087C1C 800EE76C 00000000 */ nop
/* 087C20 800EE770 468010A1 */ cvt.d.w $f2, $f2
/* 087C24 800EE774 46000021 */ cvt.d.s $f0, $f0
/* 087C28 800EE778 46200005 */ abs.d $f0, $f0
/* 087C2C 800EE77C 4620103C */ c.lt.d $f2, $f0
/* 087C30 800EE780 00000000 */ nop
/* 087C34 800EE784 45000018 */ bc1f .L800EE7E8
/* 087C38 800EE788 00000000 */ nop
/* 087C3C 800EE78C 46043001 */ sub.s $f0, $f6, $f4
/* 087C40 800EE790 3C014120 */ lui $at, 0x4120
/* 087C44 800EE794 44811000 */ mtc1 $at, $f2
/* 087C48 800EE798 00000000 */ nop
/* 087C4C 800EE79C 46020003 */ div.s $f0, $f0, $f2
/* 087C50 800EE7A0 46002000 */ add.s $f0, $f4, $f0
/* 087C54 800EE7A4 0803B9FA */ j .L800EE7E8
/* 087C58 800EE7A8 E620003C */ swc1 $f0, 0x3c($s1)
.L800EE7AC:
/* 087C5C 800EE7AC 866200B0 */ lh $v0, 0xb0($s3)
/* 087C60 800EE7B0 C660002C */ lwc1 $f0, 0x2c($s3)
/* 087C64 800EE7B4 44821000 */ mtc1 $v0, $f2
/* 087C68 800EE7B8 00000000 */ nop
/* 087C6C 800EE7BC 468010A0 */ cvt.s.w $f2, $f2
/* 087C70 800EE7C0 46020000 */ add.s $f0, $f0, $f2
/* 087C74 800EE7C4 C622003C */ lwc1 $f2, 0x3c($s1)
/* 087C78 800EE7C8 46020001 */ sub.s $f0, $f0, $f2
/* 087C7C 800EE7CC 3C013E00 */ lui $at, 0x3e00
/* 087C80 800EE7D0 44812000 */ mtc1 $at, $f4
/* 087C84 800EE7D4 00000000 */ nop
/* 087C88 800EE7D8 46040002 */ mul.s $f0, $f0, $f4
/* 087C8C 800EE7DC 00000000 */ nop
/* 087C90 800EE7E0 46001080 */ add.s $f2, $f2, $f0
/* 087C94 800EE7E4 E622003C */ swc1 $f2, 0x3c($s1)
.L800EE7E8:
/* 087C98 800EE7E8 3C018010 */ lui $at, 0x8010
/* 087C9C 800EE7EC C4208030 */ lwc1 $f0, -0x7fd0($at)
/* 087CA0 800EE7F0 C6220038 */ lwc1 $f2, 0x38($s1)
/* 087CA4 800EE7F4 C624003C */ lwc1 $f4, 0x3c($s1)
/* 087CA8 800EE7F8 C6260040 */ lwc1 $f6, 0x40($s1)
/* 087CAC 800EE7FC E6200018 */ swc1 $f0, 0x18($s1)
/* 087CB0 800EE800 3C018010 */ lui $at, 0x8010
/* 087CB4 800EE804 C4208034 */ lwc1 $f0, -0x7fcc($at)
/* 087CB8 800EE808 C6280018 */ lwc1 $f8, 0x18($s1)
/* 087CBC 800EE80C 0000202D */ daddu $a0, $zero, $zero
/* 087CC0 800EE810 E620000C */ swc1 $f0, 0xc($s1)
/* 087CC4 800EE814 E7A20020 */ swc1 $f2, 0x20($sp)
/* 087CC8 800EE818 E7A40024 */ swc1 $f4, 0x24($sp)
/* 087CCC 800EE81C E7A60028 */ swc1 $f6, 0x28($sp)
/* 087CD0 800EE820 E7A80010 */ swc1 $f8, 0x10($sp)
/* 087CD4 800EE824 C620000C */ lwc1 $f0, 0xc($s1)
/* 087CD8 800EE828 27A50020 */ addiu $a1, $sp, 0x20
/* 087CDC 800EE82C E7A00014 */ swc1 $f0, 0x14($sp)
/* 087CE0 800EE830 862200A8 */ lh $v0, 0xa8($s1)
/* 087CE4 800EE834 27A60024 */ addiu $a2, $sp, 0x24
/* 087CE8 800EE838 44820000 */ mtc1 $v0, $f0
/* 087CEC 800EE83C 00000000 */ nop
/* 087CF0 800EE840 46800020 */ cvt.s.w $f0, $f0
/* 087CF4 800EE844 E7A00018 */ swc1 $f0, 0x18($sp)
/* 087CF8 800EE848 862200A6 */ lh $v0, 0xa6($s1)
/* 087CFC 800EE84C 27A70028 */ addiu $a3, $sp, 0x28
/* 087D00 800EE850 44820000 */ mtc1 $v0, $f0
/* 087D04 800EE854 00000000 */ nop
/* 087D08 800EE858 46800020 */ cvt.s.w $f0, $f0
/* 087D0C 800EE85C 0C0376B9 */ jal func_800DDAE4
/* 087D10 800EE860 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 087D14 800EE864 10400010 */ beqz $v0, .L800EE8A8
/* 087D18 800EE868 00000000 */ nop
/* 087D1C 800EE86C C7A00020 */ lwc1 $f0, 0x20($sp)
/* 087D20 800EE870 C6260038 */ lwc1 $f6, 0x38($s1)
/* 087D24 800EE874 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 087D28 800EE878 46060001 */ sub.s $f0, $f0, $f6
/* 087D2C 800EE87C C6240040 */ lwc1 $f4, 0x40($s1)
/* 087D30 800EE880 3C0140A0 */ lui $at, 0x40a0
/* 087D34 800EE884 44814000 */ mtc1 $at, $f8
/* 087D38 800EE888 46041081 */ sub.s $f2, $f2, $f4
/* 087D3C 800EE88C 46080003 */ div.s $f0, $f0, $f8
/* 087D40 800EE890 46003180 */ add.s $f6, $f6, $f0
/* 087D44 800EE894 46081083 */ div.s $f2, $f2, $f8
/* 087D48 800EE898 46022100 */ add.s $f4, $f4, $f2
/* 087D4C 800EE89C E6260038 */ swc1 $f6, 0x38($s1)
/* 087D50 800EE8A0 0803BA5A */ j .L800EE968
/* 087D54 800EE8A4 E6240040 */ swc1 $f4, 0x40($s1)
.L800EE8A8:
/* 087D58 800EE8A8 8E250018 */ lw $a1, 0x18($s1)
/* 087D5C 800EE8AC 8E26000C */ lw $a2, 0xc($s1)
/* 087D60 800EE8B0 0C00EA95 */ jal npc_move_heading
/* 087D64 800EE8B4 0220202D */ daddu $a0, $s1, $zero
/* 087D68 800EE8B8 0803BA5A */ j .L800EE968
/* 087D6C 800EE8BC 00000000 */ nop
.L800EE8C0:
/* 087D70 800EE8C0 0C03BD17 */ jal clear_partner_move_history
/* 087D74 800EE8C4 0220202D */ daddu $a0, $s1, $zero
/* 087D78 800EE8C8 3C038011 */ lui $v1, 0x8011
/* 087D7C 800EE8CC 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 087D80 800EE8D0 3C014387 */ lui $at, 0x4387
/* 087D84 800EE8D4 44810000 */ mtc1 $at, $f0
/* 087D88 800EE8D8 AE200018 */ sw $zero, 0x18($s1)
/* 087D8C 800EE8DC AE200014 */ sw $zero, 0x14($s1)
/* 087D90 800EE8E0 000310C0 */ sll $v0, $v1, 3
/* 087D94 800EE8E4 00431021 */ addu $v0, $v0, $v1
/* 087D98 800EE8E8 00021080 */ sll $v0, $v0, 2
/* 087D9C 800EE8EC 3C018010 */ lui $at, 0x8010
/* 087DA0 800EE8F0 00220821 */ addu $at, $at, $v0
/* 087DA4 800EE8F4 8C22835C */ lw $v0, -0x7ca4($at)
/* 087DA8 800EE8F8 AE220028 */ sw $v0, 0x28($s1)
/* 087DAC 800EE8FC C64C006C */ lwc1 $f12, 0x6c($s2)
/* 087DB0 800EE900 46006300 */ add.s $f12, $f12, $f0
/* 087DB4 800EE904 C66000A8 */ lwc1 $f0, 0xa8($s3)
/* 087DB8 800EE908 3C018011 */ lui $at, 0x8011
/* 087DBC 800EE90C A420CFC8 */ sh $zero, -0x3038($at)
/* 087DC0 800EE910 3C018011 */ lui $at, 0x8011
/* 087DC4 800EE914 A420CFCA */ sh $zero, -0x3036($at)
/* 087DC8 800EE918 3C018011 */ lui $at, 0x8011
/* 087DCC 800EE91C A420CFCE */ sh $zero, -0x3032($at)
/* 087DD0 800EE920 0C00A6C9 */ jal clamp_angle
/* 087DD4 800EE924 46006301 */ sub.s $f12, $f12, $f0
/* 087DD8 800EE928 0803BA5A */ j .L800EE968
/* 087DDC 800EE92C E620000C */ swc1 $f0, 0xc($s1)
/* 087DE0 800EE930 0220202D */ daddu $a0, $s1, $zero
/* 087DE4 800EE934 0C03BE0B */ jal func_800EF82C
/* 087DE8 800EE938 24050001 */ addiu $a1, $zero, 1
/* 087DEC 800EE93C 0803BA5A */ j .L800EE968
/* 087DF0 800EE940 00000000 */ nop
/* 087DF4 800EE944 3C028011 */ lui $v0, 0x8011
/* 087DF8 800EE948 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 087DFC 800EE94C 000218C0 */ sll $v1, $v0, 3
/* 087E00 800EE950 00621821 */ addu $v1, $v1, $v0
/* 087E04 800EE954 00031880 */ sll $v1, $v1, 2
/* 087E08 800EE958 3C028010 */ lui $v0, 0x8010
/* 087E0C 800EE95C 00431021 */ addu $v0, $v0, $v1
/* 087E10 800EE960 8C42835C */ lw $v0, -0x7ca4($v0)
/* 087E14 800EE964 AE220028 */ sw $v0, 0x28($s1)
.L800EE968:
/* 087E18 800EE968 8FBF0044 */ lw $ra, 0x44($sp)
/* 087E1C 800EE96C 8FB40040 */ lw $s4, 0x40($sp)
/* 087E20 800EE970 8FB3003C */ lw $s3, 0x3c($sp)
/* 087E24 800EE974 8FB20038 */ lw $s2, 0x38($sp)
/* 087E28 800EE978 8FB10034 */ lw $s1, 0x34($sp)
/* 087E2C 800EE97C 8FB00030 */ lw $s0, 0x30($sp)
/* 087E30 800EE980 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 087E34 800EE984 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 087E38 800EE988 D7B40048 */ ldc1 $f20, 0x48($sp)
/* 087E3C 800EE98C 03E00008 */ jr $ra
/* 087E40 800EE990 27BD0060 */ addiu $sp, $sp, 0x60
/* 087E44 800EE994 8C830000 */ lw $v1, ($a0)
/* 087E48 800EE998 3C020001 */ lui $v0, 1
/* 087E4C 800EE99C AC820080 */ sw $v0, 0x80($a0)
/* 087E50 800EE9A0 0000102D */ daddu $v0, $zero, $zero
/* 087E54 800EE9A4 3C018011 */ lui $at, 0x8011
/* 087E58 800EE9A8 A420CFC8 */ sh $zero, -0x3038($at)
/* 087E5C 800EE9AC 34630100 */ ori $v1, $v1, 0x100
/* 087E60 800EE9B0 03E00008 */ jr $ra
/* 087E64 800EE9B4 AC830000 */ sw $v1, ($a0)
/* 087E68 800EE9B8 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 087E6C 800EE9BC AFB00010 */ sw $s0, 0x10($sp)
/* 087E70 800EE9C0 0080802D */ daddu $s0, $a0, $zero
/* 087E74 800EE9C4 3C048011 */ lui $a0, 0x8011
/* 087E78 800EE9C8 2484EFC8 */ addiu $a0, $a0, -0x1038
/* 087E7C 800EE9CC AFB10014 */ sw $s1, 0x14($sp)
/* 087E80 800EE9D0 3C118011 */ lui $s1, 0x8011
/* 087E84 800EE9D4 2631CFC8 */ addiu $s1, $s1, -0x3038
/* 087E88 800EE9D8 AFBF001C */ sw $ra, 0x1c($sp)
/* 087E8C 800EE9DC AFB20018 */ sw $s2, 0x18($sp)
/* 087E90 800EE9E0 F7BE0048 */ sdc1 $f30, 0x48($sp)
/* 087E94 800EE9E4 F7BC0040 */ sdc1 $f28, 0x40($sp)
/* 087E98 800EE9E8 F7BA0038 */ sdc1 $f26, 0x38($sp)
/* 087E9C 800EE9EC F7B80030 */ sdc1 $f24, 0x30($sp)
/* 087EA0 800EE9F0 F7B60028 */ sdc1 $f22, 0x28($sp)
/* 087EA4 800EE9F4 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 087EA8 800EE9F8 86230000 */ lh $v1, ($s1)
/* 087EAC 800EE9FC 24120001 */ addiu $s2, $zero, 1
/* 087EB0 800EEA00 10720062 */ beq $v1, $s2, .L800EEB8C
/* 087EB4 800EEA04 28620002 */ slti $v0, $v1, 2
/* 087EB8 800EEA08 10400005 */ beqz $v0, .L800EEA20
/* 087EBC 800EEA0C 24020002 */ addiu $v0, $zero, 2
/* 087EC0 800EEA10 10600007 */ beqz $v1, .L800EEA30
/* 087EC4 800EEA14 0000102D */ daddu $v0, $zero, $zero
/* 087EC8 800EEA18 0803BB25 */ j .L800EEC94
/* 087ECC 800EEA1C 00000000 */ nop
.L800EEA20:
/* 087ED0 800EEA20 1062008C */ beq $v1, $v0, .L800EEC54
/* 087ED4 800EEA24 0200202D */ daddu $a0, $s0, $zero
/* 087ED8 800EEA28 0803BB25 */ j .L800EEC94
/* 087EDC 800EEA2C 0000102D */ daddu $v0, $zero, $zero
.L800EEA30:
/* 087EE0 800EEA30 2403FDFF */ addiu $v1, $zero, -0x201
/* 087EE4 800EEA34 8E020000 */ lw $v0, ($s0)
/* 087EE8 800EEA38 C61A0038 */ lwc1 $f26, 0x38($s0)
/* 087EEC 800EEA3C C614003C */ lwc1 $f20, 0x3c($s0)
/* 087EF0 800EEA40 C6160040 */ lwc1 $f22, 0x40($s0)
/* 087EF4 800EEA44 3C013FCC */ lui $at, 0x3fcc
/* 087EF8 800EEA48 3421CCCD */ ori $at, $at, 0xcccd
/* 087EFC 800EEA4C 44811000 */ mtc1 $at, $f2
/* 087F00 800EEA50 00431024 */ and $v0, $v0, $v1
/* 087F04 800EEA54 2403FFF7 */ addiu $v1, $zero, -9
/* 087F08 800EEA58 00431024 */ and $v0, $v0, $v1
/* 087F0C 800EEA5C AE020000 */ sw $v0, ($s0)
/* 087F10 800EEA60 C49C0028 */ lwc1 $f28, 0x28($a0)
/* 087F14 800EEA64 E61C0060 */ swc1 $f28, 0x60($s0)
/* 087F18 800EEA68 948200B0 */ lhu $v0, 0xb0($a0)
/* 087F1C 800EEA6C C49E002C */ lwc1 $f30, 0x2c($a0)
/* 087F20 800EEA70 00021400 */ sll $v0, $v0, 0x10
/* 087F24 800EEA74 00021C03 */ sra $v1, $v0, 0x10
/* 087F28 800EEA78 000217C2 */ srl $v0, $v0, 0x1f
/* 087F2C 800EEA7C 00621821 */ addu $v1, $v1, $v0
/* 087F30 800EEA80 00031843 */ sra $v1, $v1, 1
/* 087F34 800EEA84 44830000 */ mtc1 $v1, $f0
/* 087F38 800EEA88 00000000 */ nop
/* 087F3C 800EEA8C 46800020 */ cvt.s.w $f0, $f0
/* 087F40 800EEA90 4600F780 */ add.s $f30, $f30, $f0
/* 087F44 800EEA94 4406E000 */ mfc1 $a2, $f28
/* 087F48 800EEA98 4600D306 */ mov.s $f12, $f26
/* 087F4C 800EEA9C E61E0064 */ swc1 $f30, 0x64($s0)
/* 087F50 800EEAA0 C4980030 */ lwc1 $f24, 0x30($a0)
/* 087F54 800EEAA4 3C014080 */ lui $at, 0x4080
/* 087F58 800EEAA8 44810000 */ mtc1 $at, $f0
/* 087F5C 800EEAAC 4407C000 */ mfc1 $a3, $f24
/* 087F60 800EEAB0 4600B386 */ mov.s $f14, $f22
/* 087F64 800EEAB4 3C018010 */ lui $at, 0x8010
/* 087F68 800EEAB8 E43A833C */ swc1 $f26, -0x7cc4($at)
/* 087F6C 800EEABC 3C018010 */ lui $at, 0x8010
/* 087F70 800EEAC0 E4348340 */ swc1 $f20, -0x7cc0($at)
/* 087F74 800EEAC4 3C018010 */ lui $at, 0x8010
/* 087F78 800EEAC8 E4368344 */ swc1 $f22, -0x7cbc($at)
/* 087F7C 800EEACC E6000018 */ swc1 $f0, 0x18($s0)
/* 087F80 800EEAD0 E6020014 */ swc1 $f2, 0x14($s0)
/* 087F84 800EEAD4 0C00A7B5 */ jal dist2D
/* 087F88 800EEAD8 E6180068 */ swc1 $f24, 0x68($s0)
/* 087F8C 800EEADC 4600D306 */ mov.s $f12, $f26
/* 087F90 800EEAE0 4406E000 */ mfc1 $a2, $f28
/* 087F94 800EEAE4 4407C000 */ mfc1 $a3, $f24
/* 087F98 800EEAE8 4600B386 */ mov.s $f14, $f22
/* 087F9C 800EEAEC 0C00A720 */ jal atan2
/* 087FA0 800EEAF0 E6000010 */ swc1 $f0, 0x10($s0)
/* 087FA4 800EEAF4 2402000F */ addiu $v0, $zero, 0xf
/* 087FA8 800EEAF8 A602008E */ sh $v0, 0x8e($s0)
/* 087FAC 800EEAFC 8602008E */ lh $v0, 0x8e($s0)
/* 087FB0 800EEB00 C6020014 */ lwc1 $f2, 0x14($s0)
/* 087FB4 800EEB04 44823000 */ mtc1 $v0, $f6
/* 087FB8 800EEB08 00000000 */ nop
/* 087FBC 800EEB0C 468031A0 */ cvt.s.w $f6, $f6
/* 087FC0 800EEB10 46061082 */ mul.s $f2, $f2, $f6
/* 087FC4 800EEB14 00000000 */ nop
/* 087FC8 800EEB18 4614F501 */ sub.s $f20, $f30, $f20
/* 087FCC 800EEB1C 3C013F00 */ lui $at, 0x3f00
/* 087FD0 800EEB20 44812000 */ mtc1 $at, $f4
/* 087FD4 800EEB24 46061082 */ mul.s $f2, $f2, $f6
/* 087FD8 800EEB28 00000000 */ nop
/* 087FDC 800EEB2C 3C014170 */ lui $at, 0x4170
/* 087FE0 800EEB30 44814000 */ mtc1 $at, $f8
/* 087FE4 800EEB34 3C038011 */ lui $v1, 0x8011
/* 087FE8 800EEB38 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 087FEC 800EEB3C E600000C */ swc1 $f0, 0xc($s0)
/* 087FF0 800EEB40 46041082 */ mul.s $f2, $f2, $f4
/* 087FF4 800EEB44 00000000 */ nop
/* 087FF8 800EEB48 000310C0 */ sll $v0, $v1, 3
/* 087FFC 800EEB4C 00431021 */ addu $v0, $v0, $v1
/* 088000 800EEB50 00021080 */ sll $v0, $v0, 2
/* 088004 800EEB54 C6040010 */ lwc1 $f4, 0x10($s0)
/* 088008 800EEB58 4602A500 */ add.s $f20, $f20, $f2
/* 08800C 800EEB5C 46082103 */ div.s $f4, $f4, $f8
/* 088010 800EEB60 E6040018 */ swc1 $f4, 0x18($s0)
/* 088014 800EEB64 4606A503 */ div.s $f20, $f20, $f6
/* 088018 800EEB68 E614001C */ swc1 $f20, 0x1c($s0)
/* 08801C 800EEB6C 3C018010 */ lui $at, 0x8010
/* 088020 800EEB70 00220821 */ addu $at, $at, $v0
/* 088024 800EEB74 8C228350 */ lw $v0, -0x7cb0($at)
/* 088028 800EEB78 0200202D */ daddu $a0, $s0, $zero
/* 08802C 800EEB7C 0C00EB49 */ jal enable_npc_blur
/* 088030 800EEB80 AC820028 */ sw $v0, 0x28($a0)
/* 088034 800EEB84 0803BB24 */ j .L800EEC90
/* 088038 800EEB88 A6320000 */ sh $s2, ($s1)
.L800EEB8C:
/* 08803C 800EEB8C C600001C */ lwc1 $f0, 0x1c($s0)
/* 088040 800EEB90 C6020014 */ lwc1 $f2, 0x14($s0)
/* 088044 800EEB94 46020001 */ sub.s $f0, $f0, $f2
/* 088048 800EEB98 C602003C */ lwc1 $f2, 0x3c($s0)
/* 08804C 800EEB9C E600001C */ swc1 $f0, 0x1c($s0)
/* 088050 800EEBA0 46000106 */ mov.s $f4, $f0
/* 088054 800EEBA4 46001080 */ add.s $f2, $f2, $f0
/* 088058 800EEBA8 44800000 */ mtc1 $zero, $f0
/* 08805C 800EEBAC 00000000 */ nop
/* 088060 800EEBB0 4600203E */ c.le.s $f4, $f0
/* 088064 800EEBB4 00000000 */ nop
/* 088068 800EEBB8 4500000A */ bc1f .L800EEBE4
/* 08806C 800EEBBC E602003C */ swc1 $f2, 0x3c($s0)
/* 088070 800EEBC0 3C028011 */ lui $v0, 0x8011
/* 088074 800EEBC4 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 088078 800EEBC8 000218C0 */ sll $v1, $v0, 3
/* 08807C 800EEBCC 00621821 */ addu $v1, $v1, $v0
/* 088080 800EEBD0 00031880 */ sll $v1, $v1, 2
/* 088084 800EEBD4 3C028010 */ lui $v0, 0x8010
/* 088088 800EEBD8 00431021 */ addu $v0, $v0, $v1
/* 08808C 800EEBDC 8C428354 */ lw $v0, -0x7cac($v0)
/* 088090 800EEBE0 AE020028 */ sw $v0, 0x28($s0)
.L800EEBE4:
/* 088094 800EEBE4 8E06000C */ lw $a2, 0xc($s0)
/* 088098 800EEBE8 8E050018 */ lw $a1, 0x18($s0)
/* 08809C 800EEBEC 0C00EA95 */ jal npc_move_heading
/* 0880A0 800EEBF0 0200202D */ daddu $a0, $s0, $zero
/* 0880A4 800EEBF4 8602008E */ lh $v0, 0x8e($s0)
/* 0880A8 800EEBF8 3C014120 */ lui $at, 0x4120
/* 0880AC 800EEBFC 44811000 */ mtc1 $at, $f2
/* 0880B0 800EEC00 44820000 */ mtc1 $v0, $f0
/* 0880B4 800EEC04 00000000 */ nop
/* 0880B8 800EEC08 46800020 */ cvt.s.w $f0, $f0
/* 0880BC 800EEC0C 4600103C */ c.lt.s $f2, $f0
/* 0880C0 800EEC10 00000000 */ nop
/* 0880C4 800EEC14 45030001 */ bc1tl .L800EEC1C
/* 0880C8 800EEC18 46001006 */ mov.s $f0, $f2
.L800EEC1C:
/* 0880CC 800EEC1C 9602008E */ lhu $v0, 0x8e($s0)
/* 0880D0 800EEC20 46020003 */ div.s $f0, $f0, $f2
/* 0880D4 800EEC24 E6000054 */ swc1 $f0, 0x54($s0)
/* 0880D8 800EEC28 46000086 */ mov.s $f2, $f0
/* 0880DC 800EEC2C E6000058 */ swc1 $f0, 0x58($s0)
/* 0880E0 800EEC30 E602005C */ swc1 $f2, 0x5c($s0)
/* 0880E4 800EEC34 2442FFFF */ addiu $v0, $v0, -1
/* 0880E8 800EEC38 A602008E */ sh $v0, 0x8e($s0)
/* 0880EC 800EEC3C 00021400 */ sll $v0, $v0, 0x10
/* 0880F0 800EEC40 04410014 */ bgez $v0, .L800EEC94
/* 0880F4 800EEC44 0000102D */ daddu $v0, $zero, $zero
/* 0880F8 800EEC48 24020002 */ addiu $v0, $zero, 2
/* 0880FC 800EEC4C 0803BB24 */ j .L800EEC90
/* 088100 800EEC50 A6220000 */ sh $v0, ($s1)
.L800EEC54:
/* 088104 800EEC54 3C038011 */ lui $v1, 0x8011
/* 088108 800EEC58 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 08810C 800EEC5C C6000064 */ lwc1 $f0, 0x64($s0)
/* 088110 800EEC60 000310C0 */ sll $v0, $v1, 3
/* 088114 800EEC64 00431021 */ addu $v0, $v0, $v1
/* 088118 800EEC68 00021080 */ sll $v0, $v0, 2
/* 08811C 800EEC6C 3C018010 */ lui $at, 0x8010
/* 088120 800EEC70 00220821 */ addu $at, $at, $v0
/* 088124 800EEC74 8C228358 */ lw $v0, -0x7ca8($at)
/* 088128 800EEC78 AC80001C */ sw $zero, 0x1c($a0)
/* 08812C 800EEC7C E480003C */ swc1 $f0, 0x3c($a0)
/* 088130 800EEC80 0C00EB6B */ jal disable_npc_blur
/* 088134 800EEC84 AC820028 */ sw $v0, 0x28($a0)
/* 088138 800EEC88 0803BB25 */ j .L800EEC94
/* 08813C 800EEC8C 24020001 */ addiu $v0, $zero, 1
.L800EEC90:
/* 088140 800EEC90 0000102D */ daddu $v0, $zero, $zero
.L800EEC94:
/* 088144 800EEC94 8FBF001C */ lw $ra, 0x1c($sp)
/* 088148 800EEC98 8FB20018 */ lw $s2, 0x18($sp)
/* 08814C 800EEC9C 8FB10014 */ lw $s1, 0x14($sp)
/* 088150 800EECA0 8FB00010 */ lw $s0, 0x10($sp)
/* 088154 800EECA4 D7BE0048 */ ldc1 $f30, 0x48($sp)
/* 088158 800EECA8 D7BC0040 */ ldc1 $f28, 0x40($sp)
/* 08815C 800EECAC D7BA0038 */ ldc1 $f26, 0x38($sp)
/* 088160 800EECB0 D7B80030 */ ldc1 $f24, 0x30($sp)
/* 088164 800EECB4 D7B60028 */ ldc1 $f22, 0x28($sp)
/* 088168 800EECB8 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 08816C 800EECBC 03E00008 */ jr $ra
/* 088170 800EECC0 27BD0050 */ addiu $sp, $sp, 0x50
/* 088174 800EECC4 8C830000 */ lw $v1, ($a0)
/* 088178 800EECC8 3C020001 */ lui $v0, 1
/* 08817C 800EECCC AC820080 */ sw $v0, 0x80($a0)
/* 088180 800EECD0 0000102D */ daddu $v0, $zero, $zero
/* 088184 800EECD4 3C018011 */ lui $at, 0x8011
/* 088188 800EECD8 A420CFC8 */ sh $zero, -0x3038($at)
/* 08818C 800EECDC 34630100 */ ori $v1, $v1, 0x100
/* 088190 800EECE0 03E00008 */ jr $ra
/* 088194 800EECE4 AC830000 */ sw $v1, ($a0)
/* 088198 800EECE8 27BDFF90 */ addiu $sp, $sp, -0x70
/* 08819C 800EECEC AFB00030 */ sw $s0, 0x30($sp)
/* 0881A0 800EECF0 0080802D */ daddu $s0, $a0, $zero
/* 0881A4 800EECF4 AFB10034 */ sw $s1, 0x34($sp)
/* 0881A8 800EECF8 3C118011 */ lui $s1, 0x8011
/* 0881AC 800EECFC 2631EFC8 */ addiu $s1, $s1, -0x1038
/* 0881B0 800EED00 3C038007 */ lui $v1, 0x8007
/* 0881B4 800EED04 8C637410 */ lw $v1, 0x7410($v1)
/* 0881B8 800EED08 3C04800B */ lui $a0, 0x800b
/* 0881BC 800EED0C 24841D80 */ addiu $a0, $a0, 0x1d80
/* 0881C0 800EED10 AFB3003C */ sw $s3, 0x3c($sp)
/* 0881C4 800EED14 3C138011 */ lui $s3, 0x8011
/* 0881C8 800EED18 2673CFC8 */ addiu $s3, $s3, -0x3038
/* 0881CC 800EED1C AFBF0048 */ sw $ra, 0x48($sp)
/* 0881D0 800EED20 AFB50044 */ sw $s5, 0x44($sp)
/* 0881D4 800EED24 AFB40040 */ sw $s4, 0x40($sp)
/* 0881D8 800EED28 AFB20038 */ sw $s2, 0x38($sp)
/* 0881DC 800EED2C F7BA0068 */ sdc1 $f26, 0x68($sp)
/* 0881E0 800EED30 F7B80060 */ sdc1 $f24, 0x60($sp)
/* 0881E4 800EED34 F7B60058 */ sdc1 $f22, 0x58($sp)
/* 0881E8 800EED38 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 0881EC 800EED3C 00031080 */ sll $v0, $v1, 2
/* 0881F0 800EED40 00431021 */ addu $v0, $v0, $v1
/* 0881F4 800EED44 00021080 */ sll $v0, $v0, 2
/* 0881F8 800EED48 00431023 */ subu $v0, $v0, $v1
/* 0881FC 800EED4C 000218C0 */ sll $v1, $v0, 3
/* 088200 800EED50 00431021 */ addu $v0, $v0, $v1
/* 088204 800EED54 000210C0 */ sll $v0, $v0, 3
/* 088208 800EED58 00449021 */ addu $s2, $v0, $a0
/* 08820C 800EED5C 86630000 */ lh $v1, ($s3)
/* 088210 800EED60 24020001 */ addiu $v0, $zero, 1
/* 088214 800EED64 106200E6 */ beq $v1, $v0, .L800EF100
/* 088218 800EED68 28620002 */ slti $v0, $v1, 2
/* 08821C 800EED6C 10400005 */ beqz $v0, .L800EED84
/* 088220 800EED70 24020002 */ addiu $v0, $zero, 2
/* 088224 800EED74 10600007 */ beqz $v1, .L800EED94
/* 088228 800EED78 0000102D */ daddu $v0, $zero, $zero
/* 08822C 800EED7C 0803BCB3 */ j .L800EF2CC
/* 088230 800EED80 00000000 */ nop
.L800EED84:
/* 088234 800EED84 10620123 */ beq $v1, $v0, .L800EF214
/* 088238 800EED88 0000102D */ daddu $v0, $zero, $zero
/* 08823C 800EED8C 0803BCB3 */ j .L800EF2CC
/* 088240 800EED90 00000000 */ nop
.L800EED94:
/* 088244 800EED94 0C00A6C9 */ jal clamp_angle
/* 088248 800EED98 C62C00A8 */ lwc1 $f12, 0xa8($s1)
/* 08824C 800EED9C 3C014334 */ lui $at, 0x4334
/* 088250 800EEDA0 44811000 */ mtc1 $at, $f2
/* 088254 800EEDA4 00000000 */ nop
/* 088258 800EEDA8 4602003C */ c.lt.s $f0, $f2
/* 08825C 800EEDAC 00000000 */ nop
/* 088260 800EEDB0 45000006 */ bc1f .L800EEDCC
/* 088264 800EEDB4 00000000 */ nop
/* 088268 800EEDB8 C640006C */ lwc1 $f0, 0x6c($s2)
/* 08826C 800EEDBC 3C0142B4 */ lui $at, 0x42b4
/* 088270 800EEDC0 44816000 */ mtc1 $at, $f12
/* 088274 800EEDC4 0803BB78 */ j .L800EEDE0
/* 088278 800EEDC8 460C0300 */ add.s $f12, $f0, $f12
.L800EEDCC:
/* 08827C 800EEDCC C640006C */ lwc1 $f0, 0x6c($s2)
/* 088280 800EEDD0 3C0142B4 */ lui $at, 0x42b4
/* 088284 800EEDD4 44816000 */ mtc1 $at, $f12
/* 088288 800EEDD8 00000000 */ nop
/* 08828C 800EEDDC 460C0301 */ sub.s $f12, $f0, $f12
.L800EEDE0:
/* 088290 800EEDE0 0C00A6C9 */ jal clamp_angle
/* 088294 800EEDE4 00000000 */ nop
/* 088298 800EEDE8 E600000C */ swc1 $f0, 0xc($s0)
/* 08829C 800EEDEC C6200028 */ lwc1 $f0, 0x28($s1)
/* 0882A0 800EEDF0 3C128011 */ lui $s2, 0x8011
/* 0882A4 800EEDF4 2652CFEC */ addiu $s2, $s2, -0x3014
/* 0882A8 800EEDF8 E6000060 */ swc1 $f0, 0x60($s0)
/* 0882AC 800EEDFC C620002C */ lwc1 $f0, 0x2c($s1)
/* 0882B0 800EEE00 8E420000 */ lw $v0, ($s2)
/* 0882B4 800EEE04 E6000064 */ swc1 $f0, 0x64($s0)
/* 0882B8 800EEE08 8C42000C */ lw $v0, 0xc($v0)
/* 0882BC 800EEE0C 10400003 */ beqz $v0, .L800EEE1C
/* 0882C0 800EEE10 26040060 */ addiu $a0, $s0, 0x60
/* 0882C4 800EEE14 C620002C */ lwc1 $f0, 0x2c($s1)
/* 0882C8 800EEE18 E6000064 */ swc1 $f0, 0x64($s0)
.L800EEE1C:
/* 0882CC 800EEE1C C6200030 */ lwc1 $f0, 0x30($s1)
/* 0882D0 800EEE20 E6000068 */ swc1 $f0, 0x68($s0)
/* 0882D4 800EEE24 862200B2 */ lh $v0, 0xb2($s1)
/* 0882D8 800EEE28 8E07000C */ lw $a3, 0xc($s0)
/* 0882DC 800EEE2C 44825000 */ mtc1 $v0, $f10
/* 0882E0 800EEE30 00000000 */ nop
/* 0882E4 800EEE34 468052A0 */ cvt.s.w $f10, $f10
/* 0882E8 800EEE38 44065000 */ mfc1 $a2, $f10
/* 0882EC 800EEE3C 0C00A7E7 */ jal add_vec2D_polar
/* 0882F0 800EEE40 26050068 */ addiu $a1, $s0, 0x68
/* 0882F4 800EEE44 C6160060 */ lwc1 $f22, 0x60($s0)
/* 0882F8 800EEE48 8E420000 */ lw $v0, ($s2)
/* 0882FC 800EEE4C C61A0064 */ lwc1 $f26, 0x64($s0)
/* 088300 800EEE50 8C42000C */ lw $v0, 0xc($v0)
/* 088304 800EEE54 C6140068 */ lwc1 $f20, 0x68($s0)
/* 088308 800EEE58 14400052 */ bnez $v0, .L800EEFA4
/* 08830C 800EEE5C 27B20020 */ addiu $s2, $sp, 0x20
/* 088310 800EEE60 0240202D */ daddu $a0, $s2, $zero
/* 088314 800EEE64 27B30024 */ addiu $s3, $sp, 0x24
/* 088318 800EEE68 0260282D */ daddu $a1, $s3, $zero
/* 08831C 800EEE6C 3C158007 */ lui $s5, 0x8007
/* 088320 800EEE70 26B57410 */ addiu $s5, $s5, 0x7410
/* 088324 800EEE74 8EA30000 */ lw $v1, ($s5)
/* 088328 800EEE78 3C014000 */ lui $at, 0x4000
/* 08832C 800EEE7C 4481C000 */ mtc1 $at, $f24
/* 088330 800EEE80 00031080 */ sll $v0, $v1, 2
/* 088334 800EEE84 00431021 */ addu $v0, $v0, $v1
/* 088338 800EEE88 00021080 */ sll $v0, $v0, 2
/* 08833C 800EEE8C 00431023 */ subu $v0, $v0, $v1
/* 088340 800EEE90 000218C0 */ sll $v1, $v0, 3
/* 088344 800EEE94 00431021 */ addu $v0, $v0, $v1
/* 088348 800EEE98 000210C0 */ sll $v0, $v0, 3
/* 08834C 800EEE9C 4406C000 */ mfc1 $a2, $f24
/* 088350 800EEEA0 860300A8 */ lh $v1, 0xa8($s0)
/* 088354 800EEEA4 3C07800B */ lui $a3, 0x800b
/* 088358 800EEEA8 00E23821 */ addu $a3, $a3, $v0
/* 08835C 800EEEAC 8CE71DEC */ lw $a3, 0x1dec($a3)
/* 088360 800EEEB0 44830000 */ mtc1 $v1, $f0
/* 088364 800EEEB4 00000000 */ nop
/* 088368 800EEEB8 46800020 */ cvt.s.w $f0, $f0
/* 08836C 800EEEBC 4600D000 */ add.s $f0, $f26, $f0
/* 088370 800EEEC0 E7B60020 */ swc1 $f22, 0x20($sp)
/* 088374 800EEEC4 E7B40024 */ swc1 $f20, 0x24($sp)
/* 088378 800EEEC8 0C00A7E7 */ jal add_vec2D_polar
/* 08837C 800EEECC E7A00028 */ swc1 $f0, 0x28($sp)
/* 088380 800EEED0 3C040001 */ lui $a0, 1
/* 088384 800EEED4 0240282D */ daddu $a1, $s2, $zero
/* 088388 800EEED8 27A2002C */ addiu $v0, $sp, 0x2c
/* 08838C 800EEEDC 3C01447A */ lui $at, 0x447a
/* 088390 800EEEE0 44810000 */ mtc1 $at, $f0
/* 088394 800EEEE4 27A60028 */ addiu $a2, $sp, 0x28
/* 088398 800EEEE8 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 08839C 800EEEEC AFA20010 */ sw $v0, 0x10($sp)
/* 0883A0 800EEEF0 C600000C */ lwc1 $f0, 0xc($s0)
/* 0883A4 800EEEF4 0260382D */ daddu $a3, $s3, $zero
/* 0883A8 800EEEF8 E7A00014 */ swc1 $f0, 0x14($sp)
/* 0883AC 800EEEFC 860200A6 */ lh $v0, 0xa6($s0)
/* 0883B0 800EEF00 3C14800B */ lui $s4, 0x800b
/* 0883B4 800EEF04 26941D80 */ addiu $s4, $s4, 0x1d80
/* 0883B8 800EEF08 44820000 */ mtc1 $v0, $f0
/* 0883BC 800EEF0C 00000000 */ nop
/* 0883C0 800EEF10 46800020 */ cvt.s.w $f0, $f0
/* 0883C4 800EEF14 0C0371DE */ jal func_800DC778
/* 0883C8 800EEF18 E7A00018 */ swc1 $f0, 0x18($sp)
/* 0883CC 800EEF1C 10400011 */ beqz $v0, .L800EEF64
/* 0883D0 800EEF20 0240202D */ daddu $a0, $s2, $zero
/* 0883D4 800EEF24 3C048011 */ lui $a0, 0x8011
/* 0883D8 800EEF28 8C84C978 */ lw $a0, -0x3688($a0)
/* 0883DC 800EEF2C 0C016F6A */ jal get_collider_type_by_id
/* 0883E0 800EEF30 00000000 */ nop
/* 0883E4 800EEF34 2442FFFE */ addiu $v0, $v0, -2
/* 0883E8 800EEF38 2C420002 */ sltiu $v0, $v0, 2
/* 0883EC 800EEF3C 14400009 */ bnez $v0, .L800EEF64
/* 0883F0 800EEF40 0240202D */ daddu $a0, $s2, $zero
/* 0883F4 800EEF44 C7A2002C */ lwc1 $f2, 0x2c($sp)
/* 0883F8 800EEF48 3C0142C8 */ lui $at, 0x42c8
/* 0883FC 800EEF4C 44810000 */ mtc1 $at, $f0
/* 088400 800EEF50 00000000 */ nop
/* 088404 800EEF54 4602003C */ c.lt.s $f0, $f2
/* 088408 800EEF58 00000000 */ nop
/* 08840C 800EEF5C 45000011 */ bc1f .L800EEFA4
/* 088410 800EEF60 00000000 */ nop
.L800EEF64:
/* 088414 800EEF64 C6360028 */ lwc1 $f22, 0x28($s1)
/* 088418 800EEF68 C63A002C */ lwc1 $f26, 0x2c($s1)
/* 08841C 800EEF6C 8EA20000 */ lw $v0, ($s5)
/* 088420 800EEF70 4406C000 */ mfc1 $a2, $f24
/* 088424 800EEF74 00021880 */ sll $v1, $v0, 2
/* 088428 800EEF78 00621821 */ addu $v1, $v1, $v0
/* 08842C 800EEF7C 00031880 */ sll $v1, $v1, 2
/* 088430 800EEF80 00621823 */ subu $v1, $v1, $v0
/* 088434 800EEF84 000310C0 */ sll $v0, $v1, 3
/* 088438 800EEF88 00621821 */ addu $v1, $v1, $v0
/* 08843C 800EEF8C 000318C0 */ sll $v1, $v1, 3
/* 088440 800EEF90 00741821 */ addu $v1, $v1, $s4
/* 088444 800EEF94 8C67006C */ lw $a3, 0x6c($v1)
/* 088448 800EEF98 C6340030 */ lwc1 $f20, 0x30($s1)
/* 08844C 800EEF9C 0C00A7E7 */ jal add_vec2D_polar
/* 088450 800EEFA0 0260282D */ daddu $a1, $s3, $zero
.L800EEFA4:
/* 088454 800EEFA4 C62C0028 */ lwc1 $f12, 0x28($s1)
/* 088458 800EEFA8 4406B000 */ mfc1 $a2, $f22
/* 08845C 800EEFAC 4407A000 */ mfc1 $a3, $f20
/* 088460 800EEFB0 3C013F99 */ lui $at, 0x3f99
/* 088464 800EEFB4 3421999A */ ori $at, $at, 0x999a
/* 088468 800EEFB8 44812000 */ mtc1 $at, $f4
/* 08846C 800EEFBC E60C0038 */ swc1 $f12, 0x38($s0)
/* 088470 800EEFC0 962200B0 */ lhu $v0, 0xb0($s1)
/* 088474 800EEFC4 C622002C */ lwc1 $f2, 0x2c($s1)
/* 088478 800EEFC8 00021400 */ sll $v0, $v0, 0x10
/* 08847C 800EEFCC 00021C03 */ sra $v1, $v0, 0x10
/* 088480 800EEFD0 000217C2 */ srl $v0, $v0, 0x1f
/* 088484 800EEFD4 00621821 */ addu $v1, $v1, $v0
/* 088488 800EEFD8 00031843 */ sra $v1, $v1, 1
/* 08848C 800EEFDC 44830000 */ mtc1 $v1, $f0
/* 088490 800EEFE0 00000000 */ nop
/* 088494 800EEFE4 46800020 */ cvt.s.w $f0, $f0
/* 088498 800EEFE8 46001080 */ add.s $f2, $f2, $f0
/* 08849C 800EEFEC 3C014080 */ lui $at, 0x4080
/* 0884A0 800EEFF0 44810000 */ mtc1 $at, $f0
/* 0884A4 800EEFF4 E602003C */ swc1 $f2, 0x3c($s0)
/* 0884A8 800EEFF8 C62E0030 */ lwc1 $f14, 0x30($s1)
/* 0884AC 800EEFFC E7AC0020 */ swc1 $f12, 0x20($sp)
/* 0884B0 800EF000 E7A20028 */ swc1 $f2, 0x28($sp)
/* 0884B4 800EF004 E6000018 */ swc1 $f0, 0x18($s0)
/* 0884B8 800EF008 E6040014 */ swc1 $f4, 0x14($s0)
/* 0884BC 800EF00C E60E0040 */ swc1 $f14, 0x40($s0)
/* 0884C0 800EF010 0C00A7B5 */ jal dist2D
/* 0884C4 800EF014 E7AE0024 */ swc1 $f14, 0x24($sp)
/* 0884C8 800EF018 C7AC0020 */ lwc1 $f12, 0x20($sp)
/* 0884CC 800EF01C C7AE0024 */ lwc1 $f14, 0x24($sp)
/* 0884D0 800EF020 4406B000 */ mfc1 $a2, $f22
/* 0884D4 800EF024 4407A000 */ mfc1 $a3, $f20
/* 0884D8 800EF028 0C00A720 */ jal atan2
/* 0884DC 800EF02C E6000010 */ swc1 $f0, 0x10($s0)
/* 0884E0 800EF030 C6020010 */ lwc1 $f2, 0x10($s0)
/* 0884E4 800EF034 C6040018 */ lwc1 $f4, 0x18($s0)
/* 0884E8 800EF038 E600000C */ swc1 $f0, 0xc($s0)
/* 0884EC 800EF03C 46041083 */ div.s $f2, $f2, $f4
/* 0884F0 800EF040 4600128D */ trunc.w.s $f10, $f2
/* 0884F4 800EF044 44025000 */ mfc1 $v0, $f10
/* 0884F8 800EF048 00000000 */ nop
/* 0884FC 800EF04C A602008E */ sh $v0, 0x8e($s0)
/* 088500 800EF050 00021400 */ sll $v0, $v0, 0x10
/* 088504 800EF054 00021403 */ sra $v0, $v0, 0x10
/* 088508 800EF058 2842000A */ slti $v0, $v0, 0xa
/* 08850C 800EF05C 10400007 */ beqz $v0, .L800EF07C
/* 088510 800EF060 2402000A */ addiu $v0, $zero, 0xa
/* 088514 800EF064 3C014120 */ lui $at, 0x4120
/* 088518 800EF068 44810000 */ mtc1 $at, $f0
/* 08851C 800EF06C C6020010 */ lwc1 $f2, 0x10($s0)
/* 088520 800EF070 A602008E */ sh $v0, 0x8e($s0)
/* 088524 800EF074 46001083 */ div.s $f2, $f2, $f0
/* 088528 800EF078 E6020018 */ swc1 $f2, 0x18($s0)
.L800EF07C:
/* 08852C 800EF07C 8602008E */ lh $v0, 0x8e($s0)
/* 088530 800EF080 C6000014 */ lwc1 $f0, 0x14($s0)
/* 088534 800EF084 44822000 */ mtc1 $v0, $f4
/* 088538 800EF088 00000000 */ nop
/* 08853C 800EF08C 46802120 */ cvt.s.w $f4, $f4
/* 088540 800EF090 46040002 */ mul.s $f0, $f0, $f4
/* 088544 800EF094 00000000 */ nop
/* 088548 800EF098 46040002 */ mul.s $f0, $f0, $f4
/* 08854C 800EF09C 00000000 */ nop
/* 088550 800EF0A0 3C013F00 */ lui $at, 0x3f00
/* 088554 800EF0A4 44811000 */ mtc1 $at, $f2
/* 088558 800EF0A8 00000000 */ nop
/* 08855C 800EF0AC 46020002 */ mul.s $f0, $f0, $f2
/* 088560 800EF0B0 00000000 */ nop
/* 088564 800EF0B4 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 088568 800EF0B8 3C038011 */ lui $v1, 0x8011
/* 08856C 800EF0BC 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 088570 800EF0C0 4602D081 */ sub.s $f2, $f26, $f2
/* 088574 800EF0C4 000310C0 */ sll $v0, $v1, 3
/* 088578 800EF0C8 46001000 */ add.s $f0, $f2, $f0
/* 08857C 800EF0CC 00431021 */ addu $v0, $v0, $v1
/* 088580 800EF0D0 00021080 */ sll $v0, $v0, 2
/* 088584 800EF0D4 46040003 */ div.s $f0, $f0, $f4
/* 088588 800EF0D8 E600001C */ swc1 $f0, 0x1c($s0)
/* 08858C 800EF0DC 3C038010 */ lui $v1, 0x8010
/* 088590 800EF0E0 00621821 */ addu $v1, $v1, $v0
/* 088594 800EF0E4 8C638350 */ lw $v1, -0x7cb0($v1)
/* 088598 800EF0E8 24020001 */ addiu $v0, $zero, 1
/* 08859C 800EF0EC 3C018011 */ lui $at, 0x8011
/* 0885A0 800EF0F0 A422CFC8 */ sh $v0, -0x3038($at)
/* 0885A4 800EF0F4 E7A20028 */ swc1 $f2, 0x28($sp)
/* 0885A8 800EF0F8 0803BCB2 */ j .L800EF2C8
/* 0885AC 800EF0FC AE030028 */ sw $v1, 0x28($s0)
.L800EF100:
/* 0885B0 800EF100 C602001C */ lwc1 $f2, 0x1c($s0)
/* 0885B4 800EF104 44800000 */ mtc1 $zero, $f0
/* 0885B8 800EF108 00000000 */ nop
/* 0885BC 800EF10C 4600103C */ c.lt.s $f2, $f0
/* 0885C0 800EF110 00000000 */ nop
/* 0885C4 800EF114 45000009 */ bc1f .L800EF13C
/* 0885C8 800EF118 00000000 */ nop
/* 0885CC 800EF11C 46001085 */ abs.s $f2, $f2
/* 0885D0 800EF120 44051000 */ mfc1 $a1, $f2
/* 0885D4 800EF124 0C00E5FA */ jal func_800397E8
/* 0885D8 800EF128 0200202D */ daddu $a0, $s0, $zero
/* 0885DC 800EF12C 10400003 */ beqz $v0, .L800EF13C
/* 0885E0 800EF130 24020002 */ addiu $v0, $zero, 2
/* 0885E4 800EF134 0803BCB2 */ j .L800EF2C8
/* 0885E8 800EF138 A6620000 */ sh $v0, ($s3)
.L800EF13C:
/* 0885EC 800EF13C C600001C */ lwc1 $f0, 0x1c($s0)
/* 0885F0 800EF140 C6020014 */ lwc1 $f2, 0x14($s0)
/* 0885F4 800EF144 46020001 */ sub.s $f0, $f0, $f2
/* 0885F8 800EF148 C602003C */ lwc1 $f2, 0x3c($s0)
/* 0885FC 800EF14C E600001C */ swc1 $f0, 0x1c($s0)
/* 088600 800EF150 46000106 */ mov.s $f4, $f0
/* 088604 800EF154 46001080 */ add.s $f2, $f2, $f0
/* 088608 800EF158 44800000 */ mtc1 $zero, $f0
/* 08860C 800EF15C 00000000 */ nop
/* 088610 800EF160 4600203E */ c.le.s $f4, $f0
/* 088614 800EF164 00000000 */ nop
/* 088618 800EF168 4500000A */ bc1f .L800EF194
/* 08861C 800EF16C E602003C */ swc1 $f2, 0x3c($s0)
/* 088620 800EF170 3C028011 */ lui $v0, 0x8011
/* 088624 800EF174 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 088628 800EF178 000218C0 */ sll $v1, $v0, 3
/* 08862C 800EF17C 00621821 */ addu $v1, $v1, $v0
/* 088630 800EF180 00031880 */ sll $v1, $v1, 2
/* 088634 800EF184 3C028010 */ lui $v0, 0x8010
/* 088638 800EF188 00431021 */ addu $v0, $v0, $v1
/* 08863C 800EF18C 8C428354 */ lw $v0, -0x7cac($v0)
/* 088640 800EF190 AE020028 */ sw $v0, 0x28($s0)
.L800EF194:
/* 088644 800EF194 8E050018 */ lw $a1, 0x18($s0)
/* 088648 800EF198 8E06000C */ lw $a2, 0xc($s0)
/* 08864C 800EF19C 0C00EA95 */ jal npc_move_heading
/* 088650 800EF1A0 0200202D */ daddu $a0, $s0, $zero
/* 088654 800EF1A4 0C00E2BF */ jal func_80038AFC
/* 088658 800EF1A8 0200202D */ daddu $a0, $s0, $zero
/* 08865C 800EF1AC 8602008E */ lh $v0, 0x8e($s0)
/* 088660 800EF1B0 3C014120 */ lui $at, 0x4120
/* 088664 800EF1B4 44811000 */ mtc1 $at, $f2
/* 088668 800EF1B8 44820000 */ mtc1 $v0, $f0
/* 08866C 800EF1BC 00000000 */ nop
/* 088670 800EF1C0 46800020 */ cvt.s.w $f0, $f0
/* 088674 800EF1C4 4600103C */ c.lt.s $f2, $f0
/* 088678 800EF1C8 00000000 */ nop
/* 08867C 800EF1CC 45030001 */ bc1tl .L800EF1D4
/* 088680 800EF1D0 46001006 */ mov.s $f0, $f2
.L800EF1D4:
/* 088684 800EF1D4 9602008E */ lhu $v0, 0x8e($s0)
/* 088688 800EF1D8 46001001 */ sub.s $f0, $f2, $f0
/* 08868C 800EF1DC 2442FFFF */ addiu $v0, $v0, -1
/* 088690 800EF1E0 A602008E */ sh $v0, 0x8e($s0)
/* 088694 800EF1E4 00021400 */ sll $v0, $v0, 0x10
/* 088698 800EF1E8 46020003 */ div.s $f0, $f0, $f2
/* 08869C 800EF1EC E6000054 */ swc1 $f0, 0x54($s0)
/* 0886A0 800EF1F0 46000086 */ mov.s $f2, $f0
/* 0886A4 800EF1F4 E6000058 */ swc1 $f0, 0x58($s0)
/* 0886A8 800EF1F8 04410033 */ bgez $v0, .L800EF2C8
/* 0886AC 800EF1FC E602005C */ swc1 $f2, 0x5c($s0)
/* 0886B0 800EF200 24020002 */ addiu $v0, $zero, 2
/* 0886B4 800EF204 3C018011 */ lui $at, 0x8011
/* 0886B8 800EF208 A422CFC8 */ sh $v0, -0x3038($at)
/* 0886BC 800EF20C 0803BCB3 */ j .L800EF2CC
/* 0886C0 800EF210 0000102D */ daddu $v0, $zero, $zero
.L800EF214:
/* 0886C4 800EF214 C6000064 */ lwc1 $f0, 0x64($s0)
/* 0886C8 800EF218 C6060038 */ lwc1 $f6, 0x38($s0)
/* 0886CC 800EF21C C6020040 */ lwc1 $f2, 0x40($s0)
/* 0886D0 800EF220 E600003C */ swc1 $f0, 0x3c($s0)
/* 0886D4 800EF224 3C013F80 */ lui $at, 0x3f80
/* 0886D8 800EF228 44810000 */ mtc1 $at, $f0
/* 0886DC 800EF22C C608003C */ lwc1 $f8, 0x3c($s0)
/* 0886E0 800EF230 3C128011 */ lui $s2, 0x8011
/* 0886E4 800EF234 2652CFEC */ addiu $s2, $s2, -0x3014
/* 0886E8 800EF238 AE00001C */ sw $zero, 0x1c($s0)
/* 0886EC 800EF23C E6060060 */ swc1 $f6, 0x60($s0)
/* 0886F0 800EF240 E6020068 */ swc1 $f2, 0x68($s0)
/* 0886F4 800EF244 E6000054 */ swc1 $f0, 0x54($s0)
/* 0886F8 800EF248 E6000058 */ swc1 $f0, 0x58($s0)
/* 0886FC 800EF24C E600005C */ swc1 $f0, 0x5c($s0)
/* 088700 800EF250 E6080064 */ swc1 $f8, 0x64($s0)
/* 088704 800EF254 C620002C */ lwc1 $f0, 0x2c($s1)
/* 088708 800EF258 8E420000 */ lw $v0, ($s2)
/* 08870C 800EF25C E600003C */ swc1 $f0, 0x3c($s0)
/* 088710 800EF260 8C42000C */ lw $v0, 0xc($v0)
/* 088714 800EF264 10400003 */ beqz $v0, .L800EF274
/* 088718 800EF268 46003106 */ mov.s $f4, $f6
/* 08871C 800EF26C C620002C */ lwc1 $f0, 0x2c($s1)
/* 088720 800EF270 E600003C */ swc1 $f0, 0x3c($s0)
.L800EF274:
/* 088724 800EF274 C6000040 */ lwc1 $f0, 0x40($s0)
/* 088728 800EF278 0C03BD17 */ jal clear_partner_move_history
/* 08872C 800EF27C 0200202D */ daddu $a0, $s0, $zero
/* 088730 800EF280 C6000060 */ lwc1 $f0, 0x60($s0)
/* 088734 800EF284 C6020064 */ lwc1 $f2, 0x64($s0)
/* 088738 800EF288 8E020000 */ lw $v0, ($s0)
/* 08873C 800EF28C C6040068 */ lwc1 $f4, 0x68($s0)
/* 088740 800EF290 30421000 */ andi $v0, $v0, 0x1000
/* 088744 800EF294 E6000038 */ swc1 $f0, 0x38($s0)
/* 088748 800EF298 E602003C */ swc1 $f2, 0x3c($s0)
/* 08874C 800EF29C 10400008 */ beqz $v0, .L800EF2C0
/* 088750 800EF2A0 E6040040 */ swc1 $f4, 0x40($s0)
/* 088754 800EF2A4 8E420000 */ lw $v0, ($s2)
/* 088758 800EF2A8 8C42000C */ lw $v0, 0xc($v0)
/* 08875C 800EF2AC 14400007 */ bnez $v0, .L800EF2CC
/* 088760 800EF2B0 24020001 */ addiu $v0, $zero, 1
/* 088764 800EF2B4 0200202D */ daddu $a0, $s0, $zero
/* 088768 800EF2B8 0C00F598 */ jal func_8003D660
/* 08876C 800EF2BC 24050002 */ addiu $a1, $zero, 2
.L800EF2C0:
/* 088770 800EF2C0 0803BCB3 */ j .L800EF2CC
/* 088774 800EF2C4 24020001 */ addiu $v0, $zero, 1
.L800EF2C8:
/* 088778 800EF2C8 0000102D */ daddu $v0, $zero, $zero
.L800EF2CC:
/* 08877C 800EF2CC 8FBF0048 */ lw $ra, 0x48($sp)
/* 088780 800EF2D0 8FB50044 */ lw $s5, 0x44($sp)
/* 088784 800EF2D4 8FB40040 */ lw $s4, 0x40($sp)
/* 088788 800EF2D8 8FB3003C */ lw $s3, 0x3c($sp)
/* 08878C 800EF2DC 8FB20038 */ lw $s2, 0x38($sp)
/* 088790 800EF2E0 8FB10034 */ lw $s1, 0x34($sp)
/* 088794 800EF2E4 8FB00030 */ lw $s0, 0x30($sp)
/* 088798 800EF2E8 D7BA0068 */ ldc1 $f26, 0x68($sp)
/* 08879C 800EF2EC D7B80060 */ ldc1 $f24, 0x60($sp)
/* 0887A0 800EF2F0 D7B60058 */ ldc1 $f22, 0x58($sp)
/* 0887A4 800EF2F4 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 0887A8 800EF2F8 03E00008 */ jr $ra
/* 0887AC 800EF2FC 27BD0070 */ addiu $sp, $sp, 0x70