mirror of https://github.com/zeldaret/oot.git
494 lines
23 KiB
ArmAsm
494 lines
23 KiB
ArmAsm
glabel func_80040284
|
|
/* AB7424 80040284 27BDFF28 */ addiu $sp, $sp, -0xd8
|
|
/* AB7428 80040288 AFBF0064 */ sw $ra, 0x64($sp)
|
|
/* AB742C 8004028C AFB50060 */ sw $s5, 0x60($sp)
|
|
/* AB7430 80040290 AFB4005C */ sw $s4, 0x5c($sp)
|
|
/* AB7434 80040294 AFB30058 */ sw $s3, 0x58($sp)
|
|
/* AB7438 80040298 AFB20054 */ sw $s2, 0x54($sp)
|
|
/* AB743C 8004029C AFB10050 */ sw $s1, 0x50($sp)
|
|
/* AB7440 800402A0 AFB0004C */ sw $s0, 0x4c($sp)
|
|
/* AB7444 800402A4 F7B80040 */ sdc1 $f24, 0x40($sp)
|
|
/* AB7448 800402A8 F7B60038 */ sdc1 $f22, 0x38($sp)
|
|
/* AB744C 800402AC F7B40030 */ sdc1 $f20, 0x30($sp)
|
|
/* AB7450 800402B0 AFA400D8 */ sw $a0, 0xd8($sp)
|
|
/* AB7454 800402B4 AFA500DC */ sw $a1, 0xdc($sp)
|
|
/* AB7458 800402B8 AFA700E4 */ sw $a3, 0xe4($sp)
|
|
/* AB745C 800402BC AFA000CC */ sw $zero, 0xcc($sp)
|
|
/* AB7460 800402C0 94EF0000 */ lhu $t7, ($a3)
|
|
/* AB7464 800402C4 3413FFFF */ li $s3, 65535
|
|
/* AB7468 800402C8 00C09025 */ move $s2, $a2
|
|
/* AB746C 800402CC 166F0003 */ bne $s3, $t7, .L800402DC
|
|
/* AB7470 800402D0 8FB800F8 */ lw $t8, 0xf8($sp)
|
|
/* AB7474 800402D4 100001A8 */ b .L80040978
|
|
/* AB7478 800402D8 00001025 */ move $v0, $zero
|
|
.L800402DC:
|
|
/* AB747C 800402DC 8F080000 */ lw $t0, ($t8)
|
|
/* AB7480 800402E0 27B500AC */ addiu $s5, $sp, 0xac
|
|
/* AB7484 800402E4 24140006 */ li $s4, 6
|
|
/* AB7488 800402E8 AEA80000 */ sw $t0, ($s5)
|
|
/* AB748C 800402EC 8F190004 */ lw $t9, 4($t8)
|
|
/* AB7490 800402F0 AEB90004 */ sw $t9, 4($s5)
|
|
/* AB7494 800402F4 8F080008 */ lw $t0, 8($t8)
|
|
/* AB7498 800402F8 AEA80008 */ sw $t0, 8($s5)
|
|
/* AB749C 800402FC 8FAA00E4 */ lw $t2, 0xe4($sp)
|
|
/* AB74A0 80040300 8E4913F8 */ lw $t1, 0x13f8($s2)
|
|
/* AB74A4 80040304 C7B600FC */ lwc1 $f22, 0xfc($sp)
|
|
/* AB74A8 80040308 954B0000 */ lhu $t3, ($t2)
|
|
/* AB74AC 8004030C 000B6080 */ sll $t4, $t3, 2
|
|
/* AB74B0 80040310 012C8821 */ addu $s1, $t1, $t4
|
|
.L80040314:
|
|
/* AB74B4 80040314 86220000 */ lh $v0, ($s1)
|
|
/* AB74B8 80040318 8E4D13F0 */ lw $t5, 0x13f0($s2)
|
|
/* AB74BC 8004031C 27A500C0 */ addiu $a1, $sp, 0xc0
|
|
/* AB74C0 80040320 00027100 */ sll $t6, $v0, 4
|
|
/* AB74C4 80040324 01AE8021 */ addu $s0, $t5, $t6
|
|
/* AB74C8 80040328 02002025 */ move $a0, $s0
|
|
/* AB74CC 8004032C 27A600BC */ addiu $a2, $sp, 0xbc
|
|
/* AB74D0 80040330 0C00E275 */ jal func_800389D4
|
|
/* AB74D4 80040334 27A700B8 */ addiu $a3, $sp, 0xb8
|
|
/* AB74D8 80040338 C7AC00C0 */ lwc1 $f12, 0xc0($sp)
|
|
/* AB74DC 8004033C C7AE00B8 */ lwc1 $f14, 0xb8($sp)
|
|
/* AB74E0 80040340 3C018014 */ lui $at, %hi(D_80138FB4)
|
|
/* AB74E4 80040344 460C6102 */ mul.s $f4, $f12, $f12
|
|
/* AB74E8 80040348 C4288FB4 */ lwc1 $f8, %lo(D_80138FB4)($at)
|
|
/* AB74EC 8004034C 3C048014 */ lui $a0, %hi(D_80138EF0) # $a0, 0x8014
|
|
/* AB74F0 80040350 460E7182 */ mul.s $f6, $f14, $f14
|
|
/* AB74F4 80040354 3C058014 */ lui $a1, %hi(D_80138F04) # $a1, 0x8014
|
|
/* AB74F8 80040358 24A58F04 */ addiu $a1, %lo(D_80138F04) # addiu $a1, $a1, -0x70fc
|
|
/* AB74FC 8004035C 24848EF0 */ addiu $a0, %lo(D_80138EF0) # addiu $a0, $a0, -0x7110
|
|
/* AB7500 80040360 46062000 */ add.s $f0, $f4, $f6
|
|
/* AB7504 80040364 46000504 */ sqrt.s $f20, $f0
|
|
/* AB7508 80040368 4600A005 */ abs.s $f0, $f20
|
|
/* AB750C 8004036C 4608003C */ c.lt.s $f0, $f8
|
|
/* AB7510 80040370 00000000 */ nop
|
|
/* AB7514 80040374 45020004 */ bc1fl .L80040388
|
|
/* AB7518 80040378 860F000E */ lh $t7, 0xe($s0)
|
|
/* AB751C 8004037C 0C0007FC */ jal __assert
|
|
/* AB7520 80040380 24061CD6 */ li $a2, 7382
|
|
/* AB7524 80040384 860F000E */ lh $t7, 0xe($s0)
|
|
.L80040388:
|
|
/* AB7528 80040388 AFB50010 */ sw $s5, 0x10($sp)
|
|
/* AB752C 8004038C C7AC00C0 */ lwc1 $f12, 0xc0($sp)
|
|
/* AB7530 80040390 448F5000 */ mtc1 $t7, $f10
|
|
/* AB7534 80040394 C7AE00BC */ lwc1 $f14, 0xbc($sp)
|
|
/* AB7538 80040398 8FA600B8 */ lw $a2, 0xb8($sp)
|
|
/* AB753C 8004039C 468052A0 */ cvt.s.w $f10, $f10
|
|
/* AB7540 800403A0 44075000 */ mfc1 $a3, $f10
|
|
/* AB7544 800403A4 0C0332C3 */ jal Math3D_DistPlaneToPos
|
|
/* AB7548 800403A8 00000000 */ nop
|
|
/* AB754C 800403AC 46000606 */ mov.s $f24, $f0
|
|
/* AB7550 800403B0 46000005 */ abs.s $f0, $f0
|
|
/* AB7554 800403B4 97B800DE */ lhu $t8, 0xde($sp)
|
|
/* AB7558 800403B8 4600B03C */ c.lt.s $f22, $f0
|
|
/* AB755C 800403BC 00000000 */ nop
|
|
/* AB7560 800403C0 45030008 */ bc1tl .L800403E4
|
|
/* AB7564 800403C4 96220002 */ lhu $v0, 2($s1)
|
|
/* AB7568 800403C8 96020002 */ lhu $v0, 2($s0)
|
|
/* AB756C 800403CC 33190007 */ andi $t9, $t8, 7
|
|
/* AB7570 800403D0 00194340 */ sll $t0, $t9, 0xd
|
|
/* AB7574 800403D4 00485024 */ and $t2, $v0, $t0
|
|
/* AB7578 800403D8 11400008 */ beqz $t2, .L800403FC
|
|
/* AB757C 800403DC 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* AB7580 800403E0 96220002 */ lhu $v0, 2($s1)
|
|
.L800403E4:
|
|
/* AB7584 800403E4 52620093 */ beql $s3, $v0, .L80040634
|
|
/* AB7588 800403E8 8FA800E4 */ lw $t0, 0xe4($sp)
|
|
/* AB758C 800403EC 8E4B13F8 */ lw $t3, 0x13f8($s2)
|
|
/* AB7590 800403F0 00024880 */ sll $t1, $v0, 2
|
|
/* AB7594 800403F4 1000FFC7 */ b .L80040314
|
|
/* AB7598 800403F8 01698821 */ addu $s1, $t3, $t1
|
|
.L800403FC:
|
|
/* AB759C 800403FC 44812000 */ mtc1 $at, $f4
|
|
/* AB75A0 80040400 C7AE00B8 */ lwc1 $f14, 0xb8($sp)
|
|
/* AB75A4 80040404 3C018014 */ lui $at, %hi(D_80138FB8)
|
|
/* AB75A8 80040408 46142403 */ div.s $f16, $f4, $f20
|
|
/* AB75AC 8004040C C4268FB8 */ lwc1 $f6, %lo(D_80138FB8)($at)
|
|
/* AB75B0 80040410 304E1FFF */ andi $t6, $v0, 0x1fff
|
|
/* AB75B4 80040414 46007005 */ abs.s $f0, $f14
|
|
/* AB75B8 80040418 46100482 */ mul.s $f18, $f0, $f16
|
|
/* AB75BC 8004041C 4606903C */ c.lt.s $f18, $f6
|
|
/* AB75C0 80040420 00000000 */ nop
|
|
/* AB75C4 80040424 45000008 */ bc1f .L80040448
|
|
/* AB75C8 80040428 00000000 */ nop
|
|
/* AB75CC 8004042C 96220002 */ lhu $v0, 2($s1)
|
|
/* AB75D0 80040430 52620080 */ beql $s3, $v0, .L80040634
|
|
/* AB75D4 80040434 8FA800E4 */ lw $t0, 0xe4($sp)
|
|
/* AB75D8 80040438 8E4C13F8 */ lw $t4, 0x13f8($s2)
|
|
/* AB75DC 8004043C 00026880 */ sll $t5, $v0, 2
|
|
/* AB75E0 80040440 1000FFB4 */ b .L80040314
|
|
/* AB75E4 80040444 018D8821 */ addu $s1, $t4, $t5
|
|
.L80040448:
|
|
/* AB75E8 80040448 01D40019 */ multu $t6, $s4
|
|
/* AB75EC 8004044C 96080004 */ lhu $t0, 4($s0)
|
|
/* AB75F0 80040450 8E4513F4 */ lw $a1, 0x13f4($s2)
|
|
/* AB75F4 80040454 310A1FFF */ andi $t2, $t0, 0x1fff
|
|
/* AB75F8 80040458 00007812 */ mflo $t7
|
|
/* AB75FC 8004045C 00AFC021 */ addu $t8, $a1, $t7
|
|
/* AB7600 80040460 87190004 */ lh $t9, 4($t8)
|
|
/* AB7604 80040464 01540019 */ multu $t2, $s4
|
|
/* AB7608 80040468 44994000 */ mtc1 $t9, $f8
|
|
/* AB760C 8004046C 00000000 */ nop
|
|
/* AB7610 80040470 46804320 */ cvt.s.w $f12, $f8
|
|
/* AB7614 80040474 00005812 */ mflo $t3
|
|
/* AB7618 80040478 00AB4821 */ addu $t1, $a1, $t3
|
|
/* AB761C 8004047C 852C0004 */ lh $t4, 4($t1)
|
|
/* AB7620 80040480 46006086 */ mov.s $f2, $f12
|
|
/* AB7624 80040484 448C5000 */ mtc1 $t4, $f10
|
|
/* AB7628 80040488 00000000 */ nop
|
|
/* AB762C 8004048C 46805020 */ cvt.s.w $f0, $f10
|
|
/* AB7630 80040490 4602003C */ c.lt.s $f0, $f2
|
|
/* AB7634 80040494 00000000 */ nop
|
|
/* AB7638 80040498 45020004 */ bc1fl .L800404AC
|
|
/* AB763C 8004049C 4600603C */ c.lt.s $f12, $f0
|
|
/* AB7640 800404A0 10000006 */ b .L800404BC
|
|
/* AB7644 800404A4 46000086 */ mov.s $f2, $f0
|
|
/* AB7648 800404A8 4600603C */ c.lt.s $f12, $f0
|
|
.L800404AC:
|
|
/* AB764C 800404AC 00000000 */ nop
|
|
/* AB7650 800404B0 45020003 */ bc1fl .L800404C0
|
|
/* AB7654 800404B4 960D0006 */ lhu $t5, 6($s0)
|
|
/* AB7658 800404B8 46000306 */ mov.s $f12, $f0
|
|
.L800404BC:
|
|
/* AB765C 800404BC 960D0006 */ lhu $t5, 6($s0)
|
|
.L800404C0:
|
|
/* AB7660 800404C0 000D7080 */ sll $t6, $t5, 2
|
|
/* AB7664 800404C4 01CD7023 */ subu $t6, $t6, $t5
|
|
/* AB7668 800404C8 000E7040 */ sll $t6, $t6, 1
|
|
/* AB766C 800404CC 00AE7821 */ addu $t7, $a1, $t6
|
|
/* AB7670 800404D0 85F80004 */ lh $t8, 4($t7)
|
|
/* AB7674 800404D4 44982000 */ mtc1 $t8, $f4
|
|
/* AB7678 800404D8 00000000 */ nop
|
|
/* AB767C 800404DC 46802020 */ cvt.s.w $f0, $f4
|
|
/* AB7680 800404E0 4602003C */ c.lt.s $f0, $f2
|
|
/* AB7684 800404E4 00000000 */ nop
|
|
/* AB7688 800404E8 45020004 */ bc1fl .L800404FC
|
|
/* AB768C 800404EC 4600603C */ c.lt.s $f12, $f0
|
|
/* AB7690 800404F0 10000006 */ b .L8004050C
|
|
/* AB7694 800404F4 46000086 */ mov.s $f2, $f0
|
|
/* AB7698 800404F8 4600603C */ c.lt.s $f12, $f0
|
|
.L800404FC:
|
|
/* AB769C 800404FC 00000000 */ nop
|
|
/* AB76A0 80040500 45020003 */ bc1fl .L80040510
|
|
/* AB76A4 80040504 46161081 */ sub.s $f2, $f2, $f22
|
|
/* AB76A8 80040508 46000306 */ mov.s $f12, $f0
|
|
.L8004050C:
|
|
/* AB76AC 8004050C 46161081 */ sub.s $f2, $f2, $f22
|
|
.L80040510:
|
|
/* AB76B0 80040510 C7AE00B4 */ lwc1 $f14, 0xb4($sp)
|
|
/* AB76B4 80040514 46166300 */ add.s $f12, $f12, $f22
|
|
/* AB76B8 80040518 4602703C */ c.lt.s $f14, $f2
|
|
/* AB76BC 8004051C 00000000 */ nop
|
|
/* AB76C0 80040520 45030008 */ bc1tl .L80040544
|
|
/* AB76C4 80040524 96220002 */ lhu $v0, 2($s1)
|
|
/* AB76C8 80040528 460E603C */ c.lt.s $f12, $f14
|
|
/* AB76CC 8004052C 02002025 */ move $a0, $s0
|
|
/* AB76D0 80040530 8FAA00F8 */ lw $t2, 0xf8($sp)
|
|
/* AB76D4 80040534 27AB00D0 */ addiu $t3, $sp, 0xd0
|
|
/* AB76D8 80040538 45020009 */ bc1fl .L80040560
|
|
/* AB76DC 8004053C 8D470004 */ lw $a3, 4($t2)
|
|
/* AB76E0 80040540 96220002 */ lhu $v0, 2($s1)
|
|
.L80040544:
|
|
/* AB76E4 80040544 5262003B */ beql $s3, $v0, .L80040634
|
|
/* AB76E8 80040548 8FA800E4 */ lw $t0, 0xe4($sp)
|
|
/* AB76EC 8004054C 8E5913F8 */ lw $t9, 0x13f8($s2)
|
|
/* AB76F0 80040550 00024080 */ sll $t0, $v0, 2
|
|
/* AB76F4 80040554 1000FF6F */ b .L80040314
|
|
/* AB76F8 80040558 03288821 */ addu $s1, $t9, $t0
|
|
/* AB76FC 8004055C 8D470004 */ lw $a3, 4($t2)
|
|
.L80040560:
|
|
/* AB7700 80040560 E7B20090 */ swc1 $f18, 0x90($sp)
|
|
/* AB7704 80040564 E7B00070 */ swc1 $f16, 0x70($sp)
|
|
/* AB7708 80040568 AFAB0010 */ sw $t3, 0x10($sp)
|
|
/* AB770C 8004056C 0C00E400 */ jal func_80039000
|
|
/* AB7710 80040570 8FA600AC */ lw $a2, 0xac($sp)
|
|
/* AB7714 80040574 C7B00070 */ lwc1 $f16, 0x70($sp)
|
|
/* AB7718 80040578 10400026 */ beqz $v0, .L80040614
|
|
/* AB771C 8004057C C7B20090 */ lwc1 $f18, 0x90($sp)
|
|
/* AB7720 80040580 4612B203 */ div.s $f8, $f22, $f18
|
|
/* AB7724 80040584 C7AE00B4 */ lwc1 $f14, 0xb4($sp)
|
|
/* AB7728 80040588 C7A600D0 */ lwc1 $f6, 0xd0($sp)
|
|
/* AB772C 8004058C 460E3081 */ sub.s $f2, $f6, $f14
|
|
/* AB7730 80040590 C7AE00B8 */ lwc1 $f14, 0xb8($sp)
|
|
/* AB7734 80040594 46001005 */ abs.s $f0, $f2
|
|
/* AB7738 80040598 4608003E */ c.le.s $f0, $f8
|
|
/* AB773C 8004059C 00000000 */ nop
|
|
/* AB7740 800405A0 4502001D */ bc1fl .L80040618
|
|
/* AB7744 800405A4 96220002 */ lhu $v0, 2($s1)
|
|
/* AB7748 800405A8 460E1102 */ mul.s $f4, $f2, $f14
|
|
/* AB774C 800405AC 3C014080 */ li $at, 0x40800000 # 0.000000
|
|
/* AB7750 800405B0 44815000 */ mtc1 $at, $f10
|
|
/* AB7754 800405B4 C7AC00C0 */ lwc1 $f12, 0xc0($sp)
|
|
/* AB7758 800405B8 8FA400D8 */ lw $a0, 0xd8($sp)
|
|
/* AB775C 800405BC 02002825 */ move $a1, $s0
|
|
/* AB7760 800405C0 02A03025 */ move $a2, $s5
|
|
/* AB7764 800405C4 460A203E */ c.le.s $f4, $f10
|
|
/* AB7768 800405C8 27A700B4 */ addiu $a3, $sp, 0xb4
|
|
/* AB776C 800405CC 240C0001 */ li $t4, 1
|
|
/* AB7770 800405D0 45020011 */ bc1fl .L80040618
|
|
/* AB7774 800405D4 96220002 */ lhu $v0, 2($s1)
|
|
/* AB7778 800405D8 C7A600BC */ lwc1 $f6, 0xbc($sp)
|
|
/* AB777C 800405DC 8FA900F0 */ lw $t1, 0xf0($sp)
|
|
/* AB7780 800405E0 E7AC0010 */ swc1 $f12, 0x10($sp)
|
|
/* AB7784 800405E4 E7AE0018 */ swc1 $f14, 0x18($sp)
|
|
/* AB7788 800405E8 E7B0001C */ swc1 $f16, 0x1c($sp)
|
|
/* AB778C 800405EC E7B80020 */ swc1 $f24, 0x20($sp)
|
|
/* AB7790 800405F0 E7B60024 */ swc1 $f22, 0x24($sp)
|
|
/* AB7794 800405F4 AFAC00CC */ sw $t4, 0xcc($sp)
|
|
/* AB7798 800405F8 E7A60014 */ swc1 $f6, 0x14($sp)
|
|
/* AB779C 800405FC 0C00E68F */ jal func_80039A3C
|
|
/* AB77A0 80040600 AFA90028 */ sw $t1, 0x28($sp)
|
|
/* AB77A4 80040604 10400003 */ beqz $v0, .L80040614
|
|
/* AB77A8 80040608 8FAD0100 */ lw $t5, 0x100($sp)
|
|
/* AB77AC 8004060C 8FAE00F4 */ lw $t6, 0xf4($sp)
|
|
/* AB77B0 80040610 ADCD0000 */ sw $t5, ($t6)
|
|
.L80040614:
|
|
/* AB77B4 80040614 96220002 */ lhu $v0, 2($s1)
|
|
.L80040618:
|
|
/* AB77B8 80040618 52620006 */ beql $s3, $v0, .L80040634
|
|
/* AB77BC 8004061C 8FA800E4 */ lw $t0, 0xe4($sp)
|
|
/* AB77C0 80040620 8E4F13F8 */ lw $t7, 0x13f8($s2)
|
|
/* AB77C4 80040624 0002C080 */ sll $t8, $v0, 2
|
|
/* AB77C8 80040628 1000FF3A */ b .L80040314
|
|
/* AB77CC 8004062C 01F88821 */ addu $s1, $t7, $t8
|
|
/* AB77D0 80040630 8FA800E4 */ lw $t0, 0xe4($sp)
|
|
.L80040634:
|
|
/* AB77D4 80040634 8E5913F8 */ lw $t9, 0x13f8($s2)
|
|
/* AB77D8 80040638 950A0000 */ lhu $t2, ($t0)
|
|
/* AB77DC 8004063C 000A5880 */ sll $t3, $t2, 2
|
|
/* AB77E0 80040640 032B8821 */ addu $s1, $t9, $t3
|
|
.L80040644:
|
|
/* AB77E4 80040644 86220000 */ lh $v0, ($s1)
|
|
/* AB77E8 80040648 8E4913F0 */ lw $t1, 0x13f0($s2)
|
|
/* AB77EC 8004064C 27A500C0 */ addiu $a1, $sp, 0xc0
|
|
/* AB77F0 80040650 00026100 */ sll $t4, $v0, 4
|
|
/* AB77F4 80040654 012C8021 */ addu $s0, $t1, $t4
|
|
/* AB77F8 80040658 02002025 */ move $a0, $s0
|
|
/* AB77FC 8004065C 27A600BC */ addiu $a2, $sp, 0xbc
|
|
/* AB7800 80040660 0C00E275 */ jal func_800389D4
|
|
/* AB7804 80040664 27A700B8 */ addiu $a3, $sp, 0xb8
|
|
/* AB7808 80040668 C7AC00C0 */ lwc1 $f12, 0xc0($sp)
|
|
/* AB780C 8004066C C7AE00B8 */ lwc1 $f14, 0xb8($sp)
|
|
/* AB7810 80040670 3C018014 */ lui $at, %hi(D_80138FBC)
|
|
/* AB7814 80040674 460C6202 */ mul.s $f8, $f12, $f12
|
|
/* AB7818 80040678 C4248FBC */ lwc1 $f4, %lo(D_80138FBC)($at)
|
|
/* AB781C 8004067C 3C048014 */ lui $a0, %hi(D_80138F14) # $a0, 0x8014
|
|
/* AB7820 80040680 460E7282 */ mul.s $f10, $f14, $f14
|
|
/* AB7824 80040684 3C058014 */ lui $a1, %hi(D_80138F28) # $a1, 0x8014
|
|
/* AB7828 80040688 24A58F28 */ addiu $a1, %lo(D_80138F28) # addiu $a1, $a1, -0x70d8
|
|
/* AB782C 8004068C 24848F14 */ addiu $a0, %lo(D_80138F14) # addiu $a0, $a0, -0x70ec
|
|
/* AB7830 80040690 460A4000 */ add.s $f0, $f8, $f10
|
|
/* AB7834 80040694 46000504 */ sqrt.s $f20, $f0
|
|
/* AB7838 80040698 4600A005 */ abs.s $f0, $f20
|
|
/* AB783C 8004069C 4604003C */ c.lt.s $f0, $f4
|
|
/* AB7840 800406A0 00000000 */ nop
|
|
/* AB7844 800406A4 45020004 */ bc1fl .L800406B8
|
|
/* AB7848 800406A8 860D000E */ lh $t5, 0xe($s0)
|
|
/* AB784C 800406AC 0C0007FC */ jal __assert
|
|
/* AB7850 800406B0 24061D41 */ li $a2, 7489
|
|
/* AB7854 800406B4 860D000E */ lh $t5, 0xe($s0)
|
|
.L800406B8:
|
|
/* AB7858 800406B8 AFB50010 */ sw $s5, 0x10($sp)
|
|
/* AB785C 800406BC C7AC00C0 */ lwc1 $f12, 0xc0($sp)
|
|
/* AB7860 800406C0 448D3000 */ mtc1 $t5, $f6
|
|
/* AB7864 800406C4 C7AE00BC */ lwc1 $f14, 0xbc($sp)
|
|
/* AB7868 800406C8 8FA600B8 */ lw $a2, 0xb8($sp)
|
|
/* AB786C 800406CC 468031A0 */ cvt.s.w $f6, $f6
|
|
/* AB7870 800406D0 44073000 */ mfc1 $a3, $f6
|
|
/* AB7874 800406D4 0C0332C3 */ jal Math3D_DistPlaneToPos
|
|
/* AB7878 800406D8 00000000 */ nop
|
|
/* AB787C 800406DC 46000606 */ mov.s $f24, $f0
|
|
/* AB7880 800406E0 46000005 */ abs.s $f0, $f0
|
|
/* AB7884 800406E4 97AE00DE */ lhu $t6, 0xde($sp)
|
|
/* AB7888 800406E8 4600B03C */ c.lt.s $f22, $f0
|
|
/* AB788C 800406EC 00000000 */ nop
|
|
/* AB7890 800406F0 45030008 */ bc1tl .L80040714
|
|
/* AB7894 800406F4 96220002 */ lhu $v0, 2($s1)
|
|
/* AB7898 800406F8 96020002 */ lhu $v0, 2($s0)
|
|
/* AB789C 800406FC 31CF0007 */ andi $t7, $t6, 7
|
|
/* AB78A0 80040700 000FC340 */ sll $t8, $t7, 0xd
|
|
/* AB78A4 80040704 00584024 */ and $t0, $v0, $t8
|
|
/* AB78A8 80040708 11000008 */ beqz $t0, .L8004072C
|
|
/* AB78AC 8004070C 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* AB78B0 80040710 96220002 */ lhu $v0, 2($s1)
|
|
.L80040714:
|
|
/* AB78B4 80040714 52620092 */ beql $s3, $v0, .L80040960
|
|
/* AB78B8 80040718 C7A400AC */ lwc1 $f4, 0xac($sp)
|
|
/* AB78BC 8004071C 8E4A13F8 */ lw $t2, 0x13f8($s2)
|
|
/* AB78C0 80040720 0002C880 */ sll $t9, $v0, 2
|
|
/* AB78C4 80040724 1000FFC7 */ b .L80040644
|
|
/* AB78C8 80040728 01598821 */ addu $s1, $t2, $t9
|
|
.L8004072C:
|
|
/* AB78CC 8004072C 44814000 */ mtc1 $at, $f8
|
|
/* AB78D0 80040730 C7AC00C0 */ lwc1 $f12, 0xc0($sp)
|
|
/* AB78D4 80040734 3C018014 */ lui $at, %hi(D_80138FC0)
|
|
/* AB78D8 80040738 46144403 */ div.s $f16, $f8, $f20
|
|
/* AB78DC 8004073C C42A8FC0 */ lwc1 $f10, %lo(D_80138FC0)($at)
|
|
/* AB78E0 80040740 304C1FFF */ andi $t4, $v0, 0x1fff
|
|
/* AB78E4 80040744 46006005 */ abs.s $f0, $f12
|
|
/* AB78E8 80040748 46100482 */ mul.s $f18, $f0, $f16
|
|
/* AB78EC 8004074C 460A903C */ c.lt.s $f18, $f10
|
|
/* AB78F0 80040750 00000000 */ nop
|
|
/* AB78F4 80040754 45000008 */ bc1f .L80040778
|
|
/* AB78F8 80040758 00000000 */ nop
|
|
/* AB78FC 8004075C 96220002 */ lhu $v0, 2($s1)
|
|
/* AB7900 80040760 5262007F */ beql $s3, $v0, .L80040960
|
|
/* AB7904 80040764 C7A400AC */ lwc1 $f4, 0xac($sp)
|
|
/* AB7908 80040768 8E4B13F8 */ lw $t3, 0x13f8($s2)
|
|
/* AB790C 8004076C 00024880 */ sll $t1, $v0, 2
|
|
/* AB7910 80040770 1000FFB4 */ b .L80040644
|
|
/* AB7914 80040774 01698821 */ addu $s1, $t3, $t1
|
|
.L80040778:
|
|
/* AB7918 80040778 01940019 */ multu $t4, $s4
|
|
/* AB791C 8004077C 96180004 */ lhu $t8, 4($s0)
|
|
/* AB7920 80040780 8E4513F4 */ lw $a1, 0x13f4($s2)
|
|
/* AB7924 80040784 33081FFF */ andi $t0, $t8, 0x1fff
|
|
/* AB7928 80040788 00006812 */ mflo $t5
|
|
/* AB792C 8004078C 00AD7021 */ addu $t6, $a1, $t5
|
|
/* AB7930 80040790 85CF0000 */ lh $t7, ($t6)
|
|
/* AB7934 80040794 01140019 */ multu $t0, $s4
|
|
/* AB7938 80040798 448F2000 */ mtc1 $t7, $f4
|
|
/* AB793C 8004079C 00000000 */ nop
|
|
/* AB7940 800407A0 46802320 */ cvt.s.w $f12, $f4
|
|
/* AB7944 800407A4 00005012 */ mflo $t2
|
|
/* AB7948 800407A8 00AAC821 */ addu $t9, $a1, $t2
|
|
/* AB794C 800407AC 872B0000 */ lh $t3, ($t9)
|
|
/* AB7950 800407B0 46006086 */ mov.s $f2, $f12
|
|
/* AB7954 800407B4 448B3000 */ mtc1 $t3, $f6
|
|
/* AB7958 800407B8 00000000 */ nop
|
|
/* AB795C 800407BC 46803020 */ cvt.s.w $f0, $f6
|
|
/* AB7960 800407C0 4602003C */ c.lt.s $f0, $f2
|
|
/* AB7964 800407C4 00000000 */ nop
|
|
/* AB7968 800407C8 45020004 */ bc1fl .L800407DC
|
|
/* AB796C 800407CC 4600603C */ c.lt.s $f12, $f0
|
|
/* AB7970 800407D0 10000006 */ b .L800407EC
|
|
/* AB7974 800407D4 46000086 */ mov.s $f2, $f0
|
|
/* AB7978 800407D8 4600603C */ c.lt.s $f12, $f0
|
|
.L800407DC:
|
|
/* AB797C 800407DC 00000000 */ nop
|
|
/* AB7980 800407E0 45020003 */ bc1fl .L800407F0
|
|
/* AB7984 800407E4 96090006 */ lhu $t1, 6($s0)
|
|
/* AB7988 800407E8 46000306 */ mov.s $f12, $f0
|
|
.L800407EC:
|
|
/* AB798C 800407EC 96090006 */ lhu $t1, 6($s0)
|
|
.L800407F0:
|
|
/* AB7990 800407F0 00096080 */ sll $t4, $t1, 2
|
|
/* AB7994 800407F4 01896023 */ subu $t4, $t4, $t1
|
|
/* AB7998 800407F8 000C6040 */ sll $t4, $t4, 1
|
|
/* AB799C 800407FC 00AC6821 */ addu $t5, $a1, $t4
|
|
/* AB79A0 80040800 85AE0000 */ lh $t6, ($t5)
|
|
/* AB79A4 80040804 448E4000 */ mtc1 $t6, $f8
|
|
/* AB79A8 80040808 00000000 */ nop
|
|
/* AB79AC 8004080C 46804020 */ cvt.s.w $f0, $f8
|
|
/* AB79B0 80040810 4602003C */ c.lt.s $f0, $f2
|
|
/* AB79B4 80040814 00000000 */ nop
|
|
/* AB79B8 80040818 45020004 */ bc1fl .L8004082C
|
|
/* AB79BC 8004081C 4600603C */ c.lt.s $f12, $f0
|
|
/* AB79C0 80040820 10000006 */ b .L8004083C
|
|
/* AB79C4 80040824 46000086 */ mov.s $f2, $f0
|
|
/* AB79C8 80040828 4600603C */ c.lt.s $f12, $f0
|
|
.L8004082C:
|
|
/* AB79CC 8004082C 00000000 */ nop
|
|
/* AB79D0 80040830 45020003 */ bc1fl .L80040840
|
|
/* AB79D4 80040834 46161081 */ sub.s $f2, $f2, $f22
|
|
/* AB79D8 80040838 46000306 */ mov.s $f12, $f0
|
|
.L8004083C:
|
|
/* AB79DC 8004083C 46161081 */ sub.s $f2, $f2, $f22
|
|
.L80040840:
|
|
/* AB79E0 80040840 C7AE00AC */ lwc1 $f14, 0xac($sp)
|
|
/* AB79E4 80040844 46166300 */ add.s $f12, $f12, $f22
|
|
/* AB79E8 80040848 4602703C */ c.lt.s $f14, $f2
|
|
/* AB79EC 8004084C 00000000 */ nop
|
|
/* AB79F0 80040850 45030008 */ bc1tl .L80040874
|
|
/* AB79F4 80040854 96220002 */ lhu $v0, 2($s1)
|
|
/* AB79F8 80040858 460E603C */ c.lt.s $f12, $f14
|
|
/* AB79FC 8004085C 02002025 */ move $a0, $s0
|
|
/* AB7A00 80040860 8FA800F8 */ lw $t0, 0xf8($sp)
|
|
/* AB7A04 80040864 8FA700B4 */ lw $a3, 0xb4($sp)
|
|
/* AB7A08 80040868 45000008 */ bc1f .L8004088C
|
|
/* AB7A0C 8004086C 27AA00D0 */ addiu $t2, $sp, 0xd0
|
|
/* AB7A10 80040870 96220002 */ lhu $v0, 2($s1)
|
|
.L80040874:
|
|
/* AB7A14 80040874 5262003A */ beql $s3, $v0, .L80040960
|
|
/* AB7A18 80040878 C7A400AC */ lwc1 $f4, 0xac($sp)
|
|
/* AB7A1C 8004087C 8E4F13F8 */ lw $t7, 0x13f8($s2)
|
|
/* AB7A20 80040880 0002C080 */ sll $t8, $v0, 2
|
|
/* AB7A24 80040884 1000FF6F */ b .L80040644
|
|
/* AB7A28 80040888 01F88821 */ addu $s1, $t7, $t8
|
|
.L8004088C:
|
|
/* AB7A2C 8004088C 8D060004 */ lw $a2, 4($t0)
|
|
/* AB7A30 80040890 E7B20090 */ swc1 $f18, 0x90($sp)
|
|
/* AB7A34 80040894 E7B00070 */ swc1 $f16, 0x70($sp)
|
|
/* AB7A38 80040898 0C00E3D8 */ jal func_80038F60
|
|
/* AB7A3C 8004089C AFAA0010 */ sw $t2, 0x10($sp)
|
|
/* AB7A40 800408A0 C7B00070 */ lwc1 $f16, 0x70($sp)
|
|
/* AB7A44 800408A4 10400026 */ beqz $v0, .L80040940
|
|
/* AB7A48 800408A8 C7B20090 */ lwc1 $f18, 0x90($sp)
|
|
/* AB7A4C 800408AC 4612B103 */ div.s $f4, $f22, $f18
|
|
/* AB7A50 800408B0 C7AE00AC */ lwc1 $f14, 0xac($sp)
|
|
/* AB7A54 800408B4 C7AA00D0 */ lwc1 $f10, 0xd0($sp)
|
|
/* AB7A58 800408B8 C7AC00C0 */ lwc1 $f12, 0xc0($sp)
|
|
/* AB7A5C 800408BC 460E5081 */ sub.s $f2, $f10, $f14
|
|
/* AB7A60 800408C0 46001005 */ abs.s $f0, $f2
|
|
/* AB7A64 800408C4 4604003E */ c.le.s $f0, $f4
|
|
/* AB7A68 800408C8 00000000 */ nop
|
|
/* AB7A6C 800408CC 4502001D */ bc1fl .L80040944
|
|
/* AB7A70 800408D0 96220002 */ lhu $v0, 2($s1)
|
|
/* AB7A74 800408D4 460C1202 */ mul.s $f8, $f2, $f12
|
|
/* AB7A78 800408D8 3C014080 */ li $at, 0x40800000 # 0.000000
|
|
/* AB7A7C 800408DC 44813000 */ mtc1 $at, $f6
|
|
/* AB7A80 800408E0 C7AE00B8 */ lwc1 $f14, 0xb8($sp)
|
|
/* AB7A84 800408E4 8FA400D8 */ lw $a0, 0xd8($sp)
|
|
/* AB7A88 800408E8 02002825 */ move $a1, $s0
|
|
/* AB7A8C 800408EC 02A03025 */ move $a2, $s5
|
|
/* AB7A90 800408F0 4606403E */ c.le.s $f8, $f6
|
|
/* AB7A94 800408F4 27A700B4 */ addiu $a3, $sp, 0xb4
|
|
/* AB7A98 800408F8 240B0001 */ li $t3, 1
|
|
/* AB7A9C 800408FC 45020011 */ bc1fl .L80040944
|
|
/* AB7AA0 80040900 96220002 */ lhu $v0, 2($s1)
|
|
/* AB7AA4 80040904 C7AA00BC */ lwc1 $f10, 0xbc($sp)
|
|
/* AB7AA8 80040908 8FB900F0 */ lw $t9, 0xf0($sp)
|
|
/* AB7AAC 8004090C E7AC0010 */ swc1 $f12, 0x10($sp)
|
|
/* AB7AB0 80040910 E7AE0018 */ swc1 $f14, 0x18($sp)
|
|
/* AB7AB4 80040914 E7B0001C */ swc1 $f16, 0x1c($sp)
|
|
/* AB7AB8 80040918 E7B80020 */ swc1 $f24, 0x20($sp)
|
|
/* AB7ABC 8004091C E7B60024 */ swc1 $f22, 0x24($sp)
|
|
/* AB7AC0 80040920 AFAB00CC */ sw $t3, 0xcc($sp)
|
|
/* AB7AC4 80040924 E7AA0014 */ swc1 $f10, 0x14($sp)
|
|
/* AB7AC8 80040928 0C00E68F */ jal func_80039A3C
|
|
/* AB7ACC 8004092C AFB90028 */ sw $t9, 0x28($sp)
|
|
/* AB7AD0 80040930 10400003 */ beqz $v0, .L80040940
|
|
/* AB7AD4 80040934 8FA90100 */ lw $t1, 0x100($sp)
|
|
/* AB7AD8 80040938 8FAC00F4 */ lw $t4, 0xf4($sp)
|
|
/* AB7ADC 8004093C AD890000 */ sw $t1, ($t4)
|
|
.L80040940:
|
|
/* AB7AE0 80040940 96220002 */ lhu $v0, 2($s1)
|
|
.L80040944:
|
|
/* AB7AE4 80040944 52620006 */ beql $s3, $v0, .L80040960
|
|
/* AB7AE8 80040948 C7A400AC */ lwc1 $f4, 0xac($sp)
|
|
/* AB7AEC 8004094C 8E4D13F8 */ lw $t5, 0x13f8($s2)
|
|
/* AB7AF0 80040950 00027080 */ sll $t6, $v0, 2
|
|
/* AB7AF4 80040954 1000FF3B */ b .L80040644
|
|
/* AB7AF8 80040958 01AE8821 */ addu $s1, $t5, $t6
|
|
/* AB7AFC 8004095C C7A400AC */ lwc1 $f4, 0xac($sp)
|
|
.L80040960:
|
|
/* AB7B00 80040960 8FAF00E8 */ lw $t7, 0xe8($sp)
|
|
/* AB7B04 80040964 E5E40000 */ swc1 $f4, ($t7)
|
|
/* AB7B08 80040968 8FB800EC */ lw $t8, 0xec($sp)
|
|
/* AB7B0C 8004096C C7A600B4 */ lwc1 $f6, 0xb4($sp)
|
|
/* AB7B10 80040970 E7060000 */ swc1 $f6, ($t8)
|
|
/* AB7B14 80040974 8FA200CC */ lw $v0, 0xcc($sp)
|
|
.L80040978:
|
|
/* AB7B18 80040978 8FBF0064 */ lw $ra, 0x64($sp)
|
|
/* AB7B1C 8004097C D7B40030 */ ldc1 $f20, 0x30($sp)
|
|
/* AB7B20 80040980 D7B60038 */ ldc1 $f22, 0x38($sp)
|
|
/* AB7B24 80040984 D7B80040 */ ldc1 $f24, 0x40($sp)
|
|
/* AB7B28 80040988 8FB0004C */ lw $s0, 0x4c($sp)
|
|
/* AB7B2C 8004098C 8FB10050 */ lw $s1, 0x50($sp)
|
|
/* AB7B30 80040990 8FB20054 */ lw $s2, 0x54($sp)
|
|
/* AB7B34 80040994 8FB30058 */ lw $s3, 0x58($sp)
|
|
/* AB7B38 80040998 8FB4005C */ lw $s4, 0x5c($sp)
|
|
/* AB7B3C 8004099C 8FB50060 */ lw $s5, 0x60($sp)
|
|
/* AB7B40 800409A0 03E00008 */ jr $ra
|
|
/* AB7B44 800409A4 27BD00D8 */ addiu $sp, $sp, 0xd8
|
|
|