tmc/asm/mazaalHead.s

1853 lines
30 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MazaalHead
MazaalHead: @ 0x08033ED4
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08033EEC @ =gUnk_080CEC88
bl GetNextFunction
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, [r0]
adds r0, r5, #0
bl _call_via_r1
pop {r4, r5, pc}
.align 2, 0
_08033EEC: .4byte gUnk_080CEC88
thumb_func_start sub_08033EF0
sub_08033EF0: @ 0x08033EF0
push {lr}
ldr r2, _08033F04 @ =gUnk_080CECA0
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08033F04: .4byte gUnk_080CECA0
thumb_func_start sub_08033F08
sub_08033F08: @ 0x08033F08
push {lr}
ldr r1, _08033F14 @ =gUnk_080CEC88
bl sub_0804AA30
pop {pc}
.align 2, 0
_08033F14: .4byte gUnk_080CEC88
thumb_func_start nullsub_160
nullsub_160: @ 0x08033F18
bx lr
.align 2, 0
thumb_func_start sub_08033F1C
sub_08033F1C: @ 0x08033F1C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08033F38 @ =gUnk_080CECB4
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_0803499C
pop {r4, pc}
.align 2, 0
_08033F38: .4byte gUnk_080CECB4
thumb_func_start sub_08033F3C
sub_08033F3C: @ 0x08033F3C
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08033F64 @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x42
bhi _08033FFA
ldr r0, _08033F68 @ =gUnk_030010A0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0
beq _08033F6C
adds r0, r4, #0
bl sub_08034420
adds r1, r4, #0
adds r1, #0x81
movs r0, #1
strb r0, [r1]
b _08033F70
.align 2, 0
_08033F64: .4byte gUnk_03003DBC
_08033F68: .4byte gUnk_030010A0
_08033F6C:
movs r0, #1
strb r0, [r4, #0xc]
_08033F70:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r3, r4, #0
adds r3, #0x6d
ldrb r0, [r3]
movs r2, #0
orrs r1, r0
strb r1, [r3]
adds r0, r4, #0
adds r0, #0x80
strb r2, [r0]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
movs r0, #0x36
movs r1, #1
bl CreateEnemy
adds r5, r0, #0
str r4, [r5, #0x50]
movs r0, #0x7e
movs r1, #0
movs r2, #0
bl CreateObject
str r4, [r0, #0x50]
ldr r0, _08033FD0 @ =gUnk_030010A0
adds r0, #0x39
ldrb r1, [r0]
cmp r1, #0
bne _08033FD4
movs r0, #0xd
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
movs r0, #0xfc
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
b _08033FFA
.align 2, 0
_08033FD0: .4byte gUnk_030010A0
_08033FD4:
movs r0, #0x44
movs r1, #0
bl CreateEnemy
str r4, [r0, #0x50]
str r4, [r0, #0x78]
str r0, [r4, #0x74]
movs r0, #0x44
movs r1, #1
bl CreateEnemy
str r4, [r0, #0x50]
str r5, [r0, #0x78]
str r0, [r4, #0x78]
movs r0, #0x36
movs r1, #4
bl CreateEnemy
str r4, [r0, #0x50]
_08033FFA:
pop {r4, r5, pc}
thumb_func_start sub_08033FFC
sub_08033FFC: @ 0x08033FFC
push {r4, lr}
adds r3, r0, #0
ldrb r0, [r3, #0xd]
cmp r0, #7
bls _08034008
b _08034114
_08034008:
lsls r0, r0, #2
ldr r1, _08034014 @ =_08034018
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08034014: .4byte _08034018
_08034018: @ jump table
.4byte _0803413E @ case 0
.4byte _08034038 @ case 1
.4byte _0803413E @ case 2
.4byte _08034056 @ case 3
.4byte _08034068 @ case 4
.4byte _0803413E @ case 5
.4byte _08034090 @ case 6
.4byte _080340C4 @ case 7
_08034038:
movs r0, #2
strb r0, [r3, #0xd]
movs r0, #0x1e
strb r0, [r3, #0xe]
ldr r0, [r3, #0x74]
ldr r2, [r0, #0x74]
movs r1, #1
strb r1, [r2, #0xd]
ldr r0, [r3, #0x78]
ldr r2, [r0, #0x74]
strb r1, [r2, #0xd]
adds r0, r3, #0
bl sub_0801D230
b _0803413E
_08034056:
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0803413E
movs r0, #4
strb r0, [r3, #0xd]
b _0803413E
_08034068:
ldr r0, [r3, #0x34]
ldr r1, _0803408C @ =0xFFFF8000
adds r0, r0, r1
str r0, [r3, #0x34]
movs r0, #0x36
ldrsh r1, [r3, r0]
movs r0, #0xa
rsbs r0, r0, #0
cmp r1, r0
bne _0803413E
movs r0, #5
strb r0, [r3, #0xd]
adds r1, r3, #0
adds r1, #0x81
movs r0, #1
strb r0, [r1]
b _0803413E
.align 2, 0
_0803408C: .4byte 0xFFFF8000
_08034090:
movs r1, #0
movs r0, #7
strb r0, [r3, #0xd]
strb r1, [r3, #0xe]
ldr r2, [r3, #0x74]
movs r1, #1
strb r1, [r2, #0xd]
ldr r2, [r2, #0x74]
movs r0, #4
strb r0, [r2, #0xd]
ldr r2, [r3, #0x78]
strb r1, [r2, #0xd]
ldr r2, [r2, #0x74]
strb r0, [r2, #0xd]
ldr r1, _080340C0 @ =gScreen
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xf4
lsls r0, r0, #4
strh r0, [r2]
adds r1, #0x68
adds r0, #0xc0
strh r0, [r1]
b _0803413E
.align 2, 0
_080340C0: .4byte gScreen
_080340C4:
ldrb r1, [r3, #0xe]
adds r1, #1
strb r1, [r3, #0xe]
lsls r2, r1, #0x18
lsrs r2, r2, #0x19
ldr r4, _08034110 @ =gScreen
movs r0, #0x10
subs r0, r0, r2
lsls r0, r0, #8
orrs r2, r0
adds r0, r4, #0
adds r0, #0x68
strh r2, [r0]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0x1f
bls _0803413E
movs r0, #8
strb r0, [r3, #0xd]
ldr r2, [r3, #0x74]
movs r1, #3
strb r1, [r2, #0xd]
ldr r2, [r2, #0x74]
movs r0, #6
strb r0, [r2, #0xd]
ldr r2, [r3, #0x78]
strb r1, [r2, #0xd]
ldr r2, [r2, #0x74]
strb r0, [r2, #0xd]
ldrb r1, [r3, #0x19]
subs r0, #0x13
ands r0, r1
strb r0, [r3, #0x19]
adds r1, r4, #0
adds r1, #0x66
movs r0, #0
strh r0, [r1]
b _0803413E
.align 2, 0
_08034110: .4byte gScreen
_08034114:
ldr r0, [r3, #0x74]
ldrb r1, [r0, #0x10]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0803413E
ldr r1, _08034140 @ =gRoomControls
ldr r0, _08034144 @ =gLinkEntity
str r0, [r1, #0x30]
adds r0, r3, #0
bl sub_08034420
ldr r0, _08034148 @ =gLinkState
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bl sub_080791D0
movs r0, #0x2e
bl PlaySFX
_0803413E:
pop {r4, pc}
.align 2, 0
_08034140: .4byte gRoomControls
_08034144: .4byte gLinkEntity
_08034148: .4byte gLinkState
thumb_func_start sub_0803414C
sub_0803414C: @ 0x0803414C
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _08034194 @ =gRoomControls
ldrh r0, [r1, #6]
adds r2, r0, #0
adds r2, #0xb8
ldrh r0, [r1, #8]
adds r3, r0, #0
adds r3, #0x48
movs r1, #0x2e
ldrsh r0, [r4, r1]
subs r0, r0, r2
adds r0, #1
cmp r0, #2
bhi _080341A2
movs r5, #0x32
ldrsh r0, [r4, r5]
subs r0, r0, r3
adds r0, #1
cmp r0, #2
bhi _080341A2
adds r0, r4, #0
bl sub_080349D8
cmp r0, #0
beq _080341B6
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _08034198
movs r0, #0
strb r0, [r4, #0xd]
adds r0, r4, #0
movs r1, #0x1e
bl sub_0803442C
b _080341B6
.align 2, 0
_08034194: .4byte gRoomControls
_08034198:
adds r0, r4, #0
movs r1, #0x5a
bl sub_0803442C
b _080341B6
_080341A2:
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r5, #0x32
ldrsh r1, [r4, r5]
bl sub_080045D4
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F69C
_080341B6:
pop {r4, r5, pc}
thumb_func_start sub_080341B8
sub_080341B8: @ 0x080341B8
push {r4, lr}
adds r4, r0, #0
bl sub_080349D8
cmp r0, #0
beq _080341CC
adds r0, r4, #0
movs r1, #0x2d
bl sub_0803442C
_080341CC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080341D0
sub_080341D0: @ 0x080341D0
push {lr}
adds r2, r0, #0
adds r0, #0x80
ldrb r1, [r0]
movs r0, #3
ands r0, r1
cmp r0, #3
beq _080341F2
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080341F2
adds r0, r2, #0
bl sub_0803443C
_080341F2:
pop {pc}
thumb_func_start sub_080341F4
sub_080341F4: @ 0x080341F4
push {r4, lr}
adds r4, r0, #0
bl sub_080347B4
adds r0, r4, #0
bl sub_080349D8
cmp r0, #0
beq _0803420C
adds r0, r4, #0
bl sub_08034420
_0803420C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08034210
sub_08034210: @ 0x08034210
push {r4, lr}
adds r4, r0, #0
bl sub_080347B4
adds r0, r4, #0
adds r0, #0x7d
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08034238
adds r0, r4, #0
bl sub_080349D8
cmp r0, #0
beq _08034238
adds r0, r4, #0
bl sub_08034420
b _0803423E
_08034238:
adds r0, r4, #0
bl sub_08034830
_0803423E:
pop {r4, pc}
thumb_func_start sub_08034240
sub_08034240: @ 0x08034240
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7e
ldrh r0, [r1]
cmp r0, #0
beq _08034260
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x95
bhi _08034260
adds r0, r4, #0
bl sub_0803473C
_08034260:
adds r0, r4, #0
bl sub_080349D8
cmp r0, #0
beq _08034270
adds r0, r4, #0
bl sub_08034420
_08034270:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08034274
sub_08034274: @ 0x08034274
push {r4, lr}
adds r4, r0, #0
bl sub_080349D8
cmp r0, #0
beq _08034288
adds r0, r4, #0
bl sub_08034420
b _0803429E
_08034288:
adds r0, r4, #0
bl sub_0803473C
adds r0, r4, #0
bl sub_08034A10
cmp r0, #0
beq _0803429E
adds r0, r4, #0
bl sub_080347FC
_0803429E:
pop {r4, pc}
thumb_func_start sub_080342A0
sub_080342A0: @ 0x080342A0
push {r4, lr}
adds r4, r0, #0
bl sub_080349D8
cmp r0, #0
beq _080342B2
adds r0, r4, #0
bl sub_08034420
_080342B2:
pop {r4, pc}
thumb_func_start sub_080342B4
sub_080342B4: @ 0x080342B4
push {lr}
adds r1, r0, #0
adds r0, #0x7e
ldrh r0, [r0]
cmp r0, #0xff
bne _080342C6
adds r0, r1, #0
bl sub_08034420
_080342C6:
pop {pc}
thumb_func_start sub_080342C8
sub_080342C8: @ 0x080342C8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
adds r1, r0, #0
cmp r1, #0
beq _08034304
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080342E4
ldr r0, _080342FC @ =0x00000115
bl PlaySFX
_080342E4:
ldr r2, _08034300 @ =gUnk_080CECEC
ldrb r0, [r4, #0xe]
lsrs r0, r0, #1
movs r1, #7
ands r0, r1
adds r0, r0, r2
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x62
strb r1, [r0]
b _08034340
.align 2, 0
_080342FC: .4byte 0x00000115
_08034300: .4byte gUnk_080CECEC
_08034304:
adds r0, r4, #0
adds r0, #0x62
strb r1, [r0]
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08034340
movs r0, #0xc
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x7e
movs r1, #0
movs r0, #0xe1
lsls r0, r0, #3
strh r0, [r2]
adds r0, r4, #0
adds r0, #0x7d
strb r1, [r0]
adds r0, #4
strb r1, [r0]
movs r0, #0x1e
movs r1, #0
bl sub_08080964
ldr r0, _08034344 @ =0x000001A1
bl PlaySFX
_08034340:
pop {r4, pc}
.align 2, 0
_08034344: .4byte 0x000001A1
thumb_func_start sub_08034348
sub_08034348: @ 0x08034348
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7e
ldrh r0, [r1]
cmp r0, #0
beq _0803435C
subs r0, #1
strh r0, [r1]
b _08034388
_0803435C:
ldrh r2, [r4, #0x36]
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0xa
rsbs r0, r0, #0
cmp r1, r0
ble _08034370
subs r0, r2, #1
strh r0, [r4, #0x36]
b _08034388
_08034370:
adds r0, r4, #0
bl sub_080349D8
cmp r0, #0
beq _08034388
adds r1, r4, #0
adds r1, #0x81
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08034420
_08034388:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0803438C
sub_0803438C: @ 0x0803438C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
adds r1, r0, #0
cmp r1, #0
bne _080343A0
adds r0, r5, #0
adds r0, #0x45
strb r1, [r0]
b _08034414
_080343A0:
subs r2, r0, #1
strb r2, [r5, #0xe]
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xc0
bls _080343C4
ldr r0, _080343C0 @ =gUnk_080CED06
movs r1, #3
ands r2, r1
adds r0, r2, r0
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x62
strb r1, [r0]
b _08034414
.align 2, 0
_080343C0: .4byte gUnk_080CED06
_080343C4:
movs r0, #0x1f
ands r2, r0
cmp r2, #0
bne _08034414
ldr r4, _08034418 @ =gUnk_080CED02
bl Random
movs r1, #3
ands r1, r0
adds r1, r1, r4
ldrb r1, [r1]
adds r0, r5, #0
movs r2, #0
bl CreateFx
adds r2, r0, #0
cmp r2, #0
beq _08034414
ldrb r1, [r5, #0xe]
lsrs r1, r1, #4
ldr r0, _0803441C @ =gUnk_080CECF4
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r3, [r2, #0x2e]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
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]
_08034414:
pop {r4, r5, pc}
.align 2, 0
_08034418: .4byte gUnk_080CED02
_0803441C: .4byte gUnk_080CECF4
thumb_func_start sub_08034420
sub_08034420: @ 0x08034420
movs r1, #2
strb r1, [r0, #0xc]
adds r0, #0x7d
movs r1, #3
strb r1, [r0]
bx lr
thumb_func_start sub_0803442C
sub_0803442C: @ 0x0803442C
movs r2, #4
strb r2, [r0, #0xc]
strb r1, [r0, #0xe]
adds r0, #0x7d
movs r1, #3
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_0803443C
sub_0803443C: @ 0x0803443C
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x7d
movs r0, #0
strb r0, [r1]
ldr r0, _0803445C @ =gUnk_030010A0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0x1e
bhi _08034460
adds r0, r2, #0
bl sub_080344BC
b _08034472
.align 2, 0
_0803445C: .4byte gUnk_030010A0
_08034460:
cmp r0, #0x3c
bhi _0803446C
adds r0, r2, #0
bl sub_08034498
b _08034472
_0803446C:
adds r0, r2, #0
bl sub_08034474
_08034472:
pop {pc}
thumb_func_start sub_08034474
sub_08034474: @ 0x08034474
push {r4, lr}
ldr r2, _08034494 @ =gUnk_080CED0C
adds r4, r0, #0
adds r4, #0x7c
ldrb r1, [r4]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldrb r0, [r4]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_08034494: .4byte gUnk_080CED0C
thumb_func_start sub_08034498
sub_08034498: @ 0x08034498
push {r4, lr}
ldr r2, _080344B8 @ =gUnk_080CED2C
adds r4, r0, #0
adds r4, #0x7c
ldrb r1, [r4]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldrb r0, [r4]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_080344B8: .4byte gUnk_080CED2C
thumb_func_start sub_080344BC
sub_080344BC: @ 0x080344BC
push {r4, lr}
ldr r2, _080344DC @ =gUnk_080CED4C
adds r4, r0, #0
adds r4, #0x7c
ldrb r1, [r4]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldrb r0, [r4]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_080344DC: .4byte gUnk_080CED4C
thumb_func_start sub_080344E0
sub_080344E0: @ 0x080344E0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x80
ldrb r1, [r0]
movs r0, #5
ands r0, r1
cmp r0, #0
beq _080344F8
adds r0, r4, #0
bl sub_080345A0
b _0803451A
_080344F8:
movs r0, #0xa
ands r0, r1
cmp r0, #0
bne _0803450C
bl Random
movs r1, #1
ands r1, r0
cmp r1, #0
beq _08034514
_0803450C:
adds r0, r4, #0
bl sub_080345B8
b _0803451A
_08034514:
adds r0, r4, #0
bl sub_080345A0
_0803451A:
pop {r4, pc}
thumb_func_start sub_0803451C
sub_0803451C: @ 0x0803451C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x80
ldrb r1, [r0]
movs r0, #5
ands r0, r1
cmp r0, #0
bne _08034548
movs r0, #0xa
ands r0, r1
cmp r0, #0
beq _0803453C
adds r0, r4, #0
bl sub_08034638
b _08034556
_0803453C:
bl Random
movs r1, #1
ands r1, r0
cmp r1, #0
beq _08034550
_08034548:
adds r0, r4, #0
bl sub_08034618
b _08034556
_08034550:
adds r0, r4, #0
bl sub_08034638
_08034556:
pop {r4, pc}
thumb_func_start sub_08034558
sub_08034558: @ 0x08034558
push {r4, lr}
adds r4, r0, #0
bl Random
movs r1, #1
ands r1, r0
cmp r1, #0
beq _08034570
adds r0, r4, #0
bl sub_08034658
b _08034576
_08034570:
adds r0, r4, #0
bl sub_0803467C
_08034576:
pop {r4, pc}
thumb_func_start sub_08034578
sub_08034578: @ 0x08034578
push {r4, lr}
adds r4, r0, #0
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x7d
strb r1, [r0]
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #0
bl sub_080348A4
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #0
bl sub_080348A4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080345A0
sub_080345A0: @ 0x080345A0
push {lr}
movs r1, #5
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x7d
movs r1, #1
strb r1, [r2]
ldr r1, [r0, #0x78]
movs r2, #1
bl sub_080348A4
pop {pc}
thumb_func_start sub_080345B8
sub_080345B8: @ 0x080345B8
push {lr}
movs r1, #5
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x7d
movs r1, #2
strb r1, [r2]
ldr r1, [r0, #0x74]
movs r2, #1
bl sub_080348A4
pop {pc}
thumb_func_start sub_080345D0
sub_080345D0: @ 0x080345D0
push {r4, lr}
adds r4, r0, #0
movs r0, #6
strb r0, [r4, #0xc]
bl Random
movs r1, #1
ands r1, r0
cmp r1, #0
beq _080345FE
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #2
bl sub_080348A4
cmp r0, #0
bne _08034616
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #2
bl sub_080348A4
b _08034616
_080345FE:
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #2
bl sub_080348A4
cmp r0, #0
bne _08034616
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #2
bl sub_080348A4
_08034616:
pop {r4, pc}
thumb_func_start sub_08034618
sub_08034618: @ 0x08034618
push {lr}
movs r1, #7
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x7d
movs r1, #1
strb r1, [r2]
adds r2, #1
movs r1, #0xb4
strh r1, [r2]
ldr r1, [r0, #0x78]
movs r2, #3
bl sub_080348A4
pop {pc}
.align 2, 0
thumb_func_start sub_08034638
sub_08034638: @ 0x08034638
push {lr}
movs r1, #7
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x7d
movs r1, #2
strb r1, [r2]
adds r2, #1
movs r1, #0xb4
strh r1, [r2]
ldr r1, [r0, #0x74]
movs r2, #3
bl sub_080348A4
pop {pc}
.align 2, 0
thumb_func_start sub_08034658
sub_08034658: @ 0x08034658
push {r4, lr}
movs r2, #0
movs r1, #8
strb r1, [r0, #0xc]
adds r4, r0, #0
adds r4, #0x7d
strb r2, [r4]
ldr r1, [r0, #0x78]
movs r2, #4
bl sub_080348A4
cmp r0, #0
bne _0803467A
ldrb r0, [r4]
movs r1, #0x40
orrs r0, r1
strb r0, [r4]
_0803467A:
pop {r4, pc}
thumb_func_start sub_0803467C
sub_0803467C: @ 0x0803467C
push {r4, lr}
movs r2, #0
movs r1, #8
strb r1, [r0, #0xc]
adds r4, r0, #0
adds r4, #0x7d
strb r2, [r4]
ldr r1, [r0, #0x74]
movs r2, #4
bl sub_080348A4
cmp r0, #0
bne _0803469E
ldrb r0, [r4]
movs r1, #0x40
orrs r0, r1
strb r0, [r4]
_0803469E:
pop {r4, pc}
thumb_func_start sub_080346A0
sub_080346A0: @ 0x080346A0
push {r4, lr}
adds r4, r0, #0
movs r1, #0
movs r0, #9
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x7d
strb r1, [r0]
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #6
bl sub_080348A4
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #6
bl sub_080348A4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080346C8
sub_080346C8: @ 0x080346C8
push {r4, lr}
adds r4, r0, #0
movs r1, #0
movs r0, #0xa
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x7e
strh r1, [r0]
bl Random
movs r1, #1
ands r1, r0
cmp r1, #0
beq _0803470C
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #8
bl sub_080348A4
cmp r0, #0
beq _080346F6
ldr r1, [r4, #0x78]
b _0803471C
_080346F6:
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #7
bl sub_080348A4
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #8
bl sub_080348A4
b _0803473A
_0803470C:
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #8
bl sub_080348A4
cmp r0, #0
beq _08034726
ldr r1, [r4, #0x74]
_0803471C:
adds r0, r4, #0
movs r2, #7
bl sub_080348A4
b _0803473A
_08034726:
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #8
bl sub_080348A4
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #7
bl sub_080348A4
_0803473A:
pop {r4, pc}
thumb_func_start sub_0803473C
sub_0803473C: @ 0x0803473C
push {r4, r5, lr}
adds r3, r0, #0
adds r0, #0x7d
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08034764
ldr r0, [r3, #0x74]
ldrb r0, [r0, #0xc]
cmp r0, #0x28
bhi _080347B0
ldr r0, _08034760 @ =gLinkEntity
movs r1, #0x2e
ldrsh r0, [r0, r1]
adds r2, r0, #0
subs r2, #0x60
b _08034776
.align 2, 0
_08034760: .4byte gLinkEntity
_08034764:
ldr r0, [r3, #0x78]
ldrb r0, [r0, #0xc]
cmp r0, #0x28
bhi _080347B0
ldr r0, _08034790 @ =gLinkEntity
movs r5, #0x2e
ldrsh r0, [r0, r5]
adds r2, r0, #0
adds r2, #0x60
_08034776:
ldr r0, _08034794 @ =gRoomControls
ldrh r4, [r0, #6]
subs r0, r2, #4
movs r5, #0x2e
ldrsh r1, [r3, r5]
cmp r0, r1
bls _08034798
adds r0, r4, #0
adds r0, #0xe0
cmp r0, r1
blo _080347B0
movs r0, #8
b _080347A8
.align 2, 0
_08034790: .4byte gLinkEntity
_08034794: .4byte gRoomControls
_08034798:
adds r0, r2, #4
cmp r0, r1
bhs _080347B0
adds r0, r4, #0
adds r0, #0x90
cmp r0, r1
bhi _080347B0
movs r0, #0x18
_080347A8:
strb r0, [r3, #0x15]
adds r0, r3, #0
bl sub_0806F69C
_080347B0:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080347B4
sub_080347B4: @ 0x080347B4
push {r4, r5, lr}
adds r2, r0, #0
ldr r0, _080347D8 @ =gLinkEntity
movs r1, #0x2e
ldrsh r3, [r0, r1]
ldr r0, _080347DC @ =gRoomControls
ldrh r4, [r0, #6]
subs r0, r3, #4
movs r5, #0x2e
ldrsh r1, [r2, r5]
cmp r0, r1
bls _080347E0
adds r0, r4, #0
adds r0, #0xe0
cmp r0, r1
blo _080347F8
movs r0, #8
b _080347F0
.align 2, 0
_080347D8: .4byte gLinkEntity
_080347DC: .4byte gRoomControls
_080347E0:
adds r0, r3, #4
cmp r0, r1
bhs _080347F8
adds r0, r4, #0
adds r0, #0x90
cmp r0, r1
bhi _080347F8
movs r0, #0x18
_080347F0:
strb r0, [r2, #0x15]
adds r0, r2, #0
bl sub_0806F69C
_080347F8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080347FC
sub_080347FC: @ 0x080347FC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x7d
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08034818
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #5
bl sub_080348A4
b _08034822
_08034818:
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #5
bl sub_080348A4
_08034822:
adds r2, r4, #0
adds r2, #0x7d
ldrb r1, [r2]
movs r0, #0x20
orrs r0, r1
strb r0, [r2]
pop {r4, pc}
thumb_func_start sub_08034830
sub_08034830: @ 0x08034830
push {r4, lr}
adds r4, r0, #0
bl sub_080349D8
cmp r0, #0
beq _0803484C
adds r1, r4, #0
adds r1, #0x7d
movs r0, #0x80
strb r0, [r1]
adds r0, r4, #0
bl sub_080345D0
b _080348A0
_0803484C:
adds r0, r4, #0
bl sub_08034A10
cmp r0, #0
beq _080348A0
adds r0, r4, #0
adds r0, #0x80
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
cmp r0, #0
beq _08034876
adds r0, r4, #0
bl sub_080349D8
cmp r0, #0
beq _080348A0
adds r0, r4, #0
bl sub_08034420
b _080348A0
_08034876:
adds r2, r4, #0
adds r2, #0x7d
ldrb r0, [r2]
movs r1, #0x20
orrs r1, r0
strb r1, [r2]
movs r0, #0x10
ands r1, r0
cmp r1, #0
beq _08034896
ldr r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #2
bl sub_080348A4
b _080348A0
_08034896:
ldr r1, [r4, #0x74]
adds r0, r4, #0
movs r2, #2
bl sub_080348A4
_080348A0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080348A4
sub_080348A4: @ 0x080348A4
push {r4, r5, lr}
adds r4, r0, #0
adds r3, r1, #0
adds r5, r2, #0
ldrb r0, [r3, #0xa]
cmp r0, #0
bne _080348C6
movs r2, #5
movs r0, #0x7d
adds r0, r0, r4
mov ip, r0
ldrb r1, [r0]
movs r0, #0x10
orrs r0, r1
mov r1, ip
strb r0, [r1]
b _080348C8
_080348C6:
movs r2, #0xa
_080348C8:
adds r0, r4, #0
adds r0, #0x80
ldrb r0, [r0]
ands r0, r2
cmp r0, #0
beq _080348F0
adds r0, r4, #0
adds r0, #0x7d
ldrb r2, [r0]
ldrb r1, [r3, #0xa]
adds r3, r0, #0
cmp r1, #0
bne _080348E6
movs r0, #1
b _080348E8
_080348E6:
movs r0, #2
_080348E8:
orrs r0, r2
strb r0, [r3]
movs r0, #0
b _08034998
_080348F0:
cmp r5, #8
bhi _08034996
lsls r0, r5, #2
ldr r1, _08034900 @ =_08034904
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08034900: .4byte _08034904
_08034904: @ jump table
.4byte _08034928 @ case 0
.4byte _0803492E @ case 1
.4byte _0803493C @ case 2
.4byte _0803494A @ case 3
.4byte _0803493C @ case 4
.4byte _08034958 @ case 5
.4byte _08034966 @ case 6
.4byte _0803496C @ case 7
.4byte _08034982 @ case 8
_08034928:
movs r0, #3
strb r0, [r3, #0xc]
b _08034996
_0803492E:
movs r0, #4
strb r0, [r3, #0xc]
adds r1, r3, #0
adds r1, #0x7c
movs r0, #3
strb r0, [r1]
b _08034996
_0803493C:
movs r0, #4
strb r0, [r3, #0xc]
adds r1, r3, #0
adds r1, #0x7c
movs r0, #1
strb r0, [r1]
b _08034996
_0803494A:
movs r0, #0xf
strb r0, [r3, #0xc]
adds r1, r3, #0
adds r1, #0x7e
movs r0, #0xb4
strh r0, [r1]
b _08034996
_08034958:
movs r0, #0xf
strb r0, [r3, #0xc]
adds r1, r3, #0
adds r1, #0x7e
movs r0, #1
strh r0, [r1]
b _08034996
_08034966:
movs r0, #0x1e
strb r0, [r3, #0xc]
b _08034996
_0803496C:
movs r0, #0x1b
strb r0, [r3, #0xc]
ldrb r1, [r3, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r3, #0x10]
adds r0, r3, #0
movs r1, #5
bl InitializeAnimation
b _08034996
_08034982:
ldrb r0, [r3, #0xa]
adds r2, r0, #2
movs r0, #0x36
adds r1, r2, #0
bl CreateEnemy
adds r3, r0, #0
cmp r3, #0
beq _08034996
str r4, [r3, #0x50]
_08034996:
movs r0, #1
_08034998:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0803499C
sub_0803499C: @ 0x0803499C
push {lr}
adds r3, r0, #0
adds r0, #0x80
ldrb r1, [r0]
movs r0, #0xc
ands r0, r1
cmp r0, #0xc
beq _080349D0
adds r0, r3, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
beq _080349D0
ldr r2, _080349D4 @ =gUnk_080CED6C
ldrb r0, [r3, #0xf]
adds r0, #1
strb r0, [r3, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1c
movs r1, #7
ands r0, r1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r3, #0x36]
_080349D0:
pop {pc}
.align 2, 0
_080349D4: .4byte gUnk_080CED6C
thumb_func_start sub_080349D8
sub_080349D8: @ 0x080349D8
push {lr}
adds r2, r0, #0
adds r0, #0x7d
ldrb r0, [r0]
movs r1, #3
ands r1, r0
cmp r1, #3
beq _08034A08
cmp r1, #1
bne _080349F6
adds r0, r2, #0
adds r0, #0x80
ldrb r1, [r0]
movs r0, #0xa
b _08034A02
_080349F6:
cmp r1, #2
bne _08034A0C
adds r0, r2, #0
adds r0, #0x80
ldrb r1, [r0]
movs r0, #5
_08034A02:
ands r0, r1
cmp r0, #0
beq _08034A0C
_08034A08:
movs r0, #1
b _08034A0E
_08034A0C:
movs r0, #0
_08034A0E:
pop {pc}
thumb_func_start sub_08034A10
sub_08034A10: @ 0x08034A10
push {r4, lr}
adds r1, r0, #0
adds r3, r1, #0
adds r3, #0x7d
ldrb r2, [r3]
movs r0, #0x60
ands r0, r2
cmp r0, #0x40
beq _08034A52
movs r0, #0x10
ands r0, r2
cmp r0, #0
beq _08034A56
adds r4, r1, #0
adds r4, #0x80
ldrb r1, [r4]
movs r0, #5
ands r0, r1
cmp r0, #0
beq _08034A3E
movs r0, #0x40
orrs r0, r2
strb r0, [r3]
_08034A3E:
ldrb r1, [r4]
movs r0, #0xa
ands r0, r1
cmp r0, #0
beq _08034A7E
ldrb r1, [r3]
movs r0, #3
ands r0, r1
cmp r0, #1
bne _08034A7E
_08034A52:
movs r0, #1
b _08034A80
_08034A56:
adds r4, r1, #0
adds r4, #0x80
ldrb r1, [r4]
movs r0, #0xa
ands r0, r1
cmp r0, #0
beq _08034A6A
movs r0, #0x40
orrs r0, r2
strb r0, [r3]
_08034A6A:
ldrb r1, [r4]
movs r0, #5
ands r0, r1
cmp r0, #0
beq _08034A7E
ldrb r1, [r3]
movs r0, #3
ands r0, r1
cmp r0, #2
beq _08034A52
_08034A7E:
movs r0, #0
_08034A80:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08034A84
sub_08034A84: @ 0x08034A84
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _08034A98
adds r0, r4, #0
bl DeleteEntity
b _08034AC2
_08034A98:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08034ABA
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
_08034ABA:
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl CopyPositionAndSpriteOffset
_08034AC2:
pop {r4, pc}
thumb_func_start sub_08034AC4
sub_08034AC4: @ 0x08034AC4
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
movs r3, #0x80
lsls r3, r3, #9
adds r1, r4, #0
movs r2, #0
bl PositionRelative
ldr r1, _08034AE8 @ =gUnk_080CED74
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_08034AE8: .4byte gUnk_080CED74
thumb_func_start sub_08034AEC
sub_08034AEC: @ 0x08034AEC
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0x1e
strb r1, [r0, #0xe]
ldrb r1, [r0, #0xa]
adds r1, #1
bl InitializeAnimation
ldr r0, _08034B08 @ =0x00000151
bl PlaySFX
pop {pc}
.align 2, 0
_08034B08: .4byte 0x00000151
thumb_func_start sub_08034B0C
sub_08034B0C: @ 0x08034B0C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08034B1A
subs r0, #1
b _08034B34
_08034B1A:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08034B36
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x50
_08034B34:
strb r0, [r4, #0xe]
_08034B36:
pop {r4, pc}
thumb_func_start sub_08034B38
sub_08034B38: @ 0x08034B38
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08034B58
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xa]
adds r1, #3
adds r0, r4, #0
bl InitializeAnimation
b _08034B9A
_08034B58:
movs r0, #0xe
bl sub_080A7EE0
adds r5, r0, #0
cmp r5, #0
beq _08034B9A
ldrb r0, [r4, #0xa]
subs r0, #2
strb r0, [r5, #0xa]
lsls r0, r0, #0x18
cmp r0, #0
bne _08034B78
ldrb r1, [r4, #0xe]
movs r0, #0xa8
subs r0, r0, r1
b _08034B7C
_08034B78:
ldrb r0, [r4, #0xe]
adds r0, #0x58
_08034B7C:
strb r0, [r5, #0x15]
ldrb r0, [r5, #0xa]
lsls r0, r0, #1
ldr r1, _08034B9C @ =gUnk_080CED84
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl PositionRelative
_08034B9A:
pop {r4, r5, pc}
.align 2, 0
_08034B9C: .4byte gUnk_080CED84
thumb_func_start sub_08034BA0
sub_08034BA0: @ 0x08034BA0
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08034BC4
ldr r0, [r4, #0x50]
adds r0, #0x7e
movs r1, #0xff
strh r1, [r0]
adds r0, r4, #0
bl DeleteEntity
_08034BC4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08034BC8
sub_08034BC8: @ 0x08034BC8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08034BDE
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl InitializeAnimation
_08034BDE:
ldr r0, [r4, #0x50]
adds r1, r4, #0
movs r2, #0
movs r3, #1
bl sub_0806FA90
adds r0, r4, #0
bl sub_0800445C
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08034BFE
adds r0, r4, #0
bl sub_08034C00
_08034BFE:
pop {r4, pc}
thumb_func_start sub_08034C00
sub_08034C00: @ 0x08034C00
push {r4, lr}
adds r3, r0, #0
ldr r0, _08034C44 @ =gLinkState
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08034C5A
movs r1, #0x2e
ldrsh r0, [r3, r1]
ldr r2, _08034C48 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
movs r4, #0x32
ldrsh r1, [r3, r4]
ldrh r2, [r2, #8]
subs r1, r1, r2
adds r1, #0xd
movs r2, #3
movs r3, #3
bl CheckPlayerInRegion
cmp r0, #0
beq _08034C5A
ldr r0, _08034C4C @ =gUnk_030010A0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0x3c
bls _08034C54
ldr r0, _08034C50 @ =gUnk_080CED88
bl DoExitTransition
b _08034C5A
.align 2, 0
_08034C44: .4byte gLinkState
_08034C48: .4byte gRoomControls
_08034C4C: .4byte gUnk_030010A0
_08034C50: .4byte gUnk_080CED88
_08034C54:
ldr r0, _08034C5C @ =gUnk_080CED9C
bl DoExitTransition
_08034C5A:
pop {r4, pc}
.align 2, 0
_08034C5C: .4byte gUnk_080CED9C