summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_80A26CC.s14182
-rw-r--r--asm/code_80A7714.s14138
-rwxr-xr-xld_script.txt2
-rw-r--r--src/code_80A7714.c27
4 files changed, 14167 insertions, 14182 deletions
diff --git a/asm/code_80A26CC.s b/asm/code_80A26CC.s
index 83be054..4492890 100644
--- a/asm/code_80A26CC.s
+++ b/asm/code_80A26CC.s
@@ -10773,14186 +10773,4 @@ _080A770A:
bx r0
thumb_func_end sub_80A7688
- thumb_func_start sub_80A7714
-sub_80A7714:
- push {lr}
- bl sub_80A68A0
- pop {r0}
- bx r0
- thumb_func_end sub_80A7714
-
- thumb_func_start sub_80A7720
-sub_80A7720:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- movs r1, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80A7094
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- adds r3, r6, 0
- bl sub_80A7310
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7720
-
- thumb_func_start sub_80A7744
-sub_80A7744:
- ldr r1, _080A7750
- movs r2, 0x1
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A7750: .4byte gUnknown_2039DE0
- thumb_func_end sub_80A7744
-
- thumb_func_start sub_80A7754
-sub_80A7754:
- ldr r1, _080A7760
- movs r2, 0x1
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A7760: .4byte gUnknown_2039DE0
- thumb_func_end sub_80A7754
-
- thumb_func_start sub_80A7764
-sub_80A7764:
- push {r4,lr}
- lsls r0, 16
- asrs r4, r0, 16
- bl sub_80A7784
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _080A777A
- ldr r0, _080A7780
- strh r4, [r0]
-_080A777A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7780: .4byte gUnknown_2039DE0
- thumb_func_end sub_80A7764
-
- thumb_func_start sub_80A7784
-sub_80A7784:
- push {lr}
- ldr r2, _080A779C
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080A7796
- strh r1, [r2]
-_080A7796:
- pop {r0}
- bx r0
- .align 2, 0
-_080A779C: .4byte gUnknown_2039DE0
- thumb_func_end sub_80A7784
-
- thumb_func_start sub_80A77A0
-sub_80A77A0:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r2, r1, 0
- ldr r0, _080A77BC
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, r1
- beq _080A77CA
- cmp r1, 0
- bge _080A77C0
- bl sub_80A7784
- b _080A77C6
- .align 2, 0
-_080A77BC: .4byte gUnknown_2039DE0
-_080A77C0:
- adds r0, r2, 0
- bl sub_80A7764
-_080A77C6:
- movs r0, 0x1
- b _080A77CC
-_080A77CA:
- movs r0, 0
-_080A77CC:
- pop {r1}
- bx r1
- thumb_func_end sub_80A77A0
-
- thumb_func_start sub_80A77D0
-sub_80A77D0:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A77E8
- ldr r0, _080A77E4
- b _080A77F0
- .align 2, 0
-_080A77E4: .4byte gUnknown_8117EFC
-_080A77E8:
- ldr r0, _080A77F4
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
-_080A77F0:
- pop {r1}
- bx r1
- .align 2, 0
-_080A77F4: .4byte gUnknown_811E258
- thumb_func_end sub_80A77D0
-
- 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 sub_808D33C
- 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 sub_808D33C
- 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 sub_808D33C
- 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 sub_808D33C
- 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 gUnknown_203B45C
-_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 sub_808D33C
- 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 gUnknown_203B45C
-_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 gUnknown_203B45C
-_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 sub_808D33C
- 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 gUnknown_812F1F8
-_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 sub_808D33C
- 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 gUnknown_203B45C
-_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 gUnknown_203B45C
-_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 sub_808D8BC
- 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 gUnknown_811825C
- 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 sub_8092310
- 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
-
- thumb_func_start sub_80ABB54
-sub_80ABB54:
- push {r4,r5,lr}
- ldr r4, _080ABB90
- movs r0, 0xE2
- lsls r0, 5
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- adds r1, r0, 0
- ldr r0, _080ABB94
- adds r5, r0, 0
- movs r4, 0xE2
- lsls r4, 1
- movs r2, 0x80
- lsls r2, 9
- adds r3, r2, 0
-_080ABB74:
- ldrh r0, [r1, 0x6]
- orrs r0, r5
- strh r0, [r1, 0x6]
- adds r0, r2, 0
- adds r2, r3
- asrs r0, 16
- adds r1, r4
- cmp r0, 0xF
- ble _080ABB74
- bl sub_80ABB98
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABB90: .4byte gUnknown_3001B88
-_080ABB94: .4byte 0x0000ffff
- thumb_func_end sub_80ABB54
-
- thumb_func_start sub_80ABB98
-sub_80ABB98:
- push {r4-r6,lr}
- ldr r0, _080ABBD0
- ldr r4, [r0]
- movs r1, 0
- movs r6, 0x1
- negs r6, r6
- movs r5, 0x80
- lsls r5, 9
-_080ABBA8:
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, r6
- beq _080ABBB6
- adds r0, r1, 0
- bl GroundObject_Delete
-_080ABBB6:
- adds r0, r5, 0
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- asrs r1, r0, 16
- movs r2, 0xE2
- lsls r2, 1
- adds r4, r2
- cmp r1, 0xF
- ble _080ABBA8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABBD0: .4byte gUnknown_3001B88
- thumb_func_end sub_80ABB98
-
- thumb_func_start sub_80ABBD4
-sub_80ABBD4:
- push {r4,lr}
- bl sub_80ABB98
- ldr r4, _080ABBEC
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABBEC: .4byte gUnknown_3001B88
- thumb_func_end sub_80ABBD4
-
- thumb_func_start GroundObject_Select
-GroundObject_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, _080ABC54
- adds r0, r4, 0
- bl sub_80A77D0
- adds r5, r0, 0
- ldr r1, _080ABC58
- 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, 0xC]
- ldr r0, [r0, 0x8]
- cmp r0, 0
- ble _080ABC4A
- adds r4, r0, 0
-_080ABC34:
- movs r0, 0x1
- negs r0, r0
- adds r1, r5, 0
- adds r2, r7, 0
- adds r3, r6, 0
- bl GroundObject_Add
- subs r4, 0x1
- adds r5, 0x18
- cmp r4, 0
- bne _080ABC34
-_080ABC4A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABC54: .4byte gUnknown_81183E4
-_080ABC58: .4byte gUnknown_81183F0
- thumb_func_end GroundObject_Select
-
- thumb_func_start GroundObject_Cancel
-GroundObject_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, _080ABCC4
- movs r0, 0
- adds r2, r7, 0
- bl Log
- movs r1, 0
- ldr r0, _080ABCC8
- ldr r4, [r0]
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r6, 0x80
- lsls r6, 9
-_080ABC84:
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, r8
- beq _080ABCA6
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, r7
- bne _080ABCA6
- cmp r5, 0
- blt _080ABCA0
- movs r0, 0xA
- ldrsb r0, [r4, r0]
- cmp r0, r5
- bne _080ABCA6
-_080ABCA0:
- adds r0, r1, 0
- bl GroundObject_Delete
-_080ABCA6:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r1, r0, 16
- movs r2, 0xE2
- lsls r2, 1
- adds r4, r2
- cmp r1, 0xF
- ble _080ABC84
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABCC4: .4byte gUnknown_8118414
-_080ABCC8: .4byte gUnknown_3001B88
- thumb_func_end GroundObject_Cancel
-
- thumb_func_start GroundObject_CancelBlank
-GroundObject_CancelBlank:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r1, _080ABD40
- movs r0, 0
- bl Log
- movs r6, 0
- ldr r0, _080ABD44
- ldr r4, [r0]
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r1, 0x92
- lsls r1, 1
- adds r5, r4, r1
- mov r7, sp
-_080ABCF0:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, r8
- beq _080ABD20
- 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, 0xA2
- lsls r1, 1
- adds r0, r4, r1
- mov r1, sp
- bl sub_80A675C
- lsls r0, 24
- cmp r0, 0
- bne _080ABD20
- adds r0, r6, 0
- bl GroundObject_Delete
-_080ABD20:
- adds r0, r6, 0x1
- lsls r0, 16
- asrs r6, r0, 16
- movs r0, 0xE2
- lsls r0, 1
- adds r5, r0
- adds r4, r0
- cmp r6, 0xF
- ble _080ABCF0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ABD40: .4byte gUnknown_811842C
-_080ABD44: .4byte gUnknown_3001B88
- thumb_func_end GroundObject_CancelBlank
-
- thumb_func_start sub_80ABD48
-sub_80ABD48:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- movs r3, 0
- ldr r0, _080ABD6C
- ldr r1, [r0]
- movs r6, 0xE2
- lsls r6, 1
- movs r2, 0x80
- lsls r2, 9
- adds r5, r2, 0
-_080ABD5E:
- movs r7, 0x6
- ldrsh r0, [r1, r7]
- cmp r0, r4
- bne _080ABD70
- adds r0, r3, 0
- b _080ABD80
- .align 2, 0
-_080ABD6C: .4byte gUnknown_3001B88
-_080ABD70:
- adds r0, r2, 0
- adds r2, r5
- asrs r3, r0, 16
- adds r1, r6
- cmp r3, 0xF
- ble _080ABD5E
- movs r0, 0x1
- negs r0, r0
-_080ABD80:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80ABD48
-
- thumb_func_start GroundObject_Add
-GroundObject_Add:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r1
- lsls r0, 16
- asrs r7, r0, 16
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- lsls r3, 24
- asrs r3, 24
- mov r9, r3
- ldrb r4, [r1]
- cmp r4, 0x1A
- bne _080ABDDA
- movs r0, 0
- movs r1, 0x28
- bl sub_8001658
- cmp r0, 0x1
- bgt _080ABDBC
- movs r4, 0x1B
- b _080ABDDA
-_080ABDBC:
- movs r0, 0
- movs r1, 0x29
- bl sub_8001658
- cmp r0, 0
- bne _080ABDD4
- movs r0, 0
- movs r1, 0x27
- bl sub_8001658
- adds r0, 0x1C
- b _080ABDD6
-_080ABDD4:
- adds r0, 0x2B
-_080ABDD6:
- lsls r0, 16
- asrs r4, r0, 16
-_080ABDDA:
- lsls r1, r4, 2
- ldr r0, _080ABE10
- adds r6, r1, r0
- cmp r7, 0
- bge _080ABE40
- cmp r4, 0xE
- bgt _080ABDF4
- cmp r4, 0xD
- blt _080ABDF4
- adds r0, r4, 0
- bl sub_80ABD48
- adds r7, r0, 0
-_080ABDF4:
- cmp r7, 0
- bge _080ABE40
- movs r3, 0
- ldr r0, _080ABE14
- ldr r5, [r0]
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ABE18
- movs r7, 0
- b _080ABE40
- .align 2, 0
-_080ABE10: .4byte gUnknown_811ED20
-_080ABE14: .4byte gUnknown_3001B88
-_080ABE18:
- adds r0, r3, 0x1
- lsls r0, 16
- asrs r3, r0, 16
- movs r1, 0xE2
- lsls r1, 1
- adds r5, r1
- cmp r3, 0xF
- bgt _080ABE36
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ABE18
- adds r7, r3, 0
-_080ABE36:
- cmp r7, 0
- bge _080ABE40
- movs r0, 0x1
- negs r0, r0
- b _080AC142
-_080ABE40:
- ldr r1, _080ABEA8
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, [r1]
- adds r5, r1, r0
- ldr r1, _080ABEAC
- mov r3, r8
- ldrb r0, [r3]
- str r0, [sp]
- movs r2, 0
- ldrsh r0, [r6, r2]
- str r0, [sp, 0x4]
- mov r3, r10
- str r3, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- movs r0, 0
- adds r2, r7, 0
- adds r3, r4, 0
- bl Log
- movs r2, 0
- movs r3, 0x6
- ldrsh r1, [r5, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ABE80
- movs r2, 0x1
-_080ABE80:
- str r2, [sp, 0x10]
- strh r7, [r5, 0x4]
- strh r4, [r5, 0x6]
- mov r0, r10
- strh r0, [r5, 0x8]
- mov r1, r9
- strb r1, [r5, 0xA]
- ldrh r0, [r6]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bls _080ABE9C
- b _080ABF8C
-_080ABE9C:
- lsls r0, 2
- ldr r1, _080ABEB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ABEA8: .4byte gUnknown_3001B88
-_080ABEAC: .4byte gUnknown_8118448
-_080ABEB0: .4byte _080ABEB4
- .align 2, 0
-_080ABEB4:
- .4byte _080ABEF0
- .4byte _080ABF7C
- .4byte _080ABF46
- .4byte _080ABF54
- .4byte _080ABF54
- .4byte _080ABF5E
- .4byte _080ABF68
- .4byte _080ABF72
- .4byte _080ABF3C
- .4byte _080ABEFA
- .4byte _080ABEF0
- .4byte _080ABF06
- .4byte _080ABF2C
- .4byte _080ABF1E
- .4byte _080ABF12
-_080ABEF0:
- movs r2, 0x8E
- lsls r2, 1
- adds r1, r5, r2
- movs r0, 0
- b _080ABF94
-_080ABEFA:
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r5, r3
- movs r0, 0x80
- lsls r0, 10
- b _080ABF94
-_080ABF06:
- movs r0, 0x8E
- lsls r0, 1
- adds r1, r5, r0
- movs r0, 0x80
- lsls r0, 11
- b _080ABF94
-_080ABF12:
- movs r2, 0x8E
- lsls r2, 1
- adds r1, r5, r2
- movs r0, 0x83
- lsls r0, 18
- b _080ABF94
-_080ABF1E:
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r5, r3
- ldr r0, _080ABF28
- b _080ABF94
- .align 2, 0
-_080ABF28: .4byte 0x220c0000
-_080ABF2C:
- movs r0, 0x8E
- lsls r0, 1
- adds r1, r5, r0
- ldr r0, _080ABF38
- b _080ABF94
- .align 2, 0
-_080ABF38: .4byte 0x20010000
-_080ABF3C:
- movs r2, 0x8E
- lsls r2, 1
- adds r1, r5, r2
- movs r0, 0x5
- b _080ABF94
-_080ABF46:
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r5, r3
- ldr r0, _080ABF50
- b _080ABF94
- .align 2, 0
-_080ABF50: .4byte 0x22000184
-_080ABF54:
- movs r0, 0x8E
- lsls r0, 1
- adds r1, r5, r0
- adds r0, 0x68
- b _080ABF94
-_080ABF5E:
- movs r2, 0x8E
- lsls r2, 1
- adds r1, r5, r2
- movs r0, 0x44
- b _080ABF94
-_080ABF68:
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r5, r3
- movs r0, 0x84
- b _080ABF94
-_080ABF72:
- movs r0, 0x8E
- lsls r0, 1
- adds r1, r5, r0
- adds r0, 0x64
- b _080ABF94
-_080ABF7C:
- movs r2, 0x8E
- lsls r2, 1
- adds r1, r5, r2
- ldr r0, _080ABF88
- b _080ABF94
- .align 2, 0
-_080ABF88: .4byte 0x020000c4
-_080ABF8C:
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r5, r3
- ldr r0, _080ABFA8
-_080ABF94:
- str r0, [r1]
- ldrb r0, [r6, 0x2]
- cmp r0, 0
- bne _080ABFAC
- mov r1, r8
- ldrb r0, [r1, 0x2]
- lsls r0, 11
- str r0, [r5, 0xC]
- ldrb r0, [r1, 0x3]
- b _080ABFB4
- .align 2, 0
-_080ABFA8: .4byte 0x02000185
-_080ABFAC:
- ldrb r0, [r6, 0x2]
- lsls r0, 11
- str r0, [r5, 0xC]
- ldrb r0, [r6, 0x3]
-_080ABFB4:
- lsls r0, 11
- str r0, [r5, 0x10]
- ldr r0, [r5, 0xC]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r5, 0x14]
- ldr r0, [r5, 0x10]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r5, 0x18]
- mov r2, r8
- ldrb r0, [r2, 0x1]
- strb r0, [r5, 0x1C]
- adds r2, 0x4
- adds r4, r5, 0
- adds r4, 0x20
- ldrb r1, [r2, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080ABFFC
- mov r3, r8
- 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 _080ABFFC
- movs r1, 0x80
- lsls r1, 3
- adds r0, r3, r1
- str r0, [r5, 0x20]
-_080ABFFC:
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080AC01E
- 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 _080AC01E
- movs r2, 0x80
- lsls r2, 3
- adds r0, r3, r2
- str r0, [r4, 0x4]
-_080AC01E:
- ldr r3, [sp, 0x10]
- cmp r3, 0
- beq _080AC076
- ldrb r1, [r5, 0x1C]
- movs r2, 0x90
- lsls r2, 1
- adds r0, r5, r2
- movs r3, 0
- strb r1, [r0]
- movs r0, 0x92
- lsls r0, 1
- adds r2, r5, r0
- ldr r0, [r5, 0x20]
- ldr r1, [r5, 0x14]
- subs r0, r1
- str r0, [r2]
- movs r1, 0x96
- lsls r1, 1
- adds r2, r5, r1
- ldr r0, [r5, 0x20]
- ldr r1, [r5, 0x14]
- adds r0, r1
- str r0, [r2]
- movs r0, 0x94
- lsls r0, 1
- adds r2, r5, r0
- ldr r0, [r5, 0x24]
- ldr r1, [r5, 0x18]
- subs r0, r1
- str r0, [r2]
- movs r1, 0x98
- lsls r1, 1
- adds r2, r5, r1
- ldr r0, [r5, 0x24]
- ldr r1, [r5, 0x18]
- adds r0, r1
- str r0, [r2]
- movs r2, 0x9A
- lsls r2, 1
- adds r1, r5, r2
- adds r2, 0x4
- adds r0, r5, r2
- str r3, [r0]
- str r3, [r1]
-_080AC076:
- adds r0, r5, 0
- adds r0, 0x28
- adds r1, r5, 0
- adds r1, 0x30
- bl sub_80A5778
- ldr r3, [sp, 0x10]
- cmp r3, 0
- beq _080AC0C0
- movs r0, 0x9F
- lsls r0, 1
- adds r1, r5, r0
- movs r2, 0
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1]
- movs r3, 0x9E
- lsls r3, 1
- adds r1, r5, r3
- movs r0, 0x1
- strb r0, [r1]
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r5, r1
- strh r2, [r0]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r5, r2
- movs r3, 0x6
- ldrsh r2, [r5, r3]
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r5, r3
- ldr r3, [r1]
- adds r1, r7, 0
- bl sub_80A75CC
-_080AC0C0:
- adds r4, r5, 0
- adds r4, 0x38
- ldr r1, _080AC154
- mov r0, r9
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r5, 0
- mov r3, r10
- bl sub_809D600
- adds r6, r4, 0
- mov r1, r8
- ldr r2, [r1, 0xC]
- cmp r2, 0
- bne _080AC0F2
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r5, r2
- bl sub_80A66A4
- lsls r0, 24
- ldr r2, _080AC158
- cmp r0, 0
- beq _080AC0F2
- ldr r2, _080AC15C
-_080AC0F2:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_809D6D8
- adds r1, r4, 0
- mov r3, r8
- ldr r2, [r3, 0x10]
- cmp r2, 0
- bne _080AC108
- ldr r0, _080AC160
- ldr r2, [r0, 0x38]
-_080AC108:
- adds r0, r1, 0
- movs r1, 0x2
- bl sub_809D6D8
- mov r0, r8
- ldr r2, [r0, 0x14]
- cmp r2, 0
- bne _080AC11C
- ldr r0, _080AC160
- ldr r2, [r0, 0x68]
-_080AC11C:
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_809D6D8
- mov r1, r8
- ldr r2, [r1, 0x8]
- cmp r2, 0
- beq _080AC140
- adds r0, r4, 0
- movs r1, 0
- bl sub_809D6D8
- ldr r3, _080AC164
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl sub_809D8C0
-_080AC140:
- adds r0, r7, 0
-_080AC142:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AC154: .4byte gUnknown_81182A0
-_080AC158: .4byte gUnknown_81182F4
-_080AC15C: .4byte gUnknown_8118350
-_080AC160: .4byte gUnknown_812F1F8
-_080AC164: .4byte gUnknown_81184A4
- thumb_func_end GroundObject_Add
-
- thumb_func_start GroundObject_Delete
-GroundObject_Delete:
- push {r4,lr}
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- ldr r1, _080AC1A4
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 4
- adds r0, r2
- lsls r0, 2
- ldr r1, [r1]
- adds r4, r1, r0
- ldr r1, _080AC1A8
- movs r0, 0
- bl Log
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r4, r1
- bl sub_80A7658
- adds r0, r4, 0
- adds r0, 0x38
- bl sub_809D648
- ldr r0, _080AC1AC
- strh r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC1A4: .4byte gUnknown_3001B88
-_080AC1A8: .4byte gUnknown_81184B0
-_080AC1AC: .4byte 0x0000ffff
- thumb_func_end GroundObject_Delete
-
- thumb_func_start sub_80AC1B0
-sub_80AC1B0:
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AC1F0
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080AC1EA
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r2, r1
- ldr r1, [r0]
- orrs r1, r3
- str r1, [r0]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- bl sub_80A6688
-_080AC1EA:
- pop {r0}
- bx r0
- .align 2, 0
-_080AC1F0: .4byte gUnknown_3001B88
- thumb_func_end sub_80AC1B0
-
- thumb_func_start sub_80AC1F4
-sub_80AC1F4:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AC238
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r3, r0, r1
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080AC232
- movs r0, 0x8E
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, _080AC23C
- eors r0, r4
- ldr r1, [r2]
- ands r1, r0
- str r1, [r2]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r3, r2
- bl sub_80A6688
-_080AC232:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AC238: .4byte gUnknown_3001B88
-_080AC23C: .4byte 0x337fffff
- thumb_func_end sub_80AC1F4
-
- thumb_func_start sub_80AC240
-sub_80AC240:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AC268
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AC26C
- movs r0, 0
- b _080AC270
- .align 2, 0
-_080AC268: .4byte gUnknown_3001B88
-_080AC26C:
- adds r0, r2, 0
- adds r0, 0x38
-_080AC270:
- pop {r1}
- bx r1
- thumb_func_end sub_80AC240
-
- thumb_func_start sub_80AC274
-sub_80AC274:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- asrs r0, 16
- lsls r2, 16
- asrs r3, r2, 16
- ldr r2, _080AC2A0
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AC2A4
- movs r0, 0
- b _080AC2B4
- .align 2, 0
-_080AC2A0: .4byte gUnknown_3001B88
-_080AC2A4:
- adds r0, r2, 0
- adds r0, 0x38
- adds r1, r4, 0
- adds r2, r3, 0
- bl sub_809D6E4
- lsls r0, 24
- lsrs r0, 24
-_080AC2B4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80AC274
-
- thumb_func_start GroundObject_ExecuteScript
-GroundObject_ExecuteScript:
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r3, 16
- asrs r3, 16
- ldr r1, _080AC2F4
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, [r1]
- adds r4, r1, r0
- ldr r1, _080AC2F8
- movs r0, 0
- adds r2, r3, 0
- bl Log
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AC2FC
- movs r0, 0
- b _080AC314
- .align 2, 0
-_080AC2F4: .4byte gUnknown_3001B88
-_080AC2F8: .4byte gUnknown_81184CC
-_080AC2FC:
- adds r0, r4, 0
- adds r0, 0x38
- ldr r3, _080AC31C
- adds r1, r5, 0
- adds r2, r6, 0
- bl GroundScript_ExecutePP
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
-_080AC314:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080AC31C: .4byte gUnknown_8118504
- thumb_func_end GroundObject_ExecuteScript
-
- thumb_func_start sub_80AC320
-sub_80AC320:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- asrs r7, r0, 16
- ldr r0, _080AC374
- ldr r4, [r0]
- movs r5, 0
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r6, 0x80
- lsls r6, 9
-_080AC33A:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, r8
- beq _080AC352
- 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
-_080AC352:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r0, 16
- movs r1, 0xE2
- lsls r1, 1
- adds r4, r1
- cmp r0, 0xF
- ble _080AC33A
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AC374: .4byte gUnknown_3001B88
- thumb_func_end sub_80AC320
-
- thumb_func_start sub_80AC378
-sub_80AC378:
- push {r4-r7,lr}
- ldr r0, _080AC3BC
- ldr r4, [r0]
- movs r5, 0
- movs r7, 0x1
- negs r7, r7
- movs r6, 0x80
- lsls r6, 9
-_080AC388:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, r7
- beq _080AC39E
- adds r0, r4, 0
- adds r0, 0x38
- bl sub_809D92C
- orrs r5, r0
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080AC39E:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r0, 16
- movs r1, 0xE2
- lsls r1, 1
- adds r4, r1
- cmp r0, 0xF
- ble _080AC388
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AC3BC: .4byte gUnknown_3001B88
- thumb_func_end sub_80AC378
-
- thumb_func_start sub_80AC3C0
-sub_80AC3C0:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AC3DC
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r0, r1
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080AC3DC: .4byte gUnknown_3001B88
- thumb_func_end sub_80AC3C0
-
- thumb_func_start sub_80AC3E0
-sub_80AC3E0:
- lsls r0, 16
- asrs r0, 16
- ldr r3, _080AC404
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, [r3]
- adds r0, r2
- movs r3, 0x8E
- lsls r3, 1
- adds r2, r0, r3
- ldr r2, [r2]
- str r2, [r1]
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080AC404: .4byte gUnknown_3001B88
- thumb_func_end sub_80AC3E0
-
- thumb_func_start sub_80AC408
-sub_80AC408:
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AC434
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AC438
- movs r0, 0
- str r0, [r3]
- str r0, [r3, 0x4]
- b _080AC440
- .align 2, 0
-_080AC434: .4byte gUnknown_3001B88
-_080AC438:
- ldr r0, [r2, 0xC]
- ldr r1, [r2, 0x10]
- str r0, [r3]
- str r1, [r3, 0x4]
-_080AC440:
- movs r1, 0x6
- ldrsh r0, [r2, r1]
- pop {r1}
- bx r1
- thumb_func_end sub_80AC408
-
- thumb_func_start sub_80AC448
-sub_80AC448:
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AC474
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AC478
- movs r0, 0
- str r0, [r3]
- b _080AC492
- .align 2, 0
-_080AC474: .4byte gUnknown_3001B88
-_080AC478:
- movs r1, 0x92
- lsls r1, 1
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r2, 0x14]
- adds r0, r1
- str r0, [r3]
- movs r1, 0x94
- lsls r1, 1
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r2, 0x18]
- adds r0, r1
-_080AC492:
- str r0, [r3, 0x4]
- movs r1, 0x6
- ldrsh r0, [r2, r1]
- pop {r1}
- bx r1
- thumb_func_end sub_80AC448
-
- thumb_func_start sub_80AC49C
-sub_80AC49C:
- push {r4,lr}
- lsls r0, 16
- asrs r0, 16
- ldr r3, _080AC4C4
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, [r3]
- adds r4, r2
- adds r0, r4, 0
- bl sub_80AC6AC
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AC4C4: .4byte gUnknown_3001B88
- thumb_func_end sub_80AC49C
-
- thumb_func_start sub_80AC4C8
-sub_80AC4C8:
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r4, r1, 0
- ldr r0, _080AC530
- ldr r3, [r0]
- movs r5, 0
- movs r0, 0x1
- negs r0, r0
- mov r12, r0
- movs r6, 0x80
- lsls r6, 9
-_080AC4DE:
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- cmp r0, r12
- beq _080AC534
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r3, r1
- ldr r0, [r0]
- ands r0, r7
- cmp r0, 0
- beq _080AC534
- adds r1, 0x8
- adds r0, r3, r1
- ldr r1, [r0]
- ldr r0, [r2]
- cmp r1, r0
- bge _080AC534
- movs r1, 0x96
- lsls r1, 1
- adds r0, r3, r1
- ldr r1, [r0]
- ldr r0, [r4]
- cmp r1, r0
- ble _080AC534
- movs r1, 0x94
- lsls r1, 1
- adds r0, r3, r1
- ldr r1, [r0]
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _080AC534
- movs r1, 0x98
- lsls r1, 1
- adds r0, r3, r1
- ldr r1, [r0]
- ldr r0, [r4, 0x4]
- cmp r1, r0
- ble _080AC534
- adds r0, r5, 0
- b _080AC54C
- .align 2, 0
-_080AC530: .4byte gUnknown_3001B88
-_080AC534:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r5, r0, 16
- movs r0, 0xE2
- lsls r0, 1
- adds r3, r0
- cmp r5, 0xF
- ble _080AC4DE
- movs r0, 0x1
- negs r0, r0
-_080AC54C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80AC4C8
-
- thumb_func_start sub_80AC554
-sub_80AC554:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- mov r10, r1
- adds r4, r2, 0
- ldr r0, _080AC5C8
- ldr r0, [r0]
- mov r12, r0
- movs r6, 0
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- movs r7, 0x80
- lsls r7, 9
-_080AC576:
- mov r1, r12
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, r9
- beq _080AC5CC
- movs r0, 0x8E
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- mov r5, r8
- ands r0, r5
- cmp r0, 0
- beq _080AC5CC
- movs r0, 0x92
- lsls r0, 1
- add r0, r12
- ldr r1, [r0]
- mov r5, r12
- ldr r0, [r5, 0x14]
- adds r2, r1, r0
- movs r0, 0x94
- lsls r0, 1
- add r0, r12
- ldr r1, [r0]
- ldr r0, [r5, 0x18]
- adds r3, r1, r0
- ldr r0, [r4]
- cmp r2, r0
- bge _080AC5CC
- mov r1, r10
- ldr r0, [r1]
- cmp r2, r0
- ble _080AC5CC
- ldr r0, [r4, 0x4]
- cmp r3, r0
- bge _080AC5CC
- ldr r0, [r1, 0x4]
- cmp r3, r0
- ble _080AC5CC
- adds r0, r6, 0
- b _080AC5E4
- .align 2, 0
-_080AC5C8: .4byte gUnknown_3001B88
-_080AC5CC:
- adds r0, r7, 0
- movs r2, 0x80
- lsls r2, 9
- adds r7, r2
- asrs r6, r0, 16
- movs r5, 0xE2
- lsls r5, 1
- add r12, r5
- cmp r6, 0xF
- ble _080AC576
- movs r0, 0x1
- negs r0, r0
-_080AC5E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80AC554
-
- thumb_func_start sub_80AC5F4
-sub_80AC5F4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- mov r8, r0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [r5]
- cmp r0, 0
- bge _080AC60C
- ldr r1, _080AC670
- adds r0, r1
-_080AC60C:
- asrs r0, 11
- mov r12, r0
- str r0, [sp]
- ldr r0, [r5, 0x4]
- cmp r0, 0
- bge _080AC61C
- ldr r3, _080AC670
- adds r0, r3
-_080AC61C:
- asrs r4, r0, 11
- str r4, [sp, 0x4]
- ldr r3, [r6]
- subs r0, r3, 0x1
- cmp r0, 0
- bge _080AC62C
- ldr r7, _080AC674
- adds r0, r3, r7
-_080AC62C:
- asrs r1, r0, 11
- ldr r3, [r6, 0x4]
- subs r0, r3, 0x1
- cmp r0, 0
- bge _080AC63A
- ldr r7, _080AC674
- adds r0, r3, r7
-_080AC63A:
- 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 r0, 0x8E
- lsls r0, 1
- add r0, r8
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AC678
- mov r0, sp
- adds r1, r2, 0
- bl sub_80A585C
- lsls r0, 24
- cmp r0, 0
- beq _080AC678
- movs r0, 0x1
- b _080AC6A0
- .align 2, 0
-_080AC670: .4byte 0x000007ff
-_080AC674: .4byte 0x000007fe
-_080AC678:
- movs r0, 0x8E
- lsls r0, 1
- add r0, r8
- ldr r0, [r0]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080AC69E
- movs r0, 0x1
- negs r0, r0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80A92A0
- lsls r0, 16
- cmp r0, 0
- blt _080AC69E
- movs r0, 0x4
- b _080AC6A0
-_080AC69E:
- movs r0, 0
-_080AC6A0:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80AC5F4
-
- thumb_func_start sub_80AC6AC
-sub_80AC6AC:
- 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 _080AC6EA
- ldr r1, [r5, 0x30]
- ldr r0, [sp, 0x8]
- cmp r0, r1
- bge _080AC6EA
- ldr r1, [r5, 0x2C]
- ldr r0, [sp, 0x4]
- cmp r0, r1
- blt _080AC6EA
- ldr r0, [r5, 0x34]
- cmp r3, r0
- blt _080AC6EE
-_080AC6EA:
- movs r0, 0x1
- b _080AC718
-_080AC6EE:
- adds r0, r5, 0
- mov r1, sp
- bl sub_80AC5F4
- cmp r0, 0
- bne _080AC718
- movs r0, 0x92
- lsls r0, 1
- adds r2, r5, r0
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x96
- 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
-_080AC718:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80AC6AC
-
- thumb_func_start sub_80AC720
-sub_80AC720:
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- movs r2, 0x92
- lsls r2, 1
- adds r0, r4, r2
- ldr r0, [r0]
- ldr r2, [r1]
- adds r0, r2
- str r0, [sp]
- movs r3, 0x94
- 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, 0x98
- lsls r2, 1
- adds r0, r4, r2
- ldr r0, [r0]
- adds r0, r1
- add r1, sp, 0x8
- str r0, [r1, 0x4]
- movs r5, 0
- ldr r3, [r4, 0x28]
- ldr r0, [sp]
- adds r2, r1, 0
- cmp r0, r3
- bge _080AC770
- str r3, [sp]
- ldr r0, [r4, 0xC]
- adds r0, r3, r0
- str r0, [sp, 0x8]
- b _080AC780
-_080AC770:
- ldr r1, [r4, 0x30]
- ldr r0, [sp, 0x8]
- cmp r0, r1
- blt _080AC782
- ldr r0, [r4, 0xC]
- subs r0, r1, r0
- str r0, [sp]
- str r1, [sp, 0x8]
-_080AC780:
- movs r5, 0x1
-_080AC782:
- ldr r1, [r4, 0x2C]
- ldr r0, [sp, 0x4]
- cmp r0, r1
- bge _080AC794
- str r1, [sp, 0x4]
- ldr r0, [r4, 0x10]
- adds r0, r1, r0
- str r0, [r2, 0x4]
- b _080AC7A4
-_080AC794:
- ldr r1, [r4, 0x34]
- ldr r0, [r2, 0x4]
- cmp r0, r1
- blt _080AC7A6
- ldr r0, [r4, 0x10]
- subs r0, r1, r0
- str r0, [sp, 0x4]
- str r1, [r2, 0x4]
-_080AC7A4:
- movs r5, 0x1
-_080AC7A6:
- adds r0, r4, 0
- mov r1, sp
- bl sub_80AC5F4
- cmp r0, 0
- bne _080AC7D8
- movs r3, 0x92
- lsls r3, 1
- adds r2, r4, r3
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x96
- lsls r0, 1
- adds r2, r4, r0
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0xC]
- str r0, [r2]
- str r1, [r2, 0x4]
- cmp r5, 0
- bne _080AC7D6
- movs r0, 0
- b _080AC7D8
-_080AC7D6:
- movs r0, 0x1
-_080AC7D8:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80AC720
-
- thumb_func_start sub_80AC7E0
-sub_80AC7E0:
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- bx lr
- thumb_func_end sub_80AC7E0
-
- thumb_func_start sub_80AC7E8
-sub_80AC7E8:
- ldr r2, [r0, 0xC]
- ldr r3, [r0, 0x10]
- str r2, [r1]
- str r3, [r1, 0x4]
- bx lr
- thumb_func_end sub_80AC7E8
-
- thumb_func_start sub_80AC7F4
-sub_80AC7F4:
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- beq _080AC834
- movs r0, 0x92
- lsls r0, 1
- adds r2, r3, r0
- ldr r1, [r4]
- ldr r0, [r3, 0x14]
- subs r0, r1, r0
- str r0, [r2]
- movs r0, 0x96
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x14]
- adds r1, r0
- str r1, [r2]
- movs r0, 0x94
- lsls r0, 1
- adds r2, r3, r0
- ldr r1, [r4, 0x4]
- ldr r0, [r3, 0x18]
- subs r0, r1, r0
- str r0, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x18]
- adds r1, r0
- str r1, [r2]
- b _080AC89A
-_080AC834:
- movs r0, 0x92
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x20]
- ldr r1, [r3, 0x14]
- subs r0, r1
- str r0, [r2]
- movs r0, 0x96
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x20]
- ldr r1, [r3, 0x14]
- adds r0, r1
- str r0, [r2]
- movs r0, 0x94
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x24]
- ldr r1, [r3, 0x18]
- subs r0, r1
- str r0, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x24]
- ldr r1, [r3, 0x18]
- adds r0, r1
- str r0, [r2]
- movs r2, 0x9A
- lsls r2, 1
- adds r1, r3, r2
- adds r2, 0x4
- adds r0, r3, r2
- str r4, [r0]
- str r4, [r1]
- movs r0, 0x90
- 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 _080AC896
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x1
- strb r0, [r1]
-_080AC896:
- ldrb r0, [r3, 0x1C]
- strb r0, [r2]
-_080AC89A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC7F4
-
- thumb_func_start sub_80AC8A0
-sub_80AC8A0:
- 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_80AC8A0
-
- thumb_func_start sub_80AC8B8
-sub_80AC8B8:
- adds r3, r0, 0
- movs r2, 0x92
- lsls r2, 1
- adds r0, r3, r2
- ldr r0, [r0]
- ldr r2, [r3, 0x14]
- adds r0, r2
- str r0, [r1]
- movs r2, 0x94
- 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_80AC8B8
-
- thumb_func_start sub_80AC8D8
-sub_80AC8D8:
- push {lr}
- bl sub_80AC6AC
- pop {r1}
- bx r1
- thumb_func_end sub_80AC8D8
-
- thumb_func_start sub_80AC8E4
-sub_80AC8E4:
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0x9A
- lsls r4, 1
- adds r0, r3, r4
- ldr r0, [r0]
- str r0, [r1]
- movs r1, 0x9C
- lsls r1, 1
- adds r0, r3, r1
- ldr r0, [r0]
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC8E4
-
- thumb_func_start sub_80AC904
-sub_80AC904:
- movs r2, 0x9A
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- bx lr
- thumb_func_end sub_80AC904
-
- thumb_func_start sub_80AC910
-sub_80AC910:
- movs r2, 0x90
- lsls r2, 1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- thumb_func_end sub_80AC910
-
- thumb_func_start sub_80AC91C
-sub_80AC91C:
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080AC934
- movs r3, 0x90
- lsls r3, 1
- adds r0, r2, r3
- strb r1, [r0]
-_080AC934:
- pop {r0}
- bx r0
- thumb_func_end sub_80AC91C
-
- thumb_func_start sub_80AC938
-sub_80AC938:
- push {r4,r5,lr}
- lsls r1, 16
- adds r3, r0, 0
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- cmp r0, 0
- beq _080AC958
- ldr r1, _080AC954
- lsls r0, 1
- adds r0, r1
- b _080AC95E
- .align 2, 0
-_080AC954: .4byte gUnknown_81183A0
-_080AC958:
- movs r5, 0x9F
- lsls r5, 1
- adds r0, r3, r5
-_080AC95E:
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r5, 0x9F
- lsls r5, 1
- adds r1, r3, r5
- ldrh r4, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r2
- beq _080AC97C
- strh r2, [r1]
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r3, r0
- b _080AC98C
-_080AC97C:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r4
- cmp r0, 0
- beq _080AC990
- movs r5, 0x9E
- lsls r5, 1
- adds r1, r3, r5
-_080AC98C:
- movs r0, 0x1
- strb r0, [r1]
-_080AC990:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AC938
-
- thumb_func_start sub_80AC998
-sub_80AC998:
- push {lr}
- lsls r1, 16
- asrs r1, 16
- adds r2, r1, 0
- cmp r1, 0
- bne _080AC9AA
- movs r1, 0xE0
- lsls r1, 1
- adds r2, r1, 0
-_080AC9AA:
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r1
- strh r2, [r0]
- pop {r0}
- bx r0
- thumb_func_end sub_80AC998
-
- thumb_func_start sub_80AC9B8
-sub_80AC9B8:
- push {lr}
- adds r1, r0, 0
- movs r2, 0x9E
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080AC9D6
- adds r2, 0x8
- adds r0, r1, r2
- bl sub_80A66F8
- lsls r0, 24
- lsrs r0, 24
- b _080AC9D8
-_080AC9D6:
- movs r0, 0x1
-_080AC9D8:
- pop {r1}
- bx r1
- thumb_func_end sub_80AC9B8
-
- thumb_func_start sub_80AC9DC
-sub_80AC9DC:
- push {lr}
- adds r1, r0, 0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080AC9FE
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r1, r2
- bl sub_80A671C
- lsls r0, 24
- lsrs r0, 24
- b _080ACA00
-_080AC9FE:
- movs r0, 0x1
-_080ACA00:
- pop {r1}
- bx r1
- thumb_func_end sub_80AC9DC
-
- thumb_func_start sub_80ACA04
-sub_80ACA04:
- movs r2, 0x8E
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- bx lr
- thumb_func_end sub_80ACA04
-
- thumb_func_start sub_80ACA10
-sub_80ACA10:
- push {lr}
- movs r2, 0x4
- ldrsh r0, [r0, r2]
- bl sub_80AC1B0
- pop {r0}
- bx r0
- thumb_func_end sub_80ACA10
-
- thumb_func_start sub_80ACA20
-sub_80ACA20:
- push {lr}
- movs r2, 0x4
- ldrsh r0, [r0, r2]
- bl sub_80AC1F4
- pop {r0}
- bx r0
- thumb_func_end sub_80ACA20
-
- thumb_func_start sub_80ACA30
-sub_80ACA30:
- push {lr}
- bl sub_80AC720
- pop {r1}
- bx r1
- thumb_func_end sub_80ACA30
-
- thumb_func_start GroundObject_Action
-GroundObject_Action:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080ACA7C
- ldr r5, [r0]
- movs r7, 0
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r1, 0x9E
- lsls r1, 1
- adds r6, r5, r1
-_080ACA54:
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r0, r8
- beq _080ACAB2
- adds r4, r5, 0
- adds r4, 0x38
- adds r0, r4, 0
- ldr r1, _080ACA80
- bl HandleAction
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _080ACA84
- cmp r0, 0x4
- bne _080ACA90
- adds r0, r7, 0
- bl GroundObject_Delete
- b _080ACAB2
- .align 2, 0
-_080ACA7C: .4byte gUnknown_3001B88
-_080ACA80: .4byte gUnknown_8118524
-_080ACA84:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- ldr r3, _080ACAD0
- bl sub_809D8C0
-_080ACA90:
- ldrb r0, [r6]
- cmp r0, 0
- beq _080ACAB2
- movs r0, 0
- strb r0, [r6]
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r5, r1
- ldrh r2, [r6, 0x2]
- movs r3, 0xF8
- lsls r3, 5
- adds r1, r3, 0
- ands r1, r2
- lsls r2, 24
- asrs r2, 24
- bl sub_80A6EFC
-_080ACAB2:
- adds r0, r7, 0x1
- lsls r0, 16
- asrs r7, r0, 16
- movs r0, 0xE2
- lsls r0, 1
- adds r6, r0
- adds r5, r0
- cmp r7, 0xF
- ble _080ACA54
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACAD0: .4byte gUnknown_8118530
- thumb_func_end GroundObject_Action
-
- thumb_func_start sub_80ACAD4
-sub_80ACAD4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r0, _080ACB8C
- ldr r6, [r0]
- movs r0, 0
- mov r8, r0
- movs r1, 0x1
- negs r1, r1
- mov r9, r1
- movs r2, 0x90
- lsls r2, 1
- adds r4, r6, r2
-_080ACAF2:
- movs r0, 0x6
- ldrsh r1, [r6, r0]
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- beq _080ACB64
- ldr r0, [r4, 0x4]
- ldr r1, [r6, 0x14]
- adds r0, r1
- str r0, [sp]
- ldr r0, [r4, 0x8]
- ldr r1, [r6, 0x18]
- adds r0, r1
- str r0, [sp, 0x4]
- ldr r1, [r4, 0x14]
- ldr r0, [r4, 0x18]
- adds r7, r1, r0
- movs r0, 0xA2
- lsls r0, 1
- adds r5, r6, r0
- adds r0, r5, 0
- bl sub_80A66D4
- lsls r0, 24
- cmp r0, 0
- beq _080ACB40
- movs r0, 0
- strb r0, [r4, 0x1C]
- ldrh r2, [r4, 0x1E]
- movs r0, 0xF8
- lsls r0, 5
- adds r1, r0, 0
- ands r1, r2
- lsls r2, 24
- asrs r2, 24
- adds r0, r5, 0
- bl sub_80A6EFC
-_080ACB40:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080ACB5A
- adds r1, r0, 0
- movs r2, 0
- ldrsb r2, [r4, r2]
- adds r0, r5, 0
- movs r3, 0
- bl sub_80A7040
- movs r0, 0
- strh r0, [r4, 0x20]
-_080ACB5A:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl sub_80A7664
-_080ACB64:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- movs r0, 0xE2
- lsls r0, 1
- adds r4, r0
- adds r6, r0
- mov r1, r8
- cmp r1, 0xF
- ble _080ACAF2
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACB8C: .4byte gUnknown_3001B88
- thumb_func_end sub_80ACAD4
-
- thumb_func_start sub_80ACB90
-sub_80ACB90:
- push {r4,r5,lr}
- ldr r4, _080ACBCC
- movs r0, 0xE2
- lsls r0, 5
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- adds r1, r0, 0
- ldr r0, _080ACBD0
- adds r5, r0, 0
- movs r4, 0xE2
- lsls r4, 1
- movs r2, 0x80
- lsls r2, 9
- adds r3, r2, 0
-_080ACBB0:
- ldrh r0, [r1, 0x6]
- orrs r0, r5
- strh r0, [r1, 0x6]
- adds r0, r2, 0
- adds r2, r3
- asrs r0, 16
- adds r1, r4
- cmp r0, 0xF
- ble _080ACBB0
- bl sub_80ACBD4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACBCC: .4byte gUnknown_3001B8C
-_080ACBD0: .4byte 0x0000ffff
- thumb_func_end sub_80ACB90
-
- thumb_func_start sub_80ACBD4
-sub_80ACBD4:
- push {r4-r6,lr}
- ldr r0, _080ACC0C
- ldr r4, [r0]
- movs r1, 0
- movs r6, 0x1
- negs r6, r6
- movs r5, 0x80
- lsls r5, 9
-_080ACBE4:
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, r6
- beq _080ACBF2
- adds r0, r1, 0
- bl GroundEffect_Delete
-_080ACBF2:
- adds r0, r5, 0
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- asrs r1, r0, 16
- movs r2, 0xE2
- lsls r2, 1
- adds r4, r2
- cmp r1, 0xF
- ble _080ACBE4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACC0C: .4byte gUnknown_3001B8C
- thumb_func_end sub_80ACBD4
-
- thumb_func_start sub_80ACC10
-sub_80ACC10:
- push {r4,lr}
- bl sub_80ACBD4
- ldr r4, _080ACC28
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACC28: .4byte gUnknown_3001B8C
- thumb_func_end sub_80ACC10
-
- thumb_func_start GroundEffect_Select
-GroundEffect_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, _080ACC90
- adds r0, r4, 0
- bl sub_80A77D0
- adds r5, r0, 0
- ldr r1, _080ACC94
- 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, 0x14]
- ldr r0, [r0, 0x10]
- cmp r0, 0
- ble _080ACC86
- adds r4, r0, 0
-_080ACC70:
- movs r0, 0x1
- negs r0, r0
- adds r1, r5, 0
- adds r2, r7, 0
- adds r3, r6, 0
- bl GroundEffect_Add
- subs r4, 0x1
- adds r5, 0xC
- cmp r4, 0
- bne _080ACC70
-_080ACC86:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACC90: .4byte gUnknown_8118610
-_080ACC94: .4byte gUnknown_811861C
- thumb_func_end GroundEffect_Select
-
- thumb_func_start GroundEffect_Cancel
-GroundEffect_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, _080ACD00
- movs r0, 0
- adds r2, r7, 0
- bl Log
- movs r1, 0
- ldr r0, _080ACD04
- ldr r4, [r0]
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r6, 0x80
- lsls r6, 9
-_080ACCC0:
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, r8
- beq _080ACCE2
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, r7
- bne _080ACCE2
- cmp r5, 0
- blt _080ACCDC
- movs r0, 0xA
- ldrsb r0, [r4, r0]
- cmp r0, r5
- bne _080ACCE2
-_080ACCDC:
- adds r0, r1, 0
- bl GroundEffect_Delete
-_080ACCE2:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r1, r0, 16
- movs r2, 0xE2
- lsls r2, 1
- adds r4, r2
- cmp r1, 0xF
- ble _080ACCC0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACD00: .4byte gUnknown_8118640
-_080ACD04: .4byte gUnknown_3001B8C
- thumb_func_end GroundEffect_Cancel
-
- thumb_func_start GroundEffect_CancelBlank
-GroundEffect_CancelBlank:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r1, _080ACD7C
- movs r0, 0
- bl Log
- movs r6, 0
- ldr r0, _080ACD80
- ldr r4, [r0]
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r1, 0x92
- lsls r1, 1
- adds r5, r4, r1
- mov r7, sp
-_080ACD2C:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, r8
- beq _080ACD5C
- 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, 0xA2
- lsls r1, 1
- adds r0, r4, r1
- mov r1, sp
- bl sub_80A675C
- lsls r0, 24
- cmp r0, 0
- bne _080ACD5C
- adds r0, r6, 0
- bl GroundEffect_Delete
-_080ACD5C:
- adds r0, r6, 0x1
- lsls r0, 16
- asrs r6, r0, 16
- movs r0, 0xE2
- lsls r0, 1
- adds r5, r0
- adds r4, r0
- cmp r6, 0xF
- ble _080ACD2C
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ACD7C: .4byte gUnknown_8118658
-_080ACD80: .4byte gUnknown_3001B8C
- thumb_func_end GroundEffect_CancelBlank
-
- thumb_func_start sub_80ACD84
-sub_80ACD84:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- movs r3, 0
- ldr r0, _080ACDA8
- ldr r1, [r0]
- movs r6, 0xE2
- lsls r6, 1
- movs r2, 0x80
- lsls r2, 9
- adds r5, r2, 0
-_080ACD9A:
- movs r7, 0x6
- ldrsh r0, [r1, r7]
- cmp r0, r4
- bne _080ACDAC
- adds r0, r3, 0
- b _080ACDBC
- .align 2, 0
-_080ACDA8: .4byte gUnknown_3001B8C
-_080ACDAC:
- adds r0, r2, 0
- adds r2, r5
- asrs r3, r0, 16
- adds r1, r6
- cmp r3, 0xF
- ble _080ACD9A
- movs r0, 0x1
- negs r0, r0
-_080ACDBC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80ACD84
-
- thumb_func_start GroundEffect_Add
-GroundEffect_Add:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r7, r1, 0
- lsls r0, 16
- asrs r6, r0, 16
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- lsls r3, 24
- asrs r3, 24
- mov r9, r3
- ldrb r0, [r7]
- lsls r0, 2
- ldr r1, _080ACE08
- adds r0, r1
- mov r8, r0
- ldr r3, _080ACE0C
- cmp r6, 0
- bge _080ACE38
- movs r2, 0
- ldr r5, [r3]
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ACE10
- movs r6, 0
- b _080ACE38
- .align 2, 0
-_080ACE08: .4byte gUnknown_811EE38
-_080ACE0C: .4byte gUnknown_3001B8C
-_080ACE10:
- adds r0, r2, 0x1
- lsls r0, 16
- asrs r2, r0, 16
- movs r1, 0xE2
- lsls r1, 1
- adds r5, r1
- cmp r2, 0xF
- bgt _080ACE2E
- movs r4, 0x6
- ldrsh r1, [r5, r4]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ACE10
- adds r6, r2, 0
-_080ACE2E:
- cmp r6, 0
- bge _080ACE38
- movs r0, 0x1
- negs r0, r0
- b _080AD062
-_080ACE38:
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, [r3]
- adds r5, r1, r0
- ldr r1, _080ACE9C
- ldrb r3, [r7]
- mov r2, r8
- movs r4, 0
- ldrsh r0, [r2, r4]
- str r0, [sp]
- mov r0, r10
- str r0, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- movs r0, 0
- adds r2, r6, 0
- bl Log
- movs r2, 0
- movs r3, 0x6
- ldrsh r1, [r5, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ACE72
- movs r2, 0x1
-_080ACE72:
- str r2, [sp, 0xC]
- strh r6, [r5, 0x4]
- ldrb r0, [r7]
- strh r0, [r5, 0x6]
- mov r4, r10
- strh r4, [r5, 0x8]
- mov r0, r9
- strb r0, [r5, 0xA]
- mov r1, r8
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bhi _080ACEEC
- lsls r0, 2
- ldr r1, _080ACEA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ACE9C: .4byte gUnknown_8118674
-_080ACEA0: .4byte _080ACEA4
- .align 2, 0
-_080ACEA4:
- .4byte _080ACEB8
- .4byte _080ACEEC
- .4byte _080ACEC4
- .4byte _080ACED0
- .4byte _080ACEDC
-_080ACEB8:
- movs r2, 0x8E
- lsls r2, 1
- adds r1, r5, r2
- movs r0, 0x81
- lsls r0, 22
- b _080ACEF4
-_080ACEC4:
- movs r4, 0x8E
- lsls r4, 1
- adds r1, r5, r4
- movs r0, 0x83
- lsls r0, 18
- b _080ACEF4
-_080ACED0:
- movs r0, 0x8E
- lsls r0, 1
- adds r1, r5, r0
- movs r0, 0x88
- lsls r0, 22
- b _080ACEF4
-_080ACEDC:
- movs r2, 0x8E
- lsls r2, 1
- adds r1, r5, r2
- ldr r0, _080ACEE8
- b _080ACEF4
- .align 2, 0
-_080ACEE8: .4byte 0x22020000
-_080ACEEC:
- movs r3, 0x8E
- lsls r3, 1
- adds r1, r5, r3
- ldr r0, _080ACF08
-_080ACEF4:
- str r0, [r1]
- mov r4, r8
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _080ACF0C
- ldrb r0, [r7, 0x2]
- lsls r0, 11
- str r0, [r5, 0xC]
- ldrb r0, [r7, 0x3]
- b _080ACF16
- .align 2, 0
-_080ACF08: .4byte 0x220c0000
-_080ACF0C:
- mov r1, r8
- ldrb r0, [r1, 0x2]
- lsls r0, 11
- str r0, [r5, 0xC]
- ldrb r0, [r1, 0x3]
-_080ACF16:
- lsls r0, 11
- str r0, [r5, 0x10]
- ldr r0, [r5, 0xC]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r5, 0x14]
- ldr r0, [r5, 0x10]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r5, 0x18]
- ldrb r0, [r7, 0x1]
- strb r0, [r5, 0x1C]
- adds r2, r7, 0x4
- adds r4, r5, 0
- adds r4, 0x20
- ldrb r1, [r2, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080ACF5A
- ldrb r0, [r7, 0x4]
- lsls r3, r0, 11
- str r3, [r5, 0x20]
- ldrb r1, [r2, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080ACF5A
- movs r1, 0x80
- lsls r1, 3
- adds r0, r3, r1
- str r0, [r5, 0x20]
-_080ACF5A:
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080ACF7C
- 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 _080ACF7C
- movs r2, 0x80
- lsls r2, 3
- adds r0, r3, r2
- str r0, [r4, 0x4]
-_080ACF7C:
- ldr r3, [sp, 0xC]
- cmp r3, 0
- beq _080ACFD2
- ldrb r1, [r5, 0x1C]
- movs r4, 0x90
- lsls r4, 1
- adds r0, r5, r4
- movs r3, 0
- strb r1, [r0]
- movs r0, 0x92
- lsls r0, 1
- adds r2, r5, r0
- ldr r0, [r5, 0x20]
- ldr r1, [r5, 0x14]
- subs r0, r1
- str r0, [r2]
- movs r1, 0x96
- lsls r1, 1
- adds r2, r5, r1
- ldr r0, [r5, 0x20]
- ldr r1, [r5, 0x14]
- adds r0, r1
- str r0, [r2]
- adds r4, 0x8
- adds r2, r5, r4
- ldr r0, [r5, 0x24]
- ldr r1, [r5, 0x18]
- subs r0, r1
- str r0, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r5, r0
- ldr r0, [r5, 0x24]
- ldr r1, [r5, 0x18]
- adds r0, r1
- str r0, [r2]
- movs r2, 0x9A
- lsls r2, 1
- adds r1, r5, r2
- adds r4, 0x10
- adds r0, r5, r4
- str r3, [r0]
- str r3, [r1]
-_080ACFD2:
- adds r0, r5, 0
- adds r0, 0x28
- adds r1, r5, 0
- adds r1, 0x30
- bl sub_80A5778
- ldr r0, [sp, 0xC]
- cmp r0, 0
- beq _080AD01A
- movs r2, 0x9F
- lsls r2, 1
- adds r1, r5, r2
- movs r2, 0
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1]
- movs r3, 0x9E
- lsls r3, 1
- adds r1, r5, r3
- movs r0, 0x1
- strb r0, [r1]
- movs r4, 0xA0
- lsls r4, 1
- adds r0, r5, r4
- strh r2, [r0]
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r5, r1
- movs r3, 0x6
- ldrsh r2, [r5, r3]
- subs r4, 0x24
- adds r1, r5, r4
- ldr r3, [r1]
- adds r1, r6, 0
- bl sub_80A7688
-_080AD01A:
- adds r4, r5, 0
- adds r4, 0x38
- ldr r1, _080AD074
- mov r0, r9
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r5, 0
- mov r3, r10
- bl sub_809D600
- ldr r2, [r7, 0x8]
- cmp r2, 0
- bne _080AD04C
- mov r1, r8
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- bne _080AD048
- ldr r0, _080AD078
- movs r1, 0xB0
- lsls r1, 2
- adds r0, r1
- ldr r2, [r0]
-_080AD048:
- cmp r2, 0
- beq _080AD060
-_080AD04C:
- adds r0, r4, 0
- movs r1, 0
- bl sub_809D6D8
- ldr r3, _080AD07C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl sub_809D8C0
-_080AD060:
- adds r0, r6, 0
-_080AD062:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AD074: .4byte gUnknown_8118544
-_080AD078: .4byte gUnknown_812F1F8
-_080AD07C: .4byte gUnknown_81186CC
- thumb_func_end GroundEffect_Add
-
- thumb_func_start GroundEffect_Delete
-GroundEffect_Delete:
- push {r4,lr}
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- ldr r1, _080AD0BC
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 4
- adds r0, r2
- lsls r0, 2
- ldr r1, [r1]
- adds r4, r1, r0
- ldr r1, _080AD0C0
- movs r0, 0
- bl Log
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r4, r1
- bl sub_80A7714
- adds r0, r4, 0
- adds r0, 0x38
- bl sub_809D648
- ldr r0, _080AD0C4
- strh r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD0BC: .4byte gUnknown_3001B8C
-_080AD0C0: .4byte gUnknown_81186D8
-_080AD0C4: .4byte 0x0000ffff
- thumb_func_end GroundEffect_Delete
-
- thumb_func_start sub_80AD0C8
-sub_80AD0C8:
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AD108
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080AD102
- movs r1, 0x8E
- lsls r1, 1
- adds r0, r2, r1
- ldr r1, [r0]
- orrs r1, r3
- str r1, [r0]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- bl sub_80A6688
-_080AD102:
- pop {r0}
- bx r0
- .align 2, 0
-_080AD108: .4byte gUnknown_3001B8C
- thumb_func_end sub_80AD0C8
-
- thumb_func_start sub_80AD10C
-sub_80AD10C:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AD150
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r3, r0, r1
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080AD14A
- movs r0, 0x8E
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, _080AD154
- eors r0, r4
- ldr r1, [r2]
- ands r1, r0
- str r1, [r2]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r3, r2
- bl sub_80A6688
-_080AD14A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD150: .4byte gUnknown_3001B8C
-_080AD154: .4byte 0x337fffff
- thumb_func_end sub_80AD10C
-
- thumb_func_start sub_80AD158
-sub_80AD158:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AD180
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AD184
- movs r0, 0
- b _080AD188
- .align 2, 0
-_080AD180: .4byte gUnknown_3001B8C
-_080AD184:
- adds r0, r2, 0
- adds r0, 0x38
-_080AD188:
- pop {r1}
- bx r1
- thumb_func_end sub_80AD158
-
- thumb_func_start sub_80AD18C
-sub_80AD18C:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- asrs r0, 16
- lsls r2, 16
- asrs r3, r2, 16
- ldr r2, _080AD1B8
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AD1BC
- movs r0, 0
- b _080AD1CC
- .align 2, 0
-_080AD1B8: .4byte gUnknown_3001B8C
-_080AD1BC:
- adds r0, r2, 0
- adds r0, 0x38
- adds r1, r4, 0
- adds r2, r3, 0
- bl sub_809D6E4
- lsls r0, 24
- lsrs r0, 24
-_080AD1CC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80AD18C
-
- thumb_func_start GroundEffect_ExecuteScript
-GroundEffect_ExecuteScript:
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r3, 16
- asrs r3, 16
- ldr r1, _080AD20C
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, [r1]
- adds r4, r1, r0
- ldr r1, _080AD210
- movs r0, 0
- adds r2, r3, 0
- bl Log
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AD214
- movs r0, 0
- b _080AD22C
- .align 2, 0
-_080AD20C: .4byte gUnknown_3001B8C
-_080AD210: .4byte gUnknown_81186F4
-_080AD214:
- adds r0, r4, 0
- adds r0, 0x38
- ldr r3, _080AD234
- adds r1, r5, 0
- adds r2, r6, 0
- bl GroundScript_ExecutePP
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
-_080AD22C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080AD234: .4byte gUnknown_811872C
- thumb_func_end GroundEffect_ExecuteScript
-
- thumb_func_start sub_80AD238
-sub_80AD238:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- asrs r7, r0, 16
- ldr r0, _080AD28C
- ldr r4, [r0]
- movs r5, 0
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r6, 0x80
- lsls r6, 9
-_080AD252:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, r8
- beq _080AD26A
- 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
-_080AD26A:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r0, 16
- movs r1, 0xE2
- lsls r1, 1
- adds r4, r1
- cmp r0, 0xF
- ble _080AD252
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AD28C: .4byte gUnknown_3001B8C
- thumb_func_end sub_80AD238
-
- thumb_func_start sub_80AD290
-sub_80AD290:
- push {r4-r7,lr}
- ldr r0, _080AD2D4
- ldr r4, [r0]
- movs r5, 0
- movs r7, 0x1
- negs r7, r7
- movs r6, 0x80
- lsls r6, 9
-_080AD2A0:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, r7
- beq _080AD2B6
- adds r0, r4, 0
- adds r0, 0x38
- bl sub_809D92C
- orrs r5, r0
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080AD2B6:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r0, 16
- movs r1, 0xE2
- lsls r1, 1
- adds r4, r1
- cmp r0, 0xF
- ble _080AD2A0
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080AD2D4: .4byte gUnknown_3001B8C
- thumb_func_end sub_80AD290
-
- thumb_func_start sub_80AD2D8
-sub_80AD2D8:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AD2F4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r0, r1
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080AD2F4: .4byte gUnknown_3001B8C
- thumb_func_end sub_80AD2D8
-
- thumb_func_start sub_80AD2F8
-sub_80AD2F8:
- lsls r0, 16
- asrs r0, 16
- ldr r3, _080AD31C
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, [r3]
- adds r0, r2
- movs r3, 0x8E
- lsls r3, 1
- adds r2, r0, r3
- ldr r2, [r2]
- str r2, [r1]
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080AD31C: .4byte gUnknown_3001B8C
- thumb_func_end sub_80AD2F8
-
- thumb_func_start sub_80AD320
-sub_80AD320:
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AD34C
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AD350
- movs r0, 0
- str r0, [r3]
- str r0, [r3, 0x4]
- b _080AD358
- .align 2, 0
-_080AD34C: .4byte gUnknown_3001B8C
-_080AD350:
- ldr r0, [r2, 0xC]
- ldr r1, [r2, 0x10]
- str r0, [r3]
- str r1, [r3, 0x4]
-_080AD358:
- movs r1, 0x6
- ldrsh r0, [r2, r1]
- pop {r1}
- bx r1
- thumb_func_end sub_80AD320
-
- thumb_func_start sub_80AD360
-sub_80AD360:
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080AD38C
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r2, r0, r1
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080AD390
- movs r0, 0
- str r0, [r3]
- b _080AD3AA
- .align 2, 0
-_080AD38C: .4byte gUnknown_3001B8C
-_080AD390:
- movs r1, 0x92
- lsls r1, 1
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r2, 0x14]
- adds r0, r1
- str r0, [r3]
- movs r1, 0x94
- lsls r1, 1
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r2, 0x18]
- adds r0, r1
-_080AD3AA:
- str r0, [r3, 0x4]
- movs r1, 0x6
- ldrsh r0, [r2, r1]
- pop {r1}
- bx r1
- thumb_func_end sub_80AD360
-
- thumb_func_start sub_80AD3B4
-sub_80AD3B4:
- push {r4,lr}
- lsls r0, 16
- asrs r0, 16
- ldr r3, _080AD3DC
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, [r3]
- adds r4, r2
- adds r0, r4, 0
- bl sub_80AD3E0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AD3DC: .4byte gUnknown_3001B8C
- thumb_func_end sub_80AD3B4
-
- thumb_func_start sub_80AD3E0
-sub_80AD3E0:
- push {r4-r7,lr}
- mov r12, r0
- ldr r3, [r1]
- ldr r2, [r0, 0x14]
- subs r6, r3, r2
- ldr r1, [r1, 0x4]
- ldr r0, [r0, 0x18]
- subs r7, r1, r0
- adds r4, r3, r2
- adds r5, r1, r0
- mov r1, r12
- ldr r0, [r1, 0x28]
- cmp r6, r0
- blt _080AD40E
- ldr r0, [r1, 0x30]
- cmp r4, r0
- bge _080AD40E
- ldr r0, [r1, 0x2C]
- cmp r7, r0
- blt _080AD40E
- ldr r0, [r1, 0x34]
- cmp r5, r0
- blt _080AD412
-_080AD40E:
- movs r0, 0x1
- b _080AD428
-_080AD412:
- movs r0, 0x92
- lsls r0, 1
- add r0, r12
- str r6, [r0]
- str r7, [r0, 0x4]
- movs r0, 0x96
- lsls r0, 1
- add r0, r12
- str r4, [r0]
- str r5, [r0, 0x4]
- movs r0, 0
-_080AD428:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80AD3E0
-
- thumb_func_start sub_80AD430
-sub_80AD430:
- push {r4-r6,lr}
- mov r12, r0
- movs r0, 0x92
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- ldr r2, [r1]
- adds r5, r0, r2
- movs r0, 0x94
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- ldr r1, [r1, 0x4]
- adds r6, r0, r1
- movs r0, 0x96
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- adds r3, r0, r2
- movs r0, 0x98
- lsls r0, 1
- add r0, r12
- ldr r0, [r0]
- adds r4, r0, r1
- mov r0, r12
- ldr r1, [r0, 0x28]
- cmp r5, r1
- bge _080AD470
- adds r5, r1, 0
- ldr r0, [r0, 0xC]
- adds r3, r1, r0
- b _080AD47E
-_080AD470:
- mov r2, r12
- ldr r1, [r2, 0x30]
- cmp r3, r1
- blt _080AD47E
- ldr r0, [r2, 0xC]
- subs r5, r1, r0
- adds r3, r1, 0
-_080AD47E:
- mov r0, r12
- ldr r1, [r0, 0x2C]
- cmp r6, r1
- bge _080AD48E
- adds r6, r1, 0
- ldr r0, [r0, 0x10]
- adds r4, r1, r0
- b _080AD49C
-_080AD48E:
- mov r2, r12
- ldr r1, [r2, 0x34]
- cmp r4, r1
- blt _080AD49C
- ldr r0, [r2, 0x10]
- subs r6, r1, r0
- adds r4, r1, 0
-_080AD49C:
- movs r0, 0x92
- lsls r0, 1
- add r0, r12
- str r5, [r0]
- str r6, [r0, 0x4]
- movs r0, 0x96
- lsls r0, 1
- add r0, r12
- str r3, [r0]
- str r4, [r0, 0x4]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80AD430
-
- thumb_func_start sub_80AD4B8
-sub_80AD4B8:
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- bx lr
- thumb_func_end sub_80AD4B8
-
- thumb_func_start sub_80AD4C0
-sub_80AD4C0:
- ldr r2, [r0, 0xC]
- ldr r3, [r0, 0x10]
- str r2, [r1]
- str r3, [r1, 0x4]
- bx lr
- thumb_func_end sub_80AD4C0
-
- thumb_func_start sub_80AD4CC
-sub_80AD4CC:
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- beq _080AD50C
- movs r0, 0x92
- lsls r0, 1
- adds r2, r3, r0
- ldr r1, [r4]
- ldr r0, [r3, 0x14]
- subs r0, r1, r0
- str r0, [r2]
- movs r0, 0x96
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x14]
- adds r1, r0
- str r1, [r2]
- movs r0, 0x94
- lsls r0, 1
- adds r2, r3, r0
- ldr r1, [r4, 0x4]
- ldr r0, [r3, 0x18]
- subs r0, r1, r0
- str r0, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x18]
- adds r1, r0
- str r1, [r2]
- b _080AD572
-_080AD50C:
- movs r0, 0x92
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x20]
- ldr r1, [r3, 0x14]
- subs r0, r1
- str r0, [r2]
- movs r0, 0x96
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x20]
- ldr r1, [r3, 0x14]
- adds r0, r1
- str r0, [r2]
- movs r0, 0x94
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x24]
- ldr r1, [r3, 0x18]
- subs r0, r1
- str r0, [r2]
- movs r0, 0x98
- lsls r0, 1
- adds r2, r3, r0
- ldr r0, [r3, 0x24]
- ldr r1, [r3, 0x18]
- adds r0, r1
- str r0, [r2]
- movs r2, 0x9A
- lsls r2, 1
- adds r1, r3, r2
- adds r2, 0x4
- adds r0, r3, r2
- str r4, [r0]
- str r4, [r1]
- movs r0, 0x90
- 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 _080AD56E
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x1
- strb r0, [r1]
-_080AD56E:
- ldrb r0, [r3, 0x1C]
- strb r0, [r2]
-_080AD572:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD4CC
-
- thumb_func_start sub_80AD578
-sub_80AD578:
- 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_80AD578
-
- thumb_func_start sub_80AD590
-sub_80AD590:
- adds r3, r0, 0
- movs r2, 0x92
- lsls r2, 1
- adds r0, r3, r2
- ldr r0, [r0]
- ldr r2, [r3, 0x14]
- adds r0, r2
- str r0, [r1]
- movs r2, 0x94
- 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_80AD590
-
- thumb_func_start sub_80AD5B0
-sub_80AD5B0:
- push {lr}
- bl sub_80AD3E0
- pop {r1}
- bx r1
- thumb_func_end sub_80AD5B0
-
- thumb_func_start sub_80AD5BC
-sub_80AD5BC:
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0x9A
- lsls r4, 1
- adds r0, r3, r4
- ldr r0, [r0]
- str r0, [r1]
- movs r1, 0x9C
- lsls r1, 1
- adds r0, r3, r1
- ldr r0, [r0]
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD5BC
-
- thumb_func_start sub_80AD5DC
-sub_80AD5DC:
- movs r2, 0x9A
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- bx lr
- thumb_func_end sub_80AD5DC
-
- thumb_func_start sub_80AD5E8
-sub_80AD5E8:
- movs r2, 0x90
- lsls r2, 1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- thumb_func_end sub_80AD5E8
-
- thumb_func_start sub_80AD5F4
-sub_80AD5F4:
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080AD60C
- movs r3, 0x90
- lsls r3, 1
- adds r0, r2, r3
- strb r1, [r0]
-_080AD60C:
- pop {r0}
- bx r0
- thumb_func_end sub_80AD5F4
-
- thumb_func_start sub_80AD610
-sub_80AD610:
- push {r4,r5,lr}
- lsls r1, 16
- adds r3, r0, 0
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- cmp r0, 0
- beq _080AD630
- ldr r1, _080AD62C
- lsls r0, 1
- adds r0, r1
- b _080AD636
- .align 2, 0
-_080AD62C: .4byte gUnknown_81185F2
-_080AD630:
- movs r5, 0x9F
- lsls r5, 1
- adds r0, r3, r5
-_080AD636:
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r5, 0x9F
- lsls r5, 1
- adds r1, r3, r5
- ldrh r4, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r2
- beq _080AD654
- strh r2, [r1]
- movs r0, 0x9E
- lsls r0, 1
- adds r1, r3, r0
- b _080AD664
-_080AD654:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r4
- cmp r0, 0
- beq _080AD668
- movs r5, 0x9E
- lsls r5, 1
- adds r1, r3, r5
-_080AD664:
- movs r0, 0x1
- strb r0, [r1]
-_080AD668:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80AD610
-
- thumb_func_start sub_80AD670
-sub_80AD670:
- push {lr}
- lsls r1, 16
- asrs r1, 16
- adds r2, r1, 0
- cmp r1, 0
- bne _080AD682
- movs r1, 0xE0
- lsls r1, 1
- adds r2, r1, 0
-_080AD682:
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r1
- strh r2, [r0]
- pop {r0}
- bx r0
- thumb_func_end sub_80AD670
-
- thumb_func_start sub_80AD690
-sub_80AD690:
- push {lr}
- adds r1, r0, 0
- movs r2, 0x9E
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080AD6AE
- adds r2, 0x8
- adds r0, r1, r2
- bl sub_80A66F8
- lsls r0, 24
- lsrs r0, 24
- b _080AD6B0
-_080AD6AE:
- movs r0, 0x1
-_080AD6B0:
- pop {r1}
- bx r1
- thumb_func_end sub_80AD690
-
- thumb_func_start sub_80AD6B4
-sub_80AD6B4:
- push {lr}
- adds r1, r0, 0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080AD6D6
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r1, r2
- bl sub_80A671C
- lsls r0, 24
- lsrs r0, 24
- b _080AD6D8
-_080AD6D6:
- movs r0, 0x1
-_080AD6D8:
- pop {r1}
- bx r1
- thumb_func_end sub_80AD6B4
-
- thumb_func_start sub_80AD6DC
-sub_80AD6DC:
- movs r2, 0x8E
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- bx lr
- thumb_func_end sub_80AD6DC
-
- thumb_func_start sub_80AD6E8
-sub_80AD6E8:
- push {lr}
- movs r2, 0x4
- ldrsh r0, [r0, r2]
- bl sub_80AD0C8
- pop {r0}
- bx r0
- thumb_func_end sub_80AD6E8
-
- thumb_func_start sub_80AD6F8
-sub_80AD6F8:
- push {lr}
- movs r2, 0x4
- ldrsh r0, [r0, r2]
- bl sub_80AD10C
- pop {r0}
- bx r0
- thumb_func_end sub_80AD6F8
-
- thumb_func_start sub_80AD708
-sub_80AD708:
- push {lr}
- bl sub_80AD430
- pop {r1}
- bx r1
- thumb_func_end sub_80AD708
-
- thumb_func_start GroundEffect_Action
-GroundEffect_Action:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080AD754
- ldr r5, [r0]
- movs r7, 0
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r1, 0x9E
- lsls r1, 1
- adds r6, r5, r1
-_080AD72C:
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r0, r8
- beq _080AD78A
- adds r4, r5, 0
- adds r4, 0x38
- adds r0, r4, 0
- ldr r1, _080AD758
- bl HandleAction
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _080AD75C
- cmp r0, 0x4
- bne _080AD768
- adds r0, r7, 0
- bl GroundEffect_Delete
- b _080AD78A
- .align 2, 0
-_080AD754: .4byte gUnknown_3001B8C
-_080AD758: .4byte gUnknown_811874C
-_080AD75C:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- ldr r3, _080AD7A8
- bl sub_809D8C0
-_080AD768:
- ldrb r0, [r6]
- cmp r0, 0
- beq _080AD78A
- movs r0, 0
- strb r0, [r6]
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r5, r1
- ldrh r2, [r6, 0x2]
- movs r3, 0xF8
- lsls r3, 5
- adds r1, r3, 0
- ands r1, r2
- lsls r2, 24
- asrs r2, 24
- bl sub_80A6EFC
-_080AD78A:
- adds r0, r7, 0x1
- lsls r0, 16
- asrs r7, r0, 16
- movs r0, 0xE2
- lsls r0, 1
- adds r6, r0
- adds r5, r0
- cmp r7, 0xF
- ble _080AD72C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD7A8: .4byte gUnknown_8118758
- thumb_func_end GroundEffect_Action
-
- thumb_func_start sub_80AD7AC
-sub_80AD7AC:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r0, _080AD864
- ldr r6, [r0]
- movs r0, 0
- mov r8, r0
- movs r1, 0x1
- negs r1, r1
- mov r9, r1
- movs r2, 0x90
- lsls r2, 1
- adds r4, r6, r2
-_080AD7CA:
- movs r0, 0x6
- ldrsh r1, [r6, r0]
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- beq _080AD83C
- ldr r0, [r4, 0x4]
- ldr r1, [r6, 0x14]
- adds r0, r1
- str r0, [sp]
- ldr r0, [r4, 0x8]
- ldr r1, [r6, 0x18]
- adds r0, r1
- str r0, [sp, 0x4]
- ldr r1, [r4, 0x14]
- ldr r0, [r4, 0x18]
- adds r7, r1, r0
- movs r0, 0xA2
- lsls r0, 1
- adds r5, r6, r0
- adds r0, r5, 0
- bl sub_80A66D4
- lsls r0, 24
- cmp r0, 0
- beq _080AD818
- movs r0, 0
- strb r0, [r4, 0x1C]
- ldrh r2, [r4, 0x1E]
- movs r0, 0xF8
- lsls r0, 5
- adds r1, r0, 0
- ands r1, r2
- lsls r2, 24
- asrs r2, 24
- adds r0, r5, 0
- bl sub_80A6EFC
-_080AD818:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080AD832
- adds r1, r0, 0
- movs r2, 0
- ldrsb r2, [r4, r2]
- adds r0, r5, 0
- movs r3, 0
- bl sub_80A7040
- movs r0, 0
- strh r0, [r4, 0x20]
-_080AD832:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl sub_80A7720
-_080AD83C:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- movs r0, 0xE2
- lsls r0, 1
- adds r4, r0
- adds r6, r0
- mov r1, r8
- cmp r1, 0xF
- ble _080AD7CA
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD864: .4byte gUnknown_3001B8C
- thumb_func_end sub_80AD7AC
-
- thumb_func_start sub_80AD868
-sub_80AD868:
- ldr r1, _080AD870
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080AD870: .4byte gUnknown_203B4B8
- thumb_func_end sub_80AD868
-
- thumb_func_start sub_80AD874
-sub_80AD874:
- ldr r1, _080AD87C
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080AD87C: .4byte gUnknown_203B4B8
- thumb_func_end sub_80AD874
-
- thumb_func_start GroundLink_Select
-GroundLink_Select:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- ldr r1, _080AD898
- bl sub_80A77D0
- ldr r1, _080AD89C
- ldr r0, [r0, 0x8]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080AD898: .4byte gUnknown_8118798
-_080AD89C: .4byte gUnknown_203B4B8
- thumb_func_end GroundLink_Select
-
- thumb_func_start sub_80AD8A0
-sub_80AD8A0:
- lsls r0, 16
- ldr r1, _080AD8B0
- asrs r0, 13
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_080AD8B0: .4byte gUnknown_203B4B8
- thumb_func_end sub_80AD8A0
-
- thumb_func_start sub_80AD8B4
-sub_80AD8B4:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- ldr r1, _080AD910
- asrs r0, 13
- ldr r1, [r1]
- adds r2, r1, r0
- ldrb r1, [r2, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080AD8E4
- ldrb r0, [r2]
- lsls r3, r0, 11
- str r3, [r4]
- ldrb r1, [r2, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080AD8E4
- movs r1, 0x80
- lsls r1, 3
- adds r0, r3, r1
- str r0, [r4]
-_080AD8E4:
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080AD906
- 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 _080AD906
- movs r1, 0x80
- lsls r1, 3
- adds r0, r3, r1
- str r0, [r4, 0x4]
-_080AD906:
- ldrb r0, [r2, 0x6]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AD910: .4byte gUnknown_203B4B8
- thumb_func_end sub_80AD8B4
-
- thumb_func_start sub_80AD914
-sub_80AD914:
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 16
- ldr r1, _080AD98C
- asrs r0, 13
- ldr r1, [r1]
- adds r2, r1, r0
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- ldrb r1, [r2, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080AD94E
- ldrb r0, [r2]
- lsls r3, r0, 11
- str r3, [r4]
- ldrb r1, [r2, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080AD94E
- movs r1, 0x80
- lsls r1, 3
- adds r0, r3, r1
- str r0, [r4]
-_080AD94E:
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080AD970
- 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 _080AD970
- movs r1, 0x80
- lsls r1, 3
- adds r0, r3, r1
- str r0, [r4, 0x4]
-_080AD970:
- ldrb r1, [r2, 0x4]
- lsls r1, 11
- ldr r0, [r4]
- adds r0, r1
- str r0, [r5]
- ldrb r1, [r2, 0x5]
- lsls r1, 11
- ldr r0, [r4, 0x4]
- adds r0, r1
- str r0, [r5, 0x4]
- ldrb r0, [r2, 0x6]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AD98C: .4byte gUnknown_203B4B8
- thumb_func_end sub_80AD914
-
- thumb_func_start sub_80AD990
-sub_80AD990:
- push {r4,lr}
- ldr r4, _080AD9C8
- movs r0, 0x80
- lsls r0, 3
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- adds r1, r0, 0
- ldr r0, _080AD9CC
- adds r4, r0, 0
- movs r2, 0x80
- lsls r2, 9
- adds r3, r2, 0
-_080AD9AC:
- ldrh r0, [r1, 0x2]
- orrs r0, r4
- strh r0, [r1, 0x2]
- adds r0, r2, 0
- adds r2, r3
- asrs r0, 16
- adds r1, 0x20
- cmp r0, 0x1F
- ble _080AD9AC
- bl sub_80AD9D0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AD9C8: .4byte gUnknown_3001B90
-_080AD9CC: .4byte 0x0000ffff
- thumb_func_end sub_80AD990
-
- thumb_func_start sub_80AD9D0
-sub_80AD9D0:
- push {r4-r6,lr}
- ldr r0, _080ADA04
- ldr r4, [r0]
- movs r1, 0
- movs r6, 0x1
- negs r6, r6
- movs r5, 0x80
- lsls r5, 9
-_080AD9E0:
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, r6
- beq _080AD9EE
- adds r0, r1, 0
- bl GroundEvent_Delete
-_080AD9EE:
- adds r0, r5, 0
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- asrs r1, r0, 16
- adds r4, 0x20
- cmp r1, 0x1F
- ble _080AD9E0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADA04: .4byte gUnknown_3001B90
- thumb_func_end sub_80AD9D0
-
- thumb_func_start sub_80ADA08
-sub_80ADA08:
- push {r4,lr}
- bl sub_80AD9D0
- ldr r4, _080ADA20
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADA20: .4byte gUnknown_3001B90
- thumb_func_end sub_80ADA08
-
- thumb_func_start GroundEvent_Select
-GroundEvent_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, _080ADA88
- adds r0, r4, 0
- bl sub_80A77D0
- adds r5, r0, 0
- ldr r1, _080ADA8C
- 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, 0x1C]
- ldr r0, [r0, 0x18]
- cmp r0, 0
- ble _080ADA7E
- adds r4, r0, 0
-_080ADA68:
- movs r0, 0x1
- negs r0, r0
- adds r1, r5, 0
- adds r2, r7, 0
- adds r3, r6, 0
- bl GroundEvent_Add
- subs r4, 0x1
- adds r5, 0xC
- cmp r4, 0
- bne _080ADA68
-_080ADA7E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADA88: .4byte gUnknown_81187DC
-_080ADA8C: .4byte gUnknown_81187E8
- thumb_func_end GroundEvent_Select
-
- thumb_func_start GroundEvent_Cancel
-GroundEvent_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, _080ADAF8
- movs r0, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl Log
- movs r1, 0
- ldr r0, _080ADAFC
- ldr r4, [r0]
- movs r0, 0x1
- negs r0, r0
- mov r8, r0
- movs r6, 0x80
- lsls r6, 9
-_080ADABA:
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, r8
- beq _080ADADC
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, r7
- bne _080ADADC
- cmp r5, 0
- blt _080ADAD6
- movs r0, 0x6
- ldrsb r0, [r4, r0]
- cmp r0, r5
- bne _080ADADC
-_080ADAD6:
- adds r0, r1, 0
- bl GroundEvent_Delete
-_080ADADC:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r1, r0, 16
- adds r4, 0x20
- cmp r1, 0x1F
- ble _080ADABA
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADAF8: .4byte gUnknown_811880C
-_080ADAFC: .4byte gUnknown_3001B90
- thumb_func_end GroundEvent_Cancel
-
- thumb_func_start GroundEvent_Add
-GroundEvent_Add:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r8, r1
- lsls r0, 16
- asrs r7, r0, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 24
- asrs r3, 24
- mov r9, r3
- ldr r5, [r1, 0x8]
- cmp r7, 0
- bge _080ADB60
- ldr r0, _080ADB38
- ldr r4, [r0]
- movs r2, 0
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ADB3C
- movs r7, 0
- b _080ADB68
- .align 2, 0
-_080ADB38: .4byte gUnknown_3001B90
-_080ADB3C:
- adds r0, r2, 0x1
- lsls r0, 16
- asrs r2, r0, 16
- adds r4, 0x20
- cmp r2, 0x1F
- bgt _080ADB56
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ADB3C
- adds r7, r2, 0
-_080ADB56:
- cmp r7, 0
- bge _080ADB68
- movs r0, 0x1
- negs r0, r0
- b _080ADC24
-_080ADB60:
- ldr r0, _080ADBA0
- lsls r1, r7, 5
- ldr r0, [r0]
- adds r4, r0, r1
-_080ADB68:
- ldr r1, _080ADBA4
- movs r0, 0
- ldrsh r3, [r5, r0]
- str r6, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- mov r2, r8
- ldr r0, [r2, 0x8]
- ldr r0, [r0, 0x8]
- str r0, [sp, 0x8]
- movs r0, 0
- adds r2, r7, 0
- bl Log
- strh r7, [r4]
- ldrh r0, [r5]
- strh r0, [r4, 0x2]
- strh r6, [r4, 0x4]
- mov r3, r9
- strb r3, [r4, 0x6]
- movs r6, 0x2
- ldrsh r0, [r5, r6]
- cmp r0, 0x1
- blt _080ADBA8
- cmp r0, 0x2
- bgt _080ADBA8
- movs r0, 0x60
- b _080ADBAA
- .align 2, 0
-_080ADBA0: .4byte gUnknown_3001B90
-_080ADBA4: .4byte gUnknown_8118828
-_080ADBA8:
- movs r0, 0x20
-_080ADBAA:
- str r0, [r4, 0x8]
- mov r3, r8
- ldrb r0, [r3]
- lsls r1, r0, 11
- ldrb r0, [r3, 0x1]
- lsls r2, r0, 11
- mov r5, r8
- adds r5, 0x4
- add r6, sp, 0xC
- mov r12, r6
- ldrb r6, [r5, 0x2]
- movs r0, 0x4
- ands r0, r6
- cmp r0, 0
- bne _080ADBDE
- ldrb r0, [r3, 0x4]
- lsls r3, r0, 11
- str r3, [sp, 0xC]
- movs r0, 0x2
- ands r0, r6
- cmp r0, 0
- beq _080ADBDE
- movs r6, 0x80
- lsls r6, 3
- adds r0, r3, r6
- str r0, [sp, 0xC]
-_080ADBDE:
- ldrb r6, [r5, 0x3]
- movs r0, 0x4
- ands r0, r6
- cmp r0, 0
- bne _080ADC02
- ldrb r0, [r5, 0x1]
- lsls r3, r0, 11
- mov r0, r12
- str r3, [r0, 0x4]
- movs r0, 0x2
- ands r0, r6
- cmp r0, 0
- beq _080ADC02
- movs r5, 0x80
- lsls r5, 3
- adds r0, r3, r5
- mov r6, r12
- str r0, [r6, 0x4]
-_080ADC02:
- ldr r0, [sp, 0xC]
- str r0, [r4, 0xC]
- ldr r0, [sp, 0xC]
- adds r0, r1
- str r0, [r4, 0x14]
- ldr r0, [sp, 0x10]
- str r0, [r4, 0x10]
- ldr r0, [sp, 0x10]
- adds r0, r2
- str r0, [r4, 0x18]
- mov r1, r8
- ldr r0, [r1, 0x8]
- ldr r0, [r0, 0x8]
- str r0, [r4, 0x1C]
- bl sub_80A7A78
- adds r0, r7, 0
-_080ADC24:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GroundEvent_Add
-
- thumb_func_start GroundEvent_Delete
-GroundEvent_Delete:
- push {r4,lr}
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- ldr r0, _080ADC58
- lsls r1, r2, 5
- ldr r4, [r0]
- adds r4, r1
- ldr r1, _080ADC5C
- movs r0, 0
- bl Log
- ldr r0, _080ADC60
- strh r0, [r4, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADC58: .4byte gUnknown_3001B90
-_080ADC5C: .4byte gUnknown_811886C
-_080ADC60: .4byte 0x0000ffff
- thumb_func_end GroundEvent_Delete
-
- thumb_func_start sub_80ADC64
-sub_80ADC64:
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- ldr r1, _080ADC84
- asrs r0, 11
- ldr r1, [r1]
- adds r2, r1, r0
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080ADC88
- movs r0, 0
- b _080ADC9A
- .align 2, 0
-_080ADC84: .4byte gUnknown_3001B90
-_080ADC88:
- ldr r0, [r2, 0x1C]
- str r0, [r3]
- movs r0, 0x2
- strh r0, [r3, 0x4]
- ldrh r0, [r2, 0x4]
- strh r0, [r3, 0x6]
- ldrb r0, [r2, 0x6]
- strb r0, [r3, 0x8]
- movs r0, 0x1
-_080ADC9A:
- pop {r1}
- bx r1
- thumb_func_end sub_80ADC64
-
- thumb_func_start sub_80ADCA0
-sub_80ADCA0:
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r4, r1, 0
- ldr r0, _080ADCEC
- ldr r3, [r0]
- movs r5, 0
- movs r0, 0x1
- negs r0, r0
- mov r12, r0
- movs r6, 0x80
- lsls r6, 9
-_080ADCB6:
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r0, r12
- beq _080ADCF0
- ldr r0, [r3, 0x8]
- ands r0, r7
- cmp r0, 0
- beq _080ADCF0
- ldr r1, [r3, 0xC]
- ldr r0, [r2]
- cmp r1, r0
- bge _080ADCF0
- ldr r1, [r3, 0x14]
- ldr r0, [r4]
- cmp r1, r0
- ble _080ADCF0
- ldr r1, [r3, 0x10]
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bge _080ADCF0
- ldr r1, [r3, 0x18]
- ldr r0, [r4, 0x4]
- cmp r1, r0
- ble _080ADCF0
- adds r0, r5, 0
- b _080ADD04
- .align 2, 0
-_080ADCEC: .4byte gUnknown_3001B90
-_080ADCF0:
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 9
- adds r6, r1
- asrs r5, r0, 16
- adds r3, 0x20
- cmp r5, 0x1F
- ble _080ADCB6
- movs r0, 0x1
- negs r0, r0
-_080ADD04:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80ADCA0
-
- thumb_func_start sub_80ADD0C
-sub_80ADD0C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- adds r6, r1, 0
- adds r5, r2, 0
- ldr r0, _080ADD74
- ldr r4, [r0]
- movs r7, 0
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- movs r1, 0x80
- lsls r1, 9
- mov r12, r1
-_080ADD2C:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, r9
- beq _080ADD78
- ldr r0, [r4, 0x8]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _080ADD78
- ldr r0, [r4, 0xC]
- ldr r1, [r4, 0x14]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r2, r0, 1
- ldr r0, [r4, 0x10]
- ldr r1, [r4, 0x18]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r3, r0, 1
- ldr r0, [r5]
- cmp r2, r0
- bge _080ADD78
- ldr r0, [r6]
- cmp r2, r0
- ble _080ADD78
- ldr r0, [r5, 0x4]
- cmp r3, r0
- bge _080ADD78
- ldr r0, [r6, 0x4]
- cmp r3, r0
- ble _080ADD78
- adds r0, r7, 0
- b _080ADD8C
- .align 2, 0
-_080ADD74: .4byte gUnknown_3001B90
-_080ADD78:
- mov r0, r12
- movs r1, 0x80
- lsls r1, 9
- add r12, r1
- asrs r7, r0, 16
- adds r4, 0x20
- cmp r7, 0x1F
- ble _080ADD2C
- movs r0, 0x1
- negs r0, r0
-_080ADD8C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80ADD0C
-
- thumb_func_start nullsub_124
-nullsub_124:
- bx lr
- thumb_func_end nullsub_124
-
- thumb_func_start sub_80ADD9C
-sub_80ADD9C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- str r2, [sp, 0x28]
- str r3, [sp, 0x2C]
- ldr r5, [sp, 0x54]
- ldr r0, [sp, 0x5C]
- mov r9, r0
- movs r0, 0x93
- lsls r0, 4
- movs r1, 0x7
- bl MemoryAlloc
- mov r10, r0
- ldr r0, _080ADEB4
- ldr r7, _080ADEB8
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r6, r0, 0
- add r4, sp, 0x1C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80901D8
- ldrb r5, [r4]
- ldrb r4, [r4, 0x1]
- cmp r5, 0x3E
- bls _080ADDE2
- movs r5, 0x3E
-_080ADDE2:
- cmp r4, 0
- bgt _080ADDE8
- movs r4, 0x1
-_080ADDE8:
- adds r0, r5, 0
- bl sub_8090298
- cmp r4, r0
- blt _080ADDFA
- adds r0, r5, 0
- bl sub_8090298
- subs r4, r0, 0x1
-_080ADDFA:
- ldr r2, [r6, 0x4]
- ldr r1, [r2]
- lsls r0, r5, 2
- adds r0, r1
- lsls r1, r4, 4
- ldr r0, [r0]
- adds r0, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- adds r0, r6, 0
- bl CloseFile
- ldr r1, _080ADEBC
- ldr r0, _080ADEC0
- add r0, r8
- ldrb r5, [r0]
- add r0, sp, 0x10
- adds r2, r5, 0
- bl sprintf
- add r0, sp, 0x10
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- movs r1, 0
- adds r2, r4, 0
- bl sub_800AE28
- adds r0, r4, 0
- bl CloseFile
- ldr r1, _080ADEC4
- add r0, sp, 0x10
- mov r2, r8
- bl sprintf
- add r0, sp, 0x10
- adds r1, r7, 0
- bl OpenFile
- ldr r1, [sp, 0x20]
- str r0, [r1]
- ldr r1, _080ADEC8
- add r0, sp, 0x10
- adds r2, r5, 0
- bl sprintf
- add r0, sp, 0x10
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- ldr r1, _080ADECC
- ldr r0, [sp, 0x2C]
- adds r2, r4, 0
- bl sub_800AAA8
- adds r0, r4, 0
- bl CloseFile
- mov r2, r8
- cmp r2, 0x3F
- bgt _080ADED4
- ldr r1, _080ADED0
- add r0, sp, 0x10
- adds r2, r5, 0
- bl sprintf
- add r0, sp, 0x10
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- mov r0, r10
- movs r1, 0x93
- lsls r1, 4
- adds r2, r4, 0
- bl sub_800AAA8
- adds r0, r4, 0
- bl CloseFile
- b _080ADEFC
- .align 2, 0
-_080ADEB4: .4byte gUnknown_8118890
-_080ADEB8: .4byte gUnknown_83B0000
-_080ADEBC: .4byte gUnknown_811889C
-_080ADEC0: .4byte gUnknown_8108EC0
-_080ADEC4: .4byte gUnknown_81188A8
-_080ADEC8: .4byte gUnknown_81188B4
-_080ADECC: .4byte 0x00001194
-_080ADED0: .4byte gUnknown_81188C0
-_080ADED4:
- ldr r1, _080ADF80
- add r0, sp, 0x10
- mov r2, r8
- ldr r3, [sp, 0x58]
- bl sprintf
- add r0, sp, 0x10
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- movs r1, 0x90
- lsls r1, 2
- mov r0, r10
- adds r2, r4, 0
- bl sub_800AAA8
- adds r0, r4, 0
- bl CloseFile
-_080ADEFC:
- movs r5, 0
- ldr r3, [sp, 0x60]
- cmp r5, r3
- bge _080ADF52
-_080ADF04:
- mov r0, r8
- bl sub_8097F40
- lsls r0, 24
- movs r7, 0
- cmp r0, 0
- beq _080ADF14
- movs r7, 0x3
-_080ADF14:
- movs r4, 0
- adds r6, r5, 0x1
- cmp r4, r9
- bge _080ADF4A
-_080ADF1C:
- ldr r0, [sp, 0x64]
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- mov r2, r8
- str r2, [sp, 0xC]
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, r9
- ldr r3, [sp, 0x60]
- bl sub_80ADFB8
- mov r1, r9
- muls r1, r5
- adds r1, r4
- lsls r1, 1
- ldr r3, [sp, 0x50]
- adds r1, r3
- strh r0, [r1]
- adds r4, 0x1
- cmp r4, r9
- blt _080ADF1C
-_080ADF4A:
- adds r5, r6, 0
- ldr r0, [sp, 0x60]
- cmp r5, r0
- blt _080ADF04
-_080ADF52:
- ldr r1, _080ADF84
- add r0, sp, 0x10
- mov r2, r8
- bl sprintf
- ldr r1, _080ADF88
- add r0, sp, 0x10
- bl OpenFile
- ldr r1, [sp, 0x24]
- str r0, [r1]
- mov r0, r10
- bl MemoryFree
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080ADF80: .4byte gUnknown_81188CC
-_080ADF84: .4byte gUnknown_81188DC
-_080ADF88: .4byte gUnknown_83B0000
- thumb_func_end sub_80ADD9C
-
- thumb_func_start sub_80ADF8C
-sub_80ADF8C:
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [sp, 0xC]
- cmp r4, 0
- blt _080ADFB0
- cmp r1, 0
- blt _080ADFB0
- cmp r4, r2
- bge _080ADFB0
- cmp r1, r3
- bge _080ADFB0
- adds r0, r1, 0
- muls r0, r2
- adds r0, r4, r0
- lsls r0, 1
- ldr r1, [sp, 0x8]
- adds r0, r1
- ldrh r0, [r0]
-_080ADFB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80ADF8C
-
- thumb_func_start sub_80ADFB8
-sub_80ADFB8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- mov r9, r0
- mov r10, r1
- adds r6, r2, 0
- mov r8, r3
- ldr r4, [sp, 0x5C]
- movs r7, 0
- ldr r0, [sp, 0x50]
- str r0, [sp]
- ldr r1, [sp, 0x54]
- str r1, [sp, 0x4]
- mov r0, r9
- mov r1, r10
- bl sub_80ADF8C
- str r0, [sp, 0x28]
- cmp r4, 0x3F
- ble _080AE000
- mov r0, r9
- cmp r0, 0x17
- bgt _080ADFFC
- mov r1, r10
- cmp r1, 0x17
- bgt _080ADFFC
- lsls r0, r1, 1
- add r0, r10
- lsls r0, 3
- add r0, r9
- b _080AE24E
-_080ADFFC:
- ldr r0, [sp, 0x54]
- b _080AE254
-_080AE000:
- mov r0, r10
- adds r0, 0x1
- str r0, [sp, 0x2C]
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x2C]
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- str r0, [sp, 0x8]
- mov r4, r9
- adds r4, 0x1
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- ldr r1, [sp, 0x2C]
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- str r0, [sp, 0xC]
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r1, r10
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- str r0, [sp, 0x10]
- mov r5, r10
- subs r5, 0x1
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- str r0, [sp, 0x14]
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- mov r0, r9
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- str r0, [sp, 0x18]
- subs r4, 0x2
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- str r0, [sp, 0x1C]
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r1, r10
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x50]
- str r1, [sp]
- ldr r0, [sp, 0x54]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- ldr r1, [sp, 0x2C]
- adds r2, r6, 0
- mov r3, r8
- bl sub_80ADF8C
- adds r1, r0, 0
- str r1, [sp, 0x24]
- ldr r0, [sp, 0x28]
- cmp r0, 0x1
- bne _080AE12A
- movs r7, 0xFF
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _080AE0D2
- movs r7, 0xFE
-_080AE0D2:
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _080AE0DE
- movs r0, 0x3
- negs r0, r0
- ands r7, r0
-_080AE0DE:
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _080AE0EA
- movs r0, 0x5
- negs r0, r0
- ands r7, r0
-_080AE0EA:
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _080AE0F6
- movs r0, 0x9
- negs r0, r0
- ands r7, r0
-_080AE0F6:
- ldr r0, [sp, 0x18]
- cmp r0, 0
- bne _080AE102
- movs r0, 0x11
- negs r0, r0
- ands r7, r0
-_080AE102:
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- bne _080AE10E
- movs r0, 0x21
- negs r0, r0
- ands r7, r0
-_080AE10E:
- ldr r0, [sp, 0x20]
- cmp r0, 0
- bne _080AE11A
- movs r0, 0x41
- negs r0, r0
- ands r7, r0
-_080AE11A:
- cmp r1, 0
- bne _080AE124
- movs r0, 0x81
- negs r0, r0
- ands r7, r0
-_080AE124:
- movs r0, 0x80
- lsls r0, 2
- b _080AE248
-_080AE12A:
- ldr r0, [sp, 0x28]
- cmp r0, 0x2
- bne _080AE192
- movs r7, 0xFF
- ldr r0, [sp, 0x8]
- cmp r0, 0x2
- beq _080AE13A
- movs r7, 0xFE
-_080AE13A:
- ldr r0, [sp, 0xC]
- cmp r0, 0x2
- beq _080AE146
- movs r0, 0x3
- negs r0, r0
- ands r7, r0
-_080AE146:
- ldr r0, [sp, 0x10]
- cmp r0, 0x2
- beq _080AE152
- movs r0, 0x5
- negs r0, r0
- ands r7, r0
-_080AE152:
- ldr r0, [sp, 0x14]
- cmp r0, 0x2
- beq _080AE15E
- movs r0, 0x9
- negs r0, r0
- ands r7, r0
-_080AE15E:
- ldr r0, [sp, 0x18]
- cmp r0, 0x2
- beq _080AE16A
- movs r0, 0x11
- negs r0, r0
- ands r7, r0
-_080AE16A:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x2
- beq _080AE176
- movs r0, 0x21
- negs r0, r0
- ands r7, r0
-_080AE176:
- ldr r0, [sp, 0x20]
- cmp r0, 0x2
- beq _080AE182
- movs r0, 0x41
- negs r0, r0
- ands r7, r0
-_080AE182:
- cmp r1, 0x2
- beq _080AE18C
- movs r0, 0x81
- negs r0, r0
- ands r7, r0
-_080AE18C:
- movs r0, 0x80
- lsls r0, 1
- b _080AE248
-_080AE192:
- ldr r1, [sp, 0x28]
- cmp r1, 0x3
- bne _080AE1FC
- movs r7, 0xFF
- ldr r0, [sp, 0x8]
- cmp r0, 0x3
- beq _080AE1A2
- movs r7, 0xFE
-_080AE1A2:
- ldr r0, [sp, 0xC]
- cmp r0, 0x3
- beq _080AE1AE
- movs r0, 0x3
- negs r0, r0
- ands r7, r0
-_080AE1AE:
- ldr r0, [sp, 0x10]
- cmp r0, 0x3
- beq _080AE1BA
- movs r0, 0x5
- negs r0, r0
- ands r7, r0
-_080AE1BA:
- ldr r0, [sp, 0x14]
- cmp r0, 0x3
- beq _080AE1C6
- movs r0, 0x9
- negs r0, r0
- ands r7, r0
-_080AE1C6:
- ldr r0, [sp, 0x18]
- cmp r0, 0x3
- beq _080AE1D2
- movs r0, 0x11
- negs r0, r0
- ands r7, r0
-_080AE1D2:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x3
- beq _080AE1DE
- movs r0, 0x21
- negs r0, r0
- ands r7, r0
-_080AE1DE:
- ldr r0, [sp, 0x20]
- cmp r0, 0x3
- beq _080AE1EA
- movs r0, 0x41
- negs r0, r0
- ands r7, r0
-_080AE1EA:
- ldr r0, [sp, 0x24]
- cmp r0, 0x3
- beq _080AE1F6
- movs r0, 0x81
- negs r0, r0
- ands r7, r0
-_080AE1F6:
- movs r0, 0x80
- lsls r0, 1
- b _080AE248
-_080AE1FC:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _080AE204
- movs r7, 0x1
-_080AE204:
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _080AE20E
- movs r0, 0x2
- orrs r7, r0
-_080AE20E:
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _080AE218
- movs r0, 0x4
- orrs r7, r0
-_080AE218:
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _080AE222
- movs r0, 0x8
- orrs r7, r0
-_080AE222:
- ldr r0, [sp, 0x18]
- cmp r0, 0
- bne _080AE22C
- movs r0, 0x10
- orrs r7, r0
-_080AE22C:
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- bne _080AE236
- movs r0, 0x20
- orrs r7, r0
-_080AE236:
- ldr r0, [sp, 0x20]
- cmp r0, 0
- bne _080AE240
- movs r0, 0x40
- orrs r7, r0
-_080AE240:
- ldr r0, [sp, 0x24]
- cmp r0, 0
- bne _080AE24A
- movs r0, 0x80
-_080AE248:
- orrs r7, r0
-_080AE24A:
- lsls r0, r7, 1
- adds r0, r7
-_080AE24E:
- ldr r1, [sp, 0x58]
- adds r0, r1, r0
- ldrb r0, [r0]
-_080AE254:
- 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_80ADFB8
-
.align 2,0
diff --git a/asm/code_80A7714.s b/asm/code_80A7714.s
new file mode 100644
index 0000000..b98dc95
--- /dev/null
+++ b/asm/code_80A7714.s
@@ -0,0 +1,14138 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A7764
+sub_80A7764:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ bl sub_80A7784
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _080A777A
+ ldr r0, _080A7780
+ strh r4, [r0]
+_080A777A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7780: .4byte gUnknown_2039DE0
+ thumb_func_end sub_80A7764
+
+ thumb_func_start sub_80A7784
+sub_80A7784:
+ push {lr}
+ ldr r2, _080A779C
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080A7796
+ strh r1, [r2]
+_080A7796:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A779C: .4byte gUnknown_2039DE0
+ thumb_func_end sub_80A7784
+
+ thumb_func_start sub_80A77A0
+sub_80A77A0:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r2, r1, 0
+ ldr r0, _080A77BC
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, r1
+ beq _080A77CA
+ cmp r1, 0
+ bge _080A77C0
+ bl sub_80A7784
+ b _080A77C6
+ .align 2, 0
+_080A77BC: .4byte gUnknown_2039DE0
+_080A77C0:
+ adds r0, r2, 0
+ bl sub_80A7764
+_080A77C6:
+ movs r0, 0x1
+ b _080A77CC
+_080A77CA:
+ movs r0, 0
+_080A77CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A77A0
+
+ thumb_func_start sub_80A77D0
+sub_80A77D0:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A77E8
+ ldr r0, _080A77E4
+ b _080A77F0
+ .align 2, 0
+_080A77E4: .4byte gUnknown_8117EFC
+_080A77E8:
+ ldr r0, _080A77F4
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+_080A77F0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A77F4: .4byte gUnknown_811E258
+ thumb_func_end sub_80A77D0
+
+ 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 sub_808D33C
+ 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 sub_808D33C
+ 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 sub_808D33C
+ 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 sub_808D33C
+ 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 gUnknown_203B45C
+_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 sub_808D33C
+ 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 gUnknown_203B45C
+_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 gUnknown_203B45C
+_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 sub_808D33C
+ 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 gUnknown_812F1F8
+_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 sub_808D33C
+ 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 gUnknown_203B45C
+_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 gUnknown_203B45C
+_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 sub_808D8BC
+ 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 gUnknown_811825C
+ 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 sub_8092310
+ 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
+
+ thumb_func_start sub_80ABB54
+sub_80ABB54:
+ push {r4,r5,lr}
+ ldr r4, _080ABB90
+ movs r0, 0xE2
+ lsls r0, 5
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ adds r1, r0, 0
+ ldr r0, _080ABB94
+ adds r5, r0, 0
+ movs r4, 0xE2
+ lsls r4, 1
+ movs r2, 0x80
+ lsls r2, 9
+ adds r3, r2, 0
+_080ABB74:
+ ldrh r0, [r1, 0x6]
+ orrs r0, r5
+ strh r0, [r1, 0x6]
+ adds r0, r2, 0
+ adds r2, r3
+ asrs r0, 16
+ adds r1, r4
+ cmp r0, 0xF
+ ble _080ABB74
+ bl sub_80ABB98
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABB90: .4byte gUnknown_3001B88
+_080ABB94: .4byte 0x0000ffff
+ thumb_func_end sub_80ABB54
+
+ thumb_func_start sub_80ABB98
+sub_80ABB98:
+ push {r4-r6,lr}
+ ldr r0, _080ABBD0
+ ldr r4, [r0]
+ movs r1, 0
+ movs r6, 0x1
+ negs r6, r6
+ movs r5, 0x80
+ lsls r5, 9
+_080ABBA8:
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, r6
+ beq _080ABBB6
+ adds r0, r1, 0
+ bl GroundObject_Delete
+_080ABBB6:
+ adds r0, r5, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r5, r1
+ asrs r1, r0, 16
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r4, r2
+ cmp r1, 0xF
+ ble _080ABBA8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABBD0: .4byte gUnknown_3001B88
+ thumb_func_end sub_80ABB98
+
+ thumb_func_start sub_80ABBD4
+sub_80ABBD4:
+ push {r4,lr}
+ bl sub_80ABB98
+ ldr r4, _080ABBEC
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABBEC: .4byte gUnknown_3001B88
+ thumb_func_end sub_80ABBD4
+
+ thumb_func_start GroundObject_Select
+GroundObject_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, _080ABC54
+ adds r0, r4, 0
+ bl sub_80A77D0
+ adds r5, r0, 0
+ ldr r1, _080ABC58
+ 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, 0xC]
+ ldr r0, [r0, 0x8]
+ cmp r0, 0
+ ble _080ABC4A
+ adds r4, r0, 0
+_080ABC34:
+ movs r0, 0x1
+ negs r0, r0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl GroundObject_Add
+ subs r4, 0x1
+ adds r5, 0x18
+ cmp r4, 0
+ bne _080ABC34
+_080ABC4A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABC54: .4byte gUnknown_81183E4
+_080ABC58: .4byte gUnknown_81183F0
+ thumb_func_end GroundObject_Select
+
+ thumb_func_start GroundObject_Cancel
+GroundObject_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, _080ABCC4
+ movs r0, 0
+ adds r2, r7, 0
+ bl Log
+ movs r1, 0
+ ldr r0, _080ABCC8
+ ldr r4, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r6, 0x80
+ lsls r6, 9
+_080ABC84:
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, r8
+ beq _080ABCA6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, r7
+ bne _080ABCA6
+ cmp r5, 0
+ blt _080ABCA0
+ movs r0, 0xA
+ ldrsb r0, [r4, r0]
+ cmp r0, r5
+ bne _080ABCA6
+_080ABCA0:
+ adds r0, r1, 0
+ bl GroundObject_Delete
+_080ABCA6:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r1, r0, 16
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r4, r2
+ cmp r1, 0xF
+ ble _080ABC84
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABCC4: .4byte gUnknown_8118414
+_080ABCC8: .4byte gUnknown_3001B88
+ thumb_func_end GroundObject_Cancel
+
+ thumb_func_start GroundObject_CancelBlank
+GroundObject_CancelBlank:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r1, _080ABD40
+ movs r0, 0
+ bl Log
+ movs r6, 0
+ ldr r0, _080ABD44
+ ldr r4, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r1, 0x92
+ lsls r1, 1
+ adds r5, r4, r1
+ mov r7, sp
+_080ABCF0:
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, r8
+ beq _080ABD20
+ 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, 0xA2
+ lsls r1, 1
+ adds r0, r4, r1
+ mov r1, sp
+ bl sub_80A675C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ABD20
+ adds r0, r6, 0
+ bl GroundObject_Delete
+_080ABD20:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ asrs r6, r0, 16
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r5, r0
+ adds r4, r0
+ cmp r6, 0xF
+ ble _080ABCF0
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ABD40: .4byte gUnknown_811842C
+_080ABD44: .4byte gUnknown_3001B88
+ thumb_func_end GroundObject_CancelBlank
+
+ thumb_func_start sub_80ABD48
+sub_80ABD48:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r3, 0
+ ldr r0, _080ABD6C
+ ldr r1, [r0]
+ movs r6, 0xE2
+ lsls r6, 1
+ movs r2, 0x80
+ lsls r2, 9
+ adds r5, r2, 0
+_080ABD5E:
+ movs r7, 0x6
+ ldrsh r0, [r1, r7]
+ cmp r0, r4
+ bne _080ABD70
+ adds r0, r3, 0
+ b _080ABD80
+ .align 2, 0
+_080ABD6C: .4byte gUnknown_3001B88
+_080ABD70:
+ adds r0, r2, 0
+ adds r2, r5
+ asrs r3, r0, 16
+ adds r1, r6
+ cmp r3, 0xF
+ ble _080ABD5E
+ movs r0, 0x1
+ negs r0, r0
+_080ABD80:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80ABD48
+
+ thumb_func_start GroundObject_Add
+GroundObject_Add:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r8, r1
+ lsls r0, 16
+ asrs r7, r0, 16
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ lsls r3, 24
+ asrs r3, 24
+ mov r9, r3
+ ldrb r4, [r1]
+ cmp r4, 0x1A
+ bne _080ABDDA
+ movs r0, 0
+ movs r1, 0x28
+ bl sub_8001658
+ cmp r0, 0x1
+ bgt _080ABDBC
+ movs r4, 0x1B
+ b _080ABDDA
+_080ABDBC:
+ movs r0, 0
+ movs r1, 0x29
+ bl sub_8001658
+ cmp r0, 0
+ bne _080ABDD4
+ movs r0, 0
+ movs r1, 0x27
+ bl sub_8001658
+ adds r0, 0x1C
+ b _080ABDD6
+_080ABDD4:
+ adds r0, 0x2B
+_080ABDD6:
+ lsls r0, 16
+ asrs r4, r0, 16
+_080ABDDA:
+ lsls r1, r4, 2
+ ldr r0, _080ABE10
+ adds r6, r1, r0
+ cmp r7, 0
+ bge _080ABE40
+ cmp r4, 0xE
+ bgt _080ABDF4
+ cmp r4, 0xD
+ blt _080ABDF4
+ adds r0, r4, 0
+ bl sub_80ABD48
+ adds r7, r0, 0
+_080ABDF4:
+ cmp r7, 0
+ bge _080ABE40
+ movs r3, 0
+ ldr r0, _080ABE14
+ ldr r5, [r0]
+ movs r0, 0x6
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ABE18
+ movs r7, 0
+ b _080ABE40
+ .align 2, 0
+_080ABE10: .4byte gUnknown_811ED20
+_080ABE14: .4byte gUnknown_3001B88
+_080ABE18:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ asrs r3, r0, 16
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r5, r1
+ cmp r3, 0xF
+ bgt _080ABE36
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ABE18
+ adds r7, r3, 0
+_080ABE36:
+ cmp r7, 0
+ bge _080ABE40
+ movs r0, 0x1
+ negs r0, r0
+ b _080AC142
+_080ABE40:
+ ldr r1, _080ABEA8
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, [r1]
+ adds r5, r1, r0
+ ldr r1, _080ABEAC
+ mov r3, r8
+ ldrb r0, [r3]
+ str r0, [sp]
+ movs r2, 0
+ ldrsh r0, [r6, r2]
+ str r0, [sp, 0x4]
+ mov r3, r10
+ str r3, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ movs r0, 0
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl Log
+ movs r2, 0
+ movs r3, 0x6
+ ldrsh r1, [r5, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ABE80
+ movs r2, 0x1
+_080ABE80:
+ str r2, [sp, 0x10]
+ strh r7, [r5, 0x4]
+ strh r4, [r5, 0x6]
+ mov r0, r10
+ strh r0, [r5, 0x8]
+ mov r1, r9
+ strb r1, [r5, 0xA]
+ ldrh r0, [r6]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bls _080ABE9C
+ b _080ABF8C
+_080ABE9C:
+ lsls r0, 2
+ ldr r1, _080ABEB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ABEA8: .4byte gUnknown_3001B88
+_080ABEAC: .4byte gUnknown_8118448
+_080ABEB0: .4byte _080ABEB4
+ .align 2, 0
+_080ABEB4:
+ .4byte _080ABEF0
+ .4byte _080ABF7C
+ .4byte _080ABF46
+ .4byte _080ABF54
+ .4byte _080ABF54
+ .4byte _080ABF5E
+ .4byte _080ABF68
+ .4byte _080ABF72
+ .4byte _080ABF3C
+ .4byte _080ABEFA
+ .4byte _080ABEF0
+ .4byte _080ABF06
+ .4byte _080ABF2C
+ .4byte _080ABF1E
+ .4byte _080ABF12
+_080ABEF0:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r1, r5, r2
+ movs r0, 0
+ b _080ABF94
+_080ABEFA:
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r5, r3
+ movs r0, 0x80
+ lsls r0, 10
+ b _080ABF94
+_080ABF06:
+ movs r0, 0x8E
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x80
+ lsls r0, 11
+ b _080ABF94
+_080ABF12:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r1, r5, r2
+ movs r0, 0x83
+ lsls r0, 18
+ b _080ABF94
+_080ABF1E:
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r5, r3
+ ldr r0, _080ABF28
+ b _080ABF94
+ .align 2, 0
+_080ABF28: .4byte 0x220c0000
+_080ABF2C:
+ movs r0, 0x8E
+ lsls r0, 1
+ adds r1, r5, r0
+ ldr r0, _080ABF38
+ b _080ABF94
+ .align 2, 0
+_080ABF38: .4byte 0x20010000
+_080ABF3C:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r1, r5, r2
+ movs r0, 0x5
+ b _080ABF94
+_080ABF46:
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r5, r3
+ ldr r0, _080ABF50
+ b _080ABF94
+ .align 2, 0
+_080ABF50: .4byte 0x22000184
+_080ABF54:
+ movs r0, 0x8E
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, 0x68
+ b _080ABF94
+_080ABF5E:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r1, r5, r2
+ movs r0, 0x44
+ b _080ABF94
+_080ABF68:
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r5, r3
+ movs r0, 0x84
+ b _080ABF94
+_080ABF72:
+ movs r0, 0x8E
+ lsls r0, 1
+ adds r1, r5, r0
+ adds r0, 0x64
+ b _080ABF94
+_080ABF7C:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r1, r5, r2
+ ldr r0, _080ABF88
+ b _080ABF94
+ .align 2, 0
+_080ABF88: .4byte 0x020000c4
+_080ABF8C:
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r5, r3
+ ldr r0, _080ABFA8
+_080ABF94:
+ str r0, [r1]
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0
+ bne _080ABFAC
+ mov r1, r8
+ ldrb r0, [r1, 0x2]
+ lsls r0, 11
+ str r0, [r5, 0xC]
+ ldrb r0, [r1, 0x3]
+ b _080ABFB4
+ .align 2, 0
+_080ABFA8: .4byte 0x02000185
+_080ABFAC:
+ ldrb r0, [r6, 0x2]
+ lsls r0, 11
+ str r0, [r5, 0xC]
+ ldrb r0, [r6, 0x3]
+_080ABFB4:
+ lsls r0, 11
+ str r0, [r5, 0x10]
+ ldr r0, [r5, 0xC]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r5, 0x14]
+ ldr r0, [r5, 0x10]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r5, 0x18]
+ mov r2, r8
+ ldrb r0, [r2, 0x1]
+ strb r0, [r5, 0x1C]
+ adds r2, 0x4
+ adds r4, r5, 0
+ adds r4, 0x20
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080ABFFC
+ mov r3, r8
+ 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 _080ABFFC
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r3, r1
+ str r0, [r5, 0x20]
+_080ABFFC:
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080AC01E
+ 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 _080AC01E
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r3, r2
+ str r0, [r4, 0x4]
+_080AC01E:
+ ldr r3, [sp, 0x10]
+ cmp r3, 0
+ beq _080AC076
+ ldrb r1, [r5, 0x1C]
+ movs r2, 0x90
+ lsls r2, 1
+ adds r0, r5, r2
+ movs r3, 0
+ strb r1, [r0]
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r5, r0
+ ldr r0, [r5, 0x20]
+ ldr r1, [r5, 0x14]
+ subs r0, r1
+ str r0, [r2]
+ movs r1, 0x96
+ lsls r1, 1
+ adds r2, r5, r1
+ ldr r0, [r5, 0x20]
+ ldr r1, [r5, 0x14]
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r2, r5, r0
+ ldr r0, [r5, 0x24]
+ ldr r1, [r5, 0x18]
+ subs r0, r1
+ str r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r2, r5, r1
+ ldr r0, [r5, 0x24]
+ ldr r1, [r5, 0x18]
+ adds r0, r1
+ str r0, [r2]
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r1, r5, r2
+ adds r2, 0x4
+ adds r0, r5, r2
+ str r3, [r0]
+ str r3, [r1]
+_080AC076:
+ adds r0, r5, 0
+ adds r0, 0x28
+ adds r1, r5, 0
+ adds r1, 0x30
+ bl sub_80A5778
+ ldr r3, [sp, 0x10]
+ cmp r3, 0
+ beq _080AC0C0
+ movs r0, 0x9F
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r1]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r1, r5, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r0, r5, r1
+ strh r2, [r0]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r5, r2
+ movs r3, 0x6
+ ldrsh r2, [r5, r3]
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r5, r3
+ ldr r3, [r1]
+ adds r1, r7, 0
+ bl sub_80A75CC
+_080AC0C0:
+ adds r4, r5, 0
+ adds r4, 0x38
+ ldr r1, _080AC154
+ mov r0, r9
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ mov r3, r10
+ bl sub_809D600
+ adds r6, r4, 0
+ mov r1, r8
+ ldr r2, [r1, 0xC]
+ cmp r2, 0
+ bne _080AC0F2
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r5, r2
+ bl sub_80A66A4
+ lsls r0, 24
+ ldr r2, _080AC158
+ cmp r0, 0
+ beq _080AC0F2
+ ldr r2, _080AC15C
+_080AC0F2:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_809D6D8
+ adds r1, r4, 0
+ mov r3, r8
+ ldr r2, [r3, 0x10]
+ cmp r2, 0
+ bne _080AC108
+ ldr r0, _080AC160
+ ldr r2, [r0, 0x38]
+_080AC108:
+ adds r0, r1, 0
+ movs r1, 0x2
+ bl sub_809D6D8
+ mov r0, r8
+ ldr r2, [r0, 0x14]
+ cmp r2, 0
+ bne _080AC11C
+ ldr r0, _080AC160
+ ldr r2, [r0, 0x68]
+_080AC11C:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_809D6D8
+ mov r1, r8
+ ldr r2, [r1, 0x8]
+ cmp r2, 0
+ beq _080AC140
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_809D6D8
+ ldr r3, _080AC164
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_809D8C0
+_080AC140:
+ adds r0, r7, 0
+_080AC142:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AC154: .4byte gUnknown_81182A0
+_080AC158: .4byte gUnknown_81182F4
+_080AC15C: .4byte gUnknown_8118350
+_080AC160: .4byte gUnknown_812F1F8
+_080AC164: .4byte gUnknown_81184A4
+ thumb_func_end GroundObject_Add
+
+ thumb_func_start GroundObject_Delete
+GroundObject_Delete:
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ ldr r1, _080AC1A4
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldr r1, _080AC1A8
+ movs r0, 0
+ bl Log
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r4, r1
+ bl sub_80A7658
+ adds r0, r4, 0
+ adds r0, 0x38
+ bl sub_809D648
+ ldr r0, _080AC1AC
+ strh r0, [r4, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC1A4: .4byte gUnknown_3001B88
+_080AC1A8: .4byte gUnknown_81184B0
+_080AC1AC: .4byte 0x0000ffff
+ thumb_func_end GroundObject_Delete
+
+ thumb_func_start sub_80AC1B0
+sub_80AC1B0:
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AC1F0
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080AC1EA
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r1, [r0]
+ orrs r1, r3
+ str r1, [r0]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ bl sub_80A6688
+_080AC1EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC1F0: .4byte gUnknown_3001B88
+ thumb_func_end sub_80AC1B0
+
+ thumb_func_start sub_80AC1F4
+sub_80AC1F4:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AC238
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r3, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080AC232
+ movs r0, 0x8E
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, _080AC23C
+ eors r0, r4
+ ldr r1, [r2]
+ ands r1, r0
+ str r1, [r2]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r3, r2
+ bl sub_80A6688
+_080AC232:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AC238: .4byte gUnknown_3001B88
+_080AC23C: .4byte 0x337fffff
+ thumb_func_end sub_80AC1F4
+
+ thumb_func_start sub_80AC240
+sub_80AC240:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AC268
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AC26C
+ movs r0, 0
+ b _080AC270
+ .align 2, 0
+_080AC268: .4byte gUnknown_3001B88
+_080AC26C:
+ adds r0, r2, 0
+ adds r0, 0x38
+_080AC270:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC240
+
+ thumb_func_start sub_80AC274
+sub_80AC274:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, 16
+ asrs r3, r2, 16
+ ldr r2, _080AC2A0
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AC2A4
+ movs r0, 0
+ b _080AC2B4
+ .align 2, 0
+_080AC2A0: .4byte gUnknown_3001B88
+_080AC2A4:
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl sub_809D6E4
+ lsls r0, 24
+ lsrs r0, 24
+_080AC2B4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC274
+
+ thumb_func_start GroundObject_ExecuteScript
+GroundObject_ExecuteScript:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r3, 16
+ asrs r3, 16
+ ldr r1, _080AC2F4
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldr r1, _080AC2F8
+ movs r0, 0
+ adds r2, r3, 0
+ bl Log
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AC2FC
+ movs r0, 0
+ b _080AC314
+ .align 2, 0
+_080AC2F4: .4byte gUnknown_3001B88
+_080AC2F8: .4byte gUnknown_81184CC
+_080AC2FC:
+ adds r0, r4, 0
+ adds r0, 0x38
+ ldr r3, _080AC31C
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl GroundScript_ExecutePP
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080AC314:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AC31C: .4byte gUnknown_8118504
+ thumb_func_end GroundObject_ExecuteScript
+
+ thumb_func_start sub_80AC320
+sub_80AC320:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ asrs r7, r0, 16
+ ldr r0, _080AC374
+ ldr r4, [r0]
+ movs r5, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r6, 0x80
+ lsls r6, 9
+_080AC33A:
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, r8
+ beq _080AC352
+ 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
+_080AC352:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r0, 16
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r4, r1
+ cmp r0, 0xF
+ ble _080AC33A
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AC374: .4byte gUnknown_3001B88
+ thumb_func_end sub_80AC320
+
+ thumb_func_start sub_80AC378
+sub_80AC378:
+ push {r4-r7,lr}
+ ldr r0, _080AC3BC
+ ldr r4, [r0]
+ movs r5, 0
+ movs r7, 0x1
+ negs r7, r7
+ movs r6, 0x80
+ lsls r6, 9
+_080AC388:
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, r7
+ beq _080AC39E
+ adds r0, r4, 0
+ adds r0, 0x38
+ bl sub_809D92C
+ orrs r5, r0
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080AC39E:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r0, 16
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r4, r1
+ cmp r0, 0xF
+ ble _080AC388
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AC3BC: .4byte gUnknown_3001B88
+ thumb_func_end sub_80AC378
+
+ thumb_func_start sub_80AC3C0
+sub_80AC3C0:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AC3DC
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r0, r1
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080AC3DC: .4byte gUnknown_3001B88
+ thumb_func_end sub_80AC3C0
+
+ thumb_func_start sub_80AC3E0
+sub_80AC3E0:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, _080AC404
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, [r3]
+ adds r0, r2
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r2, r0, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080AC404: .4byte gUnknown_3001B88
+ thumb_func_end sub_80AC3E0
+
+ thumb_func_start sub_80AC408
+sub_80AC408:
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AC434
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AC438
+ movs r0, 0
+ str r0, [r3]
+ str r0, [r3, 0x4]
+ b _080AC440
+ .align 2, 0
+_080AC434: .4byte gUnknown_3001B88
+_080AC438:
+ ldr r0, [r2, 0xC]
+ ldr r1, [r2, 0x10]
+ str r0, [r3]
+ str r1, [r3, 0x4]
+_080AC440:
+ movs r1, 0x6
+ ldrsh r0, [r2, r1]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC408
+
+ thumb_func_start sub_80AC448
+sub_80AC448:
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AC474
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AC478
+ movs r0, 0
+ str r0, [r3]
+ b _080AC492
+ .align 2, 0
+_080AC474: .4byte gUnknown_3001B88
+_080AC478:
+ movs r1, 0x92
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r2, 0x14]
+ adds r0, r1
+ str r0, [r3]
+ movs r1, 0x94
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r2, 0x18]
+ adds r0, r1
+_080AC492:
+ str r0, [r3, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r2, r1]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC448
+
+ thumb_func_start sub_80AC49C
+sub_80AC49C:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, _080AC4C4
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r4, [r3]
+ adds r4, r2
+ adds r0, r4, 0
+ bl sub_80AC6AC
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AC4C4: .4byte gUnknown_3001B88
+ thumb_func_end sub_80AC49C
+
+ thumb_func_start sub_80AC4C8
+sub_80AC4C8:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ ldr r0, _080AC530
+ ldr r3, [r0]
+ movs r5, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r12, r0
+ movs r6, 0x80
+ lsls r6, 9
+_080AC4DE:
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, r12
+ beq _080AC534
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r0, [r0]
+ ands r0, r7
+ cmp r0, 0
+ beq _080AC534
+ adds r1, 0x8
+ adds r0, r3, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ cmp r1, r0
+ bge _080AC534
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r1, [r0]
+ ldr r0, [r4]
+ cmp r1, r0
+ ble _080AC534
+ movs r1, 0x94
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r1, [r0]
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ bge _080AC534
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r1, [r0]
+ ldr r0, [r4, 0x4]
+ cmp r1, r0
+ ble _080AC534
+ adds r0, r5, 0
+ b _080AC54C
+ .align 2, 0
+_080AC530: .4byte gUnknown_3001B88
+_080AC534:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r5, r0, 16
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r3, r0
+ cmp r5, 0xF
+ ble _080AC4DE
+ movs r0, 0x1
+ negs r0, r0
+_080AC54C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC4C8
+
+ thumb_func_start sub_80AC554
+sub_80AC554:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ mov r10, r1
+ adds r4, r2, 0
+ ldr r0, _080AC5C8
+ ldr r0, [r0]
+ mov r12, r0
+ movs r6, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 9
+_080AC576:
+ mov r1, r12
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, r9
+ beq _080AC5CC
+ movs r0, 0x8E
+ lsls r0, 1
+ add r0, r12
+ ldr r0, [r0]
+ mov r5, r8
+ ands r0, r5
+ cmp r0, 0
+ beq _080AC5CC
+ movs r0, 0x92
+ lsls r0, 1
+ add r0, r12
+ ldr r1, [r0]
+ mov r5, r12
+ ldr r0, [r5, 0x14]
+ adds r2, r1, r0
+ movs r0, 0x94
+ lsls r0, 1
+ add r0, r12
+ ldr r1, [r0]
+ ldr r0, [r5, 0x18]
+ adds r3, r1, r0
+ ldr r0, [r4]
+ cmp r2, r0
+ bge _080AC5CC
+ mov r1, r10
+ ldr r0, [r1]
+ cmp r2, r0
+ ble _080AC5CC
+ ldr r0, [r4, 0x4]
+ cmp r3, r0
+ bge _080AC5CC
+ ldr r0, [r1, 0x4]
+ cmp r3, r0
+ ble _080AC5CC
+ adds r0, r6, 0
+ b _080AC5E4
+ .align 2, 0
+_080AC5C8: .4byte gUnknown_3001B88
+_080AC5CC:
+ adds r0, r7, 0
+ movs r2, 0x80
+ lsls r2, 9
+ adds r7, r2
+ asrs r6, r0, 16
+ movs r5, 0xE2
+ lsls r5, 1
+ add r12, r5
+ cmp r6, 0xF
+ ble _080AC576
+ movs r0, 0x1
+ negs r0, r0
+_080AC5E4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC554
+
+ thumb_func_start sub_80AC5F4
+sub_80AC5F4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ mov r8, r0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, [r5]
+ cmp r0, 0
+ bge _080AC60C
+ ldr r1, _080AC670
+ adds r0, r1
+_080AC60C:
+ asrs r0, 11
+ mov r12, r0
+ str r0, [sp]
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ bge _080AC61C
+ ldr r3, _080AC670
+ adds r0, r3
+_080AC61C:
+ asrs r4, r0, 11
+ str r4, [sp, 0x4]
+ ldr r3, [r6]
+ subs r0, r3, 0x1
+ cmp r0, 0
+ bge _080AC62C
+ ldr r7, _080AC674
+ adds r0, r3, r7
+_080AC62C:
+ asrs r1, r0, 11
+ ldr r3, [r6, 0x4]
+ subs r0, r3, 0x1
+ cmp r0, 0
+ bge _080AC63A
+ ldr r7, _080AC674
+ adds r0, r3, r7
+_080AC63A:
+ 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 r0, 0x8E
+ lsls r0, 1
+ add r0, r8
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC678
+ mov r0, sp
+ adds r1, r2, 0
+ bl sub_80A585C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AC678
+ movs r0, 0x1
+ b _080AC6A0
+ .align 2, 0
+_080AC670: .4byte 0x000007ff
+_080AC674: .4byte 0x000007fe
+_080AC678:
+ movs r0, 0x8E
+ lsls r0, 1
+ add r0, r8
+ ldr r0, [r0]
+ movs r1, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080AC69E
+ movs r0, 0x1
+ negs r0, r0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80A92A0
+ lsls r0, 16
+ cmp r0, 0
+ blt _080AC69E
+ movs r0, 0x4
+ b _080AC6A0
+_080AC69E:
+ movs r0, 0
+_080AC6A0:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC5F4
+
+ thumb_func_start sub_80AC6AC
+sub_80AC6AC:
+ 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 _080AC6EA
+ ldr r1, [r5, 0x30]
+ ldr r0, [sp, 0x8]
+ cmp r0, r1
+ bge _080AC6EA
+ ldr r1, [r5, 0x2C]
+ ldr r0, [sp, 0x4]
+ cmp r0, r1
+ blt _080AC6EA
+ ldr r0, [r5, 0x34]
+ cmp r3, r0
+ blt _080AC6EE
+_080AC6EA:
+ movs r0, 0x1
+ b _080AC718
+_080AC6EE:
+ adds r0, r5, 0
+ mov r1, sp
+ bl sub_80AC5F4
+ cmp r0, 0
+ bne _080AC718
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r5, r0
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x96
+ 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
+_080AC718:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC6AC
+
+ thumb_func_start sub_80AC720
+sub_80AC720:
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ movs r2, 0x92
+ lsls r2, 1
+ adds r0, r4, r2
+ ldr r0, [r0]
+ ldr r2, [r1]
+ adds r0, r2
+ str r0, [sp]
+ movs r3, 0x94
+ 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, 0x98
+ lsls r2, 1
+ adds r0, r4, r2
+ ldr r0, [r0]
+ adds r0, r1
+ add r1, sp, 0x8
+ str r0, [r1, 0x4]
+ movs r5, 0
+ ldr r3, [r4, 0x28]
+ ldr r0, [sp]
+ adds r2, r1, 0
+ cmp r0, r3
+ bge _080AC770
+ str r3, [sp]
+ ldr r0, [r4, 0xC]
+ adds r0, r3, r0
+ str r0, [sp, 0x8]
+ b _080AC780
+_080AC770:
+ ldr r1, [r4, 0x30]
+ ldr r0, [sp, 0x8]
+ cmp r0, r1
+ blt _080AC782
+ ldr r0, [r4, 0xC]
+ subs r0, r1, r0
+ str r0, [sp]
+ str r1, [sp, 0x8]
+_080AC780:
+ movs r5, 0x1
+_080AC782:
+ ldr r1, [r4, 0x2C]
+ ldr r0, [sp, 0x4]
+ cmp r0, r1
+ bge _080AC794
+ str r1, [sp, 0x4]
+ ldr r0, [r4, 0x10]
+ adds r0, r1, r0
+ str r0, [r2, 0x4]
+ b _080AC7A4
+_080AC794:
+ ldr r1, [r4, 0x34]
+ ldr r0, [r2, 0x4]
+ cmp r0, r1
+ blt _080AC7A6
+ ldr r0, [r4, 0x10]
+ subs r0, r1, r0
+ str r0, [sp, 0x4]
+ str r1, [r2, 0x4]
+_080AC7A4:
+ movs r5, 0x1
+_080AC7A6:
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_80AC5F4
+ cmp r0, 0
+ bne _080AC7D8
+ movs r3, 0x92
+ lsls r3, 1
+ adds r2, r4, r3
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x96
+ lsls r0, 1
+ adds r2, r4, r0
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0xC]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ cmp r5, 0
+ bne _080AC7D6
+ movs r0, 0
+ b _080AC7D8
+_080AC7D6:
+ movs r0, 0x1
+_080AC7D8:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC720
+
+ thumb_func_start sub_80AC7E0
+sub_80AC7E0:
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ bx lr
+ thumb_func_end sub_80AC7E0
+
+ thumb_func_start sub_80AC7E8
+sub_80AC7E8:
+ ldr r2, [r0, 0xC]
+ ldr r3, [r0, 0x10]
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ bx lr
+ thumb_func_end sub_80AC7E8
+
+ thumb_func_start sub_80AC7F4
+sub_80AC7F4:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _080AC834
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r1, [r4]
+ ldr r0, [r3, 0x14]
+ subs r0, r1, r0
+ str r0, [r2]
+ movs r0, 0x96
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x14]
+ adds r1, r0
+ str r1, [r2]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r1, [r4, 0x4]
+ ldr r0, [r3, 0x18]
+ subs r0, r1, r0
+ str r0, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x18]
+ adds r1, r0
+ str r1, [r2]
+ b _080AC89A
+_080AC834:
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x20]
+ ldr r1, [r3, 0x14]
+ subs r0, r1
+ str r0, [r2]
+ movs r0, 0x96
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x20]
+ ldr r1, [r3, 0x14]
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x24]
+ ldr r1, [r3, 0x18]
+ subs r0, r1
+ str r0, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x24]
+ ldr r1, [r3, 0x18]
+ adds r0, r1
+ str r0, [r2]
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r1, r3, r2
+ adds r2, 0x4
+ adds r0, r3, r2
+ str r4, [r0]
+ str r4, [r1]
+ movs r0, 0x90
+ 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 _080AC896
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080AC896:
+ ldrb r0, [r3, 0x1C]
+ strb r0, [r2]
+_080AC89A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC7F4
+
+ thumb_func_start sub_80AC8A0
+sub_80AC8A0:
+ 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_80AC8A0
+
+ thumb_func_start sub_80AC8B8
+sub_80AC8B8:
+ adds r3, r0, 0
+ movs r2, 0x92
+ lsls r2, 1
+ adds r0, r3, r2
+ ldr r0, [r0]
+ ldr r2, [r3, 0x14]
+ adds r0, r2
+ str r0, [r1]
+ movs r2, 0x94
+ 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_80AC8B8
+
+ thumb_func_start sub_80AC8D8
+sub_80AC8D8:
+ push {lr}
+ bl sub_80AC6AC
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC8D8
+
+ thumb_func_start sub_80AC8E4
+sub_80AC8E4:
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r4, 0x9A
+ lsls r4, 1
+ adds r0, r3, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC8E4
+
+ thumb_func_start sub_80AC904
+sub_80AC904:
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r0, r2
+ str r1, [r0]
+ bx lr
+ thumb_func_end sub_80AC904
+
+ thumb_func_start sub_80AC910
+sub_80AC910:
+ movs r2, 0x90
+ lsls r2, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ bx lr
+ thumb_func_end sub_80AC910
+
+ thumb_func_start sub_80AC91C
+sub_80AC91C:
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080AC934
+ movs r3, 0x90
+ lsls r3, 1
+ adds r0, r2, r3
+ strb r1, [r0]
+_080AC934:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC91C
+
+ thumb_func_start sub_80AC938
+sub_80AC938:
+ push {r4,r5,lr}
+ lsls r1, 16
+ adds r3, r0, 0
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080AC958
+ ldr r1, _080AC954
+ lsls r0, 1
+ adds r0, r1
+ b _080AC95E
+ .align 2, 0
+_080AC954: .4byte gUnknown_81183A0
+_080AC958:
+ movs r5, 0x9F
+ lsls r5, 1
+ adds r0, r3, r5
+_080AC95E:
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r5, 0x9F
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrh r4, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r2
+ beq _080AC97C
+ strh r2, [r1]
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r3, r0
+ b _080AC98C
+_080AC97C:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r4
+ cmp r0, 0
+ beq _080AC990
+ movs r5, 0x9E
+ lsls r5, 1
+ adds r1, r3, r5
+_080AC98C:
+ movs r0, 0x1
+ strb r0, [r1]
+_080AC990:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC938
+
+ thumb_func_start sub_80AC998
+sub_80AC998:
+ push {lr}
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _080AC9AA
+ movs r1, 0xE0
+ lsls r1, 1
+ adds r2, r1, 0
+_080AC9AA:
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r0, r1
+ strh r2, [r0]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AC998
+
+ thumb_func_start sub_80AC9B8
+sub_80AC9B8:
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x9E
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080AC9D6
+ adds r2, 0x8
+ adds r0, r1, r2
+ bl sub_80A66F8
+ lsls r0, 24
+ lsrs r0, 24
+ b _080AC9D8
+_080AC9D6:
+ movs r0, 0x1
+_080AC9D8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC9B8
+
+ thumb_func_start sub_80AC9DC
+sub_80AC9DC:
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080AC9FE
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r1, r2
+ bl sub_80A671C
+ lsls r0, 24
+ lsrs r0, 24
+ b _080ACA00
+_080AC9FE:
+ movs r0, 0x1
+_080ACA00:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AC9DC
+
+ thumb_func_start sub_80ACA04
+sub_80ACA04:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ bx lr
+ thumb_func_end sub_80ACA04
+
+ thumb_func_start sub_80ACA10
+sub_80ACA10:
+ push {lr}
+ movs r2, 0x4
+ ldrsh r0, [r0, r2]
+ bl sub_80AC1B0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACA10
+
+ thumb_func_start sub_80ACA20
+sub_80ACA20:
+ push {lr}
+ movs r2, 0x4
+ ldrsh r0, [r0, r2]
+ bl sub_80AC1F4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ACA20
+
+ thumb_func_start sub_80ACA30
+sub_80ACA30:
+ push {lr}
+ bl sub_80AC720
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80ACA30
+
+ thumb_func_start GroundObject_Action
+GroundObject_Action:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080ACA7C
+ ldr r5, [r0]
+ movs r7, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r1, 0x9E
+ lsls r1, 1
+ adds r6, r5, r1
+_080ACA54:
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r0, r8
+ beq _080ACAB2
+ adds r4, r5, 0
+ adds r4, 0x38
+ adds r0, r4, 0
+ ldr r1, _080ACA80
+ bl HandleAction
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _080ACA84
+ cmp r0, 0x4
+ bne _080ACA90
+ adds r0, r7, 0
+ bl GroundObject_Delete
+ b _080ACAB2
+ .align 2, 0
+_080ACA7C: .4byte gUnknown_3001B88
+_080ACA80: .4byte gUnknown_8118524
+_080ACA84:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1
+ ldr r3, _080ACAD0
+ bl sub_809D8C0
+_080ACA90:
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _080ACAB2
+ movs r0, 0
+ strb r0, [r6]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r5, r1
+ ldrh r2, [r6, 0x2]
+ movs r3, 0xF8
+ lsls r3, 5
+ adds r1, r3, 0
+ ands r1, r2
+ lsls r2, 24
+ asrs r2, 24
+ bl sub_80A6EFC
+_080ACAB2:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ asrs r7, r0, 16
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r6, r0
+ adds r5, r0
+ cmp r7, 0xF
+ ble _080ACA54
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACAD0: .4byte gUnknown_8118530
+ thumb_func_end GroundObject_Action
+
+ thumb_func_start sub_80ACAD4
+sub_80ACAD4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r0, _080ACB8C
+ ldr r6, [r0]
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0x1
+ negs r1, r1
+ mov r9, r1
+ movs r2, 0x90
+ lsls r2, 1
+ adds r4, r6, r2
+_080ACAF2:
+ movs r0, 0x6
+ ldrsh r1, [r6, r0]
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ beq _080ACB64
+ ldr r0, [r4, 0x4]
+ ldr r1, [r6, 0x14]
+ adds r0, r1
+ str r0, [sp]
+ ldr r0, [r4, 0x8]
+ ldr r1, [r6, 0x18]
+ adds r0, r1
+ str r0, [sp, 0x4]
+ ldr r1, [r4, 0x14]
+ ldr r0, [r4, 0x18]
+ adds r7, r1, r0
+ movs r0, 0xA2
+ lsls r0, 1
+ adds r5, r6, r0
+ adds r0, r5, 0
+ bl sub_80A66D4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ACB40
+ movs r0, 0
+ strb r0, [r4, 0x1C]
+ ldrh r2, [r4, 0x1E]
+ movs r0, 0xF8
+ lsls r0, 5
+ adds r1, r0, 0
+ ands r1, r2
+ lsls r2, 24
+ asrs r2, 24
+ adds r0, r5, 0
+ bl sub_80A6EFC
+_080ACB40:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ACB5A
+ adds r1, r0, 0
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80A7040
+ movs r0, 0
+ strh r0, [r4, 0x20]
+_080ACB5A:
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r7, 0
+ bl sub_80A7664
+_080ACB64:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r4, r0
+ adds r6, r0
+ mov r1, r8
+ cmp r1, 0xF
+ ble _080ACAF2
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACB8C: .4byte gUnknown_3001B88
+ thumb_func_end sub_80ACAD4
+
+ thumb_func_start sub_80ACB90
+sub_80ACB90:
+ push {r4,r5,lr}
+ ldr r4, _080ACBCC
+ movs r0, 0xE2
+ lsls r0, 5
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ adds r1, r0, 0
+ ldr r0, _080ACBD0
+ adds r5, r0, 0
+ movs r4, 0xE2
+ lsls r4, 1
+ movs r2, 0x80
+ lsls r2, 9
+ adds r3, r2, 0
+_080ACBB0:
+ ldrh r0, [r1, 0x6]
+ orrs r0, r5
+ strh r0, [r1, 0x6]
+ adds r0, r2, 0
+ adds r2, r3
+ asrs r0, 16
+ adds r1, r4
+ cmp r0, 0xF
+ ble _080ACBB0
+ bl sub_80ACBD4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACBCC: .4byte gUnknown_3001B8C
+_080ACBD0: .4byte 0x0000ffff
+ thumb_func_end sub_80ACB90
+
+ thumb_func_start sub_80ACBD4
+sub_80ACBD4:
+ push {r4-r6,lr}
+ ldr r0, _080ACC0C
+ ldr r4, [r0]
+ movs r1, 0
+ movs r6, 0x1
+ negs r6, r6
+ movs r5, 0x80
+ lsls r5, 9
+_080ACBE4:
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, r6
+ beq _080ACBF2
+ adds r0, r1, 0
+ bl GroundEffect_Delete
+_080ACBF2:
+ adds r0, r5, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r5, r1
+ asrs r1, r0, 16
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r4, r2
+ cmp r1, 0xF
+ ble _080ACBE4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACC0C: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80ACBD4
+
+ thumb_func_start sub_80ACC10
+sub_80ACC10:
+ push {r4,lr}
+ bl sub_80ACBD4
+ ldr r4, _080ACC28
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACC28: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80ACC10
+
+ thumb_func_start GroundEffect_Select
+GroundEffect_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, _080ACC90
+ adds r0, r4, 0
+ bl sub_80A77D0
+ adds r5, r0, 0
+ ldr r1, _080ACC94
+ 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, 0x14]
+ ldr r0, [r0, 0x10]
+ cmp r0, 0
+ ble _080ACC86
+ adds r4, r0, 0
+_080ACC70:
+ movs r0, 0x1
+ negs r0, r0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl GroundEffect_Add
+ subs r4, 0x1
+ adds r5, 0xC
+ cmp r4, 0
+ bne _080ACC70
+_080ACC86:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACC90: .4byte gUnknown_8118610
+_080ACC94: .4byte gUnknown_811861C
+ thumb_func_end GroundEffect_Select
+
+ thumb_func_start GroundEffect_Cancel
+GroundEffect_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, _080ACD00
+ movs r0, 0
+ adds r2, r7, 0
+ bl Log
+ movs r1, 0
+ ldr r0, _080ACD04
+ ldr r4, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r6, 0x80
+ lsls r6, 9
+_080ACCC0:
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, r8
+ beq _080ACCE2
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, r7
+ bne _080ACCE2
+ cmp r5, 0
+ blt _080ACCDC
+ movs r0, 0xA
+ ldrsb r0, [r4, r0]
+ cmp r0, r5
+ bne _080ACCE2
+_080ACCDC:
+ adds r0, r1, 0
+ bl GroundEffect_Delete
+_080ACCE2:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r1, r0, 16
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r4, r2
+ cmp r1, 0xF
+ ble _080ACCC0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACD00: .4byte gUnknown_8118640
+_080ACD04: .4byte gUnknown_3001B8C
+ thumb_func_end GroundEffect_Cancel
+
+ thumb_func_start GroundEffect_CancelBlank
+GroundEffect_CancelBlank:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r1, _080ACD7C
+ movs r0, 0
+ bl Log
+ movs r6, 0
+ ldr r0, _080ACD80
+ ldr r4, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r1, 0x92
+ lsls r1, 1
+ adds r5, r4, r1
+ mov r7, sp
+_080ACD2C:
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, r8
+ beq _080ACD5C
+ 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, 0xA2
+ lsls r1, 1
+ adds r0, r4, r1
+ mov r1, sp
+ bl sub_80A675C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ACD5C
+ adds r0, r6, 0
+ bl GroundEffect_Delete
+_080ACD5C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ asrs r6, r0, 16
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r5, r0
+ adds r4, r0
+ cmp r6, 0xF
+ ble _080ACD2C
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ACD7C: .4byte gUnknown_8118658
+_080ACD80: .4byte gUnknown_3001B8C
+ thumb_func_end GroundEffect_CancelBlank
+
+ thumb_func_start sub_80ACD84
+sub_80ACD84:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r3, 0
+ ldr r0, _080ACDA8
+ ldr r1, [r0]
+ movs r6, 0xE2
+ lsls r6, 1
+ movs r2, 0x80
+ lsls r2, 9
+ adds r5, r2, 0
+_080ACD9A:
+ movs r7, 0x6
+ ldrsh r0, [r1, r7]
+ cmp r0, r4
+ bne _080ACDAC
+ adds r0, r3, 0
+ b _080ACDBC
+ .align 2, 0
+_080ACDA8: .4byte gUnknown_3001B8C
+_080ACDAC:
+ adds r0, r2, 0
+ adds r2, r5
+ asrs r3, r0, 16
+ adds r1, r6
+ cmp r3, 0xF
+ ble _080ACD9A
+ movs r0, 0x1
+ negs r0, r0
+_080ACDBC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80ACD84
+
+ thumb_func_start GroundEffect_Add
+GroundEffect_Add:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r7, r1, 0
+ lsls r0, 16
+ asrs r6, r0, 16
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ lsls r3, 24
+ asrs r3, 24
+ mov r9, r3
+ ldrb r0, [r7]
+ lsls r0, 2
+ ldr r1, _080ACE08
+ adds r0, r1
+ mov r8, r0
+ ldr r3, _080ACE0C
+ cmp r6, 0
+ bge _080ACE38
+ movs r2, 0
+ ldr r5, [r3]
+ movs r0, 0x6
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ACE10
+ movs r6, 0
+ b _080ACE38
+ .align 2, 0
+_080ACE08: .4byte gUnknown_811EE38
+_080ACE0C: .4byte gUnknown_3001B8C
+_080ACE10:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ asrs r2, r0, 16
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r5, r1
+ cmp r2, 0xF
+ bgt _080ACE2E
+ movs r4, 0x6
+ ldrsh r1, [r5, r4]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ACE10
+ adds r6, r2, 0
+_080ACE2E:
+ cmp r6, 0
+ bge _080ACE38
+ movs r0, 0x1
+ negs r0, r0
+ b _080AD062
+_080ACE38:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, [r3]
+ adds r5, r1, r0
+ ldr r1, _080ACE9C
+ ldrb r3, [r7]
+ mov r2, r8
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ str r0, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ movs r0, 0
+ adds r2, r6, 0
+ bl Log
+ movs r2, 0
+ movs r3, 0x6
+ ldrsh r1, [r5, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ACE72
+ movs r2, 0x1
+_080ACE72:
+ str r2, [sp, 0xC]
+ strh r6, [r5, 0x4]
+ ldrb r0, [r7]
+ strh r0, [r5, 0x6]
+ mov r4, r10
+ strh r4, [r5, 0x8]
+ mov r0, r9
+ strb r0, [r5, 0xA]
+ mov r1, r8
+ ldrh r0, [r1]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bhi _080ACEEC
+ lsls r0, 2
+ ldr r1, _080ACEA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ACE9C: .4byte gUnknown_8118674
+_080ACEA0: .4byte _080ACEA4
+ .align 2, 0
+_080ACEA4:
+ .4byte _080ACEB8
+ .4byte _080ACEEC
+ .4byte _080ACEC4
+ .4byte _080ACED0
+ .4byte _080ACEDC
+_080ACEB8:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r1, r5, r2
+ movs r0, 0x81
+ lsls r0, 22
+ b _080ACEF4
+_080ACEC4:
+ movs r4, 0x8E
+ lsls r4, 1
+ adds r1, r5, r4
+ movs r0, 0x83
+ lsls r0, 18
+ b _080ACEF4
+_080ACED0:
+ movs r0, 0x8E
+ lsls r0, 1
+ adds r1, r5, r0
+ movs r0, 0x88
+ lsls r0, 22
+ b _080ACEF4
+_080ACEDC:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r1, r5, r2
+ ldr r0, _080ACEE8
+ b _080ACEF4
+ .align 2, 0
+_080ACEE8: .4byte 0x22020000
+_080ACEEC:
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r1, r5, r3
+ ldr r0, _080ACF08
+_080ACEF4:
+ str r0, [r1]
+ mov r4, r8
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _080ACF0C
+ ldrb r0, [r7, 0x2]
+ lsls r0, 11
+ str r0, [r5, 0xC]
+ ldrb r0, [r7, 0x3]
+ b _080ACF16
+ .align 2, 0
+_080ACF08: .4byte 0x220c0000
+_080ACF0C:
+ mov r1, r8
+ ldrb r0, [r1, 0x2]
+ lsls r0, 11
+ str r0, [r5, 0xC]
+ ldrb r0, [r1, 0x3]
+_080ACF16:
+ lsls r0, 11
+ str r0, [r5, 0x10]
+ ldr r0, [r5, 0xC]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r5, 0x14]
+ ldr r0, [r5, 0x10]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r5, 0x18]
+ ldrb r0, [r7, 0x1]
+ strb r0, [r5, 0x1C]
+ adds r2, r7, 0x4
+ adds r4, r5, 0
+ adds r4, 0x20
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080ACF5A
+ ldrb r0, [r7, 0x4]
+ lsls r3, r0, 11
+ str r3, [r5, 0x20]
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080ACF5A
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r3, r1
+ str r0, [r5, 0x20]
+_080ACF5A:
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080ACF7C
+ 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 _080ACF7C
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r3, r2
+ str r0, [r4, 0x4]
+_080ACF7C:
+ ldr r3, [sp, 0xC]
+ cmp r3, 0
+ beq _080ACFD2
+ ldrb r1, [r5, 0x1C]
+ movs r4, 0x90
+ lsls r4, 1
+ adds r0, r5, r4
+ movs r3, 0
+ strb r1, [r0]
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r5, r0
+ ldr r0, [r5, 0x20]
+ ldr r1, [r5, 0x14]
+ subs r0, r1
+ str r0, [r2]
+ movs r1, 0x96
+ lsls r1, 1
+ adds r2, r5, r1
+ ldr r0, [r5, 0x20]
+ ldr r1, [r5, 0x14]
+ adds r0, r1
+ str r0, [r2]
+ adds r4, 0x8
+ adds r2, r5, r4
+ ldr r0, [r5, 0x24]
+ ldr r1, [r5, 0x18]
+ subs r0, r1
+ str r0, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r5, r0
+ ldr r0, [r5, 0x24]
+ ldr r1, [r5, 0x18]
+ adds r0, r1
+ str r0, [r2]
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r1, r5, r2
+ adds r4, 0x10
+ adds r0, r5, r4
+ str r3, [r0]
+ str r3, [r1]
+_080ACFD2:
+ adds r0, r5, 0
+ adds r0, 0x28
+ adds r1, r5, 0
+ adds r1, 0x30
+ bl sub_80A5778
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ beq _080AD01A
+ movs r2, 0x9F
+ lsls r2, 1
+ adds r1, r5, r2
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r1]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r1, r5, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0xA0
+ lsls r4, 1
+ adds r0, r5, r4
+ strh r2, [r0]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r5, r1
+ movs r3, 0x6
+ ldrsh r2, [r5, r3]
+ subs r4, 0x24
+ adds r1, r5, r4
+ ldr r3, [r1]
+ adds r1, r6, 0
+ bl sub_80A7688
+_080AD01A:
+ adds r4, r5, 0
+ adds r4, 0x38
+ ldr r1, _080AD074
+ mov r0, r9
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ mov r3, r10
+ bl sub_809D600
+ ldr r2, [r7, 0x8]
+ cmp r2, 0
+ bne _080AD04C
+ mov r1, r8
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ bne _080AD048
+ ldr r0, _080AD078
+ movs r1, 0xB0
+ lsls r1, 2
+ adds r0, r1
+ ldr r2, [r0]
+_080AD048:
+ cmp r2, 0
+ beq _080AD060
+_080AD04C:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_809D6D8
+ ldr r3, _080AD07C
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_809D8C0
+_080AD060:
+ adds r0, r6, 0
+_080AD062:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AD074: .4byte gUnknown_8118544
+_080AD078: .4byte gUnknown_812F1F8
+_080AD07C: .4byte gUnknown_81186CC
+ thumb_func_end GroundEffect_Add
+
+ thumb_func_start GroundEffect_Delete
+GroundEffect_Delete:
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ ldr r1, _080AD0BC
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldr r1, _080AD0C0
+ movs r0, 0
+ bl Log
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r4, r1
+ bl sub_80A7714
+ adds r0, r4, 0
+ adds r0, 0x38
+ bl sub_809D648
+ ldr r0, _080AD0C4
+ strh r0, [r4, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD0BC: .4byte gUnknown_3001B8C
+_080AD0C0: .4byte gUnknown_81186D8
+_080AD0C4: .4byte 0x0000ffff
+ thumb_func_end GroundEffect_Delete
+
+ thumb_func_start sub_80AD0C8
+sub_80AD0C8:
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AD108
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080AD102
+ movs r1, 0x8E
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r1, [r0]
+ orrs r1, r3
+ str r1, [r0]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ bl sub_80A6688
+_080AD102:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD108: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80AD0C8
+
+ thumb_func_start sub_80AD10C
+sub_80AD10C:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AD150
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r3, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080AD14A
+ movs r0, 0x8E
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, _080AD154
+ eors r0, r4
+ ldr r1, [r2]
+ ands r1, r0
+ str r1, [r2]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r3, r2
+ bl sub_80A6688
+_080AD14A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD150: .4byte gUnknown_3001B8C
+_080AD154: .4byte 0x337fffff
+ thumb_func_end sub_80AD10C
+
+ thumb_func_start sub_80AD158
+sub_80AD158:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AD180
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AD184
+ movs r0, 0
+ b _080AD188
+ .align 2, 0
+_080AD180: .4byte gUnknown_3001B8C
+_080AD184:
+ adds r0, r2, 0
+ adds r0, 0x38
+_080AD188:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD158
+
+ thumb_func_start sub_80AD18C
+sub_80AD18C:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, 16
+ asrs r3, r2, 16
+ ldr r2, _080AD1B8
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AD1BC
+ movs r0, 0
+ b _080AD1CC
+ .align 2, 0
+_080AD1B8: .4byte gUnknown_3001B8C
+_080AD1BC:
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl sub_809D6E4
+ lsls r0, 24
+ lsrs r0, 24
+_080AD1CC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD18C
+
+ thumb_func_start GroundEffect_ExecuteScript
+GroundEffect_ExecuteScript:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r3, 16
+ asrs r3, 16
+ ldr r1, _080AD20C
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldr r1, _080AD210
+ movs r0, 0
+ adds r2, r3, 0
+ bl Log
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AD214
+ movs r0, 0
+ b _080AD22C
+ .align 2, 0
+_080AD20C: .4byte gUnknown_3001B8C
+_080AD210: .4byte gUnknown_81186F4
+_080AD214:
+ adds r0, r4, 0
+ adds r0, 0x38
+ ldr r3, _080AD234
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl GroundScript_ExecutePP
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080AD22C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AD234: .4byte gUnknown_811872C
+ thumb_func_end GroundEffect_ExecuteScript
+
+ thumb_func_start sub_80AD238
+sub_80AD238:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ asrs r7, r0, 16
+ ldr r0, _080AD28C
+ ldr r4, [r0]
+ movs r5, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r6, 0x80
+ lsls r6, 9
+_080AD252:
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, r8
+ beq _080AD26A
+ 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
+_080AD26A:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r0, 16
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r4, r1
+ cmp r0, 0xF
+ ble _080AD252
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AD28C: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80AD238
+
+ thumb_func_start sub_80AD290
+sub_80AD290:
+ push {r4-r7,lr}
+ ldr r0, _080AD2D4
+ ldr r4, [r0]
+ movs r5, 0
+ movs r7, 0x1
+ negs r7, r7
+ movs r6, 0x80
+ lsls r6, 9
+_080AD2A0:
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, r7
+ beq _080AD2B6
+ adds r0, r4, 0
+ adds r0, 0x38
+ bl sub_809D92C
+ orrs r5, r0
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080AD2B6:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r0, 16
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r4, r1
+ cmp r0, 0xF
+ ble _080AD2A0
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AD2D4: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80AD290
+
+ thumb_func_start sub_80AD2D8
+sub_80AD2D8:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AD2F4
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r0, r1
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080AD2F4: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80AD2D8
+
+ thumb_func_start sub_80AD2F8
+sub_80AD2F8:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, _080AD31C
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, [r3]
+ adds r0, r2
+ movs r3, 0x8E
+ lsls r3, 1
+ adds r2, r0, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080AD31C: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80AD2F8
+
+ thumb_func_start sub_80AD320
+sub_80AD320:
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AD34C
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AD350
+ movs r0, 0
+ str r0, [r3]
+ str r0, [r3, 0x4]
+ b _080AD358
+ .align 2, 0
+_080AD34C: .4byte gUnknown_3001B8C
+_080AD350:
+ ldr r0, [r2, 0xC]
+ ldr r1, [r2, 0x10]
+ str r0, [r3]
+ str r1, [r3, 0x4]
+_080AD358:
+ movs r1, 0x6
+ ldrsh r0, [r2, r1]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD320
+
+ thumb_func_start sub_80AD360
+sub_80AD360:
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080AD38C
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r2, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080AD390
+ movs r0, 0
+ str r0, [r3]
+ b _080AD3AA
+ .align 2, 0
+_080AD38C: .4byte gUnknown_3001B8C
+_080AD390:
+ movs r1, 0x92
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r2, 0x14]
+ adds r0, r1
+ str r0, [r3]
+ movs r1, 0x94
+ lsls r1, 1
+ adds r0, r2, r1
+ ldr r0, [r0]
+ ldr r1, [r2, 0x18]
+ adds r0, r1
+_080AD3AA:
+ str r0, [r3, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r2, r1]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD360
+
+ thumb_func_start sub_80AD3B4
+sub_80AD3B4:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, _080AD3DC
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r4, [r3]
+ adds r4, r2
+ adds r0, r4, 0
+ bl sub_80AD3E0
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AD3DC: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80AD3B4
+
+ thumb_func_start sub_80AD3E0
+sub_80AD3E0:
+ push {r4-r7,lr}
+ mov r12, r0
+ ldr r3, [r1]
+ ldr r2, [r0, 0x14]
+ subs r6, r3, r2
+ ldr r1, [r1, 0x4]
+ ldr r0, [r0, 0x18]
+ subs r7, r1, r0
+ adds r4, r3, r2
+ adds r5, r1, r0
+ mov r1, r12
+ ldr r0, [r1, 0x28]
+ cmp r6, r0
+ blt _080AD40E
+ ldr r0, [r1, 0x30]
+ cmp r4, r0
+ bge _080AD40E
+ ldr r0, [r1, 0x2C]
+ cmp r7, r0
+ blt _080AD40E
+ ldr r0, [r1, 0x34]
+ cmp r5, r0
+ blt _080AD412
+_080AD40E:
+ movs r0, 0x1
+ b _080AD428
+_080AD412:
+ movs r0, 0x92
+ lsls r0, 1
+ add r0, r12
+ str r6, [r0]
+ str r7, [r0, 0x4]
+ movs r0, 0x96
+ lsls r0, 1
+ add r0, r12
+ str r4, [r0]
+ str r5, [r0, 0x4]
+ movs r0, 0
+_080AD428:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD3E0
+
+ thumb_func_start sub_80AD430
+sub_80AD430:
+ push {r4-r6,lr}
+ mov r12, r0
+ movs r0, 0x92
+ lsls r0, 1
+ add r0, r12
+ ldr r0, [r0]
+ ldr r2, [r1]
+ adds r5, r0, r2
+ movs r0, 0x94
+ lsls r0, 1
+ add r0, r12
+ ldr r0, [r0]
+ ldr r1, [r1, 0x4]
+ adds r6, r0, r1
+ movs r0, 0x96
+ lsls r0, 1
+ add r0, r12
+ ldr r0, [r0]
+ adds r3, r0, r2
+ movs r0, 0x98
+ lsls r0, 1
+ add r0, r12
+ ldr r0, [r0]
+ adds r4, r0, r1
+ mov r0, r12
+ ldr r1, [r0, 0x28]
+ cmp r5, r1
+ bge _080AD470
+ adds r5, r1, 0
+ ldr r0, [r0, 0xC]
+ adds r3, r1, r0
+ b _080AD47E
+_080AD470:
+ mov r2, r12
+ ldr r1, [r2, 0x30]
+ cmp r3, r1
+ blt _080AD47E
+ ldr r0, [r2, 0xC]
+ subs r5, r1, r0
+ adds r3, r1, 0
+_080AD47E:
+ mov r0, r12
+ ldr r1, [r0, 0x2C]
+ cmp r6, r1
+ bge _080AD48E
+ adds r6, r1, 0
+ ldr r0, [r0, 0x10]
+ adds r4, r1, r0
+ b _080AD49C
+_080AD48E:
+ mov r2, r12
+ ldr r1, [r2, 0x34]
+ cmp r4, r1
+ blt _080AD49C
+ ldr r0, [r2, 0x10]
+ subs r6, r1, r0
+ adds r4, r1, 0
+_080AD49C:
+ movs r0, 0x92
+ lsls r0, 1
+ add r0, r12
+ str r5, [r0]
+ str r6, [r0, 0x4]
+ movs r0, 0x96
+ lsls r0, 1
+ add r0, r12
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD430
+
+ thumb_func_start sub_80AD4B8
+sub_80AD4B8:
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ bx lr
+ thumb_func_end sub_80AD4B8
+
+ thumb_func_start sub_80AD4C0
+sub_80AD4C0:
+ ldr r2, [r0, 0xC]
+ ldr r3, [r0, 0x10]
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ bx lr
+ thumb_func_end sub_80AD4C0
+
+ thumb_func_start sub_80AD4CC
+sub_80AD4CC:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _080AD50C
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r1, [r4]
+ ldr r0, [r3, 0x14]
+ subs r0, r1, r0
+ str r0, [r2]
+ movs r0, 0x96
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x14]
+ adds r1, r0
+ str r1, [r2]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r1, [r4, 0x4]
+ ldr r0, [r3, 0x18]
+ subs r0, r1, r0
+ str r0, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x18]
+ adds r1, r0
+ str r1, [r2]
+ b _080AD572
+_080AD50C:
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x20]
+ ldr r1, [r3, 0x14]
+ subs r0, r1
+ str r0, [r2]
+ movs r0, 0x96
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x20]
+ ldr r1, [r3, 0x14]
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0x94
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x24]
+ ldr r1, [r3, 0x18]
+ subs r0, r1
+ str r0, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r3, r0
+ ldr r0, [r3, 0x24]
+ ldr r1, [r3, 0x18]
+ adds r0, r1
+ str r0, [r2]
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r1, r3, r2
+ adds r2, 0x4
+ adds r0, r3, r2
+ str r4, [r0]
+ str r4, [r1]
+ movs r0, 0x90
+ 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 _080AD56E
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080AD56E:
+ ldrb r0, [r3, 0x1C]
+ strb r0, [r2]
+_080AD572:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD4CC
+
+ thumb_func_start sub_80AD578
+sub_80AD578:
+ 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_80AD578
+
+ thumb_func_start sub_80AD590
+sub_80AD590:
+ adds r3, r0, 0
+ movs r2, 0x92
+ lsls r2, 1
+ adds r0, r3, r2
+ ldr r0, [r0]
+ ldr r2, [r3, 0x14]
+ adds r0, r2
+ str r0, [r1]
+ movs r2, 0x94
+ 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_80AD590
+
+ thumb_func_start sub_80AD5B0
+sub_80AD5B0:
+ push {lr}
+ bl sub_80AD3E0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD5B0
+
+ thumb_func_start sub_80AD5BC
+sub_80AD5BC:
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r4, 0x9A
+ lsls r4, 1
+ adds r0, r3, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD5BC
+
+ thumb_func_start sub_80AD5DC
+sub_80AD5DC:
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r0, r2
+ str r1, [r0]
+ bx lr
+ thumb_func_end sub_80AD5DC
+
+ thumb_func_start sub_80AD5E8
+sub_80AD5E8:
+ movs r2, 0x90
+ lsls r2, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ bx lr
+ thumb_func_end sub_80AD5E8
+
+ thumb_func_start sub_80AD5F4
+sub_80AD5F4:
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080AD60C
+ movs r3, 0x90
+ lsls r3, 1
+ adds r0, r2, r3
+ strb r1, [r0]
+_080AD60C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD5F4
+
+ thumb_func_start sub_80AD610
+sub_80AD610:
+ push {r4,r5,lr}
+ lsls r1, 16
+ adds r3, r0, 0
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080AD630
+ ldr r1, _080AD62C
+ lsls r0, 1
+ adds r0, r1
+ b _080AD636
+ .align 2, 0
+_080AD62C: .4byte gUnknown_81185F2
+_080AD630:
+ movs r5, 0x9F
+ lsls r5, 1
+ adds r0, r3, r5
+_080AD636:
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r5, 0x9F
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrh r4, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r2
+ beq _080AD654
+ strh r2, [r1]
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r3, r0
+ b _080AD664
+_080AD654:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r4
+ cmp r0, 0
+ beq _080AD668
+ movs r5, 0x9E
+ lsls r5, 1
+ adds r1, r3, r5
+_080AD664:
+ movs r0, 0x1
+ strb r0, [r1]
+_080AD668:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD610
+
+ thumb_func_start sub_80AD670
+sub_80AD670:
+ push {lr}
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _080AD682
+ movs r1, 0xE0
+ lsls r1, 1
+ adds r2, r1, 0
+_080AD682:
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r0, r1
+ strh r2, [r0]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD670
+
+ thumb_func_start sub_80AD690
+sub_80AD690:
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x9E
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080AD6AE
+ adds r2, 0x8
+ adds r0, r1, r2
+ bl sub_80A66F8
+ lsls r0, 24
+ lsrs r0, 24
+ b _080AD6B0
+_080AD6AE:
+ movs r0, 0x1
+_080AD6B0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD690
+
+ thumb_func_start sub_80AD6B4
+sub_80AD6B4:
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080AD6D6
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r1, r2
+ bl sub_80A671C
+ lsls r0, 24
+ lsrs r0, 24
+ b _080AD6D8
+_080AD6D6:
+ movs r0, 0x1
+_080AD6D8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD6B4
+
+ thumb_func_start sub_80AD6DC
+sub_80AD6DC:
+ movs r2, 0x8E
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ bx lr
+ thumb_func_end sub_80AD6DC
+
+ thumb_func_start sub_80AD6E8
+sub_80AD6E8:
+ push {lr}
+ movs r2, 0x4
+ ldrsh r0, [r0, r2]
+ bl sub_80AD0C8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD6E8
+
+ thumb_func_start sub_80AD6F8
+sub_80AD6F8:
+ push {lr}
+ movs r2, 0x4
+ ldrsh r0, [r0, r2]
+ bl sub_80AD10C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AD6F8
+
+ thumb_func_start sub_80AD708
+sub_80AD708:
+ push {lr}
+ bl sub_80AD430
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80AD708
+
+ thumb_func_start GroundEffect_Action
+GroundEffect_Action:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080AD754
+ ldr r5, [r0]
+ movs r7, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r1, 0x9E
+ lsls r1, 1
+ adds r6, r5, r1
+_080AD72C:
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r0, r8
+ beq _080AD78A
+ adds r4, r5, 0
+ adds r4, 0x38
+ adds r0, r4, 0
+ ldr r1, _080AD758
+ bl HandleAction
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _080AD75C
+ cmp r0, 0x4
+ bne _080AD768
+ adds r0, r7, 0
+ bl GroundEffect_Delete
+ b _080AD78A
+ .align 2, 0
+_080AD754: .4byte gUnknown_3001B8C
+_080AD758: .4byte gUnknown_811874C
+_080AD75C:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1
+ ldr r3, _080AD7A8
+ bl sub_809D8C0
+_080AD768:
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _080AD78A
+ movs r0, 0
+ strb r0, [r6]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r5, r1
+ ldrh r2, [r6, 0x2]
+ movs r3, 0xF8
+ lsls r3, 5
+ adds r1, r3, 0
+ ands r1, r2
+ lsls r2, 24
+ asrs r2, 24
+ bl sub_80A6EFC
+_080AD78A:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ asrs r7, r0, 16
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r6, r0
+ adds r5, r0
+ cmp r7, 0xF
+ ble _080AD72C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD7A8: .4byte gUnknown_8118758
+ thumb_func_end GroundEffect_Action
+
+ thumb_func_start sub_80AD7AC
+sub_80AD7AC:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r0, _080AD864
+ ldr r6, [r0]
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0x1
+ negs r1, r1
+ mov r9, r1
+ movs r2, 0x90
+ lsls r2, 1
+ adds r4, r6, r2
+_080AD7CA:
+ movs r0, 0x6
+ ldrsh r1, [r6, r0]
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ beq _080AD83C
+ ldr r0, [r4, 0x4]
+ ldr r1, [r6, 0x14]
+ adds r0, r1
+ str r0, [sp]
+ ldr r0, [r4, 0x8]
+ ldr r1, [r6, 0x18]
+ adds r0, r1
+ str r0, [sp, 0x4]
+ ldr r1, [r4, 0x14]
+ ldr r0, [r4, 0x18]
+ adds r7, r1, r0
+ movs r0, 0xA2
+ lsls r0, 1
+ adds r5, r6, r0
+ adds r0, r5, 0
+ bl sub_80A66D4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080AD818
+ movs r0, 0
+ strb r0, [r4, 0x1C]
+ ldrh r2, [r4, 0x1E]
+ movs r0, 0xF8
+ lsls r0, 5
+ adds r1, r0, 0
+ ands r1, r2
+ lsls r2, 24
+ asrs r2, 24
+ adds r0, r5, 0
+ bl sub_80A6EFC
+_080AD818:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080AD832
+ adds r1, r0, 0
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80A7040
+ movs r0, 0
+ strh r0, [r4, 0x20]
+_080AD832:
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r7, 0
+ bl sub_80A7720
+_080AD83C:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r4, r0
+ adds r6, r0
+ mov r1, r8
+ cmp r1, 0xF
+ ble _080AD7CA
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD864: .4byte gUnknown_3001B8C
+ thumb_func_end sub_80AD7AC
+
+ thumb_func_start sub_80AD868
+sub_80AD868:
+ ldr r1, _080AD870
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080AD870: .4byte gUnknown_203B4B8
+ thumb_func_end sub_80AD868
+
+ thumb_func_start sub_80AD874
+sub_80AD874:
+ ldr r1, _080AD87C
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080AD87C: .4byte gUnknown_203B4B8
+ thumb_func_end sub_80AD874
+
+ thumb_func_start GroundLink_Select
+GroundLink_Select:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _080AD898
+ bl sub_80A77D0
+ ldr r1, _080AD89C
+ ldr r0, [r0, 0x8]
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD898: .4byte gUnknown_8118798
+_080AD89C: .4byte gUnknown_203B4B8
+ thumb_func_end GroundLink_Select
+
+ thumb_func_start sub_80AD8A0
+sub_80AD8A0:
+ lsls r0, 16
+ ldr r1, _080AD8B0
+ asrs r0, 13
+ ldr r1, [r1]
+ adds r1, r0
+ adds r0, r1, 0
+ bx lr
+ .align 2, 0
+_080AD8B0: .4byte gUnknown_203B4B8
+ thumb_func_end sub_80AD8A0
+
+ thumb_func_start sub_80AD8B4
+sub_80AD8B4:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ ldr r1, _080AD910
+ asrs r0, 13
+ ldr r1, [r1]
+ adds r2, r1, r0
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080AD8E4
+ ldrb r0, [r2]
+ lsls r3, r0, 11
+ str r3, [r4]
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD8E4
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r3, r1
+ str r0, [r4]
+_080AD8E4:
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080AD906
+ 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 _080AD906
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r3, r1
+ str r0, [r4, 0x4]
+_080AD906:
+ ldrb r0, [r2, 0x6]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AD910: .4byte gUnknown_203B4B8
+ thumb_func_end sub_80AD8B4
+
+ thumb_func_start sub_80AD914
+sub_80AD914:
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 16
+ ldr r1, _080AD98C
+ asrs r0, 13
+ ldr r1, [r1]
+ adds r2, r1, r0
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080AD94E
+ ldrb r0, [r2]
+ lsls r3, r0, 11
+ str r3, [r4]
+ ldrb r1, [r2, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080AD94E
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r3, r1
+ str r0, [r4]
+_080AD94E:
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080AD970
+ 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 _080AD970
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r3, r1
+ str r0, [r4, 0x4]
+_080AD970:
+ ldrb r1, [r2, 0x4]
+ lsls r1, 11
+ ldr r0, [r4]
+ adds r0, r1
+ str r0, [r5]
+ ldrb r1, [r2, 0x5]
+ lsls r1, 11
+ ldr r0, [r4, 0x4]
+ adds r0, r1
+ str r0, [r5, 0x4]
+ ldrb r0, [r2, 0x6]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080AD98C: .4byte gUnknown_203B4B8
+ thumb_func_end sub_80AD914
+
+ thumb_func_start sub_80AD990
+sub_80AD990:
+ push {r4,lr}
+ ldr r4, _080AD9C8
+ movs r0, 0x80
+ lsls r0, 3
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ adds r1, r0, 0
+ ldr r0, _080AD9CC
+ adds r4, r0, 0
+ movs r2, 0x80
+ lsls r2, 9
+ adds r3, r2, 0
+_080AD9AC:
+ ldrh r0, [r1, 0x2]
+ orrs r0, r4
+ strh r0, [r1, 0x2]
+ adds r0, r2, 0
+ adds r2, r3
+ asrs r0, 16
+ adds r1, 0x20
+ cmp r0, 0x1F
+ ble _080AD9AC
+ bl sub_80AD9D0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080AD9C8: .4byte gUnknown_3001B90
+_080AD9CC: .4byte 0x0000ffff
+ thumb_func_end sub_80AD990
+
+ thumb_func_start sub_80AD9D0
+sub_80AD9D0:
+ push {r4-r6,lr}
+ ldr r0, _080ADA04
+ ldr r4, [r0]
+ movs r1, 0
+ movs r6, 0x1
+ negs r6, r6
+ movs r5, 0x80
+ lsls r5, 9
+_080AD9E0:
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, r6
+ beq _080AD9EE
+ adds r0, r1, 0
+ bl GroundEvent_Delete
+_080AD9EE:
+ adds r0, r5, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r5, r1
+ asrs r1, r0, 16
+ adds r4, 0x20
+ cmp r1, 0x1F
+ ble _080AD9E0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADA04: .4byte gUnknown_3001B90
+ thumb_func_end sub_80AD9D0
+
+ thumb_func_start sub_80ADA08
+sub_80ADA08:
+ push {r4,lr}
+ bl sub_80AD9D0
+ ldr r4, _080ADA20
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADA20: .4byte gUnknown_3001B90
+ thumb_func_end sub_80ADA08
+
+ thumb_func_start GroundEvent_Select
+GroundEvent_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, _080ADA88
+ adds r0, r4, 0
+ bl sub_80A77D0
+ adds r5, r0, 0
+ ldr r1, _080ADA8C
+ 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, 0x1C]
+ ldr r0, [r0, 0x18]
+ cmp r0, 0
+ ble _080ADA7E
+ adds r4, r0, 0
+_080ADA68:
+ movs r0, 0x1
+ negs r0, r0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl GroundEvent_Add
+ subs r4, 0x1
+ adds r5, 0xC
+ cmp r4, 0
+ bne _080ADA68
+_080ADA7E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADA88: .4byte gUnknown_81187DC
+_080ADA8C: .4byte gUnknown_81187E8
+ thumb_func_end GroundEvent_Select
+
+ thumb_func_start GroundEvent_Cancel
+GroundEvent_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, _080ADAF8
+ movs r0, 0
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl Log
+ movs r1, 0
+ ldr r0, _080ADAFC
+ ldr r4, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ mov r8, r0
+ movs r6, 0x80
+ lsls r6, 9
+_080ADABA:
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, r8
+ beq _080ADADC
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, r7
+ bne _080ADADC
+ cmp r5, 0
+ blt _080ADAD6
+ movs r0, 0x6
+ ldrsb r0, [r4, r0]
+ cmp r0, r5
+ bne _080ADADC
+_080ADAD6:
+ adds r0, r1, 0
+ bl GroundEvent_Delete
+_080ADADC:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r1, r0, 16
+ adds r4, 0x20
+ cmp r1, 0x1F
+ ble _080ADABA
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADAF8: .4byte gUnknown_811880C
+_080ADAFC: .4byte gUnknown_3001B90
+ thumb_func_end GroundEvent_Cancel
+
+ thumb_func_start GroundEvent_Add
+GroundEvent_Add:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r8, r1
+ lsls r0, 16
+ asrs r7, r0, 16
+ lsls r2, 16
+ asrs r6, r2, 16
+ lsls r3, 24
+ asrs r3, 24
+ mov r9, r3
+ ldr r5, [r1, 0x8]
+ cmp r7, 0
+ bge _080ADB60
+ ldr r0, _080ADB38
+ ldr r4, [r0]
+ movs r2, 0
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ADB3C
+ movs r7, 0
+ b _080ADB68
+ .align 2, 0
+_080ADB38: .4byte gUnknown_3001B90
+_080ADB3C:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ asrs r2, r0, 16
+ adds r4, 0x20
+ cmp r2, 0x1F
+ bgt _080ADB56
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ADB3C
+ adds r7, r2, 0
+_080ADB56:
+ cmp r7, 0
+ bge _080ADB68
+ movs r0, 0x1
+ negs r0, r0
+ b _080ADC24
+_080ADB60:
+ ldr r0, _080ADBA0
+ lsls r1, r7, 5
+ ldr r0, [r0]
+ adds r4, r0, r1
+_080ADB68:
+ ldr r1, _080ADBA4
+ movs r0, 0
+ ldrsh r3, [r5, r0]
+ str r6, [sp]
+ mov r2, r9
+ str r2, [sp, 0x4]
+ mov r2, r8
+ ldr r0, [r2, 0x8]
+ ldr r0, [r0, 0x8]
+ str r0, [sp, 0x8]
+ movs r0, 0
+ adds r2, r7, 0
+ bl Log
+ strh r7, [r4]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x2]
+ strh r6, [r4, 0x4]
+ mov r3, r9
+ strb r3, [r4, 0x6]
+ movs r6, 0x2
+ ldrsh r0, [r5, r6]
+ cmp r0, 0x1
+ blt _080ADBA8
+ cmp r0, 0x2
+ bgt _080ADBA8
+ movs r0, 0x60
+ b _080ADBAA
+ .align 2, 0
+_080ADBA0: .4byte gUnknown_3001B90
+_080ADBA4: .4byte gUnknown_8118828
+_080ADBA8:
+ movs r0, 0x20
+_080ADBAA:
+ str r0, [r4, 0x8]
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r1, r0, 11
+ ldrb r0, [r3, 0x1]
+ lsls r2, r0, 11
+ mov r5, r8
+ adds r5, 0x4
+ add r6, sp, 0xC
+ mov r12, r6
+ ldrb r6, [r5, 0x2]
+ movs r0, 0x4
+ ands r0, r6
+ cmp r0, 0
+ bne _080ADBDE
+ ldrb r0, [r3, 0x4]
+ lsls r3, r0, 11
+ str r3, [sp, 0xC]
+ movs r0, 0x2
+ ands r0, r6
+ cmp r0, 0
+ beq _080ADBDE
+ movs r6, 0x80
+ lsls r6, 3
+ adds r0, r3, r6
+ str r0, [sp, 0xC]
+_080ADBDE:
+ ldrb r6, [r5, 0x3]
+ movs r0, 0x4
+ ands r0, r6
+ cmp r0, 0
+ bne _080ADC02
+ ldrb r0, [r5, 0x1]
+ lsls r3, r0, 11
+ mov r0, r12
+ str r3, [r0, 0x4]
+ movs r0, 0x2
+ ands r0, r6
+ cmp r0, 0
+ beq _080ADC02
+ movs r5, 0x80
+ lsls r5, 3
+ adds r0, r3, r5
+ mov r6, r12
+ str r0, [r6, 0x4]
+_080ADC02:
+ ldr r0, [sp, 0xC]
+ str r0, [r4, 0xC]
+ ldr r0, [sp, 0xC]
+ adds r0, r1
+ str r0, [r4, 0x14]
+ ldr r0, [sp, 0x10]
+ str r0, [r4, 0x10]
+ ldr r0, [sp, 0x10]
+ adds r0, r2
+ str r0, [r4, 0x18]
+ mov r1, r8
+ ldr r0, [r1, 0x8]
+ ldr r0, [r0, 0x8]
+ str r0, [r4, 0x1C]
+ bl sub_80A7A78
+ adds r0, r7, 0
+_080ADC24:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end GroundEvent_Add
+
+ thumb_func_start GroundEvent_Delete
+GroundEvent_Delete:
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _080ADC58
+ lsls r1, r2, 5
+ ldr r4, [r0]
+ adds r4, r1
+ ldr r1, _080ADC5C
+ movs r0, 0
+ bl Log
+ ldr r0, _080ADC60
+ strh r0, [r4, 0x2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADC58: .4byte gUnknown_3001B90
+_080ADC5C: .4byte gUnknown_811886C
+_080ADC60: .4byte 0x0000ffff
+ thumb_func_end GroundEvent_Delete
+
+ thumb_func_start sub_80ADC64
+sub_80ADC64:
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 16
+ ldr r1, _080ADC84
+ asrs r0, 11
+ ldr r1, [r1]
+ adds r2, r1, r0
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080ADC88
+ movs r0, 0
+ b _080ADC9A
+ .align 2, 0
+_080ADC84: .4byte gUnknown_3001B90
+_080ADC88:
+ ldr r0, [r2, 0x1C]
+ str r0, [r3]
+ movs r0, 0x2
+ strh r0, [r3, 0x4]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r3, 0x6]
+ ldrb r0, [r2, 0x6]
+ strb r0, [r3, 0x8]
+ movs r0, 0x1
+_080ADC9A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80ADC64
+
+ thumb_func_start sub_80ADCA0
+sub_80ADCA0:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ ldr r0, _080ADCEC
+ ldr r3, [r0]
+ movs r5, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r12, r0
+ movs r6, 0x80
+ lsls r6, 9
+_080ADCB6:
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r0, r12
+ beq _080ADCF0
+ ldr r0, [r3, 0x8]
+ ands r0, r7
+ cmp r0, 0
+ beq _080ADCF0
+ ldr r1, [r3, 0xC]
+ ldr r0, [r2]
+ cmp r1, r0
+ bge _080ADCF0
+ ldr r1, [r3, 0x14]
+ ldr r0, [r4]
+ cmp r1, r0
+ ble _080ADCF0
+ ldr r1, [r3, 0x10]
+ ldr r0, [r2, 0x4]
+ cmp r1, r0
+ bge _080ADCF0
+ ldr r1, [r3, 0x18]
+ ldr r0, [r4, 0x4]
+ cmp r1, r0
+ ble _080ADCF0
+ adds r0, r5, 0
+ b _080ADD04
+ .align 2, 0
+_080ADCEC: .4byte gUnknown_3001B90
+_080ADCF0:
+ adds r0, r6, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r6, r1
+ asrs r5, r0, 16
+ adds r3, 0x20
+ cmp r5, 0x1F
+ ble _080ADCB6
+ movs r0, 0x1
+ negs r0, r0
+_080ADD04:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80ADCA0
+
+ thumb_func_start sub_80ADD0C
+sub_80ADD0C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ ldr r0, _080ADD74
+ ldr r4, [r0]
+ movs r7, 0
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ movs r1, 0x80
+ lsls r1, 9
+ mov r12, r1
+_080ADD2C:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, r9
+ beq _080ADD78
+ ldr r0, [r4, 0x8]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _080ADD78
+ ldr r0, [r4, 0xC]
+ ldr r1, [r4, 0x14]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r2, r0, 1
+ ldr r0, [r4, 0x10]
+ ldr r1, [r4, 0x18]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r3, r0, 1
+ ldr r0, [r5]
+ cmp r2, r0
+ bge _080ADD78
+ ldr r0, [r6]
+ cmp r2, r0
+ ble _080ADD78
+ ldr r0, [r5, 0x4]
+ cmp r3, r0
+ bge _080ADD78
+ ldr r0, [r6, 0x4]
+ cmp r3, r0
+ ble _080ADD78
+ adds r0, r7, 0
+ b _080ADD8C
+ .align 2, 0
+_080ADD74: .4byte gUnknown_3001B90
+_080ADD78:
+ mov r0, r12
+ movs r1, 0x80
+ lsls r1, 9
+ add r12, r1
+ asrs r7, r0, 16
+ adds r4, 0x20
+ cmp r7, 0x1F
+ ble _080ADD2C
+ movs r0, 0x1
+ negs r0, r0
+_080ADD8C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80ADD0C
+
+ thumb_func_start nullsub_124
+nullsub_124:
+ bx lr
+ thumb_func_end nullsub_124
+
+ thumb_func_start sub_80ADD9C
+sub_80ADD9C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ str r2, [sp, 0x28]
+ str r3, [sp, 0x2C]
+ ldr r5, [sp, 0x54]
+ ldr r0, [sp, 0x5C]
+ mov r9, r0
+ movs r0, 0x93
+ lsls r0, 4
+ movs r1, 0x7
+ bl MemoryAlloc
+ mov r10, r0
+ ldr r0, _080ADEB4
+ ldr r7, _080ADEB8
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r6, r0, 0
+ add r4, sp, 0x1C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80901D8
+ ldrb r5, [r4]
+ ldrb r4, [r4, 0x1]
+ cmp r5, 0x3E
+ bls _080ADDE2
+ movs r5, 0x3E
+_080ADDE2:
+ cmp r4, 0
+ bgt _080ADDE8
+ movs r4, 0x1
+_080ADDE8:
+ adds r0, r5, 0
+ bl sub_8090298
+ cmp r4, r0
+ blt _080ADDFA
+ adds r0, r5, 0
+ bl sub_8090298
+ subs r4, r0, 0x1
+_080ADDFA:
+ ldr r2, [r6, 0x4]
+ ldr r1, [r2]
+ lsls r0, r5, 2
+ adds r0, r1
+ lsls r1, r4, 4
+ ldr r0, [r0]
+ adds r0, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r8, r0
+ adds r0, r6, 0
+ bl CloseFile
+ ldr r1, _080ADEBC
+ ldr r0, _080ADEC0
+ add r0, r8
+ ldrb r5, [r0]
+ add r0, sp, 0x10
+ adds r2, r5, 0
+ bl sprintf
+ add r0, sp, 0x10
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_800AE28
+ adds r0, r4, 0
+ bl CloseFile
+ ldr r1, _080ADEC4
+ add r0, sp, 0x10
+ mov r2, r8
+ bl sprintf
+ add r0, sp, 0x10
+ adds r1, r7, 0
+ bl OpenFile
+ ldr r1, [sp, 0x20]
+ str r0, [r1]
+ ldr r1, _080ADEC8
+ add r0, sp, 0x10
+ adds r2, r5, 0
+ bl sprintf
+ add r0, sp, 0x10
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ ldr r1, _080ADECC
+ ldr r0, [sp, 0x2C]
+ adds r2, r4, 0
+ bl sub_800AAA8
+ adds r0, r4, 0
+ bl CloseFile
+ mov r2, r8
+ cmp r2, 0x3F
+ bgt _080ADED4
+ ldr r1, _080ADED0
+ add r0, sp, 0x10
+ adds r2, r5, 0
+ bl sprintf
+ add r0, sp, 0x10
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ mov r0, r10
+ movs r1, 0x93
+ lsls r1, 4
+ adds r2, r4, 0
+ bl sub_800AAA8
+ adds r0, r4, 0
+ bl CloseFile
+ b _080ADEFC
+ .align 2, 0
+_080ADEB4: .4byte gUnknown_8118890
+_080ADEB8: .4byte gUnknown_83B0000
+_080ADEBC: .4byte gUnknown_811889C
+_080ADEC0: .4byte gUnknown_8108EC0
+_080ADEC4: .4byte gUnknown_81188A8
+_080ADEC8: .4byte gUnknown_81188B4
+_080ADECC: .4byte 0x00001194
+_080ADED0: .4byte gUnknown_81188C0
+_080ADED4:
+ ldr r1, _080ADF80
+ add r0, sp, 0x10
+ mov r2, r8
+ ldr r3, [sp, 0x58]
+ bl sprintf
+ add r0, sp, 0x10
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ movs r1, 0x90
+ lsls r1, 2
+ mov r0, r10
+ adds r2, r4, 0
+ bl sub_800AAA8
+ adds r0, r4, 0
+ bl CloseFile
+_080ADEFC:
+ movs r5, 0
+ ldr r3, [sp, 0x60]
+ cmp r5, r3
+ bge _080ADF52
+_080ADF04:
+ mov r0, r8
+ bl sub_8097F40
+ lsls r0, 24
+ movs r7, 0
+ cmp r0, 0
+ beq _080ADF14
+ movs r7, 0x3
+_080ADF14:
+ movs r4, 0
+ adds r6, r5, 0x1
+ cmp r4, r9
+ bge _080ADF4A
+_080ADF1C:
+ ldr r0, [sp, 0x64]
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ mov r2, r8
+ str r2, [sp, 0xC]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, r9
+ ldr r3, [sp, 0x60]
+ bl sub_80ADFB8
+ mov r1, r9
+ muls r1, r5
+ adds r1, r4
+ lsls r1, 1
+ ldr r3, [sp, 0x50]
+ adds r1, r3
+ strh r0, [r1]
+ adds r4, 0x1
+ cmp r4, r9
+ blt _080ADF1C
+_080ADF4A:
+ adds r5, r6, 0
+ ldr r0, [sp, 0x60]
+ cmp r5, r0
+ blt _080ADF04
+_080ADF52:
+ ldr r1, _080ADF84
+ add r0, sp, 0x10
+ mov r2, r8
+ bl sprintf
+ ldr r1, _080ADF88
+ add r0, sp, 0x10
+ bl OpenFile
+ ldr r1, [sp, 0x24]
+ str r0, [r1]
+ mov r0, r10
+ bl MemoryFree
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ADF80: .4byte gUnknown_81188CC
+_080ADF84: .4byte gUnknown_81188DC
+_080ADF88: .4byte gUnknown_83B0000
+ thumb_func_end sub_80ADD9C
+
+ thumb_func_start sub_80ADF8C
+sub_80ADF8C:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [sp, 0xC]
+ cmp r4, 0
+ blt _080ADFB0
+ cmp r1, 0
+ blt _080ADFB0
+ cmp r4, r2
+ bge _080ADFB0
+ cmp r1, r3
+ bge _080ADFB0
+ adds r0, r1, 0
+ muls r0, r2
+ adds r0, r4, r0
+ lsls r0, 1
+ ldr r1, [sp, 0x8]
+ adds r0, r1
+ ldrh r0, [r0]
+_080ADFB0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80ADF8C
+
+ thumb_func_start sub_80ADFB8
+sub_80ADFB8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ mov r9, r0
+ mov r10, r1
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r4, [sp, 0x5C]
+ movs r7, 0
+ ldr r0, [sp, 0x50]
+ str r0, [sp]
+ ldr r1, [sp, 0x54]
+ str r1, [sp, 0x4]
+ mov r0, r9
+ mov r1, r10
+ bl sub_80ADF8C
+ str r0, [sp, 0x28]
+ cmp r4, 0x3F
+ ble _080AE000
+ mov r0, r9
+ cmp r0, 0x17
+ bgt _080ADFFC
+ mov r1, r10
+ cmp r1, 0x17
+ bgt _080ADFFC
+ lsls r0, r1, 1
+ add r0, r10
+ lsls r0, 3
+ add r0, r9
+ b _080AE24E
+_080ADFFC:
+ ldr r0, [sp, 0x54]
+ b _080AE254
+_080AE000:
+ mov r0, r10
+ adds r0, 0x1
+ str r0, [sp, 0x2C]
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ ldr r1, [sp, 0x2C]
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ str r0, [sp, 0x8]
+ mov r4, r9
+ adds r4, 0x1
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ ldr r1, [sp, 0x2C]
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ str r0, [sp, 0xC]
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r1, r10
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ str r0, [sp, 0x10]
+ mov r5, r10
+ subs r5, 0x1
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ str r0, [sp, 0x14]
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ str r0, [sp, 0x18]
+ subs r4, 0x2
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ str r0, [sp, 0x1C]
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r1, r10
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ str r0, [sp, 0x20]
+ ldr r1, [sp, 0x50]
+ str r1, [sp]
+ ldr r0, [sp, 0x54]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ ldr r1, [sp, 0x2C]
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_80ADF8C
+ adds r1, r0, 0
+ str r1, [sp, 0x24]
+ ldr r0, [sp, 0x28]
+ cmp r0, 0x1
+ bne _080AE12A
+ movs r7, 0xFF
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _080AE0D2
+ movs r7, 0xFE
+_080AE0D2:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _080AE0DE
+ movs r0, 0x3
+ negs r0, r0
+ ands r7, r0
+_080AE0DE:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0
+ bne _080AE0EA
+ movs r0, 0x5
+ negs r0, r0
+ ands r7, r0
+_080AE0EA:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _080AE0F6
+ movs r0, 0x9
+ negs r0, r0
+ ands r7, r0
+_080AE0F6:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0
+ bne _080AE102
+ movs r0, 0x11
+ negs r0, r0
+ ands r7, r0
+_080AE102:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0
+ bne _080AE10E
+ movs r0, 0x21
+ negs r0, r0
+ ands r7, r0
+_080AE10E:
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ bne _080AE11A
+ movs r0, 0x41
+ negs r0, r0
+ ands r7, r0
+_080AE11A:
+ cmp r1, 0
+ bne _080AE124
+ movs r0, 0x81
+ negs r0, r0
+ ands r7, r0
+_080AE124:
+ movs r0, 0x80
+ lsls r0, 2
+ b _080AE248
+_080AE12A:
+ ldr r0, [sp, 0x28]
+ cmp r0, 0x2
+ bne _080AE192
+ movs r7, 0xFF
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x2
+ beq _080AE13A
+ movs r7, 0xFE
+_080AE13A:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0x2
+ beq _080AE146
+ movs r0, 0x3
+ negs r0, r0
+ ands r7, r0
+_080AE146:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x2
+ beq _080AE152
+ movs r0, 0x5
+ negs r0, r0
+ ands r7, r0
+_080AE152:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x2
+ beq _080AE15E
+ movs r0, 0x9
+ negs r0, r0
+ ands r7, r0
+_080AE15E:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0x2
+ beq _080AE16A
+ movs r0, 0x11
+ negs r0, r0
+ ands r7, r0
+_080AE16A:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0x2
+ beq _080AE176
+ movs r0, 0x21
+ negs r0, r0
+ ands r7, r0
+_080AE176:
+ ldr r0, [sp, 0x20]
+ cmp r0, 0x2
+ beq _080AE182
+ movs r0, 0x41
+ negs r0, r0
+ ands r7, r0
+_080AE182:
+ cmp r1, 0x2
+ beq _080AE18C
+ movs r0, 0x81
+ negs r0, r0
+ ands r7, r0
+_080AE18C:
+ movs r0, 0x80
+ lsls r0, 1
+ b _080AE248
+_080AE192:
+ ldr r1, [sp, 0x28]
+ cmp r1, 0x3
+ bne _080AE1FC
+ movs r7, 0xFF
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x3
+ beq _080AE1A2
+ movs r7, 0xFE
+_080AE1A2:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0x3
+ beq _080AE1AE
+ movs r0, 0x3
+ negs r0, r0
+ ands r7, r0
+_080AE1AE:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x3
+ beq _080AE1BA
+ movs r0, 0x5
+ negs r0, r0
+ ands r7, r0
+_080AE1BA:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x3
+ beq _080AE1C6
+ movs r0, 0x9
+ negs r0, r0
+ ands r7, r0
+_080AE1C6:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0x3
+ beq _080AE1D2
+ movs r0, 0x11
+ negs r0, r0
+ ands r7, r0
+_080AE1D2:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0x3
+ beq _080AE1DE
+ movs r0, 0x21
+ negs r0, r0
+ ands r7, r0
+_080AE1DE:
+ ldr r0, [sp, 0x20]
+ cmp r0, 0x3
+ beq _080AE1EA
+ movs r0, 0x41
+ negs r0, r0
+ ands r7, r0
+_080AE1EA:
+ ldr r0, [sp, 0x24]
+ cmp r0, 0x3
+ beq _080AE1F6
+ movs r0, 0x81
+ negs r0, r0
+ ands r7, r0
+_080AE1F6:
+ movs r0, 0x80
+ lsls r0, 1
+ b _080AE248
+_080AE1FC:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _080AE204
+ movs r7, 0x1
+_080AE204:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _080AE20E
+ movs r0, 0x2
+ orrs r7, r0
+_080AE20E:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0
+ bne _080AE218
+ movs r0, 0x4
+ orrs r7, r0
+_080AE218:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _080AE222
+ movs r0, 0x8
+ orrs r7, r0
+_080AE222:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0
+ bne _080AE22C
+ movs r0, 0x10
+ orrs r7, r0
+_080AE22C:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0
+ bne _080AE236
+ movs r0, 0x20
+ orrs r7, r0
+_080AE236:
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ bne _080AE240
+ movs r0, 0x40
+ orrs r7, r0
+_080AE240:
+ ldr r0, [sp, 0x24]
+ cmp r0, 0
+ bne _080AE24A
+ movs r0, 0x80
+_080AE248:
+ orrs r7, r0
+_080AE24A:
+ lsls r0, r7, 1
+ adds r0, r7
+_080AE24E:
+ ldr r1, [sp, 0x58]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+_080AE254:
+ 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_80ADFB8
+
+ .align 2,0
diff --git a/ld_script.txt b/ld_script.txt
index d1d67ff..0880775 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -92,6 +92,8 @@ SECTIONS {
asm/code_8092334.o(.text);
asm/code_8098468.o(.text);
asm/code_80A26CC.o(.text);
+ src/code_80A7714.o(.text);
+ asm/code_80A7714.o(.text);
asm/m4a_1.o(.text);
src/m4a_2.o(.text);
asm/m4a_3.o(.text);
diff --git a/src/code_80A7714.c b/src/code_80A7714.c
new file mode 100644
index 0000000..0522ef1
--- /dev/null
+++ b/src/code_80A7714.c
@@ -0,0 +1,27 @@
+#include "global.h"
+
+extern void sub_80A68A0(void);
+extern void sub_80A7094(u32 r0, u32 r1, u32 r2, u32 r3);
+extern void sub_80A7310(u32 r0, u32 r1, u32 r2, u32 r3);
+extern s16 gUnknown_2039DE0;
+
+void sub_80A7714(void)
+{
+ sub_80A68A0();
+}
+
+void sub_80A7720(u32 r0, u32 r1, u32 r2)
+{
+ sub_80A7094(r0, 0, r1, r2);
+ sub_80A7310(r0, r1, 0, r2);
+}
+
+void sub_80A7744(void)
+{
+ gUnknown_2039DE0 = -1;
+}
+
+void sub_80A7754(void)
+{
+ gUnknown_2039DE0 = -1;
+}