mirror of https://github.com/zeldaret/tmc.git
114 lines
1.9 KiB
ArmAsm
114 lines
1.9 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start GetEmptyEntity
|
|
GetEmptyEntity: @ 0x0805E678
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _0805E698 @ =gUnk_03003DBC
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x46
|
|
bhi _0805E6A6
|
|
ldr r4, _0805E69C @ =gUnk_030015A0
|
|
movs r0, #0x99
|
|
lsls r0, r0, #6
|
|
adds r1, r4, r0
|
|
_0805E68E:
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
bne _0805E6A0
|
|
adds r0, r4, #0
|
|
b _0805E730
|
|
.align 2, 0
|
|
_0805E698: .4byte gUnk_03003DBC
|
|
_0805E69C: .4byte gUnk_030015A0
|
|
_0805E6A0:
|
|
adds r4, #0x88
|
|
cmp r4, r1
|
|
blo _0805E68E
|
|
_0805E6A6:
|
|
ldr r4, _0805E6CC @ =gLinkEntity
|
|
_0805E6A8:
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
bge _0805E6D4
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0xc
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805E6D4
|
|
ldr r0, _0805E6D0 @ =gUnk_03003DD0
|
|
ldr r0, [r0, #8]
|
|
cmp r4, r0
|
|
beq _0805E6D4
|
|
adds r0, r4, #0
|
|
bl sub_0805E870
|
|
adds r0, r4, #0
|
|
b _0805E730
|
|
.align 2, 0
|
|
_0805E6CC: .4byte gLinkEntity
|
|
_0805E6D0: .4byte gUnk_03003DD0
|
|
_0805E6D4:
|
|
adds r4, #0x88
|
|
ldr r0, _0805E738 @ =gUnk_03003BE0
|
|
cmp r4, r0
|
|
blo _0805E6A8
|
|
movs r0, #0
|
|
mov ip, r0
|
|
movs r5, #0
|
|
ldr r2, _0805E73C @ =gUnk_03003D70
|
|
movs r0, #0x48
|
|
adds r0, r0, r2
|
|
mov r8, r0
|
|
_0805E6EA:
|
|
ldr r4, [r2, #4]
|
|
adds r3, r2, #0
|
|
adds r3, #8
|
|
cmp r4, r2
|
|
beq _0805E718
|
|
movs r7, #0x1c
|
|
ldr r6, _0805E740 @ =gUnk_03003DD0
|
|
_0805E6F8:
|
|
ldrb r0, [r4, #8]
|
|
cmp r0, #9
|
|
beq _0805E712
|
|
ldrb r0, [r4, #0x10]
|
|
adds r1, r7, #0
|
|
ands r1, r0
|
|
cmp ip, r1
|
|
bhs _0805E712
|
|
ldr r0, [r6, #8]
|
|
cmp r0, r4
|
|
beq _0805E712
|
|
mov ip, r1
|
|
adds r5, r4, #0
|
|
_0805E712:
|
|
ldr r4, [r4, #4]
|
|
cmp r4, r2
|
|
bne _0805E6F8
|
|
_0805E718:
|
|
adds r2, r3, #0
|
|
cmp r2, r8
|
|
blo _0805E6EA
|
|
cmp r5, #0
|
|
beq _0805E72E
|
|
adds r0, r5, #0
|
|
bl sub_0805E7BC
|
|
adds r0, r5, #0
|
|
bl sub_0805E870
|
|
_0805E72E:
|
|
adds r0, r5, #0
|
|
_0805E730:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0805E738: .4byte gUnk_03003BE0
|
|
_0805E73C: .4byte gUnk_03003D70
|
|
_0805E740: .4byte gUnk_03003DD0
|