pmd-red/asm/code_8012A18.s
2021-01-22 10:39:42 -06:00

21757 lines
333 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
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 GetCharacter
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 GetCharacter
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 UnpressButtons
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 gRealInputs
_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 gRealInputs
_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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 GetCharacter
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 GetCharacter
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 GetDialogueSpriteDataPtr
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 gFelicityDialogue
_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 CreateFelicityBankShopMenu
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 gFelicityDialogue
_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 gFelicityDeposit
_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 gFelicityWithdraw
_08016BB4: .4byte gUnknown_203B204
thumb_func_end sub_8016B48
thumb_func_start CreateFelicityBankShopMenu
CreateFelicityBankShopMenu:
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 gFelicityMoney
_08016C38: .4byte gUnknown_203B460
_08016C3C: .4byte gFelicitySavings
thumb_func_end CreateFelicityBankShopMenu
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 ResetUnusedInputStruct
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 GetDialogueSpriteDataPtr
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 GetDialogueSpriteDataPtr
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 ResetUnusedInputStruct
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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 gKecleonShopDialogue
_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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 gTeamToolboxA
_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 gTeamToolboxB
_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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 gKangaskhanTrashToolboxItem
_0801BB58: .4byte gKangaskhanTrashReceivedItem
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 gKangaskhanStorage
_0801BBF4: .4byte gKangaskhanTrash
_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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 ResetUnusedInputStruct
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 gMenuItems
_0801D55C: .4byte gMenuTeam
_0801D560: .4byte gMenuJobList
_0801D564: .4byte gMenuOthers
_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 gMenuItems
_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
.align 2, 0 @ Don't pad with nop.