mirror of https://github.com/zeldaret/oot.git
144 lines
6.7 KiB
ArmAsm
144 lines
6.7 KiB
ArmAsm
glabel func_80045508
|
|
/* ABC6A8 80045508 27BDFFA8 */ addiu $sp, $sp, -0x58
|
|
/* ABC6AC 8004550C AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* ABC6B0 80045510 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* ABC6B4 80045514 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* ABC6B8 80045518 AFA5005C */ sw $a1, 0x5c($sp)
|
|
/* ABC6BC 8004551C 24820074 */ addiu $v0, $a0, 0x74
|
|
/* ABC6C0 80045520 8C4F0000 */ lw $t7, ($v0)
|
|
/* ABC6C4 80045524 24850050 */ addiu $a1, $a0, 0x50
|
|
/* ABC6C8 80045528 00C08025 */ move $s0, $a2
|
|
/* ABC6CC 8004552C ACCF0000 */ sw $t7, ($a2)
|
|
/* ABC6D0 80045530 8C4E0004 */ lw $t6, 4($v0)
|
|
/* ABC6D4 80045534 00E08825 */ move $s1, $a3
|
|
/* ABC6D8 80045538 ACCE0004 */ sw $t6, 4($a2)
|
|
/* ABC6DC 8004553C 8C4F0008 */ lw $t7, 8($v0)
|
|
/* ABC6E0 80045540 ACCF0008 */ sw $t7, 8($a2)
|
|
/* ABC6E4 80045544 AFA5002C */ sw $a1, 0x2c($sp)
|
|
/* ABC6E8 80045548 AFA40058 */ sw $a0, 0x58($sp)
|
|
/* ABC6EC 8004554C AFA00034 */ sw $zero, 0x34($sp)
|
|
/* ABC6F0 80045550 0C010F46 */ jal func_80043D18
|
|
/* ABC6F4 80045554 AFA20028 */ sw $v0, 0x28($sp)
|
|
/* ABC6F8 80045558 8FA30034 */ lw $v1, 0x34($sp)
|
|
/* ABC6FC 8004555C 10400067 */ beqz $v0, .L800456FC
|
|
/* ABC700 80045560 AFA2003C */ sw $v0, 0x3c($sp)
|
|
/* ABC704 80045564 8FB8002C */ lw $t8, 0x2c($sp)
|
|
/* ABC708 80045568 2605000C */ addiu $a1, $s0, 0xc
|
|
/* ABC70C 8004556C 2604001C */ addiu $a0, $s0, 0x1c
|
|
/* ABC710 80045570 8F080000 */ lw $t0, ($t8)
|
|
/* ABC714 80045574 AE280000 */ sw $t0, ($s1)
|
|
/* ABC718 80045578 8F190004 */ lw $t9, 4($t8)
|
|
/* ABC71C 8004557C AE390004 */ sw $t9, 4($s1)
|
|
/* ABC720 80045580 8F080008 */ lw $t0, 8($t8)
|
|
/* ABC724 80045584 AE280008 */ sw $t0, 8($s1)
|
|
/* ABC728 80045588 0C01F0FD */ jal func_8007C3F4
|
|
/* ABC72C 8004558C AFA50024 */ sw $a1, 0x24($sp)
|
|
/* ABC730 80045590 86090020 */ lh $t1, 0x20($s0)
|
|
/* ABC734 80045594 8FAA005C */ lw $t2, 0x5c($sp)
|
|
/* ABC738 80045598 02203025 */ move $a2, $s1
|
|
/* ABC73C 8004559C 29212EE1 */ slti $at, $t1, 0x2ee1
|
|
/* ABC740 800455A0 54200004 */ bnezl $at, .L800455B4
|
|
/* ABC744 800455A4 8FA40058 */ lw $a0, 0x58($sp)
|
|
/* ABC748 800455A8 854B0006 */ lh $t3, 6($t2)
|
|
/* ABC74C 800455AC A60B0022 */ sh $t3, 0x22($s0)
|
|
/* ABC750 800455B0 8FA40058 */ lw $a0, 0x58($sp)
|
|
.L800455B4:
|
|
/* ABC754 800455B4 0C010F46 */ jal func_80043D18
|
|
/* ABC758 800455B8 8FA50028 */ lw $a1, 0x28($sp)
|
|
/* ABC75C 800455BC 14400023 */ bnez $v0, .L8004564C
|
|
/* ABC760 800455C0 AFA20038 */ sw $v0, 0x38($sp)
|
|
/* ABC764 800455C4 87AC006A */ lh $t4, 0x6a($sp)
|
|
/* ABC768 800455C8 8FAE002C */ lw $t6, 0x2c($sp)
|
|
/* ABC76C 800455CC 318D0001 */ andi $t5, $t4, 1
|
|
/* ABC770 800455D0 11A0001C */ beqz $t5, .L80045644
|
|
/* ABC774 800455D4 00000000 */ nop
|
|
/* ABC778 800455D8 8DD80000 */ lw $t8, ($t6)
|
|
/* ABC77C 800455DC 27A50040 */ addiu $a1, $sp, 0x40
|
|
/* ABC780 800455E0 02203025 */ move $a2, $s1
|
|
/* ABC784 800455E4 AE380000 */ sw $t8, ($s1)
|
|
/* ABC788 800455E8 8DCF0004 */ lw $t7, 4($t6)
|
|
/* ABC78C 800455EC AE2F0004 */ sw $t7, 4($s1)
|
|
/* ABC790 800455F0 8DD80008 */ lw $t8, 8($t6)
|
|
/* ABC794 800455F4 AE380008 */ sw $t8, 8($s1)
|
|
/* ABC798 800455F8 8FB90058 */ lw $t9, 0x58($sp)
|
|
/* ABC79C 800455FC 8F29005C */ lw $t1, 0x5c($t9)
|
|
/* ABC7A0 80045600 ACA90000 */ sw $t1, ($a1)
|
|
/* ABC7A4 80045604 8F280060 */ lw $t0, 0x60($t9)
|
|
/* ABC7A8 80045608 ACA80004 */ sw $t0, 4($a1)
|
|
/* ABC7AC 8004560C 8F290064 */ lw $t1, 0x64($t9)
|
|
/* ABC7B0 80045610 ACA90008 */ sw $t1, 8($a1)
|
|
/* ABC7B4 80045614 0C010F46 */ jal func_80043D18
|
|
/* ABC7B8 80045618 8FA40058 */ lw $a0, 0x58($sp)
|
|
/* ABC7BC 8004561C 54400004 */ bnezl $v0, .L80045630
|
|
/* ABC7C0 80045620 8E2A0018 */ lw $t2, 0x18($s1)
|
|
/* ABC7C4 80045624 10000036 */ b .L80045700
|
|
/* ABC7C8 80045628 24020003 */ li $v0, 3
|
|
/* ABC7CC 8004562C 8E2A0018 */ lw $t2, 0x18($s1)
|
|
.L80045630:
|
|
/* ABC7D0 80045630 8E0B0018 */ lw $t3, 0x18($s0)
|
|
/* ABC7D4 80045634 554B000C */ bnel $t2, $t3, .L80045668
|
|
/* ABC7D8 80045638 2630000C */ addiu $s0, $s1, 0xc
|
|
/* ABC7DC 8004563C 10000030 */ b .L80045700
|
|
/* ABC7E0 80045640 24020003 */ li $v0, 3
|
|
.L80045644:
|
|
/* ABC7E4 80045644 1000002E */ b .L80045700
|
|
/* ABC7E8 80045648 24020003 */ li $v0, 3
|
|
.L8004564C:
|
|
/* ABC7EC 8004564C 8E2C0018 */ lw $t4, 0x18($s1)
|
|
/* ABC7F0 80045650 8E0D0018 */ lw $t5, 0x18($s0)
|
|
/* ABC7F4 80045654 558D0004 */ bnel $t4, $t5, .L80045668
|
|
/* ABC7F8 80045658 2630000C */ addiu $s0, $s1, 0xc
|
|
/* ABC7FC 8004565C 10000028 */ b .L80045700
|
|
/* ABC800 80045660 24020003 */ li $v0, 3
|
|
/* ABC804 80045664 2630000C */ addiu $s0, $s1, 0xc
|
|
.L80045668:
|
|
/* ABC808 80045668 02002825 */ move $a1, $s0
|
|
/* ABC80C 8004566C 0C01F0FD */ jal func_8007C3F4
|
|
/* ABC810 80045670 2624001C */ addiu $a0, $s1, 0x1c
|
|
/* ABC814 80045674 862E0020 */ lh $t6, 0x20($s1)
|
|
/* ABC818 80045678 8FAF005C */ lw $t7, 0x5c($sp)
|
|
/* ABC81C 8004567C 02002825 */ move $a1, $s0
|
|
/* ABC820 80045680 29C12EE1 */ slti $at, $t6, 0x2ee1
|
|
/* ABC824 80045684 54200005 */ bnezl $at, .L8004569C
|
|
/* ABC828 80045688 8FA8003C */ lw $t0, 0x3c($sp)
|
|
/* ABC82C 8004568C 85F80006 */ lh $t8, 6($t7)
|
|
/* ABC830 80045690 27198001 */ addiu $t9, $t8, -0x7fff
|
|
/* ABC834 80045694 A6390022 */ sh $t9, 0x22($s1)
|
|
/* ABC838 80045698 8FA8003C */ lw $t0, 0x3c($sp)
|
|
.L8004569C:
|
|
/* ABC83C 8004569C 8FA90038 */ lw $t1, 0x38($sp)
|
|
/* ABC840 800456A0 11090003 */ beq $t0, $t1, .L800456B0
|
|
/* ABC844 800456A4 00000000 */ nop
|
|
/* ABC848 800456A8 10000014 */ b .L800456FC
|
|
/* ABC84C 800456AC 24030003 */ li $v1, 3
|
|
.L800456B0:
|
|
/* ABC850 800456B0 0C032BFB */ jal Math3D_DotProduct
|
|
/* ABC854 800456B4 8FA40024 */ lw $a0, 0x24($sp)
|
|
/* ABC858 800456B8 3C01BF00 */ li $at, 0xBF000000 # 0.000000
|
|
/* ABC85C 800456BC 44812000 */ mtc1 $at, $f4
|
|
/* ABC860 800456C0 3C013F00 */ li $at, 0x3F000000 # 0.000000
|
|
/* ABC864 800456C4 4604003C */ c.lt.s $f0, $f4
|
|
/* ABC868 800456C8 00000000 */ nop
|
|
/* ABC86C 800456CC 45020004 */ bc1fl .L800456E0
|
|
/* ABC870 800456D0 44813000 */ mtc1 $at, $f6
|
|
/* ABC874 800456D4 10000009 */ b .L800456FC
|
|
/* ABC878 800456D8 24030006 */ li $v1, 6
|
|
/* ABC87C 800456DC 44813000 */ mtc1 $at, $f6
|
|
.L800456E0:
|
|
/* ABC880 800456E0 24030002 */ li $v1, 2
|
|
/* ABC884 800456E4 4600303C */ c.lt.s $f6, $f0
|
|
/* ABC888 800456E8 00000000 */ nop
|
|
/* ABC88C 800456EC 45000003 */ bc1f .L800456FC
|
|
/* ABC890 800456F0 00000000 */ nop
|
|
/* ABC894 800456F4 10000001 */ b .L800456FC
|
|
/* ABC898 800456F8 24030003 */ li $v1, 3
|
|
.L800456FC:
|
|
/* ABC89C 800456FC 00601025 */ move $v0, $v1
|
|
.L80045700:
|
|
/* ABC8A0 80045700 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* ABC8A4 80045704 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* ABC8A8 80045708 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* ABC8AC 8004570C 03E00008 */ jr $ra
|
|
/* ABC8B0 80045710 27BD0058 */ addiu $sp, $sp, 0x58
|
|
|