pmd-red/asm/ground_script.s
2022-07-10 16:10:28 -07:00

9185 lines
139 KiB
ArmAsm

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start GroundScript_ExecutePP
GroundScript_ExecutePP:
push {r4-r7,lr}
adds r5, r0, 0
adds r7, r1, 0
adds r6, r2, 0
cmp r6, 0
beq _0809D7A2
ldr r0, [r6]
cmp r0, 0
bne _0809D7A6
_0809D7A2:
movs r0, 0
b _0809D8B8
_0809D7A6:
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r0, 0x5
bhi _0809D858
lsls r0, 2
ldr r1, _0809D7B8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809D7B8: .4byte _0809D7BC
.align 2, 0
_0809D7BC:
.4byte _0809D830
.4byte _0809D84A
.4byte _0809D7D4
.4byte _0809D7D4
.4byte _0809D858
.4byte _0809D7EE
_0809D7D4:
movs r3, 0x24
ldrsh r0, [r5, r3]
cmp r0, 0x1
beq _0809D838
adds r4, r5, 0
adds r4, 0x24
cmp r0, 0x5
bne _0809D86C
adds r0, r5, 0
adds r0, 0x84
bl sub_809D568
b _0809D86C
_0809D7EE:
movs r1, 0x24
ldrsh r0, [r5, r1]
cmp r0, 0x2
beq _0809D808
ldr r0, _0809D800
ldr r1, _0809D804
bl FatalError
.align 2, 0
_0809D800: .4byte gUnknown_8116538
_0809D804: .4byte gUnknown_8116544
_0809D808:
adds r2, r5, 0
adds r2, 0x84
movs r3, 0
ldrsh r1, [r2, r3]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809D828
ldr r0, _0809D820
ldr r1, _0809D824
bl FatalError
.align 2, 0
_0809D820: .4byte gUnknown_8116560
_0809D824: .4byte gUnknown_811656C
_0809D828:
adds r4, r5, 0
adds r4, 0x24
adds r0, r2, 0
b _0809D840
_0809D830:
movs r1, 0x24
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _0809D84A
_0809D838:
adds r0, r5, 0
adds r0, 0x84
adds r4, r5, 0
adds r4, 0x24
_0809D840:
adds r1, r4, 0
movs r2, 0x60
bl memcpy
b _0809D86C
_0809D84A:
adds r0, r5, 0
adds r0, 0x84
bl sub_809D568
adds r4, r5, 0
adds r4, 0x24
b _0809D86C
_0809D858:
ldr r0, _0809D864
ldr r1, _0809D868
movs r3, 0x4
ldrsh r2, [r6, r3]
bl FatalError
.align 2, 0
_0809D864: .4byte gUnknown_8116588
_0809D868: .4byte gUnknown_8116594
_0809D86C:
adds r0, r4, 0
bl sub_809D568
cmp r7, 0
beq _0809D87C
ldr r0, [r7]
str r0, [r5, 0xC]
b _0809D884
_0809D87C:
adds r0, r5, 0
adds r0, 0xC
bl sub_809D520
_0809D884:
ldrh r0, [r6, 0x4]
movs r1, 0
strh r0, [r5, 0x24]
movs r0, 0x3
strh r0, [r5, 0x26]
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x30]
ldrb r0, [r6, 0x8]
adds r2, r5, 0
adds r2, 0x32
strb r0, [r2]
ldr r0, [r6]
str r0, [r5, 0x28]
str r0, [r5, 0x2C]
str r1, [r5, 0x34]
str r1, [r5, 0x38]
ldr r0, [r5]
ldr r2, [r0, 0x14]
cmp r2, 0
beq _0809D8B6
ldr r0, [r5, 0x4]
adds r1, r5, 0
adds r1, 0x4A
bl _call_via_r2
_0809D8B6:
movs r0, 0x1
_0809D8B8:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GroundScript_ExecutePP
thumb_func_start sub_809D8C0
sub_809D8C0:
push {r4-r6,lr}
sub sp, 0xC
adds r4, r0, 0
adds r5, r1, 0
adds r6, r3, 0
lsls r2, 16
asrs r2, 16
mov r1, sp
bl sub_809D6E4
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
adds r3, r6, 0
bl GroundScript_ExecutePP
lsls r0, 24
lsrs r0, 24
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_809D8C0
thumb_func_start sub_809D8EC
sub_809D8EC:
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 16
asrs r5, r1, 16
cmp r5, 0
bne _0809D910
bl sub_809A750
lsls r0, 24
cmp r0, 0
bne _0809D910
adds r0, r4, 0
movs r1, 0
bl sub_80A2460
str r0, [r4, 0x28]
movs r0, 0
b _0809D922
_0809D910:
adds r0, r4, 0
adds r0, 0x46
strh r5, [r0]
movs r0, 0x2
strh r0, [r4, 0x26]
ldr r1, _0809D928
movs r0, 0x1
strb r0, [r1]
movs r0, 0x1
_0809D922:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0809D928: .4byte gUnknown_2039A36
thumb_func_end sub_809D8EC
thumb_func_start sub_809D92C
sub_809D92C:
push {lr}
ldr r1, _0809D93C
bl sub_809D770
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0809D93C: .4byte gUnknown_81165C8
thumb_func_end sub_809D92C
thumb_func_start sub_809D940
sub_809D940:
push {r4,lr}
bl sub_80A8B74
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_80AC378
orrs r4, r0
lsls r4, 24
lsrs r4, 24
bl sub_80AD290
orrs r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809D940
thumb_func_start sub_809D968
sub_809D968:
push {r4-r6,lr}
adds r5, r0, 0
lsls r1, 16
asrs r6, r1, 16
movs r4, 0
adds r2, r5, 0
adds r2, 0x46
ldrh r1, [r2]
movs r0, 0
ldrsh r3, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r3, r0
beq _0809D98E
cmp r3, r6
bne _0809D98E
ldr r0, _0809D9B4
strh r0, [r2]
movs r4, 0x1
_0809D98E:
adds r2, r5, 0
adds r2, 0xA6
ldrh r1, [r2]
movs r0, 0
ldrsh r3, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r3, r0
beq _0809D9AA
cmp r3, r6
bne _0809D9AA
ldr r0, _0809D9B4
strh r0, [r2]
movs r4, 0x1
_0809D9AA:
adds r0, r4, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0809D9B4: .4byte 0x0000ffff
thumb_func_end sub_809D968
thumb_func_start sub_809D9B8
sub_809D9B8:
lsls r0, 16
asrs r0, 16
ldr r1, _0809D9D4
adds r1, r0, r1
movs r3, 0
movs r2, 0x1
strb r2, [r1]
ldr r1, _0809D9D8
lsls r0, 2
adds r0, r1
str r3, [r0]
ldr r0, _0809D9DC
strb r2, [r0]
bx lr
.align 2, 0
_0809D9D4: .4byte gUnknown_2039A38
_0809D9D8: .4byte gUnknown_2039B48
_0809D9DC: .4byte gUnknown_2039A36
thumb_func_end sub_809D9B8
thumb_func_start sub_809D9E0
sub_809D9E0:
lsls r0, 16
asrs r0, 16
ldr r2, _0809D9FC
adds r2, r0, r2
movs r3, 0x1
strb r3, [r2]
ldr r2, _0809DA00
lsls r0, 2
adds r0, r2
str r1, [r0]
ldr r0, _0809DA04
strb r3, [r0]
bx lr
.align 2, 0
_0809D9FC: .4byte gUnknown_2039A38
_0809DA00: .4byte gUnknown_2039B48
_0809DA04: .4byte gUnknown_2039A36
thumb_func_end sub_809D9E0
thumb_func_start sub_809DA08
sub_809DA08:
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 16
asrs r4, r1, 16
ldr r1, _0809DA2C
lsls r0, r4, 2
adds r0, r1
str r2, [r0]
cmp r4, 0
bne _0809DA38
bl sub_809A750
lsls r0, 24
cmp r0, 0
bne _0809DA30
movs r0, 0
b _0809DA5E
.align 2, 0
_0809DA2C: .4byte gUnknown_2039B48
_0809DA30:
adds r0, r5, 0
adds r0, 0x46
strh r4, [r0]
b _0809DA52
_0809DA38:
movs r1, 0x80
adds r2, r5, 0
adds r2, 0x46
adds r0, r4, 0
orrs r0, r1
strh r0, [r2]
ldr r0, _0809DA64
adds r0, r4, r0
movs r1, 0x1
strb r1, [r0]
ldr r0, _0809DA68
adds r0, r4, r0
strb r1, [r0]
_0809DA52:
movs r0, 0x2
strh r0, [r5, 0x26]
ldr r1, _0809DA6C
movs r0, 0x1
strb r0, [r1]
movs r0, 0x1
_0809DA5E:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0809DA64: .4byte gUnknown_2039A38
_0809DA68: .4byte gUnknown_2039AC0
_0809DA6C: .4byte gUnknown_2039A36
thumb_func_end sub_809DA08
thumb_func_start HandleAction
HandleAction:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x148
adds r7, r0, 0
movs r1, 0x26
ldrsh r0, [r7, r1]
cmp r0, 0
bne _0809DA8A
bl _0809EAB8
_0809DA8A:
movs r2, 0x26
ldrsh r0, [r7, r2]
cmp r0, 0x4
bls _0809DA96
bl _0809E9CC
_0809DA96:
lsls r0, 2
ldr r1, _0809DAA0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809DAA0: .4byte _0809DAA4
.align 2, 0
_0809DAA4:
.4byte _0809E9C6
.4byte _0809E9C6
.4byte _0809DAB8
.4byte _0809E900
.4byte _0809E9C6
_0809DAB8:
adds r1, r7, 0
adds r1, 0x44
ldrb r0, [r1]
subs r0, 0x3
adds r6, r1, 0
cmp r0, 0xED
bls _0809DACA
bl _0809E9D6
_0809DACA:
lsls r0, 2
ldr r1, _0809DAD4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809DAD4: .4byte _0809DAD8
.align 2, 0
_0809DAD8:
.4byte _0809E382
.4byte _0809E3C4
.4byte _0809E524
.4byte _0809E464
.4byte _0809E4B4
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809DED6
.4byte _0809DED6
.4byte _0809DED6
.4byte _0809DED6
.4byte _0809DED6
.4byte _0809DED6
.4byte _0809DED6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E308
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E308
.4byte _0809E308
.4byte _0809E308
.4byte _0809E308
.4byte _0809E308
.4byte _0809E308
.4byte _0809E308
.4byte _0809E308
.4byte _0809E308
.4byte _0809E31C
.4byte _0809E75C
.4byte _0809E33C
.4byte _0809E368
.4byte _0809E658
.4byte _0809E6B4
.4byte _0809E6E8
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809E9D6
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809E9D6
.4byte _0809DE90
.4byte _0809DF60
.4byte _0809DF60
.4byte _0809DF60
.4byte _0809DF60
.4byte _0809DF60
.4byte _0809DF60
.4byte _0809DF60
.4byte _0809E0A2
.4byte _0809DFDC
.4byte _0809DFDC
.4byte _0809DFDC
.4byte _0809DFDC
.4byte _0809DFDC
.4byte _0809DFDC
.4byte _0809DFDC
.4byte _0809E0A2
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E078
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E08C
.4byte _0809E0E8
.4byte _0809E0E8
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809E146
.4byte _0809E146
.4byte _0809E146
.4byte _0809E146
.4byte _0809E146
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809E9D6
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E2D0
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E798
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E864
.4byte _0809E864
.4byte _0809E864
.4byte _0809E864
.4byte _0809E864
.4byte _0809E864
.4byte _0809E864
.4byte _0809E9D6
.4byte _0809E8D8
.4byte _0809DE90
.4byte _0809DE90
.4byte _0809DEA6
.4byte _0809DEBE
.4byte _0809DED6
.4byte _0809DEE8
.4byte _0809DF24
.4byte _0809DF24
.4byte _0809E2DE
.4byte _0809E9D6
.4byte _0809E2DE
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
.4byte _0809E9D6
_0809DE90:
adds r1, r7, 0
adds r1, 0x4E
ldrh r2, [r1]
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
ble _0809DEA2
bl _0809EAB2
_0809DEA2:
bl _0809E8F4
_0809DEA6:
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r1, [r1, 0x4C]
bl _call_via_r1
lsls r0, 24
cmp r0, 0
beq _0809DEBA
bl _0809E9D6
_0809DEBA:
bl _0809E8F4
_0809DEBE:
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r1, [r1, 0x50]
bl _call_via_r1
lsls r0, 24
cmp r0, 0
beq _0809DED2
bl _0809E9D6
_0809DED2:
bl _0809E8F4
_0809DED6:
bl sub_8099B94
lsls r0, 24
cmp r0, 0
beq _0809DEE4
bl _0809E9D6
_0809DEE4:
bl _0809E8F4
_0809DEE8:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r4-r6}
stm r1!, {r4-r6}
ldr r0, [r0]
str r0, [r1]
add r0, sp, 0x4
ldrh r0, [r0, 0x2]
bl IsEqualtoBGTrack
lsls r0, 24
cmp r0, 0
bne _0809DF06
bl _0809E8F4
_0809DF06:
adds r2, r7, 0
adds r2, 0x50
ldrh r1, [r2]
adds r0, r1, 0x1
strh r0, [r2]
lsls r1, 16
ldr r0, _0809DF20
cmp r1, r0
bgt _0809DF1C
bl _0809E9D6
_0809DF1C:
bl _0809E8F4
.align 2, 0
_0809DF20: .4byte 0x2a2f0000
_0809DF24:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
add r0, sp, 0x4
ldrh r0, [r0, 0x2]
bl IsFanfareSEPlaying_1
lsls r0, 24
cmp r0, 0
bne _0809DF42
bl _0809E8F4
_0809DF42:
adds r2, r7, 0
adds r2, 0x50
ldrh r1, [r2]
adds r0, r1, 0x1
strh r0, [r2]
lsls r1, 16
ldr r0, _0809DF5C
cmp r1, r0
bgt _0809DF58
bl _0809E9D6
_0809DF58:
bl _0809E8F4
.align 2, 0
_0809DF5C: .4byte 0x0e0f0000
_0809DF60:
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r5, sp, 0xA4
ldr r2, [r1, 0xC]
adds r1, r5, 0
bl _call_via_r2
ldr r1, [r7, 0x60]
ldr r0, [r5]
subs r1, r0
add r4, sp, 0xAC
str r1, [r4]
ldr r0, [r7, 0x64]
ldr r1, [r5, 0x4]
subs r0, r1
str r0, [r4, 0x4]
ldr r1, [r7, 0x54]
adds r0, r4, 0
bl sub_800290C
ldr r0, [r4]
cmp r0, 0
bne _0809DF98
ldr r0, [r4, 0x4]
cmp r0, 0
bne _0809DF98
bl _0809E8F4
_0809DF98:
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r1, 0x48]
adds r1, r4, 0
bl _call_via_r2
movs r1, 0x9
ands r1, r0
cmp r1, 0
beq _0809DFB0
bl _0809E8F4
_0809DFB0:
ldr r2, [r7]
ldr r0, [r7, 0x4]
movs r1, 0x80
lsls r1, 5
ldr r2, [r2, 0x30]
bl _call_via_r2
adds r2, r7, 0
adds r2, 0x4E
ldrh r0, [r2]
movs r5, 0
ldrsh r1, [r2, r5]
cmp r1, 0
bge _0809DFD0
bl _0809E9D6
_0809DFD0:
cmp r1, 0
ble _0809DFD8
bl _0809EAAC
_0809DFD8:
bl _0809E8F4
_0809DFDC:
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r5, sp, 0xB4
ldr r2, [r1, 0xC]
adds r1, r5, 0
bl _call_via_r2
ldr r1, [r7, 0x60]
ldr r0, [r5]
subs r1, r0
add r4, sp, 0xBC
str r1, [r4]
ldr r0, [r7, 0x64]
ldr r1, [r5, 0x4]
subs r0, r1
str r0, [r4, 0x4]
ldr r1, [r7, 0x54]
adds r0, r4, 0
bl sub_800290C
ldr r0, [r4]
adds r5, r4, 0
cmp r0, 0
bne _0809E016
ldr r0, [r5, 0x4]
cmp r0, 0
bne _0809E016
bl _0809E8F4
_0809E016:
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r1, 0x48]
adds r1, r5, 0
bl _call_via_r2
adds r4, r0, 0
adds r0, r5, 0
bl sub_8002C60
lsls r0, 24
adds r2, r7, 0
adds r2, 0x4A
asrs r1, r0, 24
lsrs r0, 24
strb r0, [r2]
ldr r2, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r2, 0x2C]
bl _call_via_r2
movs r0, 0x9
ands r0, r4
cmp r0, 0
beq _0809E04C
bl _0809E8F4
_0809E04C:
ldr r2, [r7]
ldr r0, [r7, 0x4]
movs r1, 0x80
lsls r1, 5
ldr r2, [r2, 0x30]
bl _call_via_r2
adds r2, r7, 0
adds r2, 0x4E
ldrh r0, [r2]
movs r6, 0
ldrsh r1, [r2, r6]
cmp r1, 0
bge _0809E06C
bl _0809E9D6
_0809E06C:
cmp r1, 0
ble _0809E074
bl _0809EAAC
_0809E074:
bl _0809E8F4
_0809E078:
adds r6, r7, 0
adds r6, 0x4E
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
ble _0809E088
bl _0809EA62
_0809E088:
bl _0809E8F4
_0809E08C:
movs r2, 0x4E
adds r2, r7
mov r8, r2
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, 0
ble _0809E09E
bl _0809E9DA
_0809E09E:
bl _0809E8F4
_0809E0A2:
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r4, sp, 0xE4
add r2, sp, 0xE8
ldr r3, [r1, 0x10]
adds r1, r4, 0
bl _call_via_r3
ldr r0, [r7, 0x6C]
ldr r1, [r4]
subs r0, r1
adds r2, r4, 0
cmp r0, 0
bne _0809E0C2
bl _0809E8F4
_0809E0C2:
ldr r4, [r7, 0x54]
cmn r0, r4
bge _0809E0CC
subs r0, r1, r4
b _0809E0D4
_0809E0CC:
cmp r0, r4
ble _0809E0D2
adds r0, r4, 0
_0809E0D2:
adds r0, r1, r0
_0809E0D4:
str r0, [r2]
ldr r2, [r7]
ldr r0, [r7, 0x4]
add r1, sp, 0xE4
ldr r1, [r1]
ldr r2, [r2, 0x28]
bl _call_via_r2
bl _0809E9D6
_0809E0E8:
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r4, sp, 0x14
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
movs r1, 0
ldrsb r1, [r4, r1]
ldr r2, [r7, 0x54]
add r4, sp, 0xEC
adds r0, r4, 0
bl sub_8002BB8
ldr r2, [r4]
ldr r3, [r4, 0x4]
add r1, sp, 0xF4
str r2, [r1]
str r3, [r1, 0x4]
ldr r2, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r2, 0x48]
bl _call_via_r2
movs r1, 0x9
ands r1, r0
cmp r1, 0
beq _0809E124
bl _0809E8F4
_0809E124:
ldr r2, [r7]
ldr r0, [r7, 0x4]
movs r1, 0x80
lsls r1, 5
ldr r2, [r2, 0x30]
bl _call_via_r2
adds r1, r7, 0
adds r1, 0x4E
ldrh r2, [r1]
movs r4, 0
ldrsh r0, [r1, r4]
cmp r0, 0
ble _0809E144
bl _0809EAB2
_0809E144:
b _0809E8F4
_0809E146:
adds r1, r7, 0
adds r1, 0x4E
ldrh r2, [r1]
movs r5, 0
ldrsh r0, [r1, r5]
mov r10, r1
cmp r0, 0
ble _0809E15A
bl _0809EAB2
_0809E15A:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r0]
str r0, [r1]
movs r4, 0x1
negs r4, r4
mov r8, r4
movs r5, 0
ldr r1, [r7]
ldr r0, [r7, 0x4]
mov r4, sp
adds r4, 0x15
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
add r0, sp, 0x4
ldrb r0, [r0]
subs r0, 0x91
mov r9, r4
cmp r0, 0x4
bhi _0809E234
lsls r0, 2
ldr r1, _0809E194
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809E194: .4byte _0809E198
.align 2, 0
_0809E198:
.4byte _0809E1AC
.4byte _0809E1AC
.4byte _0809E1BA
.4byte _0809E1E0
.4byte _0809E20C
_0809E1AC:
adds r0, r7, 0
adds r0, 0x71
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
mov r8, r0
b _0809E234
_0809E1BA:
ldr r0, [sp, 0x8]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r4, r0, 16
cmp r4, 0
blt _0809E234
movs r5, 0x1
add r1, sp, 0xFC
adds r0, r4, 0
bl sub_80A8FD8
add r1, sp, 0x104
adds r0, r4, 0
bl sub_80A8F9C
b _0809E234
_0809E1E0:
ldr r0, [sp, 0x8]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r0, 16
cmp r0, 0
blt _0809E234
movs r5, 0x1
add r1, sp, 0xFC
bl sub_80A8FD8
ldr r0, _0809E208
ldr r1, [r0, 0x4]
ldr r0, [r0]
add r2, sp, 0x104
str r0, [r2]
str r1, [r2, 0x4]
b _0809E234
.align 2, 0
_0809E208: .4byte gUnknown_81164DC
_0809E20C:
movs r5, 0x1
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r4, sp, 0xFC
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
ldr r2, [r7]
ldr r0, [r7, 0x4]
add r1, sp, 0x104
ldr r2, [r2, 0x8]
bl _call_via_r2
ldr r0, [sp, 0x8]
lsls r0, 16
asrs r0, 16
adds r1, r4, 0
bl sub_80AD8B4
_0809E234:
cmp r5, 0
beq _0809E282
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r5, sp, 0x10C
ldr r2, [r1, 0xC]
adds r1, r5, 0
bl _call_via_r2
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r4, sp, 0x114
ldr r2, [r1, 0x8]
adds r1, r4, 0
bl _call_via_r2
add r6, sp, 0xFC
add r3, sp, 0x104
adds r0, r5, 0
adds r1, r4, 0
adds r2, r6, 0
bl sub_8002DF0
lsls r0, 24
asrs r0, 24
mov r8, r0
movs r0, 0x1
negs r0, r0
cmp r8, r0
bne _0809E28C
ldr r3, _0809E2CC
adds r0, r5, 0
adds r1, r3, 0
adds r2, r6, 0
bl sub_8002D54
lsls r0, 24
asrs r0, 24
mov r8, r0
_0809E282:
movs r0, 0x1
negs r0, r0
cmp r8, r0
bne _0809E28C
b _0809E8F4
_0809E28C:
mov r5, r9
movs r0, 0
ldrsb r0, [r5, r0]
cmp r8, r0
bne _0809E298
b _0809E8F4
_0809E298:
mov r6, r9
movs r0, 0
ldrsb r0, [r6, r0]
add r1, sp, 0x4
ldrh r2, [r1, 0x2]
lsls r2, 24
lsrs r2, 24
mov r1, r8
bl sub_8002A70
adds r1, r7, 0
adds r1, 0x4A
strb r0, [r1]
ldr r2, [r7]
ldr r0, [r7, 0x4]
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
ldr r2, [r2, 0x2C]
bl _call_via_r2
add r0, sp, 0x4
ldrb r0, [r0, 0x1]
mov r1, r10
strh r0, [r1]
b _0809E9CC
.align 2, 0
_0809E2CC: .4byte gUnknown_81164DC
_0809E2D0:
bl sub_809D234
lsls r0, 24
cmp r0, 0
beq _0809E2DC
b _0809E9D6
_0809E2DC:
b _0809E8F4
_0809E2DE:
adds r0, r7, 0
adds r0, 0x46
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809E2F0
b _0809E9D6
_0809E2F0:
ldr r1, _0809E304
adds r0, r7, 0
adds r0, 0x4C
movs r3, 0
ldrsh r0, [r0, r3]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
b _0809E8EC
.align 2, 0
_0809E304: .4byte gUnknown_2039B48
_0809E308:
adds r0, r7, 0
adds r0, 0x46
movs r4, 0
ldrsh r1, [r0, r4]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809E31A
b _0809E9D6
_0809E31A:
b _0809E8CA
_0809E31C:
adds r0, r7, 0
adds r0, 0x46
movs r5, 0
ldrsh r1, [r0, r5]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809E32E
b _0809E9D6
_0809E32E:
bl sub_8099B94
lsls r0, 24
cmp r0, 0
beq _0809E33A
b _0809E9D6
_0809E33A:
b _0809E8CA
_0809E33C:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r0]
str r0, [r1]
add r0, sp, 0x4
ldrb r1, [r0, 0x1]
movs r4, 0x2
ldrsh r2, [r0, r4]
ldr r3, [sp, 0x8]
adds r0, r7, 0
bl sub_80A14E8
adds r1, r0, 0
cmp r1, 0
bge _0809E360
b _0809E9D6
_0809E360:
movs r0, 0x3
strh r0, [r7, 0x26]
adds r0, r7, 0
b _0809E60C
_0809E368:
add r0, sp, 0x11C
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E376
b _0809E9D6
_0809E376:
add r0, sp, 0x11C
ldr r1, [r0]
adds r0, r7, 0
bl sub_80A2460
b _0809E8C8
_0809E382:
add r0, sp, 0x120
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E390
b _0809E9D6
_0809E390:
add r4, sp, 0x120
ldr r0, [r4]
cmp r0, 0
blt _0809E3BA
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldr r0, [r0]
str r0, [r1]
ldrb r0, [r4]
bl sub_8002694
lsls r0, 16
asrs r0, 16
add r1, sp, 0x4
movs r3, 0x2
ldrsh r2, [r1, r3]
movs r1, 0
bl sub_8098D1C
_0809E3BA:
ldr r1, [r4]
adds r0, r7, 0
bl sub_80A2460
b _0809E8C8
_0809E3C4:
adds r4, r7, 0
adds r4, 0x4C
movs r5, 0
ldrsh r0, [r4, r5]
cmp r0, 0
bne _0809E40C
add r0, sp, 0x124
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E3DE
b _0809E9D6
_0809E3DE:
add r0, sp, 0x124
ldr r0, [r0]
cmp r0, 0
blt _0809E400
lsls r0, 16
asrs r0, 16
bl sub_80A26B8
adds r2, r0, 0
lsls r2, 16
asrs r2, 16
movs r0, 0
movs r1, 0x12
bl sub_80018D8
movs r0, 0x1
b _0809E402
_0809E400:
ldr r0, _0809E408
_0809E402:
strh r0, [r4]
b _0809E8CE
.align 2, 0
_0809E408: .4byte 0x0000ffff
_0809E40C:
cmp r0, 0x1
bne _0809E464
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
movs r0, 0
movs r1, 0x12
bl sub_8001658
adds r2, r0, 0
lsls r2, 16
asrs r4, r2, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x30
bl sub_8001784
cmp r4, 0x13
bne _0809E43C
cmp r0, 0
beq _0809E45A
_0809E43C:
add r0, sp, 0x4
movs r5, 0x2
ldrsh r0, [r0, r5]
bl sub_8098DCC
adds r0, r7, 0
movs r1, 0
bl sub_80A2460
str r0, [r7, 0x28]
movs r0, 0
movs r1, 0
bl sub_80A87AC
b _0809E8F4
_0809E45A:
movs r0, 0
movs r1, 0x13
movs r2, 0x13
bl sub_80018D8
_0809E464:
adds r0, r7, 0
adds r0, 0x4C
movs r2, 0
ldrsh r1, [r0, r2]
adds r5, r0, 0
cmp r1, 0
bne _0809E4B4
add r0, sp, 0x128
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E480
b _0809E9D6
_0809E480:
add r0, sp, 0x128
ldr r1, [r0]
cmp r1, 0
blt _0809E4AA
ldrb r0, [r6]
cmp r0, 0x4
bne _0809E49A
lsls r0, r1, 16
asrs r0, 16
bl sub_80A26B8
lsls r0, 16
b _0809E49C
_0809E49A:
lsls r0, r1, 16
_0809E49C:
asrs r2, r0, 16
movs r0, 0
movs r1, 0x13
bl sub_80018D8
movs r0, 0x1
b _0809E4AC
_0809E4AA:
ldr r0, _0809E4B0
_0809E4AC:
strh r0, [r5]
b _0809E8CE
.align 2, 0
_0809E4B0: .4byte 0x0000ffff
_0809E4B4:
adds r0, r7, 0
adds r0, 0x4C
movs r3, 0
ldrsh r1, [r0, r3]
adds r5, r0, 0
cmp r1, 0x1
beq _0809E4C4
b _0809E5B8
_0809E4C4:
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r6, r0, 16
add r4, sp, 0x18
adds r0, r4, 0
adds r1, r6, 0
bl sub_80990EC
lsls r0, 24
cmp r0, 0
beq _0809E580
adds r0, r4, 0
adds r1, r6, 0
bl sub_8099220
movs r0, 0x6
bl sub_80023E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4]
ldr r4, _0809E51C
ldr r2, [r4]
movs r1, 0
str r1, [sp]
bl sub_809034C
adds r1, r0, 0
ldr r0, _0809E520
str r1, [r0]
cmp r1, 0x1
beq _0809E586
cmp r1, 0x1
bcc _0809E580
cmp r1, 0x2
bne _0809E5AE
strh r1, [r5]
ldr r2, [r4]
movs r0, 0x9
b _0809E58E
.align 2, 0
_0809E51C: .4byte gUnknown_203B4B0
_0809E520: .4byte gUnknown_2039DA4
_0809E524:
adds r0, r7, 0
adds r0, 0x4C
movs r4, 0
ldrsh r6, [r0, r4]
adds r5, r0, 0
cmp r6, 0x1
bne _0809E5B8
movs r0, 0
movs r1, 0x14
bl sub_8001658
lsls r0, 24
lsrs r0, 24
bl sub_8095228
adds r4, r0, 0
movs r0, 0x6
bl sub_80023E4
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4, 0x4]
ldr r4, _0809E578
ldr r2, [r4]
str r6, [sp]
movs r1, 0
bl sub_809034C
adds r1, r0, 0
ldr r0, _0809E57C
str r1, [r0]
cmp r1, 0x1
beq _0809E586
cmp r1, 0x1
bcc _0809E580
cmp r1, 0x2
bne _0809E5AE
strh r1, [r5]
ldr r2, [r4]
movs r0, 0x9
b _0809E58E
.align 2, 0
_0809E578: .4byte gUnknown_203B4B0
_0809E57C: .4byte gUnknown_2039DA4
_0809E580:
movs r0, 0x3
strh r0, [r5]
b _0809E9CC
_0809E586:
movs r0, 0x4
strh r0, [r5]
ldr r2, [r4]
movs r0, 0xA
_0809E58E:
movs r1, 0x1
bl sub_809B1C0
adds r0, r7, 0
movs r1, 0x1
bl sub_809D8EC
lsls r0, 24
cmp r0, 0
bne _0809E5A4
b _0809E9CC
_0809E5A4:
movs r0, 0
movs r1, 0xB
bl sub_80A87AC
b _0809E9CC
_0809E5AE:
ldr r0, _0809E5B4
strh r0, [r5]
b _0809E9CC
.align 2, 0
_0809E5B4: .4byte 0x0000ffff
_0809E5B8:
movs r6, 0
ldrsh r2, [r5, r6]
cmp r2, 0x2
bne _0809E5DA
add r0, sp, 0x12C
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E5CE
b _0809E9D6
_0809E5CE:
add r0, sp, 0x12C
ldr r0, [r0]
cmp r0, 0
beq _0809E626
movs r0, 0x3
b _0809E628
_0809E5DA:
cmp r2, 0x3
bne _0809E614
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldr r0, [r0]
str r0, [r1]
strh r2, [r7, 0x26]
add r0, sp, 0x4
movs r6, 0x2
ldrsh r0, [r0, r6]
bl sub_80999FC
movs r0, 0x70
movs r1, 0
bl GroundMap_ExecuteEvent
movs r1, 0x8
ldrsh r0, [r7, r1]
cmp r0, 0
bne _0809E608
b _0809E9CC
_0809E608:
adds r0, r7, 0
movs r1, 0x1
_0809E60C:
bl sub_80A2460
str r0, [r7, 0x28]
b _0809E9CC
_0809E614:
cmp r2, 0x4
bne _0809E63C
add r0, sp, 0x130
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E626
b _0809E9D6
_0809E626:
ldr r0, _0809E638
_0809E628:
strh r0, [r5]
movs r0, 0
movs r1, 0
bl sub_80A87AC
bl sub_809A76C
b _0809E9CC
.align 2, 0
_0809E638: .4byte 0x0000ffff
_0809E63C:
movs r0, 0
movs r1, 0
bl sub_8099220
movs r4, 0x1
negs r4, r4
movs r0, 0
movs r1, 0x13
adds r2, r4, 0
bl sub_80018D8
adds r0, r7, 0
adds r1, r4, 0
b _0809E8EE
_0809E658:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
add r0, sp, 0x134
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E672
b _0809E9D6
_0809E672:
add r0, sp, 0x134
ldr r0, [r0]
cmp r0, 0x1
bne _0809E6A4
ldr r0, [sp, 0x8]
lsls r0, 16
asrs r1, r0, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809E6A4
adds r0, r1, 0
bl sub_80A8D54
movs r2, 0
adds r3, r0, 0
adds r3, 0x4C
ldr r4, _0809E6B0
_0809E696:
adds r0, r3, r2
adds r1, r2, r4
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x9
ble _0809E696
_0809E6A4:
add r0, sp, 0x134
ldr r1, [r0]
adds r0, r7, 0
bl sub_80A2460
b _0809E8C8
.align 2, 0
_0809E6B0: .4byte gUnknown_2039D98
_0809E6B4:
add r0, sp, 0x138
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E6C2
b _0809E9D6
_0809E6C2:
add r4, sp, 0x138
ldr r0, [r4]
cmp r0, 0x1
bne _0809E6D0
ldr r0, _0809E6DC
bl SetRescueTeamName
_0809E6D0:
ldr r1, [r4]
adds r0, r7, 0
bl sub_80A2460
b _0809E8C8
.align 2, 0
_0809E6DC: .4byte gUnknown_2039D98
_0809E6E0:
movs r1, 0x2
add r0, sp, 0x13C
str r1, [r0]
b _0809E74A
_0809E6E8:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldr r0, [r0]
str r0, [r1]
ldr r5, [sp, 0x10]
add r0, sp, 0x13C
bl sub_809B260
lsls r0, 24
cmp r0, 0
bne _0809E704
b _0809E9D6
_0809E704:
add r0, sp, 0x13C
ldr r0, [r0]
cmp r0, 0x1
bne _0809E74A
add r4, sp, 0x18
ldr r0, _0809E758
adds r3, r4, 0
movs r2, 0
mov r1, sp
adds r1, 0x27
_0809E718:
strb r2, [r1]
subs r1, 0x1
cmp r1, r3
bge _0809E718
adds r1, r4, 0
bl CopyStringtoBuffer
movs r2, 0
ldrb r0, [r4]
ldrb r3, [r5]
cmp r0, r3
bne _0809E6E0
cmp r0, 0
beq _0809E74A
_0809E734:
adds r2, 0x1
cmp r2, 0xF
bgt _0809E74A
adds r0, r4, r2
adds r1, r5, r2
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne _0809E6E0
cmp r0, 0
bne _0809E734
_0809E74A:
add r0, sp, 0x13C
ldr r1, [r0]
adds r0, r7, 0
bl sub_80A2460
b _0809E8C8
.align 2, 0
_0809E758: .4byte gUnknown_2039D98
_0809E75C:
adds r2, r7, 0
adds r2, 0x50
ldrh r3, [r2]
movs r4, 0
ldrsh r0, [r2, r4]
cmp r0, 0
bne _0809E76C
b _0809E872
_0809E76C:
add r4, sp, 0xA0
adds r0, r4, 0
bl sub_809AFFC
lsls r0, 24
cmp r0, 0
bne _0809E77C
b _0809E9D6
_0809E77C:
ldrb r0, [r4]
cmp r0, 0
bne _0809E784
b _0809E8CA
_0809E784:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r0]
str r0, [r1]
add r0, sp, 0x4
movs r4, 0x2
ldrsh r1, [r0, r4]
b _0809E8C2
_0809E798:
add r1, sp, 0x4
ldr r0, [r7, 0x40]
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldr r0, [r0]
str r0, [r1]
adds r2, r7, 0
adds r2, 0x50
movs r3, 0
ldrsh r0, [r2, r3]
adds r4, r2, 0
cmp r0, 0
bne _0809E84C
movs r3, 0
adds r0, r7, 0
adds r0, 0x4C
movs r5, 0
ldrsh r2, [r0, r5]
adds r5, r0, 0
cmp r2, 0
bge _0809E7CC
ldr r0, [r7, 0x28]
ldrb r0, [r0]
cmp r0, 0xD1
beq _0809E812
b _0809E8F4
_0809E7CC:
ldr r1, [r7, 0x28]
ldrb r0, [r1]
cmp r0, 0xD0
bne _0809E7F8
movs r6, 0x2
ldrsh r0, [r1, r6]
cmp r0, r2
beq _0809E812
_0809E7DC:
ldr r0, [r7, 0x28]
adds r1, r0, 0
adds r1, 0x10
str r1, [r7, 0x28]
ldrb r0, [r0, 0x10]
cmp r0, 0xD0
bne _0809E7F8
movs r0, 0x2
ldrsh r1, [r1, r0]
movs r2, 0
ldrsh r0, [r5, r2]
cmp r1, r0
bne _0809E7DC
movs r3, 0x1
_0809E7F8:
cmp r3, 0
bne _0809E812
ldr r1, [r7, 0x28]
ldrb r0, [r1]
cmp r0, 0xD1
bne _0809E8F4
_0809E804:
adds r0, r1, 0
adds r1, 0x10
str r1, [r7, 0x28]
ldrb r0, [r0, 0x10]
cmp r0, 0xD1
beq _0809E804
b _0809E8F4
_0809E812:
add r0, sp, 0x4
ldrb r0, [r0, 0x1]
ldr r1, [sp, 0x8]
lsls r1, 16
asrs r1, 16
ldr r2, [r7, 0x28]
ldr r2, [r2, 0xC]
bl sub_809AE90
lsls r0, 24
cmp r0, 0
beq _0809E844
movs r0, 0
movs r1, 0xA
bl sub_80A87AC
adds r0, r7, 0
movs r1, 0
bl sub_809D8EC
lsls r0, 24
cmp r0, 0
beq _0809E844
movs r0, 0x1
strh r0, [r4]
_0809E844:
ldr r0, [r7, 0x28]
adds r0, 0x10
str r0, [r7, 0x28]
b _0809E9CC
_0809E84C:
adds r0, r7, 0
adds r0, 0x46
movs r3, 0
ldrsh r1, [r0, r3]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809E85E
b _0809E9D6
_0809E85E:
movs r0, 0
strh r0, [r2]
b _0809E8D0
_0809E864:
adds r2, r7, 0
adds r2, 0x50
ldrh r3, [r2]
movs r4, 0
ldrsh r0, [r2, r4]
cmp r0, 0
bne _0809E88A
_0809E872:
adds r0, r7, 0
adds r0, 0x46
movs r5, 0
ldrsh r1, [r0, r5]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809E884
b _0809E9D6
_0809E884:
adds r0, r3, 0x1
strh r0, [r2]
b _0809E9CC
_0809E88A:
add r0, sp, 0x140
bl sub_809B18C
lsls r0, 24
cmp r0, 0
bne _0809E898
b _0809E9D6
_0809E898:
add r0, sp, 0x140
ldr r3, [r0]
cmp r3, 0
ble _0809E8CA
adds r0, r7, 0
adds r0, 0x4C
movs r6, 0
ldrsh r2, [r0, r6]
ldr r1, [r7, 0x40]
lsls r0, r3, 4
lsls r2, 4
adds r2, r1
add r1, sp, 0x4
adds r0, r2
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
add r0, sp, 0x4
movs r5, 0x2
ldrsh r1, [r0, r5]
_0809E8C2:
adds r0, r7, 0
bl sub_80A242C
_0809E8C8:
str r0, [r7, 0x28]
_0809E8CA:
movs r0, 0x3
strh r0, [r7, 0x26]
_0809E8CE:
movs r0, 0
_0809E8D0:
movs r1, 0
bl sub_80A87AC
b _0809E9CC
_0809E8D8:
adds r0, r7, 0
adds r0, 0x46
movs r6, 0
ldrsh r1, [r0, r6]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _0809E9D6
ldr r0, _0809E8FC
ldr r1, [r0, 0x4]
_0809E8EC:
adds r0, r7, 0
_0809E8EE:
bl sub_80A2460
str r0, [r7, 0x28]
_0809E8F4:
movs r0, 0x3
strh r0, [r7, 0x26]
b _0809E9CC
.align 2, 0
_0809E8FC: .4byte gUnknown_2039B48
_0809E900:
adds r0, r7, 0
bl ExecuteScriptCommand
strh r0, [r7, 0x26]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bhi _0809E9BC
lsls r0, 2
ldr r1, _0809E91C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809E91C: .4byte _0809E920
.align 2, 0
_0809E920:
.4byte _0809E934
.4byte _0809E9B8
.4byte _0809E9BC
.4byte _0809E9D6
.4byte _0809E9B4
_0809E934:
adds r0, r7, 0
adds r0, 0x86
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0809E9AA
adds r4, r7, 0
adds r4, 0x84
adds r0, r7, 0
adds r0, 0x24
adds r1, r4, 0
movs r2, 0x60
bl memcpy
ldr r2, [r7]
ldr r0, [r2, 0x2C]
cmp r0, 0
beq _0809E98E
adds r5, r7, 0
adds r5, 0x4A
movs r1, 0
ldrsb r1, [r5, r1]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809E98E
ldr r0, [r7, 0x4]
add r1, sp, 0x144
ldr r2, [r2, 0x18]
bl _call_via_r2
add r0, sp, 0x144
ldr r0, [r0]
movs r1, 0x80
lsls r1, 3
ands r0, r1
cmp r0, 0
beq _0809E98E
ldr r2, [r7]
ldr r0, [r7, 0x4]
movs r1, 0
ldrsb r1, [r5, r1]
ldr r2, [r2, 0x2C]
bl _call_via_r2
_0809E98E:
ldr r0, [r7]
ldr r2, [r0, 0x30]
cmp r2, 0
beq _0809E9A2
ldr r0, [r7, 0x4]
adds r1, r7, 0
adds r1, 0x48
ldrh r1, [r1]
bl _call_via_r2
_0809E9A2:
adds r0, r4, 0
bl sub_809D568
b _0809E9D6
_0809E9AA:
adds r0, r7, 0
adds r0, 0x24
bl sub_809D568
b _0809E9D6
_0809E9B4:
movs r0, 0x4
b _0809EABA
_0809E9B8:
movs r0, 0x1
b _0809EABA
_0809E9BC:
adds r1, r7, 0
adds r1, 0x50
movs r0, 0
strh r0, [r1]
b _0809E9CC
_0809E9C6:
movs r2, 0x26
ldrsh r0, [r7, r2]
b _0809EABA
_0809E9CC:
movs r3, 0x1
cmp r3, 0
beq _0809E9D6
bl _0809DA8A
_0809E9D6:
movs r0, 0x3
b _0809EABA
_0809E9DA:
ldr r1, [r7]
ldr r0, [r7, 0x4]
add r4, sp, 0xCC
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
add r5, sp, 0xD4
adds r1, r7, 0
adds r1, 0x58
adds r2, r7, 0
adds r2, 0x60
mov r6, r8
movs r0, 0
ldrsh r6, [r6, r0]
mov r9, r6
adds r6, r7, 0
adds r6, 0x50
movs r3, 0
ldrsh r0, [r6, r3]
str r0, [sp]
adds r0, r5, 0
mov r3, r9
bl sub_8002934
ldr r1, [r5]
ldr r0, [r4]
subs r1, r0
add r0, sp, 0xDC
str r1, [r0]
ldr r1, [r5, 0x4]
ldr r2, [r4, 0x4]
subs r1, r2
str r1, [r0, 0x4]
bl sub_8002C60
lsls r0, 24
adds r2, r7, 0
adds r2, 0x4A
asrs r1, r0, 24
lsrs r0, 24
strb r0, [r2]
ldr r2, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r2, 0x2C]
bl _call_via_r2
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r1, 0x24]
adds r1, r5, 0
bl _call_via_r2
ldr r2, [r7]
ldr r0, [r7, 0x4]
movs r1, 0x80
lsls r1, 5
ldr r2, [r2, 0x30]
bl _call_via_r2
mov r4, r8
ldrh r0, [r4]
subs r0, 0x1
strh r0, [r4]
ldrh r0, [r6]
adds r0, 0x1
strh r0, [r6]
b _0809E9D6
_0809EA62:
add r5, sp, 0xC4
adds r1, r7, 0
adds r1, 0x58
adds r2, r7, 0
adds r2, 0x60
movs r3, 0
ldrsh r0, [r6, r3]
mov r8, r0
adds r4, r7, 0
adds r4, 0x50
movs r3, 0
ldrsh r0, [r4, r3]
str r0, [sp]
adds r0, r5, 0
mov r3, r8
bl sub_8002934
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r1, 0x24]
adds r1, r5, 0
bl _call_via_r2
ldr r2, [r7]
ldr r0, [r7, 0x4]
movs r1, 0x80
lsls r1, 5
ldr r2, [r2, 0x30]
bl _call_via_r2
ldrh r0, [r6]
subs r0, 0x1
strh r0, [r6]
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _0809E9D6
_0809EAAC:
subs r0, 0x1
strh r0, [r2]
b _0809E9D6
_0809EAB2:
subs r0, r2, 0x1
strh r0, [r1]
b _0809E9D6
_0809EAB8:
movs r0, 0
_0809EABA:
add sp, 0x148
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end HandleAction
thumb_func_start ExecuteScriptCommand
ExecuteScriptCommand:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1BC
mov r9, r0
movs r0, 0x24
add r0, r9
mov r10, r0
_0809EAE0:
mov r1, r10
ldr r2, [r1, 0x4]
str r2, [r1, 0x1C]
add r1, sp, 0x8
adds r0, r2, 0
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldr r0, [r0]
str r0, [r1]
adds r2, 0x10
mov r0, r10
str r2, [r0, 0x4]
add r0, sp, 0x8
ldrb r0, [r0]
mov r1, r10
adds r1, 0x20
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
adds r2, r1, 0
cmp r0, 0xF5
bhi _0809EAE0
lsls r0, 2
ldr r1, _0809EB18
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809EB18: .4byte _0809EB1C
.align 2, 0
_0809EB1C:
.4byte _0809EEF4
.4byte _0809EF40
.4byte _0809EFA2
.4byte _0809EFD6
.4byte _0809F064
.4byte _0809F02A
.4byte _0809F06C
.4byte _0809F0D0
.4byte _0809F0D0
.4byte _0809F1FC
.4byte _0809F2C8
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F2D6
.4byte _0809F42A
.4byte _0809F432
.4byte _0809F43A
.4byte _0809F442
.4byte _0809F4FE
.4byte _0809F5BE
.4byte _0809F5AE
.4byte _0809F5C6
.4byte _0809F5C6
.4byte _0809F660
.4byte _0809F6EA
.4byte _0809F786
.4byte _0809F830
.4byte _0809F842
.4byte _0809F854
.4byte _0809F872
.4byte _0809F884
.4byte _0809F896
.4byte _0809F896
.4byte _0809F8E8
.4byte _0809F8F4
.4byte _0809F900
.4byte _0809F90C
.4byte _0809F93E
.4byte _0809FAF8
.4byte _0809FB10
.4byte _0809F92E
.4byte _0809F936
.4byte _0809FB28
.4byte _0809FB28
.4byte _0809FB28
.4byte _0809FB28
.4byte _0809FB28
.4byte _0809FB28
.4byte _0809FB28
.4byte _0809FBDA
.4byte _0809FC12
.4byte _0809FC40
.4byte _0809FC2E
.4byte _0809FC46
.4byte _0809FCA4
.4byte _0809FCC4
.4byte _0809EAE0
.4byte _080A0E3A
.4byte _0809FCE8
.4byte _0809FCF0
.4byte _0809FD0A
.4byte _0809FD38
.4byte _0809FD6C
.4byte _0809FDA0
.4byte _0809FDA8
.4byte _0809FDC2
.4byte _0809FDD4
.4byte _0809FDE2
.4byte _0809FDC2
.4byte _0809FDD4
.4byte _0809FDE2
.4byte _0809FE04
.4byte _0809FE28
.4byte _0809FE86
.4byte _0809FEBE
.4byte _0809FED0
.4byte _0809FF00
.4byte _0809FF32
.4byte _0809FF46
.4byte _0809FF62
.4byte _0809FF78
.4byte _0809FF9A
.4byte _0809FFBA
.4byte _0809FFE4
.4byte _080A0010
.4byte _080A0064
.4byte _080A0096
.4byte _080A010E
.4byte _080A0186
.4byte _080A0198
.4byte _080A01B8
.4byte _080A01F0
.4byte _080A0220
.4byte _080A0250
.4byte _080A0282
.4byte _080A0282
.4byte _080A0560
.4byte _080A0198
.4byte _080A01B8
.4byte _080A01F0
.4byte _080A0220
.4byte _080A0250
.4byte _080A0282
.4byte _080A0282
.4byte _080A0560
.4byte _080A02B2
.4byte _080A0310
.4byte _080A0370
.4byte _080A03F8
.4byte _080A0462
.4byte _080A04F2
.4byte _080A02B2
.4byte _080A0310
.4byte _080A0370
.4byte _080A03F8
.4byte _080A0462
.4byte _080A04F2
.4byte _080A02B2
.4byte _080A0310
.4byte _080A0370
.4byte _080A03F8
.4byte _080A0462
.4byte _080A04F2
.4byte _080A02B2
.4byte _080A0310
.4byte _080A0370
.4byte _080A03F8
.4byte _080A0462
.4byte _080A04F2
.4byte _080A057C
.4byte _080A05A4
.4byte _080A05F0
.4byte _080A060E
.4byte _080A065C
.4byte _080A068A
.4byte _080A068A
.4byte _080A068A
.4byte _080A07CA
.4byte _080A07DC
.4byte _080A07C4
.4byte _080A07C4
.4byte _080A07C4
.4byte _0809EAE0
.4byte _080A080C
.4byte _080A081E
.4byte _080A086A
.4byte _080A08BE
.4byte _080A08CA
.4byte _080A091E
.4byte _080A0986
.4byte _080A0998
.4byte _080A09EA
.4byte _080A0A52
.4byte _080A0A64
.4byte _080A0AB6
.4byte _080A0B1E
.4byte _080A0B30
.4byte _080A0B42
.4byte _080A0B54
.4byte _080A0B6C
.4byte _080A0B88
.4byte _080A0BA2
.4byte _080A0BB4
.4byte _080A0BDA
.4byte _080A0BF6
.4byte _080A0C08
.4byte _080A0C20
.4byte _080A0C38
.4byte _080A0C50
.4byte _080A0C68
.4byte _080A0C80
.4byte _080A0C90
.4byte _080A0CA2
.4byte _080A0CC8
.4byte _080A0CF2
.4byte _080A0D16
.4byte _080A0D40
.4byte _080A0D6A
.4byte _080A0D7A
.4byte _080A0D94
.4byte _080A0DAE
.4byte _080A0DD6
.4byte _080A0E08
.4byte _080A0DE2
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _080A0E56
.4byte _0809EAE0
.4byte _0809EAE0
.4byte _0809EAE0
.4byte _080A10A0
.4byte _0809EAE0
.4byte _0809EAE0
.4byte _080A10F8
.4byte _080A10F8
.4byte _080A10F8
.4byte _080A10F8
.4byte _080A10F8
.4byte _080A10F8
.4byte _080A10F8
.4byte _0809EAE0
.4byte _080A129E
.4byte _080A12A8
.4byte _080A12B4
.4byte _0809F0C4
.4byte _0809F0C4
.4byte _0809F0C4
.4byte _0809F0C4
.4byte _0809F0C4
.4byte _0809F0C4
.4byte _080A12D0
.4byte _080A12E6
.4byte _080A12F4
.4byte _080A1318
.4byte _080A1324
.4byte _080A1338
.4byte _080A1344
.4byte _080A1368
.4byte _080A1374
.4byte _080A13CA
.4byte _080A13F8
.4byte _080A1404
.4byte _080A140C
.4byte _080A1428
.4byte _080A142C
.4byte _0809EAE0
.4byte _0809EAE0
.4byte _0809EAE0
.4byte _0809EAE0
.4byte _0809EAE0
_0809EEF4:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r4, r0, 16
adds r6, r4, 0
add r0, sp, 0x8
ldrb r5, [r0, 0x1]
movs r0, 0x1
bl sub_8011BA4
lsls r0, 24
cmp r0, 0
beq _0809EF26
ldr r1, _0809EF38
ldr r2, _0809EF3C
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r2, 0x8
adds r0, r2
ldr r3, [r0]
str r5, [sp]
movs r0, 0x1
adds r2, r4, 0
bl Log
_0809EF26:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r2, [r0, r1]
adds r0, r6, 0
adds r1, r5, 0
bl sub_8098D1C
b _0809EAE0
.align 2, 0
_0809EF38: .4byte gUnknown_81165D4
_0809EF3C: .4byte gUnknown_811BAF4
_0809EF40:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r4, r0, 16
movs r5, 0x1
negs r5, r5
cmp r4, r5
bne _0809EF5A
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r4, r0, 16
_0809EF5A:
movs r0, 0x1
bl sub_8011BA4
lsls r0, 24
cmp r0, 0
beq _0809EF70
ldr r1, _0809EF90
movs r0, 0x1
adds r2, r4, 0
bl Log
_0809EF70:
cmp r4, r5
beq _0809EF94
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r0, r4, 0
bl sub_8098E18
mov r0, r9
movs r1, 0x1
bl sub_80A2460
mov r3, r9
str r0, [r3, 0x28]
b _0809EAE0
.align 2, 0
_0809EF90: .4byte gUnknown_81165F4
_0809EF94:
mov r0, r9
movs r1, 0
bl sub_80A2460
mov r4, r9
str r0, [r4, 0x28]
b _0809EAE0
_0809EFA2:
ldr r0, [sp, 0xC]
bl sub_8021700
lsls r0, 24
cmp r0, 0
beq _0809EFBE
movs r1, 0x1
negs r1, r1
mov r0, r9
bl sub_80A2460
mov r5, r9
str r0, [r5, 0x28]
b _0809EAE0
_0809EFBE:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
bl sub_8098D80
mov r0, r9
movs r1, 0
bl sub_80A2460
mov r2, r9
str r0, [r2, 0x28]
b _0809EAE0
_0809EFD6:
ldr r1, [sp, 0xC]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _0809F00C
bl sub_802FCF0
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0809F0BC
movs r0, 0xC
movs r1, 0
movs r2, 0
bl sub_809B1C0
lsls r0, 24
cmp r0, 0
beq _0809F0BC
movs r0, 0
movs r1, 0xB
bl sub_80A87AC
mov r0, r9
adds r0, 0x4C
strh r4, [r0]
b _0809F0C4
_0809F00C:
lsls r0, r1, 16
asrs r0, 16
bl sub_80A26B8
adds r2, r0, 0
lsls r2, 16
asrs r2, 16
movs r0, 0
movs r1, 0x12
bl sub_80018D8
mov r1, r9
adds r1, 0x4C
movs r0, 0x1
b _0809F0C2
_0809F02A:
ldr r2, [sp, 0xC]
movs r0, 0x1
negs r0, r0
cmp r2, r0
bne _0809F054
movs r0, 0x24
movs r1, 0
movs r2, 0
bl sub_809B1C0
lsls r0, 24
cmp r0, 0
beq _0809F0BC
movs r0, 0
movs r1, 0xB
bl sub_80A87AC
mov r1, r9
adds r1, 0x4C
movs r0, 0
b _0809F0C2
_0809F054:
movs r0, 0
movs r1, 0x13
bl sub_80018D8
mov r1, r9
adds r1, 0x4C
movs r0, 0x1
b _0809F0C2
_0809F064:
mov r1, r9
adds r1, 0x4C
movs r0, 0x1
b _0809F0C2
_0809F06C:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r4, r0, 16
movs r0, 0x1
negs r0, r0
cmp r4, r0
bne _0809F088
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r4, r0, 16
b _0809F092
_0809F088:
movs r0, 0
movs r1, 0x13
adds r2, r4, 0
bl sub_80018D8
_0809F092:
movs r0, 0x1
bl sub_8011BA4
lsls r0, 24
cmp r0, 0
beq _0809F0A8
ldr r1, _0809F0B8
movs r0, 0x1
adds r2, r4, 0
bl Log
_0809F0A8:
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _0809F0BC
mov r1, r9
adds r1, 0x4C
movs r0, 0x1
b _0809F0C2
.align 2, 0
_0809F0B8: .4byte gUnknown_811660C
_0809F0BC:
mov r1, r9
adds r1, 0x4C
ldr r0, _0809F0CC
_0809F0C2:
strh r0, [r1]
_0809F0C4:
movs r0, 0x2
bl _080A142E
.align 2, 0
_0809F0CC: .4byte 0x0000ffff
_0809F0D0:
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x8
bne _0809F130
ldr r5, _0809F11C
ldr r0, [sp, 0xC]
strh r0, [r5]
lsls r0, 16
asrs r0, 16
bl sub_80A4D7C
ldr r4, _0809F120
strh r0, [r4]
ldr r1, _0809F124
strh r0, [r1]
movs r0, 0x1
bl sub_8011BA4
lsls r0, 24
cmp r0, 0
beq _0809F16A
ldr r1, _0809F128
movs r3, 0
ldrsh r2, [r5, r3]
movs r5, 0
ldrsh r3, [r4, r5]
ldr r4, _0809F12C
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, 0x8
adds r0, r4
ldr r0, [r0]
str r0, [sp]
movs r0, 0x1
bl Log
b _0809F16A
.align 2, 0
_0809F11C: .4byte gUnknown_2039A30
_0809F120: .4byte gUnknown_2039A32
_0809F124: .4byte gUnknown_2039A34
_0809F128: .4byte gUnknown_8116628
_0809F12C: .4byte gUnknown_811BAF4
_0809F130:
ldr r5, _0809F1E8
ldr r4, _0809F1EC
ldr r1, [sp, 0xC]
strh r1, [r4]
strh r1, [r5]
ldr r0, _0809F1F0
strh r1, [r0]
movs r0, 0x1
bl sub_8011BA4
lsls r0, 24
cmp r0, 0
beq _0809F16A
ldr r1, _0809F1F4
movs r0, 0
ldrsh r2, [r4, r0]
movs r4, 0
ldrsh r3, [r5, r4]
ldr r4, _0809F1F8
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, 0x8
adds r0, r4
ldr r0, [r0]
str r0, [sp]
movs r0, 0x1
bl Log
_0809F16A:
ldr r5, _0809F1EC
movs r0, 0
ldrsh r2, [r5, r0]
movs r0, 0
movs r1, 0x10
bl sub_80018D8
ldr r6, _0809F1F8
movs r2, 0
ldrsh r1, [r5, r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r6
movs r3, 0x2
ldrsh r2, [r0, r3]
movs r0, 0
movs r1, 0x11
bl sub_80018D8
ldr r4, _0809F1E8
movs r1, 0
ldrsh r0, [r4, r1]
bl GroundSprite_Reset
bl sub_809D0BC
bl sub_80AD9D0
bl sub_80A786C
bl sub_80ABB98
bl sub_80ACBD4
movs r2, 0
ldrsh r0, [r5, r2]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r6
movs r3, 0x2
ldrsh r1, [r1, r3]
bl sub_809C770
movs r5, 0
ldrsh r0, [r4, r5]
bl GroundMap_Select
movs r1, 0
ldrsh r0, [r4, r1]
bl GroundLink_Select
movs r2, 0
ldrsh r0, [r4, r2]
movs r1, 0
movs r2, 0
bl GroundLives_Select
movs r3, 0
ldrsh r0, [r4, r3]
b _0809F2A0
.align 2, 0
_0809F1E8: .4byte gUnknown_2039A32
_0809F1EC: .4byte gUnknown_2039A30
_0809F1F0: .4byte gUnknown_2039A34
_0809F1F4: .4byte gUnknown_8116644
_0809F1F8: .4byte gUnknown_811BAF4
_0809F1FC:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A2608
adds r6, r0, 0
ldr r1, _0809F2AC
ldr r5, _0809F2B0
ldr r4, _0809F2B4
ldr r0, [sp, 0x10]
strh r0, [r4]
strh r0, [r5]
strh r0, [r1]
movs r0, 0x1
bl sub_8011BA4
lsls r0, 24
cmp r0, 0
beq _0809F242
ldr r1, _0809F2B8
movs r0, 0
ldrsh r2, [r4, r0]
movs r4, 0
ldrsh r3, [r5, r4]
ldr r4, _0809F2BC
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, 0x8
adds r0, r4
ldr r0, [r0]
str r0, [sp]
movs r0, 0x1
bl Log
_0809F242:
movs r1, 0
ldrsh r0, [r5, r1]
bl GroundSprite_Reset
bl sub_809D0BC
bl sub_80AD9D0
bl sub_80A786C
bl sub_80ABB98
bl sub_80ACBD4
ldrb r2, [r6, 0xC]
ldr r1, _0809F2C0
ldr r0, [sp, 0x58]
ands r0, r1
orrs r0, r2
str r0, [sp, 0x58]
add r1, sp, 0x8
ldrh r2, [r1, 0x2]
lsls r2, 24
lsrs r2, 16
ldr r1, _0809F2C4
ands r0, r1
orrs r0, r2
str r0, [sp, 0x58]
movs r2, 0
ldrsh r0, [r5, r2]
add r1, sp, 0x58
add r2, sp, 0x8
ldrb r2, [r2, 0x1]
bl GroundMap_SelectDungeon
movs r3, 0
ldrsh r0, [r5, r3]
bl GroundLink_Select
movs r4, 0
ldrsh r0, [r5, r4]
movs r1, 0
movs r2, 0
bl GroundLives_Select
movs r1, 0
ldrsh r0, [r5, r1]
_0809F2A0:
movs r1, 0
movs r2, 0
bl GroundObject_Select
b _0809EAE0
.align 2, 0
_0809F2AC: .4byte gUnknown_2039A34
_0809F2B0: .4byte gUnknown_2039A32
_0809F2B4: .4byte gUnknown_2039A30
_0809F2B8: .4byte gUnknown_8116664
_0809F2BC: .4byte gUnknown_811BAF4
_0809F2C0: .4byte 0xffffff00
_0809F2C4: .4byte 0xffff00ff
_0809F2C8:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl GroundWeather_Select
bl _0809EAE0
_0809F2D6:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
cmp r0, 0
blt _0809F2E8
add r0, sp, 0x8
movs r2, 0x2
ldrsh r0, [r0, r2]
b _0809F2EE
_0809F2E8:
mov r3, r10
movs r4, 0xC
ldrsh r0, [r3, r4]
_0809F2EE:
adds r6, r0, 0
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
lsls r0, 24
cmp r0, 0
blt _0809F302
add r0, sp, 0x8
movs r1, 0x1
ldrsb r1, [r0, r1]
b _0809F308
_0809F302:
mov r5, r10
movs r1, 0xE
ldrsb r1, [r5, r1]
_0809F308:
adds r5, r1, 0
add r0, sp, 0x8
ldrb r0, [r0]
subs r0, 0xC
cmp r0, 0x9
bls _0809F318
bl _0809EAE0
_0809F318:
lsls r0, 2
ldr r1, _0809F324
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809F324: .4byte _0809F328
.align 2, 0
_0809F328:
.4byte _0809F350
.4byte _0809F380
.4byte _0809F398
.4byte _0809F3B0
.4byte _0809F3C8
.4byte _0809F3E0
.4byte _0809F3FA
.4byte _0809F406
.4byte _0809F412
.4byte _0809F41E
_0809F350:
ldr r4, _0809F37C
movs r1, 0
ldrsh r0, [r4, r1]
adds r1, r6, 0
adds r2, r5, 0
bl GroundLives_Select
movs r2, 0
ldrsh r0, [r4, r2]
adds r1, r6, 0
adds r2, r5, 0
bl GroundObject_Select
movs r3, 0
ldrsh r0, [r4, r3]
adds r1, r6, 0
adds r2, r5, 0
bl GroundEffect_Select
movs r1, 0
ldrsh r0, [r4, r1]
b _0809F3CE
.align 2, 0
_0809F37C: .4byte gUnknown_2039A32
_0809F380:
ldr r0, _0809F394
movs r2, 0
ldrsh r0, [r0, r2]
adds r1, r6, 0
adds r2, r5, 0
bl GroundLives_Select
bl _0809EAE0
.align 2, 0
_0809F394: .4byte gUnknown_2039A32
_0809F398:
ldr r0, _0809F3AC
movs r3, 0
ldrsh r0, [r0, r3]
adds r1, r6, 0
adds r2, r5, 0
bl GroundObject_Select
bl _0809EAE0
.align 2, 0
_0809F3AC: .4byte gUnknown_2039A32
_0809F3B0:
ldr r0, _0809F3C4
movs r4, 0
ldrsh r0, [r0, r4]
adds r1, r6, 0
adds r2, r5, 0
bl GroundEffect_Select
bl _0809EAE0
.align 2, 0
_0809F3C4: .4byte gUnknown_2039A32
_0809F3C8:
ldr r0, _0809F3DC
movs r1, 0
ldrsh r0, [r0, r1]
_0809F3CE:
adds r1, r6, 0
adds r2, r5, 0
bl GroundEvent_Select
bl _0809EAE0
.align 2, 0
_0809F3DC: .4byte gUnknown_2039A32
_0809F3E0:
adds r0, r6, 0
adds r1, r5, 0
bl GroundLives_Cancel
adds r0, r6, 0
adds r1, r5, 0
bl GroundObject_Cancel
adds r0, r6, 0
adds r1, r5, 0
bl GroundEffect_Cancel
b _0809F41E
_0809F3FA:
adds r0, r6, 0
adds r1, r5, 0
bl GroundLives_Cancel
bl _0809EAE0
_0809F406:
adds r0, r6, 0
adds r1, r5, 0
bl GroundObject_Cancel
bl _0809EAE0
_0809F412:
adds r0, r6, 0
adds r1, r5, 0
bl GroundEffect_Cancel
bl _0809EAE0
_0809F41E:
adds r0, r6, 0
adds r1, r5, 0
bl GroundEvent_Cancel
bl _0809EAE0
_0809F42A:
bl sub_80A79FC
bl _0809EAE0
_0809F432:
bl GroundObject_CancelBlank
bl _0809EAE0
_0809F43A:
bl GroundEffect_CancelBlank
bl _0809EAE0
_0809F442:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
add r4, sp, 0x18
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
add r6, sp, 0x1C
ldr r0, [sp, 0x10]
add r5, sp, 0x34
movs r2, 0
strb r0, [r5]
ldrb r1, [r4]
mov r0, sp
adds r0, 0x35
strb r1, [r0]
adds r0, 0x1
movs r1, 0x1
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
str r2, [sp, 0x38]
add r4, sp, 0x3C
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
bl memset
ldr r2, _0809F4AC
ldr r1, [sp, 0xC]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, 0x8
adds r0, r2
ldr r0, [r0]
str r0, [r4, 0xC]
adds r0, r6, 0
adds r1, r5, 0
movs r2, 0x18
bl memcpy
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
adds r1, r6, 0
cmp r0, 0
blt _0809F4B0
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
b _0809F4B6
.align 2, 0
_0809F4AC: .4byte gFunctionScriptTable
_0809F4B0:
mov r4, r10
movs r5, 0xC
ldrsh r2, [r4, r5]
_0809F4B6:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
lsls r0, 24
cmp r0, 0
blt _0809F4C8
add r0, sp, 0x8
movs r3, 0x1
ldrsb r3, [r0, r3]
b _0809F4CE
_0809F4C8:
mov r0, r10
movs r3, 0xE
ldrsb r3, [r0, r3]
_0809F4CE:
movs r0, 0x1
negs r0, r0
bl GroundObject_Add
lsls r0, 16
asrs r5, r0, 16
cmp r5, 0
bge _0809F4E2
bl _0809EAE0
_0809F4E2:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
add r4, sp, 0x5C
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
adds r0, r5, 0
adds r1, r4, 0
bl sub_80AC49C
bl _0809EAE0
_0809F4FE:
mov r3, r9
ldr r1, [r3]
ldr r0, [r3, 0x4]
add r4, sp, 0x4C
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
add r5, sp, 0x1C
ldr r0, [sp, 0x10]
add r1, sp, 0x28
movs r3, 0
strb r0, [r1]
ldrb r2, [r4]
mov r0, sp
adds r0, 0x29
strb r2, [r0]
adds r0, 0x1
movs r2, 0x1
strb r2, [r0]
adds r0, 0x1
strb r2, [r0]
str r3, [sp, 0x2C]
ldr r3, _0809F55C
ldr r2, [sp, 0xC]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, 0x8
adds r0, r3
ldr r0, [r0]
str r0, [sp, 0x30]
adds r0, r5, 0
movs r2, 0xC
bl memcpy
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
adds r1, r5, 0
cmp r0, 0
blt _0809F560
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
b _0809F566
.align 2, 0
_0809F55C: .4byte gFunctionScriptTable
_0809F560:
mov r5, r10
movs r0, 0xC
ldrsh r2, [r5, r0]
_0809F566:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
lsls r0, 24
cmp r0, 0
blt _0809F578
add r0, sp, 0x8
movs r3, 0x1
ldrsb r3, [r0, r3]
b _0809F57E
_0809F578:
mov r4, r10
movs r3, 0xE
ldrsb r3, [r4, r3]
_0809F57E:
movs r0, 0x1
negs r0, r0
bl GroundEffect_Add
lsls r0, 16
asrs r5, r0, 16
cmp r5, 0
bge _0809F592
bl _0809EAE0
_0809F592:
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
add r4, sp, 0x64
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
adds r0, r5, 0
adds r1, r4, 0
bl sub_80AD3B4
bl _0809EAE0
_0809F5AE:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
movs r1, 0x1
bl GroundMap_ExecuteEvent
bl _0809EAE0
_0809F5BE:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r0, [r0, r2]
b _0809F712
_0809F5C6:
ldr r1, [sp, 0xC]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809F5D6
lsls r0, r1, 16
asrs r0, 16
b _0809F5DC
_0809F5D6:
ldr r0, _0809F5F0
movs r3, 0
ldrsh r0, [r0, r3]
_0809F5DC:
adds r4, r0, 0
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
cmp r0, 0
blt _0809F5F4
add r0, sp, 0x8
movs r5, 0x2
ldrsh r1, [r0, r5]
b _0809F5FA
.align 2, 0
_0809F5F0: .4byte gUnknown_2039A30
_0809F5F4:
mov r0, r10
movs r2, 0xC
ldrsh r1, [r0, r2]
_0809F5FA:
adds r6, r1, 0
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
lsls r0, 24
cmp r0, 0
blt _0809F60E
add r0, sp, 0x8
movs r5, 0x1
ldrsb r5, [r0, r5]
b _0809F614
_0809F60E:
mov r3, r10
movs r5, 0xE
ldrsb r5, [r3, r5]
_0809F614:
adds r0, r4, 0
bl sub_80A4D7C
lsls r0, 16
asrs r4, r0, 16
movs r3, 0
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x1E
bne _0809F62A
movs r3, 0x1
_0809F62A:
adds r0, r4, 0
adds r1, r6, 0
adds r2, r5, 0
bl GroundMap_ExecuteStation
ldr r1, _0809F65C
movs r5, 0
ldrsh r0, [r1, r5]
cmp r0, r4
bne _0809F642
bl _0809EAE0
_0809F642:
strh r4, [r1]
bl sub_809D940
mov r1, r9
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0809F656
bl _0809EAE0
_0809F656:
bl _080A142C
.align 2, 0
_0809F65C: .4byte gUnknown_2039A34
_0809F660:
movs r0, 0
movs r1, 0x13
bl sub_8001658
lsls r0, 16
asrs r4, r0, 16
adds r0, r4, 0
bl sub_80A2608
adds r5, r0, 0
lsls r2, r4, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x30
bl sub_8001784
cmp r0, 0
bne _0809F68A
movs r3, 0x6
ldrsh r5, [r5, r3]
b _0809F68E
_0809F68A:
movs r0, 0x8
ldrsh r5, [r5, r0]
_0809F68E:
adds r0, r4, 0
subs r0, 0x37
lsls r0, 16
lsrs r0, 16
cmp r0, 0x10
bls _0809F6DC
adds r0, r4, 0
bl sub_80A2750
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bne _0809F6DC
movs r0, 0x1
negs r0, r0
cmp r5, r0
bne _0809F6D8
movs r0, 0x1
bl sub_8011BA4
lsls r0, 24
cmp r0, 0
beq _0809F6C6
ldr r1, _0809F6D4
movs r0, 0x1
adds r2, r4, 0
bl Log
_0809F6C6:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8098E18
bl _0809EAE0
.align 2, 0
_0809F6D4: .4byte gUnknown_8116684
_0809F6D8:
adds r0, r5, 0
b _0809F712
_0809F6DC:
movs r1, 0x1
negs r1, r1
adds r0, r4, 0
bl sub_8098E18
bl _0809EAE0
_0809F6EA:
mov r1, r9
movs r2, 0xC
ldrsh r0, [r1, r2]
cmp r0, 0x1
beq _0809F71C
cmp r0, 0x1
bgt _0809F700
cmp r0, 0
beq _0809F70C
bl _0809EAE0
_0809F700:
cmp r0, 0x2
beq _0809F73E
cmp r0, 0x3
beq _0809F762
bl _0809EAE0
_0809F70C:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
_0809F712:
movs r1, 0
bl GroundMap_ExecuteEvent
bl _0809EAE0
_0809F71C:
add r4, sp, 0x1C
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
mov r0, r9
adds r1, r4, 0
bl sub_809D710
mov r1, r9
movs r2, 0xE
ldrsh r0, [r1, r2]
adds r1, 0x8
adds r2, r4, 0
bl GroundLives_ExecuteScript
bl _0809EAE0
_0809F73E:
add r4, sp, 0x28
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
mov r0, r9
adds r1, r4, 0
bl sub_809D710
mov r5, r9
movs r1, 0xE
ldrsh r0, [r5, r1]
mov r1, r9
adds r1, 0x8
adds r2, r4, 0
bl GroundObject_ExecuteScript
bl _0809EAE0
_0809F762:
add r4, sp, 0x34
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
mov r0, r9
adds r1, r4, 0
bl sub_809D710
mov r5, r9
movs r1, 0xE
ldrsh r0, [r5, r1]
mov r1, r9
adds r1, 0x8
adds r2, r4, 0
bl GroundEffect_ExecuteScript
bl _0809EAE0
_0809F786:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r0, 16
mov r8, r0
cmp r0, 0
bge _0809F79E
bl _0809EAE0
_0809F79E:
add r1, sp, 0x6C
bl sub_80A8BD8
ldr r0, [sp, 0x6C]
movs r1, 0x80
lsls r1, 2
ands r0, r1
cmp r0, 0
beq _0809F818
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
add r7, sp, 0x70
ldr r2, [r1, 0xC]
adds r1, r7, 0
bl _call_via_r2
mov r3, r9
ldr r1, [r3]
ldr r0, [r3, 0x4]
add r5, sp, 0x78
ldr r2, [r1, 0x8]
adds r1, r5, 0
bl _call_via_r2
add r6, sp, 0x80
mov r0, r8
adds r1, r6, 0
bl sub_80A8FD8
add r4, sp, 0x88
mov r0, r8
adds r1, r4, 0
bl sub_80A8F9C
adds r0, r6, 0
adds r1, r4, 0
adds r2, r7, 0
adds r3, r5, 0
bl sub_8002DF0
lsls r0, 24
asrs r1, r0, 24
adds r4, r1, 0
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _0809F812
ldr r3, _0809F82C
adds r0, r7, 0
adds r1, r3, 0
adds r2, r6, 0
bl sub_8002D54
lsls r0, 24
asrs r1, r0, 24
cmp r1, r4
beq _0809F818
_0809F812:
mov r0, r8
bl sub_80A9090
_0809F818:
mov r4, r9
movs r5, 0xA
ldrsh r0, [r4, r5]
mov r1, r8
bl GroundLives_ExecutePlayerScriptActionLives
movs r0, 0x3
bl _080A142E
.align 2, 0
_0809F82C: .4byte gUnknown_81164DC
_0809F830:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
bl sub_80999E8
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A130C
_0809F842:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r0, [r0, r2]
bl sub_80999FC
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A130C
_0809F854:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
ldr r1, [sp, 0xC]
lsls r1, 16
lsrs r1, 16
ldr r2, [sp, 0x10]
lsls r2, 16
lsrs r2, 16
bl sub_8099A10
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A130C
_0809F872:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
bl sub_8099A34
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A130C
_0809F884:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
bl sub_8099A48
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A130C
_0809F896:
ldr r0, [sp, 0x10]
asrs r0, 16
add r1, sp, 0x20
movs r2, 0
strb r0, [r1]
ldr r0, [sp, 0x10]
asrs r0, 8
adds r1, 0x1
strb r0, [r1]
ldr r1, [sp, 0x10]
mov r0, sp
adds r0, 0x22
strb r1, [r0]
adds r0, 0x1
strb r2, [r0]
ldr r2, [sp, 0x20]
str r2, [sp, 0x1C]
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x27
beq _0809F8C6
cmp r0, 0x28
beq _0809F8D4
b _0809F8E0
_0809F8C6:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
ldr r1, [sp, 0xC]
bl sub_8099A5C
b _0809F8E0
_0809F8D4:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
ldr r1, [sp, 0xC]
bl sub_8099AFC
_0809F8E0:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A130C
_0809F8E8:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
bl sub_809A6E4
bl _0809EAE0
_0809F8F4:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
bl sub_809A6F8
bl _0809EAE0
_0809F900:
ldr r0, [sp, 0xC]
ldr r1, [sp, 0x10]
bl sub_809A738
bl _0809EAE0
_0809F90C:
bl sub_809A768
lsls r0, 24
cmp r0, 0
bne _0809F91A
bl _0809EAE0
_0809F91A:
movs r0, 0
movs r1, 0xA
bl sub_80A87AC
mov r0, r9
movs r1, 0
bl sub_809D8EC
bl _080A130A
_0809F92E:
bl sub_809A76C
bl _0809EAE0
_0809F936:
bl sub_809A7B4
bl _0809EAE0
_0809F93E:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
cmp r0, 0xA
bls _0809F94A
bl _0809EAE0
_0809F94A:
lsls r0, 2
ldr r1, _0809F954
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809F954: .4byte _0809F958
.align 2, 0
_0809F958:
.4byte _0809F984
.4byte _0809F992
.4byte _0809F9A4
.4byte _0809F9B6
.4byte _0809F9D8
.4byte _0809F9EA
.4byte _0809F9FC
.4byte _0809FA44
.4byte _0809FA56
.4byte _0809FA68
.4byte _0809FAB0
_0809F984:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
bl sub_809A83C
bl _0809EAE0
_0809F992:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
mov r1, r9
adds r1, 0x8
bl sub_80A2500
bl _0809EAE0
_0809F9A4:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
mov r1, r9
adds r1, 0xC
bl sub_80A2500
bl _0809EAE0
_0809F9B6:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
add r1, sp, 0x90
lsls r0, 16
movs r2, 0x1
orrs r0, r2
str r0, [r1]
add r0, sp, 0x8
movs r2, 0x2
ldrsh r0, [r0, r2]
bl sub_80A2500
bl _0809EAE0
_0809F9D8:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
mov r1, r9
adds r1, 0x8
bl sub_80A252C
bl _0809EAE0
_0809F9EA:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
mov r1, r9
adds r1, 0xC
bl sub_80A252C
bl _0809EAE0
_0809F9FC:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
add r1, sp, 0x94
ldrh r2, [r1]
orrs r2, r0
str r2, [r1]
cmp r2, 0
blt _0809FA30
ldr r0, _0809FA2C
ands r2, r0
movs r0, 0x1
orrs r2, r0
str r2, [r1]
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
bl sub_80A252C
bl _0809EAE0
.align 2, 0
_0809FA2C: .4byte 0xffff0000
_0809FA30:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
bl sub_80A2584
bl _0809EAE0
_0809FA44:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r0, [r0, r2]
mov r1, r9
adds r1, 0x8
bl sub_80A2558
bl _0809EAE0
_0809FA56:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
mov r1, r9
adds r1, 0xC
bl sub_80A2558
bl _0809EAE0
_0809FA68:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
add r1, sp, 0x98
ldrh r2, [r1]
orrs r2, r0
str r2, [r1]
cmp r2, 0
blt _0809FA9C
ldr r0, _0809FA98
ands r2, r0
movs r0, 0x1
orrs r2, r0
str r2, [r1]
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
bl sub_80A2558
bl _0809EAE0
.align 2, 0
_0809FA98: .4byte 0xffff0000
_0809FA9C:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
bl sub_80A2598
bl _0809EAE0
_0809FAB0:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A2740
lsls r0, 24
lsrs r1, r0, 24
movs r4, 0
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0
beq _0809FAD0
cmp r0, 0x2
beq _0809FAD4
b _0809FAD8
_0809FAD0:
movs r4, 0x1
b _0809FAD8
_0809FAD4:
movs r4, 0x1
negs r4, r4
_0809FAD8:
adds r0, r1, 0
bl GetDungeonFloorCount
ldr r2, _0809FAF4
add r1, sp, 0x8
movs r3, 0x2
ldrsh r1, [r1, r3]
lsls r1, 2
adds r1, r2
adds r0, r4
str r0, [r1]
bl _0809EAE0
.align 2, 0
_0809FAF4: .4byte gUnknown_202DE30
_0809FAF8:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
ldr r1, [sp, 0xC]
lsls r1, 24
asrs r1, 24
add r2, sp, 0x8
ldrb r2, [r2, 0x1]
bl sub_809AC7C
bl _0809EAE0
_0809FB10:
ldr r0, [sp, 0xC]
add r1, sp, 0x9C
str r0, [r1]
ldr r0, [sp, 0x10]
str r0, [r1, 0x4]
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
bl sub_809ADD8
bl _0809EAE0
_0809FB28:
movs r1, 0
ldrb r0, [r2]
subs r0, 0x32
cmp r0, 0x6
bhi _0809FBBE
lsls r0, 2
ldr r1, _0809FB3C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809FB3C: .4byte _0809FB40
.align 2, 0
_0809FB40:
.4byte _0809FB5C
.4byte _0809FB6C
.4byte _0809FB7C
.4byte _0809FB8C
.4byte _0809FB9C
.4byte _0809FBAC
.4byte _0809FBB4
_0809FB5C:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
ldr r2, [sp, 0x14]
movs r0, 0
bl sub_809AE90
b _0809FBBA
_0809FB6C:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r1, [r0, r3]
ldr r2, [sp, 0x14]
movs r0, 0x1
bl sub_809AE90
b _0809FBBA
_0809FB7C:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r1, [r0, r4]
ldr r2, [sp, 0x14]
movs r0, 0x2
bl sub_809AE90
b _0809FBBA
_0809FB8C:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r1, [r0, r5]
ldr r2, [sp, 0x14]
movs r0, 0x3
bl sub_809AE90
b _0809FBBA
_0809FB9C:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
ldr r2, [sp, 0x14]
movs r0, 0x4
bl sub_809AE90
b _0809FBBA
_0809FBAC:
ldr r0, [sp, 0x14]
bl sub_809AEEC
b _0809FBBA
_0809FBB4:
ldr r0, [sp, 0x14]
bl sub_809AF2C
_0809FBBA:
lsls r0, 24
lsrs r1, r0, 24
_0809FBBE:
cmp r1, 0
bne _0809FBC6
bl _0809EAE0
_0809FBC6:
movs r0, 0
movs r1, 0xA
bl sub_80A87AC
mov r0, r9
movs r1, 0
bl sub_809D8EC
bl _080A130A
_0809FBDA:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
ldr r1, [sp, 0x14]
bl sub_809AF6C
lsls r0, 24
cmp r0, 0
bne _0809FBF0
bl _0809EAE0
_0809FBF0:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
cmp r0, 0
bge _0809FBFE
bl _0809EAE0
_0809FBFE:
movs r0, 0
movs r1, 0xA
bl sub_80A87AC
mov r0, r9
movs r1, 0
bl sub_809D8EC
bl _080A130A
_0809FC12:
add r0, sp, 0x8
ldrb r1, [r0, 0x1]
negs r0, r1
orrs r0, r1
lsrs r0, 31
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x10]
lsls r2, 16
asrs r2, 16
ldr r3, [sp, 0x14]
bl sub_809AFC8
bl _080A1280
_0809FC2E:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x10]
ldr r3, [sp, 0x14]
bl sub_809B1D4
bl _080A1292
_0809FC40:
movs r0, 0
bl _080A0654
_0809FC46:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r1, r0, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0809FC90
adds r0, r1, 0
bl sub_80A8D54
cmp r0, 0
bne _0809FC62
bl _0809EAE0
_0809FC62:
movs r3, 0
ldr r2, _0809FC8C
adds r5, r2, 0
adds r4, r0, 0
adds r4, 0x4C
_0809FC6C:
adds r0, r3, r5
adds r1, r4, r3
ldrb r1, [r1]
strb r1, [r0]
adds r3, 0x1
cmp r3, 0x9
ble _0809FC6C
movs r0, 0
strb r0, [r2, 0xA]
movs r0, 0x4
movs r1, 0
bl sub_809B1C0
bl _080A1292
.align 2, 0
_0809FC8C: .4byte gUnknown_2039D98
_0809FC90:
ldr r2, _0809FCA0
movs r0, 0x4
movs r1, 0x1
bl sub_809B1C0
bl _080A1292
.align 2, 0
_0809FCA0: .4byte gUnknown_2039D98
_0809FCA4:
ldr r4, _0809FCC0
adds r0, r4, 0
bl sub_80920B8
movs r0, 0
strb r0, [r4, 0xA]
movs r0, 0x5
movs r1, 0
adds r2, r4, 0
bl sub_809B1C0
bl _080A1292
.align 2, 0
_0809FCC0: .4byte gUnknown_2039D98
_0809FCC4:
ldr r2, _0809FCE4
adds r3, r2, 0
movs r1, 0
adds r0, r2, 0
adds r0, 0xB
_0809FCCE:
strb r1, [r0]
subs r0, 0x1
cmp r0, r3
bge _0809FCCE
add r0, sp, 0x8
ldrb r1, [r0, 0x1]
movs r0, 0x6
bl sub_809B1C0
bl _080A1292
.align 2, 0
_0809FCE4: .4byte gUnknown_2039D98
_0809FCE8:
bl StopAllMusic_1
bl _0809EAE0
_0809FCF0:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
cmp r0, 0
blt _0809FD00
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
b _0809FD02
_0809FD00:
movs r0, 0x1E
_0809FD02:
bl FadeOutAllMusic
bl _0809EAE0
_0809FD0A:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
cmp r0, 0
bne _0809FD1E
ldr r0, [sp, 0xC]
lsls r0, 16
lsrs r0, 16
bl sub_80A25AC
b _0809FD20
_0809FD1E:
ldr r0, [sp, 0xC]
_0809FD20:
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _0809FD34
cmp r1, r0
beq _0809FDA0
adds r0, r1, 0
bl xxx_call_start_new_bgm
bl _0809EAE0
.align 2, 0
_0809FD34: .4byte 0x000003e7
_0809FD38:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
cmp r0, 0
bne _0809FD4C
ldr r0, [sp, 0xC]
lsls r0, 16
lsrs r0, 16
bl sub_80A25AC
b _0809FD4E
_0809FD4C:
ldr r0, [sp, 0xC]
_0809FD4E:
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _0809FD68
cmp r2, r0
beq _0809FDA0
add r0, sp, 0x8
ldrh r1, [r0, 0x2]
adds r0, r2, 0
bl xxx_call_fade_in_new_bgm
bl _0809EAE0
.align 2, 0
_0809FD68: .4byte 0x000003e7
_0809FD6C:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
cmp r0, 0
bne _0809FD80
ldr r0, [sp, 0xC]
lsls r0, 16
lsrs r0, 16
bl sub_80A25AC
b _0809FD82
_0809FD80:
ldr r0, [sp, 0xC]
_0809FD82:
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _0809FD9C
cmp r1, r0
bne _0809FD90
bl _0809EAE0
_0809FD90:
adds r0, r1, 0
bl xxx_call_queue_bgm
bl _0809EAE0
.align 2, 0
_0809FD9C: .4byte 0x000003e7
_0809FDA0:
bl xxx_call_stop_bgm
bl _0809EAE0
_0809FDA8:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
cmp r0, 0
blt _0809FDB8
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
b _0809FDBA
_0809FDB8:
movs r0, 0x1E
_0809FDBA:
bl xxx_call_fade_out_bgm
bl _0809EAE0
_0809FDC2:
ldr r0, [sp, 0xC]
lsls r0, 16
lsrs r0, 16
movs r1, 0x80
lsls r1, 1
bl xxx_call_play_fanfare_se
bl _0809EAE0
_0809FDD4:
ldr r0, [sp, 0xC]
lsls r0, 16
lsrs r0, 16
bl xxx_call_stop_fanfare_se
bl _0809EAE0
_0809FDE2:
ldr r0, [sp, 0xC]
lsls r0, 16
lsrs r2, r0, 16
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
cmp r0, 0
blt _0809FDF8
add r0, sp, 0x8
ldrh r1, [r0, 0x2]
b _0809FDFA
_0809FDF8:
movs r1, 0x1E
_0809FDFA:
adds r0, r2, 0
bl xxx_call_fade_out_fanfare_se
bl _0809EAE0
_0809FE04:
mov r1, r9
adds r1, 0x84
movs r5, 0
ldrsh r0, [r1, r5]
cmp r0, 0x1
bne _0809FE16
adds r0, r1, 0
bl sub_809D568
_0809FE16:
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r2, [r1, 0x1C]
movs r1, 0
bl _call_via_r2
bl _0809EAE0
_0809FE28:
mov r0, r9
adds r0, 0xC
bl sub_809D52C
adds r4, r0, 0
cmp r4, 0
bne _0809FE3A
bl _0809EAE0
_0809FE3A:
ldr r1, [r4]
mov r2, r9
ldr r0, [r2, 0x4]
add r5, sp, 0xA4
ldr r2, [r1, 0xC]
adds r1, r5, 0
bl _call_via_r2
ldr r1, [r4]
mov r3, r9
ldr r0, [r3, 0x4]
mov r4, sp
adds r4, 0x4D
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r2, [r1, 0x24]
adds r1, r5, 0
bl _call_via_r2
ldrb r0, [r4]
mov r1, r9
adds r1, 0x4A
strb r0, [r1]
mov r1, r9
ldr r2, [r1]
ldr r0, [r1, 0x4]
movs r1, 0
ldrsb r1, [r4, r1]
ldr r2, [r2, 0x2C]
bl _call_via_r2
bl _0809EAE0
_0809FE86:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
add r6, sp, 0xAC
ldr r2, [r1, 0xC]
adds r1, r6, 0
bl _call_via_r2
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
add r4, sp, 0xB4
add r5, sp, 0xBC
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl sub_80AD914
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r3, [r1, 0x20]
adds r1, r4, 0
adds r2, r5, 0
bl _call_via_r3
bl _0809EAE0
_0809FEBE:
mov r1, r9
ldr r2, [r1]
ldr r0, [r1, 0x4]
ldr r1, [sp, 0xC]
ldr r2, [r2, 0x3C]
bl _call_via_r2
bl _0809EAE0
_0809FED0:
ldr r0, [sp, 0xC]
movs r1, 0x80
lsls r1, 3
ands r0, r1
cmp r0, 0
beq _0809FEEE
mov r1, r9
adds r1, 0x84
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x1
bne _0809FEEE
adds r0, r1, 0
bl sub_809D568
_0809FEEE:
mov r3, r9
ldr r2, [r3]
ldr r0, [r3, 0x4]
ldr r1, [sp, 0xC]
ldr r2, [r2, 0x40]
bl _call_via_r2
bl _0809EAE0
_0809FF00:
mov r4, r9
ldr r2, [r4]
ldr r0, [r4, 0x4]
mov r1, r9
adds r1, 0x4A
ldr r2, [r2, 0x14]
bl _call_via_r2
add r0, sp, 0x8
ldrh r1, [r0, 0x2]
cmp r1, 0
beq _0809FF1E
mov r0, r9
adds r0, 0x48
strh r1, [r0]
_0809FF1E:
mov r5, r9
ldr r2, [r5]
ldr r0, [r5, 0x4]
add r1, sp, 0x8
ldrh r1, [r1, 0x2]
ldr r2, [r2, 0x30]
bl _call_via_r2
bl _0809EAE0
_0809FF32:
mov r0, r9
ldr r2, [r0]
ldr r0, [r0, 0x4]
add r1, sp, 0x8
ldrh r1, [r1, 0x2]
ldr r2, [r2, 0x34]
bl _call_via_r2
bl _0809EAE0
_0809FF46:
mov r1, r9
ldr r3, [r1]
ldr r0, [r1, 0x4]
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
add r2, sp, 0x8
movs r4, 0x2
ldrsh r2, [r2, r4]
ldr r3, [r3, 0x38]
bl _call_via_r3
bl _0809EAE0
_0809FF62:
mov r5, r9
ldr r2, [r5]
ldr r0, [r5, 0x4]
add r1, sp, 0x8
movs r3, 0x2
ldrsh r1, [r1, r3]
ldr r2, [r2, 0x44]
bl _call_via_r2
bl _0809EAE0
_0809FF78:
ldr r0, [sp, 0xC]
lsls r0, 8
add r1, sp, 0xC4
str r0, [r1]
ldr r0, [sp, 0x10]
lsls r0, 8
str r0, [r1, 0x4]
mov r4, r9
ldr r2, [r4]
ldr r0, [r4, 0x4]
ldr r2, [r2, 0x24]
bl _call_via_r2
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
mov r5, r10
b _080A05EA
_0809FF9A:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
lsls r0, 8
add r1, sp, 0xCC
str r0, [r1]
ldr r0, [sp, 0xC]
lsls r0, 8
str r0, [r1, 0x4]
mov r3, r9
ldr r2, [r3]
ldr r0, [r3, 0x4]
ldr r2, [r2, 0x48]
bl _call_via_r2
b _080A0650
_0809FFBA:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
bl OtherRandomCapped
lsls r0, 8
add r4, sp, 0xD4
str r0, [r4]
ldr r0, [sp, 0xC]
bl OtherRandomCapped
lsls r0, 8
str r0, [r4, 0x4]
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r2, [r1, 0x48]
adds r1, r4, 0
bl _call_via_r2
b _080A07B4
_0809FFE4:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
add r4, sp, 0xDC
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
adds r1, r4, 0
bl sub_80AD8B4
mov r3, r9
ldr r1, [r3]
ldr r0, [r3, 0x4]
ldr r2, [r1, 0x24]
adds r1, r4, 0
bl _call_via_r2
b _080A0650
_080A0010:
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
add r6, sp, 0xE4
ldr r2, [r1, 0xC]
adds r1, r6, 0
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
add r4, sp, 0xEC
add r5, sp, 0xF4
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl sub_80AD914
ldr r0, [r5]
ldr r1, [r4]
subs r0, r1
bl OtherRandomCapped
ldr r1, [r4]
adds r1, r0
str r1, [r6]
ldr r0, [r5, 0x4]
ldr r1, [r4, 0x4]
subs r0, r1
bl OtherRandomCapped
ldr r1, [r4, 0x4]
adds r1, r0
str r1, [r6, 0x4]
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r2, [r1, 0x24]
adds r1, r6, 0
bl _call_via_r2
b _080A07B4
_080A0064:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _080A007A
bl _0809EAE0
_080A007A:
add r4, sp, 0xFC
adds r1, r4, 0
bl sub_80A8FD8
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
ldr r2, [r1, 0x24]
adds r1, r4, 0
bl _call_via_r2
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
b _080A03F0
_080A0096:
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x32
bl sub_8001784
add r5, sp, 0x104
str r0, [r5]
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x33
bl sub_8001784
str r0, [r5, 0x4]
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x34
bl sub_8001784
adds r6, r0, 0
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x35
bl sub_8001784
adds r4, r0, 0
lsls r4, 24
asrs r4, 24
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r2, [r1, 0x24]
adds r1, r5, 0
bl _call_via_r2
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
ldr r2, [r1, 0x28]
adds r1, r6, 0
bl _call_via_r2
mov r0, r9
adds r0, 0x4A
strb r4, [r0]
mov r3, r9
ldr r1, [r3]
ldr r0, [r3, 0x4]
ldr r2, [r1, 0x2C]
adds r1, r4, 0
bl _call_via_r2
b _080A0650
_080A010E:
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
add r4, sp, 0x10C
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
ldr r3, [r5]
ldr r0, [r5, 0x4]
add r1, sp, 0x114
add r2, sp, 0x118
ldr r3, [r3, 0x10]
bl _call_via_r3
ldr r1, [r5]
ldr r0, [r5, 0x4]
mov r5, sp
adds r5, 0x4E
ldr r2, [r1, 0x14]
adds r1, r5, 0
bl _call_via_r2
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
add r0, sp, 0x10C
ldr r3, [r0]
movs r0, 0
movs r1, 0x32
bl sub_800199C
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
ldr r3, [r4, 0x4]
movs r0, 0
movs r1, 0x33
bl sub_800199C
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
add r0, sp, 0x114
ldr r3, [r0]
movs r0, 0
movs r1, 0x34
bl sub_800199C
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
movs r3, 0
ldrsb r3, [r5, r3]
movs r0, 0
movs r1, 0x35
bl sub_800199C
bl _0809EAE0
_080A0186:
mov r0, r9
ldr r2, [r0]
ldr r0, [r0, 0x4]
ldr r1, [sp, 0xC]
lsls r1, 8
ldr r2, [r2, 0x28]
bl _call_via_r2
b _080A07B4
_080A0198:
ldr r0, [sp, 0xC]
lsls r0, 8
mov r2, r10
str r0, [r2, 0x3C]
ldr r0, [sp, 0x10]
lsls r0, 8
str r0, [r2, 0x40]
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
str r0, [r2, 0x30]
ldr r0, _080A01B4
bl _080A12AE
.align 2, 0
_080A01B4: .4byte 0x0000ffff
_080A01B8:
mov r4, r9
ldr r1, [r4]
ldr r0, [r4, 0x4]
add r4, sp, 0x11C
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
ldr r1, [sp, 0xC]
lsls r1, 8
add r0, sp, 0x11C
ldr r0, [r0]
adds r0, r1
mov r5, r10
str r0, [r5, 0x3C]
ldr r1, [sp, 0x10]
lsls r1, 8
ldr r0, [r4, 0x4]
adds r0, r1
str r0, [r5, 0x40]
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
str r0, [r5, 0x30]
ldr r0, _080A01EC
b _080A05EA
.align 2, 0
_080A01EC: .4byte 0x0000ffff
_080A01F0:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
mov r4, r10
adds r4, 0x3C
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
adds r1, r4, 0
bl sub_80AD8B4
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
mov r4, r10
str r0, [r4, 0x30]
ldr r0, _080A021C
b _080A0656
.align 2, 0
_080A021C: .4byte 0x0000ffff
_080A0220:
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
mov r4, r10
adds r4, 0x3C
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
adds r1, r4, 0
bl sub_80AD8B4
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
mov r2, r10
str r0, [r2, 0x30]
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A12AE
_080A0250:
mov r3, r9
ldr r1, [r3]
ldr r0, [r3, 0x4]
mov r4, r10
adds r4, 0x3C
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
adds r1, r4, 0
bl sub_80AD8B4
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
mov r5, r10
str r0, [r5, 0x30]
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl OtherRandomCapped
b _080A05EA
_080A0282:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _080A0298
bl _0809EAE0
_080A0298:
mov r1, r10
adds r1, 0x3C
bl sub_80A8FD8
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
mov r2, r10
str r0, [r2, 0x30]
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
bl _080A12AE
_080A02B2:
mov r3, r9
ldr r2, [r3]
ldr r0, [r3, 0x4]
mov r1, r10
adds r1, 0x34
ldr r2, [r2, 0xC]
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r1, r0, 8
mov r4, r10
str r1, [r4, 0x3C]
ldr r0, [sp, 0x10]
lsls r2, r0, 8
str r2, [r4, 0x40]
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x7D
beq _080A02DC
cmp r0, 0x83
bne _080A0304
_080A02DC:
mov r5, r10
ldr r0, [r5, 0x34]
subs r0, r1, r0
ldr r1, [r5, 0x38]
subs r1, r2, r1
bl sub_8009FB8
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
bl __divsi3
strh r0, [r5, 0x2A]
lsls r0, 16
cmp r0, 0
ble _080A0300
bl _0809F0C4
_080A0300:
movs r0, 0x1
b _080A05EA
_080A0304:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
mov r3, r10
strh r0, [r3, 0x2A]
bl _0809F0C4
_080A0310:
mov r4, r9
ldr r2, [r4]
ldr r0, [r4, 0x4]
mov r1, r10
adds r1, 0x34
ldr r2, [r2, 0xC]
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r0, 8
mov r5, r10
ldr r4, [r5, 0x34]
adds r3, r4, r0
str r3, [r5, 0x3C]
ldr r0, [sp, 0x10]
lsls r0, 8
ldr r2, [r5, 0x38]
adds r1, r2, r0
str r1, [r5, 0x40]
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x7E
beq _080A0342
cmp r0, 0x84
bne _080A036A
_080A0342:
subs r0, r3, r4
subs r1, r2
bl sub_8009FB8
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
bl __divsi3
mov r3, r10
strh r0, [r3, 0x2A]
lsls r0, 16
cmp r0, 0
ble _080A0362
bl _0809F0C4
_080A0362:
movs r0, 0x1
strh r0, [r3, 0x2A]
bl _0809F0C4
_080A036A:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
b _080A0654
_080A0370:
ldr r4, [sp, 0xC]
lsls r4, 1
subs r4, 0x1
ldr r5, [sp, 0x10]
lsls r5, 1
subs r5, 0x1
mov r0, r9
ldr r2, [r0]
ldr r0, [r0, 0x4]
mov r1, r10
adds r1, 0x34
ldr r2, [r2, 0xC]
bl _call_via_r2
adds r0, r4, 0
bl OtherRandomCapped
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
subs r0, r1
lsls r0, 8
mov r3, r10
ldr r1, [r3, 0x34]
adds r1, r0
str r1, [r3, 0x3C]
adds r0, r5, 0
bl OtherRandomCapped
ldr r1, [sp, 0xC]
subs r0, r1
lsls r0, 8
mov r4, r10
ldr r3, [r4, 0x38]
adds r2, r3, r0
str r2, [r4, 0x40]
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x7F
beq _080A03C4
cmp r0, 0x85
bne _080A03EC
_080A03C4:
mov r5, r10
ldr r0, [r5, 0x3C]
ldr r1, [r5, 0x34]
subs r0, r1
subs r1, r2, r3
bl sub_8009FB8
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
bl __divsi3
strh r0, [r5, 0x2A]
lsls r0, 16
cmp r0, 0
ble _080A03E8
bl _0809F0C4
_080A03E8:
movs r0, 0x1
b _080A05EA
_080A03EC:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
_080A03F0:
mov r3, r10
strh r0, [r3, 0x2A]
bl _0809F0C4
_080A03F8:
mov r4, r9
ldr r2, [r4]
ldr r0, [r4, 0x4]
mov r1, r10
adds r1, 0x34
ldr r2, [r2, 0xC]
bl _call_via_r2
mov r5, r10
ldr r0, [r5, 0x34]
ldr r1, [r5, 0x38]
mov r2, r10
str r0, [r2, 0x3C]
str r1, [r2, 0x40]
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
mov r1, r10
adds r1, 0x3C
bl sub_80AD8B4
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x80
beq _080A042E
cmp r0, 0x86
bne _080A045C
_080A042E:
mov r3, r10
ldr r0, [r3, 0x3C]
ldr r1, [r3, 0x34]
subs r0, r1
ldr r1, [r3, 0x40]
ldr r2, [r3, 0x38]
subs r1, r2
bl sub_8009FB8
add r1, sp, 0x8
movs r4, 0x2
ldrsh r1, [r1, r4]
bl __divsi3
mov r5, r10
strh r0, [r5, 0x2A]
lsls r0, 16
cmp r0, 0
ble _080A0458
bl _0809F0C4
_080A0458:
movs r0, 0x1
b _080A05EA
_080A045C:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
b _080A07B8
_080A0462:
ldr r4, [sp, 0xC]
lsls r4, 1
subs r4, 0x1
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
mov r5, r10
adds r5, 0x3C
ldr r2, [r1, 0xC]
adds r1, r5, 0
bl _call_via_r2
ldr r0, [sp, 0x10]
lsls r0, 16
asrs r0, 16
adds r1, r5, 0
bl sub_80AD8B4
adds r0, r4, 0
bl OtherRandomCapped
add r1, sp, 0x8
movs r3, 0x2
ldrsh r1, [r1, r3]
subs r0, r1
lsls r0, 8
mov r5, r10
ldr r1, [r5, 0x3C]
adds r1, r0
str r1, [r5, 0x3C]
adds r0, r4, 0
bl OtherRandomCapped
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
subs r0, r1
lsls r0, 8
ldr r1, [r5, 0x40]
adds r2, r1, r0
str r2, [r5, 0x40]
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x81
beq _080A04C0
cmp r0, 0x87
bne _080A04EC
_080A04C0:
mov r3, r10
ldr r0, [r3, 0x3C]
ldr r1, [r3, 0x34]
subs r0, r1
ldr r1, [r3, 0x38]
subs r1, r2, r1
bl sub_8009FB8
add r1, sp, 0x8
movs r4, 0x2
ldrsh r1, [r1, r4]
bl __divsi3
mov r5, r10
strh r0, [r5, 0x2A]
lsls r0, 16
cmp r0, 0
ble _080A04E8
bl _0809F0C4
_080A04E8:
movs r0, 0x1
b _080A05EA
_080A04EC:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
b _080A07B8
_080A04F2:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r4, r0, 16
cmp r4, 0
bge _080A0508
bl _0809EAE0
_080A0508:
mov r3, r9
ldr r2, [r3]
ldr r0, [r3, 0x4]
mov r1, r10
adds r1, 0x34
ldr r2, [r2, 0xC]
bl _call_via_r2
mov r1, r10
adds r1, 0x3C
adds r0, r4, 0
bl sub_80A8FD8
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x82
beq _080A052E
cmp r0, 0x88
bne _080A055A
_080A052E:
mov r4, r10
ldr r0, [r4, 0x3C]
ldr r1, [r4, 0x34]
subs r0, r1
ldr r1, [r4, 0x40]
ldr r2, [r4, 0x38]
subs r1, r2
bl sub_8009FB8
add r1, sp, 0x8
movs r5, 0x2
ldrsh r1, [r1, r5]
bl __divsi3
strh r0, [r4, 0x2A]
lsls r0, 16
cmp r0, 0
ble _080A0556
bl _0809F0C4
_080A0556:
movs r0, 0x1
b _080A0656
_080A055A:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
b _080A07B8
_080A0560:
ldr r0, [sp, 0xC]
lsls r0, 8
mov r2, r10
str r0, [r2, 0x48]
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
str r0, [r2, 0x30]
ldr r0, _080A0578
bl _080A12AE
.align 2, 0
_080A0578: .4byte 0x0000ffff
_080A057C:
ldr r1, [sp, 0xC]
mov r0, r9
adds r0, 0x4A
strb r1, [r0]
mov r4, r9
ldr r2, [r4]
ldr r0, [r4, 0x4]
lsls r1, 24
asrs r1, 24
ldr r2, [r2, 0x2C]
bl _call_via_r2
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
mov r1, r10
str r0, [r1, 0x30]
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
b _080A07BA
_080A05A4:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
mov r4, sp
adds r4, 0x4F
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
movs r0, 0
ldrsb r0, [r4, r0]
ldr r1, [sp, 0xC]
lsls r1, 24
lsrs r1, 24
bl sub_8002984
mov r1, r9
adds r1, 0x4A
strb r0, [r1]
mov r3, r9
ldr r2, [r3]
ldr r0, [r3, 0x4]
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
ldr r2, [r2, 0x2C]
bl _call_via_r2
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
mov r5, r10
str r0, [r5, 0x30]
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
_080A05EA:
strh r0, [r5, 0x2A]
bl _0809F0C4
_080A05F0:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
mov r1, r9
adds r1, 0x4A
strb r0, [r1]
mov r0, r9
ldr r2, [r0]
ldr r0, [r0, 0x4]
_080A0600:
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
ldr r2, [r2, 0x2C]
bl _call_via_r2
b _080A07B4
_080A060E:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r0, 16
cmp r0, 0
blt _080A0650
add r4, sp, 0x50
adds r1, r4, 0
bl sub_80A9050
movs r0, 0
ldrsb r0, [r4, r0]
add r1, sp, 0x8
ldrh r1, [r1, 0x2]
lsls r1, 24
lsrs r1, 24
bl sub_8002984
mov r1, r9
adds r1, 0x4A
strb r0, [r1]
mov r3, r9
ldr r2, [r3]
ldr r0, [r3, 0x4]
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
ldr r2, [r2, 0x2C]
bl _call_via_r2
_080A0650:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
_080A0654:
mov r4, r10
_080A0656:
strh r0, [r4, 0x2A]
bl _0809F0C4
_080A065C:
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
mov r4, sp
adds r4, 0x51
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
movs r0, 0
ldrsb r0, [r4, r0]
add r1, sp, 0x8
ldrh r1, [r1, 0x2]
lsls r1, 24
lsrs r1, 24
bl sub_8002984
mov r1, r9
adds r1, 0x4A
strb r0, [r1]
ldr r2, [r5]
ldr r0, [r5, 0x4]
b _080A0600
_080A068A:
movs r5, 0
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0x8F
beq _080A06CA
cmp r0, 0x8F
bgt _080A069E
cmp r0, 0x8E
beq _080A06A4
b _080A0724
_080A069E:
cmp r0, 0x90
beq _080A06F8
b _080A0724
_080A06A4:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r4, r0, 16
cmp r4, 0
blt _080A0724
movs r5, 0x1
add r1, sp, 0x124
adds r0, r4, 0
bl sub_80A8FD8
add r1, sp, 0x12C
adds r0, r4, 0
bl sub_80A8F9C
b _080A0724
_080A06CA:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r0, 16
cmp r0, 0
blt _080A0724
movs r5, 0x1
add r1, sp, 0x124
bl sub_80A8FD8
ldr r0, _080A06F4
ldr r1, [r0, 0x4]
ldr r0, [r0]
add r2, sp, 0x12C
str r0, [r2]
str r1, [r2, 0x4]
b _080A0724
.align 2, 0
_080A06F4: .4byte gUnknown_81164DC
_080A06F8:
movs r5, 0x1
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
add r4, sp, 0x124
ldr r2, [r1, 0xC]
adds r1, r4, 0
bl _call_via_r2
mov r3, r9
ldr r2, [r3]
ldr r0, [r3, 0x4]
add r1, sp, 0x12C
ldr r2, [r2, 0x8]
bl _call_via_r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
adds r1, r4, 0
bl sub_80AD8B4
_080A0724:
cmp r5, 0
beq _080A07B4
mov r4, r9
ldr r1, [r4]
ldr r0, [r4, 0x4]
add r5, sp, 0x134
ldr r2, [r1, 0xC]
adds r1, r5, 0
bl _call_via_r2
ldr r1, [r4]
ldr r0, [r4, 0x4]
add r4, sp, 0x13C
ldr r2, [r1, 0x8]
adds r1, r4, 0
bl _call_via_r2
add r7, sp, 0x124
add r3, sp, 0x12C
adds r0, r5, 0
adds r1, r4, 0
adds r2, r7, 0
bl sub_8002DF0
mov r1, sp
adds r1, 0x52
strb r0, [r1]
movs r0, 0x1
negs r0, r0
movs r4, 0
ldrsb r4, [r1, r4]
adds r6, r1, 0
cmp r4, r0
bne _080A078C
ldr r3, _080A07C0
adds r0, r5, 0
adds r1, r3, 0
adds r2, r7, 0
bl sub_8002D54
strb r0, [r6]
movs r0, 0
ldrsb r0, [r6, r0]
cmp r0, r4
bne _080A078C
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
ldr r2, [r1, 0x14]
adds r1, r6, 0
bl _call_via_r2
_080A078C:
movs r0, 0
ldrsb r0, [r6, r0]
add r1, sp, 0x8
ldrh r1, [r1, 0x2]
lsls r1, 24
lsrs r1, 24
bl sub_8002984
mov r1, r9
adds r1, 0x4A
strb r0, [r1]
mov r0, r9
ldr r2, [r0]
ldr r0, [r0, 0x4]
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
ldr r2, [r2, 0x2C]
bl _call_via_r2
_080A07B4:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
_080A07B8:
mov r1, r10
_080A07BA:
strh r0, [r1, 0x2A]
bl _0809F0C4
.align 2, 0
_080A07C0: .4byte gUnknown_81164DC
_080A07C4:
movs r0, 0
bl _080A12AC
_080A07CA:
ldr r0, [sp, 0xC]
mov r1, r9
adds r1, 0x71
movs r2, 0
strb r0, [r1]
mov r3, r10
strh r2, [r3, 0x2A]
bl _0809F0C4
_080A07DC:
mov r4, r9
ldr r1, [r4]
ldr r0, [r4, 0x4]
mov r4, sp
adds r4, 0x53
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
movs r0, 0
ldrsb r0, [r4, r0]
ldr r1, [sp, 0xC]
lsls r1, 24
lsrs r1, 24
bl sub_8002984
mov r1, r9
adds r1, 0x71
movs r2, 0
strb r0, [r1]
mov r5, r10
strh r2, [r5, 0x2A]
bl _0809F0C4
_080A080C:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x10]
bl sub_809D124
bl _0809EAE0
_080A081E:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r1, r0, 16
mov r3, r9
movs r4, 0x8
ldrsh r0, [r3, r4]
cmp r0, 0x2
beq _080A0856
cmp r0, 0x2
bgt _080A0844
cmp r0, 0x1
beq _080A084C
bl _0809EAE0
_080A0844:
cmp r0, 0x3
beq _080A0860
bl _0809EAE0
_080A084C:
movs r0, 0x1
bl sub_809D170
bl _0809EAE0
_080A0856:
movs r0, 0x2
bl sub_809D170
bl _0809EAE0
_080A0860:
movs r0, 0x3
bl sub_809D170
bl _0809EAE0
_080A086A:
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r0, 16
movs r2, 0x8
ldrsh r1, [r5, r2]
cmp r1, 0x2
beq _080A08A0
cmp r1, 0x2
bgt _080A088E
cmp r1, 0x1
beq _080A0896
bl _0809EAE0
_080A088E:
cmp r1, 0x3
beq _080A08AA
bl _0809EAE0
_080A0896:
add r4, sp, 0x144
adds r1, r4, 0
bl sub_80A8FD8
b _080A08B2
_080A08A0:
add r4, sp, 0x144
adds r1, r4, 0
bl sub_80AC448
b _080A08B2
_080A08AA:
add r4, sp, 0x144
adds r1, r4, 0
bl sub_80AD360
_080A08B2:
movs r0, 0
adds r1, r4, 0
bl sub_809D158
bl _0809EAE0
_080A08BE:
movs r0, 0x1
movs r1, 0
bl sub_809D170
bl _0809EAE0
_080A08CA:
mov r3, r9
ldr r1, [r3]
ldr r0, [r3, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
bge _080A08E2
bl _0809EAE0
_080A08E2:
mov r4, r9
movs r5, 0x8
ldrsh r0, [r4, r5]
cmp r0, 0x2
beq _080A090A
cmp r0, 0x2
bgt _080A08F8
cmp r0, 0x1
beq _080A0900
bl _0809EAE0
_080A08F8:
cmp r0, 0x3
beq _080A0914
bl _0809EAE0
_080A0900:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
movs r0, 0x1
b _080A0990
_080A090A:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
movs r0, 0x2
b _080A0990
_080A0914:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
movs r0, 0x3
b _080A0990
_080A091E:
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r0, 16
mov r2, r9
movs r3, 0x8
ldrsh r1, [r2, r3]
cmp r1, 0x2
beq _080A095C
cmp r1, 0x2
bgt _080A0944
cmp r1, 0x1
beq _080A094C
bl _0809EAE0
_080A0944:
cmp r1, 0x3
beq _080A096C
bl _0809EAE0
_080A094C:
add r4, sp, 0x14C
adds r1, r4, 0
bl sub_80A8FD8
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
b _080A097A
_080A095C:
add r4, sp, 0x14C
adds r1, r4, 0
bl sub_80AC448
add r0, sp, 0x8
movs r1, 0x2
ldrsh r2, [r0, r1]
b _080A097A
_080A096C:
add r4, sp, 0x14C
adds r1, r4, 0
bl sub_80AD360
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
_080A097A:
movs r0, 0
adds r1, r4, 0
bl sub_809D190
bl _0809F0C4
_080A0986:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
movs r0, 0x1
movs r1, 0
_080A0990:
bl sub_809D1A8
bl _0809F0C4
_080A0998:
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
bge _080A09B0
bl _0809EAE0
_080A09B0:
movs r2, 0x8
ldrsh r0, [r5, r2]
cmp r0, 0x2
beq _080A09D6
cmp r0, 0x2
bgt _080A09C4
cmp r0, 0x1
beq _080A09CC
bl _0809EAE0
_080A09C4:
cmp r0, 0x3
beq _080A09E0
bl _0809EAE0
_080A09CC:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
movs r0, 0x1
b _080A0A5C
_080A09D6:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
movs r0, 0x2
b _080A0A5C
_080A09E0:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
movs r0, 0x3
b _080A0A5C
_080A09EA:
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r0, 16
mov r2, r9
movs r3, 0x8
ldrsh r1, [r2, r3]
cmp r1, 0x2
beq _080A0A28
cmp r1, 0x2
bgt _080A0A10
cmp r1, 0x1
beq _080A0A18
bl _0809EAE0
_080A0A10:
cmp r1, 0x3
beq _080A0A38
bl _0809EAE0
_080A0A18:
add r4, sp, 0x154
adds r1, r4, 0
bl sub_80A8FD8
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
b _080A0A46
_080A0A28:
add r4, sp, 0x154
adds r1, r4, 0
bl sub_80AC448
add r0, sp, 0x8
movs r1, 0x2
ldrsh r2, [r0, r1]
b _080A0A46
_080A0A38:
add r4, sp, 0x154
adds r1, r4, 0
bl sub_80AD360
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
_080A0A46:
movs r0, 0
adds r1, r4, 0
bl sub_809D1CC
bl _0809F0C4
_080A0A52:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
movs r0, 0x1
movs r1, 0
_080A0A5C:
bl sub_809D1E4
bl _0809F0C4
_080A0A64:
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
bge _080A0A7C
bl _0809EAE0
_080A0A7C:
movs r2, 0x8
ldrsh r0, [r5, r2]
cmp r0, 0x2
beq _080A0AA2
cmp r0, 0x2
bgt _080A0A90
cmp r0, 0x1
beq _080A0A98
bl _0809EAE0
_080A0A90:
cmp r0, 0x3
beq _080A0AAC
bl _0809EAE0
_080A0A98:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
movs r0, 0x1
b _080A0B28
_080A0AA2:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
movs r0, 0x2
b _080A0B28
_080A0AAC:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
movs r0, 0x3
b _080A0B28
_080A0AB6:
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
ldr r1, [r1, 0x4]
bl _call_via_r1
lsls r0, 16
asrs r0, 16
mov r2, r9
movs r3, 0x8
ldrsh r1, [r2, r3]
cmp r1, 0x2
beq _080A0AF4
cmp r1, 0x2
bgt _080A0ADC
cmp r1, 0x1
beq _080A0AE4
bl _0809EAE0
_080A0ADC:
cmp r1, 0x3
beq _080A0B04
bl _0809EAE0
_080A0AE4:
add r4, sp, 0x15C
adds r1, r4, 0
bl sub_80A8FD8
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
b _080A0B12
_080A0AF4:
add r4, sp, 0x15C
adds r1, r4, 0
bl sub_80AC448
add r0, sp, 0x8
movs r1, 0x2
ldrsh r2, [r0, r1]
b _080A0B12
_080A0B04:
add r4, sp, 0x15C
adds r1, r4, 0
bl sub_80AD360
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
_080A0B12:
movs r0, 0
adds r1, r4, 0
bl sub_809D208
bl _0809F0C4
_080A0B1E:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
movs r0, 0x1
movs r1, 0
_080A0B28:
bl sub_809D220
bl _0809F0C4
_080A0B30:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r5, 0x2
ldrsh r1, [r1, r5]
bl sub_8001570
bl _0809EAE0
_080A0B42:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
bl sub_80015C0
bl _0809EAE0
_080A0B54:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r3, 0x2
ldrsh r1, [r1, r3]
ldr r2, [sp, 0xC]
add r3, sp, 0x8
ldrb r3, [r3, 0x1]
bl sub_800226C
bl _0809EAE0
_080A0B6C:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r4, 0x2
ldrsh r1, [r1, r4]
ldr r2, [sp, 0xC]
lsls r2, 16
asrs r2, 16
add r3, sp, 0x8
ldrb r3, [r3, 0x1]
bl sub_80022A0
bl _0809EAE0
_080A0B88:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r5, 0x2
ldrsh r1, [r1, r5]
ldr r2, [sp, 0xC]
lsls r2, 16
lsrs r2, 16
ldr r3, [sp, 0x10]
bl sub_800199C
bl _0809EAE0
_080A0BA2:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x10]
bl ScenarioCalc
bl _0809EAE0
_080A0BB4:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r0, [r0, r2]
add r1, sp, 0x164
add r2, sp, 0x168
bl sub_8001B88
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
add r1, sp, 0x164
ldr r1, [r1]
add r2, sp, 0x168
ldr r2, [r2]
adds r2, 0x1
bl ScenarioCalc
bl _0809EAE0
_080A0BDA:
ldr r2, [sp, 0xC]
movs r0, 0
movs r1, 0x13
bl sub_80018D8
add r0, sp, 0x8
movs r4, 0x2
ldrsh r2, [r0, r4]
movs r0, 0
movs r1, 0x16
bl sub_80018D8
bl _0809EAE0
_080A0BF6:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r2, [r0, r5]
movs r0, 0
movs r1, 0x1C
bl sub_80018D8
bl _0809EAE0
_080A0C08:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
add r1, sp, 0x8
ldrb r2, [r1, 0x1]
negs r1, r2
orrs r1, r2
lsrs r1, 31
bl sub_80026E8
bl _0809EAE0
_080A0C20:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r0, [r0, r2]
add r1, sp, 0x8
ldrb r2, [r1, 0x1]
negs r1, r2
orrs r1, r2
lsrs r1, 31
bl sub_809733C
bl _0809EAE0
_080A0C38:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
add r1, sp, 0x8
ldrb r2, [r1, 0x1]
negs r1, r2
orrs r1, r2
lsrs r1, 31
bl sub_80973A8
bl _0809EAE0
_080A0C50:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
add r1, sp, 0x8
ldrb r2, [r1, 0x1]
negs r1, r2
orrs r1, r2
lsrs r1, 31
bl sub_8097418
bl _0809EAE0
_080A0C68:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
add r1, sp, 0x8
ldrb r2, [r1, 0x1]
negs r1, r2
orrs r1, r2
lsrs r1, 31
bl sub_80975A8
bl _0809EAE0
_080A0C80:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 24
lsrs r0, 24
bl sub_80976F8
bl _0809EAE0
_080A0C90:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
ldr r2, [sp, 0xC]
movs r0, 0
movs r3, 0x2
bl sub_80022F8
b _080A0E1E
_080A0CA2:
mov r0, r10
adds r0, 0x50
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
ldr r2, [sp, 0x10]
add r3, sp, 0x8
ldrb r3, [r3, 0x1]
bl sub_80022F8
lsls r0, 24
cmp r0, 0
bne _080A0CC0
bl _0809EAE0
_080A0CC0:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r1, [r0, r4]
b _080A0D5C
_080A0CC8:
mov r0, r10
adds r0, 0x50
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
ldr r2, [sp, 0x10]
lsls r2, 16
asrs r2, 16
add r3, sp, 0x8
ldrb r3, [r3, 0x1]
bl sub_8002318
lsls r0, 24
cmp r0, 0
bne _080A0CEA
bl _0809EAE0
_080A0CEA:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
b _080A0E2C
_080A0CF2:
mov r0, r10
adds r0, 0x50
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
ldr r2, [sp, 0x10]
lsls r2, 16
lsrs r2, 16
bl sub_8001784
cmp r0, 0
bne _080A0D0E
bl _0809EAE0
_080A0D0E:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r1, [r0, r4]
b _080A0D5C
_080A0D16:
mov r0, r10
adds r0, 0x50
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
bl sub_8001AB0
ldr r1, [sp, 0x10]
add r2, sp, 0x8
ldrb r2, [r2, 0x1]
bl FlagJudge
lsls r0, 24
cmp r0, 0
bne _080A0D38
bl _0809EAE0
_080A0D38:
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
b _080A0E2C
_080A0D40:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r0, [r0, r4]
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x10]
bl sub_8001CC4
lsls r0, 24
cmp r0, 0
bne _080A0D58
bl _0809EAE0
_080A0D58:
add r0, sp, 0x8
ldrb r1, [r0, 0x1]
_080A0D5C:
mov r0, r9
bl sub_80A242C
mov r5, r10
str r0, [r5, 0x4]
bl _0809EAE0
_080A0D6A:
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x10]
bl sub_8001D08
b _080A0DBA
_080A0D7A:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
ldr r1, [sp, 0xC]
ldr r2, [sp, 0x10]
bl sub_8001D44
lsls r0, 24
cmp r0, 0
bne _080A0D92
bl _0809EAE0
_080A0D92:
b _080A0DF6
_080A0D94:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _080A0DA8
bl _0809EAE0
_080A0DA8:
add r0, sp, 0x8
ldrb r1, [r0, 0x1]
b _080A132A
_080A0DAE:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 24
lsrs r0, 24
bl sub_8098100
_080A0DBA:
lsls r0, 24
cmp r0, 0
bne _080A0DC4
bl _0809EAE0
_080A0DC4:
add r0, sp, 0x8
ldrb r1, [r0, 0x1]
mov r0, r9
bl sub_80A242C
mov r2, r10
str r0, [r2, 0x4]
bl _0809EAE0
_080A0DD6:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80026CC
b _080A0E1E
_080A0DE2:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 24
lsrs r0, 24
bl sub_809CBA4
cmp r0, 0
bgt _080A0DF6
bl _0809EAE0
_080A0DF6:
add r0, sp, 0x8
ldrb r1, [r0, 0x1]
mov r0, r9
bl sub_80A242C
mov r4, r10
str r0, [r4, 0x4]
bl _0809EAE0
_080A0E08:
mov r5, r9
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x1
beq _080A0E16
bl _0809EAE0
_080A0E16:
movs r2, 0xA
ldrsh r0, [r5, r2]
bl sub_80A8C98
_080A0E1E:
lsls r0, 24
cmp r0, 0
bne _080A0E28
bl _0809EAE0
_080A0E28:
add r0, sp, 0x8
ldrb r1, [r0, 0x1]
_080A0E2C:
mov r0, r9
bl sub_80A242C
mov r3, r10
str r0, [r3, 0x4]
bl _0809EAE0
_080A0E3A:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 24
lsrs r0, 24
bl FindItemInInventory
cmp r0, 0
bge _080A0E4E
bl _0809EAE0
_080A0E4E:
bl ShiftItemsDownFrom
bl _0809EAE0
_080A0E56:
add r0, sp, 0x8
ldrb r2, [r0]
adds r0, r2, 0
subs r0, 0xC0
cmp r0, 0xB
bls _080A0E64
b _080A1088
_080A0E64:
lsls r0, 2
ldr r1, _080A0E70
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A0E70: .4byte _080A0E74
.align 2, 0
_080A0E74:
.4byte _080A0EA4
.4byte _080A0EB6
.4byte _080A0ECC
.4byte _080A0EFA
.4byte _080A0F08
.4byte _080A0F14
.4byte _080A0F26
.4byte _080A0F36
.4byte _080A0F98
.4byte _080A1008
.4byte _080A0F4C
.4byte _080A107A
_080A0EA4:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r4, 0x2
ldrsh r1, [r1, r4]
bl sub_8001658
adds r1, r0, 0
b _080A1098
_080A0EB6:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r5, 0x2
ldrsh r1, [r1, r5]
bl sub_8001658
ldr r1, [sp, 0xC]
add r2, sp, 0x8
ldrb r2, [r2, 0x1]
b _080A0EF2
_080A0ECC:
mov r4, r10
adds r4, 0x50
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r0, r4, 0
bl sub_8001658
adds r5, r0, 0
ldr r1, [sp, 0xC]
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_8001658
adds r1, r0, 0
add r0, sp, 0x8
ldrb r2, [r0, 0x1]
adds r0, r5, 0
_080A0EF2:
bl FlagCalc
adds r1, r0, 0
b _080A1098
_080A0EFA:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
bl OtherRandomCapped
adds r1, r0, 0
b _080A1098
_080A0F08:
add r0, sp, 0x8
movs r4, 0x2
ldrsh r1, [r0, r4]
movs r0, 0
movs r2, 0
b _080A0F1E
_080A0F14:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r1, [r0, r5]
movs r0, 0
movs r2, 0x1
_080A0F1E:
bl sub_8001784
adds r1, r0, 0
b _080A1098
_080A0F26:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A8C2C
lsls r0, 16
asrs r1, r0, 16
b _080A1098
_080A0F36:
mov r0, r9
ldr r1, [r0]
ldr r0, [r0, 0x4]
add r4, sp, 0x54
ldr r2, [r1, 0x14]
adds r1, r4, 0
bl _call_via_r2
movs r1, 0
ldrsb r1, [r4, r1]
b _080A1098
_080A0F4C:
mov r2, r9
ldr r1, [r2]
ldr r0, [r2, 0x4]
movs r3, 0xB6
lsls r3, 1
add r3, sp
mov r8, r3
ldr r2, [r1, 0xC]
mov r1, r8
bl _call_via_r2
add r6, sp, 0x16C
ldr r0, [r6]
ldr r1, [r6, 0x4]
add r4, sp, 0x174
str r0, [r4]
str r1, [r4, 0x4]
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
adds r5, r4, 0
adds r1, r5, 0
bl sub_80AD8B4
ldr r1, [r4]
ldr r0, [r6]
subs r1, r0
add r0, sp, 0x17C
str r1, [r0]
ldr r1, [r5, 0x4]
mov r4, r8
ldr r0, [r4, 0x4]
subs r1, r0
add r0, sp, 0x17C
str r1, [r0, 0x4]
bl sub_8002C60
b _080A106A
_080A0F98:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r6, r0, 16
cmp r6, 0
blt _080A1074
mov r5, r9
ldr r1, [r5]
ldr r0, [r5, 0x4]
movs r2, 0xC2
lsls r2, 1
add r2, sp
mov r8, r2
ldr r2, [r1, 0xC]
mov r1, r8
bl _call_via_r2
ldr r1, [r5]
ldr r0, [r5, 0x4]
add r5, sp, 0x18C
ldr r2, [r1, 0x8]
adds r1, r5, 0
bl _call_via_r2
add r7, sp, 0x194
adds r0, r6, 0
adds r1, r7, 0
bl sub_80A8FD8
add r4, sp, 0x19C
adds r0, r6, 0
adds r1, r4, 0
bl sub_80A8F9C
mov r0, r8
adds r1, r5, 0
adds r2, r7, 0
adds r3, r4, 0
bl sub_8002DF0
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A1098
ldr r3, _080A1004
mov r0, r8
adds r1, r3, 0
adds r2, r7, 0
b _080A1066
.align 2, 0
_080A1004: .4byte gUnknown_81164DC
_080A1008:
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r7, r0, 16
cmp r7, 0
blt _080A1074
mov r3, r9
ldr r1, [r3]
ldr r0, [r3, 0x4]
add r6, sp, 0x1A4
ldr r2, [r1, 0xC]
adds r1, r6, 0
bl _call_via_r2
mov r4, r9
ldr r1, [r4]
ldr r0, [r4, 0x4]
add r4, sp, 0x1AC
ldr r2, [r1, 0x8]
adds r1, r4, 0
bl _call_via_r2
add r5, sp, 0x1B4
adds r0, r7, 0
adds r1, r5, 0
bl sub_80A8FD8
ldr r7, _080A1070
adds r0, r6, 0
adds r1, r4, 0
adds r2, r5, 0
adds r3, r7, 0
bl sub_8002DF0
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A1098
adds r0, r6, 0
adds r1, r7, 0
adds r2, r5, 0
adds r3, r7, 0
_080A1066:
bl sub_8002D54
_080A106A:
lsls r0, 24
asrs r1, r0, 24
b _080A1098
.align 2, 0
_080A1070: .4byte gUnknown_81164DC
_080A1074:
movs r1, 0x1
negs r1, r1
b _080A1098
_080A107A:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r0, [r0, r5]
bl sub_809CC90
adds r1, r0, 0
b _080A1098
_080A1088:
ldr r0, _080A1090
ldr r1, _080A1094
bl FatalError
.align 2, 0
_080A1090: .4byte gUnknown_81166B4
_080A1094: .4byte gUnknown_81166C0
_080A1098:
mov r0, r9
bl sub_80A2460
b _080A1330
_080A10A0:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
bl sub_8001658
adds r2, r0, 0
mov r3, r10
strh r2, [r3, 0x28]
ldr r1, [r3, 0x4]
ldrb r0, [r1]
cmp r0, 0xD0
bne _080A10DE
lsls r0, r2, 16
asrs r3, r0, 16
_080A10C0:
adds r2, r1, 0
movs r4, 0x2
ldrsh r0, [r1, r4]
cmp r0, r3
bne _080A10CE
bl _0809F0C4
_080A10CE:
adds r0, r1, 0
adds r0, 0x10
mov r5, r10
str r0, [r5, 0x4]
adds r1, r0, 0
ldrb r0, [r2, 0x10]
cmp r0, 0xD0
beq _080A10C0
_080A10DE:
mov r1, r10
ldr r0, [r1, 0x4]
ldrb r0, [r0]
cmp r0, 0xD1
beq _080A10EC
bl _0809EAE0
_080A10EC:
ldr r0, _080A10F4
strh r0, [r1, 0x28]
bl _0809F0C4
.align 2, 0
_080A10F4: .4byte 0x0000ffff
_080A10F8:
ldr r7, [sp, 0x14]
ldr r1, _080A11F0
movs r0, 0
str r0, [r1]
mov r2, r10
strh r0, [r2, 0x28]
add r0, sp, 0x8
ldrb r0, [r0]
cmp r0, 0xD8
bgt _080A1176
cmp r0, 0xD6
blt _080A1176
mov r0, r10
adds r0, 0x50
ldr r1, [sp, 0x10]
lsls r1, 16
asrs r1, 16
bl sub_8001658
adds r3, r0, 0
mov r4, r10
ldr r1, [r4, 0x4]
ldrb r0, [r1]
cmp r0, 0xD0
bne _080A114E
_080A112A:
adds r2, r1, 0
movs r5, 0x2
ldrsh r0, [r2, r5]
cmp r0, r3
bne _080A1136
ldr r7, [r2, 0xC]
_080A1136:
adds r0, r1, 0
adds r0, 0x10
mov r1, r10
str r0, [r1, 0x4]
ldrh r1, [r1, 0x28]
adds r1, 0x1
mov r4, r10
strh r1, [r4, 0x28]
adds r1, r0, 0
ldrb r0, [r2, 0x10]
cmp r0, 0xD0
beq _080A112A
_080A114E:
mov r5, r10
ldr r1, [r5, 0x4]
ldrb r0, [r1]
cmp r0, 0xD1
bne _080A1176
_080A1158:
cmp r7, 0
bne _080A115E
ldr r7, [r1, 0xC]
_080A115E:
mov r0, r10
ldr r2, [r0, 0x4]
adds r1, r2, 0
adds r1, 0x10
str r1, [r0, 0x4]
ldrh r0, [r0, 0x28]
adds r0, 0x1
mov r3, r10
strh r0, [r3, 0x28]
ldrb r0, [r2, 0x10]
cmp r0, 0xD1
beq _080A1158
_080A1176:
cmp r7, 0
bne _080A117C
ldr r7, _080A11F4
_080A117C:
mov r4, r10
ldr r5, [r4, 0x4]
ldrb r0, [r5]
cmp r0, 0xD9
bne _080A11B8
ldr r0, _080A11F8
mov r8, r0
ldr r6, _080A11F0
movs r1, 0x4
add r1, r8
mov r12, r1
_080A1192:
ldr r1, [r6]
lsls r2, r1, 3
mov r4, r8
adds r3, r2, r4
adds r4, r5, 0
ldr r0, [r4, 0xC]
str r0, [r3]
add r2, r12
adds r1, 0x1
str r1, [r2]
str r1, [r6]
adds r0, r4, 0
adds r0, 0x10
mov r5, r10
str r0, [r5, 0x4]
adds r5, r0, 0
ldrb r0, [r4, 0x10]
cmp r0, 0xD9
beq _080A1192
_080A11B8:
ldr r0, _080A11F0
ldr r1, [r0]
cmp r1, 0
bgt _080A11C4
bl _0809EAE0
_080A11C4:
ldr r3, _080A11F8
lsls r2, r1, 3
adds r1, r2, r3
movs r0, 0
str r0, [r1]
adds r0, r3, 0x4
adds r2, r0
add r0, sp, 0x8
movs r1, 0x2
ldrsh r0, [r0, r1]
str r0, [r2]
add r0, sp, 0x8
ldrb r0, [r0]
subs r0, 0xD2
cmp r0, 0x6
bhi _080A1280
lsls r0, 2
ldr r1, _080A11FC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A11F0: .4byte gUnknown_203B4AC
_080A11F4: .4byte gUnknown_81166D8
_080A11F8: .4byte gUnknown_2039D50
_080A11FC: .4byte _080A1200
.align 2, 0
_080A1200:
.4byte _080A121C
.4byte _080A121C
.4byte _080A123E
.4byte _080A1260
.4byte _080A121C
.4byte _080A123E
.4byte _080A1260
_080A121C:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
negs r1, r0
orrs r1, r0
lsrs r1, 31
movs r2, 0x1
negs r2, r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
str r0, [sp]
str r7, [sp, 0x4]
adds r0, r3, 0
movs r3, 0
bl sub_809B028
b _080A1280
_080A123E:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
negs r1, r0
orrs r1, r0
lsrs r1, 31
movs r2, 0x1
negs r2, r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
str r0, [sp]
str r7, [sp, 0x4]
adds r0, r3, 0
movs r3, 0x1
bl sub_809B028
b _080A1280
_080A1260:
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
negs r1, r0
orrs r1, r0
lsrs r1, 31
movs r2, 0x1
negs r2, r2
ldr r0, [sp, 0xC]
lsls r0, 16
asrs r0, 16
str r0, [sp]
str r7, [sp, 0x4]
adds r0, r3, 0
movs r3, 0x2
bl sub_809B028
_080A1280:
mov r0, r9
movs r1, 0x1
bl sub_809D8EC
lsls r0, 24
cmp r0, 0
bne _080A1292
bl _0809EAE0
_080A1292:
movs r0, 0
movs r1, 0xB
bl sub_80A87AC
bl _0809F0C4
_080A129E:
mov r0, r9
movs r1, 0x1
bl sub_809D8EC
b _080A130A
_080A12A8:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
_080A12AC:
mov r2, r10
_080A12AE:
strh r0, [r2, 0x2A]
bl _0809F0C4
_080A12B4:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r1, [r0, r3]
ldr r0, [sp, 0xC]
subs r0, r1
bl OtherRandomCapped
add r1, sp, 0x8
ldrh r1, [r1, 0x2]
adds r1, r0
mov r4, r10
strh r1, [r4, 0x2A]
bl _0809F0C4
_080A12D0:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
mov r5, r10
strh r0, [r5, 0x28]
add r0, sp, 0x8
movs r2, 0x2
ldrsh r1, [r0, r2]
mov r0, r9
bl sub_809D8EC
b _080A130A
_080A12E6:
add r0, sp, 0x8
movs r3, 0x2
ldrsh r0, [r0, r3]
bl sub_809D9B8
bl _0809EAE0
_080A12F4:
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
mov r4, r10
strh r0, [r4, 0x28]
add r0, sp, 0x8
movs r5, 0x2
ldrsh r1, [r0, r5]
ldrb r2, [r0, 0x1]
mov r0, r9
bl sub_809DA08
_080A130A:
lsls r0, 24
_080A130C:
cmp r0, 0
bne _080A1314
bl _0809EAE0
_080A1314:
bl _0809F0C4
_080A1318:
mov r1, r10
adds r1, 0x10
mov r0, r10
adds r0, 0x4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
_080A1324:
add r0, sp, 0x8
movs r5, 0x2
ldrsh r1, [r0, r5]
_080A132A:
mov r0, r9
bl sub_80A242C
_080A1330:
mov r1, r10
str r0, [r1, 0x4]
bl _0809EAE0
_080A1338:
mov r1, r10
adds r1, 0x10
mov r0, r10
adds r0, 0x4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
_080A1344:
ldr r2, _080A1364
add r0, sp, 0x8
movs r5, 0x2
ldrsh r1, [r0, r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, 0x8
adds r0, r2
ldr r0, [r0]
mov r1, r10
str r0, [r1, 0x4]
str r0, [r1, 0x8]
bl _0809EAE0
.align 2, 0
_080A1364: .4byte gFunctionScriptTable
_080A1368:
mov r1, r10
adds r1, 0x10
mov r0, r10
adds r0, 0x4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
_080A1374:
ldr r0, _080A138C
movs r5, 0
ldrsh r1, [r0, r5]
add r0, sp, 0x8
ldrh r0, [r0, 0x2]
lsls r0, 16
cmp r0, 0
blt _080A1390
add r0, sp, 0x8
movs r3, 0x2
ldrsh r2, [r0, r3]
b _080A1396
.align 2, 0
_080A138C: .4byte gUnknown_2039A34
_080A1390:
mov r4, r10
movs r5, 0xC
ldrsh r2, [r4, r5]
_080A1396:
adds r5, r2, 0
add r0, sp, 0x8
ldrb r0, [r0, 0x1]
lsls r0, 24
cmp r0, 0
blt _080A13AA
add r0, sp, 0x8
movs r4, 0x1
ldrsb r4, [r0, r4]
b _080A13B0
_080A13AA:
mov r0, r10
movs r4, 0xE
ldrsb r4, [r0, r4]
_080A13B0:
add r0, sp, 0x1C
adds r2, r5, 0
adds r3, r4, 0
bl GroundMap_GetStationScript
ldr r0, [sp, 0x1C]
mov r1, r10
str r0, [r1, 0x4]
str r0, [r1, 0x8]
strh r5, [r1, 0xC]
strb r4, [r1, 0xE]
bl _0809EAE0
_080A13CA:
mov r0, r10
adds r0, 0x50
add r1, sp, 0x8
movs r2, 0x2
ldrsh r1, [r1, r2]
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_80A4D7C
ldr r4, _080A13F4
strh r0, [r4]
bl sub_809D940
movs r3, 0
ldrsh r0, [r4, r3]
bl GroundMap_ExecuteEnter
bl _0809EAE0
.align 2, 0
_080A13F4: .4byte gUnknown_2039A34
_080A13F8:
movs r0, 0
mov r4, r10
str r0, [r4, 0x10]
str r0, [r4, 0x14]
bl _0809EAE0
_080A1404:
mov r5, r10
ldr r0, [r5, 0x10]
cmp r0, 0
bne _080A1410
_080A140C:
movs r0, 0
b _080A142E
_080A1410:
mov r0, r10
adds r0, 0x4
mov r1, r10
adds r1, 0x10
ldm r1!, {r2-r4}
stm r0!, {r2-r4}
movs r0, 0
mov r5, r10
str r0, [r5, 0x10]
str r0, [r5, 0x14]
bl _0809EAE0
_080A1428:
movs r0, 0x1
b _080A142E
_080A142C:
movs r0, 0x4
_080A142E:
add sp, 0x1BC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end ExecuteScriptCommand
thumb_func_start sub_80A1440
sub_80A1440:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r3, r2, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0
adds r1, r4, 0
adds r2, r5, 0
bl sub_80A14E8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A1440
thumb_func_start GroundScript_ExecuteTrigger
GroundScript_ExecuteTrigger:
push {r4,r5,lr}
sub sp, 0xF4
lsls r0, 16
asrs r4, r0, 16
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
ldr r1, _080A14C8
adds r0, r1
movs r1, 0x2
ldrsh r0, [r0, r1]
cmp r0, 0xB
bne _080A14C4
add r5, sp, 0x10
ldr r1, _080A14CC
movs r0, 0
str r0, [sp]
adds r0, r5, 0
movs r2, 0
movs r3, 0
bl sub_809D600
movs r0, 0
add r1, sp, 0x4
adds r2, r4, 0
bl sub_809D710
ldr r3, _080A14D0
adds r0, r5, 0
movs r1, 0
add r2, sp, 0x4
bl GroundScript_ExecutePP
add r1, sp, 0x44
add r0, sp, 0x38
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, _080A14D4
str r0, [r5, 0x34]
str r0, [r5, 0x38]
ldr r1, _080A14D8
adds r0, r5, 0
bl HandleAction
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
adds r0, r5, 0
bl sub_809D648
cmp r4, 0
beq _080A14DC
_080A14C4:
movs r0, 0
b _080A14DE
.align 2, 0
_080A14C8: .4byte gFunctionScriptTable
_080A14CC: .4byte gUnknown_8116488
_080A14D0: .4byte gUnknown_81166F8
_080A14D4: .4byte gUnknown_81164E4
_080A14D8: .4byte gUnknown_8116704
_080A14DC:
movs r0, 0x1
_080A14DE:
add sp, 0xF4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end GroundScript_ExecuteTrigger
thumb_func_start sub_80A14E8
sub_80A14E8:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _080A1514
add sp, r4
adds r6, r0, 0
adds r5, r2, 0
adds r7, r3, 0
lsls r1, 24
lsrs r1, 24
subs r0, r1, 0x1
cmp r0, 0x49
bls _080A1508
bl _080A236A
_080A1508:
lsls r0, 2
ldr r1, _080A1518
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A1514: .4byte 0xfffffc80
_080A1518: .4byte _080A151C
.align 2, 0
_080A151C:
.4byte _080A1644
.4byte _080A164C
.4byte _080A1672
.4byte _080A167A
.4byte _080A1680
.4byte _080A1688
.4byte _080A1690
.4byte _080A1698
.4byte _080A169E
.4byte _080A16C6
.4byte _080A1730
.4byte _080A1756
.4byte _080A178C
.4byte _080A1792
.4byte _080A17C0
.4byte _080A17C6
.4byte _080A1800
.4byte _080A1814
.4byte _080A1824
.4byte _080A1840
.4byte _080A185E
.4byte _080A18C2
.4byte _080A18E2 @ Wigglytuff Club Opening
.4byte _080A18F2
.4byte _080A1904
.4byte _080A197C
.4byte _080A1988
.4byte _080A19DC
.4byte _080A19FC
.4byte _080A1A0E
.4byte _080A1A18
.4byte _080A1A70
.4byte _080A1AF8
.4byte _080A1B20
.4byte _080A1B36
.4byte _080A1B58
.4byte _080A1B64
.4byte _080A1BD8
.4byte _080A1BE4
.4byte _080A1C30
.4byte _080A1C84
.4byte _080A1DEC
.4byte _080A1E30
.4byte _080A1E3C
.4byte _080A1ED0
.4byte _080A1ED6
.4byte _080A1F28
.4byte _080A1F3C
.4byte _080A1F44
.4byte _080A1F50
.4byte _080A1F80
.4byte _080A1FDA
.4byte _080A202C
.4byte _080A2054
.4byte _080A2060
.4byte _080A204A
.4byte _080A206C
.4byte _080A2076
.4byte _080A207C
.4byte _080A2082
.4byte _080A20D4
.4byte _080A20F4
.4byte _080A21E4
.4byte _080A228C
.4byte _080A229E
.4byte _080A2298
.4byte _080A22AE
.4byte _080A22CC
.4byte _080A22E4
.4byte _080A2304
.4byte _080A2320
.4byte _080A232E
.4byte _080A233A
.4byte _080A2346
_080A1644:
bl sub_8098C58
bl _080A236A
_080A164C:
bl sub_8011C34
movs r1, 0x1
negs r1, r1
cmp r0, r1
bne _080A1660
bl Random
bl sub_8011C40
_080A1660:
movs r0, 0x1
bl sub_8011C28
bl sub_8001064
bl sub_809965C
bl _080A236A
_080A1672:
bl sub_8098CC8
bl _080A236A
_080A167A:
bl sub_80961D8
b _080A1804
_080A1680:
bl sub_8096028
bl _080A236A
_080A1688:
bl sub_80963FC
bl _080A236A
_080A1690:
bl sub_8096488
bl _080A236A
_080A1698:
bl sub_80964B4
b _080A1804
_080A169E:
movs r0, 0x8
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _080A16B0
bl sub_808D4B0
b _080A16B4
_080A16B0:
bl sub_808D500
_080A16B4:
lsls r0, 24
lsrs r4, r0, 24
bl nullsub_104
negs r0, r4
orrs r0, r4
lsrs r0, 31
bl _080A236C
_080A16C6:
movs r1, 0xC
ldrsh r0, [r6, r1]
cmp r0, 0x1
beq _080A16D2
bl _080A236A
_080A16D2:
movs r2, 0xE
ldrsh r0, [r6, r2]
add r1, sp, 0x314
bl sub_80A8C4C
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
bne _080A16E8
bl _080A236A
_080A16E8:
add r0, sp, 0x314
ldrb r0, [r0]
cmp r0, 0x44
bne _080A16FC
movs r0, 0x82
lsls r0, 1
cmp r1, r0
bne _080A16FC
bl _080A203C
_080A16FC:
movs r3, 0xE
ldrsh r0, [r6, r3]
bl sub_80A90C8
lsls r0, 16
ldr r1, _080A172C
asrs r0, 14
adds r0, r1
ldr r1, [r0]
add r0, sp, 0x4
bl strcpy
movs r0, 0
movs r1, 0x1
add r2, sp, 0x4
bl sub_809AE90
_080A171E:
lsls r0, 24
_080A1720:
cmp r0, 0
beq _080A1726
b _080A1EBE
_080A1726:
bl _080A236A
.align 2, 0
_080A172C: .4byte gFriendAreaDialogue
_080A1730:
movs r0, 0
movs r1, 0x14
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_80A2740
lsls r0, 24
lsrs r0, 24
bl CountJobsinDungeon
movs r1, 0
cmp r0, 0
ble _080A1750
movs r1, 0x1
_080A1750:
adds r0, r1, 0
bl _080A236C
_080A1756:
add r4, sp, 0x104
adds r0, r4, 0
bl sub_8099394
lsls r0, 24
cmp r0, 0
bne _080A1768
bl _080A236A
_080A1768:
ldr r0, _080A1788
ldr r1, [r0]
ldrb r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 4
adds r1, r0
adds r1, 0x2C
movs r0, 0
ldrsb r0, [r1, r0]
_080A177C:
cmp r0, 0
ble _080A1782
b _080A1EBE
_080A1782:
bl _080A236A
.align 2, 0
_080A1788: .4byte gUnknown_203B480
_080A178C:
bl sub_8097640
b _080A1804
_080A1792:
movs r5, 0x11
_080A1794:
lsls r4, r5, 16
asrs r0, r4, 16
bl sub_809758C
lsls r0, 24
cmp r0, 0
beq _080A17B6
lsrs r4, 16
movs r0, 0
movs r1, 0x2F
adds r2, r4, 0
bl sub_8001784
cmp r0, 0
bne _080A17B6
bl _080A234E
_080A17B6:
adds r5, 0x1
cmp r5, 0x16
ble _080A1794
bl _080A236A
_080A17C0:
bl sub_80964E4
b _080A1804
_080A17C6:
movs r4, 0x8
ldrsh r0, [r6, r4]
cmp r0, 0x1
beq _080A17D2
bl _080A236A
_080A17D2:
movs r5, 0xA
ldrsh r0, [r6, r5]
cmp r0, 0
beq _080A17DE
bl _080A236A
_080A17DE:
movs r1, 0xC
ldrsh r0, [r6, r1]
cmp r0, 0x1
beq _080A17EA
bl _080A236A
_080A17EA:
movs r2, 0xA
ldrsh r4, [r6, r2]
movs r3, 0xE
ldrsh r0, [r6, r3]
bl sub_80A8E9C
adds r1, r0, 0
adds r0, r4, 0
bl sub_80A87E0
b _080A171E
_080A1800:
bl sub_80A8D20
_080A1804:
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
negs r0, r1
orrs r0, r1
lsrs r0, 31
bl _080A236C
_080A1814:
ldr r0, _080A1820
ldrh r0, [r0]
movs r1, 0xC0
lsls r1, 2
ands r0, r1
b _080A1720
.align 2, 0
_080A1820: .4byte gRealInputs
_080A1824:
lsls r0, r5, 16
asrs r0, 16
bl sub_80A8D54
cmp r0, 0
bne _080A1834
bl _080A236A
_080A1834:
ldrh r0, [r0]
lsrs r0, 1
movs r1, 0x1
ands r0, r1
bl _080A236C
_080A1840:
movs r4, 0x8
ldrsh r0, [r6, r4]
cmp r0, 0x1
beq _080A184C
bl _080A236A
_080A184C:
movs r5, 0xA
ldrsh r0, [r6, r5]
bl sub_80A8BFC
lsls r0, 16
asrs r0, 16
bl GetIsMoving
b _080A171E
_080A185E:
lsls r0, r5, 16
asrs r0, 16
bl sub_80A7AE8
lsls r0, 16
asrs r5, r0, 16
cmp r5, 0
bge _080A1872
bl _080A236A
_080A1872:
lsls r4, r7, 8
ldr r1, [r6]
ldr r0, [r6, 0x4]
add r7, sp, 0x318
ldr r2, [r1, 0xC]
adds r1, r7, 0
bl _call_via_r2
add r6, sp, 0x320
adds r0, r5, 0
adds r1, r6, 0
bl sub_80A8FD8
add r0, sp, 0x318
ldr r3, [r0]
subs r1, r3, r4
add r0, sp, 0x320
ldr r2, [r0]
cmp r1, r2
ble _080A189E
bl _080A236A
_080A189E:
adds r0, r3, r4
cmp r0, r2
bge _080A18A8
bl _080A236A
_080A18A8:
ldr r2, [r7, 0x4]
subs r0, r2, r4
ldr r1, [r6, 0x4]
cmp r0, r1
ble _080A18B6
bl _080A236A
_080A18B6:
adds r0, r2, r4
cmp r0, r1
blt _080A18BE
b _080A1EBE
_080A18BE:
bl _080A236A
_080A18C2:
movs r0, 0x1
bl sub_80A8D54
cmp r0, 0
bne _080A18D0
bl _080A236A
_080A18D0:
adds r1, r0, 0
adds r1, 0x4C
movs r2, 0
adds r0, 0x55
_080A18D8:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _080A18D8
b _080A1EBE
_080A18E2: @ Wigglytuff Guild Opening
movs r0, 0xC @ Wild Plains
bl UnlockFriendArea
movs r0, 0x12 @ Mist-Rise Forest
bl UnlockFriendArea
bl _080A236A
_080A18F2:
ldr r0, _080A1900
movs r1, 0x3C
_080A18F6:
movs r2, 0xA
bl sub_80A8F50
bl _080A236A
.align 2, 0
_080A1900: .4byte gUnknown_2039D98
_080A1904:
movs r0, 0x51
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl UnlockFriendArea
add r1, sp, 0x4
ldr r0, _080A1970
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r4,r6}
stm r1!, {r2,r4,r6}
ldm r0!, {r3,r4,r6}
stm r1!, {r3,r4,r6}
ldr r0, [r0]
str r0, [r1]
add r4, sp, 0x2C
adds r0, r4, 0
add r1, sp, 0x4
bl sub_808D144
adds r0, r4, 0
bl sub_808D1DC
cmp r0, 0
bne _080A193C
b _080A1EBE
_080A193C:
movs r3, 0
ldr r1, _080A1974
mov r8, r1
lsls r6, r5, 2
ldr r2, _080A1978
adds r4, r0, 0
adds r4, 0x4C
mov r7, r8
_080A194C:
adds r0, r4, r3
adds r1, r3, r7
ldrb r1, [r1]
strb r1, [r0]
adds r3, 0x1
cmp r3, 0x9
ble _080A194C
_080A195A:
adds r0, r6, r5
lsls r0, 4
adds r0, r2
mov r1, r8
movs r2, 0xA
bl sub_80922B4
_080A1968:
bl sub_8097848
bl _080A236A
.align 2, 0
_080A1970: .4byte gUnknown_8116710
_080A1974: .4byte gUnknown_2039D98
_080A1978: .4byte gPlayerName
_080A197C:
ldr r0, _080A1984
movs r1, 0x53
b _080A18F6
.align 2, 0
_080A1984: .4byte gUnknown_2039D98
_080A1988:
ldr r0, _080A19D4
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl UnlockFriendArea
add r1, sp, 0x84
adds r2, r1, 0
ldr r0, _080A19D8
ldm r0!, {r3-r5}
stm r2!, {r3-r5}
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r0!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldr r0, [r0]
str r0, [r2]
add r4, sp, 0xAC
adds r0, r4, 0
bl sub_808D144
adds r0, r4, 0
bl sub_808D1DC
adds r4, r0, 0
cmp r4, 0
bne _080A19C2
b _080A1EBE
_080A19C2:
bl sub_8097848
ldrh r1, [r4]
movs r0, 0x2
orrs r0, r1
strh r0, [r4]
bl _080A236A
.align 2, 0
_080A19D4: .4byte 0x00000183
_080A19D8: .4byte gUnknown_8116738
_080A19DC:
ldr r0, _080A19F8
movs r1, 0
bl sub_808D434
adds r2, r0, 0
cmp r2, 0
bne _080A19EC
b _080A1EBE
_080A19EC:
ldrh r1, [r2]
movs r0, 0x2
orrs r0, r1
strh r0, [r2]
bl _080A236A
.align 2, 0
_080A19F8: .4byte 0x00000183
_080A19FC:
movs r0, 0x82
lsls r0, 1
_080A1A00:
bl sub_808D278
cmp r0, 0
bne _080A1A0A
b _080A1EBE
_080A1A0A:
bl _080A236A
_080A1A0E:
ldr r0, _080A1A14
movs r1, 0x7C
b _080A18F6
.align 2, 0
_080A1A14: .4byte gUnknown_2039D98
_080A1A18:
add r1, sp, 0x108
adds r2, r1, 0
ldr r0, _080A1A64
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldr r0, [r0]
str r0, [r2]
add r4, sp, 0x130
adds r0, r4, 0
bl sub_808D144
adds r0, r4, 0
bl sub_808D1DC
cmp r0, 0
bne _080A1A42
b _080A1EBE
_080A1A42:
movs r3, 0
ldr r4, _080A1A68
mov r8, r4
lsls r6, r5, 2
ldr r2, _080A1A6C
adds r4, r0, 0
adds r4, 0x4C
mov r7, r8
_080A1A52:
adds r0, r4, r3
adds r1, r3, r7
ldrb r1, [r1]
strb r1, [r0]
adds r3, 0x1
cmp r3, 0x9
ble _080A1A52
b _080A195A
.align 2, 0
_080A1A64: .4byte gUnknown_8116760
_080A1A68: .4byte gUnknown_2039D98
_080A1A6C: .4byte gPlayerName
_080A1A70:
movs r0, 0x9E
movs r1, 0x1
bl sub_80026E8
movs r0, 0x91
movs r1, 0
bl sub_808D434
cmp r0, 0
bne _080A1A9A
ldr r3, _080A1AEC
str r0, [sp]
movs r0, 0x91
movs r1, 0
movs r2, 0
bl sub_808D2E8
cmp r0, 0
beq _080A1A9A
bl sub_8097848
_080A1A9A:
movs r0, 0x92
movs r1, 0
bl sub_808D434
cmp r0, 0
bne _080A1ABC
ldr r3, _080A1AF0
str r0, [sp]
movs r0, 0x92
movs r1, 0
movs r2, 0
bl sub_808D2E8
cmp r0, 0
beq _080A1ABC
bl sub_8097848
_080A1ABC:
movs r0, 0x90
movs r1, 0
bl sub_808D434
cmp r0, 0
beq _080A1ACC
bl _080A236A
_080A1ACC:
ldr r3, _080A1AF4
str r0, [sp]
movs r0, 0x90
movs r1, 0
movs r2, 0
bl sub_808D2E8
cmp r0, 0
bne _080A1AE2
bl _080A236A
_080A1AE2:
bl sub_8097848
bl _080A236A
.align 2, 0
_080A1AEC: .4byte gUnknown_8116788
_080A1AF0: .4byte gUnknown_811678C
_080A1AF4: .4byte gUnknown_8116790
_080A1AF8:
movs r0, 0x90
bl HasRecruitedMon
lsls r0, 24
cmp r0, 0
bne _080A1B08
bl _080A236A
_080A1B08:
movs r0, 0x91
bl HasRecruitedMon
lsls r0, 24
cmp r0, 0
bne _080A1B18
bl _080A236A
_080A1B18:
movs r0, 0x92
bl HasRecruitedMon
b _080A171E
_080A1B20:
bl GetPlayerPokemonStruct
ldrh r0, [r0, 0x8]
subs r0, 0x90
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bls _080A1B32
b _080A1EBE
_080A1B32:
bl _080A236A
_080A1B36:
bl GetPlayerPokemonStruct
cmp r0, 0
beq _080A1B4A
movs r5, 0x8
ldrsh r1, [r0, r5]
ldr r0, _080A1B54
cmp r1, r0
bne _080A1B4A
b _080A203C
_080A1B4A:
ldr r0, _080A1B54
bl sub_8098134
b _080A171E
.align 2, 0
_080A1B54: .4byte 0x00000113
_080A1B58:
ldr r0, _080A1B60
movs r1, 0x79
b _080A18F6
.align 2, 0
_080A1B60: .4byte gUnknown_2039D98
_080A1B64:
ldr r4, _080A1BCC
adds r0, r4, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl GetFriendAreaStatus
lsls r0, 24
cmp r0, 0
bne _080A1B88
adds r0, r4, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl UnlockFriendArea
_080A1B88:
add r1, sp, 0x188
adds r2, r1, 0
ldr r0, _080A1BD0
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r0!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r0!, {r4-r6}
stm r2!, {r4-r6}
ldr r0, [r0]
str r0, [r2]
add r4, sp, 0x1B0
adds r0, r4, 0
bl sub_808D144
adds r0, r4, 0
bl sub_808D1DC
cmp r0, 0
bne _080A1BB2
b _080A1EBE
_080A1BB2:
movs r2, 0
adds r3, r0, 0
adds r3, 0x4C
ldr r4, _080A1BD4
_080A1BBA:
adds r0, r3, r2
adds r1, r2, r4
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x9
ble _080A1BBA
b _080A1968
.align 2, 0
_080A1BCC: .4byte 0x00000199
_080A1BD0: .4byte gUnknown_8116794
_080A1BD4: .4byte gUnknown_2039D98
_080A1BD8:
ldr r0, _080A1BE0
movs r1, 0x7A
b _080A18F6
.align 2, 0
_080A1BE0: .4byte gUnknown_2039D98
_080A1BE4:
add r1, sp, 0x208
adds r2, r1, 0
ldr r0, _080A1C28
ldm r0!, {r3-r5}
stm r2!, {r3-r5}
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r0!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldr r0, [r0]
str r0, [r2]
add r4, sp, 0x230
adds r0, r4, 0
bl sub_808D144
adds r0, r4, 0
bl sub_808D1DC
cmp r0, 0
bne _080A1C0E
b _080A1EBE
_080A1C0E:
movs r2, 0
adds r3, r0, 0
adds r3, 0x4C
ldr r4, _080A1C2C
_080A1C16:
adds r0, r3, r2
adds r1, r2, r4
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x9
ble _080A1C16
b _080A1968
.align 2, 0
_080A1C28: .4byte gUnknown_81167BC
_080A1C2C: .4byte gUnknown_2039D98
_080A1C30:
bl GetNumberOfFilledInventorySlots
cmp r0, 0x13
ble _080A1C70
ldr r0, _080A1C64
ldrb r4, [r0, 0x2]
adds r0, r4, 0
bl IsNotMoneyOrUsedTMItem
lsls r0, 24
cmp r0, 0
bne _080A1C4A
b _080A236A
_080A1C4A:
ldr r0, _080A1C68
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x50
adds r1, r0, r1
ldrh r2, [r1]
ldr r0, _080A1C6C
cmp r2, r0
bls _080A1C5E
b _080A236A
_080A1C5E:
adds r0, r2, 0x1
strh r0, [r1]
b _080A236A
.align 2, 0
_080A1C64: .4byte gUnknown_81167E4
_080A1C68: .4byte gTeamInventory_203B460
_080A1C6C: .4byte 0x000003e6
_080A1C70:
ldr r0, _080A1C80
ldrb r0, [r0, 0x2]
movs r1, 0
bl sub_809124C
bl FillInventoryGaps
b _080A236A
.align 2, 0
_080A1C80: .4byte gUnknown_81167E4
_080A1C84:
movs r0, 0xD1
lsls r0, 1
bl RandomCapped
adds r0, 0x1
lsls r0, 16
asrs r5, r0, 16
movs r0, 0x20
bl RandomCapped
adds r4, r0, 0
movs r7, 0xD2
lsls r7, 1
movs r6, 0
ldr r0, _080A1DE0
mov r8, r0
_080A1CA4:
adds r0, r5, 0x1
lsls r0, 16
asrs r5, r0, 16
cmp r5, r8
ble _080A1CB0
movs r5, 0x1
_080A1CB0:
subs r7, 0x1
cmp r7, 0
bge _080A1CCC
cmp r6, 0
bne _080A1CBC
b _080A2360
_080A1CBC:
cmp r4, r6
blt _080A1CCC
adds r0, r6, 0
bl RandomCapped
adds r4, r0, 0
movs r7, 0xD2
lsls r7, 1
_080A1CCC:
adds r0, r5, 0
subs r0, 0x90
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bls _080A1CA4
ldr r0, _080A1DE4
cmp r5, r0
beq _080A1CA4
adds r0, 0x1
cmp r5, r0
beq _080A1CA4
adds r0, 0xB
cmp r5, r0
beq _080A1CA4
subs r0, 0xD
cmp r5, r0
beq _080A1CA4
subs r0, 0x88
cmp r5, r0
beq _080A1CA4
adds r0, 0x67
cmp r5, r0
beq _080A1CA4
adds r0, 0x1
cmp r5, r0
beq _080A1CA4
adds r0, 0x1
cmp r5, r0
beq _080A1CA4
adds r0, 0x23
cmp r5, r0
beq _080A1CA4
adds r0, 0x3
cmp r5, r0
beq _080A1CA4
adds r0, 0x1
cmp r5, r0
beq _080A1CA4
cmp r5, r8
beq _080A1CA4
cmp r5, 0x96
beq _080A1CA4
subs r0, 0x5
cmp r5, r0
beq _080A1CA4
cmp r5, 0x97
beq _080A1CA4
subs r0, 0x5
cmp r5, r0
beq _080A1CA4
adds r0, 0x1
cmp r5, r0
beq _080A1CA4
subs r0, 0x8C
cmp r5, r0
beq _080A1CA4
subs r0, 0x1
cmp r5, r0
beq _080A1CA4
adds r0, 0x2
cmp r5, r0
beq _080A1CA4
adds r0, 0x5
cmp r5, r0
beq _080A1CA4
adds r0, 0x82
cmp r5, r0
beq _080A1CA4
adds r0, 0x1
cmp r5, r0
beq _080A1CA4
adds r0, 0x1
cmp r5, r0
beq _080A1CA4
subs r0, 0x83
cmp r5, r0
beq _080A1CA4
adds r0, r5, 0
bl IsExclusivePokemonUnlocked
lsls r0, 24
cmp r0, 0
beq _080A1CA4
adds r0, r5, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl GetFriendAreaStatus
lsls r0, 24
cmp r0, 0
beq _080A1D9E
adds r0, r5, 0
bl HasRecruitedMon
lsls r0, 24
cmp r0, 0
bne _080A1CA4
adds r0, r5, 0
bl sub_808D278
cmp r0, 0
beq _080A1CA4
_080A1D9E:
adds r6, 0x1
subs r4, 0x1
cmp r4, 0
blt _080A1DA8
b _080A1CA4
_080A1DA8:
movs r0, 0
movs r1, 0x1F
adds r2, r5, 0
bl sub_80018D8
ldr r4, _080A1DE8
adds r0, r5, 0
bl GetFriendArea
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0
bl sub_8092578
adds r0, r5, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl GetFriendAreaStatus
lsls r0, 24
cmp r0, 0
bne _080A1EBE
b _080A203C
.align 2, 0
_080A1DE0: .4byte 0x000001a3
_080A1DE4: .4byte 0x0000019b
_080A1DE8: .4byte gUnknown_202E628
_080A1DEC:
movs r0, 0
movs r1, 0x1F
bl sub_8001658
lsls r0, 16
asrs r5, r0, 16
ldr r4, _080A1E2C
adds r0, r5, 0
bl GetFriendArea
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0
bl sub_8092578
cmp r5, 0
bne _080A1E14
b _080A236A
_080A1E14:
adds r0, r5, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl GetFriendAreaStatus
lsls r0, 24
cmp r0, 0
bne _080A1EBE
b _080A203C
.align 2, 0
_080A1E2C: .4byte gUnknown_202E628
_080A1E30:
ldr r0, _080A1E38
movs r1, 0x20
b _080A18F6
.align 2, 0
_080A1E38: .4byte gUnknown_2039D98
_080A1E3C:
cmp r5, 0
bne _080A1E42
b _080A2360
_080A1E42:
movs r0, 0
movs r1, 0x1F
bl sub_8001658
lsls r0, 16
asrs r5, r0, 16
adds r6, r5, 0
ldr r4, _080A1EC4
adds r0, r5, 0
bl GetFriendArea
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0
bl sub_8092578
cmp r5, 0
bne _080A1E6C
b _080A236A
_080A1E6C:
adds r0, r5, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl GetFriendAreaStatus
lsls r0, 24
cmp r0, 0
bne _080A1E8E
adds r0, r5, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
bl UnlockFriendArea
_080A1E8E:
ldr r3, _080A1EC8
movs r0, 0
str r0, [sp]
adds r0, r6, 0
movs r1, 0
movs r2, 0
bl sub_808D2E8
cmp r0, 0
bne _080A1EA4
b _080A236A
_080A1EA4:
movs r2, 0
adds r3, r0, 0
adds r3, 0x4C
ldr r4, _080A1ECC
_080A1EAC:
adds r0, r3, r2
adds r1, r2, r4
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x9
ble _080A1EAC
bl sub_8097848
_080A1EBE:
movs r0, 0x1
b _080A236C
.align 2, 0
_080A1EC4: .4byte gUnknown_202E628
_080A1EC8: .4byte gUnknown_81167E8
_080A1ECC: .4byte gUnknown_2039D98
_080A1ED0:
bl GetPtsToNextRank
b _080A177C
_080A1ED6:
bl GetRescueTeamRank
lsls r0, 24
lsrs r4, r0, 24
bl GetPtsToNextRank
cmp r0, 0
bgt _080A1EE8
b _080A236A
_080A1EE8:
bl AddToTeamRankPts
bl GetRescueTeamRank
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r4, 0
bl GetTeamRankString
adds r1, r0, 0
ldr r4, _080A1F30
adds r0, r4, 0
bl strcpy
adds r0, r5, 0
bl GetTeamRankString
adds r1, r0, 0
adds r4, 0x50
adds r0, r4, 0
bl strcpy
movs r1, 0x1
negs r1, r1
ldr r2, _080A1F34
movs r0, 0
bl sub_809AE90
lsls r0, 24
cmp r0, 0
bne _080A1EBE
_080A1F28:
ldr r0, _080A1F38
bl AddToTeamMoney
b _080A236A
.align 2, 0
_080A1F30: .4byte gUnknown_202DE58
_080A1F34: .4byte gUnknown_81167EC
_080A1F38: .4byte 0x00002710
_080A1F3C:
ldr r0, _080A1F40
b _080A1A00
.align 2, 0
_080A1F40: .4byte 0x00000133
_080A1F44:
ldr r0, _080A1F4C
movs r1, 0x52
b _080A18F6
.align 2, 0
_080A1F4C: .4byte gUnknown_2039D98
_080A1F50:
add r1, sp, 0x288
adds r2, r1, 0
ldr r0, _080A1F7C
ldm r0!, {r3-r5}
stm r2!, {r3-r5}
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldm r0!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldr r0, [r0]
str r0, [r2]
add r4, sp, 0x2B0
adds r0, r4, 0
bl sub_808D144
adds r0, r4, 0
bl sub_808D1DC
cmp r0, 0
beq _080A1EBE
b _080A1968
.align 2, 0
_080A1F7C: .4byte gUnknown_811681C
_080A1F80:
movs r2, 0x1
negs r2, r2
movs r0, 0x3
movs r1, 0x12
bl sub_8001D44
lsls r0, 24
cmp r0, 0
bne _080A1F94
b _080A236A
_080A1F94:
movs r0, 0
movs r1, 0xF
bl sub_8001658
cmp r0, 0x4
bne _080A1FA2
b _080A236A
_080A1FA2:
movs r0, 0
movs r1, 0x42
movs r2, 0
bl sub_8001784
cmp r0, 0
ble _080A1FB2
b _080A236A
_080A1FB2:
movs r0, 0x80
lsls r0, 1
bl OtherRandomCapped
cmp r0, 0
bne _080A1FCC
movs r0, 0
movs r1, 0x42
movs r2, 0
movs r3, 0x4
bl sub_800199C
b _080A1EBE
_080A1FCC:
movs r0, 0
movs r1, 0x42
movs r2, 0
movs r3, 0x1
bl sub_800199C
b _080A236A
_080A1FDA:
ldr r6, _080A200C
ldr r7, _080A2010
movs r5, 0x2
_080A1FE0:
bl GetNumberOfFilledInventorySlots
cmp r0, 0x13
ble _080A2018
ldrb r4, [r6, 0x2]
adds r0, r4, 0
bl IsNotMoneyOrUsedTMItem
lsls r0, 24
cmp r0, 0
beq _080A2024
ldr r0, _080A2014
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x50
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, r7
bhi _080A2024
adds r0, 0x1
strh r0, [r1]
b _080A2024
.align 2, 0
_080A200C: .4byte gUnknown_8116844
_080A2010: .4byte 0x000003e6
_080A2014: .4byte gTeamInventory_203B460
_080A2018:
ldrb r0, [r6, 0x2]
movs r1, 0
bl sub_809124C
bl FillInventoryGaps
_080A2024:
subs r5, 0x1
cmp r5, 0
bge _080A1FE0
b _080A236A
_080A202C:
bl GetPlayerPokemonStruct
cmp r0, 0
beq _080A2040
movs r4, 0x8
ldrsh r0, [r0, r4]
cmp r0, 0x71
bne _080A2040
_080A203C:
movs r0, 0x2
b _080A236C
_080A2040:
movs r0, 0x71
bl sub_8098134
bl _080A171E
_080A204A:
movs r0, 0
movs r1, 0x1
bl sub_80A56A0
b _080A236A
_080A2054:
add r0, sp, 0x328
str r5, [r0]
str r7, [r0, 0x4]
bl sub_80A56F0
b _080A236A
_080A2060:
add r0, sp, 0x330
str r5, [r0]
str r7, [r0, 0x4]
bl sub_80A5704
b _080A236A
_080A206C:
lsls r0, r5, 16
lsrs r0, 16
bl sub_809C6CC
b _080A236A
_080A2076:
bl sub_809C6EC
b _080A236A
_080A207C:
bl sub_809C760
b _080A236A
_080A2082:
movs r0, 0
movs r4, 0x80
lsls r4, 9
_080A2088:
movs r1, 0x80
lsls r1, 15
bl sub_80A86C8
adds r0, r4, 0
movs r5, 0x80
lsls r5, 9
adds r4, r5
asrs r0, 16
cmp r0, 0x17
ble _080A2088
movs r0, 0
adds r4, r5, 0
_080A20A2:
movs r1, 0x80
lsls r1, 15
bl sub_80AC1B0
adds r0, r4, 0
movs r6, 0x80
lsls r6, 9
adds r4, r6
asrs r0, 16
cmp r0, 0xF
ble _080A20A2
movs r0, 0
adds r4, r6, 0
_080A20BC:
movs r1, 0x80
lsls r1, 15
bl sub_80AD0C8
adds r0, r4, 0
movs r1, 0x80
lsls r1, 9
adds r4, r1
asrs r0, 16
cmp r0, 0xF
ble _080A20BC
b _080A236A
_080A20D4:
add r0, sp, 0x338
str r5, [r0]
adds r4, r0, 0
str r7, [r4, 0x4]
movs r0, 0x1
adds r1, r4, 0
bl sub_80A5984
adds r2, r0, 0
lsls r2, 16
lsrs r2, 16
movs r0, 0
adds r1, r4, 0
bl sub_80A59A0
b _080A236A
_080A20F4:
add r1, sp, 0x308
movs r2, 0
movs r0, 0x1
strb r0, [r1]
strb r2, [r1, 0x1]
strb r0, [r1, 0x2]
strb r0, [r1, 0x3]
str r2, [r1, 0x4]
ldr r0, _080A21D8
ldr r2, _080A21DC
adds r0, r2
ldr r0, [r0]
str r0, [r1, 0x8]
movs r0, 0x1
negs r0, r0
lsls r2, r5, 16
asrs r2, 16
lsls r3, r7, 24
asrs r3, 24
bl GroundEffect_Add
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _080A2128
b _080A236A
_080A2128:
bl sub_80AD158
adds r7, r0, 0
add r4, sp, 0x340
add r5, sp, 0x348
adds r0, r4, 0
adds r1, r5, 0
bl sub_80A579C
ldr r0, [r4, 0x4]
movs r1, 0xC0
lsls r1, 4
adds r0, r1
str r0, [r4, 0x4]
ldr r0, [r5, 0x4]
adds r0, r1
str r0, [r5, 0x4]
ldr r1, [r6]
ldr r0, [r6, 0x4]
add r6, sp, 0x350
ldr r2, [r1, 0xC]
adds r1, r6, 0
bl _call_via_r2
add r1, sp, 0x350
ldr r2, [r1]
add r0, sp, 0x340
ldr r0, [r0]
cmp r2, r0
blt _080A216E
add r0, sp, 0x348
ldr r0, [r0]
cmp r2, r0
blt _080A2170
subs r0, 0x1
_080A216E:
str r0, [r1]
_080A2170:
ldr r1, [r6, 0x4]
ldr r0, [r4, 0x4]
cmp r1, r0
blt _080A2180
ldr r0, [r5, 0x4]
cmp r1, r0
blt _080A2182
subs r0, 0x1
_080A2180:
str r0, [r6, 0x4]
_080A2182:
add r1, sp, 0x340
ldr r0, [r1]
ldr r2, _080A21E0
adds r0, r2
str r0, [r1]
ldr r0, [r4, 0x4]
adds r0, r2
str r0, [r4, 0x4]
add r1, sp, 0x348
ldr r0, [r1]
movs r2, 0x80
lsls r2, 3
adds r0, r2
str r0, [r1]
ldr r0, [r5, 0x4]
adds r0, r2
str r0, [r5, 0x4]
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r3, [r1, 0x20]
adds r1, r4, 0
adds r2, r5, 0
bl _call_via_r3
ldr r1, [r7]
ldr r0, [r7, 0x4]
ldr r2, [r1, 0x24]
adds r1, r6, 0
bl _call_via_r2
movs r0, 0
movs r1, 0
add r2, sp, 0x358
str r0, [r2]
str r1, [r2, 0x4]
ldr r2, [r7]
ldr r0, [r7, 0x4]
add r1, sp, 0x358
ldr r2, [r2, 0x48]
bl _call_via_r2
b _080A1EBE
.align 2, 0
_080A21D8: .4byte gFunctionScriptTable
_080A21DC: .4byte 0x00001310
_080A21E0: .4byte 0xfffffc00
_080A21E4:
ldr r0, _080A2288
ldrh r4, [r0]
ldrh r0, [r0, 0x2]
movs r1, 0xC
ands r0, r1
cmp r0, 0
beq _080A21F4
b _080A236A
_080A21F4:
adds r0, r4, 0
bl sub_809CFE8
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A2282
movs r2, 0x80
lsls r2, 1
add r0, sp, 0x360
bl sub_8002BB8
add r0, sp, 0x360
ldr r1, [r0, 0x4]
ldr r0, [r0]
add r2, sp, 0x368
str r0, [r2]
str r1, [r2, 0x4]
movs r0, 0x2
ands r4, r0
cmp r4, 0
beq _080A2226
movs r0, 0x4
_080A2226:
cmp r0, 0
beq _080A2282
movs r3, 0xDA
lsls r3, 2
add r3, sp
mov r9, r3
add r7, sp, 0x370
add r4, sp, 0x378
mov r8, r0
_080A2238:
ldr r1, [r6]
ldr r0, [r6, 0x4]
ldr r2, [r1, 0x48]
mov r1, r9
bl _call_via_r2
cmp r0, 0
beq _080A2276
movs r5, 0
str r5, [r7]
mov r1, r9
ldr r0, [r1, 0x4]
str r0, [r7, 0x4]
ldr r1, [r6]
ldr r0, [r6, 0x4]
ldr r2, [r1, 0x48]
adds r1, r7, 0
bl _call_via_r2
cmp r0, 0
beq _080A2276
mov r2, r9
ldr r0, [r2]
str r0, [r4]
str r5, [r4, 0x4]
ldr r1, [r6]
ldr r0, [r6, 0x4]
ldr r2, [r1, 0x48]
adds r1, r4, 0
bl _call_via_r2
_080A2276:
movs r3, 0x1
negs r3, r3
add r8, r3
mov r5, r8
cmp r5, 0
bne _080A2238
_080A2282:
movs r0, 0x1
negs r0, r0
b _080A236C
.align 2, 0
_080A2288: .4byte gRealInputs
_080A228C:
negs r0, r5
orrs r0, r5
lsrs r0, 31
bl sub_80993C0
b _080A236A
_080A2298:
movs r0, 0x1
bl sub_8011C28
_080A229E:
adds r0, r5, 0
bl sub_8098F00
lsls r0, r5, 16
lsrs r0, 16
bl FadeOutAllMusic
b _080A236A
_080A22AE:
bl GetCurrentBGSong
ldr r1, _080A22C4
strh r0, [r1]
lsls r0, 16
ldr r1, _080A22C8
cmp r0, r1
beq _080A22C0
b _080A1EBE
_080A22C0:
b _080A236A
.align 2, 0
_080A22C4: .4byte gUnknown_2039DA8
_080A22C8: .4byte 0x03e70000
_080A22CC:
ldr r4, _080A22DC
ldrh r0, [r4]
ldr r5, _080A22E0
cmp r0, r5
beq _080A236A
bl xxx_call_start_new_bgm
b _080A2312
.align 2, 0
_080A22DC: .4byte gUnknown_2039DA8
_080A22E0: .4byte 0x000003e7
_080A22E4:
ldr r4, _080A22FC
ldrh r0, [r4]
ldr r6, _080A2300
cmp r0, r6
beq _080A236A
lsls r1, r5, 16
lsrs r1, 16
bl xxx_call_fade_in_new_bgm
strh r6, [r4]
b _080A1EBE
.align 2, 0
_080A22FC: .4byte gUnknown_2039DA8
_080A2300: .4byte 0x000003e7
_080A2304:
ldr r4, _080A2318
ldrh r0, [r4]
ldr r5, _080A231C
cmp r0, r5
beq _080A236A
bl xxx_call_queue_bgm
_080A2312:
strh r5, [r4]
b _080A1EBE
.align 2, 0
_080A2318: .4byte gUnknown_2039DA8
_080A231C: .4byte 0x000003e7
_080A2320:
lsls r0, r5, 16
lsrs r0, 16
lsls r1, r7, 16
lsrs r1, 16
bl sub_80997F4
b _080A236A
_080A232E:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0x1E
bl sub_80997F4
b _080A236A
_080A233A:
lsls r1, r5, 16
lsrs r1, 16
movs r0, 0
bl GroundSprite_ExtendPaletteAdd
b _080A236A
_080A2346:
movs r0, 0
bl GroundSprite_ExtendPaletteDelete
b _080A236A
_080A234E:
movs r0, 0
movs r1, 0x2F
adds r2, r4, 0
movs r3, 0x1
bl sub_800199C
adds r0, r5, 0
subs r0, 0x10
b _080A236C
_080A2360:
movs r0, 0
movs r1, 0x1F
movs r2, 0
bl sub_80018D8
_080A236A:
movs r0, 0
_080A236C:
movs r3, 0xE0
lsls r3, 2
add sp, r3
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A14E8
thumb_func_start GroundScript_Unlock
GroundScript_Unlock:
push {r4-r7,lr}
ldr r1, _080A241C
ldrb r0, [r1]
cmp r0, 0
beq _080A2414
movs r0, 0
strb r0, [r1]
movs r6, 0
_080A2390:
ldr r0, _080A2420
adds r7, r6, r0
ldrb r0, [r7]
cmp r0, 0
beq _080A240E
movs r0, 0x1
ldr r1, _080A2424
adds r2, r6, 0
bl Log
lsls r5, r6, 16
asrs r5, 16
adds r0, r5, 0
bl sub_80A4D2C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
bl sub_80A8B1C
orrs r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
bl sub_80AC320
orrs r4, r0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
bl sub_80AD238
orrs r4, r0
lsls r4, 24
lsrs r4, 24
ldr r0, _080A2428
adds r5, r6, r0
ldrb r0, [r5]
cmp r0, 0
beq _080A240C
cmp r4, 0
beq _080A240E
movs r0, 0x80
adds r4, r6, 0
orrs r4, r0
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
bl sub_80A4D2C
adds r0, r4, 0
bl sub_80A8B1C
adds r0, r4, 0
bl sub_80AC320
adds r0, r4, 0
bl sub_80AD238
movs r0, 0
strb r0, [r5]
_080A240C:
strb r0, [r7]
_080A240E:
adds r6, 0x1
cmp r6, 0x80
ble _080A2390
_080A2414:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A241C: .4byte gUnknown_2039A36
_080A2420: .4byte gUnknown_2039A38
_080A2424: .4byte gUnknown_8116848
_080A2428: .4byte gUnknown_2039AC0
thumb_func_end GroundScript_Unlock
thumb_func_start sub_80A242C
sub_80A242C:
push {r4-r7,lr}
sub sp, 0x10
adds r4, r1, 0
ldr r0, [r0, 0x2C]
adds r2, r0, 0
adds r2, 0x10
mov r3, sp
_080A243A:
mov r1, sp
adds r0, r2, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldr r0, [r0]
str r0, [r1]
adds r2, 0x10
ldrb r0, [r3]
cmp r0, 0xF4
bne _080A243A
movs r1, 0x2
ldrsh r0, [r3, r1]
cmp r4, r0
bne _080A243A
adds r0, r2, 0
add sp, 0x10
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A242C
thumb_func_start sub_80A2460
sub_80A2460:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r5, r0, 0
mov r8, r1
ldr r6, [r5, 0x28]
mov r4, sp
_080A2470:
mov r0, sp
adds r1, r6, 0
ldm r1!, {r2,r3,r7}
stm r0!, {r2,r3,r7}
ldr r1, [r1]
str r1, [r0]
ldrb r0, [r4]
cmp r0, 0xCC
bne _080A249E
ldr r1, [sp, 0x4]
mov r0, r8
movs r2, 0x2
bl FlagJudge
lsls r0, 24
cmp r0, 0
beq _080A24F0
movs r0, 0x2
ldrsh r1, [r4, r0]
adds r0, r5, 0
bl sub_80A242C
b _080A24F4
_080A249E:
cmp r0, 0xCD
bne _080A24BE
ldr r1, [sp, 0x4]
ldrb r2, [r4, 0x1]
mov r0, r8
bl FlagJudge
lsls r0, 24
cmp r0, 0
beq _080A24F0
movs r2, 0x2
ldrsh r1, [r4, r2]
adds r0, r5, 0
bl sub_80A242C
b _080A24F4
_080A24BE:
cmp r0, 0xCE
bne _080A24EC
ldr r1, [sp, 0x4]
lsls r1, 16
asrs r1, 16
adds r0, r5, 0
adds r0, 0x74
bl sub_8001658
adds r1, r0, 0
ldrb r2, [r4, 0x1]
mov r0, r8
bl FlagJudge
lsls r0, 24
cmp r0, 0
beq _080A24F0
movs r3, 0x2
ldrsh r1, [r4, r3]
adds r0, r5, 0
bl sub_80A242C
b _080A24F4
_080A24EC:
adds r0, r6, 0
b _080A24F4
_080A24F0:
adds r6, 0x10
b _080A2470
_080A24F4:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A2460
thumb_func_start sub_80A2500
sub_80A2500:
push {r4,lr}
adds r4, r0, 0
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x1
bne _080A2524
lsls r4, 16
asrs r4, 16
movs r2, 0x2
ldrsh r0, [r1, r2]
bl sub_80A8BBC
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_809AB4C
_080A2524:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80A2500
thumb_func_start sub_80A252C
sub_80A252C:
push {r4,lr}
adds r4, r0, 0
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x1
bne _080A2550
lsls r4, 16
asrs r4, 16
movs r2, 0x2
ldrsh r0, [r1, r2]
bl sub_80A8BBC
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_809ABB4
_080A2550:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80A252C
thumb_func_start sub_80A2558
sub_80A2558:
push {r4,lr}
adds r4, r0, 0
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x1
bne _080A257C
lsls r4, 16
asrs r4, 16
movs r2, 0x2
ldrsh r0, [r1, r2]
bl sub_80A8BBC
adds r1, r0, 0
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl sub_809AC18
_080A257C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80A2558
thumb_func_start sub_80A2584
sub_80A2584:
push {lr}
lsls r1, 16
asrs r1, 16
lsls r0, 16
asrs r0, 16
bl sub_809ABB4
pop {r0}
bx r0
thumb_func_end sub_80A2584
thumb_func_start sub_80A2598
sub_80A2598:
push {lr}
lsls r1, 16
asrs r1, 16
lsls r0, 16
asrs r0, 16
bl sub_809AC18
pop {r0}
bx r0
thumb_func_end sub_80A2598
thumb_func_start sub_80A25AC
sub_80A25AC:
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
bl sub_8098F88
lsls r0, 24
cmp r0, 0
beq _080A25C2
adds r0, r4, 0
b _080A2602
_080A25C2:
cmp r4, 0x32
bne _080A25CA
movs r0, 0x32
b _080A2602
_080A25CA:
movs r0, 0xC
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _080A25E0
ldr r0, _080A25DC
b _080A2602
.align 2, 0
_080A25DC: .4byte 0x000003e7
_080A25E0:
movs r0, 0xD
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A25F0
movs r0, 0x13
b _080A2602
_080A25F0:
cmp r4, 0x1
bne _080A2600
movs r0, 0
movs r1, 0x28
bl sub_8001658
movs r0, 0x1
b _080A2602
_080A2600:
adds r0, r5, 0
_080A2602:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A25AC
.align 2,0