Files
pmd-red/asm/code_8012A18.s
T
Seth Barberee 93ed788787 more decomping
2020-09-26 18:30:40 -05:00

85324 lines
1.3 MiB
Plaintext

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start GetKeyPress
GetKeyPress:
push {lr}
adds r1, r0, 0
cmp r1, 0
beq _08012ADE
adds r0, 0x29
ldrb r0, [r0]
cmp r0, 0
beq _08012AB4
movs r0, 0x1
b _08012AE2
_08012AB4:
adds r0, r1, 0
adds r0, 0x2A
ldrb r0, [r0]
cmp r0, 0
beq _08012AC2
movs r0, 0x2
b _08012AE2
_08012AC2:
adds r0, r1, 0
adds r0, 0x2C
ldrb r0, [r0]
cmp r0, 0
beq _08012AD0
movs r0, 0x9
b _08012AE2
_08012AD0:
adds r0, r1, 0
adds r0, 0x2B
ldrb r0, [r0]
cmp r0, 0
beq _08012ADE
movs r0, 0xA
b _08012AE2
_08012ADE:
bl sub_8012AE8
_08012AE2:
pop {r1}
bx r1
thumb_func_end GetKeyPress
thumb_func_start sub_8012AE8
sub_8012AE8:
push {lr}
ldr r2, _08012B08
ldrh r1, [r2]
movs r3, 0x80
lsls r3, 1
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08012B4A
ldrh r1, [r2, 0x2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08012B0C
movs r0, 0xB
b _08012BBE
.align 2, 0
_08012B08: .4byte gUnknown_20255F0
_08012B0C:
ldrh r1, [r2, 0x4]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08012B1A
movs r0, 0xC
b _08012BBE
_08012B1A:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08012B26
movs r0, 0xD
b _08012BBE
_08012B26:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08012B32
movs r0, 0xE
b _08012BBE
_08012B32:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08012B3E
movs r0, 0xF
b _08012BBE
_08012B3E:
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08012BBC
movs r0, 0x6
b _08012BBE
_08012B4A:
ldrh r1, [r2, 0x2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08012B58
movs r0, 0x1
b _08012BBE
_08012B58:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08012B64
movs r0, 0x2
b _08012BBE
_08012B64:
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08012B70
movs r0, 0x3
b _08012BBE
_08012B70:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08012B7C
movs r0, 0x4
b _08012BBE
_08012B7C:
ldrh r1, [r2, 0x4]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08012B8A
movs r0, 0x7
b _08012BBE
_08012B8A:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08012B96
movs r0, 0x8
b _08012BBE
_08012B96:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08012BA2
movs r0, 0x9
b _08012BBE
_08012BA2:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08012BAE
movs r0, 0xA
b _08012BBE
_08012BAE:
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _08012BBC
movs r0, 0x5
b _08012BBE
_08012BBC:
movs r0, 0
_08012BBE:
pop {r1}
bx r1
thumb_func_end sub_8012AE8
thumb_func_start sub_8012BC4
sub_8012BC4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
mov r10, r0
mov r9, r1
adds r1, r2, 0
adds r7, r3, 0
movs r0, 0
mov r8, r0
add r0, sp, 0x4
adds r2, r7, 0
bl ConvertToDecimal
subs r5, r7, 0x1
cmp r5, 0
ble _08012C0A
lsls r0, r5, 2
mov r1, sp
adds r1, r0
adds r1, 0x4
ldr r0, [r1]
cmp r0, 0
bne _08012C0A
movs r2, 0xFF
_08012BFA:
str r2, [r1]
subs r1, 0x4
subs r5, 0x1
cmp r5, 0
ble _08012C0A
ldr r0, [r1]
cmp r0, 0
beq _08012BFA
_08012C0A:
movs r5, 0
cmp r5, r7
bge _08012C50
ldr r0, [sp, 0x4]
cmp r0, 0xFF
beq _08012C50
add r6, sp, 0x4
_08012C18:
ldm r6!, {r0}
adds r0, 0x30
lsls r0, 24
lsrs r0, 24
bl sub_8092288
adds r4, r0, 0
bl sub_8008584
movs r1, 0x6
ldrsh r0, [r0, r1]
add r8, r0
mov r2, r10
mov r1, r8
subs r0, r2, r1
ldr r2, [sp, 0x48]
str r2, [sp]
mov r1, r9
adds r2, r4, 0
ldr r3, [sp, 0x44]
bl xxx_call_draw_char
adds r5, 0x1
cmp r5, r7
bge _08012C50
ldr r0, [r6]
cmp r0, 0xFF
bne _08012C18
_08012C50:
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8012BC4
thumb_func_start sub_8012C60
sub_8012C60:
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
adds r0, r2, 0
adds r7, r3, 0
lsls r0, 24
lsrs r0, 24
bl sub_8092288
adds r4, r0, 0
bl sub_8008584
adds r1, r0, 0
movs r2, 0x6
ldrsh r0, [r1, r2]
cmp r0, 0xB
bgt _08012C90
movs r1, 0xC
subs r1, r0
lsrs r0, r1, 31
adds r1, r0
asrs r0, r1, 1
b _08012C92
_08012C90:
movs r0, 0
_08012C92:
adds r0, r5, r0
ldr r1, [sp, 0x18]
str r1, [sp]
adds r1, r6, 0
adds r2, r4, 0
adds r3, r7, 0
bl xxx_call_draw_char
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8012C60
thumb_func_start sub_8012CAC
sub_8012CAC:
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r8, r0
adds r4, r1, 0
movs r7, 0
movs r6, 0
ldr r0, [r4]
cmp r0, 0
beq _08012CE6
movs r5, 0x80
lsls r5, 9
_08012CC4:
adds r0, r5, 0
movs r1, 0x80
lsls r1, 9
adds r5, r1
asrs r7, r0, 16
ldr r0, [r4]
bl sub_8008ED0
lsls r0, 16
asrs r0, 16
cmp r0, r6
ble _08012CDE
adds r6, r0, 0
_08012CDE:
adds r4, 0x8
ldr r0, [r4]
cmp r0, 0
bne _08012CC4
_08012CE6:
adds r0, r6, 0
cmp r0, 0
bge _08012CEE
adds r0, 0x7
_08012CEE:
asrs r0, 3
adds r0, 0x2
mov r1, r8
strh r0, [r1, 0xC]
mov r0, r8
adds r1, r7, 0
bl sub_8012D08
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8012CAC
thumb_func_start sub_8012D08
sub_8012D08:
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
movs r1, 0xC
bl sub_80095E4
lsls r0, 16
asrs r1, r0, 16
ldr r0, [r4, 0x4]
cmp r0, 0x6
bne _08012D24
adds r0, r1, 0x2
lsls r0, 16
asrs r1, r0, 16
_08012D24:
lsls r0, r1, 16
lsrs r0, 16
strh r0, [r4, 0xE]
strh r0, [r4, 0x10]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8012D08
thumb_func_start sub_8012D34
sub_8012D34:
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
movs r1, 0x18
bl sub_8009614
lsls r0, 16
asrs r1, r0, 16
ldr r0, [r4, 0x4]
cmp r0, 0x6
bne _08012D50
adds r0, r1, 0x2
lsls r0, 16
asrs r1, r0, 16
_08012D50:
lsls r0, r1, 16
lsrs r0, 16
strh r0, [r4, 0xE]
strh r0, [r4, 0x10]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8012D34
thumb_func_start sub_8012D60
sub_8012D60:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r4, r0, 0
adds r5, r3, 0
ldr r7, [sp, 0x20]
movs r3, 0
movs r6, 0x1
negs r6, r6
mov r12, r3
ldr r0, [sp, 0x24]
str r0, [r4, 0x10]
str r1, [r4, 0x4]
str r2, [r4, 0x8]
cmp r2, 0
bne _08012D88
ldr r0, _08012E00
str r0, [r4, 0x8]
_08012D88:
str r5, [r4, 0xC]
ldr r0, [r1]
adds r5, r4, 0
adds r5, 0x14
movs r2, 0x4C
adds r2, r4
mov r8, r2
movs r2, 0x4D
adds r2, r4
mov r9, r2
movs r2, 0x4E
adds r2, r4
mov r10, r2
cmp r0, 0
beq _08012DC6
_08012DA6:
cmp r7, 0
blt _08012DB2
ldr r0, [r1, 0x4]
cmp r7, r0
bne _08012DB2
adds r6, r3, 0
_08012DB2:
ldr r0, [r1]
ldrb r0, [r0]
cmp r0, 0x2A
bne _08012DBC
mov r12, r3
_08012DBC:
adds r1, 0x8
adds r3, 0x1
ldr r0, [r1]
cmp r0, 0
bne _08012DA6
_08012DC6:
cmp r6, 0
bge _08012DCC
mov r6, r12
_08012DCC:
adds r0, r5, 0
adds r1, r3, 0
ldr r2, [sp, 0x24]
bl sub_8013134
strh r6, [r4, 0x2C]
adds r0, r5, 0
movs r1, 0
bl sub_80137B0
movs r0, 0x1
mov r1, r8
strb r0, [r1]
mov r2, r9
strb r0, [r2]
mov r1, r10
strb r0, [r1]
subs r0, 0x2
str r0, [r4, 0x48]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08012E00: .4byte gUnknown_80D47B8
thumb_func_end sub_8012D60
thumb_func_start sub_8012E04
sub_8012E04:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r5, r0, 0
adds r7, r1, 0
mov r8, r2
mov r9, r3
ldr r3, [sp, 0x1C]
movs r1, 0
movs r6, 0x1
negs r6, r6
movs r4, 0
ldr r0, [r7]
cmp r0, 0
beq _08012E46
adds r2, r7, 0
_08012E26:
cmp r3, 0
blt _08012E32
ldr r0, [r2, 0x4]
cmp r3, r0
bne _08012E32
adds r6, r1, 0
_08012E32:
ldr r0, [r2]
ldrb r0, [r0]
cmp r0, 0x2A
bne _08012E3C
adds r4, r1, 0
_08012E3C:
adds r2, 0x8
adds r1, 0x1
ldr r0, [r2]
cmp r0, 0
bne _08012E26
_08012E46:
cmp r6, 0
bge _08012E4C
adds r6, r4, 0
_08012E4C:
adds r4, r5, 0
adds r4, 0x14
adds r0, r4, 0
ldr r2, [sp, 0x20]
bl sub_8013134
strh r6, [r5, 0x2C]
adds r0, r4, 0
movs r1, 0
bl sub_80137B0
ldr r0, [sp, 0x20]
str r0, [r5, 0x10]
mov r0, r8
str r0, [r5, 0x8]
cmp r0, 0
bne _08012E72
ldr r0, _08012EA0
str r0, [r5, 0x8]
_08012E72:
mov r0, r9
str r0, [r5, 0xC]
str r7, [r5, 0x4]
adds r1, r5, 0
adds r1, 0x4E
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
adds r0, 0x4C
movs r1, 0x1
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
movs r0, 0x1
negs r0, r0
str r0, [r5, 0x48]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08012EA0: .4byte gUnknown_80D47B8
thumb_func_end sub_8012E04
thumb_func_start sub_8012EA4
sub_8012EA4:
push {lr}
adds r2, r0, 0
adds r2, 0x4C
strb r1, [r2]
adds r2, 0x1
movs r1, 0x1
strb r1, [r2]
bl sub_8012EBC
pop {r0}
bx r0
thumb_func_end sub_8012EA4
thumb_func_start sub_8012EBC
sub_8012EBC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x164
adds r5, r0, 0
movs r0, 0x4D
adds r0, r5
mov r8, r0
ldrb r0, [r0]
cmp r0, 0
beq _08012F9E
ldr r0, [r5, 0x10]
bl sub_80073B8
ldr r2, [r5, 0x10]
lsls r0, r2, 3
adds r0, r2
lsls r0, 3
ldr r1, _08012F54
adds r0, r1
ldr r0, [r0, 0xC]
cmp r0, 0x6
bne _08012F24
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
mov r4, sp
adds r4, r0
adds r4, 0x4
add r0, sp, 0x4
bl sub_8006518
ldr r0, [r5]
bl sub_8008ED0
adds r1, r0, 0
ldr r0, [r4, 0x14]
ldrb r0, [r0, 0x2]
lsls r0, 3
subs r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0x8
ldr r2, [r5]
ldr r3, [r5, 0x10]
movs r1, 0
str r1, [sp]
bl sub_8014FF0
_08012F24:
ldr r7, [r5, 0x8]
ldr r4, [r5, 0x4]
ldr r6, [r5, 0xC]
movs r1, 0
mov r9, r1
ldr r0, [r4]
mov r10, r8
cmp r0, 0
beq _08012F92
add r0, sp, 0x64
mov r8, r0
_08012F3A:
ldr r3, [r4]
ldrb r0, [r3]
cmp r0, 0x2A
bne _08012F44
adds r3, 0x1
_08012F44:
cmp r6, 0
beq _08012F58
ldrh r0, [r6]
lsls r0, 2
adds r0, r7
ldr r2, [r0]
adds r6, 0x2
b _08012F64
.align 2, 0
_08012F54: .4byte gUnknown_2027370
_08012F58:
ldr r0, [r4, 0x4]
cmp r0, 0
bge _08012F62
ldr r2, [r7, 0x4]
b _08012F64
_08012F62:
ldr r2, [r7]
_08012F64:
mov r0, r8
ldr r1, _08012FBC
bl sub_800D158
adds r0, r5, 0
adds r0, 0x14
mov r1, r9
bl sub_8013800
adds r1, r0, 0
ldr r3, [r5, 0x10]
movs r0, 0
str r0, [sp]
movs r0, 0x8
mov r2, r8
bl sub_8014FF0
adds r4, 0x8
movs r1, 0x1
add r9, r1
ldr r0, [r4]
cmp r0, 0
bne _08012F3A
_08012F92:
ldr r0, [r5, 0x10]
bl sub_80073E0
movs r0, 0
mov r1, r10
strb r0, [r1]
_08012F9E:
adds r0, r5, 0
adds r0, 0x4E
ldrb r0, [r0]
cmp r0, 0
beq _08012FC8
adds r0, r5, 0
adds r0, 0x4C
ldrb r0, [r0]
cmp r0, 0
beq _08012FC0
adds r0, r5, 0
adds r0, 0x14
bl AddMenuCursorSprite
b _08012FC8
.align 2, 0
_08012FBC: .4byte gUnknown_80D4828
_08012FC0:
adds r0, r5, 0
adds r0, 0x14
bl sub_8013660
_08012FC8:
add sp, 0x164
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8012EBC
thumb_func_start sub_8012FD8
sub_8012FD8:
push {r4-r7,lr}
adds r4, r0, 0
movs r0, 0x2C
ldrsh r7, [r4, r0]
adds r6, r4, 0
adds r6, 0x4C
ldrb r0, [r6]
cmp r0, 0
beq _08013094
adds r5, r4, 0
adds r5, 0x14
adds r0, r5, 0
bl GetKeyPress
cmp r0, 0x2
beq _08013078
cmp r0, 0x2
bgt _08013002
cmp r0, 0x1
beq _08013028
b _08013094
_08013002:
cmp r0, 0x7
beq _08013012
cmp r0, 0x8
bne _08013094
adds r0, r5, 0
bl MoveMenuCursorDown
b _08013018
_08013012:
adds r0, r5, 0
bl MoveMenuCursorUp
_08013018:
movs r1, 0x2C
ldrsh r0, [r4, r1]
cmp r7, r0
beq _08013094
movs r0, 0x3
bl sub_80119D4
b _08013094
_08013028:
adds r0, r5, 0
bl sub_80137A8
adds r2, r0, 0
lsls r1, r2, 3
ldr r0, [r4, 0x4]
adds r0, r1
ldr r3, [r0, 0x4]
cmp r3, 0
blt _08013068
ldr r1, [r4, 0xC]
cmp r1, 0
beq _0801304C
lsls r0, r2, 1
adds r0, r1
ldrh r0, [r0]
cmp r0, 0x1
beq _08013068
_0801304C:
str r3, [r4, 0x48]
adds r1, r4, 0
adds r1, 0x4C
movs r0, 0
strb r0, [r1]
strh r0, [r4, 0x38]
ldr r1, [r4, 0xC]
cmp r1, 0
beq _08013070
lsls r0, r2, 1
adds r0, r1
ldrh r0, [r0]
cmp r0, 0x2
bne _08013070
_08013068:
movs r0, 0x2
bl sub_80119D4
b _08013094
_08013070:
movs r0, 0
bl sub_80119D4
b _08013094
_08013078:
movs r1, 0x2E
ldrsh r0, [r4, r1]
ldr r1, [r4, 0x4]
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
cmp r0, 0
blt _08013094
str r0, [r4, 0x48]
movs r0, 0
strb r0, [r6]
movs r0, 0x1
bl sub_80119D4
_08013094:
adds r0, r4, 0
bl sub_8012EBC
adds r0, r4, 0
adds r0, 0x4C
ldrb r0, [r0]
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8012FD8
thumb_func_start sub_80130A8
sub_80130A8:
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r4, 0
adds r6, 0x4C
ldrb r0, [r6]
cmp r0, 0
beq _08013100
adds r5, r4, 0
adds r5, 0x14
adds r0, r5, 0
bl GetKeyPress
cmp r0, 0x1
beq _080130CA
cmp r0, 0x2
beq _080130E6
b _08013100
_080130CA:
adds r0, r5, 0
bl sub_80137A8
lsls r0, 3
ldr r1, [r4, 0x4]
adds r1, r0
ldr r0, [r1, 0x4]
str r0, [r4, 0x48]
movs r0, 0
strb r0, [r6]
strh r0, [r4, 0x38]
bl sub_80119D4
b _08013100
_080130E6:
movs r1, 0x2E
ldrsh r0, [r4, r1]
ldr r1, [r4, 0x4]
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
cmp r0, 0
blt _08013100
str r0, [r4, 0x48]
movs r0, 0
strb r0, [r6]
bl sub_80119D4
_08013100:
adds r0, r4, 0
bl sub_8012EBC
adds r0, r4, 0
adds r0, 0x4C
ldrb r0, [r0]
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80130A8
thumb_func_start sub_8013114
sub_8013114:
push {lr}
adds r2, r0, 0
adds r0, 0x4C
ldrb r0, [r0]
cmp r0, 0
beq _08013124
movs r0, 0x1
b _0801312E
_08013124:
cmp r1, 0
beq _0801312C
ldr r0, [r2, 0x48]
str r0, [r1]
_0801312C:
movs r0, 0
_0801312E:
pop {r1}
bx r1
thumb_func_end sub_8013114
thumb_func_start sub_8013134
sub_8013134:
push {r4,lr}
adds r4, r0, 0
lsls r0, r2, 3
adds r0, r2
lsls r0, 3
ldr r3, _0801315C
adds r0, r3
str r2, [r4]
movs r2, 0
strh r2, [r4, 0x18]
strh r1, [r4, 0x1A]
strh r1, [r4, 0x1C]
strh r2, [r4, 0x1E]
strh r2, [r4, 0x4]
ldr r0, [r0, 0xC]
cmp r0, 0x6
bne _08013160
movs r0, 0x10
b _08013162
.align 2, 0
_0801315C: .4byte gUnknown_2027370
_08013160:
movs r0, 0x2
_08013162:
strh r0, [r4, 0x6]
movs r0, 0
strh r0, [r4, 0xC]
strh r0, [r4, 0xE]
strh r0, [r4, 0x14]
strh r0, [r4, 0x24]
adds r0, r4, 0
adds r0, 0x28
bl sub_801317C
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8013134
thumb_func_start sub_801317C
sub_801317C:
push {lr}
movs r1, 0
strb r1, [r0]
strb r1, [r0, 0x1]
strb r1, [r0, 0x2]
strb r1, [r0, 0x4]
strb r1, [r0, 0x3]
ldr r1, _080131A4
strh r1, [r0, 0x8]
movs r1, 0x1
negs r1, r1
strh r1, [r0, 0xA]
adds r0, 0x8
bl nullsub_7
bl sub_8004914
pop {r0}
bx r0
.align 2, 0
_080131A4: .4byte 0x0000ffff
thumb_func_end sub_801317C
thumb_func_start AddMenuCursorSprite
AddMenuCursorSprite:
push {lr}
movs r1, 0
bl AddMenuCursorSprite_
pop {r0}
bx r0
thumb_func_end AddMenuCursorSprite
thumb_func_start AddMenuCursorSprite_
AddMenuCursorSprite_:
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
movs r0, 0
movs r1, 0
str r0, [sp]
str r1, [sp, 0x4]
movs r1, 0x1A
ldrsh r0, [r6, r1]
cmp r0, 0
bgt _080131CC
b _080132D6
_080131CC:
adds r0, r6, 0
bl UpdateMenuCursorSpriteCoords
ldrh r1, [r6, 0x24]
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _080132D6
mov r0, sp
ldrh r0, [r0]
ldr r1, _080132FC
ands r1, r0
ldr r3, _08013300
ldr r0, [sp]
ands r0, r3
orrs r0, r1
str r0, [sp]
mov r1, sp
ldrh r1, [r1]
adds r2, r3, 0
ands r2, r0
orrs r2, r1
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013304
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r4, _08013308
adds r0, r4, 0
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _0801330C
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013310
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013314
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
ands r3, r1
orrs r3, r0
str r3, [sp]
mov r3, sp
movs r2, 0xFD
lsls r2, 2
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r5, 0xF
movs r1, 0xF0
lsls r1, 8
ldr r4, _08013318
ands r0, r4
orrs r0, r1
strh r0, [r3, 0x4]
ldrh r0, [r3, 0x6]
ldr r1, _0801331C
ands r1, r0
ldr r0, _08013320
ands r1, r0
movs r2, 0x8
ldrsh r0, [r6, r2]
ldr r2, _08013324
ands r0, r2
strh r0, [r3, 0x2]
movs r2, 0xA
ldrsh r0, [r6, r2]
adds r0, 0x1
ands r0, r4
lsls r0, 4
ands r1, r5
orrs r1, r0
strh r1, [r3, 0x6]
mov r0, sp
movs r1, 0xFF
movs r2, 0
movs r3, 0
bl AddSprite
_080132D6:
adds r0, r6, 0
bl sub_8013470
movs r1, 0x14
ldrsh r0, [r6, r1]
cmp r0, 0
beq _080132EC
adds r0, r6, 0
adds r0, 0x14
bl sub_801332C
_080132EC:
ldrh r0, [r6, 0x24]
adds r0, 0x1
strh r0, [r6, 0x24]
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080132FC: .4byte 0x0000feff
_08013300: .4byte 0xffff0000
_08013304: .4byte 0x0000fdff
_08013308: .4byte 0x0000f3ff
_0801330C: .4byte 0x0000efff
_08013310: .4byte 0x0000dfff
_08013314: .4byte 0x00003fff
_08013318: .4byte 0x00000fff
_0801331C: .4byte 0x0000fffe
_08013320: .4byte 0x0000fffd
_08013324: .4byte 0x000001ff
thumb_func_end AddMenuCursorSprite_
thumb_func_start nullsub_34
nullsub_34:
bx lr
thumb_func_end nullsub_34
thumb_func_start sub_801332C
sub_801332C:
push {r4-r6,lr}
sub sp, 0x8
movs r1, 0
movs r2, 0
str r1, [sp]
str r2, [sp, 0x4]
mov r1, sp
ldrh r1, [r1]
ldr r2, _08013440
ands r2, r1
ldr r4, _08013444
ldr r1, [sp]
ands r1, r4
orrs r1, r2
str r1, [sp]
mov r2, sp
ldrh r2, [r2]
adds r3, r4, 0
ands r3, r1
orrs r3, r2
str r3, [sp]
mov r1, sp
ldrh r2, [r1]
ldr r1, _08013448
ands r1, r2
adds r2, r4, 0
ands r2, r3
orrs r2, r1
str r2, [sp]
mov r1, sp
ldrh r1, [r1]
adds r3, r4, 0
ands r3, r2
orrs r3, r1
str r3, [sp]
movs r5, 0x80
lsls r5, 3
mov r1, sp
ldrh r2, [r1]
ldr r6, _0801344C
adds r1, r6, 0
ands r1, r2
adds r2, r4, 0
ands r2, r3
orrs r2, r1
str r2, [sp]
mov r1, sp
ldrh r1, [r1]
orrs r5, r1
adds r3, r4, 0
ands r3, r2
orrs r3, r5
str r3, [sp]
mov r1, sp
ldrh r2, [r1]
ldr r1, _08013450
ands r1, r2
adds r2, r4, 0
ands r2, r3
orrs r2, r1
str r2, [sp]
mov r1, sp
ldrh r1, [r1]
adds r3, r4, 0
ands r3, r2
orrs r3, r1
str r3, [sp]
mov r1, sp
ldrh r2, [r1]
ldr r1, _08013454
ands r1, r2
adds r2, r4, 0
ands r2, r3
orrs r2, r1
str r2, [sp]
mov r1, sp
ldrh r1, [r1]
adds r3, r4, 0
ands r3, r2
orrs r3, r1
str r3, [sp]
mov r1, sp
ldrh r2, [r1]
ldr r1, _08013458
ands r1, r2
adds r2, r4, 0
ands r2, r3
orrs r2, r1
str r2, [sp]
mov r1, sp
ldrh r1, [r1]
ands r4, r2
orrs r4, r1
str r4, [sp]
mov r4, sp
ldr r3, _0801345C
ldrh r2, [r4, 0x4]
movs r1, 0xFC
lsls r1, 8
ands r1, r2
orrs r1, r3
ands r1, r6
movs r6, 0xF
movs r2, 0xF0
lsls r2, 8
ldr r5, _08013460
ands r1, r5
orrs r1, r2
strh r1, [r4, 0x4]
ldrh r1, [r4, 0x6]
ldr r2, _08013464
ands r2, r1
ldr r1, _08013468
ands r2, r1
movs r3, 0
ldrsh r1, [r0, r3]
ldr r3, _0801346C
ands r1, r3
strh r1, [r4, 0x2]
movs r1, 0x2
ldrsh r0, [r0, r1]
adds r0, 0x1
ands r0, r5
lsls r0, 4
ands r2, r6
orrs r2, r0
strh r2, [r4, 0x6]
mov r0, sp
movs r1, 0xFF
movs r2, 0
movs r3, 0
bl AddSprite
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08013440: .4byte 0x0000feff
_08013444: .4byte 0xffff0000
_08013448: .4byte 0x0000fdff
_0801344C: .4byte 0x0000f3ff
_08013450: .4byte 0x0000efff
_08013454: .4byte 0x0000dfff
_08013458: .4byte 0x00003fff
_0801345C: .4byte 0x000003f5
_08013460: .4byte 0x00000fff
_08013464: .4byte 0x0000fffe
_08013468: .4byte 0x0000fffd
_0801346C: .4byte 0x000001ff
thumb_func_end sub_801332C
thumb_func_start sub_8013470
sub_8013470:
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
movs r0, 0
movs r1, 0
str r0, [sp]
str r1, [sp, 0x4]
movs r1, 0xC
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08013488
b _08013624
_08013488:
movs r2, 0x1E
ldrsh r0, [r6, r2]
cmp r0, 0
beq _08013586
mov r0, sp
ldrh r0, [r0]
ldr r1, _0801362C
ands r1, r0
ldr r3, _08013630
ldr r0, [sp]
ands r0, r3
orrs r0, r1
str r0, [sp]
mov r1, sp
ldrh r1, [r1]
adds r2, r3, 0
ands r2, r0
orrs r2, r1
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013634
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r4, _08013638
adds r0, r4, 0
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _0801363C
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013640
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013644
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
ands r3, r1
orrs r3, r0
str r3, [sp]
mov r3, sp
ldr r2, _08013648
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r5, 0xF
movs r1, 0xF0
lsls r1, 8
ldr r4, _0801364C
ands r0, r4
orrs r0, r1
strh r0, [r3, 0x4]
ldrh r0, [r3, 0x6]
ldr r1, _08013650
ands r1, r0
ldr r0, _08013654
ands r1, r0
movs r2, 0xC
ldrsh r0, [r6, r2]
ldr r2, _08013658
ands r0, r2
strh r0, [r3, 0x2]
movs r2, 0xE
ldrsh r0, [r6, r2]
ands r0, r4
lsls r0, 4
ands r1, r5
orrs r1, r0
strh r1, [r3, 0x6]
mov r0, sp
movs r1, 0xFF
movs r2, 0
movs r3, 0
bl AddSprite
_08013586:
movs r1, 0x20
ldrsh r0, [r6, r1]
cmp r0, 0
beq _08013624
adds r1, r0, 0
movs r2, 0x1E
ldrsh r0, [r6, r2]
adds r0, 0x1
cmp r1, r0
beq _08013624
mov r0, sp
ldrh r0, [r0]
ldr r1, _0801362C
ands r1, r0
mov r0, sp
strh r1, [r0]
strh r1, [r0]
ldr r0, _08013634
ands r0, r1
mov r1, sp
strh r0, [r1]
strh r0, [r1]
ldr r4, _08013638
ands r0, r4
strh r0, [r1]
strh r0, [r1]
ldr r1, _0801363C
ands r1, r0
mov r0, sp
strh r1, [r0]
strh r1, [r0]
ldr r2, _08013640
ands r2, r1
strh r2, [r0]
strh r2, [r0]
ldr r0, _08013644
ands r0, r2
mov r1, sp
strh r0, [r1]
strh r0, [r1]
mov r3, sp
ldr r2, _0801365C
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r5, 0xF
movs r1, 0xF0
lsls r1, 8
ldr r4, _0801364C
ands r0, r4
orrs r0, r1
strh r0, [r3, 0x4]
ldrh r0, [r3, 0x6]
ldr r1, _08013650
ands r1, r0
ldr r0, _08013654
ands r1, r0
movs r2, 0xC
ldrsh r0, [r6, r2]
adds r0, 0xA
ldr r2, _08013658
ands r0, r2
strh r0, [r3, 0x2]
movs r2, 0xE
ldrsh r0, [r6, r2]
ands r0, r4
lsls r0, 4
ands r1, r5
orrs r1, r0
strh r1, [r3, 0x6]
mov r0, sp
movs r1, 0xFF
movs r2, 0
movs r3, 0
bl AddSprite
_08013624:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801362C: .4byte 0x0000feff
_08013630: .4byte 0xffff0000
_08013634: .4byte 0x0000fdff
_08013638: .4byte 0x0000f3ff
_0801363C: .4byte 0x0000efff
_08013640: .4byte 0x0000dfff
_08013644: .4byte 0x00003fff
_08013648: .4byte 0x000003f2
_0801364C: .4byte 0x00000fff
_08013650: .4byte 0x0000fffe
_08013654: .4byte 0x0000fffd
_08013658: .4byte 0x000001ff
_0801365C: .4byte 0x000003f3
thumb_func_end sub_8013470
thumb_func_start sub_8013660
sub_8013660:
push {r4,lr}
adds r4, r0, 0
movs r1, 0x1A
ldrsh r0, [r4, r1]
cmp r0, 0
ble _0801367A
adds r0, r4, 0
bl UpdateMenuCursorSpriteCoords
adds r0, r4, 0
adds r0, 0x8
bl sub_801332C
_0801367A:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8013660
thumb_func_start UpdateMenuCursorSpriteCoords
UpdateMenuCursorSpriteCoords:
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, [r5]
lsls r4, r0, 3
adds r4, r0
lsls r4, 3
ldr r0, _080136B8
adds r4, r0
movs r1, 0
ldrsh r0, [r4, r1]
lsls r0, 3
ldrh r2, [r5, 0x4]
adds r0, r2
strh r0, [r5, 0x8]
movs r0, 0x18
ldrsh r1, [r5, r0]
adds r0, r5, 0
bl sub_8013800
movs r2, 0x2
ldrsh r1, [r4, r2]
lsls r1, 3
adds r1, r0
strh r1, [r5, 0xA]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080136B8: .4byte gUnknown_2027370
thumb_func_end UpdateMenuCursorSpriteCoords
thumb_func_start MoveMenuCursorDown
MoveMenuCursorDown:
push {lr}
adds r1, r0, 0
movs r3, 0
strh r3, [r1, 0x24]
movs r0, 0x1A
ldrsh r2, [r1, r0]
cmp r2, 0
ble _080136DA
ldrh r0, [r1, 0x18]
adds r0, 0x1
strh r0, [r1, 0x18]
lsls r0, 16
asrs r0, 16
cmp r0, r2
blt _080136DC
_080136DA:
strh r3, [r1, 0x18]
_080136DC:
pop {r0}
bx r0
thumb_func_end MoveMenuCursorDown
thumb_func_start sub_80136E0
sub_80136E0:
push {r4,r5,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r5, r1, 24
movs r1, 0
strh r1, [r2, 0x24]
ldrh r4, [r2, 0x1A]
movs r0, 0x1A
ldrsh r3, [r2, r0]
cmp r3, 0
ble _08013708
ldrh r0, [r2, 0x18]
adds r0, 0x1
strh r0, [r2, 0x18]
lsls r0, 16
asrs r0, 16
cmp r0, r3
blt _08013710
cmp r5, 0
beq _0801370C
_08013708:
strh r1, [r2, 0x18]
b _08013710
_0801370C:
subs r0, r4, 0x1
strh r0, [r2, 0x18]
_08013710:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80136E0
thumb_func_start MoveMenuCursorUp
MoveMenuCursorUp:
push {r4,lr}
adds r1, r0, 0
movs r2, 0
strh r2, [r1, 0x24]
ldrh r3, [r1, 0x1A]
movs r4, 0x1A
ldrsh r0, [r1, r4]
cmp r0, 0
bgt _0801372E
strh r2, [r1, 0x18]
b _0801373E
_0801372E:
ldrh r0, [r1, 0x18]
subs r0, 0x1
strh r0, [r1, 0x18]
lsls r0, 16
cmp r0, 0
bge _0801373E
subs r0, r3, 0x1
strh r0, [r1, 0x18]
_0801373E:
pop {r4}
pop {r0}
bx r0
thumb_func_end MoveMenuCursorUp
thumb_func_start sub_8013744
sub_8013744:
push {r4-r6,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r1, 24
adds r5, r1, 0
movs r3, 0
strh r3, [r2, 0x24]
ldrh r4, [r2, 0x1A]
movs r6, 0x1A
ldrsh r0, [r2, r6]
cmp r0, 0
bgt _08013760
strh r3, [r2, 0x18]
b _08013778
_08013760:
ldrh r0, [r2, 0x18]
subs r0, 0x1
strh r0, [r2, 0x18]
lsls r0, 16
cmp r0, 0
bge _08013778
cmp r1, 0
beq _08013776
subs r0, r4, 0x1
strh r0, [r2, 0x18]
b _08013778
_08013776:
strh r5, [r2, 0x18]
_08013778:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8013744
thumb_func_start sub_8013780
sub_8013780:
push {lr}
adds r2, r0, 0
cmp r1, 0
bge _0801378E
movs r0, 0
strh r0, [r2, 0x18]
b _080137A0
_0801378E:
movs r3, 0x1A
ldrsh r0, [r2, r3]
cmp r1, r0
blt _0801379E
ldrh r0, [r2, 0x1A]
subs r0, 0x1
strh r0, [r2, 0x18]
b _080137A0
_0801379E:
strh r1, [r2, 0x18]
_080137A0:
movs r0, 0
strh r0, [r2, 0x24]
pop {r0}
bx r0
thumb_func_end sub_8013780
thumb_func_start sub_80137A8
sub_80137A8:
movs r1, 0x18
ldrsh r0, [r0, r1]
bx lr
thumb_func_end sub_80137A8
thumb_func_start sub_80137B0
sub_80137B0:
push {r4,lr}
adds r4, r0, 0
cmp r1, 0
ble _080137BC
lsls r0, r1, 8
b _080137E2
_080137BC:
ldr r3, _080137F4
ldr r1, [r4]
lsls r0, r1, 3
adds r0, r1
lsls r1, r0, 3
adds r0, r3, 0
adds r0, 0xC
adds r0, r1, r0
ldr r0, [r0]
movs r2, 0
cmp r0, 0x6
bne _080137D6
movs r2, 0x10
_080137D6:
adds r0, r1, r3
movs r1, 0x6
ldrsh r0, [r0, r1]
lsls r0, 3
subs r0, r2
lsls r0, 8
_080137E2:
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __divsi3
str r0, [r4, 0x10]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080137F4: .4byte gUnknown_2027370
thumb_func_end sub_80137B0
thumb_func_start sub_80137F8
sub_80137F8:
lsls r1, 8
str r1, [r0, 0x10]
bx lr
thumb_func_end sub_80137F8
thumb_func_start sub_8013800
sub_8013800:
push {lr}
movs r3, 0x6
ldrsh r2, [r0, r3]
ldr r0, [r0, 0x10]
muls r0, r1
cmp r0, 0
bge _08013810
adds r0, 0xFF
_08013810:
asrs r0, 8
adds r0, r2, r0
pop {r1}
bx r1
thumb_func_end sub_8013800
thumb_func_start sub_8013818
sub_8013818:
push {r4,lr}
adds r4, r0, 0
str r3, [r4]
movs r0, 0
strh r1, [r4, 0x22]
strh r2, [r4, 0x1C]
strh r0, [r4, 0x14]
strh r0, [r4, 0x24]
strh r0, [r4, 0x18]
strh r0, [r4, 0x1E]
adds r0, r4, 0
adds r0, 0x28
bl sub_801317C
adds r0, r4, 0
bl sub_8013984
adds r0, r4, 0
movs r1, 0xC
bl sub_80137F8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8013818
thumb_func_start sub_8013848
sub_8013848:
push {r4,lr}
adds r4, r0, 0
str r3, [r4]
movs r0, 0
strh r1, [r4, 0x22]
strh r2, [r4, 0x1C]
strh r0, [r4, 0x14]
strh r0, [r4, 0x24]
strh r0, [r4, 0x18]
strh r0, [r4, 0x1E]
adds r0, r4, 0
adds r0, 0x28
bl sub_801317C
adds r0, r4, 0
bl sub_8013984
adds r0, r4, 0
movs r1, 0x18
bl sub_80137F8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8013848
thumb_func_start sub_8013878
sub_8013878:
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
cmp r6, 0
bge _08013886
movs r6, 0
b _08013890
_08013886:
movs r1, 0x22
ldrsh r0, [r5, r1]
cmp r6, r0
blt _08013890
subs r6, r0, 0x1
_08013890:
movs r0, 0x1C
ldrsh r1, [r5, r0]
adds r0, r6, 0
bl __divsi3
movs r4, 0
strh r0, [r5, 0x1E]
movs r0, 0x1C
ldrsh r1, [r5, r0]
adds r0, r6, 0
bl __modsi3
strh r0, [r5, 0x18]
strh r4, [r5, 0x24]
adds r0, r5, 0
bl sub_8013984
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8013878
thumb_func_start sub_80138B8
sub_80138B8:
push {r4-r7,lr}
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
movs r0, 0x1E
ldrsh r7, [r5, r0]
movs r1, 0x18
ldrsh r6, [r5, r1]
adds r0, r5, 0
bl AddMenuCursorSprite
cmp r4, 0
beq _0801391C
adds r0, r5, 0
bl GetKeyPress
cmp r0, 0x8
beq _080138F8
cmp r0, 0x8
bgt _080138E6
cmp r0, 0x7
beq _080138F0
b _0801391C
_080138E6:
cmp r0, 0x9
beq _0801390E
cmp r0, 0xA
beq _08013916
b _0801391C
_080138F0:
adds r0, r5, 0
bl MoveMenuCursorUp
b _080138FE
_080138F8:
adds r0, r5, 0
bl MoveMenuCursorDown
_080138FE:
movs r1, 0x18
ldrsh r0, [r5, r1]
cmp r6, r0
beq _0801391C
movs r0, 0x3
bl sub_80119D4
b _0801391C
_0801390E:
adds r0, r5, 0
bl sub_8013A7C
b _0801391C
_08013916:
adds r0, r5, 0
bl sub_8013A54
_0801391C:
movs r1, 0x1E
ldrsh r0, [r5, r1]
cmp r7, r0
bne _08013928
movs r0, 0
b _08013930
_08013928:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x1
_08013930:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80138B8
thumb_func_start sub_8013938
sub_8013938:
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x1E
ldrsh r5, [r4, r0]
movs r0, 0
strh r0, [r4, 0x1A]
strh r0, [r4, 0x14]
adds r0, r4, 0
bl AddMenuCursorSprite
adds r0, r4, 0
bl GetKeyPress
cmp r0, 0x9
beq _0801395C
cmp r0, 0xA
beq _08013964
b _0801396A
_0801395C:
adds r0, r4, 0
bl sub_8013A7C
b _0801396A
_08013964:
adds r0, r4, 0
bl sub_8013A54
_0801396A:
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r5, r0
bne _08013976
movs r0, 0
b _0801397E
_08013976:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x1
_0801397E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8013938
thumb_func_start sub_8013984
sub_8013984:
push {r4-r6,lr}
adds r4, r0, 0
ldr r1, [r4]
lsls r0, r1, 3
adds r0, r1
lsls r0, 3
ldr r1, _08013A20
adds r6, r0, r1
ldrh r1, [r4, 0x1C]
movs r2, 0x1C
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080139A2
adds r0, r1, 0x1
strh r0, [r4, 0x1C]
_080139A2:
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __divsi3
adds r5, r0, 0
strh r5, [r4, 0x20]
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
beq _080139C6
adds r0, r5, 0x1
strh r0, [r4, 0x20]
_080139C6:
movs r0, 0x1E
ldrsh r1, [r4, r0]
movs r2, 0x20
ldrsh r0, [r4, r2]
subs r0, 0x1
ldrh r5, [r4, 0x20]
cmp r1, r0
ble _080139DA
subs r0, r5, 0x1
strh r0, [r4, 0x1E]
_080139DA:
movs r0, 0x1E
ldrsh r1, [r4, r0]
movs r2, 0x20
ldrsh r0, [r4, r2]
subs r0, 0x1
cmp r1, r0
bne _080139F8
movs r1, 0x22
ldrsh r0, [r4, r1]
movs r2, 0x1C
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _080139FA
_080139F8:
ldrh r0, [r4, 0x1C]
_080139FA:
strh r0, [r4, 0x1A]
movs r0, 0x18
ldrsh r1, [r4, r0]
movs r2, 0x1A
ldrsh r0, [r4, r2]
subs r0, 0x1
cmp r1, r0
ble _08013A10
ldrh r0, [r4, 0x1A]
subs r0, 0x1
strh r0, [r4, 0x18]
_08013A10:
movs r1, 0
strh r1, [r4, 0x4]
ldr r0, [r6, 0xC]
cmp r0, 0x6
bne _08013A24
movs r0, 0x10
strh r0, [r4, 0x6]
b _08013A26
.align 2, 0
_08013A20: .4byte gUnknown_2027370
_08013A24:
strh r1, [r4, 0x6]
_08013A26:
lsls r0, r5, 16
asrs r0, 16
cmp r0, 0x1
bgt _08013A32
movs r0, 0
b _08013A40
_08013A32:
movs r1, 0
ldrsh r0, [r6, r1]
movs r2, 0x4
ldrsh r1, [r6, r2]
adds r0, r1
subs r0, 0x2
lsls r0, 3
_08013A40:
strh r0, [r4, 0xC]
movs r1, 0x2
ldrsh r0, [r6, r1]
adds r0, 0x1
lsls r0, 3
subs r0, 0x2
strh r0, [r4, 0xE]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8013984
thumb_func_start sub_8013A54
sub_8013A54:
push {lr}
adds r2, r0, 0
movs r0, 0x1E
ldrsh r1, [r2, r0]
movs r3, 0x20
ldrsh r0, [r2, r3]
subs r0, 0x1
cmp r1, r0
bge _08013A6C
ldrh r0, [r2, 0x1E]
adds r0, 0x1
b _08013A6E
_08013A6C:
movs r0, 0
_08013A6E:
strh r0, [r2, 0x1E]
adds r0, r2, 0
bl sub_8013984
pop {r0}
bx r0
thumb_func_end sub_8013A54
thumb_func_start sub_8013A7C
sub_8013A7C:
push {lr}
adds r1, r0, 0
ldrh r2, [r1, 0x1E]
movs r3, 0x1E
ldrsh r0, [r1, r3]
cmp r0, 0
bgt _08013A90
ldrh r0, [r1, 0x20]
subs r0, 0x1
b _08013A92
_08013A90:
subs r0, r2, 0x1
_08013A92:
strh r0, [r1, 0x1E]
adds r0, r1, 0
bl sub_8013984
pop {r0}
bx r0
thumb_func_end sub_8013A7C
thumb_func_start sub_8013AA0
sub_8013AA0:
push {r4,r5,lr}
sub sp, 0x28
adds r5, r0, 0
ldrh r1, [r5, 0x28]
ldr r0, _08013B9C
ands r0, r1
ldr r1, _08013BA0
ands r0, r1
ldr r4, _08013BA4
ands r0, r4
ldr r1, _08013BA8
ands r0, r1
ldr r1, _08013BAC
ands r0, r1
movs r1, 0x80
lsls r1, 7
ldr r3, _08013BB0
ands r0, r3
orrs r0, r1
strh r0, [r5, 0x28]
movs r1, 0x80
lsls r1, 6
ldrh r0, [r5, 0x2A]
ldr r2, _08013BB4
ands r2, r0
orrs r2, r1
ands r2, r3
movs r3, 0xFC
lsls r3, 2
ldrh r1, [r5, 0x2C]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r3
ands r0, r4
movs r3, 0xF
movs r4, 0xF0
lsls r4, 8
ldr r1, _08013BB8
ands r0, r1
orrs r0, r4
strh r0, [r5, 0x2C]
movs r0, 0xFE
lsls r0, 8
ands r2, r0
movs r0, 0xF0
orrs r2, r0
strh r2, [r5, 0x2A]
subs r1, 0xFF
ldrh r0, [r5, 0x2E]
ands r3, r0
movs r0, 0
orrs r3, r1
strh r3, [r5, 0x2E]
adds r1, r5, 0
adds r1, 0x26
strb r0, [r1]
ldr r1, [r5, 0xC]
ldr r2, [r5, 0x10]
mov r0, sp
bl ConvertToDecimal
ldr r0, [r5, 0x10]
adds r1, r5, 0
adds r1, 0x25
strb r0, [r1]
ldrb r2, [r1]
subs r0, r2, 0x1
lsls r0, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B50
cmp r2, 0x1
bls _08013B50
adds r2, r1, 0
_08013B38:
ldrb r0, [r2]
subs r0, 0x1
strb r0, [r2]
ldrb r1, [r2]
subs r0, r1, 0x1
lsls r0, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B50
cmp r1, 0x1
bhi _08013B38
_08013B50:
ldr r1, [r5, 0x4]
str r1, [r5]
ldr r2, [r5, 0x10]
mov r0, sp
bl ConvertToDecimal
adds r0, r5, 0
adds r0, 0x25
ldrb r0, [r0]
subs r0, 0x1
adds r1, r5, 0
adds r1, 0x24
strb r0, [r1]
ldrb r2, [r1]
lsls r0, r2, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B92
cmp r2, 0
beq _08013B92
adds r2, r1, 0
_08013B7C:
ldrb r0, [r2]
subs r0, 0x1
strb r0, [r2]
ldrb r1, [r2]
lsls r0, r1, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _08013B92
cmp r1, 0
bne _08013B7C
_08013B92:
add sp, 0x28
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08013B9C: .4byte 0x0000feff
_08013BA0: .4byte 0x0000fdff
_08013BA4: .4byte 0x0000f3ff
_08013BA8: .4byte 0x0000efff
_08013BAC: .4byte 0x0000dfff
_08013BB0: .4byte 0x00003fff
_08013BB4: .4byte 0x0000c1ff
_08013BB8: .4byte 0x00000fff
thumb_func_end sub_8013AA0
thumb_func_start sub_8013BBC
sub_8013BBC:
push {r4-r7,lr}
adds r7, r0, 0
adds r4, r7, 0
adds r4, 0x26
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
adds r0, r7, 0
bl sub_8013D10
ldrb r1, [r4]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08013C26
movs r2, 0x80
lsls r2, 6
ldrh r1, [r7, 0x2A]
ldr r4, _08013C38
adds r0, r4, 0
ands r0, r1
orrs r0, r2
strh r0, [r7, 0x2A]
adds r5, r7, 0
adds r5, 0x28
movs r6, 0x80
lsls r6, 1
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0
movs r3, 0
bl AddSprite
ldrh r0, [r7, 0x2A]
ands r4, r0
strh r4, [r7, 0x2A]
ldrh r1, [r7, 0x2E]
ldr r0, _08013C3C
lsrs r1, 4
adds r1, 0x10
ands r1, r0
lsls r1, 4
ldrh r2, [r7, 0x2E]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strh r0, [r7, 0x2E]
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0
movs r3, 0
bl AddSprite
_08013C26:
adds r0, r7, 0
bl sub_8013DD0
lsls r0, 24
cmp r0, 0
beq _08013C40
movs r0, 0x1
b _08013C62
.align 2, 0
_08013C38: .4byte 0x0000c1ff
_08013C3C: .4byte 0x00000fff
_08013C40:
bl sub_8012AE8
cmp r0, 0x1
beq _08013C56
cmp r0, 0x2
bne _08013C60
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08013C62
_08013C56:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08013C62
_08013C60:
movs r0, 0
_08013C62:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8013BBC
thumb_func_start sub_8013C68
sub_8013C68:
push {r4-r6,lr}
sub sp, 0x2C
adds r5, r0, 0
ldr r1, [r5]
ldr r2, [r5, 0x10]
add r0, sp, 0x4
bl ConvertToDecimal
ldr r0, [r5, 0x10]
subs r4, r0, 0x1
cmp r4, 0
ble _08013CA0
lsls r0, r4, 2
mov r1, sp
adds r1, r0
adds r1, 0x4
ldr r0, [r1]
cmp r0, 0
bne _08013CA0
movs r2, 0xFF
_08013C90:
str r2, [r1]
subs r1, 0x4
subs r4, 0x1
cmp r4, 0
ble _08013CA0
ldr r0, [r1]
cmp r0, 0
beq _08013C90
_08013CA0:
movs r4, 0
adds r0, r5, 0
adds r0, 0x25
adds r6, r0, 0
b _08013CDA
_08013CAA:
lsls r0, r4, 2
add r0, sp
adds r0, 0x4
ldr r0, [r0]
cmp r0, 0xFF
bne _08013CBA
movs r3, 0x2A
b _08013CC0
_08013CBA:
adds r0, 0x30
lsls r0, 24
lsrs r3, r0, 24
_08013CC0:
adds r4, 0x1
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
ldr r0, [r5, 0x1C]
subs r0, r1
ldr r1, [r5, 0x20]
ldr r2, [r5, 0x14]
str r2, [sp]
adds r2, r3, 0
movs r3, 0x7
bl sub_8012C60
_08013CDA:
ldrb r0, [r6]
cmp r4, r0
blt _08013CAA
movs r4, 0
b _08013D02
_08013CE4:
ldr r0, [r5, 0x14]
adds r4, 0x1
lsls r2, r4, 1
adds r2, r4
lsls r2, 2
ldr r1, [r5, 0x1C]
subs r1, r2
subs r1, 0x1
ldr r2, [r5, 0x20]
adds r2, 0xA
movs r3, 0x5
str r3, [sp]
movs r3, 0xB
bl sub_800792C
_08013D02:
ldr r0, [r5, 0x10]
cmp r4, r0
blt _08013CE4
add sp, 0x2C
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8013C68
thumb_func_start sub_8013D10
sub_8013D10:
push {r4-r7,lr}
adds r6, r0, 0
ldr r0, [r6, 0x14]
lsls r1, r0, 3
adds r1, r0
lsls r1, 3
ldr r0, _08013D34
adds r7, r1, r0
adds r4, r6, 0
adds r4, 0x24
ldrb r5, [r4]
bl sub_8012AE8
cmp r0, 0x9
beq _08013D38
cmp r0, 0xA
beq _08013D4E
b _08013D62
.align 2, 0
_08013D34: .4byte gUnknown_2027370
_08013D38:
ldrb r1, [r4]
adds r0, r6, 0
adds r0, 0x25
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
bge _08013D4A
adds r0, r1, 0x1
b _08013D5C
_08013D4A:
movs r0, 0
b _08013D60
_08013D4E:
ldrb r0, [r4]
cmp r0, 0
bne _08013D5A
adds r0, r6, 0
adds r0, 0x25
ldrb r0, [r0]
_08013D5A:
subs r0, 0x1
_08013D5C:
lsls r0, 24
lsrs r0, 24
_08013D60:
adds r5, r0, 0
_08013D62:
adds r4, r6, 0
adds r4, 0x24
ldrb r0, [r4]
cmp r5, r0
beq _08013D7C
strb r5, [r4]
movs r0, 0x3
bl sub_80119D4
adds r1, r6, 0
adds r1, 0x26
movs r0, 0x8
strb r0, [r1]
_08013D7C:
ldrb r0, [r4]
adds r0, 0x1
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r2, [r6, 0x1C]
subs r2, r1
movs r1, 0
ldrsh r0, [r7, r1]
lsls r0, 3
adds r2, r0
subs r2, 0x3
ldr r0, _08013DC8
ands r2, r0
ldrh r1, [r6, 0x2A]
movs r0, 0xFE
lsls r0, 8
ands r0, r1
orrs r0, r2
strh r0, [r6, 0x2A]
movs r1, 0x2
ldrsh r0, [r7, r1]
lsls r0, 3
ldr r1, [r6, 0x20]
adds r1, r0
subs r1, 0x7
ldr r0, _08013DCC
ands r1, r0
lsls r1, 4
ldrh r2, [r6, 0x2E]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strh r0, [r6, 0x2E]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08013DC8: .4byte 0x000001ff
_08013DCC: .4byte 0x00000fff
thumb_func_end sub_8013D10
thumb_func_start sub_8013DD0
sub_8013DD0:
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8012AE8
cmp r0, 0x7
beq _08013DE4
cmp r0, 0x8
beq _08013E10
movs r0, 0
b _08013E4C
_08013DE4:
ldr r2, [r4]
ldr r0, [r4, 0xC]
cmp r2, r0
beq _08013E18
ldr r1, _08013E0C
adds r0, r4, 0
adds r0, 0x24
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
adds r5, r2, r0
movs r0, 0x3
bl sub_80119D4
ldr r0, [r4, 0xC]
cmp r5, r0
bgt _08013E3E
b _08013E48
.align 2, 0
_08013E0C: .4byte gUnknown_80D4830
_08013E10:
ldr r2, [r4]
ldr r0, [r4, 0x8]
cmp r2, r0
bne _08013E22
_08013E18:
movs r0, 0x2
bl sub_80119D4
movs r0, 0
b _08013E4C
_08013E22:
ldr r1, _08013E44
adds r0, r4, 0
adds r0, 0x24
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
subs r5, r2, r0
movs r0, 0x3
bl sub_80119D4
ldr r0, [r4, 0x8]
cmp r5, r0
bge _08013E48
_08013E3E:
str r0, [r4]
b _08013E4A
.align 2, 0
_08013E44: .4byte gUnknown_80D4830
_08013E48:
str r5, [r4]
_08013E4A:
movs r0, 0x1
_08013E4C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8013DD0
thumb_func_start sub_8013E54
sub_8013E54:
push {r4-r6,lr}
sub sp, 0x8
ldr r6, _08013F60
movs r0, 0
movs r1, 0
str r0, [sp]
str r1, [sp, 0x4]
mov r0, sp
ldrh r0, [r0]
ldr r1, _08013F64
ands r1, r0
ldr r3, _08013F68
ldr r0, [sp]
ands r0, r3
orrs r0, r1
str r0, [sp]
mov r1, sp
ldrh r1, [r1]
adds r2, r3, 0
ands r2, r0
orrs r2, r1
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013F6C
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r5, _08013F70
adds r0, r5, 0
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013F74
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013F78
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
movs r4, 0x80
lsls r4, 7
mov r0, sp
ldrh r1, [r0]
ldr r0, _08013F7C
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
orrs r4, r0
ands r3, r1
orrs r3, r4
str r3, [sp]
mov r3, sp
movs r2, 0xFC
lsls r2, 2
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r5
movs r2, 0xF
movs r1, 0xF0
lsls r1, 8
ldr r4, _08013F80
ands r0, r4
orrs r0, r1
strh r0, [r3, 0x4]
movs r1, 0x2
ldrsh r0, [r6, r1]
lsls r0, 3
adds r0, 0x80
ands r0, r4
lsls r0, 4
ldrh r1, [r3, 0x6]
ands r2, r1
orrs r2, r0
strh r2, [r3, 0x6]
movs r0, 0x70
strh r0, [r3, 0x2]
movs r1, 0x80
lsls r1, 1
mov r0, sp
movs r2, 0
movs r3, 0
bl AddSprite
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08013F60: .4byte gUnknown_2027370
_08013F64: .4byte 0x0000feff
_08013F68: .4byte 0xffff0000
_08013F6C: .4byte 0x0000fdff
_08013F70: .4byte 0x0000f3ff
_08013F74: .4byte 0x0000efff
_08013F78: .4byte 0x0000dfff
_08013F7C: .4byte 0x00003fff
_08013F80: .4byte 0x00000fff
thumb_func_end sub_8013E54
thumb_func_start sub_8013F84
sub_8013F84:
push {r4-r6,lr}
sub sp, 0x8
ldr r6, _08014090
movs r0, 0
movs r1, 0
str r0, [sp]
str r1, [sp, 0x4]
mov r0, sp
ldrh r0, [r0]
ldr r1, _08014094
ands r1, r0
ldr r3, _08014098
ldr r0, [sp]
ands r0, r3
orrs r0, r1
str r0, [sp]
mov r1, sp
ldrh r1, [r1]
adds r2, r3, 0
ands r2, r0
orrs r2, r1
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _0801409C
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r5, _080140A0
adds r0, r5, 0
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _080140A4
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _080140A8
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
movs r4, 0x80
lsls r4, 7
mov r0, sp
ldrh r1, [r0]
ldr r0, _080140AC
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
orrs r4, r0
ands r3, r1
orrs r3, r4
str r3, [sp]
mov r3, sp
movs r2, 0xFC
lsls r2, 2
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r5
movs r2, 0xF
movs r1, 0xF0
lsls r1, 8
ldr r4, _080140B0
ands r0, r4
orrs r0, r1
strh r0, [r3, 0x4]
movs r1, 0x2
ldrsh r0, [r6, r1]
lsls r0, 3
adds r0, 0x60
ands r0, r4
lsls r0, 4
ldrh r1, [r3, 0x6]
ands r2, r1
orrs r2, r0
strh r2, [r3, 0x6]
movs r0, 0x70
strh r0, [r3, 0x2]
movs r1, 0x80
lsls r1, 1
mov r0, sp
movs r2, 0
movs r3, 0
bl AddSprite
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08014090: .4byte gUnknown_2027370
_08014094: .4byte 0x0000feff
_08014098: .4byte 0xffff0000
_0801409C: .4byte 0x0000fdff
_080140A0: .4byte 0x0000f3ff
_080140A4: .4byte 0x0000efff
_080140A8: .4byte 0x0000dfff
_080140AC: .4byte 0x00003fff
_080140B0: .4byte 0x00000fff
thumb_func_end sub_8013F84
thumb_func_start sub_80140B4
sub_80140B4:
push {r4-r7,lr}
ldr r4, _080140D8
adds r2, r0, 0
movs r3, 0x3
_080140BC:
adds r1, r2, 0
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r4, 0x18
adds r2, 0x18
subs r3, 0x1
cmp r3, 0
bge _080140BC
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080140D8: .4byte gUnknown_80D47C8
thumb_func_end sub_80140B4
thumb_func_start sub_80140DC
sub_80140DC:
push {lr}
sub sp, 0x4
ldr r0, _080140F4
str r0, [sp]
mov r0, sp
bl SetSavingIconCoords
bl sub_8011830
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080140F4: .4byte 0x008000c8
thumb_func_end sub_80140DC
thumb_func_start sub_80140F8
sub_80140F8:
push {lr}
sub sp, 0x4
ldr r0, _08014110
str r0, [sp]
mov r0, sp
bl SetSavingIconCoords
bl sub_8011830
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08014110: .4byte 0x004000bc
thumb_func_end sub_80140F8
thumb_func_start sub_8014114
sub_8014114:
push {lr}
bl sub_8011854
movs r0, 0
bl SetSavingIconCoords
pop {r0}
bx r0
thumb_func_end sub_8014114
thumb_func_start nullsub_201
nullsub_201:
bx lr
thumb_func_end nullsub_201
thumb_func_start sub_8014128
sub_8014128:
push {lr}
bl sub_8012AE8
cmp r0, 0x2
beq _08014136
movs r0, 0x1
b _08014138
_08014136:
movs r0, 0
_08014138:
pop {r1}
bx r1
thumb_func_end sub_8014128
thumb_func_start sub_801413C
sub_801413C:
movs r0, 0
bx lr
thumb_func_end sub_801413C
thumb_func_start sub_8014140
sub_8014140:
movs r0, 0
bx lr
thumb_func_end sub_8014140
thumb_func_start sub_8014144
sub_8014144:
ldr r0, _0801415C
movs r2, 0
str r2, [r0]
ldr r0, _08014160
movs r1, 0x3C
str r1, [r0]
ldr r0, _08014164
str r1, [r0]
ldr r0, _08014168
str r2, [r0]
bx lr
.align 2, 0
_0801415C: .4byte gUnknown_202E744
_08014160: .4byte gUnknown_202E738
_08014164: .4byte gUnknown_202E73C
_08014168: .4byte gUnknown_202E740
thumb_func_end sub_8014144
thumb_func_start sub_801416C
sub_801416C:
push {lr}
adds r2, r0, 0
adds r3, r1, 0
movs r0, 0x1
negs r0, r0
cmp r2, r0
bge _0801418C
ldr r0, _08014184
str r3, [r0]
ldr r1, _08014188
negs r0, r2
b _08014194
.align 2, 0
_08014184: .4byte gUnknown_202E738
_08014188: .4byte gUnknown_202E740
_0801418C:
ldr r0, _080141A8
str r2, [r0]
ldr r1, _080141AC
movs r0, 0
_08014194:
str r0, [r1]
ldr r0, _080141B0
adds r1, r3, 0
cmp r1, 0
bge _080141A0
movs r1, 0
_080141A0:
str r1, [r0]
pop {r0}
bx r0
.align 2, 0
_080141A8: .4byte gUnknown_202E738
_080141AC: .4byte gUnknown_202E740
_080141B0: .4byte gUnknown_202E73C
thumb_func_end sub_801416C
thumb_func_start sub_80141B4
sub_80141B4:
push {r4-r6,lr}
sub sp, 0x14
lsls r3, 16
lsrs r3, 16
movs r6, 0x1
negs r6, r6
movs r5, 0
str r5, [sp]
movs r4, 0x3
str r4, [sp, 0x4]
str r5, [sp, 0x8]
str r2, [sp, 0xC]
str r3, [sp, 0x10]
adds r2, r6, 0
movs r3, 0
bl sub_8014248
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80141B4
thumb_func_start sub_80141E0
sub_80141E0:
push {r4-r6,lr}
sub sp, 0x14
lsls r6, r2, 16
movs r2, 0x1
negs r2, r2
ldr r3, _08014210
movs r5, 0
str r5, [sp]
movs r4, 0x3
str r4, [sp, 0x4]
str r5, [sp, 0x8]
str r1, [sp, 0xC]
movs r1, 0xC0
lsls r1, 18
orrs r1, r6
lsrs r1, 16
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08014210: .4byte gUnknown_80D485C
thumb_func_end sub_80141E0
thumb_func_start sub_8014214
sub_8014214:
push {r4-r6,lr}
sub sp, 0x14
lsls r6, r2, 16
movs r2, 0x1
negs r2, r2
ldr r3, _08014244
movs r5, 0
str r5, [sp]
movs r4, 0x3
str r4, [sp, 0x4]
str r5, [sp, 0x8]
str r1, [sp, 0xC]
movs r1, 0xC0
lsls r1, 18
orrs r1, r6
lsrs r1, 16
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08014244: .4byte gUnknown_80D4880
thumb_func_end sub_8014214
thumb_func_start sub_8014248
sub_8014248:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r6, r1, 0
mov r9, r2
mov r8, r3
ldr r5, [sp, 0x28]
ldr r7, [sp, 0x30]
ldr r1, [sp, 0x34]
lsls r1, 16
lsrs r1, 16
mov r10, r1
movs r1, 0
str r1, [sp]
ldr r4, _080142B8
ldr r3, _080142BC
adds r2, r4, r3
adds r1, r4, 0
mov r3, r10
bl xxx_format_string
ldr r0, _080142C0
str r4, [r0]
ldr r0, _080142C4
str r6, [r0, 0x24]
ldr r0, _080142C8
str r5, [r0]
ldr r0, _080142CC
mov r4, r8
str r4, [r0]
ldr r0, _080142D0
ldr r5, [sp, 0x24]
str r5, [r0]
ldr r0, _080142D4
mov r6, r9
str r6, [r0]
ldr r0, _080142D8
bl sub_801317C
movs r0, 0x10
mov r1, r10
ands r0, r1
cmp r0, 0
beq _080142E4
ldr r2, _080142DC
adds r1, r2, 0
ldr r0, _080142E0
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r3,r4,r6}
stm r1!, {r3,r4,r6}
b _080142F2
.align 2, 0
_080142B8: .4byte gUnknown_202E798
_080142BC: .4byte 0x000003e7
_080142C0: .4byte gUnknown_202E794
_080142C4: .4byte gUnknown_202E748
_080142C8: .4byte gUnknown_202EC10
_080142CC: .4byte gUnknown_202EC14
_080142D0: .4byte gUnknown_202EC18
_080142D4: .4byte gUnknown_202EC1C
_080142D8: .4byte gUnknown_202EC28
_080142DC: .4byte gUnknown_203B198
_080142E0: .4byte gUnknown_80D48DC
_080142E4:
ldr r2, _08014358
adds r1, r2, 0
ldr r0, _0801435C
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
_080142F2:
adds r4, r2, 0
movs r0, 0
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
strh r0, [r4, 0x28]
movs r0, 0x40
strb r0, [r4, 0x18]
cmp r7, 0
beq _08014368
ldr r1, [r7, 0x4]
cmp r1, 0
beq _08014368
ldrb r0, [r7, 0xC]
lsls r0, 3
adds r1, 0x4
adds r1, r0
ldr r0, [r1]
cmp r0, 0
beq _08014368
ldrh r0, [r7, 0x8]
strh r0, [r4, 0x20]
ldrh r0, [r7, 0xA]
strh r0, [r4, 0x22]
movs r0, 0x5
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
strh r0, [r4, 0x28]
movs r4, 0
_0801432A:
adds r0, r4, 0
adds r0, 0xE0
ldr r2, [r7, 0x4]
ldrb r1, [r7, 0xC]
lsls r1, 3
adds r2, r1
lsls r3, r4, 2
ldr r1, [r2]
adds r1, r3
bl SetBGPaletteBufferColorArray
adds r4, 0x1
cmp r4, 0xF
ble _0801432A
movs r0, 0x1
str r0, [sp]
ldrb r0, [r7, 0xE]
cmp r0, 0
beq _08014360
ldr r1, _08014358
movs r0, 0x7
b _08014364
.align 2, 0
_08014358: .4byte gUnknown_203B198
_0801435C: .4byte gUnknown_80D48C4
_08014360:
ldr r1, _080143E8
movs r0, 0x5
_08014364:
str r0, [r1, 0x1C]
adds r4, r1, 0
_08014368:
ldr r2, _080143EC
adds r1, r4, 0
adds r1, 0x30
adds r0, r2, 0
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
adds r0, r4, 0
adds r0, 0x48
ldm r2!, {r1,r3,r5}
stm r0!, {r1,r3,r5}
ldm r2!, {r1,r3,r6}
stm r0!, {r1,r3,r6}
bl sub_8004914
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, _080143F0
movs r4, 0
movs r2, 0
movs r0, 0x4
strh r0, [r1]
strh r0, [r1, 0x2]
movs r0, 0x70
strh r0, [r1, 0x8]
ldr r0, _080143F4
movs r5, 0x2
ldrsh r0, [r0, r5]
lsls r0, 3
adds r0, 0x22
strh r0, [r1, 0xA]
movs r0, 0x7
str r0, [r1, 0x10]
str r2, [r1, 0x1C]
adds r1, 0x20
strb r4, [r1]
movs r0, 0x10
mov r6, r10
ands r0, r6
movs r1, 0x3
cmp r0, 0
beq _080143C6
movs r1, 0x8
_080143C6:
adds r0, r1, 0
bl sub_80063D8
ldr r0, _080143F8
movs r1, 0x1
str r1, [r0]
ldr r0, _080143FC
mov r2, r10
strh r2, [r0]
movs r0, 0x20
mov r3, r10
ands r0, r3
cmp r0, 0
beq _08014404
ldr r0, _08014400
strb r1, [r0]
b _08014408
.align 2, 0
_080143E8: .4byte gUnknown_203B198
_080143EC: .4byte gUnknown_80D48AC
_080143F0: .4byte gUnknown_202E748
_080143F4: .4byte gUnknown_2027370
_080143F8: .4byte gUnknown_202E744
_080143FC: .4byte gUnknown_202E77C
_08014400: .4byte gUnknown_202E790
_08014404:
ldr r0, _0801445C
strb r4, [r0]
_08014408:
movs r0, 0x80
lsls r0, 3
mov r4, r10
ands r0, r4
cmp r0, 0
beq _08014418
bl sub_8094C14
_08014418:
ldr r0, _08014460
movs r1, 0x1
str r1, [r0]
ldr r0, _08014464
str r1, [r0]
bl sub_80048F8
ldr r1, _08014468
movs r0, 0
strb r0, [r1]
ldr r1, _0801446C
movs r0, 0
str r0, [r1]
ldr r5, [sp]
cmp r5, 0
beq _08014480
ldr r0, [r7, 0x4]
ldrb r1, [r7, 0xC]
lsls r1, 3
adds r0, 0x4
adds r0, r1
ldr r4, [r0]
movs r0, 0x1
bl sub_80073B8
ldrb r0, [r7, 0xD]
cmp r0, 0
bne _08014470
movs r0, 0x1
adds r1, r4, 0
movs r2, 0xE
bl sub_8008274
b _0801447A
.align 2, 0
_0801445C: .4byte gUnknown_202E790
_08014460: .4byte gUnknown_202E788
_08014464: .4byte gUnknown_202E78C
_08014468: .4byte gUnknown_202E791
_0801446C: .4byte gUnknown_202E784
_08014470:
movs r0, 0x1
adds r1, r4, 0
movs r2, 0xE
bl sub_800836C
_0801447A:
movs r0, 0x1
bl sub_80073E0
_08014480:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8014248
thumb_func_start sub_8014490
sub_8014490:
ldr r0, _0801449C
movs r1, 0
str r1, [r0]
ldr r0, _080144A0
str r1, [r0]
bx lr
.align 2, 0
_0801449C: .4byte gUnknown_202E744
_080144A0: .4byte gUnknown_202EC1C
thumb_func_end sub_8014490
thumb_func_start sub_80144A4
sub_80144A4:
push {lr}
adds r1, r0, 0
cmp r1, 0
beq _080144B2
ldr r0, _080144BC
ldr r0, [r0]
str r0, [r1]
_080144B2:
ldr r0, _080144C0
ldr r0, [r0]
pop {r1}
bx r1
.align 2, 0
_080144BC: .4byte gUnknown_202EC1C
_080144C0: .4byte gUnknown_202E744
thumb_func_end sub_80144A4
thumb_func_start xxx_draw_string_80144C4
xxx_draw_string_80144C4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
movs r0, 0x1
mov r10, r0
ldr r1, _080144F4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
_080144DC:
ldr r0, _080144F8
ldr r1, [r0]
adds r3, r0, 0
cmp r1, 0xB
bls _080144E8
b _08014A6A
_080144E8:
lsls r0, r1, 2
ldr r1, _080144FC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080144F4: .4byte gUnknown_202E784
_080144F8: .4byte gUnknown_202E744
_080144FC: .4byte _08014500
.align 2, 0
_08014500:
.4byte _08014A72
.4byte _08014530
.4byte _08014708
.4byte _08014A38
.4byte _08014A48
.4byte _08014A60
.4byte _08014778
.4byte _080147E2
.4byte _080147E2
.4byte _080147E2
.4byte _080149D8
.4byte _08014A04
_08014530:
ldr r0, _08014540
ldr r6, [r0]
ldr r0, _08014544
ldrb r0, [r0]
cmp r0, 0
beq _0801457C
ldr r7, _08014548
b _08014580
.align 2, 0
_08014540: .4byte gUnknown_202E794
_08014544: .4byte gUnknown_202E790
_08014548: .4byte 0x0001869f
_0801454C:
str r2, [r3, 0x1C]
adds r1, r3, 0
adds r1, 0x20
movs r0, 0x1
strb r0, [r1]
ldr r1, _0801456C
movs r0, 0x8
str r0, [r1]
ldr r0, _08014570
strb r2, [r0]
ldr r1, _08014574
ldr r0, _08014578
ldr r0, [r0]
str r0, [r1]
b _0801466C
.align 2, 0
_0801456C: .4byte gUnknown_202E744
_08014570: .4byte gUnknown_202E791
_08014574: .4byte gUnknown_202E780
_08014578: .4byte gUnknown_202E738
_0801457C:
ldr r0, _08014594
ldr r7, [r0]
_08014580:
ldr r1, _08014598
movs r0, 0
str r0, [r1, 0x2C]
bl sub_80073B8
ldr r1, _0801459C
mov r8, r1
ldr r2, _080145A0
mov r9, r2
b _08014652
.align 2, 0
_08014594: .4byte gUnknown_202E788
_08014598: .4byte gUnknown_202E748
_0801459C: .4byte gUnknown_202E744
_080145A0: .4byte gUnknown_202E780
_080145A4:
adds r0, r4, 0
adds r0, 0x20
ldrb r5, [r0]
cmp r5, 0
beq _080145EC
movs r3, 0x2
ldrsh r0, [r4, r3]
cmp r0, 0x22
ble _080145CC
movs r0, 0x8
mov r4, r8
str r0, [r4]
ldr r0, _080145C8
ldr r0, [r0]
mov r1, r9
str r0, [r1]
b _080145DA
.align 2, 0
_080145C8: .4byte gUnknown_202E738
_080145CC:
movs r0, 0x7
mov r2, r8
str r0, [r2]
ldr r0, _080145E4
ldr r0, [r0]
mov r3, r9
str r0, [r3]
_080145DA:
ldr r1, _080145E8
movs r0, 0
strb r0, [r1]
b _0801466C
.align 2, 0
_080145E4: .4byte gUnknown_202E73C
_080145E8: .4byte gUnknown_202E791
_080145EC:
ldrb r0, [r6]
cmp r0, 0
beq _0801466C
cmp r0, 0xD
beq _080145FA
cmp r0, 0xA
bne _08014608
_080145FA:
movs r0, 0x4
strh r0, [r4]
ldrh r0, [r4, 0x2]
adds r0, 0xB
strh r0, [r4, 0x2]
adds r6, 0x1
b _08014630
_08014608:
adds r0, r6, 0
add r1, sp, 0x4
bl xxx_get_next_char_from_string
adds r6, r0, 0
movs r1, 0
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
ldr r2, [sp, 0x4]
ldr r3, [r4, 0x10]
str r5, [sp]
bl xxx_call_draw_char
ldrh r1, [r4]
adds r1, r0
strh r1, [r4]
ldr r0, _08014694
ldr r0, [r0]
str r0, [r4, 0x2C]
_08014630:
ldr r3, _08014698
movs r4, 0x2
ldrsh r0, [r3, r4]
cmp r0, 0x22
ble _08014650
ldr r0, _0801469C
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
bne _0801464C
b _0801454C
_0801464C:
movs r0, 0x4
strh r0, [r3, 0x2]
_08014650:
subs r7, 0x1
_08014652:
cmp r7, 0
ble _0801466C
ldr r4, _08014698
adds r0, r6, 0
adds r1, r4, 0
bl sub_8009190
adds r6, r0, 0
adds r0, r4, 0
adds r0, 0x21
ldrb r0, [r0]
cmp r0, 0
beq _080145A4
_0801466C:
movs r0, 0
bl sub_80073E0
ldr r4, _080146A0
str r6, [r4]
ldr r0, _080146A4
bl sub_801317C
ldr r0, [r4]
ldrb r0, [r0]
cmp r0, 0
bne _080146BC
ldr r0, _080146A8
ldr r0, [r0]
cmp r0, 0
beq _080146B0
ldr r1, _080146AC
movs r0, 0x3
str r0, [r1]
b _08014A72
.align 2, 0
_08014694: .4byte gUnknown_202E78C
_08014698: .4byte gUnknown_202E748
_0801469C: .4byte gUnknown_202E77C
_080146A0: .4byte gUnknown_202E794
_080146A4: .4byte gUnknown_202EC28
_080146A8: .4byte gUnknown_202EC14
_080146AC: .4byte gUnknown_202E744
_080146B0:
ldr r1, _080146B8
movs r0, 0x6
str r0, [r1]
b _08014A72
.align 2, 0
_080146B8: .4byte gUnknown_202E744
_080146BC:
ldr r0, _080146E8
movs r2, 0
str r2, [r0, 0x30]
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
beq _080146FC
ldr r1, _080146EC
ldr r0, [r1]
cmp r0, 0x1
beq _080146D4
b _08014A72
_080146D4:
movs r0, 0x7
str r0, [r1]
ldr r0, _080146F0
strb r2, [r0]
ldr r1, _080146F4
ldr r0, _080146F8
ldr r0, [r0]
str r0, [r1]
b _08014A72
.align 2, 0
_080146E8: .4byte gUnknown_202E748
_080146EC: .4byte gUnknown_202E744
_080146F0: .4byte gUnknown_202E791
_080146F4: .4byte gUnknown_202E780
_080146F8: .4byte gUnknown_202E738
_080146FC:
ldr r1, _08014704
movs r0, 0x2
b _08014A68
.align 2, 0
_08014704: .4byte gUnknown_202E744
_08014708:
ldr r4, _08014760
ldrh r1, [r4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08014718
bl sub_8011A04
_08014718:
ldrh r1, [r4]
movs r0, 0x2
ands r0, r1
ldr r2, _08014764
cmp r0, 0
bne _08014742
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08014742
ldr r0, _08014768
ldrh r1, [r0, 0x2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08014742
ldr r0, _0801476C
movs r1, 0x1
strb r1, [r0]
ldr r0, _08014770
str r0, [r2, 0x30]
_08014742:
ldr r1, [r2, 0x30]
adds r1, 0x1
str r1, [r2, 0x30]
ldr r0, [r2, 0x2C]
cmp r1, r0
bgt _08014750
b _08014A72
_08014750:
ldr r1, _08014774
movs r0, 0x1
str r0, [r1]
adds r1, r2, 0
adds r1, 0x21
movs r0, 0
strb r0, [r1]
b _08014A6A
.align 2, 0
_08014760: .4byte gUnknown_202E77C
_08014764: .4byte gUnknown_202E748
_08014768: .4byte gUnknown_20255F0
_0801476C: .4byte gUnknown_202E790
_08014770: .4byte 0x0001869f
_08014774: .4byte gUnknown_202E744
_08014778:
ldr r0, _080147B4
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _080147DC
movs r0, 0x9
str r0, [r3]
ldr r1, _080147B8
movs r0, 0
strb r0, [r1]
ldr r0, _080147BC
ldr r1, [r0]
cmp r1, 0
ble _080147C8
ldr r2, _080147C0
ldr r0, _080147C4
ldr r0, [r0]
subs r0, r1, r0
str r0, [r2]
cmp r0, 0
blt _080147A8
b _08014A6A
_080147A8:
movs r0, 0xB
str r0, [r3]
movs r0, 0
str r0, [r2]
b _08014A6A
.align 2, 0
_080147B4: .4byte gUnknown_202E77C
_080147B8: .4byte gUnknown_202E791
_080147BC: .4byte gUnknown_202E740
_080147C0: .4byte gUnknown_202E780
_080147C4: .4byte gUnknown_202E784
_080147C8:
ldr r0, _080147D4
ldr r1, _080147D8
ldr r1, [r1]
str r1, [r0]
b _08014A6A
.align 2, 0
_080147D4: .4byte gUnknown_202E780
_080147D8: .4byte gUnknown_202E738
_080147DC:
movs r0, 0xB
str r0, [r3]
b _08014A6A
_080147E2:
movs r5, 0
ldr r0, _0801481C
adds r0, 0x20
strb r5, [r0]
ldr r4, _08014820
adds r0, r4, 0
movs r1, 0
bl nullsub_34
ldr r0, _08014824
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08014802
b _0801494C
_08014802:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0801482C
ldr r1, _08014828
ldr r0, [r1]
cmp r0, 0
bgt _08014814
b _0801494C
_08014814:
subs r0, 0x1
str r0, [r1]
b _08014856
.align 2, 0
_0801481C: .4byte gUnknown_202E748
_08014820: .4byte gUnknown_202EC28
_08014824: .4byte gUnknown_202E77C
_08014828: .4byte gUnknown_202E780
_0801482C:
ldr r2, _080148E4
ldrh r1, [r2, 0x2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _0801483A
b _0801494C
_0801483A:
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _08014842
b _0801494C
_08014842:
ldrh r1, [r2]
movs r0, 0xF2
ands r0, r1
cmp r0, 0x2
bne _0801484E
b _0801494C
_0801484E:
ldrb r0, [r4, 0x5]
cmp r0, 0
beq _08014856
movs r5, 0x1
_08014856:
cmp r5, 0
bne _0801494C
ldr r1, _080148E8
ldrb r0, [r1]
adds r2, r0, 0x1
strb r2, [r1]
ldr r0, _080148EC
ldrh r7, [r0]
movs r0, 0x2
ands r0, r7
cmp r0, 0
beq _08014870
b _08014A72
_08014870:
movs r0, 0x8
ands r2, r0
cmp r2, 0
bne _0801487A
b _08014A72
_0801487A:
ldr r3, _080148F0
ldrh r1, [r3]
ldr r0, _080148F4
ands r0, r1
ldr r1, _080148F8
ands r0, r1
ldr r4, _080148FC
ands r0, r4
ldr r1, _08014900
ands r0, r1
ldr r1, _08014904
ands r0, r1
movs r1, 0x80
lsls r1, 7
ldr r2, _08014908
ands r0, r2
orrs r0, r1
strh r0, [r3]
ldrh r0, [r3, 0x2]
ldr r5, _0801490C
ands r5, r0
ands r5, r2
strh r5, [r3, 0x2]
movs r2, 0xFC
lsls r2, 2
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r6, 0xF
lsls r1, r6, 12
ldr r2, _08014910
ands r0, r2
movs r4, 0
mov r8, r4
orrs r0, r1
strh r0, [r3, 0x4]
movs r0, 0x10
ands r0, r7
adds r4, r3, 0
cmp r0, 0
beq _08014914
movs r2, 0xF0
lsls r2, 3
ldrh r1, [r4, 0x6]
adds r0, r6, 0
ands r0, r1
orrs r0, r2
strh r0, [r4, 0x6]
movs r0, 0x70
b _08014932
.align 2, 0
_080148E4: .4byte gUnknown_20255F0
_080148E8: .4byte gUnknown_202E791
_080148EC: .4byte gUnknown_202E77C
_080148F0: .4byte gUnknown_202E6E0
_080148F4: .4byte 0x0000feff
_080148F8: .4byte 0x0000fdff
_080148FC: .4byte 0x0000f3ff
_08014900: .4byte 0x0000efff
_08014904: .4byte 0x0000dfff
_08014908: .4byte 0x00003fff
_0801490C: .4byte 0x0000c1ff
_08014910: .4byte 0x00000fff
_08014914:
ldr r3, _08014944
movs r0, 0xA
ldrsh r1, [r3, r0]
adds r1, 0x1
ands r1, r2
lsls r1, 4
ldrh r2, [r4, 0x6]
adds r0, r6, 0
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x6]
movs r1, 0x8
ldrsh r0, [r3, r1]
ldr r1, _08014948
ands r0, r1
_08014932:
strh r0, [r4, 0x2]
movs r1, 0x80
lsls r1, 1
adds r0, r4, 0
movs r2, 0
movs r3, 0
bl AddSprite
b _08014A72
.align 2, 0
_08014944: .4byte gUnknown_202E748
_08014948: .4byte 0x000001ff
_0801494C:
ldr r0, _08014960
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
bne _08014968
ldr r1, _08014964
movs r0, 0xB
str r0, [r1]
b _080149BA
.align 2, 0
_08014960: .4byte gUnknown_202E794
_08014964: .4byte gUnknown_202E744
_08014968:
ldr r4, _08014974
ldr r0, [r4]
cmp r0, 0x9
bne _08014978
movs r0, 0xB
b _080149B8
.align 2, 0
_08014974: .4byte gUnknown_202E744
_08014978:
cmp r0, 0x8
bne _080149B6
ldr r2, _080149A0
movs r1, 0x4
strh r1, [r2]
movs r3, 0x2
ldrsh r0, [r2, r3]
cmp r0, 0x22
ble _080149B6
strh r1, [r2, 0x2]
ldr r0, _080149A4
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080149A8
_08014998:
movs r0, 0
bl sub_8008C54
b _080149B6
.align 2, 0
_080149A0: .4byte gUnknown_202E748
_080149A4: .4byte gUnknown_202E77C
_080149A8:
ldr r1, [r2, 0x1C]
cmp r1, 0
bne _08014998
movs r0, 0xA
str r0, [r4]
str r1, [r2, 0x28]
b _080149BA
_080149B6:
movs r0, 0x1
_080149B8:
str r0, [r4]
_080149BA:
ldr r1, _080149D0
movs r0, 0x70
strh r0, [r1, 0x8]
ldr r0, _080149D4
movs r4, 0x2
ldrsh r0, [r0, r4]
lsls r0, 3
adds r0, 0x22
strh r0, [r1, 0xA]
b _08014A72
.align 2, 0
_080149D0: .4byte gUnknown_202E748
_080149D4: .4byte gUnknown_2027370
_080149D8:
ldr r4, _080149F8
ldr r0, [r4, 0x28]
adds r0, 0x1
str r0, [r4, 0x28]
ldr r0, _080149FC
ldr r1, [r0]
movs r0, 0
bl _call_via_r1
ldr r0, [r4, 0x28]
cmp r0, 0x11
ble _08014A72
ldr r1, _08014A00
movs r0, 0x1
str r0, [r1]
b _08014A72
.align 2, 0
_080149F8: .4byte gUnknown_202E748
_080149FC: .4byte gUnknown_203B088
_08014A00: .4byte gUnknown_202E744
_08014A04:
ldr r0, _08014A2C
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 2
ands r0, r1
lsls r0, 16
lsrs r0, 16
cmp r0, 0
beq _08014A34
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, _08014A30
movs r0, 0
str r0, [r1]
b _08014A72
.align 2, 0
_08014A2C: .4byte gUnknown_202E77C
_08014A30: .4byte gUnknown_202E744
_08014A34:
str r0, [r3]
b _08014A72
_08014A38:
bl sub_8014A88
ldr r1, _08014A44
movs r0, 0x4
str r0, [r1]
b _08014A72
.align 2, 0
_08014A44: .4byte gUnknown_202E744
_08014A48:
bl sub_8014B94
lsls r0, 24
cmp r0, 0
beq _08014A72
ldr r1, _08014A5C
movs r0, 0x5
str r0, [r1]
b _08014A72
.align 2, 0
_08014A5C: .4byte gUnknown_202E744
_08014A60:
bl nullsub_35
ldr r1, _08014A84
movs r0, 0xB
_08014A68:
str r0, [r1]
_08014A6A:
mov r0, r10
cmp r0, 0
beq _08014A72
b _080144DC
_08014A72:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08014A84: .4byte gUnknown_202E744
thumb_func_end xxx_draw_string_80144C4
thumb_func_start sub_8014A88
sub_8014A88:
push {r4-r7,lr}
sub sp, 0x88
ldr r0, _08014A98
ldr r4, [r0]
movs r5, 0
movs r7, 0
movs r6, 0
b _08014ABE
.align 2, 0
_08014A98: .4byte gUnknown_202EC14
_08014A9C:
adds r5, 0xC
ldr r0, [r4]
add r1, sp, 0x8
add r2, sp, 0x88
movs r3, 0
bl xxx_format_string
add r0, sp, 0x8
bl sub_8008ED0
cmp r7, r0
bge _08014AB6
adds r7, r0, 0
_08014AB6:
adds r4, 0x8
adds r6, 0x1
cmp r6, 0x9
bgt _08014AC4
_08014ABE:
ldr r0, [r4]
cmp r0, 0
bne _08014A9C
_08014AC4:
adds r0, r5, 0
cmp r5, 0
bge _08014ACC
adds r0, r5, 0x7
_08014ACC:
asrs r2, r0, 3
movs r0, 0x7
ands r5, r0
cmp r5, 0
beq _08014AD8
adds r2, 0x1
_08014AD8:
ldr r4, _08014B74
ldr r0, _08014B78
ldr r0, [r0]
str r0, [r4, 0x34]
adds r1, r7, 0
cmp r1, 0
bge _08014AE8
adds r1, 0x7
_08014AE8:
asrs r1, 3
adds r1, 0x2
strh r1, [r4, 0x3C]
adds r0, r4, 0
adds r0, 0x40
strh r2, [r0]
strh r2, [r4, 0x3E]
movs r0, 0x1C
subs r0, r1
strh r0, [r4, 0x38]
movs r0, 0xE
subs r0, r2
strh r0, [r4, 0x3A]
movs r0, 0x80
strb r0, [r4]
movs r0, 0xC0
strb r0, [r4, 0x18]
ldr r5, _08014B7C
ldr r0, [r5]
cmp r0, 0
beq _08014B1E
adds r1, r4, 0
adds r1, 0x48
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
_08014B1E:
bl sub_8004914
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl sub_800641C
ldr r0, _08014B80
ldr r1, _08014B84
ldr r1, [r1]
ldr r2, _08014B88
ldr r3, _08014B8C
ldr r3, [r3]
ldr r4, _08014B90
ldr r4, [r4]
str r4, [sp]
movs r4, 0x2
str r4, [sp, 0x4]
bl sub_8012D60
ldr r0, [r5]
cmp r0, 0
beq _08014B6A
movs r0, 0x3
bl sub_80073B8
ldr r0, [r5]
ldr r2, [r0, 0x18]
movs r0, 0
str r0, [sp]
movs r0, 0x4
movs r1, 0x2
movs r3, 0x3
bl xxx_call_draw_string
movs r0, 0x3
bl sub_80073E0
_08014B6A:
add sp, 0x88
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08014B74: .4byte gUnknown_203B198
_08014B78: .4byte gUnknown_202EC10
_08014B7C: .4byte gUnknown_202EC20
_08014B80: .4byte gUnknown_202EBC0
_08014B84: .4byte gUnknown_202EC14
_08014B88: .4byte gUnknown_80D48A0
_08014B8C: .4byte gUnknown_202EC18
_08014B90: .4byte gUnknown_202EC1C
thumb_func_end sub_8014A88
thumb_func_start sub_8014B94
sub_8014B94:
push {r4,lr}
ldr r4, _08014BA8
adds r0, r4, 0
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
beq _08014BAC
movs r0, 0
b _08014BB6
.align 2, 0
_08014BA8: .4byte gUnknown_202EBC0
_08014BAC:
ldr r1, _08014BBC
adds r0, r4, 0
bl sub_8013114
movs r0, 0x1
_08014BB6:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08014BBC: .4byte gUnknown_202EC1C
thumb_func_end sub_8014B94
thumb_func_start nullsub_35
nullsub_35:
bx lr
thumb_func_end nullsub_35
thumb_func_start xxx_format_string
xxx_format_string:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x40
adds r5, r0, 0
str r1, [sp, 0x3C]
adds r7, r2, 0
lsls r3, 16
lsrs r3, 16
mov r8, r3
movs r0, 0x1
mov r10, r0
mov r9, r0
subs r7, 0x1
b _08014F62
_08014BE6:
movs r1, 0x1
b _08014C2C
_08014BEA:
mov r0, r10
cmp r0, 0
beq _08014C24
movs r1, 0
mov r10, r1
mov r9, r1
movs r0, 0x8
mov r1, r8
ands r0, r1
cmp r0, 0
beq _08014C2E
ldr r0, _08014C1C
add r4, sp, 0x3C
adds r1, r4, 0
adds r2, r7, 0
mov r3, r8
bl sub_8014FA8
ldr r0, _08014C20
adds r1, r4, 0
adds r2, r7, 0
mov r3, r8
bl sub_8014FA8
b _08014C2E
.align 2, 0
_08014C1C: .4byte gUnknown_202E5D8
_08014C20: .4byte gUnknown_80D48F4
_08014C24:
mov r0, r9
cmp r0, 0
beq _08014C2E
movs r1, 0
_08014C2C:
mov r9, r1
_08014C2E:
cmp r6, 0x23
bne _08014C5A
ldrb r3, [r5, 0x1]
cmp r3, 0x50
beq _08014C3C
cmp r3, 0x70
bne _08014C42
_08014C3C:
movs r0, 0x1
mov r10, r0
mov r9, r0
_08014C42:
ldr r1, [sp, 0x3C]
adds r2, r1, 0x1
cmp r2, r7
bcs _08014C56
movs r0, 0x23
strb r0, [r1]
str r2, [sp, 0x3C]
strb r3, [r1, 0x1]
adds r0, r2, 0x1
str r0, [sp, 0x3C]
_08014C56:
adds r5, 0x2
b _08014F62
_08014C5A:
cmp r6, 0x24
beq _08014C60
b _08014F26
_08014C60:
movs r4, 0
adds r5, 0x1
ldrb r0, [r5]
subs r0, 0x24
cmp r0, 0x52
bls _08014C6E
b _08014F0E
_08014C6E:
lsls r0, 2
ldr r1, _08014C78
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08014C78: .4byte _08014C7C
.align 2, 0
_08014C7C:
.4byte _08014F04
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0C
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014EC4
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014E60
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014E54
.4byte _08014DC8
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014DDC
.4byte _08014E10
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014F0E
.4byte _08014E24
.4byte _08014F0E
.4byte _08014E84
_08014DC8:
adds r5, 0x1
ldrb r0, [r5]
lsls r1, r0, 2
adds r1, r0
lsls r1, 4
ldr r0, _08014DD8
adds r4, r1, r0
b _08014F0C
.align 2, 0
_08014DD8: .4byte gUnknown_202CF58
_08014DDC:
adds r5, 0x1
ldrb r0, [r5]
cmp r0, 0x6D
bne _08014DFC
bl sub_808D3BC
adds r1, r0, 0
ldr r4, _08014DF8
adds r0, r4, 0
movs r2, 0
bl sub_808D9AC
b _08014F0E
.align 2, 0
_08014DF8: .4byte gUnknown_202EB80
_08014DFC:
ldrb r0, [r5]
lsls r1, r0, 2
adds r1, r0
lsls r1, 4
ldr r0, _08014E0C
adds r4, r1, r0
b _08014F0C
.align 2, 0
_08014E0C: .4byte gUnknown_202D098
_08014E10:
adds r5, 0x1
ldrb r0, [r5]
lsls r1, r0, 2
adds r1, r0
lsls r1, 4
ldr r0, _08014E20
adds r4, r1, r0
b _08014F0C
.align 2, 0
_08014E20: .4byte gFileCache + 0x110
_08014E24:
adds r5, 0x1
movs r0, 0
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _08014E40
ldr r0, _08014E3C
bl sub_80920D8
b _08014E48
.align 2, 0
_08014E3C: .4byte gTeamName
_08014E40:
ldr r0, _08014E4C
ldr r1, _08014E50
bl strcpy
_08014E48:
ldr r4, _08014E4C
b _08014F0E
.align 2, 0
_08014E4C: .4byte gTeamName
_08014E50: .4byte gUnknown_80D48F8
_08014E54:
adds r5, 0x1
ldr r4, _08014E5C
b _08014F0E
.align 2, 0
_08014E5C: .4byte gUnknown_202E628
_08014E60:
adds r5, 0x1
ldr r1, _08014E7C
ldr r2, _08014E80
ldrb r0, [r5]
subs r0, 0x30
lsls r0, 2
adds r0, r2
adds r5, 0x1
ldr r2, [r0]
mov r0, sp
bl sub_800D158
_08014E78:
mov r4, sp
b _08014F0E
.align 2, 0
_08014E7C: .4byte gUnknown_80D4900
_08014E80: .4byte gUnknown_202DE30
_08014E84:
adds r5, 0x1
ldr r1, _08014EBC
ldrb r0, [r5]
subs r0, 0x30
lsls r0, 2
adds r0, r1
ldr r3, [r0]
adds r5, 0x1
ldr r1, _08014EC0
ldrb r2, [r5]
subs r2, 0x30
adds r5, 0x1
mov r0, sp
bl sub_800D158
mov r0, sp
ldrb r1, [r0]
cmp r1, 0
beq _08014E78
movs r2, 0x60
_08014EAC:
cmp r1, 0x20
bne _08014EB2
strb r2, [r0]
_08014EB2:
adds r0, 0x1
ldrb r1, [r0]
cmp r1, 0
bne _08014EAC
b _08014E78
.align 2, 0
_08014EBC: .4byte gUnknown_202DE30
_08014EC0: .4byte gUnknown_80D4904
_08014EC4:
adds r5, 0x1
ldr r1, _08014EFC
ldrb r0, [r5]
subs r0, 0x30
lsls r0, 2
adds r0, r1
ldr r3, [r0]
adds r5, 0x1
ldr r1, _08014F00
ldrb r2, [r5]
subs r2, 0x30
adds r5, 0x1
mov r0, sp
bl sub_800D158
mov r0, sp
ldrb r1, [r0]
cmp r1, 0
beq _08014E78
movs r2, 0x60
_08014EEC:
cmp r1, 0x20
bne _08014EF2
strb r2, [r0]
_08014EF2:
adds r0, 0x1
ldrb r1, [r0]
cmp r1, 0
bne _08014EEC
b _08014E78
.align 2, 0
_08014EFC: .4byte gUnknown_202DE30
_08014F00: .4byte gUnknown_80D4908
_08014F04:
ldr r4, _08014F08
b _08014F0E
.align 2, 0
_08014F08: .4byte gUnknown_80D4910
_08014F0C:
adds r5, 0x1
_08014F0E:
cmp r4, 0
beq _08014F62
add r1, sp, 0x3C
adds r0, r4, 0
adds r2, r7, 0
mov r3, r8
bl sub_8014FA8
lsls r0, 24
cmp r0, 0
bne _08014F7E
b _08014F62
_08014F26:
adds r0, r6, 0
adds r0, 0x7F
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bls _08014F36
cmp r6, 0x87
bne _08014F54
_08014F36:
ldr r0, [sp, 0x3C]
cmp r0, r7
bcs _08014F42
strb r6, [r0]
adds r0, 0x1
str r0, [sp, 0x3C]
_08014F42:
adds r5, 0x1
ldrb r1, [r5]
cmp r1, 0
beq _08014F7E
ldr r0, [sp, 0x3C]
cmp r0, r7
bcs _08014F60
strb r1, [r0]
b _08014F5C
_08014F54:
ldr r0, [sp, 0x3C]
cmp r0, r7
bcs _08014F60
strb r6, [r0]
_08014F5C:
adds r0, 0x1
str r0, [sp, 0x3C]
_08014F60:
adds r5, 0x1
_08014F62:
ldrb r6, [r5]
cmp r6, 0
beq _08014F7E
cmp r6, 0xD
beq _08014F72
cmp r6, 0xA
beq _08014F72
b _08014BEA
_08014F72:
movs r0, 0x80
mov r1, r8
ands r0, r1
cmp r0, 0
bne _08014F7E
b _08014BE6
_08014F7E:
ldr r0, [sp, 0x3C]
movs r1, 0
strb r1, [r0]
ldrb r0, [r5]
cmp r0, 0xD
bne _08014F8C
adds r5, 0x1
_08014F8C:
ldrb r0, [r5]
cmp r0, 0xA
bne _08014F94
adds r5, 0x1
_08014F94:
adds r0, r5, 0
add sp, 0x40
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end xxx_format_string
thumb_func_start sub_8014FA8
sub_8014FA8:
push {r4-r6,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
lsls r3, 16
lsrs r3, 16
ldr r2, [r5]
ldrb r1, [r4]
cmp r1, 0
beq _08014FE4
movs r0, 0x80
ands r0, r3
lsls r0, 16
lsrs r3, r0, 16
_08014FC4:
cmp r3, 0
beq _08014FD2
cmp r1, 0xD
bne _08014FD2
str r2, [r5]
movs r0, 0x1
b _08014FE8
_08014FD2:
cmp r2, r6
bcs _08014FDC
ldrb r0, [r4]
strb r0, [r2]
adds r2, 0x1
_08014FDC:
adds r4, 0x1
ldrb r1, [r4]
cmp r1, 0
bne _08014FC4
_08014FE4:
str r2, [r5]
movs r0, 0
_08014FE8:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8014FA8
thumb_func_start sub_8014FF0
sub_8014FF0:
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x1F8
adds r5, r0, 0
adds r6, r1, 0
adds r0, r2, 0
mov r8, r3
ldr r4, [sp, 0x20C]
add r2, sp, 0x1F8
add r1, sp, 0x4
movs r3, 0
bl xxx_format_string
ldr r1, _08015030
add r1, sp
movs r0, 0
strb r0, [r1]
str r4, [sp]
adds r0, r5, 0
adds r1, r6, 0
add r2, sp, 0x4
mov r3, r8
bl xxx_call_draw_string
add sp, 0x1F8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08015030: .4byte 0x000001f7
thumb_func_end sub_8014FF0
thumb_func_start sub_8015034
sub_8015034:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x1FC
adds r6, r0, 0
mov r8, r1
adds r0, r2, 0
mov r9, r3
ldr r4, [sp, 0x214]
ldr r5, [sp, 0x218]
add r2, sp, 0x1FC
add r1, sp, 0x8
movs r3, 0
bl xxx_format_string
ldr r1, _0801507C
add r1, sp
movs r0, 0
strb r0, [r1]
str r4, [sp]
str r5, [sp, 0x4]
adds r0, r6, 0
mov r1, r8
add r2, sp, 0x8
mov r3, r9
bl sub_8008F8C
add sp, 0x1FC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801507C: .4byte 0x000001fb
thumb_func_end sub_8015034
thumb_func_start sub_8015080
sub_8015080:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r8, r0
mov r9, r1
ldr r4, _08015158
ldr r0, _0801515C
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0]
mov r12, r4
ldr r0, _08015160
mov r10, r0
mov r5, r12
movs r3, 0
movs r2, 0x3
_080150AC:
mov r4, r12
ldr r1, [r4]
adds r1, r3
adds r1, 0x54
mov r0, r10
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _080150AC
movs r4, 0
ldr r1, [r5]
adds r1, 0x54
ldr r0, _08015164
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldm r0!, {r3,r6,r7}
stm r1!, {r3,r6,r7}
ldr r1, [r5]
adds r1, 0x84
ldr r0, _08015168
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r0, [r5]
adds r0, 0x84
mov r1, r9
bl sub_8012CAC
bl sub_8004914
ldr r0, [r5]
adds r0, 0x54
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0
bl sub_80073B8
ldr r2, [r5]
adds r1, r2, 0
adds r1, 0xB4
ldr r6, _0801515C
adds r2, r6
mov r0, r8
movs r3, 0
bl xxx_format_string
ldr r2, [r5]
adds r2, 0xB4
str r4, [sp]
movs r0, 0x4
movs r1, 0x4
movs r3, 0
bl xxx_call_draw_string
movs r0, 0
bl sub_80073E0
ldr r0, [r5]
adds r0, 0x4
movs r1, 0x1
negs r1, r1
str r1, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
mov r1, r9
movs r2, 0
movs r3, 0
bl sub_8012D60
movs r0, 0x1
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08015158: .4byte gUnknown_203B1F8
_0801515C: .4byte 0x000004b4
_08015160: .4byte gUnknown_80DAF70
_08015164: .4byte gUnknown_80DAF88
_08015168: .4byte gUnknown_80DAFA0
thumb_func_end sub_8015080
thumb_func_start sub_801516C
sub_801516C:
push {r4,lr}
ldr r4, _08015184
ldr r0, [r4]
adds r0, 0x4
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
beq _08015188
movs r0, 0
b _08015192
.align 2, 0
_08015184: .4byte gUnknown_203B1F8
_08015188:
ldr r1, [r4]
adds r0, r1, 0x4
bl sub_8013114
movs r0, 0x3
_08015192:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801516C
thumb_func_start sub_8015198
sub_8015198:
ldr r0, _080151A0
ldr r0, [r0]
ldr r0, [r0]
bx lr
.align 2, 0
_080151A0: .4byte gUnknown_203B1F8
thumb_func_end sub_8015198
thumb_func_start sub_80151A4
sub_80151A4:
push {r4,lr}
ldr r4, _080151BC
ldr r0, [r4]
cmp r0, 0
beq _080151B6
bl MemoryFree
movs r0, 0
str r0, [r4]
_080151B6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080151BC: .4byte gUnknown_203B1F8
thumb_func_end sub_80151A4
thumb_func_start sub_80151C0
sub_80151C0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
adds r6, r1, 0
ldr r4, _080151FC
movs r0, 0xCC
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
str r5, [r0]
movs r1, 0
strb r1, [r0, 0x19]
ldr r0, [r4]
strb r1, [r0, 0x18]
ldr r0, [r4]
strb r1, [r0, 0x4]
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x5
bhi _0801524C
lsls r0, 2
ldr r1, _08015200
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080151FC: .4byte gUnknown_203B1FC
_08015200: .4byte _08015204
.align 2, 0
_08015204:
.4byte _0801524C
.4byte _0801524C
.4byte _0801524C
.4byte _0801524C
.4byte _0801521C
.4byte _08015234
_0801521C:
ldr r1, _08015230
ldr r2, [r1]
movs r0, 0x9
strb r0, [r2, 0x1A]
ldr r2, [r1]
movs r0, 0x1
strb r0, [r2, 0x4]
ldr r2, [r1]
movs r0, 0x36
b _08015258
.align 2, 0
_08015230: .4byte gUnknown_203B1FC
_08015234:
ldr r1, _08015248
ldr r2, [r1]
movs r0, 0x9
strb r0, [r2, 0x1A]
ldr r2, [r1]
movs r0, 0x1
strb r0, [r2, 0x4]
ldr r2, [r1]
movs r0, 0x18
b _08015258
.align 2, 0
_08015248: .4byte gUnknown_203B1FC
_0801524C:
ldr r1, _08015374
ldr r2, [r1]
movs r0, 0x6
strb r0, [r2, 0x1A]
ldr r2, [r1]
movs r0, 0xA
_08015258:
strb r0, [r2, 0x1B]
mov r8, r1
mov r0, r8
ldr r2, [r0]
movs r1, 0x9A
lsls r1, 1
adds r0, r2, r1
str r6, [r0]
adds r1, r2, 0
adds r1, 0xF8
adds r0, r2, 0
adds r0, 0xFC
str r0, [r1]
movs r2, 0
mov r1, r8
movs r3, 0
_08015278:
ldr r0, [r1]
adds r0, 0xF8
ldr r0, [r0]
adds r0, r2
strb r3, [r0]
adds r2, 0x1
cmp r2, 0x35
ble _08015278
ldr r5, _08015374
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0xF8
ldr r0, [r0]
movs r3, 0x9A
lsls r3, 1
adds r1, r2, r3
ldr r1, [r1]
ldrb r2, [r2, 0x1B]
bl MemoryCopy8
movs r2, 0
ldr r0, [r5]
ldrb r3, [r0, 0x1B]
cmp r2, r3
bge _080152EA
adds r1, r0, 0
adds r1, 0xF8
ldr r0, [r1]
ldrb r0, [r0]
mov r8, r5
cmp r0, 0
beq _080152C8
_080152B8:
adds r2, 0x1
cmp r2, r3
bge _080152EA
ldr r0, [r1]
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
bne _080152B8
_080152C8:
mov r4, r8
ldr r0, [r4]
ldrb r0, [r0, 0x1B]
cmp r2, r0
bge _080152EA
mov r1, r8
movs r3, 0
_080152D6:
ldr r0, [r1]
adds r0, 0xF8
ldr r0, [r0]
adds r0, r2
strb r3, [r0]
adds r2, 0x1
ldr r0, [r1]
ldrb r0, [r0, 0x1B]
cmp r2, r0
blt _080152D6
_080152EA:
bl sub_8015F44
ldr r2, _08015374
ldr r1, [r2]
strb r0, [r1, 0x1C]
ldr r1, [r2]
ldrb r0, [r1, 0x1C]
ldrb r5, [r1, 0x1B]
cmp r0, r5
bne _08015302
subs r0, 0x1
strb r0, [r1, 0x1C]
_08015302:
movs r6, 0x1
mov r12, r6
ldr r6, [r2]
adds r5, r6, 0x6
ldrh r1, [r6, 0x6]
ldr r0, _08015378
ands r0, r1
ldr r1, _0801537C
ands r0, r1
ldr r2, _08015380
ands r0, r2
ldr r1, _08015384
ands r0, r1
ldr r1, _08015388
ands r0, r1
strh r0, [r6, 0x6]
ldrh r0, [r5, 0x4]
adds r3, r2, 0
ands r3, r0
movs r1, 0xF
movs r2, 0xF0
lsls r2, 8
ldr r0, _0801538C
ands r3, r0
orrs r3, r2
strh r3, [r5, 0x4]
ldrh r0, [r5, 0x2]
movs r4, 0xFE
lsls r4, 8
ands r4, r0
movs r0, 0xF0
orrs r4, r0
strh r4, [r5, 0x2]
movs r2, 0xF0
lsls r2, 4
ldrh r0, [r5, 0x6]
ands r1, r0
movs r7, 0
orrs r1, r2
strh r1, [r5, 0x6]
ldrb r0, [r6, 0x4]
cmp r0, 0
beq _0801539C
ldr r0, _08015390
ands r4, r0
ldr r1, _08015394
movs r0, 0xFC
lsls r0, 8
ands r3, r0
orrs r3, r1
strh r3, [r5, 0x4]
ldr r0, _08015398
ands r4, r0
strh r4, [r5, 0x2]
mov r7, r12
b _080153BE
.align 2, 0
_08015374: .4byte gUnknown_203B1FC
_08015378: .4byte 0x0000feff
_0801537C: .4byte 0x0000fdff
_08015380: .4byte 0x0000f3ff
_08015384: .4byte 0x0000efff
_08015388: .4byte 0x0000dfff
_0801538C: .4byte 0x00000fff
_08015390: .4byte 0x0000c1ff
_08015394: .4byte 0x000003f6
_08015398: .4byte 0x00003fff
_0801539C:
movs r1, 0x80
lsls r1, 6
ldr r0, _08015468
ands r4, r0
orrs r4, r1
orrs r4, r7
movs r1, 0xFC
lsls r1, 2
movs r0, 0xFC
lsls r0, 8
ands r3, r0
orrs r3, r1
strh r3, [r5, 0x4]
ldr r0, _0801546C
ands r4, r0
strh r4, [r5, 0x2]
mov r1, r12
_080153BE:
movs r2, 0x80
lsls r2, 7
ldrh r1, [r6, 0x6]
ands r0, r1
orrs r0, r2
strh r0, [r6, 0x6]
ldr r5, _08015470
ldr r1, [r5]
movs r0, 0x4
strb r0, [r1, 0x16]
ldr r4, [r5]
adds r6, r4, 0
adds r6, 0xE
ldrh r1, [r4, 0xE]
ldr r0, _08015474
ands r0, r1
ldr r1, _08015478
ands r0, r1
ldr r3, _0801547C
ands r0, r3
ldr r1, _08015480
ands r0, r1
ldr r1, _08015484
ands r0, r1
ldr r1, _0801546C
ands r0, r1
strh r0, [r4, 0xE]
movs r2, 0xFD
lsls r2, 2
ldrh r1, [r6, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r3
movs r2, 0xF
movs r3, 0xF0
lsls r3, 8
ldr r1, _08015488
ands r0, r1
orrs r0, r3
strh r0, [r6, 0x4]
movs r0, 0xF0
strh r0, [r6, 0x2]
subs r1, 0xFF
ldrh r0, [r6, 0x6]
ands r2, r0
movs r0, 0
orrs r2, r1
strh r2, [r6, 0x6]
strb r0, [r4, 0x17]
mov r8, r5
ldr r2, _0801548C
mov r10, r2
mov r12, r8
movs r3, 0x9C
lsls r3, 1
mov r9, r3
ldr r4, _08015490
movs r3, 0
movs r2, 0x3
_08015438:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r9
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08015438
mov r6, r8
ldr r1, [r6]
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _08015498
movs r7, 0xA8
lsls r7, 1
adds r1, r7
ldr r0, _08015494
b _080154A0
.align 2, 0
_08015468: .4byte 0x0000c1ff
_0801546C: .4byte 0x00003fff
_08015470: .4byte gUnknown_203B1FC
_08015474: .4byte 0x0000feff
_08015478: .4byte 0x0000fdff
_0801547C: .4byte 0x0000f3ff
_08015480: .4byte 0x0000efff
_08015484: .4byte 0x0000dfff
_08015488: .4byte 0x00000fff
_0801548C: .4byte gUnknown_80DB550
_08015490: .4byte gUnknown_80DB538
_08015494: .4byte gUnknown_80DB580
_08015498:
movs r0, 0xA8
lsls r0, 1
adds r1, r0
ldr r0, _080154EC
_080154A0:
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
mov r0, r8
ldr r1, [r0]
movs r4, 0x9C
lsls r4, 1
adds r1, r4
mov r0, r10
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
bl sub_8004914
mov r3, r8
ldr r0, [r3]
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_8015A08
bl sub_8015C1C
bl sub_8015F84
movs r0, 0x1
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080154EC: .4byte gUnknown_80DB568
thumb_func_end sub_80151C0
thumb_func_start sub_80154F0
sub_80154F0:
push {r4,r5,lr}
ldr r4, _08015558
ldr r1, [r4]
ldrb r0, [r1, 0x16]
adds r0, 0x1
strb r0, [r1, 0x16]
bl sub_80157D8
ldr r2, [r4]
ldrb r1, [r2, 0x16]
movs r5, 0x8
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _0801551C
adds r0, r2, 0x6
movs r1, 0x80
lsls r1, 1
movs r2, 0
movs r3, 0
bl AddSprite
_0801551C:
ldr r1, [r4]
ldrb r0, [r1, 0x17]
adds r0, 0x1
strb r0, [r1, 0x17]
bl sub_80158BC
ldr r2, [r4]
ldrb r1, [r2, 0x17]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _08015544
adds r0, r2, 0
adds r0, 0xE
movs r1, 0x80
lsls r1, 1
movs r2, 0
movs r3, 0
bl AddSprite
_08015544:
bl sub_8012AE8
subs r0, 0x1
cmp r0, 0x5
bhi _080155E2
lsls r0, 2
ldr r1, _0801555C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08015558: .4byte gUnknown_203B1FC
_0801555C: .4byte _08015560
.align 2, 0
_08015560:
.4byte _080155C0
.4byte _080155C6
.4byte _080155E2
.4byte _080155D4
.4byte _08015578
.4byte _0801558C
_08015578:
ldr r0, _08015588
ldr r1, [r0]
ldrb r0, [r1, 0x1C]
cmp r0, 0
beq _080155B8
subs r0, 0x1
b _080155A8
.align 2, 0
_08015588: .4byte gUnknown_203B1FC
_0801558C:
ldr r5, _080155B4
ldr r0, [r5]
ldrb r4, [r0, 0x1C]
ldrb r0, [r0, 0x1B]
subs r0, 0x1
cmp r4, r0
beq _080155B8
bl sub_8015F44
cmp r4, r0
bge _080155B8
ldr r1, [r5]
ldrb r0, [r1, 0x1C]
adds r0, 0x1
_080155A8:
strb r0, [r1, 0x1C]
movs r0, 0x3
bl sub_80119D4
b _080155E2
.align 2, 0
_080155B4: .4byte gUnknown_203B1FC
_080155B8:
movs r0, 0x2
bl sub_80119D4
b _080155E2
_080155C0:
bl sub_801560C
b _080155E4
_080155C6:
bl sub_8015748
lsls r0, 24
cmp r0, 0
beq _080155E2
movs r0, 0x2
b _080155E4
_080155D4:
movs r0, 0x3
bl sub_80119D4
ldr r0, _080155EC
ldr r1, [r0]
movs r0, 0x5
strb r0, [r1, 0x1A]
_080155E2:
movs r0, 0
_080155E4:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080155EC: .4byte gUnknown_203B1FC
thumb_func_end sub_80154F0
thumb_func_start sub_80155F0
sub_80155F0:
push {r4,lr}
ldr r4, _08015608
ldr r0, [r4]
cmp r0, 0
beq _08015602
bl MemoryFree
movs r0, 0
str r0, [r4]
_08015602:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08015608: .4byte gUnknown_203B1FC
thumb_func_end sub_80155F0
thumb_func_start sub_801560C
sub_801560C:
push {r4-r6,lr}
ldr r3, _08015640
ldr r4, _08015644
ldr r5, [r4]
ldrb r0, [r5, 0x1A]
lsls r1, r0, 1
adds r1, r0
ldrb r2, [r5, 0x19]
lsls r0, r2, 8
subs r0, r2
adds r0, r1
lsls r0, 2
adds r3, 0x8
adds r0, r3
ldr r6, [r0]
movs r0, 0x83
lsls r0, 1
cmp r6, r0
beq _0801567A
cmp r6, r0
bgt _08015648
subs r0, 0x1
cmp r6, r0
beq _0801566C
b _080156BC
.align 2, 0
_08015640: .4byte gUnknown_80DB0F8
_08015644: .4byte gUnknown_203B1FC
_08015648:
ldr r0, _08015668
cmp r6, r0
bne _080156BC
movs r1, 0
ldrb r0, [r5, 0x18]
cmp r0, 0
bne _08015658
movs r1, 0x1
_08015658:
strb r1, [r5, 0x18]
movs r0, 0x4
bl sub_80119D4
movs r0, 0
bl sub_8015A08
b _0801573E
.align 2, 0
_08015668: .4byte 0x00000107
_0801566C:
bl sub_8015748
lsls r0, 24
cmp r0, 0
beq _0801573E
movs r0, 0x2
b _08015740
_0801567A:
bl sub_8015F44
cmp r0, 0
beq _080156D4
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08015696
bl sub_8015F44
ldr r1, [r4]
ldrb r1, [r1, 0x1B]
cmp r0, r1
bne _080156D4
_08015696:
movs r0, 0
bl sub_80119D4
ldr r0, _080156B8
ldr r2, [r0]
movs r1, 0x9A
lsls r1, 1
adds r0, r2, r1
ldr r0, [r0]
adds r1, r2, 0
adds r1, 0xF8
ldr r1, [r1]
ldrb r2, [r2, 0x1B]
bl MemoryCopy8
movs r0, 0x3
b _08015740
.align 2, 0
_080156B8: .4byte gUnknown_203B1FC
_080156BC:
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080156DC
lsls r0, r6, 24
lsrs r0, 24
bl sub_803D0F0
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _080156DC
_080156D4:
movs r0, 0x2
bl sub_80119D4
b _0801573E
_080156DC:
ldr r0, _08015728
ldr r3, [r0]
ldrb r1, [r3, 0x18]
adds r4, r0, 0
cmp r1, 0x1
bne _0801570A
ldrb r0, [r3, 0x1B]
subs r2, r0, 0x2
ldrb r3, [r3, 0x1C]
cmp r2, r3
blt _0801570A
adds r3, r4, 0
_080156F4:
ldr r0, [r3]
adds r0, 0xF8
ldr r0, [r0]
adds r0, r2
ldrb r1, [r0]
strb r1, [r0, 0x1]
subs r2, 0x1
ldr r0, [r3]
ldrb r0, [r0, 0x1C]
cmp r2, r0
bge _080156F4
_0801570A:
ldr r0, [r4]
ldrb r1, [r0, 0x1C]
adds r0, 0xF8
ldr r0, [r0]
adds r0, r1
strb r6, [r0]
ldr r1, [r4]
ldrb r2, [r1, 0x1C]
ldrb r0, [r1, 0x1B]
subs r0, 0x1
cmp r2, r0
bge _0801572C
adds r0, r2, 0x1
strb r0, [r1, 0x1C]
b _08015730
.align 2, 0
_08015728: .4byte gUnknown_203B1FC
_0801572C:
movs r0, 0x5
strb r0, [r1, 0x1A]
_08015730:
movs r0, 0
bl sub_80119D4
bl sub_8015C1C
bl sub_8015F84
_0801573E:
movs r0, 0
_08015740:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801560C
thumb_func_start sub_8015748
sub_8015748:
push {r4,lr}
ldr r4, _0801576C
ldr r2, [r4]
ldrb r1, [r2, 0x1C]
adds r0, r2, 0
adds r0, 0xF8
ldr r0, [r0]
adds r0, r1
ldrb r3, [r0]
cmp r3, 0
bne _08015790
cmp r1, 0
bne _08015770
movs r0, 0x2
bl sub_80119D4
movs r0, 0x1
b _080157CE
.align 2, 0
_0801576C: .4byte gUnknown_203B1FC
_08015770:
subs r0, r1, 0x1
strb r0, [r2, 0x1C]
ldr r0, [r4]
ldrb r1, [r0, 0x1C]
adds r0, 0xF8
ldr r0, [r0]
adds r0, r1
strb r3, [r0]
movs r0, 0x1
bl sub_80119D4
bl sub_8015C1C
bl sub_8015F84
b _080157CC
_08015790:
bl sub_8015F44
subs r3, r0, 0x1
ldr r0, [r4]
ldrb r2, [r0, 0x1C]
cmp r2, r3
bge _080157B0
_0801579E:
ldr r0, [r4]
adds r0, 0xF8
ldr r0, [r0]
adds r0, r2
ldrb r1, [r0, 0x1]
strb r1, [r0]
adds r2, 0x1
cmp r2, r3
blt _0801579E
_080157B0:
ldr r0, _080157D4
ldr r0, [r0]
adds r0, 0xF8
ldr r0, [r0]
adds r0, r3
movs r1, 0
strb r1, [r0]
movs r0, 0x1
bl sub_80119D4
bl sub_8015C1C
bl sub_8015F84
_080157CC:
movs r0, 0
_080157CE:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080157D4: .4byte gUnknown_203B1FC
thumb_func_end sub_8015748
thumb_func_start sub_80157D8
sub_80157D8:
push {r4,r5,lr}
ldr r5, _080157EC
ldr r0, _080157F0
ldr r0, [r0]
mov r12, r0
ldr r0, [r0]
cmp r0, 0x4
bne _080157F8
ldr r3, _080157F4
b _080157FE
.align 2, 0
_080157EC: .4byte gUnknown_20273B8
_080157F0: .4byte gUnknown_203B1FC
_080157F4: .4byte gUnknown_80DAFC0
_080157F8:
cmp r0, 0x5
bne _0801585C
ldr r3, _08015850
_080157FE:
mov r1, r12
ldrb r0, [r1, 0x1C]
lsls r0, 2
adds r0, r3
movs r2, 0
ldrsh r1, [r0, r2]
movs r2, 0
ldrsh r0, [r5, r2]
lsls r0, 3
adds r1, r0
ldr r0, _08015854
ands r1, r0
mov r4, r12
adds r4, 0x6
ldrh r2, [r4, 0x2]
movs r0, 0xFE
lsls r0, 8
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x2]
mov r1, r12
ldrb r0, [r1, 0x1C]
lsls r0, 2
adds r0, r3
movs r2, 0x2
ldrsh r1, [r0, r2]
movs r3, 0x2
ldrsh r0, [r5, r3]
lsls r0, 3
adds r1, r0
adds r1, 0x5
ldr r0, _08015858
ands r1, r0
lsls r1, 4
ldrh r2, [r4, 0x6]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x6]
b _080158B0
.align 2, 0
_08015850: .4byte gUnknown_80DB098
_08015854: .4byte 0x000001ff
_08015858: .4byte 0x00000fff
_0801585C:
mov r0, r12
ldrb r1, [r0, 0x1C]
lsls r1, 1
mov r2, r12
adds r2, 0x1E
adds r2, r1
adds r0, 0x8A
adds r0, r1
movs r3, 0
ldrsh r1, [r0, r3]
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
ldrh r2, [r2]
adds r1, r2
movs r2, 0
ldrsh r0, [r5, r2]
lsls r0, 3
adds r0, 0x1E
adds r1, r0
lsls r1, 23
lsrs r1, 23
mov r3, r12
adds r3, 0x6
ldrh r2, [r3, 0x2]
movs r0, 0xFE
lsls r0, 8
ands r0, r2
orrs r0, r1
strh r0, [r3, 0x2]
movs r0, 0x2
ldrsh r1, [r5, r0]
lsls r1, 3
adds r1, 0x22
ldr r0, _080158B8
ands r1, r0
lsls r1, 4
ldrh r2, [r3, 0x6]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strh r0, [r3, 0x6]
_080158B0:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080158B8: .4byte 0x00000fff
thumb_func_end sub_80157D8
thumb_func_start sub_80158BC
sub_80158BC:
push {r4-r6,lr}
ldr r6, _080158D4
bl sub_8012AE8
cmp r0, 0x8
beq _08015908
cmp r0, 0x8
bgt _080158D8
cmp r0, 0x7
beq _080158E2
b _08015980
.align 2, 0
_080158D4: .4byte gUnknown_2027370
_080158D8:
cmp r0, 0x9
beq _08015930
cmp r0, 0xA
beq _08015958
b _08015980
_080158E2:
ldr r4, _08015900
ldr r3, _08015904
ldr r2, [r3]
ldrb r0, [r2, 0x1A]
lsls r1, r0, 1
adds r1, r0
ldrb r2, [r2, 0x19]
lsls r0, r2, 8
subs r0, r2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0]
adds r5, r3, 0
b _08015988
.align 2, 0
_08015900: .4byte gUnknown_80DB0F8
_08015904: .4byte gUnknown_203B1FC
_08015908:
ldr r4, _08015928
ldr r3, _0801592C
ldr r2, [r3]
ldrb r0, [r2, 0x1A]
lsls r1, r0, 1
adds r1, r0
ldrb r2, [r2, 0x19]
lsls r0, r2, 8
subs r0, r2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x1]
adds r5, r3, 0
b _08015988
.align 2, 0
_08015928: .4byte gUnknown_80DB0F8
_0801592C: .4byte gUnknown_203B1FC
_08015930:
ldr r4, _08015950
ldr r3, _08015954
ldr r2, [r3]
ldrb r0, [r2, 0x1A]
lsls r1, r0, 1
adds r1, r0
ldrb r2, [r2, 0x19]
lsls r0, r2, 8
subs r0, r2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x2]
adds r5, r3, 0
b _08015988
.align 2, 0
_08015950: .4byte gUnknown_80DB0F8
_08015954: .4byte gUnknown_203B1FC
_08015958:
ldr r4, _08015978
ldr r3, _0801597C
ldr r2, [r3]
ldrb r0, [r2, 0x1A]
lsls r1, r0, 1
adds r1, r0
ldrb r2, [r2, 0x19]
lsls r0, r2, 8
subs r0, r2
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x3]
adds r5, r3, 0
b _08015988
.align 2, 0
_08015978: .4byte gUnknown_80DB0F8
_0801597C: .4byte gUnknown_203B1FC
_08015980:
ldr r1, _080159F8
ldr r0, [r1]
ldrb r0, [r0, 0x1A]
adds r5, r1, 0
_08015988:
adds r4, r5, 0
ldr r1, [r4]
ldrb r2, [r1, 0x1A]
cmp r0, r2
beq _080159A0
strb r0, [r1, 0x1A]
movs r0, 0x3
bl sub_80119D4
ldr r1, [r4]
movs r0, 0x8
strb r0, [r1, 0x17]
_080159A0:
ldr r3, _080159FC
ldr r4, [r5]
ldrb r0, [r4, 0x1A]
lsls r1, r0, 1
adds r1, r0
ldrb r2, [r4, 0x19]
lsls r0, r2, 8
subs r0, r2
adds r0, r1
lsls r0, 2
adds r0, r3
movs r3, 0
ldrsh r1, [r6, r3]
lsls r1, 3
ldrb r2, [r0, 0x4]
adds r1, r2
subs r1, 0x5
movs r3, 0x2
ldrsh r2, [r6, r3]
lsls r2, 3
ldrb r0, [r0, 0x5]
adds r2, r0
adds r2, 0x1
ldr r0, _08015A00
ands r1, r0
adds r4, 0xE
ldrh r3, [r4, 0x2]
movs r0, 0xFE
lsls r0, 8
ands r0, r3
orrs r0, r1
strh r0, [r4, 0x2]
ldr r0, _08015A04
ands r2, r0
lsls r2, 4
ldrh r1, [r4, 0x6]
movs r0, 0xF
ands r0, r1
orrs r0, r2
strh r0, [r4, 0x6]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080159F8: .4byte gUnknown_203B1FC
_080159FC: .4byte gUnknown_80DB0F8
_08015A00: .4byte 0x000001ff
_08015A04: .4byte 0x00000fff
thumb_func_end sub_80158BC
thumb_func_start sub_8015A08
sub_8015A08:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
movs r0, 0
bl sub_8008C54
movs r0, 0
bl sub_80073B8
ldr r3, _08015A68
ldr r2, _08015A6C
ldr r0, [r2]
ldrb r1, [r0, 0x19]
lsls r0, r1, 8
subs r0, r1
lsls r0, 2
adds r1, r3, 0
adds r1, 0x8
adds r0, r1
ldr r4, [r0]
ldr r0, _08015A70
cmp r4, r0
bne _08015A3E
b _08015BC0
_08015A3E:
mov r8, r2
adds r7, r3, 0
add r0, sp, 0x14
mov r10, r0
movs r6, 0
mov r9, r6
_08015A4A:
ldr r0, [r2]
ldrb r1, [r0, 0x19]
lsls r0, r1, 8
subs r0, r1
lsls r0, 2
adds r0, r6, r0
adds r0, r3
ldrb r0, [r0, 0x6]
cmp r0, 0x2
beq _08015AAA
cmp r0, 0x2
bgt _08015A74
cmp r0, 0x1
beq _08015A7A
b _08015A82
.align 2, 0
_08015A68: .4byte gUnknown_80DB0F8
_08015A6C: .4byte gUnknown_203B1FC
_08015A70: .4byte 0x00000109
_08015A74:
cmp r0, 0x3
beq _08015A7E
b _08015A82
_08015A7A:
movs r5, 0x5
b _08015AAC
_08015A7E:
movs r5, 0x7
b _08015AAC
_08015A82:
movs r5, 0x7
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08015AAC
cmp r4, 0xFF
bgt _08015AA4
lsls r0, r4, 24
lsrs r0, 24
bl sub_803D0F0
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _08015AAC
b _08015AAA
_08015AA4:
ldr r0, _08015ADC
cmp r4, r0
bgt _08015AAC
_08015AAA:
movs r5, 0x2
_08015AAC:
movs r0, 0x84
lsls r0, 1
cmp r4, r0
beq _08015B9E
subs r0, 0x1
cmp r4, r0
bne _08015B04
mov r2, r8
ldr r0, [r2]
ldrb r2, [r0, 0x18]
cmp r2, 0
bne _08015AE4
ldrb r0, [r0, 0x19]
lsls r1, r0, 8
subs r1, r0
lsls r1, 2
adds r1, r6, r1
adds r1, r7
ldrb r0, [r1, 0x4]
adds r0, 0x3
ldrb r1, [r1, 0x5]
str r2, [sp]
ldr r2, _08015AE0
b _08015B6A
.align 2, 0
_08015ADC: .4byte 0x00000101
_08015AE0: .4byte gUnknown_80DB598
_08015AE4:
ldrb r0, [r0, 0x19]
lsls r1, r0, 8
subs r1, r0
lsls r1, 2
adds r1, r6, r1
adds r1, r7
ldrb r0, [r1, 0x4]
adds r0, 0x3
ldrb r1, [r1, 0x5]
mov r3, r9
str r3, [sp]
ldr r2, _08015B00
b _08015B6A
.align 2, 0
_08015B00: .4byte gUnknown_80DB5A4
_08015B04:
cmp r4, 0x20
bne _08015B34
add r0, sp, 0x4
ldr r1, _08015B30
adds r2, r5, 0
bl sub_800D158
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, 0x19]
lsls r1, r0, 8
subs r1, r0
lsls r1, 2
adds r1, r6, r1
adds r1, r7
ldrb r0, [r1, 0x4]
adds r0, 0x1
ldrb r1, [r1, 0x5]
mov r2, r9
str r2, [sp]
add r2, sp, 0x4
b _08015B6A
.align 2, 0
_08015B30: .4byte gUnknown_80DB5B0
_08015B34:
cmp r4, 0xFF
ble _08015B7C
ldr r1, _08015B74
movs r0, 0xFF
ands r4, r0
lsls r0, r4, 2
adds r0, r1
ldr r3, [r0]
mov r0, r10
ldr r1, _08015B78
adds r2, r5, 0
bl sub_800D158
mov r3, r8
ldr r0, [r3]
ldrb r0, [r0, 0x19]
lsls r1, r0, 8
subs r1, r0
lsls r1, 2
adds r1, r6, r1
adds r1, r7
ldrb r0, [r1, 0x4]
adds r0, 0x3
ldrb r1, [r1, 0x5]
mov r2, r9
str r2, [sp]
mov r2, r10
_08015B6A:
movs r3, 0
bl xxx_call_draw_string
b _08015B9E
.align 2, 0
_08015B74: .4byte gUnknown_80DB4F4
_08015B78: .4byte gUnknown_80DB5B8
_08015B7C:
mov r3, r8
ldr r0, [r3]
ldrb r0, [r0, 0x19]
lsls r1, r0, 8
subs r1, r0
lsls r1, 2
adds r1, r6, r1
adds r1, r7
ldrb r0, [r1, 0x4]
ldrb r1, [r1, 0x5]
lsls r2, r4, 24
lsrs r2, 24
mov r3, r9
str r3, [sp]
adds r3, r5, 0
bl sub_8012C60
_08015B9E:
adds r6, 0xC
ldr r3, _08015C10
ldr r2, _08015C14
ldr r0, [r2]
ldrb r1, [r0, 0x19]
lsls r0, r1, 8
subs r0, r1
lsls r0, 2
adds r0, r6, r0
adds r1, r3, 0
adds r1, 0x8
adds r0, r1
ldr r4, [r0]
ldr r0, _08015C18
cmp r4, r0
beq _08015BC0
b _08015A4A
_08015BC0:
movs r4, 0xE
str r4, [sp]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0xE0
bl sub_800792C
str r4, [sp]
movs r0, 0
movs r1, 0
movs r2, 0x47
movs r3, 0xE0
bl sub_800792C
str r4, [sp]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x48
bl sub_8007A78
str r4, [sp]
movs r0, 0
movs r1, 0xDF
movs r2, 0
movs r3, 0x48
bl sub_8007A78
movs r0, 0
bl sub_80073E0
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08015C10: .4byte gUnknown_80DB0F8
_08015C14: .4byte gUnknown_203B1FC
_08015C18: .4byte 0x00000109
thumb_func_end sub_8015A08
thumb_func_start sub_8015C1C
sub_8015C1C:
push {r4,r5,lr}
sub sp, 0x54
movs r0, 0x1
bl sub_8008C54
movs r0, 0x1
bl sub_80073B8
ldr r0, _08015C74
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08015C78
movs r4, 0xE
str r4, [sp]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xE0
bl sub_800792C
str r4, [sp]
movs r0, 0x1
movs r1, 0
movs r2, 0x37
movs r3, 0xE0
bl sub_800792C
str r4, [sp]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x38
bl sub_8007A78
str r4, [sp]
movs r0, 0x1
movs r1, 0xDF
movs r2, 0
movs r3, 0x38
bl sub_8007A78
b _08015CB2
.align 2, 0
_08015C74: .4byte gUnknown_203B1FC
_08015C78:
movs r4, 0xE
str r4, [sp]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xB0
bl sub_800792C
str r4, [sp]
movs r0, 0x1
movs r1, 0
movs r2, 0x27
movs r3, 0xB0
bl sub_800792C
str r4, [sp]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x28
bl sub_8007A78
str r4, [sp]
movs r0, 0x1
movs r1, 0xAF
movs r2, 0
movs r3, 0x28
bl sub_8007A78
_08015CB2:
ldr r0, _08015CC8
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x5
bhi _08015D50
lsls r0, 2
ldr r1, _08015CCC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08015CC8: .4byte gUnknown_203B1FC
_08015CCC: .4byte _08015CD0
.align 2, 0
_08015CD0:
.4byte _08015CE8
.4byte _08015D18
.4byte _08015CF8
.4byte _08015D08
.4byte _08015D28
.4byte _08015D40
_08015CE8:
ldr r2, _08015CF4
movs r0, 0
str r0, [sp]
movs r0, 0x8
movs r1, 0x5
b _08015D32
.align 2, 0
_08015CF4: .4byte gUnknown_80DB5C0
_08015CF8:
ldr r2, _08015D04
movs r0, 0
str r0, [sp]
movs r0, 0x8
movs r1, 0x5
b _08015D32
.align 2, 0
_08015D04: .4byte gUnknown_80DB5D4
_08015D08:
ldr r2, _08015D14
movs r0, 0
str r0, [sp]
movs r0, 0x8
movs r1, 0x5
b _08015D32
.align 2, 0
_08015D14: .4byte gUnknown_80DB5F8
_08015D18:
ldr r2, _08015D24
movs r0, 0
str r0, [sp]
movs r0, 0x8
movs r1, 0x5
b _08015D32
.align 2, 0
_08015D24: .4byte gUnknown_80DB61C
_08015D28:
ldr r2, _08015D3C
movs r0, 0
str r0, [sp]
movs r0, 0x36
movs r1, 0x2
_08015D32:
movs r3, 0x1
bl xxx_call_draw_string
b _08015D50
.align 2, 0
_08015D3C: .4byte gUnknown_80DB638
_08015D40:
ldr r2, _08015D64
movs r0, 0
str r0, [sp]
movs r0, 0x30
movs r1, 0x4
movs r3, 0x1
bl xxx_call_draw_string
_08015D50:
ldr r5, _08015D68
ldr r0, [r5]
ldr r1, [r0]
cmp r1, 0x4
beq _08015D6C
cmp r1, 0x4
bcc _08015D88
cmp r1, 0x5
beq _08015D7A
b _08015DFE
.align 2, 0
_08015D64: .4byte gUnknown_80DB638
_08015D68: .4byte gUnknown_203B1FC
_08015D6C:
adds r0, 0xF8
ldr r0, [r0]
movs r1, 0x1
movs r2, 0
bl sub_8015E10
b _08015DFE
_08015D7A:
adds r0, 0xF8
ldr r0, [r0]
movs r1, 0x1
movs r2, 0
bl sub_8015EB4
b _08015DFE
_08015D88:
bl sub_8016028
adds r3, r0, 0
movs r0, 0x4
str r0, [sp]
movs r0, 0x1
movs r1, 0x26
movs r2, 0x21
bl sub_80078A4
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0xF8
ldr r0, [r0]
ldrb r1, [r1, 0x1B]
bl sub_8015FEC
adds r4, r0, 0
bl sub_8016028
cmp r4, r0
ble _08015DC0
ldr r1, _08015DBC
ldr r0, [r5]
b _08015DD0
.align 2, 0
_08015DBC: .4byte gUnknown_80DB654
_08015DC0:
bl sub_8015F44
ldr r2, [r5]
ldrb r1, [r2, 0x1B]
cmp r0, r1
bne _08015DE0
ldr r1, _08015DDC
adds r0, r2, 0
_08015DD0:
adds r0, 0xF8
ldr r2, [r0]
add r0, sp, 0x4
bl sub_800D158
b _08015DEE
.align 2, 0
_08015DDC: .4byte gUnknown_80DB65C
_08015DE0:
ldr r1, _08015E0C
adds r0, r2, 0
adds r0, 0xF8
ldr r2, [r0]
add r0, sp, 0x4
bl sub_800D158
_08015DEE:
movs r0, 0
str r0, [sp]
movs r0, 0x26
movs r1, 0x16
add r2, sp, 0x4
movs r3, 0x1
bl xxx_call_draw_string
_08015DFE:
movs r0, 0x1
bl sub_80073E0
add sp, 0x54
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08015E0C: .4byte gUnknown_80DB664
thumb_func_end sub_8015C1C
thumb_func_start sub_8015E10
sub_8015E10:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
mov r8, r0
adds r7, r1, 0
lsls r2, 16
asrs r6, r2, 16
ldr r5, _08015EB0
movs r4, 0x35
_08015E24:
movs r0, 0
ldrsh r1, [r5, r0]
movs r0, 0x2
ldrsh r2, [r5, r0]
adds r0, r6, 0
adds r0, 0xB
adds r2, r0
movs r0, 0x5
str r0, [sp]
adds r0, r7, 0
movs r3, 0xB
bl sub_80078A4
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08015E24
movs r4, 0
mov r1, r8
ldrb r0, [r1]
cmp r0, 0
beq _08015EA4
mov r5, r8
_08015E52:
movs r3, 0x7
cmp r4, 0x4
ble _08015E7E
movs r3, 0x6
cmp r4, 0xC
ble _08015E7E
movs r3, 0x7
cmp r4, 0x11
ble _08015E7E
cmp r4, 0x16
ble _08015E7E
movs r3, 0x6
cmp r4, 0x1E
ble _08015E7E
movs r3, 0x7
cmp r4, 0x23
ble _08015E7E
cmp r4, 0x28
ble _08015E7E
cmp r4, 0x30
bgt _08015E7E
movs r3, 0x6
_08015E7E:
ldr r0, _08015EB0
lsls r1, r4, 2
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
movs r2, 0x2
ldrsh r1, [r1, r2]
adds r1, r6
ldrb r2, [r5]
str r7, [sp]
bl sub_8012C60
adds r5, 0x1
adds r4, 0x1
cmp r4, 0x35
bgt _08015EA4
ldrb r0, [r5]
cmp r0, 0
bne _08015E52
_08015EA4:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08015EB0: .4byte gUnknown_80DAFC0
thumb_func_end sub_8015E10
thumb_func_start sub_8015EB4
sub_8015EB4:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
mov r8, r0
adds r7, r1, 0
lsls r2, 16
asrs r6, r2, 16
ldr r5, _08015F40
movs r4, 0x17
_08015EC8:
movs r0, 0
ldrsh r1, [r5, r0]
movs r0, 0x2
ldrsh r2, [r5, r0]
adds r0, r6, 0
adds r0, 0xB
adds r2, r0
movs r0, 0x5
str r0, [sp]
adds r0, r7, 0
movs r3, 0xC
bl sub_80078A4
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08015EC8
movs r4, 0
mov r1, r8
ldrb r0, [r1]
cmp r0, 0
beq _08015F34
mov r5, r8
_08015EF6:
movs r3, 0x7
cmp r4, 0x3
ble _08015F0E
movs r3, 0x6
cmp r4, 0x7
ble _08015F0E
movs r3, 0x7
cmp r4, 0xF
ble _08015F0E
cmp r4, 0x13
bgt _08015F0E
movs r3, 0x6
_08015F0E:
ldr r0, _08015F40
lsls r1, r4, 2
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
movs r2, 0x2
ldrsh r1, [r1, r2]
adds r1, r6
ldrb r2, [r5]
str r7, [sp]
bl sub_8012C60
adds r5, 0x1
adds r4, 0x1
cmp r4, 0x17
bgt _08015F34
ldrb r0, [r5]
cmp r0, 0
bne _08015EF6
_08015F34:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08015F40: .4byte gUnknown_80DB098
thumb_func_end sub_8015EB4
thumb_func_start sub_8015F44
sub_8015F44:
push {r4,lr}
movs r2, 0
ldr r0, _08015F78
ldr r0, [r0]
ldrb r4, [r0, 0x1B]
cmp r2, r4
bge _08015F7C
adds r3, r0, 0
adds r3, 0xF8
ldr r0, [r3]
ldrb r0, [r0]
cmp r0, 0
beq _08015F7C
movs r2, 0x1
movs r1, 0x1
_08015F62:
cmp r1, r4
bge _08015F7C
ldr r0, [r3]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08015F7C
adds r2, r1, 0x1
adds r1, r2, 0
b _08015F62
.align 2, 0
_08015F78: .4byte gUnknown_203B1FC
_08015F7C:
adds r0, r2, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8015F44
thumb_func_start sub_8015F84
sub_8015F84:
push {r4-r7,lr}
movs r6, 0
movs r5, 0
ldr r3, _08015FBC
ldr r0, [r3]
ldrb r0, [r0, 0x1B]
cmp r5, r0
bge _08015FE4
adds r7, r3, 0
_08015F96:
ldr r1, [r7]
lsls r4, r5, 1
adds r0, r1, 0
adds r0, 0x1E
adds r0, r4
strh r6, [r0]
adds r0, r1, 0
adds r0, 0xF8
ldr r0, [r0]
adds r2, r0, r5
ldrb r0, [r2]
cmp r0, 0
bne _08015FC0
adds r0, r1, 0
adds r0, 0x8A
adds r0, r4
movs r1, 0x8
strh r1, [r0]
b _08015FE4
.align 2, 0
_08015FBC: .4byte gUnknown_203B1FC
_08015FC0:
ldrb r0, [r2]
bl sub_8092288
bl sub_8008584
ldr r3, [r7]
adds r1, r3, 0
adds r1, 0x8A
adds r1, r4
ldrh r2, [r0, 0x6]
strh r2, [r1]
movs r1, 0x6
ldrsh r0, [r0, r1]
adds r6, r0
adds r5, 0x1
ldrb r3, [r3, 0x1B]
cmp r5, r3
blt _08015F96
_08015FE4:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8015F84
thumb_func_start sub_8015FEC
sub_8015FEC:
push {r4-r7,lr}
adds r2, r0, 0
adds r5, r1, 0
movs r7, 0
movs r6, 0
cmp r7, r5
bge _08016020
ldrb r0, [r2]
cmp r0, 0
beq _08016020
adds r4, r2, 0
_08016002:
ldrb r0, [r4]
bl sub_8092288
bl sub_8008584
movs r1, 0x6
ldrsh r0, [r0, r1]
adds r7, r0
adds r4, 0x1
adds r6, 0x1
cmp r6, r5
bge _08016020
ldrb r0, [r4]
cmp r0, 0
bne _08016002
_08016020:
adds r0, r7, 0
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8015FEC
thumb_func_start sub_8016028
sub_8016028:
movs r0, 0x3C
bx lr
thumb_func_end sub_8016028
thumb_func_start sub_801602C
sub_801602C:
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _08016064
movs r0, 0x50
movs r1, 0x8
bl MemoryAlloc
adds r1, r0, 0
str r1, [r4]
str r6, [r1]
str r5, [r1, 0x8]
cmp r6, 0x1
beq _0801606E
cmp r6, 0x1
bcc _08016068
cmp r6, 0x2
beq _0801606E
cmp r6, 0x3
beq _0801606E
b _08016070
.align 2, 0
_08016064: .4byte gUnknown_203B200
_08016068:
movs r0, 0
str r0, [r1, 0x4]
b _08016070
_0801606E:
str r6, [r1, 0x4]
_08016070:
movs r0, 0
bl sub_80160F4
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801602C
thumb_func_start sub_8016080
sub_8016080:
push {lr}
ldr r0, _08016098
ldr r0, [r0]
ldr r0, [r0, 0xC]
cmp r0, 0x4
bhi _080160D0
lsls r0, 2
ldr r1, _0801609C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08016098: .4byte gUnknown_203B200
_0801609C: .4byte _080160A0
.align 2, 0
_080160A0:
.4byte _080160B4
.4byte _080160BA
.4byte _080160C0
.4byte _080160C6
.4byte _080160CC
_080160B4:
bl sub_80161F8
b _080160D0
_080160BA:
bl sub_8016248
b _080160D0
_080160C0:
bl sub_8016280
b _080160D0
_080160C6:
bl sub_801629C
b _080160D0
_080160CC:
movs r0, 0x3
b _080160D2
_080160D0:
movs r0, 0
_080160D2:
pop {r1}
bx r1
thumb_func_end sub_8016080
thumb_func_start sub_80160D8
sub_80160D8:
push {r4,lr}
ldr r4, _080160F0
ldr r0, [r4]
cmp r0, 0
beq _080160EA
bl MemoryFree
movs r0, 0
str r0, [r4]
_080160EA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080160F0: .4byte gUnknown_203B200
thumb_func_end sub_80160D8
thumb_func_start sub_80160F4
sub_80160F4:
push {lr}
ldr r1, _08016108
ldr r1, [r1]
str r0, [r1, 0xC]
bl nullsub_36
bl sub_8016110
pop {r0}
bx r0
.align 2, 0
_08016108: .4byte gUnknown_203B200
thumb_func_end sub_80160F4
thumb_func_start nullsub_36
nullsub_36:
bx lr
thumb_func_end nullsub_36
thumb_func_start sub_8016110
sub_8016110:
push {r4,lr}
sub sp, 0x14
ldr r4, _08016128
ldr r1, [r4]
ldr r0, [r1, 0xC]
cmp r0, 0x1
beq _08016140
cmp r0, 0x1
bgt _0801612C
cmp r0, 0
beq _08016136
b _080161B8
.align 2, 0
_08016128: .4byte gUnknown_203B200
_0801612C:
cmp r0, 0x2
beq _08016194
cmp r0, 0x3
beq _080161AC
b _080161B8
_08016136:
ldr r0, [r1, 0x4]
ldr r1, [r1, 0x8]
bl sub_80151C0
b _080161B8
_08016140:
bl sub_80161C8
ldr r1, [r4]
ldr r0, [r1, 0x4]
cmp r0, 0x1
bne _0801615C
ldr r0, _08016158
ldr r1, [r1, 0x8]
movs r2, 0xA
bl sub_80922B4
b _08016166
.align 2, 0
_08016158: .4byte gUnknown_202DF98
_0801615C:
ldr r0, _08016188
ldr r1, [r1, 0x8]
movs r2, 0xA
bl sub_80922B4
_08016166:
ldr r0, _0801618C
ldr r1, _08016190
ldr r3, [r1]
adds r3, 0x10
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r1, 0x20
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _080161B8
.align 2, 0
_08016188: .4byte gUnknown_202DF98
_0801618C: .4byte gUnknown_80DB688
_08016190: .4byte gUnknown_203B200
_08016194:
ldr r0, _080161A4
ldr r3, _080161A8
movs r1, 0
movs r2, 0
bl sub_80141B4
b _080161B8
.align 2, 0
_080161A4: .4byte gUnknown_80DB6A4
_080161A8: .4byte 0x00000121
_080161AC:
ldr r0, _080161C0
ldr r3, _080161C4
movs r1, 0
movs r2, 0
bl sub_80141B4
_080161B8:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080161C0: .4byte gUnknown_80DB6BC
_080161C4: .4byte 0x00000121
thumb_func_end sub_8016110
thumb_func_start sub_80161C8
sub_80161C8:
ldr r0, _080161EC
ldr r1, [r0]
ldr r0, _080161F0
ldr r0, [r0]
str r0, [r1, 0x10]
movs r0, 0x2
str r0, [r1, 0x14]
ldr r0, _080161F4
ldr r0, [r0]
str r0, [r1, 0x18]
movs r0, 0x3
str r0, [r1, 0x1C]
movs r0, 0
str r0, [r1, 0x20]
movs r0, 0x1
str r0, [r1, 0x24]
bx lr
.align 2, 0
_080161EC: .4byte gUnknown_203B200
_080161F0: .4byte gUnknown_80D4920
_080161F4: .4byte gUnknown_80D4928
thumb_func_end sub_80161C8
thumb_func_start sub_80161F8
sub_80161F8:
push {r4,lr}
bl sub_80154F0
cmp r0, 0x3
bne _08016242
bl sub_80155F0
bl sub_80162B8
lsls r0, 24
cmp r0, 0
beq _08016218
movs r0, 0x3
bl sub_80160F4
b _08016242
_08016218:
ldr r0, _08016238
ldr r0, [r0]
ldr r0, [r0, 0x8]
movs r1, 0xA
bl sub_8015FEC
adds r4, r0, 0
bl sub_8016028
cmp r4, r0
ble _0801623C
movs r0, 0x2
bl sub_80160F4
b _08016242
.align 2, 0
_08016238: .4byte gUnknown_203B200
_0801623C:
movs r0, 0x1
bl sub_80160F4
_08016242:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80161F8
thumb_func_start sub_8016248
sub_8016248:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801627A
ldr r0, [sp]
cmp r0, 0x2
beq _0801626C
cmp r0, 0x2
bgt _08016266
cmp r0, 0x1
beq _08016274
b _0801627A
_08016266:
cmp r0, 0x3
beq _08016274
b _0801627A
_0801626C:
movs r0, 0x4
bl sub_80160F4
b _0801627A
_08016274:
movs r0, 0
bl sub_80160F4
_0801627A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8016248
thumb_func_start sub_8016280
sub_8016280:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08016294
movs r0, 0
bl sub_80160F4
_08016294:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8016280
thumb_func_start sub_801629C
sub_801629C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080162B0
movs r0, 0
bl sub_80160F4
_080162B0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_801629C
thumb_func_start sub_80162B8
sub_80162B8:
push {lr}
movs r3, 0xA
movs r1, 0
ldr r0, _080162D4
ldr r0, [r0]
ldr r2, [r0, 0x8]
_080162C4:
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
beq _080162DE
cmp r0, 0x20
beq _080162D8
movs r0, 0
b _080162E0
.align 2, 0
_080162D4: .4byte gUnknown_203B200
_080162D8:
adds r1, 0x1
cmp r1, r3
blt _080162C4
_080162DE:
movs r0, 0x1
_080162E0:
pop {r1}
bx r1
thumb_func_end sub_80162B8
thumb_func_start sub_80162E4
sub_80162E4:
push {r4-r6,lr}
adds r4, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _0801633C
movs r0, 0x84
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r6, 0
str r6, [r0, 0x10]
str r4, [r0]
ldr r0, _08016340
movs r1, 0x35
bl sub_808D8E0
ldr r4, _08016344
adds r0, r4, 0
movs r1, 0x35
bl sub_808D8E0
movs r0, 0x35
bl sub_808D994
adds r1, r0, 0
subs r4, 0x50
adds r0, r4, 0
bl strcpy
ldr r5, [r5]
ldr r0, [r5]
cmp r0, 0x1
bne _08016348
adds r0, r5, 0
adds r0, 0xA4
str r6, [r0]
b _08016352
.align 2, 0
_0801633C: .4byte gUnknown_203B204
_08016340: .4byte gUnknown_202E5D8
_08016344: .4byte gUnknown_202E1C8
_08016348:
adds r1, r5, 0
adds r1, 0xA4
adds r0, r5, 0
adds r0, 0x94
str r0, [r1]
_08016352:
movs r0, 0x35
bl sub_808DDD0
ldr r2, _0801639C
ldr r3, [r2]
adds r1, r3, 0
adds r1, 0x94
str r0, [r1]
adds r1, 0x4
ldr r0, [r0, 0x4]
str r0, [r1]
adds r0, r3, 0
adds r0, 0xA0
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xA1
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xA2
strb r1, [r0]
ldr r1, [r2]
adds r2, r1, 0
adds r2, 0x9C
movs r0, 0x2
strh r0, [r2]
adds r1, 0x9E
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_8016444
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801639C: .4byte gUnknown_203B204
thumb_func_end sub_80162E4
thumb_func_start sub_80163A0
sub_80163A0:
push {lr}
ldr r0, _080163B8
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0xC
bhi _08016410
lsls r0, 2
ldr r1, _080163BC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080163B8: .4byte gUnknown_203B204
_080163BC: .4byte _080163C0
.align 2, 0
_080163C0:
.4byte _08016410
.4byte _080163F4
.4byte _080163FA
.4byte _08016410
.4byte _08016410
.4byte _08016410
.4byte _0801640C
.4byte _08016410
.4byte _08016400
.4byte _08016410
.4byte _08016410
.4byte _08016406
.4byte _08016410
_080163F4:
bl sub_8016B24
b _08016414
_080163FA:
bl sub_80169BC
b _08016414
_08016400:
bl sub_8016A18
b _08016414
_08016406:
bl sub_8016A8C
b _08016414
_0801640C:
movs r0, 0x3
b _08016416
_08016410:
bl sub_8016B00
_08016414:
movs r0, 0
_08016416:
pop {r1}
bx r1
thumb_func_end sub_80163A0
thumb_func_start sub_801641C
sub_801641C:
push {r4,lr}
ldr r4, _08016440
ldr r0, [r4]
cmp r0, 0
beq _08016438
adds r0, 0x94
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08016438:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08016440: .4byte gUnknown_203B204
thumb_func_end sub_801641C
thumb_func_start sub_8016444
sub_8016444:
push {lr}
ldr r1, _08016458
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_801645C
bl sub_801653C
pop {r0}
bx r0
.align 2, 0
_08016458: .4byte gUnknown_203B204
thumb_func_end sub_8016444
thumb_func_start sub_801645C
sub_801645C:
push {r4-r7,lr}
ldr r4, _0801647C
ldr r0, [r4]
adds r0, 0xA8
bl sub_8006518
ldr r0, [r4]
ldr r1, [r0, 0x4]
cmp r1, 0x8
beq _080164AC
cmp r1, 0x8
bgt _08016480
cmp r1, 0x2
beq _08016486
b _080164F8
.align 2, 0
_0801647C: .4byte gUnknown_203B204
_08016480:
cmp r1, 0xB
beq _080164AC
b _080164F8
_08016486:
adds r0, 0xA8
movs r1, 0x80
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC0
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xD8
strb r1, [r0]
ldr r1, [r4]
adds r1, 0xF0
ldr r0, _080164A8
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
b _080164D8
.align 2, 0
_080164A8: .4byte gUnknown_80DB6F4
_080164AC:
ldr r4, _080164EC
ldr r0, [r4]
adds r0, 0xA8
movs r1, 0x80
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC0
strb r1, [r0]
ldr r1, [r4]
adds r1, 0xF0
ldr r0, _080164F0
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r1, [r4]
adds r1, 0xD8
ldr r0, _080164F4
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
_080164D8:
bl sub_8004914
ldr r0, [r4]
adds r0, 0xA8
movs r1, 0x1
movs r2, 0
bl sub_800641C
b _0801652E
.align 2, 0
_080164EC: .4byte gUnknown_203B204
_080164F0: .4byte gUnknown_80DB6F4
_080164F4: .4byte gUnknown_80DB70C
_080164F8:
ldr r6, _08016534
mov r12, r6
ldr r4, _08016538
movs r3, 0
movs r2, 0x3
_08016502:
mov r7, r12
ldr r1, [r7]
adds r1, r3
adds r1, 0xA8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08016502
bl sub_8004914
ldr r0, _08016534
ldr r0, [r0]
adds r0, 0xA8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0801652E:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08016534: .4byte gUnknown_203B204
_08016538: .4byte gUnknown_80DB6DC
thumb_func_end sub_801645C
thumb_func_start sub_801653C
sub_801653C:
push {r4,r5,lr}
sub sp, 0x14
ldr r1, _08016558
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r2, r1, 0
cmp r0, 0xC
bls _0801654E
b _080168EC
_0801654E:
lsls r0, 2
ldr r1, _0801655C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08016558: .4byte gUnknown_203B204
_0801655C: .4byte _08016560
.align 2, 0
_08016560:
.4byte _08016594
.4byte _080165B4
.4byte _080168B2
.4byte _08016650
.4byte _08016668
.4byte _080166C4
.4byte _080168EC
.4byte _080166DC
.4byte _0801674C
.4byte _080167A8
.4byte _080167CC
.4byte _0801685C
.4byte _080168C4
_08016594:
ldr r2, [r2]
movs r0, 0x1
str r0, [r2, 0x8]
ldr r3, _080165B0
ldr r1, [r2]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r0, r3
ldr r0, [r0]
adds r2, 0xA4
ldr r2, [r2]
b _08016844
.align 2, 0
_080165B0: .4byte gUnknown_80D49E0
_080165B4:
bl sub_8016900
ldr r0, _080165FC
ldr r0, [r0]
mov r12, r0
movs r0, 0x2
mov r1, r12
str r0, [r1, 0x8]
ldr r0, _08016600
ldr r0, [r0]
movs r3, 0x99
lsls r3, 2
adds r0, r3
ldr r4, [r0]
cmp r4, 0
bne _08016608
ldr r2, _08016604
ldr r1, [r1]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x4
adds r0, r2
ldr r0, [r0]
mov r5, r12
ldr r2, [r5, 0x10]
mov r3, r12
adds r3, 0x14
mov r1, r12
adds r1, 0x54
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
b _08016632
.align 2, 0
_080165FC: .4byte gUnknown_203B204
_08016600: .4byte gUnknown_203B460
_08016604: .4byte gUnknown_80D49E0
_08016608:
ldr r0, _08016648
str r4, [r0]
ldr r2, _0801664C
mov r0, r12
ldr r1, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x8
adds r0, r2
ldr r0, [r0]
mov r1, r12
ldr r2, [r1, 0x10]
mov r3, r12
adds r3, 0x14
adds r1, 0x54
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
_08016632:
mov r1, r12
adds r1, 0xA4
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _080168EC
.align 2, 0
_08016648: .4byte gUnknown_202DE30
_0801664C: .4byte gUnknown_80D49E0
_08016650:
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r2, _08016664
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x38
b _0801683C
.align 2, 0
_08016664: .4byte gUnknown_80D49E0
_08016668:
ldr r3, [r2]
movs r0, 0x6
str r0, [r3, 0x8]
ldr r0, _08016698
ldr r0, [r0]
movs r5, 0x99
lsls r5, 2
adds r0, r5
ldr r1, [r0]
cmp r1, 0
bne _080166A0
ldr r2, _0801669C
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x10
adds r0, r2
ldr r0, [r0]
adds r1, r3, 0
adds r1, 0xA4
ldr r2, [r1]
b _08016844
.align 2, 0
_08016698: .4byte gUnknown_203B460
_0801669C: .4byte gUnknown_80D49E0
_080166A0:
ldr r0, _080166BC
str r1, [r0]
ldr r2, _080166C0
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x14
adds r0, r2
ldr r0, [r0]
adds r1, r3, 0
adds r1, 0xA4
ldr r2, [r1]
b _08016844
.align 2, 0
_080166BC: .4byte gUnknown_202DE30
_080166C0: .4byte gUnknown_80D49E0
_080166C4:
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r2, _080166D8
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0xC
b _0801683C
.align 2, 0
_080166D8: .4byte gUnknown_80D49E0
_080166DC:
ldr r0, _08016700
ldr r1, [r0]
movs r3, 0x98
lsls r3, 2
adds r0, r1, r3
ldr r0, [r0]
cmp r0, 0
bne _08016708
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r2, _08016704
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x1C
b _0801683C
.align 2, 0
_08016700: .4byte gUnknown_203B460
_08016704: .4byte gUnknown_80D49E0
_08016708:
movs r5, 0x99
lsls r5, 2
adds r0, r1, r5
ldr r1, [r0]
ldr r0, _0801672C
cmp r1, r0
ble _08016734
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r2, _08016730
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x20
b _0801683C
.align 2, 0
_0801672C: .4byte 0x0098967e
_08016730: .4byte gUnknown_80D49E0
_08016734:
ldr r3, [r2]
movs r0, 0x8
str r0, [r3, 0x8]
ldr r2, _08016748
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x18
b _0801683C
.align 2, 0
_08016748: .4byte gUnknown_80D49E0
_0801674C:
ldr r4, [r2]
ldr r0, _080167A0
ldr r3, [r0]
movs r1, 0x99
lsls r1, 2
adds r0, r3, r1
ldr r1, [r0]
ldr r0, _080167A4
subs r0, r1
str r0, [r4, 0x70]
movs r5, 0x98
lsls r5, 2
adds r1, r3, r5
ldr r1, [r1]
cmp r0, r1
ble _0801676E
str r1, [r4, 0x70]
_0801676E:
ldr r2, [r2]
ldr r0, [r2, 0x70]
str r0, [r2, 0x68]
movs r0, 0x1
str r0, [r2, 0x6C]
movs r0, 0x5
str r0, [r2, 0x74]
movs r0, 0x2
str r0, [r2, 0x78]
adds r0, r2, 0
adds r0, 0xD8
str r0, [r2, 0x7C]
adds r1, r2, 0
adds r1, 0x80
movs r0, 0x50
str r0, [r1]
adds r1, 0x4
movs r0, 0x12
str r0, [r1]
adds r0, r2, 0
adds r0, 0x64
bl sub_8013AA0
movs r0, 0x1
b _080168AE
.align 2, 0
_080167A0: .4byte gUnknown_203B460
_080167A4: .4byte 0x0098967f
_080167A8:
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r1, _080167C4
ldr r0, [r3, 0xC]
str r0, [r1]
ldr r2, _080167C8
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x24
b _0801683C
.align 2, 0
_080167C4: .4byte gUnknown_202DE30
_080167C8: .4byte gUnknown_80D49E0
_080167CC:
ldr r0, _080167F4
ldr r3, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r3, r1
ldr r1, [r0]
ldr r0, _080167F8
cmp r1, r0
ble _08016800
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r2, _080167FC
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x30
b _0801683C
.align 2, 0
_080167F4: .4byte gUnknown_203B460
_080167F8: .4byte 0x0001869e
_080167FC: .4byte gUnknown_80D49E0
_08016800:
movs r5, 0x99
lsls r5, 2
adds r4, r3, r5
ldr r0, [r4]
cmp r0, 0
bne _08016824
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r2, _08016820
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x2C
b _0801683C
.align 2, 0
_08016820: .4byte gUnknown_80D49E0
_08016824:
ldr r3, [r2]
movs r0, 0xB
str r0, [r3, 0x8]
ldr r1, _08016850
ldr r0, [r4]
str r0, [r1]
ldr r2, _08016854
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x28
_0801683C:
adds r0, r2
ldr r0, [r0]
adds r3, 0xA4
ldr r2, [r3]
_08016844:
ldr r3, _08016858
movs r1, 0
bl sub_80141B4
b _080168EC
.align 2, 0
_08016850: .4byte gUnknown_202DE30
_08016854: .4byte gUnknown_80D49E0
_08016858: .4byte 0x0000010d
_0801685C:
ldr r4, [r2]
ldr r0, _080168BC
ldr r3, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r3, r1
ldr r1, [r0]
ldr r0, _080168C0
subs r0, r1
str r0, [r4, 0x70]
movs r5, 0x99
lsls r5, 2
adds r1, r3, r5
ldr r1, [r1]
cmp r0, r1
ble _0801687E
str r1, [r4, 0x70]
_0801687E:
ldr r2, [r2]
ldr r0, [r2, 0x70]
str r0, [r2, 0x68]
movs r0, 0x1
str r0, [r2, 0x6C]
movs r0, 0x5
str r0, [r2, 0x74]
movs r0, 0x2
str r0, [r2, 0x78]
adds r0, r2, 0
adds r0, 0xD8
str r0, [r2, 0x7C]
adds r1, r2, 0
adds r1, 0x80
movs r0, 0x50
str r0, [r1]
adds r1, 0x4
movs r0, 0x12
str r0, [r1]
adds r0, r2, 0
adds r0, 0x64
bl sub_8013AA0
movs r0, 0
_080168AE:
bl sub_8016B48
_080168B2:
movs r0, 0x3
bl sub_8016BB8
b _080168EC
.align 2, 0
_080168BC: .4byte gUnknown_203B460
_080168C0: .4byte 0x0001869f
_080168C4:
ldr r3, [r2]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r1, _080168F4
ldr r0, [r3, 0xC]
str r0, [r1]
ldr r2, _080168F8
ldr r1, [r3]
lsls r0, r1, 4
subs r0, r1
lsls r0, 2
adds r2, 0x34
adds r0, r2
ldr r0, [r0]
adds r3, 0xA4
ldr r2, [r3]
ldr r3, _080168FC
movs r1, 0
bl sub_80141B4
_080168EC:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080168F4: .4byte gUnknown_202DE30
_080168F8: .4byte gUnknown_80D49E0
_080168FC: .4byte 0x0000010d
thumb_func_end sub_801653C
thumb_func_start sub_8016900
sub_8016900:
push {r4-r7,lr}
ldr r4, _08016980
ldr r0, [r4]
adds r0, 0x54
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08016984
ldr r0, [r0]
str r0, [r3, 0x14]
movs r0, 0x2
str r0, [r3, 0x18]
movs r1, 0x1
ldr r0, _08016988
ldr r0, [r0]
str r0, [r3, 0x1C]
movs r0, 0x3
str r0, [r3, 0x20]
ldr r0, _0801698C
ldr r0, [r0]
str r0, [r3, 0x24]
movs r0, 0x4
str r0, [r3, 0x28]
ldr r0, _08016990
ldr r0, [r0]
str r0, [r3, 0x2C]
str r1, [r3, 0x30]
movs r6, 0x4
str r2, [r3, 0x34]
str r1, [r3, 0x38]
movs r5, 0
mov r12, r3
adds r3, 0x18
mov r2, r12
adds r2, 0x54
_0801694C:
ldrh r0, [r2]
cmp r0, 0
bne _0801695C
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x10]
cmp r1, r0
beq _080169B6
_0801695C:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _0801694C
movs r5, 0
cmp r5, r6
bge _080169B6
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x54
ldrh r0, [r0]
cmp r0, 0
bne _08016994
ldr r0, [r1, 0x18]
str r0, [r1, 0x10]
b _080169B6
.align 2, 0
_08016980: .4byte gUnknown_203B204
_08016984: .4byte gUnknown_80D4958
_08016988: .4byte gUnknown_80D4964
_0801698C: .4byte gUnknown_80D4970
_08016990: .4byte gUnknown_80D4934
_08016994:
adds r5, 0x1
cmp r5, r6
bge _080169B6
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x54
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08016994
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x18
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x10]
_080169B6:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8016900
thumb_func_start sub_80169BC
sub_80169BC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08016A10
ldr r0, _080169E4
ldr r1, [r0]
ldr r0, [sp]
str r0, [r1, 0x10]
ldr r0, [sp]
cmp r0, 0x2
beq _080169F2
cmp r0, 0x2
bgt _080169E8
cmp r0, 0x1
beq _08016A0A
b _08016A10
.align 2, 0
_080169E4: .4byte gUnknown_203B204
_080169E8:
cmp r0, 0x3
beq _080169FA
cmp r0, 0x4
beq _08016A02
b _08016A10
_080169F2:
movs r0, 0x7
bl sub_8016444
b _08016A10
_080169FA:
movs r0, 0xA
bl sub_8016444
b _08016A10
_08016A02:
movs r0, 0x3
bl sub_8016444
b _08016A10
_08016A0A:
movs r0, 0x4
bl sub_8016444
_08016A10:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80169BC
thumb_func_start sub_8016A18
sub_8016A18:
push {r4,lr}
ldr r4, _08016A38
ldr r0, [r4]
adds r0, 0x64
bl sub_8013BBC
cmp r0, 0x1
beq _08016A3C
cmp r0, 0x1
bcc _08016A86
cmp r0, 0x2
beq _08016A80
cmp r0, 0x3
beq _08016A44
b _08016A86
.align 2, 0
_08016A38: .4byte gUnknown_203B204
_08016A3C:
movs r0, 0x1
bl sub_8016B48
b _08016A86
_08016A44:
ldr r3, [r4]
ldr r2, [r3, 0x64]
str r2, [r3, 0xC]
ldr r0, _08016A7C
ldr r0, [r0]
mov r12, r0
movs r1, 0x99
lsls r1, 2
add r1, r12
ldr r0, [r1]
adds r0, r2
str r0, [r1]
movs r2, 0x98
lsls r2, 2
add r2, r12
ldr r0, [r2]
ldr r1, [r3, 0xC]
subs r0, r1
str r0, [r2]
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
movs r0, 0x9
bl sub_8016444
b _08016A86
.align 2, 0
_08016A7C: .4byte gUnknown_203B460
_08016A80:
movs r0, 0x5
bl sub_8016444
_08016A86:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8016A18
thumb_func_start sub_8016A8C
sub_8016A8C:
push {r4,lr}
ldr r4, _08016AAC
ldr r0, [r4]
adds r0, 0x64
bl sub_8013BBC
cmp r0, 0x1
beq _08016AB0
cmp r0, 0x1
bcc _08016AFA
cmp r0, 0x2
beq _08016AF4
cmp r0, 0x3
beq _08016AB8
b _08016AFA
.align 2, 0
_08016AAC: .4byte gUnknown_203B204
_08016AB0:
movs r0, 0
bl sub_8016B48
b _08016AFA
_08016AB8:
ldr r3, [r4]
ldr r2, [r3, 0x64]
str r2, [r3, 0xC]
ldr r0, _08016AF0
ldr r0, [r0]
mov r12, r0
movs r1, 0x98
lsls r1, 2
add r1, r12
ldr r0, [r1]
adds r0, r2
str r0, [r1]
movs r2, 0x99
lsls r2, 2
add r2, r12
ldr r0, [r2]
ldr r1, [r3, 0xC]
subs r0, r1
str r0, [r2]
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
movs r0, 0xC
bl sub_8016444
b _08016AFA
.align 2, 0
_08016AF0: .4byte gUnknown_203B460
_08016AF4:
movs r0, 0x5
bl sub_8016444
_08016AFA:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8016A8C
thumb_func_start sub_8016B00
sub_8016B00:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08016B18
ldr r0, _08016B20
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_8016444
_08016B18:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08016B20: .4byte gUnknown_203B204
thumb_func_end sub_8016B00
thumb_func_start sub_8016B24
sub_8016B24:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0x4
bne _08016B3C
ldr r0, _08016B44
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_8016444
_08016B3C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08016B44: .4byte gUnknown_203B204
thumb_func_end sub_8016B24
thumb_func_start sub_8016B48
sub_8016B48:
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
ldr r4, _08016B7C
ldr r0, [r4]
ldr r0, [r0, 0x78]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x78]
bl sub_80073B8
cmp r5, 0
beq _08016B84
ldr r0, _08016B80
ldr r2, [r0]
ldr r0, [r4]
ldr r3, [r0, 0x78]
movs r0, 0
str r0, [sp]
movs r0, 0xC
movs r1, 0
bl xxx_call_draw_string
b _08016B96
.align 2, 0
_08016B7C: .4byte gUnknown_203B204
_08016B80: .4byte gUnknown_80D49CC
_08016B84:
ldr r0, _08016BB0
ldr r2, [r0]
ldr r0, [r4]
ldr r3, [r0, 0x78]
str r5, [sp]
movs r0, 0xC
movs r1, 0
bl xxx_call_draw_string
_08016B96:
ldr r4, _08016BB4
ldr r0, [r4]
adds r0, 0x64
bl sub_8013C68
ldr r0, [r4]
ldr r0, [r0, 0x78]
bl sub_80073E0
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08016BB0: .4byte gUnknown_80D49DC
_08016BB4: .4byte gUnknown_203B204
thumb_func_end sub_8016B48
thumb_func_start sub_8016BB8
sub_8016BB8:
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x8
adds r4, r0, 0
bl sub_8008C54
adds r0, r4, 0
bl sub_80073B8
ldr r2, _08016C34
movs r0, 0
mov r8, r0
str r0, [sp]
movs r0, 0x10
movs r1, 0x4
adds r3, r4, 0
bl xxx_call_draw_string
ldr r6, _08016C38
ldr r0, [r6]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r2, [r0]
movs r5, 0x5
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x60
movs r1, 0x4
movs r3, 0x5
bl sub_8012BC4
ldr r2, _08016C3C
mov r0, r8
str r0, [sp]
movs r0, 0x70
movs r1, 0x4
adds r3, r4, 0
bl xxx_call_draw_string
ldr r0, [r6]
movs r1, 0x99
lsls r1, 2
adds r0, r1
ldr r2, [r0]
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0xC8
movs r1, 0x4
movs r3, 0x7
bl sub_8012BC4
adds r0, r4, 0
bl sub_80073E0
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08016C34: .4byte gUnknown_80DB724
_08016C38: .4byte gUnknown_203B460
_08016C3C: .4byte gUnknown_80DB72C
thumb_func_end sub_8016BB8
thumb_func_start sub_8016C40
sub_8016C40:
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
bl sub_8008C54
adds r0, r4, 0
bl sub_80073B8
ldr r2, _08016C8C
movs r0, 0
str r0, [sp]
movs r0, 0x6
movs r1, 0
adds r3, r4, 0
bl xxx_call_draw_string
ldr r0, _08016C90
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r2, [r0]
movs r0, 0x5
str r0, [sp]
str r4, [sp, 0x4]
movs r0, 0x2A
movs r1, 0xC
movs r3, 0x5
bl sub_8012BC4
adds r0, r4, 0
bl sub_80073E0
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08016C8C: .4byte gUnknown_80DB738
_08016C90: .4byte gUnknown_203B460
thumb_func_end sub_8016C40
thumb_func_start sub_8016C94
sub_8016C94:
push {r4-r6,lr}
adds r4, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08016CF0
movs r0, 0xA6
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r6, 0
str r6, [r0, 0x18]
str r6, [r0, 0x1C]
str r6, [r0, 0x20]
str r4, [r0]
ldr r0, _08016CF4
movs r1, 0x73
bl sub_808D8E0
ldr r4, _08016CF8
adds r0, r4, 0
movs r1, 0x73
bl sub_808D8E0
movs r0, 0x73
bl sub_808D994
adds r1, r0, 0
subs r4, 0x50
adds r0, r4, 0
bl strcpy
ldr r5, [r5]
ldr r0, [r5]
cmp r0, 0x1
bne _08016CFC
adds r0, r5, 0
adds r0, 0xE8
str r6, [r0]
b _08016D06
.align 2, 0
_08016CF0: .4byte gUnknown_203B208
_08016CF4: .4byte gUnknown_202E5D8
_08016CF8: .4byte gUnknown_202E1C8
_08016CFC:
adds r1, r5, 0
adds r1, 0xE8
adds r0, r5, 0
adds r0, 0xD8
str r0, [r1]
_08016D06:
movs r0, 0x73
bl sub_808DDD0
ldr r2, _08016D50
ldr r3, [r2]
adds r1, r3, 0
adds r1, 0xD8
str r0, [r1]
adds r1, 0x4
ldr r0, [r0, 0x4]
str r0, [r1]
adds r0, r3, 0
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xE5
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xE6
strb r1, [r0]
ldr r1, [r2]
adds r2, r1, 0
adds r2, 0xE0
movs r0, 0x2
strh r0, [r2]
adds r1, 0xE2
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_8016E68
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08016D50: .4byte gUnknown_203B208
thumb_func_end sub_8016C94
thumb_func_start sub_8016D54
sub_8016D54:
push {lr}
ldr r0, _08016D6C
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x1C
bhi _08016E34
lsls r0, 2
ldr r1, _08016D70
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08016D6C: .4byte gUnknown_203B208
_08016D70: .4byte _08016D74
.align 2, 0
_08016D74:
.4byte _08016DE8
.4byte _08016DE8
.4byte _08016E34
.4byte _08016E34
.4byte _08016E30
.4byte _08016E34
.4byte _08016E34
.4byte _08016E34
.4byte _08016E34
.4byte _08016E34
.4byte _08016E34
.4byte _08016E34
.4byte _08016E34
.4byte _08016DEE
.4byte _08016DEE
.4byte _08016DF4
.4byte _08016DFA
.4byte _08016E00
.4byte _08016E06
.4byte _08016E34
.4byte _08016E34
.4byte _08016E34
.4byte _08016E0C
.4byte _08016E0C
.4byte _08016E12
.4byte _08016E18
.4byte _08016E1E
.4byte _08016E24
.4byte _08016E2A
_08016DE8:
bl sub_8017828
b _08016E38
_08016DEE:
bl sub_8017AF8
b _08016E38
_08016DF4:
bl sub_8017C7C
b _08016E38
_08016DFA:
bl sub_8017DC0
b _08016E38
_08016E00:
bl sub_80178D0
b _08016E38
_08016E06:
bl sub_80179A8
b _08016E38
_08016E0C:
bl sub_8017B88
b _08016E38
_08016E12:
bl sub_8017C28
b _08016E38
_08016E18:
bl sub_8017D24
b _08016E38
_08016E1E:
bl sub_8017DDC
b _08016E38
_08016E24:
bl sub_8017928
b _08016E38
_08016E2A:
bl sub_8017A1C
b _08016E38
_08016E30:
movs r0, 0x3
b _08016E3A
_08016E34:
bl sub_8017DF8
_08016E38:
movs r0, 0
_08016E3A:
pop {r1}
bx r1
thumb_func_end sub_8016D54
thumb_func_start sub_8016E40
sub_8016E40:
push {r4,lr}
ldr r4, _08016E64
ldr r0, [r4]
cmp r0, 0
beq _08016E5C
adds r0, 0xD8
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08016E5C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08016E64: .4byte gUnknown_203B208
thumb_func_end sub_8016E40
thumb_func_start sub_8016E68
sub_8016E68:
push {lr}
ldr r1, _08016E7C
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_8016E80
bl sub_8016FF8
pop {r0}
bx r0
.align 2, 0
_08016E7C: .4byte gUnknown_203B208
thumb_func_end sub_8016E68
thumb_func_start sub_8016E80
sub_8016E80:
push {r4-r7,lr}
ldr r4, _08016EA4
ldr r0, [r4]
adds r0, 0xEC
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0, 0x4]
subs r0, 0xD
cmp r0, 0xC
bls _08016E98
b _08016FB4
_08016E98:
lsls r0, 2
ldr r1, _08016EA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08016EA4: .4byte gUnknown_203B208
_08016EA8: .4byte _08016EAC
.align 2, 0
_08016EAC:
.4byte _08016EE0
.4byte _08016EE0
.4byte _08016F94
.4byte _08016FB4
.4byte _08016FB4
.4byte _08016FB4
.4byte _08016FB4
.4byte _08016FB4
.4byte _08016FB4
.4byte _08016F2C
.4byte _08016F2C
.4byte _08016F7C
.4byte _08016F94
_08016EE0:
ldr r3, _08016F24
ldr r1, [r3]
ldr r2, _08016F28
adds r1, 0xEC
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldr r1, [r3]
movs r6, 0x82
lsls r6, 1
adds r1, r6
adds r0, r2, 0
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r1, [r3]
movs r5, 0x8E
lsls r5, 1
adds r1, r5
adds r0, r2, 0
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldr r0, [r3]
adds r0, 0xEC
ldm r2!, {r1,r3,r4}
stm r0!, {r1,r3,r4}
ldm r2!, {r5-r7}
stm r0!, {r5-r7}
b _08016FD8
.align 2, 0
_08016F24: .4byte gUnknown_203B208
_08016F28: .4byte gUnknown_80DB748
_08016F2C:
ldr r3, _08016F70
ldr r1, [r3]
ldr r2, _08016F74
adds r1, 0xEC
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldr r1, [r3]
movs r6, 0x82
lsls r6, 1
adds r1, r6
adds r0, r2, 0
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r0, [r3]
movs r5, 0x8E
lsls r5, 1
adds r0, r5
ldm r2!, {r1,r6,r7}
stm r0!, {r1,r6,r7}
ldm r2!, {r4-r6}
stm r0!, {r4-r6}
ldr r1, [r3]
adds r1, 0xEC
ldr r0, _08016F78
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
b _08016FD8
.align 2, 0
_08016F70: .4byte gUnknown_203B208
_08016F74: .4byte gUnknown_80DB748
_08016F78: .4byte gUnknown_80DB778
_08016F7C:
ldr r0, _08016F8C
ldr r1, [r0]
movs r7, 0x82
lsls r7, 1
adds r1, r7
ldr r0, _08016F90
b _08016FA0
.align 2, 0
_08016F8C: .4byte gUnknown_203B208
_08016F90: .4byte gUnknown_80DB790
_08016F94:
ldr r0, _08016FAC
ldr r1, [r0]
movs r0, 0x8E
lsls r0, 1
adds r1, r0
ldr r0, _08016FB0
_08016FA0:
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _08016FD8
.align 2, 0
_08016FAC: .4byte gUnknown_203B208
_08016FB0: .4byte gUnknown_80DB760
_08016FB4:
ldr r0, _08016FF0
mov r12, r0
ldr r4, _08016FF4
movs r3, 0
movs r2, 0x3
_08016FBE:
mov r5, r12
ldr r1, [r5]
adds r1, r3
adds r1, 0xEC
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08016FBE
_08016FD8:
bl sub_8004914
ldr r0, _08016FF0
ldr r0, [r0]
adds r0, 0xEC
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08016FF0: .4byte gUnknown_203B208
_08016FF4: .4byte gUnknown_80DB748
thumb_func_end sub_8016E80
thumb_func_start sub_8016FF8
sub_8016FF8:
push {r4,r5,lr}
sub sp, 0x14
ldr r1, _08017014
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r4, r1, 0
cmp r0, 0x1D
bls _0801700A
b _08017584
_0801700A:
lsls r0, 2
ldr r1, _08017018
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08017014: .4byte gUnknown_203B208
_08017018: .4byte _0801701C
.align 2, 0
_0801701C:
.4byte _08017094
.4byte _080170BC
.4byte _0801710C
.4byte _0801713C
.4byte _08017584
.4byte _0801715C
.4byte _0801718C
.4byte _080171BC
.4byte _080171EC
.4byte _0801721C
.4byte _0801724C
.4byte _0801726C
.4byte _0801728C
.4byte _080172AC
.4byte _080172BA
.4byte _080172C2
.4byte _080174A8
.4byte _080172E4
.4byte _0801731C
.4byte _08017344
.4byte _08017394
.4byte _080173B4
.4byte _080173E8
.4byte _080173F6
.4byte _08017404
.4byte _08017474
.4byte _080174A8
.4byte _080174B2
.4byte _080174E8
.4byte _08017530
_08017094:
bl sub_80175FC
ldr r2, _080170B4
ldr r0, [r2]
adds r0, 0xE4
movs r4, 0
movs r1, 0x1
strb r1, [r0]
ldr r3, _080170B8
ldr r5, [r2]
ldr r1, [r5]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r0, r3
b _080170DA
.align 2, 0
_080170B4: .4byte gUnknown_203B208
_080170B8: .4byte gUnknown_80D5404
_080170BC:
bl sub_80175FC
ldr r1, _08017104
ldr r0, [r1]
adds r0, 0xE4
movs r4, 0
strb r4, [r0]
ldr r2, _08017108
ldr r5, [r1]
ldr r1, [r5]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x4
adds r0, r2
_080170DA:
ldr r0, [r0]
ldr r2, [r5, 0x18]
adds r3, r5, 0
adds r3, 0x24
adds r1, r5, 0
adds r1, 0x4C
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
adds r1, r5, 0
adds r1, 0xE8
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _08017584
.align 2, 0
_08017104: .4byte gUnknown_203B208
_08017108: .4byte gUnknown_80D5404
_0801710C:
ldr r0, [r4]
movs r1, 0x1
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _08017134
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x4C
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _08017138
b _080173D8
.align 2, 0
_08017134: .4byte gUnknown_80D5404
_08017138: .4byte 0x0000010d
_0801713C:
ldr r0, [r4]
movs r1, 0x4
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0x1
strb r1, [r0]
ldr r2, _08017158
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x8
b _080173CE
.align 2, 0
_08017158: .4byte gUnknown_80D5404
_0801715C:
ldr r0, [r4]
movs r1, 0x1
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _08017184
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x34
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _08017188
b _080173D8
.align 2, 0
_08017184: .4byte gUnknown_80D5404
_08017188: .4byte 0x0000010d
_0801718C:
ldr r0, [r4]
movs r1, 0x1
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _080171B4
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x38
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _080171B8
b _080173D8
.align 2, 0
_080171B4: .4byte gUnknown_80D5404
_080171B8: .4byte 0x0000010d
_080171BC:
ldr r0, [r4]
movs r1, 0x1
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _080171E4
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x3C
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _080171E8
b _080173D8
.align 2, 0
_080171E4: .4byte gUnknown_80D5404
_080171E8: .4byte 0x0000010d
_080171EC:
ldr r0, [r4]
movs r1, 0x1
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _08017214
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x48
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _08017218
b _080173D8
.align 2, 0
_08017214: .4byte gUnknown_80D5404
_08017218: .4byte 0x0000010d
_0801721C:
ldr r0, _08017244
ldr r1, [r4]
adds r1, 0xC
movs r2, 0
bl sub_8090E14
ldr r0, [r4]
movs r1, 0xE
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _08017248
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x40
b _080173CE
.align 2, 0
_08017244: .4byte gUnknown_202DE58
_08017248: .4byte gUnknown_80D5404
_0801724C:
ldr r0, [r4]
movs r1, 0xE
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _08017268
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x44
b _080173CE
.align 2, 0
_08017268: .4byte gUnknown_80D5404
_0801726C:
ldr r0, [r4]
movs r1, 0xD
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _08017288
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0xC
b _080173CE
.align 2, 0
_08017288: .4byte gUnknown_80D5404
_0801728C:
ldr r0, [r4]
movs r1, 0xE
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _080172A8
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x10
b _080173CE
.align 2, 0
_080172A8: .4byte gUnknown_80D5404
_080172AC:
movs r0, 0x3
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08017584
_080172BA:
movs r0, 0x1
bl sub_801A8D0
b _08017584
_080172C2:
bl sub_801A9E0
bl sub_80176B8
ldr r0, _080172E0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x58
adds r1, r2, 0
adds r1, 0x24
adds r3, r2, 0
adds r3, 0x4C
ldr r2, [r2, 0x1C]
b _08017494
.align 2, 0
_080172E0: .4byte gUnknown_203B208
_080172E4:
bl sub_80177F8
ldr r0, _08017310
ldr r4, _08017314
ldr r1, [r4]
adds r1, 0xC
movs r2, 0
bl sub_8090E14
ldr r0, [r4]
adds r0, 0xE4
movs r5, 0
strb r5, [r0]
ldr r2, _08017318
ldr r4, [r4]
ldr r1, [r4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x14
b _08017504
.align 2, 0
_08017310: .4byte gUnknown_202DE58
_08017314: .4byte gUnknown_203B208
_08017318: .4byte gUnknown_80D5404
_0801731C:
bl sub_80177F8
ldr r1, _0801733C
ldr r0, [r1]
adds r0, 0xE4
movs r5, 0
strb r5, [r0]
ldr r2, _08017340
ldr r4, [r1]
ldr r1, [r4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x18
b _08017504
.align 2, 0
_0801733C: .4byte gUnknown_203B208
_08017340: .4byte gUnknown_80D5404
_08017344:
bl sub_8090A34
cmp r0, 0
bne _0801735C
bl sub_801A928
ldr r0, _08017358
ldr r1, [r0]
movs r0, 0x1
b _08017362
.align 2, 0
_08017358: .4byte gUnknown_203B208
_0801735C:
ldr r0, _08017388
ldr r1, [r0]
movs r0, 0xC
_08017362:
str r0, [r1, 0x8]
ldr r3, _08017388
ldr r0, [r3]
adds r0, 0xE4
movs r1, 0x1
strb r1, [r0]
ldr r2, _0801738C
ldr r3, [r3]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x1C
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _08017390
b _080173D8
.align 2, 0
_08017388: .4byte gUnknown_203B208
_0801738C: .4byte gUnknown_80D5404
_08017390: .4byte 0x0000010d
_08017394:
ldr r0, [r4]
movs r1, 0x16
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _080173B0
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x20
b _080173CE
.align 2, 0
_080173B0: .4byte gUnknown_80D5404
_080173B4:
ldr r0, [r4]
movs r1, 0x17
str r1, [r0, 0x8]
adds r0, 0xE4
movs r1, 0
strb r1, [r0]
ldr r2, _080173E0
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x24
_080173CE:
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _080173E4
_080173D8:
movs r1, 0
bl sub_80141B4
b _08017584
.align 2, 0
_080173E0: .4byte gUnknown_80D5404
_080173E4: .4byte 0x0000030d
_080173E8:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801C8C4
b _080173FC
_080173F6:
movs r0, 0x1
bl sub_801CB5C
_080173FC:
movs r0, 0
bl sub_801AD34
b _08017584
_08017404:
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xB8
movs r0, 0x2
str r0, [r1]
subs r1, 0x8
movs r0, 0x1
str r0, [r1]
ldr r0, _08017430
ldr r1, [r0]
ldrb r0, [r2, 0xE]
lsls r0, 1
adds r1, 0x50
adds r3, r1, r0
ldrh r0, [r3]
cmp r0, 0x63
bls _08017434
adds r1, r2, 0
adds r1, 0xB4
movs r0, 0x63
b _0801743A
.align 2, 0
_08017430: .4byte gUnknown_203B460
_08017434:
adds r1, r2, 0
adds r1, 0xB4
ldrh r0, [r3]
_0801743A:
str r0, [r1]
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xAC
adds r0, r2, 0
adds r0, 0xB4
ldr r0, [r0]
str r0, [r1]
adds r1, 0x10
movs r0, 0x1
str r0, [r1]
adds r1, 0x4
movs r3, 0x82
lsls r3, 1
adds r0, r2, r3
str r0, [r1]
adds r1, 0x4
movs r0, 0x28
str r0, [r1]
adds r1, 0x4
movs r0, 0x12
str r0, [r1]
adds r0, r2, 0
adds r0, 0xA8
bl sub_8013AA0
bl sub_8017598
b _08017584
_08017474:
bl sub_801CCD8
movs r0, 0
bl sub_801AD34
bl sub_8017758
ldr r0, _080174A4
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x58
adds r1, r2, 0
adds r1, 0x24
adds r3, r2, 0
adds r3, 0x4C
ldr r2, [r2, 0x20]
_08017494:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08017584
.align 2, 0
_080174A4: .4byte gUnknown_203B208
_080174A8:
ldr r0, [r4]
adds r0, 0xC
bl sub_801B3C0
b _08017584
_080174B2:
bl sub_80177F8
ldr r0, _080174DC
ldr r4, _080174E0
ldr r1, [r4]
adds r1, 0xC
movs r2, 0
bl sub_8090E14
ldr r0, [r4]
adds r0, 0xE4
movs r5, 0
strb r5, [r0]
ldr r2, _080174E4
ldr r4, [r4]
ldr r1, [r4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x28
b _08017504
.align 2, 0
_080174DC: .4byte gUnknown_202DE58
_080174E0: .4byte gUnknown_203B208
_080174E4: .4byte gUnknown_80D5404
_080174E8:
bl sub_80177F8
ldr r1, _08017528
ldr r0, [r1]
adds r0, 0xE4
movs r5, 0
strb r5, [r0]
ldr r2, _0801752C
ldr r4, [r1]
ldr r1, [r4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x2C
_08017504:
adds r0, r2
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x24
str r5, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r5, [sp, 0x8]
adds r4, 0xE8
ldr r1, [r4]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x4
bl sub_8014248
b _08017584
.align 2, 0
_08017528: .4byte gUnknown_203B208
_0801752C: .4byte gUnknown_80D5404
_08017530:
movs r0, 0x1
bl sub_801CF14
lsls r0, 24
cmp r0, 0
bne _08017544
bl sub_8090A34
cmp r0, 0x13
ble _08017554
_08017544:
bl sub_801CBB8
ldr r0, _08017550
ldr r1, [r0]
movs r0, 0x1
b _0801755A
.align 2, 0
_08017550: .4byte gUnknown_203B208
_08017554:
ldr r0, _0801758C
ldr r1, [r0]
movs r0, 0x15
_0801755A:
str r0, [r1, 0x8]
ldr r3, _0801758C
ldr r0, [r3]
adds r0, 0xE4
movs r1, 0x1
strb r1, [r0]
ldr r2, _08017590
ldr r3, [r3]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x30
adds r0, r2
ldr r0, [r0]
adds r3, 0xE8
ldr r2, [r3]
ldr r3, _08017594
movs r1, 0
bl sub_80141B4
_08017584:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801758C: .4byte gUnknown_203B208
_08017590: .4byte gUnknown_80D5404
_08017594: .4byte 0x0000010d
thumb_func_end sub_8016FF8
thumb_func_start sub_8017598
sub_8017598:
push {r4,lr}
sub sp, 0x4
ldr r4, _080175F4
ldr r0, [r4]
adds r0, 0xBC
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r4]
adds r0, 0xBC
ldr r0, [r0]
bl sub_80073B8
ldr r2, _080175F8
ldr r0, [r4]
adds r0, 0xBC
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
movs r1, 0
bl xxx_call_draw_string
ldr r0, [r4]
adds r0, 0xA8
bl sub_8013C68
ldr r0, [r4]
adds r0, 0xBC
ldr r0, [r0]
bl sub_80073E0
bl sub_801CCD8
movs r0, 0
bl sub_801AD34
ldr r0, [r4]
adds r0, 0x58
movs r1, 0
bl sub_8012EA4
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080175F4: .4byte gUnknown_203B208
_080175F8: .4byte gUnknown_80DB7A8
thumb_func_end sub_8017598
thumb_func_start sub_80175FC
sub_80175FC:
push {r4-r7,lr}
ldr r4, _0801767C
ldr r0, [r4]
adds r0, 0x4C
movs r1, 0
movs r2, 0xA
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08017680
ldr r0, [r0]
str r0, [r3, 0x24]
movs r0, 0x2
str r0, [r3, 0x28]
movs r1, 0x1
ldr r0, _08017684
ldr r0, [r0]
str r0, [r3, 0x2C]
movs r0, 0x3
str r0, [r3, 0x30]
ldr r0, _08017688
ldr r0, [r0]
str r0, [r3, 0x34]
movs r0, 0x6
str r0, [r3, 0x38]
ldr r0, _0801768C
ldr r0, [r0]
str r0, [r3, 0x3C]
str r1, [r3, 0x40]
movs r6, 0x4
str r2, [r3, 0x44]
str r1, [r3, 0x48]
movs r5, 0
mov r12, r3
adds r3, 0x28
mov r2, r12
adds r2, 0x4C
_08017648:
ldrh r0, [r2]
cmp r0, 0
bne _08017658
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x18]
cmp r1, r0
beq _080176B2
_08017658:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _08017648
movs r5, 0
cmp r5, r6
bge _080176B2
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4C
ldrh r0, [r0]
cmp r0, 0
bne _08017690
ldr r0, [r1, 0x28]
str r0, [r1, 0x18]
b _080176B2
.align 2, 0
_0801767C: .4byte gUnknown_203B208
_08017680: .4byte gUnknown_80D4958
_08017684: .4byte gUnknown_80D4964
_08017688: .4byte gUnknown_80D4970
_0801768C: .4byte gUnknown_80D4934
_08017690:
adds r5, 0x1
cmp r5, r6
bge _080176B2
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x4C
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08017690
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x28
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x18]
_080176B2:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80175FC
thumb_func_start sub_80176B8
sub_80176B8:
push {r4-r7,lr}
ldr r4, _08017724
ldr r0, [r4]
adds r0, 0x4C
movs r1, 0
movs r2, 0xA
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08017728
ldr r0, [r0]
str r0, [r3, 0x24]
movs r0, 0x2
str r0, [r3, 0x28]
movs r1, 0x1
ldr r0, _0801772C
ldr r0, [r0]
str r0, [r3, 0x2C]
movs r0, 0x6
str r0, [r3, 0x30]
movs r6, 0x2
str r2, [r3, 0x34]
str r1, [r3, 0x38]
movs r5, 0
mov r12, r3
adds r3, 0x28
mov r2, r12
adds r2, 0x4C
_080176F2:
ldrh r0, [r2]
cmp r0, 0
bne _08017702
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x1C]
cmp r1, r0
beq _08017752
_08017702:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _080176F2
movs r5, 0
cmp r5, r6
bge _08017752
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4C
ldrh r0, [r0]
cmp r0, 0
bne _08017730
ldr r0, [r1, 0x28]
str r0, [r1, 0x1C]
b _08017752
.align 2, 0
_08017724: .4byte gUnknown_203B208
_08017728: .4byte gUnknown_80D4958
_0801772C: .4byte gUnknown_80D4970
_08017730:
adds r5, 0x1
cmp r5, r6
bge _08017752
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x4C
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08017730
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x28
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
_08017752:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80176B8
thumb_func_start sub_8017758
sub_8017758:
push {r4-r7,lr}
ldr r4, _080177C4
ldr r0, [r4]
adds r0, 0x4C
movs r1, 0
movs r2, 0xA
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _080177C8
ldr r0, [r0]
str r0, [r3, 0x24]
movs r0, 0x3
str r0, [r3, 0x28]
movs r1, 0x1
ldr r0, _080177CC
ldr r0, [r0]
str r0, [r3, 0x2C]
movs r0, 0x6
str r0, [r3, 0x30]
movs r6, 0x2
str r2, [r3, 0x34]
str r1, [r3, 0x38]
movs r5, 0
mov r12, r3
adds r3, 0x28
mov r2, r12
adds r2, 0x4C
_08017792:
ldrh r0, [r2]
cmp r0, 0
bne _080177A2
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x20]
cmp r1, r0
beq _080177F2
_080177A2:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _08017792
movs r5, 0
cmp r5, r6
bge _080177F2
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4C
ldrh r0, [r0]
cmp r0, 0
bne _080177D0
ldr r0, [r1, 0x28]
str r0, [r1, 0x20]
b _080177F2
.align 2, 0
_080177C4: .4byte gUnknown_203B208
_080177C8: .4byte gUnknown_80D4964
_080177CC: .4byte gUnknown_80D4970
_080177D0:
adds r5, 0x1
cmp r5, r6
bge _080177F2
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x4C
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _080177D0
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x28
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x20]
_080177F2:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8017758
thumb_func_start sub_80177F8
sub_80177F8:
ldr r0, _0801781C
ldr r1, [r0]
movs r3, 0
ldr r0, _08017820
ldr r0, [r0]
str r0, [r1, 0x24]
movs r0, 0x4
str r0, [r1, 0x28]
movs r2, 0x1
ldr r0, _08017824
ldr r0, [r0]
str r0, [r1, 0x2C]
movs r0, 0x5
str r0, [r1, 0x30]
str r3, [r1, 0x34]
str r2, [r1, 0x38]
bx lr
.align 2, 0
_0801781C: .4byte gUnknown_203B208
_08017820: .4byte gUnknown_80D4920
_08017824: .4byte gUnknown_80D4928
thumb_func_end sub_80177F8
thumb_func_start sub_8017828
sub_8017828:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080178C8
ldr r1, [sp]
cmp r1, 0x1
beq _08017842
ldr r0, _08017854
ldr r0, [r0]
str r1, [r0, 0x18]
_08017842:
ldr r0, [sp]
cmp r0, 0x2
beq _08017862
cmp r0, 0x2
bgt _08017858
cmp r0, 0x1
beq _080178C2
b _080178C8
.align 2, 0
_08017854: .4byte gUnknown_203B208
_08017858:
cmp r0, 0x3
beq _0801788E
cmp r0, 0x6
beq _080178BA
b _080178C8
_08017862:
bl sub_8090A34
cmp r0, 0
bne _08017872
movs r0, 0x5
bl sub_8016E68
b _080178C8
_08017872:
movs r0, 0
bl sub_801CF50
lsls r0, 24
cmp r0, 0
beq _08017886
movs r0, 0x8
bl sub_8016E68
b _080178C8
_08017886:
movs r0, 0xB
bl sub_8016E68
b _080178C8
_0801788E:
movs r0, 0x1
bl sub_801CF14
lsls r0, 24
cmp r0, 0
beq _080178A2
movs r0, 0x7
bl sub_8016E68
b _080178C8
_080178A2:
bl sub_8090A34
cmp r0, 0x13
ble _080178B2
movs r0, 0x6
bl sub_8016E68
b _080178C8
_080178B2:
movs r0, 0x14
bl sub_8016E68
b _080178C8
_080178BA:
movs r0, 0x2
bl sub_8016E68
b _080178C8
_080178C2:
movs r0, 0x3
bl sub_8016E68
_080178C8:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8017828
thumb_func_start sub_80178D0
sub_80178D0:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801791E
ldr r0, [sp]
cmp r0, 0x4
beq _080178F4
cmp r0, 0x4
bgt _080178EE
cmp r0, 0x1
beq _08017918
b _0801791E
_080178EE:
cmp r0, 0x5
beq _08017918
b _0801791E
_080178F4:
ldr r4, _08017914
ldr r0, [r4]
adds r0, 0xC
bl sub_80917B8
ldr r0, [r4]
ldr r0, [r0, 0x10]
bl sub_80911F8
bl sub_80910B4
movs r0, 0x13
bl sub_8016E68
b _0801791E
.align 2, 0
_08017914: .4byte gUnknown_203B208
_08017918:
movs r0, 0xE
bl sub_8016E68
_0801791E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80178D0
thumb_func_start sub_8017928
sub_8017928:
push {lr}
sub sp, 0x8
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080179A2
ldr r0, [sp]
cmp r0, 0x4
beq _0801794C
cmp r0, 0x4
bgt _08017946
cmp r0, 0x1
beq _0801799C
b _080179A2
_08017946:
cmp r0, 0x5
beq _0801799C
b _080179A2
_0801794C:
ldr r0, _0801798C
ldr r1, [r0]
ldr r0, _08017990
ldr r3, [r0]
ldrb r0, [r3, 0xE]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrb r2, [r3, 0xD]
ldrh r0, [r1]
subs r0, r2
strh r0, [r1]
ldrb r2, [r3, 0xE]
ldr r1, _08017994
ldr r0, [sp, 0x4]
ands r0, r1
orrs r0, r2
str r0, [sp, 0x4]
ldrb r1, [r3, 0xD]
lsls r1, 8
ldr r2, _08017998
ands r0, r2
orrs r0, r1
str r0, [sp, 0x4]
add r0, sp, 0x4
bl sub_8091274
movs r0, 0x1D
bl sub_8016E68
b _080179A2
.align 2, 0
_0801798C: .4byte gUnknown_203B460
_08017990: .4byte gUnknown_203B208
_08017994: .4byte 0xffffff00
_08017998: .4byte 0xffff00ff
_0801799C:
movs r0, 0x17
bl sub_8016E68
_080179A2:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_8017928
thumb_func_start sub_80179A8
sub_80179A8:
push {r4-r7,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08017A12
ldr r0, [sp]
cmp r0, 0x4
beq _080179CC
cmp r0, 0x4
bgt _080179C6
cmp r0, 0x1
beq _08017A0C
b _08017A12
_080179C6:
cmp r0, 0x5
beq _08017A0C
b _08017A12
_080179CC:
movs r5, 0
ldr r6, _08017A08
movs r7, 0
_080179D2:
adds r0, r5, 0
bl sub_801AED0
cmp r0, 0
beq _080179F2
lsls r4, r5, 2
ldr r0, [r6]
adds r0, r4
bl sub_80917B8
ldr r0, [r6]
adds r0, r4
strb r7, [r0, 0x2]
ldr r0, [r6]
adds r0, r4
strb r7, [r0]
_080179F2:
adds r5, 0x1
cmp r5, 0x13
ble _080179D2
bl sub_80910B4
bl sub_801AE84
movs r0, 0x13
bl sub_8016E68
b _08017A12
.align 2, 0
_08017A08: .4byte gUnknown_203B460
_08017A0C:
movs r0, 0xE
bl sub_8016E68
_08017A12:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80179A8
thumb_func_start sub_8017A1C
sub_8017A1C:
push {r4-r6,lr}
sub sp, 0x8
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08017AEE
ldr r0, [sp]
cmp r0, 0x4
beq _08017A40
cmp r0, 0x4
bgt _08017A3A
cmp r0, 0x1
beq _08017AE8
b _08017AEE
_08017A3A:
cmp r0, 0x5
beq _08017AE8
b _08017AEE
_08017A40:
movs r5, 0
ldr r6, _08017A88
_08017A44:
lsls r0, r5, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl sub_801CFE0
cmp r0, 0
beq _08017ACE
ldr r1, _08017A8C
ldr r0, [sp, 0x4]
ands r0, r1
orrs r0, r4
str r0, [sp, 0x4]
add r4, sp, 0x4
ldrb r0, [r4]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08017AA2
ldr r2, _08017A90
ldr r1, [r2]
ldrb r0, [r4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
cmp r1, 0x63
bls _08017A94
ldr r0, [sp, 0x4]
ands r0, r6
movs r1, 0xC6
lsls r1, 7
b _08017A9C
.align 2, 0
_08017A88: .4byte 0xffff00ff
_08017A8C: .4byte 0xffffff00
_08017A90: .4byte gUnknown_203B460
_08017A94:
lsls r1, 24
lsrs r1, 16
ldr r0, [sp, 0x4]
ands r0, r6
_08017A9C:
orrs r0, r1
str r0, [sp, 0x4]
b _08017AB0
_08017AA2:
ldr r0, [sp, 0x4]
ands r0, r6
movs r1, 0x80
lsls r1, 1
orrs r0, r1
str r0, [sp, 0x4]
ldr r2, _08017AE4
_08017AB0:
ldr r3, [r2]
add r0, sp, 0x4
ldrb r1, [r4]
lsls r1, 1
adds r3, 0x50
adds r3, r1
ldr r1, [sp, 0x4]
lsrs r1, 8
lsls r1, 24
lsrs r1, 24
ldrh r2, [r3]
subs r2, r1
strh r2, [r3]
bl sub_8091274
_08017ACE:
adds r5, 0x1
cmp r5, 0xEF
ble _08017A44
bl sub_80910B4
bl sub_801CF94
movs r0, 0x1D
bl sub_8016E68
b _08017AEE
.align 2, 0
_08017AE4: .4byte gUnknown_203B460
_08017AE8:
movs r0, 0x17
bl sub_8016E68
_08017AEE:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8017A1C
thumb_func_start sub_8017AF8
sub_8017AF8:
push {lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x3
beq _08017B14
cmp r0, 0x3
bhi _08017B0E
cmp r0, 0x2
beq _08017B78
b _08017B82
_08017B0E:
cmp r0, 0x4
beq _08017B50
b _08017B82
_08017B14:
bl sub_801AEA8
cmp r0, 0
beq _08017B2A
movs r0, 0
bl sub_8099690
movs r0, 0x12
bl sub_8016E68
b _08017B82
_08017B2A:
bl sub_801A8AC
ldr r1, _08017B48
ldr r2, [r1]
str r0, [r2, 0x10]
ldr r1, _08017B4C
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0xC]
movs r0, 0xF
bl sub_8016E68
b _08017B82
.align 2, 0
_08017B48: .4byte gUnknown_203B208
_08017B4C: .4byte gUnknown_203B460
_08017B50:
bl sub_801A8AC
ldr r1, _08017B70
ldr r2, [r1]
str r0, [r2, 0x10]
ldr r1, _08017B74
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0xC]
movs r0, 0x10
bl sub_8016E68
b _08017B82
.align 2, 0
_08017B70: .4byte gUnknown_203B208
_08017B74: .4byte gUnknown_203B460
_08017B78:
bl sub_801A928
movs r0, 0x1
bl sub_8016E68
_08017B82:
pop {r0}
bx r0
thumb_func_end sub_8017AF8
thumb_func_start sub_8017B88
sub_8017B88:
push {r4,lr}
movs r0, 0x1
bl sub_801CA08
cmp r0, 0x2
beq _08017C10
cmp r0, 0x2
bhi _08017B9E
cmp r0, 0x1
beq _08017C1C
b _08017C22
_08017B9E:
cmp r0, 0x3
beq _08017BA8
cmp r0, 0x4
beq _08017BE4
b _08017C22
_08017BA8:
bl sub_801CFB8
cmp r0, 0
beq _08017BB8
movs r0, 0x1C
bl sub_8016E68
b _08017C22
_08017BB8:
bl sub_801CB24
ldr r4, _08017BE0
ldr r1, [r4]
strb r0, [r1, 0x14]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC
ldrb r1, [r1, 0x14]
movs r2, 0
bl sub_8090A8C
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0xD]
movs r0, 0x19
bl sub_8016E68
b _08017C22
.align 2, 0
_08017BE0: .4byte gUnknown_203B208
_08017BE4:
bl sub_801CB24
ldr r4, _08017C0C
ldr r1, [r4]
strb r0, [r1, 0x14]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC
ldrb r1, [r1, 0x14]
movs r2, 0
bl sub_8090A8C
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0xD]
movs r0, 0x1A
bl sub_8016E68
b _08017C22
.align 2, 0
_08017C0C: .4byte gUnknown_203B208
_08017C10:
bl sub_801CBB8
movs r0, 0x1
bl sub_8016E68
b _08017C22
_08017C1C:
movs r0, 0
bl sub_801AD34
_08017C22:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8017B88
thumb_func_start sub_8017C28
sub_8017C28:
push {r4,lr}
movs r0, 0
bl sub_801CA08
ldr r4, _08017C54
ldr r0, [r4]
adds r0, 0x58
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0xA8
bl sub_8013BBC
cmp r0, 0x1
beq _08017C58
cmp r0, 0x1
bcc _08017C76
cmp r0, 0x2
beq _08017C70
cmp r0, 0x3
beq _08017C5E
b _08017C76
.align 2, 0
_08017C54: .4byte gUnknown_203B208
_08017C58:
bl sub_8017598
b _08017C76
_08017C5E:
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xA8
ldr r1, [r1]
strb r1, [r0, 0xD]
movs r0, 0x1B
bl sub_8016E68
b _08017C76
_08017C70:
movs r0, 0x17
bl sub_8016E68
_08017C76:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8017C28
thumb_func_start sub_8017C7C
sub_8017C7C:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _08017CBC
ldr r0, [r4]
adds r0, 0x58
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08017CAC
ldr r0, [r4]
adds r0, 0x58
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08017CAC
ldr r0, [r4]
str r1, [r0, 0x1C]
_08017CAC:
ldr r0, [sp]
cmp r0, 0x2
beq _08017CC6
cmp r0, 0x2
bgt _08017CC0
cmp r0, 0x1
beq _08017D14
b _08017D1A
.align 2, 0
_08017CBC: .4byte gUnknown_203B208
_08017CC0:
cmp r0, 0x6
beq _08017D06
b _08017D1A
_08017CC6:
movs r0, 0
bl sub_8099690
ldr r4, _08017CE4
ldr r0, [r4]
ldrb r0, [r0, 0xE]
bl sub_8091524
lsls r0, 24
cmp r0, 0
bne _08017CE8
movs r0, 0x9
bl sub_8016E68
b _08017D1A
.align 2, 0
_08017CE4: .4byte gUnknown_203B208
_08017CE8:
ldr r0, [r4]
ldr r0, [r0, 0x10]
bl sub_801ADA0
lsls r0, 24
cmp r0, 0
bne _08017CFE
movs r0, 0xA
bl sub_8016E68
b _08017D1A
_08017CFE:
movs r0, 0x11
bl sub_8016E68
b _08017D1A
_08017D06:
movs r0, 0
bl sub_8099690
movs r0, 0x10
bl sub_8016E68
b _08017D1A
_08017D14:
movs r0, 0xE
bl sub_8016E68
_08017D1A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8017C7C
thumb_func_start sub_8017D24
sub_8017D24:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801CA08
ldr r4, _08017D64
ldr r0, [r4]
adds r0, 0x58
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08017D54
ldr r0, [r4]
adds r0, 0x58
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08017D54
ldr r0, [r4]
str r1, [r0, 0x20]
_08017D54:
ldr r0, [sp]
cmp r0, 0x3
beq _08017D6E
cmp r0, 0x3
bgt _08017D68
cmp r0, 0x1
beq _08017DB0
b _08017DB6
.align 2, 0
_08017D64: .4byte gUnknown_203B208
_08017D68:
cmp r0, 0x6
beq _08017DA8
b _08017DB6
_08017D6E:
bl sub_8090A34
cmp r0, 0x13
ble _08017D82
bl sub_801CBB8
movs r0, 0x6
bl sub_8016E68
b _08017DB6
_08017D82:
ldr r0, _08017D9C
ldr r0, [r0]
ldrb r0, [r0, 0xE]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08017DA0
movs r0, 0x18
bl sub_8016E68
b _08017DB6
.align 2, 0
_08017D9C: .4byte gUnknown_203B208
_08017DA0:
movs r0, 0x1B
bl sub_8016E68
b _08017DB6
_08017DA8:
movs r0, 0x1A
bl sub_8016E68
b _08017DB6
_08017DB0:
movs r0, 0x17
bl sub_8016E68
_08017DB6:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8017D24
thumb_func_start sub_8017DC0
sub_8017DC0:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08017DD8
cmp r0, 0x3
bhi _08017DD8
bl sub_801B450
movs r0, 0xE
bl sub_8016E68
_08017DD8:
pop {r0}
bx r0
thumb_func_end sub_8017DC0
thumb_func_start sub_8017DDC
sub_8017DDC:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08017DF4
cmp r0, 0x3
bhi _08017DF4
bl sub_801B450
movs r0, 0x17
bl sub_8016E68
_08017DF4:
pop {r0}
bx r0
thumb_func_end sub_8017DDC
thumb_func_start sub_8017DF8
sub_8017DF8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08017E10
ldr r0, _08017E18
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_8016E68
_08017E10:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08017E18: .4byte gUnknown_203B208
thumb_func_end sub_8017DF8
thumb_func_start sub_8017E1C
sub_8017E1C:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _08017E50
movs r0, 0xA8
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0, 0x14]
str r1, [r0, 0x18]
str r1, [r0, 0x1C]
movs r0, 0
bl sub_8017F10
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08017E50: .4byte gUnknown_203B20C
thumb_func_end sub_8017E1C
thumb_func_start sub_8017E54
sub_8017E54:
push {lr}
ldr r0, _08017E6C
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0xE
bhi _08017EEC
lsls r0, 2
ldr r1, _08017E70
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08017E6C: .4byte gUnknown_203B20C
_08017E70: .4byte _08017E74
.align 2, 0
_08017E74:
.4byte _08017EB0
.4byte _08017EB8
.4byte _08017EEC
.4byte _08017EE8
.4byte _08017EBE
.4byte _08017EBE
.4byte _08017EC4
.4byte _08017ECA
.4byte _08017EEC
.4byte _08017EEC
.4byte _08017ED0
.4byte _08017ED0
.4byte _08017ED6
.4byte _08017EDC
.4byte _08017EE2
_08017EB0:
movs r0, 0x1
bl sub_8017F10
b _08017EEC
_08017EB8:
bl sub_8018588
b _08017EEC
_08017EBE:
bl sub_8018620
b _08017EEC
_08017EC4:
bl sub_8018904
b _08017EEC
_08017ECA:
bl sub_8018AC8
b _08017EEC
_08017ED0:
bl sub_80186F8
b _08017EEC
_08017ED6:
bl sub_8018854
b _08017EEC
_08017EDC:
bl sub_80189C8
b _08017EEC
_08017EE2:
bl sub_8018AE4
b _08017EEC
_08017EE8:
movs r0, 0x3
b _08017EEE
_08017EEC:
movs r0, 0
_08017EEE:
pop {r1}
bx r1
thumb_func_end sub_8017E54
thumb_func_start sub_8017EF4
sub_8017EF4:
push {r4,lr}
ldr r4, _08017F0C
ldr r0, [r4]
cmp r0, 0
beq _08017F06
bl MemoryFree
movs r0, 0
str r0, [r4]
_08017F06:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08017F0C: .4byte gUnknown_203B20C
thumb_func_end sub_8017EF4
thumb_func_start sub_8017F10
sub_8017F10:
push {lr}
ldr r1, _08017F24
ldr r1, [r1]
str r0, [r1]
bl sub_8017F28
bl sub_8018100
pop {r0}
bx r0
.align 2, 0
_08017F24: .4byte gUnknown_203B20C
thumb_func_end sub_8017F10
thumb_func_start sub_8017F28
sub_8017F28:
push {r4-r7,lr}
ldr r4, _08017F48
ldr r0, [r4]
adds r0, 0xF0
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0xD
bls _08017F3E
b _080180BC
_08017F3E:
lsls r0, 2
ldr r1, _08017F4C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08017F48: .4byte gUnknown_203B20C
_08017F4C: .4byte _08017F50
.align 2, 0
_08017F50:
.4byte _080180BC
.4byte _08017F88
.4byte _080180BC
.4byte _080180BC
.4byte _08017FE8
.4byte _08017FE8
.4byte _0801809C
.4byte _080180BC
.4byte _080180BC
.4byte _080180BC
.4byte _08018034
.4byte _08018034
.4byte _08018084
.4byte _0801809C
_08017F88:
ldr r4, _08017FDC
ldr r1, [r4]
ldr r2, _08017FE0
adds r1, 0xF0
adds r0, r2, 0
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r3,r5,r7}
stm r1!, {r3,r5,r7}
ldr r1, [r4]
movs r6, 0x84
lsls r6, 1
adds r1, r6
adds r0, r2, 0
ldm r0!, {r3,r5,r7}
stm r1!, {r3,r5,r7}
ldm r0!, {r3,r6,r7}
stm r1!, {r3,r6,r7}
ldr r0, [r4]
adds r0, 0xF0
ldm r2!, {r5-r7}
stm r0!, {r5-r7}
ldm r2!, {r1,r3,r5}
stm r0!, {r1,r3,r5}
bl sub_80182E4
ldr r2, [r4]
movs r0, 0x90
lsls r0, 1
adds r2, r0
ldr r1, _08017FE4
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldm r1!, {r5-r7}
stm r2!, {r5-r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0x20
bl sub_8012CAC
b _080180E0
.align 2, 0
_08017FDC: .4byte gUnknown_203B20C
_08017FE0: .4byte gUnknown_80DB7B8
_08017FE4: .4byte gUnknown_80DB7D0
_08017FE8:
ldr r3, _0801802C
ldr r1, [r3]
ldr r2, _08018030
adds r1, 0xF0
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldr r1, [r3]
movs r6, 0x84
lsls r6, 1
adds r1, r6
adds r0, r2, 0
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r1, [r3]
movs r5, 0x90
lsls r5, 1
adds r1, r5
adds r0, r2, 0
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldr r0, [r3]
adds r0, 0xF0
ldm r2!, {r1,r3,r4}
stm r0!, {r1,r3,r4}
ldm r2!, {r5-r7}
stm r0!, {r5-r7}
b _080180E0
.align 2, 0
_0801802C: .4byte gUnknown_203B20C
_08018030: .4byte gUnknown_80DB7B8
_08018034:
ldr r3, _08018078
ldr r1, [r3]
ldr r2, _0801807C
adds r1, 0xF0
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldr r1, [r3]
movs r6, 0x84
lsls r6, 1
adds r1, r6
adds r0, r2, 0
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r0, [r3]
movs r5, 0x90
lsls r5, 1
adds r0, r5
ldm r2!, {r1,r6,r7}
stm r0!, {r1,r6,r7}
ldm r2!, {r4-r6}
stm r0!, {r4-r6}
ldr r1, [r3]
adds r1, 0xF0
ldr r0, _08018080
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
b _080180E0
.align 2, 0
_08018078: .4byte gUnknown_203B20C
_0801807C: .4byte gUnknown_80DB7B8
_08018080: .4byte gUnknown_80DB800
_08018084:
ldr r0, _08018094
ldr r1, [r0]
movs r7, 0x84
lsls r7, 1
adds r1, r7
ldr r0, _08018098
b _080180A8
.align 2, 0
_08018094: .4byte gUnknown_203B20C
_08018098: .4byte gUnknown_80DB818
_0801809C:
ldr r0, _080180B4
ldr r1, [r0]
movs r0, 0x90
lsls r0, 1
adds r1, r0
ldr r0, _080180B8
_080180A8:
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _080180E0
.align 2, 0
_080180B4: .4byte gUnknown_203B20C
_080180B8: .4byte gUnknown_80DB7E8
_080180BC:
ldr r0, _080180F8
mov r12, r0
ldr r4, _080180FC
movs r3, 0
movs r2, 0x3
_080180C6:
mov r5, r12
ldr r1, [r5]
adds r1, r3
adds r1, 0xF0
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _080180C6
_080180E0:
bl sub_8004914
ldr r0, _080180F8
ldr r0, [r0]
adds r0, 0xF0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080180F8: .4byte gUnknown_203B20C
_080180FC: .4byte gUnknown_80DB7B8
thumb_func_end sub_8017F28
thumb_func_start sub_8018100
sub_8018100:
push {r4,lr}
sub sp, 0x8
ldr r1, _0801811C
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0xE
bls _08018112
b _08018278
_08018112:
lsls r0, 2
ldr r1, _08018120
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801811C: .4byte gUnknown_203B20C
_08018120: .4byte _08018124
.align 2, 0
_08018124:
.4byte _08018278
.4byte _08018160
.4byte _08018278
.4byte _08018278
.4byte _08018172
.4byte _08018180
.4byte _08018188
.4byte _080181A8
.4byte _08018278
.4byte _08018278
.4byte _080181B2
.4byte _080181C0
.4byte _080181CE
.4byte _0801823C
.4byte _08018270
_08018160:
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x70
adds r1, r2, 0
adds r1, 0x20
adds r3, r2, 0
adds r3, 0x60
ldr r2, [r2, 0x14]
b _0801825C
_08018172:
movs r0, 0x3
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08018278
_08018180:
movs r0, 0x1
bl sub_801A8D0
b _08018278
_08018188:
bl sub_801A9E0
bl sub_801841C
ldr r0, _080181A4
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x70
adds r1, r2, 0
adds r1, 0x20
adds r3, r2, 0
adds r3, 0x60
ldr r2, [r2, 0x18]
b _0801825C
.align 2, 0
_080181A4: .4byte gUnknown_203B20C
_080181A8:
ldr r0, [r4]
adds r0, 0x8
bl sub_801B3C0
b _08018278
_080181B2:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801C8C4
b _080181C6
_080181C0:
movs r0, 0x1
bl sub_801CB5C
_080181C6:
movs r0, 0
bl sub_801AD34
b _08018278
_080181CE:
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xD0
movs r0, 0x2
str r0, [r1]
subs r1, 0x8
movs r0, 0x1
str r0, [r1]
ldr r0, _080181F8
ldr r1, [r0]
ldrb r0, [r2, 0xA]
lsls r0, 1
adds r1, 0x50
adds r3, r1, r0
ldrh r0, [r3]
cmp r0, 0x63
bls _080181FC
adds r1, r2, 0
adds r1, 0xCC
movs r0, 0x63
b _08018202
.align 2, 0
_080181F8: .4byte gUnknown_203B460
_080181FC:
adds r1, r2, 0
adds r1, 0xCC
ldrh r0, [r3]
_08018202:
str r0, [r1]
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xC4
adds r0, r2, 0
adds r0, 0xCC
ldr r0, [r0]
str r0, [r1]
adds r1, 0x10
movs r0, 0x1
str r0, [r1]
adds r1, 0x4
movs r3, 0x84
lsls r3, 1
adds r0, r2, r3
str r0, [r1]
adds r1, 0x4
movs r0, 0x28
str r0, [r1]
adds r1, 0x4
movs r0, 0x12
str r0, [r1]
adds r0, r2, 0
adds r0, 0xC0
bl sub_8013AA0
bl sub_8018280
b _08018278
_0801823C:
bl sub_801CCD8
movs r0, 0
bl sub_801AD34
bl sub_80184D4
ldr r0, _0801826C
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x70
adds r1, r2, 0
adds r1, 0x20
adds r3, r2, 0
adds r3, 0x60
ldr r2, [r2, 0x1C]
_0801825C:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08018278
.align 2, 0
_0801826C: .4byte gUnknown_203B20C
_08018270:
ldr r0, [r4]
adds r0, 0x8
bl sub_801B3C0
_08018278:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8018100
thumb_func_start sub_8018280
sub_8018280:
push {r4,lr}
sub sp, 0x4
ldr r4, _080182DC
ldr r0, [r4]
adds r0, 0xD4
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r4]
adds r0, 0xD4
ldr r0, [r0]
bl sub_80073B8
ldr r2, _080182E0
ldr r0, [r4]
adds r0, 0xD4
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
movs r1, 0
bl xxx_call_draw_string
ldr r0, [r4]
adds r0, 0xC0
bl sub_8013C68
ldr r0, [r4]
adds r0, 0xD4
ldr r0, [r0]
bl sub_80073E0
bl sub_801CCD8
movs r0, 0
bl sub_801AD34
ldr r0, [r4]
adds r0, 0x70
movs r1, 0
bl sub_8012EA4
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080182DC: .4byte gUnknown_203B20C
_080182E0: .4byte gUnknown_80DB830
thumb_func_end sub_8018280
thumb_func_start sub_80182E4
sub_80182E4:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0
mov r8, r0
ldr r4, _080183DC
ldr r0, [r4]
adds r0, 0x60
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
ldr r0, _080183E0
ldr r0, [r0]
str r0, [r1, 0x20]
movs r0, 0x2
str r0, [r1, 0x24]
bl sub_8090A34
cmp r0, 0
beq _0801831C
movs r0, 0
bl sub_801CF50
lsls r0, 24
cmp r0, 0
beq _08018324
_0801831C:
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
strh r1, [r0]
_08018324:
movs r1, 0x1
add r8, r1
ldr r4, _080183DC
ldr r2, [r4]
mov r0, r8
lsls r3, r0, 3
adds r0, r2, 0
adds r0, 0x20
adds r0, r3
ldr r1, _080183E4
ldr r1, [r1]
str r1, [r0]
adds r2, 0x24
adds r2, r3
movs r0, 0x3
str r0, [r2]
movs r0, 0x1
bl sub_801CF14
lsls r0, 24
cmp r0, 0
bne _08018358
bl sub_8090A34
cmp r0, 0x13
ble _08018366
_08018358:
ldr r0, [r4]
mov r2, r8
lsls r1, r2, 1
adds r0, 0x60
adds r0, r1
movs r1, 0x1
strh r1, [r0]
_08018366:
movs r0, 0x1
add r8, r0
ldr r4, _080183DC
ldr r7, [r4]
mov r2, r8
lsls r1, r2, 3
adds r2, r7, 0
adds r2, 0x20
adds r3, r2, r1
ldr r0, _080183E8
ldr r0, [r0]
str r0, [r3]
adds r6, r7, 0
adds r6, 0x24
adds r1, r6, r1
movs r3, 0x1
str r3, [r1]
add r8, r3
mov r1, r8
lsls r0, r1, 3
adds r2, r0
movs r1, 0
str r1, [r2]
adds r0, r6, r0
str r3, [r0]
movs r5, 0
mov r12, r4
cmp r5, r8
bge _080183C0
adds r4, r7, 0
adds r2, r4, 0
adds r2, 0x60
adds r3, r6, 0
_080183A8:
ldrh r0, [r2]
cmp r0, 0
bne _080183B6
ldr r1, [r3]
ldr r0, [r4, 0x14]
cmp r1, r0
beq _08018410
_080183B6:
adds r2, 0x2
adds r3, 0x8
adds r5, 0x1
cmp r5, r8
blt _080183A8
_080183C0:
movs r5, 0
cmp r5, r8
bge _08018410
mov r2, r12
ldr r1, [r2]
adds r0, r1, 0
adds r0, 0x60
ldrh r0, [r0]
cmp r0, 0
bne _080183EC
ldr r0, [r1, 0x24]
str r0, [r1, 0x14]
b _08018410
.align 2, 0
_080183DC: .4byte gUnknown_203B20C
_080183E0: .4byte gUnknown_80D4958
_080183E4: .4byte gUnknown_80D4964
_080183E8: .4byte gUnknown_80D4934
_080183EC:
adds r5, 0x1
cmp r5, r8
bge _08018410
mov r0, r12
ldr r2, [r0]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x60
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _080183EC
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x24
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x14]
_08018410:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80182E4
thumb_func_start sub_801841C
sub_801841C:
push {r4-r7,lr}
ldr r4, _080184A0
ldr r0, [r4]
adds r0, 0x60
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
ldr r0, _080184A4
ldr r0, [r0]
str r0, [r1, 0x20]
movs r0, 0x2
str r0, [r1, 0x24]
ldr r0, [r1, 0xC]
bl sub_801ADA0
lsls r0, 24
cmp r0, 0
bne _0801844C
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
strh r1, [r0]
_0801844C:
ldr r2, [r4]
movs r1, 0x1
ldr r0, _080184A8
ldr r0, [r0]
str r0, [r2, 0x28]
movs r0, 0x4
str r0, [r2, 0x2C]
movs r5, 0x2
movs r0, 0
str r0, [r2, 0x30]
str r1, [r2, 0x34]
movs r3, 0
adds r6, r4, 0
mov r12, r2
mov r4, r12
adds r4, 0x60
adds r2, 0x24
_0801846E:
ldrh r0, [r4]
cmp r0, 0
bne _0801847E
ldr r1, [r2]
mov r7, r12
ldr r0, [r7, 0x18]
cmp r1, r0
beq _080184CE
_0801847E:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r5
blt _0801846E
movs r3, 0
cmp r3, r5
bge _080184CE
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0x60
ldrh r0, [r0]
cmp r0, 0
bne _080184AC
ldr r0, [r1, 0x24]
str r0, [r1, 0x18]
b _080184CE
.align 2, 0
_080184A0: .4byte gUnknown_203B20C
_080184A4: .4byte gUnknown_80D4958
_080184A8: .4byte gUnknown_80D4970
_080184AC:
adds r3, 0x1
cmp r3, r5
bge _080184CE
ldr r2, [r6]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0x60
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _080184AC
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x24
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x18]
_080184CE:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_801841C
thumb_func_start sub_80184D4
sub_80184D4:
push {r4-r7,lr}
ldr r4, _08018554
ldr r0, [r4]
adds r0, 0x60
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
ldr r0, _08018558
ldr r0, [r0]
str r0, [r1, 0x20]
movs r0, 0x3
str r0, [r1, 0x24]
bl sub_8090A34
cmp r0, 0x13
ble _08018500
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
strh r1, [r0]
_08018500:
ldr r2, [r4]
movs r1, 0x1
ldr r0, _0801855C
ldr r0, [r0]
str r0, [r2, 0x28]
movs r0, 0x4
str r0, [r2, 0x2C]
movs r5, 0x2
movs r0, 0
str r0, [r2, 0x30]
str r1, [r2, 0x34]
movs r3, 0
adds r6, r4, 0
mov r12, r2
mov r4, r12
adds r4, 0x60
adds r2, 0x24
_08018522:
ldrh r0, [r4]
cmp r0, 0
bne _08018532
ldr r1, [r2]
mov r7, r12
ldr r0, [r7, 0x1C]
cmp r1, r0
beq _08018582
_08018532:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r5
blt _08018522
movs r3, 0
cmp r3, r5
bge _08018582
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0x60
ldrh r0, [r0]
cmp r0, 0
bne _08018560
ldr r0, [r1, 0x24]
str r0, [r1, 0x1C]
b _08018582
.align 2, 0
_08018554: .4byte gUnknown_203B20C
_08018558: .4byte gUnknown_80D4964
_0801855C: .4byte gUnknown_80D4970
_08018560:
adds r3, 0x1
cmp r3, r5
bge _08018582
ldr r2, [r6]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0x60
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08018560
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x24
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
_08018582:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80184D4
thumb_func_start sub_8018588
sub_8018588:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _080185C4
ldr r0, [r4]
adds r0, 0x70
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080185B4
ldr r0, [r4]
adds r0, 0x70
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _080185B4
ldr r0, [r4]
str r1, [r0, 0x14]
_080185B4:
ldr r0, [sp]
cmp r0, 0x2
beq _080185CE
cmp r0, 0x2
bgt _080185C8
cmp r0, 0x1
beq _08018610
b _08018616
.align 2, 0
_080185C4: .4byte gUnknown_203B20C
_080185C8:
cmp r0, 0x3
beq _080185EA
b _08018616
_080185CE:
bl sub_8090A34
cmp r0, 0
beq _080185F6
movs r0, 0
bl sub_801CF50
lsls r0, 24
cmp r0, 0
bne _080185F6
movs r0, 0x4
bl sub_8017F10
b _08018616
_080185EA:
movs r0, 0x1
bl sub_801CF14
lsls r0, 24
cmp r0, 0
beq _08018608
_080185F6:
ldr r0, _08018604
ldr r0, [r0]
adds r0, 0x70
movs r1, 0x1
bl sub_8012EA4
b _08018616
.align 2, 0
_08018604: .4byte gUnknown_203B20C
_08018608:
movs r0, 0xA
bl sub_8017F10
b _08018616
_08018610:
movs r0, 0x3
bl sub_8017F10
_08018616:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8018588
thumb_func_start sub_8018620
sub_8018620:
push {r4-r7,lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x3
beq _0801863C
cmp r0, 0x3
bhi _08018636
cmp r0, 0x2
beq _080186E8
b _080186F2
_08018636:
cmp r0, 0x4
beq _080186C0
b _080186F2
_0801863C:
bl sub_801AEA8
cmp r0, 0
beq _08018698
movs r5, 0
ldr r6, _0801868C
movs r7, 0
_0801864A:
adds r0, r5, 0
bl sub_801AED0
cmp r0, 0
beq _0801866A
lsls r4, r5, 2
ldr r0, [r6]
adds r0, r4
bl sub_80917B8
ldr r0, [r6]
adds r0, r4
strb r7, [r0, 0x2]
ldr r0, [r6]
adds r0, r4
strb r7, [r0]
_0801866A:
adds r5, 0x1
cmp r5, 0x13
ble _0801864A
bl sub_80910B4
bl sub_801AE84
bl sub_8090A34
cmp r0, 0
bne _08018690
bl sub_801A928
movs r0, 0x1
bl sub_8017F10
b _080186F2
.align 2, 0
_0801868C: .4byte gUnknown_203B460
_08018690:
movs r0, 0x5
bl sub_8017F10
b _080186F2
_08018698:
bl sub_801A8AC
ldr r1, _080186B8
ldr r2, [r1]
str r0, [r2, 0xC]
ldr r1, _080186BC
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x8]
movs r0, 0x6
bl sub_8017F10
b _080186F2
.align 2, 0
_080186B8: .4byte gUnknown_203B20C
_080186BC: .4byte gUnknown_203B460
_080186C0:
bl sub_801A8AC
ldr r1, _080186E0
ldr r2, [r1]
str r0, [r2, 0xC]
ldr r1, _080186E4
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x8]
movs r0, 0x7
bl sub_8017F10
b _080186F2
.align 2, 0
_080186E0: .4byte gUnknown_203B20C
_080186E4: .4byte gUnknown_203B460
_080186E8:
bl sub_801A928
movs r0, 0x1
bl sub_8017F10
_080186F2:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8018620
thumb_func_start sub_80186F8
sub_80186F8:
push {r4-r7,lr}
sub sp, 0x4
movs r0, 0x1
bl sub_801CA08
cmp r0, 0x2
bne _08018708
b _08018838
_08018708:
cmp r0, 0x2
bhi _08018714
cmp r0, 0x1
bne _08018712
b _08018844
_08018712:
b _0801884A
_08018714:
cmp r0, 0x3
beq _0801871E
cmp r0, 0x4
beq _0801880C
b _0801884A
_0801871E:
bl sub_801CFB8
cmp r0, 0
beq _080187E0
movs r6, 0
mov r5, sp
ldr r7, _0801876C
_0801872C:
lsls r0, r6, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl sub_801CFE0
cmp r0, 0
beq _080187B2
ldr r1, _08018770
ldr r0, [sp]
ands r0, r1
orrs r0, r4
str r0, [sp]
ldrb r0, [r5]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08018786
ldr r2, _08018774
ldr r1, [r2]
ldrb r0, [r5]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
cmp r1, 0x63
bls _08018778
ldr r0, [sp]
ands r0, r7
movs r1, 0xC6
lsls r1, 7
b _08018780
.align 2, 0
_0801876C: .4byte 0xffff00ff
_08018770: .4byte 0xffffff00
_08018774: .4byte gUnknown_203B460
_08018778:
lsls r1, 24
lsrs r1, 16
ldr r0, [sp]
ands r0, r7
_08018780:
orrs r0, r1
str r0, [sp]
b _08018794
_08018786:
ldr r0, [sp]
ands r0, r7
movs r1, 0x80
lsls r1, 1
orrs r0, r1
str r0, [sp]
ldr r2, _080187DC
_08018794:
ldr r2, [r2]
ldrb r0, [r5]
lsls r0, 1
adds r2, 0x50
adds r2, r0
ldr r0, [sp]
lsrs r0, 8
lsls r0, 24
lsrs r0, 24
ldrh r1, [r2]
subs r1, r0
strh r1, [r2]
mov r0, sp
bl sub_8091274
_080187B2:
adds r6, 0x1
cmp r6, 0xEF
ble _0801872C
bl sub_80910B4
bl sub_801CF94
movs r0, 0x1
bl sub_801CF14
lsls r0, 24
cmp r0, 0
bne _08018838
bl sub_8090A34
cmp r0, 0x13
bgt _08018838
movs r0, 0xB
bl sub_8017F10
b _0801884A
.align 2, 0
_080187DC: .4byte gUnknown_203B460
_080187E0:
bl sub_801CB24
ldr r4, _08018808
ldr r1, [r4]
strb r0, [r1, 0x10]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x8
ldrb r1, [r1, 0x10]
movs r2, 0
bl sub_8090A8C
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x9]
movs r0, 0xD
bl sub_8017F10
b _0801884A
.align 2, 0
_08018808: .4byte gUnknown_203B20C
_0801880C:
bl sub_801CB24
ldr r4, _08018834
ldr r1, [r4]
strb r0, [r1, 0x10]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x8
ldrb r1, [r1, 0x10]
movs r2, 0
bl sub_8090A8C
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x9]
movs r0, 0xE
bl sub_8017F10
b _0801884A
.align 2, 0
_08018834: .4byte gUnknown_203B20C
_08018838:
bl sub_801CBB8
movs r0, 0x1
bl sub_8017F10
b _0801884A
_08018844:
movs r0, 0
bl sub_801AD34
_0801884A:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80186F8
thumb_func_start sub_8018854
sub_8018854:
push {r4,lr}
sub sp, 0x4
movs r0, 0
bl sub_801CA08
ldr r4, _080188E0
ldr r0, [r4]
adds r0, 0x70
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0xC0
bl sub_8013BBC
cmp r0, 0x1
beq _080188F8
cmp r0, 0x1
bcc _080188FC
cmp r0, 0x2
beq _080188F0
cmp r0, 0x3
bne _080188FC
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC0
ldr r0, [r0]
strb r0, [r1, 0x9]
ldr r0, _080188E4
ldr r1, [r0]
ldr r3, [r4]
ldrb r0, [r3, 0xA]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrb r2, [r3, 0x9]
ldrh r0, [r1]
subs r0, r2
strh r0, [r1]
ldrb r2, [r3, 0xA]
ldr r1, _080188E8
ldr r0, [sp]
ands r0, r1
orrs r0, r2
str r0, [sp]
ldrb r1, [r3, 0x9]
lsls r1, 8
ldr r2, _080188EC
ands r0, r2
orrs r0, r1
str r0, [sp]
mov r0, sp
bl sub_8091274
movs r0, 0x1
bl sub_801CF14
lsls r0, 24
cmp r0, 0
bne _080188D2
bl sub_8090A34
cmp r0, 0x13
ble _080188F0
_080188D2:
bl sub_801CBB8
movs r0, 0x1
bl sub_8017F10
b _080188FC
.align 2, 0
_080188E0: .4byte gUnknown_203B20C
_080188E4: .4byte gUnknown_203B460
_080188E8: .4byte 0xffffff00
_080188EC: .4byte 0xffff00ff
_080188F0:
movs r0, 0xB
bl sub_8017F10
b _080188FC
_080188F8:
bl sub_8018280
_080188FC:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8018854
thumb_func_start sub_8018904
sub_8018904:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _08018944
ldr r0, [r4]
adds r0, 0x70
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08018934
ldr r0, [r4]
adds r0, 0x70
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08018934
ldr r0, [r4]
str r1, [r0, 0x18]
_08018934:
ldr r0, [sp]
cmp r0, 0x2
beq _0801894E
cmp r0, 0x2
bgt _08018948
cmp r0, 0x1
beq _080189BA
b _080189C0
.align 2, 0
_08018944: .4byte gUnknown_203B20C
_08018948:
cmp r0, 0x4
beq _080189AC
b _080189C0
_0801894E:
ldr r4, _08018978
ldr r0, [r4]
ldrb r0, [r0, 0xA]
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _0801896C
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_801ADA0
lsls r0, 24
cmp r0, 0
bne _0801897C
_0801896C:
ldr r0, [r4]
adds r0, 0x70
movs r1, 0x1
bl sub_8012EA4
b _080189C0
.align 2, 0
_08018978: .4byte gUnknown_203B20C
_0801897C:
ldr r0, [r4]
adds r0, 0x8
bl sub_80917B8
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_80911F8
bl sub_80910B4
bl sub_8090A34
cmp r0, 0
bne _080189A4
bl sub_801A928
movs r0, 0x1
bl sub_8017F10
b _080189C0
_080189A4:
movs r0, 0x5
bl sub_8017F10
b _080189C0
_080189AC:
movs r0, 0
bl sub_8099690
movs r0, 0x7
bl sub_8017F10
b _080189C0
_080189BA:
movs r0, 0x5
bl sub_8017F10
_080189C0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8018904
thumb_func_start sub_80189C8
sub_80189C8:
push {r4,lr}
sub sp, 0x8
movs r0, 0
str r0, [sp]
bl sub_801CA08
ldr r4, _08018A08
ldr r0, [r4]
adds r0, 0x70
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080189F8
ldr r0, [r4]
adds r0, 0x70
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _080189F8
ldr r0, [r4]
str r1, [r0, 0x1C]
_080189F8:
ldr r0, [sp]
cmp r0, 0x3
beq _08018A12
cmp r0, 0x3
bgt _08018A0C
cmp r0, 0x1
beq _08018AB8
b _08018ABE
.align 2, 0
_08018A08: .4byte gUnknown_203B20C
_08018A0C:
cmp r0, 0x4
beq _08018AB0
b _08018ABE
_08018A12:
bl sub_8090A34
cmp r0, 0x13
ble _08018A2C
ldr r0, _08018A28
ldr r0, [r0]
adds r0, 0x70
movs r1, 0x1
bl sub_8012EA4
b _08018ABE
.align 2, 0
_08018A28: .4byte gUnknown_203B20C
_08018A2C:
ldr r4, _08018A44
ldr r0, [r4]
ldrb r0, [r0, 0xA]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08018A48
movs r0, 0xC
bl sub_8017F10
b _08018ABE
.align 2, 0
_08018A44: .4byte gUnknown_203B20C
_08018A48:
ldr r0, _08018A9C
ldr r1, [r0]
ldr r3, [r4]
ldrb r0, [r3, 0xA]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrb r2, [r3, 0x9]
ldrh r0, [r1]
subs r0, r2
strh r0, [r1]
ldrb r2, [r3, 0xA]
ldr r1, _08018AA0
ldr r0, [sp, 0x4]
ands r0, r1
orrs r0, r2
str r0, [sp, 0x4]
ldrb r1, [r3, 0x9]
lsls r1, 8
ldr r2, _08018AA4
ands r0, r2
orrs r0, r1
str r0, [sp, 0x4]
add r0, sp, 0x4
bl sub_8091274
movs r0, 0x1
bl sub_801CF14
lsls r0, 24
cmp r0, 0
bne _08018A90
bl sub_8090A34
cmp r0, 0x13
ble _08018AA8
_08018A90:
bl sub_801CBB8
movs r0, 0x1
bl sub_8017F10
b _08018ABE
.align 2, 0
_08018A9C: .4byte gUnknown_203B460
_08018AA0: .4byte 0xffffff00
_08018AA4: .4byte 0xffff00ff
_08018AA8:
movs r0, 0xB
bl sub_8017F10
b _08018ABE
_08018AB0:
movs r0, 0xE
bl sub_8017F10
b _08018ABE
_08018AB8:
movs r0, 0xB
bl sub_8017F10
_08018ABE:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80189C8
thumb_func_start sub_8018AC8
sub_8018AC8:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08018AE0
cmp r0, 0x3
bhi _08018AE0
bl sub_801B450
movs r0, 0x5
bl sub_8017F10
_08018AE0:
pop {r0}
bx r0
thumb_func_end sub_8018AC8
thumb_func_start sub_8018AE4
sub_8018AE4:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08018AFC
cmp r0, 0x3
bhi _08018AFC
bl sub_801B450
movs r0, 0xB
bl sub_8017F10
_08018AFC:
pop {r0}
bx r0
thumb_func_end sub_8018AE4
thumb_func_start sub_8018B00
sub_8018B00:
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _08018B30
movs r0, 0xA4
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
adds r1, r0, 0
str r1, [r5]
movs r2, 0
str r2, [r1, 0x28]
str r2, [r1, 0x2C]
str r2, [r1, 0x30]
str r4, [r1]
cmp r4, 0x1
beq _08018B3A
cmp r4, 0x1
bcc _08018B34
cmp r4, 0x2
beq _08018B44
cmp r4, 0x3
beq _08018B80
b _08018BAE
.align 2, 0
_08018B30: .4byte gUnknown_203B210
_08018B34:
movs r0, 0x1
strb r0, [r1, 0x4]
b _08018B46
_08018B3A:
strb r4, [r1, 0x4]
ldr r0, [r5]
adds r0, 0xE4
str r2, [r0]
b _08018B50
_08018B44:
strb r2, [r1, 0x4]
_08018B46:
ldr r0, [r5]
adds r1, r0, 0
adds r1, 0xE4
adds r0, 0xD4
str r0, [r1]
_08018B50:
ldr r0, _08018B78
movs r5, 0xBE
lsls r5, 1
adds r1, r5, 0
bl sub_808D8E0
ldr r4, _08018B7C
adds r0, r4, 0
adds r1, r5, 0
bl sub_808D8E0
adds r0, r5, 0
bl sub_808D994
adds r1, r0, 0
subs r4, 0x50
adds r0, r4, 0
bl strcpy
b _08018BAE
.align 2, 0
_08018B78: .4byte gUnknown_202E5D8
_08018B7C: .4byte gUnknown_202E1C8
_08018B80:
strb r2, [r1, 0x4]
ldr r0, [r5]
adds r0, 0xE4
str r2, [r0]
ldr r0, _08018BF8
movs r5, 0xBE
lsls r5, 1
adds r1, r5, 0
bl sub_808D8E0
ldr r4, _08018BFC
adds r0, r4, 0
adds r1, r5, 0
bl sub_808D8E0
adds r0, r5, 0
bl sub_808D994
adds r1, r0, 0
subs r4, 0x50
adds r0, r4, 0
bl strcpy
_08018BAE:
movs r0, 0xBE
lsls r0, 1
bl sub_808DDD0
ldr r2, _08018C00
ldr r3, [r2]
adds r1, r3, 0
adds r1, 0xD4
str r0, [r1]
adds r1, 0x4
ldr r0, [r0, 0x4]
str r0, [r1]
adds r0, r3, 0
adds r0, 0xE0
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xE1
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xE2
strb r1, [r0]
ldr r1, [r2]
adds r2, r1, 0
adds r2, 0xDC
movs r0, 0x2
strh r0, [r2]
adds r1, 0xDE
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_8018D18
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08018BF8: .4byte gUnknown_202E5D8
_08018BFC: .4byte gUnknown_202E1C8
_08018C00: .4byte gUnknown_203B210
thumb_func_end sub_8018B00
thumb_func_start sub_8018C04
sub_8018C04:
push {lr}
ldr r0, _08018C1C
ldr r0, [r0]
ldr r0, [r0, 0x8]
cmp r0, 0x1F
bhi _08018CE4
lsls r0, 2
ldr r1, _08018C20
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018C1C: .4byte gUnknown_203B210
_08018C20: .4byte _08018C24
.align 2, 0
_08018C24:
.4byte _08018CA4
.4byte _08018CA4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE0
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CAA
.4byte _08018CAA
.4byte _08018CB6
.4byte _08018CD4
.4byte _08018CC2
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CE4
.4byte _08018CB0
.4byte _08018CB0
.4byte _08018CBC
.4byte _08018CDA
.4byte _08018CC8
.4byte _08018CCE
_08018CA4:
bl sub_8019730
b _08018CE8
_08018CAA:
bl sub_80199CC
b _08018CE8
_08018CB0:
bl sub_8019B08
b _08018CE8
_08018CB6:
bl sub_8019BBC
b _08018CE8
_08018CBC:
bl sub_8019C78
b _08018CE8
_08018CC2:
bl sub_8019850
b _08018CE8
_08018CC8:
bl sub_80198E8
b _08018CE8
_08018CCE:
bl sub_8019944
b _08018CE8
_08018CD4:
bl sub_8019D30
b _08018CE8
_08018CDA:
bl sub_8019D4C
b _08018CE8
_08018CE0:
movs r0, 0x3
b _08018CEA
_08018CE4:
bl sub_8019D68
_08018CE8:
movs r0, 0
_08018CEA:
pop {r1}
bx r1
thumb_func_end sub_8018C04
thumb_func_start sub_8018CF0
sub_8018CF0:
push {r4,lr}
ldr r4, _08018D14
ldr r0, [r4]
cmp r0, 0
beq _08018D0C
adds r0, 0xD4
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08018D0C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08018D14: .4byte gUnknown_203B210
thumb_func_end sub_8018CF0
thumb_func_start sub_8018D18
sub_8018D18:
push {lr}
ldr r1, _08018D2C
ldr r1, [r1]
str r0, [r1, 0x8]
bl sub_8018D30
bl sub_8018E88
pop {r0}
bx r0
.align 2, 0
_08018D2C: .4byte gUnknown_203B210
thumb_func_end sub_8018D18
thumb_func_start sub_8018D30
sub_8018D30:
push {r4-r7,lr}
ldr r4, _08018D54
ldr r0, [r4]
adds r0, 0xE8
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0, 0x8]
subs r0, 0x12
cmp r0, 0xA
bls _08018D48
b _08018E44
_08018D48:
lsls r0, 2
ldr r1, _08018D58
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018D54: .4byte gUnknown_203B210
_08018D58: .4byte _08018D5C
.align 2, 0
_08018D5C:
.4byte _08018D88
.4byte _08018D88
.4byte _08018E24
.4byte _08018E44
.4byte _08018E44
.4byte _08018E44
.4byte _08018E44
.4byte _08018E44
.4byte _08018DDC
.4byte _08018DDC
.4byte _08018E24
_08018D88:
ldr r3, _08018DCC
ldr r1, [r3]
ldr r2, _08018DD0
adds r1, 0xE8
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldr r0, [r3]
movs r6, 0x8C
lsls r6, 1
adds r0, r6
ldm r2!, {r1,r4,r7}
stm r0!, {r1,r4,r7}
ldm r2!, {r5-r7}
stm r0!, {r5-r7}
ldr r1, [r3]
adds r1, 0xE8
ldr r0, _08018DD4
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldr r1, [r3]
movs r3, 0x80
lsls r3, 1
adds r1, r3
ldr r0, _08018DD8
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
b _08018E68
.align 2, 0
_08018DCC: .4byte gUnknown_203B210
_08018DD0: .4byte gUnknown_80DB840
_08018DD4: .4byte gUnknown_80DB870
_08018DD8: .4byte gUnknown_80DB888
_08018DDC:
ldr r3, _08018E18
ldr r1, [r3]
ldr r2, _08018E1C
adds r1, 0xE8
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldr r1, [r3]
movs r4, 0x80
lsls r4, 1
adds r1, r4
adds r0, r2, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldr r0, [r3]
movs r6, 0x8C
lsls r6, 1
adds r0, r6
ldm r2!, {r1,r5,r7}
stm r0!, {r1,r5,r7}
ldm r2!, {r1,r6,r7}
stm r0!, {r1,r6,r7}
ldr r1, [r3]
adds r1, r4
ldr r0, _08018E20
b _08018E30
.align 2, 0
_08018E18: .4byte gUnknown_203B210
_08018E1C: .4byte gUnknown_80DB840
_08018E20: .4byte gUnknown_80DB888
_08018E24:
ldr r0, _08018E3C
ldr r1, [r0]
movs r0, 0x8C
lsls r0, 1
adds r1, r0
ldr r0, _08018E40
_08018E30:
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _08018E68
.align 2, 0
_08018E3C: .4byte gUnknown_203B210
_08018E40: .4byte gUnknown_80DB858
_08018E44:
ldr r0, _08018E80
mov r12, r0
ldr r4, _08018E84
movs r3, 0
movs r2, 0x3
_08018E4E:
mov r5, r12
ldr r1, [r5]
adds r1, r3
adds r1, 0xE8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08018E4E
_08018E68:
bl sub_8004914
ldr r0, _08018E80
ldr r0, [r0]
adds r0, 0xE8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08018E80: .4byte gUnknown_203B210
_08018E84: .4byte gUnknown_80DB840
thumb_func_end sub_8018D30
thumb_func_start sub_8018E88
sub_8018E88:
push {r4,lr}
sub sp, 0x14
ldr r1, _08018EA4
ldr r0, [r1]
ldr r0, [r0, 0x8]
adds r4, r1, 0
cmp r0, 0x20
bls _08018E9A
b _080194E8
_08018E9A:
lsls r0, 2
ldr r1, _08018EA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08018EA4: .4byte gUnknown_203B210
_08018EA8: .4byte _08018EAC
.align 2, 0
_08018EAC:
.4byte _08018F30
.4byte _08018F58
.4byte _08018FA8
.4byte _08018FD0
.4byte _080194E8
.4byte _08018FFC
.4byte _08019024
.4byte _0801904C
.4byte _08019070
.4byte _08019094
.4byte _080190B8
.4byte _080190DC
.4byte _08019104
.4byte _0801912C
.4byte _08019164
.4byte _0801918C
.4byte _080191B4
.4byte _08019294
.4byte _080191DC
.4byte _080191FA
.4byte _08019218
.4byte _080193F4
.4byte _08019254
.4byte _08019314
.4byte _0801933C
.4byte _080193FE
.4byte _08019364
.4byte _08019372
.4byte _08019380
.4byte _080193F4
.4byte _080193B4
.4byte _0801946C
.4byte _080194C0
_08018F30:
bl sub_8019DAC
bl sub_80194F8
movs r0, 0
bl sub_8019E04
ldr r2, _08018F50
ldr r0, _08018F54
ldr r4, [r0]
ldr r1, [r4]
movs r0, 0x5C
muls r0, r1
adds r0, r2
b _08018F76
.align 2, 0
_08018F50: .4byte gUnknown_80D5EC8
_08018F54: .4byte gUnknown_203B210
_08018F58:
bl sub_8019DAC
bl sub_80194F8
movs r0, 0
bl sub_8019E04
ldr r1, _08018FA0
ldr r0, _08018FA4
ldr r4, [r0]
ldr r2, [r4]
movs r0, 0x5C
muls r0, r2
adds r1, 0x4
adds r0, r1
_08018F76:
ldr r0, [r0]
ldr r2, [r4, 0x28]
adds r3, r4, 0
adds r3, 0x34
adds r1, r4, 0
adds r1, 0x74
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
adds r1, r4, 0
adds r1, 0xE4
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _080194E8
.align 2, 0
_08018FA0: .4byte gUnknown_80D5EC8
_08018FA4: .4byte gUnknown_203B210
_08018FA8:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _08018FCC
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x58
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08018FCC: .4byte gUnknown_80D5EC8
_08018FD0:
ldr r1, [r4]
movs r0, 0x4
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _08018FF4
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x8
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
ldr r3, _08018FF8
b _08019456
.align 2, 0
_08018FF4: .4byte gUnknown_80D5EC8
_08018FF8: .4byte 0x0000030d
_08018FFC:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _08019020
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x30
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019020: .4byte gUnknown_80D5EC8
_08019024:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0xC]
movs r0, 0x1
bl sub_8019E04
ldr r1, _08019048
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x34
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019048: .4byte gUnknown_80D5EC8
_0801904C:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
bl sub_8019E04
ldr r1, _0801906C
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x38
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_0801906C: .4byte gUnknown_80D5EC8
_08019070:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
bl sub_8019E04
ldr r1, _08019090
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x3C
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019090: .4byte gUnknown_80D5EC8
_08019094:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
bl sub_8019E04
ldr r1, _080190B4
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x40
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_080190B4: .4byte gUnknown_80D5EC8
_080190B8:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
bl sub_8019E04
ldr r1, _080190D8
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x44
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_080190D8: .4byte gUnknown_80D5EC8
_080190DC:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _08019100
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x48
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019100: .4byte gUnknown_80D5EC8
_08019104:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0xC]
movs r0, 0x1
bl sub_8019E04
ldr r1, _08019128
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x4C
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019128: .4byte gUnknown_80D5EC8
_0801912C:
ldr r0, _0801915C
ldr r1, [r4]
adds r1, 0x1C
movs r2, 0
bl sub_8090E14
ldr r1, [r4]
movs r0, 0x18
str r0, [r1, 0xC]
movs r0, 0x1
bl sub_8019E04
ldr r1, _08019160
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x50
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_0801915C: .4byte gUnknown_202DE58
_08019160: .4byte gUnknown_80D5EC8
_08019164:
ldr r1, [r4]
movs r0, 0x18
str r0, [r1, 0xC]
movs r0, 0x1
bl sub_8019E04
ldr r1, _08019188
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x54
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019188: .4byte gUnknown_80D5EC8
_0801918C:
ldr r1, [r4]
movs r0, 0x12
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _080191B0
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0xC
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_080191B0: .4byte gUnknown_80D5EC8
_080191B4:
ldr r1, [r4]
movs r0, 0x13
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _080191D8
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x10
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_080191D8: .4byte gUnknown_80D5EC8
_080191DC:
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080191EC
movs r0, 0x3
bl sub_8019E40
b _080191F2
_080191EC:
movs r0, 0x3
bl sub_801A20C
_080191F2:
movs r0, 0
bl sub_801AD34
b _08019378
_080191FA:
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _0801920A
movs r0, 0x1
bl sub_8019FCC
b _08019210
_0801920A:
movs r0, 0x1
bl sub_801A398
_08019210:
movs r0, 0
bl sub_801AD34
b _08019378
_08019218:
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08019226
bl sub_801A0D8
b _0801922A
_08019226:
bl sub_801A4A4
_0801922A:
movs r0, 0
bl sub_801AD34
movs r0, 0x1
bl sub_8016C40
bl sub_80195C0
ldr r0, _08019250
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x84
adds r1, r2, 0
adds r1, 0x34
adds r3, r2, 0
adds r3, 0x74
ldr r2, [r2, 0x30]
b _080193A0
.align 2, 0
_08019250: .4byte gUnknown_203B210
_08019254:
bl sub_8019700
ldr r0, _08019284
ldr r4, _08019288
ldr r1, [r4]
adds r1, 0x1C
movs r2, 0
bl sub_8090E14
ldr r1, _0801928C
ldr r0, [r4]
ldr r0, [r0, 0x10]
str r0, [r1]
movs r0, 0
bl sub_8019E04
ldr r1, _08019290
ldr r4, [r4]
ldr r2, [r4]
movs r0, 0x5C
muls r0, r2
adds r1, 0x14
b _0801948C
.align 2, 0
_08019284: .4byte gUnknown_202DE58
_08019288: .4byte gUnknown_203B210
_0801928C: .4byte gUnknown_202DE30
_08019290: .4byte gUnknown_80D5EC8
_08019294:
bl sub_8019D8C
cmp r0, 0
bne _080192C0
ldr r0, _080192AC
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080192B0
bl sub_801A010
b _080192B4
.align 2, 0
_080192AC: .4byte gUnknown_203B210
_080192B0:
bl sub_801A3DC
_080192B4:
ldr r0, _080192BC
ldr r1, [r0]
movs r0, 0xB
b _080192F2
.align 2, 0
_080192BC: .4byte gUnknown_203B210
_080192C0:
bl sub_8090A34
cmp r0, 0x13
ble _080192EC
ldr r0, _080192D8
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080192DC
bl sub_801A010
b _080192E0
.align 2, 0
_080192D8: .4byte gUnknown_203B210
_080192DC:
bl sub_801A3DC
_080192E0:
ldr r0, _080192E8
ldr r1, [r0]
movs r0, 0x1
b _080192F2
.align 2, 0
_080192E8: .4byte gUnknown_203B210
_080192EC:
ldr r0, _0801930C
ldr r1, [r0]
movs r0, 0x10
_080192F2:
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r2, _08019310
ldr r0, _0801930C
ldr r1, [r0]
ldr r3, [r1]
movs r0, 0x5C
muls r0, r3
adds r2, 0x18
b _0801944C
.align 2, 0
_0801930C: .4byte gUnknown_203B210
_08019310: .4byte gUnknown_80D5EC8
_08019314:
ldr r1, [r4]
movs r0, 0x1A
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _08019338
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x1C
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019338: .4byte gUnknown_80D5EC8
_0801933C:
ldr r1, [r4]
movs r0, 0x1B
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _08019360
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x20
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
b _08019454
.align 2, 0
_08019360: .4byte gUnknown_80D5EC8
_08019364:
movs r0, 0x4
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08019378
_08019372:
movs r0, 0x1
bl sub_801A8D0
_08019378:
movs r0, 0x1
bl sub_8016C40
b _080194E8
_08019380:
bl sub_801A9E0
movs r0, 0x1
bl sub_8016C40
bl sub_8019660
ldr r0, _080193B0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x84
adds r1, r2, 0
adds r1, 0x34
adds r3, r2, 0
adds r3, 0x74
ldr r2, [r2, 0x2C]
_080193A0:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _080194E8
.align 2, 0
_080193B0: .4byte gUnknown_203B210
_080193B4:
bl sub_8019700
ldr r0, _080193E4
ldr r4, _080193E8
ldr r1, [r4]
adds r1, 0x1C
movs r2, 0
bl sub_8090E14
ldr r1, _080193EC
ldr r0, [r4]
ldr r0, [r0, 0x10]
str r0, [r1]
movs r0, 0
bl sub_8019E04
ldr r1, _080193F0
ldr r4, [r4]
ldr r2, [r4]
movs r0, 0x5C
muls r0, r2
adds r1, 0x24
b _0801948C
.align 2, 0
_080193E4: .4byte gUnknown_202DE58
_080193E8: .4byte gUnknown_203B210
_080193EC: .4byte gUnknown_202DE30
_080193F0: .4byte gUnknown_80D5EC8
_080193F4:
ldr r0, [r4]
adds r0, 0x1C
bl sub_801B3C0
b _080194E8
_080193FE:
bl sub_8090A34
cmp r0, 0
beq _08019418
ldr r0, _08019424
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r1, [r0]
ldr r0, _08019428
cmp r1, r0
ble _08019430
_08019418:
bl sub_801A928
ldr r0, _0801942C
ldr r1, [r0]
movs r0, 0x1
b _08019436
.align 2, 0
_08019424: .4byte gUnknown_203B460
_08019428: .4byte 0x0001869e
_0801942C: .4byte gUnknown_203B210
_08019430:
ldr r0, _08019460
ldr r1, [r0]
movs r0, 0x18
_08019436:
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r2, _08019464
ldr r0, _08019460
ldr r1, [r0]
ldr r3, [r1]
movs r0, 0x5C
muls r0, r3
adds r2, 0x2C
_0801944C:
adds r0, r2
ldr r0, [r0]
adds r1, 0xE4
ldr r2, [r1]
_08019454:
ldr r3, _08019468
_08019456:
movs r1, 0
bl sub_80141B4
b _080194E8
.align 2, 0
_08019460: .4byte gUnknown_203B210
_08019464: .4byte gUnknown_80D5EC8
_08019468: .4byte 0x0000010d
_0801946C:
bl sub_8019700
ldr r1, _080194B4
ldr r4, _080194B8
ldr r0, [r4]
ldr r0, [r0, 0x18]
str r0, [r1]
movs r0, 0
bl sub_8019E04
ldr r1, _080194BC
ldr r4, [r4]
ldr r2, [r4]
movs r0, 0x5C
muls r0, r2
adds r1, 0x28
_0801948C:
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x34
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
adds r4, 0xE4
ldr r1, [r4]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x5
bl sub_8014248
b _080194E8
.align 2, 0
_080194B4: .4byte gUnknown_202DE30
_080194B8: .4byte gUnknown_203B210
_080194BC: .4byte gUnknown_80D5EC8
_080194C0:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0xC]
movs r0, 0
bl sub_8019E04
ldr r1, _080194F0
ldr r2, [r4]
ldr r3, [r2]
movs r0, 0x5C
muls r0, r3
adds r1, 0x2C
adds r0, r1
ldr r0, [r0]
adds r2, 0xE4
ldr r2, [r2]
ldr r3, _080194F4
movs r1, 0
bl sub_80141B4
_080194E8:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080194F0: .4byte gUnknown_80D5EC8
_080194F4: .4byte 0x0000010d
thumb_func_end sub_8018E88
thumb_func_start sub_80194F8
sub_80194F8:
push {r4-r7,lr}
ldr r4, _08019580
ldr r0, [r4]
adds r0, 0x74
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08019584
ldr r0, [r0]
str r0, [r3, 0x34]
movs r0, 0x2
str r0, [r3, 0x38]
movs r1, 0x1
ldr r0, _08019588
ldr r0, [r0]
str r0, [r3, 0x3C]
movs r0, 0x3
str r0, [r3, 0x40]
ldr r0, _0801958C
str r0, [r3, 0x44]
movs r0, 0x4
str r0, [r3, 0x48]
ldr r0, _08019590
ldr r0, [r0]
str r0, [r3, 0x4C]
movs r0, 0x7
str r0, [r3, 0x50]
ldr r0, _08019594
ldr r0, [r0]
str r0, [r3, 0x54]
str r1, [r3, 0x58]
movs r6, 0x5
str r2, [r3, 0x5C]
str r1, [r3, 0x60]
movs r5, 0
mov r12, r3
adds r3, 0x38
mov r2, r12
adds r2, 0x74
_0801954C:
ldrh r0, [r2]
cmp r0, 0
bne _0801955C
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x28]
cmp r1, r0
beq _080195BA
_0801955C:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _0801954C
movs r5, 0
cmp r5, r6
bge _080195BA
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x74
ldrh r0, [r0]
cmp r0, 0
bne _08019598
ldr r0, [r1, 0x38]
str r0, [r1, 0x28]
b _080195BA
.align 2, 0
_08019580: .4byte gUnknown_203B210
_08019584: .4byte gUnknown_80D4978
_08019588: .4byte gUnknown_80D4984
_0801958C: .4byte gUnknown_80DB8A0
_08019590: .4byte gUnknown_80D4970
_08019594: .4byte gUnknown_80D4934
_08019598:
adds r5, 0x1
cmp r5, r6
bge _080195BA
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x74
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08019598
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x38
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x28]
_080195BA:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80194F8
thumb_func_start sub_80195C0
sub_80195C0:
push {r4-r7,lr}
ldr r4, _0801962C
ldr r0, [r4]
adds r0, 0x74
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08019630
ldr r0, [r0]
str r0, [r3, 0x34]
movs r0, 0x2
str r0, [r3, 0x38]
movs r1, 0x1
ldr r0, _08019634
ldr r0, [r0]
str r0, [r3, 0x3C]
movs r0, 0x7
str r0, [r3, 0x40]
movs r6, 0x2
str r2, [r3, 0x44]
str r1, [r3, 0x48]
movs r5, 0
mov r12, r3
adds r3, 0x38
mov r2, r12
adds r2, 0x74
_080195FA:
ldrh r0, [r2]
cmp r0, 0
bne _0801960A
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x30]
cmp r1, r0
beq _0801965A
_0801960A:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _080195FA
movs r5, 0
cmp r5, r6
bge _0801965A
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x74
ldrh r0, [r0]
cmp r0, 0
bne _08019638
ldr r0, [r1, 0x38]
str r0, [r1, 0x30]
b _0801965A
.align 2, 0
_0801962C: .4byte gUnknown_203B210
_08019630: .4byte gUnknown_80D4978
_08019634: .4byte gUnknown_80D4970
_08019638:
adds r5, 0x1
cmp r5, r6
bge _0801965A
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x74
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08019638
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x38
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x30]
_0801965A:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80195C0
thumb_func_start sub_8019660
sub_8019660:
push {r4-r7,lr}
ldr r4, _080196CC
ldr r0, [r4]
adds r0, 0x74
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _080196D0
ldr r0, [r0]
str r0, [r3, 0x34]
movs r0, 0x3
str r0, [r3, 0x38]
movs r1, 0x1
ldr r0, _080196D4
ldr r0, [r0]
str r0, [r3, 0x3C]
movs r0, 0x7
str r0, [r3, 0x40]
movs r6, 0x2
str r2, [r3, 0x44]
str r1, [r3, 0x48]
movs r5, 0
mov r12, r3
adds r3, 0x38
mov r2, r12
adds r2, 0x74
_0801969A:
ldrh r0, [r2]
cmp r0, 0
bne _080196AA
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x2C]
cmp r1, r0
beq _080196FA
_080196AA:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _0801969A
movs r5, 0
cmp r5, r6
bge _080196FA
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x74
ldrh r0, [r0]
cmp r0, 0
bne _080196D8
ldr r0, [r1, 0x38]
str r0, [r1, 0x2C]
b _080196FA
.align 2, 0
_080196CC: .4byte gUnknown_203B210
_080196D0: .4byte gUnknown_80D4984
_080196D4: .4byte gUnknown_80D4970
_080196D8:
adds r5, 0x1
cmp r5, r6
bge _080196FA
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x74
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _080196D8
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x38
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x2C]
_080196FA:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8019660
thumb_func_start sub_8019700
sub_8019700:
ldr r0, _08019724
ldr r1, [r0]
movs r3, 0
ldr r0, _08019728
ldr r0, [r0]
str r0, [r1, 0x34]
movs r0, 0x5
str r0, [r1, 0x38]
movs r2, 0x1
ldr r0, _0801972C
ldr r0, [r0]
str r0, [r1, 0x3C]
movs r0, 0x6
str r0, [r1, 0x40]
str r3, [r1, 0x44]
str r2, [r1, 0x48]
bx lr
.align 2, 0
_08019724: .4byte gUnknown_203B210
_08019728: .4byte gUnknown_80D4920
_0801972C: .4byte gUnknown_80D4928
thumb_func_end sub_8019700
thumb_func_start sub_8019730
sub_8019730:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
beq _08019740
b _0801984A
_08019740:
ldr r1, [sp]
cmp r1, 0x1
beq _0801974C
ldr r0, _08019760
ldr r0, [r0]
str r1, [r0, 0x28]
_0801974C:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x6
bls _08019756
b _0801984A
_08019756:
lsls r0, 2
ldr r1, _08019764
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08019760: .4byte gUnknown_203B210
_08019764: .4byte _08019768
.align 2, 0
_08019768:
.4byte _08019844
.4byte _08019784
.4byte _080197AC
.4byte _080197E4
.4byte _0801984A
.4byte _0801984A
.4byte _0801983C
_08019784:
bl sub_8019D8C
cmp r0, 0
bne _08019794
movs r0, 0x5
bl sub_8018D18
b _0801984A
_08019794:
bl sub_8090A34
cmp r0, 0x13
ble _080197A4
movs r0, 0xA
bl sub_8018D18
b _0801984A
_080197A4:
movs r0, 0xF
bl sub_8018D18
b _0801984A
_080197AC:
bl sub_8090A34
cmp r0, 0
beq _080197EC
ldr r0, _080197D8
ldr r0, [r0]
ldr r0, [r0, 0x14]
cmp r0, 0
beq _080197FE
ldr r0, _080197DC
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r1, [r0]
ldr r0, _080197E0
cmp r1, r0
bgt _08019822
movs r0, 0x17
bl sub_8018D18
b _0801984A
.align 2, 0
_080197D8: .4byte gUnknown_203B210
_080197DC: .4byte gUnknown_203B460
_080197E0: .4byte 0x0001869e
_080197E4:
bl sub_8090A34
cmp r0, 0
bne _080197F4
_080197EC:
movs r0, 0x9
bl sub_8018D18
b _0801984A
_080197F4:
ldr r0, _08019808
ldr r1, [r0]
ldr r0, [r1, 0x14]
cmp r0, 0
bne _0801980C
_080197FE:
movs r0, 0x8
bl sub_8018D18
b _0801984A
.align 2, 0
_08019808: .4byte gUnknown_203B210
_0801980C:
ldr r0, _0801982C
ldr r0, [r0]
movs r2, 0x98
lsls r2, 2
adds r0, r2
ldr r1, [r1, 0x18]
ldr r0, [r0]
adds r1, r0
ldr r0, _08019830
cmp r1, r0
ble _08019834
_08019822:
movs r0, 0x7
bl sub_8018D18
b _0801984A
.align 2, 0
_0801982C: .4byte gUnknown_203B460
_08019830: .4byte 0x0001869f
_08019834:
movs r0, 0x1F
bl sub_8018D18
b _0801984A
_0801983C:
movs r0, 0x2
bl sub_8018D18
b _0801984A
_08019844:
movs r0, 0x3
bl sub_8018D18
_0801984A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8019730
thumb_func_start sub_8019850
sub_8019850:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080198DE
ldr r0, [sp]
cmp r0, 0x5
beq _08019874
cmp r0, 0x5
bgt _0801986E
cmp r0, 0x1
beq _080198D8
b _080198DE
_0801986E:
cmp r0, 0x6
beq _080198D8
b _080198DE
_08019874:
ldr r4, _080198A8
ldr r0, [r4]
ldr r0, [r0, 0x10]
negs r0, r0
bl sub_80913A0
ldr r1, [r4]
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _080198AC
adds r0, r1, 0
adds r0, 0x20
ldrb r0, [r0]
bl sub_809185C
bl sub_8091274
ldr r0, [r4]
adds r0, 0x20
ldrb r0, [r0]
bl sub_8091840
bl sub_8091874
b _080198C8
.align 2, 0
_080198A8: .4byte gUnknown_203B210
_080198AC:
adds r0, r1, 0
adds r0, 0x21
ldrb r0, [r0]
bl sub_8091A90
bl sub_8091274
ldr r0, [r4]
adds r0, 0x21
ldrb r0, [r0]
bl sub_8091A74
bl sub_8091AA8
_080198C8:
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
movs r0, 0x11
bl sub_8018D18
b _080198DE
_080198D8:
movs r0, 0x10
bl sub_8018D18
_080198DE:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8019850
thumb_func_start sub_80198E8
sub_80198E8:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801993A
ldr r0, [sp]
cmp r0, 0x5
beq _0801990C
cmp r0, 0x5
bgt _08019906
cmp r0, 0x1
beq _08019934
b _0801993A
_08019906:
cmp r0, 0x6
beq _08019934
b _0801993A
_0801990C:
ldr r4, _08019930
ldr r0, [r4]
ldr r0, [r0, 0x10]
bl sub_80913A0
ldr r0, [r4]
ldr r0, [r0, 0x24]
bl sub_80911F8
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
movs r0, 0x19
bl sub_8018D18
b _0801993A
.align 2, 0
_08019930: .4byte gUnknown_203B210
_08019934:
movs r0, 0x18
bl sub_8018D18
_0801993A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80198E8
thumb_func_start sub_8019944
sub_8019944:
push {r4,r5,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080199C2
ldr r0, [sp]
cmp r0, 0x5
beq _08019968
cmp r0, 0x5
bgt _08019962
cmp r0, 0x1
beq _080199BC
b _080199C2
_08019962:
cmp r0, 0x6
beq _080199BC
b _080199C2
_08019968:
movs r4, 0
ldr r5, _080199B4
_0801996C:
lsls r1, r4, 2
ldr r0, [r5]
adds r2, r0, r1
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0801998E
ldrb r0, [r2, 0x2]
bl sub_80914E4
lsls r0, 24
cmp r0, 0
beq _0801998E
adds r0, r4, 0
bl sub_8091234
_0801998E:
adds r4, 0x1
cmp r4, 0x13
ble _0801996C
bl sub_80910B4
ldr r0, _080199B8
ldr r0, [r0]
ldr r0, [r0, 0x18]
bl sub_80913A0
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
movs r0, 0x20
bl sub_8018D18
b _080199C2
.align 2, 0
_080199B4: .4byte gUnknown_203B460
_080199B8: .4byte gUnknown_203B210
_080199BC:
movs r0, 0x1
bl sub_8018D18
_080199C2:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8019944
thumb_func_start sub_80199CC
sub_80199CC:
push {r4,r5,lr}
ldr r0, _080199E0
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080199E4
movs r0, 0x1
bl sub_8019EDC
b _080199EA
.align 2, 0
_080199E0: .4byte gUnknown_203B210
_080199E4:
movs r0, 0x1
bl sub_801A2A8
_080199EA:
cmp r0, 0x2
beq _08019AD4
cmp r0, 0x2
bhi _080199FA
cmp r0, 0x1
bne _080199F8
b _08019AF4
_080199F8:
b _08019B00
_080199FA:
cmp r0, 0x3
beq _08019A04
cmp r0, 0x4
beq _08019A6C
b _08019B00
_08019A04:
ldr r4, _08019A24
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08019A28
bl sub_8019FB0
ldr r1, [r4]
adds r1, 0x20
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x20
ldrb r0, [r0]
bl sub_809185C
b _08019A3C
.align 2, 0
_08019A24: .4byte gUnknown_203B210
_08019A28:
bl sub_801A37C
ldr r1, [r4]
adds r1, 0x21
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x21
ldrb r0, [r0]
bl sub_8091A90
_08019A3C:
adds r5, r0, 0
ldr r4, _08019A68
ldr r0, [r4]
adds r0, 0x1C
ldrb r1, [r5]
movs r2, 0
bl sub_8090A8C
ldr r1, [r4]
ldrb r0, [r5, 0x1]
strb r0, [r1, 0x1D]
ldr r0, [r4]
adds r0, 0x1C
bl sub_8090C7C
ldr r1, [r4]
str r0, [r1, 0x10]
movs r0, 0x14
bl sub_8018D18
b _08019B00
.align 2, 0
_08019A68: .4byte gUnknown_203B210
_08019A6C:
ldr r4, _08019A8C
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08019A90
bl sub_8019FB0
ldr r1, [r4]
adds r1, 0x20
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x20
ldrb r0, [r0]
bl sub_809185C
b _08019AA4
.align 2, 0
_08019A8C: .4byte gUnknown_203B210
_08019A90:
bl sub_801A37C
ldr r1, [r4]
adds r1, 0x21
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x21
ldrb r0, [r0]
bl sub_8091A90
_08019AA4:
adds r5, r0, 0
ldr r4, _08019AD0
ldr r0, [r4]
adds r0, 0x1C
ldrb r1, [r5]
movs r2, 0
bl sub_8090A8C
ldr r1, [r4]
ldrb r0, [r5, 0x1]
strb r0, [r1, 0x1D]
ldr r0, [r4]
adds r0, 0x1C
bl sub_8090C7C
ldr r1, [r4]
str r0, [r1, 0x10]
movs r0, 0x15
bl sub_8018D18
b _08019B00
.align 2, 0
_08019AD0: .4byte gUnknown_203B210
_08019AD4:
ldr r0, _08019AE4
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08019AE8
bl sub_801A010
b _08019AEC
.align 2, 0
_08019AE4: .4byte gUnknown_203B210
_08019AE8:
bl sub_801A3DC
_08019AEC:
movs r0, 0x1
bl sub_8018D18
b _08019B00
_08019AF4:
movs r0, 0
bl sub_801AD34
movs r0, 0x1
bl sub_8016C40
_08019B00:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80199CC
thumb_func_start sub_8019B08
sub_8019B08:
push {r4,lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x4
bhi _08019BB0
lsls r0, 2
ldr r1, _08019B20
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08019B20: .4byte _08019B24
.align 2, 0
_08019B24:
.4byte _08019BB6
.4byte _08019BB0
.4byte _08019BA4
.4byte _08019B38
.4byte _08019B6C
_08019B38:
bl sub_801A8AC
ldr r4, _08019B64
ldr r2, [r4]
str r0, [r2, 0x24]
ldr r1, _08019B68
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
adds r2, 0x1C
adds r0, r2, 0
bl sub_8090CCC
ldr r1, [r4]
str r0, [r1, 0x10]
movs r0, 0x1C
bl sub_8018D18
b _08019BB6
.align 2, 0
_08019B64: .4byte gUnknown_203B210
_08019B68: .4byte gUnknown_203B460
_08019B6C:
bl sub_801A8AC
ldr r4, _08019B9C
ldr r2, [r4]
str r0, [r2, 0x24]
ldr r1, _08019BA0
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
adds r2, 0x1C
adds r0, r2, 0
bl sub_8090CCC
ldr r1, [r4]
str r0, [r1, 0x10]
movs r0, 0
bl sub_8099690
movs r0, 0x1D
bl sub_8018D18
b _08019BB6
.align 2, 0
_08019B9C: .4byte gUnknown_203B210
_08019BA0: .4byte gUnknown_203B460
_08019BA4:
bl sub_801A928
movs r0, 0x1
bl sub_8018D18
b _08019BB6
_08019BB0:
movs r0, 0x1
bl sub_8016C40
_08019BB6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8019B08
thumb_func_start sub_8019BBC
sub_8019BBC:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r0, _08019BD8
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08019BDC
movs r0, 0
bl sub_8019EDC
b _08019BE2
.align 2, 0
_08019BD8: .4byte gUnknown_203B210
_08019BDC:
movs r0, 0
bl sub_801A2A8
_08019BE2:
ldr r4, _08019C18
ldr r0, [r4]
adds r0, 0x84
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08019C06
ldr r0, [r4]
adds r0, 0x84
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08019C06
ldr r0, [r4]
str r1, [r0, 0x30]
_08019C06:
ldr r0, [sp]
cmp r0, 0x2
beq _08019C22
cmp r0, 0x2
bgt _08019C1C
cmp r0, 0x1
beq _08019C68
b _08019C6E
.align 2, 0
_08019C18: .4byte gUnknown_203B210
_08019C1C:
cmp r0, 0x7
beq _08019C60
b _08019C6E
_08019C22:
ldr r0, _08019C3C
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r1, [r0]
cmp r1, 0
bne _08019C40
movs r0, 0x6
bl sub_8018D18
b _08019C6E
.align 2, 0
_08019C3C: .4byte gUnknown_203B460
_08019C40:
ldr r0, _08019C54
ldr r0, [r0]
ldr r0, [r0, 0x10]
cmp r0, r1
ble _08019C58
movs r0, 0xC
bl sub_8018D18
b _08019C6E
.align 2, 0
_08019C54: .4byte gUnknown_203B210
_08019C58:
movs r0, 0x16
bl sub_8018D18
b _08019C6E
_08019C60:
movs r0, 0x15
bl sub_8018D18
b _08019C6E
_08019C68:
movs r0, 0x13
bl sub_8018D18
_08019C6E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8019BBC
thumb_func_start sub_8019C78
sub_8019C78:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _08019CB8
ldr r0, [r4]
adds r0, 0x84
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08019CA8
ldr r0, [r4]
adds r0, 0x84
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08019CA8
ldr r0, [r4]
str r1, [r0, 0x2C]
_08019CA8:
ldr r0, [sp]
cmp r0, 0x3
beq _08019CC2
cmp r0, 0x3
bgt _08019CBC
cmp r0, 0x1
beq _08019D22
b _08019D28
.align 2, 0
_08019CB8: .4byte gUnknown_203B210
_08019CBC:
cmp r0, 0x7
beq _08019D14
b _08019D28
_08019CC2:
movs r0, 0
bl sub_8099690
ldr r4, _08019CE0
ldr r0, [r4]
ldrb r0, [r0, 0x1E]
bl sub_80914E4
lsls r0, 24
cmp r0, 0
bne _08019CE4
movs r0, 0xD
bl sub_8018D18
b _08019D28
.align 2, 0
_08019CE0: .4byte gUnknown_203B210
_08019CE4:
ldr r1, [r4]
ldr r0, _08019D04
ldr r0, [r0]
movs r2, 0x98
lsls r2, 2
adds r0, r2
ldr r1, [r1, 0x10]
ldr r0, [r0]
adds r1, r0
ldr r0, _08019D08
cmp r1, r0
ble _08019D0C
movs r0, 0xE
bl sub_8018D18
b _08019D28
.align 2, 0
_08019D04: .4byte gUnknown_203B460
_08019D08: .4byte 0x0001869f
_08019D0C:
movs r0, 0x1E
bl sub_8018D18
b _08019D28
_08019D14:
movs r0, 0
bl sub_8099690
movs r0, 0x1D
bl sub_8018D18
b _08019D28
_08019D22:
movs r0, 0x1B
bl sub_8018D18
_08019D28:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8019C78
thumb_func_start sub_8019D30
sub_8019D30:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08019D48
cmp r0, 0x3
bhi _08019D48
bl sub_801B450
movs r0, 0x13
bl sub_8018D18
_08019D48:
pop {r0}
bx r0
thumb_func_end sub_8019D30
thumb_func_start sub_8019D4C
sub_8019D4C:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08019D64
cmp r0, 0x3
bhi _08019D64
bl sub_801B450
movs r0, 0x1B
bl sub_8018D18
_08019D64:
pop {r0}
bx r0
thumb_func_end sub_8019D4C
thumb_func_start sub_8019D68
sub_8019D68:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08019D80
ldr r0, _08019D88
ldr r0, [r0]
ldr r0, [r0, 0xC]
bl sub_8018D18
_08019D80:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08019D88: .4byte gUnknown_203B210
thumb_func_end sub_8019D68
thumb_func_start sub_8019D8C
sub_8019D8C:
push {lr}
ldr r0, _08019DA0
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
bne _08019DA4
bl sub_8091A48
b _08019DA8
.align 2, 0
_08019DA0: .4byte gUnknown_203B210
_08019DA4:
bl sub_8091814
_08019DA8:
pop {r1}
bx r1
thumb_func_end sub_8019D8C
thumb_func_start sub_8019DAC
sub_8019DAC:
push {r4,r5,lr}
ldr r0, _08019DFC
ldr r1, [r0]
movs r0, 0
str r0, [r1, 0x14]
str r0, [r1, 0x18]
movs r5, 0
_08019DBA:
ldr r0, _08019E00
lsls r1, r5, 2
ldr r0, [r0]
adds r4, r0, r1
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08019DEE
ldrb r0, [r4, 0x2]
bl sub_80914E4
lsls r0, 24
cmp r0, 0
beq _08019DEE
adds r0, r4, 0
bl sub_8090CCC
ldr r1, _08019DFC
ldr r2, [r1]
ldr r1, [r2, 0x18]
adds r1, r0
str r1, [r2, 0x18]
ldr r0, [r2, 0x14]
adds r0, 0x1
str r0, [r2, 0x14]
_08019DEE:
adds r5, 0x1
cmp r5, 0x13
ble _08019DBA
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08019DFC: .4byte gUnknown_203B210
_08019E00: .4byte gUnknown_203B460
thumb_func_end sub_8019DAC
thumb_func_start sub_8019E04
sub_8019E04:
push {lr}
adds r2, r0, 0
ldr r0, _08019E20
ldr r1, [r0]
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _08019E2A
cmp r2, 0x1
bne _08019E24
adds r0, r1, 0
adds r0, 0xE0
strb r2, [r0]
b _08019E3A
.align 2, 0
_08019E20: .4byte gUnknown_203B210
_08019E24:
adds r1, 0xE0
movs r0, 0
b _08019E38
_08019E2A:
cmp r2, 0x1
bne _08019E34
adds r1, 0xE0
movs r0, 0x7
b _08019E38
_08019E34:
adds r1, 0xE0
movs r0, 0x6
_08019E38:
strb r0, [r1]
_08019E3A:
pop {r0}
bx r0
thumb_func_end sub_8019E04
thumb_func_start sub_8019E40
sub_8019E40:
push {r4-r6,lr}
adds r6, r0, 0
bl sub_8091814
cmp r0, 0
beq _08019ED4
ldr r5, _08019EC8
movs r0, 0xA0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r6, [r0, 0x34]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x3C
adds r1, r0, r1
str r1, [r0, 0x38]
adds r0, 0x3C
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _08019ECC
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r5]
ldr r1, [r0, 0x38]
adds r0, 0x9C
str r0, [r1, 0x14]
bl sub_8004914
ldr r0, [r5]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
bl sub_8091814
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0xA
adds r3, r6, 0
bl sub_8013818
ldr r0, [r5]
ldr r1, _08019ED0
ldrh r1, [r1]
strh r1, [r0, 0x18]
bl sub_8013984
bl sub_801A064
bl sub_801A0D8
movs r0, 0x1
b _08019ED6
.align 2, 0
_08019EC8: .4byte gUnknown_203B214
_08019ECC: .4byte gUnknown_80DB8CC
_08019ED0: .4byte gUnknown_203B218
_08019ED4:
movs r0, 0
_08019ED6:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8019E40
thumb_func_start sub_8019EDC
sub_8019EDC:
push {lr}
sub sp, 0x4
lsls r0, 24
cmp r0, 0
bne _08019EF8
ldr r0, _08019EF4
ldr r0, [r0]
bl sub_8013660
movs r0, 0
b _08019FAA
.align 2, 0
_08019EF4: .4byte gUnknown_203B214
_08019EF8:
ldr r0, _08019F10
ldr r0, [r0]
bl GetKeyPress
cmp r0, 0x2
beq _08019F1A
cmp r0, 0x2
bgt _08019F14
cmp r0, 0x1
beq _08019F24
b _08019F88
.align 2, 0
_08019F10: .4byte gUnknown_203B214
_08019F14:
cmp r0, 0x4
beq _08019F7E
b _08019F88
_08019F1A:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08019FAA
_08019F24:
bl sub_8019FB0
lsls r0, 24
lsrs r0, 24
bl sub_809185C
ldrb r2, [r0]
lsls r2, 16
ldr r3, _08019F68
ldr r1, [sp]
ands r1, r3
orrs r1, r2
str r1, [sp]
ldrb r0, [r0, 0x1]
lsls r0, 8
ldr r2, _08019F6C
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
bl sub_8090C7C
ldr r1, _08019F70
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
cmp r0, r1
ble _08019F74
movs r0, 0x2
bl sub_80119D4
b _08019F7A
.align 2, 0
_08019F68: .4byte 0xff00ffff
_08019F6C: .4byte 0xffff00ff
_08019F70: .4byte gUnknown_203B460
_08019F74:
movs r0, 0
bl sub_80119D4
_08019F7A:
movs r0, 0x3
b _08019FAA
_08019F7E:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _08019FAA
_08019F88:
ldr r0, _08019F9C
ldr r0, [r0]
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _08019FA0
movs r0, 0
b _08019FAA
.align 2, 0
_08019F9C: .4byte gUnknown_203B214
_08019FA0:
bl sub_801A064
bl sub_801A0D8
movs r0, 0x1
_08019FAA:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end sub_8019EDC
thumb_func_start sub_8019FB0
sub_8019FB0:
ldr r0, _08019FC8
ldr r1, [r0]
movs r0, 0x1E
ldrsh r2, [r1, r0]
movs r3, 0x1C
ldrsh r0, [r1, r3]
muls r0, r2
ldrb r1, [r1, 0x18]
adds r0, r1
lsls r0, 24
lsrs r0, 24
bx lr
.align 2, 0
_08019FC8: .4byte gUnknown_203B214
thumb_func_end sub_8019FB0
thumb_func_start sub_8019FCC
sub_8019FCC:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0801A00C
ldr r0, [r5]
adds r0, 0x3C
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_8091814
adds r1, r0, 0
ldr r0, [r5]
strh r1, [r0, 0x22]
bl sub_8013984
bl sub_801A064
bl sub_801A0D8
cmp r4, 0
beq _0801A006
ldr r0, [r5]
bl AddMenuCursorSprite
_0801A006:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801A00C: .4byte gUnknown_203B214
thumb_func_end sub_8019FCC
thumb_func_start sub_801A010
sub_801A010:
push {r4,r5,lr}
ldr r4, _0801A058
ldr r2, [r4]
cmp r2, 0
beq _0801A050
ldr r1, _0801A05C
ldrh r0, [r2, 0x18]
strh r0, [r1]
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _0801A060
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801A050:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801A058: .4byte gUnknown_203B214
_0801A05C: .4byte gUnknown_203B218
_0801A060: .4byte gUnknown_80DB8B4
thumb_func_end sub_801A010
thumb_func_start sub_801A064
sub_801A064:
push {r4,lr}
ldr r4, _0801A0D4
ldr r0, [r4]
ldrh r1, [r0, 0x20]
adds r0, 0x9C
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x1E]
adds r0, 0x9D
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9E
movs r1, 0xA
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9F
strb r2, [r0]
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x34]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x34]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x4C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801A0D4: .4byte gUnknown_203B214
thumb_func_end sub_801A064
thumb_func_start sub_801A0D8
sub_801A0D8:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xB4
ldr r4, _0801A1A4
ldr r0, [r4]
ldr r0, [r0, 0x34]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r1, [r4]
movs r2, 0x1E
ldrsh r0, [r1, r2]
lsls r0, 3
adds r0, 0xA
ldr r2, _0801A1A8
ldr r3, [r1, 0x34]
movs r1, 0
str r1, [sp]
bl xxx_call_draw_string
movs r6, 0
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r6, r0
bge _0801A1EC
adds r7, r4, 0
add r4, sp, 0xB0
mov r9, r6
add r5, sp, 0x54
add r2, sp, 0x60
mov r8, r2
_0801A122:
ldr r0, [r7]
movs r2, 0x1E
ldrsh r1, [r0, r2]
movs r2, 0x1C
ldrsh r0, [r0, r2]
muls r0, r1
adds r0, r6
lsls r0, 24
lsrs r0, 24
bl sub_809185C
ldrb r2, [r0]
lsls r2, 16
ldr r3, _0801A1AC
ldr r1, [r4]
ands r1, r3
orrs r1, r2
str r1, [r4]
ldrb r2, [r0, 0x1]
lsls r2, 8
ldr r0, _0801A1B0
ands r1, r0
orrs r1, r2
ldr r0, _0801A1B4
ands r1, r0
movs r0, 0x3
orrs r1, r0
str r1, [r4]
movs r1, 0x1
str r1, [sp, 0x54]
mov r0, r9
strb r0, [r5, 0x4]
movs r0, 0x58
strh r0, [r5, 0x6]
strb r1, [r5, 0x8]
add r0, sp, 0x4
adds r1, r4, 0
adds r2, r5, 0
bl sub_8090E14
adds r0, r4, 0
bl sub_8090C7C
ldr r1, _0801A1B8
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
cmp r0, r1
bgt _0801A1BC
ldr r0, [r7]
adds r1, r6, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r7]
ldr r3, [r0, 0x34]
mov r0, r9
str r0, [sp]
movs r0, 0x8
add r2, sp, 0x4
bl xxx_call_draw_string
b _0801A1E0
.align 2, 0
_0801A1A4: .4byte gUnknown_203B214
_0801A1A8: .4byte gUnknown_80DB8E4
_0801A1AC: .4byte 0xff00ffff
_0801A1B0: .4byte 0xffff00ff
_0801A1B4: .4byte 0xffffff00
_0801A1B8: .4byte gUnknown_203B460
_0801A1BC:
mov r0, r8
ldr r1, _0801A204
add r2, sp, 0x4
bl sub_800D158
ldr r0, [r7]
adds r1, r6, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r7]
ldr r3, [r0, 0x34]
mov r2, r9
str r2, [sp]
movs r0, 0x8
mov r2, r8
bl xxx_call_draw_string
_0801A1E0:
adds r6, 0x1
ldr r0, [r7]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r6, r0
blt _0801A122
_0801A1EC:
ldr r0, _0801A208
ldr r0, [r0]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0xB4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801A204: .4byte gUnknown_80DB8EC
_0801A208: .4byte gUnknown_203B214
thumb_func_end sub_801A0D8
thumb_func_start sub_801A20C
sub_801A20C:
push {r4-r6,lr}
adds r6, r0, 0
bl sub_8091A48
cmp r0, 0
beq _0801A2A0
ldr r5, _0801A294
movs r0, 0xA0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r6, [r0, 0x34]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x3C
adds r1, r0, r1
str r1, [r0, 0x38]
adds r0, 0x3C
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _0801A298
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r5]
ldr r1, [r0, 0x38]
adds r0, 0x9C
str r0, [r1, 0x14]
bl sub_8004914
ldr r0, [r5]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
bl sub_8091A48
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0xA
adds r3, r6, 0
bl sub_8013818
ldr r0, [r5]
ldr r1, _0801A29C
ldrh r1, [r1]
strh r1, [r0, 0x18]
bl sub_8013984
bl sub_801A430
bl sub_801A4A4
movs r0, 0x1
b _0801A2A2
.align 2, 0
_0801A294: .4byte gUnknown_203B21C
_0801A298: .4byte gUnknown_80DB914
_0801A29C: .4byte gUnknown_203B220
_0801A2A0:
movs r0, 0
_0801A2A2:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801A20C
thumb_func_start sub_801A2A8
sub_801A2A8:
push {lr}
sub sp, 0x4
lsls r0, 24
cmp r0, 0
bne _0801A2C4
ldr r0, _0801A2C0
ldr r0, [r0]
bl sub_8013660
movs r0, 0
b _0801A376
.align 2, 0
_0801A2C0: .4byte gUnknown_203B21C
_0801A2C4:
ldr r0, _0801A2DC
ldr r0, [r0]
bl GetKeyPress
cmp r0, 0x2
beq _0801A2E6
cmp r0, 0x2
bgt _0801A2E0
cmp r0, 0x1
beq _0801A2F0
b _0801A354
.align 2, 0
_0801A2DC: .4byte gUnknown_203B21C
_0801A2E0:
cmp r0, 0x4
beq _0801A34A
b _0801A354
_0801A2E6:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801A376
_0801A2F0:
bl sub_801A37C
lsls r0, 24
lsrs r0, 24
bl sub_8091A90
ldrb r2, [r0]
lsls r2, 16
ldr r3, _0801A334
ldr r1, [sp]
ands r1, r3
orrs r1, r2
str r1, [sp]
ldrb r0, [r0, 0x1]
lsls r0, 8
ldr r2, _0801A338
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
bl sub_8090C7C
ldr r1, _0801A33C
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
cmp r0, r1
ble _0801A340
movs r0, 0x2
bl sub_80119D4
b _0801A346
.align 2, 0
_0801A334: .4byte 0xff00ffff
_0801A338: .4byte 0xffff00ff
_0801A33C: .4byte gUnknown_203B460
_0801A340:
movs r0, 0
bl sub_80119D4
_0801A346:
movs r0, 0x3
b _0801A376
_0801A34A:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0801A376
_0801A354:
ldr r0, _0801A368
ldr r0, [r0]
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801A36C
movs r0, 0
b _0801A376
.align 2, 0
_0801A368: .4byte gUnknown_203B21C
_0801A36C:
bl sub_801A430
bl sub_801A4A4
movs r0, 0x1
_0801A376:
add sp, 0x4
pop {r1}
bx r1
thumb_func_end sub_801A2A8
thumb_func_start sub_801A37C
sub_801A37C:
ldr r0, _0801A394
ldr r1, [r0]
movs r0, 0x1E
ldrsh r2, [r1, r0]
movs r3, 0x1C
ldrsh r0, [r1, r3]
muls r0, r2
ldrb r1, [r1, 0x18]
adds r0, r1
lsls r0, 24
lsrs r0, 24
bx lr
.align 2, 0
_0801A394: .4byte gUnknown_203B21C
thumb_func_end sub_801A37C
thumb_func_start sub_801A398
sub_801A398:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0801A3D8
ldr r0, [r5]
adds r0, 0x3C
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_8091A48
adds r1, r0, 0
ldr r0, [r5]
strh r1, [r0, 0x22]
bl sub_8013984
bl sub_801A430
bl sub_801A4A4
cmp r4, 0
beq _0801A3D2
ldr r0, [r5]
bl AddMenuCursorSprite
_0801A3D2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801A3D8: .4byte gUnknown_203B21C
thumb_func_end sub_801A398
thumb_func_start sub_801A3DC
sub_801A3DC:
push {r4,r5,lr}
ldr r4, _0801A424
ldr r2, [r4]
cmp r2, 0
beq _0801A41C
ldr r1, _0801A428
ldrh r0, [r2, 0x18]
strh r0, [r1]
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _0801A42C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801A41C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801A424: .4byte gUnknown_203B21C
_0801A428: .4byte gUnknown_203B220
_0801A42C: .4byte gUnknown_80DB8FC
thumb_func_end sub_801A3DC
thumb_func_start sub_801A430
sub_801A430:
push {r4,lr}
ldr r4, _0801A4A0
ldr r0, [r4]
ldrh r1, [r0, 0x20]
adds r0, 0x9C
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x1E]
adds r0, 0x9D
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9E
movs r1, 0xA
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9F
strb r2, [r0]
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x34]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x34]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x4C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801A4A0: .4byte gUnknown_203B21C
thumb_func_end sub_801A430
thumb_func_start sub_801A4A4
sub_801A4A4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xB4
ldr r4, _0801A570
ldr r0, [r4]
ldr r0, [r0, 0x34]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r1, [r4]
movs r2, 0x1E
ldrsh r0, [r1, r2]
lsls r0, 3
adds r0, 0xA
ldr r2, _0801A574
ldr r3, [r1, 0x34]
movs r1, 0
str r1, [sp]
bl xxx_call_draw_string
movs r6, 0
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r6, r0
bge _0801A5B8
adds r7, r4, 0
add r4, sp, 0xB0
mov r9, r6
add r5, sp, 0x54
add r2, sp, 0x60
mov r8, r2
_0801A4EE:
ldr r0, [r7]
movs r2, 0x1E
ldrsh r1, [r0, r2]
movs r2, 0x1C
ldrsh r0, [r0, r2]
muls r0, r1
adds r0, r6
lsls r0, 24
lsrs r0, 24
bl sub_8091A90
ldrb r2, [r0]
lsls r2, 16
ldr r3, _0801A578
ldr r1, [r4]
ands r1, r3
orrs r1, r2
str r1, [r4]
ldrb r2, [r0, 0x1]
lsls r2, 8
ldr r0, _0801A57C
ands r1, r0
orrs r1, r2
ldr r0, _0801A580
ands r1, r0
movs r0, 0x3
orrs r1, r0
str r1, [r4]
movs r1, 0x1
str r1, [sp, 0x54]
mov r0, r9
strb r0, [r5, 0x4]
movs r0, 0x58
strh r0, [r5, 0x6]
strb r1, [r5, 0x8]
add r0, sp, 0x4
adds r1, r4, 0
adds r2, r5, 0
bl sub_8090E14
adds r0, r4, 0
bl sub_8090C7C
ldr r1, _0801A584
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
cmp r0, r1
bgt _0801A588
ldr r0, [r7]
adds r1, r6, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r7]
ldr r3, [r0, 0x34]
mov r0, r9
str r0, [sp]
movs r0, 0x8
add r2, sp, 0x4
bl xxx_call_draw_string
b _0801A5AC
.align 2, 0
_0801A570: .4byte gUnknown_203B21C
_0801A574: .4byte gUnknown_80DB92C
_0801A578: .4byte 0xff00ffff
_0801A57C: .4byte 0xffff00ff
_0801A580: .4byte 0xffffff00
_0801A584: .4byte gUnknown_203B460
_0801A588:
mov r0, r8
ldr r1, _0801A5D0
add r2, sp, 0x4
bl sub_800D158
ldr r0, [r7]
adds r1, r6, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r7]
ldr r3, [r0, 0x34]
mov r2, r9
str r2, [sp]
movs r0, 0x8
mov r2, r8
bl xxx_call_draw_string
_0801A5AC:
adds r6, 0x1
ldr r0, [r7]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r6, r0
blt _0801A4EE
_0801A5B8:
ldr r0, _0801A5D4
ldr r0, [r0]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0xB4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801A5D0: .4byte gUnknown_80DB934
_0801A5D4: .4byte gUnknown_203B21C
thumb_func_end sub_801A4A4
thumb_func_start sub_801A5D8
sub_801A5D8:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
adds r6, r1, 0
adds r7, r2, 0
mov r8, r3
bl sub_8090A34
cmp r0, 0
bne _0801A5F2
movs r0, 0
b _0801A6CC
_0801A5F2:
ldr r5, _0801A6D8
ldr r0, [r5]
cmp r0, 0
bne _0801A604
movs r0, 0xF4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
_0801A604:
ldr r0, [r5]
str r4, [r0]
bl sub_80910B4
bl sub_801AE84
ldr r0, [r5]
adds r1, r0, 0
adds r1, 0x88
str r6, [r1]
adds r2, r0, 0
adds r2, 0x8C
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x90
adds r1, r0, r1
str r1, [r2]
adds r0, 0x90
bl sub_8006518
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x88
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x90
ldr r0, _0801A6DC
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x8C
ldr r1, [r0]
adds r0, 0x64
str r0, [r1, 0x14]
cmp r7, 0
beq _0801A66E
subs r0, 0x68
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r2, 0
adds r1, 0x98
adds r1, r0
ldr r0, [r7]
str r0, [r1]
_0801A66E:
ldr r0, [r5]
adds r0, 0x8C
ldr r0, [r0]
mov r1, r8
bl sub_8012D08
movs r0, 0x1
bl sub_8099690
bl sub_8004914
ldr r0, [r5]
adds r0, 0x90
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x54
bl sub_8090A34
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r6, 0
bl sub_8013818
ldr r2, [r5]
ldr r0, _0801A6E0
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x6C
strh r1, [r0]
ldr r0, _0801A6E4
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0x72
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x54
bl sub_8013984
bl sub_801A998
bl sub_801A9E0
movs r0, 0x1
_0801A6CC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801A6D8: .4byte gUnknown_203B224
_0801A6DC: .4byte gUnknown_80DB95C
_0801A6E0: .4byte gUnknown_203B228
_0801A6E4: .4byte gUnknown_203B22A
thumb_func_end sub_801A5D8
thumb_func_start sub_801A6E8
sub_801A6E8:
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
cmp r0, 0
bne _0801A704
ldr r0, _0801A700
ldr r0, [r0]
adds r0, 0x54
bl sub_8013660
movs r0, 0
b _0801A8A2
.align 2, 0
_0801A700: .4byte gUnknown_203B224
_0801A704:
ldr r0, _0801A720
ldr r0, [r0]
adds r0, 0x54
bl GetKeyPress
subs r0, 0x1
cmp r0, 0x5
bls _0801A716
b _0801A87C
_0801A716:
lsls r0, 2
ldr r1, _0801A724
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801A720: .4byte gUnknown_203B224
_0801A724: .4byte _0801A728
.align 2, 0
_0801A728:
.4byte _0801A74A
.4byte _0801A740
.4byte _0801A864
.4byte _0801A806
.4byte _0801A810
.4byte _0801A810
_0801A740:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801A8A2
_0801A74A:
ldr r1, _0801A760
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x5
bhi _0801A802
lsls r0, 2
ldr r1, _0801A764
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801A760: .4byte gUnknown_203B224
_0801A764: .4byte _0801A768
.align 2, 0
_0801A768:
.4byte _0801A780
.4byte _0801A780
.4byte _0801A780
.4byte _0801A794
.4byte _0801A7AC
.4byte _0801A7FC
_0801A780:
ldr r4, [r4]
bl sub_801A8AC
lsls r0, 2
adds r4, 0x4
adds r4, r0
ldr r0, [r4]
cmp r0, 0
bne _0801A7F4
b _0801A7E2
_0801A794:
bl sub_801AEA8
cmp r0, 0
bne _0801A7E2
bl sub_801A8AC
bl sub_801ADA0
lsls r0, 24
cmp r0, 0
bne _0801A7E2
b _0801A7F4
_0801A7AC:
ldr r5, _0801A7EC
ldr r4, [r5]
bl sub_801A8AC
lsls r0, 2
adds r4, r0
ldr r0, [r4]
str r0, [sp]
mov r0, sp
ldrb r0, [r0, 0x2]
bl sub_80914E4
lsls r0, 24
cmp r0, 0
beq _0801A7F4
mov r0, sp
bl sub_8090CCC
ldr r1, [r5]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
adds r0, r1
ldr r1, _0801A7F0
cmp r0, r1
bgt _0801A7F4
_0801A7E2:
movs r0, 0
bl sub_80119D4
b _0801A802
.align 2, 0
_0801A7EC: .4byte gUnknown_203B460
_0801A7F0: .4byte 0x0001869f
_0801A7F4:
movs r0, 0x2
bl sub_80119D4
b _0801A802
_0801A7FC:
movs r0, 0
bl sub_80119D4
_0801A802:
movs r0, 0x3
b _0801A8A2
_0801A806:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0801A8A2
_0801A810:
ldr r4, _0801A858
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x3
bne _0801A87C
bl sub_801A8AC
adds r1, r0, 0
ldr r0, [r4]
lsls r5, r1, 2
adds r0, 0x4
adds r0, r5
ldr r0, [r0]
cmp r0, 0
bne _0801A83A
adds r0, r1, 0
bl sub_801ADA0
lsls r0, 24
cmp r0, 0
beq _0801A85C
_0801A83A:
movs r0, 0x6
bl sub_80119D4
ldr r0, [r4]
adds r2, r0, 0x4
adds r2, r5
ldr r1, [r2]
movs r3, 0x1
eors r1, r3
str r1, [r2]
adds r0, 0x54
movs r1, 0
bl sub_80138B8
b _0801A89C
.align 2, 0
_0801A858: .4byte gUnknown_203B224
_0801A85C:
movs r0, 0x2
bl sub_80119D4
b _0801A87C
_0801A864:
ldr r0, _0801A894
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x2
beq _0801A87C
movs r0, 0x5
bl sub_80119D4
bl sub_801AEF8
bl sub_801A9E0
_0801A87C:
ldr r0, _0801A894
ldr r0, [r0]
adds r0, 0x54
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801A898
movs r0, 0
b _0801A8A2
.align 2, 0
_0801A894: .4byte gUnknown_203B224
_0801A898:
bl sub_801A998
_0801A89C:
bl sub_801A9E0
movs r0, 0x1
_0801A8A2:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_801A6E8
thumb_func_start sub_801A8AC
sub_801A8AC:
ldr r0, _0801A8CC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x72
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r2, 0
adds r1, 0x6C
movs r2, 0
ldrsh r1, [r1, r2]
adds r0, r1
bx lr
.align 2, 0
_0801A8CC: .4byte gUnknown_203B224
thumb_func_end sub_801A8AC
thumb_func_start sub_801A8D0
sub_801A8D0:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
bl sub_8099690
bl sub_8004914
ldr r5, _0801A924
ldr r0, [r5]
adds r0, 0x90
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_80910B4
bl sub_8090A34
adds r1, r0, 0
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x76
strh r1, [r2]
adds r0, 0x54
bl sub_8013984
bl sub_801A998
bl sub_801A9E0
cmp r4, 0
beq _0801A91C
ldr r0, [r5]
adds r0, 0x54
bl AddMenuCursorSprite
_0801A91C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801A924: .4byte gUnknown_203B224
thumb_func_end sub_801A8D0
thumb_func_start sub_801A928
sub_801A928:
push {r4,r5,lr}
ldr r4, _0801A988
ldr r2, [r4]
cmp r2, 0
beq _0801A980
ldr r1, _0801A98C
adds r0, r2, 0
adds r0, 0x6C
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _0801A990
adds r0, r2, 0
adds r0, 0x72
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x88
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x90
ldr r0, _0801A994
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
movs r0, 0
bl sub_8099690
bl sub_8004914
ldr r0, [r4]
adds r0, 0x90
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801A980:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801A988: .4byte gUnknown_203B224
_0801A98C: .4byte gUnknown_203B228
_0801A990: .4byte gUnknown_203B22A
_0801A994: .4byte gUnknown_80DB944
thumb_func_end sub_801A928
thumb_func_start sub_801A998
sub_801A998:
push {r4,lr}
ldr r4, _0801A9DC
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x74
ldrh r1, [r1]
adds r0, 0xF0
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x72
ldrh r1, [r1]
adds r0, 0xF1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xF2
movs r1, 0xB
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xF3
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x90
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801A9DC: .4byte gUnknown_203B224
thumb_func_end sub_801A998
thumb_func_start sub_801A9E0
sub_801A9E0:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xCC
ldr r4, _0801AA2C
ldr r0, [r4]
adds r0, 0x88
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r4]
adds r0, 0x88
ldr r0, [r0]
bl sub_80073B8
ldr r4, [r4]
adds r1, r4, 0
adds r1, 0x72
movs r2, 0
ldrsh r0, [r1, r2]
lsls r0, 3
adds r5, r0, 0
adds r5, 0xA
movs r3, 0
ldrsh r1, [r1, r3]
cmp r1, 0
bne _0801AA34
ldr r2, _0801AA30
adds r0, r4, 0
adds r0, 0x88
ldr r3, [r0]
str r1, [sp]
adds r0, r5, 0
movs r1, 0
bl xxx_call_draw_string
b _0801AA48
.align 2, 0
_0801AA2C: .4byte gUnknown_203B224
_0801AA30: .4byte gUnknown_80DB974
_0801AA34:
ldr r2, _0801AA58
adds r0, r4, 0
adds r0, 0x88
ldr r3, [r0]
movs r0, 0
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl xxx_call_draw_string
_0801AA48:
movs r7, 0
ldr r1, _0801AA5C
ldr r0, [r1]
adds r0, 0x6E
movs r4, 0
ldrsh r0, [r0, r4]
b _0801AD0A
.align 2, 0
_0801AA58: .4byte gUnknown_80DB984
_0801AA5C: .4byte gUnknown_203B224
_0801AA60:
ldr r2, [r1]
adds r0, r2, 0
adds r0, 0x72
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r4, 0
ldrsh r0, [r0, r4]
muls r0, r1
adds r0, r7
mov r8, r0
ldr r0, _0801AA9C
ldr r0, [r0]
mov r3, r8
lsls r1, r3, 2
adds r0, r1
ldr r0, [r0]
add r1, sp, 0xC8
str r0, [r1]
ldr r0, [r2]
adds r4, r1, 0
cmp r0, 0x5
bls _0801AA90
b _0801ACC4
_0801AA90:
lsls r0, 2
ldr r1, _0801AAA0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801AA9C: .4byte gUnknown_203B460
_0801AAA0: .4byte _0801AAA4
.align 2, 0
_0801AAA4:
.4byte _0801AABC
.4byte _0801AAE4
.4byte _0801AAE4
.4byte _0801AB18
.4byte _0801AB90
.4byte _0801AC50
_0801AABC:
add r0, sp, 0x4
adds r1, r4, 0
movs r2, 0
bl sub_8090E14
ldr r4, _0801AAE0
ldr r0, [r4]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r4]
adds r0, 0x88
ldr r3, [r0]
movs r0, 0
str r0, [sp]
b _0801AC8C
.align 2, 0
_0801AAE0: .4byte gUnknown_203B224
_0801AAE4:
add r2, sp, 0x54
movs r5, 0
str r5, [sp, 0x54]
strb r5, [r2, 0x4]
movs r0, 0x1
strb r0, [r2, 0x8]
strb r0, [r4]
add r1, sp, 0xC8
add r0, sp, 0x4
bl sub_8090E14
ldr r4, _0801AB14
ldr r0, [r4]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r4]
adds r0, 0x88
ldr r3, [r0]
str r5, [sp]
b _0801AC8C
.align 2, 0
_0801AB14: .4byte gUnknown_203B224
_0801AB18:
add r2, sp, 0x60
movs r6, 0
str r6, [sp, 0x60]
strb r6, [r2, 0x4]
movs r0, 0x1
strb r0, [r2, 0x8]
strb r0, [r4]
add r1, sp, 0xC8
add r0, sp, 0x4
bl sub_8090E14
ldr r5, _0801AB60
ldr r0, [r5]
mov r4, r8
lsls r1, r4, 2
adds r0, 0x4
adds r0, r1
ldr r0, [r0]
cmp r0, 0
bne _0801AB4E
mov r0, r8
bl sub_801ADA0
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _0801AB64
_0801AB4E:
ldr r0, [r5]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r5]
b _0801AC86
.align 2, 0
_0801AB60: .4byte gUnknown_203B224
_0801AB64:
ldr r0, _0801AB88
add r1, sp, 0x4
movs r2, 0x50
bl strncpy
ldr r0, [r5]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, _0801AB8C
ldr r0, [r5]
adds r0, 0x88
ldr r3, [r0]
str r4, [sp]
b _0801AC3C
.align 2, 0
_0801AB88: .4byte gUnknown_202DE58
_0801AB8C: .4byte gUnknown_80DB994
_0801AB90:
ldrb r0, [r4, 0x2]
bl sub_80914E4
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _0801AC10
add r2, sp, 0x6C
movs r1, 0x3
str r1, [sp, 0x6C]
movs r6, 0
strb r6, [r2, 0x4]
movs r0, 0x58
strh r0, [r2, 0x6]
movs r0, 0x1
strb r0, [r2, 0x8]
strb r1, [r4]
add r0, sp, 0x4
adds r1, r4, 0
bl sub_8090E14
adds r0, r4, 0
bl sub_8090CCC
ldr r1, _0801AC00
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
adds r0, r1
ldr r1, _0801AC04
cmp r0, r1
ble _0801AC76
add r5, sp, 0x78
ldr r1, _0801AC08
adds r0, r5, 0
add r2, sp, 0x4
bl sub_800D158
ldr r4, _0801AC0C
ldr r0, [r4]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r4]
adds r0, 0x88
ldr r3, [r0]
str r6, [sp]
movs r0, 0x8
adds r2, r5, 0
bl xxx_call_draw_string
b _0801ACC4
.align 2, 0
_0801AC00: .4byte gUnknown_203B460
_0801AC04: .4byte 0x0001869f
_0801AC08: .4byte gUnknown_80DB9A0
_0801AC0C: .4byte gUnknown_203B224
_0801AC10:
add r0, sp, 0x4
adds r1, r4, 0
movs r2, 0
bl sub_8090E14
ldr r0, _0801AC44
add r1, sp, 0x4
movs r2, 0x50
bl strncpy
ldr r4, _0801AC48
ldr r0, [r4]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, _0801AC4C
ldr r0, [r4]
adds r0, 0x88
ldr r3, [r0]
str r5, [sp]
_0801AC3C:
movs r0, 0x8
bl sub_8014FF0
b _0801ACC4
.align 2, 0
_0801AC44: .4byte gUnknown_202DE58
_0801AC48: .4byte gUnknown_203B224
_0801AC4C: .4byte gUnknown_80DB994
_0801AC50:
add r2, sp, 0x78
movs r6, 0
str r6, [sp, 0x78]
strb r6, [r2, 0x4]
movs r0, 0x1
strb r0, [r2, 0x8]
strb r0, [r4]
add r4, sp, 0xC8
add r0, sp, 0x4
adds r1, r4, 0
bl sub_8090E14
ldrb r0, [r4, 0x2]
bl sub_8091764
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _0801AC9C
_0801AC76:
ldr r4, _0801AC98
ldr r0, [r4]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r4]
_0801AC86:
adds r0, 0x88
ldr r3, [r0]
str r6, [sp]
_0801AC8C:
movs r0, 0x8
add r2, sp, 0x4
bl xxx_call_draw_string
b _0801ACC4
.align 2, 0
_0801AC98: .4byte gUnknown_203B224
_0801AC9C:
ldr r0, _0801AD28
add r1, sp, 0x4
movs r2, 0x50
bl strncpy
ldr r4, _0801AD2C
ldr r0, [r4]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, _0801AD30
ldr r0, [r4]
adds r0, 0x88
ldr r3, [r0]
str r5, [sp]
movs r0, 0x8
bl sub_8014FF0
_0801ACC4:
mov r0, r8
bl sub_801AED0
movs r1, 0x1
ands r1, r0
cmp r1, 0
beq _0801ACFE
ldr r4, _0801AD2C
ldr r0, [r4]
adds r0, 0x54
adds r1, r7, 0
bl sub_8013800
adds r2, r0, 0
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x88
ldr r0, [r0]
adds r1, 0x8C
ldr r1, [r1]
movs r4, 0xC
ldrsh r3, [r1, r4]
subs r3, 0x2
lsls r3, 3
movs r1, 0xA
str r1, [sp]
movs r1, 0x8
bl sub_8007B7C
_0801ACFE:
adds r7, 0x1
ldr r1, _0801AD2C
ldr r0, [r1]
adds r0, 0x6E
movs r2, 0
ldrsh r0, [r0, r2]
_0801AD0A:
adds r2, r1, 0
cmp r7, r0
bge _0801AD12
b _0801AA60
_0801AD12:
ldr r0, [r2]
adds r0, 0x88
ldr r0, [r0]
bl sub_80073E0
add sp, 0xCC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801AD28: .4byte gUnknown_202DE58
_0801AD2C: .4byte gUnknown_203B224
_0801AD30: .4byte gUnknown_80DB994
thumb_func_end sub_801A9E0
thumb_func_start sub_801AD34
sub_801AD34:
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
bl sub_8008C54
adds r0, r4, 0
bl sub_80073B8
ldr r2, _0801AD98
movs r6, 0
str r6, [sp]
movs r0, 0x6
movs r1, 0
adds r3, r4, 0
bl xxx_call_draw_string
bl sub_8090A34
adds r2, r0, 0
movs r5, 0x7
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x12
movs r1, 0xD
movs r3, 0x2
bl sub_8012BC4
ldr r2, _0801AD9C
str r6, [sp]
movs r0, 0x16
movs r1, 0xD
adds r3, r4, 0
bl xxx_call_draw_string
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x2B
movs r1, 0xD
movs r2, 0x14
movs r3, 0x2
bl sub_8012BC4
adds r0, r4, 0
bl sub_80073E0
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801AD98: .4byte gUnknown_80DB9A8
_0801AD9C: .4byte gUnknown_80DB9B0
thumb_func_end sub_801AD34
thumb_func_start sub_801ADA0
sub_801ADA0:
push {r4-r6,lr}
ldr r5, _0801ADEC
ldr r1, [r5]
lsls r0, 2
adds r1, r0
ldr r6, [r1]
lsls r4, r6, 8
lsrs r0, r4, 24
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _0801AE12
lsrs r0, r4, 24
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _0801ADF4
lsrs r0, r4, 24
bl sub_801AE24
ldr r2, [r5]
lsrs r1, r4, 24
lsls r1, 1
adds r2, 0x50
adds r2, r1
lsls r0, 16
lsrs r0, 16
ldrh r2, [r2]
adds r0, r2
lsrs r1, r6, 8
lsls r1, 24
lsrs r1, 24
adds r0, r1
ldr r1, _0801ADF0
b _0801AE0E
.align 2, 0
_0801ADEC: .4byte gUnknown_203B460
_0801ADF0: .4byte 0x000003e7
_0801ADF4:
lsrs r0, r4, 24
bl sub_801AE24
ldr r2, [r5]
lsrs r1, r4, 24
lsls r1, 1
adds r2, 0x50
adds r2, r1
lsls r0, 16
lsrs r0, 16
ldrh r2, [r2]
adds r0, r2
ldr r1, _0801AE18
_0801AE0E:
cmp r0, r1
ble _0801AE1C
_0801AE12:
movs r0, 0
b _0801AE1E
.align 2, 0
_0801AE18: .4byte 0x000003e6
_0801AE1C:
movs r0, 0x1
_0801AE1E:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801ADA0
thumb_func_start sub_801AE24
sub_801AE24:
push {r4-r7,lr}
adds r7, r0, 0
movs r5, 0
movs r6, 0
b _0801AE74
_0801AE2E:
ldr r0, _0801AE64
ldr r0, [r0]
lsls r1, r6, 2
adds r0, 0x4
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _0801AE72
ldr r0, _0801AE68
ldr r0, [r0]
adds r0, r1
ldr r4, [r0]
lsls r1, r4, 8
lsrs r0, r1, 24
cmp r0, r7
bne _0801AE72
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _0801AE6C
lsrs r0, r4, 8
lsls r0, 24
lsrs r0, 24
adds r0, r5, r0
b _0801AE6E
.align 2, 0
_0801AE64: .4byte gUnknown_203B224
_0801AE68: .4byte gUnknown_203B460
_0801AE6C:
adds r0, r5, 0x1
_0801AE6E:
lsls r0, 16
lsrs r5, r0, 16
_0801AE72:
adds r6, 0x1
_0801AE74:
bl sub_8090A34
cmp r6, r0
blt _0801AE2E
adds r0, r5, 0
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_801AE24
thumb_func_start sub_801AE84
sub_801AE84:
push {r4,lr}
movs r2, 0
ldr r4, _0801AEA4
movs r3, 0
_0801AE8C:
ldr r0, [r4]
lsls r1, r2, 2
adds r0, 0x4
adds r0, r1
str r3, [r0]
adds r2, 0x1
cmp r2, 0x13
ble _0801AE8C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801AEA4: .4byte gUnknown_203B224
thumb_func_end sub_801AE84
thumb_func_start sub_801AEA8
sub_801AEA8:
push {lr}
movs r3, 0
ldr r0, _0801AECC
ldr r0, [r0]
adds r1, r0, 0x4
movs r2, 0x13
_0801AEB4:
ldr r0, [r1]
cmp r0, 0
beq _0801AEBC
adds r3, 0x1
_0801AEBC:
adds r1, 0x4
subs r2, 0x1
cmp r2, 0
bge _0801AEB4
adds r0, r3, 0
pop {r1}
bx r1
.align 2, 0
_0801AECC: .4byte gUnknown_203B224
thumb_func_end sub_801AEA8
thumb_func_start sub_801AED0
sub_801AED0:
ldr r1, _0801AEE0
ldr r1, [r1]
lsls r0, 2
adds r1, 0x4
adds r1, r0
ldr r0, [r1]
bx lr
.align 2, 0
_0801AEE0: .4byte gUnknown_203B224
thumb_func_end sub_801AED0
thumb_func_start sub_801AEE4
sub_801AEE4:
ldr r2, _0801AEF4
ldr r2, [r2]
lsls r0, 2
adds r2, 0x4
adds r2, r0
str r1, [r2]
bx lr
.align 2, 0
_0801AEF4: .4byte gUnknown_203B224
thumb_func_end sub_801AEE4
thumb_func_start sub_801AEF8
sub_801AEF8:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r0, 0
mov r9, r0
b _0801AF78
_0801AF08:
movs r1, 0x1
add r1, r9
mov r8, r1
mov r7, r8
b _0801AF6E
_0801AF12:
ldr r2, _0801AF90
ldr r0, [r2]
mov r1, r9
lsls r6, r1, 2
adds r0, r6
ldrb r0, [r0, 0x2]
str r2, [sp]
bl sub_8090D44
adds r4, r0, 0
ldr r2, [sp]
ldr r0, [r2]
lsls r5, r7, 2
adds r0, r5
ldrb r0, [r0, 0x2]
bl sub_8090D44
ldr r2, [sp]
cmp r4, r0
bgt _0801AF4C
cmp r4, r0
bne _0801AF6C
ldr r0, [r2]
adds r1, r0, r6
adds r0, r5
ldrb r1, [r1, 0x1]
ldrb r0, [r0, 0x1]
cmp r1, r0
bcs _0801AF6C
_0801AF4C:
ldr r0, [r2]
adds r2, r0, r6
ldr r3, [r2]
adds r0, r5
ldr r1, [r0]
str r1, [r2]
str r3, [r0]
ldr r0, _0801AF94
ldr r0, [r0]
adds r0, 0x4
adds r2, r0, r6
ldr r3, [r2]
adds r0, r5
ldr r1, [r0]
str r1, [r2]
str r3, [r0]
_0801AF6C:
adds r7, 0x1
_0801AF6E:
bl sub_8090A34
cmp r7, r0
blt _0801AF12
mov r9, r8
_0801AF78:
bl sub_8090A34
subs r0, 0x1
cmp r9, r0
blt _0801AF08
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801AF90: .4byte gUnknown_203B460
_0801AF94: .4byte gUnknown_203B224
thumb_func_end sub_801AEF8
thumb_func_start sub_801AF98
sub_801AF98:
ldr r0, _0801AFA0
ldr r0, [r0]
bx lr
.align 2, 0
_0801AFA0: .4byte gUnknown_203B224
thumb_func_end sub_801AF98
thumb_func_start sub_801AFA4
sub_801AFA4:
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _0801AFEC
movs r0, 0xA4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r4, [r0, 0x4]
ldr r1, _0801AFF0
ldr r1, [r1]
lsls r4, 2
adds r1, r4
ldrb r1, [r1, 0x2]
strb r1, [r0, 0x8]
ldr r0, [r5]
ldrb r0, [r0, 0x8]
bl sub_80913CC
ldr r1, [r5]
strh r0, [r1, 0xA]
ldr r0, _0801AFF4
ldrh r1, [r1, 0xA]
bl sub_8092C84
movs r0, 0
bl sub_8099690
bl sub_801B2F4
cmp r0, 0
bne _0801AFF8
movs r0, 0x3
bl sub_801B064
b _0801B004
.align 2, 0
_0801AFEC: .4byte gUnknown_203B22C
_0801AFF0: .4byte gUnknown_203B460
_0801AFF4: .4byte gUnknown_202E1C8
_0801AFF8:
ldr r1, [r5]
movs r0, 0x4
str r0, [r1, 0x60]
movs r0, 0
bl sub_801B064
_0801B004:
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_801AFA4
thumb_func_start sub_801B00C
sub_801B00C:
push {lr}
ldr r0, _0801B024
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
beq _0801B036
cmp r0, 0x1
bgt _0801B028
cmp r0, 0
beq _0801B030
b _0801B03C
.align 2, 0
_0801B024: .4byte gUnknown_203B22C
_0801B028:
cmp r0, 0x4
bne _0801B03C
movs r0, 0x3
b _0801B042
_0801B030:
bl sub_801B200
b _0801B040
_0801B036:
bl sub_801B2AC
b _0801B040
_0801B03C:
bl sub_801B2D8
_0801B040:
movs r0, 0
_0801B042:
pop {r1}
bx r1
thumb_func_end sub_801B00C
thumb_func_start sub_801B048
sub_801B048:
push {r4,lr}
ldr r4, _0801B060
ldr r0, [r4]
cmp r0, 0
beq _0801B05A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801B05A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801B060: .4byte gUnknown_203B22C
thumb_func_end sub_801B048
thumb_func_start sub_801B064
sub_801B064:
push {lr}
ldr r1, _0801B078
ldr r1, [r1]
str r0, [r1]
bl nullsub_37
bl sub_801B080
pop {r0}
bx r0
.align 2, 0
_0801B078: .4byte gUnknown_203B22C
thumb_func_end sub_801B064
thumb_func_start nullsub_37
nullsub_37:
bx lr
thumb_func_end nullsub_37
thumb_func_start sub_801B080
sub_801B080:
push {r4,lr}
sub sp, 0x14
ldr r1, _0801B09C
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x4
bhi _0801B168
lsls r0, 2
ldr r1, _0801B0A0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801B09C: .4byte gUnknown_203B22C
_0801B0A0: .4byte _0801B0A4
.align 2, 0
_0801B0A4:
.4byte _0801B0B8
.4byte _0801B0E8
.4byte _0801B0FC
.4byte _0801B15C
.4byte _0801B168
_0801B0B8:
bl sub_801B178
ldr r0, _0801B0E0
ldr r1, _0801B0E4
ldr r3, [r1]
ldr r2, [r3, 0x60]
adds r3, 0x64
movs r4, 0
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
movs r1, 0x20
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _0801B168
.align 2, 0
_0801B0E0: .4byte gUnknown_80DB9BC
_0801B0E4: .4byte gUnknown_203B22C
_0801B0E8:
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x58
movs r3, 0
ldrsh r1, [r0, r3]
adds r2, 0xC
movs r0, 0x2
bl sub_801E80C
b _0801B168
_0801B0FC:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC
ldr r1, [r1, 0x5C]
adds r1, 0x2C
bl sub_8094060
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_80915A0
lsls r0, 24
cmp r0, 0
bne _0801B138
ldr r3, _0801B150
ldr r1, [r3]
ldr r2, [r4]
ldr r0, [r2, 0x4]
lsls r0, 2
adds r1, r0
ldrb r0, [r2, 0x8]
subs r0, 0x7D
strb r0, [r1, 0x1]
ldr r1, [r3]
ldr r0, [r4]
ldr r0, [r0, 0x4]
lsls r0, 2
adds r1, r0
movs r0, 0x7C
strb r0, [r1, 0x2]
_0801B138:
movs r0, 0x9C
lsls r0, 1
bl sub_8011988
ldr r0, _0801B154
ldr r3, _0801B158
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0801B168
.align 2, 0
_0801B150: .4byte gUnknown_203B460
_0801B154: .4byte gUnknown_80DB9E4
_0801B158: .4byte 0x00000121
_0801B15C:
ldr r0, _0801B170
ldr r3, _0801B174
movs r1, 0
movs r2, 0
bl sub_80141B4
_0801B168:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801B170: .4byte gUnknown_80DBA0C
_0801B174: .4byte 0x00000121
thumb_func_end sub_801B080
thumb_func_start sub_801B178
sub_801B178:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r5, 0
ldr r1, _0801B1F4
ldr r0, [r1]
ldr r0, [r0, 0x4C]
cmp r5, r0
bge _0801B1D2
ldr r0, _0801B1F8
mov r8, r0
adds r7, r1, 0
movs r6, 0
_0801B192:
ldr r4, _0801B1FC
adds r4, r6, r4
ldr r0, [r7]
lsls r1, r5, 1
adds r0, 0x50
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0x58
muls r0, r1
mov r2, r8
ldr r1, [r2]
adds r1, r0
adds r0, r4, 0
bl sub_808DA34
ldr r2, [r7]
lsls r1, r5, 3
adds r0, r2, 0
adds r0, 0x64
adds r0, r1
str r4, [r0]
adds r0, r2, 0
adds r0, 0x68
adds r0, r1
adds r1, r5, 0x4
str r1, [r0]
adds r6, 0x50
adds r5, 0x1
ldr r0, [r2, 0x4C]
cmp r5, r0
blt _0801B192
_0801B1D2:
ldr r0, _0801B1F4
ldr r2, [r0]
lsls r3, r5, 3
adds r0, r2, 0
adds r0, 0x64
adds r0, r3
movs r1, 0
str r1, [r0]
adds r2, 0x68
adds r2, r3
movs r0, 0x1
str r0, [r2]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801B1F4: .4byte gUnknown_203B22C
_0801B1F8: .4byte gUnknown_203B45C
_0801B1FC: .4byte gUnknown_202DF98
thumb_func_end sub_801B178
thumb_func_start sub_801B200
sub_801B200:
push {r4-r6,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801B2A4
ldr r5, _0801B228
ldr r3, [r5]
ldr r0, [sp]
str r0, [r3, 0x60]
ldr r1, [sp]
cmp r1, 0
beq _0801B2A4
cmp r1, 0x1
bne _0801B22C
movs r0, 0x4
bl sub_801B064
b _0801B2A4
.align 2, 0
_0801B228: .4byte gUnknown_203B22C
_0801B22C:
subs r1, 0x4
lsls r1, 1
adds r0, r3, 0
adds r0, 0x50
adds r0, r1
ldrh r0, [r0]
adds r1, r3, 0
adds r1, 0x58
strh r0, [r1]
ldr r2, _0801B26C
movs r0, 0
ldrsh r1, [r1, r0]
movs r0, 0x58
muls r0, r1
ldr r1, [r2]
adds r1, r0
str r1, [r3, 0x5C]
ldr r0, _0801B270
bl sub_808DA34
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0xC
ldr r1, [r1, 0x5C]
adds r1, 0x2C
bl sub_809401C
movs r4, 0
adds r6, r5, 0
movs r5, 0xC
b _0801B278
.align 2, 0
_0801B26C: .4byte gUnknown_203B45C
_0801B270: .4byte gUnknown_202E218
_0801B274:
adds r5, 0x8
adds r4, 0x1
_0801B278:
cmp r4, 0x7
bgt _0801B292
ldr r3, [r6]
adds r2, r3, r5
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0801B274
ldrh r1, [r3, 0xA]
adds r0, r2, 0
bl sub_8092AD4
_0801B292:
cmp r4, 0x3
ble _0801B29E
movs r0, 0x1
bl sub_801B064
b _0801B2A4
_0801B29E:
movs r0, 0x2
bl sub_801B064
_0801B2A4:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_801B200
thumb_func_start sub_801B2AC
sub_801B2AC:
push {lr}
bl sub_801E8C0
cmp r0, 0x2
beq _0801B2CA
cmp r0, 0x2
bcc _0801B2D4
cmp r0, 0x3
bne _0801B2D4
bl sub_801E93C
movs r0, 0x2
bl sub_801B064
b _0801B2D4
_0801B2CA:
bl sub_801E93C
movs r0, 0
bl sub_801B064
_0801B2D4:
pop {r0}
bx r0
thumb_func_end sub_801B2AC
thumb_func_start sub_801B2D8
sub_801B2D8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801B2EC
movs r0, 0x4
bl sub_801B064
_0801B2EC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_801B2D8
thumb_func_start sub_801B2F4
sub_801B2F4:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
mov r0, sp
bl sub_808D580
adds r6, r0, 0
ldr r2, _0801B36C
ldr r1, [r2]
movs r0, 0
str r0, [r1, 0x4C]
movs r5, 0
cmp r5, r6
bge _0801B35A
ldr r0, _0801B370
mov r8, r0
adds r7, r2, 0
mov r4, sp
_0801B31A:
ldr r1, [r4]
movs r0, 0x58
muls r0, r1
mov r2, r8
ldr r1, [r2]
adds r1, r0
ldr r0, [r7]
ldrh r0, [r0, 0xA]
movs r2, 0x8
ldrsh r1, [r1, r2]
bl sub_808E190
lsls r0, 24
cmp r0, 0
beq _0801B352
ldr r2, [r7]
ldr r0, [r2, 0x4C]
lsls r0, 1
adds r1, r2, 0
adds r1, 0x50
adds r1, r0
ldr r0, [r4]
strh r0, [r1]
ldr r0, [r2, 0x4C]
cmp r0, 0x3
bgt _0801B35A
adds r0, 0x1
str r0, [r2, 0x4C]
_0801B352:
adds r4, 0x4
adds r5, 0x1
cmp r5, r6
blt _0801B31A
_0801B35A:
ldr r0, _0801B36C
ldr r0, [r0]
ldr r0, [r0, 0x4C]
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801B36C: .4byte gUnknown_203B22C
_0801B370: .4byte gUnknown_203B45C
thumb_func_end sub_801B2F4
thumb_func_start sub_801B374
sub_801B374:
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _0801B3A8
ldr r4, [r1]
bl sub_80913CC
lsls r0, 16
lsrs r6, r0, 16
movs r5, 0
_0801B388:
ldrh r0, [r4]
lsrs r0, 1
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _0801B3AC
movs r0, 0x8
ldrsh r1, [r4, r0]
adds r0, r6, 0
bl sub_808E190
lsls r0, 24
cmp r0, 0
beq _0801B3AC
movs r0, 0
b _0801B3BA
.align 2, 0
_0801B3A8: .4byte gUnknown_203B45C
_0801B3AC:
adds r5, 0x1
adds r4, 0x58
movs r0, 0xCE
lsls r0, 1
cmp r5, r0
ble _0801B388
movs r0, 0x1
_0801B3BA:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801B374
thumb_func_start sub_801B3C0
sub_801B3C0:
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x1
bl ResetSprites
ldr r4, _0801B40C
movs r0, 0x94
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
ldr r1, [r5]
str r1, [r0, 0x4]
adds r0, 0x88
bl sub_801317C
ldr r0, [r4]
movs r1, 0
str r1, [r0, 0x24]
adds r0, 0x28
bl sub_80140B4
bl sub_8004914
ldr r0, [r4]
adds r0, 0x28
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0
bl sub_801B46C
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801B40C: .4byte gUnknown_203B230
thumb_func_end sub_801B3C0
thumb_func_start sub_801B410
sub_801B410:
push {lr}
ldr r0, _0801B428
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
beq _0801B43C
cmp r0, 0x1
bgt _0801B42C
cmp r0, 0
beq _0801B436
b _0801B446
.align 2, 0
_0801B428: .4byte gUnknown_203B230
_0801B42C:
cmp r0, 0x2
beq _0801B446
cmp r0, 0x3
beq _0801B442
b _0801B446
_0801B436:
bl sub_801B51C
b _0801B44A
_0801B43C:
bl sub_801B590
b _0801B44A
_0801B442:
movs r0, 0x3
b _0801B44C
_0801B446:
movs r0, 0x2
b _0801B44C
_0801B44A:
movs r0, 0
_0801B44C:
pop {r1}
bx r1
thumb_func_end sub_801B410
thumb_func_start sub_801B450
sub_801B450:
push {r4,lr}
ldr r4, _0801B468
ldr r0, [r4]
cmp r0, 0
beq _0801B462
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801B462:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801B468: .4byte gUnknown_203B230
thumb_func_end sub_801B450
thumb_func_start sub_801B46C
sub_801B46C:
push {lr}
ldr r1, _0801B47C
ldr r1, [r1]
str r0, [r1]
bl sub_801B480
pop {r0}
bx r0
.align 2, 0
_0801B47C: .4byte gUnknown_203B230
thumb_func_end sub_801B46C
thumb_func_start sub_801B480
sub_801B480:
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _0801B4B0
ldr r0, [r5]
ldr r4, [r0]
cmp r4, 0x1
beq _0801B4B4
cmp r4, 0x1
bgt _0801B50C
cmp r4, 0
bne _0801B50C
ldr r0, [r0, 0x24]
bl sub_8008C54
ldr r2, [r5]
adds r0, r2, 0x4
ldr r1, [r2, 0x24]
adds r2, 0x10
bl sub_80913E0
ldr r1, [r5]
str r0, [r1, 0xC]
str r4, [r1, 0x20]
b _0801B50C
.align 2, 0
_0801B4B0: .4byte gUnknown_203B230
_0801B4B4:
ldr r0, [r0, 0x24]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073B8
ldr r0, [r5]
ldr r1, [r0, 0x8]
lsls r1, 2
adds r0, 0x10
adds r0, r1
ldr r1, [r0]
ldr r0, _0801B514
ldr r1, [r1]
bl strcpy
ldr r2, _0801B518
ldr r0, [r5]
ldr r3, [r0, 0x24]
movs r4, 0
str r4, [sp]
movs r0, 0x10
movs r1, 0
bl sub_8014FF0
ldr r3, [r5]
ldr r1, [r3, 0x8]
lsls r1, 2
adds r0, r3, 0
adds r0, 0x10
adds r0, r1
ldr r0, [r0]
ldr r2, [r0, 0x4]
ldr r3, [r3, 0x24]
str r4, [sp]
movs r0, 0x4
movs r1, 0x10
bl sub_8014FF0
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073E0
_0801B50C:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801B514: .4byte gUnknown_202DF98
_0801B518: .4byte gUnknown_80DBA4C
thumb_func_end sub_801B480
thumb_func_start sub_801B51C
sub_801B51C:
push {r4,lr}
ldr r0, _0801B558
ldr r2, [r0]
ldr r1, [r2, 0xC]
adds r4, r0, 0
cmp r1, 0
beq _0801B540
ldr r0, [r2, 0x20]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801B538
bl sub_8013F84
_0801B538:
ldr r1, [r4]
ldr r0, [r1, 0x20]
adds r0, 0x1
str r0, [r1, 0x20]
_0801B540:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x88
ldr r1, [r1, 0x24]
bl sub_8012A64
cmp r0, 0x1
beq _0801B55C
cmp r0, 0x2
beq _0801B57E
b _0801B58A
.align 2, 0
_0801B558: .4byte gUnknown_203B230
_0801B55C:
movs r0, 0
bl sub_80119D4
ldr r1, [r4]
ldr r0, [r1, 0xC]
cmp r0, 0
beq _0801B576
movs r0, 0
str r0, [r1, 0x8]
movs r0, 0x1
bl sub_801B46C
b _0801B58A
_0801B576:
movs r0, 0x3
bl sub_801B46C
b _0801B58A
_0801B57E:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
bl sub_801B46C
_0801B58A:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801B51C
thumb_func_start sub_801B590
sub_801B590:
push {r4,lr}
ldr r0, _0801B5D0
ldr r3, [r0]
ldr r1, [r3, 0xC]
subs r1, 0x1
ldr r2, [r3, 0x8]
adds r4, r0, 0
cmp r2, r1
bge _0801B5B8
ldr r0, [r3, 0x20]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801B5B0
bl sub_8013F84
_0801B5B0:
ldr r1, [r4]
ldr r0, [r1, 0x20]
adds r0, 0x1
str r0, [r1, 0x20]
_0801B5B8:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x88
ldr r1, [r1, 0x24]
bl sub_8012A64
cmp r0, 0x1
beq _0801B5D4
cmp r0, 0x2
beq _0801B5F8
b _0801B604
.align 2, 0
_0801B5D0: .4byte gUnknown_203B230
_0801B5D4:
movs r0, 0
bl sub_80119D4
ldr r0, [r4]
ldr r1, [r0, 0x8]
adds r1, 0x1
str r1, [r0, 0x8]
ldr r0, [r0, 0xC]
cmp r1, r0
bge _0801B5F0
movs r0, 0x1
bl sub_801B46C
b _0801B604
_0801B5F0:
movs r0, 0
bl sub_801B46C
b _0801B604
_0801B5F8:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
bl sub_801B46C
_0801B604:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801B590
thumb_func_start sub_801B60C
sub_801B60C:
push {r4-r7,lr}
adds r5, r0, 0
adds r4, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r2, 24
lsrs r7, r2, 24
ldr r6, _0801B650
movs r0, 0xAA
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
adds r2, r0, 0
adds r2, 0xC8
movs r1, 0
str r1, [r2]
str r5, [r0]
strb r4, [r0, 0x12]
ldr r0, [r6]
ldrb r0, [r0, 0x12]
bl sub_8090A60
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0801B654
ldr r0, [r6]
strb r7, [r0, 0x11]
ldr r0, [r6]
strb r7, [r0, 0xC]
b _0801B65E
.align 2, 0
_0801B650: .4byte gUnknown_203B234
_0801B654:
ldr r0, [r6]
strb r1, [r0, 0x11]
ldr r1, [r6]
movs r0, 0x1
strb r0, [r1, 0xC]
_0801B65E:
ldr r5, _0801B6A0
ldr r0, [r5]
movs r1, 0
movs r2, 0x1
strb r2, [r0, 0x10]
ldr r0, [r5]
str r1, [r0, 0x14]
strb r1, [r0, 0x18]
ldr r0, [r5]
strb r2, [r0, 0x1C]
ldr r4, _0801B6A4
bl sub_808D33C
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
ldr r0, _0801B6A8
ldr r2, [r5]
adds r1, r2, 0
adds r1, 0x10
adds r2, 0x14
bl sub_8090E14
movs r0, 0
bl sub_801B748
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801B6A0: .4byte gUnknown_203B234
_0801B6A4: .4byte gUnknown_202DF98
_0801B6A8: .4byte gUnknown_202DE58
thumb_func_end sub_801B60C
thumb_func_start sub_801B6AC
sub_801B6AC:
push {lr}
ldr r0, _0801B6C4
ldr r0, [r0]
ldr r0, [r0, 0x4]
subs r0, 0x6
cmp r0, 0xA
bhi _0801B720
lsls r0, 2
ldr r1, _0801B6C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801B6C4: .4byte gUnknown_203B234
_0801B6C8: .4byte _0801B6CC
.align 2, 0
_0801B6CC:
.4byte _0801B6FC
.4byte _0801B702
.4byte _0801B708
.4byte _0801B708
.4byte _0801B70E
.4byte _0801B714
.4byte _0801B71A
.4byte _0801B720
.4byte _0801B720
.4byte _0801B720
.4byte _0801B6F8
_0801B6F8:
movs r0, 0x3
b _0801B726
_0801B6FC:
bl sub_801BC64
b _0801B724
_0801B702:
bl sub_801BC94
b _0801B724
_0801B708:
bl sub_801BCCC
b _0801B724
_0801B70E:
bl sub_801BD80
b _0801B724
_0801B714:
bl sub_801BEAC
b _0801B724
_0801B71A:
bl sub_801BE30
b _0801B724
_0801B720:
bl sub_801BEC8
_0801B724:
movs r0, 0
_0801B726:
pop {r1}
bx r1
thumb_func_end sub_801B6AC
thumb_func_start sub_801B72C
sub_801B72C:
push {r4,lr}
ldr r4, _0801B744
ldr r0, [r4]
cmp r0, 0
beq _0801B73E
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801B73E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801B744: .4byte gUnknown_203B234
thumb_func_end sub_801B72C
thumb_func_start sub_801B748
sub_801B748:
push {lr}
ldr r1, _0801B75C
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_801B760
bl sub_801B874
pop {r0}
bx r0
.align 2, 0
_0801B75C: .4byte gUnknown_203B234
thumb_func_end sub_801B748
thumb_func_start sub_801B760
sub_801B760:
push {r4-r7,lr}
ldr r0, _0801B77C
ldr r1, [r0]
ldr r1, [r1, 0x4]
subs r1, 0x1
adds r4, r0, 0
cmp r1, 0xE
bls _0801B772
b _0801B86A
_0801B772:
lsls r0, r1, 2
ldr r1, _0801B780
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801B77C: .4byte gUnknown_203B234
_0801B780: .4byte _0801B784
.align 2, 0
_0801B784:
.4byte _0801B7C0
.4byte _0801B86A
.4byte _0801B86A
.4byte _0801B86A
.4byte _0801B86A
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B800
.4byte _0801B7C0
.4byte _0801B840
.4byte _0801B7C0
.4byte _0801B7C0
.4byte _0801B7C0
_0801B7C0:
ldr r4, _0801B7F8
ldr r0, [r4]
adds r0, 0xF4
bl sub_8006518
mov r12, r4
ldr r4, _0801B7FC
movs r3, 0
movs r2, 0x3
_0801B7D2:
mov r0, r12
ldr r1, [r0]
adds r1, r3
adds r1, 0xF4
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801B7D2
bl sub_8004914
ldr r0, _0801B7F8
ldr r0, [r0]
b _0801B82E
.align 2, 0
_0801B7F8: .4byte gUnknown_203B234
_0801B7FC: .4byte gUnknown_80DBA58
_0801B800:
ldr r0, [r4]
adds r0, 0xF4
bl sub_8006518
bl sub_801BB5C
ldr r2, [r4]
movs r0, 0x92
lsls r0, 1
adds r2, r0
ldr r1, _0801B83C
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xCC
bl sub_8012CAC
bl sub_8004914
ldr r0, [r4]
_0801B82E:
adds r0, 0xF4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
b _0801B86A
.align 2, 0
_0801B83C: .4byte gUnknown_80DBA70
_0801B840:
ldr r0, [r4]
adds r0, 0xF4
bl sub_8006518
ldr r1, [r4]
movs r6, 0x86
lsls r6, 1
adds r1, r6
ldr r0, _0801B870
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
bl sub_8004914
ldr r0, [r4]
adds r0, 0xF4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0801B86A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801B870: .4byte gUnknown_80DBA88
thumb_func_end sub_801B760
thumb_func_start sub_801B874
sub_801B874:
push {r4,lr}
sub sp, 0x14
ldr r1, _0801B890
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r4, r1, 0
cmp r0, 0x10
bls _0801B886
b _0801BB0E
_0801B886:
lsls r0, 2
ldr r1, _0801B894
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801B890: .4byte gUnknown_203B234
_0801B894: .4byte _0801B898
.align 2, 0
_0801B898:
.4byte _0801B8DC
.4byte _0801B9BC
.4byte _0801B9D8
.4byte _0801B9E0
.4byte _0801B9F0
.4byte _0801B9F8
.4byte _0801BA08
.4byte _0801BA34
.4byte _0801BA60
.4byte _0801BA6E
.4byte _0801BA76
.4byte _0801BA94
.4byte _0801BA9E
.4byte _0801BAD0
.4byte _0801BAE0
.4byte _0801BAFC
.4byte _0801BB0E
_0801B8DC:
ldr r1, [r4]
ldrb r0, [r1, 0x12]
cmp r0, 0xEA
bne _0801B8FE
movs r0, 0x10
str r0, [r1, 0x8]
movs r0, 0
movs r1, 0x47
movs r2, 0x1
bl sub_8001784
cmp r0, 0
bne _0801B914
movs r0, 0
movs r1, 0x47
movs r2, 0x1
b _0801B92A
_0801B8FE:
cmp r0, 0xEB
bne _0801B938
movs r0, 0x10
str r0, [r1, 0x8]
movs r0, 0
movs r1, 0x47
movs r2, 0
bl sub_8001784
cmp r0, 0
beq _0801B924
_0801B914:
movs r0, 0xFA
lsls r0, 2
bl sub_80913A0
movs r0, 0x4
bl sub_801B748
b _0801BB0E
_0801B924:
movs r0, 0
movs r1, 0x47
movs r2, 0
_0801B92A:
movs r3, 0x1
bl sub_800199C
movs r0, 0x3
bl sub_801B748
b _0801BB0E
_0801B938:
bl sub_8090A34
cmp r0, 0x13
ble _0801B986
ldr r0, [r4]
ldrb r0, [r0, 0x12]
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _0801B968
ldr r0, _0801B970
ldr r1, [r0]
ldr r2, [r4]
ldrb r0, [r2, 0x12]
lsls r0, 1
adds r1, 0x50
adds r3, r1, r0
ldrh r1, [r3]
ldrb r0, [r2, 0xC]
adds r1, r0
ldr r0, _0801B974
cmp r1, r0
ble _0801B978
_0801B968:
ldr r1, [r4]
movs r0, 0x6
b _0801B99C
.align 2, 0
_0801B970: .4byte gUnknown_203B460
_0801B974: .4byte 0x000003e7
_0801B978:
strh r1, [r3]
movs r0, 0xCB
bl sub_8011988
ldr r1, [r4]
movs r0, 0x5
b _0801B99C
_0801B986:
ldr r0, [r4]
adds r0, 0x10
bl sub_8091290
bl sub_80910B4
movs r0, 0xCB
bl sub_8011988
ldr r1, [r4]
movs r0, 0x10
_0801B99C:
str r0, [r1, 0x8]
ldr r0, _0801B9B0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
bne _0801B9B4
movs r0, 0x2
bl sub_801B748
b _0801BB0E
.align 2, 0
_0801B9B0: .4byte gUnknown_203B234
_0801B9B4:
movs r0, 0x1
bl sub_801B748
b _0801BB0E
_0801B9BC:
movs r0, 0
bl sub_808D544
cmp r0, 0x1
bgt _0801B9D0
ldr r0, _0801B9CC
b _0801BAE8
.align 2, 0
_0801B9CC: .4byte gUnknown_80DBAA0
_0801B9D0:
ldr r0, _0801B9D4
b _0801BAE8
.align 2, 0
_0801B9D4: .4byte gUnknown_80DBAD0
_0801B9D8:
ldr r0, _0801B9DC
b _0801BAE8
.align 2, 0
_0801B9DC: .4byte gUnknown_80DBB08
_0801B9E0:
movs r0, 0xD4
bl sub_8011988
ldr r0, _0801B9EC
b _0801BAE8
.align 2, 0
_0801B9EC: .4byte gUnknown_80DBB38
_0801B9F0:
ldr r0, _0801B9F4
b _0801BAE8
.align 2, 0
_0801B9F4: .4byte gUnknown_80DBB9C
_0801B9F8:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BA04
b _0801BAE8
.align 2, 0
_0801BA04: .4byte gUnknown_80DBC28
_0801BA08:
bl sub_801BB20
ldr r0, _0801BA2C
ldr r1, _0801BA30
ldr r3, [r1]
adds r3, 0xCC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
str r2, [sp, 0x10]
movs r1, 0
movs r2, 0x4
bl sub_8014248
b _0801BB0E
.align 2, 0
_0801BA2C: .4byte gUnknown_80DBC60
_0801BA30: .4byte gUnknown_203B234
_0801BA34:
bl sub_801BC24
ldr r0, _0801BA58
ldr r1, _0801BA5C
ldr r3, [r1]
adds r3, 0xCC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
str r2, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _0801BB0E
.align 2, 0
_0801BA58: .4byte gUnknown_80DBC98
_0801BA5C: .4byte gUnknown_203B234
_0801BA60:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _0801BB0E
_0801BA6E:
movs r0, 0x1
bl sub_801A8D0
b _0801BB0E
_0801BA76:
bl sub_801A9E0
ldr r0, _0801BA90
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x28
adds r1, r2, 0
adds r1, 0xCC
adds r2, 0xC8
ldr r2, [r2]
str r2, [sp]
movs r2, 0x2
b _0801BAC0
.align 2, 0
_0801BA90: .4byte gUnknown_203B234
_0801BA94:
ldr r0, [r4]
adds r0, 0x20
bl sub_801B3C0
b _0801BB0E
_0801BA9E:
bl sub_801A9E0
ldr r4, _0801BACC
ldr r0, [r4]
adds r0, 0x28
movs r1, 0
bl sub_8012EA4
bl sub_801BC24
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x78
adds r1, 0xCC
movs r2, 0x3
str r2, [sp]
movs r2, 0x1
_0801BAC0:
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0801BB0E
.align 2, 0
_0801BACC: .4byte gUnknown_203B234
_0801BAD0:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BADC
b _0801BAE8
.align 2, 0
_0801BADC: .4byte gUnknown_80DBCC4
_0801BAE0:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BAF4
_0801BAE8:
ldr r3, _0801BAF8
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0801BB0E
.align 2, 0
_0801BAF4: .4byte gUnknown_80DBCE8
_0801BAF8: .4byte 0x00000101
_0801BAFC:
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0801BB18
ldr r3, _0801BB1C
movs r1, 0
movs r2, 0
bl sub_80141B4
_0801BB0E:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801BB18: .4byte gUnknown_80DBD24
_0801BB1C: .4byte 0x00000101
thumb_func_end sub_801B874
thumb_func_start sub_801BB20
sub_801BB20:
ldr r0, _0801BB50
ldr r3, [r0]
movs r2, 0
adds r1, r3, 0
adds r1, 0xCC
ldr r0, _0801BB54
str r0, [r1]
adds r1, 0x4
movs r0, 0x4
str r0, [r1]
adds r1, 0x4
ldr r0, _0801BB58
str r0, [r1]
adds r1, 0x4
movs r0, 0x5
str r0, [r1]
adds r0, r3, 0
adds r0, 0xDC
str r2, [r0]
adds r1, 0x8
movs r0, 0x1
negs r0, r0
str r0, [r1]
bx lr
.align 2, 0
_0801BB50: .4byte gUnknown_203B234
_0801BB54: .4byte gUnknown_80DBD58
_0801BB58: .4byte gUnknown_80DBD6C
thumb_func_end sub_801BB20
thumb_func_start sub_801BB5C
sub_801BB5C:
push {r4-r7,lr}
ldr r4, _0801BBEC
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xCC
ldr r0, _0801BBF0
str r0, [r1]
adds r1, 0x4
movs r0, 0x6
str r0, [r1]
ldr r0, [r2, 0x24]
bl sub_801ADA0
lsls r0, 24
cmp r0, 0
bne _0801BB86
ldr r0, [r4]
adds r0, 0xD0
movs r1, 0x1
negs r1, r1
str r1, [r0]
_0801BB86:
ldr r0, [r4]
mov r12, r0
movs r3, 0x1
movs r2, 0x8
mov r1, r12
adds r1, 0xD4
ldr r0, _0801BBF4
str r0, [r1]
adds r1, 0x4
movs r0, 0x7
str r0, [r1]
adds r1, 0x4
ldr r0, _0801BBF8
ldr r0, [r0]
str r0, [r1]
mov r0, r12
adds r0, 0xE0
str r2, [r0]
movs r5, 0x3
adds r1, 0x8
movs r0, 0
str r0, [r1]
mov r0, r12
adds r0, 0xE8
str r3, [r0]
movs r3, 0
adds r6, r4, 0
movs r7, 0x1
negs r7, r7
mov r4, r12
adds r4, 0xC8
subs r1, 0x14
_0801BBC6:
ldr r2, [r1]
cmp r2, r7
beq _0801BBD2
ldr r0, [r4]
cmp r2, r0
beq _0801BC1C
_0801BBD2:
adds r1, 0x8
adds r3, 0x1
cmp r3, r5
blt _0801BBC6
movs r3, 0
cmp r3, r5
bge _0801BC1C
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0xD0
ldr r1, [r0]
b _0801BC0E
.align 2, 0
_0801BBEC: .4byte gUnknown_203B234
_0801BBF0: .4byte gUnknown_80DBD80
_0801BBF4: .4byte gUnknown_80DBD88
_0801BBF8: .4byte gUnknown_80D4970
_0801BBFC:
adds r3, 0x1
cmp r3, r5
bge _0801BC1C
ldr r2, [r6]
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0xD0
adds r1, r0
ldr r1, [r1]
_0801BC0E:
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0801BBFC
adds r0, r2, 0
adds r0, 0xC8
str r1, [r0]
_0801BC1C:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_801BB5C
thumb_func_start sub_801BC24
sub_801BC24:
ldr r0, _0801BC58
ldr r0, [r0]
mov r12, r0
movs r3, 0
mov r1, r12
adds r1, 0xCC
ldr r0, _0801BC5C
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x2
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _0801BC60
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x3
str r0, [r1]
mov r0, r12
adds r0, 0xDC
str r3, [r0]
adds r0, 0x4
str r2, [r0]
bx lr
.align 2, 0
_0801BC58: .4byte gUnknown_203B234
_0801BC5C: .4byte gUnknown_80D4920
_0801BC60: .4byte gUnknown_80D4928
thumb_func_end sub_801BC24
thumb_func_start sub_801BC64
sub_801BC64:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801BC8C
ldr r0, [sp]
cmp r0, 0x4
beq _0801BC7E
cmp r0, 0x5
beq _0801BC86
b _0801BC8C
_0801BC7E:
movs r0, 0x8
bl sub_801B748
b _0801BC8C
_0801BC86:
movs r0, 0x7
bl sub_801B748
_0801BC8C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_801BC64
thumb_func_start sub_801BC94
sub_801BC94:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801BCC6
ldr r0, [sp]
cmp r0, 0x2
beq _0801BCB8
cmp r0, 0x2
bgt _0801BCB2
cmp r0, 0x1
beq _0801BCC0
b _0801BCC6
_0801BCB2:
cmp r0, 0x3
beq _0801BCC0
b _0801BCC6
_0801BCB8:
movs r0, 0xD
bl sub_801B748
b _0801BCC6
_0801BCC0:
movs r0, 0x6
bl sub_801B748
_0801BCC6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_801BC94
thumb_func_start sub_801BCCC
sub_801BCCC:
push {lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x4
bhi _0801BD7A
lsls r0, 2
ldr r1, _0801BCE4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BCE4: .4byte _0801BCE8
.align 2, 0
_0801BCE8:
.4byte _0801BD7A
.4byte _0801BD7A
.4byte _0801BD70
.4byte _0801BCFC
.4byte _0801BD34
_0801BCFC:
bl sub_801A8AC
ldr r1, _0801BD28
ldr r2, [r1]
str r0, [r2, 0x24]
ldr r1, _0801BD2C
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x20]
ldr r0, _0801BD30
adds r1, r2, 0
adds r1, 0x20
adds r2, 0x14
bl sub_8090E14
movs r0, 0xA
bl sub_801B748
b _0801BD7A
.align 2, 0
_0801BD28: .4byte gUnknown_203B234
_0801BD2C: .4byte gUnknown_203B460
_0801BD30: .4byte gUnknown_202DEA8
_0801BD34:
bl sub_801A8AC
ldr r1, _0801BD64
ldr r2, [r1]
str r0, [r2, 0x24]
ldr r1, _0801BD68
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x20]
ldr r0, _0801BD6C
adds r1, r2, 0
adds r1, 0x20
adds r2, 0x14
bl sub_8090E14
movs r0, 0
bl sub_8099690
movs r0, 0xB
bl sub_801B748
b _0801BD7A
.align 2, 0
_0801BD64: .4byte gUnknown_203B234
_0801BD68: .4byte gUnknown_203B460
_0801BD6C: .4byte gUnknown_202DEA8
_0801BD70:
bl sub_801A928
movs r0, 0x6
bl sub_801B748
_0801BD7A:
pop {r0}
bx r0
thumb_func_end sub_801BCCC
thumb_func_start sub_801BD80
sub_801BD80:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _0801BDC4
ldr r0, [r4]
adds r0, 0x28
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0801BDB2
ldr r0, [r4]
adds r0, 0x28
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0801BDB2
ldr r0, [r4]
adds r0, 0xC8
str r1, [r0]
_0801BDB2:
ldr r0, [sp]
cmp r0, 0x6
beq _0801BDD2
cmp r0, 0x6
bgt _0801BDC8
cmp r0, 0x1
beq _0801BE22
b _0801BE28
.align 2, 0
_0801BDC4: .4byte gUnknown_203B234
_0801BDC8:
cmp r0, 0x7
beq _0801BE0C
cmp r0, 0x8
beq _0801BE14
b _0801BE28
_0801BDD2:
ldr r4, _0801BE08
ldr r0, [r4]
adds r0, 0x20
bl sub_80917B8
ldr r0, [r4]
ldr r0, [r0, 0x24]
bl sub_80911F8
ldr r0, [r4]
adds r0, 0x10
bl sub_8091290
bl sub_80910B4
movs r0, 0xCB
bl sub_8011988
movs r0, 0
bl sub_8099690
bl sub_801A928
movs r0, 0xE
bl sub_801B748
b _0801BE28
.align 2, 0
_0801BE08: .4byte gUnknown_203B234
_0801BE0C:
movs r0, 0xC
bl sub_801B748
b _0801BE28
_0801BE14:
movs r0, 0
bl sub_8099690
movs r0, 0xB
bl sub_801B748
b _0801BE28
_0801BE22:
movs r0, 0x9
bl sub_801B748
_0801BE28:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801BD80
thumb_func_start sub_801BE30
sub_801BE30:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _0801BE70
ldr r0, [r4]
adds r0, 0x28
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0x78
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0801BE5E
ldr r0, [r4]
adds r0, 0x78
mov r1, sp
bl sub_8013114
_0801BE5E:
ldr r0, [sp]
cmp r0, 0x2
beq _0801BE80
cmp r0, 0x2
bgt _0801BE74
cmp r0, 0x1
beq _0801BE78
b _0801BEA4
.align 2, 0
_0801BE70: .4byte gUnknown_203B234
_0801BE74:
cmp r0, 0x3
bne _0801BEA4
_0801BE78:
movs r0, 0x9
bl sub_801B748
b _0801BEA4
_0801BE80:
ldr r0, [r4]
ldr r0, [r0, 0x24]
bl sub_80911F8
ldr r0, [r4]
adds r0, 0x10
bl sub_8091290
bl sub_80910B4
movs r0, 0xCB
bl sub_8011988
bl sub_801A928
movs r0, 0xF
bl sub_801B748
_0801BEA4:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801BE30
thumb_func_start sub_801BEAC
sub_801BEAC:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _0801BEC4
cmp r0, 0x3
bhi _0801BEC4
bl sub_801B450
movs r0, 0x9
bl sub_801B748
_0801BEC4:
pop {r0}
bx r0
thumb_func_end sub_801BEAC
thumb_func_start sub_801BEC8
sub_801BEC8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801BEE0
ldr r0, _0801BEE8
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_801B748
_0801BEE0:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0801BEE8: .4byte gUnknown_203B234
thumb_func_end sub_801BEC8
thumb_func_start sub_801BEEC
sub_801BEEC:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
adds r0, r5, 0
bl sub_801C5F0
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
bne _0801BF40
ldr r4, _0801BF38
movs r0, 0x92
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
str r6, [r0, 0x30]
strh r5, [r0, 0x4]
ldr r3, _0801BF3C
movs r1, 0x58
adds r2, r5, 0
muls r2, r1
ldr r1, [r3]
adds r1, r2
str r1, [r0, 0x8]
adds r0, 0xC
movs r2, 0x14
ldrsh r1, [r1, r2]
bl sub_808EBA8
ldr r1, [r4]
str r0, [r1, 0x2C]
movs r0, 0
bl sub_801BFB4
movs r0, 0x1
b _0801BF42
.align 2, 0
_0801BF38: .4byte gUnknown_203B238
_0801BF3C: .4byte gUnknown_203B45C
_0801BF40:
movs r0, 0
_0801BF42:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801BEEC
thumb_func_start sub_801BF48
sub_801BF48:
push {lr}
ldr r0, _0801BF60
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x4
bhi _0801BF90
lsls r0, 2
ldr r1, _0801BF64
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BF60: .4byte gUnknown_203B238
_0801BF64: .4byte _0801BF68
.align 2, 0
_0801BF68:
.4byte _0801BF80
.4byte _0801BF80
.4byte _0801BF86
.4byte _0801BF8C
.4byte _0801BF7C
_0801BF7C:
movs r0, 0x3
b _0801BF92
_0801BF80:
bl sub_801C118
b _0801BF90
_0801BF86:
bl sub_801C1A0
b _0801BF90
_0801BF8C:
bl sub_801C228
_0801BF90:
movs r0, 0
_0801BF92:
pop {r1}
bx r1
thumb_func_end sub_801BF48
thumb_func_start sub_801BF98
sub_801BF98:
push {r4,lr}
ldr r4, _0801BFB0
ldr r0, [r4]
cmp r0, 0
beq _0801BFAA
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801BFAA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801BFB0: .4byte gUnknown_203B238
thumb_func_end sub_801BF98
thumb_func_start sub_801BFB4
sub_801BFB4:
push {lr}
ldr r1, _0801BFC8
ldr r1, [r1]
str r0, [r1]
bl sub_801BFCC
bl sub_801C03C
pop {r0}
bx r0
.align 2, 0
_0801BFC8: .4byte gUnknown_203B238
thumb_func_end sub_801BFB4
thumb_func_start sub_801BFCC
sub_801BFCC:
push {r4-r7,lr}
ldr r4, _0801BFF0
ldr r0, [r4]
adds r0, 0xC4
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x2
bne _0801BFF8
adds r1, 0xF4
ldr r0, _0801BFF4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _0801C01A
.align 2, 0
_0801BFF0: .4byte gUnknown_203B238
_0801BFF4: .4byte gUnknown_80DBDB0
_0801BFF8:
mov r12, r4
ldr r4, _0801C034
movs r3, 0
movs r2, 0x3
_0801C000:
mov r0, r12
ldr r1, [r0]
adds r1, r3
adds r1, 0xC4
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801C000
_0801C01A:
bl sub_8004914
ldr r0, _0801C038
ldr r0, [r0]
adds r0, 0xC4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801C034: .4byte gUnknown_80DBD98
_0801C038: .4byte gUnknown_203B238
thumb_func_end sub_801BFCC
thumb_func_start sub_801C03C
sub_801C03C:
push {lr}
sub sp, 0x8
ldr r1, _0801C058
ldr r0, [r1]
ldr r0, [r0]
adds r2, r1, 0
cmp r0, 0x4
bhi _0801C0C2
lsls r0, 2
ldr r1, _0801C05C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801C058: .4byte gUnknown_203B238
_0801C05C: .4byte _0801C060
.align 2, 0
_0801C060:
.4byte _0801C074
.4byte _0801C084
.4byte _0801C08C
.4byte _0801C0B8
.4byte _0801C0C2
_0801C074:
ldr r0, [r2]
movs r1, 0x4
ldrsh r0, [r0, r1]
movs r1, 0
movs r2, 0x8
bl sub_801C244
b _0801C0C2
_0801C084:
movs r0, 0x1
bl sub_801C3B0
b _0801C0C2
_0801C08C:
bl sub_801C4C8
bl sub_801C0C8
ldr r0, _0801C0B4
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x74
adds r1, r2, 0
adds r1, 0x34
ldr r2, [r2, 0x30]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0801C0C2
.align 2, 0
_0801C0B4: .4byte gUnknown_203B238
_0801C0B8:
ldr r0, [r2]
adds r0, 0x28
ldrb r0, [r0]
bl sub_801C620
_0801C0C2:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_801C03C
thumb_func_start sub_801C0C8
sub_801C0C8:
push {r4,r5,lr}
ldr r3, _0801C10C
ldr r1, [r3]
movs r4, 0
ldr r0, _0801C110
str r0, [r1, 0x34]
movs r0, 0x2
str r0, [r1, 0x38]
movs r2, 0x1
ldr r0, _0801C114
ldr r0, [r0]
str r0, [r1, 0x3C]
movs r0, 0x3
str r0, [r1, 0x40]
movs r5, 0x2
str r4, [r1, 0x44]
str r2, [r1, 0x48]
movs r2, 0
ldr r4, [r1, 0x30]
adds r1, 0x38
_0801C0F0:
ldr r0, [r1]
cmp r0, r4
beq _0801C104
adds r1, 0x8
adds r2, 0x1
cmp r2, r5
blt _0801C0F0
ldr r1, [r3]
movs r0, 0x2
str r0, [r1, 0x30]
_0801C104:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801C10C: .4byte gUnknown_203B238
_0801C110: .4byte gUnknown_80DBDC8
_0801C114: .4byte gUnknown_80D4970
thumb_func_end sub_801C0C8
thumb_func_start sub_801C118
sub_801C118:
push {lr}
movs r0, 0x1
bl sub_801C308
cmp r0, 0x4
bhi _0801C19A
lsls r0, 2
ldr r1, _0801C130
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801C130: .4byte _0801C134
.align 2, 0
_0801C134:
.4byte _0801C19A
.4byte _0801C19A
.4byte _0801C190
.4byte _0801C148
.4byte _0801C16C
_0801C148:
bl sub_801C390
ldr r1, _0801C168
ldr r2, [r1]
str r0, [r2, 0x24]
adds r1, r2, 0
adds r1, 0xC
adds r1, r0
ldrb r0, [r1]
adds r2, 0x28
strb r0, [r2]
movs r0, 0x2
bl sub_801BFB4
b _0801C19A
.align 2, 0
_0801C168: .4byte gUnknown_203B238
_0801C16C:
bl sub_801C390
ldr r1, _0801C18C
ldr r2, [r1]
str r0, [r2, 0x24]
adds r1, r2, 0
adds r1, 0xC
adds r1, r0
ldrb r0, [r1]
adds r2, 0x28
strb r0, [r2]
movs r0, 0x3
bl sub_801BFB4
b _0801C19A
.align 2, 0
_0801C18C: .4byte gUnknown_203B238
_0801C190:
bl sub_801C3F8
movs r0, 0x4
bl sub_801BFB4
_0801C19A:
pop {r0}
bx r0
thumb_func_end sub_801C118
thumb_func_start sub_801C1A0
sub_801C1A0:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801C308
ldr r4, _0801C1E0
ldr r0, [r4]
adds r0, 0x74
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0801C1D0
ldr r0, [r4]
adds r0, 0x74
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0801C1D0
ldr r0, [r4]
str r1, [r0, 0x30]
_0801C1D0:
ldr r0, [sp]
cmp r0, 0x2
beq _0801C1EA
cmp r0, 0x2
bgt _0801C1E4
cmp r0, 0x1
beq _0801C218
b _0801C21E
.align 2, 0
_0801C1E0: .4byte gUnknown_203B238
_0801C1E4:
cmp r0, 0x3
beq _0801C210
b _0801C21E
_0801C1EA:
ldr r0, _0801C208
bl sub_8011988
ldr r0, _0801C20C
ldr r1, [r0]
ldr r0, [r1, 0x8]
adds r0, 0x20
adds r1, 0x28
ldrb r1, [r1]
bl sub_808EBF4
movs r0, 0x1
bl sub_801BFB4
b _0801C21E
.align 2, 0
_0801C208: .4byte 0x00000133
_0801C20C: .4byte gUnknown_203B238
_0801C210:
movs r0, 0x3
bl sub_801BFB4
b _0801C21E
_0801C218:
movs r0, 0x1
bl sub_801BFB4
_0801C21E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801C1A0
thumb_func_start sub_801C228
sub_801C228:
push {lr}
bl sub_801C674
cmp r0, 0x1
bls _0801C240
cmp r0, 0x3
bhi _0801C240
bl sub_801C6B4
movs r0, 0x1
bl sub_801BFB4
_0801C240:
pop {r0}
bx r0
thumb_func_end sub_801C228
thumb_func_start sub_801C244
sub_801C244:
push {r4-r7,lr}
adds r6, r1, 0
adds r7, r2, 0
lsls r0, 16
asrs r0, 16
adds r4, r0, 0
bl sub_801C5F0
lsls r0, 24
cmp r0, 0
beq _0801C25E
movs r0, 0
b _0801C2F6
_0801C25E:
ldr r5, _0801C2FC
ldr r0, [r5]
cmp r0, 0
bne _0801C270
movs r0, 0xC4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
_0801C270:
ldr r0, [r5]
strh r4, [r0]
ldr r3, _0801C300
movs r1, 0x58
adds r2, r4, 0
muls r2, r1
ldr r1, [r3]
adds r1, r2
str r1, [r0, 0x4]
adds r0, 0x8
movs r2, 0x14
ldrsh r1, [r1, r2]
bl sub_808EBA8
adds r1, r0, 0
ldr r0, [r5]
str r1, [r0, 0x20]
str r6, [r0, 0x58]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x60
adds r1, r0, r1
str r1, [r0, 0x5C]
adds r0, 0x60
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x58]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x60
ldr r0, _0801C304
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r1, [r5]
ldr r0, [r1, 0x5C]
adds r1, 0xC0
str r1, [r0, 0x14]
adds r1, r7, 0
bl sub_8012D08
bl sub_8004914
ldr r0, [r5]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x20]
adds r2, r7, 0
adds r3, r6, 0
bl sub_8013818
bl sub_801C440
bl sub_801C4C8
movs r0, 0x1
_0801C2F6:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801C2FC: .4byte gUnknown_203B23C
_0801C300: .4byte gUnknown_203B45C
_0801C304: .4byte gUnknown_80DBDF0
thumb_func_end sub_801C244
thumb_func_start sub_801C308
sub_801C308:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0801C324
ldr r0, _0801C320
ldr r0, [r0]
adds r0, 0x24
bl sub_8013660
movs r0, 0
b _0801C38A
.align 2, 0
_0801C320: .4byte gUnknown_203B23C
_0801C324:
ldr r0, _0801C33C
ldr r0, [r0]
adds r0, 0x24
bl GetKeyPress
cmp r0, 0x2
beq _0801C346
cmp r0, 0x2
bgt _0801C340
cmp r0, 0x1
beq _0801C350
b _0801C364
.align 2, 0
_0801C33C: .4byte gUnknown_203B23C
_0801C340:
cmp r0, 0x4
beq _0801C35A
b _0801C364
_0801C346:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801C38A
_0801C350:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0801C38A
_0801C35A:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0801C38A
_0801C364:
ldr r0, _0801C37C
ldr r0, [r0]
adds r0, 0x24
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801C380
movs r0, 0
b _0801C38A
.align 2, 0
_0801C37C: .4byte gUnknown_203B23C
_0801C380:
bl sub_801C440
bl sub_801C4C8
movs r0, 0x1
_0801C38A:
pop {r1}
bx r1
thumb_func_end sub_801C308
thumb_func_start sub_801C390
sub_801C390:
ldr r0, _0801C3AC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x42
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
movs r3, 0x3C
ldrsh r1, [r2, r3]
adds r0, r1
bx lr
.align 2, 0
_0801C3AC: .4byte gUnknown_203B23C
thumb_func_end sub_801C390
thumb_func_start sub_801C3B0
sub_801C3B0:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0801C3F4
ldr r0, [r5]
adds r0, 0x60
movs r1, 0
movs r2, 0
bl sub_800641C
ldr r0, [r5]
ldr r1, [r0, 0x20]
adds r2, r0, 0
adds r2, 0x46
strh r1, [r2]
adds r0, 0x24
bl sub_8013984
bl sub_801C440
bl sub_801C4C8
cmp r4, 0
beq _0801C3EE
ldr r0, [r5]
adds r0, 0x24
bl AddMenuCursorSprite
_0801C3EE:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801C3F4: .4byte gUnknown_203B23C
thumb_func_end sub_801C3B0
thumb_func_start sub_801C3F8
sub_801C3F8:
push {r4,r5,lr}
ldr r4, _0801C438
ldr r2, [r4]
cmp r2, 0
beq _0801C432
ldr r0, [r2, 0x58]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x60
ldr r0, _0801C43C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801C432:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801C438: .4byte gUnknown_203B23C
_0801C43C: .4byte gUnknown_80DBDD8
thumb_func_end sub_801C3F8
thumb_func_start sub_801C440
sub_801C440:
push {r4,lr}
ldr r4, _0801C4C4
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x44
ldrh r1, [r1]
adds r0, 0xC0
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x42
ldrh r1, [r1]
adds r0, 0xC1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC2
movs r1, 0xA
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC3
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x3E
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
ldr r2, [r4]
ldr r3, [r2, 0x58]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x6E
lsls r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r3, [r2, 0x58]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r2, r1
adds r2, 0x70
strh r0, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801C4C4: .4byte gUnknown_203B23C
thumb_func_end sub_801C440
thumb_func_start sub_801C4C8
sub_801C4C8:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r6, _0801C594
ldr r0, [r6]
ldr r0, [r0, 0x58]
bl sub_8008C54
ldr r0, [r6]
ldr r0, [r0, 0x58]
bl sub_80073B8
ldr r0, [r6]
adds r1, r0, 0
adds r1, 0x42
movs r2, 0
ldrsh r4, [r1, r2]
lsls r4, 3
adds r5, r4, 0
adds r5, 0xA
ldr r2, _0801C598
ldr r3, [r0, 0x58]
movs r0, 0
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl xxx_call_draw_string
adds r4, 0x4
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xC2
ldrb r0, [r0]
lsls r0, 3
adds r5, r4, r0
adds r0, r1, 0
adds r0, 0x42
movs r3, 0
ldrsh r2, [r0, r3]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r1, 0x58]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r3, 0x1
bl sub_8012BC4
movs r5, 0
ldr r0, [r6]
movs r1, 0x3E
ldrsh r0, [r0, r1]
cmp r5, r0
bge _0801C5CC
ldr r2, _0801C59C
mov r8, r2
_0801C53C:
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0x42
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r1, r0
adds r1, r5
adds r0, r2, 0
adds r0, 0x8
adds r0, r1
ldrb r4, [r0]
adds r0, r2, 0
adds r0, 0x24
adds r1, r5, 0
bl sub_8013800
adds r7, r0, 0
adds r0, r4, 0
bl sub_808EAB0
adds r1, r0, 0
mov r0, r8
movs r2, 0x50
bl strncpy
ldr r0, [r6]
ldr r0, [r0, 0x4]
adds r0, 0x20
movs r1, 0x1
lsls r1, r4
bl sub_808ECD0
lsls r0, 24
cmp r0, 0
beq _0801C5A4
mov r0, r8
subs r0, 0x50
ldr r1, _0801C5A0
bl strcpy
b _0801C5AE
.align 2, 0
_0801C594: .4byte gUnknown_203B23C
_0801C598: .4byte gUnknown_80DBE08
_0801C59C: .4byte gUnknown_202DEA8
_0801C5A0: .4byte gUnknown_80DBE14
_0801C5A4:
mov r0, r8
subs r0, 0x50
ldr r1, _0801C5E4
bl strcpy
_0801C5AE:
ldr r0, [r6]
ldr r3, [r0, 0x58]
movs r0, 0
str r0, [sp]
movs r0, 0xC
adds r1, r7, 0
ldr r2, _0801C5E8
bl sub_8014FF0
adds r5, 0x1
ldr r0, [r6]
movs r1, 0x3E
ldrsh r0, [r0, r1]
cmp r5, r0
blt _0801C53C
_0801C5CC:
ldr r0, _0801C5EC
ldr r0, [r0]
ldr r0, [r0, 0x58]
bl sub_80073E0
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801C5E4: .4byte gUnknown_80DBE18
_0801C5E8: .4byte gUnknown_80DBE1C
_0801C5EC: .4byte gUnknown_203B23C
thumb_func_end sub_801C4C8
thumb_func_start sub_801C5F0
sub_801C5F0:
push {lr}
sub sp, 0x18
lsls r0, 16
asrs r0, 16
ldr r2, _0801C614
movs r1, 0x58
muls r1, r0
ldr r0, [r2]
adds r0, r1
movs r2, 0x14
ldrsh r1, [r0, r2]
mov r0, sp
bl sub_808EBA8
cmp r0, 0
beq _0801C618
movs r0, 0
b _0801C61A
.align 2, 0
_0801C614: .4byte gUnknown_203B45C
_0801C618:
movs r0, 0x1
_0801C61A:
add sp, 0x18
pop {r1}
bx r1
thumb_func_end sub_801C5F0
thumb_func_start sub_801C620
sub_801C620:
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
bl ResetSprites
ldr r5, _0801C670
movs r0, 0x94
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r6, 0
strb r4, [r0, 0x4]
ldr r0, [r5]
adds r0, 0x88
bl sub_801317C
ldr r0, [r5]
str r6, [r0, 0x24]
adds r0, 0x28
bl sub_80140B4
bl sub_8004914
ldr r0, [r5]
adds r0, 0x28
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0
bl sub_801C6D0
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801C670: .4byte gUnknown_203B240
thumb_func_end sub_801C620
thumb_func_start sub_801C674
sub_801C674:
push {lr}
ldr r0, _0801C68C
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
beq _0801C6A0
cmp r0, 0x1
bgt _0801C690
cmp r0, 0
beq _0801C69A
b _0801C6AA
.align 2, 0
_0801C68C: .4byte gUnknown_203B240
_0801C690:
cmp r0, 0x2
beq _0801C6AA
cmp r0, 0x3
beq _0801C6A6
b _0801C6AA
_0801C69A:
bl sub_801C7D4
b _0801C6AE
_0801C6A0:
bl sub_801C848
b _0801C6AE
_0801C6A6:
movs r0, 0x3
b _0801C6B0
_0801C6AA:
movs r0, 0x2
b _0801C6B0
_0801C6AE:
movs r0, 0
_0801C6B0:
pop {r1}
bx r1
thumb_func_end sub_801C674
thumb_func_start sub_801C6B4
sub_801C6B4:
push {r4,lr}
ldr r4, _0801C6CC
ldr r0, [r4]
cmp r0, 0
beq _0801C6C6
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801C6C6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801C6CC: .4byte gUnknown_203B240
thumb_func_end sub_801C6B4
thumb_func_start sub_801C6D0
sub_801C6D0:
push {lr}
ldr r1, _0801C6E0
ldr r1, [r1]
str r0, [r1]
bl sub_801C6E4
pop {r0}
bx r0
.align 2, 0
_0801C6E0: .4byte gUnknown_203B240
thumb_func_end sub_801C6D0
thumb_func_start sub_801C6E4
sub_801C6E4:
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _0801C760
ldr r0, [r5]
ldr r4, [r0]
cmp r4, 0x1
beq _0801C76C
cmp r4, 0x1
bgt _0801C7C4
cmp r4, 0
bne _0801C7C4
ldr r0, [r0, 0x24]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073B8
ldr r0, [r5]
ldrb r0, [r0, 0x4]
bl sub_808EAB0
adds r1, r0, 0
ldr r0, _0801C764
bl strcpy
ldr r2, _0801C768
str r4, [sp]
movs r0, 0x10
movs r1, 0
movs r3, 0
bl sub_8014FF0
ldr r0, [r5]
ldrb r0, [r0, 0x4]
bl sub_808EADC
adds r2, r0, 0
ldr r0, [r5]
ldr r3, [r0, 0x24]
str r4, [sp]
movs r0, 0x8
movs r1, 0x10
bl xxx_call_draw_string
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073E0
ldr r0, [r5]
ldrb r0, [r0, 0x4]
bl sub_808EADC
ldr r1, [r5]
adds r1, 0x10
bl sub_8097DF0
ldr r1, [r5]
str r0, [r1, 0xC]
str r4, [r1, 0x20]
b _0801C7C4
.align 2, 0
_0801C760: .4byte gUnknown_203B240
_0801C764: .4byte gUnknown_202DE58
_0801C768: .4byte gUnknown_80DBE2C
_0801C76C:
ldr r0, [r0, 0x24]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073B8
ldr r0, [r5]
ldr r1, [r0, 0x8]
lsls r1, 2
adds r0, 0x10
adds r0, r1
ldr r1, [r0]
ldr r0, _0801C7CC
ldr r1, [r1]
bl strcpy
ldr r2, _0801C7D0
ldr r0, [r5]
ldr r3, [r0, 0x24]
movs r4, 0
str r4, [sp]
movs r0, 0x10
movs r1, 0
bl sub_8014FF0
ldr r3, [r5]
ldr r1, [r3, 0x8]
lsls r1, 2
adds r0, r3, 0
adds r0, 0x10
adds r0, r1
ldr r0, [r0]
ldr r2, [r0, 0x4]
ldr r3, [r3, 0x24]
str r4, [sp]
movs r0, 0x4
movs r1, 0x10
bl sub_8014FF0
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073E0
_0801C7C4:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801C7CC: .4byte gUnknown_202DF98
_0801C7D0: .4byte gUnknown_80DBE30
thumb_func_end sub_801C6E4
thumb_func_start sub_801C7D4
sub_801C7D4:
push {r4,lr}
ldr r0, _0801C810
ldr r2, [r0]
ldr r1, [r2, 0xC]
adds r4, r0, 0
cmp r1, 0
beq _0801C7F8
ldr r0, [r2, 0x20]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801C7F0
bl sub_8013F84
_0801C7F0:
ldr r1, [r4]
ldr r0, [r1, 0x20]
adds r0, 0x1
str r0, [r1, 0x20]
_0801C7F8:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x88
ldr r1, [r1, 0x24]
bl sub_8012A64
cmp r0, 0x1
beq _0801C814
cmp r0, 0x2
beq _0801C836
b _0801C842
.align 2, 0
_0801C810: .4byte gUnknown_203B240
_0801C814:
movs r0, 0
bl sub_80119D4
ldr r1, [r4]
ldr r0, [r1, 0xC]
cmp r0, 0
beq _0801C82E
movs r0, 0
str r0, [r1, 0x8]
movs r0, 0x1
bl sub_801C6D0
b _0801C842
_0801C82E:
movs r0, 0x3
bl sub_801C6D0
b _0801C842
_0801C836:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
bl sub_801C6D0
_0801C842:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801C7D4
thumb_func_start sub_801C848
sub_801C848:
push {r4,lr}
ldr r0, _0801C888
ldr r3, [r0]
ldr r1, [r3, 0xC]
subs r1, 0x1
ldr r2, [r3, 0x8]
adds r4, r0, 0
cmp r2, r1
bge _0801C870
ldr r0, [r3, 0x20]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801C868
bl sub_8013F84
_0801C868:
ldr r1, [r4]
ldr r0, [r1, 0x20]
adds r0, 0x1
str r0, [r1, 0x20]
_0801C870:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x88
ldr r1, [r1, 0x24]
bl sub_8012A64
cmp r0, 0x1
beq _0801C88C
cmp r0, 0x2
beq _0801C8B0
b _0801C8BC
.align 2, 0
_0801C888: .4byte gUnknown_203B240
_0801C88C:
movs r0, 0
bl sub_80119D4
ldr r0, [r4]
ldr r1, [r0, 0x8]
adds r1, 0x1
str r1, [r0, 0x8]
ldr r0, [r0, 0xC]
cmp r1, r0
bge _0801C8A8
movs r0, 0x1
bl sub_801C6D0
b _0801C8BC
_0801C8A8:
movs r0, 0
bl sub_801C6D0
b _0801C8BC
_0801C8B0:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
bl sub_801C6D0
_0801C8BC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801C848
thumb_func_start sub_801C8C4
sub_801C8C4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r4, r0, 0
adds r6, r1, 0
mov r9, r2
mov r10, r3
bl sub_801CF14
lsls r0, 24
cmp r0, 0
beq _0801C8E4
movs r0, 0
b _0801C9D0
_0801C8E4:
ldr r5, _0801C9E0
ldr r0, [r5]
cmp r0, 0
bne _0801C8F6
ldr r0, _0801C9E4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
_0801C8F6:
ldr r0, [r5]
str r4, [r0]
bl sub_801CF94
ldr r0, [r5]
movs r4, 0x9D
lsls r4, 3
adds r1, r0, r4
str r6, [r1]
ldr r1, _0801C9E8
mov r8, r1
adds r2, r0, r1
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
movs r7, 0x9E
lsls r7, 3
adds r1, r7
adds r1, r0, r1
str r1, [r2]
adds r0, r7
bl sub_8006518
ldr r1, [r5]
adds r4, r1, r4
ldr r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, r7
ldr r0, _0801C9EC
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r5]
mov r1, r8
adds r0, r2, r1
ldr r1, [r0]
movs r3, 0xAA
lsls r3, 3
adds r0, r2, r3
str r0, [r1, 0x14]
mov r4, r9
cmp r4, 0
beq _0801C96C
movs r1, 0x9D
lsls r1, 3
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
subs r3, 0x58
adds r1, r2, r3
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_0801C96C:
ldr r0, [r5]
add r0, r8
ldr r0, [r0]
mov r1, r10
bl sub_8012D08
bl sub_8004914
ldr r0, [r5]
adds r0, r7
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
ldr r0, _0801C9F0
adds r4, r0
bl sub_801CE58
adds r1, r0, 0
adds r0, r4, 0
mov r2, r10
adds r3, r6, 0
bl sub_8013818
ldr r0, _0801C9F4
ldr r4, [r5]
ldr r1, [r0]
ldr r0, [r4]
cmp r1, r0
bne _0801C9C6
ldr r0, _0801C9F8
ldrh r1, [r0]
ldr r2, _0801C9FC
adds r0, r4, r2
strh r1, [r0]
ldr r0, _0801CA00
ldrh r1, [r0]
ldr r3, _0801CA04
adds r0, r4, r3
strh r1, [r0]
ldr r1, _0801C9F0
adds r0, r4, r1
bl sub_8013984
_0801C9C6:
bl sub_801CC38
bl sub_801CCD8
movs r0, 0x1
_0801C9D0:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801C9E0: .4byte gUnknown_203B244
_0801C9E4: .4byte 0x00000554
_0801C9E8: .4byte 0x000004ec
_0801C9EC: .4byte gUnknown_80DBE54
_0801C9F0: .4byte 0x000004b4
_0801C9F4: .4byte gUnknown_203B248
_0801C9F8: .4byte gUnknown_203B24C
_0801C9FC: .4byte 0x000004cc
_0801CA00: .4byte gUnknown_203B24E
_0801CA04: .4byte 0x000004d2
thumb_func_end sub_801C8C4
thumb_func_start sub_801CA08
sub_801CA08:
push {r4-r6,lr}
lsls r0, 24
cmp r0, 0
bne _0801CA28
ldr r0, _0801CA20
ldr r0, [r0]
ldr r1, _0801CA24
adds r0, r1
bl sub_8013660
movs r0, 0
b _0801CB1E
.align 2, 0
_0801CA20: .4byte gUnknown_203B244
_0801CA24: .4byte 0x000004b4
_0801CA28:
ldr r0, _0801CA44
ldr r0, [r0]
ldr r1, _0801CA48
adds r0, r1
bl GetKeyPress
subs r0, 0x1
cmp r0, 0x5
bhi _0801CAF2
lsls r0, 2
ldr r1, _0801CA4C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801CA44: .4byte gUnknown_203B244
_0801CA48: .4byte 0x000004b4
_0801CA4C: .4byte _0801CA50
.align 2, 0
_0801CA50:
.4byte _0801CA72
.4byte _0801CA68
.4byte _0801CAF2
.4byte _0801CAE8
.4byte _0801CA7C
.4byte _0801CA7C
_0801CA68:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801CB1E
_0801CA72:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0801CB1E
_0801CA7C:
ldr r0, _0801CAD8
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
bne _0801CAF2
bl sub_801CB24
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
bl sub_801CFE0
movs r6, 0
cmp r0, 0
bne _0801CAB0
bl sub_8090A34
adds r4, r0, 0
bl sub_801CFB8
adds r4, r0
cmp r4, 0x13
bgt _0801CAAC
movs r6, 0x1
_0801CAAC:
cmp r6, 0
beq _0801CAE0
_0801CAB0:
movs r0, 0x6
bl sub_80119D4
ldr r0, _0801CAD8
ldr r0, [r0]
lsls r1, r5, 2
adds r2, r0, 0
adds r2, 0xF4
adds r2, r1
ldr r1, [r2]
movs r3, 0x1
eors r1, r3
str r1, [r2]
ldr r1, _0801CADC
adds r0, r1
movs r1, 0
bl sub_80138B8
b _0801CB18
.align 2, 0
_0801CAD8: .4byte gUnknown_203B244
_0801CADC: .4byte 0x000004b4
_0801CAE0:
movs r0, 0x2
bl sub_80119D4
b _0801CAF2
_0801CAE8:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0801CB1E
_0801CAF2:
ldr r0, _0801CB0C
ldr r0, [r0]
ldr r1, _0801CB10
adds r0, r1
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801CB14
movs r0, 0
b _0801CB1E
.align 2, 0
_0801CB0C: .4byte gUnknown_203B244
_0801CB10: .4byte 0x000004b4
_0801CB14:
bl sub_801CC38
_0801CB18:
bl sub_801CCD8
movs r0, 0x1
_0801CB1E:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801CA08
thumb_func_start sub_801CB24
sub_801CB24:
ldr r0, _0801CB50
ldr r0, [r0]
ldr r2, _0801CB54
adds r1, r0, r2
movs r3, 0
ldrsh r2, [r1, r3]
movs r3, 0x9A
lsls r3, 3
adds r1, r0, r3
movs r3, 0
ldrsh r1, [r1, r3]
muls r2, r1
ldr r3, _0801CB58
adds r1, r0, r3
movs r3, 0
ldrsh r1, [r1, r3]
adds r2, r1
adds r0, 0x4
adds r0, r2
ldrb r0, [r0]
bx lr
.align 2, 0
_0801CB50: .4byte gUnknown_203B244
_0801CB54: .4byte 0x000004d2
_0801CB58: .4byte 0x000004cc
thumb_func_end sub_801CB24
thumb_func_start sub_801CB5C
sub_801CB5C:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0801CBAC
ldr r0, [r5]
movs r1, 0x9E
lsls r1, 3
adds r0, r1
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_801CE58
adds r2, r0, 0
ldr r0, [r5]
ldr r3, _0801CBB0
adds r1, r0, r3
strh r2, [r1]
ldr r1, _0801CBB4
adds r0, r1
bl sub_8013984
bl sub_801CC38
bl sub_801CCD8
cmp r4, 0
beq _0801CBA6
ldr r0, [r5]
ldr r3, _0801CBB4
adds r0, r3
bl AddMenuCursorSprite
_0801CBA6:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801CBAC: .4byte gUnknown_203B244
_0801CBB0: .4byte 0x000004d6
_0801CBB4: .4byte 0x000004b4
thumb_func_end sub_801CB5C
thumb_func_start sub_801CBB8
sub_801CBB8:
push {r4-r6,lr}
ldr r5, _0801CC1C
ldr r2, [r5]
cmp r2, 0
beq _0801CC16
ldr r1, _0801CC20
ldr r0, [r2]
str r0, [r1]
ldr r1, _0801CC24
ldr r3, _0801CC28
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _0801CC2C
ldr r6, _0801CC30
adds r0, r2, r6
ldrh r0, [r0]
strh r0, [r1]
movs r1, 0x9D
lsls r1, 3
adds r0, r2, r1
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
movs r4, 0x9E
lsls r4, 3
adds r1, r4
ldr r0, _0801CC34
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
bl sub_8004914
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
bl MemoryFree
movs r0, 0
str r0, [r5]
_0801CC16:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801CC1C: .4byte gUnknown_203B244
_0801CC20: .4byte gUnknown_203B248
_0801CC24: .4byte gUnknown_203B24C
_0801CC28: .4byte 0x000004cc
_0801CC2C: .4byte gUnknown_203B24E
_0801CC30: .4byte 0x000004d2
_0801CC34: .4byte gUnknown_80DBE3C
thumb_func_end sub_801CBB8
thumb_func_start sub_801CC38
sub_801CC38:
push {r4,r5,lr}
ldr r4, _0801CCC4
ldr r0, [r4]
movs r1, 0xAA
lsls r1, 3
adds r0, r1
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r1, _0801CCC8
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r1, 0x1
adds r0, r1
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
ldr r1, _0801CCCC
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
ldr r2, _0801CCD0
adds r0, r2
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r3, [r4]
movs r2, 0x9D
lsls r2, 3
adds r5, r3, r2
ldr r2, [r5]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r3, r1
ldr r2, _0801CCD4
adds r1, r2
asrs r2, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r3, r0
adds r2, 0x2
movs r0, 0xA0
lsls r0, 3
adds r3, r0
strh r2, [r3]
bl sub_8004914
ldr r0, [r4]
movs r1, 0x9E
lsls r1, 3
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801CCC4: .4byte gUnknown_203B244
_0801CCC8: .4byte 0x00000551
_0801CCCC: .4byte 0x00000553
_0801CCD0: .4byte 0x000004ce
_0801CCD4: .4byte 0x000004fe
thumb_func_end sub_801CC38
thumb_func_start sub_801CCD8
sub_801CCD8:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x58
ldr r4, _0801CE38
ldr r0, [r4]
movs r5, 0x9D
lsls r5, 3
adds r0, r5
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r4]
adds r0, r5
ldr r0, [r0]
bl sub_80073B8
ldr r2, _0801CE3C
ldr r0, [r4]
adds r0, r5
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r3, [r4]
ldr r1, _0801CE40
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, 3
adds r0, 0x4
ldr r2, _0801CE44
adds r1, r3, r2
movs r6, 0
ldrsh r2, [r1, r6]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
adds r3, r5
ldr r1, [r3]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r7, 0
ldr r0, [r4]
ldr r1, _0801CE48
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r7, r0
bge _0801CE1A
adds r6, r4, 0
ldr r3, _0801CE4C
mov r9, r3
mov r8, r5
_0801CD50:
ldr r1, [r6]
ldr r4, _0801CE44
adds r0, r1, r4
movs r3, 0
ldrsh r2, [r0, r3]
subs r4, 0x2
adds r0, r1, r4
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r2
adds r0, r7
adds r1, 0x4
adds r1, r0
ldrb r5, [r1]
add r0, sp, 0x8
adds r1, r5, 0
movs r2, 0
bl sub_8090DC4
ldr r0, [r6]
add r0, r9
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r6]
add r0, r8
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x8
add r2, sp, 0x8
bl xxx_call_draw_string
ldr r0, [r6]
add r0, r9
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r4, [r6]
ldr r2, _0801CE50
adds r0, r4, r2
ldr r0, [r0]
movs r3, 0xC
ldrsh r0, [r0, r3]
lsls r0, 3
subs r0, 0x2
ldr r2, _0801CE54
ldr r2, [r2]
lsls r3, r5, 1
adds r2, 0x50
adds r2, r3
ldrh r2, [r2]
movs r3, 0x5
str r3, [sp]
add r4, r8
ldr r3, [r4]
str r3, [sp, 0x4]
movs r3, 0x3
bl sub_8012BC4
adds r0, r5, 0
bl sub_801CFE0
movs r1, 0x1
ands r1, r0
cmp r1, 0
beq _0801CE0A
ldr r0, [r6]
ldr r4, _0801CE4C
adds r0, r4
adds r1, r7, 0
bl sub_8013800
adds r2, r0, 0
ldr r1, [r6]
movs r3, 0x9D
lsls r3, 3
adds r0, r1, r3
ldr r0, [r0]
adds r4, 0x38
adds r1, r4
ldr r1, [r1]
movs r4, 0xC
ldrsh r3, [r1, r4]
subs r3, 0x1
lsls r3, 3
movs r1, 0xA
str r1, [sp]
movs r1, 0x8
bl sub_8007B7C
_0801CE0A:
adds r7, 0x1
ldr r0, [r6]
ldr r1, _0801CE48
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r7, r0
blt _0801CD50
_0801CE1A:
ldr r0, _0801CE38
ldr r0, [r0]
movs r3, 0x9D
lsls r3, 3
adds r0, r3
ldr r0, [r0]
bl sub_80073E0
add sp, 0x58
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801CE38: .4byte gUnknown_203B244
_0801CE3C: .4byte gUnknown_80DBE6C
_0801CE40: .4byte 0x00000552
_0801CE44: .4byte 0x000004d2
_0801CE48: .4byte 0x000004ce
_0801CE4C: .4byte 0x000004b4
_0801CE50: .4byte 0x000004ec
_0801CE54: .4byte gUnknown_203B460
thumb_func_end sub_801CCD8
thumb_func_start sub_801CE58
sub_801CE58:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r3, 0
movs r6, 0x1
ldr r4, _0801CF0C
_0801CE68:
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x2
beq _0801CE92
ldr r0, _0801CF10
ldr r0, [r0]
lsls r1, r6, 1
adds r0, 0x50
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
beq _0801CE9C
lsls r0, r6, 24
lsrs r0, 24
str r3, [sp]
bl sub_8091524
lsls r0, 24
ldr r3, [sp]
cmp r0, 0
beq _0801CE9C
_0801CE92:
ldr r0, [r4]
adds r0, 0x4
adds r0, r3
strb r6, [r0]
adds r3, 0x1
_0801CE9C:
adds r6, 0x1
cmp r6, 0xEF
ble _0801CE68
movs r6, 0
subs r0, r3, 0x1
mov r9, r0
cmp r6, r9
bge _0801CEFC
_0801CEAC:
adds r0, r6, 0x1
mov r8, r0
mov r5, r8
cmp r8, r3
bge _0801CEF6
ldr r7, _0801CF0C
_0801CEB8:
ldr r0, [r7]
adds r0, 0x4
adds r0, r6
ldrb r0, [r0]
str r3, [sp]
bl sub_8090D44
adds r4, r0, 0
ldr r0, [r7]
adds r0, 0x4
adds r0, r5
ldrb r0, [r0]
bl sub_8090D44
ldr r3, [sp]
cmp r4, r0
ble _0801CEF0
ldr r0, [r7]
adds r0, 0x4
adds r1, r0, r6
ldrb r2, [r1]
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
ldr r0, [r7]
adds r0, 0x4
adds r0, r5
strb r2, [r0]
_0801CEF0:
adds r5, 0x1
cmp r5, r3
blt _0801CEB8
_0801CEF6:
mov r6, r8
cmp r6, r9
blt _0801CEAC
_0801CEFC:
adds r0, r3, 0
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801CF0C: .4byte gUnknown_203B244
_0801CF10: .4byte gUnknown_203B460
thumb_func_end sub_801CE58
thumb_func_start sub_801CF14
sub_801CF14:
push {r4,lr}
cmp r0, 0x2
bne _0801CF1E
_0801CF1A:
movs r0, 0
b _0801CF46
_0801CF1E:
movs r4, 0x1
_0801CF20:
ldr r0, _0801CF4C
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x50
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
beq _0801CF3E
lsls r0, r4, 24
lsrs r0, 24
bl sub_8091524
lsls r0, 24
cmp r0, 0
bne _0801CF1A
_0801CF3E:
adds r4, 0x1
cmp r4, 0xEF
ble _0801CF20
movs r0, 0x1
_0801CF46:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0801CF4C: .4byte gUnknown_203B460
thumb_func_end sub_801CF14
thumb_func_start sub_801CF50
sub_801CF50:
push {r4,r5,lr}
cmp r0, 0x2
bne _0801CF5A
_0801CF56:
movs r0, 0
b _0801CF84
_0801CF5A:
movs r4, 0x1
ldr r5, _0801CF8C
_0801CF5E:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _0801CF7C
ldr r0, _0801CF90
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x50
adds r0, r1
ldrh r0, [r0]
cmp r0, r5
bls _0801CF56
_0801CF7C:
adds r4, 0x1
cmp r4, 0xEF
ble _0801CF5E
movs r0, 0x1
_0801CF84:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801CF8C: .4byte 0x000003e6
_0801CF90: .4byte gUnknown_203B460
thumb_func_end sub_801CF50
thumb_func_start sub_801CF94
sub_801CF94:
push {r4,lr}
movs r2, 0
ldr r4, _0801CFB4
movs r3, 0
_0801CF9C:
ldr r0, [r4]
lsls r1, r2, 2
adds r0, 0xF4
adds r0, r1
str r3, [r0]
adds r2, 0x1
cmp r2, 0xEF
ble _0801CF9C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801CFB4: .4byte gUnknown_203B244
thumb_func_end sub_801CF94
thumb_func_start sub_801CFB8
sub_801CFB8:
push {lr}
movs r3, 0
ldr r0, _0801CFDC
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF4
movs r2, 0xEF
_0801CFC6:
ldr r0, [r1]
cmp r0, 0
beq _0801CFCE
adds r3, 0x1
_0801CFCE:
adds r1, 0x4
subs r2, 0x1
cmp r2, 0
bge _0801CFC6
adds r0, r3, 0
pop {r1}
bx r1
.align 2, 0
_0801CFDC: .4byte gUnknown_203B244
thumb_func_end sub_801CFB8
thumb_func_start sub_801CFE0
sub_801CFE0:
lsls r0, 24
ldr r1, _0801CFF0
ldr r1, [r1]
lsrs r0, 22
adds r1, 0xF4
adds r1, r0
ldr r0, [r1]
bx lr
.align 2, 0
_0801CFF0: .4byte gUnknown_203B244
thumb_func_end sub_801CFE0
thumb_func_start sub_801CFF4
sub_801CFF4:
lsls r0, 24
ldr r2, _0801D004
ldr r2, [r2]
lsrs r0, 22
adds r2, 0xF4
adds r2, r0
str r1, [r2]
bx lr
.align 2, 0
_0801D004: .4byte gUnknown_203B244
thumb_func_end sub_801CFF4
thumb_func_start sub_801D008
sub_801D008:
ldr r0, _0801D010
ldr r0, [r0]
bx lr
.align 2, 0
_0801D010: .4byte gUnknown_203B244
thumb_func_end sub_801D008
thumb_func_start sub_801D014
sub_801D014:
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _0801D054
movs r0, 0x8C
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
adds r2, r0, 0
str r2, [r4]
ldr r0, _0801D058
ldr r0, [r0]
str r0, [r2, 0x14]
str r5, [r2]
cmp r5, 0
beq _0801D088
movs r3, 0
ldr r0, _0801D05C
ldr r1, [r0]
adds r4, r0, 0
cmp r5, r1
bne _0801D060
strh r3, [r2, 0x4]
b _0801D08C
.align 2, 0
_0801D054: .4byte gUnknown_203B250
_0801D058: .4byte gUnknown_203B254
_0801D05C: .4byte gUnknown_203B45C
_0801D060:
adds r3, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r3, r0
bgt _0801D08C
ldr r0, _0801D084
ldr r2, [r0]
lsls r0, r3, 16
asrs r0, 16
movs r1, 0x58
muls r1, r0
ldr r0, [r4]
adds r0, r1
ldr r1, [r2]
cmp r1, r0
bne _0801D060
strh r3, [r2, 0x4]
b _0801D08C
.align 2, 0
_0801D084: .4byte gUnknown_203B250
_0801D088:
ldr r0, _0801D0C4
strh r0, [r2, 0x4]
_0801D08C:
bl sub_80A5728
lsls r0, 16
asrs r0, 16
bl sub_8002658
ldr r4, _0801D0C8
ldr r1, [r4]
movs r5, 0
strb r0, [r1, 0x6]
ldr r0, [r4]
strb r5, [r0, 0x8]
ldr r0, [r4]
strb r5, [r0, 0x9]
bl sub_808D33C
ldr r1, [r4]
str r0, [r1, 0xC]
strb r5, [r1, 0x7]
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0
beq _0801D0CC
movs r0, 0x5
bl sub_801D208
b _0801D0D2
.align 2, 0
_0801D0C4: .4byte 0x0000019d
_0801D0C8: .4byte gUnknown_203B250
_0801D0CC:
movs r0, 0
bl sub_801D208
_0801D0D2:
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_801D014
thumb_func_start sub_801D0DC
sub_801D0DC:
push {lr}
ldr r0, _0801D0F4
ldr r0, [r0]
ldr r0, [r0, 0x10]
cmp r0, 0xC
bhi _0801D16C
lsls r0, 2
ldr r1, _0801D0F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801D0F4: .4byte gUnknown_203B250
_0801D0F8: .4byte _0801D0FC
.align 2, 0
_0801D0FC:
.4byte _0801D130
.4byte _0801D130
.4byte _0801D16C
.4byte _0801D136
.4byte _0801D13C
.4byte _0801D142
.4byte _0801D148
.4byte _0801D148
.4byte _0801D14E
.4byte _0801D154
.4byte _0801D15A
.4byte _0801D160
.4byte _0801D166
_0801D130:
bl sub_801D680
b _0801D170
_0801D136:
bl sub_801D760
b _0801D170
_0801D13C:
bl sub_801D77C
b _0801D170
_0801D142:
bl sub_801D798
b _0801D170
_0801D148:
bl sub_801D7CC
b _0801D170
_0801D14E:
bl sub_801D808
b _0801D170
_0801D154:
bl sub_801D824
b _0801D170
_0801D15A:
bl sub_801D840
b _0801D170
_0801D160:
bl sub_801D85C
b _0801D170
_0801D166:
bl sub_801D878
b _0801D170
_0801D16C:
movs r0, 0x3
b _0801D172
_0801D170:
movs r0, 0
_0801D172:
pop {r1}
bx r1
thumb_func_end sub_801D0DC
thumb_func_start sub_801D178
sub_801D178:
push {r4,lr}
ldr r0, _0801D188
ldr r4, [r0]
ldrb r0, [r4, 0x9]
cmp r0, 0
beq _0801D18C
movs r0, 0x2
b _0801D1CC
.align 2, 0
_0801D188: .4byte gUnknown_203B250
_0801D18C:
ldrb r0, [r4, 0x7]
cmp r0, 0
beq _0801D196
movs r0, 0x3
b _0801D1CC
_0801D196:
ldrb r0, [r4, 0x8]
cmp r0, 0
beq _0801D1A0
movs r0, 0x1
b _0801D1CC
_0801D1A0:
bl sub_808D33C
ldr r1, [r4, 0xC]
cmp r1, r0
bne _0801D1C6
movs r0, 0x7
bl sub_80A7AE8
lsls r0, 16
cmp r0, 0
blt _0801D1CA
bl sub_808D3F8
ldrh r0, [r0]
lsrs r0, 1
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _0801D1CA
_0801D1C6:
movs r0, 0x4
b _0801D1CC
_0801D1CA:
movs r0, 0
_0801D1CC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801D178
thumb_func_start sub_801D1D4
sub_801D1D4:
ldr r0, _0801D1DC
ldr r0, [r0]
ldrb r0, [r0, 0x7]
bx lr
.align 2, 0
_0801D1DC: .4byte gUnknown_203B250
thumb_func_end sub_801D1D4
thumb_func_start sub_801D1E0
sub_801D1E0:
push {r4,lr}
ldr r4, _0801D200
ldr r2, [r4]
cmp r2, 0
beq _0801D1FA
ldr r0, _0801D204
ldr r1, [r2, 0x14]
str r1, [r0]
adds r0, r2, 0
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801D1FA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801D200: .4byte gUnknown_203B250
_0801D204: .4byte gUnknown_203B254
thumb_func_end sub_801D1E0
thumb_func_start sub_801D208
sub_801D208:
push {lr}
ldr r1, _0801D21C
ldr r1, [r1]
str r0, [r1, 0x10]
bl sub_801D220
bl sub_801D3A8
pop {r0}
bx r0
.align 2, 0
_0801D21C: .4byte gUnknown_203B250
thumb_func_end sub_801D208
thumb_func_start sub_801D220
sub_801D220:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _0801D248
ldr r0, [r4]
adds r0, 0xB8
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0, 0x10]
cmp r0, 0
beq _0801D250
cmp r0, 0x1
beq _0801D2C0
movs r2, 0
adds r7, r4, 0
ldr r3, _0801D24C
b _0801D368
.align 2, 0
_0801D248: .4byte gUnknown_203B250
_0801D24C: .4byte gUnknown_80DBE7C
_0801D250:
bl sub_801D4C0
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0
beq _0801D290
adds r7, r4, 0
ldr r0, _0801D288
mov r9, r0
mov r12, r7
ldr r2, _0801D28C
mov r8, r2
movs r3, 0
movs r2, 0x3
_0801D26C:
mov r4, r12
ldr r1, [r4]
adds r1, r3
adds r1, 0xB8
mov r0, r8
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801D26C
b _0801D2F6
.align 2, 0
_0801D288: .4byte gUnknown_80DBE98
_0801D28C: .4byte gUnknown_80DBE7C
_0801D290:
adds r7, r4, 0
mov r8, r7
ldr r6, _0801D2BC
mov r9, r6
movs r3, 0
movs r2, 0x3
_0801D29C:
mov r0, r8
ldr r1, [r0]
adds r1, r3
adds r1, 0xB8
mov r0, r9
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
movs r0, 0x18
add r9, r0
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801D29C
b _0801D34E
.align 2, 0
_0801D2BC: .4byte gUnknown_80DBEB0
_0801D2C0:
bl sub_801D4C0
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0
beq _0801D324
adds r7, r4, 0
ldr r2, _0801D31C
mov r9, r2
mov r8, r7
ldr r3, _0801D320
mov r12, r3
movs r3, 0
movs r2, 0x3
_0801D2DC:
mov r4, r8
ldr r1, [r4]
adds r1, r3
adds r1, 0xB8
mov r0, r12
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801D2DC
_0801D2F6:
ldr r1, [r7]
adds r1, 0xB8
mov r0, r9
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0xB8
adds r1, 0x68
bl sub_8012CAC
ldr r0, [r7]
adds r0, 0xC4
movs r1, 0x9
strh r1, [r0]
b _0801D384
.align 2, 0
_0801D31C: .4byte gUnknown_80DBE98
_0801D320: .4byte gUnknown_80DBE7C
_0801D324:
adds r7, r4, 0
mov r8, r7
ldr r6, _0801D364
mov r9, r6
movs r3, 0
movs r2, 0x3
_0801D330:
mov r0, r8
ldr r1, [r0]
adds r1, r3
adds r1, 0xB8
mov r0, r9
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
movs r0, 0x18
add r9, r0
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801D330
_0801D34E:
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0xB8
adds r1, 0x68
bl sub_8012CAC
ldr r0, [r7]
adds r0, 0xC4
movs r1, 0x8
strh r1, [r0]
b _0801D384
.align 2, 0
_0801D364: .4byte gUnknown_80DBEB0
_0801D368:
ldr r0, [r7]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r0, r1
adds r0, 0xB8
adds r1, r3, 0
ldm r1!, {r4-r6}
stm r0!, {r4-r6}
ldm r1!, {r4-r6}
stm r0!, {r4-r6}
adds r2, 0x1
cmp r2, 0x3
ble _0801D368
_0801D384:
bl sub_8004914
ldr r0, _0801D3A4
ldr r0, [r0]
adds r0, 0xB8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801D3A4: .4byte gUnknown_203B250
thumb_func_end sub_801D220
thumb_func_start sub_801D3A8
sub_801D3A8:
push {r4-r6,lr}
sub sp, 0x8
ldr r1, _0801D3C4
ldr r0, [r1]
ldr r0, [r0, 0x10]
adds r6, r1, 0
cmp r0, 0xC
bls _0801D3BA
b _0801D4B6
_0801D3BA:
lsls r0, 2
ldr r1, _0801D3C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801D3C4: .4byte gUnknown_203B250
_0801D3C8: .4byte _0801D3CC
.align 2, 0
_0801D3CC:
.4byte _0801D400
.4byte _0801D400
.4byte _0801D4B6
.4byte _0801D458
.4byte _0801D462
.4byte _0801D468
.4byte _0801D472
.4byte _0801D47A
.4byte _0801D482
.4byte _0801D490
.4byte _0801D49C
.4byte _0801D4AA
.4byte _0801D4B2
_0801D400:
ldr r0, [r6]
ldr r5, [r0]
cmp r5, 0
beq _0801D438
ldr r4, _0801D434
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x7
bl sub_808D9AC
ldr r2, [r6]
str r4, [r2, 0x18]
adds r0, r2, 0
adds r0, 0x18
adds r1, r2, 0
adds r1, 0x68
adds r3, r2, 0
adds r3, 0xA8
ldr r2, [r2, 0x14]
str r2, [sp]
movs r2, 0
str r2, [sp, 0x4]
bl sub_8012D60
b _0801D4B6
.align 2, 0
_0801D434: .4byte gUnknown_202DF98
_0801D438:
bl sub_801D894
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0x18
adds r1, r2, 0
adds r1, 0x68
adds r3, r2, 0
adds r3, 0xA8
ldr r2, [r2, 0x14]
str r2, [sp]
str r5, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _0801D4B6
_0801D458:
ldr r0, [r6]
ldr r0, [r0]
bl sub_80227B8
b _0801D4B6
_0801D462:
bl sub_8027074
b _0801D4B6
_0801D468:
ldr r0, [r6]
ldr r0, [r0]
bl sub_8025EF4
b _0801D4B6
_0801D472:
movs r0, 0
bl sub_80252F0
b _0801D4B6
_0801D47A:
movs r0, 0x1
bl sub_80252F0
b _0801D4B6
_0801D482:
ldr r0, [r6]
movs r1, 0x4
ldrsh r0, [r0, r1]
movs r1, 0x2
bl sub_8024458
b _0801D4B6
_0801D490:
ldr r0, [r6]
movs r1, 0x4
ldrsh r0, [r0, r1]
bl sub_801BEEC
b _0801D4B6
_0801D49C:
ldr r0, [r6]
ldrb r0, [r0, 0x6]
movs r1, 0x1
movs r2, 0x2
bl sub_8021774
b _0801D4B6
_0801D4AA:
movs r0, 0
bl sub_802C860
b _0801D4B6
_0801D4B2:
bl sub_801DCC4
_0801D4B6:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_801D3A8
thumb_func_start sub_801D4C0
sub_801D4C0:
push {r4-r7,lr}
movs r6, 0
ldr r4, _0801D554
ldr r0, [r4]
adds r0, 0xA8
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r0, [r4]
ldrb r0, [r0, 0x6]
cmp r0, 0
bne _0801D568
bl sub_8096E2C
lsls r0, 24
cmp r0, 0
beq _0801D534
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x6C]
ldr r0, _0801D558
str r0, [r1, 0x68]
bl sub_8090A34
cmp r0, 0
bne _0801D4FE
ldr r0, [r4]
adds r0, 0xA8
movs r1, 0x1
strh r1, [r0]
_0801D4FE:
ldr r1, [r4]
ldr r0, _0801D55C
str r0, [r1, 0x70]
movs r0, 0x4
str r0, [r1, 0x74]
movs r6, 0x2
movs r0, 0x2
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0801D534
ldr r1, [r4]
ldr r0, _0801D560
str r0, [r1, 0x78]
movs r0, 0x9
str r0, [r1, 0x7C]
bl sub_802C83C
lsls r0, 24
cmp r0, 0
beq _0801D532
ldr r0, [r4]
adds r0, 0xAC
movs r1, 0x1
strh r1, [r0]
_0801D532:
movs r6, 0x3
_0801D534:
ldr r4, _0801D554
ldr r2, [r4]
lsls r3, r6, 3
adds r0, r2, 0
adds r0, 0x68
adds r0, r3
ldr r1, _0801D564
str r1, [r0]
adds r2, 0x6C
adds r2, r3
movs r0, 0xB
str r0, [r2]
adds r6, 0x1
adds r7, r4, 0
b _0801D5E6
.align 2, 0
_0801D554: .4byte gUnknown_203B250
_0801D558: .4byte gUnknown_80DBF10
_0801D55C: .4byte gUnknown_80DBF18
_0801D560: .4byte gUnknown_80DBF20
_0801D564: .4byte gUnknown_80DBF2C
_0801D568:
ldr r0, _0801D63C
ldr r1, _0801D640
bl strcpy
bl sub_8096E2C
lsls r0, 24
cmp r0, 0
beq _0801D5B6
ldr r1, [r4]
ldr r0, _0801D644
ldr r0, [r0]
str r0, [r1, 0x68]
movs r0, 0x5
str r0, [r1, 0x6C]
movs r0, 0x4
bl sub_8024108
lsls r0, 24
cmp r0, 0
beq _0801D59A
ldr r0, [r4]
adds r0, 0xA8
movs r1, 0x1
strh r1, [r0]
_0801D59A:
movs r6, 0x1
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x74]
ldr r0, _0801D648
str r0, [r1, 0x70]
bl sub_8090A34
cmp r0, 0
bne _0801D5B4
ldr r0, [r4]
adds r0, 0xAA
strh r6, [r0]
_0801D5B4:
movs r6, 0x2
_0801D5B6:
ldr r5, _0801D64C
ldr r1, [r5]
lsls r2, r6, 3
adds r3, r1, 0
adds r3, 0x68
adds r4, r3, r2
ldr r0, _0801D650
ldr r0, [r0]
str r0, [r4]
adds r1, 0x6C
adds r2, r1, r2
movs r0, 0x8
str r0, [r2]
adds r6, 0x1
lsls r2, r6, 3
adds r3, r2
ldr r0, _0801D654
ldr r0, [r0]
str r0, [r3]
adds r1, r2
movs r0, 0xA
str r0, [r1]
adds r6, 0x1
adds r7, r5, 0
_0801D5E6:
ldr r4, [r7]
lsls r2, r6, 3
adds r0, r4, 0
adds r0, 0x68
adds r0, r2
movs r1, 0
str r1, [r0]
adds r1, r4, 0
adds r1, 0x6C
adds r2, r1, r2
movs r0, 0x1
str r0, [r2]
movs r3, 0
cmp r3, r6
bge _0801D622
adds r5, r4, 0
adds r4, 0xA8
adds r2, r1, 0
_0801D60A:
ldrh r0, [r4]
cmp r0, 0
bne _0801D618
ldr r1, [r2]
ldr r0, [r5, 0x14]
cmp r1, r0
beq _0801D67A
_0801D618:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r6
blt _0801D60A
_0801D622:
movs r3, 0
cmp r3, r6
bge _0801D67A
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0xA8
ldrh r0, [r0]
cmp r0, 0
bne _0801D658
ldr r0, [r1, 0x6C]
str r0, [r1, 0x14]
b _0801D67A
.align 2, 0
_0801D63C: .4byte gUnknown_202DF98
_0801D640: .4byte gUnknown_80DBF34
_0801D644: .4byte gUnknown_80D49A8
_0801D648: .4byte gUnknown_80DBF10
_0801D64C: .4byte gUnknown_203B250
_0801D650: .4byte gUnknown_80D4970
_0801D654: .4byte gUnknown_80D49B4
_0801D658:
adds r3, 0x1
cmp r3, r6
bge _0801D67A
ldr r2, [r7]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0xA8
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _0801D658
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x6C
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x14]
_0801D67A:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_801D4C0
thumb_func_start sub_801D680
sub_801D680:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _0801D6C0
ldr r0, [r4]
adds r0, 0x18
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0801D6AC
ldr r0, [r4]
adds r0, 0x18
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0801D6AC
ldr r0, [r4]
str r1, [r0, 0x14]
_0801D6AC:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0xA
bhi _0801D756
lsls r0, 2
ldr r1, _0801D6C4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801D6C0: .4byte gUnknown_203B250
_0801D6C4: .4byte _0801D6C8
.align 2, 0
_0801D6C8:
.4byte _0801D750
.4byte _0801D6F4
.4byte _0801D704
.4byte _0801D6FC
.4byte _0801D70C
.4byte _0801D714
.4byte _0801D71C
.4byte _0801D724
.4byte _0801D72C
.4byte _0801D734
.4byte _0801D748
_0801D6F4:
movs r0, 0x3
bl sub_801D208
b _0801D756
_0801D6FC:
movs r0, 0x6
bl sub_801D208
b _0801D756
_0801D704:
movs r0, 0x4
bl sub_801D208
b _0801D756
_0801D70C:
movs r0, 0x7
bl sub_801D208
b _0801D756
_0801D714:
movs r0, 0x8
bl sub_801D208
b _0801D756
_0801D71C:
movs r0, 0x9
bl sub_801D208
b _0801D756
_0801D724:
movs r0, 0xA
bl sub_801D208
b _0801D756
_0801D72C:
movs r0, 0xB
bl sub_801D208
b _0801D756
_0801D734:
ldr r0, _0801D744
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x9]
movs r0, 0x2
bl sub_801D208
b _0801D756
.align 2, 0
_0801D744: .4byte gUnknown_203B250
_0801D748:
movs r0, 0xC
bl sub_801D208
b _0801D756
_0801D750:
movs r0, 0x2
bl sub_801D208
_0801D756:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801D680
thumb_func_start sub_801D760
sub_801D760:
push {lr}
bl sub_8022860
cmp r0, 0x1
bls _0801D778
cmp r0, 0x3
bhi _0801D778
bl sub_8022908
movs r0, 0x1
bl sub_801D208
_0801D778:
pop {r0}
bx r0
thumb_func_end sub_801D760
thumb_func_start sub_801D77C
sub_801D77C:
push {lr}
bl sub_80270A4
cmp r0, 0x1
bls _0801D794
cmp r0, 0x3
bhi _0801D794
bl sub_8027168
movs r0, 0x1
bl sub_801D208
_0801D794:
pop {r0}
bx r0
thumb_func_end sub_801D77C
thumb_func_start sub_801D798
sub_801D798:
push {lr}
bl sub_8025F68
cmp r0, 0x1
bls _0801D7C2
cmp r0, 0x3
bhi _0801D7C2
bl sub_802604C
lsls r0, 24
cmp r0, 0
beq _0801D7B8
ldr r0, _0801D7C8
ldr r1, [r0]
ldrb r0, [r1, 0x6]
strb r0, [r1, 0x7]
_0801D7B8:
bl sub_8026058
movs r0, 0x2
bl sub_801D208
_0801D7C2:
pop {r0}
bx r0
.align 2, 0
_0801D7C8: .4byte gUnknown_203B250
thumb_func_end sub_801D798
thumb_func_start sub_801D7CC
sub_801D7CC:
push {r4,lr}
bl sub_8025354
cmp r0, 0x1
bls _0801D802
cmp r0, 0x3
bhi _0801D802
bl sub_802540C
ldr r4, _0801D7F8
ldr r1, [r4]
strb r0, [r1, 0x7]
bl sub_8025418
ldr r0, [r4]
ldrb r0, [r0, 0x7]
cmp r0, 0
beq _0801D7FC
movs r0, 0x2
bl sub_801D208
b _0801D802
.align 2, 0
_0801D7F8: .4byte gUnknown_203B250
_0801D7FC:
movs r0, 0x1
bl sub_801D208
_0801D802:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801D7CC
thumb_func_start sub_801D808
sub_801D808:
push {lr}
bl sub_80244E4
cmp r0, 0x1
bls _0801D820
cmp r0, 0x3
bhi _0801D820
bl sub_802453C
movs r0, 0x1
bl sub_801D208
_0801D820:
pop {r0}
bx r0
thumb_func_end sub_801D808
thumb_func_start sub_801D824
sub_801D824:
push {lr}
bl sub_801BF48
cmp r0, 0x1
bls _0801D83C
cmp r0, 0x3
bhi _0801D83C
bl sub_801BF98
movs r0, 0x1
bl sub_801D208
_0801D83C:
pop {r0}
bx r0
thumb_func_end sub_801D824
thumb_func_start sub_801D840
sub_801D840:
push {lr}
bl sub_80217EC
cmp r0, 0x1
bls _0801D858
cmp r0, 0x3
bhi _0801D858
bl sub_8021830
movs r0, 0x1
bl sub_801D208
_0801D858:
pop {r0}
bx r0
thumb_func_end sub_801D840
thumb_func_start sub_801D85C
sub_801D85C:
push {lr}
bl sub_802C898
cmp r0, 0x1
bls _0801D874
cmp r0, 0x3
bhi _0801D874
bl sub_802C8F4
movs r0, 0x1
bl sub_801D208
_0801D874:
pop {r0}
bx r0
thumb_func_end sub_801D85C
thumb_func_start sub_801D878
sub_801D878:
push {lr}
bl sub_801DCE8
cmp r0, 0x1
bls _0801D890
cmp r0, 0x3
bhi _0801D890
bl sub_801DD50
movs r0, 0x1
bl sub_801D208
_0801D890:
pop {r0}
bx r0
thumb_func_end sub_801D878
thumb_func_start sub_801D894
sub_801D894:
push {r4-r6,lr}
sub sp, 0x68
ldr r0, _0801D8A8
ldr r1, [r0]
ldrb r0, [r1, 0x6]
cmp r0, 0
bne _0801D8AC
bl sub_8098FB4
b _0801D8B2
.align 2, 0
_0801D8A8: .4byte gUnknown_203B250
_0801D8AC:
ldrb r0, [r1, 0x6]
bl sub_8092524
_0801D8B2:
add r2, sp, 0x68
add r1, sp, 0x4
movs r3, 0
bl xxx_format_string
add r0, sp, 0x4
bl sub_8008ED0
movs r4, 0x80
subs r4, r0
lsrs r0, r4, 31
adds r4, r0
asrs r4, 1
movs r0, 0x1
bl sub_8008C54
movs r0, 0x1
bl sub_80073B8
movs r6, 0
str r6, [sp]
adds r0, r4, 0
movs r1, 0x4
add r2, sp, 0x4
movs r3, 0x1
bl xxx_call_draw_string
movs r0, 0x1
bl sub_80073E0
movs r0, 0x2
bl sub_8008C54
movs r0, 0x2
bl sub_80073B8
movs r0, 0x2
movs r1, 0x8
movs r2, 0x6
bl sub_801D970
ldr r5, _0801D964
bl sub_8092178
lsls r0, 24
lsrs r0, 24
bl sub_80921A8
adds r4, r0, 0
bl sub_8092110
adds r3, r0, 0
add r0, sp, 0x4
adds r1, r5, 0
adds r2, r4, 0
bl sub_800D158
str r6, [sp]
movs r0, 0x20
movs r1, 0x4
add r2, sp, 0x4
movs r3, 0x2
bl xxx_call_draw_string
ldr r1, _0801D968
ldr r0, _0801D96C
ldr r0, [r0]
movs r2, 0x98
lsls r2, 2
adds r0, r2
ldr r2, [r0]
add r0, sp, 0x4
bl sub_800D158
str r6, [sp]
movs r0, 0x20
movs r1, 0x12
add r2, sp, 0x4
movs r3, 0x2
bl xxx_call_draw_string
movs r0, 0x2
bl sub_80073E0
add sp, 0x68
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801D964: .4byte gUnknown_80DBF3C
_0801D968: .4byte gUnknown_80DBF4C
_0801D96C: .4byte gUnknown_203B460
thumb_func_end sub_801D894
thumb_func_start sub_801D970
sub_801D970:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
mov r8, r0
mov r9, r1
mov r10, r2
ldr r0, _0801D9DC
ldr r1, _0801D9E0
bl OpenFileAndGetFileDataPtr
adds r7, r0, 0
ldr r0, [r7, 0x4]
ldr r6, [r0]
ldr r5, [r0, 0x4]
movs r4, 0
_0801D994:
adds r0, r4, 0
adds r0, 0xE0
adds r1, r5, 0
bl SetBGPaletteBufferColorArray
adds r5, 0x4
adds r4, 0x1
cmp r4, 0xF
ble _0801D994
bl sub_8092178
lsls r0, 24
lsrs r0, 17
adds r6, r0
movs r0, 0x10
str r0, [sp]
str r6, [sp, 0x4]
movs r0, 0xE
str r0, [sp, 0x8]
mov r0, r8
mov r1, r9
mov r2, r10
movs r3, 0x10
bl sub_8007E20
adds r0, r7, 0
bl CloseFile
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801D9DC: .4byte gUnknown_80DBF60
_0801D9E0: .4byte gUnknown_8380000
thumb_func_end sub_801D970
thumb_func_start sub_801D9E4
sub_801D9E4:
push {r4,r5,lr}
ldr r4, _0801DA50
movs r0, 0xA0
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0x3
str r1, [r0, 0x34]
adds r1, r0, 0
adds r1, 0x84
str r1, [r0, 0x38]
adds r0, 0x3C
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _0801DA54
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r0, [r4]
ldr r1, [r0, 0x38]
adds r0, 0x9C
str r0, [r1, 0x14]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
ldr r3, [r0, 0x34]
movs r1, 0xE5
movs r2, 0xA
bl sub_8013818
bl sub_801DB54
bl sub_801DBD4
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801DA50: .4byte gUnknown_203B258
_0801DA54: .4byte gUnknown_80DBF88
thumb_func_end sub_801D9E4
thumb_func_start sub_801DA58
sub_801DA58:
push {lr}
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
ldr r0, _0801DA74
ldr r0, [r0]
bl sub_8013878
bl sub_801DB54
bl sub_801DBD4
pop {r0}
bx r0
.align 2, 0
_0801DA74: .4byte gUnknown_203B258
thumb_func_end sub_801DA58
thumb_func_start sub_801DA78
sub_801DA78:
push {r4,lr}
ldr r4, _0801DA94
ldr r0, [r4]
bl GetKeyPress
cmp r0, 0x1
beq _0801DA98
cmp r0, 0x2
bne _0801DA9C
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801DAB8
.align 2, 0
_0801DA94: .4byte gUnknown_203B258
_0801DA98:
movs r0, 0x3
b _0801DAB8
_0801DA9C:
ldr r0, [r4]
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801DAAE
movs r0, 0
b _0801DAB8
_0801DAAE:
bl sub_801DB54
bl sub_801DBD4
movs r0, 0x1
_0801DAB8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801DA78
thumb_func_start sub_801DAC0
sub_801DAC0:
ldr r0, _0801DAD8
ldr r1, [r0]
ldrh r2, [r1, 0x1E]
ldrh r0, [r1, 0x1C]
adds r3, r0, 0
muls r3, r2
adds r0, r3, 0
ldrh r1, [r1, 0x18]
adds r0, r1
lsls r0, 16
asrs r0, 16
bx lr
.align 2, 0
_0801DAD8: .4byte gUnknown_203B258
thumb_func_end sub_801DAC0
thumb_func_start sub_801DADC
sub_801DADC:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _0801DB08
ldr r0, [r5]
movs r1, 0xE5
strh r1, [r0, 0x22]
bl sub_8013984
bl sub_801DB54
bl sub_801DBD4
cmp r4, 0
beq _0801DB02
ldr r0, [r5]
bl AddMenuCursorSprite
_0801DB02:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801DB08: .4byte gUnknown_203B258
thumb_func_end sub_801DADC
thumb_func_start sub_801DB0C
sub_801DB0C:
push {r4,r5,lr}
ldr r4, _0801DB4C
ldr r2, [r4]
cmp r2, 0
beq _0801DB46
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _0801DB50
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801DB46:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801DB4C: .4byte gUnknown_203B258
_0801DB50: .4byte gUnknown_80DBF70
thumb_func_end sub_801DB0C
thumb_func_start sub_801DB54
sub_801DB54:
push {r4,lr}
ldr r4, _0801DBD0
ldr r0, [r4]
adds r0, 0x9C
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9D
strb r2, [r0]
ldr r0, [r4]
adds r0, 0x9E
movs r1, 0x8
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9F
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x34]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x34]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x4C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801DBD0: .4byte gUnknown_203B258
thumb_func_end sub_801DB54
thumb_func_start sub_801DBD4
sub_801DBD4:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r5, _0801DCB4
ldr r0, [r5]
ldr r0, [r0, 0x34]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r2, _0801DCB8
ldr r0, [r5]
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x9E
ldrb r4, [r0]
lsls r4, 3
subs r4, 0x2
movs r0, 0x1E
ldrsh r2, [r1, r0]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r1, 0x34]
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r6, 0
ldr r0, [r5]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r6, r0
bge _0801DC9C
adds r7, r5, 0
mov r8, r6
_0801DC34:
ldr r0, [r7]
ldrh r2, [r0, 0x1E]
ldrh r1, [r0, 0x1C]
adds r3, r2, 0
muls r3, r1
adds r1, r3, 0
adds r1, r6
lsls r1, 16
asrs r1, 16
lsls r5, r1, 1
adds r5, r1
lsls r5, 2
ldr r1, _0801DCBC
adds r5, r1
movs r2, 0x4
ldrsh r1, [r5, r2]
lsls r4, r1, 3
subs r4, r1
lsls r4, 2
ldr r1, _0801DCC0
adds r4, r1
adds r1, r6, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, [r4]
ldr r0, [r7]
ldr r3, [r0, 0x34]
mov r0, r8
str r0, [sp]
movs r0, 0x8
bl xxx_call_draw_string
ldr r0, [r7]
adds r1, r6, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, [r5, 0x8]
ldr r0, [r7]
ldr r3, [r0, 0x34]
mov r0, r8
str r0, [sp]
movs r0, 0x3E
bl xxx_call_draw_string
adds r6, 0x1
ldr r0, [r7]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r6, r0
blt _0801DC34
_0801DC9C:
ldr r0, _0801DCB4
ldr r0, [r0]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801DCB4: .4byte gUnknown_203B258
_0801DCB8: .4byte gUnknown_80DBFA0
_0801DCBC: .4byte gUnknown_811BAF4
_0801DCC0: .4byte gUnknown_81188F0
thumb_func_end sub_801DBD4
thumb_func_start sub_801DCC4
sub_801DCC4:
push {r4,lr}
ldr r4, _0801DCE4
movs r0, 0x8E
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r0, 0
bl sub_801DD6C
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0801DCE4: .4byte gUnknown_203B25C
thumb_func_end sub_801DCC4
thumb_func_start sub_801DCE8
sub_801DCE8:
push {lr}
ldr r0, _0801DD00
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x7
bhi _0801DD48
lsls r0, 2
ldr r1, _0801DD04
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801DD00: .4byte gUnknown_203B25C
_0801DD04: .4byte _0801DD08
.align 2, 0
_0801DD08:
.4byte _0801DD2C
.4byte _0801DD2C
.4byte _0801DD28
.4byte _0801DD32
.4byte _0801DD32
.4byte _0801DD38
.4byte _0801DD3E
.4byte _0801DD44
_0801DD28:
movs r0, 0x3
b _0801DD4A
_0801DD2C:
bl sub_801E028
b _0801DD48
_0801DD32:
bl sub_801E088
b _0801DD48
_0801DD38:
bl sub_801E0E0
b _0801DD48
_0801DD3E:
bl sub_801E0FC
b _0801DD48
_0801DD44:
bl sub_801E138
_0801DD48:
movs r0, 0
_0801DD4A:
pop {r1}
bx r1
thumb_func_end sub_801DCE8
thumb_func_start sub_801DD50
sub_801DD50:
push {r4,lr}
ldr r4, _0801DD68
ldr r0, [r4]
cmp r0, 0
beq _0801DD62
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801DD62:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801DD68: .4byte gUnknown_203B25C
thumb_func_end sub_801DD50
thumb_func_start sub_801DD6C
sub_801DD6C:
push {lr}
ldr r1, _0801DD80
ldr r1, [r1]
str r0, [r1]
bl sub_801DD84
bl sub_801DED0
pop {r0}
bx r0
.align 2, 0
_0801DD80: .4byte gUnknown_203B25C
thumb_func_end sub_801DD6C
thumb_func_start sub_801DD84
sub_801DD84:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _0801DDAC
ldr r0, [r4]
adds r0, 0xBC
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0
beq _0801DDB4
cmp r0, 0x1
beq _0801DE38
movs r3, 0
adds r7, r4, 0
ldr r2, _0801DDB0
b _0801DE90
.align 2, 0
_0801DDAC: .4byte gUnknown_203B25C
_0801DDB0: .4byte gUnknown_80DBFB0
_0801DDB4:
bl sub_801DFA4
movs r3, 0
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xAC
ldrh r0, [r0]
cmp r0, 0
bne _0801DDCE
ldr r0, [r1, 0x70]
str r0, [r1, 0x18]
adds r7, r4, 0
b _0801DDF2
_0801DDCE:
adds r3, 0x1
ldr r7, _0801DE2C
cmp r3, 0x7
bgt _0801DDF2
ldr r2, [r7]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0xAC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _0801DDCE
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x70
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x18]
_0801DDF2:
ldr r0, _0801DE30
mov r9, r0
ldr r2, _0801DE2C
mov r12, r2
ldr r3, _0801DE34
mov r8, r3
movs r2, 0
movs r3, 0x3
_0801DE02:
mov r4, r12
ldr r1, [r4]
adds r1, r2
adds r1, 0xBC
mov r0, r8
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
adds r2, 0x18
subs r3, 0x1
cmp r3, 0
bge _0801DE02
ldr r1, [r7]
adds r1, 0xBC
mov r0, r9
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
b _0801DE70
.align 2, 0
_0801DE2C: .4byte gUnknown_203B25C
_0801DE30: .4byte gUnknown_80DBFCC
_0801DE34: .4byte gUnknown_80DBFB0
_0801DE38:
bl sub_801DFA4
mov r8, r4
ldr r6, _0801DE88
mov r12, r6
mov r7, r8
movs r2, 0
movs r3, 0x3
_0801DE48:
mov r0, r8
ldr r1, [r0]
adds r1, r2
adds r1, 0xBC
mov r0, r12
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
adds r2, 0x18
subs r3, 0x1
cmp r3, 0
bge _0801DE48
ldr r1, [r7]
adds r1, 0xBC
ldr r0, _0801DE8C
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
_0801DE70:
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0xBC
adds r1, 0x6C
bl sub_8012CAC
ldr r0, [r7]
adds r0, 0xC8
movs r1, 0xA
strh r1, [r0]
b _0801DEAC
.align 2, 0
_0801DE88: .4byte gUnknown_80DBFB0
_0801DE8C: .4byte gUnknown_80DBFCC
_0801DE90:
ldr r0, [r7]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r0, r1
adds r0, 0xBC
adds r1, r2, 0
ldm r1!, {r4-r6}
stm r0!, {r4-r6}
ldm r1!, {r4-r6}
stm r0!, {r4-r6}
adds r3, 0x1
cmp r3, 0x3
ble _0801DE90
_0801DEAC:
bl sub_8004914
ldr r0, _0801DECC
ldr r0, [r0]
adds r0, 0xBC
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801DECC: .4byte gUnknown_203B25C
thumb_func_end sub_801DD84
thumb_func_start sub_801DED0
sub_801DED0:
push {r4,r5,lr}
sub sp, 0x14
ldr r1, _0801DEEC
ldr r0, [r1]
ldr r0, [r0]
adds r3, r1, 0
cmp r0, 0x7
bhi _0801DF94
lsls r0, 2
ldr r1, _0801DEF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801DEEC: .4byte gUnknown_203B25C
_0801DEF0: .4byte _0801DEF4
.align 2, 0
_0801DEF4:
.4byte _0801DF14
.4byte _0801DF14
.4byte _0801DF94
.4byte _0801DF38
.4byte _0801DF40
.4byte _0801DF48
.4byte _0801DF52
.4byte _0801DF70
_0801DF14:
ldr r2, [r3]
ldr r0, _0801DF34
str r0, [r2, 0x1C]
adds r0, r2, 0
adds r0, 0x1C
adds r1, r2, 0
adds r1, 0x6C
adds r3, r2, 0
adds r3, 0xAC
ldr r2, [r2, 0x18]
str r2, [sp]
movs r2, 0
str r2, [sp, 0x4]
bl sub_8012D60
b _0801DF94
.align 2, 0
_0801DF34: .4byte gUnknown_80DBFE4
_0801DF38:
movs r0, 0
bl sub_801E3F0
b _0801DF94
_0801DF40:
movs r0, 0x1
bl sub_801E510
b _0801DF94
_0801DF48:
ldr r0, [r3]
ldr r0, [r0, 0x4]
bl sub_801E658
b _0801DF94
_0801DF52:
ldr r1, [r3]
ldr r0, _0801DF6C
adds r1, 0x8
ldr r0, [r0]
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldr r0, [r0]
str r0, [r1]
ldr r0, [r3]
adds r0, 0x8
bl sub_801E198
b _0801DF94
.align 2, 0
_0801DF6C: .4byte gUnknown_203B46C
_0801DF70:
bl sub_801DFE4
ldr r0, _0801DF9C
ldr r1, _0801DFA0
ldr r3, [r1]
adds r3, 0x6C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r1, 0x20
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x4
bl sub_8014248
_0801DF94:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801DF9C: .4byte gUnknown_80DBFEC
_0801DFA0: .4byte gUnknown_203B25C
thumb_func_end sub_801DED0
thumb_func_start sub_801DFA4
sub_801DFA4:
push {r4,lr}
ldr r4, _0801DFD8
ldr r0, [r4]
adds r0, 0xAC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r0, [r4]
movs r3, 0
ldr r1, _0801DFDC
str r1, [r0, 0x6C]
movs r1, 0x3
str r1, [r0, 0x70]
movs r2, 0x1
ldr r1, _0801DFE0
str r1, [r0, 0x74]
movs r1, 0x2
str r1, [r0, 0x78]
str r3, [r0, 0x7C]
adds r0, 0x80
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801DFD8: .4byte gUnknown_203B25C
_0801DFDC: .4byte gUnknown_80DC000
_0801DFE0: .4byte gUnknown_80DC010
thumb_func_end sub_801DFA4
thumb_func_start sub_801DFE4
sub_801DFE4:
push {r4,lr}
ldr r4, _0801E01C
ldr r0, [r4]
adds r0, 0xAC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
movs r3, 0
ldr r0, _0801E020
ldr r0, [r0]
str r0, [r1, 0x6C]
movs r0, 0x4
str r0, [r1, 0x70]
movs r2, 0x1
ldr r0, _0801E024
ldr r0, [r0]
str r0, [r1, 0x74]
movs r0, 0x5
str r0, [r1, 0x78]
str r3, [r1, 0x7C]
adds r1, 0x80
str r2, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801E01C: .4byte gUnknown_203B25C
_0801E020: .4byte gUnknown_80D4920
_0801E024: .4byte gUnknown_80D4928
thumb_func_end sub_801DFE4
thumb_func_start sub_801E028
sub_801E028:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _0801E060
ldr r0, [r4]
adds r0, 0x1C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0801E050
ldr r0, [r4]
adds r0, 0x1C
mov r1, sp
bl sub_8013114
ldr r1, [r4]
ldr r0, [sp]
str r0, [r1, 0x18]
_0801E050:
ldr r0, [sp]
cmp r0, 0x2
beq _0801E06A
cmp r0, 0x2
bgt _0801E064
cmp r0, 0x1
beq _0801E07A
b _0801E080
.align 2, 0
_0801E060: .4byte gUnknown_203B25C
_0801E064:
cmp r0, 0x3
beq _0801E072
b _0801E080
_0801E06A:
movs r0, 0x3
bl sub_801DD6C
b _0801E080
_0801E072:
movs r0, 0x6
bl sub_801DD6C
b _0801E080
_0801E07A:
movs r0, 0x2
bl sub_801DD6C
_0801E080:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801E028
thumb_func_start sub_801E088
sub_801E088:
push {lr}
movs r0, 0x1
bl sub_801E474
cmp r0, 0x4
bhi _0801E0DA
lsls r0, 2
ldr r1, _0801E0A0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E0A0: .4byte _0801E0A4
.align 2, 0
_0801E0A4:
.4byte _0801E0DA
.4byte _0801E0DA
.4byte _0801E0D0
.4byte _0801E0B8
.4byte _0801E0B8
_0801E0B8:
bl sub_801E4F4
ldr r1, _0801E0CC
ldr r1, [r1]
str r0, [r1, 0x4]
movs r0, 0x5
bl sub_801DD6C
b _0801E0DA
.align 2, 0
_0801E0CC: .4byte gUnknown_203B25C
_0801E0D0:
bl sub_801E54C
movs r0, 0x1
bl sub_801DD6C
_0801E0DA:
pop {r0}
bx r0
thumb_func_end sub_801E088
thumb_func_start sub_801E0E0
sub_801E0E0:
push {lr}
bl sub_801E6CC
cmp r0, 0x1
bls _0801E0F8
cmp r0, 0x3
bhi _0801E0F8
bl sub_801E724
movs r0, 0x4
bl sub_801DD6C
_0801E0F8:
pop {r0}
bx r0
thumb_func_end sub_801E0E0
thumb_func_start sub_801E0FC
sub_801E0FC:
push {lr}
bl sub_801E218
cmp r0, 0x1
bls _0801E132
cmp r0, 0x3
bhi _0801E132
bl sub_801E2C4
ldr r0, _0801E128
ldr r0, [r0]
adds r0, 0x8
bl sub_80949DC
lsls r0, 24
cmp r0, 0
beq _0801E12C
movs r0, 0x1
bl sub_801DD6C
b _0801E132
.align 2, 0
_0801E128: .4byte gUnknown_203B25C
_0801E12C:
movs r0, 0x7
bl sub_801DD6C
_0801E132:
pop {r0}
bx r0
thumb_func_end sub_801E0FC
thumb_func_start sub_801E138
sub_801E138:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801E18E
ldr r0, [sp]
cmp r0, 0x4
beq _0801E15C
cmp r0, 0x4
bgt _0801E156
cmp r0, 0x1
beq _0801E188
b _0801E18E
_0801E156:
cmp r0, 0x5
beq _0801E188
b _0801E18E
_0801E15C:
ldr r1, _0801E180
ldr r0, _0801E184
ldr r0, [r0]
ldr r1, [r1]
adds r0, 0x8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
bl sub_8094C14
movs r0, 0
bl sub_8099690
movs r0, 0x1
bl sub_801DD6C
b _0801E18E
.align 2, 0
_0801E180: .4byte gUnknown_203B46C
_0801E184: .4byte gUnknown_203B25C
_0801E188:
movs r0, 0x1
bl sub_801DD6C
_0801E18E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801E138
thumb_func_start sub_801E198
sub_801E198:
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, _0801E210
movs r0, 0xAC
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
stm r0!, {r5}
bl sub_801317C
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0x44]
adds r0, r1, 0
adds r0, 0x4C
str r0, [r1, 0x48]
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x44]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x4C
ldr r0, _0801E214
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r0, [r4]
ldr r0, [r0, 0x48]
movs r1, 0x1
bl sub_8012D08
bl sub_8004914
ldr r0, [r4]
adds r0, 0x4C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x10
ldr r3, [r1, 0x44]
movs r1, 0x1
movs r2, 0x1
bl sub_8013818
bl nullsub_38
bl sub_801E310
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801E210: .4byte gUnknown_203B260
_0801E214: .4byte gUnknown_80DC03C
thumb_func_end sub_801E198
thumb_func_start sub_801E218
sub_801E218:
push {r4,lr}
movs r4, 0
bl sub_8012AE8
cmp r0, 0x2
beq _0801E238
cmp r0, 0x2
bgt _0801E22E
cmp r0, 0x1
beq _0801E242
b _0801E294
_0801E22E:
cmp r0, 0x9
beq _0801E24C
cmp r0, 0xA
beq _0801E26C
b _0801E294
_0801E238:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801E2BE
_0801E242:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0801E2BE
_0801E24C:
ldr r0, _0801E264
ldr r1, [r0]
movs r2, 0x28
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0801E294
ldr r1, [r1]
ldrb r0, [r1, 0x8]
cmp r0, 0
bne _0801E268
movs r0, 0x2
b _0801E28A
.align 2, 0
_0801E264: .4byte gUnknown_203B260
_0801E268:
subs r0, 0x1
b _0801E28A
_0801E26C:
ldr r0, _0801E284
ldr r1, [r0]
movs r2, 0x28
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0801E294
ldr r1, [r1]
ldrb r0, [r1, 0x8]
cmp r0, 0x1
bls _0801E288
strb r4, [r1, 0x8]
b _0801E28C
.align 2, 0
_0801E284: .4byte gUnknown_203B260
_0801E288:
adds r0, 0x1
_0801E28A:
strb r0, [r1, 0x8]
_0801E28C:
movs r0, 0x3
bl sub_80119D4
movs r4, 0x1
_0801E294:
ldr r0, _0801E2B8
ldr r0, [r0]
adds r0, 0x10
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801E2AA
cmp r4, 0x1
bne _0801E2BC
_0801E2AA:
bl nullsub_38
bl sub_801E310
movs r0, 0x1
b _0801E2BE
.align 2, 0
_0801E2B8: .4byte gUnknown_203B260
_0801E2BC:
movs r0, 0
_0801E2BE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801E218
thumb_func_start sub_801E2C4
sub_801E2C4:
push {r4,r5,lr}
ldr r4, _0801E304
ldr r2, [r4]
cmp r2, 0
beq _0801E2FE
ldr r0, [r2, 0x44]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4C
ldr r0, _0801E308
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x4C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801E2FE:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801E304: .4byte gUnknown_203B260
_0801E308: .4byte gUnknown_80DC020
thumb_func_end sub_801E2C4
thumb_func_start nullsub_38
nullsub_38:
bx lr
thumb_func_end nullsub_38
thumb_func_start sub_801E310
sub_801E310:
push {r4-r6,lr}
sub sp, 0x4
ldr r5, _0801E368
ldr r0, [r5]
ldr r0, [r0, 0x44]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x44]
bl sub_80073B8
ldr r2, _0801E36C
ldr r0, [r5]
ldr r3, [r0, 0x44]
movs r4, 0
str r4, [sp]
movs r0, 0x10
movs r1, 0
bl xxx_call_draw_string
ldr r0, [r5]
adds r0, 0x10
movs r1, 0
bl sub_8013800
adds r6, r0, 0
ldr r2, _0801E370
ldr r0, [r5]
ldr r3, [r0, 0x44]
str r4, [sp]
movs r0, 0x8
adds r1, r6, 0
bl xxx_call_draw_string
ldr r0, [r5]
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0x1
beq _0801E384
cmp r0, 0x1
bgt _0801E374
cmp r0, 0
beq _0801E37A
b _0801E3D6
.align 2, 0
_0801E368: .4byte gUnknown_203B260
_0801E36C: .4byte gUnknown_80DC054
_0801E370: .4byte gUnknown_80DC064
_0801E374:
cmp r0, 0x2
beq _0801E3B0
b _0801E3D6
_0801E37A:
ldr r0, _0801E380
b _0801E386
.align 2, 0
_0801E380: .4byte gUnknown_80DC084
_0801E384:
ldr r0, _0801E3AC
_0801E386:
bl sub_8008ED0
adds r4, r0, 0
ldr r1, [r5]
ldr r0, [r1, 0x44]
ldr r1, [r1]
ldrb r2, [r1, 0x8]
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, 0x50
adds r2, r6, 0
adds r2, 0xA
movs r3, 0x7
str r3, [sp]
adds r3, r4, 0
bl sub_80078A4
b _0801E3D6
.align 2, 0
_0801E3AC: .4byte gUnknown_80DC08C
_0801E3B0:
ldr r0, _0801E3E8
bl sub_8008ED0
adds r4, r0, 0
ldr r1, [r5]
ldr r0, [r1, 0x44]
ldr r1, [r1]
ldrb r2, [r1, 0x8]
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, 0x50
adds r2, r6, 0
adds r2, 0xA
movs r3, 0x7
str r3, [sp]
adds r3, r4, 0
bl sub_80078A4
_0801E3D6:
ldr r0, _0801E3EC
ldr r0, [r0]
ldr r0, [r0, 0x44]
bl sub_80073E0
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801E3E8: .4byte gUnknown_80DC090
_0801E3EC: .4byte gUnknown_203B260
thumb_func_end sub_801E310
thumb_func_start sub_801E3F0
sub_801E3F0:
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, _0801E46C
ldr r0, [r4]
cmp r0, 0
bne _0801E406
movs r0, 0x9C
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
_0801E406:
ldr r0, [r4]
str r5, [r0, 0x34]
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0x3C
adds r1, r0, r1
str r1, [r0, 0x38]
adds r0, 0x3C
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _0801E470
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r4]
ldr r0, [r0, 0x38]
movs r1, 0xA
bl sub_8012D08
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x5
movs r2, 0xA
adds r3, r5, 0
bl sub_8013818
bl sub_801E594
bl sub_801E5E8
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801E46C: .4byte gUnknown_203B264
_0801E470: .4byte gUnknown_80DC0BC
thumb_func_end sub_801E3F0
thumb_func_start sub_801E474
sub_801E474:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0801E48C
ldr r0, _0801E488
ldr r0, [r0]
bl sub_8013660
movs r0, 0
b _0801E4EE
.align 2, 0
_0801E488: .4byte gUnknown_203B264
_0801E48C:
ldr r0, _0801E4A4
ldr r0, [r0]
bl GetKeyPress
cmp r0, 0x2
beq _0801E4AE
cmp r0, 0x2
bgt _0801E4A8
cmp r0, 0x1
beq _0801E4B8
b _0801E4CC
.align 2, 0
_0801E4A4: .4byte gUnknown_203B264
_0801E4A8:
cmp r0, 0x4
beq _0801E4C2
b _0801E4CC
_0801E4AE:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801E4EE
_0801E4B8:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0801E4EE
_0801E4C2:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0801E4EE
_0801E4CC:
ldr r0, _0801E4E0
ldr r0, [r0]
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801E4E4
movs r0, 0
b _0801E4EE
.align 2, 0
_0801E4E0: .4byte gUnknown_203B264
_0801E4E4:
bl sub_801E594
bl sub_801E5E8
movs r0, 0x1
_0801E4EE:
pop {r1}
bx r1
thumb_func_end sub_801E474
thumb_func_start sub_801E4F4
sub_801E4F4:
ldr r0, _0801E50C
ldr r1, [r0]
movs r0, 0x1E
ldrsh r2, [r1, r0]
movs r3, 0x1C
ldrsh r0, [r1, r3]
muls r0, r2
movs r2, 0x18
ldrsh r1, [r1, r2]
adds r0, r1
bx lr
.align 2, 0
_0801E50C: .4byte gUnknown_203B264
thumb_func_end sub_801E4F4
thumb_func_start sub_801E510
sub_801E510:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0801E548
ldr r0, [r5]
adds r0, 0x3C
movs r1, 0
movs r2, 0
bl sub_800641C
ldr r0, [r5]
bl sub_8013984
bl sub_801E594
bl sub_801E5E8
cmp r4, 0
beq _0801E542
ldr r0, [r5]
bl AddMenuCursorSprite
_0801E542:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801E548: .4byte gUnknown_203B264
thumb_func_end sub_801E510
thumb_func_start sub_801E54C
sub_801E54C:
push {r4,r5,lr}
ldr r4, _0801E58C
ldr r2, [r4]
cmp r2, 0
beq _0801E586
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _0801E590
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801E586:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801E58C: .4byte gUnknown_203B264
_0801E590: .4byte gUnknown_80DC0A0
thumb_func_end sub_801E54C
thumb_func_start sub_801E594
sub_801E594:
push {r4,lr}
ldr r4, _0801E5E4
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x34]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x34]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x4C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801E5E4: .4byte gUnknown_203B264
thumb_func_end sub_801E594
thumb_func_start sub_801E5E8
sub_801E5E8:
push {r4-r6,lr}
sub sp, 0x4
ldr r4, _0801E64C
ldr r0, [r4]
ldr r0, [r0, 0x34]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r2, _0801E650
ldr r0, [r4]
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
movs r0, 0x10
movs r1, 0
bl xxx_call_draw_string
movs r5, 0
adds r6, r4, 0
ldr r4, _0801E654
_0801E616:
ldr r0, [r6]
adds r1, r5, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, [r4]
ldr r0, [r6]
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
movs r0, 0xA
bl xxx_call_draw_string
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x4
ble _0801E616
ldr r0, _0801E64C
ldr r0, [r0]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801E64C: .4byte gUnknown_203B264
_0801E650: .4byte gUnknown_80DC0D4
_0801E654: .4byte gUnknown_80DAA98
thumb_func_end sub_801E5E8
thumb_func_start sub_801E658
sub_801E658:
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, _0801E6C4
movs r0, 0xA0
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0, 0x34]
adds r1, r0, 0
adds r1, 0x3C
str r1, [r0, 0x38]
adds r0, r1, 0
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _0801E6C8
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r4]
ldr r1, [r0, 0x38]
adds r0, 0x9C
str r0, [r1, 0x14]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
ldr r3, [r0, 0x34]
movs r1, 0x5
movs r2, 0x1
bl sub_8013818
ldr r0, [r4]
strh r5, [r0, 0x1E]
bl sub_801E714
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801E6C4: .4byte gUnknown_203B268
_0801E6C8: .4byte gUnknown_80DC0FC
thumb_func_end sub_801E658
thumb_func_start sub_801E6CC
sub_801E6CC:
push {r4,lr}
ldr r4, _0801E6E8
ldr r0, [r4]
bl GetKeyPress
cmp r0, 0x1
beq _0801E6EC
cmp r0, 0x2
bne _0801E6F6
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801E70C
.align 2, 0
_0801E6E8: .4byte gUnknown_203B268
_0801E6EC:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0801E70C
_0801E6F6:
ldr r0, [r4]
bl sub_8013938
lsls r0, 24
cmp r0, 0
bne _0801E706
movs r0, 0
b _0801E70C
_0801E706:
bl sub_801E714
movs r0, 0x1
_0801E70C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801E6CC
thumb_func_start sub_801E714
sub_801E714:
push {lr}
bl sub_801E76C
bl sub_801E7AC
pop {r0}
bx r0
thumb_func_end sub_801E714
thumb_func_start sub_801E724
sub_801E724:
push {r4,r5,lr}
ldr r4, _0801E764
ldr r2, [r4]
cmp r2, 0
beq _0801E75E
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _0801E768
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801E75E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801E764: .4byte gUnknown_203B268
_0801E768: .4byte gUnknown_80DC0E4
thumb_func_end sub_801E724
thumb_func_start sub_801E76C
sub_801E76C:
push {r4,lr}
ldr r4, _0801E7A8
ldr r0, [r4]
ldrh r1, [r0, 0x20]
adds r0, 0x9C
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x1E]
adds r0, 0x9D
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9E
movs r1, 0xF
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9F
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801E7A8: .4byte gUnknown_203B268
thumb_func_end sub_801E76C
thumb_func_start sub_801E7AC
sub_801E7AC:
push {r4-r6,lr}
sub sp, 0x4
ldr r5, _0801E804
ldr r0, [r5]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r3, [r5]
movs r0, 0x1E
ldrsh r1, [r3, r0]
lsls r1, 3
adds r0, r1, 0
adds r0, 0x10
ldr r4, _0801E808
adds r1, r4
ldr r2, [r1]
ldr r3, [r3, 0x34]
movs r6, 0
str r6, [sp]
movs r1, 0
bl xxx_call_draw_string
ldr r1, [r5]
movs r2, 0x1E
ldrsh r0, [r1, r2]
lsls r0, 3
adds r4, 0x4
adds r0, r4
ldr r2, [r0]
ldr r3, [r1, 0x34]
str r6, [sp]
movs r0, 0xA
movs r1, 0x14
bl xxx_call_draw_string
ldr r0, [r5]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801E804: .4byte gUnknown_203B268
_0801E808: .4byte gUnknown_80DAA98
thumb_func_end sub_801E7AC
thumb_func_start sub_801E80C
sub_801E80C:
push {r4-r6,lr}
mov r6, r8
push {r6}
mov r8, r0
adds r4, r1, 0
adds r6, r2, 0
lsls r4, 16
asrs r4, 16
ldr r5, _0801E84C
movs r0, 0xC6
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
adds r2, r0, 0
str r2, [r5]
mov r0, r8
str r0, [r2]
strh r4, [r2, 0xC]
str r6, [r2, 0x10]
ldrh r0, [r6, 0x22]
strh r0, [r2, 0x1C]
mov r1, r8
cmp r1, 0
bne _0801E850
movs r3, 0x94
lsls r3, 1
adds r1, r2, r3
movs r4, 0x8C
lsls r4, 1
adds r0, r2, r4
b _0801E858
.align 2, 0
_0801E84C: .4byte gUnknown_203B26C
_0801E850:
movs r0, 0x94
lsls r0, 1
adds r1, r2, r0
movs r0, 0
_0801E858:
str r0, [r1]
ldr r0, _0801E8B4
bl sub_808DDD0
ldr r2, _0801E8B8
ldr r3, [r2]
movs r4, 0x8C
lsls r4, 1
adds r1, r3, r4
str r0, [r1]
adds r4, 0x4
adds r1, r3, r4
ldr r0, [r0, 0x4]
str r0, [r1]
movs r1, 0x92
lsls r1, 1
adds r0, r3, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
ldr r3, _0801E8BC
adds r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r4, 0xA
adds r0, r4
strb r1, [r0]
ldr r2, [r2]
movs r0, 0x90
lsls r0, 1
adds r1, r2, r0
movs r0, 0x2
strh r0, [r1]
subs r3, 0x3
adds r1, r2, r3
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_801E968
movs r0, 0x1
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801E8B4: .4byte 0x00000155
_0801E8B8: .4byte gUnknown_203B26C
_0801E8BC: .4byte 0x00000125
thumb_func_end sub_801E80C
thumb_func_start sub_801E8C0
sub_801E8C0:
push {lr}
ldr r0, _0801E8D8
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x6
bhi _0801E928
lsls r0, 2
ldr r1, _0801E8DC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E8D8: .4byte gUnknown_203B26C
_0801E8DC: .4byte _0801E8E0
.align 2, 0
_0801E8E0:
.4byte _0801E8FC
.4byte _0801E8FC
.4byte _0801E902
.4byte _0801E908
.4byte _0801E90E
.4byte _0801E91C
.4byte _0801E924
_0801E8FC:
bl sub_801ECBC
b _0801E928
_0801E902:
bl sub_801ED28
b _0801E928
_0801E908:
bl sub_801EDA4
b _0801E928
_0801E90E:
bl sub_801EDC0
ldr r0, _0801E920
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x5
bne _0801E928
_0801E91C:
movs r0, 0x3
b _0801E92A
.align 2, 0
_0801E920: .4byte gUnknown_203B26C
_0801E924:
movs r0, 0x2
b _0801E92A
_0801E928:
movs r0, 0
_0801E92A:
pop {r1}
bx r1
thumb_func_end sub_801E8C0
thumb_func_start sub_801E930
sub_801E930:
ldr r0, _0801E938
ldr r0, [r0]
ldrb r0, [r0, 0xE]
bx lr
.align 2, 0
_0801E938: .4byte gUnknown_203B26C
thumb_func_end sub_801E930
thumb_func_start sub_801E93C
sub_801E93C:
push {r4,lr}
ldr r4, _0801E964
ldr r0, [r4]
cmp r0, 0
beq _0801E95C
movs r1, 0x8C
lsls r1, 1
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801E95C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801E964: .4byte gUnknown_203B26C
thumb_func_end sub_801E93C
thumb_func_start sub_801E968
sub_801E968:
push {lr}
ldr r1, _0801E97C
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_801E980
bl sub_801EA28
pop {r0}
bx r0
.align 2, 0
_0801E97C: .4byte gUnknown_203B26C
thumb_func_end sub_801E968
thumb_func_start sub_801E980
sub_801E980:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0801E9D0
ldr r0, [r4]
movs r5, 0x96
lsls r5, 1
adds r0, r5
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0, 0x4]
cmp r0, 0x2
bne _0801E9DC
bl sub_801EBC4
ldr r1, [r4]
movs r0, 0xA2
lsls r0, 1
adds r1, r0
ldr r0, _0801E9D4
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldr r2, [r4]
movs r0, 0xAE
lsls r0, 1
adds r2, r0
ldr r1, _0801E9D8
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0x28
bl sub_8012CAC
b _0801EA00
.align 2, 0
_0801E9D0: .4byte gUnknown_203B26C
_0801E9D4: .4byte gUnknown_80DC11C
_0801E9D8: .4byte gUnknown_80DC134
_0801E9DC:
mov r12, r4
mov r8, r5
ldr r4, _0801EA20
movs r2, 0
movs r3, 0x3
_0801E9E6:
mov r6, r12
ldr r1, [r6]
adds r1, r2
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r2, 0x18
subs r3, 0x1
cmp r3, 0
bge _0801E9E6
_0801EA00:
bl sub_8004914
ldr r0, _0801EA24
ldr r0, [r0]
movs r7, 0x96
lsls r7, 1
adds r0, r7
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801EA20: .4byte gUnknown_80DC11C
_0801EA24: .4byte gUnknown_203B26C
thumb_func_end sub_801E980
thumb_func_start sub_801EA28
sub_801EA28:
push {r4,r5,lr}
sub sp, 0x14
ldr r1, _0801EA44
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r4, r1, 0
cmp r0, 0x4
bls _0801EA3A
b _0801EBB8
_0801EA3A:
lsls r0, 2
ldr r1, _0801EA48
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801EA44: .4byte gUnknown_203B26C
_0801EA48: .4byte _0801EA4C
.align 2, 0
_0801EA4C:
.4byte _0801EA60
.4byte _0801EA80
.4byte _0801EA8A
.4byte _0801EAB4
.4byte _0801EACA
_0801EA60:
ldr r0, [r4]
movs r2, 0xC
ldrsh r1, [r0, r2]
ldr r2, [r0, 0x10]
ldr r0, _0801EA7C
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
movs r0, 0x2
movs r3, 0
bl sub_801EE10
b _0801EBB8
.align 2, 0
_0801EA7C: .4byte gUnknown_80DC164
_0801EA80:
movs r0, 0x1
movs r1, 0
bl sub_801F1B0
b _0801EBB8
_0801EA8A:
movs r0, 0
bl sub_801F280
ldr r0, _0801EAB0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x78
adds r1, r2, 0
adds r1, 0x28
adds r3, r2, 0
adds r3, 0x68
ldr r2, [r2, 0x24]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _0801EBB8
.align 2, 0
_0801EAB0: .4byte gUnknown_203B26C
_0801EAB4:
ldr r2, [r4]
ldr r0, [r2, 0x20]
ldr r1, [r2, 0x10]
adds r2, 0x14
bl sub_8093560
ldr r0, [r4]
adds r0, 0x14
bl sub_801F808
b _0801EBB8
_0801EACA:
bl sub_801EC7C
ldr r4, _0801EAF8
ldr r5, _0801EAFC
ldr r0, [r5]
ldrh r1, [r0, 0x1C]
adds r0, r4, 0
bl sub_8092C84
adds r4, 0x50
ldr r0, [r5]
ldrh r1, [r0, 0x1E]
adds r0, r4, 0
bl sub_8092C84
ldr r2, [r5]
ldr r3, [r2]
cmp r3, 0x1
bls _0801EB00
cmp r3, 0x2
beq _0801EB68
b _0801EBB8
.align 2, 0
_0801EAF8: .4byte gUnknown_202DF98
_0801EAFC: .4byte gUnknown_203B26C
_0801EB00:
ldrb r4, [r2, 0xE]
cmp r4, 0
beq _0801EB38
ldr r1, _0801EB34
movs r0, 0x64
muls r0, r3
adds r1, 0x30
adds r0, r1
ldr r0, [r0]
adds r3, r2, 0
adds r3, 0x28
adds r1, r2, 0
adds r1, 0x68
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r4, 0x94
lsls r4, 1
adds r1, r2, r4
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
b _0801EB86
.align 2, 0
_0801EB34: .4byte gUnknown_80D8888
_0801EB38:
ldr r1, _0801EB64
movs r0, 0x64
muls r0, r3
adds r1, 0x2C
adds r0, r1
ldr r0, [r0]
adds r3, r2, 0
adds r3, 0x28
adds r1, r2, 0
adds r1, 0x68
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
movs r4, 0x94
lsls r4, 1
adds r1, r2, r4
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
b _0801EB86
.align 2, 0
_0801EB64: .4byte gUnknown_80D8888
_0801EB68:
ldrb r4, [r2, 0xE]
cmp r4, 0
beq _0801EB98
ldr r0, _0801EB94
adds r3, r2, 0
adds r3, 0x28
adds r1, r2, 0
adds r1, 0x68
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
str r1, [sp, 0xC]
movs r1, 0x20
_0801EB86:
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x5
bl sub_8014248
b _0801EBB8
.align 2, 0
_0801EB94: .4byte gUnknown_80DC1A0
_0801EB98:
ldr r0, _0801EBC0
adds r3, r2, 0
adds r3, 0x28
adds r1, r2, 0
adds r1, 0x68
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
movs r1, 0x20
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x5
bl sub_8014248
_0801EBB8:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801EBC0: .4byte gUnknown_80DC1FC
thumb_func_end sub_801EA28
thumb_func_start sub_801EBC4
sub_801EBC4:
push {r4,r5,lr}
movs r5, 0
ldr r4, _0801EC48
ldr r0, [r4]
adds r0, 0x68
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
ldr r0, _0801EC4C
str r0, [r1, 0x28]
movs r0, 0x2
str r0, [r1, 0x2C]
ldrh r0, [r1, 0x1E]
ldr r1, [r1, 0x10]
bl sub_80933A0
lsls r0, 24
cmp r0, 0
beq _0801EBF6
ldr r0, [r4]
ldr r0, [r0, 0x20]
cmp r0, 0x3
ble _0801EBFE
_0801EBF6:
ldr r0, [r4]
adds r0, 0x68
movs r1, 0x1
strh r1, [r0]
_0801EBFE:
adds r5, 0x1
ldr r4, _0801EC48
ldr r0, [r4]
mov r12, r0
lsls r1, r5, 3
mov r3, r12
adds r3, 0x28
adds r2, r3, r1
ldr r0, _0801EC50
ldr r0, [r0]
str r0, [r2]
mov r2, r12
adds r2, 0x2C
adds r1, r2, r1
movs r0, 0x3
str r0, [r1]
adds r5, 0x1
lsls r1, r5, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r2, r1
movs r0, 0x1
str r0, [r2]
movs r3, 0
cmp r3, r5
bge _0801EC76
mov r0, r12
adds r0, 0x68
ldrh r0, [r0]
cmp r0, 0
bne _0801EC54
mov r1, r12
ldr r0, [r1, 0x2C]
str r0, [r1, 0x24]
b _0801EC76
.align 2, 0
_0801EC48: .4byte gUnknown_203B26C
_0801EC4C: .4byte gUnknown_80DC230
_0801EC50: .4byte gUnknown_80D4970
_0801EC54:
adds r3, 0x1
cmp r3, r5
bge _0801EC76
ldr r2, [r4]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0x68
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _0801EC54
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x2C
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x24]
_0801EC76:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801EBC4
thumb_func_start sub_801EC7C
sub_801EC7C:
push {r4,lr}
ldr r4, _0801ECB0
ldr r0, [r4]
adds r0, 0x68
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
movs r3, 0
ldr r0, _0801ECB4
ldr r0, [r0]
str r0, [r1, 0x28]
movs r0, 0x4
str r0, [r1, 0x2C]
movs r2, 0x1
ldr r0, _0801ECB8
ldr r0, [r0]
str r0, [r1, 0x30]
movs r0, 0x5
str r0, [r1, 0x34]
str r3, [r1, 0x38]
str r2, [r1, 0x3C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801ECB0: .4byte gUnknown_203B26C
_0801ECB4: .4byte gUnknown_80D4920
_0801ECB8: .4byte gUnknown_80D4928
thumb_func_end sub_801EC7C
thumb_func_start sub_801ECBC
sub_801ECBC:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x3
beq _0801ECD8
cmp r0, 0x3
bhi _0801ECD2
cmp r0, 0x2
beq _0801ED18
b _0801ED22
_0801ECD2:
cmp r0, 0x4
beq _0801ECF8
b _0801ED22
_0801ECD8:
bl sub_801F194
ldr r1, _0801ECF4
ldr r2, [r1]
str r0, [r2, 0x20]
ldr r1, [r2, 0x10]
lsls r0, 3
adds r1, r0
ldrh r0, [r1, 0x2]
strh r0, [r2, 0x1E]
movs r0, 0x2
bl sub_801E968
b _0801ED22
.align 2, 0
_0801ECF4: .4byte gUnknown_203B26C
_0801ECF8:
bl sub_801F194
ldr r1, _0801ED14
ldr r2, [r1]
str r0, [r2, 0x20]
ldr r1, [r2, 0x10]
lsls r0, 3
adds r1, r0
ldrh r0, [r1, 0x2]
strh r0, [r2, 0x1E]
movs r0, 0x3
bl sub_801E968
b _0801ED22
.align 2, 0
_0801ED14: .4byte gUnknown_203B26C
_0801ED18:
bl sub_801F214
movs r0, 0x6
bl sub_801E968
_0801ED22:
pop {r0}
bx r0
thumb_func_end sub_801ECBC
thumb_func_start sub_801ED28
sub_801ED28:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801EF38
ldr r4, _0801ED60
ldr r0, [r4]
adds r0, 0x78
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0801ED4E
ldr r0, [r4]
adds r0, 0x78
mov r1, sp
bl sub_8013114
_0801ED4E:
ldr r0, [sp]
cmp r0, 0x2
beq _0801ED74
cmp r0, 0x2
bgt _0801ED64
cmp r0, 0x1
beq _0801ED6C
b _0801ED9A
.align 2, 0
_0801ED60: .4byte gUnknown_203B26C
_0801ED64:
cmp r0, 0x3
beq _0801ED94
cmp r0, 0x5
bne _0801ED9A
_0801ED6C:
movs r0, 0x1
bl sub_801E968
b _0801ED9A
_0801ED74:
ldr r0, _0801ED90
bl sub_8011988
ldr r1, [r4]
ldr r0, [r1, 0x20]
ldr r1, [r1, 0x10]
bl sub_80934B0
ldr r1, [r4]
strb r0, [r1, 0xE]
movs r0, 0x4
bl sub_801E968
b _0801ED9A
.align 2, 0
_0801ED90: .4byte 0x00000133
_0801ED94:
movs r0, 0x3
bl sub_801E968
_0801ED9A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801ED28
thumb_func_start sub_801EDA4
sub_801EDA4:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _0801EDBC
cmp r0, 0x3
bhi _0801EDBC
bl sub_801F8D0
movs r0, 0x1
bl sub_801E968
_0801EDBC:
pop {r0}
bx r0
thumb_func_end sub_801EDA4
thumb_func_start sub_801EDC0
sub_801EDC0:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0801EE06
ldr r0, [sp]
cmp r0, 0x4
beq _0801EDE4
cmp r0, 0x4
bgt _0801EDDE
cmp r0, 0x1
beq _0801EE00
b _0801EE06
_0801EDDE:
cmp r0, 0x5
beq _0801EE00
b _0801EE06
_0801EDE4:
bl sub_801F214
ldr r4, _0801EDFC
ldr r1, [r4]
ldr r0, [r1, 0x10]
ldr r1, [r1, 0x20]
bl sub_8093CF8
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x4]
b _0801EE06
.align 2, 0
_0801EDFC: .4byte gUnknown_203B26C
_0801EE00:
movs r0, 0x1
bl sub_801E968
_0801EE06:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801EDC0
thumb_func_start sub_801EE10
sub_801EE10:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r6, r0, 0
mov r9, r2
adds r4, r3, 0
ldr r0, [sp, 0x20]
mov r8, r0
lsls r1, 16
asrs r7, r1, 16
lsls r4, 24
lsrs r4, 24
ldr r5, _0801EF28
movs r0, 0xBC
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r2, 0
strb r4, [r0, 0x4]
ldr r0, [r5]
movs r1, 0x1
strb r1, [r0, 0x5]
ldr r0, [r5]
strb r1, [r0, 0x6]
ldr r0, [r5]
strb r1, [r0, 0x7]
ldr r0, [r5]
str r6, [r0]
cmp r6, 0x1
bls _0801EE5E
cmp r6, 0x3
bhi _0801EE5E
strb r2, [r0, 0x5]
ldr r0, [r5]
strb r2, [r0, 0x6]
ldr r0, [r5]
strb r2, [r0, 0x7]
_0801EE5E:
ldr r4, _0801EF28
ldr r3, [r4]
ldr r2, _0801EF2C
movs r0, 0x58
adds r1, r7, 0
muls r1, r0
ldr r0, [r2]
adds r0, r1
str r0, [r3, 0x8]
ldrb r0, [r0, 0x2]
strb r0, [r3, 0xC]
ldr r0, [r4]
mov r1, r9
str r1, [r0, 0x10]
adds r0, 0xB8
ldr r1, [sp, 0x1C]
str r1, [r0]
bl sub_801F3F8
adds r5, r0, 0
adds r6, r5, 0
cmp r5, 0x4
bge _0801EE8E
movs r6, 0x4
_0801EE8E:
ldr r0, [r4]
adds r0, 0x58
bl sub_8006518
ldr r1, [r4]
mov r2, r8
str r2, [r1, 0x50]
lsls r0, r2, 1
add r0, r8
lsls r0, 3
adds r1, r0
adds r1, 0x58
ldr r0, _0801EF30
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r0, [r4]
adds r0, 0xB8
ldr r0, [r0]
cmp r0, 0
beq _0801EED8
mov r0, r8
bl sub_8006544
ldr r1, [r4]
str r0, [r1, 0x54]
lsls r2, r0, 1
adds r2, r0
lsls r2, 3
adds r1, r2
adds r1, 0x58
ldr r0, _0801EF34
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
_0801EED8:
ldr r0, [r4]
ldr r2, [r0, 0x50]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, 0x58
adds r0, r1
adds r1, r6, 0
bl sub_8012D08
bl sub_8004914
ldr r0, [r4]
adds r0, 0x58
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, 0x1C
adds r1, r5, 0
adds r2, r5, 0
mov r3, r8
bl sub_8013818
ldr r0, [r4]
adds r0, 0x1C
movs r1, 0
bl sub_8013780
movs r0, 0x1
bl sub_801F280
movs r0, 0x1
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801EF28: .4byte gUnknown_203B270
_0801EF2C: .4byte gUnknown_203B45C
_0801EF30: .4byte gUnknown_80DC25C
_0801EF34: .4byte gUnknown_80DC274
thumb_func_end sub_801EE10
thumb_func_start sub_801EF38
sub_801EF38:
push {r4-r7,lr}
lsls r0, 24
movs r7, 0
cmp r0, 0
bne _0801EF54
ldr r0, _0801EF50
ldr r0, [r0]
adds r0, 0x1C
bl sub_8013660
b _0801F18C
.align 2, 0
_0801EF50: .4byte gUnknown_203B270
_0801EF54:
ldr r0, _0801EF70
ldr r0, [r0]
adds r0, 0x1C
bl GetKeyPress
subs r0, 0x1
cmp r0, 0xC
bls _0801EF66
b _0801F12E
_0801EF66:
lsls r0, 2
ldr r1, _0801EF74
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801EF70: .4byte gUnknown_203B270
_0801EF74: .4byte _0801EF78
.align 2, 0
_0801EF78:
.4byte _0801EFB6
.4byte _0801EFAC
.4byte _0801F0E4
.4byte _0801EFC0
.4byte _0801F12E
.4byte _0801F12E
.4byte _0801EFE4
.4byte _0801EFCA
.4byte _0801F12E
.4byte _0801F12E
.4byte _0801F074
.4byte _0801F04C
.4byte _0801F018
_0801EFAC:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801F18E
_0801EFB6:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0801F18E
_0801EFC0:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0801F18E
_0801EFCA:
ldr r5, _0801EFE0
ldr r0, [r5]
movs r1, 0x34
ldrsh r6, [r0, r1]
adds r4, r0, 0
adds r4, 0x1C
ldr r0, [r0, 0x10]
adds r1, r6, 0
bl sub_8092E54
b _0801EFF8
.align 2, 0
_0801EFE0: .4byte gUnknown_203B270
_0801EFE4:
ldr r5, _0801F014
ldr r0, [r5]
movs r1, 0x34
ldrsh r6, [r0, r1]
adds r4, r0, 0
adds r4, 0x1C
ldr r0, [r0, 0x10]
adds r1, r6, 0
bl sub_8092EEC
_0801EFF8:
adds r1, r0, 0
adds r0, r4, 0
bl sub_8013780
ldr r0, [r5]
movs r2, 0x34
ldrsh r0, [r0, r2]
cmp r6, r0
bne _0801F00C
b _0801F12E
_0801F00C:
movs r0, 0x3
bl sub_80119D4
b _0801F12E
.align 2, 0
_0801F014: .4byte gUnknown_203B270
_0801F018:
ldr r0, _0801F048
ldr r2, [r0]
ldrb r1, [r2, 0x5]
adds r5, r0, 0
cmp r1, 0
bne _0801F026
b _0801F12E
_0801F026:
movs r0, 0x34
ldrsh r4, [r2, r0]
ldr r0, [r2, 0x10]
adds r1, r4, 0
bl sub_809309C
_0801F032:
ldr r1, [r5]
strh r0, [r1, 0x34]
lsls r0, 16
asrs r0, 16
cmp r4, r0
beq _0801F06C
movs r0, 0x3
bl sub_80119D4
b _0801F182
.align 2, 0
_0801F048: .4byte gUnknown_203B270
_0801F04C:
ldr r0, _0801F068
ldr r2, [r0]
ldrb r1, [r2, 0x5]
adds r5, r0, 0
cmp r1, 0
beq _0801F12E
movs r1, 0x34
ldrsh r4, [r2, r1]
ldr r0, [r2, 0x10]
adds r1, r4, 0
bl sub_809324C
b _0801F032
.align 2, 0
_0801F068: .4byte gUnknown_203B270
_0801F06C:
movs r0, 0x2
bl sub_80119D4
b _0801F182
_0801F074:
ldr r0, _0801F0C8
ldr r2, [r0]
ldrb r1, [r2, 0x6]
adds r5, r0, 0
cmp r1, 0
beq _0801F12E
ldr r0, _0801F0CC
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0x95
ble _0801F0D0
movs r1, 0x34
ldrsh r0, [r2, r1]
ldr r1, [r2, 0x10]
bl sub_8093318
lsls r0, 24
cmp r0, 0
beq _0801F0D0
ldr r1, [r5]
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_8093400
movs r0, 0x6
bl sub_80119D4
movs r7, 0x1
ldr r1, [r5]
ldrb r0, [r1, 0x4]
cmp r0, 0
bne _0801F12E
strb r7, [r1, 0x4]
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
b _0801F12E
.align 2, 0
_0801F0C8: .4byte gUnknown_203B270
_0801F0CC: .4byte gUnknown_203B460
_0801F0D0:
ldr r0, _0801F0E0
ldr r1, [r0]
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_8093468
b _0801F0FE
.align 2, 0
_0801F0E0: .4byte gUnknown_203B270
_0801F0E4:
ldr r0, _0801F10C
ldr r1, [r0]
ldrb r0, [r1, 0x7]
cmp r0, 0
beq _0801F12E
ldrb r0, [r1, 0xC]
cmp r0, 0
beq _0801F110
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_80934DC
_0801F0FE:
lsls r0, 24
cmp r0, 0
bne _0801F120
movs r0, 0x2
bl sub_80119D4
b _0801F12E
.align 2, 0
_0801F10C: .4byte gUnknown_203B270
_0801F110:
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_8093544
lsls r0, 24
cmp r0, 0
beq _0801F128
_0801F120:
movs r0, 0x6
bl sub_80119D4
b _0801F182
_0801F128:
movs r0, 0x2
bl sub_80119D4
_0801F12E:
cmp r7, 0
bne _0801F182
movs r3, 0
ldr r5, _0801F160
movs r4, 0x1
_0801F138:
ldr r2, [r5]
lsls r0, r3, 3
ldr r1, [r2, 0x10]
adds r1, r0
ldrb r1, [r1]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _0801F16C
movs r0, 0x2
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0801F164
adds r0, r2, 0
adds r0, 0x14
adds r0, r3
strb r4, [r0]
b _0801F16C
.align 2, 0
_0801F160: .4byte gUnknown_203B270
_0801F164:
adds r0, r2, 0
adds r0, 0x14
adds r0, r3
strb r1, [r0]
_0801F16C:
adds r3, 0x1
cmp r3, 0x7
ble _0801F138
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x1C
adds r1, 0x14
bl AddMenuCursorSprite_
cmp r7, 0
beq _0801F18C
_0801F182:
movs r0, 0x1
bl sub_801F280
movs r0, 0x1
b _0801F18E
_0801F18C:
movs r0, 0
_0801F18E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_801EF38
thumb_func_start sub_801F194
sub_801F194:
ldr r0, _0801F1A0
ldr r0, [r0]
movs r1, 0x34
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_0801F1A0: .4byte gUnknown_203B270
thumb_func_end sub_801F194
thumb_func_start sub_801F1A4
sub_801F1A4:
ldr r0, _0801F1AC
ldr r0, [r0]
ldrb r0, [r0, 0x4]
bx lr
.align 2, 0
_0801F1AC: .4byte gUnknown_203B270
thumb_func_end sub_801F1A4
thumb_func_start sub_801F1B0
sub_801F1B0:
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r1, 24
ldr r4, _0801F210
ldr r2, [r4]
ldrb r0, [r2, 0x4]
cmp r0, 0
bne _0801F1C6
strb r1, [r2, 0x4]
_0801F1C6:
bl sub_8004914
ldr r0, [r4]
adds r0, 0x58
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_801F3F8
adds r1, r0, 0
ldr r0, [r4]
strh r1, [r0, 0x3E]
adds r0, 0x1C
bl sub_8013984
ldr r1, [r4]
ldr r0, [r1, 0x10]
movs r2, 0x34
ldrsh r1, [r1, r2]
bl sub_8092F4C
ldr r1, [r4]
strh r0, [r1, 0x34]
movs r0, 0x1
bl sub_801F280
cmp r5, 0
beq _0801F208
ldr r0, [r4]
adds r0, 0x1C
bl AddMenuCursorSprite
_0801F208:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F210: .4byte gUnknown_203B270
thumb_func_end sub_801F1B0
thumb_func_start sub_801F214
sub_801F214:
push {r4-r6,lr}
ldr r4, _0801F278
ldr r2, [r4]
cmp r2, 0
beq _0801F272
ldr r0, [r2, 0x50]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
ldr r3, _0801F27C
adds r1, 0x58
adds r0, r3, 0
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0xB8
ldr r0, [r0]
cmp r0, 0
beq _0801F258
ldr r0, [r2, 0x54]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x58
adds r0, r3, 0
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
_0801F258:
bl sub_8004914
ldr r0, [r4]
adds r0, 0x58
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801F272:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801F278: .4byte gUnknown_203B270
_0801F27C: .4byte gUnknown_80DC240
thumb_func_end sub_801F214
thumb_func_start sub_801F280
sub_801F280:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r4, _0801F30C
ldr r0, [r4]
ldr r0, [r0, 0x50]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x50]
bl sub_80073B8
ldr r0, [r4]
ldr r1, [r0, 0x8]
adds r1, 0x4C
add r0, sp, 0x4
movs r2, 0xA
bl sub_80922B4
ldr r0, _0801F310
add r1, sp, 0x4
bl strcpy
ldr r2, _0801F314
ldr r0, [r4]
ldr r3, [r0, 0x50]
movs r0, 0
str r0, [sp]
movs r0, 0xC
movs r1, 0
bl sub_8014FF0
movs r7, 0
ldr r0, [r4]
movs r1, 0x36
ldrsh r0, [r0, r1]
cmp r7, r0
bge _0801F394
add r5, sp, 0x18
mov r8, r4
movs r0, 0x1
mov r9, r0
_0801F2E0:
adds r0, r5, 0
movs r1, 0
movs r2, 0xC
bl memset
movs r0, 0x6A
str r0, [r5, 0x4]
mov r1, r8
ldr r2, [r1]
lsls r1, r7, 3
ldr r0, [r2, 0x10]
adds r4, r0, r1
ldrb r1, [r4]
mov r0, r9
ands r0, r1
cmp r0, 0
beq _0801F386
ldrb r0, [r2, 0xC]
cmp r0, 0
beq _0801F318
movs r0, 0x2
b _0801F31A
.align 2, 0
_0801F30C: .4byte gUnknown_203B270
_0801F310: .4byte gUnknown_202DF98
_0801F314: .4byte gUnknown_80DC28C
_0801F318:
movs r0, 0x4
_0801F31A:
str r0, [sp, 0x18]
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _0801F328
mov r0, r9
_0801F328:
strb r0, [r5, 0x9]
cmp r7, 0x3
ble _0801F332
mov r1, r9
strb r1, [r5, 0x8]
_0801F332:
ldr r0, _0801F3EC
adds r1, r4, 0
adds r2, r5, 0
bl sub_80928A0
ldr r2, _0801F3F0
ldr r0, [r2]
adds r0, 0x1C
adds r1, r7, 0
str r2, [sp, 0x24]
bl sub_8013800
adds r6, r0, 0
ldrb r1, [r4]
movs r0, 0x2
ands r0, r1
movs r4, 0xD
ldr r2, [sp, 0x24]
cmp r0, 0
bne _0801F372
movs r4, 0x8
cmp r7, 0
beq _0801F372
ldr r0, [r2]
ldr r0, [r0, 0x50]
subs r2, r6, 0x2
movs r1, 0x7
str r1, [sp]
movs r1, 0xC
movs r3, 0x78
bl sub_800792C
_0801F372:
mov r1, r8
ldr r0, [r1]
ldr r3, [r0, 0x50]
movs r0, 0
str r0, [sp]
adds r0, r4, 0
adds r1, r6, 0
ldr r2, _0801F3F4
bl sub_8014FF0
_0801F386:
adds r7, 0x1
mov r1, r8
ldr r0, [r1]
movs r1, 0x36
ldrsh r0, [r0, r1]
cmp r7, r0
blt _0801F2E0
_0801F394:
ldr r4, _0801F3F0
ldr r0, [r4]
ldr r0, [r0, 0x50]
bl sub_80073E0
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xB8
ldr r0, [r0]
cmp r0, 0
beq _0801F3DC
mov r0, r10
cmp r0, 0
beq _0801F3DC
ldr r0, [r1, 0x54]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x54]
bl sub_80073B8
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xB8
ldr r2, [r0]
ldr r3, [r1, 0x54]
movs r0, 0
str r0, [sp]
movs r0, 0x8
movs r1, 0
bl sub_8014FF0
ldr r0, [r4]
ldr r0, [r0, 0x54]
bl sub_80073E0
_0801F3DC:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801F3EC: .4byte gUnknown_202DE58
_0801F3F0: .4byte gUnknown_203B270
_0801F3F4: .4byte gUnknown_80DC2A0
thumb_func_end sub_801F280
thumb_func_start sub_801F3F8
sub_801F3F8:
push {r4,r5,lr}
movs r4, 0
ldr r0, _0801F424
ldr r0, [r0]
movs r5, 0x1
ldr r2, [r0, 0x10]
movs r3, 0x7
_0801F406:
ldrb r1, [r2]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _0801F412
adds r4, 0x1
_0801F412:
adds r2, 0x8
subs r3, 0x1
cmp r3, 0
bge _0801F406
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801F424: .4byte gUnknown_203B270
thumb_func_end sub_801F3F8
thumb_func_start sub_801F428
sub_801F428:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
adds r4, r0, 0
mov r9, r1
lsls r4, 16
asrs r4, 16
ldr r5, _0801F50C
movs r0, 0xFA
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
ldr r3, _0801F510
movs r1, 0x58
adds r2, r4, 0
muls r2, r1
ldr r1, [r3]
adds r1, r2
str r1, [r0]
adds r1, r0, 0
adds r1, 0x8
str r1, [r0, 0x4]
movs r4, 0xDF
lsls r4, 2
adds r1, r0, r4
mov r2, r9
str r2, [r1]
movs r6, 0xE0
lsls r6, 2
adds r2, r0, r6
mov r3, r9
lsls r1, r3, 1
add r1, r9
lsls r1, 3
movs r3, 0xE1
lsls r3, 2
mov r8, r3
add r1, r8
adds r1, r0, r1
str r1, [r2]
add r0, r8
bl sub_8006518
ldr r1, [r5]
adds r4, r1, r4
ldr r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
add r1, r8
ldr r0, _0801F514
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r1, [r5]
adds r6, r1, r6
ldr r0, [r6]
movs r4, 0xF9
lsls r4, 2
adds r1, r4
str r1, [r0, 0x14]
movs r2, 0
movs r0, 0x1
strb r0, [r1]
ldr r0, [r5]
ldr r1, _0801F518
adds r0, r1
strb r2, [r0]
ldr r0, [r5]
ldr r3, _0801F51C
adds r0, r3
movs r1, 0xC
strb r1, [r0]
ldr r0, [r5]
adds r4, 0x3
adds r0, r4
strb r2, [r0]
bl sub_8004914
ldr r0, [r5]
add r0, r8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
movs r0, 0xD2
lsls r0, 2
adds r4, r0
bl sub_801F7E4
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x4
mov r3, r9
bl sub_8013818
bl sub_801F690
bl sub_801F700
movs r0, 0x1
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801F50C: .4byte gUnknown_203B274
_0801F510: .4byte gUnknown_203B45C
_0801F514: .4byte gUnknown_80DC2C4
_0801F518: .4byte 0x000003e5
_0801F51C: .4byte 0x000003e6
thumb_func_end sub_801F428
thumb_func_start sub_801F520
sub_801F520:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0801F540
ldr r0, _0801F53C
ldr r0, [r0]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl sub_8013660
movs r0, 0
b _0801F5AE
.align 2, 0
_0801F53C: .4byte gUnknown_203B274
_0801F540:
ldr r0, _0801F55C
ldr r0, [r0]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl GetKeyPress
cmp r0, 0x2
beq _0801F566
cmp r0, 0x2
bgt _0801F560
cmp r0, 0x1
beq _0801F570
b _0801F584
.align 2, 0
_0801F55C: .4byte gUnknown_203B274
_0801F560:
cmp r0, 0x4
beq _0801F57A
b _0801F584
_0801F566:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0801F5AE
_0801F570:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0801F5AE
_0801F57A:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0801F5AE
_0801F584:
ldr r0, _0801F5A0
ldr r0, [r0]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801F5A4
movs r0, 0
b _0801F5AE
.align 2, 0
_0801F5A0: .4byte gUnknown_203B274
_0801F5A4:
bl sub_801F690
bl sub_801F700
movs r0, 0x1
_0801F5AE:
pop {r1}
bx r1
thumb_func_end sub_801F520
thumb_func_start sub_801F5B4
sub_801F5B4:
push {r4,lr}
ldr r0, _0801F5E8
ldr r1, [r0]
ldr r2, [r1, 0x4]
ldr r3, _0801F5EC
adds r0, r1, r3
movs r4, 0
ldrsh r3, [r0, r4]
movs r4, 0xD9
lsls r4, 2
adds r0, r1, r4
movs r4, 0
ldrsh r0, [r0, r4]
muls r0, r3
movs r3, 0xD8
lsls r3, 2
adds r1, r3
movs r4, 0
ldrsh r1, [r1, r4]
adds r0, r1
lsls r0, 1
adds r2, r0
ldrh r0, [r2]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0801F5E8: .4byte gUnknown_203B274
_0801F5EC: .4byte 0x00000366
thumb_func_end sub_801F5B4
thumb_func_start sub_801F5F0
sub_801F5F0:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0801F638
ldr r0, [r5]
movs r1, 0xE1
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0
bl sub_800641C
ldr r0, [r5]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl sub_8013984
bl sub_801F690
bl sub_801F700
cmp r4, 0
beq _0801F632
ldr r0, [r5]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl AddMenuCursorSprite
_0801F632:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F638: .4byte gUnknown_203B274
thumb_func_end sub_801F5F0
thumb_func_start sub_801F63C
sub_801F63C:
push {r4-r6,lr}
ldr r5, _0801F688
ldr r2, [r5]
cmp r2, 0
beq _0801F680
movs r1, 0xDF
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
movs r4, 0xE1
lsls r4, 2
adds r1, r4
ldr r0, _0801F68C
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
bl sub_8004914
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
bl MemoryFree
movs r0, 0
str r0, [r5]
_0801F680:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801F688: .4byte gUnknown_203B274
_0801F68C: .4byte gUnknown_80DC2AC
thumb_func_end sub_801F63C
thumb_func_start sub_801F690
sub_801F690:
push {r4,r5,lr}
ldr r5, _0801F6F4
ldr r0, [r5]
ldr r1, _0801F6F8
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r3, [r5]
movs r1, 0xDF
lsls r1, 2
adds r4, r3, r1
ldr r2, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r3, r1
ldr r2, _0801F6FC
adds r1, r2
asrs r2, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r3, r0
adds r2, 0x2
movs r0, 0xE5
lsls r0, 2
adds r3, r0
strh r2, [r3]
bl sub_8004914
ldr r0, [r5]
movs r1, 0xE1
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F6F4: .4byte gUnknown_203B274
_0801F6F8: .4byte 0x00000362
_0801F6FC: .4byte 0x00000392
thumb_func_end sub_801F690
thumb_func_start sub_801F700
sub_801F700:
push {r4-r7,lr}
sub sp, 0xB4
ldr r6, _0801F7D4
ldr r0, [r6]
movs r4, 0xDF
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r6]
adds r0, r4
ldr r0, [r0]
bl sub_80073B8
add r5, sp, 0x34
ldr r1, _0801F7D8
ldr r0, [r6]
ldr r3, _0801F7DC
adds r2, r0, r3
movs r7, 0
ldrsh r2, [r2, r7]
adds r2, 0x1
adds r3, 0x2
adds r0, r3
movs r7, 0
ldrsh r3, [r0, r7]
adds r0, r5, 0
bl sub_800D158
ldr r0, [r6]
adds r0, r4
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x10
movs r1, 0
adds r2, r5, 0
bl xxx_call_draw_string
movs r4, 0
ldr r0, [r6]
ldr r1, _0801F7E0
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r4, r0
bge _0801F7BC
adds r5, r6, 0
_0801F762:
ldr r1, [r5]
ldr r2, [r1, 0x4]
ldr r3, _0801F7DC
adds r0, r1, r3
movs r6, 0
ldrsh r3, [r0, r6]
movs r7, 0xD9
lsls r7, 2
adds r1, r7
movs r6, 0
ldrsh r0, [r1, r6]
muls r0, r3
adds r0, r4
lsls r0, 1
adds r2, r0
ldrh r1, [r2]
add r0, sp, 0x4
bl sub_8092C84
ldr r0, [r5]
subs r7, 0x1C
adds r0, r7
adds r1, r4, 0
bl sub_8013800
adds r1, r0, 0
ldr r0, [r5]
movs r2, 0xDF
lsls r2, 2
adds r0, r2
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x8
add r2, sp, 0x4
bl xxx_call_draw_string
adds r4, 0x1
ldr r0, [r5]
ldr r3, _0801F7E0
adds r0, r3
movs r6, 0
ldrsh r0, [r0, r6]
cmp r4, r0
blt _0801F762
_0801F7BC:
ldr r0, _0801F7D4
ldr r0, [r0]
movs r7, 0xDF
lsls r7, 2
adds r0, r7
ldr r0, [r0]
bl sub_80073E0
add sp, 0xB4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801F7D4: .4byte gUnknown_203B274
_0801F7D8: .4byte gUnknown_80DC2DC
_0801F7DC: .4byte 0x00000366
_0801F7E0: .4byte 0x00000362
thumb_func_end sub_801F700
thumb_func_start sub_801F7E4
sub_801F7E4:
push {r4,lr}
ldr r4, _0801F804
ldr r1, [r4]
ldr r0, [r1, 0x4]
ldr r1, [r1]
bl sub_808E218
ldr r0, [r4]
ldr r0, [r0, 0x4]
movs r1, 0xCF
lsls r1, 2
adds r0, r1
ldr r0, [r0]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0801F804: .4byte gUnknown_203B274
thumb_func_end sub_801F7E4
thumb_func_start sub_801F808
sub_801F808:
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x1
bl ResetSprites
ldr r5, _0801F88C
movs r0, 0xD4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
str r1, [r0, 0x5C]
adds r1, r0, 0
adds r1, 0x64
str r1, [r0, 0x60]
adds r0, r1, 0
bl sub_80140B4
bl sub_8004914
ldr r0, [r5]
adds r0, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
str r4, [r0, 0x4]
movs r2, 0x4
ldrh r0, [r4, 0x6]
cmp r0, 0
bne _0801F862
adds r3, r5, 0
_0801F84C:
subs r2, 0x1
cmp r2, 0x1
ble _0801F862
ldr r0, [r3]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r1
subs r0, 0x2
ldrh r0, [r0]
cmp r0, 0
beq _0801F84C
_0801F862:
ldr r4, _0801F88C
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldr r3, [r1, 0x5C]
adds r1, r2, 0
movs r2, 0x1
bl sub_8013818
ldr r0, [r4]
adds r0, 0xC8
bl sub_801317C
movs r0, 0
bl sub_801F918
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801F88C: .4byte gUnknown_203B278
thumb_func_end sub_801F808
thumb_func_start sub_801F890
sub_801F890:
push {lr}
ldr r0, _0801F8A8
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
beq _0801F8BC
cmp r0, 0x1
bgt _0801F8AC
cmp r0, 0
beq _0801F8B6
b _0801F8C6
.align 2, 0
_0801F8A8: .4byte gUnknown_203B278
_0801F8AC:
cmp r0, 0x2
beq _0801F8C6
cmp r0, 0x3
beq _0801F8C2
b _0801F8C6
_0801F8B6:
bl sub_801FA58
b _0801F8CA
_0801F8BC:
bl sub_801FAD4
b _0801F8CA
_0801F8C2:
movs r0, 0x3
b _0801F8CC
_0801F8C6:
movs r0, 0x2
b _0801F8CC
_0801F8CA:
movs r0, 0
_0801F8CC:
pop {r1}
bx r1
thumb_func_end sub_801F890
thumb_func_start sub_801F8D0
sub_801F8D0:
push {r4,r5,lr}
ldr r4, _0801F910
ldr r2, [r4]
cmp r2, 0
beq _0801F90A
ldr r0, [r2, 0x5C]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x64
ldr r0, _0801F914
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801F90A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F910: .4byte gUnknown_203B278
_0801F914: .4byte gUnknown_80DC2F8
thumb_func_end sub_801F8D0
thumb_func_start sub_801F918
sub_801F918:
push {lr}
ldr r1, _0801F92C
ldr r1, [r1]
str r0, [r1]
bl sub_801F930
bl sub_801F9A4
pop {r0}
bx r0
.align 2, 0
_0801F92C: .4byte gUnknown_203B278
thumb_func_end sub_801F918
thumb_func_start sub_801F930
sub_801F930:
push {r4,lr}
ldr r4, _0801F94C
ldr r0, [r4]
adds r0, 0x64
bl sub_80140B4
ldr r2, [r4]
ldr r3, [r2]
cmp r3, 0
beq _0801F950
cmp r3, 0x1
beq _0801F98C
b _0801F99C
.align 2, 0
_0801F94C: .4byte gUnknown_203B278
_0801F950:
ldr r0, [r2, 0x60]
adds r1, r2, 0
adds r1, 0xC4
str r1, [r0, 0x14]
adds r0, r2, 0
adds r0, 0x48
ldrh r0, [r0]
strb r0, [r1]
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x46
ldrh r1, [r1]
adds r0, 0xC5
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC6
movs r1, 0x10
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC7
strb r3, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
b _0801F99C
_0801F98C:
bl sub_8004914
ldr r0, [r4]
adds r0, 0x64
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0801F99C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801F930
thumb_func_start sub_801F9A4
sub_801F9A4:
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _0801F9EC
ldr r0, [r5]
ldr r4, [r0]
cmp r4, 0x1
beq _0801F9F0
cmp r4, 0x1
bgt _0801FA48
cmp r4, 0
bne _0801FA48
ldr r0, [r0, 0x5C]
bl sub_8008C54
ldr r3, [r5]
adds r2, r3, 0
adds r2, 0x46
movs r1, 0
ldrsh r0, [r2, r1]
ldr r1, [r3, 0x4]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
strh r0, [r3, 0x8]
movs r1, 0
ldrsh r0, [r2, r1]
ldrh r1, [r3, 0x8]
ldr r2, [r3, 0x5C]
adds r3, 0x14
bl sub_8093D9C
ldr r1, [r5]
str r0, [r1, 0x10]
str r4, [r1, 0x24]
b _0801FA48
.align 2, 0
_0801F9EC: .4byte gUnknown_203B278
_0801F9F0:
ldr r0, [r0, 0x5C]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x5C]
bl sub_80073B8
ldr r0, [r5]
ldr r1, [r0, 0xC]
lsls r1, 2
adds r0, 0x14
adds r0, r1
ldr r1, [r0]
ldr r0, _0801FA50
ldr r1, [r1]
bl strcpy
ldr r2, _0801FA54
ldr r0, [r5]
ldr r3, [r0, 0x5C]
movs r4, 0
str r4, [sp]
movs r0, 0x10
movs r1, 0
bl sub_8014FF0
ldr r3, [r5]
ldr r1, [r3, 0xC]
lsls r1, 2
adds r0, r3, 0
adds r0, 0x14
adds r0, r1
ldr r0, [r0]
ldr r2, [r0, 0x4]
ldr r3, [r3, 0x5C]
str r4, [sp]
movs r0, 0x4
movs r1, 0x10
bl sub_8014FF0
ldr r0, [r5]
ldr r0, [r0, 0x5C]
bl sub_80073E0
_0801FA48:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801FA50: .4byte gUnknown_202DF98
_0801FA54: .4byte gUnknown_80DC310
thumb_func_end sub_801F9A4
thumb_func_start sub_801FA58
sub_801FA58:
push {r4,lr}
ldr r0, _0801FAA4
ldr r2, [r0]
ldr r1, [r2, 0x10]
adds r4, r0, 0
cmp r1, 0
beq _0801FA7C
ldr r0, [r2, 0x24]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801FA74
bl sub_8013F84
_0801FA74:
ldr r1, [r4]
ldr r0, [r1, 0x24]
adds r0, 0x1
str r0, [r1, 0x24]
_0801FA7C:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC8
ldr r1, [r1, 0x5C]
bl sub_8012A64
cmp r0, 0x1
beq _0801FAA8
cmp r0, 0x2
beq _0801FAC2
ldr r0, [r4]
adds r0, 0x28
bl sub_8013938
lsls r0, 24
cmp r0, 0
beq _0801FACE
movs r0, 0
b _0801FACA
.align 2, 0
_0801FAA4: .4byte gUnknown_203B278
_0801FAA8:
movs r0, 0
bl sub_80119D4
ldr r1, [r4]
ldr r0, [r1, 0x10]
cmp r0, 0
beq _0801FABE
movs r0, 0
str r0, [r1, 0xC]
movs r0, 0x1
b _0801FACA
_0801FABE:
movs r0, 0x3
b _0801FACA
_0801FAC2:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
_0801FACA:
bl sub_801F918
_0801FACE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801FA58
thumb_func_start sub_801FAD4
sub_801FAD4:
push {r4,lr}
ldr r0, _0801FB14
ldr r3, [r0]
ldr r1, [r3, 0x10]
subs r1, 0x1
ldr r2, [r3, 0xC]
adds r4, r0, 0
cmp r2, r1
bge _0801FAFC
ldr r0, [r3, 0x24]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0801FAF4
bl sub_8013F84
_0801FAF4:
ldr r1, [r4]
ldr r0, [r1, 0x24]
adds r0, 0x1
str r0, [r1, 0x24]
_0801FAFC:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC8
ldr r1, [r1, 0x5C]
bl sub_8012A64
cmp r0, 0x1
beq _0801FB18
cmp r0, 0x2
beq _0801FB3C
b _0801FB48
.align 2, 0
_0801FB14: .4byte gUnknown_203B278
_0801FB18:
movs r0, 0
bl sub_80119D4
ldr r0, [r4]
ldr r1, [r0, 0xC]
adds r1, 0x1
str r1, [r0, 0xC]
ldr r0, [r0, 0x10]
cmp r1, r0
bge _0801FB34
movs r0, 0x1
bl sub_801F918
b _0801FB48
_0801FB34:
movs r0, 0
bl sub_801F918
b _0801FB48
_0801FB3C:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
bl sub_801F918
_0801FB48:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801FAD4
thumb_func_start sub_801FB50
sub_801FB50:
push {r4-r7,lr}
adds r4, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r6, _0801FBC0
movs r0, 0xF0
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
movs r7, 0
str r7, [r0, 0x70]
str r7, [r0, 0x74]
str r7, [r0, 0x78]
str r4, [r0]
strb r7, [r0, 0x15]
ldr r0, _0801FBC4
ldr r4, _0801FBC8
adds r1, r4, 0
bl sub_808D8E0
ldr r5, _0801FBCC
adds r0, r5, 0
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
adds r0, r5, 0
subs r0, 0x50
bl strcpy
subs r5, 0xF0
bl sub_808D33C
adds r1, r0, 0
adds r0, r5, 0
bl sub_808DA34
ldr r2, [r6]
ldr r0, [r2]
cmp r0, 0x1
bne _0801FBD0
movs r1, 0xBE
lsls r1, 1
adds r0, r2, r1
str r7, [r0]
b _0801FBDE
.align 2, 0
_0801FBC0: .4byte gUnknown_203B27C
_0801FBC4: .4byte gUnknown_202E5D8
_0801FBC8: .4byte 0x00000155
_0801FBCC: .4byte gUnknown_202E1C8
_0801FBD0:
movs r3, 0xBE
lsls r3, 1
adds r1, r2, r3
movs r4, 0xB6
lsls r4, 1
adds r0, r2, r4
str r0, [r1]
_0801FBDE:
ldr r0, _0801FC34
bl sub_808DDD0
ldr r2, _0801FC38
ldr r3, [r2]
movs r4, 0xB6
lsls r4, 1
adds r1, r3, r4
str r0, [r1]
adds r4, 0x4
adds r1, r3, r4
ldr r0, [r0, 0x4]
str r0, [r1]
movs r1, 0xBC
lsls r1, 1
adds r0, r3, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
ldr r3, _0801FC3C
adds r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r4, 0xA
adds r0, r4
strb r1, [r0]
ldr r2, [r2]
movs r0, 0xBA
lsls r0, 1
adds r1, r2, r0
movs r0, 0x2
strh r0, [r1]
subs r3, 0x3
adds r1, r2, r3
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_801FDA8
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801FC34: .4byte 0x00000155
_0801FC38: .4byte gUnknown_203B27C
_0801FC3C: .4byte 0x00000179
thumb_func_end sub_801FB50
thumb_func_start sub_801FC40
sub_801FC40:
push {lr}
ldr r1, _0801FC5C
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r2, r1, 0
cmp r0, 0x22
bls _0801FC50
b _0801FD70
_0801FC50:
lsls r0, 2
ldr r1, _0801FC60
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801FC5C: .4byte gUnknown_203B27C
_0801FC60: .4byte _0801FC64
.align 2, 0
_0801FC64:
.4byte _0801FCF0
.4byte _0801FCF0
.4byte _0801FCF6
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FCFC
.4byte _0801FD02
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD50
.4byte _0801FD70
.4byte _0801FD08
.4byte _0801FD08
.4byte _0801FD0E
.4byte _0801FD14
.4byte _0801FD1A
.4byte _0801FD70
.4byte _0801FD20
.4byte _0801FD20
.4byte _0801FD26
.4byte _0801FD2C
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD32
.4byte _0801FD38
.4byte _0801FD38
.4byte _0801FD3E
.4byte _0801FD44
.4byte _0801FD4A
_0801FCF0:
bl sub_8021154
b _0801FD74
_0801FCF6:
bl sub_80209AC
b _0801FD74
_0801FCFC:
bl sub_80209FC
b _0801FD74
_0801FD02:
bl sub_8020A34
b _0801FD74
_0801FD08:
bl sub_8020A80
b _0801FD74
_0801FD0E:
bl sub_8020B38
b _0801FD74
_0801FD14:
bl sub_8020C2C
b _0801FD74
_0801FD1A:
bl sub_8020C48
b _0801FD74
_0801FD20:
bl sub_8020C64
b _0801FD74
_0801FD26:
bl sub_8020CC0
b _0801FD74
_0801FD2C:
bl sub_8020D74
b _0801FD74
_0801FD32:
bl sub_8020D90
b _0801FD74
_0801FD38:
bl sub_8020DCC
b _0801FD74
_0801FD3E:
bl sub_8020EB4
b _0801FD74
_0801FD44:
bl sub_80210C8
b _0801FD74
_0801FD4A:
bl sub_80210E4
b _0801FD74
_0801FD50:
ldr r0, [r2]
ldrb r0, [r0, 0x15]
cmp r0, 0x1
bne _0801FD68
ldr r0, _0801FD6C
ldr r1, [r0]
movs r0, 0x98
lsls r0, 2
adds r1, r0
ldr r0, [r1]
subs r0, 0x96
str r0, [r1]
_0801FD68:
movs r0, 0x3
b _0801FD76
.align 2, 0
_0801FD6C: .4byte gUnknown_203B460
_0801FD70:
bl sub_8021130
_0801FD74:
movs r0, 0
_0801FD76:
pop {r1}
bx r1
thumb_func_end sub_801FC40
thumb_func_start sub_801FD7C
sub_801FD7C:
push {r4,lr}
ldr r4, _0801FDA4
ldr r0, [r4]
cmp r0, 0
beq _0801FD9C
movs r1, 0xB6
lsls r1, 1
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801FD9C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801FDA4: .4byte gUnknown_203B27C
thumb_func_end sub_801FD7C
thumb_func_start sub_801FDA8
sub_801FDA8:
push {lr}
ldr r1, _0801FDBC
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_801FDC0
bl sub_801FF28
pop {r0}
bx r0
.align 2, 0
_0801FDBC: .4byte gUnknown_203B27C
thumb_func_end sub_801FDA8
thumb_func_start sub_801FDC0
sub_801FDC0:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0801FDE8
ldr r0, [r4]
movs r5, 0xC0
lsls r5, 1
adds r0, r5
bl sub_8006518
ldr r0, [r4]
ldr r1, [r0, 0x4]
cmp r1, 0x11
beq _0801FE38
cmp r1, 0x11
bgt _0801FDEC
cmp r1, 0x2
beq _0801FDF6
b _0801FED4
.align 2, 0
_0801FDE8: .4byte gUnknown_203B27C
_0801FDEC:
cmp r1, 0x17
beq _0801FE6C
cmp r1, 0x20
beq _0801FE88
b _0801FED4
_0801FDF6:
adds r0, r5
movs r1, 0x80
strb r1, [r0]
ldr r0, [r4]
movs r2, 0xCC
lsls r2, 1
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
movs r3, 0xD8
lsls r3, 1
adds r0, r3
strb r1, [r0]
ldr r1, [r4]
movs r6, 0xE4
lsls r6, 1
adds r1, r6
ldr r0, _0801FE34
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
bl sub_8004914
ldr r0, [r4]
adds r0, r5
movs r1, 0x1
movs r2, 0
bl sub_800641C
b _0801FF14
.align 2, 0
_0801FE34: .4byte gUnknown_80DC37C
_0801FE38:
bl sub_80205D0
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _0801FE68
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0x7C
bl sub_8012CAC
bl sub_8004914
ldr r0, [r4]
movs r6, 0xC0
lsls r6, 1
adds r0, r6
b _0801FEC2
.align 2, 0
_0801FE68: .4byte gUnknown_80DC334
_0801FE6C:
bl sub_802069C
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _0801FE84
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
b _0801FEB0
.align 2, 0
_0801FE84: .4byte gUnknown_80DC334
_0801FE88:
bl sub_802074C
ldr r1, [r4]
movs r7, 0xCC
lsls r7, 1
adds r1, r7
ldr r0, _0801FECC
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _0801FED0
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
_0801FEB0:
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0x7C
bl sub_8012CAC
bl sub_8004914
ldr r0, [r4]
adds r0, r5
_0801FEC2:
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
b _0801FF14
.align 2, 0
_0801FECC: .4byte gUnknown_80DC31C
_0801FED0: .4byte gUnknown_80DC34C
_0801FED4:
ldr r5, _0801FF20
mov r12, r5
movs r6, 0xC0
lsls r6, 1
mov r8, r6
ldr r4, _0801FF24
movs r3, 0
movs r2, 0x3
_0801FEE4:
mov r7, r12
ldr r1, [r7]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801FEE4
bl sub_8004914
ldr r0, _0801FF20
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 1
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0801FF14:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801FF20: .4byte gUnknown_203B27C
_0801FF24: .4byte gUnknown_80DC31C
thumb_func_end sub_801FDC0
thumb_func_start sub_801FF28
sub_801FF28:
push {r4,r5,lr}
sub sp, 0x14
ldr r1, _0801FF44
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r5, r1, 0
cmp r0, 0x23
bls _0801FF3A
b _08020562
_0801FF3A:
lsls r0, 2
ldr r1, _0801FF48
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801FF44: .4byte gUnknown_203B27C
_0801FF48: .4byte _0801FF4C
.align 2, 0
_0801FF4C:
.4byte _0801FFDC
.4byte _08020018
.4byte _08020064
.4byte _0802006C
.4byte _08020090
.4byte _080200B4
.4byte _080200D8
.4byte _080200FC
.4byte _08020144
.4byte _0802018C
.4byte _080201B0
.4byte _080201D4
.4byte _080201F8
.4byte _08020562
.4byte _0802021C
.4byte _08020240
.4byte _0802024E
.4byte _08020256
.4byte _08020274
.4byte _08020282
.4byte _0802028E
.4byte _080202B0
.4byte _080202BE
.4byte _080202C6
.4byte _080202E4
.4byte _08020304
.4byte _08020344
.4byte _080203B0
.4byte _080203D4
.4byte _0802038C
.4byte _080203F8
.4byte _08020428
.4byte _08020434
.4byte _08020460
.4byte _08020478
.4byte _08020500
_0801FFDC:
ldr r0, [r5]
movs r4, 0x2
str r4, [r0, 0x6C]
bl sub_8020574
ldr r5, [r5]
str r4, [r5, 0x8]
ldr r2, _08020014
ldr r1, [r5]
movs r0, 0x64
muls r0, r1
adds r0, r2
ldr r0, [r0]
ldr r2, [r5, 0x6C]
adds r3, r5, 0
adds r3, 0x7C
adds r1, r5, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r4, 0xBE
lsls r4, 1
adds r1, r5, r4
b _0802004C
.align 2, 0
_08020014: .4byte gUnknown_80D8888
_08020018:
bl sub_8020574
ldr r0, _0802005C
ldr r4, [r0]
movs r0, 0x2
str r0, [r4, 0x8]
ldr r1, _08020060
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x4
adds r0, r1
ldr r0, [r0]
ldr r2, [r4, 0x6C]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r5, 0xBE
lsls r5, 1
adds r1, r4, r5
_0802004C:
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _08020562
.align 2, 0
_0802005C: .4byte gUnknown_203B27C
_08020060: .4byte gUnknown_80D8888
_08020064:
movs r0, 0x3
bl sub_8016C40
b _08020562
_0802006C:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _0802008C
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x8
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_0802008C: .4byte gUnknown_80D8888
_08020090:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _080200B0
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0xC
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080200B0: .4byte gUnknown_80D8888
_080200B4:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _080200D4
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x10
adds r0, r1
ldr r0, [r0]
movs r5, 0xBE
lsls r5, 1
adds r2, r5
ldr r2, [r2]
b _0802052C
.align 2, 0
_080200D4: .4byte gUnknown_80D8888
_080200D8:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _080200F8
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x14
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_080200F8: .4byte gUnknown_80D8888
_080200FC:
bl sub_8020900
ldr r1, _0802013C
ldr r0, _08020140
ldr r4, [r0]
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x18
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r2, 0xBE
lsls r2, 1
adds r1, r4, r2
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x10
bl sub_8014248
b _08020562
.align 2, 0
_0802013C: .4byte gUnknown_80D8888
_08020140: .4byte gUnknown_203B27C
_08020144:
bl sub_8020950
ldr r1, _08020184
ldr r0, _08020188
ldr r4, [r0]
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x54
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r5, 0xBE
lsls r5, 1
adds r1, r4, r5
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xD
bl sub_8014248
b _08020562
.align 2, 0
_08020184: .4byte gUnknown_80D8888
_08020188: .4byte gUnknown_203B27C
_0802018C:
ldr r2, [r5]
movs r0, 0x1
str r0, [r2, 0x8]
ldr r1, _080201AC
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x58
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_080201AC: .4byte gUnknown_80D8888
_080201B0:
ldr r2, [r5]
movs r0, 0x1
str r0, [r2, 0x8]
ldr r1, _080201D0
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x5C
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080201D0: .4byte gUnknown_80D8888
_080201D4:
ldr r2, [r5]
movs r0, 0x1
str r0, [r2, 0x8]
ldr r1, _080201F4
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x60
adds r0, r1
ldr r0, [r0]
movs r5, 0xBE
lsls r5, 1
adds r2, r5
ldr r2, [r2]
b _0802052C
.align 2, 0
_080201F4: .4byte gUnknown_80D8888
_080201F8:
ldr r2, [r5]
movs r0, 0xD
str r0, [r2, 0x8]
ldr r1, _08020218
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x1C
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_08020218: .4byte gUnknown_80D8888
_0802021C:
ldr r2, [r5]
movs r0, 0xF
str r0, [r2, 0x8]
ldr r1, _0802023C
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x20
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_0802023C: .4byte gUnknown_80D8888
_08020240:
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_8023868
b _08020562
_0802024E:
movs r0, 0x1
bl sub_8023B7C
b _08020562
_08020256:
bl sub_8023DA4
ldr r0, _08020270
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xCC
adds r1, r2, 0
adds r1, 0x7C
adds r3, r2, 0
adds r3, 0xBC
ldr r2, [r2, 0x70]
b _0802044C
.align 2, 0
_08020270: .4byte gUnknown_203B27C
_08020274:
ldr r0, [r5]
movs r5, 0xC
ldrsh r0, [r0, r5]
movs r1, 0x2
bl sub_8024458
b _08020562
_08020282:
ldr r0, [r5]
movs r1, 0xC
ldrsh r0, [r0, r1]
bl sub_801BEEC
b _08020562
_0802028E:
ldr r2, [r5]
movs r0, 0x15
str r0, [r2, 0x8]
ldr r1, _080202AC
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x24
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080202AC: .4byte gUnknown_80D8888
_080202B0:
ldr r0, [r5]
movs r5, 0xC
ldrsh r0, [r0, r5]
movs r1, 0
bl sub_801F428
b _08020562
_080202BE:
movs r0, 0x1
bl sub_801F5F0
b _08020562
_080202C6:
bl sub_801F700
ldr r0, _080202E0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xCC
adds r1, r2, 0
adds r1, 0x7C
adds r3, r2, 0
adds r3, 0xBC
ldr r2, [r2, 0x74]
b _0802044C
.align 2, 0
_080202E0: .4byte gUnknown_203B27C
_080202E4:
ldr r0, [r5]
ldrh r1, [r0, 0x1C]
adds r0, 0x64
strh r1, [r0]
movs r2, 0x1
adds r4, r5, 0
movs r3, 0
_080202F2:
ldr r0, [r4]
lsls r1, r2, 1
adds r0, 0x64
adds r0, r1
strh r3, [r0]
adds r2, 0x1
cmp r2, 0x3
ble _080202F2
b _0802046E
_08020304:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_8094060
ldr r1, [r5]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0802033C
ldrh r1, [r1, 0x1E]
bl sub_8092C84
ldr r1, _08020340
ldr r2, [r5]
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x28
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_0802033C: .4byte gUnknown_202DF98
_08020340: .4byte gUnknown_80D8888
_08020344:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_8094060
ldr r3, [r5]
movs r0, 0x10
str r0, [r3, 0x8]
ldrb r0, [r3, 0x14]
cmp r0, 0
beq _08020370
ldr r1, _0802036C
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x38
b _08020520
.align 2, 0
_0802036C: .4byte gUnknown_80D8888
_08020370:
ldr r1, _08020388
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x34
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r1, r3, r4
b _0802052A
.align 2, 0
_08020388: .4byte gUnknown_80D8888
_0802038C:
ldr r2, [r5]
ldr r0, [r2]
cmp r0, 0
bne _080203A2
movs r5, 0xC
ldrsh r1, [r2, r5]
adds r2, 0x24
movs r0, 0
bl sub_801E80C
b _08020562
_080203A2:
movs r0, 0xC
ldrsh r1, [r2, r0]
adds r2, 0x24
movs r0, 0x1
bl sub_801E80C
b _08020562
_080203B0:
ldr r2, [r5]
movs r0, 0x10
str r0, [r2, 0x8]
ldr r1, _080203D0
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x3C
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_080203D0: .4byte gUnknown_80D8888
_080203D4:
ldr r2, [r5]
movs r0, 0x10
str r0, [r2, 0x8]
ldr r1, _080203F4
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x40
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080203F4: .4byte gUnknown_80D8888
_080203F8:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_809401C
ldr r0, [r5]
movs r5, 0xC
ldrsh r1, [r0, r5]
adds r2, r0, 0
adds r2, 0x24
ldrb r3, [r0, 0x15]
ldr r0, _08020424
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
movs r0, 0x1
bl sub_801EE10
b _08020562
.align 2, 0
_08020424: .4byte gUnknown_80DC394
_08020428:
ldr r0, [r5]
ldrb r1, [r0, 0x15]
movs r0, 0x1
bl sub_801F1B0
b _08020562
_08020434:
movs r0, 0
bl sub_801F280
ldr r0, _0802045C
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xCC
adds r1, r2, 0
adds r1, 0x7C
adds r3, r2, 0
adds r3, 0xBC
ldr r2, [r2, 0x78]
_0802044C:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08020562
.align 2, 0
_0802045C: .4byte gUnknown_203B27C
_08020460:
ldr r2, [r5]
ldr r0, [r2, 0x18]
adds r1, r2, 0
adds r1, 0x24
adds r2, 0x64
bl sub_8093560
_0802046E:
ldr r0, [r5]
adds r0, 0x64
bl sub_801F808
b _08020562
_08020478:
bl sub_80208B0
ldr r0, _080204B8
ldr r4, _080204BC
ldr r1, [r4]
ldrh r1, [r1, 0x20]
bl sub_8092C84
ldr r4, [r4]
ldrb r5, [r4, 0x14]
cmp r5, 0
beq _080204C4
ldr r1, _080204C0
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x48
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r2, 0xBE
lsls r2, 1
adds r1, r4, r2
b _080204E8
.align 2, 0
_080204B8: .4byte gUnknown_202DFE8
_080204BC: .4byte gUnknown_203B27C
_080204C0: .4byte gUnknown_80D8888
_080204C4:
ldr r1, _080204FC
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x44
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r5, [sp, 0x8]
movs r5, 0xBE
lsls r5, 1
adds r1, r4, r5
_080204E8:
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x11
bl sub_8014248
b _08020562
.align 2, 0
_080204FC: .4byte gUnknown_80D8888
_08020500:
ldr r1, [r5]
movs r0, 0x1F
str r0, [r1, 0x8]
ldr r0, _08020538
ldrh r1, [r1, 0x20]
bl sub_8092C84
ldr r3, [r5]
ldrb r0, [r3, 0x14]
cmp r0, 0
beq _08020544
ldr r1, _0802053C
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x50
_08020520:
adds r0, r1
ldr r0, [r0]
movs r2, 0xBE
lsls r2, 1
adds r1, r3, r2
_0802052A:
ldr r2, [r1]
_0802052C:
ldr r3, _08020540
movs r1, 0
bl sub_80141B4
b _08020562
.align 2, 0
_08020538: .4byte gUnknown_202DFE8
_0802053C: .4byte gUnknown_80D8888
_08020540: .4byte 0x0000010d
_08020544:
ldr r1, _0802056C
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x4C
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r1, r3, r4
ldr r2, [r1]
ldr r3, _08020570
movs r1, 0
bl sub_80141B4
_08020562:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802056C: .4byte gUnknown_80D8888
_08020570: .4byte 0x0000010d
thumb_func_end sub_801FF28
thumb_func_start sub_8020574
sub_8020574:
push {r4,lr}
ldr r4, _080205C0
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
ldr r0, _080205C4
str r0, [r4, 0x7C]
adds r1, r4, 0
adds r1, 0x80
movs r0, 0x2
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _080205C8
str r0, [r1]
adds r1, 0x4
movs r0, 0xB
str r0, [r1]
adds r1, 0x4
ldr r0, _080205CC
ldr r0, [r0]
str r0, [r1]
adds r0, r4, 0
adds r0, 0x90
str r2, [r0]
adds r0, 0x4
str r3, [r0]
adds r0, 0x4
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080205C0: .4byte gUnknown_203B27C
_080205C4: .4byte gUnknown_80DC3C4
_080205C8: .4byte gUnknown_80DC3CC
_080205CC: .4byte gUnknown_80D4934
thumb_func_end sub_8020574
thumb_func_start sub_80205D0
sub_80205D0:
push {r4-r7,lr}
ldr r4, _08020660
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r0, [r4]
mov r12, r0
movs r5, 0
ldr r0, _08020664
mov r1, r12
str r0, [r1, 0x7C]
mov r2, r12
adds r2, 0x80
movs r0, 0x4
str r0, [r2]
movs r3, 0x1
adds r1, 0x84
ldr r0, _08020668
str r0, [r1]
adds r1, 0x4
movs r0, 0xB
str r0, [r1]
adds r1, 0x4
ldr r0, _0802066C
str r0, [r1]
adds r1, 0x4
movs r0, 0xC
str r0, [r1]
movs r6, 0x3
adds r1, 0x4
ldr r0, _08020670
str r0, [r1]
mov r0, r12
adds r0, 0x98
str r6, [r0]
movs r6, 0x4
adds r0, 0x4
str r5, [r0]
adds r0, 0x4
str r3, [r0]
mov r3, r12
adds r3, 0xBC
_0802062A:
ldrh r0, [r3]
cmp r0, 0
bne _0802063A
ldr r1, [r2]
mov r7, r12
ldr r0, [r7, 0x70]
cmp r1, r0
beq _08020696
_0802063A:
adds r2, 0x8
adds r3, 0x2
adds r5, 0x1
cmp r5, r6
blt _0802062A
movs r5, 0
cmp r5, r6
bge _08020696
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xBC
ldrh r0, [r0]
cmp r0, 0
bne _08020674
adds r0, r1, 0
adds r0, 0x80
ldr r0, [r0]
str r0, [r1, 0x70]
b _08020696
.align 2, 0
_08020660: .4byte gUnknown_203B27C
_08020664: .4byte gUnknown_80DC3D8
_08020668: .4byte gUnknown_80DC3E0
_0802066C: .4byte gUnknown_80DC3E8
_08020670: .4byte gUnknown_80DC3F4
_08020674:
adds r5, 0x1
cmp r5, r6
bge _08020696
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0xBC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08020674
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x80
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x70]
_08020696:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80205D0
thumb_func_start sub_802069C
sub_802069C:
push {r4-r7,lr}
ldr r4, _08020718
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r0, [r4]
mov r12, r0
movs r5, 0
ldr r0, _0802071C
mov r1, r12
str r0, [r1, 0x7C]
mov r3, r12
adds r3, 0x80
movs r0, 0x3
str r0, [r3]
movs r2, 0x1
adds r1, 0x84
ldr r0, _08020720
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0xB
str r0, [r1]
movs r6, 0x2
mov r0, r12
adds r0, 0x8C
str r5, [r0]
adds r0, 0x4
str r2, [r0]
mov r2, r12
adds r2, 0xBC
_080206E0:
ldrh r0, [r2]
cmp r0, 0
bne _080206F0
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x74]
cmp r1, r0
beq _08020746
_080206F0:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _080206E0
movs r5, 0
cmp r5, r6
bge _08020746
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xBC
ldrh r0, [r0]
cmp r0, 0
bne _08020724
adds r0, r1, 0
adds r0, 0x80
ldr r0, [r0]
str r0, [r1, 0x74]
b _08020746
.align 2, 0
_08020718: .4byte gUnknown_203B27C
_0802071C: .4byte gUnknown_80DC3F4
_08020720: .4byte gUnknown_80D4970
_08020724:
adds r5, 0x1
cmp r5, r6
bge _08020746
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0xBC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08020724
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x80
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x74]
_08020746:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802069C
thumb_func_start sub_802074C
sub_802074C:
push {r4-r7,lr}
movs r7, 0
ldr r4, _08020780
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
ldrb r0, [r1, 0x16]
cmp r0, 0
beq _0802079C
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80932E0
lsls r0, 24
cmp r0, 0
beq _08020788
ldr r0, [r4]
ldr r1, _08020784
str r1, [r0, 0x7C]
adds r0, 0x80
movs r1, 0x6
b _08020792
.align 2, 0
_08020780: .4byte gUnknown_203B27C
_08020784: .4byte gUnknown_80DC400
_08020788:
ldr r0, [r4]
ldr r1, _08020798
str r1, [r0, 0x7C]
adds r0, 0x80
movs r1, 0x5
_08020792:
str r1, [r0]
mov r12, r4
b _080207CA
.align 2, 0
_08020798: .4byte gUnknown_80DC40C
_0802079C:
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80932FC
lsls r0, 24
cmp r0, 0
beq _080207B4
ldr r1, [r4]
ldr r0, _080207B0
b _080207B8
.align 2, 0
_080207B0: .4byte gUnknown_80DC400
_080207B4:
ldr r1, [r4]
ldr r0, _0802086C
_080207B8:
str r0, [r1, 0x7C]
ldr r2, _08020870
ldr r0, [r2]
lsls r1, r7, 3
adds r0, 0x80
adds r0, r1
movs r1, 0x7
str r1, [r0]
mov r12, r2
_080207CA:
adds r7, 0x1
mov r0, r12
ldr r4, [r0]
lsls r1, r7, 3
adds r3, r4, 0
adds r3, 0x7C
adds r2, r3, r1
ldr r0, _08020874
str r0, [r2]
adds r6, r4, 0
adds r6, 0x80
adds r1, r6, r1
movs r0, 0x8
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _08020878
str r0, [r2]
adds r1, r6, r1
movs r0, 0x9
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _0802087C
str r0, [r2]
adds r1, r6, r1
movs r0, 0xA
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _08020880
ldr r0, [r0]
str r0, [r2]
adds r1, r6, r1
movs r0, 0xB
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r1, r6, r1
movs r0, 0x1
str r0, [r1]
movs r3, 0
cmp r3, r7
bge _0802084C
adds r5, r4, 0
adds r4, 0xBC
adds r2, r6, 0
_08020834:
ldrh r0, [r4]
cmp r0, 0
bne _08020842
ldr r1, [r2]
ldr r0, [r5, 0x78]
cmp r1, r0
beq _080208A8
_08020842:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r7
blt _08020834
_0802084C:
movs r3, 0
cmp r3, r7
bge _080208A8
mov r0, r12
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0xBC
ldrh r0, [r0]
cmp r0, 0
bne _08020884
adds r0, r1, 0
adds r0, 0x80
ldr r0, [r0]
str r0, [r1, 0x78]
b _080208A8
.align 2, 0
_0802086C: .4byte gUnknown_80DC40C
_08020870: .4byte gUnknown_203B27C
_08020874: .4byte gUnknown_80DC410
_08020878: .4byte gUnknown_80DC418
_0802087C: .4byte gUnknown_80DC420
_08020880: .4byte gUnknown_80D4970
_08020884:
adds r3, 0x1
cmp r3, r7
bge _080208A8
mov r0, r12
ldr r2, [r0]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0xBC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08020884
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x80
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x78]
_080208A8:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802074C
thumb_func_start sub_80208B0
sub_80208B0:
push {r4,lr}
ldr r4, _080208F4
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
ldr r0, _080208F8
ldr r0, [r0]
str r0, [r4, 0x7C]
adds r1, r4, 0
adds r1, 0x80
movs r0, 0x10
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _080208FC
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x11
str r0, [r1]
adds r0, r4, 0
adds r0, 0x8C
str r3, [r0]
adds r0, 0x4
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080208F4: .4byte gUnknown_203B27C
_080208F8: .4byte gUnknown_80D4920
_080208FC: .4byte gUnknown_80D4928
thumb_func_end sub_80208B0
thumb_func_start sub_8020900
sub_8020900:
push {r4,lr}
ldr r4, _08020944
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08020948
ldr r0, [r0]
str r0, [r3, 0x7C]
adds r1, r3, 0
adds r1, 0x80
movs r0, 0x10
str r0, [r1]
adds r1, 0x4
ldr r0, _0802094C
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x11
str r0, [r1]
adds r0, r3, 0
adds r0, 0x8C
str r2, [r0]
adds r1, 0x8
movs r0, 0x1
negs r0, r0
str r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08020944: .4byte gUnknown_203B27C
_08020948: .4byte gUnknown_80D4920
_0802094C: .4byte gUnknown_80D4928
thumb_func_end sub_8020900
thumb_func_start sub_8020950
sub_8020950:
push {r4,lr}
ldr r4, _0802099C
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
ldr r0, _080209A0
str r0, [r4, 0x7C]
adds r1, r4, 0
adds r1, 0x80
movs r0, 0xD
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _080209A4
str r0, [r1]
adds r1, 0x4
movs r0, 0xE
str r0, [r1]
adds r1, 0x4
ldr r0, _080209A8
str r0, [r1]
adds r1, 0x4
movs r0, 0xF
str r0, [r1]
adds r0, r4, 0
adds r0, 0x94
str r3, [r0]
adds r0, 0x4
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802099C: .4byte gUnknown_203B27C
_080209A0: .4byte gUnknown_80DC428
_080209A4: .4byte gUnknown_80DC438
_080209A8: .4byte gUnknown_80DC448
thumb_func_end sub_8020950
thumb_func_start sub_80209AC
sub_80209AC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080209F4
ldr r0, _080209D4
ldr r1, [r0]
ldr r0, [sp]
str r0, [r1, 0x6C]
ldr r0, [sp]
cmp r0, 0x2
beq _080209DE
cmp r0, 0x2
bgt _080209D8
cmp r0, 0x1
beq _080209EE
b _080209F4
.align 2, 0
_080209D4: .4byte gUnknown_203B27C
_080209D8:
cmp r0, 0xB
beq _080209E6
b _080209F4
_080209DE:
movs r0, 0xE
bl sub_801FDA8
b _080209F4
_080209E6:
movs r0, 0x8
bl sub_801FDA8
b _080209F4
_080209EE:
movs r0, 0xC
bl sub_801FDA8
_080209F4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80209AC
thumb_func_start sub_80209FC
sub_80209FC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08020A2E
ldr r0, [sp]
cmp r0, 0x10
beq _08020A20
cmp r0, 0x10
bgt _08020A1A
cmp r0, 0x1
beq _08020A28
b _08020A2E
_08020A1A:
cmp r0, 0x11
beq _08020A28
b _08020A2E
_08020A20:
movs r0, 0xE
bl sub_801FDA8
b _08020A2E
_08020A28:
movs r0, 0xC
bl sub_801FDA8
_08020A2E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80209FC
thumb_func_start sub_8020A34
sub_8020A34:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08020A7A
ldr r0, [sp]
cmp r0, 0xD
beq _08020A5C
cmp r0, 0xD
bgt _08020A52
cmp r0, 0x1
beq _08020A74
b _08020A7A
_08020A52:
cmp r0, 0xE
beq _08020A64
cmp r0, 0xF
beq _08020A6C
b _08020A7A
_08020A5C:
movs r0, 0x9
bl sub_801FDA8
b _08020A7A
_08020A64:
movs r0, 0xA
bl sub_801FDA8
b _08020A7A
_08020A6C:
movs r0, 0xB
bl sub_801FDA8
b _08020A7A
_08020A74:
movs r0, 0x1
bl sub_801FDA8
_08020A7A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8020A34
thumb_func_start sub_8020A80
sub_8020A80:
push {r4,lr}
movs r0, 0x1
bl sub_8023A94
cmp r0, 0x4
bhi _08020B32
lsls r0, 2
ldr r1, _08020A98
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020A98: .4byte _08020A9C
.align 2, 0
_08020A9C:
.4byte _08020B32
.4byte _08020B32
.4byte _08020B28
.4byte _08020AB0
.4byte _08020AEC
_08020AB0:
bl sub_8023B44
ldr r4, _08020AE0
ldr r1, [r4]
strh r0, [r1, 0xC]
ldr r3, _08020AE4
movs r0, 0xC
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x10]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x16]
ldr r0, _08020AE8
ldr r1, [r4]
ldr r1, [r1, 0x10]
bl sub_808DA34
movs r0, 0x11
bl sub_801FDA8
b _08020B32
.align 2, 0
_08020AE0: .4byte gUnknown_203B27C
_08020AE4: .4byte gUnknown_203B45C
_08020AE8: .4byte gUnknown_202E128
_08020AEC:
bl sub_8023B44
ldr r4, _08020B1C
ldr r1, [r4]
strh r0, [r1, 0xC]
ldr r3, _08020B20
movs r0, 0xC
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x10]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x16]
ldr r0, _08020B24
ldr r1, [r4]
ldr r1, [r1, 0x10]
bl sub_808DA34
movs r0, 0x12
bl sub_801FDA8
b _08020B32
.align 2, 0
_08020B1C: .4byte gUnknown_203B27C
_08020B20: .4byte gUnknown_203B45C
_08020B24: .4byte gUnknown_202E128
_08020B28:
bl sub_8023C60
movs r0, 0x7
bl sub_801FDA8
_08020B32:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020A80
thumb_func_start sub_8020B38
sub_8020B38:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8023A94
ldr r4, _08020B7C
ldr r0, [r4]
adds r0, 0xCC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08020B68
ldr r0, [r4]
adds r0, 0xCC
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08020B68
ldr r0, [r4]
str r1, [r0, 0x70]
_08020B68:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x10
bhi _08020C24
lsls r0, 2
ldr r1, _08020B80
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020B7C: .4byte gUnknown_203B27C
_08020B80: .4byte _08020B84
.align 2, 0
_08020B84:
.4byte _08020BC8
.4byte _08020C24
.4byte _08020BD0
.4byte _08020C0E
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C16
.4byte _08020C1E
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020BC8
_08020BC8:
movs r0, 0x10
bl sub_801FDA8
b _08020C24
_08020BD0:
ldr r0, _08020BF0
ldr r0, [r0]
ldr r0, [r0, 0x10]
movs r1, 0x8
ldrsh r0, [r0, r1]
bl sub_808E858
lsls r0, 16
movs r1, 0xCF
lsls r1, 17
cmp r0, r1
bne _08020BF4
movs r0, 0x1C
bl sub_801FDA8
b _08020C24
.align 2, 0
_08020BF0: .4byte gUnknown_203B27C
_08020BF4:
bl sub_8021178
lsls r0, 24
cmp r0, 0
beq _08020C06
movs r0, 0x1B
bl sub_801FDA8
b _08020C24
_08020C06:
movs r0, 0x14
bl sub_801FDA8
b _08020C24
_08020C0E:
movs r0, 0x1E
bl sub_801FDA8
b _08020C24
_08020C16:
movs r0, 0x12
bl sub_801FDA8
b _08020C24
_08020C1E:
movs r0, 0x13
bl sub_801FDA8
_08020C24:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020B38
thumb_func_start sub_8020C2C
sub_8020C2C:
push {lr}
bl sub_80244E4
cmp r0, 0x1
bls _08020C44
cmp r0, 0x3
bhi _08020C44
bl sub_802453C
movs r0, 0x10
bl sub_801FDA8
_08020C44:
pop {r0}
bx r0
thumb_func_end sub_8020C2C
thumb_func_start sub_8020C48
sub_8020C48:
push {lr}
bl sub_801BF48
cmp r0, 0x1
bls _08020C60
cmp r0, 0x3
bhi _08020C60
bl sub_801BF98
movs r0, 0x10
bl sub_801FDA8
_08020C60:
pop {r0}
bx r0
thumb_func_end sub_8020C48
thumb_func_start sub_8020C64
sub_8020C64:
push {lr}
movs r0, 0x1
bl sub_801F520
cmp r0, 0x3
beq _08020C80
cmp r0, 0x3
bhi _08020C7A
cmp r0, 0x2
beq _08020CB0
b _08020CBA
_08020C7A:
cmp r0, 0x4
beq _08020C98
b _08020CBA
_08020C80:
bl sub_801F5B4
ldr r1, _08020C94
ldr r1, [r1]
strh r0, [r1, 0x1C]
strh r0, [r1, 0x1E]
movs r0, 0x17
bl sub_801FDA8
b _08020CBA
.align 2, 0
_08020C94: .4byte gUnknown_203B27C
_08020C98:
bl sub_801F5B4
ldr r1, _08020CAC
ldr r1, [r1]
strh r0, [r1, 0x1C]
strh r0, [r1, 0x1E]
movs r0, 0x18
bl sub_801FDA8
b _08020CBA
.align 2, 0
_08020CAC: .4byte gUnknown_203B27C
_08020CB0:
bl sub_801F63C
movs r0, 0x10
bl sub_801FDA8
_08020CBA:
pop {r0}
bx r0
thumb_func_end sub_8020C64
thumb_func_start sub_8020CC0
sub_8020CC0:
push {r4-r6,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801F520
ldr r4, _08020D00
ldr r0, [r4]
adds r0, 0xCC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08020CF0
ldr r0, [r4]
adds r0, 0xCC
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08020CF0
ldr r0, [r4]
str r1, [r0, 0x74]
_08020CF0:
ldr r0, [sp]
cmp r0, 0x3
beq _08020D14
cmp r0, 0x3
bgt _08020D04
cmp r0, 0x1
beq _08020D0C
b _08020D6C
.align 2, 0
_08020D00: .4byte gUnknown_203B27C
_08020D04:
cmp r0, 0xB
beq _08020D66
cmp r0, 0x11
bne _08020D6C
_08020D0C:
movs r0, 0x16
bl sub_801FDA8
b _08020D6C
_08020D14:
bl sub_801F63C
ldr r4, _08020D30
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_809401C
movs r5, 0
adds r6, r4, 0
movs r4, 0x24
b _08020D38
.align 2, 0
_08020D30: .4byte gUnknown_203B27C
_08020D34:
adds r4, 0x8
adds r5, 0x1
_08020D38:
cmp r5, 0x7
bgt _08020D52
ldr r3, [r6]
adds r2, r3, r4
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08020D34
ldrh r1, [r3, 0x1E]
adds r0, r2, 0
bl sub_8092AD4
_08020D52:
cmp r5, 0x3
ble _08020D5E
movs r0, 0x1D
bl sub_801FDA8
b _08020D6C
_08020D5E:
movs r0, 0x19
bl sub_801FDA8
b _08020D6C
_08020D66:
movs r0, 0x18
bl sub_801FDA8
_08020D6C:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8020CC0
thumb_func_start sub_8020D74
sub_8020D74:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _08020D8C
cmp r0, 0x3
bhi _08020D8C
bl sub_801F8D0
movs r0, 0x16
bl sub_801FDA8
_08020D8C:
pop {r0}
bx r0
thumb_func_end sub_8020D74
thumb_func_start sub_8020D90
sub_8020D90:
push {lr}
bl sub_801E8C0
cmp r0, 0x2
beq _08020DBC
cmp r0, 0x2
bcc _08020DC6
cmp r0, 0x3
bne _08020DC6
bl sub_801E930
ldr r1, _08020DB8
ldr r1, [r1]
strb r0, [r1, 0x14]
bl sub_801E93C
movs r0, 0x1A
bl sub_801FDA8
b _08020DC6
.align 2, 0
_08020DB8: .4byte gUnknown_203B27C
_08020DBC:
bl sub_801E93C
movs r0, 0x10
bl sub_801FDA8
_08020DC6:
pop {r0}
bx r0
thumb_func_end sub_8020D90
thumb_func_start sub_8020DCC
sub_8020DCC:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x4
bhi _08020EAA
lsls r0, 2
ldr r1, _08020DE4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020DE4: .4byte _08020DE8
.align 2, 0
_08020DE8:
.4byte _08020EAA
.4byte _08020E98
.4byte _08020E64
.4byte _08020DFC
.4byte _08020E30
_08020DFC:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E0E
ldr r0, _08020E2C
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E0E:
bl sub_801F194
ldr r1, _08020E2C
ldr r2, [r1]
str r0, [r2, 0x18]
lsls r0, 3
adds r0, r2, r0
ldrh r1, [r0, 0x26]
strh r1, [r2, 0x1C]
ldrh r0, [r0, 0x26]
strh r0, [r2, 0x20]
movs r0, 0x20
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E2C: .4byte gUnknown_203B27C
_08020E30:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E42
ldr r0, _08020E60
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E42:
bl sub_801F194
ldr r1, _08020E60
ldr r2, [r1]
str r0, [r2, 0x18]
lsls r0, 3
adds r0, r2, r0
ldrh r1, [r0, 0x26]
strh r1, [r2, 0x1C]
ldrh r0, [r0, 0x26]
strh r0, [r2, 0x20]
movs r0, 0x21
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E60: .4byte gUnknown_203B27C
_08020E64:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E76
ldr r0, _08020E94
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E76:
bl sub_801F214
ldr r0, _08020E94
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_8094060
movs r0, 0x10
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E94: .4byte gUnknown_203B27C
_08020E98:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020EAA
ldr r0, _08020EB0
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020EAA:
pop {r0}
bx r0
.align 2, 0
_08020EB0: .4byte gUnknown_203B27C
thumb_func_end sub_8020DCC
thumb_func_start sub_8020EB4
sub_8020EB4:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801EF38
ldr r4, _08020EF8
ldr r0, [r4]
adds r0, 0xCC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08020EE4
ldr r0, [r4]
adds r0, 0xCC
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08020EE4
ldr r0, [r4]
str r1, [r0, 0x78]
_08020EE4:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x10
bls _08020EEE
b _080210BE
_08020EEE:
lsls r0, 2
ldr r1, _08020EFC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020EF8: .4byte gUnknown_203B27C
_08020EFC: .4byte _08020F00
.align 2, 0
_08020F00:
.4byte _08021068
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _08020F44
.4byte _08020F70
.4byte _08020F8C
.4byte _08020FB8
.4byte _08021034
.4byte _08021074
.4byte _080210B8
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _08021068
_08020F44:
ldr r0, _08020F60
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80934DC
lsls r0, 24
cmp r0, 0
beq _08020F68
ldr r0, _08020F64
bl sub_8011988
b _08021068
.align 2, 0
_08020F60: .4byte gUnknown_203B27C
_08020F64: .4byte 0x00000133
_08020F68:
movs r0, 0x2
bl sub_80119D4
b _08021068
_08020F70:
ldr r0, _08020F84
bl sub_8011988
ldr r0, _08020F88
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_809352C
b _08021068
.align 2, 0
_08020F84: .4byte 0x00000133
_08020F88: .4byte gUnknown_203B27C
_08020F8C:
ldr r0, _08020FA8
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093544
lsls r0, 24
cmp r0, 0
beq _08020FB0
ldr r0, _08020FAC
bl sub_8011988
b _08021068
.align 2, 0
_08020FA8: .4byte gUnknown_203B27C
_08020FAC: .4byte 0x00000133
_08020FB0:
movs r0, 0x2
bl sub_80119D4
b _08021068
_08020FB8:
ldr r0, _08020FD8
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0x95
bgt _08020FDC
movs r0, 0x2
bl sub_80119D4
movs r0, 0x3
bl sub_801FDA8
b _080210BE
.align 2, 0
_08020FD8: .4byte gUnknown_203B460
_08020FDC:
ldr r4, _08020FFC
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093318
lsls r0, 24
cmp r0, 0
bne _08021000
movs r0, 0x2
bl sub_80119D4
movs r0, 0x4
bl sub_801FDA8
b _080210BE
.align 2, 0
_08020FFC: .4byte gUnknown_203B27C
_08021000:
ldr r1, [r4]
ldrb r0, [r1, 0x15]
cmp r0, 0
bne _08021016
movs r0, 0x1
strb r0, [r1, 0x15]
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
b _0802101C
_08021016:
ldr r0, _0802102C
bl sub_8011988
_0802101C:
ldr r0, _08021030
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093400
b _08021068
.align 2, 0
_0802102C: .4byte 0x00000133
_08021030: .4byte gUnknown_203B27C
_08021034:
ldr r4, _08021054
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_809333C
lsls r0, 24
cmp r0, 0
bne _08021058
movs r0, 0x2
bl sub_80119D4
movs r0, 0x5
bl sub_801FDA8
b _080210BE
.align 2, 0
_08021054: .4byte gUnknown_203B27C
_08021058:
ldr r0, _08021070
bl sub_8011988
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093468
_08021068:
movs r0, 0x1F
bl sub_801FDA8
b _080210BE
.align 2, 0
_08021070: .4byte 0x00000133
_08021074:
ldr r4, _08021094
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80933A0
lsls r0, 24
cmp r0, 0
bne _08021098
movs r0, 0x2
bl sub_80119D4
movs r0, 0x6
bl sub_801FDA8
b _080210BE
.align 2, 0
_08021094: .4byte gUnknown_203B27C
_08021098:
ldr r0, _080210B4
bl sub_8011988
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80934B0
ldr r1, [r4]
strb r0, [r1, 0x14]
movs r0, 0x22
bl sub_801FDA8
b _080210BE
.align 2, 0
_080210B4: .4byte 0x00000133
_080210B8:
movs r0, 0x21
bl sub_801FDA8
_080210BE:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020EB4
thumb_func_start sub_80210C8
sub_80210C8:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _080210E0
cmp r0, 0x3
bhi _080210E0
bl sub_801F8D0
movs r0, 0x1F
bl sub_801FDA8
_080210E0:
pop {r0}
bx r0
thumb_func_end sub_80210C8
thumb_func_start sub_80210E4
sub_80210E4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802112A
ldr r0, [sp]
cmp r0, 0x10
beq _08021108
cmp r0, 0x10
bgt _08021102
cmp r0, 0x1
beq _08021124
b _0802112A
_08021102:
cmp r0, 0x11
beq _08021124
b _0802112A
_08021108:
ldr r0, _08021120
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x18]
bl sub_8093CF8
movs r0, 0x23
bl sub_801FDA8
b _0802112A
.align 2, 0
_08021120: .4byte gUnknown_203B27C
_08021124:
movs r0, 0x1F
bl sub_801FDA8
_0802112A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80210E4
thumb_func_start sub_8021130
sub_8021130:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08021148
ldr r0, _08021150
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_801FDA8
_08021148:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08021150: .4byte gUnknown_203B27C
thumb_func_end sub_8021130
thumb_func_start sub_8021154
sub_8021154:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0x4
bne _0802116C
ldr r0, _08021174
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_801FDA8
_0802116C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08021174: .4byte gUnknown_203B27C
thumb_func_end sub_8021154
thumb_func_start sub_8021178
sub_8021178:
push {lr}
mov r12, r4
ldr r4, _08021198
add sp, r4
mov r4, r12
ldr r0, _0802119C
ldr r0, [r0]
ldr r1, [r0, 0x10]
mov r0, sp
bl sub_808E218
cmp r0, 0
beq _080211A0
movs r0, 0
b _080211A2
.align 2, 0
_08021198: .4byte 0xfffffcc0
_0802119C: .4byte gUnknown_203B27C
_080211A0:
movs r0, 0x1
_080211A2:
movs r3, 0xD0
lsls r3, 2
add sp, r3
pop {r1}
bx r1
thumb_func_end sub_8021178
thumb_func_start sub_80211AC
sub_80211AC:
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
bl sub_8021700
lsls r0, 24
cmp r0, 0
beq _080211C0
movs r0, 0
b _08021258
_080211C0:
ldr r5, _08021260
movs r0, 0xE0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r4, [r0, 0x3C]
str r6, [r0, 0x74]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x7C
adds r1, r0, r1
str r1, [r0, 0x78]
adds r0, 0x7C
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x74]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x7C
ldr r0, _08021264
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r5]
ldr r1, [r0, 0x78]
adds r0, 0xDC
str r0, [r1, 0x14]
bl sub_8004914
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x40
bl sub_8021664
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0xA
adds r3, r6, 0
bl sub_8013818
ldr r0, _08021268
ldr r2, [r5]
ldr r1, [r0]
ldr r0, [r2, 0x3C]
cmp r1, r0
bne _0802124E
ldr r0, _0802126C
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x58
strh r1, [r0]
ldr r0, _08021270
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0x5E
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x40
bl sub_8013984
_0802124E:
bl sub_8021410
bl sub_8021494
movs r0, 0x1
_08021258:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08021260: .4byte gUnknown_203B280
_08021264: .4byte gUnknown_80DC47C
_08021268: .4byte gUnknown_203B284
_0802126C: .4byte gUnknown_203B288
_08021270: .4byte gUnknown_203B28A
thumb_func_end sub_80211AC
thumb_func_start sub_8021274
sub_8021274:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _08021290
ldr r0, _0802128C
ldr r0, [r0]
adds r0, 0x40
bl sub_8013660
movs r0, 0
b _08021326
.align 2, 0
_0802128C: .4byte gUnknown_203B280
_08021290:
ldr r4, _080212A8
ldr r0, [r4]
adds r0, 0x40
bl GetKeyPress
cmp r0, 0x2
beq _080212B2
cmp r0, 0x2
bgt _080212AC
cmp r0, 0x1
beq _080212BC
b _08021300
.align 2, 0
_080212A8: .4byte gUnknown_203B280
_080212AC:
cmp r0, 0x4
beq _080212F6
b _08021300
_080212B2:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08021326
_080212BC:
ldr r0, [r4]
ldr r0, [r0, 0x3C]
cmp r0, 0x2
bne _080212EC
bl sub_802132C
lsls r0, 24
lsrs r0, 24
bl sub_8092544
ldr r1, _080212E8
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
cmp r0, r1
ble _080212EC
movs r0, 0x2
bl sub_80119D4
b _080212F2
.align 2, 0
_080212E8: .4byte gUnknown_203B460
_080212EC:
movs r0, 0
bl sub_80119D4
_080212F2:
movs r0, 0x3
b _08021326
_080212F6:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _08021326
_08021300:
ldr r0, _08021318
ldr r0, [r0]
adds r0, 0x40
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802131C
movs r0, 0
b _08021326
.align 2, 0
_08021318: .4byte gUnknown_203B280
_0802131C:
bl sub_8021410
bl sub_8021494
movs r0, 0x1
_08021326:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8021274
thumb_func_start sub_802132C
sub_802132C:
ldr r0, _08021350
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x5E
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r2, 0
adds r1, 0x58
movs r3, 0
ldrsh r1, [r1, r3]
adds r0, r1
adds r0, r2, r0
ldrb r0, [r0]
bx lr
.align 2, 0
_08021350: .4byte gUnknown_203B280
thumb_func_end sub_802132C
thumb_func_start sub_8021354
sub_8021354:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0802139C
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_8021664
adds r1, r0, 0
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x62
strh r1, [r2]
adds r0, 0x40
bl sub_8013984
bl sub_8021410
bl sub_8021494
cmp r4, 0
beq _08021396
ldr r0, [r5]
adds r0, 0x40
bl AddMenuCursorSprite
_08021396:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802139C: .4byte gUnknown_203B280
thumb_func_end sub_8021354
thumb_func_start sub_80213A0
sub_80213A0:
push {r4,r5,lr}
ldr r4, _080213FC
ldr r2, [r4]
cmp r2, 0
beq _080213F4
ldr r1, _08021400
ldr r0, [r2, 0x3C]
str r0, [r1]
ldr r1, _08021404
adds r0, r2, 0
adds r0, 0x58
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _08021408
adds r0, r2, 0
adds r0, 0x5E
ldrh r0, [r0]
strh r0, [r1]
ldr r0, [r2, 0x74]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x7C
ldr r0, _0802140C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080213F4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080213FC: .4byte gUnknown_203B280
_08021400: .4byte gUnknown_203B284
_08021404: .4byte gUnknown_203B288
_08021408: .4byte gUnknown_203B28A
_0802140C: .4byte gUnknown_80DC464
thumb_func_end sub_80213A0
thumb_func_start sub_8021410
sub_8021410:
push {r4,lr}
ldr r4, _08021490
ldr r0, [r4]
adds r0, 0xDC
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xDD
strb r2, [r0]
ldr r0, [r4]
adds r0, 0xDE
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xDF
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, 0x5A
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x74]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x8A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x74]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x8C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08021490: .4byte gUnknown_203B280
thumb_func_end sub_8021410
thumb_func_start sub_8021494
sub_8021494:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xA8
ldr r4, _08021568
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_80073B8
ldr r2, _0802156C
ldr r0, [r4]
ldr r3, [r0, 0x74]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r3, [r4]
adds r0, r3, 0
adds r0, 0xDE
ldrb r0, [r0]
lsls r0, 3
adds r0, 0x4
adds r1, r3, 0
adds r1, 0x5E
movs r5, 0
ldrsh r2, [r1, r5]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
ldr r1, [r3, 0x74]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x1
bl sub_8012BC4
movs r0, 0
mov r9, r0
ldr r0, [r4]
adds r0, 0x5A
movs r1, 0
ldrsh r0, [r0, r1]
cmp r9, r0
blt _080214FC
b _08021646
_080214FC:
mov r8, r4
add r2, sp, 0x58
mov r10, r2
_08021502:
mov r3, r8
ldr r2, [r3]
adds r0, r2, 0
adds r0, 0x5E
movs r5, 0
ldrsh r1, [r0, r5]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
add r0, r9
adds r0, r2, r0
ldrb r5, [r0]
adds r7, r5, 0
ldr r6, [r2, 0x3C]
cmp r6, 0x2
bne _0802159C
add r0, sp, 0x8
adds r1, r5, 0
movs r2, 0x1
bl sub_8092578
adds r0, r5, 0
bl sub_8092544
ldr r1, _08021570
ldr r1, [r1]
movs r5, 0x98
lsls r5, 2
adds r1, r5
ldr r1, [r1]
cmp r0, r1
bgt _08021574
mov r1, r8
ldr r0, [r1]
adds r0, 0x40
mov r1, r9
bl sub_8013800
adds r1, r0, 0
mov r2, r8
ldr r0, [r2]
ldr r3, [r0, 0x74]
movs r0, 0
str r0, [sp]
movs r0, 0x8
add r2, sp, 0x8
bl xxx_call_draw_string
b _08021632
.align 2, 0
_08021568: .4byte gUnknown_203B280
_0802156C: .4byte gUnknown_80DC494
_08021570: .4byte gUnknown_203B460
_08021574:
mov r0, r10
ldr r1, _08021598
add r2, sp, 0x8
bl sub_800D158
mov r3, r8
ldr r0, [r3]
adds r0, 0x40
mov r1, r9
bl sub_8013800
adds r1, r0, 0
mov r5, r8
ldr r0, [r5]
ldr r3, [r0, 0x74]
movs r0, 0
str r0, [sp]
b _080215FE
.align 2, 0
_08021598: .4byte gUnknown_80DC4A4
_0802159C:
cmp r6, 0
bne _0802160C
ldr r0, _080215D4
ldr r0, [r0]
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x1
bne _080215D8
adds r0, r2, 0
adds r0, 0x40
mov r1, r9
bl sub_8013800
adds r4, r0, 0
adds r0, r5, 0
bl sub_8092524
adds r2, r0, 0
mov r1, r8
ldr r0, [r1]
ldr r3, [r0, 0x74]
str r6, [sp]
movs r0, 0x8
adds r1, r4, 0
bl xxx_call_draw_string
b _08021632
.align 2, 0
_080215D4: .4byte gUnknown_203B468
_080215D8:
adds r0, r5, 0
bl sub_8092524
adds r2, r0, 0
mov r0, r10
ldr r1, _08021608
bl sub_800D158
mov r2, r8
ldr r0, [r2]
adds r0, 0x40
mov r1, r9
bl sub_8013800
adds r1, r0, 0
mov r3, r8
ldr r0, [r3]
ldr r3, [r0, 0x74]
str r6, [sp]
_080215FE:
movs r0, 0x8
mov r2, r10
bl xxx_call_draw_string
b _08021632
.align 2, 0
_08021608: .4byte gUnknown_80DC4AC
_0802160C:
adds r0, r2, 0
adds r0, 0x40
mov r1, r9
bl sub_8013800
adds r4, r0, 0
adds r0, r7, 0
bl sub_8092524
adds r2, r0, 0
mov r5, r8
ldr r0, [r5]
ldr r3, [r0, 0x74]
movs r0, 0
str r0, [sp]
movs r0, 0x8
adds r1, r4, 0
bl xxx_call_draw_string
_08021632:
movs r0, 0x1
add r9, r0
mov r1, r8
ldr r0, [r1]
adds r0, 0x5A
movs r2, 0
ldrsh r0, [r0, r2]
cmp r9, r0
bge _08021646
b _08021502
_08021646:
ldr r0, _08021660
ldr r0, [r0]
ldr r0, [r0, 0x74]
bl sub_80073E0
add sp, 0xA8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08021660: .4byte gUnknown_203B280
thumb_func_end sub_8021494
thumb_func_start sub_8021664
sub_8021664:
push {r4-r6,lr}
movs r5, 0
ldr r1, _0802167C
ldr r0, [r1]
ldr r0, [r0, 0x3C]
cmp r0, 0x1
beq _08021692
cmp r0, 0x1
bcc _08021680
cmp r0, 0x2
beq _080216B4
b _080216F2
.align 2, 0
_0802167C: .4byte gUnknown_203B280
_08021680:
movs r4, 0x1
_08021682:
ldr r0, [r1]
adds r0, r5
strb r4, [r0]
adds r5, 0x1
adds r4, 0x1
cmp r4, 0x39
ble _08021682
b _080216F2
_08021692:
movs r4, 0x1
ldr r2, _080216B0
_08021696:
ldr r0, [r2]
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _080216A8
ldr r0, [r1]
adds r0, r5
strb r4, [r0]
adds r5, 0x1
_080216A8:
adds r4, 0x1
cmp r4, 0x39
ble _08021696
b _080216F2
.align 2, 0
_080216B0: .4byte gUnknown_203B468
_080216B4:
movs r4, 0x1
adds r6, r1, 0
_080216B8:
ldr r0, _080216FC
ldr r0, [r0]
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _080216EC
lsls r0, r4, 24
lsrs r0, 24
bl sub_8092534
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080216E4
cmp r0, 0x1
bne _080216EC
movs r0, 0x6
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080216EC
_080216E4:
ldr r0, [r6]
adds r0, r5
strb r4, [r0]
adds r5, 0x1
_080216EC:
adds r4, 0x1
cmp r4, 0x39
ble _080216B8
_080216F2:
adds r0, r5, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080216FC: .4byte gUnknown_203B468
thumb_func_end sub_8021664
thumb_func_start sub_8021700
sub_8021700:
push {r4,lr}
cmp r0, 0x1
beq _08021710
cmp r0, 0x1
bcc _08021754
cmp r0, 0x2
beq _0802172C
b _0802176A
_08021710:
movs r4, 0x1
ldr r0, _08021728
ldr r1, [r0]
_08021716:
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0
bne _08021754
adds r4, 0x1
cmp r4, 0x39
ble _08021716
b _0802176A
.align 2, 0
_08021728: .4byte gUnknown_203B468
_0802172C:
movs r4, 0x1
_0802172E:
ldr r0, _08021750
ldr r0, [r0]
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _08021764
lsls r0, r4, 24
lsrs r0, 24
bl sub_8092534
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _08021754
cmp r0, 0x1
beq _08021758
b _08021764
.align 2, 0
_08021750: .4byte gUnknown_203B468
_08021754:
movs r0, 0
b _0802176C
_08021758:
movs r0, 0x6
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _08021754
_08021764:
adds r4, 0x1
cmp r4, 0x39
ble _0802172E
_0802176A:
movs r0, 0x1
_0802176C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8021700
thumb_func_start sub_8021774
sub_8021774:
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r4, r0, 0
adds r5, r1, 0
mov r8, r2
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
ldr r6, _080217E4
movs r0, 0xE0
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
strb r4, [r0, 0xC]
ldr r0, [r6]
strb r5, [r0, 0xD]
ldr r0, [r6]
bl sub_801317C
bl sub_8021A60
ldr r0, [r6]
mov r1, r8
str r1, [r0, 0x74]
lsls r1, 1
add r1, r8
lsls r1, 3
adds r1, 0x7C
adds r1, r0, r1
str r1, [r0, 0x78]
adds r0, 0x7C
bl sub_8006518
ldr r1, [r6]
ldr r2, [r1, 0x74]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x7C
ldr r0, _080217E8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
bl sub_8021820
movs r0, 0x1
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080217E4: .4byte gUnknown_203B28C
_080217E8: .4byte gUnknown_80DC4D8
thumb_func_end sub_8021774
thumb_func_start sub_80217EC
sub_80217EC:
push {lr}
ldr r0, _0802180C
ldr r0, [r0]
ldr r1, [r0, 0x74]
bl sub_8012A64
cmp r0, 0x1
beq _08021810
cmp r0, 0x2
bne _0802181A
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802181C
.align 2, 0
_0802180C: .4byte gUnknown_203B28C
_08021810:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0802181C
_0802181A:
movs r0, 0
_0802181C:
pop {r1}
bx r1
thumb_func_end sub_80217EC
thumb_func_start sub_8021820
sub_8021820:
push {lr}
bl sub_8021878
bl sub_8021894
pop {r0}
bx r0
thumb_func_end sub_8021820
thumb_func_start sub_8021830
sub_8021830:
push {r4,r5,lr}
ldr r4, _08021870
ldr r2, [r4]
cmp r2, 0
beq _0802186A
ldr r0, [r2, 0x74]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x7C
ldr r0, _08021874
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802186A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08021870: .4byte gUnknown_203B28C
_08021874: .4byte gUnknown_80DC4BC
thumb_func_end sub_8021830
thumb_func_start sub_8021878
sub_8021878:
push {lr}
bl sub_8004914
ldr r0, _08021890
ldr r0, [r0]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r0}
bx r0
.align 2, 0
_08021890: .4byte gUnknown_203B28C
thumb_func_end sub_8021878
thumb_func_start sub_8021894
sub_8021894:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x168
ldr r4, _080218F8
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_80073B8
ldr r0, [r4]
ldrb r1, [r0, 0xC]
add r0, sp, 0x4
movs r2, 0
bl sub_8092578
ldr r0, [r4]
ldr r3, [r0, 0x74]
movs r5, 0
str r5, [sp]
movs r0, 0x14
movs r1, 0
add r2, sp, 0x4
bl xxx_call_draw_string
ldr r0, [r4]
ldrb r0, [r0, 0xC]
bl sub_80925DC
adds r2, r0, 0
ldr r0, [r4]
ldr r3, [r0, 0x74]
str r5, [sp]
movs r0, 0xA
movs r1, 0x14
bl xxx_call_draw_string
ldr r4, [r4]
ldrb r0, [r4, 0xD]
cmp r0, 0
beq _08021900
ldr r2, _080218FC
ldr r3, [r4, 0x74]
str r5, [sp]
movs r0, 0x20
movs r1, 0x3C
bl xxx_call_draw_string
b _0802190E
.align 2, 0
_080218F8: .4byte gUnknown_203B28C
_080218FC: .4byte gUnknown_80DC4F0
_08021900:
ldr r2, _0802193C
ldr r3, [r4, 0x74]
str r0, [sp]
movs r0, 0x20
movs r1, 0x3C
bl xxx_call_draw_string
_0802190E:
ldr r4, _08021940
ldr r0, [r4]
ldr r0, [r0, 0x74]
movs r5, 0x4
str r5, [sp]
movs r1, 0x4
movs r2, 0x40
movs r3, 0x14
bl sub_800792C
ldr r4, [r4]
ldrb r0, [r4, 0xD]
cmp r0, 0
beq _08021944
ldr r0, [r4, 0x74]
str r5, [sp]
movs r1, 0xB8
movs r2, 0x40
movs r3, 0x14
bl sub_800792C
b _08021952
.align 2, 0
_0802193C: .4byte gUnknown_80DC518
_08021940: .4byte gUnknown_203B28C
_08021944:
ldr r0, [r4, 0x74]
str r5, [sp]
movs r1, 0x5E
movs r2, 0x40
movs r3, 0x6E
bl sub_800792C
_08021952:
ldr r5, _080219E8
ldr r0, [r5]
ldr r0, [r0, 0x74]
movs r4, 0x4
str r4, [sp]
movs r1, 0x4
movs r2, 0x82
movs r3, 0xC8
bl sub_800792C
ldr r0, [r5]
ldr r0, [r0, 0x74]
str r4, [sp]
movs r1, 0x3
movs r2, 0x40
movs r3, 0x43
bl sub_8007A78
ldr r0, [r5]
ldr r0, [r0, 0x74]
str r4, [sp]
movs r1, 0xCC
movs r2, 0x40
movs r3, 0x43
bl sub_8007A78
movs r6, 0
ldr r0, [r5]
ldr r0, [r0, 0x70]
cmp r6, r0
bge _08021A40
add r7, sp, 0x104
mov r8, r5
mov r9, r6
_08021996:
adds r0, r6, 0
movs r1, 0x3
bl __modsi3
lsls r1, r0, 6
subs r1, r0
adds r5, r1, 0x7
adds r0, r6, 0
movs r1, 0x3
bl __divsi3
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r4, r1, 0
adds r4, 0x47
mov r1, r8
ldr r0, [r1]
lsls r1, r6, 1
adds r0, 0xE
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r7, 0
bl sub_808D930
mov r0, r8
ldr r3, [r0]
lsls r1, r6, 2
adds r0, r3, 0
adds r0, 0x30
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
beq _08021A04
cmp r0, 0x1
bcc _080219EC
cmp r0, 0x2
beq _08021A16
b _08021A34
.align 2, 0
_080219E8: .4byte gUnknown_203B28C
_080219EC:
ldr r0, _08021A00
ldr r2, [r0]
ldr r3, [r3, 0x74]
mov r1, r9
str r1, [sp]
adds r0, r5, 0
adds r1, r4, 0
bl xxx_call_draw_string
b _08021A34
.align 2, 0
_08021A00: .4byte gUnknown_80D49BC
_08021A04:
ldr r3, [r3, 0x74]
mov r2, r9
str r2, [sp]
adds r0, r5, 0
adds r1, r4, 0
adds r2, r7, 0
bl xxx_call_draw_string
b _08021A34
_08021A16:
add r0, sp, 0x4
ldr r1, _08021A58
adds r2, r7, 0
bl sub_800D158
mov r1, r8
ldr r0, [r1]
ldr r3, [r0, 0x74]
mov r2, r9
str r2, [sp]
adds r0, r5, 0
adds r1, r4, 0
add r2, sp, 0x4
bl xxx_call_draw_string
_08021A34:
adds r6, 0x1
mov r1, r8
ldr r0, [r1]
ldr r0, [r0, 0x70]
cmp r6, r0
blt _08021996
_08021A40:
ldr r0, _08021A5C
ldr r0, [r0]
ldr r0, [r0, 0x74]
bl sub_80073E0
add sp, 0x168
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08021A58: .4byte gUnknown_80DC524
_08021A5C: .4byte gUnknown_203B28C
thumb_func_end sub_8021894
thumb_func_start sub_8021A60
sub_8021A60:
push {r4-r7,lr}
ldr r2, _08021B4C
ldr r1, [r2]
movs r0, 0
str r0, [r1, 0x70]
movs r6, 0
adds r4, r2, 0
movs r3, 0
_08021A70:
ldr r1, [r4]
lsls r2, r6, 1
adds r0, r1, 0
adds r0, 0xE
adds r0, r2
strh r3, [r0]
lsls r0, r6, 2
adds r1, 0x30
adds r1, r0
str r3, [r1]
adds r6, 0x1
cmp r6, 0xF
ble _08021A70
movs r6, 0
ldr r7, _08021B4C
_08021A8E:
lsls r0, r6, 16
asrs r5, r0, 16
ldr r4, [r7]
adds r0, r5, 0
bl sub_808DBA8
ldrb r1, [r4, 0xC]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _08021AC4
adds r0, r5, 0
bl sub_808E858
lsls r0, 16
asrs r0, 16
cmp r5, r0
bne _08021AC4
ldr r3, [r7]
ldr r1, [r3, 0x70]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0xE
adds r0, r2
strh r5, [r0]
adds r1, 0x1
str r1, [r3, 0x70]
_08021AC4:
adds r6, 0x1
ldr r0, _08021B50
cmp r6, r0
ble _08021A8E
movs r6, 0
_08021ACE:
lsls r0, r6, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_8098134
lsls r0, 24
cmp r0, 0
beq _08021AFC
adds r0, r4, 0
bl sub_8021B58
adds r2, r0, 0
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _08021AFC
ldr r0, _08021B4C
ldr r1, [r0]
lsls r0, r2, 2
adds r1, 0x30
adds r1, r0
movs r0, 0x1
str r0, [r1]
_08021AFC:
adds r6, 0x1
ldr r0, _08021B50
cmp r6, r0
ble _08021ACE
movs r6, 0
ldr r4, _08021B54
_08021B08:
movs r0, 0x58
adds r1, r6, 0
muls r1, r0
ldr r0, [r4]
adds r2, r0, r1
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08021B3C
movs r1, 0x8
ldrsh r0, [r2, r1]
bl sub_8021B58
adds r2, r0, 0
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _08021B3C
ldr r0, _08021B4C
ldr r1, [r0]
lsls r0, r2, 2
adds r1, 0x30
adds r1, r0
movs r0, 0x2
str r0, [r1]
_08021B3C:
adds r6, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r6, r0
ble _08021B08
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08021B4C: .4byte gUnknown_203B28C
_08021B50: .4byte 0x000001a7
_08021B54: .4byte gUnknown_203B45C
thumb_func_end sub_8021A60
thumb_func_start sub_8021B58
sub_8021B58:
push {r4,r5,lr}
lsls r0, 16
asrs r0, 16
bl sub_808E858
lsls r0, 16
asrs r4, r0, 16
movs r2, 0
ldr r0, _08021B84
ldr r0, [r0]
ldr r1, [r0, 0x70]
cmp r2, r1
bge _08021B90
adds r3, r1, 0
adds r1, r0, 0
adds r1, 0xE
_08021B78:
movs r5, 0
ldrsh r0, [r1, r5]
cmp r4, r0
bne _08021B88
adds r0, r2, 0
b _08021B94
.align 2, 0
_08021B84: .4byte gUnknown_203B28C
_08021B88:
adds r1, 0x2
adds r2, 0x1
cmp r2, r3
blt _08021B78
_08021B90:
movs r0, 0x1
negs r0, r0
_08021B94:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8021B58
thumb_func_start sub_8021B9C
sub_8021B9C:
push {r4-r6,lr}
adds r4, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08021BF8
movs r0, 0x9C
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r6, 0
str r6, [r0, 0x14]
str r6, [r0, 0x18]
str r4, [r0]
ldr r0, _08021BFC
movs r1, 0x28
bl sub_808D8E0
ldr r4, _08021C00
adds r0, r4, 0
movs r1, 0x28
bl sub_808D8E0
movs r0, 0x28
bl sub_808D994
adds r1, r0, 0
subs r4, 0x50
adds r0, r4, 0
bl strcpy
ldr r5, [r5]
ldr r0, [r5]
cmp r0, 0x1
bne _08021C04
adds r0, r5, 0
adds r0, 0xCC
str r6, [r0]
b _08021C0E
.align 2, 0
_08021BF8: .4byte gUnknown_203B290
_08021BFC: .4byte gUnknown_202E5D8
_08021C00: .4byte gUnknown_202E1C8
_08021C04:
adds r1, r5, 0
adds r1, 0xCC
adds r0, r5, 0
adds r0, 0xBC
str r0, [r1]
_08021C0E:
movs r0, 0x28
bl sub_808DDD0
ldr r2, _08021C58
ldr r3, [r2]
adds r1, r3, 0
adds r1, 0xBC
str r0, [r1]
adds r1, 0x4
ldr r0, [r0, 0x4]
str r0, [r1]
adds r0, r3, 0
adds r0, 0xC8
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xC9
strb r1, [r0]
ldr r0, [r2]
adds r0, 0xCA
strb r1, [r0]
ldr r1, [r2]
adds r2, r1, 0
adds r2, 0xC4
movs r0, 0x2
strh r0, [r2]
adds r1, 0xC6
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_8021D44
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08021C58: .4byte gUnknown_203B290
thumb_func_end sub_8021B9C
thumb_func_start sub_8021C5C
sub_8021C5C:
push {lr}
ldr r0, _08021C74
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x17
bhi _08021D10
lsls r0, 2
ldr r1, _08021C78
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08021C74: .4byte gUnknown_203B290
_08021C78: .4byte _08021C7C
.align 2, 0
_08021C7C:
.4byte _08021CDC
.4byte _08021CDC
.4byte _08021D10
.4byte _08021D10
.4byte _08021D0C
.4byte _08021D10
.4byte _08021D10
.4byte _08021D10
.4byte _08021D10
.4byte _08021CE2
.4byte _08021CE2
.4byte _08021CE8
.4byte _08021D10
.4byte _08021CF4
.4byte _08021CFA
.4byte _08021D10
.4byte _08021D00
.4byte _08021CEE
.4byte _08021D10
.4byte _08021D10
.4byte _08021D10
.4byte _08021D10
.4byte _08021D06
.4byte _08021D06
_08021CDC:
bl sub_8022460
b _08021D14
_08021CE2:
bl sub_8022538
b _08021D14
_08021CE8:
bl sub_80225C8
b _08021D14
_08021CEE:
bl sub_80224D4
b _08021D14
_08021CF4:
bl sub_80226F0
b _08021D14
_08021CFA:
bl sub_8022790
b _08021D14
_08021D00:
bl sub_8022668
b _08021D14
_08021D06:
bl sub_8022684
b _08021D14
_08021D0C:
movs r0, 0x3
b _08021D16
_08021D10:
bl sub_80226CC
_08021D14:
movs r0, 0
_08021D16:
pop {r1}
bx r1
thumb_func_end sub_8021C5C
thumb_func_start sub_8021D1C
sub_8021D1C:
push {r4,lr}
ldr r4, _08021D40
ldr r0, [r4]
cmp r0, 0
beq _08021D38
adds r0, 0xBC
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08021D38:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08021D40: .4byte gUnknown_203B290
thumb_func_end sub_8021D1C
thumb_func_start sub_8021D44
sub_8021D44:
push {lr}
ldr r1, _08021D58
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_8021D5C
bl sub_8021E0C
pop {r0}
bx r0
.align 2, 0
_08021D58: .4byte gUnknown_203B290
thumb_func_end sub_8021D44
thumb_func_start sub_8021D5C
sub_8021D5C:
push {r4-r7,lr}
ldr r4, _08021D7C
ldr r0, [r4]
adds r0, 0xD0
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1, 0x4]
cmp r0, 0x9
blt _08021DC8
cmp r0, 0xA
ble _08021D80
cmp r0, 0xB
beq _08021DB0
b _08021DC8
.align 2, 0
_08021D7C: .4byte gUnknown_203B290
_08021D80:
ldr r2, _08021DA8
adds r1, 0xD0
adds r0, r2, 0
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r3,r5,r7}
stm r1!, {r3,r5,r7}
ldr r0, [r4]
movs r6, 0x80
lsls r6, 1
adds r0, r6
ldm r2!, {r1,r3,r7}
stm r0!, {r1,r3,r7}
ldm r2!, {r5-r7}
stm r0!, {r5-r7}
ldr r1, [r4]
adds r1, 0xE8
ldr r0, _08021DAC
b _08021DB8
.align 2, 0
_08021DA8: .4byte gUnknown_80DC534
_08021DAC: .4byte gUnknown_80DC564
_08021DB0:
movs r0, 0x80
lsls r0, 1
adds r1, r0
ldr r0, _08021DC4
_08021DB8:
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _08021DEC
.align 2, 0
_08021DC4: .4byte gUnknown_80DC54C
_08021DC8:
ldr r0, _08021E04
mov r12, r0
ldr r4, _08021E08
movs r3, 0
movs r2, 0x3
_08021DD2:
mov r5, r12
ldr r1, [r5]
adds r1, r3
adds r1, 0xD0
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08021DD2
_08021DEC:
bl sub_8004914
ldr r0, _08021E04
ldr r0, [r0]
adds r0, 0xD0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08021E04: .4byte gUnknown_203B290
_08021E08: .4byte gUnknown_80DC534
thumb_func_end sub_8021D5C
thumb_func_start sub_8021E0C
sub_8021E0C:
push {r4,lr}
sub sp, 0x20
ldr r1, _08021E28
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r4, r1, 0
cmp r0, 0x1C
bls _08021E1E
b _080222B6
_08021E1E:
lsls r0, 2
ldr r1, _08021E2C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08021E28: .4byte gUnknown_203B290
_08021E2C: .4byte _08021E30
.align 2, 0
_08021E30:
.4byte _08021EA4
.4byte _08021EC0
.4byte _08021F38
.4byte _08021F50
.4byte _080222B6
.4byte _08021F78
.4byte _08021F90
.4byte _08021F08
.4byte _08021F20
.4byte _08021FD8
.4byte _08021FE2
.4byte _08021FF0
.4byte _0802208E
.4byte _080220B8
.4byte _080220D8
.4byte _080220EA
.4byte _08022080
.4byte _08022024
.4byte _08021FA8
.4byte _08021FC0
.4byte _08022138
.4byte _08022150
.4byte _08022168
.4byte _08022176
.4byte _0802217E
.4byte _08022238
.4byte _08022250
.4byte _08022268
.4byte _08022294
_08021EA4:
bl sub_80222C8
ldr r2, _08021EB8
ldr r0, _08021EBC
ldr r4, [r0]
ldr r1, [r4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
b _08021ED4
.align 2, 0
_08021EB8: .4byte gUnknown_80D79A4
_08021EBC: .4byte gUnknown_203B290
_08021EC0:
bl sub_80222C8
ldr r2, _08021F00
ldr r0, _08021F04
ldr r4, [r0]
ldr r1, [r4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x4
_08021ED4:
adds r0, r2
ldr r0, [r0]
ldr r2, [r4, 0x14]
adds r3, r4, 0
adds r3, 0x1C
adds r1, r4, 0
adds r1, 0x5C
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
adds r1, r4, 0
adds r1, 0xCC
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _080222B6
.align 2, 0
_08021F00: .4byte gUnknown_80D79A4
_08021F04: .4byte gUnknown_203B290
_08021F08:
ldr r3, [r4]
movs r0, 0x9
str r0, [r3, 0x8]
ldr r2, _08021F1C
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0xC
b _0802227A
.align 2, 0
_08021F1C: .4byte gUnknown_80D79A4
_08021F20:
ldr r3, [r4]
movs r0, 0xA
str r0, [r3, 0x8]
ldr r2, _08021F34
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x10
b _0802227A
.align 2, 0
_08021F34: .4byte gUnknown_80D79A4
_08021F38:
ldr r3, [r4]
movs r0, 0x1
str r0, [r3, 0x8]
ldr r2, _08021F4C
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x4C
b _0802227A
.align 2, 0
_08021F4C: .4byte gUnknown_80D79A4
_08021F50:
ldr r3, [r4]
movs r0, 0x4
str r0, [r3, 0x8]
ldr r2, _08021F70
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x8
adds r0, r2
ldr r0, [r0]
adds r3, 0xCC
ldr r2, [r3]
ldr r3, _08021F74
b _08022284
.align 2, 0
_08021F70: .4byte gUnknown_80D79A4
_08021F74: .4byte 0x0000030d
_08021F78:
ldr r3, [r4]
movs r0, 0x3
str r0, [r3, 0x8]
ldr r2, _08021F8C
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x20
b _0802227A
.align 2, 0
_08021F8C: .4byte gUnknown_80D79A4
_08021F90:
ldr r3, [r4]
movs r0, 0xA
str r0, [r3, 0x8]
ldr r2, _08021FA4
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x24
b _0802227A
.align 2, 0
_08021FA4: .4byte gUnknown_80D79A4
_08021FA8:
ldr r3, [r4]
movs r0, 0x3
str r0, [r3, 0x8]
ldr r2, _08021FBC
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x28
b _0802227A
.align 2, 0
_08021FBC: .4byte gUnknown_80D79A4
_08021FC0:
ldr r3, [r4]
movs r0, 0xA
str r0, [r3, 0x8]
ldr r2, _08021FD4
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x2C
b _0802227A
.align 2, 0
_08021FD4: .4byte gUnknown_80D79A4
_08021FD8:
movs r0, 0x2
movs r1, 0x3
bl sub_80211AC
b _08021FE8
_08021FE2:
movs r0, 0x1
bl sub_8021354
_08021FE8:
movs r0, 0x1
bl sub_8016C40
b _080222B6
_08021FF0:
bl sub_8021494
movs r0, 0x1
bl sub_8016C40
bl sub_8022380
ldr r0, _08022020
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x6C
adds r1, r2, 0
adds r1, 0x1C
adds r3, r2, 0
adds r3, 0x5C
ldr r2, [r2, 0x18]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _080222B6
.align 2, 0
_08022020: .4byte gUnknown_203B290
_08022024:
bl sub_8022420
ldr r0, _08022070
ldr r4, _08022074
ldr r1, [r4]
ldrb r1, [r1, 0x10]
movs r2, 0
bl sub_8092578
ldr r1, _08022078
ldr r4, [r4]
ldr r0, [r4, 0xC]
str r0, [r1]
ldr r2, _0802207C
ldr r1, [r4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x14
adds r0, r2
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x1C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
adds r4, 0xCC
ldr r1, [r4]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x5
bl sub_8014248
b _080222B6
.align 2, 0
_08022070: .4byte gUnknown_202E628
_08022074: .4byte gUnknown_203B290
_08022078: .4byte gUnknown_202DE30
_0802207C: .4byte gUnknown_80D79A4
_08022080:
ldr r0, [r4]
ldrb r0, [r0, 0x10]
movs r1, 0
movs r2, 0x2
bl sub_8021774
b _080222B6
_0802208E:
ldr r1, [r4]
movs r0, 0xD
str r0, [r1, 0x8]
ldr r0, _080220B0
ldrb r1, [r1, 0x10]
movs r2, 0
bl sub_8092578
ldr r2, _080220B4
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x18
b _0802227A
.align 2, 0
_080220B0: .4byte gUnknown_202E628
_080220B4: .4byte gUnknown_80D79A4
_080220B8:
ldr r1, [r4]
movs r0, 0xE
str r0, [r1, 0x8]
ldr r0, _080220D4
bl sub_8011988
ldr r0, [r4]
movs r1, 0x98
lsls r1, 1
adds r0, r1
movs r1, 0x1
str r1, [r0]
b _080222B6
.align 2, 0
_080220D4: .4byte 0x0000025b
_080220D8:
ldr r0, [r4]
movs r1, 0xF
str r1, [r0, 0x8]
movs r1, 0x9A
lsls r1, 1
adds r0, r1
movs r1, 0x1E
str r1, [r0]
b _080222B6
_080220EA:
movs r0, 0x2
bl sub_8021700
lsls r0, 24
cmp r0, 0
beq _08022108
bl sub_80213A0
ldr r0, _08022104
ldr r1, [r0]
movs r0, 0x12
b _0802210E
.align 2, 0
_08022104: .4byte gUnknown_203B290
_08022108:
ldr r0, _08022130
ldr r1, [r0]
movs r0, 0x8
_0802210E:
str r0, [r1, 0x8]
movs r0, 0xCE
bl sub_8011988
ldr r3, _08022134
ldr r0, _08022130
ldr r2, [r0]
ldr r1, [r2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r3, 0x1C
adds r0, r3
ldr r0, [r0]
adds r2, 0xCC
ldr r2, [r2]
b _08022282
.align 2, 0
_08022130: .4byte gUnknown_203B290
_08022134: .4byte gUnknown_80D79A4
_08022138:
ldr r3, [r4]
movs r0, 0x16
str r0, [r3, 0x8]
ldr r2, _0802214C
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x30
b _0802227A
.align 2, 0
_0802214C: .4byte gUnknown_80D79A4
_08022150:
ldr r3, [r4]
movs r0, 0x17
str r0, [r3, 0x8]
ldr r2, _08022164
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x34
b _0802227A
.align 2, 0
_08022164: .4byte gUnknown_80D79A4
_08022168:
movs r0, 0
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_8023144
b _080222B6
_08022176:
movs r0, 0x1
bl sub_8023354
b _080222B6
_0802217E:
ldr r4, _080221A0
ldr r0, [r4]
ldrb r0, [r0, 0x10]
add r1, sp, 0x14
movs r2, 0
movs r3, 0
bl sub_8092638
add r0, sp, 0x14
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080221A4
ldr r1, [r4]
movs r0, 0x19
str r0, [r1, 0x8]
b _080221FA
.align 2, 0
_080221A0: .4byte gUnknown_203B290
_080221A4:
ldr r0, [r4]
ldrb r0, [r0, 0x10]
bl sub_8092534
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
beq _080221E0
cmp r0, 0x2
bgt _080221BE
cmp r0, 0x1
beq _080221C4
b _080221F0
_080221BE:
cmp r0, 0x3
beq _080221E8
b _080221F0
_080221C4:
movs r0, 0x6
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080221D8
ldr r1, [r4]
movs r0, 0x15
str r0, [r1, 0x8]
b _080221FA
_080221D8:
ldr r1, [r4]
movs r0, 0x1A
str r0, [r1, 0x8]
b _080221FA
_080221E0:
ldr r1, [r4]
movs r0, 0x1B
str r0, [r1, 0x8]
b _080221FA
_080221E8:
ldr r1, [r4]
movs r0, 0x1C
str r0, [r1, 0x8]
b _080221FA
_080221F0:
ldr r2, _08022228
ldr r1, [r2]
movs r0, 0x15
str r0, [r1, 0x8]
adds r4, r2, 0
_080221FA:
ldr r0, [r4]
movs r1, 0x12
ldrsh r0, [r0, r1]
bl sub_808D994
adds r1, r0, 0
ldr r0, _0802222C
bl strcpy
ldr r0, _08022230
ldr r1, [r4]
ldrb r1, [r1, 0x10]
movs r2, 0
bl sub_8092578
ldr r2, _08022234
ldr r3, [r4]
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x38
b _0802227A
.align 2, 0
_08022228: .4byte gUnknown_203B290
_0802222C: .4byte gUnknown_202DF98
_08022230: .4byte gUnknown_202E628
_08022234: .4byte gUnknown_80D79A4
_08022238:
ldr r3, [r4]
movs r0, 0x15
str r0, [r3, 0x8]
ldr r2, _0802224C
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x3C
b _0802227A
.align 2, 0
_0802224C: .4byte gUnknown_80D79A4
_08022250:
ldr r3, [r4]
movs r0, 0x15
str r0, [r3, 0x8]
ldr r2, _08022264
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x40
b _0802227A
.align 2, 0
_08022264: .4byte gUnknown_80D79A4
_08022268:
ldr r3, [r4]
movs r0, 0x15
str r0, [r3, 0x8]
ldr r2, _0802228C
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x44
_0802227A:
adds r0, r2
ldr r0, [r0]
adds r3, 0xCC
ldr r2, [r3]
_08022282:
ldr r3, _08022290
_08022284:
movs r1, 0
bl sub_80141B4
b _080222B6
.align 2, 0
_0802228C: .4byte gUnknown_80D79A4
_08022290: .4byte 0x0000010d
_08022294:
ldr r3, [r4]
movs r0, 0x15
str r0, [r3, 0x8]
ldr r2, _080222C0
ldr r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r2, 0x48
adds r0, r2
ldr r0, [r0]
adds r3, 0xCC
ldr r2, [r3]
ldr r3, _080222C4
movs r1, 0
bl sub_80141B4
_080222B6:
add sp, 0x20
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080222C0: .4byte gUnknown_80D79A4
_080222C4: .4byte 0x0000010d
thumb_func_end sub_8021E0C
thumb_func_start sub_80222C8
sub_80222C8:
push {r4-r7,lr}
ldr r4, _08022344
ldr r0, [r4]
adds r0, 0x5C
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
movs r5, 0
ldr r0, _08022348
ldr r0, [r0]
str r0, [r1, 0x1C]
adds r3, r1, 0
adds r3, 0x20
movs r0, 0x2
str r0, [r1, 0x20]
movs r2, 0x1
ldr r0, _0802234C
ldr r0, [r0]
str r0, [r1, 0x24]
movs r0, 0x3
str r0, [r1, 0x28]
ldr r0, _08022350
ldr r0, [r0]
str r0, [r1, 0x2C]
movs r0, 0x4
str r0, [r1, 0x30]
ldr r0, _08022354
ldr r0, [r0]
str r0, [r1, 0x34]
str r2, [r1, 0x38]
movs r7, 0x4
str r5, [r1, 0x3C]
str r2, [r3, 0x20]
adds r6, r1, 0
adds r2, r6, 0
adds r2, 0x5C
_08022314:
ldrh r0, [r2]
cmp r0, 0
bne _08022322
ldr r1, [r3]
ldr r0, [r6, 0x14]
cmp r1, r0
beq _0802237A
_08022322:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r7
blt _08022314
movs r5, 0
cmp r5, r7
bge _0802237A
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x5C
ldrh r0, [r0]
cmp r0, 0
bne _08022358
ldr r0, [r1, 0x20]
str r0, [r1, 0x14]
b _0802237A
.align 2, 0
_08022344: .4byte gUnknown_203B290
_08022348: .4byte gUnknown_80D4978
_0802234C: .4byte gUnknown_80D499C
_08022350: .4byte gUnknown_80D4970
_08022354: .4byte gUnknown_80D4934
_08022358:
adds r5, 0x1
cmp r5, r7
bge _0802237A
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x5C
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08022358
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x20
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x14]
_0802237A:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80222C8
thumb_func_start sub_8022380
sub_8022380:
push {r4-r7,lr}
ldr r4, _080223EC
ldr r0, [r4]
adds r0, 0x5C
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _080223F0
ldr r0, [r0]
str r0, [r3, 0x1C]
movs r0, 0x2
str r0, [r3, 0x20]
movs r1, 0x1
ldr r0, _080223F4
ldr r0, [r0]
str r0, [r3, 0x24]
movs r0, 0x4
str r0, [r3, 0x28]
movs r6, 0x2
str r2, [r3, 0x2C]
str r1, [r3, 0x30]
movs r5, 0
mov r12, r3
adds r3, 0x20
mov r2, r12
adds r2, 0x5C
_080223BA:
ldrh r0, [r2]
cmp r0, 0
bne _080223CA
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x18]
cmp r1, r0
beq _0802241A
_080223CA:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _080223BA
movs r5, 0
cmp r5, r6
bge _0802241A
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x5C
ldrh r0, [r0]
cmp r0, 0
bne _080223F8
ldr r0, [r1, 0x20]
str r0, [r1, 0x18]
b _0802241A
.align 2, 0
_080223EC: .4byte gUnknown_203B290
_080223F0: .4byte gUnknown_80D4978
_080223F4: .4byte gUnknown_80D4970
_080223F8:
adds r5, 0x1
cmp r5, r6
bge _0802241A
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0x5C
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _080223F8
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x20
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x18]
_0802241A:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8022380
thumb_func_start sub_8022420
sub_8022420:
push {r4,lr}
ldr r4, _08022454
ldr r0, [r4]
adds r0, 0x5C
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
movs r3, 0
ldr r0, _08022458
ldr r0, [r0]
str r0, [r1, 0x1C]
movs r0, 0x5
str r0, [r1, 0x20]
movs r2, 0x1
ldr r0, _0802245C
ldr r0, [r0]
str r0, [r1, 0x24]
movs r0, 0x6
str r0, [r1, 0x28]
str r3, [r1, 0x2C]
str r2, [r1, 0x30]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08022454: .4byte gUnknown_203B290
_08022458: .4byte gUnknown_80D4920
_0802245C: .4byte gUnknown_80D4928
thumb_func_end sub_8022420
thumb_func_start sub_8022460
sub_8022460:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080224CC
ldr r1, [sp]
cmp r1, 0x1
beq _0802247A
ldr r0, _0802248C
ldr r0, [r0]
str r1, [r0, 0x14]
_0802247A:
ldr r0, [sp]
cmp r0, 0x2
beq _0802249A
cmp r0, 0x2
bgt _08022490
cmp r0, 0x1
beq _080224C6
b _080224CC
.align 2, 0
_0802248C: .4byte gUnknown_203B290
_08022490:
cmp r0, 0x3
beq _080224B6
cmp r0, 0x4
beq _080224BE
b _080224CC
_0802249A:
movs r0, 0x2
bl sub_8021700
lsls r0, 24
cmp r0, 0
beq _080224AE
movs r0, 0x5
bl sub_8021D44
b _080224CC
_080224AE:
movs r0, 0x7
bl sub_8021D44
b _080224CC
_080224B6:
movs r0, 0x14
bl sub_8021D44
b _080224CC
_080224BE:
movs r0, 0x2
bl sub_8021D44
b _080224CC
_080224C6:
movs r0, 0x3
bl sub_8021D44
_080224CC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8022460
thumb_func_start sub_80224D4
sub_80224D4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08022532
ldr r0, [sp]
cmp r0, 0x5
beq _080224F8
cmp r0, 0x5
bgt _080224F2
cmp r0, 0x1
beq _0802252C
b _08022532
_080224F2:
cmp r0, 0x6
beq _0802252C
b _08022532
_080224F8:
ldr r0, _08022524
ldr r2, [r0]
movs r0, 0x98
lsls r0, 2
adds r2, r0
ldr r0, _08022528
ldr r3, [r0]
ldr r0, [r2]
ldr r1, [r3, 0xC]
subs r0, r1
str r0, [r2]
ldrb r0, [r3, 0x10]
bl sub_80925EC
movs r0, 0xA6
lsls r0, 1
bl sub_8011988
movs r0, 0xC
bl sub_8021D44
b _08022532
.align 2, 0
_08022524: .4byte gUnknown_203B460
_08022528: .4byte gUnknown_203B290
_0802252C:
movs r0, 0xA
bl sub_8021D44
_08022532:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80224D4
thumb_func_start sub_8022538
sub_8022538:
push {r4,lr}
movs r0, 0x1
bl sub_8021274
cmp r0, 0x4
bhi _080225BC
lsls r0, 2
ldr r1, _08022550
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022550: .4byte _08022554
.align 2, 0
_08022554:
.4byte _080225C2
.4byte _080225BC
.4byte _080225B0
.4byte _08022568
.4byte _0802258C
_08022568:
bl sub_802132C
ldr r4, _08022588
ldr r1, [r4]
strb r0, [r1, 0x10]
ldr r0, [r4]
ldrb r0, [r0, 0x10]
bl sub_8092544
ldr r1, [r4]
str r0, [r1, 0xC]
movs r0, 0xB
bl sub_8021D44
b _080225C2
.align 2, 0
_08022588: .4byte gUnknown_203B290
_0802258C:
bl sub_802132C
ldr r4, _080225AC
ldr r1, [r4]
strb r0, [r1, 0x10]
ldr r0, [r4]
ldrb r0, [r0, 0x10]
bl sub_8092544
ldr r1, [r4]
str r0, [r1, 0xC]
movs r0, 0x10
bl sub_8021D44
b _080225C2
.align 2, 0
_080225AC: .4byte gUnknown_203B290
_080225B0:
bl sub_80213A0
movs r0, 0x1
bl sub_8021D44
b _080225C2
_080225BC:
movs r0, 0x1
bl sub_8016C40
_080225C2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8022538
thumb_func_start sub_80225C8
sub_80225C8:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8021274
ldr r4, _08022608
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080225F8
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _080225F8
ldr r0, [r4]
str r1, [r0, 0x18]
_080225F8:
ldr r0, [sp]
cmp r0, 0x2
beq _08022612
cmp r0, 0x2
bgt _0802260C
cmp r0, 0x1
beq _08022658
b _0802265E
.align 2, 0
_08022608: .4byte gUnknown_203B290
_0802260C:
cmp r0, 0x4
beq _08022650
b _0802265E
_08022612:
ldr r0, _0802262C
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r1, [r0]
cmp r1, 0
bne _08022630
movs r0, 0x6
bl sub_8021D44
b _0802265E
.align 2, 0
_0802262C: .4byte gUnknown_203B460
_08022630:
ldr r0, _08022644
ldr r0, [r0]
ldr r0, [r0, 0xC]
cmp r0, r1
ble _08022648
movs r0, 0x13
bl sub_8021D44
b _0802265E
.align 2, 0
_08022644: .4byte gUnknown_203B290
_08022648:
movs r0, 0x11
bl sub_8021D44
b _0802265E
_08022650:
movs r0, 0x10
bl sub_8021D44
b _0802265E
_08022658:
movs r0, 0xA
bl sub_8021D44
_0802265E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80225C8
thumb_func_start sub_8022668
sub_8022668:
push {lr}
bl sub_80217EC
cmp r0, 0x1
bls _08022680
cmp r0, 0x3
bhi _08022680
bl sub_8021830
movs r0, 0xA
bl sub_8021D44
_08022680:
pop {r0}
bx r0
thumb_func_end sub_8022668
thumb_func_start sub_8022684
sub_8022684:
push {r4,lr}
movs r0, 0x1
bl sub_8023278
cmp r0, 0x2
beq _080226BC
cmp r0, 0x2
bcc _080226C6
cmp r0, 0x3
bne _080226C6
bl sub_802331C
ldr r4, _080226B8
ldr r1, [r4]
strh r0, [r1, 0x12]
movs r2, 0x12
ldrsh r0, [r1, r2]
bl sub_808DBA8
ldr r1, [r4]
strb r0, [r1, 0x10]
movs r0, 0x18
bl sub_8021D44
b _080226C6
.align 2, 0
_080226B8: .4byte gUnknown_203B290
_080226BC:
bl sub_80233A0
movs r0, 0x1
bl sub_8021D44
_080226C6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8022684
thumb_func_start sub_80226CC
sub_80226CC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080226E4
ldr r0, _080226EC
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_8021D44
_080226E4:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080226EC: .4byte gUnknown_203B290
thumb_func_end sub_80226CC
thumb_func_start sub_80226F0
sub_80226F0:
push {r4,lr}
sub sp, 0x4
mov r1, sp
movs r2, 0
movs r0, 0x80
strb r0, [r1]
strb r0, [r1, 0x1]
movs r0, 0x10
strb r0, [r1, 0x2]
strb r2, [r1, 0x3]
bl sub_8099B94
lsls r0, 24
cmp r0, 0
bne _08022782
ldr r0, _08022728
ldr r0, [r0]
movs r1, 0x98
lsls r1, 1
adds r0, r1
ldr r0, [r0]
cmp r0, 0x4
bhi _0802275C
lsls r0, 2
ldr r1, _0802272C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022728: .4byte gUnknown_203B290
_0802272C: .4byte _08022730
.align 2, 0
_08022730:
.4byte _0802275C
.4byte _08022744
.4byte _08022750
.4byte _08022744
.4byte _08022750
_08022744:
movs r0, 0x5
movs r1, 0x2
ldr r2, [sp]
bl sub_8099AFC
b _08022772
_08022750:
movs r0, 0x5
movs r1, 0x2
ldr r2, [sp]
bl sub_8099A5C
b _08022772
_0802275C:
ldr r4, _0802278C
ldr r0, [r4]
ldr r0, [r0, 0x8]
bl sub_8021D44
ldr r0, [r4]
movs r1, 0x98
lsls r1, 1
adds r0, r1
movs r1, 0
str r1, [r0]
_08022772:
ldr r0, _0802278C
ldr r1, [r0]
movs r0, 0x98
lsls r0, 1
adds r1, r0
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
_08022782:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802278C: .4byte gUnknown_203B290
thumb_func_end sub_80226F0
thumb_func_start sub_8022790
sub_8022790:
push {lr}
ldr r0, _080227A8
ldr r2, [r0]
movs r0, 0x9A
lsls r0, 1
adds r1, r2, r0
ldr r0, [r1]
cmp r0, 0
beq _080227AC
subs r0, 0x1
str r0, [r1]
b _080227B2
.align 2, 0
_080227A8: .4byte gUnknown_203B290
_080227AC:
ldr r0, [r2, 0x8]
bl sub_8021D44
_080227B2:
pop {r0}
bx r0
thumb_func_end sub_8022790
thumb_func_start sub_80227B8
sub_80227B8:
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _08022810
movs r0, 0xD4
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
adds r2, r0, 0
adds r2, 0xF4
movs r1, 0
str r1, [r2]
str r5, [r0, 0x48]
cmp r5, 0
beq _08022820
ldr r4, _08022814
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x7
bl sub_808D9AC
adds r4, 0x50
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x6
bl sub_808D9AC
bl sub_809177C
lsls r0, 24
cmp r0, 0
beq _08022818
movs r0, 0
bl sub_8022924
b _08022856
.align 2, 0
_08022810: .4byte gUnknown_203B294
_08022814: .4byte gUnknown_202DF98
_08022818:
movs r0, 0x11
bl sub_8022924
b _08022856
_08022820:
ldr r4, _08022848
ldr r5, _0802284C
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
adds r4, 0x50
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
bl sub_8090A34
cmp r0, 0
bne _08022850
movs r0, 0x12
bl sub_8022924
b _08022856
.align 2, 0
_08022848: .4byte gUnknown_202DF98
_0802284C: .4byte gUnknown_80DC5EC
_08022850:
movs r0, 0
bl sub_8022924
_08022856:
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80227B8
thumb_func_start sub_8022860
sub_8022860:
push {lr}
ldr r0, _08022878
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x16
bhi _080228FE
lsls r0, 2
ldr r1, _0802287C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022878: .4byte gUnknown_203B294
_0802287C: .4byte _08022880
.align 2, 0
_08022880:
.4byte _080228DC
.4byte _080228DC
.4byte _080228E2
.4byte _080228E8
.4byte _080228EE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228F4
.4byte _080228FA
_080228DC:
bl sub_8022E78
b _08022902
_080228E2:
bl sub_8022EF4
b _08022902
_080228E8:
bl sub_8023068
b _08022902
_080228EE:
bl sub_80230E8
b _08022902
_080228F4:
bl sub_8023104
b _08022902
_080228FA:
movs r0, 0x3
b _08022904
_080228FE:
bl sub_8023120
_08022902:
movs r0, 0
_08022904:
pop {r1}
bx r1
thumb_func_end sub_8022860
thumb_func_start sub_8022908
sub_8022908:
push {r4,lr}
ldr r4, _08022920
ldr r0, [r4]
cmp r0, 0
beq _0802291A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802291A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08022920: .4byte gUnknown_203B294
thumb_func_end sub_8022908
thumb_func_start sub_8022924
sub_8022924:
push {lr}
ldr r1, _08022938
ldr r1, [r1]
str r0, [r1]
bl sub_802293C
bl sub_8022A10
pop {r0}
bx r0
.align 2, 0
_08022938: .4byte gUnknown_203B294
thumb_func_end sub_8022924
thumb_func_start sub_802293C
sub_802293C:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _08022964
ldr r0, [r4]
movs r1, 0xA4
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x3
beq _080229A4
cmp r0, 0x3
bgt _08022968
cmp r0, 0x2
beq _08022972
b _080229BC
.align 2, 0
_08022964: .4byte gUnknown_203B294
_08022968:
cmp r0, 0x10
bgt _080229BC
cmp r0, 0xA
blt _080229BC
b _080229E6
_08022972:
bl sub_8022D2C
ldr r2, [r4]
movs r0, 0xBC
lsls r0, 1
adds r2, r0
ldr r1, _080229A0
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xF8
bl sub_8012CAC
ldr r0, [r4]
movs r6, 0xC2
lsls r6, 1
adds r0, r6
movs r1, 0x6
strh r1, [r0]
b _080229E6
.align 2, 0
_080229A0: .4byte gUnknown_80DC5BC
_080229A4:
movs r7, 0xB0
lsls r7, 1
adds r1, r7
ldr r0, _080229B8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _080229E6
.align 2, 0
_080229B8: .4byte gUnknown_80DC5D4
_080229BC:
ldr r0, _08022A08
mov r12, r0
movs r1, 0xA4
lsls r1, 1
mov r8, r1
ldr r4, _08022A0C
movs r3, 0
movs r2, 0x3
_080229CC:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _080229CC
_080229E6:
bl sub_8004914
ldr r0, _08022A08
ldr r0, [r0]
movs r6, 0xA4
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08022A08: .4byte gUnknown_203B294
_08022A0C: .4byte gUnknown_80DC5A4
thumb_func_end sub_802293C
thumb_func_start sub_8022A10
sub_8022A10:
push {r4-r7,lr}
sub sp, 0x8
ldr r1, _08022A2C
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x16
bls _08022A22
b _08022D1E
_08022A22:
lsls r0, 2
ldr r1, _08022A30
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022A2C: .4byte gUnknown_203B294
_08022A30: .4byte _08022A34
.align 2, 0
_08022A34:
.4byte _08022A90
.4byte _08022AAA
.4byte _08022AB2
.4byte _08022AE0
.4byte _08022B10
.4byte _08022B1A
.4byte _08022B24
.4byte _08022B34
.4byte _08022B44
.4byte _08022B54
.4byte _08022B64
.4byte _08022C28
.4byte _08022CA0
.4byte _08022CA8
.4byte _08022CB0
.4byte _08022CB8
.4byte _08022CC0
.4byte _08022CC8
.4byte _08022CD8
.4byte _08022CE8
.4byte _08022CF8
.4byte _08022D14
.4byte _08022D1E
_08022A90:
ldr r0, [r4]
ldr r0, [r0, 0x48]
cmp r0, 0
beq _08022A9C
movs r0, 0x5
b _08022A9E
_08022A9C:
movs r0, 0x1
_08022A9E:
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08022D22
_08022AAA:
movs r0, 0x1
bl sub_801A8D0
b _08022D22
_08022AB2:
bl sub_801A9E0
ldr r0, _08022ADC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x54
adds r1, r2, 0
adds r1, 0xF8
movs r4, 0x9C
lsls r4, 1
adds r3, r2, r4
adds r2, 0xF4
ldr r2, [r2]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08022D22
.align 2, 0
_08022ADC: .4byte gUnknown_203B294
_08022AE0:
bl sub_801A9E0
ldr r4, _08022B08
ldr r0, [r4]
adds r0, 0x54
movs r1, 0
bl sub_8012EA4
ldr r0, [r4]
adds r0, 0xA4
ldr r1, _08022B0C
movs r2, 0x3
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _08022D22
.align 2, 0
_08022B08: .4byte gUnknown_203B294
_08022B0C: .4byte gUnknown_80DC584
_08022B10:
ldr r0, [r4]
adds r0, 0x50
bl sub_801B3C0
b _08022D22
_08022B1A:
ldr r0, _08022B20
b _08022D00
.align 2, 0
_08022B20: .4byte gUnknown_80DC5F4
_08022B24:
ldr r0, _08022B2C
ldr r3, _08022B30
b _08022D02
.align 2, 0
_08022B2C: .4byte gUnknown_80DC618
_08022B30: .4byte 0x00000101
_08022B34:
ldr r0, _08022B3C
ldr r3, _08022B40
b _08022D02
.align 2, 0
_08022B3C: .4byte gUnknown_80DC674
_08022B40: .4byte 0x00000101
_08022B44:
ldr r0, _08022B4C
ldr r3, _08022B50
b _08022D02
.align 2, 0
_08022B4C: .4byte gUnknown_80DC6CC
_08022B50: .4byte 0x00000101
_08022B54:
ldr r0, _08022B5C
ldr r3, _08022B60
b _08022D02
.align 2, 0
_08022B5C: .4byte gUnknown_80DC728
_08022B60: .4byte 0x00000101
_08022B64:
ldr r7, _08022B68
b _08022B78
.align 2, 0
_08022B68: .4byte gUnknown_203B294
_08022B6C:
ldr r1, [r4]
ldr r0, [r1, 0x40]
adds r0, 0x1
str r0, [r1, 0x40]
cmp r0, 0x17
bgt _08022C10
_08022B78:
movs r5, 0
movs r6, 0
movs r3, 0
ldr r2, [r4]
ldr r0, [r2, 0x38]
cmp r5, r0
bge _08022BA4
ldrb r1, [r2, 0x8]
b _08022B9C
_08022B8A:
adds r3, 0x1
ldr r2, [r4]
ldr r0, [r2, 0x38]
cmp r3, r0
bge _08022BA4
adds r0, r2, 0
adds r0, 0x8
adds r0, r3
ldrb r1, [r0]
_08022B9C:
ldr r0, [r2, 0x40]
cmp r1, r0
bne _08022B8A
movs r5, 0x1
_08022BA4:
movs r3, 0
ldr r2, [r4]
ldr r0, [r2, 0x3C]
cmp r3, r0
bge _08022BCE
adds r0, r2, 0
adds r0, 0x20
b _08022BC4
_08022BB4:
adds r3, 0x1
ldr r2, [r4]
ldr r0, [r2, 0x3C]
cmp r3, r0
bge _08022BCE
adds r0, r2, 0
adds r0, 0x20
adds r0, r3
_08022BC4:
ldrb r1, [r0]
ldr r0, [r2, 0x40]
cmp r1, r0
bne _08022BB4
movs r6, 0x1
_08022BCE:
cmp r5, r6
beq _08022B6C
ldr r1, [r7]
movs r0, 0xA
str r0, [r1, 0x4]
ldr r0, [r1, 0x40]
lsls r0, 24
lsrs r0, 24
bl sub_808EAB0
adds r1, r0, 0
ldr r0, _08022C18
bl strcpy
movs r0, 0xCB
bl sub_8011988
ldr r0, _08022C1C
movs r1, 0
movs r2, 0
ldr r3, _08022C20
bl sub_80141B4
ldr r1, [r7]
ldr r0, [r1, 0x40]
adds r0, 0x1
str r0, [r1, 0x40]
ldr r0, _08022C24
ldr r0, [r0]
ldr r0, [r0, 0x40]
cmp r0, 0x17
bgt _08022C10
b _08022D22
_08022C10:
movs r0, 0xB
bl sub_8022924
b _08022D22
.align 2, 0
_08022C18: .4byte gUnknown_202DEA8
_08022C1C: .4byte gUnknown_80DC788
_08022C20: .4byte 0x00000101
_08022C24: .4byte gUnknown_203B294
_08022C28:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
bl nullsub_104
ldr r0, [r4]
adds r0, 0x46
ldrh r0, [r0]
cmp r0, 0x8
bhi _08022C98
lsls r0, 2
ldr r1, _08022C48
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022C48: .4byte _08022C4C
.align 2, 0
_08022C4C:
.4byte _08022C70
.4byte _08022C78
.4byte _08022C80
.4byte _08022C98
.4byte _08022C88
.4byte _08022C98
.4byte _08022C98
.4byte _08022C98
.4byte _08022C90
_08022C70:
movs r0, 0x16
bl sub_8022924
b _08022D22
_08022C78:
movs r0, 0xD
bl sub_8022924
b _08022D22
_08022C80:
movs r0, 0xE
bl sub_8022924
b _08022D22
_08022C88:
movs r0, 0xF
bl sub_8022924
b _08022D22
_08022C90:
movs r0, 0x10
bl sub_8022924
b _08022D22
_08022C98:
movs r0, 0xC
bl sub_8022924
b _08022D22
_08022CA0:
ldr r0, _08022CA4
b _08022D00
.align 2, 0
_08022CA4: .4byte gUnknown_80DC7B4
_08022CA8:
ldr r0, _08022CAC
b _08022D00
.align 2, 0
_08022CAC: .4byte gUnknown_80DC7FC
_08022CB0:
ldr r0, _08022CB4
b _08022D00
.align 2, 0
_08022CB4: .4byte gUnknown_80DC81C
_08022CB8:
ldr r0, _08022CBC
b _08022D00
.align 2, 0
_08022CBC: .4byte gUnknown_80DC844
_08022CC0:
ldr r0, _08022CC4
b _08022D00
.align 2, 0
_08022CC4: .4byte gUnknown_80DC864
_08022CC8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022CD4
b _08022D00
.align 2, 0
_08022CD4: .4byte gUnknown_80DC88C
_08022CD8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022CE4
b _08022D00
.align 2, 0
_08022CE4: .4byte gUnknown_80DC8AC
_08022CE8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022CF4
b _08022D00
.align 2, 0
_08022CF4: .4byte gUnknown_80DC8C8
_08022CF8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022D0C
_08022D00:
ldr r3, _08022D10
_08022D02:
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08022D22
.align 2, 0
_08022D0C: .4byte gUnknown_80DC8DC
_08022D10: .4byte 0x00000301
_08022D14:
ldr r0, [r4]
ldr r0, [r0, 0x4C]
bl sub_801AFA4
b _08022D22
_08022D1E:
bl sub_801A928
_08022D22:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8022A10
thumb_func_start sub_8022D2C
sub_8022D2C:
push {r4-r7,lr}
movs r6, 0
ldr r4, _08022D78
ldr r0, [r4]
movs r1, 0x9C
lsls r1, 1
adds r0, r1
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r2, [r4]
ldr r0, [r2, 0x48]
cmp r0, 0
beq _08022D80
adds r1, r2, 0
adds r1, 0xF8
ldr r0, _08022D7C
str r0, [r1]
adds r1, 0x4
movs r0, 0x5
str r0, [r1]
adds r0, r2, 0
adds r0, 0x52
ldrb r0, [r0]
bl sub_8091764
lsls r0, 24
cmp r0, 0
bne _08022D74
ldr r0, [r4]
movs r2, 0x9C
lsls r2, 1
adds r0, r2
movs r1, 0x1
strh r1, [r0]
_08022D74:
movs r6, 0x1
b _08022DBE
.align 2, 0
_08022D78: .4byte gUnknown_203B294
_08022D7C: .4byte gUnknown_80DC8F0
_08022D80:
adds r0, r2, 0
adds r0, 0x52
ldrb r0, [r0]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _08022DA4
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0xF8
ldr r0, _08022E38
str r0, [r2]
adds r1, 0xFC
movs r0, 0x6
str r0, [r1]
movs r6, 0x1
_08022DA4:
ldr r2, [r4]
lsls r3, r6, 3
adds r0, r2, 0
adds r0, 0xF8
adds r0, r3
ldr r1, _08022E3C
ldr r1, [r1]
str r1, [r0]
adds r2, 0xFC
adds r2, r3
movs r0, 0x4
str r0, [r2]
adds r6, 0x1
_08022DBE:
ldr r4, _08022E40
ldr r0, [r4]
mov r12, r0
lsls r1, r6, 3
mov r2, r12
adds r2, 0xF8
adds r3, r2, r1
ldr r0, _08022E44
ldr r0, [r0]
str r0, [r3]
mov r3, r12
adds r3, 0xFC
adds r1, r3, r1
movs r0, 0x7
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r2, r1
movs r0, 0
str r0, [r2]
adds r1, r3, r1
movs r0, 0x1
str r0, [r1]
movs r5, 0
adds r7, r4, 0
cmp r5, r6
bge _08022E16
mov r4, r12
adds r4, 0xF4
movs r2, 0x9C
lsls r2, 1
add r2, r12
_08022DFE:
ldrh r0, [r2]
cmp r0, 0
bne _08022E0C
ldr r1, [r3]
ldr r0, [r4]
cmp r1, r0
beq _08022E70
_08022E0C:
adds r2, 0x2
adds r3, 0x8
adds r5, 0x1
cmp r5, r6
blt _08022DFE
_08022E16:
movs r5, 0
cmp r5, r6
bge _08022E70
ldr r1, [r7]
movs r2, 0x9C
lsls r2, 1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0
bne _08022E48
adds r0, r1, 0
adds r0, 0xF4
adds r1, 0xFC
ldr r1, [r1]
str r1, [r0]
b _08022E70
.align 2, 0
_08022E38: .4byte gUnknown_80DC8F8
_08022E3C: .4byte gUnknown_80D4940
_08022E40: .4byte gUnknown_203B294
_08022E44: .4byte gUnknown_80D4970
_08022E48:
adds r5, 0x1
cmp r5, r6
bge _08022E70
ldr r3, [r7]
lsls r0, r5, 1
movs r2, 0x9C
lsls r2, 1
adds r1, r3, r2
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08022E48
adds r2, r3, 0
adds r2, 0xF4
lsls r1, r5, 3
adds r0, r3, 0
adds r0, 0xFC
adds r0, r1
ldr r0, [r0]
str r0, [r2]
_08022E70:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8022D2C
thumb_func_start sub_8022E78
sub_8022E78:
push {lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x3
beq _08022E94
cmp r0, 0x3
bhi _08022E8E
cmp r0, 0x2
beq _08022EE8
b _08022EEE
_08022E8E:
cmp r0, 0x4
beq _08022EBC
b _08022EEE
_08022E94:
bl sub_801A8AC
ldr r1, _08022EB4
ldr r2, [r1]
str r0, [r2, 0x4C]
ldr r1, _08022EB8
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x50]
movs r0, 0x2
bl sub_8022924
b _08022EEE
.align 2, 0
_08022EB4: .4byte gUnknown_203B294
_08022EB8: .4byte gUnknown_203B460
_08022EBC:
bl sub_801A8AC
ldr r1, _08022EE0
ldr r2, [r1]
str r0, [r2, 0x4C]
ldr r1, _08022EE4
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x50]
movs r0, 0
bl sub_8099690
movs r0, 0x4
bl sub_8022924
b _08022EEE
.align 2, 0
_08022EE0: .4byte gUnknown_203B294
_08022EE4: .4byte gUnknown_203B460
_08022EE8:
movs r0, 0x16
bl sub_8022924
_08022EEE:
pop {r0}
bx r0
thumb_func_end sub_8022E78
thumb_func_start sub_8022EF4
sub_8022EF4:
push {r4,r5,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _08022F3C
ldr r0, [r4]
adds r0, 0x54
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08022F26
ldr r0, [r4]
adds r0, 0x54
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08022F26
ldr r0, [r4]
adds r0, 0xF4
str r1, [r0]
_08022F26:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x6
bls _08022F30
b _08023060
_08022F30:
lsls r0, 2
ldr r1, _08022F40
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022F3C: .4byte gUnknown_203B294
_08022F40: .4byte _08022F44
.align 2, 0
_08022F44:
.4byte _08022F60
.4byte _08023060
.4byte _08023060
.4byte _0802304C
.4byte _08022F68
.4byte _08023044
.4byte _08023054
_08022F60:
movs r0, 0x1
bl sub_8022924
b _08023060
_08022F68:
ldr r4, _08022FEC
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x8
ldr r1, [r1, 0x48]
movs r2, 0x14
ldrsh r1, [r1, r2]
bl sub_808EBA8
ldr r3, [r4]
str r0, [r3, 0x38]
ldr r0, [r3, 0x48]
adds r1, r3, 0
adds r1, 0x52
ldrb r1, [r1]
adds r3, 0x44
movs r2, 0
bl sub_80915F4
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x20
ldr r1, [r1, 0x48]
movs r2, 0x14
ldrsh r1, [r1, r2]
bl sub_808EBA8
ldr r1, [r4]
str r0, [r1, 0x3C]
movs r0, 0x1
str r0, [r1, 0x40]
adds r0, r1, 0
adds r0, 0x44
movs r2, 0
ldrsh r5, [r0, r2]
ldr r0, _08022FF0
ldr r3, _08022FF4
ldr r2, [r1, 0x4C]
lsls r2, 2
ldr r1, [r3]
adds r1, r2
movs r2, 0
bl sub_8090E14
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _08022FD0
ldr r0, [r4]
ldr r0, [r0, 0x4C]
bl sub_80911F8
_08022FD0:
movs r0, 0
bl sub_8099690
ldr r1, [r4]
movs r0, 0xA
str r0, [r1, 0x4]
adds r0, r5, 0x1
cmp r0, 0x4
bhi _08023030
lsls r0, 2
ldr r1, _08022FF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022FEC: .4byte gUnknown_203B294
_08022FF0: .4byte gUnknown_202DE58
_08022FF4: .4byte gUnknown_203B460
_08022FF8: .4byte _08022FFC
.align 2, 0
_08022FFC:
.4byte _08023030
.4byte _08023010
.4byte _08023018
.4byte _08023020
.4byte _08023028
_08023010:
movs r0, 0x6
bl sub_8022924
b _08023060
_08023018:
movs r0, 0x7
bl sub_8022924
b _08023060
_08023020:
movs r0, 0x8
bl sub_8022924
b _08023060
_08023028:
movs r0, 0x9
bl sub_8022924
b _08023060
_08023030:
ldr r0, _08023040
ldr r1, [r0]
movs r0, 0x16
str r0, [r1, 0x4]
movs r0, 0x5
bl sub_8022924
b _08023060
.align 2, 0
_08023040: .4byte gUnknown_203B294
_08023044:
movs r0, 0x15
bl sub_8022924
b _08023060
_0802304C:
movs r0, 0x3
bl sub_8022924
b _08023060
_08023054:
movs r0, 0
bl sub_8099690
movs r0, 0x4
bl sub_8022924
_08023060:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8022EF4
thumb_func_start sub_8023068
sub_8023068:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _080230A8
ldr r0, [r4]
adds r0, 0x54
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0xA4
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08023096
ldr r0, [r4]
adds r0, 0xA4
mov r1, sp
bl sub_8013114
_08023096:
ldr r0, [sp]
cmp r0, 0x2
beq _080230B8
cmp r0, 0x2
bgt _080230AC
cmp r0, 0x1
beq _080230B0
b _080230E0
.align 2, 0
_080230A8: .4byte gUnknown_203B294
_080230AC:
cmp r0, 0x3
bne _080230E0
_080230B0:
movs r0, 0x1
bl sub_8022924
b _080230E0
_080230B8:
ldr r0, [r4]
ldr r0, [r0, 0x4C]
bl sub_80911F8
bl sub_8090A34
cmp r0, 0
bne _080230DA
movs r0, 0
bl sub_8099690
bl sub_801A928
movs r0, 0x14
bl sub_8022924
b _080230E0
_080230DA:
movs r0, 0x1
bl sub_8022924
_080230E0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8023068
thumb_func_start sub_80230E8
sub_80230E8:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08023100
cmp r0, 0x3
bhi _08023100
bl sub_801B450
movs r0, 0x1
bl sub_8022924
_08023100:
pop {r0}
bx r0
thumb_func_end sub_80230E8
thumb_func_start sub_8023104
sub_8023104:
push {lr}
bl sub_801B00C
cmp r0, 0x1
bls _0802311C
cmp r0, 0x3
bhi _0802311C
bl sub_801B048
movs r0, 0x1
bl sub_8022924
_0802311C:
pop {r0}
bx r0
thumb_func_end sub_8023104
thumb_func_start sub_8023120
sub_8023120:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08023138
ldr r0, _08023140
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8022924
_08023138:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08023140: .4byte gUnknown_203B294
thumb_func_end sub_8023120
thumb_func_start sub_8023144
sub_8023144:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r7, r1, 0
mov r9, r2
mov r10, r3
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
bl sub_8023704
lsls r0, 24
cmp r0, 0
beq _08023168
movs r0, 0
b _08023252
_08023168:
ldr r6, _08023260
ldr r0, [r6]
cmp r0, 0
bne _0802317C
movs r0, 0xFF
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
_0802317C:
ldr r0, [r6]
strb r4, [r0]
ldr r0, [r6]
ldr r1, _08023264
ldr r1, [r1]
str r1, [r0, 0x4]
movs r4, 0xE4
lsls r4, 2
adds r1, r0, r4
str r7, [r1]
movs r1, 0xE5
lsls r1, 2
mov r8, r1
adds r2, r0, r1
lsls r1, r7, 1
adds r1, r7
lsls r1, 3
movs r5, 0xE6
lsls r5, 2
adds r1, r5
adds r1, r0, r1
str r1, [r2]
adds r0, r5
bl sub_8006518
ldr r1, [r6]
adds r4, r1, r4
ldr r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, r5
ldr r0, _08023268
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r6]
mov r1, r8
adds r0, r2, r1
ldr r1, [r0]
movs r3, 0xFE
lsls r3, 2
adds r0, r2, r3
str r0, [r1, 0x14]
mov r4, r9
cmp r4, 0
beq _080231F6
movs r1, 0xE4
lsls r1, 2
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
subs r3, 0x58
adds r1, r2, r3
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_080231F6:
ldr r0, [r6]
add r0, r8
ldr r0, [r0]
mov r1, r10
bl sub_8012D08
bl sub_8004914
ldr r0, [r6]
adds r0, r5
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r6]
movs r5, 0xD7
lsls r5, 2
adds r4, r5
bl sub_80236A4
adds r1, r0, 0
adds r0, r4, 0
mov r2, r10
adds r3, r7, 0
bl sub_8013818
ldr r0, [r6]
ldr r1, _0802326C
ldrh r2, [r1]
movs r4, 0xDD
lsls r4, 2
adds r1, r0, r4
strh r2, [r1]
ldr r1, _08023270
ldrh r2, [r1]
ldr r3, _08023274
adds r1, r0, r3
strh r2, [r1]
adds r0, r5
bl sub_8013984
bl sub_8023420
bl sub_80234BC
movs r0, 0x1
_08023252:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08023260: .4byte gUnknown_3001B5C
_08023264: .4byte gUnknown_203B298
_08023268: .4byte gUnknown_80DC91C
_0802326C: .4byte gUnknown_203B29C
_08023270: .4byte gUnknown_203B29E
_08023274: .4byte 0x0000037a
thumb_func_end sub_8023144
thumb_func_start sub_8023278
sub_8023278:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _08023298
ldr r0, _08023294
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl sub_8013660
movs r0, 0
b _08023316
.align 2, 0
_08023294: .4byte gUnknown_3001B5C
_08023298:
ldr r4, _080232B4
ldr r0, [r4]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl GetKeyPress
cmp r0, 0x2
beq _080232BE
cmp r0, 0x2
bgt _080232B8
cmp r0, 0x1
beq _080232C8
b _080232EC
.align 2, 0
_080232B4: .4byte gUnknown_3001B5C
_080232B8:
cmp r0, 0x3
beq _080232D2
b _080232EC
_080232BE:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08023316
_080232C8:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08023316
_080232D2:
movs r0, 0x5
bl sub_80119D4
ldr r0, [r4]
ldr r1, [r0, 0x4]
movs r2, 0x1
cmp r1, 0x1
bhi _080232E4
adds r2, r1, 0x1
_080232E4:
str r2, [r0, 0x4]
bl sub_80236A4
b _0802330C
_080232EC:
ldr r0, _08023308
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802330C
movs r0, 0
b _08023316
.align 2, 0
_08023308: .4byte gUnknown_3001B5C
_0802330C:
bl sub_8023420
bl sub_80234BC
movs r0, 0x1
_08023316:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8023278
thumb_func_start sub_802331C
sub_802331C:
ldr r0, _0802334C
ldr r0, [r0]
ldr r2, _08023350
adds r1, r0, r2
movs r3, 0
ldrsh r2, [r1, r3]
movs r3, 0xDE
lsls r3, 2
adds r1, r0, r3
movs r3, 0
ldrsh r1, [r1, r3]
muls r1, r2
movs r3, 0xDD
lsls r3, 2
adds r2, r0, r3
movs r3, 0
ldrsh r2, [r2, r3]
adds r1, r2
lsls r1, 1
adds r0, 0xC
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_0802334C: .4byte gUnknown_3001B5C
_08023350: .4byte 0x0000037a
thumb_func_end sub_802331C
thumb_func_start sub_8023354
sub_8023354:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0802339C
ldr r0, [r5]
movs r1, 0xE6
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0
bl sub_800641C
ldr r0, [r5]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl sub_8013984
bl sub_8023420
bl sub_80234BC
cmp r4, 0
beq _08023396
ldr r0, [r5]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl AddMenuCursorSprite
_08023396:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802339C: .4byte gUnknown_3001B5C
thumb_func_end sub_8023354
thumb_func_start sub_80233A0
sub_80233A0:
push {r4-r6,lr}
ldr r5, _08023408
ldr r2, [r5]
cmp r2, 0
beq _08023400
ldr r1, _0802340C
ldr r0, [r2, 0x4]
str r0, [r1]
ldr r1, _08023410
movs r3, 0xDD
lsls r3, 2
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _08023414
ldr r6, _08023418
adds r0, r2, r6
ldrh r0, [r0]
strh r0, [r1]
movs r1, 0xE4
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
movs r4, 0xE6
lsls r4, 2
adds r1, r4
ldr r0, _0802341C
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
bl sub_8004914
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
bl MemoryFree
movs r0, 0
str r0, [r5]
_08023400:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08023408: .4byte gUnknown_3001B5C
_0802340C: .4byte gUnknown_203B298
_08023410: .4byte gUnknown_203B29C
_08023414: .4byte gUnknown_203B29E
_08023418: .4byte 0x0000037a
_0802341C: .4byte gUnknown_80DC904
thumb_func_end sub_80233A0
thumb_func_start sub_8023420
sub_8023420:
push {r4,r5,lr}
ldr r4, _080234A8
ldr r0, [r4]
movs r1, 0xFE
lsls r1, 2
adds r0, r1
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r1, _080234AC
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r1, 0x1
adds r0, r1
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
ldr r1, _080234B0
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
ldr r2, _080234B4
adds r0, r2
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
ldr r3, [r4]
movs r2, 0xE4
lsls r2, 2
adds r5, r3, r2
ldr r2, [r5]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r3, r1
ldr r2, _080234B8
adds r1, r2
lsls r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r2, [r5]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r3, r1
movs r1, 0xEA
lsls r1, 2
adds r3, r1
strh r0, [r3]
bl sub_8004914
ldr r0, [r4]
movs r2, 0xE6
lsls r2, 2
adds r0, r2
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080234A8: .4byte gUnknown_3001B5C
_080234AC: .4byte 0x000003f9
_080234B0: .4byte 0x000003fb
_080234B4: .4byte 0x00000376
_080234B8: .4byte 0x000003a6
thumb_func_end sub_8023420
thumb_func_start sub_80234BC
sub_80234BC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x178
ldr r5, _0802368C
ldr r0, [r5]
movs r4, 0xE4
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r5]
adds r0, r4
ldr r0, [r0]
bl sub_80073B8
ldr r2, _08023690
ldr r0, [r5]
adds r0, r4
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r3, [r5]
ldr r1, _08023694
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, 3
adds r0, 0x4
ldr r2, _08023698
adds r1, r3, r2
movs r6, 0
ldrsh r2, [r1, r6]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
adds r3, r4
ldr r1, [r3]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r0, 0
mov r10, r0
ldr r0, [r5]
ldr r1, _0802369C
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r10, r0
blt _08023532
b _0802366C
_08023532:
ldr r3, _0802368C
ldr r0, [r3]
movs r6, 0xD7
lsls r6, 2
adds r0, r6
mov r1, r10
bl sub_8013800
mov r8, r0
ldr r0, _0802368C
ldr r1, [r0]
ldr r2, _08023698
adds r0, r1, r2
movs r3, 0
ldrsh r2, [r0, r3]
adds r6, 0x1C
adds r0, r1, r6
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r2
add r0, r10
lsls r0, 1
adds r1, 0xC
adds r1, r0
movs r6, 0
ldrsh r5, [r1, r6]
adds r0, r5, 0
bl sub_808DBA8
lsls r0, 24
lsrs r0, 24
add r4, sp, 0x16C
adds r1, r4, 0
movs r2, 0
movs r3, 0
bl sub_8092638
movs r7, 0x7
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _08023594
adds r0, r5, 0
bl sub_808E734
lsls r0, 24
movs r7, 0x4
cmp r0, 0
beq _08023594
movs r7, 0x5
_08023594:
adds r0, r5, 0
movs r1, 0
bl sub_808DCA0
lsls r0, 16
asrs r4, r0, 16
adds r0, r4, 0
movs r1, 0xA
bl __modsi3
adds r2, r0, 0
adds r2, 0x30
lsls r2, 24
lsrs r2, 24
ldr r6, _0802368C
ldr r0, [r6]
movs r1, 0xE4
lsls r1, 2
mov r9, r1
add r0, r9
ldr r0, [r0]
str r0, [sp]
movs r0, 0x14
mov r1, r8
adds r3, r7, 0
bl sub_8012C60
cmp r4, 0x9
ble _08023628
adds r0, r4, 0
movs r1, 0xA
bl __divsi3
adds r4, r0, 0
movs r1, 0xA
bl __modsi3
adds r2, r0, 0
adds r2, 0x30
lsls r2, 24
lsrs r2, 24
ldr r0, [r6]
movs r3, 0xE4
lsls r3, 2
adds r0, r3
ldr r0, [r0]
str r0, [sp]
movs r0, 0xD
mov r1, r8
adds r3, r7, 0
bl sub_8012C60
cmp r4, 0x9
ble _08023628
adds r0, r4, 0
movs r1, 0xA
bl __divsi3
movs r1, 0xA
bl __modsi3
adds r2, r0, 0
adds r2, 0x30
lsls r2, 24
lsrs r2, 24
ldr r0, [r6]
add r0, r9
ldr r0, [r0]
str r0, [sp]
movs r0, 0x6
mov r1, r8
adds r3, r7, 0
bl sub_8012C60
_08023628:
add r4, sp, 0x108
adds r0, r4, 0
adds r1, r5, 0
bl sub_808D930
add r0, sp, 0x8
ldr r1, _080236A0
adds r2, r7, 0
adds r3, r4, 0
bl sub_800D158
ldr r6, _0802368C
ldr r0, [r6]
movs r1, 0xE4
lsls r1, 2
adds r0, r1
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x24
mov r1, r8
add r2, sp, 0x8
bl xxx_call_draw_string
movs r2, 0x1
add r10, r2
ldr r0, [r6]
ldr r3, _0802369C
adds r0, r3
movs r6, 0
ldrsh r0, [r0, r6]
cmp r10, r0
bge _0802366C
b _08023532
_0802366C:
ldr r0, _0802368C
ldr r0, [r0]
movs r1, 0xE4
lsls r1, 2
adds r0, r1
ldr r0, [r0]
bl sub_80073E0
add sp, 0x178
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802368C: .4byte gUnknown_3001B5C
_08023690: .4byte gUnknown_80DC934
_08023694: .4byte 0x000003fa
_08023698: .4byte 0x0000037a
_0802369C: .4byte 0x00000376
_080236A0: .4byte gUnknown_80DC93C
thumb_func_end sub_80234BC
thumb_func_start sub_80236A4
sub_80236A4:
push {r4,r5,lr}
ldr r0, _080236FC
ldr r1, [r0]
movs r0, 0
str r0, [r1, 0x8]
movs r5, 0
_080236B0:
lsls r0, r5, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_8098134
lsls r0, 24
cmp r0, 0
beq _080236E2
adds r0, r4, 0
bl sub_808E858
lsls r0, 16
asrs r0, 16
cmp r4, r0
bne _080236E2
ldr r0, _080236FC
ldr r3, [r0]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0xC
adds r0, r2
strh r5, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
_080236E2:
adds r5, 0x1
ldr r0, _08023700
cmp r5, r0
ble _080236B0
bl sub_8023730
ldr r0, _080236FC
ldr r0, [r0]
ldr r0, [r0, 0x8]
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080236FC: .4byte gUnknown_3001B5C
_08023700: .4byte 0x000001a7
thumb_func_end sub_80236A4
thumb_func_start sub_8023704
sub_8023704:
push {r4,lr}
movs r4, 0
_08023708:
lsls r0, r4, 16
asrs r0, 16
bl sub_8098134
lsls r0, 24
cmp r0, 0
beq _0802371A
movs r0, 0
b _08023724
_0802371A:
adds r4, 0x1
ldr r0, _0802372C
cmp r4, r0
ble _08023708
movs r0, 0x1
_08023724:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0802372C: .4byte 0x000001a7
thumb_func_end sub_8023704
thumb_func_start sub_8023730
sub_8023730:
push {lr}
ldr r0, _08023744
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x1
beq _08023748
cmp r0, 0x2
beq _0802374E
b _08023752
.align 2, 0
_08023744: .4byte gUnknown_3001B5C
_08023748:
bl sub_8023758
b _08023752
_0802374E:
bl sub_80237E0
_08023752:
pop {r0}
bx r0
thumb_func_end sub_8023730
thumb_func_start sub_8023758
sub_8023758:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
ldr r3, _080237DC
ldr r2, [r3]
ldr r1, [r2, 0x8]
lsls r0, r1, 1
adds r0, 0xA
adds r2, r0
mov r9, r2
movs r2, 0
subs r1, 0x1
cmp r2, r1
bge _080237CC
_08023778:
mov r5, r9
ldr r0, [r3]
ldr r0, [r0, 0x8]
subs r7, r0, 0x1
adds r0, r2, 0x1
mov r8, r0
cmp r7, r2
ble _080237BE
_08023788:
subs r6, r5, 0x2
movs r1, 0
ldrsh r0, [r6, r1]
movs r1, 0x1
str r2, [sp]
bl sub_808DCDC
adds r4, r0, 0
movs r1, 0
ldrsh r0, [r5, r1]
movs r1, 0x1
bl sub_808DCDC
lsls r4, 16
lsls r0, 16
ldr r2, [sp]
cmp r4, r0
ble _080237B6
movs r0, 0
ldrsh r1, [r5, r0]
ldrh r0, [r6]
strh r0, [r5]
strh r1, [r6]
_080237B6:
adds r5, r6, 0
subs r7, 0x1
cmp r7, r2
bgt _08023788
_080237BE:
mov r2, r8
ldr r3, _080237DC
ldr r0, [r3]
ldr r0, [r0, 0x8]
subs r0, 0x1
cmp r2, r0
blt _08023778
_080237CC:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080237DC: .4byte gUnknown_3001B5C
thumb_func_end sub_8023758
thumb_func_start sub_80237E0
sub_80237E0:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
ldr r3, _08023864
ldr r2, [r3]
ldr r1, [r2, 0x8]
lsls r0, r1, 1
adds r0, 0xA
adds r2, r0
mov r9, r2
movs r2, 0
subs r1, 0x1
cmp r2, r1
bge _08023854
_08023800:
mov r5, r9
ldr r0, [r3]
ldr r0, [r0, 0x8]
subs r7, r0, 0x1
adds r0, r2, 0x1
mov r8, r0
cmp r7, r2
ble _08023846
_08023810:
subs r6, r5, 0x2
movs r1, 0
ldrsh r0, [r6, r1]
movs r1, 0
str r2, [sp]
bl sub_808DCDC
adds r4, r0, 0
movs r1, 0
ldrsh r0, [r5, r1]
movs r1, 0
bl sub_808DCDC
lsls r4, 16
lsls r0, 16
ldr r2, [sp]
cmp r4, r0
ble _0802383E
movs r0, 0
ldrsh r1, [r5, r0]
ldrh r0, [r6]
strh r0, [r5]
strh r1, [r6]
_0802383E:
adds r5, r6, 0
subs r7, 0x1
cmp r7, r2
bgt _08023810
_08023846:
mov r2, r8
ldr r3, _08023864
ldr r0, [r3]
ldr r0, [r0, 0x8]
subs r0, 0x1
cmp r2, r0
blt _08023800
_08023854:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08023864: .4byte gUnknown_3001B5C
thumb_func_end sub_80237E0
thumb_func_start sub_8023868
sub_8023868:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
mov r8, r1
mov r9, r2
mov r10, r3
bl sub_8024108
lsls r0, 24
cmp r0, 0
beq _08023888
movs r0, 0
b _08023A6E
_08023888:
ldr r4, _080238AC
ldr r0, [r4]
cmp r0, 0
bne _0802389C
movs r0, 0xFE
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
_0802389C:
ldr r1, [r4]
str r5, [r1]
ldr r0, _080238B0
ldr r0, [r0]
cmp r0, r5
beq _080238B4
movs r0, 0x1
b _080238B8
.align 2, 0
_080238AC: .4byte gUnknown_3001B60
_080238B0: .4byte gUnknown_203B2A0
_080238B4:
ldr r0, _080238E4
ldr r0, [r0]
_080238B8:
str r0, [r1, 0x4]
ldr r2, _080238E8
ldr r0, [r2]
movs r1, 0
strb r1, [r0, 0x14]
ldr r0, [r2]
strb r1, [r0, 0x15]
ldr r0, [r2]
strb r1, [r0, 0x16]
ldr r0, [r2]
strb r1, [r0, 0x17]
ldr r0, [r2]
strb r1, [r0, 0x18]
ldr r0, [r2]
ldr r0, [r0]
cmp r0, 0x4
bhi _08023980
lsls r0, 2
ldr r1, _080238EC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080238E4: .4byte gUnknown_203B2A4
_080238E8: .4byte gUnknown_3001B60
_080238EC: .4byte _080238F0
.align 2, 0
_080238F0:
.4byte _08023958
.4byte _08023904
.4byte _08023914
.4byte _08023924
.4byte _0802393C
_08023904:
ldr r0, _08023910
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x18]
b _08023958
.align 2, 0
_08023910: .4byte gUnknown_3001B60
_08023914:
ldr r0, _08023920
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x14]
b _08023958
.align 2, 0
_08023920: .4byte gUnknown_3001B60
_08023924:
ldr r2, _08023938
ldr r0, [r2]
movs r1, 0x1
strb r1, [r0, 0x17]
ldr r0, [r2]
strb r1, [r0, 0x15]
ldr r0, [r2]
strb r1, [r0, 0x16]
b _08023958
.align 2, 0
_08023938: .4byte gUnknown_3001B60
_0802393C:
ldr r5, _0802397C
ldr r0, [r5]
movs r4, 0x1
strb r4, [r0, 0x18]
ldr r0, [r5]
strb r4, [r0, 0x15]
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _08023958
ldr r0, [r5]
strb r4, [r0, 0x16]
_08023958:
ldr r4, _0802397C
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x4
bne _08023980
bl sub_80A5728
lsls r0, 16
asrs r0, 16
bl sub_8002658
ldr r1, [r4]
movs r2, 0xD5
lsls r2, 2
adds r1, r2
strb r0, [r1]
b _0802398E
.align 2, 0
_0802397C: .4byte gUnknown_3001B60
_08023980:
ldr r0, _08023A7C
ldr r0, [r0]
movs r3, 0xD5
lsls r3, 2
adds r0, r3
movs r1, 0
strb r1, [r0]
_0802398E:
ldr r5, _08023A7C
ldr r0, [r5]
movs r4, 0xE3
lsls r4, 2
adds r1, r0, r4
mov r2, r8
str r2, [r1]
movs r7, 0xE4
lsls r7, 2
adds r2, r0, r7
mov r3, r8
lsls r1, r3, 1
add r1, r8
lsls r1, 3
movs r6, 0xE5
lsls r6, 2
adds r1, r6
adds r1, r0, r1
str r1, [r2]
adds r0, r6
bl sub_8006518
ldr r1, [r5]
adds r4, r1, r4
ldr r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, r6
ldr r0, _08023A80
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r5]
adds r0, r2, r7
ldr r1, [r0]
movs r4, 0xFD
lsls r4, 2
adds r0, r2, r4
str r0, [r1, 0x14]
mov r0, r9
cmp r0, 0
beq _08023A04
movs r1, 0xE3
lsls r1, 2
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
movs r3, 0xE7
lsls r3, 2
adds r1, r2, r3
adds r1, r0
mov r4, r9
ldr r0, [r4]
str r0, [r1]
_08023A04:
ldr r0, [r5]
adds r0, r7
ldr r0, [r0]
mov r1, r10
bl sub_8012D08
bl sub_8004914
ldr r0, [r5]
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
movs r0, 0xD6
lsls r0, 2
adds r4, r0
bl sub_8023F8C
adds r1, r0, 0
adds r0, r4, 0
mov r2, r10
mov r3, r8
bl sub_8013818
ldr r0, _08023A84
ldr r4, [r5]
ldr r1, [r0]
ldr r0, [r4]
cmp r1, r0
bne _08023A64
ldr r0, _08023A88
ldrh r1, [r0]
movs r2, 0xDC
lsls r2, 2
adds r0, r4, r2
strh r1, [r0]
ldr r0, _08023A8C
ldrh r1, [r0]
ldr r3, _08023A90
adds r0, r4, r3
strh r1, [r0]
movs r1, 0xD6
lsls r1, 2
adds r0, r4, r1
bl sub_8013984
_08023A64:
bl sub_8023CF4
bl sub_8023DA4
movs r0, 0x1
_08023A6E:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08023A7C: .4byte gUnknown_3001B60
_08023A80: .4byte gUnknown_80DC968
_08023A84: .4byte gUnknown_203B2A0
_08023A88: .4byte gUnknown_203B2A8
_08023A8C: .4byte gUnknown_203B2AA
_08023A90: .4byte 0x00000376
thumb_func_end sub_8023868
thumb_func_start sub_8023A94
sub_8023A94:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _08023AB4
ldr r0, _08023AB0
ldr r0, [r0]
movs r1, 0xD6
lsls r1, 2
adds r0, r1
bl sub_8013660
movs r0, 0
b _08023B3E
.align 2, 0
_08023AB0: .4byte gUnknown_3001B60
_08023AB4:
ldr r4, _08023AD0
ldr r0, [r4]
movs r1, 0xD6
lsls r1, 2
adds r0, r1
bl GetKeyPress
cmp r0, 0x2
beq _08023ADE
cmp r0, 0x2
bgt _08023AD4
cmp r0, 0x1
beq _08023AF2
b _08023B16
.align 2, 0
_08023AD0: .4byte gUnknown_3001B60
_08023AD4:
cmp r0, 0x3
beq _08023AFC
cmp r0, 0x4
beq _08023AE8
b _08023B16
_08023ADE:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08023B3E
_08023AE8:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _08023B3E
_08023AF2:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08023B3E
_08023AFC:
movs r0, 0x5
bl sub_80119D4
ldr r0, [r4]
ldr r1, [r0, 0x4]
movs r2, 0x1
cmp r1, 0x2
bhi _08023B0E
adds r2, r1, 0x1
_08023B0E:
str r2, [r0, 0x4]
bl sub_8023F8C
b _08023B34
_08023B16:
ldr r0, _08023B30
ldr r0, [r0]
movs r1, 0xD6
lsls r1, 2
adds r0, r1
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _08023B34
movs r0, 0
b _08023B3E
.align 2, 0
_08023B30: .4byte gUnknown_3001B60
_08023B34:
bl sub_8023CF4
bl sub_8023DA4
movs r0, 0x1
_08023B3E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8023A94
thumb_func_start sub_8023B44
sub_8023B44:
ldr r0, _08023B74
ldr r0, [r0]
ldr r2, _08023B78
adds r1, r0, r2
movs r3, 0
ldrsh r2, [r1, r3]
movs r3, 0xDD
lsls r3, 2
adds r1, r0, r3
movs r3, 0
ldrsh r1, [r1, r3]
muls r1, r2
movs r3, 0xDC
lsls r3, 2
adds r2, r0, r3
movs r3, 0
ldrsh r2, [r2, r3]
adds r1, r2
lsls r1, 1
adds r0, 0x1A
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_08023B74: .4byte gUnknown_3001B60
_08023B78: .4byte 0x00000376
thumb_func_end sub_8023B44
thumb_func_start sub_8023B7C
sub_8023B7C:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _08023BD0
ldr r0, [r5]
movs r1, 0xE5
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_8023BD8
adds r2, r0, 0
ldr r0, [r5]
ldr r3, _08023BD4
adds r1, r0, r3
strh r2, [r1]
movs r1, 0xD6
lsls r1, 2
adds r0, r1
bl sub_8013984
bl sub_8023CF4
bl sub_8023DA4
cmp r4, 0
beq _08023BCA
ldr r0, [r5]
movs r3, 0xD6
lsls r3, 2
adds r0, r3
bl AddMenuCursorSprite
_08023BCA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08023BD0: .4byte gUnknown_3001B60
_08023BD4: .4byte 0x0000037a
thumb_func_end sub_8023B7C
thumb_func_start sub_8023BD8
sub_8023BD8:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r3, 0
ldr r1, _08023C58
ldr r0, [r1]
ldr r0, [r0, 0x8]
adds r7, r1, 0
cmp r3, r0
bge _08023C4A
ldr r0, _08023C5C
mov r8, r0
mov r12, r7
_08023BF2:
ldr r2, [r1]
lsls r4, r3, 1
adds r0, r2, 0
adds r0, 0x1A
adds r0, r4
movs r5, 0
ldrsh r1, [r0, r5]
movs r0, 0x58
muls r0, r1
mov r5, r8
ldr r1, [r5]
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
adds r6, r3, 0x1
cmp r0, 0
bne _08023C3E
ldr r0, [r2, 0x8]
subs r0, 0x1
str r0, [r2, 0x8]
cmp r3, r0
bge _08023C3E
mov r5, r12
adds r4, 0x2
_08023C24:
ldr r2, [r5]
lsls r1, r3, 1
adds r0, r2, 0
adds r0, 0x1A
adds r1, r0, r1
adds r0, r4
ldrh r0, [r0]
strh r0, [r1]
adds r4, 0x2
adds r3, 0x1
ldr r0, [r2, 0x8]
cmp r3, r0
blt _08023C24
_08023C3E:
adds r3, r6, 0
adds r1, r7, 0
ldr r0, [r7]
ldr r0, [r0, 0x8]
cmp r3, r0
blt _08023BF2
_08023C4A:
ldr r0, [r7]
ldr r0, [r0, 0x8]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08023C58: .4byte gUnknown_3001B60
_08023C5C: .4byte gUnknown_203B45C
thumb_func_end sub_8023BD8
thumb_func_start sub_8023C60
sub_8023C60:
push {r4-r6,lr}
ldr r5, _08023CCC
ldr r2, [r5]
cmp r2, 0
beq _08023CC6
ldr r1, _08023CD0
ldr r0, [r2]
str r0, [r1]
ldr r1, _08023CD4
ldr r0, [r2, 0x4]
str r0, [r1]
ldr r1, _08023CD8
movs r3, 0xDC
lsls r3, 2
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _08023CDC
ldr r6, _08023CE0
adds r0, r2, r6
ldrh r0, [r0]
strh r0, [r1]
movs r1, 0xE3
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
movs r4, 0xE5
lsls r4, 2
adds r1, r4
ldr r0, _08023CE4
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
bl sub_8004914
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
bl MemoryFree
movs r0, 0
str r0, [r5]
_08023CC6:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08023CCC: .4byte gUnknown_3001B60
_08023CD0: .4byte gUnknown_203B2A0
_08023CD4: .4byte gUnknown_203B2A4
_08023CD8: .4byte gUnknown_203B2A8
_08023CDC: .4byte gUnknown_203B2AA
_08023CE0: .4byte 0x00000376
_08023CE4: .4byte gUnknown_80DC950
thumb_func_end sub_8023C60
thumb_func_start sub_8023CE8
sub_8023CE8:
ldr r0, _08023CF0
ldr r0, [r0]
bx lr
.align 2, 0
_08023CF0: .4byte gUnknown_3001B60
thumb_func_end sub_8023CE8
thumb_func_start sub_8023CF4
sub_8023CF4:
push {r4,r5,lr}
ldr r2, _08023D28
ldr r0, [r2]
movs r1, 0xFD
lsls r1, 2
adds r0, r1
movs r3, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r2]
ldr r1, _08023D2C
adds r0, r1
strb r3, [r0]
ldr r0, [r2]
adds r1, 0x2
adds r0, r1
strb r3, [r0]
ldr r1, [r2]
ldr r0, [r1]
adds r5, r2, 0
cmp r0, 0x2
bne _08023D34
ldr r0, _08023D30
adds r1, r0
b _08023D38
.align 2, 0
_08023D28: .4byte gUnknown_3001B60
_08023D2C: .4byte 0x000003f5
_08023D30: .4byte 0x000003f6
_08023D34:
ldr r2, _08023D98
adds r1, r2
_08023D38:
movs r0, 0xC
strb r0, [r1]
ldr r0, [r5]
ldr r1, _08023D9C
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
ldr r3, [r5]
movs r1, 0xE3
lsls r1, 2
adds r4, r3, r1
ldr r2, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r3, r1
ldr r2, _08023DA0
adds r1, r2
lsls r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r2, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r3, r1
movs r1, 0xE9
lsls r1, 2
adds r3, r1
strh r0, [r3]
bl sub_8004914
ldr r0, [r5]
movs r2, 0xE5
lsls r2, 2
adds r0, r2
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08023D98: .4byte 0x000003f6
_08023D9C: .4byte 0x00000372
_08023DA0: .4byte 0x000003a2
thumb_func_end sub_8023CF4
thumb_func_start sub_8023DA4
sub_8023DA4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x58
ldr r4, _08023DD8
ldr r0, [r4]
movs r5, 0xE3
lsls r5, 2
adds r0, r5
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r4]
adds r0, r5
ldr r0, [r0]
bl sub_80073B8
ldr r0, [r4]
ldr r1, [r0]
cmp r1, 0x2
beq _08023DE0
cmp r1, 0x4
beq _08023E00
ldr r2, _08023DDC
b _08023E02
.align 2, 0
_08023DD8: .4byte gUnknown_3001B60
_08023DDC: .4byte gUnknown_80DC988
_08023DE0:
add r0, sp, 0x8
bl sub_80920D8
ldr r0, [r4]
movs r1, 0xE3
lsls r1, 2
adds r0, r1
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
add r2, sp, 0x8
bl xxx_call_draw_string
b _08023E3C
_08023E00:
ldr r2, _08023EBC
_08023E02:
adds r0, r5
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r1, [r4]
ldr r2, _08023EC0
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, 3
adds r3, r0, 0x4
ldr r4, _08023EC4
adds r0, r1, r4
movs r4, 0
ldrsh r2, [r0, r4]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
adds r1, r5
ldr r0, [r1]
str r0, [sp, 0x4]
adds r0, r3, 0
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
_08023E3C:
movs r7, 0
ldr r1, _08023EC8
ldr r0, [r1]
ldr r2, _08023ECC
adds r0, r2
movs r4, 0
ldrsh r0, [r0, r4]
cmp r7, r0
blt _08023E50
b _08023F62
_08023E50:
mov r8, r1
add r0, sp, 0x30
mov r9, r0
_08023E56:
ldr r3, [r1]
ldr r1, _08023EC4
adds r0, r3, r1
movs r2, 0
ldrsh r1, [r0, r2]
movs r4, 0xDD
lsls r4, 2
adds r0, r3, r4
movs r2, 0
ldrsh r0, [r0, r2]
muls r1, r0
adds r1, r7
lsls r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r1
movs r4, 0
ldrsh r5, [r0, r4]
ldr r2, _08023ED0
movs r0, 0x58
adds r1, r5, 0
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
movs r6, 0x7
ldrh r0, [r4]
lsrs r0, 1
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08023ED4
movs r0, 0
ldrb r1, [r4, 0x4]
cmp r1, 0x41
bne _08023E9E
movs r0, 0x1
_08023E9E:
cmp r0, 0
beq _08023EA4
movs r6, 0x6
_08023EA4:
movs r0, 0
cmp r1, 0x40
bne _08023EAC
movs r0, 0x1
_08023EAC:
cmp r0, 0
beq _08023EB2
movs r6, 0x6
_08023EB2:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _08023EEA
movs r6, 0x5
b _08023EEA
.align 2, 0
_08023EBC: .4byte gUnknown_80DC980
_08023EC0: .4byte 0x000003f6
_08023EC4: .4byte 0x00000376
_08023EC8: .4byte gUnknown_3001B60
_08023ECC: .4byte 0x00000372
_08023ED0: .4byte gUnknown_203B45C
_08023ED4:
ldrb r0, [r3, 0x18]
cmp r0, 0
beq _08023EEA
adds r0, r5, 0
bl sub_808D750
lsls r0, 24
movs r6, 0x2
cmp r0, 0
beq _08023EEA
movs r6, 0x4
_08023EEA:
mov r0, r8
ldr r1, [r0]
ldr r0, [r1]
cmp r0, 0x4
bne _08023F02
movs r2, 0xD5
lsls r2, 2
adds r0, r1, r2
ldrb r1, [r0]
adds r0, r4, 0
bl sub_8024184
_08023F02:
adds r1, r4, 0
adds r1, 0x4C
mov r0, r9
movs r2, 0xA
bl sub_80922B4
movs r0, 0x8
ldrsh r1, [r4, r0]
add r0, sp, 0x44
bl sub_808D930
add r0, sp, 0x8
ldr r1, _08023F80
adds r2, r6, 0
mov r3, r9
bl sub_800D158
mov r1, r8
ldr r0, [r1]
movs r2, 0xD6
lsls r2, 2
adds r0, r2
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
mov r4, r8
ldr r0, [r4]
movs r2, 0xE3
lsls r2, 2
adds r0, r2
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x8
add r2, sp, 0x8
bl xxx_call_draw_string
adds r7, 0x1
mov r1, r8
ldr r0, [r4]
ldr r4, _08023F84
adds r0, r4
movs r2, 0
ldrsh r0, [r0, r2]
cmp r7, r0
bge _08023F62
b _08023E56
_08023F62:
ldr r0, _08023F88
ldr r0, [r0]
movs r4, 0xE3
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl sub_80073E0
add sp, 0x58
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08023F80: .4byte gUnknown_80DC998
_08023F84: .4byte 0x00000372
_08023F88: .4byte gUnknown_3001B60
thumb_func_end sub_8023DA4
thumb_func_start sub_8023F8C
sub_8023F8C:
push {r4-r7,lr}
ldr r2, _08023FD0
ldr r1, [r2]
movs r0, 0
str r0, [r1, 0x8]
ldrb r0, [r1, 0x15]
adds r6, r2, 0
cmp r0, 0
bne _08023FE2
movs r4, 0
ldr r2, _08023FD4
_08023FA2:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r2]
adds r1, r0, r1
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _08023FD8
ldrb r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08023FD8
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
b _08023FE2
.align 2, 0
_08023FD0: .4byte gUnknown_3001B60
_08023FD4: .4byte gUnknown_203B45C
_08023FD8:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _08023FA2
_08023FE2:
ldr r0, [r6]
ldrb r0, [r0, 0x16]
cmp r0, 0
bne _08024042
movs r4, 0
ldr r3, _08024034
_08023FEE:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r3]
adds r1, r0, r1
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08024002
movs r2, 0x1
_08024002:
cmp r2, 0
beq _08024038
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08024038
ldrh r1, [r1]
lsrs r0, r1, 1
movs r2, 0x1
ands r0, r2
cmp r0, 0
beq _08024038
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _08024038
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
b _08024042
.align 2, 0
_08024034: .4byte gUnknown_203B45C
_08024038:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _08023FEE
_08024042:
ldr r0, [r6]
ldr r1, [r0, 0x8]
str r1, [r0, 0xC]
ldrb r0, [r0, 0x17]
cmp r0, 0
bne _080240A4
movs r4, 0
ldr r7, _08024100
movs r5, 0x1
_08024054:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r7]
adds r1, r0, r1
ldrh r2, [r1]
lsrs r0, r2, 1
ands r0, r5
cmp r0, 0
beq _0802409A
adds r0, r5, 0
ands r0, r2
cmp r0, 0
beq _0802409A
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _0802409A
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08024080
movs r2, 0x1
_08024080:
cmp r2, 0
bne _0802409A
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
cmp r1, 0x3
bgt _080240A4
_0802409A:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _08024054
_080240A4:
ldr r0, [r6]
ldr r1, [r0, 0x8]
str r1, [r0, 0x10]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _080240EE
movs r4, 0
ldr r7, _08024100
movs r5, 0x1
_080240B6:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r7]
adds r1, r0, r1
ldrh r1, [r1]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080240E4
lsrs r0, r1, 1
ands r0, r5
cmp r0, 0
bne _080240E4
ldr r3, [r6]
ldr r1, [r3, 0x8]
lsls r2, r1, 1
adds r0, r3, 0
adds r0, 0x1A
adds r0, r2
strh r4, [r0]
adds r1, 0x1
str r1, [r3, 0x8]
_080240E4:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _080240B6
_080240EE:
bl sub_80241A8
ldr r0, _08024104
ldr r0, [r0]
ldr r0, [r0, 0x8]
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08024100: .4byte gUnknown_203B45C
_08024104: .4byte gUnknown_3001B60
thumb_func_end sub_8023F8C
thumb_func_start sub_8024108
sub_8024108:
push {r4-r7,lr}
adds r5, r0, 0
movs r7, 0
movs r6, 0x1
_08024110:
ldr r2, _08024134
movs r0, 0x58
adds r1, r7, 0
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
ldrh r1, [r4]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08024172
cmp r5, 0x2
bne _08024138
lsrs r0, r1, 1
ands r0, r6
cmp r0, 0
beq _08024172
b _0802416E
.align 2, 0
_08024134: .4byte gUnknown_203B45C
_08024138:
cmp r5, 0x3
bne _08024140
lsrs r0, r1, 1
b _08024168
_08024140:
cmp r5, 0x4
bne _0802416E
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _08024172
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _0802416E
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _08024160
movs r1, 0x1
_08024160:
cmp r1, 0
beq _0802416E
ldrh r0, [r4]
lsrs r0, 1
_08024168:
ands r0, r6
cmp r0, 0
bne _08024172
_0802416E:
movs r0, 0
b _0802417E
_08024172:
adds r7, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r7, r0
ble _08024110
movs r0, 0x1
_0802417E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8024108
thumb_func_start sub_8024184
sub_8024184:
push {r4,lr}
lsls r4, r1, 24
lsrs r4, 24
movs r1, 0x8
ldrsh r0, [r0, r1]
bl sub_808DBA8
lsls r0, 24
lsrs r0, 24
cmp r4, r0
beq _0802419E
movs r0, 0
b _080241A0
_0802419E:
movs r0, 0x1
_080241A0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8024184
thumb_func_start sub_80241A8
sub_80241A8:
push {r4,lr}
ldr r4, _080241C0
ldr r1, [r4]
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _080241CA
cmp r0, 0x2
bhi _080241C4
cmp r0, 0x1
beq _08024206
b _08024222
.align 2, 0
_080241C0: .4byte gUnknown_3001B60
_080241C4:
cmp r0, 0x3
beq _080241E8
b _08024222
_080241CA:
ldr r0, [r1, 0xC]
ldr r1, [r1, 0x10]
cmp r0, r1
beq _080241D6
bl sub_80242D0
_080241D6:
ldr r0, [r4]
ldr r2, [r0, 0x10]
ldr r1, [r0, 0x8]
cmp r2, r1
beq _08024222
adds r0, r2, 0
bl sub_80242D0
b _08024222
_080241E8:
ldr r0, [r1, 0xC]
ldr r1, [r1, 0x10]
cmp r0, r1
beq _080241F4
bl sub_802437C
_080241F4:
ldr r0, [r4]
ldr r2, [r0, 0x10]
ldr r1, [r0, 0x8]
cmp r2, r1
beq _08024222
adds r0, r2, 0
bl sub_802437C
b _08024222
_08024206:
ldr r0, [r1, 0xC]
ldr r1, [r1, 0x10]
cmp r0, r1
beq _08024212
bl sub_8024228
_08024212:
ldr r0, [r4]
ldr r2, [r0, 0x10]
ldr r1, [r0, 0x8]
cmp r2, r1
beq _08024222
adds r0, r2, 0
bl sub_8024228
_08024222:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80241A8
thumb_func_start sub_8024228
sub_8024228:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
ldr r3, _080242C8
lsls r2, r1, 1
adds r2, 0x18
ldr r3, [r3]
adds r3, r2
str r3, [sp]
adds r2, r0, 0
subs r1, 0x1
cmp r2, r1
bge _080242B8
str r1, [sp, 0x4]
_0802424A:
ldr r5, [sp]
adds r7, r1, 0
adds r0, r2, 0x1
mov r10, r0
cmp r7, r2
ble _080242B0
ldr r3, _080242CC
mov r9, r3
movs r0, 0x58
mov r8, r0
_0802425E:
mov r3, r9
ldr r1, [r3]
subs r6, r5, 0x2
movs r3, 0
ldrsh r0, [r6, r3]
mov r3, r8
muls r3, r0
adds r0, r3, 0
adds r1, r0
movs r3, 0x8
ldrsh r0, [r1, r3]
str r2, [sp, 0x8]
bl sub_808DCFC
adds r4, r0, 0
mov r0, r9
ldr r1, [r0]
movs r3, 0
ldrsh r0, [r5, r3]
mov r3, r8
muls r3, r0
adds r0, r3, 0
adds r1, r0
movs r3, 0x8
ldrsh r0, [r1, r3]
bl sub_808DCFC
lsls r4, 16
lsls r0, 16
ldr r2, [sp, 0x8]
cmp r4, r0
ble _080242A8
movs r0, 0
ldrsh r1, [r5, r0]
ldrh r0, [r6]
strh r0, [r5]
strh r1, [r6]
_080242A8:
adds r5, r6, 0
subs r7, 0x1
cmp r7, r2
bgt _0802425E
_080242B0:
mov r2, r10
ldr r1, [sp, 0x4]
cmp r2, r1
blt _0802424A
_080242B8:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080242C8: .4byte gUnknown_3001B60
_080242CC: .4byte gUnknown_203B45C
thumb_func_end sub_8024228
thumb_func_start sub_80242D0
sub_80242D0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
ldr r3, _08024374
lsls r2, r1, 1
adds r2, 0x18
ldr r3, [r3]
adds r3, r2
str r3, [sp]
adds r2, r0, 0
subs r1, 0x1
cmp r2, r1
bge _08024364
str r1, [sp, 0x4]
_080242F2:
ldr r5, [sp]
adds r7, r1, 0
adds r0, r2, 0x1
mov r10, r0
cmp r7, r2
ble _0802435C
ldr r3, _08024378
mov r9, r3
movs r0, 0x58
mov r8, r0
_08024306:
mov r3, r9
ldr r1, [r3]
subs r6, r5, 0x2
movs r3, 0
ldrsh r0, [r6, r3]
mov r3, r8
muls r3, r0
adds r0, r3, 0
adds r1, r0
movs r3, 0x8
ldrsh r0, [r1, r3]
movs r1, 0
str r2, [sp, 0x8]
bl sub_808DCDC
adds r4, r0, 0
mov r0, r9
ldr r1, [r0]
movs r3, 0
ldrsh r0, [r5, r3]
mov r3, r8
muls r3, r0
adds r0, r3, 0
adds r1, r0
movs r3, 0x8
ldrsh r0, [r1, r3]
movs r1, 0
bl sub_808DCDC
lsls r4, 16
lsls r0, 16
ldr r2, [sp, 0x8]
cmp r4, r0
ble _08024354
movs r0, 0
ldrsh r1, [r5, r0]
ldrh r0, [r6]
strh r0, [r5]
strh r1, [r6]
_08024354:
adds r5, r6, 0
subs r7, 0x1
cmp r7, r2
bgt _08024306
_0802435C:
mov r2, r10
ldr r1, [sp, 0x4]
cmp r2, r1
blt _080242F2
_08024364:
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08024374: .4byte gUnknown_3001B60
_08024378: .4byte gUnknown_203B45C
thumb_func_end sub_80242D0
thumb_func_start sub_802437C
sub_802437C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r3, _080243E4
lsls r2, r1, 1
adds r2, 0x18
ldr r3, [r3]
adds r3, r2
mov r10, r3
adds r7, r0, 0
subs r1, 0x1
cmp r7, r1
bge _080243D6
mov r9, r1
_0802439C:
mov r4, r10
adds r6, r1, 0
adds r0, r7, 0x1
mov r8, r0
cmp r6, r7
ble _080243CE
_080243A8:
subs r5, r4, 0x2
movs r1, 0
ldrsh r0, [r5, r1]
movs r2, 0
ldrsh r1, [r4, r2]
bl sub_808D864
lsls r0, 24
cmp r0, 0
beq _080243C6
movs r0, 0
ldrsh r1, [r4, r0]
ldrh r0, [r5]
strh r0, [r4]
strh r1, [r5]
_080243C6:
adds r4, r5, 0
subs r6, 0x1
cmp r6, r7
bgt _080243A8
_080243CE:
mov r7, r8
mov r1, r9
cmp r7, r1
blt _0802439C
_080243D6:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080243E4: .4byte gUnknown_3001B60
thumb_func_end sub_802437C
thumb_func_start sub_80243E8
sub_80243E8:
push {r4,r5,lr}
sub sp, 0x3C
ldr r3, _08024448
ldr r0, _0802444C
ldr r0, [r0]
ldr r2, _08024450
adds r1, r0, r2
movs r4, 0
ldrsh r2, [r1, r4]
movs r4, 0xDD
lsls r4, 2
adds r1, r0, r4
movs r4, 0
ldrsh r1, [r1, r4]
muls r1, r2
movs r4, 0xDC
lsls r4, 2
adds r2, r0, r4
movs r4, 0
ldrsh r2, [r2, r4]
adds r1, r2
lsls r1, 1
adds r0, 0x1A
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0x58
muls r0, r1
ldr r4, [r3]
adds r4, r0
add r5, sp, 0x28
adds r1, r4, 0
adds r1, 0x4C
adds r0, r5, 0
movs r2, 0xA
bl sub_80922B4
ldr r1, _08024454
mov r0, sp
adds r2, r5, 0
bl sub_800D158
adds r0, r4, 0
add sp, 0x3C
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08024448: .4byte gUnknown_203B45C
_0802444C: .4byte gUnknown_3001B60
_08024450: .4byte 0x00000376
_08024454: .4byte gUnknown_80DC9A4
thumb_func_end sub_80243E8
thumb_func_start sub_8024458
sub_8024458:
push {r4-r6,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 16
asrs r4, 16
ldr r6, _080244DC
movs r0, 0xA6
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
adds r1, r0, 0
adds r1, 0x48
strh r4, [r1]
adds r1, 0x98
str r5, [r1]
adds r2, r0, 0
adds r2, 0xE4
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0xE8
adds r1, r0, r1
str r1, [r2]
adds r0, 0xE8
bl sub_8006518
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xE0
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0xE8
ldr r0, _080244E0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0xE4
ldr r1, [r0]
movs r3, 0xA4
lsls r3, 1
adds r0, r2, r3
str r0, [r1, 0x14]
movs r4, 0xA5
lsls r4, 1
adds r1, r2, r4
movs r0, 0xA
strb r0, [r1]
bl sub_8024604
bl sub_802452C
ldr r0, [r6]
bl sub_8013984
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080244DC: .4byte gUnknown_203B2AC
_080244E0: .4byte gUnknown_80DC9C8
thumb_func_end sub_8024458
thumb_func_start sub_80244E4
sub_80244E4:
push {r4,lr}
ldr r4, _08024500
ldr r0, [r4]
bl GetKeyPress
cmp r0, 0x1
beq _08024504
cmp r0, 0x2
bne _0802450E
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08024524
.align 2, 0
_08024500: .4byte gUnknown_203B2AC
_08024504:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08024524
_0802450E:
ldr r0, [r4]
bl sub_8013938
lsls r0, 24
cmp r0, 0
bne _0802451E
movs r0, 0
b _08024524
_0802451E:
bl sub_802452C
movs r0, 0x1
_08024524:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80244E4
thumb_func_start sub_802452C
sub_802452C:
push {lr}
bl sub_8024588
bl sub_80245D0
pop {r0}
bx r0
thumb_func_end sub_802452C
thumb_func_start sub_802453C
sub_802453C:
push {r4,r5,lr}
ldr r4, _08024580
ldr r2, [r4]
cmp r2, 0
beq _0802457A
adds r0, r2, 0
adds r0, 0xE0
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0xE8
ldr r0, _08024584
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0xE8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802457A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08024580: .4byte gUnknown_203B2AC
_08024584: .4byte gUnknown_80DC9B0
thumb_func_end sub_802453C
thumb_func_start sub_8024588
sub_8024588:
push {r4,lr}
ldr r4, _080245C4
ldr r0, [r4]
ldrh r1, [r0, 0x20]
movs r2, 0xA4
lsls r2, 1
adds r0, r2
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x1E]
ldr r3, _080245C8
adds r0, r3
strb r1, [r0]
ldr r0, [r4]
ldr r1, _080245CC
adds r0, r1
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0xE8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080245C4: .4byte gUnknown_203B2AC
_080245C8: .4byte 0x00000149
_080245CC: .4byte 0x0000014b
thumb_func_end sub_8024588
thumb_func_start sub_80245D0
sub_80245D0:
push {r4,lr}
sub sp, 0x4
ldr r0, _08024600
ldr r4, [r0]
movs r0, 0x1E
ldrsh r1, [r4, r0]
lsls r2, r1, 2
adds r0, r4, 0
adds r0, 0x34
adds r0, r2
ldr r0, [r0]
adds r2, r4, 0
adds r2, 0x4C
adds r3, r4, 0
adds r3, 0xB0
adds r4, 0xE0
ldr r4, [r4]
str r4, [sp]
bl sub_808F844
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08024600: .4byte gUnknown_203B2AC
thumb_func_end sub_80245D0
thumb_func_start sub_8024604
sub_8024604:
push {r4,r5,lr}
ldr r4, _08024654
ldr r0, [r4]
movs r1, 0x2
str r1, [r0, 0x34]
movs r1, 0x3
str r1, [r0, 0x38]
movs r1, 0x5
str r1, [r0, 0x3C]
adds r1, r0, 0
adds r1, 0xE0
ldr r3, [r1]
movs r1, 0x3
movs r2, 0x1
bl sub_8013818
ldr r0, [r4]
adds r5, r0, 0
adds r5, 0x4C
ldr r2, _08024658
adds r0, 0x48
movs r3, 0
ldrsh r1, [r0, r3]
movs r0, 0x58
muls r0, r1
ldr r4, [r2]
adds r4, r0
movs r0, 0x7
bl sub_80023E4
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_808FF20
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08024654: .4byte gUnknown_203B2AC
_08024658: .4byte gUnknown_203B45C
thumb_func_end sub_8024604
thumb_func_start sub_802465C
sub_802465C:
push {r4,r5,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _080246E8
movs r0, 0xBA
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r4, 0
str r4, [r0, 0x28]
str r4, [r0, 0x2C]
str r4, [r0, 0x30]
bl sub_808D33C
ldr r1, [r5]
str r0, [r1, 0xC]
bl sub_808D824
ldr r1, [r5]
strb r0, [r1, 0x10]
ldr r0, [r5]
strb r4, [r0]
ldr r0, _080246EC
bl sub_808DDD0
ldr r2, [r5]
movs r3, 0x82
lsls r3, 1
adds r1, r2, r3
str r0, [r1]
adds r3, 0x4
adds r1, r2, r3
ldr r0, [r0, 0x4]
str r0, [r1]
movs r1, 0x88
lsls r1, 1
adds r0, r2, r1
strb r4, [r0]
ldr r0, [r5]
adds r3, 0x9
adds r0, r3
strb r4, [r0]
ldr r0, [r5]
adds r1, 0x2
adds r0, r1
strb r4, [r0]
ldr r2, [r5]
subs r3, 0x5
adds r1, r2, r3
movs r0, 0x2
strh r0, [r1]
movs r0, 0x87
lsls r0, 1
adds r1, r2, r0
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_80247EC
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080246E8: .4byte gUnknown_203B2B0
_080246EC: .4byte 0x00000155
thumb_func_end sub_802465C
thumb_func_start sub_80246F0
sub_80246F0:
push {lr}
ldr r0, _08024708
ldr r0, [r0]
ldr r0, [r0, 0x20]
cmp r0, 0x15
bhi _080247A8
lsls r0, 2
ldr r1, _0802470C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08024708: .4byte gUnknown_203B2B0
_0802470C: .4byte _08024710
.align 2, 0
_08024710:
.4byte _08024768
.4byte _08024768
.4byte _080247A8
.4byte _080247A8
.4byte _080247A4
.4byte _0802476E
.4byte _08024774
.4byte _08024774
.4byte _0802477A
.4byte _08024780
.4byte _08024786
.4byte _0802478C
.4byte _0802478C
.4byte _08024792
.4byte _08024798
.4byte _080247A8
.4byte _080247A8
.4byte _080247A8
.4byte _080247A8
.4byte _080247A8
.4byte _080247A8
.4byte _0802479E
_08024768:
bl sub_8024E9C
b _080247AC
_0802476E:
bl sub_8024F00
b _080247AC
_08024774:
bl sub_8024FD4
b _080247AC
_0802477A:
bl sub_80250EC
b _080247AC
_08024780:
bl sub_80251CC
b _080247AC
_08024786:
bl sub_8024F70
b _080247AC
_0802478C:
bl sub_8025058
b _080247AC
_08024792:
bl sub_802515C
b _080247AC
_08024798:
bl sub_80251E8
b _080247AC
_0802479E:
bl sub_8025204
b _080247AC
_080247A4:
movs r0, 0x3
b _080247AE
_080247A8:
bl sub_8025230
_080247AC:
movs r0, 0
_080247AE:
pop {r1}
bx r1
thumb_func_end sub_80246F0
thumb_func_start sub_80247B4
sub_80247B4:
ldr r0, _080247BC
ldr r0, [r0]
ldrb r0, [r0]
bx lr
.align 2, 0
_080247BC: .4byte gUnknown_203B2B0
thumb_func_end sub_80247B4
thumb_func_start sub_80247C0
sub_80247C0:
push {r4,lr}
ldr r4, _080247E8
ldr r0, [r4]
cmp r0, 0
beq _080247E0
movs r1, 0x82
lsls r1, 1
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080247E0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080247E8: .4byte gUnknown_203B2B0
thumb_func_end sub_80247C0
thumb_func_start sub_80247EC
sub_80247EC:
push {lr}
ldr r1, _08024800
ldr r1, [r1]
str r0, [r1, 0x20]
bl sub_8024804
bl sub_80248FC
pop {r0}
bx r0
.align 2, 0
_08024800: .4byte gUnknown_203B2B0
thumb_func_end sub_80247EC
thumb_func_start sub_8024804
sub_8024804:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0802482C
ldr r0, [r4]
movs r1, 0x8A
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0, 0x20]
subs r0, 0x8
cmp r0, 0x14
bhi _080248A8
lsls r0, 2
ldr r1, _08024830
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802482C: .4byte gUnknown_203B2B0
_08024830: .4byte _08024834
.align 2, 0
_08024834:
.4byte _08024888
.4byte _080248A8
.4byte _080248A8
.4byte _080248A8
.4byte _080248A8
.4byte _08024888
.4byte _080248A8
.4byte _080248A8
.4byte _080248A8
.4byte _080248D2
.4byte _080248D2
.4byte _080248D2
.4byte _080248A8
.4byte _080248A8
.4byte _080248D2
.4byte _080248D2
.4byte _080248D2
.4byte _080248D2
.4byte _080248D2
.4byte _080248D2
.4byte _080248D2
_08024888:
ldr r0, _080248A0
ldr r1, [r0]
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r0, _080248A4
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
b _080248D2
.align 2, 0
_080248A0: .4byte gUnknown_203B2B0
_080248A4: .4byte gUnknown_80DCA00
_080248A8:
ldr r3, _080248F4
mov r12, r3
movs r4, 0x8A
lsls r4, 1
mov r8, r4
ldr r4, _080248F8
movs r3, 0
movs r2, 0x3
_080248B8:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _080248B8
_080248D2:
bl sub_8004914
ldr r0, _080248F4
ldr r0, [r0]
movs r6, 0x8A
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080248F4: .4byte gUnknown_203B2B0
_080248F8: .4byte gUnknown_80DC9E8
thumb_func_end sub_8024804
thumb_func_start sub_80248FC
sub_80248FC:
push {r4,r5,lr}
sub sp, 0x14
ldr r1, _08024918
ldr r0, [r1]
ldr r0, [r0, 0x20]
adds r5, r1, 0
cmp r0, 0x1D
bls _0802490E
b _08024CF4
_0802490E:
lsls r0, 2
ldr r1, _0802491C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08024918: .4byte gUnknown_203B2B0
_0802491C: .4byte _08024920
.align 2, 0
_08024920:
.4byte _08024998
.4byte _080249D0
.4byte _080249E8
.4byte _080249F8
.4byte _08024CF4
.4byte _08024A14
.4byte _08024A20
.4byte _08024A2E
.4byte _08024A94
.4byte _08024AC0
.4byte _08024A36
.4byte _08024A68
.4byte _08024A76
.4byte _08024A94
.4byte _08024AC0
.4byte _08024ACA
.4byte _08024AD8
.4byte _08024AE8
.4byte _08024B4C
.4byte _08024B74
.4byte _08024C9C
.4byte _08024CC8
.4byte _08024C1C
.4byte _08024C2C
.4byte _08024C3C
.4byte _08024C4C
.4byte _08024C5C
.4byte _08024C6C
.4byte _08024C7C
.4byte _08024C8C
_08024998:
bl sub_80252B8
lsls r0, 24
cmp r0, 0
beq _080249B0
ldr r0, _080249AC
ldr r1, [r0]
movs r0, 0x3
b _080249B6
.align 2, 0
_080249AC: .4byte gUnknown_203B2B0
_080249B0:
ldr r0, _080249C8
ldr r1, [r0]
movs r0, 0x1
_080249B6:
str r0, [r1, 0x28]
bl sub_8024CFC
ldr r0, _080249CC
ldr r1, _080249C8
ldr r1, [r1]
ldr r2, [r1, 0x28]
b _08024A42
.align 2, 0
_080249C8: .4byte gUnknown_203B2B0
_080249CC: .4byte gUnknown_80DCA34
_080249D0:
bl sub_8024CFC
ldr r0, _080249E0
ldr r1, _080249E4
ldr r1, [r1]
ldr r2, [r1, 0x28]
b _08024A42
.align 2, 0
_080249E0: .4byte gUnknown_80DCAB8
_080249E4: .4byte gUnknown_203B2B0
_080249E8:
ldr r1, [r5]
movs r0, 0x1
str r0, [r1, 0x24]
ldr r0, _080249F4
b _08024CAE
.align 2, 0
_080249F4: .4byte gUnknown_80DCAD0
_080249F8:
ldr r1, [r5]
movs r0, 0x4
str r0, [r1, 0x24]
movs r0, 0x8
movs r1, 0x3C
bl sub_8011900
ldr r0, _08024A0C
ldr r3, _08024A10
b _08024CB0
.align 2, 0
_08024A0C: .4byte gUnknown_80DCD5C
_08024A10: .4byte 0x00000305
_08024A14:
bl sub_8024D48
ldr r0, _08024A1C
b _08024A3C
.align 2, 0
_08024A1C: .4byte gUnknown_80DCD90
_08024A20:
movs r0, 0x2
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08024CF4
_08024A2E:
movs r0, 0x1
bl sub_801A8D0
b _08024CF4
_08024A36:
bl sub_8024DBC
ldr r0, _08024A60
_08024A3C:
ldr r1, _08024A64
ldr r1, [r1]
ldr r2, [r1, 0x2C]
_08024A42:
adds r3, r1, 0
adds r3, 0x34
adds r1, 0x74
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
str r1, [sp, 0xC]
movs r1, 0x5
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _08024CF4
.align 2, 0
_08024A60: .4byte gUnknown_80DCDB8
_08024A64: .4byte gUnknown_203B2B0
_08024A68:
movs r0, 0x2
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08024A7C
_08024A76:
movs r0, 0x1
bl sub_801A8D0
_08024A7C:
ldr r0, _08024A90
ldr r0, [r0]
ldr r0, [r0, 0x14]
movs r1, 0x1
bl sub_801AEE4
bl sub_801A9E0
b _08024CF4
.align 2, 0
_08024A90: .4byte gUnknown_203B2B0
_08024A94:
bl sub_801A9E0
bl sub_8024E30
ldr r0, _08024ABC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x84
adds r1, r2, 0
adds r1, 0x34
adds r3, r2, 0
adds r3, 0x74
ldr r2, [r2, 0x30]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08024CF4
.align 2, 0
_08024ABC: .4byte gUnknown_203B2B0
_08024AC0:
ldr r0, [r5]
adds r0, 0x1C
bl sub_801B3C0
b _08024CF4
_08024ACA:
ldr r1, [r5]
movs r0, 0x5
str r0, [r1, 0x24]
ldr r0, _08024AD4
b _08024CAE
.align 2, 0
_08024AD4: .4byte gUnknown_80DCDDC
_08024AD8:
ldr r1, [r5]
movs r0, 0xA
str r0, [r1, 0x24]
ldr r0, _08024AE4
b _08024CAE
.align 2, 0
_08024AE4: .4byte gUnknown_80DCE18
_08024AE8:
bl sub_8025254
ldr r0, _08024B00
ldr r1, [r0]
ldrh r2, [r1, 0x8]
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _08024B04
movs r0, 0x12
b _08024B3A
.align 2, 0
_08024B00: .4byte gUnknown_203B2B0
_08024B04:
lsls r0, r2, 16
lsrs r0, 16
cmp r0, 0x4
bne _08024B10
movs r0, 0x18
b _08024B3A
_08024B10:
cmp r0, 0x2
bne _08024B18
movs r0, 0x17
b _08024B3A
_08024B18:
cmp r0, 0x10
bne _08024B20
movs r0, 0x1B
b _08024B3A
_08024B20:
cmp r0, 0x20
bne _08024B28
movs r0, 0x19
b _08024B3A
_08024B28:
cmp r0, 0x40
bne _08024B30
movs r0, 0x1A
b _08024B3A
_08024B30:
cmp r0, 0x8
bne _08024B38
movs r0, 0x1C
b _08024B3A
_08024B38:
movs r0, 0x1D
_08024B3A:
str r0, [r1, 0x24]
movs r0, 0x3C
bl sub_8011930
ldr r0, _08024B48
b _08024CAE
.align 2, 0
_08024B48: .4byte gUnknown_80DCE38
_08024B4C:
ldr r0, _08024B68
ldr r1, [r5]
ldr r1, [r1, 0xC]
movs r2, 0x5
bl sub_808D9AC
ldr r0, _08024B6C
bl sub_8011988
ldr r1, [r5]
movs r0, 0x13
str r0, [r1, 0x24]
ldr r0, _08024B70
b _08024CAE
.align 2, 0
_08024B68: .4byte gPlayerName
_08024B6C: .4byte 0x000001ff
_08024B70: .4byte gUnknown_80DCE68
_08024B74:
ldr r0, [r5]
ldr r0, [r0, 0xC]
movs r1, 0x8
ldrsh r0, [r0, r1]
bl sub_808D994
adds r1, r0, 0
ldr r4, _08024C10
adds r0, r4, 0
bl strcpy
ldr r0, [r5]
movs r2, 0xA
ldrsh r0, [r0, r2]
bl sub_808D994
adds r1, r0, 0
adds r4, 0x50
adds r0, r4, 0
bl strcpy
ldr r1, [r5]
movs r0, 0x1
strb r0, [r1]
bl sub_80977D0
ldr r1, [r5]
ldr r0, [r1, 0xC]
movs r2, 0xA
ldrsh r1, [r1, r2]
bl sub_808F734
bl nullsub_104
bl sub_808D33C
ldr r1, [r5]
str r0, [r1, 0xC]
ldr r0, [r1, 0x14]
cmp r0, 0x14
beq _08024BCA
bl sub_8091234
_08024BCA:
ldr r0, [r5]
ldr r0, [r0, 0x18]
cmp r0, 0x14
beq _08024BD6
bl sub_8091234
_08024BD6:
bl sub_80910B4
ldr r0, _08024C14
bl sub_801199C
movs r0, 0xD2
bl sub_8011988
ldr r1, [r5]
ldrb r0, [r1, 0x10]
cmp r0, 0
beq _08024C06
ldr r0, [r1, 0xC]
adds r4, r0, 0
adds r4, 0x4C
movs r1, 0x8
ldrsh r0, [r0, r1]
bl sub_808D994
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0xA
bl sub_8092310
_08024C06:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C18
b _08024CAE
.align 2, 0
_08024C10: .4byte gUnknown_202DF98
_08024C14: .4byte 0x000001ff
_08024C18: .4byte gUnknown_80DCEB0
_08024C1C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C28
b _08024CAE
.align 2, 0
_08024C28: .4byte gUnknown_80DCEDC
_08024C2C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C38
b _08024CAE
.align 2, 0
_08024C38: .4byte gUnknown_80DCF44
_08024C3C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C48
b _08024CAE
.align 2, 0
_08024C48: .4byte gUnknown_80DCF88
_08024C4C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C58
b _08024CAE
.align 2, 0
_08024C58: .4byte gUnknown_80DCFAC
_08024C5C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C68
b _08024CAE
.align 2, 0
_08024C68: .4byte gUnknown_80DCFF4
_08024C6C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C78
b _08024CAE
.align 2, 0
_08024C78: .4byte gUnknown_80DD054
_08024C7C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C88
b _08024CAE
.align 2, 0
_08024C88: .4byte gUnknown_80DD098
_08024C8C:
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08024C98
b _08024CAE
.align 2, 0
_08024C98: .4byte gUnknown_80DD0E0
_08024C9C:
movs r0, 0x8
movs r1, 0x3C
bl sub_8011900
ldr r0, _08024CBC
ldr r1, [r0]
movs r0, 0x15
str r0, [r1, 0x24]
ldr r0, _08024CC0
_08024CAE:
ldr r3, _08024CC4
_08024CB0:
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08024CF4
.align 2, 0
_08024CBC: .4byte gUnknown_203B2B0
_08024CC0: .4byte gUnknown_80DD104
_08024CC4: .4byte 0x00000105
_08024CC8:
ldr r1, [r5]
ldrb r0, [r1, 0x10]
cmp r0, 0
beq _08024CE8
ldr r0, [r1, 0xC]
adds r4, r0, 0
adds r4, 0x4C
movs r2, 0x8
ldrsh r0, [r0, r2]
bl sub_808D994
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0xA
bl sub_8092310
_08024CE8:
ldr r0, [r5]
ldr r1, [r0, 0xC]
adds r1, 0x4C
movs r0, 0
bl sub_801602C
_08024CF4:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80248FC
thumb_func_start sub_8024CFC
sub_8024CFC:
push {r4,lr}
ldr r4, _08024D38
ldr r0, [r4]
adds r0, 0x74
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
movs r3, 0
ldr r0, _08024D3C
str r0, [r1, 0x34]
movs r0, 0x3
str r0, [r1, 0x38]
movs r2, 0x1
ldr r0, _08024D40
ldr r0, [r0]
str r0, [r1, 0x3C]
movs r0, 0x2
str r0, [r1, 0x40]
ldr r0, _08024D44
ldr r0, [r0]
str r0, [r1, 0x44]
str r2, [r1, 0x48]
str r3, [r1, 0x4C]
str r2, [r1, 0x50]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08024D38: .4byte gUnknown_203B2B0
_08024D3C: .4byte gUnknown_80DCA18
_08024D40: .4byte gUnknown_80D4970
_08024D44: .4byte gUnknown_80D4934
thumb_func_end sub_8024CFC
thumb_func_start sub_8024D48
sub_8024D48:
push {r4-r7,lr}
ldr r4, _08024DAC
ldr r0, [r4]
adds r0, 0x74
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08024DB0
str r0, [r3, 0x34]
movs r0, 0x4
str r0, [r3, 0x38]
movs r1, 0x1
ldr r0, _08024DB4
str r0, [r3, 0x3C]
movs r0, 0x5
str r0, [r3, 0x40]
ldr r0, _08024DB8
ldr r0, [r0]
str r0, [r3, 0x44]
str r1, [r3, 0x48]
movs r6, 0x3
str r2, [r3, 0x4C]
str r1, [r3, 0x50]
movs r5, 0
mov r12, r3
adds r3, 0x38
mov r2, r12
adds r2, 0x74
_08024D86:
ldrh r0, [r2]
cmp r0, 0
bne _08024D96
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x2C]
cmp r1, r0
beq _08024DA6
_08024D96:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _08024D86
ldr r1, [r4]
movs r0, 0x4
str r0, [r1, 0x2C]
_08024DA6:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08024DAC: .4byte gUnknown_203B2B0
_08024DB0: .4byte gUnknown_80DCA24
_08024DB4: .4byte gUnknown_80DCA2C
_08024DB8: .4byte gUnknown_80D4934
thumb_func_end sub_8024D48
thumb_func_start sub_8024DBC
sub_8024DBC:
push {r4-r7,lr}
ldr r4, _08024E20
ldr r0, [r4]
adds r0, 0x74
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08024E24
str r0, [r3, 0x34]
movs r0, 0x4
str r0, [r3, 0x38]
movs r1, 0x1
ldr r0, _08024E28
str r0, [r3, 0x3C]
movs r0, 0x5
str r0, [r3, 0x40]
ldr r0, _08024E2C
ldr r0, [r0]
str r0, [r3, 0x44]
str r1, [r3, 0x48]
movs r6, 0x3
str r2, [r3, 0x4C]
str r1, [r3, 0x50]
movs r5, 0
mov r12, r3
adds r3, 0x38
mov r2, r12
adds r2, 0x74
_08024DFA:
ldrh r0, [r2]
cmp r0, 0
bne _08024E0A
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x2C]
cmp r1, r0
beq _08024E1A
_08024E0A:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _08024DFA
ldr r1, [r4]
movs r0, 0x4
str r0, [r1, 0x2C]
_08024E1A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08024E20: .4byte gUnknown_203B2B0
_08024E24: .4byte gUnknown_80DCA24
_08024E28: .4byte gUnknown_80DCA2C
_08024E2C: .4byte gUnknown_80D4934
thumb_func_end sub_8024DBC
thumb_func_start sub_8024E30
sub_8024E30:
push {r4-r7,lr}
ldr r4, _08024E90
ldr r0, [r4]
adds r0, 0x74
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08024E94
str r0, [r3, 0x34]
movs r0, 0x5
str r0, [r3, 0x38]
movs r1, 0x1
ldr r0, _08024E98
ldr r0, [r0]
str r0, [r3, 0x3C]
movs r0, 0x2
str r0, [r3, 0x40]
movs r6, 0x2
str r2, [r3, 0x44]
str r1, [r3, 0x48]
movs r5, 0
mov r12, r3
adds r3, 0x38
mov r2, r12
adds r2, 0x74
_08024E68:
ldrh r0, [r2]
cmp r0, 0
bne _08024E78
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x30]
cmp r1, r0
beq _08024E88
_08024E78:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _08024E68
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x30]
_08024E88:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08024E90: .4byte gUnknown_203B2B0
_08024E94: .4byte gUnknown_80DCA2C
_08024E98: .4byte gUnknown_80D4970
thumb_func_end sub_8024E30
thumb_func_start sub_8024E9C
sub_8024E9C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08024EF8
ldr r1, [sp]
cmp r1, 0x1
beq _08024EB6
ldr r0, _08024EC8
ldr r0, [r0]
str r1, [r0, 0x28]
_08024EB6:
ldr r0, [sp]
cmp r0, 0x2
beq _08024EEA
cmp r0, 0x2
bgt _08024ECC
cmp r0, 0x1
beq _08024EF2
b _08024EF8
.align 2, 0
_08024EC8: .4byte gUnknown_203B2B0
_08024ECC:
cmp r0, 0x3
bne _08024EF8
bl sub_80252B8
lsls r0, 24
cmp r0, 0
beq _08024EE2
movs r0, 0x5
bl sub_80247EC
b _08024EF8
_08024EE2:
movs r0, 0x16
bl sub_80247EC
b _08024EF8
_08024EEA:
movs r0, 0x2
bl sub_80247EC
b _08024EF8
_08024EF2:
movs r0, 0x3
bl sub_80247EC
_08024EF8:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8024E9C
thumb_func_start sub_8024F00
sub_8024F00:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08024F6A
ldr r1, [sp]
cmp r1, 0x1
beq _08024F1A
ldr r0, _08024F2C
ldr r0, [r0]
str r1, [r0, 0x2C]
_08024F1A:
ldr r0, [sp]
cmp r0, 0x4
beq _08024F36
cmp r0, 0x4
bgt _08024F30
cmp r0, 0x1
beq _08024F64
b _08024F6A
.align 2, 0
_08024F2C: .4byte gUnknown_203B2B0
_08024F30:
cmp r0, 0x5
beq _08024F4C
b _08024F6A
_08024F36:
ldr r0, _08024F48
ldr r1, [r0]
movs r0, 0x14
str r0, [r1, 0x14]
str r0, [r1, 0x18]
movs r0, 0x11
bl sub_80247EC
b _08024F6A
.align 2, 0
_08024F48: .4byte gUnknown_203B2B0
_08024F4C:
bl sub_8090A34
cmp r0, 0
bne _08024F5C
movs r0, 0xF
bl sub_80247EC
b _08024F6A
_08024F5C:
movs r0, 0x6
bl sub_80247EC
b _08024F6A
_08024F64:
movs r0, 0x1
bl sub_80247EC
_08024F6A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8024F00
thumb_func_start sub_8024F70
sub_8024F70:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08024FCC
ldr r1, [sp]
cmp r1, 0x1
beq _08024F8A
ldr r0, _08024F9C
ldr r0, [r0]
str r1, [r0, 0x2C]
_08024F8A:
ldr r0, [sp]
cmp r0, 0x4
beq _08024FA6
cmp r0, 0x4
bgt _08024FA0
cmp r0, 0x1
beq _08024FC6
b _08024FCC
.align 2, 0
_08024F9C: .4byte gUnknown_203B2B0
_08024FA0:
cmp r0, 0x5
beq _08024FAE
b _08024FCC
_08024FA6:
movs r0, 0x11
bl sub_80247EC
b _08024FCC
_08024FAE:
bl sub_8090A34
cmp r0, 0x1
bgt _08024FBE
movs r0, 0x10
bl sub_80247EC
b _08024FCC
_08024FBE:
movs r0, 0xB
bl sub_80247EC
b _08024FCC
_08024FC6:
movs r0, 0x1
bl sub_80247EC
_08024FCC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8024F70
thumb_func_start sub_8024FD4
sub_8024FD4:
push {lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x3
beq _08024FF0
cmp r0, 0x3
bhi _08024FEA
cmp r0, 0x2
beq _08025048
b _08025052
_08024FEA:
cmp r0, 0x4
beq _0802501C
b _08025052
_08024FF0:
bl sub_801A8AC
ldr r1, _08025014
ldr r2, [r1]
str r0, [r2, 0x14]
movs r1, 0x14
str r1, [r2, 0x18]
ldr r1, _08025018
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
movs r0, 0x8
bl sub_80247EC
b _08025052
.align 2, 0
_08025014: .4byte gUnknown_203B2B0
_08025018: .4byte gUnknown_203B460
_0802501C:
bl sub_801A8AC
ldr r1, _08025040
ldr r2, [r1]
ldr r1, _08025044
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
movs r0, 0
bl sub_8099690
movs r0, 0x9
bl sub_80247EC
b _08025052
.align 2, 0
_08025040: .4byte gUnknown_203B2B0
_08025044: .4byte gUnknown_203B460
_08025048:
bl sub_801A928
movs r0, 0x5
bl sub_80247EC
_08025052:
pop {r0}
bx r0
thumb_func_end sub_8024FD4
thumb_func_start sub_8025058
sub_8025058:
push {r4,r5,lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x3
beq _08025074
cmp r0, 0x3
bhi _0802506E
cmp r0, 0x2
beq _080250DC
b _080250E6
_0802506E:
cmp r0, 0x4
beq _080250B0
b _080250E6
_08025074:
ldr r5, _080250A0
ldr r4, [r5]
bl sub_801A8AC
ldr r1, [r4, 0x14]
cmp r1, r0
beq _080250A8
bl sub_801A8AC
ldr r2, [r5]
str r0, [r2, 0x18]
ldr r1, _080250A4
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
movs r0, 0xD
bl sub_80247EC
b _080250E6
.align 2, 0
_080250A0: .4byte gUnknown_203B2B0
_080250A4: .4byte gUnknown_203B460
_080250A8:
movs r0, 0x2
bl sub_80119D4
b _080250E6
_080250B0:
bl sub_801A8AC
ldr r1, _080250D4
ldr r2, [r1]
ldr r1, _080250D8
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x1C]
movs r0, 0
bl sub_8099690
movs r0, 0xE
bl sub_80247EC
b _080250E6
.align 2, 0
_080250D4: .4byte gUnknown_203B2B0
_080250D8: .4byte gUnknown_203B460
_080250DC:
bl sub_801A928
movs r0, 0xA
bl sub_80247EC
_080250E6:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8025058
thumb_func_start sub_80250EC
sub_80250EC:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _0802512C
ldr r0, [r4]
adds r0, 0x84
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802511C
ldr r0, [r4]
adds r0, 0x84
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802511C
ldr r0, [r4]
str r1, [r0, 0x30]
_0802511C:
ldr r0, [sp]
cmp r0, 0x2
beq _08025140
cmp r0, 0x2
bgt _08025130
cmp r0, 0x1
beq _0802514E
b _08025154
.align 2, 0
_0802512C: .4byte gUnknown_203B2B0
_08025130:
cmp r0, 0x5
bne _08025154
bl sub_801A928
movs r0, 0xA
bl sub_80247EC
b _08025154
_08025140:
movs r0, 0
bl sub_8099690
movs r0, 0x9
bl sub_80247EC
b _08025154
_0802514E:
movs r0, 0x7
bl sub_80247EC
_08025154:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80250EC
thumb_func_start sub_802515C
sub_802515C:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _0802519C
ldr r0, [r4]
adds r0, 0x84
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802518C
ldr r0, [r4]
adds r0, 0x84
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802518C
ldr r0, [r4]
str r1, [r0, 0x30]
_0802518C:
ldr r0, [sp]
cmp r0, 0x2
beq _080251B0
cmp r0, 0x2
bgt _080251A0
cmp r0, 0x1
beq _080251BE
b _080251C4
.align 2, 0
_0802519C: .4byte gUnknown_203B2B0
_080251A0:
cmp r0, 0x5
bne _080251C4
bl sub_801A928
movs r0, 0x11
bl sub_80247EC
b _080251C4
_080251B0:
movs r0, 0
bl sub_8099690
movs r0, 0xE
bl sub_80247EC
b _080251C4
_080251BE:
movs r0, 0xC
bl sub_80247EC
_080251C4:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802515C
thumb_func_start sub_80251CC
sub_80251CC:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _080251E4
cmp r0, 0x3
bhi _080251E4
bl sub_801B450
movs r0, 0x7
bl sub_80247EC
_080251E4:
pop {r0}
bx r0
thumb_func_end sub_80251CC
thumb_func_start sub_80251E8
sub_80251E8:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08025200
cmp r0, 0x3
bhi _08025200
bl sub_801B450
movs r0, 0xC
bl sub_80247EC
_08025200:
pop {r0}
bx r0
thumb_func_end sub_80251E8
thumb_func_start sub_8025204
sub_8025204:
push {r4,lr}
bl sub_8016080
cmp r0, 0x3
bne _08025226
bl sub_80160D8
ldr r4, _0802522C
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_808D824
ldr r1, [r4]
strb r0, [r1, 0x10]
movs r0, 0x3
bl sub_80247EC
_08025226:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802522C: .4byte gUnknown_203B2B0
thumb_func_end sub_8025204
thumb_func_start sub_8025230
sub_8025230:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08025248
ldr r0, _08025250
ldr r0, [r0]
ldr r0, [r0, 0x24]
bl sub_80247EC
_08025248:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08025250: .4byte gUnknown_203B2B0
thumb_func_end sub_8025230
thumb_func_start sub_8025254
sub_8025254:
push {lr}
ldr r0, _08025268
ldr r2, [r0]
ldr r1, [r2, 0x14]
adds r3, r0, 0
cmp r1, 0x14
bne _0802526C
movs r0, 0
b _08025276
.align 2, 0
_08025268: .4byte gUnknown_203B2B0
_0802526C:
ldr r0, _08025284
ldr r0, [r0]
lsls r1, 2
adds r0, r1
ldrb r0, [r0, 0x2]
_08025276:
strb r0, [r2, 0x4]
ldr r2, [r3]
ldr r1, [r2, 0x18]
cmp r1, 0x14
bne _08025288
movs r0, 0
b _08025292
.align 2, 0
_08025284: .4byte gUnknown_203B460
_08025288:
ldr r0, _080252B0
ldr r0, [r0]
lsls r1, 2
adds r0, r1
ldrb r0, [r0, 0x2]
_08025292:
strb r0, [r2, 0x5]
movs r0, 0xFF
bl RandomCapped
ldr r2, _080252B4
ldr r1, [r2]
strb r0, [r1, 0x6]
ldr r1, [r2]
ldr r0, [r1, 0xC]
adds r1, 0x4
movs r2, 0x1
bl sub_808F468
pop {r0}
bx r0
.align 2, 0
_080252B0: .4byte gUnknown_203B460
_080252B4: .4byte gUnknown_203B2B0
thumb_func_end sub_8025254
thumb_func_start sub_80252B8
sub_80252B8:
push {r4,lr}
ldr r0, _080252E0
ldr r1, [r0]
movs r3, 0
movs r4, 0x1
ldr r2, _080252E4
_080252C4:
ldrh r0, [r1]
lsrs r0, 1
ands r0, r4
cmp r0, 0
beq _080252D0
adds r3, 0x1
_080252D0:
subs r2, 0x1
adds r1, 0x58
cmp r2, 0
bne _080252C4
cmp r3, 0x1
beq _080252E8
movs r0, 0
b _080252EA
.align 2, 0
_080252E0: .4byte gUnknown_203B45C
_080252E4: .4byte 0x0000019d
_080252E8:
movs r0, 0x1
_080252EA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80252B8
thumb_func_start sub_80252F0
sub_80252F0:
push {r4-r6,lr}
adds r6, r0, 0
cmp r6, 0x2
bne _08025308
movs r0, 0x4
bl sub_8024108
lsls r0, 24
cmp r0, 0
beq _08025308
movs r0, 0
b _0802534C
_08025308:
ldr r4, _08025340
movs r0, 0xBC
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r5, 0
str r5, [r0, 0x70]
str r6, [r0]
bl sub_80A5728
lsls r0, 16
asrs r0, 16
bl sub_8002658
ldr r1, [r4]
strb r0, [r1, 0xC]
ldr r0, [r4]
strb r5, [r0, 0xD]
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x2
bne _08025344
movs r0, 0
bl sub_8025434
b _0802534A
.align 2, 0
_08025340: .4byte gUnknown_203B2B4
_08025344:
movs r0, 0x1
bl sub_8025434
_0802534A:
movs r0, 0x1
_0802534C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80252F0
thumb_func_start sub_8025354
sub_8025354:
push {lr}
ldr r0, _0802536C
ldr r0, [r0]
ldr r0, [r0, 0x4]
subs r0, 0x1
cmp r0, 0x12
bhi _08025400
lsls r0, 2
ldr r1, _08025370
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802536C: .4byte gUnknown_203B2B4
_08025370: .4byte _08025374
.align 2, 0
_08025374:
.4byte _080253C4
.4byte _080253C4
.4byte _080253CA
.4byte _080253D0
.4byte _080253D6
.4byte _08025400
.4byte _08025400
.4byte _08025400
.4byte _08025400
.4byte _08025400
.4byte _080253DC
.4byte _080253DC
.4byte _080253E2
.4byte _080253E8
.4byte _080253EE
.4byte _080253EE
.4byte _080253F4
.4byte _080253FA
.4byte _080253C0
_080253C0:
movs r0, 0x3
b _08025406
_080253C4:
bl sub_80259F0
b _08025404
_080253CA:
bl sub_8025A84
b _08025404
_080253D0:
bl sub_8025BCC
b _08025404
_080253D6:
bl sub_8025BE8
b _08025404
_080253DC:
bl sub_8025C04
b _08025404
_080253E2:
bl sub_8025CB4
b _08025404
_080253E8:
bl sub_8025D90
b _08025404
_080253EE:
bl sub_8025DAC
b _08025404
_080253F4:
bl sub_8025E08
b _08025404
_080253FA:
bl sub_8025E24
b _08025404
_08025400:
bl sub_8025E44
_08025404:
movs r0, 0
_08025406:
pop {r1}
bx r1
thumb_func_end sub_8025354
thumb_func_start sub_802540C
sub_802540C:
ldr r0, _08025414
ldr r0, [r0]
ldrb r0, [r0, 0xD]
bx lr
.align 2, 0
_08025414: .4byte gUnknown_203B2B4
thumb_func_end sub_802540C
thumb_func_start sub_8025418
sub_8025418:
push {r4,lr}
ldr r4, _08025430
ldr r0, [r4]
cmp r0, 0
beq _0802542A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802542A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08025430: .4byte gUnknown_203B2B4
thumb_func_end sub_8025418
thumb_func_start sub_8025434
sub_8025434:
push {lr}
ldr r1, _08025448
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_802544C
bl sub_8025518
pop {r0}
bx r0
.align 2, 0
_08025448: .4byte gUnknown_203B2B4
thumb_func_end sub_8025434
thumb_func_start sub_802544C
sub_802544C:
push {r4-r7,lr}
ldr r4, _08025470
ldr r0, [r4]
movs r1, 0x8C
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1, 0x4]
cmp r0, 0x3
beq _08025478
cmp r0, 0xD
beq _080254B0
movs r2, 0
ldr r3, _08025474
b _080254D8
.align 2, 0
_08025470: .4byte gUnknown_203B2B4
_08025474: .4byte gUnknown_80DD148
_08025478:
ldr r0, [r1]
cmp r0, 0
bne _0802548E
movs r2, 0xB0
lsls r2, 1
adds r1, r2
ldr r0, _080254A8
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
_0802548E:
bl sub_8025728
ldr r2, [r4]
movs r0, 0xA4
lsls r0, 1
adds r2, r0
ldr r1, _080254AC
ldm r1!, {r5-r7}
stm r2!, {r5-r7}
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
b _080254C6
.align 2, 0
_080254A8: .4byte gUnknown_80DD190
_080254AC: .4byte gUnknown_80DD160
_080254B0:
bl sub_802591C
ldr r2, [r4]
movs r0, 0xA4
lsls r0, 1
adds r2, r0
ldr r1, _080254D4
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
_080254C6:
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xC8
bl sub_8012CAC
b _080254F8
.align 2, 0
_080254D4: .4byte gUnknown_80DD178
_080254D8:
ldr r0, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r0, r1
movs r5, 0x8C
lsls r5, 1
adds r0, r5
adds r1, r3, 0
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r2, 0x1
cmp r2, 0x3
ble _080254D8
_080254F8:
bl sub_8004914
ldr r0, _08025514
ldr r0, [r0]
movs r6, 0x8C
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08025514: .4byte gUnknown_203B2B4
thumb_func_end sub_802544C
thumb_func_start sub_8025518
sub_8025518:
push {r4,r5,lr}
sub sp, 0xC
ldr r1, _08025534
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r5, r1, 0
cmp r0, 0x13
bls _0802552A
b _08025720
_0802552A:
lsls r0, 2
ldr r1, _08025538
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08025534: .4byte gUnknown_203B2B4
_08025538: .4byte _0802553C
.align 2, 0
_0802553C:
.4byte _0802558C
.4byte _080255A0
.4byte _080255BA
.4byte _080255C2
.4byte _0802560C
.4byte _0802561A
.4byte _08025720
.4byte _080256A8
.4byte _0802567A
.4byte _08025688
.4byte _08025698
.4byte _08025626
.4byte _08025634
.4byte _0802563C
.4byte _08025668
.4byte _080256CC
.4byte _080256F2
.4byte _080256FC
.4byte _08025714
.4byte _08025720
_0802558C:
ldr r1, [r5]
movs r0, 0x1
str r0, [r1, 0x8]
ldr r0, _08025598
ldr r3, _0802559C
b _080256B8
.align 2, 0
_08025598: .4byte gUnknown_80DD1A8
_0802559C: .4byte 0x00000301
_080255A0:
movs r1, 0x4
ldr r0, [r5]
ldr r0, [r0]
cmp r0, 0
bne _080255AC
movs r1, 0x2
_080255AC:
adds r0, r1, 0
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_8023868
b _08025720
_080255BA:
movs r0, 0x1
bl sub_8023B7C
b _08025720
_080255C2:
ldr r1, [r5]
ldr r0, [r1]
cmp r0, 0
bne _080255D2
adds r1, 0x18
movs r0, 0x3
bl sub_8025E68
_080255D2:
bl sub_8023DA4
ldr r4, _08025608
ldr r0, [r5]
ldr r1, [r0, 0x1C]
adds r0, r4, 0
movs r2, 0x7
bl sub_808D9AC
adds r4, 0x50
ldr r0, [r5]
ldr r1, [r0, 0x1C]
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x78
adds r1, r2, 0
adds r1, 0xC8
movs r4, 0x84
lsls r4, 1
adds r3, r2, r4
ldr r2, [r2, 0x70]
b _08025654
.align 2, 0
_08025608: .4byte gUnknown_202DF98
_0802560C:
ldr r0, [r5]
movs r1, 0xE
ldrsh r0, [r0, r1]
movs r1, 0x2
bl sub_8024458
b _08025720
_0802561A:
ldr r0, [r5]
movs r4, 0xE
ldrsh r0, [r0, r4]
bl sub_801BEEC
b _08025720
_08025626:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08025720
_08025634:
movs r0, 0x1
bl sub_801A8D0
b _08025720
_0802563C:
bl sub_801A9E0
ldr r0, _08025664
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x78
adds r1, r2, 0
adds r1, 0xC8
movs r4, 0x84
lsls r4, 1
adds r3, r2, r4
ldr r2, [r2, 0x74]
_08025654:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08025720
.align 2, 0
_08025664: .4byte gUnknown_203B2B4
_08025668:
ldr r1, [r5]
adds r1, 0x14
add r0, sp, 0x8
bl sub_8090B64
add r0, sp, 0x8
bl sub_801B3C0
b _08025720
_0802567A:
ldr r1, [r5]
movs r0, 0x2
str r0, [r1, 0x8]
ldr r0, _08025684
b _080256B6
.align 2, 0
_08025684: .4byte gUnknown_80DD1C8
_08025688:
ldr r1, [r5]
movs r0, 0x2
str r0, [r1, 0x8]
ldr r0, _08025694
b _080256B6
.align 2, 0
_08025694: .4byte gUnknown_80DD1EC
_08025698:
ldr r1, [r5]
movs r0, 0x2
str r0, [r1, 0x8]
ldr r0, _080256A4
b _080256B6
.align 2, 0
_080256A4: .4byte gUnknown_80DD240
_080256A8:
ldr r1, [r5]
movs r0, 0x1
str r0, [r1, 0x8]
movs r0, 0xCF
bl sub_8011988
ldr r0, _080256C4
_080256B6:
ldr r3, _080256C8
_080256B8:
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08025720
.align 2, 0
_080256C4: .4byte gUnknown_80DD270
_080256C8: .4byte 0x00000101
_080256CC:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x28
ldr r1, [r1, 0x1C]
adds r1, 0x2C
bl sub_809401C
ldr r2, [r5]
movs r0, 0xE
ldrsh r1, [r2, r0]
adds r2, 0x28
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x3
movs r3, 0
bl sub_801EE10
b _08025720
_080256F2:
movs r0, 0x1
movs r1, 0
bl sub_801F1B0
b _08025720
_080256FC:
ldr r2, [r5]
ldr r0, [r2, 0x20]
adds r1, r2, 0
adds r1, 0x28
adds r2, 0x68
bl sub_8093560
ldr r0, [r5]
adds r0, 0x68
bl sub_801F808
b _08025720
_08025714:
ldr r0, [r5]
ldr r1, [r0, 0x1C]
adds r1, 0x4C
movs r0, 0x2
bl sub_801602C
_08025720:
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8025518
thumb_func_start sub_8025728
sub_8025728:
push {r4-r7,lr}
ldr r3, _080257CC
ldr r5, _080257D0
ldr r0, [r5]
movs r1, 0xE
ldrsh r2, [r0, r1]
movs r1, 0x58
muls r2, r1
ldr r1, [r3]
adds r7, r1, r2
movs r2, 0x84
lsls r2, 1
adds r0, r2
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r5]
ldr r0, [r4]
cmp r0, 0
bne _080257E0
adds r1, r4, 0
adds r1, 0xC8
ldr r0, _080257D4
str r0, [r1]
adds r1, 0x4
movs r0, 0xA
str r0, [r1]
bl sub_8090A34
cmp r0, 0
bne _08025774
ldr r0, [r5]
movs r4, 0x84
lsls r4, 1
adds r0, r4
movs r1, 0x1
strh r1, [r0]
_08025774:
movs r6, 0x1
ldr r1, [r5]
adds r2, r1, 0
adds r2, 0xD0
ldr r0, _080257D8
str r0, [r2]
adds r1, 0xD4
movs r0, 0xB
str r0, [r1]
bl sub_8090A34
cmp r0, 0x13
bgt _08025796
ldr r0, [r5]
ldrb r0, [r0, 0x18]
cmp r0, 0
bne _080257A0
_08025796:
ldr r0, [r5]
movs r1, 0x85
lsls r1, 1
adds r0, r1
strh r6, [r0]
_080257A0:
adds r6, 0x1
adds r0, r7, 0
bl sub_8025EC4
lsls r0, 24
cmp r0, 0
beq _08025810
ldr r0, _080257D0
ldr r2, [r0]
lsls r3, r6, 3
adds r0, r2, 0
adds r0, 0xC8
adds r0, r3
ldr r1, _080257DC
str r1, [r0]
adds r2, 0xCC
adds r2, r3
movs r0, 0x9
str r0, [r2]
adds r6, 0x1
b _08025810
.align 2, 0
_080257CC: .4byte gUnknown_203B45C
_080257D0: .4byte gUnknown_203B2B4
_080257D4: .4byte gUnknown_80DD2B0
_080257D8: .4byte gUnknown_80DD2B8
_080257DC: .4byte gUnknown_80DD2C0
_080257E0:
adds r1, r4, 0
adds r1, 0xC8
ldr r0, _080258D4
str r0, [r1]
adds r1, 0x4
movs r0, 0x7
str r0, [r1]
ldr r0, [r4, 0x1C]
movs r2, 0x8
ldrsh r0, [r0, r2]
bl sub_808DBA8
ldrb r1, [r4, 0xC]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _0802580E
ldr r0, [r5]
movs r4, 0x84
lsls r4, 1
adds r0, r4
movs r1, 0x1
strh r1, [r0]
_0802580E:
movs r6, 0x1
_08025810:
movs r0, 0x8
ldrsh r1, [r7, r0]
ldr r0, _080258D8
cmp r1, r0
bne _08025840
adds r0, r7, 0
bl sub_808D824
lsls r0, 24
cmp r0, 0
beq _08025840
ldr r0, _080258DC
ldr r2, [r0]
lsls r3, r6, 3
adds r0, r2, 0
adds r0, 0xC8
adds r0, r3
ldr r1, _080258E0
str r1, [r0]
adds r2, 0xCC
adds r2, r3
movs r0, 0x8
str r0, [r2]
adds r6, 0x1
_08025840:
ldr r4, _080258DC
ldr r5, [r4]
lsls r1, r6, 3
adds r3, r5, 0
adds r3, 0xC8
adds r2, r3, r1
ldr r0, _080258E4
str r0, [r2]
adds r7, r5, 0
adds r7, 0xCC
adds r1, r7, r1
movs r0, 0x4
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r2, r3, r1
ldr r0, _080258E8
str r0, [r2]
adds r1, r7, r1
movs r0, 0x6
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r2, r3, r1
ldr r0, _080258EC
str r0, [r2]
adds r1, r7, r1
movs r0, 0x5
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r1, r7, r1
movs r0, 0x1
str r0, [r1]
movs r3, 0
mov r12, r4
cmp r3, r6
bge _080258B2
movs r1, 0x84
lsls r1, 1
adds r4, r5, r1
adds r2, r7, 0
_0802589A:
ldrh r0, [r4]
cmp r0, 0
bne _080258A8
ldr r1, [r2]
ldr r0, [r5, 0x70]
cmp r1, r0
beq _08025916
_080258A8:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r6
blt _0802589A
_080258B2:
movs r3, 0
cmp r3, r6
bge _08025916
mov r2, r12
ldr r1, [r2]
movs r4, 0x84
lsls r4, 1
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, 0
bne _080258F0
adds r0, r1, 0
adds r0, 0xCC
ldr r0, [r0]
str r0, [r1, 0x70]
b _08025916
.align 2, 0
_080258D4: .4byte gUnknown_80DD2CC
_080258D8: .4byte 0x0000013d
_080258DC: .4byte gUnknown_203B2B4
_080258E0: .4byte gUnknown_80DD2D4
_080258E4: .4byte gUnknown_80DD2DC
_080258E8: .4byte gUnknown_80DD2E4
_080258EC: .4byte gUnknown_80DD2EC
_080258F0:
adds r3, 0x1
cmp r3, r6
bge _08025916
mov r0, r12
ldr r2, [r0]
lsls r0, r3, 1
movs r4, 0x84
lsls r4, 1
adds r1, r2, r4
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _080258F0
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0xCC
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x70]
_08025916:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8025728
thumb_func_start sub_802591C
sub_802591C:
push {r4-r7,lr}
ldr r5, _080259B8
ldr r0, [r5]
movs r7, 0x84
lsls r7, 1
adds r0, r7
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r5]
adds r2, r1, 0
adds r2, 0xC8
ldr r0, _080259BC
str r0, [r2]
adds r1, 0xCC
movs r0, 0xA
str r0, [r1]
bl sub_8090A34
cmp r0, 0
bne _08025952
ldr r0, [r5]
adds r1, r7, 0
adds r0, r1
movs r1, 0x1
strh r1, [r0]
_08025952:
ldr r4, [r5]
movs r2, 0x1
adds r1, r4, 0
adds r1, 0xD0
ldr r0, _080259C0
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x4
str r0, [r1]
movs r6, 0x2
adds r1, 0x4
movs r0, 0
str r0, [r1]
adds r0, r4, 0
adds r0, 0xDC
str r2, [r0]
movs r3, 0
mov r12, r4
adds r4, r7
mov r2, r12
adds r2, 0xCC
_0802597E:
ldrh r0, [r4]
cmp r0, 0
bne _0802598E
ldr r1, [r2]
mov r7, r12
ldr r0, [r7, 0x74]
cmp r1, r0
beq _080259E8
_0802598E:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r6
blt _0802597E
movs r3, 0
cmp r3, r6
bge _080259E8
ldr r1, [r5]
movs r2, 0x84
lsls r2, 1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0
bne _080259C4
adds r0, r1, 0
adds r0, 0xCC
ldr r0, [r0]
str r0, [r1, 0x74]
b _080259E8
.align 2, 0
_080259B8: .4byte gUnknown_203B2B4
_080259BC: .4byte gUnknown_80DD2B0
_080259C0: .4byte gUnknown_80D4970
_080259C4:
adds r3, 0x1
cmp r3, r6
bge _080259E8
ldr r2, [r5]
lsls r0, r3, 1
movs r4, 0x84
lsls r4, 1
adds r1, r2, r4
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _080259C4
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0xCC
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x74]
_080259E8:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802591C
thumb_func_start sub_80259F0
sub_80259F0:
push {lr}
movs r0, 0x1
bl sub_8023A94
cmp r0, 0x3
beq _08025A0C
cmp r0, 0x3
bhi _08025A06
cmp r0, 0x2
beq _08025A74
b _08025A7E
_08025A06:
cmp r0, 0x4
beq _08025A40
b _08025A7E
_08025A0C:
bl sub_8023B44
ldr r1, _08025A38
ldr r1, [r1]
strh r0, [r1, 0xE]
ldr r3, _08025A3C
movs r0, 0xE
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x1C]
movs r2, 0xE
ldrsh r0, [r1, r2]
adds r1, 0x18
bl sub_808D7DC
movs r0, 0x3
bl sub_8025434
b _08025A7E
.align 2, 0
_08025A38: .4byte gUnknown_203B2B4
_08025A3C: .4byte gUnknown_203B45C
_08025A40:
bl sub_8023B44
ldr r1, _08025A6C
ldr r1, [r1]
strh r0, [r1, 0xE]
ldr r3, _08025A70
movs r0, 0xE
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x1C]
movs r2, 0xE
ldrsh r0, [r1, r2]
adds r1, 0x18
bl sub_808D7DC
movs r0, 0x4
bl sub_8025434
b _08025A7E
.align 2, 0
_08025A6C: .4byte gUnknown_203B2B4
_08025A70: .4byte gUnknown_203B45C
_08025A74:
bl sub_8023C60
movs r0, 0x13
bl sub_8025434
_08025A7E:
pop {r0}
bx r0
thumb_func_end sub_80259F0
thumb_func_start sub_8025A84
sub_8025A84:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8023A94
ldr r4, _08025AC8
ldr r0, [r4]
adds r0, 0x78
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08025AB4
ldr r0, [r4]
adds r0, 0x78
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08025AB4
ldr r0, [r4]
str r1, [r0, 0x70]
_08025AB4:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0xA
bls _08025ABE
b _08025BC2
_08025ABE:
lsls r0, 2
ldr r1, _08025ACC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08025AC8: .4byte gUnknown_203B2B4
_08025ACC: .4byte _08025AD0
.align 2, 0
_08025AD0:
.4byte _08025BBC
.4byte _08025BC2
.4byte _08025BC2
.4byte _08025BAC
.4byte _08025BB4
.4byte _08025B9C
.4byte _08025AFC
.4byte _08025BA4
.4byte _08025B70
.4byte _08025B20
.4byte _08025B28
_08025AFC:
ldr r4, _08025B1C
ldr r0, [r4]
ldr r0, [r0, 0x1C]
movs r1, 0x8
ldrsh r0, [r0, r1]
bl sub_808DBA8
ldr r1, [r4]
strb r0, [r1, 0xD]
bl sub_8023C60
movs r0, 0x13
bl sub_8025434
b _08025BC2
.align 2, 0
_08025B1C: .4byte gUnknown_203B2B4
_08025B20:
movs r0, 0xB
bl sub_8025434
b _08025BC2
_08025B28:
ldr r0, _08025B68
bl sub_8011988
ldr r4, _08025B6C
ldr r1, [r4]
ldrb r0, [r1, 0x18]
cmp r0, 0
beq _08025B40
adds r0, r1, 0
adds r0, 0x18
bl sub_8091274
_08025B40:
bl sub_80910B4
ldr r0, [r4]
movs r1, 0
strb r1, [r0, 0x18]
ldr r0, [r4]
strb r1, [r0, 0x19]
ldr r1, [r4]
movs r2, 0xE
ldrsh r0, [r1, r2]
adds r1, 0x18
bl sub_808D800
bl nullsub_104
movs r0, 0xA
bl sub_8025434
b _08025BC2
.align 2, 0
_08025B68: .4byte 0x0000014d
_08025B6C: .4byte gUnknown_203B2B4
_08025B70:
ldr r0, _08025B94
ldr r0, [r0]
ldr r2, [r0, 0x1C]
ldrh r1, [r2]
ldr r0, _08025B98
ands r0, r1
strh r0, [r2]
bl nullsub_104
bl sub_808ED00
bl sub_8023C60
movs r0, 0x7
bl sub_8025434
b _08025BC2
.align 2, 0
_08025B94: .4byte gUnknown_203B2B4
_08025B98: .4byte 0x0000fffd
_08025B9C:
movs r0, 0xF
bl sub_8025434
b _08025BC2
_08025BA4:
movs r0, 0x12
bl sub_8025434
b _08025BC2
_08025BAC:
movs r0, 0x4
bl sub_8025434
b _08025BC2
_08025BB4:
movs r0, 0x5
bl sub_8025434
b _08025BC2
_08025BBC:
movs r0, 0x2
bl sub_8025434
_08025BC2:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8025A84
thumb_func_start sub_8025BCC
sub_8025BCC:
push {lr}
bl sub_80244E4
cmp r0, 0x1
bls _08025BE4
cmp r0, 0x3
bhi _08025BE4
bl sub_802453C
movs r0, 0x2
bl sub_8025434
_08025BE4:
pop {r0}
bx r0
thumb_func_end sub_8025BCC
thumb_func_start sub_8025BE8
sub_8025BE8:
push {lr}
bl sub_801BF48
cmp r0, 0x1
bls _08025C00
cmp r0, 0x3
bhi _08025C00
bl sub_801BF98
movs r0, 0x2
bl sub_8025434
_08025C00:
pop {r0}
bx r0
thumb_func_end sub_8025BE8
thumb_func_start sub_8025C04
sub_8025C04:
push {r4,lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x4
bhi _08025CAE
lsls r0, 2
ldr r1, _08025C1C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08025C1C: .4byte _08025C20
.align 2, 0
_08025C20:
.4byte _08025CAE
.4byte _08025CAE
.4byte _08025CA4
.4byte _08025C34
.4byte _08025C68
_08025C34:
bl sub_801A8AC
ldr r4, _08025C60
ldr r2, [r4]
str r0, [r2, 0x10]
ldr r3, _08025C64
ldr r1, [r3]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x2]
strb r0, [r2, 0x14]
ldr r2, [r4]
ldr r1, [r3]
ldr r0, [r2, 0x10]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x1]
strb r0, [r2, 0x15]
movs r0, 0xD
bl sub_8025434
b _08025CAE
.align 2, 0
_08025C60: .4byte gUnknown_203B2B4
_08025C64: .4byte gUnknown_203B460
_08025C68:
bl sub_801A8AC
ldr r4, _08025C9C
ldr r2, [r4]
str r0, [r2, 0x10]
ldr r3, _08025CA0
ldr r1, [r3]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x2]
strb r0, [r2, 0x14]
ldr r2, [r4]
ldr r1, [r3]
ldr r0, [r2, 0x10]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x1]
strb r0, [r2, 0x15]
movs r0, 0
bl sub_8099690
movs r0, 0xE
bl sub_8025434
b _08025CAE
.align 2, 0
_08025C9C: .4byte gUnknown_203B2B4
_08025CA0: .4byte gUnknown_203B460
_08025CA4:
bl sub_801A928
movs r0, 0x2
bl sub_8025434
_08025CAE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8025C04
thumb_func_start sub_8025CB4
sub_8025CB4:
push {r4-r6,lr}
sub sp, 0x14
movs r0, 0
str r0, [sp, 0xC]
bl sub_801A6E8
ldr r4, _08025CF4
ldr r0, [r4]
adds r0, 0x78
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08025CE4
ldr r0, [r4]
adds r0, 0x78
add r1, sp, 0xC
bl sub_8013114
ldr r1, [sp, 0xC]
cmp r1, 0x1
beq _08025CE4
ldr r0, [r4]
str r1, [r0, 0x74]
_08025CE4:
ldr r0, [sp, 0xC]
cmp r0, 0x4
beq _08025D74
cmp r0, 0x4
bgt _08025CF8
cmp r0, 0x1
beq _08025D82
b _08025D88
.align 2, 0
_08025CF4: .4byte gUnknown_203B2B4
_08025CF8:
cmp r0, 0xA
bne _08025D88
movs r6, 0x8
ldr r0, _08025D68
bl sub_8011988
ldr r5, _08025D6C
ldr r0, [r5]
ldr r0, [r0, 0x10]
bl sub_80911F8
bl sub_80910B4
ldr r1, [r5]
ldrb r0, [r1, 0x18]
cmp r0, 0
beq _08025D24
adds r0, r1, 0
adds r0, 0x18
bl sub_8091274
movs r6, 0x9
_08025D24:
add r4, sp, 0x10
ldr r1, [r5]
adds r1, 0x14
adds r0, r4, 0
bl sub_8090B64
movs r1, 0
str r1, [sp]
mov r0, sp
strb r1, [r0, 0x4]
mov r1, sp
movs r0, 0x1
strb r0, [r1, 0x8]
strb r0, [r4]
ldr r0, _08025D70
adds r1, r4, 0
mov r2, sp
bl sub_8090E14
ldr r1, [r5]
movs r2, 0xE
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
bl sub_801A928
bl nullsub_104
adds r0, r6, 0
bl sub_8025434
b _08025D88
.align 2, 0
_08025D68: .4byte 0x0000014d
_08025D6C: .4byte gUnknown_203B2B4
_08025D70: .4byte gUnknown_202DEA8
_08025D74:
movs r0, 0
bl sub_8099690
movs r0, 0xE
bl sub_8025434
b _08025D88
_08025D82:
movs r0, 0xC
bl sub_8025434
_08025D88:
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8025CB4
thumb_func_start sub_8025D90
sub_8025D90:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08025DA8
cmp r0, 0x3
bhi _08025DA8
bl sub_801B450
movs r0, 0xC
bl sub_8025434
_08025DA8:
pop {r0}
bx r0
thumb_func_end sub_8025D90
thumb_func_start sub_8025DAC
sub_8025DAC:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x3
beq _08025DC6
cmp r0, 0x3
bhi _08025DC2
cmp r0, 0x2
beq _08025DE4
b _08025DFE
_08025DC2:
cmp r0, 0x4
bne _08025DFE
_08025DC6:
bl sub_801F194
ldr r1, _08025DE0
ldr r1, [r1]
str r0, [r1, 0x20]
lsls r0, 3
adds r0, r1, r0
ldrh r0, [r0, 0x2A]
strh r0, [r1, 0x24]
movs r0, 0x11
bl sub_8025434
b _08025DFE
.align 2, 0
_08025DE0: .4byte gUnknown_203B2B4
_08025DE4:
bl sub_801F214
ldr r0, _08025E04
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x28
ldr r1, [r1, 0x1C]
adds r1, 0x2C
bl sub_8094060
movs r0, 0x2
bl sub_8025434
_08025DFE:
pop {r0}
bx r0
.align 2, 0
_08025E04: .4byte gUnknown_203B2B4
thumb_func_end sub_8025DAC
thumb_func_start sub_8025E08
sub_8025E08:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _08025E20
cmp r0, 0x3
bhi _08025E20
bl sub_801F8D0
movs r0, 0x10
bl sub_8025434
_08025E20:
pop {r0}
bx r0
thumb_func_end sub_8025E08
thumb_func_start sub_8025E24
sub_8025E24:
push {lr}
bl sub_8016080
cmp r0, 0x3
bhi _08025E40
cmp r0, 0x2
bcc _08025E40
bl sub_80160D8
bl nullsub_104
movs r0, 0x2
bl sub_8025434
_08025E40:
pop {r0}
bx r0
thumb_func_end sub_8025E24
thumb_func_start sub_8025E44
sub_8025E44:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08025E5C
ldr r0, _08025E64
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_8025434
_08025E5C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08025E64: .4byte gUnknown_203B2B4
thumb_func_end sub_8025E44
thumb_func_start sub_8025E68
sub_8025E68:
push {r4-r6,lr}
sub sp, 0x14
adds r6, r0, 0
adds r5, r1, 0
bl sub_8008C54
adds r0, r6, 0
bl sub_80073B8
add r4, sp, 0x10
adds r0, r4, 0
adds r1, r5, 0
bl sub_8090B64
movs r5, 0
str r5, [sp, 0x4]
add r0, sp, 0x4
strb r5, [r0, 0x4]
adds r1, r0, 0
movs r0, 0x1
strb r0, [r1, 0x8]
strb r0, [r4]
ldr r0, _08025EBC
adds r1, r4, 0
add r2, sp, 0x4
bl sub_8090E14
ldr r2, _08025EC0
str r5, [sp]
movs r0, 0x4
movs r1, 0x3
adds r3, r6, 0
bl sub_8014FF0
adds r0, r6, 0
bl sub_80073E0
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08025EBC: .4byte gUnknown_202DE58
_08025EC0: .4byte gUnknown_80DD2F8
thumb_func_end sub_8025E68
thumb_func_start sub_8025EC4
sub_8025EC4:
push {lr}
adds r1, r0, 0
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08025EE8
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08025ED8
movs r2, 0x1
_08025ED8:
cmp r2, 0
beq _08025EEC
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _08025EEC
_08025EE8:
movs r0, 0
b _08025EEE
_08025EEC:
movs r0, 0x1
_08025EEE:
pop {r1}
bx r1
thumb_func_end sub_8025EC4
thumb_func_start sub_8025EF4
sub_8025EF4:
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, _08025F1C
movs r0, 0xA0
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
adds r1, r0, 0
str r1, [r6]
str r4, [r1, 0x18]
movs r5, 0
ldr r0, _08025F20
ldr r0, [r0]
cmp r4, r0
bne _08025F24
strh r5, [r1, 0xA]
adds r4, r6, 0
b _08025F48
.align 2, 0
_08025F1C: .4byte gUnknown_203B2B8
_08025F20: .4byte gUnknown_203B45C
_08025F24:
adds r5, 0x1
movs r0, 0xCE
lsls r0, 1
ldr r4, _08025F60
cmp r5, r0
bgt _08025F48
ldr r3, [r4]
ldr r2, _08025F64
lsls r0, r5, 16
asrs r0, 16
movs r1, 0x58
muls r1, r0
ldr r0, [r2]
adds r0, r1
ldr r1, [r3, 0x18]
cmp r1, r0
bne _08025F24
strh r5, [r3, 0xA]
_08025F48:
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0x70]
str r0, [r1, 0x74]
str r0, [r1, 0x78]
strb r0, [r1, 0x8]
bl sub_8026074
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08025F60: .4byte gUnknown_203B2B8
_08025F64: .4byte gUnknown_203B45C
thumb_func_end sub_8025EF4
thumb_func_start sub_8025F68
sub_8025F68:
push {lr}
ldr r0, _08025F80
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x19
bhi _0802603A
lsls r0, 2
ldr r1, _08025F84
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08025F80: .4byte gUnknown_203B2B8
_08025F84: .4byte _08025F88
.align 2, 0
_08025F88:
.4byte _08025FF0
.4byte _08025FF8
.4byte _08025FF8
.4byte _08025FFE
.4byte _08026004
.4byte _0802603A
.4byte _0802603A
.4byte _0802603A
.4byte _0802603A
.4byte _0802603A
.4byte _0802603A
.4byte _0802603A
.4byte _0802600A
.4byte _08026010
.4byte _08026016
.4byte _0802603A
.4byte _0802603A
.4byte _0802603A
.4byte _0802601C
.4byte _0802601C
.4byte _08026022
.4byte _08026028
.4byte _0802602E
.4byte _0802602E
.4byte _08026034
.4byte _08026040
_08025FF0:
movs r0, 0x1
bl sub_8026074
b _08026044
_08025FF8:
bl sub_80268CC
b _08026044
_08025FFE:
bl sub_8026A78
b _08026044
_08026004:
bl sub_8026A94
b _08026044
_0802600A:
bl sub_8026AB0
b _08026044
_08026010:
bl sub_8026B10
b _08026044
_08026016:
bl sub_8026B48
b _08026044
_0802601C:
bl sub_8026B64
b _08026044
_08026022:
bl sub_8026C14
b _08026044
_08026028:
bl sub_8026CF0
b _08026044
_0802602E:
bl sub_8026D0C
b _08026044
_08026034:
bl sub_8026D6C
b _08026044
_0802603A:
bl sub_8026D88
b _08026044
_08026040:
movs r0, 0x3
b _08026046
_08026044:
movs r0, 0
_08026046:
pop {r1}
bx r1
thumb_func_end sub_8025F68
thumb_func_start sub_802604C
sub_802604C:
ldr r0, _08026054
ldr r0, [r0]
ldrb r0, [r0, 0x8]
bx lr
.align 2, 0
_08026054: .4byte gUnknown_203B2B8
thumb_func_end sub_802604C
thumb_func_start sub_8026058
sub_8026058:
push {r4,lr}
ldr r4, _08026070
ldr r0, [r4]
cmp r0, 0
beq _0802606A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802606A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08026070: .4byte gUnknown_203B2B8
thumb_func_end sub_8026058
thumb_func_start sub_8026074
sub_8026074:
push {lr}
ldr r1, _08026088
ldr r1, [r1]
str r0, [r1]
bl sub_802608C
bl sub_80261D0
pop {r0}
bx r0
.align 2, 0
_08026088: .4byte gUnknown_203B2B8
thumb_func_end sub_8026074
thumb_func_start sub_802608C
sub_802608C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _080260B8
ldr r0, [r4]
movs r5, 0x88
lsls r5, 2
adds r0, r5
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x1
blt _08026178
cmp r0, 0x2
ble _080260BC
cmp r0, 0x14
beq _0802614C
b _08026178
.align 2, 0
_080260B8: .4byte gUnknown_203B2B8
_080260BC:
ldr r0, _0802613C
mov r12, r0
ldr r1, _08026140
mov r8, r1
mov r9, r4
mov r10, r5
movs r3, 0
movs r2, 0x3
_080260CC:
mov r5, r9
ldr r1, [r5]
adds r1, r3
add r1, r10
ldr r0, _08026144
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _080260CC
ldr r1, [r4]
movs r6, 0x88
lsls r6, 2
adds r1, r6
mov r0, r12
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldr r1, [r4]
movs r0, 0x9A
lsls r0, 2
adds r1, r0
mov r0, r8
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
bl sub_80264CC
ldr r2, [r4]
movs r0, 0x94
lsls r0, 2
adds r2, r0
ldr r1, _08026148
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
movs r6, 0xB6
lsls r6, 1
adds r1, r6
bl sub_8012CAC
ldr r0, [r4]
movs r7, 0x97
lsls r7, 2
adds r0, r7
movs r1, 0x9
strh r1, [r0]
b _080261A2
.align 2, 0
_0802613C: .4byte gUnknown_80DD358
_08026140: .4byte gUnknown_80DD370
_08026144: .4byte gUnknown_80DD310
_08026148: .4byte gUnknown_80DD328
_0802614C:
bl sub_802678C
ldr r2, [r4]
movs r0, 0x94
lsls r0, 2
adds r2, r0
ldr r1, _08026174
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
movs r6, 0xB6
lsls r6, 1
adds r1, r6
bl sub_8012CAC
b _080261A2
.align 2, 0
_08026174: .4byte gUnknown_80DD340
_08026178:
ldr r7, _080261C8
mov r8, r7
movs r0, 0x88
lsls r0, 2
mov r9, r0
ldr r4, _080261CC
movs r3, 0
movs r2, 0x3
_08026188:
mov r5, r8
ldr r1, [r5]
adds r1, r3
add r1, r9
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08026188
_080261A2:
bl sub_8004914
ldr r0, _080261C8
ldr r0, [r0]
movs r6, 0x88
lsls r6, 2
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080261C8: .4byte gUnknown_203B2B8
_080261CC: .4byte gUnknown_80DD310
thumb_func_end sub_802608C
thumb_func_start sub_80261D0
sub_80261D0:
push {r4,r5,lr}
sub sp, 0x18
ldr r1, _080261EC
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x19
bls _080261E2
b _080264BA
_080261E2:
lsls r0, 2
ldr r1, _080261F0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080261EC: .4byte gUnknown_203B2B8
_080261F0: .4byte _080261F4
.align 2, 0
_080261F4:
.4byte _080264BA
.4byte _0802625C
.4byte _080262A8
.4byte _080262EC
.4byte _080262FA
.4byte _080263F8
.4byte _0802640C
.4byte _08026420
.4byte _08026434
.4byte _08026448
.4byte _0802648A
.4byte _080264A8
.4byte _08026392
.4byte _080263AC
.4byte _08026306
.4byte _08026464
.4byte _08026474
.4byte _08026484
.4byte _08026310
.4byte _0802631E
.4byte _08026326
.4byte _08026350
.4byte _08026362
.4byte _08026388
.4byte _080263E0
.4byte _080264BA
_0802625C:
movs r0, 0x3
bl sub_8026E08
ldr r5, _080262A0
ldr r1, [r5]
adds r1, 0x14
movs r0, 0
bl sub_8026DAC
ldr r4, _080262A4
ldr r0, [r5]
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x7
bl sub_808D9AC
adds r4, 0x50
ldr r0, [r5]
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x7C
movs r3, 0xB6
lsls r3, 1
adds r1, r2, r3
movs r4, 0x83
lsls r4, 2
adds r3, r2, r4
ldr r2, [r2, 0x70]
b _0802633E
.align 2, 0
_080262A0: .4byte gUnknown_203B2B8
_080262A4: .4byte gUnknown_202DF98
_080262A8:
movs r0, 0x3
bl sub_8026E08
ldr r5, _080262E4
ldr r1, [r5]
adds r1, 0x14
movs r0, 0
bl sub_8026DAC
ldr r4, _080262E8
ldr r0, [r5]
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x7
bl sub_808D9AC
adds r4, 0x50
ldr r0, [r5]
ldr r1, [r0, 0x18]
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0x1
bl sub_8012EA4
b _080264BA
.align 2, 0
_080262E4: .4byte gUnknown_203B2B8
_080262E8: .4byte gUnknown_202DF98
_080262EC:
ldr r0, [r4]
movs r1, 0xA
ldrsh r0, [r0, r1]
movs r1, 0x2
bl sub_8024458
b _080264BA
_080262FA:
ldr r0, [r4]
movs r3, 0xA
ldrsh r0, [r0, r3]
bl sub_801BEEC
b _080264BA
_08026306:
ldr r0, [r4]
ldr r0, [r0, 0x18]
bl sub_80227B8
b _080264BA
_08026310:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _080264BA
_0802631E:
movs r0, 0x1
bl sub_801A8D0
b _080264BA
_08026326:
bl sub_801A9E0
ldr r0, _0802634C
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xCC
movs r4, 0xB6
lsls r4, 1
adds r1, r2, r4
adds r4, 0xA0
adds r3, r2, r4
ldr r2, [r2, 0x74]
_0802633E:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _080264BA
.align 2, 0
_0802634C: .4byte gUnknown_203B2B8
_08026350:
ldr r1, [r4]
adds r1, 0x10
add r0, sp, 0x14
bl sub_8090B64
add r0, sp, 0x14
bl sub_801B3C0
b _080264BA
_08026362:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldr r1, [r1, 0x18]
adds r1, 0x2C
bl sub_809401C
ldr r2, [r4]
movs r0, 0xA
ldrsh r1, [r2, r0]
adds r2, 0x28
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x3
movs r3, 0
bl sub_801EE10
b _080264BA
_08026388:
movs r0, 0x1
movs r1, 0
bl sub_801F1B0
b _080264BA
_08026392:
bl sub_8026878
ldr r0, _080263A4
ldr r1, _080263A8
ldr r3, [r1]
movs r1, 0xDE
lsls r1, 1
adds r3, r1
b _080263BC
.align 2, 0
_080263A4: .4byte gUnknown_80DD388
_080263A8: .4byte gUnknown_203B2B8
_080263AC:
bl sub_8026878
ldr r0, _080263D8
ldr r1, _080263DC
ldr r3, [r1]
movs r4, 0xDE
lsls r4, 1
adds r3, r4
_080263BC:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _080264BA
.align 2, 0
_080263D8: .4byte gUnknown_80DD420
_080263DC: .4byte gUnknown_203B2B8
_080263E0:
ldr r2, [r4]
ldr r0, [r2, 0x20]
adds r1, r2, 0
adds r1, 0x28
adds r2, 0x68
bl sub_8093560
ldr r0, [r4]
adds r0, 0x68
bl sub_801F808
b _080264BA
_080263F8:
ldr r1, [r4]
movs r0, 0x19
str r0, [r1, 0x4]
movs r0, 0xCF
bl sub_8011988
ldr r0, _08026408
b _08026492
.align 2, 0
_08026408: .4byte gUnknown_80DD4C4
_0802640C:
ldr r1, [r4]
movs r0, 0x19
str r0, [r1, 0x4]
movs r0, 0xCF
bl sub_8011988
ldr r0, _0802641C
b _08026492
.align 2, 0
_0802641C: .4byte gUnknown_80DD4F4
_08026420:
ldr r1, [r4]
movs r0, 0x19
str r0, [r1, 0x4]
movs r0, 0xCC
bl sub_8011988
ldr r0, _08026430
b _08026492
.align 2, 0
_08026430: .4byte gUnknown_80DD534
_08026434:
ldr r1, [r4]
movs r0, 0x9
str r0, [r1, 0x4]
movs r0, 0xCA
bl sub_8011988
ldr r0, _08026444
b _08026492
.align 2, 0
_08026444: .4byte gUnknown_80DD564
_08026448:
bl sub_8026FA4
ldr r4, _08026460
ldr r0, [r4]
ldr r0, [r0, 0x18]
bl sub_808D31C
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x8]
b _080264BA
.align 2, 0
_08026460: .4byte gUnknown_203B2B8
_08026464:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _08026470
b _08026492
.align 2, 0
_08026470: .4byte gUnknown_80DD594
_08026474:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _08026480
b _08026492
.align 2, 0
_08026480: .4byte gUnknown_80DD5B8
_08026484:
ldr r1, [r4]
movs r0, 0x2
b _0802648E
_0802648A:
ldr r1, [r4]
movs r0, 0x19
_0802648E:
str r0, [r1, 0x4]
ldr r0, _080264A0
_08026492:
ldr r3, _080264A4
movs r1, 0
movs r2, 0
bl sub_80141B4
b _080264BA
.align 2, 0
_080264A0: .4byte gUnknown_80DD60C
_080264A4: .4byte 0x00000101
_080264A8:
ldr r1, [r4]
movs r0, 0x19
str r0, [r1, 0x4]
ldr r0, _080264C4
ldr r3, _080264C8
movs r1, 0
movs r2, 0
bl sub_80141B4
_080264BA:
add sp, 0x18
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080264C4: .4byte gUnknown_80DD63C
_080264C8: .4byte 0x00000101
thumb_func_end sub_80261D0
thumb_func_start sub_80264CC
sub_80264CC:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r3, _08026574
ldr r4, _08026578
ldr r0, [r4]
movs r1, 0xA
ldrsh r2, [r0, r1]
movs r1, 0x58
muls r2, r1
ldr r1, [r3]
adds r1, r2
mov r8, r1
movs r2, 0x83
lsls r2, 2
adds r0, r2
movs r1, 0
movs r2, 0x14
bl MemoryFill16
ldr r1, [r4]
ldr r0, [r1, 0x18]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x1C]
ldr r1, [r4]
movs r3, 0xA
ldrsh r0, [r1, r3]
adds r1, 0x14
bl sub_808D7DC
mov r1, r8
ldrh r0, [r1]
lsrs r0, 1
movs r5, 0x1
ands r0, r5
cmp r0, 0
beq _08026584
ldr r2, [r4]
movs r3, 0xB6
lsls r3, 1
adds r1, r2, r3
ldr r0, _0802657C
str r0, [r1]
movs r0, 0xB8
lsls r0, 1
adds r1, r2, r0
movs r0, 0x7
str r0, [r1]
mov r0, r8
bl sub_8026E88
lsls r0, 24
cmp r0, 0
bne _08026542
ldr r0, [r4]
movs r1, 0x83
lsls r1, 2
adds r0, r1
strh r5, [r0]
_08026542:
movs r6, 0x1
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080265B4
mov r2, r8
ldrb r0, [r2, 0x2]
cmp r0, 0
bne _080265B4
ldr r3, [r4]
movs r2, 0x8
movs r4, 0xBA
lsls r4, 1
adds r1, r3, r4
ldr r0, _08026580
str r0, [r1]
movs r1, 0xBC
lsls r1, 1
adds r0, r3, r1
str r2, [r0]
movs r6, 0x2
b _080265B4
.align 2, 0
_08026574: .4byte gUnknown_203B45C
_08026578: .4byte gUnknown_203B2B8
_0802657C: .4byte gUnknown_80DD664
_08026580: .4byte gUnknown_80DD670
_08026584:
ldr r2, [r4]
movs r3, 0xB6
lsls r3, 1
adds r1, r2, r3
ldr r0, _08026734
str r0, [r1]
movs r0, 0xB8
lsls r0, 1
adds r1, r2, r0
movs r0, 0x6
str r0, [r1]
movs r1, 0xA
ldrsh r0, [r2, r1]
bl sub_808D750
lsls r0, 24
cmp r0, 0
bne _080265B2
ldr r0, [r4]
movs r2, 0x83
lsls r2, 2
adds r0, r2
strh r5, [r0]
_080265B2:
movs r6, 0x1
_080265B4:
ldr r4, _08026738
ldr r2, [r4]
lsls r3, r6, 3
movs r7, 0xB6
lsls r7, 1
adds r0, r2, r7
adds r0, r3
ldr r1, _0802673C
str r1, [r0]
movs r5, 0xB8
lsls r5, 1
adds r2, r5
adds r2, r3
movs r0, 0xA
str r0, [r2]
bl sub_809177C
lsls r0, 24
cmp r0, 0
bne _080265EC
ldr r0, [r4]
lsls r1, r6, 1
movs r3, 0x83
lsls r3, 2
adds r0, r3
adds r0, r1
movs r1, 0x1
strh r1, [r0]
_080265EC:
adds r6, 0x1
ldr r2, [r4]
lsls r3, r6, 3
adds r0, r2, r7
adds r0, r3
ldr r1, _08026740
str r1, [r0]
adds r2, r5
adds r2, r3
movs r0, 0xB
str r0, [r2]
bl sub_8090A34
cmp r0, 0
bne _0802661A
ldr r0, [r4]
lsls r1, r6, 1
movs r2, 0x83
lsls r2, 2
adds r0, r2
adds r0, r1
movs r1, 0x1
strh r1, [r0]
_0802661A:
adds r6, 0x1
ldr r2, [r4]
lsls r3, r6, 3
adds r0, r2, r7
adds r0, r3
ldr r1, _08026744
str r1, [r0]
adds r2, r5
adds r2, r3
movs r0, 0xC
str r0, [r2]
bl sub_8090A34
cmp r0, 0x13
bgt _08026640
ldr r0, [r4]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _08026650
_08026640:
ldr r0, [r4]
lsls r1, r6, 1
movs r3, 0x83
lsls r3, 2
adds r0, r3
adds r0, r1
movs r1, 0x1
strh r1, [r0]
_08026650:
adds r6, 0x1
mov r4, r8
ldrh r0, [r4]
lsrs r0, 1
movs r5, 0x1
ands r0, r5
cmp r0, 0
bne _0802669A
ldr r4, _08026738
ldr r3, [r4]
lsls r2, r6, 3
movs r1, 0xB6
lsls r1, 1
adds r0, r3, r1
adds r0, r2
ldr r1, _08026748
str r1, [r0]
movs r1, 0xB8
lsls r1, 1
adds r0, r3, r1
adds r0, r2
movs r1, 0x9
str r1, [r0]
mov r0, r8
bl sub_8026EB8
lsls r0, 24
cmp r0, 0
bne _08026698
ldr r0, [r4]
lsls r1, r6, 1
movs r2, 0x83
lsls r2, 2
adds r0, r2
adds r0, r1
strh r5, [r0]
_08026698:
adds r6, 0x1
_0802669A:
ldr r4, _08026738
ldr r5, [r4]
lsls r1, r6, 3
movs r0, 0xB6
lsls r0, 1
adds r3, r5, r0
adds r2, r3, r1
ldr r0, _0802674C
str r0, [r2]
movs r2, 0xB8
lsls r2, 1
adds r7, r5, r2
adds r1, r7, r1
movs r0, 0x4
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r2, r3, r1
ldr r0, _08026750
str r0, [r2]
adds r1, r7, r1
movs r0, 0xD
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r2, r3, r1
ldr r0, _08026754
str r0, [r2]
adds r1, r7, r1
movs r0, 0x5
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r1, r7, r1
movs r0, 0x1
str r0, [r1]
movs r3, 0
mov r12, r4
cmp r3, r6
bge _08026710
adds r4, r7, 0
movs r0, 0x83
lsls r0, 2
adds r2, r5, r0
_080266F8:
ldrh r0, [r2]
cmp r0, 0
bne _08026706
ldr r1, [r4]
ldr r0, [r5, 0x70]
cmp r1, r0
beq _08026780
_08026706:
adds r4, 0x8
adds r2, 0x2
adds r3, 0x1
cmp r3, r6
blt _080266F8
_08026710:
movs r3, 0
cmp r3, r6
bge _08026780
mov r2, r12
ldr r1, [r2]
movs r4, 0x83
lsls r4, 2
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, 0
bne _08026758
movs r2, 0xB8
lsls r2, 1
adds r0, r1, r2
ldr r0, [r0]
str r0, [r1, 0x70]
b _08026780
.align 2, 0
_08026734: .4byte gUnknown_80DD67C
_08026738: .4byte gUnknown_203B2B8
_0802673C: .4byte gUnknown_80DD688
_08026740: .4byte gUnknown_80DD694
_08026744: .4byte gUnknown_80DD69C
_08026748: .4byte gUnknown_80DD6A4
_0802674C: .4byte gUnknown_80DD6B4
_08026750: .4byte gUnknown_80DD6BC
_08026754: .4byte gUnknown_80DD6C4
_08026758:
adds r3, 0x1
cmp r3, r6
bge _08026780
mov r4, r12
ldr r2, [r4]
lsls r0, r3, 1
movs r4, 0x83
lsls r4, 2
adds r1, r2, r4
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08026758
lsls r0, r3, 3
movs r3, 0xB8
lsls r3, 1
adds r1, r2, r3
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x70]
_08026780:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80264CC
thumb_func_start sub_802678C
sub_802678C:
push {r4-r7,lr}
ldr r5, _08026840
ldr r0, [r5]
movs r7, 0x83
lsls r7, 2
adds r0, r7
movs r1, 0
movs r2, 0x14
bl MemoryFill16
ldr r2, [r5]
movs r0, 0xB6
lsls r0, 1
adds r1, r2, r0
ldr r0, _08026844
str r0, [r1]
movs r3, 0xB8
lsls r3, 1
adds r1, r2, r3
movs r0, 0xB
str r0, [r1]
bl sub_8090A34
cmp r0, 0
bne _080267C8
ldr r0, [r5]
adds r4, r7, 0
adds r0, r4
movs r1, 0x1
strh r1, [r0]
_080267C8:
ldr r4, [r5]
movs r2, 0x1
movs r0, 0xBA
lsls r0, 1
adds r1, r4, r0
ldr r0, _08026848
ldr r0, [r0]
str r0, [r1]
movs r3, 0xBC
lsls r3, 1
adds r1, r4, r3
movs r0, 0x4
str r0, [r1]
movs r6, 0x2
movs r0, 0xBE
lsls r0, 1
adds r1, r4, r0
movs r0, 0
str r0, [r1]
movs r1, 0xC0
lsls r1, 1
adds r0, r4, r1
str r2, [r0]
movs r3, 0
mov r12, r4
movs r4, 0xB8
lsls r4, 1
add r4, r12
mov r0, r12
adds r2, r0, r7
_08026804:
ldrh r0, [r2]
cmp r0, 0
bne _08026814
ldr r1, [r4]
mov r7, r12
ldr r0, [r7, 0x74]
cmp r1, r0
beq _08026872
_08026814:
adds r4, 0x8
adds r2, 0x2
adds r3, 0x1
cmp r3, r6
blt _08026804
movs r3, 0
cmp r3, r6
bge _08026872
ldr r1, [r5]
movs r2, 0x83
lsls r2, 2
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0
bne _0802684C
movs r3, 0xB8
lsls r3, 1
adds r0, r1, r3
ldr r0, [r0]
str r0, [r1, 0x74]
b _08026872
.align 2, 0
_08026840: .4byte gUnknown_203B2B8
_08026844: .4byte gUnknown_80DD694
_08026848: .4byte gUnknown_80D4970
_0802684C:
adds r3, 0x1
cmp r3, r6
bge _08026872
ldr r2, [r5]
lsls r0, r3, 1
movs r4, 0x83
lsls r4, 2
adds r1, r2, r4
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _0802684C
lsls r0, r3, 3
movs r7, 0xB8
lsls r7, 1
adds r1, r2, r7
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x74]
_08026872:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802678C
thumb_func_start sub_8026878
sub_8026878:
ldr r0, _080268C0
ldr r0, [r0]
mov r12, r0
movs r3, 0
movs r1, 0xDE
lsls r1, 1
add r1, r12
ldr r0, _080268C4
ldr r0, [r0]
str r0, [r1]
movs r1, 0xE0
lsls r1, 1
add r1, r12
movs r0, 0x2
str r0, [r1]
movs r2, 0x1
movs r1, 0xE2
lsls r1, 1
add r1, r12
ldr r0, _080268C8
ldr r0, [r0]
str r0, [r1]
movs r1, 0xE4
lsls r1, 1
add r1, r12
movs r0, 0x3
str r0, [r1]
movs r0, 0xE6
lsls r0, 1
add r0, r12
str r3, [r0]
movs r0, 0xE8
lsls r0, 1
add r0, r12
str r2, [r0]
bx lr
.align 2, 0
_080268C0: .4byte gUnknown_203B2B8
_080268C4: .4byte gUnknown_80D4920
_080268C8: .4byte gUnknown_80D4928
thumb_func_end sub_8026878
thumb_func_start sub_80268CC
sub_80268CC:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _0802690C
ldr r0, [r4]
adds r0, 0x7C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080268F8
ldr r0, [r4]
adds r0, 0x7C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _080268F8
ldr r0, [r4]
str r1, [r0, 0x70]
_080268F8:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0xC
bls _08026902
b _08026A6E
_08026902:
lsls r0, 2
ldr r1, _08026910
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802690C: .4byte gUnknown_203B2B8
_08026910: .4byte _08026914
.align 2, 0
_08026914:
.4byte _08026A68
.4byte _08026A6E
.4byte _08026A6E
.4byte _08026A58
.4byte _08026A60
.4byte _08026948
.4byte _0802698C
.4byte _080269B4
.4byte _080269F0
.4byte _08026A00
.4byte _08026A08
.4byte _08026A10
.4byte _080269F8
_08026948:
ldr r4, _08026984
ldr r0, [r4]
movs r1, 0xA
ldrsh r0, [r0, r1]
bl sub_808D750
lsls r0, 24
cmp r0, 0
beq _08026976
ldr r0, [r4]
movs r2, 0xA
ldrsh r1, [r0, r2]
movs r0, 0x58
muls r1, r0
ldr r0, _08026988
ldr r0, [r0]
adds r1, r0
ldrh r2, [r1]
movs r0, 0x2
orrs r0, r2
strh r0, [r1]
bl nullsub_104
_08026976:
bl sub_808ED00
movs r0, 0x5
bl sub_8026074
b _08026A6E
.align 2, 0
_08026984: .4byte gUnknown_203B2B8
_08026988: .4byte gUnknown_203B45C
_0802698C:
ldr r0, _080269AC
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrh r1, [r2]
ldr r0, _080269B0
ands r0, r1
strh r0, [r2]
bl nullsub_104
bl sub_808ED00
movs r0, 0x6
bl sub_8026074
b _08026A6E
.align 2, 0
_080269AC: .4byte gUnknown_203B2B8
_080269B0: .4byte 0x0000fffd
_080269B4:
ldr r2, _080269E8
ldr r0, _080269EC
ldr r0, [r0]
movs r3, 0xA
ldrsh r1, [r0, r3]
movs r0, 0x58
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
bl sub_808D33C
ldrb r1, [r4, 0x2]
cmp r1, 0
bne _080269DA
strb r1, [r0, 0x2]
movs r0, 0x1
strb r0, [r4, 0x2]
bl nullsub_104
_080269DA:
bl sub_808ED00
movs r0, 0x7
bl sub_8026074
b _08026A6E
.align 2, 0
_080269E8: .4byte gUnknown_203B45C
_080269EC: .4byte gUnknown_203B2B8
_080269F0:
movs r0, 0xC
bl sub_8026074
b _08026A6E
_080269F8:
movs r0, 0x16
bl sub_8026074
b _08026A6E
_08026A00:
movs r0, 0xE
bl sub_8026074
b _08026A6E
_08026A08:
movs r0, 0x12
bl sub_8026074
b _08026A6E
_08026A10:
ldr r0, _08026A50
bl sub_8011988
ldr r4, _08026A54
ldr r1, [r4]
ldrb r0, [r1, 0x14]
cmp r0, 0
beq _08026A28
adds r0, r1, 0
adds r0, 0x14
bl sub_8091274
_08026A28:
bl sub_80910B4
ldr r0, [r4]
movs r1, 0
strb r1, [r0, 0x14]
ldr r0, [r4]
strb r1, [r0, 0x15]
ldr r1, [r4]
movs r2, 0xA
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
bl nullsub_104
movs r0, 0x11
bl sub_8026074
b _08026A6E
.align 2, 0
_08026A50: .4byte 0x0000014d
_08026A54: .4byte gUnknown_203B2B8
_08026A58:
movs r0, 0x3
bl sub_8026074
b _08026A6E
_08026A60:
movs r0, 0x4
bl sub_8026074
b _08026A6E
_08026A68:
movs r0, 0x19
bl sub_8026074
_08026A6E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80268CC
thumb_func_start sub_8026A78
sub_8026A78:
push {lr}
bl sub_80244E4
cmp r0, 0x1
bls _08026A90
cmp r0, 0x3
bhi _08026A90
bl sub_802453C
movs r0, 0x2
bl sub_8026074
_08026A90:
pop {r0}
bx r0
thumb_func_end sub_8026A78
thumb_func_start sub_8026A94
sub_8026A94:
push {lr}
bl sub_801BF48
cmp r0, 0x1
bls _08026AAC
cmp r0, 0x3
bhi _08026AAC
bl sub_801BF98
movs r0, 0x2
bl sub_8026074
_08026AAC:
pop {r0}
bx r0
thumb_func_end sub_8026A94
thumb_func_start sub_8026AB0
sub_8026AB0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08026B08
ldr r0, [sp]
cmp r0, 0x2
beq _08026ADA
cmp r0, 0x2
bgt _08026ACE
cmp r0, 0x1
beq _08026AD2
b _08026B08
_08026ACE:
cmp r0, 0x3
bne _08026B08
_08026AD2:
movs r0, 0x2
bl sub_8026074
b _08026B08
_08026ADA:
ldr r0, _08026AF0
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrb r0, [r0, 0x4]
subs r0, 0x44
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08026AF4
movs r0, 0x1
b _08026AF6
.align 2, 0
_08026AF0: .4byte gUnknown_203B2B8
_08026AF4:
movs r0, 0
_08026AF6:
cmp r0, 0
beq _08026B02
movs r0, 0xD
bl sub_8026074
b _08026B08
_08026B02:
movs r0, 0x8
bl sub_8026074
_08026B08:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8026AB0
thumb_func_start sub_8026B10
sub_8026B10:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08026B40
ldr r0, [sp]
cmp r0, 0x2
beq _08026B3A
cmp r0, 0x2
bgt _08026B2E
cmp r0, 0x1
beq _08026B32
b _08026B40
_08026B2E:
cmp r0, 0x3
bne _08026B40
_08026B32:
movs r0, 0x2
bl sub_8026074
b _08026B40
_08026B3A:
movs r0, 0x8
bl sub_8026074
_08026B40:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8026B10
thumb_func_start sub_8026B48
sub_8026B48:
push {lr}
bl sub_8022860
cmp r0, 0x1
bls _08026B60
cmp r0, 0x3
bhi _08026B60
bl sub_8022908
movs r0, 0x2
bl sub_8026074
_08026B60:
pop {r0}
bx r0
thumb_func_end sub_8026B48
thumb_func_start sub_8026B64
sub_8026B64:
push {r4,lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x4
bhi _08026C0E
lsls r0, 2
ldr r1, _08026B7C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08026B7C: .4byte _08026B80
.align 2, 0
_08026B80:
.4byte _08026C0E
.4byte _08026C0E
.4byte _08026C04
.4byte _08026B94
.4byte _08026BC8
_08026B94:
bl sub_801A8AC
ldr r4, _08026BC0
ldr r2, [r4]
str r0, [r2, 0xC]
ldr r3, _08026BC4
ldr r1, [r3]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x2]
strb r0, [r2, 0x10]
ldr r2, [r4]
ldr r1, [r3]
ldr r0, [r2, 0xC]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x1]
strb r0, [r2, 0x11]
movs r0, 0x14
bl sub_8026074
b _08026C0E
.align 2, 0
_08026BC0: .4byte gUnknown_203B2B8
_08026BC4: .4byte gUnknown_203B460
_08026BC8:
bl sub_801A8AC
ldr r4, _08026BFC
ldr r2, [r4]
str r0, [r2, 0xC]
ldr r3, _08026C00
ldr r1, [r3]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x2]
strb r0, [r2, 0x10]
ldr r2, [r4]
ldr r1, [r3]
ldr r0, [r2, 0xC]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x1]
strb r0, [r2, 0x11]
movs r0, 0
bl sub_8099690
movs r0, 0x15
bl sub_8026074
b _08026C0E
.align 2, 0
_08026BFC: .4byte gUnknown_203B2B8
_08026C00: .4byte gUnknown_203B460
_08026C04:
bl sub_801A928
movs r0, 0x2
bl sub_8026074
_08026C0E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8026B64
thumb_func_start sub_8026C14
sub_8026C14:
push {r4-r6,lr}
sub sp, 0x14
movs r0, 0
str r0, [sp, 0xC]
bl sub_801A6E8
ldr r4, _08026C54
ldr r0, [r4]
adds r0, 0xCC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08026C44
ldr r0, [r4]
adds r0, 0xCC
add r1, sp, 0xC
bl sub_8013114
ldr r1, [sp, 0xC]
cmp r1, 0x1
beq _08026C44
ldr r0, [r4]
str r1, [r0, 0x74]
_08026C44:
ldr r0, [sp, 0xC]
cmp r0, 0x4
beq _08026CD4
cmp r0, 0x4
bgt _08026C58
cmp r0, 0x1
beq _08026CE2
b _08026CE8
.align 2, 0
_08026C54: .4byte gUnknown_203B2B8
_08026C58:
cmp r0, 0xB
bne _08026CE8
movs r6, 0xF
ldr r0, _08026CC8
bl sub_8011988
ldr r5, _08026CCC
ldr r0, [r5]
ldr r0, [r0, 0xC]
bl sub_80911F8
bl sub_80910B4
ldr r1, [r5]
ldrb r0, [r1, 0x14]
cmp r0, 0
beq _08026C84
adds r0, r1, 0
adds r0, 0x14
bl sub_8091274
movs r6, 0x10
_08026C84:
add r4, sp, 0x10
ldr r1, [r5]
adds r1, 0x10
adds r0, r4, 0
bl sub_8090B64
movs r1, 0
str r1, [sp]
mov r0, sp
strb r1, [r0, 0x4]
mov r1, sp
movs r0, 0x1
strb r0, [r1, 0x8]
strb r0, [r4]
ldr r0, _08026CD0
adds r1, r4, 0
mov r2, sp
bl sub_8090E14
ldr r1, [r5]
movs r2, 0xA
ldrsh r0, [r1, r2]
adds r1, 0x10
bl sub_808D800
bl sub_801A928
bl nullsub_104
adds r0, r6, 0
bl sub_8026074
b _08026CE8
.align 2, 0
_08026CC8: .4byte 0x0000014d
_08026CCC: .4byte gUnknown_203B2B8
_08026CD0: .4byte gUnknown_202DEA8
_08026CD4:
movs r0, 0
bl sub_8099690
movs r0, 0x15
bl sub_8026074
b _08026CE8
_08026CE2:
movs r0, 0x13
bl sub_8026074
_08026CE8:
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8026C14
thumb_func_start sub_8026CF0
sub_8026CF0:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08026D08
cmp r0, 0x3
bhi _08026D08
bl sub_801B450
movs r0, 0x13
bl sub_8026074
_08026D08:
pop {r0}
bx r0
thumb_func_end sub_8026CF0
thumb_func_start sub_8026D0C
sub_8026D0C:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x4
bhi _08026D66
lsls r0, 2
ldr r1, _08026D24
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08026D24: .4byte _08026D28
.align 2, 0
_08026D28:
.4byte _08026D66
.4byte _08026D66
.4byte _08026D5C
.4byte _08026D3C
.4byte _08026D3C
_08026D3C:
bl sub_801F194
ldr r1, _08026D58
ldr r1, [r1]
str r0, [r1, 0x20]
lsls r0, 3
adds r0, r1, r0
ldrh r0, [r0, 0x2A]
strh r0, [r1, 0x24]
movs r0, 0x18
bl sub_8026074
b _08026D66
.align 2, 0
_08026D58: .4byte gUnknown_203B2B8
_08026D5C:
bl sub_801F214
movs r0, 0x2
bl sub_8026074
_08026D66:
pop {r0}
bx r0
thumb_func_end sub_8026D0C
thumb_func_start sub_8026D6C
sub_8026D6C:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _08026D84
cmp r0, 0x3
bhi _08026D84
bl sub_801F8D0
movs r0, 0x17
bl sub_8026074
_08026D84:
pop {r0}
bx r0
thumb_func_end sub_8026D6C
thumb_func_start sub_8026D88
sub_8026D88:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08026DA0
ldr r0, _08026DA8
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8026074
_08026DA0:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08026DA8: .4byte gUnknown_203B2B8
thumb_func_end sub_8026D88
thumb_func_start sub_8026DAC
sub_8026DAC:
push {r4-r6,lr}
sub sp, 0x14
adds r6, r0, 0
adds r5, r1, 0
bl sub_8008C54
adds r0, r6, 0
bl sub_80073B8
add r4, sp, 0x10
adds r0, r4, 0
adds r1, r5, 0
bl sub_8090B64
movs r5, 0
str r5, [sp, 0x4]
add r0, sp, 0x4
strb r5, [r0, 0x4]
adds r1, r0, 0
movs r0, 0x1
strb r0, [r1, 0x8]
strb r0, [r4]
ldr r0, _08026E00
adds r1, r4, 0
add r2, sp, 0x4
bl sub_8090E14
ldr r2, _08026E04
str r5, [sp]
movs r0, 0x4
movs r1, 0x3
adds r3, r6, 0
bl sub_8014FF0
adds r0, r6, 0
bl sub_80073E0
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08026E00: .4byte gUnknown_202DE58
_08026E04: .4byte gUnknown_80DD6D0
thumb_func_end sub_8026DAC
thumb_func_start sub_8026E08
sub_8026E08:
push {r4-r6,lr}
sub sp, 0x40
adds r5, r0, 0
bl sub_8008C54
adds r0, r5, 0
bl sub_80073B8
ldr r6, _08026E78
ldr r4, _08026E7C
ldr r0, [r4]
ldr r1, [r0, 0x18]
adds r1, 0x4C
adds r0, r6, 0
movs r2, 0xA
bl sub_80922B4
add r0, sp, 0x2C
ldr r1, [r4]
ldr r1, [r1, 0x18]
movs r2, 0x8
ldrsh r1, [r1, r2]
bl sub_808D930
ldr r1, _08026E80
add r0, sp, 0x4
adds r2, r6, 0
bl sub_800D158
add r0, sp, 0x4
bl sub_8008ED0
adds r1, r0, 0
ldr r0, _08026E84
movs r2, 0xC
ldrsh r0, [r0, r2]
lsls r0, 3
subs r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
movs r1, 0
str r1, [sp]
movs r1, 0x3
add r2, sp, 0x4
adds r3, r5, 0
bl xxx_call_draw_string
adds r0, r5, 0
bl sub_80073E0
add sp, 0x40
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08026E78: .4byte gUnknown_202DF98
_08026E7C: .4byte gUnknown_203B2B8
_08026E80: .4byte gUnknown_80DD6E0
_08026E84: .4byte gUnknown_80DD370
thumb_func_end sub_8026E08
thumb_func_start sub_8026E88
sub_8026E88:
push {lr}
adds r1, r0, 0
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08026EAC
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08026E9C
movs r2, 0x1
_08026E9C:
cmp r2, 0
beq _08026EB0
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _08026EB0
_08026EAC:
movs r0, 0
b _08026EB2
_08026EB0:
movs r0, 0x1
_08026EB2:
pop {r1}
bx r1
thumb_func_end sub_8026E88
thumb_func_start sub_8026EB8
sub_8026EB8:
push {r4,lr}
adds r4, r0, 0
bl sub_808D3BC
cmp r0, r4
beq _08026EFA
bl sub_808D3F8
cmp r0, r4
beq _08026EFA
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _08026EFA
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _08026EDC
movs r1, 0x1
_08026EDC:
cmp r1, 0
beq _08026EEC
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _08026EFA
_08026EEC:
adds r0, r4, 0
bl sub_8026F04
cmp r0, 0x3
beq _08026EFA
movs r0, 0x1
b _08026EFC
_08026EFA:
movs r0, 0
_08026EFC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8026EB8
thumb_func_start sub_8026F04
sub_8026F04:
push {r4,lr}
adds r4, r0, 0
adds r0, 0x28
ldrb r0, [r0]
cmp r0, 0
bne _08026F14
movs r0, 0
b _08026F32
_08026F14:
bl sub_8090A34
cmp r0, 0x13
bgt _08026F20
movs r0, 0x1
b _08026F32
_08026F20:
adds r0, r4, 0
bl sub_8026F38
lsls r0, 24
cmp r0, 0
bne _08026F30
movs r0, 0x3
b _08026F32
_08026F30:
movs r0, 0x2
_08026F32:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8026F04
thumb_func_start sub_8026F38
sub_8026F38:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r5, 0
adds r4, 0x28
ldrb r0, [r4]
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _08026F74
ldrb r0, [r4]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08026F80
ldr r0, _08026F78
ldr r1, [r0]
ldrb r0, [r4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
adds r0, r5, 0
adds r0, 0x29
ldrb r0, [r0]
adds r1, r0
ldr r0, _08026F7C
cmp r1, r0
ble _08026F94
_08026F74:
movs r0, 0
b _08026F96
.align 2, 0
_08026F78: .4byte gUnknown_203B460
_08026F7C: .4byte 0x000003e7
_08026F80:
ldr r0, _08026F9C
ldr r1, [r0]
ldrb r0, [r4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
ldr r0, _08026FA0
cmp r1, r0
bhi _08026F74
_08026F94:
movs r0, 0x1
_08026F96:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08026F9C: .4byte gUnknown_203B460
_08026FA0: .4byte 0x000003e6
thumb_func_end sub_8026F38
thumb_func_start sub_8026FA4
sub_8026FA4:
push {r4,lr}
ldr r4, _08026FC0
ldr r0, [r4]
ldr r0, [r0, 0x18]
bl sub_8026F04
cmp r0, 0x1
beq _08026FC4
cmp r0, 0x1
bcc _08027068
cmp r0, 0x2
beq _08026FF8
b _08027068
.align 2, 0
_08026FC0: .4byte gUnknown_203B2B8
_08026FC4:
ldr r0, _08026FF4
bl sub_8011988
ldr r0, [r4]
adds r0, 0x14
bl sub_8091274
bl sub_80910B4
ldr r0, [r4]
movs r1, 0
strb r1, [r0, 0x14]
ldr r0, [r4]
strb r1, [r0, 0x15]
ldr r1, [r4]
movs r2, 0xA
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
movs r0, 0xA
bl sub_8026074
b _0802706E
.align 2, 0
_08026FF4: .4byte 0x0000014d
_08026FF8:
ldr r0, _08027024
bl sub_8011988
ldr r0, [r4]
ldrb r0, [r0, 0x14]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _0802702C
ldr r0, _08027028
ldr r1, [r0]
ldr r2, [r4]
ldrb r0, [r2, 0x14]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
ldrb r2, [r2, 0x15]
adds r0, r2
b _0802703E
.align 2, 0
_08027024: .4byte 0x0000014d
_08027028: .4byte gUnknown_203B460
_0802702C:
ldr r0, _08027060
ldr r1, [r0]
ldr r0, [r4]
ldrb r0, [r0, 0x14]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
_0802703E:
strh r0, [r1]
ldr r1, _08027064
ldr r0, [r1]
movs r2, 0
strb r2, [r0, 0x14]
ldr r0, [r1]
strb r2, [r0, 0x15]
ldr r1, [r1]
movs r2, 0xA
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
movs r0, 0xB
bl sub_8026074
b _0802706E
.align 2, 0
_08027060: .4byte gUnknown_203B460
_08027064: .4byte gUnknown_203B2B8
_08027068:
movs r0, 0x19
bl sub_8026074
_0802706E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8026FA4
thumb_func_start sub_8027074
sub_8027074:
push {r4,lr}
movs r0, 0
bl ResetSprites
ldr r4, _080270A0
movs r0, 0xF0
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0, 0x70]
str r1, [r0, 0x74]
str r1, [r0, 0x78]
movs r0, 0
bl sub_8027184
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080270A0: .4byte gUnknown_203B2BC
thumb_func_end sub_8027074
thumb_func_start sub_80270A4
sub_80270A4:
push {lr}
ldr r0, _080270BC
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x11
bhi _08027156
lsls r0, 2
ldr r1, _080270C0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080270BC: .4byte gUnknown_203B2BC
_080270C0: .4byte _080270C4
.align 2, 0
_080270C4:
.4byte _0802710C
.4byte _08027114
.4byte _08027114
.4byte _0802711A
.4byte _08027120
.4byte _08027126
.4byte _08027156
.4byte _08027156
.4byte _0802712C
.4byte _08027132
.4byte _08027138
.4byte _08027138
.4byte _0802713E
.4byte _08027144
.4byte _0802714A
.4byte _0802714A
.4byte _08027150
.4byte _0802715C
_0802710C:
movs r0, 0x1
bl sub_8027184
b _08027160
_08027114:
bl sub_80277FC
b _08027160
_0802711A:
bl sub_80278B4
b _08027160
_08027120:
bl sub_8027A40
b _08027160
_08027126:
bl sub_8027A5C
b _08027160
_0802712C:
bl sub_8027A78
b _08027160
_08027132:
bl sub_8027AE4
b _08027160
_08027138:
bl sub_8027B28
b _08027160
_0802713E:
bl sub_8027BD8
b _08027160
_08027144:
bl sub_8027C84
b _08027160
_0802714A:
bl sub_8027CA0
b _08027160
_08027150:
bl sub_8027D00
b _08027160
_08027156:
bl sub_8027D1C
b _08027160
_0802715C:
movs r0, 0x3
b _08027162
_08027160:
movs r0, 0
_08027162:
pop {r1}
bx r1
thumb_func_end sub_80270A4
thumb_func_start sub_8027168
sub_8027168:
push {r4,lr}
ldr r4, _08027180
ldr r0, [r4]
cmp r0, 0
beq _0802717A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802717A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08027180: .4byte gUnknown_203B2BC
thumb_func_end sub_8027168
thumb_func_start sub_8027184
sub_8027184:
push {lr}
ldr r1, _08027198
ldr r1, [r1]
str r0, [r1]
bl sub_802719C
bl sub_8027274
pop {r0}
bx r0
.align 2, 0
_08027198: .4byte gUnknown_203B2BC
thumb_func_end sub_8027184
thumb_func_start sub_802719C
sub_802719C:
push {r4-r7,lr}
ldr r4, _080271C0
ldr r0, [r4]
movs r1, 0xC0
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x3
beq _080271C8
cmp r0, 0xC
beq _08027208
movs r2, 0
ldr r3, _080271C4
b _08027234
.align 2, 0
_080271C0: .4byte gUnknown_203B2BC
_080271C4: .4byte gUnknown_80DD6EC
_080271C8:
movs r2, 0xE4
lsls r2, 1
adds r1, r2
ldr r0, _08027200
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
bl sub_802745C
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _08027204
ldm r1!, {r5-r7}
stm r2!, {r5-r7}
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldr r1, [r4]
adds r0, r1, r0
movs r7, 0x8E
lsls r7, 1
adds r1, r7
bl sub_8012CAC
b _08027254
.align 2, 0
_08027200: .4byte gUnknown_80DD74C
_08027204: .4byte gUnknown_80DD704
_08027208:
bl sub_80276A8
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _08027230
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
movs r6, 0x8E
lsls r6, 1
adds r1, r6
bl sub_8012CAC
b _08027254
.align 2, 0
_08027230: .4byte gUnknown_80DD71C
_08027234:
ldr r0, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r0, r1
movs r7, 0xC0
lsls r7, 1
adds r0, r7
adds r1, r3, 0
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r2, 0x1
cmp r2, 0x3
ble _08027234
_08027254:
bl sub_8004914
ldr r0, _08027270
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 1
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08027270: .4byte gUnknown_203B2BC
thumb_func_end sub_802719C
thumb_func_start sub_8027274
sub_8027274:
push {r4,lr}
sub sp, 0x18
ldr r1, _08027290
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x11
bls _08027286
b _0802744A
_08027286:
lsls r0, 2
ldr r1, _08027294
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027290: .4byte gUnknown_203B2BC
_08027294: .4byte _08027298
.align 2, 0
_08027298:
.4byte _0802744A
.4byte _080272E0
.4byte _080272EE
.4byte _080272F6
.4byte _0802731A
.4byte _08027328
.4byte _0802741C
.4byte _08027438
.4byte _080273B6
.4byte _080273D0
.4byte _08027334
.4byte _08027342
.4byte _0802734A
.4byte _08027374
.4byte _08027386
.4byte _080273AC
.4byte _08027404
.4byte _0802744A
_080272E0:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x7
bl sub_8023868
b _0802744A
_080272EE:
movs r0, 0x1
bl sub_8023B7C
b _0802744A
_080272F6:
ldr r1, [r4]
adds r1, 0x14
movs r0, 0x3
bl sub_8027D40
bl sub_8023DA4
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x7C
movs r3, 0x8E
lsls r3, 1
adds r1, r2, r3
movs r4, 0xB6
lsls r4, 1
adds r3, r2, r4
ldr r2, [r2, 0x70]
b _08027362
_0802731A:
ldr r0, [r4]
movs r1, 0x8
ldrsh r0, [r0, r1]
movs r1, 0x2
bl sub_8024458
b _0802744A
_08027328:
ldr r0, [r4]
movs r3, 0x8
ldrsh r0, [r0, r3]
bl sub_801BEEC
b _0802744A
_08027334:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _0802744A
_08027342:
movs r0, 0x1
bl sub_801A8D0
b _0802744A
_0802734A:
bl sub_801A9E0
ldr r0, _08027370
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x7C
movs r4, 0x8E
lsls r4, 1
adds r1, r2, r4
adds r4, 0x50
adds r3, r2, r4
ldr r2, [r2, 0x74]
_08027362:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _0802744A
.align 2, 0
_08027370: .4byte gUnknown_203B2BC
_08027374:
ldr r1, [r4]
adds r1, 0x10
add r0, sp, 0x14
bl sub_8090B64
add r0, sp, 0x14
bl sub_801B3C0
b _0802744A
_08027386:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldr r1, [r1, 0x18]
adds r1, 0x2C
bl sub_809401C
ldr r2, [r4]
movs r0, 0x8
ldrsh r1, [r2, r0]
adds r2, 0x28
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x3
movs r3, 0
bl sub_801EE10
b _0802744A
_080273AC:
movs r0, 0x1
movs r1, 0
bl sub_801F1B0
b _0802744A
_080273B6:
bl sub_8027794
ldr r0, _080273C8
ldr r1, _080273CC
ldr r3, [r1]
movs r1, 0x8E
lsls r1, 1
adds r3, r1
b _080273E0
.align 2, 0
_080273C8: .4byte gUnknown_80DD764
_080273CC: .4byte gUnknown_203B2BC
_080273D0:
bl sub_8027794
ldr r0, _080273FC
ldr r1, _08027400
ldr r3, [r1]
movs r4, 0x8E
lsls r4, 1
adds r3, r4
_080273E0:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _0802744A
.align 2, 0
_080273FC: .4byte gUnknown_80DD7FC
_08027400: .4byte gUnknown_203B2BC
_08027404:
ldr r2, [r4]
ldr r0, [r2, 0x20]
adds r1, r2, 0
adds r1, 0x28
adds r2, 0x68
bl sub_8093560
ldr r0, [r4]
adds r0, 0x68
bl sub_801F808
b _0802744A
_0802741C:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _08027430
ldr r3, _08027434
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0802744A
.align 2, 0
_08027430: .4byte gUnknown_80DD8A0
_08027434: .4byte 0x00000101
_08027438:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _08027454
ldr r3, _08027458
movs r1, 0
movs r2, 0
bl sub_80141B4
_0802744A:
add sp, 0x18
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08027454: .4byte gUnknown_80DD8D0
_08027458: .4byte 0x00000101
thumb_func_end sub_8027274
thumb_func_start sub_802745C
sub_802745C:
push {r4-r7,lr}
ldr r3, _080274E4
ldr r4, _080274E8
ldr r0, [r4]
movs r1, 0x8
ldrsh r2, [r0, r1]
movs r1, 0x58
muls r2, r1
ldr r1, [r3]
adds r5, r1, r2
movs r2, 0xB6
lsls r2, 1
adds r0, r2
movs r1, 0
movs r2, 0x14
bl MemoryFill16
ldrh r0, [r5]
lsrs r0, 1
movs r6, 0x1
ands r0, r6
cmp r0, 0
beq _080274F4
ldr r2, [r4]
movs r3, 0x8E
lsls r3, 1
adds r1, r2, r3
ldr r0, _080274EC
str r0, [r1]
movs r0, 0x90
lsls r0, 1
adds r1, r2, r0
movs r0, 0x7
str r0, [r1]
adds r0, r5, 0
bl sub_8027D9C
lsls r0, 24
cmp r0, 0
bne _080274B6
ldr r0, [r4]
movs r1, 0xB6
lsls r1, 1
adds r0, r1
strh r6, [r0]
_080274B6:
movs r7, 0x1
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _08027552
ldrb r0, [r5, 0x2]
cmp r0, 0
bne _08027552
ldr r3, [r4]
movs r2, 0x8
movs r4, 0x92
lsls r4, 1
adds r1, r3, r4
ldr r0, _080274F0
str r0, [r1]
movs r1, 0x94
lsls r1, 1
adds r0, r3, r1
str r2, [r0]
b _08027550
.align 2, 0
_080274E4: .4byte gUnknown_203B45C
_080274E8: .4byte gUnknown_203B2BC
_080274EC: .4byte gUnknown_80DD8F8
_080274F0: .4byte gUnknown_80DD904
_080274F4:
ldr r2, [r4]
movs r3, 0x8E
lsls r3, 1
adds r1, r2, r3
ldr r0, _08027658
str r0, [r1]
movs r0, 0x90
lsls r0, 1
adds r1, r2, r0
movs r0, 0x6
str r0, [r1]
movs r1, 0x8
ldrsh r0, [r2, r1]
bl sub_808D750
lsls r0, 24
cmp r0, 0
bne _08027522
ldr r0, [r4]
movs r2, 0xB6
lsls r2, 1
adds r0, r2
strh r6, [r0]
_08027522:
movs r7, 0x1
ldr r2, [r4]
movs r3, 0x92
lsls r3, 1
adds r1, r2, r3
ldr r0, _0802765C
str r0, [r1]
movs r0, 0x94
lsls r0, 1
adds r1, r2, r0
movs r0, 0x9
str r0, [r1]
adds r0, r5, 0
bl sub_8027DCC
lsls r0, 24
cmp r0, 0
bne _08027550
ldr r0, [r4]
movs r1, 0xB7
lsls r1, 1
adds r0, r1
strh r7, [r0]
_08027550:
movs r7, 0x2
_08027552:
ldr r4, _08027660
ldr r2, [r4]
lsls r3, r7, 3
movs r6, 0x8E
lsls r6, 1
adds r0, r2, r6
adds r0, r3
ldr r1, _08027664
str r1, [r0]
movs r5, 0x90
lsls r5, 1
adds r2, r5
adds r2, r3
movs r0, 0xA
str r0, [r2]
bl sub_8090A34
cmp r0, 0
bne _08027588
ldr r0, [r4]
lsls r1, r7, 1
movs r2, 0xB6
lsls r2, 1
adds r0, r2
adds r0, r1
movs r1, 0x1
strh r1, [r0]
_08027588:
adds r7, 0x1
ldr r2, [r4]
lsls r3, r7, 3
adds r0, r2, r6
adds r0, r3
ldr r1, _08027668
str r1, [r0]
adds r2, r5
adds r2, r3
movs r0, 0xB
str r0, [r2]
bl sub_8090A34
cmp r0, 0x13
bgt _080275AE
ldr r0, [r4]
ldrb r0, [r0, 0x14]
cmp r0, 0
bne _080275BE
_080275AE:
ldr r0, [r4]
lsls r1, r7, 1
movs r3, 0xB6
lsls r3, 1
adds r0, r3
adds r0, r1
movs r1, 0x1
strh r1, [r0]
_080275BE:
adds r7, 0x1
ldr r4, _08027660
ldr r5, [r4]
lsls r1, r7, 3
movs r0, 0x8E
lsls r0, 1
adds r3, r5, r0
adds r2, r3, r1
ldr r0, _0802766C
str r0, [r2]
movs r2, 0x90
lsls r2, 1
adds r6, r5, r2
adds r1, r6, r1
movs r0, 0x4
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _08027670
str r0, [r2]
adds r1, r6, r1
movs r0, 0xC
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _08027674
str r0, [r2]
adds r1, r6, r1
movs r0, 0x5
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r1, r6, r1
movs r0, 0x1
str r0, [r1]
movs r3, 0
mov r12, r4
cmp r3, r7
bge _08027636
adds r4, r6, 0
movs r0, 0xB6
lsls r0, 1
adds r2, r5, r0
_0802761E:
ldrh r0, [r2]
cmp r0, 0
bne _0802762C
ldr r1, [r4]
ldr r0, [r5, 0x70]
cmp r1, r0
beq _080276A0
_0802762C:
adds r4, 0x8
adds r2, 0x2
adds r3, 0x1
cmp r3, r7
blt _0802761E
_08027636:
movs r3, 0
cmp r3, r7
bge _080276A0
mov r2, r12
ldr r1, [r2]
movs r4, 0xB6
lsls r4, 1
adds r0, r1, r4
ldrh r0, [r0]
cmp r0, 0
bne _08027678
movs r2, 0x90
lsls r2, 1
adds r0, r1, r2
ldr r0, [r0]
str r0, [r1, 0x70]
b _080276A0
.align 2, 0
_08027658: .4byte gUnknown_80DD910
_0802765C: .4byte gUnknown_80DD91C
_08027660: .4byte gUnknown_203B2BC
_08027664: .4byte gUnknown_80DD92C
_08027668: .4byte gUnknown_80DD934
_0802766C: .4byte gUnknown_80DD93C
_08027670: .4byte gUnknown_80DD944
_08027674: .4byte gUnknown_80DD94C
_08027678:
adds r3, 0x1
cmp r3, r7
bge _080276A0
mov r4, r12
ldr r2, [r4]
lsls r0, r3, 1
movs r4, 0xB6
lsls r4, 1
adds r1, r2, r4
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08027678
lsls r0, r3, 3
movs r3, 0x90
lsls r3, 1
adds r1, r2, r3
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x70]
_080276A0:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802745C
thumb_func_start sub_80276A8
sub_80276A8:
push {r4-r7,lr}
ldr r5, _0802775C
ldr r0, [r5]
movs r7, 0xB6
lsls r7, 1
adds r0, r7
movs r1, 0
movs r2, 0x14
bl MemoryFill16
ldr r2, [r5]
movs r0, 0x8E
lsls r0, 1
adds r1, r2, r0
ldr r0, _08027760
str r0, [r1]
movs r3, 0x90
lsls r3, 1
adds r1, r2, r3
movs r0, 0xA
str r0, [r1]
bl sub_8090A34
cmp r0, 0
bne _080276E4
ldr r0, [r5]
adds r4, r7, 0
adds r0, r4
movs r1, 0x1
strh r1, [r0]
_080276E4:
ldr r4, [r5]
movs r2, 0x1
movs r0, 0x92
lsls r0, 1
adds r1, r4, r0
ldr r0, _08027764
ldr r0, [r0]
str r0, [r1]
movs r3, 0x94
lsls r3, 1
adds r1, r4, r3
movs r0, 0x4
str r0, [r1]
movs r6, 0x2
movs r0, 0x96
lsls r0, 1
adds r1, r4, r0
movs r0, 0
str r0, [r1]
movs r1, 0x98
lsls r1, 1
adds r0, r4, r1
str r2, [r0]
movs r3, 0
mov r12, r4
movs r4, 0x90
lsls r4, 1
add r4, r12
mov r0, r12
adds r2, r0, r7
_08027720:
ldrh r0, [r2]
cmp r0, 0
bne _08027730
ldr r1, [r4]
mov r7, r12
ldr r0, [r7, 0x74]
cmp r1, r0
beq _0802778E
_08027730:
adds r4, 0x8
adds r2, 0x2
adds r3, 0x1
cmp r3, r6
blt _08027720
movs r3, 0
cmp r3, r6
bge _0802778E
ldr r1, [r5]
movs r2, 0xB6
lsls r2, 1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0
bne _08027768
movs r3, 0x90
lsls r3, 1
adds r0, r1, r3
ldr r0, [r0]
str r0, [r1, 0x74]
b _0802778E
.align 2, 0
_0802775C: .4byte gUnknown_203B2BC
_08027760: .4byte gUnknown_80DD92C
_08027764: .4byte gUnknown_80D4970
_08027768:
adds r3, 0x1
cmp r3, r6
bge _0802778E
ldr r2, [r5]
lsls r0, r3, 1
movs r4, 0xB6
lsls r4, 1
adds r1, r2, r4
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08027768
lsls r0, r3, 3
movs r7, 0x90
lsls r7, 1
adds r1, r2, r7
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x74]
_0802778E:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80276A8
thumb_func_start sub_8027794
sub_8027794:
push {r4,lr}
ldr r4, _080277F0
ldr r0, [r4]
movs r1, 0xB6
lsls r1, 1
adds r0, r1
movs r1, 0
movs r2, 0x14
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
movs r0, 0x8E
lsls r0, 1
adds r1, r4, r0
ldr r0, _080277F4
ldr r0, [r0]
str r0, [r1]
movs r0, 0x90
lsls r0, 1
adds r1, r4, r0
movs r0, 0x2
str r0, [r1]
movs r2, 0x1
movs r0, 0x92
lsls r0, 1
adds r1, r4, r0
ldr r0, _080277F8
ldr r0, [r0]
str r0, [r1]
movs r0, 0x94
lsls r0, 1
adds r1, r4, r0
movs r0, 0x3
str r0, [r1]
movs r1, 0x96
lsls r1, 1
adds r0, r4, r1
str r3, [r0]
adds r1, 0x4
adds r0, r4, r1
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080277F0: .4byte gUnknown_203B2BC
_080277F4: .4byte gUnknown_80D4920
_080277F8: .4byte gUnknown_80D4928
thumb_func_end sub_8027794
thumb_func_start sub_80277FC
sub_80277FC:
push {r4,lr}
movs r0, 0x1
bl sub_8023A94
cmp r0, 0x4
bhi _080278AE
lsls r0, 2
ldr r1, _08027814
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027814: .4byte _08027818
.align 2, 0
_08027818:
.4byte _080278AE
.4byte _080278AE
.4byte _080278A4
.4byte _0802782C
.4byte _08027868
_0802782C:
bl sub_8023B44
ldr r4, _08027860
ldr r1, [r4]
strh r0, [r1, 0x8]
ldr r3, _08027864
movs r0, 0x8
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x18]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x1C]
ldr r1, [r4]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D7DC
movs r0, 0x3
bl sub_8027184
b _080278AE
.align 2, 0
_08027860: .4byte gUnknown_203B2BC
_08027864: .4byte gUnknown_203B45C
_08027868:
bl sub_8023B44
ldr r4, _0802789C
ldr r1, [r4]
strh r0, [r1, 0x8]
ldr r3, _080278A0
movs r0, 0x8
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x18]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x1C]
ldr r1, [r4]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D7DC
movs r0, 0x4
bl sub_8027184
b _080278AE
.align 2, 0
_0802789C: .4byte gUnknown_203B2BC
_080278A0: .4byte gUnknown_203B45C
_080278A4:
bl sub_8023C60
movs r0, 0x11
bl sub_8027184
_080278AE:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80277FC
thumb_func_start sub_80278B4
sub_80278B4:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8023A94
ldr r4, _080278F8
ldr r0, [r4]
adds r0, 0x7C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080278E4
ldr r0, [r4]
adds r0, 0x7C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _080278E4
ldr r0, [r4]
str r1, [r0, 0x70]
_080278E4:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0xB
bls _080278EE
b _08027A36
_080278EE:
lsls r0, 2
ldr r1, _080278FC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080278F8: .4byte gUnknown_203B2BC
_080278FC: .4byte _08027900
.align 2, 0
_08027900:
.4byte _08027A30
.4byte _08027A36
.4byte _08027A36
.4byte _08027A20
.4byte _08027A28
.4byte _08027930
.4byte _0802796C
.4byte _0802798C
.4byte _080279C0
.4byte _080279D0
.4byte _080279D8
.4byte _080279C8
_08027930:
ldr r4, _08027964
ldr r0, [r4]
movs r1, 0x8
ldrsh r0, [r0, r1]
bl sub_808D750
lsls r0, 24
cmp r0, 0
beq _0802795E
ldr r0, [r4]
movs r2, 0x8
ldrsh r1, [r0, r2]
movs r0, 0x58
muls r1, r0
ldr r0, _08027968
ldr r0, [r0]
adds r1, r0
ldrh r2, [r1]
movs r0, 0x2
orrs r0, r2
strh r0, [r1]
bl nullsub_104
_0802795E:
bl sub_808ED00
b _08027A0E
.align 2, 0
_08027964: .4byte gUnknown_203B2BC
_08027968: .4byte gUnknown_203B45C
_0802796C:
ldr r0, _08027984
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrh r1, [r2]
ldr r0, _08027988
ands r0, r1
strh r0, [r2]
bl nullsub_104
bl sub_808ED00
b _08027A0E
.align 2, 0
_08027984: .4byte gUnknown_203B2BC
_08027988: .4byte 0x0000fffd
_0802798C:
ldr r2, _080279B8
ldr r0, _080279BC
ldr r0, [r0]
movs r3, 0x8
ldrsh r1, [r0, r3]
movs r0, 0x58
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
bl sub_808D33C
ldrb r1, [r4, 0x2]
cmp r1, 0
bne _080279B2
strb r1, [r0, 0x2]
movs r0, 0x1
strb r0, [r4, 0x2]
bl nullsub_104
_080279B2:
bl sub_808ED00
b _08027A0E
.align 2, 0
_080279B8: .4byte gUnknown_203B45C
_080279BC: .4byte gUnknown_203B2BC
_080279C0:
movs r0, 0x8
bl sub_8027184
b _08027A36
_080279C8:
movs r0, 0xE
bl sub_8027184
b _08027A36
_080279D0:
movs r0, 0xA
bl sub_8027184
b _08027A36
_080279D8:
ldr r0, _08027A18
bl sub_8011988
ldr r4, _08027A1C
ldr r1, [r4]
ldrb r0, [r1, 0x14]
cmp r0, 0
beq _080279F0
adds r0, r1, 0
adds r0, 0x14
bl sub_8091274
_080279F0:
bl sub_80910B4
ldr r0, [r4]
movs r1, 0
strb r1, [r0, 0x14]
ldr r0, [r4]
strb r1, [r0, 0x15]
ldr r1, [r4]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
bl nullsub_104
_08027A0E:
movs r0, 0x2
bl sub_8027184
b _08027A36
.align 2, 0
_08027A18: .4byte 0x0000014d
_08027A1C: .4byte gUnknown_203B2BC
_08027A20:
movs r0, 0x4
bl sub_8027184
b _08027A36
_08027A28:
movs r0, 0x5
bl sub_8027184
b _08027A36
_08027A30:
movs r0, 0x2
bl sub_8027184
_08027A36:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80278B4
thumb_func_start sub_8027A40
sub_8027A40:
push {lr}
bl sub_80244E4
cmp r0, 0x1
bls _08027A58
cmp r0, 0x3
bhi _08027A58
bl sub_802453C
movs r0, 0x2
bl sub_8027184
_08027A58:
pop {r0}
bx r0
thumb_func_end sub_8027A40
thumb_func_start sub_8027A5C
sub_8027A5C:
push {lr}
bl sub_801BF48
cmp r0, 0x1
bls _08027A74
cmp r0, 0x3
bhi _08027A74
bl sub_801BF98
movs r0, 0x2
bl sub_8027184
_08027A74:
pop {r0}
bx r0
thumb_func_end sub_8027A5C
thumb_func_start sub_8027A78
sub_8027A78:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08027AD8
ldr r0, [sp]
cmp r0, 0x2
beq _08027AA2
cmp r0, 0x2
bgt _08027A96
cmp r0, 0x1
beq _08027A9A
b _08027AD8
_08027A96:
cmp r0, 0x3
bne _08027AD8
_08027A9A:
movs r0, 0x2
bl sub_8027184
b _08027AD8
_08027AA2:
ldr r0, _08027AB8
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrb r0, [r0, 0x4]
subs r0, 0x44
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08027ABC
movs r0, 0x1
b _08027ABE
.align 2, 0
_08027AB8: .4byte gUnknown_203B2BC
_08027ABC:
movs r0, 0
_08027ABE:
cmp r0, 0
beq _08027ACA
movs r0, 0x9
bl sub_8027184
b _08027AD8
_08027ACA:
bl sub_8027EB8
ldr r0, _08027AE0
ldr r0, [r0]
ldr r0, [r0, 0x18]
bl sub_808D31C
_08027AD8:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08027AE0: .4byte gUnknown_203B2BC
thumb_func_end sub_8027A78
thumb_func_start sub_8027AE4
sub_8027AE4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08027B1C
ldr r0, [sp]
cmp r0, 0x2
beq _08027B0E
cmp r0, 0x2
bgt _08027B02
cmp r0, 0x1
beq _08027B06
b _08027B1C
_08027B02:
cmp r0, 0x3
bne _08027B1C
_08027B06:
movs r0, 0x2
bl sub_8027184
b _08027B1C
_08027B0E:
bl sub_8027EB8
ldr r0, _08027B24
ldr r0, [r0]
ldr r0, [r0, 0x18]
bl sub_808D31C
_08027B1C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08027B24: .4byte gUnknown_203B2BC
thumb_func_end sub_8027AE4
thumb_func_start sub_8027B28
sub_8027B28:
push {r4,lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x4
bhi _08027BD2
lsls r0, 2
ldr r1, _08027B40
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027B40: .4byte _08027B44
.align 2, 0
_08027B44:
.4byte _08027BD2
.4byte _08027BD2
.4byte _08027BC8
.4byte _08027B58
.4byte _08027B8C
_08027B58:
bl sub_801A8AC
ldr r4, _08027B84
ldr r2, [r4]
str r0, [r2, 0xC]
ldr r3, _08027B88
ldr r1, [r3]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x2]
strb r0, [r2, 0x10]
ldr r2, [r4]
ldr r1, [r3]
ldr r0, [r2, 0xC]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x1]
strb r0, [r2, 0x11]
movs r0, 0xC
bl sub_8027184
b _08027BD2
.align 2, 0
_08027B84: .4byte gUnknown_203B2BC
_08027B88: .4byte gUnknown_203B460
_08027B8C:
bl sub_801A8AC
ldr r4, _08027BC0
ldr r2, [r4]
str r0, [r2, 0xC]
ldr r3, _08027BC4
ldr r1, [r3]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x2]
strb r0, [r2, 0x10]
ldr r2, [r4]
ldr r1, [r3]
ldr r0, [r2, 0xC]
lsls r0, 2
adds r1, r0
ldrb r0, [r1, 0x1]
strb r0, [r2, 0x11]
movs r0, 0
bl sub_8099690
movs r0, 0xD
bl sub_8027184
b _08027BD2
.align 2, 0
_08027BC0: .4byte gUnknown_203B2BC
_08027BC4: .4byte gUnknown_203B460
_08027BC8:
bl sub_801A928
movs r0, 0x2
bl sub_8027184
_08027BD2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8027B28
thumb_func_start sub_8027BD8
sub_8027BD8:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _08027C18
ldr r0, [r4]
adds r0, 0x7C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08027C08
ldr r0, [r4]
adds r0, 0x7C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08027C08
ldr r0, [r4]
str r1, [r0, 0x74]
_08027C08:
ldr r0, [sp]
cmp r0, 0x4
beq _08027C68
cmp r0, 0x4
bgt _08027C1C
cmp r0, 0x1
beq _08027C76
b _08027C7C
.align 2, 0
_08027C18: .4byte gUnknown_203B2BC
_08027C1C:
cmp r0, 0xA
bne _08027C7C
ldr r0, _08027C60
bl sub_8011988
ldr r4, _08027C64
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_80911F8
bl sub_80910B4
ldr r1, [r4]
ldrb r0, [r1, 0x14]
cmp r0, 0
beq _08027C44
adds r0, r1, 0
adds r0, 0x14
bl sub_8091274
_08027C44:
ldr r1, [r4]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x10
bl sub_808D800
bl sub_801A928
bl nullsub_104
movs r0, 0x2
bl sub_8027184
b _08027C7C
.align 2, 0
_08027C60: .4byte 0x0000014d
_08027C64: .4byte gUnknown_203B2BC
_08027C68:
movs r0, 0
bl sub_8099690
movs r0, 0xD
bl sub_8027184
b _08027C7C
_08027C76:
movs r0, 0xB
bl sub_8027184
_08027C7C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8027BD8
thumb_func_start sub_8027C84
sub_8027C84:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08027C9C
cmp r0, 0x3
bhi _08027C9C
bl sub_801B450
movs r0, 0xB
bl sub_8027184
_08027C9C:
pop {r0}
bx r0
thumb_func_end sub_8027C84
thumb_func_start sub_8027CA0
sub_8027CA0:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x4
bhi _08027CFA
lsls r0, 2
ldr r1, _08027CB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027CB8: .4byte _08027CBC
.align 2, 0
_08027CBC:
.4byte _08027CFA
.4byte _08027CFA
.4byte _08027CF0
.4byte _08027CD0
.4byte _08027CD0
_08027CD0:
bl sub_801F194
ldr r1, _08027CEC
ldr r1, [r1]
str r0, [r1, 0x20]
lsls r0, 3
adds r0, r1, r0
ldrh r0, [r0, 0x2A]
strh r0, [r1, 0x24]
movs r0, 0x10
bl sub_8027184
b _08027CFA
.align 2, 0
_08027CEC: .4byte gUnknown_203B2BC
_08027CF0:
bl sub_801F214
movs r0, 0x2
bl sub_8027184
_08027CFA:
pop {r0}
bx r0
thumb_func_end sub_8027CA0
thumb_func_start sub_8027D00
sub_8027D00:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _08027D18
cmp r0, 0x3
bhi _08027D18
bl sub_801F8D0
movs r0, 0xF
bl sub_8027184
_08027D18:
pop {r0}
bx r0
thumb_func_end sub_8027D00
thumb_func_start sub_8027D1C
sub_8027D1C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08027D34
ldr r0, _08027D3C
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8027184
_08027D34:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08027D3C: .4byte gUnknown_203B2BC
thumb_func_end sub_8027D1C
thumb_func_start sub_8027D40
sub_8027D40:
push {r4-r6,lr}
sub sp, 0x14
adds r6, r0, 0
adds r5, r1, 0
bl sub_8008C54
adds r0, r6, 0
bl sub_80073B8
add r4, sp, 0x10
adds r0, r4, 0
adds r1, r5, 0
bl sub_8090B64
movs r5, 0
str r5, [sp, 0x4]
add r0, sp, 0x4
strb r5, [r0, 0x4]
adds r1, r0, 0
movs r0, 0x1
strb r0, [r1, 0x8]
strb r0, [r4]
ldr r0, _08027D94
adds r1, r4, 0
add r2, sp, 0x4
bl sub_8090E14
ldr r2, _08027D98
str r5, [sp]
movs r0, 0x4
movs r1, 0x3
adds r3, r6, 0
bl sub_8014FF0
adds r0, r6, 0
bl sub_80073E0
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08027D94: .4byte gUnknown_202DE58
_08027D98: .4byte gUnknown_80DD958
thumb_func_end sub_8027D40
thumb_func_start sub_8027D9C
sub_8027D9C:
push {lr}
adds r1, r0, 0
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08027DC0
movs r2, 0
ldrb r0, [r1, 0x4]
cmp r0, 0x41
bne _08027DB0
movs r2, 0x1
_08027DB0:
cmp r2, 0
beq _08027DC4
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _08027DC4
_08027DC0:
movs r0, 0
b _08027DC6
_08027DC4:
movs r0, 0x1
_08027DC6:
pop {r1}
bx r1
thumb_func_end sub_8027D9C
thumb_func_start sub_8027DCC
sub_8027DCC:
push {r4,lr}
adds r4, r0, 0
bl sub_808D3BC
cmp r0, r4
beq _08027E0E
bl sub_808D3F8
cmp r0, r4
beq _08027E0E
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _08027E0E
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _08027DF0
movs r1, 0x1
_08027DF0:
cmp r1, 0
beq _08027E00
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _08027E0E
_08027E00:
adds r0, r4, 0
bl sub_8027E18
cmp r0, 0x3
beq _08027E0E
movs r0, 0x1
b _08027E10
_08027E0E:
movs r0, 0
_08027E10:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8027DCC
thumb_func_start sub_8027E18
sub_8027E18:
push {r4,lr}
adds r4, r0, 0
adds r0, 0x28
ldrb r0, [r0]
cmp r0, 0
bne _08027E28
movs r0, 0
b _08027E46
_08027E28:
bl sub_8090A34
cmp r0, 0x13
bgt _08027E34
movs r0, 0x1
b _08027E46
_08027E34:
adds r0, r4, 0
bl sub_8027E4C
lsls r0, 24
cmp r0, 0
bne _08027E44
movs r0, 0x3
b _08027E46
_08027E44:
movs r0, 0x2
_08027E46:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8027E18
thumb_func_start sub_8027E4C
sub_8027E4C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r5, 0
adds r4, 0x28
ldrb r0, [r4]
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _08027E88
ldrb r0, [r4]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08027E94
ldr r0, _08027E8C
ldr r1, [r0]
ldrb r0, [r4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
adds r0, r5, 0
adds r0, 0x29
ldrb r0, [r0]
adds r1, r0
ldr r0, _08027E90
cmp r1, r0
ble _08027EA8
_08027E88:
movs r0, 0
b _08027EAA
.align 2, 0
_08027E8C: .4byte gUnknown_203B460
_08027E90: .4byte 0x000003e7
_08027E94:
ldr r0, _08027EB0
ldr r1, [r0]
ldrb r0, [r4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
ldr r0, _08027EB4
cmp r1, r0
bhi _08027E88
_08027EA8:
movs r0, 0x1
_08027EAA:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08027EB0: .4byte gUnknown_203B460
_08027EB4: .4byte 0x000003e6
thumb_func_end sub_8027E4C
thumb_func_start sub_8027EB8
sub_8027EB8:
push {r4,lr}
ldr r4, _08027ED4
ldr r0, [r4]
ldr r0, [r0, 0x18]
bl sub_8027E18
cmp r0, 0x1
beq _08027ED8
cmp r0, 0x1
bcc _08027F7C
cmp r0, 0x2
beq _08027F0C
b _08027F7C
.align 2, 0
_08027ED4: .4byte gUnknown_203B2BC
_08027ED8:
ldr r0, _08027F08
bl sub_8011988
ldr r0, [r4]
adds r0, 0x14
bl sub_8091274
bl sub_80910B4
ldr r0, [r4]
movs r1, 0
strb r1, [r0, 0x14]
ldr r0, [r4]
strb r1, [r0, 0x15]
ldr r1, [r4]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
movs r0, 0x6
bl sub_8027184
b _08027F82
.align 2, 0
_08027F08: .4byte 0x0000014d
_08027F0C:
ldr r0, _08027F38
bl sub_8011988
ldr r0, [r4]
ldrb r0, [r0, 0x14]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _08027F40
ldr r0, _08027F3C
ldr r1, [r0]
ldr r2, [r4]
ldrb r0, [r2, 0x14]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
ldrb r2, [r2, 0x15]
adds r0, r2
b _08027F52
.align 2, 0
_08027F38: .4byte 0x0000014d
_08027F3C: .4byte gUnknown_203B460
_08027F40:
ldr r0, _08027F74
ldr r1, [r0]
ldr r0, [r4]
ldrb r0, [r0, 0x14]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
adds r0, 0x1
_08027F52:
strh r0, [r1]
ldr r1, _08027F78
ldr r0, [r1]
movs r2, 0
strb r2, [r0, 0x14]
ldr r0, [r1]
strb r2, [r0, 0x15]
ldr r1, [r1]
movs r2, 0x8
ldrsh r0, [r1, r2]
adds r1, 0x14
bl sub_808D800
movs r0, 0x7
bl sub_8027184
b _08027F82
.align 2, 0
_08027F74: .4byte gUnknown_203B460
_08027F78: .4byte gUnknown_203B2BC
_08027F7C:
movs r0, 0x2
bl sub_8027184
_08027F82:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8027EB8
thumb_func_start sub_8027F88
sub_8027F88:
push {r4-r6,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08028050
movs r4, 0xA9
lsls r4, 3
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
ldr r1, [r5]
ldr r2, _08028054
adds r0, r1, r2
movs r6, 0
str r6, [r0]
movs r3, 0x86
lsls r3, 2
adds r1, r3
movs r0, 0xFF
strb r0, [r1]
ldr r0, [r5]
ldr r1, _08028058
adds r0, r1
ldr r1, _0802805C
strh r1, [r0]
ldr r0, _08028060
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _08028064
bl strcpy
adds r0, r4, 0
bl sub_808DDD0
ldr r2, [r5]
movs r3, 0x84
lsls r3, 3
adds r1, r2, r3
str r0, [r1]
adds r3, 0x4
adds r1, r2, r3
ldr r0, [r0, 0x4]
str r0, [r1]
ldr r0, _08028068
adds r2, r0
strb r6, [r2]
ldr r0, [r5]
ldr r1, _0802806C
adds r0, r1
strb r6, [r0]
ldr r0, [r5]
ldr r2, _08028070
adds r0, r2
strb r6, [r0]
ldr r1, [r5]
adds r3, 0x4
adds r2, r1, r3
movs r0, 0x2
strh r0, [r2]
ldr r0, _08028074
adds r1, r0
movs r0, 0x8
strh r0, [r1]
movs r2, 0
movs r3, 0
adds r1, r5, 0
_0802802E:
ldr r0, [r5]
adds r0, 0x8
adds r0, r2
strb r3, [r0]
adds r2, 0x1
cmp r2, 0x35
ble _0802802E
ldr r1, [r1]
movs r0, 0x3D
str r0, [r1]
movs r0, 0
bl sub_8028B04
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08028050: .4byte gUnknown_203B2C0
_08028054: .4byte 0x0000053c
_08028058: .4byte 0x00000544
_0802805C: .4byte 0x0000ffff
_08028060: .4byte gUnknown_202E5D8
_08028064: .4byte gUnknown_202DF98
_08028068: .4byte 0x0000042c
_0802806C: .4byte 0x0000042d
_08028070: .4byte 0x0000042e
_08028074: .4byte 0x0000042a
thumb_func_end sub_8027F88
thumb_func_start sub_8028078
sub_8028078:
push {lr}
ldr r0, _08028090
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x3C
bls _08028086
b _080282D4
_08028086:
lsls r0, 2
ldr r1, _08028094
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028090: .4byte gUnknown_203B2C0
_08028094: .4byte _08028098
.align 2, 0
_08028098:
.4byte _080282C4
.4byte _080282C4
.4byte _080282CA
.4byte _080282D0
.4byte _08028222
.4byte _08028234
.4byte _08028228
.4byte _0802822E
.4byte _0802823A
.4byte _080281FE
.4byte _08028272
.4byte _08028278
.4byte _0802828C
.4byte _0802827E
.4byte _0802828C
.4byte _0802827E
.4byte _0802828C
.4byte _08028286
.4byte _08028294
.4byte _0802829A
.4byte _080282B2
.4byte _080282B8
.4byte _080282BE
.4byte _080282A0
.4byte _080282A6
.4byte _080282AC
.4byte _08028240
.4byte _08028248
.4byte _0802824E
.4byte _0802824E
.4byte _0802825A
.4byte _0802826C
.4byte _08028260
.4byte _08028266
.4byte _08028254
.4byte _08028204
.4byte _0802820A
.4byte _080282CA
.4byte _08028210
.4byte _08028216
.4byte _0802821C
.4byte _080281E0
.4byte _080281F2
.4byte _080281E6
.4byte _080281EC
.4byte _080281DA
.4byte _080281D4
.4byte _080281F8
.4byte _080281CE
.4byte _080281C2
.4byte _080281AA
.4byte _080281B0
.4byte _080281B6
.4byte _080281BC
.4byte _080281C8
.4byte _080281A4
.4byte _0802819E
.4byte _080282CA
.4byte _08028192
.4byte _08028198
.4byte _0802818C
_0802818C:
bl sub_8029B34
b _080282D4
_08028192:
bl sub_8029AD8
b _080282D4
_08028198:
bl sub_8029AF4
b _080282D4
_0802819E:
bl sub_8029A88
b _080282D4
_080281A4:
bl sub_8029AB0
b _080282D4
_080281AA:
bl sub_80297B8
b _080282D4
_080281B0:
bl sub_80297D4
b _080282D4
_080281B6:
bl sub_8029884
b _080282D4
_080281BC:
bl sub_8029944
b _080282D4
_080281C2:
bl sub_80299AC
b _080282D4
_080281C8:
bl sub_80299D8
b _080282D4
_080281CE:
bl sub_8029A6C
b _080282D4
_080281D4:
bl sub_8029A18
b _080282D4
_080281DA:
bl sub_80295A8
b _080282D4
_080281E0:
bl sub_8029668
b _080282D4
_080281E6:
bl sub_8029684
b _080282D4
_080281EC:
bl sub_8029740
b _080282D4
_080281F2:
bl sub_80295D8
b _080282D4
_080281F8:
bl sub_802979C
b _080282D4
_080281FE:
bl sub_8029358
b _080282D4
_08028204:
bl sub_8029374
b _080282D4
_0802820A:
bl sub_802939C
b _080282D4
_08028210:
bl sub_80293D8
b _080282D4
_08028216:
bl sub_80293F4
b _080282D4
_0802821C:
bl sub_802955C
b _080282D4
_08028222:
bl sub_80292A4
b _080282D4
_08028228:
bl sub_80292EC
b _080282D4
_0802822E:
bl sub_802933C
b _080282D4
_08028234:
bl sub_802958C
b _080282D4
_0802823A:
bl sub_8029208
b _080282D4
_08028240:
movs r0, 0x1
bl sub_8028DE8
b _080282D4
_08028248:
bl sub_8028F80
b _080282D4
_0802824E:
bl sub_8028FC0
b _080282D4
_08028254:
bl sub_8028FDC
b _080282D4
_0802825A:
bl sub_80290D4
b _080282D4
_08028260:
bl sub_80290F0
b _080282D4
_08028266:
bl sub_80291AC
b _080282D4
_0802826C:
bl sub_8029044
b _080282D4
_08028272:
bl sub_8028CFC
b _080282D4
_08028278:
bl sub_8028D4C
b _080282D4
_0802827E:
movs r0, 0xA
bl sub_8028DE8
b _080282D4
_08028286:
bl sub_8028E08
b _080282D4
_0802828C:
movs r0, 0x19
bl sub_8028DE8
b _080282D4
_08028294:
bl sub_8028E24
b _080282D4
_0802829A:
bl sub_8028E54
b _080282D4
_080282A0:
bl sub_8028E84
b _080282D4
_080282A6:
bl sub_8028EAC
b _080282D4
_080282AC:
bl sub_8028ED4
b _080282D4
_080282B2:
bl sub_8028F04
b _080282D4
_080282B8:
bl sub_8028F30
b _080282D4
_080282BE:
bl sub_8028F58
b _080282D4
_080282C4:
bl sub_8028BF0
b _080282D4
_080282CA:
bl sub_8028CE0
b _080282D4
_080282D0:
movs r0, 0x3
b _080282D6
_080282D4:
movs r0, 0
_080282D6:
pop {r1}
bx r1
thumb_func_end sub_8028078
thumb_func_start sub_80282DC
sub_80282DC:
ldr r1, _080282F4
ldr r1, [r1]
movs r3, 0x86
lsls r3, 2
adds r2, r1, r3
ldrb r2, [r2]
strb r2, [r0]
ldr r0, _080282F8
adds r1, r0
ldr r0, [r1]
bx lr
.align 2, 0
_080282F4: .4byte gUnknown_203B2C0
_080282F8: .4byte 0x0000053c
thumb_func_end sub_80282DC
thumb_func_start sub_80282FC
sub_80282FC:
push {r4,lr}
ldr r4, _08028340
ldr r0, [r4]
cmp r0, 0
beq _08028338
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
bl sub_8031E10
bl sub_8023C60
bl sub_803084C
bl sub_80155F0
bl sub_80310B4
bl sub_8030DE4
bl sub_802453C
_08028338:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08028340: .4byte gUnknown_203B2C0
thumb_func_end sub_80282FC
thumb_func_start nullsub_130
nullsub_130:
bx lr
thumb_func_end nullsub_130
thumb_func_start sub_8028348
sub_8028348:
push {r4-r6,lr}
sub sp, 0x14
ldr r1, _08028368
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r6, r1, 0
cmp r0, 0x3C
bls _0802835C
bl _08028AF2
_0802835C:
lsls r0, 2
ldr r1, _0802836C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028368: .4byte gUnknown_203B2C0
_0802836C: .4byte _08028370
.align 2, 0
_08028370:
.4byte _08028A84
.4byte _08028AB4
.4byte _08028AE0
.4byte _08028AF2
.4byte _08028650
.4byte _08028660
.4byte _08028678
.4byte _08028AF2
.4byte _08028802
.4byte _08028640
.4byte _0802890C
.4byte _08028948
.4byte _08028988
.4byte _08028978
.4byte _080289A0
.4byte _08028990
.4byte _080289B8
.4byte _080289B0
.4byte _080289C8
.4byte _080289E8
.4byte _08028A48
.4byte _08028A58
.4byte _08028A68
.4byte _080289F8
.4byte _08028A08
.4byte _08028A18
.4byte _08028850
.4byte _08028860
.4byte _08028868
.4byte _08028878
.4byte _08028890
.4byte _080288A0
.4byte _080288C6
.4byte _08028AF2
.4byte _08028888
.4byte _08028790
.4byte _08028AF2
.4byte _080287C4
.4byte _080287D4
.4byte _080287DC
.4byte _08028AF2
.4byte _080285CC
.4byte _080285DC
.4byte _080288C6
.4byte _08028AF2
.4byte _080285AC
.4byte _08028610
.4byte _080285F8
.4byte _08028600
.4byte _0802856C
.4byte _080284F4
.4byte _0802850C
.4byte _08028532
.4byte _08028AF2
.4byte _0802859C
.4byte _080284B8
.4byte _080284A8
.4byte _080284EC
.4byte _080284A0
.4byte _08028464
.4byte _08028490
_08028464:
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r6]
movs r2, 0x86
lsls r2, 2
adds r0, r2
ldrb r0, [r0]
movs r1, 0
bl sub_8031D70
b _08028AF2
_08028490:
ldr r0, _0802849C
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_0802849C: .4byte gUnknown_80DDBA8
_080284A0:
ldr r0, _080284A4
b _08028A6A
.align 2, 0
_080284A4: .4byte gUnknown_80DDBFC
_080284A8:
ldr r0, _080284B4
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_080284B4: .4byte gUnknown_80DDC30
_080284B8:
ldr r0, [r6]
ldr r2, _080284D0
adds r0, r2
ldr r0, [r0]
cmp r0, 0xE
bne _080284C6
b _08028AF2
_080284C6:
cmp r0, 0xE
bhi _080284D4
cmp r0, 0xD
beq _080284DA
b _08028AF2
.align 2, 0
_080284D0: .4byte 0x00000534
_080284D4:
cmp r0, 0x10
bls _080284DA
b _08028AF2
_080284DA:
ldr r0, _080284E8
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080284E8: .4byte gUnknown_80DDC70
_080284EC:
ldr r0, _080284F0
b _08028A6A
.align 2, 0
_080284F0: .4byte gUnknown_80DDC30
_080284F4:
ldr r0, _08028504
ldr r3, _08028508
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08028AF2
.align 2, 0
_08028504: .4byte gUnknown_80DDCBC
_08028508: .4byte 0x00000101
_0802850C:
bl sub_8023CE8
cmp r0, 0
beq _08028516
b _08028AF2
_08028516:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0x9
bl sub_8023868
b _08028AF2
_08028532:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _08028564
ldr r2, _08028568
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_8023DA4
b _080288F6
.align 2, 0
_08028564: .4byte gUnknown_80DDAE4
_08028568: .4byte gUnknown_80DDAFC
_0802856C:
ldr r0, _08028594
ldr r3, _08028598
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xA
bl sub_8014248
b _08028AF2
.align 2, 0
_08028594: .4byte gUnknown_80DDD2C
_08028598: .4byte gUnknown_80DDAA0
_0802859C:
ldr r0, _080285A4
ldr r3, _080285A8
b _08028A1C
.align 2, 0
_080285A4: .4byte gUnknown_80DDD88
_080285A8: .4byte gUnknown_80DDA80
_080285AC:
ldr r0, _080285C4
ldr r3, _080285C8
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
b _08028A2E
.align 2, 0
_080285C4: .4byte gUnknown_80DDDBC
_080285C8: .4byte gUnknown_80DDA64
_080285CC:
ldr r0, _080285D8
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080285D8: .4byte gUnknown_80DDDD8
_080285DC:
bl sub_8030894
cmp r0, 0
beq _080285E6
b _08028AF2
_080285E6:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x4
b _080288BA
_080285F8:
ldr r0, _080285FC
b _08028A6A
.align 2, 0
_080285FC: .4byte gUnknown_80DDE20
_08028600:
ldr r0, _0802860C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_0802860C: .4byte gUnknown_80DDE58
_08028610:
ldr r0, _08028638
ldr r3, _0802863C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x11
bl sub_8014248
b _08028AF2
.align 2, 0
_08028638: .4byte gUnknown_80DDEC0
_0802863C: .4byte gUnknown_80DDB60
_08028640:
ldr r0, _0802864C
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_0802864C: .4byte gUnknown_80DDF2C
_08028650:
ldr r0, _08028658
ldr r3, _0802865C
b _08028A1C
.align 2, 0
_08028658: .4byte gUnknown_80DDFB8
_0802865C: .4byte gUnknown_80DDA48
_08028660:
movs r0, 0
bl nullsub_23
ldr r0, _08028674
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
b _08028AF2
.align 2, 0
_08028674: .4byte gUnknown_80DE01C
_08028678:
ldr r1, [r6]
movs r0, 0
str r0, [r1, 0x44]
bl sub_8011830
ldr r0, [r6]
ldr r0, [r0, 0x40]
bl sub_8037B28
adds r4, r0, 0
ldr r0, [r6]
str r4, [r0, 0x44]
cmp r4, 0
bne _0802878A
ldr r1, [r0, 0x40]
cmp r1, 0x3
beq _080286A0
cmp r1, 0x4
beq _080286C2
b _08028748
_080286A0:
adds r0, 0x48
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
adds r0, 0x78
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0x48
adds r2, 0x78
b _08028740
_080286C2:
adds r0, 0xA8
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r0, [r6]
movs r5, 0x98
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xE0
strh r4, [r0]
movs r2, 0xB4
lsls r2, 1
adds r0, r1, r2
strh r4, [r0]
movs r3, 0x86
lsls r3, 2
adds r0, r1, r3
ldrb r0, [r0]
bl sub_8095228
ldr r1, [r6]
adds r1, 0xA8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r6]
ldr r4, _08028760
adds r3, r2, r4
movs r0, 0
ldrsh r1, [r3, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08028736
adds r0, r2, 0
adds r0, 0xD8
ldr r1, _08028764
ldr r1, [r1]
movs r2, 0
ldrsh r3, [r3, r2]
movs r2, 0x58
muls r2, r3
adds r1, r2
movs r2, 0x58
bl memcpy
_08028736:
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0xA8
adds r2, r5
_08028740:
bl sub_8037D64
ldr r1, [r6]
str r0, [r1, 0x44]
_08028748:
ldr r4, _08028768
ldr r2, [r4]
ldr r0, [r2, 0x44]
cmp r0, 0
bne _0802878A
ldr r0, [r2, 0x40]
cmp r0, 0x3
beq _0802876C
cmp r0, 0x4
beq _08028776
b _0802878A
.align 2, 0
_08028760: .4byte 0x00000544
_08028764: .4byte gUnknown_203B45C
_08028768: .4byte gUnknown_203B2C0
_0802876C:
adds r1, r2, 0
adds r1, 0x48
adds r2, 0x78
movs r0, 0x3
b _08028782
_08028776:
adds r1, r2, 0
adds r1, 0xA8
movs r3, 0x98
lsls r3, 1
adds r2, r3
movs r0, 0x4
_08028782:
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x44]
_0802878A:
bl sub_8011854
b _08028AF2
_08028790:
ldr r0, [r6]
ldr r4, _080287A8
adds r0, r4
ldr r0, [r0]
cmp r0, 0xE
bne _0802879E
b _08028AF2
_0802879E:
cmp r0, 0xE
bhi _080287AC
cmp r0, 0xD
beq _080287B2
b _08028AF2
.align 2, 0
_080287A8: .4byte 0x00000534
_080287AC:
cmp r0, 0x10
bls _080287B2
b _08028AF2
_080287B2:
ldr r0, _080287C0
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_080287C0: .4byte gUnknown_80DE06C
_080287C4:
ldr r0, _080287D0
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080287D0: .4byte gUnknown_80DE0C0
_080287D4:
ldr r0, _080287D8
b _08028A6A
.align 2, 0
_080287D8: .4byte gUnknown_80DE124
_080287DC:
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r6]
adds r1, 0x8
movs r0, 0x4
bl sub_80151C0
b _08028AF2
_08028802:
ldr r4, [r6]
movs r2, 0xA7
lsls r2, 3
adds r0, r4, r2
ldr r2, [r0]
cmp r2, 0
beq _08028816
cmp r2, 0x2
beq _08028824
b _08028AF2
_08028816:
ldr r0, _0802881C
ldr r3, _08028820
b _0802882A
.align 2, 0
_0802881C: .4byte gUnknown_80DE178
_08028820: .4byte gUnknown_80DDB24
_08028824:
ldr r0, _08028848
ldr r3, _0802884C
movs r2, 0
_0802882A:
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r2, 0x84
lsls r2, 3
adds r1, r4, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xD
bl sub_8014248
b _08028AF2
.align 2, 0
_08028848: .4byte gUnknown_80DE1B4
_0802884C: .4byte gUnknown_80DDB24
_08028850:
ldr r0, _0802885C
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_0802885C: .4byte gUnknown_80DE1E4
_08028860:
ldr r0, _08028864
b _08028A6A
.align 2, 0
_08028864: .4byte gUnknown_80DE280
_08028868:
ldr r0, _08028874
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_08028874: .4byte gUnknown_80DE2B0
_08028878:
ldr r0, _08028884
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028884: .4byte gUnknown_80DE368
_08028888:
ldr r0, _0802888C
b _08028A1A
.align 2, 0
_0802888C: .4byte gUnknown_80DDDBC
_08028890:
ldr r0, _0802889C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_0802889C: .4byte gUnknown_80DE430
_080288A0:
bl sub_8030894
cmp r0, 0
beq _080288AA
b _08028AF2
_080288AA:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x2
_080288BA:
movs r1, 0
movs r2, 0
movs r3, 0x6
bl sub_80306A8
b _08028AF2
_080288C6:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _08028904
ldr r2, _08028908
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_803092C
_080288F6:
ldr r0, [r6]
adds r0, r5
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
b _08028AF2
.align 2, 0
_08028904: .4byte gUnknown_80DDACC
_08028908: .4byte gUnknown_80DDAFC
_0802890C:
bl sub_8095350
ldr r1, _0802893C
ldr r1, [r1]
movs r3, 0xA8
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
movs r4, 0xA7
lsls r4, 3
adds r1, r4
ldr r1, [r1]
cmp r1, 0x6
beq _08028940
cmp r1, 0x6
bls _0802892E
b _08028AF2
_0802892E:
cmp r1, 0x5
beq _08028934
b _08028AF2
_08028934:
movs r0, 0x2
bl sub_8030F58
b _08028AF2
.align 2, 0
_0802893C: .4byte gUnknown_203B2C0
_08028940:
movs r0, 0x4
bl sub_8030F58
b _08028AF2
_08028948:
ldr r0, _08028970
ldr r3, _08028974
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x5
bl sub_8014248
b _08028AF2
.align 2, 0
_08028970: .4byte gUnknown_80DE48C
_08028974: .4byte gUnknown_80DD9EC
_08028978:
ldr r0, _08028984
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028984: .4byte gUnknown_80DE4B8
_08028988:
ldr r0, _0802898C
b _08028A6A
.align 2, 0
_0802898C: .4byte gUnknown_80DE4F0
_08028990:
ldr r0, _0802899C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_0802899C: .4byte gUnknown_80DE524
_080289A0:
ldr r0, _080289AC
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_080289AC: .4byte gUnknown_80DE614
_080289B0:
ldr r0, _080289B4
b _08028A6A
.align 2, 0
_080289B4: .4byte gUnknown_80DE648
_080289B8:
ldr r0, _080289C4
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_080289C4: .4byte gUnknown_80DE694
_080289C8:
ldr r0, _080289E0
ldr r3, _080289E4
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
b _08028A2E
.align 2, 0
_080289E0: .4byte gUnknown_80DE6D4
_080289E4: .4byte gUnknown_80DDA48
_080289E8:
ldr r0, _080289F0
ldr r3, _080289F4
b _08028A1C
.align 2, 0
_080289F0: .4byte gUnknown_80DE754
_080289F4: .4byte gUnknown_80DDA48
_080289F8:
ldr r0, _08028A04
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_08028A04: .4byte gUnknown_80DE7B8
_08028A08:
ldr r0, _08028A14
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028A14: .4byte gUnknown_80DE7E8
_08028A18:
ldr r0, _08028A40
_08028A1A:
ldr r3, _08028A44
_08028A1C:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r4, 0x84
lsls r4, 3
adds r1, r4
_08028A2E:
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x8
bl sub_8014248
b _08028AF2
.align 2, 0
_08028A40: .4byte gUnknown_80DE808
_08028A44: .4byte gUnknown_80DDA64
_08028A48:
ldr r0, _08028A54
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _08028A72
.align 2, 0
_08028A54: .4byte gUnknown_80DE830
_08028A58:
ldr r0, _08028A64
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _08028A72
.align 2, 0
_08028A64: .4byte gUnknown_80DE864
_08028A68:
ldr r0, _08028A7C
_08028A6A:
ldr r2, [r6]
movs r4, 0x84
lsls r4, 3
adds r2, r4
_08028A72:
ldr r3, _08028A80
movs r1, 0
bl sub_80141B4
b _08028AF2
.align 2, 0
_08028A7C: .4byte gUnknown_80DE7E8
_08028A80: .4byte 0x0000010d
_08028A84:
ldr r0, _08028AAC
ldr r3, _08028AB0
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0
bl sub_8014248
b _08028AF2
.align 2, 0
_08028AAC: .4byte gUnknown_80DE8B4
_08028AB0: .4byte gUnknown_80DD970
_08028AB4:
ldr r0, _08028AD8
ldr r3, _08028ADC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r4, 0x84
lsls r4, 3
adds r1, r4
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _08028AF2
.align 2, 0
_08028AD8: .4byte gUnknown_80DE918
_08028ADC: .4byte gUnknown_80DD970
_08028AE0:
ldr r0, _08028AFC
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _08028B00
movs r1, 0
bl sub_80141B4
_08028AF2:
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08028AFC: .4byte gUnknown_80DE93C
_08028B00: .4byte 0x0000010d
thumb_func_end sub_8028348
thumb_func_start sub_8028B04
sub_8028B04:
push {lr}
ldr r1, _08028B18
ldr r1, [r1]
str r0, [r1, 0x4]
bl nullsub_130
bl sub_8028348
pop {r0}
bx r0
.align 2, 0
_08028B18: .4byte gUnknown_203B2C0
thumb_func_end sub_8028B04
thumb_func_start sub_8028B1C
sub_8028B1C:
push {lr}
cmp r0, 0xF
bhi _08028BE0
lsls r0, 2
ldr r1, _08028B2C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028B2C: .4byte _08028B30
.align 2, 0
_08028B30:
.4byte _08028BE0
.4byte _08028BA8
.4byte _08028BA8
.4byte _08028B70
.4byte _08028B78
.4byte _08028BA8
.4byte _08028B80
.4byte _08028B88
.4byte _08028BE0
.4byte _08028B90
.4byte _08028BE0
.4byte _08028B98
.4byte _08028BE0
.4byte _08028BA0
.4byte _08028BA8
.4byte _08028BCC
_08028B70:
ldr r0, _08028B74
b _08028BAA
.align 2, 0
_08028B74: .4byte gUnknown_80DE98C
_08028B78:
ldr r0, _08028B7C
b _08028BAA
.align 2, 0
_08028B7C: .4byte gUnknown_80DE9F0
_08028B80:
ldr r0, _08028B84
b _08028BAA
.align 2, 0
_08028B84: .4byte gUnknown_80DEA58
_08028B88:
ldr r0, _08028B8C
b _08028BAA
.align 2, 0
_08028B8C: .4byte gUnknown_80DEAB4
_08028B90:
ldr r0, _08028B94
b _08028BAA
.align 2, 0
_08028B94: .4byte gUnknown_80DEB18
_08028B98:
ldr r0, _08028B9C
b _08028BAA
.align 2, 0
_08028B9C: .4byte gUnknown_80DEB18
_08028BA0:
ldr r0, _08028BA4
b _08028BAA
.align 2, 0
_08028BA4: .4byte gUnknown_80DEB54
_08028BA8:
ldr r0, _08028BC0
_08028BAA:
ldr r1, _08028BC4
ldr r2, [r1]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _08028BC8
movs r1, 0
bl sub_80141B4
b _08028BE0
.align 2, 0
_08028BC0: .4byte gUnknown_80DE954
_08028BC4: .4byte gUnknown_203B2C0
_08028BC8: .4byte 0x0000010d
_08028BCC:
ldr r0, _08028BE4
ldr r1, _08028BE8
ldr r2, [r1]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _08028BEC
movs r1, 0
bl sub_80141B4
_08028BE0:
pop {r0}
bx r0
.align 2, 0
_08028BE4: .4byte gUnknown_80DEC00
_08028BE8: .4byte gUnknown_203B2C0
_08028BEC: .4byte 0x0000010d
thumb_func_end sub_8028B1C
thumb_func_start sub_8028BF0
sub_8028BF0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028CDA
ldr r2, _08028C20
ldr r0, [r2]
movs r1, 0x8
str r1, [r0, 0x40]
ldr r1, _08028C24
adds r0, r1
ldr r1, _08028C28
strh r1, [r0]
ldr r0, [sp]
cmp r0, 0xA
bhi _08028CDA
lsls r0, 2
ldr r1, _08028C2C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08028C20: .4byte gUnknown_203B2C0
_08028C24: .4byte 0x00000544
_08028C28: .4byte 0x0000ffff
_08028C2C: .4byte _08028C30
.align 2, 0
_08028C30:
.4byte _08028C5C
.4byte _08028C88
.4byte _08028CA2
.4byte _08028CCC
.4byte _08028CDA
.4byte _08028CDA
.4byte _08028CDA
.4byte _08028CDA
.4byte _08028CDA
.4byte _08028CDA
.4byte _08028CD4
_08028C5C:
ldr r0, [r2]
movs r1, 0x3
str r1, [r0, 0x40]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
movs r1, 0
str r1, [r0]
bl sub_8095190
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _08028C80
movs r0, 0x8
bl sub_8028B04
b _08028CDA
_08028C80:
movs r0, 0x9
bl sub_8028B04
b _08028CDA
_08028C88:
movs r0, 0x2
bl sub_8095324
cmp r0, 0
beq _08028C9A
movs r0, 0x1E
bl sub_8028B04
b _08028CDA
_08028C9A:
movs r0, 0x1A
bl sub_8028B04
b _08028CDA
_08028CA2:
ldr r0, [r2]
movs r1, 0x4
str r1, [r0, 0x40]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
movs r1, 0x2
str r1, [r0]
movs r0, 0x4
bl sub_8095324
cmp r0, 0
beq _08028CC4
movs r0, 0x29
bl sub_8028B04
b _08028CDA
_08028CC4:
movs r0, 0x2F
bl sub_8028B04
b _08028CDA
_08028CCC:
movs r0, 0xB
bl sub_8028B04
b _08028CDA
_08028CD4:
movs r0, 0x2
bl sub_8028B04
_08028CDA:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028BF0
thumb_func_start sub_8028CE0
sub_8028CE0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028CF4
movs r0, 0x3
bl sub_8028B04
_08028CF4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028CE0
thumb_func_start sub_8028CFC
sub_8028CFC:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028D42
bl sub_8031050
cmp r0, 0x3
bhi _08028D42
cmp r0, 0x2
bcc _08028D42
bl sub_8095350
adds r4, r0, 0
bl sub_80310B4
ldr r0, _08028D38
ldr r0, [r0]
movs r1, 0xA8
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r4, r0
beq _08028D3C
movs r0, 0x17
bl sub_8028B04
b _08028D42
.align 2, 0
_08028D38: .4byte gUnknown_203B2C0
_08028D3C:
movs r0, 0x19
bl sub_8028B04
_08028D42:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8028CFC
thumb_func_start sub_8028D4C
sub_8028D4C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028DE0
ldr r0, _08028D78
ldr r0, [r0]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r1, [sp]
str r1, [r0]
cmp r1, 0x6
beq _08028DA2
cmp r1, 0x6
bgt _08028D7C
cmp r1, 0x5
beq _08028D86
b _08028DE0
.align 2, 0
_08028D78: .4byte gUnknown_203B2C0
_08028D7C:
cmp r1, 0x7
beq _08028DBE
cmp r1, 0xA
beq _08028DDA
b _08028DE0
_08028D86:
movs r0, 0x2
bl sub_8030C20
lsls r0, 24
cmp r0, 0
beq _08028D9A
movs r0, 0xC
bl sub_8028B04
b _08028DE0
_08028D9A:
movs r0, 0xD
bl sub_8028B04
b _08028DE0
_08028DA2:
movs r0, 0x4
bl sub_8030C20
lsls r0, 24
cmp r0, 0
beq _08028DB6
movs r0, 0xE
bl sub_8028B04
b _08028DE0
_08028DB6:
movs r0, 0xF
bl sub_8028B04
b _08028DE0
_08028DBE:
movs r0, 0
bl sub_8030C20
lsls r0, 24
cmp r0, 0
beq _08028DD2
movs r0, 0x10
bl sub_8028B04
b _08028DE0
_08028DD2:
movs r0, 0x11
bl sub_8028B04
b _08028DE0
_08028DDA:
movs r0, 0x1
bl sub_8028B04
_08028DE0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028D4C
thumb_func_start sub_8028DE8
sub_8028DE8:
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028DFE
adds r0, r4, 0
bl sub_8028B04
_08028DFE:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8028DE8
thumb_func_start sub_8028E08
sub_8028E08:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028E1C
movs r0, 0x12
bl sub_8028B04
_08028E1C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028E08
thumb_func_start sub_8028E24
sub_8028E24:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028E4C
ldr r0, [sp]
cmp r0, 0x8
beq _08028E3E
cmp r0, 0xA
beq _08028E46
b _08028E4C
_08028E3E:
movs r0, 0x13
bl sub_8028B04
b _08028E4C
_08028E46:
movs r0, 0x1
bl sub_8028B04
_08028E4C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028E24
thumb_func_start sub_8028E54
sub_8028E54:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028E7C
ldr r0, [sp]
cmp r0, 0x8
beq _08028E6E
cmp r0, 0xA
beq _08028E76
b _08028E7C
_08028E6E:
movs r0, 0x14
bl sub_8028B04
b _08028E7C
_08028E76:
movs r0, 0x1
bl sub_8028B04
_08028E7C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028E54
thumb_func_start sub_8028E84
sub_8028E84:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028EA4
movs r0, 0x18
bl sub_8028B04
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_08028EA4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028E84
thumb_func_start sub_8028EAC
sub_8028EAC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028ECE
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08028ECE
bl sub_8012750
movs r0, 0x19
bl sub_8028B04
_08028ECE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028EAC
thumb_func_start sub_8028ED4
sub_8028ED4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028EFE
ldr r0, [sp]
cmp r0, 0x8
bne _08028EF0
movs r0, 0xB
bl sub_8028B04
b _08028EFE
_08028EF0:
cmp r0, 0x8
blt _08028EFE
cmp r0, 0xA
bgt _08028EFE
movs r0, 0x2
bl sub_8028B04
_08028EFE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028ED4
thumb_func_start sub_8028F04
sub_8028F04:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028F28
movs r4, 0
_08028F14:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8095240
adds r4, 0x1
cmp r4, 0x1F
ble _08028F14
movs r0, 0x15
bl sub_8028B04
_08028F28:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8028F04
thumb_func_start sub_8028F30
sub_8028F30:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028F50
movs r0, 0x16
bl sub_8028B04
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_08028F50:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028F30
thumb_func_start sub_8028F58
sub_8028F58:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028F7A
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08028F7A
bl sub_8012750
movs r0, 0x2
bl sub_8028B04
_08028F7A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028F58
thumb_func_start sub_8028F80
sub_8028F80:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028FAE
ldr r4, _08028FB8
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_809927C
ldr r0, [r4]
ldr r1, _08028FBC
adds r0, r1
movs r1, 0x1
str r1, [r0]
movs r0, 0x3
bl sub_8028B04
_08028FAE:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08028FB8: .4byte gUnknown_203B2C0
_08028FBC: .4byte 0x0000053c
thumb_func_end sub_8028F80
thumb_func_start sub_8028FC0
sub_8028FC0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08028FD4
movs r0, 0x1
bl sub_8028B04
_08028FD4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8028FC0
thumb_func_start sub_8028FDC
sub_8028FDC:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802903C
ldr r0, [sp]
cmp r0, 0x8
beq _08028FFC
cmp r0, 0x8
blt _0802903C
cmp r0, 0xA
bgt _0802903C
movs r0, 0x1
b _08029038
_08028FFC:
ldr r0, _08029020
ldr r0, [r0]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_8095228
adds r4, r0, 0
ldrb r0, [r4, 0x4]
bl sub_80A2824
lsls r0, 24
cmp r0, 0
bne _08029024
movs r0, 0x1C
b _08029038
.align 2, 0
_08029020: .4byte gUnknown_203B2C0
_08029024:
adds r0, r4, 0
adds r0, 0x2C
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
cmp r0, 0
bgt _08029036
movs r0, 0x1D
b _08029038
_08029036:
movs r0, 0x1B
_08029038:
bl sub_8028B04
_0802903C:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8028FDC
thumb_func_start sub_8029044
sub_8029044:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8030768
cmp r0, 0x3
beq _0802906C
cmp r0, 0x3
bhi _0802905A
cmp r0, 0x2
beq _08029060
b _080290CA
_0802905A:
cmp r0, 0x4
beq _08029088
b _080290CA
_08029060:
bl sub_803084C
movs r0, 0x1
bl sub_8028B04
b _080290CA
_0802906C:
bl sub_80307EC
ldr r1, _08029084
ldr r1, [r1]
movs r2, 0x86
lsls r2, 2
adds r1, r2
strb r0, [r1]
movs r0, 0x20
bl sub_8028B04
b _080290CA
.align 2, 0
_08029084: .4byte gUnknown_203B2C0
_08029088:
ldr r4, _080290D0
ldr r1, [r4]
movs r0, 0x1F
str r0, [r1]
bl sub_80307EC
ldr r1, [r4]
movs r5, 0x86
lsls r5, 2
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x21
bl sub_8028B04
_080290CA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080290D0: .4byte gUnknown_203B2C0
thumb_func_end sub_8029044
thumb_func_start sub_80290D4
sub_80290D4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080290E8
movs r0, 0x1F
bl sub_8028B04
_080290E8:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80290D4
thumb_func_start sub_80290F0
sub_80290F0:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8030768
ldr r4, _08029134
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08029122
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_08029122:
ldr r0, [sp]
cmp r0, 0xA
beq _08029184
cmp r0, 0xA
bgt _08029138
cmp r0, 0x4
beq _08029184
b _080291A0
.align 2, 0
_08029134: .4byte gUnknown_203B2C0
_08029138:
cmp r0, 0xB
beq _08029142
cmp r0, 0xC
beq _0802914E
b _080291A0
_08029142:
bl sub_803084C
movs r0, 0x22
bl sub_8028B04
b _080291A0
_0802914E:
ldr r0, [r4]
movs r1, 0x3D
str r1, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x21
bl sub_8028B04
b _080291A0
_08029184:
ldr r0, _080291A8
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x2
bl sub_8035CC0
movs r0, 0x1
bl sub_8030810
movs r0, 0x1F
bl sub_8028B04
_080291A0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080291A8: .4byte gUnknown_203B2C0
thumb_func_end sub_80290F0
thumb_func_start sub_80291AC
sub_80291AC:
push {r4,lr}
bl sub_8030DA0
cmp r0, 0x3
bhi _08029200
cmp r0, 0x2
bcc _08029200
bl sub_8030DE4
bl sub_8004914
ldr r4, _080291F8
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803092C
ldr r4, [r4]
ldr r0, [r4]
cmp r0, 0x3D
bne _080291FC
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x20
bl sub_8028B04
b _08029200
.align 2, 0
_080291F8: .4byte gUnknown_203B2C0
_080291FC:
bl sub_8028B04
_08029200:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80291AC
thumb_func_start sub_8029208
sub_8029208:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802929E
ldr r2, [sp]
cmp r2, 0xE
bgt _08029226
cmp r2, 0xD
bge _0802922C
cmp r2, 0xA
beq _08029298
b _0802929E
_08029226:
cmp r2, 0xF
beq _08029264
b _0802929E
_0802922C:
ldr r0, _0802924C
ldr r0, [r0]
ldr r1, _08029250
adds r2, r0, r1
movs r1, 0xD
str r1, [r2]
movs r3, 0xA7
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0
beq _08029254
cmp r0, 0x2
beq _0802925C
b _0802929E
.align 2, 0
_0802924C: .4byte gUnknown_203B2C0
_08029250: .4byte 0x00000534
_08029254:
movs r0, 0x4
bl sub_8028B04
b _0802929E
_0802925C:
movs r0, 0x30
bl sub_8028B04
b _0802929E
_08029264:
ldr r0, _08029280
ldr r0, [r0]
ldr r3, _08029284
adds r1, r0, r3
str r2, [r1]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _08029288
cmp r0, 0x2
beq _08029290
b _0802929E
.align 2, 0
_08029280: .4byte gUnknown_203B2C0
_08029284: .4byte 0x00000534
_08029288:
movs r0, 0x26
bl sub_8028B04
b _0802929E
_08029290:
movs r0, 0x3A
bl sub_8028B04
b _0802929E
_08029298:
movs r0, 0x1
bl sub_8028B04
_0802929E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029208
thumb_func_start sub_80292A4
sub_80292A4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080292E6
ldr r0, [sp]
cmp r0, 0x8
beq _080292BE
cmp r0, 0xA
beq _080292E0
b _080292E6
_080292BE:
ldr r0, _080292DC
ldr r0, [r0]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _080292D2
cmp r0, 0x2
bne _080292E6
_080292D2:
movs r0, 0x5
bl sub_8028B04
b _080292E6
.align 2, 0
_080292DC: .4byte gUnknown_203B2C0
_080292E0:
movs r0, 0x1
bl sub_8028B04
_080292E6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80292A4
thumb_func_start sub_80292EC
sub_80292EC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029336
ldr r0, _08029318
ldr r1, [r0]
ldr r0, [r1, 0x44]
cmp r0, 0
bne _0802932C
movs r2, 0xA7
lsls r2, 3
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _0802931C
cmp r0, 0x2
beq _08029324
b _08029336
.align 2, 0
_08029318: .4byte gUnknown_203B2C0
_0802931C:
movs r0, 0x23
bl sub_8028B04
b _08029336
_08029324:
movs r0, 0x37
bl sub_8028B04
b _08029336
_0802932C:
bl sub_8028B1C
movs r0, 0x7
bl sub_8028B04
_08029336:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80292EC
thumb_func_start sub_802933C
sub_802933C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029350
movs r0, 0x1
bl sub_8028B04
_08029350:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802933C
thumb_func_start sub_8029358
sub_8029358:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802936C
movs r0, 0x1
bl sub_8028B04
_0802936C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029358
thumb_func_start sub_8029374
sub_8029374:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029394
movs r0, 0x24
bl sub_8028B04
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_08029394:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029374
thumb_func_start sub_802939C
sub_802939C:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080293D0
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _080293D0
bl sub_8012744
adds r4, r0, 0
bl sub_8012750
cmp r4, 0
bne _080293CA
movs r0, 0x25
bl sub_8028B04
b _080293D0
_080293CA:
movs r0, 0x2
bl sub_8028B04
_080293D0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802939C
thumb_func_start sub_80293D8
sub_80293D8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080293EC
movs r0, 0x27
bl sub_8028B04
_080293EC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80293D8
thumb_func_start sub_80293F4
sub_80293F4:
push {r4,lr}
sub sp, 0x44
bl sub_80154F0
adds r4, r0, 0
add r0, sp, 0x14
movs r1, 0
movs r2, 0x30
bl MemoryFill8
cmp r4, 0x2
bne _0802940E
b _08029530
_0802940E:
cmp r4, 0x3
beq _08029414
b _08029550
_08029414:
ldr r0, _08029434
ldr r1, [r0]
adds r1, 0x8
movs r0, 0x1C
add r2, sp, 0x14
bl sub_8039068
subs r0, 0x7
cmp r0, 0x11
bls _0802942A
b _0802951C
_0802942A:
lsls r0, 2
ldr r1, _08029438
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08029434: .4byte gUnknown_203B2C0
_08029438: .4byte _0802943C
.align 2, 0
_0802943C:
.4byte _080294C8
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _08029484
.4byte _080294C0
.4byte _0802951C
.4byte _0802951C
.4byte _0802951C
.4byte _080294F0
.4byte _0802951C
.4byte _0802951C
_08029484:
ldr r0, _080294B4
ldr r3, _080294B8
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, _080294BC
ldr r1, [r1]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x8
bl sub_8014248
movs r0, 0x28
bl sub_8028B04
b _0802951C
.align 2, 0
_080294B4: .4byte gUnknown_80DEC70
_080294B8: .4byte gUnknown_80DDA48
_080294BC: .4byte gUnknown_203B2C0
_080294C0:
ldr r0, _080294C4
b _080294CA
.align 2, 0
_080294C4: .4byte gUnknown_80DECC0
_080294C8:
ldr r0, _080294E4
_080294CA:
ldr r1, _080294E8
ldr r2, [r1]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _080294EC
movs r1, 0
bl sub_80141B4
movs r0, 0x7
bl sub_8028B04
b _0802951C
.align 2, 0
_080294E4: .4byte gUnknown_80DEAB4
_080294E8: .4byte gUnknown_203B2C0
_080294EC: .4byte 0x0000010d
_080294F0:
ldr r0, [sp, 0x24]
bl sub_8095274
add r1, sp, 0x14
movs r0, 0x2
strb r0, [r1]
adds r0, r1, 0
bl sub_80951BC
ldr r0, _08029524
ldr r1, _08029528
ldr r2, [r1]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _0802952C
movs r1, 0
bl sub_80141B4
movs r0, 0x23
bl sub_8028B04
_0802951C:
bl sub_80155F0
b _08029550
.align 2, 0
_08029524: .4byte gUnknown_80DECFC
_08029528: .4byte gUnknown_203B2C0
_0802952C: .4byte 0x00000101
_08029530:
bl sub_80155F0
bl sub_8004914
ldr r0, _08029558
ldr r0, [r0]
movs r2, 0xEF
lsls r2, 2
adds r0, r2
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_8028B04
_08029550:
add sp, 0x44
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08029558: .4byte gUnknown_203B2C0
thumb_func_end sub_80293F4
thumb_func_start sub_802955C
sub_802955C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029584
ldr r0, [sp]
cmp r0, 0x8
beq _08029576
cmp r0, 0xA
beq _0802957E
b _08029584
_08029576:
movs r0, 0x26
bl sub_8028B04
b _08029584
_0802957E:
movs r0, 0x1
bl sub_8028B04
_08029584:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802955C
thumb_func_start sub_802958C
sub_802958C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080295A0
movs r0, 0x6
bl sub_8028B04
_080295A0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802958C
thumb_func_start sub_80295A8
sub_80295A8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080295D2
ldr r0, [sp]
cmp r0, 0x8
bne _080295C4
movs r0, 0x8
bl sub_8028B04
b _080295D2
_080295C4:
cmp r0, 0x8
blt _080295D2
cmp r0, 0xA
bgt _080295D2
movs r0, 0x1
bl sub_8028B04
_080295D2:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80295A8
thumb_func_start sub_80295D8
sub_80295D8:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8030768
cmp r0, 0x3
beq _08029600
cmp r0, 0x3
bhi _080295EE
cmp r0, 0x2
beq _080295F4
b _0802965E
_080295EE:
cmp r0, 0x4
beq _0802961C
b _0802965E
_080295F4:
bl sub_803084C
movs r0, 0x1
bl sub_8028B04
b _0802965E
_08029600:
bl sub_80307EC
ldr r1, _08029618
ldr r1, [r1]
movs r2, 0x86
lsls r2, 2
adds r1, r2
strb r0, [r1]
movs r0, 0x2B
bl sub_8028B04
b _0802965E
.align 2, 0
_08029618: .4byte gUnknown_203B2C0
_0802961C:
ldr r4, _08029664
ldr r1, [r4]
movs r0, 0x2A
str r0, [r1]
bl sub_80307EC
ldr r1, [r4]
movs r5, 0x86
lsls r5, 2
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x2C
bl sub_8028B04
_0802965E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08029664: .4byte gUnknown_203B2C0
thumb_func_end sub_80295D8
thumb_func_start sub_8029668
sub_8029668:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802967C
movs r0, 0x2A
bl sub_8028B04
_0802967C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029668
thumb_func_start sub_8029684
sub_8029684:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8030768
ldr r4, _080296C8
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080296B6
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_080296B6:
ldr r0, [sp]
cmp r0, 0xA
beq _08029718
cmp r0, 0xA
bgt _080296CC
cmp r0, 0x4
beq _08029718
b _08029734
.align 2, 0
_080296C8: .4byte gUnknown_203B2C0
_080296CC:
cmp r0, 0xB
beq _080296D6
cmp r0, 0xC
beq _080296E2
b _08029734
_080296D6:
bl sub_803084C
movs r0, 0x2D
bl sub_8028B04
b _08029734
_080296E2:
ldr r0, [r4]
movs r1, 0x3D
str r1, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x2C
bl sub_8028B04
b _08029734
_08029718:
ldr r0, _0802973C
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x2
bl sub_8035CC0
movs r0, 0x1
bl sub_8030810
movs r0, 0x2A
bl sub_8028B04
_08029734:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802973C: .4byte gUnknown_203B2C0
thumb_func_end sub_8029684
thumb_func_start sub_8029740
sub_8029740:
push {r4,lr}
bl sub_8030DA0
cmp r0, 0x3
bhi _08029794
cmp r0, 0x2
bcc _08029794
bl sub_8030DE4
bl sub_8004914
ldr r4, _0802978C
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803092C
ldr r4, [r4]
ldr r0, [r4]
cmp r0, 0x3D
bne _08029790
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x2B
bl sub_8028B04
b _08029794
.align 2, 0
_0802978C: .4byte gUnknown_203B2C0
_08029790:
bl sub_8028B04
_08029794:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8029740
thumb_func_start sub_802979C
sub_802979C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080297B0
movs r0, 0x1
bl sub_8028B04
_080297B0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802979C
thumb_func_start sub_80297B8
sub_80297B8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080297CC
movs r0, 0x33
bl sub_8028B04
_080297CC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80297B8
thumb_func_start sub_80297D4
sub_80297D4:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8023A94
cmp r0, 0x3
beq _08029814
cmp r0, 0x3
bhi _080297EA
cmp r0, 0x2
beq _080297F0
b _08029876
_080297EA:
cmp r0, 0x4
beq _08029834
b _08029876
_080297F0:
bl sub_8023C60
movs r0, 0x1
bl sub_8028B04
ldr r0, _08029808
ldr r0, [r0]
ldr r1, _0802980C
adds r0, r1
ldr r1, _08029810
strh r1, [r0]
b _08029876
.align 2, 0
_08029808: .4byte gUnknown_203B2C0
_0802980C: .4byte 0x00000544
_08029810: .4byte 0x0000ffff
_08029814:
bl sub_8023B44
ldr r1, _0802982C
ldr r1, [r1]
ldr r2, _08029830
adds r1, r2
strh r0, [r1]
movs r0, 0x34
bl sub_8028B04
b _08029876
.align 2, 0
_0802982C: .4byte gUnknown_203B2C0
_08029830: .4byte 0x00000544
_08029834:
ldr r4, _0802987C
ldr r1, [r4]
movs r0, 0x33
str r0, [r1]
bl sub_8023B44
adds r2, r0, 0
ldr r0, [r4]
ldr r5, _08029880
adds r1, r0, r5
strh r2, [r1]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0
bl sub_8024458
movs r0, 0x35
bl sub_8028B04
_08029876:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802987C: .4byte gUnknown_203B2C0
_08029880: .4byte 0x00000544
thumb_func_end sub_80297D4
thumb_func_start sub_8029884
sub_8029884:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8023A94
ldr r4, _080298C8
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080298B6
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_080298B6:
ldr r0, [sp]
cmp r0, 0xA
beq _0802991C
cmp r0, 0xA
bgt _080298CC
cmp r0, 0x4
beq _0802991C
b _08029938
.align 2, 0
_080298C8: .4byte gUnknown_203B2C0
_080298CC:
cmp r0, 0xB
beq _080298D6
cmp r0, 0xC
beq _080298E2
b _08029938
_080298D6:
bl sub_8023C60
movs r0, 0x4
bl sub_8028B04
b _08029938
_080298E2:
ldr r0, [r4]
movs r1, 0x3D
str r1, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
ldr r1, _08029918
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0
bl sub_8024458
movs r0, 0x35
bl sub_8028B04
b _08029938
.align 2, 0
_08029918: .4byte 0x00000544
_0802991C:
ldr r0, _08029940
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x3
bl sub_8035CC0
movs r0, 0x1
bl sub_8023B7C
movs r0, 0x33
bl sub_8028B04
_08029938:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08029940: .4byte gUnknown_203B2C0
thumb_func_end sub_8029884
thumb_func_start sub_8029944
sub_8029944:
push {r4,lr}
bl sub_80244E4
cmp r0, 0x1
bne _08029954
bl sub_802452C
b _080299A4
_08029954:
cmp r0, 0x1
bcc _080299A4
cmp r0, 0x3
bhi _080299A4
bl sub_802453C
bl sub_8004914
ldr r4, _0802999C
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_8023B7C
ldr r4, [r4]
ldr r0, [r4]
cmp r0, 0x3D
bne _080299A0
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x34
bl sub_8028B04
b _080299A4
.align 2, 0
_0802999C: .4byte gUnknown_203B2C0
_080299A0:
bl sub_8028B04
_080299A4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8029944
thumb_func_start sub_80299AC
sub_80299AC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080299D2
ldr r0, [sp]
cmp r0, 0xA
beq _080299CC
cmp r0, 0x12
bne _080299D2
movs r0, 0x4
bl sub_8028B04
b _080299D2
_080299CC:
movs r0, 0x1
bl sub_8028B04
_080299D2:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80299AC
thumb_func_start sub_80299D8
sub_80299D8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029A12
ldr r0, [sp]
cmp r0, 0x9
beq _08029A04
cmp r0, 0x9
bgt _080299F6
cmp r0, 0x8
beq _080299FC
b _08029A12
_080299F6:
cmp r0, 0xA
beq _08029A0C
b _08029A12
_080299FC:
movs r0, 0x4
bl sub_8028B04
b _08029A12
_08029A04:
movs r0, 0x32
bl sub_8028B04
b _08029A12
_08029A0C:
movs r0, 0x1
bl sub_8028B04
_08029A12:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80299D8
thumb_func_start sub_8029A18
sub_8029A18:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029A66
ldr r0, [sp]
cmp r0, 0x11
beq _08029A3C
cmp r0, 0x11
bgt _08029A36
cmp r0, 0xA
beq _08029A60
b _08029A66
_08029A36:
cmp r0, 0x12
beq _08029A58
b _08029A66
_08029A3C:
movs r0, 0x3
bl sub_8024108
lsls r0, 24
cmp r0, 0
beq _08029A50
movs r0, 0x31
bl sub_8028B04
b _08029A66
_08029A50:
movs r0, 0x32
bl sub_8028B04
b _08029A66
_08029A58:
movs r0, 0x4
bl sub_8028B04
b _08029A66
_08029A60:
movs r0, 0x1
bl sub_8028B04
_08029A66:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029A18
thumb_func_start sub_8029A6C
sub_8029A6C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029A80
movs r0, 0x2E
bl sub_8028B04
_08029A80:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029A6C
thumb_func_start sub_8029A88
sub_8029A88:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029AAA
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08029AAA
bl sub_8012750
movs r0, 0x39
bl sub_8028B04
_08029AAA:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029A88
thumb_func_start sub_8029AB0
sub_8029AB0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029AD0
movs r0, 0x38
bl sub_8028B04
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_08029AD0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029AB0
thumb_func_start sub_8029AD8
sub_8029AD8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029AEC
movs r0, 0x3B
bl sub_8028B04
_08029AEC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029AD8
thumb_func_start sub_8029AF4
sub_8029AF4:
push {lr}
bl sub_8031DCC
cmp r0, 0x1
beq _08029B2C
cmp r0, 0x1
bcc _08029B30
cmp r0, 0x3
bhi _08029B30
bl sub_8031E10
bl sub_8004914
ldr r0, _08029B28
ldr r0, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x3C
bl sub_8028B04
b _08029B30
.align 2, 0
_08029B28: .4byte gUnknown_203B2C0
_08029B2C:
bl sub_8031E00
_08029B30:
pop {r0}
bx r0
thumb_func_end sub_8029AF4
thumb_func_start sub_8029B34
sub_8029B34:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029B48
movs r0, 0x3
bl sub_8028B04
_08029B48:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029B34
thumb_func_start sub_8029B50
sub_8029B50:
push {r4,r5,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08029C3C
ldr r4, _08029C40
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
ldr r0, _08029C44
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _08029C48
bl strcpy
adds r0, r4, 0
bl sub_808DDD0
ldr r2, [r5]
movs r3, 0x84
lsls r3, 3
adds r1, r2, r3
str r0, [r1]
adds r3, 0x4
adds r1, r2, r3
ldr r0, [r0, 0x4]
str r0, [r1]
ldr r0, _08029C4C
adds r2, r0
movs r1, 0
strb r1, [r2]
ldr r0, [r5]
ldr r2, _08029C50
adds r0, r2
strb r1, [r0]
ldr r0, [r5]
adds r3, 0xA
adds r0, r3
strb r1, [r0]
ldr r1, [r5]
movs r0, 0x85
lsls r0, 3
adds r2, r1, r0
movs r0, 0x2
strh r0, [r2]
ldr r2, _08029C54
adds r1, r2
movs r0, 0x8
strh r0, [r1]
movs r1, 0
movs r2, 0
_08029BD8:
ldr r0, [r5]
adds r0, 0x8
adds r0, r1
strb r2, [r0]
adds r1, 0x1
cmp r1, 0x35
ble _08029BD8
ldr r5, _08029C3C
ldr r1, [r5]
ldr r3, _08029C58
adds r2, r1, r3
movs r0, 0x3
str r0, [r2]
movs r0, 0xA7
lsls r0, 3
adds r1, r0
movs r0, 0x1
str r0, [r1]
movs r0, 0x6
bl sub_80953D4
adds r4, r0, 0
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _08029C60
lsls r0, r4, 24
lsrs r0, 24
bl sub_8095228
ldr r1, [r5]
ldr r2, _08029C5C
adds r3, r1, r2
ldr r2, [r0, 0x20]
str r2, [r3]
movs r3, 0x86
lsls r3, 2
adds r1, r3
strb r4, [r1]
ldr r1, [r5]
movs r2, 0x86
lsls r2, 3
adds r1, r2
ldr r0, [r0, 0x10]
str r0, [r1]
movs r0, 0x5
bl sub_802B2BC
b _08029C7C
.align 2, 0
_08029C3C: .4byte gUnknown_203B2C4
_08029C40: .4byte 0x00000564
_08029C44: .4byte gUnknown_202E5D8
_08029C48: .4byte gUnknown_202DF98
_08029C4C: .4byte 0x0000042c
_08029C50: .4byte 0x0000042d
_08029C54: .4byte 0x0000042a
_08029C58: .4byte 0x00000534
_08029C5C: .4byte 0x0000041c
_08029C60:
ldr r1, [r5]
ldr r3, _08029C8C
adds r2, r1, r3
ldr r0, _08029C90
ldr r0, [r0]
str r0, [r2]
movs r0, 0x86
lsls r0, 2
adds r1, r0
movs r0, 0xFF
strb r0, [r1]
movs r0, 0
bl sub_802B2BC
_08029C7C:
ldr r0, _08029C94
ldr r1, [r0]
movs r0, 0x2B
str r0, [r1, 0x4]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08029C8C: .4byte 0x0000041c
_08029C90: .4byte gUnknown_80DED44
_08029C94: .4byte gUnknown_203B2C4
thumb_func_end sub_8029B50
thumb_func_start sub_8029C98
sub_8029C98:
push {lr}
ldr r0, _08029CB0
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x2A
bls _08029CA6
b _08029E58
_08029CA6:
lsls r0, 2
ldr r1, _08029CB4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08029CB0: .4byte gUnknown_203B2C4
_08029CB4: .4byte _08029CB8
.align 2, 0
_08029CB8:
.4byte _08029E48
.4byte _08029E48
.4byte _08029E4E
.4byte _08029E54
.4byte _08029E42
.4byte _08029D64
.4byte _08029E3C
.4byte _08029E30
.4byte _08029E36
.4byte _08029E2A
.4byte _08029E24
.4byte _08029E1E
.4byte _08029E0C
.4byte _08029E06
.4byte _08029D76
.4byte _08029D7C
.4byte _08029D8E
.4byte _08029D82
.4byte _08029D88
.4byte _08029D94
.4byte _08029D9A
.4byte _08029DA0
.4byte _08029DE8
.4byte _08029DF4
.4byte _08029DEE
.4byte _08029DB2
.4byte _08029DB8
.4byte _08029DAC
.4byte _08029DA6
.4byte _08029DFA
.4byte _08029D6A
.4byte _08029D70
.4byte _08029E00
.4byte _08029DDC
.4byte _08029DE2
.4byte _08029E58
.4byte _08029DD6
.4byte _08029DD0
.4byte _08029DC4
.4byte _08029DCA
.4byte _08029DBE
.4byte _08029E12
.4byte _08029E18
_08029D64:
bl sub_802AB7C
b _08029E58
_08029D6A:
bl sub_8029F98
b _08029E58
_08029D70:
bl sub_8029EA8
b _08029E58
_08029D76:
bl sub_802A090
b _08029E58
_08029D7C:
bl sub_802A158
b _08029E58
_08029D82:
bl sub_802A174
b _08029E58
_08029D88:
bl sub_802A230
b _08029E58
_08029D8E:
bl sub_802A0C8
b _08029E58
_08029D94:
bl sub_802A28C
b _08029E58
_08029D9A:
bl sub_802A39C
b _08029E58
_08029DA0:
bl sub_802A33C
b _08029E58
_08029DA6:
bl sub_802A458
b _08029E58
_08029DAC:
bl sub_802A4AC
b _08029E58
_08029DB2:
bl sub_802A4D4
b _08029E58
_08029DB8:
bl sub_802A050
b _08029E58
_08029DBE:
bl sub_802A9FC
b _08029E58
_08029DC4:
bl sub_802A4F0
b _08029E58
_08029DCA:
bl sub_802A50C
b _08029E58
_08029DD0:
bl sub_802A6B4
b _08029E58
_08029DD6:
bl sub_802A718
b _08029E58
_08029DDC:
bl sub_802AB60
b _08029E58
_08029DE2:
bl sub_802AB98
b _08029E58
_08029DE8:
bl sub_802A740
b _08029E58
_08029DEE:
bl sub_802A68C
b _08029E58
_08029DF4:
bl sub_802A6F0
b _08029E58
_08029DFA:
bl sub_802A75C
b _08029E58
_08029E00:
bl sub_802A490
b _08029E58
_08029E06:
bl sub_802A474
b _08029E58
_08029E0C:
bl sub_802A798
b _08029E58
_08029E12:
bl sub_802A828
b _08029E58
_08029E18:
bl sub_802A850
b _08029E58
_08029E1E:
bl sub_802A8A0
b _08029E58
_08029E24:
bl sub_802A8BC
b _08029E58
_08029E2A:
bl sub_802A910
b _08029E58
_08029E30:
bl sub_802A98C
b _08029E58
_08029E36:
bl sub_802A9A8
b _08029E58
_08029E3C:
bl sub_802AA28
b _08029E58
_08029E42:
bl sub_802AAAC
b _08029E58
_08029E48:
bl sub_802AAE4
b _08029E58
_08029E4E:
bl sub_802AAC8
b _08029E58
_08029E54:
movs r0, 0x3
b _08029E5A
_08029E58:
movs r0, 0
_08029E5A:
pop {r1}
bx r1
thumb_func_end sub_8029C98
thumb_func_start sub_8029E60
sub_8029E60:
push {r4,lr}
ldr r4, _08029EA4
ldr r0, [r4]
cmp r0, 0
beq _08029E9C
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
bl sub_8030DE4
bl sub_801B450
bl sub_803084C
bl sub_801CBB8
bl sub_80155F0
bl sub_8031E10
bl sub_802F2C0
_08029E9C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08029EA4: .4byte gUnknown_203B2C4
thumb_func_end sub_8029E60
thumb_func_start sub_8029EA8
sub_8029EA8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08029EBC
movs r0, 0x1
bl sub_802B2BC
_08029EBC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8029EA8
thumb_func_start sub_8029EC4
sub_8029EC4:
push {lr}
cmp r0, 0xF
bhi _08029F88
lsls r0, 2
ldr r1, _08029ED4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08029ED4: .4byte _08029ED8
.align 2, 0
_08029ED8:
.4byte _08029F88
.4byte _08029F50
.4byte _08029F50
.4byte _08029F18
.4byte _08029F20
.4byte _08029F50
.4byte _08029F28
.4byte _08029F30
.4byte _08029F88
.4byte _08029F38
.4byte _08029F88
.4byte _08029F40
.4byte _08029F88
.4byte _08029F48
.4byte _08029F50
.4byte _08029F74
_08029F18:
ldr r0, _08029F1C
b _08029F52
.align 2, 0
_08029F1C: .4byte gUnknown_80DEF28
_08029F20:
ldr r0, _08029F24
b _08029F52
.align 2, 0
_08029F24: .4byte gUnknown_80DEF80
_08029F28:
ldr r0, _08029F2C
b _08029F52
.align 2, 0
_08029F2C: .4byte gUnknown_80DEFDC
_08029F30:
ldr r0, _08029F34
b _08029F52
.align 2, 0
_08029F34: .4byte gUnknown_80DF044
_08029F38:
ldr r0, _08029F3C
b _08029F52
.align 2, 0
_08029F3C: .4byte gUnknown_80DF0A0
_08029F40:
ldr r0, _08029F44
b _08029F52
.align 2, 0
_08029F44: .4byte gUnknown_80DF0A0
_08029F48:
ldr r0, _08029F4C
b _08029F52
.align 2, 0
_08029F4C: .4byte gUnknown_80DF0E0
_08029F50:
ldr r0, _08029F68
_08029F52:
ldr r1, _08029F6C
ldr r2, [r1]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _08029F70
movs r1, 0
bl sub_80141B4
b _08029F88
.align 2, 0
_08029F68: .4byte gUnknown_80DEF04
_08029F6C: .4byte gUnknown_203B2C4
_08029F70: .4byte 0x0000010d
_08029F74:
ldr r0, _08029F8C
ldr r1, _08029F90
ldr r2, [r1]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _08029F94
movs r1, 0
bl sub_80141B4
_08029F88:
pop {r0}
bx r0
.align 2, 0
_08029F8C: .4byte gUnknown_80DF138
_08029F90: .4byte gUnknown_203B2C4
_08029F94: .4byte 0x0000010d
thumb_func_end sub_8029EC4
thumb_func_start sub_8029F98
sub_8029F98:
push {r4-r6,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
adds r6, r0, 0
cmp r6, 0
bne _0802A048
ldr r4, _08029FE4
ldr r0, [r4]
ldr r5, _08029FE8
adds r0, r5
movs r1, 0
movs r2, 0x4
bl MemoryFill8
ldr r0, [r4]
ldr r1, _08029FEC
adds r0, r1
strb r6, [r0]
ldr r0, [r4]
subs r1, 0x1
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, r5
strb r6, [r0]
ldr r0, [r4]
ldr r1, [r0, 0x44]
cmp r1, 0
bne _0802A03C
ldr r1, [r0, 0x40]
cmp r1, 0x6
beq _08029FF0
cmp r1, 0x7
beq _0802A034
b _0802A048
.align 2, 0
_08029FE4: .4byte gUnknown_203B2C4
_08029FE8: .4byte 0x0000041c
_08029FEC: .4byte 0x0000041e
_08029FF0:
ldr r1, _0802A004
adds r0, r1
ldr r0, [r0]
cmp r0, 0x4
beq _0802A020
cmp r0, 0x4
bgt _0802A008
cmp r0, 0x3
beq _0802A00C
b _0802A020
.align 2, 0
_0802A004: .4byte 0x00000534
_0802A008:
cmp r0, 0x6
bgt _0802A020
_0802A00C:
ldr r0, _0802A028
ldr r1, _0802A02C
ldr r2, [r1]
movs r1, 0x84
lsls r1, 3
adds r2, r1
ldr r3, _0802A030
movs r1, 0
bl sub_80141B4
_0802A020:
movs r0, 0xD
bl sub_802B2BC
b _0802A048
.align 2, 0
_0802A028: .4byte gUnknown_80DF194
_0802A02C: .4byte gUnknown_203B2C4
_0802A030: .4byte 0x0000010d
_0802A034:
movs r0, 0x21
bl sub_802B2BC
b _0802A048
_0802A03C:
adds r0, r1, 0
bl sub_8029EC4
movs r0, 0x1F
bl sub_802B2BC
_0802A048:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8029F98
thumb_func_start sub_802A050
sub_802A050:
push {lr}
bl sub_8031DCC
cmp r0, 0x1
beq _0802A088
cmp r0, 0x1
bcc _0802A08C
cmp r0, 0x3
bhi _0802A08C
bl sub_8031E10
bl sub_8004914
ldr r0, _0802A084
ldr r0, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1B
bl sub_802B2BC
b _0802A08C
.align 2, 0
_0802A084: .4byte gUnknown_203B2C4
_0802A088:
bl sub_8031E00
_0802A08C:
pop {r0}
bx r0
thumb_func_end sub_802A050
thumb_func_start sub_802A090
sub_802A090:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A0C2
ldr r0, [sp]
cmp r0, 0x7
beq _0802A0B4
cmp r0, 0x7
bgt _0802A0AE
cmp r0, 0
beq _0802A0BC
b _0802A0C2
_0802A0AE:
cmp r0, 0x8
beq _0802A0BC
b _0802A0C2
_0802A0B4:
movs r0, 0x6
bl sub_802B2BC
b _0802A0C2
_0802A0BC:
movs r0, 0x1
bl sub_802B2BC
_0802A0C2:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A090
thumb_func_start sub_802A0C8
sub_802A0C8:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8030768
cmp r0, 0x3
beq _0802A0F0
cmp r0, 0x3
bhi _0802A0DE
cmp r0, 0x2
beq _0802A0E4
b _0802A14E
_0802A0DE:
cmp r0, 0x4
beq _0802A10C
b _0802A14E
_0802A0E4:
bl sub_803084C
movs r0, 0x1
bl sub_802B2BC
b _0802A14E
_0802A0F0:
bl sub_80307EC
ldr r1, _0802A108
ldr r1, [r1]
movs r2, 0x86
lsls r2, 2
adds r1, r2
strb r0, [r1]
movs r0, 0x11
bl sub_802B2BC
b _0802A14E
.align 2, 0
_0802A108: .4byte gUnknown_203B2C4
_0802A10C:
ldr r4, _0802A154
ldr r1, [r4]
movs r0, 0x10
str r0, [r1, 0x4]
bl sub_80307EC
ldr r1, [r4]
movs r5, 0x86
lsls r5, 2
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x12
bl sub_802B2BC
_0802A14E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802A154: .4byte gUnknown_203B2C4
thumb_func_end sub_802A0C8
thumb_func_start sub_802A158
sub_802A158:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A16C
movs r0, 0x10
bl sub_802B2BC
_0802A16C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A158
thumb_func_start sub_802A174
sub_802A174:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8030768
ldr r4, _0802A1B8
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802A1A6
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_0802A1A6:
ldr r0, [sp]
cmp r0, 0xB
beq _0802A1C6
cmp r0, 0xB
bgt _0802A1BC
cmp r0, 0
beq _0802A208
b _0802A224
.align 2, 0
_0802A1B8: .4byte gUnknown_203B2C4
_0802A1BC:
cmp r0, 0xC
beq _0802A1D2
cmp r0, 0xD
beq _0802A208
b _0802A224
_0802A1C6:
bl sub_803084C
movs r0, 0xE
bl sub_802B2BC
b _0802A224
_0802A1D2:
ldr r0, [r4]
movs r1, 0x2B
str r1, [r0, 0x4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x12
bl sub_802B2BC
b _0802A224
_0802A208:
ldr r0, _0802A22C
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x2
bl sub_8035CC0
movs r0, 0x1
bl sub_8030810
movs r0, 0x10
bl sub_802B2BC
_0802A224:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802A22C: .4byte gUnknown_203B2C4
thumb_func_end sub_802A174
thumb_func_start sub_802A230
sub_802A230:
push {r4,lr}
bl sub_8030DA0
cmp r0, 0x3
bhi _0802A284
cmp r0, 0x2
bcc _0802A284
bl sub_8030DE4
bl sub_8004914
ldr r4, _0802A27C
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803092C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x2B
bne _0802A280
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x11
bl sub_802B2BC
b _0802A284
.align 2, 0
_0802A27C: .4byte gUnknown_203B2C4
_0802A280:
bl sub_802B2BC
_0802A284:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802A230
thumb_func_start sub_802A28C
sub_802A28C:
push {r4-r6,lr}
ldr r4, _0802A2C0
ldr r0, [r4]
ldr r5, _0802A2C4
adds r0, r5
movs r2, 0
strb r2, [r0]
ldr r0, [r4]
ldr r1, _0802A2C8
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r6, _0802A2CC
adds r0, r6
strb r2, [r0]
movs r0, 0x1
bl sub_801CA08
cmp r0, 0x3
beq _0802A2E2
cmp r0, 0x3
bhi _0802A2D0
cmp r0, 0x2
beq _0802A2D6
b _0802A334
.align 2, 0
_0802A2C0: .4byte gUnknown_203B2C4
_0802A2C4: .4byte 0x0000041e
_0802A2C8: .4byte 0x0000041d
_0802A2CC: .4byte 0x0000041c
_0802A2D0:
cmp r0, 0x4
beq _0802A2FC
b _0802A334
_0802A2D6:
bl sub_801CBB8
movs r0, 0x1
bl sub_802B2BC
b _0802A334
_0802A2E2:
bl sub_801CB24
ldr r1, [r4]
ldr r2, _0802A2F8
adds r1, r2
strb r0, [r1]
movs r0, 0x14
bl sub_802B2BC
b _0802A334
.align 2, 0
_0802A2F8: .4byte 0x0000041e
_0802A2FC:
ldr r1, [r4]
movs r0, 0x13
str r0, [r1, 0x4]
bl sub_801CB24
ldr r1, [r4]
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r6
bl sub_801B3C0
movs r0, 0x15
bl sub_802B2BC
_0802A334:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_802A28C
thumb_func_start sub_802A33C
sub_802A33C:
push {r4,lr}
bl sub_801B410
cmp r0, 0x1
beq _0802A394
cmp r0, 0x1
bcc _0802A394
cmp r0, 0x3
bhi _0802A394
bl sub_801B450
bl sub_8004914
ldr r4, _0802A38C
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_801CB5C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x2B
bne _0802A390
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x14
bl sub_802B2BC
b _0802A394
.align 2, 0
_0802A38C: .4byte gUnknown_203B2C4
_0802A390:
bl sub_802B2BC
_0802A394:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802A33C
thumb_func_start sub_802A39C
sub_802A39C:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_801CA08
ldr r4, _0802A3E0
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802A3CE
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_0802A3CE:
ldr r0, [sp]
cmp r0, 0xB
beq _0802A3EE
cmp r0, 0xB
bgt _0802A3E4
cmp r0, 0
beq _0802A430
b _0802A44A
.align 2, 0
_0802A3E0: .4byte gUnknown_203B2C4
_0802A3E4:
cmp r0, 0xC
beq _0802A3FA
cmp r0, 0xD
beq _0802A430
b _0802A44A
_0802A3EE:
bl sub_801CBB8
movs r0, 0xC
bl sub_802B2BC
b _0802A44A
_0802A3FA:
ldr r0, [r4]
movs r1, 0x2B
str r1, [r0, 0x4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
ldr r1, _0802A42C
adds r0, r1
bl sub_801B3C0
movs r0, 0x15
bl sub_802B2BC
b _0802A44A
.align 2, 0
_0802A42C: .4byte 0x0000041c
_0802A430:
ldr r0, _0802A454
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x3
bl sub_8035CC0
bl sub_801CCD8
movs r0, 0x13
bl sub_802B2BC
_0802A44A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802A454: .4byte gUnknown_203B2C4
thumb_func_end sub_802A39C
thumb_func_start sub_802A458
sub_802A458:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A46C
movs r0, 0xD
bl sub_802B2BC
_0802A46C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A458
thumb_func_start sub_802A474
sub_802A474:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A488
movs r0, 0x3
bl sub_802B2BC
_0802A488:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A474
thumb_func_start sub_802A490
sub_802A490:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A4A4
movs r0, 0x3
bl sub_802B2BC
_0802A4A4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A490
thumb_func_start sub_802A4AC
sub_802A4AC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A4CC
movs r0, 0x18
bl sub_802B2BC
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_0802A4CC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A4AC
thumb_func_start sub_802A4D4
sub_802A4D4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A4E8
movs r0, 0x1A
bl sub_802B2BC
_0802A4E8:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A4D4
thumb_func_start sub_802A4F0
sub_802A4F0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A504
movs r0, 0x27
bl sub_802B2BC
_0802A504:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A4F0
thumb_func_start sub_802A50C
sub_802A50C:
push {r4,r5,lr}
sub sp, 0x44
bl sub_80154F0
adds r4, r0, 0
add r0, sp, 0x14
movs r1, 0
movs r2, 0x30
bl MemoryFill8
cmp r4, 0x2
bne _0802A526
b _0802A660
_0802A526:
cmp r4, 0x3
beq _0802A52C
b _0802A680
_0802A52C:
ldr r0, _0802A54C
ldr r1, [r0]
adds r1, 0x8
movs r0, 0x20
add r2, sp, 0x14
bl sub_8039068
subs r0, 0x7
cmp r0, 0x11
bls _0802A542
b _0802A654
_0802A542:
lsls r0, 2
ldr r1, _0802A550
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802A54C: .4byte gUnknown_203B2C4
_0802A550: .4byte _0802A554
.align 2, 0
_0802A554:
.4byte _0802A654
.4byte _0802A654
.4byte _0802A654
.4byte _0802A654
.4byte _0802A5F0
.4byte _0802A654
.4byte _0802A654
.4byte _0802A654
.4byte _0802A654
.4byte _0802A654
.4byte _0802A59C
.4byte _0802A654
.4byte _0802A654
.4byte _0802A5D8
.4byte _0802A654
.4byte _0802A654
.4byte _0802A654
.4byte _0802A618
_0802A59C:
ldr r0, _0802A5CC
ldr r3, _0802A5D0
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, _0802A5D4
ldr r1, [r1]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x7
bl sub_8014248
movs r0, 0x28
bl sub_802B2BC
b _0802A654
.align 2, 0
_0802A5CC: .4byte gUnknown_80DF1C0
_0802A5D0: .4byte gUnknown_80DEE44
_0802A5D4: .4byte gUnknown_203B2C4
_0802A5D8:
ldr r0, _0802A5E8
ldr r1, _0802A5EC
ldr r2, [r1]
movs r3, 0x84
lsls r3, 3
adds r2, r3
b _0802A5FC
.align 2, 0
_0802A5E8: .4byte gUnknown_80DF208
_0802A5EC: .4byte gUnknown_203B2C4
_0802A5F0:
ldr r0, _0802A60C
ldr r1, _0802A610
ldr r2, [r1]
movs r4, 0x84
lsls r4, 3
adds r2, r4
_0802A5FC:
ldr r3, _0802A614
movs r1, 0
bl sub_80141B4
movs r0, 0x1F
bl sub_802B2BC
b _0802A654
.align 2, 0
_0802A60C: .4byte gUnknown_80DF0A0
_0802A610: .4byte gUnknown_203B2C4
_0802A614: .4byte 0x0000010d
_0802A618:
ldr r1, [sp, 0x24]
movs r0, 0x4
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r2, r0, 0
add r1, sp, 0x14
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
movs r1, 0x6
strb r1, [r0]
ldr r0, _0802A65C
ldr r0, [r0]
movs r5, 0x86
lsls r5, 3
adds r0, r5
ldr r1, [sp, 0x24]
str r1, [r0]
movs r0, 0x21
bl sub_802B2BC
_0802A654:
bl sub_80155F0
b _0802A680
.align 2, 0
_0802A65C: .4byte gUnknown_203B2C4
_0802A660:
bl sub_80155F0
bl sub_8004914
ldr r0, _0802A688
ldr r0, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_802B2BC
_0802A680:
add sp, 0x44
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802A688: .4byte gUnknown_203B2C4
thumb_func_end sub_802A50C
thumb_func_start sub_802A68C
sub_802A68C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A6AE
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _0802A6AE
bl sub_8012750
movs r0, 0xD
bl sub_802B2BC
_0802A6AE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A68C
thumb_func_start sub_802A6B4
sub_802A6B4:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A6E8
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _0802A6E8
bl sub_8012744
adds r4, r0, 0
bl sub_8012750
cmp r4, 0
bne _0802A6E2
movs r0, 0x20
bl sub_802B2BC
b _0802A6E8
_0802A6E2:
movs r0, 0x3
bl sub_802B2BC
_0802A6E8:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802A6B4
thumb_func_start sub_802A6F0
sub_802A6F0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A710
movs r0, 0x18
bl sub_802B2BC
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_0802A710:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A6F0
thumb_func_start sub_802A718
sub_802A718:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A738
movs r0, 0x25
bl sub_802B2BC
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_0802A738:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A718
thumb_func_start sub_802A740
sub_802A740:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A754
movs r0, 0x1E
bl sub_802B2BC
_0802A754:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A740
thumb_func_start sub_802A75C
sub_802A75C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A792
ldr r0, [sp]
cmp r0, 0
beq _0802A78C
cmp r0, 0x7
bne _0802A792
ldr r0, _0802A788
ldr r0, [r0]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r0, [r0]
movs r0, 0x16
bl sub_802B2BC
b _0802A792
.align 2, 0
_0802A788: .4byte gUnknown_203B2C4
_0802A78C:
movs r0, 0x1
bl sub_802B2BC
_0802A792:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A75C
thumb_func_start sub_802A798
sub_802A798:
push {r4,r5,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A81E
ldr r0, [sp]
cmp r0, 0x7
beq _0802A7BC
cmp r0, 0x7
bgt _0802A7B6
cmp r0, 0
beq _0802A818
b _0802A81E
_0802A7B6:
cmp r0, 0x8
beq _0802A810
b _0802A81E
_0802A7BC:
ldr r4, _0802A800
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_8095228
adds r2, r0, 0
ldr r1, [r4]
ldr r3, _0802A804
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
beq _0802A7E2
ldr r5, _0802A808
adds r0, r1, r5
ldr r0, [r0]
str r0, [r2, 0x20]
_0802A7E2:
ldr r0, _0802A80C
ldr r1, [r0]
ldr r0, [r4]
adds r0, r3
ldrb r0, [r0]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
movs r0, 0x29
bl sub_802B2BC
b _0802A81E
.align 2, 0
_0802A800: .4byte gUnknown_203B2C4
_0802A804: .4byte 0x0000041e
_0802A808: .4byte 0x0000041c
_0802A80C: .4byte gUnknown_203B460
_0802A810:
movs r0, 0xB
bl sub_802B2BC
b _0802A81E
_0802A818:
movs r0, 0x1
bl sub_802B2BC
_0802A81E:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_802A798
thumb_func_start sub_802A828
sub_802A828:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A848
movs r0, 0x2A
bl sub_802B2BC
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_0802A848:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A828
thumb_func_start sub_802A850
sub_802A850:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A89A
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _0802A89A
bl sub_8012750
ldr r0, _0802A884
ldr r0, [r0]
ldr r1, _0802A888
adds r0, r1
ldr r0, [r0]
cmp r0, 0x3
blt _0802A89A
cmp r0, 0x4
ble _0802A88C
cmp r0, 0x5
beq _0802A894
b _0802A89A
.align 2, 0
_0802A884: .4byte gUnknown_203B2C4
_0802A888: .4byte 0x00000534
_0802A88C:
movs r0, 0x1D
bl sub_802B2BC
b _0802A89A
_0802A894:
movs r0, 0x19
bl sub_802B2BC
_0802A89A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A850
thumb_func_start sub_802A8A0
sub_802A8A0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A8B4
movs r0, 0x13
bl sub_802B2BC
_0802A8B4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A8A0
thumb_func_start sub_802A8BC
sub_802A8BC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A90A
ldr r0, [sp]
cmp r0, 0
beq _0802A904
cmp r0, 0xA
bne _0802A90A
ldr r0, _0802A8EC
ldr r0, [r0]
ldr r1, _0802A8F0
adds r0, r1
ldr r0, [r0]
cmp r0, 0x3
blt _0802A90A
cmp r0, 0x4
ble _0802A8F4
cmp r0, 0x5
beq _0802A8FC
b _0802A90A
.align 2, 0
_0802A8EC: .4byte gUnknown_203B2C4
_0802A8F0: .4byte 0x00000534
_0802A8F4:
movs r0, 0x1D
bl sub_802B2BC
b _0802A90A
_0802A8FC:
movs r0, 0x19
bl sub_802B2BC
b _0802A90A
_0802A904:
movs r0, 0x1
bl sub_802B2BC
_0802A90A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A8BC
thumb_func_start sub_802A910
sub_802A910:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A986
ldr r0, [sp]
cmp r0, 0x9
beq _0802A934
cmp r0, 0x9
bgt _0802A92E
cmp r0, 0
beq _0802A980
b _0802A986
_0802A92E:
cmp r0, 0xA
beq _0802A950
b _0802A986
_0802A934:
movs r0, 0
bl sub_801CF14
lsls r0, 24
cmp r0, 0
beq _0802A948
movs r0, 0xA
bl sub_802B2BC
b _0802A986
_0802A948:
movs r0, 0xB
bl sub_802B2BC
b _0802A986
_0802A950:
ldr r0, _0802A968
ldr r0, [r0]
ldr r1, _0802A96C
adds r0, r1
ldr r0, [r0]
cmp r0, 0x3
blt _0802A986
cmp r0, 0x4
ble _0802A970
cmp r0, 0x5
beq _0802A978
b _0802A986
.align 2, 0
_0802A968: .4byte gUnknown_203B2C4
_0802A96C: .4byte 0x00000534
_0802A970:
movs r0, 0x1D
bl sub_802B2BC
b _0802A986
_0802A978:
movs r0, 0x19
bl sub_802B2BC
b _0802A986
_0802A980:
movs r0, 0x1
bl sub_802B2BC
_0802A986:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A910
thumb_func_start sub_802A98C
sub_802A98C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A9A0
movs r0, 0x8
bl sub_802B2BC
_0802A9A0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A98C
thumb_func_start sub_802A9A8
sub_802A9A8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802A9F6
ldr r0, [sp]
cmp r0, 0
beq _0802A9F0
cmp r0, 0x7
bne _0802A9F6
ldr r0, _0802A9D8
ldr r0, [r0]
ldr r1, _0802A9DC
adds r0, r1
ldr r0, [r0]
cmp r0, 0x3
blt _0802A9F6
cmp r0, 0x4
ble _0802A9E0
cmp r0, 0x5
beq _0802A9E8
b _0802A9F6
.align 2, 0
_0802A9D8: .4byte gUnknown_203B2C4
_0802A9DC: .4byte 0x00000534
_0802A9E0:
movs r0, 0x1D
bl sub_802B2BC
b _0802A9F6
_0802A9E8:
movs r0, 0x19
bl sub_802B2BC
b _0802A9F6
_0802A9F0:
movs r0, 0x1
bl sub_802B2BC
_0802A9F6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A9A8
thumb_func_start sub_802A9FC
sub_802A9FC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802AA22
ldr r0, [sp]
cmp r0, 0
beq _0802AA1C
cmp r0, 0x7
bne _0802AA22
movs r0, 0x26
bl sub_802B2BC
b _0802AA22
_0802AA1C:
movs r0, 0x1
bl sub_802B2BC
_0802AA22:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802A9FC
thumb_func_start sub_802AA28
sub_802AA28:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802AAA6
ldr r2, [sp]
cmp r2, 0
beq _0802AAA0
cmp r2, 0
blt _0802AAA6
cmp r2, 0x5
bgt _0802AAA6
cmp r2, 0x3
blt _0802AAA6
ldr r0, _0802AA7C
ldr r0, [r0]
ldr r3, _0802AA80
adds r1, r0, r3
str r2, [r1]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0802AA8C
movs r0, 0x5
bl sub_80953D4
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r0, 0x22
ldrb r0, [r0]
cmp r0, 0
beq _0802AA84
movs r0, 0x7
bl sub_802B2BC
b _0802AAA6
.align 2, 0
_0802AA7C: .4byte gUnknown_203B2C4
_0802AA80: .4byte 0x00000534
_0802AA84:
movs r0, 0x9
bl sub_802B2BC
b _0802AAA6
_0802AA8C:
cmp r2, 0x5
bne _0802AA98
movs r0, 0x26
bl sub_802B2BC
b _0802AAA6
_0802AA98:
movs r0, 0x1D
bl sub_802B2BC
b _0802AAA6
_0802AAA0:
movs r0, 0x1
bl sub_802B2BC
_0802AAA6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802AA28
thumb_func_start sub_802AAAC
sub_802AAAC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802AAC0
movs r0, 0x1
bl sub_802B2BC
_0802AAC0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802AAAC
thumb_func_start sub_802AAC8
sub_802AAC8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802AADC
movs r0, 0x3
bl sub_802B2BC
_0802AADC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802AAC8
thumb_func_start sub_802AAE4
sub_802AAE4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802AB5A
ldr r2, [sp]
cmp r2, 0x1
beq _0802AB08
cmp r2, 0x1
bgt _0802AB02
cmp r2, 0
beq _0802AB54
b _0802AB5A
_0802AB02:
cmp r2, 0x2
beq _0802AB38
b _0802AB5A
_0802AB08:
ldr r0, _0802AB2C
ldr r0, [r0]
movs r1, 0x6
str r1, [r0, 0x40]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
str r2, [r0]
movs r0, 0x5
bl sub_8095324
cmp r0, 0
bne _0802AB30
movs r0, 0x4
bl sub_802B2BC
b _0802AB5A
.align 2, 0
_0802AB2C: .4byte gUnknown_203B2C4
_0802AB30:
movs r0, 0xF
bl sub_802B2BC
b _0802AB5A
_0802AB38:
ldr r0, _0802AB50
ldr r0, [r0]
movs r1, 0x7
str r1, [r0, 0x40]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
str r2, [r0]
movs r0, 0x6
bl sub_802B2BC
b _0802AB5A
.align 2, 0
_0802AB50: .4byte gUnknown_203B2C4
_0802AB54:
movs r0, 0x2
bl sub_802B2BC
_0802AB5A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802AAE4
thumb_func_start sub_802AB60
sub_802AB60:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802AB74
movs r0, 0x22
bl sub_802B2BC
_0802AB74:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802AB60
thumb_func_start sub_802AB7C
sub_802AB7C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802AB90
movs r0, 0x22
bl sub_802B2BC
_0802AB90:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802AB7C
thumb_func_start sub_802AB98
sub_802AB98:
push {r4,lr}
bl sub_802F298
cmp r0, 0x3
bne _0802ABE0
bl sub_802F2C0
ldr r0, _0802ABE8
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _0802ABEC
bl strcpy
ldr r0, _0802ABF0
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r0, r1
ldr r1, [r0]
movs r0, 0x6
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095240
movs r0, 0x24
bl sub_802B2BC
_0802ABE0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802ABE8: .4byte gUnknown_202E5D8
_0802ABEC: .4byte gUnknown_202DF98
_0802ABF0: .4byte gUnknown_203B2C4
thumb_func_end sub_802AB98
thumb_func_start nullsub_131
nullsub_131:
bx lr
thumb_func_end nullsub_131
thumb_func_start sub_802ABF8
sub_802ABF8:
push {r4-r6,lr}
sub sp, 0xB8
ldr r1, _0802AC14
ldr r0, [r1]
ldrb r0, [r0]
adds r6, r1, 0
cmp r0, 0x2A
bls _0802AC0A
b _0802B2AA
_0802AC0A:
lsls r0, 2
ldr r1, _0802AC18
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802AC14: .4byte gUnknown_203B2C4
_0802AC18: .4byte _0802AC1C
.align 2, 0
_0802AC1C:
.4byte _0802B1DC
.4byte _0802B1FC
.4byte _0802B22C
.4byte _0802B2AA
.4byte _0802B1D4
.4byte _0802ACC8
.4byte _0802B248
.4byte _0802B194
.4byte _0802B1A4
.4byte _0802B168
.4byte _0802B138
.4byte _0802B128
.4byte _0802B0F0
.4byte _0802B0AC
.4byte _0802AD08
.4byte _0802AD18
.4byte _0802AD20
.4byte _0802AD46
.4byte _0802B2AA
.4byte _0802AD80
.4byte _0802ADB0
.4byte _0802B2AA
.4byte _0802B07C
.4byte _0802B094
.4byte _0802B2AA
.4byte _0802AF50
.4byte _0802AF1A
.4byte _0802AF46
.4byte _0802B2AA
.4byte _0802B0A4
.4byte _0802ADF8
.4byte _0802B2AA
.4byte _0802AF70
.4byte _0802AF78
.4byte _0802AFAC
.4byte _0802B2AA
.4byte _0802AF60
.4byte _0802B2AA
.4byte _0802AEEC
.4byte _0802AEF4
.4byte _0802B2AA
.4byte _0802B110
.4byte _0802B120
_0802ACC8:
bl sub_808D33C
adds r1, r0, 0
adds r1, 0x4C
add r0, sp, 0x14
movs r2, 0xA
bl sub_80922B4
ldr r5, _0802ACF8
ldr r0, [r5]
ldr r4, _0802ACFC
adds r0, r4
ldr r1, _0802AD00
add r2, sp, 0x14
bl sub_800D158
ldr r2, [r5]
adds r4, r2, r4
movs r0, 0x84
lsls r0, 3
adds r2, r0
ldr r3, _0802AD04
adds r0, r4, 0
b _0802B238
.align 2, 0
_0802ACF8: .4byte gUnknown_203B2C4
_0802ACFC: .4byte 0x00000434
_0802AD00: .4byte gUnknown_80DF250
_0802AD04: .4byte 0x0000010d
_0802AD08:
ldr r0, _0802AD10
ldr r3, _0802AD14
b _0802B1A8
.align 2, 0
_0802AD10: .4byte gUnknown_80DF304
_0802AD14: .4byte gUnknown_80DEE60
_0802AD18:
ldr r0, _0802AD1C
b _0802B22E
.align 2, 0
_0802AD1C: .4byte gUnknown_80DF330
_0802AD20:
bl sub_8030894
cmp r0, 0
beq _0802AD2A
b _0802B2AA
_0802AD2A:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x5
movs r1, 0
movs r2, 0
movs r3, 0x6
bl sub_80306A8
b _0802B2AA
_0802AD46:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _0802AD78
ldr r2, _0802AD7C
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_803092C
b _0802ADE0
.align 2, 0
_0802AD78: .4byte gUnknown_80DED60
_0802AD7C: .4byte gUnknown_80DED78
_0802AD80:
bl sub_801D008
cmp r0, 0
beq _0802AD8A
b _0802B2AA
_0802AD8A:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
add r2, sp, 0xB4
ldr r0, _0802ADAC
str r0, [r2]
movs r0, 0
movs r1, 0x1
movs r3, 0x9
bl sub_801C8C4
b _0802B2AA
.align 2, 0
_0802ADAC: .4byte 0x00020003
_0802ADB0:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _0802ADF0
ldr r2, _0802ADF4
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_801CCD8
_0802ADE0:
ldr r0, [r6]
adds r0, r5
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
b _0802B2AA
.align 2, 0
_0802ADF0: .4byte gUnknown_80DED48
_0802ADF4: .4byte gUnknown_80DED78
_0802ADF8:
ldr r1, [r6]
movs r0, 0
str r0, [r1, 0x44]
bl sub_8011830
ldr r0, [r6]
ldr r0, [r0, 0x40]
bl sub_8037B28
ldr r1, [r6]
str r0, [r1, 0x44]
cmp r0, 0
bne _0802AEE6
ldr r0, [r1, 0x40]
cmp r0, 0x6
beq _0802AE1E
cmp r0, 0x7
beq _0802AE5C
b _0802AE8C
_0802AE1E:
movs r4, 0xDC
lsls r4, 1
adds r0, r1, r4
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r5, 0x86
lsls r5, 2
adds r0, r5
ldrb r0, [r0]
bl sub_8095228
ldr r1, [r6]
adds r1, r4
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r4, r2, r4
movs r1, 0xF4
lsls r1, 1
adds r2, r1
b _0802AE82
_0802AE5C:
movs r4, 0xDC
lsls r4, 1
adds r0, r1, r4
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r5, 0xF4
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r4, r2, r4
adds r2, r5
_0802AE82:
adds r1, r4, 0
bl sub_8037D64
ldr r1, [r6]
str r0, [r1, 0x44]
_0802AE8C:
ldr r4, _0802AED0
ldr r2, [r4]
ldr r0, [r2, 0x44]
cmp r0, 0
bne _0802AEE6
ldr r0, [r2, 0x40]
cmp r0, 0x7
bhi _0802AEE6
cmp r0, 0x6
bcc _0802AEE6
movs r3, 0xDC
lsls r3, 1
adds r1, r2, r3
movs r5, 0xF4
lsls r5, 1
adds r2, r5
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x44]
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _0802AED4
ldr r0, [r4]
movs r2, 0x86
lsls r2, 3
adds r1, r0, r2
movs r3, 0xFC
lsls r3, 1
adds r0, r3
b _0802AEE2
.align 2, 0
_0802AED0: .4byte gUnknown_203B2C4
_0802AED4:
ldr r0, [r4]
movs r5, 0x86
lsls r5, 3
adds r1, r0, r5
movs r2, 0xE4
lsls r2, 1
adds r0, r2
_0802AEE2:
ldr r0, [r0]
str r0, [r1]
_0802AEE6:
bl sub_8011854
b _0802B2AA
_0802AEEC:
ldr r0, _0802AEF0
b _0802B22E
.align 2, 0
_0802AEF0: .4byte gUnknown_80DF380
_0802AEF4:
ldr r0, [r6]
movs r5, 0xEF
lsls r5, 2
adds r0, r5
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r6]
adds r1, 0x8
movs r0, 0x4
bl sub_80151C0
b _0802B2AA
_0802AF1A:
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r6]
movs r2, 0x86
lsls r2, 2
adds r0, r2
ldrb r0, [r0]
movs r1, 0
bl sub_8031D70
b _0802B2AA
_0802AF46:
ldr r0, _0802AF4C
b _0802B22E
.align 2, 0
_0802AF4C: .4byte gUnknown_80DF3B4
_0802AF50:
ldr r0, _0802AF5C
ldr r2, [r6]
movs r5, 0x84
lsls r5, 3
adds r2, r5
b _0802B236
.align 2, 0
_0802AF5C: .4byte gUnknown_80DF418
_0802AF60:
ldr r0, _0802AF6C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802AF6C: .4byte gUnknown_80DF44C
_0802AF70:
ldr r0, _0802AF74
b _0802B22E
.align 2, 0
_0802AF74: .4byte gUnknown_80DF46C
_0802AF78:
ldr r0, [r6]
ldr r5, _0802AF90
adds r0, r5
ldr r0, [r0]
cmp r0, 0x4
bne _0802AF86
b _0802B2AA
_0802AF86:
cmp r0, 0x4
bgt _0802AF94
cmp r0, 0x3
beq _0802AF9A
b _0802B2AA
.align 2, 0
_0802AF90: .4byte 0x00000534
_0802AF94:
cmp r0, 0x6
ble _0802AF9A
b _0802B2AA
_0802AF9A:
ldr r0, _0802AFA8
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802AFA8: .4byte gUnknown_80DF4F4
_0802AFAC:
movs r4, 0x98
lsls r4, 1
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r5, _0802B00C
ldr r0, [r5]
ldr r2, _0802B010
adds r0, r2
bl strcpy
ldr r1, [r5]
movs r3, 0xAA
lsls r3, 3
adds r0, r1, r3
movs r2, 0
strh r4, [r0]
ldr r0, _0802B014
adds r1, r0
movs r0, 0x2
strb r0, [r1]
ldr r0, [r5]
adds r3, 0x4
adds r1, r0, r3
str r2, [r1]
movs r1, 0x86
lsls r1, 3
adds r0, r1
ldr r1, [r0]
movs r0, 0x6
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r2, r0, 0
adds r0, 0x22
ldrb r1, [r0]
cmp r1, 0
beq _0802B018
ldr r0, [r5]
movs r3, 0xAB
lsls r3, 3
adds r0, r3
b _0802B022
.align 2, 0
_0802B00C: .4byte gUnknown_203B2C4
_0802B010: .4byte 0x0000053c
_0802B014: .4byte 0x00000552
_0802B018:
ldr r0, [r5]
movs r5, 0xAB
lsls r5, 3
adds r0, r5
movs r1, 0
_0802B022:
strb r1, [r0]
ldr r4, _0802B068
ldr r0, [r4]
ldr r1, _0802B06C
adds r0, r1
movs r5, 0
movs r1, 0x1
strb r1, [r0]
adds r0, r2, 0x4
movs r1, 0
bl sub_803C200
ldr r1, [r4]
movs r3, 0xAC
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
ldr r0, _0802B070
adds r1, r0
strb r5, [r1]
ldr r0, [r4]
ldr r1, _0802B074
adds r0, r1
strb r5, [r0]
ldr r0, [r4]
ldr r2, _0802B078
adds r0, r2
strb r5, [r0]
ldr r0, [r4]
subs r3, 0x24
adds r0, r3
movs r1, 0
bl sub_802F204
b _0802B2AA
.align 2, 0
_0802B068: .4byte gUnknown_203B2C4
_0802B06C: .4byte 0x0000055b
_0802B070: .4byte 0x00000559
_0802B074: .4byte 0x0000055a
_0802B078: .4byte 0x0000055c
_0802B07C:
movs r0, 0
bl nullsub_23
ldr r0, _0802B090
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
b _0802B2AA
.align 2, 0
_0802B090: .4byte gUnknown_80DF544
_0802B094:
ldr r0, _0802B0A0
ldr r2, [r6]
movs r5, 0x84
lsls r5, 3
adds r2, r5
b _0802B236
.align 2, 0
_0802B0A0: .4byte gUnknown_80DF594
_0802B0A4:
ldr r0, _0802B0A8
b _0802B1A6
.align 2, 0
_0802B0A8: .4byte gUnknown_80DF5E4
_0802B0AC:
bl sub_808D33C
adds r1, r0, 0
add r6, sp, 0x64
adds r1, 0x4C
adds r0, r6, 0
movs r2, 0xA
bl sub_80922B4
ldr r5, _0802B0E0
ldr r0, [r5]
ldr r4, _0802B0E4
adds r0, r4
ldr r1, _0802B0E8
adds r2, r6, 0
bl sub_800D158
ldr r2, [r5]
adds r4, r2, r4
movs r3, 0x84
lsls r3, 3
adds r2, r3
ldr r3, _0802B0EC
adds r0, r4, 0
b _0802B238
.align 2, 0
_0802B0E0: .4byte gUnknown_203B2C4
_0802B0E4: .4byte 0x00000434
_0802B0E8: .4byte gUnknown_80DF63C
_0802B0EC: .4byte 0x0000010d
_0802B0F0:
ldr r0, _0802B108
ldr r3, _0802B10C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r5, 0x84
lsls r5, 3
adds r1, r5
b _0802B1BA
.align 2, 0
_0802B108: .4byte gUnknown_80DF694
_0802B10C: .4byte gUnknown_80DEEE4
_0802B110:
ldr r0, _0802B11C
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802B11C: .4byte gUnknown_80DF44C
_0802B120:
ldr r0, _0802B124
b _0802B22E
.align 2, 0
_0802B124: .4byte gUnknown_80DF6F0
_0802B128:
ldr r0, _0802B134
ldr r2, [r6]
movs r5, 0x84
lsls r5, 3
adds r2, r5
b _0802B236
.align 2, 0
_0802B134: .4byte gUnknown_80DF710
_0802B138:
ldr r0, _0802B160
ldr r3, _0802B164
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B160: .4byte gUnknown_80DF73C
_0802B164: .4byte gUnknown_80DEEBC
_0802B168:
ldr r0, _0802B18C
ldr r3, _0802B190
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r5, 0x84
lsls r5, 3
adds r1, r5
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B18C: .4byte gUnknown_80DF77C
_0802B190: .4byte gUnknown_80DEE7C
_0802B194:
ldr r0, _0802B1A0
ldr r2, [r6]
movs r1, 0x84
lsls r1, 3
adds r2, r1
b _0802B236
.align 2, 0
_0802B1A0: .4byte gUnknown_80DF7D4
_0802B1A4:
ldr r0, _0802B1CC
_0802B1A6:
ldr r3, _0802B1D0
_0802B1A8:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
_0802B1BA:
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x7
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B1CC: .4byte gUnknown_80DF870
_0802B1D0: .4byte gUnknown_80DEE44
_0802B1D4:
ldr r0, _0802B1D8
b _0802B22E
.align 2, 0
_0802B1D8: .4byte gUnknown_80DF8B4
_0802B1DC:
ldr r0, _0802B1F4
ldr r3, _0802B1F8
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r5, 0x84
lsls r5, 3
adds r1, r5
b _0802B212
.align 2, 0
_0802B1F4: .4byte gUnknown_80DF8EC
_0802B1F8: .4byte gUnknown_80DEDB8
_0802B1FC:
ldr r0, _0802B224
ldr r3, _0802B228
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
ldr r1, [r6]
movs r2, 0x84
lsls r2, 3
adds r1, r2
_0802B212:
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x1
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B224: .4byte gUnknown_80DF928
_0802B228: .4byte gUnknown_80DEDB8
_0802B22C:
ldr r0, _0802B240
_0802B22E:
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r2, r3
_0802B236:
ldr r3, _0802B244
_0802B238:
movs r1, 0
bl sub_80141B4
b _0802B2AA
.align 2, 0
_0802B240: .4byte gUnknown_80DF94C
_0802B244: .4byte 0x0000010d
_0802B248:
ldr r4, [r6]
movs r5, 0xA7
lsls r5, 3
adds r0, r4, r5
ldr r0, [r0]
cmp r0, 0x1
beq _0802B25C
cmp r0, 0x2
beq _0802B288
b _0802B2AA
_0802B25C:
ldr r0, _0802B280
ldr r3, _0802B284
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r2, 0x84
lsls r2, 3
adds r1, r4, r2
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _0802B2AA
.align 2, 0
_0802B280: .4byte gUnknown_80DF96C
_0802B284: .4byte gUnknown_80DEE08
_0802B288:
ldr r0, _0802B2B4
ldr r3, _0802B2B8
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r5, 0x84
lsls r5, 3
adds r1, r4, r5
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
_0802B2AA:
add sp, 0xB8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802B2B4: .4byte gUnknown_80DF9A4
_0802B2B8: .4byte gUnknown_80DEE08
thumb_func_end sub_802ABF8
thumb_func_start sub_802B2BC
sub_802B2BC:
push {lr}
ldr r1, _0802B2D0
ldr r1, [r1]
strb r0, [r1]
bl nullsub_131
bl sub_802ABF8
pop {r0}
bx r0
.align 2, 0
_0802B2D0: .4byte gUnknown_203B2C4
thumb_func_end sub_802B2BC
thumb_func_start sub_802B2D4
sub_802B2D4:
push {r4,r5,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _0802B348
movs r4, 0xA0
lsls r4, 1
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
ldr r1, [r5]
movs r0, 0xFF
strb r0, [r1, 0x1]
ldr r0, _0802B34C
subs r4, 0x10
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808DDD0
ldr r1, [r5]
str r0, [r1, 0x4]
ldr r0, [r0, 0x4]
str r0, [r1, 0x8]
movs r2, 0
strb r2, [r1, 0x10]
ldr r0, [r5]
strb r2, [r0, 0x11]
ldr r0, [r5]
strb r2, [r0, 0x12]
ldr r0, [r5]
movs r1, 0x2
strh r1, [r0, 0xC]
movs r1, 0x8
strh r1, [r0, 0xE]
adds r0, 0x1
bl sub_8099394
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0802B350
movs r0, 0
bl sub_802B548
movs r0, 0x1
b _0802B352
.align 2, 0
_0802B348: .4byte gUnknown_203B2C8
_0802B34C: .4byte gUnknown_202E5D8
_0802B350:
movs r0, 0
_0802B352:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_802B2D4
thumb_func_start sub_802B358
sub_802B358:
push {lr}
ldr r0, _0802B370
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x5
bhi _0802B3B2
lsls r0, 2
ldr r1, _0802B374
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802B370: .4byte gUnknown_203B2C8
_0802B374: .4byte _0802B378
.align 2, 0
_0802B378:
.4byte _0802B390
.4byte _0802B396
.4byte _0802B39C
.4byte _0802B3A2
.4byte _0802B3A8
.4byte _0802B3AE
_0802B390:
bl sub_802B560
b _0802B3B2
_0802B396:
bl sub_802B57C
b _0802B3B2
_0802B39C:
bl sub_802B5B8
b _0802B3B2
_0802B3A2:
bl sub_802B5FC
b _0802B3B2
_0802B3A8:
bl sub_802B624
b _0802B3B2
_0802B3AE:
movs r0, 0x3
b _0802B3B4
_0802B3B2:
movs r0, 0
_0802B3B4:
pop {r1}
bx r1
thumb_func_end sub_802B358
thumb_func_start sub_802B3B8
sub_802B3B8:
push {r4,lr}
ldr r4, _0802B3D8
ldr r0, [r4]
cmp r0, 0
beq _0802B3D2
ldr r0, [r0, 0x4]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802B3D2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802B3D8: .4byte gUnknown_203B2C8
thumb_func_end sub_802B3B8
thumb_func_start nullsub_132
nullsub_132:
bx lr
thumb_func_end nullsub_132
thumb_func_start sub_802B3E0
sub_802B3E0:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x28
ldr r1, _0802B404
ldr r0, [r1]
ldrb r0, [r0]
adds r2, r1, 0
cmp r0, 0x5
bls _0802B3F8
b _0802B532
_0802B3F8:
lsls r0, 2
ldr r1, _0802B408
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802B404: .4byte gUnknown_203B2C8
_0802B408: .4byte _0802B40C
.align 2, 0
_0802B40C:
.4byte _0802B424
.4byte _0802B464
.4byte _0802B50C
.4byte _0802B532
.4byte _0802B524
.4byte _0802B532
_0802B424:
movs r0, 0
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0802B438
mov r0, sp
bl sub_80920D8
b _0802B440
_0802B438:
ldr r1, _0802B458
mov r0, sp
bl strcpy
_0802B440:
ldr r4, _0802B45C
ldr r0, [r4]
adds r0, 0x14
ldr r1, _0802B460
mov r2, sp
bl sub_800D158
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x14
b _0802B510
.align 2, 0
_0802B458: .4byte gUnknown_80DF9F0
_0802B45C: .4byte gUnknown_203B2C8
_0802B460: .4byte gUnknown_80DF9F8
_0802B464:
movs r6, 0x98
lsls r6, 1
adds r0, r6, 0
bl sub_808D994
adds r1, r0, 0
ldr r5, _0802B500
ldr r0, [r5]
movs r2, 0x8A
lsls r2, 1
mov r9, r2
add r0, r9
bl strcpy
ldr r2, [r5]
movs r3, 0x94
lsls r3, 1
adds r0, r2, r3
movs r1, 0
mov r8, r1
movs r1, 0
strh r6, [r0]
adds r3, 0x2
adds r2, r3
movs r0, 0x2
strb r0, [r2]
ldr r0, [r5]
movs r2, 0x96
lsls r2, 1
adds r0, r2
str r1, [r0]
bl sub_8097790
ldr r0, [r5]
ldrb r0, [r0, 0x1]
bl sub_8095228
adds r4, r0, 0
adds r4, 0x4
ldr r2, [r5]
adds r2, r6
adds r0, r4, 0
movs r1, 0
bl sub_803C37C
adds r0, r4, 0
movs r1, 0
bl sub_803C200
ldr r2, [r5]
movs r3, 0x9C
lsls r3, 1
adds r1, r2, r3
str r0, [r1]
ldr r1, _0802B504
adds r0, r2, r1
mov r2, r8
strb r2, [r0]
ldr r0, [r5]
subs r3, 0x6
adds r0, r3
strb r2, [r0]
ldr r0, [r5]
ldr r2, _0802B508
adds r1, r0, r2
movs r0, 0xA
strb r0, [r1]
ldr r0, [r5]
adds r3, 0x2
adds r0, r3
mov r1, r8
strb r1, [r0]
ldr r0, [r5]
add r0, r9
movs r1, 0
bl sub_802F204
b _0802B532
.align 2, 0
_0802B500: .4byte gUnknown_203B2C8
_0802B504: .4byte 0x00000131
_0802B508: .4byte 0x00000133
_0802B50C:
ldr r0, _0802B51C
ldr r2, [r2]
_0802B510:
adds r2, 0x4
ldr r3, _0802B520
movs r1, 0
bl sub_80141B4
b _0802B532
.align 2, 0
_0802B51C: .4byte gUnknown_80DFAA8
_0802B520: .4byte 0x0000010d
_0802B524:
ldr r0, _0802B540
ldr r2, [r2]
adds r2, 0x4
ldr r3, _0802B544
movs r1, 0
bl sub_80141B4
_0802B532:
add sp, 0x28
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802B540: .4byte gUnknown_80DFB14
_0802B544: .4byte 0x0000010d
thumb_func_end sub_802B3E0
thumb_func_start sub_802B548
sub_802B548:
push {lr}
ldr r1, _0802B55C
ldr r1, [r1]
strb r0, [r1]
bl nullsub_132
bl sub_802B3E0
pop {r0}
bx r0
.align 2, 0
_0802B55C: .4byte gUnknown_203B2C8
thumb_func_end sub_802B548
thumb_func_start sub_802B560
sub_802B560:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802B574
movs r0, 0x1
bl sub_802B548
_0802B574:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802B560
thumb_func_start sub_802B57C
sub_802B57C:
push {r4,lr}
bl sub_802F298
cmp r0, 0x3
bne _0802B5AA
bl sub_802F2C0
ldr r0, _0802B5B0
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _0802B5B4
bl strcpy
movs r0, 0x2
bl sub_802B548
_0802B5AA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802B5B0: .4byte gUnknown_202E5D8
_0802B5B4: .4byte gUnknown_202DF98
thumb_func_end sub_802B57C
thumb_func_start sub_802B5B8
sub_802B5B8:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802B5EE
bl sub_8011C34
adds r4, r0, 0
ldr r0, _0802B5F8
ldr r0, [r0]
ldrb r0, [r0, 0x1]
bl sub_8095228
movs r1, 0x4
strb r1, [r0]
str r4, [r0, 0x28]
movs r0, 0x3
bl sub_802B548
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl sub_8012574
_0802B5EE:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802B5F8: .4byte gUnknown_203B2C8
thumb_func_end sub_802B5B8
thumb_func_start sub_802B5FC
sub_802B5FC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802B61E
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _0802B61E
bl sub_8012750
movs r0, 0x4
bl sub_802B548
_0802B61E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802B5FC
thumb_func_start sub_802B624
sub_802B624:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802B638
movs r0, 0x5
bl sub_802B548
_0802B638:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802B624
thumb_func_start sub_802B640
sub_802B640:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r4, r1, 0
mov r8, r2
bl sub_802B9D8
lsls r0, 24
cmp r0, 0
beq _0802B65A
movs r0, 0
b _0802B706
_0802B65A:
ldr r5, _0802B710
ldr r0, [r5]
cmp r0, 0
bne _0802B66C
movs r0, 0xD4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
_0802B66C:
ldr r0, [r5]
str r6, [r0, 0x6C]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x74
adds r1, r0, r1
str r1, [r0, 0x70]
adds r0, 0x74
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x6C]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x74
ldr r0, _0802B714
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
cmp r4, 0
beq _0802B6B0
ldr r1, [r5]
ldr r2, [r1, 0x6C]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, 0x7C
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_0802B6B0:
ldr r0, [r5]
ldr r0, [r0, 0x70]
mov r1, r8
bl sub_8012D08
bl sub_8004914
ldr r0, [r5]
adds r0, 0x74
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x38
bl sub_802B9A8
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r6, 0
bl sub_8013818
ldr r2, [r5]
ldr r0, _0802B718
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x50
strh r1, [r0]
ldr r0, _0802B71C
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0x56
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x38
bl sub_8013984
bl sub_802B880
bl sub_802B8D4
movs r0, 0x1
_0802B706:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802B710: .4byte gUnknown_203B2CC
_0802B714: .4byte gUnknown_80DFBEC
_0802B718: .4byte gUnknown_203B2D0
_0802B71C: .4byte gUnknown_203B2D2
thumb_func_end sub_802B640
thumb_func_start sub_802B720
sub_802B720:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0802B73C
ldr r0, _0802B738
ldr r0, [r0]
adds r0, 0x38
bl sub_8013660
movs r0, 0
b _0802B7A2
.align 2, 0
_0802B738: .4byte gUnknown_203B2CC
_0802B73C:
ldr r0, _0802B754
ldr r0, [r0]
adds r0, 0x38
bl GetKeyPress
cmp r0, 0x2
beq _0802B75E
cmp r0, 0x2
bgt _0802B758
cmp r0, 0x1
beq _0802B768
b _0802B77C
.align 2, 0
_0802B754: .4byte gUnknown_203B2CC
_0802B758:
cmp r0, 0x4
beq _0802B772
b _0802B77C
_0802B75E:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802B7A2
_0802B768:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0802B7A2
_0802B772:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0802B7A2
_0802B77C:
ldr r0, _0802B794
ldr r0, [r0]
adds r0, 0x38
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802B798
movs r0, 0
b _0802B7A2
.align 2, 0
_0802B794: .4byte gUnknown_203B2CC
_0802B798:
bl sub_802B880
bl sub_802B8D4
movs r0, 0x1
_0802B7A2:
pop {r1}
bx r1
thumb_func_end sub_802B720
thumb_func_start sub_802B7A8
sub_802B7A8:
ldr r0, _0802B7CC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x56
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r2, 0
adds r1, 0x50
movs r3, 0
ldrsh r1, [r1, r3]
adds r0, r1
adds r0, r2, r0
ldrb r0, [r0]
bx lr
.align 2, 0
_0802B7CC: .4byte gUnknown_203B2CC
thumb_func_end sub_802B7A8
thumb_func_start sub_802B7D0
sub_802B7D0:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0802B818
ldr r0, [r5]
adds r0, 0x74
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_802B9A8
adds r1, r0, 0
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x5A
strh r1, [r2]
adds r0, 0x38
bl sub_8013984
bl sub_802B880
bl sub_802B8D4
cmp r4, 0
beq _0802B812
ldr r0, [r5]
adds r0, 0x38
bl AddMenuCursorSprite
_0802B812:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802B818: .4byte gUnknown_203B2CC
thumb_func_end sub_802B7D0
thumb_func_start sub_802B81C
sub_802B81C:
push {r4,r5,lr}
ldr r4, _0802B870
ldr r2, [r4]
cmp r2, 0
beq _0802B86A
ldr r1, _0802B874
adds r0, r2, 0
adds r0, 0x50
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _0802B878
adds r0, r2, 0
adds r0, 0x56
ldrh r0, [r0]
strh r0, [r1]
ldr r0, [r2, 0x6C]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x74
ldr r0, _0802B87C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x74
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802B86A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802B870: .4byte gUnknown_203B2CC
_0802B874: .4byte gUnknown_203B2D0
_0802B878: .4byte gUnknown_203B2D2
_0802B87C: .4byte gUnknown_80DFBD0
thumb_func_end sub_802B81C
thumb_func_start sub_802B880
sub_802B880:
push {r4,lr}
ldr r4, _0802B8D0
ldr r0, [r4]
adds r0, 0x52
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x6C]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x82
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x6C]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x84
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x74
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802B8D0: .4byte gUnknown_203B2CC
thumb_func_end sub_802B880
thumb_func_start sub_802B8D4
sub_802B8D4:
push {r4-r7,lr}
sub sp, 0x8
ldr r4, _0802B99C
ldr r0, [r4]
ldr r0, [r0, 0x6C]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x6C]
bl sub_80073B8
ldr r2, _0802B9A0
ldr r0, [r4]
ldr r3, [r0, 0x6C]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r0, _0802B9A4
ldrb r0, [r0, 0x2]
lsls r0, 3
adds r0, 0x4
ldr r3, [r4]
adds r1, r3, 0
adds r1, 0x56
movs r5, 0
ldrsh r2, [r1, r5]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
ldr r1, [r3, 0x6C]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r6, 0
ldr r0, [r4]
adds r0, 0x52
movs r1, 0
ldrsh r0, [r0, r1]
cmp r6, r0
bge _0802B98A
adds r7, r4, 0
_0802B930:
ldr r0, [r7]
adds r0, 0x38
adds r1, r6, 0
bl sub_8013800
adds r5, r0, 0
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0x56
movs r3, 0
ldrsh r2, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r2
adds r0, r6
adds r0, r1, r0
ldrb r4, [r0]
ldr r3, [r1, 0x6C]
movs r0, 0xA
adds r1, r5, 0
movs r2, 0x6
bl sub_803B6B0
bl sub_802BC7C
adds r0, r4, 0
bl sub_803C190
adds r2, r0, 0
ldr r0, [r7]
ldr r3, [r0, 0x6C]
movs r0, 0
str r0, [sp]
movs r0, 0x15
adds r1, r5, 0
bl sub_8014FF0
adds r6, 0x1
ldr r0, [r7]
adds r0, 0x52
movs r5, 0
ldrsh r0, [r0, r5]
cmp r6, r0
blt _0802B930
_0802B98A:
ldr r0, _0802B99C
ldr r0, [r0]
ldr r0, [r0, 0x6C]
bl sub_80073E0
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802B99C: .4byte gUnknown_203B2CC
_0802B9A0: .4byte gUnknown_80DFC04
_0802B9A4: .4byte gUnknown_80DFBE8
thumb_func_end sub_802B8D4
thumb_func_start sub_802B9A8
sub_802B9A8:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_0802B9AE:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096E14
lsls r0, 24
cmp r0, 0
beq _0802B9C6
ldr r0, _0802B9D4
ldr r0, [r0]
adds r0, r5
strb r4, [r0]
adds r5, 0x1
_0802B9C6:
adds r4, 0x1
cmp r4, 0x37
ble _0802B9AE
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0802B9D4: .4byte gUnknown_203B2CC
thumb_func_end sub_802B9A8
thumb_func_start sub_802B9D8
sub_802B9D8:
push {r4,lr}
movs r4, 0
_0802B9DC:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096E14
lsls r0, 24
cmp r0, 0
beq _0802B9EE
movs r0, 0
b _0802B9F6
_0802B9EE:
adds r4, 0x1
cmp r4, 0x37
ble _0802B9DC
movs r0, 0x1
_0802B9F6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802B9D8
thumb_func_start sub_802B9FC
sub_802B9FC:
push {r4-r7,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _0802BA80
movs r0, 0x94
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r6, 0
strb r4, [r0, 0x4]
ldr r0, [r5]
adds r0, 0x88
bl sub_801317C
ldr r1, [r5]
str r6, [r1, 0x24]
adds r1, 0x28
ldr r0, _0802BA84
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r1, [r5]
ldr r2, _0802BA88
adds r1, 0x40
adds r0, r2, 0
ldm r0!, {r3,r4,r7}
stm r1!, {r3,r4,r7}
ldm r0!, {r3,r4,r7}
stm r1!, {r3,r4,r7}
ldr r1, [r5]
adds r1, 0x58
adds r0, r2, 0
ldm r0!, {r3,r4,r7}
stm r1!, {r3,r4,r7}
ldm r0!, {r3,r4,r7}
stm r1!, {r3,r4,r7}
ldr r0, [r5]
adds r0, 0x70
ldm r2!, {r1,r4,r7}
stm r0!, {r1,r4,r7}
ldm r2!, {r3,r4,r7}
stm r0!, {r3,r4,r7}
bl sub_8004914
ldr r0, [r5]
adds r0, 0x28
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
str r6, [r0, 0x8]
bl sub_802BCC4
bl sub_802BC7C
movs r0, 0
bl sub_802BB14
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802BA80: .4byte gUnknown_203B2D4
_0802BA84: .4byte gUnknown_80DFC34
_0802BA88: .4byte gUnknown_80DFC18
thumb_func_end sub_802B9FC
thumb_func_start sub_802BA8C
sub_802BA8C:
push {lr}
ldr r0, _0802BAA4
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x1
beq _0802BAB8
cmp r0, 0x1
bgt _0802BAA8
cmp r0, 0
beq _0802BAB2
b _0802BAC2
.align 2, 0
_0802BAA4: .4byte gUnknown_203B2D4
_0802BAA8:
cmp r0, 0x2
beq _0802BAC2
cmp r0, 0x3
beq _0802BABE
b _0802BAC2
_0802BAB2:
bl sub_802BB98
b _0802BAC6
_0802BAB8:
bl sub_802BC08
b _0802BAC6
_0802BABE:
movs r0, 0x3
b _0802BAC8
_0802BAC2:
movs r0, 0x2
b _0802BAC8
_0802BAC6:
movs r0, 0
_0802BAC8:
pop {r1}
bx r1
thumb_func_end sub_802BA8C
thumb_func_start sub_802BACC
sub_802BACC:
push {r4,r5,lr}
ldr r4, _0802BB0C
ldr r2, [r4]
cmp r2, 0
beq _0802BB06
ldr r0, [r2, 0x24]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x28
ldr r0, _0802BB10
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x28
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802BB06:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802BB0C: .4byte gUnknown_203B2D4
_0802BB10: .4byte gUnknown_80DFC18
thumb_func_end sub_802BACC
thumb_func_start sub_802BB14
sub_802BB14:
push {lr}
ldr r1, _0802BB24
ldr r1, [r1]
str r0, [r1]
bl sub_802BB28
pop {r0}
bx r0
.align 2, 0
_0802BB24: .4byte gUnknown_203B2D4
thumb_func_end sub_802BB14
thumb_func_start sub_802BB28
sub_802BB28:
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _0802BB94
ldr r1, [r5]
ldr r0, [r1]
cmp r0, 0
blt _0802BB8C
cmp r0, 0x1
bgt _0802BB8C
ldr r0, [r1, 0x24]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073B8
ldr r0, [r5]
ldrb r0, [r0, 0x4]
bl sub_803C190
adds r2, r0, 0
ldr r0, [r5]
ldr r3, [r0, 0x24]
movs r4, 0
str r4, [sp]
movs r0, 0xA
movs r1, 0
bl sub_8014FF0
ldr r3, [r5]
ldr r1, [r3, 0x8]
lsls r1, 2
adds r0, r3, 0
adds r0, 0x10
adds r0, r1
ldr r2, [r0]
ldr r3, [r3, 0x24]
str r4, [sp]
movs r0, 0x6
movs r1, 0x14
bl sub_8014FF0
ldr r0, [r5]
ldr r0, [r0, 0x24]
bl sub_80073E0
ldr r1, [r5]
ldr r0, [r1, 0x8]
adds r0, 0x1
str r0, [r1, 0x8]
_0802BB8C:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802BB94: .4byte gUnknown_203B2D4
thumb_func_end sub_802BB28
thumb_func_start sub_802BB98
sub_802BB98:
push {r4,lr}
ldr r0, _0802BBD4
ldr r2, [r0]
ldr r1, [r2, 0xC]
adds r4, r0, 0
cmp r1, 0
beq _0802BBBC
ldr r0, [r2, 0x20]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0802BBB4
bl sub_8013E54
_0802BBB4:
ldr r1, [r4]
ldr r0, [r1, 0x20]
adds r0, 0x1
str r0, [r1, 0x20]
_0802BBBC:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x88
ldr r1, [r1, 0x24]
bl sub_8012A64
cmp r0, 0x1
beq _0802BBD8
cmp r0, 0x2
beq _0802BBF6
b _0802BC02
.align 2, 0
_0802BBD4: .4byte gUnknown_203B2D4
_0802BBD8:
movs r0, 0
bl sub_80119D4
ldr r0, [r4]
ldr r0, [r0, 0xC]
cmp r0, 0
beq _0802BBEE
movs r0, 0x1
bl sub_802BB14
b _0802BC02
_0802BBEE:
movs r0, 0x3
bl sub_802BB14
b _0802BC02
_0802BBF6:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
bl sub_802BB14
_0802BC02:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802BB98
thumb_func_start sub_802BC08
sub_802BC08:
push {r4,lr}
ldr r0, _0802BC44
ldr r3, [r0]
ldr r2, [r3, 0x8]
ldr r1, [r3, 0xC]
adds r4, r0, 0
cmp r2, r1
bge _0802BC2E
ldr r0, [r3, 0x20]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0802BC26
bl sub_8013E54
_0802BC26:
ldr r1, [r4]
ldr r0, [r1, 0x20]
adds r0, 0x1
str r0, [r1, 0x20]
_0802BC2E:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x88
ldr r1, [r1, 0x24]
bl sub_8012A64
cmp r0, 0x1
beq _0802BC48
cmp r0, 0x2
beq _0802BC68
b _0802BC74
.align 2, 0
_0802BC44: .4byte gUnknown_203B2D4
_0802BC48:
movs r0, 0
bl sub_80119D4
ldr r0, [r4]
ldr r1, [r0, 0x8]
ldr r0, [r0, 0xC]
cmp r1, r0
bge _0802BC60
movs r0, 0x1
bl sub_802BB14
b _0802BC74
_0802BC60:
movs r0, 0x3
bl sub_802BB14
b _0802BC74
_0802BC68:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
bl sub_802BB14
_0802BC74:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802BC08
thumb_func_start sub_802BC7C
sub_802BC7C:
push {r4,lr}
ldr r4, _0802BCA4
bl sub_808D3BC
adds r1, r0, 0
adds r0, r4, 0
bl sub_808DA34
ldr r0, _0802BCA8
ldr r0, [r0]
ldrb r0, [r0, 0xB]
cmp r0, 0x1
bne _0802BCB0
adds r0, r4, 0
adds r0, 0x50
ldr r1, _0802BCAC
bl strcpy
b _0802BCBA
.align 2, 0
_0802BCA4: .4byte gUnknown_202DF98
_0802BCA8: .4byte gUnknown_203B46C
_0802BCAC: .4byte gUnknown_80DFC4C
_0802BCB0:
adds r0, r4, 0
adds r0, 0x50
ldr r1, _0802BCC0
bl strcpy
_0802BCBA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802BCC0: .4byte gUnknown_80DFC50
thumb_func_end sub_802BC7C
thumb_func_start sub_802BCC4
sub_802BCC4:
push {r4,lr}
ldr r4, _0802BCDC
ldr r0, [r4]
ldrb r0, [r0, 0x4]
bl sub_803C1A0
adds r3, r0, 0
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0xC]
str r3, [r1, 0x10]
b _0802BD08
.align 2, 0
_0802BCDC: .4byte gUnknown_203B2D4
_0802BCE0:
cmp r0, 0x23
bne _0802BD06
ldrb r2, [r3, 0x1]
cmp r2, 0x50
beq _0802BCF0
adds r1, r3, 0x2
cmp r2, 0x70
bne _0802BD02
_0802BCF0:
ldr r0, [r4]
ldr r1, [r0, 0xC]
adds r1, 0x1
str r1, [r0, 0xC]
lsls r1, 2
adds r0, 0x10
adds r0, r1
adds r1, r3, 0x2
str r1, [r0]
_0802BD02:
adds r3, r1, 0
b _0802BD08
_0802BD06:
adds r3, 0x1
_0802BD08:
ldrb r0, [r3]
cmp r0, 0
bne _0802BCE0
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802BCC4
thumb_func_start sub_802BD14
sub_802BD14:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r4, r1, 0
mov r8, r2
bl sub_802C0E8
lsls r0, 24
cmp r0, 0
beq _0802BD2E
movs r0, 0
b _0802BDD4
_0802BD2E:
ldr r5, _0802BDE0
ldr r0, [r5]
cmp r0, 0
bne _0802BD40
movs r0, 0xA4
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
_0802BD40:
ldr r0, [r5]
str r6, [r0, 0x38]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x40
adds r1, r0, r1
str r1, [r0, 0x3C]
adds r0, 0x40
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x38]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x40
ldr r0, _0802BDE4
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r2, [r5]
ldr r1, [r2, 0x3C]
adds r0, r2, 0
adds r0, 0xA0
str r0, [r1, 0x14]
cmp r4, 0
beq _0802BD8E
ldr r1, [r2, 0x38]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r2, 0
adds r1, 0x48
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_0802BD8E:
ldr r0, [r5]
ldr r0, [r0, 0x3C]
mov r1, r8
bl sub_8012D34
bl sub_8004914
ldr r0, [r5]
adds r0, 0x40
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x4
bl sub_802C0B8
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r6, 0
bl sub_8013848
ldr r0, [r5]
ldr r1, _0802BDE8
ldrh r1, [r1]
strh r1, [r0, 0x1C]
adds r0, 0x4
bl sub_8013984
bl sub_802BF30
bl sub_802BFA0
movs r0, 0x1
_0802BDD4:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802BDE0: .4byte gUnknown_203B2D8
_0802BDE4: .4byte gUnknown_80DFC74
_0802BDE8: .4byte gUnknown_203B2DC
thumb_func_end sub_802BD14
thumb_func_start sub_802BDEC
sub_802BDEC:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0802BE08
ldr r0, _0802BE04
ldr r0, [r0]
adds r0, 0x4
bl sub_8013660
movs r0, 0
b _0802BE6E
.align 2, 0
_0802BE04: .4byte gUnknown_203B2D8
_0802BE08:
ldr r0, _0802BE20
ldr r0, [r0]
adds r0, 0x4
bl GetKeyPress
cmp r0, 0x2
beq _0802BE2A
cmp r0, 0x2
bgt _0802BE24
cmp r0, 0x1
beq _0802BE34
b _0802BE48
.align 2, 0
_0802BE20: .4byte gUnknown_203B2D8
_0802BE24:
cmp r0, 0x4
beq _0802BE3E
b _0802BE48
_0802BE2A:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802BE6E
_0802BE34:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0802BE6E
_0802BE3E:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0802BE6E
_0802BE48:
ldr r0, _0802BE60
ldr r0, [r0]
adds r0, 0x4
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802BE64
movs r0, 0
b _0802BE6E
.align 2, 0
_0802BE60: .4byte gUnknown_203B2D8
_0802BE64:
bl sub_802BF30
bl sub_802BFA0
movs r0, 0x1
_0802BE6E:
pop {r1}
bx r1
thumb_func_end sub_802BDEC
thumb_func_start sub_802BE74
sub_802BE74:
ldr r0, _0802BE90
ldr r1, [r0]
movs r0, 0x22
ldrsh r2, [r1, r0]
movs r3, 0x20
ldrsh r0, [r1, r3]
muls r0, r2
movs r3, 0x1C
ldrsh r2, [r1, r3]
adds r0, r2
adds r1, r0
ldrb r0, [r1]
bx lr
.align 2, 0
_0802BE90: .4byte gUnknown_203B2D8
thumb_func_end sub_802BE74
thumb_func_start sub_802BE94
sub_802BE94:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0802BED8
ldr r0, [r5]
adds r0, 0x40
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_802C0B8
adds r1, r0, 0
ldr r0, [r5]
strh r1, [r0, 0x26]
adds r0, 0x4
bl sub_8013984
bl sub_802BF30
bl sub_802BFA0
cmp r4, 0
beq _0802BED2
ldr r0, [r5]
adds r0, 0x4
bl AddMenuCursorSprite
_0802BED2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802BED8: .4byte gUnknown_203B2D8
thumb_func_end sub_802BE94
thumb_func_start sub_802BEDC
sub_802BEDC:
push {r4,r5,lr}
ldr r4, _0802BF24
ldr r2, [r4]
cmp r2, 0
beq _0802BF1C
ldr r1, _0802BF28
ldrh r0, [r2, 0x1C]
strh r0, [r1]
ldr r0, [r2, 0x38]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x40
ldr r0, _0802BF2C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x40
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802BF1C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802BF24: .4byte gUnknown_203B2D8
_0802BF28: .4byte gUnknown_203B2DC
_0802BF2C: .4byte gUnknown_80DFC5C
thumb_func_end sub_802BEDC
thumb_func_start sub_802BF30
sub_802BF30:
push {r4,lr}
ldr r4, _0802BF9C
ldr r0, [r4]
adds r0, 0xA0
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xA1
strb r2, [r0]
ldr r0, [r4]
adds r0, 0xA2
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xA3
strb r2, [r0]
ldr r0, [r4]
movs r1, 0x1E
ldrsh r0, [r0, r1]
movs r1, 0x18
bl sub_8009614
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x38]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4E
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x38]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x50
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x40
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802BF9C: .4byte gUnknown_203B2D8
thumb_func_end sub_802BF30
thumb_func_start sub_802BFA0
sub_802BFA0:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xDC
ldr r4, _0802C060
ldr r0, [r4]
ldr r0, [r0, 0x38]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x38]
bl sub_80073B8
ldr r1, [r4]
movs r2, 0x22
ldrsh r0, [r1, r2]
lsls r0, 3
adds r0, 0xA
ldr r2, _0802C064
ldr r3, [r1, 0x38]
movs r1, 0
str r1, [sp]
bl xxx_call_draw_string
movs r6, 0
ldr r0, [r4]
movs r3, 0x1E
ldrsh r0, [r0, r3]
cmp r6, r0
bge _0802C09A
adds r7, r4, 0
ldr r0, _0802C068
mov r9, r0
add r1, sp, 0x5C
mov r8, r1
_0802BFE8:
ldr r1, [r7]
movs r3, 0x22
ldrsh r2, [r1, r3]
movs r3, 0x20
ldrsh r0, [r1, r3]
muls r0, r2
adds r0, r6
adds r1, r0
ldrb r0, [r1]
bl sub_8095FE8
adds r5, r0, 0
ldr r0, [r7]
ldr r1, [r0, 0x38]
str r1, [sp, 0x4]
adds r0, 0x4
adds r1, r6, 0
bl sub_8013800
str r0, [sp, 0x4C]
ldrb r0, [r5]
cmp r0, 0x1
bne _0802C06C
ldr r0, [r7]
adds r0, 0x4
adds r1, r6, 0
bl sub_8013800
adds r4, r0, 0
ldr r0, [r7]
ldr r3, [r0, 0x38]
movs r0, 0xA
adds r1, r4, 0
movs r2, 0x6
bl sub_803B6B0
bl sub_808D33C
adds r1, r0, 0
mov r0, r9
bl sub_808DA34
ldrb r0, [r5, 0x5]
bl sub_803C190
adds r1, r0, 0
mov r0, r8
mov r2, r9
bl sub_800D158
ldr r0, [r7]
ldr r3, [r0, 0x38]
movs r0, 0
str r0, [sp]
movs r0, 0x15
adds r1, r4, 0
mov r2, r8
bl xxx_call_draw_string
b _0802C08E
.align 2, 0
_0802C060: .4byte gUnknown_203B2D8
_0802C064: .4byte gUnknown_80DFC8C
_0802C068: .4byte gUnknown_202DF98
_0802C06C:
adds r0, r5, 0
add r1, sp, 0x4
bl sub_803B35C
adds r0, r5, 0
bl sub_80968B0
lsls r0, 24
cmp r0, 0
beq _0802C088
mov r1, sp
adds r1, 0x47
movs r0, 0x2
strb r0, [r1]
_0802C088:
add r0, sp, 0x4
bl sub_803B6D4
_0802C08E:
adds r6, 0x1
ldr r0, [r7]
movs r1, 0x1E
ldrsh r0, [r0, r1]
cmp r6, r0
blt _0802BFE8
_0802C09A:
ldr r0, _0802C0B4
ldr r0, [r0]
ldr r0, [r0, 0x38]
bl sub_80073E0
add sp, 0xDC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802C0B4: .4byte gUnknown_203B2D8
thumb_func_end sub_802BFA0
thumb_func_start sub_802C0B8
sub_802C0B8:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_0802C0BE:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096000
lsls r0, 24
cmp r0, 0
bne _0802C0D6
ldr r0, _0802C0E4
ldr r0, [r0]
adds r0, r5
strb r4, [r0]
adds r5, 0x1
_0802C0D6:
adds r4, 0x1
cmp r4, 0x3
ble _0802C0BE
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0802C0E4: .4byte gUnknown_203B2D8
thumb_func_end sub_802C0B8
thumb_func_start sub_802C0E8
sub_802C0E8:
push {r4,lr}
movs r4, 0
_0802C0EC:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096000
lsls r0, 24
cmp r0, 0
bne _0802C0FE
movs r0, 0
b _0802C106
_0802C0FE:
adds r4, 0x1
cmp r4, 0x3
ble _0802C0EC
movs r0, 0x1
_0802C106:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802C0E8
thumb_func_start sub_802C10C
sub_802C10C:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r4, r1, 0
mov r8, r2
bl sub_802C4A4
lsls r0, 24
cmp r0, 0
beq _0802C126
movs r0, 0
b _0802C1CC
_0802C126:
ldr r5, _0802C1D8
ldr r0, [r5]
cmp r0, 0
bne _0802C138
movs r0, 0xA8
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
_0802C138:
ldr r0, [r5]
str r6, [r0, 0x3C]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x44
adds r1, r0, r1
str r1, [r0, 0x40]
adds r0, 0x44
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x3C]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x44
ldr r0, _0802C1DC
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r2, [r5]
ldr r1, [r2, 0x40]
adds r0, r2, 0
adds r0, 0xA4
str r0, [r1, 0x14]
cmp r4, 0
beq _0802C186
ldr r1, [r2, 0x3C]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r2, 0
adds r1, 0x4C
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_0802C186:
ldr r0, [r5]
ldr r0, [r0, 0x40]
mov r1, r8
bl sub_8012D34
bl sub_8004914
ldr r0, [r5]
adds r0, 0x44
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x8
bl sub_802C474
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r6, 0
bl sub_8013848
ldr r0, [r5]
ldr r1, _0802C1E0
ldrh r1, [r1]
strh r1, [r0, 0x20]
adds r0, 0x8
bl sub_8013984
bl sub_802C328
bl sub_802C39C
movs r0, 0x1
_0802C1CC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802C1D8: .4byte gUnknown_203B2E0
_0802C1DC: .4byte gUnknown_80DFCB4
_0802C1E0: .4byte gUnknown_203B2E4
thumb_func_end sub_802C10C
thumb_func_start sub_802C1E4
sub_802C1E4:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0802C200
ldr r0, _0802C1FC
ldr r0, [r0]
adds r0, 0x8
bl sub_8013660
movs r0, 0
b _0802C266
.align 2, 0
_0802C1FC: .4byte gUnknown_203B2E0
_0802C200:
ldr r0, _0802C218
ldr r0, [r0]
adds r0, 0x8
bl GetKeyPress
cmp r0, 0x2
beq _0802C222
cmp r0, 0x2
bgt _0802C21C
cmp r0, 0x1
beq _0802C22C
b _0802C240
.align 2, 0
_0802C218: .4byte gUnknown_203B2E0
_0802C21C:
cmp r0, 0x4
beq _0802C236
b _0802C240
_0802C222:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802C266
_0802C22C:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0802C266
_0802C236:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0802C266
_0802C240:
ldr r0, _0802C258
ldr r0, [r0]
adds r0, 0x8
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802C25C
movs r0, 0
b _0802C266
.align 2, 0
_0802C258: .4byte gUnknown_203B2E0
_0802C25C:
bl sub_802C328
bl sub_802C39C
movs r0, 0x1
_0802C266:
pop {r1}
bx r1
thumb_func_end sub_802C1E4
thumb_func_start sub_802C26C
sub_802C26C:
ldr r0, _0802C288
ldr r1, [r0]
movs r0, 0x26
ldrsh r2, [r1, r0]
movs r3, 0x24
ldrsh r0, [r1, r3]
muls r0, r2
movs r3, 0x20
ldrsh r2, [r1, r3]
adds r0, r2
adds r1, r0
ldrb r0, [r1]
bx lr
.align 2, 0
_0802C288: .4byte gUnknown_203B2E0
thumb_func_end sub_802C26C
thumb_func_start sub_802C28C
sub_802C28C:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0802C2D0
ldr r0, [r5]
adds r0, 0x44
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_802C474
adds r1, r0, 0
ldr r0, [r5]
strh r1, [r0, 0x2A]
adds r0, 0x8
bl sub_8013984
bl sub_802C328
bl sub_802C39C
cmp r4, 0
beq _0802C2CA
ldr r0, [r5]
adds r0, 0x8
bl AddMenuCursorSprite
_0802C2CA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802C2D0: .4byte gUnknown_203B2E0
thumb_func_end sub_802C28C
thumb_func_start sub_802C2D4
sub_802C2D4:
push {r4,r5,lr}
ldr r4, _0802C31C
ldr r2, [r4]
cmp r2, 0
beq _0802C314
ldr r1, _0802C320
ldrh r0, [r2, 0x20]
strh r0, [r1]
ldr r0, [r2, 0x3C]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x44
ldr r0, _0802C324
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x44
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802C314:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802C31C: .4byte gUnknown_203B2E0
_0802C320: .4byte gUnknown_203B2E4
_0802C324: .4byte gUnknown_80DFC9C
thumb_func_end sub_802C2D4
thumb_func_start sub_802C328
sub_802C328:
push {r4,lr}
ldr r4, _0802C398
ldr r0, [r4]
ldrh r1, [r0, 0x28]
adds r0, 0xA4
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x26]
adds r0, 0xA5
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xA6
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xA7
strb r2, [r0]
ldr r0, [r4]
movs r1, 0x22
ldrsh r0, [r0, r1]
movs r1, 0x18
bl sub_8009614
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x3C]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x52
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x3C]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x54
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x44
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802C398: .4byte gUnknown_203B2E0
thumb_func_end sub_802C328
thumb_func_start sub_802C39C
sub_802C39C:
push {r4-r7,lr}
sub sp, 0x60
ldr r7, _0802C3F8
ldr r0, [r7]
ldr r0, [r0, 0x3C]
bl sub_8008C54
ldr r0, [r7]
ldr r0, [r0, 0x3C]
bl sub_80073B8
ldr r0, [r7]
movs r1, 0x26
ldrsh r4, [r0, r1]
lsls r4, 3
adds r5, r4, 0
adds r5, 0xA
ldr r2, _0802C3FC
ldr r3, [r0, 0x3C]
movs r0, 0
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl xxx_call_draw_string
adds r4, 0x4
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0xA6
ldrb r0, [r0]
lsls r0, 3
adds r5, r4, r0
movs r3, 0x26
ldrsh r2, [r1, r3]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r1, 0x3C]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r6, 0
b _0802C452
.align 2, 0
_0802C3F8: .4byte gUnknown_203B2E0
_0802C3FC: .4byte gUnknown_80DFCCC
_0802C400:
ldr r1, [r7]
movs r3, 0x26
ldrsh r2, [r1, r3]
movs r3, 0x24
ldrsh r0, [r1, r3]
muls r0, r2
adds r0, r6
adds r1, r0
ldrb r5, [r1]
adds r0, r5, 0
bl sub_8096574
adds r4, r0, 0
ldr r0, [r7]
ldr r1, [r0, 0x3C]
str r1, [sp, 0x8]
adds r0, 0x8
adds r1, r6, 0
bl sub_8013800
str r0, [sp, 0x50]
adds r0, r4, 0
add r1, sp, 0x8
bl sub_803B35C
adds r0, r5, 0
bl sub_8096574
bl sub_80968B0
lsls r0, 24
cmp r0, 0
beq _0802C44A
mov r1, sp
adds r1, 0x4B
movs r0, 0x2
strb r0, [r1]
_0802C44A:
add r0, sp, 0x8
bl sub_803B6D4
adds r6, 0x1
_0802C452:
ldr r0, [r7]
movs r1, 0x22
ldrsh r0, [r0, r1]
cmp r6, r0
blt _0802C400
ldr r0, _0802C470
ldr r0, [r0]
ldr r0, [r0, 0x3C]
bl sub_80073E0
add sp, 0x60
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802C470: .4byte gUnknown_203B2E0
thumb_func_end sub_802C39C
thumb_func_start sub_802C474
sub_802C474:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_0802C47A:
lsls r0, r4, 24
lsrs r0, 24
bl sub_809658C
lsls r0, 24
cmp r0, 0
bne _0802C492
ldr r0, _0802C4A0
ldr r0, [r0]
adds r0, r5
strb r4, [r0]
adds r5, 0x1
_0802C492:
adds r4, 0x1
cmp r4, 0x7
ble _0802C47A
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0802C4A0: .4byte gUnknown_203B2E0
thumb_func_end sub_802C474
thumb_func_start sub_802C4A4
sub_802C4A4:
push {r4,lr}
movs r4, 0
_0802C4A8:
lsls r0, r4, 24
lsrs r0, 24
bl sub_809658C
lsls r0, 24
cmp r0, 0
bne _0802C4BA
movs r0, 0
b _0802C4C2
_0802C4BA:
adds r4, 0x1
cmp r4, 0x7
ble _0802C4A8
movs r0, 0x1
_0802C4C2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802C4A4
thumb_func_start sub_802C4C8
sub_802C4C8:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r4, r1, 0
mov r8, r2
bl sub_802C83C
lsls r0, 24
cmp r0, 0
beq _0802C4E2
movs r0, 0
b _0802C580
_0802C4E2:
ldr r5, _0802C58C
movs r0, 0xA8
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r6, [r0, 0x3C]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x44
adds r1, r0, r1
str r1, [r0, 0x40]
adds r0, 0x44
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x3C]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x44
ldr r0, _0802C590
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r2, [r5]
ldr r1, [r2, 0x40]
adds r0, r2, 0
adds r0, 0xA4
str r0, [r1, 0x14]
cmp r4, 0
beq _0802C53A
ldr r1, [r2, 0x3C]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r2, 0
adds r1, 0x4C
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_0802C53A:
ldr r0, [r5]
ldr r0, [r0, 0x40]
mov r1, r8
bl sub_8012D34
bl sub_8004914
ldr r0, [r5]
adds r0, 0x44
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x8
bl sub_802C80C
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r6, 0
bl sub_8013848
ldr r0, [r5]
ldr r1, _0802C594
ldrh r1, [r1]
strh r1, [r0, 0x20]
adds r0, 0x8
bl sub_8013984
bl sub_802C6DC
bl sub_802C750
movs r0, 0x1
_0802C580:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802C58C: .4byte gUnknown_203B2E8
_0802C590: .4byte gUnknown_80DFCFC
_0802C594: .4byte gUnknown_203B2EC
thumb_func_end sub_802C4C8
thumb_func_start sub_802C598
sub_802C598:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0802C5B4
ldr r0, _0802C5B0
ldr r0, [r0]
adds r0, 0x8
bl sub_8013660
movs r0, 0
b _0802C61A
.align 2, 0
_0802C5B0: .4byte gUnknown_203B2E8
_0802C5B4:
ldr r0, _0802C5CC
ldr r0, [r0]
adds r0, 0x8
bl GetKeyPress
cmp r0, 0x2
beq _0802C5D6
cmp r0, 0x2
bgt _0802C5D0
cmp r0, 0x1
beq _0802C5E0
b _0802C5F4
.align 2, 0
_0802C5CC: .4byte gUnknown_203B2E8
_0802C5D0:
cmp r0, 0x4
beq _0802C5EA
b _0802C5F4
_0802C5D6:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802C61A
_0802C5E0:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0802C61A
_0802C5EA:
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _0802C61A
_0802C5F4:
ldr r0, _0802C60C
ldr r0, [r0]
adds r0, 0x8
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802C610
movs r0, 0
b _0802C61A
.align 2, 0
_0802C60C: .4byte gUnknown_203B2E8
_0802C610:
bl sub_802C6DC
bl sub_802C750
movs r0, 0x1
_0802C61A:
pop {r1}
bx r1
thumb_func_end sub_802C598
thumb_func_start sub_802C620
sub_802C620:
ldr r0, _0802C63C
ldr r1, [r0]
movs r0, 0x26
ldrsh r2, [r1, r0]
movs r3, 0x24
ldrsh r0, [r1, r3]
muls r0, r2
movs r3, 0x20
ldrsh r2, [r1, r3]
adds r0, r2
adds r1, r0
ldrb r0, [r1]
bx lr
.align 2, 0
_0802C63C: .4byte gUnknown_203B2E8
thumb_func_end sub_802C620
thumb_func_start sub_802C640
sub_802C640:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0802C684
ldr r0, [r5]
adds r0, 0x44
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_802C80C
adds r1, r0, 0
ldr r0, [r5]
strh r1, [r0, 0x2A]
adds r0, 0x8
bl sub_8013984
bl sub_802C6DC
bl sub_802C750
cmp r4, 0
beq _0802C67E
ldr r0, [r5]
adds r0, 0x8
bl AddMenuCursorSprite
_0802C67E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802C684: .4byte gUnknown_203B2E8
thumb_func_end sub_802C640
thumb_func_start sub_802C688
sub_802C688:
push {r4,r5,lr}
ldr r4, _0802C6D0
ldr r2, [r4]
cmp r2, 0
beq _0802C6C8
ldr r1, _0802C6D4
ldrh r0, [r2, 0x20]
strh r0, [r1]
ldr r0, [r2, 0x3C]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x44
ldr r0, _0802C6D8
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x44
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802C6C8:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802C6D0: .4byte gUnknown_203B2E8
_0802C6D4: .4byte gUnknown_203B2EC
_0802C6D8: .4byte gUnknown_80DFCE4
thumb_func_end sub_802C688
thumb_func_start sub_802C6DC
sub_802C6DC:
push {r4,lr}
ldr r4, _0802C74C
ldr r0, [r4]
ldrh r1, [r0, 0x28]
adds r0, 0xA4
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x26]
adds r0, 0xA5
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xA6
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xA7
strb r2, [r0]
ldr r0, [r4]
movs r1, 0x22
ldrsh r0, [r0, r1]
movs r1, 0x18
bl sub_8009614
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x3C]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x52
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x3C]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x54
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x44
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802C74C: .4byte gUnknown_203B2E8
thumb_func_end sub_802C6DC
thumb_func_start sub_802C750
sub_802C750:
push {r4-r6,lr}
sub sp, 0x60
ldr r6, _0802C7AC
ldr r0, [r6]
ldr r0, [r0, 0x3C]
bl sub_8008C54
ldr r0, [r6]
ldr r0, [r0, 0x3C]
bl sub_80073B8
ldr r0, [r6]
movs r1, 0x26
ldrsh r4, [r0, r1]
lsls r4, 3
adds r5, r4, 0
adds r5, 0xA
ldr r2, _0802C7B0
ldr r3, [r0, 0x3C]
movs r0, 0
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl xxx_call_draw_string
adds r4, 0x4
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xA6
ldrb r0, [r0]
lsls r0, 3
adds r5, r4, r0
movs r3, 0x26
ldrsh r2, [r1, r3]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r1, 0x3C]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r5, 0
b _0802C7EC
.align 2, 0
_0802C7AC: .4byte gUnknown_203B2E8
_0802C7B0: .4byte gUnknown_80DFD14
_0802C7B4:
ldr r1, [r6]
movs r3, 0x26
ldrsh r2, [r1, r3]
movs r3, 0x24
ldrsh r0, [r1, r3]
muls r0, r2
adds r0, r5
adds r1, r0
ldrb r0, [r1]
bl sub_8096AB4
adds r4, r0, 0
ldr r0, [r6]
ldr r1, [r0, 0x3C]
str r1, [sp, 0x8]
adds r0, 0x8
adds r1, r5, 0
bl sub_8013800
str r0, [sp, 0x50]
adds r0, r4, 0
add r1, sp, 0x8
bl sub_803B35C
add r0, sp, 0x8
bl sub_803B6D4
adds r5, 0x1
_0802C7EC:
ldr r0, [r6]
movs r1, 0x22
ldrsh r0, [r0, r1]
cmp r5, r0
blt _0802C7B4
ldr r0, _0802C808
ldr r0, [r0]
ldr r0, [r0, 0x3C]
bl sub_80073E0
add sp, 0x60
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802C808: .4byte gUnknown_203B2E8
thumb_func_end sub_802C750
thumb_func_start sub_802C80C
sub_802C80C:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_0802C812:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096ACC
lsls r0, 24
cmp r0, 0
bne _0802C82A
ldr r0, _0802C838
ldr r0, [r0]
adds r0, r5
strb r4, [r0]
adds r5, 0x1
_0802C82A:
adds r4, 0x1
cmp r4, 0x7
ble _0802C812
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0802C838: .4byte gUnknown_203B2E8
thumb_func_end sub_802C80C
thumb_func_start sub_802C83C
sub_802C83C:
push {r4,lr}
movs r4, 0
_0802C840:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096ACC
lsls r0, 24
cmp r0, 0
bne _0802C852
movs r0, 0
b _0802C85A
_0802C852:
adds r4, 0x1
cmp r4, 0x7
ble _0802C840
movs r0, 0x1
_0802C85A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802C83C
thumb_func_start sub_802C860
sub_802C860:
push {r4-r6,lr}
adds r6, r0, 0
bl sub_802C83C
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _0802C890
ldr r4, _0802C88C
movs r0, 0xFE
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
str r5, [r0, 0x68]
str r6, [r0]
movs r0, 0
bl sub_802C910
movs r0, 0x1
b _0802C892
.align 2, 0
_0802C88C: .4byte gUnknown_203B2F0
_0802C890:
movs r0, 0
_0802C892:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_802C860
thumb_func_start sub_802C898
sub_802C898:
push {lr}
ldr r0, _0802C8B0
ldr r0, [r0]
ldr r0, [r0, 0x4]
cmp r0, 0x5
bhi _0802C8E8
lsls r0, 2
ldr r1, _0802C8B4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802C8B0: .4byte gUnknown_203B2F0
_0802C8B4: .4byte _0802C8B8
.align 2, 0
_0802C8B8:
.4byte _0802C8D0
.4byte _0802C8D0
.4byte _0802C8D6
.4byte _0802C8DC
.4byte _0802C8E2
.4byte _0802C8E8
_0802C8D0:
bl sub_802CC00
b _0802C8EC
_0802C8D6:
bl sub_802CC70
b _0802C8EC
_0802C8DC:
bl sub_802CD38
b _0802C8EC
_0802C8E2:
bl sub_802CDB8
b _0802C8EC
_0802C8E8:
movs r0, 0x3
b _0802C8EE
_0802C8EC:
movs r0, 0
_0802C8EE:
pop {r1}
bx r1
thumb_func_end sub_802C898
thumb_func_start sub_802C8F4
sub_802C8F4:
push {r4,lr}
ldr r4, _0802C90C
ldr r0, [r4]
cmp r0, 0
beq _0802C906
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802C906:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802C90C: .4byte gUnknown_203B2F0
thumb_func_end sub_802C8F4
thumb_func_start sub_802C910
sub_802C910:
push {lr}
ldr r1, _0802C924
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_802C928
bl sub_802C9D8
pop {r0}
bx r0
.align 2, 0
_0802C924: .4byte gUnknown_203B2F0
thumb_func_end sub_802C910
thumb_func_start sub_802C928
sub_802C928:
push {r4-r7,lr}
ldr r4, _0802C94C
ldr r0, [r4]
movs r1, 0xCE
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _0802C954
cmp r0, 0x3
beq _0802C980
movs r2, 0
ldr r3, _0802C950
b _0802C998
.align 2, 0
_0802C94C: .4byte gUnknown_203B2F0
_0802C950: .4byte gUnknown_80DFD28
_0802C954:
bl sub_802CAA4
ldr r2, [r4]
movs r0, 0xE6
lsls r0, 1
adds r2, r0
ldr r1, _0802C97C
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
movs r6, 0x86
lsls r6, 1
adds r1, r6
bl sub_8012CAC
b _0802C9B8
.align 2, 0
_0802C97C: .4byte gUnknown_80DFD40
_0802C980:
movs r7, 0xF2
lsls r7, 1
adds r1, r7
ldr r0, _0802C994
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _0802C9B8
.align 2, 0
_0802C994: .4byte gUnknown_80DFD58
_0802C998:
ldr r0, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r0, r1
movs r1, 0xCE
lsls r1, 1
adds r0, r1
adds r1, r3, 0
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r2, 0x1
cmp r2, 0x3
ble _0802C998
_0802C9B8:
bl sub_8004914
ldr r0, _0802C9D4
ldr r0, [r0]
movs r1, 0xCE
lsls r1, 1
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802C9D4: .4byte gUnknown_203B2F0
thumb_func_end sub_802C928
thumb_func_start sub_802C9D8
sub_802C9D8:
push {r4,lr}
sub sp, 0x8
ldr r1, _0802C9F4
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r4, r1, 0
cmp r0, 0x5
bhi _0802CA9C
lsls r0, 2
ldr r1, _0802C9F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802C9F4: .4byte gUnknown_203B2F0
_0802C9F8: .4byte _0802C9FC
.align 2, 0
_0802C9FC:
.4byte _0802CA14
.4byte _0802CA20
.4byte _0802CA28
.4byte _0802CA48
.4byte _0802CA80
.4byte _0802CA9C
_0802CA14:
movs r0, 0
movs r1, 0
movs r2, 0x4
bl sub_802C4C8
b _0802CA9C
_0802CA20:
movs r0, 0x1
bl sub_802C640
b _0802CA9C
_0802CA28:
bl sub_802C750
ldr r0, _0802CA44
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x6C
movs r3, 0x86
lsls r3, 1
adds r1, r2, r3
ldr r2, [r2, 0x68]
str r2, [sp]
movs r2, 0x2
b _0802CA6E
.align 2, 0
_0802CA44: .4byte gUnknown_203B2F0
_0802CA48:
bl sub_802CBAC
bl sub_802C750
ldr r4, _0802CA7C
ldr r0, [r4]
adds r0, 0x6C
movs r1, 0
bl sub_8012EA4
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xBC
movs r2, 0xA6
lsls r2, 1
adds r1, r2
movs r2, 0x6
str r2, [sp]
movs r2, 0x3
_0802CA6E:
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0802CA9C
.align 2, 0
_0802CA7C: .4byte gUnknown_203B2F0
_0802CA80:
ldr r0, [r4]
ldrb r0, [r0, 0xC]
bl sub_8096AB4
ldr r1, [r4]
adds r1, 0x10
bl sub_803B35C
ldr r0, [r4]
movs r1, 0x3
str r1, [r0, 0x10]
adds r0, 0x10
bl sub_802DE84
_0802CA9C:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802C9D8
thumb_func_start sub_802CAA4
sub_802CAA4:
push {r4-r7,lr}
movs r7, 0
ldr r5, _0802CAC8
ldr r0, [r5]
ldrb r0, [r0, 0xC]
bl sub_8096AB4
adds r4, r0, 0
ldr r2, [r5]
ldr r0, [r2]
cmp r0, 0
bne _0802CB26
ldrb r0, [r4]
cmp r0, 0x5
beq _0802CACC
cmp r0, 0x6
beq _0802CB10
b _0802CB26
.align 2, 0
_0802CAC8: .4byte gUnknown_203B2F0
_0802CACC:
movs r0, 0x86
lsls r0, 1
adds r1, r2, r0
ldr r0, _0802CAFC
str r0, [r1]
adds r0, r4, 0
bl sub_809693C
lsls r0, 24
cmp r0, 0
bne _0802CAEE
ldrb r0, [r4, 0x4]
bl sub_80A2824
lsls r0, 24
cmp r0, 0
bne _0802CB00
_0802CAEE:
ldr r0, [r5]
movs r1, 0x88
lsls r1, 1
adds r0, r1
movs r1, 0x1
negs r1, r1
b _0802CB0A
.align 2, 0
_0802CAFC: .4byte gUnknown_80DFD70
_0802CB00:
ldr r0, [r5]
movs r1, 0x88
lsls r1, 1
adds r0, r1
movs r1, 0x2
_0802CB0A:
str r1, [r0]
adds r7, 0x1
b _0802CB26
_0802CB10:
movs r0, 0x86
lsls r0, 1
adds r1, r2, r0
ldr r0, _0802CB9C
str r0, [r1]
movs r0, 0x88
lsls r0, 1
adds r1, r2, r0
movs r0, 0x3
str r0, [r1]
movs r7, 0x1
_0802CB26:
ldr r4, _0802CBA0
ldr r6, [r4]
lsls r1, r7, 3
movs r0, 0x86
lsls r0, 1
adds r3, r6, r0
adds r2, r3, r1
ldr r0, _0802CBA4
ldr r0, [r0]
str r0, [r2]
movs r0, 0x88
lsls r0, 1
adds r5, r6, r0
adds r1, r5, r1
movs r0, 0x4
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _0802CBA8
ldr r0, [r0]
str r0, [r2]
adds r1, r5, r1
movs r0, 0x7
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r1, r5, r1
movs r0, 0x1
str r0, [r1]
movs r3, 0
mov r12, r4
cmp r3, r7
bge _0802CB8C
adds r4, r6, 0
adds r1, r5, 0
movs r5, 0x1
negs r5, r5
_0802CB78:
ldr r2, [r1]
cmp r2, r5
beq _0802CB84
ldr r0, [r4, 0x68]
cmp r2, r0
beq _0802CB94
_0802CB84:
adds r1, 0x8
adds r3, 0x1
cmp r3, r7
blt _0802CB78
_0802CB8C:
mov r0, r12
ldr r1, [r0]
movs r0, 0x7
str r0, [r1, 0x68]
_0802CB94:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802CB9C: .4byte gUnknown_80DFD7C
_0802CBA0: .4byte gUnknown_203B2F0
_0802CBA4: .4byte gUnknown_80D494C
_0802CBA8: .4byte gUnknown_80D4970
thumb_func_end sub_802CAA4
thumb_func_start sub_802CBAC
sub_802CBAC:
ldr r0, _0802CBF4
ldr r0, [r0]
mov r12, r0
movs r3, 0
movs r1, 0xA6
lsls r1, 1
add r1, r12
ldr r0, _0802CBF8
ldr r0, [r0]
str r0, [r1]
movs r1, 0xA8
lsls r1, 1
add r1, r12
movs r0, 0x5
str r0, [r1]
movs r2, 0x1
movs r1, 0xAA
lsls r1, 1
add r1, r12
ldr r0, _0802CBFC
ldr r0, [r0]
str r0, [r1]
movs r1, 0xAC
lsls r1, 1
add r1, r12
movs r0, 0x6
str r0, [r1]
movs r0, 0xAE
lsls r0, 1
add r0, r12
str r3, [r0]
movs r0, 0xB0
lsls r0, 1
add r0, r12
str r2, [r0]
bx lr
.align 2, 0
_0802CBF4: .4byte gUnknown_203B2F0
_0802CBF8: .4byte gUnknown_80D4920
_0802CBFC: .4byte gUnknown_80D4928
thumb_func_end sub_802CBAC
thumb_func_start sub_802CC00
sub_802CC00:
push {lr}
movs r0, 0x1
bl sub_802C598
cmp r0, 0x4
bhi _0802CC6A
lsls r0, 2
ldr r1, _0802CC18
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802CC18: .4byte _0802CC1C
.align 2, 0
_0802CC1C:
.4byte _0802CC6A
.4byte _0802CC6A
.4byte _0802CC60
.4byte _0802CC30
.4byte _0802CC48
_0802CC30:
bl sub_802C620
ldr r1, _0802CC44
ldr r1, [r1]
strb r0, [r1, 0xC]
movs r0, 0x2
bl sub_802C910
b _0802CC6A
.align 2, 0
_0802CC44: .4byte gUnknown_203B2F0
_0802CC48:
bl sub_802C620
ldr r1, _0802CC5C
ldr r1, [r1]
strb r0, [r1, 0xC]
movs r0, 0x4
bl sub_802C910
b _0802CC6A
.align 2, 0
_0802CC5C: .4byte gUnknown_203B2F0
_0802CC60:
bl sub_802C688
movs r0, 0x5
bl sub_802C910
_0802CC6A:
pop {r0}
bx r0
thumb_func_end sub_802CC00
thumb_func_start sub_802CC70
sub_802CC70:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802C598
ldr r4, _0802CCB4
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802CCA0
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802CCA0
ldr r0, [r4]
str r1, [r0, 0x68]
_0802CCA0:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x6
bhi _0802CD2E
lsls r0, 2
ldr r1, _0802CCB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802CCB4: .4byte gUnknown_203B2F0
_0802CCB8: .4byte _0802CCBC
.align 2, 0
_0802CCBC:
.4byte _0802CD28
.4byte _0802CCD8
.4byte _0802CCF4
.4byte _0802CD18
.4byte _0802CD2E
.4byte _0802CD2E
.4byte _0802CD20
_0802CCD8:
ldr r0, _0802CCEC
bl sub_8011988
ldr r0, _0802CCF0
ldr r0, [r0]
ldrb r0, [r0, 0xC]
bl sub_8096AB4
movs r1, 0x6
b _0802CD06
.align 2, 0
_0802CCEC: .4byte 0x00000133
_0802CCF0: .4byte gUnknown_203B2F0
_0802CCF4:
ldr r0, _0802CD10
bl sub_8011988
ldr r0, _0802CD14
ldr r0, [r0]
ldrb r0, [r0, 0xC]
bl sub_8096AB4
movs r1, 0x5
_0802CD06:
strb r1, [r0]
movs r0, 0x1
bl sub_802C910
b _0802CD2E
.align 2, 0
_0802CD10: .4byte 0x00000133
_0802CD14: .4byte gUnknown_203B2F0
_0802CD18:
movs r0, 0x3
bl sub_802C910
b _0802CD2E
_0802CD20:
movs r0, 0x4
bl sub_802C910
b _0802CD2E
_0802CD28:
movs r0, 0x1
bl sub_802C910
_0802CD2E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802CC70
thumb_func_start sub_802CD38
sub_802CD38:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802C598
ldr r4, _0802CD78
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0xBC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802CD66
ldr r0, [r4]
adds r0, 0xBC
mov r1, sp
bl sub_8013114
_0802CD66:
ldr r0, [sp]
cmp r0, 0x5
beq _0802CD88
cmp r0, 0x5
bgt _0802CD7C
cmp r0, 0x1
beq _0802CD80
b _0802CDB0
.align 2, 0
_0802CD78: .4byte gUnknown_203B2F0
_0802CD7C:
cmp r0, 0x6
bne _0802CDB0
_0802CD80:
movs r0, 0x1
bl sub_802C910
b _0802CDB0
_0802CD88:
ldr r0, [r4]
ldrb r0, [r0, 0xC]
bl sub_8096C3C
bl sub_8096C80
bl sub_802C83C
lsls r0, 24
cmp r0, 0
beq _0802CDAA
bl sub_802C688
movs r0, 0x5
bl sub_802C910
b _0802CDB0
_0802CDAA:
movs r0, 0x1
bl sub_802C910
_0802CDB0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802CD38
thumb_func_start sub_802CDB8
sub_802CDB8:
push {lr}
bl sub_802DEE0
cmp r0, 0x1
bls _0802CDD0
cmp r0, 0x3
bhi _0802CDD0
bl sub_802DF24
movs r0, 0x1
bl sub_802C910
_0802CDD0:
pop {r0}
bx r0
thumb_func_end sub_802CDB8
thumb_func_start sub_802CDD4
sub_802CDD4:
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, _0802CE54
ldr r0, [r4]
cmp r0, 0
bne _0802CDEA
movs r0, 0xA0
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
_0802CDEA:
ldr r0, [r4]
str r5, [r0, 0x34]
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0x3C
adds r1, r0, r1
str r1, [r0, 0x38]
adds r0, 0x3C
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _0802CE58
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r1, [r4]
ldr r0, [r1, 0x38]
adds r1, 0x9C
str r1, [r0, 0x14]
movs r1, 0x4
bl sub_8012D34
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x5
movs r2, 0x4
adds r3, r5, 0
bl sub_8013848
bl sub_802CF5C
bl sub_802CFD0
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0802CE54: .4byte gUnknown_203B2F4
_0802CE58: .4byte gUnknown_80DFDA4
thumb_func_end sub_802CDD4
thumb_func_start sub_802CE5C
sub_802CE5C:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _0802CE74
ldr r0, _0802CE70
ldr r0, [r0]
bl sub_8013660
movs r0, 0
b _0802CEB4
.align 2, 0
_0802CE70: .4byte gUnknown_203B2F4
_0802CE74:
ldr r4, _0802CE90
ldr r0, [r4]
bl GetKeyPress
cmp r0, 0x1
beq _0802CE94
cmp r0, 0x2
bne _0802CE98
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802CEB4
.align 2, 0
_0802CE90: .4byte gUnknown_203B2F4
_0802CE94:
movs r0, 0x3
b _0802CEB4
_0802CE98:
ldr r0, [r4]
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802CEAA
movs r0, 0
b _0802CEB4
_0802CEAA:
bl sub_802CF5C
bl sub_802CFD0
movs r0, 0x1
_0802CEB4:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802CE5C
thumb_func_start sub_802CEBC
sub_802CEBC:
ldr r0, _0802CED4
ldr r1, [r0]
movs r0, 0x1E
ldrsh r2, [r1, r0]
movs r3, 0x1C
ldrsh r0, [r1, r3]
muls r0, r2
ldrb r1, [r1, 0x18]
adds r0, r1
lsls r0, 24
lsrs r0, 24
bx lr
.align 2, 0
_0802CED4: .4byte gUnknown_203B2F4
thumb_func_end sub_802CEBC
thumb_func_start sub_802CED8
sub_802CED8:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8004914
ldr r5, _0802CF10
ldr r0, [r5]
adds r0, 0x3C
movs r1, 0
movs r2, 0
bl sub_800641C
ldr r0, [r5]
bl sub_8013984
bl sub_802CF5C
bl sub_802CFD0
cmp r4, 0
beq _0802CF0A
ldr r0, [r5]
bl AddMenuCursorSprite
_0802CF0A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802CF10: .4byte gUnknown_203B2F4
thumb_func_end sub_802CED8
thumb_func_start sub_802CF14
sub_802CF14:
push {r4,r5,lr}
ldr r4, _0802CF54
ldr r2, [r4]
cmp r2, 0
beq _0802CF4E
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _0802CF58
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802CF4E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802CF54: .4byte gUnknown_203B2F4
_0802CF58: .4byte gUnknown_80DFD8C
thumb_func_end sub_802CF14
thumb_func_start sub_802CF5C
sub_802CF5C:
push {r4,lr}
ldr r4, _0802CFCC
ldr r0, [r4]
ldrh r1, [r0, 0x20]
adds r0, 0x9C
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x1E]
adds r0, 0x9D
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9E
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9F
strb r2, [r0]
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
movs r1, 0x18
bl sub_8009614
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x34]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x34]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x4C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802CFCC: .4byte gUnknown_203B2F4
thumb_func_end sub_802CF5C
thumb_func_start sub_802CFD0
sub_802CFD0:
push {r4-r6,lr}
sub sp, 0x60
ldr r6, _0802D02C
ldr r0, [r6]
ldr r0, [r0, 0x34]
bl sub_8008C54
ldr r0, [r6]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r0, [r6]
movs r1, 0x1E
ldrsh r4, [r0, r1]
lsls r4, 3
adds r5, r4, 0
adds r5, 0xA
ldr r2, _0802D030
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl xxx_call_draw_string
adds r4, 0x4
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0x9E
ldrb r0, [r0]
lsls r0, 3
adds r5, r4, r0
movs r0, 0x1E
ldrsh r2, [r1, r0]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r1, 0x34]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r5, 0
b _0802D076
.align 2, 0
_0802D02C: .4byte gUnknown_203B2F4
_0802D030: .4byte gUnknown_80DFDBC
_0802D034:
ldr r0, [r6]
movs r2, 0x1E
ldrsh r1, [r0, r2]
movs r2, 0x1C
ldrsh r0, [r0, r2]
muls r0, r1
adds r0, r5
lsls r0, 24
lsrs r0, 24
bl sub_803B344
adds r4, r0, 0
ldr r0, [r6]
ldr r1, [r0, 0x34]
str r1, [sp, 0x8]
adds r1, r5, 0
bl sub_8013800
str r0, [sp, 0x50]
adds r0, r4, 0
add r1, sp, 0x8
bl sub_803B35C
mov r1, sp
adds r1, 0x4B
movs r0, 0x1
strb r0, [r1]
ldr r0, [r4, 0x14]
str r0, [sp, 0x54]
add r0, sp, 0x8
bl sub_803B6D4
adds r5, 0x1
_0802D076:
ldr r0, [r6]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r5, r0
blt _0802D034
ldr r0, _0802D094
ldr r0, [r0]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0x60
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802D094: .4byte gUnknown_203B2F4
thumb_func_end sub_802CFD0
thumb_func_start sub_802D098
sub_802D098:
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, _0802D0DC
movs r0, 0x82
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
movs r5, 0
str r5, [r0, 0x6C]
str r5, [r0, 0x70]
str r5, [r0, 0x74]
str r4, [r0, 0xC]
strb r5, [r0, 0x8]
ldr r0, [r6]
adds r0, 0xA
bl sub_8099328
ldr r1, [r6]
strb r0, [r1, 0x9]
bl sub_8011C1C
cmp r0, 0x2
beq _0802D0CE
ldr r0, [r6]
strb r5, [r0, 0x9]
_0802D0CE:
movs r0, 0
bl sub_802D1A0
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0802D0DC: .4byte gUnknown_203B2F8
thumb_func_end sub_802D098
thumb_func_start sub_802D0E0
sub_802D0E0:
push {lr}
ldr r0, _0802D0F8
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x10
bhi _0802D16C
lsls r0, 2
ldr r1, _0802D0FC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802D0F8: .4byte gUnknown_203B2F8
_0802D0FC: .4byte _0802D100
.align 2, 0
_0802D100:
.4byte _0802D170
.4byte _0802D144
.4byte _0802D168
.4byte _0802D16C
.4byte _0802D16C
.4byte _0802D16C
.4byte _0802D16C
.4byte _0802D16C
.4byte _0802D16C
.4byte _0802D162
.4byte _0802D16C
.4byte _0802D14A
.4byte _0802D14A
.4byte _0802D150
.4byte _0802D156
.4byte _0802D15C
.4byte _0802D15C
_0802D144:
bl sub_802D7D0
b _0802D170
_0802D14A:
bl sub_802D8CC
b _0802D170
_0802D150:
bl sub_802D940
b _0802D170
_0802D156:
bl sub_802D9F0
b _0802D170
_0802D15C:
bl sub_802DA60
b _0802D170
_0802D162:
bl sub_802D82C
b _0802D170
_0802D168:
movs r0, 0x3
b _0802D172
_0802D16C:
bl sub_802DA84
_0802D170:
movs r0, 0
_0802D172:
pop {r1}
bx r1
thumb_func_end sub_802D0E0
thumb_func_start sub_802D178
sub_802D178:
ldr r0, _0802D180
ldr r0, [r0]
ldrb r0, [r0, 0x8]
bx lr
.align 2, 0
_0802D180: .4byte gUnknown_203B2F8
thumb_func_end sub_802D178
thumb_func_start sub_802D184
sub_802D184:
push {r4,lr}
ldr r4, _0802D19C
ldr r0, [r4]
cmp r0, 0
beq _0802D196
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802D196:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802D19C: .4byte gUnknown_203B2F8
thumb_func_end sub_802D184
thumb_func_start sub_802D1A0
sub_802D1A0:
push {lr}
ldr r1, _0802D1B4
ldr r1, [r1]
str r0, [r1]
bl sub_802D1B8
bl sub_802D2A8
pop {r0}
bx r0
.align 2, 0
_0802D1B4: .4byte gUnknown_203B2F8
thumb_func_end sub_802D1A0
thumb_func_start sub_802D1B8
sub_802D1B8:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0802D1E0
ldr r0, [r4]
movs r1, 0xD4
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0xD
beq _0802D1EA
cmp r0, 0xD
bgt _0802D1E4
cmp r0, 0x2
beq _0802D27E
b _0802D254
.align 2, 0
_0802D1E0: .4byte gUnknown_203B2F8
_0802D1E4:
cmp r0, 0xE
beq _0802D21C
b _0802D254
_0802D1EA:
bl sub_802D5A4
ldr r2, [r4]
movs r0, 0xEC
lsls r0, 1
adds r2, r0
ldr r1, _0802D218
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
movs r6, 0x8C
lsls r6, 1
adds r1, r6
bl sub_8012CAC
ldr r0, [r4]
movs r7, 0xF2
lsls r7, 1
b _0802D246
.align 2, 0
_0802D218: .4byte gUnknown_80DFE04
_0802D21C:
bl sub_802D63C
ldr r2, [r4]
movs r0, 0xF8
lsls r0, 1
adds r2, r0
ldr r1, _0802D250
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
movs r6, 0xAC
lsls r6, 1
adds r1, r6
bl sub_8012CAC
ldr r0, [r4]
movs r7, 0xFE
lsls r7, 1
_0802D246:
adds r0, r7
movs r1, 0x6
strh r1, [r0]
b _0802D27E
.align 2, 0
_0802D250: .4byte gUnknown_80DFE1C
_0802D254:
ldr r0, _0802D2A0
mov r12, r0
movs r1, 0xD4
lsls r1, 1
mov r8, r1
ldr r4, _0802D2A4
movs r3, 0
movs r2, 0x3
_0802D264:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0802D264
_0802D27E:
bl sub_8004914
ldr r0, _0802D2A0
ldr r0, [r0]
movs r6, 0xD4
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802D2A0: .4byte gUnknown_203B2F8
_0802D2A4: .4byte gUnknown_80DFDD4
thumb_func_end sub_802D1B8
thumb_func_start sub_802D2A8
sub_802D2A8:
push {r4,lr}
sub sp, 0x14
ldr r1, _0802D2C4
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x10
bls _0802D2BA
b _0802D59A
_0802D2BA:
lsls r0, 2
ldr r1, _0802D2C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802D2C4: .4byte gUnknown_203B2F8
_0802D2C8: .4byte _0802D2CC
.align 2, 0
_0802D2CC:
.4byte _0802D310
.4byte _0802D398
.4byte _0802D59A
.4byte _0802D3B4
.4byte _0802D3C4
.4byte _0802D3D4
.4byte _0802D3E4
.4byte _0802D3F4
.4byte _0802D404
.4byte _0802D498
.4byte _0802D4C8
.4byte _0802D4E4
.4byte _0802D4F0
.4byte _0802D4F8
.4byte _0802D524
.4byte _0802D558
.4byte _0802D576
_0802D310:
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_80968B0
lsls r0, 24
cmp r0, 0
beq _0802D326
movs r0, 0x3
bl sub_802D1A0
b _0802D59A
_0802D326:
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_8096F50
lsls r0, 24
cmp r0, 0
beq _0802D33C
movs r0, 0x4
bl sub_802D1A0
b _0802D59A
_0802D33C:
ldr r1, [r4]
ldr r0, [r1, 0xC]
ldrb r0, [r0, 0x2]
cmp r0, 0x4
bne _0802D36E
adds r0, r1, 0
adds r0, 0x10
bl sub_8096C08
lsls r0, 24
cmp r0, 0
beq _0802D36E
bl sub_802DAA8
lsls r0, 24
cmp r0, 0
beq _0802D366
movs r0, 0x9
bl sub_802D1A0
b _0802D59A
_0802D366:
movs r0, 0x5
bl sub_802D1A0
b _0802D59A
_0802D36E:
bl sub_80969AC
cmp r0, 0x7
ble _0802D390
bl sub_802DADC
lsls r0, 24
cmp r0, 0
beq _0802D388
movs r0, 0xA
bl sub_802D1A0
b _0802D59A
_0802D388:
movs r0, 0x6
bl sub_802D1A0
b _0802D59A
_0802D390:
movs r0, 0x8
bl sub_802D1A0
b _0802D59A
_0802D398:
bl sub_802D73C
ldr r0, _0802D3AC
ldr r1, _0802D3B0
ldr r3, [r1]
ldr r2, [r3, 0x70]
movs r1, 0xAC
lsls r1, 1
adds r3, r1
b _0802D4AA
.align 2, 0
_0802D3AC: .4byte gUnknown_80DFE4C
_0802D3B0: .4byte gUnknown_203B2F8
_0802D3B4:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _0802D3C0
b _0802D4D0
.align 2, 0
_0802D3C0: .4byte gUnknown_80DFE9C
_0802D3C4:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _0802D3D0
b _0802D4D0
.align 2, 0
_0802D3D0: .4byte gUnknown_80DFED0
_0802D3D4:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _0802D3E0
b _0802D4D0
.align 2, 0
_0802D3E0: .4byte gUnknown_80DFF2C
_0802D3E4:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _0802D3F0
b _0802D4D0
.align 2, 0
_0802D3F0: .4byte gUnknown_80DFFA4
_0802D3F4:
ldr r1, [r4]
movs r0, 0xC
str r0, [r1, 0x4]
ldr r0, _0802D400
b _0802D4D0
.align 2, 0
_0802D400: .4byte gUnknown_80E0010
_0802D404:
ldr r4, _0802D45C
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x8]
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_8096A78
bl sub_8096C80
bl sub_8096D24
ldr r0, [r4]
ldr r0, [r0, 0xC]
ldrb r0, [r0, 0x2]
cmp r0, 0x4
bne _0802D446
bl sub_8096DD8
ldr r1, [r4]
ldr r1, [r1, 0xC]
ldr r1, [r1, 0x14]
movs r2, 0x28
bl MemoryCopy8
bl sub_8096DE8
ldr r1, [r4]
ldr r1, [r1, 0xC]
ldr r1, [r1, 0x18]
movs r2, 0x78
bl MemoryCopy8
_0802D446:
ldr r0, [r4]
ldr r0, [r0, 0xC]
ldrb r0, [r0, 0x4]
cmp r0, 0x2C
beq _0802D46E
cmp r0, 0x2C
bgt _0802D460
cmp r0, 0x2B
beq _0802D46A
b _0802D484
.align 2, 0
_0802D45C: .4byte gUnknown_203B2F8
_0802D460:
cmp r0, 0x2D
beq _0802D472
cmp r0, 0x2E
beq _0802D47C
b _0802D484
_0802D46A:
movs r0, 0x2A
b _0802D474
_0802D46E:
movs r0, 0x2B
b _0802D474
_0802D472:
movs r0, 0x2C
_0802D474:
movs r1, 0x1
bl sub_8097418
b _0802D484
_0802D47C:
movs r0, 0x2D
movs r1, 0x1
bl sub_8097418
_0802D484:
ldr r0, _0802D490
ldr r1, [r0]
movs r0, 0x2
str r0, [r1, 0x4]
ldr r0, _0802D494
b _0802D4D0
.align 2, 0
_0802D490: .4byte gUnknown_203B2F8
_0802D494: .4byte gUnknown_80E0074
_0802D498:
bl sub_802D690
ldr r0, _0802D4C0
ldr r1, _0802D4C4
ldr r3, [r1]
ldr r2, [r3, 0x74]
movs r4, 0xAC
lsls r4, 1
adds r3, r4
_0802D4AA:
movs r4, 0
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
str r4, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _0802D59A
.align 2, 0
_0802D4C0: .4byte gUnknown_80E0094
_0802D4C4: .4byte gUnknown_203B2F8
_0802D4C8:
ldr r1, [r4]
movs r0, 0xB
str r0, [r1, 0x4]
ldr r0, _0802D4DC
_0802D4D0:
ldr r3, _0802D4E0
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0802D59A
.align 2, 0
_0802D4DC: .4byte gUnknown_80E0108
_0802D4E0: .4byte 0x00000101
_0802D4E4:
movs r0, 0
movs r1, 0
movs r2, 0x4
bl sub_802C4C8
b _0802D59A
_0802D4F0:
movs r0, 0x1
bl sub_802C640
b _0802D59A
_0802D4F8:
bl sub_802C750
ldr r0, _0802D520
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x78
movs r3, 0x8C
lsls r3, 1
adds r1, r2, r3
movs r4, 0xCC
lsls r4, 1
adds r3, r2, r4
ldr r2, [r2, 0x6C]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _0802D59A
.align 2, 0
_0802D520: .4byte gUnknown_203B2F8
_0802D524:
bl sub_802C750
ldr r4, _0802D554
ldr r0, [r4]
adds r0, 0x78
movs r1, 0
bl sub_8012EA4
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xC8
movs r2, 0xAC
lsls r2, 1
adds r1, r2
movs r2, 0x4
str r2, [sp]
movs r2, 0x3
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0802D59A
.align 2, 0
_0802D554: .4byte gUnknown_203B2F8
_0802D558:
ldr r0, [r4]
ldrb r0, [r0, 0x10]
bl sub_8096AB4
ldr r1, [r4]
adds r1, 0x14
bl sub_803B35C
ldr r0, [r4]
movs r1, 0x3
str r1, [r0, 0x14]
adds r0, 0x14
bl sub_802DE84
b _0802D59A
_0802D576:
ldr r1, [r4]
ldr r0, [r1, 0xC]
adds r1, 0x14
bl sub_803B35C
ldr r0, [r4]
movs r1, 0x3
str r1, [r0, 0x14]
adds r0, 0x58
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
ldr r1, [r0, 0xC]
ldr r1, [r1, 0x18]
str r1, [r0, 0x64]
adds r0, 0x14
bl sub_802DE84
_0802D59A:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802D2A8
thumb_func_start sub_802D5A4
sub_802D5A4:
push {r4-r7,lr}
ldr r4, _0802D630
ldr r0, [r4]
movs r5, 0xCC
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r0, [r4]
mov r12, r0
movs r3, 0
movs r1, 0x8C
lsls r1, 1
add r1, r12
ldr r0, _0802D634
ldr r0, [r0]
str r0, [r1]
movs r1, 0x8E
lsls r1, 1
add r1, r12
movs r0, 0x2
str r0, [r1]
movs r2, 0x1
movs r1, 0x90
lsls r1, 1
add r1, r12
ldr r0, _0802D638
ldr r0, [r0]
str r0, [r1]
movs r1, 0x92
lsls r1, 1
add r1, r12
movs r0, 0x5
str r0, [r1]
movs r7, 0x2
movs r0, 0x94
lsls r0, 1
add r0, r12
str r3, [r0]
movs r0, 0x96
lsls r0, 1
add r0, r12
str r2, [r0]
movs r6, 0
movs r3, 0x8E
lsls r3, 1
add r3, r12
mov r0, r12
adds r2, r0, r5
_0802D60A:
ldrh r0, [r2]
cmp r0, 0
bne _0802D61A
ldr r1, [r3]
mov r5, r12
ldr r0, [r5, 0x6C]
cmp r1, r0
beq _0802D62A
_0802D61A:
adds r3, 0x8
adds r2, 0x2
adds r6, 0x1
cmp r6, r7
blt _0802D60A
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x6C]
_0802D62A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802D630: .4byte gUnknown_203B2F8
_0802D634: .4byte gUnknown_80D494C
_0802D638: .4byte gUnknown_80D4970
thumb_func_end sub_802D5A4
thumb_func_start sub_802D63C
sub_802D63C:
ldr r0, _0802D684
ldr r0, [r0]
mov r12, r0
movs r3, 0
movs r1, 0xAC
lsls r1, 1
add r1, r12
ldr r0, _0802D688
ldr r0, [r0]
str r0, [r1]
movs r1, 0xAE
lsls r1, 1
add r1, r12
movs r0, 0x3
str r0, [r1]
movs r2, 0x1
movs r1, 0xB0
lsls r1, 1
add r1, r12
ldr r0, _0802D68C
ldr r0, [r0]
str r0, [r1]
movs r1, 0xB2
lsls r1, 1
add r1, r12
movs r0, 0x4
str r0, [r1]
movs r0, 0xB4
lsls r0, 1
add r0, r12
str r3, [r0]
movs r0, 0xB6
lsls r0, 1
add r0, r12
str r2, [r0]
bx lr
.align 2, 0
_0802D684: .4byte gUnknown_203B2F8
_0802D688: .4byte gUnknown_80D4920
_0802D68C: .4byte gUnknown_80D4928
thumb_func_end sub_802D63C
thumb_func_start sub_802D690
sub_802D690:
push {r4,r5,lr}
ldr r2, _0802D728
ldr r0, [r2]
mov r12, r0
movs r4, 0
movs r1, 0xAC
lsls r1, 1
add r1, r12
ldr r0, _0802D72C
ldr r0, [r0]
str r0, [r1]
movs r1, 0xAE
lsls r1, 1
add r1, r12
movs r0, 0x3
str r0, [r1]
movs r3, 0x1
movs r1, 0xB0
lsls r1, 1
add r1, r12
ldr r0, _0802D730
ldr r0, [r0]
str r0, [r1]
movs r1, 0xB2
lsls r1, 1
add r1, r12
movs r0, 0x4
str r0, [r1]
movs r1, 0xB4
lsls r1, 1
add r1, r12
ldr r0, _0802D734
str r0, [r1]
movs r1, 0xB6
lsls r1, 1
add r1, r12
movs r0, 0x6
str r0, [r1]
movs r1, 0xB8
lsls r1, 1
add r1, r12
ldr r0, _0802D738
str r0, [r1]
movs r1, 0xBA
lsls r1, 1
add r1, r12
movs r0, 0x7
str r0, [r1]
movs r5, 0x4
movs r0, 0xBC
lsls r0, 1
add r0, r12
str r4, [r0]
movs r0, 0xBE
lsls r0, 1
add r0, r12
str r3, [r0]
movs r3, 0
mov r0, r12
ldr r4, [r0, 0x74]
movs r1, 0xAE
lsls r1, 1
add r1, r12
_0802D70E:
ldr r0, [r1]
cmp r0, r4
beq _0802D722
adds r1, 0x8
adds r3, 0x1
cmp r3, r5
blt _0802D70E
ldr r1, [r2]
movs r0, 0x4
str r0, [r1, 0x74]
_0802D722:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802D728: .4byte gUnknown_203B2F8
_0802D72C: .4byte gUnknown_80D4920
_0802D730: .4byte gUnknown_80D4928
_0802D734: .4byte gUnknown_80E014C
_0802D738: .4byte gUnknown_80E0158
thumb_func_end sub_802D690
thumb_func_start sub_802D73C
sub_802D73C:
push {r4,r5,lr}
ldr r3, _0802D7C0
ldr r0, [r3]
mov r12, r0
movs r4, 0
movs r1, 0xAC
lsls r1, 1
add r1, r12
ldr r0, _0802D7C4
ldr r0, [r0]
str r0, [r1]
movs r1, 0xAE
lsls r1, 1
add r1, r12
movs r0, 0x3
str r0, [r1]
movs r2, 0x1
movs r1, 0xB0
lsls r1, 1
add r1, r12
ldr r0, _0802D7C8
ldr r0, [r0]
str r0, [r1]
movs r1, 0xB2
lsls r1, 1
add r1, r12
movs r0, 0x4
str r0, [r1]
movs r1, 0xB4
lsls r1, 1
add r1, r12
ldr r0, _0802D7CC
str r0, [r1]
movs r1, 0xB6
lsls r1, 1
add r1, r12
movs r0, 0x6
str r0, [r1]
movs r5, 0x3
movs r0, 0xB8
lsls r0, 1
add r0, r12
str r4, [r0]
movs r0, 0xBA
lsls r0, 1
add r0, r12
str r2, [r0]
movs r2, 0
mov r0, r12
ldr r4, [r0, 0x70]
movs r1, 0xAE
lsls r1, 1
add r1, r12
_0802D7A6:
ldr r0, [r1]
cmp r0, r4
beq _0802D7BA
adds r1, 0x8
adds r2, 0x1
cmp r2, r5
blt _0802D7A6
ldr r1, [r3]
movs r0, 0x4
str r0, [r1, 0x70]
_0802D7BA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802D7C0: .4byte gUnknown_203B2F8
_0802D7C4: .4byte gUnknown_80D4920
_0802D7C8: .4byte gUnknown_80D4928
_0802D7CC: .4byte gUnknown_80E014C
thumb_func_end sub_802D73C
thumb_func_start sub_802D7D0
sub_802D7D0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802D826
ldr r1, [sp]
cmp r1, 0x1
beq _0802D7EA
ldr r0, _0802D800
ldr r0, [r0]
str r1, [r0, 0x70]
_0802D7EA:
ldr r0, [sp]
cmp r0, 0x3
beq _0802D804
cmp r0, 0x3
ble _0802D820
cmp r0, 0x4
beq _0802D820
cmp r0, 0x6
beq _0802D80C
b _0802D820
.align 2, 0
_0802D800: .4byte gUnknown_203B2F8
_0802D804:
movs r0, 0x2
bl sub_802D1A0
b _0802D826
_0802D80C:
ldr r0, _0802D81C
ldr r1, [r0]
movs r0, 0x1
str r0, [r1, 0x4]
movs r0, 0x10
bl sub_802D1A0
b _0802D826
.align 2, 0
_0802D81C: .4byte gUnknown_203B2F8
_0802D820:
movs r0, 0
bl sub_802D1A0
_0802D826:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802D7D0
thumb_func_start sub_802D82C
sub_802D82C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802D8C6
ldr r1, [sp]
cmp r1, 0x1
beq _0802D846
ldr r0, _0802D858
ldr r0, [r0]
str r1, [r0, 0x74]
_0802D846:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x6
bhi _0802D8C0
lsls r0, 2
ldr r1, _0802D85C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802D858: .4byte gUnknown_203B2F8
_0802D85C: .4byte _0802D860
.align 2, 0
_0802D860:
.4byte _0802D8C0
.4byte _0802D8C0
.4byte _0802D87C
.4byte _0802D8C0
.4byte _0802D8C0
.4byte _0802D898
.4byte _0802D8AC
_0802D87C:
ldr r0, _0802D894
ldr r0, [r0]
ldrb r0, [r0, 0x10]
bl sub_8096C3C
bl sub_8096C80
movs r0, 0x8
bl sub_802D1A0
b _0802D8C6
.align 2, 0
_0802D894: .4byte gUnknown_203B2F8
_0802D898:
ldr r0, _0802D8A8
ldr r1, [r0]
movs r0, 0x9
str r0, [r1, 0x4]
movs r0, 0x10
bl sub_802D1A0
b _0802D8C6
.align 2, 0
_0802D8A8: .4byte gUnknown_203B2F8
_0802D8AC:
ldr r0, _0802D8BC
ldr r1, [r0]
movs r0, 0x9
str r0, [r1, 0x4]
movs r0, 0xF
bl sub_802D1A0
b _0802D8C6
.align 2, 0
_0802D8BC: .4byte gUnknown_203B2F8
_0802D8C0:
movs r0, 0x1
bl sub_802D1A0
_0802D8C6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_802D82C
thumb_func_start sub_802D8CC
sub_802D8CC:
push {lr}
movs r0, 0x1
bl sub_802C598
cmp r0, 0x4
bhi _0802D93A
lsls r0, 2
ldr r1, _0802D8E4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802D8E4: .4byte _0802D8E8
.align 2, 0
_0802D8E8:
.4byte _0802D93A
.4byte _0802D93A
.4byte _0802D930
.4byte _0802D8FC
.4byte _0802D914
_0802D8FC:
bl sub_802C620
ldr r1, _0802D910
ldr r1, [r1]
strb r0, [r1, 0x10]
movs r0, 0xD
bl sub_802D1A0
b _0802D93A
.align 2, 0
_0802D910: .4byte gUnknown_203B2F8
_0802D914:
bl sub_802C620
ldr r2, _0802D92C
ldr r1, [r2]
strb r0, [r1, 0x10]
ldr r1, [r2]
movs r0, 0xC
str r0, [r1, 0x4]
movs r0, 0xF
bl sub_802D1A0
b _0802D93A
.align 2, 0
_0802D92C: .4byte gUnknown_203B2F8
_0802D930:
bl sub_802C688
movs r0, 0x1
bl sub_802D1A0
_0802D93A:
pop {r0}
bx r0
thumb_func_end sub_802D8CC
thumb_func_start sub_802D940
sub_802D940:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802C598
ldr r4, _0802D980
ldr r0, [r4]
adds r0, 0x78
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802D970
ldr r0, [r4]
adds r0, 0x78
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802D970
ldr r0, [r4]
str r1, [r0, 0x6C]
_0802D970:
ldr r0, [sp]
cmp r0, 0x2
beq _0802D98A
cmp r0, 0x2
bgt _0802D984
cmp r0, 0x1
beq _0802D9E0
b _0802D9E6
.align 2, 0
_0802D980: .4byte gUnknown_203B2F8
_0802D984:
cmp r0, 0x5
beq _0802D9CC
b _0802D9E6
_0802D98A:
ldr r0, _0802D9BC
ldr r3, [r0]
ldrb r0, [r3, 0x9]
cmp r0, 0
beq _0802D9C4
ldr r2, _0802D9C0
ldrb r1, [r3, 0x10]
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
adds r0, 0xF0
ldr r1, [r2]
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x5
bls _0802D9C4
ldrb r0, [r3, 0xA]
ldrb r1, [r1, 0x4]
cmp r0, r1
bne _0802D9C4
movs r0, 0x7
bl sub_802D1A0
b _0802D9E6
.align 2, 0
_0802D9BC: .4byte gUnknown_203B2F8
_0802D9C0: .4byte gUnknown_203B490
_0802D9C4:
movs r0, 0xE
bl sub_802D1A0
b _0802D9E6
_0802D9CC:
ldr r0, _0802D9DC
ldr r1, [r0]
movs r0, 0xC
str r0, [r1, 0x4]
movs r0, 0xF
bl sub_802D1A0
b _0802D9E6
.align 2, 0
_0802D9DC: .4byte gUnknown_203B2F8
_0802D9E0:
movs r0, 0xC
bl sub_802D1A0
_0802D9E6:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802D940
thumb_func_start sub_802D9F0
sub_802D9F0:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802C598
ldr r4, _0802DA30
ldr r0, [r4]
adds r0, 0x78
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0xC8
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802DA1E
ldr r0, [r4]
adds r0, 0xC8
mov r1, sp
bl sub_8013114
_0802DA1E:
ldr r0, [sp]
cmp r0, 0x3
beq _0802DA40
cmp r0, 0x3
bgt _0802DA34
cmp r0, 0x1
beq _0802DA38
b _0802DA56
.align 2, 0
_0802DA30: .4byte gUnknown_203B2F8
_0802DA34:
cmp r0, 0x4
bne _0802DA56
_0802DA38:
movs r0, 0xC
bl sub_802D1A0
b _0802DA56
_0802DA40:
bl sub_802C688
ldr r0, [r4]
ldrb r0, [r0, 0x10]
bl sub_8096C3C
bl sub_8096C80
movs r0, 0x8
bl sub_802D1A0
_0802DA56:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802D9F0
thumb_func_start sub_802DA60
sub_802DA60:
push {lr}
bl sub_802DEE0
cmp r0, 0x1
bls _0802DA7C
cmp r0, 0x3
bhi _0802DA7C
bl sub_802DF24
ldr r0, _0802DA80
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_802D1A0
_0802DA7C:
pop {r0}
bx r0
.align 2, 0
_0802DA80: .4byte gUnknown_203B2F8
thumb_func_end sub_802DA60
thumb_func_start sub_802DA84
sub_802DA84:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802DA9C
ldr r0, _0802DAA4
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_802D1A0
_0802DA9C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0802DAA4: .4byte gUnknown_203B2F8
thumb_func_end sub_802DA84
thumb_func_start sub_802DAA8
sub_802DAA8:
push {r4,lr}
ldr r4, _0802DAD0
ldr r0, [r4]
ldrb r0, [r0, 0x10]
bl sub_8096AB4
adds r1, r0, 0
ldr r4, [r4]
ldrb r0, [r4, 0x9]
cmp r0, 0
beq _0802DAD4
ldrb r0, [r1]
cmp r0, 0x5
beq _0802DAD4
ldrb r0, [r4, 0xA]
ldrb r1, [r1, 0x4]
cmp r0, r1
bne _0802DAD4
movs r0, 0
b _0802DAD6
.align 2, 0
_0802DAD0: .4byte gUnknown_203B2F8
_0802DAD4:
movs r0, 0x1
_0802DAD6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802DAA8
thumb_func_start sub_802DADC
sub_802DADC:
push {r4,lr}
ldr r3, _0802DAEC
ldr r0, [r3]
ldrb r0, [r0, 0x9]
cmp r0, 0
bne _0802DAF0
_0802DAE8:
movs r0, 0x1
b _0802DB1C
.align 2, 0
_0802DAEC: .4byte gUnknown_203B2F8
_0802DAF0:
ldr r0, _0802DB24
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
movs r2, 0
_0802DAFA:
ldrb r0, [r1]
cmp r0, 0
beq _0802DAE8
cmp r0, 0x5
beq _0802DAE8
cmp r0, 0x5
bls _0802DB12
ldr r0, [r3]
ldrb r0, [r0, 0xA]
ldrb r4, [r1, 0x4]
cmp r0, r4
bne _0802DAE8
_0802DB12:
adds r1, 0x14
adds r2, 0x1
cmp r2, 0x7
ble _0802DAFA
movs r0, 0
_0802DB1C:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0802DB24: .4byte gUnknown_203B490
thumb_func_end sub_802DADC
thumb_func_start sub_802DB28
sub_802DB28:
push {r4-r6,lr}
sub sp, 0x8
adds r2, r1, 0
lsls r0, 24
lsrs r6, r0, 24
lsls r2, 24
lsrs r2, 24
mov r0, sp
adds r1, r6, 0
bl sub_8096AF8
mov r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _0802DB4A
movs r0, 0
b _0802DBC6
_0802DB4A:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _0802DBD0
movs r0, 0xA8
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
adds r0, 0x30
movs r5, 0
strb r6, [r0]
adds r0, r6, 0
bl sub_8096AB4
ldr r1, [r4]
str r0, [r1, 0x34]
bl sub_8096EEC
ldr r1, [r4]
ldr r0, [r1, 0x34]
adds r1, 0x8
bl sub_803C21C
ldr r0, [r4]
ldr r0, [r0, 0x34]
movs r1, 0xC
ldrsh r0, [r0, r1]
bl sub_808DDD0
ldr r1, [r4]
str r0, [r1, 0x38]
str r5, [r1, 0x3C]
adds r1, 0x44
strb r5, [r1]
ldr r0, [r4]
adds r0, 0x45
strb r5, [r0]
ldr r0, [r4]
adds r0, 0x46
strb r5, [r0]
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0x40
movs r0, 0x2
strh r0, [r1]
adds r1, 0x2
movs r0, 0x8
strh r0, [r1]
ldr r0, [r2, 0x38]
cmp r0, 0
beq _0802DBBE
ldr r0, [r0, 0x4]
str r0, [r2, 0x3C]
_0802DBBE:
movs r0, 0
bl sub_802DC28
movs r0, 0x1
_0802DBC6:
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0802DBD0: .4byte gUnknown_203B2FC
thumb_func_end sub_802DB28
thumb_func_start sub_802DBD4
sub_802DBD4:
push {lr}
ldr r0, _0802DBEC
ldr r0, [r0]
ldr r1, [r0]
cmp r1, 0x6
beq _0802DBF0
cmp r1, 0x7
bne _0802DBF6
ldr r0, [r0, 0x34]
strb r1, [r0]
movs r0, 0x3
b _0802DBFC
.align 2, 0
_0802DBEC: .4byte gUnknown_203B2FC
_0802DBF0:
bl sub_802DE44
b _0802DBFA
_0802DBF6:
bl sub_802DE60
_0802DBFA:
movs r0, 0
_0802DBFC:
pop {r1}
bx r1
thumb_func_end sub_802DBD4
thumb_func_start sub_802DC00
sub_802DC00:
push {r4,lr}
ldr r4, _0802DC24
ldr r0, [r4]
cmp r0, 0
beq _0802DC1E
ldr r0, [r0, 0x38]
cmp r0, 0
beq _0802DC14
bl CloseFile
_0802DC14:
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802DC1E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802DC24: .4byte gUnknown_203B2FC
thumb_func_end sub_802DC00
thumb_func_start sub_802DC28
sub_802DC28:
push {lr}
ldr r1, _0802DC3C
ldr r1, [r1]
str r0, [r1]
bl sub_802DC40
bl sub_802DC9C
pop {r0}
bx r0
.align 2, 0
_0802DC3C: .4byte gUnknown_203B2FC
thumb_func_end sub_802DC28
thumb_func_start sub_802DC40
sub_802DC40:
push {r4-r7,lr}
ldr r4, _0802DC94
ldr r0, [r4]
adds r0, 0x48
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0
beq _0802DC58
cmp r0, 0x7
bne _0802DC7A
_0802DC58:
mov r12, r4
ldr r4, _0802DC98
movs r3, 0
movs r2, 0x3
_0802DC60:
mov r0, r12
ldr r1, [r0]
adds r1, r3
adds r1, 0x48
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0802DC60
_0802DC7A:
bl sub_8004914
ldr r0, _0802DC94
ldr r0, [r0]
adds r0, 0x48
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802DC94: .4byte gUnknown_203B2FC
_0802DC98: .4byte gUnknown_80E016C
thumb_func_end sub_802DC40
thumb_func_start sub_802DC9C
sub_802DC9C:
push {r4,r5,lr}
ldr r1, _0802DCB8
ldr r0, [r1]
ldr r0, [r0]
adds r5, r1, 0
cmp r0, 0x7
bls _0802DCAC
b _0802DE3E
_0802DCAC:
lsls r0, 2
ldr r1, _0802DCBC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802DCB8: .4byte gUnknown_203B2FC
_0802DCBC: .4byte _0802DCC0
.align 2, 0
_0802DCC0:
.4byte _0802DCE0
.4byte _0802DDDC
.4byte _0802DDE4
.4byte _0802DDEC
.4byte _0802DDFC
.4byte _0802DDF4
.4byte _0802DE34
.4byte _0802DE3E
_0802DCE0:
ldr r0, _0802DD60
ldr r1, [r5]
ldr r1, [r1, 0x34]
movs r2, 0xC
ldrsh r1, [r1, r2]
bl sub_808D8E0
ldr r4, _0802DD64
ldr r0, [r5]
ldr r0, [r0, 0x34]
movs r2, 0xC
ldrsh r1, [r0, r2]
adds r0, r4, 0
bl sub_808D8E0
ldr r0, [r5]
ldr r0, [r0, 0x34]
movs r1, 0xC
ldrsh r0, [r0, r1]
bl sub_808D994
adds r1, r0, 0
ldr r2, _0802DD68
adds r0, r4, r2
bl strcpy
ldr r0, [r5]
ldr r0, [r0, 0x34]
movs r1, 0xE
ldrsh r0, [r0, r1]
bl sub_808D994
adds r1, r0, 0
ldr r2, _0802DD6C
adds r4, r2
adds r0, r4, 0
bl strcpy
ldr r0, [r5]
ldr r0, [r0, 0x34]
movs r1, 0xC
ldrsh r0, [r0, r1]
bl sub_8098214
ldr r0, _0802DD70
ldr r1, [r5]
ldr r1, [r1, 0x34]
ldrb r1, [r1, 0x10]
movs r2, 0
bl sub_8090DC4
ldr r1, [r5]
movs r0, 0x6
str r0, [r1, 0x4]
ldr r0, [r1, 0x34]
ldrb r0, [r0, 0x1]
cmp r0, 0x4
bhi _0802DDD4
lsls r0, 2
ldr r1, _0802DD74
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802DD60: .4byte gUnknown_202E5D8
_0802DD64: .4byte gUnknown_202E1C8
_0802DD68: .4byte 0xfffffdd0
_0802DD6C: .4byte 0xfffffe20
_0802DD70: .4byte gUnknown_202DE58
_0802DD74: .4byte _0802DD78
.align 2, 0
_0802DD78:
.4byte _0802DDD4
.4byte _0802DD9C
.4byte _0802DDB8
.4byte _0802DD94
.4byte _0802DD8C
_0802DD8C:
movs r0, 0x5
bl sub_802DC28
b _0802DE3E
_0802DD94:
movs r0, 0x4
bl sub_802DC28
b _0802DE3E
_0802DD9C:
movs r0, 0x2
bl sub_802DC28
ldr r0, _0802DDB4
ldr r0, [r0]
ldr r0, [r0, 0x34]
movs r2, 0xE
ldrsh r0, [r0, r2]
bl sub_8098214
b _0802DE3E
.align 2, 0
_0802DDB4: .4byte gUnknown_203B2FC
_0802DDB8:
movs r0, 0x3
bl sub_802DC28
ldr r0, _0802DDD0
ldr r0, [r0]
ldr r0, [r0, 0x34]
movs r1, 0xE
ldrsh r0, [r0, r1]
bl sub_8098214
b _0802DE3E
.align 2, 0
_0802DDD0: .4byte gUnknown_203B2FC
_0802DDD4:
movs r0, 0x1
bl sub_802DC28
b _0802DE3E
_0802DDDC:
ldr r0, _0802DDE0
b _0802DE1C
.align 2, 0
_0802DDE0: .4byte gUnknown_80E0184
_0802DDE4:
ldr r0, _0802DDE8
b _0802DE1C
.align 2, 0
_0802DDE8: .4byte gUnknown_80E01A0
_0802DDEC:
ldr r0, _0802DDF0
b _0802DE1C
.align 2, 0
_0802DDF0: .4byte gUnknown_80E01C4
_0802DDF4:
ldr r0, _0802DDF8
b _0802DE1C
.align 2, 0
_0802DDF8: .4byte gUnknown_80E01F0
_0802DDFC:
ldr r0, [r5]
ldr r0, [r0, 0x34]
ldrb r0, [r0, 0x10]
bl sub_8091130
adds r1, r0, 0
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0802DE1A
adds r0, r1, 0
bl sub_80911F8
bl sub_80910B4
_0802DE1A:
ldr r0, _0802DE2C
_0802DE1C:
ldr r2, [r5]
adds r2, 0x38
ldr r3, _0802DE30
movs r1, 0
bl sub_80141B4
b _0802DE3E
.align 2, 0
_0802DE2C: .4byte gUnknown_80E0218
_0802DE30: .4byte 0x0000010d
_0802DE34:
ldr r0, [r5]
adds r0, 0x8
movs r1, 0x1
bl sub_802F204
_0802DE3E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_802DC9C
thumb_func_start sub_802DE44
sub_802DE44:
push {lr}
bl sub_802F298
cmp r0, 0x1
bls _0802DE5C
cmp r0, 0x3
bhi _0802DE5C
bl sub_802F2C0
movs r0, 0x7
bl sub_802DC28
_0802DE5C:
pop {r0}
bx r0
thumb_func_end sub_802DE44
thumb_func_start sub_802DE60
sub_802DE60:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802DE78
ldr r0, _0802DE80
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_802DC28
_0802DE78:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0802DE80: .4byte gUnknown_203B2FC
thumb_func_end sub_802DE60
thumb_func_start sub_802DE84
sub_802DE84:
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, _0802DED8
movs r0, 0x7C
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
str r5, [r0, 0xC]
bl sub_801317C
ldr r0, [r4]
ldr r1, [r0, 0xC]
ldr r2, [r1]
str r2, [r0, 0x10]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, 0x18
adds r1, r0, r1
str r1, [r0, 0x14]
adds r0, 0x18
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x10]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x18
ldr r0, _0802DEDC
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
bl sub_802DF14
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0802DED8: .4byte gUnknown_203B300
_0802DEDC: .4byte gUnknown_80E0264
thumb_func_end sub_802DE84
thumb_func_start sub_802DEE0
sub_802DEE0:
push {lr}
ldr r0, _0802DF00
ldr r0, [r0]
ldr r1, [r0, 0x10]
bl sub_8012A64
cmp r0, 0x1
beq _0802DF04
cmp r0, 0x2
bne _0802DF0E
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802DF10
.align 2, 0
_0802DF00: .4byte gUnknown_203B300
_0802DF04:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0802DF10
_0802DF0E:
movs r0, 0
_0802DF10:
pop {r1}
bx r1
thumb_func_end sub_802DEE0
thumb_func_start sub_802DF14
sub_802DF14:
push {lr}
bl sub_802DF6C
bl sub_802DF88
pop {r0}
bx r0
thumb_func_end sub_802DF14
thumb_func_start sub_802DF24
sub_802DF24:
push {r4,r5,lr}
ldr r4, _0802DF64
ldr r2, [r4]
cmp r2, 0
beq _0802DF5E
ldr r0, [r2, 0x10]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x18
ldr r0, _0802DF68
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802DF5E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802DF64: .4byte gUnknown_203B300
_0802DF68: .4byte gUnknown_80E0248
thumb_func_end sub_802DF24
thumb_func_start sub_802DF6C
sub_802DF6C:
push {lr}
bl sub_8004914
ldr r0, _0802DF84
ldr r0, [r0]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r0}
bx r0
.align 2, 0
_0802DF84: .4byte gUnknown_203B300
thumb_func_end sub_802DF6C
thumb_func_start sub_802DF88
sub_802DF88:
push {r4,lr}
ldr r4, _0802DFAC
ldr r0, [r4]
ldr r0, [r0, 0x10]
bl sub_80073B8
ldr r0, [r4]
ldr r0, [r0, 0xC]
bl sub_803B98C
ldr r0, [r4]
ldr r0, [r0, 0x10]
bl sub_80073E0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802DFAC: .4byte gUnknown_203B300
thumb_func_end sub_802DF88
thumb_func_start sub_802DFB0
sub_802DFB0:
push {r4,lr}
ldr r4, _0802DFD4
movs r0, 0xB6
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0, 0x64]
str r1, [r0, 0x68]
movs r0, 0
bl sub_802E088
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0802DFD4: .4byte gUnknown_203B304
thumb_func_end sub_802DFB0
thumb_func_start sub_802DFD8
sub_802DFD8:
push {lr}
ldr r0, _0802DFF0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0xB
bhi _0802E060
lsls r0, 2
ldr r1, _0802DFF4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802DFF0: .4byte gUnknown_203B304
_0802DFF4: .4byte _0802DFF8
.align 2, 0
_0802DFF8:
.4byte _0802E028
.4byte _0802E030
.4byte _0802E036
.4byte _0802E060
.4byte _0802E03C
.4byte _0802E03C
.4byte _0802E042
.4byte _0802E048
.4byte _0802E04E
.4byte _0802E054
.4byte _0802E054
.4byte _0802E05A
_0802E028:
movs r0, 0x1
bl sub_802E088
b _0802E064
_0802E030:
bl sub_802E4B0
b _0802E064
_0802E036:
bl nullsub_133
b _0802E064
_0802E03C:
bl sub_802E578
b _0802E064
_0802E042:
bl sub_802E60C
b _0802E064
_0802E048:
bl sub_802E73C
b _0802E064
_0802E04E:
bl sub_802E758
b _0802E064
_0802E054:
bl sub_802E774
b _0802E064
_0802E05A:
bl sub_802E7D0
b _0802E064
_0802E060:
movs r0, 0x3
b _0802E066
_0802E064:
movs r0, 0
_0802E066:
pop {r1}
bx r1
thumb_func_end sub_802DFD8
thumb_func_start sub_802E06C
sub_802E06C:
push {r4,lr}
ldr r4, _0802E084
ldr r0, [r4]
cmp r0, 0
beq _0802E07E
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802E07E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802E084: .4byte gUnknown_203B304
thumb_func_end sub_802E06C
thumb_func_start sub_802E088
sub_802E088:
push {lr}
ldr r1, _0802E09C
ldr r1, [r1]
str r0, [r1]
bl sub_802E0A0
bl sub_802E1AC
pop {r0}
bx r0
.align 2, 0
_0802E09C: .4byte gUnknown_203B304
thumb_func_end sub_802E088
thumb_func_start sub_802E0A0
sub_802E0A0:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0802E0C8
ldr r0, [r4]
movs r6, 0x86
lsls r6, 1
adds r0, r6
bl sub_8006518
ldr r0, [r4]
ldr r5, [r0]
cmp r5, 0x1
beq _0802E0D0
cmp r5, 0x6
beq _0802E124
movs r3, 0
ldr r2, _0802E0CC
b _0802E168
.align 2, 0
_0802E0C8: .4byte gUnknown_203B304
_0802E0CC: .4byte gUnknown_80E0284
_0802E0D0:
mov r12, r6
ldr r0, _0802E118
mov r8, r0
movs r2, 0
movs r3, 0x3
_0802E0DA:
ldr r1, [r4]
adds r1, r2
add r1, r12
mov r0, r8
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r2, 0x18
subs r3, 0x1
cmp r3, 0
bge _0802E0DA
bl sub_802E2B4
ldr r3, _0802E11C
ldr r2, [r3]
movs r0, 0x9E
lsls r0, 1
adds r2, r0
ldr r1, _0802E120
ldm r1!, {r4-r6}
stm r2!, {r4-r6}
ldm r1!, {r4,r5,r7}
stm r2!, {r4,r5,r7}
ldr r1, [r3]
adds r0, r1, r0
adds r1, 0xBC
bl sub_8012CAC
b _0802E188
.align 2, 0
_0802E118: .4byte gUnknown_80E0284
_0802E11C: .4byte gUnknown_203B304
_0802E120: .4byte gUnknown_80E029C
_0802E124:
bl sub_802E3B8
ldr r2, [r4]
movs r0, 0x9E
lsls r0, 1
adds r2, r0
ldr r1, _0802E160
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xBC
bl sub_8012CAC
ldr r1, [r4]
movs r4, 0xA4
lsls r4, 1
adds r0, r1, r4
strh r5, [r0]
movs r5, 0xAA
lsls r5, 1
adds r1, r5
ldr r0, _0802E164
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
b _0802E188
.align 2, 0
_0802E160: .4byte gUnknown_80E02B4
_0802E164: .4byte gUnknown_80E02CC
_0802E168:
ldr r0, [r4]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r0, r1
movs r6, 0x86
lsls r6, 1
adds r0, r6
adds r1, r2, 0
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r3, 0x1
cmp r3, 0x3
ble _0802E168
_0802E188:
bl sub_8004914
ldr r0, _0802E1A8
ldr r0, [r0]
movs r7, 0x86
lsls r7, 1
adds r0, r7
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802E1A8: .4byte gUnknown_203B304
thumb_func_end sub_802E0A0
thumb_func_start sub_802E1AC
sub_802E1AC:
push {r4,lr}
sub sp, 0x8
ldr r1, _0802E1C8
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0xB
bhi _0802E2AA
lsls r0, 2
ldr r1, _0802E1CC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E1C8: .4byte gUnknown_203B304
_0802E1CC: .4byte _0802E1D0
.align 2, 0
_0802E1D0:
.4byte _0802E2AA
.4byte _0802E200
.4byte _0802E2AA
.4byte _0802E2AA
.4byte _0802E21E
.4byte _0802E22A
.4byte _0802E232
.4byte _0802E260
.4byte _0802E286
.4byte _0802E28E
.4byte _0802E29A
.4byte _0802E2A2
_0802E200:
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x6C
adds r1, r2, 0
adds r1, 0xBC
adds r3, r2, 0
adds r3, 0xFC
ldr r2, [r2, 0x64]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _0802E2AA
_0802E21E:
movs r0, 0
movs r1, 0
movs r2, 0x4
bl sub_802BD14
b _0802E2AA
_0802E22A:
movs r0, 0x1
bl sub_802BE94
b _0802E2AA
_0802E232:
bl sub_802BFA0
movs r0, 0x3
bl sub_802E7F8
ldr r0, _0802E25C
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x6C
adds r1, r2, 0
adds r1, 0xBC
ldr r2, [r2, 0x68]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0802E2AA
.align 2, 0
_0802E25C: .4byte gUnknown_203B304
_0802E260:
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
ldr r1, [r4]
adds r1, 0xC
bl sub_803B35C
ldr r0, [r4]
movs r1, 0x3
str r1, [r0, 0xC]
adds r0, 0x50
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC
bl sub_802DE84
b _0802E2AA
_0802E286:
movs r0, 0
bl sub_802C860
b _0802E2AA
_0802E28E:
movs r0, 0
movs r1, 0
movs r2, 0x8
bl sub_802B640
b _0802E2AA
_0802E29A:
movs r0, 0x1
bl sub_802B7D0
b _0802E2AA
_0802E2A2:
ldr r0, [r4]
ldrb r0, [r0, 0x9]
bl sub_802B9FC
_0802E2AA:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802E1AC
thumb_func_start sub_802E2B4
sub_802E2B4:
push {r4-r7,lr}
ldr r4, _0802E380
ldr r0, [r4]
adds r0, 0xFC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0xBC
ldr r0, _0802E384
str r0, [r2]
adds r1, 0xC0
movs r0, 0x2
str r0, [r1]
bl sub_802C0E8
lsls r0, 24
cmp r0, 0
beq _0802E2E6
ldr r0, [r4]
adds r0, 0xFC
movs r1, 0x1
strh r1, [r0]
_0802E2E6:
movs r5, 0x1
ldr r1, [r4]
movs r6, 0x1
adds r2, r1, 0
adds r2, 0xC4
ldr r0, _0802E388
str r0, [r2]
adds r1, 0xC8
movs r0, 0x3
str r0, [r1]
bl sub_802C83C
lsls r0, 24
cmp r0, 0
beq _0802E30A
ldr r0, [r4]
adds r0, 0xFE
strh r5, [r0]
_0802E30A:
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0xCC
ldr r0, _0802E38C
str r0, [r2]
adds r1, 0xD0
movs r0, 0x4
str r0, [r1]
bl sub_802B9D8
lsls r0, 24
cmp r0, 0
beq _0802E32E
ldr r0, [r4]
movs r1, 0x80
lsls r1, 1
adds r0, r1
strh r6, [r0]
_0802E32E:
movs r5, 0x3
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0xD4
movs r1, 0
str r1, [r0]
adds r0, 0x4
str r6, [r0]
movs r3, 0
adds r6, r4, 0
mov r12, r2
mov r4, r12
adds r4, 0xFC
adds r2, 0xC0
_0802E34A:
ldrh r0, [r4]
cmp r0, 0
bne _0802E35A
ldr r1, [r2]
mov r7, r12
ldr r0, [r7, 0x64]
cmp r1, r0
beq _0802E3B2
_0802E35A:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r5
blt _0802E34A
movs r3, 0
cmp r3, r5
bge _0802E3B2
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xFC
ldrh r0, [r0]
cmp r0, 0
bne _0802E390
adds r0, r1, 0
adds r0, 0xC0
ldr r0, [r0]
str r0, [r1, 0x64]
b _0802E3B2
.align 2, 0
_0802E380: .4byte gUnknown_203B304
_0802E384: .4byte gUnknown_80E02E4
_0802E388: .4byte gUnknown_80E02F0
_0802E38C: .4byte gUnknown_80E02FC
_0802E390:
adds r3, 0x1
cmp r3, r5
bge _0802E3B2
ldr r2, [r6]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0xFC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _0802E390
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0xC0
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x64]
_0802E3B2:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802E2B4
thumb_func_start sub_802E3B8
sub_802E3B8:
push {r4-r7,lr}
movs r5, 0
ldr r4, _0802E3F0
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
adds r7, r0, 0
ldrb r0, [r7]
cmp r0, 0x1
bne _0802E3FC
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xBC
ldr r0, _0802E3F4
str r0, [r1]
adds r1, 0x4
movs r0, 0x6
str r0, [r1]
adds r1, 0x4
ldr r0, _0802E3F8
str r0, [r1]
adds r1, 0x4
movs r0, 0x7
str r0, [r1]
movs r5, 0x2
b _0802E44A
.align 2, 0
_0802E3F0: .4byte gUnknown_203B304
_0802E3F4: .4byte gUnknown_80E0308
_0802E3F8: .4byte gUnknown_80E0310
_0802E3FC:
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0xBC
ldr r0, _0802E494
ldr r0, [r0]
str r0, [r2]
adds r1, 0xC0
movs r0, 0x5
str r0, [r1]
adds r0, r7, 0
bl sub_80968B0
lsls r0, 24
cmp r0, 0
bne _0802E422
bl sub_80969AC
cmp r0, 0x7
ble _0802E42C
_0802E422:
ldr r0, [r4]
adds r0, 0xC0
movs r1, 0x1
negs r1, r1
str r1, [r0]
_0802E42C:
adds r5, 0x1
ldr r4, _0802E498
ldr r2, [r4]
lsls r3, r5, 3
adds r0, r2, 0
adds r0, 0xBC
adds r0, r3
ldr r1, _0802E49C
ldr r1, [r1]
str r1, [r0]
adds r2, 0xC0
adds r2, r3
movs r0, 0x8
str r0, [r2]
adds r5, 0x1
_0802E44A:
mov r12, r4
mov r0, r12
ldr r4, [r0]
lsls r2, r5, 3
adds r0, r4, 0
adds r0, 0xBC
adds r0, r2
movs r1, 0
str r1, [r0]
adds r1, r4, 0
adds r1, 0xC0
adds r2, r1, r2
movs r0, 0x1
str r0, [r2]
movs r3, 0
cmp r3, r5
bge _0802E486
movs r6, 0x1
negs r6, r6
adds r2, r1, 0
_0802E472:
ldr r1, [r2]
cmp r1, r6
beq _0802E47E
ldr r0, [r4, 0x68]
cmp r1, r0
beq _0802E4A8
_0802E47E:
adds r2, 0x8
adds r3, 0x1
cmp r3, r5
blt _0802E472
_0802E486:
ldrb r0, [r7]
cmp r0, 0x1
bne _0802E4A0
mov r0, r12
ldr r1, [r0]
movs r0, 0x7
b _0802E4A6
.align 2, 0
_0802E494: .4byte gUnknown_80D4990
_0802E498: .4byte gUnknown_203B304
_0802E49C: .4byte gUnknown_80D4970
_0802E4A0:
mov r0, r12
ldr r1, [r0]
movs r0, 0x8
_0802E4A6:
str r0, [r1, 0x68]
_0802E4A8:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802E3B8
thumb_func_start sub_802E4B0
sub_802E4B0:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _0802E4F0
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802E4DC
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802E4DC
ldr r0, [r4]
str r1, [r0, 0x64]
_0802E4DC:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x7
bhi _0802E56E
lsls r0, 2
ldr r1, _0802E4F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E4F0: .4byte gUnknown_203B304
_0802E4F4: .4byte _0802E4F8
.align 2, 0
_0802E4F8:
.4byte _0802E568
.4byte _0802E518
.4byte _0802E52A
.4byte _0802E53C
.4byte _0802E56E
.4byte _0802E56E
.4byte _0802E56E
.4byte _0802E560
_0802E518:
bl sub_802C0E8
lsls r0, 24
cmp r0, 0
bne _0802E54E
movs r0, 0x4
bl sub_802E088
b _0802E56E
_0802E52A:
bl sub_802C83C
lsls r0, 24
cmp r0, 0
bne _0802E54E
movs r0, 0x8
bl sub_802E088
b _0802E56E
_0802E53C:
bl sub_802B9D8
lsls r0, 24
cmp r0, 0
bne _0802E54E
movs r0, 0x9
bl sub_802E088
b _0802E56E
_0802E54E:
ldr r0, _0802E55C
ldr r0, [r0]
adds r0, 0x6C
movs r1, 0x1
bl sub_8012EA4
b _0802E56E
.align 2, 0
_0802E55C: .4byte gUnknown_203B304
_0802E560:
movs r0, 0x2
bl sub_802E088
b _0802E56E
_0802E568:
movs r0, 0x3
bl sub_802E088
_0802E56E:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802E4B0
thumb_func_start sub_802E578
sub_802E578:
push {r4,lr}
movs r0, 0x1
bl sub_802BDEC
cmp r0, 0x4
bhi _0802E606
lsls r0, 2
ldr r1, _0802E590
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E590: .4byte _0802E594
.align 2, 0
_0802E594:
.4byte _0802E606
.4byte _0802E606
.4byte _0802E5FC
.4byte _0802E5A8
.4byte _0802E5C0
_0802E5A8:
bl sub_802BE74
ldr r1, _0802E5BC
ldr r1, [r1]
strb r0, [r1, 0x8]
movs r0, 0x6
bl sub_802E088
b _0802E606
.align 2, 0
_0802E5BC: .4byte gUnknown_203B304
_0802E5C0:
bl sub_802BE74
ldr r4, _0802E5F0
ldr r1, [r4]
strb r0, [r1, 0x8]
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
adds r2, r0, 0
ldrb r0, [r2]
cmp r0, 0x1
bne _0802E5F4
ldr r1, [r4]
ldrb r0, [r2, 0x5]
strb r0, [r1, 0x9]
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x4]
movs r0, 0xB
bl sub_802E088
b _0802E606
.align 2, 0
_0802E5F0: .4byte gUnknown_203B304
_0802E5F4:
movs r0, 0x7
bl sub_802E088
b _0802E606
_0802E5FC:
bl sub_802BEDC
movs r0, 0x1
bl sub_802E088
_0802E606:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802E578
thumb_func_start sub_802E60C
sub_802E60C:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802BDEC
ldr r4, _0802E650
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802E63C
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802E63C
ldr r0, [r4]
str r1, [r0, 0x68]
_0802E63C:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x7
bhi _0802E732
lsls r0, 2
ldr r1, _0802E654
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E650: .4byte gUnknown_203B304
_0802E654: .4byte _0802E658
.align 2, 0
_0802E658:
.4byte _0802E72C
.4byte _0802E732
.4byte _0802E732
.4byte _0802E732
.4byte _0802E678
.4byte _0802E6BC
.4byte _0802E704
.4byte _0802E6B4
_0802E678:
ldr r0, _0802E6AC
bl sub_8011988
ldr r4, _0802E6B0
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
bl sub_8096A78
bl sub_8096C80
bl sub_8096D24
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8096040
bl sub_8096078
bl sub_802C0E8
lsls r0, 24
cmp r0, 0
bne _0802E6E8
b _0802E6FC
.align 2, 0
_0802E6AC: .4byte 0x00000133
_0802E6B0: .4byte gUnknown_203B304
_0802E6B4:
movs r0, 0x7
bl sub_802E088
b _0802E732
_0802E6BC:
ldr r0, _0802E6F4
bl sub_8011988
ldr r4, _0802E6F8
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
ldrb r0, [r0, 0x5]
bl sub_8096DF8
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8096040
bl sub_8096078
bl sub_802C0E8
lsls r0, 24
cmp r0, 0
beq _0802E6FC
_0802E6E8:
bl sub_802BEDC
movs r0, 0x1
bl sub_802E088
b _0802E732
.align 2, 0
_0802E6F4: .4byte 0x00000133
_0802E6F8: .4byte gUnknown_203B304
_0802E6FC:
movs r0, 0x5
bl sub_802E088
b _0802E732
_0802E704:
movs r0, 0
bl sub_80119D4
ldr r4, _0802E728
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8095FE8
ldr r1, [r4]
ldrb r0, [r0, 0x5]
strb r0, [r1, 0x9]
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x4]
movs r0, 0xB
bl sub_802E088
b _0802E732
.align 2, 0
_0802E728: .4byte gUnknown_203B304
_0802E72C:
movs r0, 0x5
bl sub_802E088
_0802E732:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802E60C
thumb_func_start sub_802E73C
sub_802E73C:
push {lr}
bl sub_802DEE0
cmp r0, 0x1
bls _0802E754
cmp r0, 0x3
bhi _0802E754
bl sub_802DF24
movs r0, 0x5
bl sub_802E088
_0802E754:
pop {r0}
bx r0
thumb_func_end sub_802E73C
thumb_func_start sub_802E758
sub_802E758:
push {lr}
bl sub_802C898
cmp r0, 0x1
bls _0802E770
cmp r0, 0x3
bhi _0802E770
bl sub_802C8F4
movs r0, 0x1
bl sub_802E088
_0802E770:
pop {r0}
bx r0
thumb_func_end sub_802E758
thumb_func_start sub_802E774
sub_802E774:
push {lr}
movs r0, 0x1
bl sub_802B720
cmp r0, 0x4
bhi _0802E7CA
lsls r0, 2
ldr r1, _0802E78C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E78C: .4byte _0802E790
.align 2, 0
_0802E790:
.4byte _0802E7CA
.4byte _0802E7CA
.4byte _0802E7C0
.4byte _0802E7A4
.4byte _0802E7A4
_0802E7A4:
bl sub_802B7A8
ldr r2, _0802E7BC
ldr r1, [r2]
strb r0, [r1, 0x9]
ldr r1, [r2]
movs r0, 0xA
str r0, [r1, 0x4]
movs r0, 0xB
bl sub_802E088
b _0802E7CA
.align 2, 0
_0802E7BC: .4byte gUnknown_203B304
_0802E7C0:
bl sub_802B81C
movs r0, 0x1
bl sub_802E088
_0802E7CA:
pop {r0}
bx r0
thumb_func_end sub_802E774
thumb_func_start sub_802E7D0
sub_802E7D0:
push {lr}
bl sub_802BA8C
cmp r0, 0x1
bls _0802E7EC
cmp r0, 0x3
bhi _0802E7EC
bl sub_802BACC
ldr r0, _0802E7F0
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_802E088
_0802E7EC:
pop {r0}
bx r0
.align 2, 0
_0802E7F0: .4byte gUnknown_203B304
thumb_func_end sub_802E7D0
thumb_func_start nullsub_133
nullsub_133:
bx lr
thumb_func_end nullsub_133
thumb_func_start sub_802E7F8
sub_802E7F8:
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
bl sub_8008C54
adds r0, r4, 0
bl sub_80073B8
ldr r2, _0802E85C
movs r6, 0
str r6, [sp]
movs r0, 0x3
movs r1, 0
adds r3, r4, 0
bl xxx_call_draw_string
bl sub_80969AC
adds r2, r0, 0
movs r5, 0x7
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x12
movs r1, 0xD
movs r3, 0x2
bl sub_8012BC4
ldr r2, _0802E860
str r6, [sp]
movs r0, 0x16
movs r1, 0xD
adds r3, r4, 0
bl xxx_call_draw_string
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x23
movs r1, 0xD
movs r2, 0x8
movs r3, 0x2
bl sub_8012BC4
adds r0, r4, 0
bl sub_80073E0
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802E85C: .4byte gUnknown_80E0318
_0802E860: .4byte gUnknown_80E0324
thumb_func_end sub_802E7F8
thumb_func_start sub_802E864
sub_802E864:
push {r4,lr}
ldr r4, _0802E88C
movs r0, 0xB6
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0, 0x64]
str r1, [r0, 0x68]
str r1, [r0, 0x4]
movs r0, 0
bl sub_802E934
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0802E88C: .4byte gUnknown_203B308
thumb_func_end sub_802E864
thumb_func_start sub_802E890
sub_802E890:
push {lr}
ldr r0, _0802E8A8
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x8
bhi _0802E900
lsls r0, 2
ldr r1, _0802E8AC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802E8A8: .4byte gUnknown_203B308
_0802E8AC: .4byte _0802E8B0
.align 2, 0
_0802E8B0:
.4byte _0802E8D4
.4byte _0802E8DC
.4byte _0802E8E2
.4byte _0802E900
.4byte _0802E8E8
.4byte _0802E8E8
.4byte _0802E8EE
.4byte _0802E8F4
.4byte _0802E8FA
_0802E8D4:
movs r0, 0x1
bl sub_802E934
b _0802E904
_0802E8DC:
bl sub_802ECB4
b _0802E904
_0802E8E2:
bl nullsub_134
b _0802E904
_0802E8E8:
bl sub_802ED4C
b _0802E904
_0802E8EE:
bl sub_802EDBC
b _0802E904
_0802E8F4:
bl sub_802EEA0
b _0802E904
_0802E8FA:
bl sub_802EEBC
b _0802E904
_0802E900:
movs r0, 0x3
b _0802E906
_0802E904:
movs r0, 0
_0802E906:
pop {r1}
bx r1
thumb_func_end sub_802E890
thumb_func_start sub_802E90C
sub_802E90C:
ldr r0, _0802E914
ldr r0, [r0]
ldr r0, [r0, 0x4]
bx lr
.align 2, 0
_0802E914: .4byte gUnknown_203B308
thumb_func_end sub_802E90C
thumb_func_start sub_802E918
sub_802E918:
push {r4,lr}
ldr r4, _0802E930
ldr r0, [r4]
cmp r0, 0
beq _0802E92A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802E92A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802E930: .4byte gUnknown_203B308
thumb_func_end sub_802E918
thumb_func_start sub_802E934
sub_802E934:
push {lr}
ldr r1, _0802E948
ldr r1, [r1]
str r0, [r1]
bl sub_802E94C
bl sub_802EA58
pop {r0}
bx r0
.align 2, 0
_0802E948: .4byte gUnknown_203B308
thumb_func_end sub_802E934
thumb_func_start sub_802E94C
sub_802E94C:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0802E974
ldr r0, [r4]
movs r6, 0x86
lsls r6, 1
adds r0, r6
bl sub_8006518
ldr r0, [r4]
ldr r5, [r0]
cmp r5, 0x1
beq _0802E97C
cmp r5, 0x6
beq _0802E9D0
movs r3, 0
ldr r2, _0802E978
b _0802EA14
.align 2, 0
_0802E974: .4byte gUnknown_203B308
_0802E978: .4byte gUnknown_80E0330
_0802E97C:
mov r12, r6
ldr r0, _0802E9C4
mov r8, r0
movs r2, 0
movs r3, 0x3
_0802E986:
ldr r1, [r4]
adds r1, r2
add r1, r12
mov r0, r8
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r2, 0x18
subs r3, 0x1
cmp r3, 0
bge _0802E986
bl sub_802EB34
ldr r3, _0802E9C8
ldr r2, [r3]
movs r0, 0x9E
lsls r0, 1
adds r2, r0
ldr r1, _0802E9CC
ldm r1!, {r4-r6}
stm r2!, {r4-r6}
ldm r1!, {r4,r5,r7}
stm r2!, {r4,r5,r7}
ldr r1, [r3]
adds r0, r1, r0
adds r1, 0xBC
bl sub_8012CAC
b _0802EA34
.align 2, 0
_0802E9C4: .4byte gUnknown_80E0330
_0802E9C8: .4byte gUnknown_203B308
_0802E9CC: .4byte gUnknown_80E0348
_0802E9D0:
bl sub_802EC10
ldr r2, [r4]
movs r0, 0x9E
lsls r0, 1
adds r2, r0
ldr r1, _0802EA0C
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xBC
bl sub_8012CAC
ldr r1, [r4]
movs r4, 0xA4
lsls r4, 1
adds r0, r1, r4
strh r5, [r0]
movs r5, 0xAA
lsls r5, 1
adds r1, r5
ldr r0, _0802EA10
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
b _0802EA34
.align 2, 0
_0802EA0C: .4byte gUnknown_80E0360
_0802EA10: .4byte gUnknown_80E0378
_0802EA14:
ldr r0, [r4]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r0, r1
movs r6, 0x86
lsls r6, 1
adds r0, r6
adds r1, r2, 0
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r3, 0x1
cmp r3, 0x3
ble _0802EA14
_0802EA34:
bl sub_8004914
ldr r0, _0802EA54
ldr r0, [r0]
movs r7, 0x86
lsls r7, 1
adds r0, r7
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802EA54: .4byte gUnknown_203B308
thumb_func_end sub_802E94C
thumb_func_start sub_802EA58
sub_802EA58:
push {r4,lr}
sub sp, 0x8
ldr r1, _0802EA74
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x8
bhi _0802EB2C
lsls r0, 2
ldr r1, _0802EA78
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802EA74: .4byte gUnknown_203B308
_0802EA78: .4byte _0802EA7C
.align 2, 0
_0802EA7C:
.4byte _0802EB2C
.4byte _0802EAA0
.4byte _0802EB2C
.4byte _0802EB2C
.4byte _0802EABE
.4byte _0802EACA
.4byte _0802EAD2
.4byte _0802EB00
.4byte _0802EB26
_0802EAA0:
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x6C
adds r1, r2, 0
adds r1, 0xBC
adds r3, r2, 0
adds r3, 0xFC
ldr r2, [r2, 0x64]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _0802EB2C
_0802EABE:
movs r0, 0
movs r1, 0
movs r2, 0x4
bl sub_802C10C
b _0802EB2C
_0802EACA:
movs r0, 0x1
bl sub_802C28C
b _0802EB2C
_0802EAD2:
bl sub_802C39C
movs r0, 0x3
bl sub_802EEDC
ldr r0, _0802EAFC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x6C
adds r1, r2, 0
adds r1, 0xBC
ldr r2, [r2, 0x68]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0802EB2C
.align 2, 0
_0802EAFC: .4byte gUnknown_203B308
_0802EB00:
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8096574
ldr r1, [r4]
adds r1, 0xC
bl sub_803B35C
ldr r0, [r4]
movs r1, 0x3
str r1, [r0, 0xC]
adds r0, 0x50
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC
bl sub_802DE84
b _0802EB2C
_0802EB26:
movs r0, 0
bl sub_802C860
_0802EB2C:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802EA58
thumb_func_start sub_802EB34
sub_802EB34:
push {r4-r7,lr}
ldr r4, _0802EBDC
ldr r0, [r4]
adds r0, 0xFC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0xBC
ldr r0, _0802EBE0
str r0, [r2]
adds r1, 0xC0
movs r0, 0x2
str r0, [r1]
bl sub_802C4A4
lsls r0, 24
cmp r0, 0
beq _0802EB66
ldr r0, [r4]
adds r0, 0xFC
movs r1, 0x1
strh r1, [r0]
_0802EB66:
movs r5, 0x1
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0xC4
ldr r0, _0802EBE4
str r0, [r2]
adds r1, 0xC8
movs r0, 0x3
str r0, [r1]
bl sub_802C83C
lsls r0, 24
cmp r0, 0
beq _0802EB88
ldr r0, [r4]
adds r0, 0xFE
strh r5, [r0]
_0802EB88:
movs r5, 0x2
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xCC
movs r0, 0
str r0, [r1]
adds r1, 0x4
movs r0, 0x1
str r0, [r1]
movs r3, 0
adds r6, r4, 0
mov r12, r2
mov r4, r12
adds r4, 0xFC
adds r2, 0xC0
_0802EBA6:
ldrh r0, [r4]
cmp r0, 0
bne _0802EBB6
ldr r1, [r2]
mov r7, r12
ldr r0, [r7, 0x64]
cmp r1, r0
beq _0802EC0A
_0802EBB6:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r5
blt _0802EBA6
movs r3, 0
cmp r3, r5
bge _0802EC0A
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xFC
ldrh r0, [r0]
cmp r0, 0
bne _0802EBE8
adds r0, r1, 0
adds r0, 0xC0
ldr r0, [r0]
str r0, [r1, 0x64]
b _0802EC0A
.align 2, 0
_0802EBDC: .4byte gUnknown_203B308
_0802EBE0: .4byte gUnknown_80E0390
_0802EBE4: .4byte gUnknown_80E03A0
_0802EBE8:
adds r3, 0x1
cmp r3, r5
bge _0802EC0A
ldr r2, [r6]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0xFC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _0802EBE8
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0xC0
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x64]
_0802EC0A:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802EB34
thumb_func_start sub_802EC10
sub_802EC10:
push {r4-r7,lr}
movs r6, 0
ldr r4, _0802ECA8
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0xBC
ldr r0, _0802ECAC
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x4
str r0, [r1]
ldrb r0, [r2, 0x8]
bl sub_8096574
bl sub_80968B0
lsls r0, 24
cmp r0, 0
bne _0802EC40
bl sub_80969AC
cmp r0, 0x7
ble _0802EC4A
_0802EC40:
ldr r0, [r4]
adds r0, 0xC0
movs r1, 0x1
negs r1, r1
str r1, [r0]
_0802EC4A:
adds r6, 0x1
ldr r4, _0802ECA8
ldr r5, [r4]
lsls r1, r6, 3
adds r2, r5, 0
adds r2, 0xBC
adds r3, r2, r1
ldr r0, _0802ECB0
ldr r0, [r0]
str r0, [r3]
adds r3, r5, 0
adds r3, 0xC0
adds r1, r3, r1
movs r0, 0x5
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r2, r1
movs r0, 0
str r0, [r2]
adds r1, r3, r1
movs r0, 0x1
str r0, [r1]
movs r2, 0
adds r7, r4, 0
cmp r2, r6
bge _0802EC9C
adds r4, r5, 0
movs r5, 0x1
negs r5, r5
adds r1, r3, 0
_0802EC88:
ldr r3, [r1]
cmp r3, r5
beq _0802EC94
ldr r0, [r4, 0x68]
cmp r3, r0
beq _0802ECA2
_0802EC94:
adds r1, 0x8
adds r2, 0x1
cmp r2, r6
blt _0802EC88
_0802EC9C:
ldr r1, [r7]
movs r0, 0x5
str r0, [r1, 0x68]
_0802ECA2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802ECA8: .4byte gUnknown_203B308
_0802ECAC: .4byte gUnknown_80D4990
_0802ECB0: .4byte gUnknown_80D4970
thumb_func_end sub_802EC10
thumb_func_start sub_802ECB4
sub_802ECB4:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r4, _0802ECF0
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802ECE0
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802ECE0
ldr r0, [r4]
str r1, [r0, 0x64]
_0802ECE0:
ldr r0, [sp]
cmp r0, 0x2
beq _0802ECFE
cmp r0, 0x2
bgt _0802ECF4
cmp r0, 0x1
beq _0802ED3C
b _0802ED42
.align 2, 0
_0802ECF0: .4byte gUnknown_203B308
_0802ECF4:
cmp r0, 0x3
beq _0802ED10
cmp r0, 0x5
beq _0802ED34
b _0802ED42
_0802ECFE:
bl sub_802C4A4
lsls r0, 24
cmp r0, 0
bne _0802ED22
movs r0, 0x4
bl sub_802E934
b _0802ED42
_0802ED10:
bl sub_802C83C
lsls r0, 24
cmp r0, 0
bne _0802ED22
movs r0, 0x8
bl sub_802E934
b _0802ED42
_0802ED22:
ldr r0, _0802ED30
ldr r0, [r0]
adds r0, 0x6C
movs r1, 0x1
bl sub_8012EA4
b _0802ED42
.align 2, 0
_0802ED30: .4byte gUnknown_203B308
_0802ED34:
movs r0, 0x2
bl sub_802E934
b _0802ED42
_0802ED3C:
movs r0, 0x3
bl sub_802E934
_0802ED42:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802ECB4
thumb_func_start sub_802ED4C
sub_802ED4C:
push {lr}
movs r0, 0x1
bl sub_802C1E4
cmp r0, 0x4
bhi _0802EDB6
lsls r0, 2
ldr r1, _0802ED64
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802ED64: .4byte _0802ED68
.align 2, 0
_0802ED68:
.4byte _0802EDB6
.4byte _0802EDB6
.4byte _0802EDAC
.4byte _0802ED7C
.4byte _0802ED94
_0802ED7C:
bl sub_802C26C
ldr r1, _0802ED90
ldr r1, [r1]
strb r0, [r1, 0x8]
movs r0, 0x6
bl sub_802E934
b _0802EDB6
.align 2, 0
_0802ED90: .4byte gUnknown_203B308
_0802ED94:
bl sub_802C26C
ldr r1, _0802EDA8
ldr r1, [r1]
strb r0, [r1, 0x8]
movs r0, 0x7
bl sub_802E934
b _0802EDB6
.align 2, 0
_0802EDA8: .4byte gUnknown_203B308
_0802EDAC:
bl sub_802C2D4
movs r0, 0x1
bl sub_802E934
_0802EDB6:
pop {r0}
bx r0
thumb_func_end sub_802ED4C
thumb_func_start sub_802EDBC
sub_802EDBC:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802C1E4
ldr r4, _0802EDFC
ldr r0, [r4]
adds r0, 0x6C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802EDEC
ldr r0, [r4]
adds r0, 0x6C
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _0802EDEC
ldr r0, [r4]
str r1, [r0, 0x68]
_0802EDEC:
ldr r0, [sp]
cmp r0, 0x4
beq _0802EE06
cmp r0, 0x4
bgt _0802EE00
cmp r0, 0x1
beq _0802EE90
b _0802EE96
.align 2, 0
_0802EDFC: .4byte gUnknown_203B308
_0802EE00:
cmp r0, 0x5
beq _0802EE88
b _0802EE96
_0802EE06:
ldr r0, _0802EE28
bl sub_8011988
ldr r4, _0802EE2C
ldr r0, [r4]
ldrb r0, [r0, 0x8]
bl sub_8096574
ldrb r1, [r0]
cmp r1, 0x3
beq _0802EE3C
cmp r1, 0x3
bgt _0802EE30
cmp r1, 0x2
beq _0802EE36
b _0802EE5E
.align 2, 0
_0802EE28: .4byte 0x00000133
_0802EE2C: .4byte gUnknown_203B308
_0802EE30:
cmp r1, 0x4
beq _0802EE42
b _0802EE5E
_0802EE36:
ldr r0, [r4]
movs r1, 0x1
b _0802EE46
_0802EE3C:
ldr r0, [r4]
movs r1, 0x2
b _0802EE46
_0802EE42:
ldr r0, [r4]
movs r1, 0x3
_0802EE46:
str r1, [r0, 0x4]
ldrb r0, [r0, 0x8]
bl sub_80965B8
bl sub_80965F4
bl sub_802C2D4
movs r0, 0x3
bl sub_802E934
b _0802EE96
_0802EE5E:
bl sub_8096A78
bl sub_8096C80
bl sub_8096D24
bl sub_802C4A4
lsls r0, 24
cmp r0, 0
beq _0802EE80
bl sub_802C2D4
movs r0, 0x1
bl sub_802E934
b _0802EE96
_0802EE80:
movs r0, 0x5
bl sub_802E934
b _0802EE96
_0802EE88:
movs r0, 0x7
bl sub_802E934
b _0802EE96
_0802EE90:
movs r0, 0x5
bl sub_802E934
_0802EE96:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802EDBC
thumb_func_start sub_802EEA0
sub_802EEA0:
push {lr}
bl sub_802DEE0
cmp r0, 0x1
bls _0802EEB8
cmp r0, 0x3
bhi _0802EEB8
bl sub_802DF24
movs r0, 0x5
bl sub_802E934
_0802EEB8:
pop {r0}
bx r0
thumb_func_end sub_802EEA0
thumb_func_start sub_802EEBC
sub_802EEBC:
push {lr}
bl sub_802C898
cmp r0, 0x1
bls _0802EED4
cmp r0, 0x3
bhi _0802EED4
bl sub_802C8F4
movs r0, 0x1
bl sub_802E934
_0802EED4:
pop {r0}
bx r0
thumb_func_end sub_802EEBC
thumb_func_start nullsub_134
nullsub_134:
bx lr
thumb_func_end nullsub_134
thumb_func_start sub_802EEDC
sub_802EEDC:
push {r4-r6,lr}
sub sp, 0x8
adds r4, r0, 0
bl sub_8008C54
adds r0, r4, 0
bl sub_80073B8
ldr r2, _0802EF40
movs r6, 0
str r6, [sp]
movs r0, 0x3
movs r1, 0
adds r3, r4, 0
bl xxx_call_draw_string
bl sub_80969AC
adds r2, r0, 0
movs r5, 0x7
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x12
movs r1, 0xD
movs r3, 0x2
bl sub_8012BC4
ldr r2, _0802EF44
str r6, [sp]
movs r0, 0x16
movs r1, 0xD
adds r3, r4, 0
bl xxx_call_draw_string
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x23
movs r1, 0xD
movs r2, 0x8
movs r3, 0x2
bl sub_8012BC4
adds r0, r4, 0
bl sub_80073E0
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802EF40: .4byte gUnknown_80E03AC
_0802EF44: .4byte gUnknown_80E03B8
thumb_func_end sub_802EEDC
thumb_func_start sub_802EF48
sub_802EF48:
push {r4,lr}
ldr r4, _0802EF68
movs r0, 0xA8
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r0, 0
bl sub_802EFEC
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0802EF68: .4byte gUnknown_203B30C
thumb_func_end sub_802EF48
thumb_func_start sub_802EF6C
sub_802EF6C:
push {lr}
ldr r0, _0802EF84
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x5
bhi _0802EFBA
lsls r0, 2
ldr r1, _0802EF88
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802EF84: .4byte gUnknown_203B30C
_0802EF88: .4byte _0802EF8C
.align 2, 0
_0802EF8C:
.4byte _0802EFA4
.4byte _0802EFA4
.4byte _0802EFAA
.4byte _0802EFB0
.4byte _0802EFB6
.4byte _0802EFBA
_0802EFA4:
bl sub_802F148
b _0802EFBE
_0802EFAA:
bl sub_802F184
b _0802EFBE
_0802EFB0:
bl sub_802F1E8
b _0802EFBE
_0802EFB6:
movs r0, 0x3
b _0802EFC0
_0802EFBA:
movs r0, 0x2
b _0802EFC0
_0802EFBE:
movs r0, 0
_0802EFC0:
pop {r1}
bx r1
thumb_func_end sub_802EF6C
thumb_func_start sub_802EFC4
sub_802EFC4:
ldr r0, _0802EFCC
ldr r0, [r0]
ldrb r0, [r0, 0x4]
bx lr
.align 2, 0
_0802EFCC: .4byte gUnknown_203B30C
thumb_func_end sub_802EFC4
thumb_func_start sub_802EFD0
sub_802EFD0:
push {r4,lr}
ldr r4, _0802EFE8
ldr r0, [r4]
cmp r0, 0
beq _0802EFE2
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802EFE2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802EFE8: .4byte gUnknown_203B30C
thumb_func_end sub_802EFD0
thumb_func_start sub_802EFEC
sub_802EFEC:
push {lr}
ldr r1, _0802F000
ldr r1, [r1]
str r0, [r1]
bl sub_802F004
bl sub_802F088
pop {r0}
bx r0
.align 2, 0
_0802F000: .4byte gUnknown_203B30C
thumb_func_end sub_802EFEC
thumb_func_start sub_802F004
sub_802F004:
push {r4-r7,lr}
ldr r4, _0802F03C
ldr r0, [r4]
adds r0, 0xF0
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x2
bne _0802F044
bl sub_802F108
ldr r2, [r4]
movs r0, 0x90
lsls r0, 1
adds r2, r0
ldr r1, _0802F040
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xB0
bl sub_8012CAC
b _0802F066
.align 2, 0
_0802F03C: .4byte gUnknown_203B30C
_0802F040: .4byte gUnknown_80E03F4
_0802F044:
mov r12, r4
ldr r4, _0802F080
movs r2, 0
movs r3, 0x3
_0802F04C:
mov r6, r12
ldr r1, [r6]
adds r1, r2
adds r1, 0xF0
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r2, 0x18
subs r3, 0x1
cmp r3, 0
bge _0802F04C
_0802F066:
bl sub_8004914
ldr r0, _0802F084
ldr r0, [r0]
adds r0, 0xF0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802F080: .4byte gUnknown_80E03C4
_0802F084: .4byte gUnknown_203B30C
thumb_func_end sub_802F004
thumb_func_start sub_802F088
sub_802F088:
push {r4-r6,lr}
sub sp, 0x8
ldr r6, _0802F0A0
ldr r0, [r6]
ldr r5, [r0]
cmp r5, 0x1
beq _0802F0B6
cmp r5, 0x1
bgt _0802F0A4
cmp r5, 0
beq _0802F0AE
b _0802F100
.align 2, 0
_0802F0A0: .4byte gUnknown_203B30C
_0802F0A4:
cmp r5, 0x2
beq _0802F0BE
cmp r5, 0x3
beq _0802F0DA
b _0802F100
_0802F0AE:
movs r0, 0
bl sub_802CDD4
b _0802F100
_0802F0B6:
movs r0, 0x1
bl sub_802CED8
b _0802F100
_0802F0BE:
bl sub_802CFD0
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0x60
adds r1, 0xB0
movs r2, 0x3
str r2, [sp]
str r5, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0802F100
_0802F0DA:
ldrb r0, [r0, 0x4]
bl sub_803B344
adds r4, r0, 0
ldr r1, [r6]
adds r1, 0x8
bl sub_803B35C
ldr r0, [r6]
str r5, [r0, 0x8]
adds r0, 0x4C
movs r1, 0
strb r1, [r0]
ldr r0, [r6]
ldr r1, [r4, 0x18]
str r1, [r0, 0x58]
adds r0, 0x8
bl sub_802DE84
_0802F100:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_802F088
thumb_func_start sub_802F108
sub_802F108:
ldr r0, _0802F13C
ldr r0, [r0]
mov r12, r0
movs r3, 0
mov r1, r12
adds r1, 0xB0
ldr r0, _0802F140
str r0, [r1]
adds r1, 0x4
movs r0, 0x2
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _0802F144
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x3
str r0, [r1]
mov r0, r12
adds r0, 0xC0
str r3, [r0]
adds r0, 0x4
str r2, [r0]
bx lr
.align 2, 0
_0802F13C: .4byte gUnknown_203B30C
_0802F140: .4byte gUnknown_80E040C
_0802F144: .4byte gUnknown_80D4970
thumb_func_end sub_802F108
thumb_func_start sub_802F148
sub_802F148:
push {lr}
movs r0, 0x1
bl sub_802CE5C
cmp r0, 0x2
beq _0802F174
cmp r0, 0x2
bcc _0802F17E
cmp r0, 0x3
bne _0802F17E
bl sub_802CEBC
ldr r1, _0802F170
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x2
bl sub_802EFEC
b _0802F17E
.align 2, 0
_0802F170: .4byte gUnknown_203B30C
_0802F174:
bl sub_802CF14
movs r0, 0x5
bl sub_802EFEC
_0802F17E:
pop {r0}
bx r0
thumb_func_end sub_802F148
thumb_func_start sub_802F184
sub_802F184:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_802CE5C
ldr r4, _0802F1BC
ldr r0, [r4]
adds r0, 0x60
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0802F1AA
ldr r0, [r4]
adds r0, 0x60
mov r1, sp
bl sub_8013114
_0802F1AA:
ldr r0, [sp]
cmp r0, 0x2
beq _0802F1C6
cmp r0, 0x2
bgt _0802F1C0
cmp r0, 0x1
beq _0802F1DA
b _0802F1E0
.align 2, 0
_0802F1BC: .4byte gUnknown_203B30C
_0802F1C0:
cmp r0, 0x3
beq _0802F1D2
b _0802F1E0
_0802F1C6:
bl sub_802CF14
movs r0, 0x4
bl sub_802EFEC
b _0802F1E0
_0802F1D2:
movs r0, 0x3
bl sub_802EFEC
b _0802F1E0
_0802F1DA:
movs r0, 0x1
bl sub_802EFEC
_0802F1E0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_802F184
thumb_func_start sub_802F1E8
sub_802F1E8:
push {lr}
bl sub_802DEE0
cmp r0, 0x1
bls _0802F200
cmp r0, 0x3
bhi _0802F200
bl sub_802DF24
movs r0, 0x1
bl sub_802EFEC
_0802F200:
pop {r0}
bx r0
thumb_func_end sub_802F1E8
thumb_func_start sub_802F204
sub_802F204:
push {r4-r6,lr}
adds r6, r0, 0
lsls r4, r1, 24
lsrs r4, 24
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _0802F28C
movs r0, 0x84
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r6, [r0, 0x10]
movs r6, 0
str r6, [r0, 0xC]
strb r4, [r0, 0x8]
ldr r1, [r5]
ldr r0, _0802F290
ldr r1, [r1, 0x10]
bl strcpy
ldr r4, _0802F294
bl sub_808D33C
adds r1, r0, 0
adds r0, r4, 0
bl sub_808DA34
ldr r0, [r5]
ldr r0, [r0, 0x10]
movs r1, 0x14
ldrsh r0, [r0, r1]
bl sub_808DDD0
ldr r1, [r5]
str r0, [r1, 0x14]
str r6, [r1, 0x18]
adds r1, 0x20
strb r6, [r1]
ldr r0, [r5]
adds r0, 0x21
strb r6, [r0]
ldr r0, [r5]
adds r0, 0x22
strb r6, [r0]
ldr r5, [r5]
movs r0, 0x2
strh r0, [r5, 0x1C]
movs r0, 0x8
strh r0, [r5, 0x1E]
ldr r0, [r5, 0x14]
cmp r0, 0
beq _0802F27C
ldr r0, [r0, 0x4]
str r0, [r5, 0x18]
_0802F27C:
movs r0, 0
bl sub_802F2E8
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0802F28C: .4byte gUnknown_203B310
_0802F290: .4byte gUnknown_202E5D8
_0802F294: .4byte gUnknown_202DF98
thumb_func_end sub_802F204
thumb_func_start sub_802F298
sub_802F298:
push {lr}
ldr r0, _0802F2AC
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x5
beq _0802F2B0
cmp r0, 0x9
bne _0802F2B6
movs r0, 0x3
b _0802F2BC
.align 2, 0
_0802F2AC: .4byte gUnknown_203B310
_0802F2B0:
bl sub_802F6FC
b _0802F2BA
_0802F2B6:
bl sub_802F718
_0802F2BA:
movs r0, 0
_0802F2BC:
pop {r1}
bx r1
thumb_func_end sub_802F298
thumb_func_start sub_802F2C0
sub_802F2C0:
push {r4,lr}
ldr r4, _0802F2E4
ldr r0, [r4]
cmp r0, 0
beq _0802F2DE
ldr r0, [r0, 0x14]
cmp r0, 0
beq _0802F2D4
bl CloseFile
_0802F2D4:
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802F2DE:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802F2E4: .4byte gUnknown_203B310
thumb_func_end sub_802F2C0
thumb_func_start sub_802F2E8
sub_802F2E8:
push {lr}
ldr r1, _0802F2FC
ldr r1, [r1]
str r0, [r1]
bl sub_802F300
bl sub_802F358
pop {r0}
bx r0
.align 2, 0
_0802F2FC: .4byte gUnknown_203B310
thumb_func_end sub_802F2E8
thumb_func_start sub_802F300
sub_802F300:
push {r4-r7,lr}
ldr r4, _0802F350
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0
bne _0802F348
adds r0, r1, 0
adds r0, 0x24
bl sub_8006518
mov r12, r4
ldr r4, _0802F354
movs r3, 0
movs r2, 0x3
_0802F31C:
mov r0, r12
ldr r1, [r0]
adds r1, r3
adds r1, 0x24
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0802F31C
bl sub_8004914
ldr r0, _0802F350
ldr r0, [r0]
adds r0, 0x24
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0802F348:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802F350: .4byte gUnknown_203B310
_0802F354: .4byte gUnknown_80E041C
thumb_func_end sub_802F300
thumb_func_start sub_802F358
sub_802F358:
push {r4-r6,lr}
sub sp, 0x10
ldr r1, _0802F374
ldr r0, [r1]
ldr r0, [r0]
adds r6, r1, 0
cmp r0, 0x9
bls _0802F36A
b _0802F6E4
_0802F36A:
lsls r0, 2
ldr r1, _0802F378
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802F374: .4byte gUnknown_203B310
_0802F378: .4byte _0802F37C
.align 2, 0
_0802F37C:
.4byte _0802F3A4
.4byte _0802F3E8
.4byte _0802F444
.4byte _0802F494
.4byte _0802F524
.4byte _0802F5CC
.4byte _0802F614
.4byte _0802F630
.4byte _0802F6A4
.4byte _0802F6E4
_0802F3A4:
ldr r2, [r6]
ldr r0, [r2, 0x10]
ldr r1, [r0, 0x18]
cmp r1, 0
bne _0802F3B6
movs r0, 0x2
bl sub_802F2E8
b _0802F6E4
_0802F3B6:
ldr r0, _0802F3D4
str r1, [r0]
ldrb r0, [r2, 0x8]
cmp r0, 0
beq _0802F3E0
ldr r0, _0802F3D8
adds r2, 0x14
ldr r3, _0802F3DC
movs r1, 0
bl sub_80141B4
ldr r1, [r6]
movs r0, 0x1
str r0, [r1, 0x4]
b _0802F6E4
.align 2, 0
_0802F3D4: .4byte gUnknown_202DE30
_0802F3D8: .4byte gUnknown_80E0434
_0802F3DC: .4byte 0x0000010d
_0802F3E0:
movs r0, 0x1
bl sub_802F2E8
b _0802F6E4
_0802F3E8:
movs r0, 0xCB
bl sub_8011988
ldr r0, _0802F414
ldr r0, [r0]
ldr r0, [r0, 0x10]
ldr r0, [r0, 0x18]
bl sub_80913A0
movs r0, 0
bl sub_808D544
cmp r0, 0x1
bgt _0802F420
ldr r0, _0802F418
ldr r3, _0802F41C
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0802F42C
.align 2, 0
_0802F414: .4byte gUnknown_203B310
_0802F418: .4byte gUnknown_80E045C
_0802F41C: .4byte 0x00000101
_0802F420:
ldr r0, _0802F438
ldr r3, _0802F43C
movs r1, 0
movs r2, 0
bl sub_80141B4
_0802F42C:
ldr r0, _0802F440
ldr r1, [r0]
movs r0, 0x2
str r0, [r1, 0x4]
b _0802F6E4
.align 2, 0
_0802F438: .4byte gUnknown_80E0484
_0802F43C: .4byte 0x00000101
_0802F440: .4byte gUnknown_203B310
_0802F444:
ldr r0, [r6]
ldr r0, [r0, 0x10]
adds r1, r0, 0
adds r1, 0x20
ldrb r0, [r1]
cmp r0, 0
bne _0802F45A
movs r0, 0x4
bl sub_802F2E8
b _0802F6E4
_0802F45A:
ldr r0, _0802F480
ldrb r1, [r1]
movs r2, 0
bl sub_8092578
ldr r2, [r6]
ldrb r0, [r2, 0x8]
cmp r0, 0
beq _0802F48C
ldr r0, _0802F484
adds r2, 0x14
ldr r3, _0802F488
movs r1, 0
bl sub_80141B4
ldr r1, [r6]
movs r0, 0x3
str r0, [r1, 0x4]
b _0802F6E4
.align 2, 0
_0802F480: .4byte gUnknown_202E628
_0802F484: .4byte gUnknown_80E04B4
_0802F488: .4byte 0x0000010d
_0802F48C:
movs r0, 0x3
bl sub_802F2E8
b _0802F6E4
_0802F494:
ldr r4, _0802F4B4
ldr r0, [r4]
ldr r0, [r0, 0x10]
adds r0, 0x20
ldrb r0, [r0]
bl sub_8092600
lsls r0, 24
cmp r0, 0
beq _0802F4BC
movs r0, 0xFA
lsls r0, 2
bl sub_80913A0
ldr r0, _0802F4B8
b _0802F4DA
.align 2, 0
_0802F4B4: .4byte gUnknown_203B310
_0802F4B8: .4byte gUnknown_80E04F4
_0802F4BC:
movs r0, 0
bl sub_808D544
cmp r0, 0x1
bgt _0802F4F0
ldr r0, [r4]
ldr r0, [r0, 0x10]
adds r0, 0x20
ldrb r0, [r0]
bl sub_80925EC
movs r0, 0xCE
bl sub_8011988
ldr r0, _0802F4E8
_0802F4DA:
ldr r3, _0802F4EC
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0802F50E
.align 2, 0
_0802F4E8: .4byte gUnknown_80E05C0
_0802F4EC: .4byte 0x00000101
_0802F4F0:
ldr r0, [r4]
ldr r0, [r0, 0x10]
adds r0, 0x20
ldrb r0, [r0]
bl sub_80925EC
movs r0, 0xCE
bl sub_8011988
ldr r0, _0802F518
ldr r3, _0802F51C
movs r1, 0
movs r2, 0
bl sub_80141B4
_0802F50E:
ldr r0, _0802F520
ldr r1, [r0]
movs r0, 0x4
str r0, [r1, 0x4]
b _0802F6E4
.align 2, 0
_0802F518: .4byte gUnknown_80E05FC
_0802F51C: .4byte 0x00000101
_0802F520: .4byte gUnknown_203B310
_0802F524:
ldr r0, [r6]
ldr r0, [r0, 0x10]
ldrb r2, [r0, 0x1C]
cmp r2, 0
beq _0802F628
ldr r0, [r0, 0x18]
cmp r0, 0
bne _0802F620
lsls r2, 16
ldr r1, _0802F564
ldr r0, [sp, 0xC]
ands r0, r1
orrs r0, r2
str r0, [sp, 0xC]
lsrs r0, 16
lsls r0, 24
lsrs r0, 24
bl sub_8090A60
lsls r0, 24
cmp r0, 0
beq _0802F56C
ldr r0, [r6]
ldr r0, [r0, 0x10]
ldrb r1, [r0, 0x1F]
lsls r1, 8
ldr r2, _0802F568
ldr r0, [sp, 0xC]
ands r0, r2
orrs r0, r1
b _0802F572
.align 2, 0
_0802F564: .4byte 0xff00ffff
_0802F568: .4byte 0xffff00ff
_0802F56C:
ldr r1, _0802F5B4
ldr r0, [sp, 0xC]
ands r0, r1
_0802F572:
str r0, [sp, 0xC]
ldr r1, _0802F5B8
ldr r0, [sp, 0xC]
ands r0, r1
movs r2, 0x1
orrs r0, r2
str r0, [sp, 0xC]
movs r1, 0
str r1, [sp]
mov r0, sp
strb r1, [r0, 0x4]
strb r2, [r0, 0x8]
ldr r0, _0802F5BC
add r1, sp, 0xC
mov r2, sp
bl sub_8090E14
ldr r4, _0802F5C0
ldr r2, [r4]
ldrb r0, [r2, 0x8]
cmp r0, 0
beq _0802F620
ldr r0, _0802F5C4
adds r2, 0x14
ldr r3, _0802F5C8
movs r1, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0x5
str r0, [r1, 0x4]
b _0802F6E4
.align 2, 0
_0802F5B4: .4byte 0xffff00ff
_0802F5B8: .4byte 0xffffff00
_0802F5BC: .4byte gUnknown_202DEA8
_0802F5C0: .4byte gUnknown_203B310
_0802F5C4: .4byte gUnknown_80E0640
_0802F5C8: .4byte 0x0000010d
_0802F5CC:
ldr r0, [r6]
ldr r2, [r0, 0x10]
adds r1, r2, 0
adds r1, 0x1C
ldr r3, [r0, 0xC]
adds r1, r3
ldrb r0, [r1]
cmp r0, 0
bne _0802F5E6
movs r0, 0x6
bl sub_802F2E8
b _0802F6E4
_0802F5E6:
cmp r3, 0
bne _0802F5FC
ldr r0, [r2, 0x18]
cmp r0, 0
bne _0802F5FC
ldrb r1, [r2, 0x1C]
ldrb r2, [r2, 0x1F]
movs r0, 0
bl sub_801B60C
b _0802F6E4
_0802F5FC:
ldr r1, [r6]
ldr r2, [r1, 0x10]
adds r0, r2, 0
adds r0, 0x1C
ldr r1, [r1, 0xC]
adds r0, r1
ldrb r1, [r0]
ldrb r2, [r2, 0x1F]
movs r0, 0x1
bl sub_801B60C
b _0802F6E4
_0802F614:
ldr r1, [r6]
ldr r0, [r1, 0xC]
adds r0, 0x1
str r0, [r1, 0xC]
cmp r0, 0x2
bgt _0802F628
_0802F620:
movs r0, 0x5
bl sub_802F2E8
b _0802F6E4
_0802F628:
movs r0, 0x7
bl sub_802F2E8
b _0802F6E4
_0802F630:
adds r5, r6, 0
ldr r0, [r5]
ldr r0, [r0, 0x10]
ldr r0, [r0, 0x24]
cmp r0, 0
bne _0802F644
movs r0, 0x9
bl sub_802F2E8
b _0802F6E4
_0802F644:
bl sub_8092178
ldr r1, [r5]
strb r0, [r1, 0x9]
ldr r0, [r5]
ldr r0, [r0, 0x10]
ldr r0, [r0, 0x24]
bl sub_8092158
movs r0, 0xCB
bl sub_8011988
ldr r4, [r5]
bl sub_8092178
ldrb r1, [r4, 0x9]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
beq _0802F672
ldr r1, [r5]
movs r0, 0x8
b _0802F676
_0802F672:
ldr r1, [r6]
movs r0, 0x9
_0802F676:
str r0, [r1, 0x4]
ldr r1, _0802F694
ldr r0, _0802F698
ldr r0, [r0]
ldr r0, [r0, 0x10]
ldr r0, [r0, 0x24]
str r0, [r1]
ldr r0, _0802F69C
ldr r3, _0802F6A0
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0802F6E4
.align 2, 0
_0802F694: .4byte gUnknown_202DE30
_0802F698: .4byte gUnknown_203B310
_0802F69C: .4byte gUnknown_80E0670
_0802F6A0: .4byte 0x00000101
_0802F6A4:
movs r0, 0xC9
bl sub_8011988
ldr r0, _0802F6EC
ldr r1, [r0]
movs r0, 0x9
str r0, [r1, 0x4]
ldrb r0, [r1, 0x9]
bl sub_80921A8
adds r1, r0, 0
ldr r4, _0802F6F0
adds r0, r4, 0
bl strcpy
bl sub_8092178
lsls r0, 24
lsrs r0, 24
bl sub_80921A8
adds r1, r0, 0
adds r4, 0x50
adds r0, r4, 0
bl strcpy
ldr r0, _0802F6F4
ldr r3, _0802F6F8
movs r1, 0
movs r2, 0
bl sub_80141B4
_0802F6E4:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802F6EC: .4byte gUnknown_203B310
_0802F6F0: .4byte gUnknown_202E038
_0802F6F4: .4byte gUnknown_80E06A8
_0802F6F8: .4byte 0x00000101
thumb_func_end sub_802F358
thumb_func_start sub_802F6FC
sub_802F6FC:
push {lr}
bl sub_801B6AC
cmp r0, 0x1
bls _0802F714
cmp r0, 0x3
bhi _0802F714
bl sub_801B72C
movs r0, 0x6
bl sub_802F2E8
_0802F714:
pop {r0}
bx r0
thumb_func_end sub_802F6FC
thumb_func_start sub_802F718
sub_802F718:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802F730
ldr r0, _0802F738
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_802F2E8
_0802F730:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0802F738: .4byte gUnknown_203B310
thumb_func_end sub_802F718
thumb_func_start sub_802F73C
sub_802F73C:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
adds r7, r1, 0
mov r8, r2
lsls r3, 24
lsrs r6, r3, 24
bl sub_802FCF0
lsls r0, 24
cmp r0, 0
beq _0802F75A
movs r0, 0
b _0802F836
_0802F75A:
ldr r4, _0802F7AC
ldr r0, [r4]
cmp r0, 0
bne _0802F76E
movs r0, 0xAE
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
_0802F76E:
ldr r0, [r4]
adds r0, 0xB8
strb r6, [r0]
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0xF0
str r5, [r1]
adds r2, r0, 0
adds r2, 0xF4
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0xF8
adds r1, r0, r1
str r1, [r2]
adds r0, 0xF8
bl sub_8006518
cmp r6, 0
beq _0802F7B4
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xF0
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0xF8
ldr r0, _0802F7B0
b _0802F7C8
.align 2, 0
_0802F7AC: .4byte gUnknown_203B314
_0802F7B0: .4byte gUnknown_80E072C
_0802F7B4:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xF0
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0xF8
ldr r0, _0802F840
_0802F7C8:
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r4, _0802F844
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0xF4
ldr r1, [r0]
movs r3, 0xAC
lsls r3, 1
adds r0, r2, r3
str r0, [r1, 0x14]
cmp r7, 0
beq _0802F7FC
adds r0, r2, 0
adds r0, 0xF0
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
subs r3, 0x58
adds r1, r2, r3
adds r1, r0
ldr r0, [r7]
str r0, [r1]
_0802F7FC:
ldr r0, [r4]
adds r0, 0xF4
ldr r0, [r0]
mov r1, r8
bl sub_8012D08
bl sub_8004914
ldr r0, [r4]
adds r0, 0xF8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r4]
adds r4, 0xBC
bl sub_802FBF4
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r5, 0
bl sub_8013818
bl sub_802F9C0
bl sub_802FA50
movs r0, 0x1
_0802F836:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802F840: .4byte gUnknown_80E0714
_0802F844: .4byte gUnknown_203B314
thumb_func_end sub_802F73C
thumb_func_start sub_802F848
sub_802F848:
push {r4,r5,lr}
lsls r0, 16
asrs r4, r0, 16
movs r3, 0
ldr r1, _0802F858
ldr r0, [r1]
b _0802F884
.align 2, 0
_0802F858: .4byte gUnknown_203B314
_0802F85C:
ldr r2, [r1]
lsls r0, r3, 1
adds r0, r2, r0
movs r5, 0
ldrsh r0, [r0, r5]
cmp r0, r4
bne _0802F880
adds r0, r2, 0
adds r0, 0xBC
adds r1, r3, 0
bl sub_8013878
bl sub_802F9C0
bl sub_802FA50
movs r0, 0x1
b _0802F89A
_0802F880:
adds r3, 0x1
adds r0, r2, 0
_0802F884:
adds r0, 0xDE
movs r2, 0
ldrsh r0, [r0, r2]
cmp r3, r0
blt _0802F85C
ldr r0, [r1]
adds r0, 0xBC
movs r1, 0
bl sub_8013878
movs r0, 0
_0802F89A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_802F848
thumb_func_start sub_802F8A0
sub_802F8A0:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _0802F8BC
ldr r0, _0802F8B8
ldr r0, [r0]
adds r0, 0xBC
bl sub_8013660
movs r0, 0
b _0802F904
.align 2, 0
_0802F8B8: .4byte gUnknown_203B314
_0802F8BC:
ldr r4, _0802F8D8
ldr r0, [r4]
adds r0, 0xBC
bl GetKeyPress
cmp r0, 0x1
beq _0802F8DC
cmp r0, 0x2
bne _0802F8E6
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0802F904
.align 2, 0
_0802F8D8: .4byte gUnknown_203B314
_0802F8DC:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _0802F904
_0802F8E6:
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802F8FA
movs r0, 0
b _0802F904
_0802F8FA:
bl sub_802F9C0
bl sub_802FA50
movs r0, 0x1
_0802F904:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802F8A0
thumb_func_start sub_802F90C
sub_802F90C:
ldr r0, _0802F934
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xDA
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r2, 0
adds r1, 0xD4
movs r3, 0
ldrsh r1, [r1, r3]
adds r0, r1
lsls r0, 1
adds r0, r2, r0
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_0802F934: .4byte gUnknown_203B314
thumb_func_end sub_802F90C
thumb_func_start sub_802F938
sub_802F938:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_802FBF4
adds r1, r0, 0
ldr r5, _0802F970
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0xDE
strh r1, [r2]
adds r0, 0xBC
bl sub_8013984
bl sub_802F9C0
bl sub_802FA50
cmp r4, 0
beq _0802F96A
ldr r0, [r5]
adds r0, 0xBC
bl AddMenuCursorSprite
_0802F96A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802F970: .4byte gUnknown_203B314
thumb_func_end sub_802F938
thumb_func_start sub_802F974
sub_802F974:
push {r4,r5,lr}
ldr r4, _0802F9B8
ldr r2, [r4]
cmp r2, 0
beq _0802F9B2
adds r0, r2, 0
adds r0, 0xF0
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0xF8
ldr r0, _0802F9BC
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0xF8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802F9B2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802F9B8: .4byte gUnknown_203B314
_0802F9BC: .4byte gUnknown_80E06FC
thumb_func_end sub_802F974
thumb_func_start sub_802F9C0
sub_802F9C0:
push {r4,r5,lr}
ldr r4, _0802FA44
ldr r0, [r4]
movs r1, 0xAC
lsls r1, 1
adds r0, r1
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r3, _0802FA48
adds r0, r3
strb r2, [r0]
ldr r0, [r4]
adds r3, 0x1
adds r1, r0, r3
movs r0, 0x8
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0802FA4C
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r0, 0xD6
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r3, [r4]
adds r5, r3, 0
adds r5, 0xF0
ldr r2, [r5]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r3, r1
movs r2, 0x83
lsls r2, 1
adds r1, r2
asrs r2, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r3, r0
adds r2, 0x2
movs r0, 0x84
lsls r0, 1
adds r3, r0
strh r2, [r3]
bl sub_8004914
ldr r0, [r4]
adds r0, 0xF8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802FA44: .4byte gUnknown_203B314
_0802FA48: .4byte 0x00000159
_0802FA4C: .4byte 0x0000015b
thumb_func_end sub_802F9C0
thumb_func_start sub_802FA50
sub_802FA50:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r4, _0802FB1C
ldr r0, [r4]
adds r0, 0xF0
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r4]
adds r0, 0xF0
ldr r0, [r0]
bl sub_80073B8
ldr r2, _0802FB20
ldr r0, [r4]
adds r0, 0xF0
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r3, [r4]
movs r1, 0xAD
lsls r1, 1
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, 3
adds r0, 0x4
adds r1, r3, 0
adds r1, 0xDA
movs r5, 0
ldrsh r2, [r1, r5]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
adds r1, r3, 0
adds r1, 0xF0
ldr r1, [r1]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xB8
ldrb r0, [r0]
cmp r0, 0
beq _0802FB78
movs r6, 0
adds r0, r1, 0
adds r0, 0xD6
movs r1, 0
ldrsh r0, [r0, r1]
cmp r6, r0
blt _0802FACA
b _0802FBD6
_0802FACA:
mov r8, r4
_0802FACC:
mov r2, r8
ldr r0, [r2]
adds r0, 0xBC
adds r1, r6, 0
bl sub_8013800
adds r5, r0, 0
mov r3, r8
ldr r2, [r3]
adds r0, r2, 0
adds r0, 0xDA
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r0, r6
lsls r0, r1, 1
adds r0, r2, r0
movs r3, 0
ldrsh r7, [r0, r3]
adds r0, r2, 0
adds r0, 0x5C
adds r0, r1
ldrb r4, [r0]
cmp r4, 0
beq _0802FB28
adds r0, r2, 0
adds r0, 0xF0
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0xA
adds r1, r5, 0
ldr r2, _0802FB24
bl xxx_call_draw_string
b _0802FB46
.align 2, 0
_0802FB1C: .4byte gUnknown_203B314
_0802FB20: .4byte gUnknown_80E0744
_0802FB24: .4byte gUnknown_80E0750
_0802FB28:
adds r0, r2, 0
adds r0, 0x8A
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0802FB46
adds r0, r2, 0
adds r0, 0xF0
ldr r3, [r0]
str r4, [sp]
movs r0, 0xA
adds r1, r5, 0
ldr r2, _0802FB74
bl xxx_call_draw_string
_0802FB46:
adds r0, r7, 0
bl sub_80974A0
adds r2, r0, 0
mov r1, r8
ldr r0, [r1]
adds r0, 0xF0
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x18
adds r1, r5, 0
bl xxx_call_draw_string
adds r6, 0x1
mov r2, r8
ldr r0, [r2]
adds r0, 0xD6
movs r3, 0
ldrsh r0, [r0, r3]
cmp r6, r0
blt _0802FACC
b _0802FBD6
.align 2, 0
_0802FB74: .4byte gUnknown_80E0754
_0802FB78:
movs r6, 0
adds r0, r1, 0
adds r0, 0xD6
movs r5, 0
ldrsh r0, [r0, r5]
cmp r6, r0
bge _0802FBD6
adds r5, r4, 0
_0802FB88:
ldr r0, [r5]
adds r0, 0xBC
adds r1, r6, 0
bl sub_8013800
adds r4, r0, 0
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0xDA
movs r3, 0
ldrsh r2, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r2
adds r0, r6
lsls r0, 1
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
bl sub_80974A0
adds r2, r0, 0
ldr r0, [r5]
adds r0, 0xF0
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x8
adds r1, r4, 0
bl xxx_call_draw_string
adds r6, 0x1
ldr r0, [r5]
adds r0, 0xD6
movs r3, 0
ldrsh r0, [r0, r3]
cmp r6, r0
blt _0802FB88
_0802FBD6:
ldr r0, _0802FBF0
ldr r0, [r0]
adds r0, 0xF0
ldr r0, [r0]
bl sub_80073E0
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802FBF0: .4byte gUnknown_203B314
thumb_func_end sub_802FA50
thumb_func_start sub_802FBF4
sub_802FBF4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
movs r0, 0
mov r8, r0
movs r1, 0
str r1, [sp]
_0802FC08:
ldr r1, [sp]
lsls r0, r1, 16
asrs r4, r0, 16
mov r10, r4
adds r0, r4, 0
bl sub_80A27CC
lsls r0, 24
cmp r0, 0
beq _0802FCCE
cmp r4, 0x13
beq _0802FCCE
cmp r4, 0x1D
beq _0802FCCE
ldr r7, _0802FC88
ldr r1, [r7]
mov r0, r8
lsls r6, r0, 1
adds r0, r1, r6
strh r4, [r0]
adds r1, 0x5C
add r1, r8
movs r0, 0
strb r0, [r1]
ldr r0, [r7]
adds r0, 0x8A
add r0, r8
movs r1, 0
strb r1, [r0]
ldr r0, [r7]
adds r0, 0xB8
ldrb r0, [r0]
cmp r0, 0
beq _0802FCCA
cmp r4, 0xD
beq _0802FCCA
adds r0, r4, 0
bl sub_80A270C
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r5, 0
cmp r4, 0x1E
bgt _0802FCA8
adds r0, r4, 0
bl sub_8097384
lsls r0, 24
cmp r0, 0
bne _0802FCA6
cmp r4, 0x6
bne _0802FC8C
movs r0, 0x13
bl sub_8097384
lsls r0, 24
cmp r0, 0
beq _0802FCA8
ldr r0, [r7]
adds r0, r6
movs r1, 0x13
b _0802FCA4
.align 2, 0
_0802FC88: .4byte gUnknown_203B314
_0802FC8C:
mov r0, r10
cmp r0, 0xA
bne _0802FCA8
movs r0, 0x1D
bl sub_8097384
lsls r0, 24
cmp r0, 0
beq _0802FCA8
ldr r0, [r7]
adds r0, r6
movs r1, 0x1D
_0802FCA4:
strh r1, [r0]
_0802FCA6:
movs r5, 0x1
_0802FCA8:
ldr r4, _0802FCEC
ldr r0, [r4]
adds r0, 0x5C
add r0, r8
strb r5, [r0]
cmp r5, 0
bne _0802FCCA
mov r0, r9
bl sub_80969D0
cmp r0, 0
ble _0802FCCA
ldr r0, [r4]
adds r0, 0x8A
add r0, r8
movs r1, 0x1
strb r1, [r0]
_0802FCCA:
movs r1, 0x1
add r8, r1
_0802FCCE:
ldr r0, [sp]
adds r0, 0x1
str r0, [sp]
cmp r0, 0x2D
ble _0802FC08
mov r0, r8
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0802FCEC: .4byte gUnknown_203B314
thumb_func_end sub_802FBF4
thumb_func_start sub_802FCF0
sub_802FCF0:
push {r4,lr}
movs r4, 0
_0802FCF4:
lsls r0, r4, 16
asrs r0, 16
bl sub_80A27CC
lsls r0, 24
cmp r0, 0
beq _0802FD06
movs r0, 0
b _0802FD0E
_0802FD06:
adds r4, 0x1
cmp r4, 0x2D
ble _0802FCF4
movs r0, 0x1
_0802FD0E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_802FCF0
thumb_func_start sub_802FD14
sub_802FD14:
push {r4-r6,lr}
adds r5, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _0802FD48
movs r0, 0xCC
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
ldr r1, _0802FD4C
strh r1, [r0, 0x10]
str r5, [r0]
cmp r5, 0x7
bhi _0802FDC0
lsls r0, r5, 2
ldr r1, _0802FD50
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802FD48: .4byte gUnknown_203B318
_0802FD4C: .4byte 0x0000ffff
_0802FD50: .4byte _0802FD54
.align 2, 0
_0802FD54:
.4byte _0802FD74
.4byte _0802FD84
.4byte _0802FD94
.4byte _0802FDA4
.4byte _0802FDB4
.4byte _0802FDB8
.4byte _0802FDBC
.4byte _0802FDC0
_0802FD74:
movs r6, 0
ldr r1, _0802FD80
ldr r0, [r1]
str r6, [r0, 0x4]
b _0802FDCC
.align 2, 0
_0802FD80: .4byte gUnknown_203B318
_0802FD84:
movs r6, 0x7
ldr r2, _0802FD90
ldr r1, [r2]
movs r0, 0
b _0802FDC8
.align 2, 0
_0802FD90: .4byte gUnknown_203B318
_0802FD94:
movs r6, 0x6
ldr r2, _0802FDA0
ldr r1, [r2]
movs r0, 0
b _0802FDC8
.align 2, 0
_0802FDA0: .4byte gUnknown_203B318
_0802FDA4:
movs r6, 0x8
ldr r2, _0802FDB0
ldr r1, [r2]
movs r0, 0
b _0802FDC8
.align 2, 0
_0802FDB0: .4byte gUnknown_203B318
_0802FDB4:
movs r6, 0
b _0802FDC2
_0802FDB8:
movs r6, 0x7
b _0802FDC2
_0802FDBC:
movs r6, 0x6
b _0802FDC2
_0802FDC0:
movs r6, 0x8
_0802FDC2:
ldr r2, _0802FDD8
ldr r1, [r2]
movs r0, 0x1
_0802FDC8:
str r0, [r1, 0x4]
adds r1, r2, 0
_0802FDCC:
ldr r1, [r1]
ldr r0, [r1, 0x4]
cmp r0, 0x1
bne _0802FDDC
movs r0, 0
b _0802FDE0
.align 2, 0
_0802FDD8: .4byte gUnknown_203B318
_0802FDDC:
adds r0, r1, 0
adds r0, 0x58
_0802FDE0:
str r0, [r1, 0x68]
ldr r0, _0802FE48
ldr r5, _0802FE4C
adds r1, r5, 0
bl sub_808D8E0
ldr r4, _0802FE50
adds r0, r4, 0
adds r1, r5, 0
bl sub_808D8E0
adds r0, r5, 0
bl sub_808D994
adds r1, r0, 0
subs r4, 0x50
adds r0, r4, 0
bl strcpy
adds r0, r5, 0
bl sub_808DDD0
ldr r3, _0802FE54
ldr r1, [r3]
str r0, [r1, 0x58]
ldr r0, [r0, 0x4]
str r0, [r1, 0x5C]
adds r1, 0x64
movs r2, 0
strb r2, [r1]
ldr r0, [r3]
adds r0, 0x65
strb r2, [r0]
ldr r0, [r3]
adds r0, 0x66
strb r2, [r0]
ldr r1, [r3]
adds r2, r1, 0
adds r2, 0x60
movs r0, 0x2
strh r0, [r2]
adds r1, 0x62
movs r0, 0x8
strh r0, [r1]
adds r0, r6, 0
bl sub_802FF04
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0802FE48: .4byte gUnknown_202E5D8
_0802FE4C: .4byte 0x00000141
_0802FE50: .4byte gUnknown_202E1C8
_0802FE54: .4byte gUnknown_203B318
thumb_func_end sub_802FD14
thumb_func_start sub_802FE58
sub_802FE58:
push {lr}
ldr r0, _0802FE70
ldr r0, [r0]
ldr r0, [r0, 0x8]
cmp r0, 0xD
bhi _0802FEC6
lsls r0, 2
ldr r1, _0802FE74
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802FE70: .4byte gUnknown_203B318
_0802FE74: .4byte _0802FE78
.align 2, 0
_0802FE78:
.4byte _0802FEB0
.4byte _0802FEB0
.4byte _0802FEC6
.4byte _0802FEC6
.4byte _0802FEB6
.4byte _0802FEC6
.4byte _0802FEC6
.4byte _0802FEC6
.4byte _0802FEC6
.4byte _0802FEC6
.4byte _0802FEC6
.4byte _0802FEBC
.4byte _0802FEC6
.4byte _0802FEC2
_0802FEB0:
bl sub_8030208
b _0802FECA
_0802FEB6:
bl sub_8030258
b _0802FECA
_0802FEBC:
bl sub_80302A8
b _0802FECA
_0802FEC2:
movs r0, 0x3
b _0802FECC
_0802FEC6:
bl sub_80302C4
_0802FECA:
movs r0, 0
_0802FECC:
pop {r1}
bx r1
thumb_func_end sub_802FE58
thumb_func_start sub_802FED0
sub_802FED0:
ldr r0, _0802FEDC
ldr r0, [r0]
movs r1, 0x10
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_0802FEDC: .4byte gUnknown_203B318
thumb_func_end sub_802FED0
thumb_func_start sub_802FEE0
sub_802FEE0:
push {r4,lr}
ldr r4, _0802FF00
ldr r0, [r4]
cmp r0, 0
beq _0802FEFA
ldr r0, [r0, 0x58]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802FEFA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802FF00: .4byte gUnknown_203B318
thumb_func_end sub_802FEE0
thumb_func_start sub_802FF04
sub_802FF04:
push {lr}
ldr r1, _0802FF18
ldr r1, [r1]
str r0, [r1, 0x8]
bl sub_802FF1C
bl sub_802FF88
pop {r0}
bx r0
.align 2, 0
_0802FF18: .4byte gUnknown_203B318
thumb_func_end sub_802FF04
thumb_func_start sub_802FF1C
sub_802FF1C:
push {r4-r7,lr}
ldr r4, _0802FF3C
ldr r0, [r4]
adds r0, 0x6C
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0, 0x8]
cmp r0, 0x4
beq _0802FF44
cmp r0, 0x4
bgt _0802FF40
cmp r0, 0
beq _0802FF44
b _0802FF68
.align 2, 0
_0802FF3C: .4byte gUnknown_203B318
_0802FF40:
cmp r0, 0xD
bne _0802FF68
_0802FF44:
ldr r0, _0802FF80
mov r12, r0
ldr r4, _0802FF84
movs r3, 0
movs r2, 0x3
_0802FF4E:
mov r5, r12
ldr r1, [r5]
adds r1, r3
adds r1, 0x6C
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0802FF4E
_0802FF68:
bl sub_8004914
ldr r0, _0802FF80
ldr r0, [r0]
adds r0, 0x6C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802FF80: .4byte gUnknown_203B318
_0802FF84: .4byte gUnknown_80E0760
thumb_func_end sub_802FF1C
thumb_func_start sub_802FF88
sub_802FF88:
push {r4,r5,lr}
sub sp, 0x18
ldr r1, _0802FFA4
ldr r0, [r1]
ldr r0, [r0, 0x8]
adds r5, r1, 0
cmp r0, 0xD
bls _0802FF9A
b _080301A0
_0802FF9A:
lsls r0, 2
ldr r1, _0802FFA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0802FFA4: .4byte gUnknown_203B318
_0802FFA8: .4byte _0802FFAC
.align 2, 0
_0802FFAC:
.4byte _0802FFE4
.4byte _08030000
.4byte _08030038
.4byte _08030050
.4byte _08030068
.4byte _08030074
.4byte _080300DC
.4byte _080300C4
.4byte _080300F4
.4byte _0803010C
.4byte _08030148
.4byte _08030174
.4byte _08030180
.4byte _080301A0
_0802FFE4:
bl sub_80301B0
ldr r2, _0802FFF8
ldr r0, _0802FFFC
ldr r5, [r0]
ldr r1, [r5, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
b _0803000E
.align 2, 0
_0802FFF8: .4byte gUnknown_80D9FC8
_0802FFFC: .4byte gUnknown_203B318
_08030000:
ldr r2, _08030034
ldr r5, [r5]
ldr r1, [r5, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x4
_0803000E:
adds r0, r2
ldr r0, [r0]
ldr r2, [r5, 0x14]
adds r3, r5, 0
adds r3, 0x18
movs r4, 0
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
ldr r1, [r5, 0x68]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _080301A0
.align 2, 0
_08030034: .4byte gUnknown_80D9FC8
_08030038:
ldr r3, [r5]
movs r0, 0xD
str r0, [r3, 0xC]
ldr r2, _0803004C
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x8
b _0803015A
.align 2, 0
_0803004C: .4byte gUnknown_80D9FC8
_08030050:
ldr r3, [r5]
movs r0, 0x4
str r0, [r3, 0xC]
ldr r2, _08030064
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0xC
b _0803015A
.align 2, 0
_08030064: .4byte gUnknown_80D9FC8
_08030068:
movs r0, 0x3
movs r1, 0
movs r2, 0xA
bl sub_80302E8
b _080301A0
_08030074:
ldr r1, [r5]
movs r0, 0xD
str r0, [r1, 0xC]
movs r2, 0x10
ldrsh r0, [r1, r2]
bl sub_80A2740
lsls r0, 24
lsrs r0, 24
ldr r2, _080300B4
ldr r1, [sp, 0x14]
ands r1, r2
orrs r1, r0
ldr r0, _080300B8
ands r1, r0
movs r0, 0x80
lsls r0, 1
orrs r1, r0
str r1, [sp, 0x14]
ldr r0, _080300BC
add r1, sp, 0x14
bl sub_8090208
ldr r2, _080300C0
ldr r3, [r5]
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x10
b _0803015A
.align 2, 0
_080300B4: .4byte 0xffffff00
_080300B8: .4byte 0xffff00ff
_080300BC: .4byte gUnknown_202DF98
_080300C0: .4byte gUnknown_80D9FC8
_080300C4:
ldr r3, [r5]
movs r0, 0xD
str r0, [r3, 0xC]
ldr r2, _080300D8
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x18
b _0803015A
.align 2, 0
_080300D8: .4byte gUnknown_80D9FC8
_080300DC:
ldr r3, [r5]
movs r0, 0xD
str r0, [r3, 0xC]
ldr r2, _080300F0
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x14
b _0803015A
.align 2, 0
_080300F0: .4byte gUnknown_80D9FC8
_080300F4:
ldr r3, [r5]
movs r0, 0x9
str r0, [r3, 0xC]
ldr r2, _08030108
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x1C
b _0803015A
.align 2, 0
_08030108: .4byte gUnknown_80D9FC8
_0803010C:
ldr r4, _08030138
bl sub_808D33C
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x6
bl sub_808D9AC
ldr r0, _0803013C
ldr r1, [r0]
movs r0, 0xB
str r0, [r1, 0xC]
movs r0, 0xCB
bl sub_8011988
ldr r0, _08030140
ldr r3, _08030144
movs r1, 0
movs r2, 0
bl sub_80141B4
b _080301A0
.align 2, 0
_08030138: .4byte gPlayerName
_0803013C: .4byte gUnknown_203B318
_08030140: .4byte gUnknown_80E0778
_08030144: .4byte 0x00000101
_08030148:
ldr r3, [r5]
movs r0, 0xD
str r0, [r3, 0xC]
ldr r2, _0803016C
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x20
_0803015A:
adds r0, r2
ldr r0, [r0]
ldr r2, [r3, 0x68]
ldr r3, _08030170
movs r1, 0
bl sub_80141B4
b _080301A0
.align 2, 0
_0803016C: .4byte gUnknown_80D9FC8
_08030170: .4byte 0x0000010d
_08030174:
movs r0, 0x1
movs r1, 0x49
movs r2, 0x1
bl sub_801B60C
b _080301A0
_08030180:
ldr r3, [r5]
movs r0, 0x1
str r0, [r3, 0xC]
ldr r2, _080301A8
ldr r1, [r3, 0x4]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r2, 0x24
adds r0, r2
ldr r0, [r0]
ldr r2, [r3, 0x68]
ldr r3, _080301AC
movs r1, 0
bl sub_80141B4
_080301A0:
add sp, 0x18
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080301A8: .4byte gUnknown_80D9FC8
_080301AC: .4byte 0x0000010d
thumb_func_end sub_802FF88
thumb_func_start sub_80301B0
sub_80301B0:
push {r4,lr}
ldr r4, _080301F8
ldr r1, [r4]
movs r2, 0x2
str r2, [r1, 0x14]
ldr r0, _080301FC
str r0, [r1, 0x18]
str r2, [r1, 0x1C]
bl sub_80306A4
lsls r0, 24
cmp r0, 0
beq _080301D6
ldr r0, [r4]
movs r1, 0x1
negs r1, r1
str r1, [r0, 0x1C]
movs r1, 0x1
str r1, [r0, 0x14]
_080301D6:
ldr r1, [r4]
movs r2, 0x1
ldr r0, _08030200
ldr r0, [r0]
str r0, [r1, 0x20]
movs r0, 0x3
str r0, [r1, 0x24]
ldr r0, _08030204
ldr r0, [r0]
str r0, [r1, 0x28]
str r2, [r1, 0x2C]
movs r0, 0
str r0, [r1, 0x30]
str r2, [r1, 0x34]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080301F8: .4byte gUnknown_203B318
_080301FC: .4byte gUnknown_80E07D8
_08030200: .4byte gUnknown_80D4970
_08030204: .4byte gUnknown_80D4934
thumb_func_end sub_80301B0
thumb_func_start sub_8030208
sub_8030208:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08030250
ldr r0, _08030230
ldr r1, [r0]
ldr r0, [sp]
str r0, [r1, 0x14]
ldr r0, [sp]
cmp r0, 0x2
beq _0803023A
cmp r0, 0x2
bgt _08030234
cmp r0, 0x1
beq _0803024A
b _08030250
.align 2, 0
_08030230: .4byte gUnknown_203B318
_08030234:
cmp r0, 0x3
beq _08030242
b _08030250
_0803023A:
movs r0, 0x3
bl sub_802FF04
b _08030250
_08030242:
movs r0, 0xC
bl sub_802FF04
b _08030250
_0803024A:
movs r0, 0x2
bl sub_802FF04
_08030250:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8030208
thumb_func_start sub_8030258
sub_8030258:
push {lr}
movs r0, 0x1
bl sub_80303AC
cmp r0, 0x2
beq _08030288
cmp r0, 0x2
bcc _0803029A
cmp r0, 0x3
bne _0803029A
bl sub_8030418
ldr r1, _08030284
ldr r1, [r1]
strh r0, [r1, 0x10]
bl sub_8030480
movs r0, 0x5
bl sub_802FF04
b _0803029A
.align 2, 0
_08030284: .4byte gUnknown_203B318
_08030288:
bl sub_8030480
ldr r0, _080302A0
ldr r1, [r0]
ldr r0, _080302A4
strh r0, [r1, 0x10]
movs r0, 0x1
bl sub_802FF04
_0803029A:
pop {r0}
bx r0
.align 2, 0
_080302A0: .4byte gUnknown_203B318
_080302A4: .4byte 0x0000ffff
thumb_func_end sub_8030258
thumb_func_start sub_80302A8
sub_80302A8:
push {lr}
bl sub_801B6AC
cmp r0, 0x1
bls _080302C0
cmp r0, 0x3
bhi _080302C0
bl sub_801B72C
movs r0, 0xA
bl sub_802FF04
_080302C0:
pop {r0}
bx r0
thumb_func_end sub_80302A8
thumb_func_start sub_80302C4
sub_80302C4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080302DC
ldr r0, _080302E4
ldr r0, [r0]
ldr r0, [r0, 0xC]
bl sub_802FF04
_080302DC:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080302E4: .4byte gUnknown_203B318
thumb_func_end sub_80302C4
thumb_func_start sub_80302E8
sub_80302E8:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
bl sub_80306A4
lsls r0, 24
cmp r0, 0
beq _08030302
movs r0, 0
b _0803039A
_08030302:
ldr r4, _080303A4
ldr r0, [r4]
cmp r0, 0
bne _08030314
movs r0, 0xD0
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
_08030314:
ldr r0, [r4]
str r5, [r0, 0x64]
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0x6C
adds r1, r0, r1
str r1, [r0, 0x68]
adds r0, 0x6C
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x64]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x6C
ldr r0, _080303A8
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r2, [r4]
ldr r1, [r2, 0x68]
adds r0, r2, 0
adds r0, 0xCC
str r0, [r1, 0x14]
cmp r6, 0
beq _08030362
ldr r1, [r2, 0x64]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r2, 0
adds r1, 0x74
adds r1, r0
ldr r0, [r6]
str r0, [r1]
_08030362:
ldr r0, [r4]
ldr r0, [r0, 0x68]
mov r1, r8
bl sub_8012D08
bl sub_8004914
ldr r0, [r4]
adds r0, 0x6C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r4]
adds r4, 0x30
bl sub_8030668
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r5, 0
bl sub_8013818
bl sub_80304C8
bl sub_803053C
movs r0, 0x1
_0803039A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080303A4: .4byte gUnknown_203B31C
_080303A8: .4byte gUnknown_80E0804
thumb_func_end sub_80302E8
thumb_func_start sub_80303AC
sub_80303AC:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _080303C8
ldr r0, _080303C4
ldr r0, [r0]
adds r0, 0x30
bl sub_8013660
movs r0, 0
b _08030410
.align 2, 0
_080303C4: .4byte gUnknown_203B31C
_080303C8:
ldr r4, _080303E4
ldr r0, [r4]
adds r0, 0x30
bl GetKeyPress
cmp r0, 0x1
beq _080303E8
cmp r0, 0x2
bne _080303F2
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08030410
.align 2, 0
_080303E4: .4byte gUnknown_203B31C
_080303E8:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08030410
_080303F2:
ldr r0, [r4]
adds r0, 0x30
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _08030406
movs r0, 0
b _08030410
_08030406:
bl sub_80304C8
bl sub_803053C
movs r0, 0x1
_08030410:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80303AC
thumb_func_start sub_8030418
sub_8030418:
ldr r0, _08030440
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x4E
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r2, 0
adds r1, 0x48
movs r3, 0
ldrsh r1, [r1, r3]
adds r0, r1
lsls r0, 1
adds r0, r2, r0
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_08030440: .4byte gUnknown_203B31C
thumb_func_end sub_8030418
thumb_func_start sub_8030444
sub_8030444:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8030668
adds r1, r0, 0
ldr r5, _0803047C
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x52
strh r1, [r2]
adds r0, 0x30
bl sub_8013984
bl sub_80304C8
bl sub_803053C
cmp r4, 0
beq _08030476
ldr r0, [r5]
adds r0, 0x30
bl AddMenuCursorSprite
_08030476:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803047C: .4byte gUnknown_203B31C
thumb_func_end sub_8030444
thumb_func_start sub_8030480
sub_8030480:
push {r4,r5,lr}
ldr r4, _080304C0
ldr r2, [r4]
cmp r2, 0
beq _080304BA
ldr r0, [r2, 0x64]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x6C
ldr r0, _080304C4
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x6C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080304BA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080304C0: .4byte gUnknown_203B31C
_080304C4: .4byte gUnknown_80E07EC
thumb_func_end sub_8030480
thumb_func_start sub_80304C8
sub_80304C8:
push {r4,lr}
ldr r4, _08030538
ldr r0, [r4]
adds r0, 0xCC
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xCD
strb r2, [r0]
ldr r0, [r4]
adds r0, 0xCE
movs r1, 0x8
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xCF
strb r2, [r0]
ldr r0, [r4]
adds r0, 0x4A
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x64]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x7A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x64]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x7C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x6C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08030538: .4byte gUnknown_203B31C
thumb_func_end sub_80304C8
thumb_func_start sub_803053C
sub_803053C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x108
ldr r4, _08030658
ldr r0, [r4]
ldr r0, [r0, 0x64]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x64]
bl sub_80073B8
ldr r2, _0803065C
ldr r0, [r4]
ldr r3, [r0, 0x64]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r3, [r4]
adds r0, r3, 0
adds r0, 0xCE
ldrb r0, [r0]
lsls r0, 3
adds r0, 0x4
adds r1, r3, 0
adds r1, 0x4E
movs r5, 0
ldrsh r2, [r1, r5]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
ldr r1, [r3, 0x64]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r0, 0
mov r9, r0
ldr r0, [r4]
adds r0, 0x4A
movs r1, 0
ldrsh r0, [r0, r1]
cmp r9, r0
bge _0803063E
mov r8, r4
_080305A2:
mov r3, r8
ldr r1, [r3]
adds r0, r1, 0
adds r0, 0x4E
movs r5, 0
ldrsh r2, [r0, r5]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r2
add r0, r9
lsls r0, 1
adds r1, r0
movs r5, 0
ldrsh r4, [r1, r5]
adds r0, r4, 0
bl sub_80A2740
lsls r0, 24
lsrs r7, r0, 24
adds r0, r4, 0
bl sub_80A2668
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
mov r1, r8
ldr r0, [r1]
adds r0, 0x30
mov r1, r9
bl sub_8013800
adds r6, r0, 0
movs r5, 0x7
adds r0, r4, 0
bl sub_809758C
lsls r0, 24
cmp r0, 0
beq _08030608
mov r3, r8
ldr r0, [r3]
ldr r3, [r0, 0x64]
movs r0, 0
str r0, [sp]
movs r0, 0x8
adds r1, r6, 0
ldr r2, _08030660
bl xxx_call_draw_string
movs r5, 0x4
_08030608:
adds r0, r7, 0
bl GetDungeonName1
adds r3, r0, 0
add r0, sp, 0x8
ldr r1, _08030664
adds r2, r5, 0
bl sub_800D158
mov r5, r8
ldr r0, [r5]
ldr r3, [r0, 0x64]
movs r0, 0
str r0, [sp]
movs r0, 0x10
adds r1, r6, 0
add r2, sp, 0x8
bl xxx_call_draw_string
movs r0, 0x1
add r9, r0
ldr r0, [r5]
adds r0, 0x4A
movs r1, 0
ldrsh r0, [r0, r1]
cmp r9, r0
blt _080305A2
_0803063E:
ldr r0, _08030658
ldr r0, [r0]
ldr r0, [r0, 0x64]
bl sub_80073E0
add sp, 0x108
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08030658: .4byte gUnknown_203B31C
_0803065C: .4byte gUnknown_80E081C
_08030660: .4byte gUnknown_80E0824
_08030664: .4byte gUnknown_80E0828
thumb_func_end sub_803053C
thumb_func_start sub_8030668
sub_8030668:
push {r4-r6,lr}
movs r6, 0
movs r5, 0
_0803066E:
lsls r0, r5, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_8097504
lsls r0, 24
cmp r0, 0
beq _08030690
adds r0, r4, 0
bl sub_80A26CC
ldr r1, _080306A0
ldr r1, [r1]
lsls r2, r6, 1
adds r1, r2
strh r0, [r1]
adds r6, 0x1
_08030690:
adds r5, 0x1
cmp r5, 0x16
ble _0803066E
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080306A0: .4byte gUnknown_203B31C
thumb_func_end sub_8030668
thumb_func_start sub_80306A4
sub_80306A4:
movs r0, 0
bx lr
thumb_func_end sub_80306A4
thumb_func_start sub_80306A8
sub_80306A8:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
adds r5, r1, 0
adds r7, r2, 0
mov r8, r3
bl sub_8030C20
lsls r0, 24
cmp r0, 0
beq _080306C4
movs r0, 0
b _08030756
_080306C4:
ldr r6, _08030760
movs r0, 0xC4
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
str r4, [r0, 0x20]
str r5, [r0, 0x58]
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0x60
adds r1, r0, r1
str r1, [r0, 0x5C]
adds r0, 0x60
bl sub_8006518
ldr r1, [r6]
ldr r2, [r1, 0x58]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x60
ldr r0, _08030764
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r6]
ldr r1, [r2, 0x5C]
adds r0, r2, 0
adds r0, 0xC0
str r0, [r1, 0x14]
cmp r7, 0
beq _0803071E
ldr r1, [r2, 0x58]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r2, 0
adds r1, 0x68
adds r1, r0
ldr r0, [r7]
str r0, [r1]
_0803071E:
ldr r0, [r6]
ldr r0, [r0, 0x5C]
mov r1, r8
bl sub_8012D08
bl sub_8004914
ldr r0, [r6]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r6]
adds r4, 0x24
bl sub_8030A74
adds r1, r0, 0
adds r0, r4, 0
mov r2, r8
adds r3, r5, 0
bl sub_8013818
bl sub_80308A0
bl sub_803092C
movs r0, 0x1
_08030756:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08030760: .4byte gUnknown_203B320
_08030764: .4byte gUnknown_80E0854
thumb_func_end sub_80306A8
thumb_func_start sub_8030768
sub_8030768:
push {lr}
lsls r0, 24
cmp r0, 0
bne _08030784
ldr r0, _08030780
ldr r0, [r0]
adds r0, 0x24
bl sub_8013660
movs r0, 0
b _080307E6
.align 2, 0
_08030780: .4byte gUnknown_203B320
_08030784:
ldr r0, _0803079C
ldr r0, [r0]
adds r0, 0x24
bl GetKeyPress
cmp r0, 0x2
beq _080307AE
cmp r0, 0x2
bgt _080307A0
cmp r0, 0x1
beq _080307B8
b _080307C2
.align 2, 0
_0803079C: .4byte gUnknown_203B320
_080307A0:
cmp r0, 0x4
bne _080307C2
movs r0, 0x4
bl sub_80119D4
movs r0, 0x4
b _080307E6
_080307AE:
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _080307E6
_080307B8:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _080307E6
_080307C2:
ldr r0, _080307D8
ldr r0, [r0]
adds r0, 0x24
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _080307DC
movs r0, 0
b _080307E6
.align 2, 0
_080307D8: .4byte gUnknown_203B320
_080307DC:
bl sub_80308A0
bl sub_803092C
movs r0, 0x1
_080307E6:
pop {r1}
bx r1
thumb_func_end sub_8030768
thumb_func_start sub_80307EC
sub_80307EC:
ldr r0, _0803080C
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x42
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
movs r3, 0x3C
ldrsh r1, [r2, r3]
adds r0, r1
adds r2, r0
ldrb r0, [r2]
bx lr
.align 2, 0
_0803080C: .4byte gUnknown_203B320
thumb_func_end sub_80307EC
thumb_func_start sub_8030810
sub_8030810:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8030A74
adds r1, r0, 0
ldr r5, _08030848
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x46
strh r1, [r2]
adds r0, 0x24
bl sub_8013984
bl sub_80308A0
bl sub_803092C
cmp r4, 0
beq _08030842
ldr r0, [r5]
adds r0, 0x24
bl AddMenuCursorSprite
_08030842:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08030848: .4byte gUnknown_203B320
thumb_func_end sub_8030810
thumb_func_start sub_803084C
sub_803084C:
push {r4,r5,lr}
ldr r4, _0803088C
ldr r2, [r4]
cmp r2, 0
beq _08030886
ldr r0, [r2, 0x58]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x60
ldr r0, _08030890
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08030886:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803088C: .4byte gUnknown_203B320
_08030890: .4byte gUnknown_80E083C
thumb_func_end sub_803084C
thumb_func_start sub_8030894
sub_8030894:
ldr r0, _0803089C
ldr r0, [r0]
bx lr
.align 2, 0
_0803089C: .4byte gUnknown_203B320
thumb_func_end sub_8030894
thumb_func_start sub_80308A0
sub_80308A0:
push {r4,lr}
ldr r4, _08030928
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x44
ldrh r1, [r1]
adds r0, 0xC0
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x42
ldrh r1, [r1]
adds r0, 0xC1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC2
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xC3
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x3E
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x58]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x6E
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x58]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x70
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x60
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08030928: .4byte gUnknown_203B320
thumb_func_end sub_80308A0
thumb_func_start sub_803092C
sub_803092C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x60
ldr r7, _08030A24
ldr r0, [r7]
ldr r0, [r0, 0x58]
bl sub_8008C54
ldr r0, [r7]
ldr r0, [r0, 0x58]
bl sub_80073B8
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0x42
movs r2, 0
ldrsh r4, [r0, r2]
lsls r4, 3
adds r5, r4, 0
adds r5, 0xA
ldr r2, _08030A28
ldr r0, [r1, 0x20]
lsls r0, 2
adds r0, r2
ldr r2, [r0]
ldr r3, [r1, 0x58]
movs r0, 0
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl xxx_call_draw_string
adds r4, 0x4
ldr r3, [r7]
adds r0, r3, 0
adds r0, 0xC2
ldrb r0, [r0]
lsls r0, 3
adds r5, r4, r0
adds r0, r3, 0
adds r0, 0x42
movs r1, 0
ldrsh r2, [r0, r1]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r3, 0x58]
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
movs r3, 0x1
bl sub_8012BC4
movs r6, 0
ldr r0, [r7]
movs r2, 0x3E
ldrsh r0, [r0, r2]
cmp r6, r0
bge _08030A56
mov r9, r7
mov r8, r6
add r7, sp, 0x8
mov r5, sp
adds r5, 0x4B
_080309B0:
mov r3, r9
ldr r1, [r3]
adds r0, r1, 0
adds r0, 0x42
movs r3, 0
ldrsh r2, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r2
adds r0, r6
adds r1, r0
ldrb r0, [r1]
bl sub_8095228
adds r4, r0, 0
mov r1, r9
ldr r0, [r1]
ldr r1, [r0, 0x58]
str r1, [sp, 0x8]
adds r0, 0x24
adds r1, r6, 0
bl sub_8013800
str r0, [sp, 0x50]
add r1, sp, 0x48
movs r0, 0x7
strb r0, [r1]
mov r0, sp
adds r0, 0x4A
mov r2, r8
strb r2, [r0]
add r0, sp, 0x4C
strb r2, [r0]
adds r0, r4, 0x4
str r0, [sp, 0x10]
adds r0, 0x10
str r0, [sp, 0x14]
ldrh r0, [r4, 0xC]
strh r0, [r7, 0x10]
ldrh r0, [r4, 0xC]
strh r0, [r7, 0x12]
strb r2, [r7, 0x14]
subs r1, 0x12
movs r0, 0x5
strb r0, [r1]
ldrb r0, [r4]
cmp r0, 0x4
beq _08030A32
cmp r0, 0x4
bgt _08030A2C
cmp r0, 0x2
bgt _08030A3E
cmp r0, 0x1
blt _08030A3E
movs r0, 0x1
strb r0, [r5]
b _08030A42
.align 2, 0
_08030A24: .4byte gUnknown_203B320
_08030A28: .4byte gUnknown_80E086C
_08030A2C:
cmp r0, 0x5
beq _08030A38
b _08030A3E
_08030A32:
movs r0, 0x3
strb r0, [r5]
b _08030A42
_08030A38:
movs r0, 0x4
strb r0, [r5]
b _08030A42
_08030A3E:
mov r3, r8
strb r3, [r5]
_08030A42:
add r0, sp, 0x8
bl sub_803B6D4
adds r6, 0x1
mov r1, r9
ldr r0, [r1]
movs r2, 0x3E
ldrsh r0, [r0, r2]
cmp r6, r0
blt _080309B0
_08030A56:
ldr r0, _08030A70
ldr r0, [r0]
ldr r0, [r0, 0x58]
bl sub_80073E0
add sp, 0x60
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08030A70: .4byte gUnknown_203B320
thumb_func_end sub_803092C
thumb_func_start sub_8030A74
sub_8030A74:
push {r4,r5,lr}
movs r2, 0
ldr r0, _08030A90
ldr r0, [r0]
ldr r0, [r0, 0x20]
cmp r0, 0x7
bls _08030A84
b _08030C0E
_08030A84:
lsls r0, 2
ldr r1, _08030A94
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08030A90: .4byte gUnknown_203B320
_08030A94: .4byte _08030A98
.align 2, 0
_08030A98:
.4byte _08030AB8
.4byte _08030B10
.4byte _08030B3C
.4byte _08030B94
.4byte _08030B68
.4byte _08030BC0
.4byte _08030AE4
.4byte _08030BEC
_08030AB8:
movs r1, 0
ldr r5, _08030ADC
ldr r4, _08030AE0
movs r3, 0
_08030AC0:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
beq _08030AD2
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030AD2:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030AC0
b _08030C0E
.align 2, 0
_08030ADC: .4byte gUnknown_203B480
_08030AE0: .4byte gUnknown_203B320
_08030AE4:
movs r1, 0
ldr r5, _08030B08
ldr r4, _08030B0C
movs r3, 0
_08030AEC:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x6
bne _08030AFE
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030AFE:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030AEC
b _08030C0E
.align 2, 0
_08030B08: .4byte gUnknown_203B480
_08030B0C: .4byte gUnknown_203B320
_08030B10:
movs r1, 0
ldr r5, _08030B34
ldr r4, _08030B38
movs r3, 0
_08030B18:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x1
bne _08030B2A
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030B2A:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B18
b _08030C0E
.align 2, 0
_08030B34: .4byte gUnknown_203B480
_08030B38: .4byte gUnknown_203B320
_08030B3C:
movs r1, 0
ldr r5, _08030B60
ldr r4, _08030B64
movs r3, 0
_08030B44:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x2
bne _08030B56
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030B56:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B44
b _08030C0E
.align 2, 0
_08030B60: .4byte gUnknown_203B480
_08030B64: .4byte gUnknown_203B320
_08030B68:
movs r1, 0
ldr r5, _08030B8C
ldr r4, _08030B90
movs r3, 0
_08030B70:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x4
bne _08030B82
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030B82:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B70
b _08030C0E
.align 2, 0
_08030B8C: .4byte gUnknown_203B480
_08030B90: .4byte gUnknown_203B320
_08030B94:
movs r1, 0
ldr r5, _08030BB8
ldr r4, _08030BBC
movs r3, 0
_08030B9C:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x3
bne _08030BAE
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030BAE:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030B9C
b _08030C0E
.align 2, 0
_08030BB8: .4byte gUnknown_203B480
_08030BBC: .4byte gUnknown_203B320
_08030BC0:
movs r1, 0
ldr r5, _08030BE4
ldr r4, _08030BE8
movs r3, 0
_08030BC8:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x5
bne _08030BDA
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030BDA:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030BC8
b _08030C0E
.align 2, 0
_08030BE4: .4byte gUnknown_203B480
_08030BE8: .4byte gUnknown_203B320
_08030BEC:
movs r1, 0
ldr r5, _08030C18
ldr r4, _08030C1C
movs r3, 0
_08030BF4:
ldr r0, [r5]
adds r0, r3
ldrb r0, [r0]
cmp r0, 0x7
bne _08030C06
ldr r0, [r4]
adds r0, r2
strb r1, [r0]
adds r2, 0x1
_08030C06:
adds r3, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030BF4
_08030C0E:
adds r0, r2, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08030C18: .4byte gUnknown_203B480
_08030C1C: .4byte gUnknown_203B320
thumb_func_end sub_8030A74
thumb_func_start sub_8030C20
sub_8030C20:
push {lr}
cmp r0, 0x7
bls _08030C28
b _08030D34
_08030C28:
lsls r0, 2
ldr r1, _08030C34
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08030C34: .4byte _08030C38
.align 2, 0
_08030C38:
.4byte _08030C58
.4byte _08030C90
.4byte _08030CAC
.4byte _08030CE4
.4byte _08030CC8
.4byte _08030D00
.4byte _08030C74
.4byte _08030D20
_08030C58:
movs r1, 0
ldr r0, _08030C70
ldr r2, [r0]
_08030C5E:
ldrb r0, [r2]
cmp r0, 0
bne _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030C5E
b _08030D34
.align 2, 0
_08030C70: .4byte gUnknown_203B480
_08030C74:
movs r1, 0
ldr r0, _08030C8C
ldr r2, [r0]
_08030C7A:
ldrb r0, [r2]
cmp r0, 0x6
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030C7A
b _08030D34
.align 2, 0
_08030C8C: .4byte gUnknown_203B480
_08030C90:
movs r1, 0
ldr r0, _08030CA8
ldr r2, [r0]
_08030C96:
ldrb r0, [r2]
cmp r0, 0x1
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030C96
b _08030D34
.align 2, 0
_08030CA8: .4byte gUnknown_203B480
_08030CAC:
movs r1, 0
ldr r0, _08030CC4
ldr r2, [r0]
_08030CB2:
ldrb r0, [r2]
cmp r0, 0x2
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030CB2
b _08030D34
.align 2, 0
_08030CC4: .4byte gUnknown_203B480
_08030CC8:
movs r1, 0
ldr r0, _08030CE0
ldr r2, [r0]
_08030CCE:
ldrb r0, [r2]
cmp r0, 0x4
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030CCE
b _08030D34
.align 2, 0
_08030CE0: .4byte gUnknown_203B480
_08030CE4:
movs r1, 0
ldr r0, _08030CFC
ldr r2, [r0]
_08030CEA:
ldrb r0, [r2]
cmp r0, 0x3
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030CEA
b _08030D34
.align 2, 0
_08030CFC: .4byte gUnknown_203B480
_08030D00:
movs r1, 0
ldr r0, _08030D18
ldr r2, [r0]
_08030D06:
ldrb r0, [r2]
cmp r0, 0x5
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030D06
b _08030D34
.align 2, 0
_08030D18: .4byte gUnknown_203B480
_08030D1C:
movs r0, 0
b _08030D36
_08030D20:
movs r1, 0
ldr r0, _08030D3C
ldr r2, [r0]
_08030D26:
ldrb r0, [r2]
cmp r0, 0x7
beq _08030D1C
adds r2, 0x30
adds r1, 0x1
cmp r1, 0x1F
ble _08030D26
_08030D34:
movs r0, 0x1
_08030D36:
pop {r1}
bx r1
.align 2, 0
_08030D3C: .4byte gUnknown_203B480
thumb_func_end sub_8030C20
thumb_func_start sub_8030D40
sub_8030D40:
push {r4-r6,lr}
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 24
lsrs r4, 24
ldr r6, _08030D98
movs r0, 0x78
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
strb r4, [r0, 0xC]
ldr r0, [r6]
bl sub_801317C
ldr r0, [r6]
str r5, [r0, 0x10]
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0x18
adds r1, r0, r1
str r1, [r0, 0x14]
adds r0, 0x18
bl sub_8006518
ldr r1, [r6]
ldr r2, [r1, 0x10]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x18
ldr r0, _08030D9C
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
bl sub_8030DD4
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08030D98: .4byte gUnknown_203B324
_08030D9C: .4byte gUnknown_80E091C
thumb_func_end sub_8030D40
thumb_func_start sub_8030DA0
sub_8030DA0:
push {lr}
ldr r0, _08030DC0
ldr r0, [r0]
ldr r1, [r0, 0x10]
bl sub_8012A64
cmp r0, 0x1
beq _08030DC4
cmp r0, 0x2
bne _08030DCE
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08030DD0
.align 2, 0
_08030DC0: .4byte gUnknown_203B324
_08030DC4:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08030DD0
_08030DCE:
movs r0, 0
_08030DD0:
pop {r1}
bx r1
thumb_func_end sub_8030DA0
thumb_func_start sub_8030DD4
sub_8030DD4:
push {lr}
bl sub_8030E2C
bl sub_8030E48
pop {r0}
bx r0
thumb_func_end sub_8030DD4
thumb_func_start sub_8030DE4
sub_8030DE4:
push {r4,r5,lr}
ldr r4, _08030E24
ldr r2, [r4]
cmp r2, 0
beq _08030E1E
ldr r0, [r2, 0x10]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x18
ldr r0, _08030E28
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08030E1E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08030E24: .4byte gUnknown_203B324
_08030E28: .4byte gUnknown_80E0900
thumb_func_end sub_8030DE4
thumb_func_start sub_8030E2C
sub_8030E2C:
push {lr}
bl sub_8004914
ldr r0, _08030E44
ldr r0, [r0]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r0}
bx r0
.align 2, 0
_08030E44: .4byte gUnknown_203B324
thumb_func_end sub_8030E2C
thumb_func_start sub_8030E48
sub_8030E48:
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x15C
ldr r3, _08030EA8
ldr r4, _08030EAC
ldr r2, [r4]
ldrb r1, [r2, 0xC]
lsls r0, r1, 1
adds r0, r1
lsls r0, 4
ldr r1, [r3]
adds r5, r1, r0
ldr r0, [r2, 0x10]
bl sub_80073B8
ldr r0, [r4]
ldr r0, [r0, 0x10]
str r0, [sp, 0x4]
add r1, sp, 0x44
movs r2, 0
movs r0, 0x7
strb r0, [r1]
mov r0, sp
adds r0, 0x46
strb r2, [r0]
add r0, sp, 0x48
strb r2, [r0]
adds r0, r5, 0x4
str r0, [sp, 0xC]
adds r0, 0x10
str r0, [sp, 0x10]
add r1, sp, 0x4
ldrh r0, [r5, 0xC]
strh r0, [r1, 0x10]
ldrh r0, [r5, 0xC]
strh r0, [r1, 0x12]
adds r0, r1, 0
strb r2, [r0, 0x14]
adds r2, r5, 0
adds r2, 0x22
ldrb r0, [r2]
cmp r0, 0
bne _08030EB0
adds r1, 0x2E
movs r0, 0x5
strb r0, [r1]
b _08030EBE
.align 2, 0
_08030EA8: .4byte gUnknown_203B480
_08030EAC: .4byte gUnknown_203B324
_08030EB0:
mov r1, sp
adds r1, 0x32
movs r0, 0x2
strb r0, [r1]
ldrb r1, [r2]
add r0, sp, 0x38
strb r1, [r0]
_08030EBE:
ldrb r0, [r5]
cmp r0, 0x2
beq _08030ED2
cmp r0, 0x2
ble _08030EE2
cmp r0, 0x4
beq _08030ED2
cmp r0, 0x5
beq _08030EDA
b _08030EE2
_08030ED2:
mov r1, sp
adds r1, 0x45
movs r0, 0xA
b _08030EE8
_08030EDA:
mov r1, sp
adds r1, 0x45
movs r0, 0xB
b _08030EE8
_08030EE2:
mov r1, sp
adds r1, 0x45
movs r0, 0x9
_08030EE8:
strb r0, [r1]
add r0, sp, 0x4
bl sub_803B98C
ldrh r0, [r5, 0x10]
ldr r1, _08030F48
bl __umodsi3
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r2, _08030F4C
ldr r5, _08030F50
ldr r0, [r5]
ldr r3, [r0, 0x10]
movs r0, 0
mov r8, r0
str r0, [sp]
movs r0, 0xA
movs r1, 0x68
bl xxx_call_draw_string
add r6, sp, 0x5C
ldr r1, _08030F54
adds r0, r6, 0
adds r2, r4, 0
bl sub_800D158
ldr r0, [r5]
ldr r3, [r0, 0x10]
mov r0, r8
str r0, [sp]
movs r0, 0x44
movs r1, 0x68
adds r2, r6, 0
bl xxx_call_draw_string
ldr r0, [r5]
ldr r0, [r0, 0x10]
bl sub_80073E0
add sp, 0x15C
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08030F48: .4byte 0x00002710
_08030F4C: .4byte gUnknown_80E0934
_08030F50: .4byte gUnknown_203B324
_08030F54: .4byte gUnknown_80E0938
thumb_func_end sub_8030E48
thumb_func_start sub_8030F58
sub_8030F58:
push {r4-r6,lr}
adds r6, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08030FF4
ldr r0, [r5]
cmp r0, 0
bne _08030F88
movs r4, 0x8E
lsls r4, 1
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_08030F88:
ldr r0, [r5]
movs r1, 0x8C
lsls r1, 1
adds r0, r1
str r6, [r0]
movs r0, 0x98
lsls r0, 1
bl sub_808DDD0
ldr r2, [r5]
movs r4, 0x84
lsls r4, 1
adds r1, r2, r4
str r0, [r1]
movs r3, 0x86
lsls r3, 1
adds r1, r2, r3
ldr r0, [r0, 0x4]
str r0, [r1]
movs r0, 0x8A
lsls r0, 1
adds r2, r0
movs r1, 0
strb r1, [r2]
ldr r0, [r5]
ldr r2, _08030FF8
adds r0, r2
strb r1, [r0]
ldr r0, [r5]
adds r3, 0xA
adds r0, r3
strb r1, [r0]
ldr r2, [r5]
movs r0, 0x88
lsls r0, 1
adds r1, r2, r0
movs r0, 0x2
strh r0, [r1]
subs r3, 0x4
adds r1, r2, r3
movs r0, 0x8
strh r0, [r1]
adds r0, r6, 0
bl sub_8030C20
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _08031038
cmp r6, 0x2
beq _08030FFC
cmp r6, 0x4
beq _08031014
b _08031022
.align 2, 0
_08030FF4: .4byte gUnknown_203B328
_08030FF8: .4byte 0x00000115
_08030FFC:
ldr r0, _0803100C
ldr r2, [r5]
adds r2, r4
ldr r3, _08031010
movs r1, 0
bl sub_80141B4
b _08031022
.align 2, 0
_0803100C: .4byte gUnknown_80E09D8
_08031010: .4byte 0x00000101
_08031014:
ldr r0, _0803102C
ldr r2, [r5]
adds r2, r4
ldr r3, _08031030
movs r1, 0
bl sub_80141B4
_08031022:
ldr r0, _08031034
ldr r1, [r0]
movs r0, 0x5
str r0, [r1]
b _08031048
.align 2, 0
_0803102C: .4byte gUnknown_80E0A0C
_08031030: .4byte 0x00000101
_08031034: .4byte gUnknown_203B328
_08031038:
ldr r0, [r5]
str r1, [r0]
adds r0, r6, 0
movs r1, 0
movs r2, 0
movs r3, 0x8
bl sub_80306A8
_08031048:
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8030F58
thumb_func_start sub_8031050
sub_8031050:
push {lr}
ldr r1, _08031068
ldr r0, [r1]
ldr r0, [r0]
adds r2, r1, 0
cmp r0, 0x6
bhi _080310AC
lsls r0, 2
ldr r1, _0803106C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08031068: .4byte gUnknown_203B328
_0803106C: .4byte _08031070
.align 2, 0
_08031070:
.4byte _0803108C
.4byte _08031092
.4byte _08031098
.4byte _08031098
.4byte _080310A2
.4byte _080310A8
.4byte _080310A8
_0803108C:
bl sub_8031300
b _080310AC
_08031092:
bl sub_803136C
b _080310AC
_08031098:
ldr r0, [r2]
ldr r0, [r0]
bl sub_80313D8
b _080310AC
_080310A2:
bl sub_8031498
b _080310AC
_080310A8:
movs r0, 0x3
b _080310AE
_080310AC:
movs r0, 0
_080310AE:
pop {r1}
bx r1
thumb_func_end sub_8031050
thumb_func_start sub_80310B4
sub_80310B4:
push {r4,lr}
bl sub_803084C
ldr r4, _080310E0
ldr r0, [r4]
cmp r0, 0
beq _080310D8
movs r1, 0x84
lsls r1, 1
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080310D8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080310E0: .4byte gUnknown_203B328
thumb_func_end sub_80310B4
thumb_func_start sub_80310E4
sub_80310E4:
push {lr}
ldr r1, _080310F8
ldr r1, [r1]
str r0, [r1]
bl sub_80310FC
bl sub_8031258
pop {r0}
bx r0
.align 2, 0
_080310F8: .4byte gUnknown_203B328
thumb_func_end sub_80310E4
thumb_func_start sub_80310FC
sub_80310FC:
push {r4-r6,lr}
ldr r4, _0803111C
ldr r0, [r4]
adds r0, 0xA8
bl sub_8006518
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x6
bls _08031112
b _0803122C
_08031112:
lsls r0, 2
ldr r1, _08031120
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803111C: .4byte gUnknown_203B328
_08031120: .4byte _08031124
.align 2, 0
_08031124:
.4byte _08031140
.4byte _08031178
.4byte _080311C0
.4byte _080311C0
.4byte _080311E8
.4byte _0803122C
.4byte _0803122C
_08031140:
ldr r3, _08031170
ldr r1, [r3]
ldr r2, _08031174
adds r1, 0xC0
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r1, [r3]
adds r1, 0xD8
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r0, [r3]
adds r0, 0xF0
ldm r2!, {r1,r3,r4}
stm r0!, {r1,r3,r4}
ldm r2!, {r1,r5,r6}
stm r0!, {r1,r5,r6}
b _0803123A
.align 2, 0
_08031170: .4byte gUnknown_203B328
_08031174: .4byte gUnknown_80E0990
_08031178:
ldr r3, _080311B0
ldr r1, [r3]
adds r1, 0xC0
ldr r0, _080311B4
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldm r0!, {r2,r4,r6}
stm r1!, {r2,r4,r6}
ldr r1, [r3]
ldr r2, _080311B8
adds r1, 0xD8
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r0, [r3]
adds r0, 0xF0
ldm r2!, {r1,r5,r6}
stm r0!, {r1,r5,r6}
ldm r2!, {r4-r6}
stm r0!, {r4-r6}
ldr r0, [r3]
adds r0, 0xC0
ldr r1, _080311BC
bl sub_8012CAC
b _0803123A
.align 2, 0
_080311B0: .4byte gUnknown_203B328
_080311B4: .4byte gUnknown_80E09A8
_080311B8: .4byte gUnknown_80E0990
_080311BC: .4byte gUnknown_80E0968
_080311C0:
ldr r2, _080311DC
ldr r1, [r2]
adds r1, 0xD8
ldr r0, _080311E0
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r3,r4,r6}
stm r1!, {r3,r4,r6}
ldr r0, [r2]
adds r0, 0xD8
ldr r1, _080311E4
bl sub_8012CAC
b _0803123A
.align 2, 0
_080311DC: .4byte gUnknown_203B328
_080311E0: .4byte gUnknown_80E09C0
_080311E4: .4byte gUnknown_80E0948
_080311E8:
ldr r3, _08031224
ldr r1, [r3]
ldr r2, _08031228
adds r1, 0xA8
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r1, [r3]
adds r1, 0xC0
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r1, [r3]
adds r1, 0xD8
adds r0, r2, 0
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r0, [r3]
adds r0, 0xF0
ldm r2!, {r1,r5,r6}
stm r0!, {r1,r5,r6}
ldm r2!, {r3-r5}
stm r0!, {r3-r5}
b _0803123A
.align 2, 0
_08031224: .4byte gUnknown_203B328
_08031228: .4byte gUnknown_80E0990
_0803122C:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0803123A:
bl sub_8004914
ldr r0, _08031254
ldr r0, [r0]
adds r0, 0xA8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08031254: .4byte gUnknown_203B328
thumb_func_end sub_80310FC
thumb_func_start sub_8031258
sub_8031258:
push {r4,lr}
sub sp, 0x8
ldr r1, _08031274
ldr r0, [r1]
ldr r0, [r0]
adds r2, r1, 0
cmp r0, 0x6
bhi _080312F6
lsls r0, 2
ldr r1, _08031278
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08031274: .4byte gUnknown_203B328
_08031278: .4byte _0803127C
.align 2, 0
_0803127C:
.4byte _08031298
.4byte _080312A0
.4byte _080312BC
.4byte _080312BC
.4byte _080312EC
.4byte _080312F6
.4byte _080312F6
_08031298:
movs r0, 0x1
bl sub_8030810
b _080312F6
_080312A0:
bl sub_803092C
ldr r0, _080312B4
ldr r0, [r0]
adds r0, 0x8
ldr r1, _080312B8
movs r2, 0x4
str r2, [sp]
movs r2, 0x1
b _080312D8
.align 2, 0
_080312B4: .4byte gUnknown_203B328
_080312B8: .4byte gUnknown_80E0968
_080312BC:
bl sub_803092C
ldr r4, _080312E4
ldr r0, [r4]
adds r0, 0x8
movs r1, 0
bl sub_8012EA4
ldr r0, [r4]
adds r0, 0x58
ldr r1, _080312E8
movs r2, 0x3
str r2, [sp]
movs r2, 0x2
_080312D8:
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _080312F6
.align 2, 0
_080312E4: .4byte gUnknown_203B328
_080312E8: .4byte gUnknown_80E0948
_080312EC:
ldr r0, [r2]
ldrb r0, [r0, 0x4]
movs r1, 0x3
bl sub_8030D40
_080312F6:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8031258
thumb_func_start sub_8031300
sub_8031300:
push {lr}
movs r0, 0x1
bl sub_8030768
cmp r0, 0x4
bhi _08031366
lsls r0, 2
ldr r1, _08031318
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08031318: .4byte _0803131C
.align 2, 0
_0803131C:
.4byte _08031366
.4byte _08031366
.4byte _08031360
.4byte _08031330
.4byte _08031348
_08031330:
bl sub_80307EC
ldr r1, _08031344
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x1
bl sub_80310E4
b _08031366
.align 2, 0
_08031344: .4byte gUnknown_203B328
_08031348:
bl sub_80307EC
ldr r1, _0803135C
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x4
bl sub_80310E4
b _08031366
.align 2, 0
_0803135C: .4byte gUnknown_203B328
_08031360:
movs r0, 0x6
bl sub_80310E4
_08031366:
pop {r0}
bx r0
thumb_func_end sub_8031300
thumb_func_start sub_803136C
sub_803136C:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8030768
ldr r4, _080313A4
ldr r0, [r4]
adds r0, 0x8
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08031392
ldr r0, [r4]
adds r0, 0x8
mov r1, sp
bl sub_8013114
_08031392:
ldr r0, [sp]
cmp r0, 0x4
beq _080313C2
cmp r0, 0x4
bgt _080313A8
cmp r0, 0x1
beq _080313B2
b _080313D0
.align 2, 0
_080313A4: .4byte gUnknown_203B328
_080313A8:
cmp r0, 0x5
beq _080313CA
cmp r0, 0x6
beq _080313BA
b _080313D0
_080313B2:
movs r0, 0
bl sub_80310E4
b _080313D0
_080313BA:
movs r0, 0x3
bl sub_80310E4
b _080313D0
_080313C2:
movs r0, 0x2
bl sub_80310E4
b _080313D0
_080313CA:
movs r0, 0x4
bl sub_80310E4
_080313D0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_803136C
thumb_func_start sub_80313D8
sub_80313D8:
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
movs r0, 0
str r0, [sp]
bl sub_8030768
ldr r4, _08031418
ldr r0, [r4]
adds r0, 0x8
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0x58
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08031408
ldr r0, [r4]
adds r0, 0x58
mov r1, sp
bl sub_8013114
_08031408:
ldr r0, [sp]
cmp r0, 0x2
beq _08031428
cmp r0, 0x2
bgt _0803141C
cmp r0, 0x1
beq _08031420
b _0803148E
.align 2, 0
_08031418: .4byte gUnknown_203B328
_0803141C:
cmp r0, 0x3
bne _0803148E
_08031420:
movs r0, 0
bl sub_80310E4
b _0803148E
_08031428:
cmp r5, 0x2
beq _08031432
cmp r5, 0x3
beq _0803143C
b _0803145A
_08031432:
ldr r0, [r4]
ldrb r0, [r0, 0x4]
bl sub_8095240
b _0803145A
_0803143C:
ldr r4, _08031480
movs r3, 0
movs r1, 0
movs r2, 0x1F
_08031444:
ldr r0, [r4]
adds r0, r1
strb r3, [r0]
ldr r0, [r4]
adds r0, r1
adds r0, 0x22
strb r3, [r0]
adds r1, 0x30
subs r2, 0x1
cmp r2, 0
bge _08031444
_0803145A:
ldr r0, _08031484
ldr r0, [r0]
movs r1, 0x8C
lsls r1, 1
adds r0, r1
ldr r0, [r0]
cmp r0, 0x2
beq _0803146E
cmp r0, 0x4
bne _0803148E
_0803146E:
bl sub_8030C20
lsls r0, 24
cmp r0, 0
beq _08031488
movs r0, 0x5
bl sub_80310E4
b _0803148E
.align 2, 0
_08031480: .4byte gUnknown_203B480
_08031484: .4byte gUnknown_203B328
_08031488:
movs r0, 0
bl sub_80310E4
_0803148E:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80313D8
thumb_func_start sub_8031498
sub_8031498:
push {lr}
bl sub_8030DA0
cmp r0, 0x1
bls _080314B0
cmp r0, 0x3
bhi _080314B0
bl sub_8030DE4
movs r0, 0
bl sub_80310E4
_080314B0:
pop {r0}
bx r0
thumb_func_end sub_8031498
thumb_func_start sub_80314B4
sub_80314B4:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r6, _08031534
movs r0, 0x18
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
ldr r0, _08031538
adds r1, r5, 0
bl sub_808D8E0
adds r0, r5, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _0803153C
bl strcpy
ldr r0, [r6]
movs r4, 0
str r4, [r0, 0x8]
str r4, [r0, 0xC]
cmp r5, 0
beq _0803151E
adds r0, r5, 0
bl sub_808DDD0
ldr r1, [r6]
str r0, [r1, 0x8]
strb r4, [r1, 0x14]
ldr r0, [r6]
strb r4, [r0, 0x15]
ldr r0, [r6]
strb r4, [r0, 0x16]
ldr r1, [r6]
movs r0, 0x2
strh r0, [r1, 0x10]
movs r0, 0x8
strh r0, [r1, 0x12]
ldr r0, [r1, 0x8]
cmp r0, 0
beq _0803151E
ldr r0, [r0, 0x4]
str r0, [r1, 0xC]
_0803151E:
ldr r0, _08031534
ldr r1, [r0]
movs r0, 0
str r0, [r1, 0x4]
movs r0, 0x1
bl sub_80317C0
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08031534: .4byte gUnknown_203B32C
_08031538: .4byte gUnknown_202E5D8
_0803153C: .4byte gUnknown_202DF98
thumb_func_end sub_80314B4
thumb_func_start sub_8031540
sub_8031540:
push {lr}
ldr r0, _08031558
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x9
bhi _080315BA
lsls r0, 2
ldr r1, _0803155C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08031558: .4byte gUnknown_203B32C
_0803155C: .4byte _08031560
.align 2, 0
_08031560:
.4byte _080315AC
.4byte _08031588
.4byte _08031588
.4byte _0803158E
.4byte _08031594
.4byte _0803159A
.4byte _080315A0
.4byte _080315A6
.4byte _080315B0
.4byte _080315B6
_08031588:
bl sub_80317D8
b _080315BA
_0803158E:
bl sub_8031848
b _080315BA
_08031594:
bl sub_8031864
b _080315BA
_0803159A:
bl sub_80318D0
b _080315BA
_080315A0:
bl sub_80318EC
b _080315BA
_080315A6:
bl sub_803192C
b _080315BA
_080315AC:
movs r0, 0x3
b _080315BC
_080315B0:
bl sub_8031948
b _080315BA
_080315B6:
bl sub_8031988
_080315BA:
movs r0, 0
_080315BC:
pop {r1}
bx r1
thumb_func_end sub_8031540
thumb_func_start sub_80315C0
sub_80315C0:
push {r4,lr}
ldr r4, _080315E4
ldr r0, [r4]
cmp r0, 0
beq _080315DE
ldr r0, [r0, 0x8]
cmp r0, 0
beq _080315D4
bl CloseFile
_080315D4:
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080315DE:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080315E4: .4byte gUnknown_203B32C
thumb_func_end sub_80315C0
thumb_func_start nullsub_39
nullsub_39:
bx lr
thumb_func_end nullsub_39
thumb_func_start sub_80315EC
sub_80315EC:
push {r4,r5,lr}
sub sp, 0x14
movs r5, 0
ldr r0, _08031618
ldr r2, [r0]
ldr r1, [r2, 0x8]
adds r3, r0, 0
cmp r1, 0
beq _08031602
adds r5, r2, 0
adds r5, 0x8
_08031602:
ldrb r0, [r2]
subs r0, 0x1
cmp r0, 0x8
bls _0803160C
b _080317B0
_0803160C:
lsls r0, 2
ldr r1, _0803161C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08031618: .4byte gUnknown_203B32C
_0803161C: .4byte _08031620
.align 2, 0
_08031620:
.4byte _08031700
.4byte _08031714
.4byte _08031728
.4byte _08031758
.4byte _08031780
.4byte _08031694
.4byte _080316A8
.4byte _08031644
.4byte _08031658
_08031644:
ldr r0, _08031650
ldr r1, [r3]
ldr r2, [r1, 0x4]
ldr r3, _08031654
b _08031760
.align 2, 0
_08031650: .4byte gUnknown_80E0C4C
_08031654: .4byte gUnknown_80E0BD4
_08031658:
ldr r0, [r3]
ldr r0, [r0, 0x4]
cmp r0, 0x10
beq _0803167C
cmp r0, 0x10
bgt _0803166A
cmp r0, 0xF
beq _08031674
b _080317B0
_0803166A:
cmp r0, 0x11
beq _08031684
cmp r0, 0x12
beq _0803168C
b _080317B0
_08031674:
ldr r0, _08031678
b _08031790
.align 2, 0
_08031678: .4byte gUnknown_80E0C70
_0803167C:
ldr r0, _08031680
b _08031790
.align 2, 0
_08031680: .4byte gUnknown_80E0DD0
_08031684:
ldr r0, _08031688
b _08031790
.align 2, 0
_08031688: .4byte gUnknown_80E0ED8
_0803168C:
ldr r0, _08031690
b _08031790
.align 2, 0
_08031690: .4byte gUnknown_80E10C8
_08031694:
ldr r0, _080316A0
ldr r1, [r3]
ldr r2, [r1, 0x4]
ldr r3, _080316A4
b _08031760
.align 2, 0
_080316A0: .4byte gUnknown_80E0C4C
_080316A4: .4byte gUnknown_80E0B3C
_080316A8:
ldr r0, [r3]
ldr r0, [r0, 0x4]
subs r0, 0xA
cmp r0, 0x4
bls _080316B4
b _080317B0
_080316B4:
lsls r0, 2
ldr r1, _080316C0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080316C0: .4byte _080316C4
.align 2, 0
_080316C4:
.4byte _080316D8
.4byte _080316E0
.4byte _080316F0
.4byte _080316E8
.4byte _080316F8
_080316D8:
ldr r0, _080316DC
b _08031790
.align 2, 0
_080316DC: .4byte gUnknown_80E120C
_080316E0:
ldr r0, _080316E4
b _08031790
.align 2, 0
_080316E4: .4byte gUnknown_80E136C
_080316E8:
ldr r0, _080316EC
b _08031790
.align 2, 0
_080316EC: .4byte gUnknown_80E1420
_080316F0:
ldr r0, _080316F4
b _08031790
.align 2, 0
_080316F4: .4byte gUnknown_80E157C
_080316F8:
ldr r0, _080316FC
b _08031790
.align 2, 0
_080316FC: .4byte gUnknown_80E169C
_08031700:
ldr r0, _0803170C
ldr r1, [r3]
ldr r2, [r1, 0x4]
ldr r3, _08031710
b _08031760
.align 2, 0
_0803170C: .4byte gUnknown_80E17C8
_08031710: .4byte gUnknown_80E0A48
_08031714:
ldr r0, _08031720
ldr r1, [r3]
ldr r2, [r1, 0x4]
ldr r3, _08031724
b _08031760
.align 2, 0
_08031720: .4byte gUnknown_80E183C
_08031724: .4byte gUnknown_80E0A48
_08031728:
ldr r0, [r3]
ldr r0, [r0, 0x4]
cmp r0, 0x1
beq _08031748
cmp r0, 0x1
bgt _0803173A
cmp r0, 0
beq _08031740
b _080317B0
_0803173A:
cmp r0, 0x2
beq _08031750
b _080317B0
_08031740:
ldr r0, _08031744
b _08031790
.align 2, 0
_08031744: .4byte gUnknown_80E1868
_08031748:
ldr r0, _0803174C
b _08031790
.align 2, 0
_0803174C: .4byte gUnknown_80E1A30
_08031750:
ldr r0, _08031754
b _08031790
.align 2, 0
_08031754: .4byte gUnknown_80E1AD8
_08031758:
ldr r0, _08031778
ldr r1, [r3]
ldr r2, [r1, 0x4]
ldr r3, _0803177C
_08031760:
movs r4, 0
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r5, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _080317B0
.align 2, 0
_08031778: .4byte gUnknown_80E0C4C
_0803177C: .4byte gUnknown_80E0ABC
_08031780:
ldr r0, [r3]
ldr r0, [r0, 0x4]
cmp r0, 0x6
beq _0803178E
cmp r0, 0x9
beq _080317A4
b _080317B0
_0803178E:
ldr r0, _0803179C
_08031790:
ldr r3, _080317A0
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
b _080317B0
.align 2, 0
_0803179C: .4byte gUnknown_80E1B88
_080317A0: .4byte 0x0000010d
_080317A4:
ldr r0, _080317B8
ldr r3, _080317BC
movs r1, 0
adds r2, r5, 0
bl sub_80141B4
_080317B0:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080317B8: .4byte gUnknown_80E1D84
_080317BC: .4byte 0x0000010d
thumb_func_end sub_80315EC
thumb_func_start sub_80317C0
sub_80317C0:
push {lr}
ldr r1, _080317D4
ldr r1, [r1]
strb r0, [r1]
bl nullsub_39
bl sub_80315EC
pop {r0}
bx r0
.align 2, 0
_080317D4: .4byte gUnknown_203B32C
thumb_func_end sub_80317C0
thumb_func_start sub_80317D8
sub_80317D8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803183C
ldr r2, [sp]
cmp r2, 0x5
bhi _0803183C
lsls r0, r2, 2
ldr r1, _080317F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080317F8: .4byte _080317FC
.align 2, 0
_080317FC:
.4byte _08031830
.4byte _08031830
.4byte _08031830
.4byte _0803181C
.4byte _08031814
.4byte _08031814
_08031814:
movs r0, 0
bl sub_80317C0
b _0803183C
_0803181C:
ldr r0, _0803182C
ldr r0, [r0]
str r2, [r0, 0x4]
movs r0, 0x4
bl sub_80317C0
b _0803183C
.align 2, 0
_0803182C: .4byte gUnknown_203B32C
_08031830:
ldr r0, _08031844
ldr r0, [r0]
str r2, [r0, 0x4]
movs r0, 0x3
bl sub_80317C0
_0803183C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08031844: .4byte gUnknown_203B32C
thumb_func_end sub_80317D8
thumb_func_start sub_8031848
sub_8031848:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803185C
movs r0, 0x2
bl sub_80317C0
_0803185C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8031848
thumb_func_start sub_8031864
sub_8031864:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080318C4
ldr r0, [sp]
subs r1, r0, 0x5
adds r2, r0, 0
cmp r1, 0x4
bhi _080318C4
lsls r0, r1, 2
ldr r1, _08031888
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08031888: .4byte _0803188C
.align 2, 0
_0803188C:
.4byte _080318A0
.4byte _080318B8
.4byte _080318A8
.4byte _080318B0
.4byte _080318B8
_080318A0:
movs r0, 0x2
bl sub_80317C0
b _080318C4
_080318A8:
movs r0, 0x6
bl sub_80317C0
b _080318C4
_080318B0:
movs r0, 0x8
bl sub_80317C0
b _080318C4
_080318B8:
ldr r0, _080318CC
ldr r0, [r0]
str r2, [r0, 0x4]
movs r0, 0x5
bl sub_80317C0
_080318C4:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080318CC: .4byte gUnknown_203B32C
thumb_func_end sub_8031864
thumb_func_start sub_80318D0
sub_80318D0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080318E4
movs r0, 0x4
bl sub_80317C0
_080318E4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80318D0
thumb_func_start sub_80318EC
sub_80318EC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08031920
ldr r1, [sp]
cmp r1, 0x5
bne _08031908
movs r0, 0x4
bl sub_80317C0
b _08031920
_08031908:
cmp r1, 0x5
blt _08031920
cmp r1, 0xE
bgt _08031920
cmp r1, 0xA
blt _08031920
ldr r0, _08031928
ldr r0, [r0]
str r1, [r0, 0x4]
movs r0, 0x7
bl sub_80317C0
_08031920:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08031928: .4byte gUnknown_203B32C
thumb_func_end sub_80318EC
thumb_func_start sub_803192C
sub_803192C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08031940
movs r0, 0x6
bl sub_80317C0
_08031940:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_803192C
thumb_func_start sub_8031948
sub_8031948:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803197C
ldr r1, [sp]
cmp r1, 0x5
bne _08031964
movs r0, 0x4
bl sub_80317C0
b _0803197C
_08031964:
cmp r1, 0x5
blt _0803197C
cmp r1, 0x12
bgt _0803197C
cmp r1, 0xF
blt _0803197C
ldr r0, _08031984
ldr r0, [r0]
str r1, [r0, 0x4]
movs r0, 0x9
bl sub_80317C0
_0803197C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08031984: .4byte gUnknown_203B32C
thumb_func_end sub_8031948
thumb_func_start sub_8031988
sub_8031988:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803199C
movs r0, 0x8
bl sub_80317C0
_0803199C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8031988
thumb_func_start sub_80319A4
sub_80319A4:
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r4, r0, 0
adds r5, r1, 0
mov r8, r2
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
ldr r6, _080319F4
movs r0, 0x78
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
strb r4, [r0, 0xC]
ldr r0, [r6]
strb r5, [r0, 0xD]
ldr r0, [r6]
bl sub_801317C
ldr r1, [r6]
mov r0, r8
str r0, [r1, 0x10]
lsls r0, 1
add r0, r8
lsls r0, 3
adds r0, 0x18
adds r0, r1, r0
str r0, [r1, 0x14]
bl sub_8031A2C
movs r0, 0x1
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080319F4: .4byte gUnknown_203B330
thumb_func_end sub_80319A4
thumb_func_start sub_80319F8
sub_80319F8:
push {lr}
ldr r0, _08031A18
ldr r0, [r0]
ldr r1, [r0, 0x10]
bl sub_8012A64
cmp r0, 0x1
beq _08031A1C
cmp r0, 0x2
bne _08031A26
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08031A28
.align 2, 0
_08031A18: .4byte gUnknown_203B330
_08031A1C:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08031A28
_08031A26:
movs r0, 0
_08031A28:
pop {r1}
bx r1
thumb_func_end sub_80319F8
thumb_func_start sub_8031A2C
sub_8031A2C:
push {lr}
bl sub_8031A84
bl sub_8031AE8
pop {r0}
bx r0
thumb_func_end sub_8031A2C
thumb_func_start sub_8031A3C
sub_8031A3C:
push {r4,r5,lr}
ldr r4, _08031A7C
ldr r2, [r4]
cmp r2, 0
beq _08031A76
ldr r0, [r2, 0x10]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x18
ldr r0, _08031A80
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08031A76:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08031A7C: .4byte gUnknown_203B330
_08031A80: .4byte gUnknown_80E1EFC
thumb_func_end sub_8031A3C
thumb_func_start sub_8031A84
sub_8031A84:
push {r4,r5,lr}
ldr r4, _08031AE0
ldr r0, [r4]
adds r0, 0x18
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x10]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x18
ldr r0, _08031AE4
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r1, [r4]
ldrb r0, [r1, 0xC]
cmp r0, 0x2
bne _08031AC6
ldrb r0, [r1, 0xD]
bl sub_80969D0
adds r1, r0, 0
cmp r1, 0
bne _08031ABE
movs r1, 0x1
_08031ABE:
ldr r0, [r4]
ldr r0, [r0, 0x14]
bl sub_8012D08
_08031AC6:
bl sub_8004914
ldr r0, _08031AE0
ldr r0, [r0]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08031AE0: .4byte gUnknown_203B330
_08031AE4: .4byte gUnknown_80E1F18
thumb_func_end sub_8031A84
thumb_func_start sub_8031AE8
sub_8031AE8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xDC
ldr r7, _08031B24
ldr r0, [r7]
ldr r0, [r0, 0x10]
bl sub_80073B8
ldr r2, _08031B28
ldr r0, [r7]
ldr r3, [r0, 0x10]
movs r6, 0
str r6, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r1, [r7]
ldrb r0, [r1, 0xC]
cmp r0, 0x1
beq _08031B2C
cmp r0, 0x1
bgt _08031B1E
b _08031CD4
_08031B1E:
cmp r0, 0x2
beq _08031B94
b _08031CD4
.align 2, 0
_08031B24: .4byte gUnknown_203B330
_08031B28: .4byte gUnknown_80E1F30
_08031B2C:
add r4, sp, 0x68
adds r0, r4, 0
bl sub_8099394
ldrb r0, [r4]
bl sub_8095228
adds r5, r0, 0
ldr r0, [r7]
ldr r3, [r0, 0x10]
movs r0, 0xA
movs r1, 0x10
movs r2, 0x3
bl sub_803B6B0
ldr r1, _08031B8C
ldrb r2, [r5, 0x5]
add r0, sp, 0x4
bl sub_800D158
ldr r0, [r7]
ldr r3, [r0, 0x10]
str r6, [sp]
movs r0, 0x15
movs r1, 0x10
add r2, sp, 0x4
bl xxx_call_draw_string
ldr r4, _08031B90
movs r1, 0xC
ldrsh r0, [r5, r1]
bl sub_808D994
adds r2, r0, 0
add r0, sp, 0x4
adds r1, r4, 0
bl sub_800D158
ldr r0, [r7]
ldr r3, [r0, 0x10]
str r6, [sp]
movs r0, 0x28
movs r1, 0x10
add r2, sp, 0x4
bl xxx_call_draw_string
b _08031D4E
.align 2, 0
_08031B8C: .4byte gUnknown_80E1F3C
_08031B90: .4byte gUnknown_80E1F40
_08031B94:
ldrb r0, [r1, 0xD]
bl sub_80969D0
adds r1, r0, 0
cmp r1, 0
bne _08031BB0
ldr r2, _08031BAC
ldr r0, [r7]
ldr r3, [r0, 0x10]
str r1, [sp]
b _08031D2C
.align 2, 0
_08031BAC: .4byte gUnknown_80E1F54
_08031BB0:
movs r6, 0x10
movs r2, 0
mov r10, r2
mov r8, r2
ldr r0, _08031C28
mov r9, r0
mov r1, sp
adds r1, 0x6C
str r1, [sp, 0xD8]
_08031BC2:
mov r2, r10
lsls r0, r2, 24
lsrs r0, 24
bl sub_8096AB4
adds r4, r0, 0
ldr r1, [r7]
ldrb r0, [r4, 0x4]
ldrb r2, [r1, 0xD]
cmp r0, r2
bne _08031CC2
ldrb r0, [r4]
cmp r0, 0
beq _08031CC2
cmp r0, 0x5
beq _08031CC2
cmp r0, 0x7
beq _08031CC2
ldr r3, [r1, 0x10]
movs r0, 0xA
adds r1, r6, 0
movs r2, 0x3
bl sub_803B6B0
ldrb r0, [r4, 0x1]
add r5, sp, 0x6C
cmp r0, 0x3
beq _08031C16
ldrb r2, [r4, 0x5]
ldr r0, [sp, 0xD8]
ldr r1, _08031C2C
bl sub_800D158
ldr r0, [r7]
ldr r3, [r0, 0x10]
mov r0, r8
str r0, [sp]
movs r0, 0x15
adds r1, r6, 0
ldr r2, [sp, 0xD8]
bl xxx_call_draw_string
_08031C16:
ldrb r0, [r4, 0x1]
cmp r0, 0x3
beq _08031C58
cmp r0, 0x3
bgt _08031C30
cmp r0, 0x2
beq _08031C70
b _08031C9C
.align 2, 0
_08031C28: .4byte gUnknown_202DE58
_08031C2C: .4byte gUnknown_80E1F3C
_08031C30:
cmp r0, 0x4
bne _08031C9C
ldrb r1, [r4, 0x10]
mov r0, r9
movs r2, 0
bl sub_8090DC4
adds r0, r5, 0
ldr r1, _08031C54
mov r2, r9
bl sub_800D158
ldr r0, [r7]
ldr r3, [r0, 0x10]
mov r1, r8
str r1, [sp]
b _08031C8A
.align 2, 0
_08031C54: .4byte gUnknown_80E1F60
_08031C58:
ldrb r1, [r4, 0x10]
mov r0, r9
movs r2, 0
bl sub_8090DC4
adds r0, r5, 0
ldr r1, _08031C6C
mov r2, r9
b _08031C7E
.align 2, 0
_08031C6C: .4byte gUnknown_80E1F70
_08031C70:
movs r1, 0xE
ldrsh r0, [r4, r1]
bl sub_808D994
adds r2, r0, 0
adds r0, r5, 0
ldr r1, _08031C98
_08031C7E:
bl sub_800D158
ldr r0, [r7]
ldr r3, [r0, 0x10]
mov r2, r8
str r2, [sp]
_08031C8A:
movs r0, 0x28
adds r1, r6, 0
adds r2, r5, 0
bl xxx_call_draw_string
b _08031CC0
.align 2, 0
_08031C98: .4byte gUnknown_80E1F80
_08031C9C:
movs r1, 0xE
ldrsh r0, [r4, r1]
bl sub_808D994
adds r2, r0, 0
adds r0, r5, 0
ldr r1, _08031CD0
bl sub_800D158
ldr r0, [r7]
ldr r3, [r0, 0x10]
mov r2, r8
str r2, [sp]
movs r0, 0x28
adds r1, r6, 0
adds r2, r5, 0
bl xxx_call_draw_string
_08031CC0:
adds r6, 0xC
_08031CC2:
movs r0, 0x1
add r10, r0
mov r1, r10
cmp r1, 0x7
bgt _08031CCE
b _08031BC2
_08031CCE:
b _08031D4E
.align 2, 0
_08031CD0: .4byte gUnknown_80E1F40
_08031CD4:
add r0, sp, 0xD0
mov r4, sp
adds r4, 0xD2
adds r1, r4, 0
bl sub_80992E0
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _08031D04
movs r2, 0
ldrsh r0, [r4, r2]
bl sub_80974C4
adds r2, r0, 0
ldr r0, _08031D00
ldr r0, [r0]
ldr r3, [r0, 0x10]
movs r0, 0
str r0, [sp]
b _08031D2C
.align 2, 0
_08031D00: .4byte gUnknown_203B330
_08031D04:
add r4, sp, 0xD4
adds r0, r4, 0
bl sub_8099360
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _08031D3C
ldrb r0, [r4]
bl sub_80A2688
lsls r0, 16
asrs r0, 16
bl sub_80975DC
adds r2, r0, 0
ldr r0, _08031D38
ldr r0, [r0]
ldr r3, [r0, 0x10]
str r5, [sp]
_08031D2C:
movs r0, 0xA
movs r1, 0x10
bl xxx_call_draw_string
b _08031D4E
.align 2, 0
_08031D38: .4byte gUnknown_203B330
_08031D3C:
ldr r2, _08031D68
ldr r0, _08031D6C
ldr r0, [r0]
ldr r3, [r0, 0x10]
str r1, [sp]
movs r0, 0xA
movs r1, 0x10
bl xxx_call_draw_string
_08031D4E:
ldr r0, _08031D6C
ldr r0, [r0]
ldr r0, [r0, 0x10]
bl sub_80073E0
add sp, 0xDC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08031D68: .4byte gUnknown_80E1F94
_08031D6C: .4byte gUnknown_203B330
thumb_func_end sub_8031AE8
thumb_func_start sub_8031D70
sub_8031D70:
push {r4-r6,lr}
adds r6, r0, 0
adds r4, r1, 0
ldr r5, _08031DC4
movs r0, 0x7C
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
stm r0!, {r6}
bl sub_801317C
ldr r0, [r5]
str r4, [r0, 0x10]
lsls r1, r4, 1
adds r1, r4
lsls r1, 3
adds r1, 0x18
adds r1, r0, r1
str r1, [r0, 0x14]
adds r0, 0x18
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x10]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x18
ldr r0, _08031DC8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
bl sub_8031E00
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08031DC4: .4byte gUnknown_203B334
_08031DC8: .4byte gUnknown_80E1FC4
thumb_func_end sub_8031D70
thumb_func_start sub_8031DCC
sub_8031DCC:
push {lr}
ldr r0, _08031DEC
ldr r1, [r0]
adds r0, r1, 0x4
ldr r1, [r1, 0x10]
bl sub_8012A64
cmp r0, 0x1
beq _08031DF0
cmp r0, 0x2
bne _08031DFA
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08031DFC
.align 2, 0
_08031DEC: .4byte gUnknown_203B334
_08031DF0:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08031DFC
_08031DFA:
movs r0, 0
_08031DFC:
pop {r1}
bx r1
thumb_func_end sub_8031DCC
thumb_func_start sub_8031E00
sub_8031E00:
push {lr}
bl sub_8031E58
bl sub_8031E74
pop {r0}
bx r0
thumb_func_end sub_8031E00
thumb_func_start sub_8031E10
sub_8031E10:
push {r4,r5,lr}
ldr r4, _08031E50
ldr r2, [r4]
cmp r2, 0
beq _08031E4A
ldr r0, [r2, 0x10]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x18
ldr r0, _08031E54
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08031E4A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08031E50: .4byte gUnknown_203B334
_08031E54: .4byte gUnknown_80E1FA8
thumb_func_end sub_8031E10
thumb_func_start sub_8031E58
sub_8031E58:
push {lr}
bl sub_8004914
ldr r0, _08031E70
ldr r0, [r0]
adds r0, 0x18
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r0}
bx r0
.align 2, 0
_08031E70: .4byte gUnknown_203B334
thumb_func_end sub_8031E58
thumb_func_start sub_8031E74
sub_8031E74:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x3C
ldr r3, _08031EC0
ldr r5, _08031EC4
ldr r2, [r5]
ldr r1, [r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 4
ldr r4, [r3]
adds r4, r0
ldr r0, [r2, 0x10]
bl sub_80073B8
ldr r2, _08031EC8
ldr r0, [r5]
ldr r3, [r0, 0x10]
movs r0, 0
str r0, [sp]
movs r0, 0x14
movs r1, 0
bl xxx_call_draw_string
add r0, sp, 0x4
adds r1, r4, 0
bl sub_803D2C0
movs r7, 0
mov r8, r5
_08031EB2:
cmp r7, 0x4
ble _08031ED0
cmp r7, 0xC
bgt _08031ECC
movs r6, 0x6
movs r5, 0x16
b _08031F00
.align 2, 0
_08031EC0: .4byte gUnknown_203B480
_08031EC4: .4byte gUnknown_203B334
_08031EC8: .4byte gUnknown_80E1FDC
_08031ECC:
cmp r7, 0x11
bgt _08031ED6
_08031ED0:
movs r6, 0x7
movs r5, 0x15
b _08031F00
_08031ED6:
cmp r7, 0x16
ble _08031EE8
cmp r7, 0x1E
bgt _08031EE4
movs r6, 0x6
movs r5, 0x25
b _08031F00
_08031EE4:
cmp r7, 0x23
bgt _08031EEE
_08031EE8:
movs r6, 0x7
movs r5, 0x24
b _08031F00
_08031EEE:
cmp r7, 0x28
ble _08031EFC
cmp r7, 0x30
bgt _08031EFC
movs r6, 0x6
movs r5, 0x34
b _08031F00
_08031EFC:
movs r6, 0x7
movs r5, 0x33
_08031F00:
adds r0, r7, 0
movs r1, 0x12
bl __modsi3
movs r1, 0xB
adds r4, r0, 0
muls r4, r1
adds r4, 0x6
mov r0, sp
adds r0, r7
adds r0, 0x4
ldrb r2, [r0]
mov r1, r8
ldr r0, [r1]
ldr r0, [r0, 0x10]
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
adds r3, r6, 0
bl sub_8012C60
mov r1, r8
ldr r0, [r1]
ldr r0, [r0, 0x10]
adds r2, r5, 0
adds r2, 0xA
movs r1, 0x5
str r1, [sp]
adds r1, r4, 0
movs r3, 0xA
bl sub_80078A4
adds r7, 0x1
cmp r7, 0x35
ble _08031EB2
ldr r0, _08031F5C
ldr r0, [r0]
ldr r0, [r0, 0x10]
bl sub_80073E0
add sp, 0x3C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08031F5C: .4byte gUnknown_203B334
thumb_func_end sub_8031E74
thumb_func_start sub_8031F60
sub_8031F60:
push {r4-r6,lr}
adds r5, r0, 0
ldr r4, _08031FD0
movs r0, 0xA0
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
str r5, [r0, 0x34]
lsls r1, r5, 1
adds r1, r5
lsls r1, 3
adds r1, 0x3C
adds r1, r0, r1
str r1, [r0, 0x38]
adds r0, 0x3C
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _08031FD4
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r4]
ldr r1, [r0, 0x38]
adds r0, 0x9C
str r0, [r1, 0x14]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x20
movs r2, 0x8
adds r3, r5, 0
bl sub_8013818
bl sub_8032084
bl sub_80320F8
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08031FD0: .4byte gUnknown_203B338
_08031FD4: .4byte gUnknown_80E2008
thumb_func_end sub_8031F60
thumb_func_start sub_8031FD8
sub_8031FD8:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _08031FF0
ldr r0, _08031FEC
ldr r0, [r0]
bl sub_8013660
movs r0, 0
b _08032034
.align 2, 0
_08031FEC: .4byte gUnknown_203B338
_08031FF0:
ldr r4, _0803200C
ldr r0, [r4]
bl GetKeyPress
cmp r0, 0x1
beq _08032010
cmp r0, 0x2
bne _0803201A
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _08032034
.align 2, 0
_0803200C: .4byte gUnknown_203B338
_08032010:
movs r0, 0
bl sub_80119D4
movs r0, 0x3
b _08032034
_0803201A:
ldr r0, [r4]
bl sub_8013938
lsls r0, 24
cmp r0, 0
bne _0803202A
movs r0, 0
b _08032034
_0803202A:
bl sub_8032084
bl sub_80320F8
movs r0, 0x1
_08032034:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8031FD8
thumb_func_start sub_803203C
sub_803203C:
push {r4,r5,lr}
ldr r4, _0803207C
ldr r2, [r4]
cmp r2, 0
beq _08032076
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _08032080
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08032076:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803207C: .4byte gUnknown_203B338
_08032080: .4byte gUnknown_80E1FF0
thumb_func_end sub_803203C
thumb_func_start sub_8032084
sub_8032084:
push {r4,lr}
ldr r4, _080320F4
ldr r0, [r4]
ldrh r1, [r0, 0x20]
adds r0, 0x9C
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
ldrh r1, [r0, 0x1E]
adds r0, 0x9D
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9E
movs r1, 0xB
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9F
strb r2, [r0]
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x34]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x34]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x4C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080320F4: .4byte gUnknown_203B338
thumb_func_end sub_8032084
thumb_func_start sub_80320F8
sub_80320F8:
push {r4-r7,lr}
sub sp, 0x8
ldr r5, _08032158
ldr r0, [r5]
ldr r0, [r0, 0x34]
bl sub_8008C54
ldr r0, [r5]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r0, [r5]
movs r1, 0x1E
ldrsh r4, [r0, r1]
lsls r4, 3
adds r6, r4, 0
adds r6, 0xA
ldr r2, _0803215C
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
adds r0, r6, 0
movs r1, 0
bl xxx_call_draw_string
adds r4, 0x4
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x9E
ldrb r0, [r0]
lsls r0, 3
adds r6, r4, r0
movs r0, 0x1E
ldrsh r2, [r1, r0]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r1, 0x34]
str r0, [sp, 0x4]
adds r0, r6, 0
movs r1, 0
movs r3, 0x1
bl sub_8012BC4
movs r7, 0
ldr r0, [r5]
b _0803223A
.align 2, 0
_08032158: .4byte gUnknown_203B338
_0803215C: .4byte gUnknown_80E2020
_08032160:
ldr r5, _08032194
ldr r0, [r5]
movs r2, 0x1E
ldrsh r1, [r0, r2]
movs r2, 0x1C
ldrsh r0, [r0, r2]
muls r0, r1
adds r0, r7
lsls r0, 24
lsrs r6, r0, 24
adds r0, r6, 0
bl sub_8097710
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _0803221C
subs r0, r6, 0x7
cmp r0, 0x5
bhi _080321EC
lsls r0, 2
ldr r1, _08032198
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08032194: .4byte gUnknown_203B338
_08032198: .4byte _0803219C
.align 2, 0
_0803219C:
.4byte _080321BA
.4byte _080321C6
.4byte _080321D4
.4byte _080321E0
.4byte _080321C0
.4byte _080321B4
_080321B4:
bl sub_80978B8
b _080321E4
_080321BA:
bl sub_8097880
b _080321E4
_080321C0:
bl sub_8097838
b _080321E4
_080321C6:
bl sub_80977B8
ldr r1, _080321D0
b _080321EA
.align 2, 0
_080321D0: .4byte gUnknown_202DE30
_080321D4:
bl sub_80977F8
ldr r1, _080321DC
b _080321EA
.align 2, 0
_080321DC: .4byte gUnknown_202DE30
_080321E0:
bl sub_8097870
_080321E4:
ldr r1, _08032214
lsls r0, 16
asrs r0, 16
_080321EA:
str r0, [r1]
_080321EC:
ldr r4, _08032218
ldr r0, [r4]
adds r1, r7, 0
bl sub_8013800
adds r5, r0, 0
adds r0, r6, 0
bl sub_8097738
adds r2, r0, 0
ldr r0, [r4]
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
movs r0, 0x8
adds r1, r5, 0
bl sub_8014FF0
b _08032234
.align 2, 0
_08032214: .4byte gUnknown_202DE30
_08032218: .4byte gUnknown_203B338
_0803221C:
ldr r0, [r5]
adds r1, r7, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, _08032254
ldr r0, [r5]
ldr r3, [r0, 0x34]
str r4, [sp]
movs r0, 0x8
bl xxx_call_draw_string
_08032234:
adds r7, 0x1
ldr r0, _08032258
ldr r0, [r0]
_0803223A:
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r7, r0
blt _08032160
ldr r0, _08032258
ldr r0, [r0]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08032254: .4byte gUnknown_80E2030
_08032258: .4byte gUnknown_203B338
thumb_func_end sub_80320F8
thumb_func_start sub_803225C
sub_803225C:
push {r4,r5,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08032300
movs r4, 0xAD
lsls r4, 3
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
ldr r1, [r5]
movs r0, 0xA6
lsls r0, 3
adds r2, r1, r0
movs r0, 0
str r0, [r2]
movs r2, 0x86
lsls r2, 2
adds r1, r2
movs r0, 0xFF
strb r0, [r1]
ldr r0, [r5]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r1, _08032304
strh r1, [r0]
ldr r0, _08032308
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _0803230C
bl strcpy
movs r1, 0
movs r2, 0
adds r4, r5, 0
_080322C6:
ldr r0, [r5]
adds r0, 0x8
adds r0, r1
strb r2, [r0]
adds r1, 0x1
cmp r1, 0x35
ble _080322C6
ldr r1, [r4]
movs r0, 0x7E
str r0, [r1, 0x4]
bl sub_8039880
ldr r1, [r4]
ldr r2, _08032310
adds r1, r2
strb r0, [r1]
ldr r0, [r4]
adds r2, r0, r2
ldrb r1, [r2]
ldr r2, _08032314
adds r0, r2
strb r1, [r0]
movs r0, 0
bl sub_80338C4
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08032300: .4byte gUnknown_203B33C
_08032304: .4byte 0x0000ffff
_08032308: .4byte gUnknown_202E5D8
_0803230C: .4byte gUnknown_202DF98
_08032310: .4byte 0x0000052c
_08032314: .4byte 0x0000052d
thumb_func_end sub_803225C
thumb_func_start sub_8032318
sub_8032318:
push {lr}
ldr r0, _08032330
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x7D
bls _08032326
b _080327DC
_08032326:
lsls r0, 2
ldr r1, _08032334
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08032330: .4byte gUnknown_203B33C
_08032334: .4byte _08032338
.align 2, 0
_08032338:
.4byte _080326A6
.4byte _080326A6
.4byte _080326AC
.4byte _0803255A
.4byte _0803255A
.4byte _0803266C
.4byte _08032672
.4byte _08032678
.4byte _0803267E
.4byte _08032684
.4byte _0803268A
.4byte _08032690
.4byte _08032690
.4byte _08032698
.4byte _080326A0
.4byte _080327CE
.4byte _080327CE
.4byte _0803262C
.4byte _08032634
.4byte _0803263A
.4byte _08032640
.4byte _08032646
.4byte _0803264C
.4byte _08032652
.4byte _08032764
.4byte _08032658
.4byte _08032660
.4byte _08032666
.4byte _08032612
.4byte _08032626
.4byte _0803261A
.4byte _08032620
.4byte _0803260C
.4byte _080325CE
.4byte _080327CE
.4byte _080325C6
.4byte _080325BA
.4byte _080325A0
.4byte _080325A8
.4byte _080325AE
.4byte _080325B4
.4byte _080325C0
.4byte _0803258C
.4byte _0803259A
.4byte _08032594
.4byte _0803257E
.4byte _08032586
.4byte _08032764
.4byte _080327CE
.4byte _080325D4
.4byte _080325DC
.4byte _080325E2
.4byte _080325E8
.4byte _080325EE
.4byte _080327DC
.4byte _080325FA
.4byte _080325F4
.4byte _08032600
.4byte _08032606
.4byte _08032764
.4byte _080327CE
.4byte _08032560
.4byte _08032566
.4byte _0803256C
.4byte _08032572
.4byte _08032578
.4byte _08032764
.4byte _08032658
.4byte _080327CE
.4byte _080327CE
.4byte _08032794
.4byte _0803279C
.4byte _080327A2
.4byte _080327A8
.4byte _080327AE
.4byte _080327B4
.4byte _080327BA
.4byte _080327C0
.4byte _080327C0
.4byte _080327C8
.4byte _08032722
.4byte _080327D6
.4byte _0803278E
.4byte _08032780
.4byte _08032788
.4byte _0803277A
.4byte _08032774
.4byte _0803276C
.4byte _08032752
.4byte _08032764
.4byte _080326BC
.4byte _080326C2
.4byte _080326D6
.4byte _080326CA
.4byte _080326D0
.4byte _080326DC
.4byte _080326E2
.4byte _080326E8
.4byte _08032730
.4byte _08032744
.4byte _0803273E
.4byte _08032738
.4byte _080326F4
.4byte _080326FC
.4byte _080326EE
.4byte _0803274C
.4byte _080326B0
.4byte _080326B6
.4byte _08032764
.4byte _08032722
.4byte _0803272A
.4byte _08032744
.4byte _0803271C
.4byte _08032716
.4byte _08032708
.4byte _08032710
.4byte _08032702
.4byte _08032758
.4byte _0803275E
.4byte _08032764
.4byte _08032530
.4byte _08032536
.4byte _0803253E
.4byte _08032544
.4byte _0803254C
.4byte _08032552
_08032530:
bl sub_8035300
b _080327DC
_08032536:
movs r0, 0x78
bl sub_8035404
b _080327DC
_0803253E:
bl sub_8035374
b _080327DC
_08032544:
movs r0, 0x7A
bl sub_8035404
b _080327DC
_0803254C:
bl sub_80353BC
b _080327DC
_08032552:
movs r0, 0x7C
bl sub_8035404
b _080327DC
_0803255A:
bl sub_8033A2C
b _080327DC
_08032560:
bl sub_803477C
b _080327DC
_08032566:
bl sub_80347AC
b _080327DC
_0803256C:
bl sub_80347C8
b _080327DC
_08032572:
bl sub_80347E4
b _080327DC
_08032578:
bl sub_8034804
b _080327DC
_0803257E:
movs r0, 0x2E
bl sub_8035404
b _080327DC
_08032586:
bl sub_80344C0
b _080327DC
_0803258C:
movs r0, 0xD
bl sub_8035404
b _080327DC
_08032594:
bl sub_8034478
b _080327DC
_0803259A:
bl sub_80344A0
b _080327DC
_080325A0:
movs r0, 0x26
bl sub_8035404
b _080327DC
_080325A8:
bl sub_803418C
b _080327DC
_080325AE:
bl sub_8034254
b _080327DC
_080325B4:
bl sub_8034310
b _080327DC
_080325BA:
bl sub_8034378
b _080327DC
_080325C0:
bl sub_80343C4
b _080327DC
_080325C6:
movs r0, 0x21
bl sub_8035404
b _080327DC
_080325CE:
bl sub_8034404
b _080327DC
_080325D4:
movs r0, 0x32
bl sub_8035404
b _080327DC
_080325DC:
bl sub_8034500
b _080327DC
_080325E2:
bl sub_8034590
b _080327DC
_080325E8:
bl sub_803464C
b _080327DC
_080325EE:
bl sub_80346A8
b _080327DC
_080325F4:
bl sub_80346D8
b _080327DC
_080325FA:
bl sub_8034700
b _080327DC
_08032600:
bl sub_8034720
b _080327DC
_08032606:
bl sub_803473C
b _080327DC
_0803260C:
bl sub_8033FB4
b _080327DC
_08032612:
movs r0, 0x1D
bl sub_8035404
b _080327DC
_0803261A:
bl sub_8034074
b _080327DC
_08032620:
bl sub_8034130
b _080327DC
_08032626:
bl sub_8033FE4
b _080327DC
_0803262C:
movs r0, 0x12
bl sub_8035404
b _080327DC
_08032634:
bl nullsub_42
b _080327DC
_0803263A:
bl nullsub_43
b _080327DC
_08032640:
bl nullsub_44
b _080327DC
_08032646:
bl nullsub_45
b _080327DC
_0803264C:
bl sub_8033D74
b _080327DC
_08032652:
bl sub_8033D94
b _080327DC
_08032658:
movs r0, 0x1A
bl sub_8035404
b _080327DC
_08032660:
bl sub_8033DBC
b _080327DC
_08032666:
bl sub_8033F64
b _080327DC
_0803266C:
bl sub_8033C54
b _080327DC
_08032672:
bl nullsub_41
b _080327DC
_08032678:
bl sub_8033CAC
b _080327DC
_0803267E:
bl sub_8033D48
b _080327DC
_08032684:
bl sub_8035424
b _080327DC
_0803268A:
bl nullsub_50
b _080327DC
_08032690:
movs r0, 0x6
bl sub_8035404
b _080327DC
_08032698:
movs r0, 0x7
bl sub_8035404
b _080327DC
_080326A0:
bl sub_8033B8C
b _080327DC
_080326A6:
bl sub_80339C8
b _080327DC
_080326AC:
movs r0, 0x3
b _080327DE
_080326B0:
bl sub_80348C4
b _080327DC
_080326B6:
bl sub_803482C
b _080327DC
_080326BC:
bl sub_80349B0
b _080327DC
_080326C2:
movs r0, 0x5C
bl sub_8035404
b _080327DC
_080326CA:
bl sub_8034A70
b _080327DC
_080326D0:
bl sub_8034B2C
b _080327DC
_080326D6:
bl sub_80349E0
b _080327DC
_080326DC:
bl sub_8034B88
b _080327DC
_080326E2:
bl sub_8034C98
b _080327DC
_080326E8:
bl sub_8034C38
b _080327DC
_080326EE:
bl sub_8034D54
b _080327DC
_080326F4:
movs r0, 0x67
bl sub_8035404
b _080327DC
_080326FC:
bl sub_8034970
b _080327DC
_08032702:
bl sub_80351E0
b _080327DC
_08032708:
movs r0, 0x73
bl sub_8035404
b _080327DC
_08032710:
bl sub_8034D74
b _080327DC
_08032716:
bl sub_8034EF0
b _080327DC
_0803271C:
bl sub_8034F38
b _080327DC
_08032722:
movs r0, 0x6E
bl sub_8035404
b _080327DC
_0803272A:
bl sub_80352A4
b _080327DC
_08032730:
movs r0, 0x6A
bl sub_8035404
b _080327DC
_08032738:
bl sub_8034EC8
b _080327DC
_0803273E:
bl sub_8034F18
b _080327DC
_08032744:
movs r0, 0x62
bl sub_8035404
b _080327DC
_0803274C:
bl sub_8034F58
b _080327DC
_08032752:
bl sub_8034F88
b _080327DC
_08032758:
bl sub_8035018
b _080327DC
_0803275E:
bl sub_8035038
b _080327DC
_08032764:
movs r0, 0x2
bl sub_8035404
b _080327DC
_0803276C:
movs r0, 0x5F
bl sub_8035404
b _080327DC
_08032774:
bl sub_8035094
b _080327DC
_0803277A:
bl sub_80350F4
b _080327DC
_08032780:
movs r0, 0x54
bl sub_8035404
b _080327DC
_08032788:
bl sub_803517C
b _080327DC
_0803278E:
bl sub_8035210
b _080327DC
_08032794:
movs r0, 0x47
bl sub_8035404
b _080327DC
_0803279C:
bl nullsub_46
b _080327DC
_080327A2:
bl nullsub_47
b _080327DC
_080327A8:
bl nullsub_48
b _080327DC
_080327AE:
bl nullsub_49
b _080327DC
_080327B4:
bl sub_8035430
b _080327DC
_080327BA:
bl nullsub_51
b _080327DC
_080327C0:
movs r0, 0x4F
bl sub_8035404
b _080327DC
_080327C8:
bl sub_8034848
b _080327DC
_080327CE:
movs r0, 0x1
bl sub_8035404
b _080327DC
_080327D6:
movs r0, 0x1
bl sub_8035404
_080327DC:
movs r0, 0
_080327DE:
pop {r1}
bx r1
thumb_func_end sub_8032318
thumb_func_start sub_80327E4
sub_80327E4:
push {r4,lr}
ldr r4, _08032820
ldr r0, [r4]
cmp r0, 0
beq _0803281A
bl MemoryFree
movs r0, 0
str r0, [r4]
bl sub_803084C
bl sub_8031E10
bl sub_8023C60
bl sub_80155F0
bl sub_801CBB8
bl sub_802F2C0
bl sub_8030DE4
bl sub_802453C
bl sub_801B450
_0803281A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08032820: .4byte gUnknown_203B33C
thumb_func_end sub_80327E4
thumb_func_start nullsub_40
nullsub_40:
bx lr
thumb_func_end nullsub_40
thumb_func_start sub_8032828
sub_8032828:
push {r4-r6,lr}
sub sp, 0x68
ldr r1, _08032848
ldr r0, [r1]
ldr r0, [r0]
adds r6, r1, 0
cmp r0, 0x7D
bls _0803283C
bl _080338B4
_0803283C:
lsls r0, 2
ldr r1, _0803284C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08032848: .4byte gUnknown_203B33C
_0803284C: .4byte _08032850
.align 2, 0
_08032850:
.4byte _08032A48
.4byte _08032AD0
.4byte _080338B4
.4byte _08032B80
.4byte _08032BC4
.4byte _08032FD0
.4byte _080338B4
.4byte _08032FF0
.4byte _080338B4
.4byte _080338B4
.4byte _08032FD8
.4byte _08032FE0
.4byte _08032FE8
.4byte _0803356C
.4byte _08032C50
.4byte _08033200
.4byte _080331CC
.4byte _080331D4
.4byte _080331DC
.4byte _080336B2
.4byte _080338B4
.4byte _080331F8
.4byte _08033208
.4byte _080338B4
.4byte _08033234
.4byte _0803323C
.4byte _08033244
.4byte _080338B4
.4byte _08032F8C
.4byte _08032F98
.4byte _080336B2
.4byte _080338B4
.4byte _08032FB6
.4byte _08032EB8
.4byte _08032FC4
.4byte _08032EAC
.4byte _08032F54
.4byte _08032EE0
.4byte _08032EEC
.4byte _08032F16
.4byte _080338B4
.4byte _08032F7C
.4byte _08032E60
.4byte _08032E6C
.4byte _08032EA0
.4byte _08032E48
.4byte _0803341C
.4byte _08032E54
.4byte _08032D84
.4byte _08032D90
.4byte _08032D9C
.4byte _080336B2
.4byte _080338B4
.4byte _08032DBC
.4byte _080338B4
.4byte _08032DCC
.4byte _08032E00
.4byte _08032E3C
.4byte _08032E0C
.4byte _08032E30
.4byte _08032D04
.4byte _08032D10
.4byte _08032D2C
.4byte _08032D38
.4byte _08032D44
.4byte _080338B4
.4byte _08032D78
.4byte _08032D20
.4byte _08033720
.4byte _08033728
.4byte _08033684
.4byte _0803368C
.4byte _080336B2
.4byte _080338B4
.4byte _080336F8
.4byte _080338B4
.4byte _08032FD8
.4byte _08032FE0
.4byte _08032FE8
.4byte _080338B4
.4byte _08033468
.4byte _08033730
.4byte _08033738
.4byte _0803366C
.4byte _08033674
.4byte _08033644
.4byte _0803361C
.4byte _08033614
.4byte _080335F4
.4byte _080335C0
.4byte _0803324E
.4byte _0803325C
.4byte _0803368C
.4byte _08033264
.4byte _080338B4
.4byte _08033288
.4byte _080332B8
.4byte _080338B4
.4byte _0803356C
.4byte _080335B0
.4byte _08033584
.4byte _080338B4
.4byte _08033412
.4byte _0803341C
.4byte _08033448
.4byte _080335B8
.4byte _080332F4
.4byte _080338B4
.4byte _08033460
.4byte _08033470
.4byte _0803349C
.4byte _08033450
.4byte _08033458
.4byte _080338B4
.4byte _080333E4
.4byte _080333EC
.4byte _080338B4
.4byte _08033604
.4byte _0803360C
.4byte _080338B4
.4byte _0803384C
.4byte _0803387C
.4byte _080337D4
.4byte _080337F0
.4byte _08033770
.4byte _0803378C
_08032A48:
movs r0, 0x1
bl sub_8095324
cmp r0, 0
bne _08032A9C
movs r0, 0x5
bl sub_8095324
adds r4, r0, 0
cmp r4, 0
bne _08032A9C
ldr r0, _08032A7C
ldr r0, [r0]
ldr r1, _08032A80
adds r0, r1
ldrb r2, [r0]
cmp r2, 0
beq _08032A8C
ldr r0, _08032A84
ldr r3, _08032A88
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
b _08032B66
.align 2, 0
_08032A7C: .4byte gUnknown_203B33C
_08032A80: .4byte 0x0000052c
_08032A84: .4byte gUnknown_80E25F4
_08032A88: .4byte gUnknown_80E2108
_08032A8C:
ldr r0, _08032A94
ldr r3, _08032A98
b _08032B5C
.align 2, 0
_08032A94: .4byte gUnknown_80E25F4
_08032A98: .4byte gUnknown_80E20B8
_08032A9C:
ldr r0, _08032AC0
ldr r0, [r0]
ldr r2, _08032AC4
adds r0, r2
ldrb r2, [r0]
cmp r2, 0
beq _08032B58
ldr r0, _08032AC8
ldr r3, _08032ACC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
bl _08033864
.align 2, 0
_08032AC0: .4byte gUnknown_203B33C
_08032AC4: .4byte 0x0000052c
_08032AC8: .4byte gUnknown_80E25F4
_08032ACC: .4byte gUnknown_80E20E0
_08032AD0:
movs r0, 0x1
bl sub_8095324
cmp r0, 0
bne _08032B24
movs r0, 0x5
bl sub_8095324
adds r4, r0, 0
cmp r4, 0
bne _08032B24
ldr r0, _08032B04
ldr r0, [r0]
ldr r3, _08032B08
adds r0, r3
ldrb r2, [r0]
cmp r2, 0
beq _08032B14
ldr r0, _08032B0C
ldr r3, _08032B10
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
b _08032B66
.align 2, 0
_08032B04: .4byte gUnknown_203B33C
_08032B08: .4byte 0x0000052c
_08032B0C: .4byte gUnknown_80E25F4
_08032B10: .4byte gUnknown_80E2108
_08032B14:
ldr r0, _08032B1C
ldr r3, _08032B20
b _08032B5C
.align 2, 0
_08032B1C: .4byte gUnknown_80E25F4
_08032B20: .4byte gUnknown_80E20B8
_08032B24:
ldr r0, _08032B48
ldr r0, [r0]
ldr r4, _08032B4C
adds r0, r4
ldrb r2, [r0]
cmp r2, 0
beq _08032B58
ldr r0, _08032B50
ldr r3, _08032B54
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
bl _08033864
.align 2, 0
_08032B48: .4byte gUnknown_203B33C
_08032B4C: .4byte 0x0000052c
_08032B50: .4byte gUnknown_80E25F4
_08032B54: .4byte gUnknown_80E20E0
_08032B58:
ldr r0, _08032B78
ldr r3, _08032B7C
_08032B5C:
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
_08032B66:
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0
bl sub_8014248
bl _080338B4
.align 2, 0
_08032B78: .4byte gUnknown_80E25F4
_08032B7C: .4byte gUnknown_80E2068
_08032B80:
movs r0, 0x4
bl sub_8095324
adds r2, r0, 0
cmp r2, 0
beq _08032B9C
ldr r0, _08032B94
ldr r3, _08032B98
movs r2, 0
b _08032BA0
.align 2, 0
_08032B94: .4byte gUnknown_80E25F4
_08032B98: .4byte gUnknown_80E2130
_08032B9C:
ldr r0, _08032BBC
ldr r3, _08032BC0
_08032BA0:
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
bl _080338B4
.align 2, 0
_08032BBC: .4byte gUnknown_80E25F4
_08032BC0: .4byte gUnknown_80E2190
_08032BC4:
movs r0, 0x1
bl sub_8095324
adds r4, r0, 0
cmp r4, 0
bne _08032C0C
movs r0, 0x5
bl sub_8095324
cmp r0, 0
bne _08032BF4
ldr r0, _08032BEC
ldr r3, _08032BF0
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
b _08032C38
.align 2, 0
_08032BEC: .4byte gUnknown_80E25F4
_08032BF0: .4byte gUnknown_80E2268
_08032BF4:
ldr r0, _08032C04
ldr r3, _08032C08
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
b _08032C38
.align 2, 0
_08032C04: .4byte gUnknown_80E25F4
_08032C08: .4byte gUnknown_80E2218
_08032C0C:
movs r0, 0x5
bl sub_8095324
adds r2, r0, 0
cmp r2, 0
bne _08032C28
ldr r0, _08032C20
ldr r3, _08032C24
b _08032C2E
.align 2, 0
_08032C20: .4byte gUnknown_80E25F4
_08032C24: .4byte gUnknown_80E2240
_08032C28:
ldr r0, _08032C48
ldr r3, _08032C4C
movs r2, 0
_08032C2E:
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
_08032C38:
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x11
bl sub_8014248
bl _080338B4
.align 2, 0
_08032C48: .4byte gUnknown_80E25F4
_08032C4C: .4byte gUnknown_80E21B8
_08032C50:
ldr r0, [r6]
movs r5, 0xA5
lsls r5, 3
adds r0, r5
ldr r0, [r0]
subs r0, 0x3
cmp r0, 0x11
bls _08032C64
bl _080338B4
_08032C64:
lsls r0, 2
ldr r1, _08032C70
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08032C70: .4byte _08032C74
.align 2, 0
_08032C74:
.4byte _08032CC8
.4byte _08032CD4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _080338B4
.4byte _08032CBC
.4byte _08032CE0
.4byte _08032CEC
.4byte _08032CF8
_08032CBC:
ldr r0, _08032CC4
bl _0803374A
.align 2, 0
_08032CC4: .4byte gUnknown_80E2610
_08032CC8:
ldr r0, _08032CD0
bl _0803374A
.align 2, 0
_08032CD0: .4byte gUnknown_80E2640
_08032CD4:
ldr r0, _08032CDC
bl _0803374A
.align 2, 0
_08032CDC: .4byte gUnknown_80E2680
_08032CE0:
ldr r0, _08032CE8
bl _0803374A
.align 2, 0
_08032CE8: .4byte gUnknown_80E26B0
_08032CEC:
ldr r0, _08032CF4
bl _0803374A
.align 2, 0
_08032CF4: .4byte gUnknown_80E26F0
_08032CF8:
ldr r0, _08032D00
bl _0803374A
.align 2, 0
_08032D00: .4byte gUnknown_80E2728
_08032D04:
ldr r0, _08032D0C
bl _0803388E
.align 2, 0
_08032D0C: .4byte gUnknown_80E276C
_08032D10:
ldr r0, _08032D18
ldr r3, _08032D1C
bl _080336FC
.align 2, 0
_08032D18: .4byte gUnknown_80E27A4
_08032D1C: .4byte gUnknown_80E2458
_08032D20:
ldr r0, _08032D28
bl _0803388E
.align 2, 0
_08032D28: .4byte gUnknown_80E2814
_08032D2C:
ldr r0, _08032D34
bl _0803388E
.align 2, 0
_08032D34: .4byte gUnknown_80E2840
_08032D38:
ldr r0, _08032D40
bl _0803388E
.align 2, 0
_08032D40: .4byte gUnknown_80E2874
_08032D44:
ldr r0, [r6]
ldr r1, _08032D60
adds r0, r1
ldr r0, [r0]
cmp r0, 0xC
bne _08032D54
bl _080338B4
_08032D54:
cmp r0, 0xC
bhi _08032D64
cmp r0, 0xB
beq _08032D6C
bl _080338B4
.align 2, 0
_08032D60: .4byte 0x00000524
_08032D64:
cmp r0, 0xE
bls _08032D6C
bl _080338B4
_08032D6C:
ldr r0, _08032D74
bl _0803388E
.align 2, 0
_08032D74: .4byte gUnknown_80E2898
_08032D78:
ldr r0, _08032D80
bl _0803388E
.align 2, 0
_08032D80: .4byte gUnknown_80E28D8
_08032D84:
ldr r0, _08032D8C
bl _0803388E
.align 2, 0
_08032D8C: .4byte gUnknown_80E2904
_08032D90:
ldr r0, _08032D98
bl _0803388E
.align 2, 0
_08032D98: .4byte gUnknown_80E296C
_08032D9C:
bl sub_8030894
cmp r0, 0
beq _08032DA8
bl _080338B4
_08032DA8:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl _080336A6
_08032DBC:
ldr r0, _08032DC4
ldr r3, _08032DC8
bl _080336FC
.align 2, 0
_08032DC4: .4byte gUnknown_80E29A0
_08032DC8: .4byte gUnknown_80E22B4
_08032DCC:
ldr r0, [r6]
ldr r2, _08032DE8
adds r0, r2
ldr r0, [r0]
cmp r0, 0xC
bne _08032DDC
bl _080338B4
_08032DDC:
cmp r0, 0xC
bhi _08032DEC
cmp r0, 0xB
beq _08032DF4
bl _080338B4
.align 2, 0
_08032DE8: .4byte 0x00000524
_08032DEC:
cmp r0, 0xE
bls _08032DF4
bl _080338B4
_08032DF4:
ldr r0, _08032DFC
bl _0803388E
.align 2, 0
_08032DFC: .4byte gUnknown_80E29D0
_08032E00:
ldr r0, _08032E08
bl _0803388E
.align 2, 0
_08032E08: .4byte gUnknown_80E2A0C
_08032E0C:
ldr r0, [r6]
movs r3, 0xEF
lsls r3, 2
adds r0, r3
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r6]
movs r4, 0x86
lsls r4, 2
adds r0, r4
b _0803343E
_08032E30:
ldr r0, _08032E38
bl _0803388E
.align 2, 0
_08032E38: .4byte gUnknown_80E2A1C
_08032E3C:
ldr r0, _08032E44
bl _0803388E
.align 2, 0
_08032E44: .4byte gUnknown_80E2A5C
_08032E48:
ldr r0, _08032E50
bl _0803388E
.align 2, 0
_08032E50: .4byte gUnknown_80E2A80
_08032E54:
ldr r0, _08032E5C
bl _0803388E
.align 2, 0
_08032E5C: .4byte gUnknown_80E2AA8
_08032E60:
ldr r0, _08032E68
bl _0803388E
.align 2, 0
_08032E68: .4byte gUnknown_80E2AE4
_08032E6C:
ldr r0, [r6]
ldr r2, _08032E88
adds r0, r2
ldr r0, [r0]
cmp r0, 0xC
bne _08032E7C
bl _080338B4
_08032E7C:
cmp r0, 0xC
bhi _08032E8C
cmp r0, 0xB
beq _08032E94
bl _080338B4
.align 2, 0
_08032E88: .4byte 0x00000524
_08032E8C:
cmp r0, 0xE
bls _08032E94
bl _080338B4
_08032E94:
ldr r0, _08032E9C
bl _0803388E
.align 2, 0
_08032E9C: .4byte gUnknown_80E2B54
_08032EA0:
ldr r0, _08032EA8
bl _0803388E
.align 2, 0
_08032EA8: .4byte gUnknown_80E2A0C
_08032EAC:
ldr r0, _08032EB4
bl _0803388E
.align 2, 0
_08032EB4: .4byte gUnknown_80E2B90
_08032EB8:
ldr r0, _08032ED8
ldr r3, _08032EDC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xF
bl sub_8014248
bl _080338B4
.align 2, 0
_08032ED8: .4byte gUnknown_80E2BE0
_08032EDC: .4byte gUnknown_80E23A8
_08032EE0:
ldr r0, _08032EE8
bl _0803388E
.align 2, 0
_08032EE8: .4byte gUnknown_80E2C48
_08032EEC:
bl sub_8023CE8
cmp r0, 0
beq _08032EF8
bl sub_8023C60
_08032EF8:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x3
movs r1, 0
movs r2, 0
movs r3, 0x9
bl sub_8023868
bl _080338B4
_08032F16:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _08032F4C
ldr r2, _08032F50
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_8023DA4
bl _080336E2
.align 2, 0
_08032F4C: .4byte gUnknown_80E2334
_08032F50: .4byte gUnknown_80E234C
_08032F54:
ldr r0, _08032F74
ldr r3, _08032F78
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x10
bl sub_8014248
bl _080338B4
.align 2, 0
_08032F74: .4byte gUnknown_80E2C94
_08032F78: .4byte gUnknown_80E22F0
_08032F7C:
ldr r0, _08032F84
ldr r3, _08032F88
bl _080336FC
.align 2, 0
_08032F84: .4byte gUnknown_80E2CD4
_08032F88: .4byte gUnknown_80E22D0
_08032F8C:
ldr r0, _08032F94
bl _0803388E
.align 2, 0
_08032F94: .4byte gUnknown_80E2CE8
_08032F98:
bl sub_8030894
cmp r0, 0
beq _08032FA4
bl _080338B4
_08032FA4:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x4
b _080336A6
_08032FB6:
ldr r0, _08032FBC
ldr r3, _08032FC0
b _080336FC
.align 2, 0
_08032FBC: .4byte gUnknown_80E2D30
_08032FC0: .4byte gUnknown_80E22B4
_08032FC4:
ldr r0, _08032FCC
bl _0803388E
.align 2, 0
_08032FCC: .4byte gUnknown_80E2D60
_08032FD0:
ldr r0, _08032FD4
b _080336FA
.align 2, 0
_08032FD4: .4byte gUnknown_80E2D7C
_08032FD8:
ldr r0, _08032FDC
b _080336FA
.align 2, 0
_08032FDC: .4byte gUnknown_80E2E20
_08032FE0:
ldr r0, _08032FE4
b _08033574
.align 2, 0
_08032FE4: .4byte gUnknown_80E2E54
_08032FE8:
ldr r0, _08032FEC
b _08033574
.align 2, 0
_08032FEC: .4byte gUnknown_80E2EB4
_08032FF0:
ldr r1, [r6]
movs r0, 0
str r0, [r1, 0x44]
bl sub_8011830
ldr r0, [r6]
ldr r0, [r0, 0x40]
bl sub_8037B28
adds r4, r0, 0
ldr r0, [r6]
str r4, [r0, 0x44]
cmp r4, 0
beq _0803300E
b _080333DE
_0803300E:
ldr r1, [r0, 0x40]
cmp r1, 0x3
beq _08033028
cmp r1, 0x3
bhi _0803301E
cmp r1, 0x2
beq _0803304A
b _0803313C
_0803301E:
cmp r1, 0x4
beq _080330B4
cmp r1, 0x5
beq _0803308E
b _0803313C
_08033028:
adds r0, 0x48
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
adds r0, 0x78
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0x48
adds r2, 0x78
b _08033134
_0803304A:
adds r0, 0x48
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
adds r0, 0x78
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r3, 0x86
lsls r3, 2
adds r0, r3
ldrb r0, [r0]
bl sub_8095228
ldr r1, [r6]
adds r1, 0x48
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0x48
adds r2, 0x78
b _08033134
_0803308E:
adds r0, 0xA8
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r0, [r6]
movs r4, 0x98
lsls r4, 1
adds r0, r4
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0xA8
adds r2, r4
b _08033134
_080330B4:
adds r0, 0xA8
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r0, [r6]
movs r5, 0x98
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x88
bl MemoryFill8
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0xE0
strh r4, [r0]
movs r2, 0xB4
lsls r2, 1
adds r0, r1, r2
strh r4, [r0]
movs r3, 0x86
lsls r3, 2
adds r0, r1, r3
ldrb r0, [r0]
bl sub_8095228
ldr r1, [r6]
adds r1, 0xA8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r6]
movs r4, 0xA7
lsls r4, 3
adds r3, r2, r4
movs r0, 0
ldrsh r1, [r3, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0803312A
adds r0, r2, 0
adds r0, 0xD8
ldr r1, _08033188
ldr r1, [r1]
movs r2, 0
ldrsh r3, [r3, r2]
movs r2, 0x58
muls r2, r3
adds r1, r2
movs r2, 0x58
bl memcpy
_0803312A:
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r1, r2, 0
adds r1, 0xA8
adds r2, r5
_08033134:
bl sub_8037D64
ldr r1, [r6]
str r0, [r1, 0x44]
_0803313C:
ldr r4, _0803318C
ldr r2, [r4]
ldr r0, [r2, 0x44]
cmp r0, 0
beq _08033148
b _080333DE
_08033148:
ldr r0, [r2, 0x40]
cmp r0, 0x2
bcs _08033150
b _080333DE
_08033150:
cmp r0, 0x3
bls _08033190
cmp r0, 0x5
bls _0803315A
b _080333DE
_0803315A:
adds r1, r2, 0
adds r1, 0xA8
movs r3, 0x98
lsls r3, 1
adds r2, r3
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x44]
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _080331C0
ldr r0, [r4]
movs r4, 0x84
lsls r4, 3
adds r1, r0, r4
movs r5, 0xA0
lsls r5, 1
adds r0, r5
b _080333DA
.align 2, 0
_08033188: .4byte gUnknown_203B45C
_0803318C: .4byte gUnknown_203B33C
_08033190:
adds r1, r2, 0
adds r1, 0x48
adds r2, 0x78
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x44]
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _080331B4
ldr r0, [r4]
movs r2, 0x84
lsls r2, 3
adds r1, r0, r2
adds r0, 0x88
b _080333DA
_080331B4:
ldr r0, [r4]
movs r3, 0x84
lsls r3, 3
adds r1, r0, r3
ldr r0, [r0, 0x58]
b _080333DC
_080331C0:
ldr r0, [r4]
movs r4, 0x84
lsls r4, 3
adds r1, r0, r4
adds r0, 0xB8
b _080333DA
_080331CC:
ldr r0, _080331D0
b _0803388E
.align 2, 0
_080331D0: .4byte gUnknown_80E2F14
_080331D4:
ldr r0, _080331D8
b _0803388E
.align 2, 0
_080331D8: .4byte gUnknown_80E2F44
_080331DC:
bl sub_8030894
cmp r0, 0
beq _080331E6
b _080338B4
_080331E6:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
b _080336A6
_080331F8:
ldr r0, _080331FC
b _080336FA
.align 2, 0
_080331FC: .4byte gUnknown_80E2F78
_08033200:
ldr r0, _08033204
b _0803388E
.align 2, 0
_08033204: .4byte gUnknown_80E2FA0
_08033208:
ldr r0, [r6]
ldr r5, _08033220
adds r0, r5
ldr r0, [r0]
cmp r0, 0xC
bne _08033216
b _080338B4
_08033216:
cmp r0, 0xC
bhi _08033224
cmp r0, 0xB
beq _0803322A
b _080338B4
.align 2, 0
_08033220: .4byte 0x00000524
_08033224:
cmp r0, 0xE
bls _0803322A
b _080338B4
_0803322A:
ldr r0, _08033230
b _0803388E
.align 2, 0
_08033230: .4byte gUnknown_80E2FEC
_08033234:
ldr r0, _08033238
b _0803388E
.align 2, 0
_08033238: .4byte gUnknown_80E3030
_0803323C:
ldr r0, _08033240
b _0803388E
.align 2, 0
_08033240: .4byte gUnknown_80E3078
_08033244:
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
b _080333F4
_0803324E:
ldr r0, _08033254
ldr r3, _08033258
b _080336FC
.align 2, 0
_08033254: .4byte gUnknown_80E30A4
_08033258: .4byte gUnknown_80E2458
_0803325C:
ldr r0, _08033260
b _0803388E
.align 2, 0
_08033260: .4byte gUnknown_80E30D0
_08033264:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _08033280
ldr r2, _08033284
b _080336CC
.align 2, 0
_08033280: .4byte gUnknown_80E231C
_08033284: .4byte gUnknown_80E2408
_08033288:
bl sub_801D008
cmp r0, 0
beq _08033292
b _080338B4
_08033292:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, _080332B4
str r0, [sp, 0x64]
add r2, sp, 0x64
movs r0, 0
movs r1, 0x1
movs r3, 0x9
bl sub_801C8C4
b _080338B4
.align 2, 0
_080332B4: .4byte 0x00020003
_080332B8:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _080332EC
ldr r2, _080332F0
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_801CCD8
b _080336E2
.align 2, 0
_080332EC: .4byte gUnknown_80E23F0
_080332F0: .4byte gUnknown_80E2408
_080332F4:
ldr r1, [r6]
movs r0, 0
str r0, [r1, 0x44]
bl sub_8011830
ldr r0, [r6]
ldr r0, [r0, 0x40]
bl sub_8037B28
ldr r1, [r6]
str r0, [r1, 0x44]
cmp r0, 0
bne _080333DE
ldr r0, [r1, 0x40]
cmp r0, 0x6
beq _0803331A
cmp r0, 0x7
beq _08033358
b _08033388
_0803331A:
movs r4, 0xDC
lsls r4, 1
adds r0, r1, r4
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r2, 0x86
lsls r2, 2
adds r0, r2
ldrb r0, [r0]
bl sub_8095228
ldr r1, [r6]
adds r1, r4
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r4, r2, r4
movs r3, 0xF4
lsls r3, 1
adds r2, r3
b _0803337E
_08033358:
movs r4, 0xDC
lsls r4, 1
adds r0, r1, r4
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r5, 0xF4
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r2, [r6]
ldr r0, [r2, 0x40]
adds r4, r2, r4
adds r2, r5
_0803337E:
adds r1, r4, 0
bl sub_8037D64
ldr r1, [r6]
str r0, [r1, 0x44]
_08033388:
ldr r4, _080333C8
ldr r2, [r4]
ldr r0, [r2, 0x44]
cmp r0, 0
bne _080333DE
ldr r0, [r2, 0x40]
cmp r0, 0x7
bhi _080333DE
cmp r0, 0x6
bcc _080333DE
movs r5, 0xDC
lsls r5, 1
adds r1, r2, r5
movs r3, 0xF4
lsls r3, 1
adds r2, r3
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x44]
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _080333CC
ldr r0, [r4]
movs r4, 0x84
lsls r4, 3
adds r1, r0, r4
adds r5, 0x40
adds r0, r5
b _080333DA
.align 2, 0
_080333C8: .4byte gUnknown_203B33C
_080333CC:
ldr r0, [r4]
movs r2, 0x84
lsls r2, 3
adds r1, r0, r2
movs r3, 0xE4
lsls r3, 1
adds r0, r3
_080333DA:
ldr r0, [r0]
_080333DC:
str r0, [r1]
_080333DE:
bl sub_8011854
b _080338B4
_080333E4:
ldr r0, _080333E8
b _0803388E
.align 2, 0
_080333E8: .4byte gUnknown_80E311C
_080333EC:
ldr r0, [r6]
movs r4, 0xEF
lsls r4, 2
adds r0, r4
_080333F4:
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r6]
adds r1, 0x8
movs r0, 0x4
bl sub_80151C0
b _080338B4
_08033412:
ldr r0, _08033418
b _0803388E
.align 2, 0
_08033418: .4byte gUnknown_80E314C
_0803341C:
ldr r0, [r6]
movs r5, 0xEF
lsls r5, 2
adds r0, r5
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r6]
movs r1, 0x86
lsls r1, 2
adds r0, r1
_0803343E:
ldrb r0, [r0]
movs r1, 0
bl sub_8031D70
b _080338B4
_08033448:
ldr r0, _0803344C
b _0803388E
.align 2, 0
_0803344C: .4byte gUnknown_80E317C
_08033450:
ldr r0, _08033454
b _0803388E
.align 2, 0
_08033454: .4byte gUnknown_80E319C
_08033458:
ldr r0, _0803345C
b _0803388E
.align 2, 0
_0803345C: .4byte gUnknown_80E317C
_08033460:
ldr r0, _08033464
b _0803388E
.align 2, 0
_08033464: .4byte gUnknown_80E31D8
_08033468:
ldr r0, _0803346C
b _0803388E
.align 2, 0
_0803346C: .4byte gUnknown_80E31FC
_08033470:
ldr r0, [r6]
ldr r2, _08033488
adds r0, r2
ldr r0, [r0]
cmp r0, 0xC
bne _0803347E
b _080338B4
_0803347E:
cmp r0, 0xC
bhi _0803348C
cmp r0, 0xB
beq _08033492
b _080338B4
.align 2, 0
_08033488: .4byte 0x00000524
_0803348C:
cmp r0, 0xE
bls _08033492
b _080338B4
_08033492:
ldr r0, _08033498
b _0803388E
.align 2, 0
_08033498: .4byte gUnknown_80E3220
_0803349C:
movs r0, 0x98
lsls r0, 1
bl sub_808D994
adds r1, r0, 0
ldr r4, _080334F8
ldr r0, [r4]
ldr r3, _080334FC
adds r0, r3
bl strcpy
ldr r1, [r4]
movs r5, 0xAA
lsls r5, 3
adds r0, r1, r5
movs r2, 0
strh r2, [r0]
ldr r0, _08033500
adds r1, r0
movs r0, 0x2
strb r0, [r1]
ldr r0, [r4]
ldr r3, _08033504
adds r1, r0, r3
str r2, [r1]
movs r5, 0x84
lsls r5, 3
adds r0, r5
ldr r1, [r0]
movs r0, 0x6
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r2, r0, 0
adds r0, 0x22
ldrb r1, [r0]
cmp r1, 0
beq _08033508
ldr r0, [r4]
movs r3, 0xAB
lsls r3, 3
adds r0, r3
b _08033512
.align 2, 0
_080334F8: .4byte gUnknown_203B33C
_080334FC: .4byte 0x0000053c
_08033500: .4byte 0x00000552
_08033504: .4byte 0x00000554
_08033508:
ldr r0, [r4]
movs r4, 0xAB
lsls r4, 3
adds r0, r4
movs r1, 0
_08033512:
strb r1, [r0]
ldr r4, _08033558
ldr r0, [r4]
ldr r5, _0803355C
adds r0, r5
movs r5, 0
movs r1, 0x1
strb r1, [r0]
adds r0, r2, 0x4
movs r1, 0
bl sub_803C200
ldr r1, [r4]
movs r3, 0xAC
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
ldr r0, _08033560
adds r1, r0
strb r5, [r1]
ldr r0, [r4]
ldr r1, _08033564
adds r0, r1
strb r5, [r0]
ldr r0, [r4]
ldr r2, _08033568
adds r0, r2
strb r5, [r0]
ldr r0, [r4]
subs r3, 0x24
adds r0, r3
movs r1, 0
bl sub_802F204
b _080338B4
.align 2, 0
_08033558: .4byte gUnknown_203B33C
_0803355C: .4byte 0x0000055b
_08033560: .4byte 0x00000559
_08033564: .4byte 0x0000055a
_08033568: .4byte 0x0000055c
_0803356C:
movs r0, 0
bl nullsub_23
ldr r0, _08033580
_08033574:
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
b _080338B4
.align 2, 0
_08033580: .4byte gUnknown_80E2DD0
_08033584:
ldr r0, [r6]
ldr r4, _0803359C
adds r0, r4
ldr r0, [r0]
cmp r0, 0xC
bne _08033592
b _080338B4
_08033592:
cmp r0, 0xC
bhi _080335A0
cmp r0, 0xB
beq _080335A6
b _080338B4
.align 2, 0
_0803359C: .4byte 0x00000524
_080335A0:
cmp r0, 0xE
bls _080335A6
b _080338B4
_080335A6:
ldr r0, _080335AC
b _0803388E
.align 2, 0
_080335AC: .4byte gUnknown_80E3248
_080335B0:
ldr r0, _080335B4
b _0803388E
.align 2, 0
_080335B4: .4byte gUnknown_80E3288
_080335B8:
ldr r0, _080335BC
b _080336FA
.align 2, 0
_080335BC: .4byte gUnknown_80E2D7C
_080335C0:
bl sub_808D33C
adds r1, r0, 0
adds r1, 0x4C
add r0, sp, 0x14
movs r2, 0xA
bl sub_80922B4
ldr r5, _080335E8
ldr r0, [r5]
ldr r4, _080335EC
adds r0, r4
ldr r1, _080335F0
add r2, sp, 0x14
bl sub_800D158
ldr r0, [r5]
adds r0, r4
b _0803388E
.align 2, 0
_080335E8: .4byte gUnknown_203B33C
_080335EC: .4byte 0x00000424
_080335F0: .4byte gUnknown_80E32C4
_080335F4:
ldr r0, _080335FC
ldr r3, _08033600
b _080336FC
.align 2, 0
_080335FC: .4byte gUnknown_80E331C
_08033600: .4byte gUnknown_80E24D8
_08033604:
ldr r0, _08033608
b _0803388E
.align 2, 0
_08033608: .4byte gUnknown_80E317C
_0803360C:
ldr r0, _08033610
b _0803388E
.align 2, 0
_08033610: .4byte gUnknown_80E2A0C
_08033614:
ldr r0, _08033618
b _0803388E
.align 2, 0
_08033618: .4byte gUnknown_80E3378
_0803361C:
ldr r0, _0803363C
ldr r3, _08033640
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x16
bl sub_8014248
b _080338B4
.align 2, 0
_0803363C: .4byte gUnknown_80E339C
_08033640: .4byte gUnknown_80E24B0
_08033644:
ldr r0, _08033664
ldr r3, _08033668
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x15
bl sub_8014248
b _080338B4
.align 2, 0
_08033664: .4byte gUnknown_80E33D8
_08033668: .4byte gUnknown_80E2470
_0803366C:
ldr r0, _08033670
b _0803388E
.align 2, 0
_08033670: .4byte gUnknown_80E3430
_08033674:
ldr r0, _0803367C
ldr r3, _08033680
b _080336FC
.align 2, 0
_0803367C: .4byte gUnknown_80E34B0
_08033680: .4byte gUnknown_80E2440
_08033684:
ldr r0, _08033688
b _0803388E
.align 2, 0
_08033688: .4byte gUnknown_80E34F0
_0803368C:
bl sub_8030894
cmp r0, 0
beq _08033696
b _080338B4
_08033696:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x5
_080336A6:
movs r1, 0
movs r2, 0
movs r3, 0x6
bl sub_80306A8
b _080338B4
_080336B2:
ldr r0, [r6]
movs r4, 0xD7
lsls r4, 2
adds r0, r4
bl sub_8006518
ldr r1, [r6]
movs r5, 0x87
lsls r5, 2
adds r0, r1, r5
adds r1, r4
ldr r3, _080336F0
ldr r2, _080336F4
_080336CC:
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_803092C
_080336E2:
ldr r0, [r6]
adds r0, r5
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
b _080338B4
.align 2, 0
_080336F0: .4byte gUnknown_80E231C
_080336F4: .4byte gUnknown_80E234C
_080336F8:
ldr r0, _08033718
_080336FA:
ldr r3, _0803371C
_080336FC:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x6
bl sub_8014248
b _080338B4
.align 2, 0
_08033718: .4byte gUnknown_80E352C
_0803371C: .4byte gUnknown_80E2290
_08033720:
ldr r0, _08033724
b _0803388E
.align 2, 0
_08033724: .4byte gUnknown_80E355C
_08033728:
ldr r0, _0803372C
b _0803388E
.align 2, 0
_0803372C: .4byte gUnknown_80E35AC
_08033730:
ldr r0, _08033734
b _0803388E
.align 2, 0
_08033734: .4byte gUnknown_80E35E8
_08033738:
ldr r0, [r6]
ldr r0, [r0, 0x40]
cmp r0, 0x6
bne _08033748
ldr r0, _08033744
b _0803374A
.align 2, 0
_08033744: .4byte gUnknown_80E360C
_08033748:
ldr r0, _08033768
_0803374A:
ldr r3, _0803376C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xB
bl sub_8014248
b _080338B4
.align 2, 0
_08033768: .4byte gUnknown_80E3644
_0803376C: .4byte gUnknown_80E236C
_08033770:
ldr r0, _08033780
ldr r1, [r6]
ldr r5, _08033784
adds r1, r5
ldr r2, [r1]
ldr r3, _08033788
b _08033858
.align 2, 0
_08033780: .4byte gUnknown_80E367C
_08033784: .4byte 0x00000564
_08033788: .4byte gUnknown_80E25B4
_0803378C:
ldr r0, [r6]
ldr r1, _080337A4
adds r0, r1
ldr r0, [r0]
cmp r0, 0x24
beq _080337BC
cmp r0, 0x24
bgt _080337A8
cmp r0, 0x23
beq _080337B2
b _080338B4
.align 2, 0
_080337A4: .4byte 0x00000564
_080337A8:
cmp r0, 0x25
beq _080337C4
cmp r0, 0x26
beq _080337CC
b _080338B4
_080337B2:
ldr r0, _080337B8
b _0803388E
.align 2, 0
_080337B8: .4byte gUnknown_80E3690
_080337BC:
ldr r0, _080337C0
b _0803388E
.align 2, 0
_080337C0: .4byte gUnknown_80E3818
_080337C4:
ldr r0, _080337C8
b _0803388E
.align 2, 0
_080337C8: .4byte gUnknown_80E3998
_080337CC:
ldr r0, _080337D0
b _0803388E
.align 2, 0
_080337D0: .4byte gUnknown_80E3B1C
_080337D4:
ldr r0, _080337E4
ldr r1, [r6]
ldr r2, _080337E8
adds r1, r2
ldr r2, [r1]
ldr r3, _080337EC
b _08033858
.align 2, 0
_080337E4: .4byte gUnknown_80E367C
_080337E8: .4byte 0x00000564
_080337EC: .4byte gUnknown_80E2554
_080337F0:
ldr r0, [r6]
ldr r3, _08033808
adds r0, r3
ldr r0, [r0]
subs r0, 0x1E
cmp r0, 0x4
bhi _080338B4
lsls r0, 2
ldr r1, _0803380C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08033808: .4byte 0x00000564
_0803380C: .4byte _08033810
.align 2, 0
_08033810:
.4byte _08033824
.4byte _0803382C
.4byte _0803383C
.4byte _08033834
.4byte _08033844
_08033824:
ldr r0, _08033828
b _0803388E
.align 2, 0
_08033828: .4byte gUnknown_80E3BF8
_0803382C:
ldr r0, _08033830
b _0803388E
.align 2, 0
_08033830: .4byte gUnknown_80E3DE4
_08033834:
ldr r0, _08033838
b _0803388E
.align 2, 0
_08033838: .4byte gUnknown_80E3E98
_0803383C:
ldr r0, _08033840
b _0803388E
.align 2, 0
_08033840: .4byte gUnknown_80E4014
_08033844:
ldr r0, _08033848
b _0803388E
.align 2, 0
_08033848: .4byte gUnknown_80E4130
_0803384C:
ldr r0, _08033870
ldr r1, [r6]
ldr r4, _08033874
adds r1, r4
ldr r2, [r1]
ldr r3, _08033878
_08033858:
movs r4, 0
str r4, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r4, [sp, 0x8]
str r4, [sp, 0xC]
_08033864:
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _080338B4
.align 2, 0
_08033870: .4byte gUnknown_80E367C
_08033874: .4byte 0x00000564
_08033878: .4byte gUnknown_80E24F8
_0803387C:
ldr r0, [r6]
ldr r5, _0803389C
adds r0, r5
ldr r0, [r0]
cmp r0, 0x1A
beq _080338A8
cmp r0, 0x1D
bne _080338B4
ldr r0, _080338A0
_0803388E:
ldr r3, _080338A4
movs r1, 0
movs r2, 0
bl sub_80141B4
b _080338B4
.align 2, 0
_0803389C: .4byte 0x00000564
_080338A0: .4byte gUnknown_80E41DC
_080338A4: .4byte 0x00000101
_080338A8:
ldr r0, _080338BC
ldr r3, _080338C0
movs r1, 0
movs r2, 0
bl sub_80141B4
_080338B4:
add sp, 0x68
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080338BC: .4byte gUnknown_80E4314
_080338C0: .4byte 0x00000101
thumb_func_end sub_8032828
thumb_func_start sub_80338C4
sub_80338C4:
push {lr}
ldr r1, _080338D8
ldr r1, [r1]
str r0, [r1]
bl nullsub_40
bl sub_8032828
pop {r0}
bx r0
.align 2, 0
_080338D8: .4byte gUnknown_203B33C
thumb_func_end sub_80338C4
thumb_func_start sub_80338DC
sub_80338DC:
push {lr}
cmp r0, 0x10
bls _080338E4
b _080339BC
_080338E4:
lsls r0, 2
ldr r1, _080338F0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080338F0: .4byte _080338F4
.align 2, 0
_080338F4:
.4byte _080339BC
.4byte _08033998
.4byte _08033940
.4byte _08033938
.4byte _08033948
.4byte _08033998
.4byte _08033950
.4byte _08033958
.4byte _08033960
.4byte _08033968
.4byte _08033970
.4byte _08033978
.4byte _08033980
.4byte _08033990
.4byte _08033998
.4byte _080339B0
.4byte _08033988
_08033938:
ldr r0, _0803393C
b _0803399A
.align 2, 0
_0803393C: .4byte gUnknown_80E44A4
_08033940:
ldr r0, _08033944
b _0803399A
.align 2, 0
_08033944: .4byte gUnknown_80E4500
_08033948:
ldr r0, _0803394C
b _0803399A
.align 2, 0
_0803394C: .4byte gUnknown_80E4550
_08033950:
ldr r0, _08033954
b _0803399A
.align 2, 0
_08033954: .4byte gUnknown_80E45B4
_08033958:
ldr r0, _0803395C
b _0803399A
.align 2, 0
_0803395C: .4byte gUnknown_80E460C
_08033960:
ldr r0, _08033964
b _0803399A
.align 2, 0
_08033964: .4byte gUnknown_80E4650
_08033968:
ldr r0, _0803396C
b _0803399A
.align 2, 0
_0803396C: .4byte gUnknown_80E468C
_08033970:
ldr r0, _08033974
b _0803399A
.align 2, 0
_08033974: .4byte gUnknown_80E46C8
_08033978:
ldr r0, _0803397C
b _0803399A
.align 2, 0
_0803397C: .4byte gUnknown_80E4704
_08033980:
ldr r0, _08033984
b _0803399A
.align 2, 0
_08033984: .4byte gUnknown_80E4744
_08033988:
ldr r0, _0803398C
b _0803399A
.align 2, 0
_0803398C: .4byte gUnknown_80E4788
_08033990:
ldr r0, _08033994
b _0803399A
.align 2, 0
_08033994: .4byte gUnknown_80E47D8
_08033998:
ldr r0, _080339A8
_0803399A:
ldr r3, _080339AC
movs r1, 0
movs r2, 0
bl sub_80141B4
b _080339BC
.align 2, 0
_080339A8: .4byte gUnknown_80E4480
_080339AC: .4byte 0x00000101
_080339B0:
ldr r0, _080339C0
ldr r3, _080339C4
movs r1, 0
movs r2, 0
bl sub_80141B4
_080339BC:
pop {r0}
bx r0
.align 2, 0
_080339C0: .4byte gUnknown_80E482C
_080339C4: .4byte 0x00000101
thumb_func_end sub_80338DC
thumb_func_start sub_80339C8
sub_80339C8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033A24
ldr r0, _080339F4
ldr r0, [r0]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r1, _080339F8
strh r1, [r0]
ldr r0, [sp]
cmp r0, 0x1
beq _08033A0E
cmp r0, 0x1
bgt _080339FC
cmp r0, 0
beq _08033A06
b _08033A24
.align 2, 0
_080339F4: .4byte gUnknown_203B33C
_080339F8: .4byte 0x0000ffff
_080339FC:
cmp r0, 0x8
beq _08033A1E
cmp r0, 0x17
beq _08033A16
b _08033A24
_08033A06:
movs r0, 0x3
bl sub_80338C4
b _08033A24
_08033A0E:
movs r0, 0x4
bl sub_80338C4
b _08033A24
_08033A16:
movs r0, 0x78
bl sub_80338C4
b _08033A24
_08033A1E:
movs r0, 0x2
bl sub_80338C4
_08033A24:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80339C8
thumb_func_start sub_8033A2C
sub_8033A2C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
beq _08033A3C
b _08033B86
_08033A3C:
ldr r2, _08033A58
ldr r1, [r2]
movs r0, 0x8
str r0, [r1, 0x40]
ldr r0, [sp]
subs r0, 0x3
cmp r0, 0x11
bls _08033A4E
b _08033B86
_08033A4E:
lsls r0, 2
ldr r1, _08033A5C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08033A58: .4byte gUnknown_203B33C
_08033A5C: .4byte _08033A60
.align 2, 0
_08033A60:
.4byte _08033ACA
.4byte _08033AEC
.4byte _08033B86
.4byte _08033B86
.4byte _08033B86
.4byte _08033B80
.4byte _08033B86
.4byte _08033B86
.4byte _08033B86
.4byte _08033B86
.4byte _08033B86
.4byte _08033B86
.4byte _08033B86
.4byte _08033B86
.4byte _08033AA8
.4byte _08033B14
.4byte _08033B3E
.4byte _08033B68
_08033AA8:
ldr r0, [r2]
movs r1, 0x2
str r1, [r0, 0x40]
movs r1, 0xA5
lsls r1, 3
adds r0, r1
movs r1, 0x11
str r1, [r0]
movs r0, 0x1
bl sub_8095324
cmp r0, 0
beq _08033B0C
movs r0, 0x31
bl sub_80338C4
b _08033B86
_08033ACA:
ldr r0, [r2]
movs r1, 0x3
str r1, [r0, 0x40]
movs r2, 0xA5
lsls r2, 3
adds r0, r2
str r1, [r0]
bl sub_8095190
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _08033B36
movs r0, 0xF
bl sub_80338C4
b _08033B86
_08033AEC:
ldr r0, [r2]
movs r1, 0x4
str r1, [r0, 0x40]
movs r2, 0xA5
lsls r2, 3
adds r0, r2
str r1, [r0]
movs r0, 0x4
bl sub_8095324
cmp r0, 0
beq _08033B0C
movs r0, 0x1C
bl sub_80338C4
b _08033B86
_08033B0C:
movs r0, 0x22
bl sub_80338C4
b _08033B86
_08033B14:
ldr r0, [r2]
movs r1, 0x5
str r1, [r0, 0x40]
movs r1, 0xA5
lsls r1, 3
adds r0, r1
movs r1, 0x12
str r1, [r0]
movs r0, 0x5
bl sub_8095324
cmp r0, 0
beq _08033B36
movs r0, 0x3D
bl sub_80338C4
b _08033B86
_08033B36:
movs r0, 0xE
bl sub_80338C4
b _08033B86
_08033B3E:
ldr r0, [r2]
movs r1, 0x6
str r1, [r0, 0x40]
movs r2, 0xA5
lsls r2, 3
adds r0, r2
movs r1, 0x13
str r1, [r0]
movs r0, 0x5
bl sub_8095324
cmp r0, 0
bne _08033B60
movs r0, 0x51
bl sub_80338C4
b _08033B86
_08033B60:
movs r0, 0x5B
bl sub_80338C4
b _08033B86
_08033B68:
ldr r0, [r2]
movs r1, 0x7
str r1, [r0, 0x40]
movs r1, 0xA5
lsls r1, 3
adds r0, r1
movs r1, 0x14
str r1, [r0]
movs r0, 0x52
bl sub_80338C4
b _08033B86
_08033B80:
movs r0, 0x1
bl sub_80338C4
_08033B86:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033A2C
thumb_func_start sub_8033B8C
sub_8033B8C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033C4C
ldr r2, [sp]
cmp r2, 0xC
bgt _08033BAA
cmp r2, 0xB
bge _08033BB0
cmp r2, 0x8
beq _08033C46
b _08033C4C
_08033BAA:
cmp r2, 0xD
beq _08033BF4
b _08033C4C
_08033BB0:
ldr r0, _08033BD4
ldr r0, [r0]
ldr r1, _08033BD8
adds r2, r0, r1
movs r1, 0xB
str r1, [r2]
movs r3, 0xA5
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x4
beq _08033BEC
cmp r0, 0x4
bhi _08033BDC
cmp r0, 0x3
beq _08033BE4
b _08033C4C
.align 2, 0
_08033BD4: .4byte gUnknown_203B33C
_08033BD8: .4byte 0x00000524
_08033BDC:
cmp r0, 0x12
bhi _08033C4C
cmp r0, 0x11
bcc _08033C4C
_08033BE4:
movs r0, 0x5
bl sub_80338C4
b _08033C4C
_08033BEC:
movs r0, 0x23
bl sub_80338C4
b _08033C4C
_08033BF4:
ldr r0, _08033C14
ldr r0, [r0]
ldr r3, _08033C18
adds r1, r0, r3
str r2, [r1]
movs r1, 0xA5
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x4
beq _08033C3E
cmp r0, 0x4
bhi _08033C1C
cmp r0, 0x3
beq _08033C26
b _08033C4C
.align 2, 0
_08033C14: .4byte gUnknown_203B33C
_08033C18: .4byte 0x00000524
_08033C1C:
cmp r0, 0x11
beq _08033C2E
cmp r0, 0x12
beq _08033C36
b _08033C4C
_08033C26:
movs r0, 0x19
bl sub_80338C4
b _08033C4C
_08033C2E:
movs r0, 0x39
bl sub_80338C4
b _08033C4C
_08033C36:
movs r0, 0x43
bl sub_80338C4
b _08033C4C
_08033C3E:
movs r0, 0x2D
bl sub_80338C4
b _08033C4C
_08033C46:
movs r0, 0x1
bl sub_80338C4
_08033C4C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033B8C
thumb_func_start sub_8033C54
sub_8033C54:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033CA2
ldr r0, [sp]
cmp r0, 0x6
beq _08033C6E
cmp r0, 0x8
beq _08033C9C
b _08033CA2
_08033C6E:
ldr r0, _08033C88
ldr r0, [r0]
movs r1, 0xA5
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x4
beq _08033C94
cmp r0, 0x4
bhi _08033C8C
cmp r0, 0x3
beq _08033C94
b _08033CA2
.align 2, 0
_08033C88: .4byte gUnknown_203B33C
_08033C8C:
cmp r0, 0x11
beq _08033C94
cmp r0, 0x12
bne _08033CA2
_08033C94:
movs r0, 0xD
bl sub_80338C4
b _08033CA2
_08033C9C:
movs r0, 0x1
bl sub_80338C4
_08033CA2:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033C54
thumb_func_start nullsub_41
nullsub_41:
bx lr
thumb_func_end nullsub_41
thumb_func_start sub_8033CAC
sub_8033CAC:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033D40
ldr r4, _08033CDC
ldr r1, [r4]
ldr r0, [r1, 0x44]
cmp r0, 0
bne _08033D36
movs r2, 0xA5
lsls r2, 3
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0x4
beq _08033D2E
cmp r0, 0x4
bhi _08033CE0
cmp r0, 0x3
beq _08033CEA
b _08033D40
.align 2, 0
_08033CDC: .4byte gUnknown_203B33C
_08033CE0:
cmp r0, 0x11
beq _08033CF2
cmp r0, 0x12
beq _08033CFA
b _08033D40
_08033CEA:
movs r0, 0x16
bl sub_80338C4
b _08033D40
_08033CF2:
movs r0, 0x37
bl sub_80338C4
b _08033D40
_08033CFA:
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _08033D12
ldr r0, [r4]
movs r1, 0xB4
lsls r1, 1
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
b _08033D1A
_08033D12:
ldr r0, [r4]
adds r0, 0xE0
movs r1, 0
ldrsh r0, [r0, r1]
_08033D1A:
cmp r0, 0
beq _08033D26
movs r0, 0x3F
bl sub_80338C4
b _08033D40
_08033D26:
movs r0, 0x40
bl sub_80338C4
b _08033D40
_08033D2E:
movs r0, 0x2B
bl sub_80338C4
b _08033D40
_08033D36:
bl sub_80338DC
movs r0, 0x8
bl sub_80338C4
_08033D40:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8033CAC
thumb_func_start sub_8033D48
sub_8033D48:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033D5C
movs r0, 0x1
bl sub_80338C4
_08033D5C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033D48
thumb_func_start nullsub_42
nullsub_42:
bx lr
thumb_func_end nullsub_42
thumb_func_start nullsub_43
nullsub_43:
bx lr
thumb_func_end nullsub_43
thumb_func_start nullsub_44
nullsub_44:
bx lr
thumb_func_end nullsub_44
thumb_func_start nullsub_45
nullsub_45:
bx lr
thumb_func_end nullsub_45
thumb_func_start sub_8033D74
sub_8033D74:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033D8E
movs r0, 0x17
bl sub_80338C4
movs r0, 0
bl sub_8012574
_08033D8E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033D74
thumb_func_start sub_8033D94
sub_8033D94:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033DB6
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08033DB6
bl sub_8012750
movs r0, 0x18
bl sub_80338C4
_08033DB6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033D94
thumb_func_start sub_8033DBC
sub_8033DBC:
push {r4,lr}
sub sp, 0x44
bl sub_80154F0
adds r4, r0, 0
add r0, sp, 0x14
movs r1, 0
movs r2, 0x30
bl MemoryFill8
cmp r4, 0x2
bne _08033DD6
b _08033F38
_08033DD6:
cmp r4, 0x3
beq _08033DDC
b _08033F58
_08033DDC:
ldr r2, _08033DF4
ldr r1, _08033DF8
ldr r0, [r1]
movs r3, 0xA5
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x3
beq _08033DFC
cmp r0, 0x12
beq _08033E00
b _08033E02
.align 2, 0
_08033DF4: .4byte 0x0000ffdc
_08033DF8: .4byte gUnknown_203B33C
_08033DFC:
movs r2, 0x1C
b _08033E02
_08033E00:
movs r2, 0x1E
_08033E02:
ldr r1, [r1]
adds r1, 0x8
adds r0, r2, 0
add r2, sp, 0x14
bl sub_8039068
subs r0, 0x7
cmp r0, 0x11
bls _08033E16
b _08033F2E
_08033E16:
lsls r0, 2
ldr r1, _08033E20
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08033E20: .4byte _08033E24
.align 2, 0
_08033E24:
.4byte _08033EA0
.4byte _08033F2E
.4byte _08033EE0
.4byte _08033F2E
.4byte _08033F2E
.4byte _08033F2E
.4byte _08033F2E
.4byte _08033F2E
.4byte _08033F2E
.4byte _08033F2E
.4byte _08033E6C
.4byte _08033E98
.4byte _08033ED8
.4byte _08033F2E
.4byte _08033F2E
.4byte _08033EA8
.4byte _08033EFC
.4byte _08033F2E
_08033E6C:
ldr r0, _08033E90
ldr r3, _08033E94
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x6
bl sub_8014248
movs r0, 0x1B
bl sub_80338C4
b _08033F2E
.align 2, 0
_08033E90: .4byte gUnknown_80E48A8
_08033E94: .4byte gUnknown_80E2290
_08033E98:
ldr r0, _08033E9C
b _08033EE2
.align 2, 0
_08033E9C: .4byte gUnknown_80E48E8
_08033EA0:
ldr r0, _08033EA4
b _08033EE2
.align 2, 0
_08033EA4: .4byte gUnknown_80E460C
_08033EA8:
ldr r0, [sp, 0x24]
bl sub_8095274
add r1, sp, 0x14
movs r0, 0x2
strb r0, [r1]
adds r0, r1, 0
bl sub_80951BC
ldr r0, _08033ED0
ldr r3, _08033ED4
movs r1, 0
movs r2, 0
bl sub_80141B4
movs r0, 0x16
bl sub_80338C4
b _08033F2E
.align 2, 0
_08033ED0: .4byte gUnknown_80E4928
_08033ED4: .4byte 0x00000101
_08033ED8:
ldr r0, _08033EDC
b _08033EE2
.align 2, 0
_08033EDC: .4byte gUnknown_80E4964
_08033EE0:
ldr r0, _08033EF4
_08033EE2:
ldr r3, _08033EF8
movs r1, 0
movs r2, 0
bl sub_80141B4
movs r0, 0x8
bl sub_80338C4
b _08033F2E
.align 2, 0
_08033EF4: .4byte gUnknown_80E499C
_08033EF8: .4byte 0x00000101
_08033EFC:
add r1, sp, 0x14
movs r0, 0x5
strb r0, [r1]
adds r0, r1, 0
bl sub_80951FC
ldr r1, [sp, 0x24]
movs r0, 0x1
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
movs r1, 0x7
strb r1, [r0]
ldr r0, _08033F34
ldr r0, [r0]
movs r1, 0
movs r2, 0x5C
bl MemoryFill8
movs r0, 0x40
bl sub_80338C4
_08033F2E:
bl sub_80155F0
b _08033F58
.align 2, 0
_08033F34: .4byte gUnknown_203B484
_08033F38:
bl sub_80155F0
bl sub_8004914
ldr r0, _08033F60
ldr r0, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_80338C4
_08033F58:
add sp, 0x44
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08033F60: .4byte gUnknown_203B33C
thumb_func_end sub_8033DBC
thumb_func_start sub_8033F64
sub_8033F64:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033FAE
ldr r0, [sp]
cmp r0, 0x6
beq _08033F7E
cmp r0, 0x8
beq _08033FA8
b _08033FAE
_08033F7E:
ldr r0, _08033F94
ldr r0, [r0]
movs r1, 0xA5
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x3
beq _08033F98
cmp r0, 0x12
beq _08033FA0
b _08033FAE
.align 2, 0
_08033F94: .4byte gUnknown_203B33C
_08033F98:
movs r0, 0x19
bl sub_80338C4
b _08033FAE
_08033FA0:
movs r0, 0x43
bl sub_80338C4
b _08033FAE
_08033FA8:
movs r0, 0x1
bl sub_80338C4
_08033FAE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033F64
thumb_func_start sub_8033FB4
sub_8033FB4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08033FDE
ldr r0, [sp]
cmp r0, 0x6
bne _08033FD0
movs r0, 0xE
bl sub_80338C4
b _08033FDE
_08033FD0:
cmp r0, 0x6
blt _08033FDE
cmp r0, 0x8
bgt _08033FDE
movs r0, 0x1
bl sub_80338C4
_08033FDE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8033FB4
thumb_func_start sub_8033FE4
sub_8033FE4:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8030768
cmp r0, 0x3
beq _0803400C
cmp r0, 0x3
bhi _08033FFA
cmp r0, 0x2
beq _08034000
b _0803406A
_08033FFA:
cmp r0, 0x4
beq _08034028
b _0803406A
_08034000:
bl sub_803084C
movs r0, 0x1
bl sub_80338C4
b _0803406A
_0803400C:
bl sub_80307EC
ldr r1, _08034024
ldr r1, [r1]
movs r2, 0x86
lsls r2, 2
adds r1, r2
strb r0, [r1]
movs r0, 0x1E
bl sub_80338C4
b _0803406A
.align 2, 0
_08034024: .4byte gUnknown_203B33C
_08034028:
ldr r4, _08034070
ldr r1, [r4]
movs r0, 0x1D
str r0, [r1, 0x4]
bl sub_80307EC
ldr r1, [r4]
movs r5, 0x86
lsls r5, 2
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x1F
bl sub_80338C4
_0803406A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08034070: .4byte gUnknown_203B33C
thumb_func_end sub_8033FE4
thumb_func_start sub_8034074
sub_8034074:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8030768
ldr r4, _080340B8
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080340A6
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_080340A6:
ldr r0, [sp]
cmp r0, 0x8
beq _08034108
cmp r0, 0x8
bgt _080340BC
cmp r0, 0x5
beq _08034108
b _08034124
.align 2, 0
_080340B8: .4byte gUnknown_203B33C
_080340BC:
cmp r0, 0x9
beq _080340C6
cmp r0, 0xA
beq _080340D2
b _08034124
_080340C6:
bl sub_803084C
movs r0, 0x20
bl sub_80338C4
b _08034124
_080340D2:
ldr r0, [r4]
movs r1, 0x7E
str r1, [r0, 0x4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x1F
bl sub_80338C4
b _08034124
_08034108:
ldr r0, _0803412C
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x2
bl sub_8035CC0
movs r0, 0x1
bl sub_8030810
movs r0, 0x1D
bl sub_80338C4
_08034124:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803412C: .4byte gUnknown_203B33C
thumb_func_end sub_8034074
thumb_func_start sub_8034130
sub_8034130:
push {r4,lr}
bl sub_8030DA0
cmp r0, 0x3
bhi _08034184
cmp r0, 0x2
bcc _08034184
bl sub_8030DE4
bl sub_8004914
ldr r4, _0803417C
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803092C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x7E
bne _08034180
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x1E
bl sub_80338C4
b _08034184
.align 2, 0
_0803417C: .4byte gUnknown_203B33C
_08034180:
bl sub_80338C4
_08034184:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8034130
thumb_func_start sub_803418C
sub_803418C:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8023A94
cmp r0, 0x3
beq _080341D0
cmp r0, 0x3
bhi _080341A2
cmp r0, 0x2
beq _080341A8
b _08034248
_080341A2:
cmp r0, 0x4
beq _08034204
b _08034248
_080341A8:
bl sub_8023C60
movs r0, 0x1
bl sub_80338C4
bl sub_8035D1C
ldr r0, _080341C8
ldr r0, [r0]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
ldr r1, _080341CC
strh r1, [r0]
b _08034248
.align 2, 0
_080341C8: .4byte gUnknown_203B33C
_080341CC: .4byte 0x0000ffff
_080341D0:
bl sub_8023B44
ldr r1, _080341F4
ldr r1, [r1]
movs r3, 0xA7
lsls r3, 3
adds r2, r1, r3
strh r0, [r2]
ldr r0, _080341F8
adds r1, r0
ldr r0, [r1]
cmp r0, 0xE
bne _080341FC
movs r0, 0x9
bl sub_80338C4
b _08034248
.align 2, 0
_080341F4: .4byte gUnknown_203B33C
_080341F8: .4byte 0x00000524
_080341FC:
movs r0, 0x27
bl sub_80338C4
b _08034248
_08034204:
ldr r4, _08034250
ldr r1, [r4]
movs r0, 0x26
str r0, [r1, 0x4]
bl sub_8023B44
adds r2, r0, 0
ldr r0, [r4]
movs r5, 0xA7
lsls r5, 3
adds r1, r0, r5
strh r2, [r1]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
movs r3, 0
ldrsh r0, [r0, r3]
movs r1, 0
bl sub_8024458
movs r0, 0x28
bl sub_80338C4
_08034248:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08034250: .4byte gUnknown_203B33C
thumb_func_end sub_803418C
thumb_func_start sub_8034254
sub_8034254:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8023A94
ldr r4, _08034298
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08034286
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_08034286:
ldr r0, [sp]
cmp r0, 0x8
beq _080342EA
cmp r0, 0x8
bgt _0803429C
cmp r0, 0x5
beq _080342EA
b _08034304
.align 2, 0
_08034298: .4byte gUnknown_203B33C
_0803429C:
cmp r0, 0x9
beq _080342A6
cmp r0, 0xA
beq _080342B2
b _08034304
_080342A6:
bl sub_8023C60
movs r0, 0x29
bl sub_80338C4
b _08034304
_080342B2:
ldr r0, [r4]
movs r1, 0x7E
str r1, [r0, 0x4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0xA7
lsls r1, 3
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0
bl sub_8024458
movs r0, 0x28
bl sub_80338C4
b _08034304
_080342EA:
ldr r0, _0803430C
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x3
bl sub_8035CC0
bl sub_8023DA4
movs r0, 0x26
bl sub_80338C4
_08034304:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803430C: .4byte gUnknown_203B33C
thumb_func_end sub_8034254
thumb_func_start sub_8034310
sub_8034310:
push {r4,lr}
bl sub_80244E4
cmp r0, 0x1
bne _08034320
bl sub_802452C
b _08034370
_08034320:
cmp r0, 0x1
bcc _08034370
cmp r0, 0x3
bhi _08034370
bl sub_802453C
bl sub_8004914
ldr r4, _08034368
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_8023B7C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x7E
bne _0803436C
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x27
bl sub_80338C4
b _08034370
.align 2, 0
_08034368: .4byte gUnknown_203B33C
_0803436C:
bl sub_80338C4
_08034370:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8034310
thumb_func_start sub_8034378
sub_8034378:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080343BE
ldr r0, [sp]
cmp r0, 0x8
beq _080343B8
cmp r0, 0x10
bne _080343BE
ldr r0, _080343A8
ldr r0, [r0]
ldr r1, _080343AC
adds r0, r1
ldr r0, [r0]
cmp r0, 0xE
bne _080343B0
movs r0, 0x9
bl sub_80338C4
b _080343BE
.align 2, 0
_080343A8: .4byte gUnknown_203B33C
_080343AC: .4byte 0x00000524
_080343B0:
movs r0, 0x5
bl sub_80338C4
b _080343BE
_080343B8:
movs r0, 0x1
bl sub_80338C4
_080343BE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034378
thumb_func_start sub_80343C4
sub_80343C4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080343FE
ldr r0, [sp]
cmp r0, 0x7
beq _080343F0
cmp r0, 0x7
bgt _080343E2
cmp r0, 0x6
beq _080343E8
b _080343FE
_080343E2:
cmp r0, 0x8
beq _080343F8
b _080343FE
_080343E8:
movs r0, 0x5
bl sub_80338C4
b _080343FE
_080343F0:
movs r0, 0x25
bl sub_80338C4
b _080343FE
_080343F8:
movs r0, 0x1
bl sub_80338C4
_080343FE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80343C4
thumb_func_start sub_8034404
sub_8034404:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034472
ldr r0, [sp]
cmp r0, 0xF
beq _08034428
cmp r0, 0xF
bgt _08034422
cmp r0, 0x8
beq _0803446C
b _08034472
_08034422:
cmp r0, 0x10
beq _08034444
b _08034472
_08034428:
movs r0, 0x3
bl sub_8024108
lsls r0, 24
cmp r0, 0
beq _0803443C
movs r0, 0x24
bl sub_80338C4
b _08034472
_0803443C:
movs r0, 0x25
bl sub_80338C4
b _08034472
_08034444:
ldr r0, _0803445C
ldr r0, [r0]
ldr r1, _08034460
adds r0, r1
ldr r0, [r0]
cmp r0, 0xE
bne _08034464
movs r0, 0x9
bl sub_80338C4
b _08034472
.align 2, 0
_0803445C: .4byte gUnknown_203B33C
_08034460: .4byte 0x00000524
_08034464:
movs r0, 0x5
bl sub_80338C4
b _08034472
_0803446C:
movs r0, 0x1
bl sub_80338C4
_08034472:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034404
thumb_func_start sub_8034478
sub_8034478:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803449A
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _0803449A
bl sub_8012750
movs r0, 0x2
bl sub_80338C4
_0803449A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034478
thumb_func_start sub_80344A0
sub_80344A0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080344BA
movs r0, 0x2C
bl sub_80338C4
movs r0, 0
bl sub_8012574
_080344BA:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80344A0
thumb_func_start sub_80344C0
sub_80344C0:
push {lr}
bl sub_8031DCC
cmp r0, 0x1
beq _080344F8
cmp r0, 0x1
bcc _080344FC
cmp r0, 0x3
bhi _080344FC
bl sub_8031E10
bl sub_8004914
ldr r0, _080344F4
ldr r0, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x2F
bl sub_80338C4
b _080344FC
.align 2, 0
_080344F4: .4byte gUnknown_203B33C
_080344F8:
bl sub_8031E00
_080344FC:
pop {r0}
bx r0
thumb_func_end sub_80344C0
thumb_func_start sub_8034500
sub_8034500:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8030768
cmp r0, 0x3
beq _08034528
cmp r0, 0x3
bhi _08034516
cmp r0, 0x2
beq _0803451C
b _08034586
_08034516:
cmp r0, 0x4
beq _08034544
b _08034586
_0803451C:
bl sub_803084C
movs r0, 0x1
bl sub_80338C4
b _08034586
_08034528:
bl sub_80307EC
ldr r1, _08034540
ldr r1, [r1]
movs r2, 0x86
lsls r2, 2
adds r1, r2
strb r0, [r1]
movs r0, 0x33
bl sub_80338C4
b _08034586
.align 2, 0
_08034540: .4byte gUnknown_203B33C
_08034544:
ldr r4, _0803458C
ldr r1, [r4]
movs r0, 0x32
str r0, [r1, 0x4]
bl sub_80307EC
ldr r1, [r4]
movs r5, 0x86
lsls r5, 2
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x34
bl sub_80338C4
_08034586:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803458C: .4byte gUnknown_203B33C
thumb_func_end sub_8034500
thumb_func_start sub_8034590
sub_8034590:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8030768
ldr r4, _080345D4
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080345C2
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_080345C2:
ldr r0, [sp]
cmp r0, 0x8
beq _08034624
cmp r0, 0x8
bgt _080345D8
cmp r0, 0x5
beq _08034624
b _08034640
.align 2, 0
_080345D4: .4byte gUnknown_203B33C
_080345D8:
cmp r0, 0x9
beq _080345E2
cmp r0, 0xA
beq _080345EE
b _08034640
_080345E2:
bl sub_803084C
movs r0, 0x35
bl sub_80338C4
b _08034640
_080345EE:
ldr r0, [r4]
movs r1, 0x7E
str r1, [r0, 0x4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x34
bl sub_80338C4
b _08034640
_08034624:
ldr r0, _08034648
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x2
bl sub_8035CC0
movs r0, 0x1
bl sub_8030810
movs r0, 0x32
bl sub_80338C4
_08034640:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08034648: .4byte gUnknown_203B33C
thumb_func_end sub_8034590
thumb_func_start sub_803464C
sub_803464C:
push {r4,lr}
bl sub_8030DA0
cmp r0, 0x3
bhi _080346A0
cmp r0, 0x2
bcc _080346A0
bl sub_8030DE4
bl sub_8004914
ldr r4, _08034698
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803092C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x7E
bne _0803469C
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x33
bl sub_80338C4
b _080346A0
.align 2, 0
_08034698: .4byte gUnknown_203B33C
_0803469C:
bl sub_80338C4
_080346A0:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_803464C
thumb_func_start sub_80346A8
sub_80346A8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080346D2
ldr r0, [sp]
cmp r0, 0x6
bne _080346C4
movs r0, 0xE
bl sub_80338C4
b _080346D2
_080346C4:
cmp r0, 0x6
blt _080346D2
cmp r0, 0x8
bgt _080346D2
movs r0, 0x1
bl sub_80338C4
_080346D2:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80346A8
thumb_func_start sub_80346D8
sub_80346D8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080346FA
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _080346FA
bl sub_8012750
movs r0, 0x2
bl sub_80338C4
_080346FA:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80346D8
thumb_func_start sub_8034700
sub_8034700:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803471A
movs r0, 0x38
bl sub_80338C4
movs r0, 0
bl sub_8012574
_0803471A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034700
thumb_func_start sub_8034720
sub_8034720:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034734
movs r0, 0x3A
bl sub_80338C4
_08034734:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034720
thumb_func_start sub_803473C
sub_803473C:
push {lr}
bl sub_8031DCC
cmp r0, 0x1
beq _08034774
cmp r0, 0x1
bcc _08034778
cmp r0, 0x3
bhi _08034778
bl sub_8031E10
bl sub_8004914
ldr r0, _08034770
ldr r0, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x3B
bl sub_80338C4
b _08034778
.align 2, 0
_08034770: .4byte gUnknown_203B33C
_08034774:
bl sub_8031E00
_08034778:
pop {r0}
bx r0
thumb_func_end sub_803473C
thumb_func_start sub_803477C
sub_803477C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080347A6
ldr r0, [sp]
cmp r0, 0x6
bne _08034798
movs r0, 0xE
bl sub_80338C4
b _080347A6
_08034798:
cmp r0, 0x6
blt _080347A6
cmp r0, 0x8
bgt _080347A6
movs r0, 0x1
bl sub_80338C4
_080347A6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_803477C
thumb_func_start sub_80347AC
sub_80347AC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080347C0
movs r0, 0xD
bl sub_80338C4
_080347C0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80347AC
thumb_func_start sub_80347C8
sub_80347C8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080347DC
movs r0, 0x40
bl sub_80338C4
_080347DC:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80347C8
thumb_func_start sub_80347E4
sub_80347E4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080347FE
movs r0, 0x41
bl sub_80338C4
movs r0, 0
bl sub_8012574
_080347FE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80347E4
thumb_func_start sub_8034804
sub_8034804:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034826
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08034826
bl sub_8012750
movs r0, 0x42
bl sub_80338C4
_08034826:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034804
thumb_func_start sub_803482C
sub_803482C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034840
movs r0, 0x1
bl sub_80338C4
_08034840:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_803482C
thumb_func_start sub_8034848
sub_8034848:
push {r4-r6,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
adds r6, r0, 0
cmp r6, 0
bne _080348BA
ldr r4, _0803489C
ldr r0, [r4]
ldr r5, _080348A0
adds r0, r5
movs r1, 0
movs r2, 0x4
bl MemoryFill8
ldr r0, [r4]
ldr r1, _080348A4
adds r0, r1
strb r6, [r0]
ldr r0, [r4]
subs r1, 0x1
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, r5
strb r6, [r0]
ldr r4, [r4]
ldr r0, [r4, 0x44]
cmp r0, 0
bne _080348B0
ldr r4, [r4, 0x40]
cmp r4, 0x6
beq _080348A8
cmp r4, 0x7
bne _080348BA
movs r0, 0x6D
bl sub_80338C4
b _080348BA
.align 2, 0
_0803489C: .4byte gUnknown_203B33C
_080348A0: .4byte 0x0000041c
_080348A4: .4byte 0x0000041e
_080348A8:
movs r0, 0x50
bl sub_80338C4
b _080348BA
_080348B0:
bl sub_80338DC
movs r0, 0x6B
bl sub_80338C4
_080348BA:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8034848
thumb_func_start sub_80348C4
sub_80348C4:
push {r4-r6,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
adds r6, r0, 0
cmp r6, 0
bne _08034968
ldr r4, _08034910
ldr r0, [r4]
ldr r5, _08034914
adds r0, r5
movs r1, 0
movs r2, 0x4
bl MemoryFill8
ldr r0, [r4]
ldr r1, _08034918
adds r0, r1
strb r6, [r0]
ldr r0, [r4]
subs r1, 0x1
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, r5
strb r6, [r0]
ldr r0, [r4]
ldr r1, [r0, 0x44]
cmp r1, 0
bne _0803495C
ldr r1, [r0, 0x40]
cmp r1, 0x6
beq _0803491C
cmp r1, 0x7
beq _08034954
b _08034968
.align 2, 0
_08034910: .4byte gUnknown_203B33C
_08034914: .4byte 0x0000041c
_08034918: .4byte 0x0000041e
_0803491C:
ldr r1, _08034930
adds r0, r1
ldr r0, [r0]
cmp r0, 0xC
beq _08034944
cmp r0, 0xC
bhi _08034934
cmp r0, 0xB
beq _08034938
b _08034944
.align 2, 0
_08034930: .4byte 0x00000524
_08034934:
cmp r0, 0xE
bhi _08034944
_08034938:
ldr r0, _0803494C
ldr r3, _08034950
movs r1, 0
movs r2, 0
bl sub_80141B4
_08034944:
movs r0, 0x77
bl sub_80338C4
b _08034968
.align 2, 0
_0803494C: .4byte gUnknown_80E31FC
_08034950: .4byte 0x00000101
_08034954:
movs r0, 0x6D
bl sub_80338C4
b _08034968
_0803495C:
adds r0, r1, 0
bl sub_80338DC
movs r0, 0x6B
bl sub_80338C4
_08034968:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80348C4
thumb_func_start sub_8034970
sub_8034970:
push {lr}
bl sub_8031DCC
cmp r0, 0x1
beq _080349A8
cmp r0, 0x1
bcc _080349AC
cmp r0, 0x3
bhi _080349AC
bl sub_8031E10
bl sub_8004914
ldr r0, _080349A4
ldr r0, [r0]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x68
bl sub_80338C4
b _080349AC
.align 2, 0
_080349A4: .4byte gUnknown_203B33C
_080349A8:
bl sub_8031E00
_080349AC:
pop {r0}
bx r0
thumb_func_end sub_8034970
thumb_func_start sub_80349B0
sub_80349B0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080349DA
ldr r0, [sp]
cmp r0, 0x6
bne _080349CC
movs r0, 0x52
bl sub_80338C4
b _080349DA
_080349CC:
cmp r0, 0x6
blt _080349DA
cmp r0, 0x8
bgt _080349DA
movs r0, 0x1
bl sub_80338C4
_080349DA:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80349B0
thumb_func_start sub_80349E0
sub_80349E0:
push {r4,r5,lr}
movs r0, 0x1
bl sub_8030768
cmp r0, 0x3
beq _08034A08
cmp r0, 0x3
bhi _080349F6
cmp r0, 0x2
beq _080349FC
b _08034A66
_080349F6:
cmp r0, 0x4
beq _08034A24
b _08034A66
_080349FC:
bl sub_803084C
movs r0, 0x1
bl sub_80338C4
b _08034A66
_08034A08:
bl sub_80307EC
ldr r1, _08034A20
ldr r1, [r1]
movs r2, 0x86
lsls r2, 2
adds r1, r2
strb r0, [r1]
movs r0, 0x5D
bl sub_80338C4
b _08034A66
.align 2, 0
_08034A20: .4byte gUnknown_203B33C
_08034A24:
ldr r4, _08034A6C
ldr r1, [r4]
movs r0, 0x5C
str r0, [r1, 0x4]
bl sub_80307EC
ldr r1, [r4]
movs r5, 0x86
lsls r5, 2
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x5E
bl sub_80338C4
_08034A66:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08034A6C: .4byte gUnknown_203B33C
thumb_func_end sub_80349E0
thumb_func_start sub_8034A70
sub_8034A70:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_8030768
ldr r4, _08034AB4
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08034AA2
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_08034AA2:
ldr r0, [sp]
cmp r0, 0x8
beq _08034B04
cmp r0, 0x8
bgt _08034AB8
cmp r0, 0x5
beq _08034B04
b _08034B20
.align 2, 0
_08034AB4: .4byte gUnknown_203B33C
_08034AB8:
cmp r0, 0x9
beq _08034AC2
cmp r0, 0xA
beq _08034ACE
b _08034B20
_08034AC2:
bl sub_803084C
movs r0, 0x5A
bl sub_80338C4
b _08034B20
_08034ACE:
ldr r0, [r4]
movs r1, 0x7E
str r1, [r0, 0x4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl sub_8030D40
movs r0, 0x5E
bl sub_80338C4
b _08034B20
_08034B04:
ldr r0, _08034B28
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x2
bl sub_8035CC0
movs r0, 0x1
bl sub_8030810
movs r0, 0x5C
bl sub_80338C4
_08034B20:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08034B28: .4byte gUnknown_203B33C
thumb_func_end sub_8034A70
thumb_func_start sub_8034B2C
sub_8034B2C:
push {r4,lr}
bl sub_8030DA0
cmp r0, 0x3
bhi _08034B80
cmp r0, 0x2
bcc _08034B80
bl sub_8030DE4
bl sub_8004914
ldr r4, _08034B78
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803092C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x7E
bne _08034B7C
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x5D
bl sub_80338C4
b _08034B80
.align 2, 0
_08034B78: .4byte gUnknown_203B33C
_08034B7C:
bl sub_80338C4
_08034B80:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8034B2C
thumb_func_start sub_8034B88
sub_8034B88:
push {r4-r6,lr}
ldr r4, _08034BBC
ldr r0, [r4]
ldr r5, _08034BC0
adds r0, r5
movs r2, 0
strb r2, [r0]
ldr r0, [r4]
ldr r1, _08034BC4
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r6, _08034BC8
adds r0, r6
strb r2, [r0]
movs r0, 0x1
bl sub_801CA08
cmp r0, 0x3
beq _08034BDE
cmp r0, 0x3
bhi _08034BCC
cmp r0, 0x2
beq _08034BD2
b _08034C30
.align 2, 0
_08034BBC: .4byte gUnknown_203B33C
_08034BC0: .4byte 0x0000041e
_08034BC4: .4byte 0x0000041d
_08034BC8: .4byte 0x0000041c
_08034BCC:
cmp r0, 0x4
beq _08034BF8
b _08034C30
_08034BD2:
bl sub_801CBB8
movs r0, 0x1
bl sub_80338C4
b _08034C30
_08034BDE:
bl sub_801CB24
ldr r1, [r4]
ldr r2, _08034BF4
adds r1, r2
strb r0, [r1]
movs r0, 0x60
bl sub_80338C4
b _08034C30
.align 2, 0
_08034BF4: .4byte 0x0000041e
_08034BF8:
ldr r1, [r4]
movs r0, 0x5F
str r0, [r1, 0x4]
bl sub_801CB24
ldr r1, [r4]
adds r1, r5
strb r0, [r1]
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, r6
bl sub_801B3C0
movs r0, 0x61
bl sub_80338C4
_08034C30:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8034B88
thumb_func_start sub_8034C38
sub_8034C38:
push {r4,lr}
bl sub_801B410
cmp r0, 0x1
beq _08034C90
cmp r0, 0x1
bcc _08034C90
cmp r0, 0x3
bhi _08034C90
bl sub_801B450
bl sub_8004914
ldr r4, _08034C88
ldr r0, [r4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_801CB5C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x7E
bne _08034C8C
movs r1, 0x87
lsls r1, 2
adds r0, r4, r1
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x60
bl sub_80338C4
b _08034C90
.align 2, 0
_08034C88: .4byte gUnknown_203B33C
_08034C8C:
bl sub_80338C4
_08034C90:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8034C38
thumb_func_start sub_8034C98
sub_8034C98:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_801CA08
ldr r4, _08034CDC
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08034CCA
ldr r0, [r4]
movs r1, 0xC3
lsls r1, 2
adds r0, r1
mov r1, sp
bl sub_8013114
_08034CCA:
ldr r0, [sp]
cmp r0, 0x8
beq _08034D2C
cmp r0, 0x8
bgt _08034CE0
cmp r0, 0x5
beq _08034D2C
b _08034D48
.align 2, 0
_08034CDC: .4byte gUnknown_203B33C
_08034CE0:
cmp r0, 0x9
beq _08034CEA
cmp r0, 0xA
beq _08034CF6
b _08034D48
_08034CEA:
bl sub_801CBB8
movs r0, 0x58
bl sub_80338C4
b _08034D48
_08034CF6:
ldr r0, [r4]
movs r1, 0x7E
str r1, [r0, 0x4]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
ldr r1, _08034D28
adds r0, r1
bl sub_801B3C0
movs r0, 0x61
bl sub_80338C4
b _08034D48
.align 2, 0
_08034D28: .4byte 0x0000041c
_08034D2C:
ldr r0, _08034D50
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x3
bl sub_8035CC0
movs r0, 0x1
bl sub_801CB5C
movs r0, 0x5F
bl sub_80338C4
_08034D48:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08034D50: .4byte gUnknown_203B33C
thumb_func_end sub_8034C98
thumb_func_start sub_8034D54
sub_8034D54:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034D6E
movs r0, 0x65
bl sub_80338C4
movs r0, 0
bl sub_8012574
_08034D6E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034D54
thumb_func_start sub_8034D74
sub_8034D74:
push {r4,r5,lr}
sub sp, 0x44
bl sub_80154F0
adds r4, r0, 0
add r0, sp, 0x14
movs r1, 0
movs r2, 0x30
bl MemoryFill8
cmp r4, 0x2
bne _08034D8E
b _08034E9C
_08034D8E:
cmp r4, 0x3
beq _08034D94
b _08034EBC
_08034D94:
ldr r0, _08034DB4
ldr r1, [r0]
adds r1, 0x8
movs r0, 0x20
add r2, sp, 0x14
bl sub_8039068
subs r0, 0x7
cmp r0, 0x11
bhi _08034E90
lsls r0, 2
ldr r1, _08034DB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08034DB4: .4byte gUnknown_203B33C
_08034DB8: .4byte _08034DBC
.align 2, 0
_08034DBC:
.4byte _08034E90
.4byte _08034E90
.4byte _08034E90
.4byte _08034E90
.4byte _08034E38
.4byte _08034E90
.4byte _08034E90
.4byte _08034E90
.4byte _08034E90
.4byte _08034E90
.4byte _08034E04
.4byte _08034E90
.4byte _08034E90
.4byte _08034E30
.4byte _08034E90
.4byte _08034E90
.4byte _08034E90
.4byte _08034E54
_08034E04:
ldr r0, _08034E28
ldr r3, _08034E2C
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x6
bl sub_8014248
movs r0, 0x74
bl sub_80338C4
b _08034E90
.align 2, 0
_08034E28: .4byte gUnknown_80E48A8
_08034E2C: .4byte gUnknown_80E2440
_08034E30:
ldr r0, _08034E34
b _08034E3A
.align 2, 0
_08034E34: .4byte gUnknown_80E49C4
_08034E38:
ldr r0, _08034E4C
_08034E3A:
ldr r3, _08034E50
movs r1, 0
movs r2, 0
bl sub_80141B4
movs r0, 0x6B
bl sub_80338C4
b _08034E90
.align 2, 0
_08034E4C: .4byte gUnknown_80E4704
_08034E50: .4byte 0x00000101
_08034E54:
ldr r1, [sp, 0x24]
movs r0, 0x4
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r2, r0, 0
add r1, sp, 0x14
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
movs r1, 0x6
strb r1, [r0]
ldr r0, _08034E98
ldr r0, [r0]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r1, [sp, 0x24]
str r1, [r0]
movs r0, 0x6D
bl sub_80338C4
_08034E90:
bl sub_80155F0
b _08034EBC
.align 2, 0
_08034E98: .4byte gUnknown_203B33C
_08034E9C:
bl sub_80155F0
bl sub_8004914
ldr r0, _08034EC4
ldr r0, [r0]
movs r3, 0xEF
lsls r3, 2
adds r0, r3
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_80338C4
_08034EBC:
add sp, 0x44
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08034EC4: .4byte gUnknown_203B33C
thumb_func_end sub_8034D74
thumb_func_start sub_8034EC8
sub_8034EC8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034EEA
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08034EEA
bl sub_8012750
movs r0, 0x2
bl sub_80338C4
_08034EEA:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034EC8
thumb_func_start sub_8034EF0
sub_8034EF0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034F12
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08034F12
bl sub_8012750
movs r0, 0x2
bl sub_80338C4
_08034F12:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034EF0
thumb_func_start sub_8034F18
sub_8034F18:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034F32
movs r0, 0x65
bl sub_80338C4
movs r0, 0
bl sub_8012574
_08034F32:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034F18
thumb_func_start sub_8034F38
sub_8034F38:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034F52
movs r0, 0x71
bl sub_80338C4
movs r0, 0
bl sub_8012574
_08034F52:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034F38
thumb_func_start sub_8034F58
sub_8034F58:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08034F80
ldr r0, [sp]
cmp r0, 0x6
beq _08034F72
cmp r0, 0x8
beq _08034F7A
b _08034F80
_08034F72:
movs r0, 0x62
bl sub_80338C4
b _08034F80
_08034F7A:
movs r0, 0x1
bl sub_80338C4
_08034F80:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8034F58
thumb_func_start sub_8034F88
sub_8034F88:
push {r4,r5,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803500E
ldr r0, [sp]
cmp r0, 0x7
beq _08035000
cmp r0, 0x7
bgt _08034FA6
cmp r0, 0x6
beq _08034FAC
b _0803500E
_08034FA6:
cmp r0, 0x8
beq _08035008
b _0803500E
_08034FAC:
ldr r4, _08034FF0
ldr r0, [r4]
movs r1, 0x86
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_8095228
adds r2, r0, 0
ldr r1, [r4]
ldr r3, _08034FF4
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
beq _08034FD2
ldr r5, _08034FF8
adds r0, r1, r5
ldr r0, [r0]
str r0, [r2, 0x20]
_08034FD2:
ldr r0, _08034FFC
ldr r1, [r0]
ldr r0, [r4]
adds r0, r3
ldrb r0, [r0]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
movs r0, 0x75
bl sub_80338C4
b _0803500E
.align 2, 0
_08034FF0: .4byte gUnknown_203B33C
_08034FF4: .4byte 0x0000041e
_08034FF8: .4byte 0x0000041c
_08034FFC: .4byte gUnknown_203B460
_08035000:
movs r0, 0x57
bl sub_80338C4
b _0803500E
_08035008:
movs r0, 0x1
bl sub_80338C4
_0803500E:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8034F88
thumb_func_start sub_8035018
sub_8035018:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08035032
movs r0, 0x76
bl sub_80338C4
movs r0, 0
bl sub_8012574
_08035032:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8035018
thumb_func_start sub_8035038
sub_8035038:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803508E
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _0803508E
bl sub_8012750
ldr r0, _0803506C
ldr r0, [r0]
ldr r1, _08035070
adds r0, r1
ldr r0, [r0]
cmp r0, 0xD
beq _08035080
cmp r0, 0xD
bls _08035074
cmp r0, 0xE
beq _08035088
b _0803508E
.align 2, 0
_0803506C: .4byte gUnknown_203B33C
_08035070: .4byte 0x00000524
_08035074:
cmp r0, 0xB
bcc _0803508E
movs r0, 0x69
bl sub_80338C4
b _0803508E
_08035080:
movs r0, 0x66
bl sub_80338C4
b _0803508E
_08035088:
movs r0, 0x4B
bl sub_80338C4
_0803508E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8035038
thumb_func_start sub_8035094
sub_8035094:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080350EE
ldr r0, [sp]
cmp r0, 0x8
beq _080350E8
cmp r0, 0x16
bne _080350EE
ldr r0, _080350C4
ldr r0, [r0]
ldr r1, _080350C8
adds r0, r1
ldr r0, [r0]
cmp r0, 0xD
beq _080350D8
cmp r0, 0xD
bls _080350CC
cmp r0, 0xE
beq _080350E0
b _080350EE
.align 2, 0
_080350C4: .4byte gUnknown_203B33C
_080350C8: .4byte 0x00000524
_080350CC:
cmp r0, 0xB
bcc _080350EE
movs r0, 0x69
bl sub_80338C4
b _080350EE
_080350D8:
movs r0, 0x66
bl sub_80338C4
b _080350EE
_080350E0:
movs r0, 0x4B
bl sub_80338C4
b _080350EE
_080350E8:
movs r0, 0x1
bl sub_80338C4
_080350EE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8035094
thumb_func_start sub_80350F4
sub_80350F4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08035176
ldr r0, [sp]
cmp r0, 0x15
beq _08035118
cmp r0, 0x15
bgt _08035112
cmp r0, 0x8
beq _08035170
b _08035176
_08035112:
cmp r0, 0x16
beq _08035134
b _08035176
_08035118:
movs r0, 0
bl sub_801CF14
lsls r0, 24
cmp r0, 0
beq _0803512C
movs r0, 0x56
bl sub_80338C4
b _08035176
_0803512C:
movs r0, 0x57
bl sub_80338C4
b _08035176
_08035134:
ldr r0, _0803514C
ldr r0, [r0]
ldr r1, _08035150
adds r0, r1
ldr r0, [r0]
cmp r0, 0xD
beq _08035160
cmp r0, 0xD
bls _08035154
cmp r0, 0xE
beq _08035168
b _08035176
.align 2, 0
_0803514C: .4byte gUnknown_203B33C
_08035150: .4byte 0x00000524
_08035154:
cmp r0, 0xB
bcc _08035176
movs r0, 0x69
bl sub_80338C4
b _08035176
_08035160:
movs r0, 0x66
bl sub_80338C4
b _08035176
_08035168:
movs r0, 0x4B
bl sub_80338C4
b _08035176
_08035170:
movs r0, 0x1
bl sub_80338C4
_08035176:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80350F4
thumb_func_start sub_803517C
sub_803517C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080351DA
ldr r0, [sp]
cmp r0, 0x6
beq _08035196
cmp r0, 0x8
beq _080351D4
b _080351DA
_08035196:
ldr r0, _080351B0
ldr r0, [r0]
ldr r1, _080351B4
adds r0, r1
ldr r0, [r0]
cmp r0, 0xD
beq _080351C4
cmp r0, 0xD
bls _080351B8
cmp r0, 0xE
beq _080351CC
b _080351DA
.align 2, 0
_080351B0: .4byte gUnknown_203B33C
_080351B4: .4byte 0x00000524
_080351B8:
cmp r0, 0xB
bcc _080351DA
movs r0, 0x69
bl sub_80338C4
b _080351DA
_080351C4:
movs r0, 0x66
bl sub_80338C4
b _080351DA
_080351CC:
movs r0, 0x4B
bl sub_80338C4
b _080351DA
_080351D4:
movs r0, 0x1
bl sub_80338C4
_080351DA:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_803517C
thumb_func_start sub_80351E0
sub_80351E0:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08035208
ldr r0, [sp]
cmp r0, 0x6
beq _080351FA
cmp r0, 0x8
beq _08035202
b _08035208
_080351FA:
movs r0, 0x72
bl sub_80338C4
b _08035208
_08035202:
movs r0, 0x1
bl sub_80338C4
_08035208:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80351E0
thumb_func_start sub_8035210
sub_8035210:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803528C
ldr r0, _08035238
ldr r2, [r0]
ldr r1, _0803523C
adds r0, r2, r1
ldr r1, [sp]
str r1, [r0]
cmp r1, 0xD
bgt _0803528C
cmp r1, 0xB
bge _08035240
cmp r1, 0x8
beq _08035286
b _0803528C
.align 2, 0
_08035238: .4byte gUnknown_203B33C
_0803523C: .4byte 0x00000524
_08035240:
movs r3, 0xA5
lsls r3, 3
adds r0, r2, r3
ldr r0, [r0]
cmp r0, 0x13
bne _08035272
movs r0, 0x5
bl sub_80953D4
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r0, 0x22
ldrb r0, [r0]
cmp r0, 0
beq _0803526A
movs r0, 0x53
bl sub_80338C4
b _0803528C
_0803526A:
movs r0, 0x55
bl sub_80338C4
b _0803528C
_08035272:
cmp r1, 0xD
beq _0803527E
movs r0, 0x69
bl sub_80338C4
b _0803528C
_0803527E:
movs r0, 0x72
bl sub_80338C4
b _0803528C
_08035286:
movs r0, 0x1
bl sub_80338C4
_0803528C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8035210
thumb_func_start nullsub_46
nullsub_46:
bx lr
thumb_func_end nullsub_46
thumb_func_start nullsub_47
nullsub_47:
bx lr
thumb_func_end nullsub_47
thumb_func_start nullsub_48
nullsub_48:
bx lr
thumb_func_end nullsub_48
thumb_func_start nullsub_49
nullsub_49:
bx lr
thumb_func_end nullsub_49
thumb_func_start sub_80352A4
sub_80352A4:
push {r4,lr}
bl sub_802F298
cmp r0, 0x3
bne _080352EC
bl sub_802F2C0
ldr r0, _080352F4
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
bl sub_808D8E0
adds r0, r4, 0
bl sub_808D994
adds r1, r0, 0
ldr r0, _080352F8
bl strcpy
ldr r0, _080352FC
ldr r0, [r0]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r1, [r0]
movs r0, 0x6
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095240
movs r0, 0x70
bl sub_80338C4
_080352EC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080352F4: .4byte gUnknown_202E5D8
_080352F8: .4byte gUnknown_202DF98
_080352FC: .4byte gUnknown_203B33C
thumb_func_end sub_80352A4
thumb_func_start sub_8035300
sub_8035300:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08035364
ldr r0, [sp]
adds r1, r0, 0
subs r1, 0x19
adds r2, r0, 0
cmp r1, 0x4
bhi _08035364
lsls r0, r1, 2
ldr r1, _08035324
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035324: .4byte _08035328
.align 2, 0
_08035328:
.4byte _0803533C
.4byte _08035354
.4byte _08035344
.4byte _0803534C
.4byte _08035354
_0803533C:
movs r0, 0x1
bl sub_80338C4
b _08035364
_08035344:
movs r0, 0x7A
bl sub_80338C4
b _08035364
_0803534C:
movs r0, 0x7C
bl sub_80338C4
b _08035364
_08035354:
ldr r0, _0803536C
ldr r0, [r0]
ldr r1, _08035370
adds r0, r1
str r2, [r0]
movs r0, 0x79
bl sub_80338C4
_08035364:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0803536C: .4byte gUnknown_203B33C
_08035370: .4byte 0x00000564
thumb_func_end sub_8035300
thumb_func_start sub_8035374
sub_8035374:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080353AC
ldr r1, [sp]
cmp r1, 0x19
bne _08035390
movs r0, 0x78
bl sub_80338C4
b _080353AC
_08035390:
cmp r1, 0x19
blt _080353AC
cmp r1, 0x22
bgt _080353AC
cmp r1, 0x1E
blt _080353AC
ldr r0, _080353B4
ldr r0, [r0]
ldr r2, _080353B8
adds r0, r2
str r1, [r0]
movs r0, 0x7B
bl sub_80338C4
_080353AC:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080353B4: .4byte gUnknown_203B33C
_080353B8: .4byte 0x00000564
thumb_func_end sub_8035374
thumb_func_start sub_80353BC
sub_80353BC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080353F4
ldr r1, [sp]
cmp r1, 0x19
bne _080353D8
movs r0, 0x78
bl sub_80338C4
b _080353F4
_080353D8:
cmp r1, 0x19
blt _080353F4
cmp r1, 0x26
bgt _080353F4
cmp r1, 0x23
blt _080353F4
ldr r0, _080353FC
ldr r0, [r0]
ldr r2, _08035400
adds r0, r2
str r1, [r0]
movs r0, 0x7D
bl sub_80338C4
_080353F4:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080353FC: .4byte gUnknown_203B33C
_08035400: .4byte 0x00000564
thumb_func_end sub_80353BC
thumb_func_start sub_8035404
sub_8035404:
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803541A
adds r0, r4, 0
bl sub_80338C4
_0803541A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8035404
thumb_func_start sub_8035424
sub_8035424:
push {lr}
movs r0, 0x6
bl sub_80338C4
pop {r0}
bx r0
thumb_func_end sub_8035424
thumb_func_start sub_8035430
sub_8035430:
push {lr}
movs r0, 0x4F
bl sub_80338C4
pop {r0}
bx r0
thumb_func_end sub_8035430
thumb_func_start nullsub_50
nullsub_50:
bx lr
thumb_func_end nullsub_50
thumb_func_start nullsub_51
nullsub_51:
bx lr
thumb_func_end nullsub_51
thumb_func_start sub_8035444
sub_8035444:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x84
mov r8, r0
adds r5, r1, 0
ldr r4, _080354C0
movs r0, 0x6C
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0, 0x60]
str r5, [r0, 0x64]
mov r1, r8
str r1, [r0, 0x68]
ldr r2, _080354C4
mov r12, r2
mov r9, r4
movs r3, 0
movs r2, 0x3
_08035472:
ldr r1, [r4]
adds r1, r3
mov r0, r12
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08035472
mov r0, r9
ldr r1, [r0]
ldr r0, _080354C8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
bl sub_8004914
mov r1, r9
ldr r0, [r1]
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x2
bl sub_8099690
movs r0, 0
bl sub_80073B8
mov r2, r8
lsls r0, r2, 2
ldr r1, _080354CC
adds r0, r1
ldr r1, [r0]
movs r5, 0
b _08035542
.align 2, 0
_080354C0: .4byte gUnknown_203B340
_080354C4: .4byte gUnknown_80E4A10
_080354C8: .4byte gUnknown_80E4A28
_080354CC: .4byte gUnknown_80E591C
_080354D0:
ldr r2, [r1, 0x8]
movs r3, 0x4
ldrsh r0, [r1, r3]
cmp r0, 0
blt _080354DE
adds r5, r0, 0
b _080354E4
_080354DE:
movs r6, 0x4
ldrsh r0, [r1, r6]
subs r5, r0
_080354E4:
movs r7, 0x2
ldrsh r6, [r1, r7]
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0x1
beq _080354FA
cmp r0, 0x2
beq _08035514
adds r4, r1, 0
adds r4, 0xC
b _08035532
_080354FA:
add r3, sp, 0x4
ldrb r0, [r2]
adds r4, r1, 0
adds r4, 0xC
cmp r0, 0
beq _0803552C
_08035506:
strb r0, [r3]
adds r2, 0x1
adds r3, 0x1
ldrb r0, [r2]
cmp r0, 0
bne _08035506
b _0803552C
_08035514:
add r3, sp, 0x4
ldrb r0, [r2]
adds r4, r1, 0
adds r4, 0xC
cmp r0, 0
beq _0803552C
_08035520:
strb r0, [r3]
adds r2, 0x1
adds r3, 0x1
ldrb r0, [r2]
cmp r0, 0
bne _08035520
_0803552C:
movs r0, 0
strb r0, [r3]
add r2, sp, 0x4
_08035532:
movs r0, 0
str r0, [sp]
adds r0, r6, 0
adds r1, r5, 0
movs r3, 0
bl xxx_call_draw_string
adds r1, r4, 0
_08035542:
ldr r0, [r1, 0x8]
cmp r0, 0
bne _080354D0
movs r0, 0
bl sub_80073E0
movs r0, 0
bl sub_80063CC
ldr r2, _08035570
movs r0, 0x9
movs r1, 0
ldr r2, [r2]
bl sub_8099AFC
movs r0, 0x1
add sp, 0x84
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08035570: .4byte gCreditsTable
thumb_func_end sub_8035444
thumb_func_start sub_8035574
sub_8035574:
push {r4,lr}
ldr r1, _0803558C
ldr r0, [r1]
ldr r0, [r0, 0x60]
adds r4, r1, 0
cmp r0, 0x4
bhi _08035654
lsls r0, 2
ldr r1, _08035590
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803558C: .4byte gUnknown_203B340
_08035590: .4byte _08035594
.align 2, 0
_08035594:
.4byte _080355A8
.4byte _080355D0
.4byte _080355E8
.4byte _08035610
.4byte _08035638
_080355A8:
bl sub_8099B94
lsls r0, 24
cmp r0, 0
bne _08035654
ldr r0, _080355C8
ldr r1, [r0]
movs r0, 0x1
str r0, [r1, 0x60]
ldr r2, _080355CC
movs r0, 0x9
movs r1, 0x1E
ldr r2, [r2]
bl sub_8099A5C
b _08035654
.align 2, 0
_080355C8: .4byte gUnknown_203B340
_080355CC: .4byte gCreditsTable
_080355D0:
bl sub_8099B94
lsls r0, 24
cmp r0, 0
bne _08035654
ldr r0, _080355E4
ldr r1, [r0]
movs r0, 0x2
str r0, [r1, 0x60]
b _08035654
.align 2, 0
_080355E4: .4byte gUnknown_203B340
_080355E8:
ldr r1, [r4]
ldr r0, [r1, 0x64]
cmp r0, 0
bgt _08035600
movs r0, 0x3
str r0, [r1, 0x60]
ldr r2, _0803560C
movs r0, 0x9
movs r1, 0x1E
ldr r2, [r2]
bl sub_8099AFC
_08035600:
ldr r1, [r4]
ldr r0, [r1, 0x64]
subs r0, 0x1
str r0, [r1, 0x64]
b _08035654
.align 2, 0
_0803560C: .4byte gCreditsTable
_08035610:
bl sub_8099B94
lsls r0, 24
cmp r0, 0
bne _08035654
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, _08035634
ldr r1, [r0]
movs r0, 0x4
str r0, [r1, 0x60]
b _08035654
.align 2, 0
_08035634: .4byte gUnknown_203B340
_08035638:
movs r0, 0
bl sub_8099690
ldr r2, _08035650
movs r0, 0x1
movs r1, 0
ldr r2, [r2]
bl sub_8099A5C
movs r0, 0x3
b _08035656
.align 2, 0
_08035650: .4byte gCreditsTable
_08035654:
movs r0, 0
_08035656:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8035574
thumb_func_start sub_803565C
sub_803565C:
push {r4,lr}
ldr r4, _08035674
ldr r0, [r4]
cmp r0, 0
beq _0803566E
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803566E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08035674: .4byte gUnknown_203B340
thumb_func_end sub_803565C
thumb_func_start sub_8035678
sub_8035678:
push {r4,lr}
ldr r4, _0803569C
movs r0, 0x8
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0
str r1, [r0]
str r1, [r0, 0x4]
movs r0, 0
movs r1, 0x39
bl sub_80015C0
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0803569C: .4byte gUnknown_203B344
thumb_func_end sub_8035678
thumb_func_start sub_80356A0
sub_80356A0:
push {r4,lr}
ldr r0, _080356C4
ldrh r4, [r0]
ldr r3, _080356C8
ldr r2, _080356CC
ldr r1, [r2]
ldr r0, [r1, 0x4]
lsls r0, 1
adds r0, r3
ldrh r3, [r0]
ldr r0, [r1]
cmp r0, 0x4
bhi _08035734
lsls r0, 2
ldr r1, _080356D0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080356C4: .4byte gUnknown_20255F0
_080356C8: .4byte gUnknown_80E5990
_080356CC: .4byte gUnknown_203B344
_080356D0: .4byte _080356D4
.align 2, 0
_080356D4:
.4byte _08035728
.4byte _080356E8
.4byte _08035710
.4byte _0803574C
.4byte _08035730
_080356E8:
cmp r3, 0
bne _080356F4
ldr r1, [r2]
movs r0, 0x4
str r0, [r1]
b _08035734
_080356F4:
cmp r4, r3
bne _08035700
ldr r1, [r2]
movs r0, 0x2
str r0, [r1]
b _08035734
_08035700:
ands r3, r4
cmp r3, r4
bne _08035728
ldr r1, [r2]
ldr r0, [r1, 0x4]
cmp r0, 0
bne _08035734
b _0803572A
_08035710:
cmp r4, 0
bne _08035722
ldr r1, [r2]
movs r0, 0x1
str r0, [r1]
ldr r0, [r1, 0x4]
adds r0, 0x1
str r0, [r1, 0x4]
b _08035734
_08035722:
ands r3, r4
cmp r3, r4
beq _08035734
_08035728:
ldr r1, [r2]
_0803572A:
movs r0, 0x3
str r0, [r1]
b _08035734
_08035730:
movs r0, 0x3
b _0803574E
_08035734:
movs r0, 0
movs r1, 0x39
bl sub_8001658
cmp r0, 0
bne _08035744
movs r0, 0
b _0803574E
_08035744:
ldr r0, _08035754
ldr r1, [r0]
movs r0, 0x3
str r0, [r1]
_0803574C:
movs r0, 0x2
_0803574E:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08035754: .4byte gUnknown_203B344
thumb_func_end sub_80356A0
thumb_func_start sub_8035758
sub_8035758:
push {r4,lr}
ldr r4, _08035770
ldr r0, [r4]
cmp r0, 0
beq _0803576A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803576A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08035770: .4byte gUnknown_203B344
thumb_func_end sub_8035758
thumb_func_start InitMainMenu
InitMainMenu:
push {r4,r5,lr}
ldr r5, _080357C8
ldr r0, [r5]
cmp r0, 0
bne _08035790
movs r0, 0x40
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
movs r2, 0x40
bl MemoryFill8
_08035790:
ldr r0, [r5]
ldr r1, _080357CC
str r1, [r0]
movs r2, 0x1
str r2, [r0, 0x4]
str r2, [r0, 0x8]
adds r1, 0x23
strh r1, [r0, 0x38]
movs r1, 0x1
negs r1, r1
str r1, [r0, 0x3C]
adds r0, 0x2E
movs r4, 0
strb r4, [r0]
ldr r0, [r5]
adds r0, 0x2C
strb r2, [r0]
ldr r0, [r5]
adds r0, 0x2D
strb r4, [r0]
bl sub_8035DA0
ldr r0, [r5]
adds r0, 0x3A
strb r4, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080357C8: .4byte gUnknown_203B348
_080357CC: .4byte 0x0000ffdc
thumb_func_end InitMainMenu
thumb_func_start sub_80357D0
sub_80357D0:
push {r4,lr}
ldr r4, _080357E8
ldr r0, [r4]
cmp r0, 0
beq _080357E2
bl MemoryFree
movs r0, 0
str r0, [r4]
_080357E2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080357E8: .4byte gUnknown_203B348
thumb_func_end sub_80357D0
thumb_func_start SetUpMenu
SetUpMenu:
push {lr}
ldr r0, _08035810
ldr r0, [r0]
ldr r1, [r0]
ldr r0, [r0, 0x4]
cmp r1, r0
bne _080357FC
b _08035958
_080357FC:
subs r0, 0x1
cmp r0, 0x2D
bls _08035804
b _08035950
_08035804:
lsls r0, 2
ldr r1, _08035814
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035810: .4byte gUnknown_203B348
_08035814: .4byte _08035818
.align 2, 0
_08035818:
.4byte _080358D0
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _080358E0
.4byte _080358E0
.4byte _080358E0
.4byte _080358E0
.4byte _08035934
.4byte _0803590C
.4byte _080358F0
.4byte _08035912
.4byte _08035918
.4byte _0803591E
.4byte _0803594C
.4byte _08035950
.4byte _08035950
.4byte _080358F6
.4byte _080358F6
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035924
.4byte _08035924
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _08035950
.4byte _0803593A
.4byte _0803593A
.4byte _0803593A
.4byte _0803593A
.4byte _0803593A
.4byte _0803593A
_080358D0:
bl sub_8094C14
movs r0, 0
bl sub_8099690
bl sub_8035E10
b _08035950
_080358E0:
ldr r0, _080358EC
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8039254
b _08035950
.align 2, 0
_080358EC: .4byte gUnknown_203B348
_080358F0:
bl sub_8036400
b _08035950
_080358F6:
ldr r0, _08035908
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8035DB4
bl sub_8036FDC
b _08035950
.align 2, 0
_08035908: .4byte gUnknown_203B348
_0803590C:
bl sub_803225C
b _08035950
_08035912:
bl sub_80398AC
b _08035950
_08035918:
bl sub_803A1D8
b _08035950
_0803591E:
bl sub_803A1E4
b _08035950
_08035924:
ldr r0, _08035930
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8038900
b _08035950
.align 2, 0
_08035930: .4byte gUnknown_203B348
_08035934:
bl sub_80382A0
b _08035950
_0803593A:
ldr r0, _08035948
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_803850C
b _08035950
.align 2, 0
_08035948: .4byte gUnknown_203B348
_0803594C:
bl sub_803A200
_08035950:
ldr r0, _0803595C
ldr r1, [r0]
ldr r0, [r1, 0x4]
str r0, [r1]
_08035958:
pop {r0}
bx r0
.align 2, 0
_0803595C: .4byte gUnknown_203B348
thumb_func_end SetUpMenu
thumb_func_start UpdateMenu
UpdateMenu:
push {lr}
ldr r2, _0803597C
ldr r0, _08035980
ldr r0, [r0]
ldr r0, [r0, 0x4]
subs r0, 0x1
cmp r0, 0x2D
bls _08035972
b _08035AA6
_08035972:
lsls r0, 2
ldr r1, _08035984
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803597C: .4byte 0x0000ffdc
_08035980: .4byte gUnknown_203B348
_08035984: .4byte _08035988
.align 2, 0
_08035988:
.4byte _08035A40
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035A46
.4byte _08035A46
.4byte _08035A46
.4byte _08035A46
.4byte _08035A8E
.4byte _08035A52
.4byte _08035A4C
.4byte _08035A58
.4byte _08035A5E
.4byte _08035A70
.4byte _08035AA0
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035AA6
.4byte _08035A88
.4byte _08035A88
.4byte _08035AA6
.4byte _08035A94
.4byte _08035A94
.4byte _08035A94
.4byte _08035A94
.4byte _08035A94
.4byte _08035A9A
.4byte _08035A9A
.4byte _08035A9A
.4byte _08035A9A
.4byte _08035A9A
.4byte _08035A9A
_08035A40:
bl sub_8035EEC
b _08035AA4
_08035A46:
bl sub_803941C
b _08035AA4
_08035A4C:
bl sub_8036448
b _08035A62
_08035A52:
bl sub_8032318
b _08035A62
_08035A58:
bl sub_8039928
b _08035A62
_08035A5E:
bl sub_803A1DC
_08035A62:
movs r2, 0x1
cmp r0, 0x3
beq _08035AA6
ldr r2, _08035A6C
b _08035AA6
.align 2, 0
_08035A6C: .4byte 0x0000ffdc
_08035A70:
bl sub_803A1E8
movs r2, 0x5
cmp r0, 0x3
beq _08035AA6
ldr r2, _08035A84
cmp r0, 0x2
bne _08035AA6
movs r2, 0x1
b _08035AA6
.align 2, 0
_08035A84: .4byte 0x0000ffdc
_08035A88:
bl sub_8038A90
b _08035AA4
_08035A8E:
bl sub_80382C0
b _08035AA4
_08035A94:
bl sub_80383D4
b _08035AA4
_08035A9A:
bl sub_8038630
b _08035AA4
_08035AA0:
bl sub_803A2A4
_08035AA4:
adds r2, r0, 0
_08035AA6:
ldr r0, _08035AB8
cmp r2, r0
beq _08035AB2
ldr r0, _08035ABC
ldr r0, [r0]
str r2, [r0, 0x4]
_08035AB2:
adds r0, r2, 0
pop {r1}
bx r1
.align 2, 0
_08035AB8: .4byte 0x0000ffdc
_08035ABC: .4byte gUnknown_203B348
thumb_func_end UpdateMenu
thumb_func_start CleanUpMenu
CleanUpMenu:
push {lr}
ldr r0, _08035AE4
ldr r0, [r0]
ldr r1, [r0, 0x8]
ldr r0, [r0, 0x4]
cmp r1, r0
bne _08035AD0
b _08035BF8
_08035AD0:
subs r0, r1, 0x1
cmp r0, 0x2D
bls _08035AD8
b _08035BF0
_08035AD8:
lsls r0, 2
ldr r1, _08035AE8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035AE4: .4byte gUnknown_203B348
_08035AE8: .4byte _08035AEC
.align 2, 0
_08035AEC:
.4byte _08035BA4
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BAA
.4byte _08035BAA
.4byte _08035BAA
.4byte _08035BAA
.4byte _08035BDA
.4byte _08035BBC
.4byte _08035BB0
.4byte _08035BC2
.4byte _08035BC8
.4byte _08035BCE
.4byte _08035BEC
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BB6
.4byte _08035BB6
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BF0
.4byte _08035BD4
.4byte _08035BD4
.4byte _08035BF0
.4byte _08035BE0
.4byte _08035BE0
.4byte _08035BE0
.4byte _08035BE0
.4byte _08035BE0
.4byte _08035BE6
.4byte _08035BE6
.4byte _08035BE6
.4byte _08035BE6
.4byte _08035BE6
.4byte _08035BE6
_08035BA4:
bl sub_8035EC0
b _08035BF0
_08035BAA:
bl sub_80393F0
b _08035BF0
_08035BB0:
bl sub_8036B04
b _08035BF0
_08035BB6:
bl sub_80370D4
b _08035BF0
_08035BBC:
bl sub_80327E4
b _08035BF0
_08035BC2:
bl sub_80399E4
b _08035BF0
_08035BC8:
bl nullsub_55
b _08035BF0
_08035BCE:
bl sub_803A1EC
b _08035BF0
_08035BD4:
bl sub_8038A5C
b _08035BF0
_08035BDA:
bl sub_80382AC
b _08035BF0
_08035BE0:
bl sub_80383A8
b _08035BF0
_08035BE6:
bl sub_8038604
b _08035BF0
_08035BEC:
bl sub_803A278
_08035BF0:
ldr r0, _08035BFC
ldr r1, [r0]
ldr r0, [r1, 0x4]
str r0, [r1, 0x8]
_08035BF8:
pop {r0}
bx r0
.align 2, 0
_08035BFC: .4byte gUnknown_203B348
thumb_func_end CleanUpMenu
thumb_func_start sub_8035C00
sub_8035C00:
ldr r1, _08035C0C
ldr r1, [r1]
ldr r0, [r0]
str r0, [r1, 0x2C]
bx lr
.align 2, 0
_08035C0C: .4byte gUnknown_203B348
thumb_func_end sub_8035C00
thumb_func_start sub_8035C10
sub_8035C10:
ldr r0, _08035C18
ldr r0, [r0]
adds r0, 0x2C
bx lr
.align 2, 0
_08035C18: .4byte gUnknown_203B348
thumb_func_end sub_8035C10
thumb_func_start sub_8035C1C
sub_8035C1C:
ldr r2, _08035C38
ldr r0, [r2]
adds r0, 0x2E
movs r3, 0
strb r3, [r0]
ldr r0, [r2]
adds r0, 0x2C
movs r1, 0x1
strb r1, [r0]
ldr r0, [r2]
adds r0, 0x2D
strb r3, [r0]
bx lr
.align 2, 0
_08035C38: .4byte gUnknown_203B348
thumb_func_end sub_8035C1C
thumb_func_start SetMenuItems
SetMenuItems:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r6, r0, 0
adds r4, r1, 0
adds r5, r2, 0
ldr r0, [sp, 0x24]
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r0, r5, 1
adds r0, r5
lsls r0, 3
adds r0, r4
ldm r3!, {r1,r2,r7}
stm r0!, {r1,r2,r7}
ldm r3!, {r1,r2,r7}
stm r0!, {r1,r2,r7}
bl sub_8004914
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
mov r0, r8
cmp r0, 0
beq _08035C90
lsls r4, r5, 2
adds r0, r4, r5
lsls r0, 4
adds r0, r6, r0
ldr r1, [sp, 0x28]
str r1, [sp]
str r5, [sp, 0x4]
ldr r1, [sp, 0x20]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _08035CA8
_08035C90:
lsls r4, r5, 2
adds r0, r4, r5
lsls r0, 4
adds r0, r6, r0
mov r1, r8
str r1, [sp]
str r5, [sp, 0x4]
ldr r1, [sp, 0x20]
movs r2, 0
movs r3, 0
bl sub_8012E04
_08035CA8:
adds r0, r4, r5
lsls r0, 4
adds r0, r6
adds r0, 0x4C
movs r1, 0x1
strb r1, [r0]
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end SetMenuItems
thumb_func_start sub_8035CC0
sub_8035CC0:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_8006518
lsls r1, r4, 1
adds r1, r4
lsls r1, 3
adds r1, r5
ldr r0, _08035CF0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
bl sub_8004914
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08035CF0: .4byte gUnknown_80E59A8
thumb_func_end sub_8035CC0
thumb_func_start sub_8035CF4
sub_8035CF4:
push {lr}
adds r3, r0, 0
lsls r0, r1, 2
adds r0, r1
lsls r0, 4
adds r0, r3
adds r1, r0, 0
adds r1, 0x4C
strb r2, [r1]
adds r2, r0, 0
adds r2, 0x4D
movs r1, 0x1
strb r1, [r2]
subs r1, 0x2
str r1, [r0, 0x48]
bl sub_8012EBC
pop {r0}
bx r0
thumb_func_end sub_8035CF4
thumb_func_start sub_8035D1C
sub_8035D1C:
ldr r0, _08035D28
ldr r1, [r0]
ldr r0, _08035D2C
strh r0, [r1, 0x38]
bx lr
.align 2, 0
_08035D28: .4byte gUnknown_203B348
_08035D2C: .4byte 0x0000ffff
thumb_func_end sub_8035D1C
thumb_func_start sub_8035D30
sub_8035D30:
ldr r1, _08035D38
ldr r1, [r1]
strh r0, [r1, 0x38]
bx lr
.align 2, 0
_08035D38: .4byte gUnknown_203B348
thumb_func_end sub_8035D30
thumb_func_start sub_8035D3C
sub_8035D3C:
ldr r0, _08035D48
ldr r0, [r0]
movs r1, 0x38
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_08035D48: .4byte gUnknown_203B348
thumb_func_end sub_8035D3C
thumb_func_start sub_8035D4C
sub_8035D4C:
ldr r0, _08035D54
ldr r0, [r0]
bx lr
.align 2, 0
_08035D54: .4byte gUnknown_203B348
thumb_func_end sub_8035D4C
thumb_func_start sub_8035D58
sub_8035D58:
ldr r0, _08035D64
ldr r1, [r0]
movs r0, 0x1
negs r0, r0
str r0, [r1, 0x3C]
bx lr
.align 2, 0
_08035D64: .4byte gUnknown_203B348
thumb_func_end sub_8035D58
thumb_func_start sub_8035D68
sub_8035D68:
ldr r1, _08035D70
ldr r1, [r1]
str r0, [r1, 0x3C]
bx lr
.align 2, 0
_08035D70: .4byte gUnknown_203B348
thumb_func_end sub_8035D68
thumb_func_start sub_8035D74
sub_8035D74:
ldr r0, _08035D7C
ldr r0, [r0]
ldr r0, [r0, 0x3C]
bx lr
.align 2, 0
_08035D7C: .4byte gUnknown_203B348
thumb_func_end sub_8035D74
thumb_func_start sub_8035D80
sub_8035D80:
ldr r1, _08035D90
ldr r2, [r1]
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2, 0x30]
str r1, [r2, 0x34]
bx lr
.align 2, 0
_08035D90: .4byte gUnknown_203B348
thumb_func_end sub_8035D80
thumb_func_start sub_8035D94
sub_8035D94:
ldr r0, _08035D9C
ldr r0, [r0]
adds r0, 0x30
bx lr
.align 2, 0
_08035D9C: .4byte gUnknown_203B348
thumb_func_end sub_8035D94
thumb_func_start sub_8035DA0
sub_8035DA0:
ldr r2, _08035DB0
ldr r0, [r2]
adds r0, 0x30
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
str r1, [r0, 0x34]
bx lr
.align 2, 0
_08035DB0: .4byte gUnknown_203B348
thumb_func_end sub_8035DA0
thumb_func_start sub_8035DB4
sub_8035DB4:
push {lr}
movs r1, 0x8
subs r0, 0x13
cmp r0, 0x7
bhi _08035E0A
lsls r0, 2
ldr r1, _08035DC8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08035DC8: .4byte _08035DCC
.align 2, 0
_08035DCC:
.4byte _08035DEC
.4byte _08035DF0
.4byte _08035DF4
.4byte _08035DF8
.4byte _08035DFC
.4byte _08035E00
.4byte _08035E04
.4byte _08035E08
_08035DEC:
movs r1, 0
b _08035E0A
_08035DF0:
movs r1, 0x1
b _08035E0A
_08035DF4:
movs r1, 0x2
b _08035E0A
_08035DF8:
movs r1, 0x3
b _08035E0A
_08035DFC:
movs r1, 0x4
b _08035E0A
_08035E00:
movs r1, 0x5
b _08035E0A
_08035E04:
movs r1, 0x6
b _08035E0A
_08035E08:
movs r1, 0x7
_08035E0A:
adds r0, r1, 0
pop {r1}
bx r1
thumb_func_end sub_8035DB4
thumb_func_start sub_8035E10
sub_8035E10:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r5, _08035EB8
ldr r0, [r5]
cmp r0, 0
bne _08035E34
movs r4, 0xD4
lsls r4, 1
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_08035E34:
mov r12, r5
movs r0, 0xA2
lsls r0, 1
mov r8, r0
ldr r4, _08035EBC
movs r3, 0
movs r2, 0x3
_08035E42:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08035E42
bl sub_8004914
ldr r4, _08035EB8
ldr r0, [r4]
movs r6, 0xA2
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803628C
ldr r0, [r4]
movs r7, 0xD2
lsls r7, 1
adds r0, r7
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl SetMainMenuType
lsls r0, 24
cmp r0, 0
beq _08035E9A
ldr r0, [r4]
adds r0, 0x4
movs r1, 0x2
movs r2, 0
bl sub_8035CF4
_08035E9A:
ldr r0, [r4]
adds r0, 0x4
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08035EB8: .4byte gUnknown_203B34C
_08035EBC: .4byte gUnknown_80E59C8
thumb_func_end sub_8035E10
thumb_func_start sub_8035EC0
sub_8035EC0:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _08035EE8
ldr r0, [r4]
cmp r0, 0
beq _08035EE0
bl MemoryFree
movs r0, 0
str r0, [r4]
_08035EE0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08035EE8: .4byte gUnknown_203B34C
thumb_func_end sub_8035EC0
thumb_func_start sub_8035EEC
sub_8035EEC:
push {r4-r6,lr}
sub sp, 0x4
ldr r6, _08035F64
str r6, [sp]
ldr r4, _08035F68
ldr r0, [r4]
ldr r5, [r0]
cmp r5, 0xC
beq _08035FB8
cmp r5, 0xC
bls _08035F04
b _0803601A
_08035F04:
cmp r5, 0x1
beq _08035F0A
b _0803601A
_08035F0A:
adds r0, 0xA4
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0x4
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08035F28
ldr r0, [r4]
adds r0, 0x4
mov r1, sp
bl sub_8013114
_08035F28:
bl SetMainMenuType
lsls r0, 24
cmp r0, 0
beq _08035F4A
ldr r0, [r4]
adds r0, 0x4
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
ldr r0, [r4]
adds r0, 0x4
movs r1, 0x2
movs r2, 0
bl sub_8035CF4
_08035F4A:
ldr r1, [sp]
cmp r1, 0xC
beq _08035FA8
cmp r1, 0xC
bhi _08035F6C
cmp r1, 0x3
beq _08035FAC
cmp r1, 0x3
bcc _0803601A
cmp r1, 0x6
bcc _0803601A
b _08035FAC
.align 2, 0
_08035F64: .4byte 0x0000ffdc
_08035F68: .4byte gUnknown_203B34C
_08035F6C:
cmp r1, r6
beq _08035FF2
cmp r1, r6
bhi _08035F7A
cmp r1, 0x10
bhi _0803601A
b _08035FAC
_08035F7A:
ldr r0, _08035FA4
cmp r1, r0
bne _0803601A
ldr r0, [r4]
str r5, [r0]
str r6, [sp]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x4
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
ldr r0, [r4]
adds r0, 0x4
movs r1, 0x2
movs r2, 0
bl sub_8035CF4
b _0803601A
.align 2, 0
_08035FA4: .4byte 0x0000ffdd
_08035FA8:
bl sub_8035DA0
_08035FAC:
ldr r1, _08035FB4
ldr r0, [sp]
str r0, [r1]
b _0803601A
.align 2, 0
_08035FB4: .4byte gUnknown_203B350
_08035FB8:
adds r0, 0x54
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08035FCE
ldr r0, [r4]
adds r0, 0x54
mov r1, sp
bl sub_8013114
_08035FCE:
ldr r1, [sp]
cmp r1, 0x12
beq _08036008
cmp r1, 0x12
bhi _08035FDE
cmp r1, 0x11
beq _08035FFC
b _0803601A
_08035FDE:
cmp r1, r6
beq _08036018
ldr r0, _08035FF8
cmp r1, r0
bne _0803601A
bl sub_803623C
ldr r1, [r4]
movs r0, 0x1
str r0, [r1]
_08035FF2:
str r6, [sp]
b _0803601A
.align 2, 0
_08035FF8: .4byte 0x0000ffdd
_08035FFC:
ldr r0, _08036004
str r1, [r0]
str r5, [sp]
b _0803601A
.align 2, 0
_08036004: .4byte gUnknown_203B354
_08036008:
ldr r0, _08036014
str r1, [r0]
movs r0, 0x14
str r0, [sp]
b _0803601A
.align 2, 0
_08036014: .4byte gUnknown_203B354
_08036018:
str r1, [sp]
_0803601A:
ldr r0, [sp]
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8035EEC
thumb_func_start SetMainMenuType
SetMainMenuType:
push {r4-r6,lr}
sub sp, 0x10
ldr r6, _08036048
ldr r2, [r6]
ldr r0, [r2, 0x8]
movs r3, 0x30
ldrsh r1, [r2, r3]
lsls r1, 3
adds r1, r0
ldr r5, [r1, 0x4]
movs r0, 0xD2
lsls r0, 1
adds r1, r2, r0
ldr r0, [r1]
cmp r0, r5
bne _0803604C
movs r0, 0
b _08036226
.align 2, 0
_08036048: .4byte gUnknown_203B34C
_0803604C:
str r5, [r1]
movs r4, 0xA2
lsls r4, 1
adds r0, r2, r4
movs r1, 0x2
bl sub_8035CC0
ldr r0, [r6]
adds r0, r4
movs r1, 0x3
bl sub_8035CC0
subs r0, r5, 0x3
cmp r0, 0xD
bls _0803606C
b _08036224
_0803606C:
lsls r0, 2
ldr r1, _08036078
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08036078: .4byte _0803607C
.align 2, 0
_0803607C:
.4byte _08036114
.4byte _08036224
.4byte _08036224
.4byte _080360F4
.4byte _08036134
.4byte _08036154
.4byte _08036224
.4byte _08036174
.4byte _08036194
.4byte _080361B4
.4byte _080360D4
.4byte _080361D4
.4byte _080360B4
.4byte _08036204
_080360B4:
ldr r0, _080360C8
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _080360CC
ldr r2, _080360D0
b _080361E4
.align 2, 0
_080360C8: .4byte gUnknown_203B34C
_080360CC: .4byte gUnknown_80E5CB4
_080360D0: .4byte gUnknown_80E6030
_080360D4:
ldr r0, _080360E8
ldr r1, [r0]
adds r0, r1, 0x4
movs r3, 0xA2
lsls r3, 1
adds r1, r3
ldr r3, _080360EC
ldr r2, _080360F0
b _080361E4
.align 2, 0
_080360E8: .4byte gUnknown_203B34C
_080360EC: .4byte gUnknown_80E5CB4
_080360F0: .4byte gUnknown_80E5F80
_080360F4:
ldr r0, _08036108
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _0803610C
ldr r2, _08036110
b _080361E4
.align 2, 0
_08036108: .4byte gUnknown_203B34C
_0803610C: .4byte gUnknown_80E5CB4
_08036110: .4byte gUnknown_80E5F1C
_08036114:
ldr r0, _08036128
ldr r1, [r0]
adds r0, r1, 0x4
movs r3, 0xA2
lsls r3, 1
adds r1, r3
ldr r3, _0803612C
ldr r2, _08036130
b _080361E4
.align 2, 0
_08036128: .4byte gUnknown_203B34C
_0803612C: .4byte gUnknown_80E5CB4
_08036130: .4byte gUnknown_80E5CCC
_08036134:
ldr r0, _08036148
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _0803614C
ldr r2, _08036150
b _080361E4
.align 2, 0
_08036148: .4byte gUnknown_203B34C
_0803614C: .4byte gUnknown_80E5CB4
_08036150: .4byte gUnknown_80E5DA0
_08036154:
ldr r0, _08036168
ldr r1, [r0]
adds r0, r1, 0x4
movs r3, 0xA2
lsls r3, 1
adds r1, r3
ldr r3, _0803616C
ldr r2, _08036170
b _080361E4
.align 2, 0
_08036168: .4byte gUnknown_203B34C
_0803616C: .4byte gUnknown_80E5CB4
_08036170: .4byte gUnknown_80E5DF0
_08036174:
ldr r0, _08036188
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _0803618C
ldr r2, _08036190
b _080361E4
.align 2, 0
_08036188: .4byte gUnknown_203B34C
_0803618C: .4byte gUnknown_80E5CB4
_08036190: .4byte gUnknown_80E5D0C
_08036194:
ldr r0, _080361A8
ldr r1, [r0]
adds r0, r1, 0x4
movs r3, 0xA2
lsls r3, 1
adds r1, r3
ldr r3, _080361AC
ldr r2, _080361B0
b _080361E4
.align 2, 0
_080361A8: .4byte gUnknown_203B34C
_080361AC: .4byte gUnknown_80E5CB4
_080361B0: .4byte gUnknown_80E5E5C
_080361B4:
ldr r0, _080361C8
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _080361CC
ldr r2, _080361D0
b _080361E4
.align 2, 0
_080361C8: .4byte gUnknown_203B34C
_080361CC: .4byte gUnknown_80E5CB4
_080361D0: .4byte gUnknown_80E5EBC
_080361D4:
ldr r0, _080361F8
ldr r1, [r0]
adds r0, r1, 0x4
movs r3, 0xA2
lsls r3, 1
adds r1, r3
ldr r3, _080361FC
ldr r2, _08036200
_080361E4:
str r2, [sp]
movs r2, 0
str r2, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x2
bl SetMenuItems
b _08036224
.align 2, 0
_080361F8: .4byte gUnknown_203B34C
_080361FC: .4byte gUnknown_80E5CB4
_08036200: .4byte gUnknown_80E5FCC
_08036204:
ldr r0, _08036230
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _08036234
ldr r2, _08036238
str r2, [sp]
movs r2, 0
str r2, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x2
bl SetMenuItems
_08036224:
movs r0, 0x1
_08036226:
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08036230: .4byte gUnknown_203B34C
_08036234: .4byte gUnknown_80E5CB4
_08036238: .4byte gUnknown_80E5D48
thumb_func_end SetMainMenuType
thumb_func_start sub_803623C
sub_803623C:
push {r4,lr}
ldr r4, _08036288
ldr r0, [r4]
movs r1, 0xA2
lsls r1, 1
adds r0, r1
movs r1, 0x1
bl sub_8035CC0
bl sub_803628C
ldr r0, [r4]
movs r1, 0xD2
lsls r1, 1
adds r0, r1
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl SetMainMenuType
lsls r0, 24
cmp r0, 0
beq _08036276
ldr r0, [r4]
adds r0, 0x4
movs r1, 0x2
movs r2, 0
bl sub_8035CF4
_08036276:
ldr r0, [r4]
adds r0, 0x4
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08036288: .4byte gUnknown_203B34C
thumb_func_end sub_803623C
thumb_func_start sub_803628C
sub_803628C:
push {r4,lr}
sub sp, 0x10
bl sub_8011C34
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0803629E
b _080363A4
_0803629E:
movs r0, 0x1
bl sub_8095324
cmp r0, 0
bne _08036344
movs r0, 0x7
bl sub_8095324
cmp r0, 0
beq _080362FC
bl sub_803D0D8
lsls r0, 24
cmp r0, 0
beq _080362DC
ldr r0, _080362D0
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _080362D4
ldr r2, _080362D8
b _0803637C
.align 2, 0
_080362D0: .4byte gUnknown_203B34C
_080362D4: .4byte gUnknown_80E5A78
_080362D8: .4byte gUnknown_80E5C18
_080362DC:
ldr r0, _080362F0
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _080362F4
ldr r2, _080362F8
b _0803637C
.align 2, 0
_080362F0: .4byte gUnknown_203B34C
_080362F4: .4byte gUnknown_80E5BC4
_080362F8: .4byte gUnknown_80E5BDC
_080362FC:
bl sub_803D0D8
lsls r0, 24
cmp r0, 0
beq _08036324
ldr r0, _08036318
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _0803631C
ldr r2, _08036320
b _0803637C
.align 2, 0
_08036318: .4byte gUnknown_203B34C
_0803631C: .4byte gUnknown_80E5A78
_08036320: .4byte gUnknown_80E5AFC
_08036324:
ldr r0, _08036338
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _0803633C
ldr r2, _08036340
b _0803637C
.align 2, 0
_08036338: .4byte gUnknown_203B34C
_0803633C: .4byte gUnknown_80E5A60
_08036340: .4byte gUnknown_80E5A90
_08036344:
bl sub_803D0D8
lsls r0, 24
cmp r0, 0
beq _0803636C
ldr r0, _08036360
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _08036364
ldr r2, _08036368
b _0803637C
.align 2, 0
_08036360: .4byte gUnknown_203B34C
_08036364: .4byte gUnknown_80E5A78
_08036368: .4byte gUnknown_80E5B8C
_0803636C:
ldr r0, _08036394
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _08036398
ldr r2, _0803639C
_0803637C:
str r2, [sp]
movs r4, 0x1
str r4, [sp, 0x4]
ldr r2, _080363A0
ldr r2, [r2]
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
b _080363C8
.align 2, 0
_08036394: .4byte gUnknown_203B34C
_08036398: .4byte gUnknown_80E5B34
_0803639C: .4byte gUnknown_80E5B4C
_080363A0: .4byte gUnknown_203B350
_080363A4:
ldr r0, _080363D0
ldr r1, [r0]
adds r0, r1, 0x4
movs r2, 0xA2
lsls r2, 1
adds r1, r2
ldr r3, _080363D4
ldr r2, _080363D8
str r2, [sp]
movs r4, 0x1
str r4, [sp, 0x4]
ldr r2, _080363DC
ldr r2, [r2]
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
_080363C8:
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080363D0: .4byte gUnknown_203B34C
_080363D4: .4byte gUnknown_80E59E0
_080363D8: .4byte gUnknown_80E59F8
_080363DC: .4byte gUnknown_203B350
thumb_func_end sub_803628C
thumb_func_start sub_80363E0
sub_80363E0:
push {lr}
ldr r0, _080363F4
ldr r0, [r0]
cmp r0, 0
beq _080363F8
ldr r0, [r0]
cmp r0, 0xC
beq _080363F8
movs r0, 0x1
b _080363FA
.align 2, 0
_080363F4: .4byte gUnknown_203B34C
_080363F8:
movs r0, 0
_080363FA:
pop {r1}
bx r1
thumb_func_end sub_80363E0
thumb_func_start sub_8036400
sub_8036400:
push {r4,r5,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _08036444
movs r4, 0xE8
lsls r4, 2
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
bl sub_8035C1C
bl sub_8035DA0
ldr r1, [r5]
movs r0, 0x13
str r0, [r1, 0x4]
movs r0, 0
bl sub_8036FC4
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08036444: .4byte gUnknown_203B358
thumb_func_end sub_8036400
thumb_func_start sub_8036448
sub_8036448:
push {lr}
ldr r0, _08036460
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x12
bhi _08036524
lsls r0, 2
ldr r1, _08036464
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08036460: .4byte gUnknown_203B358
_08036464: .4byte _08036468
.align 2, 0
_08036468:
.4byte _080364B4
.4byte _080364BA
.4byte _080364C0
.4byte _080364C6
.4byte _080364D2
.4byte _080364CC
.4byte _080364D8
.4byte _080364DE
.4byte _080364E4
.4byte _080364F0
.4byte _080364F6
.4byte _080364FC
.4byte _08036502
.4byte _08036514
.4byte _08036508
.4byte _080364EA
.4byte _0803650E
.4byte _0803651A
.4byte _08036520
_080364B4:
bl sub_803652C
b _08036524
_080364BA:
bl sub_8036590
b _08036524
_080364C0:
bl sub_80365AC
b _08036524
_080364C6:
bl sub_8036674
b _08036524
_080364CC:
bl sub_8036728
b _08036524
_080364D2:
bl sub_8036788
b _08036524
_080364D8:
bl sub_8036830
b _08036524
_080364DE:
bl sub_803689C
b _08036524
_080364E4:
bl sub_80368D4
b _08036524
_080364EA:
bl sub_8036A7C
b _08036524
_080364F0:
bl sub_8036934
b _08036524
_080364F6:
bl sub_8036950
b _08036524
_080364FC:
bl sub_8036AA4
b _08036524
_08036502:
bl sub_80369FC
b _08036524
_08036508:
bl sub_8036A34
b _08036524
_0803650E:
bl sub_8036A54
b _08036524
_08036514:
bl sub_8036A18
b _08036524
_0803651A:
bl sub_8036ADC
b _08036524
_08036520:
movs r0, 0x3
b _08036526
_08036524:
movs r0, 0
_08036526:
pop {r1}
bx r1
thumb_func_end sub_8036448
thumb_func_start sub_803652C
sub_803652C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
adds r1, r0, 0
cmp r1, 0
bne _0803658A
ldr r2, [sp]
cmp r2, 0x1
beq _08036556
cmp r2, 0x1
bgt _0803654C
cmp r2, 0
beq _08036584
b _0803658A
_0803654C:
cmp r2, 0x2
beq _0803656C
cmp r2, 0x7
beq _08036584
b _0803658A
_08036556:
ldr r0, _08036568
ldr r0, [r0]
str r1, [r0, 0x8]
str r2, [r0, 0x10]
movs r0, 0x1
bl sub_8036FC4
b _0803658A
.align 2, 0
_08036568: .4byte gUnknown_203B358
_0803656C:
ldr r0, _08036580
ldr r1, [r0]
movs r0, 0x1
str r0, [r1, 0x8]
str r2, [r1, 0x10]
movs r0, 0x7
bl sub_8036FC4
b _0803658A
.align 2, 0
_08036580: .4byte gUnknown_203B358
_08036584:
movs r0, 0x12
bl sub_8036FC4
_0803658A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_803652C
thumb_func_start sub_8036590
sub_8036590:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080365A4
movs r0, 0x2
bl sub_8036FC4
_080365A4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036590
thumb_func_start sub_80365AC
sub_80365AC:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _080365E8
ldr r0, [r4]
ldr r7, _080365EC
adds r0, r7
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
ldr r6, _080365F0
adds r0, r6
movs r5, 0x1
strb r5, [r0]
ldr r0, [r4]
movs r2, 0x97
lsls r2, 2
mov r8, r2
add r0, r8
strb r1, [r0]
movs r0, 0x1
bl sub_801CA08
cmp r0, 0x3
beq _08036606
cmp r0, 0x3
bhi _080365F4
cmp r0, 0x2
beq _080365FA
b _0803666A
.align 2, 0
_080365E8: .4byte gUnknown_203B358
_080365EC: .4byte 0x0000025e
_080365F0: .4byte 0x0000025d
_080365F4:
cmp r0, 0x4
beq _0803662C
b _0803666A
_080365FA:
bl sub_801CBB8
movs r0, 0
bl sub_8036FC4
b _0803666A
_08036606:
bl sub_801CB24
ldr r1, [r4]
ldr r2, _08036624
adds r1, r2
strb r0, [r1]
ldr r0, [r4]
ldr r1, _08036628
adds r0, r1
strb r5, [r0]
movs r0, 0x3
bl sub_8036FC4
b _0803666A
.align 2, 0
_08036624: .4byte 0x0000025e
_08036628: .4byte 0x0000025d
_0803662C:
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x4]
bl sub_801CB24
ldr r1, [r4]
adds r1, r7
strb r0, [r1]
ldr r0, [r4]
adds r0, r6
strb r5, [r0]
ldr r0, [r4]
movs r2, 0xF2
lsls r2, 1
adds r0, r2
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
add r0, r8
bl sub_801B3C0
movs r0, 0x5
bl sub_8036FC4
_0803666A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80365AC
thumb_func_start sub_8036674
sub_8036674:
push {r4,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r0, 0
bl sub_801CA08
ldr r4, _080366B8
ldr r0, [r4]
movs r1, 0x9A
lsls r1, 1
adds r0, r1
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _080366A6
ldr r0, [r4]
movs r1, 0x9A
lsls r1, 1
adds r0, r1
mov r1, sp
bl sub_8013114
_080366A6:
ldr r0, [sp]
cmp r0, 0x3
beq _080366C6
cmp r0, 0x3
bgt _080366BC
cmp r0, 0
beq _08036700
b _0803671A
.align 2, 0
_080366B8: .4byte gUnknown_203B358
_080366BC:
cmp r0, 0x4
beq _080366CE
cmp r0, 0x7
beq _08036700
b _0803671A
_080366C6:
movs r0, 0x4
bl sub_8036FC4
b _0803671A
_080366CE:
ldr r0, [r4]
movs r1, 0x13
str r1, [r0, 0x4]
movs r1, 0xF2
lsls r1, 1
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x97
lsls r1, 2
adds r0, r1
bl sub_801B3C0
movs r0, 0x5
bl sub_8036FC4
b _0803671A
_08036700:
ldr r0, _08036724
ldr r0, [r0]
movs r1, 0xC2
lsls r1, 1
adds r0, r1
movs r1, 0x3
bl sub_8035CC0
bl sub_801CCD8
movs r0, 0x2
bl sub_8036FC4
_0803671A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08036724: .4byte gUnknown_203B358
thumb_func_end sub_8036674
thumb_func_start sub_8036728
sub_8036728:
push {r4,lr}
bl sub_801B410
cmp r0, 0x1
beq _08036780
cmp r0, 0x1
bcc _08036780
cmp r0, 0x3
bhi _08036780
bl sub_801B450
bl sub_8004914
ldr r4, _08036778
ldr r0, [r4]
movs r1, 0xF2
lsls r1, 1
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x1
bl sub_801CB5C
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0x13
bne _0803677C
adds r0, r4, 0
adds r0, 0x44
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x3
bl sub_8036FC4
b _08036780
.align 2, 0
_08036778: .4byte gUnknown_203B358
_0803677C:
bl sub_8036FC4
_08036780:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8036728
thumb_func_start sub_8036788
sub_8036788:
push {r4,lr}
ldr r4, _080367B8
ldr r0, [r4]
movs r1, 0x9A
lsls r1, 1
adds r0, r1
bl sub_8012FD8
movs r0, 0
bl sub_801CA08
ldr r0, [r4]
adds r0, 0x14
bl sub_8013BBC
cmp r0, 0x1
beq _080367BC
cmp r0, 0x1
bcc _08036824
cmp r0, 0x2
beq _080367D2
cmp r0, 0x3
beq _080367F8
b _08036824
.align 2, 0
_080367B8: .4byte gUnknown_203B358
_080367BC:
bl sub_801CCD8
ldr r0, [r4]
adds r0, 0x44
movs r1, 0x3
movs r2, 0
bl sub_8035CF4
bl sub_8036F30
b _08036824
_080367D2:
ldr r0, [r4]
movs r2, 0xC2
lsls r2, 1
adds r0, r2
movs r1, 0x2
bl sub_8035CC0
bl sub_801CCD8
ldr r0, [r4]
adds r0, 0x44
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
movs r0, 0x3
bl sub_8036FC4
b _08036824
_080367F8:
ldr r0, [r4]
ldr r1, [r0, 0x14]
ldr r2, _0803682C
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
adds r2, 0x1
adds r1, r0, r2
ldrb r1, [r1]
subs r2, 0xA
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
adds r2, 0x4
adds r1, r0, r2
ldr r0, [r0, 0x14]
str r0, [r1]
bl sub_801CBB8
movs r0, 0x6
bl sub_8036FC4
_08036824:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803682C: .4byte 0x0000025d
thumb_func_end sub_8036788
thumb_func_start sub_8036830
sub_8036830:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036896
ldr r0, [sp]
cmp r0, 0x5
beq _08036854
cmp r0, 0x5
bgt _0803684E
cmp r0, 0
beq _08036890
b _08036896
_0803684E:
cmp r0, 0x6
beq _08036890
b _08036896
_08036854:
bl sub_801CBB8
ldr r0, _08036884
ldr r2, [r0]
ldr r0, _08036888
ldr r1, [r0]
ldr r3, _0803688C
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, 1
adds r2, 0x50
adds r2, r0
ldrh r0, [r2]
ldr r1, [r1, 0x14]
subs r0, r1
strh r0, [r2]
movs r0, 0xF
bl sub_8036FC4
movs r0, 0
bl sub_8012574
b _08036896
.align 2, 0
_08036884: .4byte gUnknown_203B460
_08036888: .4byte gUnknown_203B358
_0803688C: .4byte 0x0000025e
_08036890:
movs r0, 0
bl sub_8036FC4
_08036896:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036830
thumb_func_start sub_803689C
sub_803689C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080368CE
ldr r0, [sp]
cmp r0, 0x5
beq _080368C0
cmp r0, 0x5
bgt _080368BA
cmp r0, 0
beq _080368C8
b _080368CE
_080368BA:
cmp r0, 0x7
beq _080368C8
b _080368CE
_080368C0:
movs r0, 0x9
bl sub_8036FC4
b _080368CE
_080368C8:
movs r0, 0x12
bl sub_8036FC4
_080368CE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_803689C
thumb_func_start sub_80368D4
sub_80368D4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803692A
ldr r0, [sp]
cmp r0, 0x5
beq _080368F8
cmp r0, 0x5
bgt _080368F2
cmp r0, 0
beq _08036900
b _0803692A
_080368F2:
cmp r0, 0x7
beq _08036900
b _0803692A
_080368F8:
movs r0, 0x9
bl sub_8036FC4
b _0803692A
_08036900:
ldr r0, _08036930
ldr r1, [r0]
movs r2, 0x95
lsls r2, 2
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
beq _0803692A
adds r2, 0x4
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _0803692A
bl sub_80369D0
movs r0, 0x11
bl sub_8036FC4
movs r0, 0
bl sub_8012574
_0803692A:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08036930: .4byte gUnknown_203B358
thumb_func_end sub_80368D4
thumb_func_start sub_8036934
sub_8036934:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036948
movs r0, 0xA
bl sub_8036FC4
_08036948:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036934
thumb_func_start sub_8036950
sub_8036950:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080369C8
ldr r0, _08036978
ldr r2, [r0]
ldr r1, [r2, 0xC]
adds r3, r0, 0
cmp r1, 0
bne _0803698C
ldr r0, [r2, 0x8]
cmp r0, 0
beq _0803697C
cmp r0, 0x1
beq _08036984
b _080369C8
.align 2, 0
_08036978: .4byte gUnknown_203B358
_0803697C:
movs r0, 0xD
bl sub_8036FC4
b _080369C8
_08036984:
movs r0, 0xE
bl sub_8036FC4
b _080369C8
_0803698C:
ldr r0, [r2, 0x8]
cmp r0, 0
bne _080369BA
movs r1, 0x95
lsls r1, 2
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
beq _080369BA
adds r1, 0x4
adds r0, r2, r1
ldr r0, [r0]
cmp r0, 0
beq _080369BA
bl sub_80369D0
movs r0, 0xB
bl sub_8036FC4
movs r0, 0
bl sub_8012574
b _080369C8
_080369BA:
ldr r0, [r3]
ldr r0, [r0, 0xC]
bl sub_8036E18
movs r0, 0xC
bl sub_8036FC4
_080369C8:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036950
thumb_func_start sub_80369D0
sub_80369D0:
ldr r0, _080369F4
ldr r2, [r0]
ldr r0, _080369F8
ldr r1, [r0]
movs r3, 0x95
lsls r3, 2
adds r0, r1, r3
ldrb r0, [r0]
lsls r0, 1
adds r2, 0x50
adds r2, r0
ldrh r0, [r2]
adds r3, 0x4
adds r1, r3
ldr r1, [r1]
adds r0, r1
strh r0, [r2]
bx lr
.align 2, 0
_080369F4: .4byte gUnknown_203B460
_080369F8: .4byte gUnknown_203B358
thumb_func_end sub_80369D0
thumb_func_start sub_80369FC
sub_80369FC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036A10
movs r0, 0
bl sub_8036FC4
_08036A10:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80369FC
thumb_func_start sub_8036A18
sub_8036A18:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036A2C
movs r0, 0x12
bl sub_8036FC4
_08036A2C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036A18
thumb_func_start sub_8036A34
sub_8036A34:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036A4E
movs r0, 0x10
bl sub_8036FC4
movs r0, 0
bl sub_8012574
_08036A4E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036A34
thumb_func_start sub_8036A54
sub_8036A54:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036A76
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08036A76
bl sub_8012750
movs r0, 0x12
bl sub_8036FC4
_08036A76:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036A54
thumb_func_start sub_8036A7C
sub_8036A7C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036A9E
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08036A9E
bl sub_8012750
movs r0, 0x8
bl sub_8036FC4
_08036A9E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036A7C
thumb_func_start sub_8036AA4
sub_8036AA4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036AD0
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08036AD0
bl sub_8012750
ldr r0, _08036AD8
ldr r0, [r0]
ldr r0, [r0, 0xC]
bl sub_8036E18
movs r0, 0xC
bl sub_8036FC4
_08036AD0:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08036AD8: .4byte gUnknown_203B358
thumb_func_end sub_8036AA4
thumb_func_start sub_8036ADC
sub_8036ADC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08036AFE
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08036AFE
bl sub_8012750
movs r0, 0x12
bl sub_8036FC4
_08036AFE:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8036ADC
thumb_func_start sub_8036B04
sub_8036B04:
push {r4,lr}
ldr r4, _08036B20
ldr r0, [r4]
cmp r0, 0
beq _08036B1A
bl MemoryFree
movs r0, 0
str r0, [r4]
bl sub_801CBB8
_08036B1A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08036B20: .4byte gUnknown_203B358
thumb_func_end sub_8036B04
thumb_func_start nullsub_52
nullsub_52:
bx lr
thumb_func_end nullsub_52
thumb_func_start sub_8036B28
sub_8036B28:
push {r4,r5,lr}
sub sp, 0x18
ldr r1, _08036B44
ldr r0, [r1]
ldr r0, [r0]
adds r5, r1, 0
cmp r0, 0x12
bls _08036B3A
b _08036DFA
_08036B3A:
lsls r0, 2
ldr r1, _08036B48
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08036B44: .4byte gUnknown_203B358
_08036B48: .4byte _08036B4C
.align 2, 0
_08036B4C:
.4byte _08036B98
.4byte _08036BDC
.4byte _08036BE4
.4byte _08036C14
.4byte _08036C58
.4byte _08036DFA
.4byte _08036C5E
.4byte _08036C90
.4byte _08036C98
.4byte _08036CC0
.4byte _08036CD8
.4byte _08036DFA
.4byte _08036DFA
.4byte _08036DD8
.4byte _08036D70
.4byte _08036DFA
.4byte _08036DFA
.4byte _08036DFA
.4byte _08036DFA
_08036B98:
movs r0, 0
bl sub_801CF14
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _08036BB8
ldr r0, _08036BB0
ldr r3, _08036BB4
movs r2, 0
b _08036BBC
.align 2, 0
_08036BB0: .4byte gUnknown_80E61A4
_08036BB4: .4byte gUnknown_80E60D4
_08036BB8:
ldr r0, _08036BD4
ldr r3, _08036BD8
_08036BBC:
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x1
bl sub_8014248
b _08036DFA
.align 2, 0
_08036BD4: .4byte gUnknown_80E61A4
_08036BD8: .4byte gUnknown_80E60A0
_08036BDC:
ldr r0, _08036BE0
b _08036DBA
.align 2, 0
_08036BE0: .4byte gUnknown_80E61C0
_08036BE4:
bl sub_801D008
cmp r0, 0
beq _08036BEE
b _08036DFA
_08036BEE:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, _08036C10
str r0, [sp, 0x14]
movs r0, 0
movs r1, 0x1
add r2, sp, 0x14
movs r3, 0x9
bl sub_801C8C4
b _08036DFA
.align 2, 0
_08036C10: .4byte 0x00020003
_08036C14:
ldr r0, [r5]
movs r4, 0xC2
lsls r4, 1
adds r0, r4
bl sub_8006518
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x44
adds r1, r4
ldr r3, _08036C50
ldr r2, _08036C54
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r2, [sp, 0xC]
movs r2, 0x3
bl SetMenuItems
bl sub_801CCD8
ldr r0, [r5]
adds r0, 0x44
movs r1, 0x3
movs r2, 0x1
bl sub_8035CF4
b _08036DFA
.align 2, 0
_08036C50: .4byte gUnknown_80E60EC
_08036C54: .4byte gUnknown_80E6104
_08036C58:
bl sub_8036F74
b _08036DFA
_08036C5E:
ldr r2, _08036C7C
ldr r1, [r5]
ldr r0, [r1, 0x14]
str r0, [r2]
ldr r0, _08036C80
ldr r2, _08036C84
adds r1, r2
ldrb r1, [r1]
movs r2, 0
bl sub_8090DC4
ldr r0, _08036C88
ldr r3, _08036C8C
b _08036C9C
.align 2, 0
_08036C7C: .4byte gUnknown_202DE30
_08036C80: .4byte gUnknown_202DE58
_08036C84: .4byte 0x0000025e
_08036C88: .4byte gUnknown_80E61E4
_08036C8C: .4byte gUnknown_80E6154
_08036C90:
ldr r0, _08036C94
b _08036C9A
.align 2, 0
_08036C94: .4byte gUnknown_80E6214
_08036C98:
ldr r0, _08036CB8
_08036C9A:
ldr r3, _08036CBC
_08036C9C:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x5
bl sub_8014248
b _08036DFA
.align 2, 0
_08036CB8: .4byte gUnknown_80E6268
_08036CBC: .4byte gUnknown_80E618C
_08036CC0:
movs r0, 0
bl nullsub_23
ldr r0, _08036CD4
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
b _08036DFA
.align 2, 0
_08036CD4: .4byte gUnknown_80E62C4
_08036CD8:
ldr r4, _08036D18
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0xC]
movs r2, 0
movs r3, 0
movs r5, 0x91
lsls r5, 2
adds r0, r1, r5
str r2, [r0]
str r3, [r0, 0x4]
movs r0, 0x93
lsls r0, 2
adds r1, r0
str r2, [r1]
str r3, [r1, 0x4]
bl sub_8011830
ldr r0, [r4]
ldr r0, [r0, 0x8]
bl sub_8037B28
ldr r4, [r4]
str r0, [r4, 0xC]
cmp r0, 0
bne _08036D44
ldr r0, [r4, 0x8]
cmp r0, 0
beq _08036D1C
cmp r0, 0x1
beq _08036D2C
b _08036D44
.align 2, 0
_08036D18: .4byte gUnknown_203B358
_08036D1C:
adds r2, r4, r5
movs r1, 0x95
lsls r1, 2
adds r0, r4, r1
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
_08036D2C:
ldr r4, _08036D6C
ldr r2, [r4]
ldr r0, [r2, 0x8]
movs r3, 0x91
lsls r3, 2
adds r1, r2, r3
adds r3, 0x8
adds r2, r3
bl sub_8037D64
ldr r1, [r4]
str r0, [r1, 0xC]
_08036D44:
ldr r4, _08036D6C
ldr r2, [r4]
ldr r0, [r2, 0xC]
cmp r0, 0
bne _08036D66
ldr r0, [r2, 0x8]
cmp r0, 0x1
bhi _08036D66
movs r3, 0x91
lsls r3, 2
adds r1, r2, r3
adds r3, 0x8
adds r2, r3
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0xC]
_08036D66:
bl sub_8011854
b _08036DFA
.align 2, 0
_08036D6C: .4byte gUnknown_203B358
_08036D70:
ldr r2, [r5]
movs r1, 0x94
lsls r1, 2
adds r0, r2, r1
ldr r1, [r0]
cmp r1, 0
bne _08036DA4
ldr r1, _08036D9C
movs r3, 0x92
lsls r3, 2
adds r0, r2, r3
ldr r0, [r0]
str r0, [r1]
ldr r0, _08036DA0
subs r3, 0x4
adds r1, r2, r3
ldrb r1, [r1]
movs r2, 0
bl sub_8090DC4
b _08036DB8
.align 2, 0
_08036D9C: .4byte gUnknown_202DE30
_08036DA0: .4byte gUnknown_202DE58
_08036DA4:
ldr r0, _08036DC8
str r1, [r0]
ldr r0, _08036DCC
movs r3, 0x93
lsls r3, 2
adds r1, r2, r3
ldrb r1, [r1]
movs r2, 0
bl sub_8090DC4
_08036DB8:
ldr r0, _08036DD0
_08036DBA:
ldr r3, _08036DD4
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08036DFA
.align 2, 0
_08036DC8: .4byte gUnknown_202DE30
_08036DCC: .4byte gUnknown_202DE58
_08036DD0: .4byte gUnknown_80E6314
_08036DD4: .4byte 0x00000101
_08036DD8:
ldr r2, _08036E04
ldr r1, [r5]
ldr r0, [r1, 0x14]
str r0, [r2]
ldr r0, _08036E08
ldr r2, _08036E0C
adds r1, r2
ldrb r1, [r1]
movs r2, 0
bl sub_8090DC4
ldr r0, _08036E10
ldr r3, _08036E14
movs r1, 0
movs r2, 0
bl sub_80141B4
_08036DFA:
add sp, 0x18
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08036E04: .4byte gUnknown_202DE30
_08036E08: .4byte gUnknown_202DE58
_08036E0C: .4byte 0x0000025e
_08036E10: .4byte gUnknown_80E6358
_08036E14: .4byte 0x00000101
thumb_func_end sub_8036B28
thumb_func_start sub_8036E18
sub_8036E18:
push {lr}
cmp r0, 0xF
bhi _08036EB4
lsls r0, 2
ldr r1, _08036E28
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08036E28: .4byte _08036E2C
.align 2, 0
_08036E2C:
.4byte _08036EC0
.4byte _08036E6C
.4byte _08036E7C
.4byte _08036E74
.4byte _08036E84
.4byte _08036E8C
.4byte _08036EB4
.4byte _08036EB4
.4byte _08036EB4
.4byte _08036EB4
.4byte _08036EB4
.4byte _08036EB4
.4byte _08036EB4
.4byte _08036EB4
.4byte _08036E94
.4byte _08036E9C
_08036E6C:
ldr r0, _08036E70
b _08036E9E
.align 2, 0
_08036E70: .4byte gUnknown_80E6378
_08036E74:
ldr r0, _08036E78
b _08036E9E
.align 2, 0
_08036E78: .4byte gUnknown_80E639C
_08036E7C:
ldr r0, _08036E80
b _08036E9E
.align 2, 0
_08036E80: .4byte gUnknown_80E63F8
_08036E84:
ldr r0, _08036E88
b _08036E9E
.align 2, 0
_08036E88: .4byte gUnknown_80E6448
_08036E8C:
ldr r0, _08036E90
b _08036E9E
.align 2, 0
_08036E90: .4byte gUnknown_80E6378
_08036E94:
ldr r0, _08036E98
b _08036E9E
.align 2, 0
_08036E98: .4byte gUnknown_80E6378
_08036E9C:
ldr r0, _08036EAC
_08036E9E:
ldr r3, _08036EB0
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08036EC0
.align 2, 0
_08036EAC: .4byte gUnknown_80E64AC
_08036EB0: .4byte 0x00000101
_08036EB4:
ldr r0, _08036EC4
ldr r3, _08036EC8
movs r1, 0
movs r2, 0
bl sub_80141B4
_08036EC0:
pop {r0}
bx r0
.align 2, 0
_08036EC4: .4byte gUnknown_80E6378
_08036EC8: .4byte 0x00000101
thumb_func_end sub_8036E18
thumb_func_start sub_8036ECC
sub_8036ECC:
push {r4-r6,lr}
adds r3, r0, 0
ldr r6, _08036F28
ldr r0, [r6]
movs r2, 0x3
str r2, [r0, 0x24]
movs r2, 0x1
str r2, [r0, 0x18]
str r2, [r0, 0x1C]
str r1, [r0, 0x20]
movs r1, 0x2C
str r1, [r0, 0x30]
movs r1, 0x12
str r1, [r0, 0x34]
str r3, [r0, 0x28]
lsls r4, r3, 1
adds r4, r3
lsls r4, 3
movs r5, 0xC2
lsls r5, 1
adds r1, r4, r5
adds r1, r0, r1
str r1, [r0, 0x2C]
adds r0, 0x14
bl sub_8013AA0
ldr r1, [r6]
adds r1, r4
adds r1, r5
ldr r0, _08036F2C
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
bl sub_8004914
ldr r0, [r6]
adds r0, r5
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08036F28: .4byte gUnknown_203B358
_08036F2C: .4byte gUnknown_80E6174
thumb_func_end sub_8036ECC
thumb_func_start sub_8036F30
sub_8036F30:
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _08036F6C
ldr r0, [r5]
ldr r4, [r0, 0x28]
adds r0, r4, 0
bl sub_8008C54
adds r0, r4, 0
bl sub_80073B8
ldr r2, _08036F70
movs r0, 0
str r0, [sp]
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
bl xxx_call_draw_string
ldr r0, [r5]
adds r0, 0x14
bl sub_8013C68
adds r0, r4, 0
bl sub_80073E0
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08036F6C: .4byte gUnknown_203B358
_08036F70: .4byte gUnknown_80E6528
thumb_func_end sub_8036F30
thumb_func_start sub_8036F74
sub_8036F74:
push {r4,lr}
ldr r4, _08036FB8
ldr r0, [r4]
movs r1, 0xC2
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r0, _08036FBC
ldr r1, [r0]
ldr r0, [r4]
ldr r2, _08036FC0
adds r0, r2
ldrb r0, [r0]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r1, [r1]
movs r0, 0x2
bl sub_8036ECC
bl sub_801CCD8
ldr r0, [r4]
adds r0, 0x44
movs r1, 0x3
movs r2, 0
bl sub_8035CF4
bl sub_8036F30
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08036FB8: .4byte gUnknown_203B358
_08036FBC: .4byte gUnknown_203B460
_08036FC0: .4byte 0x0000025e
thumb_func_end sub_8036F74
thumb_func_start sub_8036FC4
sub_8036FC4:
push {lr}
ldr r1, _08036FD8
ldr r1, [r1]
str r0, [r1]
bl nullsub_52
bl sub_8036B28
pop {r0}
bx r0
.align 2, 0
_08036FD8: .4byte gUnknown_203B358
thumb_func_end sub_8036FC4
thumb_func_start sub_8036FDC
sub_8036FDC:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r6, r0, 0
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0
bl ResetSprites
ldr r5, _080370C0
ldr r0, [r5]
cmp r0, 0
bne _08037016
ldr r4, _080370C4
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_08037016:
ldr r0, [r5]
str r6, [r0]
movs r1, 0
str r1, [r0, 0x4]
str r1, [r0, 0x8]
movs r3, 0
adds r7, r5, 0
movs r6, 0xE0
lsls r6, 1
movs r4, 0
movs r5, 0xDE
lsls r5, 1
_0803702E:
ldr r0, [r7]
lsls r2, r3, 3
adds r1, r0, r6
adds r1, r2
str r4, [r1]
adds r0, r2
adds r0, r5
strb r4, [r0]
adds r3, 0x1
cmp r3, 0x1
ble _0803702E
ldr r0, _080370C0
mov r12, r0
movs r5, 0xAE
lsls r5, 1
mov r8, r5
ldr r4, _080370C8
movs r3, 0
movs r2, 0x3
_08037054:
mov r6, r12
ldr r1, [r6]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08037054
movs r6, 0
bl sub_8004914
ldr r5, _080370C0
ldr r0, [r5]
movs r4, 0xAE
lsls r4, 1
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x1C
adds r1, r4
ldr r3, _080370CC
ldr r2, _080370D0
str r2, [sp]
str r6, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r6, [sp, 0xC]
movs r2, 0
bl SetMenuItems
ldr r0, [r5]
adds r0, 0x1C
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
bl sub_80376CC
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080370C0: .4byte gUnknown_203B35C
_080370C4: .4byte 0x00000504
_080370C8: .4byte gUnknown_80E653C
_080370CC: .4byte gUnknown_80E6CD0
_080370D0: .4byte gUnknown_80E6CE8
thumb_func_end sub_8036FDC
thumb_func_start sub_80370D4
sub_80370D4:
push {r4,lr}
ldr r4, _080370EC
ldr r0, [r4]
cmp r0, 0
beq _080370E6
bl MemoryFree
movs r0, 0
str r0, [r4]
_080370E6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080370EC: .4byte gUnknown_203B35C
thumb_func_end sub_80370D4
thumb_func_start sub_80370F0
sub_80370F0:
push {r4,r5,lr}
sub sp, 0x4
movs r0, 0x4
str r0, [sp]
ldr r5, _08037110
ldr r4, _08037114
ldr r1, [r4]
ldr r0, [r1, 0x8]
cmp r0, 0x1
beq _08037148
cmp r0, 0x1
bcc _08037118
cmp r0, 0x2
beq _08037158
b _080371A8
.align 2, 0
_08037110: .4byte 0x0000ffdc
_08037114: .4byte gUnknown_203B35C
_08037118:
adds r0, r1, 0
adds r0, 0x1C
bl sub_80130A8
lsls r0, 24
cmp r0, 0
bne _08037130
ldr r0, [r4]
adds r0, 0x1C
mov r1, sp
bl sub_8013114
_08037130:
ldr r0, [sp]
cmp r0, 0x4
bne _0803713C
bl sub_8037748
b _080371A8
_0803713C:
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0x8]
bl sub_8037900
b _080371A8
_08037148:
bl sub_80376CC
ldr r1, [r4]
movs r0, 0x2
str r0, [r1, 0x8]
bl sub_80371B8
b _080371A8
_08037158:
ldr r0, [r1]
cmp r0, 0x1
bhi _08037172
ldr r0, [r1, 0x4]
cmp r0, 0
bne _08037172
movs r0, 0
bl sub_8037C10
cmp r0, 0
bne _08037172
movs r0, 0x29
b _080371AA
_08037172:
ldr r4, _080371B4
ldr r0, [r4]
adds r0, 0x1C
bl sub_80130A8
lsls r0, 24
cmp r0, 0
bne _0803718C
ldr r0, [r4]
adds r0, 0x1C
mov r1, sp
bl sub_8013114
_0803718C:
ldr r0, [sp]
cmp r0, 0x4
beq _080371A4
movs r0, 0x3
bl sub_80119D4
bl sub_8037798
adds r5, r0, 0
ldr r1, [r4]
movs r0, 0x4
str r0, [r1, 0x8]
_080371A4:
bl sub_8037748
_080371A8:
adds r0, r5, 0
_080371AA:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080371B4: .4byte gUnknown_203B35C
thumb_func_end sub_80370F0
thumb_func_start sub_80371B8
sub_80371B8:
push {r4-r7,lr}
sub sp, 0x10
movs r6, 0
movs r5, 0
bl sub_8037400
ldr r7, _0803721C
ldr r1, [r7]
ldr r0, [r1]
cmp r0, 0x1
bhi _08037228
ldr r0, [r1, 0x4]
cmp r0, 0
bne _08037228
movs r0, 0
bl sub_8037C10
cmp r0, 0
bne _080371E0
b _080373AC
_080371E0:
bl sub_80376CC
ldr r0, [r7]
movs r4, 0xAE
lsls r4, 1
adds r0, r4
movs r1, 0
bl sub_8035CC0
ldr r1, [r7]
adds r0, r1, 0
adds r0, 0x1C
adds r1, r4
ldr r3, _08037220
ldr r2, _08037224
str r2, [sp]
str r6, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r6, [sp, 0xC]
movs r2, 0
bl SetMenuItems
ldr r0, [r7]
adds r0, 0x1C
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
b _080373AC
.align 2, 0
_0803721C: .4byte gUnknown_203B35C
_08037220: .4byte gUnknown_80E6C50
_08037224: .4byte gUnknown_80E6C68
_08037228:
bl sub_80376CC
ldr r4, _08037250
ldr r0, [r4]
movs r1, 0xAE
lsls r1, 1
adds r0, r1
movs r1, 0
bl sub_8035CC0
ldr r0, [r4]
ldr r0, [r0, 0x4]
cmp r0, 0xF
bls _08037246
b _0803734C
_08037246:
lsls r0, 2
ldr r1, _08037254
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08037250: .4byte gUnknown_203B35C
_08037254: .4byte _08037258
.align 2, 0
_08037258:
.4byte _08037298
.4byte _080372D8
.4byte _080372B8
.4byte _080372A8
.4byte _080372C8
.4byte _080372D8
.4byte _080372E8
.4byte _080372F8
.4byte _0803734C
.4byte _08037308
.4byte _0803734C
.4byte _08037318
.4byte _0803734C
.4byte _08037328
.4byte _08037338
.4byte _08037348
_08037298:
ldr r6, _080372A0
ldr r5, _080372A4
b _0803734C
.align 2, 0
_080372A0: .4byte gUnknown_80E66BC
_080372A4: .4byte gUnknown_80E66D4
_080372A8:
ldr r6, _080372B0
ldr r5, _080372B4
b _0803734C
.align 2, 0
_080372B0: .4byte gUnknown_80E6D54
_080372B4: .4byte gUnknown_80E6D6C
_080372B8:
ldr r6, _080372C0
ldr r5, _080372C4
b _0803734C
.align 2, 0
_080372C0: .4byte gUnknown_80E6DDC
_080372C4: .4byte gUnknown_80E6DF4
_080372C8:
ldr r6, _080372D0
ldr r5, _080372D4
b _0803734C
.align 2, 0
_080372D0: .4byte gUnknown_80E67D4
_080372D4: .4byte gUnknown_80E67EC
_080372D8:
ldr r6, _080372E0
ldr r5, _080372E4
b _0803734C
.align 2, 0
_080372E0: .4byte gUnknown_80E6748
_080372E4: .4byte gUnknown_80E6760
_080372E8:
ldr r6, _080372F0
ldr r5, _080372F4
b _0803734C
.align 2, 0
_080372F0: .4byte gUnknown_80E689C
_080372F4: .4byte gUnknown_80E68B4
_080372F8:
ldr r6, _08037300
ldr r5, _08037304
b _0803734C
.align 2, 0
_08037300: .4byte gUnknown_80E6938
_08037304: .4byte gUnknown_80E6950
_08037308:
ldr r6, _08037310
ldr r5, _08037314
b _0803734C
.align 2, 0
_08037310: .4byte gUnknown_80E69B0
_08037314: .4byte gUnknown_80E69C8
_08037318:
ldr r6, _08037320
ldr r5, _08037324
b _0803734C
.align 2, 0
_08037320: .4byte gUnknown_80E6A10
_08037324: .4byte gUnknown_80E6A28
_08037328:
ldr r6, _08037330
ldr r5, _08037334
b _0803734C
.align 2, 0
_08037330: .4byte gUnknown_80E6A74
_08037334: .4byte gUnknown_80E6A8C
_08037338:
ldr r6, _08037340
ldr r5, _08037344
b _0803734C
.align 2, 0
_08037340: .4byte gUnknown_80E6B78
_08037344: .4byte gUnknown_80E6B90
_08037348:
ldr r6, _080373B4
ldr r5, _080373B8
_0803734C:
ldr r4, _080373BC
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x1C
movs r2, 0xAE
lsls r2, 1
adds r1, r2
str r5, [sp]
movs r3, 0
str r3, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r2, 0
adds r3, r6, 0
bl SetMenuItems
ldr r0, [r4]
adds r0, 0x1C
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
ldr r4, [r4]
ldr r0, [r4, 0x4]
cmp r0, 0
beq _080373AC
ldr r0, [r4]
cmp r0, 0
bne _080373AC
bl sub_8035D94
adds r2, r0, 0
ldrb r0, [r2]
cmp r0, 0
beq _080373AC
ldr r3, [r2, 0x4]
cmp r3, 0
beq _080373AC
ldr r0, _080373C0
ldr r1, [r0]
ldrb r0, [r2]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
adds r0, r3
strh r0, [r1]
_080373AC:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080373B4: .4byte gUnknown_80E6BF4
_080373B8: .4byte gUnknown_80E6C0C
_080373BC: .4byte gUnknown_203B35C
_080373C0: .4byte gUnknown_203B460
thumb_func_end sub_80371B8
thumb_func_start sub_80373C4
sub_80373C4:
push {lr}
movs r0, 0
movs r1, 0
bl sub_8005838
bl sub_80060EC
bl sub_800CB20
bl sub_800485C
bl TransferBGPaletteBuffer
bl xxx_call_update_bg_vram
bl sub_8009908
bl xxx_call_update_bg_sound_input
movs r0, 0
bl ResetSprites
pop {r0}
bx r0
thumb_func_end sub_80373C4
thumb_func_start sub_80373F4
sub_80373F4:
ldr r0, _080373FC
ldr r0, [r0]
bx lr
.align 2, 0
_080373FC: .4byte gUnknown_203B35C
thumb_func_end sub_80373F4
thumb_func_start sub_8037400
sub_8037400:
push {r4-r6,lr}
movs r6, 0
movs r5, 0
bl sub_8037810
bl sub_8011830
ldr r4, _08037434
ldr r0, [r4]
ldr r0, [r0]
bl sub_8037B28
ldr r4, [r4]
str r0, [r4, 0x4]
cmp r0, 0
beq _08037422
b _080376BE
_08037422:
ldr r0, [r4]
cmp r0, 0xA
bls _0803742A
b _080375E8
_0803742A:
lsls r0, 2
ldr r1, _08037438
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08037434: .4byte gUnknown_203B35C
_08037438: .4byte _0803743C
.align 2, 0
_0803743C:
.4byte _08037494
.4byte _080374B8
.4byte _08037534
.4byte _0803751C
.4byte _0803756C
.4byte _080375D8
.4byte _080374E4
.4byte _080374D0
.4byte _080375E8
.4byte _08037480
.4byte _08037468
_08037468:
ldr r0, _0803747C
ldr r0, [r0]
movs r1, 0xE7
lsls r1, 2
adds r6, r0, r1
movs r2, 0x8A
lsls r2, 3
adds r5, r0, r2
b _080375E8
.align 2, 0
_0803747C: .4byte gUnknown_203B35C
_08037480:
ldr r0, _08037490
ldr r0, [r0]
movs r3, 0xE7
lsls r3, 2
adds r6, r0, r3
movs r4, 0x8A
lsls r4, 3
b _080375E6
.align 2, 0
_08037490: .4byte gUnknown_203B35C
_08037494:
bl sub_8035D94
ldr r1, _080374B4
ldr r3, [r1]
movs r5, 0xDE
lsls r5, 1
adds r2, r3, r5
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
adds r6, r2, 0
movs r0, 0xE2
lsls r0, 1
adds r5, r3, r0
b _080375E8
.align 2, 0
_080374B4: .4byte gUnknown_203B35C
_080374B8:
ldr r0, _080374CC
ldr r0, [r0]
movs r1, 0xDE
lsls r1, 1
adds r6, r0, r1
movs r2, 0xE2
lsls r2, 1
adds r5, r0, r2
b _080375E8
.align 2, 0
_080374CC: .4byte gUnknown_203B35C
_080374D0:
ldr r0, _080374E0
ldr r0, [r0]
movs r3, 0xE6
lsls r3, 1
adds r6, r0, r3
movs r4, 0xFE
lsls r4, 1
b _080375E6
.align 2, 0
_080374E0: .4byte gUnknown_203B35C
_080374E4:
bl sub_8035D74
lsls r0, 24
lsrs r0, 24
bl sub_8095228
ldr r3, _08037518
ldr r1, [r3]
movs r2, 0xE6
lsls r2, 1
adds r1, r2
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r0, [r3]
adds r6, r0, r2
movs r1, 0xFE
lsls r1, 1
adds r5, r0, r1
b _080375E8
.align 2, 0
_08037518: .4byte gUnknown_203B35C
_0803751C:
ldr r0, _08037530
ldr r0, [r0]
movs r2, 0x8B
lsls r2, 2
adds r6, r0, r2
movs r3, 0x97
lsls r3, 2
adds r5, r0, r3
b _080375E8
.align 2, 0
_08037530: .4byte gUnknown_203B35C
_08037534:
bl sub_8035D74
lsls r0, 24
lsrs r0, 24
bl sub_8095228
ldr r3, _08037568
ldr r1, [r3]
movs r2, 0x8B
lsls r2, 2
adds r1, r2
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r0, [r3]
adds r6, r0, r2
movs r1, 0x97
lsls r1, 2
adds r5, r0, r1
b _080375E8
.align 2, 0
_08037568: .4byte gUnknown_203B35C
_0803756C:
bl sub_8035D74
lsls r0, 24
lsrs r0, 24
bl sub_8095228
ldr r4, _080375CC
ldr r1, [r4]
movs r5, 0xA3
lsls r5, 2
adds r1, r5
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
bl sub_8035D3C
lsls r0, 16
ldr r1, _080375D0
cmp r0, r1
beq _080375BE
bl sub_8035D3C
ldr r3, [r4]
movs r1, 0xAF
lsls r1, 2
adds r3, r1
ldr r1, _080375D4
ldr r1, [r1]
lsls r0, 16
asrs r0, 16
movs r2, 0x58
muls r0, r2
adds r1, r0
adds r0, r3, 0
bl memcpy
_080375BE:
ldr r0, [r4]
adds r6, r0, r5
movs r2, 0xC5
lsls r2, 2
adds r5, r0, r2
b _080375E8
.align 2, 0
_080375CC: .4byte gUnknown_203B35C
_080375D0: .4byte 0xffff0000
_080375D4: .4byte gUnknown_203B45C
_080375D8:
ldr r0, _08037610
ldr r0, [r0]
movs r3, 0xA3
lsls r3, 2
adds r6, r0, r3
movs r4, 0xC5
lsls r4, 2
_080375E6:
adds r5, r0, r4
_080375E8:
ldr r4, _08037610
ldr r0, [r4]
ldr r0, [r0]
adds r1, r6, 0
adds r2, r5, 0
bl sub_8037D64
ldr r1, [r4]
str r0, [r1, 0x4]
cmp r0, 0
bne _080376BE
ldr r0, [r1]
cmp r0, 0xA
bhi _080376AE
lsls r0, 2
ldr r1, _08037614
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08037610: .4byte gUnknown_203B35C
_08037614: .4byte _08037618
.align 2, 0
_08037618:
.4byte _08037644
.4byte _08037644
.4byte _08037658
.4byte _08037658
.4byte _0803766C
.4byte _0803766C
.4byte _08037684
.4byte _08037684
.4byte _080376AE
.4byte _0803769C
.4byte _0803769C
_08037644:
ldr r0, _08037654
ldr r2, [r0]
movs r5, 0xDE
lsls r5, 1
adds r6, r2, r5
movs r1, 0xE2
lsls r1, 1
b _0803767A
.align 2, 0
_08037654: .4byte gUnknown_203B35C
_08037658:
ldr r0, _08037668
ldr r2, [r0]
movs r3, 0x8B
lsls r3, 2
adds r6, r2, r3
movs r4, 0x97
lsls r4, 2
b _08037692
.align 2, 0
_08037668: .4byte gUnknown_203B35C
_0803766C:
ldr r0, _08037680
ldr r2, [r0]
movs r5, 0xA3
lsls r5, 2
adds r6, r2, r5
movs r1, 0xC5
lsls r1, 2
_0803767A:
adds r5, r2, r1
adds r4, r0, 0
b _080376AE
.align 2, 0
_08037680: .4byte gUnknown_203B35C
_08037684:
ldr r0, _08037698
ldr r2, [r0]
movs r3, 0xE6
lsls r3, 1
adds r6, r2, r3
movs r4, 0xFE
lsls r4, 1
_08037692:
adds r5, r2, r4
adds r4, r0, 0
b _080376AE
.align 2, 0
_08037698: .4byte gUnknown_203B35C
_0803769C:
ldr r1, _080376C8
ldr r0, [r1]
movs r5, 0xE7
lsls r5, 2
adds r6, r0, r5
movs r2, 0x8A
lsls r2, 3
adds r5, r0, r2
adds r4, r1, 0
_080376AE:
ldr r0, [r4]
ldr r0, [r0]
adds r1, r6, 0
adds r2, r5, 0
bl sub_80381F4
ldr r1, [r4]
str r0, [r1, 0x4]
_080376BE:
bl sub_8011854
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080376C8: .4byte gUnknown_203B35C
thumb_func_end sub_8037400
thumb_func_start sub_80376CC
sub_80376CC:
push {r4,lr}
ldr r0, _08037728
ldr r3, [r0]
ldrh r1, [r3, 0xC]
ldr r0, _0803772C
ands r0, r1
ldr r1, _08037730
ands r0, r1
ldr r4, _08037734
ands r0, r4
ldr r1, _08037738
ands r0, r1
ldr r1, _0803773C
ands r0, r1
movs r2, 0x80
lsls r2, 7
ldr r1, _08037740
ands r0, r1
orrs r0, r2
strh r0, [r3, 0xC]
movs r2, 0xFC
lsls r2, 2
ldrh r1, [r3, 0x10]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r2, 0xF
movs r4, 0xF0
lsls r4, 8
ldr r1, _08037744
ands r0, r1
orrs r0, r4
strh r0, [r3, 0x10]
movs r0, 0
strh r0, [r3, 0xE]
movs r1, 0xC0
lsls r1, 4
ldrh r0, [r3, 0x12]
ands r2, r0
orrs r2, r1
strh r2, [r3, 0x12]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08037728: .4byte gUnknown_203B35C
_0803772C: .4byte 0x0000feff
_08037730: .4byte 0x0000fdff
_08037734: .4byte 0x0000f3ff
_08037738: .4byte 0x0000efff
_0803773C: .4byte 0x0000dfff
_08037740: .4byte 0x00003fff
_08037744: .4byte 0x00000fff
thumb_func_end sub_80376CC
thumb_func_start sub_8037748
sub_8037748:
push {r4,lr}
ldr r4, _08037794
ldr r3, [r4]
ldrh r1, [r3, 0xE]
movs r0, 0xFE
lsls r0, 8
ands r0, r1
movs r1, 0x70
orrs r0, r1
strh r0, [r3, 0xE]
movs r2, 0xD0
lsls r2, 3
ldrh r1, [r3, 0x12]
movs r0, 0xF
ands r0, r1
orrs r0, r2
strh r0, [r3, 0x12]
ldr r0, [r3, 0x14]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _08037782
adds r0, r3, 0
adds r0, 0xC
adds r1, 0xF8
movs r2, 0
movs r3, 0
bl AddSprite
_08037782:
bl xxx_draw_string_80144C4
ldr r1, [r4]
ldr r0, [r1, 0x14]
adds r0, 0x1
str r0, [r1, 0x14]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08037794: .4byte gUnknown_203B35C
thumb_func_end sub_8037748
thumb_func_start sub_8037798
sub_8037798:
push {lr}
ldr r2, _080377B4
ldr r1, _080377B8
ldr r0, [r1]
ldr r0, [r0]
adds r3, r1, 0
cmp r0, 0xA
bhi _0803780A
lsls r0, 2
ldr r1, _080377BC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080377B4: .4byte 0x0000ffdc
_080377B8: .4byte gUnknown_203B35C
_080377BC: .4byte _080377C0
.align 2, 0
_080377C0:
.4byte _080377EC
.4byte _080377EC
.4byte _080377F0
.4byte _080377F0
.4byte _080377F0
.4byte _080377F0
.4byte _080377F0
.4byte _080377F0
.4byte _0803780A
.4byte _080377FE
.4byte _080377FE
_080377EC:
movs r2, 0x1
b _0803780A
_080377F0:
ldr r0, [r3]
ldr r0, [r0, 0x4]
movs r2, 0x1
cmp r0, 0
bne _0803780A
movs r2, 0x2A
b _0803780A
_080377FE:
ldr r0, [r3]
ldr r0, [r0, 0x4]
movs r2, 0xD
cmp r0, 0
bne _0803780A
movs r2, 0x2B
_0803780A:
adds r0, r2, 0
pop {r1}
bx r1
thumb_func_end sub_8037798
thumb_func_start sub_8037810
sub_8037810:
push {r4-r6,lr}
ldr r6, _080378FC
ldr r0, [r6]
movs r5, 0xDE
lsls r5, 1
adds r0, r5
movs r1, 0
movs r2, 0x8
bl MemoryFill8
ldr r0, [r6]
movs r4, 0xE2
lsls r4, 1
adds r0, r4
movs r1, 0
movs r2, 0x8
bl MemoryFill8
ldr r0, [r6]
adds r5, r0, r5
movs r1, 0
movs r2, 0
str r1, [r5]
str r2, [r5, 0x4]
adds r4, r0, r4
str r1, [r4]
str r2, [r4, 0x4]
movs r2, 0xE6
lsls r2, 1
adds r0, r2
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r3, 0xFE
lsls r3, 1
adds r0, r3
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r1, 0x8B
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r2, 0x97
lsls r2, 2
adds r0, r2
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r3, 0xA3
lsls r3, 2
adds r0, r3
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r1, 0xC5
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r6]
movs r2, 0xAF
lsls r2, 2
adds r0, r2
movs r1, 0
movs r2, 0x58
bl MemoryFill8
ldr r0, [r6]
movs r3, 0xD1
lsls r3, 2
adds r0, r3
movs r1, 0
movs r2, 0x58
bl MemoryFill8
ldr r0, [r6]
movs r1, 0xE7
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0xB4
bl MemoryFill8
ldr r0, [r6]
movs r2, 0x8A
lsls r2, 3
adds r0, r2
movs r1, 0
movs r2, 0xB4
bl MemoryFill8
ldr r2, [r6]
movs r3, 0xB1
lsls r3, 2
adds r0, r2, r3
movs r1, 0
strh r1, [r0]
adds r3, 0x88
adds r0, r2, r3
strh r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080378FC: .4byte gUnknown_203B35C
thumb_func_end sub_8037810
thumb_func_start sub_8037900
sub_8037900:
push {r4,lr}
sub sp, 0x10
ldr r4, _08037928
ldr r0, [r4]
movs r1, 0xAE
lsls r1, 1
adds r0, r1
movs r1, 0
bl sub_8035CC0
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0xA
bls _0803791E
b _08037A14
_0803791E:
lsls r0, 2
ldr r1, _0803792C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08037928: .4byte gUnknown_203B35C
_0803792C: .4byte _08037930
.align 2, 0
_08037930:
.4byte _0803795C
.4byte _0803795C
.4byte _0803797C
.4byte _0803797C
.4byte _0803799C
.4byte _0803799C
.4byte _080379BC
.4byte _080379BC
.4byte _08037A14
.4byte _080379F0
.4byte _080379F0
_0803795C:
ldr r0, _08037970
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x1C
movs r2, 0xAE
lsls r2, 1
adds r1, r2
ldr r3, _08037974
ldr r2, _08037978
b _080379CE
.align 2, 0
_08037970: .4byte gUnknown_203B35C
_08037974: .4byte gUnknown_80E6554
_08037978: .4byte gUnknown_80E656C
_0803797C:
ldr r0, _08037990
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x1C
movs r2, 0xAE
lsls r2, 1
adds r1, r2
ldr r3, _08037994
ldr r2, _08037998
b _080379CE
.align 2, 0
_08037990: .4byte gUnknown_203B35C
_08037994: .4byte gUnknown_80E6554
_08037998: .4byte gUnknown_80E65D8
_0803799C:
ldr r0, _080379B0
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x1C
movs r2, 0xAE
lsls r2, 1
adds r1, r2
ldr r3, _080379B4
ldr r2, _080379B8
b _080379CE
.align 2, 0
_080379B0: .4byte gUnknown_203B35C
_080379B4: .4byte gUnknown_80E6554
_080379B8: .4byte gUnknown_80E661C
_080379BC:
ldr r0, _080379E4
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x1C
movs r2, 0xAE
lsls r2, 1
adds r1, r2
ldr r3, _080379E8
ldr r2, _080379EC
_080379CE:
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
b _08037A14
.align 2, 0
_080379E4: .4byte gUnknown_203B35C
_080379E8: .4byte gUnknown_80E6554
_080379EC: .4byte gUnknown_80E665C
_080379F0:
ldr r0, _08037A38
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x1C
movs r2, 0xAE
lsls r2, 1
adds r1, r2
ldr r3, _08037A3C
ldr r2, _08037A40
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
_08037A14:
ldr r4, _08037A38
ldr r0, [r4]
adds r0, 0x1C
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
bl sub_80373C4
ldr r0, [r4]
adds r0, 0x1C
bl sub_80130A8
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08037A38: .4byte gUnknown_203B35C
_08037A3C: .4byte gUnknown_80E6554
_08037A40: .4byte gUnknown_80E667C
thumb_func_end sub_8037900
thumb_func_start nullsub_202
nullsub_202:
bx lr
thumb_func_end nullsub_202
thumb_func_start sub_8037A48
sub_8037A48:
push {r4-r6,lr}
sub sp, 0x28
movs r6, 0x1
movs r0, 0
mov r1, sp
movs r2, 0x14
bl sub_800D670
add r4, sp, 0x14
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x14
bl sub_800D670
ldr r1, _08037AAC
movs r3, 0x8
adds r2, r1, 0
adds r0, r2, 0x4
_08037A6C:
str r3, [r0]
subs r0, 0x4
cmp r0, r1
bge _08037A6C
ldr r0, [sp, 0x10]
str r0, [r2]
ldr r0, [r4, 0x10]
str r0, [r2, 0x4]
ldr r5, _08037AB0
mov r0, sp
adds r1, r5, 0
bl strcmp
cmp r0, 0
beq _08037A8C
movs r0, 0x1
_08037A8C:
lsls r0, 24
cmp r0, 0
bne _08037AA6
adds r0, r4, 0
adds r1, r5, 0
bl strcmp
cmp r0, 0
beq _08037AA0
movs r0, 0x1
_08037AA0:
lsls r0, 24
cmp r0, 0
beq _08037AB4
_08037AA6:
movs r0, 0
b _08037B1E
.align 2, 0
_08037AAC: .4byte gUnknown_202EC40
_08037AB0: .4byte gUnknown_80E6E50
_08037AB4:
ldr r1, [sp, 0x10]
cmp r1, 0
bne _08037AC0
ldr r0, [r4, 0x10]
cmp r0, 0x1
beq _08037B1C
_08037AC0:
cmp r1, 0x1
bne _08037ACA
ldr r0, [r4, 0x10]
cmp r0, 0
beq _08037B1C
_08037ACA:
cmp r1, 0x2
bne _08037AD4
ldr r0, [r4, 0x10]
cmp r0, 0x3
beq _08037B1C
_08037AD4:
cmp r1, 0x3
bne _08037ADE
ldr r0, [r4, 0x10]
cmp r0, 0x2
beq _08037B1C
_08037ADE:
cmp r1, 0x9
bne _08037AE8
ldr r0, [r4, 0x10]
cmp r0, 0xA
beq _08037B1C
_08037AE8:
cmp r1, 0xA
bne _08037AF2
ldr r0, [r4, 0x10]
cmp r0, 0x9
beq _08037B1C
_08037AF2:
cmp r1, 0x4
bne _08037AFC
ldr r0, [r4, 0x10]
cmp r0, 0x5
beq _08037B1C
_08037AFC:
cmp r1, 0x5
bne _08037B06
ldr r0, [r4, 0x10]
cmp r0, 0x4
beq _08037B1C
_08037B06:
cmp r1, 0x6
bne _08037B10
ldr r0, [r4, 0x10]
cmp r0, 0x7
beq _08037B1C
_08037B10:
cmp r1, 0x7
bne _08037B1A
ldr r0, [r4, 0x10]
cmp r0, 0x6
beq _08037B1C
_08037B1A:
movs r6, 0
_08037B1C:
adds r0, r6, 0
_08037B1E:
add sp, 0x28
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8037A48
thumb_func_start sub_8037B28
sub_8037B28:
push {r4,r5,lr}
sub sp, 0x14
adds r4, r0, 0
movs r5, 0
bl sub_800D414
ldr r0, _08037B58
str r5, [r0]
ldr r5, _08037B5C
mov r0, sp
movs r1, 0
movs r2, 0x14
bl MemoryFill8
mov r0, sp
adds r1, r5, 0
bl strcpy
str r4, [sp, 0x10]
mov r0, sp
movs r1, 0x14
bl sub_800D59C
b _08037B7A
.align 2, 0
_08037B58: .4byte gUnknown_202EC38
_08037B5C: .4byte gUnknown_80E6E50
_08037B60:
cmp r5, 0x3
beq _08037BCC
cmp r5, 0x4
beq _08037BD8
cmp r5, 0x5
beq _08037BF0
ldr r2, _08037BC0
ldr r1, [r2]
ldr r0, _08037BC4
cmp r1, r0
bgt _08037BE4
adds r0, r1, 0x1
str r0, [r2]
_08037B7A:
movs r4, 0
_08037B7C:
bl sub_80373C4
bl sub_8012AE8
cmp r0, 0x3
bgt _08037B8C
cmp r0, 0x2
bge _08037BF0
_08037B8C:
adds r4, 0x1
cmp r4, 0
ble _08037B7C
bl sub_800D33C
adds r5, r0, 0
bl sub_800D570
cmp r5, 0x2
bne _08037B60
bl sub_800D600
lsls r0, 24
cmp r0, 0
beq _08037BFC
bl sub_8037A48
lsls r0, 24
cmp r0, 0
bne _08037BC8
movs r4, 0x4
bl sub_800D520
bl sub_800D510
b _08037C06
.align 2, 0
_08037BC0: .4byte gUnknown_202EC38
_08037BC4: .4byte 0x00000707
_08037BC8:
movs r4, 0
b _08037C06
_08037BCC:
bl sub_800D520
bl sub_800D510
movs r0, 0x2
b _08037C08
_08037BD8:
bl sub_800D520
bl sub_800D510
movs r0, 0x3
b _08037C08
_08037BE4:
bl sub_800D520
bl sub_800D510
movs r0, 0xF
b _08037C08
_08037BF0:
bl sub_800D520
bl sub_800D510
movs r0, 0x1
b _08037C08
_08037BFC:
movs r4, 0x5
bl sub_800D520
bl sub_800D510
_08037C06:
adds r0, r4, 0
_08037C08:
add sp, 0x14
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8037B28
thumb_func_start sub_8037C10
sub_8037C10:
push {lr}
lsls r0, 24
cmp r0, 0
beq _08037C24
bl sub_800D588
lsls r0, 24
cmp r0, 0
bne _08037C38
b _08037C2E
_08037C24:
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _08037C38
_08037C2E:
ldr r0, _08037C34
ldr r0, [r0, 0x4]
b _08037C3C
.align 2, 0
_08037C34: .4byte gUnknown_202EC40
_08037C38:
ldr r0, _08037C40
ldr r0, [r0]
_08037C3C:
pop {r1}
bx r1
.align 2, 0
_08037C40: .4byte gUnknown_202EC40
thumb_func_end sub_8037C10
thumb_func_start sub_8037C44
sub_8037C44:
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
movs r4, 0
_08037C4C:
adds r0, r4, 0
bl sub_800D68C
adds r4, 0x1
cmp r4, 0x1
ble _08037C4C
cmp r6, 0xA
bhi _08037CBE
lsls r0, r6, 2
ldr r1, _08037C68
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08037C68: .4byte _08037C6C
.align 2, 0
_08037C6C:
.4byte _08037C98
.4byte _08037C98
.4byte _08037CA2
.4byte _08037CA2
.4byte _08037CAC
.4byte _08037CAC
.4byte _08037CA2
.4byte _08037CA2
.4byte _08037CBE
.4byte _08037CB6
.4byte _08037CB6
_08037C98:
adds r0, r5, 0
movs r1, 0x8
bl sub_800D59C
b _08037CBE
_08037CA2:
adds r0, r5, 0
movs r1, 0x30
bl sub_800D59C
b _08037CBE
_08037CAC:
adds r0, r5, 0
movs r1, 0x88
bl sub_800D59C
b _08037CBE
_08037CB6:
adds r0, r5, 0
movs r1, 0xB4
bl sub_800D59C
_08037CBE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8037C44
thumb_func_start sub_8037CC4
sub_8037CC4:
push {r4,lr}
adds r3, r1, 0
adds r4, r2, 0
cmp r0, 0xA
bhi _08037D5E
lsls r0, 2
ldr r1, _08037CD8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08037CD8: .4byte _08037CDC
.align 2, 0
_08037CDC:
.4byte _08037D08
.4byte _08037D08
.4byte _08037D1E
.4byte _08037D1E
.4byte _08037D34
.4byte _08037D34
.4byte _08037D1E
.4byte _08037D1E
.4byte _08037D5E
.4byte _08037D4A
.4byte _08037D4A
_08037D08:
movs r0, 0
adds r1, r3, 0
movs r2, 0x8
bl sub_800D670
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x8
bl sub_800D670
b _08037D5E
_08037D1E:
movs r0, 0
adds r1, r3, 0
movs r2, 0x30
bl sub_800D670
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x30
bl sub_800D670
b _08037D5E
_08037D34:
movs r0, 0
adds r1, r3, 0
movs r2, 0x88
bl sub_800D670
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x88
bl sub_800D670
b _08037D5E
_08037D4A:
movs r0, 0
adds r1, r3, 0
movs r2, 0xB4
bl sub_800D670
movs r0, 0x1
adds r1, r4, 0
movs r2, 0xB4
bl sub_800D670
_08037D5E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8037CC4
thumb_func_start sub_8037D64
sub_8037D64:
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
adds r7, r2, 0
movs r4, 0
ldr r0, _08037D80
str r4, [r0]
bl sub_800D494
adds r0, r5, 0
adds r1, r6, 0
bl sub_8037C44
b _08037D96
.align 2, 0
_08037D80: .4byte gUnknown_202EC48
_08037D84:
subs r0, r4, 0x3
cmp r0, 0x2
bls _08037DBC
ldr r1, _08037DB8
ldr r0, [r1]
cmp r0, 0x63
bgt _08037DC8
adds r0, 0x1
str r0, [r1]
_08037D96:
bl sub_80373C4
bl sub_800D33C
adds r4, r0, 0
bl sub_800D570
cmp r4, 0x2
bne _08037D84
bl sub_800D600
lsls r0, 24
cmp r0, 0
beq _08037DD4
movs r4, 0
b _08037DDE
.align 2, 0
_08037DB8: .4byte gUnknown_202EC48
_08037DBC:
bl sub_800D520
bl sub_800D510
movs r0, 0x1
b _08037DEA
_08037DC8:
bl sub_800D520
bl sub_800D510
movs r0, 0xF
b _08037DEA
_08037DD4:
bl sub_800D520
bl sub_800D510
movs r4, 0x5
_08037DDE:
adds r0, r5, 0
adds r1, r6, 0
adds r2, r7, 0
bl sub_8037CC4
adds r0, r4, 0
_08037DEA:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8037D64
thumb_func_start sub_8037DF0
sub_8037DF0:
push {r4,lr}
sub sp, 0x8
movs r4, 0
movs r0, 0
mov r1, sp
movs r2, 0x4
bl sub_800D670
add r1, sp, 0x4
movs r0, 0x1
movs r2, 0x4
bl sub_800D670
ldr r0, [sp]
cmp r0, 0
bne _08037E16
ldr r0, [sp, 0x4]
cmp r0, 0
beq _08037E2C
_08037E16:
bl sub_800D588
lsls r0, 24
cmp r0, 0
bne _08037E24
ldr r4, [sp, 0x4]
b _08037E26
_08037E24:
ldr r4, [sp]
_08037E26:
cmp r4, 0
bne _08037E2C
movs r4, 0xE
_08037E2C:
adds r0, r4, 0
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8037DF0
thumb_func_start sub_8037E38
sub_8037E38:
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
bl sub_800D588
lsls r0, 24
adds r4, r6, 0
cmp r0, 0
bne _08037E4C
adds r4, r5, 0
_08037E4C:
bl sub_800D588
lsls r0, 24
adds r3, r5, 0
cmp r0, 0
bne _08037E5A
adds r3, r6, 0
_08037E5A:
ldrb r0, [r4]
ldrb r1, [r3]
cmp r0, r1
bne _08037E70
ldr r0, _08037E6C
ldr r1, [r0]
ldrb r0, [r4]
b _08037E76
.align 2, 0
_08037E6C: .4byte gUnknown_203B460
_08037E70:
ldr r0, _08037E8C
ldr r1, [r0]
ldrb r0, [r3]
_08037E76:
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r2, [r1]
ldr r0, [r3, 0x4]
adds r2, r0
strh r2, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08037E8C: .4byte gUnknown_203B460
thumb_func_end sub_8037E38
thumb_func_start sub_8037E90
sub_8037E90:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_800D588
lsls r0, 24
cmp r0, 0
bne _08037EA2
adds r4, r5, 0
_08037EA2:
movs r0, 0x2
strb r0, [r4]
adds r0, r4, 0
bl sub_80951BC
ldr r0, [r4, 0x10]
bl sub_8095274
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8037E90
thumb_func_start nullsub_53
nullsub_53:
bx lr
thumb_func_end nullsub_53
thumb_func_start sub_8037EBC
sub_8037EBC:
push {r4-r6,lr}
adds r6, r0, 0
adds r4, r1, 0
bl sub_800D588
lsls r0, 24
adds r5, r4, 0
cmp r0, 0
bne _08037ED0
adds r5, r6, 0
_08037ED0:
ldr r1, [r5, 0x10]
movs r0, 0x1
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r4, r0, 0
adds r1, r4, 0
adds r0, r5, 0
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
movs r0, 0x5
strb r0, [r4]
adds r0, r4, 0
bl sub_80951FC
movs r0, 0x7
strb r0, [r4]
movs r0, 0x38
ldrsh r6, [r5, r0]
cmp r6, 0
beq _08037F30
ldr r4, _08037F2C
ldr r0, [r4]
ldr r1, [r5, 0x10]
stm r0!, {r1}
adds r1, r5, 0
adds r1, 0x30
movs r2, 0x58
bl memcpy
ldr r1, [r4]
movs r0, 0x42
strb r0, [r1, 0x8]
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x9]
b _08037F40
.align 2, 0
_08037F2C: .4byte gUnknown_203B484
_08037F30:
ldr r4, _08037F48
ldr r0, [r4]
movs r1, 0
movs r2, 0x5C
bl MemoryFill8
ldr r0, [r4]
strh r6, [r0, 0xC]
_08037F40:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08037F48: .4byte gUnknown_203B484
thumb_func_end sub_8037EBC
thumb_func_start sub_8037F4C
sub_8037F4C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_800D588
lsls r0, 24
cmp r0, 0
bne _08037F5E
adds r4, r5, 0
_08037F5E:
ldr r1, [r4, 0x10]
movs r0, 0x4
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r2, r0, 0
adds r1, r4, 0
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
movs r1, 0x6
strb r1, [r0]
bl sub_8035D4C
cmp r0, 0
beq _08037F96
adds r1, r0, 0
adds r1, 0x3A
movs r0, 0x1
strb r0, [r1]
_08037F96:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8037F4C
thumb_func_start sub_8037F9C
sub_8037F9C:
push {lr}
adds r3, r1, 0
cmp r0, 0xA
bhi _08038010
lsls r0, 2
ldr r1, _08037FB0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08037FB0: .4byte _08037FB4
.align 2, 0
_08037FB4:
.4byte _08037FE0
.4byte _08037FE0
.4byte _08038010
.4byte _08037FF4
.4byte _08038010
.4byte _08037FFE
.4byte _08038010
.4byte _08037FEA
.4byte _08038010
.4byte _08038010
.4byte _08038008
_08037FE0:
adds r0, r3, 0
adds r1, r2, 0
bl sub_8037E38
b _08038010
_08037FEA:
adds r0, r3, 0
adds r1, r2, 0
bl sub_8037F4C
b _08038010
_08037FF4:
adds r0, r3, 0
adds r1, r2, 0
bl sub_8037E90
b _08038010
_08037FFE:
adds r0, r3, 0
adds r1, r2, 0
bl sub_8037EBC
b _08038010
_08038008:
adds r0, r3, 0
adds r1, r2, 0
bl nullsub_53
_08038010:
pop {r0}
bx r0
thumb_func_end sub_8037F9C
thumb_func_start sub_8038014
sub_8038014:
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
bl sub_800D588
lsls r0, 24
adds r4, r6, 0
cmp r0, 0
bne _08038028
adds r4, r5, 0
_08038028:
bl sub_800D588
lsls r0, 24
adds r3, r5, 0
cmp r0, 0
bne _08038036
adds r3, r6, 0
_08038036:
ldrb r0, [r4]
ldrb r1, [r3]
cmp r0, r1
bne _0803804C
ldr r0, _08038048
ldr r1, [r0]
ldrb r0, [r4]
b _08038052
.align 2, 0
_08038048: .4byte gUnknown_203B460
_0803804C:
ldr r0, _08038070
ldr r1, [r0]
ldrb r0, [r3]
_08038052:
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r2, [r1]
ldr r0, [r3, 0x4]
adds r2, r0
ldr r0, _08038074
movs r1, 0
cmp r2, r0
ble _08038068
movs r1, 0x6
_08038068:
adds r0, r1, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08038070: .4byte gUnknown_203B460
_08038074: .4byte 0x000003e7
thumb_func_end sub_8038014
thumb_func_start sub_8038078
sub_8038078:
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_800D588
lsls r0, 24
cmp r0, 0
bne _0803808A
adds r4, r5, 0
_0803808A:
ldr r6, [r4, 0x10]
ldr r0, _08038098
ldr r0, [r0]
cmp r0, 0
beq _0803809C
ldr r5, [r0, 0x50]
b _080380A2
.align 2, 0
_08038098: .4byte gUnknown_203B184
_0803809C:
bl sub_8011C34
adds r5, r0, 0
_080380A2:
movs r0, 0x4
adds r1, r6, 0
bl sub_80952F0
lsls r0, 24
cmp r0, 0
beq _080380BA
ldr r0, [r4, 0x28]
cmp r0, r5
bne _080380BA
movs r0, 0
b _080380BC
_080380BA:
movs r0, 0xB
_080380BC:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8038078
thumb_func_start sub_80380C4
sub_80380C4:
push {r4-r6,lr}
adds r6, r0, 0
adds r4, r1, 0
bl sub_800D588
lsls r0, 24
adds r5, r4, 0
cmp r0, 0
bne _080380D8
adds r5, r6, 0
_080380D8:
ldr r4, [r5, 0x10]
movs r0, 0x2
adds r1, r4, 0
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _08038110
movs r0, 0x4
adds r1, r4, 0
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _08038110
movs r0, 0x6
adds r1, r4, 0
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _08038110
ldr r0, [r5, 0x10]
bl sub_8095298
lsls r0, 24
cmp r0, 0
beq _08038114
_08038110:
movs r0, 0x7
b _08038126
_08038114:
bl sub_8095190
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _08038124
movs r0, 0
b _08038126
_08038124:
movs r0, 0xD
_08038126:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80380C4
thumb_func_start sub_803812C
sub_803812C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_800D588
lsls r0, 24
cmp r0, 0
bne _0803813E
adds r4, r5, 0
_0803813E:
ldr r1, [r4, 0x10]
movs r0, 0x1
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _08038150
movs r0, 0x9
b _08038152
_08038150:
movs r0, 0
_08038152:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_803812C
thumb_func_start sub_8038158
sub_8038158:
movs r0, 0
bx lr
thumb_func_end sub_8038158
thumb_func_start sub_803815C
sub_803815C:
push {r4,lr}
adds r3, r1, 0
movs r4, 0
cmp r0, 0xA
bhi _080381D2
lsls r0, 2
ldr r1, _08038170
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08038170: .4byte _08038174
.align 2, 0
_08038174:
.4byte _080381A0
.4byte _080381A0
.4byte _080381D2
.4byte _080381B4
.4byte _080381D2
.4byte _080381BE
.4byte _080381D2
.4byte _080381AA
.4byte _080381D2
.4byte _080381D2
.4byte _080381C8
_080381A0:
adds r0, r3, 0
adds r1, r2, 0
bl sub_8038014
b _080381D0
_080381AA:
adds r0, r3, 0
adds r1, r2, 0
bl sub_8038078
b _080381D0
_080381B4:
adds r0, r3, 0
adds r1, r2, 0
bl sub_80380C4
b _080381D0
_080381BE:
adds r0, r3, 0
adds r1, r2, 0
bl sub_803812C
b _080381D0
_080381C8:
adds r0, r3, 0
adds r1, r2, 0
bl sub_8038158
_080381D0:
adds r4, r0, 0
_080381D2:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_803815C
thumb_func_start sub_80381DC
sub_80381DC:
push {lr}
bl sub_8037F9C
pop {r0}
bx r0
thumb_func_end sub_80381DC
thumb_func_start sub_80381E8
sub_80381E8:
push {lr}
bl sub_803815C
pop {r1}
bx r1
thumb_func_end sub_80381E8
thumb_func_start sub_80381F4
sub_80381F4:
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
adds r7, r2, 0
movs r4, 0
bl sub_803815C
str r0, [sp]
ldr r0, _08038218
str r4, [r0]
bl sub_800D494
mov r0, sp
movs r1, 0x4
bl sub_800D59C
b _0803822E
.align 2, 0
_08038218: .4byte gUnknown_202EC4C
_0803821C:
subs r0, r4, 0x3
cmp r0, 0x2
bls _08038272
ldr r1, _08038250
ldr r0, [r1]
cmp r0, 0x63
bgt _0803827E
adds r0, 0x1
str r0, [r1]
_0803822E:
bl sub_80373C4
bl sub_800D33C
adds r4, r0, 0
bl sub_800D570
cmp r4, 0x2
bne _0803821C
bl sub_800D600
lsls r0, 24
cmp r0, 0
beq _08038254
bl sub_8037DF0
b _0803825E
.align 2, 0
_08038250: .4byte gUnknown_202EC4C
_08038254:
bl sub_800D520
bl sub_800D510
movs r0, 0x5
_0803825E:
str r0, [sp]
ldr r0, [sp]
cmp r0, 0
bne _0803828A
adds r0, r5, 0
adds r1, r6, 0
adds r2, r7, 0
bl sub_8037F9C
b _08038292
_08038272:
bl sub_800D520
bl sub_800D510
movs r0, 0x1
b _08038298
_0803827E:
bl sub_800D520
bl sub_800D510
movs r0, 0xF
b _08038298
_0803828A:
bl sub_800D520
bl sub_800D510
_08038292:
bl sub_800D520
ldr r0, [sp]
_08038298:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80381F4
thumb_func_start sub_80382A0
sub_80382A0:
push {lr}
movs r0, 0
bl sub_8031F60
pop {r0}
bx r0
thumb_func_end sub_80382A0
thumb_func_start sub_80382AC
sub_80382AC:
push {lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r0}
bx r0
thumb_func_end sub_80382AC
thumb_func_start sub_80382C0
sub_80382C0:
push {r4,lr}
ldr r4, _080382E0
movs r0, 0x1
bl sub_8031FD8
cmp r0, 0x1
bls _080382D8
cmp r0, 0x3
bhi _080382D8
bl sub_803203C
movs r4, 0x1
_080382D8:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080382E0: .4byte 0x0000ffdc
thumb_func_end sub_80382C0
thumb_func_start sub_80382E4
sub_80382E4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
mov r8, r0
ldr r5, _08038398
ldr r0, [r5]
cmp r0, 0
bne _0803830E
movs r4, 0xDA
lsls r4, 1
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_0803830E:
mov r12, r5
movs r0, 0xA4
lsls r0, 1
mov r9, r0
ldr r4, _0803839C
movs r3, 0
movs r2, 0x3
_0803831C:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r9
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0803831C
bl sub_8004914
ldr r5, _08038398
ldr r0, [r5]
movs r6, 0xA4
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
mov r7, r8
cmp r7, 0x25
bne _08038370
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x8
adds r1, r6
ldr r3, _080383A0
ldr r2, _080383A4
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0x4
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
_08038370:
ldr r0, [r5]
adds r0, 0x8
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
ldr r1, [r5]
mov r0, r8
str r0, [r1]
movs r0, 0
str r0, [r1, 0x4]
bl sub_8038440
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08038398: .4byte gUnknown_203B360
_0803839C: .4byte gUnknown_80E6E7C
_080383A0: .4byte gUnknown_80E6E94
_080383A4: .4byte gUnknown_80E6EAC
thumb_func_end sub_80382E4
thumb_func_start sub_80383A8
sub_80383A8:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _080383D0
ldr r0, [r4]
cmp r0, 0
beq _080383C8
bl MemoryFree
movs r0, 0
str r0, [r4]
_080383C8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080383D0: .4byte gUnknown_203B360
thumb_func_end sub_80383A8
thumb_func_start sub_80383D4
sub_80383D4:
push {r4-r6,lr}
sub sp, 0x4
movs r0, 0x2
str r0, [sp]
ldr r6, _08038410
ldr r4, _08038414
ldr r0, [r4]
ldr r5, [r0, 0x4]
cmp r5, 0
bne _08038434
adds r0, 0x8
bl sub_80130A8
lsls r0, 24
cmp r0, 0
bne _080383FE
ldr r0, [r4]
adds r0, 0x8
mov r1, sp
bl sub_8013114
_080383FE:
ldr r0, [sp]
cmp r0, 0x2
beq _0803842C
cmp r0, 0x2
bhi _08038418
cmp r0, 0x1
beq _0803841C
b _08038430
.align 2, 0
_08038410: .4byte 0x0000ffdc
_08038414: .4byte gUnknown_203B360
_08038418:
cmp r0, 0x3
bne _08038430
_0803841C:
ldr r0, _08038428
ldr r1, [r0]
movs r0, 0
str r0, [r1, 0x4]
movs r6, 0x1
b _08038430
.align 2, 0
_08038428: .4byte gUnknown_203B360
_0803842C:
ldr r0, [r4]
str r5, [r0, 0x4]
_08038430:
bl sub_80384D0
_08038434:
adds r0, r6, 0
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80383D4
thumb_func_start sub_8038440
sub_8038440:
push {r4,r5,lr}
movs r5, 0
ldr r0, _080384B0
ldr r0, [r0]
mov r12, r0
movs r3, 0xD4
lsls r3, 1
add r3, r12
ldrh r1, [r3]
ldr r0, _080384B4
ands r0, r1
ldr r1, _080384B8
ands r0, r1
ldr r4, _080384BC
ands r0, r4
ldr r1, _080384C0
ands r0, r1
ldr r1, _080384C4
ands r0, r1
movs r2, 0x80
lsls r2, 7
ldr r1, _080384C8
ands r0, r1
orrs r0, r2
strh r0, [r3]
movs r2, 0xFC
lsls r2, 2
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r2, 0xF
movs r4, 0xF0
lsls r4, 8
ldr r1, _080384CC
ands r0, r1
orrs r0, r4
strh r0, [r3, 0x4]
movs r0, 0x70
strh r0, [r3, 0x2]
movs r1, 0xE0
lsls r1, 3
ldrh r0, [r3, 0x6]
ands r2, r0
orrs r2, r1
strh r2, [r3, 0x6]
movs r0, 0xD8
lsls r0, 1
add r0, r12
str r5, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080384B0: .4byte gUnknown_203B360
_080384B4: .4byte 0x0000feff
_080384B8: .4byte 0x0000fdff
_080384BC: .4byte 0x0000f3ff
_080384C0: .4byte 0x0000efff
_080384C4: .4byte 0x0000dfff
_080384C8: .4byte 0x00003fff
_080384CC: .4byte 0x00000fff
thumb_func_end sub_8038440
thumb_func_start sub_80384D0
sub_80384D0:
push {r4,r5,lr}
ldr r5, _08038508
ldr r2, [r5]
movs r4, 0xD8
lsls r4, 1
adds r0, r2, r4
ldr r0, [r0]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _080384F6
movs r1, 0xD4
lsls r1, 1
adds r0, r2, r1
subs r1, 0xA8
movs r2, 0
movs r3, 0
bl AddSprite
_080384F6:
ldr r1, [r5]
adds r1, r4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08038508: .4byte gUnknown_203B360
thumb_func_end sub_80384D0
thumb_func_start sub_803850C
sub_803850C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
mov r8, r0
ldr r5, _0803859C
ldr r0, [r5]
cmp r0, 0
bne _08038536
movs r4, 0xDA
lsls r4, 1
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_08038536:
mov r12, r5
movs r0, 0xA4
lsls r0, 1
mov r9, r0
ldr r4, _080385A0
movs r3, 0
movs r2, 0x3
_08038544:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r9
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08038544
bl sub_8004914
ldr r4, _0803859C
ldr r0, [r4]
movs r6, 0xA4
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
mov r7, r8
cmp r7, 0x2E
bne _080385AC
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x8
adds r1, r6
ldr r3, _080385A4
ldr r2, _080385A8
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
b _080385CE
.align 2, 0
_0803859C: .4byte gUnknown_203B364
_080385A0: .4byte gUnknown_80E6F20
_080385A4: .4byte gUnknown_80E6F38
_080385A8: .4byte gUnknown_80E7090
_080385AC:
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _080385F8
ldr r2, _080385FC
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
_080385CE:
ldr r4, _08038600
ldr r0, [r4]
adds r0, 0x8
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0x4]
mov r5, r8
str r5, [r1]
bl sub_8038830
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080385F8: .4byte gUnknown_80E6F38
_080385FC: .4byte gUnknown_80E6F50
_08038600: .4byte gUnknown_203B364
thumb_func_end sub_803850C
thumb_func_start sub_8038604
sub_8038604:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _0803862C
ldr r0, [r4]
cmp r0, 0
beq _08038624
bl MemoryFree
movs r0, 0
str r0, [r4]
_08038624:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803862C: .4byte gUnknown_203B364
thumb_func_end sub_8038604
thumb_func_start sub_8038630
sub_8038630:
push {r4-r6,lr}
sub sp, 0x18
ldr r5, _080386A8
movs r0, 0x3
str r0, [sp, 0x14]
ldr r6, _080386AC
ldr r0, [r6]
ldr r4, [r0, 0x4]
cmp r4, 0x1
bne _08038646
b _08038798
_08038646:
cmp r4, 0x1
bcc _0803864C
b _08038824
_0803864C:
adds r0, 0x8
bl sub_8012FD8
movs r5, 0
str r5, [sp, 0x10]
bl sub_80140F8
bl sub_8011C1C
adds r1, r0, 0
add r0, sp, 0x10
bl sub_801203C
adds r4, r0, 0
bl sub_8014114
cmp r4, 0
beq _080386B8
cmp r4, 0x1
beq _08038738
ldr r0, [r6]
movs r4, 0xA4
lsls r4, 1
adds r0, r4
movs r1, 0
bl sub_8035CC0
ldr r1, [r6]
ldr r0, [r1]
cmp r0, 0x2E
bne _08038750
adds r0, r1, 0
adds r0, 0x8
adds r1, r4
ldr r3, _080386B0
ldr r2, _080386B4
str r2, [sp]
str r5, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r5, [sp, 0xC]
movs r2, 0
bl SetMenuItems
b _0803876E
.align 2, 0
_080386A8: .4byte 0x0000ffdc
_080386AC: .4byte gUnknown_203B364
_080386B0: .4byte gUnknown_80E6F38
_080386B4: .4byte gUnknown_80E7114
_080386B8:
ldr r0, [r6]
movs r1, 0xA4
lsls r1, 1
adds r0, r1
movs r1, 0
bl sub_8035CC0
ldr r1, [r6]
ldr r0, [r1]
cmp r0, 0x2E
bne _080386F8
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _080386F0
ldr r2, _080386F4
str r2, [sp]
str r5, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r5, [sp, 0xC]
movs r2, 0
bl SetMenuItems
b _08038716
.align 2, 0
_080386F0: .4byte gUnknown_80E6F38
_080386F4: .4byte gUnknown_80E70CC
_080386F8:
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038728
ldr r2, _0803872C
str r2, [sp]
str r5, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r5, [sp, 0xC]
movs r2, 0
bl SetMenuItems
_08038716:
ldr r4, _08038730
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x2D
bne _08038734
movs r0, 0x1
str r0, [r1, 0x4]
movs r0, 0x13
b _08038826
.align 2, 0
_08038728: .4byte gUnknown_80E6F38
_0803872C: .4byte gUnknown_80E6FBC
_08038730: .4byte gUnknown_203B364
_08038734:
adds r0, r1, 0
b _08038772
_08038738:
ldr r0, _0803874C
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
ldr r1, [r6]
movs r0, 0x5
b _08038780
.align 2, 0
_0803874C: .4byte gUnknown_80E7178
_08038750:
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038788
ldr r2, _0803878C
str r2, [sp]
str r5, [sp, 0x4]
movs r2, 0x6
str r2, [sp, 0x8]
str r5, [sp, 0xC]
movs r2, 0
bl SetMenuItems
_0803876E:
ldr r4, _08038790
ldr r0, [r4]
_08038772:
adds r0, 0x8
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
ldr r1, [r4]
movs r0, 0x1
_08038780:
str r0, [r1, 0x4]
ldr r5, _08038794
b _08038824
.align 2, 0
_08038788: .4byte gUnknown_80E6F38
_0803878C: .4byte gUnknown_80E701C
_08038790: .4byte gUnknown_203B364
_08038794: .4byte 0x0000ffdc
_08038798:
adds r0, 0x8
bl sub_80130A8
lsls r0, 24
cmp r0, 0
bne _080387AE
ldr r0, [r6]
adds r0, 0x8
add r1, sp, 0x14
bl sub_8013114
_080387AE:
ldr r0, [sp, 0x14]
cmp r0, 0x3
beq _0803881C
cmp r0, 0x3
bhi _080387BE
cmp r0, 0x2
beq _080387C2
b _08038820
_080387BE:
cmp r0, 0x4
bne _08038820
_080387C2:
ldr r4, _080387D8
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x29
beq _080387D0
cmp r0, 0x2E
bne _080387DC
_080387D0:
movs r0, 0x1
str r0, [r1, 0x4]
movs r5, 0x1
b _08038820
.align 2, 0
_080387D8: .4byte gUnknown_203B364
_080387DC:
cmp r0, 0x2D
bne _080387E8
movs r0, 0x1
str r0, [r1, 0x4]
movs r5, 0x13
b _08038820
_080387E8:
cmp r0, 0x2C
bne _080387F4
movs r0, 0x1
str r0, [r1, 0x4]
movs r5, 0x1F
b _08038820
_080387F4:
bl sub_8035D4C
adds r0, 0x3A
ldrb r0, [r0]
cmp r0, 0
beq _0803880A
ldr r1, [r4]
movs r0, 0x1
str r0, [r1, 0x4]
movs r5, 0x35
b _08038820
_0803880A:
ldr r0, [r4]
movs r1, 0x1
str r1, [r0, 0x4]
ldr r0, [r0]
movs r5, 0xB
cmp r0, 0x2B
bne _08038820
movs r5, 0xD
b _08038820
_0803881C:
ldr r0, [r6]
str r4, [r0, 0x4]
_08038820:
bl sub_80388C4
_08038824:
adds r0, r5, 0
_08038826:
add sp, 0x18
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8038630
thumb_func_start sub_8038830
sub_8038830:
push {r4,r5,lr}
movs r5, 0
ldr r0, _080388A4
ldr r0, [r0]
mov r12, r0
movs r3, 0xD4
lsls r3, 1
add r3, r12
ldrh r1, [r3]
ldr r0, _080388A8
ands r0, r1
ldr r1, _080388AC
ands r0, r1
ldr r4, _080388B0
ands r0, r4
ldr r1, _080388B4
ands r0, r1
ldr r1, _080388B8
ands r0, r1
movs r2, 0x80
lsls r2, 7
ldr r1, _080388BC
ands r0, r1
orrs r0, r2
strh r0, [r3]
movs r2, 0xFC
lsls r2, 2
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r2, 0xF
movs r4, 0xF0
lsls r4, 8
ldr r1, _080388C0
ands r0, r1
orrs r0, r4
strh r0, [r3, 0x4]
movs r0, 0x70
strh r0, [r3, 0x2]
movs r1, 0xD0
lsls r1, 3
ldrh r0, [r3, 0x6]
ands r2, r0
orrs r2, r1
strh r2, [r3, 0x6]
movs r0, 0xD8
lsls r0, 1
add r0, r12
str r5, [r0]
movs r0, 0
bl ResetSprites
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080388A4: .4byte gUnknown_203B364
_080388A8: .4byte 0x0000feff
_080388AC: .4byte 0x0000fdff
_080388B0: .4byte 0x0000f3ff
_080388B4: .4byte 0x0000efff
_080388B8: .4byte 0x0000dfff
_080388BC: .4byte 0x00003fff
_080388C0: .4byte 0x00000fff
thumb_func_end sub_8038830
thumb_func_start sub_80388C4
sub_80388C4:
push {r4,r5,lr}
ldr r5, _080388FC
ldr r2, [r5]
movs r4, 0xD8
lsls r4, 1
adds r0, r2, r4
ldr r0, [r0]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _080388EA
movs r1, 0xD4
lsls r1, 1
adds r0, r2, r1
subs r1, 0xA8
movs r2, 0
movs r3, 0
bl AddSprite
_080388EA:
ldr r1, [r5]
adds r1, r4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080388FC: .4byte gUnknown_203B364
thumb_func_end sub_80388C4
thumb_func_start sub_8038900
sub_8038900:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r6, r0, 0
ldr r5, _080389B8
ldr r0, [r5]
cmp r0, 0
bne _0803892A
movs r4, 0x85
lsls r4, 2
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_0803892A:
movs r0, 0x1B
negs r0, r0
adds r0, r6
mov r8, r0
mov r12, r5
movs r1, 0xA4
lsls r1, 1
mov r9, r1
ldr r4, _080389BC
mov r10, r4
movs r3, 0
movs r2, 0x3
_08038942:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r9
mov r0, r10
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
ldm r0!, {r4,r5,r7}
stm r1!, {r4,r5,r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _08038942
bl sub_8004914
ldr r4, _080389B8
ldr r0, [r4]
movs r7, 0xA4
lsls r7, 1
adds r0, r7
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r2, _080389C0
ldrb r0, [r2]
cmp r0, 0
bne _08038986
ldr r0, _080389C4
ldr r1, [r0]
adds r7, r4, 0
adds r5, r0, 0
cmp r1, r6
beq _080389A0
_08038986:
adds r7, r4, 0
adds r3, r2, 0
ldr r5, _080389C4
ldr r1, _080389C8
movs r2, 0
adds r0, r1, 0
adds r0, 0x35
_08038994:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _08038994
movs r0, 0
strb r0, [r3]
_080389A0:
ldr r0, [r7]
str r6, [r0]
str r6, [r5]
mov r0, r8
cmp r0, 0x7
bhi _08038A36
lsls r0, 2
ldr r1, _080389CC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080389B8: .4byte gUnknown_203B370
_080389BC: .4byte gUnknown_80E71E4
_080389C0: .4byte gUnknown_203B368
_080389C4: .4byte gUnknown_203B36C
_080389C8: .4byte gUnknown_202EC50
_080389CC: .4byte _080389D0
.align 2, 0
_080389D0:
.4byte _080389F0
.4byte _080389FC
.4byte _080389F0
.4byte _080389FC
.4byte _080389F0
.4byte _080389FC
.4byte _08038A0C
.4byte _08038A2E
_080389F0:
bl sub_8035D74
movs r1, 0
bl sub_8031D70
b _08038A36
_080389FC:
ldr r1, _08038A08
movs r0, 0x4
bl sub_80151C0
b _08038A36
.align 2, 0
_08038A08: .4byte gUnknown_202EC50
_08038A0C:
movs r0, 0x1F
bl sub_8095228
adds r4, r0, 0
movs r1, 0
movs r2, 0x30
bl MemoryFill8
movs r1, 0
movs r0, 0x2
strb r0, [r4]
adds r4, 0x22
strb r1, [r4]
movs r0, 0x1F
bl sub_8031D70
b _08038A36
_08038A2E:
ldr r1, _08038A54
movs r0, 0x4
bl sub_80151C0
_08038A36:
adds r0, r6, 0
bl sub_8039000
ldr r1, _08038A58
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_8039174
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08038A54: .4byte gUnknown_202EC50
_08038A58: .4byte gUnknown_203B370
thumb_func_end sub_8038900
thumb_func_start sub_8038A5C
sub_8038A5C:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _08038A8C
ldr r0, [r4]
cmp r0, 0
beq _08038A86
bl sub_80155F0
bl sub_8031E10
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08038A86:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08038A8C: .4byte gUnknown_203B370
thumb_func_end sub_8038A5C
thumb_func_start sub_8038A90
sub_8038A90:
push {r4-r6,lr}
sub sp, 0x34
movs r0, 0xB
str r0, [sp, 0x30]
ldr r5, _08038AB4
ldr r1, _08038AB8
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r6, r1, 0
cmp r0, 0x9
bls _08038AA8
b _08038DB0
_08038AA8:
lsls r0, 2
ldr r1, _08038ABC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08038AB4: .4byte 0x0000ffdc
_08038AB8: .4byte gUnknown_203B370
_08038ABC: .4byte _08038AC0
.align 2, 0
_08038AC0:
.4byte _08038AE8
.4byte _08038AFC
.4byte _08038AE8
.4byte _08038AFC
.4byte _08038AE8
.4byte _08038AFC
.4byte _08038C78
.4byte _08038C8C
.4byte _08038CC2
.4byte _08038D38
_08038AE8:
bl sub_8031DCC
ldr r5, _08038AF8
cmp r0, 0
bne _08038AF4
b _08038DB0
_08038AF4:
movs r5, 0xB
b _08038DB0
.align 2, 0
_08038AF8: .4byte 0x0000ffdc
_08038AFC:
bl sub_80154F0
adds r4, r0, 0
mov r0, sp
movs r1, 0
movs r2, 0x30
bl MemoryFill8
cmp r4, 0x1
bne _08038B12
b _08038CBC
_08038B12:
cmp r4, 0x1
bcs _08038B18
b _08038CB0
_08038B18:
cmp r4, 0x2
beq _08038AF4
cmp r4, 0x3
beq _08038B22
b _08038DB0
_08038B22:
ldr r0, _08038B44
ldr r0, [r0]
ldr r0, [r0]
ldr r1, _08038B48
mov r2, sp
bl sub_8039068
subs r0, 0x7
cmp r0, 0x11
bls _08038B38
b _08038DB0
_08038B38:
lsls r0, 2
ldr r1, _08038B4C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08038B44: .4byte gUnknown_203B370
_08038B48: .4byte gUnknown_202EC50
_08038B4C: .4byte _08038B50
.align 2, 0
_08038B50:
.4byte _08038BA4
.4byte _08038DB0
.4byte _08038BD8
.4byte _08038DB0
.4byte _08038C28
.4byte _08038DB0
.4byte _08038B9C
.4byte _08038DB0
.4byte _08038DB0
.4byte _08038DB0
.4byte _08038B98
.4byte _08038BA0
.4byte _08038BD4
.4byte _08038C24
.4byte _08038DB0
.4byte _08038BA8
.4byte _08038BDC
.4byte _08038C2C
_08038B98:
movs r0, 0x11
b _08038CA4
_08038B9C:
movs r0, 0xD
b _08038CA4
_08038BA0:
movs r0, 0x12
b _08038CA4
_08038BA4:
movs r0, 0x7
b _08038CA4
_08038BA8:
ldr r0, [sp, 0x10]
bl sub_8095274
bl sub_8038F98
ldr r0, _08038BCC
ldr r1, [r0]
movs r0, 0x9
str r0, [r1, 0x4]
ldr r5, _08038BD0
mov r1, sp
movs r0, 0x2
strb r0, [r1]
mov r0, sp
bl sub_80951BC
b _08038DB0
.align 2, 0
_08038BCC: .4byte gUnknown_203B370
_08038BD0: .4byte 0x0000ffdc
_08038BD4:
movs r0, 0x13
b _08038CA4
_08038BD8:
movs r0, 0x9
b _08038CA4
_08038BDC:
bl sub_8038F98
ldr r0, _08038C18
ldr r1, [r0]
movs r0, 0x9
str r0, [r1, 0x4]
ldr r5, _08038C1C
mov r1, sp
movs r0, 0x5
strb r0, [r1]
mov r0, sp
bl sub_80951FC
ldr r1, [sp, 0x10]
movs r0, 0x1
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
movs r1, 0x7
strb r1, [r0]
ldr r0, _08038C20
movs r1, 0
movs r2, 0x5C
bl MemoryFill8
b _08038DB0
.align 2, 0
_08038C18: .4byte gUnknown_203B370
_08038C1C: .4byte 0x0000ffdc
_08038C20: .4byte gUnknown_203B484
_08038C24:
movs r0, 0x14
b _08038CA4
_08038C28:
movs r0, 0xB
b _08038CA4
_08038C2C:
bl sub_8038F98
ldr r0, _08038C70
ldr r1, [r0]
movs r0, 0x9
str r0, [r1, 0x4]
ldr r5, _08038C74
ldr r1, [sp, 0x10]
movs r0, 0x4
bl sub_809539C
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r2, r0, 0
mov r1, sp
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r1!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
movs r1, 0x6
strb r1, [r0]
bl sub_8035D4C
adds r0, 0x3A
movs r1, 0x1
strb r1, [r0]
b _08038DB0
.align 2, 0
_08038C70: .4byte gUnknown_203B370
_08038C74: .4byte 0x0000ffdc
_08038C78:
bl sub_8031DCC
ldr r5, _08038C88
cmp r0, 0
bne _08038C84
b _08038DB0
_08038C84:
movs r5, 0xD
b _08038DB0
.align 2, 0
_08038C88: .4byte 0x0000ffdc
_08038C8C:
bl sub_80154F0
cmp r0, 0x1
beq _08038CBC
cmp r0, 0x1
bcc _08038CB0
cmp r0, 0x2
beq _08038C84
cmp r0, 0x3
beq _08038CA2
b _08038DB0
_08038CA2:
movs r0, 0x15
_08038CA4:
bl sub_8038DC0
ldr r0, _08038CB4
ldr r1, [r0]
movs r0, 0x8
str r0, [r1, 0x4]
_08038CB0:
ldr r5, _08038CB8
b _08038DB0
.align 2, 0
_08038CB4: .4byte gUnknown_203B370
_08038CB8: .4byte 0x0000ffdc
_08038CBC:
bl sub_8031E00
b _08038CB0
_08038CC2:
ldr r0, [r6]
adds r0, 0x8
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08038CDA
ldr r0, [r6]
adds r0, 0x8
add r1, sp, 0x30
bl sub_8013114
_08038CDA:
ldr r0, [sp, 0x30]
cmp r0, 0xB
beq _08038D24
cmp r0, 0xB
bhi _08038CEA
cmp r0, 0xA
beq _08038CEE
b _08038DB0
_08038CEA:
cmp r0, 0xC
bne _08038DB0
_08038CEE:
bl sub_8039174
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, _08038D1C
movs r0, 0x4
bl sub_80151C0
ldr r0, _08038D20
ldr r1, [r0]
movs r0, 0x8
str r0, [r1, 0x4]
ldr r0, [r1]
subs r0, 0x21
movs r5, 0xB
cmp r0, 0x1
bhi _08038DB0
b _08038C84
.align 2, 0
_08038D1C: .4byte gUnknown_202EC50
_08038D20: .4byte gUnknown_203B370
_08038D24:
ldr r1, [r6]
movs r0, 0x8
str r0, [r1, 0x4]
ldr r5, _08038D34
bl sub_80391F8
b _08038DB0
.align 2, 0
_08038D34: .4byte 0x0000ffdc
_08038D38:
adds r4, r6, 0
ldr r0, [r4]
adds r0, 0x8
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08038D52
ldr r0, [r4]
adds r0, 0x8
add r1, sp, 0x30
bl sub_8013114
_08038D52:
ldr r0, [sp, 0x30]
cmp r0, 0xB
beq _08038DA4
cmp r0, 0xB
bhi _08038D62
cmp r0, 0xA
beq _08038D66
b _08038DB0
_08038D62:
cmp r0, 0xC
bne _08038DB0
_08038D66:
bl sub_8039174
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, _08038D9C
movs r0, 0x4
bl sub_80151C0
ldr r4, _08038DA0
ldr r0, [r4]
ldr r0, [r0]
bl sub_8039000
ldr r1, [r4]
str r0, [r1, 0x4]
ldr r0, [r1]
subs r0, 0x21
movs r5, 0x2A
cmp r0, 0x1
bhi _08038DB0
movs r5, 0x2B
b _08038DB0
.align 2, 0
_08038D9C: .4byte gUnknown_202EC50
_08038DA0: .4byte gUnknown_203B370
_08038DA4:
ldr r1, [r6]
movs r0, 0x9
str r0, [r1, 0x4]
ldr r5, _08038DBC
bl sub_80391F8
_08038DB0:
adds r0, r5, 0
add sp, 0x34
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08038DBC: .4byte 0x0000ffdc
thumb_func_end sub_8038A90
thumb_func_start sub_8038DC0
sub_8038DC0:
push {r4,lr}
sub sp, 0x10
adds r4, r0, 0
ldr r0, _08038DF8
ldr r0, [r0]
movs r1, 0xD4
lsls r1, 1
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_80155F0
subs r0, r4, 0x7
cmp r0, 0xE
bls _08038DEE
b _08038F74
_08038DEE:
lsls r0, 2
ldr r1, _08038DFC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08038DF8: .4byte gUnknown_203B370
_08038DFC: .4byte _08038E00
.align 2, 0
_08038E00:
.4byte _08038E7C
.4byte _08038F74
.4byte _08038EDC
.4byte _08038F74
.4byte _08038F1C
.4byte _08038F74
.4byte _08038E9C
.4byte _08038F74
.4byte _08038F74
.4byte _08038F74
.4byte _08038E3C
.4byte _08038E5C
.4byte _08038EBC
.4byte _08038EFC
.4byte _08038F50
_08038E3C:
ldr r0, _08038E50
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038E54
ldr r2, _08038E58
b _08038F2E
.align 2, 0
_08038E50: .4byte gUnknown_203B370
_08038E54: .4byte gUnknown_80E71FC
_08038E58: .4byte gUnknown_80E7214
_08038E5C:
ldr r0, _08038E70
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038E74
ldr r2, _08038E78
b _08038F2E
.align 2, 0
_08038E70: .4byte gUnknown_203B370
_08038E74: .4byte gUnknown_80E72EC
_08038E78: .4byte gUnknown_80E7304
_08038E7C:
ldr r0, _08038E90
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038E94
ldr r2, _08038E98
b _08038F2E
.align 2, 0
_08038E90: .4byte gUnknown_203B370
_08038E94: .4byte gUnknown_80E7344
_08038E98: .4byte gUnknown_80E735C
_08038E9C:
ldr r0, _08038EB0
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038EB4
ldr r2, _08038EB8
b _08038F2E
.align 2, 0
_08038EB0: .4byte gUnknown_203B370
_08038EB4: .4byte gUnknown_80E7588
_08038EB8: .4byte gUnknown_80E75A0
_08038EBC:
ldr r0, _08038ED0
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038ED4
ldr r2, _08038ED8
b _08038F2E
.align 2, 0
_08038ED0: .4byte gUnknown_203B370
_08038ED4: .4byte gUnknown_80E73AC
_08038ED8: .4byte gUnknown_80E73C4
_08038EDC:
ldr r0, _08038EF0
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038EF4
ldr r2, _08038EF8
b _08038F2E
.align 2, 0
_08038EF0: .4byte gUnknown_203B370
_08038EF4: .4byte gUnknown_80E7408
_08038EF8: .4byte gUnknown_80E7420
_08038EFC:
ldr r0, _08038F10
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038F14
ldr r2, _08038F18
b _08038F2E
.align 2, 0
_08038F10: .4byte gUnknown_203B370
_08038F14: .4byte gUnknown_80E7468
_08038F18: .4byte gUnknown_80E7480
_08038F1C:
ldr r0, _08038F44
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038F48
ldr r2, _08038F4C
_08038F2E:
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0xD
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
b _08038F74
.align 2, 0
_08038F44: .4byte gUnknown_203B370
_08038F48: .4byte gUnknown_80E74C8
_08038F4C: .4byte gUnknown_80E74E0
_08038F50:
ldr r0, _08038F8C
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038F90
ldr r2, _08038F94
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0xD
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
_08038F74:
ldr r0, _08038F8C
ldr r0, [r0]
adds r0, 0x8
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08038F8C: .4byte gUnknown_203B370
_08038F90: .4byte gUnknown_80E752C
_08038F94: .4byte gUnknown_80E7544
thumb_func_end sub_8038DC0
thumb_func_start sub_8038F98
sub_8038F98:
push {r4,r5,lr}
sub sp, 0x10
ldr r5, _08038FF4
ldr r0, [r5]
movs r1, 0xD4
lsls r1, 1
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_80155F0
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r2
ldr r3, _08038FF8
ldr r2, _08038FFC
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r2, 0xD
str r2, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
ldr r0, [r5]
adds r0, 0x8
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08038FF4: .4byte gUnknown_203B370
_08038FF8: .4byte gUnknown_80E7278
_08038FFC: .4byte gUnknown_80E7290
thumb_func_end sub_8038F98
thumb_func_start sub_8039000
sub_8039000:
push {lr}
movs r1, 0xB
ldr r0, _0803901C
ldr r0, [r0]
ldr r0, [r0]
subs r0, 0x1B
cmp r0, 0x7
bhi _08039062
lsls r0, 2
ldr r1, _08039020
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803901C: .4byte gUnknown_203B370
_08039020: .4byte _08039024
.align 2, 0
_08039024:
.4byte _08039044
.4byte _08039054
.4byte _0803904C
.4byte _0803905C
.4byte _08039048
.4byte _08039058
.4byte _08039050
.4byte _08039060
_08039044:
movs r1, 0
b _08039062
_08039048:
movs r1, 0x4
b _08039062
_0803904C:
movs r1, 0x2
b _08039062
_08039050:
movs r1, 0x6
b _08039062
_08039054:
movs r1, 0x1
b _08039062
_08039058:
movs r1, 0x5
b _08039062
_0803905C:
movs r1, 0x3
b _08039062
_08039060:
movs r1, 0x7
_08039062:
adds r0, r1, 0
pop {r1}
bx r1
thumb_func_end sub_8039000
thumb_func_start sub_8039068
sub_8039068:
push {r4-r6,lr}
adds r6, r0, 0
adds r0, r1, 0
adds r5, r2, 0
adds r1, r5, 0
bl sub_803D204
lsls r0, 24
cmp r0, 0
beq _080390AC
ldrb r0, [r5]
cmp r0, 0x7
bhi _080390AC
ldrb r4, [r5, 0x5]
ldrb r0, [r5, 0x4]
bl sub_8090298
cmp r4, r0
bge _080390AC
movs r0, 0xC
ldrsh r1, [r5, r0]
cmp r1, 0
beq _080390AC
ldr r0, _080390B0
cmp r1, r0
bgt _080390AC
adds r0, r5, 0
adds r0, 0x22
ldrb r0, [r0]
bl sub_8092040
lsls r0, 24
cmp r0, 0
beq _080390B4
_080390AC:
movs r0, 0x11
b _0803916E
.align 2, 0
_080390B0: .4byte 0x000001a7
_080390B4:
cmp r6, 0x1E
beq _08039120
cmp r6, 0x1E
bhi _080390C2
cmp r6, 0x1C
beq _080390C8
b _0803916A
_080390C2:
cmp r6, 0x20
beq _08039140
b _0803916A
_080390C8:
ldrb r0, [r5]
cmp r0, 0x1
beq _080390D2
movs r0, 0x12
b _0803916E
_080390D2:
ldr r1, [r5, 0x10]
movs r0, 0x2
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _08039108
ldr r1, [r5, 0x10]
movs r0, 0x4
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _08039108
ldr r1, [r5, 0x10]
movs r0, 0x6
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _08039108
ldr r0, [r5, 0x10]
bl sub_8095298
lsls r0, 24
cmp r0, 0
beq _0803910C
_08039108:
movs r0, 0x7
b _0803916E
_0803910C:
bl sub_8095190
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0803911C
movs r0, 0xD
b _0803916E
_0803911C:
movs r0, 0x16
b _0803916E
_08039120:
ldrb r0, [r5]
cmp r0, 0x4
beq _0803912A
movs r0, 0x13
b _0803916E
_0803912A:
ldr r1, [r5, 0x10]
movs r0, 0x1
bl sub_80952F0
lsls r0, 24
cmp r0, 0
bne _0803913C
movs r0, 0x9
b _0803916E
_0803913C:
movs r0, 0x17
b _0803916E
_08039140:
ldrb r0, [r5]
cmp r0, 0x5
beq _0803914A
movs r0, 0x14
b _0803916E
_0803914A:
ldr r1, [r5, 0x10]
movs r0, 0x4
bl sub_80952F0
lsls r0, 24
cmp r0, 0
beq _08039162
bl sub_8011C34
ldr r1, [r5, 0x28]
cmp r1, r0
beq _08039166
_08039162:
movs r0, 0xB
b _0803916E
_08039166:
movs r0, 0x18
b _0803916E
_0803916A:
movs r0, 0x1
negs r0, r0
_0803916E:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8039068
thumb_func_start sub_8039174
sub_8039174:
push {r4,lr}
ldr r0, _080391D8
ldr r3, [r0]
movs r0, 0x82
lsls r0, 2
adds r3, r0
ldrh r1, [r3]
ldr r0, _080391DC
ands r0, r1
ldr r1, _080391E0
ands r0, r1
ldr r4, _080391E4
ands r0, r4
ldr r1, _080391E8
ands r0, r1
ldr r1, _080391EC
ands r0, r1
movs r2, 0x80
lsls r2, 7
ldr r1, _080391F0
ands r0, r1
orrs r0, r2
strh r0, [r3]
movs r2, 0xFC
lsls r2, 2
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r4
movs r2, 0xF
movs r4, 0xF0
lsls r4, 8
ldr r1, _080391F4
ands r0, r1
orrs r0, r4
strh r0, [r3, 0x4]
movs r0, 0
strh r0, [r3, 0x2]
movs r1, 0xC0
lsls r1, 4
ldrh r0, [r3, 0x6]
ands r2, r0
orrs r2, r1
strh r2, [r3, 0x6]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080391D8: .4byte gUnknown_203B370
_080391DC: .4byte 0x0000feff
_080391E0: .4byte 0x0000fdff
_080391E4: .4byte 0x0000f3ff
_080391E8: .4byte 0x0000efff
_080391EC: .4byte 0x0000dfff
_080391F0: .4byte 0x00003fff
_080391F4: .4byte 0x00000fff
thumb_func_end sub_8039174
thumb_func_start sub_80391F8
sub_80391F8:
push {r4-r6,lr}
ldr r6, _08039250
ldr r2, [r6]
movs r0, 0x82
lsls r0, 2
adds r4, r2, r0
ldrh r1, [r4, 0x2]
movs r0, 0xFE
lsls r0, 8
ands r0, r1
movs r1, 0x70
orrs r0, r1
strh r0, [r4, 0x2]
movs r3, 0xE0
lsls r3, 3
ldrh r1, [r4, 0x6]
movs r0, 0xF
ands r0, r1
orrs r0, r3
strh r0, [r4, 0x6]
movs r5, 0x84
lsls r5, 2
adds r2, r5
ldr r0, [r2]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _0803923C
adds r1, 0xF8
adds r0, r4, 0
movs r2, 0
movs r3, 0
bl AddSprite
_0803923C:
bl xxx_draw_string_80144C4
ldr r1, [r6]
adds r1, r5
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08039250: .4byte gUnknown_203B370
thumb_func_end sub_80391F8
thumb_func_start sub_8039254
sub_8039254:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r6, r0, 0
ldr r5, _080392EC
ldr r0, [r5]
cmp r0, 0
bne _0803927C
movs r4, 0x9F
lsls r4, 2
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_0803927C:
ldr r0, [r5]
str r6, [r0]
mov r12, r5
movs r0, 0xA2
lsls r0, 1
mov r8, r0
ldr r4, _080392F0
movs r3, 0
movs r2, 0x3
_0803928E:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0803928E
bl sub_8004914
ldr r6, _080392EC
ldr r0, [r6]
movs r5, 0xA2
lsls r5, 1
adds r0, r5
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r6]
adds r0, r1, 0x4
adds r1, r5
ldr r3, _080392F4
ldr r2, _080392F8
str r2, [sp]
movs r4, 0
str r4, [sp, 0x4]
movs r7, 0x6
str r7, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0
bl SetMenuItems
ldr r1, [r6]
ldr r0, [r1]
cmp r0, 0x7
beq _08039306
cmp r0, 0x7
bhi _080392FC
cmp r0, 0x6
beq _08039338
b _08039382
.align 2, 0
_080392EC: .4byte gUnknown_203B374
_080392F0: .4byte gUnknown_80E75F8
_080392F4: .4byte gUnknown_80E7610
_080392F8: .4byte gUnknown_203B378
_080392FC:
cmp r0, 0x8
beq _0803934C
cmp r0, 0x9
beq _0803936C
b _08039382
_08039306:
bl sub_8039844
lsls r0, 24
cmp r0, 0
beq _08039324
ldr r1, [r6]
adds r0, r1, 0x4
adds r1, r5
ldr r3, _0803931C
ldr r2, _08039320
b _08039354
.align 2, 0
_0803931C: .4byte gUnknown_80E762C
_08039320: .4byte gUnknown_80E7644
_08039324:
ldr r1, [r6]
adds r0, r1, 0x4
adds r1, r5
ldr r3, _08039330
ldr r2, _08039334
b _08039354
.align 2, 0
_08039330: .4byte gUnknown_80E762C
_08039334: .4byte gUnknown_80E7684
_08039338:
adds r0, r1, 0x4
adds r1, r5
ldr r3, _08039344
ldr r2, _08039348
b _08039354
.align 2, 0
_08039344: .4byte gUnknown_80E762C
_08039348: .4byte gUnknown_80E76B8
_0803934C:
adds r0, r1, 0x4
adds r1, r5
ldr r3, _08039364
ldr r2, _08039368
_08039354:
str r2, [sp]
str r4, [sp, 0x4]
str r7, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0x1
bl SetMenuItems
b _08039382
.align 2, 0
_08039364: .4byte gUnknown_80E762C
_08039368: .4byte gUnknown_80E76E8
_0803936C:
adds r0, r1, 0x4
adds r1, r5
ldr r3, _080393DC
ldr r2, _080393E0
str r2, [sp]
str r4, [sp, 0x4]
str r7, [sp, 0x8]
str r4, [sp, 0xC]
movs r2, 0x1
bl SetMenuItems
_08039382:
ldr r4, _080393E4
ldr r1, [r4]
adds r0, r1, 0x4
movs r6, 0xA2
lsls r6, 1
adds r1, r6
ldr r3, _080393E8
ldr r2, _080393EC
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0x2
str r2, [sp, 0x8]
movs r2, 0
str r2, [sp, 0xC]
movs r2, 0x2
bl SetMenuItems
ldr r0, [r4]
adds r0, 0x4
movs r1, 0
movs r2, 0
bl sub_8035CF4
ldr r0, [r4]
adds r0, 0x4
movs r1, 0x1
movs r2, 0
bl sub_8035CF4
ldr r0, [r4]
adds r0, 0x4
movs r1, 0x2
movs r2, 0x1
bl sub_8035CF4
bl sub_80394A4
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080393DC: .4byte gUnknown_80E762C
_080393E0: .4byte gUnknown_80E7730
_080393E4: .4byte gUnknown_203B374
_080393E8: .4byte gUnknown_80E7784
_080393EC: .4byte gUnknown_80E779C
thumb_func_end sub_8039254
thumb_func_start sub_80393F0
sub_80393F0:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _08039418
ldr r0, [r4]
cmp r0, 0
beq _08039410
bl MemoryFree
movs r0, 0
str r0, [r4]
_08039410:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08039418: .4byte gUnknown_203B374
thumb_func_end sub_80393F0
thumb_func_start sub_803941C
sub_803941C:
push {r4,r5,lr}
sub sp, 0x4
ldr r5, _08039458
movs r0, 0x4
str r0, [sp]
ldr r4, _0803945C
ldr r0, [r4]
adds r0, 0x54
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0xA4
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08039448
ldr r0, [r4]
adds r0, 0xA4
mov r1, sp
bl sub_8013114
_08039448:
ldr r0, [sp]
cmp r0, 0x3
bhi _08039498
cmp r0, 0x2
bcs _08039460
cmp r0, 0x1
beq _08039464
b _08039498
.align 2, 0
_08039458: .4byte 0x0000ffdc
_0803945C: .4byte gUnknown_203B374
_08039460:
movs r5, 0x1
b _08039498
_08039464:
ldr r0, [r4]
ldr r0, [r0]
cmp r0, 0x7
beq _08039480
cmp r0, 0x7
bhi _08039476
cmp r0, 0x6
beq _08039484
b _08039498
_08039476:
cmp r0, 0x8
beq _0803948E
cmp r0, 0x9
beq _08039492
b _08039498
_08039480:
movs r5, 0x2
b _08039498
_08039484:
movs r0, 0
bl sub_8095240
movs r5, 0x4
b _08039498
_0803948E:
movs r5, 0x9
b _08039498
_08039492:
bl sub_80122A8
movs r5, 0x2E
_08039498:
adds r0, r5, 0
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_803941C
thumb_func_start sub_80394A4
sub_80394A4:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x150
bl sub_8011FA8
mov r8, r0
movs r0, 0
bl sub_8008C54
movs r0, 0
bl sub_80073B8
ldr r2, _0803952C
movs r4, 0
str r4, [sp]
movs r0, 0x8
movs r1, 0
movs r3, 0
bl xxx_call_draw_string
ldr r2, _08039530
str r4, [sp]
movs r0, 0x8
movs r1, 0xC
movs r3, 0
bl xxx_call_draw_string
ldr r2, _08039534
str r4, [sp]
movs r0, 0x8
movs r1, 0x18
movs r3, 0
bl xxx_call_draw_string
ldr r2, _08039538
str r4, [sp]
movs r0, 0x8
movs r1, 0x24
movs r3, 0
bl xxx_call_draw_string
ldr r2, _0803953C
str r4, [sp]
movs r0, 0x8
movs r1, 0x30
movs r3, 0
bl xxx_call_draw_string
ldr r2, _08039540
str r4, [sp]
movs r0, 0x8
movs r1, 0x3C
movs r3, 0
bl xxx_call_draw_string
movs r0, 0
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _08039544
add r4, sp, 0x68
adds r0, r4, 0
bl sub_80920D8
adds r2, r4, 0
b _0803954E
.align 2, 0
_0803952C: .4byte gUnknown_80E77BC
_08039530: .4byte gUnknown_80E77C4
_08039534: .4byte gUnknown_80E77CC
_08039538: .4byte gUnknown_80E77D8
_0803953C: .4byte gUnknown_80E77E4
_08039540: .4byte gUnknown_80E77F0
_08039544:
ldr r1, _08039588
add r0, sp, 0x68
bl strcpy
add r2, sp, 0x68
_0803954E:
ldr r5, _0803958C
ldr r0, [r5]
movs r4, 0xD2
lsls r4, 1
adds r0, r4
ldr r1, _08039590
bl sub_800D158
ldr r2, [r5]
adds r2, r4
movs r0, 0
str r0, [sp]
movs r0, 0x40
movs r1, 0
movs r3, 0
bl xxx_call_draw_string
bl sub_808D33C
cmp r0, 0
bne _08039598
add r4, sp, 0x90
ldr r1, _08039594
adds r0, r4, 0
movs r2, 0xA
bl sub_80922B4
b _080395A6
.align 2, 0
_08039588: .4byte gUnknown_80E77F8
_0803958C: .4byte gUnknown_203B374
_08039590: .4byte gUnknown_80E7804
_08039594: .4byte gUnknown_80E7808
_08039598:
add r4, sp, 0x90
adds r1, r0, 0
adds r1, 0x4C
adds r0, r4, 0
movs r2, 0xA
bl sub_80922B4
_080395A6:
adds r2, r4, 0
ldr r5, _080395F0
ldr r0, [r5]
movs r4, 0xE4
lsls r4, 1
adds r0, r4
ldr r6, _080395F4
adds r1, r6, 0
bl sub_800D158
ldr r2, [r5]
adds r2, r4
movs r0, 0
str r0, [sp]
movs r0, 0x40
movs r1, 0xC
movs r3, 0
bl xxx_call_draw_string
movs r0, 0x1
bl sub_8095324
cmp r0, 0
bne _080395E0
movs r0, 0x7
bl sub_8095324
cmp r0, 0
beq _08039606
_080395E0:
ldr r0, _080395F8
cmp r8, r0
bne _080395FC
ldr r4, [r5]
movs r0, 0xF6
lsls r0, 1
adds r4, r0
b _08039676
.align 2, 0
_080395F0: .4byte gUnknown_203B374
_080395F4: .4byte gUnknown_80E7804
_080395F8: .4byte 0x000f1207
_080395FC:
ldr r0, [r5]
movs r1, 0xF6
lsls r1, 1
adds r0, r1
b _08039690
_08039606:
bl sub_8011C1C
cmp r0, 0x1
beq _08039624
cmp r0, 0x2
beq _08039668
ldr r0, [r5]
movs r2, 0xF6
lsls r2, 1
adds r0, r2
ldr r1, _08039620
b _08039692
.align 2, 0
_08039620: .4byte gUnknown_80E7824
_08039624:
movs r0, 0
movs r1, 0x18
bl sub_8001658
cmp r0, 0x7
beq _08039658
cmp r0, 0xB
beq _08039658
bl sub_8098FB4
adds r2, r0, 0
add r0, sp, 0x4
adds r1, r6, 0
bl sub_800D158
ldr r0, [r5]
movs r3, 0xF6
lsls r3, 1
adds r1, r0, r3
adds r3, 0x24
adds r2, r0, r3
add r0, sp, 0x4
movs r3, 0
bl xxx_format_string
b _08039696
_08039658:
ldr r0, _08039664
ldr r0, [r0]
movs r1, 0xF6
lsls r1, 1
adds r0, r1
b _08039690
.align 2, 0
_08039664: .4byte gUnknown_203B374
_08039668:
ldr r0, _08039684
cmp r8, r0
bne _08039688
ldr r4, [r5]
movs r2, 0xF6
lsls r2, 1
adds r4, r2
_08039676:
bl sub_809769C
adds r1, r0, 0
adds r0, r4, 0
bl sub_8090228
b _08039696
.align 2, 0
_08039684: .4byte 0x000f1207
_08039688:
ldr r0, [r5]
movs r3, 0xF6
lsls r3, 1
adds r0, r3
_08039690:
ldr r1, _0803974C
_08039692:
bl sub_800D158
_08039696:
ldr r7, _08039750
ldr r2, [r7]
movs r0, 0xF6
lsls r0, 1
adds r2, r0
movs r6, 0
str r6, [sp]
movs r0, 0x40
movs r1, 0x18
movs r3, 0
bl xxx_call_draw_string
ldr r0, _08039754
ldr r0, [r0]
add r1, sp, 0x144
add r2, sp, 0x148
add r3, sp, 0x14C
bl sub_8095014
ldr r0, [r7]
movs r5, 0x84
lsls r5, 2
adds r0, r5
ldr r1, _08039758
add r2, sp, 0x144
ldr r2, [r2]
add r3, sp, 0x148
ldr r3, [r3]
add r4, sp, 0x14C
ldr r4, [r4]
str r4, [sp]
bl sub_800D158
ldr r2, [r7]
adds r2, r5
str r6, [sp]
movs r0, 0x40
movs r1, 0x24
movs r3, 0
bl xxx_call_draw_string
bl sub_8097778
adds r2, r0, 0
ldr r0, [r7]
movs r4, 0x8D
lsls r4, 2
adds r0, r4
ldr r1, _0803975C
bl sub_800D158
ldr r2, [r7]
adds r2, r4
str r6, [sp]
movs r0, 0x40
movs r1, 0x30
movs r3, 0
bl xxx_call_draw_string
ldr r0, _08039760
cmp r8, r0
bne _0803976C
ldr r0, _08039764
ldr r6, [r0]
movs r1, 0xC
ldrsh r0, [r6, r1]
cmp r0, 0
beq _0803976C
add r5, sp, 0x130
adds r1, r0, 0
adds r0, r5, 0
bl sub_808D930
add r4, sp, 0xE0
adds r1, r6, 0
adds r1, 0x50
adds r0, r4, 0
movs r2, 0xA
bl sub_80922B4
ldr r0, [r7]
movs r3, 0x96
lsls r3, 2
adds r0, r3
ldr r1, _08039768
adds r2, r4, 0
adds r3, r5, 0
bl sub_800D158
b _0803977C
.align 2, 0
_0803974C: .4byte gUnknown_80E780C
_08039750: .4byte gUnknown_203B374
_08039754: .4byte gUnknown_203B47C
_08039758: .4byte gUnknown_80E7838
_0803975C: .4byte gUnknown_80E7848
_08039760: .4byte 0x000f1207
_08039764: .4byte gUnknown_203B484
_08039768: .4byte gUnknown_80E784C
_0803976C:
ldr r0, _080397AC
ldr r0, [r0]
movs r1, 0x96
lsls r1, 2
adds r0, r1
ldr r1, _080397B0
bl sub_800D158
_0803977C:
ldr r0, _080397AC
ldr r2, [r0]
movs r3, 0x96
lsls r3, 2
adds r2, r3
movs r0, 0
str r0, [sp]
movs r0, 0x40
movs r1, 0x3C
movs r3, 0
bl xxx_call_draw_string
bl sub_80397B4
movs r0, 0
bl sub_80073E0
add sp, 0x150
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080397AC: .4byte gUnknown_203B374
_080397B0: .4byte gUnknown_80E7854
thumb_func_end sub_80394A4
thumb_func_start sub_80397B4
sub_80397B4:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
ldr r0, _08039834
ldr r1, _08039838
bl OpenFileAndGetFileDataPtr
adds r6, r0, 0
movs r4, 0
_080397C8:
adds r0, r4, 0
adds r0, 0xB0
ldr r1, [r6, 0x4]
lsls r2, r4, 2
ldr r1, [r1, 0x4]
adds r1, r2
bl SetBGPaletteBufferColorArray
adds r4, 0x1
cmp r4, 0x3F
ble _080397C8
movs r7, 0x8
movs r0, 0x49
mov r8, r0
movs r4, 0
_080397E6:
ldr r0, _0803983C
lsls r5, r4, 2
adds r0, r5, r0
ldr r0, [r0]
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0803981C
movs r0, 0x10
str r0, [sp]
ldr r0, [r6, 0x4]
lsls r1, r4, 7
ldr r0, [r0]
adds r0, r1
str r0, [sp, 0x4]
ldr r0, _08039840
adds r0, r5, r0
ldr r0, [r0]
str r0, [sp, 0x8]
movs r0, 0
adds r1, r7, 0
mov r2, r8
movs r3, 0x10
bl sub_8007E20
adds r7, 0x10
_0803981C:
adds r4, 0x1
cmp r4, 0xB
ble _080397E6
adds r0, r6, 0
bl CloseFile
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08039834: .4byte gUnknown_80E785C
_08039838: .4byte gUnknown_8380000
_0803983C: .4byte gUnknown_203B3B8
_08039840: .4byte gUnknown_203B388
thumb_func_end sub_80397B4
thumb_func_start sub_8039844
sub_8039844:
push {r4,r5,lr}
bl sub_8011FA8
adds r5, r0, 0
movs r4, 0
movs r0, 0x1
bl sub_8095324
cmp r0, 0
bne _0803986A
movs r0, 0x7
bl sub_8095324
cmp r0, 0
bne _0803986A
bl sub_8011C1C
cmp r0, 0x2
bne _08039872
_0803986A:
ldr r0, _0803987C
cmp r5, r0
bne _08039872
movs r4, 0x1
_08039872:
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0803987C: .4byte 0x000f1207
thumb_func_end sub_8039844
thumb_func_start sub_8039880
sub_8039880:
push {r4,lr}
movs r4, 0
movs r0, 0x1
bl sub_8095324
cmp r0, 0
bne _080398A0
movs r0, 0x7
bl sub_8095324
cmp r0, 0
bne _080398A0
bl sub_8011C1C
cmp r0, 0x2
bne _080398A2
_080398A0:
movs r4, 0x1
_080398A2:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8039880
thumb_func_start sub_80398AC
sub_80398AC:
push {r4,r5,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r5, _0803991C
ldr r4, _08039920
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
movs r1, 0
movs r2, 0
adds r4, r5, 0
_080398D8:
ldr r0, [r5]
adds r0, 0x1
adds r0, r1
strb r2, [r0]
adds r1, 0x1
cmp r1, 0x35
ble _080398D8
ldr r1, [r4]
movs r3, 0x92
lsls r3, 3
adds r2, r1, r3
movs r0, 0x3
str r0, [r2]
ldr r0, _08039924
adds r2, r1, r0
movs r0, 0x2
str r0, [r2]
movs r0, 0x93
lsls r0, 3
adds r1, r0
movs r0, 0x1
strb r0, [r1]
ldr r0, [r4]
adds r0, r3
movs r1, 0x5
str r1, [r0]
movs r0, 0x11
bl sub_803A1C0
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0803991C: .4byte gUnknown_203B3E8
_08039920: .4byte 0x0000049c
_08039924: .4byte 0x00000494
thumb_func_end sub_80398AC
thumb_func_start sub_8039928
sub_8039928:
push {lr}
ldr r0, _08039940
ldr r0, [r0]
ldrb r0, [r0]
subs r0, 0x4
cmp r0, 0xF
bhi _080399DE
lsls r0, 2
ldr r1, _08039944
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08039940: .4byte gUnknown_203B3E8
_08039944: .4byte _08039948
.align 2, 0
_08039948:
.4byte _08039988
.4byte _0803998E
.4byte _0803999E
.4byte _080399AA
.4byte _08039992
.4byte _080399A4
.4byte _080399C8
.4byte _080399DE
.4byte _08039998
.4byte _080399B0
.4byte _080399B6
.4byte _080399BC
.4byte _080399C2
.4byte _080399CE
.4byte _080399D4
.4byte _080399DA
_08039988:
bl sub_8039A18
b _080399DE
_0803998E:
movs r0, 0x3
b _080399E0
_08039992:
bl sub_8039AA8
b _080399DE
_08039998:
bl sub_8039B14
b _080399DE
_0803999E:
bl sub_8039B20
b _080399DE
_080399A4:
bl sub_8039B58
b _080399DE
_080399AA:
bl sub_8039D88
b _080399DE
_080399B0:
bl sub_8039D28
b _080399DE
_080399B6:
bl sub_8039D68
b _080399DE
_080399BC:
bl sub_8039DA4
b _080399DE
_080399C2:
bl sub_8039DCC
b _080399DE
_080399C8:
bl sub_8039B3C
b _080399DE
_080399CE:
bl sub_8039D0C
b _080399DE
_080399D4:
bl sub_8039C60
b _080399DE
_080399DA:
bl sub_8039DE8
_080399DE:
movs r0, 0
_080399E0:
pop {r1}
bx r1
thumb_func_end sub_8039928
thumb_func_start sub_80399E4
sub_80399E4:
push {r4,lr}
ldr r4, _08039A14
ldr r0, [r4]
cmp r0, 0
beq _08039A0E
bl MemoryFree
movs r0, 0
str r0, [r4]
bl sub_8030DE4
bl sub_801B450
bl sub_803084C
bl sub_801CBB8
bl sub_80155F0
bl sub_8031E10
_08039A0E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08039A14: .4byte gUnknown_203B3E8
thumb_func_end sub_80399E4
thumb_func_start sub_8039A18
sub_8039A18:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039AA2
ldr r0, _08039A48
ldr r1, [r0]
movs r2, 0x93
lsls r2, 2
adds r1, r2
movs r2, 0xA
str r2, [r1]
ldr r1, [sp]
adds r2, r0, 0
cmp r1, 0x8
bhi _08039AA2
lsls r0, r1, 2
ldr r1, _08039A4C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08039A48: .4byte gUnknown_203B3E8
_08039A4C: .4byte _08039A50
.align 2, 0
_08039A50:
.4byte _08039A9C
.4byte _08039AA2
.4byte _08039AA2
.4byte _08039A74
.4byte _08039A74
.4byte _08039A88
.4byte _08039AA2
.4byte _08039AA2
.4byte _08039A9C
_08039A74:
ldr r0, [r2]
movs r1, 0x92
lsls r1, 3
adds r0, r1
movs r1, 0x3
str r1, [r0]
movs r0, 0x8
bl sub_803A1C0
b _08039AA2
_08039A88:
ldr r0, [r2]
movs r2, 0x92
lsls r2, 3
adds r0, r2
movs r1, 0x5
str r1, [r0]
movs r0, 0x11
bl sub_803A1C0
b _08039AA2
_08039A9C:
movs r0, 0x5
bl sub_803A1C0
_08039AA2:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039A18
thumb_func_start sub_8039AA8
sub_8039AA8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039B0E
ldr r0, [sp]
cmp r0, 0
beq _08039AE8
cmp r0, 0x6
bne _08039B0E
ldr r0, _08039AD8
ldr r0, [r0]
ldr r1, _08039ADC
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _08039AE0
movs r0, 0x2
bl sub_803A1C0
b _08039B0E
.align 2, 0
_08039AD8: .4byte gUnknown_203B3E8
_08039ADC: .4byte 0x00000494
_08039AE0:
movs r0, 0xC
bl sub_803A1C0
b _08039B0E
_08039AE8:
ldr r0, _08039B00
ldr r0, [r0]
ldr r1, _08039B04
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _08039B08
movs r0, 0x1
bl sub_803A1C0
b _08039B0E
.align 2, 0
_08039B00: .4byte gUnknown_203B3E8
_08039B04: .4byte 0x00000494
_08039B08:
movs r0, 0x4
bl sub_803A1C0
_08039B0E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039AA8
thumb_func_start sub_8039B14
sub_8039B14:
push {lr}
movs r0, 0x6
bl sub_803A1C0
pop {r0}
bx r0
thumb_func_end sub_8039B14
thumb_func_start sub_8039B20
sub_8039B20:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039B34
movs r0, 0x9
bl sub_803A1C0
_08039B34:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039B20
thumb_func_start sub_8039B3C
sub_8039B3C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039B50
movs r0, 0x4
bl sub_803A1C0
_08039B50:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039B3C
thumb_func_start sub_8039B58
sub_8039B58:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039BA6
ldr r0, _08039B88
ldr r1, [r0]
movs r2, 0x94
lsls r2, 2
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
bne _08039B9C
subs r2, 0x4
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0x9
beq _08039B8C
cmp r0, 0xA
beq _08039B94
b _08039BA6
.align 2, 0
_08039B88: .4byte gUnknown_203B3E8
_08039B8C:
movs r0, 0x7
bl sub_803A1C0
b _08039BA6
_08039B94:
movs r0, 0xD
bl sub_803A1C0
b _08039BA6
_08039B9C:
bl sub_8039BAC
movs r0, 0xA
bl sub_803A1C0
_08039BA6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039B58
thumb_func_start sub_8039BAC
sub_8039BAC:
push {lr}
cmp r0, 0xF
bhi _08039C48
lsls r0, 2
ldr r1, _08039BBC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08039BBC: .4byte _08039BC0
.align 2, 0
_08039BC0:
.4byte _08039C54
.4byte _08039C00
.4byte _08039C10
.4byte _08039C08
.4byte _08039C18
.4byte _08039C20
.4byte _08039C48
.4byte _08039C48
.4byte _08039C48
.4byte _08039C48
.4byte _08039C48
.4byte _08039C48
.4byte _08039C48
.4byte _08039C48
.4byte _08039C28
.4byte _08039C30
_08039C00:
ldr r0, _08039C04
b _08039C32
.align 2, 0
_08039C04: .4byte gUnknown_80E7914
_08039C08:
ldr r0, _08039C0C
b _08039C32
.align 2, 0
_08039C0C: .4byte gUnknown_80E7938
_08039C10:
ldr r0, _08039C14
b _08039C32
.align 2, 0
_08039C14: .4byte gUnknown_80E7994
_08039C18:
ldr r0, _08039C1C
b _08039C32
.align 2, 0
_08039C1C: .4byte gUnknown_80E79E4
_08039C20:
ldr r0, _08039C24
b _08039C32
.align 2, 0
_08039C24: .4byte gUnknown_80E7914
_08039C28:
ldr r0, _08039C2C
b _08039C32
.align 2, 0
_08039C2C: .4byte gUnknown_80E7914
_08039C30:
ldr r0, _08039C40
_08039C32:
ldr r3, _08039C44
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08039C54
.align 2, 0
_08039C40: .4byte gUnknown_80E7A48
_08039C44: .4byte 0x00000101
_08039C48:
ldr r0, _08039C58
ldr r3, _08039C5C
movs r1, 0
movs r2, 0
bl sub_80141B4
_08039C54:
pop {r0}
bx r0
.align 2, 0
_08039C58: .4byte gUnknown_80E7914
_08039C5C: .4byte 0x00000101
thumb_func_end sub_8039BAC
thumb_func_start sub_8039C60
sub_8039C60:
push {r4,r5,lr}
bl sub_80154F0
adds r4, r0, 0
ldr r5, _08039CBC
ldr r0, [r5]
adds r0, 0x38
movs r1, 0
movs r2, 0x30
bl MemoryFill8
cmp r4, 0x2
beq _08039CE6
cmp r4, 0x3
bne _08039D04
bl sub_80155F0
bl sub_8004914
ldr r0, [r5]
movs r1, 0xF6
lsls r1, 1
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r5]
adds r0, r1, 0x1
adds r1, 0x38
bl sub_803D358
lsls r0, 24
cmp r0, 0
beq _08039CB4
ldr r0, [r5]
adds r0, 0x38
bl sub_80959C0
lsls r0, 24
cmp r0, 0
bne _08039CC0
_08039CB4:
movs r0, 0x13
bl sub_803A1C0
b _08039D04
.align 2, 0
_08039CBC: .4byte gUnknown_203B3E8
_08039CC0:
ldr r0, [r5]
movs r2, 0xF0
lsls r2, 2
adds r1, r0, r2
adds r0, 0x38
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r3,r4}
stm r1!, {r3,r4}
ldr r0, [r5]
movs r1, 0x93
lsls r1, 3
adds r0, r1
movs r1, 0x1
strb r1, [r0]
movs r0, 0xD
bl sub_803A1C0
b _08039D04
_08039CE6:
bl sub_80155F0
bl sub_8004914
ldr r0, [r5]
movs r2, 0xF6
lsls r2, 1
adds r0, r2
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x5
bl sub_803A1C0
_08039D04:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8039C60
thumb_func_start sub_8039D0C
sub_8039D0C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039D20
movs r0, 0x12
bl sub_803A1C0
_08039D20:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039D0C
thumb_func_start sub_8039D28
sub_8039D28:
push {r4,r5,lr}
bl sub_802D0E0
cmp r0, 0x3
bne _08039D62
bl sub_802D178
ldr r5, _08039D58
ldr r1, [r5]
movs r4, 0x93
lsls r4, 3
adds r1, r4
strb r0, [r1]
bl sub_802D184
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _08039D5C
movs r0, 0xE
bl sub_803A1C0
b _08039D62
.align 2, 0
_08039D58: .4byte gUnknown_203B3E8
_08039D5C:
movs r0, 0x10
bl sub_803A1C0
_08039D62:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8039D28
thumb_func_start sub_8039D68
sub_8039D68:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039D82
movs r0, 0xF
bl sub_803A1C0
movs r0, 0
bl sub_8012574
_08039D82:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039D68
thumb_func_start sub_8039D88
sub_8039D88:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039D9C
movs r0, 0x8
bl sub_803A1C0
_08039D9C:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039D88
thumb_func_start sub_8039DA4
sub_8039DA4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039DC6
bl sub_8012600
lsls r0, 24
cmp r0, 0
bne _08039DC6
bl sub_8012750
movs r0, 0x10
bl sub_803A1C0
_08039DC6:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039DA4
thumb_func_start sub_8039DCC
sub_8039DCC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039DE0
movs r0, 0x5
bl sub_803A1C0
_08039DE0:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039DCC
thumb_func_start sub_8039DE8
sub_8039DE8:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08039E0E
ldr r0, [sp]
cmp r0, 0
beq _08039E08
cmp r0, 0x6
bne _08039E0E
movs r0, 0x11
bl sub_803A1C0
b _08039E0E
_08039E08:
movs r0, 0x5
bl sub_803A1C0
_08039E0E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8039DE8
thumb_func_start nullsub_54
nullsub_54:
bx lr
thumb_func_end nullsub_54
thumb_func_start sub_8039E18
sub_8039E18:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
ldr r1, _08039E38
ldr r0, [r1]
ldrb r0, [r0]
adds r6, r1, 0
cmp r0, 0x13
bls _08039E2E
b _0803A1AA
_08039E2E:
lsls r0, 2
ldr r1, _08039E3C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08039E38: .4byte gUnknown_203B3E8
_08039E3C: .4byte _08039E40
.align 2, 0
_08039E40:
.4byte _08039E90
.4byte _08039EB8
.4byte _0803A1AA
.4byte _08039EC8
.4byte _08039EDC
.4byte _0803A1AA
.4byte _08039FF4
.4byte _08039FA4
.4byte _08039FCC
.4byte _0803A00C
.4byte _0803A1AA
.4byte _0803A1AA
.4byte _0803A1AA
.4byte _08039F04
.4byte _08039F68
.4byte _0803A1AA
.4byte _08039FAC
.4byte _0803A152
.4byte _0803A168
.4byte _0803A18E
_08039E90:
ldr r0, _08039EB0
ldr r3, _08039EB4
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x1
bl sub_8014248
b _0803A1AA
.align 2, 0
_08039EB0: .4byte gUnknown_80E7AC4
_08039EB4: .4byte gUnknown_80E786C
_08039EB8:
ldr r0, _08039EC0
ldr r3, _08039EC4
b _08039EE0
.align 2, 0
_08039EC0: .4byte gUnknown_80E7AE0
_08039EC4: .4byte gUnknown_80E7894
_08039EC8:
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_802EF48
b _0803A1AA
_08039EDC:
ldr r0, _08039EFC
ldr r3, _08039F00
_08039EE0:
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x3
bl sub_8014248
b _0803A1AA
.align 2, 0
_08039EFC: .4byte gUnknown_80E7B14
_08039F00: .4byte gUnknown_80E78D8
_08039F04:
ldr r0, [r6]
ldr r2, _08039F3C
adds r1, r0, r2
movs r3, 0xF0
lsls r3, 2
adds r0, r3
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r4}
stm r1!, {r2,r4}
ldr r2, [r6]
ldr r3, _08039F40
adds r0, r2, r3
ldrb r0, [r0]
cmp r0, 0x4
bne _08039F44
movs r4, 0x91
lsls r4, 3
adds r1, r2, r4
subs r3, 0xA2
adds r0, r2, r3
str r0, [r1]
adds r4, 0x4
adds r1, r2, r4
adds r3, 0x28
adds r0, r2, r3
str r0, [r1]
b _08039F54
.align 2, 0
_08039F3C: .4byte 0x00000474
_08039F40: .4byte 0x00000476
_08039F44:
movs r4, 0x91
lsls r4, 3
adds r0, r2, r4
movs r1, 0
str r1, [r0]
ldr r3, _08039F60
adds r0, r2, r3
str r1, [r0]
_08039F54:
ldr r0, [r6]
ldr r4, _08039F64
adds r0, r4
bl sub_802D098
b _0803A1AA
.align 2, 0
_08039F60: .4byte 0x0000048c
_08039F64: .4byte 0x00000474
_08039F68:
ldr r1, [r6]
movs r2, 0x93
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
beq _08039F9C
movs r3, 0x92
lsls r3, 3
adds r0, r1, r3
ldr r0, [r0]
cmp r0, 0x4
bne _08039F84
b _0803A1AA
_08039F84:
cmp r0, 0x4
bgt _08039F8E
cmp r0, 0x3
beq _08039F94
b _0803A1AA
_08039F8E:
cmp r0, 0x5
beq _08039F94
b _0803A1AA
_08039F94:
ldr r0, _08039F98
b _0803A154
.align 2, 0
_08039F98: .4byte gUnknown_80E7B48
_08039F9C:
ldr r0, _08039FA0
b _0803A154
.align 2, 0
_08039FA0: .4byte gUnknown_80E7B48
_08039FA4:
ldr r0, _08039FA8
b _0803A154
.align 2, 0
_08039FA8: .4byte gUnknown_80E7B68
_08039FAC:
ldr r0, [r6]
movs r4, 0x93
lsls r4, 3
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _08039FC4
ldr r0, _08039FC0
b _0803A154
.align 2, 0
_08039FC0: .4byte gUnknown_80E7B88
_08039FC4:
ldr r0, _08039FC8
b _0803A154
.align 2, 0
_08039FC8: .4byte gUnknown_80E7BC8
_08039FCC:
ldr r0, _08039FEC
ldr r3, _08039FF0
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x6
bl sub_8014248
b _0803A1AA
.align 2, 0
_08039FEC: .4byte gUnknown_80E7BEC
_08039FF0: .4byte gUnknown_80E78F8
_08039FF4:
movs r0, 0
bl nullsub_23
ldr r0, _0803A008
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80141B4
b _0803A1AA
.align 2, 0
_0803A008: .4byte gUnknown_80E7C48
_0803A00C:
ldr r0, [r6]
movs r1, 0x94
lsls r1, 2
mov r8, r1
add r0, r8
movs r1, 0
str r1, [r0]
bl sub_8011830
ldr r0, [r6]
movs r7, 0x93
lsls r7, 2
adds r0, r7
ldr r0, [r0]
bl sub_8037B28
ldr r2, [r6]
mov r3, r8
adds r1, r2, r3
str r0, [r1]
cmp r0, 0
beq _0803A03A
b _0803A14C
_0803A03A:
adds r4, r7, 0
adds r0, r2, r4
ldr r0, [r0]
cmp r0, 0x9
beq _0803A04A
cmp r0, 0xA
beq _0803A0AA
b _0803A0DE
_0803A04A:
movs r5, 0x95
lsls r5, 2
adds r0, r2, r5
movs r1, 0
movs r2, 0xB4
bl MemoryFill8
ldr r0, [r6]
movs r1, 0xEF
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
bl sub_803B344
adds r4, r0, 0
ldr r1, [r4, 0x14]
cmp r1, 0
beq _0803A08C
ldr r0, [r6]
movs r2, 0x9A
lsls r2, 2
adds r0, r2
movs r2, 0x28
bl MemoryCopy8
ldr r0, [r6]
movs r3, 0xA4
lsls r3, 2
adds r0, r3
ldr r1, [r4, 0x18]
movs r2, 0x78
bl MemoryCopy8
_0803A08C:
ldr r1, [r6]
adds r1, r5
adds r0, r4, 0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r4}
stm r1!, {r2,r4}
ldr r2, [r6]
adds r0, r2, r7
ldr r0, [r0]
adds r1, r2, r5
movs r3, 0xC2
lsls r3, 2
adds r2, r3
b _0803A0D4
_0803A0AA:
movs r4, 0x95
lsls r4, 2
adds r0, r2, r4
movs r1, 0
movs r2, 0xB4
bl MemoryFill8
ldr r0, [r6]
movs r5, 0xC2
lsls r5, 2
adds r0, r5
movs r1, 0
movs r2, 0xB4
bl MemoryFill8
ldr r2, [r6]
adds r0, r2, r7
ldr r0, [r0]
adds r4, r2, r4
adds r2, r5
adds r1, r4, 0
_0803A0D4:
bl sub_8037D64
ldr r1, [r6]
add r1, r8
str r0, [r1]
_0803A0DE:
ldr r4, _0803A134
ldr r2, [r4]
movs r5, 0x94
lsls r5, 2
adds r0, r2, r5
ldr r0, [r0]
cmp r0, 0
bne _0803A14C
movs r1, 0x93
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
cmp r0, 0xA
bhi _0803A14C
cmp r0, 0x9
bcc _0803A14C
movs r3, 0x95
lsls r3, 2
adds r1, r2, r3
adds r3, 0xB4
adds r2, r3
bl sub_80381F4
ldr r1, [r4]
adds r1, r5
str r0, [r1]
bl sub_800D588
lsls r0, 24
cmp r0, 0
beq _0803A138
ldr r1, [r4]
movs r4, 0xF0
lsls r4, 2
adds r0, r1, r4
movs r2, 0xC2
lsls r2, 2
adds r1, r2
movs r2, 0xB4
bl memcpy
b _0803A14C
.align 2, 0
_0803A134: .4byte gUnknown_203B3E8
_0803A138:
ldr r1, [r4]
movs r3, 0xF0
lsls r3, 2
adds r0, r1, r3
movs r4, 0x95
lsls r4, 2
adds r1, r4
movs r2, 0xB4
bl memcpy
_0803A14C:
bl sub_8011854
b _0803A1AA
_0803A152:
ldr r0, _0803A160
_0803A154:
ldr r3, _0803A164
movs r1, 0
movs r2, 0
bl sub_80141B4
b _0803A1AA
.align 2, 0
_0803A160: .4byte gUnknown_80E7C98
_0803A164: .4byte 0x00000101
_0803A168:
ldr r0, [r6]
movs r1, 0xF6
lsls r1, 1
adds r0, r1
bl sub_8006518
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r1, [r6]
adds r1, 0x1
movs r0, 0x5
bl sub_80151C0
b _0803A1AA
_0803A18E:
ldr r0, _0803A1B8
ldr r3, _0803A1BC
movs r2, 0
str r2, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFD
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x6
bl sub_8014248
_0803A1AA:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803A1B8: .4byte gUnknown_80E7CC4
_0803A1BC: .4byte gUnknown_80E78F8
thumb_func_end sub_8039E18
thumb_func_start sub_803A1C0
sub_803A1C0:
push {lr}
ldr r1, _0803A1D4
ldr r1, [r1]
strb r0, [r1]
bl nullsub_54
bl sub_8039E18
pop {r0}
bx r0
.align 2, 0
_0803A1D4: .4byte gUnknown_203B3E8
thumb_func_end sub_803A1C0
thumb_func_start sub_803A1D8
sub_803A1D8:
movs r0, 0x1
bx lr
thumb_func_end sub_803A1D8
thumb_func_start sub_803A1DC
sub_803A1DC:
movs r0, 0
bx lr
thumb_func_end sub_803A1DC
thumb_func_start nullsub_55
nullsub_55:
bx lr
thumb_func_end nullsub_55
thumb_func_start sub_803A1E4
sub_803A1E4:
movs r0, 0x1
bx lr
thumb_func_end sub_803A1E4
thumb_func_start sub_803A1E8
sub_803A1E8:
movs r0, 0x2
bx lr
thumb_func_end sub_803A1E8
thumb_func_start sub_803A1EC
sub_803A1EC:
push {lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r0}
bx r0
thumb_func_end sub_803A1EC
thumb_func_start sub_803A200
sub_803A200:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r5, _0803A270
ldr r0, [r5]
cmp r0, 0
bne _0803A224
movs r4, 0xD2
lsls r4, 1
adds r0, r4, 0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r1, 0
adds r2, r4, 0
bl MemoryFill8
_0803A224:
mov r12, r5
movs r0, 0xA0
lsls r0, 1
mov r8, r0
ldr r4, _0803A274
movs r3, 0
movs r2, 0x3
_0803A232:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0803A232
bl sub_8004914
ldr r0, _0803A270
ldr r0, [r0]
movs r6, 0xA0
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl SetDebugMenuItems
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803A270: .4byte gUnknown_203B3EC
_0803A274: .4byte gUnknown_80E7D40
thumb_func_end sub_803A200
thumb_func_start sub_803A278
sub_803A278:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _0803A2A0
ldr r0, [r4]
cmp r0, 0
beq _0803A298
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803A298:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A2A0: .4byte gUnknown_203B3EC
thumb_func_end sub_803A278
thumb_func_start sub_803A2A4
sub_803A2A4:
push {r4,r5,lr}
sub sp, 0x4
ldr r4, _0803A2D4
movs r0, 0xB
str r0, [sp]
ldr r5, _0803A2D8
ldr r0, [r5]
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0803A2C4
ldr r0, [r5]
mov r1, sp
bl sub_8013114
_0803A2C4:
ldr r0, [sp]
cmp r0, 0xB
bhi _0803A34E
lsls r0, 2
ldr r1, _0803A2DC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803A2D4: .4byte 0x0000ffdc
_0803A2D8: .4byte gUnknown_203B3EC
_0803A2DC: .4byte _0803A2E0
.align 2, 0
_0803A2E0:
.4byte _0803A310
.4byte _0803A314
.4byte _0803A318
.4byte _0803A31C
.4byte _0803A320
.4byte _0803A324
.4byte _0803A328
.4byte _0803A34E
.4byte _0803A34E
.4byte _0803A330
.4byte _0803A344
.4byte _0803A34C
_0803A310:
movs r4, 0x2F
b _0803A34E
_0803A314:
movs r4, 0x30
b _0803A34E
_0803A318:
movs r4, 0x31
b _0803A34E
_0803A31C:
movs r4, 0x32
b _0803A34E
_0803A320:
movs r4, 0x33
b _0803A34E
_0803A324:
movs r4, 0x34
b _0803A34E
_0803A328:
bl sub_803A3BC
movs r4, 0x1
b _0803A34E
_0803A330:
movs r4, 0
_0803A332:
lsls r0, r4, 24
lsrs r0, 24
bl sub_80976F8
adds r4, 0x1
cmp r4, 0x1F
ble _0803A332
movs r4, 0x1
b _0803A34E
_0803A344:
bl sub_803A3A0
movs r4, 0x1
b _0803A34E
_0803A34C:
ldr r4, _0803A358
_0803A34E:
adds r0, r4, 0
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0803A358: .4byte 0x0000ffdc
thumb_func_end sub_803A2A4
thumb_func_start SetDebugMenuItems
SetDebugMenuItems:
push {r4,lr}
sub sp, 0x10
ldr r4, _0803A394
ldr r0, [r4]
movs r2, 0xA0
lsls r2, 1
adds r1, r0, r2
ldr r3, _0803A398
ldr r2, _0803A39C
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0xD
str r2, [sp, 0x8]
movs r2, 0
str r2, [sp, 0xC]
bl SetMenuItems
ldr r0, [r4]
movs r1, 0
movs r2, 0x1
bl sub_8035CF4
add sp, 0x10
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A394: .4byte gUnknown_203B3EC
_0803A398: .4byte gUnknown_80E7D58
_0803A39C: .4byte gUnknown_80E7D70
thumb_func_end SetDebugMenuItems
thumb_func_start sub_803A3A0
sub_803A3A0:
push {lr}
ldr r0, _0803A3B8
ldr r0, [r0]
movs r1, 0xA0
lsls r1, 1
adds r0, r1
movs r1, 0
bl sub_8035CC0
pop {r0}
bx r0
.align 2, 0
_0803A3B8: .4byte gUnknown_203B3EC
thumb_func_end sub_803A3A0
thumb_func_start sub_803A3BC
sub_803A3BC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x84
movs r5, 0x1
add r4, sp, 0x60
add r6, sp, 0x68
add r0, sp, 0x7C
mov r8, r0
add r0, sp, 0x80
mov r10, r0
_0803A3D6:
lsls r0, r5, 24
lsrs r0, 24
bl sub_80925EC
adds r5, 0x1
cmp r5, 0x39
ble _0803A3D6
movs r5, 0
adds r7, r4, 0
_0803A3E8:
movs r0, 0
mov r9, r0
ldr r0, _0803A454
str r0, [sp, 0x7C]
adds r5, 0x1
lsls r4, r5, 16
asrs r4, 16
adds r0, r7, 0
movs r1, 0
movs r2, 0x8
bl memset
movs r0, 0x27
strh r0, [r7]
adds r0, r6, 0
adds r1, r4, 0
bl sub_808D8BC
adds r0, r6, 0
adds r1, r6, 0
bl sub_80922F4
movs r0, 0x40
strb r0, [r6]
mov r0, r8
str r0, [sp]
str r7, [sp, 0x4]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r6, 0
movs r3, 0x43
bl sub_808CFD0
add r0, sp, 0x8
bl sub_808D1DC
ldr r0, _0803A458
cmp r5, r0
ble _0803A3E8
mov r0, r9
str r0, [sp, 0x80]
mov r0, r10
movs r1, 0x1
bl sub_801203C
add sp, 0x84
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803A454: .4byte 0x00001006
_0803A458: .4byte 0x0000012b
thumb_func_end sub_803A3BC
thumb_func_start sub_803A45C
sub_803A45C:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _0803A488
movs r0, 0x9C
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r0, 0
bl sub_803A504
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0803A488: .4byte gUnknown_203B3F0
thumb_func_end sub_803A45C
thumb_func_start sub_803A48C
sub_803A48C:
push {lr}
ldr r0, _0803A4A4
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x5
bhi _0803A4E0
lsls r0, 2
ldr r1, _0803A4A8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803A4A4: .4byte gUnknown_203B3F0
_0803A4A8: .4byte _0803A4AC
.align 2, 0
_0803A4AC:
.4byte _0803A4C4
.4byte _0803A4C4
.4byte _0803A4CA
.4byte _0803A4D0
.4byte _0803A4D6
.4byte _0803A4DC
_0803A4C4:
bl sub_803A740
b _0803A4E0
_0803A4CA:
bl sub_803A7B0
b _0803A4E0
_0803A4D0:
bl sub_803A810
b _0803A4E0
_0803A4D6:
bl sub_803A86C
b _0803A4E0
_0803A4DC:
movs r0, 0x3
b _0803A4E2
_0803A4E0:
movs r0, 0
_0803A4E2:
pop {r1}
bx r1
thumb_func_end sub_803A48C
thumb_func_start sub_803A4E8
sub_803A4E8:
push {r4,lr}
ldr r4, _0803A500
ldr r0, [r4]
cmp r0, 0
beq _0803A4FA
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803A4FA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A500: .4byte gUnknown_203B3F0
thumb_func_end sub_803A4E8
thumb_func_start sub_803A504
sub_803A504:
push {lr}
ldr r1, _0803A518
ldr r1, [r1]
str r0, [r1]
bl sub_803A51C
bl sub_803A5A0
pop {r0}
bx r0
.align 2, 0
_0803A518: .4byte gUnknown_203B3F0
thumb_func_end sub_803A504
thumb_func_start sub_803A51C
sub_803A51C:
push {r4-r7,lr}
ldr r4, _0803A53C
ldr r0, [r4]
adds r0, 0xD8
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x2
beq _0803A544
cmp r0, 0x3
bne _0803A55C
adds r1, 0xF0
ldr r0, _0803A540
b _0803A54C
.align 2, 0
_0803A53C: .4byte gUnknown_203B3F0
_0803A540: .4byte gUnknown_80E7E64
_0803A544:
movs r0, 0x84
lsls r0, 1
adds r1, r0
ldr r0, _0803A558
_0803A54C:
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _0803A57E
.align 2, 0
_0803A558: .4byte gUnknown_80E7E4C
_0803A55C:
mov r12, r4
ldr r4, _0803A598
movs r3, 0
movs r2, 0x3
_0803A564:
mov r0, r12
ldr r1, [r0]
adds r1, r3
adds r1, 0xD8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0803A564
_0803A57E:
bl sub_8004914
ldr r0, _0803A59C
ldr r0, [r0]
adds r0, 0xD8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803A598: .4byte gUnknown_80E7E34
_0803A59C: .4byte gUnknown_203B3F0
thumb_func_end sub_803A51C
thumb_func_start sub_803A5A0
sub_803A5A0:
push {lr}
sub sp, 0xC
ldr r1, _0803A5BC
ldr r0, [r1]
ldr r0, [r0]
adds r2, r1, 0
cmp r0, 0x5
bhi _0803A68A
lsls r0, 2
ldr r1, _0803A5C0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803A5BC: .4byte gUnknown_203B3F0
_0803A5C0: .4byte _0803A5C4
.align 2, 0
_0803A5C4:
.4byte _0803A5DC
.4byte _0803A5EA
.4byte _0803A5F2
.4byte _0803A61C
.4byte _0803A678
.4byte _0803A68A
_0803A5DC:
movs r0, 0x2
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801C8C4
b _0803A68A
_0803A5EA:
movs r0, 0x1
bl sub_801CB5C
b _0803A68A
_0803A5F2:
bl sub_801CCD8
bl sub_803A6F0
ldr r0, _0803A618
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x4C
adds r1, r2, 0
adds r1, 0xC
ldr r2, [r2, 0x8]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0803A68A
.align 2, 0
_0803A618: .4byte gUnknown_203B3F0
_0803A61C:
ldr r3, [r2]
adds r1, r3, 0
adds r1, 0xAC
movs r0, 0x3
str r0, [r1]
subs r1, 0x8
movs r0, 0
str r0, [r1]
adds r1, 0x4
ldr r0, _0803A670
str r0, [r1]
adds r2, r3, 0
adds r2, 0xA0
ldr r0, _0803A674
ldr r1, [r0]
ldrb r0, [r3, 0x4]
lsls r0, 1
adds r1, 0x50
adds r1, r0
ldrh r0, [r1]
str r0, [r2]
adds r1, r3, 0
adds r1, 0xB0
movs r0, 0x1
str r0, [r1]
adds r1, 0x4
adds r0, r3, 0
adds r0, 0xF0
str r0, [r1]
adds r1, 0x4
movs r0, 0x2C
str r0, [r1]
adds r1, 0x4
movs r0, 0x12
str r0, [r1]
adds r0, r3, 0
adds r0, 0x9C
bl sub_8013AA0
bl sub_803A690
b _0803A68A
.align 2, 0
_0803A670: .4byte 0x000003e7
_0803A674: .4byte gUnknown_203B460
_0803A678:
ldr r0, [r2]
ldrb r1, [r0, 0x4]
add r0, sp, 0x8
movs r2, 0
bl sub_8090A8C
add r0, sp, 0x8
bl sub_801B3C0
_0803A68A:
add sp, 0xC
pop {r0}
bx r0
thumb_func_end sub_803A5A0
thumb_func_start sub_803A690
sub_803A690:
push {r4,lr}
sub sp, 0x4
ldr r4, _0803A6E8
ldr r0, [r4]
adds r0, 0xB0
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r4]
adds r0, 0xB0
ldr r0, [r0]
bl sub_80073B8
ldr r2, _0803A6EC
ldr r0, [r4]
adds r0, 0xB0
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0x4
movs r1, 0
bl xxx_call_draw_string
ldr r0, [r4]
adds r0, 0x9C
bl sub_8013C68
ldr r0, [r4]
adds r0, 0xB0
ldr r0, [r0]
bl sub_80073E0
bl sub_801CCD8
ldr r0, [r4]
adds r0, 0x4C
movs r1, 0
bl sub_8012EA4
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A6E8: .4byte gUnknown_203B3F0
_0803A6EC: .4byte gUnknown_80E7E7C
thumb_func_end sub_803A690
thumb_func_start sub_803A6F0
sub_803A6F0:
push {r4,lr}
ldr r4, _0803A734
ldr r1, [r4]
ldr r0, _0803A738
str r0, [r1, 0xC]
movs r0, 0x2
str r0, [r1, 0x10]
str r0, [r1, 0x8]
ldrb r0, [r1, 0x4]
bl sub_8091524
lsls r0, 24
cmp r0, 0
bne _0803A718
ldr r0, [r4]
movs r1, 0x1
negs r1, r1
str r1, [r0, 0x10]
movs r1, 0x3
str r1, [r0, 0x8]
_0803A718:
ldr r1, [r4]
movs r2, 0x1
ldr r0, _0803A73C
ldr r0, [r0]
str r0, [r1, 0x14]
movs r0, 0x3
str r0, [r1, 0x18]
movs r0, 0
str r0, [r1, 0x1C]
str r2, [r1, 0x20]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A734: .4byte gUnknown_203B3F0
_0803A738: .4byte gUnknown_80E7E7C
_0803A73C: .4byte gUnknown_80D4970
thumb_func_end sub_803A6F0
thumb_func_start sub_803A740
sub_803A740:
push {lr}
movs r0, 0x1
bl sub_801CA08
cmp r0, 0x4
bhi _0803A7AA
lsls r0, 2
ldr r1, _0803A758
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803A758: .4byte _0803A75C
.align 2, 0
_0803A75C:
.4byte _0803A7AA
.4byte _0803A7AA
.4byte _0803A7A0
.4byte _0803A770
.4byte _0803A788
_0803A770:
bl sub_801CB24
ldr r1, _0803A784
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x2
bl sub_803A504
b _0803A7AA
.align 2, 0
_0803A784: .4byte gUnknown_203B3F0
_0803A788:
bl sub_801CB24
ldr r1, _0803A79C
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x4
bl sub_803A504
b _0803A7AA
.align 2, 0
_0803A79C: .4byte gUnknown_203B3F0
_0803A7A0:
bl sub_801CBB8
movs r0, 0x5
bl sub_803A504
_0803A7AA:
pop {r0}
bx r0
thumb_func_end sub_803A740
thumb_func_start sub_803A7B0
sub_803A7B0:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801CA08
ldr r4, _0803A7E8
ldr r0, [r4]
adds r0, 0x4C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0803A7D6
ldr r0, [r4]
adds r0, 0x4C
mov r1, sp
bl sub_8013114
_0803A7D6:
ldr r0, [sp]
cmp r0, 0x2
beq _0803A7F2
cmp r0, 0x2
bgt _0803A7EC
cmp r0, 0x1
beq _0803A802
b _0803A808
.align 2, 0
_0803A7E8: .4byte gUnknown_203B3F0
_0803A7EC:
cmp r0, 0x3
beq _0803A7FA
b _0803A808
_0803A7F2:
movs r0, 0x3
bl sub_803A504
b _0803A808
_0803A7FA:
movs r0, 0x4
bl sub_803A504
b _0803A808
_0803A802:
movs r0, 0x1
bl sub_803A504
_0803A808:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_803A7B0
thumb_func_start sub_803A810
sub_803A810:
push {r4,lr}
movs r0, 0
bl sub_801CA08
ldr r4, _0803A838
ldr r0, [r4]
adds r0, 0x4C
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0x9C
bl sub_8013BBC
cmp r0, 0x2
beq _0803A854
cmp r0, 0x2
bhi _0803A83C
cmp r0, 0x1
beq _0803A860
b _0803A864
.align 2, 0
_0803A838: .4byte gUnknown_203B3F0
_0803A83C:
cmp r0, 0x3
bne _0803A864
ldr r0, _0803A85C
ldr r2, [r0]
ldr r1, [r4]
ldrb r0, [r1, 0x4]
lsls r0, 1
adds r2, 0x50
adds r2, r0
adds r1, 0x9C
ldr r0, [r1]
strh r0, [r2]
_0803A854:
movs r0, 0x1
bl sub_803A504
b _0803A864
.align 2, 0
_0803A85C: .4byte gUnknown_203B460
_0803A860:
bl sub_803A690
_0803A864:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_803A810
thumb_func_start sub_803A86C
sub_803A86C:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _0803A884
cmp r0, 0x3
bhi _0803A884
bl sub_801B450
movs r0, 0x1
bl sub_803A504
_0803A884:
pop {r0}
bx r0
thumb_func_end sub_803A86C
thumb_func_start sub_803A888
sub_803A888:
push {r4,lr}
bl sub_8004914
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, _0803A8B4
movs r0, 0xFC
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r0, 0
bl sub_803A924
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0803A8B4: .4byte gUnknown_203B3F4
thumb_func_end sub_803A888
thumb_func_start sub_803A8B8
sub_803A8B8:
push {lr}
ldr r0, _0803A8D0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x4
bhi _0803A902
lsls r0, 2
ldr r1, _0803A8D4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803A8D0: .4byte gUnknown_203B3F4
_0803A8D4: .4byte _0803A8D8
.align 2, 0
_0803A8D8:
.4byte _0803A8EC
.4byte _0803A8EC
.4byte _0803A8F2
.4byte _0803A8F8
.4byte _0803A8FE
_0803A8EC:
bl sub_803AAC4
b _0803A902
_0803A8F2:
bl sub_803AB34
b _0803A902
_0803A8F8:
bl sub_803ABAC
b _0803A902
_0803A8FE:
movs r0, 0x3
b _0803A904
_0803A902:
movs r0, 0
_0803A904:
pop {r1}
bx r1
thumb_func_end sub_803A8B8
thumb_func_start sub_803A908
sub_803A908:
push {r4,lr}
ldr r4, _0803A920
ldr r0, [r4]
cmp r0, 0
beq _0803A91A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803A91A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A920: .4byte gUnknown_203B3F4
thumb_func_end sub_803A908
thumb_func_start sub_803A924
sub_803A924:
push {lr}
ldr r1, _0803A938
ldr r1, [r1]
str r0, [r1]
bl sub_803A93C
bl sub_803A9AC
pop {r0}
bx r0
.align 2, 0
_0803A938: .4byte gUnknown_203B3F4
thumb_func_end sub_803A924
thumb_func_start sub_803A93C
sub_803A93C:
push {r4-r7,lr}
ldr r4, _0803A960
ldr r0, [r4]
adds r0, 0x9C
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x2
bne _0803A968
adds r1, 0xCC
ldr r0, _0803A964
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _0803A98A
.align 2, 0
_0803A960: .4byte gUnknown_203B3F4
_0803A964: .4byte gUnknown_80E7EA4
_0803A968:
mov r12, r4
ldr r4, _0803A9A4
movs r3, 0
movs r2, 0x3
_0803A970:
mov r0, r12
ldr r1, [r0]
adds r1, r3
adds r1, 0x9C
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0803A970
_0803A98A:
bl sub_8004914
ldr r0, _0803A9A8
ldr r0, [r0]
adds r0, 0x9C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803A9A4: .4byte gUnknown_80E7E8C
_0803A9A8: .4byte gUnknown_203B3F4
thumb_func_end sub_803A93C
thumb_func_start sub_803A9AC
sub_803A9AC:
push {lr}
sub sp, 0x8
ldr r1, _0803A9C8
ldr r0, [r1]
ldr r0, [r0]
adds r2, r1, 0
cmp r0, 0x4
bhi _0803AA2C
lsls r0, 2
ldr r1, _0803A9CC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803A9C8: .4byte gUnknown_203B3F4
_0803A9CC: .4byte _0803A9D0
.align 2, 0
_0803A9D0:
.4byte _0803A9E4
.4byte _0803A9EE
.4byte _0803A9F6
.4byte _0803AA20
.4byte _0803AA2C
_0803A9E4:
movs r0, 0
movs r1, 0x3
bl sub_80211AC
b _0803AA2C
_0803A9EE:
movs r0, 0x1
bl sub_8021354
b _0803AA2C
_0803A9F6:
bl sub_8021494
bl sub_803AA34
ldr r0, _0803AA1C
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x4C
adds r1, r2, 0
adds r1, 0xC
ldr r2, [r2, 0x8]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _0803AA2C
.align 2, 0
_0803AA1C: .4byte gUnknown_203B3F4
_0803AA20:
ldr r0, [r2]
ldrb r0, [r0, 0x4]
movs r1, 0x1
movs r2, 0
bl sub_8021774
_0803AA2C:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_803A9AC
thumb_func_start sub_803AA34
sub_803AA34:
push {r4,r5,lr}
movs r4, 0
ldr r0, _0803AA64
ldr r1, [r0]
ldr r2, _0803AA68
ldr r3, [r2]
ldrb r0, [r3, 0x4]
adds r1, r0
ldrb r0, [r1]
adds r5, r2, 0
cmp r0, 0
beq _0803AA7A
ldr r0, _0803AA6C
str r0, [r3, 0xC]
bl sub_803ABC8
lsls r0, 24
cmp r0, 0
beq _0803AA70
ldr r1, [r5]
movs r0, 0x3
str r0, [r1, 0x10]
b _0803AA82
.align 2, 0
_0803AA64: .4byte gUnknown_203B468
_0803AA68: .4byte gUnknown_203B3F4
_0803AA6C: .4byte gUnknown_80E7EBC
_0803AA70:
ldr r1, [r5]
movs r0, 0x1
negs r0, r0
str r0, [r1, 0x10]
b _0803AA82
_0803AA7A:
ldr r0, _0803AABC
str r0, [r3, 0xC]
movs r0, 0x2
str r0, [r3, 0x10]
_0803AA82:
adds r4, 0x1
ldr r5, [r5]
mov r12, r5
lsls r1, r4, 3
mov r3, r12
adds r3, 0xC
adds r2, r3, r1
ldr r0, _0803AAC0
ldr r0, [r0]
str r0, [r2]
mov r2, r12
adds r2, 0x10
adds r1, r2, r1
movs r0, 0x4
str r0, [r1]
adds r4, 0x1
lsls r1, r4, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r2, r1
movs r0, 0x1
str r0, [r2]
mov r1, r12
ldr r0, [r1, 0x10]
str r0, [r1, 0x8]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803AABC: .4byte gUnknown_80E7EC4
_0803AAC0: .4byte gUnknown_80D4970
thumb_func_end sub_803AA34
thumb_func_start sub_803AAC4
sub_803AAC4:
push {lr}
movs r0, 0x1
bl sub_8021274
cmp r0, 0x4
bhi _0803AB2E
lsls r0, 2
ldr r1, _0803AADC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803AADC: .4byte _0803AAE0
.align 2, 0
_0803AAE0:
.4byte _0803AB2E
.4byte _0803AB2E
.4byte _0803AB24
.4byte _0803AAF4
.4byte _0803AB0C
_0803AAF4:
bl sub_802132C
ldr r1, _0803AB08
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x2
bl sub_803A924
b _0803AB2E
.align 2, 0
_0803AB08: .4byte gUnknown_203B3F4
_0803AB0C:
bl sub_802132C
ldr r1, _0803AB20
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x3
bl sub_803A924
b _0803AB2E
.align 2, 0
_0803AB20: .4byte gUnknown_203B3F4
_0803AB24:
bl sub_80213A0
movs r0, 0x4
bl sub_803A924
_0803AB2E:
pop {r0}
bx r0
thumb_func_end sub_803AAC4
thumb_func_start sub_803AB34
sub_803AB34:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8021274
ldr r4, _0803AB6C
ldr r0, [r4]
adds r0, 0x4C
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0803AB5A
ldr r0, [r4]
adds r0, 0x4C
mov r1, sp
bl sub_8013114
_0803AB5A:
ldr r0, [sp]
cmp r0, 0x2
beq _0803AB7A
cmp r0, 0x2
bgt _0803AB70
cmp r0, 0x1
beq _0803AB9E
b _0803ABA4
.align 2, 0
_0803AB6C: .4byte gUnknown_203B3F4
_0803AB70:
cmp r0, 0x3
beq _0803AB84
cmp r0, 0x4
beq _0803AB96
b _0803ABA4
_0803AB7A:
ldr r0, [r4]
ldrb r0, [r0, 0x4]
bl sub_80925EC
b _0803AB8E
_0803AB84:
ldr r0, [r4]
ldrb r0, [r0, 0x4]
movs r1, 0x1
bl sub_809249C
_0803AB8E:
movs r0, 0x1
bl sub_803A924
b _0803ABA4
_0803AB96:
movs r0, 0x3
bl sub_803A924
b _0803ABA4
_0803AB9E:
movs r0, 0x1
bl sub_803A924
_0803ABA4:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_803AB34
thumb_func_start sub_803ABAC
sub_803ABAC:
push {lr}
bl sub_80217EC
cmp r0, 0x1
bls _0803ABC4
cmp r0, 0x3
bhi _0803ABC4
bl sub_8021830
movs r0, 0x1
bl sub_803A924
_0803ABC4:
pop {r0}
bx r0
thumb_func_end sub_803ABAC
thumb_func_start sub_803ABC8
sub_803ABC8:
push {r4-r6,lr}
movs r5, 0
movs r6, 0x1
_0803ABCE:
ldr r2, _0803AC08
movs r0, 0x58
adds r1, r5, 0
muls r1, r0
ldr r0, [r2]
adds r2, r0, r1
ldrh r1, [r2]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _0803AC10
lsrs r0, r1, 1
ands r0, r6
cmp r0, 0
beq _0803AC10
ldr r0, _0803AC0C
ldr r4, [r0]
movs r1, 0x8
ldrsh r0, [r2, r1]
bl sub_808DBA8
ldrb r1, [r4, 0x4]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _0803AC10
movs r0, 0
b _0803AC1C
.align 2, 0
_0803AC08: .4byte gUnknown_203B45C
_0803AC0C: .4byte gUnknown_203B3F4
_0803AC10:
adds r5, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r5, r0
ble _0803ABCE
movs r0, 0x1
_0803AC1C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_803ABC8
thumb_func_start sub_803AC24
sub_803AC24:
push {r4,lr}
ldr r4, _0803AC44
movs r0, 0xA0
lsls r0, 1
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r0, 0
bl sub_803ACD0
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0803AC44: .4byte gUnknown_203B3F8
thumb_func_end sub_803AC24
thumb_func_start sub_803AC48
sub_803AC48:
push {lr}
ldr r0, _0803AC60
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x7
bhi _0803ACA8
lsls r0, 2
ldr r1, _0803AC64
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803AC60: .4byte gUnknown_203B3F8
_0803AC64: .4byte _0803AC68
.align 2, 0
_0803AC68:
.4byte _0803AC88
.4byte _0803AC90
.4byte _0803AC90
.4byte _0803AC96
.4byte _0803ACA8
.4byte _0803AC9C
.4byte _0803ACA2
.4byte _0803ACA8
_0803AC88:
movs r0, 0x1
bl sub_803ACD0
b _0803ACAC
_0803AC90:
bl sub_803AF38
b _0803ACAC
_0803AC96:
bl sub_803AF88
b _0803ACAC
_0803AC9C:
bl sub_803AFE8
b _0803ACAC
_0803ACA2:
bl sub_803B034
b _0803ACAC
_0803ACA8:
movs r0, 0x3
b _0803ACAE
_0803ACAC:
movs r0, 0
_0803ACAE:
pop {r1}
bx r1
thumb_func_end sub_803AC48
thumb_func_start sub_803ACB4
sub_803ACB4:
push {r4,lr}
ldr r4, _0803ACCC
ldr r0, [r4]
cmp r0, 0
beq _0803ACC6
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803ACC6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803ACCC: .4byte gUnknown_203B3F8
thumb_func_end sub_803ACB4
thumb_func_start sub_803ACD0
sub_803ACD0:
push {lr}
ldr r1, _0803ACE4
ldr r1, [r1]
str r0, [r1]
bl sub_803ACE8
bl sub_803AD88
pop {r0}
bx r0
.align 2, 0
_0803ACE4: .4byte gUnknown_203B3F8
thumb_func_end sub_803ACD0
thumb_func_start sub_803ACE8
sub_803ACE8:
push {r4-r7,lr}
ldr r4, _0803AD08
ldr r0, [r4]
adds r0, 0xE0
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x3
beq _0803AD10
cmp r0, 0x5
beq _0803AD38
movs r2, 0
ldr r3, _0803AD0C
b _0803AD50
.align 2, 0
_0803AD08: .4byte gUnknown_203B3F8
_0803AD0C: .4byte gUnknown_80E7ED4
_0803AD10:
bl sub_803AEB0
ldr r2, [r4]
movs r0, 0x88
lsls r0, 1
adds r2, r0
ldr r1, _0803AD34
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0x90
bl sub_8012CAC
b _0803AD6C
.align 2, 0
_0803AD34: .4byte gUnknown_80E7EEC
_0803AD38:
movs r6, 0x94
lsls r6, 1
adds r1, r6
ldr r0, _0803AD4C
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
b _0803AD6C
.align 2, 0
_0803AD4C: .4byte gUnknown_80E7F04
_0803AD50:
ldr r0, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r0, r1
adds r0, 0xE0
adds r1, r3, 0
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r2, 0x1
cmp r2, 0x3
ble _0803AD50
_0803AD6C:
bl sub_8004914
ldr r0, _0803AD84
ldr r0, [r0]
adds r0, 0xE0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803AD84: .4byte gUnknown_203B3F8
thumb_func_end sub_803ACE8
thumb_func_start sub_803AD88
sub_803AD88:
push {lr}
sub sp, 0x8
ldr r1, _0803ADA4
ldr r0, [r1]
ldr r0, [r0]
adds r2, r1, 0
cmp r0, 0x7
bhi _0803AE50
lsls r0, 2
ldr r1, _0803ADA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803ADA4: .4byte gUnknown_203B3F8
_0803ADA8: .4byte _0803ADAC
.align 2, 0
_0803ADAC:
.4byte _0803AE50
.4byte _0803ADCC
.4byte _0803ADDA
.4byte _0803ADE2
.4byte _0803AE50
.4byte _0803AE0C
.4byte _0803AE44
.4byte _0803AE50
_0803ADCC:
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_8023868
b _0803AE50
_0803ADDA:
movs r0, 0x1
bl sub_8023B7C
b _0803AE50
_0803ADE2:
bl sub_8023DA4
ldr r0, _0803AE08
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x10
adds r1, r2, 0
adds r1, 0x90
adds r3, r2, 0
adds r3, 0xD0
ldr r2, [r2, 0xC]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _0803AE50
.align 2, 0
_0803AE08: .4byte gUnknown_203B3F8
_0803AE0C:
ldr r2, [r2]
movs r1, 0x3
str r1, [r2, 0x70]
movs r0, 0x1
str r0, [r2, 0x68]
movs r0, 0x64
str r0, [r2, 0x6C]
ldr r0, [r2, 0x8]
ldrb r0, [r0, 0x3]
str r0, [r2, 0x64]
str r1, [r2, 0x74]
movs r1, 0x94
lsls r1, 1
adds r0, r2, r1
str r0, [r2, 0x78]
movs r0, 0x2C
str r0, [r2, 0x7C]
adds r1, r2, 0
adds r1, 0x80
movs r0, 0x12
str r0, [r1]
adds r0, r2, 0
adds r0, 0x60
bl sub_8013AA0
bl sub_803AE58
b _0803AE50
_0803AE44:
ldr r0, [r2]
ldr r1, [r0, 0x8]
adds r1, 0x4C
movs r0, 0x2
bl sub_801602C
_0803AE50:
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_803AD88
thumb_func_start sub_803AE58
sub_803AE58:
push {r4,lr}
sub sp, 0x4
ldr r4, _0803AEA8
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_80073B8
ldr r2, _0803AEAC
ldr r0, [r4]
ldr r3, [r0, 0x74]
movs r0, 0
str r0, [sp]
movs r0, 0x4
movs r1, 0
bl xxx_call_draw_string
ldr r0, [r4]
adds r0, 0x60
bl sub_8013C68
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_80073E0
bl sub_8023DA4
ldr r0, [r4]
adds r0, 0x10
movs r1, 0
bl sub_8012EA4
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803AEA8: .4byte gUnknown_203B3F8
_0803AEAC: .4byte gUnknown_80E7F1C
thumb_func_end sub_803AE58
thumb_func_start sub_803AEB0
sub_803AEB0:
push {r4-r6,lr}
ldr r4, _0803AEFC
ldr r0, [r4]
adds r0, 0xD0
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
adds r1, r4, 0
adds r1, 0x90
ldr r0, _0803AF00
str r0, [r1]
adds r5, r4, 0
adds r5, 0x94
movs r0, 0x4
str r0, [r5]
movs r2, 0x1
adds r1, 0x8
ldr r0, _0803AF04
str r0, [r1]
adds r1, 0x4
movs r0, 0x5
str r0, [r1]
movs r6, 0x2
adds r0, r4, 0
adds r0, 0xA0
str r3, [r0]
adds r0, 0x4
str r2, [r0]
adds r0, 0x2C
ldrh r0, [r0]
cmp r0, 0
bne _0803AF08
ldr r0, [r5]
str r0, [r4, 0xC]
b _0803AF2C
.align 2, 0
_0803AEFC: .4byte gUnknown_203B3F8
_0803AF00: .4byte gUnknown_80E7F24
_0803AF04: .4byte gUnknown_80E7F2C
_0803AF08:
adds r3, 0x1
cmp r3, r6
bge _0803AF2C
ldr r0, _0803AF34
ldr r2, [r0]
lsls r1, r3, 1
adds r0, r2, 0
adds r0, 0xD0
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
bne _0803AF08
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x94
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0xC]
_0803AF2C:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803AF34: .4byte gUnknown_203B3F8
thumb_func_end sub_803AEB0
thumb_func_start sub_803AF38
sub_803AF38:
push {lr}
movs r0, 0x1
bl sub_8023A94
cmp r0, 0x2
beq _0803AF78
cmp r0, 0x2
bcc _0803AF82
cmp r0, 0x3
bne _0803AF82
bl sub_8023B44
ldr r1, _0803AF70
ldr r1, [r1]
strh r0, [r1, 0x4]
ldr r3, _0803AF74
movs r0, 0x4
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x8]
movs r0, 0x3
bl sub_803ACD0
b _0803AF82
.align 2, 0
_0803AF70: .4byte gUnknown_203B3F8
_0803AF74: .4byte gUnknown_203B45C
_0803AF78:
bl sub_8023C60
movs r0, 0x7
bl sub_803ACD0
_0803AF82:
pop {r0}
bx r0
thumb_func_end sub_803AF38
thumb_func_start sub_803AF88
sub_803AF88:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8023A94
ldr r4, _0803AFC0
ldr r0, [r4]
adds r0, 0x10
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _0803AFAE
ldr r0, [r4]
adds r0, 0x10
mov r1, sp
bl sub_8013114
_0803AFAE:
ldr r0, [sp]
cmp r0, 0x4
beq _0803AFCA
cmp r0, 0x4
bgt _0803AFC4
cmp r0, 0x1
beq _0803AFDA
b _0803AFE0
.align 2, 0
_0803AFC0: .4byte gUnknown_203B3F8
_0803AFC4:
cmp r0, 0x5
beq _0803AFD2
b _0803AFE0
_0803AFCA:
movs r0, 0x5
bl sub_803ACD0
b _0803AFE0
_0803AFD2:
movs r0, 0x6
bl sub_803ACD0
b _0803AFE0
_0803AFDA:
movs r0, 0x2
bl sub_803ACD0
_0803AFE0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_803AF88
thumb_func_start sub_803AFE8
sub_803AFE8:
push {r4,lr}
movs r0, 0
bl sub_8023A94
ldr r4, _0803B010
ldr r0, [r4]
adds r0, 0x10
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0x60
bl sub_8013BBC
cmp r0, 0x2
beq _0803B020
cmp r0, 0x2
bhi _0803B014
cmp r0, 0x1
beq _0803B028
b _0803B02C
.align 2, 0
_0803B010: .4byte gUnknown_203B3F8
_0803B014:
cmp r0, 0x3
bne _0803B02C
ldr r0, [r4]
ldr r1, [r0, 0x8]
ldr r0, [r0, 0x60]
strb r0, [r1, 0x3]
_0803B020:
movs r0, 0x2
bl sub_803ACD0
b _0803B02C
_0803B028:
bl sub_803AE58
_0803B02C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_803AFE8
thumb_func_start sub_803B034
sub_803B034:
push {lr}
bl sub_8016080
cmp r0, 0x3
bhi _0803B04C
cmp r0, 0x2
bcc _0803B04C
bl sub_80160D8
movs r0, 0x2
bl sub_803ACD0
_0803B04C:
pop {r0}
bx r0
thumb_func_end sub_803B034
thumb_func_start sub_803B050
sub_803B050:
push {r4-r7,lr}
ldr r4, _0803B0F4
movs r0, 0xF4
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
movs r1, 0x3
str r1, [r0, 0x34]
adds r1, r0, 0
adds r1, 0x84
str r1, [r0, 0x38]
adds r0, 0x3C
bl sub_8006518
ldr r1, [r4]
ldr r2, [r1, 0x34]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x3C
ldr r0, _0803B0F8
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldr r0, [r4]
ldr r1, [r0, 0x38]
adds r0, 0x9C
str r0, [r1, 0x14]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r2, 0
movs r3, 0
movs r7, 0xCB
lsls r7, 1
movs r6, 0x80
lsls r6, 9
movs r5, 0
_0803B0AE:
ldr r0, _0803B0FC
adds r0, r5, r0
movs r1, 0x2
ldrsh r0, [r0, r1]
ldr r4, _0803B0F4
cmp r0, 0xA
bne _0803B0C8
ldr r0, [r4]
lsls r1, r2, 1
adds r0, 0xA0
adds r0, r1
strh r3, [r0]
adds r2, 0x1
_0803B0C8:
adds r0, r6, 0
movs r3, 0x80
lsls r3, 9
adds r6, r3
adds r5, 0xC
asrs r3, r0, 16
cmp r3, r7
ble _0803B0AE
ldr r0, [r4]
ldr r3, [r0, 0x34]
adds r1, r2, 0
movs r2, 0xA
bl sub_8013818
bl sub_803B204
bl sub_803B284
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803B0F4: .4byte gUnknown_203B3FC
_0803B0F8: .4byte gUnknown_80E7F54
_0803B0FC: .4byte gUnknown_812F1F8
thumb_func_end sub_803B050
thumb_func_start sub_803B100
sub_803B100:
push {lr}
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
ldr r0, _0803B11C
ldr r0, [r0]
bl sub_8013878
bl sub_803B204
bl sub_803B284
pop {r0}
bx r0
.align 2, 0
_0803B11C: .4byte gUnknown_203B3FC
thumb_func_end sub_803B100
thumb_func_start sub_803B120
sub_803B120:
push {r4,lr}
ldr r4, _0803B13C
ldr r0, [r4]
bl GetKeyPress
cmp r0, 0x1
beq _0803B140
cmp r0, 0x2
bne _0803B144
movs r0, 0x1
bl sub_80119D4
movs r0, 0x2
b _0803B160
.align 2, 0
_0803B13C: .4byte gUnknown_203B3FC
_0803B140:
movs r0, 0x3
b _0803B160
_0803B144:
ldr r0, [r4]
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0803B156
movs r0, 0
b _0803B160
_0803B156:
bl sub_803B204
bl sub_803B284
movs r0, 0x1
_0803B160:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_803B120
thumb_func_start sub_803B168
sub_803B168:
ldr r0, _0803B188
ldr r0, [r0]
movs r1, 0x1E
ldrsh r2, [r0, r1]
movs r3, 0x1C
ldrsh r1, [r0, r3]
muls r1, r2
movs r3, 0x18
ldrsh r2, [r0, r3]
adds r1, r2
lsls r1, 1
adds r0, 0xA0
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_0803B188: .4byte gUnknown_203B3FC
thumb_func_end sub_803B168
thumb_func_start sub_803B18C
sub_803B18C:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _0803B1B8
ldr r0, [r5]
movs r1, 0xE5
strh r1, [r0, 0x22]
bl sub_8013984
bl sub_803B204
bl sub_803B284
cmp r4, 0
beq _0803B1B2
ldr r0, [r5]
bl AddMenuCursorSprite
_0803B1B2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803B1B8: .4byte gUnknown_203B3FC
thumb_func_end sub_803B18C
thumb_func_start sub_803B1BC
sub_803B1BC:
push {r4,r5,lr}
ldr r4, _0803B1FC
ldr r2, [r4]
cmp r2, 0
beq _0803B1F6
ldr r0, [r2, 0x34]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x3C
ldr r0, _0803B200
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803B1F6:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803B1FC: .4byte gUnknown_203B3FC
_0803B200: .4byte gUnknown_80E7F3C
thumb_func_end sub_803B1BC
thumb_func_start sub_803B204
sub_803B204:
push {r4,lr}
ldr r4, _0803B280
ldr r0, [r4]
adds r0, 0x9C
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9D
strb r2, [r0]
ldr r0, [r4]
adds r0, 0x9E
movs r1, 0x8
strb r1, [r0]
ldr r0, [r4]
adds r0, 0x9F
strb r2, [r0]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
movs r1, 0x1A
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x34]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x4A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x34]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x4C
strh r3, [r2]
bl sub_8004914
ldr r0, [r4]
adds r0, 0x3C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803B280: .4byte gUnknown_203B3FC
thumb_func_end sub_803B204
thumb_func_start sub_803B284
sub_803B284:
push {r4-r6,lr}
sub sp, 0x8
ldr r6, _0803B338
ldr r0, [r6]
ldr r0, [r0, 0x34]
bl sub_8008C54
ldr r0, [r6]
ldr r0, [r0, 0x34]
bl sub_80073B8
ldr r2, _0803B33C
ldr r0, [r6]
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r1, [r6]
adds r0, r1, 0
adds r0, 0x9E
ldrb r4, [r0]
lsls r4, 3
subs r4, 0x2
movs r0, 0x1E
ldrsh r2, [r1, r0]
adds r2, 0x1
movs r0, 0x7
str r0, [sp]
ldr r0, [r1, 0x34]
str r0, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r5, 0
ldr r0, [r6]
movs r1, 0x1A
ldrsh r0, [r0, r1]
cmp r5, r0
bge _0803B324
_0803B2DC:
ldr r0, [r6]
movs r3, 0x1E
ldrsh r2, [r0, r3]
movs r3, 0x1C
ldrsh r1, [r0, r3]
muls r2, r1
adds r2, r5
lsls r2, 1
adds r1, r0, 0
adds r1, 0xA0
adds r1, r2
movs r2, 0
ldrsh r1, [r1, r2]
lsls r4, r1, 1
adds r4, r1
lsls r4, 2
ldr r1, _0803B340
adds r4, r1
adds r1, r5, 0
bl sub_8013800
adds r1, r0, 0
ldr r2, [r4, 0x4]
ldr r0, [r6]
ldr r3, [r0, 0x34]
movs r0, 0
str r0, [sp]
movs r0, 0x8
bl xxx_call_draw_string
adds r5, 0x1
ldr r0, [r6]
movs r3, 0x1A
ldrsh r0, [r0, r3]
cmp r5, r0
blt _0803B2DC
_0803B324:
ldr r0, _0803B338
ldr r0, [r0]
ldr r0, [r0, 0x34]
bl sub_80073E0
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803B338: .4byte gUnknown_203B3FC
_0803B33C: .4byte gUnknown_80E7F6C
_0803B340: .4byte gUnknown_812F1F8
thumb_func_end sub_803B284
thumb_func_start sub_803B344
sub_803B344:
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
ldr r1, _0803B358
adds r0, r1
bx lr
.align 2, 0
_0803B358: .4byte gUnknown_80E7F94
thumb_func_end sub_803B344
thumb_func_start sub_803B35C
sub_803B35C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r1, 0x18
bl sub_803C21C
ldrb r0, [r5, 0x2]
subs r0, 0x1
cmp r0, 0x8
bls _0803B372
b _0803B4FA
_0803B372:
lsls r0, 2
ldr r1, _0803B37C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803B37C: .4byte _0803B380
.align 2, 0
_0803B380:
.4byte _0803B3A4
.4byte _0803B3BE
.4byte _0803B3D8
.4byte _0803B3F2
.4byte _0803B414
.4byte _0803B442
.4byte _0803B470
.4byte _0803B49E
.4byte _0803B4CC
_0803B3A4:
adds r0, r4, 0
adds r0, 0x40
movs r1, 0
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x6
strb r0, [r1]
subs r1, 0x14
movs r0, 0x5
b _0803B576
_0803B3BE:
adds r0, r4, 0
adds r0, 0x40
movs r1, 0x1
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x6
strb r0, [r1]
subs r1, 0x14
movs r0, 0x5
b _0803B576
_0803B3D8:
adds r0, r4, 0
adds r0, 0x40
movs r1, 0x2
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x6
strb r0, [r1]
subs r1, 0x14
movs r0, 0x5
b _0803B576
_0803B3F2:
adds r0, r4, 0
adds r0, 0x40
movs r1, 0x3
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x6
strb r0, [r1]
bl sub_8096DD8
str r0, [r4, 0x4C]
bl sub_8096DE8
str r0, [r4, 0x50]
b _0803B578
_0803B414:
ldrb r0, [r5, 0x1]
cmp r0, 0x3
bne _0803B42A
adds r0, r4, 0
adds r0, 0x40
movs r1, 0xB
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x1
b _0803B438
_0803B42A:
adds r0, r4, 0
adds r0, 0x40
movs r1, 0xC
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x2
_0803B438:
strb r0, [r1]
adds r1, r4, 0
adds r1, 0x41
movs r0, 0x4
b _0803B576
_0803B442:
ldrb r0, [r5, 0x1]
cmp r0, 0x3
bne _0803B458
adds r0, r4, 0
adds r0, 0x40
movs r1, 0xB
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x1
b _0803B466
_0803B458:
adds r0, r4, 0
adds r0, 0x40
movs r1, 0xC
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x42
movs r0, 0x2
_0803B466:
strb r0, [r1]
adds r1, r4, 0
adds r1, 0x41
movs r0, 0x5
b _0803B576
_0803B470:
adds r0, r5, 0
bl sub_803B600
str r0, [r4, 0x4]
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0803B488
adds r1, r4, 0
adds r1, 0x40
movs r0, 0x9
b _0803B48E
_0803B488:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0x4
_0803B48E:
strb r0, [r1]
adds r1, r4, 0
adds r1, 0x41
movs r0, 0x6
strb r0, [r1]
adds r1, 0x1
movs r0, 0x4
b _0803B576
_0803B49E:
adds r0, r5, 0
bl sub_803B628
str r0, [r4, 0x4]
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0803B4B6
adds r1, r4, 0
adds r1, 0x40
movs r0, 0x9
b _0803B4BC
_0803B4B6:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0x5
_0803B4BC:
strb r0, [r1]
adds r1, r4, 0
adds r1, 0x41
movs r0, 0x7
strb r0, [r1]
adds r1, 0x1
movs r0, 0x4
b _0803B576
_0803B4CC:
adds r0, r5, 0
bl sub_803B66C
str r0, [r4, 0x4]
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _0803B4E4
adds r1, r4, 0
adds r1, 0x40
movs r0, 0xA
b _0803B4EA
_0803B4E4:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0x6
_0803B4EA:
strb r0, [r1]
adds r1, r4, 0
adds r1, 0x41
movs r0, 0x8
strb r0, [r1]
adds r1, 0x1
movs r0, 0x5
b _0803B576
_0803B4FA:
ldrb r0, [r5, 0x1]
cmp r0, 0x2
beq _0803B528
cmp r0, 0x2
bgt _0803B50A
cmp r0, 0x1
beq _0803B514
b _0803B564
_0803B50A:
cmp r0, 0x3
beq _0803B53C
cmp r0, 0x4
beq _0803B550
b _0803B564
_0803B514:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0x9
strb r0, [r1]
adds r1, 0x1
movs r0, 0xD
strb r0, [r1]
adds r1, 0x1
movs r0, 0x4
b _0803B576
_0803B528:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0xA
strb r0, [r1]
adds r1, 0x1
movs r0, 0xE
strb r0, [r1]
adds r1, 0x1
movs r0, 0x5
b _0803B576
_0803B53C:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0xB
strb r0, [r1]
adds r1, 0x1
movs r0, 0xF
strb r0, [r1]
adds r1, 0x1
movs r0, 0x1
b _0803B576
_0803B550:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0xC
strb r0, [r1]
adds r1, 0x1
movs r0, 0x10
strb r0, [r1]
adds r1, 0x1
movs r0, 0x2
b _0803B576
_0803B564:
adds r1, r4, 0
adds r1, 0x40
movs r0, 0x8
strb r0, [r1]
adds r1, 0x1
movs r0, 0xC
strb r0, [r1]
adds r1, 0x1
movs r0, 0x3
_0803B576:
strb r0, [r1]
_0803B578:
adds r0, r5, 0x4
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
ldrh r0, [r5, 0xC]
movs r1, 0
strh r0, [r4, 0x10]
ldrh r0, [r5, 0xE]
strh r0, [r4, 0x12]
ldrb r0, [r5, 0x10]
strb r0, [r4, 0x14]
ldrb r0, [r5]
subs r0, 0x2
cmp r0, 0x7
bhi _0803B5EC
lsls r0, 2
ldr r1, _0803B5A0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803B5A0: .4byte _0803B5A4
.align 2, 0
_0803B5A4:
.4byte _0803B5C4
.4byte _0803B5C4
.4byte _0803B5C4
.4byte _0803B5C4
.4byte _0803B5DC
.4byte _0803B5CC
.4byte _0803B5DC
.4byte _0803B5DC
_0803B5C4:
adds r0, r4, 0
adds r0, 0x43
movs r1, 0x1
b _0803B5F0
_0803B5CC:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0
strb r0, [r1]
adds r1, 0x1
movs r0, 0x3
strb r0, [r1]
b _0803B5F6
_0803B5DC:
adds r1, r4, 0
adds r1, 0x43
movs r0, 0x3
strb r0, [r1]
adds r1, 0x1
movs r0, 0x2
strb r0, [r1]
b _0803B5F6
_0803B5EC:
adds r0, r4, 0
adds r0, 0x43
_0803B5F0:
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
_0803B5F6:
str r5, [r4, 0x54]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_803B35C
thumb_func_start sub_803B600
sub_803B600:
push {lr}
ldr r2, _0803B614
movs r1, 0
ldr r3, [r0, 0xC]
_0803B608:
ldr r0, [r2]
cmp r0, r3
bne _0803B618
adds r0, r1, 0
b _0803B624
.align 2, 0
_0803B614: .4byte gUnknown_80E9920
_0803B618:
adds r2, 0x8
adds r1, 0x1
cmp r1, 0x14
ble _0803B608
movs r0, 0x1
negs r0, r0
_0803B624:
pop {r1}
bx r1
thumb_func_end sub_803B600
thumb_func_start sub_803B628
sub_803B628:
push {r4,r5,lr}
adds r4, r0, 0
ldr r2, _0803B654
movs r3, 0
_0803B630:
ldr r1, [r2]
ldr r0, [r4, 0xC]
cmp r1, r0
beq _0803B650
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r5, 0xC
ldrsh r0, [r4, r5]
cmp r1, r0
bne _0803B658
movs r0, 0
ldrsh r1, [r2, r0]
movs r5, 0xE
ldrsh r0, [r4, r5]
cmp r1, r0
bne _0803B658
_0803B650:
adds r0, r3, 0
b _0803B664
.align 2, 0
_0803B654: .4byte gUnknown_80E9F8C
_0803B658:
adds r2, 0xC
adds r3, 0x1
cmp r3, 0x2C
ble _0803B630
movs r0, 0x1
negs r0, r0
_0803B664:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_803B628
thumb_func_start sub_803B66C
sub_803B66C:
push {r4,r5,lr}
adds r4, r0, 0
ldr r2, _0803B698
movs r3, 0
_0803B674:
ldr r1, [r2]
ldr r0, [r4, 0xC]
cmp r1, r0
beq _0803B694
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r5, 0xC
ldrsh r0, [r4, r5]
cmp r1, r0
bne _0803B69C
movs r0, 0
ldrsh r1, [r2, r0]
movs r5, 0xE
ldrsh r0, [r4, r5]
cmp r1, r0
bne _0803B69C
_0803B694:
adds r0, r3, 0
b _0803B6A8
.align 2, 0
_0803B698: .4byte gUnknown_80E8168
_0803B69C:
adds r2, 0x4
adds r3, 0x1
cmp r3, 0x5
ble _0803B674
movs r0, 0x1
negs r0, r0
_0803B6A8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_803B66C
thumb_func_start sub_803B6B0
sub_803B6B0:
push {r4,lr}
sub sp, 0x4
lsls r2, 24
ldr r4, _0803B6D0
lsrs r2, 22
adds r2, r4
ldr r2, [r2]
movs r4, 0
str r4, [sp]
bl xxx_call_draw_string
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803B6D0: .4byte gUnknown_80E8B94
thumb_func_end sub_803B6B0
thumb_func_start sub_803B6D4
sub_803B6D4:
push {r4-r7,lr}
sub sp, 0x144
adds r7, r0, 0
ldr r1, [r7, 0x48]
adds r0, 0x43
ldrb r2, [r0]
ldr r3, [r7]
movs r0, 0xA
bl sub_803B6B0
adds r0, r7, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0xC
bls _0803B6F4
b _0803B86C
_0803B6F4:
lsls r0, 2
ldr r1, _0803B700
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803B700: .4byte _0803B704
.align 2, 0
_0803B704:
.4byte _0803B73E
.4byte _0803B748
.4byte _0803B754
.4byte _0803B738
.4byte _0803B7A4
.4byte _0803B7B0
.4byte _0803B7C8
.4byte _0803B760
.4byte _0803B86C
.4byte _0803B818
.4byte _0803B7E0
.4byte _0803B788
.4byte _0803B76A
_0803B738:
ldr r1, [r7, 0x48]
ldr r2, [r7, 0x4C]
b _0803B7CC
_0803B73E:
ldr r1, [r7, 0x48]
ldr r2, _0803B744
b _0803B7CC
.align 2, 0
_0803B744: .4byte gUnknown_80E87DC
_0803B748:
ldr r1, [r7, 0x48]
ldr r2, _0803B750
b _0803B7CC
.align 2, 0
_0803B750: .4byte gUnknown_80E87F4
_0803B754:
ldr r1, [r7, 0x48]
ldr r2, _0803B75C
b _0803B7CC
.align 2, 0
_0803B75C: .4byte gUnknown_80E8818
_0803B760:
ldr r1, [r7, 0x8]
add r0, sp, 0x4
bl sub_8090208
b _0803B850
_0803B76A:
ldr r4, _0803B780
ldrb r1, [r7, 0x14]
adds r0, r4, 0
movs r2, 0
bl sub_8090DC4
ldr r1, _0803B784
add r0, sp, 0x4
adds r2, r4, 0
b _0803B84C
.align 2, 0
_0803B780: .4byte gUnknown_202DE58
_0803B784: .4byte gUnknown_80E8830
_0803B788:
ldr r4, _0803B79C
ldrb r1, [r7, 0x14]
adds r0, r4, 0
movs r2, 0
bl sub_8090DC4
ldr r1, _0803B7A0
add r0, sp, 0x4
adds r2, r4, 0
b _0803B84C
.align 2, 0
_0803B79C: .4byte gUnknown_202DE58
_0803B7A0: .4byte gUnknown_80E8848
_0803B7A4:
ldr r1, [r7, 0x48]
ldr r2, _0803B7AC
b _0803B7CC
.align 2, 0
_0803B7AC: .4byte gUnknown_80E885C
_0803B7B0:
ldr r1, [r7, 0x48]
ldr r3, _0803B7C4
ldr r2, [r7, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, 0x4
adds r0, r3
ldr r2, [r0]
b _0803B7CC
.align 2, 0
_0803B7C4: .4byte gUnknown_80E9F8C
_0803B7C8:
ldr r1, [r7, 0x48]
ldr r2, _0803B7DC
_0803B7CC:
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x15
bl xxx_call_draw_string
b _0803B8B4
.align 2, 0
_0803B7DC: .4byte gUnknown_80E886C
_0803B7E0:
ldr r0, [r7, 0x8]
ldr r4, [r0, 0x4]
ldrb r0, [r0]
adds r4, r0
lsls r4, 24
lsrs r4, 24
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r5, _0803B810
adds r0, r5, 0
bl strcpy
ldr r1, _0803B814
movs r0, 0x3
ands r4, r0
lsls r4, 2
adds r4, r1
ldr r1, [r4]
add r0, sp, 0x4
adds r2, r5, 0
b _0803B84C
.align 2, 0
_0803B810: .4byte gUnknown_202DF98
_0803B814: .4byte gUnknown_80EAE5C
_0803B818:
ldr r0, [r7, 0x8]
ldr r4, [r0, 0x4]
ldrb r0, [r0]
adds r4, r0
lsls r4, 24
lsrs r4, 24
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r6, _0803B864
adds r0, r6, 0
bl strcpy
ldr r5, _0803B868
adds r0, r4, 0
movs r1, 0xA
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r5
ldr r1, [r0]
add r0, sp, 0x4
adds r2, r6, 0
_0803B84C:
bl sub_800D158
_0803B850:
ldr r1, [r7, 0x48]
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x15
add r2, sp, 0x4
bl xxx_call_draw_string
b _0803B8B4
.align 2, 0
_0803B864: .4byte gUnknown_202DF98
_0803B868: .4byte gUnknown_80E910C
_0803B86C:
ldr r0, [r7, 0x8]
ldr r4, [r0, 0x4]
ldrb r0, [r0]
adds r4, r0
lsls r4, 24
lsrs r4, 24
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r6, _0803B8E8
adds r0, r6, 0
bl strcpy
ldr r5, _0803B8EC
adds r0, r4, 0
movs r1, 0xF
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r5
ldr r1, [r0]
add r0, sp, 0x4
adds r2, r6, 0
bl sub_800D158
ldr r1, [r7, 0x48]
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x15
add r2, sp, 0x4
bl xxx_call_draw_string
_0803B8B4:
adds r0, r7, 0
adds r0, 0x40
ldrb r1, [r0]
adds r6, r0, 0
cmp r1, 0x7
bne _0803B916
ldr r5, [r7, 0xC]
cmp r5, 0
bne _0803B8F0
bl sub_8016028
movs r4, 0xB2
subs r4, r0
movs r1, 0x10
ldrsh r0, [r7, r1]
bl sub_808D994
adds r2, r0, 0
ldr r1, [r7, 0x48]
ldr r3, [r7]
str r5, [sp]
adds r0, r4, 0
bl xxx_call_draw_string
b _0803B956
.align 2, 0
_0803B8E8: .4byte gUnknown_202DF98
_0803B8EC: .4byte gUnknown_80E8C98
_0803B8F0:
add r4, sp, 0xCC
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xA
bl sub_80922B4
bl sub_8016028
adds r1, r0, 0
movs r0, 0xB2
subs r0, r1
ldr r1, [r7, 0x48]
ldr r3, [r7]
movs r2, 0
str r2, [sp]
adds r2, r4, 0
bl xxx_call_draw_string
b _0803B956
_0803B916:
adds r0, r7, 0
adds r0, 0x42
ldrb r0, [r0]
cmp r0, 0x1
bne _0803B93C
add r4, sp, 0xE0
ldr r1, [r7, 0x8]
adds r0, r4, 0
bl sub_8090228
ldr r1, _0803B938
add r0, sp, 0x4
adds r2, r4, 0
bl sub_800D158
b _0803B944
.align 2, 0
_0803B938: .4byte gUnknown_80E8884
_0803B93C:
ldr r1, [r7, 0x8]
add r0, sp, 0x4
bl sub_8090228
_0803B944:
ldr r1, [r7, 0x48]
adds r1, 0xC
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x1D
add r2, sp, 0x4
bl xxx_call_draw_string
_0803B956:
ldrb r0, [r6]
cmp r0, 0x7
bne _0803B962
ldr r0, [r7, 0x8]
movs r1, 0
b _0803B968
_0803B962:
ldr r0, [r7, 0x8]
ldr r1, [r7, 0x54]
ldrb r1, [r1, 0x1]
_0803B968:
bl sub_803C1D0
lsls r0, 24
lsrs r0, 24
bl sub_803C1F0
adds r2, r0, 0
ldr r1, [r7, 0x48]
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0xB4
bl xxx_call_draw_string
add sp, 0x144
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_803B6D4
thumb_func_start sub_803B98C
sub_803B98C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x1FC
adds r7, r0, 0
movs r0, 0
mov r9, r0
ldr r2, _0803B9E0
ldr r3, [r7]
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r1, _0803B9E4
adds r0, r7, 0
adds r0, 0x44
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r2, [r0]
ldr r3, [r7]
mov r1, r9
str r1, [sp]
movs r0, 0x6C
movs r1, 0
bl xxx_call_draw_string
movs r0, 0x10
mov r9, r0
adds r0, r7, 0
adds r0, 0x41
ldrb r0, [r0]
cmp r0, 0x10
bls _0803B9D6
b _0803BCC0
_0803B9D6:
lsls r0, 2
ldr r1, _0803B9E8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803B9E0: .4byte gUnknown_80E888C
_0803B9E4: .4byte gUnknown_80E8BCC
_0803B9E8: .4byte _0803B9EC
.align 2, 0
_0803B9EC:
.4byte _0803BA34
.4byte _0803BA3C
.4byte _0803BA44
.4byte _0803BA30
.4byte _0803BA4C
.4byte _0803BA6C
.4byte _0803BA8C
.4byte _0803BAA0
.4byte _0803BBF0
.4byte _0803BAE8
.4byte _0803BAF0
.4byte _0803BAF8
.4byte _0803BCC0
.4byte _0803BC58
.4byte _0803BB74
.4byte _0803BB10
.4byte _0803BB10
_0803BA30:
ldr r2, [r7, 0x50]
b _0803BAFA
_0803BA34:
ldr r2, _0803BA38
b _0803BAFA
.align 2, 0
_0803BA38: .4byte gUnknown_80E88A0
_0803BA3C:
ldr r2, _0803BA40
b _0803BAFA
.align 2, 0
_0803BA40: .4byte gUnknown_80E88C8
_0803BA44:
ldr r2, _0803BA48
b _0803BAFA
.align 2, 0
_0803BA48: .4byte gUnknown_80E8920
_0803BA4C:
ldr r4, _0803BA64
ldrb r1, [r7, 0x14]
adds r0, r4, 0
movs r2, 0
bl sub_8090DC4
ldr r1, _0803BA68
add r0, sp, 0x4
adds r2, r4, 0
bl sub_800D158
b _0803BACC
.align 2, 0
_0803BA64: .4byte gUnknown_202DE58
_0803BA68: .4byte gUnknown_80E8968
_0803BA6C:
ldr r4, _0803BA84
ldrb r1, [r7, 0x14]
adds r0, r4, 0
movs r2, 0
bl sub_8090DC4
ldr r1, _0803BA88
add r0, sp, 0x4
adds r2, r4, 0
bl sub_800D158
b _0803BACC
.align 2, 0
_0803BA84: .4byte gUnknown_202DE58
_0803BA88: .4byte gUnknown_80E89B0
_0803BA8C:
ldr r1, _0803BA9C
ldr r0, [r7, 0x4]
lsls r0, 3
adds r1, 0x4
adds r0, r1
ldr r2, [r0]
b _0803BAFA
.align 2, 0
_0803BA9C: .4byte gUnknown_80E9920
_0803BAA0:
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r4, _0803BAE0
adds r0, r4, 0
bl strcpy
ldr r2, _0803BAE4
ldr r1, [r7, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, 0x8
adds r0, r2
ldr r1, [r0]
add r0, sp, 0x4
adds r2, r4, 0
adds r3, r4, 0
bl sub_800D158
_0803BACC:
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0xA
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
b _0803BD42
.align 2, 0
_0803BAE0: .4byte gUnknown_202DF98
_0803BAE4: .4byte gUnknown_80E9F8C
_0803BAE8:
ldr r2, _0803BAEC
b _0803BAFA
.align 2, 0
_0803BAEC: .4byte gUnknown_80E89FC
_0803BAF0:
ldr r2, _0803BAF4
b _0803BAFA
.align 2, 0
_0803BAF4: .4byte gUnknown_80E8A40
_0803BAF8:
ldr r2, _0803BB0C
_0803BAFA:
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0xA
mov r1, r9
bl xxx_call_draw_string
b _0803BD42
.align 2, 0
_0803BB0C: .4byte gUnknown_80E8A7C
_0803BB10:
ldr r0, [r7, 0x8]
ldr r5, [r0, 0x4]
ldrb r4, [r0]
adds r4, r5, r4
lsls r4, 24
lsrs r4, 24
ldrb r0, [r0, 0x1]
adds r5, r0
lsls r5, 24
lsrs r5, 24
ldr r0, _0803BB68
mov r8, r0
ldrb r1, [r7, 0x14]
movs r2, 0
bl sub_8090DC4
ldr r6, _0803BB6C
adds r0, r4, 0
movs r1, 0x16
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r6
ldr r1, [r0]
add r0, sp, 0x4
mov r2, r8
bl sub_800D158
ldr r3, [r7]
movs r6, 0
str r6, [sp]
movs r0, 0xA
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
movs r1, 0xC
add r9, r1
ldr r4, _0803BB70
adds r0, r5, 0
movs r1, 0x16
b _0803BD1A
.align 2, 0
_0803BB68: .4byte gUnknown_202DE58
_0803BB6C: .4byte gUnknown_80EB3F8
_0803BB70: .4byte gUnknown_80EB72C
_0803BB74:
ldr r0, [r7, 0x8]
ldr r5, [r0, 0x4]
ldrb r4, [r0]
adds r4, r5, r4
lsls r4, 24
lsrs r4, 24
ldrb r0, [r0, 0x1]
adds r5, r0
lsls r5, 24
lsrs r5, 24
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r0, _0803BBE4
mov r8, r0
bl strcpy
ldr r6, _0803BBE8
adds r0, r4, 0
movs r1, 0x14
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r6
ldr r1, [r0]
add r0, sp, 0x4
mov r2, r8
bl sub_800D158
ldr r3, [r7]
movs r4, 0
str r4, [sp]
movs r0, 0xA
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
movs r1, 0xC
add r9, r1
ldr r1, _0803BBEC
movs r0, 0x3
ands r5, r0
lsls r5, 2
adds r5, r1
ldr r1, [r5]
add r0, sp, 0x4
mov r2, r8
bl sub_800D158
ldr r3, [r7]
str r4, [sp]
b _0803BD32
.align 2, 0
_0803BBE4: .4byte gUnknown_202DF98
_0803BBE8: .4byte gUnknown_80EAEB8
_0803BBEC: .4byte gUnknown_80EB198
_0803BBF0:
ldr r0, [r7, 0x8]
ldr r5, [r0, 0x4]
ldrb r4, [r0]
adds r4, r5, r4
lsls r4, 24
lsrs r4, 24
ldrb r0, [r0, 0x1]
adds r5, r0
lsls r5, 24
lsrs r5, 24
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r0, _0803BC4C
mov r8, r0
bl strcpy
ldr r6, _0803BC50
adds r0, r4, 0
movs r1, 0x6
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r6
ldr r1, [r0]
add r0, sp, 0x4
mov r2, r8
bl sub_800D158
ldr r3, [r7]
movs r6, 0
str r6, [sp]
movs r0, 0xA
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
movs r1, 0xC
add r9, r1
ldr r4, _0803BC54
adds r0, r5, 0
movs r1, 0x6
b _0803BD1A
.align 2, 0
_0803BC4C: .4byte gUnknown_202DF98
_0803BC50: .4byte gUnknown_80EB220
_0803BC54: .4byte gUnknown_80EB2F0
_0803BC58:
ldr r0, [r7, 0x8]
ldr r5, [r0, 0x4]
ldrb r4, [r0]
adds r4, r5, r4
lsls r4, 24
lsrs r4, 24
ldrb r0, [r0, 0x1]
adds r5, r0
lsls r5, 24
lsrs r5, 24
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r0, _0803BCB4
mov r8, r0
bl strcpy
ldr r6, _0803BCB8
adds r0, r4, 0
movs r1, 0x2D
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r6
ldr r1, [r0]
add r0, sp, 0x4
mov r2, r8
bl sub_800D158
ldr r3, [r7]
movs r6, 0
str r6, [sp]
movs r0, 0xA
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
movs r1, 0xC
add r9, r1
ldr r4, _0803BCBC
adds r0, r5, 0
movs r1, 0xA
b _0803BD1A
.align 2, 0
_0803BCB4: .4byte gUnknown_202DF98
_0803BCB8: .4byte gUnknown_80E91D4
_0803BCBC: .4byte gUnknown_80E9820
_0803BCC0:
ldr r0, [r7, 0x8]
ldr r5, [r0, 0x4]
ldrb r4, [r0]
adds r4, r5, r4
lsls r4, 24
lsrs r4, 24
ldrb r0, [r0, 0x1]
adds r5, r0
lsls r5, 24
lsrs r5, 24
movs r1, 0x10
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r0, _0803BD78
mov r8, r0
bl strcpy
ldr r6, _0803BD7C
adds r0, r4, 0
movs r1, 0xD
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r6
ldr r1, [r0]
add r0, sp, 0x4
mov r2, r8
bl sub_800D158
ldr r3, [r7]
movs r6, 0
str r6, [sp]
movs r0, 0xA
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
movs r1, 0xC
add r9, r1
ldr r4, _0803BD80
adds r0, r5, 0
movs r1, 0xD
_0803BD1A:
bl __umodsi3
lsls r0, 24
lsrs r0, 22
adds r0, r4
ldr r1, [r0]
add r0, sp, 0x4
mov r2, r8
bl sub_800D158
ldr r3, [r7]
str r6, [sp]
_0803BD32:
movs r0, 0xA
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
movs r0, 0xC
negs r0, r0
add r9, r0
_0803BD42:
movs r1, 0x1C
add r9, r1
ldr r2, _0803BD84
ldr r3, [r7]
movs r0, 0
mov r8, r0
str r0, [sp]
movs r0, 0xA
mov r1, r9
bl xxx_call_draw_string
ldr r1, [r7, 0xC]
cmp r1, 0
bne _0803BD88
movs r1, 0x10
ldrsh r0, [r7, r1]
bl sub_808D994
adds r2, r0, 0
ldr r3, [r7]
mov r0, r8
str r0, [sp]
movs r0, 0x44
mov r1, r9
bl xxx_call_draw_string
b _0803BDBC
.align 2, 0
_0803BD78: .4byte gUnknown_202DF98
_0803BD7C: .4byte gUnknown_80E8DE4
_0803BD80: .4byte gUnknown_80E8FB0
_0803BD84: .4byte gUnknown_80E8AC8
_0803BD88:
add r6, sp, 0x158
adds r0, r6, 0
movs r2, 0xA
bl sub_80922B4
add r4, sp, 0x16C
movs r0, 0x10
ldrsh r1, [r7, r0]
adds r0, r4, 0
bl sub_808D930
add r5, sp, 0x130
ldr r1, _0803BDE8
adds r0, r5, 0
adds r2, r6, 0
adds r3, r4, 0
bl sub_800D158
ldr r3, [r7]
mov r1, r8
str r1, [sp]
movs r0, 0x44
mov r1, r9
adds r2, r5, 0
bl xxx_call_draw_string
_0803BDBC:
movs r0, 0xC
add r9, r0
ldr r2, _0803BDEC
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0xA
mov r1, r9
bl xxx_call_draw_string
adds r0, r7, 0
adds r0, 0x42
ldrb r1, [r0]
adds r5, r0, 0
cmp r1, 0x6
bhi _0803BEB8
lsls r0, r1, 2
ldr r1, _0803BDF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803BDE8: .4byte gUnknown_80E8AD0
_0803BDEC: .4byte gUnknown_80E8AE0
_0803BDF0: .4byte _0803BDF4
.align 2, 0
_0803BDF4:
.4byte _0803BE10
.4byte _0803BE30
.4byte _0803BE18
.4byte _0803BE48
.4byte _0803BE80
.4byte _0803BE60
.4byte _0803BEB8
_0803BE10:
ldr r2, _0803BE14
b _0803BE4A
.align 2, 0
_0803BE14: .4byte gUnknown_80E8AEC
_0803BE18:
ldr r4, _0803BE28
ldrb r1, [r7, 0x14]
adds r0, r4, 0
movs r2, 0
bl sub_8090DC4
ldr r1, _0803BE2C
b _0803BE94
.align 2, 0
_0803BE28: .4byte gUnknown_202DE58
_0803BE2C: .4byte gUnknown_80E8AFC
_0803BE30:
ldr r4, _0803BE40
ldrb r1, [r7, 0x14]
adds r0, r4, 0
movs r2, 0
bl sub_8090DC4
ldr r1, _0803BE44
b _0803BE94
.align 2, 0
_0803BE40: .4byte gUnknown_202DE58
_0803BE44: .4byte gUnknown_80E8B10
_0803BE48:
ldr r2, _0803BE5C
_0803BE4A:
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x44
mov r1, r9
bl xxx_call_draw_string
b _0803BEC8
.align 2, 0
_0803BE5C: .4byte gUnknown_80E8B20
_0803BE60:
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r4, _0803BE78
adds r0, r4, 0
bl strcpy
ldr r1, _0803BE7C
b _0803BE94
.align 2, 0
_0803BE78: .4byte gUnknown_202DF98
_0803BE7C: .4byte gUnknown_80E8B2C
_0803BE80:
movs r1, 0x12
ldrsh r0, [r7, r1]
bl sub_808D994
adds r1, r0, 0
ldr r4, _0803BEB0
adds r0, r4, 0
bl strcpy
ldr r1, _0803BEB4
_0803BE94:
add r0, sp, 0x4
adds r2, r4, 0
bl sub_800D158
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x44
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
b _0803BEC8
.align 2, 0
_0803BEB0: .4byte gUnknown_202DF98
_0803BEB4: .4byte gUnknown_80E8B40
_0803BEB8:
ldr r2, _0803BEF8
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x44
mov r1, r9
bl xxx_call_draw_string
_0803BEC8:
movs r0, 0xC
add r9, r0
ldr r2, _0803BEFC
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0xA
mov r1, r9
bl xxx_call_draw_string
ldrb r0, [r5]
cmp r0, 0x1
bne _0803BF04
add r4, sp, 0x180
ldr r1, [r7, 0x8]
adds r0, r4, 0
bl sub_8090228
ldr r1, _0803BF00
add r0, sp, 0x4
adds r2, r4, 0
bl sub_800D158
b _0803BF0C
.align 2, 0
_0803BEF8: .4byte gUnknown_80E8B50
_0803BEFC: .4byte gUnknown_80E8B60
_0803BF00: .4byte gUnknown_80E8884
_0803BF04:
ldr r1, [r7, 0x8]
add r0, sp, 0x4
bl sub_8090228
_0803BF0C:
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x44
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
ldrb r0, [r5]
cmp r0, 0
bne _0803BF28
ldr r0, [r7, 0x8]
movs r1, 0
b _0803BF2E
_0803BF28:
ldr r0, [r7, 0x8]
ldr r1, [r7, 0x54]
ldrb r1, [r1, 0x1]
_0803BF2E:
bl sub_803C1D0
lsls r0, 24
lsrs r4, r0, 24
movs r1, 0xC
add r9, r1
ldr r2, _0803BF88
ldr r3, [r7]
movs r6, 0
str r6, [sp]
movs r0, 0xA
mov r1, r9
bl xxx_call_draw_string
adds r0, r4, 0
bl sub_803C1F0
adds r2, r0, 0
ldr r3, [r7]
str r6, [sp]
movs r0, 0x44
mov r1, r9
bl xxx_call_draw_string
movs r0, 0xC
add r9, r0
ldr r2, _0803BF8C
ldr r3, [r7]
str r6, [sp]
movs r0, 0xA
mov r1, r9
bl xxx_call_draw_string
adds r0, r7, 0
adds r0, 0x2E
ldrb r2, [r0]
adds r5, r0, 0
cmp r2, 0x4
bhi _0803C02C
lsls r0, r2, 2
ldr r1, _0803BF90
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803BF88: .4byte gUnknown_80E8B68
_0803BF8C: .4byte gUnknown_80E8B74
_0803BF90: .4byte _0803BF94
.align 2, 0
_0803BF94:
.4byte _0803BFA8
.4byte _0803BFBC
.4byte _0803BFD0
.4byte _0803BFD0
.4byte _0803C00C
_0803BFA8:
ldr r1, _0803BFB8
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r2, [r7, 0x30]
add r0, sp, 0x4
b _0803BFEE
.align 2, 0
_0803BFB8: .4byte gUnknown_80E8C48
_0803BFBC:
ldr r1, _0803BFCC
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r2, [r7, 0x30]
add r0, sp, 0x4
b _0803BFEE
.align 2, 0
_0803BFCC: .4byte gUnknown_80E8C48
_0803BFD0:
ldr r4, _0803C004
adds r0, r7, 0
adds r0, 0x34
ldrb r1, [r0]
adds r0, r4, 0
movs r2, 0
bl sub_8090DC4
ldr r1, _0803C008
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
add r0, sp, 0x4
adds r2, r4, 0
_0803BFEE:
bl sub_800D158
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x44
mov r1, r9
add r2, sp, 0x4
bl xxx_call_draw_string
b _0803C040
.align 2, 0
_0803C004: .4byte gUnknown_202DE58
_0803C008: .4byte gUnknown_80E8C48
_0803C00C:
ldr r1, _0803C028
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r2, [r0]
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0x44
mov r1, r9
bl xxx_call_draw_string
b _0803C040
.align 2, 0
_0803C028: .4byte gUnknown_80E8C48
_0803C02C:
ldr r1, _0803C0D4
lsls r0, r2, 2
adds r0, r1
ldr r2, [r0]
ldr r3, [r7]
str r6, [sp]
movs r0, 0x44
mov r1, r9
bl xxx_call_draw_string
_0803C040:
movs r1, 0xC
add r9, r1
adds r0, r7, 0
adds r0, 0x41
ldrb r1, [r0]
adds r0, r1, 0
subs r0, 0x9
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bls _0803C0C6
cmp r1, 0x3
beq _0803C0C6
ldr r0, [r7, 0x54]
ldrb r0, [r0]
cmp r0, 0x5
bne _0803C0C6
ldr r2, _0803C0D8
ldr r3, [r7]
movs r0, 0
str r0, [sp]
movs r0, 0xA
mov r1, r9
bl xxx_call_draw_string
add r0, sp, 0x1E4
ldr r1, [r7, 0x54]
bl sub_803D414
movs r4, 0
_0803C07C:
cmp r4, 0xC
bne _0803C084
movs r0, 0xC
add r9, r0
_0803C084:
movs r5, 0x7
cmp r4, 0x3
ble _0803C09C
movs r5, 0x6
cmp r4, 0x7
ble _0803C09C
movs r5, 0x7
cmp r4, 0xF
ble _0803C09C
cmp r4, 0x13
bgt _0803C09C
movs r5, 0x6
_0803C09C:
adds r0, r4, 0
movs r1, 0xC
bl __modsi3
adds r1, r0, 0
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r0, 0x54
add r1, sp, 0x1E4
adds r1, r4
ldrb r2, [r1]
ldr r1, [r7]
str r1, [sp]
mov r1, r9
adds r3, r5, 0
bl sub_8012C60
adds r4, 0x1
cmp r4, 0x17
ble _0803C07C
_0803C0C6:
add sp, 0x1FC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803C0D4: .4byte gUnknown_80E8C48
_0803C0D8: .4byte gUnknown_80E8B7C
thumb_func_end sub_803B98C
thumb_func_start sub_803C0DC
sub_803C0DC:
push {lr}
lsls r0, 16
asrs r0, 16
bl sub_808E770
lsls r0, 16
asrs r2, r0, 16
ldr r1, _0803C0F0
b _0803C102
.align 2, 0
_0803C0F0: .4byte gUnknown_80E80E0
_0803C0F4:
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, r2
bne _0803C100
movs r0, 0
b _0803C10C
_0803C100:
adds r1, 0x2
_0803C102:
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
bne _0803C0F4
movs r0, 0x1
_0803C10C:
pop {r1}
bx r1
thumb_func_end sub_803C0DC
thumb_func_start sub_803C110
sub_803C110:
push {r4,lr}
lsls r0, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_8098134
lsls r0, 24
cmp r0, 0
beq _0803C180
adds r0, r4, 0
bl sub_808E770
lsls r0, 16
asrs r0, 16
cmp r4, r0
bne _0803C180
adds r0, r4, 0
bl sub_803C0DC
lsls r0, 24
cmp r0, 0
beq _0803C180
movs r0, 0x6
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _0803C188
ldr r1, _0803C184
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _0803C168
adds r2, r1, 0
_0803C154:
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, r4
beq _0803C180
adds r1, 0x2
adds r2, 0x2
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
bne _0803C154
_0803C168:
bl sub_808D33C
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, r4
beq _0803C180
bl sub_808D378
movs r2, 0x8
ldrsh r0, [r0, r2]
cmp r0, r4
bne _0803C188
_0803C180:
movs r0, 0
b _0803C18A
.align 2, 0
_0803C184: .4byte gUnknown_80E8126
_0803C188:
movs r0, 0x1
_0803C18A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_803C110
thumb_func_start sub_803C190
sub_803C190:
lsls r0, 24
ldr r1, _0803C19C
lsrs r0, 21
adds r0, r1
ldr r0, [r0]
bx lr
.align 2, 0
_0803C19C: .4byte gUnknown_80EBA18
thumb_func_end sub_803C190
thumb_func_start sub_803C1A0
sub_803C1A0:
lsls r0, 24
ldr r1, _0803C1B0
lsrs r0, 21
adds r1, 0x4
adds r0, r1
ldr r0, [r0]
bx lr
.align 2, 0
_0803C1B0: .4byte gUnknown_80EBA18
thumb_func_end sub_803C1A0
thumb_func_start sub_803C1B4
sub_803C1B4:
push {r4,lr}
lsls r4, r1, 24
lsrs r4, 24
bl sub_80908D8
cmp r4, 0x2
bne _0803C1C4
adds r0, 0x2
_0803C1C4:
cmp r0, 0xF
ble _0803C1CA
movs r0, 0xF
_0803C1CA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_803C1B4
thumb_func_start sub_803C1D0
sub_803C1D0:
push {lr}
lsls r1, 24
lsrs r1, 24
bl sub_803C1B4
adds r1, r0, 0
lsrs r0, r1, 31
adds r0, r1, r0
asrs r1, r0, 1
lsls r0, r1, 24
lsrs r0, 24
cmp r0, 0x6
bls _0803C1EC
movs r0, 0x6
_0803C1EC:
pop {r1}
bx r1
thumb_func_end sub_803C1D0
thumb_func_start sub_803C1F0
sub_803C1F0:
lsls r0, 24
ldr r1, _0803C1FC
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
bx lr
.align 2, 0
_0803C1FC: .4byte gUnknown_80E8BF8
thumb_func_end sub_803C1F0
thumb_func_start sub_803C200
sub_803C200:
push {lr}
lsls r1, 24
lsrs r1, 24
bl sub_803C1B4
ldr r1, _0803C218
lsls r0, 2
adds r0, r1
ldr r0, [r0]
pop {r1}
bx r1
.align 2, 0
_0803C218: .4byte gUnknown_80E80A0
thumb_func_end sub_803C200
thumb_func_start sub_803C21C
sub_803C21C:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
adds r4, r1, 0
adds r0, r6, 0x4
ldrb r1, [r6, 0x1]
bl sub_803C1D0
lsls r0, 24
lsrs r2, r0, 24
movs r0, 0
str r0, [r4, 0x18]
movs r3, 0
movs r1, 0x2
adds r0, r4, 0
adds r0, 0x1E
_0803C23E:
strb r3, [r0]
subs r0, 0x1
subs r1, 0x1
cmp r1, 0
bge _0803C23E
adds r0, r4, 0
adds r0, 0x20
movs r1, 0
strb r1, [r0]
movs r1, 0xA
strb r1, [r4, 0x1F]
ldrb r1, [r6, 0x11]
adds r3, r0, 0
cmp r1, 0x9
bhi _0803C354
lsls r0, r1, 2
ldr r1, _0803C268
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803C268: .4byte _0803C26C
.align 2, 0
_0803C26C:
.4byte _0803C294
.4byte _0803C2A2
.4byte _0803C2B4
.4byte _0803C2BE
.4byte _0803C354
.4byte _0803C2E0
.4byte _0803C2EE
.4byte _0803C300
.4byte _0803C30A
.4byte _0803C34A
_0803C294:
movs r0, 0
strb r0, [r4, 0x16]
adds r1, r2, 0x1
movs r0, 0x64
muls r0, r1
str r0, [r4, 0x18]
b _0803C358
_0803C2A2:
movs r0, 0x1
strb r0, [r4, 0x16]
adds r1, r2, 0x1
movs r0, 0x64
muls r0, r1
str r0, [r4, 0x18]
ldrb r0, [r6, 0x12]
strb r0, [r4, 0x1C]
b _0803C358
_0803C2B4:
movs r0, 0x2
strb r0, [r4, 0x16]
ldrb r0, [r6, 0x12]
strb r0, [r4, 0x1C]
b _0803C358
_0803C2BE:
movs r0, 0x3
strb r0, [r4, 0x16]
ldrb r0, [r6, 0x12]
strb r0, [r4, 0x1C]
adds r5, r6, 0x4
adds r7, r4, 0
adds r7, 0x1D
_0803C2CC:
ldrb r1, [r6, 0x1]
adds r0, r5, 0
adds r2, r7, 0
bl sub_803C37C
ldrb r0, [r4, 0x1C]
ldrb r1, [r4, 0x1D]
cmp r0, r1
beq _0803C2CC
b _0803C35A
_0803C2E0:
movs r0, 0
strb r0, [r4, 0x16]
adds r1, r2, 0x1
movs r0, 0xC8
muls r0, r1
str r0, [r4, 0x18]
b _0803C358
_0803C2EE:
movs r0, 0x1
strb r0, [r4, 0x16]
adds r1, r2, 0x1
movs r0, 0xC8
muls r0, r1
str r0, [r4, 0x18]
ldrb r0, [r6, 0x12]
strb r0, [r4, 0x1C]
b _0803C358
_0803C300:
movs r0, 0x2
strb r0, [r4, 0x16]
ldrb r0, [r6, 0x12]
strb r0, [r4, 0x1C]
b _0803C358
_0803C30A:
movs r0, 0x3
strb r0, [r4, 0x16]
ldrb r0, [r6, 0x12]
strb r0, [r4, 0x1C]
adds r5, r6, 0x4
adds r7, r4, 0
adds r7, 0x1D
movs r0, 0x1E
adds r0, r4
mov r8, r0
_0803C31E:
ldrb r1, [r6, 0x1]
adds r0, r5, 0
adds r2, r7, 0
bl sub_803C37C
ldrb r0, [r4, 0x1C]
ldrb r1, [r4, 0x1D]
cmp r0, r1
beq _0803C31E
_0803C330:
ldrb r1, [r6, 0x1]
adds r0, r5, 0
mov r2, r8
bl sub_803C37C
ldrb r0, [r4, 0x1C]
ldrb r1, [r4, 0x1E]
cmp r0, r1
beq _0803C330
ldrb r0, [r4, 0x1D]
cmp r0, r1
beq _0803C330
b _0803C35A
_0803C34A:
movs r0, 0x4
strb r0, [r4, 0x16]
ldrb r0, [r6, 0x13]
strb r0, [r3]
b _0803C358
_0803C354:
movs r0, 0x5
strb r0, [r4, 0x16]
_0803C358:
adds r5, r6, 0x4
_0803C35A:
movs r0, 0xC
ldrsh r1, [r6, r0]
adds r0, r4, 0
bl sub_808D8E0
ldrh r0, [r6, 0xC]
strh r0, [r4, 0x14]
ldrb r1, [r6, 0x1]
adds r0, r5, 0
bl sub_803C200
str r0, [r4, 0x24]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_803C21C
thumb_func_start sub_803C37C
sub_803C37C:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
mov r8, r2
lsls r1, 24
lsrs r1, 24
bl sub_803C1B4
adds r7, r0, 0
adds r0, r6, 0
adds r1, r7, 0
bl sub_8090910
_0803C398:
movs r5, 0
adds r0, r6, 0
adds r1, r7, 0
bl sub_8090910
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xEA
bne _0803C3BA
movs r0, 0
movs r1, 0x47
movs r2, 0x1
bl sub_8001784
negs r1, r0
orrs r1, r0
lsrs r5, r1, 31
_0803C3BA:
cmp r4, 0xEB
bne _0803C3CE
movs r0, 0
movs r1, 0x47
movs r2, 0
bl sub_8001784
cmp r0, 0
beq _0803C3CE
movs r5, 0x1
_0803C3CE:
cmp r5, 0
bne _0803C398
mov r0, r8
strb r4, [r0]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_803C37C
thumb_func_start sub_803C3E0
sub_803C3E0:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x54
adds r7, r0, 0
movs r6, 0
ldr r5, _0803C42C
movs r4, 0
mov r8, sp
_0803C3F2:
movs r1, 0
ldrsh r0, [r5, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C41A
movs r1, 0x2
ldrsh r0, [r5, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C41A
mov r0, r8
adds r0, 0x4
mov r8, r0
subs r0, 0x4
stm r0!, {r4}
adds r6, 0x1
_0803C41A:
adds r5, 0x8
adds r4, 0x1
cmp r4, 0x14
ble _0803C3F2
ldr r5, _0803C42C
cmp r6, 0
bne _0803C430
movs r0, 0
b _0803C44E
.align 2, 0
_0803C42C: .4byte gUnknown_80E9920
_0803C430:
adds r0, r6, 0
bl RandomCapped
lsls r0, 2
add r0, sp
ldr r4, [r0]
lsls r0, r4, 3
adds r5, r0, r5
ldrh r0, [r5]
strh r0, [r7, 0xC]
ldrh r0, [r5, 0x2]
strh r0, [r7, 0xE]
movs r0, 0x7
strb r0, [r7, 0x2]
movs r0, 0x1
_0803C44E:
add sp, 0x54
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803C3E0
thumb_func_start sub_803C45C
sub_803C45C:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xB4
adds r7, r0, 0
movs r6, 0
ldr r5, _0803C4CC
movs r4, 0
mov r8, sp
_0803C46E:
movs r1, 0
ldrsh r0, [r5, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C496
movs r1, 0x2
ldrsh r0, [r5, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C496
mov r0, r8
adds r0, 0x4
mov r8, r0
subs r0, 0x4
stm r0!, {r4}
adds r6, 0x1
_0803C496:
adds r5, 0xC
adds r4, 0x1
cmp r4, 0x2C
ble _0803C46E
ldr r5, _0803C4CC
cmp r6, 0
beq _0803C4E0
adds r0, r6, 0
bl RandomCapped
lsls r0, 2
add r0, sp
ldr r4, [r0]
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r5, r0, r5
bl Random
movs r1, 0x10
ands r1, r0
cmp r1, 0
beq _0803C4D0
ldrh r0, [r5]
strh r0, [r7, 0xC]
ldrh r0, [r5, 0x2]
b _0803C4D6
.align 2, 0
_0803C4CC: .4byte gUnknown_80E9F8C
_0803C4D0:
ldrh r0, [r5, 0x2]
strh r0, [r7, 0xC]
ldrh r0, [r5]
_0803C4D6:
strh r0, [r7, 0xE]
movs r0, 0x8
strb r0, [r7, 0x2]
movs r0, 0x1
b _0803C4E2
_0803C4E0:
movs r0, 0
_0803C4E2:
add sp, 0xB4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803C45C
thumb_func_start sub_803C4F0
sub_803C4F0:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x18
adds r7, r0, 0
movs r6, 0
ldr r5, _0803C55C
movs r4, 0
mov r8, sp
_0803C502:
movs r1, 0
ldrsh r0, [r5, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C52A
movs r1, 0x2
ldrsh r0, [r5, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C52A
mov r0, r8
adds r0, 0x4
mov r8, r0
subs r0, 0x4
stm r0!, {r4}
adds r6, 0x1
_0803C52A:
adds r5, 0x4
adds r4, 0x1
cmp r4, 0x5
ble _0803C502
ldr r5, _0803C55C
cmp r6, 0
beq _0803C570
adds r0, r6, 0
bl RandomCapped
lsls r0, 2
add r0, sp
ldr r4, [r0]
lsls r0, r4, 2
adds r5, r0, r5
bl Random
movs r1, 0x10
ands r1, r0
cmp r1, 0
beq _0803C560
ldrh r0, [r5]
strh r0, [r7, 0xC]
ldrh r0, [r5, 0x2]
b _0803C566
.align 2, 0
_0803C55C: .4byte gUnknown_80E8168
_0803C560:
ldrh r0, [r5, 0x2]
strh r0, [r7, 0xC]
ldrh r0, [r5]
_0803C566:
strh r0, [r7, 0xE]
movs r0, 0x9
strb r0, [r7, 0x2]
movs r0, 0x1
b _0803C572
_0803C570:
movs r0, 0
_0803C572:
add sp, 0x18
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803C4F0
thumb_func_start sub_803C580
sub_803C580:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x54
adds r6, r0, 0
movs r7, 0
ldr r5, _0803C5D8
movs r0, 0x6
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0803C5D2
movs r4, 0
mov r8, sp
_0803C59E:
movs r1, 0
ldrsh r0, [r5, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C5C6
ldrb r0, [r6, 0x4]
ldrb r1, [r5, 0x2]
bl sub_8091E60
lsls r0, 24
cmp r0, 0
beq _0803C5C6
mov r0, r8
adds r0, 0x4
mov r8, r0
subs r0, 0x4
stm r0!, {r4}
adds r7, 0x1
_0803C5C6:
adds r5, 0x4
adds r4, 0x1
cmp r4, 0x14
ble _0803C59E
cmp r7, 0
bne _0803C5DC
_0803C5D2:
movs r0, 0
b _0803C600
.align 2, 0
_0803C5D8: .4byte gUnknown_80E8180
_0803C5DC:
adds r0, r7, 0
bl RandomCapped
lsls r0, 2
add r0, sp
ldr r4, [r0]
lsls r1, r4, 2
ldr r0, _0803C60C
adds r5, r1, r0
ldrh r0, [r5]
strh r0, [r6, 0xC]
ldrh r0, [r5]
strh r0, [r6, 0xE]
ldrb r0, [r5, 0x2]
strb r0, [r6, 0x10]
movs r0, 0x5
strb r0, [r6, 0x2]
movs r0, 0x1
_0803C600:
add sp, 0x54
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803C60C: .4byte gUnknown_80E8180
thumb_func_end sub_803C580
thumb_func_start sub_803C610
sub_803C610:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0803C660
add sp, r4
adds r6, r0, 0
movs r7, 0
ldr r4, _0803C664
movs r5, 0
mov r8, sp
_0803C624:
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _0803C64C
ldrb r0, [r6, 0x4]
ldrb r1, [r4, 0x2]
bl sub_8091E60
lsls r0, 24
cmp r0, 0
beq _0803C64C
mov r0, r8
adds r0, 0x4
mov r8, r0
subs r0, 0x4
stm r0!, {r5}
adds r7, 0x1
_0803C64C:
adds r4, 0x4
adds r5, 0x1
ldr r0, _0803C668
cmp r5, r0
ble _0803C624
cmp r7, 0
bne _0803C66C
movs r0, 0
b _0803C690
.align 2, 0
_0803C660: .4byte 0xfffff9f8
_0803C664: .4byte gUnknown_80E81D4
_0803C668: .4byte 0x00000181
_0803C66C:
adds r0, r7, 0
bl RandomCapped
lsls r0, 2
add r0, sp
ldr r5, [r0]
lsls r1, r5, 2
ldr r0, _0803C6A0
adds r4, r1, r0
ldrh r0, [r4]
strh r0, [r6, 0xC]
ldrh r0, [r4]
strh r0, [r6, 0xE]
ldrb r0, [r4, 0x2]
strb r0, [r6, 0x10]
movs r0, 0x6
strb r0, [r6, 0x2]
movs r0, 0x1
_0803C690:
movs r3, 0xC1
lsls r3, 3
add sp, r3
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803C6A0: .4byte gUnknown_80E81D4
thumb_func_end sub_803C610
thumb_func_start sub_803C6A4
sub_803C6A4:
push {r4,lr}
ldr r4, _0803C6CC
movs r0, 0xC0
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
adds r0, 0xB4
bl sub_801317C
bl sub_803C6D0
movs r0, 0x1
bl sub_8099690
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0803C6CC: .4byte gUnknown_203B400
thumb_func_end sub_803C6A4
thumb_func_start sub_803C6D0
sub_803C6D0:
push {r4,r5,lr}
ldr r4, _0803C72C
ldr r0, [r4]
adds r0, 0x4
bl sub_8001024
ldr r1, [r4]
movs r0, 0
str r0, [r1]
str r0, [r1, 0x34]
str r0, [r1, 0x38]
movs r2, 0
movs r5, 0
adds r3, r4, 0
_0803C6EC:
ldr r0, [r4]
lsls r1, r2, 2
adds r0, 0x44
adds r0, r1
str r5, [r0]
adds r2, 0x1
cmp r2, 0xC
ble _0803C6EC
ldr r1, [r3]
movs r0, 0
str r0, [r1, 0x3C]
movs r2, 0
adds r4, r3, 0
movs r1, 0
_0803C708:
ldr r0, [r4]
adds r0, 0x78
adds r0, r2
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x36
ble _0803C708
ldr r0, [r3]
adds r0, 0x40
movs r1, 0
strb r1, [r0]
ldr r0, [r3]
adds r0, 0xB0
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803C72C: .4byte gUnknown_203B400
thumb_func_end sub_803C6D0
thumb_func_start sub_803C730
sub_803C730:
push {r4,r5,lr}
ldr r0, _0803C750
ldr r1, [r0]
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, [r1, 0x34]
cmp r0, 0xF
bls _0803C744
b _0803C848
_0803C744:
lsls r0, 2
ldr r1, _0803C754
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0803C750: .4byte gUnknown_203B400
_0803C754: .4byte _0803C758
.align 2, 0
_0803C758:
.4byte _0803C798
.4byte _0803C79E
.4byte _0803C7A4
.4byte _0803C7AA
.4byte _0803C7B0
.4byte _0803C7B6
.4byte _0803C7BC
.4byte _0803C7C2
.4byte _0803C7C8
.4byte _0803C7CE
.4byte _0803C7D4
.4byte _0803C7DA
.4byte _0803C7E0
.4byte _0803C7E6
.4byte _0803C7EC
.4byte _0803C7F2
_0803C798:
bl sub_803C870
b _0803C848
_0803C79E:
bl sub_803C908
b _0803C848
_0803C7A4:
bl sub_803C920
b _0803C848
_0803C7AA:
bl sub_803C98C
b _0803C848
_0803C7B0:
bl sub_803C9D8
b _0803C848
_0803C7B6:
bl sub_803CA54
b _0803C848
_0803C7BC:
bl sub_803CA8C
b _0803C848
_0803C7C2:
bl sub_803CAAC
b _0803C848
_0803C7C8:
bl sub_803CAD4
b _0803C848
_0803C7CE:
bl sub_803CAF4
b _0803C848
_0803C7D4:
bl sub_803CB14
b _0803C848
_0803C7DA:
bl sub_803CB5C
b _0803C848
_0803C7E0:
bl sub_803CB7C
b _0803C848
_0803C7E6:
bl sub_803CBB0
b _0803C848
_0803C7EC:
bl sub_803CBE4
b _0803C848
_0803C7F2:
bl Random
ldr r4, _0803C844
ldr r1, [r4]
ldr r1, [r1]
adds r5, r0, 0
muls r5, r1
bl Random
bl sub_8094D28
movs r1, 0
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0x44
_0803C810:
ldm r2!, {r0}
adds r0, r1
adds r0, 0x3
muls r5, r0
adds r1, 0x1
cmp r1, 0xC
ble _0803C810
bl sub_8094E4C
adds r5, r0
movs r0, 0x1
negs r0, r0
cmp r5, r0
bne _0803C838
adds r4, r5, 0
_0803C82E:
bl sub_8094E4C
adds r5, r0
cmp r5, r4
beq _0803C82E
_0803C838:
adds r0, r5, 0
bl sub_8011C40
movs r0, 0x3
b _0803C84A
.align 2, 0
_0803C844: .4byte gUnknown_203B400
_0803C848:
movs r0, 0
_0803C84A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_803C730
thumb_func_start sub_803C850
sub_803C850:
push {r4,lr}
ldr r4, _0803C86C
ldr r0, [r4]
adds r0, 0x4
bl sub_8001044
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803C86C: .4byte gUnknown_203B400
thumb_func_end sub_803C850
thumb_func_start sub_803C870
sub_803C870:
push {r4-r6,lr}
sub sp, 0x14
ldr r5, _0803C8A4
ldr r1, [r5]
ldr r0, [r1, 0x38]
adds r0, 0x1
str r0, [r1, 0x38]
cmp r0, 0x8
ble _0803C8B4
ldr r0, _0803C8A8
ldr r3, _0803C8AC
movs r1, 0
str r1, [sp]
movs r4, 0x3
str r4, [sp, 0x4]
str r1, [sp, 0x8]
str r1, [sp, 0xC]
ldr r1, _0803C8B0
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0
bl sub_8014248
ldr r0, [r5]
str r4, [r0, 0x34]
b _0803C8F8
.align 2, 0
_0803C8A4: .4byte gUnknown_203B400
_0803C8A8: .4byte gGenderText
_0803C8AC: .4byte gUnknown_80F275C
_0803C8B0: .4byte 0x00000101
_0803C8B4:
adds r4, r5, 0
_0803C8B6:
movs r0, 0x37
bl RandomCapped
ldr r1, [r4]
str r0, [r1, 0x3C]
adds r1, 0x78
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x1
beq _0803C8B6
ldr r2, _0803C900
ldr r1, _0803C904
ldr r0, [r1]
ldr r0, [r0, 0x3C]
adds r0, r2
ldrb r4, [r0]
movs r3, 0
adds r6, r1, 0
movs r5, 0x1
_0803C8DC:
adds r0, r3, r2
ldrb r0, [r0]
cmp r0, r4
bne _0803C8EC
ldr r0, [r1]
adds r0, 0x78
adds r0, r3
strb r5, [r0]
_0803C8EC:
adds r3, 0x1
cmp r3, 0x36
ble _0803C8DC
ldr r1, [r6]
movs r0, 0x1
str r0, [r1, 0x34]
_0803C8F8:
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803C900: .4byte gNatureQuestionTable
_0803C904: .4byte gUnknown_203B400
thumb_func_end sub_803C870
thumb_func_start sub_803C908
sub_803C908:
push {lr}
bl sub_803CC04
ldr r0, _0803C91C
ldr r1, [r0]
movs r0, 0x2
str r0, [r1, 0x34]
pop {r0}
bx r0
.align 2, 0
_0803C91C: .4byte gUnknown_203B400
thumb_func_end sub_803C908
thumb_func_start sub_803C920
sub_803C920:
push {r4-r6,lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803C97C
ldr r3, [sp]
cmp r3, 0x63
bne _0803C944
ldr r0, _0803C940
ldr r1, [r0]
movs r0, 0x37
str r0, [r1, 0x3C]
movs r0, 0x1
b _0803C97A
.align 2, 0
_0803C940: .4byte gUnknown_203B400
_0803C944:
ldr r1, _0803C984
ldr r2, _0803C988
ldr r0, [r2]
ldr r0, [r0, 0x3C]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
ldr r4, [r0, 0x8]
lsls r0, r3, 4
adds r4, r0
movs r3, 0
adds r6, r2, 0
adds r5, r6, 0
_0803C95E:
ldr r1, [r5]
lsls r0, r3, 2
adds r1, 0x44
adds r1, r0
adds r0, r4, r3
ldrb r2, [r0]
ldr r0, [r1]
adds r0, r2
str r0, [r1]
adds r3, 0x1
cmp r3, 0xC
ble _0803C95E
ldr r1, [r6]
movs r0, 0
_0803C97A:
str r0, [r1, 0x34]
_0803C97C:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803C984: .4byte gPersonalityQuestionPointerTable
_0803C988: .4byte gUnknown_203B400
thumb_func_end sub_803C920
thumb_func_start sub_803C98C
sub_803C98C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803C9CA
ldr r1, [sp]
cmp r1, 0
bne _0803C9AC
ldr r0, _0803C9A8
ldr r0, [r0]
adds r0, 0xB0
b _0803C9B4
.align 2, 0
_0803C9A8: .4byte gUnknown_203B400
_0803C9AC:
ldr r0, _0803C9D0
ldr r0, [r0]
adds r0, 0xB0
movs r1, 0x1
_0803C9B4:
str r1, [r0]
ldr r0, _0803C9D4
ldr r0, [r0]
strb r1, [r0, 0xB]
movs r0, 0
bl sub_8099690
ldr r0, _0803C9D0
ldr r1, [r0]
movs r0, 0x4
str r0, [r1, 0x34]
_0803C9CA:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0803C9D0: .4byte gUnknown_203B400
_0803C9D4: .4byte gUnknown_203B46C
thumb_func_end sub_803C98C
thumb_func_start sub_803C9D8
sub_803C9D8:
push {r4-r7,lr}
movs r0, 0xD
bl RandomCapped
ldr r2, _0803CA4C
ldr r1, [r2]
adds r1, 0x40
strb r0, [r1]
ldr r0, [r2]
adds r0, 0x40
ldrb r3, [r0]
adds r7, r2, 0
movs r5, 0xB
_0803C9F2:
adds r3, 0x1
cmp r3, 0xC
ble _0803C9FA
movs r3, 0
_0803C9FA:
ldr r0, [r7]
lsls r2, r3, 2
adds r1, r0, 0
adds r1, 0x44
adds r2, r1, r2
adds r4, r0, 0
adds r4, 0x40
ldrb r0, [r4]
lsls r0, 2
adds r1, r0
ldr r2, [r2]
ldr r0, [r1]
ldr r6, _0803CA4C
cmp r2, r0
ble _0803CA1A
strb r3, [r4]
_0803CA1A:
subs r5, 0x1
cmp r5, 0
bge _0803C9F2
ldr r3, [r6]
ldr r2, _0803CA50
adds r0, r3, 0
adds r0, 0xB0
ldr r1, [r0]
lsls r1, 1
subs r0, 0x70
ldrb r0, [r0]
lsls r0, 2
adds r1, r0
adds r1, r2
ldrh r0, [r1]
strh r0, [r3, 0x8]
bl sub_803CC40
ldr r1, [r6]
movs r0, 0x5
str r0, [r1, 0x34]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803CA4C: .4byte gUnknown_203B400
_0803CA50: .4byte gStarters
thumb_func_end sub_803C9D8
thumb_func_start sub_803CA54
sub_803CA54:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803CA7A
ldr r0, _0803CA80
ldr r3, _0803CA84
movs r1, 0
movs r2, 0
bl sub_80141B4
bl sub_803CC80
ldr r0, _0803CA88
ldr r1, [r0]
movs r0, 0x6
str r0, [r1, 0x34]
_0803CA7A:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0803CA80: .4byte gStarterReveal
_0803CA84: .4byte 0x00000101
_0803CA88: .4byte gUnknown_203B400
thumb_func_end sub_803CA54
thumb_func_start sub_803CA8C
sub_803CA8C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803CAA2
ldr r0, _0803CAA8
ldr r1, [r0]
movs r0, 0x7
str r0, [r1, 0x34]
_0803CAA2:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0803CAA8: .4byte gUnknown_203B400
thumb_func_end sub_803CA8C
thumb_func_start sub_803CAAC
sub_803CAAC:
push {lr}
ldr r0, _0803CAC8
ldr r3, _0803CACC
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r0, _0803CAD0
ldr r1, [r0]
movs r0, 0x8
str r0, [r1, 0x34]
pop {r0}
bx r0
.align 2, 0
_0803CAC8: .4byte gUnknown_80F27DC
_0803CACC: .4byte 0x00000301
_0803CAD0: .4byte gUnknown_203B400
thumb_func_end sub_803CAAC
thumb_func_start sub_803CAD4
sub_803CAD4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803CAEA
ldr r0, _0803CAF0
ldr r1, [r0]
movs r0, 0x9
str r0, [r1, 0x34]
_0803CAEA:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0803CAF0: .4byte gUnknown_203B400
thumb_func_end sub_803CAD4
thumb_func_start sub_803CAF4
sub_803CAF4:
push {r4,lr}
ldr r4, _0803CB10
ldr r0, [r4]
movs r1, 0x8
ldrsh r0, [r0, r1]
bl sub_803CD08
ldr r1, [r4]
movs r0, 0xA
str r0, [r1, 0x34]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803CB10: .4byte gUnknown_203B400
thumb_func_end sub_803CAF4
thumb_func_start sub_803CB14
sub_803CB14:
push {r4,r5,lr}
bl sub_803CDC0
lsls r0, 16
lsrs r5, r0, 16
ldr r0, _0803CB4C
cmp r5, r0
beq _0803CB46
subs r0, 0x1
cmp r5, r0
beq _0803CB46
bl sub_803CE6C
ldr r4, _0803CB50
ldr r0, [r4]
strh r5, [r0, 0xA]
ldr r0, _0803CB54
ldr r3, _0803CB58
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r1, [r4]
movs r0, 0xB
str r0, [r1, 0x34]
_0803CB46:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803CB4C: .4byte 0x0000ffff
_0803CB50: .4byte gUnknown_203B400
_0803CB54: .4byte gUnknown_80F286C
_0803CB58: .4byte 0x00000301
thumb_func_end sub_803CB14
thumb_func_start sub_803CB5C
sub_803CB5C:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803CB72
ldr r0, _0803CB78
ldr r1, [r0]
movs r0, 0xC
str r0, [r1, 0x34]
_0803CB72:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0803CB78: .4byte gUnknown_203B400
thumb_func_end sub_803CB5C
thumb_func_start sub_803CB7C
sub_803CB7C:
push {r4,r5,lr}
ldr r4, _0803CBAC
ldr r0, [r4]
adds r5, r0, 0
adds r5, 0x20
movs r1, 0xA
ldrsh r0, [r0, r1]
bl sub_808D994
adds r1, r0, 0
adds r0, r5, 0
bl sub_80922F4
ldr r1, [r4]
adds r1, 0x20
movs r0, 0x3
bl sub_801602C
ldr r1, [r4]
movs r0, 0xD
str r0, [r1, 0x34]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803CBAC: .4byte gUnknown_203B400
thumb_func_end sub_803CB7C
thumb_func_start sub_803CBB0
sub_803CBB0:
push {lr}
bl sub_8016080
cmp r0, 0
beq _0803CBD2
bl sub_80160D8
ldr r0, _0803CBD8
ldr r3, _0803CBDC
movs r1, 0
movs r2, 0
bl sub_80141B4
ldr r0, _0803CBE0
ldr r1, [r0]
movs r0, 0xE
str r0, [r1, 0x34]
_0803CBD2:
pop {r0}
bx r0
.align 2, 0
_0803CBD8: .4byte gUnknown_80F2898
_0803CBDC: .4byte 0x00000301
_0803CBE0: .4byte gUnknown_203B400
thumb_func_end sub_803CBB0
thumb_func_start sub_803CBE4
sub_803CBE4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0803CBFA
ldr r0, _0803CC00
ldr r1, [r0]
movs r0, 0xF
str r0, [r1, 0x34]
_0803CBFA:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0803CC00: .4byte gUnknown_203B400
thumb_func_end sub_803CBE4
thumb_func_start sub_803CC04
sub_803CC04:
push {lr}
sub sp, 0x14
ldr r1, _0803CC38
ldr r0, _0803CC3C
ldr r0, [r0]
ldr r0, [r0, 0x3C]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r0, [r1]
ldr r3, [r1, 0x4]
movs r2, 0
str r2, [sp]
movs r1, 0x3
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r2, [sp, 0xC]
adds r1, 0xFE
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
add sp, 0x14
pop {r0}
bx r0
.align 2, 0
_0803CC38: .4byte gPersonalityQuestionPointerTable
_0803CC3C: .4byte gUnknown_203B400
thumb_func_end sub_803CC04
thumb_func_start sub_803CC40
sub_803CC40:
push {r4,lr}
ldr r0, _0803CC70
ldr r4, _0803CC74
ldr r1, [r4]
movs r2, 0x8
ldrsh r1, [r1, r2]
bl sub_808D8BC
ldr r1, _0803CC78
ldr r0, [r4]
adds r0, 0x40
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
ldr r3, _0803CC7C
movs r1, 0
movs r2, 0
bl sub_80141B4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803CC70: .4byte gUnknown_202DF98
_0803CC74: .4byte gUnknown_203B400
_0803CC78: .4byte gPersonalityTypeDescriptionTable
_0803CC7C: .4byte 0x00000101
thumb_func_end sub_803CC40
thumb_func_start sub_803CC80
sub_803CC80:
push {r4-r7,lr}
sub sp, 0x60
ldr r0, _0803CD00
ldr r0, [r0]
movs r1, 0x8
ldrsh r4, [r0, r1]
mov r0, sp
bl sub_8006518
add r1, sp, 0x18
ldr r0, _0803CD04
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
mov r0, sp
movs r1, 0x1
movs r2, 0
bl sub_800641C
movs r0, 0x1
bl sub_8008C54
movs r0, 0x1
bl sub_80073B8
adds r0, r4, 0
bl sub_808DDD0
adds r5, r0, 0
ldr r0, [r5, 0x4]
ldr r6, [r0, 0xC]
movs r4, 0
movs r7, 0x8
_0803CCC8:
adds r0, r4, 0
adds r0, 0xE0
ldr r1, [r5, 0x4]
adds r1, r7
lsls r2, r4, 2
ldr r1, [r1]
adds r1, r2
bl SetBGPaletteBufferColorArray
adds r4, 0x1
cmp r4, 0xF
ble _0803CCC8
movs r0, 0x1
adds r1, r6, 0
movs r2, 0xE
bl sub_800836C
adds r0, r5, 0
bl CloseFile
movs r0, 0x1
bl sub_80073E0
add sp, 0x60
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803CD00: .4byte gUnknown_203B400
_0803CD04: .4byte gUnknown_80F4244
thumb_func_end sub_803CC80
thumb_func_start sub_803CD08
sub_803CD08:
push {r4-r7,lr}
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
bl sub_803CEAC
ldr r5, _0803CDB0
ldr r0, [r5]
movs r3, 0
movs r1, 0
strh r4, [r0]
str r1, [r0, 0x4C]
adds r1, r0, 0
adds r1, 0x54
str r1, [r0, 0x50]
ldr r0, _0803CDB4
ldm r0!, {r2,r4,r6}
stm r1!, {r2,r4,r6}
ldm r0!, {r2,r4,r7}
stm r1!, {r2,r4,r7}
ldr r1, [r5]
adds r1, 0x6C
ldr r0, _0803CDB8
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r1, [r5]
ldr r2, _0803CDBC
adds r1, 0x84
adds r0, r2, 0
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldm r0!, {r4,r6,r7}
stm r1!, {r4,r6,r7}
ldr r0, [r5]
adds r0, 0x9C
ldm r2!, {r1,r4,r6}
stm r0!, {r1,r4,r6}
ldm r2!, {r1,r4,r7}
stm r0!, {r1,r4,r7}
ldr r0, [r5]
ldr r1, [r0, 0x50]
adds r0, 0xB4
str r0, [r1, 0x14]
movs r1, 0x1
strb r1, [r0]
ldr r0, [r5]
adds r0, 0xB5
strb r3, [r0]
ldr r0, [r5]
adds r0, 0xB6
movs r1, 0x6
strb r1, [r0]
ldr r0, [r5]
adds r0, 0xB7
strb r3, [r0]
bl sub_8004914
ldr r0, [r5]
adds r0, 0x54
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x18
bl sub_803D030
adds r1, r0, 0
ldr r0, [r5]
ldr r3, [r0, 0x4C]
adds r0, r4, 0
movs r2, 0xA
bl sub_8013818
bl sub_803CEF0
bl sub_803CFC0
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803CDB0: .4byte gUnknown_203B404
_0803CDB4: .4byte gUnknown_80F4290
_0803CDB8: .4byte gUnknown_80F42A8
_0803CDBC: .4byte gUnknown_80F4278
thumb_func_end sub_803CD08
thumb_func_start sub_803CDC0
sub_803CDC0:
push {r4,r5,lr}
ldr r4, _0803CDF0
ldr r1, [r4]
movs r0, 0x30
ldrsh r5, [r1, r0]
movs r0, 0
strb r0, [r1, 0x16]
ldr r0, [r4]
adds r0, 0x18
bl GetKeyPress
cmp r0, 0x1
bne _0803CDF4
movs r0, 0
bl sub_80119D4
ldr r0, [r4]
movs r2, 0x30
ldrsh r1, [r0, r2]
lsls r1, 1
adds r0, 0x2
adds r0, r1
ldrh r0, [r0]
b _0803CE2A
.align 2, 0
_0803CDF0: .4byte gUnknown_203B404
_0803CDF4:
ldr r0, [r4]
adds r0, 0x18
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
beq _0803CE08
bl sub_803CEF0
_0803CE08:
ldr r0, [r4]
movs r1, 0x30
ldrsh r0, [r0, r1]
cmp r5, r0
beq _0803CE16
bl sub_803CFC0
_0803CE16:
ldr r0, [r4]
ldrb r0, [r0, 0x16]
cmp r0, 0
bne _0803CE28
ldr r0, _0803CE24
b _0803CE2A
.align 2, 0
_0803CE24: .4byte 0x0000ffff
_0803CE28:
ldr r0, _0803CE30
_0803CE2A:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0803CE30: .4byte 0x0000fffe
thumb_func_end sub_803CDC0
thumb_func_start sub_803CE34
sub_803CE34:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_803D030
adds r1, r0, 0
ldr r5, _0803CE68
ldr r0, [r5]
strh r1, [r0, 0x3A]
adds r0, 0x18
bl sub_8013984
bl sub_803CEF0
bl sub_803CFC0
cmp r4, 0
beq _0803CE62
ldr r0, [r5]
adds r0, 0x18
bl AddMenuCursorSprite
_0803CE62:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803CE68: .4byte gUnknown_203B404
thumb_func_end sub_803CE34
thumb_func_start sub_803CE6C
sub_803CE6C:
push {r4,r5,lr}
ldr r4, _0803CEA4
ldr r1, [r4]
ldr r2, [r1, 0x4C]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x54
ldr r0, _0803CEA8
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl sub_8004914
ldr r0, [r4]
adds r0, 0x54
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_803CECC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803CEA4: .4byte gUnknown_203B404
_0803CEA8: .4byte gUnknown_80F4278
thumb_func_end sub_803CE6C
thumb_func_start sub_803CEAC
sub_803CEAC:
push {r4,lr}
ldr r4, _0803CEC4
movs r0, 0xB8
movs r1, 0x8
bl MemoryAlloc
str r0, [r4]
bl nullsub_135
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803CEC4: .4byte gUnknown_203B404
thumb_func_end sub_803CEAC
thumb_func_start nullsub_135
nullsub_135:
bx lr
thumb_func_end nullsub_135
thumb_func_start sub_803CECC
sub_803CECC:
push {r4,lr}
ldr r4, _0803CEEC
ldr r0, [r4]
cmp r0, 0
beq _0803CEE4
bl nullsub_135
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0803CEE4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803CEEC: .4byte gUnknown_203B404
thumb_func_end sub_803CECC
thumb_func_start sub_803CEF0
sub_803CEF0:
push {r4-r6,lr}
sub sp, 0x4
ldr r6, _0803CF60
ldr r0, [r6]
movs r1, 0x32
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r6]
ldr r3, [r2, 0x4C]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x62
movs r4, 0
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x4C]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x64
strh r3, [r2]
bl sub_8004914
ldr r0, [r6]
adds r0, 0x54
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r6]
ldr r0, [r0, 0x4C]
bl sub_8008C54
ldr r0, [r6]
ldr r0, [r0, 0x4C]
bl sub_80073B8
ldr r2, _0803CF64
ldr r0, [r6]
ldr r3, [r0, 0x4C]
str r4, [sp]
movs r0, 0xC
movs r1, 0
bl xxx_call_draw_string
movs r5, 0
b _0803CF98
.align 2, 0
_0803CF60: .4byte gUnknown_203B404
_0803CF64: .4byte gUnknown_80F42C0
_0803CF68:
ldr r0, [r6]
adds r0, 0x18
adds r1, r5, 0
bl sub_8013800
adds r4, r0, 0
ldr r0, [r6]
lsls r1, r5, 1
adds r0, 0x2
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_808D994
adds r2, r0, 0
ldr r0, [r6]
ldr r3, [r0, 0x4C]
movs r0, 0
str r0, [sp]
movs r0, 0x8
adds r1, r4, 0
bl xxx_call_draw_string
adds r5, 0x1
_0803CF98:
ldr r0, [r6]
movs r1, 0x32
ldrsh r0, [r0, r1]
cmp r5, r0
blt _0803CF68
ldr r4, _0803CFBC
ldr r0, [r4]
ldr r0, [r0, 0x4C]
bl sub_80073E0
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x16]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803CFBC: .4byte gUnknown_203B404
thumb_func_end sub_803CEF0
thumb_func_start sub_803CFC0
sub_803CFC0:
push {r4-r7,lr}
ldr r0, _0803D02C
ldr r0, [r0]
movs r2, 0x30
ldrsh r1, [r0, r2]
lsls r1, 1
adds r0, 0x2
adds r0, r1
movs r1, 0
ldrsh r4, [r0, r1]
movs r0, 0x1
bl sub_8008C54
movs r0, 0x1
bl sub_80073B8
adds r0, r4, 0
bl sub_808DDD0
adds r5, r0, 0
ldr r0, [r5, 0x4]
ldr r6, [r0, 0x4]
movs r4, 0
movs r7, 0
_0803CFF0:
adds r0, r4, 0
adds r0, 0xE0
ldr r1, [r5, 0x4]
adds r1, r7
lsls r2, r4, 2
ldr r1, [r1]
adds r1, r2
bl SetBGPaletteBufferColorArray
adds r4, 0x1
cmp r4, 0xF
ble _0803CFF0
movs r0, 0x1
adds r1, r6, 0
movs r2, 0xE
bl sub_800836C
adds r0, r5, 0
bl CloseFile
movs r0, 0x1
bl sub_80073E0
ldr r0, _0803D02C
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x16]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803D02C: .4byte gUnknown_203B404
thumb_func_end sub_803CFC0
thumb_func_start sub_803D030
sub_803D030:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
movs r0, 0
mov r8, r0
ldr r4, _0803D0D0
ldr r0, [r4]
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0
bl sub_808DC68
mov r1, sp
strb r0, [r1]
ldr r0, [r4]
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0x1
bl sub_808DC68
mov r1, sp
strb r0, [r1, 0x1]
movs r7, 0
add r6, sp, 0x4
mov r5, sp
_0803D064:
ldr r0, _0803D0D4
lsls r1, r7, 1
adds r1, r0
movs r0, 0
ldrsh r4, [r1, r0]
adds r0, r4, 0
movs r1, 0
bl sub_808DC68
strb r0, [r6]
adds r0, r4, 0
movs r1, 0x1
bl sub_808DC68
adds r2, r0, 0
strb r2, [r6, 0x1]
ldrb r1, [r6]
cmp r1, 0
beq _0803D096
ldrb r0, [r5]
cmp r1, r0
beq _0803D0BC
ldrb r0, [r5, 0x1]
cmp r1, r0
beq _0803D0BC
_0803D096:
lsls r0, r2, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0803D0AA
ldrb r2, [r5]
cmp r1, r2
beq _0803D0BC
ldrb r0, [r5, 0x1]
cmp r1, r0
beq _0803D0BC
_0803D0AA:
ldr r0, _0803D0D0
ldr r0, [r0]
mov r2, r8
lsls r1, r2, 1
adds r0, 0x2
adds r0, r1
strh r4, [r0]
movs r0, 0x1
add r8, r0
_0803D0BC:
adds r7, 0x1
cmp r7, 0x9
ble _0803D064
mov r0, r8
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803D0D0: .4byte gUnknown_203B404
_0803D0D4: .4byte gPartners
thumb_func_end sub_803D030
.align 2, 0 @ Don't pad with nop.