.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