papermario/asm/nonmatchings/code_838b0_len_5900/func_800EBC74.s

1553 lines
73 KiB
ArmAsm
Raw Normal View History

2020-08-04 08:49:11 +02:00
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800EBC74
/* 085124 800EBC74 3C038011 */ lui $v1, 0x8011
/* 085128 800EBC78 8463CFC8 */ lh $v1, -0x3038($v1)
/* 08512C 800EBC7C 27BDFF98 */ addiu $sp, $sp, -0x68
/* 085130 800EBC80 AFB1003C */ sw $s1, 0x3c($sp)
/* 085134 800EBC84 AFB30044 */ sw $s3, 0x44($sp)
/* 085138 800EBC88 3C138011 */ lui $s3, 0x8011
/* 08513C 800EBC8C 2673EFC8 */ addiu $s3, $s3, -0x1038
/* 085140 800EBC90 AFB5004C */ sw $s5, 0x4c($sp)
/* 085144 800EBC94 3C15800B */ lui $s5, 0x800b
/* 085148 800EBC98 26B51D80 */ addiu $s5, $s5, 0x1d80
/* 08514C 800EBC9C AFBF0050 */ sw $ra, 0x50($sp)
/* 085150 800EBCA0 AFB40048 */ sw $s4, 0x48($sp)
/* 085154 800EBCA4 AFB20040 */ sw $s2, 0x40($sp)
/* 085158 800EBCA8 AFB00038 */ sw $s0, 0x38($sp)
/* 08515C 800EBCAC F7B60060 */ sdc1 $f22, 0x60($sp)
/* 085160 800EBCB0 F7B40058 */ sdc1 $f20, 0x58($sp)
/* 085164 800EBCB4 2C620033 */ sltiu $v0, $v1, 0x33
/* 085168 800EBCB8 1040058A */ beqz $v0, .L800ED2E4
/* 08516C 800EBCBC 0080882D */ daddu $s1, $a0, $zero
/* 085170 800EBCC0 00031080 */ sll $v0, $v1, 2
/* 085174 800EBCC4 3C018011 */ lui $at, 0x8011
/* 085178 800EBCC8 00220821 */ addu $at, $at, $v0
/* 08517C 800EBCCC 8C22C148 */ lw $v0, -0x3eb8($at)
/* 085180 800EBCD0 00400008 */ jr $v0
/* 085184 800EBCD4 00000000 */ nop
.L800EBCD8:
/* 085188 800EBCD8 C634000C */ lwc1 $f20, 0xc($s1)
/* 08518C 800EBCDC 3C038011 */ lui $v1, 0x8011
/* 085190 800EBCE0 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 085194 800EBCE4 AE200018 */ sw $zero, 0x18($s1)
/* 085198 800EBCE8 AE200014 */ sw $zero, 0x14($s1)
/* 08519C 800EBCEC 000310C0 */ sll $v0, $v1, 3
/* 0851A0 800EBCF0 00431021 */ addu $v0, $v0, $v1
/* 0851A4 800EBCF4 00021080 */ sll $v0, $v0, 2
/* 0851A8 800EBCF8 3C038010 */ lui $v1, 0x8010
/* 0851AC 800EBCFC 00621821 */ addu $v1, $v1, $v0
/* 0851B0 800EBD00 8C63835C */ lw $v1, -0x7ca4($v1)
/* 0851B4 800EBD04 24020005 */ addiu $v0, $zero, 5
/* 0851B8 800EBD08 3C018011 */ lui $at, 0x8011
/* 0851BC 800EBD0C A422CFC8 */ sh $v0, -0x3038($at)
/* 0851C0 800EBD10 0803B005 */ j .L800EC014
/* 0851C4 800EBD14 AE230028 */ sw $v1, 0x28($s1)
/* 0851C8 800EBD18 3C038011 */ lui $v1, 0x8011
/* 0851CC 800EBD1C 2463CD38 */ addiu $v1, $v1, -0x32c8
/* 0851D0 800EBD20 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0851D4 800EBD24 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0851D8 800EBD28 3C028011 */ lui $v0, 0x8011
/* 0851DC 800EBD2C 8C42CFBC */ lw $v0, -0x3044($v0)
/* 0851E0 800EBD30 3C014040 */ lui $at, 0x4040
/* 0851E4 800EBD34 44810000 */ mtc1 $at, $f0
/* 0851E8 800EBD38 C622003C */ lwc1 $f2, 0x3c($s1)
/* 0851EC 800EBD3C 00021100 */ sll $v0, $v0, 4
/* 0851F0 800EBD40 00438021 */ addu $s0, $v0, $v1
/* 0851F4 800EBD44 C6060004 */ lwc1 $f6, 4($s0)
/* 0851F8 800EBD48 C608000C */ lwc1 $f8, 0xc($s0)
/* 0851FC 800EBD4C E6200018 */ swc1 $f0, 0x18($s1)
/* 085200 800EBD50 46006006 */ mov.s $f0, $f12
/* 085204 800EBD54 8E660028 */ lw $a2, 0x28($s3)
/* 085208 800EBD58 8E670030 */ lw $a3, 0x30($s3)
/* 08520C 800EBD5C 46007106 */ mov.s $f4, $f14
/* 085210 800EBD60 E7A00028 */ swc1 $f0, 0x28($sp)
/* 085214 800EBD64 E7A2002C */ swc1 $f2, 0x2c($sp)
/* 085218 800EBD68 E7A40030 */ swc1 $f4, 0x30($sp)
/* 08521C 800EBD6C E7A60020 */ swc1 $f6, 0x20($sp)
/* 085220 800EBD70 0C00A7B5 */ jal dist2D
/* 085224 800EBD74 E7A80024 */ swc1 $f8, 0x24($sp)
/* 085228 800EBD78 3C014049 */ lui $at, 0x4049
/* 08522C 800EBD7C 44811800 */ mtc1 $at, $f3
/* 085230 800EBD80 44801000 */ mtc1 $zero, $f2
/* 085234 800EBD84 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085238 800EBD88 46000021 */ cvt.d.s $f0, $f0
/* 08523C 800EBD8C 4620103E */ c.le.d $f2, $f0
/* 085240 800EBD90 00000000 */ nop
/* 085244 800EBD94 4500000B */ bc1f .L800EBDC4
/* 085248 800EBD98 3C030001 */ lui $v1, 1
/* 08524C 800EBD9C 8E620004 */ lw $v0, 4($s3)
/* 085250 800EBDA0 3C0140E0 */ lui $at, 0x40e0
/* 085254 800EBDA4 44810000 */ mtc1 $at, $f0
/* 085258 800EBDA8 00431024 */ and $v0, $v0, $v1
/* 08525C 800EBDAC 54400005 */ bnezl $v0, .L800EBDC4
/* 085260 800EBDB0 E6200018 */ swc1 $f0, 0x18($s1)
/* 085264 800EBDB4 3C0140A0 */ lui $at, 0x40a0
/* 085268 800EBDB8 44810000 */ mtc1 $at, $f0
/* 08526C 800EBDBC 00000000 */ nop
/* 085270 800EBDC0 E6200018 */ swc1 $f0, 0x18($s1)
.L800EBDC4:
/* 085274 800EBDC4 3C018011 */ lui $at, 0x8011
/* 085278 800EBDC8 C420CFC0 */ lwc1 $f0, -0x3040($at)
/* 08527C 800EBDCC 3C014034 */ lui $at, 0x4034
/* 085280 800EBDD0 44811800 */ mtc1 $at, $f3
/* 085284 800EBDD4 44801000 */ mtc1 $zero, $f2
/* 085288 800EBDD8 46000021 */ cvt.d.s $f0, $f0
/* 08528C 800EBDDC 4622003C */ c.lt.d $f0, $f2
/* 085290 800EBDE0 00000000 */ nop
/* 085294 800EBDE4 45000005 */ bc1f .L800EBDFC
/* 085298 800EBDE8 00000000 */ nop
/* 08529C 800EBDEC 3C014080 */ lui $at, 0x4080
/* 0852A0 800EBDF0 44810000 */ mtc1 $at, $f0
/* 0852A4 800EBDF4 00000000 */ nop
/* 0852A8 800EBDF8 E6200018 */ swc1 $f0, 0x18($s1)
.L800EBDFC:
/* 0852AC 800EBDFC 3C038011 */ lui $v1, 0x8011
/* 0852B0 800EBE00 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 0852B4 800EBE04 3C048010 */ lui $a0, 0x8010
/* 0852B8 800EBE08 24848348 */ addiu $a0, $a0, -0x7cb8
/* 0852BC 800EBE0C 000310C0 */ sll $v0, $v1, 3
/* 0852C0 800EBE10 00431021 */ addu $v0, $v0, $v1
/* 0852C4 800EBE14 00021080 */ sll $v0, $v0, 2
/* 0852C8 800EBE18 00442021 */ addu $a0, $v0, $a0
/* 0852CC 800EBE1C 8E220000 */ lw $v0, ($s1)
/* 0852D0 800EBE20 8C830018 */ lw $v1, 0x18($a0)
/* 0852D4 800EBE24 30421000 */ andi $v0, $v0, 0x1000
/* 0852D8 800EBE28 14400003 */ bnez $v0, .L800EBE38
/* 0852DC 800EBE2C AE230028 */ sw $v1, 0x28($s1)
/* 0852E0 800EBE30 8C82000C */ lw $v0, 0xc($a0)
/* 0852E4 800EBE34 AE220028 */ sw $v0, 0x28($s1)
.L800EBE38:
/* 0852E8 800EBE38 3C128011 */ lui $s2, 0x8011
/* 0852EC 800EBE3C 2652CFBC */ addiu $s2, $s2, -0x3044
/* 0852F0 800EBE40 3C148011 */ lui $s4, 0x8011
/* 0852F4 800EBE44 2694CD38 */ addiu $s4, $s4, -0x32c8
.L800EBE48:
/* 0852F8 800EBE48 C7AC0028 */ lwc1 $f12, 0x28($sp)
/* 0852FC 800EBE4C C7AE0030 */ lwc1 $f14, 0x30($sp)
/* 085300 800EBE50 8FA60020 */ lw $a2, 0x20($sp)
/* 085304 800EBE54 0C00A7B5 */ jal dist2D
/* 085308 800EBE58 8FA70024 */ lw $a3, 0x24($sp)
/* 08530C 800EBE5C C7AC0028 */ lwc1 $f12, 0x28($sp)
/* 085310 800EBE60 C7AE0030 */ lwc1 $f14, 0x30($sp)
/* 085314 800EBE64 8FA60020 */ lw $a2, 0x20($sp)
/* 085318 800EBE68 8FA70024 */ lw $a3, 0x24($sp)
/* 08531C 800EBE6C 0C00A720 */ jal atan2
/* 085320 800EBE70 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085324 800EBE74 C6240018 */ lwc1 $f4, 0x18($s1)
/* 085328 800EBE78 C7A20034 */ lwc1 $f2, 0x34($sp)
/* 08532C 800EBE7C 4602203C */ c.lt.s $f4, $f2
/* 085330 800EBE80 00000000 */ nop
/* 085334 800EBE84 4500003B */ bc1f .L800EBF74
/* 085338 800EBE88 46000506 */ mov.s $f20, $f0
/* 08533C 800EBE8C C7AC0028 */ lwc1 $f12, 0x28($sp)
/* 085340 800EBE90 C7AE0030 */ lwc1 $f14, 0x30($sp)
/* 085344 800EBE94 8E660028 */ lw $a2, 0x28($s3)
/* 085348 800EBE98 0C00A7B5 */ jal dist2D
/* 08534C 800EBE9C 8E670030 */ lw $a3, 0x30($s3)
/* 085350 800EBEA0 3C014049 */ lui $at, 0x4049
/* 085354 800EBEA4 44811800 */ mtc1 $at, $f3
/* 085358 800EBEA8 44801000 */ mtc1 $zero, $f2
/* 08535C 800EBEAC 46000106 */ mov.s $f4, $f0
/* 085360 800EBEB0 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085364 800EBEB4 46002021 */ cvt.d.s $f0, $f4
/* 085368 800EBEB8 4620103E */ c.le.d $f2, $f0
/* 08536C 800EBEBC 00000000 */ nop
/* 085370 800EBEC0 45010054 */ bc1t .L800EC014
/* 085374 800EBEC4 00000000 */ nop
/* 085378 800EBEC8 3C018011 */ lui $at, 0x8011
/* 08537C 800EBECC C426CFC0 */ lwc1 $f6, -0x3040($at)
/* 085380 800EBED0 4604303C */ c.lt.s $f6, $f4
/* 085384 800EBED4 00000000 */ nop
/* 085388 800EBED8 4500001F */ bc1f .L800EBF58
/* 08538C 800EBEDC 00000000 */ nop
/* 085390 800EBEE0 46062081 */ sub.s $f2, $f4, $f6
/* 085394 800EBEE4 3C014008 */ lui $at, 0x4008
/* 085398 800EBEE8 44810800 */ mtc1 $at, $f1
/* 08539C 800EBEEC 44800000 */ mtc1 $zero, $f0
/* 0853A0 800EBEF0 E6220018 */ swc1 $f2, 0x18($s1)
/* 0853A4 800EBEF4 460010A1 */ cvt.d.s $f2, $f2
/* 0853A8 800EBEF8 4622003C */ c.lt.d $f0, $f2
/* 0853AC 800EBEFC 00000000 */ nop
/* 0853B0 800EBF00 4500000D */ bc1f .L800EBF38
/* 0853B4 800EBF04 00000000 */ nop
/* 0853B8 800EBF08 3C0141A0 */ lui $at, 0x41a0
/* 0853BC 800EBF0C 44810000 */ mtc1 $at, $f0
/* 0853C0 800EBF10 3C014040 */ lui $at, 0x4040
/* 0853C4 800EBF14 44811000 */ mtc1 $at, $f2
/* 0853C8 800EBF18 4600303C */ c.lt.s $f6, $f0
/* 0853CC 800EBF1C 00000000 */ nop
/* 0853D0 800EBF20 4500003C */ bc1f .L800EC014
/* 0853D4 800EBF24 E6220018 */ swc1 $f2, 0x18($s1)
/* 0853D8 800EBF28 3C014080 */ lui $at, 0x4080
/* 0853DC 800EBF2C 44810000 */ mtc1 $at, $f0
/* 0853E0 800EBF30 0803B005 */ j .L800EC014
/* 0853E4 800EBF34 E6200018 */ swc1 $f0, 0x18($s1)
.L800EBF38:
/* 0853E8 800EBF38 3C013FF0 */ lui $at, 0x3ff0
/* 0853EC 800EBF3C 44810800 */ mtc1 $at, $f1
/* 0853F0 800EBF40 44800000 */ mtc1 $zero, $f0
/* 0853F4 800EBF44 00000000 */ nop
/* 0853F8 800EBF48 46201000 */ add.d $f0, $f2, $f0
/* 0853FC 800EBF4C 46200020 */ cvt.s.d $f0, $f0
/* 085400 800EBF50 0803B005 */ j .L800EC014
/* 085404 800EBF54 E6200018 */ swc1 $f0, 0x18($s1)
.L800EBF58:
/* 085408 800EBF58 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 08540C 800EBF5C C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085410 800EBF60 AE200018 */ sw $zero, 0x18($s1)
/* 085414 800EBF64 8E660028 */ lw $a2, 0x28($s3)
/* 085418 800EBF68 0C00A720 */ jal atan2
/* 08541C 800EBF6C 8E670030 */ lw $a3, 0x30($s3)
/* 085420 800EBF70 E620000C */ swc1 $f0, 0xc($s1)
.L800EBF74:
/* 085424 800EBF74 8E430000 */ lw $v1, ($s2)
/* 085428 800EBF78 3C028011 */ lui $v0, 0x8011
/* 08542C 800EBF7C 8C42CFB8 */ lw $v0, -0x3048($v0)
/* 085430 800EBF80 1062FF55 */ beq $v1, $v0, .L800EBCD8
/* 085434 800EBF84 24620001 */ addiu $v0, $v1, 1
/* 085438 800EBF88 AE420000 */ sw $v0, ($s2)
/* 08543C 800EBF8C 28420028 */ slti $v0, $v0, 0x28
/* 085440 800EBF90 50400001 */ beql $v0, $zero, .L800EBF98
/* 085444 800EBF94 AE400000 */ sw $zero, ($s2)
.L800EBF98:
/* 085448 800EBF98 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 08544C 800EBF9C 8E420000 */ lw $v0, ($s2)
/* 085450 800EBFA0 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085454 800EBFA4 00021100 */ sll $v0, $v0, 4
/* 085458 800EBFA8 00548021 */ addu $s0, $v0, $s4
/* 08545C 800EBFAC C6000004 */ lwc1 $f0, 4($s0)
/* 085460 800EBFB0 C602000C */ lwc1 $f2, 0xc($s0)
/* 085464 800EBFB4 44060000 */ mfc1 $a2, $f0
/* 085468 800EBFB8 44071000 */ mfc1 $a3, $f2
/* 08546C 800EBFBC AFA60020 */ sw $a2, 0x20($sp)
/* 085470 800EBFC0 0C00A720 */ jal atan2
/* 085474 800EBFC4 AFA70024 */ sw $a3, 0x24($sp)
/* 085478 800EBFC8 C62C000C */ lwc1 $f12, 0xc($s1)
/* 08547C 800EBFCC 0C00A70A */ jal get_clamped_angle_diff
/* 085480 800EBFD0 46000386 */ mov.s $f14, $f0
/* 085484 800EBFD4 3C0142B4 */ lui $at, 0x42b4
/* 085488 800EBFD8 44811000 */ mtc1 $at, $f2
/* 08548C 800EBFDC 46000005 */ abs.s $f0, $f0
/* 085490 800EBFE0 4600103C */ c.lt.s $f2, $f0
/* 085494 800EBFE4 00000000 */ nop
/* 085498 800EBFE8 45010008 */ bc1t .L800EC00C
/* 08549C 800EBFEC 24020005 */ addiu $v0, $zero, 5
/* 0854A0 800EBFF0 8E220000 */ lw $v0, ($s1)
/* 0854A4 800EBFF4 30421000 */ andi $v0, $v0, 0x1000
/* 0854A8 800EBFF8 1040FF93 */ beqz $v0, .L800EBE48
/* 0854AC 800EBFFC 00000000 */ nop
/* 0854B0 800EC000 82020000 */ lb $v0, ($s0)
/* 0854B4 800EC004 1040FF90 */ beqz $v0, .L800EBE48
/* 0854B8 800EC008 24020001 */ addiu $v0, $zero, 1
.L800EC00C:
/* 0854BC 800EC00C 3C018011 */ lui $at, 0x8011
/* 0854C0 800EC010 A422CFC8 */ sh $v0, -0x3038($at)
.L800EC014:
/* 0854C4 800EC014 8E220000 */ lw $v0, ($s1)
/* 0854C8 800EC018 30421000 */ andi $v0, $v0, 0x1000
/* 0854CC 800EC01C 14400008 */ bnez $v0, .L800EC040
/* 0854D0 800EC020 00000000 */ nop
/* 0854D4 800EC024 C6200018 */ lwc1 $f0, 0x18($s1)
/* 0854D8 800EC028 3C013F00 */ lui $at, 0x3f00
/* 0854DC 800EC02C 44811000 */ mtc1 $at, $f2
/* 0854E0 800EC030 00000000 */ nop
/* 0854E4 800EC034 46020002 */ mul.s $f0, $f0, $f2
/* 0854E8 800EC038 00000000 */ nop
/* 0854EC 800EC03C E6200018 */ swc1 $f0, 0x18($s1)
.L800EC040:
/* 0854F0 800EC040 8E250018 */ lw $a1, 0x18($s1)
/* 0854F4 800EC044 4406A000 */ mfc1 $a2, $f20
/* 0854F8 800EC048 0220202D */ daddu $a0, $s1, $zero
/* 0854FC 800EC04C 0C00EA95 */ jal npc_move_heading
/* 085500 800EC050 AE26000C */ sw $a2, 0xc($s1)
/* 085504 800EC054 C6200018 */ lwc1 $f0, 0x18($s1)
/* 085508 800EC058 3C014010 */ lui $at, 0x4010
/* 08550C 800EC05C 44811800 */ mtc1 $at, $f3
/* 085510 800EC060 44801000 */ mtc1 $zero, $f2
/* 085514 800EC064 46000021 */ cvt.d.s $f0, $f0
/* 085518 800EC068 4622003C */ c.lt.d $f0, $f2
/* 08551C 800EC06C 00000000 */ nop
/* 085520 800EC070 45000002 */ bc1f .L800EC07C
/* 085524 800EC074 24050001 */ addiu $a1, $zero, 1
/* 085528 800EC078 0000282D */ daddu $a1, $zero, $zero
.L800EC07C:
/* 08552C 800EC07C 0C00F598 */ jal func_8003D660
/* 085530 800EC080 0220202D */ daddu $a0, $s1, $zero
/* 085534 800EC084 86240084 */ lh $a0, 0x84($s1)
/* 085538 800EC088 0C016F6A */ jal get_collider_type_by_id
/* 08553C 800EC08C 00000000 */ nop
/* 085540 800EC090 2442FFFE */ addiu $v0, $v0, -2
/* 085544 800EC094 2C420002 */ sltiu $v0, $v0, 2
/* 085548 800EC098 14400005 */ bnez $v0, .L800EC0B0
/* 08554C 800EC09C 24035000 */ addiu $v1, $zero, 0x5000
/* 085550 800EC0A0 8E220000 */ lw $v0, ($s1)
/* 085554 800EC0A4 30425000 */ andi $v0, $v0, 0x5000
/* 085558 800EC0A8 1443048E */ bne $v0, $v1, .L800ED2E4
/* 08555C 800EC0AC 00000000 */ nop
.L800EC0B0:
/* 085560 800EC0B0 0C03A92C */ jal func_800EA4B0
/* 085564 800EC0B4 86240086 */ lh $a0, 0x86($s1)
/* 085568 800EC0B8 14400488 */ bnez $v0, .L800ED2DC
/* 08556C 800EC0BC 24020001 */ addiu $v0, $zero, 1
/* 085570 800EC0C0 3C038011 */ lui $v1, 0x8011
/* 085574 800EC0C4 2463CFBC */ addiu $v1, $v1, -0x3044
/* 085578 800EC0C8 8C620000 */ lw $v0, ($v1)
/* 08557C 800EC0CC 24420001 */ addiu $v0, $v0, 1
/* 085580 800EC0D0 AC620000 */ sw $v0, ($v1)
/* 085584 800EC0D4 28420028 */ slti $v0, $v0, 0x28
/* 085588 800EC0D8 50400001 */ beql $v0, $zero, .L800EC0E0
/* 08558C 800EC0DC AC600000 */ sw $zero, ($v1)
.L800EC0E0:
/* 085590 800EC0E0 8C620000 */ lw $v0, ($v1)
/* 085594 800EC0E4 3C038011 */ lui $v1, 0x8011
/* 085598 800EC0E8 2463CD38 */ addiu $v1, $v1, -0x32c8
/* 08559C 800EC0EC C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0855A0 800EC0F0 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0855A4 800EC0F4 00021100 */ sll $v0, $v0, 4
/* 0855A8 800EC0F8 00438021 */ addu $s0, $v0, $v1
/* 0855AC 800EC0FC C6000004 */ lwc1 $f0, 4($s0)
/* 0855B0 800EC100 C602000C */ lwc1 $f2, 0xc($s0)
/* 0855B4 800EC104 44060000 */ mfc1 $a2, $f0
/* 0855B8 800EC108 44071000 */ mfc1 $a3, $f2
/* 0855BC 800EC10C AFA60020 */ sw $a2, 0x20($sp)
/* 0855C0 800EC110 0C00A720 */ jal atan2
/* 0855C4 800EC114 AFA70024 */ sw $a3, 0x24($sp)
/* 0855C8 800EC118 C62C000C */ lwc1 $f12, 0xc($s1)
/* 0855CC 800EC11C 0C00A70A */ jal get_clamped_angle_diff
/* 0855D0 800EC120 46000386 */ mov.s $f14, $f0
/* 0855D4 800EC124 3C0142B4 */ lui $at, 0x42b4
/* 0855D8 800EC128 44811000 */ mtc1 $at, $f2
/* 0855DC 800EC12C 46000005 */ abs.s $f0, $f0
/* 0855E0 800EC130 4600103C */ c.lt.s $f2, $f0
/* 0855E4 800EC134 00000000 */ nop
/* 0855E8 800EC138 4500046A */ bc1f .L800ED2E4
/* 0855EC 800EC13C 24020005 */ addiu $v0, $zero, 5
/* 0855F0 800EC140 0803B4B7 */ j .L800ED2DC
/* 0855F4 800EC144 00000000 */ nop
/* 0855F8 800EC148 0C016F6A */ jal get_collider_type_by_id
/* 0855FC 800EC14C 86240084 */ lh $a0, 0x84($s1)
/* 085600 800EC150 3C058011 */ lui $a1, 0x8011
/* 085604 800EC154 24A5CFBC */ addiu $a1, $a1, -0x3044
/* 085608 800EC158 8CA40000 */ lw $a0, ($a1)
/* 08560C 800EC15C 3C038011 */ lui $v1, 0x8011
/* 085610 800EC160 8C63CFB8 */ lw $v1, -0x3048($v1)
/* 085614 800EC164 14830016 */ bne $a0, $v1, .L800EC1C0
/* 085618 800EC168 0040902D */ daddu $s2, $v0, $zero
/* 08561C 800EC16C 2642FFFE */ addiu $v0, $s2, -2
/* 085620 800EC170 2C420002 */ sltiu $v0, $v0, 2
/* 085624 800EC174 1040045B */ beqz $v0, .L800ED2E4
/* 085628 800EC178 00000000 */ nop
/* 08562C 800EC17C C674002C */ lwc1 $f20, 0x2c($s3)
/* 085630 800EC180 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085634 800EC184 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085638 800EC188 8E660028 */ lw $a2, 0x28($s3)
/* 08563C 800EC18C 8E670030 */ lw $a3, 0x30($s3)
/* 085640 800EC190 46006006 */ mov.s $f0, $f12
/* 085644 800EC194 46007086 */ mov.s $f2, $f14
/* 085648 800EC198 E7A00020 */ swc1 $f0, 0x20($sp)
/* 08564C 800EC19C 0C00A720 */ jal atan2
/* 085650 800EC1A0 E7A20024 */ swc1 $f2, 0x24($sp)
/* 085654 800EC1A4 27A40020 */ addiu $a0, $sp, 0x20
/* 085658 800EC1A8 3C0640C0 */ lui $a2, 0x40c0
/* 08565C 800EC1AC 44070000 */ mfc1 $a3, $f0
/* 085660 800EC1B0 0C00A7E7 */ jal add_vec2D_polar
/* 085664 800EC1B4 27A50024 */ addiu $a1, $sp, 0x24
/* 085668 800EC1B8 0803B07F */ j .L800EC1FC
/* 08566C 800EC1BC 00000000 */ nop
.L800EC1C0:
/* 085670 800EC1C0 24820001 */ addiu $v0, $a0, 1
/* 085674 800EC1C4 ACA20000 */ sw $v0, ($a1)
/* 085678 800EC1C8 28420028 */ slti $v0, $v0, 0x28
/* 08567C 800EC1CC 50400001 */ beql $v0, $zero, .L800EC1D4
/* 085680 800EC1D0 ACA00000 */ sw $zero, ($a1)
.L800EC1D4:
/* 085684 800EC1D4 8CA20000 */ lw $v0, ($a1)
/* 085688 800EC1D8 3C038011 */ lui $v1, 0x8011
/* 08568C 800EC1DC 2463CD38 */ addiu $v1, $v1, -0x32c8
/* 085690 800EC1E0 00021100 */ sll $v0, $v0, 4
/* 085694 800EC1E4 00438021 */ addu $s0, $v0, $v1
/* 085698 800EC1E8 C6000004 */ lwc1 $f0, 4($s0)
/* 08569C 800EC1EC C6140008 */ lwc1 $f20, 8($s0)
/* 0856A0 800EC1F0 C602000C */ lwc1 $f2, 0xc($s0)
/* 0856A4 800EC1F4 E7A00020 */ swc1 $f0, 0x20($sp)
/* 0856A8 800EC1F8 E7A20024 */ swc1 $f2, 0x24($sp)
.L800EC1FC:
/* 0856AC 800EC1FC C7A00020 */ lwc1 $f0, 0x20($sp)
/* 0856B0 800EC200 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0856B4 800EC204 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0856B8 800EC208 3C0140C0 */ lui $at, 0x40c0
/* 0856BC 800EC20C 44811000 */ mtc1 $at, $f2
/* 0856C0 800EC210 E6200060 */ swc1 $f0, 0x60($s1)
/* 0856C4 800EC214 44060000 */ mfc1 $a2, $f0
/* 0856C8 800EC218 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 0856CC 800EC21C E6200068 */ swc1 $f0, 0x68($s1)
/* 0856D0 800EC220 44070000 */ mfc1 $a3, $f0
/* 0856D4 800EC224 3C014040 */ lui $at, 0x4040
/* 0856D8 800EC228 44810000 */ mtc1 $at, $f0
/* 0856DC 800EC22C E6340064 */ swc1 $f20, 0x64($s1)
/* 0856E0 800EC230 A620008E */ sh $zero, 0x8e($s1)
/* 0856E4 800EC234 E6220018 */ swc1 $f2, 0x18($s1)
/* 0856E8 800EC238 0C00A7B5 */ jal dist2D
/* 0856EC 800EC23C E6200014 */ swc1 $f0, 0x14($s1)
/* 0856F0 800EC240 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0856F4 800EC244 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0856F8 800EC248 8E260060 */ lw $a2, 0x60($s1)
/* 0856FC 800EC24C 8E270068 */ lw $a3, 0x68($s1)
/* 085700 800EC250 0C00A720 */ jal atan2
/* 085704 800EC254 E6200010 */ swc1 $f0, 0x10($s1)
/* 085708 800EC258 E620000C */ swc1 $f0, 0xc($s1)
/* 08570C 800EC25C C6200010 */ lwc1 $f0, 0x10($s1)
/* 085710 800EC260 3C014049 */ lui $at, 0x4049
/* 085714 800EC264 44811800 */ mtc1 $at, $f3
/* 085718 800EC268 44801000 */ mtc1 $zero, $f2
/* 08571C 800EC26C 46000021 */ cvt.d.s $f0, $f0
/* 085720 800EC270 4620103C */ c.lt.d $f2, $f0
/* 085724 800EC274 00000000 */ nop
/* 085728 800EC278 45000005 */ bc1f .L800EC290
/* 08572C 800EC27C 00000000 */ nop
/* 085730 800EC280 3C014248 */ lui $at, 0x4248
/* 085734 800EC284 44810000 */ mtc1 $at, $f0
/* 085738 800EC288 00000000 */ nop
/* 08573C 800EC28C E6200010 */ swc1 $f0, 0x10($s1)
.L800EC290:
/* 085740 800EC290 C6220064 */ lwc1 $f2, 0x64($s1)
/* 085744 800EC294 C620003C */ lwc1 $f0, 0x3c($s1)
/* 085748 800EC298 C6240010 */ lwc1 $f4, 0x10($s1)
/* 08574C 800EC29C 46001081 */ sub.s $f2, $f2, $f0
/* 085750 800EC2A0 3C018011 */ lui $at, 0x8011
/* 085754 800EC2A4 C420CFC0 */ lwc1 $f0, -0x3040($at)
/* 085758 800EC2A8 E7A40034 */ swc1 $f4, 0x34($sp)
/* 08575C 800EC2AC 4600203C */ c.lt.s $f4, $f0
/* 085760 800EC2B0 00000000 */ nop
/* 085764 800EC2B4 45000010 */ bc1f .L800EC2F8
/* 085768 800EC2B8 E7A2002C */ swc1 $f2, 0x2c($sp)
/* 08576C 800EC2BC 2642FFFE */ addiu $v0, $s2, -2
/* 085770 800EC2C0 2C420002 */ sltiu $v0, $v0, 2
/* 085774 800EC2C4 1440000C */ bnez $v0, .L800EC2F8
/* 085778 800EC2C8 00000000 */ nop
/* 08577C 800EC2CC C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085780 800EC2D0 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085784 800EC2D4 AE20001C */ sw $zero, 0x1c($s1)
/* 085788 800EC2D8 8E660028 */ lw $a2, 0x28($s3)
/* 08578C 800EC2DC 0C00A720 */ jal atan2
/* 085790 800EC2E0 8E670030 */ lw $a3, 0x30($s3)
/* 085794 800EC2E4 E620000C */ swc1 $f0, 0xc($s1)
.L800EC2E8:
/* 085798 800EC2E8 3C018011 */ lui $at, 0x8011
/* 08579C 800EC2EC A420CFC8 */ sh $zero, -0x3038($at)
/* 0857A0 800EC2F0 0803B4B9 */ j .L800ED2E4
/* 0857A4 800EC2F4 00000000 */ nop
.L800EC2F8:
/* 0857A8 800EC2F8 C6220018 */ lwc1 $f2, 0x18($s1)
/* 0857AC 800EC2FC C7A00034 */ lwc1 $f0, 0x34($sp)
/* 0857B0 800EC300 46020003 */ div.s $f0, $f0, $f2
/* 0857B4 800EC304 4600028D */ trunc.w.s $f10, $f0
/* 0857B8 800EC308 44025000 */ mfc1 $v0, $f10
/* 0857BC 800EC30C 00000000 */ nop
/* 0857C0 800EC310 A622008E */ sh $v0, 0x8e($s1)
/* 0857C4 800EC314 00021400 */ sll $v0, $v0, 0x10
/* 0857C8 800EC318 00021403 */ sra $v0, $v0, 0x10
/* 0857CC 800EC31C 2842000A */ slti $v0, $v0, 0xa
/* 0857D0 800EC320 10400002 */ beqz $v0, .L800EC32C
/* 0857D4 800EC324 2402000A */ addiu $v0, $zero, 0xa
/* 0857D8 800EC328 A622008E */ sh $v0, 0x8e($s1)
.L800EC32C:
/* 0857DC 800EC32C 8622008E */ lh $v0, 0x8e($s1)
/* 0857E0 800EC330 C6220014 */ lwc1 $f2, 0x14($s1)
/* 0857E4 800EC334 44823000 */ mtc1 $v0, $f6
/* 0857E8 800EC338 00000000 */ nop
/* 0857EC 800EC33C 468031A0 */ cvt.s.w $f6, $f6
/* 0857F0 800EC340 46061082 */ mul.s $f2, $f2, $f6
/* 0857F4 800EC344 00000000 */ nop
/* 0857F8 800EC348 46061082 */ mul.s $f2, $f2, $f6
/* 0857FC 800EC34C 00000000 */ nop
/* 085800 800EC350 3C013F00 */ lui $at, 0x3f00
/* 085804 800EC354 44810000 */ mtc1 $at, $f0
/* 085808 800EC358 00000000 */ nop
/* 08580C 800EC35C 46001082 */ mul.s $f2, $f2, $f0
/* 085810 800EC360 00000000 */ nop
/* 085814 800EC364 C7A4002C */ lwc1 $f4, 0x2c($sp)
/* 085818 800EC368 C6200010 */ lwc1 $f0, 0x10($s1)
/* 08581C 800EC36C 46003206 */ mov.s $f8, $f6
/* 085820 800EC370 46080003 */ div.s $f0, $f0, $f8
/* 085824 800EC374 46022100 */ add.s $f4, $f4, $f2
/* 085828 800EC378 E6200018 */ swc1 $f0, 0x18($s1)
/* 08582C 800EC37C 3C014034 */ lui $at, 0x4034
/* 085830 800EC380 44811800 */ mtc1 $at, $f3
/* 085834 800EC384 44801000 */ mtc1 $zero, $f2
/* 085838 800EC388 46062103 */ div.s $f4, $f4, $f6
/* 08583C 800EC38C 46002021 */ cvt.d.s $f0, $f4
/* 085840 800EC390 4620103C */ c.lt.d $f2, $f0
/* 085844 800EC394 00000000 */ nop
/* 085848 800EC398 45000005 */ bc1f .L800EC3B0
/* 08584C 800EC39C E624001C */ swc1 $f4, 0x1c($s1)
/* 085850 800EC3A0 3C0141A0 */ lui $at, 0x41a0
/* 085854 800EC3A4 44810000 */ mtc1 $at, $f0
/* 085858 800EC3A8 00000000 */ nop
/* 08585C 800EC3AC E620001C */ swc1 $f0, 0x1c($s1)
.L800EC3B0:
/* 085860 800EC3B0 C620001C */ lwc1 $f0, 0x1c($s1)
/* 085864 800EC3B4 44801000 */ mtc1 $zero, $f2
/* 085868 800EC3B8 44801800 */ mtc1 $zero, $f3
/* 08586C 800EC3BC 46000021 */ cvt.d.s $f0, $f0
/* 085870 800EC3C0 4622003C */ c.lt.d $f0, $f2
/* 085874 800EC3C4 00000000 */ nop
/* 085878 800EC3C8 45030001 */ bc1tl .L800EC3D0
/* 08587C 800EC3CC AE20001C */ sw $zero, 0x1c($s1)
.L800EC3D0:
/* 085880 800EC3D0 2642FFFE */ addiu $v0, $s2, -2
/* 085884 800EC3D4 2C420002 */ sltiu $v0, $v0, 2
/* 085888 800EC3D8 1440000B */ bnez $v0, .L800EC408
/* 08588C 800EC3DC 00000000 */ nop
/* 085890 800EC3E0 3C028011 */ lui $v0, 0x8011
/* 085894 800EC3E4 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 085898 800EC3E8 000218C0 */ sll $v1, $v0, 3
/* 08589C 800EC3EC 00621821 */ addu $v1, $v1, $v0
/* 0858A0 800EC3F0 00031880 */ sll $v1, $v1, 2
/* 0858A4 800EC3F4 3C028010 */ lui $v0, 0x8010
/* 0858A8 800EC3F8 00431021 */ addu $v0, $v0, $v1
/* 0858AC 800EC3FC 8C428350 */ lw $v0, -0x7cb0($v0)
/* 0858B0 800EC400 0803B10B */ j .L800EC42C
/* 0858B4 800EC404 AE220028 */ sw $v0, 0x28($s1)
.L800EC408:
/* 0858B8 800EC408 3C028011 */ lui $v0, 0x8011
/* 0858BC 800EC40C 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 0858C0 800EC410 000218C0 */ sll $v1, $v0, 3
/* 0858C4 800EC414 00621821 */ addu $v1, $v1, $v0
/* 0858C8 800EC418 00031880 */ sll $v1, $v1, 2
/* 0858CC 800EC41C 3C028010 */ lui $v0, 0x8010
/* 0858D0 800EC420 00431021 */ addu $v0, $v0, $v1
/* 0858D4 800EC424 8C428368 */ lw $v0, -0x7c98($v0)
/* 0858D8 800EC428 AE220028 */ sw $v0, 0x28($s1)
.L800EC42C:
/* 0858DC 800EC42C C6200038 */ lwc1 $f0, 0x38($s1)
/* 0858E0 800EC430 C622003C */ lwc1 $f2, 0x3c($s1)
/* 0858E4 800EC434 C6240040 */ lwc1 $f4, 0x40($s1)
/* 0858E8 800EC438 8E230000 */ lw $v1, ($s1)
/* 0858EC 800EC43C 24020002 */ addiu $v0, $zero, 2
/* 0858F0 800EC440 3C018011 */ lui $at, 0x8011
/* 0858F4 800EC444 A422CFC8 */ sh $v0, -0x3038($at)
/* 0858F8 800EC448 34630800 */ ori $v1, $v1, 0x800
/* 0858FC 800EC44C E6200060 */ swc1 $f0, 0x60($s1)
/* 085900 800EC450 E6220064 */ swc1 $f2, 0x64($s1)
/* 085904 800EC454 E6240068 */ swc1 $f4, 0x68($s1)
/* 085908 800EC458 AE230000 */ sw $v1, ($s1)
/* 08590C 800EC45C C620001C */ lwc1 $f0, 0x1c($s1)
/* 085910 800EC460 C6220014 */ lwc1 $f2, 0x14($s1)
/* 085914 800EC464 46020001 */ sub.s $f0, $f0, $f2
/* 085918 800EC468 C622003C */ lwc1 $f2, 0x3c($s1)
/* 08591C 800EC46C 46001080 */ add.s $f2, $f2, $f0
/* 085920 800EC470 4480A000 */ mtc1 $zero, $f20
/* 085924 800EC474 00000000 */ nop
/* 085928 800EC478 4614003E */ c.le.s $f0, $f20
/* 08592C 800EC47C E620001C */ swc1 $f0, 0x1c($s1)
/* 085930 800EC480 4500000A */ bc1f .L800EC4AC
/* 085934 800EC484 E622003C */ swc1 $f2, 0x3c($s1)
/* 085938 800EC488 3C028011 */ lui $v0, 0x8011
/* 08593C 800EC48C 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 085940 800EC490 000218C0 */ sll $v1, $v0, 3
/* 085944 800EC494 00621821 */ addu $v1, $v1, $v0
/* 085948 800EC498 00031880 */ sll $v1, $v1, 2
/* 08594C 800EC49C 3C028010 */ lui $v0, 0x8010
/* 085950 800EC4A0 00431021 */ addu $v0, $v0, $v1
/* 085954 800EC4A4 8C428354 */ lw $v0, -0x7cac($v0)
/* 085958 800EC4A8 AE220028 */ sw $v0, 0x28($s1)
.L800EC4AC:
/* 08595C 800EC4AC C622003C */ lwc1 $f2, 0x3c($s1)
/* 085960 800EC4B0 3C01C4FA */ lui $at, 0xc4fa
/* 085964 800EC4B4 44810000 */ mtc1 $at, $f0
/* 085968 800EC4B8 00000000 */ nop
/* 08596C 800EC4BC 4600103C */ c.lt.s $f2, $f0
/* 085970 800EC4C0 00000000 */ nop
/* 085974 800EC4C4 4500001B */ bc1f .L800EC534
/* 085978 800EC4C8 2404F7FF */ addiu $a0, $zero, -0x801
/* 08597C 800EC4CC C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085980 800EC4D0 3C028011 */ lui $v0, 0x8011
/* 085984 800EC4D4 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 085988 800EC4D8 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 08598C 800EC4DC 000218C0 */ sll $v1, $v0, 3
/* 085990 800EC4E0 00621821 */ addu $v1, $v1, $v0
/* 085994 800EC4E4 00031880 */ sll $v1, $v1, 2
/* 085998 800EC4E8 8E220000 */ lw $v0, ($s1)
/* 08599C 800EC4EC 3C018010 */ lui $at, 0x8010
/* 0859A0 800EC4F0 00230821 */ addu $at, $at, $v1
/* 0859A4 800EC4F4 8C238358 */ lw $v1, -0x7ca8($at)
/* 0859A8 800EC4F8 E634001C */ swc1 $f20, 0x1c($s1)
/* 0859AC 800EC4FC 00441024 */ and $v0, $v0, $a0
/* 0859B0 800EC500 AE220000 */ sw $v0, ($s1)
/* 0859B4 800EC504 AE230028 */ sw $v1, 0x28($s1)
/* 0859B8 800EC508 8E660028 */ lw $a2, 0x28($s3)
/* 0859BC 800EC50C 0C00A720 */ jal atan2
/* 0859C0 800EC510 8E670030 */ lw $a3, 0x30($s3)
/* 0859C4 800EC514 E620000C */ swc1 $f0, 0xc($s1)
/* 0859C8 800EC518 C6600028 */ lwc1 $f0, 0x28($s3)
/* 0859CC 800EC51C E6200038 */ swc1 $f0, 0x38($s1)
/* 0859D0 800EC520 C660002C */ lwc1 $f0, 0x2c($s3)
/* 0859D4 800EC524 E620003C */ swc1 $f0, 0x3c($s1)
/* 0859D8 800EC528 C6600030 */ lwc1 $f0, 0x30($s3)
/* 0859DC 800EC52C 0803B47C */ j .L800ED1F0
/* 0859E0 800EC530 24020005 */ addiu $v0, $zero, 5
.L800EC534:
/* 0859E4 800EC534 C624001C */ lwc1 $f4, 0x1c($s1)
/* 0859E8 800EC538 4614203E */ c.le.s $f4, $f20
/* 0859EC 800EC53C 00000000 */ nop
/* 0859F0 800EC540 45000068 */ bc1f .L800EC6E4
/* 0859F4 800EC544 27A50028 */ addiu $a1, $sp, 0x28
/* 0859F8 800EC548 27A20034 */ addiu $v0, $sp, 0x34
/* 0859FC 800EC54C C6200038 */ lwc1 $f0, 0x38($s1)
/* 085A00 800EC550 3C014130 */ lui $at, 0x4130
/* 085A04 800EC554 44811000 */ mtc1 $at, $f2
/* 085A08 800EC558 27A6002C */ addiu $a2, $sp, 0x2c
/* 085A0C 800EC55C E7A00028 */ swc1 $f0, 0x28($sp)
/* 085A10 800EC560 46002005 */ abs.s $f0, $f4
/* 085A14 800EC564 46020000 */ add.s $f0, $f0, $f2
/* 085A18 800EC568 C622003C */ lwc1 $f2, 0x3c($s1)
/* 085A1C 800EC56C C6240040 */ lwc1 $f4, 0x40($s1)
/* 085A20 800EC570 46001080 */ add.s $f2, $f2, $f0
/* 085A24 800EC574 E7A40030 */ swc1 $f4, 0x30($sp)
/* 085A28 800EC578 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085A2C 800EC57C E7A2002C */ swc1 $f2, 0x2c($sp)
/* 085A30 800EC580 AFA20010 */ sw $v0, 0x10($sp)
/* 085A34 800EC584 C620000C */ lwc1 $f0, 0xc($s1)
/* 085A38 800EC588 27A70030 */ addiu $a3, $sp, 0x30
/* 085A3C 800EC58C E7A00014 */ swc1 $f0, 0x14($sp)
/* 085A40 800EC590 862200A6 */ lh $v0, 0xa6($s1)
/* 085A44 800EC594 26320038 */ addiu $s2, $s1, 0x38
/* 085A48 800EC598 44820000 */ mtc1 $v0, $f0
/* 085A4C 800EC59C 00000000 */ nop
/* 085A50 800EC5A0 46800020 */ cvt.s.w $f0, $f0
/* 085A54 800EC5A4 E7A00018 */ swc1 $f0, 0x18($sp)
/* 085A58 800EC5A8 8E240080 */ lw $a0, 0x80($s1)
/* 085A5C 800EC5AC 0C0371DE */ jal func_800DC778
/* 085A60 800EC5B0 26340040 */ addiu $s4, $s1, 0x40
/* 085A64 800EC5B4 1040004B */ beqz $v0, .L800EC6E4
/* 085A68 800EC5B8 00000000 */ nop
/* 085A6C 800EC5BC C620001C */ lwc1 $f0, 0x1c($s1)
/* 085A70 800EC5C0 3C0141B0 */ lui $at, 0x41b0
/* 085A74 800EC5C4 44811000 */ mtc1 $at, $f2
/* 085A78 800EC5C8 46000005 */ abs.s $f0, $f0
/* 085A7C 800EC5CC 46020000 */ add.s $f0, $f0, $f2
/* 085A80 800EC5D0 C7A20034 */ lwc1 $f2, 0x34($sp)
/* 085A84 800EC5D4 4600103E */ c.le.s $f2, $f0
/* 085A88 800EC5D8 00000000 */ nop
/* 085A8C 800EC5DC 45000041 */ bc1f .L800EC6E4
/* 085A90 800EC5E0 00000000 */ nop
/* 085A94 800EC5E4 C7AC0028 */ lwc1 $f12, 0x28($sp)
/* 085A98 800EC5E8 3C038011 */ lui $v1, 0x8011
/* 085A9C 800EC5EC 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 085AA0 800EC5F0 C7AE0030 */ lwc1 $f14, 0x30($sp)
/* 085AA4 800EC5F4 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 085AA8 800EC5F8 000310C0 */ sll $v0, $v1, 3
/* 085AAC 800EC5FC 00431021 */ addu $v0, $v0, $v1
/* 085AB0 800EC600 00021080 */ sll $v0, $v0, 2
/* 085AB4 800EC604 3C048010 */ lui $a0, 0x8010
/* 085AB8 800EC608 00822021 */ addu $a0, $a0, $v0
/* 085ABC 800EC60C 8C848358 */ lw $a0, -0x7ca8($a0)
/* 085AC0 800EC610 8E220000 */ lw $v0, ($s1)
/* 085AC4 800EC614 2403F7FF */ addiu $v1, $zero, -0x801
/* 085AC8 800EC618 E634001C */ swc1 $f20, 0x1c($s1)
/* 085ACC 800EC61C E620003C */ swc1 $f0, 0x3c($s1)
/* 085AD0 800EC620 00431024 */ and $v0, $v0, $v1
/* 085AD4 800EC624 AE220000 */ sw $v0, ($s1)
/* 085AD8 800EC628 AE240028 */ sw $a0, 0x28($s1)
/* 085ADC 800EC62C 8E660028 */ lw $a2, 0x28($s3)
/* 085AE0 800EC630 0C00A720 */ jal atan2
/* 085AE4 800EC634 8E670030 */ lw $a3, 0x30($s3)
/* 085AE8 800EC638 0220202D */ daddu $a0, $s1, $zero
/* 085AEC 800EC63C 24050002 */ addiu $a1, $zero, 2
/* 085AF0 800EC640 0C00F598 */ jal func_8003D660
/* 085AF4 800EC644 E620000C */ swc1 $f0, 0xc($s1)
/* 085AF8 800EC648 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085AFC 800EC64C C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085B00 800EC650 8E260060 */ lw $a2, 0x60($s1)
/* 085B04 800EC654 8E270068 */ lw $a3, 0x68($s1)
/* 085B08 800EC658 3C108011 */ lui $s0, 0x8011
/* 085B0C 800EC65C 2610CFC8 */ addiu $s0, $s0, -0x3038
/* 085B10 800EC660 0C00A7B5 */ jal dist2D
/* 085B14 800EC664 A6000000 */ sh $zero, ($s0)
/* 085B18 800EC668 3C014014 */ lui $at, 0x4014
/* 085B1C 800EC66C 44811800 */ mtc1 $at, $f3
/* 085B20 800EC670 44801000 */ mtc1 $zero, $f2
/* 085B24 800EC674 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085B28 800EC678 46000021 */ cvt.d.s $f0, $f0
/* 085B2C 800EC67C 4622003C */ c.lt.d $f0, $f2
/* 085B30 800EC680 00000000 */ nop
/* 085B34 800EC684 45000317 */ bc1f .L800ED2E4
/* 085B38 800EC688 00000000 */ nop
/* 085B3C 800EC68C C6600028 */ lwc1 $f0, 0x28($s3)
/* 085B40 800EC690 E6200038 */ swc1 $f0, 0x38($s1)
/* 085B44 800EC694 C660002C */ lwc1 $f0, 0x2c($s3)
/* 085B48 800EC698 E620003C */ swc1 $f0, 0x3c($s1)
/* 085B4C 800EC69C C6600030 */ lwc1 $f0, 0x30($s3)
/* 085B50 800EC6A0 E6200040 */ swc1 $f0, 0x40($s1)
/* 085B54 800EC6A4 C6AC006C */ lwc1 $f12, 0x6c($s5)
/* 085B58 800EC6A8 3C0142B4 */ lui $at, 0x42b4
/* 085B5C 800EC6AC 44810000 */ mtc1 $at, $f0
/* 085B60 800EC6B0 00000000 */ nop
/* 085B64 800EC6B4 46006300 */ add.s $f12, $f12, $f0
/* 085B68 800EC6B8 C66000A8 */ lwc1 $f0, 0xa8($s3)
/* 085B6C 800EC6BC 0C00A6C9 */ jal clamp_angle
/* 085B70 800EC6C0 46006301 */ sub.s $f12, $f12, $f0
/* 085B74 800EC6C4 0240202D */ daddu $a0, $s2, $zero
/* 085B78 800EC6C8 3C0640A0 */ lui $a2, 0x40a0
/* 085B7C 800EC6CC 44070000 */ mfc1 $a3, $f0
/* 085B80 800EC6D0 0C00A7E7 */ jal add_vec2D_polar
/* 085B84 800EC6D4 0280282D */ daddu $a1, $s4, $zero
/* 085B88 800EC6D8 24020005 */ addiu $v0, $zero, 5
/* 085B8C 800EC6DC 0803B4B9 */ j .L800ED2E4
/* 085B90 800EC6E0 A6020000 */ sh $v0, ($s0)
.L800EC6E4:
/* 085B94 800EC6E4 8E250018 */ lw $a1, 0x18($s1)
/* 085B98 800EC6E8 8E26000C */ lw $a2, 0xc($s1)
/* 085B9C 800EC6EC 0C00EA95 */ jal npc_move_heading
/* 085BA0 800EC6F0 0220202D */ daddu $a0, $s1, $zero
/* 085BA4 800EC6F4 0803B4B9 */ j .L800ED2E4
/* 085BA8 800EC6F8 00000000 */ nop
/* 085BAC 800EC6FC 3C038011 */ lui $v1, 0x8011
/* 085BB0 800EC700 2463CD38 */ addiu $v1, $v1, -0x32c8
/* 085BB4 800EC704 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085BB8 800EC708 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085BBC 800EC70C 8E660028 */ lw $a2, 0x28($s3)
/* 085BC0 800EC710 8E670030 */ lw $a3, 0x30($s3)
/* 085BC4 800EC714 3C028011 */ lui $v0, 0x8011
/* 085BC8 800EC718 8C42CFBC */ lw $v0, -0x3044($v0)
/* 085BCC 800EC71C C620003C */ lwc1 $f0, 0x3c($s1)
/* 085BD0 800EC720 00021100 */ sll $v0, $v0, 4
/* 085BD4 800EC724 00438021 */ addu $s0, $v0, $v1
/* 085BD8 800EC728 46006106 */ mov.s $f4, $f12
/* 085BDC 800EC72C C6060004 */ lwc1 $f6, 4($s0)
/* 085BE0 800EC730 C608000C */ lwc1 $f8, 0xc($s0)
/* 085BE4 800EC734 46007086 */ mov.s $f2, $f14
/* 085BE8 800EC738 E7A40028 */ swc1 $f4, 0x28($sp)
/* 085BEC 800EC73C E7A0002C */ swc1 $f0, 0x2c($sp)
/* 085BF0 800EC740 E7A20030 */ swc1 $f2, 0x30($sp)
/* 085BF4 800EC744 E7A60020 */ swc1 $f6, 0x20($sp)
/* 085BF8 800EC748 0C00A7B5 */ jal dist2D
/* 085BFC 800EC74C E7A80024 */ swc1 $f8, 0x24($sp)
/* 085C00 800EC750 3C018011 */ lui $at, 0x8011
/* 085C04 800EC754 C422CFC0 */ lwc1 $f2, -0x3040($at)
/* 085C08 800EC758 4602003E */ c.le.s $f0, $f2
/* 085C0C 800EC75C 00000000 */ nop
/* 085C10 800EC760 450000E3 */ bc1f .L800ECAF0
/* 085C14 800EC764 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085C18 800EC768 3C048011 */ lui $a0, 0x8011
/* 085C1C 800EC76C 2484CFCA */ addiu $a0, $a0, -0x3036
/* 085C20 800EC770 84820000 */ lh $v0, ($a0)
/* 085C24 800EC774 14400019 */ bnez $v0, .L800EC7DC
/* 085C28 800EC778 00000000 */ nop
/* 085C2C 800EC77C 3C038011 */ lui $v1, 0x8011
/* 085C30 800EC780 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 085C34 800EC784 AE200018 */ sw $zero, 0x18($s1)
/* 085C38 800EC788 AE200014 */ sw $zero, 0x14($s1)
/* 085C3C 800EC78C 000310C0 */ sll $v0, $v1, 3
/* 085C40 800EC790 00431021 */ addu $v0, $v0, $v1
/* 085C44 800EC794 00021080 */ sll $v0, $v0, 2
/* 085C48 800EC798 3C018010 */ lui $at, 0x8010
/* 085C4C 800EC79C 00220821 */ addu $at, $at, $v0
/* 085C50 800EC7A0 8C22835C */ lw $v0, -0x7ca4($at)
/* 085C54 800EC7A4 AE220028 */ sw $v0, 0x28($s1)
/* 085C58 800EC7A8 826300B4 */ lb $v1, 0xb4($s3)
/* 085C5C 800EC7AC 2402000C */ addiu $v0, $zero, 0xc
/* 085C60 800EC7B0 50620001 */ beql $v1, $v0, .L800EC7B8
/* 085C64 800EC7B4 A4800000 */ sh $zero, ($a0)
.L800EC7B8:
/* 085C68 800EC7B8 86240084 */ lh $a0, 0x84($s1)
/* 085C6C 800EC7BC 0C016F6A */ jal get_collider_type_by_id
/* 085C70 800EC7C0 00000000 */ nop
/* 085C74 800EC7C4 2442FFFE */ addiu $v0, $v0, -2
/* 085C78 800EC7C8 2C420002 */ sltiu $v0, $v0, 2
/* 085C7C 800EC7CC 104000C8 */ beqz $v0, .L800ECAF0
/* 085C80 800EC7D0 00000000 */ nop
/* 085C84 800EC7D4 0803B0BA */ j .L800EC2E8
/* 085C88 800EC7D8 00000000 */ nop
.L800EC7DC:
/* 085C8C 800EC7DC C66200A8 */ lwc1 $f2, 0xa8($s3)
/* 085C90 800EC7E0 3C014334 */ lui $at, 0x4334
/* 085C94 800EC7E4 44810000 */ mtc1 $at, $f0
/* 085C98 800EC7E8 C6AC006C */ lwc1 $f12, 0x6c($s5)
/* 085C9C 800EC7EC 4600103C */ c.lt.s $f2, $f0
/* 085CA0 800EC7F0 3C01C2B4 */ lui $at, 0xc2b4
/* 085CA4 800EC7F4 44810000 */ mtc1 $at, $f0
/* 085CA8 800EC7F8 45000003 */ bc1f .L800EC808
/* 085CAC 800EC7FC 00000000 */ nop
/* 085CB0 800EC800 3C0142B4 */ lui $at, 0x42b4
/* 085CB4 800EC804 44810000 */ mtc1 $at, $f0
.L800EC808:
/* 085CB8 800EC808 0C00A6C9 */ jal clamp_angle
/* 085CBC 800EC80C 46006300 */ add.s $f12, $f12, $f0
/* 085CC0 800EC810 44070000 */ mfc1 $a3, $f0
/* 085CC4 800EC814 C6600028 */ lwc1 $f0, 0x28($s3)
/* 085CC8 800EC818 3C018011 */ lui $at, 0x8011
/* 085CCC 800EC81C C424CFC0 */ lwc1 $f4, -0x3040($at)
/* 085CD0 800EC820 26240060 */ addiu $a0, $s1, 0x60
/* 085CD4 800EC824 E6200060 */ swc1 $f0, 0x60($s1)
/* 085CD8 800EC828 3C014120 */ lui $at, 0x4120
/* 085CDC 800EC82C 44810000 */ mtc1 $at, $f0
/* 085CE0 800EC830 C662002C */ lwc1 $f2, 0x2c($s3)
/* 085CE4 800EC834 46002101 */ sub.s $f4, $f4, $f0
/* 085CE8 800EC838 E6220064 */ swc1 $f2, 0x64($s1)
/* 085CEC 800EC83C C6600030 */ lwc1 $f0, 0x30($s3)
/* 085CF0 800EC840 44062000 */ mfc1 $a2, $f4
/* 085CF4 800EC844 26250068 */ addiu $a1, $s1, 0x68
/* 085CF8 800EC848 0C00A7E7 */ jal add_vec2D_polar
/* 085CFC 800EC84C E6200068 */ swc1 $f0, 0x68($s1)
/* 085D00 800EC850 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085D04 800EC854 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085D08 800EC858 8E260060 */ lw $a2, 0x60($s1)
/* 085D0C 800EC85C 0C00A720 */ jal atan2
/* 085D10 800EC860 8E270068 */ lw $a3, 0x68($s1)
/* 085D14 800EC864 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085D18 800EC868 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085D1C 800EC86C 8E260060 */ lw $a2, 0x60($s1)
/* 085D20 800EC870 8E270068 */ lw $a3, 0x68($s1)
/* 085D24 800EC874 0C00A7B5 */ jal dist2D
/* 085D28 800EC878 46000506 */ mov.s $f20, $f0
/* 085D2C 800EC87C 3C014000 */ lui $at, 0x4000
/* 085D30 800EC880 44811000 */ mtc1 $at, $f2
/* 085D34 800EC884 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085D38 800EC888 4600103C */ c.lt.s $f2, $f0
/* 085D3C 800EC88C 00000000 */ nop
/* 085D40 800EC890 45000022 */ bc1f .L800EC91C
/* 085D44 800EC894 E6220018 */ swc1 $f2, 0x18($s1)
/* 085D48 800EC898 3C038011 */ lui $v1, 0x8011
/* 085D4C 800EC89C 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 085D50 800EC8A0 3C048010 */ lui $a0, 0x8010
/* 085D54 800EC8A4 24848348 */ addiu $a0, $a0, -0x7cb8
/* 085D58 800EC8A8 E634000C */ swc1 $f20, 0xc($s1)
/* 085D5C 800EC8AC 000310C0 */ sll $v0, $v1, 3
/* 085D60 800EC8B0 00431021 */ addu $v0, $v0, $v1
/* 085D64 800EC8B4 00021080 */ sll $v0, $v0, 2
/* 085D68 800EC8B8 00442021 */ addu $a0, $v0, $a0
/* 085D6C 800EC8BC 8E220000 */ lw $v0, ($s1)
/* 085D70 800EC8C0 8C830018 */ lw $v1, 0x18($a0)
/* 085D74 800EC8C4 30424000 */ andi $v0, $v0, 0x4000
/* 085D78 800EC8C8 14400004 */ bnez $v0, .L800EC8DC
/* 085D7C 800EC8CC AE230028 */ sw $v1, 0x28($s1)
/* 085D80 800EC8D0 3C018010 */ lui $at, 0x8010
/* 085D84 800EC8D4 0803B263 */ j .L800EC98C
/* 085D88 800EC8D8 A420803A */ sh $zero, -0x7fc6($at)
.L800EC8DC:
/* 085D8C 800EC8DC 3C038010 */ lui $v1, 0x8010
/* 085D90 800EC8E0 2463803A */ addiu $v1, $v1, -0x7fc6
/* 085D94 800EC8E4 94620000 */ lhu $v0, ($v1)
/* 085D98 800EC8E8 24420001 */ addiu $v0, $v0, 1
/* 085D9C 800EC8EC A4620000 */ sh $v0, ($v1)
/* 085DA0 800EC8F0 00021400 */ sll $v0, $v0, 0x10
/* 085DA4 800EC8F4 00021403 */ sra $v0, $v0, 0x10
/* 085DA8 800EC8F8 2842000B */ slti $v0, $v0, 0xb
/* 085DAC 800EC8FC 14400023 */ bnez $v0, .L800EC98C
/* 085DB0 800EC900 00000000 */ nop
/* 085DB4 800EC904 C6740080 */ lwc1 $f20, 0x80($s3)
/* 085DB8 800EC908 AE200018 */ sw $zero, 0x18($s1)
/* 085DBC 800EC90C AE200014 */ sw $zero, 0x14($s1)
/* 085DC0 800EC910 E6340034 */ swc1 $f20, 0x34($s1)
/* 085DC4 800EC914 0803B258 */ j .L800EC960
/* 085DC8 800EC918 8C820014 */ lw $v0, 0x14($a0)
.L800EC91C:
/* 085DCC 800EC91C C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085DD0 800EC920 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085DD4 800EC924 8E660028 */ lw $a2, 0x28($s3)
/* 085DD8 800EC928 0C00A720 */ jal atan2
/* 085DDC 800EC92C 8E670030 */ lw $a3, 0x30($s3)
/* 085DE0 800EC930 3C038011 */ lui $v1, 0x8011
/* 085DE4 800EC934 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 085DE8 800EC938 46000506 */ mov.s $f20, $f0
/* 085DEC 800EC93C E634000C */ swc1 $f20, 0xc($s1)
/* 085DF0 800EC940 AE200018 */ sw $zero, 0x18($s1)
/* 085DF4 800EC944 AE200014 */ sw $zero, 0x14($s1)
/* 085DF8 800EC948 000310C0 */ sll $v0, $v1, 3
/* 085DFC 800EC94C 00431021 */ addu $v0, $v0, $v1
/* 085E00 800EC950 00021080 */ sll $v0, $v0, 2
/* 085E04 800EC954 3C018010 */ lui $at, 0x8010
/* 085E08 800EC958 00220821 */ addu $at, $at, $v0
/* 085E0C 800EC95C 8C22835C */ lw $v0, -0x7ca4($at)
.L800EC960:
/* 085E10 800EC960 3C048011 */ lui $a0, 0x8011
/* 085E14 800EC964 2484CFCA */ addiu $a0, $a0, -0x3036
/* 085E18 800EC968 AE220028 */ sw $v0, 0x28($s1)
/* 085E1C 800EC96C 84830000 */ lh $v1, ($a0)
/* 085E20 800EC970 24020002 */ addiu $v0, $zero, 2
/* 085E24 800EC974 10620004 */ beq $v1, $v0, .L800EC988
/* 085E28 800EC978 2402000C */ addiu $v0, $zero, 0xc
/* 085E2C 800EC97C 826300B4 */ lb $v1, 0xb4($s3)
/* 085E30 800EC980 14620002 */ bne $v1, $v0, .L800EC98C
/* 085E34 800EC984 00000000 */ nop
.L800EC988:
/* 085E38 800EC988 A4800000 */ sh $zero, ($a0)
.L800EC98C:
/* 085E3C 800EC98C 8E250018 */ lw $a1, 0x18($s1)
/* 085E40 800EC990 4406A000 */ mfc1 $a2, $f20
/* 085E44 800EC994 0220202D */ daddu $a0, $s1, $zero
/* 085E48 800EC998 0C00EA95 */ jal npc_move_heading
/* 085E4C 800EC99C E634000C */ swc1 $f20, 0xc($s1)
/* 085E50 800EC9A0 C6200018 */ lwc1 $f0, 0x18($s1)
/* 085E54 800EC9A4 3C014010 */ lui $at, 0x4010
/* 085E58 800EC9A8 44811800 */ mtc1 $at, $f3
/* 085E5C 800EC9AC 44801000 */ mtc1 $zero, $f2
/* 085E60 800EC9B0 46000021 */ cvt.d.s $f0, $f0
/* 085E64 800EC9B4 4622003C */ c.lt.d $f0, $f2
/* 085E68 800EC9B8 00000000 */ nop
/* 085E6C 800EC9BC 45000002 */ bc1f .L800EC9C8
/* 085E70 800EC9C0 24050001 */ addiu $a1, $zero, 1
/* 085E74 800EC9C4 0000282D */ daddu $a1, $zero, $zero
.L800EC9C8:
/* 085E78 800EC9C8 0C00F598 */ jal func_8003D660
/* 085E7C 800EC9CC 0220202D */ daddu $a0, $s1, $zero
/* 085E80 800EC9D0 862200A8 */ lh $v0, 0xa8($s1)
/* 085E84 800EC9D4 3C01447A */ lui $at, 0x447a
/* 085E88 800EC9D8 44810000 */ mtc1 $at, $f0
/* 085E8C 800EC9DC 44822000 */ mtc1 $v0, $f4
/* 085E90 800EC9E0 00000000 */ nop
/* 085E94 800EC9E4 46802120 */ cvt.s.w $f4, $f4
/* 085E98 800EC9E8 27A20034 */ addiu $v0, $sp, 0x34
/* 085E9C 800EC9EC E7A00034 */ swc1 $f0, 0x34($sp)
/* 085EA0 800EC9F0 C6260038 */ lwc1 $f6, 0x38($s1)
/* 085EA4 800EC9F4 C620003C */ lwc1 $f0, 0x3c($s1)
/* 085EA8 800EC9F8 C6220040 */ lwc1 $f2, 0x40($s1)
/* 085EAC 800EC9FC 46040000 */ add.s $f0, $f0, $f4
/* 085EB0 800ECA00 E7A60028 */ swc1 $f6, 0x28($sp)
/* 085EB4 800ECA04 E7A20030 */ swc1 $f2, 0x30($sp)
/* 085EB8 800ECA08 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 085EBC 800ECA0C AFA20010 */ sw $v0, 0x10($sp)
/* 085EC0 800ECA10 C620000C */ lwc1 $f0, 0xc($s1)
/* 085EC4 800ECA14 27A50028 */ addiu $a1, $sp, 0x28
/* 085EC8 800ECA18 E7A00014 */ swc1 $f0, 0x14($sp)
/* 085ECC 800ECA1C 862200A6 */ lh $v0, 0xa6($s1)
/* 085ED0 800ECA20 27A6002C */ addiu $a2, $sp, 0x2c
/* 085ED4 800ECA24 44820000 */ mtc1 $v0, $f0
/* 085ED8 800ECA28 00000000 */ nop
/* 085EDC 800ECA2C 46800020 */ cvt.s.w $f0, $f0
/* 085EE0 800ECA30 E7A00018 */ swc1 $f0, 0x18($sp)
/* 085EE4 800ECA34 8E240080 */ lw $a0, 0x80($s1)
/* 085EE8 800ECA38 0C0371DE */ jal func_800DC778
/* 085EEC 800ECA3C 27A70030 */ addiu $a3, $sp, 0x30
/* 085EF0 800ECA40 10400228 */ beqz $v0, .L800ED2E4
/* 085EF4 800ECA44 00000000 */ nop
/* 085EF8 800ECA48 3C108011 */ lui $s0, 0x8011
/* 085EFC 800ECA4C 2610C978 */ addiu $s0, $s0, -0x3688
/* 085F00 800ECA50 0C016F6A */ jal get_collider_type_by_id
/* 085F04 800ECA54 8E040000 */ lw $a0, ($s0)
/* 085F08 800ECA58 2442FFFE */ addiu $v0, $v0, -2
/* 085F0C 800ECA5C 2C420002 */ sltiu $v0, $v0, 2
/* 085F10 800ECA60 10400020 */ beqz $v0, .L800ECAE4
/* 085F14 800ECA64 00000000 */ nop
/* 085F18 800ECA68 3C014334 */ lui $at, 0x4334
/* 085F1C 800ECA6C 44816000 */ mtc1 $at, $f12
/* 085F20 800ECA70 0C00A6C9 */ jal clamp_angle
/* 085F24 800ECA74 460CA300 */ add.s $f12, $f20, $f12
/* 085F28 800ECA78 8E250018 */ lw $a1, 0x18($s1)
/* 085F2C 800ECA7C 44060000 */ mfc1 $a2, $f0
/* 085F30 800ECA80 0220202D */ daddu $a0, $s1, $zero
/* 085F34 800ECA84 0C00EA95 */ jal npc_move_heading
/* 085F38 800ECA88 AE26000C */ sw $a2, 0xc($s1)
/* 085F3C 800ECA8C 3C038011 */ lui $v1, 0x8011
/* 085F40 800ECA90 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 085F44 800ECA94 AE200018 */ sw $zero, 0x18($s1)
/* 085F48 800ECA98 AE200014 */ sw $zero, 0x14($s1)
/* 085F4C 800ECA9C 000310C0 */ sll $v0, $v1, 3
/* 085F50 800ECAA0 00431021 */ addu $v0, $v0, $v1
/* 085F54 800ECAA4 00021080 */ sll $v0, $v0, 2
/* 085F58 800ECAA8 3C018010 */ lui $at, 0x8010
/* 085F5C 800ECAAC 00220821 */ addu $at, $at, $v0
/* 085F60 800ECAB0 8C22835C */ lw $v0, -0x7ca4($at)
/* 085F64 800ECAB4 3C048011 */ lui $a0, 0x8011
/* 085F68 800ECAB8 2484CFCA */ addiu $a0, $a0, -0x3036
/* 085F6C 800ECABC AE220028 */ sw $v0, 0x28($s1)
/* 085F70 800ECAC0 84830000 */ lh $v1, ($a0)
/* 085F74 800ECAC4 24020002 */ addiu $v0, $zero, 2
/* 085F78 800ECAC8 10620177 */ beq $v1, $v0, .L800ED0A8
/* 085F7C 800ECACC 2402000C */ addiu $v0, $zero, 0xc
/* 085F80 800ECAD0 826300B4 */ lb $v1, 0xb4($s3)
/* 085F84 800ECAD4 14620203 */ bne $v1, $v0, .L800ED2E4
/* 085F88 800ECAD8 00000000 */ nop
/* 085F8C 800ECADC 0803B4B9 */ j .L800ED2E4
/* 085F90 800ECAE0 A4800000 */ sh $zero, ($a0)
.L800ECAE4:
/* 085F94 800ECAE4 8E040000 */ lw $a0, ($s0)
/* 085F98 800ECAE8 0803B2C9 */ j .L800ECB24
/* 085F9C 800ECAEC 00000000 */ nop
.L800ECAF0:
/* 085FA0 800ECAF0 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 085FA4 800ECAF4 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 085FA8 800ECAF8 8E660028 */ lw $a2, 0x28($s3)
/* 085FAC 800ECAFC 0C00A7B5 */ jal dist2D
/* 085FB0 800ECB00 8E670030 */ lw $a3, 0x30($s3)
/* 085FB4 800ECB04 3C018011 */ lui $at, 0x8011
/* 085FB8 800ECB08 C422CFC0 */ lwc1 $f2, -0x3040($at)
/* 085FBC 800ECB0C 4602003E */ c.le.s $f0, $f2
/* 085FC0 800ECB10 00000000 */ nop
/* 085FC4 800ECB14 4500000B */ bc1f .L800ECB44
/* 085FC8 800ECB18 E7A00034 */ swc1 $f0, 0x34($sp)
/* 085FCC 800ECB1C 3C048011 */ lui $a0, 0x8011
/* 085FD0 800ECB20 8C84C978 */ lw $a0, -0x3688($a0)
.L800ECB24:
/* 085FD4 800ECB24 0C03A92C */ jal func_800EA4B0
/* 085FD8 800ECB28 00000000 */ nop
/* 085FDC 800ECB2C 144001ED */ bnez $v0, .L800ED2E4
/* 085FE0 800ECB30 24020002 */ addiu $v0, $zero, 2
/* 085FE4 800ECB34 3C018011 */ lui $at, 0x8011
/* 085FE8 800ECB38 A422CFCA */ sh $v0, -0x3036($at)
/* 085FEC 800ECB3C 0803B4B9 */ j .L800ED2E4
/* 085FF0 800ECB40 00000000 */ nop
.L800ECB44:
/* 085FF4 800ECB44 3C0142B4 */ lui $at, 0x42b4
/* 085FF8 800ECB48 4481B000 */ mtc1 $at, $f22
/* 085FFC 800ECB4C 3C128011 */ lui $s2, 0x8011
/* 086000 800ECB50 2652CFBC */ addiu $s2, $s2, -0x3044
/* 086004 800ECB54 3C148011 */ lui $s4, 0x8011
/* 086008 800ECB58 2694CD38 */ addiu $s4, $s4, -0x32c8
.L800ECB5C:
/* 08600C 800ECB5C 82020000 */ lb $v0, ($s0)
/* 086010 800ECB60 14400028 */ bnez $v0, .L800ECC04
/* 086014 800ECB64 00000000 */ nop
/* 086018 800ECB68 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 08601C 800ECB6C C62E0040 */ lwc1 $f14, 0x40($s1)
/* 086020 800ECB70 8FA60020 */ lw $a2, 0x20($sp)
/* 086024 800ECB74 0C00A720 */ jal atan2
/* 086028 800ECB78 8FA70024 */ lw $a3, 0x24($sp)
/* 08602C 800ECB7C C62C0038 */ lwc1 $f12, 0x38($s1)
/* 086030 800ECB80 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 086034 800ECB84 8E660028 */ lw $a2, 0x28($s3)
/* 086038 800ECB88 8E670030 */ lw $a3, 0x30($s3)
/* 08603C 800ECB8C 0C00A720 */ jal atan2
/* 086040 800ECB90 46000506 */ mov.s $f20, $f0
/* 086044 800ECB94 4600A306 */ mov.s $f12, $f20
/* 086048 800ECB98 0C00A70A */ jal get_clamped_angle_diff
/* 08604C 800ECB9C 46000386 */ mov.s $f14, $f0
/* 086050 800ECBA0 46000005 */ abs.s $f0, $f0
/* 086054 800ECBA4 4616003C */ c.lt.s $f0, $f22
/* 086058 800ECBA8 00000000 */ nop
/* 08605C 800ECBAC 45010012 */ bc1t .L800ECBF8
/* 086060 800ECBB0 00000000 */ nop
/* 086064 800ECBB4 8E430000 */ lw $v1, ($s2)
/* 086068 800ECBB8 3C028011 */ lui $v0, 0x8011
/* 08606C 800ECBBC 8C42CFB8 */ lw $v0, -0x3048($v0)
/* 086070 800ECBC0 1062000D */ beq $v1, $v0, .L800ECBF8
/* 086074 800ECBC4 24620001 */ addiu $v0, $v1, 1
/* 086078 800ECBC8 AE420000 */ sw $v0, ($s2)
/* 08607C 800ECBCC 28420028 */ slti $v0, $v0, 0x28
/* 086080 800ECBD0 50400001 */ beql $v0, $zero, .L800ECBD8
/* 086084 800ECBD4 AE400000 */ sw $zero, ($s2)
.L800ECBD8:
/* 086088 800ECBD8 8E420000 */ lw $v0, ($s2)
/* 08608C 800ECBDC 00021100 */ sll $v0, $v0, 4
/* 086090 800ECBE0 00548021 */ addu $s0, $v0, $s4
/* 086094 800ECBE4 C6000004 */ lwc1 $f0, 4($s0)
/* 086098 800ECBE8 C602000C */ lwc1 $f2, 0xc($s0)
/* 08609C 800ECBEC E7A00020 */ swc1 $f0, 0x20($sp)
/* 0860A0 800ECBF0 0803B2D7 */ j .L800ECB5C
/* 0860A4 800ECBF4 E7A20024 */ swc1 $f2, 0x24($sp)
.L800ECBF8:
/* 0860A8 800ECBF8 82020000 */ lb $v0, ($s0)
/* 0860AC 800ECBFC 1040FDBA */ beqz $v0, .L800EC2E8
/* 0860B0 800ECC00 00000000 */ nop
.L800ECC04:
/* 0860B4 800ECC04 3C0142B4 */ lui $at, 0x42b4
/* 0860B8 800ECC08 4481B000 */ mtc1 $at, $f22
/* 0860BC 800ECC0C 3C128011 */ lui $s2, 0x8011
/* 0860C0 800ECC10 2652CFBC */ addiu $s2, $s2, -0x3044
/* 0860C4 800ECC14 3C148011 */ lui $s4, 0x8011
/* 0860C8 800ECC18 2694CD38 */ addiu $s4, $s4, -0x32c8
.L800ECC1C:
/* 0860CC 800ECC1C 82020000 */ lb $v0, ($s0)
/* 0860D0 800ECC20 104001AE */ beqz $v0, .L800ED2DC
/* 0860D4 800ECC24 24020001 */ addiu $v0, $zero, 1
/* 0860D8 800ECC28 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0860DC 800ECC2C C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0860E0 800ECC30 8FA60020 */ lw $a2, 0x20($sp)
/* 0860E4 800ECC34 0C00A720 */ jal atan2
/* 0860E8 800ECC38 8FA70024 */ lw $a3, 0x24($sp)
/* 0860EC 800ECC3C C62C0038 */ lwc1 $f12, 0x38($s1)
/* 0860F0 800ECC40 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 0860F4 800ECC44 8E660028 */ lw $a2, 0x28($s3)
/* 0860F8 800ECC48 8E670030 */ lw $a3, 0x30($s3)
/* 0860FC 800ECC4C 0C00A720 */ jal atan2
/* 086100 800ECC50 46000506 */ mov.s $f20, $f0
/* 086104 800ECC54 4600A306 */ mov.s $f12, $f20
/* 086108 800ECC58 0C00A70A */ jal get_clamped_angle_diff
/* 08610C 800ECC5C 46000386 */ mov.s $f14, $f0
/* 086110 800ECC60 46000005 */ abs.s $f0, $f0
/* 086114 800ECC64 4616003C */ c.lt.s $f0, $f22
/* 086118 800ECC68 00000000 */ nop
/* 08611C 800ECC6C 4501019B */ bc1t .L800ED2DC
/* 086120 800ECC70 24020001 */ addiu $v0, $zero, 1
/* 086124 800ECC74 8E430000 */ lw $v1, ($s2)
/* 086128 800ECC78 3C028011 */ lui $v0, 0x8011
/* 08612C 800ECC7C 8C42CFB8 */ lw $v0, -0x3048($v0)
/* 086130 800ECC80 1062000D */ beq $v1, $v0, .L800ECCB8
/* 086134 800ECC84 24620001 */ addiu $v0, $v1, 1
/* 086138 800ECC88 AE420000 */ sw $v0, ($s2)
/* 08613C 800ECC8C 28420028 */ slti $v0, $v0, 0x28
/* 086140 800ECC90 50400001 */ beql $v0, $zero, .L800ECC98
/* 086144 800ECC94 AE400000 */ sw $zero, ($s2)
.L800ECC98:
/* 086148 800ECC98 8E420000 */ lw $v0, ($s2)
/* 08614C 800ECC9C 00021100 */ sll $v0, $v0, 4
/* 086150 800ECCA0 00548021 */ addu $s0, $v0, $s4
/* 086154 800ECCA4 C6000004 */ lwc1 $f0, 4($s0)
/* 086158 800ECCA8 C602000C */ lwc1 $f2, 0xc($s0)
/* 08615C 800ECCAC E7A00020 */ swc1 $f0, 0x20($sp)
/* 086160 800ECCB0 0803B307 */ j .L800ECC1C
/* 086164 800ECCB4 E7A20024 */ swc1 $f2, 0x24($sp)
.L800ECCB8:
/* 086168 800ECCB8 0803B4B7 */ j .L800ED2DC
/* 08616C 800ECCBC 24020001 */ addiu $v0, $zero, 1
/* 086170 800ECCC0 3C048011 */ lui $a0, 0x8011
/* 086174 800ECCC4 2484CFCE */ addiu $a0, $a0, -0x3032
/* 086178 800ECCC8 84830000 */ lh $v1, ($a0)
/* 08617C 800ECCCC 24020001 */ addiu $v0, $zero, 1
/* 086180 800ECCD0 10620050 */ beq $v1, $v0, .L800ECE14
/* 086184 800ECCD4 28620002 */ slti $v0, $v1, 2
/* 086188 800ECCD8 50400005 */ beql $v0, $zero, .L800ECCF0
/* 08618C 800ECCDC 24020002 */ addiu $v0, $zero, 2
/* 086190 800ECCE0 10600007 */ beqz $v1, .L800ECD00
/* 086194 800ECCE4 00000000 */ nop
/* 086198 800ECCE8 0803B4B9 */ j .L800ED2E4
/* 08619C 800ECCEC 00000000 */ nop
.L800ECCF0:
/* 0861A0 800ECCF0 106200E2 */ beq $v1, $v0, .L800ED07C
/* 0861A4 800ECCF4 00000000 */ nop
/* 0861A8 800ECCF8 0803B4B9 */ j .L800ED2E4
/* 0861AC 800ECCFC 00000000 */ nop
.L800ECD00:
/* 0861B0 800ECD00 0C0394D2 */ jal func_800E5348
/* 0861B4 800ECD04 00000000 */ nop
/* 0861B8 800ECD08 3C014334 */ lui $at, 0x4334
/* 0861BC 800ECD0C 44816000 */ mtc1 $at, $f12
/* 0861C0 800ECD10 0C00A6C9 */ jal clamp_angle
/* 0861C4 800ECD14 460C0300 */ add.s $f12, $f0, $f12
/* 0861C8 800ECD18 C6620028 */ lwc1 $f2, 0x28($s3)
/* 0861CC 800ECD1C E6220060 */ swc1 $f2, 0x60($s1)
/* 0861D0 800ECD20 C662002C */ lwc1 $f2, 0x2c($s3)
/* 0861D4 800ECD24 E6220064 */ swc1 $f2, 0x64($s1)
/* 0861D8 800ECD28 C6620030 */ lwc1 $f2, 0x30($s3)
/* 0861DC 800ECD2C 26240060 */ addiu $a0, $s1, 0x60
/* 0861E0 800ECD30 E6220068 */ swc1 $f2, 0x68($s1)
/* 0861E4 800ECD34 866200B2 */ lh $v0, 0xb2($s3)
/* 0861E8 800ECD38 44070000 */ mfc1 $a3, $f0
/* 0861EC 800ECD3C 44825000 */ mtc1 $v0, $f10
/* 0861F0 800ECD40 00000000 */ nop
/* 0861F4 800ECD44 468052A0 */ cvt.s.w $f10, $f10
/* 0861F8 800ECD48 44065000 */ mfc1 $a2, $f10
/* 0861FC 800ECD4C 0C00A7E7 */ jal add_vec2D_polar
/* 086200 800ECD50 26250068 */ addiu $a1, $s1, 0x68
/* 086204 800ECD54 C62C0038 */ lwc1 $f12, 0x38($s1)
/* 086208 800ECD58 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 08620C 800ECD5C 8E260060 */ lw $a2, 0x60($s1)
/* 086210 800ECD60 0C00A7B5 */ jal dist2D
/* 086214 800ECD64 8E270068 */ lw $a3, 0x68($s1)
/* 086218 800ECD68 3C018010 */ lui $at, 0x8010
/* 08621C 800ECD6C C422802C */ lwc1 $f2, -0x7fd4($at)
/* 086220 800ECD70 468010A0 */ cvt.s.w $f2, $f2
/* 086224 800ECD74 E7A00034 */ swc1 $f0, 0x34($sp)
/* 086228 800ECD78 46020003 */ div.s $f0, $f0, $f2
/* 08622C 800ECD7C 3C018010 */ lui $at, 0x8010
/* 086230 800ECD80 E4208030 */ swc1 $f0, -0x7fd0($at)
/* 086234 800ECD84 E6200018 */ swc1 $f0, 0x18($s1)
/* 086238 800ECD88 46000021 */ cvt.d.s $f0, $f0
/* 08623C 800ECD8C 26240028 */ addiu $a0, $s1, 0x28
/* 086240 800ECD90 3C038011 */ lui $v1, 0x8011
/* 086244 800ECD94 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 086248 800ECD98 3C014010 */ lui $at, 0x4010
/* 08624C 800ECD9C 44811800 */ mtc1 $at, $f3
/* 086250 800ECDA0 44801000 */ mtc1 $zero, $f2
/* 086254 800ECDA4 000310C0 */ sll $v0, $v1, 3
/* 086258 800ECDA8 00431021 */ addu $v0, $v0, $v1
/* 08625C 800ECDAC 4620103E */ c.le.d $f2, $f0
/* 086260 800ECDB0 00000000 */ nop
/* 086264 800ECDB4 45000003 */ bc1f .L800ECDC4
/* 086268 800ECDB8 00021080 */ sll $v0, $v0, 2
/* 08626C 800ECDBC 0803B372 */ j .L800ECDC8
/* 086270 800ECDC0 24430018 */ addiu $v1, $v0, 0x18
.L800ECDC4:
/* 086274 800ECDC4 24430004 */ addiu $v1, $v0, 4
.L800ECDC8:
/* 086278 800ECDC8 3C028010 */ lui $v0, 0x8010
/* 08627C 800ECDCC 24428348 */ addiu $v0, $v0, -0x7cb8
/* 086280 800ECDD0 00431021 */ addu $v0, $v0, $v1
/* 086284 800ECDD4 8C420000 */ lw $v0, ($v0)
/* 086288 800ECDD8 AC820000 */ sw $v0, ($a0)
/* 08628C 800ECDDC C62C0038 */ lwc1 $f12, 0x38($s1)
/* 086290 800ECDE0 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 086294 800ECDE4 8E260060 */ lw $a2, 0x60($s1)
/* 086298 800ECDE8 0C00A720 */ jal atan2
/* 08629C 800ECDEC 8E270068 */ lw $a3, 0x68($s1)
/* 0862A0 800ECDF0 3C038011 */ lui $v1, 0x8011
/* 0862A4 800ECDF4 2463CFCE */ addiu $v1, $v1, -0x3032
/* 0862A8 800ECDF8 94620000 */ lhu $v0, ($v1)
/* 0862AC 800ECDFC 46000506 */ mov.s $f20, $f0
/* 0862B0 800ECE00 3C018010 */ lui $at, 0x8010
/* 0862B4 800ECE04 E4348034 */ swc1 $f20, -0x7fcc($at)
/* 0862B8 800ECE08 E634000C */ swc1 $f20, 0xc($s1)
/* 0862BC 800ECE0C 24420001 */ addiu $v0, $v0, 1
/* 0862C0 800ECE10 A4620000 */ sh $v0, ($v1)
.L800ECE14:
/* 0862C4 800ECE14 3C108010 */ lui $s0, 0x8010
/* 0862C8 800ECE18 2610802C */ addiu $s0, $s0, -0x7fd4
/* 0862CC 800ECE1C 8E020000 */ lw $v0, ($s0)
/* 0862D0 800ECE20 10400079 */ beqz $v0, .L800ED008
/* 0862D4 800ECE24 2442FFFF */ addiu $v0, $v0, -1
/* 0862D8 800ECE28 C6220014 */ lwc1 $f2, 0x14($s1)
/* 0862DC 800ECE2C 44803000 */ mtc1 $zero, $f6
/* 0862E0 800ECE30 00000000 */ nop
/* 0862E4 800ECE34 46061032 */ c.eq.s $f2, $f6
/* 0862E8 800ECE38 00000000 */ nop
/* 0862EC 800ECE3C 4501005A */ bc1t .L800ECFA8
/* 0862F0 800ECE40 AE020000 */ sw $v0, ($s0)
/* 0862F4 800ECE44 C620001C */ lwc1 $f0, 0x1c($s1)
/* 0862F8 800ECE48 46020001 */ sub.s $f0, $f0, $f2
/* 0862FC 800ECE4C C622003C */ lwc1 $f2, 0x3c($s1)
/* 086300 800ECE50 46001080 */ add.s $f2, $f2, $f0
/* 086304 800ECE54 E620001C */ swc1 $f0, 0x1c($s1)
/* 086308 800ECE58 4606003E */ c.le.s $f0, $f6
/* 08630C 800ECE5C 00000000 */ nop
/* 086310 800ECE60 4500000A */ bc1f .L800ECE8C
/* 086314 800ECE64 E622003C */ swc1 $f2, 0x3c($s1)
/* 086318 800ECE68 3C028011 */ lui $v0, 0x8011
/* 08631C 800ECE6C 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 086320 800ECE70 000218C0 */ sll $v1, $v0, 3
/* 086324 800ECE74 00621821 */ addu $v1, $v1, $v0
/* 086328 800ECE78 00031880 */ sll $v1, $v1, 2
/* 08632C 800ECE7C 3C028010 */ lui $v0, 0x8010
/* 086330 800ECE80 00431021 */ addu $v0, $v0, $v1
/* 086334 800ECE84 8C428354 */ lw $v0, -0x7cac($v0)
/* 086338 800ECE88 AE220028 */ sw $v0, 0x28($s1)
.L800ECE8C:
/* 08633C 800ECE8C C624001C */ lwc1 $f4, 0x1c($s1)
/* 086340 800ECE90 4606203E */ c.le.s $f4, $f6
/* 086344 800ECE94 00000000 */ nop
/* 086348 800ECE98 45000043 */ bc1f .L800ECFA8
/* 08634C 800ECE9C 27A20034 */ addiu $v0, $sp, 0x34
/* 086350 800ECEA0 C6200038 */ lwc1 $f0, 0x38($s1)
/* 086354 800ECEA4 3C014130 */ lui $at, 0x4130
/* 086358 800ECEA8 44811000 */ mtc1 $at, $f2
/* 08635C 800ECEAC E7A00028 */ swc1 $f0, 0x28($sp)
/* 086360 800ECEB0 46002005 */ abs.s $f0, $f4
/* 086364 800ECEB4 46020000 */ add.s $f0, $f0, $f2
/* 086368 800ECEB8 C622003C */ lwc1 $f2, 0x3c($s1)
/* 08636C 800ECEBC C6240040 */ lwc1 $f4, 0x40($s1)
/* 086370 800ECEC0 46001080 */ add.s $f2, $f2, $f0
/* 086374 800ECEC4 E7A40030 */ swc1 $f4, 0x30($sp)
/* 086378 800ECEC8 E7A00034 */ swc1 $f0, 0x34($sp)
/* 08637C 800ECECC E7A2002C */ swc1 $f2, 0x2c($sp)
/* 086380 800ECED0 AFA20010 */ sw $v0, 0x10($sp)
/* 086384 800ECED4 C620000C */ lwc1 $f0, 0xc($s1)
/* 086388 800ECED8 27A50028 */ addiu $a1, $sp, 0x28
/* 08638C 800ECEDC E7A00014 */ swc1 $f0, 0x14($sp)
/* 086390 800ECEE0 862200A6 */ lh $v0, 0xa6($s1)
/* 086394 800ECEE4 27A6002C */ addiu $a2, $sp, 0x2c
/* 086398 800ECEE8 44820000 */ mtc1 $v0, $f0
/* 08639C 800ECEEC 00000000 */ nop
/* 0863A0 800ECEF0 46800020 */ cvt.s.w $f0, $f0
/* 0863A4 800ECEF4 E7A00018 */ swc1 $f0, 0x18($sp)
/* 0863A8 800ECEF8 8E240080 */ lw $a0, 0x80($s1)
/* 0863AC 800ECEFC 0C0371DE */ jal func_800DC778
/* 0863B0 800ECF00 27A70030 */ addiu $a3, $sp, 0x30
/* 0863B4 800ECF04 10400028 */ beqz $v0, .L800ECFA8
/* 0863B8 800ECF08 00000000 */ nop
/* 0863BC 800ECF0C C620001C */ lwc1 $f0, 0x1c($s1)
/* 0863C0 800ECF10 3C0141B0 */ lui $at, 0x41b0
/* 0863C4 800ECF14 44811000 */ mtc1 $at, $f2
/* 0863C8 800ECF18 46000005 */ abs.s $f0, $f0
/* 0863CC 800ECF1C 46020000 */ add.s $f0, $f0, $f2
/* 0863D0 800ECF20 C7A20034 */ lwc1 $f2, 0x34($sp)
/* 0863D4 800ECF24 4600103E */ c.le.s $f2, $f0
/* 0863D8 800ECF28 00000000 */ nop
/* 0863DC 800ECF2C 4500001E */ bc1f .L800ECFA8
/* 0863E0 800ECF30 26240028 */ addiu $a0, $s1, 0x28
/* 0863E4 800ECF34 C6200018 */ lwc1 $f0, 0x18($s1)
/* 0863E8 800ECF38 3C014010 */ lui $at, 0x4010
/* 0863EC 800ECF3C 44811800 */ mtc1 $at, $f3
/* 0863F0 800ECF40 44801000 */ mtc1 $zero, $f2
/* 0863F4 800ECF44 3C038011 */ lui $v1, 0x8011
/* 0863F8 800ECF48 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 0863FC 800ECF4C 46000021 */ cvt.d.s $f0, $f0
/* 086400 800ECF50 000310C0 */ sll $v0, $v1, 3
/* 086404 800ECF54 00431021 */ addu $v0, $v0, $v1
/* 086408 800ECF58 4620103E */ c.le.d $f2, $f0
/* 08640C 800ECF5C 00000000 */ nop
/* 086410 800ECF60 45000003 */ bc1f .L800ECF70
/* 086414 800ECF64 00021080 */ sll $v0, $v0, 2
/* 086418 800ECF68 0803B3DD */ j .L800ECF74
/* 08641C 800ECF6C 24430018 */ addiu $v1, $v0, 0x18
.L800ECF70:
/* 086420 800ECF70 24430004 */ addiu $v1, $v0, 4
.L800ECF74:
/* 086424 800ECF74 3C028010 */ lui $v0, 0x8010
/* 086428 800ECF78 24428348 */ addiu $v0, $v0, -0x7cb8
/* 08642C 800ECF7C 00431021 */ addu $v0, $v0, $v1
/* 086430 800ECF80 8C420000 */ lw $v0, ($v0)
/* 086434 800ECF84 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 086438 800ECF88 AC820000 */ sw $v0, ($a0)
/* 08643C 800ECF8C 8E220000 */ lw $v0, ($s1)
/* 086440 800ECF90 2403F7FF */ addiu $v1, $zero, -0x801
/* 086444 800ECF94 AE200014 */ sw $zero, 0x14($s1)
/* 086448 800ECF98 AE20001C */ sw $zero, 0x1c($s1)
/* 08644C 800ECF9C E620003C */ swc1 $f0, 0x3c($s1)
/* 086450 800ECFA0 00431024 */ and $v0, $v0, $v1
/* 086454 800ECFA4 AE220000 */ sw $v0, ($s1)
.L800ECFA8:
/* 086458 800ECFA8 3C018010 */ lui $at, 0x8010
/* 08645C 800ECFAC C4208030 */ lwc1 $f0, -0x7fd0($at)
/* 086460 800ECFB0 E6200018 */ swc1 $f0, 0x18($s1)
/* 086464 800ECFB4 3C018010 */ lui $at, 0x8010
/* 086468 800ECFB8 C4208034 */ lwc1 $f0, -0x7fcc($at)
/* 08646C 800ECFBC 8E250018 */ lw $a1, 0x18($s1)
/* 086470 800ECFC0 44060000 */ mfc1 $a2, $f0
/* 086474 800ECFC4 0220202D */ daddu $a0, $s1, $zero
/* 086478 800ECFC8 0C00EA95 */ jal npc_move_heading
/* 08647C 800ECFCC AE26000C */ sw $a2, 0xc($s1)
/* 086480 800ECFD0 C6200018 */ lwc1 $f0, 0x18($s1)
/* 086484 800ECFD4 3C014010 */ lui $at, 0x4010
/* 086488 800ECFD8 44811800 */ mtc1 $at, $f3
/* 08648C 800ECFDC 44801000 */ mtc1 $zero, $f2
/* 086490 800ECFE0 46000021 */ cvt.d.s $f0, $f0
/* 086494 800ECFE4 4622003C */ c.lt.d $f0, $f2
/* 086498 800ECFE8 00000000 */ nop
/* 08649C 800ECFEC 45000002 */ bc1f .L800ECFF8
/* 0864A0 800ECFF0 24050001 */ addiu $a1, $zero, 1
/* 0864A4 800ECFF4 0000282D */ daddu $a1, $zero, $zero
.L800ECFF8:
/* 0864A8 800ECFF8 0C00F598 */ jal func_8003D660
/* 0864AC 800ECFFC 0220202D */ daddu $a0, $s1, $zero
/* 0864B0 800ED000 0803B4B9 */ j .L800ED2E4
/* 0864B4 800ED004 00000000 */ nop
.L800ED008:
/* 0864B8 800ED008 0C03BD17 */ jal clear_partner_move_history
/* 0864BC 800ED00C 0220202D */ daddu $a0, $s1, $zero
/* 0864C0 800ED010 3C038011 */ lui $v1, 0x8011
/* 0864C4 800ED014 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 0864C8 800ED018 3C014387 */ lui $at, 0x4387
/* 0864CC 800ED01C 44810000 */ mtc1 $at, $f0
/* 0864D0 800ED020 AE200018 */ sw $zero, 0x18($s1)
/* 0864D4 800ED024 AE200014 */ sw $zero, 0x14($s1)
/* 0864D8 800ED028 000310C0 */ sll $v0, $v1, 3
/* 0864DC 800ED02C 00431021 */ addu $v0, $v0, $v1
/* 0864E0 800ED030 00021080 */ sll $v0, $v0, 2
/* 0864E4 800ED034 3C018010 */ lui $at, 0x8010
/* 0864E8 800ED038 00220821 */ addu $at, $at, $v0
/* 0864EC 800ED03C 8C22835C */ lw $v0, -0x7ca4($at)
/* 0864F0 800ED040 AE220028 */ sw $v0, 0x28($s1)
/* 0864F4 800ED044 C6AC006C */ lwc1 $f12, 0x6c($s5)
/* 0864F8 800ED048 46006300 */ add.s $f12, $f12, $f0
/* 0864FC 800ED04C C66000A8 */ lwc1 $f0, 0xa8($s3)
/* 086500 800ED050 0C00A6C9 */ jal clamp_angle
/* 086504 800ED054 46006301 */ sub.s $f12, $f12, $f0
/* 086508 800ED058 3C048011 */ lui $a0, 0x8011
/* 08650C 800ED05C 2484CFCE */ addiu $a0, $a0, -0x3032
/* 086510 800ED060 E620000C */ swc1 $f0, 0xc($s1)
/* 086514 800ED064 94820000 */ lhu $v0, ($a0)
/* 086518 800ED068 2403001E */ addiu $v1, $zero, 0x1e
/* 08651C 800ED06C AE030000 */ sw $v1, ($s0)
/* 086520 800ED070 24420001 */ addiu $v0, $v0, 1
/* 086524 800ED074 0803B4B9 */ j .L800ED2E4
/* 086528 800ED078 A4820000 */ sh $v0, ($a0)
.L800ED07C:
/* 08652C 800ED07C 3C038010 */ lui $v1, 0x8010
/* 086530 800ED080 2463802C */ addiu $v1, $v1, -0x7fd4
/* 086534 800ED084 8C620000 */ lw $v0, ($v1)
/* 086538 800ED088 10400003 */ beqz $v0, .L800ED098
/* 08653C 800ED08C 2442FFFF */ addiu $v0, $v0, -1
/* 086540 800ED090 0803B4B9 */ j .L800ED2E4
/* 086544 800ED094 AC620000 */ sw $v0, ($v1)
.L800ED098:
/* 086548 800ED098 3C018011 */ lui $at, 0x8011
/* 08654C 800ED09C A420CFC8 */ sh $zero, -0x3038($at)
/* 086550 800ED0A0 3C018011 */ lui $at, 0x8011
/* 086554 800ED0A4 A420CFCA */ sh $zero, -0x3036($at)
.L800ED0A8:
/* 086558 800ED0A8 0803B4B9 */ j .L800ED2E4
/* 08655C 800ED0AC A4800000 */ sh $zero, ($a0)
/* 086560 800ED0B0 0220202D */ daddu $a0, $s1, $zero
/* 086564 800ED0B4 0C03BE0B */ jal func_800EF82C
/* 086568 800ED0B8 0000282D */ daddu $a1, $zero, $zero
/* 08656C 800ED0BC 0803B4B9 */ j .L800ED2E4
/* 086570 800ED0C0 00000000 */ nop
/* 086574 800ED0C4 8E220000 */ lw $v0, ($s1)
/* 086578 800ED0C8 30421000 */ andi $v0, $v0, 0x1000
/* 08657C 800ED0CC 10400012 */ beqz $v0, .L800ED118
/* 086580 800ED0D0 00000000 */ nop
/* 086584 800ED0D4 0C03A92C */ jal func_800EA4B0
/* 086588 800ED0D8 86240084 */ lh $a0, 0x84($s1)
/* 08658C 800ED0DC 1040007F */ beqz $v0, .L800ED2DC
/* 086590 800ED0E0 24020001 */ addiu $v0, $zero, 1
/* 086594 800ED0E4 3C038011 */ lui $v1, 0x8011
/* 086598 800ED0E8 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 08659C 800ED0EC 000310C0 */ sll $v0, $v1, 3
/* 0865A0 800ED0F0 00431021 */ addu $v0, $v0, $v1
/* 0865A4 800ED0F4 00021080 */ sll $v0, $v0, 2
/* 0865A8 800ED0F8 3C038010 */ lui $v1, 0x8010
/* 0865AC 800ED0FC 00621821 */ addu $v1, $v1, $v0
/* 0865B0 800ED100 8C63835C */ lw $v1, -0x7ca4($v1)
/* 0865B4 800ED104 24020032 */ addiu $v0, $zero, 0x32
/* 0865B8 800ED108 3C018011 */ lui $at, 0x8011
/* 0865BC 800ED10C A422CFC8 */ sh $v0, -0x3038($at)
/* 0865C0 800ED110 0803B4B9 */ j .L800ED2E4
/* 0865C4 800ED114 AE230028 */ sw $v1, 0x28($s1)
.L800ED118:
/* 0865C8 800ED118 3C014040 */ lui $at, 0x4040
/* 0865CC 800ED11C 44812000 */ mtc1 $at, $f4
/* 0865D0 800ED120 C620001C */ lwc1 $f0, 0x1c($s1)
/* 0865D4 800ED124 46040001 */ sub.s $f0, $f0, $f4
/* 0865D8 800ED128 C622003C */ lwc1 $f2, 0x3c($s1)
/* 0865DC 800ED12C 4480A000 */ mtc1 $zero, $f20
/* 0865E0 800ED130 46001080 */ add.s $f2, $f2, $f0
/* 0865E4 800ED134 E6240014 */ swc1 $f4, 0x14($s1)
/* 0865E8 800ED138 4614003E */ c.le.s $f0, $f20
/* 0865EC 800ED13C E620001C */ swc1 $f0, 0x1c($s1)
/* 0865F0 800ED140 4500000A */ bc1f .L800ED16C
/* 0865F4 800ED144 E622003C */ swc1 $f2, 0x3c($s1)
/* 0865F8 800ED148 3C028011 */ lui $v0, 0x8011
/* 0865FC 800ED14C 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 086600 800ED150 000218C0 */ sll $v1, $v0, 3
/* 086604 800ED154 00621821 */ addu $v1, $v1, $v0
/* 086608 800ED158 00031880 */ sll $v1, $v1, 2
/* 08660C 800ED15C 3C028010 */ lui $v0, 0x8010
/* 086610 800ED160 00431021 */ addu $v0, $v0, $v1
/* 086614 800ED164 8C428354 */ lw $v0, -0x7cac($v0)
/* 086618 800ED168 AE220028 */ sw $v0, 0x28($s1)
.L800ED16C:
/* 08661C 800ED16C C622003C */ lwc1 $f2, 0x3c($s1)
/* 086620 800ED170 3C01C4FA */ lui $at, 0xc4fa
/* 086624 800ED174 44810000 */ mtc1 $at, $f0
/* 086628 800ED178 00000000 */ nop
/* 08662C 800ED17C 4600103C */ c.lt.s $f2, $f0
/* 086630 800ED180 00000000 */ nop
/* 086634 800ED184 4500001E */ bc1f .L800ED200
/* 086638 800ED188 2404F7FF */ addiu $a0, $zero, -0x801
/* 08663C 800ED18C C62C0038 */ lwc1 $f12, 0x38($s1)
/* 086640 800ED190 3C028011 */ lui $v0, 0x8011
/* 086644 800ED194 8C42CFD8 */ lw $v0, -0x3028($v0)
/* 086648 800ED198 C62E0040 */ lwc1 $f14, 0x40($s1)
/* 08664C 800ED19C 000218C0 */ sll $v1, $v0, 3
/* 086650 800ED1A0 00621821 */ addu $v1, $v1, $v0
/* 086654 800ED1A4 00031880 */ sll $v1, $v1, 2
/* 086658 800ED1A8 8E220000 */ lw $v0, ($s1)
/* 08665C 800ED1AC 3C018010 */ lui $at, 0x8010
/* 086660 800ED1B0 00230821 */ addu $at, $at, $v1
/* 086664 800ED1B4 8C23835C */ lw $v1, -0x7ca4($at)
/* 086668 800ED1B8 E634001C */ swc1 $f20, 0x1c($s1)
/* 08666C 800ED1BC 00441024 */ and $v0, $v0, $a0
/* 086670 800ED1C0 AE220000 */ sw $v0, ($s1)
/* 086674 800ED1C4 AE230028 */ sw $v1, 0x28($s1)
/* 086678 800ED1C8 8E660028 */ lw $a2, 0x28($s3)
/* 08667C 800ED1CC 0C00A720 */ jal atan2
/* 086680 800ED1D0 8E670030 */ lw $a3, 0x30($s3)
/* 086684 800ED1D4 E620000C */ swc1 $f0, 0xc($s1)
/* 086688 800ED1D8 C6600028 */ lwc1 $f0, 0x28($s3)
/* 08668C 800ED1DC E6200038 */ swc1 $f0, 0x38($s1)
/* 086690 800ED1E0 C660002C */ lwc1 $f0, 0x2c($s3)
/* 086694 800ED1E4 E620003C */ swc1 $f0, 0x3c($s1)
/* 086698 800ED1E8 C6600030 */ lwc1 $f0, 0x30($s3)
/* 08669C 800ED1EC 24020032 */ addiu $v0, $zero, 0x32
.L800ED1F0:
/* 0866A0 800ED1F0 3C018011 */ lui $at, 0x8011
/* 0866A4 800ED1F4 A422CFC8 */ sh $v0, -0x3038($at)
/* 0866A8 800ED1F8 0803B4B9 */ j .L800ED2E4
/* 0866AC 800ED1FC E6200040 */ swc1 $f0, 0x40($s1)
.L800ED200:
/* 0866B0 800ED200 C6200038 */ lwc1 $f0, 0x38($s1)
/* 0866B4 800ED204 27A20034 */ addiu $v0, $sp, 0x34
/* 0866B8 800ED208 E7A00028 */ swc1 $f0, 0x28($sp)
/* 0866BC 800ED20C C620001C */ lwc1 $f0, 0x1c($s1)
/* 0866C0 800ED210 3C014130 */ lui $at, 0x4130
/* 0866C4 800ED214 44811000 */ mtc1 $at, $f2
/* 0866C8 800ED218 46000005 */ abs.s $f0, $f0
/* 0866CC 800ED21C 46020000 */ add.s $f0, $f0, $f2
/* 0866D0 800ED220 C622003C */ lwc1 $f2, 0x3c($s1)
/* 0866D4 800ED224 C6240040 */ lwc1 $f4, 0x40($s1)
/* 0866D8 800ED228 46001080 */ add.s $f2, $f2, $f0
/* 0866DC 800ED22C E7A40030 */ swc1 $f4, 0x30($sp)
/* 0866E0 800ED230 E7A00034 */ swc1 $f0, 0x34($sp)
/* 0866E4 800ED234 E7A2002C */ swc1 $f2, 0x2c($sp)
/* 0866E8 800ED238 AFA20010 */ sw $v0, 0x10($sp)
/* 0866EC 800ED23C C620000C */ lwc1 $f0, 0xc($s1)
/* 0866F0 800ED240 27A50028 */ addiu $a1, $sp, 0x28
/* 0866F4 800ED244 E7A00014 */ swc1 $f0, 0x14($sp)
/* 0866F8 800ED248 862200A6 */ lh $v0, 0xa6($s1)
/* 0866FC 800ED24C 27A6002C */ addiu $a2, $sp, 0x2c
/* 086700 800ED250 44820000 */ mtc1 $v0, $f0
/* 086704 800ED254 00000000 */ nop
/* 086708 800ED258 46800020 */ cvt.s.w $f0, $f0
/* 08670C 800ED25C E7A00018 */ swc1 $f0, 0x18($sp)
/* 086710 800ED260 8E240080 */ lw $a0, 0x80($s1)
/* 086714 800ED264 0C0371DE */ jal func_800DC778
/* 086718 800ED268 27A70030 */ addiu $a3, $sp, 0x30
/* 08671C 800ED26C 1040001D */ beqz $v0, .L800ED2E4
/* 086720 800ED270 00000000 */ nop
/* 086724 800ED274 C7AC0028 */ lwc1 $f12, 0x28($sp)
/* 086728 800ED278 3C038011 */ lui $v1, 0x8011
/* 08672C 800ED27C 8C63CFD8 */ lw $v1, -0x3028($v1)
/* 086730 800ED280 C7AE0030 */ lwc1 $f14, 0x30($sp)
/* 086734 800ED284 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 086738 800ED288 000310C0 */ sll $v0, $v1, 3
/* 08673C 800ED28C 00431021 */ addu $v0, $v0, $v1
/* 086740 800ED290 00021080 */ sll $v0, $v0, 2
/* 086744 800ED294 3C048010 */ lui $a0, 0x8010
/* 086748 800ED298 00822021 */ addu $a0, $a0, $v0
/* 08674C 800ED29C 8C84835C */ lw $a0, -0x7ca4($a0)
/* 086750 800ED2A0 8E220000 */ lw $v0, ($s1)
/* 086754 800ED2A4 2403F7FF */ addiu $v1, $zero, -0x801
/* 086758 800ED2A8 E634001C */ swc1 $f20, 0x1c($s1)
/* 08675C 800ED2AC E620003C */ swc1 $f0, 0x3c($s1)
/* 086760 800ED2B0 00431024 */ and $v0, $v0, $v1
/* 086764 800ED2B4 AE220000 */ sw $v0, ($s1)
/* 086768 800ED2B8 AE240028 */ sw $a0, 0x28($s1)
/* 08676C 800ED2BC 8E660028 */ lw $a2, 0x28($s3)
/* 086770 800ED2C0 0C00A720 */ jal atan2
/* 086774 800ED2C4 8E670030 */ lw $a3, 0x30($s3)
/* 086778 800ED2C8 0220202D */ daddu $a0, $s1, $zero
/* 08677C 800ED2CC 24050002 */ addiu $a1, $zero, 2
/* 086780 800ED2D0 0C00F598 */ jal func_8003D660
/* 086784 800ED2D4 E480000C */ swc1 $f0, 0xc($a0)
/* 086788 800ED2D8 24020032 */ addiu $v0, $zero, 0x32
.L800ED2DC:
/* 08678C 800ED2DC 3C018011 */ lui $at, 0x8011
/* 086790 800ED2E0 A422CFC8 */ sh $v0, -0x3038($at)
.L800ED2E4:
/* 086794 800ED2E4 8FBF0050 */ lw $ra, 0x50($sp)
/* 086798 800ED2E8 8FB5004C */ lw $s5, 0x4c($sp)
/* 08679C 800ED2EC 8FB40048 */ lw $s4, 0x48($sp)
/* 0867A0 800ED2F0 8FB30044 */ lw $s3, 0x44($sp)
/* 0867A4 800ED2F4 8FB20040 */ lw $s2, 0x40($sp)
/* 0867A8 800ED2F8 8FB1003C */ lw $s1, 0x3c($sp)
/* 0867AC 800ED2FC 8FB00038 */ lw $s0, 0x38($sp)
/* 0867B0 800ED300 D7B60060 */ ldc1 $f22, 0x60($sp)
/* 0867B4 800ED304 D7B40058 */ ldc1 $f20, 0x58($sp)
/* 0867B8 800ED308 03E00008 */ jr $ra
/* 0867BC 800ED30C 27BD0068 */ addiu $sp, $sp, 0x68