summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-09-25 16:23:07 -0500
committerSeth Barberee <seth.barberee@gmail.com>2020-09-25 16:23:07 -0500
commitfdc874029ee28bc182671215bcedfa02987af7d3 (patch)
tree82d417b8e01ff532b86529a7c959d13ffd60f07c
parent1a649b9146fae34c623e8029e8effed973ea4ecb (diff)
40K line file into 2 20K files
-rw-r--r--asm/code_8098468.s24950
-rw-r--r--asm/code_80A26CC.s24958
-rwxr-xr-xld_script.txt1
3 files changed, 24959 insertions, 24950 deletions
diff --git a/asm/code_8098468.s b/asm/code_8098468.s
index 139a8ad..80395e1 100644
--- a/asm/code_8098468.s
+++ b/asm/code_8098468.s
@@ -19954,24954 +19954,4 @@ sub_80A26B8:
_080A26C8: .4byte gUnknown_8116F9A
thumb_func_end sub_80A26B8
- thumb_func_start sub_80A26CC
-sub_80A26CC:
- lsls r0, 16
- movs r1, 0xDC
- lsls r1, 14
- adds r0, r1
- asrs r0, 16
- bx lr
- thumb_func_end sub_80A26CC
-
- thumb_func_start sub_80A26D8
-sub_80A26D8:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_080A26E0:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2608
- adds r1, r0, 0
- ldrb r0, [r1, 0x11]
- cmp r0, 0
- beq _080A26FC
- ldrb r0, [r1, 0xC]
- cmp r0, r6
- bne _080A26FC
- adds r0, r4, 0
- b _080A2706
-_080A26FC:
- adds r5, 0x1
- cmp r5, 0x52
- ble _080A26E0
- movs r0, 0x1
- negs r0, r0
-_080A2706:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A26D8
-
- thumb_func_start sub_80A270C
-sub_80A270C:
- push {lr}
- lsls r0, 16
- ldr r1, _080A2724
- asrs r0, 15
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80A2608
- ldrb r0, [r0, 0xC]
- pop {r1}
- bx r1
- .align 2, 0
-_080A2724: .4byte gUnknown_8116F9A
- thumb_func_end sub_80A270C
-
- thumb_func_start sub_80A2728
-sub_80A2728:
- push {lr}
- lsls r0, 16
- movs r1, 0xDC
- lsls r1, 14
- adds r0, r1
- asrs r0, 16
- bl sub_80A2608
- ldrb r0, [r0, 0xC]
- pop {r1}
- bx r1
- thumb_func_end sub_80A2728
-
- thumb_func_start sub_80A2740
-sub_80A2740:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2608
- ldrb r0, [r0, 0xC]
- pop {r1}
- bx r1
- thumb_func_end sub_80A2740
-
- thumb_func_start sub_80A2750
-sub_80A2750:
- push {r4,lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r2, r1, 0
- cmp r1, 0x50
- bne _080A2760
- movs r0, 0x3
- b _080A27C4
-_080A2760:
- cmp r1, 0x51
- beq _080A27BE
- cmp r1, 0x52
- beq _080A2780
- adds r0, r1, 0
- subs r0, 0x28
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bls _080A27BE
- adds r0, r1, 0
- subs r0, 0x37
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bhi _080A2784
-_080A2780:
- movs r0, 0x4
- b _080A27C4
-_080A2784:
- adds r0, r2, 0
- bl sub_80A2608
- adds r4, r0, 0
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A27C2
- movs r0, 0x5
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _080A27C2
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- bl sub_80973F4
- lsls r0, 24
- cmp r0, 0
- beq _080A27C2
- movs r0, 0x1
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080A27C2
-_080A27BE:
- movs r0, 0x2
- b _080A27C4
-_080A27C2:
- movs r0, 0x1
-_080A27C4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2750
-
- thumb_func_start sub_80A27CC
-sub_80A27CC:
- push {r4,r5,lr}
- lsls r0, 16
- asrs r4, r0, 16
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_80A2620
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A281A
- movs r0, 0x5
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _080A281A
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- bne _080A2816
- movs r0, 0x1
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080A281A
- adds r0, r5, 0
- bl sub_80973F4
- lsls r0, 24
- cmp r0, 0
- beq _080A281A
-_080A2816:
- movs r0, 0x1
- b _080A281C
-_080A281A:
- movs r0, 0
-_080A281C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A27CC
-
- thumb_func_start sub_80A2824
-sub_80A2824:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x5
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _080A28AC
- movs r0, 0x1
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080A2880
- movs r5, 0
-_080A2844:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- adds r1, r0, 0
- ldrb r0, [r1, 0x11]
- cmp r0, 0
- beq _080A2874
- ldrb r0, [r1, 0xC]
- cmp r0, r6
- bne _080A2874
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- bne _080A287C
- adds r0, r4, 0
- bl sub_80973F4
- lsls r0, 24
- cmp r0, 0
- bne _080A287C
-_080A2874:
- adds r5, 0x1
- cmp r5, 0x2D
- ble _080A2844
- b _080A28AC
-_080A287C:
- movs r0, 0x1
- b _080A28AE
-_080A2880:
- movs r5, 0
-_080A2882:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- adds r1, r0, 0
- ldrb r0, [r1, 0x11]
- cmp r0, 0
- beq _080A28A6
- ldrb r0, [r1, 0xC]
- cmp r0, r6
- bne _080A28A6
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- bne _080A287C
-_080A28A6:
- adds r5, 0x1
- cmp r5, 0x2D
- ble _080A2882
-_080A28AC:
- movs r0, 0
-_080A28AE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2824
-
- thumb_func_start sub_80A28B4
-sub_80A28B4:
- push {r4,lr}
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A28E8
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- bne _080A28E4
- adds r0, r4, 0
- bl sub_80973F4
- lsls r0, 24
- cmp r0, 0
- beq _080A28E8
-_080A28E4:
- movs r0, 0x1
- b _080A28EA
-_080A28E8:
- movs r0, 0
-_080A28EA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A28B4
-
- thumb_func_start sub_80A28F0
-sub_80A28F0:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_080A28F8:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- adds r1, r0, 0
- ldrb r0, [r1, 0x11]
- cmp r0, 0
- beq _080A292C
- ldrb r0, [r1, 0xC]
- cmp r0, r6
- bne _080A292C
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- bne _080A2928
- adds r0, r4, 0
- bl sub_80973F4
- lsls r0, 24
- cmp r0, 0
- beq _080A292C
-_080A2928:
- movs r0, 0x1
- b _080A2934
-_080A292C:
- adds r5, 0x1
- cmp r5, 0x2D
- ble _080A28F8
- movs r0, 0
-_080A2934:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A28F0
-
- thumb_func_start sub_80A293C
-sub_80A293C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x40
- mov r8, r0
- movs r7, 0
- movs r1, 0
- mov r0, sp
- adds r0, 0x3E
-_080A294E:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, sp
- bge _080A294E
- movs r5, 0
-_080A2958:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- adds r6, r0, 0
- ldrb r0, [r6, 0x11]
- cmp r0, 0
- beq _080A2980
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- beq _080A2980
- ldrb r0, [r6, 0xC]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_080A2980:
- adds r5, 0x1
- cmp r5, 0x2D
- ble _080A2958
- movs r5, 0
-_080A2988:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A299A
- mov r2, r8
- adds r0, r2, r7
- strb r5, [r0]
- adds r7, 0x1
-_080A299A:
- adds r5, 0x1
- cmp r5, 0x3E
- ble _080A2988
- adds r0, r7, 0
- add sp, 0x40
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A293C
-
- thumb_func_start sub_80A29B0
-sub_80A29B0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x48
- mov r8, r0
- movs r7, 0
- movs r0, 0x2B
- add r0, sp
- mov r9, r0
- add r1, sp, 0x2C
- mov r10, r1
- mov r2, sp
- adds r2, 0x2D
- str r2, [sp, 0x40]
- mov r0, sp
- adds r0, 0x2E
- str r0, [sp, 0x44]
- movs r1, 0
- adds r0, 0x10
-_080A29DA:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, sp
- bge _080A29DA
- movs r0, 0x1
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080A2A1E
- movs r5, 0
-_080A29F0:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- adds r6, r0, 0
- ldrb r0, [r6, 0x11]
- cmp r0, 0
- beq _080A2A18
- adds r0, r4, 0
- bl sub_80973F4
- lsls r0, 24
- cmp r0, 0
- beq _080A2A18
- ldrb r0, [r6, 0xC]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_080A2A18:
- adds r5, 0x1
- cmp r5, 0x2D
- ble _080A29F0
-_080A2A1E:
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
- mov r2, r10
- strb r0, [r2]
- ldr r1, [sp, 0x40]
- strb r0, [r1]
- ldr r2, [sp, 0x44]
- strb r0, [r2]
- movs r5, 0
-_080A2A32:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A2A44
- mov r2, r8
- adds r0, r2, r7
- strb r5, [r0]
- adds r7, 0x1
-_080A2A44:
- adds r5, 0x1
- cmp r5, 0x3E
- ble _080A2A32
- adds r0, r7, 0
- add sp, 0x48
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A29B0
-
- thumb_func_start sub_80A2A5C
-sub_80A2A5C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x40
- mov r8, r0
- movs r7, 0
- movs r1, 0
- mov r0, sp
- adds r0, 0x3E
-_080A2A6E:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, sp
- bge _080A2A6E
- movs r0, 0x1
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080A2AC0
- movs r6, 0
-_080A2A84:
- lsls r0, r6, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- adds r5, r0, 0
- ldrb r0, [r5, 0x11]
- cmp r0, 0
- beq _080A2AB8
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- bne _080A2AAE
- adds r0, r4, 0
- bl sub_80973F4
- lsls r0, 24
- cmp r0, 0
- beq _080A2AB8
-_080A2AAE:
- ldrb r0, [r5, 0xC]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_080A2AB8:
- adds r6, 0x1
- cmp r6, 0x2D
- ble _080A2A84
- b _080A2AF0
-_080A2AC0:
- movs r6, 0
-_080A2AC2:
- lsls r0, r6, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2620
- adds r5, r0, 0
- ldrb r0, [r5, 0x11]
- cmp r0, 0
- beq _080A2AEA
- adds r0, r4, 0
- bl sub_8097384
- lsls r0, 24
- cmp r0, 0
- beq _080A2AEA
- ldrb r0, [r5, 0xC]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_080A2AEA:
- adds r6, 0x1
- cmp r6, 0x2D
- ble _080A2AC2
-_080A2AF0:
- movs r6, 0
-_080A2AF2:
- mov r1, sp
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A2B04
- mov r2, r8
- adds r0, r2, r7
- strb r6, [r0]
- adds r7, 0x1
-_080A2B04:
- adds r6, 0x1
- cmp r6, 0x3E
- ble _080A2AF2
- adds r0, r7, 0
- add sp, 0x40
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2A5C
-
- thumb_func_start sub_80A2B18
-sub_80A2B18:
- lsls r0, 16
- ldr r1, _080A2B24
- asrs r0, 14
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080A2B24: .4byte gUnknown_8117000
- thumb_func_end sub_80A2B18
-
- thumb_func_start sub_80A2B28
-sub_80A2B28:
- push {lr}
- movs r0, 0
- movs r1, 0x11
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2B18
- pop {r1}
- bx r1
- thumb_func_end sub_80A2B28
-
- thumb_func_start sub_80A2B40
-sub_80A2B40:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r2, _080A2BFC
- adds r0, r5, r2
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldr r3, _080A2C00
- adds r0, r5, r3
- movs r4, 0
- ldrsh r1, [r0, r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- movs r1, 0x6
- bl MemoryAlloc
- movs r2, 0xA9
- lsls r2, 3
- adds r1, r5, r2
- str r0, [r1]
- movs r6, 0
- movs r3, 0xA7
- lsls r3, 3
- adds r0, r5, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r6, r0
- bge _080A2BC0
-_080A2B7C:
- lsls r4, r6, 2
- ldr r0, _080A2C04
- adds r2, r5, r0
- adds r2, r4
- ldr r1, _080A2C08
- adds r0, r5, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0x2
- adds r0, r1
- lsls r0, 11
- ldr r1, _080A2C0C
- adds r0, r1
- str r0, [r2]
- ldr r1, _080A2C10
- adds r0, r5, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 7
- movs r1, 0x6
- bl MemoryAlloc
- ldr r3, _080A2C14
- adds r1, r5, r3
- adds r1, r4
- str r0, [r1]
- adds r6, 0x1
- movs r4, 0xA7
- lsls r4, 3
- adds r0, r5, r4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r6, r0
- blt _080A2B7C
-_080A2BC0:
- cmp r6, 0x1
- bgt _080A2BD8
- movs r1, 0
- lsls r0, r6, 2
- ldr r2, _080A2C14
- adds r0, r2
- adds r0, r5
-_080A2BCE:
- str r1, [r0, 0x8]
- stm r0!, {r1}
- adds r6, 0x1
- cmp r6, 0x1
- ble _080A2BCE
-_080A2BD8:
- movs r3, 0xA8
- lsls r3, 3
- adds r0, r5, r3
- ldr r1, [r0]
- cmp r1, 0
- beq _080A2C20
- ldr r4, _080A2C18
- adds r0, r5, r4
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 8
- movs r1, 0x6
- bl MemoryAlloc
- ldr r2, _080A2C1C
- adds r1, r5, r2
- str r0, [r1]
- b _080A2C26
- .align 2, 0
-_080A2BFC: .4byte 0x0000052c
-_080A2C00: .4byte 0x00000534
-_080A2C04: .4byte 0x00000554
-_080A2C08: .4byte 0x00000536
-_080A2C0C: .4byte gUnknown_202B038
-_080A2C10: .4byte 0x0000053c
-_080A2C14: .4byte 0x0000054c
-_080A2C18: .4byte 0x0000053a
-_080A2C1C: .4byte 0x00000544
-_080A2C20:
- ldr r3, _080A2CF0
- adds r0, r5, r3
- str r1, [r0]
-_080A2C26:
- movs r4, 0x86
- lsls r4, 3
- adds r0, r5, r4
- movs r1, 0
- str r1, [r0]
- ldr r2, _080A2CF4
- adds r0, r5, r2
- str r1, [r0]
- movs r3, 0x87
- lsls r3, 3
- adds r0, r5, r3
- str r1, [r0]
- adds r4, 0xC
- adds r0, r5, r4
- str r1, [r0]
- adds r2, 0xC
- adds r0, r5, r2
- str r1, [r0]
- adds r3, 0xF2
- adds r0, r5, r3
- strb r1, [r0]
- adds r4, 0x8
- adds r2, r5, r4
- ldr r0, _080A2CF8
- strh r0, [r2]
- movs r2, 0x8D
- lsls r2, 3
- adds r0, r5, r2
- str r1, [r0]
- subs r3, 0xE2
- adds r0, r5, r3
- strb r1, [r0]
- adds r4, 0x5
- adds r0, r5, r4
- strb r1, [r0]
- subs r2, 0x1E
- adds r0, r5, r2
- strb r1, [r0]
- adds r3, 0x3
- adds r0, r5, r3
- strb r1, [r0]
- adds r4, 0x3
- adds r0, r5, r4
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r5, r2
- strb r1, [r0]
- adds r2, r5, 0
- adds r3, 0x21
- adds r0, r5, r3
- str r1, [r0]
- adds r4, 0x24
- adds r0, r5, r4
- strb r1, [r0]
- adds r3, 0x5
- adds r0, r5, r3
- strb r1, [r0]
- movs r0, 0
- movs r1, 0xD
-_080A2C9C:
- strh r0, [r2]
- strh r0, [r2, 0x2]
- str r0, [r2, 0x8]
- str r0, [r2, 0x4]
- subs r1, 0x1
- adds r2, 0x10
- cmp r1, 0
- bge _080A2C9C
- movs r1, 0
- movs r4, 0xF8
- lsls r4, 2
- adds r0, r5, r4
- movs r2, 0x1
-_080A2CB6:
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- str r1, [r0, 0x14]
- str r1, [r0, 0x10]
- str r1, [r0, 0x1C]
- str r1, [r0, 0x18]
- str r1, [r0, 0x20]
- str r1, [r0, 0x24]
- adds r0, 0x28
- subs r2, 0x1
- cmp r2, 0
- bge _080A2CB6
- movs r4, 0
-_080A2CD8:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2CFC
- bl sub_80A456C
- adds r4, 0x1
- cmp r4, 0x1
- ble _080A2CD8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2CF0: .4byte 0x00000544
-_080A2CF4: .4byte 0x00000434
-_080A2CF8: .4byte 0x0000ffff
-_080A2CFC: .4byte gUnknown_81172B8
- thumb_func_end sub_80A2B40
-
- thumb_func_start sub_80A2D00
-sub_80A2D00:
- push {r4-r7,lr}
- adds r6, r0, 0
- bl sub_80A2DD4
- ldr r0, _080A2D5C
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2D1A
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080A2D1A:
- movs r1, 0xA9
- lsls r1, 3
- adds r4, r6, r1
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- movs r5, 0
- movs r7, 0
-_080A2D2E:
- lsls r2, r5, 2
- ldr r1, _080A2D60
- adds r0, r6, r1
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- beq _080A2D3E
- str r7, [r1]
-_080A2D3E:
- ldr r1, _080A2D64
- adds r0, r6, r1
- adds r4, r0, r2
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2D50
- bl MemoryFree
- str r7, [r4]
-_080A2D50:
- adds r5, 0x1
- cmp r5, 0x1
- ble _080A2D2E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2D5C: .4byte 0x00000544
-_080A2D60: .4byte 0x00000554
-_080A2D64: .4byte 0x0000054c
- thumb_func_end sub_80A2D00
-
- thumb_func_start sub_80A2D68
-sub_80A2D68:
- push {r4,lr}
- ldr r1, _080A2D84
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2D7C
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080A2D7C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2D84: .4byte 0x00000544
- thumb_func_end sub_80A2D68
-
- thumb_func_start sub_80A2D88
-sub_80A2D88:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r0, 0xA8
- lsls r0, 3
- adds r7, r6, r0
- ldr r0, [r7]
- cmp r0, 0
- beq _080A2DC6
- movs r1, 0x89
- lsls r1, 3
- adds r5, r6, r1
- ldr r2, _080A2DCC
- adds r4, r6, r2
- movs r1, 0
- ldrsh r0, [r4, r1]
- lsls r0, 8
- movs r1, 0x6
- bl MemoryAlloc
- ldr r2, _080A2DD0
- adds r1, r6, r2
- str r0, [r1]
- subs r2, 0xDC
- adds r1, r6, r2
- ldr r1, [r1]
- movs r2, 0
- ldrsh r3, [r4, r2]
- ldr r4, [r7]
- adds r2, r5, 0
- bl _call_via_r4
-_080A2DC6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2DCC: .4byte 0x0000053a
-_080A2DD0: .4byte 0x00000544
- thumb_func_end sub_80A2D88
-
- thumb_func_start sub_80A2DD4
-sub_80A2DD4:
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0xFA
- lsls r0, 2
- adds r4, r6, r0
- movs r5, 0x1
-_080A2DE0:
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2DEE
- bl CloseFile
- movs r0, 0
- str r0, [r4]
-_080A2DEE:
- adds r4, 0x28
- subs r5, 0x1
- cmp r5, 0
- bge _080A2DE0
- ldr r0, _080A2E5C
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2E08
- bl CloseFile
- movs r0, 0
- str r0, [r4]
-_080A2E08:
- movs r0, 0x88
- lsls r0, 3
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2E1C
- bl CloseFile
- movs r0, 0
- str r0, [r4]
-_080A2E1C:
- movs r0, 0x86
- lsls r0, 3
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2E30
- bl CloseFile
- movs r0, 0
- str r0, [r4]
-_080A2E30:
- ldr r0, _080A2E60
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2E42
- bl CloseFile
- movs r0, 0
- str r0, [r4]
-_080A2E42:
- movs r0, 0x87
- lsls r0, 3
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080A2E56
- bl CloseFile
- movs r0, 0
- str r0, [r4]
-_080A2E56:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E5C: .4byte 0x0000043c
-_080A2E60: .4byte 0x00000434
- thumb_func_end sub_80A2DD4
-
- thumb_func_start sub_80A2E64
-sub_80A2E64:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r0, 0
- bl sub_80A2DD4
- ldr r0, _080A2FA4
- adds r1, r7, r0
- ldr r0, _080A2FA8
- strh r0, [r1]
- movs r1, 0xA5
- lsls r1, 3
- adds r0, r7, r1
- movs r1, 0
- movs r2, 0
- strh r2, [r0]
- movs r3, 0x89
- lsls r3, 3
- adds r0, r7, r3
- strb r1, [r0]
- ldr r4, _080A2FAC
- adds r0, r7, r4
- strb r1, [r0]
- adds r3, 0x2
- adds r0, r7, r3
- strb r1, [r0]
- adds r4, 0x2
- adds r0, r7, r4
- strb r1, [r0]
- adds r3, 0x2
- adds r0, r7, r3
- strb r1, [r0]
- adds r4, 0x2
- adds r0, r7, r4
- strb r1, [r0]
- adds r3, r7, 0
- adds r4, 0x1F
- adds r0, r7, r4
- str r2, [r0]
- movs r2, 0x8E
- lsls r2, 3
- adds r0, r7, r2
- strb r1, [r0]
- adds r4, 0x5
- adds r0, r7, r4
- strb r1, [r0]
- movs r0, 0
- movs r1, 0xD
-_080A2ECA:
- strh r0, [r3]
- strh r0, [r3, 0x2]
- str r0, [r3, 0x8]
- str r0, [r3, 0x4]
- subs r1, 0x1
- adds r3, 0x10
- cmp r1, 0
- bge _080A2ECA
- movs r1, 0
- movs r2, 0xF8
- lsls r2, 2
- adds r0, r7, r2
- movs r2, 0x1
-_080A2EE4:
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- str r1, [r0, 0x14]
- str r1, [r0, 0x10]
- str r1, [r0, 0x1C]
- str r1, [r0, 0x18]
- str r1, [r0, 0x20]
- str r1, [r0, 0x24]
- adds r0, 0x28
- subs r2, 0x1
- cmp r2, 0
- bge _080A2EE4
- ldr r3, _080A2FB0
- adds r0, r7, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- lsls r0, 20
- lsrs r6, r0, 16
- movs r5, 0
- ldr r1, _080A2FB4
- adds r0, r7, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r5, r0
- bge _080A2F78
- mov r10, r5
- add r4, sp, 0x4
- movs r3, 0xFF
- mov r9, r3
-_080A2F26:
- mov r0, r10
- str r0, [sp]
- ldrb r0, [r4]
- mov r1, r9
- orrs r0, r1
- strb r0, [r4]
- ldrb r0, [r4, 0x1]
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- orrs r0, r1
- strb r0, [r4, 0x2]
- mov r2, r10
- strb r2, [r4, 0x3]
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, [sp]
- bl sub_8003810
- adds r5, 0x1
- mov r8, r5
- movs r5, 0xE
-_080A2F56:
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, [sp, 0x4]
- bl sub_8003810
- subs r5, 0x1
- cmp r5, 0
- bge _080A2F56
- mov r5, r8
- ldr r3, _080A2FB4
- adds r0, r7, r3
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r5, r0
- blt _080A2F26
-_080A2F78:
- adds r0, r7, 0
- movs r1, 0
- bl sub_80A3BB0
- movs r2, 0x91
- lsls r2, 3
- adds r0, r7, r2
- bl sub_80A3EB0
- ldr r3, _080A2FB8
- adds r1, r7, r3
- movs r0, 0x1
- strb r0, [r1]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FA4: .4byte 0x00000444
-_080A2FA8: .4byte 0x0000ffff
-_080A2FAC: .4byte 0x00000449
-_080A2FB0: .4byte 0x0000052c
-_080A2FB4: .4byte 0x0000052e
-_080A2FB8: .4byte 0x0000052a
- thumb_func_end sub_80A2E64
-
- thumb_func_start sub_80A2FBC
-sub_80A2FBC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r9, r0
- lsls r1, 16
- asrs r4, r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _080A2FDE
- mov r0, r9
- bl sub_80A2E64
- b _080A3428
-_080A2FDE:
- mov r0, r9
- bl sub_80A2DD4
- ldr r0, _080A3284
- add r0, r9
- strh r4, [r0]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _080A3288
- adds r0, r1
- str r0, [sp, 0xC]
- ldr r0, [r0]
- ldr r4, _080A328C
- adds r1, r4, 0
- bl OpenFileAndGetFileDataPtr
- movs r6, 0x86
- lsls r6, 3
- add r6, r9
- str r0, [r6]
- ldr r1, [sp, 0xC]
- ldr r0, [r1, 0x4]
- adds r1, r4, 0
- bl OpenFileAndGetFileDataPtr
- ldr r5, _080A3290
- add r5, r9
- str r0, [r5]
- ldr r2, [sp, 0xC]
- ldr r0, [r2, 0x8]
- adds r1, r4, 0
- bl OpenFileAndGetFileDataPtr
- movs r1, 0x87
- lsls r1, 3
- add r1, r9
- str r0, [r1]
- ldr r1, [r6]
- ldr r1, [r1, 0x4]
- str r1, [sp, 0x18]
- ldr r1, [r5]
- ldr r1, [r1, 0x4]
- mov r8, r1
- ldr r6, [r0, 0x4]
- ldr r3, _080A3294
- add r3, r9
- str r3, [sp, 0x10]
- ldr r4, _080A3298
- add r4, r9
- str r4, [sp, 0x14]
- movs r5, 0x89
- lsls r5, 3
- add r5, r9
- mov r10, r5
- ldr r7, [sp, 0x18]
- ldrb r0, [r7]
- strh r0, [r3]
- adds r0, r7, 0
- adds r0, 0x2
- str r0, [sp, 0x18]
- ldrb r0, [r0]
- strh r0, [r3, 0x2]
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r4]
- movs r3, 0x2
- add r8, r3
- mov r4, r8
- ldrh r0, [r4]
- ldr r5, [sp, 0x14]
- strh r0, [r5, 0x2]
- add r8, r3
- mov r7, r8
- ldrh r0, [r7]
- strh r0, [r5, 0x4]
- add r8, r3
- add r3, sp, 0x8
- ldr r0, _080A329C
- add r0, r9
- str r0, [sp, 0x1C]
- adds r1, r0, 0
- movs r2, 0x3
-_080A308A:
- mov r4, r8
- ldrh r0, [r4]
- strh r0, [r1]
- movs r5, 0x2
- add r8, r5
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A308A
- mov r7, r8
- ldrh r0, [r7]
- movs r2, 0
- movs r1, 0
- ldr r4, [sp, 0x14]
- strh r0, [r4, 0xE]
- add r8, r5
- ldrb r0, [r6]
- mov r5, r10
- strb r0, [r5]
- adds r6, 0x1
- ldrb r0, [r6]
- strb r0, [r5, 0x1]
- adds r6, 0x1
- ldrb r0, [r6]
- strb r0, [r5, 0x2]
- adds r6, 0x1
- ldrb r0, [r6]
- strb r0, [r5, 0x3]
- adds r6, 0x1
- ldrb r0, [r6]
- strb r0, [r5, 0x4]
- adds r6, 0x1
- ldrb r0, [r6]
- strb r0, [r5, 0x5]
- adds r6, 0x1
- ldrb r0, [r6]
- strh r0, [r5, 0x6]
- adds r6, 0x2
- ldrb r0, [r6]
- strh r0, [r5, 0x8]
- adds r6, 0x2
- ldrb r0, [r6]
- strh r0, [r5, 0xA]
- adds r6, 0x2
- ldr r7, [sp, 0x18]
- ldr r0, _080A32A0
- add r0, r9
- movs r4, 0
- ldrsh r0, [r0, r4]
- lsls r0, 20
- lsrs r5, r0, 16
- str r1, [sp, 0x4]
- movs r0, 0xFF
- strb r0, [r3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r3, 0x1]
- strb r0, [r3, 0x2]
- strb r2, [r3, 0x3]
- movs r4, 0
- ldr r1, [sp, 0x10]
- movs r2, 0
- ldrsh r0, [r1, r2]
- ldr r3, [sp, 0xC]
- adds r3, 0xC
- str r3, [sp, 0x20]
- cmp r4, r0
- bge _080A3158
- ldr r0, _080A32A4
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r4, r0
- bge _080A3198
-_080A311E:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r1, [sp, 0x4]
- bl sub_8003810
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0xF
- bl sub_809971C
- adds r0, r5, 0
- adds r0, 0xF
- lsls r0, 16
- lsrs r5, r0, 16
- adds r7, 0x3C
- adds r4, 0x1
- ldr r2, [sp, 0x10]
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r4, r0
- bge _080A3158
- ldr r0, _080A32A4
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r4, r0
- blt _080A311E
-_080A3158:
- ldr r0, _080A32A4
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r4, r0
- bge _080A3198
-_080A3164:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r1, [sp, 0x4]
- bl sub_8003810
- adds r7, r4, 0x1
- movs r4, 0xE
-_080A3176:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r1, [sp, 0x8]
- bl sub_8003810
- subs r4, 0x1
- cmp r4, 0
- bge _080A3176
- adds r4, r7, 0
- ldr r0, _080A32A4
- add r0, r9
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r4, r0
- blt _080A3164
-_080A3198:
- movs r0, 0xA6
- lsls r0, 3
- add r0, r9
- movs r4, 0
- ldrsh r0, [r0, r4]
- lsls r0, 5
- ldr r5, _080A32A8
- adds r0, r5
- ldr r4, _080A32A0
- add r4, r9
- ldr r5, _080A3298
- add r5, r9
- mov r1, r8
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_80A37C4
- movs r0, 0xA9
- lsls r0, 3
- add r0, r9
- ldr r0, [r0]
- movs r1, 0xA5
- lsls r1, 3
- add r1, r9
- ldr r7, [sp, 0x14]
- movs r3, 0x4
- ldrsh r2, [r7, r3]
- subs r2, 0x1
- lsls r2, 5
- add r2, r8
- str r5, [sp]
- adds r3, r4, 0
- bl _UncompressCell
- ldr r0, _080A32AC
- add r0, r9
- movs r3, 0x89
- lsls r3, 3
- add r3, r9
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80A3908
- adds r6, r0, 0
- movs r0, 0x8D
- lsls r0, 3
- add r0, r9
- str r6, [r0]
- ldr r0, _080A32B0
- add r0, r9
- ldr r2, [r0]
- cmp r2, 0
- beq _080A321C
- movs r1, 0xA8
- lsls r1, 3
- add r1, r9
- ldr r0, _080A32B4
- add r0, r9
- movs r4, 0
- ldrsh r3, [r0, r4]
- ldr r4, [r1]
- adds r0, r2, 0
- adds r1, r6, 0
- mov r2, r10
- bl _call_via_r4
-_080A321C:
- mov r2, r9
- movs r4, 0
- ldr r5, [sp, 0x10]
- movs r6, 0x2
- ldrsh r0, [r5, r6]
- cmp r0, 0
- beq _080A32E4
- movs r7, 0
- ldrsh r1, [r5, r7]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- ldr r5, [sp, 0x18]
- adds r3, r5, r0
- lsls r1, 2
- adds r6, r3, r1
- ldr r0, _080A32B8
- add r0, r9
- str r3, [r0]
- movs r0, 0x8E
- lsls r0, 3
- add r0, r9
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _080A32BC
- add r0, r9
- strb r1, [r0]
- ldr r7, [sp, 0x10]
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r4, r0
- bge _080A32F8
- ldr r1, _080A32A4
- add r1, r9
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r4, r0
- bge _080A32F8
- movs r5, 0
- mov r8, r1
-_080A326C:
- movs r7, 0x2
- ldrsh r0, [r3, r7]
- cmp r0, 0
- ble _080A32C0
- str r6, [r2, 0x4]
- movs r0, 0x2
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r6, r0
- b _080A32C2
- .align 2, 0
-_080A3284: .4byte 0x00000444
-_080A3288: .4byte gUnknown_81188F0
-_080A328C: .4byte gUnknown_9890000
-_080A3290: .4byte 0x00000434
-_080A3294: .4byte 0x00000464
-_080A3298: .4byte 0x00000454
-_080A329C: .4byte 0x0000045a
-_080A32A0: .4byte 0x0000052c
-_080A32A4: .4byte 0x0000052e
-_080A32A8: .4byte 0x06008000
-_080A32AC: .4byte 0x0000054c
-_080A32B0: .4byte 0x00000544
-_080A32B4: .4byte 0x0000053a
-_080A32B8: .4byte 0x0000046c
-_080A32BC: .4byte 0x00000471
-_080A32C0:
- str r5, [r2, 0x4]
-_080A32C2:
- strh r5, [r2]
- strh r5, [r2, 0x2]
- str r5, [r2, 0x8]
- adds r4, 0x1
- adds r2, 0x10
- adds r3, 0x4
- ldr r1, [sp, 0x10]
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r4, r0
- bge _080A32F8
- mov r1, r8
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r4, r0
- blt _080A326C
- b _080A32F8
-_080A32E4:
- ldr r0, _080A3384
- add r0, r9
- str r4, [r0]
- movs r0, 0x8E
- lsls r0, 3
- add r0, r9
- strb r4, [r0]
- ldr r0, _080A3388
- add r0, r9
- strb r4, [r0]
-_080A32F8:
- cmp r4, 0xD
- bgt _080A330E
- movs r0, 0
-_080A32FE:
- strh r0, [r2]
- strh r0, [r2, 0x2]
- str r0, [r2, 0x8]
- str r0, [r2, 0x4]
- adds r4, 0x1
- adds r2, 0x10
- cmp r4, 0xD
- ble _080A32FE
-_080A330E:
- movs r0, 0xA6
- lsls r0, 3
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldr r2, [sp, 0x14]
- movs r3, 0x4
- ldrsh r1, [r2, r3]
- adds r0, r1
- lsls r0, 5
- ldr r4, _080A338C
- adds r5, r0, r4
- movs r7, 0
- movs r6, 0
- mov r8, r6
- movs r4, 0xF8
- lsls r4, 2
- add r4, r9
- ldr r0, [sp, 0x1C]
- str r0, [sp, 0x28]
- ldr r3, [sp, 0x20]
-_080A3338:
- ldr r0, [r3]
- cmp r0, 0
- beq _080A3394
- ldr r1, _080A3390
- str r3, [sp, 0x24]
- bl OpenFileAndGetFileDataPtr
- str r0, [r4, 0x8]
- movs r1, 0x1
- strb r1, [r4]
- strb r1, [r4, 0x1]
- ldr r2, [r0, 0x4]
- str r2, [r4, 0xC]
- adds r1, r2, 0x4
- movs r0, 0x2
- ldrsh r6, [r2, r0]
- lsls r6, 2
- adds r0, r1, r6
- str r1, [r4, 0x14]
- str r1, [r4, 0x10]
- str r0, [r4, 0x1C]
- str r0, [r4, 0x18]
- mov r1, r8
- strh r1, [r4, 0x2]
- ldr r0, [r2, 0x4]
- strh r0, [r4, 0x4]
- str r5, [r4, 0x20]
- ldr r2, [sp, 0x28]
- movs r6, 0
- ldrsh r0, [r2, r6]
- lsls r0, 5
- str r0, [r4, 0x24]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r0, 5
- adds r5, r0
- ldr r3, [sp, 0x24]
- b _080A33AC
- .align 2, 0
-_080A3384: .4byte 0x0000046c
-_080A3388: .4byte 0x00000471
-_080A338C: .4byte 0x06008000
-_080A3390: .4byte gUnknown_9890000
-_080A3394:
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x2]
- str r0, [r4, 0x8]
- str r0, [r4, 0xC]
- str r0, [r4, 0x14]
- str r0, [r4, 0x10]
- str r0, [r4, 0x1C]
- str r0, [r4, 0x18]
- str r0, [r4, 0x20]
- str r0, [r4, 0x24]
-_080A33AC:
- adds r4, 0x28
- ldr r2, [sp, 0x28]
- adds r2, 0x2
- str r2, [sp, 0x28]
- adds r3, 0x4
- adds r7, 0x1
- cmp r7, 0x1
- ble _080A3338
- cmp r7, 0x3
- bgt _080A340E
-_080A33C0:
- lsls r0, r7, 2
- ldr r3, [sp, 0x20]
- adds r0, r3, r0
- ldr r0, [r0]
- adds r4, r7, 0x1
- cmp r0, 0
- beq _080A3408
- ldr r1, _080A3438
- bl OpenFileAndGetFileDataPtr
- adds r3, r0, 0
- ldr r0, [r3, 0x4]
- adds r1, r0, 0x4
- movs r6, 0x2
- ldrsh r0, [r0, r6]
- lsls r0, 2
- adds r1, r0
- lsls r0, r7, 1
- ldr r7, [sp, 0x1C]
- adds r0, r7, r0
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 4
- cmp r0, 0
- ble _080A3402
- adds r2, r0, 0
-_080A33F4:
- ldrh r0, [r1]
- strh r0, [r5]
- adds r1, 0x2
- adds r5, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080A33F4
-_080A3402:
- adds r0, r3, 0
- bl CloseFile
-_080A3408:
- adds r7, r4, 0
- cmp r7, 0x3
- ble _080A33C0
-_080A340E:
- mov r0, r9
- movs r1, 0
- bl sub_80A3BB0
- movs r0, 0x91
- lsls r0, 3
- add r0, r9
- bl sub_80A3EB0
- ldr r1, _080A343C
- add r1, r9
- movs r0, 0x1
- strb r0, [r1]
-_080A3428:
- 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
-_080A3438: .4byte gUnknown_9890000
-_080A343C: .4byte 0x0000052a
- thumb_func_end sub_80A2FBC
-
- thumb_func_start sub_80A3440
-sub_80A3440:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- mov r9, r0
- str r2, [sp, 0x34]
- str r3, [sp, 0x38]
- lsls r1, 16
- asrs r5, r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _080A3464
- ldrb r0, [r2]
- cmp r0, 0x63
- bne _080A346C
-_080A3464:
- mov r0, r9
- bl sub_80A2E64
- b _080A376C
-_080A346C:
- mov r0, r9
- adds r1, r5, 0
- bl sub_80A2FBC
- mov r0, r9
- bl sub_80A2DD4
- ldr r0, _080A377C
- add r0, r9
- strh r5, [r0]
- lsls r4, r5, 3
- subs r4, r5
- lsls r4, 2
- ldr r0, _080A3780
- adds r4, r0
- ldr r0, [r4]
- ldr r5, _080A3784
- adds r1, r5, 0
- bl OpenFileAndGetFileDataPtr
- movs r1, 0x86
- lsls r1, 3
- add r1, r9
- mov r8, r1
- str r0, [r1]
- ldr r0, [r4, 0x4]
- adds r1, r5, 0
- bl OpenFileAndGetFileDataPtr
- ldr r6, _080A3788
- add r6, r9
- str r0, [r6]
- ldr r0, [r4, 0x8]
- adds r1, r5, 0
- bl OpenFileAndGetFileDataPtr
- movs r1, 0x87
- lsls r1, 3
- add r1, r9
- str r0, [r1]
- mov r2, r8
- ldr r1, [r2]
- ldr r2, [r1, 0x4]
- ldr r1, [r6]
- ldr r3, [r1, 0x4]
- ldr r7, [r0, 0x4]
- ldr r1, _080A378C
- add r1, r9
- ldr r4, _080A3790
- add r4, r9
- str r4, [sp, 0x3C]
- movs r0, 0x89
- lsls r0, 3
- add r0, r9
- mov r10, r0
- ldrb r0, [r2]
- strh r0, [r1]
- ldrb r0, [r2, 0x2]
- strh r0, [r1, 0x2]
- ldrh r0, [r3]
- strh r0, [r4]
- adds r3, 0x2
- ldrh r0, [r3]
- strh r0, [r4, 0x2]
- adds r3, 0x2
- ldrh r0, [r3]
- strh r0, [r4, 0x4]
- adds r3, 0x2
- add r5, sp, 0x2C
- ldr r1, _080A3794
- add r1, r9
- str r1, [sp, 0x48]
- movs r2, 0x3
-_080A34FE:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A34FE
- ldrh r0, [r3]
- movs r2, 0
- mov r8, r2
- ldr r4, [sp, 0x3C]
- strh r0, [r4, 0xE]
- ldrb r0, [r7]
- mov r1, r10
- strb r0, [r1]
- adds r7, 0x1
- ldrb r0, [r7]
- strb r0, [r1, 0x1]
- adds r7, 0x1
- ldrb r0, [r7]
- strb r0, [r1, 0x2]
- adds r7, 0x1
- ldrb r0, [r7]
- strb r0, [r1, 0x3]
- adds r7, 0x1
- ldrb r0, [r7]
- strb r0, [r1, 0x4]
- adds r7, 0x1
- ldrb r0, [r7]
- strb r0, [r1, 0x5]
- adds r7, 0x1
- ldrb r0, [r7]
- strh r0, [r1, 0x6]
- adds r7, 0x2
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- adds r7, 0x2
- ldrb r0, [r7]
- strh r0, [r1, 0xA]
- adds r7, 0x2
- ldr r4, _080A3798
- add r4, r9
- ldr r0, [r4]
- str r0, [sp, 0x2C]
- str r2, [r5, 0x4]
- ldr r2, _080A379C
- add r2, r9
- movs r3, 0x89
- lsls r3, 3
- add r3, r9
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_80A3908
- adds r7, r0, 0
- movs r0, 0x8D
- lsls r0, 3
- add r0, r9
- str r7, [r0]
- ldr r5, _080A37A0
- add r5, r9
- movs r6, 0x88
- lsls r6, 3
- add r6, r9
- ldr r2, _080A37A4
- movs r0, 0xA9
- lsls r0, 3
- add r0, r9
- ldr r3, [r0]
- ldr r0, _080A37A8
- add r0, r9
- ldr r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x34]
- str r0, [sp, 0x4]
- ldr r1, [sp, 0x38]
- str r1, [sp, 0x8]
- movs r0, 0x40
- str r0, [sp, 0xC]
- mov r1, r10
- ldrb r0, [r1, 0x5]
- str r0, [sp, 0x10]
- ldr r0, [r4]
- str r0, [sp, 0x14]
- mov r0, r8
- str r0, [sp, 0x18]
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80ADD9C
- ldr r0, [r5]
- movs r1, 0
- bl GetFileDataPtr
- ldr r0, [r6]
- movs r1, 0
- bl GetFileDataPtr
- movs r2, 0xA8
- lsls r2, 3
- add r2, r9
- ldr r0, [r4]
- ldr r1, _080A37AC
- add r1, r9
- movs r4, 0
- ldrsh r3, [r1, r4]
- ldr r4, [r2]
- adds r1, r7, 0
- mov r2, r10
- bl _call_via_r4
- movs r0, 0x80
- lsls r0, 2
- ldr r1, [sp, 0x3C]
- strh r0, [r1, 0x4]
- ldr r1, [sp, 0x48]
- movs r2, 0
- adds r0, r1, 0x6
-_080A35EA:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080A35EA
- movs r2, 0
- movs r0, 0xFA
- ldr r4, [sp, 0x3C]
- strh r0, [r4, 0xE]
- ldr r1, _080A378C
- add r1, r9
- movs r0, 0xC
- strh r0, [r1]
- ldr r0, _080A37B0
- add r0, r9
- strh r2, [r0]
- ldr r0, _080A37A0
- add r0, r9
- ldr r0, [r0]
- cmp r0, 0
- beq _080A36E6
- ldr r4, [r0, 0x4]
- movs r7, 0
- str r7, [sp, 0x1C]
- add r1, sp, 0x20
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0
- strb r0, [r1, 0x3]
- movs r5, 0
- ldr r0, _080A37B4
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r5, r0
- bge _080A36E6
- mov r2, sp
- adds r2, 0x28
- str r2, [sp, 0x40]
- mov r0, sp
- adds r0, 0x29
- str r0, [sp, 0x44]
- movs r1, 0x2A
- add r1, sp
- mov r10, r1
- movs r2, 0x2B
- add r2, sp
- mov r8, r2
-_080A3650:
- adds r0, r7, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r7, r1, 16
- ldr r1, [sp, 0x1C]
- bl sub_8003810
- adds r4, 0x4
- adds r6, r5, 0x1
- movs r5, 0xE
-_080A3664:
- ldrb r0, [r4]
- ldr r1, [sp, 0x40]
- strb r0, [r1]
- ldrb r0, [r4, 0x1]
- ldr r2, [sp, 0x44]
- strb r0, [r2]
- ldrb r0, [r4, 0x2]
- mov r1, r10
- strb r0, [r1]
- ldrb r0, [r4, 0x3]
- mov r2, r8
- strb r0, [r2]
- ldr r1, [sp, 0x28]
- str r1, [sp, 0x24]
- adds r0, r7, 0
- adds r2, r0, 0x1
- lsls r2, 16
- lsrs r7, r2, 16
- bl sub_8003810
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _080A3664
- adds r5, r6, 0
- cmp r5, 0xB
- bgt _080A36A6
- ldr r0, _080A37B4
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r5, r0
- blt _080A3650
-_080A36A6:
- ldr r0, _080A37B4
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r5, r0
- bge _080A36E6
-_080A36B2:
- adds r0, r7, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r7, r1, 16
- ldr r1, [sp, 0x1C]
- bl sub_8003810
- adds r6, r5, 0x1
- movs r5, 0xE
-_080A36C4:
- adds r0, r7, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r7, r1, 16
- ldr r1, [sp, 0x20]
- bl sub_8003810
- subs r5, 0x1
- cmp r5, 0
- bge _080A36C4
- adds r5, r6, 0
- ldr r0, _080A37B4
- add r0, r9
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r5, r0
- blt _080A36B2
-_080A36E6:
- mov r4, r9
- movs r0, 0x88
- lsls r0, 3
- add r0, r9
- ldr r1, [r0]
- cmp r1, 0
- beq _080A36FE
- mov r0, r9
- adds r0, 0xE0
- movs r2, 0x20
- bl sub_8004AA4
-_080A36FE:
- ldr r0, _080A37B8
- add r0, r9
- movs r1, 0
- str r1, [r0]
- movs r0, 0x8E
- lsls r0, 3
- add r0, r9
- strb r1, [r0]
- ldr r0, _080A37BC
- add r0, r9
- strb r1, [r0]
- movs r0, 0
- movs r1, 0xD
-_080A3718:
- strh r0, [r4]
- strh r0, [r4, 0x2]
- str r0, [r4, 0x8]
- str r0, [r4, 0x4]
- subs r1, 0x1
- adds r4, 0x10
- cmp r1, 0
- bge _080A3718
- movs r1, 0
- movs r0, 0xF8
- lsls r0, 2
- add r0, r9
- movs r2, 0x1
-_080A3732:
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x2]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- str r1, [r0, 0x14]
- str r1, [r0, 0x10]
- str r1, [r0, 0x1C]
- str r1, [r0, 0x18]
- str r1, [r0, 0x20]
- str r1, [r0, 0x24]
- adds r0, 0x28
- subs r2, 0x1
- cmp r2, 0
- bge _080A3732
- mov r0, r9
- movs r1, 0
- bl sub_80A3BB0
- movs r0, 0x91
- lsls r0, 3
- add r0, r9
- bl sub_80A3EB0
- ldr r1, _080A37C0
- add r1, r9
- movs r0, 0x1
- strb r0, [r1]
-_080A376C:
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A377C: .4byte 0x00000444
-_080A3780: .4byte gUnknown_81188F0
-_080A3784: .4byte gUnknown_9890000
-_080A3788: .4byte 0x00000434
-_080A378C: .4byte 0x00000464
-_080A3790: .4byte 0x00000454
-_080A3794: .4byte 0x0000045a
-_080A3798: .4byte 0x00000544
-_080A379C: .4byte 0x0000052c
-_080A37A0: .4byte 0x0000043c
-_080A37A4: .4byte 0x06008000
-_080A37A8: .4byte 0x0000054c
-_080A37AC: .4byte 0x0000053a
-_080A37B0: .4byte 0x00000466
-_080A37B4: .4byte 0x0000052e
-_080A37B8: .4byte 0x0000046c
-_080A37BC: .4byte 0x00000471
-_080A37C0: .4byte 0x0000052a
- thumb_func_end sub_80A3440
-
- thumb_func_start sub_80A37C4
-sub_80A37C4:
- push {r4-r6,lr}
- adds r6, r2, 0
- adds r4, r1, 0
- adds r2, r0, 0
- movs r0, 0
- movs r1, 0xF
-_080A37D0:
- strh r0, [r2]
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A37D0
- movs r0, 0x1
- movs r1, 0x4
- ldrsh r3, [r3, r1]
- cmp r0, r3
- bge _080A37FE
- adds r5, r3, 0
-_080A37E6:
- adds r3, r0, 0x1
- movs r1, 0xF
-_080A37EA:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A37EA
- adds r0, r3, 0
- cmp r0, r5
- blt _080A37E6
-_080A37FE:
- movs r3, 0x6
- ldrsh r1, [r6, r3]
- cmp r0, r1
- bge _080A3820
- ldr r3, _080A3828
- adds r4, r3, 0
- adds r5, r1, 0
-_080A380C:
- adds r3, r0, 0x1
- movs r1, 0xF
-_080A3810:
- strh r4, [r2]
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A3810
- adds r0, r3, 0
- cmp r0, r5
- blt _080A380C
-_080A3820:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3828: .4byte 0x0000ffff
- thumb_func_end sub_80A37C4
-
- thumb_func_start _UncompressCell
-_UncompressCell:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r1, 0
- mov r8, r3
- ldr r3, [sp, 0x18]
- adds r4, r2, 0
- adds r2, r0, 0
- mov r1, r8
- ldrh r0, [r1]
- lsls r0, 12
- ldrh r1, [r1, 0x4]
- orrs r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, [r3]
- ldr r0, _080A385C
- cmp r1, r0
- bne _080A3860
- movs r0, 0x1
- strh r0, [r5]
- movs r5, 0x4
- b _080A3890
- .align 2, 0
-_080A385C: .4byte 0x00020002
-_080A3860:
- ldr r0, _080A3870
- cmp r1, r0
- bne _080A3874
- movs r0, 0x2
- strh r0, [r5]
- movs r5, 0x9
- b _080A3890
- .align 2, 0
-_080A3870: .4byte 0x00030003
-_080A3874:
- movs r0, 0
- strh r0, [r5]
- ldr r0, _080A3888
- ldr r1, _080A388C
- movs r4, 0
- ldrsh r2, [r3, r4]
- movs r6, 0x2
- ldrsh r3, [r3, r6]
- bl FatalError
- .align 2, 0
-_080A3888: .4byte gUnknown_81172E8
-_080A388C: .4byte gUnknown_81172F4
-_080A3890:
- movs r0, 0
- movs r1, 0x8
-_080A3894:
- strh r0, [r2]
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A3894
- movs r0, 0x1
- movs r7, 0xE
- ldrsh r1, [r3, r7]
- cmp r0, r1
- bge _080A38DC
- mov r12, r1
-_080A38AA:
- movs r1, 0
- adds r3, r0, 0x1
- cmp r1, r5
- bge _080A38C6
- adds r1, r5, 0
-_080A38B4:
- ldrh r0, [r4]
- adds r0, r6, r0
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _080A38B4
- adds r1, r5, 0
-_080A38C6:
- cmp r1, 0x8
- bgt _080A38D6
- movs r0, 0
-_080A38CC:
- strh r0, [r2]
- adds r2, 0x2
- adds r1, 0x1
- cmp r1, 0x8
- ble _080A38CC
-_080A38D6:
- adds r0, r3, 0
- cmp r0, r12
- blt _080A38AA
-_080A38DC:
- mov r1, r8
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- cmp r0, r3
- bge _080A38FE
- movs r4, 0
- adds r5, r3, 0
-_080A38EA:
- adds r3, r0, 0x1
- movs r1, 0x8
-_080A38EE:
- strh r4, [r2]
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A38EE
- adds r0, r3, 0
- cmp r0, r5
- blt _080A38EA
-_080A38FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end _UncompressCell
-
- thumb_func_start sub_80A3908
-sub_80A3908:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r0, [sp]
- str r2, [sp, 0x4]
- mov r9, r3
- adds r6, r1, 0
- movs r2, 0
- ldr r1, [sp, 0x4]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r2, r0
- blt _080A392A
- b _080A3B6C
-_080A392A:
- lsls r0, r2, 2
- ldr r4, [sp]
- adds r0, r4
- ldr r0, [r0]
- mov r12, r0
- movs r1, 0
- adds r2, 0x1
- str r2, [sp, 0x8]
- mov r5, r9
- ldrb r5, [r5, 0x5]
- cmp r1, r5
- blt _080A3944
- b _080A3B2A
-_080A3944:
- ldr r0, _080A39A4
- mov r10, r0
-_080A3948:
- movs r2, 0
- mov r8, r2
- cmp r1, 0
- bne _080A3A18
- movs r3, 0x1
- str r3, [sp, 0xC]
- mov r4, r9
- ldrb r4, [r4, 0x4]
- cmp r1, r4
- blt _080A395E
- b _080A3B04
-_080A395E:
- ldrb r1, [r6]
- adds r6, 0x1
- cmp r1, 0xBF
- ble _080A39A8
- adds r2, r1, 0
- subs r2, 0xBF
- cmp r1, 0xBF
- ble _080A39A0
- ldr r5, _080A39A4
- adds r4, r5, 0
- adds r3, r2, 0
-_080A3974:
- ldrb r1, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r6, 0x2]
- lsls r0, 16
- orrs r1, r0
- adds r6, 0x3
- adds r0, r1, 0
- ands r0, r4
- mov r5, r12
- strh r0, [r5]
- movs r0, 0x2
- add r12, r0
- asrs r1, 12
- ands r1, r4
- mov r5, r12
- strh r1, [r5]
- add r12, r0
- subs r3, 0x1
- cmp r3, 0
- bne _080A3974
-_080A39A0:
- lsls r0, r2, 1
- b _080A3A0C
- .align 2, 0
-_080A39A4: .4byte 0x00000fff
-_080A39A8:
- cmp r1, 0x7F
- ble _080A39EA
- ldrb r2, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r6, 0x2]
- lsls r0, 16
- orrs r2, r0
- adds r6, 0x3
- adds r4, r1, 0
- subs r4, 0x7F
- cmp r1, 0x7F
- ble _080A39E6
- adds r0, r2, 0
- mov r1, r10
- ands r0, r1
- asrs r1, r2, 12
- mov r2, r10
- ands r1, r2
- adds r3, r4, 0
-_080A39D2:
- mov r5, r12
- strh r0, [r5]
- movs r2, 0x2
- add r12, r2
- mov r5, r12
- strh r1, [r5]
- add r12, r2
- subs r3, 0x1
- cmp r3, 0
- bne _080A39D2
-_080A39E6:
- lsls r0, r4, 1
- b _080A3A0C
-_080A39EA:
- movs r3, 0
- adds r0, r1, 0x1
- cmp r3, r1
- bgt _080A3A0A
- movs r1, 0
- adds r3, r0, 0
-_080A39F6:
- mov r2, r12
- strh r1, [r2]
- movs r4, 0x2
- add r12, r4
- mov r5, r12
- strh r1, [r5]
- add r12, r4
- subs r3, 0x1
- cmp r3, 0
- bne _080A39F6
-_080A3A0A:
- lsls r0, 1
-_080A3A0C:
- add r8, r0
- mov r0, r9
- ldrb r0, [r0, 0x4]
- cmp r8, r0
- blt _080A395E
- b _080A3B04
-_080A3A18:
- mov r4, r12
- subs r4, 0x80
- adds r1, 0x1
- str r1, [sp, 0xC]
- mov r1, r9
- ldrb r1, [r1, 0x4]
- cmp r8, r1
- bge _080A3B04
-_080A3A28:
- ldrb r1, [r6]
- adds r6, 0x1
- cmp r1, 0xBF
- ble _080A3A80
- adds r5, r1, 0
- subs r5, 0xBF
- cmp r1, 0xBF
- ble _080A3A78
- ldr r2, _080A3A7C
- adds r7, r2, 0
- adds r3, r5, 0
-_080A3A3E:
- ldrb r2, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r6, 0x2]
- lsls r0, 16
- orrs r2, r0
- adds r6, 0x3
- adds r0, r2, 0
- ands r0, r7
- ldrh r1, [r4]
- eors r0, r1
- mov r1, r12
- strh r0, [r1]
- adds r4, 0x2
- movs r0, 0x2
- add r12, r0
- asrs r2, 12
- ands r2, r7
- ldrh r0, [r4]
- eors r2, r0
- mov r1, r12
- strh r2, [r1]
- adds r4, 0x2
- movs r2, 0x2
- add r12, r2
- subs r3, 0x1
- cmp r3, 0
- bne _080A3A3E
-_080A3A78:
- lsls r0, r5, 1
- b _080A3AFA
- .align 2, 0
-_080A3A7C: .4byte 0x00000fff
-_080A3A80:
- cmp r1, 0x7F
- ble _080A3AD2
- ldrb r2, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r6, 0x2]
- lsls r0, 16
- orrs r2, r0
- adds r6, 0x3
- adds r7, r1, 0
- subs r7, 0x7F
- cmp r1, 0x7F
- ble _080A3ACE
- adds r5, r2, 0
- mov r3, r10
- ands r5, r3
- asrs r2, 12
- ands r2, r3
- adds r3, r7, 0
-_080A3AA8:
- ldrh r1, [r4]
- adds r0, r5, 0
- eors r0, r1
- mov r1, r12
- strh r0, [r1]
- adds r4, 0x2
- movs r0, 0x2
- add r12, r0
- ldrh r1, [r4]
- adds r0, r2, 0
- eors r0, r1
- mov r1, r12
- strh r0, [r1]
- adds r4, 0x2
- movs r0, 0x2
- add r12, r0
- subs r3, 0x1
- cmp r3, 0
- bne _080A3AA8
-_080A3ACE:
- lsls r0, r7, 1
- b _080A3AFA
-_080A3AD2:
- movs r3, 0
- adds r2, r1, 0x1
- cmp r3, r1
- bgt _080A3AF8
- adds r3, r2, 0
-_080A3ADC:
- ldrh r0, [r4]
- mov r1, r12
- strh r0, [r1]
- adds r4, 0x2
- movs r5, 0x2
- add r12, r5
- ldrh r0, [r4]
- mov r1, r12
- strh r0, [r1]
- adds r4, 0x2
- add r12, r5
- subs r3, 0x1
- cmp r3, 0
- bne _080A3ADC
-_080A3AF8:
- lsls r0, r2, 1
-_080A3AFA:
- add r8, r0
- mov r2, r9
- ldrb r2, [r2, 0x4]
- cmp r8, r2
- blt _080A3A28
-_080A3B04:
- mov r3, r8
- cmp r3, 0x3F
- bgt _080A3B1E
- movs r0, 0
-_080A3B0C:
- mov r4, r12
- strh r0, [r4]
- movs r5, 0x2
- add r12, r5
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x3F
- ble _080A3B0C
-_080A3B1E:
- ldr r1, [sp, 0xC]
- mov r3, r9
- ldrb r3, [r3, 0x5]
- cmp r1, r3
- bge _080A3B2A
- b _080A3948
-_080A3B2A:
- ldr r4, [sp, 0x4]
- movs r5, 0x10
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bge _080A3B5E
- movs r2, 0
-_080A3B36:
- adds r1, 0x1
- str r1, [sp, 0xC]
- movs r0, 0x3F
- mov r8, r0
-_080A3B3E:
- mov r1, r12
- strh r2, [r1]
- movs r3, 0x2
- add r12, r3
- movs r4, 0x1
- negs r4, r4
- add r8, r4
- mov r5, r8
- cmp r5, 0
- bge _080A3B3E
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x4]
- movs r4, 0x10
- ldrsh r0, [r3, r4]
- cmp r1, r0
- blt _080A3B36
-_080A3B5E:
- ldr r2, [sp, 0x8]
- ldr r5, [sp, 0x4]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r2, r0
- bge _080A3B6C
- b _080A392A
-_080A3B6C:
- adds r0, r6, 0
- 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_80A3908
-
- thumb_func_start sub_80A3B80
-sub_80A3B80:
- push {r4,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _080A3BA8
- adds r0, r3, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080A3BA2
- adds r4, 0x4
- adds r0, r3, r4
- strb r1, [r0]
- ldr r1, _080A3BAC
- adds r0, r3, r1
- strb r2, [r0]
-_080A3BA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3BA8: .4byte 0x0000046c
-_080A3BAC: .4byte 0x00000471
- thumb_func_end sub_80A3B80
-
- thumb_func_start sub_80A3BB0
-sub_80A3BB0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r6, r1, 0
- movs r0, 0x91
- lsls r0, 3
- adds r0, r5
- mov r8, r0
- cmp r1, 0
- blt _080A3BD4
- cmp r1, 0x1
- ble _080A3BD4
- cmp r1, 0x4
- ble _080A3C00
-_080A3BD4:
- ldr r1, _080A3BFC
- adds r0, r5, r1
- movs r1, 0x1
- str r1, [r0]
- movs r2, 0xA7
- lsls r2, 3
- adds r0, r5, r2
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r0, 0
- cmp r6, 0x1
- bne _080A3BEE
- movs r0, 0x1
-_080A3BEE:
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl sub_80A3D40
- b _080A3C48
- .align 2, 0
-_080A3BFC: .4byte 0x00000474
-_080A3C00:
- ldr r2, _080A3C88
- adds r0, r5, r2
- movs r7, 0x2
- str r7, [r0]
- movs r0, 0xA7
- lsls r0, 3
- adds r4, r5, r0
- movs r2, 0
- ldrsh r0, [r4, r2]
- subs r3, r0, 0x1
- movs r0, 0
- cmp r1, 0x4
- bne _080A3C1C
- movs r0, 0x1
-_080A3C1C:
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl sub_80A3D40
- movs r1, 0x9B
- lsls r1, 3
- adds r0, r5, r1
- movs r1, 0
- ldrsh r2, [r4, r1]
- subs r2, 0x1
- adds r3, r7, 0
- eors r3, r6
- negs r1, r3
- orrs r1, r3
- lsrs r1, 31
- str r1, [sp]
- adds r1, r5, 0
- movs r3, 0x1
- bl sub_80A3D40
-_080A3C48:
- movs r6, 0
- ldr r2, _080A3C88
- adds r0, r5, r2
- ldr r0, [r0]
- cmp r6, r0
- bge _080A3CF0
- movs r0, 0x8F
- lsls r0, 3
- adds r7, r5, r0
- mov r4, r8
-_080A3C5C:
- adds r0, r5, 0
- adds r1, r6, 0
- ldr r2, _080A3C8C
- bl sub_80A456C
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080A3C72
- cmp r0, 0x2
- beq _080A3CB4
-_080A3C72:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _080A3C94
- cmp r0, 0x1
- ble _080A3C82
- cmp r0, 0x2
- beq _080A3C9C
-_080A3C82:
- ldr r0, _080A3C90
- b _080A3CD6
- .align 2, 0
-_080A3C88: .4byte 0x00000474
-_080A3C8C: .4byte gUnknown_8117314
-_080A3C90: .4byte sub_80A3EBC
-_080A3C94:
- ldr r0, _080A3C98
- b _080A3CD6
- .align 2, 0
-_080A3C98: .4byte sub_80A3EF4
-_080A3C9C:
- ldrb r0, [r4, 0x6]
- ldr r1, _080A3CAC
- cmp r0, 0
- beq _080A3CA6
- ldr r1, _080A3CB0
-_080A3CA6:
- str r1, [r4, 0x18]
- b _080A3CD8
- .align 2, 0
-_080A3CAC: .4byte sub_80A4088
-_080A3CB0: .4byte sub_80A41C4
-_080A3CB4:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080A3CCC
- cmp r0, 0x1
- ble _080A3CC4
- cmp r0, 0x2
- beq _080A3CD4
-_080A3CC4:
- ldr r0, _080A3CC8
- b _080A3CD6
- .align 2, 0
-_080A3CC8: .4byte sub_80A3ED4
-_080A3CCC:
- ldr r0, _080A3CD0
- b _080A3CD6
- .align 2, 0
-_080A3CD0: .4byte sub_80A3F94
-_080A3CD4:
- ldr r0, _080A3D34
-_080A3CD6:
- str r0, [r4, 0x18]
-_080A3CD8:
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_80A3E14
- adds r7, 0x8
- adds r4, 0x50
- adds r6, 0x1
- ldr r2, _080A3D38
- adds r0, r5, r2
- ldr r0, [r0]
- cmp r6, r0
- blt _080A3C5C
-_080A3CF0:
- ldr r1, _080A3D38
- adds r0, r5, r1
- ldr r6, [r0]
- cmp r6, 0x1
- bgt _080A3D26
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 4
- mov r2, r8
- adds r4, r0, r2
-_080A3D04:
- adds r0, r5, 0
- adds r1, r6, 0
- ldr r2, _080A3D3C
- bl sub_80A456C
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0
- bl sub_80A3D40
- adds r4, 0x50
- adds r6, 0x1
- cmp r6, 0x1
- ble _080A3D04
-_080A3D26:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3D34: .4byte sub_80A4358
-_080A3D38: .4byte 0x00000474
-_080A3D3C: .4byte gUnknown_8117314
- thumb_func_end sub_80A3BB0
-
- thumb_func_start sub_80A3D40
-sub_80A3D40:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- adds r5, r1, 0
- mov r8, r3
- ldr r1, [sp, 0x1C]
- movs r3, 0xA5
- lsls r3, 3
- adds r0, r5, r3
- ldrh r0, [r0]
- strh r0, [r4]
- strh r2, [r4, 0x2]
- mov r7, r8
- strh r7, [r4, 0x4]
- strb r1, [r4, 0x6]
- ldr r1, _080A3E10
- adds r0, r5, r1
- ldrb r0, [r0]
- str r0, [r4, 0x8]
- subs r3, 0xDB
- adds r0, r5, r3
- ldrb r0, [r0]
- str r0, [r4, 0xC]
- movs r7, 0x89
- lsls r7, 3
- adds r0, r5, r7
- ldrb r0, [r0]
- lsls r0, 3
- str r0, [r4, 0x10]
- subs r1, 0x3
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 3
- str r0, [r4, 0x14]
- adds r3, 0xFB
- adds r0, r5, r3
- ldr r0, [r0]
- str r0, [r4, 0x1C]
- movs r3, 0
- cmp r3, r8
- bge _080A3DE0
- adds r7, 0xF0
- adds r6, r5, r7
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r2, r0
- bge _080A3DE0
- lsls r0, r2, 2
- adds r7, 0x14
- adds r0, r7
- adds r1, r0, r5
- movs r0, 0x20
- adds r0, r4
- mov r12, r0
- movs r7, 0x28
- adds r7, r4
- mov r9, r7
-_080A3DB6:
- ldr r0, [r1]
- mov r7, r12
- adds r7, 0x4
- mov r12, r7
- subs r7, 0x4
- stm r7!, {r0}
- ldr r0, [r1, 0x8]
- mov r7, r9
- adds r7, 0x4
- mov r9, r7
- subs r7, 0x4
- stm r7!, {r0}
- adds r3, 0x1
- adds r1, 0x4
- adds r2, 0x1
- cmp r3, r8
- bge _080A3DE0
- movs r7, 0
- ldrsh r0, [r6, r7]
- cmp r2, r0
- blt _080A3DB6
-_080A3DE0:
- cmp r3, 0x1
- bgt _080A3DF8
- movs r1, 0
- lsls r0, r3, 2
- adds r0, 0x20
- adds r0, r4
-_080A3DEC:
- str r1, [r0]
- str r1, [r0, 0x8]
- adds r0, 0x4
- adds r3, 0x1
- cmp r3, 0x1
- ble _080A3DEC
-_080A3DF8:
- movs r0, 0x8F
- lsls r0, 3
- adds r1, r5, r0
- adds r0, r4, 0
- bl sub_80A3E14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3E10: .4byte 0x0000044c
- thumb_func_end sub_80A3D40
-
- thumb_func_start sub_80A3E14
-sub_80A3E14:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r0, r1, 0
- ldr r1, [r0]
- mov r8, r1
- str r1, [r4, 0x30]
- cmp r1, 0
- bge _080A3E2A
- adds r1, 0x7
-_080A3E2A:
- asrs r6, r1, 3
- str r6, [r4, 0x38]
- ldr r7, [r0, 0x4]
- str r7, [r4, 0x34]
- adds r0, r7, 0
- cmp r7, 0
- bge _080A3E3A
- adds r0, r7, 0x7
-_080A3E3A:
- asrs r5, r0, 3
- str r5, [r4, 0x3C]
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0x1
- beq _080A3E60
- cmp r2, 0x1
- bgt _080A3E50
- cmp r2, 0
- beq _080A3E56
- b _080A3EA4
-_080A3E50:
- cmp r2, 0x2
- beq _080A3E7E
- b _080A3EA4
-_080A3E56:
- str r2, [r4, 0x40]
- str r2, [r4, 0x44]
- str r2, [r4, 0x48]
- str r2, [r4, 0x4C]
- b _080A3EA4
-_080A3E60:
- lsrs r1, 31
- adds r1, r6, r1
- asrs r1, 1
- str r1, [r4, 0x40]
- lsrs r0, 31
- adds r0, r5, r0
- asrs r0, 1
- str r0, [r4, 0x44]
- lsls r1, 4
- mov r2, r8
- subs r1, r2, r1
- str r1, [r4, 0x48]
- lsls r0, 4
- subs r0, r7, r0
- b _080A3EA2
-_080A3E7E:
- adds r0, r6, 0
- movs r1, 0x3
- bl __divsi3
- str r0, [r4, 0x40]
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- str r0, [r4, 0x44]
- lsls r0, r6, 3
- mov r3, r8
- subs r0, r3, r0
- str r0, [r4, 0x48]
- adds r0, r7, 0
- movs r1, 0x18
- bl __modsi3
-_080A3EA2:
- str r0, [r4, 0x4C]
-_080A3EA4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3E14
-
- thumb_func_start sub_80A3EB0
-sub_80A3EB0:
- push {lr}
- ldr r1, [r0, 0x18]
- bl _call_via_r1
- pop {r0}
- bx r0
- thumb_func_end sub_80A3EB0
-
- thumb_func_start sub_80A3EBC
-sub_80A3EBC:
- push {lr}
- ldr r0, [r0, 0x28]
- movs r2, 0
- movs r1, 0x80
- lsls r1, 3
-_080A3EC6:
- strh r2, [r0]
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _080A3EC6
- pop {r0}
- bx r0
- thumb_func_end sub_80A3EBC
-
- thumb_func_start sub_80A3ED4
-sub_80A3ED4:
- push {lr}
- ldr r1, [r0, 0x28]
- ldr r0, [r0, 0x2C]
- movs r3, 0
- movs r2, 0x80
- lsls r2, 3
-_080A3EE0:
- strh r3, [r1]
- adds r1, 0x2
- strh r3, [r0]
- adds r0, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080A3EE0
- pop {r0}
- bx r0
- thumb_func_end sub_80A3ED4
-
- thumb_func_start sub_80A3EF4
-sub_80A3EF4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r1, [r0, 0x44]
- lsls r1, 6
- ldr r2, [r0, 0x40]
- adds r1, r2
- lsls r1, 1
- ldr r2, [r0, 0x20]
- adds r2, r1
- movs r1, 0
- mov r12, r1
- ldr r3, [r0, 0x28]
- str r3, [sp, 0xC]
- ldr r0, [r0, 0x1C]
- mov r10, r0
- mov r0, sp
- str r0, [sp, 0x8]
-_080A3F1E:
- adds r5, r2, 0
- movs r2, 0x80
- adds r2, r5
- mov r9, r2
- adds r1, 0x1
- mov r8, r1
- ldr r1, [sp, 0x8]
- mov r3, r12
- lsls r0, r3, 1
- ldr r2, [sp, 0xC]
- adds r0, r2
- movs r2, 0x1
-_080A3F36:
- stm r1!, {r0}
- adds r0, 0x40
- movs r3, 0x20
- add r12, r3
- subs r2, 0x1
- cmp r2, 0
- bge _080A3F36
- movs r4, 0
- mov r7, sp
-_080A3F48:
- ldrh r1, [r5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r10
- adds r3, r1, r0
- adds r5, 0x2
- adds r6, r4, 0x1
- adds r4, r7, 0
- movs r2, 0x1
-_080A3F5C:
- ldr r0, [r4]
- ldrh r1, [r3]
- strh r1, [r0]
- adds r3, 0x2
- adds r0, 0x2
- ldrh r1, [r3]
- strh r1, [r0]
- adds r3, 0x2
- adds r0, 0x2
- stm r4!, {r0}
- subs r2, 0x1
- cmp r2, 0
- bge _080A3F5C
- adds r4, r6, 0
- cmp r4, 0xF
- ble _080A3F48
- mov r2, r9
- mov r1, r8
- cmp r1, 0xA
- ble _080A3F1E
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3EF4
-
- thumb_func_start sub_80A3F94
-sub_80A3F94:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r1, [r0, 0x44]
- lsls r1, 6
- ldr r2, [r0, 0x40]
- adds r1, r2
- lsls r1, 1
- ldr r2, [r0, 0x20]
- adds r3, r2, r1
- ldr r2, [r0, 0x24]
- adds r2, r1
- movs r1, 0
- ldr r4, [r0, 0x28]
- str r4, [sp, 0x2C]
- ldr r5, [r0, 0x2C]
- str r5, [sp, 0x18]
- ldr r0, [r0, 0x1C]
- str r0, [sp, 0x1C]
- mov r0, sp
- str r0, [sp, 0x10]
- mov r4, sp
- adds r4, 0x8
- str r4, [sp, 0x14]
- movs r5, 0
- str r5, [sp, 0x30]
-_080A3FCE:
- mov r8, r3
- mov r12, r2
- mov r0, r8
- adds r0, 0x80
- str r0, [sp, 0x20]
- mov r4, r12
- adds r4, 0x80
- str r4, [sp, 0x24]
- adds r1, 0x1
- str r1, [sp, 0x28]
- ldr r3, [sp, 0x14]
- ldr r2, [sp, 0x10]
- ldr r5, [sp, 0x30]
- ldr r0, [sp, 0x18]
- adds r1, r5, r0
- ldr r4, [sp, 0x2C]
- adds r0, r5, r4
- movs r5, 0x1
-_080A3FF2:
- stm r2!, {r0}
- stm r3!, {r1}
- adds r1, 0x40
- adds r0, 0x40
- ldr r4, [sp, 0x30]
- adds r4, 0x40
- str r4, [sp, 0x30]
- subs r5, 0x1
- cmp r5, 0
- bge _080A3FF2
- movs r2, 0
- ldr r5, [sp, 0x1C]
- mov r9, r5
-_080A400C:
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r9
- adds r4, r1, r0
- movs r5, 0x2
- add r8, r5
- mov r0, r12
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r9
- adds r3, r1, r0
- add r12, r5
- movs r5, 0
- adds r2, 0x1
- mov r10, r2
- ldr r7, [sp, 0x14]
- ldr r6, [sp, 0x10]
-_080A4038:
- ldr r1, [r6]
- ldr r2, [r7]
- ldrh r0, [r4]
- strh r0, [r1]
- adds r4, 0x2
- adds r1, 0x2
- ldrh r0, [r4]
- strh r0, [r1]
- adds r4, 0x2
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- stm r6!, {r1}
- stm r7!, {r2}
- adds r5, 0x1
- cmp r5, 0x1
- ble _080A4038
- mov r2, r10
- cmp r2, 0xF
- ble _080A400C
- ldr r3, [sp, 0x20]
- ldr r2, [sp, 0x24]
- ldr r1, [sp, 0x28]
- cmp r1, 0xA
- ble _080A3FCE
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3F94
-
- thumb_func_start sub_80A4088
-sub_80A4088:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r0, [r4, 0x38]
- movs r1, 0x3
- bl __modsi3
- adds r7, r0, 0
- ldr r0, [r4, 0x44]
- lsls r0, 6
- ldr r1, [r4, 0x40]
- adds r0, r1
- lsls r0, 1
- ldr r1, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- mov r8, r0
- ldr r2, [r4, 0x28]
- str r2, [sp, 0xC]
- ldr r4, [r4, 0x1C]
- mov r12, r4
-_080A40BA:
- adds r5, r1, 0
- movs r1, 0x80
- adds r1, r5
- mov r9, r1
- adds r0, 0x1
- mov r10, r0
- mov r1, sp
- mov r2, r8
- lsls r0, r2, 1
- ldr r2, [sp, 0xC]
- adds r0, r2
- movs r3, 0x2
-_080A40D2:
- stm r1!, {r0}
- adds r0, 0x40
- movs r2, 0x20
- add r8, r2
- subs r3, 0x1
- cmp r3, 0
- bge _080A40D2
- cmp r7, 0
- beq _080A412E
- ldrh r1, [r5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r12
- adds r2, r1, r0
- adds r5, 0x2
- cmp r7, 0x1
- bne _080A4116
- adds r2, 0x2
- mov r4, sp
- movs r3, 0x2
-_080A40FC:
- ldr r0, [r4]
- ldrh r1, [r2]
- strh r1, [r0]
- adds r0, 0x2
- ldrh r1, [r2, 0x2]
- strh r1, [r0]
- adds r0, 0x2
- stm r4!, {r0}
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A40FC
- b _080A412E
-_080A4116:
- adds r2, 0x4
- mov r4, sp
- movs r3, 0x2
-_080A411C:
- ldr r1, [r4]
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- stm r4!, {r1}
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A411C
-_080A412E:
- movs r3, 0
-_080A4130:
- ldrh r1, [r5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r12
- adds r2, r1, r0
- adds r5, 0x2
- adds r6, r3, 0x1
- mov r4, sp
- movs r3, 0x2
-_080A4144:
- ldr r1, [r4]
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- stm r4!, {r1}
- subs r3, 0x1
- cmp r3, 0
- bge _080A4144
- adds r3, r6, 0
- cmp r3, 0x9
- ble _080A4130
- cmp r7, 0x1
- beq _080A41AA
- ldrh r1, [r5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r12
- adds r2, r1, r0
- cmp r7, 0
- bne _080A4198
- mov r4, sp
- movs r3, 0x2
-_080A4184:
- ldm r4!, {r0}
- ldrh r1, [r2]
- strh r1, [r0]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x2]
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A4184
- b _080A41AA
-_080A4198:
- mov r4, sp
- movs r3, 0x2
-_080A419C:
- ldm r4!, {r1}
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A419C
-_080A41AA:
- mov r1, r9
- mov r0, r10
- cmp r0, 0x7
- ble _080A40BA
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4088
-
- thumb_func_start sub_80A41C4
-sub_80A41C4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r8, r0
- ldr r0, [r0, 0x38]
- movs r1, 0x3
- bl __modsi3
- str r0, [sp, 0xC]
- mov r0, r8
- ldr r2, [r0, 0x44]
- lsls r0, r2, 6
- mov r1, r8
- ldr r3, [r1, 0x40]
- adds r0, r3
- lsls r0, 1
- ldr r1, [r1, 0x20]
- adds r4, r1, r0
- movs r0, 0
- str r0, [sp, 0x10]
- mov r1, r8
- ldr r0, [r1, 0xC]
- subs r0, r2
- mov r10, r0
- ldr r0, [r1, 0x8]
- subs r0, r3
- str r0, [sp, 0x14]
- movs r2, 0
-_080A4202:
- ldr r5, [sp, 0x14]
- mov r3, r10
- cmp r3, 0
- ble _080A4212
- movs r0, 0x1
- negs r0, r0
- add r10, r0
- b _080A4222
-_080A4212:
- mov r1, r8
- ldr r1, [r1, 0xC]
- mov r10, r1
- mov r3, r8
- ldr r0, [r3, 0x40]
- lsls r0, 1
- ldr r1, [r3, 0x20]
- adds r4, r1, r0
-_080A4222:
- adds r6, r4, 0
- mov r0, r8
- ldr r1, [r0, 0x28]
- ldrh r7, [r4]
- ldr r3, [r0, 0x1C]
- mov r9, r3
- adds r0, r4, 0x2
- mov r12, r0
- adds r4, 0x80
- str r4, [sp, 0x18]
- adds r2, 0x1
- str r2, [sp, 0x1C]
- mov r2, sp
- ldr r3, [sp, 0x10]
- lsls r0, r3, 1
- adds r0, r1
- movs r3, 0x2
-_080A4244:
- stm r2!, {r0}
- adds r0, 0x40
- ldr r4, [sp, 0x10]
- adds r4, 0x20
- str r4, [sp, 0x10]
- subs r3, 0x1
- cmp r3, 0
- bge _080A4244
- ldr r0, [sp, 0xC]
- cmp r0, 0
- beq _080A42B2
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 1
- mov r1, r9
- adds r2, r1, r0
- mov r6, r12
- ldr r3, [sp, 0xC]
- cmp r3, 0x1
- bne _080A428C
- adds r2, 0x2
- mov r4, sp
- movs r3, 0x2
-_080A4272:
- ldr r0, [r4]
- ldrh r1, [r2]
- strh r1, [r0]
- adds r0, 0x2
- ldrh r1, [r2, 0x2]
- strh r1, [r0]
- adds r0, 0x2
- stm r4!, {r0}
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A4272
- b _080A42A4
-_080A428C:
- adds r2, 0x4
- mov r4, sp
- movs r3, 0x2
-_080A4292:
- ldr r1, [r4]
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- stm r4!, {r1}
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A4292
-_080A42A4:
- subs r5, 0x1
- cmp r5, 0
- bgt _080A42B2
- mov r4, r8
- ldr r5, [r4, 0x8]
- lsls r0, r5, 1
- subs r6, r0
-_080A42B2:
- movs r3, 0
-_080A42B4:
- ldrh r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r9
- adds r2, r1, r0
- adds r6, 0x2
- subs r5, 0x1
- adds r7, r3, 0x1
- mov r4, sp
- movs r3, 0x2
-_080A42CA:
- ldr r1, [r4]
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- stm r4!, {r1}
- subs r3, 0x1
- cmp r3, 0
- bge _080A42CA
- cmp r5, 0
- bgt _080A42F8
- mov r3, r8
- ldr r5, [r3, 0x8]
- lsls r0, r5, 1
- subs r6, r0
-_080A42F8:
- adds r3, r7, 0
- cmp r3, 0x9
- ble _080A42B4
- ldr r4, [sp, 0xC]
- cmp r4, 0x1
- beq _080A433E
- ldrh r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r1, r9
- adds r2, r1, r0
- cmp r4, 0
- bne _080A432C
- mov r4, sp
- movs r3, 0x2
-_080A4318:
- ldm r4!, {r0}
- ldrh r1, [r2]
- strh r1, [r0]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x2]
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A4318
- b _080A433E
-_080A432C:
- mov r4, sp
- movs r3, 0x2
-_080A4330:
- ldm r4!, {r1}
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x6
- subs r3, 0x1
- cmp r3, 0
- bge _080A4330
-_080A433E:
- ldr r4, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- cmp r2, 0x7
- bgt _080A4348
- b _080A4202
-_080A4348:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A41C4
-
- thumb_func_start sub_80A4358
-sub_80A4358:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- adds r4, r0, 0
- ldr r0, [r4, 0x38]
- movs r1, 0x3
- bl __modsi3
- str r0, [sp, 0x18]
- ldr r0, [r4, 0x44]
- lsls r0, 6
- ldr r1, [r4, 0x40]
- adds r0, r1
- lsls r0, 1
- ldr r1, [r4, 0x20]
- adds r2, r1, r0
- ldr r1, [r4, 0x24]
- adds r1, r0
- movs r0, 0
- ldr r3, [r4, 0x28]
- str r3, [sp, 0x24]
- ldr r5, [r4, 0x2C]
- str r5, [sp, 0x28]
- ldr r4, [r4, 0x1C]
- str r4, [sp, 0x20]
- mov r3, sp
- adds r3, 0xC
- str r3, [sp, 0x1C]
- movs r4, 0
- str r4, [sp, 0x38]
-_080A439A:
- mov r12, r2
- mov r8, r1
- mov r5, r12
- adds r5, 0x80
- str r5, [sp, 0x30]
- adds r1, 0x80
- str r1, [sp, 0x34]
- adds r0, 0x1
- str r0, [sp, 0x2C]
- add r3, sp, 0xC
- mov r2, sp
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x28]
- adds r1, r4, r5
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- movs r5, 0x2
-_080A43BC:
- stm r2!, {r0}
- stm r3!, {r1}
- adds r1, 0x40
- adds r0, 0x40
- ldr r4, [sp, 0x38]
- adds r4, 0x40
- str r4, [sp, 0x38]
- subs r5, 0x1
- cmp r5, 0
- bge _080A43BC
- ldr r5, [sp, 0x18]
- cmp r5, 0
- beq _080A445C
- mov r0, r12
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r1, [sp, 0x20]
- adds r4, r1, r0
- movs r3, 0x2
- add r12, r3
- mov r5, r8
- ldrh r1, [r5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r1, [sp, 0x20]
- adds r3, r1, r0
- movs r5, 0x2
- add r8, r5
- ldr r0, [sp, 0x18]
- cmp r0, 0x1
- bne _080A4434
- adds r4, 0x2
- adds r3, 0x2
- ldr r7, [sp, 0x1C]
- mov r6, sp
-_080A4408:
- ldr r1, [r6]
- ldr r2, [r7]
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r3, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- stm r6!, {r1}
- stm r7!, {r2}
- adds r4, 0x6
- adds r3, 0x6
- subs r5, 0x1
- cmp r5, 0
- bge _080A4408
- b _080A445C
-_080A4434:
- adds r4, 0x4
- adds r3, 0x4
- ldr r6, [sp, 0x1C]
- mov r2, sp
- movs r5, 0x2
-_080A443E:
- ldr r1, [r2]
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- stm r2!, {r1}
- ldr r1, [r6]
- ldrh r0, [r3]
- strh r0, [r1]
- adds r1, 0x2
- stm r6!, {r1}
- adds r4, 0x6
- adds r3, 0x6
- subs r5, 0x1
- cmp r5, 0
- bge _080A443E
-_080A445C:
- movs r2, 0
- ldr r1, [sp, 0x20]
- mov r9, r1
-_080A4462:
- mov r3, r12
- ldrh r1, [r3]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- mov r5, r9
- adds r4, r5, r0
- movs r0, 0x2
- add r12, r0
- mov r3, r8
- ldrh r1, [r3]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- adds r3, r5, r0
- movs r5, 0x2
- add r8, r5
- movs r5, 0
- adds r2, 0x1
- mov r10, r2
- mov r7, sp
- add r6, sp, 0xC
-_080A448E:
- ldr r1, [r7]
- ldr r2, [r6]
- ldrh r0, [r4]
- strh r0, [r1]
- adds r4, 0x2
- adds r1, 0x2
- ldrh r0, [r4]
- strh r0, [r1]
- adds r4, 0x2
- adds r1, 0x2
- ldrh r0, [r4]
- strh r0, [r1]
- adds r4, 0x2
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- stm r7!, {r1}
- stm r6!, {r2}
- adds r5, 0x1
- cmp r5, 0x2
- ble _080A448E
- mov r2, r10
- cmp r2, 0x9
- ble _080A4462
- ldr r0, [sp, 0x18]
- cmp r0, 0x1
- beq _080A453A
- mov r3, r12
- ldrh r1, [r3]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r5, [sp, 0x20]
- adds r4, r5, r0
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- adds r3, r5, r0
- ldr r1, [sp, 0x18]
- cmp r1, 0
- bne _080A451E
- ldr r7, [sp, 0x1C]
- mov r6, sp
- movs r5, 0x2
-_080A44FE:
- ldm r6!, {r1}
- ldm r7!, {r2}
- ldrh r0, [r4]
- strh r0, [r1]
- ldrh r0, [r4, 0x2]
- strh r0, [r1, 0x2]
- ldrh r0, [r3]
- strh r0, [r2]
- ldrh r0, [r3, 0x2]
- strh r0, [r2, 0x2]
- adds r4, 0x6
- adds r3, 0x6
- subs r5, 0x1
- cmp r5, 0
- bge _080A44FE
- b _080A453A
-_080A451E:
- ldr r6, [sp, 0x1C]
- mov r2, sp
- movs r5, 0x2
-_080A4524:
- ldm r2!, {r1}
- ldrh r0, [r4]
- strh r0, [r1]
- ldm r6!, {r1}
- ldrh r0, [r3]
- strh r0, [r1]
- adds r4, 0x6
- adds r3, 0x6
- subs r5, 0x1
- cmp r5, 0
- bge _080A4524
-_080A453A:
- ldr r2, [sp, 0x30]
- ldr r1, [sp, 0x34]
- ldr r0, [sp, 0x2C]
- cmp r0, 0x7
- bgt _080A4546
- b _080A439A
-_080A4546:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4358
-
- thumb_func_start sub_80A4558
-sub_80A4558:
- lsls r1, 3
- movs r3, 0x8F
- lsls r3, 3
- adds r0, r3
- adds r0, r1
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- bx lr
- thumb_func_end sub_80A4558
-
- thumb_func_start sub_80A456C
-sub_80A456C:
- lsls r1, 3
- movs r3, 0x8F
- lsls r3, 3
- adds r0, r3
- adds r0, r1
- ldr r1, [r2]
- ldr r2, [r2, 0x4]
- str r1, [r0]
- str r2, [r0, 0x4]
- bx lr
- thumb_func_end sub_80A456C
-
- thumb_func_start sub_80A4580
-sub_80A4580:
- push {r4,lr}
- adds r3, r2, 0
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 4
- movs r1, 0x91
- lsls r1, 3
- adds r2, r1
- adds r2, r0, r2
- ldr r0, [r3]
- cmp r0, 0
- bge _080A45AE
- ldrb r0, [r2, 0x6]
- ldr r4, [r3, 0x4]
- cmp r0, 0
- beq _080A45CA
- ldr r1, [r2, 0x10]
-_080A45A2:
- ldr r0, [r3]
- adds r0, r1
- str r0, [r3]
- cmp r0, 0
- blt _080A45A2
- b _080A45CC
-_080A45AE:
- ldr r1, [r2, 0x10]
- ldr r4, [r3, 0x4]
- cmp r0, r1
- blt _080A45CC
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _080A45C8
-_080A45BC:
- ldr r0, [r3]
- subs r0, r1
- str r0, [r3]
- cmp r0, r1
- bge _080A45BC
- b _080A45CC
-_080A45C8:
- subs r0, r1, 0x1
-_080A45CA:
- str r0, [r3]
-_080A45CC:
- cmp r4, 0
- bge _080A45E4
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _080A45FE
- ldr r1, [r2, 0x14]
-_080A45D8:
- ldr r0, [r3, 0x4]
- adds r0, r1
- str r0, [r3, 0x4]
- cmp r0, 0
- blt _080A45D8
- b _080A4600
-_080A45E4:
- ldr r1, [r2, 0x14]
- cmp r4, r1
- blt _080A4600
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _080A45FC
-_080A45F0:
- ldr r0, [r3, 0x4]
- subs r0, r1
- str r0, [r3, 0x4]
- cmp r0, r1
- bge _080A45F0
- b _080A4600
-_080A45FC:
- subs r0, r1, 0x1
-_080A45FE:
- str r0, [r3, 0x4]
-_080A4600:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4580
-
- thumb_func_start sub_80A4608
-sub_80A4608:
- movs r3, 0x89
- lsls r3, 3
- adds r2, r0, r3
- ldrb r2, [r2]
- str r2, [r1]
- ldr r2, _080A461C
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_080A461C: .4byte 0x00000449
- thumb_func_end sub_80A4608
-
- thumb_func_start sub_80A4620
-sub_80A4620:
- movs r3, 0x89
- lsls r3, 3
- adds r2, r0, r3
- ldrb r2, [r2]
- lsls r2, 3
- str r2, [r1]
- ldr r2, _080A4638
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- str r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_080A4638: .4byte 0x00000449
- thumb_func_end sub_80A4620
-
- thumb_func_start sub_80A463C
-sub_80A463C:
- movs r3, 0
- str r3, [r1]
- str r3, [r1, 0x4]
- movs r3, 0x89
- lsls r3, 3
- adds r1, r0, r3
- ldrb r1, [r1]
- lsls r1, 11
- str r1, [r2]
- ldr r1, _080A465C
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 11
- str r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_080A465C: .4byte 0x00000449
- thumb_func_end sub_80A463C
-
- thumb_func_start sub_80A4660
-sub_80A4660:
- push {r4-r7,lr}
- adds r6, r3, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r1, _080A4678
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- bne _080A467C
- movs r0, 0
- b _080A46B6
- .align 2, 0
-_080A4678: .4byte 0x00000544
-_080A467C:
- ldr r0, [r2, 0x4]
- lsls r0, 8
- ldr r1, [r2]
- adds r0, r1
- ldr r1, _080A46BC
- adds r0, r1
- adds r4, r0
- ldr r3, [r6, 0x4]
- cmp r3, 0
- ble _080A46B4
- movs r7, 0x80
- lsls r7, 1
-_080A4694:
- ldr r1, [r6]
- adds r2, r4, 0
- cmp r1, 0
- ble _080A46AC
-_080A469C:
- ldrb r0, [r2]
- ands r0, r5
- adds r2, 0x1
- cmp r0, 0
- bne _080A46B6
- subs r1, 0x1
- cmp r1, 0
- bgt _080A469C
-_080A46AC:
- adds r4, r7
- subs r3, 0x1
- cmp r3, 0
- bgt _080A4694
-_080A46B4:
- movs r0, 0
-_080A46B6:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A46BC: .4byte 0x00000405
- thumb_func_end sub_80A4660
-
- thumb_func_start sub_80A46C0
-sub_80A46C0:
- push {r4-r7,lr}
- adds r6, r3, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r1, _080A46D8
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- bne _080A46DC
-_080A46D2:
- movs r0, 0
- b _080A4716
- .align 2, 0
-_080A46D8: .4byte 0x00000544
-_080A46DC:
- ldr r0, [r2, 0x4]
- lsls r0, 8
- ldr r1, [r2]
- adds r0, r1
- ldr r1, _080A471C
- adds r0, r1
- adds r4, r0
- ldr r3, [r6, 0x4]
- cmp r3, 0
- ble _080A4714
- movs r7, 0x80
- lsls r7, 1
-_080A46F4:
- ldr r1, [r6]
- adds r2, r4, 0
- cmp r1, 0
- ble _080A470C
-_080A46FC:
- ldrb r0, [r2]
- ands r0, r5
- adds r2, 0x1
- cmp r0, r5
- bne _080A46D2
- subs r1, 0x1
- cmp r1, 0
- bgt _080A46FC
-_080A470C:
- adds r4, r7
- subs r3, 0x1
- cmp r3, 0
- bgt _080A46F4
-_080A4714:
- movs r0, 0x1
-_080A4716:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A471C: .4byte 0x00000405
- thumb_func_end sub_80A46C0
-
- thumb_func_start sub_80A4720
-sub_80A4720:
- lsls r1, 2
- ldr r3, _080A473C
- adds r0, r3
- adds r0, r1
- ldr r1, [r2, 0x4]
- lsls r1, 7
- ldr r3, [r0]
- adds r3, r1
- ldr r0, [r2]
- lsls r0, 1
- adds r3, r0
- ldrh r0, [r3]
- bx lr
- .align 2, 0
-_080A473C: .4byte 0x0000054c
- thumb_func_end sub_80A4720
-
- thumb_func_start sub_80A4740
-sub_80A4740:
- push {r4,lr}
- lsls r1, 2
- ldr r4, _080A4760
- adds r0, r4
- adds r0, r1
- ldr r1, [r2, 0x4]
- lsls r1, 7
- ldr r4, [r0]
- adds r4, r1
- ldr r0, [r2]
- lsls r0, 1
- adds r4, r0
- strh r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4760: .4byte 0x0000054c
- thumb_func_end sub_80A4740
-
- thumb_func_start sub_80A4764
-sub_80A4764:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r0
- ldr r0, _080A47E8
- add r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A4784
- b _080A49CE
-_080A4784:
- ldr r0, _080A47EC
- add r0, r9
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r0, 0
- beq _080A4864
- mov r4, r9
- ldr r0, _080A47F0
- add r0, r9
- ldr r5, [r0]
- ldr r0, _080A47F4
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 20
- lsrs r6, r0, 16
- movs r7, 0
- ldr r0, _080A47F8
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r7, r0
- bge _080A484C
-_080A47B2:
- ldr r1, [r4, 0x4]
- cmp r1, 0
- beq _080A4832
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bgt _080A4832
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bgt _080A4808
- ldr r0, _080A47FC
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A4800
- ldrh r0, [r5]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x2]
- strh r0, [r4]
- str r1, [r4, 0x8]
- b _080A480C
- .align 2, 0
-_080A47E8: .4byte 0x00000444
-_080A47EC: .4byte 0x00000466
-_080A47F0: .4byte 0x0000046c
-_080A47F4: .4byte 0x0000052c
-_080A47F8: .4byte 0x00000464
-_080A47FC: .4byte 0x00000471
-_080A4800:
- strh r0, [r4]
- strh r0, [r4, 0x2]
- str r0, [r4, 0x8]
- b _080A480C
-_080A4808:
- ldrh r0, [r5]
- strh r0, [r4, 0x2]
-_080A480C:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _080A4832
- movs r0, 0
- str r0, [sp]
- adds r0, r6, 0
- movs r1, 0
- bl sub_8003810
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [r4, 0x8]
- movs r2, 0xF
- bl sub_809971C
- ldr r0, [r4, 0x8]
- adds r0, 0x3C
- str r0, [r4, 0x8]
-_080A4832:
- adds r7, 0x1
- adds r4, 0x10
- adds r5, 0x4
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080A485C
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r7, r0
- blt _080A47B2
-_080A484C:
- movs r0, 0x8E
- lsls r0, 3
- add r0, r9
- ldrb r1, [r0]
- ldr r0, _080A4860
- add r0, r9
- strb r1, [r0]
- b _080A48E6
- .align 2, 0
-_080A485C: .4byte 0x00000464
-_080A4860: .4byte 0x00000471
-_080A4864:
- movs r0, 0x88
- lsls r0, 3
- add r0, r9
- ldr r0, [r0]
- cmp r0, 0
- beq _080A48E6
- mov r4, r9
- adds r4, 0xE0
- movs r6, 0xA0
- movs r5, 0x1F
-_080A4878:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D14
- lsls r0, 24
- cmp r0, 0
- beq _080A48DC
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D40
- lsls r0, 24
- cmp r0, 0
- bne _080A48DC
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _080A48DC
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bcc _080A48B0
- ldr r0, [r4, 0x8]
- str r0, [r4, 0xC]
-_080A48B0:
- ldr r1, [r4, 0xC]
- ldm r1!, {r0}
- str r0, [r4, 0x14]
- str r1, [r4, 0xC]
- ldrb r1, [r4, 0x14]
- add r0, sp, 0x4
- strb r1, [r0]
- ldrb r1, [r4, 0x15]
- adds r0, 0x1
- strb r1, [r0]
- ldrb r1, [r4, 0x16]
- adds r0, 0x1
- strb r1, [r0]
- ldrb r1, [r4, 0x17]
- adds r0, 0x1
- strb r1, [r0]
- ldr r1, [sp, 0x4]
- str r1, [sp]
- lsls r0, r6, 16
- lsrs r0, 16
- bl sub_8003810
-_080A48DC:
- subs r5, 0x1
- adds r4, 0x18
- adds r6, 0x1
- cmp r5, 0
- bge _080A4878
-_080A48E6:
- movs r5, 0
- movs r4, 0x1
-_080A48EA:
- movs r2, 0xF8
- lsls r2, 2
- adds r0, r5, r2
- mov r6, r9
- adds r2, r6, r0
- ldrb r0, [r2]
- cmp r0, 0
- beq _080A4942
- ldrh r1, [r2, 0x4]
- subs r0, r1, 0x1
- strh r0, [r2, 0x4]
- lsls r1, 16
- cmp r1, 0
- bgt _080A4942
- ldr r0, [r2, 0x14]
- adds r0, 0x4
- str r0, [r2, 0x14]
- ldr r1, [r2, 0x24]
- lsrs r1, 1
- lsls r1, 1
- ldr r0, [r2, 0x1C]
- adds r0, r1
- str r0, [r2, 0x1C]
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r2, 0x2]
- ldr r1, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x2
- ldrsh r1, [r1, r6]
- cmp r0, r1
- blt _080A4938
- ldr r0, [r2, 0x10]
- str r0, [r2, 0x14]
- ldr r0, [r2, 0x18]
- str r0, [r2, 0x1C]
- strh r3, [r2, 0x2]
-_080A4938:
- movs r0, 0x1
- strb r0, [r2, 0x1]
- ldr r0, [r2, 0x14]
- ldr r0, [r0]
- strh r0, [r2, 0x4]
-_080A4942:
- adds r5, 0x28
- subs r4, 0x1
- cmp r4, 0
- bge _080A48EA
- movs r4, 0x91
- lsls r4, 3
- add r4, r9
- movs r7, 0x8F
- lsls r7, 3
- add r7, r9
- movs r0, 0
- mov r8, r0
- b _080A49BC
-_080A495C:
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_80A3E14
- adds r0, r4, 0
- bl sub_80A3EB0
- movs r6, 0
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- ldr r0, _080A4998
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r5, r1, r0
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x1
- add r8, r2
- movs r1, 0x50
- adds r1, r4
- mov r10, r1
- adds r7, 0x8
- cmp r6, r0
- bge _080A49BA
-_080A498E:
- cmp r5, 0
- beq _080A499C
- cmp r5, 0x1
- beq _080A49A6
- b _080A49AE
- .align 2, 0
-_080A4998: .4byte 0x00000536
-_080A499C:
- ldr r0, [r4, 0x48]
- ldr r1, [r4, 0x4C]
- bl sub_800CCA0
- b _080A49AE
-_080A49A6:
- ldr r0, [r4, 0x48]
- ldr r1, [r4, 0x4C]
- bl sub_800CCAC
-_080A49AE:
- adds r6, 0x1
- adds r5, 0x1
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r6, r0
- blt _080A498E
-_080A49BA:
- mov r4, r10
-_080A49BC:
- ldr r0, _080A49E0
- add r0, r9
- ldr r0, [r0]
- cmp r8, r0
- blt _080A495C
- ldr r1, _080A49E4
- add r1, r9
- movs r0, 0x1
- strb r0, [r1]
-_080A49CE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A49E0: .4byte 0x00000474
-_080A49E4: .4byte 0x0000052a
- thumb_func_end sub_80A4764
-
- thumb_func_start sub_80A49E8
-sub_80A49E8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, _080A4A74
- adds r5, r6, r0
- movs r1, 0xFF
- lsls r1, 2
- adds r4, r6, r1
- ldr r0, _080A4A78
- adds r0, r6
- mov r8, r0
- movs r7, 0x1
-_080A4A02:
- ldrb r0, [r5]
- cmp r0, 0
- beq _080A4A1C
- ldr r0, [r4, 0x4]
- ldr r1, [r4]
- ldr r2, [r4, 0x8]
- bl MemoryCopy32
- movs r0, 0
- strb r0, [r5]
- movs r0, 0x1
- mov r1, r8
- strb r0, [r1]
-_080A4A1C:
- adds r5, 0x28
- adds r4, 0x28
- subs r7, 0x1
- cmp r7, 0
- bge _080A4A02
- ldr r1, _080A4A78
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A4A68
- movs r5, 0
- adds r1, 0xC
- adds r0, r6, r1
- movs r1, 0
- ldrsh r4, [r0, r1]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r6, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r5, r0
- bge _080A4A60
- movs r0, 0xA7
- lsls r0, 3
- adds r7, r6, r0
-_080A4A4E:
- adds r0, r4, 0x2
- bl sub_80098F8
- adds r5, 0x1
- adds r4, 0x1
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r5, r0
- blt _080A4A4E
-_080A4A60:
- ldr r0, _080A4A78
- adds r1, r6, r0
- movs r0, 0
- strb r0, [r1]
-_080A4A68:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4A74: .4byte 0x000003e1
-_080A4A78: .4byte 0x0000052a
- thumb_func_end sub_80A49E8
-
- thumb_func_start sub_80A4A7C
-sub_80A4A7C:
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080A4AB8
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- adds r2, r0, 0
- adds r2, 0xE4
- ldr r1, _080A4ABC
- strh r1, [r2]
- ldr r1, _080A4AC0
- movs r3, 0x1
- negs r3, r3
- str r3, [sp]
- movs r2, 0
- bl sub_809D600
- movs r0, 0
- bl sub_80A5E8C
- bl sub_80A4AEC
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4AB8: .4byte gUnknown_3001B6C
-_080A4ABC: .4byte 0x0000ffff
-_080A4AC0: .4byte gUnknown_811736C
- thumb_func_end sub_80A4A7C
-
- thumb_func_start sub_80A4AC4
-sub_80A4AC4:
- push {r4,lr}
- bl sub_80A4AEC
- bl sub_80A5EBC
- ldr r4, _080A4AE8
- ldr r0, [r4]
- bl sub_809D648
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4AE8: .4byte gUnknown_3001B6C
- thumb_func_end sub_80A4AC4
-
- thumb_func_start sub_80A4AEC
-sub_80A4AEC:
- push {r4,lr}
- movs r0, 0
- movs r1, 0x37
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x38
- bl sub_80015C0
- ldr r0, _080A4B2C
- ldr r0, [r0]
- ldr r1, _080A4B30
- bl sub_809D754
- ldr r4, _080A4B34
- ldr r0, [r4]
- cmp r0, 0
- beq _080A4B1E
- bl sub_80A2D00
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080A4B1E:
- movs r0, 0
- bl sub_80A5EDC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B2C: .4byte gUnknown_3001B6C
-_080A4B30: .4byte gUnknown_8117538
-_080A4B34: .4byte gUnknown_3001B70
- thumb_func_end sub_80A4AEC
-
- thumb_func_start sub_80A4B38
-sub_80A4B38:
- push {lr}
- bl nullsub_121
- ldr r0, _080A4B50
- ldr r0, [r0]
- cmp r0, 0
- beq _080A4B4A
- bl sub_80A2D68
-_080A4B4A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B50: .4byte gUnknown_3001B70
- thumb_func_end sub_80A4B38
-
- thumb_func_start sub_80A4B54
-sub_80A4B54:
- push {lr}
- ldr r0, _080A4B6C
- ldr r0, [r0]
- cmp r0, 0
- beq _080A4B62
- bl sub_80A2D88
-_080A4B62:
- bl nullsub_122
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B6C: .4byte gUnknown_3001B70
- thumb_func_end sub_80A4B54
-
- thumb_func_start GroundMap_GetStationScript
-GroundMap_GetStationScript:
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r5, r3, 0
- lsls r4, 16
- asrs r4, 16
- lsls r6, 16
- asrs r6, 16
- lsls r5, 24
- asrs r5, 24
- adds r0, r4, 0
- bl sub_80A77A0
- ldr r1, _080A4BE0
- adds r0, r4, 0
- bl sub_80A77D0
- mov r9, r0
- ldr r1, _080A4BE4
- str r5, [sp]
- movs r0, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl Log
- lsls r1, r6, 3
- mov r2, r9
- ldr r0, [r2, 0x4]
- adds r0, r1
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- ldr r0, [r0, 0x4]
- adds r0, r1
- ldr r0, [r0, 0x24]
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- mov r1, r8
- str r0, [r1]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- strh r6, [r1, 0x6]
- strb r5, [r1, 0x8]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4BE0: .4byte gUnknown_8117560
-_080A4BE4: .4byte gUnknown_811756C
- thumb_func_end GroundMap_GetStationScript
-
- thumb_func_start sub_80A4BE8
-sub_80A4BE8:
- push {lr}
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- movs r3, 0
- bl GroundMap_GetStationScript
- pop {r0}
- bx r0
- thumb_func_end sub_80A4BE8
-
- thumb_func_start GroundMap_ExecuteEvent
-GroundMap_ExecuteEvent:
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- asrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080A4C44
- movs r0, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl Log
- movs r0, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_809D710
- cmp r5, 0
- beq _080A4C2C
- mov r1, sp
- movs r0, 0x5
- strh r0, [r1, 0x4]
-_080A4C2C:
- ldr r0, _080A4C48
- ldr r0, [r0]
- ldr r3, _080A4C4C
- movs r1, 0
- mov r2, sp
- bl GroundScript_ExecutePP
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4C44: .4byte gUnknown_8117594
-_080A4C48: .4byte gUnknown_3001B6C
-_080A4C4C: .4byte gUnknown_81175E0
- thumb_func_end GroundMap_ExecuteEvent
-
- thumb_func_start GroundMap_ExecuteStation
-GroundMap_ExecuteStation:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- lsls r6, 24
- asrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _080A4CB8
- str r6, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl Log
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl GroundMap_GetStationScript
- mov r0, r8
- cmp r0, 0
- beq _080A4C9C
- add r1, sp, 0x8
- movs r0, 0x5
- strh r0, [r1, 0x4]
-_080A4C9C:
- ldr r0, _080A4CBC
- ldr r0, [r0]
- ldr r3, _080A4CC0
- movs r1, 0
- add r2, sp, 0x8
- bl GroundScript_ExecutePP
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4CB8: .4byte gUnknown_81175EC
-_080A4CBC: .4byte gUnknown_3001B6C
-_080A4CC0: .4byte gUnknown_8117644
- thumb_func_end GroundMap_ExecuteStation
-
- thumb_func_start GroundMap_ExecuteEnter
-GroundMap_ExecuteEnter:
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- ldr r1, _080A4D08
- movs r0, 0
- adds r2, r4, 0
- bl Log
- mov r0, sp
- adds r1, r4, 0
- bl sub_80A4BE8
- mov r1, sp
- movs r3, 0
- movs r2, 0
- movs r0, 0x2
- strh r0, [r1, 0x4]
- mov r0, sp
- strh r2, [r0, 0x6]
- strb r3, [r0, 0x8]
- ldr r0, _080A4D0C
- ldr r0, [r0]
- ldr r3, _080A4D10
- movs r1, 0
- mov r2, sp
- bl GroundScript_ExecutePP
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4D08: .4byte gUnknown_8117650
-_080A4D0C: .4byte gUnknown_3001B6C
-_080A4D10: .4byte gUnknown_8117698
- thumb_func_end GroundMap_ExecuteEnter
-
- thumb_func_start sub_80A4D14
-sub_80A4D14:
- push {lr}
- ldr r0, _080A4D28
- ldr r0, [r0]
- bl sub_809D678
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A4D28: .4byte gUnknown_3001B6C
- thumb_func_end sub_80A4D14
-
- thumb_func_start sub_80A4D2C
-sub_80A4D2C:
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _080A4D44
- ldr r0, [r0]
- bl sub_809D968
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A4D44: .4byte gUnknown_3001B6C
- thumb_func_end sub_80A4D2C
-
- thumb_func_start sub_80A4D48
-sub_80A4D48:
- push {lr}
- lsls r0, 16
- asrs r2, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080A4D74
- ldr r1, _080A4D70
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x5
- beq _080A4D6C
- cmp r0, 0x8
- bne _080A4D74
-_080A4D6C:
- movs r0, 0
- b _080A4D76
- .align 2, 0
-_080A4D70: .4byte gUnknown_811BAF4
-_080A4D74:
- movs r0, 0x1
-_080A4D76:
- pop {r1}
- bx r1
- thumb_func_end sub_80A4D48
-
- thumb_func_start sub_80A4D7C
-sub_80A4D7C:
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x9
- beq _080A4D94
- cmp r5, 0x9
- bgt _080A4D90
- cmp r5, 0x2
- beq _080A4DB6
- b _080A4DC4
-_080A4D90:
- cmp r5, 0xC
- bne _080A4DC4
-_080A4D94:
- movs r0, 0
- movs r1, 0x27
- bl sub_8001658
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x28
- bl sub_8001658
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 1
- adds r1, r0
- adds r1, r5, r1
- lsls r1, 16
- asrs r5, r1, 16
- b _080A4DC4
-_080A4DB6:
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080A4DC4
- movs r5, 0x3
-_080A4DC4:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A4D7C
-
- thumb_func_start GroundMap_Select
-GroundMap_Select:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r5, r0, 16
- ldr r1, _080A4E38
- movs r0, 0
- adds r2, r5, 0
- bl Log
- movs r0, 0
- movs r1, 0x37
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x38
- bl sub_80015C0
- movs r0, 0
- bl sub_80A5EDC
- ldr r4, _080A4E3C
- ldr r0, [r4]
- cmp r0, 0
- beq _080A4E08
- bl sub_80A2D00
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080A4E08:
- ldr r0, _080A4E40
- movs r1, 0x6
- bl MemoryAlloc
- adds r2, r0, 0
- str r2, [r4]
- ldr r0, _080A4E44
- ldr r0, [r0]
- adds r0, 0xE4
- strh r5, [r0]
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _080A4E4C
- ldr r1, _080A4E48
- adds r0, r2, 0
- bl sub_80A2B40
- ldr r0, [r4]
- adds r1, r5, 0
- bl sub_80A2FBC
- b _080A50BA
- .align 2, 0
-_080A4E38: .4byte gUnknown_81176A4
-_080A4E3C: .4byte gUnknown_3001B70
-_080A4E40: .4byte 0x0000055c
-_080A4E44: .4byte gUnknown_3001B6C
-_080A4E48: .4byte gUnknown_8117324
-_080A4E4C:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- ldr r1, _080A4E6C
- adds r6, r0, r1
- ldrh r0, [r6]
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bhi _080A4F20
- lsls r0, 2
- ldr r1, _080A4E70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A4E6C: .4byte gUnknown_811BAF4
-_080A4E70: .4byte _080A4E74
- .align 2, 0
-_080A4E74:
- .4byte _080A4F08
- .4byte _080A4F20
- .4byte _080A4F20
- .4byte _080A4F20
- .4byte _080A4F20
- .4byte _080A4F20
- .4byte _080A4EA8
- .4byte _080A4EA8
- .4byte _080A4EA8
- .4byte _080A4EA8
- .4byte _080A4EA8
- .4byte _080A4ECC
- .4byte _080A4ECC
-_080A4EA8:
- ldr r0, _080A4EC0
- ldr r0, [r0]
- ldr r1, _080A4EC4
- bl sub_80A2B40
- ldr r1, _080A4EC8
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _080A4F30
- .align 2, 0
-_080A4EC0: .4byte gUnknown_3001B70
-_080A4EC4: .4byte gUnknown_811733C
-_080A4EC8: .4byte gUnknown_2026E4E
-_080A4ECC:
- ldr r4, _080A4EDC
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- ldr r6, _080A4EE0
- b _080A4EEA
- .align 2, 0
-_080A4EDC: .4byte gUnknown_81173C0
-_080A4EE0: .4byte gUnknown_3001B70
-_080A4EE4:
- adds r4, 0xC
- movs r2, 0
- ldrsh r0, [r4, r2]
-_080A4EEA:
- cmp r0, r1
- beq _080A4EF2
- cmp r0, r5
- bne _080A4EE4
-_080A4EF2:
- ldr r0, [r6]
- bl MemoryFree
- movs r0, 0
- str r0, [r6]
- adds r1, r4, 0x4
- ldr r2, [r4, 0x8]
- adds r0, r5, 0
- bl GroundMap_SelectDungeon
- b _080A50BA
-_080A4F08:
- ldr r0, _080A4F18
- ldr r1, _080A4F1C
- movs r2, 0
- ldrsh r3, [r6, r2]
- adds r2, r5, 0
- bl FatalError
- .align 2, 0
-_080A4F18: .4byte gUnknown_81176D0
-_080A4F1C: .4byte gUnknown_81176DC
-_080A4F20:
- ldr r0, _080A4FA0
- ldr r0, [r0]
- ldr r1, _080A4FA4
- bl sub_80A2B40
- movs r0, 0x1
- bl sub_80A5EDC
-_080A4F30:
- ldr r5, _080A4FA0
- ldr r0, [r5]
- movs r2, 0x4
- ldrsh r1, [r6, r2]
- bl sub_80A2FBC
- ldr r0, _080A4FA8
- ldr r0, [r0]
- mov r12, r0
- adds r0, 0xE8
- movs r1, 0
- str r1, [r0]
- adds r0, 0x4
- str r1, [r0]
- adds r0, 0x4
- str r1, [r0]
- adds r0, 0x4
- str r1, [r0]
- adds r0, 0x4
- str r1, [r0]
- adds r0, 0x4
- str r1, [r0]
- movs r4, 0x80
- lsls r4, 1
- add r4, r12
- movs r3, 0x82
- lsls r3, 1
- add r3, r12
- movs r2, 0x84
- lsls r2, 1
- add r2, r12
- movs r0, 0x86
- lsls r0, 1
- add r0, r12
- str r1, [r0]
- str r1, [r2]
- str r1, [r3]
- str r1, [r4]
- mov r0, r12
- adds r0, 0xE4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xAD
- beq _080A5034
- cmp r0, 0xAD
- bgt _080A4FC0
- cmp r0, 0xA3
- bgt _080A4FAC
- cmp r0, 0xA2
- bge _080A4FEE
- cmp r0, 0x4
- beq _080A5084
- cmp r0, 0xA1
- beq _080A5084
- b _080A50A2
- .align 2, 0
-_080A4FA0: .4byte gUnknown_3001B70
-_080A4FA4: .4byte gUnknown_8117324
-_080A4FA8: .4byte gUnknown_3001B6C
-_080A4FAC:
- cmp r0, 0xAA
- beq _080A500C
- cmp r0, 0xAA
- bgt _080A4FBA
- cmp r0, 0xA8
- beq _080A500C
- b _080A50A2
-_080A4FBA:
- cmp r0, 0xAB
- beq _080A5018
- b _080A50A2
-_080A4FC0:
- cmp r0, 0xBA
- beq _080A506A
- cmp r0, 0xBA
- bgt _080A4FD6
- cmp r0, 0xAF
- beq _080A5072
- cmp r0, 0xAF
- blt _080A5044
- cmp r0, 0xB0
- beq _080A5060
- b _080A50A2
-_080A4FD6:
- cmp r0, 0xDF
- beq _080A4FEE
- cmp r0, 0xDF
- bgt _080A4FE4
- cmp r0, 0xC0
- beq _080A5020
- b _080A50A2
-_080A4FE4:
- cmp r0, 0xE0
- beq _080A508E
- cmp r0, 0xE1
- beq _080A5096
- b _080A50A2
-_080A4FEE:
- ldr r0, _080A5000
- ldr r0, [r0]
- movs r1, 0x4
- bl sub_80A3BB0
- ldr r1, _080A5004
- ldr r2, _080A5008
- b _080A5050
- .align 2, 0
-_080A5000: .4byte gUnknown_3001B70
-_080A5004: .4byte gUnknown_2026E4E
-_080A5008: .4byte 0x00000808
-_080A500C:
- ldr r0, _080A5014
- ldr r0, [r0]
- b _080A5062
- .align 2, 0
-_080A5014: .4byte gUnknown_3001B70
-_080A5018:
- ldr r0, [r5]
- movs r1, 0x1
- bl sub_80A3BB0
-_080A5020:
- ldr r0, _080A5030
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80A3B80
- b _080A50A2
- .align 2, 0
-_080A5030: .4byte gUnknown_3001B70
-_080A5034:
- ldr r1, _080A503C
- ldr r2, _080A5040
- b _080A5050
- .align 2, 0
-_080A503C: .4byte gUnknown_2026E4E
-_080A5040: .4byte 0x00001010
-_080A5044:
- ldr r0, [r5]
- movs r1, 0x4
- bl sub_80A3BB0
- ldr r1, _080A5058
- ldr r2, _080A505C
-_080A5050:
- adds r0, r2, 0
- strh r0, [r1]
- b _080A50A2
- .align 2, 0
-_080A5058: .4byte gUnknown_2026E4E
-_080A505C: .4byte 0x0000080c
-_080A5060:
- ldr r0, [r5]
-_080A5062:
- movs r1, 0x1
- bl sub_80A3BB0
- b _080A50A2
-_080A506A:
- ldr r0, _080A507C
- ldr r2, _080A5080
- adds r1, r2, 0
- strh r1, [r0]
-_080A5072:
- ldr r0, [r5]
- movs r1, 0x4
- bl sub_80A3BB0
- b _080A50A2
- .align 2, 0
-_080A507C: .4byte gUnknown_2026E4E
-_080A5080: .4byte 0x00001010
-_080A5084:
- ldr r0, [r5]
- movs r1, 0x3
- bl sub_80A3BB0
- b _080A50A2
-_080A508E:
- ldr r0, [r5]
- movs r1, 0x3
- bl sub_80A3BB0
-_080A5096:
- ldr r0, _080A50C0
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80A3B80
-_080A50A2:
- movs r0, 0x6
- ldrsh r1, [r6, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A50B4
- adds r0, r1, 0
- bl GroundWeather_Select
-_080A50B4:
- ldr r0, _080A50C4
- bl sub_80A56D8
-_080A50BA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A50C0: .4byte gUnknown_3001B70
-_080A50C4: .4byte gUnknown_81176F8
- thumb_func_end GroundMap_Select
-
- thumb_func_start GroundMap_SelectDungeon
-GroundMap_SelectDungeon:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r1
- mov r10, r2
- lsls r0, 16
- asrs r5, r0, 16
- ldr r1, _080A514C
- movs r0, 0
- adds r2, r5, 0
- bl Log
- movs r0, 0
- movs r1, 0x37
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x38
- bl sub_80015C0
- movs r0, 0
- bl sub_80A5EDC
- ldr r7, _080A5150
- ldr r0, [r7]
- cmp r0, 0
- beq _080A5110
- bl sub_80A2D00
- ldr r0, [r7]
- bl MemoryFree
- movs r0, 0
- str r0, [r7]
-_080A5110:
- ldr r0, _080A5154
- movs r1, 0x6
- bl MemoryAlloc
- adds r2, r0, 0
- str r2, [r7]
- ldr r0, _080A5158
- mov r9, r0
- ldr r0, [r0]
- adds r0, 0xE4
- movs r4, 0
- strh r5, [r0]
- movs r6, 0x1
- negs r6, r6
- cmp r5, r6
- beq _080A5138
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x63
- bne _080A5160
-_080A5138:
- ldr r1, _080A515C
- adds r0, r2, 0
- bl sub_80A2B40
- ldr r0, [r7]
- adds r1, r6, 0
- bl sub_80A2FBC
- b _080A51EC
- .align 2, 0
-_080A514C: .4byte gUnknown_8117700
-_080A5150: .4byte gUnknown_3001B70
-_080A5154: .4byte 0x0000055c
-_080A5158: .4byte gUnknown_3001B6C
-_080A515C: .4byte gUnknown_8117324
-_080A5160:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- ldr r1, _080A5180
- adds r6, r0, r1
- ldrh r0, [r6]
- subs r0, 0xA
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080A518C
- ldr r0, _080A5184
- ldr r1, _080A5188
- adds r2, r5, 0
- bl FatalError
- .align 2, 0
-_080A5180: .4byte gUnknown_811BAF4
-_080A5184: .4byte gUnknown_8117734
-_080A5188: .4byte gUnknown_8117740
-_080A518C:
- ldr r1, _080A51FC
- adds r0, r2, 0
- bl sub_80A2B40
- movs r0, 0x1
- bl sub_80A5EDC
- ldr r0, [r7]
- movs r2, 0x4
- ldrsh r1, [r6, r2]
- mov r2, r8
- mov r3, r10
- bl sub_80A3440
- mov r0, r9
- ldr r0, [r0]
- mov r12, r0
- adds r0, 0xE8
- str r4, [r0]
- adds r0, 0x4
- str r4, [r0]
- adds r0, 0x4
- str r4, [r0]
- adds r0, 0x4
- str r4, [r0]
- adds r0, 0x4
- str r4, [r0]
- adds r0, 0x4
- str r4, [r0]
- movs r3, 0x80
- lsls r3, 1
- add r3, r12
- movs r2, 0x82
- lsls r2, 1
- add r2, r12
- movs r1, 0x84
- lsls r1, 1
- add r1, r12
- movs r0, 0x86
- lsls r0, 1
- add r0, r12
- str r4, [r0]
- str r4, [r1]
- str r4, [r2]
- str r4, [r3]
- ldr r0, _080A5200
- bl sub_80A56D8
-_080A51EC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A51FC: .4byte gUnknown_8117354
-_080A5200: .4byte gUnknown_8117754
- thumb_func_end GroundMap_SelectDungeon
-
- thumb_func_start sub_80A5204
-sub_80A5204:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- str r0, [sp]
- mov r8, r1
- str r2, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _080A5222
- b _080A53EA
-_080A5222:
- mov r5, r8
- ldr r2, [sp]
- mov r12, r2
- movs r0, 0
- ldr r3, [sp, 0x4]
- ldrb r3, [r3, 0x1]
- str r3, [sp, 0x10]
- ldr r1, [sp, 0x4]
- ldrh r2, [r1, 0xA]
- mov r1, sp
- strh r2, [r1, 0xC]
- movs r1, 0xFF
-_080A523A:
- adds r0, 0x1
- mov r10, r0
- movs r3, 0xFF
- mov r9, r3
-_080A5242:
- mov r0, r12
- strb r1, [r0]
- movs r2, 0x1
- add r12, r2
- movs r3, 0x1
- negs r3, r3
- add r9, r3
- mov r0, r9
- cmp r0, 0
- bge _080A5242
- mov r0, r10
- cmp r0, 0x3
- ble _080A523A
- movs r1, 0
- ldr r2, [sp, 0x10]
- cmp r1, r2
- blt _080A5266
- b _080A53BA
-_080A5266:
- ldr r3, [sp, 0x4]
- ldrb r7, [r3]
-_080A526A:
- adds r0, 0x1
- mov r10, r0
- adds r0, r1, 0x1
- str r0, [sp, 0x14]
- movs r0, 0xFF
- movs r2, 0x4
- mov r9, r2
-_080A5278:
- mov r3, r12
- strb r0, [r3]
- movs r2, 0x1
- add r12, r2
- movs r3, 0x1
- negs r3, r3
- add r9, r3
- mov r2, r9
- cmp r2, 0
- bge _080A5278
- movs r3, 0x5
- mov r9, r3
- movs r0, 0
- cmp r1, 0
- bne _080A5308
- cmp r1, r7
- bge _080A5394
-_080A529A:
- ldrb r1, [r5]
- adds r5, 0x1
- cmp r1, 0xBF
- ble _080A52C2
- adds r6, r0, 0
- subs r6, 0xBF
- cmp r1, 0xBF
- ble _080A5300
- adds r2, r1, 0
- subs r2, 0xBF
-_080A52AE:
- ldrb r0, [r5]
- mov r3, r12
- strb r0, [r3]
- adds r5, 0x1
- movs r0, 0x1
- add r12, r0
- subs r2, 0x1
- cmp r2, 0
- bne _080A52AE
- b _080A5300
-_080A52C2:
- cmp r1, 0x7F
- ble _080A52E6
- ldrb r4, [r5]
- adds r5, 0x1
- adds r6, r0, 0
- subs r6, 0x7F
- cmp r1, 0x7F
- ble _080A5300
- adds r2, r1, 0
- subs r2, 0x7F
-_080A52D6:
- mov r3, r12
- strb r4, [r3]
- movs r0, 0x1
- add r12, r0
- subs r2, 0x1
- cmp r2, 0
- bne _080A52D6
- b _080A5300
-_080A52E6:
- movs r2, 0
- adds r6, r0, 0x1
- cmp r2, r1
- bgt _080A5300
- movs r0, 0
- adds r2, r1, 0x1
-_080A52F2:
- mov r3, r12
- strb r0, [r3]
- movs r3, 0x1
- add r12, r3
- subs r2, 0x1
- cmp r2, 0
- bne _080A52F2
-_080A5300:
- adds r0, r6, r1
- cmp r0, r7
- blt _080A529A
- b _080A5394
-_080A5308:
- ldr r4, _080A5340
- add r4, r12
- cmp r0, r7
- bge _080A5394
-_080A5310:
- ldrb r3, [r5]
- adds r5, 0x1
- cmp r3, 0xBF
- ble _080A5344
- adds r6, r0, 0
- subs r6, 0xBF
- cmp r3, 0xBF
- ble _080A538E
- adds r2, r3, 0
- subs r2, 0xBF
-_080A5324:
- ldrb r1, [r5]
- ldrb r0, [r4]
- eors r1, r0
- mov r0, r12
- strb r1, [r0]
- adds r4, 0x1
- adds r5, 0x1
- movs r1, 0x1
- add r12, r1
- subs r2, 0x1
- cmp r2, 0
- bne _080A5324
- b _080A538E
- .align 2, 0
-_080A5340: .4byte 0xffffff00
-_080A5344:
- cmp r3, 0x7F
- ble _080A5372
- ldrb r2, [r5]
- mov r8, r2
- adds r5, 0x1
- adds r6, r0, 0
- subs r6, 0x7F
- cmp r3, 0x7F
- ble _080A538E
- adds r2, r3, 0
- subs r2, 0x7F
-_080A535A:
- ldrb r1, [r4]
- mov r0, r8
- eors r0, r1
- mov r1, r12
- strb r0, [r1]
- adds r4, 0x1
- movs r0, 0x1
- add r12, r0
- subs r2, 0x1
- cmp r2, 0
- bne _080A535A
- b _080A538E
-_080A5372:
- movs r2, 0
- adds r6, r0, 0x1
- cmp r2, r3
- bgt _080A538E
- adds r2, r3, 0x1
-_080A537C:
- ldrb r0, [r4]
- mov r1, r12
- strb r0, [r1]
- adds r4, 0x1
- movs r0, 0x1
- add r12, r0
- subs r2, 0x1
- cmp r2, 0
- bne _080A537C
-_080A538E:
- adds r0, r6, r3
- cmp r0, r7
- blt _080A5310
-_080A5394:
- add r9, r7
- mov r1, r9
- cmp r1, 0xFF
- bgt _080A53AE
- movs r0, 0xFF
-_080A539E:
- mov r2, r12
- strb r0, [r2]
- movs r3, 0x1
- add r12, r3
- add r9, r3
- mov r1, r9
- cmp r1, 0xFF
- ble _080A539E
-_080A53AE:
- ldr r1, [sp, 0x14]
- mov r0, r10
- ldr r2, [sp, 0x10]
- cmp r1, r2
- bge _080A53BA
- b _080A526A
-_080A53BA:
- ldr r3, [sp, 0x8]
- cmp r0, r3
- bge _080A53E6
- movs r1, 0xFF
-_080A53C2:
- adds r0, 0x1
- mov r10, r0
- movs r0, 0xFF
- mov r9, r0
-_080A53CA:
- mov r2, r12
- strb r1, [r2]
- movs r3, 0x1
- add r12, r3
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r2, r9
- cmp r2, 0
- bge _080A53CA
- mov r0, r10
- ldr r3, [sp, 0x8]
- cmp r0, r3
- blt _080A53C2
-_080A53E6:
- mov r8, r5
- b _080A547E
-_080A53EA:
- ldr r1, [sp]
- movs r0, 0
- ldr r2, [sp, 0x4]
- ldrb r2, [r2, 0x1]
- str r2, [sp, 0x10]
- ldr r3, [sp, 0x4]
- ldrh r2, [r3, 0xA]
- mov r3, sp
- strh r2, [r3, 0xC]
- movs r6, 0xFF
-_080A53FE:
- adds r5, r0, 0x1
- movs r4, 0xFF
-_080A5402:
- strb r6, [r1]
- adds r1, 0x1
- subs r4, 0x1
- cmp r4, 0
- bge _080A5402
- adds r0, r5, 0
- cmp r0, 0x3
- ble _080A53FE
- movs r4, 0
- ldr r3, [sp, 0x10]
- cmp r4, r3
- bge _080A5460
- ldr r2, [sp, 0x4]
- ldrb r7, [r2]
- movs r3, 0xFF
-_080A5420:
- adds r5, r0, 0x1
- adds r2, r4, 0x1
- movs r4, 0x4
-_080A5426:
- strb r3, [r1]
- adds r1, 0x1
- subs r4, 0x1
- cmp r4, 0
- bge _080A5426
- movs r4, 0x5
- cmp r7, 0
- beq _080A5444
- movs r6, 0
- adds r0, r7, 0
-_080A543A:
- strb r6, [r1]
- adds r1, 0x1
- subs r0, 0x1
- cmp r0, 0
- bne _080A543A
-_080A5444:
- adds r4, r7
- cmp r4, 0xFF
- bgt _080A5456
- movs r0, 0xFF
-_080A544C:
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0xFF
- ble _080A544C
-_080A5456:
- adds r4, r2, 0
- adds r0, r5, 0
- ldr r2, [sp, 0x10]
- cmp r4, r2
- blt _080A5420
-_080A5460:
- ldr r3, [sp, 0x8]
- cmp r0, r3
- bge _080A547E
- movs r6, 0xFF
-_080A5468:
- adds r5, r0, 0x1
- movs r4, 0xFF
-_080A546C:
- strb r6, [r1]
- adds r1, 0x1
- subs r4, 0x1
- cmp r4, 0
- bge _080A546C
- adds r0, r5, 0
- ldr r2, [sp, 0x8]
- cmp r0, r2
- blt _080A5468
-_080A547E:
- mov r3, sp
- ldrh r3, [r3, 0xC]
- lsls r0, r3, 16
- cmp r0, 0
- bgt _080A548A
- b _080A5590
-_080A548A:
- mov r6, r8
- ldr r0, [sp]
- movs r1, 0x80
- lsls r1, 3
- adds r2, r0, r1
- movs r0, 0
- ldr r3, [sp, 0x10]
- cmp r0, r3
- bge _080A5586
- movs r1, 0xFB
- mov r10, r1
-_080A54A0:
- adds r2, 0x5
- movs r4, 0
- cmp r0, 0
- bne _080A54EC
- ldr r3, [sp, 0x4]
- ldrb r7, [r3]
- movs r1, 0x1
- mov r9, r1
- cmp r0, r7
- bge _080A5574
-_080A54B4:
- ldrb r1, [r6]
- adds r6, 0x1
- cmp r1, 0x7F
- ble _080A54DE
- subs r4, 0x7F
- cmp r1, 0x7F
- ble _080A54D6
- movs r5, 0x80
- adds r3, r1, 0
- subs r3, 0x7F
-_080A54C8:
- ldrb r0, [r2]
- orrs r0, r5
- strb r0, [r2]
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _080A54C8
-_080A54D6:
- adds r4, r1
- ldr r3, [sp, 0x4]
- ldrb r7, [r3]
- b _080A54E6
-_080A54DE:
- adds r0, r1, 0x1
- adds r2, r0
- adds r0, r4, 0x1
- adds r4, r0, r1
-_080A54E6:
- cmp r4, r7
- blt _080A54B4
- b _080A5574
-_080A54EC:
- ldr r1, _080A5538
- adds r1, r2
- mov r12, r1
- ldr r3, [sp, 0x4]
- ldrb r7, [r3]
- adds r0, 0x1
- mov r9, r0
- cmp r4, r7
- bge _080A5574
-_080A54FE:
- ldrb r5, [r6]
- adds r6, 0x1
- cmp r5, 0x7F
- ble _080A553C
- subs r4, 0x7F
- cmp r5, 0x7F
- ble _080A556A
- movs r7, 0x80
- movs r0, 0x80
- mov r8, r0
- adds r3, r5, 0
- subs r3, 0x7F
-_080A5516:
- mov r0, r12
- ldrb r1, [r0]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- add r12, r1
- cmp r0, 0
- bne _080A552C
- ldrb r0, [r2]
- orrs r0, r7
- strb r0, [r2]
-_080A552C:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _080A5516
- b _080A556A
- .align 2, 0
-_080A5538: .4byte 0xffffff00
-_080A553C:
- movs r3, 0
- adds r4, 0x1
- cmp r3, r5
- bgt _080A556A
- movs r7, 0x80
- movs r3, 0x80
- mov r8, r3
- adds r3, r5, 0x1
-_080A554C:
- mov r0, r12
- ldrb r1, [r0]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- add r12, r1
- cmp r0, 0
- beq _080A5562
- ldrb r0, [r2]
- orrs r0, r7
- strb r0, [r2]
-_080A5562:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _080A554C
-_080A556A:
- adds r4, r5
- ldr r3, [sp, 0x4]
- ldrb r7, [r3]
- cmp r4, r7
- blt _080A54FE
-_080A5574:
- mov r1, r10
- subs r0, r1, r7
- adds r2, r0
- mov r0, r9
- ldr r3, [sp, 0x4]
- ldrb r3, [r3, 0x1]
- str r3, [sp, 0x10]
- cmp r0, r3
- blt _080A54A0
-_080A5586:
- mov r8, r6
- ldr r0, [sp, 0x4]
- ldrh r1, [r0, 0xA]
- mov r0, sp
- strh r1, [r0, 0xC]
-_080A5590:
- mov r2, sp
- ldrh r2, [r2, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A568C
- mov r6, r8
- ldr r3, [sp]
- movs r0, 0x80
- lsls r0, 3
- adds r2, r3, r0
- movs r0, 0
- b _080A5684
-_080A55AA:
- adds r2, 0x5
- movs r4, 0
- cmp r0, 0
- bne _080A55F2
- ldr r3, [sp, 0x4]
- ldrb r7, [r3]
- movs r1, 0x1
- mov r10, r1
- cmp r0, r7
- bge _080A567C
-_080A55BE:
- ldrb r1, [r6]
- adds r6, 0x1
- cmp r1, 0x7F
- ble _080A55E4
- subs r4, 0x7F
- cmp r1, 0x7F
- ble _080A55E0
- movs r5, 0x40
- adds r3, r1, 0
- subs r3, 0x7F
-_080A55D2:
- ldrb r0, [r2]
- orrs r0, r5
- strb r0, [r2]
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _080A55D2
-_080A55E0:
- adds r4, r1
- b _080A55EC
-_080A55E4:
- adds r0, r1, 0x1
- adds r2, r0
- adds r0, r4, 0x1
- adds r4, r0, r1
-_080A55EC:
- cmp r4, r7
- blt _080A55BE
- b _080A567C
-_080A55F2:
- ldr r3, _080A5640
- adds r3, r2
- mov r12, r3
- ldr r1, [sp, 0x4]
- ldrb r7, [r1]
- adds r0, 0x1
- mov r10, r0
- cmp r4, r7
- bge _080A567C
-_080A5604:
- ldrb r5, [r6]
- adds r6, 0x1
- cmp r5, 0x7F
- ble _080A5644
- subs r4, 0x7F
- cmp r5, 0x7F
- ble _080A5676
- movs r3, 0x40
- mov r8, r3
- movs r0, 0x40
- mov r9, r0
- adds r3, r5, 0
- subs r3, 0x7F
-_080A561E:
- mov r0, r12
- ldrb r1, [r0]
- mov r0, r9
- ands r0, r1
- movs r1, 0x1
- add r12, r1
- cmp r0, 0
- bne _080A5636
- ldrb r0, [r2]
- mov r1, r8
- orrs r0, r1
- strb r0, [r2]
-_080A5636:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _080A561E
- b _080A5676
- .align 2, 0
-_080A5640: .4byte 0xffffff00
-_080A5644:
- movs r3, 0
- adds r4, 0x1
- cmp r3, r5
- bgt _080A5676
- movs r3, 0x40
- mov r8, r3
- movs r0, 0x40
- mov r9, r0
- adds r3, r5, 0x1
-_080A5656:
- mov r0, r12
- ldrb r1, [r0]
- mov r0, r9
- ands r0, r1
- movs r1, 0x1
- add r12, r1
- cmp r0, 0
- beq _080A566E
- ldrb r0, [r2]
- mov r1, r8
- orrs r0, r1
- strb r0, [r2]
-_080A566E:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _080A5656
-_080A5676:
- adds r4, r5
- cmp r4, r7
- blt _080A5604
-_080A567C:
- movs r3, 0xFB
- subs r0, r3, r7
- adds r2, r0
- mov r0, r10
-_080A5684:
- ldr r1, [sp, 0x10]
- cmp r0, r1
- blt _080A55AA
- mov r8, r6
-_080A568C:
- mov r0, r8
- 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_80A5204
-
- thumb_func_start sub_80A56A0
-sub_80A56A0:
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080A56BC
- ldr r0, [r0]
- adds r1, r3, 0
- bl sub_80A3B80
- pop {r0}
- bx r0
- .align 2, 0
-_080A56BC: .4byte gUnknown_3001B70
- thumb_func_end sub_80A56A0
-
- thumb_func_start sub_80A56C0
-sub_80A56C0:
- push {lr}
- adds r2, r0, 0
- ldr r0, _080A56D4
- ldr r0, [r0]
- movs r1, 0
- bl sub_80A4558
- pop {r0}
- bx r0
- .align 2, 0
-_080A56D4: .4byte gUnknown_3001B70
- thumb_func_end sub_80A56C0
-
- thumb_func_start sub_80A56D8
-sub_80A56D8:
- push {lr}
- adds r2, r0, 0
- ldr r0, _080A56EC
- ldr r0, [r0]
- movs r1, 0
- bl sub_80A456C
- pop {r0}
- bx r0
- .align 2, 0
-_080A56EC: .4byte gUnknown_3001B70
- thumb_func_end sub_80A56D8
-
- thumb_func_start sub_80A56F0
-sub_80A56F0:
- ldr r1, _080A5700
- ldr r2, [r1]
- adds r2, 0xE8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- bx lr
- .align 2, 0
-_080A5700: .4byte gUnknown_3001B6C
- thumb_func_end sub_80A56F0
-
- thumb_func_start sub_80A5704
-sub_80A5704:
- ldr r1, _080A5724
- ldr r3, [r1]
- adds r2, r3, 0
- adds r2, 0xF8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- adds r0, r3, 0
- adds r0, 0xF0
- movs r1, 0
- str r1, [r0]
- adds r0, 0x4
- str r1, [r0]
- bx lr
- .align 2, 0
-_080A5724: .4byte gUnknown_3001B6C
- thumb_func_end sub_80A5704
-
- thumb_func_start sub_80A5728
-sub_80A5728:
- ldr r0, _080A5734
- ldr r0, [r0]
- adds r0, 0xE4
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080A5734: .4byte gUnknown_3001B6C
- thumb_func_end sub_80A5728
-
- thumb_func_start sub_80A5738
-sub_80A5738:
- ldr r0, _080A5750
- ldr r0, [r0]
- adds r0, 0xE4
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A5754
- adds r0, r1
- bx lr
- .align 2, 0
-_080A5750: .4byte gUnknown_3001B6C
-_080A5754: .4byte gUnknown_811BAF4
- thumb_func_end sub_80A5738
-
- thumb_func_start sub_80A5758
-sub_80A5758:
- push {lr}
- adds r1, r0, 0
- ldr r0, _080A5768
- ldr r0, [r0]
- cmp r0, 0
- bne _080A576C
- movs r0, 0
- b _080A5772
- .align 2, 0
-_080A5768: .4byte gUnknown_3001B70
-_080A576C:
- bl sub_80A4608
- movs r0, 0x1
-_080A5772:
- pop {r1}
- bx r1
- thumb_func_end sub_80A5758
-
- thumb_func_start sub_80A5778
-sub_80A5778:
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080A578C
- ldr r0, [r0]
- cmp r0, 0
- bne _080A5790
- movs r0, 0
- b _080A5798
- .align 2, 0
-_080A578C: .4byte gUnknown_3001B70
-_080A5790:
- adds r1, r3, 0
- bl sub_80A463C
- movs r0, 0x1
-_080A5798:
- pop {r1}
- bx r1
- thumb_func_end sub_80A5778
-
- thumb_func_start sub_80A579C
-sub_80A579C:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- ldr r0, _080A5838
- ldr r3, [r0]
- cmp r3, 0
- beq _080A5854
- ldr r0, _080A583C
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xE4
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A5854
- adds r0, r1, 0
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 2
- ldr r0, _080A5840
- adds r4, r0
- adds r0, r3, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80A463C
- ldr r2, [r6]
- mov r12, r2
- movs r0, 0xF0
- lsls r0, 7
- add r0, r12
- str r0, [r6]
- ldr r3, [r6, 0x4]
- movs r7, 0xA0
- lsls r7, 7
- adds r0, r3, r7
- str r0, [r6, 0x4]
- ldr r2, [r5]
- ldr r1, _080A5844
- adds r0, r2, r1
- str r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r7, _080A5848
- adds r0, r1, r7
- str r0, [r5, 0x4]
- movs r7, 0
- ldrsh r0, [r4, r7]
- cmp r0, 0xA
- bne _080A581E
- movs r0, 0x90
- lsls r0, 8
- add r0, r12
- str r0, [r6]
- movs r4, 0xD0
- lsls r4, 7
- adds r0, r3, r4
- str r0, [r6, 0x4]
- ldr r7, _080A584C
- adds r0, r2, r7
- str r0, [r5]
- ldr r2, _080A5850
- adds r0, r1, r2
- str r0, [r5, 0x4]
-_080A581E:
- ldr r1, [r6]
- ldr r0, [r5]
- cmp r1, r0
- ble _080A5828
- str r1, [r5]
-_080A5828:
- ldr r1, [r6, 0x4]
- ldr r0, [r5, 0x4]
- cmp r1, r0
- ble _080A5832
- str r1, [r5, 0x4]
-_080A5832:
- movs r0, 0x1
- b _080A5856
- .align 2, 0
-_080A5838: .4byte gUnknown_3001B70
-_080A583C: .4byte gUnknown_3001B6C
-_080A5840: .4byte gUnknown_811BAF4
-_080A5844: .4byte 0xffff8800
-_080A5848: .4byte 0xffffb000
-_080A584C: .4byte 0xffff7000
-_080A5850: .4byte 0xffff9800
-_080A5854:
- movs r0, 0
-_080A5856:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A579C
-
- thumb_func_start sub_80A585C
-sub_80A585C:
- push {r4-r7,lr}
- adds r7, r1, 0
- ldr r1, _080A5884
- ldr r2, [r1]
- ldr r1, _080A5888
- adds r2, r1
- ldr r1, [r0, 0x4]
- lsls r1, 8
- ldr r0, [r0]
- adds r1, r0
- ldr r0, _080A588C
- adds r1, r0
- ldr r0, [r2]
- adds r5, r0, r1
- ldr r4, [r7, 0x4]
- cmp r0, 0
- bne _080A5890
-_080A587E:
- movs r0, 0x1
- b _080A58C0
- .align 2, 0
-_080A5884: .4byte gUnknown_3001B70
-_080A5888: .4byte 0x00000544
-_080A588C: .4byte 0x00000405
-_080A5890:
- cmp r4, 0
- ble _080A58BE
- movs r1, 0x80
- lsls r1, 1
- mov r12, r1
-_080A589A:
- ldr r2, [r7]
- adds r3, r5, 0
- cmp r2, 0
- ble _080A58B6
- movs r6, 0x80
-_080A58A4:
- ldrb r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- adds r3, 0x1
- cmp r0, 0
- bne _080A587E
- subs r2, 0x1
- cmp r2, 0
- bgt _080A58A4
-_080A58B6:
- add r5, r12
- subs r4, 0x1
- cmp r4, 0
- bgt _080A589A
-_080A58BE:
- movs r0, 0
-_080A58C0:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A585C
-
- thumb_func_start sub_80A58C8
-sub_80A58C8:
- push {r4-r7,lr}
- adds r7, r1, 0
- ldr r1, _080A58F0
- ldr r2, [r1]
- ldr r1, _080A58F4
- adds r2, r1
- ldr r1, [r0, 0x4]
- lsls r1, 8
- ldr r0, [r0]
- adds r1, r0
- ldr r0, _080A58F8
- adds r1, r0
- ldr r0, [r2]
- adds r5, r0, r1
- ldr r4, [r7, 0x4]
- cmp r0, 0
- bne _080A58FC
-_080A58EA:
- movs r0, 0x1
- b _080A592C
- .align 2, 0
-_080A58F0: .4byte gUnknown_3001B70
-_080A58F4: .4byte 0x00000544
-_080A58F8: .4byte 0x00000405
-_080A58FC:
- cmp r4, 0
- ble _080A592A
- movs r1, 0x80
- lsls r1, 1
- mov r12, r1
-_080A5906:
- ldr r2, [r7]
- adds r3, r5, 0
- cmp r2, 0
- ble _080A5922
- movs r6, 0x40
-_080A5910:
- ldrb r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- adds r3, 0x1
- cmp r0, 0
- bne _080A58EA
- subs r2, 0x1
- cmp r2, 0
- bgt _080A5910
-_080A5922:
- add r5, r12
- subs r4, 0x1
- cmp r4, 0
- bgt _080A5906
-_080A592A:
- movs r0, 0
-_080A592C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A58C8
-
- thumb_func_start sub_80A5934
-sub_80A5934:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A5958
- ldr r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4660
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A5958: .4byte gUnknown_3001B70
- thumb_func_end sub_80A5934
-
- thumb_func_start sub_80A595C
-sub_80A595C:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A5980
- ldr r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A46C0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A5980: .4byte gUnknown_3001B70
- thumb_func_end sub_80A595C
-
- thumb_func_start sub_80A5984
-sub_80A5984:
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080A599C
- ldr r0, [r0]
- adds r1, r3, 0
- bl sub_80A4720
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_080A599C: .4byte gUnknown_3001B70
- thumb_func_end sub_80A5984
-
- thumb_func_start sub_80A59A0
-sub_80A59A0:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r3, r2, 16
- lsrs r3, 16
- ldr r0, _080A59BC
- ldr r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4740
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A59BC: .4byte gUnknown_3001B70
- thumb_func_end sub_80A59A0
-
- thumb_func_start GroundMap_Action
-GroundMap_Action:
- push {lr}
- bl nullsub_123
- ldr r0, _080A59D4
- ldr r0, [r0]
- ldr r1, _080A59D8
- bl HandleAction
- pop {r0}
- bx r0
- .align 2, 0
-_080A59D4: .4byte gUnknown_3001B6C
-_080A59D8: .4byte gUnknown_8117770
- thumb_func_end GroundMap_Action
-
- thumb_func_start sub_80A59DC
-sub_80A59DC:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x58
- ldr r7, _080A5A34
- ldr r0, [r7]
- cmp r0, 0
- bne _080A59F0
- b _080A5E5A
-_080A59F0:
- mov r9, sp
- mov r0, sp
- bl sub_809D248
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A5A04
- str r0, [sp]
- str r0, [sp, 0x4]
-_080A5A04:
- ldr r0, _080A5A38
- mov r8, r0
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0xE4
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r6, r8
- cmp r0, 0xAB
- bne _080A5A1A
- b _080A5BBE
-_080A5A1A:
- cmp r0, 0xAB
- bgt _080A5A46
- cmp r0, 0xA3
- bgt _080A5A3C
- cmp r0, 0xA2
- bge _080A5A76
- cmp r0, 0x4
- bne _080A5A2C
- b _080A5D76
-_080A5A2C:
- cmp r0, 0xA1
- bne _080A5A32
- b _080A5E28
-_080A5A32:
- b _080A5E46
- .align 2, 0
-_080A5A34: .4byte gUnknown_3001B70
-_080A5A38: .4byte gUnknown_3001B6C
-_080A5A3C:
- cmp r0, 0xA8
- beq _080A5AF4
- cmp r0, 0xAA
- beq _080A5AF4
- b _080A5E46
-_080A5A46:
- cmp r0, 0xB0
- bne _080A5A4C
- b _080A5C76
-_080A5A4C:
- cmp r0, 0xB0
- bgt _080A5A5E
- cmp r0, 0xAE
- bne _080A5A56
- b _080A5B58
-_080A5A56:
- cmp r0, 0xAF
- bne _080A5A5C
- b _080A5BD8
-_080A5A5C:
- b _080A5E46
-_080A5A5E:
- cmp r0, 0xDF
- beq _080A5A76
- cmp r0, 0xDF
- bgt _080A5A6E
- cmp r0, 0xBA
- bne _080A5A6C
- b _080A5D18
-_080A5A6C:
- b _080A5E46
-_080A5A6E:
- cmp r0, 0xE0
- bne _080A5A74
- b _080A5DDA
-_080A5A74:
- b _080A5E46
-_080A5A76:
- ldr r3, [r6]
- adds r2, r3, 0
- adds r2, 0xF4
- ldr r1, [r2]
- adds r0, r1, 0x2
- str r0, [r2]
- adds r4, r3, 0
- adds r4, 0xFC
- cmp r0, 0
- bge _080A5A8C
- adds r0, r1, 0x5
-_080A5A8C:
- asrs r1, r0, 2
- ldr r0, [r4]
- adds r0, r1
- str r0, [r4]
- ldr r0, [r2]
- movs r1, 0x3
- ands r0, r1
- str r0, [r2]
- ldr r5, _080A5AF0
- ldr r0, [r5]
- adds r2, r3, 0
- adds r2, 0xF8
- movs r1, 0
- bl sub_80A4580
- ldr r0, [sp]
- str r0, [sp, 0x8]
- ldr r0, [r6]
- adds r0, 0xFC
- ldr r1, [sp, 0x4]
- ldr r0, [r0]
- adds r1, r0
- add r4, sp, 0x8
- str r1, [r4, 0x4]
- ldr r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A456C
- ldr r0, [sp]
- str r0, [sp, 0x8]
- ldr r0, [r6]
- adds r0, 0xFC
- ldr r1, [sp, 0x4]
- ldr r0, [r0]
- subs r1, r0
- str r1, [r4, 0x4]
- ldr r0, [r5]
- movs r1, 0x1
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r5]
- b _080A5DD0
- .align 2, 0
-_080A5AF0: .4byte gUnknown_3001B70
-_080A5AF4:
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0xF0
- adds r0, r2, 0
- adds r0, 0xE8
- ldr r1, [r3]
- ldr r0, [r0]
- adds r1, r0
- str r1, [r3]
- adds r2, 0xF8
- cmp r1, 0
- bge _080A5B0E
- adds r1, 0x7
-_080A5B0E:
- asrs r1, 3
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- ldr r1, [r3]
- adds r0, r1, 0
- cmp r1, 0
- bge _080A5B20
- adds r0, r1, 0x7
-_080A5B20:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- str r0, [r3]
- ldr r5, _080A5B54
- ldr r0, [r5]
- movs r1, 0
- bl sub_80A4580
- ldr r0, [r6]
- adds r0, 0xF8
- ldr r1, [sp]
- ldr r0, [r0]
- adds r1, r0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x4]
- add r4, sp, 0x10
- str r0, [r4, 0x4]
- ldr r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r5]
- movs r1, 0
- b _080A5DD2
- .align 2, 0
-_080A5B54: .4byte gUnknown_3001B70
-_080A5B58:
- adds r4, r3, 0
- adds r4, 0xF0
- adds r0, r3, 0
- adds r0, 0xE8
- ldr r1, [r4]
- ldr r0, [r0]
- adds r1, r0
- str r1, [r4]
- adds r2, r3, 0
- adds r2, 0xF8
- cmp r1, 0
- bge _080A5B72
- adds r1, 0x7
-_080A5B72:
- asrs r1, 3
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- ldr r1, [r4]
- adds r0, r1, 0
- cmp r1, 0
- bge _080A5B84
- adds r0, r1, 0x7
-_080A5B84:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- str r0, [r4]
- ldr r0, [r7]
- movs r1, 0
- bl sub_80A4580
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xF8
- ldr r1, [sp]
- ldr r0, [r0]
- adds r1, r0
- str r1, [sp, 0x18]
- ldr r0, [sp, 0x4]
- add r4, sp, 0x18
- str r0, [r4, 0x4]
- ldr r0, [r7]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r7]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A456C
- b _080A5DCE
-_080A5BBE:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- ldr r0, [r7]
- add r4, sp, 0x20
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r7]
- movs r1, 0
- b _080A5DD2
-_080A5BD8:
- ldr r0, [r7]
- movs r1, 0
- mov r2, sp
- bl sub_80A456C
- mov r0, r8
- ldr r3, [r0]
- adds r4, r3, 0
- adds r4, 0xF0
- adds r1, r3, 0
- adds r1, 0xE8
- ldr r0, [r4]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r4]
- adds r5, r3, 0
- adds r5, 0xF4
- adds r1, r3, 0
- adds r1, 0xEC
- ldr r0, [r5]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r5]
- adds r2, r3, 0
- adds r2, 0xF8
- ldr r1, [r4]
- cmp r1, 0
- bge _080A5C12
- adds r1, 0x7
-_080A5C12:
- asrs r1, 3
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- adds r3, 0xFC
- ldr r1, [r5]
- cmp r1, 0
- bge _080A5C24
- adds r1, 0x7
-_080A5C24:
- asrs r1, 3
- ldr r0, [r3]
- adds r0, r1
- str r0, [r3]
- ldr r1, [r4]
- adds r0, r1, 0
- cmp r1, 0
- bge _080A5C36
- adds r0, r1, 0x7
-_080A5C36:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- str r0, [r4]
- ldr r1, [r5]
- adds r0, r1, 0
- cmp r1, 0
- bge _080A5C48
- adds r0, r1, 0x7
-_080A5C48:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- str r0, [r5]
- ldr r0, [r7]
- movs r1, 0
- bl sub_80A4580
- mov r1, r8
- ldr r2, [r1]
- adds r1, r2, 0
- adds r1, 0xF8
- ldr r0, [sp]
- ldr r1, [r1]
- adds r0, r1
- str r0, [sp, 0x28]
- adds r2, 0xFC
- mov r1, r9
- ldr r0, [r1, 0x4]
- ldr r1, [r2]
- adds r0, r1
- add r4, sp, 0x28
- b _080A5DC2
-_080A5C76:
- adds r4, r3, 0
- adds r4, 0xF0
- adds r1, r3, 0
- adds r1, 0xE8
- ldr r0, [r4]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r4]
- adds r5, r3, 0
- adds r5, 0xF4
- adds r1, r3, 0
- adds r1, 0xEC
- ldr r0, [r5]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r5]
- adds r6, r3, 0
- adds r6, 0xF8
- ldr r1, [r4]
- cmp r1, 0
- bge _080A5CA2
- adds r1, 0x7
-_080A5CA2:
- asrs r1, 3
- ldr r0, [r6]
- adds r0, r1
- str r0, [r6]
- adds r2, r3, 0
- adds r2, 0xFC
- ldr r1, [r5]
- cmp r1, 0
- bge _080A5CB6
- adds r1, 0x7
-_080A5CB6:
- asrs r1, 3
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- ldr r1, [r4]
- adds r0, r1, 0
- cmp r1, 0
- bge _080A5CC8
- adds r0, r1, 0x7
-_080A5CC8:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- str r0, [r4]
- ldr r1, [r5]
- adds r0, r1, 0
- cmp r1, 0
- bge _080A5CDA
- adds r0, r1, 0x7
-_080A5CDA:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- str r0, [r5]
- ldr r0, [r7]
- movs r1, 0
- adds r2, r6, 0
- bl sub_80A4580
- mov r0, r8
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0xF8
- ldr r0, [sp]
- ldr r1, [r1]
- adds r0, r1
- str r0, [sp, 0x30]
- adds r2, 0xFC
- ldr r0, [sp, 0x4]
- ldr r1, [r2]
- adds r0, r1
- add r4, sp, 0x30
- str r0, [r4, 0x4]
- ldr r0, [r7]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r7]
- movs r1, 0
- b _080A5DD2
-_080A5D18:
- ldr r0, [r7]
- movs r1, 0x1
- mov r2, sp
- bl sub_80A456C
- mov r0, r8
- ldr r1, [r0]
- adds r3, r1, 0
- adds r3, 0xF0
- ldr r4, [r3]
- adds r0, r4, 0x1
- str r0, [r3]
- adds r2, r1, 0
- adds r2, 0xF8
- cmp r0, 0
- bge _080A5D3A
- adds r0, r4, 0x4
-_080A5D3A:
- asrs r1, r0, 2
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- ldr r0, [r3]
- movs r1, 0x3
- ands r0, r1
- str r0, [r3]
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_80A4580
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xF8
- ldr r1, [sp]
- ldr r0, [r0]
- adds r1, r0
- str r1, [sp, 0x38]
- ldr r0, [sp, 0x4]
- add r4, sp, 0x38
- str r0, [r4, 0x4]
- ldr r0, [r7]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r7]
- movs r1, 0
- b _080A5DD2
-_080A5D76:
- ldr r0, [r7]
- movs r1, 0
- mov r2, sp
- bl sub_80A456C
- mov r0, r8
- ldr r1, [r0]
- adds r3, r1, 0
- adds r3, 0xF0
- ldr r4, [r3]
- adds r0, r4, 0x1
- str r0, [r3]
- adds r2, r1, 0
- adds r2, 0xF8
- cmp r0, 0
- bge _080A5D98
- adds r0, 0x7
-_080A5D98:
- asrs r1, r0, 3
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- ldr r0, [r3]
- movs r1, 0x7
- ands r0, r1
- str r0, [r3]
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_80A4580
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xF8
- ldr r1, [sp]
- ldr r0, [r0]
- adds r1, r0
- str r1, [sp, 0x40]
- ldr r0, [sp, 0x4]
- add r4, sp, 0x40
-_080A5DC2:
- str r0, [r4, 0x4]
- ldr r0, [r7]
- movs r1, 0x1
- adds r2, r4, 0
- bl sub_80A4580
-_080A5DCE:
- ldr r0, [r7]
-_080A5DD0:
- movs r1, 0x1
-_080A5DD2:
- adds r2, r4, 0
- bl sub_80A456C
- b _080A5E52
-_080A5DDA:
- ldr r0, [r7]
- movs r1, 0
- mov r2, sp
- bl sub_80A456C
- mov r0, r8
- ldr r1, [r0]
- adds r3, r1, 0
- adds r3, 0xF0
- ldr r4, [r3]
- adds r0, r4, 0x1
- str r0, [r3]
- adds r2, r1, 0
- adds r2, 0xF8
- cmp r0, 0
- bge _080A5DFC
- adds r0, 0x7
-_080A5DFC:
- asrs r1, r0, 3
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
- ldr r0, [r3]
- movs r1, 0x7
- ands r0, r1
- str r0, [r3]
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_80A4580
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xF8
- ldr r0, [r0]
- str r0, [sp, 0x48]
- ldr r0, [sp, 0x4]
- add r2, sp, 0x48
- str r0, [r2, 0x4]
- ldr r0, [r7]
- b _080A5E3E
-_080A5E28:
- ldr r0, [r7]
- movs r1, 0
- mov r2, sp
- bl sub_80A456C
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x50]
- str r1, [sp, 0x54]
- ldr r0, [r7]
- add r2, sp, 0x50
-_080A5E3E:
- movs r1, 0x1
- bl sub_80A456C
- b _080A5E52
-_080A5E46:
- ldr r0, _080A5E6C
- ldr r0, [r0]
- movs r1, 0
- mov r2, sp
- bl sub_80A456C
-_080A5E52:
- ldr r0, _080A5E6C
- ldr r0, [r0]
- bl sub_80A4764
-_080A5E5A:
- bl sub_80A60D8
- add sp, 0x58
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E6C: .4byte gUnknown_3001B70
- thumb_func_end sub_80A59DC
-
- thumb_func_start sub_80A5E70
-sub_80A5E70:
- push {lr}
- ldr r0, _080A5E88
- ldr r0, [r0]
- cmp r0, 0
- beq _080A5E7E
- bl sub_80A49E8
-_080A5E7E:
- bl sub_80A62D0
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E88: .4byte gUnknown_3001B70
- thumb_func_end sub_80A5E70
-
- thumb_func_start sub_80A5E8C
-sub_80A5E8C:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080A5EB4
- movs r0, 0x24
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r5]
- ldr r1, _080A5EB8
- strh r1, [r0]
- movs r1, 0
- strb r1, [r0, 0x2]
- adds r0, r4, 0
- bl sub_80A5EDC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5EB4: .4byte gUnknown_3001B74
-_080A5EB8: .4byte 0x0000ffff
- thumb_func_end sub_80A5E8C
-
- thumb_func_start sub_80A5EBC
-sub_80A5EBC:
- push {r4,lr}
- movs r0, 0
- bl sub_80A5EDC
- ldr r4, _080A5ED8
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5ED8: .4byte gUnknown_3001B74
- thumb_func_end sub_80A5EBC
-
- thumb_func_start sub_80A5EDC
-sub_80A5EDC:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- movs r6, 0x1
- negs r6, r6
- movs r0, 0
- movs r1, 0x1B
- adds r2, r6, 0
- bl sub_80018D8
- ldr r0, _080A5F34
- ldr r1, [r0]
- ldr r0, _080A5F38
- strh r0, [r1]
- strb r5, [r1, 0x2]
- ldr r4, _080A5F3C
- ldr r0, [r4]
- cmp r0, 0
- beq _080A5F12
- bl sub_80A2D00
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080A5F12:
- cmp r5, 0
- beq _080A5F2E
- ldr r0, _080A5F40
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- ldr r1, _080A5F44
- bl sub_80A2B40
- ldr r0, [r4]
- adds r1, r6, 0
- bl sub_80A2FBC
-_080A5F2E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5F34: .4byte gUnknown_3001B74
-_080A5F38: .4byte 0x0000ffff
-_080A5F3C: .4byte gUnknown_3001B78
-_080A5F40: .4byte 0x0000055c
-_080A5F44: .4byte gUnknown_8117784
- thumb_func_end sub_80A5EDC
-
- thumb_func_start nullsub_121
-nullsub_121:
- bx lr
- thumb_func_end nullsub_121
-
- thumb_func_start nullsub_122
-nullsub_122:
- bx lr
- thumb_func_end nullsub_122
-
- thumb_func_start GroundWeather_Select
-GroundWeather_Select:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r5, r0, 16
- adds r7, r5, 0
- ldr r1, _080A5F94
- ldr r6, _080A5F98
- ldr r0, [r6]
- ldrb r3, [r0, 0x2]
- movs r0, 0
- adds r2, r5, 0
- bl Log
- movs r0, 0
- movs r1, 0x1B
- adds r2, r5, 0
- bl sub_80018D8
- ldr r0, [r6]
- movs r4, 0
- strh r5, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _080A5F80
- b _080A60B4
-_080A5F80:
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _080A5FA0
- ldr r0, _080A5F9C
- ldr r0, [r0]
- adds r1, r5, 0
- bl sub_80A2FBC
- b _080A60B4
- .align 2, 0
-_080A5F94: .4byte gUnknown_811779C
-_080A5F98: .4byte gUnknown_3001B74
-_080A5F9C: .4byte gUnknown_3001B78
-_080A5FA0:
- lsls r1, r7, 2
- ldr r0, _080A5FD8
- adds r5, r1, r0
- ldr r0, _080A5FDC
- ldr r0, [r0]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl sub_80A2FBC
- ldr r0, [r6]
- str r4, [r0, 0x4]
- str r4, [r0, 0x8]
- str r4, [r0, 0xC]
- str r4, [r0, 0x10]
- str r4, [r0, 0x20]
- str r4, [r0, 0x1C]
- str r4, [r0, 0x18]
- str r4, [r0, 0x14]
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xF
- bhi _080A6098
- lsls r0, 2
- ldr r1, _080A5FE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A5FD8: .4byte gUnknown_811E5F4
-_080A5FDC: .4byte gUnknown_3001B78
-_080A5FE0: .4byte _080A5FE4
- .align 2, 0
-_080A5FE4:
- .4byte _080A6088
- .4byte _080A6098
- .4byte _080A6098
- .4byte _080A6088
- .4byte _080A6088
- .4byte _080A6088
- .4byte _080A6098
- .4byte _080A6040
- .4byte _080A6088
- .4byte _080A6024
- .4byte _080A6098
- .4byte _080A6098
- .4byte _080A6098
- .4byte _080A6098
- .4byte _080A6050
- .4byte _080A606C
-_080A6024:
- ldr r0, _080A6034
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_80A3BB0
- ldr r1, _080A6038
- ldr r2, _080A603C
- b _080A60B0
- .align 2, 0
-_080A6034: .4byte gUnknown_3001B78
-_080A6038: .4byte gUnknown_2026E4E
-_080A603C: .4byte 0x0000040c
-_080A6040:
- ldr r1, _080A6048
- ldr r2, _080A604C
- b _080A60B0
- .align 2, 0
-_080A6048: .4byte gUnknown_2026E4E
-_080A604C: .4byte 0x00000808
-_080A6050:
- ldr r0, _080A6060
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_80A3BB0
- ldr r1, _080A6064
- ldr r2, _080A6068
- b _080A60B0
- .align 2, 0
-_080A6060: .4byte gUnknown_3001B78
-_080A6064: .4byte gUnknown_2026E4E
-_080A6068: .4byte 0x00001010
-_080A606C:
- ldr r0, _080A607C
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_80A3BB0
- ldr r1, _080A6080
- ldr r2, _080A6084
- b _080A60B0
- .align 2, 0
-_080A607C: .4byte gUnknown_3001B78
-_080A6080: .4byte gUnknown_2026E4E
-_080A6084: .4byte 0x0000040c
-_080A6088:
- ldr r1, _080A6090
- ldr r2, _080A6094
- b _080A60B0
- .align 2, 0
-_080A6090: .4byte gUnknown_2026E4E
-_080A6094: .4byte 0x00001010
-_080A6098:
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080A60AA
- ldr r0, _080A60BC
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_80A3BB0
-_080A60AA:
- ldr r1, _080A60C0
- movs r2, 0x80
- lsls r2, 5
-_080A60B0:
- adds r0, r2, 0
- strh r0, [r1]
-_080A60B4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A60BC: .4byte gUnknown_3001B78
-_080A60C0: .4byte gUnknown_2026E4E
- thumb_func_end GroundWeather_Select
-
- thumb_func_start sub_80A60C4
-sub_80A60C4:
- ldr r0, _080A60D0
- ldr r0, [r0]
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080A60D0: .4byte gUnknown_3001B74
- thumb_func_end sub_80A60C4
-
- thumb_func_start nullsub_123
-nullsub_123:
- bx lr
- thumb_func_end nullsub_123
-
- thumb_func_start sub_80A60D8
-sub_80A60D8:
- push {r4-r6,lr}
- sub sp, 0x28
- ldr r0, _080A6104
- ldr r3, [r0]
- ldrb r1, [r3, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- bne _080A60EA
- b _080A62C0
-_080A60EA:
- ldrh r0, [r3]
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bls _080A60F8
- b _080A6278
-_080A60F8:
- lsls r0, 2
- ldr r1, _080A6108
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A6104: .4byte gUnknown_3001B74
-_080A6108: .4byte _080A610C
- .align 2, 0
-_080A610C:
- .4byte _080A62AC
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6278
- .4byte _080A6150
- .4byte _080A61CC
- .4byte _080A61CC
- .4byte _080A61CC
- .4byte _080A61CC
- .4byte _080A61D0
- .4byte _080A6224
-_080A6150:
- ldr r2, [r6]
- ldr r1, [r2, 0x4]
- adds r0, r1, 0x2
- str r0, [r2, 0x4]
- ldr r4, [r2, 0x8]
- adds r3, r4, 0x1
- str r3, [r2, 0x8]
- cmp r0, 0
- bge _080A6164
- adds r0, r1, 0x5
-_080A6164:
- asrs r1, r0, 2
- ldr r0, [r2, 0xC]
- adds r0, r1
- str r0, [r2, 0xC]
- adds r1, r3, 0
- cmp r1, 0
- bge _080A6174
- adds r1, r4, 0x4
-_080A6174:
- asrs r1, 2
- ldr r0, [r2, 0x10]
- adds r0, r1
- str r0, [r2, 0x10]
- ldr r4, _080A61C8
- ldr r0, [r4]
- adds r2, 0xC
- movs r1, 0
- bl sub_80A4580
- ldr r1, [r6]
- ldr r0, [r1, 0x4]
- movs r2, 0x3
- ands r0, r2
- str r0, [r1, 0x4]
- ldr r0, [r1, 0x8]
- ands r0, r2
- str r0, [r1, 0x8]
- mov r0, sp
- bl sub_80A56C0
- ldr r2, [r6]
- ldr r0, [sp]
- ldr r1, [r2, 0xC]
- subs r0, r1
- str r0, [sp]
- ldr r0, [sp, 0x4]
- ldr r1, [r2, 0x10]
- adds r0, r1
- str r0, [sp, 0x4]
- ldr r0, [r4]
- movs r1, 0
- mov r2, sp
- bl sub_80A4580
- ldr r0, [r4]
- movs r1, 0
- mov r2, sp
- bl sub_80A456C
- b _080A62B8
- .align 2, 0
-_080A61C8: .4byte gUnknown_3001B78
-_080A61CC:
- add r4, sp, 0x8
- b _080A628E
-_080A61D0:
- ldr r2, [r6]
- ldr r1, [r2, 0x4]
- adds r0, r1, 0x1
- str r0, [r2, 0x4]
- cmp r0, 0
- bge _080A61DE
- adds r0, r1, 0x4
-_080A61DE:
- asrs r1, r0, 2
- ldr r0, [r2, 0xC]
- adds r0, r1
- str r0, [r2, 0xC]
- ldr r5, _080A6220
- ldr r0, [r5]
- adds r2, 0xC
- movs r1, 0
- bl sub_80A4580
- ldr r2, [r6]
- ldr r0, [r2, 0x4]
- movs r1, 0x3
- ands r0, r1
- str r0, [r2, 0x4]
- add r4, sp, 0x10
- adds r0, r4, 0
- bl sub_80A56C0
- ldr r1, [r6]
- ldr r0, [sp, 0x10]
- ldr r1, [r1, 0xC]
- subs r0, r1
- str r0, [sp, 0x10]
- movs r0, 0
- str r0, [r4, 0x4]
- ldr r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r5]
- b _080A6298
- .align 2, 0
-_080A6220: .4byte gUnknown_3001B78
-_080A6224:
- ldr r2, [r6]
- ldr r1, [r2, 0x4]
- adds r0, r1, 0x2
- str r0, [r2, 0x4]
- cmp r0, 0
- bge _080A6232
- adds r0, r1, 0x5
-_080A6232:
- asrs r1, r0, 2
- ldr r0, [r2, 0xC]
- adds r0, r1
- str r0, [r2, 0xC]
- ldr r5, _080A6274
- ldr r0, [r5]
- adds r2, 0xC
- movs r1, 0
- bl sub_80A4580
- ldr r2, [r6]
- ldr r0, [r2, 0x4]
- movs r1, 0x3
- ands r0, r1
- str r0, [r2, 0x4]
- add r4, sp, 0x18
- adds r0, r4, 0
- bl sub_80A56C0
- ldr r1, [r6]
- ldr r0, [sp, 0x18]
- ldr r1, [r1, 0xC]
- subs r0, r1
- str r0, [sp, 0x18]
- movs r0, 0
- str r0, [r4, 0x4]
- ldr r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A4580
- ldr r0, [r5]
- b _080A6298
- .align 2, 0
-_080A6274: .4byte gUnknown_3001B78
-_080A6278:
- ldr r0, [r6]
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 2
- ldr r1, _080A62A4
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A62AC
- add r4, sp, 0x20
-_080A628E:
- adds r0, r4, 0
- bl sub_80A56C0
- ldr r0, _080A62A8
- ldr r0, [r0]
-_080A6298:
- movs r1, 0
- adds r2, r4, 0
- bl sub_80A456C
- b _080A62B8
- .align 2, 0
-_080A62A4: .4byte gUnknown_811E5F4
-_080A62A8: .4byte gUnknown_3001B78
-_080A62AC:
- ldr r0, _080A62C8
- ldr r0, [r0]
- ldr r2, _080A62CC
- movs r1, 0
- bl sub_80A456C
-_080A62B8:
- ldr r0, _080A62C8
- ldr r0, [r0]
- bl sub_80A4764
-_080A62C0:
- add sp, 0x28
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A62C8: .4byte gUnknown_3001B78
-_080A62CC: .4byte gUnknown_81177BC
- thumb_func_end sub_80A60D8
-
- thumb_func_start sub_80A62D0
-sub_80A62D0:
- push {lr}
- ldr r0, _080A62E8
- ldr r0, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _080A62E4
- ldr r0, _080A62EC
- ldr r0, [r0]
- bl sub_80A49E8
-_080A62E4:
- pop {r0}
- bx r0
- .align 2, 0
-_080A62E8: .4byte gUnknown_3001B74
-_080A62EC: .4byte gUnknown_3001B78
- thumb_func_end sub_80A62D0
-
- thumb_func_start sub_80A62F0
-sub_80A62F0:
- push {r4-r7,lr}
- ldr r4, _080A6378
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- ldr r0, _080A637C
- ldr r1, _080A6380
- bl OpenFileAndGetFileDataPtr
- ldr r1, _080A6384
- str r0, [r1]
- movs r0, 0x1
- bl sub_800DAC0
- ldr r4, [r4]
- ldr r1, _080A6388
- movs r0, 0x16
- str r0, [r1]
- ldr r1, _080A638C
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- movs r2, 0
- movs r1, 0x80
- lsls r1, 9
- adds r3, r1, 0
-_080A632A:
- str r2, [r4]
- lsls r0, 4
- str r0, [r4, 0x4]
- str r2, [r4, 0x8]
- adds r0, r1, 0
- adds r1, r3
- asrs r0, 16
- adds r4, 0xC
- cmp r0, 0x15
- ble _080A632A
- ldr r0, _080A6378
- ldr r0, [r0]
- movs r1, 0x84
- lsls r1, 1
- adds r4, r0, r1
- movs r6, 0
- movs r7, 0
- movs r5, 0xE8
- lsls r5, 13
-_080A6350:
- strh r7, [r4]
- strh r7, [r4, 0x2]
- lsrs r0, r5, 16
- movs r1, 0
- bl sub_80997F4
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r6, 0x1
- adds r4, 0x4
- cmp r6, 0x1
- ble _080A6350
- movs r0, 0x1
- negs r0, r0
- bl GroundSprite_Reset
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6378: .4byte gUnknown_3001B7C
-_080A637C: .4byte gUnknown_81177CC
-_080A6380: .4byte gUnknown_83B0000
-_080A6384: .4byte gUnknown_203B4B4
-_080A6388: .4byte gUnknown_2039DD4
-_080A638C: .4byte gUnknown_2039DD0
- thumb_func_end sub_80A62F0
-
- thumb_func_start GroundSprite_Reset
-GroundSprite_Reset:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- asrs r0, 16
- mov r9, r0
- ldr r1, _080A641C
- movs r0, 0
- bl Log
- ldr r0, _080A6420
- movs r1, 0
- mov r8, r1
- strh r1, [r0]
- ldr r0, _080A6424
- strh r1, [r0]
- bl sub_80A6460
- mov r0, r9
- bl sub_80A4D48
- lsls r0, 24
- movs r1, 0x2
- cmp r0, 0
- beq _080A63C6
- movs r1, 0x3
-_080A63C6:
- movs r0, 0xF8
- lsls r0, 1
- bl sub_808E53C
- ldr r5, _080A6428
- adds r0, r5, 0
- bl sub_8004E8C
- ldr r4, _080A642C
- adds r0, r4, 0
- bl sub_8004E8C
- ldrh r1, [r4, 0x4]
- ldr r6, _080A6430
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r4, 0x4]
- ldrh r1, [r4, 0xA]
- adds r0, r6, 0
- ands r0, r1
- movs r2, 0x80
- lsls r2, 4
- adds r7, r2, 0
- orrs r0, r7
- strh r0, [r4, 0xA]
- mov r0, r9
- bl sub_80A4D48
- lsls r0, 24
- cmp r0, 0
- beq _080A6434
- ldrh r1, [r5, 0x4]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r5, 0x4]
- ldrh r1, [r5, 0xA]
- adds r0, r6, 0
- ands r0, r1
- movs r2, 0xC0
- lsls r2, 4
- adds r1, r2, 0
- orrs r0, r1
- b _080A6444
- .align 2, 0
-_080A641C: .4byte gUnknown_81177D8
-_080A6420: .4byte gUnknown_2039DCC
-_080A6424: .4byte gUnknown_2039DCE
-_080A6428: .4byte gUnknown_2039DB0
-_080A642C: .4byte gUnknown_2039DC0
-_080A6430: .4byte 0x0000f3ff
-_080A6434:
- ldrh r1, [r5, 0x4]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r5, 0x4]
- ldrh r1, [r5, 0xA]
- adds r0, r6, 0
- ands r0, r1
- orrs r0, r7
-_080A6444:
- strh r0, [r5, 0xA]
- movs r0, 0x1
- bl ResetSprites
- movs r0, 0x1
- bl nullsub_10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GroundSprite_Reset
-
- thumb_func_start sub_80A6460
-sub_80A6460:
- push {r4-r7,lr}
- ldr r0, _080A649C
- ldr r1, _080A64A0
- bl OpenFileAndGetFileDataPtr
- adds r7, r0, 0
- movs r5, 0x80
- lsls r5, 1
- ldr r4, [r7, 0x4]
- movs r6, 0xC
-_080A6474:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x10
- bl sub_809971C
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x40
- subs r6, 0x1
- cmp r6, 0
- bge _080A6474
- adds r0, r7, 0
- bl CloseFile
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A649C: .4byte gUnknown_81177EC
-_080A64A0: .4byte gUnknown_8510000
- thumb_func_end sub_80A6460
-
- thumb_func_start sub_80A64A4
-sub_80A64A4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _080A6508
- ldr r0, [r0]
- movs r1, 0x84
- lsls r1, 1
- adds r7, r0, r1
- bl sub_80A6460
- movs r0, 0
- mov r8, r0
-_080A64C0:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- ble _080A6568
- ldrh r5, [r7]
- mov r0, r8
- adds r0, 0x1D
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r1, r8
- lsls r0, r1, 20
- movs r1, 0xE8
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080A6514
- ldr r0, _080A650C
- ldr r1, _080A6510
- bl OpenFileAndGetFileDataPtr
- adds r6, r0, 0
- movs r0, 0xFF
- ands r0, r5
- lsls r0, 6
- ldr r1, [r6, 0x4]
- adds r2, r1, r0
- b _080A652A
- .align 2, 0
-_080A6508: .4byte gUnknown_3001B7C
-_080A650C: .4byte gUnknown_81177EC
-_080A6510: .4byte gUnknown_8510000
-_080A6514:
- movs r0, 0xFF
- ands r0, r5
- lsls r0, 2
- ldr r1, _080A6584
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080A6588
- bl OpenFileAndGetFileDataPtr
- adds r6, r0, 0
- ldr r2, [r6, 0x4]
-_080A652A:
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1, 0
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 16
- lsrs r1, 16
- negs r1, r1
- lsrs r4, r1, 31
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1, 0
- ands r5, r0
- cmp r5, 0
- beq _080A654C
- movs r0, 0x2
- orrs r4, r0
-_080A654C:
- mov r0, r9
- adds r1, r2, 0
- movs r2, 0x10
- bl sub_809971C
- mov r0, r10
- adds r1, r4, 0
- bl sub_80997F4
- cmp r6, 0
- beq _080A6568
- adds r0, r6, 0
- bl CloseFile
-_080A6568:
- movs r0, 0x1
- add r8, r0
- adds r7, 0x4
- mov r1, r8
- cmp r1, 0x1
- ble _080A64C0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6584: .4byte gUnknown_81178F4
-_080A6588: .4byte gUnknown_9E60000
- thumb_func_end sub_80A64A4
-
- thumb_func_start sub_80A658C
-sub_80A658C:
- push {r4,lr}
- bl sub_800DB7C
- movs r0, 0
- bl ResetSprites
- movs r0, 0
- bl nullsub_10
- bl sub_8005180
- bl nullsub_12
- bl CopySpritesToOam
- bl nullsub_13
- bl sub_8005304
- bl nullsub_14
- ldr r0, _080A65D0
- ldr r0, [r0]
- bl CloseFile
- ldr r4, _080A65D4
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65D0: .4byte gUnknown_203B4B4
-_080A65D4: .4byte gUnknown_3001B7C
- thumb_func_end sub_80A658C
-
- thumb_func_start sub_80A65D8
-sub_80A65D8:
- adds r0, 0x50
- ldrh r0, [r0]
- bx lr
- thumb_func_end sub_80A65D8
-
- thumb_func_start sub_80A65E0
-sub_80A65E0:
- lsrs r0, 16
- ldr r2, _080A65EC
- adds r1, r2, 0
- ands r0, r1
- bx lr
- .align 2, 0
-_080A65EC: .4byte 0x0000337f
- thumb_func_end sub_80A65E0
-
- thumb_func_start sub_80A65F0
-sub_80A65F0:
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, 0x50
- strh r1, [r0]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- asrs r2, r0, 31
- movs r0, 0x40
- ands r2, r0
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6616
- subs r2, 0x40
-_080A6616:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A6624
- adds r1, r2, 0
- adds r1, 0x48
- b _080A6628
-_080A6624:
- adds r1, r2, 0
- adds r1, 0x40
-_080A6628:
- adds r0, r3, 0
- adds r0, 0x6A
- strh r1, [r0]
- adds r2, r3, 0
- adds r2, 0x50
- ldrh r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080A6648
- adds r1, r3, 0
- adds r1, 0x3C
- ldr r0, _080A6644
- b _080A664E
- .align 2, 0
-_080A6644: .4byte gUnknown_2039DC0
-_080A6648:
- adds r1, r3, 0
- adds r1, 0x3C
- ldr r0, _080A6680
-_080A664E:
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldrh r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A6678
- ldrh r2, [r3, 0x3C]
- ldr r1, _080A6684
- adds r0, r1, 0
- ands r0, r2
- strh r0, [r3, 0x3C]
- adds r2, r3, 0
- adds r2, 0x42
- ldrh r0, [r2]
- ands r1, r0
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- orrs r1, r0
- strh r1, [r2]
-_080A6678:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6680: .4byte gUnknown_2039DB0
-_080A6684: .4byte 0x0000f3ff
- thumb_func_end sub_80A65F0
-
- thumb_func_start sub_80A6688
-sub_80A6688:
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- bl sub_80A65E0
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80A65F0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6688
-
- thumb_func_start sub_80A66A4
-sub_80A66A4:
- push {lr}
- movs r1, 0
- adds r0, 0x48
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- ble _080A66B4
- movs r1, 0x1
-_080A66B4:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80A66A4
-
- thumb_func_start sub_80A66BC
-sub_80A66BC:
- push {lr}
- adds r0, 0x52
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _080A66CC
- movs r0, 0
- b _080A66CE
-_080A66CC:
- movs r0, 0x1
-_080A66CE:
- pop {r1}
- bx r1
- thumb_func_end sub_80A66BC
-
- thumb_func_start sub_80A66D4
-sub_80A66D4:
- push {lr}
- adds r1, r0, 0
- adds r0, 0x52
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _080A66F2
- adds r0, r1, 0
- adds r0, 0x48
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _080A66F2
- movs r0, 0x1
- b _080A66F4
-_080A66F2:
- movs r0, 0
-_080A66F4:
- pop {r1}
- bx r1
- thumb_func_end sub_80A66D4
-
- thumb_func_start sub_80A66F8
-sub_80A66F8:
- push {lr}
- adds r1, r0, 0
- adds r0, 0x52
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- blt _080A6716
- ldrh r1, [r1]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- bne _080A6716
- lsrs r0, r1, 15
- b _080A6718
-_080A6716:
- movs r0, 0
-_080A6718:
- pop {r1}
- bx r1
- thumb_func_end sub_80A66F8
-
- thumb_func_start sub_80A671C
-sub_80A671C:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r4, 0
- adds r6, 0x58
- movs r0, 0
- ldrsh r1, [r6, r0]
- cmp r1, 0
- beq _080A6752
- movs r0, 0xE0
- lsls r0, 1
- cmp r1, r0
- beq _080A674A
- ldr r0, [r4, 0x5C]
- movs r5, 0x1
- negs r5, r5
- cmp r0, r5
- beq _080A674A
- bl sub_800E9E4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A674E
-_080A674A:
- movs r0, 0x1
- b _080A6754
-_080A674E:
- str r5, [r4, 0x5C]
- strh r0, [r6]
-_080A6752:
- movs r0, 0
-_080A6754:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A671C
-
- thumb_func_start sub_80A675C
-sub_80A675C:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r1, 0
- mov r0, sp
- bl sub_809D248
- lsls r0, 24
- cmp r0, 0
- beq _080A678C
- ldr r1, [r6]
- cmp r1, 0
- bge _080A6776
- adds r1, 0xFF
-_080A6776:
- asrs r1, 8
- ldr r0, [sp]
- subs r4, r1, r0
- ldr r1, [r6, 0x4]
- cmp r1, 0
- bge _080A6784
- adds r1, 0xFF
-_080A6784:
- asrs r1, 8
- ldr r0, [sp, 0x4]
- subs r5, r1, r0
- b _080A67A0
-_080A678C:
- ldr r0, [r6]
- cmp r0, 0
- bge _080A6794
- adds r0, 0xFF
-_080A6794:
- asrs r4, r0, 8
- ldr r1, [r6, 0x4]
- cmp r1, 0
- bge _080A679E
- adds r1, 0xFF
-_080A679E:
- asrs r5, r1, 8
-_080A67A0:
- adds r1, r4, 0
- adds r1, 0x40
- ldr r0, _080A67BC
- cmp r1, r0
- bhi _080A67C0
- movs r0, 0x10
- negs r0, r0
- cmp r5, r0
- blt _080A67C0
- cmp r5, 0xCF
- bgt _080A67C0
- movs r0, 0x1
- b _080A67C2
- .align 2, 0
-_080A67BC: .4byte 0x0000016f
-_080A67C0:
- movs r0, 0
-_080A67C2:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A675C
-
- thumb_func_start sub_80A67CC
-sub_80A67CC:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r7, 0
- cmp r5, 0
- beq _080A67E2
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- ble _080A67E2
- movs r7, 0x1
-_080A67E2:
- adds r0, r2, 0
- bl sub_80A65E0
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80A65F0
- movs r1, 0
- str r1, [r4, 0x74]
- str r1, [r4, 0x78]
- movs r6, 0x1
- negs r6, r6
- str r6, [r4, 0x7C]
- adds r0, r4, 0
- adds r0, 0x70
- strb r1, [r0]
- subs r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r2, r4, 0
- adds r2, 0x52
- ldr r0, _080A6884
- strh r0, [r2]
- str r1, [r4, 0x54]
- adds r0, r4, 0
- adds r0, 0x64
- strh r1, [r0]
- adds r2, 0x14
- adds r0, r6, 0
- adds r3, r0, 0
- strh r0, [r2]
- adds r0, r4, 0
- adds r0, 0x68
- strh r1, [r0]
- subs r0, 0x10
- strh r1, [r0]
- adds r1, r4, 0
- adds r1, 0x5A
- movs r0, 0xFF
- strb r0, [r1]
- str r6, [r4, 0x5C]
- str r6, [r4, 0x60]
- cmp r7, 0
- beq _080A6888
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r4, 0x48]
- str r1, [r4, 0x4C]
- adds r5, r4, 0
- adds r5, 0x48
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80A68F8
- lsls r0, 24
- cmp r0, 0
- bne _080A689A
- adds r0, r4, 0
- adds r0, 0x50
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _080A689A
- adds r0, r5, 0
- bl sub_80A6CF4
- lsls r0, 24
- cmp r0, 0
- beq _080A689A
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80A68F8
- b _080A689A
- .align 2, 0
-_080A6884: .4byte 0x0000ffff
-_080A6888:
- adds r1, r4, 0
- adds r1, 0x48
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r0, r4, 0
- adds r0, 0x4A
- strh r7, [r0]
- str r7, [r4, 0x4C]
-_080A689A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A67CC
-
- thumb_func_start sub_80A68A0
-sub_80A68A0:
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x50
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080A68CE
- adds r0, r4, 0
- adds r0, 0x58
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080A68CE
- ldr r1, [r4, 0x5C]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A68CE
- adds r0, r1, 0
- bl sub_800DC14
-_080A68CE:
- ldr r0, [r4, 0x54]
- cmp r0, 0
- beq _080A68DC
- bl CloseFile
- movs r0, 0
- str r0, [r4, 0x54]
-_080A68DC:
- adds r0, r4, 0
- bl sub_80A69FC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A68A0
-
- thumb_func_start sub_80A68E8
-sub_80A68E8:
- push {lr}
- movs r0, 0x15
-_080A68EC:
- subs r0, 0x1
- cmp r0, 0
- bge _080A68EC
- pop {r0}
- bx r0
- thumb_func_end sub_80A68E8
-
- thumb_func_start sub_80A68F8
-sub_80A68F8:
- push {r4-r7,lr}
- mov r12, r0
- adds r5, r2, 0
- ldr r0, _080A6924
- ldr r4, [r0]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, r5
- blt _080A6956
- adds r5, r0, 0
- movs r3, 0
- ldr r0, [r4]
- mov r6, r12
- adds r6, 0x52
- mov r7, r12
- adds r7, 0x64
- cmp r0, 0
- bne _080A6928
- movs r2, 0x1
- cmp r2, r5
- blt _080A692A
- b _080A6986
- .align 2, 0
-_080A6924: .4byte gUnknown_3001B7C
-_080A6928:
- movs r2, 0
-_080A692A:
- adds r0, r3, 0x1
- lsls r0, 16
- asrs r3, r0, 16
- adds r4, 0xC
- cmp r3, 0x15
- bgt _080A6986
- ldr r0, [r4]
- cmp r0, 0
- bne _080A6928
- adds r2, 0x1
- cmp r2, r5
- blt _080A692A
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- subs r0, 0xC
- subs r4, r0
- adds r0, r3, 0x1
- subs r0, r2
- lsls r0, 16
- asrs r3, r0, 16
- b _080A6986
-_080A6956:
- movs r3, 0x15
- adds r4, 0xFC
- ldr r0, [r4]
- mov r6, r12
- adds r6, 0x52
- mov r7, r12
- adds r7, 0x64
- cmp r0, 0
- bne _080A696C
- movs r2, 0x1
- b _080A6982
-_080A696C:
- movs r2, 0
-_080A696E:
- subs r0, r3, 0x1
- lsls r0, 16
- asrs r3, r0, 16
- subs r4, 0xC
- cmp r3, 0
- blt _080A6986
- ldr r0, [r4]
- cmp r0, 0
- bne _080A696C
- adds r2, 0x1
-_080A6982:
- cmp r2, r5
- blt _080A696E
-_080A6986:
- cmp r2, r5
- blt _080A69C4
- strh r3, [r6]
- strh r5, [r7]
- movs r0, 0x1
- str r0, [r4]
- mov r0, r12
- str r0, [r4, 0x8]
- ldrh r1, [r1, 0x2]
- bl GroundSprite_ExtendPaletteAdd
- cmp r5, 0x1
- ble _080A69B2
- movs r2, 0x2
- adds r0, r4, 0
- adds r0, 0xC
- subs r1, r5, 0x1
-_080A69A8:
- str r2, [r0]
- adds r0, 0xC
- subs r1, 0x1
- cmp r1, 0
- bne _080A69A8
-_080A69B2:
- ldr r1, _080A69C0
- ldr r0, [r1]
- subs r0, r5
- str r0, [r1]
- movs r0, 0x1
- b _080A69EC
- .align 2, 0
-_080A69C0: .4byte gUnknown_2039DD4
-_080A69C4:
- ldr r1, _080A69F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- mov r1, r12
- str r0, [r1, 0x7C]
- mov r0, r12
- adds r0, 0x70
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080A69F8
- strh r0, [r6]
- strh r1, [r7]
- mov r0, r12
- adds r0, 0x6C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r0, 0
-_080A69EC:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A69F4: .4byte gUnknown_2039DD0
-_080A69F8: .4byte 0x0000ffff
- thumb_func_end sub_80A68F8
-
- thumb_func_start sub_80A69FC
-sub_80A69FC:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r6, 0
- adds r7, 0x52
- movs r0, 0
- ldrsh r4, [r7, r0]
- ldr r0, _080A6A80
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r0, [r0]
- adds r5, r0, r1
- cmp r4, 0
- blt _080A6A7A
- adds r0, r6, 0
- bl GroundSprite_ExtendPaletteDelete
- movs r0, 0
- str r0, [r5, 0x8]
- str r0, [r5]
- adds r5, 0xC
- ldr r1, _080A6A84
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- asrs r4, r0, 16
- adds r6, 0x64
- mov r12, r6
- cmp r4, 0x15
- bgt _080A6A6A
- ldr r0, [r5]
- cmp r0, 0x2
- bne _080A6A6A
- movs r6, 0
- adds r2, r1, 0
- lsls r1, r4, 16
- movs r0, 0x80
- lsls r0, 9
- adds r1, r0
- adds r3, r0, 0
-_080A6A50:
- str r6, [r5]
- adds r5, 0xC
- ldr r0, [r2]
- adds r0, 0x1
- str r0, [r2]
- adds r0, r1, 0
- adds r1, r3
- asrs r4, r0, 16
- cmp r4, 0x15
- bgt _080A6A6A
- ldr r0, [r5]
- cmp r0, 0x2
- beq _080A6A50
-_080A6A6A:
- ldr r0, _080A6A88
- strh r0, [r7]
- movs r0, 0
- mov r1, r12
- strh r0, [r1]
- ldr r1, _080A6A8C
- movs r0, 0x1
- strb r0, [r1]
-_080A6A7A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A80: .4byte gUnknown_3001B7C
-_080A6A84: .4byte gUnknown_2039DD4
-_080A6A88: .4byte 0x0000ffff
-_080A6A8C: .4byte gUnknown_2039DD0
- thumb_func_end sub_80A69FC
-
- thumb_func_start GroundSprite_ExtendPaletteAdd
-GroundSprite_ExtendPaletteAdd:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r0
- lsls r1, 16
- lsrs r2, r1, 16
- adds r5, r2, 0
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- bne _080A6AB0
- b _080A6C6C
-_080A6AB0:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r2
- cmp r0, 0
- beq _080A6AD8
- ldr r0, _080A6AD4
- ldr r1, [r0]
- movs r3, 0x86
- lsls r3, 1
- adds r4, r1, r3
- ldrh r1, [r4]
- adds r3, r0, 0
- cmp r1, r2
- bne _080A6B36
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- b _080A6C78
- .align 2, 0
-_080A6AD4: .4byte gUnknown_3001B7C
-_080A6AD8:
- movs r0, 0
- mov r8, r0
- ldr r1, _080A6B1C
- ldr r0, [r1]
- movs r2, 0x84
- lsls r2, 1
- adds r4, r0, r2
- adds r3, r1, 0
- movs r1, 0xE8
- lsls r1, 13
-_080A6AEC:
- ldrh r0, [r4]
- cmp r0, r5
- bne _080A6B24
- lsrs r1, 16
- adds r3, r1, 0
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- mov r0, r10
- cmp r0, 0
- beq _080A6B08
- subs r1, 0x10
- adds r0, 0x68
- strh r1, [r0]
-_080A6B08:
- adds r0, r3, 0
- subs r0, 0x10
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- ldr r1, _080A6B20
- mov r2, r8
- bl Log
- b _080A6C78
- .align 2, 0
-_080A6B1C: .4byte gUnknown_3001B7C
-_080A6B20: .4byte gUnknown_81177F4
-_080A6B24:
- movs r2, 0x80
- lsls r2, 9
- adds r1, r2
- movs r0, 0x1
- add r8, r0
- adds r4, 0x4
- mov r2, r8
- cmp r2, 0x1
- ble _080A6AEC
-_080A6B36:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r5
- cmp r0, 0
- beq _080A6B68
- movs r0, 0x1
- mov r8, r0
- ldr r0, [r3]
- movs r1, 0x86
- lsls r1, 1
- adds r4, r0, r1
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A6BA8
- ldr r0, _080A6B60
- ldr r1, _080A6B64
- adds r2, r5, 0
- bl FatalError
- .align 2, 0
-_080A6B60: .4byte gUnknown_8117858
-_080A6B64: .4byte gUnknown_8117864
-_080A6B68:
- movs r0, 0
- mov r8, r0
- ldr r0, [r3]
- movs r1, 0x84
- lsls r1, 1
- adds r4, r0, r1
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A6B90
-_080A6B7C:
- movs r3, 0x1
- add r8, r3
- adds r4, 0x4
- mov r0, r8
- cmp r0, 0x1
- bgt _080A6B96
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _080A6B7C
-_080A6B90:
- mov r2, r8
- cmp r2, 0x1
- ble _080A6BA8
-_080A6B96:
- ldr r0, _080A6BA0
- ldr r1, _080A6BA4
- adds r2, r5, 0
- bl FatalError
- .align 2, 0
-_080A6BA0: .4byte gUnknown_8117888
-_080A6BA4: .4byte gUnknown_8117864
-_080A6BA8:
- mov r0, r8
- adds r0, 0x1D
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r3, r8
- lsls r0, r3, 20
- movs r1, 0xE8
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- str r0, [sp, 0x10]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r5
- cmp r0, 0
- beq _080A6BE8
- ldr r0, _080A6BE0
- ldr r1, _080A6BE4
- bl OpenFileAndGetFileDataPtr
- mov r9, r0
- ldr r7, [r0, 0x4]
- movs r0, 0xFF
- ands r0, r5
- lsls r0, 6
- adds r7, r0
- b _080A6BFE
- .align 2, 0
-_080A6BE0: .4byte gUnknown_81177EC
-_080A6BE4: .4byte gUnknown_8510000
-_080A6BE8:
- movs r0, 0xFF
- ands r0, r5
- lsls r0, 2
- ldr r1, _080A6C60
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080A6C64
- bl OpenFileAndGetFileDataPtr
- mov r9, r0
- ldr r7, [r0, 0x4]
-_080A6BFE:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r5
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- lsrs r6, r0, 31
- movs r0, 0x80
- lsls r0, 6
- ands r0, r5
- cmp r0, 0
- beq _080A6C1A
- movs r0, 0x2
- orrs r6, r0
-_080A6C1A:
- ldr r0, [sp, 0xC]
- adds r1, r6, 0
- bl sub_80997F4
- ldr r0, [sp, 0x10]
- adds r1, r7, 0
- movs r2, 0x10
- bl sub_809971C
- strh r5, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- ldr r2, [sp, 0xC]
- subs r2, 0x10
- mov r3, r10
- cmp r3, 0
- beq _080A6C42
- mov r0, r10
- adds r0, 0x68
- strh r2, [r0]
-_080A6C42:
- ldr r1, _080A6C68
- str r2, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0
- mov r2, r8
- ldr r3, [sp, 0xC]
- bl Log
- mov r0, r9
- cmp r0, 0
- beq _080A6C78
- bl CloseFile
- b _080A6C78
- .align 2, 0
-_080A6C60: .4byte gUnknown_81178F4
-_080A6C64: .4byte gUnknown_9E60000
-_080A6C68: .4byte gUnknown_8117894
-_080A6C6C:
- mov r1, r10
- cmp r1, 0
- beq _080A6C78
- mov r0, r10
- adds r0, 0x68
- strh r5, [r0]
-_080A6C78:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GroundSprite_ExtendPaletteAdd
-
- thumb_func_start GroundSprite_ExtendPaletteDelete
-GroundSprite_ExtendPaletteDelete:
- push {r4-r6,lr}
- adds r2, r0, 0
- cmp r2, 0
- beq _080A6C9E
- adds r0, 0x68
- ldrh r0, [r0]
- adds r5, r0, 0
- subs r5, 0xD
- cmp r5, 0
- blt _080A6CE6
- b _080A6CA0
-_080A6C9E:
- movs r5, 0x1
-_080A6CA0:
- ldr r0, _080A6CEC
- lsls r1, r5, 2
- movs r3, 0x84
- lsls r3, 1
- adds r1, r3
- ldr r0, [r0]
- adds r4, r0, r1
- cmp r2, 0
- beq _080A6CBA
- adds r1, r2, 0
- adds r1, 0x68
- movs r0, 0
- strh r0, [r1]
-_080A6CBA:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bgt _080A6CE6
- ldr r1, _080A6CF0
- ldrh r3, [r4]
- movs r0, 0
- adds r2, r5, 0
- bl Log
- strh r6, [r4]
- strh r6, [r4, 0x2]
- adds r0, r5, 0
- adds r0, 0x1D
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_80997F4
-_080A6CE6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6CEC: .4byte gUnknown_3001B7C
-_080A6CF0: .4byte gUnknown_81178C0
- thumb_func_end GroundSprite_ExtendPaletteDelete
-
- thumb_func_start sub_80A6CF4
-sub_80A6CF4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x68
- movs r1, 0
- mov r8, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- mov r9, r2
- movs r2, 0
- mov r10, r2
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x60]
- str r0, [sp, 0x64]
- add r4, sp, 0x58
- adds r0, r4, 0
- bl sub_809D248
- movs r7, 0
- ldr r0, _080A6D70
- ldr r3, [r0]
- movs r1, 0x80
- lsls r1, 6
- mov r12, r1
- mov r4, sp
-_080A6D2C:
- ldr r0, [r3]
- cmp r0, 0x1
- bne _080A6DB4
- ldr r2, [r3, 0x8]
- adds r0, r2, 0
- adds r0, 0x50
- ldrh r1, [r0]
- mov r0, r12
- ands r0, r1
- cmp r0, 0
- bne _080A6DB4
- ldr r0, [r2, 0x7C]
- cmp r0, 0
- blt _080A6DB4
- ldr r1, [r2, 0x74]
- cmp r1, 0
- bge _080A6D50
- adds r1, 0xFF
-_080A6D50:
- asrs r1, 8
- ldr r0, [sp, 0x58]
- subs r5, r1, r0
- ldr r1, [r2, 0x78]
- cmp r1, 0
- bge _080A6D5E
- adds r1, 0xFF
-_080A6D5E:
- asrs r1, 8
- ldr r0, [sp, 0x5C]
- subs r1, r0
- adds r6, r1, 0
- cmp r1, 0
- ble _080A6D74
- adds r0, r6, 0
- adds r0, 0x28
- b _080A6D78
- .align 2, 0
-_080A6D70: .4byte gUnknown_3001B7C
-_080A6D74:
- movs r0, 0x28
- subs r0, r6
-_080A6D78:
- str r0, [r2, 0x7C]
- cmp r5, 0
- ble _080A6D88
- ldr r0, [r2, 0x7C]
- cmp r5, r0
- ble _080A6D92
- str r5, [r2, 0x7C]
- b _080A6D92
-_080A6D88:
- negs r1, r5
- ldr r0, [r2, 0x7C]
- cmp r1, r0
- ble _080A6D92
- str r1, [r2, 0x7C]
-_080A6D92:
- adds r0, r2, 0
- adds r0, 0x48
- movs r1, 0
- ldrsh r0, [r0, r1]
- add r10, r0
- cmp r0, r9
- blt _080A6DAE
- ldr r0, [r2, 0x7C]
- ldr r1, [sp, 0x64]
- cmp r1, r0
- bge _080A6DAE
- mov r1, r8
- str r1, [sp, 0x60]
- str r0, [sp, 0x64]
-_080A6DAE:
- stm r4!, {r2}
- movs r2, 0x1
- add r8, r2
-_080A6DB4:
- adds r0, r7, 0x1
- lsls r0, 16
- asrs r7, r0, 16
- adds r3, 0xC
- cmp r7, 0x15
- ble _080A6D2C
- cmp r10, r9
- blt _080A6E54
- ldr r0, [sp, 0x60]
- cmp r0, 0
- blt _080A6DD8
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- bl sub_80A69FC
- movs r0, 0x1
- b _080A6E56
-_080A6DD8:
- mov r1, r8
- cmp r1, 0
- ble _080A6E54
-_080A6DDE:
- movs r5, 0x1
- negs r5, r5
- adds r3, r5, 0
- movs r6, 0
- mov r7, r8
- subs r7, 0x1
- mov r2, r8
- cmp r2, 0
- ble _080A6E08
- mov r2, sp
- mov r1, r8
-_080A6DF4:
- ldr r0, [r2]
- ldr r0, [r0, 0x7C]
- cmp r3, r0
- bge _080A6E00
- mov r5, r8
- adds r3, r0, 0
-_080A6E00:
- adds r2, 0x4
- subs r1, 0x1
- cmp r1, 0
- bne _080A6DF4
-_080A6E08:
- lsls r0, r5, 2
- mov r1, sp
- adds r4, r1, r0
- ldr r0, [r4]
- bl sub_80A69FC
- mov r8, r7
- adds r1, r5, 0
- cmp r1, r8
- bge _080A6E28
- adds r2, r4, 0
-_080A6E1E:
- ldr r0, [r2, 0x4]
- stm r2!, {r0}
- adds r1, 0x1
- cmp r1, r8
- blt _080A6E1E
-_080A6E28:
- movs r1, 0
- ldr r0, _080A6E40
- ldr r3, [r0]
-_080A6E2E:
- ldr r0, [r3]
- cmp r0, 0
- bne _080A6E44
- adds r6, 0x1
- cmp r6, r9
- blt _080A6E46
- movs r0, 0x1
- b _080A6E56
- .align 2, 0
-_080A6E40: .4byte gUnknown_3001B7C
-_080A6E44:
- movs r6, 0
-_080A6E46:
- adds r1, 0x1
- adds r3, 0xC
- cmp r1, 0x15
- ble _080A6E2E
- mov r2, r8
- cmp r2, 0
- bgt _080A6DDE
-_080A6E54:
- movs r0, 0
-_080A6E56:
- add sp, 0x68
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A6CF4
-
- thumb_func_start sub_80A6E68
-sub_80A6E68:
- push {lr}
- movs r0, 0
- bl ResetSprites
- movs r0, 0
- bl nullsub_10
- bl sub_800E970
- pop {r0}
- bx r0
- thumb_func_end sub_80A6E68
-
- thumb_func_start sub_80A6E80
-sub_80A6E80:
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080A6EC4
- adds r0, r4, 0
- bl sub_809D248
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A6E98
- str r0, [r4]
- str r0, [r4, 0x4]
-_080A6E98:
- bl sub_80ABA7C
- bl sub_80ACAD4
- bl sub_80AD7AC
- ldrh r1, [r4, 0x4]
- lsls r1, 16
- ldrh r0, [r4]
- orrs r0, r1
- str r0, [sp]
- mov r0, sp
- bl sub_800E90C
- bl sub_8005180
- bl nullsub_12
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6EC4: .4byte gUnknown_2039DD8
- thumb_func_end sub_80A6E80
-
- thumb_func_start sub_80A6EC8
-sub_80A6EC8:
- push {lr}
- adds r2, r0, 0
- adds r0, 0x52
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- ble _080A6EF6
- adds r0, r2, 0
- adds r0, 0x48
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bgt _080A6EE4
- adds r1, r0, 0
-_080A6EE4:
- adds r0, r2, 0
- adds r0, 0x64
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, r1
- beq _080A6EF6
- adds r0, r2, 0
- adds r0, 0x66
- strh r1, [r0]
-_080A6EF6:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6EC8
-
- thumb_func_start sub_80A6EFC
-sub_80A6EFC:
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 16
- asrs r7, r1, 16
- lsls r2, 24
- asrs r6, r2, 24
- adds r0, 0x52
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _080A6F48
- adds r5, r4, 0
- adds r5, 0x66
- movs r2, 0
- ldrsh r0, [r5, r2]
- cmp r0, 0
- blt _080A6F28
- adds r1, r4, 0
- adds r1, 0x48
- adds r2, r0, 0
- b _080A6F62
-_080A6F28:
- adds r1, r4, 0
- adds r1, 0x48
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bgt _080A6F36
- b _080A7038
-_080A6F36:
- movs r2, 0x1
- negs r2, r2
- adds r0, r4, 0
- bl sub_80A68F8
- lsls r0, 24
- cmp r0, 0
- beq _080A7038
- b _080A6F72
-_080A6F48:
- adds r5, r4, 0
- adds r5, 0x66
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _080A6F72
- adds r0, r4, 0
- bl sub_80A69FC
- adds r1, r4, 0
- adds r1, 0x48
- movs r0, 0
- ldrsh r2, [r5, r0]
-_080A6F62:
- adds r0, r4, 0
- bl sub_80A68F8
- lsls r0, 24
- cmp r0, 0
- beq _080A7038
- ldr r0, _080A6F8C
- strh r0, [r5]
-_080A6F72:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r7
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- beq _080A6F94
- ldrh r1, [r4]
- ldr r0, _080A6F90
- ands r0, r1
- strh r0, [r4]
- b _080A7038
- .align 2, 0
-_080A6F8C: .4byte 0x0000ffff
-_080A6F90: .4byte 0x0000efff
-_080A6F94:
- ldr r2, _080A6FE0
- adds r0, r4, 0
- adds r0, 0x52
- movs r5, 0
- ldrsh r1, [r0, r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, [r2]
- adds r1, r0
- mov r12, r1
- adds r1, r4, 0
- adds r1, 0x70
- movs r0, 0x1
- strb r0, [r1]
- subs r0, 0x2
- str r0, [r4, 0x7C]
- movs r1, 0xE0
- lsls r1, 3
- ands r1, r7
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _080A6FE4
- cmp r1, r0
- ble _080A6FEE
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- beq _080A6FFA
- movs r0, 0xC0
- lsls r0, 2
- cmp r1, r0
- bne _080A6FEE
- adds r0, r4, 0
- adds r0, 0x6C
- strh r3, [r0]
- b _080A7000
- .align 2, 0
-_080A6FE0: .4byte gUnknown_3001B7C
-_080A6FE4:
- adds r1, r4, 0
- adds r1, 0x6C
- movs r0, 0x80
- strh r0, [r1]
- b _080A7000
-_080A6FEE:
- adds r1, r4, 0
- adds r1, 0x6C
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- b _080A7000
-_080A6FFA:
- adds r0, r4, 0
- adds r0, 0x6C
- strh r1, [r0]
-_080A7000:
- adds r0, r4, 0
- adds r0, 0x6E
- movs r1, 0
- strh r1, [r0]
- ldr r5, [r4, 0x4C]
- movs r0, 0xFF
- ands r0, r7
- adds r2, r6, 0
- cmp r6, 0
- bge _080A7016
- adds r2, r6, 0x7
-_080A7016:
- asrs r2, 3
- adds r2, r0, r2
- movs r3, 0x7
- ands r3, r6
- mov r6, r12
- ldr r0, [r6, 0x4]
- str r0, [sp]
- str r1, [sp, 0x4]
- lsls r0, r7, 16
- lsrs r0, 27
- movs r1, 0x1
- ands r0, r1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80053D0
-_080A7038:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6EFC
-
- thumb_func_start sub_80A7040
-sub_80A7040:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r3, 0
- lsls r1, 16
- asrs r3, r1, 16
- lsls r2, 24
- asrs r2, 24
- adds r0, 0x50
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080A708C
- cmp r3, 0
- beq _080A7068
- movs r0, 0xE0
- lsls r0, 1
- cmp r3, r0
- bne _080A7080
-_080A7068:
- adds r0, r4, 0
- bl sub_80A671C
- lsls r0, 24
- cmp r0, 0
- beq _080A708C
- adds r1, r4, 0
- adds r1, 0x58
- movs r0, 0xE0
- lsls r0, 1
- strh r0, [r1]
- b _080A708C
-_080A7080:
- adds r0, r4, 0
- adds r0, 0x58
- strh r3, [r0]
- adds r0, 0x2
- strb r2, [r0]
- str r5, [r4, 0x60]
-_080A708C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7040
-
- thumb_func_start sub_80A7094
-sub_80A7094:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- adds r7, r0, 0
- mov r10, r1
- mov r8, r2
- str r3, [sp, 0x3C]
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [r7, 0x74]
- str r1, [r7, 0x78]
- movs r6, 0
- str r6, [r7, 0x7C]
- adds r0, r7, 0
- adds r0, 0x50
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080A7172
- adds r4, r7, 0
- adds r4, 0x58
- movs r0, 0
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _080A7172
- movs r0, 0xE0
- lsls r0, 1
- cmp r1, r0
- bne _080A70EC
- ldr r0, [r7, 0x5C]
- movs r5, 0x1
- negs r5, r5
- cmp r0, r5
- beq _080A70E8
- bl sub_800DC14
- str r5, [r7, 0x5C]
-_080A70E8:
- strh r6, [r4]
- b _080A7172
-_080A70EC:
- ldr r0, [r7, 0x5C]
- movs r1, 0x1
- negs r1, r1
- mov r9, r1
- cmp r0, r9
- bne _080A7160
- add r1, sp, 0x8
- ldr r0, _080A715C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_800EE5C
- bl sub_800EF64
- add r2, sp, 0x14
- movs r3, 0
- ldrsh r0, [r4, r3]
- str r0, [sp, 0x14]
- str r6, [r2, 0x4]
- adds r0, r7, 0
- adds r0, 0x5A
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- str r0, [r2, 0x8]
- mov r4, r8
- ldr r0, [r4]
- cmp r0, 0
- bge _080A712C
- adds r0, 0xFF
-_080A712C:
- asrs r0, 8
- strh r0, [r2, 0xC]
- mov r5, r8
- ldr r0, [r5, 0x4]
- cmp r0, 0
- bge _080A713A
- adds r0, 0xFF
-_080A713A:
- asrs r0, 8
- strh r0, [r2, 0xE]
- strh r6, [r2, 0x10]
- strh r6, [r2, 0x12]
- mov r0, r9
- str r0, [r2, 0x14]
- str r6, [r2, 0x18]
- add r1, sp, 0x30
- add r0, sp, 0x8
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- adds r0, r2, 0
- bl sub_800E890
- str r0, [r7, 0x5C]
- b _080A7172
- .align 2, 0
-_080A715C: .4byte gUnknown_81178E0
-_080A7160:
- bl sub_800E9E4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A7172
- mov r1, r9
- str r1, [r7, 0x5C]
- strh r0, [r4]
-_080A7172:
- adds r0, r7, 0
- adds r0, 0x52
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- blt _080A7222
- adds r0, r7, 0
- adds r0, 0x50
- ldrh r4, [r0]
- movs r0, 0x40
- ands r0, r4
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0
- bne _080A7222
- mov r3, r8
- ldr r1, [r3]
- cmp r1, 0
- bge _080A719C
- adds r1, 0xFF
-_080A719C:
- asrs r1, 8
- ldr r2, _080A7228
- ldr r0, [r2]
- subs r5, r1, r0
- mov r1, r8
- ldr r0, [r1, 0x4]
- cmp r0, 0
- bge _080A71AE
- adds r0, 0xFF
-_080A71AE:
- asrs r1, r0, 8
- ldr r0, [r2, 0x4]
- subs r6, r1, r0
- ldr r3, [sp, 0x3C]
- cmp r3, 0
- bge _080A71BC
- adds r3, 0xFF
-_080A71BC:
- asrs r0, r3, 8
- subs r0, r6, r0
- mov r8, r0
- adds r1, r5, 0
- adds r1, 0x40
- ldr r0, _080A722C
- cmp r1, r0
- bhi _080A7274
- movs r0, 0x10
- negs r0, r0
- cmp r6, r0
- blt _080A7274
- cmp r6, 0xCF
- bgt _080A7274
- cmp r8, r0
- blt _080A7274
- mov r2, r8
- cmp r2, 0xCF
- bgt _080A7274
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _080A7234
- ldr r0, _080A7230
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7234
- adds r0, r7, 0
- movs r1, 0
- bl sub_80A72B8
- movs r1, 0x98
- lsls r1, 1
- adds r0, r7, 0
- adds r0, 0x68
- ldrh r0, [r0]
- str r0, [sp]
- adds r0, r7, 0
- adds r0, 0x3C
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r2, 0xD0
- movs r3, 0
- bl sub_800558C
- adds r0, r7, 0
- adds r0, 0x70
- mov r3, r9
- strb r3, [r0]
-_080A7222:
- movs r0, 0
- b _080A72A6
- .align 2, 0
-_080A7228: .4byte gUnknown_2039DD8
-_080A722C: .4byte 0x0000016f
-_080A7230: .4byte gUnknown_2039DCC
-_080A7234:
- adds r4, r7, 0
- adds r4, 0x70
- ldrb r1, [r4]
- adds r0, r7, 0
- bl sub_80A72B8
- adds r0, r7, 0
- adds r0, 0x6A
- movs r1, 0
- ldrsh r3, [r0, r1]
- adds r3, r6
- subs r0, 0x2
- ldrh r0, [r0]
- str r0, [sp]
- adds r0, r7, 0
- adds r0, 0x3C
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r1, r5, 0
- mov r2, r8
- bl sub_800558C
- movs r0, 0
- strb r0, [r4]
- mov r2, r10
- cmp r2, 0
- beq _080A7270
- mov r3, r10
- str r5, [r3]
- str r6, [r3, 0x4]
-_080A7270:
- movs r0, 0x1
- b _080A72A6
-_080A7274:
- adds r4, r7, 0
- adds r4, 0x70
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A7222
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80A72B8
- movs r1, 0x98
- lsls r1, 1
- adds r0, r7, 0
- adds r0, 0x68
- ldrh r0, [r0]
- str r0, [sp]
- adds r0, r7, 0
- adds r0, 0x3C
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r2, 0xD0
- movs r3, 0
- bl sub_800558C
- movs r0, 0
- strb r0, [r4]
-_080A72A6:
- 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_80A7094
-
- thumb_func_start sub_80A72B8
-sub_80A72B8:
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- cmp r1, 0
- beq _080A72D2
- adds r1, r6, 0
- adds r1, 0x6E
- movs r0, 0
- strh r0, [r1]
- adds r0, r6, 0
- bl sub_80054BC
- b _080A7304
-_080A72D2:
- adds r5, r6, 0
- adds r5, 0x6E
- adds r0, r6, 0
- adds r0, 0x6C
- ldrh r0, [r0]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080A7304
- ldr r0, _080A730C
- adds r7, r0, 0
-_080A72EE:
- adds r4, r5, 0
- ldrh r1, [r5]
- adds r0, r7, r1
- strh r0, [r5]
- adds r0, r6, 0
- bl sub_80054BC
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- bgt _080A72EE
-_080A7304:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A730C: .4byte 0xffffff00
- thumb_func_end sub_80A72B8
-
- thumb_func_start sub_80A7310
-sub_80A7310:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- mov r12, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r0, 0x50
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080A73DC
- mov r0, r12
- ldr r0, [r0, 0x5C]
- mov r8, r0
- movs r0, 0x1
- negs r0, r0
- cmp r8, r0
- beq _080A73DC
- ldr r0, [r4]
- cmp r0, 0
- bge _080A7344
- adds r0, 0xFF
-_080A7344:
- lsls r0, 8
- lsrs r0, 16
- ldr r1, _080A73D0
- mov r9, r1
- ldr r2, [sp, 0x4]
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x4]
- ldr r0, [r4, 0x4]
- cmp r0, 0
- bge _080A735C
- adds r0, 0xFF
-_080A735C:
- lsls r0, 8
- lsrs r0, 16
- lsls r0, 16
- ldr r6, _080A73D4
- adds r4, r6, 0
- ands r4, r2
- orrs r4, r0
- str r4, [sp, 0x4]
- asrs r2, r4, 16
- ldr r0, _080A73D8
- ldr r0, [r0, 0x4]
- subs r0, r2, r0
- mov r1, r12
- adds r1, 0x6A
- movs r7, 0
- ldrsh r1, [r1, r7]
- adds r0, r1
- adds r7, r0, 0x2
- cmp r3, 0
- bge _080A7386
- adds r3, 0xFF
-_080A7386:
- asrs r0, r3, 8
- subs r0, r2, r0
- lsls r0, 16
- adds r2, r6, 0
- ands r2, r4
- orrs r2, r0
- str r2, [sp, 0x4]
- cmp r5, 0
- beq _080A73B8
- ldr r1, [r5]
- add r0, sp, 0x4
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- asrs r2, r0, 16
- ldr r1, [r5, 0x4]
- adds r1, r2
- lsls r1, 16
- ands r0, r6
- orrs r0, r1
- str r0, [sp, 0x4]
-_080A73B8:
- mov r0, r12
- adds r0, 0x3C
- str r0, [sp]
- mov r0, r8
- add r1, sp, 0x4
- movs r2, 0
- adds r3, r7, 0
- bl sub_800E8AC
- movs r0, 0x1
- b _080A73DE
- .align 2, 0
-_080A73D0: .4byte 0xffff0000
-_080A73D4: .4byte 0x0000ffff
-_080A73D8: .4byte gUnknown_2039DD8
-_080A73DC:
- movs r0, 0
-_080A73DE:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A7310
-
- thumb_func_start sub_80A73EC
-sub_80A73EC:
- push {lr}
- bl CopySpritesToOam
- bl nullsub_13
- bl sub_8005304
- bl nullsub_14
- ldr r1, _080A7420
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r1, _080A7424
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _080A741A
- movs r0, 0
- strh r0, [r1]
-_080A741A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A7420: .4byte gUnknown_2039DCC
-_080A7424: .4byte gUnknown_2039DCE
- thumb_func_end sub_80A73EC
-
- thumb_func_start sub_80A7428
-sub_80A7428:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r6, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r7, r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r4, r2, 0
- ldr r1, _080A7480
- mov r0, sp
- bl sprintf
- ldr r1, _080A7484
- mov r0, sp
- bl OpenFile
- adds r5, r0, 0
- movs r1, 0
- bl GetFileDataPtr
- adds r0, r4, 0
- bl sub_808DACC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A7488
- ldr r2, [sp, 0xC]
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0xC]
- movs r0, 0xD3
- lsls r0, 1
- cmp r4, r0
- bne _080A7490
- ldr r0, _080A748C
- ands r0, r2
- movs r1, 0x91
- lsls r1, 17
- orrs r0, r1
- str r0, [sp, 0xC]
- b _080A74AC
- .align 2, 0
-_080A7480: .4byte gUnknown_8117EDC
-_080A7484: .4byte gUnknown_8510000
-_080A7488: .4byte 0xffff0000
-_080A748C: .4byte 0x0000ffff
-_080A7490:
- movs r1, 0
- cmp r7, 0x47
- bne _080A7498
- movs r1, 0x1
-_080A7498:
- adds r0, r4, 0
- bl sub_808DD68
- lsls r0, 24
- lsrs r0, 8
- ldr r2, _080A74E0
- ldr r1, [sp, 0xC]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0xC]
-_080A74AC:
- ldr r0, [r5, 0x4]
- add r1, sp, 0xC
- str r0, [r1, 0x4]
- adds r0, r6, 0
- mov r2, r8
- bl sub_80A67CC
- str r5, [r6, 0x54]
- adds r0, r6, 0
- adds r0, 0x52
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- blt _080A74D4
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r6, 0
- movs r2, 0
- bl sub_80A6EFC
-_080A74D4:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A74E0: .4byte 0x0000ffff
- thumb_func_end sub_80A7428
-
- thumb_func_start sub_80A74E4
-sub_80A74E4:
- push {lr}
- bl sub_80A68A0
- pop {r0}
- bx r0
- thumb_func_end sub_80A74E4
-
- thumb_func_start sub_80A74F0
-sub_80A74F0:
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- asrs r4, r1, 16
- lsls r2, 24
- asrs r5, r2, 24
- cmp r3, 0
- bge _080A7514
- movs r0, 0xE0
- lsls r0, 1
- cmp r4, r0
- beq _080A7512
- adds r0, r4, 0
- bl sub_800E700
- adds r3, r0, 0
- b _080A7514
-_080A7512:
- movs r3, 0
-_080A7514:
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A7040
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A74F0
-
- thumb_func_start sub_80A7524
-sub_80A7524:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- adds r5, r0, 0
- adds r6, r2, 0
- adds r7, r3, 0
- lsls r1, 16
- asrs r1, 16
- mov r8, r1
- mov r1, sp
- bl sub_80A7094
- lsls r0, 24
- cmp r0, 0
- beq _080A75C0
- ldr r1, [r5, 0x5C]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A758C
- ldr r2, [r5, 0x60]
- cmp r2, 0x3
- bgt _080A7580
- cmp r2, 0
- blt _080A7580
- add r4, sp, 0x8
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_800569C
- movs r1, 0
- ldrsh r0, [r4, r1]
- str r0, [sp, 0xC]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- add r2, sp, 0xC
- str r0, [r2, 0x4]
- adds r0, r5, 0
- adds r1, r6, 0
- adds r3, r7, 0
- bl sub_80A7310
- b _080A758C
-_080A7580:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0
- adds r3, r7, 0
- bl sub_80A7310
-_080A758C:
- adds r0, r5, 0
- adds r0, 0x50
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080A75B4
- ldr r0, [sp]
- lsls r0, 16
- ldr r1, [sp, 0x4]
- lsls r1, 16
- lsrs r0, 16
- orrs r0, r1
- str r0, [sp, 0x14]
- add r1, sp, 0x14
- mov r0, r8
- adds r2, r5, 0
- bl sub_808E668
-_080A75B4:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0
- adds r3, r7, 0
- bl sub_80A7310
-_080A75C0:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7524
-
- thumb_func_start sub_80A75CC
-sub_80A75CC:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r3, 0
- lsls r2, 16
- asrs r2, 13
- ldr r0, _080A7618
- adds r2, r0
- movs r5, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _080A761C
- ldr r1, [sp]
- ands r1, r3
- orrs r1, r0
- str r1, [sp]
- ldrh r3, [r2, 0x2]
- lsls r3, 16
- ldr r0, _080A7620
- ands r0, r1
- orrs r0, r3
- str r0, [sp]
- ldr r0, [r2, 0x4]
- cmp r0, 0
- beq _080A7628
- ldr r1, _080A7624
- bl OpenFile
- adds r5, r0, 0
- movs r1, 0
- bl GetFileDataPtr
- ldr r0, [r5, 0x4]
- str r0, [sp, 0x4]
- b _080A762A
- .align 2, 0
-_080A7618: .4byte gUnknown_8117AE4
-_080A761C: .4byte 0xffff0000
-_080A7620: .4byte 0x0000ffff
-_080A7624: .4byte gUnknown_9E60000
-_080A7628:
- str r5, [sp, 0x4]
-_080A762A:
- adds r0, r4, 0
- mov r1, sp
- adds r2, r6, 0
- bl sub_80A67CC
- str r5, [r4, 0x54]
- adds r0, r4, 0
- adds r0, 0x52
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- blt _080A764E
- movs r1, 0x80
- lsls r1, 4
- adds r0, r4, 0
- movs r2, 0
- bl sub_80A6EFC
-_080A764E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A75CC
-
- thumb_func_start sub_80A7658
-sub_80A7658:
- push {lr}
- bl sub_80A68A0
- pop {r0}
- bx r0
- thumb_func_end sub_80A7658
-
- thumb_func_start sub_80A7664
-sub_80A7664:
- 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_80A7664
-
- thumb_func_start sub_80A7688
-sub_80A7688:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r3, 0
- lsls r2, 16
- asrs r2, 13
- ldr r0, _080A76D4
- adds r2, r0
- movs r5, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _080A76D8
- ldr r1, [sp]
- ands r1, r3
- orrs r1, r0
- str r1, [sp]
- ldrh r3, [r2, 0x2]
- lsls r3, 16
- ldr r0, _080A76DC
- ands r0, r1
- orrs r0, r3
- str r0, [sp]
- ldr r0, [r2, 0x4]
- cmp r0, 0
- beq _080A76E4
- ldr r1, _080A76E0
- bl OpenFile
- adds r5, r0, 0
- movs r1, 0
- bl GetFileDataPtr
- ldr r0, [r5, 0x4]
- str r0, [sp, 0x4]
- b _080A76E6
- .align 2, 0
-_080A76D4: .4byte gUnknown_8117E8C
-_080A76D8: .4byte 0xffff0000
-_080A76DC: .4byte 0x0000ffff
-_080A76E0: .4byte gUnknown_9E60000
-_080A76E4:
- str r5, [sp, 0x4]
-_080A76E6:
- adds r0, r4, 0
- mov r1, sp
- adds r2, r6, 0
- bl sub_80A67CC
- str r5, [r4, 0x54]
- adds r0, r4, 0
- adds r0, 0x52
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- blt _080A770A
- movs r1, 0x80
- lsls r1, 4
- adds r0, r4, 0
- movs r2, 0
- bl sub_80A6EFC
-_080A770A:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- 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 @ Don't pad with nop
diff --git a/asm/code_80A26CC.s b/asm/code_80A26CC.s
new file mode 100644
index 0000000..83be054
--- /dev/null
+++ b/asm/code_80A26CC.s
@@ -0,0 +1,24958 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80A26CC
+sub_80A26CC:
+ lsls r0, 16
+ movs r1, 0xDC
+ lsls r1, 14
+ adds r0, r1
+ asrs r0, 16
+ bx lr
+ thumb_func_end sub_80A26CC
+
+ thumb_func_start sub_80A26D8
+sub_80A26D8:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_080A26E0:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2608
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ beq _080A26FC
+ ldrb r0, [r1, 0xC]
+ cmp r0, r6
+ bne _080A26FC
+ adds r0, r4, 0
+ b _080A2706
+_080A26FC:
+ adds r5, 0x1
+ cmp r5, 0x52
+ ble _080A26E0
+ movs r0, 0x1
+ negs r0, r0
+_080A2706:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A26D8
+
+ thumb_func_start sub_80A270C
+sub_80A270C:
+ push {lr}
+ lsls r0, 16
+ ldr r1, _080A2724
+ asrs r0, 15
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80A2608
+ ldrb r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2724: .4byte gUnknown_8116F9A
+ thumb_func_end sub_80A270C
+
+ thumb_func_start sub_80A2728
+sub_80A2728:
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xDC
+ lsls r1, 14
+ adds r0, r1
+ asrs r0, 16
+ bl sub_80A2608
+ ldrb r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2728
+
+ thumb_func_start sub_80A2740
+sub_80A2740:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2608
+ ldrb r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2740
+
+ thumb_func_start sub_80A2750
+sub_80A2750:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r2, r1, 0
+ cmp r1, 0x50
+ bne _080A2760
+ movs r0, 0x3
+ b _080A27C4
+_080A2760:
+ cmp r1, 0x51
+ beq _080A27BE
+ cmp r1, 0x52
+ beq _080A2780
+ adds r0, r1, 0
+ subs r0, 0x28
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bls _080A27BE
+ adds r0, r1, 0
+ subs r0, 0x37
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bhi _080A2784
+_080A2780:
+ movs r0, 0x4
+ b _080A27C4
+_080A2784:
+ adds r0, r2, 0
+ bl sub_80A2608
+ adds r4, r0, 0
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A27C2
+ movs r0, 0x5
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A27C2
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ bl sub_80973F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A27C2
+ movs r0, 0x1
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A27C2
+_080A27BE:
+ movs r0, 0x2
+ b _080A27C4
+_080A27C2:
+ movs r0, 0x1
+_080A27C4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2750
+
+ thumb_func_start sub_80A27CC
+sub_80A27CC:
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r5, r4, 0
+ adds r0, r4, 0
+ bl sub_80A2620
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A281A
+ movs r0, 0x5
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A281A
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2816
+ movs r0, 0x1
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A281A
+ adds r0, r5, 0
+ bl sub_80973F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A281A
+_080A2816:
+ movs r0, 0x1
+ b _080A281C
+_080A281A:
+ movs r0, 0
+_080A281C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A27CC
+
+ thumb_func_start sub_80A2824
+sub_80A2824:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x5
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A28AC
+ movs r0, 0x1
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2880
+ movs r5, 0
+_080A2844:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ beq _080A2874
+ ldrb r0, [r1, 0xC]
+ cmp r0, r6
+ bne _080A2874
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A287C
+ adds r0, r4, 0
+ bl sub_80973F4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A287C
+_080A2874:
+ adds r5, 0x1
+ cmp r5, 0x2D
+ ble _080A2844
+ b _080A28AC
+_080A287C:
+ movs r0, 0x1
+ b _080A28AE
+_080A2880:
+ movs r5, 0
+_080A2882:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ beq _080A28A6
+ ldrb r0, [r1, 0xC]
+ cmp r0, r6
+ bne _080A28A6
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A287C
+_080A28A6:
+ adds r5, 0x1
+ cmp r5, 0x2D
+ ble _080A2882
+_080A28AC:
+ movs r0, 0
+_080A28AE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2824
+
+ thumb_func_start sub_80A28B4
+sub_80A28B4:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A28E8
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A28E4
+ adds r0, r4, 0
+ bl sub_80973F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A28E8
+_080A28E4:
+ movs r0, 0x1
+ b _080A28EA
+_080A28E8:
+ movs r0, 0
+_080A28EA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A28B4
+
+ thumb_func_start sub_80A28F0
+sub_80A28F0:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_080A28F8:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ beq _080A292C
+ ldrb r0, [r1, 0xC]
+ cmp r0, r6
+ bne _080A292C
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2928
+ adds r0, r4, 0
+ bl sub_80973F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A292C
+_080A2928:
+ movs r0, 0x1
+ b _080A2934
+_080A292C:
+ adds r5, 0x1
+ cmp r5, 0x2D
+ ble _080A28F8
+ movs r0, 0
+_080A2934:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A28F0
+
+ thumb_func_start sub_80A293C
+sub_80A293C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x40
+ mov r8, r0
+ movs r7, 0
+ movs r1, 0
+ mov r0, sp
+ adds r0, 0x3E
+_080A294E:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, sp
+ bge _080A294E
+ movs r5, 0
+_080A2958:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ adds r6, r0, 0
+ ldrb r0, [r6, 0x11]
+ cmp r0, 0
+ beq _080A2980
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2980
+ ldrb r0, [r6, 0xC]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080A2980:
+ adds r5, 0x1
+ cmp r5, 0x2D
+ ble _080A2958
+ movs r5, 0
+_080A2988:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A299A
+ mov r2, r8
+ adds r0, r2, r7
+ strb r5, [r0]
+ adds r7, 0x1
+_080A299A:
+ adds r5, 0x1
+ cmp r5, 0x3E
+ ble _080A2988
+ adds r0, r7, 0
+ add sp, 0x40
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A293C
+
+ thumb_func_start sub_80A29B0
+sub_80A29B0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x48
+ mov r8, r0
+ movs r7, 0
+ movs r0, 0x2B
+ add r0, sp
+ mov r9, r0
+ add r1, sp, 0x2C
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x2D
+ str r2, [sp, 0x40]
+ mov r0, sp
+ adds r0, 0x2E
+ str r0, [sp, 0x44]
+ movs r1, 0
+ adds r0, 0x10
+_080A29DA:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, sp
+ bge _080A29DA
+ movs r0, 0x1
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2A1E
+ movs r5, 0
+_080A29F0:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ adds r6, r0, 0
+ ldrb r0, [r6, 0x11]
+ cmp r0, 0
+ beq _080A2A18
+ adds r0, r4, 0
+ bl sub_80973F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2A18
+ ldrb r0, [r6, 0xC]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080A2A18:
+ adds r5, 0x1
+ cmp r5, 0x2D
+ ble _080A29F0
+_080A2A1E:
+ movs r0, 0
+ mov r1, r9
+ strb r0, [r1]
+ mov r2, r10
+ strb r0, [r2]
+ ldr r1, [sp, 0x40]
+ strb r0, [r1]
+ ldr r2, [sp, 0x44]
+ strb r0, [r2]
+ movs r5, 0
+_080A2A32:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A2A44
+ mov r2, r8
+ adds r0, r2, r7
+ strb r5, [r0]
+ adds r7, 0x1
+_080A2A44:
+ adds r5, 0x1
+ cmp r5, 0x3E
+ ble _080A2A32
+ adds r0, r7, 0
+ add sp, 0x48
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A29B0
+
+ thumb_func_start sub_80A2A5C
+sub_80A2A5C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x40
+ mov r8, r0
+ movs r7, 0
+ movs r1, 0
+ mov r0, sp
+ adds r0, 0x3E
+_080A2A6E:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, sp
+ bge _080A2A6E
+ movs r0, 0x1
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2AC0
+ movs r6, 0
+_080A2A84:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0
+ beq _080A2AB8
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A2AAE
+ adds r0, r4, 0
+ bl sub_80973F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2AB8
+_080A2AAE:
+ ldrb r0, [r5, 0xC]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080A2AB8:
+ adds r6, 0x1
+ cmp r6, 0x2D
+ ble _080A2A84
+ b _080A2AF0
+_080A2AC0:
+ movs r6, 0
+_080A2AC2:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2620
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0
+ beq _080A2AEA
+ adds r0, r4, 0
+ bl sub_8097384
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2AEA
+ ldrb r0, [r5, 0xC]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080A2AEA:
+ adds r6, 0x1
+ cmp r6, 0x2D
+ ble _080A2AC2
+_080A2AF0:
+ movs r6, 0
+_080A2AF2:
+ mov r1, sp
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A2B04
+ mov r2, r8
+ adds r0, r2, r7
+ strb r6, [r0]
+ adds r7, 0x1
+_080A2B04:
+ adds r6, 0x1
+ cmp r6, 0x3E
+ ble _080A2AF2
+ adds r0, r7, 0
+ add sp, 0x40
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2A5C
+
+ thumb_func_start sub_80A2B18
+sub_80A2B18:
+ lsls r0, 16
+ ldr r1, _080A2B24
+ asrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080A2B24: .4byte gUnknown_8117000
+ thumb_func_end sub_80A2B18
+
+ thumb_func_start sub_80A2B28
+sub_80A2B28:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x11
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2B18
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2B28
+
+ thumb_func_start sub_80A2B40
+sub_80A2B40:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r2, _080A2BFC
+ adds r0, r5, r2
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldr r3, _080A2C00
+ adds r0, r5, r3
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ movs r1, 0x6
+ bl MemoryAlloc
+ movs r2, 0xA9
+ lsls r2, 3
+ adds r1, r5, r2
+ str r0, [r1]
+ movs r6, 0
+ movs r3, 0xA7
+ lsls r3, 3
+ adds r0, r5, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r6, r0
+ bge _080A2BC0
+_080A2B7C:
+ lsls r4, r6, 2
+ ldr r0, _080A2C04
+ adds r2, r5, r0
+ adds r2, r4
+ ldr r1, _080A2C08
+ adds r0, r5, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r1, r6, 0x2
+ adds r0, r1
+ lsls r0, 11
+ ldr r1, _080A2C0C
+ adds r0, r1
+ str r0, [r2]
+ ldr r1, _080A2C10
+ adds r0, r5, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 7
+ movs r1, 0x6
+ bl MemoryAlloc
+ ldr r3, _080A2C14
+ adds r1, r5, r3
+ adds r1, r4
+ str r0, [r1]
+ adds r6, 0x1
+ movs r4, 0xA7
+ lsls r4, 3
+ adds r0, r5, r4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r6, r0
+ blt _080A2B7C
+_080A2BC0:
+ cmp r6, 0x1
+ bgt _080A2BD8
+ movs r1, 0
+ lsls r0, r6, 2
+ ldr r2, _080A2C14
+ adds r0, r2
+ adds r0, r5
+_080A2BCE:
+ str r1, [r0, 0x8]
+ stm r0!, {r1}
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _080A2BCE
+_080A2BD8:
+ movs r3, 0xA8
+ lsls r3, 3
+ adds r0, r5, r3
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080A2C20
+ ldr r4, _080A2C18
+ adds r0, r5, r4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ movs r1, 0x6
+ bl MemoryAlloc
+ ldr r2, _080A2C1C
+ adds r1, r5, r2
+ str r0, [r1]
+ b _080A2C26
+ .align 2, 0
+_080A2BFC: .4byte 0x0000052c
+_080A2C00: .4byte 0x00000534
+_080A2C04: .4byte 0x00000554
+_080A2C08: .4byte 0x00000536
+_080A2C0C: .4byte gUnknown_202B038
+_080A2C10: .4byte 0x0000053c
+_080A2C14: .4byte 0x0000054c
+_080A2C18: .4byte 0x0000053a
+_080A2C1C: .4byte 0x00000544
+_080A2C20:
+ ldr r3, _080A2CF0
+ adds r0, r5, r3
+ str r1, [r0]
+_080A2C26:
+ movs r4, 0x86
+ lsls r4, 3
+ adds r0, r5, r4
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _080A2CF4
+ adds r0, r5, r2
+ str r1, [r0]
+ movs r3, 0x87
+ lsls r3, 3
+ adds r0, r5, r3
+ str r1, [r0]
+ adds r4, 0xC
+ adds r0, r5, r4
+ str r1, [r0]
+ adds r2, 0xC
+ adds r0, r5, r2
+ str r1, [r0]
+ adds r3, 0xF2
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r4, 0x8
+ adds r2, r5, r4
+ ldr r0, _080A2CF8
+ strh r0, [r2]
+ movs r2, 0x8D
+ lsls r2, 3
+ adds r0, r5, r2
+ str r1, [r0]
+ subs r3, 0xE2
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r4, 0x5
+ adds r0, r5, r4
+ strb r1, [r0]
+ subs r2, 0x1E
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r3, 0x3
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r4, 0x3
+ adds r0, r5, r4
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r3, 0x21
+ adds r0, r5, r3
+ str r1, [r0]
+ adds r4, 0x24
+ adds r0, r5, r4
+ strb r1, [r0]
+ adds r3, 0x5
+ adds r0, r5, r3
+ strb r1, [r0]
+ movs r0, 0
+ movs r1, 0xD
+_080A2C9C:
+ strh r0, [r2]
+ strh r0, [r2, 0x2]
+ str r0, [r2, 0x8]
+ str r0, [r2, 0x4]
+ subs r1, 0x1
+ adds r2, 0x10
+ cmp r1, 0
+ bge _080A2C9C
+ movs r1, 0
+ movs r4, 0xF8
+ lsls r4, 2
+ adds r0, r5, r4
+ movs r2, 0x1
+_080A2CB6:
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ str r1, [r0, 0x14]
+ str r1, [r0, 0x10]
+ str r1, [r0, 0x1C]
+ str r1, [r0, 0x18]
+ str r1, [r0, 0x20]
+ str r1, [r0, 0x24]
+ adds r0, 0x28
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A2CB6
+ movs r4, 0
+_080A2CD8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ ldr r2, _080A2CFC
+ bl sub_80A456C
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _080A2CD8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2CF0: .4byte 0x00000544
+_080A2CF4: .4byte 0x00000434
+_080A2CF8: .4byte 0x0000ffff
+_080A2CFC: .4byte gUnknown_81172B8
+ thumb_func_end sub_80A2B40
+
+ thumb_func_start sub_80A2D00
+sub_80A2D00:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ bl sub_80A2DD4
+ ldr r0, _080A2D5C
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2D1A
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080A2D1A:
+ movs r1, 0xA9
+ lsls r1, 3
+ adds r4, r6, r1
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ movs r5, 0
+ movs r7, 0
+_080A2D2E:
+ lsls r2, r5, 2
+ ldr r1, _080A2D60
+ adds r0, r6, r1
+ adds r1, r0, r2
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _080A2D3E
+ str r7, [r1]
+_080A2D3E:
+ ldr r1, _080A2D64
+ adds r0, r6, r1
+ adds r4, r0, r2
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2D50
+ bl MemoryFree
+ str r7, [r4]
+_080A2D50:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _080A2D2E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2D5C: .4byte 0x00000544
+_080A2D60: .4byte 0x00000554
+_080A2D64: .4byte 0x0000054c
+ thumb_func_end sub_80A2D00
+
+ thumb_func_start sub_80A2D68
+sub_80A2D68:
+ push {r4,lr}
+ ldr r1, _080A2D84
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2D7C
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080A2D7C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2D84: .4byte 0x00000544
+ thumb_func_end sub_80A2D68
+
+ thumb_func_start sub_80A2D88
+sub_80A2D88:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r0, 0xA8
+ lsls r0, 3
+ adds r7, r6, r0
+ ldr r0, [r7]
+ cmp r0, 0
+ beq _080A2DC6
+ movs r1, 0x89
+ lsls r1, 3
+ adds r5, r6, r1
+ ldr r2, _080A2DCC
+ adds r4, r6, r2
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ lsls r0, 8
+ movs r1, 0x6
+ bl MemoryAlloc
+ ldr r2, _080A2DD0
+ adds r1, r6, r2
+ str r0, [r1]
+ subs r2, 0xDC
+ adds r1, r6, r2
+ ldr r1, [r1]
+ movs r2, 0
+ ldrsh r3, [r4, r2]
+ ldr r4, [r7]
+ adds r2, r5, 0
+ bl _call_via_r4
+_080A2DC6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2DCC: .4byte 0x0000053a
+_080A2DD0: .4byte 0x00000544
+ thumb_func_end sub_80A2D88
+
+ thumb_func_start sub_80A2DD4
+sub_80A2DD4:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r0, 0xFA
+ lsls r0, 2
+ adds r4, r6, r0
+ movs r5, 0x1
+_080A2DE0:
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2DEE
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4]
+_080A2DEE:
+ adds r4, 0x28
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A2DE0
+ ldr r0, _080A2E5C
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2E08
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4]
+_080A2E08:
+ movs r0, 0x88
+ lsls r0, 3
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2E1C
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4]
+_080A2E1C:
+ movs r0, 0x86
+ lsls r0, 3
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2E30
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4]
+_080A2E30:
+ ldr r0, _080A2E60
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2E42
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4]
+_080A2E42:
+ movs r0, 0x87
+ lsls r0, 3
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A2E56
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4]
+_080A2E56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2E5C: .4byte 0x0000043c
+_080A2E60: .4byte 0x00000434
+ thumb_func_end sub_80A2DD4
+
+ thumb_func_start sub_80A2E64
+sub_80A2E64:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ bl sub_80A2DD4
+ ldr r0, _080A2FA4
+ adds r1, r7, r0
+ ldr r0, _080A2FA8
+ strh r0, [r1]
+ movs r1, 0xA5
+ lsls r1, 3
+ adds r0, r7, r1
+ movs r1, 0
+ movs r2, 0
+ strh r2, [r0]
+ movs r3, 0x89
+ lsls r3, 3
+ adds r0, r7, r3
+ strb r1, [r0]
+ ldr r4, _080A2FAC
+ adds r0, r7, r4
+ strb r1, [r0]
+ adds r3, 0x2
+ adds r0, r7, r3
+ strb r1, [r0]
+ adds r4, 0x2
+ adds r0, r7, r4
+ strb r1, [r0]
+ adds r3, 0x2
+ adds r0, r7, r3
+ strb r1, [r0]
+ adds r4, 0x2
+ adds r0, r7, r4
+ strb r1, [r0]
+ adds r3, r7, 0
+ adds r4, 0x1F
+ adds r0, r7, r4
+ str r2, [r0]
+ movs r2, 0x8E
+ lsls r2, 3
+ adds r0, r7, r2
+ strb r1, [r0]
+ adds r4, 0x5
+ adds r0, r7, r4
+ strb r1, [r0]
+ movs r0, 0
+ movs r1, 0xD
+_080A2ECA:
+ strh r0, [r3]
+ strh r0, [r3, 0x2]
+ str r0, [r3, 0x8]
+ str r0, [r3, 0x4]
+ subs r1, 0x1
+ adds r3, 0x10
+ cmp r1, 0
+ bge _080A2ECA
+ movs r1, 0
+ movs r2, 0xF8
+ lsls r2, 2
+ adds r0, r7, r2
+ movs r2, 0x1
+_080A2EE4:
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ str r1, [r0, 0x14]
+ str r1, [r0, 0x10]
+ str r1, [r0, 0x1C]
+ str r1, [r0, 0x18]
+ str r1, [r0, 0x20]
+ str r1, [r0, 0x24]
+ adds r0, 0x28
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A2EE4
+ ldr r3, _080A2FB0
+ adds r0, r7, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ lsls r0, 20
+ lsrs r6, r0, 16
+ movs r5, 0
+ ldr r1, _080A2FB4
+ adds r0, r7, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r5, r0
+ bge _080A2F78
+ mov r10, r5
+ add r4, sp, 0x4
+ movs r3, 0xFF
+ mov r9, r3
+_080A2F26:
+ mov r0, r10
+ str r0, [sp]
+ ldrb r0, [r4]
+ mov r1, r9
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r0, [r4, 0x1]
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ orrs r0, r1
+ strb r0, [r4, 0x2]
+ mov r2, r10
+ strb r2, [r4, 0x3]
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, [sp]
+ bl sub_8003810
+ adds r5, 0x1
+ mov r8, r5
+ movs r5, 0xE
+_080A2F56:
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, [sp, 0x4]
+ bl sub_8003810
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A2F56
+ mov r5, r8
+ ldr r3, _080A2FB4
+ adds r0, r7, r3
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ blt _080A2F26
+_080A2F78:
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80A3BB0
+ movs r2, 0x91
+ lsls r2, 3
+ adds r0, r7, r2
+ bl sub_80A3EB0
+ ldr r3, _080A2FB8
+ adds r1, r7, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2FA4: .4byte 0x00000444
+_080A2FA8: .4byte 0x0000ffff
+_080A2FAC: .4byte 0x00000449
+_080A2FB0: .4byte 0x0000052c
+_080A2FB4: .4byte 0x0000052e
+_080A2FB8: .4byte 0x0000052a
+ thumb_func_end sub_80A2E64
+
+ thumb_func_start sub_80A2FBC
+sub_80A2FBC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r9, r0
+ lsls r1, 16
+ asrs r4, r1, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _080A2FDE
+ mov r0, r9
+ bl sub_80A2E64
+ b _080A3428
+_080A2FDE:
+ mov r0, r9
+ bl sub_80A2DD4
+ ldr r0, _080A3284
+ add r0, r9
+ strh r4, [r0]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _080A3288
+ adds r0, r1
+ str r0, [sp, 0xC]
+ ldr r0, [r0]
+ ldr r4, _080A328C
+ adds r1, r4, 0
+ bl OpenFileAndGetFileDataPtr
+ movs r6, 0x86
+ lsls r6, 3
+ add r6, r9
+ str r0, [r6]
+ ldr r1, [sp, 0xC]
+ ldr r0, [r1, 0x4]
+ adds r1, r4, 0
+ bl OpenFileAndGetFileDataPtr
+ ldr r5, _080A3290
+ add r5, r9
+ str r0, [r5]
+ ldr r2, [sp, 0xC]
+ ldr r0, [r2, 0x8]
+ adds r1, r4, 0
+ bl OpenFileAndGetFileDataPtr
+ movs r1, 0x87
+ lsls r1, 3
+ add r1, r9
+ str r0, [r1]
+ ldr r1, [r6]
+ ldr r1, [r1, 0x4]
+ str r1, [sp, 0x18]
+ ldr r1, [r5]
+ ldr r1, [r1, 0x4]
+ mov r8, r1
+ ldr r6, [r0, 0x4]
+ ldr r3, _080A3294
+ add r3, r9
+ str r3, [sp, 0x10]
+ ldr r4, _080A3298
+ add r4, r9
+ str r4, [sp, 0x14]
+ movs r5, 0x89
+ lsls r5, 3
+ add r5, r9
+ mov r10, r5
+ ldr r7, [sp, 0x18]
+ ldrb r0, [r7]
+ strh r0, [r3]
+ adds r0, r7, 0
+ adds r0, 0x2
+ str r0, [sp, 0x18]
+ ldrb r0, [r0]
+ strh r0, [r3, 0x2]
+ ldr r1, [sp, 0x18]
+ adds r1, 0x2
+ str r1, [sp, 0x18]
+ mov r2, r8
+ ldrh r0, [r2]
+ strh r0, [r4]
+ movs r3, 0x2
+ add r8, r3
+ mov r4, r8
+ ldrh r0, [r4]
+ ldr r5, [sp, 0x14]
+ strh r0, [r5, 0x2]
+ add r8, r3
+ mov r7, r8
+ ldrh r0, [r7]
+ strh r0, [r5, 0x4]
+ add r8, r3
+ add r3, sp, 0x8
+ ldr r0, _080A329C
+ add r0, r9
+ str r0, [sp, 0x1C]
+ adds r1, r0, 0
+ movs r2, 0x3
+_080A308A:
+ mov r4, r8
+ ldrh r0, [r4]
+ strh r0, [r1]
+ movs r5, 0x2
+ add r8, r5
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A308A
+ mov r7, r8
+ ldrh r0, [r7]
+ movs r2, 0
+ movs r1, 0
+ ldr r4, [sp, 0x14]
+ strh r0, [r4, 0xE]
+ add r8, r5
+ ldrb r0, [r6]
+ mov r5, r10
+ strb r0, [r5]
+ adds r6, 0x1
+ ldrb r0, [r6]
+ strb r0, [r5, 0x1]
+ adds r6, 0x1
+ ldrb r0, [r6]
+ strb r0, [r5, 0x2]
+ adds r6, 0x1
+ ldrb r0, [r6]
+ strb r0, [r5, 0x3]
+ adds r6, 0x1
+ ldrb r0, [r6]
+ strb r0, [r5, 0x4]
+ adds r6, 0x1
+ ldrb r0, [r6]
+ strb r0, [r5, 0x5]
+ adds r6, 0x1
+ ldrb r0, [r6]
+ strh r0, [r5, 0x6]
+ adds r6, 0x2
+ ldrb r0, [r6]
+ strh r0, [r5, 0x8]
+ adds r6, 0x2
+ ldrb r0, [r6]
+ strh r0, [r5, 0xA]
+ adds r6, 0x2
+ ldr r7, [sp, 0x18]
+ ldr r0, _080A32A0
+ add r0, r9
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ lsls r0, 20
+ lsrs r5, r0, 16
+ str r1, [sp, 0x4]
+ movs r0, 0xFF
+ strb r0, [r3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r3, 0x1]
+ strb r0, [r3, 0x2]
+ strb r2, [r3, 0x3]
+ movs r4, 0
+ ldr r1, [sp, 0x10]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ ldr r3, [sp, 0xC]
+ adds r3, 0xC
+ str r3, [sp, 0x20]
+ cmp r4, r0
+ bge _080A3158
+ ldr r0, _080A32A4
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r4, r0
+ bge _080A3198
+_080A311E:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r1, [sp, 0x4]
+ bl sub_8003810
+ adds r0, r5, 0
+ adds r1, r7, 0
+ movs r2, 0xF
+ bl sub_809971C
+ adds r0, r5, 0
+ adds r0, 0xF
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r7, 0x3C
+ adds r4, 0x1
+ ldr r2, [sp, 0x10]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r4, r0
+ bge _080A3158
+ ldr r0, _080A32A4
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r4, r0
+ blt _080A311E
+_080A3158:
+ ldr r0, _080A32A4
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r4, r0
+ bge _080A3198
+_080A3164:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r1, [sp, 0x4]
+ bl sub_8003810
+ adds r7, r4, 0x1
+ movs r4, 0xE
+_080A3176:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r1, [sp, 0x8]
+ bl sub_8003810
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080A3176
+ adds r4, r7, 0
+ ldr r0, _080A32A4
+ add r0, r9
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r4, r0
+ blt _080A3164
+_080A3198:
+ movs r0, 0xA6
+ lsls r0, 3
+ add r0, r9
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ lsls r0, 5
+ ldr r5, _080A32A8
+ adds r0, r5
+ ldr r4, _080A32A0
+ add r4, r9
+ ldr r5, _080A3298
+ add r5, r9
+ mov r1, r8
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_80A37C4
+ movs r0, 0xA9
+ lsls r0, 3
+ add r0, r9
+ ldr r0, [r0]
+ movs r1, 0xA5
+ lsls r1, 3
+ add r1, r9
+ ldr r7, [sp, 0x14]
+ movs r3, 0x4
+ ldrsh r2, [r7, r3]
+ subs r2, 0x1
+ lsls r2, 5
+ add r2, r8
+ str r5, [sp]
+ adds r3, r4, 0
+ bl _UncompressCell
+ ldr r0, _080A32AC
+ add r0, r9
+ movs r3, 0x89
+ lsls r3, 3
+ add r3, r9
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80A3908
+ adds r6, r0, 0
+ movs r0, 0x8D
+ lsls r0, 3
+ add r0, r9
+ str r6, [r0]
+ ldr r0, _080A32B0
+ add r0, r9
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _080A321C
+ movs r1, 0xA8
+ lsls r1, 3
+ add r1, r9
+ ldr r0, _080A32B4
+ add r0, r9
+ movs r4, 0
+ ldrsh r3, [r0, r4]
+ ldr r4, [r1]
+ adds r0, r2, 0
+ adds r1, r6, 0
+ mov r2, r10
+ bl _call_via_r4
+_080A321C:
+ mov r2, r9
+ movs r4, 0
+ ldr r5, [sp, 0x10]
+ movs r6, 0x2
+ ldrsh r0, [r5, r6]
+ cmp r0, 0
+ beq _080A32E4
+ movs r7, 0
+ ldrsh r1, [r5, r7]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ ldr r5, [sp, 0x18]
+ adds r3, r5, r0
+ lsls r1, 2
+ adds r6, r3, r1
+ ldr r0, _080A32B8
+ add r0, r9
+ str r3, [r0]
+ movs r0, 0x8E
+ lsls r0, 3
+ add r0, r9
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080A32BC
+ add r0, r9
+ strb r1, [r0]
+ ldr r7, [sp, 0x10]
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r4, r0
+ bge _080A32F8
+ ldr r1, _080A32A4
+ add r1, r9
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r4, r0
+ bge _080A32F8
+ movs r5, 0
+ mov r8, r1
+_080A326C:
+ movs r7, 0x2
+ ldrsh r0, [r3, r7]
+ cmp r0, 0
+ ble _080A32C0
+ str r6, [r2, 0x4]
+ movs r0, 0x2
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r6, r0
+ b _080A32C2
+ .align 2, 0
+_080A3284: .4byte 0x00000444
+_080A3288: .4byte gUnknown_81188F0
+_080A328C: .4byte gUnknown_9890000
+_080A3290: .4byte 0x00000434
+_080A3294: .4byte 0x00000464
+_080A3298: .4byte 0x00000454
+_080A329C: .4byte 0x0000045a
+_080A32A0: .4byte 0x0000052c
+_080A32A4: .4byte 0x0000052e
+_080A32A8: .4byte 0x06008000
+_080A32AC: .4byte 0x0000054c
+_080A32B0: .4byte 0x00000544
+_080A32B4: .4byte 0x0000053a
+_080A32B8: .4byte 0x0000046c
+_080A32BC: .4byte 0x00000471
+_080A32C0:
+ str r5, [r2, 0x4]
+_080A32C2:
+ strh r5, [r2]
+ strh r5, [r2, 0x2]
+ str r5, [r2, 0x8]
+ adds r4, 0x1
+ adds r2, 0x10
+ adds r3, 0x4
+ ldr r1, [sp, 0x10]
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ cmp r4, r0
+ bge _080A32F8
+ mov r1, r8
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ cmp r4, r0
+ blt _080A326C
+ b _080A32F8
+_080A32E4:
+ ldr r0, _080A3384
+ add r0, r9
+ str r4, [r0]
+ movs r0, 0x8E
+ lsls r0, 3
+ add r0, r9
+ strb r4, [r0]
+ ldr r0, _080A3388
+ add r0, r9
+ strb r4, [r0]
+_080A32F8:
+ cmp r4, 0xD
+ bgt _080A330E
+ movs r0, 0
+_080A32FE:
+ strh r0, [r2]
+ strh r0, [r2, 0x2]
+ str r0, [r2, 0x8]
+ str r0, [r2, 0x4]
+ adds r4, 0x1
+ adds r2, 0x10
+ cmp r4, 0xD
+ ble _080A32FE
+_080A330E:
+ movs r0, 0xA6
+ lsls r0, 3
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ ldr r2, [sp, 0x14]
+ movs r3, 0x4
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ lsls r0, 5
+ ldr r4, _080A338C
+ adds r5, r0, r4
+ movs r7, 0
+ movs r6, 0
+ mov r8, r6
+ movs r4, 0xF8
+ lsls r4, 2
+ add r4, r9
+ ldr r0, [sp, 0x1C]
+ str r0, [sp, 0x28]
+ ldr r3, [sp, 0x20]
+_080A3338:
+ ldr r0, [r3]
+ cmp r0, 0
+ beq _080A3394
+ ldr r1, _080A3390
+ str r3, [sp, 0x24]
+ bl OpenFileAndGetFileDataPtr
+ str r0, [r4, 0x8]
+ movs r1, 0x1
+ strb r1, [r4]
+ strb r1, [r4, 0x1]
+ ldr r2, [r0, 0x4]
+ str r2, [r4, 0xC]
+ adds r1, r2, 0x4
+ movs r0, 0x2
+ ldrsh r6, [r2, r0]
+ lsls r6, 2
+ adds r0, r1, r6
+ str r1, [r4, 0x14]
+ str r1, [r4, 0x10]
+ str r0, [r4, 0x1C]
+ str r0, [r4, 0x18]
+ mov r1, r8
+ strh r1, [r4, 0x2]
+ ldr r0, [r2, 0x4]
+ strh r0, [r4, 0x4]
+ str r5, [r4, 0x20]
+ ldr r2, [sp, 0x28]
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ lsls r0, 5
+ str r0, [r4, 0x24]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r0, 5
+ adds r5, r0
+ ldr r3, [sp, 0x24]
+ b _080A33AC
+ .align 2, 0
+_080A3384: .4byte 0x0000046c
+_080A3388: .4byte 0x00000471
+_080A338C: .4byte 0x06008000
+_080A3390: .4byte gUnknown_9890000
+_080A3394:
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0x2]
+ str r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+ str r0, [r4, 0x14]
+ str r0, [r4, 0x10]
+ str r0, [r4, 0x1C]
+ str r0, [r4, 0x18]
+ str r0, [r4, 0x20]
+ str r0, [r4, 0x24]
+_080A33AC:
+ adds r4, 0x28
+ ldr r2, [sp, 0x28]
+ adds r2, 0x2
+ str r2, [sp, 0x28]
+ adds r3, 0x4
+ adds r7, 0x1
+ cmp r7, 0x1
+ ble _080A3338
+ cmp r7, 0x3
+ bgt _080A340E
+_080A33C0:
+ lsls r0, r7, 2
+ ldr r3, [sp, 0x20]
+ adds r0, r3, r0
+ ldr r0, [r0]
+ adds r4, r7, 0x1
+ cmp r0, 0
+ beq _080A3408
+ ldr r1, _080A3438
+ bl OpenFileAndGetFileDataPtr
+ adds r3, r0, 0
+ ldr r0, [r3, 0x4]
+ adds r1, r0, 0x4
+ movs r6, 0x2
+ ldrsh r0, [r0, r6]
+ lsls r0, 2
+ adds r1, r0
+ lsls r0, r7, 1
+ ldr r7, [sp, 0x1C]
+ adds r0, r7, r0
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 4
+ cmp r0, 0
+ ble _080A3402
+ adds r2, r0, 0
+_080A33F4:
+ ldrh r0, [r1]
+ strh r0, [r5]
+ adds r1, 0x2
+ adds r5, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A33F4
+_080A3402:
+ adds r0, r3, 0
+ bl CloseFile
+_080A3408:
+ adds r7, r4, 0
+ cmp r7, 0x3
+ ble _080A33C0
+_080A340E:
+ mov r0, r9
+ movs r1, 0
+ bl sub_80A3BB0
+ movs r0, 0x91
+ lsls r0, 3
+ add r0, r9
+ bl sub_80A3EB0
+ ldr r1, _080A343C
+ add r1, r9
+ movs r0, 0x1
+ strb r0, [r1]
+_080A3428:
+ 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
+_080A3438: .4byte gUnknown_9890000
+_080A343C: .4byte 0x0000052a
+ thumb_func_end sub_80A2FBC
+
+ thumb_func_start sub_80A3440
+sub_80A3440:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4C
+ mov r9, r0
+ str r2, [sp, 0x34]
+ str r3, [sp, 0x38]
+ lsls r1, 16
+ asrs r5, r1, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _080A3464
+ ldrb r0, [r2]
+ cmp r0, 0x63
+ bne _080A346C
+_080A3464:
+ mov r0, r9
+ bl sub_80A2E64
+ b _080A376C
+_080A346C:
+ mov r0, r9
+ adds r1, r5, 0
+ bl sub_80A2FBC
+ mov r0, r9
+ bl sub_80A2DD4
+ ldr r0, _080A377C
+ add r0, r9
+ strh r5, [r0]
+ lsls r4, r5, 3
+ subs r4, r5
+ lsls r4, 2
+ ldr r0, _080A3780
+ adds r4, r0
+ ldr r0, [r4]
+ ldr r5, _080A3784
+ adds r1, r5, 0
+ bl OpenFileAndGetFileDataPtr
+ movs r1, 0x86
+ lsls r1, 3
+ add r1, r9
+ mov r8, r1
+ str r0, [r1]
+ ldr r0, [r4, 0x4]
+ adds r1, r5, 0
+ bl OpenFileAndGetFileDataPtr
+ ldr r6, _080A3788
+ add r6, r9
+ str r0, [r6]
+ ldr r0, [r4, 0x8]
+ adds r1, r5, 0
+ bl OpenFileAndGetFileDataPtr
+ movs r1, 0x87
+ lsls r1, 3
+ add r1, r9
+ str r0, [r1]
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r2, [r1, 0x4]
+ ldr r1, [r6]
+ ldr r3, [r1, 0x4]
+ ldr r7, [r0, 0x4]
+ ldr r1, _080A378C
+ add r1, r9
+ ldr r4, _080A3790
+ add r4, r9
+ str r4, [sp, 0x3C]
+ movs r0, 0x89
+ lsls r0, 3
+ add r0, r9
+ mov r10, r0
+ ldrb r0, [r2]
+ strh r0, [r1]
+ ldrb r0, [r2, 0x2]
+ strh r0, [r1, 0x2]
+ ldrh r0, [r3]
+ strh r0, [r4]
+ adds r3, 0x2
+ ldrh r0, [r3]
+ strh r0, [r4, 0x2]
+ adds r3, 0x2
+ ldrh r0, [r3]
+ strh r0, [r4, 0x4]
+ adds r3, 0x2
+ add r5, sp, 0x2C
+ ldr r1, _080A3794
+ add r1, r9
+ str r1, [sp, 0x48]
+ movs r2, 0x3
+_080A34FE:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A34FE
+ ldrh r0, [r3]
+ movs r2, 0
+ mov r8, r2
+ ldr r4, [sp, 0x3C]
+ strh r0, [r4, 0xE]
+ ldrb r0, [r7]
+ mov r1, r10
+ strb r0, [r1]
+ adds r7, 0x1
+ ldrb r0, [r7]
+ strb r0, [r1, 0x1]
+ adds r7, 0x1
+ ldrb r0, [r7]
+ strb r0, [r1, 0x2]
+ adds r7, 0x1
+ ldrb r0, [r7]
+ strb r0, [r1, 0x3]
+ adds r7, 0x1
+ ldrb r0, [r7]
+ strb r0, [r1, 0x4]
+ adds r7, 0x1
+ ldrb r0, [r7]
+ strb r0, [r1, 0x5]
+ adds r7, 0x1
+ ldrb r0, [r7]
+ strh r0, [r1, 0x6]
+ adds r7, 0x2
+ ldrb r0, [r7]
+ strh r0, [r1, 0x8]
+ adds r7, 0x2
+ ldrb r0, [r7]
+ strh r0, [r1, 0xA]
+ adds r7, 0x2
+ ldr r4, _080A3798
+ add r4, r9
+ ldr r0, [r4]
+ str r0, [sp, 0x2C]
+ str r2, [r5, 0x4]
+ ldr r2, _080A379C
+ add r2, r9
+ movs r3, 0x89
+ lsls r3, 3
+ add r3, r9
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_80A3908
+ adds r7, r0, 0
+ movs r0, 0x8D
+ lsls r0, 3
+ add r0, r9
+ str r7, [r0]
+ ldr r5, _080A37A0
+ add r5, r9
+ movs r6, 0x88
+ lsls r6, 3
+ add r6, r9
+ ldr r2, _080A37A4
+ movs r0, 0xA9
+ lsls r0, 3
+ add r0, r9
+ ldr r3, [r0]
+ ldr r0, _080A37A8
+ add r0, r9
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x34]
+ str r0, [sp, 0x4]
+ ldr r1, [sp, 0x38]
+ str r1, [sp, 0x8]
+ movs r0, 0x40
+ str r0, [sp, 0xC]
+ mov r1, r10
+ ldrb r0, [r1, 0x5]
+ str r0, [sp, 0x10]
+ ldr r0, [r4]
+ str r0, [sp, 0x14]
+ mov r0, r8
+ str r0, [sp, 0x18]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80ADD9C
+ ldr r0, [r5]
+ movs r1, 0
+ bl GetFileDataPtr
+ ldr r0, [r6]
+ movs r1, 0
+ bl GetFileDataPtr
+ movs r2, 0xA8
+ lsls r2, 3
+ add r2, r9
+ ldr r0, [r4]
+ ldr r1, _080A37AC
+ add r1, r9
+ movs r4, 0
+ ldrsh r3, [r1, r4]
+ ldr r4, [r2]
+ adds r1, r7, 0
+ mov r2, r10
+ bl _call_via_r4
+ movs r0, 0x80
+ lsls r0, 2
+ ldr r1, [sp, 0x3C]
+ strh r0, [r1, 0x4]
+ ldr r1, [sp, 0x48]
+ movs r2, 0
+ adds r0, r1, 0x6
+_080A35EA:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _080A35EA
+ movs r2, 0
+ movs r0, 0xFA
+ ldr r4, [sp, 0x3C]
+ strh r0, [r4, 0xE]
+ ldr r1, _080A378C
+ add r1, r9
+ movs r0, 0xC
+ strh r0, [r1]
+ ldr r0, _080A37B0
+ add r0, r9
+ strh r2, [r0]
+ ldr r0, _080A37A0
+ add r0, r9
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080A36E6
+ ldr r4, [r0, 0x4]
+ movs r7, 0
+ str r7, [sp, 0x1C]
+ add r1, sp, 0x20
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ strb r0, [r1, 0x3]
+ movs r5, 0
+ ldr r0, _080A37B4
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ bge _080A36E6
+ mov r2, sp
+ adds r2, 0x28
+ str r2, [sp, 0x40]
+ mov r0, sp
+ adds r0, 0x29
+ str r0, [sp, 0x44]
+ movs r1, 0x2A
+ add r1, sp
+ mov r10, r1
+ movs r2, 0x2B
+ add r2, sp
+ mov r8, r2
+_080A3650:
+ adds r0, r7, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldr r1, [sp, 0x1C]
+ bl sub_8003810
+ adds r4, 0x4
+ adds r6, r5, 0x1
+ movs r5, 0xE
+_080A3664:
+ ldrb r0, [r4]
+ ldr r1, [sp, 0x40]
+ strb r0, [r1]
+ ldrb r0, [r4, 0x1]
+ ldr r2, [sp, 0x44]
+ strb r0, [r2]
+ ldrb r0, [r4, 0x2]
+ mov r1, r10
+ strb r0, [r1]
+ ldrb r0, [r4, 0x3]
+ mov r2, r8
+ strb r0, [r2]
+ ldr r1, [sp, 0x28]
+ str r1, [sp, 0x24]
+ adds r0, r7, 0
+ adds r2, r0, 0x1
+ lsls r2, 16
+ lsrs r7, r2, 16
+ bl sub_8003810
+ adds r4, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A3664
+ adds r5, r6, 0
+ cmp r5, 0xB
+ bgt _080A36A6
+ ldr r0, _080A37B4
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ blt _080A3650
+_080A36A6:
+ ldr r0, _080A37B4
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r5, r0
+ bge _080A36E6
+_080A36B2:
+ adds r0, r7, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldr r1, [sp, 0x1C]
+ bl sub_8003810
+ adds r6, r5, 0x1
+ movs r5, 0xE
+_080A36C4:
+ adds r0, r7, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldr r1, [sp, 0x20]
+ bl sub_8003810
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A36C4
+ adds r5, r6, 0
+ ldr r0, _080A37B4
+ add r0, r9
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r5, r0
+ blt _080A36B2
+_080A36E6:
+ mov r4, r9
+ movs r0, 0x88
+ lsls r0, 3
+ add r0, r9
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080A36FE
+ mov r0, r9
+ adds r0, 0xE0
+ movs r2, 0x20
+ bl sub_8004AA4
+_080A36FE:
+ ldr r0, _080A37B8
+ add r0, r9
+ movs r1, 0
+ str r1, [r0]
+ movs r0, 0x8E
+ lsls r0, 3
+ add r0, r9
+ strb r1, [r0]
+ ldr r0, _080A37BC
+ add r0, r9
+ strb r1, [r0]
+ movs r0, 0
+ movs r1, 0xD
+_080A3718:
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ str r0, [r4, 0x8]
+ str r0, [r4, 0x4]
+ subs r1, 0x1
+ adds r4, 0x10
+ cmp r1, 0
+ bge _080A3718
+ movs r1, 0
+ movs r0, 0xF8
+ lsls r0, 2
+ add r0, r9
+ movs r2, 0x1
+_080A3732:
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x2]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ str r1, [r0, 0x14]
+ str r1, [r0, 0x10]
+ str r1, [r0, 0x1C]
+ str r1, [r0, 0x18]
+ str r1, [r0, 0x20]
+ str r1, [r0, 0x24]
+ adds r0, 0x28
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A3732
+ mov r0, r9
+ movs r1, 0
+ bl sub_80A3BB0
+ movs r0, 0x91
+ lsls r0, 3
+ add r0, r9
+ bl sub_80A3EB0
+ ldr r1, _080A37C0
+ add r1, r9
+ movs r0, 0x1
+ strb r0, [r1]
+_080A376C:
+ add sp, 0x4C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A377C: .4byte 0x00000444
+_080A3780: .4byte gUnknown_81188F0
+_080A3784: .4byte gUnknown_9890000
+_080A3788: .4byte 0x00000434
+_080A378C: .4byte 0x00000464
+_080A3790: .4byte 0x00000454
+_080A3794: .4byte 0x0000045a
+_080A3798: .4byte 0x00000544
+_080A379C: .4byte 0x0000052c
+_080A37A0: .4byte 0x0000043c
+_080A37A4: .4byte 0x06008000
+_080A37A8: .4byte 0x0000054c
+_080A37AC: .4byte 0x0000053a
+_080A37B0: .4byte 0x00000466
+_080A37B4: .4byte 0x0000052e
+_080A37B8: .4byte 0x0000046c
+_080A37BC: .4byte 0x00000471
+_080A37C0: .4byte 0x0000052a
+ thumb_func_end sub_80A3440
+
+ thumb_func_start sub_80A37C4
+sub_80A37C4:
+ push {r4-r6,lr}
+ adds r6, r2, 0
+ adds r4, r1, 0
+ adds r2, r0, 0
+ movs r0, 0
+ movs r1, 0xF
+_080A37D0:
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080A37D0
+ movs r0, 0x1
+ movs r1, 0x4
+ ldrsh r3, [r3, r1]
+ cmp r0, r3
+ bge _080A37FE
+ adds r5, r3, 0
+_080A37E6:
+ adds r3, r0, 0x1
+ movs r1, 0xF
+_080A37EA:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080A37EA
+ adds r0, r3, 0
+ cmp r0, r5
+ blt _080A37E6
+_080A37FE:
+ movs r3, 0x6
+ ldrsh r1, [r6, r3]
+ cmp r0, r1
+ bge _080A3820
+ ldr r3, _080A3828
+ adds r4, r3, 0
+ adds r5, r1, 0
+_080A380C:
+ adds r3, r0, 0x1
+ movs r1, 0xF
+_080A3810:
+ strh r4, [r2]
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080A3810
+ adds r0, r3, 0
+ cmp r0, r5
+ blt _080A380C
+_080A3820:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3828: .4byte 0x0000ffff
+ thumb_func_end sub_80A37C4
+
+ thumb_func_start _UncompressCell
+_UncompressCell:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r1, 0
+ mov r8, r3
+ ldr r3, [sp, 0x18]
+ adds r4, r2, 0
+ adds r2, r0, 0
+ mov r1, r8
+ ldrh r0, [r1]
+ lsls r0, 12
+ ldrh r1, [r1, 0x4]
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, [r3]
+ ldr r0, _080A385C
+ cmp r1, r0
+ bne _080A3860
+ movs r0, 0x1
+ strh r0, [r5]
+ movs r5, 0x4
+ b _080A3890
+ .align 2, 0
+_080A385C: .4byte 0x00020002
+_080A3860:
+ ldr r0, _080A3870
+ cmp r1, r0
+ bne _080A3874
+ movs r0, 0x2
+ strh r0, [r5]
+ movs r5, 0x9
+ b _080A3890
+ .align 2, 0
+_080A3870: .4byte 0x00030003
+_080A3874:
+ movs r0, 0
+ strh r0, [r5]
+ ldr r0, _080A3888
+ ldr r1, _080A388C
+ movs r4, 0
+ ldrsh r2, [r3, r4]
+ movs r6, 0x2
+ ldrsh r3, [r3, r6]
+ bl FatalError
+ .align 2, 0
+_080A3888: .4byte gUnknown_81172E8
+_080A388C: .4byte gUnknown_81172F4
+_080A3890:
+ movs r0, 0
+ movs r1, 0x8
+_080A3894:
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080A3894
+ movs r0, 0x1
+ movs r7, 0xE
+ ldrsh r1, [r3, r7]
+ cmp r0, r1
+ bge _080A38DC
+ mov r12, r1
+_080A38AA:
+ movs r1, 0
+ adds r3, r0, 0x1
+ cmp r1, r5
+ bge _080A38C6
+ adds r1, r5, 0
+_080A38B4:
+ ldrh r0, [r4]
+ adds r0, r6, r0
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080A38B4
+ adds r1, r5, 0
+_080A38C6:
+ cmp r1, 0x8
+ bgt _080A38D6
+ movs r0, 0
+_080A38CC:
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r1, 0x1
+ cmp r1, 0x8
+ ble _080A38CC
+_080A38D6:
+ adds r0, r3, 0
+ cmp r0, r12
+ blt _080A38AA
+_080A38DC:
+ mov r1, r8
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ cmp r0, r3
+ bge _080A38FE
+ movs r4, 0
+ adds r5, r3, 0
+_080A38EA:
+ adds r3, r0, 0x1
+ movs r1, 0x8
+_080A38EE:
+ strh r4, [r2]
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080A38EE
+ adds r0, r3, 0
+ cmp r0, r5
+ blt _080A38EA
+_080A38FE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end _UncompressCell
+
+ thumb_func_start sub_80A3908
+sub_80A3908:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ mov r9, r3
+ adds r6, r1, 0
+ movs r2, 0
+ ldr r1, [sp, 0x4]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r2, r0
+ blt _080A392A
+ b _080A3B6C
+_080A392A:
+ lsls r0, r2, 2
+ ldr r4, [sp]
+ adds r0, r4
+ ldr r0, [r0]
+ mov r12, r0
+ movs r1, 0
+ adds r2, 0x1
+ str r2, [sp, 0x8]
+ mov r5, r9
+ ldrb r5, [r5, 0x5]
+ cmp r1, r5
+ blt _080A3944
+ b _080A3B2A
+_080A3944:
+ ldr r0, _080A39A4
+ mov r10, r0
+_080A3948:
+ movs r2, 0
+ mov r8, r2
+ cmp r1, 0
+ bne _080A3A18
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ mov r4, r9
+ ldrb r4, [r4, 0x4]
+ cmp r1, r4
+ blt _080A395E
+ b _080A3B04
+_080A395E:
+ ldrb r1, [r6]
+ adds r6, 0x1
+ cmp r1, 0xBF
+ ble _080A39A8
+ adds r2, r1, 0
+ subs r2, 0xBF
+ cmp r1, 0xBF
+ ble _080A39A0
+ ldr r5, _080A39A4
+ adds r4, r5, 0
+ adds r3, r2, 0
+_080A3974:
+ ldrb r1, [r6]
+ ldrb r0, [r6, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r6, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ adds r6, 0x3
+ adds r0, r1, 0
+ ands r0, r4
+ mov r5, r12
+ strh r0, [r5]
+ movs r0, 0x2
+ add r12, r0
+ asrs r1, 12
+ ands r1, r4
+ mov r5, r12
+ strh r1, [r5]
+ add r12, r0
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A3974
+_080A39A0:
+ lsls r0, r2, 1
+ b _080A3A0C
+ .align 2, 0
+_080A39A4: .4byte 0x00000fff
+_080A39A8:
+ cmp r1, 0x7F
+ ble _080A39EA
+ ldrb r2, [r6]
+ ldrb r0, [r6, 0x1]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r6, 0x2]
+ lsls r0, 16
+ orrs r2, r0
+ adds r6, 0x3
+ adds r4, r1, 0
+ subs r4, 0x7F
+ cmp r1, 0x7F
+ ble _080A39E6
+ adds r0, r2, 0
+ mov r1, r10
+ ands r0, r1
+ asrs r1, r2, 12
+ mov r2, r10
+ ands r1, r2
+ adds r3, r4, 0
+_080A39D2:
+ mov r5, r12
+ strh r0, [r5]
+ movs r2, 0x2
+ add r12, r2
+ mov r5, r12
+ strh r1, [r5]
+ add r12, r2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A39D2
+_080A39E6:
+ lsls r0, r4, 1
+ b _080A3A0C
+_080A39EA:
+ movs r3, 0
+ adds r0, r1, 0x1
+ cmp r3, r1
+ bgt _080A3A0A
+ movs r1, 0
+ adds r3, r0, 0
+_080A39F6:
+ mov r2, r12
+ strh r1, [r2]
+ movs r4, 0x2
+ add r12, r4
+ mov r5, r12
+ strh r1, [r5]
+ add r12, r4
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A39F6
+_080A3A0A:
+ lsls r0, 1
+_080A3A0C:
+ add r8, r0
+ mov r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r8, r0
+ blt _080A395E
+ b _080A3B04
+_080A3A18:
+ mov r4, r12
+ subs r4, 0x80
+ adds r1, 0x1
+ str r1, [sp, 0xC]
+ mov r1, r9
+ ldrb r1, [r1, 0x4]
+ cmp r8, r1
+ bge _080A3B04
+_080A3A28:
+ ldrb r1, [r6]
+ adds r6, 0x1
+ cmp r1, 0xBF
+ ble _080A3A80
+ adds r5, r1, 0
+ subs r5, 0xBF
+ cmp r1, 0xBF
+ ble _080A3A78
+ ldr r2, _080A3A7C
+ adds r7, r2, 0
+ adds r3, r5, 0
+_080A3A3E:
+ ldrb r2, [r6]
+ ldrb r0, [r6, 0x1]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r6, 0x2]
+ lsls r0, 16
+ orrs r2, r0
+ adds r6, 0x3
+ adds r0, r2, 0
+ ands r0, r7
+ ldrh r1, [r4]
+ eors r0, r1
+ mov r1, r12
+ strh r0, [r1]
+ adds r4, 0x2
+ movs r0, 0x2
+ add r12, r0
+ asrs r2, 12
+ ands r2, r7
+ ldrh r0, [r4]
+ eors r2, r0
+ mov r1, r12
+ strh r2, [r1]
+ adds r4, 0x2
+ movs r2, 0x2
+ add r12, r2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A3A3E
+_080A3A78:
+ lsls r0, r5, 1
+ b _080A3AFA
+ .align 2, 0
+_080A3A7C: .4byte 0x00000fff
+_080A3A80:
+ cmp r1, 0x7F
+ ble _080A3AD2
+ ldrb r2, [r6]
+ ldrb r0, [r6, 0x1]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r6, 0x2]
+ lsls r0, 16
+ orrs r2, r0
+ adds r6, 0x3
+ adds r7, r1, 0
+ subs r7, 0x7F
+ cmp r1, 0x7F
+ ble _080A3ACE
+ adds r5, r2, 0
+ mov r3, r10
+ ands r5, r3
+ asrs r2, 12
+ ands r2, r3
+ adds r3, r7, 0
+_080A3AA8:
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ eors r0, r1
+ mov r1, r12
+ strh r0, [r1]
+ adds r4, 0x2
+ movs r0, 0x2
+ add r12, r0
+ ldrh r1, [r4]
+ adds r0, r2, 0
+ eors r0, r1
+ mov r1, r12
+ strh r0, [r1]
+ adds r4, 0x2
+ movs r0, 0x2
+ add r12, r0
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A3AA8
+_080A3ACE:
+ lsls r0, r7, 1
+ b _080A3AFA
+_080A3AD2:
+ movs r3, 0
+ adds r2, r1, 0x1
+ cmp r3, r1
+ bgt _080A3AF8
+ adds r3, r2, 0
+_080A3ADC:
+ ldrh r0, [r4]
+ mov r1, r12
+ strh r0, [r1]
+ adds r4, 0x2
+ movs r5, 0x2
+ add r12, r5
+ ldrh r0, [r4]
+ mov r1, r12
+ strh r0, [r1]
+ adds r4, 0x2
+ add r12, r5
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A3ADC
+_080A3AF8:
+ lsls r0, r2, 1
+_080A3AFA:
+ add r8, r0
+ mov r2, r9
+ ldrb r2, [r2, 0x4]
+ cmp r8, r2
+ blt _080A3A28
+_080A3B04:
+ mov r3, r8
+ cmp r3, 0x3F
+ bgt _080A3B1E
+ movs r0, 0
+_080A3B0C:
+ mov r4, r12
+ strh r0, [r4]
+ movs r5, 0x2
+ add r12, r5
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x3F
+ ble _080A3B0C
+_080A3B1E:
+ ldr r1, [sp, 0xC]
+ mov r3, r9
+ ldrb r3, [r3, 0x5]
+ cmp r1, r3
+ bge _080A3B2A
+ b _080A3948
+_080A3B2A:
+ ldr r4, [sp, 0x4]
+ movs r5, 0x10
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bge _080A3B5E
+ movs r2, 0
+_080A3B36:
+ adds r1, 0x1
+ str r1, [sp, 0xC]
+ movs r0, 0x3F
+ mov r8, r0
+_080A3B3E:
+ mov r1, r12
+ strh r2, [r1]
+ movs r3, 0x2
+ add r12, r3
+ movs r4, 0x1
+ negs r4, r4
+ add r8, r4
+ mov r5, r8
+ cmp r5, 0
+ bge _080A3B3E
+ ldr r1, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ movs r4, 0x10
+ ldrsh r0, [r3, r4]
+ cmp r1, r0
+ blt _080A3B36
+_080A3B5E:
+ ldr r2, [sp, 0x8]
+ ldr r5, [sp, 0x4]
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r2, r0
+ bge _080A3B6C
+ b _080A392A
+_080A3B6C:
+ adds r0, r6, 0
+ 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_80A3908
+
+ thumb_func_start sub_80A3B80
+sub_80A3B80:
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r4, _080A3BA8
+ adds r0, r3, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080A3BA2
+ adds r4, 0x4
+ adds r0, r3, r4
+ strb r1, [r0]
+ ldr r1, _080A3BAC
+ adds r0, r3, r1
+ strb r2, [r0]
+_080A3BA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3BA8: .4byte 0x0000046c
+_080A3BAC: .4byte 0x00000471
+ thumb_func_end sub_80A3B80
+
+ thumb_func_start sub_80A3BB0
+sub_80A3BB0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r6, r1, 0
+ movs r0, 0x91
+ lsls r0, 3
+ adds r0, r5
+ mov r8, r0
+ cmp r1, 0
+ blt _080A3BD4
+ cmp r1, 0x1
+ ble _080A3BD4
+ cmp r1, 0x4
+ ble _080A3C00
+_080A3BD4:
+ ldr r1, _080A3BFC
+ adds r0, r5, r1
+ movs r1, 0x1
+ str r1, [r0]
+ movs r2, 0xA7
+ lsls r2, 3
+ adds r0, r5, r2
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ movs r0, 0
+ cmp r6, 0x1
+ bne _080A3BEE
+ movs r0, 0x1
+_080A3BEE:
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_80A3D40
+ b _080A3C48
+ .align 2, 0
+_080A3BFC: .4byte 0x00000474
+_080A3C00:
+ ldr r2, _080A3C88
+ adds r0, r5, r2
+ movs r7, 0x2
+ str r7, [r0]
+ movs r0, 0xA7
+ lsls r0, 3
+ adds r4, r5, r0
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ subs r3, r0, 0x1
+ movs r0, 0
+ cmp r1, 0x4
+ bne _080A3C1C
+ movs r0, 0x1
+_080A3C1C:
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_80A3D40
+ movs r1, 0x9B
+ lsls r1, 3
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r2, [r4, r1]
+ subs r2, 0x1
+ adds r3, r7, 0
+ eors r3, r6
+ negs r1, r3
+ orrs r1, r3
+ lsrs r1, 31
+ str r1, [sp]
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl sub_80A3D40
+_080A3C48:
+ movs r6, 0
+ ldr r2, _080A3C88
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r6, r0
+ bge _080A3CF0
+ movs r0, 0x8F
+ lsls r0, 3
+ adds r7, r5, r0
+ mov r4, r8
+_080A3C5C:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ ldr r2, _080A3C8C
+ bl sub_80A456C
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080A3C72
+ cmp r0, 0x2
+ beq _080A3CB4
+_080A3C72:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _080A3C94
+ cmp r0, 0x1
+ ble _080A3C82
+ cmp r0, 0x2
+ beq _080A3C9C
+_080A3C82:
+ ldr r0, _080A3C90
+ b _080A3CD6
+ .align 2, 0
+_080A3C88: .4byte 0x00000474
+_080A3C8C: .4byte gUnknown_8117314
+_080A3C90: .4byte sub_80A3EBC
+_080A3C94:
+ ldr r0, _080A3C98
+ b _080A3CD6
+ .align 2, 0
+_080A3C98: .4byte sub_80A3EF4
+_080A3C9C:
+ ldrb r0, [r4, 0x6]
+ ldr r1, _080A3CAC
+ cmp r0, 0
+ beq _080A3CA6
+ ldr r1, _080A3CB0
+_080A3CA6:
+ str r1, [r4, 0x18]
+ b _080A3CD8
+ .align 2, 0
+_080A3CAC: .4byte sub_80A4088
+_080A3CB0: .4byte sub_80A41C4
+_080A3CB4:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080A3CCC
+ cmp r0, 0x1
+ ble _080A3CC4
+ cmp r0, 0x2
+ beq _080A3CD4
+_080A3CC4:
+ ldr r0, _080A3CC8
+ b _080A3CD6
+ .align 2, 0
+_080A3CC8: .4byte sub_80A3ED4
+_080A3CCC:
+ ldr r0, _080A3CD0
+ b _080A3CD6
+ .align 2, 0
+_080A3CD0: .4byte sub_80A3F94
+_080A3CD4:
+ ldr r0, _080A3D34
+_080A3CD6:
+ str r0, [r4, 0x18]
+_080A3CD8:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80A3E14
+ adds r7, 0x8
+ adds r4, 0x50
+ adds r6, 0x1
+ ldr r2, _080A3D38
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r6, r0
+ blt _080A3C5C
+_080A3CF0:
+ ldr r1, _080A3D38
+ adds r0, r5, r1
+ ldr r6, [r0]
+ cmp r6, 0x1
+ bgt _080A3D26
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 4
+ mov r2, r8
+ adds r4, r0, r2
+_080A3D04:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ ldr r2, _080A3D3C
+ bl sub_80A456C
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80A3D40
+ adds r4, 0x50
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _080A3D04
+_080A3D26:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3D34: .4byte sub_80A4358
+_080A3D38: .4byte 0x00000474
+_080A3D3C: .4byte gUnknown_8117314
+ thumb_func_end sub_80A3BB0
+
+ thumb_func_start sub_80A3D40
+sub_80A3D40:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ ldr r1, [sp, 0x1C]
+ movs r3, 0xA5
+ lsls r3, 3
+ adds r0, r5, r3
+ ldrh r0, [r0]
+ strh r0, [r4]
+ strh r2, [r4, 0x2]
+ mov r7, r8
+ strh r7, [r4, 0x4]
+ strb r1, [r4, 0x6]
+ ldr r1, _080A3E10
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ str r0, [r4, 0x8]
+ subs r3, 0xDB
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ str r0, [r4, 0xC]
+ movs r7, 0x89
+ lsls r7, 3
+ adds r0, r5, r7
+ ldrb r0, [r0]
+ lsls r0, 3
+ str r0, [r4, 0x10]
+ subs r1, 0x3
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 3
+ str r0, [r4, 0x14]
+ adds r3, 0xFB
+ adds r0, r5, r3
+ ldr r0, [r0]
+ str r0, [r4, 0x1C]
+ movs r3, 0
+ cmp r3, r8
+ bge _080A3DE0
+ adds r7, 0xF0
+ adds r6, r5, r7
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ bge _080A3DE0
+ lsls r0, r2, 2
+ adds r7, 0x14
+ adds r0, r7
+ adds r1, r0, r5
+ movs r0, 0x20
+ adds r0, r4
+ mov r12, r0
+ movs r7, 0x28
+ adds r7, r4
+ mov r9, r7
+_080A3DB6:
+ ldr r0, [r1]
+ mov r7, r12
+ adds r7, 0x4
+ mov r12, r7
+ subs r7, 0x4
+ stm r7!, {r0}
+ ldr r0, [r1, 0x8]
+ mov r7, r9
+ adds r7, 0x4
+ mov r9, r7
+ subs r7, 0x4
+ stm r7!, {r0}
+ adds r3, 0x1
+ adds r1, 0x4
+ adds r2, 0x1
+ cmp r3, r8
+ bge _080A3DE0
+ movs r7, 0
+ ldrsh r0, [r6, r7]
+ cmp r2, r0
+ blt _080A3DB6
+_080A3DE0:
+ cmp r3, 0x1
+ bgt _080A3DF8
+ movs r1, 0
+ lsls r0, r3, 2
+ adds r0, 0x20
+ adds r0, r4
+_080A3DEC:
+ str r1, [r0]
+ str r1, [r0, 0x8]
+ adds r0, 0x4
+ adds r3, 0x1
+ cmp r3, 0x1
+ ble _080A3DEC
+_080A3DF8:
+ movs r0, 0x8F
+ lsls r0, 3
+ adds r1, r5, r0
+ adds r0, r4, 0
+ bl sub_80A3E14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A3E10: .4byte 0x0000044c
+ thumb_func_end sub_80A3D40
+
+ thumb_func_start sub_80A3E14
+sub_80A3E14:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ ldr r1, [r0]
+ mov r8, r1
+ str r1, [r4, 0x30]
+ cmp r1, 0
+ bge _080A3E2A
+ adds r1, 0x7
+_080A3E2A:
+ asrs r6, r1, 3
+ str r6, [r4, 0x38]
+ ldr r7, [r0, 0x4]
+ str r7, [r4, 0x34]
+ adds r0, r7, 0
+ cmp r7, 0
+ bge _080A3E3A
+ adds r0, r7, 0x7
+_080A3E3A:
+ asrs r5, r0, 3
+ str r5, [r4, 0x3C]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ cmp r2, 0x1
+ beq _080A3E60
+ cmp r2, 0x1
+ bgt _080A3E50
+ cmp r2, 0
+ beq _080A3E56
+ b _080A3EA4
+_080A3E50:
+ cmp r2, 0x2
+ beq _080A3E7E
+ b _080A3EA4
+_080A3E56:
+ str r2, [r4, 0x40]
+ str r2, [r4, 0x44]
+ str r2, [r4, 0x48]
+ str r2, [r4, 0x4C]
+ b _080A3EA4
+_080A3E60:
+ lsrs r1, 31
+ adds r1, r6, r1
+ asrs r1, 1
+ str r1, [r4, 0x40]
+ lsrs r0, 31
+ adds r0, r5, r0
+ asrs r0, 1
+ str r0, [r4, 0x44]
+ lsls r1, 4
+ mov r2, r8
+ subs r1, r2, r1
+ str r1, [r4, 0x48]
+ lsls r0, 4
+ subs r0, r7, r0
+ b _080A3EA2
+_080A3E7E:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r4, 0x40]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r4, 0x44]
+ lsls r0, r6, 3
+ mov r3, r8
+ subs r0, r3, r0
+ str r0, [r4, 0x48]
+ adds r0, r7, 0
+ movs r1, 0x18
+ bl __modsi3
+_080A3EA2:
+ str r0, [r4, 0x4C]
+_080A3EA4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3E14
+
+ thumb_func_start sub_80A3EB0
+sub_80A3EB0:
+ push {lr}
+ ldr r1, [r0, 0x18]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3EB0
+
+ thumb_func_start sub_80A3EBC
+sub_80A3EBC:
+ push {lr}
+ ldr r0, [r0, 0x28]
+ movs r2, 0
+ movs r1, 0x80
+ lsls r1, 3
+_080A3EC6:
+ strh r2, [r0]
+ adds r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080A3EC6
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3EBC
+
+ thumb_func_start sub_80A3ED4
+sub_80A3ED4:
+ push {lr}
+ ldr r1, [r0, 0x28]
+ ldr r0, [r0, 0x2C]
+ movs r3, 0
+ movs r2, 0x80
+ lsls r2, 3
+_080A3EE0:
+ strh r3, [r1]
+ adds r1, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A3EE0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3ED4
+
+ thumb_func_start sub_80A3EF4
+sub_80A3EF4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r1, [r0, 0x44]
+ lsls r1, 6
+ ldr r2, [r0, 0x40]
+ adds r1, r2
+ lsls r1, 1
+ ldr r2, [r0, 0x20]
+ adds r2, r1
+ movs r1, 0
+ mov r12, r1
+ ldr r3, [r0, 0x28]
+ str r3, [sp, 0xC]
+ ldr r0, [r0, 0x1C]
+ mov r10, r0
+ mov r0, sp
+ str r0, [sp, 0x8]
+_080A3F1E:
+ adds r5, r2, 0
+ movs r2, 0x80
+ adds r2, r5
+ mov r9, r2
+ adds r1, 0x1
+ mov r8, r1
+ ldr r1, [sp, 0x8]
+ mov r3, r12
+ lsls r0, r3, 1
+ ldr r2, [sp, 0xC]
+ adds r0, r2
+ movs r2, 0x1
+_080A3F36:
+ stm r1!, {r0}
+ adds r0, 0x40
+ movs r3, 0x20
+ add r12, r3
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A3F36
+ movs r4, 0
+ mov r7, sp
+_080A3F48:
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r10
+ adds r3, r1, r0
+ adds r5, 0x2
+ adds r6, r4, 0x1
+ adds r4, r7, 0
+ movs r2, 0x1
+_080A3F5C:
+ ldr r0, [r4]
+ ldrh r1, [r3]
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, 0x2
+ ldrh r1, [r3]
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, 0x2
+ stm r4!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080A3F5C
+ adds r4, r6, 0
+ cmp r4, 0xF
+ ble _080A3F48
+ mov r2, r9
+ mov r1, r8
+ cmp r1, 0xA
+ ble _080A3F1E
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3EF4
+
+ thumb_func_start sub_80A3F94
+sub_80A3F94:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r1, [r0, 0x44]
+ lsls r1, 6
+ ldr r2, [r0, 0x40]
+ adds r1, r2
+ lsls r1, 1
+ ldr r2, [r0, 0x20]
+ adds r3, r2, r1
+ ldr r2, [r0, 0x24]
+ adds r2, r1
+ movs r1, 0
+ ldr r4, [r0, 0x28]
+ str r4, [sp, 0x2C]
+ ldr r5, [r0, 0x2C]
+ str r5, [sp, 0x18]
+ ldr r0, [r0, 0x1C]
+ str r0, [sp, 0x1C]
+ mov r0, sp
+ str r0, [sp, 0x10]
+ mov r4, sp
+ adds r4, 0x8
+ str r4, [sp, 0x14]
+ movs r5, 0
+ str r5, [sp, 0x30]
+_080A3FCE:
+ mov r8, r3
+ mov r12, r2
+ mov r0, r8
+ adds r0, 0x80
+ str r0, [sp, 0x20]
+ mov r4, r12
+ adds r4, 0x80
+ str r4, [sp, 0x24]
+ adds r1, 0x1
+ str r1, [sp, 0x28]
+ ldr r3, [sp, 0x14]
+ ldr r2, [sp, 0x10]
+ ldr r5, [sp, 0x30]
+ ldr r0, [sp, 0x18]
+ adds r1, r5, r0
+ ldr r4, [sp, 0x2C]
+ adds r0, r5, r4
+ movs r5, 0x1
+_080A3FF2:
+ stm r2!, {r0}
+ stm r3!, {r1}
+ adds r1, 0x40
+ adds r0, 0x40
+ ldr r4, [sp, 0x30]
+ adds r4, 0x40
+ str r4, [sp, 0x30]
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A3FF2
+ movs r2, 0
+ ldr r5, [sp, 0x1C]
+ mov r9, r5
+_080A400C:
+ mov r0, r8
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r9
+ adds r4, r1, r0
+ movs r5, 0x2
+ add r8, r5
+ mov r0, r12
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r9
+ adds r3, r1, r0
+ add r12, r5
+ movs r5, 0
+ adds r2, 0x1
+ mov r10, r2
+ ldr r7, [sp, 0x14]
+ ldr r6, [sp, 0x10]
+_080A4038:
+ ldr r1, [r6]
+ ldr r2, [r7]
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r4, 0x2
+ adds r1, 0x2
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r4, 0x2
+ adds r1, 0x2
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ stm r6!, {r1}
+ stm r7!, {r2}
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _080A4038
+ mov r2, r10
+ cmp r2, 0xF
+ ble _080A400C
+ ldr r3, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ ldr r1, [sp, 0x28]
+ cmp r1, 0xA
+ ble _080A3FCE
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A3F94
+
+ thumb_func_start sub_80A4088
+sub_80A4088:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r0, [r4, 0x38]
+ movs r1, 0x3
+ bl __modsi3
+ adds r7, r0, 0
+ ldr r0, [r4, 0x44]
+ lsls r0, 6
+ ldr r1, [r4, 0x40]
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ mov r8, r0
+ ldr r2, [r4, 0x28]
+ str r2, [sp, 0xC]
+ ldr r4, [r4, 0x1C]
+ mov r12, r4
+_080A40BA:
+ adds r5, r1, 0
+ movs r1, 0x80
+ adds r1, r5
+ mov r9, r1
+ adds r0, 0x1
+ mov r10, r0
+ mov r1, sp
+ mov r2, r8
+ lsls r0, r2, 1
+ ldr r2, [sp, 0xC]
+ adds r0, r2
+ movs r3, 0x2
+_080A40D2:
+ stm r1!, {r0}
+ adds r0, 0x40
+ movs r2, 0x20
+ add r8, r2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A40D2
+ cmp r7, 0
+ beq _080A412E
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r12
+ adds r2, r1, r0
+ adds r5, 0x2
+ cmp r7, 0x1
+ bne _080A4116
+ adds r2, 0x2
+ mov r4, sp
+ movs r3, 0x2
+_080A40FC:
+ ldr r0, [r4]
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r0, 0x2
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0]
+ adds r0, 0x2
+ stm r4!, {r0}
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A40FC
+ b _080A412E
+_080A4116:
+ adds r2, 0x4
+ mov r4, sp
+ movs r3, 0x2
+_080A411C:
+ ldr r1, [r4]
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ stm r4!, {r1}
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A411C
+_080A412E:
+ movs r3, 0
+_080A4130:
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r12
+ adds r2, r1, r0
+ adds r5, 0x2
+ adds r6, r3, 0x1
+ mov r4, sp
+ movs r3, 0x2
+_080A4144:
+ ldr r1, [r4]
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ stm r4!, {r1}
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A4144
+ adds r3, r6, 0
+ cmp r3, 0x9
+ ble _080A4130
+ cmp r7, 0x1
+ beq _080A41AA
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r12
+ adds r2, r1, r0
+ cmp r7, 0
+ bne _080A4198
+ mov r4, sp
+ movs r3, 0x2
+_080A4184:
+ ldm r4!, {r0}
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x2]
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A4184
+ b _080A41AA
+_080A4198:
+ mov r4, sp
+ movs r3, 0x2
+_080A419C:
+ ldm r4!, {r1}
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A419C
+_080A41AA:
+ mov r1, r9
+ mov r0, r10
+ cmp r0, 0x7
+ ble _080A40BA
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4088
+
+ thumb_func_start sub_80A41C4
+sub_80A41C4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r8, r0
+ ldr r0, [r0, 0x38]
+ movs r1, 0x3
+ bl __modsi3
+ str r0, [sp, 0xC]
+ mov r0, r8
+ ldr r2, [r0, 0x44]
+ lsls r0, r2, 6
+ mov r1, r8
+ ldr r3, [r1, 0x40]
+ adds r0, r3
+ lsls r0, 1
+ ldr r1, [r1, 0x20]
+ adds r4, r1, r0
+ movs r0, 0
+ str r0, [sp, 0x10]
+ mov r1, r8
+ ldr r0, [r1, 0xC]
+ subs r0, r2
+ mov r10, r0
+ ldr r0, [r1, 0x8]
+ subs r0, r3
+ str r0, [sp, 0x14]
+ movs r2, 0
+_080A4202:
+ ldr r5, [sp, 0x14]
+ mov r3, r10
+ cmp r3, 0
+ ble _080A4212
+ movs r0, 0x1
+ negs r0, r0
+ add r10, r0
+ b _080A4222
+_080A4212:
+ mov r1, r8
+ ldr r1, [r1, 0xC]
+ mov r10, r1
+ mov r3, r8
+ ldr r0, [r3, 0x40]
+ lsls r0, 1
+ ldr r1, [r3, 0x20]
+ adds r4, r1, r0
+_080A4222:
+ adds r6, r4, 0
+ mov r0, r8
+ ldr r1, [r0, 0x28]
+ ldrh r7, [r4]
+ ldr r3, [r0, 0x1C]
+ mov r9, r3
+ adds r0, r4, 0x2
+ mov r12, r0
+ adds r4, 0x80
+ str r4, [sp, 0x18]
+ adds r2, 0x1
+ str r2, [sp, 0x1C]
+ mov r2, sp
+ ldr r3, [sp, 0x10]
+ lsls r0, r3, 1
+ adds r0, r1
+ movs r3, 0x2
+_080A4244:
+ stm r2!, {r0}
+ adds r0, 0x40
+ ldr r4, [sp, 0x10]
+ adds r4, 0x20
+ str r4, [sp, 0x10]
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A4244
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ beq _080A42B2
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r0, 1
+ mov r1, r9
+ adds r2, r1, r0
+ mov r6, r12
+ ldr r3, [sp, 0xC]
+ cmp r3, 0x1
+ bne _080A428C
+ adds r2, 0x2
+ mov r4, sp
+ movs r3, 0x2
+_080A4272:
+ ldr r0, [r4]
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r0, 0x2
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0]
+ adds r0, 0x2
+ stm r4!, {r0}
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A4272
+ b _080A42A4
+_080A428C:
+ adds r2, 0x4
+ mov r4, sp
+ movs r3, 0x2
+_080A4292:
+ ldr r1, [r4]
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ stm r4!, {r1}
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A4292
+_080A42A4:
+ subs r5, 0x1
+ cmp r5, 0
+ bgt _080A42B2
+ mov r4, r8
+ ldr r5, [r4, 0x8]
+ lsls r0, r5, 1
+ subs r6, r0
+_080A42B2:
+ movs r3, 0
+_080A42B4:
+ ldrh r1, [r6]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r9
+ adds r2, r1, r0
+ adds r6, 0x2
+ subs r5, 0x1
+ adds r7, r3, 0x1
+ mov r4, sp
+ movs r3, 0x2
+_080A42CA:
+ ldr r1, [r4]
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ stm r4!, {r1}
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A42CA
+ cmp r5, 0
+ bgt _080A42F8
+ mov r3, r8
+ ldr r5, [r3, 0x8]
+ lsls r0, r5, 1
+ subs r6, r0
+_080A42F8:
+ adds r3, r7, 0
+ cmp r3, 0x9
+ ble _080A42B4
+ ldr r4, [sp, 0xC]
+ cmp r4, 0x1
+ beq _080A433E
+ ldrh r1, [r6]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r9
+ adds r2, r1, r0
+ cmp r4, 0
+ bne _080A432C
+ mov r4, sp
+ movs r3, 0x2
+_080A4318:
+ ldm r4!, {r0}
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x2]
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A4318
+ b _080A433E
+_080A432C:
+ mov r4, sp
+ movs r3, 0x2
+_080A4330:
+ ldm r4!, {r1}
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x6
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080A4330
+_080A433E:
+ ldr r4, [sp, 0x18]
+ ldr r2, [sp, 0x1C]
+ cmp r2, 0x7
+ bgt _080A4348
+ b _080A4202
+_080A4348:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A41C4
+
+ thumb_func_start sub_80A4358
+sub_80A4358:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ adds r4, r0, 0
+ ldr r0, [r4, 0x38]
+ movs r1, 0x3
+ bl __modsi3
+ str r0, [sp, 0x18]
+ ldr r0, [r4, 0x44]
+ lsls r0, 6
+ ldr r1, [r4, 0x40]
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, [r4, 0x20]
+ adds r2, r1, r0
+ ldr r1, [r4, 0x24]
+ adds r1, r0
+ movs r0, 0
+ ldr r3, [r4, 0x28]
+ str r3, [sp, 0x24]
+ ldr r5, [r4, 0x2C]
+ str r5, [sp, 0x28]
+ ldr r4, [r4, 0x1C]
+ str r4, [sp, 0x20]
+ mov r3, sp
+ adds r3, 0xC
+ str r3, [sp, 0x1C]
+ movs r4, 0
+ str r4, [sp, 0x38]
+_080A439A:
+ mov r12, r2
+ mov r8, r1
+ mov r5, r12
+ adds r5, 0x80
+ str r5, [sp, 0x30]
+ adds r1, 0x80
+ str r1, [sp, 0x34]
+ adds r0, 0x1
+ str r0, [sp, 0x2C]
+ add r3, sp, 0xC
+ mov r2, sp
+ ldr r4, [sp, 0x38]
+ ldr r5, [sp, 0x28]
+ adds r1, r4, r5
+ ldr r5, [sp, 0x24]
+ adds r0, r4, r5
+ movs r5, 0x2
+_080A43BC:
+ stm r2!, {r0}
+ stm r3!, {r1}
+ adds r1, 0x40
+ adds r0, 0x40
+ ldr r4, [sp, 0x38]
+ adds r4, 0x40
+ str r4, [sp, 0x38]
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A43BC
+ ldr r5, [sp, 0x18]
+ cmp r5, 0
+ beq _080A445C
+ mov r0, r12
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, [sp, 0x20]
+ adds r4, r1, r0
+ movs r3, 0x2
+ add r12, r3
+ mov r5, r8
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, [sp, 0x20]
+ adds r3, r1, r0
+ movs r5, 0x2
+ add r8, r5
+ ldr r0, [sp, 0x18]
+ cmp r0, 0x1
+ bne _080A4434
+ adds r4, 0x2
+ adds r3, 0x2
+ ldr r7, [sp, 0x1C]
+ mov r6, sp
+_080A4408:
+ ldr r1, [r6]
+ ldr r2, [r7]
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r3, 0x2]
+ strh r0, [r2]
+ adds r2, 0x2
+ stm r6!, {r1}
+ stm r7!, {r2}
+ adds r4, 0x6
+ adds r3, 0x6
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A4408
+ b _080A445C
+_080A4434:
+ adds r4, 0x4
+ adds r3, 0x4
+ ldr r6, [sp, 0x1C]
+ mov r2, sp
+ movs r5, 0x2
+_080A443E:
+ ldr r1, [r2]
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r1, 0x2
+ stm r2!, {r1}
+ ldr r1, [r6]
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r1, 0x2
+ stm r6!, {r1}
+ adds r4, 0x6
+ adds r3, 0x6
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A443E
+_080A445C:
+ movs r2, 0
+ ldr r1, [sp, 0x20]
+ mov r9, r1
+_080A4462:
+ mov r3, r12
+ ldrh r1, [r3]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ mov r5, r9
+ adds r4, r5, r0
+ movs r0, 0x2
+ add r12, r0
+ mov r3, r8
+ ldrh r1, [r3]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ adds r3, r5, r0
+ movs r5, 0x2
+ add r8, r5
+ movs r5, 0
+ adds r2, 0x1
+ mov r10, r2
+ mov r7, sp
+ add r6, sp, 0xC
+_080A448E:
+ ldr r1, [r7]
+ ldr r2, [r6]
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r4, 0x2
+ adds r1, 0x2
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r4, 0x2
+ adds r1, 0x2
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r4, 0x2
+ adds r1, 0x2
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ stm r7!, {r1}
+ stm r6!, {r2}
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080A448E
+ mov r2, r10
+ cmp r2, 0x9
+ ble _080A4462
+ ldr r0, [sp, 0x18]
+ cmp r0, 0x1
+ beq _080A453A
+ mov r3, r12
+ ldrh r1, [r3]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r5, [sp, 0x20]
+ adds r4, r5, r0
+ mov r0, r8
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ adds r3, r5, r0
+ ldr r1, [sp, 0x18]
+ cmp r1, 0
+ bne _080A451E
+ ldr r7, [sp, 0x1C]
+ mov r6, sp
+ movs r5, 0x2
+_080A44FE:
+ ldm r6!, {r1}
+ ldm r7!, {r2}
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r1, 0x2]
+ ldrh r0, [r3]
+ strh r0, [r2]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r2, 0x2]
+ adds r4, 0x6
+ adds r3, 0x6
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A44FE
+ b _080A453A
+_080A451E:
+ ldr r6, [sp, 0x1C]
+ mov r2, sp
+ movs r5, 0x2
+_080A4524:
+ ldm r2!, {r1}
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldm r6!, {r1}
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r4, 0x6
+ adds r3, 0x6
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A4524
+_080A453A:
+ ldr r2, [sp, 0x30]
+ ldr r1, [sp, 0x34]
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0x7
+ bgt _080A4546
+ b _080A439A
+_080A4546:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4358
+
+ thumb_func_start sub_80A4558
+sub_80A4558:
+ lsls r1, 3
+ movs r3, 0x8F
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r1
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ bx lr
+ thumb_func_end sub_80A4558
+
+ thumb_func_start sub_80A456C
+sub_80A456C:
+ lsls r1, 3
+ movs r3, 0x8F
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r2, [r2, 0x4]
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_80A456C
+
+ thumb_func_start sub_80A4580
+sub_80A4580:
+ push {r4,lr}
+ adds r3, r2, 0
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 4
+ movs r1, 0x91
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r0, r2
+ ldr r0, [r3]
+ cmp r0, 0
+ bge _080A45AE
+ ldrb r0, [r2, 0x6]
+ ldr r4, [r3, 0x4]
+ cmp r0, 0
+ beq _080A45CA
+ ldr r1, [r2, 0x10]
+_080A45A2:
+ ldr r0, [r3]
+ adds r0, r1
+ str r0, [r3]
+ cmp r0, 0
+ blt _080A45A2
+ b _080A45CC
+_080A45AE:
+ ldr r1, [r2, 0x10]
+ ldr r4, [r3, 0x4]
+ cmp r0, r1
+ blt _080A45CC
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _080A45C8
+_080A45BC:
+ ldr r0, [r3]
+ subs r0, r1
+ str r0, [r3]
+ cmp r0, r1
+ bge _080A45BC
+ b _080A45CC
+_080A45C8:
+ subs r0, r1, 0x1
+_080A45CA:
+ str r0, [r3]
+_080A45CC:
+ cmp r4, 0
+ bge _080A45E4
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _080A45FE
+ ldr r1, [r2, 0x14]
+_080A45D8:
+ ldr r0, [r3, 0x4]
+ adds r0, r1
+ str r0, [r3, 0x4]
+ cmp r0, 0
+ blt _080A45D8
+ b _080A4600
+_080A45E4:
+ ldr r1, [r2, 0x14]
+ cmp r4, r1
+ blt _080A4600
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _080A45FC
+_080A45F0:
+ ldr r0, [r3, 0x4]
+ subs r0, r1
+ str r0, [r3, 0x4]
+ cmp r0, r1
+ bge _080A45F0
+ b _080A4600
+_080A45FC:
+ subs r0, r1, 0x1
+_080A45FE:
+ str r0, [r3, 0x4]
+_080A4600:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4580
+
+ thumb_func_start sub_80A4608
+sub_80A4608:
+ movs r3, 0x89
+ lsls r3, 3
+ adds r2, r0, r3
+ ldrb r2, [r2]
+ str r2, [r1]
+ ldr r2, _080A461C
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_080A461C: .4byte 0x00000449
+ thumb_func_end sub_80A4608
+
+ thumb_func_start sub_80A4620
+sub_80A4620:
+ movs r3, 0x89
+ lsls r3, 3
+ adds r2, r0, r3
+ ldrb r2, [r2]
+ lsls r2, 3
+ str r2, [r1]
+ ldr r2, _080A4638
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ str r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_080A4638: .4byte 0x00000449
+ thumb_func_end sub_80A4620
+
+ thumb_func_start sub_80A463C
+sub_80A463C:
+ movs r3, 0
+ str r3, [r1]
+ str r3, [r1, 0x4]
+ movs r3, 0x89
+ lsls r3, 3
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ lsls r1, 11
+ str r1, [r2]
+ ldr r1, _080A465C
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 11
+ str r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_080A465C: .4byte 0x00000449
+ thumb_func_end sub_80A463C
+
+ thumb_func_start sub_80A4660
+sub_80A4660:
+ push {r4-r7,lr}
+ adds r6, r3, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r1, _080A4678
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _080A467C
+ movs r0, 0
+ b _080A46B6
+ .align 2, 0
+_080A4678: .4byte 0x00000544
+_080A467C:
+ ldr r0, [r2, 0x4]
+ lsls r0, 8
+ ldr r1, [r2]
+ adds r0, r1
+ ldr r1, _080A46BC
+ adds r0, r1
+ adds r4, r0
+ ldr r3, [r6, 0x4]
+ cmp r3, 0
+ ble _080A46B4
+ movs r7, 0x80
+ lsls r7, 1
+_080A4694:
+ ldr r1, [r6]
+ adds r2, r4, 0
+ cmp r1, 0
+ ble _080A46AC
+_080A469C:
+ ldrb r0, [r2]
+ ands r0, r5
+ adds r2, 0x1
+ cmp r0, 0
+ bne _080A46B6
+ subs r1, 0x1
+ cmp r1, 0
+ bgt _080A469C
+_080A46AC:
+ adds r4, r7
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _080A4694
+_080A46B4:
+ movs r0, 0
+_080A46B6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A46BC: .4byte 0x00000405
+ thumb_func_end sub_80A4660
+
+ thumb_func_start sub_80A46C0
+sub_80A46C0:
+ push {r4-r7,lr}
+ adds r6, r3, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r1, _080A46D8
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _080A46DC
+_080A46D2:
+ movs r0, 0
+ b _080A4716
+ .align 2, 0
+_080A46D8: .4byte 0x00000544
+_080A46DC:
+ ldr r0, [r2, 0x4]
+ lsls r0, 8
+ ldr r1, [r2]
+ adds r0, r1
+ ldr r1, _080A471C
+ adds r0, r1
+ adds r4, r0
+ ldr r3, [r6, 0x4]
+ cmp r3, 0
+ ble _080A4714
+ movs r7, 0x80
+ lsls r7, 1
+_080A46F4:
+ ldr r1, [r6]
+ adds r2, r4, 0
+ cmp r1, 0
+ ble _080A470C
+_080A46FC:
+ ldrb r0, [r2]
+ ands r0, r5
+ adds r2, 0x1
+ cmp r0, r5
+ bne _080A46D2
+ subs r1, 0x1
+ cmp r1, 0
+ bgt _080A46FC
+_080A470C:
+ adds r4, r7
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _080A46F4
+_080A4714:
+ movs r0, 0x1
+_080A4716:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A471C: .4byte 0x00000405
+ thumb_func_end sub_80A46C0
+
+ thumb_func_start sub_80A4720
+sub_80A4720:
+ lsls r1, 2
+ ldr r3, _080A473C
+ adds r0, r3
+ adds r0, r1
+ ldr r1, [r2, 0x4]
+ lsls r1, 7
+ ldr r3, [r0]
+ adds r3, r1
+ ldr r0, [r2]
+ lsls r0, 1
+ adds r3, r0
+ ldrh r0, [r3]
+ bx lr
+ .align 2, 0
+_080A473C: .4byte 0x0000054c
+ thumb_func_end sub_80A4720
+
+ thumb_func_start sub_80A4740
+sub_80A4740:
+ push {r4,lr}
+ lsls r1, 2
+ ldr r4, _080A4760
+ adds r0, r4
+ adds r0, r1
+ ldr r1, [r2, 0x4]
+ lsls r1, 7
+ ldr r4, [r0]
+ adds r4, r1
+ ldr r0, [r2]
+ lsls r0, 1
+ adds r4, r0
+ strh r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4760: .4byte 0x0000054c
+ thumb_func_end sub_80A4740
+
+ thumb_func_start sub_80A4764
+sub_80A4764:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r0
+ ldr r0, _080A47E8
+ add r0, r9
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A4784
+ b _080A49CE
+_080A4784:
+ ldr r0, _080A47EC
+ add r0, r9
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r0, 0
+ beq _080A4864
+ mov r4, r9
+ ldr r0, _080A47F0
+ add r0, r9
+ ldr r5, [r0]
+ ldr r0, _080A47F4
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 20
+ lsrs r6, r0, 16
+ movs r7, 0
+ ldr r0, _080A47F8
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r7, r0
+ bge _080A484C
+_080A47B2:
+ ldr r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080A4832
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A4832
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A4808
+ ldr r0, _080A47FC
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A4800
+ ldrh r0, [r5]
+ strh r0, [r4, 0x2]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4]
+ str r1, [r4, 0x8]
+ b _080A480C
+ .align 2, 0
+_080A47E8: .4byte 0x00000444
+_080A47EC: .4byte 0x00000466
+_080A47F0: .4byte 0x0000046c
+_080A47F4: .4byte 0x0000052c
+_080A47F8: .4byte 0x00000464
+_080A47FC: .4byte 0x00000471
+_080A4800:
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ str r0, [r4, 0x8]
+ b _080A480C
+_080A4808:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x2]
+_080A480C:
+ ldr r0, [r4, 0x8]
+ cmp r0, 0
+ beq _080A4832
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8003810
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [r4, 0x8]
+ movs r2, 0xF
+ bl sub_809971C
+ ldr r0, [r4, 0x8]
+ adds r0, 0x3C
+ str r0, [r4, 0x8]
+_080A4832:
+ adds r7, 0x1
+ adds r4, 0x10
+ adds r5, 0x4
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080A485C
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r7, r0
+ blt _080A47B2
+_080A484C:
+ movs r0, 0x8E
+ lsls r0, 3
+ add r0, r9
+ ldrb r1, [r0]
+ ldr r0, _080A4860
+ add r0, r9
+ strb r1, [r0]
+ b _080A48E6
+ .align 2, 0
+_080A485C: .4byte 0x00000464
+_080A4860: .4byte 0x00000471
+_080A4864:
+ movs r0, 0x88
+ lsls r0, 3
+ add r0, r9
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080A48E6
+ mov r4, r9
+ adds r4, 0xE0
+ movs r6, 0xA0
+ movs r5, 0x1F
+_080A4878:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A48DC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D40
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A48DC
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A48DC
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ cmp r1, r0
+ bcc _080A48B0
+ ldr r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_080A48B0:
+ ldr r1, [r4, 0xC]
+ ldm r1!, {r0}
+ str r0, [r4, 0x14]
+ str r1, [r4, 0xC]
+ ldrb r1, [r4, 0x14]
+ add r0, sp, 0x4
+ strb r1, [r0]
+ ldrb r1, [r4, 0x15]
+ adds r0, 0x1
+ strb r1, [r0]
+ ldrb r1, [r4, 0x16]
+ adds r0, 0x1
+ strb r1, [r0]
+ ldrb r1, [r4, 0x17]
+ adds r0, 0x1
+ strb r1, [r0]
+ ldr r1, [sp, 0x4]
+ str r1, [sp]
+ lsls r0, r6, 16
+ lsrs r0, 16
+ bl sub_8003810
+_080A48DC:
+ subs r5, 0x1
+ adds r4, 0x18
+ adds r6, 0x1
+ cmp r5, 0
+ bge _080A4878
+_080A48E6:
+ movs r5, 0
+ movs r4, 0x1
+_080A48EA:
+ movs r2, 0xF8
+ lsls r2, 2
+ adds r0, r5, r2
+ mov r6, r9
+ adds r2, r6, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080A4942
+ ldrh r1, [r2, 0x4]
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x4]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _080A4942
+ ldr r0, [r2, 0x14]
+ adds r0, 0x4
+ str r0, [r2, 0x14]
+ ldr r1, [r2, 0x24]
+ lsrs r1, 1
+ lsls r1, 1
+ ldr r0, [r2, 0x1C]
+ adds r0, r1
+ str r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r2, 0x2]
+ ldr r1, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x2
+ ldrsh r1, [r1, r6]
+ cmp r0, r1
+ blt _080A4938
+ ldr r0, [r2, 0x10]
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ str r0, [r2, 0x1C]
+ strh r3, [r2, 0x2]
+_080A4938:
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ ldr r0, [r2, 0x14]
+ ldr r0, [r0]
+ strh r0, [r2, 0x4]
+_080A4942:
+ adds r5, 0x28
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080A48EA
+ movs r4, 0x91
+ lsls r4, 3
+ add r4, r9
+ movs r7, 0x8F
+ lsls r7, 3
+ add r7, r9
+ movs r0, 0
+ mov r8, r0
+ b _080A49BC
+_080A495C:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80A3E14
+ adds r0, r4, 0
+ bl sub_80A3EB0
+ movs r6, 0
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ ldr r0, _080A4998
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r5, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x1
+ add r8, r2
+ movs r1, 0x50
+ adds r1, r4
+ mov r10, r1
+ adds r7, 0x8
+ cmp r6, r0
+ bge _080A49BA
+_080A498E:
+ cmp r5, 0
+ beq _080A499C
+ cmp r5, 0x1
+ beq _080A49A6
+ b _080A49AE
+ .align 2, 0
+_080A4998: .4byte 0x00000536
+_080A499C:
+ ldr r0, [r4, 0x48]
+ ldr r1, [r4, 0x4C]
+ bl sub_800CCA0
+ b _080A49AE
+_080A49A6:
+ ldr r0, [r4, 0x48]
+ ldr r1, [r4, 0x4C]
+ bl sub_800CCAC
+_080A49AE:
+ adds r6, 0x1
+ adds r5, 0x1
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r6, r0
+ blt _080A498E
+_080A49BA:
+ mov r4, r10
+_080A49BC:
+ ldr r0, _080A49E0
+ add r0, r9
+ ldr r0, [r0]
+ cmp r8, r0
+ blt _080A495C
+ ldr r1, _080A49E4
+ add r1, r9
+ movs r0, 0x1
+ strb r0, [r1]
+_080A49CE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A49E0: .4byte 0x00000474
+_080A49E4: .4byte 0x0000052a
+ thumb_func_end sub_80A4764
+
+ thumb_func_start sub_80A49E8
+sub_80A49E8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, _080A4A74
+ adds r5, r6, r0
+ movs r1, 0xFF
+ lsls r1, 2
+ adds r4, r6, r1
+ ldr r0, _080A4A78
+ adds r0, r6
+ mov r8, r0
+ movs r7, 0x1
+_080A4A02:
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080A4A1C
+ ldr r0, [r4, 0x4]
+ ldr r1, [r4]
+ ldr r2, [r4, 0x8]
+ bl MemoryCopy32
+ movs r0, 0
+ strb r0, [r5]
+ movs r0, 0x1
+ mov r1, r8
+ strb r0, [r1]
+_080A4A1C:
+ adds r5, 0x28
+ adds r4, 0x28
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080A4A02
+ ldr r1, _080A4A78
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080A4A68
+ movs r5, 0
+ adds r1, 0xC
+ adds r0, r6, r1
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ movs r1, 0xA7
+ lsls r1, 3
+ adds r0, r6, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ bge _080A4A60
+ movs r0, 0xA7
+ lsls r0, 3
+ adds r7, r6, r0
+_080A4A4E:
+ adds r0, r4, 0x2
+ bl sub_80098F8
+ adds r5, 0x1
+ adds r4, 0x1
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r5, r0
+ blt _080A4A4E
+_080A4A60:
+ ldr r0, _080A4A78
+ adds r1, r6, r0
+ movs r0, 0
+ strb r0, [r1]
+_080A4A68:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4A74: .4byte 0x000003e1
+_080A4A78: .4byte 0x0000052a
+ thumb_func_end sub_80A49E8
+
+ thumb_func_start sub_80A4A7C
+sub_80A4A7C:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080A4AB8
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0xE4
+ ldr r1, _080A4ABC
+ strh r1, [r2]
+ ldr r1, _080A4AC0
+ movs r3, 0x1
+ negs r3, r3
+ str r3, [sp]
+ movs r2, 0
+ bl sub_809D600
+ movs r0, 0
+ bl sub_80A5E8C
+ bl sub_80A4AEC
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4AB8: .4byte gUnknown_3001B6C
+_080A4ABC: .4byte 0x0000ffff
+_080A4AC0: .4byte gUnknown_811736C
+ thumb_func_end sub_80A4A7C
+
+ thumb_func_start sub_80A4AC4
+sub_80A4AC4:
+ push {r4,lr}
+ bl sub_80A4AEC
+ bl sub_80A5EBC
+ ldr r4, _080A4AE8
+ ldr r0, [r4]
+ bl sub_809D648
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4AE8: .4byte gUnknown_3001B6C
+ thumb_func_end sub_80A4AC4
+
+ thumb_func_start sub_80A4AEC
+sub_80A4AEC:
+ push {r4,lr}
+ movs r0, 0
+ movs r1, 0x37
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x38
+ bl sub_80015C0
+ ldr r0, _080A4B2C
+ ldr r0, [r0]
+ ldr r1, _080A4B30
+ bl sub_809D754
+ ldr r4, _080A4B34
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A4B1E
+ bl sub_80A2D00
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080A4B1E:
+ movs r0, 0
+ bl sub_80A5EDC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B2C: .4byte gUnknown_3001B6C
+_080A4B30: .4byte gUnknown_8117538
+_080A4B34: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A4AEC
+
+ thumb_func_start sub_80A4B38
+sub_80A4B38:
+ push {lr}
+ bl nullsub_121
+ ldr r0, _080A4B50
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080A4B4A
+ bl sub_80A2D68
+_080A4B4A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B50: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A4B38
+
+ thumb_func_start sub_80A4B54
+sub_80A4B54:
+ push {lr}
+ ldr r0, _080A4B6C
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080A4B62
+ bl sub_80A2D88
+_080A4B62:
+ bl nullsub_122
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4B6C: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A4B54
+
+ thumb_func_start GroundMap_GetStationScript
+GroundMap_GetStationScript:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ adds r5, r3, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r6, 16
+ asrs r6, 16
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r4, 0
+ bl sub_80A77A0
+ ldr r1, _080A4BE0
+ adds r0, r4, 0
+ bl sub_80A77D0
+ mov r9, r0
+ ldr r1, _080A4BE4
+ str r5, [sp]
+ movs r0, 0
+ adds r2, r4, 0
+ adds r3, r6, 0
+ bl Log
+ lsls r1, r6, 3
+ mov r2, r9
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ ldr r0, [r0, 0x4]
+ adds r0, r1
+ ldr r0, [r0, 0x24]
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ mov r1, r8
+ str r0, [r1]
+ movs r0, 0x2
+ strh r0, [r1, 0x4]
+ strh r6, [r1, 0x6]
+ strb r5, [r1, 0x8]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4BE0: .4byte gUnknown_8117560
+_080A4BE4: .4byte gUnknown_811756C
+ thumb_func_end GroundMap_GetStationScript
+
+ thumb_func_start sub_80A4BE8
+sub_80A4BE8:
+ push {lr}
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0
+ movs r3, 0
+ bl GroundMap_GetStationScript
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A4BE8
+
+ thumb_func_start GroundMap_ExecuteEvent
+GroundMap_ExecuteEvent:
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080A4C44
+ movs r0, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl Log
+ movs r0, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_809D710
+ cmp r5, 0
+ beq _080A4C2C
+ mov r1, sp
+ movs r0, 0x5
+ strh r0, [r1, 0x4]
+_080A4C2C:
+ ldr r0, _080A4C48
+ ldr r0, [r0]
+ ldr r3, _080A4C4C
+ movs r1, 0
+ mov r2, sp
+ bl GroundScript_ExecutePP
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4C44: .4byte gUnknown_8117594
+_080A4C48: .4byte gUnknown_3001B6C
+_080A4C4C: .4byte gUnknown_81175E0
+ thumb_func_end GroundMap_ExecuteEvent
+
+ thumb_func_start GroundMap_ExecuteStation
+GroundMap_ExecuteStation:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 24
+ asrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _080A4CB8
+ str r6, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl Log
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl GroundMap_GetStationScript
+ mov r0, r8
+ cmp r0, 0
+ beq _080A4C9C
+ add r1, sp, 0x8
+ movs r0, 0x5
+ strh r0, [r1, 0x4]
+_080A4C9C:
+ ldr r0, _080A4CBC
+ ldr r0, [r0]
+ ldr r3, _080A4CC0
+ movs r1, 0
+ add r2, sp, 0x8
+ bl GroundScript_ExecutePP
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4CB8: .4byte gUnknown_81175EC
+_080A4CBC: .4byte gUnknown_3001B6C
+_080A4CC0: .4byte gUnknown_8117644
+ thumb_func_end GroundMap_ExecuteStation
+
+ thumb_func_start GroundMap_ExecuteEnter
+GroundMap_ExecuteEnter:
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ ldr r1, _080A4D08
+ movs r0, 0
+ adds r2, r4, 0
+ bl Log
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80A4BE8
+ mov r1, sp
+ movs r3, 0
+ movs r2, 0
+ movs r0, 0x2
+ strh r0, [r1, 0x4]
+ mov r0, sp
+ strh r2, [r0, 0x6]
+ strb r3, [r0, 0x8]
+ ldr r0, _080A4D0C
+ ldr r0, [r0]
+ ldr r3, _080A4D10
+ movs r1, 0
+ mov r2, sp
+ bl GroundScript_ExecutePP
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A4D08: .4byte gUnknown_8117650
+_080A4D0C: .4byte gUnknown_3001B6C
+_080A4D10: .4byte gUnknown_8117698
+ thumb_func_end GroundMap_ExecuteEnter
+
+ thumb_func_start sub_80A4D14
+sub_80A4D14:
+ push {lr}
+ ldr r0, _080A4D28
+ ldr r0, [r0]
+ bl sub_809D678
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A4D28: .4byte gUnknown_3001B6C
+ thumb_func_end sub_80A4D14
+
+ thumb_func_start sub_80A4D2C
+sub_80A4D2C:
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _080A4D44
+ ldr r0, [r0]
+ bl sub_809D968
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A4D44: .4byte gUnknown_3001B6C
+ thumb_func_end sub_80A4D2C
+
+ thumb_func_start sub_80A4D48
+sub_80A4D48:
+ push {lr}
+ lsls r0, 16
+ asrs r2, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _080A4D74
+ ldr r1, _080A4D70
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x5
+ beq _080A4D6C
+ cmp r0, 0x8
+ bne _080A4D74
+_080A4D6C:
+ movs r0, 0
+ b _080A4D76
+ .align 2, 0
+_080A4D70: .4byte gUnknown_811BAF4
+_080A4D74:
+ movs r0, 0x1
+_080A4D76:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4D48
+
+ thumb_func_start sub_80A4D7C
+sub_80A4D7C:
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x9
+ beq _080A4D94
+ cmp r5, 0x9
+ bgt _080A4D90
+ cmp r5, 0x2
+ beq _080A4DB6
+ b _080A4DC4
+_080A4D90:
+ cmp r5, 0xC
+ bne _080A4DC4
+_080A4D94:
+ movs r0, 0
+ movs r1, 0x27
+ bl sub_8001658
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x28
+ bl sub_8001658
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 1
+ adds r1, r0
+ adds r1, r5, r1
+ lsls r1, 16
+ asrs r5, r1, 16
+ b _080A4DC4
+_080A4DB6:
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A4DC4
+ movs r5, 0x3
+_080A4DC4:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A4D7C
+
+ thumb_func_start GroundMap_Select
+GroundMap_Select:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ ldr r1, _080A4E38
+ movs r0, 0
+ adds r2, r5, 0
+ bl Log
+ movs r0, 0
+ movs r1, 0x37
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x38
+ bl sub_80015C0
+ movs r0, 0
+ bl sub_80A5EDC
+ ldr r4, _080A4E3C
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A4E08
+ bl sub_80A2D00
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080A4E08:
+ ldr r0, _080A4E40
+ movs r1, 0x6
+ bl MemoryAlloc
+ adds r2, r0, 0
+ str r2, [r4]
+ ldr r0, _080A4E44
+ ldr r0, [r0]
+ adds r0, 0xE4
+ strh r5, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _080A4E4C
+ ldr r1, _080A4E48
+ adds r0, r2, 0
+ bl sub_80A2B40
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl sub_80A2FBC
+ b _080A50BA
+ .align 2, 0
+_080A4E38: .4byte gUnknown_81176A4
+_080A4E3C: .4byte gUnknown_3001B70
+_080A4E40: .4byte 0x0000055c
+_080A4E44: .4byte gUnknown_3001B6C
+_080A4E48: .4byte gUnknown_8117324
+_080A4E4C:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _080A4E6C
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bhi _080A4F20
+ lsls r0, 2
+ ldr r1, _080A4E70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A4E6C: .4byte gUnknown_811BAF4
+_080A4E70: .4byte _080A4E74
+ .align 2, 0
+_080A4E74:
+ .4byte _080A4F08
+ .4byte _080A4F20
+ .4byte _080A4F20
+ .4byte _080A4F20
+ .4byte _080A4F20
+ .4byte _080A4F20
+ .4byte _080A4EA8
+ .4byte _080A4EA8
+ .4byte _080A4EA8
+ .4byte _080A4EA8
+ .4byte _080A4EA8
+ .4byte _080A4ECC
+ .4byte _080A4ECC
+_080A4EA8:
+ ldr r0, _080A4EC0
+ ldr r0, [r0]
+ ldr r1, _080A4EC4
+ bl sub_80A2B40
+ ldr r1, _080A4EC8
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080A4F30
+ .align 2, 0
+_080A4EC0: .4byte gUnknown_3001B70
+_080A4EC4: .4byte gUnknown_811733C
+_080A4EC8: .4byte gUnknown_2026E4E
+_080A4ECC:
+ ldr r4, _080A4EDC
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ negs r1, r1
+ ldr r6, _080A4EE0
+ b _080A4EEA
+ .align 2, 0
+_080A4EDC: .4byte gUnknown_81173C0
+_080A4EE0: .4byte gUnknown_3001B70
+_080A4EE4:
+ adds r4, 0xC
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+_080A4EEA:
+ cmp r0, r1
+ beq _080A4EF2
+ cmp r0, r5
+ bne _080A4EE4
+_080A4EF2:
+ ldr r0, [r6]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r6]
+ adds r1, r4, 0x4
+ ldr r2, [r4, 0x8]
+ adds r0, r5, 0
+ bl GroundMap_SelectDungeon
+ b _080A50BA
+_080A4F08:
+ ldr r0, _080A4F18
+ ldr r1, _080A4F1C
+ movs r2, 0
+ ldrsh r3, [r6, r2]
+ adds r2, r5, 0
+ bl FatalError
+ .align 2, 0
+_080A4F18: .4byte gUnknown_81176D0
+_080A4F1C: .4byte gUnknown_81176DC
+_080A4F20:
+ ldr r0, _080A4FA0
+ ldr r0, [r0]
+ ldr r1, _080A4FA4
+ bl sub_80A2B40
+ movs r0, 0x1
+ bl sub_80A5EDC
+_080A4F30:
+ ldr r5, _080A4FA0
+ ldr r0, [r5]
+ movs r2, 0x4
+ ldrsh r1, [r6, r2]
+ bl sub_80A2FBC
+ ldr r0, _080A4FA8
+ ldr r0, [r0]
+ mov r12, r0
+ adds r0, 0xE8
+ movs r1, 0
+ str r1, [r0]
+ adds r0, 0x4
+ str r1, [r0]
+ adds r0, 0x4
+ str r1, [r0]
+ adds r0, 0x4
+ str r1, [r0]
+ adds r0, 0x4
+ str r1, [r0]
+ adds r0, 0x4
+ str r1, [r0]
+ movs r4, 0x80
+ lsls r4, 1
+ add r4, r12
+ movs r3, 0x82
+ lsls r3, 1
+ add r3, r12
+ movs r2, 0x84
+ lsls r2, 1
+ add r2, r12
+ movs r0, 0x86
+ lsls r0, 1
+ add r0, r12
+ str r1, [r0]
+ str r1, [r2]
+ str r1, [r3]
+ str r1, [r4]
+ mov r0, r12
+ adds r0, 0xE4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xAD
+ beq _080A5034
+ cmp r0, 0xAD
+ bgt _080A4FC0
+ cmp r0, 0xA3
+ bgt _080A4FAC
+ cmp r0, 0xA2
+ bge _080A4FEE
+ cmp r0, 0x4
+ beq _080A5084
+ cmp r0, 0xA1
+ beq _080A5084
+ b _080A50A2
+ .align 2, 0
+_080A4FA0: .4byte gUnknown_3001B70
+_080A4FA4: .4byte gUnknown_8117324
+_080A4FA8: .4byte gUnknown_3001B6C
+_080A4FAC:
+ cmp r0, 0xAA
+ beq _080A500C
+ cmp r0, 0xAA
+ bgt _080A4FBA
+ cmp r0, 0xA8
+ beq _080A500C
+ b _080A50A2
+_080A4FBA:
+ cmp r0, 0xAB
+ beq _080A5018
+ b _080A50A2
+_080A4FC0:
+ cmp r0, 0xBA
+ beq _080A506A
+ cmp r0, 0xBA
+ bgt _080A4FD6
+ cmp r0, 0xAF
+ beq _080A5072
+ cmp r0, 0xAF
+ blt _080A5044
+ cmp r0, 0xB0
+ beq _080A5060
+ b _080A50A2
+_080A4FD6:
+ cmp r0, 0xDF
+ beq _080A4FEE
+ cmp r0, 0xDF
+ bgt _080A4FE4
+ cmp r0, 0xC0
+ beq _080A5020
+ b _080A50A2
+_080A4FE4:
+ cmp r0, 0xE0
+ beq _080A508E
+ cmp r0, 0xE1
+ beq _080A5096
+ b _080A50A2
+_080A4FEE:
+ ldr r0, _080A5000
+ ldr r0, [r0]
+ movs r1, 0x4
+ bl sub_80A3BB0
+ ldr r1, _080A5004
+ ldr r2, _080A5008
+ b _080A5050
+ .align 2, 0
+_080A5000: .4byte gUnknown_3001B70
+_080A5004: .4byte gUnknown_2026E4E
+_080A5008: .4byte 0x00000808
+_080A500C:
+ ldr r0, _080A5014
+ ldr r0, [r0]
+ b _080A5062
+ .align 2, 0
+_080A5014: .4byte gUnknown_3001B70
+_080A5018:
+ ldr r0, [r5]
+ movs r1, 0x1
+ bl sub_80A3BB0
+_080A5020:
+ ldr r0, _080A5030
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80A3B80
+ b _080A50A2
+ .align 2, 0
+_080A5030: .4byte gUnknown_3001B70
+_080A5034:
+ ldr r1, _080A503C
+ ldr r2, _080A5040
+ b _080A5050
+ .align 2, 0
+_080A503C: .4byte gUnknown_2026E4E
+_080A5040: .4byte 0x00001010
+_080A5044:
+ ldr r0, [r5]
+ movs r1, 0x4
+ bl sub_80A3BB0
+ ldr r1, _080A5058
+ ldr r2, _080A505C
+_080A5050:
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080A50A2
+ .align 2, 0
+_080A5058: .4byte gUnknown_2026E4E
+_080A505C: .4byte 0x0000080c
+_080A5060:
+ ldr r0, [r5]
+_080A5062:
+ movs r1, 0x1
+ bl sub_80A3BB0
+ b _080A50A2
+_080A506A:
+ ldr r0, _080A507C
+ ldr r2, _080A5080
+ adds r1, r2, 0
+ strh r1, [r0]
+_080A5072:
+ ldr r0, [r5]
+ movs r1, 0x4
+ bl sub_80A3BB0
+ b _080A50A2
+ .align 2, 0
+_080A507C: .4byte gUnknown_2026E4E
+_080A5080: .4byte 0x00001010
+_080A5084:
+ ldr r0, [r5]
+ movs r1, 0x3
+ bl sub_80A3BB0
+ b _080A50A2
+_080A508E:
+ ldr r0, [r5]
+ movs r1, 0x3
+ bl sub_80A3BB0
+_080A5096:
+ ldr r0, _080A50C0
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80A3B80
+_080A50A2:
+ movs r0, 0x6
+ ldrsh r1, [r6, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A50B4
+ adds r0, r1, 0
+ bl GroundWeather_Select
+_080A50B4:
+ ldr r0, _080A50C4
+ bl sub_80A56D8
+_080A50BA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A50C0: .4byte gUnknown_3001B70
+_080A50C4: .4byte gUnknown_81176F8
+ thumb_func_end GroundMap_Select
+
+ thumb_func_start GroundMap_SelectDungeon
+GroundMap_SelectDungeon:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r1
+ mov r10, r2
+ lsls r0, 16
+ asrs r5, r0, 16
+ ldr r1, _080A514C
+ movs r0, 0
+ adds r2, r5, 0
+ bl Log
+ movs r0, 0
+ movs r1, 0x37
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x38
+ bl sub_80015C0
+ movs r0, 0
+ bl sub_80A5EDC
+ ldr r7, _080A5150
+ ldr r0, [r7]
+ cmp r0, 0
+ beq _080A5110
+ bl sub_80A2D00
+ ldr r0, [r7]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r7]
+_080A5110:
+ ldr r0, _080A5154
+ movs r1, 0x6
+ bl MemoryAlloc
+ adds r2, r0, 0
+ str r2, [r7]
+ ldr r0, _080A5158
+ mov r9, r0
+ ldr r0, [r0]
+ adds r0, 0xE4
+ movs r4, 0
+ strh r5, [r0]
+ movs r6, 0x1
+ negs r6, r6
+ cmp r5, r6
+ beq _080A5138
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x63
+ bne _080A5160
+_080A5138:
+ ldr r1, _080A515C
+ adds r0, r2, 0
+ bl sub_80A2B40
+ ldr r0, [r7]
+ adds r1, r6, 0
+ bl sub_80A2FBC
+ b _080A51EC
+ .align 2, 0
+_080A514C: .4byte gUnknown_8117700
+_080A5150: .4byte gUnknown_3001B70
+_080A5154: .4byte 0x0000055c
+_080A5158: .4byte gUnknown_3001B6C
+_080A515C: .4byte gUnknown_8117324
+_080A5160:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _080A5180
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ subs r0, 0xA
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080A518C
+ ldr r0, _080A5184
+ ldr r1, _080A5188
+ adds r2, r5, 0
+ bl FatalError
+ .align 2, 0
+_080A5180: .4byte gUnknown_811BAF4
+_080A5184: .4byte gUnknown_8117734
+_080A5188: .4byte gUnknown_8117740
+_080A518C:
+ ldr r1, _080A51FC
+ adds r0, r2, 0
+ bl sub_80A2B40
+ movs r0, 0x1
+ bl sub_80A5EDC
+ ldr r0, [r7]
+ movs r2, 0x4
+ ldrsh r1, [r6, r2]
+ mov r2, r8
+ mov r3, r10
+ bl sub_80A3440
+ mov r0, r9
+ ldr r0, [r0]
+ mov r12, r0
+ adds r0, 0xE8
+ str r4, [r0]
+ adds r0, 0x4
+ str r4, [r0]
+ adds r0, 0x4
+ str r4, [r0]
+ adds r0, 0x4
+ str r4, [r0]
+ adds r0, 0x4
+ str r4, [r0]
+ adds r0, 0x4
+ str r4, [r0]
+ movs r3, 0x80
+ lsls r3, 1
+ add r3, r12
+ movs r2, 0x82
+ lsls r2, 1
+ add r2, r12
+ movs r1, 0x84
+ lsls r1, 1
+ add r1, r12
+ movs r0, 0x86
+ lsls r0, 1
+ add r0, r12
+ str r4, [r0]
+ str r4, [r1]
+ str r4, [r2]
+ str r4, [r3]
+ ldr r0, _080A5200
+ bl sub_80A56D8
+_080A51EC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A51FC: .4byte gUnknown_8117354
+_080A5200: .4byte gUnknown_8117754
+ thumb_func_end GroundMap_SelectDungeon
+
+ thumb_func_start sub_80A5204
+sub_80A5204:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ str r0, [sp]
+ mov r8, r1
+ str r2, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _080A5222
+ b _080A53EA
+_080A5222:
+ mov r5, r8
+ ldr r2, [sp]
+ mov r12, r2
+ movs r0, 0
+ ldr r3, [sp, 0x4]
+ ldrb r3, [r3, 0x1]
+ str r3, [sp, 0x10]
+ ldr r1, [sp, 0x4]
+ ldrh r2, [r1, 0xA]
+ mov r1, sp
+ strh r2, [r1, 0xC]
+ movs r1, 0xFF
+_080A523A:
+ adds r0, 0x1
+ mov r10, r0
+ movs r3, 0xFF
+ mov r9, r3
+_080A5242:
+ mov r0, r12
+ strb r1, [r0]
+ movs r2, 0x1
+ add r12, r2
+ movs r3, 0x1
+ negs r3, r3
+ add r9, r3
+ mov r0, r9
+ cmp r0, 0
+ bge _080A5242
+ mov r0, r10
+ cmp r0, 0x3
+ ble _080A523A
+ movs r1, 0
+ ldr r2, [sp, 0x10]
+ cmp r1, r2
+ blt _080A5266
+ b _080A53BA
+_080A5266:
+ ldr r3, [sp, 0x4]
+ ldrb r7, [r3]
+_080A526A:
+ adds r0, 0x1
+ mov r10, r0
+ adds r0, r1, 0x1
+ str r0, [sp, 0x14]
+ movs r0, 0xFF
+ movs r2, 0x4
+ mov r9, r2
+_080A5278:
+ mov r3, r12
+ strb r0, [r3]
+ movs r2, 0x1
+ add r12, r2
+ movs r3, 0x1
+ negs r3, r3
+ add r9, r3
+ mov r2, r9
+ cmp r2, 0
+ bge _080A5278
+ movs r3, 0x5
+ mov r9, r3
+ movs r0, 0
+ cmp r1, 0
+ bne _080A5308
+ cmp r1, r7
+ bge _080A5394
+_080A529A:
+ ldrb r1, [r5]
+ adds r5, 0x1
+ cmp r1, 0xBF
+ ble _080A52C2
+ adds r6, r0, 0
+ subs r6, 0xBF
+ cmp r1, 0xBF
+ ble _080A5300
+ adds r2, r1, 0
+ subs r2, 0xBF
+_080A52AE:
+ ldrb r0, [r5]
+ mov r3, r12
+ strb r0, [r3]
+ adds r5, 0x1
+ movs r0, 0x1
+ add r12, r0
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A52AE
+ b _080A5300
+_080A52C2:
+ cmp r1, 0x7F
+ ble _080A52E6
+ ldrb r4, [r5]
+ adds r5, 0x1
+ adds r6, r0, 0
+ subs r6, 0x7F
+ cmp r1, 0x7F
+ ble _080A5300
+ adds r2, r1, 0
+ subs r2, 0x7F
+_080A52D6:
+ mov r3, r12
+ strb r4, [r3]
+ movs r0, 0x1
+ add r12, r0
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A52D6
+ b _080A5300
+_080A52E6:
+ movs r2, 0
+ adds r6, r0, 0x1
+ cmp r2, r1
+ bgt _080A5300
+ movs r0, 0
+ adds r2, r1, 0x1
+_080A52F2:
+ mov r3, r12
+ strb r0, [r3]
+ movs r3, 0x1
+ add r12, r3
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A52F2
+_080A5300:
+ adds r0, r6, r1
+ cmp r0, r7
+ blt _080A529A
+ b _080A5394
+_080A5308:
+ ldr r4, _080A5340
+ add r4, r12
+ cmp r0, r7
+ bge _080A5394
+_080A5310:
+ ldrb r3, [r5]
+ adds r5, 0x1
+ cmp r3, 0xBF
+ ble _080A5344
+ adds r6, r0, 0
+ subs r6, 0xBF
+ cmp r3, 0xBF
+ ble _080A538E
+ adds r2, r3, 0
+ subs r2, 0xBF
+_080A5324:
+ ldrb r1, [r5]
+ ldrb r0, [r4]
+ eors r1, r0
+ mov r0, r12
+ strb r1, [r0]
+ adds r4, 0x1
+ adds r5, 0x1
+ movs r1, 0x1
+ add r12, r1
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A5324
+ b _080A538E
+ .align 2, 0
+_080A5340: .4byte 0xffffff00
+_080A5344:
+ cmp r3, 0x7F
+ ble _080A5372
+ ldrb r2, [r5]
+ mov r8, r2
+ adds r5, 0x1
+ adds r6, r0, 0
+ subs r6, 0x7F
+ cmp r3, 0x7F
+ ble _080A538E
+ adds r2, r3, 0
+ subs r2, 0x7F
+_080A535A:
+ ldrb r1, [r4]
+ mov r0, r8
+ eors r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ adds r4, 0x1
+ movs r0, 0x1
+ add r12, r0
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A535A
+ b _080A538E
+_080A5372:
+ movs r2, 0
+ adds r6, r0, 0x1
+ cmp r2, r3
+ bgt _080A538E
+ adds r2, r3, 0x1
+_080A537C:
+ ldrb r0, [r4]
+ mov r1, r12
+ strb r0, [r1]
+ adds r4, 0x1
+ movs r0, 0x1
+ add r12, r0
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080A537C
+_080A538E:
+ adds r0, r6, r3
+ cmp r0, r7
+ blt _080A5310
+_080A5394:
+ add r9, r7
+ mov r1, r9
+ cmp r1, 0xFF
+ bgt _080A53AE
+ movs r0, 0xFF
+_080A539E:
+ mov r2, r12
+ strb r0, [r2]
+ movs r3, 0x1
+ add r12, r3
+ add r9, r3
+ mov r1, r9
+ cmp r1, 0xFF
+ ble _080A539E
+_080A53AE:
+ ldr r1, [sp, 0x14]
+ mov r0, r10
+ ldr r2, [sp, 0x10]
+ cmp r1, r2
+ bge _080A53BA
+ b _080A526A
+_080A53BA:
+ ldr r3, [sp, 0x8]
+ cmp r0, r3
+ bge _080A53E6
+ movs r1, 0xFF
+_080A53C2:
+ adds r0, 0x1
+ mov r10, r0
+ movs r0, 0xFF
+ mov r9, r0
+_080A53CA:
+ mov r2, r12
+ strb r1, [r2]
+ movs r3, 0x1
+ add r12, r3
+ movs r0, 0x1
+ negs r0, r0
+ add r9, r0
+ mov r2, r9
+ cmp r2, 0
+ bge _080A53CA
+ mov r0, r10
+ ldr r3, [sp, 0x8]
+ cmp r0, r3
+ blt _080A53C2
+_080A53E6:
+ mov r8, r5
+ b _080A547E
+_080A53EA:
+ ldr r1, [sp]
+ movs r0, 0
+ ldr r2, [sp, 0x4]
+ ldrb r2, [r2, 0x1]
+ str r2, [sp, 0x10]
+ ldr r3, [sp, 0x4]
+ ldrh r2, [r3, 0xA]
+ mov r3, sp
+ strh r2, [r3, 0xC]
+ movs r6, 0xFF
+_080A53FE:
+ adds r5, r0, 0x1
+ movs r4, 0xFF
+_080A5402:
+ strb r6, [r1]
+ adds r1, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080A5402
+ adds r0, r5, 0
+ cmp r0, 0x3
+ ble _080A53FE
+ movs r4, 0
+ ldr r3, [sp, 0x10]
+ cmp r4, r3
+ bge _080A5460
+ ldr r2, [sp, 0x4]
+ ldrb r7, [r2]
+ movs r3, 0xFF
+_080A5420:
+ adds r5, r0, 0x1
+ adds r2, r4, 0x1
+ movs r4, 0x4
+_080A5426:
+ strb r3, [r1]
+ adds r1, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080A5426
+ movs r4, 0x5
+ cmp r7, 0
+ beq _080A5444
+ movs r6, 0
+ adds r0, r7, 0
+_080A543A:
+ strb r6, [r1]
+ adds r1, 0x1
+ subs r0, 0x1
+ cmp r0, 0
+ bne _080A543A
+_080A5444:
+ adds r4, r7
+ cmp r4, 0xFF
+ bgt _080A5456
+ movs r0, 0xFF
+_080A544C:
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r4, 0x1
+ cmp r4, 0xFF
+ ble _080A544C
+_080A5456:
+ adds r4, r2, 0
+ adds r0, r5, 0
+ ldr r2, [sp, 0x10]
+ cmp r4, r2
+ blt _080A5420
+_080A5460:
+ ldr r3, [sp, 0x8]
+ cmp r0, r3
+ bge _080A547E
+ movs r6, 0xFF
+_080A5468:
+ adds r5, r0, 0x1
+ movs r4, 0xFF
+_080A546C:
+ strb r6, [r1]
+ adds r1, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080A546C
+ adds r0, r5, 0
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ blt _080A5468
+_080A547E:
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bgt _080A548A
+ b _080A5590
+_080A548A:
+ mov r6, r8
+ ldr r0, [sp]
+ movs r1, 0x80
+ lsls r1, 3
+ adds r2, r0, r1
+ movs r0, 0
+ ldr r3, [sp, 0x10]
+ cmp r0, r3
+ bge _080A5586
+ movs r1, 0xFB
+ mov r10, r1
+_080A54A0:
+ adds r2, 0x5
+ movs r4, 0
+ cmp r0, 0
+ bne _080A54EC
+ ldr r3, [sp, 0x4]
+ ldrb r7, [r3]
+ movs r1, 0x1
+ mov r9, r1
+ cmp r0, r7
+ bge _080A5574
+_080A54B4:
+ ldrb r1, [r6]
+ adds r6, 0x1
+ cmp r1, 0x7F
+ ble _080A54DE
+ subs r4, 0x7F
+ cmp r1, 0x7F
+ ble _080A54D6
+ movs r5, 0x80
+ adds r3, r1, 0
+ subs r3, 0x7F
+_080A54C8:
+ ldrb r0, [r2]
+ orrs r0, r5
+ strb r0, [r2]
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A54C8
+_080A54D6:
+ adds r4, r1
+ ldr r3, [sp, 0x4]
+ ldrb r7, [r3]
+ b _080A54E6
+_080A54DE:
+ adds r0, r1, 0x1
+ adds r2, r0
+ adds r0, r4, 0x1
+ adds r4, r0, r1
+_080A54E6:
+ cmp r4, r7
+ blt _080A54B4
+ b _080A5574
+_080A54EC:
+ ldr r1, _080A5538
+ adds r1, r2
+ mov r12, r1
+ ldr r3, [sp, 0x4]
+ ldrb r7, [r3]
+ adds r0, 0x1
+ mov r9, r0
+ cmp r4, r7
+ bge _080A5574
+_080A54FE:
+ ldrb r5, [r6]
+ adds r6, 0x1
+ cmp r5, 0x7F
+ ble _080A553C
+ subs r4, 0x7F
+ cmp r5, 0x7F
+ ble _080A556A
+ movs r7, 0x80
+ movs r0, 0x80
+ mov r8, r0
+ adds r3, r5, 0
+ subs r3, 0x7F
+_080A5516:
+ mov r0, r12
+ ldrb r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ add r12, r1
+ cmp r0, 0
+ bne _080A552C
+ ldrb r0, [r2]
+ orrs r0, r7
+ strb r0, [r2]
+_080A552C:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A5516
+ b _080A556A
+ .align 2, 0
+_080A5538: .4byte 0xffffff00
+_080A553C:
+ movs r3, 0
+ adds r4, 0x1
+ cmp r3, r5
+ bgt _080A556A
+ movs r7, 0x80
+ movs r3, 0x80
+ mov r8, r3
+ adds r3, r5, 0x1
+_080A554C:
+ mov r0, r12
+ ldrb r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ add r12, r1
+ cmp r0, 0
+ beq _080A5562
+ ldrb r0, [r2]
+ orrs r0, r7
+ strb r0, [r2]
+_080A5562:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A554C
+_080A556A:
+ adds r4, r5
+ ldr r3, [sp, 0x4]
+ ldrb r7, [r3]
+ cmp r4, r7
+ blt _080A54FE
+_080A5574:
+ mov r1, r10
+ subs r0, r1, r7
+ adds r2, r0
+ mov r0, r9
+ ldr r3, [sp, 0x4]
+ ldrb r3, [r3, 0x1]
+ str r3, [sp, 0x10]
+ cmp r0, r3
+ blt _080A54A0
+_080A5586:
+ mov r8, r6
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0, 0xA]
+ mov r0, sp
+ strh r1, [r0, 0xC]
+_080A5590:
+ mov r2, sp
+ ldrh r2, [r2, 0xC]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080A568C
+ mov r6, r8
+ ldr r3, [sp]
+ movs r0, 0x80
+ lsls r0, 3
+ adds r2, r3, r0
+ movs r0, 0
+ b _080A5684
+_080A55AA:
+ adds r2, 0x5
+ movs r4, 0
+ cmp r0, 0
+ bne _080A55F2
+ ldr r3, [sp, 0x4]
+ ldrb r7, [r3]
+ movs r1, 0x1
+ mov r10, r1
+ cmp r0, r7
+ bge _080A567C
+_080A55BE:
+ ldrb r1, [r6]
+ adds r6, 0x1
+ cmp r1, 0x7F
+ ble _080A55E4
+ subs r4, 0x7F
+ cmp r1, 0x7F
+ ble _080A55E0
+ movs r5, 0x40
+ adds r3, r1, 0
+ subs r3, 0x7F
+_080A55D2:
+ ldrb r0, [r2]
+ orrs r0, r5
+ strb r0, [r2]
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A55D2
+_080A55E0:
+ adds r4, r1
+ b _080A55EC
+_080A55E4:
+ adds r0, r1, 0x1
+ adds r2, r0
+ adds r0, r4, 0x1
+ adds r4, r0, r1
+_080A55EC:
+ cmp r4, r7
+ blt _080A55BE
+ b _080A567C
+_080A55F2:
+ ldr r3, _080A5640
+ adds r3, r2
+ mov r12, r3
+ ldr r1, [sp, 0x4]
+ ldrb r7, [r1]
+ adds r0, 0x1
+ mov r10, r0
+ cmp r4, r7
+ bge _080A567C
+_080A5604:
+ ldrb r5, [r6]
+ adds r6, 0x1
+ cmp r5, 0x7F
+ ble _080A5644
+ subs r4, 0x7F
+ cmp r5, 0x7F
+ ble _080A5676
+ movs r3, 0x40
+ mov r8, r3
+ movs r0, 0x40
+ mov r9, r0
+ adds r3, r5, 0
+ subs r3, 0x7F
+_080A561E:
+ mov r0, r12
+ ldrb r1, [r0]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x1
+ add r12, r1
+ cmp r0, 0
+ bne _080A5636
+ ldrb r0, [r2]
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r2]
+_080A5636:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A561E
+ b _080A5676
+ .align 2, 0
+_080A5640: .4byte 0xffffff00
+_080A5644:
+ movs r3, 0
+ adds r4, 0x1
+ cmp r3, r5
+ bgt _080A5676
+ movs r3, 0x40
+ mov r8, r3
+ movs r0, 0x40
+ mov r9, r0
+ adds r3, r5, 0x1
+_080A5656:
+ mov r0, r12
+ ldrb r1, [r0]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x1
+ add r12, r1
+ cmp r0, 0
+ beq _080A566E
+ ldrb r0, [r2]
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r2]
+_080A566E:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080A5656
+_080A5676:
+ adds r4, r5
+ cmp r4, r7
+ blt _080A5604
+_080A567C:
+ movs r3, 0xFB
+ subs r0, r3, r7
+ adds r2, r0
+ mov r0, r10
+_080A5684:
+ ldr r1, [sp, 0x10]
+ cmp r0, r1
+ blt _080A55AA
+ mov r8, r6
+_080A568C:
+ mov r0, r8
+ 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_80A5204
+
+ thumb_func_start sub_80A56A0
+sub_80A56A0:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080A56BC
+ ldr r0, [r0]
+ adds r1, r3, 0
+ bl sub_80A3B80
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A56BC: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A56A0
+
+ thumb_func_start sub_80A56C0
+sub_80A56C0:
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080A56D4
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_80A4558
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A56D4: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A56C0
+
+ thumb_func_start sub_80A56D8
+sub_80A56D8:
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080A56EC
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_80A456C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A56EC: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A56D8
+
+ thumb_func_start sub_80A56F0
+sub_80A56F0:
+ ldr r1, _080A5700
+ ldr r2, [r1]
+ adds r2, 0xE8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_080A5700: .4byte gUnknown_3001B6C
+ thumb_func_end sub_80A56F0
+
+ thumb_func_start sub_80A5704
+sub_80A5704:
+ ldr r1, _080A5724
+ ldr r3, [r1]
+ adds r2, r3, 0
+ adds r2, 0xF8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ adds r0, r3, 0
+ adds r0, 0xF0
+ movs r1, 0
+ str r1, [r0]
+ adds r0, 0x4
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_080A5724: .4byte gUnknown_3001B6C
+ thumb_func_end sub_80A5704
+
+ thumb_func_start sub_80A5728
+sub_80A5728:
+ ldr r0, _080A5734
+ ldr r0, [r0]
+ adds r0, 0xE4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080A5734: .4byte gUnknown_3001B6C
+ thumb_func_end sub_80A5728
+
+ thumb_func_start sub_80A5738
+sub_80A5738:
+ ldr r0, _080A5750
+ ldr r0, [r0]
+ adds r0, 0xE4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A5754
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_080A5750: .4byte gUnknown_3001B6C
+_080A5754: .4byte gUnknown_811BAF4
+ thumb_func_end sub_80A5738
+
+ thumb_func_start sub_80A5758
+sub_80A5758:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080A5768
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080A576C
+ movs r0, 0
+ b _080A5772
+ .align 2, 0
+_080A5768: .4byte gUnknown_3001B70
+_080A576C:
+ bl sub_80A4608
+ movs r0, 0x1
+_080A5772:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A5758
+
+ thumb_func_start sub_80A5778
+sub_80A5778:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _080A578C
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080A5790
+ movs r0, 0
+ b _080A5798
+ .align 2, 0
+_080A578C: .4byte gUnknown_3001B70
+_080A5790:
+ adds r1, r3, 0
+ bl sub_80A463C
+ movs r0, 0x1
+_080A5798:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A5778
+
+ thumb_func_start sub_80A579C
+sub_80A579C:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldr r0, _080A5838
+ ldr r3, [r0]
+ cmp r3, 0
+ beq _080A5854
+ ldr r0, _080A583C
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xE4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A5854
+ adds r0, r1, 0
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080A5840
+ adds r4, r0
+ adds r0, r3, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80A463C
+ ldr r2, [r6]
+ mov r12, r2
+ movs r0, 0xF0
+ lsls r0, 7
+ add r0, r12
+ str r0, [r6]
+ ldr r3, [r6, 0x4]
+ movs r7, 0xA0
+ lsls r7, 7
+ adds r0, r3, r7
+ str r0, [r6, 0x4]
+ ldr r2, [r5]
+ ldr r1, _080A5844
+ adds r0, r2, r1
+ str r0, [r5]
+ ldr r1, [r5, 0x4]
+ ldr r7, _080A5848
+ adds r0, r1, r7
+ str r0, [r5, 0x4]
+ movs r7, 0
+ ldrsh r0, [r4, r7]
+ cmp r0, 0xA
+ bne _080A581E
+ movs r0, 0x90
+ lsls r0, 8
+ add r0, r12
+ str r0, [r6]
+ movs r4, 0xD0
+ lsls r4, 7
+ adds r0, r3, r4
+ str r0, [r6, 0x4]
+ ldr r7, _080A584C
+ adds r0, r2, r7
+ str r0, [r5]
+ ldr r2, _080A5850
+ adds r0, r1, r2
+ str r0, [r5, 0x4]
+_080A581E:
+ ldr r1, [r6]
+ ldr r0, [r5]
+ cmp r1, r0
+ ble _080A5828
+ str r1, [r5]
+_080A5828:
+ ldr r1, [r6, 0x4]
+ ldr r0, [r5, 0x4]
+ cmp r1, r0
+ ble _080A5832
+ str r1, [r5, 0x4]
+_080A5832:
+ movs r0, 0x1
+ b _080A5856
+ .align 2, 0
+_080A5838: .4byte gUnknown_3001B70
+_080A583C: .4byte gUnknown_3001B6C
+_080A5840: .4byte gUnknown_811BAF4
+_080A5844: .4byte 0xffff8800
+_080A5848: .4byte 0xffffb000
+_080A584C: .4byte 0xffff7000
+_080A5850: .4byte 0xffff9800
+_080A5854:
+ movs r0, 0
+_080A5856:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A579C
+
+ thumb_func_start sub_80A585C
+sub_80A585C:
+ push {r4-r7,lr}
+ adds r7, r1, 0
+ ldr r1, _080A5884
+ ldr r2, [r1]
+ ldr r1, _080A5888
+ adds r2, r1
+ ldr r1, [r0, 0x4]
+ lsls r1, 8
+ ldr r0, [r0]
+ adds r1, r0
+ ldr r0, _080A588C
+ adds r1, r0
+ ldr r0, [r2]
+ adds r5, r0, r1
+ ldr r4, [r7, 0x4]
+ cmp r0, 0
+ bne _080A5890
+_080A587E:
+ movs r0, 0x1
+ b _080A58C0
+ .align 2, 0
+_080A5884: .4byte gUnknown_3001B70
+_080A5888: .4byte 0x00000544
+_080A588C: .4byte 0x00000405
+_080A5890:
+ cmp r4, 0
+ ble _080A58BE
+ movs r1, 0x80
+ lsls r1, 1
+ mov r12, r1
+_080A589A:
+ ldr r2, [r7]
+ adds r3, r5, 0
+ cmp r2, 0
+ ble _080A58B6
+ movs r6, 0x80
+_080A58A4:
+ ldrb r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ adds r3, 0x1
+ cmp r0, 0
+ bne _080A587E
+ subs r2, 0x1
+ cmp r2, 0
+ bgt _080A58A4
+_080A58B6:
+ add r5, r12
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _080A589A
+_080A58BE:
+ movs r0, 0
+_080A58C0:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A585C
+
+ thumb_func_start sub_80A58C8
+sub_80A58C8:
+ push {r4-r7,lr}
+ adds r7, r1, 0
+ ldr r1, _080A58F0
+ ldr r2, [r1]
+ ldr r1, _080A58F4
+ adds r2, r1
+ ldr r1, [r0, 0x4]
+ lsls r1, 8
+ ldr r0, [r0]
+ adds r1, r0
+ ldr r0, _080A58F8
+ adds r1, r0
+ ldr r0, [r2]
+ adds r5, r0, r1
+ ldr r4, [r7, 0x4]
+ cmp r0, 0
+ bne _080A58FC
+_080A58EA:
+ movs r0, 0x1
+ b _080A592C
+ .align 2, 0
+_080A58F0: .4byte gUnknown_3001B70
+_080A58F4: .4byte 0x00000544
+_080A58F8: .4byte 0x00000405
+_080A58FC:
+ cmp r4, 0
+ ble _080A592A
+ movs r1, 0x80
+ lsls r1, 1
+ mov r12, r1
+_080A5906:
+ ldr r2, [r7]
+ adds r3, r5, 0
+ cmp r2, 0
+ ble _080A5922
+ movs r6, 0x40
+_080A5910:
+ ldrb r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ adds r3, 0x1
+ cmp r0, 0
+ bne _080A58EA
+ subs r2, 0x1
+ cmp r2, 0
+ bgt _080A5910
+_080A5922:
+ add r5, r12
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _080A5906
+_080A592A:
+ movs r0, 0
+_080A592C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A58C8
+
+ thumb_func_start sub_80A5934
+sub_80A5934:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A5958
+ ldr r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4660
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A5958: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A5934
+
+ thumb_func_start sub_80A595C
+sub_80A595C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A5980
+ ldr r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A46C0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A5980: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A595C
+
+ thumb_func_start sub_80A5984
+sub_80A5984:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _080A599C
+ ldr r0, [r0]
+ adds r1, r3, 0
+ bl sub_80A4720
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A599C: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A5984
+
+ thumb_func_start sub_80A59A0
+sub_80A59A0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r3, r2, 16
+ lsrs r3, 16
+ ldr r0, _080A59BC
+ ldr r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4740
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A59BC: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A59A0
+
+ thumb_func_start GroundMap_Action
+GroundMap_Action:
+ push {lr}
+ bl nullsub_123
+ ldr r0, _080A59D4
+ ldr r0, [r0]
+ ldr r1, _080A59D8
+ bl HandleAction
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A59D4: .4byte gUnknown_3001B6C
+_080A59D8: .4byte gUnknown_8117770
+ thumb_func_end GroundMap_Action
+
+ thumb_func_start sub_80A59DC
+sub_80A59DC:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x58
+ ldr r7, _080A5A34
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _080A59F0
+ b _080A5E5A
+_080A59F0:
+ mov r9, sp
+ mov r0, sp
+ bl sub_809D248
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A5A04
+ str r0, [sp]
+ str r0, [sp, 0x4]
+_080A5A04:
+ ldr r0, _080A5A38
+ mov r8, r0
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0xE4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r6, r8
+ cmp r0, 0xAB
+ bne _080A5A1A
+ b _080A5BBE
+_080A5A1A:
+ cmp r0, 0xAB
+ bgt _080A5A46
+ cmp r0, 0xA3
+ bgt _080A5A3C
+ cmp r0, 0xA2
+ bge _080A5A76
+ cmp r0, 0x4
+ bne _080A5A2C
+ b _080A5D76
+_080A5A2C:
+ cmp r0, 0xA1
+ bne _080A5A32
+ b _080A5E28
+_080A5A32:
+ b _080A5E46
+ .align 2, 0
+_080A5A34: .4byte gUnknown_3001B70
+_080A5A38: .4byte gUnknown_3001B6C
+_080A5A3C:
+ cmp r0, 0xA8
+ beq _080A5AF4
+ cmp r0, 0xAA
+ beq _080A5AF4
+ b _080A5E46
+_080A5A46:
+ cmp r0, 0xB0
+ bne _080A5A4C
+ b _080A5C76
+_080A5A4C:
+ cmp r0, 0xB0
+ bgt _080A5A5E
+ cmp r0, 0xAE
+ bne _080A5A56
+ b _080A5B58
+_080A5A56:
+ cmp r0, 0xAF
+ bne _080A5A5C
+ b _080A5BD8
+_080A5A5C:
+ b _080A5E46
+_080A5A5E:
+ cmp r0, 0xDF
+ beq _080A5A76
+ cmp r0, 0xDF
+ bgt _080A5A6E
+ cmp r0, 0xBA
+ bne _080A5A6C
+ b _080A5D18
+_080A5A6C:
+ b _080A5E46
+_080A5A6E:
+ cmp r0, 0xE0
+ bne _080A5A74
+ b _080A5DDA
+_080A5A74:
+ b _080A5E46
+_080A5A76:
+ ldr r3, [r6]
+ adds r2, r3, 0
+ adds r2, 0xF4
+ ldr r1, [r2]
+ adds r0, r1, 0x2
+ str r0, [r2]
+ adds r4, r3, 0
+ adds r4, 0xFC
+ cmp r0, 0
+ bge _080A5A8C
+ adds r0, r1, 0x5
+_080A5A8C:
+ asrs r1, r0, 2
+ ldr r0, [r4]
+ adds r0, r1
+ str r0, [r4]
+ ldr r0, [r2]
+ movs r1, 0x3
+ ands r0, r1
+ str r0, [r2]
+ ldr r5, _080A5AF0
+ ldr r0, [r5]
+ adds r2, r3, 0
+ adds r2, 0xF8
+ movs r1, 0
+ bl sub_80A4580
+ ldr r0, [sp]
+ str r0, [sp, 0x8]
+ ldr r0, [r6]
+ adds r0, 0xFC
+ ldr r1, [sp, 0x4]
+ ldr r0, [r0]
+ adds r1, r0
+ add r4, sp, 0x8
+ str r1, [r4, 0x4]
+ ldr r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A456C
+ ldr r0, [sp]
+ str r0, [sp, 0x8]
+ ldr r0, [r6]
+ adds r0, 0xFC
+ ldr r1, [sp, 0x4]
+ ldr r0, [r0]
+ subs r1, r0
+ str r1, [r4, 0x4]
+ ldr r0, [r5]
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r5]
+ b _080A5DD0
+ .align 2, 0
+_080A5AF0: .4byte gUnknown_3001B70
+_080A5AF4:
+ ldr r2, [r6]
+ adds r3, r2, 0
+ adds r3, 0xF0
+ adds r0, r2, 0
+ adds r0, 0xE8
+ ldr r1, [r3]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [r3]
+ adds r2, 0xF8
+ cmp r1, 0
+ bge _080A5B0E
+ adds r1, 0x7
+_080A5B0E:
+ asrs r1, 3
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ ldr r1, [r3]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080A5B20
+ adds r0, r1, 0x7
+_080A5B20:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ str r0, [r3]
+ ldr r5, _080A5B54
+ ldr r0, [r5]
+ movs r1, 0
+ bl sub_80A4580
+ ldr r0, [r6]
+ adds r0, 0xF8
+ ldr r1, [sp]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x4]
+ add r4, sp, 0x10
+ str r0, [r4, 0x4]
+ ldr r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r5]
+ movs r1, 0
+ b _080A5DD2
+ .align 2, 0
+_080A5B54: .4byte gUnknown_3001B70
+_080A5B58:
+ adds r4, r3, 0
+ adds r4, 0xF0
+ adds r0, r3, 0
+ adds r0, 0xE8
+ ldr r1, [r4]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [r4]
+ adds r2, r3, 0
+ adds r2, 0xF8
+ cmp r1, 0
+ bge _080A5B72
+ adds r1, 0x7
+_080A5B72:
+ asrs r1, 3
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080A5B84
+ adds r0, r1, 0x7
+_080A5B84:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ str r0, [r4]
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_80A4580
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xF8
+ ldr r1, [sp]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [sp, 0x18]
+ ldr r0, [sp, 0x4]
+ add r4, sp, 0x18
+ str r0, [r4, 0x4]
+ ldr r0, [r7]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r7]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A456C
+ b _080A5DCE
+_080A5BBE:
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ ldr r0, [r7]
+ add r4, sp, 0x20
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r7]
+ movs r1, 0
+ b _080A5DD2
+_080A5BD8:
+ ldr r0, [r7]
+ movs r1, 0
+ mov r2, sp
+ bl sub_80A456C
+ mov r0, r8
+ ldr r3, [r0]
+ adds r4, r3, 0
+ adds r4, 0xF0
+ adds r1, r3, 0
+ adds r1, 0xE8
+ ldr r0, [r4]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r4]
+ adds r5, r3, 0
+ adds r5, 0xF4
+ adds r1, r3, 0
+ adds r1, 0xEC
+ ldr r0, [r5]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r5]
+ adds r2, r3, 0
+ adds r2, 0xF8
+ ldr r1, [r4]
+ cmp r1, 0
+ bge _080A5C12
+ adds r1, 0x7
+_080A5C12:
+ asrs r1, 3
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0xFC
+ ldr r1, [r5]
+ cmp r1, 0
+ bge _080A5C24
+ adds r1, 0x7
+_080A5C24:
+ asrs r1, 3
+ ldr r0, [r3]
+ adds r0, r1
+ str r0, [r3]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080A5C36
+ adds r0, r1, 0x7
+_080A5C36:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r5]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080A5C48
+ adds r0, r1, 0x7
+_080A5C48:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ str r0, [r5]
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_80A4580
+ mov r1, r8
+ ldr r2, [r1]
+ adds r1, r2, 0
+ adds r1, 0xF8
+ ldr r0, [sp]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [sp, 0x28]
+ adds r2, 0xFC
+ mov r1, r9
+ ldr r0, [r1, 0x4]
+ ldr r1, [r2]
+ adds r0, r1
+ add r4, sp, 0x28
+ b _080A5DC2
+_080A5C76:
+ adds r4, r3, 0
+ adds r4, 0xF0
+ adds r1, r3, 0
+ adds r1, 0xE8
+ ldr r0, [r4]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r4]
+ adds r5, r3, 0
+ adds r5, 0xF4
+ adds r1, r3, 0
+ adds r1, 0xEC
+ ldr r0, [r5]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [r5]
+ adds r6, r3, 0
+ adds r6, 0xF8
+ ldr r1, [r4]
+ cmp r1, 0
+ bge _080A5CA2
+ adds r1, 0x7
+_080A5CA2:
+ asrs r1, 3
+ ldr r0, [r6]
+ adds r0, r1
+ str r0, [r6]
+ adds r2, r3, 0
+ adds r2, 0xFC
+ ldr r1, [r5]
+ cmp r1, 0
+ bge _080A5CB6
+ adds r1, 0x7
+_080A5CB6:
+ asrs r1, 3
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080A5CC8
+ adds r0, r1, 0x7
+_080A5CC8:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r5]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080A5CDA
+ adds r0, r1, 0x7
+_080A5CDA:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ str r0, [r5]
+ ldr r0, [r7]
+ movs r1, 0
+ adds r2, r6, 0
+ bl sub_80A4580
+ mov r0, r8
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0xF8
+ ldr r0, [sp]
+ ldr r1, [r1]
+ adds r0, r1
+ str r0, [sp, 0x30]
+ adds r2, 0xFC
+ ldr r0, [sp, 0x4]
+ ldr r1, [r2]
+ adds r0, r1
+ add r4, sp, 0x30
+ str r0, [r4, 0x4]
+ ldr r0, [r7]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r7]
+ movs r1, 0
+ b _080A5DD2
+_080A5D18:
+ ldr r0, [r7]
+ movs r1, 0x1
+ mov r2, sp
+ bl sub_80A456C
+ mov r0, r8
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0xF0
+ ldr r4, [r3]
+ adds r0, r4, 0x1
+ str r0, [r3]
+ adds r2, r1, 0
+ adds r2, 0xF8
+ cmp r0, 0
+ bge _080A5D3A
+ adds r0, r4, 0x4
+_080A5D3A:
+ asrs r1, r0, 2
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ ldr r0, [r3]
+ movs r1, 0x3
+ ands r0, r1
+ str r0, [r3]
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_80A4580
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xF8
+ ldr r1, [sp]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [sp, 0x38]
+ ldr r0, [sp, 0x4]
+ add r4, sp, 0x38
+ str r0, [r4, 0x4]
+ ldr r0, [r7]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r7]
+ movs r1, 0
+ b _080A5DD2
+_080A5D76:
+ ldr r0, [r7]
+ movs r1, 0
+ mov r2, sp
+ bl sub_80A456C
+ mov r0, r8
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0xF0
+ ldr r4, [r3]
+ adds r0, r4, 0x1
+ str r0, [r3]
+ adds r2, r1, 0
+ adds r2, 0xF8
+ cmp r0, 0
+ bge _080A5D98
+ adds r0, 0x7
+_080A5D98:
+ asrs r1, r0, 3
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ ldr r0, [r3]
+ movs r1, 0x7
+ ands r0, r1
+ str r0, [r3]
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_80A4580
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xF8
+ ldr r1, [sp]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [sp, 0x40]
+ ldr r0, [sp, 0x4]
+ add r4, sp, 0x40
+_080A5DC2:
+ str r0, [r4, 0x4]
+ ldr r0, [r7]
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl sub_80A4580
+_080A5DCE:
+ ldr r0, [r7]
+_080A5DD0:
+ movs r1, 0x1
+_080A5DD2:
+ adds r2, r4, 0
+ bl sub_80A456C
+ b _080A5E52
+_080A5DDA:
+ ldr r0, [r7]
+ movs r1, 0
+ mov r2, sp
+ bl sub_80A456C
+ mov r0, r8
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0xF0
+ ldr r4, [r3]
+ adds r0, r4, 0x1
+ str r0, [r3]
+ adds r2, r1, 0
+ adds r2, 0xF8
+ cmp r0, 0
+ bge _080A5DFC
+ adds r0, 0x7
+_080A5DFC:
+ asrs r1, r0, 3
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ ldr r0, [r3]
+ movs r1, 0x7
+ ands r0, r1
+ str r0, [r3]
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_80A4580
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xF8
+ ldr r0, [r0]
+ str r0, [sp, 0x48]
+ ldr r0, [sp, 0x4]
+ add r2, sp, 0x48
+ str r0, [r2, 0x4]
+ ldr r0, [r7]
+ b _080A5E3E
+_080A5E28:
+ ldr r0, [r7]
+ movs r1, 0
+ mov r2, sp
+ bl sub_80A456C
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x50]
+ str r1, [sp, 0x54]
+ ldr r0, [r7]
+ add r2, sp, 0x50
+_080A5E3E:
+ movs r1, 0x1
+ bl sub_80A456C
+ b _080A5E52
+_080A5E46:
+ ldr r0, _080A5E6C
+ ldr r0, [r0]
+ movs r1, 0
+ mov r2, sp
+ bl sub_80A456C
+_080A5E52:
+ ldr r0, _080A5E6C
+ ldr r0, [r0]
+ bl sub_80A4764
+_080A5E5A:
+ bl sub_80A60D8
+ add sp, 0x58
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E6C: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A59DC
+
+ thumb_func_start sub_80A5E70
+sub_80A5E70:
+ push {lr}
+ ldr r0, _080A5E88
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080A5E7E
+ bl sub_80A49E8
+_080A5E7E:
+ bl sub_80A62D0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5E88: .4byte gUnknown_3001B70
+ thumb_func_end sub_80A5E70
+
+ thumb_func_start sub_80A5E8C
+sub_80A5E8C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080A5EB4
+ movs r0, 0x24
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r5]
+ ldr r1, _080A5EB8
+ strh r1, [r0]
+ movs r1, 0
+ strb r1, [r0, 0x2]
+ adds r0, r4, 0
+ bl sub_80A5EDC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5EB4: .4byte gUnknown_3001B74
+_080A5EB8: .4byte 0x0000ffff
+ thumb_func_end sub_80A5E8C
+
+ thumb_func_start sub_80A5EBC
+sub_80A5EBC:
+ push {r4,lr}
+ movs r0, 0
+ bl sub_80A5EDC
+ ldr r4, _080A5ED8
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5ED8: .4byte gUnknown_3001B74
+ thumb_func_end sub_80A5EBC
+
+ thumb_func_start sub_80A5EDC
+sub_80A5EDC:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ movs r6, 0x1
+ negs r6, r6
+ movs r0, 0
+ movs r1, 0x1B
+ adds r2, r6, 0
+ bl sub_80018D8
+ ldr r0, _080A5F34
+ ldr r1, [r0]
+ ldr r0, _080A5F38
+ strh r0, [r1]
+ strb r5, [r1, 0x2]
+ ldr r4, _080A5F3C
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080A5F12
+ bl sub_80A2D00
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080A5F12:
+ cmp r5, 0
+ beq _080A5F2E
+ ldr r0, _080A5F40
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ ldr r1, _080A5F44
+ bl sub_80A2B40
+ ldr r0, [r4]
+ adds r1, r6, 0
+ bl sub_80A2FBC
+_080A5F2E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A5F34: .4byte gUnknown_3001B74
+_080A5F38: .4byte 0x0000ffff
+_080A5F3C: .4byte gUnknown_3001B78
+_080A5F40: .4byte 0x0000055c
+_080A5F44: .4byte gUnknown_8117784
+ thumb_func_end sub_80A5EDC
+
+ thumb_func_start nullsub_121
+nullsub_121:
+ bx lr
+ thumb_func_end nullsub_121
+
+ thumb_func_start nullsub_122
+nullsub_122:
+ bx lr
+ thumb_func_end nullsub_122
+
+ thumb_func_start GroundWeather_Select
+GroundWeather_Select:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ adds r7, r5, 0
+ ldr r1, _080A5F94
+ ldr r6, _080A5F98
+ ldr r0, [r6]
+ ldrb r3, [r0, 0x2]
+ movs r0, 0
+ adds r2, r5, 0
+ bl Log
+ movs r0, 0
+ movs r1, 0x1B
+ adds r2, r5, 0
+ bl sub_80018D8
+ ldr r0, [r6]
+ movs r4, 0
+ strh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ bne _080A5F80
+ b _080A60B4
+_080A5F80:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _080A5FA0
+ ldr r0, _080A5F9C
+ ldr r0, [r0]
+ adds r1, r5, 0
+ bl sub_80A2FBC
+ b _080A60B4
+ .align 2, 0
+_080A5F94: .4byte gUnknown_811779C
+_080A5F98: .4byte gUnknown_3001B74
+_080A5F9C: .4byte gUnknown_3001B78
+_080A5FA0:
+ lsls r1, r7, 2
+ ldr r0, _080A5FD8
+ adds r5, r1, r0
+ ldr r0, _080A5FDC
+ ldr r0, [r0]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_80A2FBC
+ ldr r0, [r6]
+ str r4, [r0, 0x4]
+ str r4, [r0, 0x8]
+ str r4, [r0, 0xC]
+ str r4, [r0, 0x10]
+ str r4, [r0, 0x20]
+ str r4, [r0, 0x1C]
+ str r4, [r0, 0x18]
+ str r4, [r0, 0x14]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xF
+ bhi _080A6098
+ lsls r0, 2
+ ldr r1, _080A5FE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A5FD8: .4byte gUnknown_811E5F4
+_080A5FDC: .4byte gUnknown_3001B78
+_080A5FE0: .4byte _080A5FE4
+ .align 2, 0
+_080A5FE4:
+ .4byte _080A6088
+ .4byte _080A6098
+ .4byte _080A6098
+ .4byte _080A6088
+ .4byte _080A6088
+ .4byte _080A6088
+ .4byte _080A6098
+ .4byte _080A6040
+ .4byte _080A6088
+ .4byte _080A6024
+ .4byte _080A6098
+ .4byte _080A6098
+ .4byte _080A6098
+ .4byte _080A6098
+ .4byte _080A6050
+ .4byte _080A606C
+_080A6024:
+ ldr r0, _080A6034
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_80A3BB0
+ ldr r1, _080A6038
+ ldr r2, _080A603C
+ b _080A60B0
+ .align 2, 0
+_080A6034: .4byte gUnknown_3001B78
+_080A6038: .4byte gUnknown_2026E4E
+_080A603C: .4byte 0x0000040c
+_080A6040:
+ ldr r1, _080A6048
+ ldr r2, _080A604C
+ b _080A60B0
+ .align 2, 0
+_080A6048: .4byte gUnknown_2026E4E
+_080A604C: .4byte 0x00000808
+_080A6050:
+ ldr r0, _080A6060
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_80A3BB0
+ ldr r1, _080A6064
+ ldr r2, _080A6068
+ b _080A60B0
+ .align 2, 0
+_080A6060: .4byte gUnknown_3001B78
+_080A6064: .4byte gUnknown_2026E4E
+_080A6068: .4byte 0x00001010
+_080A606C:
+ ldr r0, _080A607C
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_80A3BB0
+ ldr r1, _080A6080
+ ldr r2, _080A6084
+ b _080A60B0
+ .align 2, 0
+_080A607C: .4byte gUnknown_3001B78
+_080A6080: .4byte gUnknown_2026E4E
+_080A6084: .4byte 0x0000040c
+_080A6088:
+ ldr r1, _080A6090
+ ldr r2, _080A6094
+ b _080A60B0
+ .align 2, 0
+_080A6090: .4byte gUnknown_2026E4E
+_080A6094: .4byte 0x00001010
+_080A6098:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080A60AA
+ ldr r0, _080A60BC
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_80A3BB0
+_080A60AA:
+ ldr r1, _080A60C0
+ movs r2, 0x80
+ lsls r2, 5
+_080A60B0:
+ adds r0, r2, 0
+ strh r0, [r1]
+_080A60B4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A60BC: .4byte gUnknown_3001B78
+_080A60C0: .4byte gUnknown_2026E4E
+ thumb_func_end GroundWeather_Select
+
+ thumb_func_start sub_80A60C4
+sub_80A60C4:
+ ldr r0, _080A60D0
+ ldr r0, [r0]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080A60D0: .4byte gUnknown_3001B74
+ thumb_func_end sub_80A60C4
+
+ thumb_func_start nullsub_123
+nullsub_123:
+ bx lr
+ thumb_func_end nullsub_123
+
+ thumb_func_start sub_80A60D8
+sub_80A60D8:
+ push {r4-r6,lr}
+ sub sp, 0x28
+ ldr r0, _080A6104
+ ldr r3, [r0]
+ ldrb r1, [r3, 0x2]
+ adds r6, r0, 0
+ cmp r1, 0
+ bne _080A60EA
+ b _080A62C0
+_080A60EA:
+ ldrh r0, [r3]
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bls _080A60F8
+ b _080A6278
+_080A60F8:
+ lsls r0, 2
+ ldr r1, _080A6108
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A6104: .4byte gUnknown_3001B74
+_080A6108: .4byte _080A610C
+ .align 2, 0
+_080A610C:
+ .4byte _080A62AC
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6278
+ .4byte _080A6150
+ .4byte _080A61CC
+ .4byte _080A61CC
+ .4byte _080A61CC
+ .4byte _080A61CC
+ .4byte _080A61D0
+ .4byte _080A6224
+_080A6150:
+ ldr r2, [r6]
+ ldr r1, [r2, 0x4]
+ adds r0, r1, 0x2
+ str r0, [r2, 0x4]
+ ldr r4, [r2, 0x8]
+ adds r3, r4, 0x1
+ str r3, [r2, 0x8]
+ cmp r0, 0
+ bge _080A6164
+ adds r0, r1, 0x5
+_080A6164:
+ asrs r1, r0, 2
+ ldr r0, [r2, 0xC]
+ adds r0, r1
+ str r0, [r2, 0xC]
+ adds r1, r3, 0
+ cmp r1, 0
+ bge _080A6174
+ adds r1, r4, 0x4
+_080A6174:
+ asrs r1, 2
+ ldr r0, [r2, 0x10]
+ adds r0, r1
+ str r0, [r2, 0x10]
+ ldr r4, _080A61C8
+ ldr r0, [r4]
+ adds r2, 0xC
+ movs r1, 0
+ bl sub_80A4580
+ ldr r1, [r6]
+ ldr r0, [r1, 0x4]
+ movs r2, 0x3
+ ands r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, [r1, 0x8]
+ ands r0, r2
+ str r0, [r1, 0x8]
+ mov r0, sp
+ bl sub_80A56C0
+ ldr r2, [r6]
+ ldr r0, [sp]
+ ldr r1, [r2, 0xC]
+ subs r0, r1
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ ldr r1, [r2, 0x10]
+ adds r0, r1
+ str r0, [sp, 0x4]
+ ldr r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ bl sub_80A4580
+ ldr r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ bl sub_80A456C
+ b _080A62B8
+ .align 2, 0
+_080A61C8: .4byte gUnknown_3001B78
+_080A61CC:
+ add r4, sp, 0x8
+ b _080A628E
+_080A61D0:
+ ldr r2, [r6]
+ ldr r1, [r2, 0x4]
+ adds r0, r1, 0x1
+ str r0, [r2, 0x4]
+ cmp r0, 0
+ bge _080A61DE
+ adds r0, r1, 0x4
+_080A61DE:
+ asrs r1, r0, 2
+ ldr r0, [r2, 0xC]
+ adds r0, r1
+ str r0, [r2, 0xC]
+ ldr r5, _080A6220
+ ldr r0, [r5]
+ adds r2, 0xC
+ movs r1, 0
+ bl sub_80A4580
+ ldr r2, [r6]
+ ldr r0, [r2, 0x4]
+ movs r1, 0x3
+ ands r0, r1
+ str r0, [r2, 0x4]
+ add r4, sp, 0x10
+ adds r0, r4, 0
+ bl sub_80A56C0
+ ldr r1, [r6]
+ ldr r0, [sp, 0x10]
+ ldr r1, [r1, 0xC]
+ subs r0, r1
+ str r0, [sp, 0x10]
+ movs r0, 0
+ str r0, [r4, 0x4]
+ ldr r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r5]
+ b _080A6298
+ .align 2, 0
+_080A6220: .4byte gUnknown_3001B78
+_080A6224:
+ ldr r2, [r6]
+ ldr r1, [r2, 0x4]
+ adds r0, r1, 0x2
+ str r0, [r2, 0x4]
+ cmp r0, 0
+ bge _080A6232
+ adds r0, r1, 0x5
+_080A6232:
+ asrs r1, r0, 2
+ ldr r0, [r2, 0xC]
+ adds r0, r1
+ str r0, [r2, 0xC]
+ ldr r5, _080A6274
+ ldr r0, [r5]
+ adds r2, 0xC
+ movs r1, 0
+ bl sub_80A4580
+ ldr r2, [r6]
+ ldr r0, [r2, 0x4]
+ movs r1, 0x3
+ ands r0, r1
+ str r0, [r2, 0x4]
+ add r4, sp, 0x18
+ adds r0, r4, 0
+ bl sub_80A56C0
+ ldr r1, [r6]
+ ldr r0, [sp, 0x18]
+ ldr r1, [r1, 0xC]
+ subs r0, r1
+ str r0, [sp, 0x18]
+ movs r0, 0
+ str r0, [r4, 0x4]
+ ldr r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A4580
+ ldr r0, [r5]
+ b _080A6298
+ .align 2, 0
+_080A6274: .4byte gUnknown_3001B78
+_080A6278:
+ ldr r0, [r6]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 2
+ ldr r1, _080A62A4
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080A62AC
+ add r4, sp, 0x20
+_080A628E:
+ adds r0, r4, 0
+ bl sub_80A56C0
+ ldr r0, _080A62A8
+ ldr r0, [r0]
+_080A6298:
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80A456C
+ b _080A62B8
+ .align 2, 0
+_080A62A4: .4byte gUnknown_811E5F4
+_080A62A8: .4byte gUnknown_3001B78
+_080A62AC:
+ ldr r0, _080A62C8
+ ldr r0, [r0]
+ ldr r2, _080A62CC
+ movs r1, 0
+ bl sub_80A456C
+_080A62B8:
+ ldr r0, _080A62C8
+ ldr r0, [r0]
+ bl sub_80A4764
+_080A62C0:
+ add sp, 0x28
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A62C8: .4byte gUnknown_3001B78
+_080A62CC: .4byte gUnknown_81177BC
+ thumb_func_end sub_80A60D8
+
+ thumb_func_start sub_80A62D0
+sub_80A62D0:
+ push {lr}
+ ldr r0, _080A62E8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _080A62E4
+ ldr r0, _080A62EC
+ ldr r0, [r0]
+ bl sub_80A49E8
+_080A62E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A62E8: .4byte gUnknown_3001B74
+_080A62EC: .4byte gUnknown_3001B78
+ thumb_func_end sub_80A62D0
+
+ thumb_func_start sub_80A62F0
+sub_80A62F0:
+ push {r4-r7,lr}
+ ldr r4, _080A6378
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ ldr r0, _080A637C
+ ldr r1, _080A6380
+ bl OpenFileAndGetFileDataPtr
+ ldr r1, _080A6384
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_800DAC0
+ ldr r4, [r4]
+ ldr r1, _080A6388
+ movs r0, 0x16
+ str r0, [r1]
+ ldr r1, _080A638C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ movs r2, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r3, r1, 0
+_080A632A:
+ str r2, [r4]
+ lsls r0, 4
+ str r0, [r4, 0x4]
+ str r2, [r4, 0x8]
+ adds r0, r1, 0
+ adds r1, r3
+ asrs r0, 16
+ adds r4, 0xC
+ cmp r0, 0x15
+ ble _080A632A
+ ldr r0, _080A6378
+ ldr r0, [r0]
+ movs r1, 0x84
+ lsls r1, 1
+ adds r4, r0, r1
+ movs r6, 0
+ movs r7, 0
+ movs r5, 0xE8
+ lsls r5, 13
+_080A6350:
+ strh r7, [r4]
+ strh r7, [r4, 0x2]
+ lsrs r0, r5, 16
+ movs r1, 0
+ bl sub_80997F4
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r6, 0x1
+ adds r4, 0x4
+ cmp r6, 0x1
+ ble _080A6350
+ movs r0, 0x1
+ negs r0, r0
+ bl GroundSprite_Reset
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6378: .4byte gUnknown_3001B7C
+_080A637C: .4byte gUnknown_81177CC
+_080A6380: .4byte gUnknown_83B0000
+_080A6384: .4byte gUnknown_203B4B4
+_080A6388: .4byte gUnknown_2039DD4
+_080A638C: .4byte gUnknown_2039DD0
+ thumb_func_end sub_80A62F0
+
+ thumb_func_start GroundSprite_Reset
+GroundSprite_Reset:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ asrs r0, 16
+ mov r9, r0
+ ldr r1, _080A641C
+ movs r0, 0
+ bl Log
+ ldr r0, _080A6420
+ movs r1, 0
+ mov r8, r1
+ strh r1, [r0]
+ ldr r0, _080A6424
+ strh r1, [r0]
+ bl sub_80A6460
+ mov r0, r9
+ bl sub_80A4D48
+ lsls r0, 24
+ movs r1, 0x2
+ cmp r0, 0
+ beq _080A63C6
+ movs r1, 0x3
+_080A63C6:
+ movs r0, 0xF8
+ lsls r0, 1
+ bl sub_808E53C
+ ldr r5, _080A6428
+ adds r0, r5, 0
+ bl sub_8004E8C
+ ldr r4, _080A642C
+ adds r0, r4, 0
+ bl sub_8004E8C
+ ldrh r1, [r4, 0x4]
+ ldr r6, _080A6430
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r4, 0x4]
+ ldrh r1, [r4, 0xA]
+ adds r0, r6, 0
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 4
+ adds r7, r2, 0
+ orrs r0, r7
+ strh r0, [r4, 0xA]
+ mov r0, r9
+ bl sub_80A4D48
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A6434
+ ldrh r1, [r5, 0x4]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r5, 0x4]
+ ldrh r1, [r5, 0xA]
+ adds r0, r6, 0
+ ands r0, r1
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r1, r2, 0
+ orrs r0, r1
+ b _080A6444
+ .align 2, 0
+_080A641C: .4byte gUnknown_81177D8
+_080A6420: .4byte gUnknown_2039DCC
+_080A6424: .4byte gUnknown_2039DCE
+_080A6428: .4byte gUnknown_2039DB0
+_080A642C: .4byte gUnknown_2039DC0
+_080A6430: .4byte 0x0000f3ff
+_080A6434:
+ ldrh r1, [r5, 0x4]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r5, 0x4]
+ ldrh r1, [r5, 0xA]
+ adds r0, r6, 0
+ ands r0, r1
+ orrs r0, r7
+_080A6444:
+ strh r0, [r5, 0xA]
+ movs r0, 0x1
+ bl ResetSprites
+ movs r0, 0x1
+ bl nullsub_10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end GroundSprite_Reset
+
+ thumb_func_start sub_80A6460
+sub_80A6460:
+ push {r4-r7,lr}
+ ldr r0, _080A649C
+ ldr r1, _080A64A0
+ bl OpenFileAndGetFileDataPtr
+ adds r7, r0, 0
+ movs r5, 0x80
+ lsls r5, 1
+ ldr r4, [r7, 0x4]
+ movs r6, 0xC
+_080A6474:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ bl sub_809971C
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x40
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080A6474
+ adds r0, r7, 0
+ bl CloseFile
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A649C: .4byte gUnknown_81177EC
+_080A64A0: .4byte gUnknown_8510000
+ thumb_func_end sub_80A6460
+
+ thumb_func_start sub_80A64A4
+sub_80A64A4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _080A6508
+ ldr r0, [r0]
+ movs r1, 0x84
+ lsls r1, 1
+ adds r7, r0, r1
+ bl sub_80A6460
+ movs r0, 0
+ mov r8, r0
+_080A64C0:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ ble _080A6568
+ ldrh r5, [r7]
+ mov r0, r8
+ adds r0, 0x1D
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r1, r8
+ lsls r0, r1, 20
+ movs r1, 0xE8
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r0, 0
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6514
+ ldr r0, _080A650C
+ ldr r1, _080A6510
+ bl OpenFileAndGetFileDataPtr
+ adds r6, r0, 0
+ movs r0, 0xFF
+ ands r0, r5
+ lsls r0, 6
+ ldr r1, [r6, 0x4]
+ adds r2, r1, r0
+ b _080A652A
+ .align 2, 0
+_080A6508: .4byte gUnknown_3001B7C
+_080A650C: .4byte gUnknown_81177EC
+_080A6510: .4byte gUnknown_8510000
+_080A6514:
+ movs r0, 0xFF
+ ands r0, r5
+ lsls r0, 2
+ ldr r1, _080A6584
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080A6588
+ bl OpenFileAndGetFileDataPtr
+ adds r6, r0, 0
+ ldr r2, [r6, 0x4]
+_080A652A:
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1, 0
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ negs r1, r1
+ lsrs r4, r1, 31
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1, 0
+ ands r5, r0
+ cmp r5, 0
+ beq _080A654C
+ movs r0, 0x2
+ orrs r4, r0
+_080A654C:
+ mov r0, r9
+ adds r1, r2, 0
+ movs r2, 0x10
+ bl sub_809971C
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_80997F4
+ cmp r6, 0
+ beq _080A6568
+ adds r0, r6, 0
+ bl CloseFile
+_080A6568:
+ movs r0, 0x1
+ add r8, r0
+ adds r7, 0x4
+ mov r1, r8
+ cmp r1, 0x1
+ ble _080A64C0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6584: .4byte gUnknown_81178F4
+_080A6588: .4byte gUnknown_9E60000
+ thumb_func_end sub_80A64A4
+
+ thumb_func_start sub_80A658C
+sub_80A658C:
+ push {r4,lr}
+ bl sub_800DB7C
+ movs r0, 0
+ bl ResetSprites
+ movs r0, 0
+ bl nullsub_10
+ bl sub_8005180
+ bl nullsub_12
+ bl CopySpritesToOam
+ bl nullsub_13
+ bl sub_8005304
+ bl nullsub_14
+ ldr r0, _080A65D0
+ ldr r0, [r0]
+ bl CloseFile
+ ldr r4, _080A65D4
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A65D0: .4byte gUnknown_203B4B4
+_080A65D4: .4byte gUnknown_3001B7C
+ thumb_func_end sub_80A658C
+
+ thumb_func_start sub_80A65D8
+sub_80A65D8:
+ adds r0, 0x50
+ ldrh r0, [r0]
+ bx lr
+ thumb_func_end sub_80A65D8
+
+ thumb_func_start sub_80A65E0
+sub_80A65E0:
+ lsrs r0, 16
+ ldr r2, _080A65EC
+ adds r1, r2, 0
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_080A65EC: .4byte 0x0000337f
+ thumb_func_end sub_80A65E0
+
+ thumb_func_start sub_80A65F0
+sub_80A65F0:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, 0x50
+ strh r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ asrs r2, r0, 31
+ movs r0, 0x40
+ ands r2, r0
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6616
+ subs r2, 0x40
+_080A6616:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6624
+ adds r1, r2, 0
+ adds r1, 0x48
+ b _080A6628
+_080A6624:
+ adds r1, r2, 0
+ adds r1, 0x40
+_080A6628:
+ adds r0, r3, 0
+ adds r0, 0x6A
+ strh r1, [r0]
+ adds r2, r3, 0
+ adds r2, 0x50
+ ldrh r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6648
+ adds r1, r3, 0
+ adds r1, 0x3C
+ ldr r0, _080A6644
+ b _080A664E
+ .align 2, 0
+_080A6644: .4byte gUnknown_2039DC0
+_080A6648:
+ adds r1, r3, 0
+ adds r1, 0x3C
+ ldr r0, _080A6680
+_080A664E:
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldrh r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A6678
+ ldrh r2, [r3, 0x3C]
+ ldr r1, _080A6684
+ adds r0, r1, 0
+ ands r0, r2
+ strh r0, [r3, 0x3C]
+ adds r2, r3, 0
+ adds r2, 0x42
+ ldrh r0, [r2]
+ ands r1, r0
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ orrs r1, r0
+ strh r1, [r2]
+_080A6678:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6680: .4byte gUnknown_2039DB0
+_080A6684: .4byte 0x0000f3ff
+ thumb_func_end sub_80A65F0
+
+ thumb_func_start sub_80A6688
+sub_80A6688:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ bl sub_80A65E0
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_80A65F0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6688
+
+ thumb_func_start sub_80A66A4
+sub_80A66A4:
+ push {lr}
+ movs r1, 0
+ adds r0, 0x48
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ ble _080A66B4
+ movs r1, 0x1
+_080A66B4:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A66A4
+
+ thumb_func_start sub_80A66BC
+sub_80A66BC:
+ push {lr}
+ adds r0, 0x52
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080A66CC
+ movs r0, 0
+ b _080A66CE
+_080A66CC:
+ movs r0, 0x1
+_080A66CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A66BC
+
+ thumb_func_start sub_80A66D4
+sub_80A66D4:
+ push {lr}
+ adds r1, r0, 0
+ adds r0, 0x52
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080A66F2
+ adds r0, r1, 0
+ adds r0, 0x48
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _080A66F2
+ movs r0, 0x1
+ b _080A66F4
+_080A66F2:
+ movs r0, 0
+_080A66F4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A66D4
+
+ thumb_func_start sub_80A66F8
+sub_80A66F8:
+ push {lr}
+ adds r1, r0, 0
+ adds r0, 0x52
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ blt _080A6716
+ ldrh r1, [r1]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6716
+ lsrs r0, r1, 15
+ b _080A6718
+_080A6716:
+ movs r0, 0
+_080A6718:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A66F8
+
+ thumb_func_start sub_80A671C
+sub_80A671C:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r4, 0
+ adds r6, 0x58
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ cmp r1, 0
+ beq _080A6752
+ movs r0, 0xE0
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A674A
+ ldr r0, [r4, 0x5C]
+ movs r5, 0x1
+ negs r5, r5
+ cmp r0, r5
+ beq _080A674A
+ bl sub_800E9E4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A674E
+_080A674A:
+ movs r0, 0x1
+ b _080A6754
+_080A674E:
+ str r5, [r4, 0x5C]
+ strh r0, [r6]
+_080A6752:
+ movs r0, 0
+_080A6754:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A671C
+
+ thumb_func_start sub_80A675C
+sub_80A675C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r1, 0
+ mov r0, sp
+ bl sub_809D248
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A678C
+ ldr r1, [r6]
+ cmp r1, 0
+ bge _080A6776
+ adds r1, 0xFF
+_080A6776:
+ asrs r1, 8
+ ldr r0, [sp]
+ subs r4, r1, r0
+ ldr r1, [r6, 0x4]
+ cmp r1, 0
+ bge _080A6784
+ adds r1, 0xFF
+_080A6784:
+ asrs r1, 8
+ ldr r0, [sp, 0x4]
+ subs r5, r1, r0
+ b _080A67A0
+_080A678C:
+ ldr r0, [r6]
+ cmp r0, 0
+ bge _080A6794
+ adds r0, 0xFF
+_080A6794:
+ asrs r4, r0, 8
+ ldr r1, [r6, 0x4]
+ cmp r1, 0
+ bge _080A679E
+ adds r1, 0xFF
+_080A679E:
+ asrs r5, r1, 8
+_080A67A0:
+ adds r1, r4, 0
+ adds r1, 0x40
+ ldr r0, _080A67BC
+ cmp r1, r0
+ bhi _080A67C0
+ movs r0, 0x10
+ negs r0, r0
+ cmp r5, r0
+ blt _080A67C0
+ cmp r5, 0xCF
+ bgt _080A67C0
+ movs r0, 0x1
+ b _080A67C2
+ .align 2, 0
+_080A67BC: .4byte 0x0000016f
+_080A67C0:
+ movs r0, 0
+_080A67C2:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A675C
+
+ thumb_func_start sub_80A67CC
+sub_80A67CC:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r7, 0
+ cmp r5, 0
+ beq _080A67E2
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ ble _080A67E2
+ movs r7, 0x1
+_080A67E2:
+ adds r0, r2, 0
+ bl sub_80A65E0
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_80A65F0
+ movs r1, 0
+ str r1, [r4, 0x74]
+ str r1, [r4, 0x78]
+ movs r6, 0x1
+ negs r6, r6
+ str r6, [r4, 0x7C]
+ adds r0, r4, 0
+ adds r0, 0x70
+ strb r1, [r0]
+ subs r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r2, r4, 0
+ adds r2, 0x52
+ ldr r0, _080A6884
+ strh r0, [r2]
+ str r1, [r4, 0x54]
+ adds r0, r4, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ adds r2, 0x14
+ adds r0, r6, 0
+ adds r3, r0, 0
+ strh r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x68
+ strh r1, [r0]
+ subs r0, 0x10
+ strh r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x5A
+ movs r0, 0xFF
+ strb r0, [r1]
+ str r6, [r4, 0x5C]
+ str r6, [r4, 0x60]
+ cmp r7, 0
+ beq _080A6888
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r4, 0x48]
+ str r1, [r4, 0x4C]
+ adds r5, r4, 0
+ adds r5, 0x48
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80A68F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A689A
+ adds r0, r4, 0
+ adds r0, 0x50
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _080A689A
+ adds r0, r5, 0
+ bl sub_80A6CF4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A689A
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80A68F8
+ b _080A689A
+ .align 2, 0
+_080A6884: .4byte 0x0000ffff
+_080A6888:
+ adds r1, r4, 0
+ adds r1, 0x48
+ ldrh r0, [r1]
+ orrs r0, r3
+ strh r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x4A
+ strh r7, [r0]
+ str r7, [r4, 0x4C]
+_080A689A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A67CC
+
+ thumb_func_start sub_80A68A0
+sub_80A68A0:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x50
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A68CE
+ adds r0, r4, 0
+ adds r0, 0x58
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080A68CE
+ ldr r1, [r4, 0x5C]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A68CE
+ adds r0, r1, 0
+ bl sub_800DC14
+_080A68CE:
+ ldr r0, [r4, 0x54]
+ cmp r0, 0
+ beq _080A68DC
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4, 0x54]
+_080A68DC:
+ adds r0, r4, 0
+ bl sub_80A69FC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A68A0
+
+ thumb_func_start sub_80A68E8
+sub_80A68E8:
+ push {lr}
+ movs r0, 0x15
+_080A68EC:
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080A68EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A68E8
+
+ thumb_func_start sub_80A68F8
+sub_80A68F8:
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r5, r2, 0
+ ldr r0, _080A6924
+ ldr r4, [r0]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, r5
+ blt _080A6956
+ adds r5, r0, 0
+ movs r3, 0
+ ldr r0, [r4]
+ mov r6, r12
+ adds r6, 0x52
+ mov r7, r12
+ adds r7, 0x64
+ cmp r0, 0
+ bne _080A6928
+ movs r2, 0x1
+ cmp r2, r5
+ blt _080A692A
+ b _080A6986
+ .align 2, 0
+_080A6924: .4byte gUnknown_3001B7C
+_080A6928:
+ movs r2, 0
+_080A692A:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ asrs r3, r0, 16
+ adds r4, 0xC
+ cmp r3, 0x15
+ bgt _080A6986
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _080A6928
+ adds r2, 0x1
+ cmp r2, r5
+ blt _080A692A
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ subs r0, 0xC
+ subs r4, r0
+ adds r0, r3, 0x1
+ subs r0, r2
+ lsls r0, 16
+ asrs r3, r0, 16
+ b _080A6986
+_080A6956:
+ movs r3, 0x15
+ adds r4, 0xFC
+ ldr r0, [r4]
+ mov r6, r12
+ adds r6, 0x52
+ mov r7, r12
+ adds r7, 0x64
+ cmp r0, 0
+ bne _080A696C
+ movs r2, 0x1
+ b _080A6982
+_080A696C:
+ movs r2, 0
+_080A696E:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ asrs r3, r0, 16
+ subs r4, 0xC
+ cmp r3, 0
+ blt _080A6986
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _080A696C
+ adds r2, 0x1
+_080A6982:
+ cmp r2, r5
+ blt _080A696E
+_080A6986:
+ cmp r2, r5
+ blt _080A69C4
+ strh r3, [r6]
+ strh r5, [r7]
+ movs r0, 0x1
+ str r0, [r4]
+ mov r0, r12
+ str r0, [r4, 0x8]
+ ldrh r1, [r1, 0x2]
+ bl GroundSprite_ExtendPaletteAdd
+ cmp r5, 0x1
+ ble _080A69B2
+ movs r2, 0x2
+ adds r0, r4, 0
+ adds r0, 0xC
+ subs r1, r5, 0x1
+_080A69A8:
+ str r2, [r0]
+ adds r0, 0xC
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080A69A8
+_080A69B2:
+ ldr r1, _080A69C0
+ ldr r0, [r1]
+ subs r0, r5
+ str r0, [r1]
+ movs r0, 0x1
+ b _080A69EC
+ .align 2, 0
+_080A69C0: .4byte gUnknown_2039DD4
+_080A69C4:
+ ldr r1, _080A69F4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ mov r1, r12
+ str r0, [r1, 0x7C]
+ mov r0, r12
+ adds r0, 0x70
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080A69F8
+ strh r0, [r6]
+ strh r1, [r7]
+ mov r0, r12
+ adds r0, 0x6C
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r0, 0
+_080A69EC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A69F4: .4byte gUnknown_2039DD0
+_080A69F8: .4byte 0x0000ffff
+ thumb_func_end sub_80A68F8
+
+ thumb_func_start sub_80A69FC
+sub_80A69FC:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r6, 0
+ adds r7, 0x52
+ movs r0, 0
+ ldrsh r4, [r7, r0]
+ ldr r0, _080A6A80
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, [r0]
+ adds r5, r0, r1
+ cmp r4, 0
+ blt _080A6A7A
+ adds r0, r6, 0
+ bl GroundSprite_ExtendPaletteDelete
+ movs r0, 0
+ str r0, [r5, 0x8]
+ str r0, [r5]
+ adds r5, 0xC
+ ldr r1, _080A6A84
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r6, 0x64
+ mov r12, r6
+ cmp r4, 0x15
+ bgt _080A6A6A
+ ldr r0, [r5]
+ cmp r0, 0x2
+ bne _080A6A6A
+ movs r6, 0
+ adds r2, r1, 0
+ lsls r1, r4, 16
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+ adds r3, r0, 0
+_080A6A50:
+ str r6, [r5]
+ adds r5, 0xC
+ ldr r0, [r2]
+ adds r0, 0x1
+ str r0, [r2]
+ adds r0, r1, 0
+ adds r1, r3
+ asrs r4, r0, 16
+ cmp r4, 0x15
+ bgt _080A6A6A
+ ldr r0, [r5]
+ cmp r0, 0x2
+ beq _080A6A50
+_080A6A6A:
+ ldr r0, _080A6A88
+ strh r0, [r7]
+ movs r0, 0
+ mov r1, r12
+ strh r0, [r1]
+ ldr r1, _080A6A8C
+ movs r0, 0x1
+ strb r0, [r1]
+_080A6A7A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6A80: .4byte gUnknown_3001B7C
+_080A6A84: .4byte gUnknown_2039DD4
+_080A6A88: .4byte 0x0000ffff
+_080A6A8C: .4byte gUnknown_2039DD0
+ thumb_func_end sub_80A69FC
+
+ thumb_func_start GroundSprite_ExtendPaletteAdd
+GroundSprite_ExtendPaletteAdd:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r10, r0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ adds r5, r2, 0
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ bne _080A6AB0
+ b _080A6C6C
+_080A6AB0:
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r2
+ cmp r0, 0
+ beq _080A6AD8
+ ldr r0, _080A6AD4
+ ldr r1, [r0]
+ movs r3, 0x86
+ lsls r3, 1
+ adds r4, r1, r3
+ ldrh r1, [r4]
+ adds r3, r0, 0
+ cmp r1, r2
+ bne _080A6B36
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ b _080A6C78
+ .align 2, 0
+_080A6AD4: .4byte gUnknown_3001B7C
+_080A6AD8:
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _080A6B1C
+ ldr r0, [r1]
+ movs r2, 0x84
+ lsls r2, 1
+ adds r4, r0, r2
+ adds r3, r1, 0
+ movs r1, 0xE8
+ lsls r1, 13
+_080A6AEC:
+ ldrh r0, [r4]
+ cmp r0, r5
+ bne _080A6B24
+ lsrs r1, 16
+ adds r3, r1, 0
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ mov r0, r10
+ cmp r0, 0
+ beq _080A6B08
+ subs r1, 0x10
+ adds r0, 0x68
+ strh r1, [r0]
+_080A6B08:
+ adds r0, r3, 0
+ subs r0, 0x10
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ ldr r1, _080A6B20
+ mov r2, r8
+ bl Log
+ b _080A6C78
+ .align 2, 0
+_080A6B1C: .4byte gUnknown_3001B7C
+_080A6B20: .4byte gUnknown_81177F4
+_080A6B24:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r2
+ movs r0, 0x1
+ add r8, r0
+ adds r4, 0x4
+ mov r2, r8
+ cmp r2, 0x1
+ ble _080A6AEC
+_080A6B36:
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r5
+ cmp r0, 0
+ beq _080A6B68
+ movs r0, 0x1
+ mov r8, r0
+ ldr r0, [r3]
+ movs r1, 0x86
+ lsls r1, 1
+ adds r4, r0, r1
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A6BA8
+ ldr r0, _080A6B60
+ ldr r1, _080A6B64
+ adds r2, r5, 0
+ bl FatalError
+ .align 2, 0
+_080A6B60: .4byte gUnknown_8117858
+_080A6B64: .4byte gUnknown_8117864
+_080A6B68:
+ movs r0, 0
+ mov r8, r0
+ ldr r0, [r3]
+ movs r1, 0x84
+ lsls r1, 1
+ adds r4, r0, r1
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080A6B90
+_080A6B7C:
+ movs r3, 0x1
+ add r8, r3
+ adds r4, 0x4
+ mov r0, r8
+ cmp r0, 0x1
+ bgt _080A6B96
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _080A6B7C
+_080A6B90:
+ mov r2, r8
+ cmp r2, 0x1
+ ble _080A6BA8
+_080A6B96:
+ ldr r0, _080A6BA0
+ ldr r1, _080A6BA4
+ adds r2, r5, 0
+ bl FatalError
+ .align 2, 0
+_080A6BA0: .4byte gUnknown_8117888
+_080A6BA4: .4byte gUnknown_8117864
+_080A6BA8:
+ mov r0, r8
+ adds r0, 0x1D
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r3, r8
+ lsls r0, r3, 20
+ movs r1, 0xE8
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r5
+ cmp r0, 0
+ beq _080A6BE8
+ ldr r0, _080A6BE0
+ ldr r1, _080A6BE4
+ bl OpenFileAndGetFileDataPtr
+ mov r9, r0
+ ldr r7, [r0, 0x4]
+ movs r0, 0xFF
+ ands r0, r5
+ lsls r0, 6
+ adds r7, r0
+ b _080A6BFE
+ .align 2, 0
+_080A6BE0: .4byte gUnknown_81177EC
+_080A6BE4: .4byte gUnknown_8510000
+_080A6BE8:
+ movs r0, 0xFF
+ ands r0, r5
+ lsls r0, 2
+ ldr r1, _080A6C60
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080A6C64
+ bl OpenFileAndGetFileDataPtr
+ mov r9, r0
+ ldr r7, [r0, 0x4]
+_080A6BFE:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r6, r0, 31
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r5
+ cmp r0, 0
+ beq _080A6C1A
+ movs r0, 0x2
+ orrs r6, r0
+_080A6C1A:
+ ldr r0, [sp, 0xC]
+ adds r1, r6, 0
+ bl sub_80997F4
+ ldr r0, [sp, 0x10]
+ adds r1, r7, 0
+ movs r2, 0x10
+ bl sub_809971C
+ strh r5, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r2, [sp, 0xC]
+ subs r2, 0x10
+ mov r3, r10
+ cmp r3, 0
+ beq _080A6C42
+ mov r0, r10
+ adds r0, 0x68
+ strh r2, [r0]
+_080A6C42:
+ ldr r1, _080A6C68
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0
+ mov r2, r8
+ ldr r3, [sp, 0xC]
+ bl Log
+ mov r0, r9
+ cmp r0, 0
+ beq _080A6C78
+ bl CloseFile
+ b _080A6C78
+ .align 2, 0
+_080A6C60: .4byte gUnknown_81178F4
+_080A6C64: .4byte gUnknown_9E60000
+_080A6C68: .4byte gUnknown_8117894
+_080A6C6C:
+ mov r1, r10
+ cmp r1, 0
+ beq _080A6C78
+ mov r0, r10
+ adds r0, 0x68
+ strh r5, [r0]
+_080A6C78:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end GroundSprite_ExtendPaletteAdd
+
+ thumb_func_start GroundSprite_ExtendPaletteDelete
+GroundSprite_ExtendPaletteDelete:
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _080A6C9E
+ adds r0, 0x68
+ ldrh r0, [r0]
+ adds r5, r0, 0
+ subs r5, 0xD
+ cmp r5, 0
+ blt _080A6CE6
+ b _080A6CA0
+_080A6C9E:
+ movs r5, 0x1
+_080A6CA0:
+ ldr r0, _080A6CEC
+ lsls r1, r5, 2
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r3
+ ldr r0, [r0]
+ adds r4, r0, r1
+ cmp r2, 0
+ beq _080A6CBA
+ adds r1, r2, 0
+ adds r1, 0x68
+ movs r0, 0
+ strh r0, [r1]
+_080A6CBA:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ movs r6, 0
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080A6CE6
+ ldr r1, _080A6CF0
+ ldrh r3, [r4]
+ movs r0, 0
+ adds r2, r5, 0
+ bl Log
+ strh r6, [r4]
+ strh r6, [r4, 0x2]
+ adds r0, r5, 0
+ adds r0, 0x1D
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_80997F4
+_080A6CE6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6CEC: .4byte gUnknown_3001B7C
+_080A6CF0: .4byte gUnknown_81178C0
+ thumb_func_end GroundSprite_ExtendPaletteDelete
+
+ thumb_func_start sub_80A6CF4
+sub_80A6CF4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x68
+ movs r1, 0
+ mov r8, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ mov r9, r2
+ movs r2, 0
+ mov r10, r2
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x60]
+ str r0, [sp, 0x64]
+ add r4, sp, 0x58
+ adds r0, r4, 0
+ bl sub_809D248
+ movs r7, 0
+ ldr r0, _080A6D70
+ ldr r3, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ mov r12, r1
+ mov r4, sp
+_080A6D2C:
+ ldr r0, [r3]
+ cmp r0, 0x1
+ bne _080A6DB4
+ ldr r2, [r3, 0x8]
+ adds r0, r2, 0
+ adds r0, 0x50
+ ldrh r1, [r0]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0
+ bne _080A6DB4
+ ldr r0, [r2, 0x7C]
+ cmp r0, 0
+ blt _080A6DB4
+ ldr r1, [r2, 0x74]
+ cmp r1, 0
+ bge _080A6D50
+ adds r1, 0xFF
+_080A6D50:
+ asrs r1, 8
+ ldr r0, [sp, 0x58]
+ subs r5, r1, r0
+ ldr r1, [r2, 0x78]
+ cmp r1, 0
+ bge _080A6D5E
+ adds r1, 0xFF
+_080A6D5E:
+ asrs r1, 8
+ ldr r0, [sp, 0x5C]
+ subs r1, r0
+ adds r6, r1, 0
+ cmp r1, 0
+ ble _080A6D74
+ adds r0, r6, 0
+ adds r0, 0x28
+ b _080A6D78
+ .align 2, 0
+_080A6D70: .4byte gUnknown_3001B7C
+_080A6D74:
+ movs r0, 0x28
+ subs r0, r6
+_080A6D78:
+ str r0, [r2, 0x7C]
+ cmp r5, 0
+ ble _080A6D88
+ ldr r0, [r2, 0x7C]
+ cmp r5, r0
+ ble _080A6D92
+ str r5, [r2, 0x7C]
+ b _080A6D92
+_080A6D88:
+ negs r1, r5
+ ldr r0, [r2, 0x7C]
+ cmp r1, r0
+ ble _080A6D92
+ str r1, [r2, 0x7C]
+_080A6D92:
+ adds r0, r2, 0
+ adds r0, 0x48
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ add r10, r0
+ cmp r0, r9
+ blt _080A6DAE
+ ldr r0, [r2, 0x7C]
+ ldr r1, [sp, 0x64]
+ cmp r1, r0
+ bge _080A6DAE
+ mov r1, r8
+ str r1, [sp, 0x60]
+ str r0, [sp, 0x64]
+_080A6DAE:
+ stm r4!, {r2}
+ movs r2, 0x1
+ add r8, r2
+_080A6DB4:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ asrs r7, r0, 16
+ adds r3, 0xC
+ cmp r7, 0x15
+ ble _080A6D2C
+ cmp r10, r9
+ blt _080A6E54
+ ldr r0, [sp, 0x60]
+ cmp r0, 0
+ blt _080A6DD8
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ bl sub_80A69FC
+ movs r0, 0x1
+ b _080A6E56
+_080A6DD8:
+ mov r1, r8
+ cmp r1, 0
+ ble _080A6E54
+_080A6DDE:
+ movs r5, 0x1
+ negs r5, r5
+ adds r3, r5, 0
+ movs r6, 0
+ mov r7, r8
+ subs r7, 0x1
+ mov r2, r8
+ cmp r2, 0
+ ble _080A6E08
+ mov r2, sp
+ mov r1, r8
+_080A6DF4:
+ ldr r0, [r2]
+ ldr r0, [r0, 0x7C]
+ cmp r3, r0
+ bge _080A6E00
+ mov r5, r8
+ adds r3, r0, 0
+_080A6E00:
+ adds r2, 0x4
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080A6DF4
+_080A6E08:
+ lsls r0, r5, 2
+ mov r1, sp
+ adds r4, r1, r0
+ ldr r0, [r4]
+ bl sub_80A69FC
+ mov r8, r7
+ adds r1, r5, 0
+ cmp r1, r8
+ bge _080A6E28
+ adds r2, r4, 0
+_080A6E1E:
+ ldr r0, [r2, 0x4]
+ stm r2!, {r0}
+ adds r1, 0x1
+ cmp r1, r8
+ blt _080A6E1E
+_080A6E28:
+ movs r1, 0
+ ldr r0, _080A6E40
+ ldr r3, [r0]
+_080A6E2E:
+ ldr r0, [r3]
+ cmp r0, 0
+ bne _080A6E44
+ adds r6, 0x1
+ cmp r6, r9
+ blt _080A6E46
+ movs r0, 0x1
+ b _080A6E56
+ .align 2, 0
+_080A6E40: .4byte gUnknown_3001B7C
+_080A6E44:
+ movs r6, 0
+_080A6E46:
+ adds r1, 0x1
+ adds r3, 0xC
+ cmp r1, 0x15
+ ble _080A6E2E
+ mov r2, r8
+ cmp r2, 0
+ bgt _080A6DDE
+_080A6E54:
+ movs r0, 0
+_080A6E56:
+ add sp, 0x68
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A6CF4
+
+ thumb_func_start sub_80A6E68
+sub_80A6E68:
+ push {lr}
+ movs r0, 0
+ bl ResetSprites
+ movs r0, 0
+ bl nullsub_10
+ bl sub_800E970
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6E68
+
+ thumb_func_start sub_80A6E80
+sub_80A6E80:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080A6EC4
+ adds r0, r4, 0
+ bl sub_809D248
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A6E98
+ str r0, [r4]
+ str r0, [r4, 0x4]
+_080A6E98:
+ bl sub_80ABA7C
+ bl sub_80ACAD4
+ bl sub_80AD7AC
+ ldrh r1, [r4, 0x4]
+ lsls r1, 16
+ ldrh r0, [r4]
+ orrs r0, r1
+ str r0, [sp]
+ mov r0, sp
+ bl sub_800E90C
+ bl sub_8005180
+ bl nullsub_12
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A6EC4: .4byte gUnknown_2039DD8
+ thumb_func_end sub_80A6E80
+
+ thumb_func_start sub_80A6EC8
+sub_80A6EC8:
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x52
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ ble _080A6EF6
+ adds r0, r2, 0
+ adds r0, 0x48
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bgt _080A6EE4
+ adds r1, r0, 0
+_080A6EE4:
+ adds r0, r2, 0
+ adds r0, 0x64
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, r1
+ beq _080A6EF6
+ adds r0, r2, 0
+ adds r0, 0x66
+ strh r1, [r0]
+_080A6EF6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6EC8
+
+ thumb_func_start sub_80A6EFC
+sub_80A6EFC:
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 16
+ asrs r7, r1, 16
+ lsls r2, 24
+ asrs r6, r2, 24
+ adds r0, 0x52
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080A6F48
+ adds r5, r4, 0
+ adds r5, 0x66
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ blt _080A6F28
+ adds r1, r4, 0
+ adds r1, 0x48
+ adds r2, r0, 0
+ b _080A6F62
+_080A6F28:
+ adds r1, r4, 0
+ adds r1, 0x48
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bgt _080A6F36
+ b _080A7038
+_080A6F36:
+ movs r2, 0x1
+ negs r2, r2
+ adds r0, r4, 0
+ bl sub_80A68F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7038
+ b _080A6F72
+_080A6F48:
+ adds r5, r4, 0
+ adds r5, 0x66
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ blt _080A6F72
+ adds r0, r4, 0
+ bl sub_80A69FC
+ adds r1, r4, 0
+ adds r1, 0x48
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+_080A6F62:
+ adds r0, r4, 0
+ bl sub_80A68F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A7038
+ ldr r0, _080A6F8C
+ strh r0, [r5]
+_080A6F72:
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r7
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ beq _080A6F94
+ ldrh r1, [r4]
+ ldr r0, _080A6F90
+ ands r0, r1
+ strh r0, [r4]
+ b _080A7038
+ .align 2, 0
+_080A6F8C: .4byte 0x0000ffff
+_080A6F90: .4byte 0x0000efff
+_080A6F94:
+ ldr r2, _080A6FE0
+ adds r0, r4, 0
+ adds r0, 0x52
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, [r2]
+ adds r1, r0
+ mov r12, r1
+ adds r1, r4, 0
+ adds r1, 0x70
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r0, 0x2
+ str r0, [r4, 0x7C]
+ movs r1, 0xE0
+ lsls r1, 3
+ ands r1, r7
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ beq _080A6FE4
+ cmp r1, r0
+ ble _080A6FEE
+ movs r0, 0x80
+ lsls r0, 2
+ cmp r1, r0
+ beq _080A6FFA
+ movs r0, 0xC0
+ lsls r0, 2
+ cmp r1, r0
+ bne _080A6FEE
+ adds r0, r4, 0
+ adds r0, 0x6C
+ strh r3, [r0]
+ b _080A7000
+ .align 2, 0
+_080A6FE0: .4byte gUnknown_3001B7C
+_080A6FE4:
+ adds r1, r4, 0
+ adds r1, 0x6C
+ movs r0, 0x80
+ strh r0, [r1]
+ b _080A7000
+_080A6FEE:
+ adds r1, r4, 0
+ adds r1, 0x6C
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ b _080A7000
+_080A6FFA:
+ adds r0, r4, 0
+ adds r0, 0x6C
+ strh r1, [r0]
+_080A7000:
+ adds r0, r4, 0
+ adds r0, 0x6E
+ movs r1, 0
+ strh r1, [r0]
+ ldr r5, [r4, 0x4C]
+ movs r0, 0xFF
+ ands r0, r7
+ adds r2, r6, 0
+ cmp r6, 0
+ bge _080A7016
+ adds r2, r6, 0x7
+_080A7016:
+ asrs r2, 3
+ adds r2, r0, r2
+ movs r3, 0x7
+ ands r3, r6
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ lsls r0, r7, 16
+ lsrs r0, 27
+ movs r1, 0x1
+ ands r0, r1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80053D0
+_080A7038:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A6EFC
+
+ thumb_func_start sub_80A7040
+sub_80A7040:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r3, 0
+ lsls r1, 16
+ asrs r3, r1, 16
+ lsls r2, 24
+ asrs r2, 24
+ adds r0, 0x50
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A708C
+ cmp r3, 0
+ beq _080A7068
+ movs r0, 0xE0
+ lsls r0, 1
+ cmp r3, r0
+ bne _080A7080
+_080A7068:
+ adds r0, r4, 0
+ bl sub_80A671C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A708C
+ adds r1, r4, 0
+ adds r1, 0x58
+ movs r0, 0xE0
+ lsls r0, 1
+ strh r0, [r1]
+ b _080A708C
+_080A7080:
+ adds r0, r4, 0
+ adds r0, 0x58
+ strh r3, [r0]
+ adds r0, 0x2
+ strb r2, [r0]
+ str r5, [r4, 0x60]
+_080A708C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7040
+
+ thumb_func_start sub_80A7094
+sub_80A7094:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ adds r7, r0, 0
+ mov r10, r1
+ mov r8, r2
+ str r3, [sp, 0x3C]
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ str r0, [r7, 0x74]
+ str r1, [r7, 0x78]
+ movs r6, 0
+ str r6, [r7, 0x7C]
+ adds r0, r7, 0
+ adds r0, 0x50
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7172
+ adds r4, r7, 0
+ adds r4, 0x58
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080A7172
+ movs r0, 0xE0
+ lsls r0, 1
+ cmp r1, r0
+ bne _080A70EC
+ ldr r0, [r7, 0x5C]
+ movs r5, 0x1
+ negs r5, r5
+ cmp r0, r5
+ beq _080A70E8
+ bl sub_800DC14
+ str r5, [r7, 0x5C]
+_080A70E8:
+ strh r6, [r4]
+ b _080A7172
+_080A70EC:
+ ldr r0, [r7, 0x5C]
+ movs r1, 0x1
+ negs r1, r1
+ mov r9, r1
+ cmp r0, r9
+ bne _080A7160
+ add r1, sp, 0x8
+ ldr r0, _080A715C
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_800EE5C
+ bl sub_800EF64
+ add r2, sp, 0x14
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ str r0, [sp, 0x14]
+ str r6, [r2, 0x4]
+ adds r0, r7, 0
+ adds r0, 0x5A
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [r2, 0x8]
+ mov r4, r8
+ ldr r0, [r4]
+ cmp r0, 0
+ bge _080A712C
+ adds r0, 0xFF
+_080A712C:
+ asrs r0, 8
+ strh r0, [r2, 0xC]
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ bge _080A713A
+ adds r0, 0xFF
+_080A713A:
+ asrs r0, 8
+ strh r0, [r2, 0xE]
+ strh r6, [r2, 0x10]
+ strh r6, [r2, 0x12]
+ mov r0, r9
+ str r0, [r2, 0x14]
+ str r6, [r2, 0x18]
+ add r1, sp, 0x30
+ add r0, sp, 0x8
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ adds r0, r2, 0
+ bl sub_800E890
+ str r0, [r7, 0x5C]
+ b _080A7172
+ .align 2, 0
+_080A715C: .4byte gUnknown_81178E0
+_080A7160:
+ bl sub_800E9E4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A7172
+ mov r1, r9
+ str r1, [r7, 0x5C]
+ strh r0, [r4]
+_080A7172:
+ adds r0, r7, 0
+ adds r0, 0x52
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ blt _080A7222
+ adds r0, r7, 0
+ adds r0, 0x50
+ ldrh r4, [r0]
+ movs r0, 0x40
+ ands r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0
+ bne _080A7222
+ mov r3, r8
+ ldr r1, [r3]
+ cmp r1, 0
+ bge _080A719C
+ adds r1, 0xFF
+_080A719C:
+ asrs r1, 8
+ ldr r2, _080A7228
+ ldr r0, [r2]
+ subs r5, r1, r0
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ bge _080A71AE
+ adds r0, 0xFF
+_080A71AE:
+ asrs r1, r0, 8
+ ldr r0, [r2, 0x4]
+ subs r6, r1, r0
+ ldr r3, [sp, 0x3C]
+ cmp r3, 0
+ bge _080A71BC
+ adds r3, 0xFF
+_080A71BC:
+ asrs r0, r3, 8
+ subs r0, r6, r0
+ mov r8, r0
+ adds r1, r5, 0
+ adds r1, 0x40
+ ldr r0, _080A722C
+ cmp r1, r0
+ bhi _080A7274
+ movs r0, 0x10
+ negs r0, r0
+ cmp r6, r0
+ blt _080A7274
+ cmp r6, 0xCF
+ bgt _080A7274
+ cmp r8, r0
+ blt _080A7274
+ mov r2, r8
+ cmp r2, 0xCF
+ bgt _080A7274
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _080A7234
+ ldr r0, _080A7230
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A7234
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80A72B8
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r7, 0
+ adds r0, 0x68
+ ldrh r0, [r0]
+ str r0, [sp]
+ adds r0, r7, 0
+ adds r0, 0x3C
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r2, 0xD0
+ movs r3, 0
+ bl sub_800558C
+ adds r0, r7, 0
+ adds r0, 0x70
+ mov r3, r9
+ strb r3, [r0]
+_080A7222:
+ movs r0, 0
+ b _080A72A6
+ .align 2, 0
+_080A7228: .4byte gUnknown_2039DD8
+_080A722C: .4byte 0x0000016f
+_080A7230: .4byte gUnknown_2039DCC
+_080A7234:
+ adds r4, r7, 0
+ adds r4, 0x70
+ ldrb r1, [r4]
+ adds r0, r7, 0
+ bl sub_80A72B8
+ adds r0, r7, 0
+ adds r0, 0x6A
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ adds r3, r6
+ subs r0, 0x2
+ ldrh r0, [r0]
+ str r0, [sp]
+ adds r0, r7, 0
+ adds r0, 0x3C
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_800558C
+ movs r0, 0
+ strb r0, [r4]
+ mov r2, r10
+ cmp r2, 0
+ beq _080A7270
+ mov r3, r10
+ str r5, [r3]
+ str r6, [r3, 0x4]
+_080A7270:
+ movs r0, 0x1
+ b _080A72A6
+_080A7274:
+ adds r4, r7, 0
+ adds r4, 0x70
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080A7222
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80A72B8
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r7, 0
+ adds r0, 0x68
+ ldrh r0, [r0]
+ str r0, [sp]
+ adds r0, r7, 0
+ adds r0, 0x3C
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r2, 0xD0
+ movs r3, 0
+ bl sub_800558C
+ movs r0, 0
+ strb r0, [r4]
+_080A72A6:
+ 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_80A7094
+
+ thumb_func_start sub_80A72B8
+sub_80A72B8:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ beq _080A72D2
+ adds r1, r6, 0
+ adds r1, 0x6E
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r6, 0
+ bl sub_80054BC
+ b _080A7304
+_080A72D2:
+ adds r5, r6, 0
+ adds r5, 0x6E
+ adds r0, r6, 0
+ adds r0, 0x6C
+ ldrh r0, [r0]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080A7304
+ ldr r0, _080A730C
+ adds r7, r0, 0
+_080A72EE:
+ adds r4, r5, 0
+ ldrh r1, [r5]
+ adds r0, r7, r1
+ strh r0, [r5]
+ adds r0, r6, 0
+ bl sub_80054BC
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xFF
+ bgt _080A72EE
+_080A7304:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A730C: .4byte 0xffffff00
+ thumb_func_end sub_80A72B8
+
+ thumb_func_start sub_80A7310
+sub_80A7310:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ mov r12, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r0, 0x50
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080A73DC
+ mov r0, r12
+ ldr r0, [r0, 0x5C]
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ beq _080A73DC
+ ldr r0, [r4]
+ cmp r0, 0
+ bge _080A7344
+ adds r0, 0xFF
+_080A7344:
+ lsls r0, 8
+ lsrs r0, 16
+ ldr r1, _080A73D0
+ mov r9, r1
+ ldr r2, [sp, 0x4]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ ldr r0, [r4, 0x4]
+ cmp r0, 0
+ bge _080A735C
+ adds r0, 0xFF
+_080A735C:
+ lsls r0, 8
+ lsrs r0, 16
+ lsls r0, 16
+ ldr r6, _080A73D4
+ adds r4, r6, 0
+ ands r4, r2
+ orrs r4, r0
+ str r4, [sp, 0x4]
+ asrs r2, r4, 16
+ ldr r0, _080A73D8
+ ldr r0, [r0, 0x4]
+ subs r0, r2, r0
+ mov r1, r12
+ adds r1, 0x6A
+ movs r7, 0
+ ldrsh r1, [r1, r7]
+ adds r0, r1
+ adds r7, r0, 0x2
+ cmp r3, 0
+ bge _080A7386
+ adds r3, 0xFF
+_080A7386:
+ asrs r0, r3, 8
+ subs r0, r2, r0
+ lsls r0, 16
+ adds r2, r6, 0
+ ands r2, r4
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ cmp r5, 0
+ beq _080A73B8
+ ldr r1, [r5]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ asrs r2, r0, 16
+ ldr r1, [r5, 0x4]
+ adds r1, r2
+ lsls r1, 16
+ ands r0, r6
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_080A73B8:
+ mov r0, r12
+ adds r0, 0x3C
+ str r0, [sp]
+ mov r0, r8
+ add r1, sp, 0x4
+ movs r2, 0
+ adds r3, r7, 0
+ bl sub_800E8AC
+ movs r0, 0x1
+ b _080A73DE
+ .align 2, 0
+_080A73D0: .4byte 0xffff0000
+_080A73D4: .4byte 0x0000ffff
+_080A73D8: .4byte gUnknown_2039DD8
+_080A73DC:
+ movs r0, 0
+_080A73DE:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A7310
+
+ thumb_func_start sub_80A73EC
+sub_80A73EC:
+ push {lr}
+ bl CopySpritesToOam
+ bl nullsub_13
+ bl sub_8005304
+ bl nullsub_14
+ ldr r1, _080A7420
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080A7424
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bls _080A741A
+ movs r0, 0
+ strh r0, [r1]
+_080A741A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A7420: .4byte gUnknown_2039DCC
+_080A7424: .4byte gUnknown_2039DCE
+ thumb_func_end sub_80A73EC
+
+ thumb_func_start sub_80A7428
+sub_80A7428:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ mov r8, r3
+ lsls r1, 16
+ asrs r7, r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r4, r2, 0
+ ldr r1, _080A7480
+ mov r0, sp
+ bl sprintf
+ ldr r1, _080A7484
+ mov r0, sp
+ bl OpenFile
+ adds r5, r0, 0
+ movs r1, 0
+ bl GetFileDataPtr
+ adds r0, r4, 0
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A7488
+ ldr r2, [sp, 0xC]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0xC]
+ movs r0, 0xD3
+ lsls r0, 1
+ cmp r4, r0
+ bne _080A7490
+ ldr r0, _080A748C
+ ands r0, r2
+ movs r1, 0x91
+ lsls r1, 17
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ b _080A74AC
+ .align 2, 0
+_080A7480: .4byte gUnknown_8117EDC
+_080A7484: .4byte gUnknown_8510000
+_080A7488: .4byte 0xffff0000
+_080A748C: .4byte 0x0000ffff
+_080A7490:
+ movs r1, 0
+ cmp r7, 0x47
+ bne _080A7498
+ movs r1, 0x1
+_080A7498:
+ adds r0, r4, 0
+ bl sub_808DD68
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r2, _080A74E0
+ ldr r1, [sp, 0xC]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp, 0xC]
+_080A74AC:
+ ldr r0, [r5, 0x4]
+ add r1, sp, 0xC
+ str r0, [r1, 0x4]
+ adds r0, r6, 0
+ mov r2, r8
+ bl sub_80A67CC
+ str r5, [r6, 0x54]
+ adds r0, r6, 0
+ adds r0, 0x52
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ blt _080A74D4
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80A6EFC
+_080A74D4:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A74E0: .4byte 0x0000ffff
+ thumb_func_end sub_80A7428
+
+ thumb_func_start sub_80A74E4
+sub_80A74E4:
+ push {lr}
+ bl sub_80A68A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A74E4
+
+ thumb_func_start sub_80A74F0
+sub_80A74F0:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ asrs r4, r1, 16
+ lsls r2, 24
+ asrs r5, r2, 24
+ cmp r3, 0
+ bge _080A7514
+ movs r0, 0xE0
+ lsls r0, 1
+ cmp r4, r0
+ beq _080A7512
+ adds r0, r4, 0
+ bl sub_800E700
+ adds r3, r0, 0
+ b _080A7514
+_080A7512:
+ movs r3, 0
+_080A7514:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A7040
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A74F0
+
+ thumb_func_start sub_80A7524
+sub_80A7524:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ adds r5, r0, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ lsls r1, 16
+ asrs r1, 16
+ mov r8, r1
+ mov r1, sp
+ bl sub_80A7094
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A75C0
+ ldr r1, [r5, 0x5C]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A758C
+ ldr r2, [r5, 0x60]
+ cmp r2, 0x3
+ bgt _080A7580
+ cmp r2, 0
+ blt _080A7580
+ add r4, sp, 0x8
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_800569C
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ str r0, [sp, 0xC]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ add r2, sp, 0xC
+ str r0, [r2, 0x4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r3, r7, 0
+ bl sub_80A7310
+ b _080A758C
+_080A7580:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0
+ adds r3, r7, 0
+ bl sub_80A7310
+_080A758C:
+ adds r0, r5, 0
+ adds r0, 0x50
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080A75B4
+ ldr r0, [sp]
+ lsls r0, 16
+ ldr r1, [sp, 0x4]
+ lsls r1, 16
+ lsrs r0, 16
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ add r1, sp, 0x14
+ mov r0, r8
+ adds r2, r5, 0
+ bl sub_808E668
+_080A75B4:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0
+ adds r3, r7, 0
+ bl sub_80A7310
+_080A75C0:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7524
+
+ thumb_func_start sub_80A75CC
+sub_80A75CC:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r3, 0
+ lsls r2, 16
+ asrs r2, 13
+ ldr r0, _080A7618
+ adds r2, r0
+ movs r5, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _080A761C
+ ldr r1, [sp]
+ ands r1, r3
+ orrs r1, r0
+ str r1, [sp]
+ ldrh r3, [r2, 0x2]
+ lsls r3, 16
+ ldr r0, _080A7620
+ ands r0, r1
+ orrs r0, r3
+ str r0, [sp]
+ ldr r0, [r2, 0x4]
+ cmp r0, 0
+ beq _080A7628
+ ldr r1, _080A7624
+ bl OpenFile
+ adds r5, r0, 0
+ movs r1, 0
+ bl GetFileDataPtr
+ ldr r0, [r5, 0x4]
+ str r0, [sp, 0x4]
+ b _080A762A
+ .align 2, 0
+_080A7618: .4byte gUnknown_8117AE4
+_080A761C: .4byte 0xffff0000
+_080A7620: .4byte 0x0000ffff
+_080A7624: .4byte gUnknown_9E60000
+_080A7628:
+ str r5, [sp, 0x4]
+_080A762A:
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r6, 0
+ bl sub_80A67CC
+ str r5, [r4, 0x54]
+ adds r0, r4, 0
+ adds r0, 0x52
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ blt _080A764E
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80A6EFC
+_080A764E:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A75CC
+
+ thumb_func_start sub_80A7658
+sub_80A7658:
+ push {lr}
+ bl sub_80A68A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A7658
+
+ thumb_func_start sub_80A7664
+sub_80A7664:
+ 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_80A7664
+
+ thumb_func_start sub_80A7688
+sub_80A7688:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r3, 0
+ lsls r2, 16
+ asrs r2, 13
+ ldr r0, _080A76D4
+ adds r2, r0
+ movs r5, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _080A76D8
+ ldr r1, [sp]
+ ands r1, r3
+ orrs r1, r0
+ str r1, [sp]
+ ldrh r3, [r2, 0x2]
+ lsls r3, 16
+ ldr r0, _080A76DC
+ ands r0, r1
+ orrs r0, r3
+ str r0, [sp]
+ ldr r0, [r2, 0x4]
+ cmp r0, 0
+ beq _080A76E4
+ ldr r1, _080A76E0
+ bl OpenFile
+ adds r5, r0, 0
+ movs r1, 0
+ bl GetFileDataPtr
+ ldr r0, [r5, 0x4]
+ str r0, [sp, 0x4]
+ b _080A76E6
+ .align 2, 0
+_080A76D4: .4byte gUnknown_8117E8C
+_080A76D8: .4byte 0xffff0000
+_080A76DC: .4byte 0x0000ffff
+_080A76E0: .4byte gUnknown_9E60000
+_080A76E4:
+ str r5, [sp, 0x4]
+_080A76E6:
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r6, 0
+ bl sub_80A67CC
+ str r5, [r4, 0x54]
+ adds r0, r4, 0
+ adds r0, 0x52
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ blt _080A770A
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80A6EFC
+_080A770A:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ 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/ld_script.txt b/ld_script.txt
index c183e05..a914b12 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -89,6 +89,7 @@ SECTIONS {
src/code_8092334.o(.text);
asm/code_8092334.o(.text);
asm/code_8098468.o(.text);
+ asm/code_80A26CC.o(.text);
asm/m4a_1.o(.text);
src/m4a_2.o(.text);
asm/m4a_3.o(.text);