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

123 lines
5.7 KiB
ArmAsm

glabel func_8003A95C
/* AB1AFC 8003A95C 27BDFFB8 */ addiu $sp, $sp, -0x48
/* AB1B00 8003A960 AFBF0044 */ sw $ra, 0x44($sp)
/* AB1B04 8003A964 AFBE0040 */ sw $fp, 0x40($sp)
/* AB1B08 8003A968 AFB7003C */ sw $s7, 0x3c($sp)
/* AB1B0C 8003A96C AFB60038 */ sw $s6, 0x38($sp)
/* AB1B10 8003A970 AFB50034 */ sw $s5, 0x34($sp)
/* AB1B14 8003A974 AFB40030 */ sw $s4, 0x30($sp)
/* AB1B18 8003A978 AFB3002C */ sw $s3, 0x2c($sp)
/* AB1B1C 8003A97C AFB20028 */ sw $s2, 0x28($sp)
/* AB1B20 8003A980 AFB10024 */ sw $s1, 0x24($sp)
/* AB1B24 8003A984 AFB00020 */ sw $s0, 0x20($sp)
/* AB1B28 8003A988 F7B40018 */ sdc1 $f20, 0x18($sp)
/* AB1B2C 8003A98C AFA5004C */ sw $a1, 0x4c($sp)
/* AB1B30 8003A990 8CC20000 */ lw $v0, ($a2)
/* AB1B34 8003A994 30BE0007 */ andi $fp, $a1, 7
/* AB1B38 8003A998 00808825 */ move $s1, $a0
/* AB1B3C 8003A99C 8C480018 */ lw $t0, 0x18($v0)
/* AB1B40 8003A9A0 00C09825 */ move $s3, $a2
/* AB1B44 8003A9A4 00E0A025 */ move $s4, $a3
/* AB1B48 8003A9A8 001EF340 */ sll $fp, $fp, 0xd
/* AB1B4C 8003A9AC C7B40058 */ lwc1 $f20, 0x58($sp)
/* AB1B50 8003A9B0 3415FFFF */ li $s5, 65535
/* AB1B54 8003A9B4 24160006 */ li $s6, 6
/* AB1B58 8003A9B8 8C520010 */ lw $s2, 0x10($v0)
/* AB1B5C 8003A9BC 0100B825 */ move $s7, $t0
.L8003A9C0:
/* AB1B60 8003A9C0 86220000 */ lh $v0, ($s1)
/* AB1B64 8003A9C4 00021900 */ sll $v1, $v0, 4
/* AB1B68 8003A9C8 01037021 */ addu $t6, $t0, $v1
/* AB1B6C 8003A9CC 95CF0002 */ lhu $t7, 2($t6)
/* AB1B70 8003A9D0 00778021 */ addu $s0, $v1, $s7
/* AB1B74 8003A9D4 01FEC024 */ and $t8, $t7, $fp
/* AB1B78 8003A9D8 53000009 */ beql $t8, $zero, .L8003AA00
/* AB1B7C 8003A9DC 960A0002 */ lhu $t2, 2($s0)
/* AB1B80 8003A9E0 96220002 */ lhu $v0, 2($s1)
/* AB1B84 8003A9E4 52A20043 */ beql $s5, $v0, .L8003AAF4
/* AB1B88 8003A9E8 00001025 */ move $v0, $zero
/* AB1B8C 8003A9EC 8E790048 */ lw $t9, 0x48($s3)
/* AB1B90 8003A9F0 00024880 */ sll $t1, $v0, 2
/* AB1B94 8003A9F4 1000FFF2 */ b .L8003A9C0
/* AB1B98 8003A9F8 03298821 */ addu $s1, $t9, $t1
/* AB1B9C 8003A9FC 960A0002 */ lhu $t2, 2($s0)
.L8003AA00:
/* AB1BA0 8003AA00 C6840004 */ lwc1 $f4, 4($s4)
/* AB1BA4 8003AA04 02002025 */ move $a0, $s0
/* AB1BA8 8003AA08 314B1FFF */ andi $t3, $t2, 0x1fff
/* AB1BAC 8003AA0C 01760019 */ multu $t3, $s6
/* AB1BB0 8003AA10 46142000 */ add.s $f0, $f4, $f20
/* AB1BB4 8003AA14 02402825 */ move $a1, $s2
/* AB1BB8 8003AA18 00006012 */ mflo $t4
/* AB1BBC 8003AA1C 024C6821 */ addu $t5, $s2, $t4
/* AB1BC0 8003AA20 85AE0002 */ lh $t6, 2($t5)
/* AB1BC4 8003AA24 448E3000 */ mtc1 $t6, $f6
/* AB1BC8 8003AA28 00000000 */ nop
/* AB1BCC 8003AA2C 46803220 */ cvt.s.w $f8, $f6
/* AB1BD0 8003AA30 4608003C */ c.lt.s $f0, $f8
/* AB1BD4 8003AA34 00000000 */ nop
/* AB1BD8 8003AA38 4502001C */ bc1fl .L8003AAAC
/* AB1BDC 8003AA3C 4407A000 */ mfc1 $a3, $f20
/* AB1BE0 8003AA40 960F0004 */ lhu $t7, 4($s0)
/* AB1BE4 8003AA44 31F81FFF */ andi $t8, $t7, 0x1fff
/* AB1BE8 8003AA48 03160019 */ multu $t8, $s6
/* AB1BEC 8003AA4C 0000C812 */ mflo $t9
/* AB1BF0 8003AA50 02594821 */ addu $t1, $s2, $t9
/* AB1BF4 8003AA54 852A0002 */ lh $t2, 2($t1)
/* AB1BF8 8003AA58 448A5000 */ mtc1 $t2, $f10
/* AB1BFC 8003AA5C 00000000 */ nop
/* AB1C00 8003AA60 46805420 */ cvt.s.w $f16, $f10
/* AB1C04 8003AA64 4610003C */ c.lt.s $f0, $f16
/* AB1C08 8003AA68 00000000 */ nop
/* AB1C0C 8003AA6C 4502000F */ bc1fl .L8003AAAC
/* AB1C10 8003AA70 4407A000 */ mfc1 $a3, $f20
/* AB1C14 8003AA74 960B0006 */ lhu $t3, 6($s0)
/* AB1C18 8003AA78 000B6080 */ sll $t4, $t3, 2
/* AB1C1C 8003AA7C 018B6023 */ subu $t4, $t4, $t3
/* AB1C20 8003AA80 000C6040 */ sll $t4, $t4, 1
/* AB1C24 8003AA84 024C6821 */ addu $t5, $s2, $t4
/* AB1C28 8003AA88 85AE0002 */ lh $t6, 2($t5)
/* AB1C2C 8003AA8C 448E9000 */ mtc1 $t6, $f18
/* AB1C30 8003AA90 00000000 */ nop
/* AB1C34 8003AA94 46809120 */ cvt.s.w $f4, $f18
/* AB1C38 8003AA98 4604003C */ c.lt.s $f0, $f4
/* AB1C3C 8003AA9C 00000000 */ nop
/* AB1C40 8003AAA0 45030014 */ bc1tl .L8003AAF4
/* AB1C44 8003AAA4 00001025 */ move $v0, $zero
/* AB1C48 8003AAA8 4407A000 */ mfc1 $a3, $f20
.L8003AAAC:
/* AB1C4C 8003AAAC 0C00E4DF */ jal func_8003937C
/* AB1C50 8003AAB0 02803025 */ move $a2, $s4
/* AB1C54 8003AAB4 50400006 */ beql $v0, $zero, .L8003AAD0
/* AB1C58 8003AAB8 96220002 */ lhu $v0, 2($s1)
/* AB1C5C 8003AABC 8FAF005C */ lw $t7, 0x5c($sp)
/* AB1C60 8003AAC0 24020001 */ li $v0, 1
/* AB1C64 8003AAC4 1000000B */ b .L8003AAF4
/* AB1C68 8003AAC8 ADF00000 */ sw $s0, ($t7)
/* AB1C6C 8003AACC 96220002 */ lhu $v0, 2($s1)
.L8003AAD0:
/* AB1C70 8003AAD0 52A20008 */ beql $s5, $v0, .L8003AAF4
/* AB1C74 8003AAD4 00001025 */ move $v0, $zero
/* AB1C78 8003AAD8 8E690000 */ lw $t1, ($s3)
/* AB1C7C 8003AADC 8E780048 */ lw $t8, 0x48($s3)
/* AB1C80 8003AAE0 0002C880 */ sll $t9, $v0, 2
/* AB1C84 8003AAE4 8D280018 */ lw $t0, 0x18($t1)
/* AB1C88 8003AAE8 1000FFB5 */ b .L8003A9C0
/* AB1C8C 8003AAEC 03198821 */ addu $s1, $t8, $t9
/* AB1C90 8003AAF0 00001025 */ move $v0, $zero
.L8003AAF4:
/* AB1C94 8003AAF4 8FBF0044 */ lw $ra, 0x44($sp)
/* AB1C98 8003AAF8 D7B40018 */ ldc1 $f20, 0x18($sp)
/* AB1C9C 8003AAFC 8FB00020 */ lw $s0, 0x20($sp)
/* AB1CA0 8003AB00 8FB10024 */ lw $s1, 0x24($sp)
/* AB1CA4 8003AB04 8FB20028 */ lw $s2, 0x28($sp)
/* AB1CA8 8003AB08 8FB3002C */ lw $s3, 0x2c($sp)
/* AB1CAC 8003AB0C 8FB40030 */ lw $s4, 0x30($sp)
/* AB1CB0 8003AB10 8FB50034 */ lw $s5, 0x34($sp)
/* AB1CB4 8003AB14 8FB60038 */ lw $s6, 0x38($sp)
/* AB1CB8 8003AB18 8FB7003C */ lw $s7, 0x3c($sp)
/* AB1CBC 8003AB1C 8FBE0040 */ lw $fp, 0x40($sp)
/* AB1CC0 8003AB20 03E00008 */ jr $ra
/* AB1CC4 8003AB24 27BD0048 */ addiu $sp, $sp, 0x48