oot/asm/non_matchings/code/z_camera/Camera_Battle1.s

1211 lines
56 KiB
ArmAsm

.rdata
glabel D_80139168
.asciz "\x1B[43;30mcamera: warning: battle: target is not valid, change parallel\n\x1B[m"
.balign 4
glabel D_801391B4
.asciz "camera: battle: target actor name \x1B[34m%d\x1B[m\n"
.balign 4
glabel D_801391E4
.asciz "camera: battle: target actor name \x1B[41;37m%d\x1B[m\n"
.balign 4
glabel D_80139218
.asciz "camera: battle: change target %d -> \x1B[34m%d\x1B[m\n"
.balign 4
.late_rodata
glabel D_80139FD4
.float 0.01
glabel D_80139FD8
.float 0.01
glabel D_80139FDC
.float 0.01
glabel D_80139FE0
.float 0.2
glabel D_80139FE4
.float 0.01
glabel D_80139FE8
.float 0.2
glabel D_80139FEC
.float 0.01
glabel D_80139FF0
.float 0.01
glabel D_80139FF4
.float 0.01
glabel D_80139FF8
.float 0.01
glabel D_80139FFC
.float 0.01
glabel D_8013A000
.float 0.01
glabel D_8013A004
.float 0.01
glabel D_8013A008
.float 0.05
glabel D_8013A00C
.float -0.1
glabel D_8013A010
.float 1.1
glabel D_8013A014
.float 0.01
glabel D_8013A018
.float 0.01
glabel D_8013A01C
.float 0.01
glabel D_8013A020
.float 0.01
glabel D_8013A024
.float 182.041671753
glabel D_8013A028
.float 0.00549325020984
glabel D_8013A02C
.float 182.041671753
glabel D_8013A030
.float 182.041671753
glabel D_8013A034
.float 0.05
glabel D_8013A038
.float 182.041671753
glabel D_8013A03C
.float 0.01
glabel D_8013A040
.float 182.041671753
glabel D_8013A044
.float 0.8
glabel D_8013A048
.float 0.8
glabel D_8013A04C
.float 0.05
.text
glabel Camera_Battle1
/* AC2740 8004B5A0 27BDFEC0 */ addiu $sp, $sp, -0x140
/* AC2744 8004B5A4 AFB00024 */ sw $s0, 0x24($sp)
/* AC2748 8004B5A8 00808025 */ move $s0, $a0
/* AC274C 8004B5AC AFBF002C */ sw $ra, 0x2c($sp)
/* AC2750 8004B5B0 AFB10028 */ sw $s1, 0x28($sp)
/* AC2754 8004B5B4 AFA000E8 */ sw $zero, 0xe8($sp)
/* AC2758 8004B5B8 8C840090 */ lw $a0, 0x90($a0)
/* AC275C 8004B5BC 0C00B721 */ jal Player_GetCameraYOffset
/* AC2760 8004B5C0 AFA40088 */ sw $a0, 0x88($sp)
/* AC2764 8004B5C4 E7A00064 */ swc1 $f0, 0x64($sp)
/* AC2768 8004B5C8 8602015E */ lh $v0, 0x15e($s0)
/* AC276C 8004B5CC 2401000A */ li $at, 10
/* AC2770 8004B5D0 1040000A */ beqz $v0, .L8004B5FC
/* AC2774 8004B5D4 00000000 */ nop
/* AC2778 8004B5D8 10410008 */ beq $v0, $at, .L8004B5FC
/* AC277C 8004B5DC 24010014 */ li $at, 20
/* AC2780 8004B5E0 10410006 */ beq $v0, $at, .L8004B5FC
/* AC2784 8004B5E4 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016
/* AC2788 8004B5E8 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570
/* AC278C 8004B5EC 8CAE0000 */ lw $t6, ($a1)
/* AC2790 8004B5F0 85C30314 */ lh $v1, 0x314($t6)
/* AC2794 8004B5F4 1060006C */ beqz $v1, .L8004B7A8
/* AC2798 8004B5F8 00000000 */ nop
.L8004B5FC:
/* AC279C 8004B5FC 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016
/* AC27A0 8004B600 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570
/* AC27A4 8004B604 8CAC0000 */ lw $t4, ($a1)
/* AC27A8 8004B608 3C018014 */ lui $at, %hi(D_80139FD4)
/* AC27AC 8004B60C C4309FD4 */ lwc1 $f16, %lo(D_80139FD4)($at)
/* AC27B0 8004B610 858D01F0 */ lh $t5, 0x1f0($t4)
/* AC27B4 8004B614 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AC27B8 8004B618 44814000 */ mtc1 $at, $f8
/* AC27BC 8004B61C 448D2000 */ mtc1 $t5, $f4
/* AC27C0 8004B620 3C014288 */ li $at, 0x42880000 # 0.000000
/* AC27C4 8004B624 860F0142 */ lh $t7, 0x142($s0)
/* AC27C8 8004B628 468021A0 */ cvt.s.w $f6, $f4
/* AC27CC 8004B62C 44812000 */ mtc1 $at, $f4
/* AC27D0 8004B630 3C198012 */ lui $t9, %hi(sCameraSettings)
/* AC27D4 8004B634 000FC0C0 */ sll $t8, $t7, 3
/* AC27D8 8004B638 86090144 */ lh $t1, 0x144($s0)
/* AC27DC 8004B63C 0338C821 */ addu $t9, $t9, $t8
/* AC27E0 8004B640 46103082 */ mul.s $f2, $f6, $f16
/* AC27E4 8004B644 46002183 */ div.s $f6, $f4, $f0
/* AC27E8 8004B648 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9)
/* AC27EC 8004B64C 000950C0 */ sll $t2, $t1, 3
/* AC27F0 8004B650 26110030 */ addiu $s1, $s0, 0x30
/* AC27F4 8004B654 032A5821 */ addu $t3, $t9, $t2
/* AC27F8 8004B658 8D620004 */ lw $v0, 4($t3)
/* AC27FC 8004B65C 46024280 */ add.s $f10, $f8, $f2
/* AC2800 8004B660 844E0000 */ lh $t6, ($v0)
/* AC2804 8004B664 2442002C */ addiu $v0, $v0, 0x2c
/* AC2808 8004B668 448E2000 */ mtc1 $t6, $f4
/* AC280C 8004B66C 46061202 */ mul.s $f8, $f2, $f6
/* AC2810 8004B670 468021A0 */ cvt.s.w $f6, $f4
/* AC2814 8004B674 46085301 */ sub.s $f12, $f10, $f8
/* AC2818 8004B678 46103282 */ mul.s $f10, $f6, $f16
/* AC281C 8004B67C 00000000 */ nop
/* AC2820 8004B680 46005202 */ mul.s $f8, $f10, $f0
/* AC2824 8004B684 00000000 */ nop
/* AC2828 8004B688 460C4102 */ mul.s $f4, $f8, $f12
/* AC282C 8004B68C E6040000 */ swc1 $f4, ($s0)
/* AC2830 8004B690 844FFFD8 */ lh $t7, -0x28($v0)
/* AC2834 8004B694 448F3000 */ mtc1 $t7, $f6
/* AC2838 8004B698 00000000 */ nop
/* AC283C 8004B69C 468032A0 */ cvt.s.w $f10, $f6
/* AC2840 8004B6A0 E60A0004 */ swc1 $f10, 4($s0)
/* AC2844 8004B6A4 8458FFDC */ lh $t8, -0x24($v0)
/* AC2848 8004B6A8 44984000 */ mtc1 $t8, $f8
/* AC284C 8004B6AC 00000000 */ nop
/* AC2850 8004B6B0 46804120 */ cvt.s.w $f4, $f8
/* AC2854 8004B6B4 E6040008 */ swc1 $f4, 8($s0)
/* AC2858 8004B6B8 8449FFE0 */ lh $t1, -0x20($v0)
/* AC285C 8004B6BC 44893000 */ mtc1 $t1, $f6
/* AC2860 8004B6C0 24090028 */ li $t1, 40
/* AC2864 8004B6C4 468032A0 */ cvt.s.w $f10, $f6
/* AC2868 8004B6C8 E60A000C */ swc1 $f10, 0xc($s0)
/* AC286C 8004B6CC 8459FFE4 */ lh $t9, -0x1c($v0)
/* AC2870 8004B6D0 44994000 */ mtc1 $t9, $f8
/* AC2874 8004B6D4 00000000 */ nop
/* AC2878 8004B6D8 46804120 */ cvt.s.w $f4, $f8
/* AC287C 8004B6DC E6040010 */ swc1 $f4, 0x10($s0)
/* AC2880 8004B6E0 844AFFE8 */ lh $t2, -0x18($v0)
/* AC2884 8004B6E4 448A3000 */ mtc1 $t2, $f6
/* AC2888 8004B6E8 00000000 */ nop
/* AC288C 8004B6EC 468032A0 */ cvt.s.w $f10, $f6
/* AC2890 8004B6F0 E60A0014 */ swc1 $f10, 0x14($s0)
/* AC2894 8004B6F4 844BFFEC */ lh $t3, -0x14($v0)
/* AC2898 8004B6F8 448B4000 */ mtc1 $t3, $f8
/* AC289C 8004B6FC 00000000 */ nop
/* AC28A0 8004B700 46804120 */ cvt.s.w $f4, $f8
/* AC28A4 8004B704 46102182 */ mul.s $f6, $f4, $f16
/* AC28A8 8004B708 E6060018 */ swc1 $f6, 0x18($s0)
/* AC28AC 8004B70C 844CFFF0 */ lh $t4, -0x10($v0)
/* AC28B0 8004B710 448C5000 */ mtc1 $t4, $f10
/* AC28B4 8004B714 00000000 */ nop
/* AC28B8 8004B718 46805220 */ cvt.s.w $f8, $f10
/* AC28BC 8004B71C E608001C */ swc1 $f8, 0x1c($s0)
/* AC28C0 8004B720 844DFFF4 */ lh $t5, -0xc($v0)
/* AC28C4 8004B724 448D2000 */ mtc1 $t5, $f4
/* AC28C8 8004B728 00000000 */ nop
/* AC28CC 8004B72C 468021A0 */ cvt.s.w $f6, $f4
/* AC28D0 8004B730 46103282 */ mul.s $f10, $f6, $f16
/* AC28D4 8004B734 E60A0020 */ swc1 $f10, 0x20($s0)
/* AC28D8 8004B738 844EFFF8 */ lh $t6, -8($v0)
/* AC28DC 8004B73C A60E002C */ sh $t6, 0x2c($s0)
/* AC28E0 8004B740 844FFFFC */ lh $t7, -4($v0)
/* AC28E4 8004B744 448F4000 */ mtc1 $t7, $f8
/* AC28E8 8004B748 00000000 */ nop
/* AC28EC 8004B74C 46804120 */ cvt.s.w $f4, $f8
/* AC28F0 8004B750 46102182 */ mul.s $f6, $f4, $f16
/* AC28F4 8004B754 00000000 */ nop
/* AC28F8 8004B758 46003282 */ mul.s $f10, $f6, $f0
/* AC28FC 8004B75C 00000000 */ nop
/* AC2900 8004B760 460C5202 */ mul.s $f8, $f10, $f12
/* AC2904 8004B764 E6080024 */ swc1 $f8, 0x24($s0)
/* AC2908 8004B768 84580000 */ lh $t8, ($v0)
/* AC290C 8004B76C 44982000 */ mtc1 $t8, $f4
/* AC2910 8004B770 00000000 */ nop
/* AC2914 8004B774 468021A0 */ cvt.s.w $f6, $f4
/* AC2918 8004B778 46103282 */ mul.s $f10, $f6, $f16
/* AC291C 8004B77C E60A0028 */ swc1 $f10, 0x28($s0)
/* AC2920 8004B780 A629001C */ sh $t1, 0x1c($s1)
/* AC2924 8004B784 8CB90000 */ lw $t9, ($a1)
/* AC2928 8004B788 872A01AC */ lh $t2, 0x1ac($t9)
/* AC292C 8004B78C 448A4000 */ mtc1 $t2, $f8
/* AC2930 8004B790 00000000 */ nop
/* AC2934 8004B794 46804120 */ cvt.s.w $f4, $f8
/* AC2938 8004B798 46102182 */ mul.s $f6, $f4, $f16
/* AC293C 8004B79C E6260010 */ swc1 $f6, 0x10($s1)
/* AC2940 8004B7A0 8CAB0000 */ lw $t3, ($a1)
/* AC2944 8004B7A4 85630314 */ lh $v1, 0x314($t3)
.L8004B7A8:
/* AC2948 8004B7A8 3C018014 */ lui $at, %hi(D_80139FD8)
/* AC294C 8004B7AC C4309FD8 */ lwc1 $f16, %lo(D_80139FD8)($at)
/* AC2950 8004B7B0 10600007 */ beqz $v1, .L8004B7D0
/* AC2954 8004B7B4 26110030 */ addiu $s1, $s0, 0x30
/* AC2958 8004B7B8 0C011495 */ jal Camera_CopyPREGToModeValues
/* AC295C 8004B7BC 02002025 */ move $a0, $s0
/* AC2960 8004B7C0 3C018014 */ lui $at, %hi(D_80139FDC)
/* AC2964 8004B7C4 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016
/* AC2968 8004B7C8 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570
/* AC296C 8004B7CC C4309FDC */ lwc1 $f16, %lo(D_80139FDC)($at)
.L8004B7D0:
/* AC2970 8004B7D0 C60A0004 */ lwc1 $f10, 4($s0)
/* AC2974 8004B7D4 E7AA0080 */ swc1 $f10, 0x80($sp)
/* AC2978 8004B7D8 C6080010 */ lwc1 $f8, 0x10($s0)
/* AC297C 8004B7DC E7A8007C */ swc1 $f8, 0x7c($sp)
/* AC2980 8004B7E0 C6040014 */ lwc1 $f4, 0x14($s0)
/* AC2984 8004B7E4 E7A40078 */ swc1 $f4, 0x78($sp)
/* AC2988 8004B7E8 C606001C */ lwc1 $f6, 0x1c($s0)
/* AC298C 8004B7EC E7A60074 */ swc1 $f6, 0x74($sp)
/* AC2990 8004B7F0 8E0C0090 */ lw $t4, 0x90($s0)
/* AC2994 8004B7F4 8D8D067C */ lw $t5, 0x67c($t4)
/* AC2998 8004B7F8 31AE1000 */ andi $t6, $t5, 0x1000
/* AC299C 8004B7FC 51C0004F */ beql $t6, $zero, .L8004B93C
/* AC29A0 8004B800 8622001C */ lh $v0, 0x1c($s1)
/* AC29A4 8004B804 8CA30000 */ lw $v1, ($a1)
/* AC29A8 8004B808 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC29AC 8004B80C 44813000 */ mtc1 $at, $f6
/* AC29B0 8004B810 846F01AC */ lh $t7, 0x1ac($v1)
/* AC29B4 8004B814 847801C6 */ lh $t8, 0x1c6($v1)
/* AC29B8 8004B818 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000
/* AC29BC 8004B81C 448F5000 */ mtc1 $t7, $f10
/* AC29C0 8004B820 34E7CCCD */ ori $a3, $a3, 0xcccd
/* AC29C4 8004B824 C62E0010 */ lwc1 $f14, 0x10($s1)
/* AC29C8 8004B828 46805220 */ cvt.s.w $f8, $f10
/* AC29CC 8004B82C 44985000 */ mtc1 $t8, $f10
/* AC29D0 8004B830 46104102 */ mul.s $f4, $f8, $f16
/* AC29D4 8004B834 46805220 */ cvt.s.w $f8, $f10
/* AC29D8 8004B838 46062302 */ mul.s $f12, $f4, $f6
/* AC29DC 8004B83C 00000000 */ nop
/* AC29E0 8004B840 46104102 */ mul.s $f4, $f8, $f16
/* AC29E4 8004B844 44062000 */ mfc1 $a2, $f4
/* AC29E8 8004B848 0C010E27 */ jal func_8004389C
/* AC29EC 8004B84C 00000000 */ nop
/* AC29F0 8004B850 E6200010 */ swc1 $f0, 0x10($s1)
/* AC29F4 8004B854 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016
/* AC29F8 8004B858 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1)
/* AC29FC 8004B85C 3C018014 */ lui $at, %hi(D_80139FE0)
/* AC2A00 8004B860 C42C9FE0 */ lwc1 $f12, %lo(D_80139FE0)($at)
/* AC2A04 8004B864 853901C6 */ lh $t9, 0x1c6($t1)
/* AC2A08 8004B868 3C018014 */ lui $at, %hi(D_80139FE4)
/* AC2A0C 8004B86C C4289FE4 */ lwc1 $f8, %lo(D_80139FE4)($at)
/* AC2A10 8004B870 44993000 */ mtc1 $t9, $f6
/* AC2A14 8004B874 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* AC2A18 8004B878 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* AC2A1C 8004B87C 468032A0 */ cvt.s.w $f10, $f6
/* AC2A20 8004B880 C60E00CC */ lwc1 $f14, 0xcc($s0)
/* AC2A24 8004B884 46085102 */ mul.s $f4, $f10, $f8
/* AC2A28 8004B888 44062000 */ mfc1 $a2, $f4
/* AC2A2C 8004B88C 0C010E27 */ jal func_8004389C
/* AC2A30 8004B890 00000000 */ nop
/* AC2A34 8004B894 E60000CC */ swc1 $f0, 0xcc($s0)
/* AC2A38 8004B898 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016
/* AC2A3C 8004B89C 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2)
/* AC2A40 8004B8A0 3C018014 */ lui $at, %hi(D_80139FE8)
/* AC2A44 8004B8A4 C42C9FE8 */ lwc1 $f12, %lo(D_80139FE8)($at)
/* AC2A48 8004B8A8 854B01C6 */ lh $t3, 0x1c6($t2)
/* AC2A4C 8004B8AC 3C018014 */ lui $at, %hi(D_80139FEC)
/* AC2A50 8004B8B0 C4289FEC */ lwc1 $f8, %lo(D_80139FEC)($at)
/* AC2A54 8004B8B4 448B3000 */ mtc1 $t3, $f6
/* AC2A58 8004B8B8 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* AC2A5C 8004B8BC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* AC2A60 8004B8C0 468032A0 */ cvt.s.w $f10, $f6
/* AC2A64 8004B8C4 C60E00D0 */ lwc1 $f14, 0xd0($s0)
/* AC2A68 8004B8C8 46085102 */ mul.s $f4, $f10, $f8
/* AC2A6C 8004B8CC 44062000 */ mfc1 $a2, $f4
/* AC2A70 8004B8D0 0C010E27 */ jal func_8004389C
/* AC2A74 8004B8D4 00000000 */ nop
/* AC2A78 8004B8D8 E60000D0 */ swc1 $f0, 0xd0($s0)
/* AC2A7C 8004B8DC 8622001C */ lh $v0, 0x1c($s1)
/* AC2A80 8004B8E0 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016
/* AC2A84 8004B8E4 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570
/* AC2A88 8004B8E8 2841FFED */ slti $at, $v0, -0x13
/* AC2A8C 8004B8EC 14200003 */ bnez $at, .L8004B8FC
/* AC2A90 8004B8F0 244CFFFF */ addiu $t4, $v0, -1
/* AC2A94 8004B8F4 1000000D */ b .L8004B92C
/* AC2A98 8004B8F8 A62C001C */ sh $t4, 0x1c($s1)
.L8004B8FC:
/* AC2A9C 8004B8FC 3C01437A */ li $at, 0x437A0000 # 0.000000
/* AC2AA0 8004B900 44813000 */ mtc1 $at, $f6
/* AC2AA4 8004B904 3C014248 */ li $at, 0x42480000 # 0.000000
/* AC2AA8 8004B908 44815000 */ mtc1 $at, $f10
/* AC2AAC 8004B90C 3C014220 */ li $at, 0x42200000 # 0.000000
/* AC2AB0 8004B910 44814000 */ mtc1 $at, $f8
/* AC2AB4 8004B914 3C014270 */ li $at, 0x42700000 # 0.000000
/* AC2AB8 8004B918 44812000 */ mtc1 $at, $f4
/* AC2ABC 8004B91C E7A60080 */ swc1 $f6, 0x80($sp)
/* AC2AC0 8004B920 E7AA007C */ swc1 $f10, 0x7c($sp)
/* AC2AC4 8004B924 E7A80078 */ swc1 $f8, 0x78($sp)
/* AC2AC8 8004B928 E7A40074 */ swc1 $f4, 0x74($sp)
.L8004B92C:
/* AC2ACC 8004B92C 3C018014 */ lui $at, %hi(D_80139FF0)
/* AC2AD0 8004B930 10000059 */ b .L8004BA98
/* AC2AD4 8004B934 C4309FF0 */ lwc1 $f16, %lo(D_80139FF0)($at)
/* AC2AD8 8004B938 8622001C */ lh $v0, 0x1c($s1)
.L8004B93C:
/* AC2ADC 8004B93C 3C01437A */ li $at, 0x437A0000 # 0.000000
/* AC2AE0 8004B940 240E0028 */ li $t6, 40
/* AC2AE4 8004B944 0441000E */ bgez $v0, .L8004B980
/* AC2AE8 8004B948 244D0001 */ addiu $t5, $v0, 1
/* AC2AEC 8004B94C 44813000 */ mtc1 $at, $f6
/* AC2AF0 8004B950 3C014248 */ li $at, 0x42480000 # 0.000000
/* AC2AF4 8004B954 44815000 */ mtc1 $at, $f10
/* AC2AF8 8004B958 3C014220 */ li $at, 0x42200000 # 0.000000
/* AC2AFC 8004B95C 44814000 */ mtc1 $at, $f8
/* AC2B00 8004B960 3C014270 */ li $at, 0x42700000 # 0.000000
/* AC2B04 8004B964 44812000 */ mtc1 $at, $f4
/* AC2B08 8004B968 E7A60080 */ swc1 $f6, 0x80($sp)
/* AC2B0C 8004B96C E7AA007C */ swc1 $f10, 0x7c($sp)
/* AC2B10 8004B970 E7A80078 */ swc1 $f8, 0x78($sp)
/* AC2B14 8004B974 E7A40074 */ swc1 $f4, 0x74($sp)
/* AC2B18 8004B978 10000047 */ b .L8004BA98
/* AC2B1C 8004B97C A62D001C */ sh $t5, 0x1c($s1)
.L8004B980:
/* AC2B20 8004B980 A62E001C */ sh $t6, 0x1c($s1)
/* AC2B24 8004B984 8CA30000 */ lw $v1, ($a1)
/* AC2B28 8004B988 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* AC2B2C 8004B98C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* AC2B30 8004B990 846F01AC */ lh $t7, 0x1ac($v1)
/* AC2B34 8004B994 847801C6 */ lh $t8, 0x1c6($v1)
/* AC2B38 8004B998 C62E0010 */ lwc1 $f14, 0x10($s1)
/* AC2B3C 8004B99C 448F3000 */ mtc1 $t7, $f6
/* AC2B40 8004B9A0 44984000 */ mtc1 $t8, $f8
/* AC2B44 8004B9A4 468032A0 */ cvt.s.w $f10, $f6
/* AC2B48 8004B9A8 46804120 */ cvt.s.w $f4, $f8
/* AC2B4C 8004B9AC 46105302 */ mul.s $f12, $f10, $f16
/* AC2B50 8004B9B0 00000000 */ nop
/* AC2B54 8004B9B4 46102182 */ mul.s $f6, $f4, $f16
/* AC2B58 8004B9B8 44063000 */ mfc1 $a2, $f6
/* AC2B5C 8004B9BC 0C010E27 */ jal func_8004389C
/* AC2B60 8004B9C0 00000000 */ nop
/* AC2B64 8004B9C4 E6200010 */ swc1 $f0, 0x10($s1)
/* AC2B68 8004B9C8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
/* AC2B6C 8004B9CC 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1)
/* AC2B70 8004B9D0 3C018014 */ lui $at, %hi(D_80139FF4)
/* AC2B74 8004B9D4 C4249FF4 */ lwc1 $f4, %lo(D_80139FF4)($at)
/* AC2B78 8004B9D8 846901E4 */ lh $t1, 0x1e4($v1)
/* AC2B7C 8004B9DC 847901C6 */ lh $t9, 0x1c6($v1)
/* AC2B80 8004B9E0 3C018014 */ lui $at, %hi(D_80139FF8)
/* AC2B84 8004B9E4 44895000 */ mtc1 $t1, $f10
/* AC2B88 8004B9E8 44993000 */ mtc1 $t9, $f6
/* AC2B8C 8004B9EC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* AC2B90 8004B9F0 46805220 */ cvt.s.w $f8, $f10
/* AC2B94 8004B9F4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* AC2B98 8004B9F8 C60E00CC */ lwc1 $f14, 0xcc($s0)
/* AC2B9C 8004B9FC 468032A0 */ cvt.s.w $f10, $f6
/* AC2BA0 8004BA00 46044302 */ mul.s $f12, $f8, $f4
/* AC2BA4 8004BA04 C4289FF8 */ lwc1 $f8, %lo(D_80139FF8)($at)
/* AC2BA8 8004BA08 C60600E0 */ lwc1 $f6, 0xe0($s0)
/* AC2BAC 8004BA0C 46085102 */ mul.s $f4, $f10, $f8
/* AC2BB0 8004BA10 00000000 */ nop
/* AC2BB4 8004BA14 46062282 */ mul.s $f10, $f4, $f6
/* AC2BB8 8004BA18 44065000 */ mfc1 $a2, $f10
/* AC2BBC 8004BA1C 0C010E27 */ jal func_8004389C
/* AC2BC0 8004BA20 00000000 */ nop
/* AC2BC4 8004BA24 E60000CC */ swc1 $f0, 0xcc($s0)
/* AC2BC8 8004BA28 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
/* AC2BCC 8004BA2C 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1)
/* AC2BD0 8004BA30 3C018014 */ lui $at, %hi(D_80139FFC)
/* AC2BD4 8004BA34 C4269FFC */ lwc1 $f6, %lo(D_80139FFC)($at)
/* AC2BD8 8004BA38 846A01E4 */ lh $t2, 0x1e4($v1)
/* AC2BDC 8004BA3C 846B01C8 */ lh $t3, 0x1c8($v1)
/* AC2BE0 8004BA40 3C018014 */ lui $at, %hi(D_8013A000)
/* AC2BE4 8004BA44 448A4000 */ mtc1 $t2, $f8
/* AC2BE8 8004BA48 448B5000 */ mtc1 $t3, $f10
/* AC2BEC 8004BA4C 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* AC2BF0 8004BA50 46804120 */ cvt.s.w $f4, $f8
/* AC2BF4 8004BA54 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* AC2BF8 8004BA58 C60E00D0 */ lwc1 $f14, 0xd0($s0)
/* AC2BFC 8004BA5C 46805220 */ cvt.s.w $f8, $f10
/* AC2C00 8004BA60 46062302 */ mul.s $f12, $f4, $f6
/* AC2C04 8004BA64 C424A000 */ lwc1 $f4, %lo(D_8013A000)($at)
/* AC2C08 8004BA68 C60A00E0 */ lwc1 $f10, 0xe0($s0)
/* AC2C0C 8004BA6C 46044182 */ mul.s $f6, $f8, $f4
/* AC2C10 8004BA70 00000000 */ nop
/* AC2C14 8004BA74 460A3202 */ mul.s $f8, $f6, $f10
/* AC2C18 8004BA78 44064000 */ mfc1 $a2, $f8
/* AC2C1C 8004BA7C 0C010E27 */ jal func_8004389C
/* AC2C20 8004BA80 00000000 */ nop
/* AC2C24 8004BA84 E60000D0 */ swc1 $f0, 0xd0($s0)
/* AC2C28 8004BA88 3C018014 */ lui $at, %hi(D_8013A004)
/* AC2C2C 8004BA8C 3C058016 */ lui $a1, %hi(gGameInfo) # $a1, 0x8016
/* AC2C30 8004BA90 24A5FA90 */ addiu $a1, %lo(gGameInfo) # addiu $a1, $a1, -0x570
/* AC2C34 8004BA94 C430A004 */ lwc1 $f16, %lo(D_8013A004)($at)
.L8004BA98:
/* AC2C38 8004BA98 8CAC0000 */ lw $t4, ($a1)
/* AC2C3C 8004BA9C 3C018014 */ lui $at, %hi(D_8013A008)
/* AC2C40 8004BAA0 C428A008 */ lwc1 $f8, %lo(D_8013A008)($at)
/* AC2C44 8004BAA4 858D019C */ lh $t5, 0x19c($t4)
/* AC2C48 8004BAA8 C60A00E0 */ lwc1 $f10, 0xe0($s0)
/* AC2C4C 8004BAAC 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000
/* AC2C50 8004BAB0 448D2000 */ mtc1 $t5, $f4
/* AC2C54 8004BAB4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* AC2C58 8004BAB8 C60E00D4 */ lwc1 $f14, 0xd4($s0)
/* AC2C5C 8004BABC 468021A0 */ cvt.s.w $f6, $f4
/* AC2C60 8004BAC0 46103302 */ mul.s $f12, $f6, $f16
/* AC2C64 8004BAC4 00000000 */ nop
/* AC2C68 8004BAC8 46085102 */ mul.s $f4, $f10, $f8
/* AC2C6C 8004BACC 44062000 */ mfc1 $a2, $f4
/* AC2C70 8004BAD0 0C010E27 */ jal func_8004389C
/* AC2C74 8004BAD4 00000000 */ nop
/* AC2C78 8004BAD8 E60000D4 */ swc1 $f0, 0xd4($s0)
/* AC2C7C 8004BADC C7A60064 */ lwc1 $f6, 0x64($sp)
/* AC2C80 8004BAE0 C60A0000 */ lwc1 $f10, ($s0)
/* AC2C84 8004BAE4 26050050 */ addiu $a1, $s0, 0x50
/* AC2C88 8004BAE8 2606005C */ addiu $a2, $s0, 0x5c
/* AC2C8C 8004BAEC 460A3200 */ add.s $f8, $f6, $f10
/* AC2C90 8004BAF0 AFA6004C */ sw $a2, 0x4c($sp)
/* AC2C94 8004BAF4 AFA50048 */ sw $a1, 0x48($sp)
/* AC2C98 8004BAF8 27A4009C */ addiu $a0, $sp, 0x9c
/* AC2C9C 8004BAFC 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90
/* AC2CA0 8004BB00 E7A80064 */ swc1 $f8, 0x64($sp)
/* AC2CA4 8004BB04 26060074 */ addiu $a2, $s0, 0x74
/* AC2CA8 8004BB08 AFA60044 */ sw $a2, 0x44($sp)
/* AC2CAC 8004BB0C 27A40094 */ addiu $a0, $sp, 0x94
/* AC2CB0 8004BB10 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90
/* AC2CB4 8004BB14 8FA50048 */ lw $a1, 0x48($sp)
/* AC2CB8 8004BB18 8E0300A8 */ lw $v1, 0xa8($s0)
/* AC2CBC 8004BB1C 10600004 */ beqz $v1, .L8004BB30
/* AC2CC0 8004BB20 00000000 */ nop
/* AC2CC4 8004BB24 8C6E0130 */ lw $t6, 0x130($v1)
/* AC2CC8 8004BB28 55C0000C */ bnezl $t6, .L8004BB5C
/* AC2CCC 8004BB2C 860F002C */ lh $t7, 0x2c($s0)
.L8004BB30:
/* AC2CD0 8004BB30 14600003 */ bnez $v1, .L8004BB40
/* AC2CD4 8004BB34 3C048014 */ lui $a0, %hi(D_80139168)
/* AC2CD8 8004BB38 0C00084C */ jal osSyncPrintf
/* AC2CDC 8004BB3C 24849168 */ addiu $a0, %lo(D_80139168) # addiu $a0, $a0, -0x6e98
.L8004BB40:
/* AC2CE0 8004BB40 AE0000A8 */ sw $zero, 0xa8($s0)
/* AC2CE4 8004BB44 02002025 */ move $a0, $s0
/* AC2CE8 8004BB48 0C016911 */ jal func_8005A444
/* AC2CEC 8004BB4C 24050001 */ li $a1, 1
/* AC2CF0 8004BB50 100002A3 */ b .L8004C5E0
/* AC2CF4 8004BB54 24020001 */ li $v0, 1
/* AC2CF8 8004BB58 860F002C */ lh $t7, 0x2c($s0)
.L8004BB5C:
/* AC2CFC 8004BB5C 3C018012 */ lui $at, %hi(D_8011D3A0)
/* AC2D00 8004BB60 AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at)
/* AC2D04 8004BB64 8602015E */ lh $v0, 0x15e($s0)
/* AC2D08 8004BB68 2401000A */ li $at, 10
/* AC2D0C 8004BB6C 50400006 */ beql $v0, $zero, .L8004BB88
/* AC2D10 8004BB70 44802000 */ mtc1 $zero, $f4
/* AC2D14 8004BB74 10410003 */ beq $v0, $at, .L8004BB84
/* AC2D18 8004BB78 24010014 */ li $at, 20
/* AC2D1C 8004BB7C 5441002B */ bnel $v0, $at, .L8004BC2C
/* AC2D20 8004BB80 86180140 */ lh $t8, 0x140($s0)
.L8004BB84:
/* AC2D24 8004BB84 44802000 */ mtc1 $zero, $f4
.L8004BB88:
/* AC2D28 8004BB88 A6200014 */ sh $zero, 0x14($s1)
/* AC2D2C 8004BB8C 3C048014 */ lui $a0, %hi(D_801391E4)
/* AC2D30 8004BB90 E6240004 */ swc1 $f4, 4($s1)
/* AC2D34 8004BB94 8E1800A8 */ lw $t8, 0xa8($s0)
/* AC2D38 8004BB98 AE38000C */ sw $t8, 0xc($s1)
/* AC2D3C 8004BB9C 8609015E */ lh $t1, 0x15e($s0)
/* AC2D40 8004BBA0 25390001 */ addiu $t9, $t1, 1
/* AC2D44 8004BBA4 A619015E */ sh $t9, 0x15e($s0)
/* AC2D48 8004BBA8 8E2A000C */ lw $t2, 0xc($s1)
/* AC2D4C 8004BBAC 85450000 */ lh $a1, ($t2)
/* AC2D50 8004BBB0 18A00006 */ blez $a1, .L8004BBCC
/* AC2D54 8004BBB4 00000000 */ nop
/* AC2D58 8004BBB8 3C048014 */ lui $a0, %hi(D_801391B4) # $a0, 0x8014
/* AC2D5C 8004BBBC 0C00084C */ jal osSyncPrintf
/* AC2D60 8004BBC0 248491B4 */ addiu $a0, %lo(D_801391B4) # addiu $a0, $a0, -0x6e4c
/* AC2D64 8004BBC4 10000009 */ b .L8004BBEC
/* AC2D68 8004BBC8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
.L8004BBCC:
/* AC2D6C 8004BBCC 0C00084C */ jal osSyncPrintf
/* AC2D70 8004BBD0 248491E4 */ addiu $a0, %lo(D_801391E4)
/* AC2D74 8004BBD4 AE0000A8 */ sw $zero, 0xa8($s0)
/* AC2D78 8004BBD8 02002025 */ move $a0, $s0
/* AC2D7C 8004BBDC 0C016911 */ jal func_8005A444
/* AC2D80 8004BBE0 24050001 */ li $a1, 1
/* AC2D84 8004BBE4 1000027E */ b .L8004C5E0
/* AC2D88 8004BBE8 24020001 */ li $v0, 1
.L8004BBEC:
/* AC2D8C 8004BBEC 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1)
/* AC2D90 8004BBF0 846B01C4 */ lh $t3, 0x1c4($v1)
/* AC2D94 8004BBF4 846C01C2 */ lh $t4, 0x1c2($v1)
/* AC2D98 8004BBF8 016C6821 */ addu $t5, $t3, $t4
/* AC2D9C 8004BBFC A62D001A */ sh $t5, 0x1a($s1)
/* AC2DA0 8004BC00 87AE00A2 */ lh $t6, 0xa2($sp)
/* AC2DA4 8004BC04 A62E0016 */ sh $t6, 0x16($s1)
/* AC2DA8 8004BC08 87AF00A0 */ lh $t7, 0xa0($sp)
/* AC2DAC 8004BC0C A62F0018 */ sh $t7, 0x18($s1)
/* AC2DB0 8004BC10 C7A6009C */ lwc1 $f6, 0x9c($sp)
/* AC2DB4 8004BC14 E6260000 */ swc1 $f6, ($s1)
/* AC2DB8 8004BC18 C60800F4 */ lwc1 $f8, 0xf4($s0)
/* AC2DBC 8004BC1C C60A0098 */ lwc1 $f10, 0x98($s0)
/* AC2DC0 8004BC20 46085101 */ sub.s $f4, $f10, $f8
/* AC2DC4 8004BC24 E6240008 */ swc1 $f4, 8($s1)
/* AC2DC8 8004BC28 86180140 */ lh $t8, 0x140($s0)
.L8004BC2C:
/* AC2DCC 8004BC2C 24010007 */ li $at, 7
/* AC2DD0 8004BC30 24090001 */ li $t1, 1
/* AC2DD4 8004BC34 5701000B */ bnel $t8, $at, .L8004BC64
/* AC2DD8 8004BC38 C6060098 */ lwc1 $f6, 0x98($s0)
/* AC2DDC 8004BC3C 87B900A0 */ lh $t9, 0xa0($sp)
/* AC2DE0 8004BC40 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012
/* AC2DE4 8004BC44 AC29D3E8 */ sw $t1, %lo(D_8011D3E8)($at)
/* AC2DE8 8004BC48 00195023 */ negu $t2, $t9
/* AC2DEC 8004BC4C A60A0134 */ sh $t2, 0x134($s0)
/* AC2DF0 8004BC50 87AB00A2 */ lh $t3, 0xa2($sp)
/* AC2DF4 8004BC54 A6000138 */ sh $zero, 0x138($s0)
/* AC2DF8 8004BC58 256C8001 */ addiu $t4, $t3, -0x7fff
/* AC2DFC 8004BC5C A60C0136 */ sh $t4, 0x136($s0)
/* AC2E00 8004BC60 C6060098 */ lwc1 $f6, 0x98($s0)
.L8004BC64:
/* AC2E04 8004BC64 C60A0104 */ lwc1 $f10, 0x104($s0)
/* AC2E08 8004BC68 460A3032 */ c.eq.s $f6, $f10
/* AC2E0C 8004BC6C 00000000 */ nop
/* AC2E10 8004BC70 4503000F */ bc1tl .L8004BCB0
/* AC2E14 8004BC74 C6060098 */ lwc1 $f6, 0x98($s0)
/* AC2E18 8004BC78 8E040090 */ lw $a0, 0x90($s0)
/* AC2E1C 8004BC7C 3C018014 */ lui $at, %hi(D_8013A00C)
/* AC2E20 8004BC80 C428A00C */ lwc1 $f8, %lo(D_8013A00C)($at)
/* AC2E24 8004BC84 C484006C */ lwc1 $f4, 0x6c($a0)
/* AC2E28 8004BC88 4604403C */ c.lt.s $f8, $f4
/* AC2E2C 8004BC8C 00000000 */ nop
/* AC2E30 8004BC90 45030007 */ bc1tl .L8004BCB0
/* AC2E34 8004BC94 C6060098 */ lwc1 $f6, 0x98($s0)
/* AC2E38 8004BC98 8C8D067C */ lw $t5, 0x67c($a0)
/* AC2E3C 8004BC9C 24060001 */ li $a2, 1
/* AC2E40 8004BCA0 000D7280 */ sll $t6, $t5, 0xa
/* AC2E44 8004BCA4 05C10005 */ bgez $t6, .L8004BCBC
/* AC2E48 8004BCA8 00000000 */ nop
/* AC2E4C 8004BCAC C6060098 */ lwc1 $f6, 0x98($s0)
.L8004BCB0:
/* AC2E50 8004BCB0 00003025 */ move $a2, $zero
/* AC2E54 8004BCB4 10000001 */ b .L8004BCBC
/* AC2E58 8004BCB8 E6260008 */ swc1 $f6, 8($s1)
.L8004BCBC:
/* AC2E5C 8004BCBC 862F001A */ lh $t7, 0x1a($s1)
/* AC2E60 8004BCC0 02002025 */ move $a0, $s0
/* AC2E64 8004BCC4 55E0000C */ bnezl $t7, .L8004BCF8
/* AC2E68 8004BCC8 260400AC */ addiu $a0, $s0, 0xac
/* AC2E6C 8004BCCC 50C00004 */ beql $a2, $zero, .L8004BCE0
/* AC2E70 8004BCD0 C6020020 */ lwc1 $f2, 0x20($s0)
/* AC2E74 8004BCD4 10000002 */ b .L8004BCE0
/* AC2E78 8004BCD8 C6020028 */ lwc1 $f2, 0x28($s0)
/* AC2E7C 8004BCDC C6020020 */ lwc1 $f2, 0x20($s0)
.L8004BCE0:
/* AC2E80 8004BCE0 44051000 */ mfc1 $a1, $f2
/* AC2E84 8004BCE4 0C011429 */ jal func_800450A4
/* AC2E88 8004BCE8 A7A60084 */ sh $a2, 0x84($sp)
/* AC2E8C 8004BCEC 87A60084 */ lh $a2, 0x84($sp)
/* AC2E90 8004BCF0 E6000100 */ swc1 $f0, 0x100($s0)
/* AC2E94 8004BCF4 260400AC */ addiu $a0, $s0, 0xac
.L8004BCF8:
/* AC2E98 8004BCF8 8E0500A8 */ lw $a1, 0xa8($s0)
/* AC2E9C 8004BCFC A7A60084 */ sh $a2, 0x84($sp)
/* AC2EA0 8004BD00 0C00BBB9 */ jal func_8002EEE4
/* AC2EA4 8004BD04 AFA40038 */ sw $a0, 0x38($sp)
/* AC2EA8 8004BD08 8E0300A8 */ lw $v1, 0xa8($s0)
/* AC2EAC 8004BD0C 8E27000C */ lw $a3, 0xc($s1)
/* AC2EB0 8004BD10 87A60084 */ lh $a2, 0x84($sp)
/* AC2EB4 8004BD14 02002025 */ move $a0, $s0
/* AC2EB8 8004BD18 10670009 */ beq $v1, $a3, .L8004BD40
/* AC2EBC 8004BD1C 27A50094 */ addiu $a1, $sp, 0x94
/* AC2EC0 8004BD20 3C048014 */ lui $a0, %hi(D_80139218) # $a0, 0x8014
/* AC2EC4 8004BD24 24849218 */ addiu $a0, %lo(D_80139218) # addiu $a0, $a0, -0x6de8
/* AC2EC8 8004BD28 84E50000 */ lh $a1, ($a3)
/* AC2ECC 8004BD2C 0C00084C */ jal osSyncPrintf
/* AC2ED0 8004BD30 84660000 */ lh $a2, ($v1)
/* AC2ED4 8004BD34 A600015E */ sh $zero, 0x15e($s0)
/* AC2ED8 8004BD38 10000229 */ b .L8004C5E0
/* AC2EDC 8004BD3C 24020001 */ li $v0, 1
.L8004BD40:
/* AC2EE0 8004BD40 10C00003 */ beqz $a2, .L8004BD50
/* AC2EE4 8004BD44 26030094 */ addiu $v1, $s0, 0x94
/* AC2EE8 8004BD48 10000002 */ b .L8004BD54
/* AC2EEC 8004BD4C C6020024 */ lwc1 $f2, 0x24($s0)
.L8004BD50:
/* AC2EF0 8004BD50 C6020000 */ lwc1 $f2, ($s0)
.L8004BD54:
/* AC2EF4 8004BD54 10C00003 */ beqz $a2, .L8004BD64
/* AC2EF8 8004BD58 C7AA0080 */ lwc1 $f10, 0x80($sp)
/* AC2EFC 8004BD5C 10000002 */ b .L8004BD68
/* AC2F00 8004BD60 24020081 */ li $v0, 129
.L8004BD64:
/* AC2F04 8004BD64 24020001 */ li $v0, 1
.L8004BD68:
/* AC2F08 8004BD68 26380008 */ addiu $t8, $s1, 8
/* AC2F0C 8004BD6C 27A900A4 */ addiu $t1, $sp, 0xa4
/* AC2F10 8004BD70 AFA90018 */ sw $t1, 0x18($sp)
/* AC2F14 8004BD74 AFB80014 */ sw $t8, 0x14($sp)
/* AC2F18 8004BD78 E7AA0010 */ swc1 $f10, 0x10($sp)
/* AC2F1C 8004BD7C 8619002C */ lh $t9, 0x2c($s0)
/* AC2F20 8004BD80 44071000 */ mfc1 $a3, $f2
/* AC2F24 8004BD84 AFA30040 */ sw $v1, 0x40($sp)
/* AC2F28 8004BD88 00595025 */ or $t2, $v0, $t9
/* AC2F2C 8004BD8C AFAA001C */ sw $t2, 0x1c($sp)
/* AC2F30 8004BD90 0C01182A */ jal func_800460A8
/* AC2F34 8004BD94 8FA60038 */ lw $a2, 0x38($sp)
/* AC2F38 8004BD98 8FA30040 */ lw $v1, 0x40($sp)
/* AC2F3C 8004BD9C 87A800AA */ lh $t0, 0xaa($sp)
/* AC2F40 8004BDA0 27A5011C */ addiu $a1, $sp, 0x11c
/* AC2F44 8004BDA4 8C6C0000 */ lw $t4, ($v1)
/* AC2F48 8004BDA8 27A400A4 */ addiu $a0, $sp, 0xa4
/* AC2F4C 8004BDAC ACAC0000 */ sw $t4, ($a1)
/* AC2F50 8004BDB0 8C6B0004 */ lw $t3, 4($v1)
/* AC2F54 8004BDB4 ACAB0004 */ sw $t3, 4($a1)
/* AC2F58 8004BDB8 8C6C0008 */ lw $t4, 8($v1)
/* AC2F5C 8004BDBC ACAC0008 */ sw $t4, 8($a1)
/* AC2F60 8004BDC0 C7A80120 */ lwc1 $f8, 0x120($sp)
/* AC2F64 8004BDC4 C7A40064 */ lwc1 $f4, 0x64($sp)
/* AC2F68 8004BDC8 8FA60038 */ lw $a2, 0x38($sp)
/* AC2F6C 8004BDCC A7A8008C */ sh $t0, 0x8c($sp)
/* AC2F70 8004BDD0 46044180 */ add.s $f6, $f8, $f4
/* AC2F74 8004BDD4 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90
/* AC2F78 8004BDD8 E7A60120 */ swc1 $f6, 0x120($sp)
/* AC2F7C 8004BDDC C7A000A4 */ lwc1 $f0, 0xa4($sp)
/* AC2F80 8004BDE0 C7A20080 */ lwc1 $f2, 0x80($sp)
/* AC2F84 8004BDE4 87A8008C */ lh $t0, 0x8c($sp)
/* AC2F88 8004BDE8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AC2F8C 8004BDEC 4600103C */ c.lt.s $f2, $f0
/* AC2F90 8004BDF0 00000000 */ nop
/* AC2F94 8004BDF4 45020005 */ bc1fl .L8004BE0C
/* AC2F98 8004BDF8 46020203 */ div.s $f8, $f0, $f2
/* AC2F9C 8004BDFC 44815000 */ mtc1 $at, $f10
/* AC2FA0 8004BE00 10000003 */ b .L8004BE10
/* AC2FA4 8004BE04 E7AA00E4 */ swc1 $f10, 0xe4($sp)
/* AC2FA8 8004BE08 46020203 */ div.s $f8, $f0, $f2
.L8004BE0C:
/* AC2FAC 8004BE0C E7A800E4 */ swc1 $f8, 0xe4($sp)
.L8004BE10:
/* AC2FB0 8004BE10 8FAD0038 */ lw $t5, 0x38($sp)
/* AC2FB4 8004BE14 27A60110 */ addiu $a2, $sp, 0x110
/* AC2FB8 8004BE18 27A400AC */ addiu $a0, $sp, 0xac
/* AC2FBC 8004BE1C 8DAF0000 */ lw $t7, ($t5)
/* AC2FC0 8004BE20 ACCF0000 */ sw $t7, ($a2)
/* AC2FC4 8004BE24 8DAE0004 */ lw $t6, 4($t5)
/* AC2FC8 8004BE28 ACCE0004 */ sw $t6, 4($a2)
/* AC2FCC 8004BE2C 8DAF0008 */ lw $t7, 8($t5)
/* AC2FD0 8004BE30 ACCF0008 */ sw $t7, 8($a2)
/* AC2FD4 8004BE34 A7A8008C */ sh $t0, 0x8c($sp)
/* AC2FD8 8004BE38 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90
/* AC2FDC 8004BE3C 8FA50048 */ lw $a1, 0x48($sp)
/* AC2FE0 8004BE40 C7AC00AC */ lwc1 $f12, 0xac($sp)
/* AC2FE4 8004BE44 C7A40080 */ lwc1 $f4, 0x80($sp)
/* AC2FE8 8004BE48 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC2FEC 8004BE4C 44815000 */ mtc1 $at, $f10
/* AC2FF0 8004BE50 4604603E */ c.le.s $f12, $f4
/* AC2FF4 8004BE54 87A8008C */ lh $t0, 0x8c($sp)
/* AC2FF8 8004BE58 C7A20080 */ lwc1 $f2, 0x80($sp)
/* AC2FFC 8004BE5C 45000003 */ bc1f .L8004BE6C
/* AC3000 8004BE60 00000000 */ nop
/* AC3004 8004BE64 10000001 */ b .L8004BE6C
/* AC3008 8004BE68 46006086 */ mov.s $f2, $f12
.L8004BE6C:
/* AC300C 8004BE6C 460A1202 */ mul.s $f8, $f2, $f10
/* AC3010 8004BE70 C7AC0080 */ lwc1 $f12, 0x80($sp)
/* AC3014 8004BE74 3C018014 */ lui $at, %hi(D_8013A010)
/* AC3018 8004BE78 C42AA010 */ lwc1 $f10, %lo(D_8013A010)($at)
/* AC301C 8004BE7C 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
/* AC3020 8004BE80 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1)
/* AC3024 8004BE84 3C018014 */ lui $at, %hi(D_8013A014)
/* AC3028 8004BE88 46086101 */ sub.s $f4, $f12, $f8
/* AC302C 8004BE8C C7A800E4 */ lwc1 $f8, 0xe4($sp)
/* AC3030 8004BE90 3C074000 */ lui $a3, 0x4000
/* AC3034 8004BE94 E7A400AC */ swc1 $f4, 0xac($sp)
/* AC3038 8004BE98 46085101 */ sub.s $f4, $f10, $f8
/* AC303C 8004BE9C C60A000C */ lwc1 $f10, 0xc($s0)
/* AC3040 8004BEA0 C6000008 */ lwc1 $f0, 8($s0)
/* AC3044 8004BEA4 847801AE */ lh $t8, 0x1ae($v1)
/* AC3048 8004BEA8 46005201 */ sub.s $f8, $f10, $f0
/* AC304C 8004BEAC 46044282 */ mul.s $f10, $f8, $f4
/* AC3050 8004BEB0 44984000 */ mtc1 $t8, $f8
/* AC3054 8004BEB4 00000000 */ nop
/* AC3058 8004BEB8 46804120 */ cvt.s.w $f4, $f8
/* AC305C 8004BEBC 460A0480 */ add.s $f18, $f0, $f10
/* AC3060 8004BEC0 46122280 */ add.s $f10, $f4, $f18
/* AC3064 8004BEC4 E7AA00F8 */ swc1 $f10, 0xf8($sp)
/* AC3068 8004BEC8 846901AA */ lh $t1, 0x1aa($v1)
/* AC306C 8004BECC C42AA014 */ lwc1 $f10, %lo(D_8013A014)($at)
/* AC3070 8004BED0 C60E00DC */ lwc1 $f14, 0xdc($s0)
/* AC3074 8004BED4 44894000 */ mtc1 $t1, $f8
/* AC3078 8004BED8 E7B200F4 */ swc1 $f18, 0xf4($sp)
/* AC307C 8004BEDC A7A8008C */ sh $t0, 0x8c($sp)
/* AC3080 8004BEE0 46804120 */ cvt.s.w $f4, $f8
/* AC3084 8004BEE4 460A2182 */ mul.s $f6, $f4, $f10
/* AC3088 8004BEE8 44063000 */ mfc1 $a2, $f6
/* AC308C 8004BEEC 0C010E27 */ jal func_8004389C
/* AC3090 8004BEF0 00000000 */ nop
/* AC3094 8004BEF4 87A8008C */ lh $t0, 0x8c($sp)
/* AC3098 8004BEF8 C7B200F4 */ lwc1 $f18, 0xf4($sp)
/* AC309C 8004BEFC E60000DC */ swc1 $f0, 0xdc($s0)
/* AC30A0 8004BF00 87B9009A */ lh $t9, 0x9a($sp)
/* AC30A4 8004BF04 87AA00B2 */ lh $t2, 0xb2($sp)
/* AC30A8 8004BF08 E7A000B4 */ swc1 $f0, 0xb4($sp)
/* AC30AC 8004BF0C 272B8001 */ addiu $t3, $t9, -0x7fff
/* AC30B0 8004BF10 000B6400 */ sll $t4, $t3, 0x10
/* AC30B4 8004BF14 A7B900BA */ sh $t9, 0xba($sp)
/* AC30B8 8004BF18 8623001A */ lh $v1, 0x1a($s1)
/* AC30BC 8004BF1C 000C6C03 */ sra $t5, $t4, 0x10
/* AC30C0 8004BF20 014D1023 */ subu $v0, $t2, $t5
/* AC30C4 8004BF24 00022C00 */ sll $a1, $v0, 0x10
/* AC30C8 8004BF28 1060007B */ beqz $v1, .L8004C118
/* AC30CC 8004BF2C 00052C03 */ sra $a1, $a1, 0x10
/* AC30D0 8004BF30 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016
/* AC30D4 8004BF34 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
/* AC30D8 8004BF38 27A400A4 */ addiu $a0, $sp, 0xa4
/* AC30DC 8004BF3C 24190001 */ li $t9, 1
/* AC30E0 8004BF40 85C201C4 */ lh $v0, 0x1c4($t6)
/* AC30E4 8004BF44 0062082A */ slt $at, $v1, $v0
/* AC30E8 8004BF48 1420006F */ bnez $at, .L8004C108
/* AC30EC 8004BF4C 00627823 */ subu $t7, $v1, $v0
/* AC30F0 8004BF50 A7AF0086 */ sh $t7, 0x86($sp)
/* AC30F4 8004BF54 8FA50048 */ lw $a1, 0x48($sp)
/* AC30F8 8004BF58 8FA6004C */ lw $a2, 0x4c($sp)
/* AC30FC 8004BF5C 0C01F124 */ jal OLib_Vec3fDiffToVecSphRot90
/* AC3100 8004BF60 A7A8008C */ sh $t0, 0x8c($sp)
/* AC3104 8004BF64 87A8008C */ lh $t0, 0x8c($sp)
/* AC3108 8004BF68 3C038016 */ lui $v1, %hi(gGameInfo)
/* AC310C 8004BF6C 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1)
/* AC3110 8004BF70 25188001 */ addiu $t8, $t0, -0x7fff
/* AC3114 8004BF74 A7B800AA */ sh $t8, 0xaa($sp)
/* AC3118 8004BF78 846901C2 */ lh $t1, 0x1c2($v1)
/* AC311C 8004BF7C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AC3120 8004BF80 44818000 */ mtc1 $at, $f16
/* AC3124 8004BF84 44894000 */ mtc1 $t1, $f8
/* AC3128 8004BF88 87AB00AA */ lh $t3, 0xaa($sp)
/* AC312C 8004BF8C 86390016 */ lh $t9, 0x16($s1)
/* AC3130 8004BF90 46804120 */ cvt.s.w $f4, $f8
/* AC3134 8004BF94 C62A0000 */ lwc1 $f10, ($s1)
/* AC3138 8004BF98 032B6023 */ subu $t4, $t9, $t3
/* AC313C 8004BF9C C7A600A4 */ lwc1 $f6, 0xa4($sp)
/* AC3140 8004BFA0 000C5400 */ sll $t2, $t4, 0x10
/* AC3144 8004BFA4 000A6C03 */ sra $t5, $t2, 0x10
/* AC3148 8004BFA8 46048003 */ div.s $f0, $f16, $f4
/* AC314C 8004BFAC 448D2000 */ mtc1 $t5, $f4
/* AC3150 8004BFB0 87A900A8 */ lh $t1, 0xa8($sp)
/* AC3154 8004BFB4 87AD0086 */ lh $t5, 0x86($sp)
/* AC3158 8004BFB8 46065201 */ sub.s $f8, $f10, $f6
/* AC315C 8004BFBC 3C018014 */ lui $at, %hi(D_8013A018)
/* AC3160 8004BFC0 44078000 */ mfc1 $a3, $f16
/* AC3164 8004BFC4 468022A0 */ cvt.s.w $f10, $f4
/* AC3168 8004BFC8 C7AE009C */ lwc1 $f14, 0x9c($sp)
/* AC316C 8004BFCC 46004082 */ mul.s $f2, $f8, $f0
/* AC3170 8004BFD0 00000000 */ nop
/* AC3174 8004BFD4 46005202 */ mul.s $f8, $f10, $f0
/* AC3178 8004BFD8 4600410D */ trunc.w.s $f4, $f8
/* AC317C 8004BFDC 440F2000 */ mfc1 $t7, $f4
/* AC3180 8004BFE0 00000000 */ nop
/* AC3184 8004BFE4 A7AF008E */ sh $t7, 0x8e($sp)
/* AC3188 8004BFE8 86380018 */ lh $t8, 0x18($s1)
/* AC318C 8004BFEC 846E01CC */ lh $t6, 0x1cc($v1)
/* AC3190 8004BFF0 0309C823 */ subu $t9, $t8, $t1
/* AC3194 8004BFF4 00195C00 */ sll $t3, $t9, 0x10
/* AC3198 8004BFF8 000B6403 */ sra $t4, $t3, 0x10
/* AC319C 8004BFFC 448C5000 */ mtc1 $t4, $f10
/* AC31A0 8004C000 00000000 */ nop
/* AC31A4 8004C004 46805220 */ cvt.s.w $f8, $f10
/* AC31A8 8004C008 46004102 */ mul.s $f4, $f8, $f0
/* AC31AC 8004C00C 448D4000 */ mtc1 $t5, $f8
/* AC31B0 8004C010 4600228D */ trunc.w.s $f10, $f4
/* AC31B4 8004C014 46804120 */ cvt.s.w $f4, $f8
/* AC31B8 8004C018 44085000 */ mfc1 $t0, $f10
/* AC31BC 8004C01C 448E4000 */ mtc1 $t6, $f8
/* AC31C0 8004C020 00084400 */ sll $t0, $t0, 0x10
/* AC31C4 8004C024 00084403 */ sra $t0, $t0, 0x10
/* AC31C8 8004C028 46022282 */ mul.s $f10, $f4, $f2
/* AC31CC 8004C02C A7A8008C */ sh $t0, 0x8c($sp)
/* AC31D0 8004C030 46804120 */ cvt.s.w $f4, $f8
/* AC31D4 8004C034 46065300 */ add.s $f12, $f10, $f6
/* AC31D8 8004C038 C42AA018 */ lwc1 $f10, %lo(D_8013A018)($at)
/* AC31DC 8004C03C 460A2182 */ mul.s $f6, $f4, $f10
/* AC31E0 8004C040 44063000 */ mfc1 $a2, $f6
/* AC31E4 8004C044 0C010E27 */ jal func_8004389C
/* AC31E8 8004C048 00000000 */ nop
/* AC31EC 8004C04C 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016
/* AC31F0 8004C050 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3)
/* AC31F4 8004C054 E7A000B4 */ swc1 $f0, 0xb4($sp)
/* AC31F8 8004C058 87AF008E */ lh $t7, 0x8e($sp)
/* AC31FC 8004C05C 856C01CC */ lh $t4, 0x1cc($t3)
/* AC3200 8004C060 87B80086 */ lh $t8, 0x86($sp)
/* AC3204 8004C064 3C018014 */ lui $at, %hi(D_8013A01C)
/* AC3208 8004C068 448C4000 */ mtc1 $t4, $f8
/* AC320C 8004C06C 01F80019 */ multu $t7, $t8
/* AC3210 8004C070 C42AA01C */ lwc1 $f10, %lo(D_8013A01C)($at)
/* AC3214 8004C074 46804120 */ cvt.s.w $f4, $f8
/* AC3218 8004C078 87B900AA */ lh $t9, 0xaa($sp)
/* AC321C 8004C07C 87A500A2 */ lh $a1, 0xa2($sp)
/* AC3220 8004C080 2407000A */ li $a3, 10
/* AC3224 8004C084 460A2182 */ mul.s $f6, $f4, $f10
/* AC3228 8004C088 00004812 */ mflo $t1
/* AC322C 8004C08C 03292021 */ addu $a0, $t9, $t1
/* AC3230 8004C090 00042400 */ sll $a0, $a0, 0x10
/* AC3234 8004C094 00042403 */ sra $a0, $a0, 0x10
/* AC3238 8004C098 44063000 */ mfc1 $a2, $f6
/* AC323C 8004C09C 0C010E47 */ jal func_8004391C
/* AC3240 8004C0A0 00000000 */ nop
/* AC3244 8004C0A4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016
/* AC3248 8004C0A8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7)
/* AC324C 8004C0AC A7A200BA */ sh $v0, 0xba($sp)
/* AC3250 8004C0B0 87A8008C */ lh $t0, 0x8c($sp)
/* AC3254 8004C0B4 85F801CC */ lh $t8, 0x1cc($t7)
/* AC3258 8004C0B8 87AD0086 */ lh $t5, 0x86($sp)
/* AC325C 8004C0BC 3C018014 */ lui $at, %hi(D_8013A020)
/* AC3260 8004C0C0 44984000 */ mtc1 $t8, $f8
/* AC3264 8004C0C4 010D0019 */ multu $t0, $t5
/* AC3268 8004C0C8 C42AA020 */ lwc1 $f10, %lo(D_8013A020)($at)
/* AC326C 8004C0CC 46804120 */ cvt.s.w $f4, $f8
/* AC3270 8004C0D0 87AA00A8 */ lh $t2, 0xa8($sp)
/* AC3274 8004C0D4 87A500A0 */ lh $a1, 0xa0($sp)
/* AC3278 8004C0D8 2407000A */ li $a3, 10
/* AC327C 8004C0DC 460A2182 */ mul.s $f6, $f4, $f10
/* AC3280 8004C0E0 00007012 */ mflo $t6
/* AC3284 8004C0E4 014E2021 */ addu $a0, $t2, $t6
/* AC3288 8004C0E8 00042400 */ sll $a0, $a0, 0x10
/* AC328C 8004C0EC 00042403 */ sra $a0, $a0, 0x10
/* AC3290 8004C0F0 44063000 */ mfc1 $a2, $f6
/* AC3294 8004C0F4 0C010E47 */ jal func_8004391C
/* AC3298 8004C0F8 00000000 */ nop
/* AC329C 8004C0FC A7A200B8 */ sh $v0, 0xb8($sp)
/* AC32A0 8004C100 10000002 */ b .L8004C10C
/* AC32A4 8004C104 8623001A */ lh $v1, 0x1a($s1)
.L8004C108:
/* AC32A8 8004C108 AFB900E8 */ sw $t9, 0xe8($sp)
.L8004C10C:
/* AC32AC 8004C10C 2469FFFF */ addiu $t1, $v1, -1
/* AC32B0 8004C110 10000075 */ b .L8004C2E8
/* AC32B4 8004C114 A629001A */ sh $t1, 0x1a($s1)
.L8004C118:
/* AC32B8 8004C118 00022400 */ sll $a0, $v0, 0x10
/* AC32BC 8004C11C 00042403 */ sra $a0, $a0, 0x10
/* AC32C0 8004C120 04800003 */ bltz $a0, .L8004C130
/* AC32C4 8004C124 3C018014 */ lui $at, %hi(D_8013A024)
/* AC32C8 8004C128 10000002 */ b .L8004C134
/* AC32CC 8004C12C 00801025 */ move $v0, $a0
.L8004C130:
/* AC32D0 8004C130 00041023 */ negu $v0, $a0
.L8004C134:
/* AC32D4 8004C134 C428A024 */ lwc1 $f8, %lo(D_8013A024)($at)
/* AC32D8 8004C138 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC32DC 8004C13C 44815000 */ mtc1 $at, $f10
/* AC32E0 8004C140 46089102 */ mul.s $f4, $f18, $f8
/* AC32E4 8004C144 460A2180 */ add.s $f6, $f4, $f10
/* AC32E8 8004C148 4600320D */ trunc.w.s $f8, $f6
/* AC32EC 8004C14C 44034000 */ mfc1 $v1, $f8
/* AC32F0 8004C150 00000000 */ nop
/* AC32F4 8004C154 00031C00 */ sll $v1, $v1, 0x10
/* AC32F8 8004C158 00031C03 */ sra $v1, $v1, 0x10
/* AC32FC 8004C15C 0062082A */ slt $at, $v1, $v0
/* AC3300 8004C160 50200049 */ beql $at, $zero, .L8004C288
/* AC3304 8004C164 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AC3308 8004C168 44852000 */ mtc1 $a1, $f4
/* AC330C 8004C16C 3C018014 */ lui $at, %hi(D_8013A028)
/* AC3310 8004C170 C426A028 */ lwc1 $f6, %lo(D_8013A028)($at)
/* AC3314 8004C174 468022A0 */ cvt.s.w $f10, $f4
/* AC3318 8004C178 C7AC00AC */ lwc1 $f12, 0xac($sp)
/* AC331C 8004C17C C7AE00B4 */ lwc1 $f14, 0xb4($sp)
/* AC3320 8004C180 A7A5008E */ sh $a1, 0x8e($sp)
/* AC3324 8004C184 E7B200F4 */ swc1 $f18, 0xf4($sp)
/* AC3328 8004C188 46065402 */ mul.s $f16, $f10, $f6
/* AC332C 8004C18C 0C01F02A */ jal func_8007C0A8
/* AC3330 8004C190 E7B000FC */ swc1 $f16, 0xfc($sp)
/* AC3334 8004C194 C7A800B4 */ lwc1 $f8, 0xb4($sp)
/* AC3338 8004C198 C7B200F4 */ lwc1 $f18, 0xf4($sp)
/* AC333C 8004C19C C7AA00F8 */ lwc1 $f10, 0xf8($sp)
/* AC3340 8004C1A0 46080103 */ div.s $f4, $f0, $f8
/* AC3344 8004C1A4 3C014000 */ li $at, 0x40000000 # 0.000000
/* AC3348 8004C1A8 C7B000FC */ lwc1 $f16, 0xfc($sp)
/* AC334C 8004C1AC 87AC008E */ lh $t4, 0x8e($sp)
/* AC3350 8004C1B0 46125181 */ sub.s $f6, $f10, $f18
/* AC3354 8004C1B4 87AE009A */ lh $t6, 0x9a($sp)
/* AC3358 8004C1B8 25D98001 */ addiu $t9, $t6, -0x7fff
/* AC335C 8004C1BC 46062202 */ mul.s $f8, $f4, $f6
/* AC3360 8004C1C0 44812000 */ mtc1 $at, $f4
/* AC3364 8004C1C4 3C0143B4 */ li $at, 0x43B40000 # 0.000000
/* AC3368 8004C1C8 46124080 */ add.s $f2, $f8, $f18
/* AC336C 8004C1CC 44814000 */ mtc1 $at, $f8
/* AC3370 8004C1D0 3C014000 */ li $at, 0x40000000 # 0.000000
/* AC3374 8004C1D4 46021282 */ mul.s $f10, $f2, $f2
/* AC3378 8004C1D8 46045181 */ sub.s $f6, $f10, $f4
/* AC337C 8004C1DC 44812000 */ mtc1 $at, $f4
/* AC3380 8004C1E0 3C0143B4 */ li $at, 0x43B40000 # 0.000000
/* AC3384 8004C1E4 46081281 */ sub.s $f10, $f2, $f8
/* AC3388 8004C1E8 44814000 */ mtc1 $at, $f8
/* AC338C 8004C1EC 3C018014 */ lui $at, %hi(D_8013A030)
/* AC3390 8004C1F0 460A3303 */ div.s $f12, $f6, $f10
/* AC3394 8004C1F4 460C4182 */ mul.s $f6, $f8, $f12
/* AC3398 8004C1F8 46062281 */ sub.s $f10, $f4, $f6
/* AC339C 8004C1FC 46106202 */ mul.s $f8, $f12, $f16
/* AC33A0 8004C200 460A4100 */ add.s $f4, $f8, $f10
/* AC33A4 8004C204 46108182 */ mul.s $f6, $f16, $f16
/* AC33A8 8004C208 0580000D */ bltz $t4, .L8004C240
/* AC33AC 8004C20C 46043383 */ div.s $f14, $f6, $f4
/* AC33B0 8004C210 3C018014 */ lui $at, %hi(D_8013A02C)
/* AC33B4 8004C214 C428A02C */ lwc1 $f8, %lo(D_8013A02C)($at)
/* AC33B8 8004C218 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC33BC 8004C21C 44813000 */ mtc1 $at, $f6
/* AC33C0 8004C220 46087282 */ mul.s $f10, $f14, $f8
/* AC33C4 8004C224 46065100 */ add.s $f4, $f10, $f6
/* AC33C8 8004C228 4600220D */ trunc.w.s $f8, $f4
/* AC33CC 8004C22C 44084000 */ mfc1 $t0, $f8
/* AC33D0 8004C230 00000000 */ nop
/* AC33D4 8004C234 00084400 */ sll $t0, $t0, 0x10
/* AC33D8 8004C238 1000000E */ b .L8004C274
/* AC33DC 8004C23C 00084403 */ sra $t0, $t0, 0x10
.L8004C240:
/* AC33E0 8004C240 C42AA030 */ lwc1 $f10, %lo(D_8013A030)($at)
/* AC33E4 8004C244 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC33E8 8004C248 44812000 */ mtc1 $at, $f4
/* AC33EC 8004C24C 460A7182 */ mul.s $f6, $f14, $f10
/* AC33F0 8004C250 46043200 */ add.s $f8, $f6, $f4
/* AC33F4 8004C254 4600428D */ trunc.w.s $f10, $f8
/* AC33F8 8004C258 44085000 */ mfc1 $t0, $f10
/* AC33FC 8004C25C 00000000 */ nop
/* AC3400 8004C260 00084400 */ sll $t0, $t0, 0x10
/* AC3404 8004C264 00084403 */ sra $t0, $t0, 0x10
/* AC3408 8004C268 00084023 */ negu $t0, $t0
/* AC340C 8004C26C 00084400 */ sll $t0, $t0, 0x10
/* AC3410 8004C270 00084403 */ sra $t0, $t0, 0x10
.L8004C274:
/* AC3414 8004C274 03286021 */ addu $t4, $t9, $t0
/* AC3418 8004C278 258D8001 */ addiu $t5, $t4, -0x7fff
/* AC341C 8004C27C 1000001A */ b .L8004C2E8
/* AC3420 8004C280 A7AD00BA */ sh $t5, 0xba($sp)
/* AC3424 8004C284 3C013F80 */ li $at, 0x3F800000 # 0.000000
.L8004C288:
/* AC3428 8004C288 44813000 */ mtc1 $at, $f6
/* AC342C 8004C28C C60400E0 */ lwc1 $f4, 0xe0($s0)
/* AC3430 8004C290 3C018014 */ lui $at, %hi(D_8013A034)
/* AC3434 8004C294 C42AA034 */ lwc1 $f10, %lo(D_8013A034)($at)
/* AC3438 8004C298 46043201 */ sub.s $f8, $f6, $f4
/* AC343C 8004C29C 00034023 */ negu $t0, $v1
/* AC3440 8004C2A0 00084400 */ sll $t0, $t0, 0x10
/* AC3444 8004C2A4 00084403 */ sra $t0, $t0, 0x10
/* AC3448 8004C2A8 460A4402 */ mul.s $f16, $f8, $f10
/* AC344C 8004C2AC 04800004 */ bltz $a0, .L8004C2C0
/* AC3450 8004C2B0 00000000 */ nop
/* AC3454 8004C2B4 00034400 */ sll $t0, $v1, 0x10
/* AC3458 8004C2B8 10000001 */ b .L8004C2C0
/* AC345C 8004C2BC 00084403 */ sra $t0, $t0, 0x10
.L8004C2C0:
/* AC3460 8004C2C0 01047023 */ subu $t6, $t0, $a0
/* AC3464 8004C2C4 448E3000 */ mtc1 $t6, $f6
/* AC3468 8004C2C8 87AA009A */ lh $t2, 0x9a($sp)
/* AC346C 8004C2CC 46803120 */ cvt.s.w $f4, $f6
/* AC3470 8004C2D0 46102202 */ mul.s $f8, $f4, $f16
/* AC3474 8004C2D4 4600428D */ trunc.w.s $f10, $f8
/* AC3478 8004C2D8 44095000 */ mfc1 $t1, $f10
/* AC347C 8004C2DC 00000000 */ nop
/* AC3480 8004C2E0 01495823 */ subu $t3, $t2, $t1
/* AC3484 8004C2E4 A7AB00BA */ sh $t3, 0xba($sp)
.L8004C2E8:
/* AC3488 8004C2E8 8FAC00E8 */ lw $t4, 0xe8($sp)
/* AC348C 8004C2EC 87AD00B0 */ lh $t5, 0xb0($sp)
/* AC3490 8004C2F0 87A50098 */ lh $a1, 0x98($sp)
/* AC3494 8004C2F4 15800076 */ bnez $t4, .L8004C4D0
/* AC3498 8004C2F8 2407000A */ li $a3, 10
/* AC349C 8004C2FC 448D3000 */ mtc1 $t5, $f6
/* AC34A0 8004C300 C6080018 */ lwc1 $f8, 0x18($s0)
/* AC34A4 8004C304 C7AA0078 */ lwc1 $f10, 0x78($sp)
/* AC34A8 8004C308 46803120 */ cvt.s.w $f4, $f6
/* AC34AC 8004C30C C7A6007C */ lwc1 $f6, 0x7c($sp)
/* AC34B0 8004C310 C7A000E4 */ lwc1 $f0, 0xe4($sp)
/* AC34B4 8004C314 3C018014 */ lui $at, %hi(D_8013A038)
/* AC34B8 8004C318 87AA00A8 */ lh $t2, 0xa8($sp)
/* AC34BC 8004C31C 46082082 */ mul.s $f2, $f4, $f8
/* AC34C0 8004C320 46065101 */ sub.s $f4, $f10, $f6
/* AC34C4 8004C324 46002202 */ mul.s $f8, $f4, $f0
/* AC34C8 8004C328 C424A038 */ lwc1 $f4, %lo(D_8013A038)($at)
/* AC34CC 8004C32C 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC34D0 8004C330 46064280 */ add.s $f10, $f8, $f6
/* AC34D4 8004C334 44813000 */ mtc1 $at, $f6
/* AC34D8 8004C338 46045202 */ mul.s $f8, $f10, $f4
/* AC34DC 8004C33C 46064280 */ add.s $f10, $f8, $f6
/* AC34E0 8004C340 44813000 */ mtc1 $at, $f6
/* AC34E4 8004C344 44814000 */ mtc1 $at, $f8
/* AC34E8 8004C348 4600510D */ trunc.w.s $f4, $f10
/* AC34EC 8004C34C 46060282 */ mul.s $f10, $f0, $f6
/* AC34F0 8004C350 448A3000 */ mtc1 $t2, $f6
/* AC34F4 8004C354 44192000 */ mfc1 $t9, $f4
/* AC34F8 8004C358 460A4100 */ add.s $f4, $f8, $f10
/* AC34FC 8004C35C 46803220 */ cvt.s.w $f8, $f6
/* AC3500 8004C360 46044282 */ mul.s $f10, $f8, $f4
/* AC3504 8004C364 4600120D */ trunc.w.s $f8, $f2
/* AC3508 8004C368 440C4000 */ mfc1 $t4, $f8
/* AC350C 8004C36C 4600518D */ trunc.w.s $f6, $f10
/* AC3510 8004C370 440D3000 */ mfc1 $t5, $f6
/* AC3514 8004C374 00000000 */ nop
/* AC3518 8004C378 032DC023 */ subu $t8, $t9, $t5
/* AC351C 8004C37C 030C1021 */ addu $v0, $t8, $t4
/* AC3520 8004C380 00021C00 */ sll $v1, $v0, 0x10
/* AC3524 8004C384 00031C03 */ sra $v1, $v1, 0x10
/* AC3528 8004C388 00022400 */ sll $a0, $v0, 0x10
/* AC352C 8004C38C 2861D558 */ slti $at, $v1, -0x2aa8
/* AC3530 8004C390 10200003 */ beqz $at, .L8004C3A0
/* AC3534 8004C394 00042403 */ sra $a0, $a0, 0x10
/* AC3538 8004C398 10000005 */ b .L8004C3B0
/* AC353C 8004C39C 2404D558 */ li $a0, -10920
.L8004C3A0:
/* AC3540 8004C3A0 28612AA9 */ slti $at, $v1, 0x2aa9
/* AC3544 8004C3A4 14200002 */ bnez $at, .L8004C3B0
/* AC3548 8004C3A8 00000000 */ nop
/* AC354C 8004C3AC 24042AA8 */ li $a0, 10920
.L8004C3B0:
/* AC3550 8004C3B0 0C010E47 */ jal func_8004391C
/* AC3554 8004C3B4 8E260010 */ lw $a2, 0x10($s1)
/* AC3558 8004C3B8 A7A200B8 */ sh $v0, 0xb8($sp)
/* AC355C 8004C3BC 8FA40044 */ lw $a0, 0x44($sp)
/* AC3560 8004C3C0 8FA50048 */ lw $a1, 0x48($sp)
/* AC3564 8004C3C4 0C010F0A */ jal func_80043C28
/* AC3568 8004C3C8 27A600B4 */ addiu $a2, $sp, 0xb4
/* AC356C 8004C3CC 8FB90044 */ lw $t9, 0x44($sp)
/* AC3570 8004C3D0 27A600BC */ addiu $a2, $sp, 0xbc
/* AC3574 8004C3D4 24010007 */ li $at, 7
/* AC3578 8004C3D8 8F2E0000 */ lw $t6, ($t9)
/* AC357C 8004C3DC ACCE0000 */ sw $t6, ($a2)
/* AC3580 8004C3E0 8F2D0004 */ lw $t5, 4($t9)
/* AC3584 8004C3E4 ACCD0004 */ sw $t5, 4($a2)
/* AC3588 8004C3E8 8F2E0008 */ lw $t6, 8($t9)
/* AC358C 8004C3EC ACCE0008 */ sw $t6, 8($a2)
/* AC3590 8004C3F0 860F0140 */ lh $t7, 0x140($s0)
/* AC3594 8004C3F4 8FAA0044 */ lw $t2, 0x44($sp)
/* AC3598 8004C3F8 55E1002F */ bnel $t7, $at, .L8004C4B8
/* AC359C 8004C3FC 8FAF004C */ lw $t7, 0x4c($sp)
/* AC35A0 8004C400 8E0A008C */ lw $t2, 0x8c($s0)
/* AC35A4 8004C404 3C090001 */ lui $t1, 1
/* AC35A8 8004C408 02002025 */ move $a0, $s0
/* AC35AC 8004C40C 012A4821 */ addu $t1, $t1, $t2
/* AC35B0 8004C410 91290A39 */ lbu $t1, 0xa39($t1)
/* AC35B4 8004C414 11200005 */ beqz $t1, .L8004C42C
/* AC35B8 8004C418 00000000 */ nop
/* AC35BC 8004C41C 8602002C */ lh $v0, 0x2c($s0)
/* AC35C0 8004C420 304B0001 */ andi $t3, $v0, 1
/* AC35C4 8004C424 11600005 */ beqz $t3, .L8004C43C
/* AC35C8 8004C428 30580002 */ andi $t8, $v0, 2
.L8004C42C:
/* AC35CC 8004C42C 0C010F46 */ jal func_80043D18
/* AC35D0 8004C430 8FA50048 */ lw $a1, 0x48($sp)
/* AC35D4 8004C434 10000017 */ b .L8004C494
/* AC35D8 8004C438 27B900BC */ addiu $t9, $sp, 0xbc
.L8004C43C:
/* AC35DC 8004C43C 13000006 */ beqz $t8, .L8004C458
/* AC35E0 8004C440 27A40128 */ addiu $a0, $sp, 0x128
/* AC35E4 8004C444 02002025 */ move $a0, $s0
/* AC35E8 8004C448 0C010FE5 */ jal func_80043F94
/* AC35EC 8004C44C 8FA50048 */ lw $a1, 0x48($sp)
/* AC35F0 8004C450 10000010 */ b .L8004C494
/* AC35F4 8004C454 27B900BC */ addiu $t9, $sp, 0xbc
.L8004C458:
/* AC35F8 8004C458 0C01F03E */ jal OLib_Vec3fDistNormalize
/* AC35FC 8004C45C 8FA50048 */ lw $a1, 0x48($sp)
/* AC3600 8004C460 C7A400BC */ lwc1 $f4, 0xbc($sp)
/* AC3604 8004C464 C7AA0128 */ lwc1 $f10, 0x128($sp)
/* AC3608 8004C468 C7A800C0 */ lwc1 $f8, 0xc0($sp)
/* AC360C 8004C46C 460A2181 */ sub.s $f6, $f4, $f10
/* AC3610 8004C470 C7A4012C */ lwc1 $f4, 0x12c($sp)
/* AC3614 8004C474 46044281 */ sub.s $f10, $f8, $f4
/* AC3618 8004C478 E7A600BC */ swc1 $f6, 0xbc($sp)
/* AC361C 8004C47C C7A600C4 */ lwc1 $f6, 0xc4($sp)
/* AC3620 8004C480 C7A80130 */ lwc1 $f8, 0x130($sp)
/* AC3624 8004C484 E7AA00C0 */ swc1 $f10, 0xc0($sp)
/* AC3628 8004C488 46083101 */ sub.s $f4, $f6, $f8
/* AC362C 8004C48C E7A400C4 */ swc1 $f4, 0xc4($sp)
/* AC3630 8004C490 27B900BC */ addiu $t9, $sp, 0xbc
.L8004C494:
/* AC3634 8004C494 8F2E0000 */ lw $t6, ($t9)
/* AC3638 8004C498 8FAC004C */ lw $t4, 0x4c($sp)
/* AC363C 8004C49C AD8E0000 */ sw $t6, ($t4)
/* AC3640 8004C4A0 8F2D0004 */ lw $t5, 4($t9)
/* AC3644 8004C4A4 AD8D0004 */ sw $t5, 4($t4)
/* AC3648 8004C4A8 8F2E0008 */ lw $t6, 8($t9)
/* AC364C 8004C4AC 10000008 */ b .L8004C4D0
/* AC3650 8004C4B0 AD8E0008 */ sw $t6, 8($t4)
/* AC3654 8004C4B4 8FAF004C */ lw $t7, 0x4c($sp)
.L8004C4B8:
/* AC3658 8004C4B8 8D4B0000 */ lw $t3, ($t2)
/* AC365C 8004C4BC ADEB0000 */ sw $t3, ($t7)
/* AC3660 8004C4C0 8D490004 */ lw $t1, 4($t2)
/* AC3664 8004C4C4 ADE90004 */ sw $t1, 4($t7)
/* AC3668 8004C4C8 8D4B0008 */ lw $t3, 8($t2)
/* AC366C 8004C4CC ADEB0008 */ sw $t3, 8($t7)
.L8004C4D0:
/* AC3670 8004C4D0 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
/* AC3674 8004C4D4 8C63FA90 */ lw $v1, %lo(gGameInfo)($v1)
/* AC3678 8004C4D8 C60800E0 */ lwc1 $f8, 0xe0($s0)
/* AC367C 8004C4DC 3C013F80 */ lui $at, 0x3f80
/* AC3680 8004C4E0 847801DC */ lh $t8, 0x1dc($v1)
/* AC3684 8004C4E4 846C01DE */ lh $t4, 0x1de($v1)
/* AC3688 8004C4E8 C6200004 */ lwc1 $f0, 4($s1)
/* AC368C 8004C4EC 44985000 */ mtc1 $t8, $f10
/* AC3690 8004C4F0 3C0A8016 */ lui $t2, %hi(gSaveContext+0x30)
/* AC3694 8004C4F4 468051A0 */ cvt.s.w $f6, $f10
/* AC3698 8004C4F8 44815000 */ mtc1 $at, $f10
/* AC369C 8004C4FC 3C018014 */ lui $at, %hi(D_8013A03C)
/* AC36A0 8004C500 46083102 */ mul.s $f4, $f6, $f8
/* AC36A4 8004C504 C7A600E4 */ lwc1 $f6, 0xe4($sp)
/* AC36A8 8004C508 46065201 */ sub.s $f8, $f10, $f6
/* AC36AC 8004C50C 46082282 */ mul.s $f10, $f4, $f8
/* AC36B0 8004C510 448C2000 */ mtc1 $t4, $f4
/* AC36B4 8004C514 00000000 */ nop
/* AC36B8 8004C518 46802220 */ cvt.s.w $f8, $f4
/* AC36BC 8004C51C 46005181 */ sub.s $f6, $f10, $f0
/* AC36C0 8004C520 C42AA03C */ lwc1 $f10, %lo(D_8013A03C)($at)
/* AC36C4 8004C524 3C018014 */ lui $at, %hi(D_8013A040)
/* AC36C8 8004C528 460A4102 */ mul.s $f4, $f8, $f10
/* AC36CC 8004C52C 00000000 */ nop
/* AC36D0 8004C530 46043202 */ mul.s $f8, $f6, $f4
/* AC36D4 8004C534 46080280 */ add.s $f10, $f0, $f8
/* AC36D8 8004C538 E62A0004 */ swc1 $f10, 4($s1)
/* AC36DC 8004C53C C424A040 */ lwc1 $f4, %lo(D_8013A040)($at)
/* AC36E0 8004C540 C6260004 */ lwc1 $f6, 4($s1)
/* AC36E4 8004C544 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC36E8 8004C548 44815000 */ mtc1 $at, $f10
/* AC36EC 8004C54C 46043202 */ mul.s $f8, $f6, $f4
/* AC36F0 8004C550 3C018014 */ lui $at, %hi(D_8013A044)
/* AC36F4 8004C554 460A4180 */ add.s $f6, $f8, $f10
/* AC36F8 8004C558 4600310D */ trunc.w.s $f4, $f6
/* AC36FC 8004C55C 440D2000 */ mfc1 $t5, $f4
/* AC3700 8004C560 00000000 */ nop
/* AC3704 8004C564 A60D015A */ sh $t5, 0x15a($s0)
/* AC3708 8004C568 8FAE0088 */ lw $t6, 0x88($sp)
/* AC370C 8004C56C C7A80074 */ lwc1 $f8, 0x74($sp)
/* AC3710 8004C570 81CF0843 */ lb $t7, 0x843($t6)
/* AC3714 8004C574 11E00003 */ beqz $t7, .L8004C584
/* AC3718 8004C578 00000000 */ nop
/* AC371C 8004C57C 1000000B */ b .L8004C5AC
/* AC3720 8004C580 C422A044 */ lwc1 $f2, %lo(D_8013A044)($at)
.L8004C584:
/* AC3724 8004C584 854AE690 */ lh $t2, %lo(gSaveContext+0x30)($t2)
/* AC3728 8004C588 29410011 */ slti $at, $t2, 0x11
/* AC372C 8004C58C 10200003 */ beqz $at, .L8004C59C
/* AC3730 8004C590 3C018014 */ lui $at, %hi(D_8013A048)
/* AC3734 8004C594 10000004 */ b .L8004C5A8
/* AC3738 8004C598 C420A048 */ lwc1 $f0, %lo(D_8013A048)($at)
.L8004C59C:
/* AC373C 8004C59C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AC3740 8004C5A0 44810000 */ mtc1 $at, $f0
/* AC3744 8004C5A4 00000000 */ nop
.L8004C5A8:
/* AC3748 8004C5A8 46000086 */ mov.s $f2, $f0
.L8004C5AC:
/* AC374C 8004C5AC 3C018014 */ lui $at, %hi(D_8013A04C)
/* AC3750 8004C5B0 C42AA04C */ lwc1 $f10, %lo(D_8013A04C)($at)
/* AC3754 8004C5B4 C7A400E4 */ lwc1 $f4, 0xe4($sp)
/* AC3758 8004C5B8 C60E00FC */ lwc1 $f14, 0xfc($s0)
/* AC375C 8004C5BC 460A4182 */ mul.s $f6, $f8, $f10
/* AC3760 8004C5C0 8E0600D4 */ lw $a2, 0xd4($s0)
/* AC3764 8004C5C4 3C073F80 */ lui $a3, 0x3f80
/* AC3768 8004C5C8 46043282 */ mul.s $f10, $f6, $f4
/* AC376C 8004C5CC 460A4181 */ sub.s $f6, $f8, $f10
/* AC3770 8004C5D0 46061302 */ mul.s $f12, $f2, $f6
/* AC3774 8004C5D4 0C010E27 */ jal func_8004389C
/* AC3778 8004C5D8 00000000 */ nop
/* AC377C 8004C5DC E60000FC */ swc1 $f0, 0xfc($s0)
.L8004C5E0:
/* AC3780 8004C5E0 8FBF002C */ lw $ra, 0x2c($sp)
/* AC3784 8004C5E4 8FB00024 */ lw $s0, 0x24($sp)
/* AC3788 8004C5E8 8FB10028 */ lw $s1, 0x28($sp)
/* AC378C 8004C5EC 03E00008 */ jr $ra
/* AC3790 8004C5F0 27BD0140 */ addiu $sp, $sp, 0x140