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

138 lines
6.2 KiB
ArmAsm

.rdata
glabel D_80139060
.asciz "\x1B[43;30mcamera: foward check: too many layer!\n\x1B[m"
.balign 4
.late_rodata
glabel D_80139DB4
.float 0.00003051851 # (1.0f / 32767.0f)
.text
glabel func_80044568
/* ABB708 80044568 27BDFF90 */ addiu $sp, $sp, -0x70
/* ABB70C 8004456C F7BC0030 */ sdc1 $f28, 0x30($sp)
/* ABB710 80044570 3C01C6FA */ li $at, 0xC6FA0000 # 0.000000
/* ABB714 80044574 4481E000 */ mtc1 $at, $f28
/* ABB718 80044578 F7BA0028 */ sdc1 $f26, 0x28($sp)
/* ABB71C 8004457C 3C014120 */ li $at, 0x41200000 # 0.000000
/* ABB720 80044580 AFBF005C */ sw $ra, 0x5c($sp)
/* ABB724 80044584 AFB70058 */ sw $s7, 0x58($sp)
/* ABB728 80044588 AFB60054 */ sw $s6, 0x54($sp)
/* ABB72C 8004458C AFB50050 */ sw $s5, 0x50($sp)
/* ABB730 80044590 AFB4004C */ sw $s4, 0x4c($sp)
/* ABB734 80044594 AFB30048 */ sw $s3, 0x48($sp)
/* ABB738 80044598 AFB20044 */ sw $s2, 0x44($sp)
/* ABB73C 8004459C AFB10040 */ sw $s1, 0x40($sp)
/* ABB740 800445A0 AFB0003C */ sw $s0, 0x3c($sp)
/* ABB744 800445A4 F7B80020 */ sdc1 $f24, 0x20($sp)
/* ABB748 800445A8 F7B60018 */ sdc1 $f22, 0x18($sp)
/* ABB74C 800445AC F7B40010 */ sdc1 $f20, 0x10($sp)
/* ABB750 800445B0 4481D000 */ mtc1 $at, $f26
/* ABB754 800445B4 8C90008C */ lw $s0, 0x8c($a0)
/* ABB758 800445B8 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* ABB75C 800445BC 4481C000 */ mtc1 $at, $f24
/* ABB760 800445C0 3C018014 */ lui $at, %hi(D_80139DB4)
/* ABB764 800445C4 00E08825 */ move $s1, $a3
/* ABB768 800445C8 00C09025 */ move $s2, $a2
/* ABB76C 800445CC 0080A025 */ move $s4, $a0
/* ABB770 800445D0 00A0B825 */ move $s7, $a1
/* ABB774 800445D4 C4369DB4 */ lwc1 $f22, %lo(D_80139DB4)($at)
/* ABB778 800445D8 24130003 */ li $s3, 3
/* ABB77C 800445DC 27B5006C */ addiu $s5, $sp, 0x6c
/* ABB780 800445E0 24160001 */ li $s6, 1
/* ABB784 800445E4 261007C0 */ addiu $s0, $s0, 0x7c0
/* ABB788 800445E8 02002025 */ move $a0, $s0
.L800445EC:
/* ABB78C 800445EC 02A02825 */ move $a1, $s5
/* ABB790 800445F0 02203025 */ move $a2, $s1
/* ABB794 800445F4 0C00F329 */ jal func_8003CCA4
/* ABB798 800445F8 02403825 */ move $a3, $s2
/* ABB79C 800445FC 461C0032 */ c.eq.s $f0, $f28
/* ABB7A0 80044600 46000506 */ mov.s $f20, $f0
/* ABB7A4 80044604 8FAE006C */ lw $t6, 0x6c($sp)
/* ABB7A8 80044608 02002025 */ move $a0, $s0
/* ABB7AC 8004460C 4501000F */ bc1t .L8004464C
/* ABB7B0 80044610 8FA5006C */ lw $a1, 0x6c($sp)
/* ABB7B4 80044614 C6840104 */ lwc1 $f4, 0x104($s4)
/* ABB7B8 80044618 4600203C */ c.lt.s $f4, $f0
/* ABB7BC 8004461C 00000000 */ nop
/* ABB7C0 80044620 45000012 */ bc1f .L8004466C
/* ABB7C4 80044624 00000000 */ nop
/* ABB7C8 80044628 85CF000A */ lh $t7, 0xa($t6)
/* ABB7CC 8004462C 448F3000 */ mtc1 $t7, $f6
/* ABB7D0 80044630 00000000 */ nop
/* ABB7D4 80044634 46803220 */ cvt.s.w $f8, $f6
/* ABB7D8 80044638 46164282 */ mul.s $f10, $f8, $f22
/* ABB7DC 8004463C 460AC03C */ c.lt.s $f24, $f10
/* ABB7E0 80044640 00000000 */ nop
/* ABB7E4 80044644 45010009 */ bc1t .L8004466C
/* ABB7E8 80044648 00000000 */ nop
.L8004464C:
/* ABB7EC 8004464C 44800000 */ mtc1 $zero, $f0
/* ABB7F0 80044650 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ABB7F4 80044654 44818000 */ mtc1 $at, $f16
/* ABB7F8 80044658 4600E506 */ mov.s $f20, $f28
/* ABB7FC 8004465C E6E00000 */ swc1 $f0, ($s7)
/* ABB800 80044660 E6E00008 */ swc1 $f0, 8($s7)
/* ABB804 80044664 10000021 */ b .L800446EC
/* ABB808 80044668 E6F00004 */ swc1 $f16, 4($s7)
.L8004466C:
/* ABB80C 8004466C 0C010753 */ jal func_80041D4C
/* ABB810 80044670 8E260000 */ lw $a2, ($s1)
/* ABB814 80044674 54560006 */ bnel $v0, $s6, .L80044690
/* ABB818 80044678 8FB8006C */ lw $t8, 0x6c($sp)
/* ABB81C 8004467C 461AA481 */ sub.s $f18, $f20, $f26
/* ABB820 80044680 2673FFFF */ addiu $s3, $s3, -1
/* ABB824 80044684 10000017 */ b .L800446E4
/* ABB828 80044688 E6520004 */ swc1 $f18, 4($s2)
/* ABB82C 8004468C 8FB8006C */ lw $t8, 0x6c($sp)
.L80044690:
/* ABB830 80044690 87190008 */ lh $t9, 8($t8)
/* ABB834 80044694 44992000 */ mtc1 $t9, $f4
/* ABB838 80044698 00000000 */ nop
/* ABB83C 8004469C 468021A0 */ cvt.s.w $f6, $f4
/* ABB840 800446A0 46163202 */ mul.s $f8, $f6, $f22
/* ABB844 800446A4 E6E80000 */ swc1 $f8, ($s7)
/* ABB848 800446A8 8FA8006C */ lw $t0, 0x6c($sp)
/* ABB84C 800446AC 8509000A */ lh $t1, 0xa($t0)
/* ABB850 800446B0 44895000 */ mtc1 $t1, $f10
/* ABB854 800446B4 00000000 */ nop
/* ABB858 800446B8 46805420 */ cvt.s.w $f16, $f10
/* ABB85C 800446BC 46168482 */ mul.s $f18, $f16, $f22
/* ABB860 800446C0 E6F20004 */ swc1 $f18, 4($s7)
/* ABB864 800446C4 8FAA006C */ lw $t2, 0x6c($sp)
/* ABB868 800446C8 854B000C */ lh $t3, 0xc($t2)
/* ABB86C 800446CC 448B2000 */ mtc1 $t3, $f4
/* ABB870 800446D0 00000000 */ nop
/* ABB874 800446D4 468021A0 */ cvt.s.w $f6, $f4
/* ABB878 800446D8 46163202 */ mul.s $f8, $f6, $f22
/* ABB87C 800446DC 10000003 */ b .L800446EC
/* ABB880 800446E0 E6E80008 */ swc1 $f8, 8($s7)
.L800446E4:
/* ABB884 800446E4 5660FFC1 */ bnezl $s3, .L800445EC
/* ABB888 800446E8 02002025 */ move $a0, $s0
.L800446EC:
/* ABB88C 800446EC 16600003 */ bnez $s3, .L800446FC
/* ABB890 800446F0 3C048014 */ lui $a0, %hi(D_80139060) # $a0, 0x8014
/* ABB894 800446F4 0C00084C */ jal osSyncPrintf
/* ABB898 800446F8 24849060 */ addiu $a0, %lo(D_80139060) # addiu $a0, $a0, -0x6fa0
.L800446FC:
/* ABB89C 800446FC 8FBF005C */ lw $ra, 0x5c($sp)
/* ABB8A0 80044700 4600A006 */ mov.s $f0, $f20
/* ABB8A4 80044704 D7B40010 */ ldc1 $f20, 0x10($sp)
/* ABB8A8 80044708 D7B60018 */ ldc1 $f22, 0x18($sp)
/* ABB8AC 8004470C D7B80020 */ ldc1 $f24, 0x20($sp)
/* ABB8B0 80044710 D7BA0028 */ ldc1 $f26, 0x28($sp)
/* ABB8B4 80044714 D7BC0030 */ ldc1 $f28, 0x30($sp)
/* ABB8B8 80044718 8FB0003C */ lw $s0, 0x3c($sp)
/* ABB8BC 8004471C 8FB10040 */ lw $s1, 0x40($sp)
/* ABB8C0 80044720 8FB20044 */ lw $s2, 0x44($sp)
/* ABB8C4 80044724 8FB30048 */ lw $s3, 0x48($sp)
/* ABB8C8 80044728 8FB4004C */ lw $s4, 0x4c($sp)
/* ABB8CC 8004472C 8FB50050 */ lw $s5, 0x50($sp)
/* ABB8D0 80044730 8FB60054 */ lw $s6, 0x54($sp)
/* ABB8D4 80044734 8FB70058 */ lw $s7, 0x58($sp)
/* ABB8D8 80044738 03E00008 */ jr $ra
/* ABB8DC 8004473C 27BD0070 */ addiu $sp, $sp, 0x70