pmd-red/asm/code_8098BDC.s
mid-kid 99a038284b Translate all .include to #include
This decision was made to reduce the complexity of using .include whilst
juggling with tools/scaninc and tools/preproc:
- tools/scaninc doesn't apply the proper search rules for .include (it
  assumes #include behavior). In particular, it doesn't consider paths
  starting from $PWD, and doesn't scan the included files as a result.
- .include had to be processed before #include by preproc in many cases,
  as code was being included that had to be preprocessed by CPP (think
  of #define). This contradicts standard GCC behavior.

To make include paths consistent across the asm/ data/ and src/
directories, the following files were moved:
- constants/ → include/asm/constants/
- asm/macros/ → include/asm/macros/
- asm/macros.inc → include/asm/macros.inc
- include/macros/m4a.inc → include/asm/macros/m4a.inc

As part of the necessary changes for this to work, the scaninc method in
the makefile was improved to generate .d files that don't choke when
files are missing.
2021-12-20 16:29:12 +01:00

8356 lines
125 KiB
ArmAsm

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8098FCC
sub_8098FCC:
push {r4,lr}
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r1, r0, 16
adds r2, r1, 0
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809909E
cmp r1, 0x51
bne _08098FF6
movs r0, 0
movs r1, 0x14
bl sub_8001658
lsls r0, 16
asrs r0, 16
b _08098FF8
_08098FF6:
adds r0, r2, 0
_08098FF8:
bl sub_80A2608
adds r4, r0, 0
ldr r0, _0809900C
ldr r0, [r0]
cmp r0, 0x9
bne _08099010
movs r1, 0x2
ldrsh r0, [r4, r1]
b _080990B2
.align 2, 0
_0809900C: .4byte gUnknown_20398B4
_08099010:
ldrh r0, [r4, 0x4]
subs r0, 0xB2
lsls r0, 16
asrs r0, 16
cmp r0, 0x17
bhi _080990AE
lsls r0, 2
ldr r1, _08099028
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08099028: .4byte _0809902C
.align 2, 0
_0809902C:
.4byte _0809908C
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990AE
.4byte _080990A2
.4byte _080990AE
.4byte _080990A2
.4byte _080990AE
.4byte _080990AE
.4byte _080990A2
.4byte _080990AE
.4byte _080990AE
.4byte _080990A2
_0809908C:
movs r2, 0x1
negs r2, r2
movs r0, 0x3
movs r1, 0x2
bl sub_8001D44
lsls r0, 24
cmp r0, 0
beq _080990AE
_0809909E:
movs r0, 0xC
b _080990B2
_080990A2:
movs r0, 0x5
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809909E
_080990AE:
movs r1, 0x4
ldrsh r0, [r4, r1]
_080990B2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8098FCC
thumb_func_start sub_80990B8
sub_80990B8:
push {lr}
movs r0, 0xB
bl sub_8098FCC
lsls r0, 16
asrs r2, r0, 16
movs r0, 0x1
negs r0, r0
cmp r2, r0
bne _080990D2
bl sub_8098FB4
b _080990E4
_080990D2:
ldr r1, _080990E8
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x2
ldrsh r0, [r0, r1]
bl sub_80A2B18
_080990E4:
pop {r1}
bx r1
.align 2, 0
_080990E8: .4byte gUnknown_811BAF4
thumb_func_end sub_80990B8
thumb_func_start sub_80990EC
sub_80990EC:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x80
adds r7, r0, 0
lsls r1, 16
asrs r4, r1, 16
adds r0, r4, 0
bl sub_80A2608
mov r8, r0
ldrb r0, [r0, 0xC]
movs r5, 0
strb r0, [r7]
movs r0, 0x1
strb r0, [r7, 0x1]
strb r5, [r7, 0xC]
adds r0, r4, 0
bl sub_80A2750
lsls r0, 16
asrs r6, r0, 16
cmp r6, 0x2
beq _080991C8
cmp r6, 0x2
bgt _08099126
cmp r6, 0x1
beq _0809912C
b _080991CA
_08099126:
cmp r6, 0x4
beq _080991C4
b _080991CA
_0809912C:
movs r1, 0
strb r5, [r7, 0xB]
adds r0, r4, 0
subs r0, 0x25
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bhi _0809913E
movs r1, 0x1
_0809913E:
cmp r1, 0
beq _080991CA
strb r6, [r7, 0xC]
mov r0, sp
movs r1, 0x5B
bl sub_80A8EC0
add r4, sp, 0x18
adds r0, r4, 0
mov r1, sp
movs r2, 0xA
bl BoundedCopyStringtoBuffer
add r5, sp, 0x30
str r4, [sp, 0x58]
add r1, sp, 0x5C
movs r2, 0
movs r0, 0x5E
strh r0, [r1]
mov r0, sp
adds r0, 0x5E
strb r2, [r0]
add r0, sp, 0x60
movs r1, 0x47
strb r1, [r0]
strb r2, [r0, 0x1]
add r1, sp, 0x64
movs r0, 0x82
lsls r0, 1
strh r0, [r1]
movs r0, 0xE0
strh r0, [r1, 0x2]
movs r0, 0xAC
strh r0, [r1, 0x4]
movs r0, 0xBE
strh r0, [r1, 0x6]
add r1, sp, 0x6C
movs r0, 0x50
strh r0, [r1]
mov r0, sp
adds r0, 0x6E
movs r2, 0xF
strh r2, [r0]
add r0, sp, 0x70
strh r6, [r0]
adds r0, 0x2
movs r1, 0x19
strh r1, [r0]
strh r1, [r0, 0x2]
adds r0, 0x4
strh r2, [r0]
strh r2, [r0, 0x2]
ldr r0, _080991C0
str r0, [sp, 0x7C]
add r1, sp, 0x58
adds r0, r5, 0
movs r2, 0x28
bl memcpy
adds r0, r7, 0
adds r0, 0x18
adds r1, r5, 0
bl sub_808D144
b _080991CA
.align 2, 0
_080991C0: .4byte 0x000061a8
_080991C4:
strb r5, [r7, 0xB]
b _080991CA
_080991C8:
strb r6, [r7, 0xB]
_080991CA:
movs r0, 0
strb r0, [r7, 0x4]
strb r0, [r7, 0xD]
mov r1, r8
ldrb r0, [r1, 0x11]
add sp, 0x80
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80990EC
thumb_func_start sub_80991E0
sub_80991E0:
push {lr}
adds r2, r0, 0
ldr r3, _08099204
ldrh r0, [r3]
strh r0, [r1]
ldr r0, _08099208
ldrb r0, [r0]
cmp r0, 0
bne _0809920C
movs r0, 0
ldrsh r1, [r3, r0]
adds r0, r2, 0
bl sub_80990EC
lsls r0, 24
lsrs r0, 24
b _08099218
.align 2, 0
_08099204: .4byte gUnknown_20398C4
_08099208: .4byte gUnknown_203B49C
_0809920C:
ldr r1, _0809921C
adds r0, r2, 0
movs r2, 0x88
bl memcpy
movs r0, 0x1
_08099218:
pop {r1}
bx r1
.align 2, 0
_0809921C: .4byte gUnknown_20398C8
thumb_func_end sub_80991E0
thumb_func_start sub_8099220
sub_8099220:
push {lr}
adds r2, r0, 0
lsls r1, 16
asrs r3, r1, 16
cmp r2, 0
beq _08099258
ldr r1, _08099248
movs r0, 0x1
strb r0, [r1]
ldr r1, _0809924C
movs r0, 0
strb r0, [r1]
ldr r0, _08099250
strh r3, [r0]
ldr r0, _08099254
adds r1, r2, 0
movs r2, 0x88
bl memcpy
b _0809926A
.align 2, 0
_08099248: .4byte gUnknown_203B49C
_0809924C: .4byte gUnknown_203B49D
_08099250: .4byte gUnknown_20398C4
_08099254: .4byte gUnknown_20398C8
_08099258:
ldr r0, _08099270
strb r2, [r0]
ldr r0, _08099274
strb r2, [r0]
ldr r1, _08099278
movs r2, 0x1
negs r2, r2
adds r0, r2, 0
strh r0, [r1]
_0809926A:
pop {r0}
bx r0
.align 2, 0
_08099270: .4byte gUnknown_203B49C
_08099274: .4byte gUnknown_203B49D
_08099278: .4byte gUnknown_20398C4
thumb_func_end sub_8099220
thumb_func_start sub_809927C
sub_809927C:
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, _080992CC
movs r1, 0x1
strb r1, [r0]
ldr r0, _080992D0
strb r1, [r0]
ldr r1, _080992D4
movs r0, 0x50
strh r0, [r1]
ldr r4, _080992D8
strb r5, [r4]
movs r0, 0
movs r1, 0x13
movs r2, 0x50
bl sub_80018D8
ldrb r2, [r4]
movs r0, 0
movs r1, 0x14
bl sub_80018D8
ldr r4, _080992DC
adds r0, r4, 0
adds r1, r5, 0
bl sub_8095494
subs r4, 0x10
movs r1, 0
movs r0, 0x1
strb r0, [r4, 0xB]
strb r1, [r4, 0xC]
strb r1, [r4, 0x4]
strb r1, [r4, 0xD]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080992CC: .4byte gUnknown_203B49C
_080992D0: .4byte gUnknown_203B49D
_080992D4: .4byte gUnknown_20398C4
_080992D8: .4byte gUnknown_2039950
_080992DC: .4byte gUnknown_20398D8
thumb_func_end sub_809927C
thumb_func_start sub_80992E0
sub_80992E0:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r1, r0, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08099316
cmp r1, 0x50
beq _08099316
cmp r1, 0x51
beq _08099316
cmp r1, 0x52
beq _08099316
strh r1, [r4]
movs r0, 0
movs r1, 0x14
bl sub_8001658
strh r0, [r5]
movs r0, 0x1
b _08099322
_08099316:
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
strh r0, [r4]
strh r0, [r5]
movs r0, 0
_08099322:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80992E0
thumb_func_start sub_8099328
sub_8099328:
push {r4,lr}
adds r4, r0, 0
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r0, 16
cmp r0, 0x51
bne _08099358
movs r0, 0
movs r1, 0x14
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_80A2608
ldrb r0, [r0, 0xC]
cmp r0, 0x3E
bhi _08099358
strb r0, [r4]
movs r0, 0x1
b _0809935A
_08099358:
movs r0, 0
_0809935A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8099328
thumb_func_start sub_8099360
sub_8099360:
push {r4,lr}
adds r4, r0, 0
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r0, 16
cmp r0, 0x52
beq _08099378
movs r0, 0
b _0809938E
_08099378:
movs r0, 0
movs r1, 0x14
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_80A2608
ldrb r0, [r0, 0xC]
strb r0, [r4]
movs r0, 0x1
_0809938E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8099360
thumb_func_start sub_8099394
sub_8099394:
push {r4,lr}
adds r4, r0, 0
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r0, 16
cmp r0, 0x50
beq _080993AC
movs r0, 0
b _080993B8
_080993AC:
movs r0, 0
movs r1, 0x14
bl sub_8001658
strb r0, [r4]
movs r0, 0x1
_080993B8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8099394
thumb_func_start sub_80993C0
sub_80993C0:
push {lr}
lsls r0, 24
ldr r2, _080993D4
movs r1, 0
cmp r0, 0
bne _080993CE
movs r1, 0x1
_080993CE:
strb r1, [r2]
pop {r0}
bx r0
.align 2, 0
_080993D4: .4byte gUnknown_20398B8
thumb_func_end sub_80993C0
thumb_func_start sub_80993D8
sub_80993D8:
push {lr}
bl sub_80A4B38
pop {r0}
bx r0
thumb_func_end sub_80993D8
thumb_func_start sub_80993E4
sub_80993E4:
push {lr}
bl sub_80A4B54
pop {r0}
bx r0
thumb_func_end sub_80993E4
thumb_func_start sub_80993F0
sub_80993F0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
movs r0, 0
mov r10, r0
bl sub_801180C
movs r0, 0x10
bl sub_80118C4
ldr r1, _0809948C
ldr r2, _08099490
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
bl xxx_update_some_bg_tiles
movs r0, 0
movs r1, 0x14
bl sub_80095CC
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0
movs r1, 0x14
bl sub_8009408
bl sub_8099648
bl sub_809975C
bl sub_809D0AC
bl sub_8014144
movs r0, 0
movs r1, 0
bl sub_8005838
bl sub_80A4A7C
mov r7, sp
add r0, sp, 0x8
mov r8, r0
_08099454:
bl sub_801D9E4
lsls r0, 24
cmp r0, 0
beq _0809949C
mov r0, r10
bl sub_801DA58
_08099464:
movs r0, 0
movs r1, 0
bl sub_8005838
movs r0, 0
bl sub_8012A18
bl sub_801DA78
cmp r0, 0x2
beq _08099494
cmp r0, 0x3
bne _08099464
bl sub_801DAC0
lsls r0, 16
asrs r0, 16
mov r10, r0
b _080994A2
.align 2, 0
_0809948C: .4byte gUnknown_2026E4E
_08099490: .4byte 0x00000808
_08099494:
movs r1, 0x1
negs r1, r1
mov r10, r1
b _080994A2
_0809949C:
movs r2, 0x1
negs r2, r2
mov r10, r2
_080994A2:
bl sub_801DB0C
movs r0, 0x1
negs r0, r0
cmp r10, r0
bne _080994B0
b _08099624
_080994B0:
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl GroundMap_Reset
bl sub_809D0BC
mov r0, r10
bl GroundMap_Select
mov r0, sp
mov r1, r8
bl sub_80A579C
ldr r0, [r7, 0x4]
movs r1, 0xC0
lsls r1, 4
adds r0, r1
str r0, [r7, 0x4]
mov r2, r8
ldr r0, [r2, 0x4]
adds r0, r1
str r0, [r2, 0x4]
ldr r0, [sp]
ldr r1, _08099520
adds r0, r1
str r0, [sp]
ldr r0, [r7, 0x4]
adds r0, r1
str r0, [r7, 0x4]
ldr r0, [sp, 0x8]
movs r2, 0x80
lsls r2, 3
adds r0, r2
str r0, [sp, 0x8]
mov r0, r8
ldr r1, [r0, 0x4]
adds r1, r2
str r1, [r0, 0x4]
ldr r2, [sp, 0x8]
ldr r0, [sp]
subs r0, r2, r0
str r0, [sp, 0x20]
ldr r0, [r7, 0x4]
subs r0, r1, r0
str r0, [sp, 0x24]
movs r4, 0
movs r5, 0
movs r0, 0x4
bl sub_80999E8
mov r9, r5
b _08099604
.align 2, 0
_08099520: .4byte 0xfffffc00
_08099524:
ldr r0, _0809953C
ldrh r1, [r0, 0x2]
ldrh r6, [r0]
movs r0, 0x4
ands r1, r0
cmp r1, 0
beq _08099540
bl sub_80999FC
movs r1, 0x1
mov r9, r1
b _080995AE
.align 2, 0
_0809953C: .4byte gRealInputs
_08099540:
adds r0, r6, 0
bl sub_809CFE8
lsls r0, 24
asrs r1, r0, 24
movs r2, 0x1
negs r2, r2
cmp r1, r2
beq _0809959A
add r0, sp, 0x10
movs r2, 0x80
lsls r2, 1
bl sub_8002BB8
ldr r2, [sp, 0x10]
ldr r3, [sp, 0x14]
movs r0, 0x2
ands r6, r0
cmp r6, 0
beq _0809956A
movs r0, 0x4
_0809956A:
adds r1, r0, 0
muls r1, r2
adds r1, r4
adds r4, r1, 0
muls r0, r3
adds r5, r0
cmp r1, 0
bge _0809957E
movs r4, 0
b _08099588
_0809957E:
ldr r0, [sp, 0x20]
cmp r4, r0
blt _08099588
adds r4, r0, 0
subs r4, 0x1
_08099588:
cmp r5, 0
bge _08099590
movs r5, 0
b _0809959A
_08099590:
ldr r1, [sp, 0x24]
cmp r5, r1
blt _0809959A
adds r5, r1, 0
subs r5, 0x1
_0809959A:
ldr r0, [sp]
adds r0, r4
str r0, [sp, 0x18]
ldr r0, [r7, 0x4]
adds r0, r5
add r1, sp, 0x18
str r0, [r1, 0x4]
movs r0, 0
bl sub_809D158
_080995AE:
bl sub_809D25C
bl sub_80A59DC
bl xxx_draw_string_80144C4
movs r0, 0
movs r1, 0
bl sub_8005838
bl sub_80060EC
ldr r0, _08099620
ldr r0, [r0]
ldrb r0, [r0, 0xA]
bl nullsub_8
bl sub_8005180
bl sub_8099BE4
bl sub_8099744
bl sub_8011860
bl sub_800CB20
bl LoadBufferedInputs
bl nullsub_120
bl sub_80A5E70
bl xxx_call_update_bg_vram
bl CopySpritesToOam
bl sub_8005304
bl sub_8099750
bl sub_8009908
_08099604:
bl xxx_call_update_bg_sound_input
movs r0, 0
bl ResetSprites
mov r2, r9
cmp r2, 0
beq _08099524
bl sub_8099B94
lsls r0, 24
cmp r0, 0
bne _080995AE
b _08099454
.align 2, 0
_08099620: .4byte gUnknown_203B46C
_08099624:
movs r0, 0x10
bl sub_80118C4
bl sub_80A4AC4
bl sub_8099768
bl nullsub_103
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80993F0
thumb_func_start sub_8099648
sub_8099648:
push {lr}
bl sub_8003600
bl sub_809965C
pop {r0}
bx r0
thumb_func_end sub_8099648
thumb_func_start nullsub_103
nullsub_103:
bx lr
thumb_func_end nullsub_103
thumb_func_start sub_809965C
sub_809965C:
push {r4,lr}
movs r0, 0
bl sub_8099690
ldr r0, _08099688
ldr r1, _0809968C
bl OpenFileAndGetFileDataPtr
adds r4, r0, 0
movs r0, 0xF8
lsls r0, 1
ldr r1, [r4, 0x4]
movs r2, 0x10
bl sub_800388C
adds r0, r4, 0
bl CloseFile
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08099688: .4byte gUnknown_811601C
_0809968C: .4byte gSystemFileArchive
thumb_func_end sub_809965C
thumb_func_start sub_8099690
sub_8099690:
push {r4-r6,lr}
adds r4, r0, 0
ldr r0, _080996BC
ldr r1, _080996C0
bl OpenFileAndGetFileDataPtr
adds r6, r0, 0
cmp r4, 0x1
beq _080996CC
cmp r4, 0x2
beq _080996D4
ldr r0, _080996C4
ldr r0, [r0]
ldrb r0, [r0, 0xB]
ldr r4, _080996C8
cmp r0, 0
beq _080996D6
movs r0, 0x80
lsls r0, 1
adds r4, r0
b _080996D6
.align 2, 0
_080996BC: .4byte gUnknown_8116028
_080996C0: .4byte gSystemFileArchive
_080996C4: .4byte gUnknown_203B46C
_080996C8: .4byte gUnknown_202D078
_080996CC:
ldr r4, _080996D0
b _080996D6
.align 2, 0
_080996D0: .4byte gUnknown_202D1B8
_080996D4:
ldr r4, _08099704
_080996D6:
movs r0, 0xF0
adds r1, r4, 0
movs r2, 0x10
bl sub_800388C
adds r5, r4, 0
movs r4, 0
_080996E4:
adds r0, r4, 0
adds r0, 0xF0
adds r1, r5, 0
adds r5, 0x4
bl nullsub_5
adds r4, 0x1
cmp r4, 0xF
ble _080996E4
adds r0, r6, 0
bl CloseFile
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08099704: .4byte gUnknown_202D1F8
thumb_func_end sub_8099690
thumb_func_start sub_8099708
sub_8099708:
push {lr}
sub sp, 0x4
str r1, [sp]
lsls r0, 16
lsrs r0, 16
bl sub_8003810
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8099708
thumb_func_start sub_809971C
sub_809971C:
push {r4-r6,lr}
adds r6, r1, 0
lsls r0, 16
lsrs r5, r0, 16
cmp r2, 0
ble _0809973E
adds r4, r2, 0
_0809972A:
adds r0, r5, 0
adds r1, r0, 0x1
lsls r1, 16
lsrs r5, r1, 16
ldm r6!, {r1}
bl sub_8003810
subs r4, 0x1
cmp r4, 0
bne _0809972A
_0809973E:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_809971C
thumb_func_start sub_8099744
sub_8099744:
push {lr}
bl sub_80039B8
pop {r0}
bx r0
thumb_func_end sub_8099744
thumb_func_start sub_8099750
sub_8099750:
push {lr}
bl TransferBGPaletteBuffer
pop {r0}
bx r0
thumb_func_end sub_8099750
thumb_func_start sub_809975C
sub_809975C:
push {lr}
bl sub_809977C
pop {r0}
bx r0
thumb_func_end sub_809975C
thumb_func_start sub_8099768
sub_8099768:
push {lr}
bl sub_809977C
bl sub_8099744
bl sub_8099750
pop {r0}
bx r0
thumb_func_end sub_8099768
thumb_func_start sub_809977C
sub_809977C:
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r1, _080997DC
movs r0, 0
strb r0, [r1]
ldr r1, _080997E0
movs r0, 0
strh r0, [r1]
ldr r6, _080997E4
adds r0, r6, 0
bl sub_8099838
ldr r0, _080997E8
mov r8, r0
bl sub_8099838
ldr r4, _080997EC
adds r0, r4, 0
bl sub_8099838
subs r4, 0x8
movs r0, 0
str r0, [r4]
movs r5, 0x80
lsls r5, 1
strh r5, [r4, 0x14]
strh r0, [r6, 0xC]
bl sub_8099DD0
mov r0, r8
strh r5, [r0, 0xC]
adds r0, r5, 0
bl sub_8099E58
ldr r1, _080997F0
movs r2, 0
adds r0, r1, 0
adds r0, 0x40
_080997CA:
strh r2, [r0]
subs r0, 0x2
cmp r0, r1
bge _080997CA
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080997DC: .4byte gUnknown_2039990
_080997E0: .4byte gUnknown_2039992
_080997E4: .4byte gUnknown_2039958
_080997E8: .4byte gUnknown_2039968
_080997EC: .4byte gUnknown_2039980
_080997F0: .4byte gUnknown_2039998
thumb_func_end sub_809977C
thumb_func_start sub_80997F4
sub_80997F4:
push {lr}
lsls r0, 16
ldr r2, _08099818
lsrs r0, 15
adds r0, r2
strh r1, [r0]
ldr r0, _0809981C
bl sub_8099848
ldr r0, _08099820
bl sub_8099848
ldr r0, _08099824
bl sub_8099848
pop {r0}
bx r0
.align 2, 0
_08099818: .4byte gUnknown_2039998
_0809981C: .4byte gUnknown_2039958
_08099820: .4byte gUnknown_2039968
_08099824: .4byte gUnknown_2039980
thumb_func_end sub_80997F4
thumb_func_start sub_8099828
sub_8099828:
lsls r0, 16
ldr r1, _08099834
lsrs r0, 15
adds r0, r1
ldrh r0, [r0]
bx lr
.align 2, 0
_08099834: .4byte gUnknown_2039998
thumb_func_end sub_8099828
thumb_func_start sub_8099838
sub_8099838:
movs r1, 0x1
str r1, [r0]
movs r1, 0
strh r1, [r0, 0xC]
strh r1, [r0, 0x4]
strh r1, [r0, 0x6]
bx lr
thumb_func_end sub_8099838
thumb_func_start sub_8099848
sub_8099848:
push {lr}
adds r1, r0, 0
ldr r0, [r1]
cmp r0, 0
bne _08099856
movs r0, 0x1
str r0, [r1]
_08099856:
pop {r0}
bx r0
thumb_func_end sub_8099848
thumb_func_start sub_809985C
sub_809985C:
push {lr}
adds r2, r0, 0
cmp r1, 0
blt _08099872
cmp r1, 0
bne _08099874
movs r0, 0x80
lsls r0, 1
strh r0, [r2, 0xC]
movs r0, 0x1
b _08099876
_08099872:
movs r1, 0x1E
_08099874:
movs r0, 0x2
_08099876:
str r0, [r2]
strh r1, [r2, 0x4]
strh r1, [r2, 0x6]
pop {r0}
bx r0
thumb_func_end sub_809985C
thumb_func_start sub_8099880
sub_8099880:
push {lr}
adds r2, r0, 0
cmp r1, 0
blt _08099892
cmp r1, 0
bne _08099894
strh r1, [r2, 0xC]
movs r0, 0x1
b _08099896
_08099892:
movs r1, 0x1E
_08099894:
movs r0, 0x3
_08099896:
str r0, [r2]
strh r1, [r2, 0x4]
strh r1, [r2, 0x6]
pop {r0}
bx r0
thumb_func_end sub_8099880
thumb_func_start sub_80998A0
sub_80998A0:
push {r4,lr}
adds r4, r0, 0
lsls r2, 16
lsrs r2, 16
lsls r3, 16
lsrs r3, 16
cmp r1, 0
bge _080998B2
movs r1, 0x1E
_080998B2:
cmp r2, r3
bls _080998BE
movs r0, 0x5
str r0, [r4]
subs r0, r2, r3
b _080998D0
_080998BE:
cmp r2, r3
bcs _080998CA
movs r0, 0x4
str r0, [r4]
subs r0, r3, r2
b _080998D0
_080998CA:
movs r0, 0x1
str r0, [r4]
movs r0, 0
_080998D0:
strh r0, [r4, 0xA]
strh r1, [r4, 0x4]
strh r1, [r4, 0x6]
strh r2, [r4, 0xC]
strh r3, [r4, 0x8]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80998A0
thumb_func_start sub_80998E0
sub_80998E0:
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4]
cmp r0, 0x5
bhi _080999CA
lsls r0, 2
ldr r1, _080998F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080998F4: .4byte _080998F8
.align 2, 0
_080998F8:
.4byte _080999CA
.4byte _080999C2
.4byte _08099910
.4byte _08099946
.4byte _08099976
.4byte _0809999A
_08099910:
ldrh r0, [r4, 0x4]
subs r0, 0x1
strh r0, [r4, 0x4]
lsls r0, 16
cmp r0, 0
ble _08099940
movs r1, 0x4
ldrsh r0, [r4, r1]
lsls r0, 8
movs r2, 0x6
ldrsh r1, [r4, r2]
bl __divsi3
movs r2, 0x80
lsls r2, 1
adds r1, r2, 0
subs r1, r0
lsls r1, 16
lsrs r1, 16
ldrh r0, [r4, 0xC]
cmp r0, r1
bcs _080999C6
strh r1, [r4, 0xC]
b _080999C6
_08099940:
movs r0, 0x80
lsls r0, 1
b _080999C0
_08099946:
ldrh r0, [r4, 0x4]
subs r0, 0x1
movs r1, 0
strh r0, [r4, 0x4]
lsls r0, 16
cmp r0, 0
ble _08099970
movs r1, 0x4
ldrsh r0, [r4, r1]
lsls r0, 8
movs r2, 0x6
ldrsh r1, [r4, r2]
bl __divsi3
lsls r0, 16
lsrs r1, r0, 16
ldrh r0, [r4, 0xC]
cmp r0, r1
bls _080999C6
strh r1, [r4, 0xC]
b _080999C6
_08099970:
strh r1, [r4, 0xC]
str r1, [r4]
b _080999C6
_08099976:
ldrh r0, [r4, 0x4]
subs r0, 0x1
strh r0, [r4, 0x4]
lsls r0, 16
cmp r0, 0
ble _080999BE
movs r0, 0x4
ldrsh r1, [r4, r0]
ldrh r0, [r4, 0xA]
muls r0, r1
movs r2, 0x6
ldrsh r1, [r4, r2]
bl __divsi3
ldrh r1, [r4, 0x8]
subs r1, r0
strh r1, [r4, 0xC]
b _080999C6
_0809999A:
ldrh r0, [r4, 0x4]
subs r0, 0x1
strh r0, [r4, 0x4]
lsls r0, 16
cmp r0, 0
ble _080999BE
movs r0, 0x4
ldrsh r1, [r4, r0]
ldrh r0, [r4, 0xA]
muls r0, r1
movs r2, 0x6
ldrsh r1, [r4, r2]
bl __divsi3
ldrh r1, [r4, 0x8]
adds r1, r0
strh r1, [r4, 0xC]
b _080999C6
_080999BE:
ldrh r0, [r4, 0x8]
_080999C0:
strh r0, [r4, 0xC]
_080999C2:
movs r0, 0
str r0, [r4]
_080999C6:
movs r0, 0x1
b _080999CC
_080999CA:
movs r0, 0
_080999CC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80998E0
thumb_func_start sub_80999D4
sub_80999D4:
ldr r2, _080999E0
movs r1, 0x1
strb r1, [r2]
ldr r1, _080999E4
strh r0, [r1]
bx lr
.align 2, 0
_080999E0: .4byte gUnknown_2039990
_080999E4: .4byte gUnknown_2039992
thumb_func_end sub_80999D4
thumb_func_start sub_80999E8
sub_80999E8:
push {lr}
adds r1, r0, 0
ldr r0, _080999F8
bl sub_809985C
pop {r0}
bx r0
.align 2, 0
_080999F8: .4byte gUnknown_2039958
thumb_func_end sub_80999E8
thumb_func_start sub_80999FC
sub_80999FC:
push {lr}
adds r1, r0, 0
ldr r0, _08099A0C
bl sub_8099880
pop {r0}
bx r0
.align 2, 0
_08099A0C: .4byte gUnknown_2039958
thumb_func_end sub_80999FC
thumb_func_start sub_8099A10
sub_8099A10:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r3, r2, 0
lsls r4, 16
lsrs r4, 16
lsls r3, 16
lsrs r3, 16
ldr r0, _08099A30
adds r1, r5, 0
adds r2, r4, 0
bl sub_80998A0
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08099A30: .4byte gUnknown_2039958
thumb_func_end sub_8099A10
thumb_func_start sub_8099A34
sub_8099A34:
push {lr}
adds r1, r0, 0
ldr r0, _08099A44
bl sub_809985C
pop {r0}
bx r0
.align 2, 0
_08099A44: .4byte gUnknown_2039968
thumb_func_end sub_8099A34
thumb_func_start sub_8099A48
sub_8099A48:
push {lr}
adds r1, r0, 0
ldr r0, _08099A58
bl sub_8099880
pop {r0}
bx r0
.align 2, 0
_08099A58: .4byte gUnknown_2039968
thumb_func_end sub_8099A48
thumb_func_start sub_8099A5C
sub_8099A5C:
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
str r2, [sp]
ldr r0, _08099A88
str r4, [r0]
ldr r2, [sp]
str r2, [r0, 0x4]
movs r2, 0
strh r2, [r0, 0x14]
adds r0, 0x8
bl sub_809985C
subs r0, r4, 0x1
cmp r0, 0xD
bhi _08099AF0
lsls r0, 2
ldr r1, _08099A8C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08099A88: .4byte gUnknown_2039978
_08099A8C: .4byte _08099A90
.align 2, 0
_08099A90:
.4byte _08099AC8
.4byte _08099AF0
.4byte _08099AC8
.4byte _08099AF0
.4byte _08099AE8
.4byte _08099AF0
.4byte _08099AE8
.4byte _08099AF0
.4byte _08099AE0
.4byte _08099AF0
.4byte _08099AE0
.4byte _08099AF0
.4byte _08099AE8
.4byte _08099AE8
_08099AC8:
ldr r0, _08099AD8
movs r1, 0x80
lsls r1, 1
strh r1, [r0, 0xC]
ldr r0, _08099ADC
strh r1, [r0, 0xC]
b _08099AF0
.align 2, 0
_08099AD8: .4byte gUnknown_2039968
_08099ADC: .4byte gUnknown_2039958
_08099AE0:
ldr r1, _08099AE4
b _08099AEA
.align 2, 0
_08099AE4: .4byte gUnknown_2039968
_08099AE8:
ldr r1, _08099AF8
_08099AEA:
movs r0, 0x80
lsls r0, 1
strh r0, [r1, 0xC]
_08099AF0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08099AF8: .4byte gUnknown_2039958
thumb_func_end sub_8099A5C
thumb_func_start sub_8099AFC
sub_8099AFC:
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
str r2, [sp]
ldr r0, _08099B28
str r4, [r0]
ldr r2, [sp]
str r2, [r0, 0x4]
movs r2, 0x80
lsls r2, 1
strh r2, [r0, 0x14]
adds r0, 0x8
bl sub_8099880
subs r0, r4, 0x2
cmp r0, 0xC
bhi _08099B86
lsls r0, 2
ldr r1, _08099B2C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08099B28: .4byte gUnknown_2039978
_08099B2C: .4byte _08099B30
.align 2, 0
_08099B30:
.4byte _08099B64
.4byte _08099B86
.4byte _08099B64
.4byte _08099B86
.4byte _08099B80
.4byte _08099B86
.4byte _08099B80
.4byte _08099B86
.4byte _08099B78
.4byte _08099B86
.4byte _08099B78
.4byte _08099B80
.4byte _08099B80
_08099B64:
ldr r0, _08099B70
movs r1, 0
strh r1, [r0, 0xC]
ldr r0, _08099B74
strh r1, [r0, 0xC]
b _08099B86
.align 2, 0
_08099B70: .4byte gUnknown_2039968
_08099B74: .4byte gUnknown_2039958
_08099B78:
ldr r1, _08099B7C
b _08099B82
.align 2, 0
_08099B7C: .4byte gUnknown_2039968
_08099B80:
ldr r1, _08099B90
_08099B82:
movs r0, 0
strh r0, [r1, 0xC]
_08099B86:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08099B90: .4byte gUnknown_2039958
thumb_func_end sub_8099AFC
thumb_func_start sub_8099B94
sub_8099B94:
push {lr}
ldr r0, _08099BA4
ldrb r0, [r0]
cmp r0, 0
beq _08099BA8
movs r0, 0x1
b _08099BD6
.align 2, 0
_08099BA4: .4byte gUnknown_2039990
_08099BA8:
ldr r1, _08099BBC
ldr r0, [r1]
cmp r0, 0
beq _08099BC0
ldr r0, [r1, 0x8]
cmp r0, 0
beq _08099BD6
movs r0, 0x1
b _08099BD6
.align 2, 0
_08099BBC: .4byte gUnknown_2039978
_08099BC0:
movs r1, 0
ldr r0, _08099BDC
ldr r0, [r0]
cmp r0, 0
bne _08099BD2
ldr r0, _08099BE0
ldr r0, [r0]
cmp r0, 0
beq _08099BD4
_08099BD2:
movs r1, 0x1
_08099BD4:
adds r0, r1, 0
_08099BD6:
pop {r1}
bx r1
.align 2, 0
_08099BDC: .4byte gUnknown_2039958
_08099BE0: .4byte gUnknown_2039968
thumb_func_end sub_8099B94
thumb_func_start sub_8099BE4
sub_8099BE4:
push {r4,r5,lr}
ldr r4, _08099C10
ldr r0, [r4]
cmp r0, 0
bne _08099BF6
ldr r0, [r4, 0x8]
cmp r0, 0
bne _08099BF6
b _08099D08
_08099BF6:
adds r0, r4, 0
adds r0, 0x8
bl sub_80998E0
lsls r0, 24
cmp r0, 0
beq _08099C14
ldrh r0, [r4, 0x14]
ldr r1, [r4, 0x4]
bl sub_8099E80
b _08099DC0
.align 2, 0
_08099C10: .4byte gUnknown_2039978
_08099C14:
ldr r0, [r4, 0x8]
cmp r0, 0
beq _08099C1C
b _08099DC0
_08099C1C:
ldr r0, [r4]
cmp r0, 0xE
bls _08099C24
b _08099DC0
_08099C24:
lsls r0, 2
ldr r1, _08099C30
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08099C30: .4byte _08099C34
.align 2, 0
_08099C34:
.4byte _08099DC0
.4byte _08099C70
.4byte _08099CD8
.4byte _08099C70
.4byte _08099CD8
.4byte _08099C70
.4byte _08099CD8
.4byte _08099C70
.4byte _08099CD8
.4byte _08099C70
.4byte _08099CD8
.4byte _08099C70
.4byte _08099CD8
.4byte _08099CD8
.4byte _08099CD8
_08099C70:
ldr r0, _08099C80
ldrh r1, [r0, 0x14]
adds r3, r0, 0
cmp r1, 0xFF
bls _08099C84
movs r0, 0
str r0, [r3]
b _08099DC0
.align 2, 0
_08099C80: .4byte gUnknown_2039978
_08099C84:
ldr r0, _08099CA0
ldrb r0, [r0]
cmp r0, 0
bne _08099C8E
b _08099DC0
_08099C8E:
movs r2, 0
ldr r0, [r3]
cmp r0, 0x3
beq _08099CB2
cmp r0, 0x3
bhi _08099CA4
cmp r0, 0x1
beq _08099CAE
b _08099CBC
.align 2, 0
_08099CA0: .4byte gUnknown_2039990
_08099CA4:
cmp r0, 0x5
beq _08099CB6
cmp r0, 0x7
beq _08099CBA
b _08099CBC
_08099CAE:
movs r2, 0x2
b _08099CC0
_08099CB2:
movs r2, 0x4
b _08099CC0
_08099CB6:
movs r2, 0x6
b _08099CC0
_08099CBA:
movs r2, 0x8
_08099CBC:
cmp r2, 0
beq _08099CD4
_08099CC0:
ldr r0, _08099CD0
movs r4, 0
ldrsh r1, [r0, r4]
adds r0, r2, 0
ldr r2, [r3, 0x4]
bl sub_8099AFC
b _08099DC0
.align 2, 0
_08099CD0: .4byte gUnknown_2039992
_08099CD4:
str r2, [r3]
b _08099DC0
_08099CD8:
ldr r2, _08099CE4
ldrh r0, [r2, 0x14]
cmp r0, 0
bne _08099CE8
str r0, [r2]
b _08099DC0
.align 2, 0
_08099CE4: .4byte gUnknown_2039978
_08099CE8:
ldr r0, _08099D00
ldrb r0, [r0]
cmp r0, 0
beq _08099DC0
ldr r0, [r2]
ldr r1, _08099D04
movs r3, 0
ldrsh r1, [r1, r3]
ldr r2, [r2, 0x4]
bl sub_8099AFC
b _08099DC0
.align 2, 0
_08099D00: .4byte gUnknown_2039990
_08099D04: .4byte gUnknown_2039992
_08099D08:
ldr r0, _08099D88
ldrb r0, [r0]
cmp r0, 0
beq _08099D98
movs r5, 0x1
ldr r4, _08099D8C
ldrh r0, [r4, 0xC]
cmp r0, 0
bne _08099D20
ldr r0, [r4]
cmp r0, 0
beq _08099D46
_08099D20:
movs r5, 0
ldr r0, [r4]
cmp r0, 0x3
beq _08099D34
ldr r0, _08099D90
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r4, 0
bl sub_8099880
_08099D34:
adds r0, r4, 0
bl sub_80998E0
lsls r0, 24
cmp r0, 0
beq _08099D46
ldrh r0, [r4, 0xC]
bl sub_8099DD0
_08099D46:
ldr r4, _08099D94
ldrh r0, [r4, 0xC]
cmp r0, 0
bne _08099D54
ldr r0, [r4]
cmp r0, 0
beq _08099D7A
_08099D54:
movs r5, 0
ldr r0, [r4]
cmp r0, 0x3
beq _08099D68
ldr r0, _08099D90
movs r3, 0
ldrsh r1, [r0, r3]
adds r0, r4, 0
bl sub_8099880
_08099D68:
adds r0, r4, 0
bl sub_80998E0
lsls r0, 24
cmp r0, 0
beq _08099D7A
ldrh r0, [r4, 0xC]
bl sub_8099E58
_08099D7A:
cmp r5, 0
beq _08099DC0
ldr r1, _08099D88
movs r0, 0
strb r0, [r1]
b _08099DC0
.align 2, 0
_08099D88: .4byte gUnknown_2039990
_08099D8C: .4byte gUnknown_2039958
_08099D90: .4byte gUnknown_2039992
_08099D94: .4byte gUnknown_2039968
_08099D98:
ldr r4, _08099DC8
adds r0, r4, 0
bl sub_80998E0
lsls r0, 24
cmp r0, 0
beq _08099DAC
ldrh r0, [r4, 0xC]
bl sub_8099DD0
_08099DAC:
ldr r4, _08099DCC
adds r0, r4, 0
bl sub_80998E0
lsls r0, 24
cmp r0, 0
beq _08099DC0
ldrh r0, [r4, 0xC]
bl sub_8099E58
_08099DC0:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08099DC8: .4byte gUnknown_2039958
_08099DCC: .4byte gUnknown_2039968
thumb_func_end sub_8099BE4
thumb_func_start sub_8099DD0
sub_8099DD0:
push {r4-r7,lr}
lsls r0, 16
lsrs r7, r0, 16
movs r4, 0
ldr r6, _08099DF4
movs r5, 0xD
_08099DDC:
ldrh r1, [r6]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08099DF8
lsrs r0, r4, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _08099E00
.align 2, 0
_08099DF4: .4byte gUnknown_2039998
_08099DF8:
lsrs r0, r4, 16
adds r1, r7, 0
bl sub_8003664
_08099E00:
movs r0, 0x80
lsls r0, 9
adds r4, r0
adds r6, 0x2
subs r5, 0x1
cmp r5, 0
bge _08099DDC
ldr r0, _08099E30
movs r4, 0x80
lsls r4, 13
adds r6, r0, 0
adds r6, 0x20
movs r5, 0xE
_08099E1A:
ldrh r1, [r6]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08099E34
lsrs r0, r4, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _08099E3C
.align 2, 0
_08099E30: .4byte gUnknown_2039998
_08099E34:
lsrs r0, r4, 16
adds r1, r7, 0
bl sub_8003664
_08099E3C:
movs r0, 0x80
lsls r0, 9
adds r4, r0
adds r6, 0x2
subs r5, 0x1
cmp r5, 0
bge _08099E1A
movs r0, 0x20
adds r1, r7, 0
bl sub_8003664
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8099DD0
thumb_func_start sub_8099E58
sub_8099E58:
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
movs r0, 0xF
adds r1, r4, 0
bl sub_8003664
movs r0, 0xE
adds r1, r4, 0
bl sub_8003664
movs r0, 0x1F
adds r1, r4, 0
bl sub_8003664
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8099E58
thumb_func_start sub_8099E80
sub_8099E80:
push {r4-r7,lr}
sub sp, 0x4
str r1, [sp]
lsls r0, 16
lsrs r6, r0, 16
ldr r0, _08099EA0
ldr r1, [r0]
adds r2, r0, 0
cmp r1, 0xE
bls _08099E96
b _0809A558
_08099E96:
lsls r0, r1, 2
ldr r1, _08099EA4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08099EA0: .4byte gUnknown_2039978
_08099EA4: .4byte _08099EA8
.align 2, 0
_08099EA8:
.4byte _0809A558
.4byte _08099EE4
.4byte _0809A05A
.4byte _0809A1D2
.4byte _0809A34A
.4byte _08099FDE
.4byte _0809A156
.4byte _0809A2CE
.4byte _0809A4BC
.4byte _08099F5E
.4byte _0809A0D6
.4byte _0809A24E
.4byte _0809A3EA
.4byte _0809A48A
.4byte _0809A48A
_08099EE4:
movs r4, 0
movs r5, 0
ldr r7, _08099F00
_08099EEA:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08099F04
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _08099F0E
.align 2, 0
_08099F00: .4byte gUnknown_2039998
_08099F04:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036AC
_08099F0E:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xF
ble _08099EEA
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
ldr r0, _08099F40
adds r7, r0, 0
adds r7, 0x20
_08099F28:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08099F44
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _08099F4E
.align 2, 0
_08099F40: .4byte gUnknown_2039998
_08099F44:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036AC
_08099F4E:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1F
ble _08099F28
b _0809A558
_08099F5E:
movs r4, 0xE
movs r5, 0xE0
lsls r5, 12
ldr r0, _08099F80
adds r7, r0, 0
adds r7, 0x1C
_08099F6A:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08099F84
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _08099F8E
.align 2, 0
_08099F80: .4byte gUnknown_2039998
_08099F84:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036AC
_08099F8E:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xF
ble _08099F6A
movs r4, 0x1F
movs r5, 0xF8
lsls r5, 13
ldr r0, _08099FC0
adds r7, r0, 0
adds r7, 0x3E
_08099FA8:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08099FC4
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _08099FCE
.align 2, 0
_08099FC0: .4byte gUnknown_2039998
_08099FC4:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036AC
_08099FCE:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1F
ble _08099FA8
b _0809A558
_08099FDE:
movs r4, 0
movs r5, 0
ldr r7, _08099FFC
_08099FE4:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A000
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A00A
.align 2, 0
_08099FFC: .4byte gUnknown_2039998
_0809A000:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036AC
_0809A00A:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xD
ble _08099FE4
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
ldr r0, _0809A03C
adds r7, r0, 0
adds r7, 0x20
_0809A024:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A040
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A04A
.align 2, 0
_0809A03C: .4byte gUnknown_2039998
_0809A040:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036AC
_0809A04A:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1E
ble _0809A024
b _0809A558
_0809A05A:
movs r4, 0
movs r5, 0
ldr r7, _0809A078
_0809A060:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A07C
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A086
.align 2, 0
_0809A078: .4byte gUnknown_2039998
_0809A07C:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036F4
_0809A086:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xF
ble _0809A060
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
ldr r0, _0809A0B8
adds r7, r0, 0
adds r7, 0x20
_0809A0A0:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A0BC
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A0C6
.align 2, 0
_0809A0B8: .4byte gUnknown_2039998
_0809A0BC:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036F4
_0809A0C6:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1F
ble _0809A0A0
b _0809A558
_0809A0D6:
movs r4, 0xE
movs r5, 0xE0
lsls r5, 12
ldr r0, _0809A0F8
adds r7, r0, 0
adds r7, 0x1C
_0809A0E2:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A0FC
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A106
.align 2, 0
_0809A0F8: .4byte gUnknown_2039998
_0809A0FC:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036F4
_0809A106:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xF
ble _0809A0E2
movs r4, 0x1F
movs r5, 0xF8
lsls r5, 13
ldr r0, _0809A138
adds r7, r0, 0
adds r7, 0x3E
_0809A120:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A13C
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A146
.align 2, 0
_0809A138: .4byte gUnknown_2039998
_0809A13C:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036F4
_0809A146:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1F
ble _0809A120
b _0809A558
_0809A156:
movs r4, 0
movs r5, 0
ldr r7, _0809A174
_0809A15C:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A178
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A182
.align 2, 0
_0809A174: .4byte gUnknown_2039998
_0809A178:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036F4
_0809A182:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xD
ble _0809A15C
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
ldr r0, _0809A1B4
adds r7, r0, 0
adds r7, 0x20
_0809A19C:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A1B8
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A1C2
.align 2, 0
_0809A1B4: .4byte gUnknown_2039998
_0809A1B8:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80036F4
_0809A1C2:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1E
ble _0809A19C
b _0809A558
_0809A1D2:
movs r4, 0
movs r5, 0
ldr r7, _0809A1F0
_0809A1D8:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A1F4
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A1FE
.align 2, 0
_0809A1F0: .4byte gUnknown_2039998
_0809A1F4:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_8003780
_0809A1FE:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xF
ble _0809A1D8
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
ldr r0, _0809A230
adds r7, r0, 0
adds r7, 0x20
_0809A218:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A234
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A23E
.align 2, 0
_0809A230: .4byte gUnknown_2039998
_0809A234:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_8003780
_0809A23E:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1F
ble _0809A218
b _0809A558
_0809A24E:
movs r4, 0xE
movs r5, 0xE0
lsls r5, 12
ldr r0, _0809A270
adds r7, r0, 0
adds r7, 0x1C
_0809A25A:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A274
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A27E
.align 2, 0
_0809A270: .4byte gUnknown_2039998
_0809A274:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_8003780
_0809A27E:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xF
ble _0809A25A
movs r4, 0x1F
movs r5, 0xF8
lsls r5, 13
ldr r0, _0809A2B0
adds r7, r0, 0
adds r7, 0x3E
_0809A298:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A2B4
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A2BE
.align 2, 0
_0809A2B0: .4byte gUnknown_2039998
_0809A2B4:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_8003780
_0809A2BE:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1F
ble _0809A298
b _0809A558
_0809A2CE:
movs r4, 0
movs r5, 0
ldr r7, _0809A2EC
_0809A2D4:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A2F0
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A2FA
.align 2, 0
_0809A2EC: .4byte gUnknown_2039998
_0809A2F0:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_8003780
_0809A2FA:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0xD
ble _0809A2D4
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
ldr r0, _0809A32C
adds r7, r0, 0
adds r7, 0x20
_0809A314:
ldrh r1, [r7]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A330
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A33A
.align 2, 0
_0809A32C: .4byte gUnknown_2039998
_0809A330:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_8003780
_0809A33A:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r7, 0x2
adds r4, 0x1
cmp r4, 0x1E
ble _0809A314
b _0809A558
_0809A34A:
movs r4, 0
movs r5, 0
_0809A34E:
ldr r0, _0809A36C
lsls r1, r4, 1
adds r1, r0
ldrh r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0809A370
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A38C
.align 2, 0
_0809A36C: .4byte gUnknown_2039998
_0809A370:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A382
lsrs r0, r5, 16
adds r1, r6, 0
bl sub_8003664
b _0809A38C
_0809A382:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80037C8
_0809A38C:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r4, 0x1
cmp r4, 0xF
ble _0809A34E
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
_0809A39E:
ldr r0, _0809A3BC
lsls r1, r4, 1
adds r1, r0
ldrh r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0809A3C0
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A3DC
.align 2, 0
_0809A3BC: .4byte gUnknown_2039998
_0809A3C0:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A3D2
lsrs r0, r5, 16
adds r1, r6, 0
bl sub_8003664
b _0809A3DC
_0809A3D2:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80037C8
_0809A3DC:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r4, 0x1
cmp r4, 0x1F
ble _0809A39E
b _0809A558
_0809A3EA:
movs r4, 0xE
movs r5, 0xE0
lsls r5, 12
_0809A3F0:
ldr r0, _0809A40C
lsls r1, r4, 1
adds r1, r0
ldrh r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0809A410
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A42C
.align 2, 0
_0809A40C: .4byte gUnknown_2039998
_0809A410:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A422
lsrs r0, r5, 16
adds r1, r6, 0
bl sub_8003664
b _0809A42C
_0809A422:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80037C8
_0809A42C:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r4, 0x1
cmp r4, 0xF
ble _0809A3F0
movs r4, 0x1F
movs r5, 0xF8
lsls r5, 13
_0809A43E:
ldr r0, _0809A45C
lsls r1, r4, 1
adds r1, r0
ldrh r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0809A460
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A47C
.align 2, 0
_0809A45C: .4byte gUnknown_2039998
_0809A460:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A472
lsrs r0, r5, 16
adds r1, r6, 0
bl sub_8003664
b _0809A47C
_0809A472:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80037C8
_0809A47C:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r4, 0x1
cmp r4, 0x1F
ble _0809A43E
b _0809A558
_0809A48A:
ldr r0, [r2]
cmp r0, 0xD
beq _0809A496
cmp r0, 0xE
beq _0809A4AA
b _0809A4BC
_0809A496:
mov r0, sp
movs r1, 0x90
strb r1, [r0]
strb r1, [r0, 0x1]
mov r1, sp
movs r0, 0xFF
strb r0, [r1, 0x2]
movs r0, 0x1
negs r0, r0
b _0809A4BA
_0809A4AA:
mov r1, sp
movs r0, 0xFF
strb r0, [r1]
movs r0, 0xC0
strb r0, [r1, 0x1]
movs r0, 0x80
strb r0, [r1, 0x2]
subs r0, 0x81
_0809A4BA:
strb r0, [r1, 0x3]
_0809A4BC:
movs r4, 0
movs r5, 0
_0809A4C0:
ldr r0, _0809A4DC
lsls r1, r4, 1
adds r1, r0
ldrh r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0809A4E0
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A4FC
.align 2, 0
_0809A4DC: .4byte gUnknown_2039998
_0809A4E0:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A4F2
lsrs r0, r5, 16
adds r1, r6, 0
bl sub_8003664
b _0809A4FC
_0809A4F2:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80037C8
_0809A4FC:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r4, 0x1
cmp r4, 0xD
ble _0809A4C0
movs r4, 0x10
movs r5, 0x80
lsls r5, 13
_0809A50E:
ldr r0, _0809A52C
lsls r1, r4, 1
adds r1, r0
ldrh r1, [r1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0809A530
lsrs r0, r5, 16
movs r1, 0x80
lsls r1, 1
bl sub_8003664
b _0809A54C
.align 2, 0
_0809A52C: .4byte gUnknown_2039998
_0809A530:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0809A542
lsrs r0, r5, 16
adds r1, r6, 0
bl sub_8003664
b _0809A54C
_0809A542:
lsrs r0, r5, 16
adds r1, r6, 0
ldr r2, [sp]
bl sub_80037C8
_0809A54C:
movs r0, 0x80
lsls r0, 9
adds r5, r0
adds r4, 0x1
cmp r4, 0x1E
ble _0809A50E
_0809A558:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8099E80
thumb_func_start sub_809A560
sub_809A560:
push {r4-r6,lr}
bl sub_8014144
ldr r6, _0809A5F4
movs r0, 0xB5
lsls r0, 3
movs r1, 0x6
bl MemoryAlloc
str r0, [r6]
movs r4, 0
str r4, [r0]
movs r5, 0x1
negs r5, r5
str r5, [r0, 0x4]
str r5, [r0, 0x8]
ldr r0, _0809A5F8
strh r4, [r0]
ldr r0, _0809A5FC
strh r4, [r0]
movs r0, 0
movs r1, 0x14
bl sub_80095CC
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0
movs r1, 0x14
bl sub_8009408
bl sub_809B294
ldr r0, [r6]
ldr r2, _0809A600
adds r1, r0, r2
str r4, [r1]
adds r2, 0x4
adds r1, r0, r2
str r4, [r1]
adds r2, 0x4
adds r1, r0, r2
str r4, [r1]
adds r2, 0x4
adds r1, r0, r2
str r4, [r1]
adds r2, 0x4
adds r1, r0, r2
str r4, [r1]
adds r2, 0x4
adds r1, r0, r2
str r4, [r1]
adds r2, 0x4
adds r1, r0, r2
str r4, [r1]
adds r2, 0x4
adds r1, r0, r2
str r5, [r1]
ldr r1, _0809A604
adds r0, r1
str r5, [r0]
bl sub_809A7EC
ldr r0, [r6]
ldr r2, _0809A608
adds r0, r2
ldr r1, _0809A60C
strh r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0809A5F4: .4byte gUnknown_3001B64
_0809A5F8: .4byte gUnknown_20399DC
_0809A5FC: .4byte gUnknown_20399DE
_0809A600: .4byte 0x00000414
_0809A604: .4byte 0x00000434
_0809A608: .4byte 0x000005a4
_0809A60C: .4byte 0x0000ffff
thumb_func_end sub_809A560
thumb_func_start sub_809A610
sub_809A610:
push {r4,lr}
bl sub_809A62C
ldr r4, _0809A628
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809A628: .4byte gUnknown_3001B64
thumb_func_end sub_809A610
thumb_func_start sub_809A62C
sub_809A62C:
push {r4,lr}
ldr r0, _0809A670
ldr r0, [r0]
movs r2, 0
str r2, [r0]
movs r1, 0x1
negs r1, r1
str r1, [r0, 0x4]
str r1, [r0, 0x8]
ldr r0, _0809A674
strh r2, [r0]
ldr r0, _0809A678
strh r2, [r0]
movs r4, 0
_0809A648:
lsls r0, r4, 16
asrs r0, 16
bl sub_809A83C
adds r4, 0x1
cmp r4, 0x9
ble _0809A648
ldr r0, _0809A670
ldr r0, [r0]
ldr r1, _0809A67C
adds r0, r1
movs r1, 0
str r1, [r0]
movs r0, 0
movs r1, 0x1
bl sub_809A680
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809A670: .4byte gUnknown_3001B64
_0809A674: .4byte gUnknown_20399DC
_0809A678: .4byte gUnknown_20399DE
_0809A67C: .4byte 0x00000414
thumb_func_end sub_809A62C
thumb_func_start sub_809A680
sub_809A680:
push {r4,lr}
adds r4, r0, 0
cmp r4, 0x4
bhi _0809A6C2
lsls r0, r4, 2
ldr r1, _0809A694
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809A694: .4byte _0809A698
.align 2, 0
_0809A698:
.4byte _0809A6AC
.4byte _0809A6BC
.4byte _0809A6BC
.4byte _0809A6BC
.4byte _0809A6BC
_0809A6AC:
bl sub_809B294
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
b _0809A6D0
_0809A6BC:
bl sub_809B294
b _0809A6D0
_0809A6C2:
bl sub_809B294
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0809A6D0:
ldr r0, _0809A6E0
ldr r0, [r0]
str r4, [r0]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0809A6E0: .4byte gUnknown_3001B64
thumb_func_end sub_809A680
thumb_func_start sub_809A6E4
sub_809A6E4:
lsls r0, 16
lsrs r0, 16
ldr r2, _0809A6F4
ldrh r1, [r2]
orrs r0, r1
strh r0, [r2]
bx lr
.align 2, 0
_0809A6F4: .4byte gUnknown_20399DC
thumb_func_end sub_809A6E4
thumb_func_start sub_809A6F8
sub_809A6F8:
lsls r0, 16
lsrs r0, 16
ldr r2, _0809A708
ldrh r1, [r2]
bics r1, r0
strh r1, [r2]
bx lr
.align 2, 0
_0809A708: .4byte gUnknown_20399DC
thumb_func_end sub_809A6F8
thumb_func_start sub_809A70C
sub_809A70C:
ldr r0, _0809A714
ldrh r0, [r0]
bx lr
.align 2, 0
_0809A714: .4byte gUnknown_20399DC
thumb_func_end sub_809A70C
thumb_func_start nullsub_209
nullsub_209:
bx lr
thumb_func_end nullsub_209
thumb_func_start sub_809A71C
sub_809A71C:
push {lr}
adds r1, r0, 0
ldr r0, _0809A734
ldr r0, [r0]
str r1, [r0, 0x4]
str r1, [r0, 0x8]
adds r0, r1, 0
bl sub_801416C
pop {r0}
bx r0
.align 2, 0
_0809A734: .4byte gUnknown_3001B64
thumb_func_end sub_809A71C
thumb_func_start sub_809A738
sub_809A738:
push {lr}
ldr r2, _0809A74C
ldr r2, [r2]
str r0, [r2, 0x4]
str r1, [r2, 0x8]
bl sub_801416C
pop {r0}
bx r0
.align 2, 0
_0809A74C: .4byte gUnknown_3001B64
thumb_func_end sub_809A738
thumb_func_start sub_809A750
sub_809A750:
push {lr}
ldr r0, _0809A764
ldr r0, [r0]
adds r0, 0xC
bl sub_809B40C
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0809A764: .4byte gUnknown_3001B64
thumb_func_end sub_809A750
thumb_func_start sub_809A768
sub_809A768:
movs r0, 0
bx lr
thumb_func_end sub_809A768
thumb_func_start sub_809A76C
sub_809A76C:
push {lr}
ldr r0, _0809A78C
ldr r0, [r0]
ldr r1, [r0]
cmp r1, 0x1
bcc _0809A7A4
cmp r1, 0x2
bls _0809A790
cmp r1, 0x3
bne _0809A7A4
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0x4
b _0809A798
.align 2, 0
_0809A78C: .4byte gUnknown_3001B64
_0809A790:
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0x84
_0809A798:
movs r3, 0
bl sub_809B2B8
lsls r0, 24
lsrs r0, 24
b _0809A7AE
_0809A7A4:
movs r0, 0
movs r1, 0x1
bl sub_809A680
movs r0, 0
_0809A7AE:
pop {r1}
bx r1
thumb_func_end sub_809A76C
thumb_func_start sub_809A7B4
sub_809A7B4:
push {lr}
ldr r0, _0809A7D8
ldr r0, [r0]
ldr r1, [r0]
cmp r1, 0x3
bhi _0809A7DC
cmp r1, 0x1
bcc _0809A7DC
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0x4
movs r3, 0
bl sub_809B2B8
lsls r0, 24
lsrs r0, 24
b _0809A7E6
.align 2, 0
_0809A7D8: .4byte gUnknown_3001B64
_0809A7DC:
movs r0, 0
movs r1, 0x1
bl sub_809A680
movs r0, 0
_0809A7E6:
pop {r1}
bx r1
thumb_func_end sub_809A7B4
thumb_func_start sub_809A7EC
sub_809A7EC:
push {r4-r6,lr}
ldr r0, _0809A830
ldr r0, [r0]
ldr r2, _0809A834
adds r1, r0, r2
ldr r0, _0809A838
adds r6, r0, 0
movs r3, 0
movs r2, 0
movs r4, 0x9
movs r5, 0xFF
_0809A802:
ldrh r0, [r1]
orrs r0, r6
strh r0, [r1]
strh r2, [r1, 0x2]
strb r3, [r1, 0x4]
strb r3, [r1, 0x5]
ldrb r0, [r1, 0x6]
orrs r0, r5
strb r0, [r1, 0x6]
strb r3, [r1, 0x7]
str r2, [r1, 0x8]
str r2, [r1, 0xC]
str r2, [r1, 0x10]
str r2, [r1, 0x14]
strb r3, [r1, 0x1C]
str r2, [r1, 0x20]
subs r4, 0x1
adds r1, 0x24
cmp r4, 0
bge _0809A802
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0809A830: .4byte gUnknown_3001B64
_0809A834: .4byte 0x0000043c
_0809A838: .4byte 0x0000ffff
thumb_func_end sub_809A7EC
thumb_func_start sub_809A83C
sub_809A83C:
push {r4-r7,lr}
lsls r0, 16
asrs r0, 16
ldr r2, _0809A8A0
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r3, _0809A8A4
adds r1, r3
ldr r2, [r2]
adds r6, r2, r1
ldr r1, _0809A8A8
strh r1, [r6]
movs r2, 0
movs r7, 0
strh r7, [r6, 0x2]
strb r2, [r6, 0x4]
strb r2, [r6, 0x5]
movs r1, 0xFF
strb r1, [r6, 0x6]
strb r2, [r6, 0x7]
str r7, [r6, 0x8]
str r7, [r6, 0xC]
str r7, [r6, 0x10]
str r7, [r6, 0x14]
strb r2, [r6, 0x1C]
lsls r4, r0, 2
adds r4, r0
lsls r4, 4
ldr r0, _0809A8AC
adds r0, r4, r0
ldr r5, _0809A8B0
adds r1, r5, 0
bl strcpy
ldr r0, _0809A8B4
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
ldr r0, [r6, 0x20]
cmp r0, 0
beq _0809A89A
bl CloseFile
str r7, [r6, 0x20]
_0809A89A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0809A8A0: .4byte gUnknown_3001B64
_0809A8A4: .4byte 0x0000043c
_0809A8A8: .4byte 0x0000ffff
_0809A8AC: .4byte gAvailablePokemonNames
_0809A8B0: .4byte gInvalidityText
_0809A8B4: .4byte gPlayerName
thumb_func_end sub_809A83C
thumb_func_start sub_809A8B8
sub_809A8B8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 16
asrs r0, 16
mov r9, r0
mov r0, sp
strh r1, [r0]
ldr r1, _0809A928
mov r2, r9
lsls r0, r2, 3
add r0, r9
lsls r0, 2
ldr r2, _0809A92C
adds r0, r2
ldr r1, [r1]
adds r7, r1, r0
movs r0, 0x1
mov r10, r0
movs r1, 0
str r1, [sp, 0x4]
ldr r0, [r7, 0x20]
cmp r0, 0
beq _0809A8F6
bl CloseFile
ldr r2, [sp, 0x4]
str r2, [r7, 0x20]
_0809A8F6:
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl sub_80A7DDC
mov r0, sp
ldrh r0, [r0]
subs r0, 0xA
lsls r0, 16
lsrs r0, 16
cmp r0, 0x13
bhi _0809A9D6
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80A8D54
adds r5, r0, 0
cmp r5, 0
bne _0809A930
movs r2, 0
mov r10, r2
b _0809A9D6
.align 2, 0
_0809A928: .4byte gUnknown_3001B64
_0809A92C: .4byte 0x0000043c
_0809A930:
bl sub_808D3BC
cmp r5, r0
bne _0809A940
mov r1, sp
movs r0, 0x21
strh r0, [r1]
b _0809A9D6
_0809A940:
bl sub_808D3F8
cmp r5, r0
bne _0809A950
mov r1, sp
movs r0, 0x22
strh r0, [r1]
b _0809A9D6
_0809A950:
ldrb r0, [r5, 0x4]
subs r0, 0x43
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bhi _0809A990
movs r0, 0
ldrsh r1, [r4, r0]
ldr r0, _0809A978
cmp r1, r0
beq _0809A9D6
cmp r1, r0
ble _0809A97C
adds r0, 0x16
cmp r1, r0
bgt _0809A98A
subs r0, 0x1
cmp r1, r0
blt _0809A98A
b _0809A9D6
.align 2, 0
_0809A978: .4byte 0x00000183
_0809A97C:
movs r0, 0x82
lsls r0, 1
cmp r1, r0
beq _0809A9D6
adds r0, 0x2F
cmp r1, r0
beq _0809A9D6
_0809A98A:
movs r1, 0
mov r10, r1
b _0809A9D6
_0809A990:
movs r2, 0
ldrsh r1, [r4, r2]
movs r0, 0x87
lsls r0, 1
cmp r1, r0
bgt _0809A9B0
subs r0, 0x2
cmp r1, r0
bge _0809A9D6
cmp r1, 0x90
blt _0809A9D2
cmp r1, 0x92
ble _0809A9D6
cmp r1, 0x96
beq _0809A9D6
b _0809A9D2
_0809A9B0:
movs r0, 0xCF
lsls r0, 1
cmp r1, r0
bgt _0809A9CC
subs r0, 0x4
cmp r1, r0
bge _0809A9D6
subs r0, 0x87
cmp r1, r0
bgt _0809A9D2
subs r0, 0x1
cmp r1, r0
blt _0809A9D2
b _0809A9D6
_0809A9CC:
ldr r0, _0809A9F0
cmp r1, r0
beq _0809A9D6
_0809A9D2:
movs r0, 0
mov r10, r0
_0809A9D6:
mov r0, sp
ldrh r0, [r0]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x21
bhi _0809AA98
lsls r0, 2
ldr r1, _0809A9F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809A9F0: .4byte 0x000001a7
_0809A9F4: .4byte _0809A9F8
.align 2, 0
_0809A9F8:
.4byte _0809AA80
.4byte _0809AA80
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA80
.4byte _0809AA80
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA98
.4byte _0809AA80
.4byte _0809AA80
_0809AA80:
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80A8CF0
lsls r0, 24
cmp r0, 0
beq _0809AA94
movs r2, 0x1
str r2, [sp, 0x4]
b _0809AA98
_0809AA94:
movs r0, 0
mov r10, r0
_0809AA98:
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809AB34
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80A7AE8
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
blt _0809AACE
mov r0, sp
ldrh r0, [r0]
movs r2, 0
mov r8, r2
movs r6, 0
strh r0, [r7]
adds r0, r1, 0
bl sub_80A8BFC
strh r0, [r7, 0x2]
b _0809AAE6
_0809AACE:
ldrh r1, [r4]
movs r2, 0
ldrsh r0, [r4, r2]
cmp r0, 0
beq _0809AB34
mov r0, sp
ldrh r0, [r0]
movs r2, 0
mov r8, r2
movs r6, 0
strh r0, [r7]
strh r1, [r7, 0x2]
_0809AAE6:
mov r0, r9
lsls r4, r0, 2
add r4, r9
lsls r4, 4
ldr r0, _0809AB28
adds r0, r4, r0
ldr r5, _0809AB2C
adds r1, r5, 0
bl strcpy
ldr r0, _0809AB30
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
mov r1, r10
strb r1, [r7, 0x4]
mov r2, sp
ldrb r2, [r2, 0x4]
strb r2, [r7, 0x5]
movs r0, 0xFF
strb r0, [r7, 0x6]
mov r0, r8
strb r0, [r7, 0x7]
str r6, [r7, 0x8]
str r6, [r7, 0xC]
str r6, [r7, 0x10]
str r6, [r7, 0x14]
strb r0, [r7, 0x1C]
movs r0, 0x1
b _0809AB3C
.align 2, 0
_0809AB28: .4byte gAvailablePokemonNames
_0809AB2C: .4byte gUndefineText
_0809AB30: .4byte gPlayerName
_0809AB34:
mov r0, r9
bl sub_809A83C
movs r0, 0
_0809AB3C:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_809A8B8
thumb_func_start sub_809AB4C
sub_809AB4C:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 16
asrs r1, 16
ldr r2, _0809AB78
lsls r0, r5, 3
adds r0, r5
lsls r0, 2
ldr r3, _0809AB7C
adds r0, r3
ldr r2, [r2]
adds r6, r2, r0
adds r0, r5, 0
bl sub_809A8B8
lsls r0, 24
cmp r0, 0
bne _0809AB80
movs r0, 0
b _0809ABA0
.align 2, 0
_0809AB78: .4byte gUnknown_3001B64
_0809AB7C: .4byte 0x0000043c
_0809AB80:
lsls r4, r5, 2
adds r4, r5
lsls r4, 4
ldr r0, _0809ABA8
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
bl CopyCyanSpeciesNametoBuffer
ldr r0, _0809ABAC
adds r4, r0
ldr r1, _0809ABB0
adds r0, r4, 0
bl strcpy
movs r0, 0x1
_0809ABA0:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809ABA8: .4byte gAvailablePokemonNames
_0809ABAC: .4byte gPlayerName
_0809ABB0: .4byte gUnknown_811617C
thumb_func_end sub_809AB4C
thumb_func_start sub_809ABB4
sub_809ABB4:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 16
asrs r1, 16
ldr r2, _0809ABE0
lsls r0, r5, 3
adds r0, r5
lsls r0, 2
ldr r3, _0809ABE4
adds r0, r3
ldr r2, [r2]
adds r6, r2, r0
adds r0, r5, 0
bl sub_809A8B8
lsls r0, 24
cmp r0, 0
bne _0809ABE8
movs r0, 0
b _0809AC0A
.align 2, 0
_0809ABE0: .4byte gUnknown_3001B64
_0809ABE4: .4byte 0x0000043c
_0809ABE8:
lsls r4, r5, 2
adds r4, r5
lsls r4, 4
ldr r5, _0809AC10
adds r5, r4, r5
movs r0, 0x2
ldrsh r1, [r6, r0]
adds r0, r5, 0
bl CopyCyanSpeciesNametoBuffer
ldr r0, _0809AC14
adds r4, r0
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
movs r0, 0x1
_0809AC0A:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809AC10: .4byte gAvailablePokemonNames
_0809AC14: .4byte gPlayerName
thumb_func_end sub_809ABB4
thumb_func_start sub_809AC18
sub_809AC18:
push {r4-r6,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 16
asrs r1, 16
ldr r2, _0809AC44
lsls r0, r5, 3
adds r0, r5
lsls r0, 2
ldr r3, _0809AC48
adds r0, r3
ldr r2, [r2]
adds r6, r2, r0
adds r0, r5, 0
bl sub_809A8B8
lsls r0, 24
cmp r0, 0
bne _0809AC4C
movs r0, 0
b _0809AC6E
.align 2, 0
_0809AC44: .4byte gUnknown_3001B64
_0809AC48: .4byte 0x0000043c
_0809AC4C:
lsls r4, r5, 2
adds r4, r5
lsls r4, 4
ldr r0, _0809AC74
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
bl CopyCyanSpeciesNametoBuffer
ldr r0, _0809AC78
adds r4, r0
movs r3, 0
ldrsh r1, [r6, r3]
adds r0, r4, 0
bl sub_80A8EC0
movs r0, 0x1
_0809AC6E:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809AC74: .4byte gAvailablePokemonNames
_0809AC78: .4byte gPlayerName
thumb_func_end sub_809AC18
thumb_func_start sub_809AC7C
sub_809AC7C:
push {r4-r6,lr}
lsls r0, 16
asrs r0, 16
lsls r1, 24
asrs r5, r1, 24
lsls r2, 24
lsrs r6, r2, 24
ldr r2, _0809AD10
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _0809AD14
adds r1, r0
ldr r0, [r2]
adds r4, r0, r1
ldr r0, [r4, 0x20]
cmp r0, 0
beq _0809ACA8
bl CloseFile
movs r0, 0
str r0, [r4, 0x20]
_0809ACA8:
movs r0, 0x2
ldrsh r1, [r4, r0]
cmp r1, 0
bge _0809ACB2
b _0809ADC0
_0809ACB2:
movs r0, 0x1
negs r0, r0
cmp r5, r0
bne _0809ACBC
b _0809ADC0
_0809ACBC:
cmp r1, 0
bne _0809ACC2
b _0809ADC0
_0809ACC2:
cmp r6, 0x15
beq _0809ACCE
movs r0, 0
strb r6, [r4, 0x7]
str r0, [r4, 0x8]
str r0, [r4, 0xC]
_0809ACCE:
ldr r2, _0809AD18
ldrb r0, [r4, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r4, 0x8]
ldrh r0, [r0]
adds r0, r1
movs r6, 0
movs r3, 0
strh r0, [r4, 0x18]
ldrb r0, [r4, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r4, 0xC]
ldrh r0, [r0, 0x2]
adds r0, r1
strh r0, [r4, 0x1A]
ldrb r0, [r4, 0x7]
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x4]
strb r0, [r4, 0x1D]
strb r6, [r4, 0x1E]
movs r0, 0x2
negs r0, r0
cmp r5, r0
bne _0809AD1C
strb r5, [r4, 0x6]
str r3, [r4, 0x10]
str r3, [r4, 0x14]
strb r6, [r4, 0x1C]
movs r0, 0
b _0809ADD2
.align 2, 0
_0809AD10: .4byte gUnknown_3001B64
_0809AD14: .4byte 0x0000043c
_0809AD18: .4byte gUnknown_8116040
_0809AD1C:
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _0809ADC0
movs r1, 0x2
ldrsh r0, [r4, r1]
bl OpenPokemonDialogueSpriteFile
str r0, [r4, 0x20]
cmp r0, 0
beq _0809ADB6
strb r5, [r4, 0x6]
str r0, [r4, 0x10]
movs r1, 0
bl GetFileDataPtr
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x4D
beq _0809AD62
cmp r0, 0x4D
bgt _0809AD4C
cmp r0, 0x47
beq _0809AD56
b _0809ADA8
_0809AD4C:
cmp r0, 0x53
beq _0809AD76
cmp r0, 0x73
beq _0809AD8A
b _0809ADA8
_0809AD56:
movs r0, 0xF
ands r0, r5
cmp r0, 0x5
bgt _0809ADA8
adds r0, r5, 0x6
b _0809AD9C
_0809AD62:
ldrb r0, [r4, 0x1D]
cmp r0, 0
beq _0809ADA8
movs r0, 0xF
ands r0, r5
cmp r0, 0x3
bgt _0809ADA8
strb r6, [r4, 0x1D]
adds r0, r5, 0x4
b _0809AD9C
_0809AD76:
ldrb r0, [r4, 0x1D]
cmp r0, 0
beq _0809ADA8
movs r0, 0xF
ands r0, r5
cmp r0, 0
bgt _0809ADA8
strb r6, [r4, 0x1D]
adds r0, r5, 0x1
b _0809AD9C
_0809AD8A:
ldrb r0, [r4, 0x1D]
cmp r0, 0
beq _0809ADA8
movs r0, 0xF
ands r0, r5
cmp r0, 0x1
bgt _0809ADA8
strb r6, [r4, 0x1D]
adds r0, r5, 0x2
_0809AD9C:
lsls r0, 24
asrs r5, r0, 24
movs r0, 0x40
orrs r5, r0
lsls r0, r5, 24
asrs r5, r0, 24
_0809ADA8:
ldr r0, [r4, 0x20]
ldr r0, [r0, 0x4]
str r0, [r4, 0x14]
movs r0, 0xF
ands r5, r0
strb r5, [r4, 0x1C]
b _0809ADBC
_0809ADB6:
str r0, [r4, 0x10]
str r0, [r4, 0x14]
strb r6, [r4, 0x1C]
_0809ADBC:
movs r0, 0x1
b _0809ADD2
_0809ADC0:
movs r0, 0xFF
strb r0, [r4, 0x6]
movs r0, 0
strb r0, [r4, 0x7]
str r0, [r4, 0x8]
str r0, [r4, 0xC]
str r0, [r4, 0x10]
str r0, [r4, 0x14]
strb r0, [r4, 0x1C]
_0809ADD2:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_809AC7C
thumb_func_start sub_809ADD8
sub_809ADD8:
push {r4,lr}
adds r4, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _0809AE28
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _0809AE2C
adds r1, r0
ldr r0, [r2]
adds r3, r0, r1
movs r1, 0x2
ldrsh r0, [r3, r1]
cmp r0, 0
blt _0809AE34
cmp r0, 0
beq _0809AE34
ldr r0, [r4]
ldr r1, [r4, 0x4]
str r0, [r3, 0x8]
str r1, [r3, 0xC]
ldr r2, _0809AE30
ldrb r0, [r3, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r3, 0x8]
ldrh r0, [r0]
adds r0, r1
strh r0, [r3, 0x18]
ldrb r0, [r3, 0x7]
lsls r0, 3
adds r0, r2
ldr r1, [r3, 0xC]
ldrh r0, [r0, 0x2]
adds r0, r1
strh r0, [r3, 0x1A]
movs r0, 0x1
b _0809AE36
.align 2, 0
_0809AE28: .4byte gUnknown_3001B64
_0809AE2C: .4byte 0x0000043c
_0809AE30: .4byte gUnknown_8116040
_0809AE34:
movs r0, 0
_0809AE36:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809ADD8
thumb_func_start sub_809AE3C
sub_809AE3C:
push {r4,lr}
lsls r0, 16
asrs r2, r0, 16
cmp r2, 0
blt _0809AE88
ldr r1, _0809AE80
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
ldr r3, _0809AE84
adds r0, r3
ldr r1, [r1]
adds r4, r1, r0
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0809AE74
movs r1, 0x6
ldrsb r1, [r4, r1]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _0809AE74
adds r0, r2, 0
movs r1, 0
movs r2, 0
bl sub_809AC7C
_0809AE74:
ldr r0, [r4, 0x10]
cmp r0, 0
beq _0809AE88
adds r0, r4, 0
adds r0, 0x10
b _0809AE8A
.align 2, 0
_0809AE80: .4byte gUnknown_3001B64
_0809AE84: .4byte 0x0000043c
_0809AE88:
movs r0, 0
_0809AE8A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AE3C
thumb_func_start sub_809AE90
sub_809AE90:
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r2, 0
lsls r1, 16
asrs r6, r1, 16
cmp r4, 0
bne _0809AEA4
bl sub_809A76C
b _0809AEE0
_0809AEA4:
ldrb r0, [r4]
cmp r0, 0
beq _0809AEDC
ldr r1, _0809AED0
lsls r0, r5, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl sub_809A680
ldr r0, _0809AED4
ldr r0, [r0]
adds r0, 0xC
ldr r2, _0809AED8
lsls r1, r5, 1
adds r1, r2
ldrh r1, [r1]
adds r2, r6, 0
adds r3, r4, 0
bl sub_809B2B8
b _0809AEE0
.align 2, 0
_0809AED0: .4byte gUnknown_8116134
_0809AED4: .4byte gUnknown_3001B64
_0809AED8: .4byte gUnknown_8116148
_0809AEDC:
bl sub_809A7B4
_0809AEE0:
lsls r0, 24
lsrs r0, 24
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_809AE90
thumb_func_start sub_809AEEC
sub_809AEEC:
push {r4,lr}
adds r4, r0, 0
cmp r4, 0
beq _0809AF1C
ldrb r0, [r4]
cmp r0, 0
beq _0809AF1C
movs r0, 0x2
movs r1, 0x1
bl sub_809A680
ldr r0, _0809AF18
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0xC2
adds r3, r4, 0
bl sub_809B2B8
b _0809AF20
.align 2, 0
_0809AF18: .4byte gUnknown_3001B64
_0809AF1C:
bl sub_809A76C
_0809AF20:
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AEEC
thumb_func_start sub_809AF2C
sub_809AF2C:
push {r4,lr}
adds r4, r0, 0
cmp r4, 0
beq _0809AF5C
ldrb r0, [r4]
cmp r0, 0
beq _0809AF5C
movs r0, 0x2
movs r1, 0x1
bl sub_809A680
ldr r0, _0809AF58
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0xC2
adds r3, r4, 0
bl sub_809B2B8
b _0809AF60
.align 2, 0
_0809AF58: .4byte gUnknown_3001B64
_0809AF5C:
bl sub_809A76C
_0809AF60:
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AF2C
thumb_func_start sub_809AF6C
sub_809AF6C:
push {r4,lr}
adds r4, r1, 0
cmp r4, 0
beq _0809AF9C
ldrb r0, [r4]
cmp r0, 0
beq _0809AF9C
movs r0, 0x3
movs r1, 0x1
bl sub_809A680
ldr r0, _0809AF98
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0x65
adds r3, r4, 0
bl sub_809B2B8
b _0809AFA0
.align 2, 0
_0809AF98: .4byte gUnknown_3001B64
_0809AF9C:
bl sub_809A76C
_0809AFA0:
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AF6C
thumb_func_start sub_809AFAC
sub_809AFAC:
push {lr}
movs r1, 0
ldr r0, _0809AFC4
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x4
bne _0809AFBC
movs r1, 0x1
_0809AFBC:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_0809AFC4: .4byte gUnknown_3001B64
thumb_func_end sub_809AFAC
thumb_func_start sub_809AFC8
sub_809AFC8:
push {r4,r5,lr}
sub sp, 0x8
adds r5, r1, 0
adds r1, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r1, 16
asrs r1, 16
ldr r4, _0809AFF8
negs r2, r0
orrs r2, r0
lsrs r2, 31
str r1, [sp]
str r3, [sp, 0x4]
adds r0, r4, 0
movs r1, 0
adds r3, r5, 0
bl sub_809B028
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0809AFF8: .4byte gUnknown_81160E8
thumb_func_end sub_809AFC8
thumb_func_start sub_809AFFC
sub_809AFFC:
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
mov r0, sp
bl sub_809B18C
lsls r0, 24
lsrs r2, r0, 24
cmp r4, 0
beq _0809B01C
movs r1, 0
ldr r0, [sp]
cmp r0, 0x1
bne _0809B01A
movs r1, 0x1
_0809B01A:
strb r1, [r4]
_0809B01C:
adds r0, r2, 0
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809AFFC
thumb_func_start sub_809B028
sub_809B028:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
mov r8, r0
adds r7, r2, 0
adds r6, r3, 0
ldr r0, [sp, 0x2C]
lsls r1, 24
lsrs r5, r1, 24
lsls r0, 16
asrs r4, r0, 16
ldr r1, _0809B084
lsls r0, r6, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl sub_809A680
ldr r0, _0809B088
ldr r1, [r0]
ldr r0, _0809B08C
adds r2, r1, r0
movs r0, 0x1
str r0, [r2]
movs r0, 0x83
lsls r0, 3
adds r2, r1, r0
movs r0, 0
str r0, [r2]
ldr r2, _0809B090
adds r0, r1, r2
mov r2, r8
str r2, [r0]
movs r2, 0x84
lsls r2, 3
adds r0, r1, r2
movs r2, 0x2
str r2, [r0]
ldr r0, _0809B094
adds r1, r0
cmp r5, 0
beq _0809B098
str r2, [r1]
b _0809B09A
.align 2, 0
_0809B084: .4byte gUnknown_8116134
_0809B088: .4byte gUnknown_3001B64
_0809B08C: .4byte 0x00000414
_0809B090: .4byte 0x0000041c
_0809B094: .4byte 0x00000424
_0809B098:
str r5, [r1]
_0809B09A:
ldr r0, _0809B0D4
ldr r0, [r0]
movs r1, 0x85
lsls r1, 3
adds r2, r0, r1
movs r1, 0
str r1, [r2]
movs r2, 0x86
lsls r2, 3
adds r0, r2
str r7, [r0]
ldr r0, _0809B0D8
lsls r2, r6, 1
adds r0, r2, r0
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r1
adds r5, r2, 0
cmp r0, 0
beq _0809B0F6
cmp r4, 0
bge _0809B0E4
ldr r0, _0809B0DC
ldr r1, _0809B0E0
bl strcpy
b _0809B0F6
.align 2, 0
_0809B0D4: .4byte gUnknown_3001B64
_0809B0D8: .4byte gUnknown_8116148
_0809B0DC: .4byte gUnknown_202E5D8
_0809B0E0: .4byte gUnknown_8116180
_0809B0E4:
ldr r0, _0809B134
ldr r1, _0809B138
lsls r2, r4, 2
adds r2, r4
lsls r2, 4
ldr r3, _0809B13C
adds r2, r3
bl ExpandPlaceholdersBuffer
_0809B0F6:
adds r0, r4, 0
bl sub_809AE3C
ldr r4, _0809B140
movs r1, 0
str r1, [sp]
movs r3, 0x4
str r3, [sp, 0x4]
str r1, [sp, 0x8]
str r0, [sp, 0xC]
ldr r0, _0809B144
adds r0, r5, r0
ldrh r2, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r2
cmp r0, 0
beq _0809B11C
movs r1, 0xC
_0809B11C:
movs r0, 0x80
lsls r0, 2
ands r0, r2
cmp r0, 0
beq _0809B128
orrs r1, r3
_0809B128:
movs r0, 0x20
ands r0, r2
cmp r0, 0
beq _0809B148
movs r0, 0x21
b _0809B14A
.align 2, 0
_0809B134: .4byte gUnknown_202E5D8
_0809B138: .4byte gUnknown_8116188
_0809B13C: .4byte gPlayerName
_0809B140: .4byte sub_809B428
_0809B144: .4byte gUnknown_8116148
_0809B148:
movs r0, 0x1
_0809B14A:
orrs r0, r1
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x10]
ldr r0, [sp, 0x30]
adds r1, r4, 0
adds r2, r7, 0
mov r3, r8
bl sub_8014248
ldr r0, _0809B184
ldr r0, [r0]
ldr r1, _0809B188
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0809B176
movs r0, 0x1
bl sub_809A6E4
_0809B176:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0809B184: .4byte gUnknown_3001B64
_0809B188: .4byte 0x00000424
thumb_func_end sub_809B028
thumb_func_start sub_809B18C
sub_809B18C:
push {lr}
adds r1, r0, 0
ldr r2, _0809B1BC
cmp r1, 0
beq _0809B1A2
ldr r0, [r2]
movs r3, 0x86
lsls r3, 3
adds r0, r3
ldr r0, [r0]
str r0, [r1]
_0809B1A2:
movs r1, 0
ldr r0, [r2]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x3
bne _0809B1B4
movs r1, 0x1
_0809B1B4:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_0809B1BC: .4byte gUnknown_3001B64
thumb_func_end sub_809B18C
thumb_func_start sub_809B1C0
sub_809B1C0:
push {lr}
adds r3, r2, 0
movs r2, 0
bl sub_809B1D4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_809B1C0
thumb_func_start sub_809B1D4
sub_809B1D4:
push {r4-r7,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
adds r7, r3, 0
cmp r4, 0xB
beq _0809B1E8
cmp r4, 0xC
beq _0809B1F0
b _0809B202
_0809B1E8:
adds r0, r5, 0
bl sub_8021700
b _0809B1F8
_0809B1F0:
bl sub_8001D88
bl sub_802FCF0
_0809B1F8:
lsls r0, 24
cmp r0, 0
beq _0809B202
movs r0, 0
b _0809B24C
_0809B202:
movs r0, 0x4
movs r1, 0
bl sub_809A680
ldr r0, _0809B254
ldr r1, [r0]
ldr r2, _0809B258
adds r0, r1, r2
str r4, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r1, r3
movs r2, 0
str r2, [r0]
adds r3, 0x4
adds r0, r1, r3
str r2, [r0]
movs r0, 0x84
lsls r0, 3
adds r2, r1, r0
movs r0, 0x1
str r0, [r2]
ldr r2, _0809B25C
adds r0, r1, r2
str r5, [r0]
adds r3, 0xC
adds r0, r1, r3
str r6, [r0]
adds r2, 0x8
adds r0, r1, r2
str r7, [r0]
adds r3, 0x8
adds r1, r3
movs r0, 0x1
negs r0, r0
str r0, [r1]
movs r0, 0x1
_0809B24C:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0809B254: .4byte gUnknown_3001B64
_0809B258: .4byte 0x00000414
_0809B25C: .4byte 0x00000424
thumb_func_end sub_809B1D4
thumb_func_start sub_809B260
sub_809B260:
push {lr}
adds r1, r0, 0
ldr r2, _0809B290
cmp r1, 0
beq _0809B276
ldr r0, [r2]
movs r3, 0x86
lsls r3, 3
adds r0, r3
ldr r0, [r0]
str r0, [r1]
_0809B276:
movs r1, 0
ldr r0, [r2]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x3
bne _0809B288
movs r1, 0x1
_0809B288:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_0809B290: .4byte gUnknown_3001B64
thumb_func_end sub_809B260
thumb_func_start sub_809B294
sub_809B294:
push {lr}
movs r0, 0x3
bl sub_80063D8
ldr r0, _0809B2B4
ldr r0, [r0]
adds r0, 0xC
movs r2, 0x1
negs r2, r2
movs r1, 0
movs r3, 0
bl sub_809B2B8
pop {r0}
bx r0
.align 2, 0
_0809B2B4: .4byte gUnknown_3001B64
thumb_func_end sub_809B294
thumb_func_start sub_809B2B8
sub_809B2B8:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
adds r4, r0, 0
adds r7, r3, 0
lsls r1, 16
lsrs r5, r1, 16
lsls r2, 16
asrs r6, r2, 16
strh r5, [r4]
cmp r7, 0
bne _0809B2F6
cmp r5, 0
bne _0809B2DE
str r7, [r4, 0x4]
movs r0, 0
b _0809B3FC
_0809B2DE:
movs r0, 0x4
ands r0, r5
cmp r0, 0
bne _0809B2E8
b _0809B3FA
_0809B2E8:
bl sub_8014490
movs r0, 0
movs r1, 0x1
bl sub_809A680
b _0809B3FA
_0809B2F6:
movs r0, 0x1
str r0, [r4, 0x4]
adds r0, 0xFF
ands r0, r5
cmp r0, 0
beq _0809B32A
cmp r6, 0
bge _0809B318
ldr r0, _0809B310
ldr r1, _0809B314
bl strcpy
b _0809B32A
.align 2, 0
_0809B310: .4byte gUnknown_202E5D8
_0809B314: .4byte gUnknown_8116180
_0809B318:
ldr r0, _0809B3D0
ldr r1, _0809B3D4
lsls r2, r6, 2
adds r2, r6
lsls r2, 4
ldr r3, _0809B3D8
adds r2, r3
bl ExpandPlaceholdersBuffer
_0809B32A:
ldr r0, _0809B3DC
mov r8, r0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x3
bne _0809B344
adds r4, 0x8
ldr r1, _0809B3E0
adds r0, r4, 0
adds r2, r7, 0
bl ExpandPlaceholdersBuffer
adds r7, r4, 0
_0809B344:
adds r0, r6, 0
bl sub_809AE3C
ldr r1, _0809B3E4
mov r9, r1
movs r1, 0x1
negs r1, r1
mov r12, r1
movs r2, 0
str r2, [sp]
movs r1, 0x3
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r0, [sp, 0xC]
movs r6, 0x80
lsls r6, 1
adds r0, r5, 0
ands r0, r6
movs r1, 0
cmp r0, 0
beq _0809B370
movs r1, 0xC
_0809B370:
movs r4, 0x80
lsls r4, 2
adds r0, r5, 0
ands r0, r4
cmp r0, 0
beq _0809B380
movs r0, 0x4
orrs r1, r0
_0809B380:
mov r0, r8
ldr r3, [r0]
ldr r2, [r3]
cmp r2, 0x3
bne _0809B38E
movs r0, 0x10
orrs r1, r0
_0809B38E:
cmp r2, 0x2
bne _0809B396
movs r0, 0x10
orrs r1, r0
_0809B396:
adds r2, r1, 0
movs r1, 0x20
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _0809B3A4
orrs r2, r1
_0809B3A4:
lsrs r1, r5, 6
movs r0, 0x1
ands r1, r0
orrs r1, r2
movs r0, 0x80
ands r0, r5
cmp r0, 0
beq _0809B3B6
orrs r1, r6
_0809B3B6:
movs r0, 0x4
ands r0, r5
cmp r0, 0
beq _0809B3C0
orrs r1, r4
_0809B3C0:
ldr r0, [r3, 0x4]
cmp r0, r12
beq _0809B3E8
movs r0, 0x2
orrs r0, r1
lsls r0, 16
b _0809B3EA
.align 2, 0
_0809B3D0: .4byte gUnknown_202E5D8
_0809B3D4: .4byte gUnknown_8116188
_0809B3D8: .4byte gPlayerName
_0809B3DC: .4byte gUnknown_3001B64
_0809B3E0: .4byte gUnknown_8116190
_0809B3E4: .4byte sub_809B428
_0809B3E8:
lsls r0, r1, 16
_0809B3EA:
lsrs r0, 16
str r0, [sp, 0x10]
adds r0, r7, 0
mov r1, r9
mov r2, r12
movs r3, 0
bl sub_8014248
_0809B3FA:
movs r0, 0x1
_0809B3FC:
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_809B2B8
thumb_func_start sub_809B40C
sub_809B40C:
push {lr}
ldr r0, [r0, 0x4]
cmp r0, 0
beq _0809B41C
cmp r0, 0x3
bhi _0809B420
cmp r0, 0x2
bcc _0809B420
_0809B41C:
movs r0, 0
b _0809B422
_0809B420:
movs r0, 0x1
_0809B422:
pop {r1}
bx r1
thumb_func_end sub_809B40C
thumb_func_start sub_809B428
sub_809B428:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r2, 0
ldrb r0, [r5, 0x2]
cmp r0, 0x4F
beq _0809B44C
cmp r0, 0x4F
bgt _0809B43E
cmp r0, 0x49
beq _0809B444
b _0809B46A
_0809B43E:
cmp r0, 0x57
beq _0809B454
b _0809B46A
_0809B444:
movs r0, 0x1E
bl sub_8099A34
b _0809B462
_0809B44C:
movs r0, 0x1E
bl sub_8099A48
b _0809B462
_0809B454:
bl sub_8099B94
lsls r0, 24
cmp r0, 0
beq _0809B462
adds r0, r5, 0
b _0809B46C
_0809B462:
adds r1, r4, 0
adds r1, 0x21
movs r0, 0x1
strb r0, [r1]
_0809B46A:
movs r0, 0
_0809B46C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_809B428
thumb_func_start sub_809B474
sub_809B474:
push {r4-r6,lr}
ldr r0, _0809B498
ldr r1, [r0]
ldr r2, [r1]
adds r6, r0, 0
cmp r2, 0x3
bls _0809B56E
cmp r2, 0x4
bne _0809B56E
movs r5, 0x84
lsls r5, 3
adds r0, r1, r5
ldr r0, [r0]
cmp r0, 0x1
beq _0809B49C
cmp r0, 0x2
beq _0809B508
b _0809B56E
.align 2, 0
_0809B498: .4byte gUnknown_3001B64
_0809B49C:
bl sub_809B648
lsls r0, 24
cmp r0, 0
bne _0809B4B0
ldr r0, [r6]
adds r0, r5
movs r1, 0x3
str r1, [r0]
b _0809B4E8
_0809B4B0:
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r4, [r0]
cmp r4, 0
beq _0809B4F8
ldr r0, [r4, 0x4]
cmp r0, 0
beq _0809B4F2
bl sub_809B294
ldr r0, [r4, 0x4]
bl _call_via_r0
lsls r0, 24
cmp r0, 0
bne _0809B4F2
ldr r1, [r6]
movs r3, 0x86
lsls r3, 3
adds r2, r1, r3
movs r0, 0x1
negs r0, r0
str r0, [r2]
adds r1, r5
movs r0, 0x3
str r0, [r1]
_0809B4E8:
movs r0, 0
movs r1, 0x1
bl sub_809A680
b _0809B56E
_0809B4F2:
ldrh r0, [r4]
bl sub_809A6E4
_0809B4F8:
ldr r0, _0809B534
ldr r1, [r0]
movs r2, 0x84
lsls r2, 3
adds r1, r2
movs r2, 0x2
str r2, [r1]
adds r6, r0, 0
_0809B508:
ldr r0, [r6]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r4, [r0]
cmp r4, 0
beq _0809B54E
ldr r0, [r4, 0xC]
bl _call_via_r0
adds r2, r0, 0
cmp r2, 0x1
bls _0809B56E
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r1, r0, r3
cmp r2, 0x2
bne _0809B538
movs r0, 0x1
negs r0, r0
b _0809B53A
.align 2, 0
_0809B534: .4byte gUnknown_3001B64
_0809B538:
movs r0, 0
_0809B53A:
str r0, [r1]
ldr r0, [r4, 0x8]
cmp r0, 0
beq _0809B546
bl _call_via_r0
_0809B546:
ldrh r0, [r4]
bl sub_809A6F8
b _0809B558
_0809B54E:
bl sub_809B648
lsls r0, 24
cmp r0, 0
bne _0809B56E
_0809B558:
ldr r0, _0809B578
ldr r0, [r0]
movs r1, 0x84
lsls r1, 3
adds r0, r1
movs r1, 0x3
str r1, [r0]
movs r0, 0
movs r1, 0x1
bl sub_809A680
_0809B56E:
bl sub_809B57C
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0809B578: .4byte gUnknown_3001B64
thumb_func_end sub_809B474
thumb_func_start sub_809B57C
sub_809B57C:
push {r4,r5,lr}
sub sp, 0x8
bl xxx_draw_string_80144C4
ldr r5, _0809B5C8
ldr r0, [r5]
ldr r1, [r0]
cmp r1, 0x3
bhi _0809B5E4
cmp r1, 0x1
bcc _0809B5E4
movs r4, 0x84
lsls r4, 3
adds r0, r4
ldr r0, [r0]
cmp r0, 0
beq _0809B5CC
cmp r0, 0x3
beq _0809B5CC
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0809B5E4
ldr r1, [sp]
movs r0, 0x1
bl sub_809D9E0
ldr r1, [r5]
adds r2, r1, r4
movs r0, 0x3
str r0, [r2]
movs r0, 0x86
lsls r0, 3
adds r1, r0
ldr r0, [sp]
str r0, [r1]
b _0809B5E4
.align 2, 0
_0809B5C8: .4byte gUnknown_3001B64
_0809B5CC:
add r0, sp, 0x4
bl sub_80144A4
adds r4, r0, 0
cmp r4, 0
bne _0809B5E4
movs r0, 0
bl sub_809D9B8
ldr r0, _0809B5FC
ldr r0, [r0]
str r4, [r0]
_0809B5E4:
ldr r0, _0809B5FC
ldr r0, [r0]
ldr r1, _0809B600
adds r0, r1
ldr r0, [r0]
cmp r0, 0
bge _0809B604
movs r0, 0
movs r1, 0
bl sub_8005838
b _0809B60C
.align 2, 0
_0809B5FC: .4byte gUnknown_3001B64
_0809B600: .4byte 0x00000434
_0809B604:
movs r0, 0
movs r1, 0x5
bl sub_8005838
_0809B60C:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_809B57C
thumb_func_start sub_809B614
sub_809B614:
push {lr}
bl sub_80060EC
ldr r0, _0809B62C
ldr r2, _0809B630
ldrh r1, [r2]
strh r1, [r0]
ldr r0, _0809B634
ands r0, r1
strh r0, [r2]
pop {r0}
bx r0
.align 2, 0
_0809B62C: .4byte gUnknown_20399DE
_0809B630: .4byte gUnknown_20399DC
_0809B634: .4byte 0x0000fffd
thumb_func_end sub_809B614
thumb_func_start sub_809B638
sub_809B638:
push {lr}
bl xxx_call_update_bg_vram
pop {r0}
bx r0
thumb_func_end sub_809B638
thumb_func_start nullsub_210
nullsub_210:
bx lr
thumb_func_end nullsub_210
thumb_func_start sub_809B648
sub_809B648:
push {r4-r6,lr}
sub sp, 0x24
ldr r0, _0809B66C
ldr r1, [r0]
ldr r2, _0809B670
adds r1, r2
ldr r1, [r1]
subs r1, 0x2
adds r6, r0, 0
cmp r1, 0x2C
bls _0809B662
bl _0809C392
_0809B662:
lsls r0, r1, 2
ldr r1, _0809B674
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809B66C: .4byte gUnknown_3001B64
_0809B670: .4byte 0x00000414
_0809B674: .4byte _0809B678
.align 2, 0
_0809B678:
.4byte _0809B72C
.4byte _0809B772
.4byte _0809B7AC
.4byte _0809B834
.4byte _0809B89C
.4byte _0809B8FC
.4byte _0809B91C
.4byte _0809B944
.4byte _0809B9D2
.4byte _0809BA2A
.4byte _0809BAA8
.4byte _0809BB66
.4byte _0809BBDA
.4byte _0809BBDA
.4byte _0809BC26
.4byte _0809BC68
.4byte _0809C1B4
.4byte _0809BC78
.4byte _0809C1C2
.4byte _0809C1C2
.4byte _0809C1C8
.4byte _0809BCBC
.4byte _0809BCBC
.4byte _0809BD1C
.4byte _0809BD64
.4byte _0809BDE8
.4byte _0809BE30
.4byte _0809BE40
.4byte _0809BE50
.4byte _0809BE60
.4byte _0809BE9C
.4byte _0809BEB8
.4byte _0809BED4
.4byte _0809BF70
.4byte _0809BFFC
.4byte _0809C072
.4byte _0809C0B8
.4byte _0809C0FC
.4byte _0809C148
.4byte _0809C158
.4byte _0809C168
.4byte _0809C204
.4byte _0809C238
.4byte _0809C280
.4byte _0809C32A
_0809B72C:
ldr r2, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r2, r3
ldr r0, [r0]
cmp r0, 0x1
beq _0809B780
ldr r0, _0809B754
ldrh r0, [r0, 0x2]
movs r1, 0x3
ands r0, r1
cmp r0, 0
beq _0809B758
movs r0, 0x86
lsls r0, 3
adds r1, r2, r0
movs r0, 0x1
str r0, [r1]
bl _0809C392
.align 2, 0
_0809B754: .4byte gRealInputs
_0809B758:
bl sub_8094D14
lsls r0, 24
cmp r0, 0
beq _0809B784
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x2
str r1, [r0]
bl _0809C392
_0809B772:
ldr r0, [r6]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809B78A
_0809B780:
bl sub_809B294
_0809B784:
movs r0, 0x1
bl _0809C394
_0809B78A:
ldr r0, _0809B7A8
ldrh r1, [r0]
ldrh r0, [r0, 0x2]
movs r2, 0x2
ands r0, r2
cmp r0, 0
beq _0809B79C
bl _0809C392
_0809B79C:
ands r1, r2
cmp r1, 0
bne _0809B784
bl _0809C392
.align 2, 0
_0809B7A8: .4byte gRealInputs
_0809B7AC:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809B7F4
bl sub_809B294
ldr r1, [r6]
ldr r2, _0809B7D8
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
bne _0809B7E0
ldr r3, _0809B7DC
adds r0, r1, r3
ldr r1, [r0]
movs r0, 0
bl sub_801602C
b _0809B784
.align 2, 0
_0809B7D8: .4byte 0x00000424
_0809B7DC: .4byte 0x0000042c
_0809B7E0:
ldr r2, _0809B7F0
adds r0, r1, r2
ldr r1, [r0]
movs r0, 0x2
bl sub_801602C
b _0809B784
.align 2, 0
_0809B7F0: .4byte 0x0000042c
_0809B7F4:
bl sub_8016080
cmp r0, 0x3
bne _0809B80C
bl sub_80160D8
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809C1BC
_0809B80C:
cmp r0, 0x2
bne _0809B784
ldr r0, [r6]
ldr r1, _0809B830
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _0809B784
bl sub_80160D8
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
_0809B828:
movs r1, 0
str r1, [r0]
bl _0809C392
.align 2, 0
_0809B830: .4byte 0x00000424
_0809B834:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809B85C
bl sub_809B294
ldr r0, [r6]
ldr r1, _0809B858
adds r0, r1
ldr r1, [r0]
movs r0, 0x1
bl sub_801602C
b _0809B784
.align 2, 0
_0809B858: .4byte 0x0000042c
_0809B85C:
bl sub_8016080
cmp r0, 0x3
bne _0809B874
bl sub_80160D8
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
bl _0809C1BC
_0809B874:
cmp r0, 0x2
beq _0809B87A
b _0809B784
_0809B87A:
ldr r0, [r6]
ldr r3, _0809B898
adds r0, r3
ldr r0, [r0]
cmp r0, 0
bne _0809B888
b _0809B784
_0809B888:
bl sub_80160D8
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
b _0809B828
.align 2, 0
_0809B898: .4byte 0x00000424
_0809B89C:
ldr r0, [r6]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809B8C4
bl sub_809B294
ldr r0, [r6]
ldr r3, _0809B8C0
adds r0, r3
ldr r1, [r0]
movs r0, 0x4
bl sub_80151C0
b _0809B784
.align 2, 0
_0809B8C0: .4byte 0x0000042c
_0809B8C4:
bl sub_80154F0
cmp r0, 0x3
bne _0809B8D4
bl sub_80155F0
bl _0809C1B4
_0809B8D4:
cmp r0, 0x2
beq _0809B8DA
b _0809B784
_0809B8DA:
ldr r0, [r6]
ldr r2, _0809B8F8
adds r0, r2
ldr r0, [r0]
cmp r0, 0
bne _0809B8E8
b _0809B784
_0809B8E8:
bl sub_80155F0
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B828
.align 2, 0
_0809B8F8: .4byte 0x00000424
_0809B8FC:
ldr r0, [r6]
ldr r1, _0809B914
adds r0, r1
ldr r0, [r0]
bl sub_801D014
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809B918
b _0809B932
.align 2, 0
_0809B914: .4byte 0x0000042c
_0809B918: .4byte gUnknown_81161A8
_0809B91C:
ldr r0, [r6]
ldr r3, _0809B93C
adds r0, r3
ldr r0, [r0]
bl sub_801D014
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809B940
_0809B932:
str r1, [r0]
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
.align 2, 0
_0809B93C: .4byte 0x0000042c
_0809B940: .4byte gUnknown_81161B8
_0809B944:
bl sub_809B294
ldr r4, _0809B984
ldr r0, [r4]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809B998
bl sub_809B294
ldr r0, [r4]
ldr r3, _0809B988
adds r0, r3
ldr r0, [r0]
ldr r1, _0809B98C
bl sub_8015080
lsls r0, 24
cmp r0, 0
bne _0809B990
ldr r0, [r4]
_0809B972:
movs r1, 0x86
lsls r1, 3
adds r0, r1
_0809B978:
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl _0809C392
.align 2, 0
_0809B984: .4byte gUnknown_3001B64
_0809B988: .4byte 0x0000042c
_0809B98C: .4byte gUnknown_811610C
_0809B990:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809B998:
bl sub_801516C
cmp r0, 0x2
beq _0809B9BC
cmp r0, 0x3
beq _0809B9A6
b _0809B784
_0809B9A6:
bl sub_8015198
ldr r1, [r4]
movs r2, 0x86
lsls r2, 3
adds r1, r2
str r0, [r1]
bl sub_80151A4
bl _0809C392
_0809B9BC:
ldr r0, [r4]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_80151A4
bl _0809C392
_0809B9D2:
bl sub_809B294
ldr r4, _0809BA08
ldr r0, [r4]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BA1C
bl sub_809B294
ldr r0, [r4]
ldr r2, _0809BA0C
adds r0, r2
ldr r0, [r0]
ldr r1, _0809BA10
bl sub_8015080
lsls r0, 24
cmp r0, 0
bne _0809BA14
ldr r0, [r4]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BA08: .4byte gUnknown_3001B64
_0809BA0C: .4byte 0x0000042c
_0809BA10: .4byte gUnknown_811612C
_0809BA14:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BA1C:
bl sub_801516C
cmp r0, 0x2
beq _0809B9BC
cmp r0, 0x3
beq _0809B9A6
b _0809B784
_0809BA2A:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BA68
bl sub_809B294
ldr r0, [r6]
ldr r2, _0809BA5C
adds r0, r2
ldr r0, [r0]
movs r1, 0x3
bl sub_80211AC
lsls r0, 24
cmp r0, 0
bne _0809BA60
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BA5C: .4byte 0x00000424
_0809BA60:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BA68:
movs r0, 0x1
bl sub_8021274
cmp r0, 0x2
beq _0809BA92
cmp r0, 0x3
beq _0809BA78
b _0809B784
_0809BA78:
bl sub_802132C
ldr r1, [r6]
movs r2, 0x86
lsls r2, 3
adds r1, r2
lsls r0, 24
lsrs r0, 24
str r0, [r1]
bl sub_80213A0
bl _0809C392
_0809BA92:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_80213A0
bl _0809C392
_0809BAA8:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BB10
movs r0, 0
movs r1, 0x12
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_80A2654
lsls r0, 16
asrs r4, r0, 16
bl sub_809B294
movs r0, 0x3
movs r1, 0
movs r2, 0xA
movs r3, 0x1
bl sub_802F73C
lsls r0, 24
cmp r0, 0
bne _0809BAEA
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809B978
_0809BAEA:
movs r5, 0x1
negs r5, r5
cmp r4, r5
beq _0809BB08
adds r0, r4, 0
bl sub_802F848
lsls r0, 24
cmp r0, 0
bne _0809BB08
movs r0, 0
movs r1, 0x12
adds r2, r5, 0
bl sub_80018D8
_0809BB08:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BB10:
movs r0, 0x1
bl sub_802F8A0
cmp r0, 0x2
beq _0809BB50
cmp r0, 0x3
beq _0809BB20
b _0809B784
_0809BB20:
bl sub_802F90C
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
bl sub_80A26B8
adds r2, r0, 0
lsls r2, 16
asrs r2, 16
movs r0, 0
movs r1, 0x12
bl sub_80018D8
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
str r4, [r0]
bl sub_802F974
bl _0809C392
_0809BB50:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_802F974
bl _0809C392
_0809BB66:
ldr r0, [r6]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809BB9A
bl sub_809B294
movs r0, 0x3
movs r1, 0
movs r2, 0xA
bl sub_80302E8
lsls r0, 24
cmp r0, 0
bne _0809BB92
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
_0809BB92:
movs r0, 0x4
bl PlayMenuSoundEffect
b _0809B784
_0809BB9A:
movs r0, 0x1
bl sub_80303AC
cmp r0, 0x2
beq _0809BBC4
cmp r0, 0x3
beq _0809BBAA
b _0809B784
_0809BBAA:
bl sub_8030418
ldr r1, [r6]
movs r2, 0x86
lsls r2, 3
adds r1, r2
lsls r0, 16
asrs r0, 16
str r0, [r1]
bl sub_8030480
bl _0809C392
_0809BBC4:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_8030480
bl _0809C392
_0809BBDA:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BC14
bl sub_809B294
ldr r0, [r6]
ldr r2, _0809BC10
adds r0, r2
ldr r0, [r0]
cmp r0, 0xE
bne _0809BC02
movs r0, 0
movs r1, 0x18
movs r2, 0x1
bl sub_80018D8
_0809BC02:
movs r0, 0x1
bl sub_8011C28
movs r0, 0
bl PrepareSavePakWrite
b _0809B784
.align 2, 0
_0809BC10: .4byte 0x00000414
_0809BC14:
bl WriteSavePak
lsls r0, 24
cmp r0, 0
beq _0809BC20
b _0809B784
_0809BC20:
bl FinishWriteSavePak
b _0809C392
_0809BC26:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl sub_809B294
adds r0, r4, 0
bl DisplayKangaskhanDialogueSprite
lsls r0, 24
cmp r0, 0
beq _0809BC5C
ldr r0, _0809BC54
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BC58
b _0809C266
.align 2, 0
_0809BC54: .4byte gUnknown_3001B64
_0809BC58: .4byte gUnknown_81161C8
_0809BC5C:
ldr r0, _0809BC64
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809BC64: .4byte gUnknown_3001B64
_0809BC68:
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BC74
b _0809C266
.align 2, 0
_0809BC74: .4byte gUnknown_81161D8
_0809BC78:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl sub_809B294
adds r0, r4, 0
bl CreateFelicityBank
lsls r0, 24
cmp r0, 0
beq _0809BCB0
ldr r0, _0809BCA8
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BCAC
b _0809C266
.align 2, 0
_0809BCA8: .4byte gUnknown_3001B64
_0809BCAC: .4byte gUnknown_81161E8
_0809BCB0:
ldr r0, _0809BCB8
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809BCB8: .4byte gUnknown_3001B64
_0809BCBC:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r4, r0, 24
bl sub_809B294
ldr r0, _0809BCE0
ldr r0, [r0]
ldr r2, _0809BCE4
adds r0, r2
ldr r0, [r0]
cmp r0, 0x17
bne _0809BCE8
negs r0, r4
orrs r0, r4
lsrs r0, 31
b _0809BCF0
.align 2, 0
_0809BCE0: .4byte gUnknown_3001B64
_0809BCE4: .4byte 0x00000414
_0809BCE8:
movs r0, 0x2
cmp r4, 0
beq _0809BCF0
movs r0, 0x3
_0809BCF0:
bl DisplayKeckleonDialogueSprite
lsls r0, 24
cmp r0, 0
beq _0809BD10
ldr r0, _0809BD08
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BD0C
b _0809C266
.align 2, 0
_0809BD08: .4byte gUnknown_3001B64
_0809BD0C: .4byte gUnknown_81161F8
_0809BD10:
ldr r0, _0809BD18
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809BD18: .4byte gUnknown_3001B64
_0809BD1C:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl sub_809B294
adds r0, r4, 0
bl sub_801FB50
lsls r0, 24
cmp r0, 0
beq _0809BD54
ldr r0, _0809BD4C
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BD50
b _0809C266
.align 2, 0
_0809BD4C: .4byte gUnknown_3001B64
_0809BD50: .4byte gUnknown_8116208
_0809BD54:
ldr r0, _0809BD60
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BD60: .4byte gUnknown_3001B64
_0809BD64:
ldr r0, [r6]
movs r1, 0x84
lsls r1, 3
adds r0, r1
ldr r0, [r0]
cmp r0, 0x1
bne _0809BD84
bl sub_809B294
movs r0, 0
movs r1, 0x39
bl sub_80015C0
bl sub_802465C
b _0809B784
_0809BD84:
bl sub_80246F0
adds r4, r0, 0
movs r0, 0
movs r1, 0x39
bl sub_8001658
cmp r0, 0
bne _0809BDB2
bl sub_80247B4
lsls r0, 24
cmp r0, 0
beq _0809BDB2
movs r0, 0
movs r1, 0x39
movs r2, 0x1
bl sub_80018D8
movs r0, 0x46
movs r1, 0
bl GroundMap_ExecuteEvent
_0809BDB2:
cmp r4, 0x3
bne _0809BDCC
bl CleanLuminousCave
ldr r0, _0809BDC8
ldr r0, [r0]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809C1BC
.align 2, 0
_0809BDC8: .4byte gUnknown_3001B64
_0809BDCC:
cmp r4, 0x2
beq _0809BDD2
b _0809B784
_0809BDD2:
bl CleanLuminousCave
ldr r0, _0809BDE4
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B828
.align 2, 0
_0809BDE4: .4byte gUnknown_3001B64
_0809BDE8:
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl sub_809B294
adds r0, r4, 0
bl CreateWigglytuffShop
lsls r0, 24
cmp r0, 0
beq _0809BE20
ldr r0, _0809BE18
ldr r0, [r0]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809BE1C
b _0809C266
.align 2, 0
_0809BE18: .4byte gUnknown_3001B64
_0809BE1C: .4byte gUnknown_8116218
_0809BE20:
ldr r0, _0809BE2C
ldr r0, [r0]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809B978
.align 2, 0
_0809BE2C: .4byte gUnknown_3001B64
_0809BE30:
ldr r0, [r6]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BE3C
b _0809C266
.align 2, 0
_0809BE3C: .4byte gUnknown_8116228
_0809BE40:
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809BE4C
b _0809C266
.align 2, 0
_0809BE4C: .4byte gUnknown_8116238
_0809BE50:
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BE5C
b _0809C266
.align 2, 0
_0809BE5C: .4byte gUnknown_8116248
_0809BE60:
bl sub_809B294
movs r0, 0x98
lsls r0, 1
bl CreateHelperPelipperMenu
lsls r0, 24
cmp r0, 0
bne _0809BE84
ldr r0, _0809BE80
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
b _0809B978
.align 2, 0
_0809BE80: .4byte gUnknown_3001B64
_0809BE84:
ldr r0, _0809BE94
ldr r0, [r0]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809BE98
b _0809C266
.align 2, 0
_0809BE94: .4byte gUnknown_3001B64
_0809BE98: .4byte gUnknown_8116258
_0809BE9C:
movs r0, 0x4
bl PlayMenuSoundEffect
ldr r0, _0809BEB0
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BEB4
b _0809C266
.align 2, 0
_0809BEB0: .4byte gUnknown_3001B64
_0809BEB4: .4byte gUnknown_8116268
_0809BEB8:
movs r0, 0x4
bl PlayMenuSoundEffect
ldr r0, _0809BECC
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809BED0
b _0809C266
.align 2, 0
_0809BECC: .4byte gUnknown_3001B64
_0809BED0: .4byte gUnknown_8116278
_0809BED4:
mov r0, sp
bl sub_8099328
lsls r0, 24
cmp r0, 0
beq _0809BF4E
add r1, sp, 0x4
add r2, sp, 0x8
movs r0, 0x2
bl sub_8001B88
ldr r0, [sp, 0x8]
cmp r0, 0x7
bgt _0809BF4E
add r4, sp, 0xC
_0809BEF2:
lsls r1, r0, 24
lsrs r1, 24
mov r0, sp
ldrb r2, [r0]
adds r0, r4, 0
bl sub_8096AF8
ldrb r0, [r4]
cmp r0, 0
beq _0809BF44
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
movs r0, 0x2
bl ScenarioCalc
ldr r0, _0809BF40
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r2, r0, r1
ldrh r1, [r4, 0x2]
lsls r1, 16
asrs r1, 16
negs r0, r1
orrs r0, r1
lsrs r1, r0, 31
movs r3, 0x4
ldrsh r0, [r4, r3]
cmp r0, 0
beq _0809BF30
adds r1, 0x2
_0809BF30:
str r1, [r2]
cmp r1, 0
beq _0809BF38
b _0809C392
_0809BF38:
movs r0, 0x3
str r0, [r2]
b _0809C392
.align 2, 0
_0809BF40: .4byte gUnknown_3001B64
_0809BF44:
ldr r0, [sp, 0x8]
adds r0, 0x1
str r0, [sp, 0x8]
cmp r0, 0x7
ble _0809BEF2
_0809BF4E:
ldr r0, _0809BF6C
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0
str r1, [r0]
bl sub_8096BD0
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ScenarioCalc
b _0809C392
.align 2, 0
_0809BF6C: .4byte gUnknown_3001B64
_0809BF70:
mov r5, sp
adds r5, 0x1
adds r0, r5, 0
bl sub_8099328
lsls r0, 24
cmp r0, 0
bne _0809BF82
b _0809C392
_0809BF82:
add r1, sp, 0x14
add r2, sp, 0x18
movs r0, 0x2
bl sub_8001B88
add r4, sp, 0x1C
ldr r1, [sp, 0x18]
lsls r1, 24
lsrs r1, 24
ldrb r2, [r5]
adds r0, r4, 0
bl sub_8096AF8
ldrb r0, [r4]
cmp r0, 0
bne _0809BFA4
b _0809C392
_0809BFA4:
ldr r0, [sp, 0x18]
lsls r0, 24
lsrs r0, 24
ldrb r1, [r5]
bl sub_802DB28
lsls r0, 24
cmp r0, 0
bne _0809BFB8
b _0809C392
_0809BFB8:
movs r0, 0
movs r1, 0x19
bl sub_8001658
cmp r0, 0x63
bgt _0809BFCE
adds r2, r0, 0x1
movs r0, 0
movs r1, 0x19
bl sub_80018D8
_0809BFCE:
movs r0, 0
movs r1, 0x39
movs r2, 0x1
bl sub_80018D8
ldr r1, [sp, 0x14]
ldr r2, [sp, 0x18]
adds r2, 0x1
movs r0, 0x2
bl ScenarioCalc
ldr r0, _0809BFF4
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809BFF8
b _0809C266
.align 2, 0
_0809BFF4: .4byte gUnknown_3001B64
_0809BFF8: .4byte gUnknown_8116288
_0809BFFC:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809C036
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
lsrs r0, 24
negs r4, r0
orrs r4, r0
asrs r4, 31
movs r0, 0x4
ands r4, r0
bl sub_809B294
adds r0, r4, 0
bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C032
bl _0809B784
_0809C032:
ldr r0, [r6]
b _0809B972
_0809C036:
bl sub_802FE58
cmp r0, 0x2
beq _0809C05E
cmp r0, 0x3
beq _0809C046
bl _0809B784
_0809C046:
bl sub_802FED0
ldr r1, [r6]
movs r2, 0x86
lsls r2, 3
adds r1, r2
lsls r0, 16
asrs r0, 16
str r0, [r1]
bl CleanMakuhitaShop
b _0809C392
_0809C05E:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl CleanMakuhitaShop
b _0809C392
_0809C072:
movs r4, 0x1
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809C082
movs r4, 0x5
_0809C082:
bl sub_809B294
adds r0, r4, 0
bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C0A8
ldr r0, _0809C0A0
ldr r0, [r0]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809C0A4
b _0809C266
.align 2, 0
_0809C0A0: .4byte gUnknown_3001B64
_0809C0A4: .4byte gUnknown_8116298
_0809C0A8:
ldr r0, _0809C0B4
ldr r0, [r0]
movs r2, 0x86
lsls r2, 3
adds r0, r2
b _0809B978
.align 2, 0
_0809C0B4: .4byte gUnknown_3001B64
_0809C0B8:
movs r4, 0x2
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809C0C8
movs r4, 0x6
_0809C0C8:
bl sub_809B294
adds r0, r4, 0
bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C0F0
ldr r0, _0809C0E8
ldr r0, [r0]
movs r3, 0x83
lsls r3, 3
adds r0, r3
ldr r1, _0809C0EC
b _0809C266
.align 2, 0
_0809C0E8: .4byte gUnknown_3001B64
_0809C0EC: .4byte gUnknown_81162A8
_0809C0F0:
ldr r0, _0809C0F8
ldr r0, [r0]
b _0809B972
.align 2, 0
_0809C0F8: .4byte gUnknown_3001B64
_0809C0FC:
movs r4, 0x3
movs r0, 0x4
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809C10C
movs r4, 0x7
_0809C10C:
bl sub_809B294
adds r0, r4, 0
bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C134
ldr r0, _0809C12C
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C130
b _0809C266
.align 2, 0
_0809C12C: .4byte gUnknown_3001B64
_0809C130: .4byte gUnknown_81162B8
_0809C134:
ldr r0, _0809C144
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809B978
.align 2, 0
_0809C144: .4byte gUnknown_3001B64
_0809C148:
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809C154
b _0809C266
.align 2, 0
_0809C154: .4byte gUnknown_81162C8
_0809C158:
ldr r0, [r6]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C164
b _0809C266
.align 2, 0
_0809C164: .4byte gUnknown_81162D8
_0809C168:
bl sub_809B294
bl sub_803B050
lsls r0, 24
cmp r0, 0
beq _0809C1A0
ldr r4, _0809C194
ldr r0, [r4]
ldr r3, _0809C198
adds r0, r3
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_803B100
ldr r0, [r4]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C19C
b _0809C266
.align 2, 0
_0809C194: .4byte gUnknown_3001B64
_0809C198: .4byte 0x000005a4
_0809C19C: .4byte gUnknown_81162E8
_0809C1A0:
ldr r0, _0809C1B0
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809B978
.align 2, 0
_0809C1B0: .4byte gUnknown_3001B64
_0809C1B4:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
_0809C1BC:
movs r1, 0x1
str r1, [r0]
b _0809C392
_0809C1C2:
bl sub_809B294
b _0809C392
_0809C1C8:
movs r0, 0x2
bl sub_80252F0
lsls r0, 24
cmp r0, 0
beq _0809C1EC
ldr r0, _0809C1E4
ldr r0, [r0]
movs r2, 0x83
lsls r2, 3
adds r0, r2
ldr r1, _0809C1E8
b _0809C266
.align 2, 0
_0809C1E4: .4byte gUnknown_3001B64
_0809C1E8: .4byte gUnknown_81162F8
_0809C1EC:
ldr r0, _0809C200
ldr r0, [r0]
movs r3, 0x86
lsls r3, 3
adds r0, r3
movs r1, 0x2
negs r1, r1
str r1, [r0]
b _0809C392
.align 2, 0
_0809C200: .4byte gUnknown_3001B64
_0809C204:
ldr r1, [r6]
ldr r2, _0809C230
adds r0, r1, r2
ldr r0, [r0]
movs r3, 0x85
lsls r3, 3
adds r1, r3
ldr r1, [r1]
bl sub_809CCDC
ldr r1, [r6]
movs r3, 0x86
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
movs r0, 0x83
lsls r0, 3
adds r1, r0
ldr r0, _0809C234
str r0, [r1]
bl _0809B784
.align 2, 0
_0809C230: .4byte 0x00000424
_0809C234: .4byte gUnknown_8116308
_0809C238:
ldr r0, [r6]
movs r2, 0x85
lsls r2, 3
adds r1, r0, r2
ldr r5, [r1]
ldr r3, _0809C26C
adds r0, r3
ldrb r4, [r0]
bl sub_809B294
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_801B60C
lsls r0, 24
cmp r0, 0
beq _0809C274
ldr r0, [r6]
movs r1, 0x83
lsls r1, 3
adds r0, r1
ldr r1, _0809C270
_0809C266:
str r1, [r0]
bl _0809B784
.align 2, 0
_0809C26C: .4byte 0x00000424
_0809C270: .4byte gUnknown_8116318
_0809C274:
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
bl _0809B978
_0809C280:
ldr r0, [r6]
movs r3, 0x84
lsls r3, 3
adds r0, r3
ldr r0, [r0]
cmp r0, 0x1
bne _0809C2B8
bl sub_809B294
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
lsls r0, 24
cmp r0, 0
beq _0809C2B2
bl _0809B784
_0809C2B2:
ldr r0, [r6]
bl _0809B972
_0809C2B8:
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x2
beq _0809C320
cmp r0, 0x3
beq _0809C2CA
bl _0809B784
_0809C2CA:
bl sub_801A8AC
adds r5, r0, 0
ldr r0, _0809C304
ldr r0, [r0]
lsls r1, r5, 2
adds r0, r1
ldrb r4, [r0, 0x2]
adds r0, r4, 0
bl IsEdibleItem
lsls r0, 24
cmp r0, 0
beq _0809C30C
ldr r0, _0809C308
adds r1, r4, 0
movs r2, 0
bl sub_8090DC4
adds r0, r5, 0
bl ShiftItemsDownFrom
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
movs r1, 0x1
b _0809C318
.align 2, 0
_0809C304: .4byte gTeamInventory_203B460
_0809C308: .4byte gUnknown_202DE58
_0809C30C:
ldr r0, [r6]
movs r3, 0x86
lsls r3, 3
adds r0, r3
_0809C314:
movs r1, 0x1
negs r1, r1
_0809C318:
str r1, [r0]
bl sub_801A928
b _0809C392
_0809C320:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
b _0809C314
_0809C32A:
adds r4, r6, 0
ldr r0, [r4]
movs r2, 0x84
lsls r2, 3
adds r0, r2
ldr r0, [r0]
cmp r0, 0x1
bne _0809C36C
bl sub_809B294
ldr r1, [r4]
ldr r3, _0809C368
adds r0, r1, r3
ldr r0, [r0]
movs r2, 0x85
lsls r2, 3
adds r1, r2
ldr r1, [r1]
bl DrawCredits
lsls r0, 24
cmp r0, 0
beq _0809C35C
bl _0809B784
_0809C35C:
ldr r0, [r4]
movs r3, 0x86
lsls r3, 3
adds r0, r3
bl _0809B978
.align 2, 0
_0809C368: .4byte 0x00000424
_0809C36C:
bl sub_8035574
cmp r0, 0x3
bls _0809C378
bl _0809B784
_0809C378:
cmp r0, 0x2
bcs _0809C380
bl _0809B784
_0809C380:
ldr r0, [r6]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x1
negs r1, r1
str r1, [r0]
bl sub_803565C
_0809C392:
movs r0, 0
_0809C394:
add sp, 0x24
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_809B648
thumb_func_start sub_809C39C
sub_809C39C:
push {lr}
bl sub_801D178
ldr r1, _0809C3D4
ldr r1, [r1]
movs r2, 0x86
lsls r2, 3
adds r1, r2
str r0, [r1]
cmp r0, 0x3
bne _0809C3CC
bl sub_801D1D4
lsls r0, 24
lsrs r0, 24
bl sub_8002694
lsls r0, 16
asrs r0, 16
movs r2, 0x1
negs r2, r2
movs r1, 0
bl sub_8098D1C
_0809C3CC:
bl sub_801D1E0
pop {r0}
bx r0
.align 2, 0
_0809C3D4: .4byte gUnknown_3001B64
thumb_func_end sub_809C39C
thumb_func_start sub_809C3D8
sub_809C3D8:
push {lr}
bl sub_801D178
ldr r1, _0809C410
ldr r1, [r1]
movs r2, 0x86
lsls r2, 3
adds r1, r2
str r0, [r1]
cmp r0, 0x3
bne _0809C408
bl sub_801D1D4
lsls r0, 24
lsrs r0, 24
bl sub_8002694
lsls r0, 16
asrs r0, 16
movs r2, 0x1
negs r2, r2
movs r1, 0
bl sub_8098D1C
_0809C408:
bl sub_801D1E0
pop {r0}
bx r0
.align 2, 0
_0809C410: .4byte gUnknown_3001B64
thumb_func_end sub_809C3D8
thumb_func_start sub_809C414
sub_809C414:
push {lr}
bl sub_802540C
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0809C448
ldr r0, _0809C444
ldr r0, [r0]
movs r2, 0x86
lsls r2, 3
adds r0, r2
str r1, [r0]
adds r0, r1, 0
bl sub_8002694
lsls r0, 16
asrs r0, 16
movs r2, 0x1
negs r2, r2
movs r1, 0
bl sub_8098D1C
b _0809C458
.align 2, 0
_0809C444: .4byte gUnknown_3001B64
_0809C448:
ldr r0, _0809C460
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x1
negs r1, r1
str r1, [r0]
_0809C458:
bl sub_8025418
pop {r0}
bx r0
.align 2, 0
_0809C460: .4byte gUnknown_3001B64
thumb_func_end sub_809C414
thumb_func_start sub_809C464
sub_809C464:
push {lr}
bl DeleteTestTracker
bl sub_8001064
bl sub_809965C
pop {r0}
bx r0
thumb_func_end sub_809C464
thumb_func_start sub_809C478
sub_809C478:
push {lr}
sub sp, 0x8
bl sub_80356A0
cmp r0, 0x3
bne _0809C492
ldr r0, _0809C4AC
bl PlaySound
bl InitFlash
bl ClearFlashData
_0809C492:
bl sub_8035758
add r2, sp, 0x4
movs r0, 0x3
mov r1, sp
bl sub_8001B88
movs r0, 0
bl sub_80993C0
add sp, 0x8
pop {r0}
bx r0
.align 2, 0
_0809C4AC: .4byte 0x00000313
thumb_func_end sub_809C478
thumb_func_start sub_809C4B0
sub_809C4B0:
push {r4,r5,lr}
movs r4, 0x1
negs r4, r4
ldr r5, _0809C4FC
ldr r0, [r5]
movs r2, 0x86
lsls r2, 3
adds r1, r0, r2
ldr r0, [r1]
cmp r0, 0
bne _0809C4DE
bl sub_803B168
lsls r0, 16
ldr r1, [r5]
ldr r3, _0809C500
adds r2, r1, r3
asrs r4, r0, 16
lsrs r0, 16
strh r0, [r2]
movs r0, 0x86
lsls r0, 3
adds r1, r0
_0809C4DE:
str r4, [r1]
bl sub_803B1BC
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _0809C4F4
adds r0, r4, 0
movs r1, 0
bl GroundMap_ExecuteEvent
_0809C4F4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0809C4FC: .4byte gUnknown_3001B64
_0809C500: .4byte 0x000005a4
thumb_func_end sub_809C4B0
thumb_func_start sub_809C504
sub_809C504:
push {r4,lr}
sub sp, 0x4
mov r0, sp
bl sub_80282DC
adds r4, r0, 0
cmp r4, 0x1
bne _0809C530
mov r0, sp
ldrb r0, [r0]
bl sub_809927C
ldr r0, _0809C52C
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r0, r1
str r4, [r0]
b _0809C540
.align 2, 0
_0809C52C: .4byte gUnknown_3001B64
_0809C530:
ldr r0, _0809C54C
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r0, r1
movs r1, 0x1
negs r1, r1
str r1, [r0]
_0809C540:
bl sub_80282FC
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809C54C: .4byte gUnknown_3001B64
thumb_func_end sub_809C504
thumb_func_start sub_809C550
sub_809C550:
push {r4,r5,lr}
bl sub_802E90C
adds r4, r0, 0
movs r5, 0
bl sub_802E918
cmp r4, 0x2
beq _0809C586
cmp r4, 0x2
bhi _0809C56C
cmp r4, 0x1
beq _0809C572
b _0809C5AC
_0809C56C:
cmp r4, 0x3
beq _0809C59A
b _0809C5AC
_0809C572:
movs r0, 0x4
movs r1, 0x1D
movs r2, 0x3
bl sub_8001CC4
lsls r0, 24
cmp r0, 0
beq _0809C5AC
movs r5, 0x1
b _0809C5AC
_0809C586:
movs r0, 0x4
movs r1, 0x1F
movs r2, 0x2
bl sub_8001CC4
lsls r0, 24
cmp r0, 0
beq _0809C5AC
movs r5, 0x2
b _0809C5AC
_0809C59A:
movs r0, 0xB
movs r1, 0x33
movs r2, 0x8
bl sub_8001CC4
lsls r0, 24
cmp r0, 0
beq _0809C5AC
movs r5, 0x3
_0809C5AC:
ldr r0, _0809C5C0
ldr r0, [r0]
movs r1, 0x86
lsls r1, 3
adds r0, r1
str r5, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0809C5C0: .4byte gUnknown_3001B64
thumb_func_end sub_809C550
thumb_func_start sub_809C5C4
sub_809C5C4:
push {r4,lr}
ldr r4, _0809C610
movs r0, 0x24
movs r1, 0x6
bl MemoryAlloc
str r0, [r4]
movs r2, 0
str r2, [r0]
str r2, [r0, 0x4]
movs r3, 0
strh r2, [r0, 0x8]
strh r2, [r0, 0xA]
strb r3, [r0, 0xD]
ldr r0, [r4]
strb r3, [r0, 0xE]
ldr r1, [r4]
str r2, [r1, 0x10]
ldr r0, _0809C614
strh r0, [r1, 0x14]
movs r0, 0x23
strh r0, [r1, 0x16]
strb r3, [r1, 0x18]
ldr r1, [r4]
movs r0, 0x3F
strb r0, [r1, 0x19]
ldr r0, [r4]
str r2, [r0, 0x1C]
adds r0, 0x20
strb r3, [r0]
bl nullsub_107
bl sub_809C63C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809C610: .4byte gUnknown_3001B68
_0809C614: .4byte 0x0000ffff
thumb_func_end sub_809C5C4
thumb_func_start sub_809C618
sub_809C618:
push {r4,lr}
bl sub_809C63C
bl nullsub_107
bl nullsub_108
ldr r4, _0809C638
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809C638: .4byte gUnknown_3001B68
thumb_func_end sub_809C618
thumb_func_start sub_809C63C
sub_809C63C:
push {lr}
bl nullsub_108
ldr r0, _0809C654
ldr r0, [r0]
movs r1, 0
str r1, [r0, 0x1C]
adds r0, 0x20
strb r1, [r0]
pop {r0}
bx r0
.align 2, 0
_0809C654: .4byte gUnknown_3001B68
thumb_func_end sub_809C63C
thumb_func_start sub_809C658
sub_809C658:
push {lr}
ldr r0, _0809C670
ldr r0, [r0]
ldrh r0, [r0, 0xA]
cmp r0, 0x5
bhi _0809C6C8
lsls r0, 2
ldr r1, _0809C674
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809C670: .4byte gUnknown_3001B68
_0809C674: .4byte _0809C678
.align 2, 0
_0809C678:
.4byte _0809C6C0
.4byte _0809C6C0
.4byte _0809C6AC
.4byte _0809C690
.4byte _0809C69E
.4byte _0809C6B6
_0809C690:
bl nullsub_111
bl nullsub_112
bl nullsub_113
b _0809C6C8
_0809C69E:
bl nullsub_114
bl nullsub_115
bl nullsub_116
b _0809C6C8
_0809C6AC:
bl nullsub_109
bl nullsub_110
b _0809C6C8
_0809C6B6:
bl nullsub_107
bl nullsub_108
b _0809C6C8
_0809C6C0:
bl nullsub_107
bl nullsub_108
_0809C6C8:
pop {r0}
bx r0
thumb_func_end sub_809C658
thumb_func_start sub_809C6CC
sub_809C6CC:
push {lr}
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _0809C6E8
ldr r1, [r0]
ldrh r0, [r1, 0x8]
cmp r0, r2
beq _0809C6E2
movs r0, 0
strh r2, [r1, 0x8]
strb r0, [r1, 0xE]
_0809C6E2:
pop {r0}
bx r0
.align 2, 0
_0809C6E8: .4byte gUnknown_3001B68
thumb_func_end sub_809C6CC
thumb_func_start sub_809C6EC
sub_809C6EC:
push {lr}
bl sub_8098F88
lsls r0, 24
cmp r0, 0
bne _0809C718
ldr r0, _0809C70C
ldr r0, [r0]
ldrb r0, [r0, 0xC]
cmp r0, 0
bne _0809C710
movs r0, 0x4
bl sub_809C6CC
b _0809C71E
.align 2, 0
_0809C70C: .4byte gUnknown_203B46C
_0809C710:
movs r0, 0x3
bl sub_809C6CC
b _0809C71E
_0809C718:
movs r0, 0x5
bl sub_809C6CC
_0809C71E:
pop {r0}
bx r0
thumb_func_end sub_809C6EC
thumb_func_start sub_809C724
sub_809C724:
ldr r0, _0809C72C
ldr r0, [r0]
ldrh r0, [r0, 0x8]
bx lr
.align 2, 0
_0809C72C: .4byte gUnknown_3001B68
thumb_func_end sub_809C724
thumb_func_start sub_809C730
sub_809C730:
push {lr}
bl sub_809C740
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_809C730
thumb_func_start sub_809C740
sub_809C740:
push {lr}
ldr r0, _0809C750
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0
beq _0809C754
movs r0, 0
b _0809C756
.align 2, 0
_0809C750: .4byte gUnknown_3001B68
_0809C754:
movs r0, 0x1
_0809C756:
pop {r1}
bx r1
thumb_func_end sub_809C740
thumb_func_start nullsub_104
nullsub_104:
bx lr
thumb_func_end nullsub_104
thumb_func_start sub_809C760
sub_809C760:
ldr r0, _0809C76C
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0xE]
bx lr
.align 2, 0
_0809C76C: .4byte gUnknown_3001B68
thumb_func_end sub_809C760
thumb_func_start sub_809C770
sub_809C770:
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
asrs r0, 16
mov r8, r0
lsls r1, 16
asrs r6, r1, 16
ldr r4, _0809C790
ldr r1, [r4]
ldrb r0, [r1, 0xE]
cmp r0, 0
beq _0809C794
movs r0, 0
strb r0, [r1, 0xE]
b _0809CA10
.align 2, 0
_0809C790: .4byte gUnknown_3001B68
_0809C794:
ldrh r0, [r1, 0x8]
cmp r0, 0
bne _0809C79E
bl sub_809C6EC
_0809C79E:
ldr r0, [r4]
ldrb r5, [r0, 0x18]
ldrb r7, [r0, 0x19]
cmp r6, 0x26
bls _0809C7AA
b _0809C8C8
_0809C7AA:
lsls r0, r6, 2
ldr r1, _0809C7B4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809C7B4: .4byte _0809C7B8
.align 2, 0
_0809C7B8:
.4byte _0809C868
.4byte _0809C868
.4byte _0809C868
.4byte _0809C868
.4byte _0809C868
.4byte _0809C868
.4byte _0809C868
.4byte _0809C868
.4byte _0809C868
.4byte _0809C854
.4byte _0809C868
.4byte _0809C868
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C8C8
.4byte _0809C86E
.4byte _0809C8C4
.4byte _0809C8C4
.4byte _0809C8C4
_0809C854:
mov r0, r8
bl sub_8002658
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _0809C864
b _0809CA10
_0809C864:
movs r4, 0x1
b _0809C988
_0809C868:
movs r4, 0x1
movs r5, 0
b _0809C988
_0809C86E:
mov r0, r8
subs r0, 0xA4
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bls _0809C87C
b _0809CA10
_0809C87C:
lsls r0, 2
ldr r1, _0809C888
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809C888: .4byte _0809C88C
.align 2, 0
_0809C88C:
.4byte _0809C8C4
.4byte _0809C8C4
.4byte _0809CA10
.4byte _0809CA10
.4byte _0809C8C4
.4byte _0809C8C4
.4byte _0809C8C4
.4byte _0809CA10
.4byte _0809CA10
.4byte _0809CA10
.4byte _0809C8C4
.4byte _0809C8C4
.4byte _0809C8C4
.4byte _0809C8C4
_0809C8C4:
movs r4, 0
b _0809C988
_0809C8C8:
adds r0, r6, 0
subs r0, 0xC
lsls r0, 16
asrs r0, 16
cmp r0, 0x16
bhi _0809C968
lsls r0, 2
ldr r1, _0809C8E0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809C8E0: .4byte _0809C8E4
.align 2, 0
_0809C8E4:
.4byte _0809C968
.4byte _0809C940
.4byte _0809C968
.4byte _0809C968
.4byte _0809C968
.4byte _0809C968
.4byte _0809C944
.4byte _0809C944
.4byte _0809C948
.4byte _0809C948
.4byte _0809C94C
.4byte _0809C968
.4byte _0809C950
.4byte _0809C950
.4byte _0809C954
.4byte _0809C954
.4byte _0809C958
.4byte _0809C958
.4byte _0809C95C
.4byte _0809C95C
.4byte _0809C960
.4byte _0809C960
.4byte _0809C964
_0809C940:
movs r1, 0
b _0809C974
_0809C944:
movs r1, 0x7
b _0809C974
_0809C948:
movs r1, 0x9
b _0809C974
_0809C94C:
movs r1, 0xA
b _0809C974
_0809C950:
movs r1, 0xB
b _0809C974
_0809C954:
movs r1, 0xD
b _0809C974
_0809C958:
movs r1, 0xF
b _0809C974
_0809C95C:
movs r1, 0x11
b _0809C974
_0809C960:
movs r1, 0x13
b _0809C974
_0809C964:
movs r1, 0x20
b _0809C974
_0809C968:
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r1, r0, 16
_0809C974:
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809CA10
adds r0, r1, 0
bl sub_80A2740
lsls r0, 24
lsrs r7, r0, 24
movs r4, 0x2
_0809C988:
ldr r0, _0809C99C
ldr r2, [r0]
ldr r1, [r2, 0x10]
adds r3, r0, 0
cmp r1, r4
beq _0809C9A0
movs r0, 0x2
str r0, [r2]
b _0809C9DE
.align 2, 0
_0809C99C: .4byte gUnknown_3001B68
_0809C9A0:
cmp r4, 0x1
bne _0809C9CC
ldrb r0, [r2, 0x18]
cmp r5, r0
bne _0809C9B2
movs r1, 0x14
ldrsh r0, [r2, r1]
cmp r0, r8
beq _0809C9BC
_0809C9B2:
strb r4, [r2, 0xC]
ldr r0, [r3]
adds r0, 0x20
strb r4, [r0]
b _0809C9E8
_0809C9BC:
cmp r5, 0
bne _0809C9E8
movs r1, 0x16
ldrsh r0, [r2, r1]
cmp r0, r6
beq _0809C9E8
strb r4, [r2, 0xC]
b _0809C9E8
_0809C9CC:
cmp r4, 0x2
bne _0809C9E8
ldrb r0, [r2, 0x19]
cmp r7, r0
bne _0809C9DE
movs r1, 0x16
ldrsh r0, [r2, r1]
cmp r0, r6
beq _0809C9E8
_0809C9DE:
movs r1, 0x1
strb r1, [r2, 0xC]
ldr r0, [r3]
adds r0, 0x20
strb r1, [r0]
_0809C9E8:
ldr r1, [r3]
ldrb r0, [r1, 0xC]
cmp r0, 0
beq _0809CA10
str r4, [r1, 0x10]
movs r2, 0
mov r0, r8
strh r0, [r1, 0x14]
strh r6, [r1, 0x16]
strb r5, [r1, 0x18]
ldr r0, [r3]
strb r7, [r0, 0x19]
ldr r1, [r3]
ldrh r0, [r1, 0x8]
cmp r0, 0x4
beq _0809CA10
strb r2, [r1, 0xC]
ldr r0, [r3]
adds r0, 0x20
strb r2, [r0]
_0809CA10:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_809C770
thumb_func_start nullsub_105
nullsub_105:
bx lr
thumb_func_end nullsub_105
thumb_func_start sub_809CA20
sub_809CA20:
push {lr}
ldr r1, _0809CA74
ldr r2, [r1]
ldr r0, [r2]
cmp r0, 0
beq _0809CA38
movs r0, 0
str r0, [r2]
movs r0, 0x1F
str r0, [r2, 0x4]
movs r0, 0x1
strb r0, [r2, 0xC]
_0809CA38:
ldr r1, [r1]
ldrb r0, [r1, 0xC]
cmp r0, 0
beq _0809CAE8
ldrh r0, [r1, 0x8]
strh r0, [r1, 0xA]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x4
bne _0809CA5E
ldr r2, [r1, 0x10]
cmp r2, 0
bne _0809CA5E
movs r0, 0x2
strh r0, [r1, 0xA]
str r2, [r1, 0x1C]
adds r1, 0x20
movs r0, 0
strb r0, [r1]
_0809CA5E:
ldr r0, _0809CA74
ldr r0, [r0]
ldrh r0, [r0, 0xA]
cmp r0, 0x5
bhi _0809CADA
lsls r0, 2
ldr r1, _0809CA78
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809CA74: .4byte gUnknown_3001B68
_0809CA78: .4byte _0809CA7C
.align 2, 0
_0809CA7C:
.4byte _0809CAD2
.4byte _0809CAD2
.4byte _0809CABE
.4byte _0809CA94
.4byte _0809CAB0
.4byte _0809CAC8
_0809CA94:
bl nullsub_111
bl nullsub_113
bl nullsub_112
ldr r0, _0809CAAC
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0xD]
b _0809CADA
.align 2, 0
_0809CAAC: .4byte gUnknown_3001B68
_0809CAB0:
bl nullsub_114
bl nullsub_115
bl nullsub_116
b _0809CADA
_0809CABE:
bl nullsub_109
bl nullsub_110
b _0809CADA
_0809CAC8:
bl nullsub_107
bl nullsub_108
b _0809CADA
_0809CAD2:
bl nullsub_107
bl nullsub_108
_0809CADA:
ldr r0, _0809CAE4
ldr r1, [r0]
movs r0, 0
strb r0, [r1, 0xC]
b _0809CB1E
.align 2, 0
_0809CAE4: .4byte gUnknown_3001B68
_0809CAE8:
ldrh r0, [r1, 0xA]
cmp r0, 0x5
bhi _0809CB1E
lsls r0, 2
ldr r1, _0809CAF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809CAF8: .4byte _0809CAFC
.align 2, 0
_0809CAFC:
.4byte _0809CB1E
.4byte _0809CB1E
.4byte _0809CB1E
.4byte _0809CB14
.4byte _0809CB1A
.4byte _0809CB1E
_0809CB14:
bl nullsub_113
b _0809CB1E
_0809CB1A:
bl nullsub_116
_0809CB1E:
pop {r0}
bx r0
thumb_func_end sub_809CA20
thumb_func_start nullsub_106
nullsub_106:
bx lr
thumb_func_end nullsub_106
thumb_func_start nullsub_107
nullsub_107:
bx lr
thumb_func_end nullsub_107
thumb_func_start nullsub_108
nullsub_108:
bx lr
thumb_func_end nullsub_108
thumb_func_start nullsub_109
nullsub_109:
bx lr
thumb_func_end nullsub_109
thumb_func_start nullsub_110
nullsub_110:
bx lr
thumb_func_end nullsub_110
thumb_func_start nullsub_111
nullsub_111:
bx lr
thumb_func_end nullsub_111
thumb_func_start nullsub_112
nullsub_112:
bx lr
thumb_func_end nullsub_112
thumb_func_start nullsub_113
nullsub_113:
bx lr
thumb_func_end nullsub_113
thumb_func_start nullsub_114
nullsub_114:
bx lr
thumb_func_end nullsub_114
thumb_func_start nullsub_115
nullsub_115:
bx lr
thumb_func_end nullsub_115
thumb_func_start nullsub_116
nullsub_116:
bx lr
thumb_func_end nullsub_116
thumb_func_start sub_809CB50
sub_809CB50:
push {r4,lr}
ldr r4, _0809CB70
movs r0, 0xC
movs r1, 0x6
bl MemoryAlloc
str r0, [r4]
movs r1, 0x1
negs r1, r1
str r1, [r0, 0x4]
movs r1, 0
str r1, [r0, 0x8]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809CB70: .4byte gUnknown_20399E0
thumb_func_end sub_809CB50
thumb_func_start sub_809CB74
sub_809CB74:
push {r4,lr}
ldr r4, _0809CB88
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809CB88: .4byte gUnknown_20399E0
thumb_func_end sub_809CB74
thumb_func_start sub_809CB8C
sub_809CB8C:
push {lr}
movs r0, 0
movs r1, 0x3B
bl sub_80015C0
movs r0, 0
movs r1, 0x3D
bl sub_80015C0
pop {r0}
bx r0
thumb_func_end sub_809CB8C
thumb_func_start sub_809CBA4
sub_809CBA4:
push {lr}
lsls r0, 24
lsrs r0, 24
bl FindItemInInventory
cmp r0, 0
bge _0809CBB6
movs r0, 0
b _0809CBB8
_0809CBB6:
movs r0, 0x1
_0809CBB8:
pop {r1}
bx r1
thumb_func_end sub_809CBA4
thumb_func_start sub_809CBBC
sub_809CBBC:
push {r4-r7,lr}
sub sp, 0x54
adds r4, r0, 0
adds r6, r1, 0
adds r5, r2, 0
adds r7, r3, 0
ldrb r1, [r4]
cmp r1, 0x69
bne _0809CC20
ldr r1, _0809CC0C
movs r0, 0x2
ldrsh r2, [r4, r0]
ldr r0, _0809CC10
ldr r0, [r0]
movs r3, 0xD2
lsls r3, 4
adds r0, r3
ldr r3, [r0]
mov r0, sp
bl ExpandPlaceholdersBuffer
ldr r0, _0809CC14
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r2, r0, r1
movs r3, 0x2
ldrsh r1, [r4, r3]
ldr r0, [r2]
adds r1, r0, r1
ldr r0, _0809CC18
cmp r1, r0
ble _0809CC1C
cmp r6, 0
beq _0809CC4E
movs r1, 0x1
negs r1, r1
movs r0, 0
adds r2, r6, 0
b _0809CC4A
.align 2, 0
_0809CC0C: .4byte gUnknown_81163E4
_0809CC10: .4byte gItemParametersData
_0809CC14: .4byte gTeamInventory_203B460
_0809CC18: .4byte 0x0001869f
_0809CC1C:
str r1, [r2]
b _0809CC5E
_0809CC20:
ldrb r0, [r4, 0x2]
lsls r1, 16
lsls r0, 8
orrs r0, r1
str r0, [sp, 0x50]
add r4, sp, 0x50
mov r0, sp
adds r1, r4, 0
movs r2, 0
bl sub_8090E14
bl GetNumberOfFilledInventorySlots
cmp r0, 0x13
ble _0809CC52
cmp r5, 0
beq _0809CC4E
movs r1, 0x1
negs r1, r1
movs r0, 0
adds r2, r5, 0
_0809CC4A:
bl sub_809AE90
_0809CC4E:
movs r0, 0
b _0809CC82
_0809CC52:
ldrb r0, [r4, 0x2]
movs r1, 0
bl sub_809124C
bl FillInventoryGaps
_0809CC5E:
cmp r7, 0
beq _0809CC80
ldr r0, _0809CC8C
mov r1, sp
bl strcpy
movs r1, 0x1
negs r1, r1
movs r0, 0
adds r2, r7, 0
bl sub_809AE90
movs r1, 0x80
lsls r1, 1
movs r0, 0xCB
bl sub_8011974
_0809CC80:
movs r0, 0x1
_0809CC82:
add sp, 0x54
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0809CC8C: .4byte gUnknown_202DE58
thumb_func_end sub_809CBBC
thumb_func_start sub_809CC90
sub_809CC90:
push {lr}
lsls r0, 2
ldr r1, _0809CCBC
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0x69
bne _0809CCC8
ldr r0, _0809CCC0
ldr r0, [r0]
movs r2, 0x98
lsls r2, 2
adds r0, r2
movs r2, 0x2
ldrsh r1, [r1, r2]
ldr r0, [r0]
adds r0, r1
ldr r1, _0809CCC4
cmp r0, r1
ble _0809CCD4
movs r0, 0x2
b _0809CCD6
.align 2, 0
_0809CCBC: .4byte gUnknown_81163BC
_0809CCC0: .4byte gTeamInventory_203B460
_0809CCC4: .4byte 0x0001869f
_0809CCC8:
bl GetNumberOfFilledInventorySlots
cmp r0, 0x13
ble _0809CCD4
movs r0, 0x2
b _0809CCD6
_0809CCD4:
movs r0, 0x1
_0809CCD6:
pop {r1}
bx r1
thumb_func_end sub_809CC90
thumb_func_start sub_809CCDC
sub_809CCDC:
push {r4-r6,lr}
adds r6, r0, 0
adds r4, r1, 0
lsls r1, r6, 2
ldr r0, _0809CD20
adds r5, r1, r0
ldr r0, _0809CD24
ldr r1, [r0]
movs r0, 0x1
negs r0, r0
str r0, [r1, 0x4]
movs r0, 0
str r0, [r1, 0x8]
movs r0, 0x2
cmp r4, 0x63
bgt _0809CD04
movs r0, 0
cmp r4, 0x1
ble _0809CD04
movs r0, 0x1
_0809CD04:
ldr r1, _0809CD28
ldr r2, _0809CD2C
ldr r3, _0809CD30
lsls r0, 2
adds r0, r3
ldr r3, [r0]
adds r0, r5, 0
bl sub_809CBBC
lsls r0, 24
cmp r0, 0
bne _0809CD34
movs r0, 0x2
b _0809CD3E
.align 2, 0
_0809CD20: .4byte gUnknown_81163BC
_0809CD24: .4byte gUnknown_20399E0
_0809CD28: .4byte gUnknown_81163F0
_0809CD2C: .4byte gUnknown_811642C
_0809CD30: .4byte gUnknown_203B4A0
_0809CD34:
ldr r0, _0809CD44
ldr r0, [r0]
str r6, [r0, 0x4]
str r4, [r0, 0x8]
movs r0, 0x1
_0809CD3E:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809CD44: .4byte gUnknown_20399E0
thumb_func_end sub_809CCDC
thumb_func_start sub_809CD48
sub_809CD48:
push {lr}
bl sub_809A750
lsls r0, 24
cmp r0, 0
bne _0809CD58
movs r0, 0x3
b _0809CD5A
_0809CD58:
movs r0, 0
_0809CD5A:
pop {r1}
bx r1
thumb_func_end sub_809CD48
thumb_func_start nullsub_117
nullsub_117:
bx lr
thumb_func_end nullsub_117
thumb_func_start nullsub_118
nullsub_118:
bx lr
thumb_func_end nullsub_118
thumb_func_start sub_809CD68
sub_809CD68:
movs r2, 0
str r2, [r0]
str r2, [r0, 0x4]
movs r1, 0x1
negs r1, r1
str r1, [r0, 0x10]
str r2, [r0, 0x14]
str r2, [r0, 0x8]
strb r2, [r0, 0x18]
bx lr
thumb_func_end sub_809CD68
thumb_func_start sub_809CD7C
sub_809CD7C:
movs r2, 0
str r2, [r0]
movs r1, 0x1
negs r1, r1
str r1, [r0, 0x10]
str r2, [r0, 0x14]
str r2, [r0, 0x8]
bx lr
thumb_func_end sub_809CD7C
thumb_func_start sub_809CD8C
sub_809CD8C:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
cmp r4, 0x5
bne _0809CD9E
bl sub_809CD68
str r4, [r5]
b _0809CDB0
_0809CD9E:
ldr r0, [r5, 0x4]
cmp r0, r4
beq _0809CDB0
str r4, [r5, 0x4]
movs r0, 0x1
negs r0, r0
str r0, [r5, 0x10]
movs r0, 0
str r0, [r5, 0x14]
_0809CDB0:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_809CD8C
thumb_func_start sub_809CDB8
sub_809CDB8:
push {lr}
adds r1, r0, 0
ldr r0, [r1, 0x4]
cmp r0, 0
bne _0809CDC4
ldr r0, [r1]
_0809CDC4:
pop {r1}
bx r1
thumb_func_end sub_809CDB8
thumb_func_start sub_809CDC8
sub_809CDC8:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r4, r0, 0
adds r6, r1, 0
adds r7, r2, 0
ldr r1, [sp, 0x24]
movs r0, 0x1
negs r0, r0
str r0, [r3]
ldr r0, [r4]
cmp r0, 0x1
beq _0809CDEA
cmp r0, 0x2
beq _0809CDFE
b _0809CE12
_0809CDEA:
movs r0, 0x80
lsls r0, 6
ands r1, r0
cmp r1, 0
beq _0809CE12
adds r0, r4, 0
bl sub_809CD68
movs r0, 0x2
b _0809CE10
_0809CDFE:
movs r0, 0x80
lsls r0, 6
ands r1, r0
cmp r1, 0
bne _0809CE12
adds r0, r4, 0
bl sub_809CD68
movs r0, 0x1
_0809CE10:
str r0, [r4]
_0809CE12:
ldr r0, [r4, 0x4]
mov r8, r0
cmp r0, 0
bne _0809CE1E
ldr r1, [r4]
mov r8, r1
_0809CE1E:
mov r0, r8
subs r0, 0x1
cmp r0, 0x6
bls _0809CE28
b _0809CFCC
_0809CE28:
lsls r0, 2
ldr r1, _0809CE34
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809CE34: .4byte _0809CE38
.align 2, 0
_0809CE38:
.4byte _0809CE54
.4byte _0809CF74
.4byte _0809CFCC
.4byte _0809CFCC
.4byte _0809CECC
.4byte _0809CF5C
.4byte _0809CF5C
_0809CE54:
ldr r0, _0809CE70
ldrh r2, [r0]
ldrh r1, [r0, 0x2]
movs r0, 0xF0
ands r0, r2
cmp r0, 0
beq _0809CE74
movs r0, 0x2
ands r0, r2
cmp r0, 0
beq _0809CEA4
movs r0, 0
b _0809CEA8
.align 2, 0
_0809CE70: .4byte gRealInputs
_0809CE74:
movs r3, 0x2
adds r0, r1, 0
ands r0, r3
cmp r0, 0
beq _0809CE82
movs r0, 0x14
b _0809CEA8
_0809CE82:
ldr r0, [r4, 0x10]
cmp r0, 0x1
ble _0809CEA4
subs r0, 0x1
str r0, [r4, 0x10]
adds r0, r2, 0
ands r0, r3
cmp r0, 0
bne _0809CEAA
movs r0, 0x13
str r0, [r6]
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
strb r0, [r7]
movs r0, 0x5
b _0809CFDA
_0809CEA4:
movs r0, 0x1
negs r0, r0
_0809CEA8:
str r0, [r4, 0x10]
_0809CEAA:
movs r0, 0x1
ands r1, r0
cmp r1, 0
beq _0809CEB6
movs r0, 0xA
b _0809CEC2
_0809CEB6:
ldr r0, [r4, 0x10]
cmp r0, 0
bne _0809CEC0
movs r0, 0x8
b _0809CEC2
_0809CEC0:
movs r0, 0x7
_0809CEC2:
str r0, [r6]
adds r0, r2, 0
bl sub_809CFE8
b _0809CF4E
_0809CECC:
mov r0, sp
bl sub_809B260
lsls r0, 24
cmp r0, 0
beq _0809CFCC
ldr r0, _0809CEEC
ldr r0, [r0]
ldrb r0, [r0, 0xC]
cmp r0, 0
bne _0809CEF0
movs r0, 0x4
bl sub_809C6CC
b _0809CEF6
.align 2, 0
_0809CEEC: .4byte gUnknown_203B46C
_0809CEF0:
movs r0, 0x3
bl sub_809C6CC
_0809CEF6:
bl nullsub_104
adds r0, r4, 0
bl sub_809CD7C
movs r5, 0x1
str r5, [r4]
ldr r0, [sp]
cmp r0, 0x2
beq _0809CF1E
cmp r0, 0x2
bgt _0809CF14
cmp r0, 0x1
beq _0809CF2A
b _0809CF54
_0809CF14:
cmp r0, 0x3
beq _0809CF2A
cmp r0, 0x4
beq _0809CF3C
b _0809CF54
_0809CF1E:
movs r0, 0x4
str r0, [r4]
movs r0, 0x1E
bl sub_8098D80
b _0809CF46
_0809CF2A:
movs r0, 0x4
str r0, [r4]
str r5, [r6]
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
strb r0, [r7]
movs r0, 0x4
b _0809CFDA
_0809CF3C:
str r0, [r4]
movs r0, 0x45
movs r1, 0
bl GroundMap_ExecuteEvent
_0809CF46:
str r5, [r6]
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
_0809CF4E:
strb r0, [r7]
ldr r0, [r4]
b _0809CFDA
_0809CF54:
movs r0, 0x2
bl sub_809D9B8
b _0809CFCC
_0809CF5C:
add r0, sp, 0x4
bl sub_809B260
lsls r0, 24
cmp r0, 0
beq _0809CFCC
adds r0, r4, 0
bl sub_809CD7C
movs r0, 0x1
str r0, [r4]
b _0809CFDA
_0809CF74:
ldr r0, [r4, 0x8]
cmp r0, 0
ble _0809CF86
subs r0, 0x1
str r0, [r4, 0x8]
movs r0, 0x9
str r0, [r6]
ldrb r0, [r4, 0xC]
b _0809CFD6
_0809CF86:
ldr r0, _0809CFA0
ldrh r1, [r0]
movs r0, 0x9
str r0, [r6]
movs r0, 0x40
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0
beq _0809CFA4
movs r0, 0x4
b _0809CFB6
.align 2, 0
_0809CFA0: .4byte gRealInputs
_0809CFA4:
movs r0, 0x80
ands r1, r0
cmp r1, 0
beq _0809CFB0
strb r2, [r7]
b _0809CFB8
_0809CFB0:
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
_0809CFB6:
strb r0, [r7]
_0809CFB8:
ldrb r0, [r7]
strb r0, [r4, 0xC]
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
cmp r0, r1
beq _0809CFD8
movs r0, 0x20
str r0, [r4, 0x8]
b _0809CFD8
_0809CFCC:
movs r0, 0
str r0, [r6]
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
_0809CFD6:
strb r0, [r7]
_0809CFD8:
mov r0, r8
_0809CFDA:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_809CDC8
thumb_func_start sub_809CFE8
sub_809CFE8:
push {lr}
lsls r0, 16
lsrs r1, r0, 16
adds r2, r1, 0
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0809D014
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0809D004
movs r0, 0x3
b _0809D052
_0809D004:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0809D010
movs r0, 0x5
b _0809D052
_0809D010:
movs r0, 0x4
b _0809D052
_0809D014:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0809D038
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0809D028
movs r0, 0x1
b _0809D052
_0809D028:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0809D034
movs r0, 0x7
b _0809D052
_0809D034:
movs r0, 0
b _0809D052
_0809D038:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0809D044
movs r0, 0x2
b _0809D052
_0809D044:
movs r0, 0x20
ands r2, r0
cmp r2, 0
bne _0809D050
subs r0, 0x21
b _0809D052
_0809D050:
movs r0, 0x6
_0809D052:
pop {r1}
bx r1
thumb_func_end sub_809CFE8
thumb_func_start sub_809D058
sub_809D058:
push {lr}
ldr r1, [r0, 0x4]
cmp r1, 0x3F
bgt _0809D076
ldr r0, [r0]
cmp r0, 0x67
bgt _0809D06A
movs r0, 0x5
b _0809D0A6
_0809D06A:
cmp r0, 0x88
ble _0809D072
movs r0, 0x3
b _0809D0A6
_0809D072:
movs r0, 0x4
b _0809D0A6
_0809D076:
cmp r1, 0x60
ble _0809D090
ldr r0, [r0]
cmp r0, 0x67
bgt _0809D084
movs r0, 0x7
b _0809D0A6
_0809D084:
cmp r0, 0x88
ble _0809D08C
movs r0, 0x1
b _0809D0A6
_0809D08C:
movs r0, 0
b _0809D0A6
_0809D090:
ldr r0, [r0]
cmp r0, 0x67
bgt _0809D09A
movs r0, 0x6
b _0809D0A6
_0809D09A:
cmp r0, 0x88
bgt _0809D0A4
movs r0, 0x1
negs r0, r0
b _0809D0A6
_0809D0A4:
movs r0, 0x2
_0809D0A6:
pop {r1}
bx r1
thumb_func_end sub_809D058
.align 2,0