tmc/asm/object70.s

199 lines
3.2 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Object70
Object70: @ 0x08097420
push {lr}
ldr r2, _08097434 @ =gUnk_081232A4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08097434: .4byte gUnk_081232A4
thumb_func_start sub_08097438
sub_08097438: @ 0x08097438
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xa]
adds r1, r0, #0
adds r1, #0xb
strb r1, [r4, #0x1e]
lsls r0, r0, #0x18
cmp r0, #0
beq _080974A2
adds r0, r4, #0
bl sub_08004168
ldr r1, _08097494 @ =gLinkEntity
ldrb r0, [r1, #0x1b]
movs r2, #0xc0
orrs r0, r2
strb r0, [r1, #0x1b]
adds r1, #0x29
ldrb r1, [r1]
movs r2, #7
movs r0, #7
ands r0, r1
cmp r0, #7
beq _08097498
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
adds r1, #1
adds r3, r4, #0
adds r3, #0x29
ands r1, r2
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _080974A2
.align 2, 0
_08097494: .4byte gLinkEntity
_08097498:
adds r1, r4, #0
adds r1, #0x29
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
_080974A2:
pop {r4, pc}
thumb_func_start sub_080974A4
sub_080974A4: @ 0x080974A4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08097554
ldr r3, _08097540 @ =gLinkEntity
ldr r0, [r3, #0x34]
cmp r0, #0
bne _080974E8
ldr r2, _08097544 @ =gLinkState
ldrb r1, [r2, #0x1e]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _080974D6
ldrb r0, [r2, #0x12]
cmp r0, #0x11
bne _080974D6
ldrb r0, [r3, #0xc]
cmp r0, #1
beq _080974FA
cmp r0, #0x18
beq _080974FA
cmp r0, #4
beq _080974FA
_080974D6:
ldr r1, _08097540 @ =gLinkEntity
ldr r0, [r1, #0x34]
cmp r0, #0
bne _080974E8
adds r0, r1, #0
movs r1, #0x52
movs r2, #0
bl CreateFx
_080974E8:
ldr r2, _08097540 @ =gLinkEntity
ldrb r1, [r2, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x1b]
bl DeleteThisEntity
_080974FA:
ldr r2, _08097540 @ =gLinkEntity
ldr r0, [r2, #0x2c]
str r0, [r4, #0x2c]
ldr r0, [r2, #0x30]
str r0, [r4, #0x30]
ldr r0, _08097544 @ =gLinkState
ldrb r0, [r0, #2]
cmp r0, #0
bne _08097584
ldrb r0, [r2, #0x1b]
movs r1, #0xc0
orrs r0, r1
strb r0, [r2, #0x1b]
adds r0, r2, #0
adds r0, #0x29
ldrb r1, [r0]
movs r2, #7
movs r0, #7
ands r0, r1
cmp r0, #7
beq _08097548
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
adds r1, #1
adds r3, r4, #0
adds r3, #0x29
ands r1, r2
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _08097584
.align 2, 0
_08097540: .4byte gLinkEntity
_08097544: .4byte gLinkState
_08097548:
adds r1, r4, #0
adds r1, #0x29
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
b _08097584
_08097554:
ldr r2, _08097570 @ =gLinkEntity
ldrb r0, [r2, #0xc]
cmp r0, #0x1e
beq _08097584
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _08097574
ldrb r0, [r2, #0x1b]
movs r1, #0x3f
ands r1, r0
movs r0, #0x80
b _0809757C
.align 2, 0
_08097570: .4byte gLinkEntity
_08097574:
ldrb r0, [r2, #0x1b]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
_0809757C:
orrs r1, r0
strb r1, [r2, #0x1b]
bl DeleteThisEntity
_08097584:
pop {r4, pc}
.align 2, 0