oot/asm/non_matchings/code/z_bgcheck/func_8004259C.s

147 lines
6.7 KiB
ArmAsm

glabel func_8004259C
/* AB973C 8004259C AFA40000 */ sw $a0, ($sp)
/* AB9740 800425A0 8CA3000C */ lw $v1, 0xc($a1)
/* AB9744 800425A4 00031A02 */ srl $v1, $v1, 8
/* AB9748 800425A8 03E00008 */ jr $ra
/* AB974C 800425AC 3062001F */ andi $v0, $v1, 0x1f
/* AB9750 800425B0 AFA40000 */ sw $a0, ($sp)
/* AB9754 800425B4 8CA20000 */ lw $v0, ($a1)
/* AB9758 800425B8 44866000 */ mtc1 $a2, $f12
/* AB975C 800425BC 44877000 */ mtc1 $a3, $f14
/* AB9760 800425C0 94430024 */ lhu $v1, 0x24($v0)
/* AB9764 800425C4 00803025 */ move $a2, $a0
/* AB9768 800425C8 3C0F8016 */ lui $t7, %hi(gSegments) # $t7, 0x8016
/* AB976C 800425CC 10600007 */ beqz $v1, .L800425EC
/* AB9770 800425D0 00000000 */ nop
/* AB9774 800425D4 8C440028 */ lw $a0, 0x28($v0)
/* AB9778 800425D8 8DEF6FA8 */ lw $t7, %lo(gSegments)($t7)
/* AB977C 800425DC 3C018000 */ lui $at, 0x8000
/* AB9780 800425E0 00817021 */ addu $t6, $a0, $at
/* AB9784 800425E4 15CF0003 */ bne $t6, $t7, .L800425F4
/* AB9788 800425E8 0003C100 */ sll $t8, $v1, 4
.L800425EC:
/* AB978C 800425EC 03E00008 */ jr $ra
/* AB9790 800425F0 00001025 */ move $v0, $zero
.L800425F4:
/* AB9794 800425F4 00981021 */ addu $v0, $a0, $t8
/* AB9798 800425F8 0082082B */ sltu $at, $a0, $v0
/* AB979C 800425FC 1020003F */ beqz $at, .L800426FC
/* AB97A0 80042600 00802825 */ move $a1, $a0
/* AB97A4 80042604 3C070001 */ li $a3, 0x00010000 # 0.000000
/* AB97A8 80042608 00E63821 */ addu $a3, $a3, $a2
/* AB97AC 8004260C 80E71CBC */ lb $a3, 0x1cbc($a3)
/* AB97B0 80042610 2406003F */ li $a2, 63
/* AB97B4 80042614 3C080008 */ li $t0, 0x00080000 # 0.000000
/* AB97B8 80042618 8CA4000C */ lw $a0, 0xc($a1)
.L8004261C:
/* AB97BC 8004261C 00041B42 */ srl $v1, $a0, 0xd
/* AB97C0 80042620 3063003F */ andi $v1, $v1, 0x3f
/* AB97C4 80042624 10670003 */ beq $v1, $a3, .L80042634
/* AB97C8 80042628 0088C824 */ and $t9, $a0, $t0
/* AB97CC 8004262C 54660030 */ bnel $v1, $a2, .L800426F0
/* AB97D0 80042630 24A50010 */ addiu $a1, $a1, 0x10
.L80042634:
/* AB97D4 80042634 5320002E */ beql $t9, $zero, .L800426F0
/* AB97D8 80042638 24A50010 */ addiu $a1, $a1, 0x10
/* AB97DC 8004263C 84A30000 */ lh $v1, ($a1)
/* AB97E0 80042640 44832000 */ mtc1 $v1, $f4
/* AB97E4 80042644 00000000 */ nop
/* AB97E8 80042648 468021A0 */ cvt.s.w $f6, $f4
/* AB97EC 8004264C 460C303C */ c.lt.s $f6, $f12
/* AB97F0 80042650 00000000 */ nop
/* AB97F4 80042654 45020026 */ bc1fl .L800426F0
/* AB97F8 80042658 24A50010 */ addiu $a1, $a1, 0x10
/* AB97FC 8004265C 84A90006 */ lh $t1, 6($a1)
/* AB9800 80042660 00695021 */ addu $t2, $v1, $t1
/* AB9804 80042664 448A4000 */ mtc1 $t2, $f8
/* AB9808 80042668 00000000 */ nop
/* AB980C 8004266C 468042A0 */ cvt.s.w $f10, $f8
/* AB9810 80042670 460A603C */ c.lt.s $f12, $f10
/* AB9814 80042674 00000000 */ nop
/* AB9818 80042678 4502001D */ bc1fl .L800426F0
/* AB981C 8004267C 24A50010 */ addiu $a1, $a1, 0x10
/* AB9820 80042680 84A30004 */ lh $v1, 4($a1)
/* AB9824 80042684 44838000 */ mtc1 $v1, $f16
/* AB9828 80042688 00000000 */ nop
/* AB982C 8004268C 468084A0 */ cvt.s.w $f18, $f16
/* AB9830 80042690 460E903C */ c.lt.s $f18, $f14
/* AB9834 80042694 00000000 */ nop
/* AB9838 80042698 45020015 */ bc1fl .L800426F0
/* AB983C 8004269C 24A50010 */ addiu $a1, $a1, 0x10
/* AB9840 800426A0 84AB0008 */ lh $t3, 8($a1)
/* AB9844 800426A4 006B6021 */ addu $t4, $v1, $t3
/* AB9848 800426A8 448C2000 */ mtc1 $t4, $f4
/* AB984C 800426AC 00000000 */ nop
/* AB9850 800426B0 468021A0 */ cvt.s.w $f6, $f4
/* AB9854 800426B4 4606703C */ c.lt.s $f14, $f6
/* AB9858 800426B8 00000000 */ nop
/* AB985C 800426BC 4502000C */ bc1fl .L800426F0
/* AB9860 800426C0 24A50010 */ addiu $a1, $a1, 0x10
/* AB9864 800426C4 8FAD0014 */ lw $t5, 0x14($sp)
/* AB9868 800426C8 24020001 */ li $v0, 1
/* AB986C 800426CC ADA50000 */ sw $a1, ($t5)
/* AB9870 800426D0 84AE0002 */ lh $t6, 2($a1)
/* AB9874 800426D4 8FAF0010 */ lw $t7, 0x10($sp)
/* AB9878 800426D8 448E4000 */ mtc1 $t6, $f8
/* AB987C 800426DC 00000000 */ nop
/* AB9880 800426E0 468042A0 */ cvt.s.w $f10, $f8
/* AB9884 800426E4 03E00008 */ jr $ra
/* AB9888 800426E8 E5EA0000 */ swc1 $f10, ($t7)
/* AB988C 800426EC 24A50010 */ addiu $a1, $a1, 0x10
.L800426F0:
/* AB9890 800426F0 00A2082B */ sltu $at, $a1, $v0
/* AB9894 800426F4 5420FFC9 */ bnezl $at, .L8004261C
/* AB9898 800426F8 8CA4000C */ lw $a0, 0xc($a1)
.L800426FC:
/* AB989C 800426FC 00001025 */ move $v0, $zero
/* AB98A0 80042700 03E00008 */ jr $ra
/* AB98A4 80042704 00000000 */ nop
/* AB98A8 80042708 27BDFFB8 */ addiu $sp, $sp, -0x48
/* AB98AC 8004270C AFBF002C */ sw $ra, 0x2c($sp)
/* AB98B0 80042710 AFA5004C */ sw $a1, 0x4c($sp)
/* AB98B4 80042714 AFA60050 */ sw $a2, 0x50($sp)
/* AB98B8 80042718 AFA70054 */ sw $a3, 0x54($sp)
/* AB98BC 8004271C AFA40048 */ sw $a0, 0x48($sp)
/* AB98C0 80042720 27A7003C */ addiu $a3, $sp, 0x3c
/* AB98C4 80042724 27A60040 */ addiu $a2, $sp, 0x40
/* AB98C8 80042728 0C00E275 */ jal func_800389D4
/* AB98CC 8004272C 27A50044 */ addiu $a1, $sp, 0x44
/* AB98D0 80042730 8FA4004C */ lw $a0, 0x4c($sp)
/* AB98D4 80042734 27A50038 */ addiu $a1, $sp, 0x38
/* AB98D8 80042738 27A60034 */ addiu $a2, $sp, 0x34
/* AB98DC 8004273C 0C00E275 */ jal func_800389D4
/* AB98E0 80042740 27A70030 */ addiu $a3, $sp, 0x30
/* AB98E4 80042744 8FAE0048 */ lw $t6, 0x48($sp)
/* AB98E8 80042748 C7A60038 */ lwc1 $f6, 0x38($sp)
/* AB98EC 8004274C C7A80034 */ lwc1 $f8, 0x34($sp)
/* AB98F0 80042750 85CF000E */ lh $t7, 0xe($t6)
/* AB98F4 80042754 C7AA0030 */ lwc1 $f10, 0x30($sp)
/* AB98F8 80042758 8FB8004C */ lw $t8, 0x4c($sp)
/* AB98FC 8004275C E7A60010 */ swc1 $f6, 0x10($sp)
/* AB9900 80042760 E7A80014 */ swc1 $f8, 0x14($sp)
/* AB9904 80042764 E7AA0018 */ swc1 $f10, 0x18($sp)
/* AB9908 80042768 8719000E */ lh $t9, 0xe($t8)
/* AB990C 8004276C 448F2000 */ mtc1 $t7, $f4
/* AB9910 80042770 8FA80050 */ lw $t0, 0x50($sp)
/* AB9914 80042774 44998000 */ mtc1 $t9, $f16
/* AB9918 80042778 46802120 */ cvt.s.w $f4, $f4
/* AB991C 8004277C 8FA90054 */ lw $t1, 0x54($sp)
/* AB9920 80042780 C7AC0044 */ lwc1 $f12, 0x44($sp)
/* AB9924 80042784 C7AE0040 */ lwc1 $f14, 0x40($sp)
/* AB9928 80042788 8FA6003C */ lw $a2, 0x3c($sp)
/* AB992C 8004278C 468084A0 */ cvt.s.w $f18, $f16
/* AB9930 80042790 44072000 */ mfc1 $a3, $f4
/* AB9934 80042794 AFA80020 */ sw $t0, 0x20($sp)
/* AB9938 80042798 AFA90024 */ sw $t1, 0x24($sp)
/* AB993C 8004279C 0C032BBA */ jal func_800CAEE8
/* AB9940 800427A0 E7B2001C */ swc1 $f18, 0x1c($sp)
/* AB9944 800427A4 8FBF002C */ lw $ra, 0x2c($sp)
/* AB9948 800427A8 27BD0048 */ addiu $sp, $sp, 0x48
/* AB994C 800427AC 03E00008 */ jr $ra
/* AB9950 800427B0 00000000 */ nop