mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-27 06:50:30 +00:00
8356 lines
125 KiB
ArmAsm
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 gUnknown_8300500
|
|
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 gUnknown_8300500
|
|
_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 sub_808DD90
|
|
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 sub_8016C94
|
|
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 sub_80162E4
|
|
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 sub_8018B00
|
|
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 sub_8001BB4
|
|
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 sub_8001BB4
|
|
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 sub_8001BB4
|
|
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 sub_803C850
|
|
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
|