pmd-red/asm/code_8098BDC.s
Seth Barberee 8dfd044ef3
Some Personality and data (#26)
* decomp few personality funcs and clean up some pointers in the dungeon data

* de-pointer-ify friend area dialogue

* clean pointers on a personality test question

* decomp a few more main menu funcs and dump some more data

* label some funcs
2021-02-07 21:10:12 -06:00

8356 lines
125 KiB
ArmAsm

.include "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 sub_8092310
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 sub_80A4AEC
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 gUnknown_202DF98
_0809A8B0: .4byte gUnknown_811615C
_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 gUnknown_202DF98
_0809AB2C: .4byte gUnknown_811616C
_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 sub_808D908
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 gUnknown_202DF98
_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 sub_808D908
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 gUnknown_202DF98
_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 sub_808D908
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 gUnknown_202DF98
_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 sub_800D158
_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 sub_800D158
_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 sub_800D158
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 sub_80119D4
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 sub_80119D4
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 sub_80119D4
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 sub_80119D4
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 sub_80119D4
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 sub_80119D4
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 sub_8012574
b _0809B784
.align 2, 0
_0809BC10: .4byte 0x00000414
_0809BC14:
bl sub_8012600
lsls r0, 24
cmp r0, 0
beq _0809BC20
b _0809B784
_0809BC20:
bl sub_8012750
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 DisplayPersianDialogueSprite
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 sub_80247C0
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 sub_80247C0
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 sub_8021B9C
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 sub_80314B4
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 sub_80119D4
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 sub_80119D4
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 sub_802FD14
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 sub_802FEE0
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 sub_802FEE0
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 sub_802FD14
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 sub_802FD14
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 sub_802FD14
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 sub_8091570
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 sub_80911F8
ldr r0, [r6]
movs r2, 0x86
lsls r2, 3
adds r0, r2
movs r1, 0x1
b _0809C318
.align 2, 0
_0809C304: .4byte gUnknown_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 sub_8035444
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 sub_8011988
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 sub_8091130
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 sub_800D158
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 gItemParametersFile + 4
_0809CC14: .4byte gUnknown_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 sub_8090A34
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 sub_80910B4
_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 gUnknown_203B460
_0809CCC4: .4byte 0x0001869f
_0809CCC8:
bl sub_8090A34
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