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

137 lines
6.3 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800E2304
/* 07B7B4 800E2304 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 07B7B8 800E2308 AFB10014 */ sw $s1, 0x14($sp)
/* 07B7BC 800E230C 0080882D */ daddu $s1, $a0, $zero
/* 07B7C0 800E2310 AFB20018 */ sw $s2, 0x18($sp)
/* 07B7C4 800E2314 00A0902D */ daddu $s2, $a1, $zero
/* 07B7C8 800E2318 3C038011 */ lui $v1, 0x8011
/* 07B7CC 800E231C 2463EFC8 */ addiu $v1, $v1, -0x1038
/* 07B7D0 800E2320 AFBF001C */ sw $ra, 0x1c($sp)
/* 07B7D4 800E2324 AFB00010 */ sw $s0, 0x10($sp)
/* 07B7D8 800E2328 F7BC0040 */ sdc1 $f28, 0x40($sp)
/* 07B7DC 800E232C F7BA0038 */ sdc1 $f26, 0x38($sp)
/* 07B7E0 800E2330 F7B80030 */ sdc1 $f24, 0x30($sp)
/* 07B7E4 800E2334 F7B60028 */ sdc1 $f22, 0x28($sp)
/* 07B7E8 800E2338 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 07B7EC 800E233C C47C00E8 */ lwc1 $f28, 0xe8($v1)
/* 07B7F0 800E2340 4680E720 */ cvt.s.w $f28, $f28
/* 07B7F4 800E2344 0060802D */ daddu $s0, $v1, $zero
/* 07B7F8 800E2348 4480D000 */ mtc1 $zero, $f26
/* 07B7FC 800E234C 4406E000 */ mfc1 $a2, $f28
/* 07B800 800E2350 8C6200EC */ lw $v0, 0xec($v1)
/* 07B804 800E2354 4600D306 */ mov.s $f12, $f26
/* 07B808 800E2358 00021023 */ negu $v0, $v0
/* 07B80C 800E235C 4482C000 */ mtc1 $v0, $f24
/* 07B810 800E2360 00000000 */ nop
/* 07B814 800E2364 4680C620 */ cvt.s.w $f24, $f24
/* 07B818 800E2368 4407C000 */ mfc1 $a3, $f24
/* 07B81C 800E236C 0C00A7B5 */ jal dist2D
/* 07B820 800E2370 4600D386 */ mov.s $f14, $f26
/* 07B824 800E2374 3C01428C */ lui $at, 0x428c
/* 07B828 800E2378 4481B000 */ mtc1 $at, $f22
/* 07B82C 800E237C 46000506 */ mov.s $f20, $f0
/* 07B830 800E2380 4614B03E */ c.le.s $f22, $f20
/* 07B834 800E2384 00000000 */ nop
/* 07B838 800E2388 45030001 */ bc1tl .L800E2390
/* 07B83C 800E238C 4600B506 */ mov.s $f20, $f22
.L800E2390:
/* 07B840 800E2390 4600D306 */ mov.s $f12, $f26
/* 07B844 800E2394 4406E000 */ mfc1 $a2, $f28
/* 07B848 800E2398 4407C000 */ mfc1 $a3, $f24
/* 07B84C 800E239C 0C00A720 */ jal atan2
/* 07B850 800E23A0 4600D386 */ mov.s $f14, $f26
/* 07B854 800E23A4 3C01800B */ lui $at, 0x800b
/* 07B858 800E23A8 C42C1DEC */ lwc1 $f12, 0x1dec($at)
/* 07B85C 800E23AC 0C00A6C9 */ jal clamp_angle
/* 07B860 800E23B0 460C0300 */ add.s $f12, $f0, $f12
/* 07B864 800E23B4 461AA032 */ c.eq.s $f20, $f26
/* 07B868 800E23B8 00000000 */ nop
/* 07B86C 800E23BC 45020003 */ bc1fl .L800E23CC
/* 07B870 800E23C0 E6200000 */ swc1 $f0, ($s1)
/* 07B874 800E23C4 C6000080 */ lwc1 $f0, 0x80($s0)
/* 07B878 800E23C8 E6200000 */ swc1 $f0, ($s1)
.L800E23CC:
/* 07B87C 800E23CC E6540000 */ swc1 $f20, ($s2)
/* 07B880 800E23D0 8FBF001C */ lw $ra, 0x1c($sp)
/* 07B884 800E23D4 8FB20018 */ lw $s2, 0x18($sp)
/* 07B888 800E23D8 8FB10014 */ lw $s1, 0x14($sp)
/* 07B88C 800E23DC 8FB00010 */ lw $s0, 0x10($sp)
/* 07B890 800E23E0 D7BC0040 */ ldc1 $f28, 0x40($sp)
/* 07B894 800E23E4 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* 07B898 800E23E8 D7B80030 */ ldc1 $f24, 0x30($sp)
/* 07B89C 800E23EC D7B60028 */ ldc1 $f22, 0x28($sp)
/* 07B8A0 800E23F0 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 07B8A4 800E23F4 03E00008 */ jr $ra
/* 07B8A8 800E23F8 27BD0048 */ addiu $sp, $sp, 0x48
/* 07B8AC 800E23FC 3C038007 */ lui $v1, 0x8007
/* 07B8B0 800E2400 8C63419C */ lw $v1, 0x419c($v1)
/* 07B8B4 800E2404 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 07B8B8 800E2408 F7BA0038 */ sdc1 $f26, 0x38($sp)
/* 07B8BC 800E240C 4480D000 */ mtc1 $zero, $f26
/* 07B8C0 800E2410 AFB00010 */ sw $s0, 0x10($sp)
/* 07B8C4 800E2414 0080802D */ daddu $s0, $a0, $zero
/* 07B8C8 800E2418 AFB10014 */ sw $s1, 0x14($sp)
/* 07B8CC 800E241C 00A0882D */ daddu $s1, $a1, $zero
/* 07B8D0 800E2420 AFBF0018 */ sw $ra, 0x18($sp)
/* 07B8D4 800E2424 F7BC0040 */ sdc1 $f28, 0x40($sp)
/* 07B8D8 800E2428 F7B80030 */ sdc1 $f24, 0x30($sp)
/* 07B8DC 800E242C F7B60028 */ sdc1 $f22, 0x28($sp)
/* 07B8E0 800E2430 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 07B8E4 800E2434 80620040 */ lb $v0, 0x40($v1)
/* 07B8E8 800E2438 4600D306 */ mov.s $f12, $f26
/* 07B8EC 800E243C 4482E000 */ mtc1 $v0, $f28
/* 07B8F0 800E2440 00000000 */ nop
/* 07B8F4 800E2444 4680E720 */ cvt.s.w $f28, $f28
/* 07B8F8 800E2448 80620044 */ lb $v0, 0x44($v1)
/* 07B8FC 800E244C 4406E000 */ mfc1 $a2, $f28
/* 07B900 800E2450 00021023 */ negu $v0, $v0
/* 07B904 800E2454 4482C000 */ mtc1 $v0, $f24
/* 07B908 800E2458 00000000 */ nop
/* 07B90C 800E245C 4680C620 */ cvt.s.w $f24, $f24
/* 07B910 800E2460 4407C000 */ mfc1 $a3, $f24
/* 07B914 800E2464 0C00A7B5 */ jal dist2D
/* 07B918 800E2468 4600D386 */ mov.s $f14, $f26
/* 07B91C 800E246C 3C01428C */ lui $at, 0x428c
/* 07B920 800E2470 4481B000 */ mtc1 $at, $f22
/* 07B924 800E2474 46000506 */ mov.s $f20, $f0
/* 07B928 800E2478 4614B03E */ c.le.s $f22, $f20
/* 07B92C 800E247C 00000000 */ nop
/* 07B930 800E2480 45030001 */ bc1tl .L800E2488
/* 07B934 800E2484 4600B506 */ mov.s $f20, $f22
.L800E2488:
/* 07B938 800E2488 4600D306 */ mov.s $f12, $f26
/* 07B93C 800E248C 4406E000 */ mfc1 $a2, $f28
/* 07B940 800E2490 4407C000 */ mfc1 $a3, $f24
/* 07B944 800E2494 0C00A720 */ jal atan2
/* 07B948 800E2498 4600D386 */ mov.s $f14, $f26
/* 07B94C 800E249C 3C01800B */ lui $at, 0x800b
/* 07B950 800E24A0 C42C1DEC */ lwc1 $f12, 0x1dec($at)
/* 07B954 800E24A4 0C00A6C9 */ jal clamp_angle
/* 07B958 800E24A8 460C0300 */ add.s $f12, $f0, $f12
/* 07B95C 800E24AC 461AA032 */ c.eq.s $f20, $f26
/* 07B960 800E24B0 00000000 */ nop
/* 07B964 800E24B4 45020005 */ bc1fl .L800E24CC
/* 07B968 800E24B8 E6000000 */ swc1 $f0, ($s0)
/* 07B96C 800E24BC 3C028011 */ lui $v0, 0x8011
/* 07B970 800E24C0 2442EFC8 */ addiu $v0, $v0, -0x1038
/* 07B974 800E24C4 C4400080 */ lwc1 $f0, 0x80($v0)
/* 07B978 800E24C8 E6000000 */ swc1 $f0, ($s0)
.L800E24CC:
/* 07B97C 800E24CC E6340000 */ swc1 $f20, ($s1)
/* 07B980 800E24D0 8FBF0018 */ lw $ra, 0x18($sp)
/* 07B984 800E24D4 8FB10014 */ lw $s1, 0x14($sp)
/* 07B988 800E24D8 8FB00010 */ lw $s0, 0x10($sp)
/* 07B98C 800E24DC D7BC0040 */ ldc1 $f28, 0x40($sp)
/* 07B990 800E24E0 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* 07B994 800E24E4 D7B80030 */ ldc1 $f24, 0x30($sp)
/* 07B998 800E24E8 D7B60028 */ ldc1 $f22, 0x28($sp)
/* 07B99C 800E24EC D7B40020 */ ldc1 $f20, 0x20($sp)
/* 07B9A0 800E24F0 03E00008 */ jr $ra
/* 07B9A4 800E24F4 27BD0048 */ addiu $sp, $sp, 0x48