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

839 lines
40 KiB
ArmAsm

.late_rodata
glabel D_80139E8C
.float 0.01
glabel D_80139E90
.float 182.041672 # 32768 / PI
.float 0.01
.float 0.01
glabel D_80139E9C
.float 0.001
glabel D_80139EA0
.float 0.01
glabel D_80139EA4
.float 0.3333329856395721435546875
glabel D_80139EA8
.float 0.01
glabel D_80139EAC
.float 0.01
glabel D_80139EB0
.float 0.01
glabel D_80139EB4
.float 0.05
glabel D_80139EB8
.float 0.99
glabel D_80139EBC
.float 10000.0
glabel D_80139EC0
.float 0.80
.text
glabel Camera_Normal1
/* ABE540 800473A0 27BDFF50 */ addiu $sp, $sp, -0xb0
/* ABE544 800473A4 AFB0001C */ sw $s0, 0x1c($sp)
/* ABE548 800473A8 00808025 */ move $s0, $a0
/* ABE54C 800473AC AFBF0024 */ sw $ra, 0x24($sp)
/* ABE550 800473B0 AFB10020 */ sw $s1, 0x20($sp)
/* ABE554 800473B4 0C00B721 */ jal Player_GetCameraYOffset
/* ABE558 800473B8 8C840090 */ lw $a0, 0x90($a0)
/* ABE55C 800473BC 8602015E */ lh $v0, 0x15e($s0)
/* ABE560 800473C0 2401000A */ li $at, 10
/* ABE564 800473C4 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016
/* ABE568 800473C8 10400009 */ beqz $v0, .L800473F0
/* ABE56C 800473CC 00000000 */ nop
/* ABE570 800473D0 10410007 */ beq $v0, $at, .L800473F0
/* ABE574 800473D4 24010014 */ li $at, 20
/* ABE578 800473D8 10410005 */ beq $v0, $at, .L800473F0
/* ABE57C 800473DC 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016
/* ABE580 800473E0 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
/* ABE584 800473E4 85C30314 */ lh $v1, 0x314($t6)
/* ABE588 800473E8 1060005B */ beqz $v1, .L80047558
/* ABE58C 800473EC 00000000 */ nop
.L800473F0:
/* ABE590 800473F0 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3)
/* ABE594 800473F4 3C018014 */ lui $at, %hi(D_80139E8C)
/* ABE598 800473F8 C4309E8C */ lwc1 $f16, %lo(D_80139E8C)($at)
/* ABE59C 800473FC 856C01F0 */ lh $t4, 0x1f0($t3)
/* ABE5A0 80047400 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABE5A4 80047404 44814000 */ mtc1 $at, $f8
/* ABE5A8 80047408 448C2000 */ mtc1 $t4, $f4
/* ABE5AC 8004740C 3C014288 */ li $at, 0x42880000 # 0.000000
/* ABE5B0 80047410 860F0142 */ lh $t7, 0x142($s0)
/* ABE5B4 80047414 468021A0 */ cvt.s.w $f6, $f4
/* ABE5B8 80047418 44812000 */ mtc1 $at, $f4
/* ABE5BC 8004741C 3C198012 */ lui $t9, %hi(sCameraSettings+4)
/* ABE5C0 80047420 000FC0C0 */ sll $t8, $t7, 3
/* ABE5C4 80047424 86080144 */ lh $t0, 0x144($s0)
/* ABE5C8 80047428 0338C821 */ addu $t9, $t9, $t8
/* ABE5CC 8004742C 46103302 */ mul.s $f12, $f6, $f16
/* ABE5D0 80047430 46002183 */ div.s $f6, $f4, $f0
/* ABE5D4 80047434 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9)
/* ABE5D8 80047438 000848C0 */ sll $t1, $t0, 3
/* ABE5DC 8004743C 3C018014 */ lui $at, %hi(D_80139E90)
/* ABE5E0 80047440 03295021 */ addu $t2, $t9, $t1
/* ABE5E4 80047444 8D420004 */ lw $v0, 4($t2)
/* ABE5E8 80047448 460C4280 */ add.s $f10, $f8, $f12
/* ABE5EC 8004744C 844D0000 */ lh $t5, ($v0)
/* ABE5F0 80047450 24420024 */ addiu $v0, $v0, 0x24
/* ABE5F4 80047454 46066202 */ mul.s $f8, $f12, $f6
/* ABE5F8 80047458 448D3000 */ mtc1 $t5, $f6
/* ABE5FC 8004745C 46100102 */ mul.s $f4, $f0, $f16
/* ABE600 80047460 46085381 */ sub.s $f14, $f10, $f8
/* ABE604 80047464 468032A0 */ cvt.s.w $f10, $f6
/* ABE608 80047468 460E2082 */ mul.s $f2, $f4, $f14
/* ABE60C 8004746C 00000000 */ nop
/* ABE610 80047470 46025202 */ mul.s $f8, $f10, $f2
/* ABE614 80047474 E6080000 */ swc1 $f8, ($s0)
/* ABE618 80047478 844EFFE0 */ lh $t6, -0x20($v0)
/* ABE61C 8004747C 448E2000 */ mtc1 $t6, $f4
/* ABE620 80047480 00000000 */ nop
/* ABE624 80047484 468021A0 */ cvt.s.w $f6, $f4
/* ABE628 80047488 46023282 */ mul.s $f10, $f6, $f2
/* ABE62C 8004748C E60A0004 */ swc1 $f10, 4($s0)
/* ABE630 80047490 844FFFE4 */ lh $t7, -0x1c($v0)
/* ABE634 80047494 448F4000 */ mtc1 $t7, $f8
/* ABE638 80047498 3C0F8016 */ lui $t7, %hi(gGameInfo)
/* ABE63C 8004749C 46804120 */ cvt.s.w $f4, $f8
/* ABE640 800474A0 46022182 */ mul.s $f6, $f4, $f2
/* ABE644 800474A4 E6060008 */ swc1 $f6, 8($s0)
/* ABE648 800474A8 8458FFE8 */ lh $t8, -0x18($v0)
/* ABE64C 800474AC C4249E90 */ lwc1 $f4, %lo(D_80139E90)($at)
/* ABE650 800474B0 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* ABE654 800474B4 44985000 */ mtc1 $t8, $f10
/* ABE658 800474B8 00000000 */ nop
/* ABE65C 800474BC 46805220 */ cvt.s.w $f8, $f10
/* ABE660 800474C0 44815000 */ mtc1 $at, $f10
/* ABE664 800474C4 46044182 */ mul.s $f6, $f8, $f4
/* ABE668 800474C8 460A3200 */ add.s $f8, $f6, $f10
/* ABE66C 800474CC 4600410D */ trunc.w.s $f4, $f8
/* ABE670 800474D0 44192000 */ mfc1 $t9, $f4
/* ABE674 800474D4 00000000 */ nop
/* ABE678 800474D8 A6190020 */ sh $t9, 0x20($s0)
/* ABE67C 800474DC 8449FFEC */ lh $t1, -0x14($v0)
/* ABE680 800474E0 44893000 */ mtc1 $t1, $f6
/* ABE684 800474E4 00000000 */ nop
/* ABE688 800474E8 468032A0 */ cvt.s.w $f10, $f6
/* ABE68C 800474EC E60A000C */ swc1 $f10, 0xc($s0)
/* ABE690 800474F0 844AFFF0 */ lh $t2, -0x10($v0)
/* ABE694 800474F4 448A4000 */ mtc1 $t2, $f8
/* ABE698 800474F8 00000000 */ nop
/* ABE69C 800474FC 46804120 */ cvt.s.w $f4, $f8
/* ABE6A0 80047500 E6040010 */ swc1 $f4, 0x10($s0)
/* ABE6A4 80047504 844BFFF4 */ lh $t3, -0xc($v0)
/* ABE6A8 80047508 448B3000 */ mtc1 $t3, $f6
/* ABE6AC 8004750C 00000000 */ nop
/* ABE6B0 80047510 468032A0 */ cvt.s.w $f10, $f6
/* ABE6B4 80047514 46105202 */ mul.s $f8, $f10, $f16
/* ABE6B8 80047518 E6080014 */ swc1 $f8, 0x14($s0)
/* ABE6BC 8004751C 844CFFF8 */ lh $t4, -8($v0)
/* ABE6C0 80047520 448C2000 */ mtc1 $t4, $f4
/* ABE6C4 80047524 00000000 */ nop
/* ABE6C8 80047528 468021A0 */ cvt.s.w $f6, $f4
/* ABE6CC 8004752C E6060018 */ swc1 $f6, 0x18($s0)
/* ABE6D0 80047530 844DFFFC */ lh $t5, -4($v0)
/* ABE6D4 80047534 448D5000 */ mtc1 $t5, $f10
/* ABE6D8 80047538 00000000 */ nop
/* ABE6DC 8004753C 46805220 */ cvt.s.w $f8, $f10
/* ABE6E0 80047540 46104102 */ mul.s $f4, $f8, $f16
/* ABE6E4 80047544 E604001C */ swc1 $f4, 0x1c($s0)
/* ABE6E8 80047548 844E0000 */ lh $t6, ($v0)
/* ABE6EC 8004754C A60E0022 */ sh $t6, 0x22($s0)
/* ABE6F0 80047550 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7)
/* ABE6F4 80047554 85E30314 */ lh $v1, 0x314($t7)
.L80047558:
/* ABE6F8 80047558 50600004 */ beql $v1, $zero, .L8004756C
/* ABE6FC 8004755C 86180022 */ lh $t8, 0x22($s0)
/* ABE700 80047560 0C011495 */ jal Camera_CopyPREGToModeValues
/* ABE704 80047564 02002025 */ move $a0, $s0
/* ABE708 80047568 86180022 */ lh $t8, 0x22($s0)
.L8004756C:
/* ABE70C 8004756C 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012
/* ABE710 80047570 26050050 */ addiu $a1, $s0, 0x50
/* ABE714 80047574 2606005C */ addiu $a2, $s0, 0x5c
/* ABE718 80047578 AFA60040 */ sw $a2, 0x40($sp)
/* ABE71C 8004757C AFA5003C */ sw $a1, 0x3c($sp)
/* ABE720 80047580 27A40074 */ addiu $a0, $sp, 0x74
/* ABE724 80047584 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* ABE728 80047588 AC38D3A0 */ sw $t8, %lo(D_8011D3A0)($at)
/* ABE72C 8004758C 26060074 */ addiu $a2, $s0, 0x74
/* ABE730 80047590 AFA60038 */ sw $a2, 0x38($sp)
/* ABE734 80047594 27A4006C */ addiu $a0, $sp, 0x6c
/* ABE738 80047598 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* ABE73C 8004759C 8FA5003C */ lw $a1, 0x3c($sp)
/* ABE740 800475A0 8603015E */ lh $v1, 0x15e($s0)
/* ABE744 800475A4 2401000A */ li $at, 10
/* ABE748 800475A8 26110024 */ addiu $s1, $s0, 0x24
/* ABE74C 800475AC 10600017 */ beqz $v1, .L8004760C
/* ABE750 800475B0 240B000A */ li $t3, 10
/* ABE754 800475B4 10610015 */ beq $v1, $at, .L8004760C
/* ABE758 800475B8 24010014 */ li $at, 20
/* ABE75C 800475BC 10610006 */ beq $v1, $at, .L800475D8
/* ABE760 800475C0 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016
/* ABE764 800475C4 24010019 */ li $at, 25
/* ABE768 800475C8 50610011 */ beql $v1, $at, .L80047610
/* ABE76C 800475CC A6200018 */ sh $zero, 0x18($s1)
/* ABE770 800475D0 10000026 */ b .L8004766C
/* ABE774 800475D4 26110024 */ addiu $s1, $s0, 0x24
.L800475D8:
/* ABE778 800475D8 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0)
/* ABE77C 800475DC 3C098016 */ lui $t1, %hi(gGameInfo) # $t1, 0x8016
/* ABE780 800475E0 851901CA */ lh $t9, 0x1ca($t0)
/* ABE784 800475E4 44993000 */ mtc1 $t9, $f6
/* ABE788 800475E8 00000000 */ nop
/* ABE78C 800475EC 468032A0 */ cvt.s.w $f10, $f6
/* ABE790 800475F0 E60A00C8 */ swc1 $f10, 0xc8($s0)
/* ABE794 800475F4 8D29FA90 */ lw $t1, %lo(gGameInfo)($t1)
/* ABE798 800475F8 852A01CA */ lh $t2, 0x1ca($t1)
/* ABE79C 800475FC 448A4000 */ mtc1 $t2, $f8
/* ABE7A0 80047600 00000000 */ nop
/* ABE7A4 80047604 46804120 */ cvt.s.w $f4, $f8
/* ABE7A8 80047608 E60400C4 */ swc1 $f4, 0xc4($s0)
.L8004760C:
/* ABE7AC 8004760C A6200018 */ sh $zero, 0x18($s1)
.L80047610:
/* ABE7B0 80047610 86230018 */ lh $v1, 0x18($s1)
/* ABE7B4 80047614 AE20000C */ sw $zero, 0xc($s1)
/* ABE7B8 80047618 A6200024 */ sh $zero, 0x24($s1)
/* ABE7BC 8004761C A62B0028 */ sh $t3, 0x28($s1)
/* ABE7C0 80047620 A6230014 */ sh $v1, 0x14($s1)
/* ABE7C4 80047624 A6230016 */ sh $v1, 0x16($s1)
/* ABE7C8 80047628 C606000C */ lwc1 $f6, 0xc($s0)
/* ABE7CC 8004762C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016
/* ABE7D0 80047630 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012
/* ABE7D4 80047634 E6260010 */ swc1 $f6, 0x10($s1)
/* ABE7D8 80047638 C60A0098 */ lwc1 $f10, 0x98($s0)
/* ABE7DC 8004763C E62A001C */ swc1 $f10, 0x1c($s1)
/* ABE7E0 80047640 C60800D8 */ lwc1 $f8, 0xd8($s0)
/* ABE7E4 80047644 A620001A */ sh $zero, 0x1a($s1)
/* ABE7E8 80047648 E6280020 */ swc1 $f8, 0x20($s1)
/* ABE7EC 8004764C 87AC007A */ lh $t4, 0x7a($sp)
/* ABE7F0 80047650 A62C0026 */ sh $t4, 0x26($s1)
/* ABE7F4 80047654 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* ABE7F8 80047658 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at)
/* ABE7FC 8004765C 844E01F8 */ lh $t6, 0x1f8($v0)
/* ABE800 80047660 844D01FA */ lh $t5, 0x1fa($v0)
/* ABE804 80047664 01AE7821 */ addu $t7, $t5, $t6
/* ABE808 80047668 A62F002A */ sh $t7, 0x2a($s1)
.L8004766C:
/* ABE80C 8004766C 24030001 */ li $v1, 1
/* ABE810 80047670 A603015E */ sh $v1, 0x15e($s0)
/* ABE814 80047674 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012
/* ABE818 80047678 AC23D3E8 */ sw $v1, %lo(D_8011D3E8)($at)
/* ABE81C 8004767C 86220028 */ lh $v0, 0x28($s1)
/* ABE820 80047680 3C018014 */ lui $at, %hi(D_80139E9C)
/* ABE824 80047684 10400002 */ beqz $v0, .L80047690
/* ABE828 80047688 2458FFFF */ addiu $t8, $v0, -1
/* ABE82C 8004768C A6380028 */ sh $t8, 0x28($s1)
.L80047690:
/* ABE830 80047690 C4249E9C */ lwc1 $f4, %lo(D_80139E9C)($at)
/* ABE834 80047694 C60600D8 */ lwc1 $f6, 0xd8($s0)
/* ABE838 80047698 4606203C */ c.lt.s $f4, $f6
/* ABE83C 8004769C 00000000 */ nop
/* ABE840 800476A0 4502000A */ bc1fl .L800476CC
/* ABE844 800476A4 8622002A */ lh $v0, 0x2a($s1)
/* ABE848 800476A8 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
/* ABE84C 800476AC 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570
/* ABE850 800476B0 8C620000 */ lw $v0, ($v1)
/* ABE854 800476B4 844801FA */ lh $t0, 0x1fa($v0)
/* ABE858 800476B8 845901F8 */ lh $t9, 0x1f8($v0)
/* ABE85C 800476BC 01194821 */ addu $t1, $t0, $t9
/* ABE860 800476C0 10000020 */ b .L80047744
/* ABE864 800476C4 A629002A */ sh $t1, 0x2a($s1)
/* ABE868 800476C8 8622002A */ lh $v0, 0x2a($s1)
.L800476CC:
/* ABE86C 800476CC 1840001D */ blez $v0, .L80047744
/* ABE870 800476D0 3C0A8016 */ lui $t2, %hi(gGameInfo) # $t2, 0x8016
/* ABE874 800476D4 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2)
/* ABE878 800476D8 854B01F8 */ lh $t3, 0x1f8($t2)
/* ABE87C 800476DC 0162082A */ slt $at, $t3, $v0
/* ABE880 800476E0 50200017 */ beql $at, $zero, .L80047740
/* ABE884 800476E4 244CFFFF */ addiu $t4, $v0, -1
/* ABE888 800476E8 860C00A2 */ lh $t4, 0xa2($s0)
/* ABE88C 800476EC 87B8007A */ lh $t8, 0x7a($sp)
/* ABE890 800476F0 258D8001 */ addiu $t5, $t4, -0x7fff
/* ABE894 800476F4 000D7400 */ sll $t6, $t5, 0x10
/* ABE898 800476F8 000E7C03 */ sra $t7, $t6, 0x10
/* ABE89C 800476FC 01F84023 */ subu $t0, $t7, $t8
/* ABE8A0 80047700 0008CC00 */ sll $t9, $t0, 0x10
/* ABE8A4 80047704 00194C03 */ sra $t1, $t9, 0x10
/* ABE8A8 80047708 0122001A */ div $zero, $t1, $v0
/* ABE8AC 8004770C 00005012 */ mflo $t2
/* ABE8B0 80047710 030A5821 */ addu $t3, $t8, $t2
/* ABE8B4 80047714 A62B0026 */ sh $t3, 0x26($s1)
/* ABE8B8 80047718 14400002 */ bnez $v0, .L80047724
/* ABE8BC 8004771C 00000000 */ nop
/* ABE8C0 80047720 0007000D */ break 7
.L80047724:
/* ABE8C4 80047724 2401FFFF */ li $at, -1
/* ABE8C8 80047728 14410004 */ bne $v0, $at, .L8004773C
/* ABE8CC 8004772C 3C018000 */ lui $at, 0x8000
/* ABE8D0 80047730 15210002 */ bne $t1, $at, .L8004773C
/* ABE8D4 80047734 00000000 */ nop
/* ABE8D8 80047738 0006000D */ break 6
.L8004773C:
/* ABE8DC 8004773C 244CFFFF */ addiu $t4, $v0, -1
.L80047740:
/* ABE8E0 80047740 A62C002A */ sh $t4, 0x2a($s1)
.L80047744:
/* ABE8E4 80047744 3C038016 */ lui $v1, %hi(gGameInfo) # $v1, 0x8016
/* ABE8E8 80047748 2463FA90 */ addiu $v1, %lo(gGameInfo) # addiu $v1, $v1, -0x570
/* ABE8EC 8004774C 8C620000 */ lw $v0, ($v1)
/* ABE8F0 80047750 3C018014 */ lui $at, %hi(D_80139EA0)
/* ABE8F4 80047754 C4329EA0 */ lwc1 $f18, %lo(D_80139EA0)($at)
/* ABE8F8 80047758 844D01C6 */ lh $t5, 0x1c6($v0)
/* ABE8FC 8004775C 844E01C8 */ lh $t6, 0x1c8($v0)
/* ABE900 80047760 C60000E0 */ lwc1 $f0, 0xe0($s0)
/* ABE904 80047764 448D5000 */ mtc1 $t5, $f10
/* ABE908 80047768 448E2000 */ mtc1 $t6, $f4
/* ABE90C 8004776C 46805220 */ cvt.s.w $f8, $f10
/* ABE910 80047770 468021A0 */ cvt.s.w $f6, $f4
/* ABE914 80047774 46124082 */ mul.s $f2, $f8, $f18
/* ABE918 80047778 00000000 */ nop
/* ABE91C 8004777C 46001402 */ mul.s $f16, $f2, $f0
/* ABE920 80047780 00000000 */ nop
/* ABE924 80047784 46123282 */ mul.s $f10, $f6, $f18
/* ABE928 80047788 00000000 */ nop
/* ABE92C 8004778C 46005202 */ mul.s $f8, $f10, $f0
/* ABE930 80047790 E7A8009C */ swc1 $f8, 0x9c($sp)
/* ABE934 80047794 862F0018 */ lh $t7, 0x18($s1)
/* ABE938 80047798 11E00003 */ beqz $t7, .L800477A8
/* ABE93C 8004779C 00000000 */ nop
/* ABE940 800477A0 10000002 */ b .L800477AC
/* ABE944 800477A4 E7A20098 */ swc1 $f2, 0x98($sp)
.L800477A8:
/* ABE948 800477A8 E7B00098 */ swc1 $f16, 0x98($sp)
.L800477AC:
/* ABE94C 800477AC C60000D8 */ lwc1 $f0, 0xd8($s0)
/* ABE950 800477B0 C6240020 */ lwc1 $f4, 0x20($s1)
/* ABE954 800477B4 3C018014 */ lui $at, %hi(D_80139EA4)
/* ABE958 800477B8 C42A9EA4 */ lwc1 $f10, %lo(D_80139EA4)($at)
/* ABE95C 800477BC 46040181 */ sub.s $f6, $f0, $f4
/* ABE960 800477C0 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABE964 800477C4 44814000 */ mtc1 $at, $f8
/* ABE968 800477C8 460A3082 */ mul.s $f2, $f6, $f10
/* ABE96C 800477CC 4602403C */ c.lt.s $f8, $f2
/* ABE970 800477D0 00000000 */ nop
/* ABE974 800477D4 45000003 */ bc1f .L800477E4
/* ABE978 800477D8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABE97C 800477DC 44811000 */ mtc1 $at, $f2
/* ABE980 800477E0 00000000 */ nop
.L800477E4:
/* ABE984 800477E4 3C01BF80 */ li $at, 0xBF800000 # 0.000000
/* ABE988 800477E8 44816000 */ mtc1 $at, $f12
/* ABE98C 800477EC 00000000 */ nop
/* ABE990 800477F0 4602603C */ c.lt.s $f12, $f2
/* ABE994 800477F4 00000000 */ nop
/* ABE998 800477F8 45020003 */ bc1fl .L80047808
/* ABE99C 800477FC 8622001A */ lh $v0, 0x1a($s1)
/* ABE9A0 80047800 46006086 */ mov.s $f2, $f12
/* ABE9A4 80047804 8622001A */ lh $v0, 0x1a($s1)
.L80047808:
/* ABE9A8 80047808 E6200020 */ swc1 $f0, 0x20($s1)
/* ABE9AC 8004780C 10400022 */ beqz $v0, .L80047898
/* ABE9B0 80047810 00024040 */ sll $t0, $v0, 1
/* ABE9B4 80047814 44883000 */ mtc1 $t0, $f6
/* ABE9B8 80047818 C6240010 */ lwc1 $f4, 0x10($s1)
/* ABE9BC 8004781C C60E00C8 */ lwc1 $f14, 0xc8($s0)
/* ABE9C0 80047820 468032A0 */ cvt.s.w $f10, $f6
/* ABE9C4 80047824 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* ABE9C8 80047828 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABE9CC 8004782C E7B000A0 */ swc1 $f16, 0xa0($sp)
/* ABE9D0 80047830 E7A20094 */ swc1 $f2, 0x94($sp)
/* ABE9D4 80047834 8FA60098 */ lw $a2, 0x98($sp)
/* ABE9D8 80047838 0C010E27 */ jal func_8004389C
/* ABE9DC 8004783C 460A2300 */ add.s $f12, $f4, $f10
/* ABE9E0 80047840 E60000C8 */ swc1 $f0, 0xc8($s0)
/* ABE9E4 80047844 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016
/* ABE9E8 80047848 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9)
/* ABE9EC 8004784C 8638001A */ lh $t8, 0x1a($s1)
/* ABE9F0 80047850 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000
/* ABE9F4 80047854 872901A2 */ lh $t1, 0x1a2($t9)
/* ABE9F8 80047858 00185040 */ sll $t2, $t8, 1
/* ABE9FC 8004785C 448A2000 */ mtc1 $t2, $f4
/* ABEA00 80047860 44894000 */ mtc1 $t1, $f8
/* ABEA04 80047864 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABEA08 80047868 468022A0 */ cvt.s.w $f10, $f4
/* ABEA0C 8004786C 8FA6009C */ lw $a2, 0x9c($sp)
/* ABEA10 80047870 C60E00C4 */ lwc1 $f14, 0xc4($s0)
/* ABEA14 80047874 468041A0 */ cvt.s.w $f6, $f8
/* ABEA18 80047878 0C010E27 */ jal func_8004389C
/* ABEA1C 8004787C 460A3300 */ add.s $f12, $f6, $f10
/* ABEA20 80047880 C7B000A0 */ lwc1 $f16, 0xa0($sp)
/* ABEA24 80047884 E60000C4 */ swc1 $f0, 0xc4($s0)
/* ABEA28 80047888 862B001A */ lh $t3, 0x1a($s1)
/* ABEA2C 8004788C 256CFFFF */ addiu $t4, $t3, -1
/* ABEA30 80047890 10000020 */ b .L80047914
/* ABEA34 80047894 A62C001A */ sh $t4, 0x1a($s1)
.L80047898:
/* ABEA38 80047898 8C6D0000 */ lw $t5, ($v1)
/* ABEA3C 8004789C C6200010 */ lwc1 $f0, 0x10($s1)
/* ABEA40 800478A0 C60E00C8 */ lwc1 $f14, 0xc8($s0)
/* ABEA44 800478A4 85AE01F6 */ lh $t6, 0x1f6($t5)
/* ABEA48 800478A8 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000
/* ABEA4C 800478AC 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABEA50 800478B0 448E4000 */ mtc1 $t6, $f8
/* ABEA54 800478B4 E7B000A0 */ swc1 $f16, 0xa0($sp)
/* ABEA58 800478B8 E7A20094 */ swc1 $f2, 0x94($sp)
/* ABEA5C 800478BC 46804120 */ cvt.s.w $f4, $f8
/* ABEA60 800478C0 8FA60098 */ lw $a2, 0x98($sp)
/* ABEA64 800478C4 46122182 */ mul.s $f6, $f4, $f18
/* ABEA68 800478C8 00000000 */ nop
/* ABEA6C 800478CC 46003282 */ mul.s $f10, $f6, $f0
/* ABEA70 800478D0 00000000 */ nop
/* ABEA74 800478D4 46025202 */ mul.s $f8, $f10, $f2
/* ABEA78 800478D8 0C010E27 */ jal func_8004389C
/* ABEA7C 800478DC 46080301 */ sub.s $f12, $f0, $f8
/* ABEA80 800478E0 E60000C8 */ swc1 $f0, 0xc8($s0)
/* ABEA84 800478E4 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016
/* ABEA88 800478E8 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7)
/* ABEA8C 800478EC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* ABEA90 800478F0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABEA94 800478F4 85E801A2 */ lh $t0, 0x1a2($t7)
/* ABEA98 800478F8 8FA6009C */ lw $a2, 0x9c($sp)
/* ABEA9C 800478FC C60E00C4 */ lwc1 $f14, 0xc4($s0)
/* ABEAA0 80047900 44882000 */ mtc1 $t0, $f4
/* ABEAA4 80047904 0C010E27 */ jal func_8004389C
/* ABEAA8 80047908 46802320 */ cvt.s.w $f12, $f4
/* ABEAAC 8004790C C7B000A0 */ lwc1 $f16, 0xa0($sp)
/* ABEAB0 80047910 E60000C4 */ swc1 $f0, 0xc4($s0)
.L80047914:
/* ABEAB4 80047914 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016
/* ABEAB8 80047918 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9)
/* ABEABC 8004791C C60E00C4 */ lwc1 $f14, 0xc4($s0)
/* ABEAC0 80047920 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* ABEAC4 80047924 872901A2 */ lh $t1, 0x1a2($t9)
/* ABEAC8 80047928 E7B000A0 */ swc1 $f16, 0xa0($sp)
/* ABEACC 8004792C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABEAD0 80047930 44893000 */ mtc1 $t1, $f6
/* ABEAD4 80047934 8FA6009C */ lw $a2, 0x9c($sp)
/* ABEAD8 80047938 0C010E27 */ jal func_8004389C
/* ABEADC 8004793C 46803320 */ cvt.s.w $f12, $f6
/* ABEAE0 80047940 C7B000A0 */ lwc1 $f16, 0xa0($sp)
/* ABEAE4 80047944 E60000C4 */ swc1 $f0, 0xc4($s0)
/* ABEAE8 80047948 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016
/* ABEAEC 8004794C 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8)
/* ABEAF0 80047950 3C018014 */ lui $at, %hi(D_80139EA8)
/* ABEAF4 80047954 C4249EA8 */ lwc1 $f4, %lo(D_80139EA8)($at)
/* ABEAF8 80047958 870A0198 */ lh $t2, 0x198($t8)
/* ABEAFC 8004795C 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000
/* ABEB00 80047960 44068000 */ mfc1 $a2, $f16
/* ABEB04 80047964 448A5000 */ mtc1 $t2, $f10
/* ABEB08 80047968 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABEB0C 8004796C C60E00CC */ lwc1 $f14, 0xcc($s0)
/* ABEB10 80047970 46805220 */ cvt.s.w $f8, $f10
/* ABEB14 80047974 46044302 */ mul.s $f12, $f8, $f4
/* ABEB18 80047978 0C010E27 */ jal func_8004389C
/* ABEB1C 8004797C 00000000 */ nop
/* ABEB20 80047980 E60000CC */ swc1 $f0, 0xcc($s0)
/* ABEB24 80047984 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016
/* ABEB28 80047988 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3)
/* ABEB2C 8004798C 3C018014 */ lui $at, %hi(D_80139EAC)
/* ABEB30 80047990 C4289EAC */ lwc1 $f8, %lo(D_80139EAC)($at)
/* ABEB34 80047994 856C019A */ lh $t4, 0x19a($t3)
/* ABEB38 80047998 3C073DCC */ li $a3, 0x3DCC0000 # 0.000000
/* ABEB3C 8004799C 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABEB40 800479A0 448C3000 */ mtc1 $t4, $f6
/* ABEB44 800479A4 8FA6009C */ lw $a2, 0x9c($sp)
/* ABEB48 800479A8 C60E00D0 */ lwc1 $f14, 0xd0($s0)
/* ABEB4C 800479AC 468032A0 */ cvt.s.w $f10, $f6
/* ABEB50 800479B0 46085302 */ mul.s $f12, $f10, $f8
/* ABEB54 800479B4 0C010E27 */ jal func_8004389C
/* ABEB58 800479B8 00000000 */ nop
/* ABEB5C 800479BC E60000D0 */ swc1 $f0, 0xd0($s0)
/* ABEB60 800479C0 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016
/* ABEB64 800479C4 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5)
/* ABEB68 800479C8 3C018014 */ lui $at, %hi(D_80139EB0)
/* ABEB6C 800479CC C42A9EB0 */ lwc1 $f10, %lo(D_80139EB0)($at)
/* ABEB70 800479D0 85AE019C */ lh $t6, 0x19c($t5)
/* ABEB74 800479D4 3C018014 */ lui $at, %hi(D_80139EB4)
/* ABEB78 800479D8 C60800E0 */ lwc1 $f8, 0xe0($s0)
/* ABEB7C 800479DC 448E2000 */ mtc1 $t6, $f4
/* ABEB80 800479E0 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* ABEB84 800479E4 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ABEB88 800479E8 468021A0 */ cvt.s.w $f6, $f4
/* ABEB8C 800479EC C4249EB4 */ lwc1 $f4, %lo(D_80139EB4)($at)
/* ABEB90 800479F0 46000386 */ mov.s $f14, $f0
/* ABEB94 800479F4 460A3302 */ mul.s $f12, $f6, $f10
/* ABEB98 800479F8 00000000 */ nop
/* ABEB9C 800479FC 46044182 */ mul.s $f6, $f8, $f4
/* ABEBA0 80047A00 44063000 */ mfc1 $a2, $f6
/* ABEBA4 80047A04 0C010E27 */ jal func_8004389C
/* ABEBA8 80047A08 00000000 */ nop
/* ABEBAC 80047A0C 860F0022 */ lh $t7, 0x22($s0)
/* ABEBB0 80047A10 E60000D4 */ swc1 $f0, 0xd4($s0)
/* ABEBB4 80047A14 31E80001 */ andi $t0, $t7, 1
/* ABEBB8 80047A18 5100001E */ beql $t0, $zero, .L80047A94
/* ABEBBC 80047A1C A6200024 */ sh $zero, 0x24($s1)
/* ABEBC0 80047A20 87A5007A */ lh $a1, 0x7a($sp)
/* ABEBC4 80047A24 02002025 */ move $a0, $s0
/* ABEBC8 80047A28 00003025 */ move $a2, $zero
/* ABEBCC 80047A2C 24A58001 */ addiu $a1, $a1, -0x7fff
/* ABEBD0 80047A30 00052C00 */ sll $a1, $a1, 0x10
/* ABEBD4 80047A34 0C0112B7 */ jal func_80044ADC
/* ABEBD8 80047A38 00052C03 */ sra $a1, $a1, 0x10
/* ABEBDC 80047A3C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABEBE0 80047A40 44816000 */ mtc1 $at, $f12
/* ABEBE4 80047A44 C60A0010 */ lwc1 $f10, 0x10($s0)
/* ABEBE8 80047A48 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* ABEBEC 80047A4C 44812000 */ mtc1 $at, $f4
/* ABEBF0 80047A50 460A6203 */ div.s $f8, $f12, $f10
/* ABEBF4 80047A54 C60600E0 */ lwc1 $f6, 0xe0($s0)
/* ABEBF8 80047A58 00022400 */ sll $a0, $v0, 0x10
/* ABEBFC 80047A5C 00042403 */ sra $a0, $a0, 0x10
/* ABEC00 80047A60 46066281 */ sub.s $f10, $f12, $f6
/* ABEC04 80047A64 86250024 */ lh $a1, 0x24($s1)
/* ABEC08 80047A68 2407000F */ li $a3, 15
/* ABEC0C 80047A6C 46044002 */ mul.s $f0, $f8, $f4
/* ABEC10 80047A70 00000000 */ nop
/* ABEC14 80047A74 460A0082 */ mul.s $f2, $f0, $f10
/* ABEC18 80047A78 46020200 */ add.s $f8, $f0, $f2
/* ABEC1C 80047A7C 44064000 */ mfc1 $a2, $f8
/* ABEC20 80047A80 0C010E47 */ jal func_8004391C
/* ABEC24 80047A84 00000000 */ nop
/* ABEC28 80047A88 10000009 */ b .L80047AB0
/* ABEC2C 80047A8C A6220024 */ sh $v0, 0x24($s1)
/* ABEC30 80047A90 A6200024 */ sh $zero, 0x24($s1)
.L80047A94:
/* ABEC34 80047A94 C6040104 */ lwc1 $f4, 0x104($s0)
/* ABEC38 80047A98 C6000098 */ lwc1 $f0, 0x98($s0)
/* ABEC3C 80047A9C 46040032 */ c.eq.s $f0, $f4
/* ABEC40 80047AA0 00000000 */ nop
/* ABEC44 80047AA4 45020003 */ bc1fl .L80047AB4
/* ABEC48 80047AA8 86390018 */ lh $t9, 0x18($s1)
/* ABEC4C 80047AAC E620001C */ swc1 $f0, 0x1c($s1)
.L80047AB0:
/* ABEC50 80047AB0 86390018 */ lh $t9, 0x18($s1)
.L80047AB4:
/* ABEC54 80047AB4 13200014 */ beqz $t9, .L80047B08
/* ABEC58 80047AB8 3C01C220 */ li $at, 0xC2200000 # 0.000000
/* ABEC5C 80047ABC 44813000 */ mtc1 $at, $f6
/* ABEC60 80047AC0 C60A0000 */ lwc1 $f10, ($s0)
/* ABEC64 80047AC4 460A303C */ c.lt.s $f6, $f10
/* ABEC68 80047AC8 00000000 */ nop
/* ABEC6C 80047ACC 4502000F */ bc1fl .L80047B0C
/* ABEC70 80047AD0 C6100000 */ lwc1 $f16, ($s0)
/* ABEC74 80047AD4 0C01DE1C */ jal Math_Sins
/* ABEC78 80047AD8 86240014 */ lh $a0, 0x14($s1)
/* ABEC7C 80047ADC 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABEC80 80047AE0 44812000 */ mtc1 $at, $f4
/* ABEC84 80047AE4 C6080000 */ lwc1 $f8, ($s0)
/* ABEC88 80047AE8 3C01C220 */ li $at, 0xC2200000 # 0.000000
/* ABEC8C 80047AEC 46002181 */ sub.s $f6, $f4, $f0
/* ABEC90 80047AF0 44812000 */ mtc1 $at, $f4
/* ABEC94 80047AF4 46064282 */ mul.s $f10, $f8, $f6
/* ABEC98 80047AF8 00000000 */ nop
/* ABEC9C 80047AFC 46002202 */ mul.s $f8, $f4, $f0
/* ABECA0 80047B00 10000002 */ b .L80047B0C
/* ABECA4 80047B04 460A4400 */ add.s $f16, $f8, $f10
.L80047B08:
/* ABECA8 80047B08 C6100000 */ lwc1 $f16, ($s0)
.L80047B0C:
/* ABECAC 80047B0C 86020022 */ lh $v0, 0x22($s0)
/* ABECB0 80047B10 30490080 */ andi $t1, $v0, 0x80
/* ABECB4 80047B14 5120000B */ beql $t1, $zero, .L80047B44
/* ABECB8 80047B18 304A0020 */ andi $t2, $v0, 0x20
/* ABECBC 80047B1C 44068000 */ mfc1 $a2, $f16
/* ABECC0 80047B20 30580001 */ andi $t8, $v0, 1
/* ABECC4 80047B24 AFB80010 */ sw $t8, 0x10($sp)
/* ABECC8 80047B28 02002025 */ move $a0, $s0
/* ABECCC 80047B2C 27A5006C */ addiu $a1, $sp, 0x6c
/* ABECD0 80047B30 0C011635 */ jal func_800458D4
/* ABECD4 80047B34 2627001C */ addiu $a3, $s1, 0x1c
/* ABECD8 80047B38 10000012 */ b .L80047B84
/* ABECDC 80047B3C 27A4007C */ addiu $a0, $sp, 0x7c
/* ABECE0 80047B40 304A0020 */ andi $t2, $v0, 0x20
.L80047B44:
/* ABECE4 80047B44 11400008 */ beqz $t2, .L80047B68
/* ABECE8 80047B48 02002025 */ move $a0, $s0
/* ABECEC 80047B4C 44068000 */ mfc1 $a2, $f16
/* ABECF0 80047B50 02002025 */ move $a0, $s0
/* ABECF4 80047B54 27A5006C */ addiu $a1, $sp, 0x6c
/* ABECF8 80047B58 0C0116C2 */ jal func_80045B08
/* ABECFC 80047B5C 86270024 */ lh $a3, 0x24($s1)
/* ABED00 80047B60 10000008 */ b .L80047B84
/* ABED04 80047B64 27A4007C */ addiu $a0, $sp, 0x7c
.L80047B68:
/* ABED08 80047B68 30470001 */ andi $a3, $v0, 1
/* ABED0C 80047B6C 00073C00 */ sll $a3, $a3, 0x10
/* ABED10 80047B70 44068000 */ mfc1 $a2, $f16
/* ABED14 80047B74 00073C03 */ sra $a3, $a3, 0x10
/* ABED18 80047B78 0C0115EA */ jal func_800457A8
/* ABED1C 80047B7C 27A5006C */ addiu $a1, $sp, 0x6c
/* ABED20 80047B80 27A4007C */ addiu $a0, $sp, 0x7c
.L80047B84:
/* ABED24 80047B84 8FA5003C */ lw $a1, 0x3c($sp)
/* ABED28 80047B88 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* ABED2C 80047B8C 8FA60038 */ lw $a2, 0x38($sp)
/* ABED30 80047B90 862B0028 */ lh $t3, 0x28($s1)
/* ABED34 80047B94 8E060004 */ lw $a2, 4($s0)
/* ABED38 80047B98 8E070008 */ lw $a3, 8($s0)
/* ABED3C 80047B9C 02002025 */ move $a0, $s0
/* ABED40 80047BA0 8FA5007C */ lw $a1, 0x7c($sp)
/* ABED44 80047BA4 0C011A70 */ jal func_800469C0
/* ABED48 80047BA8 AFAB0010 */ sw $t3, 0x10($sp)
/* ABED4C 80047BAC E7A0007C */ swc1 $f0, 0x7c($sp)
/* ABED50 80047BB0 E60000DC */ swc1 $f0, 0xdc($s0)
/* ABED54 80047BB4 862C002A */ lh $t4, 0x2a($s1)
/* ABED58 80047BB8 5D800011 */ bgtzl $t4, .L80047C00
/* ABED5C 80047BBC 862E0018 */ lh $t6, 0x18($s1)
/* ABED60 80047BC0 87AD0070 */ lh $t5, 0x70($sp)
/* ABED64 80047BC4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABED68 80047BC8 44813000 */ mtc1 $at, $f6
/* ABED6C 80047BCC A7AD0080 */ sh $t5, 0x80($sp)
/* ABED70 80047BD0 C60400C8 */ lwc1 $f4, 0xc8($s0)
/* ABED74 80047BD4 86240026 */ lh $a0, 0x26($s1)
/* ABED78 80047BD8 87A50072 */ lh $a1, 0x72($sp)
/* ABED7C 80047BDC 46043203 */ div.s $f8, $f6, $f4
/* ABED80 80047BE0 2407000A */ li $a3, 10
/* ABED84 80047BE4 44064000 */ mfc1 $a2, $f8
/* ABED88 80047BE8 0C010E47 */ jal func_8004391C
/* ABED8C 80047BEC 00000000 */ nop
/* ABED90 80047BF0 A7A20082 */ sh $v0, 0x82($sp)
/* ABED94 80047BF4 1000002A */ b .L80047CA0
/* ABED98 80047BF8 87A30080 */ lh $v1, 0x80($sp)
/* ABED9C 80047BFC 862E0018 */ lh $t6, 0x18($s1)
.L80047C00:
/* ABEDA0 80047C00 02002025 */ move $a0, $s0
/* ABEDA4 80047C04 87A50072 */ lh $a1, 0x72($sp)
/* ABEDA8 80047C08 11C00019 */ beqz $t6, .L80047C70
/* ABEDAC 80047C0C C7A40094 */ lwc1 $f4, 0x94($sp)
/* ABEDB0 80047C10 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABEDB4 80047C14 44815000 */ mtc1 $at, $f10
/* ABEDB8 80047C18 C60600C8 */ lwc1 $f6, 0xc8($s0)
/* ABEDBC 80047C1C 86240016 */ lh $a0, 0x16($s1)
/* ABEDC0 80047C20 87A50072 */ lh $a1, 0x72($sp)
/* ABEDC4 80047C24 46065103 */ div.s $f4, $f10, $f6
/* ABEDC8 80047C28 2407000A */ li $a3, 10
/* ABEDCC 80047C2C 44062000 */ mfc1 $a2, $f4
/* ABEDD0 80047C30 0C010E47 */ jal func_8004391C
/* ABEDD4 80047C34 00000000 */ nop
/* ABEDD8 80047C38 A7A20082 */ sh $v0, 0x82($sp)
/* ABEDDC 80047C3C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABEDE0 80047C40 44814000 */ mtc1 $at, $f8
/* ABEDE4 80047C44 C60A00C8 */ lwc1 $f10, 0xc8($s0)
/* ABEDE8 80047C48 86240014 */ lh $a0, 0x14($s1)
/* ABEDEC 80047C4C 87A50070 */ lh $a1, 0x70($sp)
/* ABEDF0 80047C50 460A4183 */ div.s $f6, $f8, $f10
/* ABEDF4 80047C54 2407000A */ li $a3, 10
/* ABEDF8 80047C58 44063000 */ mfc1 $a2, $f6
/* ABEDFC 80047C5C 0C010E47 */ jal func_8004391C
/* ABEE00 80047C60 00000000 */ nop
/* ABEE04 80047C64 00021C00 */ sll $v1, $v0, 0x10
/* ABEE08 80047C68 1000000D */ b .L80047CA0
/* ABEE0C 80047C6C 00031C03 */ sra $v1, $v1, 0x10
.L80047C70:
/* ABEE10 80047C70 860600A2 */ lh $a2, 0xa2($s0)
/* ABEE14 80047C74 8E070014 */ lw $a3, 0x14($s0)
/* ABEE18 80047C78 0C011B2D */ jal func_80046CB4
/* ABEE1C 80047C7C E7A40010 */ swc1 $f4, 0x10($sp)
/* ABEE20 80047C80 A7A20082 */ sh $v0, 0x82($sp)
/* ABEE24 80047C84 86270024 */ lh $a3, 0x24($s1)
/* ABEE28 80047C88 86060020 */ lh $a2, 0x20($s0)
/* ABEE2C 80047C8C 02002025 */ move $a0, $s0
/* ABEE30 80047C90 0C011AD1 */ jal func_80046B44
/* ABEE34 80047C94 87A50070 */ lh $a1, 0x70($sp)
/* ABEE38 80047C98 00021C00 */ sll $v1, $v0, 0x10
/* ABEE3C 80047C9C 00031C03 */ sra $v1, $v1, 0x10
.L80047CA0:
/* ABEE40 80047CA0 286138A5 */ slti $at, $v1, 0x38a5
/* ABEE44 80047CA4 14200002 */ bnez $at, .L80047CB0
/* ABEE48 80047CA8 27A6007C */ addiu $a2, $sp, 0x7c
/* ABEE4C 80047CAC 240338A4 */ li $v1, 14500
.L80047CB0:
/* ABEE50 80047CB0 2861C374 */ slti $at, $v1, -0x3c8c
/* ABEE54 80047CB4 10200003 */ beqz $at, .L80047CC4
/* ABEE58 80047CB8 A7A30080 */ sh $v1, 0x80($sp)
/* ABEE5C 80047CBC 2403C374 */ li $v1, -15500
/* ABEE60 80047CC0 A7A30080 */ sh $v1, 0x80($sp)
.L80047CC4:
/* ABEE64 80047CC4 8FA40038 */ lw $a0, 0x38($sp)
/* ABEE68 80047CC8 0C010F0A */ jal func_80043C28
/* ABEE6C 80047CCC 8FA5003C */ lw $a1, 0x3c($sp)
/* ABEE70 80047CD0 860F0140 */ lh $t7, 0x140($s0)
/* ABEE74 80047CD4 24010007 */ li $at, 7
/* ABEE78 80047CD8 55E10075 */ bnel $t7, $at, .L80047EB0
/* ABEE7C 80047CDC C608000C */ lwc1 $f8, 0xc($s0)
/* ABEE80 80047CE0 86080022 */ lh $t0, 0x22($s0)
/* ABEE84 80047CE4 31190010 */ andi $t9, $t0, 0x10
/* ABEE88 80047CE8 57200071 */ bnezl $t9, .L80047EB0
/* ABEE8C 80047CEC C608000C */ lwc1 $f8, 0xc($s0)
/* ABEE90 80047CF0 860900A2 */ lh $t1, 0xa2($s0)
/* ABEE94 80047CF4 862A002A */ lh $t2, 0x2a($s1)
/* ABEE98 80047CF8 02002025 */ move $a0, $s0
/* ABEE9C 80047CFC 25388001 */ addiu $t8, $t1, -0x7fff
/* ABEEA0 80047D00 1940000A */ blez $t2, .L80047D2C
/* ABEEA4 80047D04 A6380026 */ sh $t8, 0x26($s1)
/* ABEEA8 80047D08 8E060004 */ lw $a2, 4($s0)
/* ABEEAC 80047D0C 8E07000C */ lw $a3, 0xc($s0)
/* ABEEB0 80047D10 27AB0098 */ addiu $t3, $sp, 0x98
/* ABEEB4 80047D14 AFAB0010 */ sw $t3, 0x10($sp)
/* ABEEB8 80047D18 AFB10014 */ sw $s1, 0x14($sp)
/* ABEEBC 80047D1C 0C011B88 */ jal func_80046E20
/* ABEEC0 80047D20 27A5007C */ addiu $a1, $sp, 0x7c
/* ABEEC4 80047D24 10000020 */ b .L80047DA8
/* ABEEC8 80047D28 862B0018 */ lh $t3, 0x18($s1)
.L80047D2C:
/* ABEECC 80047D2C 8FAC0038 */ lw $t4, 0x38($sp)
/* ABEED0 80047D30 27A60088 */ addiu $a2, $sp, 0x88
/* ABEED4 80047D34 02002025 */ move $a0, $s0
/* ABEED8 80047D38 8D8E0000 */ lw $t6, ($t4)
/* ABEEDC 80047D3C ACCE0000 */ sw $t6, ($a2)
/* ABEEE0 80047D40 8D8D0004 */ lw $t5, 4($t4)
/* ABEEE4 80047D44 ACCD0004 */ sw $t5, 4($a2)
/* ABEEE8 80047D48 8D8E0008 */ lw $t6, 8($t4)
/* ABEEEC 80047D4C ACCE0008 */ sw $t6, 8($a2)
/* ABEEF0 80047D50 C602000C */ lwc1 $f2, 0xc($s0)
/* ABEEF4 80047D54 46021000 */ add.s $f0, $f2, $f2
/* ABEEF8 80047D58 E60000C8 */ swc1 $f0, 0xc8($s0)
/* ABEEFC 80047D5C E6200010 */ swc1 $f0, 0x10($s1)
/* ABEF00 80047D60 0C010FCD */ jal func_80043F34
/* ABEF04 80047D64 8FA5003C */ lw $a1, 0x3c($sp)
/* ABEF08 80047D68 10400006 */ beqz $v0, .L80047D84
/* ABEF0C 80047D6C 8FA90038 */ lw $t1, 0x38($sp)
/* ABEF10 80047D70 87AF0072 */ lh $t7, 0x72($sp)
/* ABEF14 80047D74 2408FFFF */ li $t0, -1
/* ABEF18 80047D78 A628002A */ sh $t0, 0x2a($s1)
/* ABEF1C 80047D7C 10000008 */ b .L80047DA0
/* ABEF20 80047D80 A62F0026 */ sh $t7, 0x26($s1)
.L80047D84:
/* ABEF24 80047D84 8FB90040 */ lw $t9, 0x40($sp)
/* ABEF28 80047D88 8D2A0000 */ lw $t2, ($t1)
/* ABEF2C 80047D8C AF2A0000 */ sw $t2, ($t9)
/* ABEF30 80047D90 8D380004 */ lw $t8, 4($t1)
/* ABEF34 80047D94 AF380004 */ sw $t8, 4($t9)
/* ABEF38 80047D98 8D2A0008 */ lw $t2, 8($t1)
/* ABEF3C 80047D9C AF2A0008 */ sw $t2, 8($t9)
.L80047DA0:
/* ABEF40 80047DA0 A6200018 */ sh $zero, 0x18($s1)
/* ABEF44 80047DA4 862B0018 */ lh $t3, 0x18($s1)
.L80047DA8:
/* ABEF48 80047DA8 3C018014 */ lui $at, %hi(D_80139EB8)
/* ABEF4C 80047DAC C7AA0098 */ lwc1 $f10, 0x98($sp)
/* ABEF50 80047DB0 51600013 */ beql $t3, $zero, .L80047E00
/* ABEF54 80047DB4 86180022 */ lh $t8, 0x22($s0)
/* ABEF58 80047DB8 C4289EB8 */ lwc1 $f8, %lo(D_80139EB8)($at)
/* ABEF5C 80047DBC 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABEF60 80047DC0 44812000 */ mtc1 $at, $f4
/* ABEF64 80047DC4 460A4182 */ mul.s $f6, $f8, $f10
/* ABEF68 80047DC8 862C0016 */ lh $t4, 0x16($s1)
/* ABEF6C 80047DCC 86050136 */ lh $a1, 0x136($s0)
/* ABEF70 80047DD0 2407000A */ li $a3, 10
/* ABEF74 80047DD4 258F8001 */ addiu $t7, $t4, -0x7fff
/* ABEF78 80047DD8 01E54823 */ subu $t1, $t7, $a1
/* ABEF7C 80047DDC 00A92021 */ addu $a0, $a1, $t1
/* ABEF80 80047DE0 46062201 */ sub.s $f8, $f4, $f6
/* ABEF84 80047DE4 00042400 */ sll $a0, $a0, 0x10
/* ABEF88 80047DE8 00042403 */ sra $a0, $a0, 0x10
/* ABEF8C 80047DEC 44064000 */ mfc1 $a2, $f8
/* ABEF90 80047DF0 0C010E47 */ jal func_8004391C
/* ABEF94 80047DF4 00000000 */ nop
/* ABEF98 80047DF8 A6020136 */ sh $v0, 0x136($s0)
/* ABEF9C 80047DFC 86180022 */ lh $t8, 0x22($s0)
.L80047E00:
/* ABEFA0 80047E00 87AB0078 */ lh $t3, 0x78($sp)
/* ABEFA4 80047E04 27A4007C */ addiu $a0, $sp, 0x7c
/* ABEFA8 80047E08 330A0004 */ andi $t2, $t8, 4
/* ABEFAC 80047E0C 11400008 */ beqz $t2, .L80047E30
/* ABEFB0 80047E10 8FA50040 */ lw $a1, 0x40($sp)
/* ABEFB4 80047E14 000B6023 */ negu $t4, $t3
/* ABEFB8 80047E18 A60C0134 */ sh $t4, 0x134($s0)
/* ABEFBC 80047E1C 87AD007A */ lh $t5, 0x7a($sp)
/* ABEFC0 80047E20 A6000138 */ sh $zero, 0x138($s0)
/* ABEFC4 80047E24 25AE8001 */ addiu $t6, $t5, -0x7fff
/* ABEFC8 80047E28 10000008 */ b .L80047E4C
/* ABEFCC 80047E2C A60E0136 */ sh $t6, 0x136($s0)
.L80047E30:
/* ABEFD0 80047E30 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* ABEFD4 80047E34 8FA6003C */ lw $a2, 0x3c($sp)
/* ABEFD8 80047E38 87AF0080 */ lh $t7, 0x80($sp)
/* ABEFDC 80047E3C A60F0134 */ sh $t7, 0x134($s0)
/* ABEFE0 80047E40 87A80082 */ lh $t0, 0x82($sp)
/* ABEFE4 80047E44 A6000138 */ sh $zero, 0x138($s0)
/* ABEFE8 80047E48 A6080136 */ sh $t0, 0x136($s0)
.L80047E4C:
/* ABEFEC 80047E4C 3C028016 */ lui $v0, %hi(gSaveContext+0x30) # $v0, 0x8016
/* ABEFF0 80047E50 8442E690 */ lh $v0, %lo(gSaveContext+0x30)($v0)
/* ABEFF4 80047E54 28410011 */ slti $at, $v0, 0x11
/* ABEFF8 80047E58 50200024 */ beql $at, $zero, .L80047EEC
/* ABEFFC 80047E5C 28410011 */ slti $at, $v0, 0x11
/* ABF000 80047E60 8E19008C */ lw $t9, 0x8c($s0)
/* ABF004 80047E64 8F29009C */ lw $t1, 0x9c($t9)
/* ABF008 80047E68 313800FF */ andi $t8, $t1, 0xff
/* ABF00C 80047E6C 5700001F */ bnezl $t8, .L80047EEC
/* ABF010 80047E70 28410011 */ slti $at, $v0, 0x11
/* ABF014 80047E74 0C03F66B */ jal Math_Rand_ZeroOne
/* ABF018 80047E78 00000000 */ nop
/* ABF01C 80047E7C 3C018014 */ lui $at, %hi(D_80139EBC)
/* ABF020 80047E80 C42A9EBC */ lwc1 $f10, %lo(D_80139EBC)($at)
/* ABF024 80047E84 860E0136 */ lh $t6, 0x136($s0)
/* ABF028 80047E88 3C028016 */ lui $v0, %hi(gSaveContext+0x30) # $v0, 0x8016
/* ABF02C 80047E8C 460A0102 */ mul.s $f4, $f0, $f10
/* ABF030 80047E90 4600218D */ trunc.w.s $f6, $f4
/* ABF034 80047E94 440D3000 */ mfc1 $t5, $f6
/* ABF038 80047E98 00000000 */ nop
/* ABF03C 80047E9C 01AE7821 */ addu $t7, $t5, $t6
/* ABF040 80047EA0 A60F0136 */ sh $t7, 0x136($s0)
/* ABF044 80047EA4 10000010 */ b .L80047EE8
/* ABF048 80047EA8 8442E690 */ lh $v0, %lo(gSaveContext+0x30)($v0)
/* ABF04C 80047EAC C608000C */ lwc1 $f8, 0xc($s0)
.L80047EB0:
/* ABF050 80047EB0 A6200018 */ sh $zero, 0x18($s1)
/* ABF054 80047EB4 3C018012 */ lui $at, %hi(D_8011D3E8) # $at, 0x8012
/* ABF058 80047EB8 E6280010 */ swc1 $f8, 0x10($s1)
/* ABF05C 80047EBC 8FB90038 */ lw $t9, 0x38($sp)
/* ABF060 80047EC0 AC20D3E8 */ sw $zero, %lo(D_8011D3E8)($at)
/* ABF064 80047EC4 8FA80040 */ lw $t0, 0x40($sp)
/* ABF068 80047EC8 8F380000 */ lw $t8, ($t9)
/* ABF06C 80047ECC 3C028016 */ lui $v0, %hi(gSaveContext+0x30) # $v0, 0x8016
/* ABF070 80047ED0 AD180000 */ sw $t8, ($t0)
/* ABF074 80047ED4 8F290004 */ lw $t1, 4($t9)
/* ABF078 80047ED8 AD090004 */ sw $t1, 4($t0)
/* ABF07C 80047EDC 8F380008 */ lw $t8, 8($t9)
/* ABF080 80047EE0 AD180008 */ sw $t8, 8($t0)
/* ABF084 80047EE4 8442E690 */ lh $v0, %lo(gSaveContext+0x30)($v0)
.L80047EE8:
/* ABF088 80047EE8 28410011 */ slti $at, $v0, 0x11
.L80047EEC:
/* ABF08C 80047EEC 10200003 */ beqz $at, .L80047EFC
/* ABF090 80047EF0 3C018014 */ lui $at, %hi(D_80139EC0)
/* ABF094 80047EF4 10000004 */ b .L80047F08
/* ABF098 80047EF8 C4309EC0 */ lwc1 $f16, %lo(D_80139EC0)($at)
.L80047EFC:
/* ABF09C 80047EFC 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABF0A0 80047F00 44818000 */ mtc1 $at, $f16
/* ABF0A4 80047F04 00000000 */ nop
.L80047F08:
/* ABF0A8 80047F08 C60A0018 */ lwc1 $f10, 0x18($s0)
/* ABF0AC 80047F0C C60E00FC */ lwc1 $f14, 0xfc($s0)
/* ABF0B0 80047F10 8E0600D4 */ lw $a2, 0xd4($s0)
/* ABF0B4 80047F14 46105302 */ mul.s $f12, $f10, $f16
/* ABF0B8 80047F18 0C010E27 */ jal func_8004389C
/* ABF0BC 80047F1C 3C073F80 */ lui $a3, 0x3f80
/* ABF0C0 80047F20 E60000FC */ swc1 $f0, 0xfc($s0)
/* ABF0C4 80047F24 00002025 */ move $a0, $zero
/* ABF0C8 80047F28 8605015A */ lh $a1, 0x15a($s0)
/* ABF0CC 80047F2C 3C063F00 */ lui $a2, 0x3f00
/* ABF0D0 80047F30 0C010E47 */ jal func_8004391C
/* ABF0D4 80047F34 2407000A */ li $a3, 10
/* ABF0D8 80047F38 A602015A */ sh $v0, 0x15a($s0)
/* ABF0DC 80047F3C 02002025 */ move $a0, $s0
/* ABF0E0 80047F40 0C011429 */ jal func_800450A4
/* ABF0E4 80047F44 8E05001C */ lw $a1, 0x1c($s0)
/* ABF0E8 80047F48 E6000100 */ swc1 $f0, 0x100($s0)
/* ABF0EC 80047F4C 8FBF0024 */ lw $ra, 0x24($sp)
/* ABF0F0 80047F50 8FB10020 */ lw $s1, 0x20($sp)
/* ABF0F4 80047F54 8FB0001C */ lw $s0, 0x1c($sp)
/* ABF0F8 80047F58 27BD00B0 */ addiu $sp, $sp, 0xb0
/* ABF0FC 80047F5C 03E00008 */ jr $ra
/* ABF100 80047F60 24020001 */ li $v0, 1