tmc/asm/helmasaur.s

937 lines
16 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Helmasaur
Helmasaur: @ 0x0802BB6C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0802BB94
ldr r1, _0802BB90 @ =gUnk_080CD3E4
adds r0, r4, #0
bl EnemyFunctionHandler
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #0
movs r2, #1
bl SetChildOffset
b _0802BBA4
.align 2, 0
_0802BB90: .4byte gUnk_080CD3E4
_0802BB94:
ldr r0, _0802BBA8 @ =gUnk_080CD3FC
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_0802BBA4:
pop {r4, pc}
.align 2, 0
_0802BBA8: .4byte gUnk_080CD3FC
thumb_func_start sub_0802BBAC
sub_0802BBAC: @ 0x0802BBAC
push {lr}
ldr r2, _0802BBC0 @ =gUnk_080CD408
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0802BBC0: .4byte gUnk_080CD408
thumb_func_start sub_0802BBC4
sub_0802BBC4: @ 0x0802BBC4
push {r4, lr}
adds r4, r0, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0x19
beq _0802BBFE
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
cmp r1, #0
beq _0802BBEA
cmp r1, #0
blt _0802BBFE
cmp r1, #3
bgt _0802BBFE
cmp r1, #2
blt _0802BBFE
_0802BBEA:
ldrb r0, [r4, #0xc]
cmp r0, #4
bne _0802BBFE
adds r1, r4, #0
adds r1, #0x42
movs r0, #0
strb r0, [r1]
adds r0, r4, #0
bl sub_0802C218
_0802BBFE:
adds r0, r4, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _0802BC10
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_0802BC10:
ldr r1, _0802BC1C @ =gUnk_080CD3E4
adds r0, r4, #0
bl sub_0804AA30
pop {r4, pc}
.align 2, 0
_0802BC1C: .4byte gUnk_080CD3E4
thumb_func_start sub_0802BC20
sub_0802BC20: @ 0x0802BC20
push {r4, lr}
adds r4, r0, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0x19
beq _0802BC4C
adds r0, r4, #0
bl sub_0806F520
cmp r0, #0
beq _0802BC6C
ldr r0, _0802BC48 @ =gUnk_080CD42C
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _0802BC6C
.align 2, 0
_0802BC48: .4byte gUnk_080CD42C
_0802BC4C:
ldrb r0, [r4, #0xd]
cmp r0, #2
bhi _0802BC5C
adds r0, r4, #0
bl sub_0806F520
cmp r0, #0
beq _0802BC6C
_0802BC5C:
ldr r0, _0802BC70 @ =gUnk_080CD438
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_0802BC6C:
pop {r4, pc}
.align 2, 0
_0802BC70: .4byte gUnk_080CD438
thumb_func_start sub_0802BC74
sub_0802BC74: @ 0x0802BC74
push {r4, lr}
adds r4, r0, #0
bl sub_0802C1C0
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0x3c
strb r0, [r4, #0x1d]
ldr r0, _0802BC9C @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
movs r1, #2
eors r0, r1
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl InitializeAnimation
pop {r4, pc}
.align 2, 0
_0802BC9C: .4byte gLinkEntity
thumb_func_start sub_0802BCA0
sub_0802BCA0: @ 0x0802BCA0
push {lr}
bl sub_0806F4E8
pop {pc}
thumb_func_start sub_0802BCA8
sub_0802BCA8: @ 0x0802BCA8
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x3f
ldrb r0, [r1]
cmp r0, #0x19
beq _0802BCFA
movs r0, #7
strb r0, [r4, #0xc]
movs r0, #0x5a
strb r0, [r4, #0xe]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r4, #0x20]
movs r0, #0x19
strb r0, [r1]
adds r2, r4, #0
adds r2, #0x3a
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
movs r0, #0x12
strb r0, [r4, #0x1c]
movs r0, #0x20
movs r1, #1
bl CreateEnemy
adds r1, r0, #0
cmp r1, #0
beq _0802BCF0
ldrb r0, [r4, #0x14]
strb r0, [r1, #0x14]
adds r0, r4, #0
bl CopyPosition
_0802BCF0:
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl InitializeAnimation
_0802BCFA:
pop {r4, pc}
thumb_func_start sub_0802BCFC
sub_0802BCFC: @ 0x0802BCFC
movs r1, #1
strb r1, [r0, #0xd]
movs r1, #0x3c
strb r1, [r0, #0x1d]
bx lr
.align 2, 0
thumb_func_start sub_0802BD08
sub_0802BD08: @ 0x0802BD08
push {lr}
bl sub_0806F3E4
pop {pc}
thumb_func_start sub_0802BD10
sub_0802BD10: @ 0x0802BD10
push {lr}
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
movs r1, #2
bl InitializeAnimationAnimation
pop {pc}
.align 2, 0
thumb_func_start nullsub_145
nullsub_145: @ 0x0802BD24
bx lr
.align 2, 0
thumb_func_start sub_0802BD28
sub_0802BD28: @ 0x0802BD28
push {lr}
adds r2, r0, #0
ldrb r3, [r2, #0x10]
movs r0, #0x80
ands r0, r3
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _0802BD4C
movs r0, #0x80
orrs r0, r3
strb r0, [r2, #0x10]
adds r2, #0x3a
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
b _0802BD52
_0802BD4C:
adds r0, r2, #0
adds r0, #0x45
strb r1, [r0]
_0802BD52:
pop {pc}
thumb_func_start sub_0802BD54
sub_0802BD54: @ 0x0802BD54
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
movs r0, #1
strb r0, [r4, #0xc]
bl Random
adds r1, r4, #0
adds r1, #0x78
strb r0, [r1]
movs r0, #0x3c
strb r0, [r4, #0x1d]
adds r1, #1
movs r0, #0xff
strb r0, [r1]
bl Random
movs r1, #0x18
ands r0, r1
strb r0, [r4, #0x15]
lsrs r0, r0, #3
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl InitializeAnimation
pop {r4, pc}
thumb_func_start sub_0802BD8C
sub_0802BD8C: @ 0x0802BD8C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0802BD9C
subs r0, #1
strb r0, [r4, #0xe]
b _0802BDDE
_0802BD9C:
adds r0, r4, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _0802BDCA
adds r0, r4, #0
movs r1, #1
movs r2, #0x10
bl sub_0804A024
adds r1, r0, #0
cmp r1, #0xff
beq _0802BDCA
adds r0, r4, #0
adds r0, #0x79
ldrb r0, [r0]
cmp r1, r0
beq _0802BDCA
adds r0, r4, #0
bl sub_0802C058
b _0802BDDE
_0802BDCA:
adds r0, r4, #0
bl sub_0802C020
adds r1, r0, #0
ldrb r0, [r4, #0x15]
cmp r1, r0
beq _0802BDDE
adds r0, r4, #0
bl sub_0802C058
_0802BDDE:
pop {r4, pc}
thumb_func_start sub_0802BDE0
sub_0802BDE0: @ 0x0802BDE0
push {r4, lr}
adds r4, r0, #0
bl sub_0802C06C
cmp r0, #0
beq _0802BDFE
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x79
movs r0, #0xff
strb r0, [r1]
b _0802BE16
_0802BDFE:
movs r0, #1
strb r0, [r4, #0xc]
bl Random
movs r1, #0xf
ands r0, r1
adds r0, #0xf
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x79
strb r1, [r0]
_0802BE16:
pop {r4, pc}
thumb_func_start sub_0802BE18
sub_0802BE18: @ 0x0802BE18
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl InitializeAnimationAnimation
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802BE3E
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
b _0802BE44
_0802BE3E:
adds r0, r4, #0
bl sub_0802C18C
_0802BE44:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802BE48
sub_0802BE48: @ 0x0802BE48
push {r4, lr}
adds r4, r0, #0
bl sub_080AEFE0
cmp r0, #0
bne _0802BE64
adds r0, r4, #0
bl sub_0802C218
movs r0, #8
movs r1, #0
bl sub_08080964
b _0802BE7E
_0802BE64:
adds r0, r4, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0802C1CC
adds r0, r4, #0
bl sub_0802C0E8
cmp r0, #0
beq _0802BE7E
movs r0, #5
strb r0, [r4, #0xc]
_0802BE7E:
pop {r4, pc}
thumb_func_start sub_0802BE80
sub_0802BE80: @ 0x0802BE80
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x24]
subs r0, #0x20
strh r0, [r4, #0x24]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xff
ble _0802BE98
adds r0, r4, #0
bl sub_0802C1CC
_0802BE98:
movs r1, #0x24
ldrsh r0, [r4, r1]
cmp r0, #0
ble _0802BEAE
adds r0, r4, #0
bl sub_080AEFE0
adds r0, r4, #0
bl sub_0802C18C
b _0802BEBA
_0802BEAE:
adds r0, r4, #0
bl sub_0802C1C0
ldrb r0, [r4, #0xe]
adds r0, #0x1e
strb r0, [r4, #0xe]
_0802BEBA:
pop {r4, pc}
thumb_func_start sub_0802BEBC
sub_0802BEBC: @ 0x0802BEBC
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0x15]
movs r4, #0x10
eors r0, r4
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_080AEFE0
ldrb r0, [r5, #0x15]
eors r0, r4
strb r0, [r5, #0x15]
movs r1, #0x80
lsls r1, r1, #6
adds r0, r5, #0
bl sub_080044EC
cmp r0, #0
bne _0802BEE8
adds r0, r5, #0
bl sub_0802C1C0
_0802BEE8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0802BEEC
sub_0802BEEC: @ 0x0802BEEC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0802BF1E
subs r0, #1
strb r0, [r4, #0xe]
movs r1, #0xff
ands r0, r1
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _0802BF3A
ldrb r0, [r4, #0x14]
movs r1, #2
eors r0, r1
strb r0, [r4, #0x14]
lsls r0, r0, #3
strb r0, [r4, #0x15]
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl InitializeAnimation
b _0802BF3A
_0802BF1E:
movs r1, #0xe0
lsls r1, r1, #5
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _0802BF3A
movs r0, #8
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #0x90
lsls r0, r0, #1
strh r0, [r4, #0x24]
_0802BF3A:
pop {r4, pc}
thumb_func_start sub_0802BF3C
sub_0802BF3C: @ 0x0802BF3C
push {r4, lr}
adds r4, r0, #0
bl sub_080AEF88
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 _0802BF76
movs r0, #0x1e
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_0802C020
strb r0, [r4, #0x15]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1b
ldrb r1, [r4, #0x14]
cmp r0, r1
beq _0802BF76
strb r0, [r4, #0x14]
adds r1, r0, #4
adds r0, r4, #0
bl InitializeAnimation
_0802BF76:
pop {r4, pc}
thumb_func_start sub_0802BF78
sub_0802BF78: @ 0x0802BF78
push {lr}
movs r2, #1
strb r2, [r0, #0xc]
adds r3, r0, #0
adds r3, #0x3b
movs r1, #4
strb r1, [r3]
strb r2, [r0, #0x1c]
ldrb r1, [r0, #0x14]
lsls r1, r1, #3
strb r1, [r0, #0x15]
ldrb r1, [r0, #0x14]
adds r1, #8
bl InitializeAnimation
pop {pc}
thumb_func_start sub_0802BF98
sub_0802BF98: @ 0x0802BF98
push {r4, lr}
adds r4, r0, #0
bl sub_0806F520
cmp r0, #0
beq _0802BFBC
ldr r0, _0802BFB8 @ =gUnk_080CD450
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _0802BFCC
.align 2, 0
_0802BFB8: .4byte gUnk_080CD450
_0802BFBC:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
_0802BFCC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802BFD0
sub_0802BFD0: @ 0x0802BFD0
movs r1, #2
strb r1, [r0, #0xd]
bx lr
.align 2, 0
thumb_func_start sub_0802BFD8
sub_0802BFD8: @ 0x0802BFD8
push {lr}
bl sub_0806F4E8
pop {pc}
thumb_func_start sub_0802BFE0
sub_0802BFE0: @ 0x0802BFE0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F3E4
cmp r0, #0
beq _0802BFF2
adds r0, r4, #0
bl DeleteEntity
_0802BFF2:
pop {r4, pc}
thumb_func_start sub_0802BFF4
sub_0802BFF4: @ 0x0802BFF4
push {lr}
adds r3, r0, #0
ldrb r2, [r3, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802C01C
adds r0, r3, #0
bl DeleteEntity
_0802C01C:
pop {pc}
.align 2, 0
thumb_func_start sub_0802C020
sub_0802C020: @ 0x0802C020
push {r4, r5, r6, lr}
adds r5, r0, #0
bl Random
adds r4, r0, #0
adds r0, r5, #0
bl sub_08049FA0
cmp r0, #0
bne _0802C03E
movs r6, #1
adds r0, r4, #0
ands r0, r6
cmp r0, #0
beq _0802C044
_0802C03E:
movs r0, #0x18
ands r0, r4
b _0802C056
_0802C044:
adds r0, r5, #0
bl sub_08049EE4
lsrs r1, r4, #0x10
ands r1, r6
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0x18
ands r0, r1
_0802C056:
pop {r4, r5, r6, pc}
thumb_func_start sub_0802C058
sub_0802C058: @ 0x0802C058
push {lr}
movs r2, #2
strb r2, [r0, #0xc]
strb r1, [r0, #0x15]
lsrs r1, r1, #3
strb r1, [r0, #0x14]
ldrb r1, [r0, #0x14]
bl InitializeAnimation
pop {pc}
thumb_func_start sub_0802C06C
sub_0802C06C: @ 0x0802C06C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r1, #0x2e
ldrsh r2, [r0, r1]
ldr r3, [r0, #0x48]
movs r1, #0
ldrsb r1, [r3, r1]
adds r6, r2, r1
movs r1, #0x32
ldrsh r2, [r0, r1]
movs r1, #1
ldrsb r1, [r3, r1]
adds r5, r2, r1
ldr r3, _0802C0CC @ =gUnk_080CD45C
ldrb r1, [r0, #0x15]
lsrs r1, r1, #2
adds r2, r1, r3
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
mov sb, r2
adds r1, #1
adds r1, r1, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov r8, r1
adds r0, #0x38
ldrb r0, [r0]
ldr r7, _0802C0D0 @ =gUnk_02027EB4
cmp r0, #2
bne _0802C0B2
ldr r7, _0802C0D4 @ =gUnk_0200D654
_0802C0B2:
movs r4, #0
_0802C0B4:
add r6, sb
add r5, r8
adds r0, r7, #0
adds r1, r6, #0
adds r2, r5, #0
movs r3, #0
bl sub_080AE4CC
cmp r0, #0
beq _0802C0D8
movs r0, #0
b _0802C0E0
.align 2, 0
_0802C0CC: .4byte gUnk_080CD45C
_0802C0D0: .4byte gUnk_02027EB4
_0802C0D4: .4byte gUnk_0200D654
_0802C0D8:
adds r4, #1
cmp r4, #7
bls _0802C0B4
movs r0, #1
_0802C0E0:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0802C0E8
sub_0802C0E8: @ 0x0802C0E8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802C0FC
movs r0, #1
b _0802C178
_0802C0FC:
ldrb r3, [r5, #0x15]
lsrs r3, r3, #2
ldr r0, _0802C17C @ =gUnk_080CD45C
adds r3, r3, r0
movs r0, #0x2e
ldrsh r2, [r5, r0]
ldr r4, [r5, #0x48]
movs r0, #0
ldrsb r0, [r4, r0]
adds r2, r2, r0
movs r1, #0
ldrsb r1, [r3, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r6, r2, r0
movs r0, #0x32
ldrsh r2, [r5, r0]
movs r0, #1
ldrsb r0, [r4, r0]
adds r2, r2, r0
movs r1, #1
ldrsb r1, [r3, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r4, r2, r0
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
ldr r7, _0802C180 @ =gUnk_02027EB4
cmp r0, #2
bne _0802C140
ldr r7, _0802C184 @ =gUnk_0200D654
_0802C140:
movs r5, #0
ldr r1, _0802C188 @ =gRoomControls
ldrh r0, [r1, #6]
subs r0, r6, r0
asrs r0, r0, #4
movs r2, #0x3f
ands r0, r2
ldrh r1, [r1, #8]
subs r1, r4, r1
asrs r1, r1, #4
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
movs r1, #9
bl sub_0806FC24
cmp r0, #0
bne _0802C176
adds r0, r7, #0
adds r1, r6, #0
adds r2, r4, #0
movs r3, #0
bl sub_080AE4CC
rsbs r1, r0, #0
orrs r1, r0
lsrs r5, r1, #0x1f
_0802C176:
adds r0, r5, #0
_0802C178:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0802C17C: .4byte gUnk_080CD45C
_0802C180: .4byte gUnk_02027EB4
_0802C184: .4byte gUnk_0200D654
_0802C188: .4byte gRoomControls
thumb_func_start sub_0802C18C
sub_0802C18C: @ 0x0802C18C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x78
ldrb r1, [r0]
subs r1, #1
strb r1, [r0]
movs r0, #7
ands r1, r0
cmp r1, #0
bne _0802C1BC
movs r0, #0xf
movs r1, #0x11
movs r2, #0x40
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0802C1BC
movs r3, #0x80
lsls r3, r3, #9
adds r0, r4, #0
movs r2, #0
bl PositionRelative
_0802C1BC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802C1C0
sub_0802C1C0: @ 0x0802C1C0
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0x1e
strb r1, [r0, #0xe]
bx lr
.align 2, 0
thumb_func_start sub_0802C1CC
sub_0802C1CC: @ 0x0802C1CC
push {r4, r5, lr}
adds r5, r0, #0
ldrb r4, [r5, #0x14]
lsls r4, r4, #2
ldr r0, _0802C214 @ =gUnk_080CD464
adds r4, r4, r0
movs r0, #0x2e
ldrsh r2, [r5, r0]
movs r0, #0
ldrsb r0, [r4, r0]
adds r2, r2, r0
movs r0, #0x32
ldrsh r3, [r5, r0]
movs r0, #1
ldrsb r0, [r4, r0]
adds r3, r3, r0
adds r0, r5, #0
movs r1, #9
bl sub_08008796
movs r0, #0x2e
ldrsh r2, [r5, r0]
movs r0, #2
ldrsb r0, [r4, r0]
adds r2, r2, r0
movs r0, #0x32
ldrsh r3, [r5, r0]
movs r0, #3
ldrsb r0, [r4, r0]
adds r3, r3, r0
adds r0, r5, #0
movs r1, #9
bl sub_08008796
pop {r4, r5, pc}
.align 2, 0
_0802C214: .4byte gUnk_080CD464
thumb_func_start sub_0802C218
sub_0802C218: @ 0x0802C218
movs r1, #6
strb r1, [r0, #0xc]
movs r1, #0xe0
strh r1, [r0, #0x24]
movs r1, #0xc0
lsls r1, r1, #9
str r1, [r0, #0x20]
bx lr