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

95 lines
4.6 KiB
ArmAsm

glabel func_80040E40
/* AB7FE0 80040E40 27BDFF80 */ addiu $sp, $sp, -0x80
/* AB7FE4 80040E44 F7B60030 */ sdc1 $f22, 0x30($sp)
/* AB7FE8 80040E48 AFBF005C */ sw $ra, 0x5c($sp)
/* AB7FEC 80040E4C AFBE0058 */ sw $fp, 0x58($sp)
/* AB7FF0 80040E50 AFB70054 */ sw $s7, 0x54($sp)
/* AB7FF4 80040E54 AFB60050 */ sw $s6, 0x50($sp)
/* AB7FF8 80040E58 AFB5004C */ sw $s5, 0x4c($sp)
/* AB7FFC 80040E5C AFB40048 */ sw $s4, 0x48($sp)
/* AB8000 80040E60 AFB30044 */ sw $s3, 0x44($sp)
/* AB8004 80040E64 AFB20040 */ sw $s2, 0x40($sp)
/* AB8008 80040E68 AFB1003C */ sw $s1, 0x3c($sp)
/* AB800C 80040E6C AFB00038 */ sw $s0, 0x38($sp)
/* AB8010 80040E70 F7B40028 */ sdc1 $f20, 0x28($sp)
/* AB8014 80040E74 AFA50084 */ sw $a1, 0x84($sp)
/* AB8018 80040E78 AFA60088 */ sw $a2, 0x88($sp)
/* AB801C 80040E7C AFA00078 */ sw $zero, 0x78($sp)
/* AB8020 80040E80 C7B60090 */ lwc1 $f22, 0x90($sp)
/* AB8024 80040E84 C4E40004 */ lwc1 $f4, 4($a3)
/* AB8028 80040E88 00E09025 */ move $s2, $a3
/* AB802C 80040E8C 00809825 */ move $s3, $a0
/* AB8030 80040E90 46162180 */ add.s $f6, $f4, $f22
/* AB8034 80040E94 00008825 */ move $s1, $zero
/* AB8038 80040E98 0080A025 */ move $s4, $a0
/* AB803C 80040E9C 8FB5009C */ lw $s5, 0x9c($sp)
/* AB8040 80040EA0 E7A60070 */ swc1 $f6, 0x70($sp)
/* AB8044 80040EA4 C7B40070 */ lwc1 $f20, 0x70($sp)
/* AB8048 80040EA8 8FB60094 */ lw $s6, 0x94($sp)
/* AB804C 80040EAC 8FB70098 */ lw $s7, 0x98($sp)
/* AB8050 80040EB0 241E0032 */ li $fp, 50
.L80040EB4:
/* AB8054 80040EB4 968E13DC */ lhu $t6, 0x13dc($s4)
/* AB8058 80040EB8 0011C080 */ sll $t8, $s1, 2
/* AB805C 80040EBC 0311C023 */ subu $t8, $t8, $s1
/* AB8060 80040EC0 31CF0001 */ andi $t7, $t6, 1
/* AB8064 80040EC4 11E00023 */ beqz $t7, .L80040F54
/* AB8068 80040EC8 0018C0C0 */ sll $t8, $t8, 3
/* AB806C 80040ECC 0311C021 */ addu $t8, $t8, $s1
/* AB8070 80040ED0 0018C080 */ sll $t8, $t8, 2
/* AB8074 80040ED4 02788021 */ addu $s0, $s3, $t8
/* AB8078 80040ED8 8E190054 */ lw $t9, 0x54($s0)
/* AB807C 80040EDC 260400A8 */ addiu $a0, $s0, 0xa8
/* AB8080 80040EE0 52B9001D */ beql $s5, $t9, .L80040F58
/* AB8084 80040EE4 26310001 */ addiu $s1, $s1, 1
/* AB8088 80040EE8 8E450000 */ lw $a1, ($s2)
/* AB808C 80040EEC 0C034120 */ jal Math3D_XZInSphere
/* AB8090 80040EF0 8E460008 */ lw $a2, 8($s2)
/* AB8094 80040EF4 10400017 */ beqz $v0, .L80040F54
/* AB8098 80040EF8 02602025 */ move $a0, $s3
/* AB809C 80040EFC 27A80070 */ addiu $t0, $sp, 0x70
/* AB80A0 80040F00 27A90068 */ addiu $t1, $sp, 0x68
/* AB80A4 80040F04 AFA9001C */ sw $t1, 0x1c($sp)
/* AB80A8 80040F08 AFA80010 */ sw $t0, 0x10($sp)
/* AB80AC 80040F0C 97A50086 */ lhu $a1, 0x86($sp)
/* AB80B0 80040F10 26660050 */ addiu $a2, $s3, 0x50
/* AB80B4 80040F14 2607005E */ addiu $a3, $s0, 0x5e
/* AB80B8 80040F18 AFB20014 */ sw $s2, 0x14($sp)
/* AB80BC 80040F1C 0C0102F9 */ jal func_80040BE4
/* AB80C0 80040F20 E7B60018 */ swc1 $f22, 0x18($sp)
/* AB80C4 80040F24 24010001 */ li $at, 1
/* AB80C8 80040F28 1441000A */ bne $v0, $at, .L80040F54
/* AB80CC 80040F2C C7A80070 */ lwc1 $f8, 0x70($sp)
/* AB80D0 80040F30 4614403C */ c.lt.s $f8, $f20
/* AB80D4 80040F34 8FAA0068 */ lw $t2, 0x68($sp)
/* AB80D8 80040F38 240B0001 */ li $t3, 1
/* AB80DC 80040F3C 45020006 */ bc1fl .L80040F58
/* AB80E0 80040F40 26310001 */ addiu $s1, $s1, 1
/* AB80E4 80040F44 AECA0000 */ sw $t2, ($s6)
/* AB80E8 80040F48 AEF10000 */ sw $s1, ($s7)
/* AB80EC 80040F4C 46004506 */ mov.s $f20, $f8
/* AB80F0 80040F50 AFAB0078 */ sw $t3, 0x78($sp)
.L80040F54:
/* AB80F4 80040F54 26310001 */ addiu $s1, $s1, 1
.L80040F58:
/* AB80F8 80040F58 163EFFD6 */ bne $s1, $fp, .L80040EB4
/* AB80FC 80040F5C 26940002 */ addiu $s4, $s4, 2
/* AB8100 80040F60 8FAC0088 */ lw $t4, 0x88($sp)
/* AB8104 80040F64 E5940000 */ swc1 $f20, ($t4)
/* AB8108 80040F68 8FBF005C */ lw $ra, 0x5c($sp)
/* AB810C 80040F6C 8FBE0058 */ lw $fp, 0x58($sp)
/* AB8110 80040F70 8FB70054 */ lw $s7, 0x54($sp)
/* AB8114 80040F74 8FB60050 */ lw $s6, 0x50($sp)
/* AB8118 80040F78 8FB5004C */ lw $s5, 0x4c($sp)
/* AB811C 80040F7C 8FB40048 */ lw $s4, 0x48($sp)
/* AB8120 80040F80 8FB30044 */ lw $s3, 0x44($sp)
/* AB8124 80040F84 8FB20040 */ lw $s2, 0x40($sp)
/* AB8128 80040F88 8FB1003C */ lw $s1, 0x3c($sp)
/* AB812C 80040F8C 8FB00038 */ lw $s0, 0x38($sp)
/* AB8130 80040F90 D7B60030 */ ldc1 $f22, 0x30($sp)
/* AB8134 80040F94 D7B40028 */ ldc1 $f20, 0x28($sp)
/* AB8138 80040F98 8FA20078 */ lw $v0, 0x78($sp)
/* AB813C 80040F9C 03E00008 */ jr $ra
/* AB8140 80040FA0 27BD0080 */ addiu $sp, $sp, 0x80