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

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

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

8640 lines
128 KiB
ArmAsm

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_80A77F8
sub_80A77F8:
push {r4,r5,lr}
ldr r4, _080A7860
movs r0, 0xCE
lsls r0, 2
movs r1, 0x6
bl MemoryAlloc
str r0, [r4]
ldr r4, _080A7864
movs r0, 0xBA
lsls r0, 6
movs r1, 0x6
bl MemoryAlloc
str r0, [r4]
adds r1, r0, 0
ldr r0, _080A7868
adds r5, r0, 0
movs r4, 0xF8
lsls r4, 1
movs r2, 0x80
lsls r2, 9
adds r3, r2, 0
_080A7826:
ldrh r0, [r1, 0x2]
orrs r0, r5
strh r0, [r1, 0x2]
adds r0, r2, 0
adds r2, r3
asrs r0, 16
adds r1, r4
cmp r0, 0x17
ble _080A7826
ldr r4, _080A7860
ldr r1, [r4]
movs r0, 0xCB
lsls r0, 2
adds r1, r0
movs r0, 0
movs r2, 0x19
bl sub_809D710
ldr r0, [r4]
movs r1, 0xCC
lsls r1, 2
adds r0, r1
movs r1, 0x1
strh r1, [r0]
bl sub_80A786C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A7860: .4byte gUnknown_3001B80
_080A7864: .4byte gUnknown_3001B84
_080A7868: .4byte 0x0000ffff
thumb_func_end sub_80A77F8
thumb_func_start sub_80A786C
sub_80A786C:
push {r4-r6,lr}
ldr r0, _080A78E8
ldr r4, [r0]
movs r1, 0
movs r6, 0x1
negs r6, r6
movs r5, 0x80
lsls r5, 9
_080A787C:
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, r6
beq _080A788A
adds r0, r1, 0
bl GroundLives_Delete
_080A788A:
adds r0, r5, 0
movs r1, 0x80
lsls r1, 9
adds r5, r1
asrs r1, r0, 16
movs r2, 0xF8
lsls r2, 1
adds r4, r2
cmp r1, 0x17
ble _080A787C
ldr r3, _080A78EC
ldr r0, [r3]
movs r2, 0x1
negs r2, r2
str r2, [r0, 0x24]
adds r0, 0x28
movs r1, 0xFF
strb r1, [r0]
movs r5, 0
movs r4, 0
movs r1, 0x2
_080A78B4:
ldr r0, [r3]
adds r0, r4
str r2, [r0, 0x8]
str r5, [r0]
str r5, [r0, 0x4]
adds r4, 0xC
subs r1, 0x1
cmp r1, 0
bge _080A78B4
ldr r4, _080A78EC
movs r2, 0
movs r3, 0x2C
movs r1, 0x3F
_080A78CE:
ldr r0, [r4]
adds r0, r3
str r2, [r0]
str r2, [r0, 0x4]
str r2, [r0, 0x8]
adds r3, 0xC
subs r1, 0x1
cmp r1, 0
bge _080A78CE
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080A78E8: .4byte gUnknown_3001B84
_080A78EC: .4byte gUnknown_3001B80
thumb_func_end sub_80A786C
thumb_func_start sub_80A78F0
sub_80A78F0:
push {r4,r5,lr}
bl sub_80A786C
ldr r4, _080A7914
ldr r0, [r4]
bl MemoryFree
movs r5, 0
str r5, [r4]
ldr r4, _080A7918
ldr r0, [r4]
bl MemoryFree
str r5, [r4]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A7914: .4byte gUnknown_3001B84
_080A7918: .4byte gUnknown_3001B80
thumb_func_end sub_80A78F0
thumb_func_start GroundLives_Select
GroundLives_Select:
push {r4-r7,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 16
asrs r4, 16
lsls r1, 16
asrs r7, r1, 16
lsls r2, 24
asrs r6, r2, 24
ldr r1, _080A7980
adds r0, r4, 0
bl sub_80A77D0
adds r5, r0, 0
ldr r1, _080A7984
str r6, [sp]
movs r0, 0
adds r2, r4, 0
adds r3, r7, 0
bl Log
lsls r1, r7, 3
ldr r0, [r5, 0x4]
adds r0, r1
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
ldr r0, [r0, 0x4]
adds r0, r1
ldr r5, [r0, 0x4]
ldr r0, [r0]
cmp r0, 0
ble _080A7976
adds r4, r0, 0
_080A7960:
movs r0, 0x1
negs r0, r0
adds r1, r5, 0
adds r2, r7, 0
adds r3, r6, 0
bl GroundLives_Add
subs r4, 0x1
adds r5, 0x18
cmp r4, 0
bne _080A7960
_080A7976:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A7980: .4byte gUnknown_811808C
_080A7984: .4byte gUnknown_8118098
thumb_func_end GroundLives_Select
thumb_func_start GroundLives_Cancel
GroundLives_Cancel:
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
asrs r7, r0, 16
lsls r1, 24
asrs r5, r1, 24
ldr r1, _080A79F4
movs r0, 0
adds r2, r7, 0
adds r3, r5, 0
bl Log
movs r1, 0
ldr r0, _080A79F8
ldr r4, [r0]
movs r0, 0x1
negs r0, r0
mov r8, r0
movs r6, 0x80
lsls r6, 9
_080A79B2:
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, r8
beq _080A79D4
movs r2, 0x4
ldrsh r0, [r4, r2]
cmp r0, r7
bne _080A79D4
cmp r5, 0
blt _080A79CE
movs r0, 0x6
ldrsb r0, [r4, r0]
cmp r0, r5
bne _080A79D4
_080A79CE:
adds r0, r1, 0
bl GroundLives_Delete
_080A79D4:
adds r0, r6, 0
movs r1, 0x80
lsls r1, 9
adds r6, r1
asrs r1, r0, 16
movs r2, 0xF8
lsls r2, 1
adds r4, r2
cmp r1, 0x17
ble _080A79B2
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A79F4: .4byte gUnknown_81180BC
_080A79F8: .4byte gUnknown_3001B84
thumb_func_end GroundLives_Cancel
thumb_func_start sub_80A79FC
sub_80A79FC:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r1, _080A7A70
movs r0, 0
bl Log
movs r6, 0
ldr r0, _080A7A74
ldr r4, [r0]
movs r0, 0x1
negs r0, r0
mov r8, r0
movs r1, 0xA2
lsls r1, 1
adds r5, r4, r1
mov r7, sp
_080A7A20:
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, r8
beq _080A7A50
ldr r0, [r5]
ldr r1, [r4, 0x14]
adds r0, r1
str r0, [sp]
ldr r0, [r5, 0x4]
ldr r1, [r4, 0x18]
adds r0, r1
str r0, [r7, 0x4]
movs r1, 0xB8
lsls r1, 1
adds r0, r4, r1
mov r1, sp
bl sub_80A675C
lsls r0, 24
cmp r0, 0
bne _080A7A50
adds r0, r6, 0
bl GroundLives_Delete
_080A7A50:
adds r0, r6, 0x1
lsls r0, 16
asrs r6, r0, 16
movs r0, 0xF8
lsls r0, 1
adds r5, r0
adds r4, r0
cmp r6, 0x17
ble _080A7A20
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A7A70: .4byte gUnknown_81180D8
_080A7A74: .4byte gUnknown_3001B84
thumb_func_end sub_80A79FC
thumb_func_start sub_80A7A78
sub_80A7A78:
push {r4-r7,lr}
ldr r1, _080A7AC0
movs r0, 0
bl Log
movs r6, 0
ldr r0, _080A7AC4
ldr r4, [r0]
movs r7, 0x1
negs r7, r7
movs r0, 0x9F
lsls r0, 1
adds r5, r4, r0
_080A7A92:
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, r7
beq _080A7ACC
movs r1, 0x8E
lsls r1, 1
adds r0, r4, r1
ldr r0, [r0]
movs r1, 0x80
lsls r1, 4
ands r0, r1
cmp r0, 0
beq _080A7AC8
movs r0, 0xA2
lsls r0, 1
adds r1, r4, r0
adds r0, 0x8
adds r2, r4, r0
movs r0, 0x20
bl sub_80ADCA0
b _080A7ACA
.align 2, 0
_080A7AC0: .4byte gUnknown_81180D8
_080A7AC4: .4byte gUnknown_3001B84
_080A7AC8:
ldr r0, _080A7AE4
_080A7ACA:
strh r0, [r5]
_080A7ACC:
adds r0, r6, 0x1
lsls r0, 16
asrs r6, r0, 16
movs r1, 0xF8
lsls r1, 1
adds r5, r1
adds r4, r1
cmp r6, 0x17
ble _080A7A92
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A7AE4: .4byte 0x0000ffff
thumb_func_end sub_80A7A78
thumb_func_start sub_80A7AE8
sub_80A7AE8:
push {r4-r7,lr}
sub sp, 0x4
mov r1, sp
strh r0, [r1]
mov r0, sp
bl sub_80A7B94
mov r0, sp
movs r1, 0
ldrsh r2, [r0, r1]
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _080A7B34
movs r3, 0
ldr r0, _080A7B24
ldr r1, [r0]
adds r4, r2, 0
movs r2, 0x80
lsls r2, 9
adds r6, r2, 0
movs r5, 0xF8
lsls r5, 1
_080A7B16:
movs r7, 0x2
ldrsh r0, [r1, r7]
cmp r0, r4
bne _080A7B28
adds r0, r3, 0
b _080A7B38
.align 2, 0
_080A7B24: .4byte gUnknown_3001B84
_080A7B28:
adds r0, r2, 0
adds r2, r6
asrs r3, r0, 16
adds r1, r5
cmp r3, 0x17
ble _080A7B16
_080A7B34:
movs r0, 0x1
negs r0, r0
_080A7B38:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A7AE8
thumb_func_start sub_80A7B40
sub_80A7B40:
push {r4-r7,lr}
lsls r0, 16
asrs r4, r0, 16
movs r3, 0
ldr r0, _080A7B70
ldr r1, [r0]
movs r6, 0x1
negs r6, r6
movs r2, 0x80
lsls r2, 9
movs r5, 0x9E
lsls r5, 1
_080A7B58:
movs r7, 0x2
ldrsh r0, [r1, r7]
cmp r0, r6
beq _080A7B74
adds r0, r1, r5
movs r7, 0
ldrsh r0, [r0, r7]
cmp r0, r4
bne _080A7B74
adds r0, r3, 0
b _080A7B8C
.align 2, 0
_080A7B70: .4byte gUnknown_3001B84
_080A7B74:
adds r0, r2, 0
movs r3, 0x80
lsls r3, 9
adds r2, r3
asrs r3, r0, 16
movs r7, 0xF8
lsls r7, 1
adds r1, r7
cmp r3, 0x17
ble _080A7B58
movs r0, 0x1
negs r0, r0
_080A7B8C:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A7B40
thumb_func_start sub_80A7B94
sub_80A7B94:
push {r4-r7,lr}
sub sp, 0x10
adds r7, r0, 0
movs r0, 0
ldrsh r2, [r7, r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _080A7BD4
adds r0, r1
movs r6, 0x1
negs r6, r6
movs r1, 0
ldrsh r5, [r0, r1]
cmp r5, 0x1
bne _080A7C14
adds r0, r2, 0
cmp r0, 0
bne _080A7C10
movs r0, 0
movs r1, 0x1C
bl sub_8001658
adds r4, r0, 0
cmp r4, 0x1
beq _080A7BDE
cmp r4, 0x1
bgt _080A7BD8
cmp r4, 0
beq _080A7BF2
b _080A7C08
.align 2, 0
_080A7BD4: .4byte gUnknown_811E63C
_080A7BD8:
cmp r4, 0x2
beq _080A7BE4
b _080A7C08
_080A7BDE:
movs r0, 0x2
strh r0, [r7]
b _080A7C10
_080A7BE4:
bl GetPlayerPokemonStruct
adds r6, r0, 0
bl sub_808D3BC
cmp r0, r6
bne _080A7BF6
_080A7BF2:
strh r5, [r7]
b _080A7C10
_080A7BF6:
bl sub_808D3F8
cmp r0, r6
bne _080A7C02
strh r4, [r7]
b _080A7C10
_080A7C02:
movs r0, 0x3
strh r0, [r7]
b _080A7C10
_080A7C08:
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
b _080A7DAC
_080A7C10:
movs r6, 0
b _080A7DD2
_080A7C14:
cmp r5, 0x2
bne _080A7CD2
movs r0, 0
movs r1, 0x1D
bl sub_8001658
adds r4, r0, 0
movs r0, 0
movs r1, 0x1E
bl sub_8001658
adds r2, r0, 0
ldrh r1, [r7]
subs r0, r1, 0x4
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bhi _080A7C82
cmp r1, 0x4
bne _080A7C44
adds r0, r4, 0
cmp r0, 0
bne _080A7C4C
b _080A7C4A
_080A7C44:
movs r0, 0
cmp r4, 0
beq _080A7C4C
_080A7C4A:
adds r0, r2, 0
_080A7C4C:
cmp r0, 0x2
beq _080A7C7A
cmp r0, 0x2
bhi _080A7C5A
cmp r0, 0x1
beq _080A7C6E
b _080A7DA6
_080A7C5A:
cmp r0, 0x3
beq _080A7C60
b _080A7DA6
_080A7C60:
bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3BC
cmp r0, r4
bne _080A7C72
_080A7C6E:
movs r0, 0x6
b _080A7C80
_080A7C72:
bl sub_808D3F8
cmp r0, r4
bne _080A7C7E
_080A7C7A:
movs r0, 0x7
b _080A7C80
_080A7C7E:
movs r0, 0x8
_080A7C80:
strh r0, [r7]
_080A7C82:
movs r0, 0
ldrsh r5, [r7, r0]
cmp r5, 0x7
beq _080A7CB0
cmp r5, 0x7
bgt _080A7C94
cmp r5, 0x6
beq _080A7C9A
b _080A7CCA
_080A7C94:
cmp r5, 0x8
beq _080A7CC6
b _080A7CCA
_080A7C9A:
movs r6, 0x2
bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3BC
cmp r4, r0
beq _080A7CAC
b _080A7DD2
_080A7CAC:
strh r5, [r7]
b _080A7DD2
_080A7CB0:
movs r6, 0x1
bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3F8
cmp r4, r0
beq _080A7CC2
b _080A7DD2
_080A7CC2:
movs r0, 0x6
b _080A7DD0
_080A7CC6:
movs r6, 0x2
b _080A7DD2
_080A7CCA:
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
b _080A7DAC
_080A7CD2:
cmp r5, 0x3
bne _080A7DB0
ldrh r1, [r7]
adds r0, r1, 0
subs r0, 0xA
lsls r0, 16
lsrs r0, 16
cmp r0, 0x3
bhi _080A7D12
adds r4, r2, 0
subs r4, 0xA
bl sub_8098F88
lsls r0, 24
cmp r0, 0
bne _080A7DD2
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A7D06
mov r0, sp
bl sub_808D6A4
b _080A7D0C
_080A7D06:
mov r0, sp
bl sub_808D654
_080A7D0C:
cmp r4, r0
bge _080A7DA6
b _080A7D7E
_080A7D12:
adds r0, r1, 0
subs r0, 0xE
lsls r0, 16
lsrs r0, 16
cmp r0, 0xF
bhi _080A7DA6
movs r0, 0
movs r1, 0x10
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_8002658
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _080A7DA6
movs r2, 0
ldrsh r0, [r7, r2]
adds r4, r0, 0
subs r4, 0xE
adds r0, r1, 0
mov r1, sp
movs r2, 0
movs r3, 0
bl sub_8092638
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
cmp r4, r0
bge _080A7DA6
ldr r2, _080A7D84
ldr r0, [sp, 0x8]
adds r0, r4
movs r1, 0x58
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A7D88
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080A7DA6
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _080A7DA6
_080A7D7E:
movs r0, 0x1
negs r0, r0
b _080A7DD4
.align 2, 0
_080A7D84: .4byte gRecruitedPokemonRef
_080A7D88:
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080A7DA6
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _080A7DA6
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _080A7DA2
movs r1, 0x1
_080A7DA2:
cmp r1, 0
beq _080A7D7E
_080A7DA6:
movs r2, 0x1
negs r2, r2
adds r0, r2, 0
_080A7DAC:
strh r0, [r7]
b _080A7D7E
_080A7DB0:
cmp r2, 0x23
bne _080A7DD2
bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3BC
cmp r0, r4
bne _080A7DC6
movs r0, 0x21
b _080A7DD0
_080A7DC6:
bl sub_808D3F8
cmp r0, r4
bne _080A7DD2
movs r0, 0x22
_080A7DD0:
strh r0, [r7]
_080A7DD2:
adds r0, r6, 0
_080A7DD4:
add sp, 0x10
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A7B94
thumb_func_start sub_80A7DDC
sub_80A7DDC:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x24
adds r7, r0, 0
adds r5, r1, 0
bl sub_80A7B94
lsls r0, 16
asrs r0, 16
mov r8, r0
movs r0, 0
strh r0, [r5]
ldrh r3, [r7]
movs r1, 0
ldrsh r0, [r7, r1]
movs r6, 0x1
negs r6, r6
cmp r0, r6
bne _080A7E0A
_080A7E04:
movs r0, 0x1
negs r0, r0
b _080A8098
_080A7E0A:
movs r0, 0
ldrsh r2, [r7, r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _080A7E50
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x3
beq _080A7E22
b _080A7F38
_080A7E22:
adds r0, r3, 0
subs r0, 0xA
lsls r0, 16
lsrs r0, 16
cmp r0, 0x3
bhi _080A7E90
adds r4, r2, 0
subs r4, 0xA
bl sub_8098F88
lsls r0, 24
cmp r0, 0
beq _080A7E58
ldr r0, _080A7E54
lsls r1, r4, 1
adds r1, r0
ldrh r0, [r1]
strh r0, [r5]
cmp r0, 0
bne _080A7E04
strh r6, [r7]
b _080A7E04
.align 2, 0
_080A7E50: .4byte gUnknown_811E63C
_080A7E54: .4byte gUnknown_81180F0
_080A7E58:
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A7E6C
mov r0, sp
bl sub_808D6A4
b _080A7E72
_080A7E6C:
mov r0, sp
bl sub_808D654
_080A7E72:
cmp r4, r0
blt _080A7E78
b _080A8080
_080A7E78:
ldr r2, _080A7E8C
lsls r0, r4, 2
add r0, sp
ldr r1, [r0]
movs r0, 0x58
muls r1, r0
ldr r0, [r2]
adds r0, r1
ldrh r0, [r0, 0x8]
b _080A800A
.align 2, 0
_080A7E8C: .4byte gRecruitedPokemonRef
_080A7E90:
adds r0, r3, 0
subs r0, 0xE
lsls r0, 16
lsrs r0, 16
cmp r0, 0xF
bls _080A7E9E
b _080A8080
_080A7E9E:
movs r0, 0
movs r1, 0x10
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_8002658
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080A7EB8
b _080A8080
_080A7EB8:
movs r2, 0
ldrsh r0, [r7, r2]
adds r4, r0, 0
subs r4, 0xE
adds r0, r1, 0
mov r1, sp
movs r2, 0
movs r3, 0
bl sub_8092638
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
cmp r4, r0
blt _080A7ED8
b _080A8080
_080A7ED8:
ldr r2, _080A7F0C
ldr r0, [sp, 0x8]
adds r0, r4
movs r1, 0x58
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A7F10
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080A7EFE
b _080A8080
_080A7EFE:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _080A7F06
b _080A8080
_080A7F06:
ldrh r0, [r4, 0x8]
b _080A800A
.align 2, 0
_080A7F0C: .4byte gRecruitedPokemonRef
_080A7F10:
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080A7F1C
b _080A8080
_080A7F1C:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _080A7F24
b _080A8080
_080A7F24:
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _080A7F2E
movs r1, 0x1
_080A7F2E:
cmp r1, 0
beq _080A7F34
b _080A8080
_080A7F34:
ldrh r0, [r4, 0x8]
b _080A800A
_080A7F38:
subs r0, r3, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x23
bls _080A7F44
b _080A808A
_080A7F44:
lsls r0, 2
ldr r1, _080A7F50
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A7F50: .4byte _080A7F54
.align 2, 0
_080A7F54:
.4byte _080A7FE4
.4byte _080A7FEC
.4byte _080A7FF4
.4byte _080A808A
.4byte _080A808A
.4byte _080A7FE4
.4byte _080A7FEC
.4byte _080A7FF4
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A808A
.4byte _080A8032
.4byte _080A8032
.4byte _080A8014
.4byte _080A7FE4
.4byte _080A7FEC
.4byte _080A7FF4
.4byte _080A7FFC
_080A7FE4:
bl sub_808D3BC
ldrh r0, [r0, 0x8]
b _080A8094
_080A7FEC:
bl sub_808D3F8
ldrh r0, [r0, 0x8]
b _080A8094
_080A7FF4:
bl GetPlayerPokemonStruct
ldrh r0, [r0, 0x8]
b _080A8094
_080A7FFC:
movs r0, 0xF
bl RandomCapped
ldr r1, _080A8010
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
_080A800A:
strh r0, [r5]
b _080A7E04
.align 2, 0
_080A8010: .4byte gUnknown_81180FC
_080A8014:
movs r0, 0
movs r1, 0x1F
bl sub_8001658
lsls r0, 16
asrs r0, 16
cmp r0, 0
beq _080A8028
strh r0, [r5]
b _080A7E04
_080A8028:
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
strh r0, [r7]
b _080A7E04
_080A8032:
movs r0, 0x89
strh r0, [r5]
add r6, sp, 0x10
adds r0, r6, 0
bl sub_8099328
lsls r0, 24
cmp r0, 0
bne _080A8046
b _080A7E04
_080A8046:
add r1, sp, 0x14
add r2, sp, 0x18
movs r0, 0x2
bl sub_8001B88
add r4, sp, 0x1C
ldr r1, [sp, 0x18]
lsls r1, 24
lsrs r1, 24
ldrb r2, [r6]
adds r0, r4, 0
bl sub_8096AF8
ldrb r0, [r4]
cmp r0, 0
beq _080A8076
movs r2, 0
ldrsh r0, [r7, r2]
cmp r0, 0x1E
bne _080A8072
ldrh r0, [r4, 0x2]
b _080A8074
_080A8072:
ldrh r0, [r4, 0x4]
_080A8074:
strh r0, [r5]
_080A8076:
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0
beq _080A8080
b _080A7E04
_080A8080:
movs r2, 0x1
negs r2, r2
adds r0, r2, 0
strh r0, [r7]
b _080A7E04
_080A808A:
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080A8096
ldrh r0, [r4, 0x2]
_080A8094:
strh r0, [r5]
_080A8096:
mov r0, r8
_080A8098:
add sp, 0x24
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A7DDC
thumb_func_start GroundLives_Add
GroundLives_Add:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
str r1, [sp, 0x10]
lsls r0, 16
asrs r6, r0, 16
lsls r2, 16
asrs r2, 16
str r2, [sp, 0x14]
lsls r3, 24
asrs r3, 24
str r3, [sp, 0x18]
ldrb r1, [r1]
add r0, sp, 0xC
strh r1, [r0]
movs r0, 0
mov r8, r0
mov r4, sp
adds r4, 0xE
add r0, sp, 0xC
adds r1, r4, 0
bl sub_80A7DDC
lsls r0, 16
asrs r7, r0, 16
add r0, sp, 0xC
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
mov r9, r4
cmp r1, r0
beq _080A81AE
cmp r7, 0x1
beq _080A8104
cmp r7, 0x1
bgt _080A80FA
cmp r7, 0
beq _080A8100
b _080A8118
_080A80FA:
cmp r7, 0x2
beq _080A8108
b _080A8118
_080A8100:
movs r6, 0
b _080A8118
_080A8104:
movs r6, 0x1
b _080A8118
_080A8108:
movs r0, 0
movs r1, 0x1D
bl sub_8001658
cmp r0, 0
bne _080A8116
movs r7, 0x1
_080A8116:
movs r6, 0x2
_080A8118:
add r0, sp, 0xC
movs r3, 0
ldrsh r2, [r0, r3]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _080A813C
adds r0, r1
str r0, [sp, 0x1C]
cmp r6, 0
bge _080A81B4
cmp r2, 0x21
beq _080A8140
cmp r2, 0x23
beq _080A8154
adds r0, r2, 0
b _080A8162
.align 2, 0
_080A813C: .4byte gUnknown_811E63C
_080A8140:
ldr r0, _080A8150
ldr r0, [r0]
movs r4, 0x2
ldrsh r0, [r0, r4]
cmp r0, 0x1
beq _080A81AE
movs r0, 0x21
b _080A8162
.align 2, 0
_080A8150: .4byte gUnknown_3001B84
_080A8154:
ldr r0, _080A8188
ldr r0, [r0]
movs r1, 0x2
ldrsh r0, [r0, r1]
cmp r0, 0x3
beq _080A81AE
movs r0, 0x23
_080A8162:
bl sub_80A7AE8
adds r6, r0, 0
cmp r6, 0
bge _080A81B4
movs r2, 0x3
ldr r0, _080A8188
ldr r0, [r0]
movs r3, 0xBA
lsls r3, 3
adds r5, r0, r3
movs r4, 0x2
ldrsh r1, [r5, r4]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A818C
movs r6, 0x3
b _080A81B4
.align 2, 0
_080A8188: .4byte gUnknown_3001B84
_080A818C:
adds r0, r2, 0x1
lsls r0, 16
asrs r2, r0, 16
movs r0, 0xF8
lsls r0, 1
adds r5, r0
cmp r2, 0x17
bgt _080A81AA
movs r3, 0x2
ldrsh r1, [r5, r3]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A818C
adds r6, r2, 0
_080A81AA:
cmp r6, 0
bge _080A81B4
_080A81AE:
movs r0, 0x1
negs r0, r0
b _080A8674
_080A81B4:
ldr r1, _080A8234
lsls r0, r6, 5
subs r0, r6
lsls r0, 4
ldr r1, [r1]
adds r5, r1, r0
ldr r1, _080A8238
add r0, sp, 0xC
movs r4, 0
ldrsh r3, [r0, r4]
ldr r2, [sp, 0x1C]
movs r4, 0
ldrsh r0, [r2, r4]
str r0, [sp]
ldr r0, [sp, 0x14]
str r0, [sp, 0x4]
ldr r2, [sp, 0x18]
str r2, [sp, 0x8]
movs r0, 0
adds r2, r6, 0
bl Log
movs r2, 0
movs r3, 0x2
ldrsh r1, [r5, r3]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A81F0
movs r2, 0x1
_080A81F0:
str r2, [sp, 0x20]
strh r6, [r5]
add r0, sp, 0xC
ldrh r0, [r0]
strh r0, [r5, 0x2]
mov r4, sp
ldrh r4, [r4, 0x14]
strh r4, [r5, 0x4]
mov r0, sp
ldrb r0, [r0, 0x18]
strb r0, [r5, 0x6]
mov r1, r9
ldrh r0, [r1]
strh r0, [r5, 0x8]
movs r2, 0x90
lsls r2, 1
adds r4, r5, r2
adds r0, r4, 0
bl sub_809CD68
movs r0, 0x9
str r0, [r4]
ldr r3, [sp, 0x1C]
ldrh r0, [r3]
subs r0, 0x1
lsls r0, 16
asrs r0, 16
cmp r0, 0x9
bhi _080A82D8
lsls r0, 2
ldr r1, _080A823C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A8234: .4byte gUnknown_3001B84
_080A8238: .4byte gUnknown_811811C
_080A823C: .4byte _080A8240
.align 2, 0
_080A8240:
.4byte _080A8268
.4byte _080A8280
.4byte _080A8290
.4byte _080A82D8
.4byte _080A82D8
.4byte _080A8298
.4byte _080A82A8
.4byte _080A82B4
.4byte _080A82BE
.4byte _080A82CA
_080A8268:
movs r4, 0x8E
lsls r4, 1
adds r1, r5, r4
ldr r0, _080A827C
str r0, [r1]
movs r0, 0x90
lsls r0, 1
adds r1, r5, r0
movs r0, 0x1
b _080A82E0
.align 2, 0
_080A827C: .4byte 0x2300181d
_080A8280:
movs r2, 0x8E
lsls r2, 1
adds r1, r5, r2
ldr r0, _080A828C
b _080A82E0
.align 2, 0
_080A828C: .4byte 0x23001000
_080A8290:
movs r3, 0x8E
lsls r3, 1
adds r1, r5, r3
b _080A82DE
_080A8298:
movs r4, 0x8E
lsls r4, 1
adds r1, r5, r4
ldr r0, _080A82A4
b _080A82E0
.align 2, 0
_080A82A4: .4byte 0x2000000d
_080A82A8:
movs r0, 0x8E
lsls r0, 1
adds r1, r5, r0
movs r0, 0x80
lsls r0, 10
b _080A82E0
_080A82B4:
movs r2, 0x8E
lsls r2, 1
adds r1, r5, r2
movs r0, 0
b _080A82E0
_080A82BE:
movs r3, 0x8E
lsls r3, 1
adds r1, r5, r3
movs r0, 0xC0
lsls r0, 12
b _080A82E0
_080A82CA:
movs r4, 0x8E
lsls r4, 1
adds r1, r5, r4
ldr r0, _080A82D4
b _080A82E0
.align 2, 0
_080A82D4: .4byte 0x20010000
_080A82D8:
movs r0, 0x8E
lsls r0, 1
adds r1, r5, r0
_080A82DE:
ldr r0, _080A83DC
_080A82E0:
str r0, [r1]
ldr r2, [sp, 0x1C]
ldrb r1, [r2, 0x8]
lsls r1, 11
str r1, [r5, 0xC]
ldrb r0, [r2, 0x9]
lsls r0, 11
str r0, [r5, 0x10]
lsrs r1, 1
str r1, [r5, 0x14]
lsrs r0, 1
str r0, [r5, 0x18]
ldr r3, [sp, 0x10]
ldrb r0, [r3, 0x1]
strb r0, [r5, 0x1C]
adds r2, r3, 0
adds r2, 0x4
adds r4, r5, 0
adds r4, 0x20
ldrb r1, [r2, 0x2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _080A8328
ldrb r0, [r3, 0x4]
lsls r3, r0, 11
str r3, [r5, 0x20]
ldrb r1, [r2, 0x2]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080A8328
movs r1, 0x80
lsls r1, 3
adds r0, r3, r1
str r0, [r5, 0x20]
_080A8328:
ldrb r1, [r2, 0x3]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _080A834A
ldrb r0, [r2, 0x1]
lsls r3, r0, 11
str r3, [r4, 0x4]
ldrb r1, [r2, 0x3]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080A834A
movs r2, 0x80
lsls r2, 3
adds r0, r3, r2
str r0, [r4, 0x4]
_080A834A:
ldr r3, [sp, 0x20]
cmp r3, 0
beq _080A83EC
ldrb r0, [r5, 0x1C]
movs r4, 0xA1
lsls r4, 1
adds r1, r5, r4
movs r3, 0
strb r0, [r1]
movs r0, 0xA2
lsls r0, 1
adds r2, r5, r0
ldr r0, [r5, 0x20]
ldr r1, [r5, 0x14]
subs r0, r1
str r0, [r2]
movs r1, 0xA6
lsls r1, 1
adds r2, r5, r1
ldr r0, [r5, 0x20]
ldr r1, [r5, 0x14]
adds r0, r1
str r0, [r2]
adds r4, 0x6
adds r2, r5, r4
ldr r0, [r5, 0x24]
ldr r1, [r5, 0x18]
subs r0, r1
str r0, [r2]
movs r0, 0xA8
lsls r0, 1
adds r2, r5, r0
ldr r0, [r5, 0x24]
ldr r1, [r5, 0x18]
adds r0, r1
str r0, [r2]
movs r2, 0xAA
lsls r2, 1
adds r1, r5, r2
adds r4, 0x10
adds r0, r5, r4
str r3, [r0]
str r3, [r1]
movs r1, 0x9E
lsls r1, 1
adds r0, r5, r1
strh r7, [r0]
ldr r1, _080A83E0
lsls r0, r7, 1
adds r0, r7
lsls r0, 2
ldr r1, [r1]
adds r1, r0
movs r0, 0x1
negs r0, r0
str r0, [r1, 0x8]
str r3, [r1]
str r3, [r1, 0x4]
ldrh r0, [r5, 0x2]
subs r0, 0xE
lsls r0, 16
lsrs r0, 16
cmp r0, 0xF
bhi _080A83E4
movs r0, 0x12
bl OtherRandomCapped
movs r2, 0xA0
lsls r2, 1
adds r1, r5, r2
strh r0, [r1]
b _080A83EC
.align 2, 0
_080A83DC: .4byte 0x2300068d
_080A83E0: .4byte gUnknown_3001B80
_080A83E4:
movs r4, 0xA0
lsls r4, 1
adds r0, r5, r4
strh r3, [r0]
_080A83EC:
movs r1, 0x8E
lsls r1, 1
adds r0, r5, r1
ldr r0, [r0]
movs r1, 0x80
lsls r1, 4
ands r0, r1
cmp r0, 0
beq _080A8418
movs r2, 0xA2
lsls r2, 1
adds r1, r5, r2
movs r3, 0xA6
lsls r3, 1
adds r2, r5, r3
movs r0, 0x20
bl sub_80ADCA0
movs r4, 0x9F
lsls r4, 1
adds r1, r5, r4
b _080A8420
_080A8418:
movs r0, 0x9F
lsls r0, 1
adds r1, r5, r0
ldr r0, _080A849C
_080A8420:
strh r0, [r1]
adds r0, r5, 0
adds r0, 0x28
adds r1, r5, 0
adds r1, 0x30
bl sub_80A5778
ldr r1, [sp, 0x20]
cmp r1, 0
beq _080A84AC
ldr r2, _080A84A0
adds r1, r5, r2
movs r0, 0xFF
strb r0, [r1]
movs r3, 0xAF
lsls r3, 1
adds r1, r5, r3
movs r3, 0
movs r0, 0xC0
lsls r0, 2
strh r0, [r1]
movs r4, 0xB0
lsls r4, 1
adds r1, r5, r4
movs r2, 0x1
movs r0, 0x1
strh r0, [r1]
movs r1, 0xB2
lsls r1, 1
adds r0, r5, r1
str r3, [r0]
adds r4, 0x8
adds r1, r5, r4
ldr r0, _080A84A4
strh r0, [r1]
movs r1, 0xAE
lsls r1, 1
adds r0, r5, r1
strb r2, [r0]
movs r2, 0xB5
lsls r2, 1
adds r0, r5, r2
strh r3, [r0]
movs r3, 0xB8
lsls r3, 1
adds r0, r5, r3
movs r4, 0x2
ldrsh r1, [r5, r4]
movs r3, 0x8
ldrsh r2, [r5, r3]
movs r4, 0x8E
lsls r4, 1
adds r3, r5, r4
ldr r3, [r3]
bl sub_80A7428
adds r4, r5, 0
adds r4, 0x38
ldr r1, _080A84A8
ldr r0, [sp, 0x18]
str r0, [sp]
b _080A855C
.align 2, 0
_080A849C: .4byte 0x0000ffff
_080A84A0: .4byte 0x0000015d
_080A84A4: .4byte 0x00000807
_080A84A8: .4byte gUnknown_8117F10
_080A84AC:
adds r4, r5, 0
adds r4, 0x38
ldr r0, _080A84F0
ldr r1, [r0]
movs r2, 0xCB
lsls r2, 2
adds r1, r2
adds r0, r4, 0
bl sub_809D684
lsls r0, 24
cmp r0, 0
beq _080A8550
adds r0, r5, 0
adds r0, 0xBE
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
beq _080A84F4
adds r0, r5, 0
adds r0, 0xE0
ldrh r0, [r0]
mov r10, r0
adds r0, r5, 0
adds r0, 0xE2
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
mov r9, r0
adds r7, r5, 0
adds r7, 0x80
movs r0, 0x82
adds r0, r5
b _080A8508
.align 2, 0
_080A84F0: .4byte gUnknown_3001B80
_080A84F4:
adds r1, r5, 0
adds r1, 0x80
ldrh r2, [r1]
mov r10, r2
adds r0, r5, 0
adds r0, 0x82
movs r3, 0
ldrsb r3, [r0, r3]
mov r9, r3
adds r7, r1, 0
_080A8508:
mov r8, r0
adds r0, r4, 0
bl sub_809D648
ldr r1, _080A8544
ldr r0, [sp, 0x18]
str r0, [sp]
adds r0, r4, 0
adds r2, r5, 0
ldr r3, [sp, 0x14]
bl sub_809D600
ldr r0, _080A8548
ldr r2, [r0]
movs r1, 0xCB
lsls r1, 2
adds r2, r1
ldr r3, _080A854C
adds r0, r4, 0
movs r1, 0
bl GroundScript_ExecutePP
mov r2, r10
strh r2, [r7]
mov r0, r9
mov r3, r8
strb r0, [r3]
movs r1, 0x1
mov r8, r1
b _080A8566
.align 2, 0
_080A8544: .4byte gUnknown_8117F10
_080A8548: .4byte gUnknown_3001B80
_080A854C: .4byte gUnknown_8118170
_080A8550:
adds r0, r4, 0
bl sub_809D648
ldr r1, _080A861C
ldr r2, [sp, 0x18]
str r2, [sp]
_080A855C:
adds r0, r4, 0
adds r2, r5, 0
ldr r3, [sp, 0x14]
bl sub_809D600
_080A8566:
ldr r3, [sp, 0x10]
ldr r2, [r3, 0xC]
cmp r2, 0
bne _080A8574
ldr r0, _080A8620
adds r0, 0xEC
ldr r2, [r0]
_080A8574:
adds r0, r4, 0
movs r1, 0x1
bl sub_809D6D8
ldr r0, [sp, 0x10]
ldr r2, [r0, 0x10]
cmp r2, 0
bne _080A8588
ldr r0, _080A8620
ldr r2, [r0, 0x38]
_080A8588:
adds r0, r4, 0
movs r1, 0x2
bl sub_809D6D8
ldr r1, [sp, 0x10]
ldr r2, [r1, 0x14]
cmp r2, 0
bne _080A859C
ldr r0, _080A8620
ldr r2, [r0, 0x50]
_080A859C:
adds r0, r4, 0
movs r1, 0x3
bl sub_809D6D8
ldr r3, [sp, 0x10]
ldr r2, [r3, 0x8]
cmp r2, 0
beq _080A8630
adds r0, r4, 0
movs r1, 0
bl sub_809D6D8
ldr r0, [sp, 0x20]
cmp r0, 0
bne _080A860C
mov r1, r8
cmp r1, 0
bne _080A860C
movs r2, 0x8E
lsls r2, 1
adds r0, r5, r2
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 5
ands r0, r1
cmp r0, 0
bne _080A860C
ldr r0, _080A8624
ldr r2, [r0]
movs r3, 0xCB
lsls r3, 2
adds r2, r3
ldr r3, _080A8628
adds r0, r4, 0
movs r1, 0
bl GroundScript_ExecutePP
movs r1, 0xB0
lsls r1, 1
adds r0, r5, r1
movs r2, 0xAF
lsls r2, 1
adds r1, r5, r2
ldrh r0, [r0]
ldrh r1, [r1]
orrs r0, r1
adds r1, r5, 0
adds r1, 0x80
strh r0, [r1]
movs r3, 0xA1
lsls r3, 1
adds r0, r5, r3
ldrb r1, [r0]
adds r0, r5, 0
adds r0, 0x82
strb r1, [r0]
_080A860C:
ldr r3, _080A862C
adds r0, r4, 0
movs r1, 0
movs r2, 0
bl sub_809D8C0
b _080A865A
.align 2, 0
_080A861C: .4byte gUnknown_8117F10
_080A8620: .4byte gFunctionScriptTable
_080A8624: .4byte gUnknown_3001B80
_080A8628: .4byte gUnknown_811817C
_080A862C: .4byte gUnknown_8118188
_080A8630:
mov r4, r8
cmp r4, 0
beq _080A865A
movs r0, 0xAE
lsls r0, 1
adds r1, r5, r0
movs r0, 0x1
strb r0, [r1]
adds r0, r5, 0
adds r0, 0x82
ldrb r0, [r0]
movs r2, 0xA1
lsls r2, 1
adds r1, r5, r2
strb r0, [r1]
adds r0, r5, 0
adds r0, 0x80
ldrh r1, [r0]
adds r0, r5, 0
bl sub_80A9750
_080A865A:
ldr r3, [sp, 0x1C]
movs r4, 0
ldrsh r0, [r3, r4]
cmp r0, 0x1
bne _080A8672
ldr r0, [sp, 0x20]
cmp r0, 0
beq _080A8672
movs r0, 0x1
adds r1, r6, 0
bl sub_809D170
_080A8672:
adds r0, r6, 0
_080A8674:
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end GroundLives_Add
thumb_func_start GroundLives_Delete
GroundLives_Delete:
push {r4,lr}
adds r2, r0, 0
lsls r2, 16
asrs r2, 16
ldr r1, _080A86BC
lsls r0, r2, 5
subs r0, r2
lsls r0, 4
ldr r1, [r1]
adds r4, r1, r0
ldr r1, _080A86C0
movs r0, 0
bl Log
movs r1, 0xB8
lsls r1, 1
adds r0, r4, r1
bl sub_80A74E4
adds r0, r4, 0
adds r0, 0x38
bl sub_809D648
ldr r0, _080A86C4
strh r0, [r4, 0x2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A86BC: .4byte gUnknown_3001B84
_080A86C0: .4byte gUnknown_8118194
_080A86C4: .4byte 0x0000ffff
thumb_func_end GroundLives_Delete
thumb_func_start sub_80A86C8
sub_80A86C8:
push {r4,r5,lr}
adds r5, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A8708
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r4, r0, r1
movs r1, 0x2
ldrsh r0, [r4, r1]
movs r3, 0x1
negs r3, r3
cmp r0, r3
beq _080A8744
movs r2, 0x9E
lsls r2, 1
adds r1, r4, r2
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080A870C
movs r0, 0xC0
lsls r0, 6
ands r0, r5
cmp r0, 0
beq _080A872E
bl sub_80AB5A4
b _080A872E
.align 2, 0
_080A8708: .4byte gUnknown_3001B84
_080A870C:
movs r0, 0x80
lsls r0, 5
ands r0, r5
cmp r0, 0
beq _080A872E
ldr r2, _080A874C
movs r0, 0
ldrsh r1, [r1, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, [r2]
adds r1, r0
str r3, [r1, 0x8]
movs r0, 0
str r0, [r1]
str r0, [r1, 0x4]
_080A872E:
movs r1, 0x8E
lsls r1, 1
adds r0, r4, r1
ldr r1, [r0]
orrs r1, r5
str r1, [r0]
movs r2, 0xB8
lsls r2, 1
adds r0, r4, r2
bl sub_80A6688
_080A8744:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A874C: .4byte gUnknown_3001B80
thumb_func_end sub_80A86C8
thumb_func_start sub_80A8750
sub_80A8750:
push {r4,r5,lr}
adds r5, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A87A8
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r4, r0, r1
movs r0, 0x2
ldrsh r1, [r4, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A87A2
movs r1, 0x9E
lsls r1, 1
adds r0, r4, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080A878C
movs r0, 0xC0
lsls r0, 6
ands r0, r5
cmp r0, 0
beq _080A878C
bl sub_80AB5A4
_080A878C:
movs r1, 0x8E
lsls r1, 1
adds r0, r4, r1
ldr r1, [r0]
bics r1, r5
str r1, [r0]
movs r2, 0xB8
lsls r2, 1
adds r0, r4, r2
bl sub_80A6688
_080A87A2:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A87A8: .4byte gUnknown_3001B84
thumb_func_end sub_80A8750
thumb_func_start sub_80A87AC
sub_80A87AC:
push {lr}
adds r3, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A87DC
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A87D8
movs r1, 0x90
lsls r1, 1
adds r0, r2, r1
adds r1, r3, 0
bl sub_809CD8C
_080A87D8:
pop {r0}
bx r0
.align 2, 0
_080A87DC: .4byte gUnknown_3001B84
thumb_func_end sub_80A87AC
thumb_func_start sub_80A87E0
sub_80A87E0:
push {r4,lr}
adds r3, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A8820
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r4, r0, r1
movs r0, 0x2
ldrsh r1, [r4, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A8824
movs r0, 0x7
movs r1, 0
adds r2, r3, 0
bl sub_809B1C0
lsls r0, 24
cmp r0, 0
beq _080A8824
movs r1, 0x90
lsls r1, 1
adds r0, r4, r1
movs r1, 0x5
bl sub_809CD8C
movs r0, 0x1
b _080A8826
.align 2, 0
_080A8820: .4byte gUnknown_3001B84
_080A8824:
movs r0, 0
_080A8826:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A87E0
thumb_func_start sub_80A882C
sub_80A882C:
push {lr}
lsls r0, 16
asrs r0, 16
ldr r2, _080A8850
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A8854
movs r0, 0
b _080A8858
.align 2, 0
_080A8850: .4byte gUnknown_3001B84
_080A8854:
adds r0, r2, 0
adds r0, 0x38
_080A8858:
pop {r1}
bx r1
thumb_func_end sub_80A882C
thumb_func_start sub_80A885C
sub_80A885C:
push {r4,lr}
adds r4, r1, 0
lsls r0, 16
asrs r0, 16
lsls r2, 16
asrs r3, r2, 16
ldr r2, _080A8884
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A8888
movs r0, 0
b _080A8898
.align 2, 0
_080A8884: .4byte gUnknown_3001B84
_080A8888:
adds r0, r2, 0
adds r0, 0x38
adds r1, r4, 0
adds r2, r3, 0
bl sub_809D6E4
lsls r0, 24
lsrs r0, 24
_080A8898:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A885C
thumb_func_start sub_80A88A0
sub_80A88A0:
push {lr}
lsls r0, 16
asrs r0, 16
ldr r2, _080A88C4
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A88C8
movs r0, 0
b _080A88D4
.align 2, 0
_080A88C4: .4byte gUnknown_3001B84
_080A88C8:
adds r0, r2, 0
adds r0, 0x38
bl sub_809D678
lsls r0, 24
lsrs r0, 24
_080A88D4:
pop {r1}
bx r1
thumb_func_end sub_80A88A0
thumb_func_start GroundLives_ExecuteScript
GroundLives_ExecuteScript:
push {r4-r7,lr}
sub sp, 0x4
adds r4, r0, 0
adds r7, r1, 0
adds r6, r2, 0
lsls r4, 16
asrs r4, 16
ldr r1, _080A8914
lsls r0, r4, 5
subs r0, r4
lsls r0, 4
ldr r1, [r1]
adds r5, r1, r0
ldr r1, _080A8918
movs r0, 0x2
ldrsh r3, [r5, r0]
str r6, [sp]
movs r0, 0
adds r2, r4, 0
bl Log
movs r0, 0x2
ldrsh r1, [r5, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A891C
movs r0, 0
b _080A8934
.align 2, 0
_080A8914: .4byte gUnknown_3001B84
_080A8918: .4byte gUnknown_81181B0
_080A891C:
adds r0, r5, 0
adds r0, 0x38
ldr r3, _080A893C
adds r1, r7, 0
adds r2, r6, 0
bl GroundScript_ExecutePP
movs r0, 0xAE
lsls r0, 1
adds r1, r5, r0
movs r0, 0x1
strb r0, [r1]
_080A8934:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080A893C: .4byte gUnknown_81181F4
thumb_func_end GroundLives_ExecuteScript
thumb_func_start _ExecutePlayerScript
_ExecutePlayerScript:
push {r4,r5,lr}
adds r3, r0, 0
adds r5, r1, 0
adds r4, r2, 0
movs r0, 0xAF
lsls r0, 1
adds r1, r3, r0
movs r2, 0
movs r0, 0xC0
lsls r0, 2
strh r0, [r1]
movs r0, 0xB0
lsls r0, 1
adds r1, r3, r0
movs r0, 0x1
strh r0, [r1]
movs r1, 0xB2
lsls r1, 1
adds r0, r3, r1
str r2, [r0]
movs r0, 0xB4
lsls r0, 1
adds r2, r3, r0
movs r1, 0
ldrsh r0, [r2, r1]
ldr r1, _080A898C
cmp r0, r1
beq _080A8984
strh r1, [r2]
movs r0, 0xAE
lsls r0, 1
adds r1, r3, r0
movs r0, 0x1
strb r0, [r1]
_080A8984:
cmp r4, 0
bne _080A8990
movs r0, 0
b _080A89A2
.align 2, 0
_080A898C: .4byte 0x00000807
_080A8990:
adds r0, r3, 0
adds r0, 0x38
ldr r3, _080A89A8
adds r1, r5, 0
adds r2, r4, 0
bl GroundScript_ExecutePP
lsls r0, 24
lsrs r0, 24
_080A89A2:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080A89A8: .4byte gUnknown_8118218
thumb_func_end _ExecutePlayerScript
thumb_func_start sub_80A89AC
sub_80A89AC:
push {r4,lr}
lsls r0, 16
asrs r0, 16
ldr r4, _080A89CC
lsls r3, r0, 5
subs r3, r0
lsls r3, 4
ldr r0, [r4]
adds r0, r3
bl _ExecutePlayerScript
lsls r0, 24
lsrs r0, 24
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A89CC: .4byte gUnknown_3001B84
thumb_func_end sub_80A89AC
thumb_func_start GroundLives_ExecutePlayerScriptActionLives
GroundLives_ExecutePlayerScriptActionLives:
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 16
asrs r2, r0, 16
lsls r1, 16
asrs r4, r1, 16
cmp r2, 0
blt _080A8A50
cmp r4, 0
blt _080A8A50
ldr r1, _080A8A48
lsls r0, r2, 5
subs r0, r2
lsls r0, 4
ldr r1, [r1]
adds r5, r1, r0
lsls r0, r4, 5
subs r0, r4
lsls r0, 4
adds r1, r0
movs r2, 0x2
ldrsh r0, [r5, r2]
movs r2, 0x1
negs r2, r2
cmp r0, r2
beq _080A8A50
movs r3, 0x2
ldrsh r0, [r1, r3]
cmp r0, r2
beq _080A8A50
adds r6, r1, 0
adds r6, 0x38
adds r0, r6, 0
mov r1, sp
movs r2, 0x2
bl sub_809D6E4
lsls r0, 24
cmp r0, 0
beq _080A8A50
movs r1, 0x1
lsls r0, r4, 16
orrs r0, r1
str r0, [sp, 0xC]
adds r1, r5, 0
adds r1, 0x40
ldr r3, _080A8A4C
adds r0, r6, 0
movs r2, 0x3
bl sub_809D8C0
add r1, sp, 0xC
adds r0, r5, 0
mov r2, sp
bl _ExecutePlayerScript
lsls r0, 24
lsrs r0, 24
b _080A8A52
.align 2, 0
_080A8A48: .4byte gUnknown_3001B84
_080A8A4C: .4byte gUnknown_8118250
_080A8A50:
movs r0, 0
_080A8A52:
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end GroundLives_ExecutePlayerScriptActionLives
thumb_func_start sub_80A8A5C
sub_80A8A5C:
push {r4-r6,lr}
sub sp, 0x1C
lsls r0, 16
asrs r2, r0, 16
lsls r1, 16
asrs r5, r1, 16
cmp r2, 0
blt _080A8AC0
cmp r5, 0
blt _080A8AC0
ldr r1, _080A8ABC
lsls r0, r2, 5
subs r0, r2
lsls r0, 4
ldr r1, [r1]
adds r6, r1, r0
adds r0, r5, 0
mov r1, sp
movs r2, 0x2
bl sub_80AC274
lsls r0, 24
cmp r0, 0
beq _080A8AC0
movs r1, 0x2
lsls r0, r5, 16
orrs r0, r1
str r0, [sp, 0x18]
add r4, sp, 0xC
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x3
bl sub_80AC274
adds r1, r6, 0
adds r1, 0x40
adds r0, r5, 0
adds r2, r4, 0
bl GroundObject_ExecuteScript
add r1, sp, 0x18
adds r0, r6, 0
mov r2, sp
bl _ExecutePlayerScript
lsls r0, 24
lsrs r0, 24
b _080A8AC2
.align 2, 0
_080A8ABC: .4byte gUnknown_3001B84
_080A8AC0:
movs r0, 0
_080A8AC2:
add sp, 0x1C
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80A8A5C
thumb_func_start sub_80A8ACC
sub_80A8ACC:
push {r4,lr}
sub sp, 0xC
lsls r0, 16
asrs r2, r0, 16
lsls r1, 16
asrs r3, r1, 16
cmp r2, 0
blt _080A8B10
cmp r3, 0
blt _080A8B10
ldr r1, _080A8B0C
lsls r0, r2, 5
subs r0, r2
lsls r0, 4
ldr r1, [r1]
adds r4, r1, r0
adds r0, r3, 0
mov r1, sp
bl sub_80ADC64
lsls r0, 24
cmp r0, 0
beq _080A8B10
adds r0, r4, 0
movs r1, 0
mov r2, sp
bl _ExecutePlayerScript
lsls r0, 24
lsrs r0, 24
b _080A8B12
.align 2, 0
_080A8B0C: .4byte gUnknown_3001B84
_080A8B10:
movs r0, 0
_080A8B12:
add sp, 0xC
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A8ACC
thumb_func_start sub_80A8B1C
sub_80A8B1C:
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
asrs r7, r0, 16
ldr r0, _080A8B70
ldr r4, [r0]
movs r5, 0
movs r0, 0x1
negs r0, r0
mov r8, r0
movs r6, 0x80
lsls r6, 9
_080A8B36:
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, r8
beq _080A8B4E
adds r0, r4, 0
adds r0, 0x38
adds r1, r7, 0
bl sub_809D968
orrs r5, r0
lsls r0, r5, 24
lsrs r5, r0, 24
_080A8B4E:
adds r0, r6, 0
movs r1, 0x80
lsls r1, 9
adds r6, r1
asrs r0, 16
movs r1, 0xF8
lsls r1, 1
adds r4, r1
cmp r0, 0x17
ble _080A8B36
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080A8B70: .4byte gUnknown_3001B84
thumb_func_end sub_80A8B1C
thumb_func_start sub_80A8B74
sub_80A8B74:
push {r4-r7,lr}
ldr r0, _080A8BB8
ldr r4, [r0]
movs r5, 0
movs r7, 0x1
negs r7, r7
movs r6, 0x80
lsls r6, 9
_080A8B84:
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, r7
beq _080A8B9A
adds r0, r4, 0
adds r0, 0x38
bl sub_809D92C
orrs r5, r0
lsls r0, r5, 24
lsrs r5, r0, 24
_080A8B9A:
adds r0, r6, 0
movs r1, 0x80
lsls r1, 9
adds r6, r1
asrs r0, 16
movs r1, 0xF8
lsls r1, 1
adds r4, r1
cmp r0, 0x17
ble _080A8B84
adds r0, r5, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080A8BB8: .4byte gUnknown_3001B84
thumb_func_end sub_80A8B74
thumb_func_start sub_80A8BBC
sub_80A8BBC:
lsls r0, 16
asrs r0, 16
ldr r2, _080A8BD4
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r0, r1
movs r1, 0x2
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_080A8BD4: .4byte gUnknown_3001B84
thumb_func_end sub_80A8BBC
thumb_func_start sub_80A8BD8
sub_80A8BD8:
lsls r0, 16
asrs r0, 16
ldr r3, _080A8BF8
lsls r2, r0, 5
subs r2, r0
lsls r2, 4
ldr r0, [r3]
adds r0, r2
movs r3, 0x8E
lsls r3, 1
adds r2, r0, r3
ldr r2, [r2]
str r2, [r1]
movs r1, 0x2
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_080A8BF8: .4byte gUnknown_3001B84
thumb_func_end sub_80A8BD8
thumb_func_start sub_80A8BFC
sub_80A8BFC:
push {lr}
lsls r0, 16
asrs r0, 16
ldr r2, _080A8C20
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A8C24
movs r0, 0
b _080A8C28
.align 2, 0
_080A8C20: .4byte gUnknown_3001B84
_080A8C24:
movs r1, 0x8
ldrsh r0, [r2, r1]
_080A8C28:
pop {r1}
bx r1
thumb_func_end sub_80A8BFC
thumb_func_start sub_80A8C2C
sub_80A8C2C:
push {r4,lr}
sub sp, 0x4
mov r1, sp
strh r0, [r1]
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl sub_80A7DDC
movs r1, 0
ldrsh r0, [r4, r1]
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A8C2C
thumb_func_start sub_80A8C4C
sub_80A8C4C:
push {r4,r5,lr}
adds r5, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A8C80
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r4, r0, r1
movs r0, 0x2
ldrsh r1, [r4, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A8C90
adds r0, r1, 0
bl sub_80A8D54
adds r1, r0, 0
cmp r1, 0
beq _080A8C84
ldr r0, [r1, 0x4]
str r0, [r5]
b _080A8C8A
.align 2, 0
_080A8C80: .4byte gUnknown_3001B84
_080A8C84:
movs r0, 0x63
strb r0, [r5]
strb r1, [r5, 0x1]
_080A8C8A:
movs r1, 0x8
ldrsh r0, [r4, r1]
b _080A8C92
_080A8C90:
movs r0, 0
_080A8C92:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A8C4C
thumb_func_start sub_80A8C98
sub_80A8C98:
push {r4,lr}
lsls r0, 16
asrs r0, 16
ldr r2, _080A8CD4
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r3, r0, r1
movs r0, 0x2
ldrsh r1, [r3, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A8CE8
ldr r1, _080A8CD8
ldrh r2, [r1]
movs r4, 0
ldrsh r0, [r1, r4]
cmp r0, 0
beq _080A8CE8
movs r0, 0x8
ldrsh r3, [r3, r0]
_080A8CC6:
lsls r0, r2, 16
asrs r0, 16
cmp r0, r3
bne _080A8CDC
movs r0, 0x1
b _080A8CEA
.align 2, 0
_080A8CD4: .4byte gUnknown_3001B84
_080A8CD8: .4byte gUnknown_8117FCE
_080A8CDC:
adds r1, 0x2
ldrh r2, [r1]
movs r4, 0
ldrsh r0, [r1, r4]
cmp r0, 0
bne _080A8CC6
_080A8CE8:
movs r0, 0
_080A8CEA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A8C98
thumb_func_start sub_80A8CF0
sub_80A8CF0:
push {r4,lr}
lsls r0, 16
asrs r3, r0, 16
ldr r1, _080A8CFC
b _080A8D0E
.align 2, 0
_080A8CFC: .4byte gUnknown_8117FCE
_080A8D00:
lsls r0, r2, 16
asrs r0, 16
cmp r0, r3
bne _080A8D0C
movs r0, 0x1
b _080A8D1A
_080A8D0C:
adds r1, 0x2
_080A8D0E:
ldrh r2, [r1]
movs r4, 0
ldrsh r0, [r1, r4]
cmp r0, 0
bne _080A8D00
movs r0, 0
_080A8D1A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A8CF0
thumb_func_start sub_80A8D20
sub_80A8D20:
push {lr}
movs r0, 0
bl sub_80A7AE8
lsls r0, 16
asrs r0, 16
ldr r2, _080A8D50
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r0, r1
movs r1, 0x90
lsls r1, 1
adds r0, r1
bl sub_809CDB8
movs r1, 0
cmp r0, 0x1
bne _080A8D4A
movs r1, 0x1
_080A8D4A:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_080A8D50: .4byte gUnknown_3001B84
thumb_func_end sub_80A8D20
thumb_func_start sub_80A8D54
sub_80A8D54:
push {r4,r5,lr}
sub sp, 0x14
mov r1, sp
strh r0, [r1]
mov r0, sp
bl sub_80A7B94
mov r0, sp
ldrh r1, [r0]
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
beq _080A8D76
cmp r0, 0x6
beq _080A8D76
cmp r0, 0x21
bne _080A8D7C
_080A8D76:
bl sub_808D3BC
b _080A8E94
_080A8D7C:
cmp r0, 0x2
beq _080A8D88
cmp r0, 0x7
beq _080A8D88
cmp r0, 0x22
bne _080A8D8E
_080A8D88:
bl sub_808D3F8
b _080A8E94
_080A8D8E:
cmp r0, 0x3
beq _080A8D9A
cmp r0, 0x8
beq _080A8D9A
cmp r0, 0x23
bne _080A8DA0
_080A8D9A:
bl GetPlayerPokemonStruct
b _080A8E94
_080A8DA0:
adds r0, r1, 0
subs r0, 0xA
lsls r0, 16
lsrs r0, 16
cmp r0, 0x3
bhi _080A8DF8
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
adds r5, r0, 0
subs r5, 0xA
bl sub_8098F88
lsls r0, 24
cmp r0, 0
bne _080A8E92
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A8DD6
add r4, sp, 0x4
adds r0, r4, 0
bl sub_808D6A4
b _080A8DDE
_080A8DD6:
add r4, sp, 0x4
adds r0, r4, 0
bl sub_808D654
_080A8DDE:
cmp r5, r0
bge _080A8E92
ldr r2, _080A8DF4
lsls r0, r5, 2
adds r0, r4, r0
ldr r1, [r0]
movs r0, 0x58
muls r1, r0
ldr r0, [r2]
adds r0, r1
b _080A8E94
.align 2, 0
_080A8DF4: .4byte gRecruitedPokemonRef
_080A8DF8:
adds r0, r1, 0
subs r0, 0xE
lsls r0, 16
lsrs r0, 16
cmp r0, 0xF
bhi _080A8E92
movs r0, 0
movs r1, 0x10
bl sub_8001658
lsls r0, 16
asrs r0, 16
bl sub_8002658
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _080A8E92
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
adds r5, r0, 0
subs r5, 0xE
add r4, sp, 0x4
adds r0, r1, 0
adds r1, r4, 0
movs r2, 0
movs r3, 0
bl sub_8092638
movs r1, 0
ldrsh r0, [r4, r1]
cmp r5, r0
bge _080A8E92
ldr r2, _080A8E6C
ldr r0, [r4, 0x8]
adds r0, r5
movs r1, 0x58
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
movs r0, 0x9
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080A8E70
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080A8E92
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _080A8E92
adds r0, r4, 0
b _080A8E94
.align 2, 0
_080A8E6C: .4byte gRecruitedPokemonRef
_080A8E70:
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080A8E92
ldrb r0, [r4, 0x2]
cmp r0, 0
bne _080A8E92
movs r1, 0
ldrb r0, [r4, 0x4]
cmp r0, 0x41
bne _080A8E8A
movs r1, 0x1
_080A8E8A:
cmp r1, 0
bne _080A8E92
adds r0, r4, 0
b _080A8E94
_080A8E92:
movs r0, 0
_080A8E94:
add sp, 0x14
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A8D54
thumb_func_start sub_80A8E9C
sub_80A8E9C:
push {lr}
lsls r0, 16
asrs r0, 16
ldr r2, _080A8EBC
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r0, r1
movs r1, 0x2
ldrsh r0, [r0, r1]
bl sub_80A8D54
pop {r1}
bx r1
.align 2, 0
_080A8EBC: .4byte gUnknown_3001B84
thumb_func_end sub_80A8E9C
thumb_func_start sub_80A8EC0
sub_80A8EC0:
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
mov r0, sp
strh r1, [r0]
mov r5, sp
adds r5, 0x2
adds r1, r5, 0
bl sub_80A7DDC
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80A8D54
cmp r0, 0
beq _080A8EF0
adds r1, r0, 0
adds r1, 0x4C
adds r0, r4, 0
movs r2, 0xA
bl sub_80922B4
b _080A8F44
_080A8EF0:
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
cmp r1, 0x20
bne _080A8F00
movs r0, 0
ldrsh r1, [r5, r0]
b _080A8F34
_080A8F00:
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A8F3C
mov r0, sp
movs r1, 0
ldrsh r2, [r0, r1]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _080A8F2C
adds r0, r1
cmp r2, 0x34
beq _080A8F20
cmp r2, 0x64
bne _080A8F30
_080A8F20:
ldr r1, [r0, 0x4]
adds r0, r4, 0
bl strcpy
b _080A8F44
.align 2, 0
_080A8F2C: .4byte gUnknown_811E63C
_080A8F30:
movs r2, 0x2
ldrsh r1, [r0, r2]
_080A8F34:
adds r0, r4, 0
bl CopySpeciesNametoBuffer
b _080A8F44
_080A8F3C:
ldr r1, _080A8F4C
adds r0, r4, 0
bl strcpy
_080A8F44:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A8F4C: .4byte gGroundLives_InvalidityText
thumb_func_end sub_80A8EC0
thumb_func_start sub_80A8F50
sub_80A8F50:
push {r4,r5,lr}
sub sp, 0x80
adds r4, r0, 0
adds r5, r2, 0
lsls r1, 16
asrs r1, 16
mov r0, sp
bl sub_80A8EC0
adds r0, r4, 0
mov r1, sp
adds r2, r5, 0
bl BoundedCopyStringtoBuffer
add sp, 0x80
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80A8F50
thumb_func_start sub_80A8F74
sub_80A8F74:
push {lr}
adds r3, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A8F98
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r0, r1
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r0, r3, 0
bl sub_80A8EC0
pop {r0}
bx r0
.align 2, 0
_080A8F98: .4byte gUnknown_3001B84
thumb_func_end sub_80A8F74
thumb_func_start sub_80A8F9C
sub_80A8F9C:
push {lr}
adds r3, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A8FC4
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A8FC8
movs r0, 0
str r0, [r3]
str r0, [r3, 0x4]
b _080A8FD0
.align 2, 0
_080A8FC4: .4byte gUnknown_3001B84
_080A8FC8:
ldr r0, [r2, 0xC]
ldr r1, [r2, 0x10]
str r0, [r3]
str r1, [r3, 0x4]
_080A8FD0:
movs r1, 0x2
ldrsh r0, [r2, r1]
pop {r1}
bx r1
thumb_func_end sub_80A8F9C
thumb_func_start sub_80A8FD8
sub_80A8FD8:
push {lr}
adds r3, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A9000
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A9004
movs r0, 0
str r0, [r3]
b _080A901E
.align 2, 0
_080A9000: .4byte gUnknown_3001B84
_080A9004:
movs r1, 0xA2
lsls r1, 1
adds r0, r2, r1
ldr r0, [r0]
ldr r1, [r2, 0x14]
adds r0, r1
str r0, [r3]
movs r1, 0xA4
lsls r1, 1
adds r0, r2, r1
ldr r0, [r0]
ldr r1, [r2, 0x18]
adds r0, r1
_080A901E:
str r0, [r3, 0x4]
movs r1, 0x2
ldrsh r0, [r2, r1]
pop {r1}
bx r1
thumb_func_end sub_80A8FD8
thumb_func_start sub_80A9028
sub_80A9028:
push {r4,lr}
lsls r0, 16
asrs r0, 16
ldr r3, _080A904C
lsls r2, r0, 5
subs r2, r0
lsls r2, 4
ldr r4, [r3]
adds r4, r2
adds r0, r4, 0
bl sub_80A9F20
movs r1, 0x2
ldrsh r0, [r4, r1]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A904C: .4byte gUnknown_3001B84
thumb_func_end sub_80A9028
thumb_func_start sub_80A9050
sub_80A9050:
push {r4,lr}
adds r4, r1, 0
lsls r0, 16
asrs r0, 16
ldr r2, _080A9078
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
adds r3, r0, 0
cmp r1, r0
bne _080A907C
strb r3, [r4]
b _080A9086
.align 2, 0
_080A9078: .4byte gUnknown_3001B84
_080A907C:
movs r1, 0xA1
lsls r1, 1
adds r0, r2, r1
ldrb r0, [r0]
strb r0, [r4]
_080A9086:
movs r1, 0x2
ldrsh r0, [r2, r1]
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A9050
thumb_func_start sub_80A9090
sub_80A9090:
push {lr}
lsls r0, 16
asrs r0, 16
lsls r1, 24
asrs r3, r1, 24
ldr r2, _080A90C4
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r2, r0, r1
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A90BA
movs r1, 0xA1
lsls r1, 1
adds r0, r2, r1
strb r3, [r0]
_080A90BA:
movs r1, 0x2
ldrsh r0, [r2, r1]
pop {r1}
bx r1
.align 2, 0
_080A90C4: .4byte gUnknown_3001B84
thumb_func_end sub_80A9090
thumb_func_start sub_80A90C8
sub_80A90C8:
lsls r0, 16
asrs r0, 16
ldr r2, _080A90E4
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r0, r1
movs r1, 0xA0
lsls r1, 1
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_080A90E4: .4byte gUnknown_3001B84
thumb_func_end sub_80A90C8
thumb_func_start sub_80A90E8
sub_80A90E8:
push {r4,r5,lr}
sub sp, 0x10
lsls r0, 16
asrs r2, r0, 16
lsls r1, 16
asrs r3, r1, 16
cmp r2, r3
beq _080A9196
ldr r1, _080A916C
lsls r0, r2, 5
subs r0, r2
lsls r0, 4
ldr r1, [r1]
adds r5, r1, r0
lsls r0, r3, 5
subs r0, r3
lsls r0, 4
adds r4, r1, r0
movs r1, 0x2
ldrsh r0, [r5, r1]
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _080A9196
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, r1
beq _080A9196
movs r3, 0xA2
lsls r3, 1
adds r0, r5, r3
ldr r0, [r0]
ldr r1, [r5, 0x14]
adds r0, r1
str r0, [sp]
movs r2, 0xA4
lsls r2, 1
adds r0, r5, r2
ldr r0, [r0]
ldr r1, [r5, 0x18]
adds r0, r1
str r0, [sp, 0x4]
adds r3, r4, r3
ldr r0, [r3]
ldr r1, [r4, 0x14]
adds r0, r1
str r0, [sp, 0x8]
adds r2, r4, r2
ldr r0, [r2]
ldr r1, [r4, 0x18]
adds r0, r1
add r2, sp, 0x8
str r0, [r2, 0x4]
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0x24
bgt _080A9170
adds r1, r5, 0
adds r1, 0xC
adds r3, r4, 0
adds r3, 0xC
mov r0, sp
bl sub_8002DF0
b _080A917E
.align 2, 0
_080A916C: .4byte gUnknown_3001B84
_080A9170:
adds r1, r5, 0
adds r1, 0xC
adds r3, r4, 0
adds r3, 0xC
mov r0, sp
bl sub_8002D54
_080A917E:
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080A9196
movs r2, 0xA1
lsls r2, 1
adds r0, r5, r2
strb r1, [r0]
movs r0, 0x1
b _080A9198
_080A9196:
movs r0, 0
_080A9198:
add sp, 0x10
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A90E8
thumb_func_start sub_80A91A0
sub_80A91A0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
lsls r0, 16
asrs r2, r0, 16
lsls r1, 16
asrs r4, r1, 16
cmp r2, r4
beq _080A928E
ldr r1, _080A9260
lsls r0, r2, 5
subs r0, r2
lsls r0, 4
ldr r1, [r1]
adds r7, r1, r0
lsls r0, r4, 5
subs r0, r4
lsls r0, 4
adds r1, r0
mov r8, r1
movs r1, 0x2
ldrsh r0, [r7, r1]
movs r2, 0x1
negs r2, r2
mov r10, r2
cmp r0, r10
beq _080A928E
mov r3, r8
movs r1, 0x2
ldrsh r0, [r3, r1]
cmp r0, r10
beq _080A928E
movs r3, 0xA2
lsls r3, 1
adds r0, r7, r3
ldr r0, [r0]
ldr r1, [r7, 0x14]
adds r0, r1
str r0, [sp]
movs r2, 0xA4
lsls r2, 1
adds r0, r7, r2
ldr r0, [r0]
ldr r1, [r7, 0x18]
adds r0, r1
str r0, [sp, 0x4]
add r3, r8
ldr r0, [r3]
mov r3, r8
ldr r1, [r3, 0x14]
adds r0, r1
str r0, [sp, 0x8]
add r2, r8
ldr r0, [r2]
ldr r1, [r3, 0x18]
adds r0, r1
add r4, sp, 0x8
str r0, [r4, 0x4]
adds r5, r7, 0
adds r5, 0xC
mov r6, r8
adds r6, 0xC
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
adds r3, r6, 0
bl sub_8002DF0
lsls r0, 24
asrs r0, 24
mov r9, r0
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
adds r3, r6, 0
bl sub_8002D54
lsls r0, 24
asrs r1, r0, 24
cmp r9, r10
beq _080A928E
cmp r1, r10
beq _080A928E
movs r2, 0x2
ldrsh r0, [r7, r2]
cmp r0, 0x24
bgt _080A9264
movs r3, 0xA1
lsls r3, 1
adds r0, r7, r3
mov r2, r9
strb r2, [r0]
b _080A926C
.align 2, 0
_080A9260: .4byte gUnknown_3001B84
_080A9264:
movs r3, 0xA1
lsls r3, 1
adds r0, r7, r3
strb r1, [r0]
_080A926C:
mov r2, r8
movs r3, 0x2
ldrsh r0, [r2, r3]
cmp r0, 0x25
bgt _080A927A
mov r0, r9
b _080A927C
_080A927A:
adds r0, r1, 0
_080A927C:
movs r1, 0x5
bl sub_8002984
movs r1, 0xA1
lsls r1, 1
add r1, r8
strb r0, [r1]
movs r0, 0x1
b _080A9290
_080A928E:
movs r0, 0
_080A9290:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A91A0
thumb_func_start sub_80A92A0
sub_80A92A0:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r9, r1
adds r4, r2, 0
lsls r0, 16
asrs r6, r0, 16
ldr r0, _080A931C
ldr r0, [r0]
mov r12, r0
movs r2, 0
movs r0, 0x1
negs r0, r0
mov r8, r0
movs r5, 0x80
lsls r5, 9
_080A92C2:
cmp r2, r6
beq _080A9320
mov r1, r12
movs r7, 0x2
ldrsh r0, [r1, r7]
cmp r0, r8
beq _080A9320
movs r0, 0x8E
lsls r0, 1
add r0, r12
ldr r0, [r0]
mov r1, r9
ands r0, r1
cmp r0, 0
beq _080A9320
movs r0, 0xA2
lsls r0, 1
add r0, r12
ldr r1, [r0]
ldr r0, [r3]
cmp r1, r0
bge _080A9320
movs r0, 0xA6
lsls r0, 1
add r0, r12
ldr r1, [r0]
ldr r0, [r4]
cmp r1, r0
ble _080A9320
movs r0, 0xA4
lsls r0, 1
add r0, r12
ldr r1, [r0]
ldr r0, [r3, 0x4]
cmp r1, r0
bge _080A9320
movs r0, 0xA8
lsls r0, 1
add r0, r12
ldr r1, [r0]
ldr r0, [r4, 0x4]
cmp r1, r0
ble _080A9320
adds r0, r2, 0
b _080A9338
.align 2, 0
_080A931C: .4byte gUnknown_3001B84
_080A9320:
adds r0, r5, 0
movs r7, 0x80
lsls r7, 9
adds r5, r7
asrs r2, r0, 16
movs r0, 0xF8
lsls r0, 1
add r12, r0
cmp r2, 0x17
ble _080A92C2
movs r0, 0x1
negs r0, r0
_080A9338:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A92A0
thumb_func_start sub_80A9344
sub_80A9344:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r9, r1
str r2, [sp]
adds r5, r3, 0
lsls r0, 16
asrs r0, 16
mov r8, r0
ldr r0, _080A93C4
ldr r0, [r0]
mov r12, r0
movs r4, 0
movs r0, 0x1
negs r0, r0
mov r10, r0
movs r7, 0x80
lsls r7, 9
_080A936E:
cmp r4, r8
beq _080A93C8
mov r1, r12
movs r2, 0x2
ldrsh r0, [r1, r2]
cmp r0, r10
beq _080A93C8
movs r0, 0x8E
lsls r0, 1
add r0, r12
ldr r0, [r0]
mov r6, r9
ands r0, r6
cmp r0, 0
beq _080A93C8
movs r0, 0xA2
lsls r0, 1
add r0, r12
ldr r1, [r0]
mov r6, r12
ldr r0, [r6, 0x14]
adds r2, r1, r0
movs r0, 0xA4
lsls r0, 1
add r0, r12
ldr r1, [r0]
ldr r0, [r6, 0x18]
adds r3, r1, r0
ldr r0, [r5]
cmp r2, r0
bge _080A93C8
ldr r1, [sp]
ldr r0, [r1]
cmp r2, r0
ble _080A93C8
ldr r0, [r5, 0x4]
cmp r3, r0
bge _080A93C8
ldr r0, [r1, 0x4]
cmp r3, r0
ble _080A93C8
adds r0, r4, 0
b _080A93E0
.align 2, 0
_080A93C4: .4byte gUnknown_3001B84
_080A93C8:
adds r0, r7, 0
movs r2, 0x80
lsls r2, 9
adds r7, r2
asrs r4, r0, 16
movs r6, 0xF8
lsls r6, 1
add r12, r6
cmp r4, 0x17
ble _080A936E
movs r0, 0x1
negs r0, r0
_080A93E0:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A9344
thumb_func_start sub_80A93F0
sub_80A93F0:
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 16
asrs r0, 16
lsls r1, 24
lsrs r6, r1, 24
ldr r2, _080A947C
lsls r1, r0, 5
subs r1, r0
lsls r1, 4
ldr r0, [r2]
adds r0, r1
mov r12, r0
movs r0, 0xA2
lsls r0, 1
add r0, r12
ldr r0, [r0]
cmp r0, 0
bge _080A941A
ldr r1, _080A9480
adds r0, r1
_080A941A:
asrs r5, r0, 11
str r5, [sp]
movs r0, 0xA4
lsls r0, 1
add r0, r12
ldr r0, [r0]
cmp r0, 0
bge _080A942E
ldr r7, _080A9480
adds r0, r7
_080A942E:
asrs r4, r0, 11
str r4, [sp, 0x4]
movs r0, 0xA6
lsls r0, 1
add r0, r12
ldr r0, [r0]
subs r1, r0, 0x1
cmp r1, 0
bge _080A9444
ldr r7, _080A9484
adds r1, r0, r7
_080A9444:
asrs r2, r1, 11
movs r0, 0xA8
lsls r0, 1
add r0, r12
ldr r0, [r0]
subs r1, r0, 0x1
cmp r1, 0
bge _080A9458
ldr r7, _080A9484
adds r1, r0, r7
_080A9458:
asrs r3, r1, 11
subs r0, r2, r5
adds r0, 0x1
str r0, [sp, 0x8]
subs r0, r3, r4
adds r0, 0x1
add r2, sp, 0x8
str r0, [r2, 0x4]
adds r0, r6, 0
mov r1, sp
bl sub_80A5934
lsls r0, 24
lsrs r0, 24
add sp, 0x10
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080A947C: .4byte gUnknown_3001B84
_080A9480: .4byte 0x000007ff
_080A9484: .4byte 0x000007fe
thumb_func_end sub_80A93F0
thumb_func_start sub_80A9488
sub_80A9488:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
adds r5, r0, 0
adds r7, r1, 0
mov r8, r2
ldr r0, [r7]
cmp r0, 0
bge _080A94A0
ldr r1, _080A9528
adds r0, r1
_080A94A0:
asrs r0, 11
mov r12, r0
str r0, [sp]
ldr r0, [r7, 0x4]
cmp r0, 0
bge _080A94B0
ldr r3, _080A9528
adds r0, r3
_080A94B0:
asrs r4, r0, 11
str r4, [sp, 0x4]
mov r6, r8
ldr r3, [r6]
subs r0, r3, 0x1
cmp r0, 0
bge _080A94C2
ldr r6, _080A952C
adds r0, r3, r6
_080A94C2:
asrs r1, r0, 11
mov r0, r8
ldr r3, [r0, 0x4]
subs r0, r3, 0x1
cmp r0, 0
bge _080A94D2
ldr r6, _080A952C
adds r0, r3, r6
_080A94D2:
asrs r2, r0, 11
mov r3, r12
subs r0, r1, r3
adds r0, 0x1
str r0, [sp, 0x8]
subs r0, r2, r4
adds r0, 0x1
add r2, sp, 0x8
str r0, [r2, 0x4]
movs r6, 0x8E
lsls r6, 1
adds r0, r5, r6
ldr r0, [r0]
movs r1, 0x1
ands r0, r1
adds r4, r2, 0
cmp r0, 0
beq _080A9504
mov r0, sp
adds r1, r4, 0
bl sub_80A585C
lsls r0, 24
cmp r0, 0
bne _080A9522
_080A9504:
movs r1, 0x8E
lsls r1, 1
adds r0, r5, r1
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _080A9530
mov r0, sp
adds r1, r4, 0
bl sub_80A58C8
lsls r0, 24
cmp r0, 0
beq _080A9530
_080A9522:
movs r0, 0x1
b _080A95A0
.align 2, 0
_080A9528: .4byte 0x000007ff
_080A952C: .4byte 0x000007fe
_080A9530:
movs r3, 0x8E
lsls r3, 1
adds r0, r5, r3
ldr r0, [r0]
movs r1, 0x4
ands r0, r1
cmp r0, 0
beq _080A9556
movs r6, 0
ldrsh r0, [r5, r6]
adds r2, r7, 0
mov r3, r8
bl sub_80A92A0
lsls r0, 16
cmp r0, 0
blt _080A9556
movs r0, 0x4
b _080A95A0
_080A9556:
movs r1, 0x8E
lsls r1, 1
adds r0, r5, r1
ldr r0, [r0]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _080A957A
movs r0, 0x4
adds r1, r7, 0
mov r2, r8
bl sub_80AC4C8
lsls r0, 16
cmp r0, 0
blt _080A957A
movs r0, 0x8
b _080A95A0
_080A957A:
movs r3, 0x8E
lsls r3, 1
adds r0, r5, r3
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080A959E
movs r0, 0x40
adds r1, r7, 0
mov r2, r8
bl sub_80ADCA0
lsls r0, 16
cmp r0, 0
blt _080A959E
movs r0, 0x10
b _080A95A0
_080A959E:
movs r0, 0
_080A95A0:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A9488
thumb_func_start sub_80A95AC
sub_80A95AC:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
adds r5, r0, 0
adds r7, r1, 0
mov r8, r2
ldr r0, [r7]
cmp r0, 0
bge _080A95C6
ldr r1, _080A96BC
adds r0, r1
_080A95C6:
asrs r0, 11
mov r9, r0
str r0, [sp]
ldr r0, [r7, 0x4]
cmp r0, 0
bge _080A95D6
ldr r2, _080A96BC
adds r0, r2
_080A95D6:
asrs r4, r0, 11
str r4, [sp, 0x4]
mov r6, r8
ldr r3, [r6]
subs r0, r3, 0x1
cmp r0, 0
bge _080A95E8
ldr r6, _080A96C0
adds r0, r3, r6
_080A95E8:
asrs r1, r0, 11
mov r0, r8
ldr r3, [r0, 0x4]
subs r0, r3, 0x1
cmp r0, 0
bge _080A95F8
ldr r6, _080A96C0
adds r0, r3, r6
_080A95F8:
asrs r2, r0, 11
mov r3, r9
subs r0, r1, r3
adds r0, 0x1
str r0, [sp, 0x8]
subs r0, r2, r4
adds r0, 0x1
add r2, sp, 0x8
str r0, [r2, 0x4]
movs r6, 0x8E
lsls r6, 1
adds r0, r5, r6
ldr r0, [r0]
movs r1, 0x1
ands r0, r1
adds r4, r2, 0
cmp r0, 0
beq _080A962C
mov r0, sp
adds r1, r4, 0
bl sub_80A585C
lsls r0, 24
cmp r0, 0
beq _080A962C
b _080A973C
_080A962C:
movs r1, 0x8E
lsls r1, 1
adds r0, r5, r1
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _080A964A
mov r0, sp
adds r1, r4, 0
bl sub_80A58C8
lsls r0, 24
cmp r0, 0
bne _080A973C
_080A964A:
movs r4, 0x8E
lsls r4, 1
adds r0, r5, r4
ldr r0, [r0]
movs r1, 0x4
ands r0, r1
cmp r0, 0
beq _080A96C8
movs r2, 0
ldrsh r0, [r5, r2]
movs r1, 0x44
adds r2, r7, 0
mov r3, r8
bl sub_80A92A0
lsls r0, 16
asrs r2, r0, 16
mov r9, r2
cmp r2, 0
blt _080A96C8
ldr r1, _080A96C4
lsls r0, r2, 5
subs r0, r2
lsls r0, 4
ldr r1, [r1]
adds r6, r1, r0
adds r0, r6, r4
ldr r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080A973C
movs r0, 0x80
lsls r0, 2
ands r1, r0
cmp r1, 0
beq _080A96A8
adds r4, 0x26
adds r0, r5, r4
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0x5
bl sub_8002984
adds r4, r6, r4
strb r0, [r4]
_080A96A8:
movs r3, 0
ldrsh r0, [r5, r3]
mov r1, r9
bl GroundLives_ExecutePlayerScriptActionLives
_080A96B2:
lsls r0, 24
cmp r0, 0
bne _080A9738
b _080A973C
.align 2, 0
_080A96BC: .4byte 0x000007ff
_080A96C0: .4byte 0x000007fe
_080A96C4: .4byte gUnknown_3001B84
_080A96C8:
movs r6, 0x8E
lsls r6, 1
adds r0, r5, r6
ldr r0, [r0]
movs r1, 0x8
ands r0, r1
cmp r0, 0
beq _080A9708
movs r0, 0x44
adds r1, r7, 0
mov r2, r8
bl sub_80AC4C8
lsls r0, 16
asrs r4, r0, 16
cmp r4, 0
blt _080A9708
add r1, sp, 0x10
adds r0, r4, 0
bl sub_80AC3E0
ldr r0, [sp, 0x10]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _080A973C
movs r1, 0
ldrsh r0, [r5, r1]
adds r1, r4, 0
bl sub_80A8A5C
b _080A96B2
_080A9708:
movs r2, 0x8E
lsls r2, 1
adds r0, r5, r2
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080A9740
movs r0, 0x40
adds r1, r7, 0
mov r2, r8
bl sub_80ADCA0
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
blt _080A9740
movs r3, 0
ldrsh r0, [r5, r3]
bl sub_80A8ACC
lsls r0, 24
cmp r0, 0
beq _080A973C
_080A9738:
movs r0, 0x2
b _080A9742
_080A973C:
movs r0, 0x1
b _080A9742
_080A9740:
movs r0, 0
_080A9742:
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80A95AC
thumb_func_start sub_80A9750
sub_80A9750:
push {r4,lr}
mov r12, r0
lsls r1, 16
lsrs r1, 16
adds r4, r1, 0
movs r3, 0xFF
ands r3, r1
movs r2, 0xF0
lsls r2, 4
ands r2, r1
cmp r3, 0
beq _080A9770
movs r0, 0xB0
lsls r0, 1
add r0, r12
strh r3, [r0]
_080A9770:
cmp r2, 0
beq _080A977C
movs r0, 0xAF
lsls r0, 1
add r0, r12
strh r2, [r0]
_080A977C:
movs r2, 0xB0
lsls r2, 1
add r2, r12
ldrh r0, [r2]
cmp r0, 0x1
bne _080A97A8
movs r0, 0x80
lsls r0, 5
cmp r1, r0
beq _080A97B6
movs r0, 0xB2
lsls r0, 1
add r0, r12
ldr r0, [r0]
ldr r2, _080A97A4
cmp r0, 0
bgt _080A97A0
b _080A9E98
_080A97A0:
b _080A97C0
.align 2, 0
_080A97A4: .4byte 0x00000807
_080A97A8:
cmp r0, 0x2
beq _080A97AE
b _080A9E8C
_080A97AE:
movs r0, 0x80
lsls r0, 5
cmp r4, r0
bne _080A97C6
_080A97B6:
movs r1, 0xB2
lsls r1, 1
add r1, r12
movs r0, 0x4
str r0, [r1]
_080A97C0:
movs r2, 0x80
lsls r2, 4
b _080A9E98
_080A97C6:
movs r0, 0xB2
lsls r0, 1
add r0, r12
ldr r0, [r0]
cmp r0, 0
bgt _080A97C0
mov r1, r12
ldrh r0, [r1, 0x8]
subs r0, 0xC
lsls r0, 16
asrs r1, r0, 16
ldr r0, _080A97F0
cmp r1, r0
bls _080A97E4
b _080A9E7E
_080A97E4:
lsls r0, r1, 2
ldr r1, _080A97F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080A97F0: .4byte 0x00000197
_080A97F4: .4byte _080A97F8
.align 2, 0
_080A97F8:
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E68
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E60
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E60
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E60
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E7E
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
.4byte _080A9E58
_080A9E58:
ldr r2, _080A9E5C
b _080A9E98
.align 2, 0
_080A9E5C: .4byte 0x00000807
_080A9E60:
ldr r2, _080A9E64
b _080A9E98
.align 2, 0
_080A9E64: .4byte 0x00000307
_080A9E68:
movs r0, 0xB4
lsls r0, 1
add r0, r12
movs r2, 0
ldrsh r1, [r0, r2]
ldr r2, _080A9E84
cmp r1, r2
beq _080A9E98
ldr r0, _080A9E88
cmp r1, r0
beq _080A9E98
_080A9E7E:
movs r2, 0xC0
lsls r2, 2
b _080A9E98
.align 2, 0
_080A9E84: .4byte 0x00000807
_080A9E88: .4byte 0x00000307
_080A9E8C:
ldr r1, _080A9EC4
ldrh r0, [r2]
lsls r0, 1
adds r0, r1
movs r4, 0
ldrsh r2, [r0, r4]
_080A9E98:
movs r0, 0xE0
lsls r0, 3
ands r0, r2
cmp r0, 0
bne _080A9EEE
movs r0, 0xAF
lsls r0, 1
add r0, r12
ldrh r1, [r0]
movs r0, 0xC0
lsls r0, 2
cmp r1, r0
beq _080A9EEE
cmp r1, r0
bgt _080A9EC8
movs r3, 0x80
lsls r3, 1
cmp r1, r3
beq _080A9EDA
movs r0, 0x80
lsls r0, 2
b _080A9ED4
.align 2, 0
_080A9EC4: .4byte gUnknown_8117F64
_080A9EC8:
movs r3, 0x80
lsls r3, 3
cmp r1, r3
beq _080A9EDE
movs r0, 0x80
lsls r0, 4
_080A9ED4:
cmp r1, r0
beq _080A9EEC
b _080A9EEE
_080A9EDA:
orrs r2, r0
b _080A9EEE
_080A9EDE:
movs r1, 0x80
lsls r1, 2
adds r0, r1, 0
orrs r2, r0
lsls r0, r2, 16
asrs r2, r0, 16
b _080A9EEE
_080A9EEC:
orrs r2, r3
_080A9EEE:
movs r1, 0xB4
lsls r1, 1
add r1, r12
ldrh r3, [r1]
movs r4, 0
ldrsh r0, [r1, r4]
cmp r0, r2
beq _080A9F02
strh r2, [r1]
b _080A9F0C
_080A9F02:
movs r0, 0x80
lsls r0, 5
ands r0, r3
cmp r0, 0
beq _080A9F16
_080A9F0C:
movs r1, 0xAE
lsls r1, 1
add r1, r12
movs r0, 0x1
strb r0, [r1]
_080A9F16:
movs r0, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80A9750
thumb_func_start sub_80A9F20
sub_80A9F20:
push {r4,r5,lr}
sub sp, 0x10
adds r5, r0, 0
ldr r2, [r1]
ldr r4, [r5, 0x14]
subs r0, r2, r4
str r0, [sp]
ldr r3, [r1, 0x4]
ldr r1, [r5, 0x18]
subs r0, r3, r1
str r0, [sp, 0x4]
adds r2, r4
str r2, [sp, 0x8]
adds r3, r1
add r2, sp, 0x8
str r3, [r2, 0x4]
ldr r1, [r5, 0x28]
ldr r0, [sp]
cmp r0, r1
blt _080A9F5E
ldr r1, [r5, 0x30]
ldr r0, [sp, 0x8]
cmp r0, r1
bge _080A9F5E
ldr r1, [r5, 0x2C]
ldr r0, [sp, 0x4]
cmp r0, r1
blt _080A9F5E
ldr r0, [r5, 0x34]
cmp r3, r0
blt _080A9F62
_080A9F5E:
movs r0, 0x1
b _080A9F8C
_080A9F62:
adds r0, r5, 0
mov r1, sp
bl sub_80A9488
cmp r0, 0
bne _080A9F8C
movs r0, 0xA2
lsls r0, 1
adds r2, r5, r0
ldr r0, [sp]
ldr r1, [sp, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
movs r0, 0xA6
lsls r0, 1
adds r2, r5, r0
ldr r0, [sp, 0x8]
ldr r1, [sp, 0xC]
str r0, [r2]
str r1, [r2, 0x4]
movs r0, 0
_080A9F8C:
add sp, 0x10
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80A9F20
thumb_func_start sub_80A9F94
sub_80A9F94:
push {r4-r6,lr}
sub sp, 0x10
adds r4, r0, 0
movs r2, 0xA2
lsls r2, 1
adds r0, r4, r2
ldr r0, [r0]
ldr r2, [r1]
adds r0, r2
str r0, [sp]
movs r3, 0xA4
lsls r3, 1
adds r0, r4, r3
ldr r0, [r0]
ldr r1, [r1, 0x4]
adds r0, r1
str r0, [sp, 0x4]
adds r3, 0x4
adds r0, r4, r3
ldr r0, [r0]
adds r0, r2
str r0, [sp, 0x8]
movs r2, 0xA8
lsls r2, 1
adds r0, r4, r2
ldr r0, [r0]
adds r0, r1
add r1, sp, 0x8
str r0, [r1, 0x4]
movs r6, 0
ldr r3, [r4, 0x28]
ldr r0, [sp]
adds r2, r1, 0
cmp r0, r3
bge _080A9FE4
str r3, [sp]
ldr r0, [r4, 0xC]
adds r0, r3, r0
str r0, [sp, 0x8]
b _080A9FF4
_080A9FE4:
ldr r1, [r4, 0x30]
ldr r0, [sp, 0x8]
cmp r0, r1
blt _080A9FF6
ldr r0, [r4, 0xC]
subs r0, r1, r0
str r0, [sp]
str r1, [sp, 0x8]
_080A9FF4:
movs r6, 0x1
_080A9FF6:
ldr r1, [r4, 0x2C]
ldr r0, [sp, 0x4]
cmp r0, r1
bge _080AA008
str r1, [sp, 0x4]
ldr r0, [r4, 0x10]
adds r0, r1, r0
str r0, [r2, 0x4]
b _080AA018
_080AA008:
ldr r1, [r4, 0x34]
ldr r0, [r2, 0x4]
cmp r0, r1
blt _080AA01A
ldr r0, [r4, 0x10]
subs r0, r1, r0
str r0, [sp, 0x4]
str r1, [r2, 0x4]
_080AA018:
movs r6, 0x1
_080AA01A:
adds r0, r4, 0
mov r1, sp
bl sub_80A9488
adds r5, r0, 0
cmp r5, 0
beq _080AA034
adds r0, r4, 0
movs r1, 0
bl sub_80AAF68
adds r0, r5, 0
b _080AA06A
_080AA034:
movs r3, 0xA2
lsls r3, 1
adds r2, r4, r3
ldr r0, [sp]
ldr r1, [sp, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
movs r0, 0xA6
lsls r0, 1
adds r2, r4, r0
ldr r0, [sp, 0x8]
ldr r1, [sp, 0xC]
str r0, [r2]
str r1, [r2, 0x4]
cmp r6, 0
bne _080AA060
adds r0, r4, 0
movs r1, 0x1
bl sub_80AAF68
movs r0, 0
b _080AA06A
_080AA060:
adds r0, r4, 0
movs r1, 0
bl sub_80AAF68
movs r0, 0x1
_080AA06A:
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80A9F94
thumb_func_start sub_80AA074
sub_80AA074:
push {r4-r7,lr}
sub sp, 0x10
adds r4, r0, 0
movs r2, 0xA2
lsls r2, 1
adds r0, r4, r2
ldr r0, [r0]
ldr r2, [r1]
adds r0, r2
str r0, [sp]
movs r3, 0xA4
lsls r3, 1
adds r0, r4, r3
ldr r0, [r0]
ldr r1, [r1, 0x4]
adds r0, r1
str r0, [sp, 0x4]
adds r3, 0x4
adds r0, r4, r3
ldr r0, [r0]
adds r0, r2
str r0, [sp, 0x8]
movs r2, 0xA8
lsls r2, 1
adds r0, r4, r2
ldr r0, [r0]
adds r0, r1
add r1, sp, 0x8
str r0, [r1, 0x4]
ldr r3, [r4, 0x28]
ldr r0, [sp]
adds r5, r1, 0
cmp r0, r3
bge _080AA0C2
str r3, [sp]
ldr r0, [r4, 0xC]
adds r0, r3, r0
str r0, [sp, 0x8]
b _080AA0D2
_080AA0C2:
ldr r1, [r4, 0x30]
ldr r0, [sp, 0x8]
cmp r0, r1
blt _080AA0D2
ldr r0, [r4, 0xC]
subs r0, r1, r0
str r0, [sp]
str r1, [sp, 0x8]
_080AA0D2:
ldr r1, [r4, 0x2C]
ldr r0, [sp, 0x4]
cmp r0, r1
bge _080AA0E4
str r1, [sp, 0x4]
ldr r0, [r4, 0x10]
adds r0, r1, r0
str r0, [r5, 0x4]
b _080AA0F4
_080AA0E4:
ldr r1, [r4, 0x34]
ldr r0, [r5, 0x4]
cmp r0, r1
blt _080AA0F4
ldr r0, [r4, 0x10]
subs r0, r1, r0
str r0, [sp, 0x4]
str r1, [r5, 0x4]
_080AA0F4:
adds r0, r4, 0
mov r1, sp
adds r2, r5, 0
bl sub_80A95AC
adds r6, r0, 0
cmp r6, 0
bne _080AA170
movs r3, 0xA2
lsls r3, 1
adds r2, r4, r3
ldr r0, [sp]
ldr r1, [sp, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
movs r0, 0xA6
lsls r0, 1
adds r2, r4, r0
ldr r0, [sp, 0x8]
ldr r1, [sp, 0xC]
str r0, [r2]
str r1, [r2, 0x4]
movs r1, 0x8E
lsls r1, 1
adds r0, r4, r1
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080AA170
movs r0, 0x20
mov r1, sp
adds r2, r5, 0
bl sub_80ADCA0
lsls r0, 16
asrs r5, r0, 16
cmp r5, 0
blt _080AA166
movs r2, 0x9F
lsls r2, 1
adds r7, r4, r2
movs r3, 0
ldrsh r0, [r7, r3]
cmp r0, r5
beq _080AA170
movs r1, 0
ldrsh r0, [r4, r1]
adds r1, r5, 0
bl sub_80A8ACC
lsls r0, 24
cmp r0, 0
beq _080AA170
strh r5, [r7]
movs r6, 0x2
b _080AA170
_080AA166:
movs r2, 0x9F
lsls r2, 1
adds r1, r4, r2
ldr r0, _080AA17C
strh r0, [r1]
_080AA170:
adds r0, r6, 0
add sp, 0x10
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080AA17C: .4byte 0x0000ffff
thumb_func_end sub_80AA074
thumb_func_start sub_80AA180
sub_80AA180:
push {r4-r7,lr}
sub sp, 0x10
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
adds r7, r3, 0
movs r0, 0x4
ands r0, r5
cmp r0, 0
beq _080AA220
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0x80
bl sub_80A9344
lsls r0, 16
asrs r0, 16
cmp r0, 0
blt _080AA220
mov r1, sp
bl sub_80A8FD8
movs r2, 0xA2
lsls r2, 1
adds r0, r4, r2
ldr r1, [r0]
ldr r0, [r4, 0x14]
adds r1, r0
ldr r0, [sp]
subs r0, r1
str r0, [sp, 0x8]
movs r3, 0xA4
lsls r3, 1
adds r0, r4, r3
ldr r0, [r0]
ldr r1, [r4, 0x18]
adds r0, r1
ldr r1, [sp, 0x4]
subs r1, r0
add r0, sp, 0x8
str r1, [r0, 0x4]
bl sub_8002C60
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080AA2B2
movs r0, 0xA1
lsls r0, 1
adds r2, r4, r0
lsls r0, r1, 24
lsrs r0, 24
strb r0, [r2]
ldr r3, _080AA21C
adds r1, r4, r3
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
lsls r0, 24
asrs r0, 24
cmp r1, r0
beq _080AA20A
movs r0, 0xAE
lsls r0, 1
adds r1, r4, r0
movs r0, 0x1
strb r0, [r1]
_080AA20A:
movs r1, 0
ldrsb r1, [r2, r1]
adds r0, r4, 0
bl sub_80AA3F8
lsls r0, 24
cmp r0, 0
bne _080AA2AE
b _080AA2B2
.align 2, 0
_080AA21C: .4byte 0x0000015d
_080AA220:
movs r0, 0x8
ands r0, r5
cmp r0, 0
beq _080AA2B2
movs r0, 0x80
adds r1, r6, 0
adds r2, r7, 0
bl sub_80AC554
lsls r0, 16
asrs r0, 16
cmp r0, 0
blt _080AA2B2
mov r1, sp
bl sub_80AC448
movs r1, 0xA2
lsls r1, 1
adds r0, r4, r1
ldr r1, [r0]
ldr r0, [r4, 0x14]
adds r1, r0
ldr r0, [sp]
subs r0, r1
str r0, [sp, 0x8]
add r0, sp, 0x8
movs r2, 0xA4
lsls r2, 1
adds r1, r4, r2
ldr r2, [r1]
ldr r1, [r4, 0x18]
adds r2, r1
ldr r1, [sp, 0x4]
subs r1, r2
str r1, [r0, 0x4]
bl sub_8002C60
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080AA2B2
movs r3, 0xA1
lsls r3, 1
adds r2, r4, r3
lsls r0, r1, 24
lsrs r0, 24
strb r0, [r2]
adds r3, 0x1B
adds r1, r4, r3
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
lsls r0, 24
asrs r0, 24
cmp r1, r0
beq _080AA29E
movs r0, 0xAE
lsls r0, 1
adds r1, r4, r0
movs r0, 0x1
strb r0, [r1]
_080AA29E:
movs r1, 0
ldrsb r1, [r2, r1]
adds r0, r4, 0
bl sub_80AA3F8
lsls r0, 24
cmp r0, 0
beq _080AA2B2
_080AA2AE:
movs r0, 0x3
b _080AA2B4
_080AA2B2:
movs r0, 0
_080AA2B4:
add sp, 0x10
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80AA180
thumb_func_start sub_80AA2BC
sub_80AA2BC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
adds r7, r0, 0
mov r8, r1
ldr r0, [r2]
ldr r1, [r2, 0x4]
str r0, [sp]
str r1, [sp, 0x4]
ldr r0, [r3]
ldr r1, [r3, 0x4]
str r0, [sp, 0x10]
str r1, [sp, 0x14]
ldr r0, [sp]
cmp r0, 0
bge _080AA2E6
ldr r1, _080AA3C4
adds r0, r1
_080AA2E6:
asrs r0, 11
str r0, [sp, 0x8]
ldr r0, [sp, 0x4]
cmp r0, 0
bge _080AA2F4
ldr r2, _080AA3C4
adds r0, r2
_080AA2F4:
asrs r0, 11
add r1, sp, 0x8
str r0, [r1, 0x4]
ldr r4, [sp, 0x10]
subs r0, r4, 0x1
mov r10, r1
cmp r0, 0
bge _080AA308
ldr r1, _080AA3C8
adds r0, r4, r1
_080AA308:
asrs r2, r0, 11
add r0, sp, 0x10
ldr r4, [r0, 0x4]
subs r1, r4, 0x1
mov r9, r0
cmp r1, 0
bge _080AA31A
ldr r0, _080AA3C8
adds r1, r4, r0
_080AA31A:
asrs r3, r1, 11
ldr r0, [sp, 0x8]
subs r0, r2, r0
adds r0, 0x1
str r0, [sp, 0x18]
mov r1, r10
ldr r0, [r1, 0x4]
subs r0, r3, r0
adds r0, 0x1
add r1, sp, 0x18
str r0, [r1, 0x4]
movs r0, 0x4
mov r2, r8
ands r0, r2
cmp r0, 0
beq _080AA394
movs r1, 0
ldrsh r0, [r7, r1]
movs r1, 0x80
mov r2, sp
mov r3, r9
bl sub_80A92A0
lsls r0, 16
asrs r5, r0, 16
cmp r5, 0
blt _080AA394
ldr r1, _080AA3CC
lsls r0, r5, 5
subs r0, r5
lsls r0, 4
ldr r1, [r1]
adds r6, r1, r0
movs r2, 0x8E
lsls r2, 1
adds r0, r6, r2
ldr r0, [r0]
movs r1, 0x80
lsls r1, 2
ands r0, r1
cmp r0, 0
beq _080AA384
movs r4, 0xA1
lsls r4, 1
adds r0, r7, r4
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0x5
bl sub_8002984
adds r4, r6, r4
strb r0, [r4]
_080AA384:
movs r1, 0
ldrsh r0, [r7, r1]
adds r1, r5, 0
bl GroundLives_ExecutePlayerScriptActionLives
lsls r0, 24
cmp r0, 0
bne _080AA3BE
_080AA394:
movs r0, 0x8
mov r2, r8
ands r0, r2
cmp r0, 0
beq _080AA3D0
movs r0, 0x80
mov r1, sp
mov r2, r9
bl sub_80AC4C8
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
blt _080AA3D0
movs r2, 0
ldrsh r0, [r7, r2]
bl sub_80A8A5C
lsls r0, 24
cmp r0, 0
beq _080AA3D0
_080AA3BE:
movs r0, 0x3
b _080AA3E6
.align 2, 0
_080AA3C4: .4byte 0x000007ff
_080AA3C8: .4byte 0x000007fe
_080AA3CC: .4byte gUnknown_3001B84
_080AA3D0:
movs r0, 0x10
mov r1, r10
add r2, sp, 0x18
bl sub_80A595C
lsls r0, 24
cmp r0, 0
bne _080AA3E4
movs r0, 0
b _080AA3E6
_080AA3E4:
movs r0, 0x6
_080AA3E6:
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80AA2BC
thumb_func_start sub_80AA3F8
sub_80AA3F8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x40
adds r6, r0, 0
lsls r1, 24
asrs r1, 24
str r1, [sp, 0x28]
movs r2, 0x80
lsls r2, 1
mov r0, sp
bl sub_8002BB8
ldr r4, [sp]
ldr r5, [sp, 0x4]
movs r0, 0xA2
lsls r0, 1
adds r0, r6
mov r9, r0
ldr r0, [r0]
adds r0, r4
str r0, [sp, 0x8]
movs r1, 0xA4
lsls r1, 1
adds r1, r6
mov r10, r1
ldr r0, [r1]
adds r0, r5
add r2, sp, 0x8
str r0, [r2, 0x4]
movs r1, 0xA6
lsls r1, 1
adds r0, r6, r1
ldr r0, [r0]
adds r0, r4
str r0, [sp, 0x10]
adds r1, 0x4
adds r0, r6, r1
ldr r0, [r0]
adds r0, r5
add r3, sp, 0x10
str r0, [r3, 0x4]
adds r0, r6, 0
movs r1, 0xC
bl sub_80AA2BC
adds r7, r0, 0
cmp r7, 0x3
bne _080AA462
_080AA45E:
movs r0, 0x1
b _080AA650
_080AA462:
ldr r0, [r6, 0xC]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
movs r2, 0x80
lsls r2, 2
mov r8, r2
add r0, r8
muls r0, r4
cmp r0, 0
bge _080AA47A
adds r0, 0xFF
_080AA47A:
asrs r0, 8
str r0, [sp, 0x2C]
ldr r0, [r6, 0x10]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
add r0, r8
muls r0, r5
cmp r0, 0
bge _080AA490
adds r0, 0xFF
_080AA490:
asrs r0, 8
str r0, [sp, 0x30]
mov r1, r9
ldr r0, [r1]
ldr r1, [r6, 0x14]
adds r0, r1
ldr r2, [sp, 0x2C]
adds r0, r2
ldr r2, _080AA4F4
adds r0, r2
str r0, [sp, 0x18]
mov r1, r10
ldr r0, [r1]
ldr r1, [r6, 0x18]
adds r0, r1
ldr r1, [sp, 0x30]
adds r0, r1
adds r0, r2
add r2, sp, 0x18
str r0, [r2, 0x4]
movs r1, 0xC0
lsls r1, 3
ldr r0, [sp, 0x18]
adds r0, r1
str r0, [sp, 0x20]
ldr r0, [r2, 0x4]
adds r0, r1
add r3, sp, 0x20
str r0, [r3, 0x4]
ldr r0, _080AA4F8
mov r9, r0
ldr r0, [sp, 0x28]
lsls r1, r0, 2
add r9, r1
mov r0, r9
ldr r0, [r0]
str r0, [sp, 0x34]
ldr r0, _080AA4FC
adds r0, r1, r0
ldr r0, [r0]
str r0, [sp, 0x38]
ldr r0, _080AA500
adds r1, r0
ldr r1, [r1]
str r1, [sp, 0x3C]
mov r10, r8
mov r9, r2
mov r8, r3
b _080AA568
.align 2, 0
_080AA4F4: .4byte 0xfffffd00
_080AA4F8: .4byte gUnknown_8117FF0
_080AA4FC: .4byte gUnknown_8118010
_080AA500: .4byte gUnknown_8118030
_080AA504:
ldr r1, [r6, 0x28]
ldr r0, [sp, 0x18]
cmp r0, r1
bge _080AA50E
b _080AA64E
_080AA50E:
ldr r1, [r6, 0x30]
ldr r0, [sp, 0x20]
cmp r0, r1
blt _080AA518
b _080AA64E
_080AA518:
ldr r1, [r6, 0x2C]
mov r2, r9
ldr r0, [r2, 0x4]
cmp r0, r1
bge _080AA524
b _080AA64E
_080AA524:
ldr r1, [r6, 0x34]
mov r2, r8
ldr r0, [r2, 0x4]
cmp r0, r1
blt _080AA530
b _080AA64E
_080AA530:
adds r0, r6, 0
movs r1, 0xC
mov r2, r9
mov r3, r8
bl sub_80AA2BC
adds r7, r0, 0
cmp r7, 0x3
beq _080AA45E
ldr r0, [sp, 0x18]
adds r0, r4
str r0, [sp, 0x18]
mov r1, r9
ldr r0, [r1, 0x4]
adds r0, r5
str r0, [r1, 0x4]
ldr r0, [sp, 0x20]
adds r0, r4
str r0, [sp, 0x20]
mov r2, r8
ldr r0, [r2, 0x4]
adds r0, r5
str r0, [r2, 0x4]
cmp r7, 0x6
beq _080AA572
movs r0, 0x80
lsls r0, 1
add r10, r0
_080AA568:
ldr r1, [sp, 0x34]
cmp r10, r1
blt _080AA504
cmp r7, 0x6
bne _080AA64E
_080AA572:
ldr r2, [sp, 0x38]
cmp r10, r2
bge _080AA5DC
_080AA578:
ldr r1, [sp, 0x18]
ldr r0, [r6, 0x28]
cmp r1, r0
blt _080AA64E
ldr r1, [sp, 0x20]
ldr r0, [r6, 0x30]
cmp r1, r0
bge _080AA64E
mov r0, r9
ldr r1, [r0, 0x4]
ldr r0, [r6, 0x2C]
cmp r1, r0
blt _080AA64E
mov r2, r8
ldr r1, [r2, 0x4]
ldr r0, [r6, 0x34]
cmp r1, r0
bge _080AA64E
adds r0, r6, 0
movs r1, 0x4
mov r2, r9
mov r3, r8
bl sub_80AA2BC
adds r7, r0, 0
cmp r7, 0x3
bne _080AA5B0
b _080AA45E
_080AA5B0:
ldr r0, [sp, 0x18]
adds r0, r4
str r0, [sp, 0x18]
mov r1, r9
ldr r0, [r1, 0x4]
adds r0, r5
str r0, [r1, 0x4]
ldr r0, [sp, 0x20]
adds r0, r4
str r0, [sp, 0x20]
mov r2, r8
ldr r0, [r2, 0x4]
adds r0, r5
str r0, [r2, 0x4]
cmp r7, 0x6
bne _080AA5E0
movs r0, 0x80
lsls r0, 1
add r10, r0
ldr r1, [sp, 0x38]
cmp r10, r1
blt _080AA578
_080AA5DC:
cmp r7, 0x6
beq _080AA64E
_080AA5E0:
movs r2, 0
mov r10, r2
ldr r0, [sp, 0x3C]
cmp r10, r0
bge _080AA64E
_080AA5EA:
ldr r1, [sp, 0x18]
ldr r0, [r6, 0x28]
cmp r1, r0
blt _080AA64E
ldr r1, [sp, 0x20]
ldr r0, [r6, 0x30]
cmp r1, r0
bge _080AA64E
mov r2, r9
ldr r1, [r2, 0x4]
ldr r0, [r6, 0x2C]
cmp r1, r0
blt _080AA64E
mov r0, r8
ldr r1, [r0, 0x4]
ldr r0, [r6, 0x34]
cmp r1, r0
bge _080AA64E
adds r0, r6, 0
movs r1, 0x4
mov r2, r9
mov r3, r8
bl sub_80AA2BC
adds r7, r0, 0
cmp r7, 0x3
bne _080AA622
b _080AA45E
_080AA622:
cmp r7, 0x6
beq _080AA64E
ldr r0, [sp, 0x18]
adds r0, r4
str r0, [sp, 0x18]
mov r1, r9
ldr r0, [r1, 0x4]
adds r0, r5
str r0, [r1, 0x4]
ldr r0, [sp, 0x20]
adds r0, r4
str r0, [sp, 0x20]
mov r2, r8
ldr r0, [r2, 0x4]
adds r0, r5
str r0, [r2, 0x4]
movs r0, 0x80
lsls r0, 1
add r10, r0
ldr r1, [sp, 0x3C]
cmp r10, r1
blt _080AA5EA
_080AA64E:
movs r0, 0
_080AA650:
add sp, 0x40
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80AA3F8
thumb_func_start sub_80AA660
sub_80AA660:
push {r4,lr}
adds r4, r0, 0
movs r0, 0x80
lsls r0, 1
bl sub_80AC4C8
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
blt _080AA686
movs r2, 0
ldrsh r0, [r4, r2]
bl sub_80A8A5C
lsls r0, 24
cmp r0, 0
beq _080AA686
movs r0, 0x4
b _080AA688
_080AA686:
movs r0, 0
_080AA688:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80AA660
thumb_func_start sub_80AA690
sub_80AA690:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
adds r7, r0, 0
lsls r1, 24
asrs r1, 24
mov r9, r1
movs r2, 0x80
lsls r2, 1
mov r0, sp
bl sub_8002BB8
ldr r5, [sp]
ldr r6, [sp, 0x4]
ldr r0, [r7, 0xC]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
movs r1, 0x80
lsls r1, 2
mov r8, r1
add r0, r8
muls r0, r5
cmp r0, 0
bge _080AA6CA
adds r0, 0xFF
_080AA6CA:
asrs r3, r0, 8
ldr r0, [r7, 0x10]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
add r0, r8
muls r0, r6
cmp r0, 0
bge _080AA6DE
adds r0, 0xFF
_080AA6DE:
asrs r4, r0, 8
movs r2, 0xA2
lsls r2, 1
adds r0, r7, r2
ldr r0, [r0]
ldr r1, [r7, 0x14]
adds r0, r1
adds r0, r3
ldr r2, _080AA76C
adds r0, r2
str r0, [sp, 0x8]
movs r1, 0xA4
lsls r1, 1
adds r0, r7, r1
ldr r0, [r0]
ldr r1, [r7, 0x18]
adds r0, r1
adds r0, r4
adds r0, r2
add r2, sp, 0x8
str r0, [r2, 0x4]
movs r1, 0xC0
lsls r1, 3
ldr r0, [sp, 0x8]
adds r0, r1
str r0, [sp, 0x10]
ldr r0, [r2, 0x4]
adds r0, r1
add r3, sp, 0x10
str r0, [r3, 0x4]
ldr r1, _080AA770
mov r4, r9
lsls r0, r4, 2
adds r0, r1
ldr r0, [r0]
mov r10, r0
mov r9, r8
mov r8, r2
adds r4, r3, 0
cmp r9, r10
bge _080AA79C
_080AA730:
ldr r1, [r7, 0x28]
ldr r0, [sp, 0x8]
cmp r0, r1
blt _080AA79C
ldr r1, [r7, 0x30]
ldr r0, [sp, 0x10]
cmp r0, r1
bge _080AA79C
ldr r1, [r7, 0x2C]
mov r2, r8
ldr r0, [r2, 0x4]
cmp r0, r1
blt _080AA79C
ldr r1, [r7, 0x34]
ldr r0, [r4, 0x4]
cmp r0, r1
bge _080AA79C
adds r0, r7, 0
mov r1, r8
adds r2, r4, 0
bl sub_80AA660
cmp r0, 0x4
beq _080AA774
cmp r0, 0x4
bhi _080AA778
cmp r0, 0
bne _080AA778
b _080AA79C
.align 2, 0
_080AA76C: .4byte 0xfffffd00
_080AA770: .4byte gUnknown_8117FF0
_080AA774:
movs r0, 0x1
b _080AA79E
_080AA778:
ldr r0, [sp, 0x8]
adds r0, r5
str r0, [sp, 0x8]
mov r1, r8
ldr r0, [r1, 0x4]
adds r0, r6
str r0, [r1, 0x4]
ldr r0, [sp, 0x10]
adds r0, r5
str r0, [sp, 0x10]
ldr r0, [r4, 0x4]
adds r0, r6
str r0, [r4, 0x4]
movs r2, 0x80
lsls r2, 1
add r9, r2
cmp r9, r10
blt _080AA730
_080AA79C:
movs r0, 0
_080AA79E:
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80AA690
thumb_func_start sub_80AA7B0
sub_80AA7B0:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x20
adds r7, r0, 0
adds r6, r1, 0
mov r12, r2
ldr r2, [sp, 0x38]
ldr r0, [r3]
ldr r1, [r3, 0x4]
str r0, [sp]
str r1, [sp, 0x4]
ldr r0, [r2]
ldr r1, [r2, 0x4]
str r0, [sp, 0x10]
str r1, [sp, 0x14]
ldr r0, [sp]
cmp r0, 0
bge _080AA7DA
ldr r1, _080AA884
adds r0, r1
_080AA7DA:
asrs r0, 11
str r0, [sp, 0x8]
ldr r0, [sp, 0x4]
cmp r0, 0
bge _080AA7E8
ldr r2, _080AA884
adds r0, r2
_080AA7E8:
asrs r0, 11
add r1, sp, 0x8
str r0, [r1, 0x4]
ldr r4, [sp, 0x10]
subs r0, r4, 0x1
mov r8, r1
cmp r0, 0
bge _080AA7FC
ldr r5, _080AA888
adds r0, r4, r5
_080AA7FC:
asrs r2, r0, 11
add r4, sp, 0x10
ldr r1, [r4, 0x4]
subs r0, r1, 0x1
cmp r0, 0
bge _080AA80C
ldr r5, _080AA888
adds r0, r1, r5
_080AA80C:
asrs r3, r0, 11
ldr r0, [sp, 0x8]
subs r0, r2, r0
adds r0, 0x1
str r0, [sp, 0x18]
mov r1, r8
ldr r0, [r1, 0x4]
subs r0, r3, r0
adds r0, 0x1
add r1, sp, 0x18
str r0, [r1, 0x4]
movs r0, 0x4
mov r2, r12
ands r0, r2
adds r5, r1, 0
cmp r0, 0
beq _080AA890
movs r1, 0
ldrsh r0, [r7, r1]
movs r1, 0x80
mov r2, sp
adds r3, r4, 0
bl sub_80A92A0
lsls r0, 16
asrs r4, r0, 16
cmp r4, 0
blt _080AA890
adds r0, r4, 0
bl sub_80A8BBC
lsls r0, 16
ldr r2, _080AA88C
adds r0, r2
lsrs r0, 16
cmp r0, 0xF
bhi _080AA890
adds r0, r4, 0
bl sub_80A8E9C
cmp r0, 0
beq _080AA890
strh r4, [r6]
movs r5, 0xA1
lsls r5, 1
adds r0, r7, r5
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0x5
bl sub_8002984
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r4, 0
bl sub_80A9090
movs r0, 0x5
b _080AA8AE
.align 2, 0
_080AA884: .4byte 0x000007ff
_080AA888: .4byte 0x000007fe
_080AA88C: .4byte 0xfff20000
_080AA890:
movs r1, 0x1
negs r1, r1
adds r0, r1, 0
strh r0, [r6]
movs r0, 0x10
mov r1, r8
adds r2, r5, 0
bl sub_80A595C
lsls r0, 24
cmp r0, 0
bne _080AA8AC
movs r0, 0
b _080AA8AE
_080AA8AC:
movs r0, 0x6
_080AA8AE:
add sp, 0x20
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80AA7B0
thumb_func_start sub_80AA8BC
sub_80AA8BC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x30
adds r6, r0, 0
str r1, [sp, 0x1C]
lsls r2, 24
asrs r2, 24
mov r8, r2
movs r2, 0x80
lsls r2, 1
add r0, sp, 0x4
mov r1, r8
bl sub_8002BB8
ldr r4, [sp, 0x4]
ldr r5, [sp, 0x8]
ldr r0, [r6, 0xC]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
movs r1, 0x80
lsls r1, 2
mov r9, r1
add r0, r9
muls r0, r4
cmp r0, 0
bge _080AA8FA
adds r0, 0xFF
_080AA8FA:
asrs r0, 8
str r0, [sp, 0x20]
ldr r0, [r6, 0x10]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
add r0, r9
muls r0, r5
cmp r0, 0
bge _080AA910
adds r0, 0xFF
_080AA910:
asrs r0, 8
str r0, [sp, 0x24]
movs r2, 0xA2
lsls r2, 1
adds r0, r6, r2
ldr r0, [r0]
ldr r1, [r6, 0x14]
adds r0, r1
ldr r7, [sp, 0x20]
adds r0, r7
ldr r2, _080AA9F0
adds r0, r2
str r0, [sp, 0xC]
movs r1, 0xA4
lsls r1, 1
adds r0, r6, r1
ldr r0, [r0]
ldr r1, [r6, 0x18]
adds r0, r1
ldr r7, [sp, 0x24]
adds r0, r7
adds r0, r2
add r2, sp, 0xC
str r0, [r2, 0x4]
movs r1, 0xC0
lsls r1, 3
ldr r0, [sp, 0xC]
adds r0, r1
str r0, [sp, 0x14]
ldr r0, [r2, 0x4]
adds r0, r1
add r3, sp, 0x14
str r0, [r3, 0x4]
ldr r0, _080AA9F4
mov r7, r8
lsls r1, r7, 2
adds r0, r1, r0
ldr r0, [r0]
mov r10, r0
ldr r0, _080AA9F8
adds r0, r1, r0
ldr r0, [r0]
str r0, [sp, 0x28]
ldr r0, _080AA9FC
adds r1, r0
ldr r1, [r1]
str r1, [sp, 0x2C]
movs r1, 0
movs r7, 0x1
negs r7, r7
adds r0, r7, 0
ldr r7, [sp, 0x1C]
strh r0, [r7]
mov r8, r2
adds r7, r3, 0
cmp r9, r10
bge _080AA9E8
_080AA982:
ldr r1, [r6, 0x28]
ldr r0, [sp, 0xC]
cmp r0, r1
bge _080AA98C
b _080AAAD4
_080AA98C:
ldr r1, [r6, 0x30]
ldr r0, [sp, 0x14]
cmp r0, r1
blt _080AA996
b _080AAAD4
_080AA996:
ldr r1, [r6, 0x2C]
mov r2, r8
ldr r0, [r2, 0x4]
cmp r0, r1
bge _080AA9A2
b _080AAAD4
_080AA9A2:
ldr r1, [r6, 0x34]
ldr r0, [r7, 0x4]
cmp r0, r1
blt _080AA9AC
b _080AAAD4
_080AA9AC:
str r7, [sp]
adds r0, r6, 0
ldr r1, [sp, 0x1C]
movs r2, 0xC
mov r3, r8
bl sub_80AA7B0
adds r1, r0, 0
cmp r1, 0x5
beq _080AAA66
ldr r0, [sp, 0xC]
adds r0, r4
str r0, [sp, 0xC]
mov r2, r8
ldr r0, [r2, 0x4]
adds r0, r5
str r0, [r2, 0x4]
ldr r0, [sp, 0x14]
adds r0, r4
str r0, [sp, 0x14]
ldr r0, [r7, 0x4]
adds r0, r5
str r0, [r7, 0x4]
cmp r1, 0x6
beq _080AAA5A
movs r0, 0x80
lsls r0, 1
add r9, r0
cmp r9, r10
blt _080AA982
_080AA9E8:
cmp r1, 0x6
bne _080AAAD4
b _080AAA5A
.align 2, 0
_080AA9F0: .4byte 0xfffffd00
_080AA9F4: .4byte gUnknown_8117FF0
_080AA9F8: .4byte gUnknown_8118010
_080AA9FC: .4byte gUnknown_8118030
_080AAA00:
ldr r1, [sp, 0xC]
ldr r0, [r6, 0x28]
cmp r1, r0
blt _080AAAD4
ldr r1, [sp, 0x14]
ldr r0, [r6, 0x30]
cmp r1, r0
bge _080AAAD4
mov r0, r8
ldr r1, [r0, 0x4]
ldr r0, [r6, 0x2C]
cmp r1, r0
blt _080AAAD4
ldr r1, [r7, 0x4]
ldr r0, [r6, 0x34]
cmp r1, r0
bge _080AAAD4
str r7, [sp]
adds r0, r6, 0
ldr r1, [sp, 0x1C]
movs r2, 0x4
mov r3, r8
bl sub_80AA7B0
adds r1, r0, 0
cmp r1, 0x5
beq _080AAA66
ldr r0, [sp, 0xC]
adds r0, r4
str r0, [sp, 0xC]
mov r2, r8
ldr r0, [r2, 0x4]
adds r0, r5
str r0, [r2, 0x4]
ldr r0, [sp, 0x14]
adds r0, r4
str r0, [sp, 0x14]
ldr r0, [r7, 0x4]
adds r0, r5
str r0, [r7, 0x4]
cmp r1, 0x6
bne _080AAA6A
movs r0, 0x80
lsls r0, 1
add r9, r0
_080AAA5A:
ldr r2, [sp, 0x28]
cmp r9, r2
blt _080AAA00
cmp r1, 0x6
bne _080AAA6A
b _080AAAD4
_080AAA66:
movs r0, 0x1
b _080AAAD6
_080AAA6A:
movs r0, 0
mov r9, r0
ldr r1, [sp, 0x2C]
cmp r9, r1
bge _080AAAD4
_080AAA74:
ldr r1, [sp, 0xC]
ldr r0, [r6, 0x28]
cmp r1, r0
blt _080AAAD4
ldr r1, [sp, 0x14]
ldr r0, [r6, 0x30]
cmp r1, r0
bge _080AAAD4
mov r2, r8
ldr r1, [r2, 0x4]
ldr r0, [r6, 0x2C]
cmp r1, r0
blt _080AAAD4
ldr r1, [r7, 0x4]
ldr r0, [r6, 0x34]
cmp r1, r0
bge _080AAAD4
str r7, [sp]
adds r0, r6, 0
ldr r1, [sp, 0x1C]
movs r2, 0x4
mov r3, r8
bl sub_80AA7B0
adds r1, r0, 0
cmp r1, 0x5
beq _080AAA66
cmp r1, 0x6
beq _080AAAD4
ldr r0, [sp, 0xC]
adds r0, r4
str r0, [sp, 0xC]
mov r1, r8
ldr r0, [r1, 0x4]
adds r0, r5
str r0, [r1, 0x4]
ldr r0, [sp, 0x14]
adds r0, r4
str r0, [sp, 0x14]
ldr r0, [r7, 0x4]
adds r0, r5
str r0, [r7, 0x4]
movs r2, 0x80
lsls r2, 1
add r9, r2
ldr r0, [sp, 0x2C]
cmp r9, r0
blt _080AAA74
_080AAAD4:
movs r0, 0
_080AAAD6:
add sp, 0x30
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80AA8BC
thumb_func_start sub_80AAAE8
sub_80AAAE8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x80
adds r5, r0, 0
adds r3, r1, 0
lsls r2, 24
asrs r4, r2, 24
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x78]
movs r2, 0xAF
lsls r2, 1
adds r1, r5, r2
movs r0, 0xC0
lsls r0, 2
strh r0, [r1]
movs r6, 0xB0
lsls r6, 1
adds r1, r5, r6
movs r0, 0x1
strh r0, [r1]
ldr r0, [sp, 0x78]
cmp r4, r0
beq _080AAB26
movs r1, 0xA1
lsls r1, 1
adds r0, r5, r1
strb r4, [r0]
_080AAB26:
subs r0, r3, 0x1
cmp r0, 0x13
bls _080AAB2E
b _080AAEB8
_080AAB2E:
lsls r0, 2
ldr r1, _080AAB38
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AAB38: .4byte _080AAB3C
.align 2, 0
_080AAB3C:
.4byte _080AAB8C
.4byte _080AAD60
.4byte _080AAC9C
.4byte _080AAC9C
.4byte _080AAC9C
.4byte _080AAB9E
.4byte _080AAB9E
.4byte _080AAB9E
.4byte _080AAD7C
.4byte _080AADF4
.4byte _080AAE06
.4byte _080AAEB8
.4byte _080AAEB8
.4byte _080AAEB8
.4byte _080AAEB8
.4byte _080AAEB8
.4byte _080AAEB8
.4byte _080AAEB8
.4byte _080AAE32
.4byte _080AAE9C
_080AAB8C:
movs r4, 0xB2
lsls r4, 1
adds r1, r5, r4
movs r0, 0
str r0, [r1]
movs r6, 0xC0
lsls r6, 2
str r6, [sp, 0x78]
b _080AAD6E
_080AAB9E:
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080AAC88
movs r6, 0
movs r0, 0xB2
lsls r0, 1
adds r1, r5, r0
movs r0, 0x4
str r0, [r1]
cmp r3, 0x7
beq _080AABD2
cmp r3, 0x7
bhi _080AABC0
cmp r3, 0x6
beq _080AABC6
b _080AABEA
_080AABC0:
cmp r3, 0x8
beq _080AABDE
b _080AABEA
_080AABC6:
movs r1, 0x90
lsls r1, 4
str r1, [sp, 0x78]
movs r2, 0x1
str r2, [sp, 0x7C]
b _080AABFC
_080AABD2:
movs r3, 0x80
lsls r3, 4
str r3, [sp, 0x78]
movs r0, 0x2
str r0, [sp, 0x7C]
b _080AABFC
_080AABDE:
movs r1, 0xA0
lsls r1, 4
str r1, [sp, 0x78]
movs r2, 0x4
str r2, [sp, 0x7C]
b _080AABFC
_080AABEA:
movs r3, 0xB2
lsls r3, 1
adds r1, r5, r3
movs r0, 0
str r0, [r1]
ldr r0, _080AAC20
str r0, [sp, 0x78]
movs r1, 0
str r1, [sp, 0x7C]
_080AABFC:
movs r2, 0x80
lsls r2, 1
add r0, sp, 0x28
adds r1, r4, 0
bl sub_8002BB8
ldr r0, [sp, 0x28]
ldr r1, [sp, 0x2C]
str r0, [sp, 0x38]
str r1, [sp, 0x3C]
movs r2, 0
mov r10, r2
add r3, sp, 0x40
mov r9, r3
add r4, sp, 0x30
mov r8, r4
b _080AAC42
.align 2, 0
_080AAC20: .4byte 0x00000807
_080AAC24:
cmp r6, 0x1
bne _080AAC3E
ldr r0, [sp, 0x38]
str r0, [sp, 0x30]
mov r6, r8
str r7, [r6, 0x4]
adds r0, r5, 0
mov r1, r8
bl sub_80AA074
adds r6, r0, 0
cmp r6, 0x2
beq _080AAC78
_080AAC3E:
movs r0, 0x1
add r10, r0
_080AAC42:
ldr r1, [sp, 0x7C]
cmp r10, r1
bge _080AAC74
add r4, sp, 0x38
adds r0, r5, 0
adds r1, r4, 0
bl sub_80AA074
adds r6, r0, 0
cmp r6, 0x2
beq _080AAC78
cmp r6, 0x1
bne _080AAC3E
movs r7, 0
str r7, [sp, 0x40]
ldr r0, [r4, 0x4]
mov r2, r9
str r0, [r2, 0x4]
adds r0, r5, 0
mov r1, r9
bl sub_80AA074
adds r6, r0, 0
cmp r6, 0x2
bne _080AAC24
_080AAC74:
cmp r6, 0x2
bne _080AAC7E
_080AAC78:
movs r3, 0x1
negs r3, r3
b _080AAD6C
_080AAC7E:
adds r0, r5, 0
movs r1, 0x1
bl sub_80AAF68
b _080AAEC0
_080AAC88:
movs r4, 0xB2
lsls r4, 1
adds r1, r5, r4
movs r0, 0
str r0, [r1]
ldr r6, _080AAC98
str r6, [sp, 0x78]
b _080AAD6E
.align 2, 0
_080AAC98: .4byte 0x00000807
_080AAC9C:
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080AAD60
movs r0, 0xB2
lsls r0, 1
adds r1, r5, r0
movs r0, 0x4
str r0, [r1]
cmp r3, 0x4
beq _080AACCE
cmp r3, 0x4
bhi _080AACBC
cmp r3, 0x3
beq _080AACC2
b _080AACE6
_080AACBC:
cmp r3, 0x5
beq _080AACDA
b _080AACE6
_080AACC2:
movs r1, 0x90
lsls r1, 4
str r1, [sp, 0x78]
movs r2, 0x1
mov r9, r2
b _080AACF6
_080AACCE:
movs r3, 0x80
lsls r3, 4
str r3, [sp, 0x78]
movs r6, 0x2
mov r9, r6
b _080AACF6
_080AACDA:
movs r0, 0xA0
lsls r0, 4
str r0, [sp, 0x78]
movs r1, 0x4
mov r9, r1
b _080AACF6
_080AACE6:
movs r2, 0xB2
lsls r2, 1
adds r1, r5, r2
movs r0, 0
str r0, [r1]
ldr r3, _080AAD5C
str r3, [sp, 0x78]
mov r9, r0
_080AACF6:
movs r2, 0x80
lsls r2, 1
add r0, sp, 0x48
adds r1, r4, 0
bl sub_8002BB8
ldr r0, [sp, 0x48]
ldr r1, [sp, 0x4C]
str r0, [sp, 0x50]
str r1, [sp, 0x54]
movs r6, 0
cmp r6, r9
bge _080AAD52
add r4, sp, 0x50
mov r8, r4
add r7, sp, 0x58
_080AAD16:
adds r0, r5, 0
mov r1, r8
bl sub_80A9F94
cmp r0, 0
beq _080AAD4C
movs r4, 0
str r4, [sp, 0x58]
mov r1, r8
ldr r0, [r1, 0x4]
str r0, [r7, 0x4]
adds r0, r5, 0
adds r1, r7, 0
bl sub_80A9F94
cmp r0, 0
beq _080AAD4C
ldr r0, [sp, 0x50]
str r0, [sp, 0x60]
add r1, sp, 0x60
str r4, [r1, 0x4]
adds r0, r5, 0
bl sub_80A9F94
cmp r0, 0
beq _080AAD4C
mov r9, r4
_080AAD4C:
adds r6, 0x1
cmp r6, r9
blt _080AAD16
_080AAD52:
adds r0, r5, 0
mov r1, r9
bl sub_80AAF68
b _080AAEC0
.align 2, 0
_080AAD5C: .4byte 0x00000807
_080AAD60:
movs r2, 0xB2
lsls r2, 1
adds r1, r5, r2
movs r0, 0
str r0, [r1]
ldr r3, _080AAD78
_080AAD6C:
str r3, [sp, 0x78]
_080AAD6E:
adds r0, r5, 0
movs r1, 0
bl sub_80AAF68
b _080AAEC0
.align 2, 0
_080AAD78: .4byte 0x00000807
_080AAD7C:
movs r6, 0x8E
lsls r6, 1
adds r0, r5, r6
ldr r0, [r0]
movs r1, 0x80
lsls r1, 5
ands r0, r1
cmp r0, 0
beq _080AAD9C
ldr r0, _080AAD98
ldr r0, [r0]
adds r0, 0x28
strb r4, [r0]
b _080AADA6
.align 2, 0
_080AAD98: .4byte gUnknown_3001B80
_080AAD9C:
ldr r0, _080AADF0
ldr r0, [r0]
adds r0, 0x28
movs r1, 0xFF
strb r1, [r0]
_080AADA6:
movs r1, 0xB2
lsls r1, 1
adds r0, r5, r1
movs r1, 0
str r1, [r0]
movs r2, 0x80
lsls r2, 4
str r2, [sp, 0x78]
movs r3, 0xA1
lsls r3, 1
adds r1, r5, r3
movs r0, 0x4
strb r0, [r1]
movs r6, 0x1
negs r6, r6
cmp r4, r6
bne _080AADCA
b _080AAEC0
_080AADCA:
movs r2, 0x80
lsls r2, 1
add r0, sp, 0x68
adds r1, r4, 0
bl sub_8002BB8
ldr r0, [sp, 0x68]
ldr r1, [sp, 0x6C]
str r0, [sp, 0x70]
str r1, [sp, 0x74]
add r1, sp, 0x70
adds r0, r5, 0
bl sub_80AA074
cmp r0, 0x2
bne _080AAEC0
str r6, [sp, 0x78]
b _080AAEC0
.align 2, 0
_080AADF0: .4byte gUnknown_3001B80
_080AADF4:
movs r4, 0xA1
lsls r4, 1
adds r0, r5, r4
movs r1, 0
ldrsb r1, [r0, r1]
adds r0, r5, 0
bl sub_80AA3F8
b _080AAEC0
_080AAE06:
movs r6, 0xA1
lsls r6, 1
adds r0, r5, r6
movs r1, 0
ldrsb r1, [r0, r1]
adds r0, r5, 0
bl sub_80AA690
lsls r0, 24
cmp r0, 0
bne _080AAEC0
movs r0, 0
mov r1, sp
movs r2, 0x9
bl sub_809D710
adds r0, r5, 0
movs r1, 0
mov r2, sp
bl _ExecutePlayerScript
b _080AAEC0
_080AAE32:
add r6, sp, 0xC
movs r1, 0xA1
lsls r1, 1
adds r0, r5, r1
movs r2, 0
ldrsb r2, [r0, r2]
adds r0, r5, 0
adds r1, r6, 0
bl sub_80AA8BC
lsls r0, 24
cmp r0, 0
beq _080AAE84
add r4, sp, 0x10
movs r0, 0
adds r1, r4, 0
movs r2, 0x6
bl sub_809D710
movs r2, 0
ldrsh r0, [r6, r2]
adds r1, r5, 0
adds r1, 0x40
adds r2, r4, 0
bl GroundLives_ExecuteScript
adds r0, r5, 0
movs r1, 0
movs r2, 0
bl _ExecutePlayerScript
movs r3, 0
ldrsh r0, [r6, r3]
bl sub_80A8E9C
adds r2, r0, 0
movs r0, 0x7
movs r1, 0
bl sub_809B1C0
b _080AAE8E
_080AAE84:
movs r0, 0x7
movs r1, 0
movs r2, 0
bl sub_809B1C0
_080AAE8E:
movs r4, 0x90
lsls r4, 1
adds r0, r5, r4
movs r1, 0x5
bl sub_809CD8C
b _080AAEC0
_080AAE9C:
add r4, sp, 0x1C
ldr r2, _080AAEB4
movs r0, 0
adds r1, r4, 0
bl sub_809D710
adds r0, r5, 0
movs r1, 0
adds r2, r4, 0
bl _ExecutePlayerScript
b _080AAEC0
.align 2, 0
_080AAEB4: .4byte 0x00000195
_080AAEB8:
adds r0, r5, 0
movs r1, 0
bl sub_80AAF68
_080AAEC0:
movs r0, 0x1
negs r0, r0
ldr r6, [sp, 0x78]
cmp r6, r0
beq _080AAF04
movs r0, 0xB4
lsls r0, 1
adds r2, r5, r0
movs r1, 0
ldrsh r0, [r2, r1]
cmp r6, r0
beq _080AAF04
movs r3, 0xAE
lsls r3, 1
adds r1, r5, r3
movs r0, 0
strb r0, [r1]
movs r4, 0xB8
lsls r4, 1
adds r0, r5, r4
strh r6, [r2]
movs r1, 0xA1
lsls r1, 1
adds r3, r5, r1
ldrb r1, [r3]
subs r4, 0x13
adds r2, r5, r4
strb r1, [r2]
movs r2, 0
ldrsb r2, [r3, r2]
ldr r1, [sp, 0x78]
bl sub_80A6EFC
b _080AAF54
_080AAF04:
movs r6, 0xAE
lsls r6, 1
adds r2, r5, r6
ldrb r0, [r2]
cmp r0, 0
bne _080AAF2A
ldr r0, _080AAF64
adds r1, r5, r0
movs r3, 0xA1
lsls r3, 1
adds r0, r5, r3
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
cmp r1, r0
beq _080AAF54
_080AAF2A:
movs r0, 0
strb r0, [r2]
movs r4, 0xB8
lsls r4, 1
adds r0, r5, r4
movs r6, 0xB4
lsls r6, 1
adds r1, r5, r6
movs r2, 0
ldrsh r1, [r1, r2]
movs r3, 0xA1
lsls r3, 1
adds r4, r5, r3
ldrb r2, [r4]
subs r6, 0xB
adds r3, r5, r6
strb r2, [r3]
movs r2, 0
ldrsb r2, [r4, r2]
bl sub_80A6EFC
_080AAF54:
add sp, 0x80
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AAF64: .4byte 0x0000015d
thumb_func_end sub_80AAAE8
thumb_func_start sub_80AAF68
sub_80AAF68:
push {r4,lr}
adds r4, r0, 0
movs r1, 0x8E
lsls r1, 1
adds r0, r4, r1
ldr r0, [r0]
movs r1, 0x80
lsls r1, 7
ands r0, r1
cmp r0, 0
beq _080AB002
movs r2, 0
ldrsh r0, [r4, r2]
movs r1, 0x1
bl sub_80A93F0
lsls r0, 24
cmp r0, 0
beq _080AAFD0
movs r1, 0xE4
lsls r1, 1
adds r0, r4, r1
movs r2, 0
ldrsh r1, [r0, r2]
cmp r1, 0
bne _080AAFA6
movs r0, 0xB5
lsls r0, 1
adds r1, r4, r0
adds r0, 0x4C
b _080AAFB4
_080AAFA6:
movs r0, 0xDB
lsls r0, 1
cmp r1, r0
beq _080AAFC2
subs r0, 0x4C
adds r1, r4, r0
adds r0, 0x56
_080AAFB4:
strh r0, [r1]
movs r2, 0xB6
lsls r2, 1
adds r1, r4, r2
movs r0, 0x1
negs r0, r0
str r0, [r1]
_080AAFC2:
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0x80
lsls r1, 17
bl sub_80A8750
b _080AB002
_080AAFD0:
movs r2, 0xE4
lsls r2, 1
adds r0, r4, r2
movs r2, 0
ldrsh r1, [r0, r2]
movs r0, 0xDB
lsls r0, 1
cmp r1, r0
bne _080AAFF6
subs r0, 0x4C
adds r1, r4, r0
adds r0, 0x56
strh r0, [r1]
movs r2, 0xB6
lsls r2, 1
adds r1, r4, r2
movs r0, 0x1
negs r0, r0
str r0, [r1]
_080AAFF6:
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0x80
lsls r1, 17
bl sub_80A86C8
_080AB002:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AAF68
thumb_func_start sub_80AB008
sub_80AB008:
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
thumb_func_end sub_80AB008
thumb_func_start sub_80AB010
sub_80AB010:
ldr r2, [r0, 0xC]
ldr r3, [r0, 0x10]
str r2, [r1]
str r3, [r1, 0x4]
bx lr
thumb_func_end sub_80AB010
thumb_func_start sub_80AB01C
sub_80AB01C:
push {r4,lr}
adds r3, r0, 0
adds r4, r1, 0
cmp r4, 0
beq _080AB05C
movs r0, 0xA2
lsls r0, 1
adds r2, r3, r0
ldr r1, [r4]
ldr r0, [r3, 0x14]
subs r0, r1, r0
str r0, [r2]
movs r0, 0xA6
lsls r0, 1
adds r2, r3, r0
ldr r0, [r3, 0x14]
adds r1, r0
str r1, [r2]
movs r0, 0xA4
lsls r0, 1
adds r2, r3, r0
ldr r1, [r4, 0x4]
ldr r0, [r3, 0x18]
subs r0, r1, r0
str r0, [r2]
movs r0, 0xA8
lsls r0, 1
adds r2, r3, r0
ldr r0, [r3, 0x18]
adds r1, r0
str r1, [r2]
b _080AB0C2
_080AB05C:
movs r0, 0xA2
lsls r0, 1
adds r2, r3, r0
ldr r0, [r3, 0x20]
ldr r1, [r3, 0x14]
subs r0, r1
str r0, [r2]
movs r0, 0xA6
lsls r0, 1
adds r2, r3, r0
ldr r0, [r3, 0x20]
ldr r1, [r3, 0x14]
adds r0, r1
str r0, [r2]
movs r0, 0xA4
lsls r0, 1
adds r2, r3, r0
ldr r0, [r3, 0x24]
ldr r1, [r3, 0x18]
subs r0, r1
str r0, [r2]
movs r0, 0xA8
lsls r0, 1
adds r2, r3, r0
ldr r0, [r3, 0x24]
ldr r1, [r3, 0x18]
adds r0, r1
str r0, [r2]
movs r2, 0xAA
lsls r2, 1
adds r1, r3, r2
adds r2, 0x4
adds r0, r3, r2
str r4, [r0]
str r4, [r1]
movs r0, 0xA1
lsls r0, 1
adds r2, r3, r0
movs r1, 0
ldrsb r1, [r2, r1]
movs r0, 0x1C
ldrsb r0, [r3, r0]
cmp r1, r0
beq _080AB0BE
movs r0, 0xAE
lsls r0, 1
adds r1, r3, r0
movs r0, 0x1
strb r0, [r1]
_080AB0BE:
ldrb r0, [r3, 0x1C]
strb r0, [r2]
_080AB0C2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AB01C
thumb_func_start sub_80AB0C8
sub_80AB0C8:
push {r4,lr}
ldr r3, [r1]
ldr r4, [r1, 0x4]
str r3, [r0, 0x28]
str r4, [r0, 0x2C]
ldr r1, [r2]
ldr r2, [r2, 0x4]
str r1, [r0, 0x30]
str r2, [r0, 0x34]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AB0C8
thumb_func_start sub_80AB0E0
sub_80AB0E0:
adds r3, r0, 0
movs r2, 0xA2
lsls r2, 1
adds r0, r3, r2
ldr r0, [r0]
ldr r2, [r3, 0x14]
adds r0, r2
str r0, [r1]
movs r2, 0xA4
lsls r2, 1
adds r0, r3, r2
ldr r0, [r0]
ldr r2, [r3, 0x18]
adds r0, r2
str r0, [r1, 0x4]
bx lr
thumb_func_end sub_80AB0E0
thumb_func_start sub_80AB100
sub_80AB100:
push {lr}
bl sub_80A9F20
pop {r1}
bx r1
thumb_func_end sub_80AB100
thumb_func_start sub_80AB10C
sub_80AB10C:
push {r4,lr}
adds r3, r0, 0
movs r4, 0xAA
lsls r4, 1
adds r0, r3, r4
ldr r0, [r0]
str r0, [r1]
movs r1, 0xAC
lsls r1, 1
adds r0, r3, r1
ldr r0, [r0]
str r0, [r2]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80AB10C
thumb_func_start sub_80AB12C
sub_80AB12C:
movs r2, 0xAA
lsls r2, 1
adds r0, r2
str r1, [r0]
bx lr
thumb_func_end sub_80AB12C
thumb_func_start sub_80AB138
sub_80AB138:
movs r2, 0xA1
lsls r2, 1
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
bx lr
thumb_func_end sub_80AB138
thumb_func_start sub_80AB144
sub_80AB144:
push {lr}
adds r3, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080AB17C
movs r0, 0xA1
lsls r0, 1
adds r2, r3, r0
lsls r0, r1, 24
lsrs r0, 24
strb r0, [r2]
ldr r2, _080AB180
adds r1, r3, r2
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
lsls r0, 24
asrs r0, 24
cmp r1, r0
beq _080AB17C
movs r0, 0xAE
lsls r0, 1
adds r1, r3, r0
movs r0, 0x1
strb r0, [r1]
_080AB17C:
pop {r0}
bx r0
.align 2, 0
_080AB180: .4byte 0x0000015d
thumb_func_end sub_80AB144
thumb_func_start sub_80AB184
sub_80AB184:
push {lr}
lsls r1, 16
lsrs r1, 16
bl sub_80A9750
pop {r0}
bx r0
thumb_func_end sub_80AB184
thumb_func_start sub_80AB194
sub_80AB194:
push {lr}
mov r12, r0
lsls r1, 16
asrs r1, 16
adds r3, r1, 0
cmp r1, 0
bne _080AB1A8
movs r0, 0xE0
lsls r0, 1
adds r3, r0, 0
_080AB1A8:
movs r0, 0xB5
lsls r0, 1
add r0, r12
strh r3, [r0]
movs r0, 0xB6
lsls r0, 1
add r0, r12
str r2, [r0]
pop {r0}
bx r0
thumb_func_end sub_80AB194
thumb_func_start nullsub_211
nullsub_211:
bx lr
thumb_func_end nullsub_211
thumb_func_start sub_80AB1C0
sub_80AB1C0:
push {lr}
adds r1, r0, 0
movs r2, 0xAE
lsls r2, 1
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _080AB1DE
adds r2, 0x14
adds r0, r1, r2
bl sub_80A66F8
lsls r0, 24
lsrs r0, 24
b _080AB1E0
_080AB1DE:
movs r0, 0x1
_080AB1E0:
pop {r1}
bx r1
thumb_func_end sub_80AB1C0
thumb_func_start sub_80AB1E4
sub_80AB1E4:
push {lr}
adds r1, r0, 0
movs r2, 0xB5
lsls r2, 1
adds r0, r1, r2
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080AB206
movs r2, 0xB8
lsls r2, 1
adds r0, r1, r2
bl sub_80A671C
lsls r0, 24
lsrs r0, 24
b _080AB208
_080AB206:
movs r0, 0x1
_080AB208:
pop {r1}
bx r1
thumb_func_end sub_80AB1E4
thumb_func_start sub_80AB20C
sub_80AB20C:
movs r2, 0x8E
lsls r2, 1
adds r0, r2
ldr r0, [r0]
str r0, [r1]
bx lr
thumb_func_end sub_80AB20C
thumb_func_start sub_80AB218
sub_80AB218:
push {lr}
movs r2, 0
ldrsh r0, [r0, r2]
bl sub_80A86C8
pop {r0}
bx r0
thumb_func_end sub_80AB218
thumb_func_start sub_80AB228
sub_80AB228:
push {lr}
movs r2, 0
ldrsh r0, [r0, r2]
bl sub_80A8750
pop {r0}
bx r0
thumb_func_end sub_80AB228
thumb_func_start sub_80AB238
sub_80AB238:
push {lr}
movs r2, 0xB8
lsls r2, 1
adds r0, r2
bl sub_80A6EC8
pop {r0}
bx r0
thumb_func_end sub_80AB238
thumb_func_start sub_80AB248
sub_80AB248:
push {lr}
bl sub_80A9F94
pop {r1}
bx r1
thumb_func_end sub_80AB248
thumb_func_start GroundLives_Action
GroundLives_Action:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x3C
ldr r0, _080AB29C
ldr r5, [r0]
movs r0, 0
mov r9, r0
_080AB266:
movs r2, 0x2
ldrsh r1, [r5, r2]
movs r3, 0x1
negs r3, r3
mov r8, r3
adds r0, r3, 0
cmp r1, r0
bne _080AB278
b _080AB47C
_080AB278:
adds r4, r5, 0
adds r4, 0x38
ldr r1, _080AB2A0
adds r0, r4, 0
bl HandleAction
lsls r0, 16
asrs r3, r0, 16
cmp r3, 0
beq _080AB2A4
cmp r3, 0x4
beq _080AB292
b _080AB44C
_080AB292:
mov r0, r9
bl GroundLives_Delete
b _080AB47C
.align 2, 0
_080AB29C: .4byte gUnknown_3001B84
_080AB2A0: .4byte gUnknown_8118280
_080AB2A4:
movs r0, 0x8E
lsls r0, 1
adds r2, r5, r0
ldr r1, [r2]
movs r0, 0x80
lsls r0, 4
ands r0, r1
cmp r0, 0
bne _080AB2B8
b _080AB42E
_080AB2B8:
str r3, [sp, 0xC]
add r0, sp, 0x8
mov r1, r8
strb r1, [r0]
str r3, [sp, 0x10]
movs r3, 0x90
lsls r3, 1
adds r0, r5, r3
add r1, sp, 0xC
add r3, sp, 0x10
add r4, sp, 0x14
str r4, [sp]
ldr r2, [r2]
str r2, [sp, 0x4]
add r2, sp, 0x8
bl sub_809CDC8
subs r0, 0x1
mov r8, r4
cmp r0, 0x7
bls _080AB2E4
b _080AB44C
_080AB2E4:
lsls r0, 2
ldr r1, _080AB2F0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080AB2F0: .4byte _080AB2F4
.align 2, 0
_080AB2F4:
.4byte _080AB314
.4byte _080AB314
.4byte _080AB326
.4byte _080AB44C
.4byte _080AB314
.4byte _080AB44C
.4byte _080AB44C
.4byte _080AB314
_080AB314:
ldr r1, [sp, 0xC]
add r0, sp, 0x8
movs r2, 0
ldrsb r2, [r0, r2]
ldr r3, [sp, 0x10]
adds r0, r5, 0
bl sub_80AAAE8
b _080AB44C
_080AB326:
add r4, sp, 0x1C
adds r0, r4, 0
bl sub_809D248
ldr r1, [sp, 0x1C]
ldr r0, [sp, 0x14]
adds r6, r1, r0
ldr r1, [r4, 0x4]
mov r2, r8
ldr r0, [r2, 0x4]
adds r7, r1, r0
movs r3, 0xA2
lsls r3, 1
adds r0, r5, r3
ldr r1, [r0]
ldr r0, [r5, 0x14]
adds r0, r1, r0
cmp r0, 0
bge _080AB34E
adds r0, 0xFF
_080AB34E:
asrs r0, 8
subs r0, r6, r0
str r0, [sp, 0x24]
movs r1, 0xA4
lsls r1, 1
adds r0, r5, r1
ldr r1, [r0]
ldr r0, [r5, 0x18]
adds r0, r1, r0
cmp r0, 0
bge _080AB366
adds r0, 0xFF
_080AB366:
asrs r0, 8
subs r0, r7, r0
add r1, sp, 0x24
str r0, [r1, 0x4]
adds r0, r6, 0
subs r0, 0x10
lsls r0, 8
str r0, [sp, 0x2C]
adds r0, r6, 0
adds r0, 0x10
lsls r0, 8
str r0, [sp, 0x34]
subs r0, r7, 0x4
lsls r0, 8
add r2, sp, 0x2C
str r0, [r2, 0x4]
adds r0, r7, 0
adds r0, 0x1C
lsls r0, 8
add r3, sp, 0x34
str r0, [r3, 0x4]
ldr r0, [sp, 0xC]
adds r4, r1, 0
cmp r0, 0xC
bne _080AB3C4
adds r0, r5, 0
movs r1, 0xC
bl sub_80AA180
cmp r0, 0
bne _080AB44C
ldr r0, [sp, 0x24]
adds r0, 0x10
cmp r0, 0x20
bhi _080AB44C
movs r0, 0x1C
negs r0, r0
ldr r1, [r4, 0x4]
cmp r1, r0
blt _080AB44C
cmp r1, 0x4
bgt _080AB44C
movs r2, 0x1
negs r2, r2
adds r0, r5, 0
movs r1, 0x13
b _080AB426
_080AB3C4:
ldr r0, [sp, 0x24]
adds r0, 0x10
cmp r0, 0x20
bhi _080AB3DA
movs r0, 0x1C
negs r0, r0
ldr r1, [r4, 0x4]
cmp r1, r0
blt _080AB3DA
cmp r1, 0x4
ble _080AB44C
_080AB3DA:
adds r0, r4, 0
bl sub_8002C60
add r1, sp, 0x8
strb r0, [r1]
lsls r0, 24
movs r1, 0xFF
lsls r1, 24
cmp r0, r1
beq _080AB44C
ldr r0, [sp, 0xC]
cmp r0, 0x11
beq _080AB410
cmp r0, 0x11
bhi _080AB3FE
cmp r0, 0x10
beq _080AB404
b _080AB44C
_080AB3FE:
cmp r0, 0x12
beq _080AB41C
b _080AB44C
_080AB404:
add r0, sp, 0x8
movs r2, 0
ldrsb r2, [r0, r2]
adds r0, r5, 0
movs r1, 0x6
b _080AB426
_080AB410:
add r0, sp, 0x8
movs r2, 0
ldrsb r2, [r0, r2]
adds r0, r5, 0
movs r1, 0x7
b _080AB426
_080AB41C:
add r0, sp, 0x8
movs r2, 0
ldrsb r2, [r0, r2]
adds r0, r5, 0
movs r1, 0x8
_080AB426:
movs r3, 0
bl sub_80AAAE8
b _080AB44C
_080AB42E:
movs r0, 0x80
lsls r0, 5
ands r1, r0
cmp r1, 0
beq _080AB440
adds r0, r5, 0
bl sub_80AB5D4
b _080AB44C
_080AB440:
ldr r3, _080AB4C4
adds r0, r4, 0
movs r1, 0
movs r2, 0x1
bl sub_809D8C0
_080AB44C:
movs r2, 0xAE
lsls r2, 1
adds r1, r5, r2
ldrb r0, [r1]
cmp r0, 0
beq _080AB47C
movs r0, 0
strb r0, [r1]
movs r3, 0xB8
lsls r3, 1
adds r0, r5, r3
adds r2, 0xC
adds r1, r5, r2
movs r3, 0
ldrsh r1, [r1, r3]
subs r2, 0x26
adds r4, r5, r2
ldrb r2, [r4]
ldr r3, _080AB4C8
strb r2, [r3, r5]
movs r2, 0
ldrsb r2, [r4, r2]
bl sub_80A6EFC
_080AB47C:
mov r0, r9
adds r0, 0x1
lsls r0, 16
asrs r0, 16
mov r9, r0
movs r0, 0xF8
lsls r0, 1
adds r5, r0
mov r1, r9
cmp r1, 0x17
bgt _080AB494
b _080AB266
_080AB494:
ldr r0, _080AB4CC
ldr r6, [r0]
ldr r0, _080AB4D0
ldr r5, [r0]
movs r0, 0
str r0, [r6]
str r0, [r6, 0x4]
movs r2, 0x2
ldrsh r1, [r5, r2]
subs r0, 0x1
cmp r1, r0
beq _080AB4BE
movs r3, 0x8E
lsls r3, 1
adds r0, r5, r3
ldr r1, [r0]
movs r3, 0x80
lsls r3, 6
ands r3, r1
cmp r3, 0
beq _080AB4D4
_080AB4BE:
bl sub_80AB5A4
b _080AB594
.align 2, 0
_080AB4C4: .4byte gUnknown_811828C
_080AB4C8: .4byte 0x0000015d
_080AB4CC: .4byte gUnknown_3001B80
_080AB4D0: .4byte gUnknown_3001B84
_080AB4D4:
movs r0, 0x80
lsls r0, 5
ands r1, r0
cmp r1, 0
beq _080AB590
ldr r7, [r6, 0x24]
cmp r7, 0
bge _080AB51E
adds r2, r6, 0
adds r2, 0x2C
str r3, [r6, 0x24]
str r3, [r6, 0x2C]
movs r1, 0xA2
lsls r1, 1
adds r0, r5, r1
ldr r0, [r0]
ldr r1, [r5, 0x14]
adds r0, r1
str r0, [r2, 0x4]
movs r3, 0xA4
lsls r3, 1
adds r0, r5, r3
ldr r0, [r0]
ldr r1, [r5, 0x18]
adds r0, r1
str r0, [r2, 0x8]
adds r0, r6, 0
movs r2, 0
movs r1, 0x2
_080AB50E:
str r2, [r0, 0x8]
str r2, [r0]
str r2, [r0, 0x4]
subs r1, 0x1
adds r0, 0xC
cmp r1, 0
bge _080AB50E
b _080AB594
_080AB51E:
adds r2, r7, 0x1
adds r0, r2, 0
cmp r2, 0
bge _080AB52A
adds r0, r7, 0
adds r0, 0x40
_080AB52A:
asrs r1, r0, 6
lsls r0, r1, 6
subs r1, r2, r0
str r1, [r6, 0x24]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, 0x2C
adds r0, r6
mov r8, r0
movs r1, 0xA2
lsls r1, 1
adds r0, r5, r1
ldr r2, [r0]
ldr r0, [r5, 0x14]
adds r2, r0
mov r3, r8
str r2, [r3, 0x4]
adds r1, 0x4
adds r0, r5, r1
ldr r1, [r0]
ldr r0, [r5, 0x18]
adds r1, r0
str r1, [r3, 0x8]
lsls r0, r7, 1
adds r0, r7
lsls r0, 2
adds r0, 0x2C
adds r0, r6, r0
ldr r3, [r0, 0x4]
ldr r0, [r0, 0x8]
subs r0, r1, r0
subs r2, r3
cmp r2, 0
bge _080AB572
negs r2, r2
_080AB572:
adds r4, r2, 0
cmp r0, 0
bge _080AB57A
negs r0, r0
_080AB57A:
cmp r0, r4
bge _080AB580
adds r0, r2, 0
_080AB580:
mov r2, r8
str r0, [r2]
cmp r0, 0
bgt _080AB58C
str r7, [r6, 0x24]
b _080AB594
_080AB58C:
str r0, [r6]
b _080AB594
_080AB590:
bl sub_80AB5A4
_080AB594:
add sp, 0x3C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end GroundLives_Action
thumb_func_start sub_80AB5A4
sub_80AB5A4:
push {lr}
ldr r3, _080AB5D0
ldr r0, [r3]
movs r2, 0x1
negs r2, r2
str r2, [r0, 0x24]
adds r0, 0x28
movs r1, 0xFF
strb r1, [r0]
ldr r3, [r3]
movs r1, 0
movs r0, 0x2
_080AB5BC:
str r2, [r3, 0x8]
str r1, [r3]
str r1, [r3, 0x4]
subs r0, 0x1
adds r3, 0xC
cmp r0, 0
bge _080AB5BC
pop {r0}
bx r0
.align 2, 0
_080AB5D0: .4byte gUnknown_3001B80
thumb_func_end sub_80AB5A4
thumb_func_start sub_80AB5D4
sub_80AB5D4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x2C
mov r9, r0
ldr r4, _080AB6BC
movs r2, 0x9E
lsls r2, 1
add r2, r9
movs r0, 0
ldrsh r1, [r2, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r3, [r4]
adds r0, r3
mov r8, r0
adds r0, r1, 0
adds r5, r4, 0
cmp r0, 0
bne _080AB604
b _080AB9E6
_080AB604:
movs r1, 0xAF
lsls r1, 1
add r1, r9
movs r0, 0xC0
lsls r0, 2
strh r0, [r1]
movs r1, 0xB0
lsls r1, 1
add r1, r9
movs r0, 0x1
strh r0, [r1]
movs r0, 0x8E
lsls r0, 1
add r0, r9
ldr r2, [r0]
movs r0, 0x80
lsls r0, 6
ands r2, r0
cmp r2, 0
beq _080AB6D4
movs r2, 0xA1
lsls r2, 1
add r2, r9
movs r0, 0
ldrsb r0, [r2, r0]
cmp r0, 0x4
bne _080AB64C
movs r0, 0xB4
lsls r0, 1
add r0, r9
movs r3, 0
ldrsh r1, [r0, r3]
movs r0, 0x80
lsls r0, 4
cmp r1, r0
beq _080AB670
_080AB64C:
movs r1, 0xB2
lsls r1, 1
add r1, r9
movs r0, 0
str r0, [r1]
movs r1, 0xB4
lsls r1, 1
add r1, r9
movs r0, 0x80
lsls r0, 4
strh r0, [r1]
movs r0, 0x4
strb r0, [r2]
movs r1, 0xAE
lsls r1, 1
add r1, r9
movs r0, 0x1
strb r0, [r1]
_080AB670:
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x28
movs r1, 0
ldrsb r1, [r2, r1]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080AB69C
movs r2, 0x80
lsls r2, 1
mov r0, sp
bl sub_8002BB8
ldr r0, [sp]
ldr r1, [sp, 0x4]
str r0, [sp, 0x8]
str r1, [sp, 0xC]
add r1, sp, 0x8
mov r0, r9
bl sub_80A9F94
_080AB69C:
mov r4, r8
ldr r0, [r4, 0x8]
cmp r0, 0
blt _080AB6A6
b _080AB9E6
_080AB6A6:
ldr r0, [r5]
ldr r0, [r0, 0x24]
cmp r0, 0
bge _080AB6B0
b _080AB9E6
_080AB6B0:
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4]
str r0, [r4, 0x4]
b _080AB9E6
.align 2, 0
_080AB6BC: .4byte gUnknown_3001B80
_080AB6C0:
ldr r5, [sp, 0x28]
ldr r0, [r5, 0x4]
adds r0, r7, r0
str r0, [r5, 0x4]
b _080AB7E2
_080AB6CA:
ldr r1, [sp, 0x28]
ldr r0, [r1, 0x4]
subs r0, r7
str r0, [r1, 0x4]
b _080AB7E2
_080AB6D4:
movs r0, 0xA2
lsls r0, 1
add r0, r9
ldr r1, [r0]
mov r5, r9
ldr r0, [r5, 0x14]
adds r0, r1, r0
str r0, [sp, 0x20]
movs r0, 0xA4
lsls r0, 1
add r0, r9
ldr r1, [r0]
ldr r0, [r5, 0x18]
adds r0, r1, r0
str r0, [sp, 0x24]
ldr r0, [sp, 0x20]
ldr r1, [sp, 0x24]
str r0, [sp, 0x10]
str r1, [sp, 0x14]
mov r1, r8
ldr r0, [r1, 0x8]
cmp r0, 0
bge _080AB710
ldr r0, [r3, 0x24]
cmp r0, 0
bge _080AB70A
b _080AB9E6
_080AB70A:
str r0, [r1, 0x8]
str r2, [r1]
str r2, [r1, 0x4]
_080AB710:
mov r2, r8
ldr r7, [r2]
movs r3, 0x1
mov r10, r3
mov r5, sp
adds r5, 0x10
str r5, [sp, 0x28]
_080AB71E:
mov r0, r8
ldr r1, [r0, 0x8]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, 0x2C
ldr r2, _080AB754
ldr r1, [r2]
adds r1, r0
mov r12, r1
ldr r6, [r1, 0x4]
ldr r5, [sp, 0x10]
subs r4, r6, r5
adds r2, r4, 0
ldr r1, [r1, 0x8]
ldr r0, [sp, 0x14]
subs r3, r1, r0
cmp r4, 0
ble _080AB75E
cmp r2, r7
ble _080AB758
adds r0, r7, r5
str r0, [sp, 0x10]
movs r4, 0
mov r10, r4
b _080AB75A
.align 2, 0
_080AB754: .4byte gUnknown_3001B80
_080AB758:
str r6, [sp, 0x10]
_080AB75A:
adds r1, r2, 0
b _080AB778
_080AB75E:
cmp r4, 0
bge _080AB776
cmn r2, r7
bge _080AB770
subs r0, r5, r7
str r0, [sp, 0x10]
movs r5, 0
mov r10, r5
b _080AB772
_080AB770:
str r6, [sp, 0x10]
_080AB772:
negs r1, r2
b _080AB778
_080AB776:
movs r1, 0
_080AB778:
cmp r3, 0
ble _080AB78E
cmp r3, r7
bgt _080AB6C0
mov r4, r12
ldr r0, [r4, 0x8]
str r0, [sp, 0x14]
cmp r3, r1
ble _080AB7A2
adds r1, r3, 0
b _080AB7A2
_080AB78E:
cmp r3, 0
bge _080AB7A2
cmn r3, r7
blt _080AB6CA
mov r5, r12
ldr r0, [r5, 0x8]
str r0, [sp, 0x14]
cmn r3, r1
bge _080AB7A2
negs r1, r3
_080AB7A2:
mov r0, r10
cmp r0, 0
beq _080AB7E2
subs r7, r1
cmp r7, 0
ble _080AB7E2
ldr r1, _080AB7D4
ldr r0, [r1]
mov r3, r8
ldr r2, [r3, 0x8]
ldr r0, [r0, 0x24]
cmp r2, r0
beq _080AB7D8
adds r1, r2, 0x1
adds r0, r1, 0
cmp r1, 0
bge _080AB7C8
adds r0, r2, 0
adds r0, 0x40
_080AB7C8:
asrs r0, 6
lsls r0, 6
subs r0, r1, r0
mov r4, r8
str r0, [r4, 0x8]
b _080AB7DC
.align 2, 0
_080AB7D4: .4byte gUnknown_3001B80
_080AB7D8:
movs r5, 0
mov r10, r5
_080AB7DC:
mov r0, r10
cmp r0, 0
bne _080AB71E
_080AB7E2:
mov r1, r8
ldr r0, [r1, 0x8]
bl sub_80ABA00
adds r6, r0, 0
ldr r0, _080AB860
ldr r7, [r0]
movs r2, 0x9E
lsls r2, 1
add r2, r9
mov r10, r2
movs r3, 0
ldrsh r2, [r2, r3]
subs r1, r2, 0x1
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r1, r7, 0x4
adds r1, r0
ldr r0, _080AB864
lsls r2, 2
adds r2, r0
ldr r1, [r1]
ldr r0, [r2]
adds r1, r0
mov r12, r1
mov r4, r8
ldr r1, [r4, 0x8]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, 0x2C
adds r0, r7, r0
ldr r3, [r0, 0x4]
ldr r2, [sp, 0x10]
ldr r1, [r0, 0x8]
ldr r5, [sp, 0x28]
ldr r0, [r5, 0x4]
subs r1, r0
subs r3, r2
cmp r3, 0
bge _080AB838
negs r3, r3
_080AB838:
adds r4, r3, 0
cmp r1, 0
bge _080AB840
negs r1, r1
_080AB840:
cmp r1, r4
bge _080AB846
adds r1, r3, 0
_080AB846:
adds r6, r1
mov r0, r8
str r6, [r0, 0x4]
cmp r6, r12
bgt _080AB86C
ldr r0, [r0]
cmp r0, 0
ble _080AB8B2
ldr r1, _080AB868
adds r0, r1
mov r2, r8
b _080AB8B0
.align 2, 0
_080AB860: .4byte gUnknown_3001B80
_080AB864: .4byte gUnknown_8118050
_080AB868: .4byte 0xffffff00
_080AB86C:
mov r3, r10
movs r4, 0
ldrsh r1, [r3, r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
cmp r6, r0
bgt _080AB88E
mov r5, r8
ldr r0, [r5]
cmp r0, 0xFF
bgt _080AB8B2
movs r1, 0x80
lsls r1, 1
adds r0, r1
str r0, [r5]
b _080AB8B2
_080AB88E:
subs r1, 0x1
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r7, r0
ldr r0, [r0]
cmp r0, 0xFF
bgt _080AB8A2
movs r0, 0x80
lsls r0, 1
_080AB8A2:
mov r2, r8
ldr r1, [r2]
cmp r1, r0
bge _080AB8B2
movs r3, 0x80
lsls r3, 1
adds r0, r1, r3
_080AB8B0:
str r0, [r2]
_080AB8B2:
ldr r0, _080AB96C
ldr r3, [r0]
mov r4, r8
ldr r0, [r4, 0x8]
subs r0, 0x40
ldr r2, [r3, 0x24]
subs r1, r2, r0
adds r0, r1, 0
cmp r1, 0
bge _080AB8C8
adds r0, 0x3F
_080AB8C8:
asrs r0, 6
lsls r0, 6
subs r0, r1, r0
cmp r0, 0x3B
ble _080AB8FC
adds r1, r2, 0x5
adds r0, r1, 0
cmp r1, 0
bge _080AB8DE
adds r0, r2, 0
adds r0, 0x44
_080AB8DE:
asrs r0, 6
lsls r0, 6
subs r0, r1, r0
mov r5, r8
str r0, [r5, 0x8]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r0, r3, 0
adds r0, 0x30
adds r0, r1
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x10]
str r1, [sp, 0x14]
_080AB8FC:
mov r0, r9
ldr r1, [sp, 0x28]
bl sub_80A9F20
adds r6, r0, 0
cmp r6, 0
bne _080AB9E6
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x20]
subs r0, r1
str r0, [sp, 0x18]
ldr r2, [sp, 0x28]
ldr r1, [r2, 0x4]
ldr r3, [sp, 0x24]
subs r1, r3
add r0, sp, 0x18
str r1, [r0, 0x4]
movs r5, 0xA1
lsls r5, 1
add r5, r9
movs r4, 0
ldrsb r4, [r5, r4]
bl sub_8002C60
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r4, 0
bl sub_8002B04
strb r0, [r5]
mov r4, r8
ldr r0, [r4]
cmp r0, 0
ble _080AB970
movs r1, 0xB2
lsls r1, 1
add r1, r9
movs r0, 0x4
str r0, [r1]
ldr r1, [r4]
movs r0, 0x80
lsls r0, 2
movs r2, 0x80
lsls r2, 4
cmp r1, r0
ble _080AB95E
movs r2, 0xA0
lsls r2, 4
_080AB95E:
adds r4, r2, 0
mov r0, r9
movs r1, 0x1
bl sub_80AAF68
b _080AB982
.align 2, 0
_080AB96C: .4byte gUnknown_3001B80
_080AB970:
ldr r4, _080AB9F8
movs r0, 0xB2
lsls r0, 1
add r0, r9
str r6, [r0]
mov r0, r9
movs r1, 0
bl sub_80AAF68
_080AB982:
movs r0, 0xAE
lsls r0, 1
add r0, r9
ldrb r0, [r0]
cmp r0, 0
bne _080AB9B6
movs r0, 0xB4
lsls r0, 1
add r0, r9
movs r5, 0
ldrsh r0, [r0, r5]
cmp r4, r0
bne _080AB9B6
ldr r1, _080AB9FC
add r1, r9
movs r0, 0xA1
lsls r0, 1
add r0, r9
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
cmp r1, r0
beq _080AB9E6
_080AB9B6:
movs r1, 0xAE
lsls r1, 1
add r1, r9
movs r0, 0
strb r0, [r1]
movs r0, 0xB8
lsls r0, 1
add r0, r9
movs r1, 0xB4
lsls r1, 1
add r1, r9
strh r4, [r1]
movs r3, 0xA1
lsls r3, 1
add r3, r9
ldrb r1, [r3]
ldr r2, _080AB9FC
add r2, r9
strb r1, [r2]
movs r2, 0
ldrsb r2, [r3, r2]
adds r1, r4, 0
bl sub_80A6EFC
_080AB9E6:
add sp, 0x2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080AB9F8: .4byte 0x00000807
_080AB9FC: .4byte 0x0000015d
thumb_func_end sub_80AB5D4
thumb_func_start sub_80ABA00
sub_80ABA00:
push {r4,r5,lr}
adds r1, r0, 0
movs r4, 0
ldr r0, _080ABA34
ldr r2, [r0]
ldr r3, [r2, 0x24]
adds r5, r0, 0
cmp r3, r1
ble _080ABA38
adds r1, 0x1
cmp r1, r3
bge _080ABA72
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, 0x2C
adds r2, r0, r2
subs r1, r3, r1
_080ABA24:
ldr r0, [r2]
adds r4, r0
adds r2, 0xC
subs r1, 0x1
cmp r1, 0
bne _080ABA24
b _080ABA72
.align 2, 0
_080ABA34: .4byte gUnknown_3001B80
_080ABA38:
cmp r3, r1
bge _080ABA72
adds r1, 0x1
cmp r1, 0x3F
bgt _080ABA58
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, 0x2C
adds r2, r0, r2
_080ABA4C:
ldr r0, [r2]
adds r4, r0
adds r2, 0xC
adds r1, 0x1
cmp r1, 0x3F
ble _080ABA4C
_080ABA58:
ldr r1, [r5]
ldr r0, [r1, 0x24]
cmp r0, 0
ble _080ABA72
adds r2, r1, 0
adds r2, 0x2C
adds r1, r0, 0
_080ABA66:
ldr r0, [r2]
adds r4, r0
adds r2, 0xC
subs r1, 0x1
cmp r1, 0
bne _080ABA66
_080ABA72:
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80ABA00
thumb_func_start sub_80ABA7C
sub_80ABA7C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
ldr r0, _080ABB50
ldr r5, [r0]
movs r0, 0
mov r8, r0
movs r1, 0xA2
lsls r1, 1
adds r4, r5, r1
movs r2, 0x1
negs r2, r2
mov r9, r2
_080ABA9A:
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, r9
beq _080ABB2C
ldr r0, [r4]
ldr r1, [r5, 0x14]
adds r0, r1
str r0, [sp]
ldr r0, [r4, 0x4]
ldr r1, [r5, 0x18]
adds r0, r1
str r0, [sp, 0x4]
ldr r1, [r4, 0x10]
ldr r0, [r4, 0x14]
adds r7, r1, r0
ldr r0, [r4, 0x20]
cmp r0, 0
ble _080ABADA
subs r0, 0x1
str r0, [r4, 0x20]
cmp r0, 0
bgt _080ABADA
ldrh r0, [r4, 0x1C]
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bhi _080ABADA
ldrh r1, [r4, 0x1C]
adds r0, r5, 0
bl sub_80A9750
_080ABADA:
movs r2, 0xB8
lsls r2, 1
adds r6, r5, r2
adds r0, r6, 0
bl sub_80A66D4
lsls r0, 24
cmp r0, 0
beq _080ABAFE
movs r0, 0
strb r0, [r4, 0x18]
movs r0, 0x24
ldrsh r1, [r4, r0]
movs r2, 0x19
ldrsb r2, [r4, r2]
adds r0, r6, 0
bl sub_80A6EFC
_080ABAFE:
movs r1, 0x26
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080ABB1E
adds r1, r0, 0
movs r2, 0xA1
lsls r2, 1
adds r0, r5, r2
movs r2, 0
ldrsb r2, [r0, r2]
ldr r3, [r4, 0x28]
adds r0, r6, 0
bl sub_80A74F0
movs r0, 0
strh r0, [r4, 0x26]
_080ABB1E:
movs r0, 0x8
ldrsh r1, [r5, r0]
adds r0, r6, 0
mov r2, sp
adds r3, r7, 0
bl sub_80A7524
_080ABB2C:
mov r0, r8
adds r0, 0x1
lsls r0, 16
asrs r0, 16
mov r8, r0
movs r1, 0xF8
lsls r1, 1
adds r4, r1
adds r5, r1
cmp r0, 0x17
ble _080ABA9A
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080ABB50: .4byte gUnknown_3001B84
thumb_func_end sub_80ABA7C
.align 2,0