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

155 lines
7.2 KiB
ArmAsm

glabel func_800396F0
/* AB0890 800396F0 27BDFF78 */ addiu $sp, $sp, -0x88
/* AB0894 800396F4 AFBF0054 */ sw $ra, 0x54($sp)
/* AB0898 800396F8 AFBE0050 */ sw $fp, 0x50($sp)
/* AB089C 800396FC AFB7004C */ sw $s7, 0x4c($sp)
/* AB08A0 80039700 AFB60048 */ sw $s6, 0x48($sp)
/* AB08A4 80039704 AFB50044 */ sw $s5, 0x44($sp)
/* AB08A8 80039708 AFB40040 */ sw $s4, 0x40($sp)
/* AB08AC 8003970C AFB3003C */ sw $s3, 0x3c($sp)
/* AB08B0 80039710 AFB20038 */ sw $s2, 0x38($sp)
/* AB08B4 80039714 AFB10034 */ sw $s1, 0x34($sp)
/* AB08B8 80039718 AFB00030 */ sw $s0, 0x30($sp)
/* AB08BC 8003971C F7B60028 */ sdc1 $f22, 0x28($sp)
/* AB08C0 80039720 F7B40020 */ sdc1 $f20, 0x20($sp)
/* AB08C4 80039724 AFA5008C */ sw $a1, 0x8c($sp)
/* AB08C8 80039728 AFA70094 */ sw $a3, 0x94($sp)
/* AB08CC 8003972C 94C20000 */ lhu $v0, ($a2)
/* AB08D0 80039730 C7AC009C */ lwc1 $f12, 0x9c($sp)
/* AB08D4 80039734 3415FFFF */ li $s5, 65535
/* AB08D8 80039738 30B0FFFF */ andi $s0, $a1, 0xffff
/* AB08DC 8003973C 00809825 */ move $s3, $a0
/* AB08E0 80039740 16A20003 */ bne $s5, $v0, .L80039750
/* AB08E4 80039744 46006506 */ mov.s $f20, $f12
/* AB08E8 80039748 1000006A */ b .L800398F4
/* AB08EC 8003974C 46006006 */ mov.s $f0, $f12
.L80039750:
/* AB08F0 80039750 8E650048 */ lw $a1, 0x48($s3)
/* AB08F4 80039754 8E660000 */ lw $a2, ($s3)
/* AB08F8 80039758 00027080 */ sll $t6, $v0, 2
/* AB08FC 8003975C 32090007 */ andi $t1, $s0, 7
/* AB0900 80039760 00094B40 */ sll $t1, $t1, 0xd
/* AB0904 80039764 C7B600A0 */ lwc1 $f22, 0xa0($sp)
/* AB0908 80039768 27BE0078 */ addiu $fp, $sp, 0x78
/* AB090C 8003976C 24170006 */ li $s7, 6
/* AB0910 80039770 8FB600A4 */ lw $s6, 0xa4($sp)
/* AB0914 80039774 24140006 */ li $s4, 6
/* AB0918 80039778 8FB20098 */ lw $s2, 0x98($sp)
/* AB091C 8003977C 00AE8821 */ addu $s1, $a1, $t6
/* AB0920 80039780 8CC80018 */ lw $t0, 0x18($a2)
.L80039784:
/* AB0924 80039784 86220000 */ lh $v0, ($s1)
/* AB0928 80039788 32D80001 */ andi $t8, $s6, 1
/* AB092C 8003978C 00028100 */ sll $s0, $v0, 4
/* AB0930 80039790 01101821 */ addu $v1, $t0, $s0
/* AB0934 80039794 94640002 */ lhu $a0, 2($v1)
/* AB0938 80039798 00897824 */ and $t7, $a0, $t1
/* AB093C 8003979C 55E00007 */ bnezl $t7, .L800397BC
/* AB0940 800397A0 96220002 */ lhu $v0, 2($s1)
/* AB0944 800397A4 13000009 */ beqz $t8, .L800397CC
/* AB0948 800397A8 308B1FFF */ andi $t3, $a0, 0x1fff
/* AB094C 800397AC 8479000A */ lh $t9, 0xa($v1)
/* AB0950 800397B0 07210006 */ bgez $t9, .L800397CC
/* AB0954 800397B4 00000000 */ nop
/* AB0958 800397B8 96220002 */ lhu $v0, 2($s1)
.L800397BC:
/* AB095C 800397BC 12A2004C */ beq $s5, $v0, .L800398F0
/* AB0960 800397C0 00025080 */ sll $t2, $v0, 2
/* AB0964 800397C4 1000FFEF */ b .L80039784
/* AB0968 800397C8 00AA8821 */ addu $s1, $a1, $t2
.L800397CC:
/* AB096C 800397CC 01740019 */ multu $t3, $s4
/* AB0970 800397D0 8CC50010 */ lw $a1, 0x10($a2)
/* AB0974 800397D4 C6400004 */ lwc1 $f0, 4($s2)
/* AB0978 800397D8 01102021 */ addu $a0, $t0, $s0
/* AB097C 800397DC 00006012 */ mflo $t4
/* AB0980 800397E0 00AC6821 */ addu $t5, $a1, $t4
/* AB0984 800397E4 85AE0002 */ lh $t6, 2($t5)
/* AB0988 800397E8 448E2000 */ mtc1 $t6, $f4
/* AB098C 800397EC 00000000 */ nop
/* AB0990 800397F0 468021A0 */ cvt.s.w $f6, $f4
/* AB0994 800397F4 4606003C */ c.lt.s $f0, $f6
/* AB0998 800397F8 00000000 */ nop
/* AB099C 800397FC 4502001B */ bc1fl .L8003986C
/* AB09A0 80039800 8E460000 */ lw $a2, ($s2)
/* AB09A4 80039804 946F0004 */ lhu $t7, 4($v1)
/* AB09A8 80039808 31F81FFF */ andi $t8, $t7, 0x1fff
/* AB09AC 8003980C 03140019 */ multu $t8, $s4
/* AB09B0 80039810 0000C812 */ mflo $t9
/* AB09B4 80039814 00B95021 */ addu $t2, $a1, $t9
/* AB09B8 80039818 854B0002 */ lh $t3, 2($t2)
/* AB09BC 8003981C 448B4000 */ mtc1 $t3, $f8
/* AB09C0 80039820 00000000 */ nop
/* AB09C4 80039824 468042A0 */ cvt.s.w $f10, $f8
/* AB09C8 80039828 460A003C */ c.lt.s $f0, $f10
/* AB09CC 8003982C 00000000 */ nop
/* AB09D0 80039830 4502000E */ bc1fl .L8003986C
/* AB09D4 80039834 8E460000 */ lw $a2, ($s2)
/* AB09D8 80039838 946C0006 */ lhu $t4, 6($v1)
/* AB09DC 8003983C 01970019 */ multu $t4, $s7
/* AB09E0 80039840 00006812 */ mflo $t5
/* AB09E4 80039844 00AD7021 */ addu $t6, $a1, $t5
/* AB09E8 80039848 85CF0002 */ lh $t7, 2($t6)
/* AB09EC 8003984C 448F8000 */ mtc1 $t7, $f16
/* AB09F0 80039850 00000000 */ nop
/* AB09F4 80039854 468084A0 */ cvt.s.w $f18, $f16
/* AB09F8 80039858 4612003C */ c.lt.s $f0, $f18
/* AB09FC 8003985C 00000000 */ nop
/* AB0A00 80039860 45030024 */ bc1tl .L800398F4
/* AB0A04 80039864 4600A006 */ mov.s $f0, $f20
/* AB0A08 80039868 8E460000 */ lw $a2, ($s2)
.L8003986C:
/* AB0A0C 8003986C 8E470008 */ lw $a3, 8($s2)
/* AB0A10 80039870 AFA9005C */ sw $t1, 0x5c($sp)
/* AB0A14 80039874 E7B60014 */ swc1 $f22, 0x14($sp)
/* AB0A18 80039878 0C00E39E */ jal func_80038E78
/* AB0A1C 8003987C AFBE0010 */ sw $fp, 0x10($sp)
/* AB0A20 80039880 24010001 */ li $at, 1
/* AB0A24 80039884 14410011 */ bne $v0, $at, .L800398CC
/* AB0A28 80039888 8FA9005C */ lw $t1, 0x5c($sp)
/* AB0A2C 8003988C C7A40078 */ lwc1 $f4, 0x78($sp)
/* AB0A30 80039890 C6460004 */ lwc1 $f6, 4($s2)
/* AB0A34 80039894 4606203C */ c.lt.s $f4, $f6
/* AB0A38 80039898 00000000 */ nop
/* AB0A3C 8003989C 4502000C */ bc1fl .L800398D0
/* AB0A40 800398A0 96220002 */ lhu $v0, 2($s1)
/* AB0A44 800398A4 4604A03C */ c.lt.s $f20, $f4
/* AB0A48 800398A8 00000000 */ nop
/* AB0A4C 800398AC 45020008 */ bc1fl .L800398D0
/* AB0A50 800398B0 96220002 */ lhu $v0, 2($s1)
/* AB0A54 800398B4 8E780000 */ lw $t8, ($s3)
/* AB0A58 800398B8 8FAB0094 */ lw $t3, 0x94($sp)
/* AB0A5C 800398BC 46002506 */ mov.s $f20, $f4
/* AB0A60 800398C0 8F190018 */ lw $t9, 0x18($t8)
/* AB0A64 800398C4 03305021 */ addu $t2, $t9, $s0
/* AB0A68 800398C8 AD6A0000 */ sw $t2, ($t3)
.L800398CC:
/* AB0A6C 800398CC 96220002 */ lhu $v0, 2($s1)
.L800398D0:
/* AB0A70 800398D0 52A20008 */ beql $s5, $v0, .L800398F4
/* AB0A74 800398D4 4600A006 */ mov.s $f0, $f20
/* AB0A78 800398D8 8E660000 */ lw $a2, ($s3)
/* AB0A7C 800398DC 8E650048 */ lw $a1, 0x48($s3)
/* AB0A80 800398E0 00026080 */ sll $t4, $v0, 2
/* AB0A84 800398E4 8CC80018 */ lw $t0, 0x18($a2)
/* AB0A88 800398E8 1000FFA6 */ b .L80039784
/* AB0A8C 800398EC 00AC8821 */ addu $s1, $a1, $t4
.L800398F0:
/* AB0A90 800398F0 4600A006 */ mov.s $f0, $f20
.L800398F4:
/* AB0A94 800398F4 8FBF0054 */ lw $ra, 0x54($sp)
/* AB0A98 800398F8 D7B40020 */ ldc1 $f20, 0x20($sp)
/* AB0A9C 800398FC D7B60028 */ ldc1 $f22, 0x28($sp)
/* AB0AA0 80039900 8FB00030 */ lw $s0, 0x30($sp)
/* AB0AA4 80039904 8FB10034 */ lw $s1, 0x34($sp)
/* AB0AA8 80039908 8FB20038 */ lw $s2, 0x38($sp)
/* AB0AAC 8003990C 8FB3003C */ lw $s3, 0x3c($sp)
/* AB0AB0 80039910 8FB40040 */ lw $s4, 0x40($sp)
/* AB0AB4 80039914 8FB50044 */ lw $s5, 0x44($sp)
/* AB0AB8 80039918 8FB60048 */ lw $s6, 0x48($sp)
/* AB0ABC 8003991C 8FB7004C */ lw $s7, 0x4c($sp)
/* AB0AC0 80039920 8FBE0050 */ lw $fp, 0x50($sp)
/* AB0AC4 80039924 03E00008 */ jr $ra
/* AB0AC8 80039928 27BD0088 */ addiu $sp, $sp, 0x88