tmc/asm/enemy50.s

1074 lines
17 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Enemy50
Enemy50: @ 0x08040B2C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _08040B5C
ldr r0, [r5, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _08040B5C
adds r0, r5, #0
bl sub_08041300
cmp r0, #0
beq _08040B4E
adds r0, r5, #0
bl sub_0803F6EC
_08040B4E:
adds r0, r5, #0
movs r1, #2
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_08040B5C:
ldr r4, _08040B80 @ =gUnk_080D0DC4
adds r0, r5, #0
bl GetNextFunction
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, [r0]
adds r0, r5, #0
bl _call_via_r1
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r5, #0
movs r1, #0
movs r2, #1
bl SetChildOffset
pop {r4, r5, pc}
.align 2, 0
_08040B80: .4byte gUnk_080D0DC4
thumb_func_start sub_08040B84
sub_08040B84: @ 0x08040B84
push {lr}
ldr r2, _08040B98 @ =gUnk_080D0DDC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08040B98: .4byte gUnk_080D0DDC
thumb_func_start sub_08040B9C
sub_08040B9C: @ 0x08040B9C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
subs r0, #8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _08040BD0
movs r0, #0xff
strb r0, [r4, #0x14]
adds r0, r4, #0
adds r0, #0x3e
ldrb r1, [r0]
lsrs r1, r1, #4
movs r0, #1
eors r1, r0
adds r1, #1
adds r0, r4, #0
bl InitializeAnimation
adds r0, r4, #0
bl sub_08041134
adds r0, r4, #0
bl sub_0803F6EC
_08040BD0:
adds r0, r4, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0x25
bne _08040BF4
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #0x80
bne _08040C0E
movs r0, #8
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #3
bl InitializeAnimation
b _08040C9C
_08040BF4:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #0x80
bne _08040C0E
adds r1, r4, #0
adds r1, #0x7c
movs r0, #0x78
strh r0, [r1]
adds r0, r4, #0
bl sub_08041128
_08040C0E:
ldrb r0, [r5]
cmp r0, #0x9d
bne _08040C1A
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r4, #0x20]
_08040C1A:
adds r0, r4, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _08040C40
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
lsrs r0, r0, #4
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r1, #7
adds r0, r4, #0
bl InitializeAnimation
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_08040C40:
adds r0, r4, #0
adds r0, #0x45
adds r1, r4, #0
adds r1, #0x7a
ldrb r2, [r0]
adds r6, r0, #0
adds r5, r1, #0
ldrb r0, [r5]
cmp r2, r0
beq _08040C9C
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08040C70
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
lsrs r0, r0, #4
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r1, #7
adds r0, r4, #0
bl InitializeAnimation
b _08040C98
_08040C70:
adds r1, r4, #0
adds r1, #0x3d
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
ble _08040C84
movs r0, #0x80
orrs r0, r2
strb r0, [r1]
_08040C84:
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0xff
strb r0, [r6]
movs r0, #0xa
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
_08040C98:
ldrb r0, [r6]
strb r0, [r5]
_08040C9C:
ldr r1, _08040CA8 @ =gUnk_080D0DC4
adds r0, r4, #0
bl sub_0804AA30
pop {r4, r5, r6, pc}
.align 2, 0
_08040CA8: .4byte gUnk_080D0DC4
thumb_func_start sub_08040CAC
sub_08040CAC: @ 0x08040CAC
push {r4, r5, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_08001328
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08040D04
adds r0, r4, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
bne _08040D2C
adds r0, r4, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _08040D2C
adds r0, r4, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
bne _08040D2C
movs r0, #0xff
strb r0, [r4, #0x14]
adds r1, r4, #0
adds r1, #0x58
ldrb r0, [r1]
subs r0, #7
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _08040D2C
ldrb r1, [r1]
subs r1, #7
movs r0, #1
eors r1, r0
adds r1, #1
adds r0, r4, #0
bl InitializeAnimation
b _08040D2C
_08040D04:
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
movs r5, #4
rsbs r5, r5, #0
adds r3, r5, #0
ands r3, r2
orrs r3, r1
strb r3, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
bne _08040D2C
ands r3, r5
movs r0, #1
orrs r3, r0
strb r3, [r4, #0x18]
_08040D2C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08040D30
sub_08040D30: @ 0x08040D30
push {r4, lr}
adds r4, r0, #0
adds r0, #0x58
ldrb r0, [r0]
subs r0, #7
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bls _08040D4C
ldrb r1, [r4, #0x14]
adds r1, #7
adds r0, r4, #0
bl InitializeAnimation
_08040D4C:
adds r0, r4, #0
bl sub_08001242
ldrh r1, [r4, #0x36]
movs r2, #0x36
ldrsh r0, [r4, r2]
cmp r0, #0
bne _08040D60
ldr r0, _08040D8C @ =0x0000FFFF
strh r0, [r4, #0x36]
_08040D60:
adds r0, r4, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
bne _08040D88
ldrb r0, [r4, #0x14]
movs r1, #1
eors r1, r0
adds r1, #1
adds r0, r4, #0
bl InitializeAnimation
movs r0, #0xff
strb r0, [r4, #0x15]
movs r0, #1
rsbs r0, r0, #0
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08041134
_08040D88:
pop {r4, pc}
.align 2, 0
_08040D8C: .4byte 0x0000FFFF
thumb_func_start sub_08040D90
sub_08040D90: @ 0x08040D90
push {r4, lr}
adds r4, r0, #0
bl sub_0806F520
cmp r0, #0
beq _08040DB4
ldr r0, _08040DB0 @ =gUnk_080D0E08
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _08040DC6
.align 2, 0
_08040DB0: .4byte gUnk_080D0E08
_08040DB4:
adds r0, r4, #0
bl sub_08041128
ldrb r1, [r4, #0x15]
lsrs r1, r1, #4
adds r1, #1
adds r0, r4, #0
bl InitializeAnimation
_08040DC6:
pop {r4, pc}
thumb_func_start sub_08040DC8
sub_08040DC8: @ 0x08040DC8
push {lr}
movs r1, #1
strb r1, [r0, #0xd]
movs r1, #0x3c
strb r1, [r0, #0x1d]
ldr r1, _08040DE0 @ =gLinkEntity
ldrb r1, [r1, #0x14]
lsrs r1, r1, #2
adds r1, #5
bl InitializeAnimation
pop {pc}
.align 2, 0
_08040DE0: .4byte gLinkEntity
thumb_func_start sub_08040DE4
sub_08040DE4: @ 0x08040DE4
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F4E8
pop {r4, pc}
thumb_func_start sub_08040DF4
sub_08040DF4: @ 0x08040DF4
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F3E4
cmp r0, #0
beq _08040E38
adds r0, r4, #0
movs r1, #2
movs r2, #0
bl CreateFx
cmp r0, #0
beq _08040E26
adds r2, r0, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
_08040E26:
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08040E34
adds r0, r4, #0
bl sub_0804A7D4
b _08040E38
_08040E34:
bl DeleteThisEntity
_08040E38:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08040E3C
sub_08040E3C: @ 0x08040E3C
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0804A720
bl Random
movs r2, #0x1e
adds r1, r0, #0
ands r1, r2
movs r2, #0
strb r1, [r4, #0x15]
movs r1, #0xff
strb r1, [r4, #0x14]
movs r5, #1
strb r5, [r4, #0x1c]
adds r1, r4, #0
adds r1, #0x45
ldrb r1, [r1]
adds r3, r4, #0
adds r3, #0x7a
strb r1, [r3]
lsrs r0, r0, #4
adds r1, r4, #0
adds r1, #0x7b
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x7c
strh r2, [r0]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08040E86
strb r5, [r4, #0xc]
ldrb r0, [r4, #0xe]
bl sub_0804B128
str r0, [r4, #0x54]
b _08040E8C
_08040E86:
adds r0, r4, #0
bl sub_080411CC
_08040E8C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08040E90
sub_08040E90: @ 0x08040E90
push {r4, lr}
adds r4, r0, #0
bl sub_080411E8
cmp r0, #0
beq _08040EA4
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0xf
strb r0, [r4, #0xe]
_08040EA4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08040EA8
sub_08040EA8: @ 0x08040EA8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08040EC4
adds r0, r4, #0
bl sub_080411CC
adds r0, r4, #0
bl sub_0804122C
_08040EC4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08040EC8
sub_08040EC8: @ 0x08040EC8
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08040F08
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
bl Random
adds r1, r4, #0
adds r1, #0x80
ldrb r2, [r1]
movs r1, #0x30
ands r1, r0
adds r1, #0x3c
adds r0, r2, #0
muls r0, r1, r0
adds r0, #0x78
adds r1, r4, #0
adds r1, #0x7c
strh r0, [r1]
adds r0, r4, #0
bl sub_08041128
_08040F08:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08040F0C
sub_08040F0C: @ 0x08040F0C
push {r4, lr}
adds r4, r0, #0
bl sub_08041170
cmp r0, #0
bne _08040F36
adds r0, r4, #0
bl sub_0803F58C
adds r0, r4, #0
bl GetNextFrame
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08040F36
adds r0, r4, #0
bl sub_08041128
_08040F36:
pop {r4, pc}
thumb_func_start sub_08040F38
sub_08040F38: @ 0x08040F38
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
movs r1, #1
bl sub_08049F84
strb r0, [r4, #0x15]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08040F8E
adds r0, r4, #0
bl sub_0803F66C
adds r1, r4, #0
adds r1, #0x78
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08040F94
movs r0, #6
strb r0, [r4, #0xc]
bl Random
movs r2, #0xe0
adds r1, r0, #0
ands r1, r2
strb r1, [r4, #0xe]
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r4, #0x24]
lsrs r0, r0, #8
movs r1, #0x78
ands r0, r1
adds r0, #0x3c
adds r1, r4, #0
adds r1, #0x7e
strh r0, [r1]
b _08040F94
_08040F8E:
adds r0, r4, #0
bl sub_08041128
_08040F94:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08040F98
sub_08040F98: @ 0x08040F98
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0803F5A8
cmp r0, #0
bne _08040FB2
adds r0, r4, #0
bl sub_08041128
b _08041014
_08040FB2:
movs r0, #1
bl sub_08049DF4
cmp r0, #0
beq _0804100C
adds r1, r4, #0
adds r1, #0x7e
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
beq _0804100C
ldrb r1, [r4, #0xe]
adds r1, #1
strb r1, [r4, #0xe]
ldr r2, _08041004 @ =gUnk_080D0E14
lsls r0, r1, #0x18
lsrs r0, r0, #0x1e
adds r0, r0, r2
ldrb r0, [r0]
ands r1, r0
cmp r1, #0
bne _08040FF4
ldr r0, _08041008 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
bl sub_080045C4
adds r1, r0, #0
adds r0, r4, #0
bl sub_08004596
_08040FF4:
adds r0, r4, #0
bl sub_0803F66C
adds r0, r4, #0
bl sub_080AEFB4
b _08041014
.align 2, 0
_08041004: .4byte gUnk_080D0E14
_08041008: .4byte gUnk_020000B0
_0804100C:
movs r0, #7
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
_08041014:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08041018
sub_08041018: @ 0x08041018
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08041042
bl Random
movs r1, #0xf8
ands r0, r1
adds r0, #0xb4
adds r1, r4, #0
adds r1, #0x7c
strh r0, [r1]
adds r0, r4, #0
bl sub_08041128
_08041042:
pop {r4, pc}
thumb_func_start sub_08041044
sub_08041044: @ 0x08041044
push {r4, lr}
adds r4, r0, #0
bl sub_0803F738
adds r0, r4, #0
bl GetNextFrame
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08041074
movs r0, #0
movs r1, #9
strb r1, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x78
strh r0, [r1]
adds r0, r4, #0
movs r1, #4
bl InitializeAnimation
_08041074:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08041078
sub_08041078: @ 0x08041078
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08041094
adds r0, r4, #0
bl sub_0803F6C0
_08041094:
bl sub_0807953C
adds r1, r4, #0
adds r1, #0x78
cmp r0, #0
beq _080410A6
ldrh r0, [r1]
adds r0, #8
strh r0, [r1]
_080410A6:
ldr r2, _08041100 @ =gLinkEntity
adds r0, r2, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080410B6
movs r0, #0xe0
strh r0, [r1]
_080410B6:
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xdf
bls _08041104
adds r1, r4, #0
adds r1, #0x7c
movs r0, #0x78
strh r0, [r1]
movs r0, #0xff
strb r0, [r4, #0x14]
subs r1, #0x3f
movs r0, #0xf4
strb r0, [r1]
adds r1, #5
movs r0, #0x14
strb r0, [r1]
adds r1, #4
movs r0, #0xc0
lsls r0, r0, #1
strh r0, [r1]
ldrb r0, [r2, #0x14]
lsls r0, r0, #2
movs r1, #0x10
eors r0, r1
adds r1, r4, #0
adds r1, #0x3e
strb r0, [r1]
adds r0, r4, #0
bl sub_08041128
adds r0, r4, #0
bl sub_0803F6EC
b _0804110A
.align 2, 0
_08041100: .4byte gLinkEntity
_08041104:
adds r0, r4, #0
bl sub_0803F738
_0804110A:
pop {r4, pc}
thumb_func_start sub_0804110C
sub_0804110C: @ 0x0804110C
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08041126
adds r0, r4, #0
bl sub_08041128
_08041126:
pop {r4, pc}
thumb_func_start sub_08041128
sub_08041128: @ 0x08041128
push {lr}
movs r1, #4
strb r1, [r0, #0xc]
bl sub_0803F528
pop {pc}
thumb_func_start sub_08041134
sub_08041134: @ 0x08041134
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #5
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x25
strb r0, [r1]
movs r5, #0
ldr r0, _08041168 @ =gUnk_03004040
ldr r0, [r0]
cmp r0, #0
beq _08041150
movs r5, #0x3c
_08041150:
bl Random
ldr r2, _0804116C @ =gUnk_080D0E18
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r0, r0, r5
adds r1, r4, #0
adds r1, #0x78
strh r0, [r1]
pop {r4, r5, pc}
.align 2, 0
_08041168: .4byte gUnk_03004040
_0804116C: .4byte gUnk_080D0E18
thumb_func_start sub_08041170
sub_08041170: @ 0x08041170
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7c
ldrh r0, [r1]
cmp r0, #0
beq _08041184
subs r0, #1
strh r0, [r1]
b _080411C8
_08041184:
adds r0, r4, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _080411C8
adds r0, r4, #0
bl sub_0806FD54
cmp r0, #0
bne _080411B6
ldr r0, _080411C0 @ =gArea
movs r1, #0xa
ldrsh r0, [r0, r1]
cmp r0, #0xf
ble _080411C8
ldr r0, _080411C4 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
movs r2, #0x70
movs r3, #0x48
bl sub_080041A0
cmp r0, #0
beq _080411C8
_080411B6:
adds r0, r4, #0
bl sub_08041134
movs r0, #1
b _080411CA
.align 2, 0
_080411C0: .4byte gArea
_080411C4: .4byte gUnk_020000B0
_080411C8:
movs r0, #0
_080411CA:
pop {r4, pc}
thumb_func_start sub_080411CC
sub_080411CC: @ 0x080411CC
push {lr}
movs r1, #3
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #7
ands r1, r2
movs r2, #1
orrs r1, r2
strb r1, [r0, #0x18]
movs r1, #0
bl InitializeAnimation
pop {pc}
.align 2, 0
thumb_func_start sub_080411E8
sub_080411E8: @ 0x080411E8
push {r4, lr}
adds r4, r0, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _08041222
ldrb r0, [r4, #0xb]
cmp r0, #1
beq _08041204
cmp r0, #2
beq _08041218
_08041200:
movs r0, #1
b _08041224
_08041204:
ldr r0, _08041214 @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
ands r0, r1
cmp r0, #0
beq _08041222
b _08041200
.align 2, 0
_08041214: .4byte gLinkState
_08041218:
ldr r0, _08041228 @ =gArea
movs r1, #0xa
ldrsh r0, [r0, r1]
cmp r0, #0xf
bgt _08041200
_08041222:
movs r0, #0
_08041224:
pop {r4, pc}
.align 2, 0
_08041228: .4byte gArea
thumb_func_start sub_0804122C
sub_0804122C: @ 0x0804122C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r4, r0, #0
ldr r0, [r4, #0x54]
mov r8, r0
bl Random
movs r6, #6
ands r6, r0
lsrs r5, r0, #8
movs r0, #3
ands r5, r0
movs r7, #0
ldr r3, _080412FC @ =gRoomControls
mov sb, r3
_08041250:
movs r0, #0x50
movs r1, #1
bl CreateEnemy
adds r2, r0, #0
cmp r2, #0
beq _080412C8
lsls r1, r6, #1
add r1, r8
mov r3, sb
ldrh r0, [r3, #6]
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r2, #0x2e]
mov r3, sb
ldrh r0, [r3, #8]
ldrh r1, [r1, #2]
adds r0, r0, r1
strh r0, [r2, #0x32]
str r4, [r2, #0x50]
adds r0, r2, #0
adds r0, #0x80
strb r5, [r0]
adds r3, r2, #0
adds r3, #0x6d
ldrb r0, [r3]
movs r1, #4
orrs r0, r1
strb r0, [r3]
adds r0, r4, #0
adds r0, #0x70
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x70
strh r1, [r0]
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
adds r1, r2, #0
adds r1, #0x72
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x6e
ldrb r0, [r0]
subs r1, #4
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
adds r1, #1
strb r0, [r1]
adds r0, r2, #0
bl sub_08016A30
adds r6, #2
movs r0, #6
ands r6, r0
adds r5, #1
movs r0, #3
ands r5, r0
_080412C8:
adds r7, #1
cmp r7, #2
bls _08041250
lsls r1, r6, #1
add r1, r8
ldr r2, _080412FC @ =gRoomControls
ldrh r0, [r2, #6]
ldrh r3, [r1]
adds r0, r0, r3
movs r3, #0
strh r0, [r4, #0x2e]
ldrh r0, [r2, #8]
ldrh r1, [r1, #2]
adds r0, r0, r1
strh r0, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x38
strb r3, [r0]
adds r0, r4, #0
bl sub_08016A30
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080412FC: .4byte gRoomControls
thumb_func_start sub_08041300
sub_08041300: @ 0x08041300
push {lr}
adds r1, r0, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0x25
bne _0804131A
adds r0, r1, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x80
bne _0804131A
movs r0, #1
b _0804132C
_0804131A:
movs r2, #0
ldrb r0, [r1, #0xc]
subs r0, #8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _0804132A
movs r2, #1
_0804132A:
adds r0, r2, #0
_0804132C:
pop {pc}
.align 2, 0