papermario/asm/nonmatchings/code_759b0_len_61b0/trace_above_player.s
2020-09-23 23:16:13 -04:00

135 lines
6.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel trace_above_player
/* 77EB8 800DEA08 27BDFF58 */ addiu $sp, $sp, -0xa8
/* 77EBC 800DEA0C AFB30064 */ sw $s3, 0x64($sp)
/* 77EC0 800DEA10 0080982D */ daddu $s3, $a0, $zero
/* 77EC4 800DEA14 AFB40068 */ sw $s4, 0x68($sp)
/* 77EC8 800DEA18 00A0A02D */ daddu $s4, $a1, $zero
/* 77ECC 800DEA1C AFB5006C */ sw $s5, 0x6c($sp)
/* 77ED0 800DEA20 00C0A82D */ daddu $s5, $a2, $zero
/* 77ED4 800DEA24 AFB20060 */ sw $s2, 0x60($sp)
/* 77ED8 800DEA28 00E0902D */ daddu $s2, $a3, $zero
/* 77EDC 800DEA2C AFB1005C */ sw $s1, 0x5c($sp)
/* 77EE0 800DEA30 2411FFFF */ addiu $s1, $zero, -1
/* 77EE4 800DEA34 3C040001 */ lui $a0, 1
/* 77EE8 800DEA38 AFBF0070 */ sw $ra, 0x70($sp)
/* 77EEC 800DEA3C AFB00058 */ sw $s0, 0x58($sp)
/* 77EF0 800DEA40 F7BE00A0 */ sdc1 $f30, 0xa0($sp)
/* 77EF4 800DEA44 F7BC0098 */ sdc1 $f28, 0x98($sp)
/* 77EF8 800DEA48 F7BA0090 */ sdc1 $f26, 0x90($sp)
/* 77EFC 800DEA4C F7B80088 */ sdc1 $f24, 0x88($sp)
/* 77F00 800DEA50 F7B60080 */ sdc1 $f22, 0x80($sp)
/* 77F04 800DEA54 F7B40078 */ sdc1 $f20, 0x78($sp)
/* 77F08 800DEA58 C6780000 */ lwc1 $f24, ($s3)
/* 77F0C 800DEA5C C6960000 */ lwc1 $f22, ($s4)
/* 77F10 800DEA60 C6B40000 */ lwc1 $f20, ($s5)
/* 77F14 800DEA64 C6400000 */ lwc1 $f0, ($s2)
/* 77F18 800DEA68 3C013F80 */ lui $at, 0x3f80
/* 77F1C 800DEA6C 44811000 */ mtc1 $at, $f2
/* 77F20 800DEA70 4406B000 */ mfc1 $a2, $f22
/* 77F24 800DEA74 4407A000 */ mfc1 $a3, $f20
/* 77F28 800DEA78 4405C000 */ mfc1 $a1, $f24
/* 77F2C 800DEA7C 27A20038 */ addiu $v0, $sp, 0x38
/* 77F30 800DEA80 E7A00044 */ swc1 $f0, 0x44($sp)
/* 77F34 800DEA84 AFA2001C */ sw $v0, 0x1c($sp)
/* 77F38 800DEA88 27A2003C */ addiu $v0, $sp, 0x3c
/* 77F3C 800DEA8C AFA20020 */ sw $v0, 0x20($sp)
/* 77F40 800DEA90 27A20040 */ addiu $v0, $sp, 0x40
/* 77F44 800DEA94 AFA20024 */ sw $v0, 0x24($sp)
/* 77F48 800DEA98 27A20044 */ addiu $v0, $sp, 0x44
/* 77F4C 800DEA9C AFA20028 */ sw $v0, 0x28($sp)
/* 77F50 800DEAA0 27A20048 */ addiu $v0, $sp, 0x48
/* 77F54 800DEAA4 AFA2002C */ sw $v0, 0x2c($sp)
/* 77F58 800DEAA8 27A2004C */ addiu $v0, $sp, 0x4c
/* 77F5C 800DEAAC AFA20030 */ sw $v0, 0x30($sp)
/* 77F60 800DEAB0 27A20050 */ addiu $v0, $sp, 0x50
/* 77F64 800DEAB4 AFA00010 */ sw $zero, 0x10($sp)
/* 77F68 800DEAB8 E7A20014 */ swc1 $f2, 0x14($sp)
/* 77F6C 800DEABC AFA00018 */ sw $zero, 0x18($sp)
/* 77F70 800DEAC0 0C017334 */ jal test_ray_colliders
/* 77F74 800DEAC4 AFA20034 */ sw $v0, 0x34($sp)
/* 77F78 800DEAC8 0040802D */ daddu $s0, $v0, $zero
/* 77F7C 800DEACC 4600C686 */ mov.s $f26, $f24
/* 77F80 800DEAD0 4600B706 */ mov.s $f28, $f22
/* 77F84 800DEAD4 0600000C */ bltz $s0, .L800DEB08
/* 77F88 800DEAD8 4600A786 */ mov.s $f30, $f20
/* 77F8C 800DEADC C6400000 */ lwc1 $f0, ($s2)
/* 77F90 800DEAE0 C7A20044 */ lwc1 $f2, 0x44($sp)
/* 77F94 800DEAE4 4600103C */ c.lt.s $f2, $f0
/* 77F98 800DEAE8 00000000 */ nop
/* 77F9C 800DEAEC 45020007 */ bc1fl .L800DEB0C
/* 77FA0 800DEAF0 4600D606 */ mov.s $f24, $f26
/* 77FA4 800DEAF4 0200882D */ daddu $s1, $s0, $zero
/* 77FA8 800DEAF8 E6420000 */ swc1 $f2, ($s2)
/* 77FAC 800DEAFC E6780000 */ swc1 $f24, ($s3)
/* 77FB0 800DEB00 E6960000 */ swc1 $f22, ($s4)
/* 77FB4 800DEB04 E6B40000 */ swc1 $f20, ($s5)
.L800DEB08:
/* 77FB8 800DEB08 4600D606 */ mov.s $f24, $f26
.L800DEB0C:
/* 77FBC 800DEB0C 4600E586 */ mov.s $f22, $f28
/* 77FC0 800DEB10 3C014120 */ lui $at, 0x4120
/* 77FC4 800DEB14 44811000 */ mtc1 $at, $f2
/* 77FC8 800DEB18 44802000 */ mtc1 $zero, $f4
/* 77FCC 800DEB1C 3C013F80 */ lui $at, 0x3f80
/* 77FD0 800DEB20 44810000 */ mtc1 $at, $f0
/* 77FD4 800DEB24 27A20038 */ addiu $v0, $sp, 0x38
/* 77FD8 800DEB28 E7A20044 */ swc1 $f2, 0x44($sp)
/* 77FDC 800DEB2C AFA20018 */ sw $v0, 0x18($sp)
/* 77FE0 800DEB30 27A2003C */ addiu $v0, $sp, 0x3c
/* 77FE4 800DEB34 AFA2001C */ sw $v0, 0x1c($sp)
/* 77FE8 800DEB38 27A20040 */ addiu $v0, $sp, 0x40
/* 77FEC 800DEB3C AFA20020 */ sw $v0, 0x20($sp)
/* 77FF0 800DEB40 27A20044 */ addiu $v0, $sp, 0x44
/* 77FF4 800DEB44 AFA20024 */ sw $v0, 0x24($sp)
/* 77FF8 800DEB48 27A20048 */ addiu $v0, $sp, 0x48
/* 77FFC 800DEB4C AFA20028 */ sw $v0, 0x28($sp)
/* 78000 800DEB50 27A2004C */ addiu $v0, $sp, 0x4c
/* 78004 800DEB54 AFA2002C */ sw $v0, 0x2c($sp)
/* 78008 800DEB58 27A20050 */ addiu $v0, $sp, 0x50
/* 7800C 800DEB5C E7A00010 */ swc1 $f0, 0x10($sp)
/* 78010 800DEB60 E7A40014 */ swc1 $f4, 0x14($sp)
/* 78014 800DEB64 AFA20030 */ sw $v0, 0x30($sp)
/* 78018 800DEB68 8EA60000 */ lw $a2, ($s5)
/* 7801C 800DEB6C 44072000 */ mfc1 $a3, $f4
/* 78020 800DEB70 C66C0000 */ lwc1 $f12, ($s3)
/* 78024 800DEB74 C68E0000 */ lwc1 $f14, ($s4)
/* 78028 800DEB78 0C017512 */ jal test_ray_entities
/* 7802C 800DEB7C 4600F506 */ mov.s $f20, $f30
/* 78030 800DEB80 0040802D */ daddu $s0, $v0, $zero
/* 78034 800DEB84 06000010 */ bltz $s0, .L800DEBC8
/* 78038 800DEB88 0220102D */ daddu $v0, $s1, $zero
/* 7803C 800DEB8C C6420000 */ lwc1 $f2, ($s2)
/* 78040 800DEB90 C7A00044 */ lwc1 $f0, 0x44($sp)
/* 78044 800DEB94 4602003C */ c.lt.s $f0, $f2
/* 78048 800DEB98 00000000 */ nop
/* 7804C 800DEB9C 4500000A */ bc1f .L800DEBC8
/* 78050 800DEBA0 00000000 */ nop
/* 78054 800DEBA4 0C04417A */ jal get_entity_by_index
/* 78058 800DEBA8 0200202D */ daddu $a0, $s0, $zero
/* 7805C 800DEBAC C7A00044 */ lwc1 $f0, 0x44($sp)
/* 78060 800DEBB0 36114000 */ ori $s1, $s0, 0x4000
/* 78064 800DEBB4 E6400000 */ swc1 $f0, ($s2)
/* 78068 800DEBB8 E6780000 */ swc1 $f24, ($s3)
/* 7806C 800DEBBC E6960000 */ swc1 $f22, ($s4)
/* 78070 800DEBC0 E6B40000 */ swc1 $f20, ($s5)
/* 78074 800DEBC4 0220102D */ daddu $v0, $s1, $zero
.L800DEBC8:
/* 78078 800DEBC8 8FBF0070 */ lw $ra, 0x70($sp)
/* 7807C 800DEBCC 8FB5006C */ lw $s5, 0x6c($sp)
/* 78080 800DEBD0 8FB40068 */ lw $s4, 0x68($sp)
/* 78084 800DEBD4 8FB30064 */ lw $s3, 0x64($sp)
/* 78088 800DEBD8 8FB20060 */ lw $s2, 0x60($sp)
/* 7808C 800DEBDC 8FB1005C */ lw $s1, 0x5c($sp)
/* 78090 800DEBE0 8FB00058 */ lw $s0, 0x58($sp)
/* 78094 800DEBE4 D7BE00A0 */ ldc1 $f30, 0xa0($sp)
/* 78098 800DEBE8 D7BC0098 */ ldc1 $f28, 0x98($sp)
/* 7809C 800DEBEC D7BA0090 */ ldc1 $f26, 0x90($sp)
/* 780A0 800DEBF0 D7B80088 */ ldc1 $f24, 0x88($sp)
/* 780A4 800DEBF4 D7B60080 */ ldc1 $f22, 0x80($sp)
/* 780A8 800DEBF8 D7B40078 */ ldc1 $f20, 0x78($sp)
/* 780AC 800DEBFC 03E00008 */ jr $ra
/* 780B0 800DEC00 27BD00A8 */ addiu $sp, $sp, 0xa8