papermario/asm/nonmatchings/code_ED510/ResetFromLava.s
2020-11-29 02:13:07 -05:00

73 lines
3.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel ResetFromLava
/* EE888 802C9ED8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* EE88C 802C9EDC AFBF0020 */ sw $ra, 0x20($sp)
/* EE890 802C9EE0 AFB3001C */ sw $s3, 0x1c($sp)
/* EE894 802C9EE4 AFB20018 */ sw $s2, 0x18($sp)
/* EE898 802C9EE8 AFB10014 */ sw $s1, 0x14($sp)
/* EE89C 802C9EEC AFB00010 */ sw $s0, 0x10($sp)
/* EE8A0 802C9EF0 10A0001D */ beqz $a1, .L802C9F68
/* EE8A4 802C9EF4 8C82000C */ lw $v0, 0xc($a0)
/* EE8A8 802C9EF8 8C450000 */ lw $a1, ($v0)
/* EE8AC 802C9EFC 3C12800B */ lui $s2, %hi(D_800B42E0)
/* EE8B0 802C9F00 265242E0 */ addiu $s2, $s2, %lo(D_800B42E0)
/* EE8B4 802C9F04 0C0B1EAF */ jal get_variable
/* EE8B8 802C9F08 2413FFFF */ addiu $s3, $zero, -1
/* EE8BC 802C9F0C 0040882D */ daddu $s1, $v0, $zero
/* EE8C0 802C9F10 3C01802E */ lui $at, %hi(D_802DADA0)
/* EE8C4 802C9F14 AC31ADA0 */ sw $s1, %lo(D_802DADA0)($at)
.L802C9F18:
/* EE8C8 802C9F18 8E230000 */ lw $v1, ($s1)
/* EE8CC 802C9F1C 1073000F */ beq $v1, $s3, .L802C9F5C
/* EE8D0 802C9F20 000310C0 */ sll $v0, $v1, 3
/* EE8D4 802C9F24 00431023 */ subu $v0, $v0, $v1
/* EE8D8 802C9F28 8E430004 */ lw $v1, 4($s2)
/* EE8DC 802C9F2C 00021080 */ sll $v0, $v0, 2
/* EE8E0 802C9F30 00628021 */ addu $s0, $v1, $v0
/* EE8E4 802C9F34 86040006 */ lh $a0, 6($s0)
/* EE8E8 802C9F38 04800003 */ bltz $a0, .L802C9F48
/* EE8EC 802C9F3C 24050100 */ addiu $a1, $zero, 0x100
/* EE8F0 802C9F40 0C0B273A */ jal modify_collider_family_flags
/* EE8F4 802C9F44 0000302D */ daddu $a2, $zero, $zero
.L802C9F48:
/* EE8F8 802C9F48 8E020000 */ lw $v0, ($s0)
/* EE8FC 802C9F4C 26310010 */ addiu $s1, $s1, 0x10
/* EE900 802C9F50 34420100 */ ori $v0, $v0, 0x100
/* EE904 802C9F54 080B27C6 */ j .L802C9F18
/* EE908 802C9F58 AE020000 */ sw $v0, ($s0)
.L802C9F5C:
/* EE90C 802C9F5C 2402FFFF */ addiu $v0, $zero, -1
/* EE910 802C9F60 3C01802E */ lui $at, %hi(D_802DADA4)
/* EE914 802C9F64 AC22ADA4 */ sw $v0, %lo(D_802DADA4)($at)
.L802C9F68:
/* EE918 802C9F68 3C028016 */ lui $v0, %hi(gCollisionStatus)
/* EE91C 802C9F6C 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus)
/* EE920 802C9F70 94430002 */ lhu $v1, 2($v0)
/* EE924 802C9F74 30624000 */ andi $v0, $v1, 0x4000
/* EE928 802C9F78 1440000F */ bnez $v0, .L802C9FB8
/* EE92C 802C9F7C 0000102D */ daddu $v0, $zero, $zero
/* EE930 802C9F80 00031400 */ sll $v0, $v1, 0x10
/* EE934 802C9F84 00022403 */ sra $a0, $v0, 0x10
/* EE938 802C9F88 000410C0 */ sll $v0, $a0, 3
/* EE93C 802C9F8C 00441023 */ subu $v0, $v0, $a0
/* EE940 802C9F90 3C03800B */ lui $v1, %hi(D_800B42E4)
/* EE944 802C9F94 8C6342E4 */ lw $v1, %lo(D_800B42E4)($v1)
/* EE948 802C9F98 00021080 */ sll $v0, $v0, 2
/* EE94C 802C9F9C 00628021 */ addu $s0, $v1, $v0
/* EE950 802C9FA0 8E020000 */ lw $v0, ($s0)
/* EE954 802C9FA4 30420100 */ andi $v0, $v0, 0x100
/* EE958 802C9FA8 10400003 */ beqz $v0, .L802C9FB8
/* EE95C 802C9FAC 0000102D */ daddu $v0, $zero, $zero
/* EE960 802C9FB0 3C01802E */ lui $at, %hi(D_802DADA4)
/* EE964 802C9FB4 AC24ADA4 */ sw $a0, %lo(D_802DADA4)($at)
.L802C9FB8:
/* EE968 802C9FB8 8FBF0020 */ lw $ra, 0x20($sp)
/* EE96C 802C9FBC 8FB3001C */ lw $s3, 0x1c($sp)
/* EE970 802C9FC0 8FB20018 */ lw $s2, 0x18($sp)
/* EE974 802C9FC4 8FB10014 */ lw $s1, 0x14($sp)
/* EE978 802C9FC8 8FB00010 */ lw $s0, 0x10($sp)
/* EE97C 802C9FCC 03E00008 */ jr $ra
/* EE980 802C9FD0 27BD0028 */ addiu $sp, $sp, 0x28