pmd-red/asm/code_8012A18.s
Dennis 92a8e55fdd
Decompiled some item related functions (#42)
* decompile sub_8091290

* decompile sub_80912c8

* rename functions / struct field

* more names

* decompile 80913A0

* decompile GetItemMove

* decompile sub_80913E0

* rename function

* decompile CanSellItem function

* rename inventory struct

* add some item check functions

* fix renaming stuff

* this file shouldnt have been here

* forgot merge conflict

* decompile more item functions

* rename some stuff

* fix HM/TM naming

* Update src/code_801AFA4.c

Use enum value for USED_TM

* Fix incorrect value

Co-authored-by: Seth Barberee <seth.barberee@gmail.com>
2021-07-10 11:23:20 -05:00

6770 lines
104 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 ReturnIntFromChar2
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 ReturnIntFromChar2
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 xxx_format_and_draw
_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 ExpandPlaceholdersBuffer
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 xxx_format_and_draw
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
b _08013094
_08013070:
movs r0, 0
bl PlayMenuSoundEffect
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 PlayMenuSoundEffect
_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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
_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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
movs r0, 0x2
b _08013C62
_08013C56:
movs r0, 0
bl PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 xxx_call_start_bg_music
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 ExpandPlaceholdersBuffer
_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 ExpandPlaceholdersBuffer
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 ExpandPlaceholdersBuffer
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 xxx_format_and_draw
xxx_format_and_draw:
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 xxx_format_and_draw
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 PlayMenuSoundEffect
b _080155E2
.align 2, 0
_080155B4: .4byte gUnknown_203B1FC
_080155B8:
movs r0, 0x2
bl PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 PlayMenuSoundEffect
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 ExpandPlaceholdersBuffer
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 ExpandPlaceholdersBuffer
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 ExpandPlaceholdersBuffer
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 ExpandPlaceholdersBuffer
_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 ReturnIntFromChar2
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
.align 2, 0 @ Don't pad with nop.