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

164 lines
7.7 KiB
ArmAsm

glabel func_80040BE4
/* AB7D84 80040BE4 27BDFF50 */ addiu $sp, $sp, -0xb0
/* AB7D88 80040BE8 AFBF0064 */ sw $ra, 0x64($sp)
/* AB7D8C 80040BEC AFBE0060 */ sw $fp, 0x60($sp)
/* AB7D90 80040BF0 AFB7005C */ sw $s7, 0x5c($sp)
/* AB7D94 80040BF4 AFB60058 */ sw $s6, 0x58($sp)
/* AB7D98 80040BF8 AFB50054 */ sw $s5, 0x54($sp)
/* AB7D9C 80040BFC AFB40050 */ sw $s4, 0x50($sp)
/* AB7DA0 80040C00 AFB3004C */ sw $s3, 0x4c($sp)
/* AB7DA4 80040C04 AFB20048 */ sw $s2, 0x48($sp)
/* AB7DA8 80040C08 AFB10044 */ sw $s1, 0x44($sp)
/* AB7DAC 80040C0C AFB00040 */ sw $s0, 0x40($sp)
/* AB7DB0 80040C10 F7BA0038 */ sdc1 $f26, 0x38($sp)
/* AB7DB4 80040C14 F7B80030 */ sdc1 $f24, 0x30($sp)
/* AB7DB8 80040C18 F7B60028 */ sdc1 $f22, 0x28($sp)
/* AB7DBC 80040C1C F7B40020 */ sdc1 $f20, 0x20($sp)
/* AB7DC0 80040C20 AFA400B0 */ sw $a0, 0xb0($sp)
/* AB7DC4 80040C24 AFA500B4 */ sw $a1, 0xb4($sp)
/* AB7DC8 80040C28 AFA00080 */ sw $zero, 0x80($sp)
/* AB7DCC 80040C2C 94E20000 */ lhu $v0, ($a3)
/* AB7DD0 80040C30 3413FFFF */ li $s3, 65535
/* AB7DD4 80040C34 30A5FFFF */ andi $a1, $a1, 0xffff
/* AB7DD8 80040C38 16620003 */ bne $s3, $v0, .L80040C48
/* AB7DDC 80040C3C 00C09025 */ move $s2, $a2
/* AB7DE0 80040C40 1000006F */ b .L80040E00
/* AB7DE4 80040C44 00001025 */ move $v0, $zero
.L80040C48:
/* AB7DE8 80040C48 8FB800C4 */ lw $t8, 0xc4($sp)
/* AB7DEC 80040C4C 8E4E13F8 */ lw $t6, 0x13f8($s2)
/* AB7DF0 80040C50 27B60098 */ addiu $s6, $sp, 0x98
/* AB7DF4 80040C54 8F080000 */ lw $t0, ($t8)
/* AB7DF8 80040C58 3C01BF80 */ li $at, 0xBF800000 # 0.000000
/* AB7DFC 80040C5C 4481D000 */ mtc1 $at, $f26
/* AB7E00 80040C60 AEC80000 */ sw $t0, ($s6)
/* AB7E04 80040C64 8F190004 */ lw $t9, 4($t8)
/* AB7E08 80040C68 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AB7E0C 80040C6C 00027880 */ sll $t7, $v0, 2
/* AB7E10 80040C70 AED90004 */ sw $t9, 4($s6)
/* AB7E14 80040C74 8F080008 */ lw $t0, 8($t8)
/* AB7E18 80040C78 30B40007 */ andi $s4, $a1, 7
/* AB7E1C 80040C7C 4481C000 */ mtc1 $at, $f24
/* AB7E20 80040C80 AEC80008 */ sw $t0, 8($s6)
/* AB7E24 80040C84 4480B000 */ mtc1 $zero, $f22
/* AB7E28 80040C88 8FB500CC */ lw $s5, 0xcc($sp)
/* AB7E2C 80040C8C C7B400C8 */ lwc1 $f20, 0xc8($sp)
/* AB7E30 80040C90 8E4313F0 */ lw $v1, 0x13f0($s2)
/* AB7E34 80040C94 0014A340 */ sll $s4, $s4, 0xd
/* AB7E38 80040C98 27BE0088 */ addiu $fp, $sp, 0x88
/* AB7E3C 80040C9C 27B7008C */ addiu $s7, $sp, 0x8c
/* AB7E40 80040CA0 01CF8821 */ addu $s1, $t6, $t7
.L80040CA4:
/* AB7E44 80040CA4 86220000 */ lh $v0, ($s1)
/* AB7E48 80040CA8 02E02825 */ move $a1, $s7
/* AB7E4C 80040CAC 03C03025 */ move $a2, $fp
/* AB7E50 80040CB0 00024900 */ sll $t1, $v0, 4
/* AB7E54 80040CB4 00698021 */ addu $s0, $v1, $t1
/* AB7E58 80040CB8 960A0002 */ lhu $t2, 2($s0)
/* AB7E5C 80040CBC 02002025 */ move $a0, $s0
/* AB7E60 80040CC0 01545824 */ and $t3, $t2, $s4
/* AB7E64 80040CC4 11600008 */ beqz $t3, .L80040CE8
/* AB7E68 80040CC8 00000000 */ nop
/* AB7E6C 80040CCC 96220002 */ lhu $v0, 2($s1)
/* AB7E70 80040CD0 52620048 */ beql $s3, $v0, .L80040DF4
/* AB7E74 80040CD4 C7B2009C */ lwc1 $f18, 0x9c($sp)
/* AB7E78 80040CD8 8E4C13F8 */ lw $t4, 0x13f8($s2)
/* AB7E7C 80040CDC 00026880 */ sll $t5, $v0, 2
/* AB7E80 80040CE0 1000FFF0 */ b .L80040CA4
/* AB7E84 80040CE4 018D8821 */ addu $s1, $t4, $t5
.L80040CE8:
/* AB7E88 80040CE8 0C00E275 */ jal func_800389D4
/* AB7E8C 80040CEC 27A70084 */ addiu $a3, $sp, 0x84
/* AB7E90 80040CF0 860E000E */ lh $t6, 0xe($s0)
/* AB7E94 80040CF4 AFB60010 */ sw $s6, 0x10($sp)
/* AB7E98 80040CF8 C7AC008C */ lwc1 $f12, 0x8c($sp)
/* AB7E9C 80040CFC 448E2000 */ mtc1 $t6, $f4
/* AB7EA0 80040D00 C7AE0088 */ lwc1 $f14, 0x88($sp)
/* AB7EA4 80040D04 8FA60084 */ lw $a2, 0x84($sp)
/* AB7EA8 80040D08 46802120 */ cvt.s.w $f4, $f4
/* AB7EAC 80040D0C 44072000 */ mfc1 $a3, $f4
/* AB7EB0 80040D10 0C03328F */ jal Math3D_UDistPlaneToPos
/* AB7EB4 80040D14 00000000 */ nop
/* AB7EB8 80040D18 4600A03C */ c.lt.s $f20, $f0
/* AB7EBC 80040D1C 02002025 */ move $a0, $s0
/* AB7EC0 80040D20 8FA60098 */ lw $a2, 0x98($sp)
/* AB7EC4 80040D24 8FA700A0 */ lw $a3, 0xa0($sp)
/* AB7EC8 80040D28 45000008 */ bc1f .L80040D4C
/* AB7ECC 80040D2C 27B90094 */ addiu $t9, $sp, 0x94
/* AB7ED0 80040D30 96220002 */ lhu $v0, 2($s1)
/* AB7ED4 80040D34 1262002E */ beq $s3, $v0, .L80040DF0
/* AB7ED8 80040D38 0002C080 */ sll $t8, $v0, 2
/* AB7EDC 80040D3C 8E4F13F8 */ lw $t7, 0x13f8($s2)
/* AB7EE0 80040D40 8E4313F0 */ lw $v1, 0x13f0($s2)
/* AB7EE4 80040D44 1000FFD7 */ b .L80040CA4
/* AB7EE8 80040D48 01F88821 */ addu $s1, $t7, $t8
.L80040D4C:
/* AB7EEC 80040D4C 8E4513F4 */ lw $a1, 0x13f4($s2)
/* AB7EF0 80040D50 0C00E3C8 */ jal func_80038F20
/* AB7EF4 80040D54 AFB90010 */ sw $t9, 0x10($sp)
/* AB7EF8 80040D58 1040001E */ beqz $v0, .L80040DD4
/* AB7EFC 80040D5C C7A20094 */ lwc1 $f2, 0x94($sp)
/* AB7F00 80040D60 C7AC009C */ lwc1 $f12, 0x9c($sp)
/* AB7F04 80040D64 4602603C */ c.lt.s $f12, $f2
/* AB7F08 80040D68 00000000 */ nop
/* AB7F0C 80040D6C 4502001A */ bc1fl .L80040DD8
/* AB7F10 80040D70 96220002 */ lhu $v0, 2($s1)
/* AB7F14 80040D74 460C1001 */ sub.s $f0, $f2, $f12
/* AB7F18 80040D78 C7A20088 */ lwc1 $f2, 0x88($sp)
/* AB7F1C 80040D7C 4614003C */ c.lt.s $f0, $f20
/* AB7F20 80040D80 00000000 */ nop
/* AB7F24 80040D84 45020014 */ bc1fl .L80040DD8
/* AB7F28 80040D88 96220002 */ lhu $v0, 2($s1)
/* AB7F2C 80040D8C 46020182 */ mul.s $f6, $f0, $f2
/* AB7F30 80040D90 4616303E */ c.le.s $f6, $f22
/* AB7F34 80040D94 00000000 */ nop
/* AB7F38 80040D98 4502000F */ bc1fl .L80040DD8
/* AB7F3C 80040D9C 96220002 */ lhu $v0, 2($s1)
/* AB7F40 80040DA0 4602B03E */ c.le.s $f22, $f2
/* AB7F44 80040DA4 24080001 */ li $t0, 1
/* AB7F48 80040DA8 AFA80080 */ sw $t0, 0x80($sp)
/* AB7F4C 80040DAC 45020004 */ bc1fl .L80040DC0
/* AB7F50 80040DB0 4600D006 */ mov.s $f0, $f26
/* AB7F54 80040DB4 10000002 */ b .L80040DC0
/* AB7F58 80040DB8 4600C006 */ mov.s $f0, $f24
/* AB7F5C 80040DBC 4600D006 */ mov.s $f0, $f26
.L80040DC0:
/* AB7F60 80040DC0 46140202 */ mul.s $f8, $f0, $f20
/* AB7F64 80040DC4 C7AA0094 */ lwc1 $f10, 0x94($sp)
/* AB7F68 80040DC8 460A4400 */ add.s $f16, $f8, $f10
/* AB7F6C 80040DCC E7B0009C */ swc1 $f16, 0x9c($sp)
/* AB7F70 80040DD0 AEB00000 */ sw $s0, ($s5)
.L80040DD4:
/* AB7F74 80040DD4 96220002 */ lhu $v0, 2($s1)
.L80040DD8:
/* AB7F78 80040DD8 12620005 */ beq $s3, $v0, .L80040DF0
/* AB7F7C 80040DDC 00025080 */ sll $t2, $v0, 2
/* AB7F80 80040DE0 8E4913F8 */ lw $t1, 0x13f8($s2)
/* AB7F84 80040DE4 8E4313F0 */ lw $v1, 0x13f0($s2)
/* AB7F88 80040DE8 1000FFAE */ b .L80040CA4
/* AB7F8C 80040DEC 012A8821 */ addu $s1, $t1, $t2
.L80040DF0:
/* AB7F90 80040DF0 C7B2009C */ lwc1 $f18, 0x9c($sp)
.L80040DF4:
/* AB7F94 80040DF4 8FAB00C0 */ lw $t3, 0xc0($sp)
/* AB7F98 80040DF8 E5720000 */ swc1 $f18, ($t3)
/* AB7F9C 80040DFC 8FA20080 */ lw $v0, 0x80($sp)
.L80040E00:
/* AB7FA0 80040E00 8FBF0064 */ lw $ra, 0x64($sp)
/* AB7FA4 80040E04 D7B40020 */ ldc1 $f20, 0x20($sp)
/* AB7FA8 80040E08 D7B60028 */ ldc1 $f22, 0x28($sp)
/* AB7FAC 80040E0C D7B80030 */ ldc1 $f24, 0x30($sp)
/* AB7FB0 80040E10 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* AB7FB4 80040E14 8FB00040 */ lw $s0, 0x40($sp)
/* AB7FB8 80040E18 8FB10044 */ lw $s1, 0x44($sp)
/* AB7FBC 80040E1C 8FB20048 */ lw $s2, 0x48($sp)
/* AB7FC0 80040E20 8FB3004C */ lw $s3, 0x4c($sp)
/* AB7FC4 80040E24 8FB40050 */ lw $s4, 0x50($sp)
/* AB7FC8 80040E28 8FB50054 */ lw $s5, 0x54($sp)
/* AB7FCC 80040E2C 8FB60058 */ lw $s6, 0x58($sp)
/* AB7FD0 80040E30 8FB7005C */ lw $s7, 0x5c($sp)
/* AB7FD4 80040E34 8FBE0060 */ lw $fp, 0x60($sp)
/* AB7FD8 80040E38 03E00008 */ jr $ra
/* AB7FDC 80040E3C 27BD00B0 */ addiu $sp, $sp, 0xb0