summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshinny <shinny456@users.noreply.github.com>2020-06-02 14:56:12 -0400
committershinny <shinny456@users.noreply.github.com>2020-06-02 14:56:12 -0400
commitcef20f5b34c507dabeaa292617963371faeca2e3 (patch)
treec6dbccf154730d3b52a0af609393ae387ed1b346
parent4f88655a79bb2d8f10bdce2841f427c0e27040bd (diff)
decomp dungeon data getters
-rw-r--r--asm/code.s4
-rw-r--r--asm/code_8012A18.s63408
-rw-r--r--asm/code_809017C.s63219
-rw-r--r--data/data_80B9BB8.s10
-rw-r--r--include/dungeon.h31
-rwxr-xr-xld_script.txt2
-rw-r--r--src/dungeon.c67
7 files changed, 63344 insertions, 63397 deletions
diff --git a/asm/code.s b/asm/code.s
index 8a85646..f5d57a3 100644
--- a/asm/code.s
+++ b/asm/code.s
@@ -1303,7 +1303,7 @@ _08000D36:
cmp r4, 0x63
beq _08000D70
adds r0, r4, 0
- bl sub_80900E4
+ bl GetSaveBeforeEntering
lsls r0, 24
cmp r0, 0
beq _08000D70
@@ -1394,7 +1394,7 @@ _08000E00:
b _08000E1E
_08000E0C:
adds r0, r6, 0
- bl sub_80900E4
+ bl GetSaveBeforeEntering
lsls r0, 24
cmp r0, 0
bne _08000E1E
diff --git a/asm/code_8012A18.s b/asm/code_8012A18.s
index e462a67..028ff15 100644
--- a/asm/code_8012A18.s
+++ b/asm/code_8012A18.s
@@ -60041,7 +60041,7 @@ _080305A2:
movs r5, 0x4
_08030608:
adds r0, r7, 0
- bl sub_809009C
+ bl GetDungeonName1
adds r3, r0, 0
add r0, sp, 0x8
ldr r1, _08030664
@@ -86740,7 +86740,7 @@ _0803DAD6:
ldr r1, _0803DBA8
adds r0, r1
ldrb r0, [r0]
- bl sub_80900AC
+ bl GetDungeonName2
mov r9, r0
movs r5, 0xA
movs r0, 0
@@ -86782,7 +86782,7 @@ _0803DAFE:
ldr r1, _0803DBA8
adds r0, r1
ldrb r0, [r0]
- bl sub_80900C0
+ bl GetStairDirection
lsls r0, 24
ldr r6, _0803DBB0
cmp r0, 0
@@ -87615,7 +87615,7 @@ _0803E1BC:
ldr r1, _0803E1D8
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_80900C0
+ bl GetStairDirection
lsls r0, 24
movs r1, 0x16
cmp r0, 0
@@ -91022,7 +91022,7 @@ _0803FCB0:
ldr r3, _0803FCF8
adds r0, r2, r3
ldrb r0, [r0]
- bl sub_80900C0
+ bl GetStairDirection
lsls r0, 24
cmp r0, 0
beq _0803FCFC
@@ -96725,7 +96725,7 @@ _08042694:
ldr r1, _080426C0
adds r0, r1
ldrb r0, [r0]
- bl sub_80900C0
+ bl GetStairDirection
lsls r0, 24
ldr r4, _080426C4
cmp r0, 0
@@ -98010,7 +98010,7 @@ _08042FB6:
str r0, [r2]
str r1, [r2, 0x4]
ldrb r0, [r5, 0x4]
- bl sub_80900D0
+ bl GetUnkC
ldr r1, [r4]
ldr r5, _08043124
adds r2, r1, r5
@@ -98020,7 +98020,7 @@ _08042FB6:
strb r7, [r1]
mov r1, r8
ldrb r0, [r1, 0x4]
- bl sub_8090134
+ bl GetUnk3
ldr r1, [r4]
ldr r2, _0804312C
adds r1, r2
@@ -98270,7 +98270,7 @@ _08043230:
ldr r5, _080432BC
adds r0, r5
ldrb r0, [r0]
- bl sub_8090104
+ bl GetLevelCondition
lsls r0, 24
mov r4, r8
adds r4, 0x1C
@@ -98630,7 +98630,7 @@ _08043544:
ldr r1, _080435C4
adds r0, r1
ldrb r0, [r0]
- bl sub_80900D0
+ bl GetUnkC
ldr r2, [r5]
ldr r3, _080435C8
adds r1, r2, r3
@@ -100039,7 +100039,7 @@ sub_8044124:
ldr r1, _080441B0
adds r0, r1
ldrb r0, [r0]
- bl sub_8090114
+ bl GetMaxItemCount
cmp r0, 0
bne _08044182
movs r3, 0
@@ -100088,7 +100088,7 @@ _08044182:
ldr r2, _080441B0
adds r0, r2
ldrb r0, [r0]
- bl sub_8090124
+ bl GetMoneyCondition
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -131020,7 +131020,7 @@ _08053198: .4byte gUnknown_203B418
_0805319C:
movs r0, 0x3F
_0805319E:
- bl sub_809009C
+ bl GetDungeonName1
pop {r1}
bx r1
thumb_func_end sub_805317C
@@ -173640,7 +173640,7 @@ _08068922:
ldr r1, _08068A6C
adds r0, r1
ldrb r0, [r0]
- bl sub_8090104
+ bl GetLevelCondition
lsls r0, 24
cmp r0, 0
beq _08068A06
@@ -174057,7 +174057,7 @@ _08068C96:
ldr r1, _08068CD8
adds r0, r1
ldrb r0, [r0]
- bl sub_8090104
+ bl GetLevelCondition
lsls r0, 24
cmp r0, 0
beq _08068CDC
@@ -174774,7 +174774,7 @@ _08069228:
ldr r1, _080692D4
adds r0, r1
ldrb r0, [r0]
- bl sub_8090104
+ bl GetLevelCondition
lsls r0, 24
cmp r0, 0
bne _0806926E
@@ -174973,7 +174973,7 @@ _080693CC:
ldr r1, _080694B0
adds r0, r1
ldrb r0, [r0]
- bl sub_8090104
+ bl GetLevelCondition
lsls r0, 24
cmp r0, 0
bne _0806940E
@@ -228981,7 +228981,7 @@ sub_8083C88:
ldr r1, _08083CCC
adds r0, r1
ldrb r0, [r0]
- bl sub_80900F4
+ bl GetUnk9
lsls r0, 24
cmp r0, 0
bne _08083CB6
@@ -252523,63376 +252523,4 @@ _08090086:
bx r0
thumb_func_end sub_808FF20
- thumb_func_start sub_809009C
-sub_809009C:
- lsls r0, 24
- ldr r1, _080900A8
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080900A8: .4byte gUnknown_8111A28
- thumb_func_end sub_809009C
-
- thumb_func_start sub_80900AC
-sub_80900AC:
- lsls r0, 24
- ldr r1, _080900BC
- lsrs r0, 21
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080900BC: .4byte gUnknown_8111A28
- thumb_func_end sub_80900AC
-
- thumb_func_start sub_80900C0
-sub_80900C0:
- lsls r0, 24
- ldr r1, _080900CC
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080900CC: .4byte gUnknown_8109D30
- thumb_func_end sub_80900C0
-
- thumb_func_start sub_80900D0
-sub_80900D0:
- lsls r0, 24
- ldr r1, _080900E0
- lsrs r0, 20
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080900E0: .4byte gUnknown_8109D30
- thumb_func_end sub_80900D0
-
- thumb_func_start sub_80900E4
-sub_80900E4:
- lsls r0, 24
- ldr r1, _080900F0
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0xA]
- bx lr
- .align 2, 0
-_080900F0: .4byte gUnknown_8109D30
- thumb_func_end sub_80900E4
-
- thumb_func_start sub_80900F4
-sub_80900F4:
- lsls r0, 24
- ldr r1, _08090100
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x9]
- bx lr
- .align 2, 0
-_08090100: .4byte gUnknown_8109D30
- thumb_func_end sub_80900F4
-
- thumb_func_start sub_8090104
-sub_8090104:
- lsls r0, 24
- ldr r1, _08090110
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x6]
- bx lr
- .align 2, 0
-_08090110: .4byte gUnknown_8109D30
- thumb_func_end sub_8090104
-
- thumb_func_start sub_8090114
-sub_8090114:
- lsls r0, 24
- ldr r1, _08090120
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_08090120: .4byte gUnknown_8109D30
- thumb_func_end sub_8090114
-
- thumb_func_start sub_8090124
-sub_8090124:
- lsls r0, 24
- ldr r1, _08090130
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x7]
- bx lr
- .align 2, 0
-_08090130: .4byte gUnknown_8109D30
- thumb_func_end sub_8090124
-
- thumb_func_start sub_8090134
-sub_8090134:
- lsls r0, 24
- ldr r1, _08090144
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x3]
- lsls r0, 24
- asrs r0, 24
- bx lr
- .align 2, 0
-_08090144: .4byte gUnknown_8109D30
- thumb_func_end sub_8090134
-
- thumb_func_start sub_8090148
-sub_8090148:
- lsls r0, 24
- ldr r1, _08090154
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x2]
- bx lr
- .align 2, 0
-_08090154: .4byte gUnknown_8109D30
- thumb_func_end sub_8090148
-
- thumb_func_start sub_8090158
-sub_8090158:
- lsls r0, 24
- ldr r1, _08090164
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x8]
- bx lr
- .align 2, 0
-_08090164: .4byte gUnknown_8109D30
- thumb_func_end sub_8090158
-
- thumb_func_start sub_8090168
-sub_8090168:
- lsls r0, 24
- ldr r1, _08090178
- lsrs r0, 20
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08090178: .4byte gUnknown_8109D30
- thumb_func_end sub_8090168
-
- thumb_func_start sub_809017C
-sub_809017C:
- push {r4-r6,lr}
- sub sp, 0x4
- adds r1, r0, 0
- mov r0, sp
- bl sub_80901D8
- movs r5, 0
- ldr r2, _080901AC
- ldrb r0, [r2]
- cmp r0, 0x3F
- beq _080901C6
- mov r3, sp
- ldrb r6, [r3]
- movs r4, 0
- adds r1, r2, 0
-_0809019A:
- ldrb r0, [r1]
- cmp r6, r0
- bne _080901B0
- ldrb r0, [r3, 0x1]
- ldrb r2, [r1, 0x1]
- cmp r0, r2
- bne _080901B0
- movs r0, 0x1
- b _080901C8
- .align 2, 0
-_080901AC: .4byte gUnknown_8107828
-_080901B0:
- adds r4, 0x4
- adds r1, 0x4
- adds r5, 0x1
- ldr r0, _080901D0
- cmp r5, r0
- bgt _080901C6
- ldr r2, _080901D4
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0x3F
- bne _0809019A
-_080901C6:
- movs r0, 0
-_080901C8:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080901D0: .4byte 0x000003e6
-_080901D4: .4byte gUnknown_8107828
- thumb_func_end sub_809017C
-
- thumb_func_start sub_80901D8
-sub_80901D8:
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldrb r0, [r2]
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- bhi _080901FE
- movs r0, 0x34
- strb r0, [r3]
- ldrb r1, [r2]
- subs r1, 0x4B
- lsls r0, r1, 1
- adds r0, r1
- ldrb r2, [r2, 0x1]
- adds r0, r2
- strb r0, [r3, 0x1]
- b _08090202
-_080901FE:
- ldr r0, [r2]
- str r0, [r3]
-_08090202:
- pop {r0}
- bx r0
- thumb_func_end sub_80901D8
-
- thumb_func_start sub_8090208
-sub_8090208:
- push {lr}
- ldr r3, _08090220
- ldr r2, _08090224
- ldrb r1, [r1]
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- adds r1, r3, 0
- bl sub_800D158
- pop {r0}
- bx r0
- .align 2, 0
-_08090220: .4byte gUnknown_8108F10
-_08090224: .4byte gUnknown_8111A28
- thumb_func_end sub_8090208
-
- thumb_func_start sub_8090228
-sub_8090228:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _08090250
- ldrb r3, [r4]
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809025C
- ldr r1, _08090254
- ldr r2, _08090258
- lsls r0, r3, 3
- adds r0, r2
- ldr r2, [r0]
- ldrb r3, [r4, 0x1]
- adds r0, r5, 0
- bl sub_800D158
- b _0809026E
- .align 2, 0
-_08090250: .4byte gUnknown_8109D30
-_08090254: .4byte gUnknown_8108F18
-_08090258: .4byte gUnknown_8111A28
-_0809025C:
- ldr r1, _08090274
- ldr r2, _08090278
- lsls r0, r3, 3
- adds r0, r2
- ldr r2, [r0]
- ldrb r3, [r4, 0x1]
- adds r0, r5, 0
- bl sub_800D158
-_0809026E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08090274: .4byte gUnknown_8108F2C
-_08090278: .4byte gUnknown_8111A28
- thumb_func_end sub_8090228
-
- thumb_func_start sub_809027C
-sub_809027C:
- push {lr}
- ldr r2, _08090294
- ldrb r1, [r1]
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0x50
- bl strncpy
- pop {r0}
- bx r0
- .align 2, 0
-_08090294: .4byte gUnknown_8111A28
- thumb_func_end sub_809027C
-
- thumb_func_start sub_8090298
-sub_8090298:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- bhi _080902AE
- movs r0, 0x4
- b _080902C2
-_080902AE:
- cmp r1, 0x3E
- bhi _080902C0
- ldr r0, _080902BC
- adds r0, r1, r0
- ldrb r0, [r0]
- b _080902C2
- .align 2, 0
-_080902BC: .4byte gUnknown_81077A8
-_080902C0:
- movs r0, 0x1
-_080902C2:
- pop {r1}
- bx r1
- thumb_func_end sub_8090298
-
- thumb_func_start sub_80902C8
-sub_80902C8:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- bls _080902EC
- cmp r1, 0x3E
- bhi _080902EC
- ldr r0, _080902E8
- adds r0, r1, r0
- ldrb r0, [r0]
- b _080902EE
- .align 2, 0
-_080902E8: .4byte gUnknown_81077E8
-_080902EC:
- movs r0, 0
-_080902EE:
- pop {r1}
- bx r1
- thumb_func_end sub_80902C8
-
- thumb_func_start sub_80902F4
-sub_80902F4:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x7
- bl sub_809488C
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80902F4
-
- thumb_func_start sub_8090314
-sub_8090314:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- movs r2, 0x7
- bl sub_8094924
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8090314
-
- thumb_func_start sub_809033C
-sub_809033C:
- lsls r0, 24
- ldr r1, _08090348
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x1]
- bx lr
- .align 2, 0
-_08090348: .4byte gUnknown_8109D30
- thumb_func_end sub_809033C
-
- thumb_func_start sub_809034C
-sub_809034C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xF8
- adds r7, r2, 0
- ldr r2, [sp, 0x118]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- asrs r1, 16
- str r1, [sp, 0xE0]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xE4]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xE8]
- bl sub_8090A34
- str r0, [sp, 0xEC]
- movs r5, 0
- movs r0, 0
- str r0, [sp, 0xF4]
- mov r8, r0
- add r4, sp, 0xC8
- movs r0, 0xA
- strb r0, [r4]
- add r1, sp, 0xF4
- ldrb r1, [r1]
- strb r1, [r4, 0x1]
- ldr r1, _0809040C
- adds r0, r7, 0
- bl strcpy
- movs r2, 0
- str r2, [sp, 0xF0]
- movs r3, 0
- ldr r0, _08090410
- ldr r6, [r0]
- movs r4, 0x1
-_080903A2:
- movs r0, 0x58
- muls r0, r3
- adds r2, r6, r0
- ldrh r1, [r2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080903D0
- lsrs r0, r1, 1
- ands r0, r4
- cmp r0, 0
- beq _080903D0
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- beq _080903CA
- ldr r0, [sp, 0xF0]
- adds r0, 0x1
- str r0, [sp, 0xF0]
-_080903CA:
- adds r5, 0x1
- cmp r5, 0x4
- beq _080903DA
-_080903D0:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _080903A2
-_080903DA:
- ldr r0, _08090414
- mov r2, r9
- lsls r1, r2, 4
- adds r0, r1, r0
- ldrb r0, [r0, 0x5]
- mov r9, r1
- ldr r1, [sp, 0xE4]
- cmp r1, 0
- bne _080903F2
- cmp r0, 0x3
- ble _080903F2
- movs r0, 0x3
-_080903F2:
- cmp r5, r0
- ble _0809043C
- cmp r0, 0x1
- bne _0809041C
- ldr r0, _08090418
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- b _08090430
- .align 2, 0
-_0809040C: .4byte gUnknown_8108F40
-_08090410: .4byte gUnknown_203B45C
-_08090414: .4byte gUnknown_8109D30
-_08090418: .4byte gUnknown_8115A2C
-_0809041C:
- ldr r1, _08090464
- subs r0, r5, r0
- str r0, [r1]
- ldr r0, _08090468
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
-_08090430:
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r2, 0x1
- mov r8, r2
-_0809043C:
- ldr r0, _0809046C
- mov r2, r9
- adds r1, r2, r0
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0809048E
- ldr r1, [sp, 0xEC]
- cmp r0, r1
- bge _0809048E
- ldr r1, _08090464
- str r0, [r1]
- ldr r2, [sp, 0xEC]
- subs r0, r2, r0
- str r0, [r1, 0x4]
- mov r0, r8
- cmp r0, 0
- bne _08090474
- ldr r0, _08090470
- b _08090476
- .align 2, 0
-_08090464: .4byte gUnknown_202DE30
-_08090468: .4byte gUnknown_81159DC
-_0809046C: .4byte gUnknown_8109D30
-_08090470: .4byte gUnknown_8115A80
-_08090474:
- ldr r0, _080904AC
-_08090476:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_0809048E:
- ldr r2, [sp, 0xE0]
- cmp r2, 0
- beq _0809054E
- ldr r0, _080904B0
- adds r1, r2, 0
- bl sub_808D908
- cmp r5, 0x3
- ble _080904D2
- mov r0, r8
- cmp r0, 0
- bne _080904B8
- ldr r0, _080904B4
- b _080904BA
- .align 2, 0
-_080904AC: .4byte gUnknown_8115ADC
-_080904B0: .4byte gUnknown_202DF98
-_080904B4: .4byte gUnknown_8115B3C
-_080904B8:
- ldr r0, _08090528
-_080904BA:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_080904D2:
- ldr r0, [sp, 0xE0]
- bl sub_808DACC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r2, _0809052C
- mov r10, r2
- movs r6, 0x1
-_080904E4:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- mov r2, r10
- ldr r0, [r2]
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08090510
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _08090510
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- bl sub_808DACC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0
-_08090510:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _080904E4
- cmp r5, 0x6
- ble _0809054E
- mov r2, r8
- cmp r2, 0
- bne _08090534
- ldr r0, _08090530
- b _08090536
- .align 2, 0
-_08090528: .4byte gUnknown_8115BA4
-_0809052C: .4byte gUnknown_203B45C
-_08090530: .4byte gUnknown_8115BF4
-_08090534:
- ldr r0, _080905D0
-_08090536:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r0, 0x1
- mov r8, r0
-_0809054E:
- ldr r1, [sp, 0xE4]
- cmp r1, 0
- beq _08090602
- add r5, sp, 0xCC
- ldr r1, _080905D4
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- add r4, sp, 0xD4
- ldr r1, _080905D8
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- movs r6, 0
- mov r10, r4
- ldr r0, _080905DC
- add r0, r9
- ldrb r5, [r0, 0xB]
- add r4, sp, 0xCC
-_08090578:
- adds r0, r5, 0
- asrs r0, r6
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809059E
- ldrh r0, [r4]
- bl sub_8090820
- lsls r0, 24
- cmp r0, 0
- bne _0809059E
- mov r2, r10
- adds r0, r2, r6
- ldrb r0, [r0]
- bl sub_80911A4
- cmp r0, 0
- beq _080905A6
-_0809059E:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08090578
-_080905A6:
- cmp r6, 0x3
- bgt _08090602
- add r4, sp, 0xD8
- lsls r0, r6, 1
- add r0, sp
- adds r0, 0xCC
- ldrh r1, [r0]
- adds r0, r4, 0
- bl sub_8092A88
- ldr r0, _080905E0
- adds r1, r4, 0
- movs r2, 0
- bl sub_80928C0
- mov r0, r8
- cmp r0, 0
- bne _080905E8
- ldr r0, _080905E4
- b _080905EA
- .align 2, 0
-_080905D0: .4byte gUnknown_8115C4C
-_080905D4: .4byte gUnknown_8108F42
-_080905D8: .4byte gUnknown_8108F4A
-_080905DC: .4byte gUnknown_8109D30
-_080905E0: .4byte gUnknown_202DE58
-_080905E4: .4byte gUnknown_8115CB8
-_080905E8:
- ldr r0, _080906A0
-_080905EA:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_08090602:
- ldr r0, _080906A4
- add r0, r9
- ldrb r1, [r0, 0xB]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080906CE
- ldr r5, _080906A8
- ldr r2, [sp, 0xE0]
- cmp r2, 0
- beq _0809063A
- adds r0, r2, 0
- movs r1, 0
- bl sub_808DC68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08090638
- ldr r0, [sp, 0xE0]
- movs r1, 0x1
- bl sub_808DC68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0809063A
-_08090638:
- movs r5, 0
-_0809063A:
- ldr r0, _080906A8
- cmp r5, r0
- bne _080906CE
- movs r5, 0
- movs r6, 0x1
-_08090644:
- ldr r2, _080906AC
- movs r0, 0x58
- adds r1, r5, 0
- muls r1, r0
- ldr r0, [r2]
- adds r4, r0, r1
- ldrh r1, [r4]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08090686
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _08090686
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- movs r1, 0
- bl sub_808DC68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08090690
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r1, 0x1
- bl sub_808DC68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08090690
-_08090686:
- adds r5, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _08090644
-_08090690:
- ldr r0, _080906A8
- cmp r5, r0
- bne _080906CE
- mov r0, r8
- cmp r0, 0
- bne _080906B4
- ldr r0, _080906B0
- b _080906B6
- .align 2, 0
-_080906A0: .4byte gUnknown_8115D14
-_080906A4: .4byte gUnknown_8109D30
-_080906A8: .4byte 0x0000019d
-_080906AC: .4byte gUnknown_203B45C
-_080906B0: .4byte gUnknown_8115D5C
-_080906B4:
- ldr r0, _080906D8
-_080906B6:
- ldr r0, [r0]
- mov r1, sp
- add r2, sp, 0xC8
- movs r3, 0
- bl xxx_format_string
- adds r0, r7, 0
- mov r1, sp
- bl sub_8090888
- movs r1, 0x1
- mov r8, r1
-_080906CE:
- mov r2, r8
- cmp r2, 0
- beq _080906DC
- movs r0, 0x1
- b _0809080E
- .align 2, 0
-_080906D8: .4byte gUnknown_8115D94
-_080906DC:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _080906EC
- ldr r0, [sp, 0xE8]
- cmp r0, 0
- beq _0809071A
-_080906EC:
- ldr r1, [sp, 0xF4]
- cmp r1, 0
- bne _08090708
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r2, 0x1
- str r2, [sp, 0xF4]
-_08090708:
- ldr r0, _080907F4
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_0809071A:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- beq _08090752
- ldr r0, [sp, 0xF4]
- cmp r0, 0
- bne _08090740
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r1, 0x1
- str r1, [sp, 0xF4]
-_08090740:
- ldr r0, _080907F8
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_08090752:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08090792
- ldr r2, [sp, 0xEC]
- ldr r0, [sp, 0xF0]
- cmn r2, r0
- beq _08090792
- ldr r1, [sp, 0xF4]
- cmp r1, 0
- bne _08090780
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r2, 0x1
- str r2, [sp, 0xF4]
-_08090780:
- ldr r0, _080907FC
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_08090792:
- ldr r0, _080907EC
- add r0, r9
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _080907DA
- ldr r0, _08090800
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080907DA
- ldr r2, [sp, 0xF4]
- cmp r2, 0
- bne _080907C8
- ldr r0, _080907F0
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcpy
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
- movs r0, 0x1
- str r0, [sp, 0xF4]
-_080907C8:
- ldr r0, _08090804
- ldr r1, [r0]
- adds r0, r7, 0
- bl strcat
- adds r0, r7, 0
- add r1, sp, 0xC8
- bl strcat
-_080907DA:
- ldr r1, [sp, 0xF4]
- cmp r1, 0
- bne _0809080C
- ldr r1, _08090808
- adds r0, r7, 0
- bl sub_800D158
- movs r0, 0
- b _0809080E
- .align 2, 0
-_080907EC: .4byte gUnknown_8109D30
-_080907F0: .4byte gUnknown_8115DD4
-_080907F4: .4byte gUnknown_8115E00
-_080907F8: .4byte gUnknown_8115E28
-_080907FC: .4byte gUnknown_8115E54
-_08090800: .4byte gUnknown_203B460
-_08090804: .4byte gUnknown_8115E80
-_08090808: .4byte gUnknown_8108F50
-_0809080C:
- movs r0, 0x2
-_0809080E:
- add sp, 0xF8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809034C
-
- thumb_func_start sub_8090820
-sub_8090820:
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
- ldr r0, _08090868
- ldr r0, [r0]
- mov r12, r0
- movs r7, 0x1
-_08090830:
- movs r0, 0x58
- muls r0, r4
- mov r2, r12
- adds r1, r2, r0
- ldrh r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- beq _08090874
- lsrs r0, r2, 1
- ands r0, r7
- cmp r0, 0
- beq _08090874
- movs r3, 0
- movs r5, 0x1
- adds r2, r1, 0
- adds r2, 0x2C
-_08090852:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0809086C
- ldrh r0, [r2, 0x2]
- cmp r0, r6
- bne _0809086C
- movs r0, 0x1
- b _08090880
- .align 2, 0
-_08090868: .4byte gUnknown_203B45C
-_0809086C:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x3
- ble _08090852
-_08090874:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08090830
- movs r0, 0
-_08090880:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8090820
-
- thumb_func_start sub_8090888
-sub_8090888:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r6, 0
- b _0809089C
-_08090892:
- ldrb r0, [r4]
- cmp r0, 0xA
- bne _0809089A
- adds r6, 0x1
-_0809089A:
- adds r4, 0x1
-_0809089C:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08090892
- ldrb r7, [r5]
- b _080908AE
-_080908A6:
- movs r0, 0xA
- strb r0, [r4]
- adds r4, 0x1
- adds r6, 0x1
-_080908AE:
- adds r0, r6, 0
- movs r1, 0x3
- bl __modsi3
- cmp r0, 0
- bne _080908A6
- adds r1, r7, 0
- lsls r0, r1, 24
- cmp r0, 0
- beq _080908CE
-_080908C2:
- strb r1, [r4]
- adds r4, 0x1
- adds r5, 0x1
- ldrb r1, [r5]
- cmp r1, 0
- bne _080908C2
-_080908CE:
- movs r0, 0
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8090888
-
- thumb_func_start sub_80908D8
-sub_80908D8:
- push {lr}
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r0, 0x3E
- bhi _08090908
- ldr r0, _08090900
- ldrb r3, [r2]
- adds r0, r3, r0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08090908
- ldr r1, _08090904
- lsls r0, r3, 2
- adds r0, r1
- ldrb r1, [r2, 0x1]
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- b _0809090A
- .align 2, 0
-_08090900: .4byte gUnknown_81077A8
-_08090904: .4byte gUnknown_8108084
-_08090908:
- movs r0, 0x1
-_0809090A:
- pop {r1}
- bx r1
- thumb_func_end sub_80908D8
-
- thumb_func_start sub_8090910
-sub_8090910:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldr r4, _0809094C
- adds r0, r4, 0
- bl RandomCapped
- adds r6, r0, 0
- adds r0, r4, 0
- bl RandomCapped
- adds r2, r0, 0
- ldrb r0, [r5]
- cmp r0, 0x3E
- bhi _08090954
- ldr r0, _08090950
- ldrb r1, [r5]
- adds r1, r0
- ldrb r0, [r5, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08090954
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8091E94
- lsls r0, 24
- lsrs r0, 24
- b _08090956
- .align 2, 0
-_0809094C: .4byte 0x0000270f
-_08090950: .4byte gUnknown_81077A8
-_08090954:
- movs r0, 0x46
-_08090956:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8090910
-
- thumb_func_start sub_809095C
-sub_809095C:
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3E
- bls _0809096A
-_08090966:
- movs r0, 0x1
- b _0809098C
-_0809096A:
- movs r2, 0
- ldr r0, _08090994
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3F
- beq _0809098A
- adds r1, r4, 0
-_08090978:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, r3
- beq _08090966
- adds r2, 0x1
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0x3F
- bne _08090978
-_0809098A:
- movs r0, 0
-_0809098C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090994: .4byte gUnknown_810A350
- thumb_func_end sub_809095C
-
- thumb_func_start sub_8090998
-sub_8090998:
- push {lr}
- ldr r1, _080909B8
- ldr r0, _080909BC
- str r0, [r1]
- ldr r0, _080909C0
- ldr r1, _080909C4
- bl OpenFileAndGetFileDataPtr
- ldr r1, _080909C8
- str r0, [r1]
- ldr r1, _080909CC
- ldr r0, [r0, 0x4]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080909B8: .4byte gUnknown_203B460
-_080909BC: .4byte gUnknown_20389A8
-_080909C0: .4byte gUnknown_8109764
-_080909C4: .4byte gUnknown_8300500
-_080909C8: .4byte gItemParametersFile
-_080909CC: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090998
-
- thumb_func_start sub_80909D0
-sub_80909D0:
- ldr r0, _080909D4
- bx lr
- .align 2, 0
-_080909D4: .4byte gUnknown_20389A8
- thumb_func_end sub_80909D0
-
- thumb_func_start sub_80909D8
-sub_80909D8:
- push {r4,lr}
- movs r4, 0
- ldr r3, _08090A30
- movs r2, 0
-_080909E0:
- ldr r0, [r3]
- lsls r1, r4, 2
- adds r0, r1
- strb r2, [r0]
- adds r4, 0x1
- cmp r4, 0x13
- ble _080909E0
- movs r4, 0
- ldr r3, _08090A30
- movs r2, 0
-_080909F4:
- ldr r0, [r3]
- lsls r1, r4, 1
- adds r0, 0x50
- adds r0, r1
- strh r2, [r0]
- adds r4, 0x1
- cmp r4, 0xEF
- ble _080909F4
- movs r4, 0
-_08090A06:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091840
- adds r4, 0x1
- cmp r4, 0x7
- ble _08090A06
- ldr r0, _08090A30
- ldr r2, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r2, r1
- movs r1, 0
- str r1, [r0]
- movs r3, 0x99
- lsls r3, 2
- adds r0, r2, r3
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08090A30: .4byte gUnknown_203B460
- thumb_func_end sub_80909D8
-
- thumb_func_start sub_8090A34
-sub_8090A34:
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _08090A5C
- movs r5, 0x1
- ldr r2, [r0]
- movs r3, 0x13
-_08090A40:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08090A4C
- adds r4, 0x1
-_08090A4C:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _08090A40
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08090A5C: .4byte gUnknown_203B460
- thumb_func_end sub_8090A34
-
- thumb_func_start sub_8090A60
-sub_8090A60:
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- cmp r0, 0
- beq _08090A84
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08090A84
- movs r0, 0
- b _08090A86
-_08090A84:
- movs r0, 0x1
-_08090A86:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090A60
-
- thumb_func_start sub_8090A8C
-sub_8090A8C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- cmp r5, 0
- beq _08090AF8
- movs r7, 0x1
- strb r7, [r6]
- strb r5, [r6, 0x2]
- adds r0, r5, 0
- bl sub_8090A60
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08090AD4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8090D80
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8090D80
- adds r1, r0, 0
- adds r0, r4, 0
- bl RandomRange
- strb r0, [r6, 0x1]
- b _08090AE8
-_08090AD4:
- adds r0, r5, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08090AE6
- strb r7, [r6, 0x1]
- b _08090AE8
-_08090AE6:
- strb r4, [r6, 0x1]
-_08090AE8:
- mov r0, r8
- cmp r0, 0
- beq _08090AFE
- ldrb r1, [r6]
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r6]
- b _08090AFE
-_08090AF8:
- strb r5, [r6]
- strb r5, [r6, 0x2]
- strb r5, [r6, 0x1]
-_08090AFE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8090A8C
-
- thumb_func_start sub_8090B08
-sub_8090B08:
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r5, 0
- beq _08090B5A
- strb r5, [r6]
- adds r0, r5, 0
- bl sub_8090A60
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08090B42
- adds r0, r5, 0
- movs r1, 0
- bl sub_8090D80
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8090D80
- adds r1, r0, 0
- adds r0, r4, 0
- bl RandomRange
- strb r0, [r6, 0x1]
- b _08090B5E
-_08090B42:
- adds r0, r5, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08090B56
- movs r0, 0x1
- strb r0, [r6, 0x1]
- b _08090B5E
-_08090B56:
- strb r4, [r6, 0x1]
- b _08090B5E
-_08090B5A:
- strb r5, [r6]
- strb r5, [r6, 0x1]
-_08090B5E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8090B08
-
- thumb_func_start sub_8090B64
-sub_8090B64:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r1, [r5]
- adds r0, r1, 0
- cmp r0, 0
- beq _08090BA4
- movs r0, 0x1
- strb r0, [r4]
- strb r1, [r4, 0x2]
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08090B9A
- ldrb r0, [r4, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08090B9A
- ldrb r0, [r4, 0x2]
- cmp r0, 0x7C
- bne _08090BA0
-_08090B9A:
- ldrb r0, [r5, 0x1]
- strb r0, [r4, 0x1]
- b _08090BAA
-_08090BA0:
- strb r6, [r4, 0x1]
- b _08090BAA
-_08090BA4:
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x1]
- strb r0, [r4]
-_08090BAA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8090B64
-
- thumb_func_start sub_8090BB0
-sub_8090BB0:
- push {lr}
- adds r3, r0, 0
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08090BC8
- ldrb r0, [r1, 0x2]
- strb r0, [r3]
- ldrb r0, [r1, 0x1]
- strb r0, [r3, 0x1]
- b _08090BCA
-_08090BC8:
- strb r2, [r3]
-_08090BCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8090BB0
-
- thumb_func_start sub_8090BD0
-sub_8090BD0:
- lsls r0, 24
- ldr r1, _08090BE0
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0xC]
- bx lr
- .align 2, 0
-_08090BE0: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090BD0
-
- thumb_func_start sub_8090BE4
-sub_8090BE4:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _08090BF6
- adds r0, r4, 0
- bl sub_80915D4
- b _08090C24
-_08090BF6:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090C14
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C10
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _08090C24
- .align 2, 0
-_08090C10: .4byte gItemParametersFile + 4
-_08090C14:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C2C
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x4]
- muls r0, r1
-_08090C24:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090C2C: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090BE4
-
- thumb_func_start sub_8090C30
-sub_8090C30:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _08090C42
- adds r0, r4, 0
- bl sub_80915D4
- b _08090C70
-_08090C42:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090C60
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C5C
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x8]
- b _08090C70
- .align 2, 0
-_08090C5C: .4byte gItemParametersFile + 4
-_08090C60:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C78
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x8]
- muls r0, r1
-_08090C70:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090C78: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090C30
-
- thumb_func_start sub_8090C7C
-sub_8090C7C:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- bne _08090C90
- movs r0, 0
- b _08090CC0
-_08090C90:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090CB0
- ldrb r0, [r4, 0x2]
- ldr r1, _08090CAC
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _08090CC0
- .align 2, 0
-_08090CAC: .4byte gItemParametersFile + 4
-_08090CB0:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090CC8
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x4]
- muls r0, r1
-_08090CC0:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090CC8: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090C7C
-
- thumb_func_start sub_8090CCC
-sub_8090CCC:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- bne _08090CE0
- movs r0, 0
- b _08090D10
-_08090CE0:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090D00
- ldrb r0, [r4, 0x2]
- ldr r1, _08090CFC
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x8]
- b _08090D10
- .align 2, 0
-_08090CFC: .4byte gItemParametersFile + 4
-_08090D00:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090D18
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x8]
- muls r0, r1
-_08090D10:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090D18: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090CCC
-
- thumb_func_start sub_8090D1C
-sub_8090D1C:
- lsls r0, 24
- ldr r1, _08090D2C
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldr r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_08090D2C: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D1C
-
- thumb_func_start sub_8090D30
-sub_8090D30:
- lsls r0, 24
- ldr r1, _08090D40
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldr r0, [r0, 0x8]
- bx lr
- .align 2, 0
-_08090D40: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D30
-
- thumb_func_start sub_8090D44
-sub_8090D44:
- lsls r0, 24
- ldr r1, _08090D54
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0x1A]
- bx lr
- .align 2, 0
-_08090D54: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D44
-
- thumb_func_start sub_8090D58
-sub_8090D58:
- lsls r0, 24
- ldr r1, _08090D68
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0x1D]
- bx lr
- .align 2, 0
-_08090D68: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D58
-
- thumb_func_start sub_8090D6C
-sub_8090D6C:
- lsls r0, 24
- ldr r1, _08090D7C
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0x1E]
- bx lr
- .align 2, 0
-_08090D7C: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D6C
-
- thumb_func_start sub_8090D80
-sub_8090D80:
- lsls r0, 24
- ldr r2, _08090D94
- ldr r2, [r2]
- lsrs r0, 19
- adds r0, r2
- adds r0, 0x1B
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08090D94: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D80
-
- thumb_func_start sub_8090D98
-sub_8090D98:
- lsls r0, 24
- ldr r1, _08090DA8
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldr r0, [r0, 0x10]
- bx lr
- .align 2, 0
-_08090DA8: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D98
-
- thumb_func_start sub_8090DAC
-sub_8090DAC:
- lsls r0, 24
- ldr r2, _08090DC0
- ldr r2, [r2]
- lsrs r0, 19
- adds r0, r2
- adds r0, 0x14
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08090DC0: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090DAC
-
- thumb_func_start sub_8090DC4
-sub_8090DC4:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x54
- adds r6, r0, 0
- adds r4, r1, 0
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08090E10
- ldr r1, [r0]
- lsls r0, r4, 5
- adds r0, r1
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x50
- bl strncpy
- add r5, sp, 0x50
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl sub_8090A8C
- movs r0, 0x1
- strb r0, [r5, 0x1]
- adds r0, r6, 0
- mov r1, sp
- adds r2, r5, 0
- mov r3, r8
- bl sub_8090F58
- add sp, 0x54
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08090E10: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090DC4
-
- thumb_func_start sub_8090E14
-sub_8090E14:
- push {r4-r7,lr}
- sub sp, 0x50
- adds r6, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- movs r4, 0
- cmp r7, 0
- beq _08090E2C
- ldrb r1, [r7, 0x8]
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
-_08090E2C:
- ldrb r0, [r5, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- cmp r0, 0
- bne _08090E3E
- cmp r4, 0
- bne _08090E50
- b _08090E70
-_08090E3E:
- ldrb r0, [r5, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08090E90
- cmp r4, 0
- beq _08090E70
-_08090E50:
- ldr r1, _08090E68
- ldrb r0, [r5, 0x2]
- ldr r2, _08090E6C
- ldr r2, [r2]
- lsls r0, 5
- adds r0, r2
- ldr r2, [r0]
- ldrb r3, [r5, 0x1]
- mov r0, sp
- bl sub_800D158
- b _08090EC4
- .align 2, 0
-_08090E68: .4byte gUnknown_8109770
-_08090E6C: .4byte gItemParametersFile + 4
-_08090E70:
- ldr r1, _08090E88
- ldrb r0, [r5, 0x2]
- ldr r2, _08090E8C
- ldr r2, [r2]
- lsls r0, 5
- adds r0, r2
- ldr r2, [r0]
- mov r0, sp
- bl sub_800D158
- b _08090EC4
- .align 2, 0
-_08090E88: .4byte gUnknown_8109778
-_08090E8C: .4byte gItemParametersFile + 4
-_08090E90:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x69
- bne _08090EB0
- ldr r4, _08090EAC
- adds r0, r5, 0
- bl sub_80915D4
- adds r2, r0, 0
- mov r0, sp
- adds r1, r4, 0
- bl sub_800D158
- b _08090EC4
- .align 2, 0
-_08090EAC: .4byte gUnknown_810977C
-_08090EB0:
- ldrb r0, [r5, 0x2]
- ldr r1, _08090F2C
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x50
- bl strncpy
-_08090EC4:
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08090EE2
- ldr r1, _08090F30
- adds r0, r6, 0
- mov r2, sp
- bl sub_800D158
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x50
- bl strncpy
-_08090EE2:
- cmp r7, 0
- beq _08090F38
- ldrb r0, [r7, 0x4]
- cmp r0, 0
- beq _08090F0A
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08090F0A
- ldr r1, _08090F34
- adds r0, r6, 0
- mov r2, sp
- bl sub_800D158
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x50
- bl strncpy
-_08090F0A:
- ldr r0, [r7]
- cmp r0, 0x1
- beq _08090F14
- cmp r0, 0x3
- bne _08090F44
-_08090F14:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08090F38
- adds r0, r6, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8090F58
- b _08090F50
- .align 2, 0
-_08090F2C: .4byte gItemParametersFile + 4
-_08090F30: .4byte gUnknown_8109784
-_08090F34: .4byte gUnknown_810978C
-_08090F38:
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x50
- bl strncpy
- b _08090F50
-_08090F44:
- adds r0, r6, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8090F58
-_08090F50:
- add sp, 0x50
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8090E14
-
- thumb_func_start sub_8090F58
-sub_8090F58:
- push {r4-r6,lr}
- sub sp, 0x2C
- adds r5, r0, 0
- adds r6, r1, 0
- adds r0, r2, 0
- adds r4, r3, 0
- cmp r4, 0
- bne _08090F6C
- adds r0, r5, 0
- b _08090F94
-_08090F6C:
- ldr r1, [r4]
- cmp r1, 0x1
- bcc _08090F8A
- cmp r1, 0x2
- bhi _08090F7E
- bl sub_8090BE4
- adds r1, r0, 0
- b _08090F8C
-_08090F7E:
- cmp r1, 0x4
- bhi _08090F8A
- bl sub_8090C30
- adds r1, r0, 0
- b _08090F8C
-_08090F8A:
- movs r1, 0
-_08090F8C:
- cmp r1, 0
- bne _08090F9C
- adds r0, r5, 0
- adds r1, r6, 0
-_08090F94:
- movs r2, 0x50
- bl strncpy
- b _08090FDE
-_08090F9C:
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08090FC8
- adds r0, r1, 0
- add r1, sp, 0x4
- movs r2, 0x1
- bl sub_8090FEC
- ldr r1, _08090FC4
- movs r0, 0x6
- ldrsh r3, [r4, r0]
- add r2, sp, 0x4
- str r2, [sp]
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_800D158
- b _08090FDE
- .align 2, 0
-_08090FC4: .4byte gUnknown_8109794
-_08090FC8:
- adds r0, r1, 0
- add r1, sp, 0x4
- movs r2, 0
- bl sub_8090FEC
- ldr r1, _08090FE8
- adds r0, r5, 0
- adds r2, r6, 0
- add r3, sp, 0x4
- bl sub_800D158
-_08090FDE:
- add sp, 0x2C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08090FE8: .4byte gUnknown_81097A4
- thumb_func_end sub_8090F58
-
- thumb_func_start sub_8090FEC
-sub_8090FEC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r0, 0
- mov r8, r0
- movs r6, 0
- movs r2, 0
- ldr r1, _08091050
- mov r9, r1
- mov r12, r9
-_0809100E:
- movs r1, 0
- lsls r3, r2, 2
- ldr r7, _08091054
- adds r0, r3, r7
- ldr r0, [r0]
- adds r7, r2, 0x1
- cmp r5, r0
- blt _0809102C
- ldr r2, _08091054
-_08091020:
- adds r0, r3, r2
- ldr r0, [r0]
- subs r5, r0
- adds r1, 0x1
- cmp r5, r0
- bge _08091020
-_0809102C:
- cmp r1, 0x9
- ble _08091032
- movs r1, 0x9
-_08091032:
- cmp r1, 0
- beq _0809105C
- movs r0, 0x1
- mov r8, r0
- lsls r1, 1
- mov r2, r12
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r4]
- adds r4, 0x1
- ldr r0, _08091058
- adds r1, r0
- ldrb r0, [r1]
- b _0809106C
- .align 2, 0
-_08091050: .4byte gUnknown_81097C4
-_08091054: .4byte gUnknown_81097B0
-_08091058: .4byte gUnknown_81097C5
-_0809105C:
- mov r1, r8
- cmp r1, 0
- beq _08091074
- mov r2, r12
- ldrb r0, [r2]
- strb r0, [r4]
- adds r4, 0x1
- ldrb r0, [r2, 0x1]
-_0809106C:
- strb r0, [r4]
- adds r4, 0x1
- adds r6, 0x1
- b _08091080
-_08091074:
- mov r0, r10
- cmp r0, 0
- beq _08091080
- movs r0, 0x60
- strb r0, [r4]
- adds r4, 0x1
-_08091080:
- adds r2, r7, 0
- cmp r2, 0x4
- ble _0809100E
- lsls r1, r5, 1
- mov r2, r9
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r4]
- adds r4, 0x1
- mov r0, r9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r4]
- adds r6, 0x1
- movs r0, 0
- strb r0, [r4, 0x1]
- adds r0, r6, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8090FEC
-
- thumb_func_start sub_80910B4
-sub_80910B4:
- push {r4-r7,lr}
- movs r2, 0
- movs r4, 0
- ldr r7, _080910C0
- movs r3, 0
- b _080910DA
- .align 2, 0
-_080910C0: .4byte gUnknown_203B460
-_080910C4:
- cmp r2, r4
- ble _080910D4
- ldr r0, [r7]
- lsls r1, r4, 2
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_080910D4:
- adds r3, 0x4
- adds r2, 0x1
- adds r4, 0x1
-_080910DA:
- cmp r2, 0x13
- bgt _08091106
- ldr r0, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08091106
- ldr r5, _0809112C
- movs r6, 0x1
-_080910F0:
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x13
- bgt _08091106
- ldr r0, [r5]
- adds r0, r3, r0
- ldrb r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080910F0
-_08091106:
- cmp r2, 0x14
- bne _080910C4
- cmp r4, 0x13
- bgt _08091124
- ldr r3, _0809112C
- movs r2, 0
-_08091112:
- lsls r1, r4, 2
- ldr r0, [r3]
- adds r1, r0
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x1]
- strb r2, [r1]
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091112
-_08091124:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809112C: .4byte gUnknown_203B460
- thumb_func_end sub_80910B4
-
- thumb_func_start sub_8091130
-sub_8091130:
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _08091154
- ldr r2, [r0]
- movs r5, 0x1
-_0809113E:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08091158
- ldrb r0, [r2, 0x2]
- cmp r0, r4
- bne _08091158
- adds r0, r3, 0
- b _08091164
- .align 2, 0
-_08091154: .4byte gUnknown_203B460
-_08091158:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x13
- ble _0809113E
- movs r0, 0x1
- negs r0, r0
-_08091164:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091130
-
- thumb_func_start sub_809116C
-sub_809116C:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080911A0
- ldr r2, [r0]
- movs r6, 0x1
- movs r3, 0x13
-_0809117C:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0809118E
- ldrb r0, [r2, 0x2]
- cmp r0, r5
- bne _0809118E
- adds r4, 0x1
-_0809118E:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _0809117C
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080911A0: .4byte gUnknown_203B460
- thumb_func_end sub_809116C
-
- thumb_func_start sub_80911A4
-sub_80911A4:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_809116C
- adds r4, r0, 0
- movs r3, 0
- ldr r0, _080911F4
- ldr r7, [r0]
- movs r6, 0x1
-_080911BA:
- movs r0, 0x58
- muls r0, r3
- adds r2, r7, r0
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080911E2
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _080911E2
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- beq _080911E2
- cmp r0, r5
- bne _080911E2
- adds r4, 0x1
-_080911E2:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _080911BA
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080911F4: .4byte gUnknown_203B45C
- thumb_func_end sub_80911A4
-
- thumb_func_start sub_80911F8
-sub_80911F8:
- push {r4,r5,lr}
- adds r2, r0, 0
- ldr r4, _08091230
- cmp r2, 0x12
- bgt _0809121C
- adds r5, r4, 0
- lsls r0, r2, 2
- adds r3, r0, 0x4
-_08091208:
- ldr r0, [r5]
- lsls r1, r2, 2
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x12
- ble _08091208
-_0809121C:
- ldr r0, [r4]
- adds r0, 0x4E
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x4C
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08091230: .4byte gUnknown_203B460
- thumb_func_end sub_80911F8
-
- thumb_func_start sub_8091234
-sub_8091234:
- ldr r3, _08091248
- ldr r1, [r3]
- lsls r0, 2
- adds r1, r0
- movs r2, 0
- strb r2, [r1, 0x2]
- ldr r1, [r3]
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08091248: .4byte gUnknown_203B460
- thumb_func_end sub_8091234
-
- thumb_func_start sub_809124C
-sub_809124C:
- push {lr}
- sub sp, 0x4
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 24
- lsrs r2, 24
- mov r0, sp
- adds r1, r3, 0
- bl sub_8090A8C
- mov r0, sp
- bl sub_8091290
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_809124C
-
- thumb_func_start sub_8091274
-sub_8091274:
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- mov r0, sp
- bl sub_8090B64
- mov r0, sp
- bl sub_8091290
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8091274
-
- thumb_func_start sub_8091290
-sub_8091290:
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _080912B4
- movs r6, 0x1
-_0809129A:
- lsls r1, r3, 2
- ldr r0, [r5]
- adds r2, r1, r0
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080912B8
- ldr r0, [r4]
- str r0, [r2]
- movs r0, 0
- b _080912C0
- .align 2, 0
-_080912B4: .4byte gUnknown_203B460
-_080912B8:
- adds r3, 0x1
- cmp r3, 0x13
- ble _0809129A
- movs r0, 0x1
-_080912C0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8091290
-
- thumb_func_start sub_80912C8
-sub_80912C8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- movs r6, 0
-_080912D6:
- ldr r0, _0809139C
- lsls r1, r5, 2
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080912FE
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _080912FE
- adds r0, r4, 0
- bl sub_80915D4
- bl sub_80913A0
- strb r6, [r4, 0x2]
- strb r6, [r4, 0x1]
- strb r6, [r4]
-_080912FE:
- adds r5, 0x1
- cmp r5, 0x13
- ble _080912D6
- bl sub_80910B4
- movs r5, 0
-_0809130A:
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- lsls r2, r5, 2
- ldr r1, _0809139C
- mov r8, r1
- ldr r0, [r1]
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- mov r10, r2
- adds r7, r5, 0x1
- cmp r0, 0
- beq _08091382
- ldrb r0, [r3, 0x2]
- bl sub_8090D44
- adds r6, r0, 0
- adds r4, r7, 0
- cmp r7, 0x13
- bgt _08091368
-_08091336:
- lsls r5, r4, 2
- mov r1, r8
- ldr r0, [r1]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08091362
- ldrb r0, [r2, 0x2]
- bl sub_8090D44
- cmp r6, r0
- ble _08091362
- mov r9, r4
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5
- ldrb r0, [r0, 0x2]
- bl sub_8090D44
- adds r6, r0, 0
-_08091362:
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091336
-_08091368:
- mov r4, r9
- cmp r4, 0
- blt _08091382
- ldr r0, _0809139C
- ldr r1, [r0]
- mov r0, r10
- adds r2, r1, r0
- ldr r3, [r2]
- lsls r0, r4, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- str r3, [r1]
-_08091382:
- adds r5, r7, 0
- cmp r5, 0x13
- ble _0809130A
- bl sub_80910B4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809139C: .4byte gUnknown_203B460
- thumb_func_end sub_80912C8
-
- thumb_func_start sub_80913A0
-sub_80913A0:
- push {lr}
- ldr r1, _080913C4
- ldr r1, [r1]
- movs r3, 0x98
- lsls r3, 2
- adds r2, r1, r3
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
- ldr r0, _080913C8
- cmp r1, r0
- bgt _080913BE
- cmp r1, 0
- bge _080913C0
- movs r0, 0
-_080913BE:
- str r0, [r2]
-_080913C0:
- pop {r0}
- bx r0
- .align 2, 0
-_080913C4: .4byte gUnknown_203B460
-_080913C8: .4byte 0x0001869f
- thumb_func_end sub_80913A0
-
- thumb_func_start sub_80913CC
-sub_80913CC:
- lsls r0, 24
- ldr r1, _080913DC
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrh r0, [r0, 0x18]
- bx lr
- .align 2, 0
-_080913DC: .4byte gItemParametersFile + 4
- thumb_func_end sub_80913CC
-
- thumb_func_start sub_80913E0
-sub_80913E0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x5C
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r2
- ldrb r0, [r6, 0x2]
- bl sub_8090D98
- ldrb r1, [r6, 0x2]
- add r0, sp, 0x4
- movs r2, 0
- bl sub_8090DC4
- ldrb r0, [r6, 0x2]
- cmp r0, 0x7C
- bne _08091414
- ldr r0, _080914D4
- ldrb r1, [r6, 0x1]
- adds r1, 0x7D
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- bl sub_8090DC4
-_08091414:
- adds r0, r5, 0
- bl sub_80073B8
- movs r7, 0
- str r7, [sp]
- movs r0, 0x10
- movs r1, 0
- add r2, sp, 0x4
- adds r3, r5, 0
- bl sub_8014FF0
- ldrb r0, [r6, 0x2]
- bl sub_8090D98
- adds r2, r0, 0
- str r7, [sp]
- movs r0, 0x8
- movs r1, 0x18
- adds r3, r5, 0
- bl sub_8014FF0
- ldrb r0, [r6, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080914B6
- add r4, sp, 0x54
- ldrb r0, [r6, 0x2]
- bl sub_80913CC
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8092A88
- movs r0, 0x7
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x52
- movs r3, 0xC8
- bl sub_80078A4
- ldr r0, _080914D8
- ldr r2, [r0]
- str r7, [sp]
- movs r0, 0x4
- movs r1, 0x54
- adds r3, r5, 0
- bl sub_8014FF0
- adds r0, r4, 0
- bl sub_8092B00
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092334
- adds r2, r0, 0
- str r7, [sp]
- movs r0, 0x40
- movs r1, 0x54
- adds r3, r5, 0
- bl sub_8014FF0
- adds r0, r4, 0
- bl sub_8092BF4
- ldr r1, _080914DC
- str r0, [r1]
- ldr r0, _080914E0
- ldr r2, [r0]
- str r7, [sp]
- movs r0, 0x80
- movs r1, 0x54
- adds r3, r5, 0
- bl sub_8014FF0
-_080914B6:
- adds r0, r5, 0
- bl sub_80073E0
- ldrb r0, [r6, 0x2]
- bl sub_8090D98
- mov r1, r8
- bl sub_8097DF0
- add sp, 0x5C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080914D4: .4byte gUnknown_202DE58
-_080914D8: .4byte gUnknown_810CF0C
-_080914DC: .4byte gUnknown_202DE30
-_080914E0: .4byte gUnknown_8115970
- thumb_func_end sub_80913E0
-
- thumb_func_start sub_80914E4
-sub_80914E4:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0
- beq _0809151A
- cmp r0, 0x69
- beq _0809151A
- cmp r0, 0x79
- beq _0809151A
- cmp r0, 0x77
- beq _0809151A
- cmp r0, 0x78
- beq _0809151A
- cmp r0, 0x7A
- beq _0809151A
- bl sub_8090D30
- cmp r0, 0
- beq _0809151A
- adds r0, r4, 0
- bl sub_8090D1C
- cmp r0, 0
- beq _0809151A
- movs r0, 0x1
- b _0809151C
-_0809151A:
- movs r0, 0
-_0809151C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80914E4
-
- thumb_func_start sub_8091524
-sub_8091524:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _0809153C
- cmp r0, 0x69
- beq _0809153C
- cmp r1, 0x7C
- beq _0809153C
- movs r0, 0x1
- b _0809153E
-_0809153C:
- movs r0, 0
-_0809153E:
- pop {r1}
- bx r1
- thumb_func_end sub_8091524
-
- thumb_func_start sub_8091544
-sub_8091544:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _08091568
- cmp r0, 0x69
- beq _08091568
- cmp r0, 0x79
- beq _08091568
- cmp r0, 0x77
- beq _08091568
- cmp r0, 0x78
- beq _08091568
- cmp r1, 0x7A
- beq _08091568
- movs r0, 0x1
- b _0809156A
-_08091568:
- movs r0, 0
-_0809156A:
- pop {r1}
- bx r1
- thumb_func_end sub_8091544
-
- thumb_func_start sub_8091570
-sub_8091570:
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08091596
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08091596
- movs r0, 0
- b _08091598
-_08091596:
- movs r0, 0x1
-_08091598:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8091570
-
- thumb_func_start sub_80915A0
-sub_80915A0:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0xE0
- beq _080915CC
- cmp r0, 0xE1
- beq _080915CC
- cmp r0, 0xE2
- beq _080915CC
- cmp r0, 0xE3
- beq _080915CC
- cmp r0, 0xE4
- beq _080915CC
- cmp r0, 0xE5
- beq _080915CC
- cmp r0, 0xE6
- beq _080915CC
- cmp r1, 0xE7
- beq _080915CC
- movs r0, 0
- b _080915CE
-_080915CC:
- movs r0, 0x1
-_080915CE:
- pop {r1}
- bx r1
- thumb_func_end sub_80915A0
-
- thumb_func_start sub_80915D4
-sub_80915D4:
- ldr r1, _080915E0
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080915E0: .4byte gUnknown_810A3F0
- thumb_func_end sub_80915D4
-
- thumb_func_start sub_80915E4
-sub_80915E4:
- ldr r1, _080915F0
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080915F0: .4byte gUnknown_810A3F0
- thumb_func_end sub_80915E4
-
- thumb_func_start sub_80915F4
-sub_80915F4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r7, r3, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r0, _080916B8
- strh r0, [r7]
- movs r0, 0
- strh r0, [r7, 0x2]
- adds r0, r5, 0
- bl sub_8091764
- lsls r0, 24
- cmp r0, 0
- bne _0809161E
- b _08091756
-_0809161E:
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- movs r1, 0
- bl sub_808DC68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r2, 0x8
- ldrsh r0, [r6, r2]
- movs r1, 0x1
- bl sub_808DC68
- lsls r0, 24
- lsrs r0, 24
- adds r2, r5, 0
- subs r2, 0x55
- ldr r5, _080916BC
- lsls r2, 1
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- adds r1, r2, r1
- adds r1, r5
- movs r4, 0
- ldrsh r3, [r1, r4]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- adds r2, r5
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r2, 0x14
- ldrsh r1, [r6, r2]
- adds r3, r0
- ldrh r4, [r6, 0x14]
- adds r3, r4
- strh r3, [r6, 0x14]
- movs r2, 0x14
- ldrsh r0, [r6, r2]
- subs r1, r0, r1
- lsls r3, 16
- cmp r3, 0
- bgt _0809167C
- movs r0, 0x1
- strh r0, [r6, 0x14]
-_0809167C:
- movs r4, 0x14
- ldrsh r0, [r6, r4]
- ldr r2, _080916C0
- cmp r0, r2
- ble _08091688
- strh r2, [r6, 0x14]
-_08091688:
- movs r0, 0
- cmp r1, 0x8
- bgt _0809169C
- movs r0, 0x1
- cmp r1, 0x4
- bgt _0809169C
- movs r0, 0x3
- cmp r1, 0x2
- ble _0809169C
- movs r0, 0x2
-_0809169C:
- strh r0, [r7]
- mov r1, r8
- cmp r1, 0
- bne _08091756
- cmp r0, 0
- bne _080916C4
- movs r0, 0x10
- bl RandomCapped
- cmp r0, 0xA
- bne _080916C4
- movs r0, 0xF
- b _080916D2
- .align 2, 0
-_080916B8: .4byte 0x0000ffff
-_080916BC: .4byte gUnknown_810A580
-_080916C0: .4byte 0x000003e7
-_080916C4:
- movs r0, 0x4
- bl RandomCapped
- ldr r1, _080916EC
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
-_080916D2:
- strh r0, [r7, 0x2]
- ldrh r1, [r7, 0x2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080916F6
- ldrb r0, [r6, 0x18]
- cmp r0, 0xFE
- bhi _080916F0
- adds r0, 0x1
- strb r0, [r6, 0x18]
- b _080916F6
- .align 2, 0
-_080916EC: .4byte gUnknown_81097E0
-_080916F0:
- ldr r0, _0809170C
- ands r0, r1
- strh r0, [r7, 0x2]
-_080916F6:
- ldrh r1, [r7, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08091716
- ldrb r0, [r6, 0x19]
- cmp r0, 0xFE
- bhi _08091710
- adds r0, 0x1
- strb r0, [r6, 0x19]
- b _08091716
- .align 2, 0
-_0809170C: .4byte 0x0000fffe
-_08091710:
- ldr r0, _0809172C
- ands r0, r1
- strh r0, [r7, 0x2]
-_08091716:
- ldrh r1, [r7, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08091736
- ldrb r0, [r6, 0x1A]
- cmp r0, 0xFE
- bhi _08091730
- adds r0, 0x1
- strb r0, [r6, 0x1A]
- b _08091736
- .align 2, 0
-_0809172C: .4byte 0x0000fffd
-_08091730:
- ldr r0, _0809174C
- ands r0, r1
- strh r0, [r7, 0x2]
-_08091736:
- ldrh r1, [r7, 0x2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08091756
- ldrb r0, [r6, 0x1B]
- cmp r0, 0xFE
- bhi _08091750
- adds r0, 0x1
- strb r0, [r6, 0x1B]
- b _08091756
- .align 2, 0
-_0809174C: .4byte 0x0000fffb
-_08091750:
- ldr r0, _08091760
- ands r0, r1
- strh r0, [r7, 0x2]
-_08091756:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091760: .4byte 0x0000fff7
- thumb_func_end sub_80915F4
-
- thumb_func_start sub_8091764
-sub_8091764:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x55
- bls _08091776
- cmp r0, 0x66
- bhi _08091776
- movs r0, 0x1
- b _08091778
-_08091776:
- movs r0, 0
-_08091778:
- pop {r1}
- bx r1
- thumb_func_end sub_8091764
-
- thumb_func_start sub_809177C
-sub_809177C:
- push {r4,lr}
- movs r4, 0
-_08091780:
- lsls r1, r4, 2
- ldr r0, _080917A4
- ldr r0, [r0]
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080917A8
- ldrb r0, [r2, 0x2]
- bl sub_8091764
- lsls r0, 24
- cmp r0, 0
- beq _080917A8
- movs r0, 0x1
- b _080917B0
- .align 2, 0
-_080917A4: .4byte gUnknown_203B460
-_080917A8:
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091780
- movs r0, 0
-_080917B0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809177C
-
- thumb_func_start sub_80917B8
-sub_80917B8:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- beq _080917E0
- ldr r2, _080917DC
- ldr r1, [r2]
- ldrb r0, [r4, 0x2]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- ldrb r3, [r4, 0x1]
- adds r0, r3
- b _080917F0
- .align 2, 0
-_080917DC: .4byte gUnknown_203B460
-_080917E0:
- ldr r2, _0809180C
- ldr r1, [r2]
- ldrb r0, [r4, 0x2]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
-_080917F0:
- strh r0, [r1]
- ldr r0, [r2]
- ldrb r1, [r4, 0x2]
- lsls r1, 1
- adds r0, 0x50
- adds r2, r0, r1
- ldrh r0, [r2]
- ldr r1, _08091810
- cmp r0, r1
- bls _08091806
- strh r1, [r2]
-_08091806:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809180C: .4byte gUnknown_203B460
-_08091810: .4byte 0x000003e7
- thumb_func_end sub_80917B8
-
- thumb_func_start sub_8091814
-sub_8091814:
- push {lr}
- movs r3, 0
- ldr r0, _0809183C
- ldr r0, [r0]
- movs r2, 0x8C
- lsls r2, 2
- adds r1, r0, r2
- movs r2, 0x7
-_08091824:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809182C
- adds r3, 0x1
-_0809182C:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _08091824
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809183C: .4byte gUnknown_203B460
- thumb_func_end sub_8091814
-
- thumb_func_start sub_8091840
-sub_8091840:
- lsls r0, 24
- ldr r1, _08091858
- lsrs r0, 22
- movs r2, 0x8C
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08091858: .4byte gUnknown_203B460
- thumb_func_end sub_8091840
-
- thumb_func_start sub_809185C
-sub_809185C:
- lsls r0, 24
- ldr r1, _08091870
- lsrs r0, 22
- movs r2, 0x8C
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_08091870: .4byte gUnknown_203B460
- thumb_func_end sub_809185C
-
- thumb_func_start sub_8091874
-sub_8091874:
- push {r4-r7,lr}
- movs r2, 0
- movs r4, 0
- ldr r7, _08091884
- movs r6, 0x8C
- lsls r6, 2
- movs r3, 0
- b _080918A0
- .align 2, 0
-_08091884: .4byte gUnknown_203B460
-_08091888:
- cmp r2, r4
- ble _0809189A
- ldr r0, [r7]
- lsls r1, r4, 2
- adds r0, r6
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_0809189A:
- adds r3, 0x4
- adds r2, 0x1
- adds r4, 0x1
-_080918A0:
- cmp r2, 0x7
- bgt _080918CA
- ldr r0, [r7]
- adds r0, r3
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080918CA
- ldr r5, _080918E8
- movs r1, 0x8C
- lsls r1, 2
-_080918B6:
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x7
- bgt _080918CA
- ldr r0, [r5]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080918B6
-_080918CA:
- cmp r2, 0x8
- bne _08091888
- cmp r4, 0x7
- bgt _080918E0
-_080918D2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091840
- adds r4, 0x1
- cmp r4, 0x7
- ble _080918D2
-_080918E0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080918E8: .4byte gUnknown_203B460
- thumb_func_end sub_8091874
-
- thumb_func_start sub_80918EC
-sub_80918EC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
-_080918F8:
- adds r1, r0, 0x1
- mov r8, r1
- mov r6, r8
- cmp r1, 0x7
- bgt _08091964
- ldr r1, _08091978
- mov r9, r1
- lsls r7, r0, 2
- movs r0, 0x8C
- lsls r0, 2
- mov r10, r0
-_0809190E:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- adds r4, r0, 0
- mov r1, r9
- ldr r0, [r1]
- lsls r5, r6, 2
- adds r0, r5
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- cmp r4, r0
- bgt _0809194C
- cmp r4, r0
- bne _0809195E
- mov r1, r9
- ldr r0, [r1]
- adds r2, r0, r7
- ldr r1, _0809197C
- adds r2, r1
- adds r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0809195E
-_0809194C:
- mov r1, r9
- ldr r0, [r1]
- add r0, r10
- adds r2, r0, r7
- ldr r3, [r2]
- adds r0, r5
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
-_0809195E:
- adds r6, 0x1
- cmp r6, 0x7
- ble _0809190E
-_08091964:
- mov r0, r8
- cmp r0, 0x6
- ble _080918F8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091978: .4byte gUnknown_203B460
-_0809197C: .4byte 0x00000231
- thumb_func_end sub_80918EC
-
- thumb_func_start sub_8091980
-sub_8091980:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r1, sp
- ldr r0, _080919F4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- movs r5, 0
-_0809199C:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8091840
- adds r5, 0x1
- cmp r5, 0x7
- ble _0809199C
- mov r0, r8
- lsls r7, r0, 2
- ldr r6, _080919F8
- movs r5, 0x7
-_080919B2:
- adds r0, r6, 0
- bl RandomCapped
- adds r4, r0, 0
- adds r0, r6, 0
- bl RandomCapped
- adds r2, r0, 0
- mov r1, sp
- adds r0, r1, r7
- ldr r0, [r0]
- adds r1, r4, 0
- bl sub_8091E94
- lsls r0, 24
- lsrs r0, 24
- bl sub_80919FC
- subs r5, 0x1
- cmp r5, 0
- bge _080919B2
- bl sub_80918EC
- mov r0, r8
- bl sub_8091BB4
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080919F4: .4byte gUnknown_81097E8
-_080919F8: .4byte 0x0000270f
- thumb_func_end sub_8091980
-
- thumb_func_start sub_80919FC
-sub_80919FC:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl sub_8090B08
- movs r3, 0
- ldr r5, _08091A34
- movs r4, 0x8C
- lsls r4, 2
-_08091A14:
- ldr r1, [r5]
- lsls r2, r3, 2
- adds r0, r1, r2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08091A38
- movs r3, 0x8C
- lsls r3, 2
- adds r0, r1, r3
- adds r0, r2
- ldr r1, [sp]
- str r1, [r0]
- movs r0, 0
- b _08091A40
- .align 2, 0
-_08091A34: .4byte gUnknown_203B460
-_08091A38:
- adds r3, 0x1
- cmp r3, 0x7
- ble _08091A14
- movs r0, 0x1
-_08091A40:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80919FC
-
- thumb_func_start sub_8091A48
-sub_8091A48:
- push {lr}
- movs r3, 0
- ldr r0, _08091A70
- ldr r0, [r0]
- movs r2, 0x94
- lsls r2, 2
- adds r1, r0, r2
- movs r2, 0x3
-_08091A58:
- ldrb r0, [r1]
- cmp r0, 0
- beq _08091A60
- adds r3, 0x1
-_08091A60:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _08091A58
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08091A70: .4byte gUnknown_203B460
- thumb_func_end sub_8091A48
-
- thumb_func_start sub_8091A74
-sub_8091A74:
- lsls r0, 24
- ldr r1, _08091A8C
- lsrs r0, 22
- movs r2, 0x94
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08091A8C: .4byte gUnknown_203B460
- thumb_func_end sub_8091A74
-
- thumb_func_start sub_8091A90
-sub_8091A90:
- lsls r0, 24
- ldr r1, _08091AA4
- lsrs r0, 22
- movs r2, 0x94
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_08091AA4: .4byte gUnknown_203B460
- thumb_func_end sub_8091A90
-
- thumb_func_start sub_8091AA8
-sub_8091AA8:
- push {r4-r7,lr}
- movs r2, 0
- movs r4, 0
- ldr r7, _08091AB8
- movs r6, 0x94
- lsls r6, 2
- movs r3, 0
- b _08091AD4
- .align 2, 0
-_08091AB8: .4byte gUnknown_203B460
-_08091ABC:
- cmp r2, r4
- ble _08091ACE
- ldr r0, [r7]
- lsls r1, r4, 2
- adds r0, r6
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_08091ACE:
- adds r3, 0x4
- adds r2, 0x1
- adds r4, 0x1
-_08091AD4:
- cmp r2, 0x3
- bgt _08091AFE
- ldr r0, [r7]
- adds r0, r3
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _08091AFE
- ldr r5, _08091B1C
- movs r1, 0x94
- lsls r1, 2
-_08091AEA:
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08091AFE
- ldr r0, [r5]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08091AEA
-_08091AFE:
- cmp r2, 0x4
- bne _08091ABC
- cmp r4, 0x3
- bgt _08091B14
-_08091B06:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091A74
- adds r4, 0x1
- cmp r4, 0x3
- ble _08091B06
-_08091B14:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091B1C: .4byte gUnknown_203B460
- thumb_func_end sub_8091AA8
-
- thumb_func_start sub_8091B20
-sub_8091B20:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
-_08091B2C:
- adds r1, r0, 0x1
- mov r8, r1
- mov r6, r8
- cmp r1, 0x3
- bgt _08091B98
- ldr r1, _08091BAC
- mov r9, r1
- lsls r7, r0, 2
- movs r0, 0x94
- lsls r0, 2
- mov r10, r0
-_08091B42:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- adds r4, r0, 0
- mov r1, r9
- ldr r0, [r1]
- lsls r5, r6, 2
- adds r0, r5
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- cmp r4, r0
- bgt _08091B80
- cmp r4, r0
- bne _08091B92
- mov r1, r9
- ldr r0, [r1]
- adds r2, r0, r7
- ldr r1, _08091BB0
- adds r2, r1
- adds r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08091B92
-_08091B80:
- mov r1, r9
- ldr r0, [r1]
- add r0, r10
- adds r2, r0, r7
- ldr r3, [r2]
- adds r0, r5
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
-_08091B92:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08091B42
-_08091B98:
- mov r0, r8
- cmp r0, 0x2
- ble _08091B2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091BAC: .4byte gUnknown_203B460
-_08091BB0: .4byte 0x00000251
- thumb_func_end sub_8091B20
-
- thumb_func_start sub_8091BB4
-sub_8091BB4:
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, sp
- ldr r0, _08091C14
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r5, 0
-_08091BCA:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8091A74
- adds r5, 0x1
- cmp r5, 0x3
- ble _08091BCA
- lsls r7, r4, 2
- ldr r6, _08091C18
- movs r5, 0x3
-_08091BDE:
- adds r0, r6, 0
- bl RandomCapped
- adds r4, r0, 0
- adds r0, r6, 0
- bl RandomCapped
- adds r2, r0, 0
- mov r1, sp
- adds r0, r1, r7
- ldr r0, [r0]
- adds r1, r4, 0
- bl sub_8091E94
- lsls r0, 24
- lsrs r0, 24
- bl sub_8091C1C
- subs r5, 0x1
- cmp r5, 0
- bge _08091BDE
- bl sub_8091B20
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091C14: .4byte gUnknown_81097F8
-_08091C18: .4byte 0x0000270f
- thumb_func_end sub_8091BB4
-
- thumb_func_start sub_8091C1C
-sub_8091C1C:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl sub_8090B08
- movs r3, 0
- ldr r5, _08091C54
- movs r4, 0x94
- lsls r4, 2
-_08091C34:
- ldr r1, [r5]
- lsls r2, r3, 2
- adds r0, r1, r2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08091C58
- movs r3, 0x94
- lsls r3, 2
- adds r0, r1, r3
- adds r0, r2
- ldr r1, [sp]
- str r1, [r0]
- movs r0, 0
- b _08091C60
- .align 2, 0
-_08091C54: .4byte gUnknown_203B460
-_08091C58:
- adds r3, 0x1
- cmp r3, 0x3
- ble _08091C34
- movs r0, 0x1
-_08091C60:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091C1C
-
- thumb_func_start sub_8091C68
-sub_8091C68:
- push {r4-r6,lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- movs r4, 0
- ldr r5, _08091D10
-_08091C7C:
- lsls r0, r4, 2
- ldr r1, [r5]
- adds r1, r0
- mov r0, sp
- bl sub_8091E28
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091C7C
- ldr r6, _08091D10
- movs r5, 0x50
- movs r4, 0xEF
-_08091C94:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- movs r2, 0xA
- bl sub_809488C
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08091C94
- ldr r6, _08091D10
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0x7
-_08091CB0:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DE0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091CB0
- ldr r6, _08091D10
- movs r5, 0x94
- lsls r5, 2
- movs r4, 0x3
-_08091CCA:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DE0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091CCA
- ldr r4, _08091D10
- ldr r1, [r4]
- movs r0, 0x98
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- ldr r1, [r4]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08091D10: .4byte gUnknown_203B460
- thumb_func_end sub_8091C68
-
- thumb_func_start sub_8091D14
-sub_8091D14:
- push {r4-r6,lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- movs r4, 0
- ldr r5, _08091DBC
-_08091D28:
- lsls r0, r4, 2
- ldr r1, [r5]
- adds r1, r0
- mov r0, sp
- bl sub_8091E00
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091D28
- ldr r6, _08091DBC
- movs r5, 0x50
- movs r4, 0xEF
-_08091D40:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- movs r2, 0xA
- bl sub_8094924
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08091D40
- ldr r6, _08091DBC
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0x7
-_08091D5C:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DC0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091D5C
- ldr r6, _08091DBC
- movs r5, 0x94
- lsls r5, 2
- movs r4, 0x3
-_08091D76:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DC0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091D76
- ldr r4, _08091DBC
- ldr r1, [r4]
- movs r0, 0x98
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- ldr r1, [r4]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08091DBC: .4byte gUnknown_203B460
- thumb_func_end sub_8091D14
-
- thumb_func_start sub_8091DC0
-sub_8091DC0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x8
- bl sub_8094924
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091DC0
-
- thumb_func_start sub_8091DE0
-sub_8091DE0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x8
- bl sub_809488C
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091DE0
-
- thumb_func_start sub_8091E00
-sub_8091E00:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x7
- bl sub_8094924
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x8
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091E00
-
- thumb_func_start sub_8091E28
-sub_8091E28:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x7
- bl sub_809488C
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x8
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091E28
-
- thumb_func_start sub_8091E50
-sub_8091E50:
- lsls r0, 24
- ldr r1, _08091E5C
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08091E5C: .4byte gUnknown_810AF50
- thumb_func_end sub_8091E50
-
- thumb_func_start sub_8091E60
-sub_8091E60:
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r1, 24
- lsrs r4, r0, 24
- cmp r3, 0x3E
- bhi _08091E8C
- ldr r2, _08091E88
- lsrs r0, 27
- lsls r1, r3, 5
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x7
- ands r1, r4
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- b _08091E8E
- .align 2, 0
-_08091E88: .4byte gUnknown_8108F64
-_08091E8C:
- movs r0, 0
-_08091E8E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8091E60
-
- thumb_func_start sub_8091E94
-sub_8091E94:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08091EE4
- add sp, r4
- mov r8, r1
- mov r10, r2
- ldr r1, _08091EE8
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- movs r3, 0
- add r1, sp, 0x18
- mov r9, r1
- ldr r2, _08091EEC
- mov r12, r2
- add r6, sp, 0x1F8
- ldr r2, [r0]
- adds r7, r6, 0
- movs r4, 0
-_08091EC0:
- ldrh r1, [r2]
- cmp r1, r12
- bls _08091EF4
- ldrh r0, [r2]
- ldr r1, _08091EF0
- adds r0, r1
- cmp r0, 0
- beq _08091EFC
- movs r5, 0
- adds r1, r7, r4
-_08091ED4:
- strh r5, [r1]
- adds r1, 0x2
- adds r4, 0x2
- adds r3, 0x1
- subs r0, 0x1
- cmp r0, 0
- bne _08091ED4
- b _08091EFC
- .align 2, 0
-_08091EE4: .4byte 0xfffffc10
-_08091EE8: .4byte gUnknown_8108E58
-_08091EEC: .4byte 0x0000752f
-_08091EF0: .4byte 0xffff8ad0
-_08091EF4:
- adds r0, r6, r4
- strh r1, [r0]
- adds r4, 0x2
- adds r3, 0x1
-_08091EFC:
- adds r2, 0x2
- cmp r3, 0xFB
- ble _08091EC0
- movs r3, 0xB
- add r2, sp, 0x1F8
- mov r1, sp
-_08091F08:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08091F08
- mov r2, r9
- add r1, sp, 0x210
- movs r3, 0xEF
-_08091F1C:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08091F1C
- movs r7, 0xC
- movs r6, 0
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _08091F4A
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, r8
- blt _08091F4A
- movs r7, 0
- b _08091F66
-_08091F46:
- mov r8, r5
- b _08091F9C
-_08091F4A:
- adds r6, 0x1
- cmp r6, 0xB
- bgt _08091F66
- lsls r0, r6, 1
- mov r2, sp
- adds r1, r2, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08091F4A
- cmp r0, r8
- blt _08091F4A
- lsls r0, r6, 24
- lsrs r7, r0, 24
-_08091F66:
- movs r0, 0x46
- mov r8, r0
- cmp r7, 0xC
- beq _08091F9C
- movs r6, 0
- mov r4, r9
-_08091F72:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08091F94
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r7
- bne _08091F94
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, r10
- bge _08091F46
-_08091F94:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0xEF
- ble _08091F72
-_08091F9C:
- mov r0, r8
- movs r3, 0xFC
- lsls r3, 2
- add sp, r3
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8091E94
-
- thumb_func_start sub_8091FB4
-sub_8091FB4:
- push {r4-r6,lr}
- movs r6, 0
-_08091FB8:
- ldr r0, _08092038
- lsls r1, r6, 2
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08091FE8
- movs r0, 0xF7
- ands r0, r1
- movs r5, 0
- strb r0, [r4]
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _08091FE8
- adds r0, r4, 0
- bl sub_80915D4
- bl sub_80913A0
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x1]
- strb r5, [r4]
-_08091FE8:
- adds r6, 0x1
- cmp r6, 0x13
- ble _08091FB8
- bl sub_80910B4
- movs r6, 0
-_08091FF4:
- movs r0, 0x58
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _0809203C
- ldr r0, [r0]
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092026
- adds r4, r2, 0
- adds r4, 0x28
- ldrb r0, [r4]
- cmp r0, 0
- beq _08092026
- cmp r0, 0x69
- bne _08092026
- adds r0, r4, 0
- bl sub_80915E4
- bl sub_80913A0
- movs r0, 0
- strb r0, [r4]
-_08092026:
- adds r6, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- ble _08091FF4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08092038: .4byte gUnknown_203B460
-_0809203C: .4byte gUnknown_203B45C
- thumb_func_end sub_8091FB4
-
- thumb_func_start sub_8092040
-sub_8092040:
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xEF
- bls _0809204E
-_0809204A:
- movs r0, 0x1
- b _08092070
-_0809204E:
- movs r2, 0
- ldr r0, _08092078
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0xF0
- beq _0809206E
- adds r1, r4, 0
-_0809205C:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, r3
- beq _0809204A
- adds r2, 0x1
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xF0
- bne _0809205C
-_0809206E:
- movs r0, 0
-_08092070:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08092078: .4byte gUnknown_810A35B
- thumb_func_end sub_8092040
-
- thumb_func_start sub_809207C
-sub_809207C:
- ldr r1, _08092084
- ldr r0, _08092088
- str r0, [r1]
- bx lr
- .align 2, 0
-_08092084: .4byte gUnknown_203B464
-_08092088: .4byte gUnknown_2038C10
- thumb_func_end sub_809207C
-
- thumb_func_start sub_809208C
-sub_809208C:
- ldr r0, _08092090
- bx lr
- .align 2, 0
-_08092090: .4byte gUnknown_2038C10
- thumb_func_end sub_809208C
-
- thumb_func_start sub_8092094
-sub_8092094:
- push {r4,lr}
- ldr r4, _080920B0
- ldr r0, [r4]
- ldr r1, _080920B4
- movs r2, 0xA
- bl sub_8092310
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0xC]
- strb r0, [r1, 0x10]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080920B0: .4byte gUnknown_203B464
-_080920B4: .4byte gUnknown_810982C
- thumb_func_end sub_8092094
-
- thumb_func_start sub_80920B8
-sub_80920B8:
- push {lr}
- adds r2, r0, 0
- movs r1, 0
- ldr r0, _080920D4
- ldr r3, [r0]
-_080920C2:
- adds r0, r3, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r2, 0x1
- adds r1, 0x1
- cmp r1, 0x9
- ble _080920C2
- pop {r0}
- bx r0
- .align 2, 0
-_080920D4: .4byte gUnknown_203B464
- thumb_func_end sub_80920B8
-
- thumb_func_start sub_80920D8
-sub_80920D8:
- push {lr}
- ldr r1, _080920E8
- ldr r1, [r1]
- movs r2, 0xA
- bl sub_80922B4
- pop {r0}
- bx r0
- .align 2, 0
-_080920E8: .4byte gUnknown_203B464
- thumb_func_end sub_80920D8
-
- thumb_func_start sub_80920EC
-sub_80920EC:
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r4, _0809210C
-_080920F4:
- ldr r0, [r4]
- adds r0, r2
- ldrb r1, [r3]
- strb r1, [r0]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x9
- ble _080920F4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809210C: .4byte gUnknown_203B464
- thumb_func_end sub_80920EC
-
- thumb_func_start sub_8092110
-sub_8092110:
- ldr r0, _08092118
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- bx lr
- .align 2, 0
-_08092118: .4byte gUnknown_203B464
- thumb_func_end sub_8092110
-
- thumb_func_start sub_809211C
-sub_809211C:
- push {lr}
- bl sub_8092178
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08092144
- ldr r1, _0809213C
- lsls r0, 2
- adds r0, r1
- ldr r1, _08092140
- ldr r1, [r1]
- ldr r0, [r0]
- ldr r1, [r1, 0xC]
- subs r0, r1
- b _08092146
- .align 2, 0
-_0809213C: .4byte gUnknown_8109810
-_08092140: .4byte gUnknown_203B464
-_08092144:
- movs r0, 0
-_08092146:
- pop {r1}
- bx r1
- thumb_func_end sub_809211C
-
- thumb_func_start sub_809214C
-sub_809214C:
- ldr r1, _08092154
- ldr r1, [r1]
- str r0, [r1, 0xC]
- bx lr
- .align 2, 0
-_08092154: .4byte gUnknown_203B464
- thumb_func_end sub_809214C
-
- thumb_func_start sub_8092158
-sub_8092158:
- push {lr}
- ldr r1, _08092170
- ldr r2, [r1]
- ldr r1, [r2, 0xC]
- adds r1, r0
- str r1, [r2, 0xC]
- ldr r0, _08092174
- cmp r1, r0
- ble _0809216C
- str r0, [r2, 0xC]
-_0809216C:
- pop {r0}
- bx r0
- .align 2, 0
-_08092170: .4byte gUnknown_203B464
-_08092174: .4byte 0x05f5e0ff
- thumb_func_end sub_8092158
-
- thumb_func_start sub_8092178
-sub_8092178:
- push {lr}
- movs r1, 0
- ldr r0, _08092190
- ldr r0, [r0]
- ldr r3, [r0, 0xC]
- ldr r2, _08092194
-_08092184:
- ldr r0, [r2]
- cmp r3, r0
- bge _08092198
- lsls r0, r1, 24
- lsrs r0, 24
- b _080921A2
- .align 2, 0
-_08092190: .4byte gUnknown_203B464
-_08092194: .4byte gUnknown_8109810
-_08092198:
- adds r2, 0x4
- adds r1, 0x1
- cmp r1, 0x6
- ble _08092184
- movs r0, 0x6
-_080921A2:
- pop {r1}
- bx r1
- thumb_func_end sub_8092178
-
- thumb_func_start sub_80921A8
-sub_80921A8:
- lsls r0, 24
- ldr r1, _080921B4
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080921B4: .4byte gUnknown_810B44C
- thumb_func_end sub_80921A8
-
- thumb_func_start sub_80921B8
-sub_80921B8:
- ldr r0, _080921C0
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- bx lr
- .align 2, 0
-_080921C0: .4byte gUnknown_203B464
- thumb_func_end sub_80921B8
-
- thumb_func_start sub_80921C4
-sub_80921C4:
- push {r4-r6,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- add r6, sp, 0x10
- movs r0, 0xFF
- strb r0, [r6]
- mov r5, sp
- adds r5, 0x11
- movs r0, 0
- strb r0, [r5]
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- ldr r4, _08092228
- ldr r1, [r4]
- mov r0, sp
- movs r2, 0x58
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0xC
- mov r0, sp
- movs r2, 0x20
- bl sub_809488C
- movs r0, 0
- bl sub_80023E4
- ldr r1, [r4]
- strb r0, [r1, 0x10]
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- adds r1, r5, 0
- cmp r0, 0
- beq _08092210
- adds r1, r6, 0
-_08092210:
- mov r0, sp
- movs r2, 0x1
- bl sub_809488C
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08092228: .4byte gUnknown_203B464
- thumb_func_end sub_80921C4
-
- thumb_func_start sub_809222C
-sub_809222C:
- push {r4,r5,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- ldr r5, _0809227C
- ldr r1, [r5]
- mov r0, sp
- movs r2, 0x58
- bl sub_8094924
- ldr r1, [r5]
- adds r1, 0xC
- mov r0, sp
- movs r2, 0x20
- bl sub_8094924
- add r4, sp, 0x10
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- strb r0, [r2, 0x10]
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809227C: .4byte gUnknown_203B464
- thumb_func_end sub_809222C
-
- thumb_func_start sub_8092280
-sub_8092280:
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_8092280
-
- thumb_func_start sub_8092288
-sub_8092288:
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_8092288
-
- thumb_func_start sub_8092290
-sub_8092290:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- b _080922A4
-_08092298:
- ldrb r0, [r4]
- adds r4, 0x1
- bl sub_8092288
- strb r0, [r5]
- adds r5, 0x1
-_080922A4:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08092298
- movs r0, 0
- strb r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8092290
-
- thumb_func_start sub_80922B4
-sub_80922B4:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- b _080922CA
-_080922BE:
- ldrb r0, [r4]
- adds r4, 0x1
- bl sub_8092288
- strb r0, [r6]
- adds r6, 0x1
-_080922CA:
- adds r0, r5, 0
- subs r5, 0x1
- cmp r0, 0
- ble _080922D8
- ldrb r0, [r4]
- cmp r0, 0
- bne _080922BE
-_080922D8:
- movs r0, 0
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80922B4
-
- thumb_func_start sub_80922E4
-sub_80922E4:
- ldr r1, _080922F0
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080922F0: .4byte gUnknown_810983C
- thumb_func_end sub_80922E4
-
- thumb_func_start sub_80922F4
-sub_80922F4:
- push {lr}
- adds r2, r0, 0
- b _08092300
-_080922FA:
- strb r0, [r2]
- adds r1, 0x1
- adds r2, 0x1
-_08092300:
- ldrb r0, [r1]
- cmp r0, 0
- bne _080922FA
- movs r0, 0
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_80922F4
-
- thumb_func_start sub_8092310
-sub_8092310:
- push {r4,lr}
- adds r4, r0, 0
- b _0809231C
-_08092316:
- strb r0, [r4]
- adds r4, 0x1
- adds r1, 0x1
-_0809231C:
- adds r0, r2, 0
- subs r2, 0x1
- cmp r0, 0
- ble _0809232E
- ldrb r0, [r1]
- adds r3, r0, 0
- cmp r3, 0
- bne _08092316
- strb r3, [r4]
-_0809232E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8092310
-
- thumb_func_start sub_8092334
-sub_8092334:
- lsls r0, 24
- ldr r1, _08092340
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08092340: .4byte gUnknown_810AD4C
- thumb_func_end sub_8092334
-
- thumb_func_start sub_8092344
-sub_8092344:
- lsls r0, 24
- ldr r1, _08092350
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08092350: .4byte gUnknown_810AE24
- thumb_func_end sub_8092344
-
- thumb_func_start sub_8092354
-sub_8092354:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08092360
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08092360: .4byte gUnknown_810AC7C
- thumb_func_end sub_8092354
-
- thumb_func_start sub_8092364
-sub_8092364:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08092370
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08092370: .4byte gUnknown_810AC6A
- thumb_func_end sub_8092364
-
- thumb_func_start sub_8092374
-sub_8092374:
- push {lr}
- lsls r1, 24
- ldr r2, _0809238C
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0x50
- bl strncpy
- pop {r0}
- bx r0
- .align 2, 0
-_0809238C: .4byte gUnknown_810B4C8
- thumb_func_end sub_8092374
-
- thumb_func_start sub_8092390
-sub_8092390:
- lsls r0, 24
- ldr r1, _0809239C
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0809239C: .4byte gUnknown_810B988
- thumb_func_end sub_8092390
-
- thumb_func_start sub_80923A0
-sub_80923A0:
- ldr r1, _080923A8
- ldr r0, _080923AC
- str r0, [r1]
- bx lr
- .align 2, 0
-_080923A8: .4byte gUnknown_203B468
-_080923AC: .4byte gUnknown_2038C28
- thumb_func_end sub_80923A0
-
- thumb_func_start sub_80923B0
-sub_80923B0:
- ldr r0, _080923B4
- bx lr
- .align 2, 0
-_080923B4: .4byte gUnknown_2038C28
- thumb_func_end sub_80923B0
-
- thumb_func_start sub_80923B8
-sub_80923B8:
- push {lr}
- movs r1, 0
- ldr r3, _080923D0
- movs r2, 0
-_080923C0:
- ldr r0, [r3]
- adds r0, r1
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0x39
- ble _080923C0
- pop {r0}
- bx r0
- .align 2, 0
-_080923D0: .4byte gUnknown_203B468
- thumb_func_end sub_80923B8
-
- thumb_func_start sub_80923D4
-sub_80923D4:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- movs r1, 0
- ldr r2, _080923F0
-_080923DE:
- movs r5, 0
- ldrsh r0, [r2, r5]
- adds r3, r0
- cmp r3, r4
- ble _080923F4
- lsls r0, r1, 24
- lsrs r0, 24
- b _080923FE
- .align 2, 0
-_080923F0: .4byte gUnknown_810AA90
-_080923F4:
- adds r2, 0x8
- adds r1, 0x1
- cmp r1, 0x39
- ble _080923DE
- movs r0, 0
-_080923FE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80923D4
-
- thumb_func_start sub_8092404
-sub_8092404:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
- movs r4, 0
- mov r5, r10
-_08092426:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _08092494
- ldr r0, [r0]
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092472
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- beq _08092448
- mov r0, r8
- cmp r0, 0
- beq _08092472
-_08092448:
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- bne _08092452
- movs r1, 0x1
-_08092452:
- cmp r1, 0
- beq _0809245A
- cmp r7, 0
- beq _08092472
-_0809245A:
- adds r0, r4, 0
- bl sub_80923D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r9
- bne _08092472
- cmp r6, 0xF
- bgt _08092472
- strh r4, [r5]
- adds r5, 0x2
- adds r6, 0x1
-_08092472:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08092426
- lsls r0, r6, 1
- add r0, r10
- ldr r2, _08092498
- adds r1, r2, 0
- strh r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08092494: .4byte gUnknown_203B45C
-_08092498: .4byte 0x0000ffff
- thumb_func_end sub_8092404
-
- thumb_func_start sub_809249C
-sub_809249C:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080924F8
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809251A
- movs r5, 0
-_080924B4:
- ldr r2, _080924FC
- movs r0, 0x58
- adds r1, r5, 0
- muls r1, r0
- ldr r0, [r2]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092502
- adds r0, r5, 0
- bl sub_80923D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- bne _08092502
- movs r1, 0
- ldrb r0, [r4, 0x4]
- cmp r0, 0x41
- bne _080924E2
- movs r1, 0x1
-_080924E2:
- cmp r1, 0
- bne _080924F2
- ldrb r1, [r4, 0x2]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- cmp r0, 0
- beq _08092500
-_080924F2:
- movs r7, 0
- b _08092502
- .align 2, 0
-_080924F8: .4byte gUnknown_203B468
-_080924FC: .4byte gUnknown_203B45C
-_08092500:
- strh r0, [r4]
-_08092502:
- adds r5, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _080924B4
- cmp r7, 0
- beq _0809251A
- ldr r0, _08092520
- ldr r0, [r0]
- adds r0, r6
- movs r1, 0
- strb r1, [r0]
-_0809251A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08092520: .4byte gUnknown_203B468
- thumb_func_end sub_809249C
-
- thumb_func_start sub_8092524
-sub_8092524:
- lsls r0, 24
- ldr r1, _08092530
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08092530: .4byte gUnknown_81139D0
- thumb_func_end sub_8092524
-
- thumb_func_start sub_8092534
-sub_8092534:
- lsls r0, 24
- ldr r1, _08092540
- lsrs r0, 21
- adds r0, r1
- ldrb r0, [r0, 0x2]
- bx lr
- .align 2, 0
-_08092540: .4byte gUnknown_810AA90
- thumb_func_end sub_8092534
-
- thumb_func_start sub_8092544
-sub_8092544:
- lsls r0, 24
- ldr r1, _08092554
- lsrs r0, 21
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08092554: .4byte gUnknown_810AA90
- thumb_func_end sub_8092544
-
- thumb_func_start sub_8092558
-sub_8092558:
- push {lr}
- lsls r2, r1, 24
- ldr r1, _08092570
- ldr r3, _08092574
- lsrs r2, 22
- adds r2, r3
- ldr r2, [r2]
- bl sub_800D158
- pop {r0}
- bx r0
- .align 2, 0
-_08092570: .4byte gUnknown_81098A4
-_08092574: .4byte gUnknown_81139D0
- thumb_func_end sub_8092558
-
- thumb_func_start sub_8092578
-sub_8092578:
- push {r4,r5,lr}
- sub sp, 0x18
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- cmp r2, 0
- beq _080925C0
- ldr r0, _080925B4
- lsls r1, r4, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- add r1, sp, 0x4
- movs r2, 0x1
- bl sub_8090FEC
- ldr r1, _080925B8
- ldr r2, _080925BC
- lsls r0, r4, 2
- adds r0, r2
- ldr r2, [r0]
- add r0, sp, 0x4
- str r0, [sp]
- adds r0, r5, 0
- movs r3, 0x60
- bl sub_800D158
- b _080925CE
- .align 2, 0
-_080925B4: .4byte gUnknown_810AA90
-_080925B8: .4byte gUnknown_81098AC
-_080925BC: .4byte gUnknown_81139D0
-_080925C0:
- ldr r0, _080925D8
- lsls r1, r4, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r5, 0
- bl strcpy
-_080925CE:
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080925D8: .4byte gUnknown_81139D0
- thumb_func_end sub_8092578
-
- thumb_func_start sub_80925DC
-sub_80925DC:
- lsls r0, 24
- ldr r1, _080925E8
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080925E8: .4byte gUnknown_8113E30
- thumb_func_end sub_80925DC
-
- thumb_func_start sub_80925EC
-sub_80925EC:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080925FC
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080925FC: .4byte gUnknown_203B468
- thumb_func_end sub_80925EC
-
- thumb_func_start sub_8092600
-sub_8092600:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08092610
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08092610: .4byte gUnknown_203B468
- thumb_func_end sub_8092600
-
- thumb_func_start sub_8092614
-sub_8092614:
- push {lr}
- movs r1, 0x1
- ldr r0, _08092628
- ldr r2, [r0]
-_0809261C:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809262C
- movs r0, 0
- b _08092634
- .align 2, 0
-_08092628: .4byte gUnknown_203B468
-_0809262C:
- adds r1, 0x1
- cmp r1, 0x39
- ble _0809261C
- movs r0, 0x1
-_08092634:
- pop {r1}
- bx r1
- thumb_func_end sub_8092614
-
- thumb_func_start sub_8092638
-sub_8092638:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r6, 0
- movs r3, 0
- ldr r2, _080926DC
- cmp r3, r5
- bge _0809266E
- ldr r1, _080926E0
- adds r3, r5, 0
-_0809265E:
- movs r7, 0
- ldrsh r0, [r1, r7]
- adds r6, r0
- adds r1, 0x8
- subs r3, 0x1
- cmp r3, 0
- bne _0809265E
- adds r3, r5, 0
-_0809266E:
- str r6, [r4, 0x8]
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r4, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080926E8
- movs r0, 0
- strh r0, [r4, 0x2]
- ldr r1, _080926E0
- lsls r0, r3, 3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- movs r3, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080926EC
- ldr r5, _080926E4
-_0809269A:
- movs r0, 0x58
- adds r1, r6, 0
- muls r1, r0
- ldr r0, [r5]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080926CC
- mov r7, r12
- cmp r7, 0
- beq _080926BA
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _080926CC
-_080926BA:
- mov r0, r8
- cmp r0, 0
- beq _080926C6
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- beq _080926CC
-_080926C6:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
-_080926CC:
- adds r3, 0x1
- adds r6, 0x1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r3, r0
- blt _0809269A
- b _080926EC
- .align 2, 0
-_080926DC: .4byte gUnknown_203B468
-_080926E0: .4byte gUnknown_810AA90
-_080926E4: .4byte gUnknown_203B45C
-_080926E8:
- strh r0, [r4, 0x2]
- strh r0, [r4]
-_080926EC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8092638
-
- thumb_func_start sub_80926F8
-sub_80926F8:
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r5, 0
- movs r2, 0
- ldr r0, _08092780
- mov r12, r0
- cmp r2, r3
- bge _08092724
- ldr r1, _08092784
- adds r2, r3, 0
-_08092714:
- movs r6, 0
- ldrsh r0, [r1, r6]
- adds r5, r0
- adds r1, 0x8
- subs r2, 0x1
- cmp r2, 0
- bne _08092714
- adds r2, r3, 0
-_08092724:
- str r5, [r4, 0x8]
- mov r1, r12
- ldr r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r4, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0809279C
- movs r0, 0
- strh r0, [r4, 0x2]
- ldr r1, _08092784
- lsls r0, r2, 3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- movs r6, 0
- ldrsh r0, [r4, r6]
- cmp r0, 0
- ble _080927A0
- ldr r6, _08092788
- adds r2, r0, 0
-_08092752:
- movs r0, 0x58
- adds r1, r5, 0
- muls r1, r0
- ldr r0, [r6]
- adds r3, r0, r1
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092792
- ldrb r0, [r3, 0x2]
- cmp r0, 0
- bne _08092776
- cmp r7, 0
- bne _0809278C
- ldrb r0, [r3, 0x4]
- cmp r0, 0x41
- bne _0809278C
-_08092776:
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- b _08092792
- .align 2, 0
-_08092780: .4byte gUnknown_203B468
-_08092784: .4byte gUnknown_810AA90
-_08092788: .4byte gUnknown_203B45C
-_0809278C:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
-_08092792:
- subs r2, 0x1
- adds r5, 0x1
- cmp r2, 0
- bne _08092752
- b _080927A0
-_0809279C:
- strh r0, [r4, 0x2]
- strh r0, [r4]
-_080927A0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80926F8
-
- thumb_func_start sub_80927A8
-sub_80927A8:
- push {r4,r5,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- movs r4, 0
- add r5, sp, 0x10
-_080927BC:
- ldr r0, _080927F0
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080927CC
- movs r0, 0x1
- negs r0, r0
-_080927CC:
- str r0, [sp, 0x10]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_809488C
- adds r4, 0x1
- cmp r4, 0x39
- ble _080927BC
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080927F0: .4byte gUnknown_203B468
- thumb_func_end sub_80927A8
-
- thumb_func_start sub_80927F4
-sub_80927F4:
- push {r4-r7,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- movs r4, 0
- add r7, sp, 0x10
- movs r6, 0x1
- ldr r5, _08092828
-_0809280C:
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_8094924
- ldr r1, [sp, 0x10]
- ands r1, r6
- cmp r1, 0
- beq _0809282C
- ldr r0, [r5]
- adds r0, r4
- strb r6, [r0]
- b _08092832
- .align 2, 0
-_08092828: .4byte gUnknown_203B468
-_0809282C:
- ldr r0, [r5]
- adds r0, r4
- strb r1, [r0]
-_08092832:
- adds r4, 0x1
- cmp r4, 0x39
- ble _0809280C
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80927F4
-
- thumb_func_start LoadWazaParameters
-LoadWazaParameters:
- push {lr}
- ldr r0, _08092868
- ldr r1, _0809286C
- bl OpenFileAndGetFileDataPtr
- ldr r1, _08092870
- str r0, [r1]
- ldr r1, _08092874
- ldr r2, [r0, 0x4]
- ldr r0, [r2]
- str r0, [r1]
- ldr r1, _08092878
- ldr r0, [r2, 0x4]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08092868: .4byte gUnknown_81098D0
-_0809286C: .4byte gUnknown_8300500
-_08092870: .4byte gWazaParametersFile
-_08092874: .4byte gUnknown_2038C68
-_08092878: .4byte gUnknown_2038C6C
- thumb_func_end LoadWazaParameters
-
- thumb_func_start sub_809287C
-sub_809287C:
- push {lr}
- adds r2, r0, 0
- ldrb r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08092894
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092898
-_08092894:
- movs r0, 0x32
- b _0809289A
-_08092898:
- movs r0, 0x34
-_0809289A:
- pop {r1}
- bx r1
- thumb_func_end sub_809287C
-
- thumb_func_start sub_80928A0
-sub_80928A0:
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r2, 0
- mov r0, sp
- bl sub_8093F10
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- bl sub_80928C0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80928A0
-
- thumb_func_start sub_80928C0
-sub_80928C0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x20
- adds r7, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r0, r4, 0
- bl sub_809287C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r5, 0
- bne _080928DE
- ldr r5, _080928F0
-_080928DE:
- ldrb r1, [r4, 0x5]
- cmp r1, 0
- beq _080928F8
- ldr r1, _080928F4
- ldrb r2, [r4, 0x5]
- add r0, sp, 0x14
- bl sub_800D158
- b _080928FC
- .align 2, 0
-_080928F0: .4byte gUnknown_81098C4
-_080928F4: .4byte gUnknown_81098DC
-_080928F8:
- add r0, sp, 0x14
- strb r1, [r0]
-_080928FC:
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- beq _08092904
- movs r6, 0x2
-_08092904:
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- beq _08092918
- ldrh r0, [r4, 0x2]
- bl sub_809422C
- lsls r0, 24
- cmp r0, 0
- beq _08092918
- movs r6, 0x2
-_08092918:
- ldr r0, [r5]
- cmp r0, 0x4
- bls _08092920
- b _08092A6A
-_08092920:
- lsls r0, 2
- ldr r1, _0809292C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809292C: .4byte _08092930
- .align 2, 0
-_08092930:
- .4byte _08092944
- .4byte _0809296C
- .4byte _08092998
- .4byte _080929C4
- .4byte _08092A20
-_08092944:
- ldr r1, _08092964
- ldrh r2, [r4, 0x2]
- ldr r0, _08092968
- ldr r3, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldr r3, [r0]
- add r0, sp, 0x14
- str r0, [sp]
- adds r0, r7, 0
- adds r2, r6, 0
- bl sub_800D158
- b _08092A6A
- .align 2, 0
-_08092964: .4byte gUnknown_81098E0
-_08092968: .4byte gUnknown_2038C68
-_0809296C:
- adds r0, r4, 0
- bl sub_8092BF4
- adds r3, r0, 0
- ldr r1, _0809298C
- mov r8, r1
- ldrb r1, [r4]
- movs r0, 0x8
- ands r0, r1
- ldr r1, _08092990
- mov r12, r1
- cmp r0, 0
- beq _080929E2
- ldr r0, _08092994
- b _080929E0
- .align 2, 0
-_0809298C: .4byte gUnknown_81098EC
-_08092990: .4byte gUnknown_810990C
-_08092994: .4byte gUnknown_8109908
-_08092998:
- adds r0, r4, 0
- bl sub_8092BF4
- adds r3, r0, 0
- ldr r0, _080929B8
- mov r8, r0
- ldrb r1, [r4]
- movs r0, 0x8
- ands r0, r1
- ldr r1, _080929BC
- mov r12, r1
- cmp r0, 0
- beq _080929E2
- ldr r0, _080929C0
- b _080929E0
- .align 2, 0
-_080929B8: .4byte gUnknown_8109910
-_080929BC: .4byte gUnknown_810990C
-_080929C0: .4byte gUnknown_8109908
-_080929C4:
- adds r0, r4, 0
- bl sub_8092BF4
- adds r3, r0, 0
- ldr r0, _08092A10
- mov r8, r0
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- ldr r1, _08092A14
- mov r12, r1
- cmp r0, 0
- beq _080929E2
- ldr r0, _08092A18
-_080929E0:
- mov r12, r0
-_080929E2:
- ldrh r1, [r4, 0x2]
- ldr r0, _08092A1C
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [sp]
- add r1, sp, 0x14
- str r1, [sp, 0x4]
- ldr r0, [r5, 0x4]
- str r0, [sp, 0x8]
- ldrb r0, [r4, 0x4]
- str r0, [sp, 0xC]
- str r3, [sp, 0x10]
- adds r0, r7, 0
- mov r1, r8
- adds r2, r6, 0
- mov r3, r12
- bl sub_800D158
- b _08092A6A
- .align 2, 0
-_08092A10: .4byte gUnknown_81098EC
-_08092A14: .4byte gUnknown_810990C
-_08092A18: .4byte gUnknown_8109928
-_08092A1C: .4byte gUnknown_2038C68
-_08092A20:
- adds r0, r4, 0
- bl sub_8092BF4
- adds r3, r0, 0
- ldr r0, _08092A78
- mov r8, r0
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- ldr r1, _08092A7C
- mov r12, r1
- cmp r0, 0
- beq _08092A3E
- ldr r0, _08092A80
- mov r12, r0
-_08092A3E:
- ldrh r1, [r4, 0x2]
- ldr r0, _08092A84
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [sp]
- add r1, sp, 0x14
- str r1, [sp, 0x4]
- ldr r0, [r5, 0x4]
- str r0, [sp, 0x8]
- ldrb r0, [r4, 0x4]
- str r0, [sp, 0xC]
- str r3, [sp, 0x10]
- adds r0, r7, 0
- mov r1, r8
- adds r2, r6, 0
- mov r3, r12
- bl sub_800D158
-_08092A6A:
- add sp, 0x20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08092A78: .4byte gUnknown_8109910
-_08092A7C: .4byte gUnknown_810990C
-_08092A80: .4byte gUnknown_8109928
-_08092A84: .4byte gUnknown_2038C68
- thumb_func_end sub_80928C0
-
- thumb_func_start sub_8092A88
-sub_8092A88:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r4]
- strb r2, [r4, 0x1]
- movs r5, 0
- strh r1, [r4, 0x2]
- adds r0, r4, 0
- bl sub_8092BF4
- strb r0, [r4, 0x4]
- strb r5, [r4, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8092A88
-
- thumb_func_start sub_8092AA8
-sub_8092AA8:
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r2, 0
- bne _08092AB8
- strb r2, [r5]
- b _08092ACE
-_08092AB8:
- movs r1, 0
- movs r0, 0x5
- strb r0, [r5]
- strb r1, [r5, 0x1]
- movs r4, 0
- strh r2, [r5, 0x2]
- adds r0, r5, 0
- bl sub_8092BF4
- strb r0, [r5, 0x4]
- strb r4, [r5, 0x5]
-_08092ACE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8092AA8
-
- thumb_func_start sub_8092AD4
-sub_8092AD4:
- movs r2, 0x5
- strb r2, [r0]
- movs r2, 0
- strh r1, [r0, 0x2]
- strb r2, [r0, 0x4]
- bx lr
- thumb_func_end sub_8092AD4
-
- thumb_func_start sub_8092AE0
-sub_8092AE0:
- ldrh r2, [r0, 0x2]
- ldr r0, _08092AFC
- ldr r3, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- lsls r1, 1
- adds r0, 0x8
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08092AFC: .4byte gUnknown_2038C68
- thumb_func_end sub_8092AE0
-
- thumb_func_start sub_8092B00
-sub_8092B00:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092B14
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- bx lr
- .align 2, 0
-_08092B14: .4byte gUnknown_2038C68
- thumb_func_end sub_8092B00
-
- thumb_func_start sub_8092B18
-sub_8092B18:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r2, r1, 0
- ldr r0, _08092B40
- cmp r1, r0
- beq _08092B48
- cmp r1, 0
- beq _08092B48
- movs r0, 0xD2
- lsls r0, 1
- cmp r2, r0
- beq _08092B48
- ldr r0, _08092B44
- ldr r1, [r0]
- lsls r0, r2, 3
- adds r0, r1
- ldr r0, [r0]
- b _08092B4A
- .align 2, 0
-_08092B40: .4byte 0x000001a5
-_08092B44: .4byte gUnknown_2038C6C
-_08092B48:
- ldr r0, _08092B50
-_08092B4A:
- pop {r1}
- bx r1
- .align 2, 0
-_08092B50: .4byte gUnknown_810992B
- thumb_func_end sub_8092B18
-
- thumb_func_start sub_8092B54
-sub_8092B54:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r2, r1, 0
- ldr r0, _08092B7C
- cmp r1, r0
- beq _08092B84
- cmp r1, 0
- beq _08092B84
- movs r0, 0xD2
- lsls r0, 1
- cmp r2, r0
- beq _08092B84
- ldr r0, _08092B80
- ldr r1, [r0]
- lsls r0, r2, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _08092B86
- .align 2, 0
-_08092B7C: .4byte 0x000001a5
-_08092B80: .4byte gUnknown_2038C6C
-_08092B84:
- ldr r0, _08092B8C
-_08092B86:
- pop {r1}
- bx r1
- .align 2, 0
-_08092B8C: .4byte gUnknown_810992B
- thumb_func_end sub_8092B54
-
- thumb_func_start sub_8092B90
-sub_8092B90:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092BA4
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xD]
- bx lr
- .align 2, 0
-_08092BA4: .4byte gUnknown_2038C68
- thumb_func_end sub_8092B90
-
- thumb_func_start sub_8092BA8
-sub_8092BA8:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092BBC
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x11]
- bx lr
- .align 2, 0
-_08092BBC: .4byte gUnknown_2038C68
- thumb_func_end sub_8092BA8
-
- thumb_func_start sub_8092BC0
-sub_8092BC0:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092BD4
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08092BD4: .4byte gUnknown_2038C68
- thumb_func_end sub_8092BC0
-
- thumb_func_start sub_8092BD8
-sub_8092BD8:
- ldrh r2, [r0, 0x2]
- ldr r0, _08092BF0
- ldr r3, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- adds r0, 0xE
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08092BF0: .4byte gUnknown_2038C68
- thumb_func_end sub_8092BD8
-
- thumb_func_start sub_8092BF4
-sub_8092BF4:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092C08
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xC]
- bx lr
- .align 2, 0
-_08092C08: .4byte gUnknown_2038C68
- thumb_func_end sub_8092BF4
-
- thumb_func_start sub_8092C0C
-sub_8092C0C:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092C20
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x12]
- bx lr
- .align 2, 0
-_08092C20: .4byte gUnknown_2038C68
- thumb_func_end sub_8092C0C
-
- thumb_func_start sub_8092C24
-sub_8092C24:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092C38
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- bx lr
- .align 2, 0
-_08092C38: .4byte gUnknown_2038C68
- thumb_func_end sub_8092C24
-
- thumb_func_start sub_8092C3C
-sub_8092C3C:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092C50
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x17]
- bx lr
- .align 2, 0
-_08092C50: .4byte gUnknown_2038C68
- thumb_func_end sub_8092C3C
-
- thumb_func_start sub_8092C54
-sub_8092C54:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092C68
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- bx lr
- .align 2, 0
-_08092C68: .4byte gUnknown_2038C68
- thumb_func_end sub_8092C54
-
- thumb_func_start sub_8092C6C
-sub_8092C6C:
- ldrh r1, [r0, 0x2]
- ldr r0, _08092C80
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x19]
- bx lr
- .align 2, 0
-_08092C80: .4byte gUnknown_2038C68
- thumb_func_end sub_8092C6C
-
- thumb_func_start sub_8092C84
-sub_8092C84:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- bl sub_8092A88
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0
- bl sub_80928C0
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8092C84
-
- thumb_func_start sub_8092CA8
-sub_8092CA8:
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08092CBC
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1, 0x20]
- bx lr
- .align 2, 0
-_08092CBC: .4byte gUnknown_2038C68
- thumb_func_end sub_8092CA8
-
- thumb_func_start sub_8092CC0
-sub_8092CC0:
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08092CD4
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x14]
- bx lr
- .align 2, 0
-_08092CD4: .4byte gUnknown_2038C68
- thumb_func_end sub_8092CC0
-
- thumb_func_start sub_8092CD8
-sub_8092CD8:
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08092CEC
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x15]
- bx lr
- .align 2, 0
-_08092CEC: .4byte gUnknown_2038C68
- thumb_func_end sub_8092CD8
-
- thumb_func_start sub_8092CF0
-sub_8092CF0:
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08092D04
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x16]
- bx lr
- .align 2, 0
-_08092D04: .4byte gUnknown_2038C68
- thumb_func_end sub_8092CF0
-
- thumb_func_start sub_8092D08
-sub_8092D08:
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2]
- cmp r1, 0xD9
- beq _08092D4C
- movs r0, 0x8E
- lsls r0, 1
- cmp r1, r0
- beq _08092D4C
- cmp r1, 0x53
- beq _08092D4C
- cmp r1, 0x22
- beq _08092D4C
- cmp r1, 0x54
- beq _08092D4C
- cmp r1, 0xAB
- beq _08092D4C
- ldr r0, _08092D48
- cmp r1, r0
- beq _08092D4C
- cmp r1, 0x1B
- beq _08092D4C
- cmp r1, 0xF1
- beq _08092D4C
- cmp r1, 0x19
- beq _08092D4C
- ldrh r0, [r2, 0x2]
- cmp r0, 0x1A
- beq _08092D4C
- movs r0, 0
- b _08092D4E
- .align 2, 0
-_08092D48: .4byte 0x00000125
-_08092D4C:
- movs r0, 0x1
-_08092D4E:
- pop {r1}
- bx r1
- thumb_func_end sub_8092D08
-
- thumb_func_start sub_8092D54
-sub_8092D54:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- ldr r5, _08092D78
- ldr r4, _08092D7C
- bl sub_8092C6C
- lsls r0, 2
- adds r0, r4
- ldr r2, [r0]
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_800D158
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08092D78: .4byte gUnknown_810992C
-_08092D7C: .4byte gUnknown_810CC0C
- thumb_func_end sub_8092D54
-
- thumb_func_start sub_8092D80
-sub_8092D80:
- push {r4,r5,lr}
- adds r3, r1, 0
- movs r5, 0
- lsls r1, r3, 3
- adds r1, r0
-_08092D8A:
- adds r1, 0x8
- adds r3, 0x1
- cmp r3, 0x4
- beq _08092DB0
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08092DB0
- lsrs r0, r2, 1
- ands r0, r4
- cmp r0, 0
- bne _08092DAA
- adds r0, r3, 0
- b _08092DB2
-_08092DAA:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08092D8A
-_08092DB0:
- movs r0, 0
-_08092DB2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8092D80
-
- thumb_func_start sub_8092DB8
-sub_8092DB8:
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r5, 0
- movs r6, 0x1
-_08092DC0:
- subs r1, 0x1
- cmp r1, 0
- bge _08092DF0
- movs r2, 0x3
- ldrb r1, [r4, 0x18]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08092DD6
- movs r1, 0x3
- b _08092DEC
-_08092DD6:
- subs r2, 0x1
- cmp r2, 0
- blt _08092E12
- lsls r0, r2, 3
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08092DD6
- adds r1, r2, 0
-_08092DEC:
- cmp r2, 0
- blt _08092E12
-_08092DF0:
- lsls r0, r1, 3
- adds r0, r4
- ldrb r2, [r0]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _08092E12
- lsrs r0, r2, 1
- ands r0, r3
- cmp r0, 0
- bne _08092E0C
- adds r0, r1, 0
- b _08092E14
-_08092E0C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08092DC0
-_08092E12:
- movs r0, 0
-_08092E14:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8092DB8
-
- thumb_func_start sub_8092E1C
-sub_8092E1C:
- push {r4,r5,lr}
- adds r3, r1, 0
- movs r5, 0
- lsls r1, r3, 3
- adds r1, r0
-_08092E26:
- adds r1, 0x8
- adds r3, 0x1
- cmp r3, 0x8
- beq _08092E4C
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08092E4C
- lsrs r0, r2, 1
- ands r0, r4
- cmp r0, 0
- bne _08092E46
- adds r0, r3, 0
- b _08092E4E
-_08092E46:
- adds r5, 0x1
- cmp r5, 0x7
- ble _08092E26
-_08092E4C:
- movs r0, 0
-_08092E4E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8092E1C
-
- thumb_func_start sub_8092E54
-sub_8092E54:
- push {r4,r5,lr}
- adds r3, r1, 0
- movs r5, 0
- lsls r1, r3, 3
- adds r1, r0
-_08092E5E:
- adds r1, 0x8
- adds r3, 0x1
- cmp r3, 0x8
- beq _08092E84
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08092E84
- lsrs r0, r2, 1
- ands r0, r4
- cmp r0, 0
- bne _08092E7E
- adds r0, r3, 0
- b _08092E86
-_08092E7E:
- adds r5, 0x1
- cmp r5, 0x7
- ble _08092E5E
-_08092E84:
- movs r0, 0
-_08092E86:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8092E54
-
- thumb_func_start sub_8092E8C
-sub_8092E8C:
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- lsls r0, r1, 3
- adds r3, r0, r6
-_08092E96:
- subs r3, 0x8
- subs r1, 0x1
- cmp r1, 0
- bge _08092EC6
- movs r3, 0x7
- movs r4, 0x1
- adds r2, r6, 0
- adds r2, 0x38
-_08092EA6:
- ldrb r1, [r2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08092EBC
- lsrs r0, r1, 1
- ands r0, r4
- cmp r0, 0
- bne _08092EBC
- adds r0, r3, 0
- b _08092EE6
-_08092EBC:
- subs r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- bgt _08092EA6
- b _08092EE4
-_08092EC6:
- ldrb r2, [r3]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08092EE4
- lsrs r0, r2, 1
- ands r0, r4
- cmp r0, 0
- bne _08092EDE
- adds r0, r1, 0
- b _08092EE6
-_08092EDE:
- adds r5, 0x1
- cmp r5, 0x7
- ble _08092E96
-_08092EE4:
- movs r0, 0
-_08092EE6:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8092E8C
-
- thumb_func_start sub_8092EEC
-sub_8092EEC:
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- lsls r0, r1, 3
- adds r3, r0, r6
-_08092EF6:
- subs r3, 0x8
- subs r1, 0x1
- cmp r1, 0
- bge _08092F26
- movs r3, 0x7
- movs r4, 0x1
- adds r2, r6, 0
- adds r2, 0x38
-_08092F06:
- ldrb r1, [r2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08092F1C
- lsrs r0, r1, 1
- ands r0, r4
- cmp r0, 0
- bne _08092F1C
- adds r0, r3, 0
- b _08092F46
-_08092F1C:
- subs r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- bgt _08092F06
- b _08092F44
-_08092F26:
- ldrb r2, [r3]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08092F44
- lsrs r0, r2, 1
- ands r0, r4
- cmp r0, 0
- bne _08092F3E
- adds r0, r1, 0
- b _08092F46
-_08092F3E:
- adds r5, 0x1
- cmp r5, 0x7
- ble _08092EF6
-_08092F44:
- movs r0, 0
-_08092F46:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8092EEC
-
- thumb_func_start sub_8092F4C
-sub_8092F4C:
- push {r4,lr}
- adds r2, r0, 0
- cmp r1, 0
- ble _08092F78
- movs r4, 0x1
- lsls r0, r1, 3
- adds r3, r0, r2
-_08092F5A:
- ldrb r2, [r3]
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08092F78
- lsrs r0, r2, 1
- ands r0, r4
- cmp r0, 0
- bne _08092F70
- adds r0, r1, 0
- b _08092F7A
-_08092F70:
- subs r3, 0x8
- subs r1, 0x1
- cmp r1, 0
- bgt _08092F5A
-_08092F78:
- movs r0, 0
-_08092F7A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8092F4C
-
- thumb_func_start sub_8092F80
-sub_8092F80:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x80
- adds r7, r0, 0
- mov r8, r1
- lsls r0, r1, 3
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093784
- mov r0, sp
- bl sub_8093744
- adds r3, r0, 0
- cmp r3, 0x2
- bhi _08092FCC
- lsls r1, r3, 5
- adds r0, r3, 0x1
- lsls r0, 5
- mov r2, sp
- adds r5, r0, r2
- adds r4, r1, r2
- movs r6, 0x3
-_08092FBA:
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r4!, {r0,r1}
- stm r5!, {r2,r3}
- subs r6, 0x1
- cmp r6, 0
- bge _08092FBA
-_08092FCC:
- adds r0, r7, 0
- mov r1, sp
- bl sub_80937E0
- movs r3, 0
- movs r5, 0x80
- movs r4, 0x7F
- adds r1, r7, 0
-_08092FDC:
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08092FF0
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- mov r8, r3
- b _08092FF8
-_08092FF0:
- adds r1, 0x8
- adds r3, 0x1
- cmp r3, 0x3
- ble _08092FDC
-_08092FF8:
- mov r0, r8
- add sp, 0x80
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8092F80
-
- thumb_func_start sub_8093008
-sub_8093008:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _0809307C
- add sp, r4
- adds r7, r0, 0
- mov r8, r1
- lsls r0, r1, 3
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093974
- mov r0, sp
- bl sub_80938F4
- adds r3, r0, 0
- cmp r3, 0x6
- bhi _08093056
- lsls r1, r3, 6
- adds r0, r3, 0x1
- lsls r0, 6
- mov r2, sp
- adds r5, r0, r2
- adds r4, r1, r2
- movs r6, 0x7
-_08093044:
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r4!, {r0,r1}
- stm r5!, {r2,r3}
- subs r6, 0x1
- cmp r6, 0
- bge _08093044
-_08093056:
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093A2C
- movs r3, 0
- movs r5, 0x80
- movs r4, 0x7F
- adds r1, r7, 0
-_08093066:
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08093080
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- mov r8, r3
- b _08093088
- .align 2, 0
-_0809307C: .4byte 0xfffffe00
-_08093080:
- adds r1, 0x8
- adds r3, 0x1
- cmp r3, 0x7
- ble _08093066
-_08093088:
- mov r0, r8
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8093008
-
- thumb_func_start sub_809309C
-sub_809309C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08093110
- add sp, r4
- adds r7, r0, 0
- mov r8, r1
- lsls r0, r1, 3
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- mov r1, sp
- bl sub_80939D0
- mov r0, sp
- bl sub_8093934
- adds r3, r0, 0
- cmp r3, 0x6
- bhi _080930EA
- lsls r1, r3, 6
- adds r0, r3, 0x1
- lsls r0, 6
- mov r2, sp
- adds r5, r0, r2
- adds r4, r1, r2
- movs r6, 0x7
-_080930D8:
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r4!, {r0,r1}
- stm r5!, {r2,r3}
- subs r6, 0x1
- cmp r6, 0
- bge _080930D8
-_080930EA:
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093B40
- movs r3, 0
- movs r5, 0x80
- movs r4, 0x7F
- adds r1, r7, 0
-_080930FA:
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08093114
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- mov r8, r3
- b _0809311C
- .align 2, 0
-_08093110: .4byte 0xfffffe00
-_08093114:
- adds r1, 0x8
- adds r3, 0x1
- cmp r3, 0x7
- ble _080930FA
-_0809311C:
- mov r0, r8
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809309C
-
- thumb_func_start sub_8093130
-sub_8093130:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x80
- adds r7, r0, 0
- mov r8, r1
- lsls r0, r1, 3
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093784
- mov r0, sp
- bl sub_8093744
- adds r1, r0, 0
- subs r0, r1, 0x1
- cmp r0, 0x2
- bhi _0809317C
- lsls r1, 5
- lsls r0, 5
- mov r2, sp
- adds r5, r0, r2
- adds r4, r1, r2
- movs r6, 0x3
-_0809316A:
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r4!, {r0,r1}
- stm r5!, {r2,r3}
- subs r6, 0x1
- cmp r6, 0
- bge _0809316A
-_0809317C:
- adds r0, r7, 0
- mov r1, sp
- bl sub_80937E0
- movs r1, 0
- movs r5, 0x80
- movs r4, 0x7F
- adds r2, r7, 0
-_0809318C:
- ldrb r3, [r2]
- adds r0, r5, 0
- ands r0, r3
- cmp r0, 0
- beq _080931A0
- adds r0, r4, 0
- ands r0, r3
- strb r0, [r2]
- mov r8, r1
- b _080931A8
-_080931A0:
- adds r2, 0x8
- adds r1, 0x1
- cmp r1, 0x3
- ble _0809318C
-_080931A8:
- mov r0, r8
- add sp, 0x80
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8093130
-
- thumb_func_start sub_80931B8
-sub_80931B8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _0809322C
- add sp, r4
- adds r7, r0, 0
- mov r8, r1
- lsls r0, r1, 3
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093974
- mov r0, sp
- bl sub_80938F4
- adds r1, r0, 0
- subs r0, r1, 0x1
- cmp r0, 0x6
- bhi _08093206
- lsls r1, 6
- lsls r0, 6
- mov r2, sp
- adds r5, r0, r2
- adds r4, r1, r2
- movs r6, 0x7
-_080931F4:
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r4!, {r0,r1}
- stm r5!, {r2,r3}
- subs r6, 0x1
- cmp r6, 0
- bge _080931F4
-_08093206:
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093A2C
- movs r1, 0
- movs r5, 0x80
- movs r4, 0x7F
- adds r2, r7, 0
-_08093216:
- ldrb r3, [r2]
- adds r0, r5, 0
- ands r0, r3
- cmp r0, 0
- beq _08093230
- adds r0, r4, 0
- ands r0, r3
- strb r0, [r2]
- mov r8, r1
- b _08093238
- .align 2, 0
-_0809322C: .4byte 0xfffffe00
-_08093230:
- adds r2, 0x8
- adds r1, 0x1
- cmp r1, 0x7
- ble _08093216
-_08093238:
- mov r0, r8
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80931B8
-
- thumb_func_start sub_809324C
-sub_809324C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080932C0
- add sp, r4
- adds r7, r0, 0
- mov r8, r1
- lsls r0, r1, 3
- adds r0, r7, r0
- ldrb r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- mov r1, sp
- bl sub_80939D0
- mov r0, sp
- bl sub_8093934
- adds r1, r0, 0
- subs r0, r1, 0x1
- cmp r0, 0x6
- bhi _0809329A
- lsls r1, 6
- lsls r0, 6
- mov r2, sp
- adds r5, r0, r2
- adds r4, r1, r2
- movs r6, 0x7
-_08093288:
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r4!, {r0,r1}
- stm r5!, {r2,r3}
- subs r6, 0x1
- cmp r6, 0
- bge _08093288
-_0809329A:
- adds r0, r7, 0
- mov r1, sp
- bl sub_8093B40
- movs r1, 0
- movs r5, 0x80
- movs r4, 0x7F
- adds r2, r7, 0
-_080932AA:
- ldrb r3, [r2]
- adds r0, r5, 0
- ands r0, r3
- cmp r0, 0
- beq _080932C4
- adds r0, r4, 0
- ands r0, r3
- strb r0, [r2]
- mov r8, r1
- b _080932CC
- .align 2, 0
-_080932C0: .4byte 0xfffffe00
-_080932C4:
- adds r2, 0x8
- adds r1, 0x1
- cmp r1, 0x7
- ble _080932AA
-_080932CC:
- mov r0, r8
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809324C
-
- thumb_func_start sub_80932E0
-sub_80932E0:
- push {lr}
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080932F4
- movs r0, 0
- b _080932F6
-_080932F4:
- movs r0, 0x1
-_080932F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80932E0
-
- thumb_func_start sub_80932FC
-sub_80932FC:
- push {lr}
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08093310
- movs r0, 0
- b _08093312
-_08093310:
- movs r0, 0x1
-_08093312:
- pop {r1}
- bx r1
- thumb_func_end sub_80932FC
-
- thumb_func_start sub_8093318
-sub_8093318:
- push {r4,lr}
- sub sp, 0x40
- adds r4, r0, 0
- mov r0, sp
- movs r2, 0x40
- bl MemoryCopy8
- adds r0, r4, 0
- mov r1, sp
- bl sub_8093400
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x40
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093318
-
- thumb_func_start sub_809333C
-sub_809333C:
- push {r4,lr}
- sub sp, 0x40
- adds r4, r0, 0
- mov r0, sp
- movs r2, 0x40
- bl MemoryCopy8
- adds r0, r4, 0
- mov r1, sp
- bl sub_8093468
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x40
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809333C
-
- thumb_func_start sub_8093360
-sub_8093360:
- push {r4,lr}
- sub sp, 0x40
- adds r4, r0, 0
- mov r0, sp
- movs r2, 0x40
- bl MemoryCopy8
- adds r0, r4, 0
- mov r1, sp
- bl sub_80933D8
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x40
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8093360
-
- thumb_func_start sub_8093384
-sub_8093384:
- push {lr}
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08093398
- movs r0, 0x1
- b _0809339A
-_08093398:
- movs r0, 0
-_0809339A:
- pop {r1}
- bx r1
- thumb_func_end sub_8093384
-
- thumb_func_start sub_80933A0
-sub_80933A0:
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x1
- movs r5, 0x2
- movs r3, 0x7
-_080933AA:
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- beq _080933BE
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- bne _080933BE
- adds r4, 0x1
-_080933BE:
- adds r1, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _080933AA
- cmp r4, 0x1
- bgt _080933CE
- movs r0, 0
- b _080933D0
-_080933CE:
- movs r0, 0x1
-_080933D0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80933A0
-
- thumb_func_start sub_80933D8
-sub_80933D8:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8093400
- lsls r0, 24
- cmp r0, 0
- bne _080933F6
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8093468
- lsls r0, 24
- lsrs r0, 24
- b _080933F8
-_080933F6:
- movs r0, 0x1
-_080933F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80933D8
-
- thumb_func_start sub_8093400
-sub_8093400:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r7, r1, 0
- lsls r0, r4, 3
- adds r0, r7, r0
- ldrh r0, [r0, 0x2]
- bl sub_809422C
- lsls r0, 24
- cmp r0, 0
- beq _08093428
- b _08093460
-_08093418:
- adds r0, r1, 0
- orrs r0, r2
- strb r0, [r6]
- adds r0, r7, 0
- bl sub_809371C
- movs r0, 0x1
- b _08093462
-_08093428:
- adds r5, r4, 0x1
- cmp r5, 0x7
- bgt _08093460
- lsls r0, r5, 3
- adds r4, r0, r7
- adds r6, r4, 0
-_08093434:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093460
- ldrh r0, [r4, 0x2]
- bl sub_809422C
- lsls r0, 24
- cmp r0, 0
- bne _08093460
- ldrb r1, [r4]
- movs r2, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08093418
- adds r4, 0x8
- adds r6, 0x8
- adds r5, 0x1
- cmp r5, 0x7
- ble _08093434
-_08093460:
- movs r0, 0
-_08093462:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8093400
-
- thumb_func_start sub_8093468
-sub_8093468:
- push {r4-r7,lr}
- adds r6, r1, 0
- movs r5, 0
- adds r1, r0, 0x1
- movs r4, 0
- cmp r1, 0x7
- bgt _080934A0
- movs r0, 0x2
- mov r12, r0
- movs r7, 0xFD
- lsls r0, r1, 3
- adds r3, r0, r6
-_08093480:
- ldrb r2, [r3]
- mov r0, r12
- ands r0, r2
- cmp r0, 0
- beq _080934A0
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r3]
- movs r5, 0x1
- adds r3, 0x8
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x7
- bgt _080934A0
- cmp r1, 0x7
- ble _08093480
-_080934A0:
- adds r0, r6, 0
- bl sub_809371C
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8093468
-
- thumb_func_start sub_80934B0
-sub_80934B0:
- push {lr}
- adds r2, r0, 0
- adds r0, r2, 0x1
- cmp r0, 0x7
- bgt _080934D2
- lsls r0, r2, 3
- adds r0, 0x8
- adds r0, r1, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080934D2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080934D6
-_080934D2:
- movs r0, 0
- b _080934D8
-_080934D6:
- movs r0, 0x1
-_080934D8:
- pop {r1}
- bx r1
- thumb_func_end sub_80934B0
-
- thumb_func_start sub_80934DC
-sub_80934DC:
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 3
- adds r4, r5, r0
- ldrb r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080934F4
- movs r0, 0xF7
- ands r0, r1
- b _0809351A
-_080934F4:
- movs r7, 0x1
- movs r6, 0xF7
- adds r1, r5, 0
- movs r3, 0x3
-_080934FC:
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- beq _0809350C
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
-_0809350C:
- adds r1, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _080934FC
- ldrb r1, [r4]
- movs r0, 0x8
- orrs r0, r1
-_0809351A:
- strb r0, [r4]
- adds r0, r5, 0
- bl sub_809371C
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80934DC
-
- thumb_func_start sub_809352C
-sub_809352C:
- push {lr}
- lsls r0, 3
- adds r0, r1, r0
- ldrb r3, [r0]
- movs r2, 0xF7
- ands r2, r3
- strb r2, [r0]
- adds r0, r1, 0
- bl sub_809371C
- pop {r0}
- bx r0
- thumb_func_end sub_809352C
-
- thumb_func_start sub_8093544
-sub_8093544:
- push {lr}
- lsls r0, 3
- adds r0, r1, r0
- ldrb r2, [r0]
- movs r3, 0x4
- eors r2, r3
- strb r2, [r0]
- adds r0, r1, 0
- bl sub_809371C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8093544
-
- thumb_func_start sub_8093560
-sub_8093560:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- movs r5, 0x1
- lsls r0, r4, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x2]
- strh r0, [r2]
- movs r1, 0
- adds r0, r2, 0x2
- movs r3, 0x2
-_08093576:
- strh r1, [r0]
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08093576
- adds r4, 0x1
- adds r2, 0x2
- cmp r4, 0x7
- bgt _080935B0
- cmp r5, 0x3
- bgt _080935B0
- movs r7, 0x2
- lsls r0, r4, 3
- adds r3, r0, r6
-_08093592:
- ldrb r1, [r3]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080935B0
- ldrh r0, [r3, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- adds r5, 0x1
- adds r3, 0x8
- adds r4, 0x1
- cmp r4, 0x7
- bgt _080935B0
- cmp r5, 0x3
- ble _08093592
-_080935B0:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8093560
-
- thumb_func_start sub_80935B8
-sub_80935B8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0x63
- mov r12, r0
- movs r0, 0
- mov r8, r0
- movs r6, 0
- adds r4, r1, 0
- cmp r4, 0
- blt _08093606
- lsls r0, r4, 3
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093606
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08093606
- movs r7, 0x1
- movs r3, 0x2
-_080935EC:
- subs r2, 0x8
- subs r4, 0x1
- cmp r4, 0
- blt _08093606
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08093606
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080935EC
-_08093606:
- adds r2, r4, 0x1
- mov r9, r2
- cmp r2, 0x3
- bgt _08093642
- lsls r0, r2, 3
- adds r3, r5, r0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093642
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08093642
- movs r6, 0x1
- movs r7, 0x2
-_08093628:
- adds r3, 0x8
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08093642
- ldrb r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08093642
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08093628
-_08093642:
- cmp r6, 0
- bne _0809364A
- movs r0, 0x63
- b _080936CC
-_0809364A:
- movs r6, 0
- b _08093668
-_0809364E:
- ldrb r0, [r3, 0x4]
- cmp r12, r0
- ble _08093656
- mov r12, r0
-_08093656:
- cmp r0, 0
- bne _0809365C
- movs r6, 0x1
-_0809365C:
- ldrb r1, [r3, 0x1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08093668
- movs r6, 0x1
-_08093668:
- subs r2, 0x1
- cmp r2, r4
- blt _0809367C
- lsls r0, r2, 3
- adds r3, r5, r0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809364E
-_0809367C:
- cmp r6, 0
- beq _080936C6
- mov r2, r9
- cmp r2, 0x3
- bgt _080936C0
- lsls r0, r2, 3
- adds r3, r5, r0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080936C0
- movs r6, 0x2
- movs r4, 0xFD
-_08093698:
- ldrb r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080936C0
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x1
- mov r8, r0
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080936C0
- lsls r0, r2, 3
- adds r3, r5, r0
- ldrb r1, [r3]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- bne _08093698
-_080936C0:
- mov r0, r8
- cmp r0, 0
- bne _080936CA
-_080936C6:
- mov r0, r12
- b _080936CC
-_080936CA:
- movs r0, 0
-_080936CC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80935B8
-
- thumb_func_start sub_80936D8
-sub_80936D8:
- push {r4,lr}
- sub sp, 0x80
- adds r4, r0, 0
- mov r1, sp
- bl sub_8093784
- adds r0, r4, 0
- mov r1, sp
- bl sub_80937E0
- add sp, 0x80
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80936D8
-
- thumb_func_start sub_80936F4
-sub_80936F4:
- push {r4,lr}
- ldr r4, _08093718
- add sp, r4
- adds r4, r0, 0
- mov r1, sp
- bl sub_8093974
- adds r0, r4, 0
- mov r1, sp
- bl sub_8093A2C
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093718: .4byte 0xfffffe00
- thumb_func_end sub_80936F4
-
- thumb_func_start sub_809371C
-sub_809371C:
- push {r4,lr}
- ldr r4, _08093740
- add sp, r4
- adds r4, r0, 0
- mov r1, sp
- bl sub_80939D0
- adds r0, r4, 0
- mov r1, sp
- bl sub_8093B40
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08093740: .4byte 0xfffffe00
- thumb_func_end sub_809371C
-
- thumb_func_start sub_8093744
-sub_8093744:
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r4, 0
- movs r6, 0x1
- movs r5, 0x80
-_0809374E:
- movs r3, 0
- lsls r0, r4, 5
- adds r2, r0, r7
-_08093754:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0809376A
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0809376A
- adds r0, r4, 0
- b _0809377C
-_0809376A:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x3
- ble _08093754
- adds r4, 0x1
- cmp r4, 0x3
- ble _0809374E
- movs r0, 0x1
- negs r0, r0
-_0809377C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8093744
-
- thumb_func_start sub_8093784
-sub_8093784:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r2, 0
- movs r4, 0
-_0809378C:
- lsls r0, r2, 5
- adds r2, 0x1
- movs r3, 0x3
- adds r0, r1
- adds r0, 0x18
-_08093796:
- strb r4, [r0]
- subs r0, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _08093796
- cmp r2, 0x3
- ble _0809378C
- movs r3, 0
- movs r5, 0
- adds r4, r1, 0
- subs r4, 0x20
- movs r7, 0x2
-_080937AE:
- cmp r5, 0
- beq _080937BC
- ldrb r1, [r6]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080937C0
-_080937BC:
- adds r4, 0x20
- movs r3, 0
-_080937C0:
- lsls r2, r3, 3
- adds r2, r4
- ldm r6!, {r0,r1}
- str r0, [r2]
- str r1, [r2, 0x4]
- ldrb r1, [r2]
- movs r0, 0xFD
- ands r0, r1
- strb r0, [r2]
- adds r3, 0x1
- adds r5, 0x1
- cmp r5, 0x3
- ble _080937AE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093784
-
- thumb_func_start sub_80937E0
-sub_80937E0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r0, [sp, 0x8]
- mov r9, r1
- movs r0, 0
- mov r8, r0
- movs r6, 0
- add r1, sp, 0x4
- mov r10, r1
- mov r12, r6
- movs r3, 0x1
-_080937FE:
- mov r2, sp
- adds r0, r2, r6
- mov r7, r12
- strb r7, [r0]
- mov r1, sp
- adds r1, r6
- adds r1, 0x4
- mov r2, r12
- strb r2, [r1]
- adds r7, r0, 0
- lsls r0, r6, 5
- adds r6, 0x1
- adds r5, r1, 0
- mov r1, r9
- adds r2, r0, r1
- movs r4, 0x3
-_0809381E:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0809383E
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08093832
- strb r3, [r7]
-_08093832:
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809383E
- strb r3, [r5]
-_0809383E:
- adds r2, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _0809381E
- cmp r6, 0x3
- ble _080937FE
- movs r6, 0
- mov r2, r8
- lsls r2, 3
- str r2, [sp, 0xC]
-_08093852:
- movs r4, 0
- lsls r0, r6, 5
- mov r7, r9
- adds r5, r0, r7
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x8]
- adds r2, r0, r1
- mov r7, r10
- adds r7, r6
- mov r12, r7
-_08093866:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080938D6
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- cmp r4, 0
- bne _08093884
- ldrb r1, [r2]
- movs r0, 0xFD
- ands r0, r1
- b _0809388A
-_08093884:
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
-_0809388A:
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0xF7
- ands r3, r0
- movs r1, 0
- movs r0, 0xFB
- ands r3, r0
- strb r3, [r2]
- mov r7, sp
- adds r0, r7, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _080938B0
- cmp r4, 0
- bne _080938B0
- movs r1, 0x8
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
-_080938B0:
- mov r1, r12
- ldrb r0, [r1]
- cmp r0, 0
- beq _080938C4
- cmp r4, 0
- bne _080938C4
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080938C4:
- adds r2, 0x8
- ldr r7, [sp, 0xC]
- adds r7, 0x8
- str r7, [sp, 0xC]
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x4
- beq _080938E4
-_080938D6:
- adds r5, 0x8
- adds r4, 0x1
- cmp r4, 0x3
- ble _08093866
- adds r6, 0x1
- cmp r6, 0x3
- ble _08093852
-_080938E4:
- 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_80937E0
-
- thumb_func_start sub_80938F4
-sub_80938F4:
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r4, 0
- movs r6, 0x1
- movs r5, 0x80
-_080938FE:
- movs r3, 0
- lsls r0, r4, 6
- adds r2, r0, r7
-_08093904:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0809391A
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0809391A
- adds r0, r4, 0
- b _0809392C
-_0809391A:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x7
- ble _08093904
- adds r4, 0x1
- cmp r4, 0x7
- ble _080938FE
- movs r0, 0x1
- negs r0, r0
-_0809392C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80938F4
-
- thumb_func_start sub_8093934
-sub_8093934:
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r4, 0
- movs r6, 0x1
- movs r5, 0x80
-_0809393E:
- movs r3, 0
- lsls r0, r4, 6
- adds r2, r0, r7
-_08093944:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0809395A
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0809395A
- adds r0, r4, 0
- b _0809396C
-_0809395A:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x7
- ble _08093944
- adds r4, 0x1
- cmp r4, 0x7
- ble _0809393E
- movs r0, 0x1
- negs r0, r0
-_0809396C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8093934
-
- thumb_func_start sub_8093974
-sub_8093974:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r2, 0
- movs r4, 0
-_0809397C:
- lsls r0, r2, 6
- adds r2, 0x1
- movs r3, 0x7
- adds r0, r1
- adds r0, 0x38
-_08093986:
- strb r4, [r0]
- subs r0, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _08093986
- cmp r2, 0x7
- ble _0809397C
- movs r3, 0
- movs r5, 0
- adds r4, r1, 0
- subs r4, 0x40
- movs r7, 0x2
-_0809399E:
- cmp r5, 0
- beq _080939AC
- ldrb r1, [r6]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080939B0
-_080939AC:
- adds r4, 0x40
- movs r3, 0
-_080939B0:
- lsls r2, r3, 3
- adds r2, r4
- ldm r6!, {r0,r1}
- str r0, [r2]
- str r1, [r2, 0x4]
- ldrb r1, [r2]
- movs r0, 0xFD
- ands r0, r1
- strb r0, [r2]
- adds r3, 0x1
- adds r5, 0x1
- cmp r5, 0x7
- ble _0809399E
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093974
-
- thumb_func_start sub_80939D0
-sub_80939D0:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r2, 0
- movs r4, 0
-_080939D8:
- lsls r0, r2, 6
- adds r2, 0x1
- movs r3, 0x7
- adds r0, r1
- adds r0, 0x38
-_080939E2:
- strb r4, [r0]
- subs r0, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _080939E2
- cmp r2, 0x7
- ble _080939D8
- movs r3, 0
- movs r5, 0
- adds r4, r1, 0
- subs r4, 0x40
- movs r7, 0x2
-_080939FA:
- cmp r5, 0
- beq _08093A08
- ldrb r1, [r6]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08093A0C
-_08093A08:
- adds r4, 0x40
- movs r3, 0
-_08093A0C:
- lsls r2, r3, 3
- adds r2, r4
- ldm r6!, {r0,r1}
- str r0, [r2]
- str r1, [r2, 0x4]
- ldrb r1, [r2]
- movs r0, 0xFD
- ands r0, r1
- strb r0, [r2]
- adds r3, 0x1
- adds r5, 0x1
- cmp r5, 0x7
- ble _080939FA
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80939D0
-
- thumb_func_start sub_8093A2C
-sub_8093A2C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- str r0, [sp, 0x10]
- mov r9, r1
- movs r0, 0
- mov r8, r0
- movs r6, 0
- add r1, sp, 0x8
- mov r10, r1
- mov r12, r6
- movs r3, 0x1
-_08093A4A:
- mov r2, sp
- adds r0, r2, r6
- mov r7, r12
- strb r7, [r0]
- mov r1, sp
- adds r1, r6
- adds r1, 0x8
- mov r2, r12
- strb r2, [r1]
- adds r7, r0, 0
- lsls r0, r6, 6
- adds r6, 0x1
- adds r5, r1, 0
- mov r1, r9
- adds r2, r0, r1
- movs r4, 0x7
-_08093A6A:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08093A8A
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08093A7E
- strb r3, [r7]
-_08093A7E:
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08093A8A
- strb r3, [r5]
-_08093A8A:
- adds r2, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _08093A6A
- cmp r6, 0x7
- ble _08093A4A
- movs r6, 0
- mov r2, r8
- lsls r2, 3
- str r2, [sp, 0x14]
-_08093A9E:
- movs r4, 0
- lsls r0, r6, 6
- mov r7, r9
- adds r5, r0, r7
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0x10]
- adds r2, r0, r1
- mov r7, r10
- adds r7, r6
- mov r12, r7
-_08093AB2:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093B22
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- cmp r4, 0
- bne _08093AD0
- ldrb r1, [r2]
- movs r0, 0xFD
- ands r0, r1
- b _08093AD6
-_08093AD0:
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
-_08093AD6:
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0xF7
- ands r3, r0
- movs r1, 0
- movs r0, 0xFB
- ands r3, r0
- strb r3, [r2]
- mov r7, sp
- adds r0, r7, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08093AFC
- cmp r4, 0
- bne _08093AFC
- movs r1, 0x8
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
-_08093AFC:
- mov r1, r12
- ldrb r0, [r1]
- cmp r0, 0
- beq _08093B10
- cmp r4, 0
- bne _08093B10
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08093B10:
- adds r2, 0x8
- ldr r7, [sp, 0x14]
- adds r7, 0x8
- str r7, [sp, 0x14]
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x8
- beq _08093B30
-_08093B22:
- adds r5, 0x8
- adds r4, 0x1
- cmp r4, 0x7
- ble _08093AB2
- adds r6, 0x1
- cmp r6, 0x7
- ble _08093A9E
-_08093B30:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093A2C
-
- thumb_func_start sub_8093B40
-sub_8093B40:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- str r0, [sp, 0x10]
- mov r9, r1
- movs r0, 0
- mov r8, r0
- movs r6, 0
- add r1, sp, 0x8
- mov r10, r1
- mov r12, r6
- movs r3, 0x1
-_08093B5E:
- mov r2, sp
- adds r0, r2, r6
- mov r7, r12
- strb r7, [r0]
- mov r1, sp
- adds r1, r6
- adds r1, 0x8
- mov r2, r12
- strb r2, [r1]
- adds r7, r0, 0
- lsls r0, r6, 6
- adds r6, 0x1
- adds r5, r1, 0
- mov r1, r9
- adds r2, r0, r1
- movs r4, 0x7
-_08093B7E:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08093B9E
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08093B92
- strb r3, [r7]
-_08093B92:
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08093B9E
- strb r3, [r5]
-_08093B9E:
- adds r2, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _08093B7E
- cmp r6, 0x7
- ble _08093B5E
- movs r6, 0
- mov r2, r8
- lsls r2, 3
- str r2, [sp, 0x14]
-_08093BB2:
- movs r4, 0
- lsls r0, r6, 6
- mov r7, r9
- adds r5, r0, r7
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0x10]
- adds r2, r0, r1
- mov r7, r10
- adds r7, r6
- mov r12, r7
-_08093BC6:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093C36
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- cmp r4, 0
- bne _08093BE4
- ldrb r1, [r2]
- movs r0, 0xFD
- ands r0, r1
- b _08093BEA
-_08093BE4:
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
-_08093BEA:
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0xF7
- ands r3, r0
- movs r1, 0
- movs r0, 0xFB
- ands r3, r0
- strb r3, [r2]
- mov r7, sp
- adds r0, r7, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08093C10
- cmp r4, 0
- bne _08093C10
- movs r1, 0x8
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
-_08093C10:
- mov r1, r12
- ldrb r0, [r1]
- cmp r0, 0
- beq _08093C24
- cmp r4, 0
- bne _08093C24
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08093C24:
- adds r2, 0x8
- ldr r7, [sp, 0x14]
- adds r7, 0x8
- str r7, [sp, 0x14]
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x8
- beq _08093C44
-_08093C36:
- adds r5, 0x8
- adds r4, 0x1
- cmp r4, 0x7
- ble _08093BC6
- adds r6, 0x1
- cmp r6, 0x7
- ble _08093BB2
-_08093C44:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093B40
-
- thumb_func_start sub_8093C54
-sub_8093C54:
- push {r4-r7,lr}
- sub sp, 0x40
- adds r6, r0, 0
- lsls r0, r1, 3
- adds r0, r6
- movs r2, 0
- strb r2, [r0]
- adds r3, r1, 0x1
- cmp r3, 0x7
- bgt _08093CA6
- lsls r0, r3, 3
- adds r4, r6, r0
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093CA6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08093CA6
- mov r12, r2
- movs r7, 0x1
- adds r2, r4, 0
- movs r5, 0x2
-_08093C86:
- mov r0, r12
- strb r0, [r4]
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x7
- bgt _08093CA6
- adds r4, r2, 0
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08093CA6
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08093C86
-_08093CA6:
- movs r4, 0
- movs r7, 0x1
- adds r2, r6, 0
- mov r5, sp
- movs r3, 0x7
-_08093CB0:
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08093CC2
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- stm r5!, {r0,r1}
- adds r4, 0x1
-_08093CC2:
- adds r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _08093CB0
- cmp r4, 0x7
- bgt _08093CDE
- movs r1, 0
- lsls r0, r4, 3
- add r0, sp
-_08093CD4:
- strb r1, [r0]
- adds r0, 0x8
- adds r4, 0x1
- cmp r4, 0x7
- ble _08093CD4
-_08093CDE:
- mov r4, sp
- adds r2, r6, 0
- movs r3, 0x7
-_08093CE4:
- ldm r4!, {r0,r1}
- stm r2!, {r0,r1}
- subs r3, 0x1
- cmp r3, 0
- bge _08093CE4
- add sp, 0x40
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093C54
-
- thumb_func_start sub_8093CF8
-sub_8093CF8:
- push {r4-r7,lr}
- sub sp, 0x40
- adds r6, r0, 0
- lsls r0, r1, 3
- adds r0, r6
- movs r2, 0
- strb r2, [r0]
- adds r3, r1, 0x1
- cmp r3, 0x7
- bgt _08093D4A
- lsls r0, r3, 3
- adds r4, r6, r0
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093D4A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08093D4A
- mov r12, r2
- movs r7, 0x1
- adds r2, r4, 0
- movs r5, 0x2
-_08093D2A:
- mov r0, r12
- strb r0, [r4]
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x7
- bgt _08093D4A
- adds r4, r2, 0
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08093D4A
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08093D2A
-_08093D4A:
- movs r4, 0
- movs r7, 0x1
- adds r2, r6, 0
- mov r5, sp
- movs r3, 0x7
-_08093D54:
- ldrb r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08093D66
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- stm r5!, {r0,r1}
- adds r4, 0x1
-_08093D66:
- adds r2, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _08093D54
- cmp r4, 0x7
- bgt _08093D82
- movs r1, 0
- lsls r0, r4, 3
- add r0, sp
-_08093D78:
- strb r1, [r0]
- adds r0, 0x8
- adds r4, 0x1
- cmp r4, 0x7
- ble _08093D78
-_08093D82:
- mov r4, sp
- adds r2, r6, 0
- movs r3, 0x7
-_08093D88:
- ldm r4!, {r0,r1}
- stm r2!, {r0,r1}
- subs r3, 0x1
- cmp r3, 0
- bge _08093D88
- add sp, 0x40
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093CF8
-
- thumb_func_start sub_8093D9C
-sub_8093D9C:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- bl sub_8092A88
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8093DE8
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8093D9C
-
- thumb_func_start sub_8093DC4
-sub_8093DC4:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- mov r0, sp
- bl sub_8093F10
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8093DE8
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8093DC4
-
- thumb_func_start sub_8093DE8
-sub_8093DE8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08093E80
- add sp, r4
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- mov r8, r3
- adds r0, r5, 0
- bl sub_80073B8
- ldr r0, _08093E84
- adds r1, r6, 0
- movs r2, 0
- bl sub_80928C0
- lsls r4, 3
- adds r4, 0x10
- ldr r2, _08093E88
- movs r7, 0
- str r7, [sp]
- adds r0, r4, 0
- movs r1, 0
- adds r3, r5, 0
- bl sub_8014FF0
- movs r3, 0x13
- ldrh r1, [r6, 0x2]
- ldr r4, _08093E8C
- ldr r2, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0, 0x1C]
- ldrb r0, [r2]
- cmp r0, 0x2A
- bne _08093E3A
- movs r3, 0x10
- adds r2, 0x1
-_08093E3A:
- str r7, [sp]
- movs r0, 0x4
- adds r1, r3, 0
- adds r3, r5, 0
- bl sub_8014FF0
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8093E90
- adds r0, r5, 0
- bl sub_80073E0
- ldrh r1, [r6, 0x2]
- ldr r2, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0, 0x1C]
- add r0, sp, 0x4
- bl strcpy
- add r0, sp, 0x4
- mov r1, r8
- bl sub_8097DF0
- movs r3, 0xC9
- lsls r3, 2
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08093E80: .4byte 0xfffffcdc
-_08093E84: .4byte gUnknown_202DF98
-_08093E88: .4byte gUnknown_8109930
-_08093E8C: .4byte gUnknown_2038C68
- thumb_func_end sub_8093DE8
-
- thumb_func_start sub_8093E90
-sub_8093E90:
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- movs r0, 0x7
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x48
- movs r3, 0xC8
- bl sub_80078A4
- ldr r0, _08093F00
- adds r1, r6, 0
- bl sub_8092D54
- ldr r0, _08093F04
- ldr r2, [r0]
- movs r4, 0
- str r4, [sp]
- movs r0, 0x4
- movs r1, 0x4A
- adds r3, r5, 0
- bl sub_8014FF0
- ldr r0, _08093F08
- ldr r2, [r0]
- str r4, [sp]
- movs r0, 0x4
- movs r1, 0x56
- adds r3, r5, 0
- bl sub_8014FF0
- adds r0, r6, 0
- bl sub_8092B00
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092334
- adds r2, r0, 0
- str r4, [sp]
- movs r0, 0x40
- movs r1, 0x56
- adds r3, r5, 0
- bl sub_8014FF0
- adds r0, r6, 0
- bl sub_8092BC0
- ldr r1, _08093F0C
- str r0, [r1]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08093F00: .4byte gUnknown_202DF98
-_08093F04: .4byte gUnknown_810CF00
-_08093F08: .4byte gUnknown_810CF0C
-_08093F0C: .4byte gUnknown_202DE30
- thumb_func_end sub_8093E90
-
- thumb_func_start sub_8093F10
-sub_8093F10:
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093F48
- movs r0, 0
- strb r1, [r3]
- strb r0, [r3, 0x1]
- ldrh r0, [r4, 0x2]
- strh r0, [r3, 0x2]
- ldrh r1, [r4, 0x2]
- ldr r0, _08093F44
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xC]
- strb r0, [r3, 0x4]
- ldrb r0, [r4, 0x4]
- strb r0, [r3, 0x5]
- b _08093F4A
- .align 2, 0
-_08093F44: .4byte gUnknown_2038C68
-_08093F48:
- strb r0, [r3]
-_08093F4A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8093F10
-
- thumb_func_start sub_8093F50
-sub_8093F50:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- adds r3, r6, 0
- adds r4, r1, 0
- movs r5, 0x3
-_08093F5C:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08093F8C
- strb r1, [r3]
- strb r7, [r3, 0x1]
- ldrh r0, [r4, 0x2]
- strh r0, [r3, 0x2]
- ldrh r1, [r4, 0x2]
- ldr r0, _08093F88
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xC]
- strb r0, [r3, 0x4]
- ldrb r0, [r4, 0x4]
- strb r0, [r3, 0x5]
- b _08093F8E
- .align 2, 0
-_08093F88: .4byte gUnknown_2038C68
-_08093F8C:
- strb r0, [r3]
-_08093F8E:
- adds r3, 0x8
- adds r4, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _08093F5C
- adds r1, r6, 0
- adds r1, 0x20
- movs r0, 0
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093F50
-
- thumb_func_start sub_8093FA8
-sub_8093FA8:
- push {lr}
- adds r2, r0, 0
- movs r3, 0x3
-_08093FAE:
- ldrb r0, [r1]
- strb r0, [r2]
- ldrh r0, [r1, 0x2]
- strh r0, [r2, 0x2]
- ldrb r0, [r1, 0x5]
- strb r0, [r2, 0x4]
- adds r2, 0x8
- adds r1, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _08093FAE
- pop {r0}
- bx r0
- thumb_func_end sub_8093FA8
-
- thumb_func_start sub_8093FC8
-sub_8093FC8:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r2, r1, 0
- movs r3, 0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08094002
- movs r7, 0xFB
- movs r6, 0x1
- adds r4, r2, 0
- adds r2, r5, 0
-_08093FE2:
- ldm r4!, {r0,r1}
- str r0, [r2]
- str r1, [r2, 0x4]
- ldrb r1, [r2, 0x1]
- adds r0, r7, 0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08094002
- ldrb r1, [r4]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08093FE2
-_08094002:
- cmp r3, 0x7
- bgt _08094016
- movs r1, 0
- lsls r0, r3, 3
- adds r0, r5
-_0809400C:
- strb r1, [r0]
- adds r0, 0x8
- adds r3, 0x1
- cmp r3, 0x7
- ble _0809400C
-_08094016:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8093FC8
-
- thumb_func_start sub_809401C
-sub_809401C:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r3, r1, 0
- movs r2, 0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08094046
- movs r6, 0x1
- adds r4, r5, 0
-_08094032:
- ldm r3!, {r0,r1}
- stm r4!, {r0,r1}
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08094046
- ldrb r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08094032
-_08094046:
- cmp r2, 0x7
- bgt _0809405A
- movs r1, 0
- lsls r0, r2, 3
- adds r0, r5
-_08094050:
- strb r1, [r0]
- adds r0, 0x8
- adds r2, 0x1
- cmp r2, 0x7
- ble _08094050
-_0809405A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809401C
-
- thumb_func_start sub_8094060
-sub_8094060:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- movs r4, 0
- movs r5, 0
- adds r3, r6, 0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08094084
-_08094076:
- lsls r2, r4, 3
- adds r2, r7, r2
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- adds r4, 0x1
-_08094084:
- adds r5, 0x1
- cmp r5, 0x7
- bgt _0809409C
- lsls r0, r5, 3
- adds r3, r6, r0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08094084
- cmp r4, 0x3
- ble _08094076
-_0809409C:
- cmp r4, 0x3
- bgt _080940B0
- movs r1, 0
- lsls r0, r4, 3
- adds r0, r7
-_080940A6:
- strb r1, [r0]
- adds r0, 0x8
- adds r4, 0x1
- cmp r4, 0x3
- ble _080940A6
-_080940B0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8094060
-
- thumb_func_start sub_80940B8
-sub_80940B8:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0x2
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_809488C
- adds r5, 0x4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80940B8
-
- thumb_func_start sub_80940E0
-sub_80940E0:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0x2
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_8094924
- adds r5, 0x4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80940E0
-
- thumb_func_start sub_8094108
-sub_8094108:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r5, 0x3
-_08094110:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80940B8
- adds r4, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _08094110
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8094108
-
- thumb_func_start sub_8094128
-sub_8094128:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r5, 0x3
-_08094130:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80940E0
- adds r4, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _08094130
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8094128
-
- thumb_func_start sub_8094148
-sub_8094148:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r4, 0x1
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_809488C
- adds r1, r4, 0x2
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_809488C
- adds r1, r4, 0x4
- adds r0, r5, 0
- movs r2, 0x7
- bl sub_809488C
- adds r4, 0x5
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8094148
-
- thumb_func_start sub_8094184
-sub_8094184:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- adds r4, r7, 0
- movs r5, 0x3
-_0809418E:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8094148
- adds r4, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _0809418E
- adds r1, r7, 0
- adds r1, 0x20
- adds r0, r6, 0
- movs r2, 0x8
- bl sub_809488C
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8094184
-
- thumb_func_start sub_80941B0
-sub_80941B0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r4, 0x1
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8094924
- adds r1, r4, 0x2
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_8094924
- adds r1, r4, 0x4
- adds r0, r5, 0
- movs r2, 0x7
- bl sub_8094924
- adds r4, 0x5
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80941B0
-
- thumb_func_start sub_80941FC
-sub_80941FC:
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- adds r4, r7, 0
- movs r5, 0x3
-_08094206:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80941B0
- adds r4, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _08094206
- adds r1, r7, 0
- adds r1, 0x20
- movs r0, 0
- strb r0, [r1]
- adds r0, r6, 0
- movs r2, 0x8
- bl sub_8094924
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80941FC
-
- thumb_func_start sub_809422C
-sub_809422C:
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- cmp r1, 0x97
- beq _08094260
- cmp r1, 0x64
- beq _08094260
- cmp r1, 0x3C
- beq _08094260
- cmp r1, 0x4B
- beq _08094260
- movs r0, 0xAE
- lsls r0, 1
- cmp r1, r0
- beq _08094260
- cmp r1, 0x99
- beq _08094260
- cmp r1, 0xCD
- beq _08094260
- cmp r1, 0x9C
- beq _08094260
- cmp r2, 0x8
- beq _08094260
- movs r0, 0
- b _08094262
-_08094260:
- movs r0, 0x1
-_08094262:
- pop {r1}
- bx r1
- thumb_func_end sub_809422C
-
- thumb_func_start sub_8094268
-sub_8094268:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r3, r1, 0
- asrs r0, r3, 16
- asrs r1, r2, 16
- adds r0, r1
- lsls r0, 16
- ldr r6, _080942B0
- ands r3, r6
- orrs r3, r0
- adds r2, r3, r2
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080942B4
- ands r3, r4
- orrs r3, r2
- asrs r1, r3, 16
- ldr r0, _080942B8
- cmp r1, r0
- ble _080942A6
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- ands r3, r4
- orrs r3, r0
- asrs r0, r3, 16
- ldr r1, _080942BC
- adds r0, r1
- lsls r0, 16
- ands r3, r6
- orrs r3, r0
-_080942A6:
- str r3, [r5]
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080942B0: .4byte 0x0000ffff
-_080942B4: .4byte 0xffff0000
-_080942B8: .4byte 0x000003e7
-_080942BC: .4byte 0xfffffc18
- thumb_func_end sub_8094268
-
- thumb_func_start sub_80942C0
-sub_80942C0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r3, r1, 0
- asrs r0, r3, 16
- asrs r1, r2, 16
- subs r0, r1
- lsls r0, 16
- ldr r4, _08094310
- ands r3, r4
- orrs r3, r0
- subs r2, r3, r2
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _08094314
- ands r3, r1
- orrs r3, r2
- cmp r3, 0
- bge _080942FC
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- ands r3, r1
- orrs r3, r0
- asrs r0, r3, 16
- movs r2, 0xFA
- lsls r2, 2
- adds r0, r2
- lsls r0, 16
- ands r3, r4
- orrs r3, r0
-_080942FC:
- lsls r0, r3, 16
- cmp r0, 0
- bge _08094304
- movs r3, 0
-_08094304:
- str r3, [r5]
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08094310: .4byte 0x0000ffff
-_08094314: .4byte 0xffff0000
- thumb_func_end sub_80942C0
-
- thumb_func_start sub_8094318
-sub_8094318:
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- lsls r0, r3, 16
- asrs r1, r0, 16
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- bgt _08094336
- cmp r1, r0
- blt _0809433A
- asrs r1, r3, 16
- asrs r0, r2, 16
- cmp r1, r0
- ble _0809433A
-_08094336:
- str r2, [r4]
- b _0809433C
-_0809433A:
- str r3, [r4]
-_0809433C:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094318
-
- thumb_func_start sub_8094344
-sub_8094344:
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- lsls r0, r3, 16
- asrs r1, r0, 16
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- bgt _08094362
- cmp r1, r0
- blt _08094366
- asrs r1, r3, 16
- asrs r0, r2, 16
- cmp r1, r0
- ble _08094366
-_08094362:
- str r3, [r4]
- b _08094368
-_08094366:
- str r2, [r4]
-_08094368:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8094344
-
- thumb_func_start sub_8094370
-sub_8094370:
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsls r2, 16
- ldr r4, _08094398
- lsrs r3, r1, 16
- orrs r3, r2
- asrs r2, 16
- ldr r1, _0809439C
- asrs r0, r1, 16
- cmp r2, r0
- ble _0809438C
- ands r3, r4
- orrs r3, r1
-_0809438C:
- str r3, [r5]
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08094398: .4byte 0x0000ffff
-_0809439C: .4byte 0x03e70000
- thumb_func_end sub_8094370
-
- thumb_func_start sub_80943A0
-sub_80943A0:
- lsls r1, 16
- lsrs r2, r1, 16
- str r2, [r0]
- bx lr
- thumb_func_end sub_80943A0
-
- thumb_func_start sub_80943A8
-sub_80943A8:
- push {r4,r5,lr}
- ldr r3, [r1, 0x4]
- lsrs r2, r3, 16
- ldr r1, _080943D4
- ands r5, r1
- orrs r5, r2
- ldr r4, _080943D8
- adds r2, r4, 0
- ands r2, r3
- lsls r1, r2, 5
- subs r1, r2
- lsls r1, 2
- adds r1, r2
- lsls r1, 3
- lsrs r1, 16
- lsls r1, 16
- ands r5, r4
- orrs r5, r1
- str r5, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080943D4: .4byte 0xffff0000
-_080943D8: .4byte 0x0000ffff
- thumb_func_end sub_80943A8
-
- thumb_func_start sub_80943DC
-sub_80943DC:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- lsls r1, r4, 16
- asrs r1, 16
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- asrs r1, r4, 16
- adds r0, r1
- lsls r3, r2, 16
- asrs r3, 16
- lsls r1, r3, 5
- subs r1, r3
- lsls r1, 2
- adds r1, r3
- lsls r1, 3
- asrs r2, 16
- adds r1, r2
- muls r0, r1
- movs r5, 0xFA
- lsls r5, 2
- adds r1, r5, 0
- bl __divsi3
- adds r6, r0, 0
- adds r1, r5, 0
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08094448
- ands r4, r1
- orrs r4, r0
- adds r0, r6, 0
- adds r1, r5, 0
- bl __modsi3
- lsls r0, 16
- ldr r1, _0809444C
- ands r1, r4
- orrs r0, r1
- mov r1, r8
- str r0, [r1]
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08094448: .4byte 0xffff0000
-_0809444C: .4byte 0x0000ffff
- thumb_func_end sub_80943DC
-
- thumb_func_start sub_8094450
-sub_8094450:
- push {lr}
- adds r1, r0, 0
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _0809446A
- asrs r0, r1, 16
- cmp r0, 0
- bne _08094466
- movs r0, 0
- b _08094476
-_08094466:
- movs r0, 0x1
- b _08094476
-_0809446A:
- asrs r0, r1, 16
- cmp r0, 0
- bne _08094474
- adds r0, r2, 0
- b _08094476
-_08094474:
- adds r0, r2, 0x1
-_08094476:
- pop {r1}
- bx r1
- thumb_func_end sub_8094450
-
- thumb_func_start sub_809447C
-sub_809447C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x10
- bl sub_8094924
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x10
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809447C
-
- thumb_func_start sub_809449C
-sub_809449C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x10
- bl sub_809488C
- adds r4, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x10
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809449C
-
- thumb_func_start sub_80944BC
-sub_80944BC:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r1, 0
- lsls r0, 16
- asrs r1, r0, 16
- ldr r0, _080944F4
- cmp r1, r0
- bgt _08094500
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- bl sub_8092AA8
- ldr r0, _080944F8
- mov r1, sp
- movs r2, 0
- bl sub_80928C0
- ldr r0, _080944FC
- ldr r0, [r0]
- adds r2, r4, 0
- adds r2, 0xC8
- adds r1, r4, 0
- movs r3, 0
- bl xxx_format_string
- b _08094516
- .align 2, 0
-_080944F4: .4byte 0x000001f3
-_080944F8: .4byte gUnknown_202DE58
-_080944FC: .4byte gUnknown_811383C
-_08094500:
- ldr r0, _08094520
- ldr r2, _08094524
- adds r1, r2
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- movs r2, 0xC8
- bl strncpy
-_08094516:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094520: .4byte gUnknown_8113080
-_08094524: .4byte 0xfffffe0c
- thumb_func_end sub_80944BC
-
- thumb_func_start sub_8094528
-sub_8094528:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- ldr r0, _08094544
- cmp r1, r0
- ble _08094550
- ldr r0, _08094548
- ldr r2, _0809454C
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1]
- b _08094552
- .align 2, 0
-_08094544: .4byte 0x000001f3
-_08094548: .4byte gUnknown_8113080
-_0809454C: .4byte 0xfffffe0c
-_08094550:
- movs r0, 0x1
-_08094552:
- pop {r1}
- bx r1
- thumb_func_end sub_8094528
-
- thumb_func_start sub_8094558
-sub_8094558:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xCC
- adds r7, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- bl sub_80073B8
- movs r5, 0
- str r5, [sp]
- movs r0, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl sub_8014FF0
- ldr r4, _080945D0
- adds r1, r6, 0
- adds r1, 0x18
- adds r0, r4, 0
- bl sub_8090208
- ldr r0, _080945D4
- ldr r2, [r0]
- str r5, [sp]
- movs r0, 0x4
- movs r1, 0x10
- adds r3, r7, 0
- bl sub_8014FF0
- movs r5, 0x1A
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0xA
- bl sub_80922B4
- adds r4, 0x50
- adds r1, r6, 0
- adds r1, 0xA
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_80922B4
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- bl sub_8094528
- lsls r0, 24
- cmp r0, 0
- beq _080945DC
- ldr r0, _080945D8
- ldr r0, [r0]
- add r2, sp, 0xCC
- add r1, sp, 0x4
- movs r3, 0
- bl xxx_format_string
- b _080945EA
- .align 2, 0
-_080945D0: .4byte gUnknown_202DF98
-_080945D4: .4byte gUnknown_8113850
-_080945D8: .4byte gUnknown_8113868
-_080945DC:
- ldr r0, _0809465C
- ldr r0, [r0]
- add r2, sp, 0xCC
- add r1, sp, 0x4
- movs r3, 0
- bl xxx_format_string
-_080945EA:
- add r0, sp, 0x4
- bl sub_8008ED0
- movs r4, 0xB0
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0
- mov r8, r1
- str r1, [sp]
- adds r1, r5, 0
- add r2, sp, 0x4
- adds r3, r7, 0
- bl sub_8014FF0
- adds r5, 0xA
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- add r1, sp, 0x4
- bl sub_80944BC
- add r0, sp, 0x4
- bl sub_8008ED0
- subs r4, r0
- lsrs r0, r4, 31
- adds r4, r0
- asrs r0, r4, 1
- mov r1, r8
- str r1, [sp]
- adds r1, r5, 0
- add r2, sp, 0x4
- adds r3, r7, 0
- bl sub_8014FF0
- adds r5, 0x10
- ldr r1, _08094660
- ldr r0, [r6, 0x20]
- str r0, [r1]
- adds r0, r6, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- str r0, [r1, 0x4]
- cmp r0, 0x63
- ble _08094668
- ldr r0, _08094664
- ldr r2, [r0]
- mov r0, r8
- str r0, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
- b _0809467A
- .align 2, 0
-_0809465C: .4byte gUnknown_8113870
-_08094660: .4byte gUnknown_202DE30
-_08094664: .4byte gUnknown_81138C0
-_08094668:
- ldr r0, _080946CC
- ldr r2, [r0]
- mov r1, r8
- str r1, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
-_0809467A:
- adds r5, 0xA
- ldr r4, _080946D0
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- str r0, [r4]
- ldr r0, _080946D4
- ldr r2, [r0]
- movs r0, 0
- mov r8, r0
- str r0, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
- adds r5, 0xA
- adds r0, r6, 0
- adds r0, 0x26
- ldrb r2, [r0]
- str r2, [r4]
- adds r0, 0x2
- ldrb r0, [r0]
- str r0, [r4, 0x4]
- adds r0, r6, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- cmp r1, 0
- beq _080946DC
- adds r0, r1, 0
- adds r0, r2, r0
- str r0, [r4]
- ldr r0, _080946D8
- ldr r2, [r0]
- mov r1, r8
- str r1, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
- b _080946EC
- .align 2, 0
-_080946CC: .4byte gUnknown_8113898
-_080946D0: .4byte gUnknown_202DE30
-_080946D4: .4byte gUnknown_81138D0
-_080946D8: .4byte gUnknown_8113950
-_080946DC:
- ldr r0, _08094714
- ldr r2, [r0]
- str r1, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
-_080946EC:
- adds r0, r6, 0
- adds r0, 0x2D
- ldrb r1, [r0]
- cmp r1, 0
- beq _08094720
- ldr r2, _08094718
- ldr r0, [r2, 0x4]
- adds r0, r1
- str r0, [r2, 0x4]
- ldr r0, _0809471C
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
- b _08094730
- .align 2, 0
-_08094714: .4byte gUnknown_81138E4
-_08094718: .4byte gUnknown_202DE30
-_0809471C: .4byte gUnknown_8113974
-_08094720:
- ldr r0, _08094768
- ldr r2, [r0]
- str r1, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
-_08094730:
- adds r5, 0xA
- ldr r2, _0809476C
- adds r0, r6, 0
- adds r0, 0x27
- ldrb r3, [r0]
- str r3, [r2]
- adds r0, 0x2
- ldrb r0, [r0]
- str r0, [r2, 0x4]
- adds r0, r6, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- cmp r1, 0
- beq _08094774
- adds r0, r1, 0
- adds r0, r3, r0
- str r0, [r2]
- ldr r0, _08094770
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
- b _08094784
- .align 2, 0
-_08094768: .4byte gUnknown_8113900
-_0809476C: .4byte gUnknown_202DE30
-_08094770: .4byte gUnknown_8113990
-_08094774:
- ldr r0, _080947AC
- ldr r2, [r0]
- str r1, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
-_08094784:
- adds r0, r6, 0
- adds r0, 0x2E
- ldrb r1, [r0]
- cmp r1, 0
- beq _080947B8
- ldr r2, _080947B0
- ldr r0, [r2, 0x4]
- adds r0, r1
- str r0, [r2, 0x4]
- ldr r0, _080947B4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
- b _080947C8
- .align 2, 0
-_080947AC: .4byte gUnknown_8113918
-_080947B0: .4byte gUnknown_202DE30
-_080947B4: .4byte gUnknown_81139B4
-_080947B8:
- ldr r0, _080947E4
- ldr r2, [r0]
- str r1, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
-_080947C8:
- adds r5, 0x10
- adds r2, r6, 0
- adds r2, 0x1C
- ldrb r1, [r6, 0x1C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080947EC
- ldr r0, _080947E8
- adds r1, r2, 0
- movs r2, 0
- bl sub_8090E14
- b _080947F6
- .align 2, 0
-_080947E4: .4byte gUnknown_8113934
-_080947E8: .4byte gUnknown_202DE58
-_080947EC:
- ldr r0, _0809481C
- ldr r1, _08094820
- ldr r1, [r1]
- bl strcpy
-_080947F6:
- ldr r0, _08094824
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8014FF0
- adds r0, r7, 0
- bl sub_80073E0
- add sp, 0xCC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809481C: .4byte gUnknown_202DE58
-_08094820: .4byte gUnknown_81139B8
-_08094824: .4byte gUnknown_81139CC
- thumb_func_end sub_8094558
-
- thumb_func_start sub_8094828
-sub_8094828:
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0
- beq _08094852
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _0809484C
- ldr r0, _08094848
- b _08094856
- .align 2, 0
-_08094848: .4byte 0x00000223
-_0809484C:
- movs r0, 0x89
- lsls r0, 2
- b _08094856
-_08094852:
- lsls r0, r2, 16
- asrs r0, 16
-_08094856:
- pop {r1}
- bx r1
- thumb_func_end sub_8094828
-
- thumb_func_start sub_809485C
-sub_809485C:
- str r1, [r0]
- movs r3, 0
- str r3, [r0, 0x8]
- str r3, [r0, 0xC]
- adds r1, r2
- str r1, [r0, 0x4]
- bx lr
- thumb_func_end sub_809485C
-
- thumb_func_start sub_809486C
-sub_809486C:
- push {lr}
- str r1, [r0]
- movs r3, 0
- str r3, [r0, 0x8]
- str r3, [r0, 0xC]
- adds r3, r1, r2
- str r3, [r0, 0x4]
- adds r0, r1, 0
- adds r1, r2, 0
- bl MemoryClear8
- pop {r0}
- bx r0
- thumb_func_end sub_809486C
-
- thumb_func_start nullsub_102
-nullsub_102:
- bx lr
- thumb_func_end nullsub_102
-
- thumb_func_start sub_809488C
-sub_809488C:
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r4, r2, 0
- movs r5, 0
- adds r6, r1, 0
- cmp r4, 0
- beq _080948DE
- movs r7, 0x1
-_0809489C:
- ldrb r0, [r6]
- asrs r0, r5
- ands r0, r7
- cmp r0, 0
- beq _080948B4
- ldr r2, [r3]
- ldr r1, [r3, 0x8]
- adds r0, r7, 0
- lsls r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
-_080948B4:
- adds r5, 0x1
- cmp r5, 0x8
- bne _080948BE
- adds r6, 0x1
- movs r5, 0
-_080948BE:
- ldr r0, [r3, 0x8]
- adds r0, 0x1
- str r0, [r3, 0x8]
- cmp r0, 0x8
- bne _080948D2
- ldr r0, [r3]
- adds r0, 0x1
- str r0, [r3]
- movs r0, 0
- str r0, [r3, 0x8]
-_080948D2:
- ldr r0, [r3, 0xC]
- adds r0, 0x1
- str r0, [r3, 0xC]
- subs r4, 0x1
- cmp r4, 0
- bne _0809489C
-_080948DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809488C
-
- thumb_func_start sub_80948E4
-sub_80948E4:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- adds r6, r1, 0
- cmp r5, 0
- beq _0809491C
-_080948F0:
- ldrb r1, [r6]
- ldr r0, [r4, 0x8]
- lsls r1, r0
- ldr r3, [r4]
- ldrb r2, [r3]
- adds r0, r1, 0
- orrs r0, r2
- strb r0, [r3]
- ldr r2, [r4]
- adds r0, r2, 0x1
- str r0, [r4]
- asrs r1, 8
- ldrb r0, [r2, 0x1]
- orrs r1, r0
- strb r1, [r2, 0x1]
- adds r6, 0x1
- ldr r0, [r4, 0xC]
- adds r0, 0x8
- str r0, [r4, 0xC]
- subs r5, 0x1
- cmp r5, 0
- bne _080948F0
-_0809491C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80948E4
-
- thumb_func_start sub_8094924
-sub_8094924:
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r5, r2, 0
- movs r6, 0
- adds r2, r1, 0
- cmp r5, 0
- beq _08094978
-_08094932:
- cmp r6, 0
- bne _08094938
- strb r6, [r2]
-_08094938:
- ldr r7, [r3]
- ldrb r0, [r7]
- ldr r4, [r3, 0x8]
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08094952
- adds r0, r1, 0
- lsls r0, r6
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
-_08094952:
- adds r6, 0x1
- cmp r6, 0x8
- bne _0809495C
- adds r2, 0x1
- movs r6, 0
-_0809495C:
- adds r0, r4, 0x1
- str r0, [r3, 0x8]
- cmp r0, 0x8
- bne _0809496C
- adds r0, r7, 0x1
- str r0, [r3]
- movs r0, 0
- str r0, [r3, 0x8]
-_0809496C:
- ldr r0, [r3, 0xC]
- adds r0, 0x1
- str r0, [r3, 0xC]
- subs r5, 0x1
- cmp r5, 0
- bne _08094932
-_08094978:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8094924
-
- thumb_func_start sub_8094980
-sub_8094980:
- ldr r1, _08094988
- ldr r0, _0809498C
- str r0, [r1]
- bx lr
- .align 2, 0
-_08094988: .4byte gUnknown_203B46C
-_0809498C: .4byte gUnknown_2038C70
- thumb_func_end sub_8094980
-
- thumb_func_start sub_8094990
-sub_8094990:
- ldr r0, _08094994
- bx lr
- .align 2, 0
-_08094994: .4byte gUnknown_2038C70
- thumb_func_end sub_8094990
-
- thumb_func_start sub_8094998
-sub_8094998:
- push {lr}
- lsls r0, 24
- ldr r2, _080949D8
- ldr r1, [r2]
- movs r3, 0
- strb r3, [r1, 0x8]
- cmp r0, 0
- beq _080949AC
- ldr r0, [r2]
- strb r3, [r0, 0xB]
-_080949AC:
- ldr r0, [r2]
- strb r3, [r0, 0x9]
- ldr r0, [r2]
- strb r3, [r0, 0xA]
- ldr r0, [r2]
- strb r3, [r0]
- ldr r0, [r2]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- strb r1, [r0, 0x2]
- ldr r0, [r2]
- strb r1, [r0, 0x3]
- ldr r0, [r2]
- strb r1, [r0, 0x4]
- ldr r0, [r2]
- strb r3, [r0, 0xC]
- bl sub_8094C14
- pop {r0}
- bx r0
- .align 2, 0
-_080949D8: .4byte gUnknown_203B46C
- thumb_func_end sub_8094998
-
- thumb_func_start sub_80949DC
-sub_80949DC:
- push {lr}
- adds r2, r0, 0
- ldr r0, _08094A38
- ldr r1, [r0]
- ldrb r0, [r1, 0x8]
- ldrb r3, [r2, 0x8]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x9]
- ldrb r3, [r2, 0x9]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0xA]
- ldrb r3, [r2, 0xA]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0xB]
- ldrb r3, [r2, 0xB]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1]
- ldrb r3, [r2]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x1]
- ldrb r3, [r2, 0x1]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x2]
- ldrb r3, [r2, 0x2]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x3]
- ldrb r3, [r2, 0x3]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0x4]
- ldrb r3, [r2, 0x4]
- cmp r0, r3
- bne _08094A3C
- ldrb r0, [r1, 0xC]
- ldrb r2, [r2, 0xC]
- cmp r0, r2
- bne _08094A3C
- movs r0, 0x1
- b _08094A3E
- .align 2, 0
-_08094A38: .4byte gUnknown_203B46C
-_08094A3C:
- movs r0, 0
-_08094A3E:
- pop {r1}
- bx r1
- thumb_func_end sub_80949DC
-
- thumb_func_start sub_8094A44
-sub_8094A44:
- push {r4-r7,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0xFF
- mov r0, sp
- strb r1, [r0]
- mov r7, sp
- adds r7, 0x1
- movs r0, 0
- strb r0, [r7]
- ldr r5, _08094B14
- ldr r1, [r5]
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x2
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x9]
- mov r1, sp
- adds r6, r7, 0
- cmp r0, 0
- bne _08094A74
- adds r1, r6, 0
-_08094A74:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0xA]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094A88
- mov r1, sp
-_08094A88:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0xB]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094A9C
- mov r1, sp
-_08094A9C:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094AB0
- mov r1, sp
-_08094AB0:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094AC4
- mov r1, sp
-_08094AC4:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x2]
- adds r1, r6, 0
- cmp r0, 0
- beq _08094AD8
- mov r1, sp
-_08094AD8:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- adds r1, r7, 0
- cmp r0, 0
- beq _08094AEC
- mov r1, sp
-_08094AEC:
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r1, [r5]
- adds r1, 0x4
- adds r0, r4, 0
- movs r2, 0x3
- bl sub_809488C
- ldr r1, [r5]
- adds r1, 0xC
- adds r0, r4, 0
- movs r2, 0x2
- bl sub_809488C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094B14: .4byte gUnknown_203B46C
- thumb_func_end sub_8094A44
-
- thumb_func_start sub_8094B18
-sub_8094B18:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r6, r0, 0
- mov r1, sp
- movs r2, 0x2
- bl sub_8094924
- ldr r5, _08094C10
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x3
- mov r8, r0
- ands r0, r1
- strb r0, [r2, 0x8]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0x9]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0xA]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0xB]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r2, 0x2]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- ldr r1, [r5]
- mov r0, sp
- ldrb r0, [r0]
- ands r4, r0
- strb r4, [r1, 0x3]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x3
- bl sub_8094924
- ldr r2, [r5]
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x7
- ands r0, r1
- strb r0, [r2, 0x4]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x2
- bl sub_8094924
- ldr r1, [r5]
- mov r0, sp
- ldrb r0, [r0]
- mov r2, r8
- ands r2, r0
- strb r2, [r1, 0xC]
- bl sub_8094C14
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08094C10: .4byte gUnknown_203B46C
- thumb_func_end sub_8094B18
-
- thumb_func_start sub_8094C14
-sub_8094C14:
- push {r4,lr}
- sub sp, 0x10
- mov r1, sp
- ldr r0, _08094C40
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, _08094C44
- ldr r0, [r0]
- ldrb r1, [r0, 0x8]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- bl sub_80099F0
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094C40: .4byte gUnknown_8109954
-_08094C44: .4byte gUnknown_203B46C
- thumb_func_end sub_8094C14
-
- thumb_func_start sub_8094C48
-sub_8094C48:
- push {lr}
- ldr r0, _08094C5C
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08094C60
- cmp r0, 0x3
- beq _08094C60
- movs r0, 0x1
- b _08094C62
- .align 2, 0
-_08094C5C: .4byte gUnknown_203B46C
-_08094C60:
- movs r0, 0
-_08094C62:
- pop {r1}
- bx r1
- thumb_func_end sub_8094C48
-
- thumb_func_start sub_8094C68
-sub_8094C68:
- push {lr}
- ldr r0, _08094C7C
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2
- beq _08094C80
- cmp r0, 0x5
- beq _08094C80
- movs r0, 0x1
- b _08094C82
- .align 2, 0
-_08094C7C: .4byte gUnknown_203B46C
-_08094C80:
- movs r0, 0
-_08094C82:
- pop {r1}
- bx r1
- thumb_func_end sub_8094C68
-
- thumb_func_start sub_8094C88
-sub_8094C88:
- push {lr}
- ldr r0, _08094C98
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- cmp r0, 0x2
- bhi _08094C9C
- movs r0, 0x1
- b _08094CA8
- .align 2, 0
-_08094C98: .4byte gUnknown_203B46C
-_08094C9C:
- subs r0, 0x3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08094CAA
- movs r0, 0x4
-_08094CA8:
- strb r0, [r1, 0x4]
-_08094CAA:
- pop {r0}
- bx r0
- thumb_func_end sub_8094C88
-
- thumb_func_start sub_8094CB0
-sub_8094CB0:
- ldr r1, _08094CBC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CBC: .4byte 0x0000ffff
- thumb_func_end sub_8094CB0
-
- thumb_func_start sub_8094CC0
-sub_8094CC0:
- ldr r1, _08094CCC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CCC: .4byte 0x0000ffff
- thumb_func_end sub_8094CC0
-
- thumb_func_start sub_8094CD0
-sub_8094CD0:
- ldr r1, _08094CDC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CDC: .4byte 0x0000ffff
- thumb_func_end sub_8094CD0
-
- thumb_func_start sub_8094CE0
-sub_8094CE0:
- ldr r1, _08094CEC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CEC: .4byte 0x0000ffff
- thumb_func_end sub_8094CE0
-
- thumb_func_start sub_8094CF0
-sub_8094CF0:
- ldr r1, _08094CFC
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094CFC: .4byte 0x0000ffff
- thumb_func_end sub_8094CF0
-
- thumb_func_start sub_8094D00
-sub_8094D00:
- ldr r1, _08094D0C
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08094D0C: .4byte 0x0000ffff
- thumb_func_end sub_8094D00
-
- thumb_func_start sub_8094D10
-sub_8094D10:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D10
-
- thumb_func_start sub_8094D14
-sub_8094D14:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D14
-
- thumb_func_start sub_8094D18
-sub_8094D18:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D18
-
- thumb_func_start sub_8094D1C
-sub_8094D1C:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D1C
-
- thumb_func_start sub_8094D20
-sub_8094D20:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D20
-
- thumb_func_start sub_8094D24
-sub_8094D24:
- movs r0, 0
- bx lr
- thumb_func_end sub_8094D24
-
- thumb_func_start sub_8094D28
-sub_8094D28:
- push {r4-r7,lr}
- ldr r2, _08094D64
- str r0, [r2]
- ldr r1, _08094D68
- movs r0, 0x1
- str r0, [r1]
- ldr r7, _08094D6C
- adds r5, r2, 0
- adds r4, r1, 0
- ldr r6, _08094D70
-_08094D3C:
- ldr r2, [r4]
- lsls r3, r2, 2
- adds r3, r5
- subs r0, r2, 0x1
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- lsrs r1, r0, 30
- eors r0, r1
- muls r0, r6
- adds r0, r2
- str r0, [r3]
- adds r2, 0x1
- str r2, [r4]
- cmp r2, r7
- ble _08094D3C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094D64: .4byte gUnknown_3001198
-_08094D68: .4byte gUnknown_203B470
-_08094D6C: .4byte 0x0000026f
-_08094D70: .4byte 0x6c078965
- thumb_func_end sub_8094D28
-
- thumb_func_start sub_8094D74
-sub_8094D74:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- adds r7, r1, 0
- ldr r0, _08094E34
- bl sub_8094D28
- movs r4, 0x1
- movs r5, 0
- adds r3, r7, 0
- movs r0, 0x9C
- lsls r0, 2
- cmp r3, r0
- bge _08094D96
- adds r3, r0, 0
-_08094D96:
- ldr r6, _08094E38
- cmp r3, 0
- beq _08094DE2
- mov r9, r6
- ldr r0, _08094E3C
- adds r0, r6
- mov r12, r0
- adds r2, r6, 0
-_08094DA6:
- ldr r1, [r2]
- lsrs r0, r1, 30
- eors r1, r0
- ldr r0, _08094E40
- muls r0, r1
- ldr r1, [r2, 0x4]
- eors r1, r0
- lsls r0, r5, 2
- add r0, r8
- ldr r0, [r0]
- adds r1, r0
- adds r1, r5
- str r1, [r2, 0x4]
- adds r2, 0x4
- adds r4, 0x1
- adds r5, 0x1
- ldr r0, _08094E44
- cmp r4, r0
- ble _08094DD6
- mov r1, r12
- ldr r0, [r1]
- str r0, [r6]
- mov r2, r9
- movs r4, 0x1
-_08094DD6:
- cmp r5, r7
- blt _08094DDC
- movs r5, 0
-_08094DDC:
- subs r3, 0x1
- cmp r3, 0
- bne _08094DA6
-_08094DE2:
- ldr r3, _08094E44
- ldr r5, _08094E38
- ldr r0, _08094E3C
- adds r0, r5
- mov r8, r0
- lsls r0, r4, 2
- subs r0, 0x4
- adds r2, r0, r5
- ldr r1, _08094E48
- mov r12, r1
- adds r7, r3, 0
-_08094DF8:
- ldr r0, [r2]
- lsrs r1, r0, 30
- eors r0, r1
- mov r1, r12
- muls r1, r0
- ldr r0, [r2, 0x4]
- eors r0, r1
- subs r0, r4
- str r0, [r2, 0x4]
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, r7
- ble _08094E1C
- mov r1, r8
- ldr r0, [r1]
- str r0, [r6]
- adds r2, r5, 0
- movs r4, 0x1
-_08094E1C:
- subs r3, 0x1
- cmp r3, 0
- bne _08094DF8
- movs r0, 0x80
- lsls r0, 24
- str r0, [r6]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094E34: .4byte 0x012bd6aa
-_08094E38: .4byte gUnknown_3001198
-_08094E3C: .4byte 0x000009bc
-_08094E40: .4byte 0x0019660d
-_08094E44: .4byte 0x0000026f
-_08094E48: .4byte 0x5d588b65
- thumb_func_end sub_8094D74
-
- thumb_func_start sub_8094E4C
-sub_8094E4C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08094F54
- ldr r2, [r0]
- ldr r1, _08094F58
- mov r8, r0
- cmp r2, r1
- ble _08094F1C
- ldr r0, _08094F5C
- cmp r2, r0
- bne _08094E6C
- ldr r0, _08094F60
- bl sub_8094D28
-_08094E6C:
- movs r3, 0
- ldr r0, _08094F64
- mov r9, r0
- ldr r7, _08094F68
- mov r12, r9
- adds r5, r7, 0
-_08094E78:
- ldr r4, [r5]
- movs r6, 0x80
- lsls r6, 24
- ands r4, r6
- ldr r0, [r5, 0x4]
- ldr r1, _08094F6C
- ands r0, r1
- orrs r4, r0
- ldr r1, _08094F70
- adds r0, r3, r1
- lsls r0, 2
- adds r0, r7
- lsrs r2, r4, 1
- ldr r1, [r0]
- eors r1, r2
- movs r0, 0x1
- ands r4, r0
- lsls r0, r4, 2
- add r0, r12
- ldr r0, [r0]
- eors r1, r0
- stm r5!, {r1}
- adds r3, 0x1
- cmp r3, 0xE2
- ble _08094E78
- ldr r5, _08094F74
- cmp r3, r5
- bgt _08094EE6
- ldr r1, _08094F68
- ldr r4, _08094F64
- mov r12, r4
- lsls r0, r3, 2
- adds r2, r0, r1
- ldr r4, _08094F78
- adds r0, r4
- adds r7, r0, r1
-_08094EC0:
- ldr r4, [r2]
- ands r4, r6
- ldr r0, [r2, 0x4]
- ldr r1, _08094F6C
- ands r0, r1
- orrs r4, r0
- lsrs r0, r4, 1
- ldm r7!, {r1}
- eors r1, r0
- movs r0, 0x1
- ands r4, r0
- lsls r0, r4, 2
- add r0, r12
- ldr r0, [r0]
- eors r1, r0
- stm r2!, {r1}
- adds r3, 0x1
- cmp r3, r5
- ble _08094EC0
-_08094EE6:
- ldr r2, _08094F68
- ldr r0, _08094F7C
- adds r3, r2, r0
- ldr r4, [r3]
- movs r0, 0x80
- lsls r0, 24
- ands r4, r0
- ldr r0, [r2]
- ldr r1, _08094F6C
- ands r0, r1
- orrs r4, r0
- movs r1, 0xC6
- lsls r1, 3
- adds r2, r1
- lsrs r0, r4, 1
- ldr r1, [r2]
- eors r1, r0
- movs r0, 0x1
- ands r4, r0
- lsls r0, r4, 2
- add r0, r9
- ldr r0, [r0]
- eors r1, r0
- str r1, [r3]
- movs r0, 0
- mov r4, r8
- str r0, [r4]
-_08094F1C:
- ldr r2, _08094F68
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r1, 2
- adds r0, r2
- ldr r4, [r0]
- adds r1, 0x1
- mov r0, r8
- str r1, [r0]
- lsrs r0, r4, 11
- eors r4, r0
- lsls r0, r4, 7
- ldr r1, _08094F80
- ands r0, r1
- eors r4, r0
- lsls r0, r4, 15
- ldr r1, _08094F84
- ands r0, r1
- eors r4, r0
- lsrs r0, r4, 18
- eors r4, r0
- adds r0, r4, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08094F54: .4byte gUnknown_203B470
-_08094F58: .4byte 0x0000026f
-_08094F5C: .4byte 0x00000271
-_08094F60: .4byte 0x00001571
-_08094F64: .4byte gUnknown_203B474
-_08094F68: .4byte gUnknown_3001198
-_08094F6C: .4byte 0x7fffffff
-_08094F70: .4byte 0x0000018d
-_08094F74: .4byte 0x0000026e
-_08094F78: .4byte 0xfffffc74
-_08094F7C: .4byte 0x000009bc
-_08094F80: .4byte 0x9d2c5680
-_08094F84: .4byte 0xefc60000
- thumb_func_end sub_8094E4C
-
- thumb_func_start sub_8094F88
-sub_8094F88:
- push {lr}
- ldr r1, _08094F98
- ldr r0, _08094F9C
- str r0, [r1]
- bl sub_8094FA8
- pop {r0}
- bx r0
- .align 2, 0
-_08094F98: .4byte gUnknown_203B47C
-_08094F9C: .4byte gUnknown_2038C80
- thumb_func_end sub_8094F88
-
- thumb_func_start sub_8094FA0
-sub_8094FA0:
- ldr r0, _08094FA4
- bx lr
- .align 2, 0
-_08094FA4: .4byte gUnknown_2038C80
- thumb_func_end sub_8094FA0
-
- thumb_func_start sub_8094FA8
-sub_8094FA8:
- movs r1, 0
- strb r1, [r0, 0x4]
- strb r1, [r0, 0x3]
- strb r1, [r0, 0x2]
- strh r1, [r0]
- bx lr
- thumb_func_end sub_8094FA8
-
- thumb_func_start sub_8094FB4
-sub_8094FB4:
- push {lr}
- adds r2, r0, 0
- ldrb r0, [r2, 0x4]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0809500A
- strb r1, [r2, 0x4]
- ldrb r0, [r2, 0x3]
- adds r0, 0x1
- strb r0, [r2, 0x3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0809500A
- strb r1, [r2, 0x3]
- ldrb r0, [r2, 0x2]
- adds r0, 0x1
- strb r0, [r2, 0x2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _0809500A
- strb r1, [r2, 0x2]
- ldrh r3, [r2]
- movs r0, 0
- ldrsh r1, [r2, r0]
- ldr r0, _08094FFC
- cmp r1, r0
- bgt _08095000
- adds r0, r3, 0x1
- b _08095008
- .align 2, 0
-_08094FFC: .4byte 0x0000270e
-_08095000:
- movs r0, 0x3B
- strb r0, [r2, 0x3]
- strb r0, [r2, 0x2]
- ldr r0, _08095010
-_08095008:
- strh r0, [r2]
-_0809500A:
- pop {r0}
- bx r0
- .align 2, 0
-_08095010: .4byte 0x0000270f
- thumb_func_end sub_8094FB4
-
- thumb_func_start sub_8095014
-sub_8095014:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- ldr r1, _08095030
- cmp r0, r1
- bgt _08095034
- str r0, [r5]
- ldrb r0, [r4, 0x2]
- str r0, [r2]
- ldrb r0, [r4, 0x3]
- b _0809503A
- .align 2, 0
-_08095030: .4byte 0x0000270f
-_08095034:
- str r1, [r5]
- movs r0, 0x3B
- str r0, [r2]
-_0809503A:
- str r0, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8095014
-
- thumb_func_start sub_8095044
-sub_8095044:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _0809507C
- ldr r1, [r4]
- adds r1, 0x4
- movs r2, 0x6
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x3
- adds r0, r5, 0
- movs r2, 0x6
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x2
- adds r0, r5, 0
- movs r2, 0x6
- bl sub_809488C
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809507C: .4byte gUnknown_203B47C
- thumb_func_end sub_8095044
-
- thumb_func_start sub_8095080
-sub_8095080:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080950B8
- ldr r1, [r4]
- adds r1, 0x4
- movs r2, 0x6
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x3
- adds r0, r5, 0
- movs r2, 0x6
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x2
- adds r0, r5, 0
- movs r2, 0x6
- bl sub_8094924
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080950B8: .4byte gUnknown_203B47C
- thumb_func_end sub_8095080
-
- thumb_func_start sub_80950BC
-sub_80950BC:
- ldr r1, _080950D8
- ldr r0, _080950DC
- str r0, [r1]
- ldr r1, _080950E0
- ldr r0, _080950E4
- str r0, [r1]
- ldr r1, _080950E8
- ldr r0, _080950EC
- str r0, [r1]
- ldr r1, _080950F0
- ldr r0, _080950F4
- str r0, [r1]
- bx lr
- .align 2, 0
-_080950D8: .4byte gUnknown_203B480
-_080950DC: .4byte gUnknown_2038C88
-_080950E0: .4byte gUnknown_203B484
-_080950E4: .4byte gUnknown_2039288
-_080950E8: .4byte gUnknown_203B488
-_080950EC: .4byte gUnknown_20392E8
-_080950F0: .4byte gUnknown_203B48C
-_080950F4: .4byte gUnknown_20393C0
- thumb_func_end sub_80950BC
-
- thumb_func_start sub_80950F8
-sub_80950F8:
- ldr r0, _080950FC
- bx lr
- .align 2, 0
-_080950FC: .4byte gUnknown_2038C88
- thumb_func_end sub_80950F8
-
- thumb_func_start sub_8095100
-sub_8095100:
- ldr r0, _08095104
- bx lr
- .align 2, 0
-_08095104: .4byte gUnknown_2039288
- thumb_func_end sub_8095100
-
- thumb_func_start sub_8095108
-sub_8095108:
- ldr r0, _0809510C
- bx lr
- .align 2, 0
-_0809510C: .4byte gUnknown_20392E8
- thumb_func_end sub_8095108
-
- thumb_func_start sub_8095110
-sub_8095110:
- ldr r0, _08095114
- bx lr
- .align 2, 0
-_08095114: .4byte gUnknown_20393C0
- thumb_func_end sub_8095110
-
- thumb_func_start sub_8095118
-sub_8095118:
- push {r4,lr}
- ldr r4, _0809517C
- ldr r0, [r4]
- movs r2, 0xC0
- lsls r2, 3
- movs r1, 0
- bl MemoryFill8
- ldr r0, _08095180
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x5C
- bl MemoryFill8
- movs r2, 0
- movs r1, 0
- movs r3, 0x1F
-_0809513A:
- ldr r0, [r4]
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0x22
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0x2D
- strb r2, [r0]
- adds r1, 0x30
- subs r3, 0x1
- cmp r3, 0
- bge _0809513A
- ldr r2, _08095184
- ldr r1, [r2]
- movs r0, 0
- str r0, [r1]
- movs r3, 0
- movs r4, 0x1
- negs r4, r4
-_08095166:
- ldr r0, [r2]
- lsls r1, r3, 2
- adds r0, 0x4
- adds r0, r1
- str r4, [r0]
- adds r3, 0x1
- cmp r3, 0x1F
- ble _08095166
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809517C: .4byte gUnknown_203B480
-_08095180: .4byte gUnknown_203B484
-_08095184: .4byte gUnknown_203B48C
- thumb_func_end sub_8095118
-
- thumb_func_start nullsub_206
-nullsub_206:
- bx lr
- thumb_func_end nullsub_206
-
- thumb_func_start nullsub_207
-nullsub_207:
- bx lr
- thumb_func_end nullsub_207
-
- thumb_func_start sub_8095190
-sub_8095190:
- push {lr}
- movs r2, 0x2
- ldr r0, _080951A8
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x60
-_0809519C:
- ldrb r0, [r1]
- cmp r0, 0
- bne _080951AC
- adds r0, r2, 0
- b _080951B8
- .align 2, 0
-_080951A8: .4byte gUnknown_203B480
-_080951AC:
- adds r1, 0x30
- adds r2, 0x1
- cmp r2, 0x1F
- ble _0809519C
- movs r0, 0x1
- negs r0, r0
-_080951B8:
- pop {r1}
- bx r1
- thumb_func_end sub_8095190
-
- thumb_func_start sub_80951BC
-sub_80951BC:
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8095190
- adds r2, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080951F4
- ldr r0, _080951F0
- ldr r1, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 4
- adds r1, r0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- b _080951F6
- .align 2, 0
-_080951F0: .4byte gUnknown_203B480
-_080951F4:
- movs r0, 0
-_080951F6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80951BC
-
- thumb_func_start sub_80951FC
-sub_80951FC:
- push {r4,r5,lr}
- ldr r1, _08095224
- ldr r1, [r1]
- adds r1, 0x30
- ldrb r2, [r1]
- negs r3, r2
- orrs r3, r2
- lsrs r3, 31
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08095224: .4byte gUnknown_203B480
- thumb_func_end sub_80951FC
-
- thumb_func_start sub_8095228
-sub_8095228:
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809523C
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 4
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_0809523C: .4byte gUnknown_203B480
- thumb_func_end sub_8095228
-
- thumb_func_start sub_8095240
-sub_8095240:
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08095270
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 4
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, r4
- adds r0, 0x22
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08095270: .4byte gUnknown_203B480
- thumb_func_end sub_8095240
-
- thumb_func_start sub_8095274
-sub_8095274:
- push {lr}
- ldr r1, _08095294
- ldr r3, [r1]
- adds r2, r3, 0
- ldm r2!, {r1}
- lsls r1, 2
- adds r2, r1
- str r0, [r2]
- ldr r0, [r3]
- movs r1, 0
- cmp r0, 0x1E
- bgt _0809528E
- adds r1, r0, 0x1
-_0809528E:
- str r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08095294: .4byte gUnknown_203B48C
- thumb_func_end sub_8095274
-
- thumb_func_start sub_8095298
-sub_8095298:
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, _080952B0
- ldr r0, [r0]
- adds r1, r0, 0x4
-_080952A4:
- ldr r0, [r1]
- cmp r0, r3
- bne _080952B4
- movs r0, 0x1
- b _080952BE
- .align 2, 0
-_080952B0: .4byte gUnknown_203B48C
-_080952B4:
- adds r1, 0x4
- adds r2, 0x1
- cmp r2, 0x1F
- ble _080952A4
- movs r0, 0
-_080952BE:
- pop {r1}
- bx r1
- thumb_func_end sub_8095298
-
- thumb_func_start sub_80952C4
-sub_80952C4:
- push {r4,lr}
- ldr r2, _080952EC
- ldr r1, [r2]
- movs r0, 0
- str r0, [r1]
- movs r3, 0
- adds r4, r2, 0
- movs r2, 0x1
- negs r2, r2
-_080952D6:
- ldr r0, [r4]
- lsls r1, r3, 2
- adds r0, 0x4
- adds r0, r1
- str r2, [r0]
- adds r3, 0x1
- cmp r3, 0x1F
- ble _080952D6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952EC: .4byte gUnknown_203B48C
- thumb_func_end sub_80952C4
-
- thumb_func_start sub_80952F0
-sub_80952F0:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _08095310
- ldr r2, [r0]
-_080952FE:
- ldrb r0, [r2]
- cmp r0, r1
- bne _08095314
- ldr r0, [r2, 0x10]
- cmp r0, r4
- bne _08095314
- movs r0, 0x1
- b _0809531E
- .align 2, 0
-_08095310: .4byte gUnknown_203B480
-_08095314:
- adds r2, 0x30
- adds r3, 0x1
- cmp r3, 0x1F
- ble _080952FE
- movs r0, 0
-_0809531E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80952F0
-
- thumb_func_start sub_8095324
-sub_8095324:
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _0809534C
- ldr r1, [r0]
- movs r2, 0x1F
-_08095332:
- ldrb r0, [r1]
- cmp r0, r4
- bne _0809533A
- adds r3, 0x1
-_0809533A:
- adds r1, 0x30
- subs r2, 0x1
- cmp r2, 0
- bge _08095332
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809534C: .4byte gUnknown_203B480
- thumb_func_end sub_8095324
-
- thumb_func_start sub_8095350
-sub_8095350:
- push {lr}
- movs r3, 0
- ldr r0, _08095370
- ldr r1, [r0]
- movs r2, 0x1F
-_0809535A:
- ldrb r0, [r1]
- cmp r0, 0
- beq _08095362
- adds r3, 0x1
-_08095362:
- adds r1, 0x30
- subs r2, 0x1
- cmp r2, 0
- bge _0809535A
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08095370: .4byte gUnknown_203B480
- thumb_func_end sub_8095350
-
- thumb_func_start sub_8095374
-sub_8095374:
- push {lr}
- movs r3, 0x1
- negs r3, r3
- movs r2, 0
- ldr r0, _08095398
- ldr r1, [r0]
-_08095380:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _08095388
- adds r3, r2, 0
-_08095388:
- adds r1, 0x30
- adds r2, 0x1
- cmp r2, 0x1F
- ble _08095380
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08095398: .4byte gUnknown_203B480
- thumb_func_end sub_8095374
-
- thumb_func_start sub_809539C
-sub_809539C:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _080953BC
- ldr r2, [r0]
-_080953AA:
- ldrb r0, [r2]
- cmp r0, r1
- bne _080953C0
- ldr r0, [r2, 0x10]
- cmp r0, r4
- bne _080953C0
- adds r0, r3, 0
- b _080953CC
- .align 2, 0
-_080953BC: .4byte gUnknown_203B480
-_080953C0:
- adds r2, 0x30
- adds r3, 0x1
- cmp r3, 0x1F
- ble _080953AA
- movs r0, 0x1
- negs r0, r0
-_080953CC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809539C
-
- thumb_func_start sub_80953D4
-sub_80953D4:
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _080953EC
- ldr r1, [r0]
-_080953E0:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080953F0
- adds r0, r2, 0
- b _080953FC
- .align 2, 0
-_080953EC: .4byte gUnknown_203B480
-_080953F0:
- adds r1, 0x30
- adds r2, 0x1
- cmp r2, 0x1F
- ble _080953E0
- movs r0, 0x1
- negs r0, r0
-_080953FC:
- pop {r1}
- bx r1
- thumb_func_end sub_80953D4
-
- thumb_func_start sub_8095400
-sub_8095400:
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, _08095418
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x10
-_0809540E:
- ldr r0, [r1]
- cmp r0, r3
- bne _0809541C
- adds r0, r2, 0
- b _08095428
- .align 2, 0
-_08095418: .4byte gUnknown_203B480
-_0809541C:
- adds r1, 0x30
- adds r2, 0x1
- cmp r2, 0x1F
- ble _0809540E
- movs r0, 0x1
- negs r0, r0
-_08095428:
- pop {r1}
- bx r1
- thumb_func_end sub_8095400
-
- thumb_func_start sub_809542C
-sub_809542C:
- push {r4,lr}
- sub sp, 0x14
- ldr r4, _08095490
- ldr r2, [r4]
- movs r1, 0x1
- strb r1, [r2]
- ldr r2, [r4]
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2, 0x4]
- str r1, [r2, 0x8]
- bl Random
- bl sub_8094D28
- bl sub_8094E4C
- ldr r1, [r4]
- str r0, [r1, 0x10]
- bl sub_808D33C
- ldr r1, [r4]
- ldrh r0, [r0, 0x8]
- strh r0, [r1, 0xC]
- bl sub_808D33C
- adds r1, r0, 0
- mov r0, sp
- bl sub_808DA34
- ldr r0, [r4]
- adds r0, 0x14
- mov r1, sp
- bl sub_80922F4
- bl sub_8011C34
- ldr r1, [r4]
- str r0, [r1, 0x24]
- ldrb r0, [r1, 0x4]
- bl sub_8090134
- ldr r1, [r4]
- adds r1, 0x2C
- strb r0, [r1]
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095490: .4byte gUnknown_203B480
- thumb_func_end sub_809542C
-
- thumb_func_start sub_8095494
-sub_8095494:
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080954B0
- ldr r3, [r2]
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 4
- adds r3, r2
- ldr r1, [r3, 0x4]
- ldr r2, [r3, 0x8]
- str r1, [r0]
- str r2, [r0, 0x4]
- bx lr
- .align 2, 0
-_080954B0: .4byte gUnknown_203B480
- thumb_func_end sub_8095494
-
- thumb_func_start sub_80954B4
-sub_80954B4:
- push {lr}
- movs r0, 0x3
- bl sub_8095324
- cmp r0, 0
- bne _080954C4
- movs r0, 0
- b _080954C6
-_080954C4:
- movs r0, 0x1
-_080954C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80954B4
-
- thumb_func_start sub_80954CC
-sub_80954CC:
- push {r4-r6,lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- ldr r6, _08095618
- movs r5, 0
- movs r4, 0x1F
-_080954E2:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8095774
- adds r5, 0x30
- subs r4, 0x1
- cmp r4, 0
- bge _080954E2
- ldr r4, _0809561C
- ldr r1, [r4]
- mov r0, sp
- movs r2, 0x20
- bl sub_8094924
- ldr r5, [r4]
- adds r4, r5, 0x4
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x58
- bl memset
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_8094924
- adds r1, r5, 0x6
- mov r0, sp
- movs r2, 0x1
- bl sub_8094924
- adds r1, r5, 0x7
- mov r0, sp
- movs r2, 0x7
- bl sub_8094924
- adds r4, 0x4
- mov r0, sp
- adds r1, r4, 0
- bl sub_8090314
- adds r1, r5, 0
- adds r1, 0xC
- mov r0, sp
- movs r2, 0x9
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x10
- mov r0, sp
- bl sub_808F410
- adds r1, r5, 0
- adds r1, 0x14
- mov r0, sp
- bl sub_808F410
- adds r1, r5, 0
- adds r1, 0x18
- mov r0, sp
- movs r2, 0xA
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x1A
- mov r0, sp
- movs r2, 0xA
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x1C
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x1D
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x1E
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x1F
- mov r0, sp
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x20
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x24
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x28
- mov r0, sp
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x2C
- mov r0, sp
- bl sub_8091DC0
- adds r1, r5, 0
- adds r1, 0x30
- mov r0, sp
- bl sub_8094128
- adds r1, r5, 0
- adds r1, 0x50
- mov r0, sp
- movs r2, 0x50
- bl sub_8094924
- ldr r4, _08095620
- ldr r1, [r4]
- mov r0, sp
- movs r2, 0x20
- bl sub_8094924
- adds r6, r4, 0
- movs r5, 0x4
- movs r4, 0x1F
-_080955F4:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- movs r2, 0x20
- bl sub_8094924
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _080955F4
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095618: .4byte gUnknown_203B480
-_0809561C: .4byte gUnknown_203B484
-_08095620: .4byte gUnknown_203B48C
- thumb_func_end sub_80954CC
-
- thumb_func_start sub_8095624
-sub_8095624:
- push {r4-r6,lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- ldr r6, _08095768
- movs r5, 0
- movs r4, 0x1F
-_0809563A:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8095824
- adds r5, 0x30
- subs r4, 0x1
- cmp r4, 0
- bge _0809563A
- ldr r4, _0809576C
- ldr r1, [r4]
- mov r0, sp
- movs r2, 0x20
- bl sub_809488C
- ldr r5, [r4]
- adds r4, r5, 0x4
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_809488C
- adds r1, r5, 0x6
- mov r0, sp
- movs r2, 0x1
- bl sub_809488C
- adds r1, r5, 0x7
- mov r0, sp
- movs r2, 0x7
- bl sub_809488C
- adds r4, 0x4
- mov r0, sp
- adds r1, r4, 0
- bl sub_80902F4
- adds r1, r5, 0
- adds r1, 0xC
- mov r0, sp
- movs r2, 0x9
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x10
- mov r0, sp
- bl sub_808F41C
- adds r1, r5, 0
- adds r1, 0x14
- mov r0, sp
- bl sub_808F41C
- adds r1, r5, 0
- adds r1, 0x18
- mov r0, sp
- movs r2, 0xA
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1A
- mov r0, sp
- movs r2, 0xA
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1C
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1D
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1E
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x1F
- mov r0, sp
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x20
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x24
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x28
- mov r0, sp
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x2C
- mov r0, sp
- bl sub_8091DE0
- adds r1, r5, 0
- adds r1, 0x30
- mov r0, sp
- bl sub_8094108
- adds r1, r5, 0
- adds r1, 0x50
- mov r0, sp
- movs r2, 0x50
- bl sub_809488C
- ldr r4, _08095770
- ldr r1, [r4]
- mov r0, sp
- movs r2, 0x20
- bl sub_809488C
- adds r6, r4, 0
- movs r5, 0x4
- movs r4, 0x1F
-_08095742:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- movs r2, 0x20
- bl sub_809488C
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08095742
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095768: .4byte gUnknown_203B480
-_0809576C: .4byte gUnknown_203B484
-_08095770: .4byte gUnknown_203B48C
- thumb_func_end sub_8095624
-
- thumb_func_start sub_8095774
-sub_8095774:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0x4
- adds r0, r4, 0
- bl sub_8090314
- adds r1, r5, 0
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x18
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- movs r2, 0x20
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x14
- adds r0, r4, 0
- movs r2, 0x50
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x20
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x21
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x22
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r4, 0
- movs r2, 0x20
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x28
- adds r0, r4, 0
- movs r2, 0x20
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x2C
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r1, r5, 0
- adds r1, 0x2D
- strb r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8095774
-
- thumb_func_start sub_8095824
-sub_8095824:
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r1, 0
- movs r1, 0xFF
- mov r0, sp
- strb r1, [r0]
- mov r6, sp
- adds r6, 0x1
- movs r0, 0
- strb r0, [r6]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r4, 0x4
- adds r0, r5, 0
- bl sub_80902F4
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x18
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x10
- adds r0, r5, 0
- movs r2, 0x20
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0x50
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x20
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x21
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x22
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r5, 0
- movs r2, 0x20
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x28
- adds r0, r5, 0
- movs r2, 0x20
- bl sub_809488C
- adds r1, r4, 0
- adds r1, 0x2C
- adds r0, r5, 0
- movs r2, 0x8
- bl sub_809488C
- adds r0, r4, 0
- adds r0, 0x2D
- ldrb r0, [r0]
- mov r1, sp
- cmp r0, 0
- bne _080958D2
- adds r1, r6, 0
-_080958D2:
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_809488C
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8095824
-
- thumb_func_start sub_80958E4
-sub_80958E4:
- str r1, [r0]
- bx lr
- thumb_func_end sub_80958E4
-
- thumb_func_start sub_80958E8
-sub_80958E8:
- ldr r1, _080958F0
- ldr r0, _080958F4
- str r0, [r1]
- bx lr
- .align 2, 0
-_080958F0: .4byte gUnknown_203B490
-_080958F4: .4byte gUnknown_2039448
- thumb_func_end sub_80958E8
-
- thumb_func_start sub_80958F8
-sub_80958F8:
- ldr r0, _080958FC
- bx lr
- .align 2, 0
-_080958FC: .4byte gUnknown_2039448
- thumb_func_end sub_80958F8
-
- thumb_func_start sub_8095900
-sub_8095900:
- push {r4-r7,lr}
- movs r4, 0
-_08095904:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096040
- adds r4, 0x1
- cmp r4, 0x3
- ble _08095904
- movs r4, 0
-_08095914:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80965B8
- adds r4, 0x1
- cmp r4, 0x7
- ble _08095914
- movs r4, 0
-_08095924:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096C3C
- adds r4, 0x1
- cmp r4, 0x7
- ble _08095924
- movs r4, 0
- ldr r3, _080959B8
- movs r2, 0xBC
- lsls r2, 2
- movs r1, 0
-_0809593C:
- ldr r0, [r3]
- adds r0, r2
- adds r0, r4
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x37
- ble _0809593C
- ldr r4, _080959B8
- ldr r0, [r4]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- movs r7, 0xC8
- lsls r7, 1
- adds r0, r7
- movs r1, 0x28
- bl MemoryClear8
- ldr r0, [r4]
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r1
- movs r1, 0x78
- bl MemoryClear8
- adds r3, r4, 0
- movs r5, 0
- movs r2, 0
- movs r6, 0x8C
- lsls r6, 2
- movs r4, 0xF
-_08095980:
- ldr r0, [r3]
- adds r0, r2
- adds r0, r6
- movs r1, 0x63
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2
- ldr r7, _080959BC
- adds r0, r7
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r3]
- adds r7, 0x3
- adds r0, r1, r7
- adds r0, r2
- str r5, [r0]
- adds r7, 0x4
- adds r0, r1, r7
- adds r0, r2
- str r5, [r0]
- adds r2, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08095980
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080959B8: .4byte gUnknown_203B490
-_080959BC: .4byte 0x00000231
- thumb_func_end sub_8095900
-
- thumb_func_start sub_80959C0
-sub_80959C0:
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0x5
- bne _080959D6
- adds r0, r1, 0
- bl sub_80959DC
- lsls r0, 24
- lsrs r0, 24
- b _080959D8
-_080959D6:
- movs r0, 0
-_080959D8:
- pop {r1}
- bx r1
- thumb_func_end sub_80959C0
-
- thumb_func_start sub_80959DC
-sub_80959DC:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrb r0, [r5, 0x1]
- cmp r0, 0x4
- bls _080959E8
- b _08095B16
-_080959E8:
- cmp r0, 0x4
- bne _080959F8
- ldrb r0, [r5, 0x4]
- bl sub_8090114
- cmp r0, 0
- bne _080959F8
- b _08095B16
-_080959F8:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x9
- bls _08095A00
- b _08095B16
-_08095A00:
- ldrb r0, [r5, 0x4]
- bl sub_809095C
- lsls r0, 24
- cmp r0, 0
- beq _08095A0E
- b _08095B16
-_08095A0E:
- ldrb r4, [r5, 0x5]
- ldrb r0, [r5, 0x4]
- bl sub_8090298
- cmp r4, r0
- bge _08095B16
- adds r4, r5, 0x4
- adds r0, r4, 0
- bl sub_809017C
- lsls r0, 24
- adds r6, r4, 0
- cmp r0, 0
- bne _08095B16
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08095B16
- ldr r4, _08095B1C
- cmp r0, r4
- bgt _08095B16
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- bl sub_808E770
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _08095B16
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- bl sub_803C0DC
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, r4
- bgt _08095B16
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- bl sub_808E770
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _08095B16
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- bl sub_803C0DC
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08095A9C
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _08095B16
-_08095A9C:
- ldrb r0, [r5, 0x10]
- bl sub_8092040
- lsls r0, 24
- cmp r0, 0
- bne _08095B16
- ldrb r0, [r5, 0x10]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08095B16
- ldrb r0, [r5, 0x10]
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3
- bne _08095AD4
- ldrb r0, [r5, 0x4]
- ldrb r1, [r5, 0x10]
- bl sub_8091E60
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
-_08095AD4:
- ldrb r0, [r5, 0x11]
- cmp r0, 0x4
- beq _08095B16
- cmp r0, 0xA
- beq _08095B16
- cmp r0, 0xA
- bhi _08095B16
- ldrb r0, [r5, 0x12]
- bl sub_8092040
- lsls r0, 24
- cmp r0, 0
- bne _08095B16
- ldrb r0, [r5, 0x13]
- cmp r0, 0x39
- bhi _08095B16
- ldrb r0, [r5, 0x11]
- cmp r0, 0x9
- bne _08095B20
- ldrb r0, [r5, 0x13]
- bl sub_8092534
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08095B16
- ldrb r1, [r5, 0x1]
- adds r0, r6, 0
- bl sub_803C1D0
- lsls r0, 24
- cmp r0, 0
- bne _08095B20
-_08095B16:
- movs r0, 0
- b _08095B22
- .align 2, 0
-_08095B1C: .4byte 0x000001a7
-_08095B20:
- movs r0, 0x1
-_08095B22:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80959DC
-
- thumb_func_start sub_8095B28
-sub_8095B28:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _08095B44
- add sp, r4
- adds r4, r0, 0
- bl sub_8095CE0
- lsls r0, 24
- cmp r0, 0
- bne _08095B48
- movs r0, 0
- b _08095CCC
- .align 2, 0
-_08095B44: .4byte 0xfffffcb0
-_08095B48:
- movs r0, 0x5
- strb r0, [r4]
- movs r0, 0x8
- bl RandomCapped
- ldr r1, _08095BC8
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _08095B6C
- bl sub_8092178
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08095B6C
- strb r0, [r4, 0x1]
-_08095B6C:
- movs r0, 0
- strb r0, [r4, 0x2]
- bl Random
- ldr r1, _08095BCC
- ands r1, r0
- str r1, [r4, 0x8]
- movs r7, 0
- movs r5, 0x1
- adds r0, r4, 0x4
- mov r8, r0
- movs r1, 0x12
- adds r1, r4
- mov r9, r1
- mov r6, sp
-_08095B8A:
- lsls r0, r5, 16
- asrs r0, 16
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _08095B9E
- strh r5, [r6]
- adds r6, 0x2
- adds r7, 0x1
-_08095B9E:
- adds r5, 0x1
- ldr r0, _08095BD0
- cmp r5, r0
- ble _08095B8A
- cmp r7, 0
- beq _08095BD4
- adds r0, r7, 0
- bl RandomCapped
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
- adds r0, r7, 0
- bl RandomCapped
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- b _08095BDC
- .align 2, 0
-_08095BC8: .4byte gUnknown_8109984
-_08095BCC: .4byte 0x00ffffff
-_08095BD0: .4byte 0x000001a7
-_08095BD4:
- movs r0, 0x10
- strh r0, [r4, 0xC]
- movs r0, 0x91
- lsls r0, 1
-_08095BDC:
- strh r0, [r4, 0xE]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08095BEE
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
-_08095BEE:
- ldrb r0, [r4, 0x4]
- bl sub_8095F28
- strb r0, [r4, 0x10]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08095C10
- strb r0, [r4, 0x1]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- adds r2, r4, 0
- adds r2, 0x10
- mov r0, r8
- movs r1, 0
- bl sub_803C37C
-_08095C10:
- ldrb r0, [r4, 0x4]
- bl sub_8090114
- adds r1, r0, 0
- cmp r1, 0
- bne _08095C28
- ldrb r0, [r4, 0x1]
- cmp r0, 0x4
- bne _08095C28
- strb r1, [r4, 0x1]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
-_08095C28:
- ldrb r1, [r4, 0x1]
- mov r0, r8
- mov r2, r9
- bl sub_803C37C
- ldrb r0, [r4, 0x10]
- ldrb r1, [r4, 0x12]
- cmp r0, r1
- beq _08095C28
- movs r0, 0
- strb r0, [r4, 0x13]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- beq _08095C90
- cmp r0, 0x2
- bgt _08095C4E
- cmp r0, 0x1
- beq _08095C6C
- b _08095CCA
-_08095C4E:
- cmp r0, 0x4
- bgt _08095CCA
- bl Random
- adds r1, r0, 0
- movs r0, 0xE0
- lsls r0, 3
- ands r1, r0
- movs r0, 0xC0
- lsls r0, 2
- cmp r1, r0
- beq _08095CC4
- cmp r1, r0
- bgt _08095CB4
- b _08095CAA
-_08095C6C:
- bl Random
- adds r1, r0, 0
- movs r0, 0x70
- ands r1, r0
- cmp r1, 0x10
- beq _08095C80
- cmp r1, 0x30
- beq _08095C88
- b _08095CCA
-_08095C80:
- adds r0, r4, 0
- bl sub_803C3E0
- b _08095CCA
-_08095C88:
- adds r0, r4, 0
- bl sub_803C45C
- b _08095CCA
-_08095C90:
- bl Random
- movs r1, 0xC0
- lsls r1, 6
- ands r1, r0
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _08095CCA
- adds r0, r4, 0
- bl sub_803C4F0
- b _08095CCA
-_08095CAA:
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _08095CBC
- b _08095CCA
-_08095CB4:
- movs r0, 0xC0
- lsls r0, 3
- cmp r1, r0
- bne _08095CCA
-_08095CBC:
- adds r0, r4, 0
- bl sub_803C580
- b _08095CCA
-_08095CC4:
- adds r0, r4, 0
- bl sub_803C610
-_08095CCA:
- movs r0, 0x1
-_08095CCC:
- movs r3, 0xD4
- lsls r3, 2
- add sp, r3
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B28
-
- thumb_func_start sub_8095CE0
-sub_8095CE0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x60
- str r0, [sp, 0x44]
- mov r0, sp
- bl sub_80A29B0
- str r0, [sp, 0x4C]
- cmp r0, 0
- bne _08095D0C
- mov r0, sp
- add r1, sp, 0x4C
- ldrb r1, [r1]
- strb r1, [r0]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r2, 0x2
- str r2, [sp, 0x4C]
-_08095D0C:
- ldr r0, [sp, 0x4C]
- bl RandomCapped
- mov r9, r0
- str r0, [sp, 0x48]
- mov r1, sp
- adds r1, 0x40
- str r1, [sp, 0x5C]
-_08095D1C:
- mov r0, sp
- add r0, r9
- ldrb r7, [r0]
- adds r0, r7, 0
- bl sub_8090298
- str r0, [sp, 0x58]
- lsrs r0, 31
- ldr r2, [sp, 0x58]
- adds r0, r2, r0
- asrs r0, 1
- str r0, [sp, 0x54]
- adds r1, r2, 0
- bl RandomRange
- adds r4, r0, 0
- str r4, [sp, 0x50]
-_08095D3E:
- movs r0, 0x1
- mov r8, r0
- ldr r1, _08095DF4
- ldr r0, [sp, 0x40]
- ands r0, r1
- orrs r0, r7
- lsls r2, r4, 24
- lsrs r2, 16
- ldr r1, _08095DF8
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x40]
- ldr r0, [sp, 0x5C]
- bl sub_809017C
- lsls r0, 24
- cmp r0, 0
- beq _08095D66
- movs r1, 0
- mov r8, r1
-_08095D66:
- ldr r2, _08095DFC
- mov r10, r2
- movs r6, 0
- movs r5, 0x3
-_08095D6E:
- mov r1, r10
- ldr r0, [r1]
- adds r0, r6
- adds r1, r7, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- beq _08095D88
- movs r2, 0
- mov r8, r2
-_08095D88:
- adds r6, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _08095D6E
- ldr r0, _08095DFC
- mov r10, r0
- movs r6, 0x50
- movs r5, 0x7
-_08095D98:
- mov r1, r10
- ldr r0, [r1]
- adds r0, r6
- adds r1, r7, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- beq _08095DB2
- movs r2, 0
- mov r8, r2
-_08095DB2:
- adds r6, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _08095D98
- ldr r0, _08095DFC
- mov r10, r0
- movs r6, 0xF0
- movs r5, 0x7
-_08095DC2:
- mov r1, r10
- ldr r0, [r1]
- adds r0, r6
- adds r1, r7, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- beq _08095DDC
- movs r2, 0
- mov r8, r2
-_08095DDC:
- adds r6, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _08095DC2
- mov r0, r8
- cmp r0, 0
- beq _08095E00
- ldr r1, [sp, 0x44]
- strb r7, [r1, 0x4]
- strb r4, [r1, 0x5]
- movs r0, 0x1
- b _08095E28
- .align 2, 0
-_08095DF4: .4byte 0xffffff00
-_08095DF8: .4byte 0xffff00ff
-_08095DFC: .4byte gUnknown_203B490
-_08095E00:
- adds r4, 0x1
- ldr r2, [sp, 0x58]
- cmp r4, r2
- blt _08095E0A
- ldr r4, [sp, 0x54]
-_08095E0A:
- ldr r0, [sp, 0x50]
- cmp r4, r0
- bne _08095D3E
- movs r1, 0x1
- add r9, r1
- ldr r2, [sp, 0x4C]
- cmp r9, r2
- bne _08095E1E
- movs r0, 0
- mov r9, r0
-_08095E1E:
- ldr r1, [sp, 0x48]
- cmp r9, r1
- beq _08095E26
- b _08095D1C
-_08095E26:
- movs r0, 0
-_08095E28:
- add sp, 0x60
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CE0
-
- thumb_func_start sub_8095E38
-sub_8095E38:
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- cmp r0, 0
- beq _08095E6E
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _08095E5E
- cmp r3, 0x1
- bne _08095E5E
- ldrb r0, [r4, 0x4]
- cmp r0, r1
- bne _08095E6E
- movs r0, 0x1
- b _08095E70
-_08095E5E:
- ldrb r0, [r4, 0x4]
- cmp r0, r1
- bne _08095E6E
- ldrb r0, [r4, 0x5]
- cmp r0, r2
- bne _08095E6E
- movs r0, 0x1
- b _08095E70
-_08095E6E:
- movs r0, 0
-_08095E70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E38
-
- thumb_func_start sub_8095E78
-sub_8095E78:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x3C
- movs r6, 0
- movs r5, 0x1
-_08095E84:
- ldr r0, _08095F04
- ldr r0, [r0]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, r5, 0x1
- mov r8, r1
- cmp r0, 0
- bne _08095EF6
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8092534
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08095EF6
- movs r4, 0
- ldr r0, _08095F08
- ldr r1, [r0]
- movs r3, 0x3
-_08095EAC:
- ldrb r0, [r1]
- cmp r0, 0
- beq _08095EBA
- ldrb r0, [r1, 0x11]
- cmp r0, 0x9
- bne _08095EBA
- movs r4, 0x1
-_08095EBA:
- adds r1, 0x14
- subs r3, 0x1
- cmp r3, 0
- bge _08095EAC
- ldr r0, _08095F08
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xF0
- adds r1, r0, 0
- movs r3, 0x7
-_08095ECE:
- ldrb r0, [r2]
- cmp r0, 0
- beq _08095EE0
- ldr r7, _08095F0C
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x9
- bne _08095EE0
- movs r4, 0x1
-_08095EE0:
- adds r2, 0x14
- adds r1, 0x14
- subs r3, 0x1
- cmp r3, 0
- bge _08095ECE
- cmp r4, 0
- bne _08095EF6
- mov r1, sp
- adds r0, r1, r6
- strb r5, [r0]
- adds r6, 0x1
-_08095EF6:
- mov r5, r8
- cmp r5, 0x39
- ble _08095E84
- cmp r6, 0
- bne _08095F10
- movs r0, 0
- b _08095F1A
- .align 2, 0
-_08095F04: .4byte gUnknown_203B468
-_08095F08: .4byte gUnknown_203B490
-_08095F0C: .4byte 0x00000101
-_08095F10:
- adds r0, r6, 0
- bl RandomCapped
- add r0, sp
- ldrb r0, [r0]
-_08095F1A:
- add sp, 0x3C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E78
-
- thumb_func_start sub_8095F28
-sub_8095F28:
- push {r4-r7,lr}
- sub sp, 0xF0
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- movs r5, 0x1
-_08095F34:
- lsls r4, r5, 24
- cmp r7, 0x63
- beq _08095F48
- lsrs r1, r4, 24
- adds r0, r7, 0
- bl sub_8091E60
- lsls r0, 24
- cmp r0, 0
- beq _08095F6A
-_08095F48:
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08095F6A
- adds r0, r4, 0
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _08095F6A
- mov r1, sp
- adds r0, r1, r6
- strb r5, [r0]
- adds r6, 0x1
-_08095F6A:
- adds r5, 0x1
- cmp r5, 0xEF
- ble _08095F34
- cmp r6, 0
- beq _08095F80
- adds r0, r6, 0
- bl RandomCapped
- add r0, sp
- ldrb r0, [r0]
- b _08095F82
-_08095F80:
- movs r0, 0
-_08095F82:
- add sp, 0xF0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F28
-
- thumb_func_start sub_8095F8C
-sub_8095F8C:
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_08095F92:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096000
- lsls r0, 24
- cmp r0, 0
- bne _08095FA2
- adds r5, 0x1
-_08095FA2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08095F92
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F8C
-
- thumb_func_start sub_8095FB0
-sub_8095FB0:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _08095FD4
- movs r2, 0
-_08095FBA:
- ldr r0, [r5]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08095FD8
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3}
- stm r1!, {r2,r3}
- movs r0, 0
- b _08095FE2
- .align 2, 0
-_08095FD4: .4byte gUnknown_203B490
-_08095FD8:
- adds r2, 0x14
- adds r3, 0x1
- cmp r3, 0x3
- ble _08095FBA
- movs r0, 0x1
-_08095FE2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095FB0
-
- thumb_func_start sub_8095FE8
-sub_8095FE8:
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08095FFC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_08095FFC: .4byte gUnknown_203B490
- thumb_func_end sub_8095FE8
-
- thumb_func_start sub_8096000
-sub_8096000:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809601C
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- ldrb r0, [r2]
- cmp r0, 0
- beq _08096020
- movs r0, 0
- b _08096022
- .align 2, 0
-_0809601C: .4byte gUnknown_203B490
-_08096020:
- movs r0, 0x1
-_08096022:
- pop {r1}
- bx r1
- thumb_func_end sub_8096000
-
- thumb_func_start sub_8096028
-sub_8096028:
- push {r4,lr}
- movs r4, 0
-_0809602C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096040
- adds r4, 0x1
- cmp r4, 0x3
- ble _0809602C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8096028
-
- thumb_func_start sub_8096040
-sub_8096040:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08096074
- ldr r1, [r3]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 2
- adds r1, r2
- movs r4, 0
- strb r4, [r1]
- ldr r0, [r3]
- adds r0, r2
- movs r1, 0x63
- strb r1, [r0, 0x4]
- ldr r0, [r3]
- adds r0, r2
- strb r4, [r0, 0x5]
- ldr r0, [r3]
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x11]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096074: .4byte gUnknown_203B490
- thumb_func_end sub_8096040
-
- thumb_func_start sub_8096078
-sub_8096078:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- movs r3, 0
- ldr r0, _08096090
- mov r12, r0
- mov r8, r3
- movs r4, 0
- mov r9, r4
- b _080960B6
- .align 2, 0
-_08096090: .4byte gUnknown_203B490
-_08096094:
- cmp r2, r3
- ble _080960AA
- mov r1, r12
- ldr r0, [r1]
- mov r5, r8
- adds r1, r0, r5
- adds r0, r4
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_080960AA:
- adds r4, 0x14
- movs r0, 0x14
- add r9, r0
- adds r2, 0x1
- add r8, r0
- adds r3, 0x1
-_080960B6:
- cmp r2, 0x3
- bgt _080960E2
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080960E2
- ldr r6, _08096110
- mov r1, r9
-_080960CA:
- adds r1, 0x14
- adds r4, 0x14
- movs r5, 0x14
- add r9, r5
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080960E2
- ldr r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080960CA
-_080960E2:
- cmp r2, 0x4
- bne _08096094
- cmp r3, 0x3
- bgt _08096102
- ldr r4, _08096110
- movs r2, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
-_080960F4:
- ldr r0, [r4]
- adds r0, r1
- strb r2, [r0]
- adds r1, 0x14
- adds r3, 0x1
- cmp r3, 0x3
- ble _080960F4
-_08096102:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096110: .4byte gUnknown_203B490
- thumb_func_end sub_8096078
-
- thumb_func_start sub_8096114
-sub_8096114:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r1, 0
-_08096122:
- adds r0, r1, 0x1
- mov r10, r0
- mov r8, r10
- cmp r0, 0x3
- bgt _08096198
- ldr r2, _080961B0
- mov r9, r2
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r12, r0
- mov r3, r10
- lsls r0, r3, 2
- add r0, r10
- lsls r4, r0, 2
-_08096140:
- mov r5, r9
- ldr r1, [r5]
- adds r3, r1, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _0809618C
- mov r6, r12
- adds r2, r1, r6
- ldrb r1, [r2, 0x4]
- ldrb r0, [r3, 0x4]
- cmp r1, r0
- bhi _08096164
- cmp r1, r0
- bne _0809618C
- ldrb r0, [r2, 0x5]
- ldrb r7, [r3, 0x5]
- cmp r0, r7
- bls _0809618C
-_08096164:
- mov r1, sp
- adds r0, r2, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5,r6}
- stm r1!, {r5,r6}
- adds r1, r2, 0
- adds r0, r3, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r5,r6}
- stm r1!, {r5,r6}
- mov r7, r9
- ldr r1, [r7]
- adds r1, r4
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_0809618C:
- adds r4, 0x14
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x3
- ble _08096140
-_08096198:
- mov r1, r10
- cmp r1, 0x2
- ble _08096122
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080961B0: .4byte gUnknown_203B490
- thumb_func_end sub_8096114
-
- thumb_func_start sub_80961B4
-sub_80961B4:
- push {lr}
- bl sub_8096E2C
- lsls r0, 24
- cmp r0, 0
- beq _080961CE
- ldr r0, _080961D4
- ldr r0, [r0]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080961CE:
- pop {r0}
- bx r0
- .align 2, 0
-_080961D4: .4byte gUnknown_203B490
- thumb_func_end sub_80961B4
-
- thumb_func_start sub_80961D8
-sub_80961D8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- bl sub_8095F8C
- adds r6, r0, 0
- movs r1, 0x4
- bl RandomRange
- mov r8, r0
- cmp r6, 0x3
- bgt _08096202
- ldr r4, _08096208
- ldr r0, [r4]
- movs r2, 0xCA
- lsls r2, 2
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _0809620C
-_08096202:
- movs r0, 0
- b _080963A8
- .align 2, 0
-_08096208: .4byte gUnknown_203B490
-_0809620C:
- strb r7, [r1]
- movs r5, 0x38
- movs r0, 0xA
- movs r1, 0x31
- movs r2, 0x1
- bl sub_8001D08
- lsls r0, 24
- cmp r0, 0
- beq _0809623A
- ldr r0, [r4]
- ldr r1, _08096328
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809623A
- movs r0, 0x35
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _0809623A
- movs r5, 0x35
-_0809623A:
- movs r0, 0xF
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0809629C
- ldr r0, _0809632C
- ldr r0, [r0]
- movs r2, 0xC9
- lsls r2, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096264
- movs r0, 0x34
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _08096264
- movs r5, 0x34
-_08096264:
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r1, _08096330
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096280
- movs r0, 0x33
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _08096280
- movs r5, 0x33
-_08096280:
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r2, _08096334
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809629C
- movs r0, 0x32
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _0809629C
- movs r5, 0x32
-_0809629C:
- bl sub_8092178
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080962C4
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r1, _08096338
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080962C4
- movs r0, 0x36
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _080962C4
- movs r5, 0x36
-_080962C4:
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080962EC
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r2, _0809633C
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080962EC
- movs r0, 0x37
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _080962EC
- movs r5, 0x37
-_080962EC:
- cmp r5, 0x38
- bne _08096310
- cmp r6, r8
- bgt _08096392
- bl sub_8096E2C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xE
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _0809630C
- cmp r5, 0x2
- bhi _0809638E
-_0809630C:
- cmp r5, 0x31
- bhi _0809638E
-_08096310:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_8095FE8
- adds r4, r0, 0
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x62
- strb r0, [r4, 0x4]
- strb r5, [r4, 0x5]
- b _0809638A
- .align 2, 0
-_08096328: .4byte 0x00000325
-_0809632C: .4byte gUnknown_203B490
-_08096330: .4byte 0x00000323
-_08096334: .4byte 0x00000322
-_08096338: .4byte 0x00000326
-_0809633C: .4byte 0x00000327
-_08096340:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_8095FE8
- adds r4, r0, 0
- bl sub_8095B28
- lsls r0, 24
- cmp r0, 0
- beq _08096392
- bl sub_8095E78
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x4
- ldrb r1, [r4, 0x1]
- bl sub_803C1D0
- lsls r0, 24
- cmp r0, 0
- bne _0809636C
- movs r5, 0
-_0809636C:
- movs r0, 0x5
- movs r1, 0xA
- bl RandomRange
- strb r0, [r4, 0x11]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _0809638A
- cmp r5, 0
- bne _08096388
- movs r0, 0x5
- strb r0, [r4, 0x11]
- b _0809638A
-_08096388:
- strb r5, [r4, 0x13]
-_0809638A:
- movs r7, 0x1
- adds r6, 0x1
-_0809638E:
- cmp r6, r8
- ble _08096340
-_08096392:
- bl sub_80963B4
- lsls r0, 24
- cmp r0, 0
- beq _0809639E
- movs r7, 0x1
-_0809639E:
- bl sub_8096078
- bl sub_8096114
- adds r0, r7, 0
-_080963A8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80961D8
-
- thumb_func_start sub_80963B4
-sub_80963B4:
- push {r4-r6,lr}
- movs r6, 0
- bl sub_8096E2C
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8095F8C
- adds r4, r0, 0
- cmp r4, 0x3
- ble _080963CE
- movs r0, 0
- b _080963F4
-_080963CE:
- movs r0, 0xE
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080963F2
- cmp r5, 0x31
- bhi _080963F2
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8095FE8
- movs r1, 0x1
- strb r1, [r0]
- movs r1, 0x62
- strb r1, [r0, 0x4]
- strb r5, [r0, 0x5]
- movs r6, 0x1
-_080963F2:
- adds r0, r6, 0
-_080963F4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80963B4
-
- thumb_func_start sub_80963FC
-sub_80963FC:
- push {r4-r6,lr}
- movs r6, 0
-_08096400:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8095FE8
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08096418
- adds r0, r4, 0
- bl sub_8096040
-_08096418:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08096400
- bl sub_8096078
- bl sub_8095F8C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095FE8
- adds r5, r0, 0
- movs r0, 0
- movs r4, 0x5
- strb r4, [r5]
- strb r0, [r5, 0x1]
- strb r0, [r5, 0x2]
- movs r0, 0x2
- strb r0, [r5, 0x4]
- movs r0, 0x3
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096484
- ands r1, r0
- str r1, [r5, 0x8]
- movs r0, 0x10
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- ldrb r0, [r5, 0x4]
- bl sub_8095F28
- strb r0, [r5, 0x10]
- strb r4, [r5, 0x11]
-_0809645C:
- ldrb r1, [r5, 0x1]
- adds r0, r5, 0x4
- adds r2, r5, 0
- adds r2, 0x12
- bl sub_803C37C
- ldrb r0, [r5, 0x10]
- ldrb r1, [r5, 0x12]
- cmp r0, r1
- beq _0809645C
- movs r0, 0
- strb r0, [r5, 0x13]
- bl sub_8096078
- bl sub_8096114
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096484: .4byte 0x00ffffff
- thumb_func_end sub_80963FC
-
- thumb_func_start sub_8096488
-sub_8096488:
- push {r4,lr}
- movs r4, 0
-_0809648C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096040
- adds r4, 0x1
- cmp r4, 0x3
- ble _0809648C
- movs r0, 0
- bl sub_8095FE8
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- movs r1, 0x62
- strb r1, [r0, 0x4]
- strb r2, [r0, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8096488
-
- thumb_func_start sub_80964B4
-sub_80964B4:
- push {lr}
- ldr r0, _080964D4
- ldr r0, [r0]
- ldr r1, _080964D8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080964DC
- movs r0, 0x35
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _080964DC
- movs r0, 0
- b _080964DE
- .align 2, 0
-_080964D4: .4byte gUnknown_203B490
-_080964D8: .4byte 0x00000325
-_080964DC:
- movs r0, 0x1
-_080964DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80964B4
-
- thumb_func_start sub_80964E4
-sub_80964E4:
- push {lr}
- ldr r0, _08096504
- ldr r0, [r0]
- ldr r1, _08096508
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809650C
- movs r0, 0x36
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _0809650C
- movs r0, 0
- b _0809650E
- .align 2, 0
-_08096504: .4byte gUnknown_203B490
-_08096508: .4byte 0x00000326
-_0809650C:
- movs r0, 0x1
-_0809650E:
- pop {r1}
- bx r1
- thumb_func_end sub_80964E4
-
- thumb_func_start sub_8096514
-sub_8096514:
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_0809651A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_809658C
- lsls r0, 24
- cmp r0, 0
- bne _0809652A
- adds r5, 0x1
-_0809652A:
- adds r4, 0x1
- cmp r4, 0x7
- ble _0809651A
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096514
-
- thumb_func_start sub_8096538
-sub_8096538:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _08096560
- movs r2, 0
-_08096542:
- ldr r0, [r5]
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x50
- ldrb r0, [r1]
- cmp r0, 0
- bne _08096564
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3}
- stm r1!, {r2,r3}
- movs r0, 0
- b _0809656E
- .align 2, 0
-_08096560: .4byte gUnknown_203B490
-_08096564:
- adds r2, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096542
- movs r0, 0x1
-_0809656E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096538
-
- thumb_func_start sub_8096574
-sub_8096574:
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096588
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, 0x50
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_08096588: .4byte gUnknown_203B490
- thumb_func_end sub_8096574
-
- thumb_func_start sub_809658C
-sub_809658C:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080965AC
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- adds r2, 0x50
- ldrb r0, [r2]
- cmp r0, 0
- beq _080965B0
- movs r0, 0
- b _080965B2
- .align 2, 0
-_080965AC: .4byte gUnknown_203B490
-_080965B0:
- movs r0, 0x1
-_080965B2:
- pop {r1}
- bx r1
- thumb_func_end sub_809658C
-
- thumb_func_start sub_80965B8
-sub_80965B8:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080965F0
- ldr r1, [r4]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 2
- adds r1, r2
- adds r1, 0x50
- movs r3, 0
- strb r3, [r1]
- ldr r0, [r4]
- adds r0, r2
- adds r0, 0x54
- movs r1, 0x63
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r2
- adds r0, 0x55
- strb r3, [r0]
- ldr r0, [r4]
- adds r0, r2
- adds r0, 0x61
- strb r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080965F0: .4byte gUnknown_203B490
- thumb_func_end sub_80965B8
-
- thumb_func_start sub_80965F4
-sub_80965F4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- movs r3, 0
- ldr r0, _0809660C
- mov r12, r0
- mov r8, r3
- movs r4, 0
- mov r9, r4
- b _08096636
- .align 2, 0
-_0809660C: .4byte gUnknown_203B490
-_08096610:
- cmp r2, r3
- ble _0809662A
- mov r1, r12
- ldr r0, [r1]
- mov r5, r8
- adds r1, r0, r5
- adds r0, r4
- adds r1, 0x50
- adds r0, 0x50
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_0809662A:
- adds r4, 0x14
- movs r0, 0x14
- add r9, r0
- adds r2, 0x1
- add r8, r0
- adds r3, 0x1
-_08096636:
- cmp r2, 0x7
- bgt _08096666
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096666
- ldr r6, _08096694
- mov r1, r9
-_0809664C:
- adds r1, 0x14
- adds r4, 0x14
- movs r5, 0x14
- add r9, r5
- adds r2, 0x1
- cmp r2, 0x7
- bgt _08096666
- ldr r0, [r6]
- adds r0, r1
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809664C
-_08096666:
- cmp r2, 0x8
- bne _08096610
- cmp r3, 0x7
- bgt _08096688
- ldr r4, _08096694
- movs r2, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
-_08096678:
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0x50
- strb r2, [r0]
- adds r1, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096678
-_08096688:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096694: .4byte gUnknown_203B490
- thumb_func_end sub_80965F4
-
- thumb_func_start sub_8096698
-sub_8096698:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r1, 0
-_080966A6:
- adds r6, r1, 0x1
- mov r10, r6
- cmp r6, 0x7
- bgt _08096730
- ldr r0, _08096748
- mov r8, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r9, r0
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 2
-_080966C0:
- mov r2, r8
- ldr r1, [r2]
- adds r3, r1, r4
- adds r5, r3, 0
- adds r5, 0x50
- ldrb r0, [r5]
- cmp r0, 0
- beq _08096724
- add r1, r9
- mov r12, r1
- mov r0, r12
- adds r0, 0x54
- adds r1, r3, 0
- adds r1, 0x54
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bhi _080966F6
- cmp r2, r0
- bne _08096724
- mov r0, r12
- adds r0, 0x55
- adds r1, 0x1
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08096724
-_080966F6:
- mov r1, sp
- mov r0, r12
- adds r0, 0x50
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r3,r7}
- stm r1!, {r3,r7}
- mov r1, r12
- adds r1, 0x50
- adds r0, r5, 0
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r7}
- stm r1!, {r2,r7}
- mov r3, r8
- ldr r1, [r3]
- adds r1, r4
- adds r1, 0x50
- mov r0, sp
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
- ldm r0!, {r3,r5}
- stm r1!, {r3,r5}
-_08096724:
- adds r4, 0x14
- movs r7, 0x1
- add r10, r7
- mov r0, r10
- cmp r0, 0x7
- ble _080966C0
-_08096730:
- adds r1, r6, 0
- cmp r1, 0x6
- ble _080966A6
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096748: .4byte gUnknown_203B490
- thumb_func_end sub_8096698
-
- thumb_func_start sub_809674C
-sub_809674C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x4
- movs r1, 0x8
- bl RandomRange
- mov r8, r0
- ldr r3, _08096864
- movs r2, 0
- movs r1, 0
- movs r7, 0x7
-_08096764:
- ldr r0, [r3]
- adds r0, r1
- adds r0, 0x50
- strb r2, [r0]
- adds r1, 0x14
- subs r7, 0x1
- cmp r7, 0
- bge _08096764
- movs r7, 0
- movs r0, 0xE
- bl sub_8097318
- lsls r0, 24
- cmp r0, 0
- beq _080967C0
- movs r0, 0
- bl sub_8096574
- adds r5, r0, 0
- movs r4, 0x2
- strb r4, [r5]
- movs r0, 0x6
- strb r0, [r5, 0x1]
- movs r0, 0x1
- strb r0, [r5, 0x2]
- movs r0, 0x2A
- strb r0, [r5, 0x4]
- movs r0, 0xA
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096868
- ands r1, r0
- str r1, [r5, 0x8]
- movs r1, 0
- movs r0, 0xC2
- lsls r0, 1
- strh r0, [r5, 0xC]
- movs r0, 0x38
- strh r0, [r5, 0xE]
- strb r1, [r5, 0x10]
- strb r4, [r5, 0x11]
- movs r0, 0x3A
- strb r0, [r5, 0x12]
- strb r1, [r5, 0x13]
- movs r7, 0x1
-_080967C0:
- movs r0, 0xF
- bl sub_8097318
- lsls r0, 24
- cmp r0, 0
- beq _0809680A
- lsls r0, r7, 24
- lsrs r0, 24
- bl sub_8096574
- adds r5, r0, 0
- movs r0, 0x3
- strb r0, [r5]
- movs r0, 0x6
- strb r0, [r5, 0x1]
- movs r4, 0x2
- strb r4, [r5, 0x2]
- movs r0, 0x35
- strb r0, [r5, 0x4]
- movs r0, 0xF
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096868
- ands r1, r0
- str r1, [r5, 0x8]
- movs r1, 0
- movs r0, 0x82
- lsls r0, 1
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- strb r1, [r5, 0x10]
- strb r4, [r5, 0x11]
- movs r0, 0x3A
- strb r0, [r5, 0x12]
- strb r1, [r5, 0x13]
- adds r7, 0x1
-_0809680A:
- movs r0, 0x1C
- bl sub_8097318
- lsls r0, 24
- cmp r0, 0
- beq _08096854
- lsls r0, r7, 24
- lsrs r0, 24
- bl sub_8096574
- adds r5, r0, 0
- movs r0, 0x4
- strb r0, [r5]
- movs r0, 0x6
- strb r0, [r5, 0x1]
- movs r0, 0x3
- strb r0, [r5, 0x2]
- movs r0, 0x1A
- strb r0, [r5, 0x4]
- movs r0, 0x14
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096868
- ands r1, r0
- str r1, [r5, 0x8]
- movs r1, 0
- ldr r0, _0809686C
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- strb r1, [r5, 0x10]
- movs r0, 0x2
- strb r0, [r5, 0x11]
- movs r0, 0x3A
- strb r0, [r5, 0x12]
- strb r1, [r5, 0x13]
- adds r7, 0x1
-_08096854:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r5, r0, 0
- adds r5, 0x50
- adds r4, r0, 0
- b _08096886
- .align 2, 0
-_08096864: .4byte gUnknown_203B490
-_08096868: .4byte 0x00ffffff
-_0809686C: .4byte 0x0000014d
-_08096870:
- movs r0, 0
- movs r1, 0x4
- bl RandomRange
- ldr r1, [r6]
- adds r1, r4
- adds r1, 0x61
- strb r0, [r1]
- adds r5, 0x14
- adds r4, 0x14
- adds r7, 0x1
-_08096886:
- cmp r7, r8
- bgt _0809689A
- ldr r6, _080968AC
- ldr r0, [r6]
- adds r0, r5
- bl sub_8095B28
- lsls r0, 24
- cmp r0, 0
- bne _08096870
-_0809689A:
- bl sub_80965F4
- bl sub_8096698
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080968AC: .4byte gUnknown_203B490
- thumb_func_end sub_809674C
-
- thumb_func_start sub_80968B0
-sub_80968B0:
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r4, 0
- ldr r0, _08096928
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xF0
-_080968BE:
- ldrb r0, [r2]
- cmp r0, 0
- beq _0809692C
- ldrb r0, [r3, 0x1]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x2]
- ldrb r5, [r2, 0x2]
- cmp r0, r5
- bne _0809692C
- ldrb r0, [r3, 0x4]
- ldrb r1, [r2, 0x4]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x5]
- ldrb r5, [r2, 0x5]
- cmp r0, r5
- bne _0809692C
- ldr r1, [r3, 0x8]
- ldr r0, [r2, 0x8]
- cmp r1, r0
- bne _0809692C
- movs r0, 0xC
- ldrsh r1, [r3, r0]
- movs r5, 0xC
- ldrsh r0, [r2, r5]
- cmp r1, r0
- bne _0809692C
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- movs r5, 0xE
- ldrsh r0, [r2, r5]
- cmp r1, r0
- bne _0809692C
- ldrb r0, [r3, 0x10]
- ldrb r1, [r2, 0x10]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x11]
- ldrb r5, [r2, 0x11]
- cmp r0, r5
- bne _0809692C
- ldrb r0, [r3, 0x12]
- ldrb r1, [r2, 0x12]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x13]
- ldrb r5, [r2, 0x13]
- cmp r0, r5
- bne _0809692C
- movs r0, 0x1
- b _08096936
- .align 2, 0
-_08096928: .4byte gUnknown_203B490
-_0809692C:
- adds r2, 0x14
- adds r4, 0x1
- cmp r4, 0x7
- ble _080968BE
- movs r0, 0
-_08096936:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80968B0
-
- thumb_func_start sub_809693C
-sub_809693C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- ldrb r0, [r4, 0x4]
- mov r9, r0
- ldrb r0, [r4, 0x5]
- mov r8, r0
- movs r7, 0
- adds r0, r4, 0
- bl sub_80959C0
- lsls r0, 24
- cmp r0, 0
- bne _08096962
- b _0809699A
-_0809695E:
- movs r0, 0x1
- b _0809699C
-_08096962:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _0809696A
- movs r7, 0x1
-_0809696A:
- movs r6, 0
- movs r5, 0xF0
- movs r4, 0
-_08096970:
- ldr r0, _080969A8
- ldr r1, [r0]
- adds r0, r1, r4
- adds r0, 0xF0
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08096990
- adds r0, r1, r5
- mov r1, r9
- mov r2, r8
- adds r3, r7, 0
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- bne _0809695E
-_08096990:
- adds r5, 0x14
- adds r4, 0x14
- adds r6, 0x1
- cmp r6, 0x7
- ble _08096970
-_0809699A:
- movs r0, 0
-_0809699C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080969A8: .4byte gUnknown_203B490
- thumb_func_end sub_809693C
-
- thumb_func_start sub_80969AC
-sub_80969AC:
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_080969B2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096ACC
- lsls r0, 24
- cmp r0, 0
- bne _080969C2
- adds r5, 0x1
-_080969C2:
- adds r4, 0x1
- cmp r4, 0x7
- ble _080969B2
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80969AC
-
- thumb_func_start sub_80969D0
-sub_80969D0:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0
-_080969DA:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096AB4
- adds r1, r0, 0
- ldrb r0, [r1, 0x4]
- cmp r0, r6
- bne _080969FA
- ldrb r0, [r1]
- cmp r0, 0x6
- beq _080969F8
- cmp r0, 0x8
- beq _080969F8
- cmp r0, 0x9
- bne _080969FA
-_080969F8:
- adds r5, 0x1
-_080969FA:
- adds r4, 0x1
- cmp r4, 0x7
- ble _080969DA
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80969D0
-
- thumb_func_start sub_8096A08
-sub_8096A08:
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_08096A14:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096AB4
- adds r2, r0, 0
- ldrb r0, [r2, 0x4]
- cmp r0, r5
- bne _08096A68
- ldrb r0, [r2]
- cmp r0, 0x6
- bne _08096A68
- ldrb r0, [r2, 0x1]
- cmp r0, 0x2
- bne _08096A68
- ldr r1, _08096A60
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0x4A
- orrs r0, r1
- ldr r1, _08096A64
- ands r0, r1
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- add r0, sp, 0x8
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_808CFD0
- movs r0, 0x1
- b _08096A70
- .align 2, 0
-_08096A60: .4byte 0xffffff00
-_08096A64: .4byte 0xffff00ff
-_08096A68:
- adds r4, 0x1
- cmp r4, 0x7
- ble _08096A14
- movs r0, 0
-_08096A70:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8096A08
-
- thumb_func_start sub_8096A78
-sub_8096A78:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _08096AA0
- movs r2, 0
-_08096A82:
- ldr r0, [r5]
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0xF0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08096AA4
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3}
- stm r1!, {r2,r3}
- movs r0, 0
- b _08096AAE
- .align 2, 0
-_08096AA0: .4byte gUnknown_203B490
-_08096AA4:
- adds r2, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096A82
- movs r0, 0x1
-_08096AAE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096A78
-
- thumb_func_start sub_8096AB4
-sub_8096AB4:
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096AC8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, 0xF0
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_08096AC8: .4byte gUnknown_203B490
- thumb_func_end sub_8096AB4
-
- thumb_func_start sub_8096ACC
-sub_8096ACC:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08096AEC
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- adds r2, 0xF0
- ldrb r0, [r2]
- cmp r0, 0
- beq _08096AF0
- movs r0, 0
- b _08096AF2
- .align 2, 0
-_08096AEC: .4byte gUnknown_203B490
-_08096AF0:
- movs r0, 0x1
-_08096AF2:
- pop {r1}
- bx r1
- thumb_func_end sub_8096ACC
-
- thumb_func_start sub_8096AF8
-sub_8096AF8:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_8096AB4
- adds r3, r0, 0
- movs r1, 0
- strb r1, [r5]
- ldrh r0, [r3, 0xC]
- strh r0, [r5, 0x2]
- strh r1, [r5, 0x4]
- ldrb r0, [r3, 0x4]
- cmp r0, r4
- bne _08096B92
- ldrb r0, [r3, 0x1]
- cmp r0, 0x4
- bhi _08096B92
- lsls r0, 2
- ldr r1, _08096B30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096B30: .4byte _08096B34
- .align 2, 0
-_08096B34:
- .4byte _08096B78
- .4byte _08096B84
- .4byte _08096B84
- .4byte _08096B48
- .4byte _08096B78
-_08096B48:
- ldrb r0, [r3]
- cmp r0, 0x6
- bne _08096B92
- ldr r0, _08096B74
- movs r6, 0x1
- ldr r2, [r0]
- movs r4, 0x13
-_08096B56:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08096B6A
- ldrb r0, [r2, 0x2]
- ldrb r1, [r3, 0x10]
- cmp r0, r1
- bne _08096B6A
- strb r6, [r5]
-_08096B6A:
- adds r2, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08096B56
- b _08096B92
- .align 2, 0
-_08096B74: .4byte gUnknown_203B460
-_08096B78:
- ldrb r0, [r3]
- cmp r0, 0x9
- bne _08096B92
- movs r0, 0x1
- strb r0, [r5]
- b _08096B92
-_08096B84:
- ldrb r0, [r3]
- cmp r0, 0x9
- bne _08096B92
- movs r0, 0x1
- strb r0, [r5]
- ldrh r0, [r3, 0xE]
- strh r0, [r5, 0x4]
-_08096B92:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8096AF8
-
- thumb_func_start sub_8096B98
-sub_8096B98:
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_08096BA0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096AB4
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0x6
- bne _08096BC2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x2
- bne _08096BC2
- ldrb r0, [r1, 0x4]
- cmp r0, r5
- bne _08096BC2
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- b _08096BCA
-_08096BC2:
- adds r4, 0x1
- cmp r4, 0x7
- ble _08096BA0
- movs r0, 0
-_08096BCA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096B98
-
- thumb_func_start sub_8096BD0
-sub_8096BD0:
- push {r4,r5,lr}
- ldr r0, _08096C04
- ldr r0, [r0]
- adds r5, r0, 0
- adds r5, 0xF0
- movs r4, 0
-_08096BDC:
- ldrb r0, [r5]
- cmp r0, 0x9
- bgt _08096BEE
- cmp r0, 0x7
- blt _08096BEE
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096C3C
-_08096BEE:
- adds r5, 0x14
- adds r4, 0x1
- cmp r4, 0x7
- ble _08096BDC
- bl sub_8096C80
- bl sub_8096D24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C04: .4byte gUnknown_203B490
- thumb_func_end sub_8096BD0
-
- thumb_func_start sub_8096C08
-sub_8096C08:
- push {lr}
- adds r3, r0, 0
- ldr r0, _08096C28
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_08096C16:
- ldrb r0, [r1]
- cmp r0, 0x4
- bls _08096C2C
- ldrb r0, [r1, 0x2]
- cmp r0, 0x4
- bne _08096C2C
- strb r2, [r3]
- movs r0, 0x1
- b _08096C36
- .align 2, 0
-_08096C28: .4byte gUnknown_203B490
-_08096C2C:
- adds r1, 0x14
- adds r2, 0x1
- cmp r2, 0x7
- ble _08096C16
- movs r0, 0
-_08096C36:
- pop {r1}
- bx r1
- thumb_func_end sub_8096C08
-
- thumb_func_start sub_8096C3C
-sub_8096C3C:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08096C78
- ldr r1, [r3]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 2
- adds r1, r2
- adds r1, 0xF0
- movs r4, 0
- strb r4, [r1]
- ldr r0, [r3]
- adds r0, r2
- adds r0, 0xF4
- movs r1, 0x63
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2
- adds r0, 0xF5
- strb r4, [r0]
- ldr r0, [r3]
- adds r0, r2
- ldr r2, _08096C7C
- adds r1, r0, r2
- movs r0, 0x5
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C78: .4byte gUnknown_203B490
-_08096C7C: .4byte 0x00000101
- thumb_func_end sub_8096C3C
-
- thumb_func_start sub_8096C80
-sub_8096C80:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- movs r3, 0
- ldr r0, _08096C98
- mov r12, r0
- mov r8, r3
- movs r4, 0
- mov r9, r4
- b _08096CC2
- .align 2, 0
-_08096C98: .4byte gUnknown_203B490
-_08096C9C:
- cmp r2, r3
- ble _08096CB6
- mov r1, r12
- ldr r0, [r1]
- mov r5, r8
- adds r1, r0, r5
- adds r0, r4
- adds r1, 0xF0
- adds r0, 0xF0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_08096CB6:
- adds r4, 0x14
- movs r0, 0x14
- add r9, r0
- adds r2, 0x1
- add r8, r0
- adds r3, 0x1
-_08096CC2:
- cmp r2, 0x7
- bgt _08096CF2
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0xF0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096CF2
- ldr r6, _08096D20
- mov r1, r9
-_08096CD8:
- adds r1, 0x14
- adds r4, 0x14
- movs r5, 0x14
- add r9, r5
- adds r2, 0x1
- cmp r2, 0x7
- bgt _08096CF2
- ldr r0, [r6]
- adds r0, r1
- adds r0, 0xF0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096CD8
-_08096CF2:
- cmp r2, 0x8
- bne _08096C9C
- cmp r3, 0x7
- bgt _08096D14
- ldr r4, _08096D20
- movs r2, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
-_08096D04:
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0xF0
- strb r2, [r0]
- adds r1, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096D04
-_08096D14:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096D20: .4byte gUnknown_203B490
- thumb_func_end sub_8096C80
-
- thumb_func_start sub_8096D24
-sub_8096D24:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r1, 0
-_08096D32:
- adds r6, r1, 0x1
- mov r10, r6
- cmp r6, 0x7
- bgt _08096DBC
- ldr r0, _08096DD4
- mov r8, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r9, r0
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 2
-_08096D4C:
- mov r1, r8
- ldr r2, [r1]
- adds r3, r2, r4
- adds r5, r3, 0
- adds r5, 0xF0
- str r5, [sp, 0x14]
- ldrb r0, [r5]
- cmp r0, 0
- beq _08096DB0
- add r2, r9
- mov r12, r2
- mov r0, r12
- adds r0, 0xF4
- adds r1, r3, 0
- adds r1, 0xF4
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bhi _08096D84
- cmp r2, r0
- bne _08096DB0
- mov r0, r12
- adds r0, 0xF5
- adds r1, 0x1
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08096DB0
-_08096D84:
- mov r2, r12
- adds r2, 0xF0
- mov r1, sp
- adds r0, r2, 0
- ldm r0!, {r3,r5,r7}
- stm r1!, {r3,r5,r7}
- ldm r0!, {r3,r7}
- stm r1!, {r3,r7}
- ldr r0, [sp, 0x14]
- ldm r0!, {r1,r5,r7}
- stm r2!, {r1,r5,r7}
- ldm r0!, {r3,r5}
- stm r2!, {r3,r5}
- mov r7, r8
- ldr r1, [r7]
- adds r1, r4
- adds r1, 0xF0
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r7}
- stm r1!, {r2,r7}
-_08096DB0:
- adds r4, 0x14
- movs r3, 0x1
- add r10, r3
- mov r5, r10
- cmp r5, 0x7
- ble _08096D4C
-_08096DBC:
- adds r1, r6, 0
- cmp r1, 0x6
- ble _08096D32
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096DD4: .4byte gUnknown_203B490
- thumb_func_end sub_8096D24
-
- thumb_func_start sub_8096DD8
-sub_8096DD8:
- ldr r0, _08096DE4
- ldr r0, [r0]
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r1
- bx lr
- .align 2, 0
-_08096DE4: .4byte gUnknown_203B490
- thumb_func_end sub_8096DD8
-
- thumb_func_start sub_8096DE8
-sub_8096DE8:
- ldr r0, _08096DF4
- ldr r0, [r0]
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r1
- bx lr
- .align 2, 0
-_08096DF4: .4byte gUnknown_203B490
- thumb_func_end sub_8096DE8
-
- thumb_func_start sub_8096DF8
-sub_8096DF8:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08096E10
- ldr r1, [r1]
- movs r2, 0xBC
- lsls r2, 2
- adds r1, r2
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08096E10: .4byte gUnknown_203B490
- thumb_func_end sub_8096DF8
-
- thumb_func_start sub_8096E14
-sub_8096E14:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08096E28
- ldr r1, [r1]
- movs r2, 0xBC
- lsls r2, 2
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08096E28: .4byte gUnknown_203B490
- thumb_func_end sub_8096E14
-
- thumb_func_start sub_8096E2C
-sub_8096E2C:
- push {lr}
- movs r3, 0
- ldr r0, _08096E70
- ldr r1, [r0]
- movs r2, 0x3
-_08096E36:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _08096E48
- ldrb r0, [r1, 0x5]
- cmp r3, r0
- bgt _08096E48
- cmp r0, 0x31
- bhi _08096E48
- adds r3, r0, 0x1
-_08096E48:
- adds r1, 0x14
- subs r2, 0x1
- cmp r2, 0
- bge _08096E36
- adds r2, r3, 0
- cmp r2, 0x31
- bgt _08096E7A
- ldr r0, _08096E70
- ldr r0, [r0]
- movs r3, 0xBC
- lsls r3, 2
- adds r1, r0, r3
-_08096E60:
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096E74
- lsls r0, r2, 24
- lsrs r0, 24
- b _08096E7C
- .align 2, 0
-_08096E70: .4byte gUnknown_203B490
-_08096E74:
- adds r2, 0x1
- cmp r2, 0x31
- ble _08096E60
-_08096E7A:
- movs r0, 0x38
-_08096E7C:
- pop {r1}
- bx r1
- thumb_func_end sub_8096E2C
-
- thumb_func_start sub_8096E80
-sub_8096E80:
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08096E9C
- ldr r1, [r0]
-_08096E8C:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _08096EA0
- ldrb r0, [r1, 0x5]
- cmp r3, r0
- bne _08096EA0
- movs r0, 0x1
- b _08096EAA
- .align 2, 0
-_08096E9C: .4byte gUnknown_203B490
-_08096EA0:
- adds r1, 0x14
- adds r2, 0x1
- cmp r2, 0x3
- ble _08096E8C
- movs r0, 0
-_08096EAA:
- pop {r1}
- bx r1
- thumb_func_end sub_8096E80
-
- thumb_func_start sub_8096EB0
-sub_8096EB0:
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0, 0x1]
- adds r1, r2
- ldrb r3, [r0, 0x4]
- adds r2, r1, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1
- ldr r1, [r0, 0x8]
- lsls r1, 8
- adds r2, r1
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- lsls r1, 12
- adds r2, r1
- movs r3, 0xE
- ldrsh r1, [r0, r3]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r0, 0x10]
- lsls r1, 24
- adds r1, r2, r1
- ldrb r3, [r0, 0x11]
- adds r2, r1, r3
- ldrb r1, [r0, 0x12]
- adds r1, r2, r1
- ldrb r0, [r0, 0x13]
- adds r2, r1, r0
- adds r0, r2, 0
- bx lr
- thumb_func_end sub_8096EB0
-
- thumb_func_start sub_8096EEC
-sub_8096EEC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- movs r3, 0xF
- ldr r5, _08096F4C
- mov r8, r5
- movs r4, 0x8C
- lsls r4, 2
-_08096EFE:
- mov r0, r8
- ldr r2, [r0]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2, r1
- subs r3, 0x1
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r2, r0
- adds r1, r4
- adds r2, r4
- ldm r2!, {r0,r6,r7}
- stm r1!, {r0,r6,r7}
- cmp r3, 0
- bgt _08096EFE
- ldr r2, [r5]
- movs r3, 0x8C
- lsls r3, 2
- adds r2, r3
- mov r6, r12
- ldr r0, [r6, 0x4]
- ldr r1, [r6, 0x8]
- str r0, [r2]
- str r1, [r2, 0x4]
- mov r0, r12
- bl sub_8096EB0
- ldr r1, [r5]
- movs r7, 0x8E
- lsls r7, 2
- adds r1, r7
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096F4C: .4byte gUnknown_203B490
- thumb_func_end sub_8096EEC
-
- thumb_func_start sub_8096F50
-sub_8096F50:
- push {r4-r7,lr}
- adds r4, r0, 0
- bl sub_8096EB0
- mov r12, r0
- movs r5, 0
- ldr r0, _08096F8C
- ldr r7, [r0]
- ldrb r6, [r4, 0x4]
- movs r3, 0
-_08096F64:
- movs r1, 0x8C
- lsls r1, 2
- adds r0, r3, r1
- adds r2, r7, r0
- ldrb r0, [r2]
- cmp r0, r6
- bne _08096F90
- ldrb r0, [r2, 0x1]
- ldrb r1, [r4, 0x5]
- cmp r0, r1
- bne _08096F90
- ldr r1, [r2, 0x4]
- ldr r0, [r4, 0x8]
- cmp r1, r0
- bne _08096F90
- ldr r0, [r2, 0x8]
- cmp r0, r12
- bne _08096F90
- movs r0, 0x1
- b _08096F9A
- .align 2, 0
-_08096F8C: .4byte gUnknown_203B490
-_08096F90:
- adds r3, 0xC
- adds r5, 0x1
- cmp r5, 0xF
- ble _08096F64
- movs r0, 0
-_08096F9A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8096F50
-
- thumb_func_start sub_8096FA0
-sub_8096FA0:
- push {r4-r7,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- add r7, sp, 0x10
- ldr r6, _08097020
- movs r5, 0
- movs r4, 0x3
-_08096FB8:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80971EC
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08096FB8
- ldr r6, _08097020
- movs r5, 0x50
- movs r4, 0x7
-_08096FD0:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80971EC
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08096FD0
- ldr r6, _08097020
- movs r5, 0xF0
- movs r4, 0x7
-_08096FE8:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80971EC
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08096FE8
- movs r4, 0
- movs r6, 0x1
- ldr r5, _08097020
-_08097000:
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_8094924
- ldr r1, [sp, 0x10]
- ands r1, r6
- cmp r1, 0
- beq _08097024
- ldr r0, [r5]
- movs r1, 0xBC
- lsls r1, 2
- adds r0, r1
- adds r0, r4
- strb r6, [r0]
- b _08097030
- .align 2, 0
-_08097020: .4byte gUnknown_203B490
-_08097024:
- ldr r0, [r5]
- movs r2, 0xBC
- lsls r2, 2
- adds r0, r2
- adds r0, r4
- strb r1, [r0]
-_08097030:
- adds r4, 0x1
- cmp r4, 0x37
- ble _08097000
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_8094924
- ldr r1, [sp, 0x10]
- movs r2, 0x1
- ands r1, r2
- cmp r1, 0
- beq _0809705C
- ldr r0, _08097058
- ldr r0, [r0]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- strb r2, [r0]
- b _08097068
- .align 2, 0
-_08097058: .4byte gUnknown_203B490
-_0809705C:
- ldr r0, _080970D4
- ldr r0, [r0]
- movs r2, 0xCA
- lsls r2, 2
- adds r0, r2
- strb r1, [r0]
-_08097068:
- ldr r4, _080970D4
- ldr r1, [r4]
- movs r0, 0xC8
- lsls r0, 1
- adds r1, r0
- movs r2, 0xA0
- lsls r2, 1
- mov r0, sp
- bl sub_8094924
- ldr r1, [r4]
- movs r2, 0xDC
- lsls r2, 1
- adds r1, r2
- movs r2, 0xF0
- lsls r2, 2
- mov r0, sp
- bl sub_8094924
- adds r6, r4, 0
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0xF
-_08097096:
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x8
- mov r0, sp
- movs r2, 0x20
- bl sub_8094924
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x4
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8090314
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08097096
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080970D4: .4byte gUnknown_203B490
- thumb_func_end sub_8096FA0
-
- thumb_func_start sub_80970D8
-sub_80970D8:
- push {r4-r7,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- add r7, sp, 0x10
- ldr r6, _080971E8
- movs r5, 0
- movs r4, 0x3
-_080970F0:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8097270
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _080970F0
- ldr r6, _080971E8
- movs r5, 0x50
- movs r4, 0x7
-_08097108:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8097270
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08097108
- ldr r6, _080971E8
- movs r5, 0xF0
- movs r4, 0x7
-_08097120:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8097270
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08097120
- movs r4, 0
-_08097134:
- ldr r0, _080971E8
- ldr r0, [r0]
- movs r1, 0xBC
- lsls r1, 2
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809714A
- movs r0, 0x1
- negs r0, r0
-_0809714A:
- str r0, [sp, 0x10]
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_809488C
- adds r4, 0x1
- cmp r4, 0x37
- ble _08097134
- ldr r0, _080971E8
- ldr r0, [r0]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097170
- movs r0, 0x1
- negs r0, r0
-_08097170:
- str r0, [sp, 0x10]
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r4, _080971E8
- ldr r1, [r4]
- movs r0, 0xC8
- lsls r0, 1
- adds r1, r0
- movs r2, 0xA0
- lsls r2, 1
- mov r0, sp
- bl sub_809488C
- ldr r1, [r4]
- movs r0, 0xDC
- lsls r0, 1
- adds r1, r0
- movs r2, 0xF0
- lsls r2, 2
- mov r0, sp
- bl sub_809488C
- adds r6, r4, 0
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0xF
-_080971AA:
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x8
- mov r0, sp
- movs r2, 0x20
- bl sub_809488C
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x4
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80902F4
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _080971AA
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080971E8: .4byte gUnknown_203B490
- thumb_func_end sub_80970D8
-
- thumb_func_start sub_80971EC
-sub_80971EC:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x3
- bl sub_8094924
- adds r1, r5, 0x2
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0xE
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x12
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x13
- adds r0, r4, 0
- movs r2, 0x6
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x18
- bl sub_8094924
- adds r1, r5, 0x4
- adds r0, r4, 0
- bl sub_8090314
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80971EC
-
- thumb_func_start sub_8097270
-sub_8097270:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x3
- bl sub_809488C
- adds r1, r5, 0x2
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0xE
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x12
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x13
- adds r0, r4, 0
- movs r2, 0x6
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x18
- bl sub_809488C
- adds r1, r5, 0x4
- adds r0, r4, 0
- bl sub_80902F4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8097270
-
- thumb_func_start sub_80972F4
-sub_80972F4:
- push {lr}
- movs r0, 0
- movs r1, 0x2B
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x2C
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x2D
- bl sub_80015C0
- pop {r0}
- bx r0
- thumb_func_end sub_80972F4
-
- thumb_func_start nullsub_128
-nullsub_128:
- bx lr
- thumb_func_end nullsub_128
-
- thumb_func_start sub_8097318
-sub_8097318:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _08097326
- movs r0, 0
- b _08097338
-_08097326:
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2B
- bl sub_8001784
- cmp r0, 0
- beq _08097338
- movs r0, 0x1
-_08097338:
- pop {r1}
- bx r1
- thumb_func_end sub_8097318
-
- thumb_func_start sub_809733C
-sub_809733C:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r4, 0xD
- beq _0809737C
- lsls r0, r4, 16
- lsrs r5, r0, 16
- movs r0, 0
- movs r1, 0x2C
- adds r2, r5, 0
- bl sub_8001784
- cmp r0, 0
- bne _0809737C
- movs r0, 0
- movs r1, 0x2B
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_800199C
- cmp r6, 0
- beq _0809737C
- cmp r4, 0xE
- blt _0809737C
- cmp r4, 0xF
- ble _08097378
- cmp r4, 0x1C
- bne _0809737C
-_08097378:
- bl sub_809674C
-_0809737C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809733C
-
- thumb_func_start sub_8097384
-sub_8097384:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _08097392
- movs r0, 0
- b _080973A4
-_08097392:
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2C
- bl sub_8001784
- cmp r0, 0
- beq _080973A4
- movs r0, 0x1
-_080973A4:
- pop {r1}
- bx r1
- thumb_func_end sub_8097384
-
- thumb_func_start sub_80973A8
-sub_80973A8:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r0, 0xD
- beq _080973EE
- lsls r5, r0, 16
- cmp r6, 0
- beq _080973E2
- bl sub_80A26B8
- lsls r0, 16
- asrs r4, r0, 16
- lsrs r2, r5, 16
- movs r0, 0
- movs r1, 0x2B
- movs r3, 0
- bl sub_800199C
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _080973E2
- movs r0, 0
- movs r1, 0x12
- adds r2, r4, 0
- bl sub_80018D8
-_080973E2:
- lsrs r2, r5, 16
- movs r0, 0
- movs r1, 0x2C
- adds r3, r6, 0
- bl sub_800199C
-_080973EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80973A8
-
- thumb_func_start sub_80973F4
-sub_80973F4:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _08097402
- movs r0, 0
- b _08097414
-_08097402:
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2D
- bl sub_8001784
- cmp r0, 0
- beq _08097414
- movs r0, 0x1
-_08097414:
- pop {r1}
- bx r1
- thumb_func_end sub_80973F4
-
- thumb_func_start sub_8097418
-sub_8097418:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r5, 0xD
- beq _08097470
- lsls r6, r5, 16
- cmp r7, 0
- beq _08097464
- lsrs r2, r6, 16
- movs r0, 0
- movs r1, 0x2C
- movs r3, 0
- bl sub_800199C
- cmp r5, 0x1E
- bgt _08097464
- lsls r0, r5, 3
- ldr r1, _08097478
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- cmp r0, 0xFF
- beq _0809744C
- bl sub_8097FA8
-_0809744C:
- ldrb r0, [r4, 0x5]
- cmp r0, 0xFF
- beq _08097456
- bl sub_8097FA8
-_08097456:
- cmp r5, 0x9
- bne _08097460
- movs r0, 0x1F
- bl sub_8097FA8
-_08097460:
- bl sub_8097FF8
-_08097464:
- lsrs r2, r6, 16
- movs r0, 0
- movs r1, 0x2D
- adds r3, r7, 0
- bl sub_800199C
-_08097470:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08097478: .4byte gUnknown_8109994
- thumb_func_end sub_8097418
-
- thumb_func_start sub_809747C
-sub_809747C:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _08097494
- bl sub_80A270C
- lsls r0, 24
- lsrs r0, 24
- bl sub_809009C
- b _08097496
-_08097494:
- ldr r0, _0809749C
-_08097496:
- pop {r1}
- bx r1
- .align 2, 0
-_0809749C: .4byte gUnknown_8109CA8
- thumb_func_end sub_809747C
-
- thumb_func_start sub_80974A0
-sub_80974A0:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _080974B8
- bl sub_80A270C
- lsls r0, 24
- lsrs r0, 24
- bl sub_809009C
- b _080974BA
-_080974B8:
- ldr r0, _080974C0
-_080974BA:
- pop {r1}
- bx r1
- .align 2, 0
-_080974C0: .4byte gUnknown_8109CA8
- thumb_func_end sub_80974A0
-
- thumb_func_start sub_80974C4
-sub_80974C4:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080974D8
- ldr r0, _080974D4
- b _080974E0
- .align 2, 0
-_080974D4: .4byte gUnknown_8109CC0
-_080974D8:
- lsls r0, 3
- ldr r1, _080974E4
- adds r0, r1
- ldr r0, [r0]
-_080974E0:
- pop {r1}
- bx r1
- .align 2, 0
-_080974E4: .4byte gUnknown_8109994
- thumb_func_end sub_80974C4
-
- thumb_func_start sub_80974E8
-sub_80974E8:
- push {lr}
- movs r0, 0
- movs r1, 0x2E
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x2F
- bl sub_80015C0
- pop {r0}
- bx r0
- thumb_func_end sub_80974E8
-
- thumb_func_start nullsub_208
-nullsub_208:
- bx lr
- thumb_func_end nullsub_208
-
- thumb_func_start sub_8097504
-sub_8097504:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x10
- bgt _08097568
- cmp r0, 0xE
- bhi _08097580
- lsls r0, 2
- ldr r1, _08097520
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097520: .4byte _08097524
- .align 2, 0
-_08097524:
- .4byte _08097564
- .4byte _08097564
- .4byte _08097560
- .4byte _08097580
- .4byte _08097580
- .4byte _08097564
- .4byte _08097580
- .4byte _08097564
- .4byte _08097580
- .4byte _08097564
- .4byte _08097560
- .4byte _08097560
- .4byte _08097560
- .4byte _08097574
- .4byte _08097564
-_08097560:
- movs r0, 0xE
- b _08097576
-_08097564:
- movs r0, 0xF
- b _08097576
-_08097568:
- cmp r1, 0x16
- bgt _08097584
- cmp r1, 0x16
- beq _08097584
- cmp r1, 0x15
- beq _08097584
-_08097574:
- movs r0, 0x6
-_08097576:
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _08097584
-_08097580:
- movs r0, 0x1
- b _08097586
-_08097584:
- movs r0, 0
-_08097586:
- pop {r1}
- bx r1
- thumb_func_end sub_8097504
-
- thumb_func_start sub_809758C
-sub_809758C:
- push {lr}
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2E
- bl sub_8001784
- cmp r0, 0
- beq _080975A2
- movs r0, 0x1
-_080975A2:
- pop {r1}
- bx r1
- thumb_func_end sub_809758C
-
- thumb_func_start sub_80975A8
-sub_80975A8:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2E
- bl sub_800199C
- pop {r0}
- bx r0
- thumb_func_end sub_80975A8
-
- thumb_func_start sub_80975C4
-sub_80975C4:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2728
- lsls r0, 24
- lsrs r0, 24
- bl sub_809009C
- pop {r1}
- bx r1
- thumb_func_end sub_80975C4
-
- thumb_func_start sub_80975DC
-sub_80975DC:
- push {lr}
- lsls r0, 16
- ldr r1, _08097600
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08097610
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x3
- movs r1, 0xE
- bl sub_8001D08
- lsls r0, 24
- cmp r0, 0
- beq _08097608
- ldr r0, _08097604
- b _08097612
- .align 2, 0
-_08097600: .4byte 0xffe90000
-_08097604: .4byte gUnknown_8109CD4
-_08097608:
- ldr r0, _0809760C
- b _08097612
- .align 2, 0
-_0809760C: .4byte gUnknown_8109CE4
-_08097610:
- ldr r0, _08097618
-_08097612:
- pop {r1}
- bx r1
- .align 2, 0
-_08097618: .4byte gUnknown_8109CF4
- thumb_func_end sub_80975DC
-
- thumb_func_start sub_809761C
-sub_809761C:
- push {r4,lr}
- movs r4, 0
-_08097620:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_809758C
- lsls r0, 24
- cmp r0, 0
- bne _08097632
- movs r0, 0
- b _0809763A
-_08097632:
- adds r4, 0x1
- cmp r4, 0x10
- ble _08097620
- movs r0, 0x1
-_0809763A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809761C
-
- thumb_func_start sub_8097640
-sub_8097640:
- push {lr}
- movs r0, 0
- movs r1, 0x2E
- movs r2, 0x1F
- bl sub_8001784
- cmp r0, 0
- bne _0809766A
- bl sub_809761C
- lsls r0, 24
- cmp r0, 0
- beq _0809766A
- movs r0, 0
- movs r1, 0x2E
- movs r2, 0x1F
- movs r3, 0x1
- bl sub_800199C
- movs r0, 0x1
- b _0809766C
-_0809766A:
- movs r0, 0
-_0809766C:
- pop {r1}
- bx r1
- thumb_func_end sub_8097640
-
- thumb_func_start sub_8097670
-sub_8097670:
- ldr r1, _08097678
- ldr r0, _0809767C
- str r0, [r1]
- bx lr
- .align 2, 0
-_08097678: .4byte gUnknown_203B494
-_0809767C: .4byte gUnknown_2039778
- thumb_func_end sub_8097670
-
- thumb_func_start sub_8097680
-sub_8097680:
- ldr r0, _08097684
- bx lr
- .align 2, 0
-_08097684: .4byte gUnknown_2039778
- thumb_func_end sub_8097680
-
- thumb_func_start sub_8097688
-sub_8097688:
- ldr r3, _08097698
- ldr r2, [r3]
- ldrb r1, [r0]
- strb r1, [r2, 0x10]
- ldr r1, [r3]
- ldrb r0, [r0, 0x1]
- strb r0, [r1, 0x11]
- bx lr
- .align 2, 0
-_08097698: .4byte gUnknown_203B494
- thumb_func_end sub_8097688
-
- thumb_func_start sub_809769C
-sub_809769C:
- ldr r0, _080976A4
- ldr r0, [r0]
- adds r0, 0x10
- bx lr
- .align 2, 0
-_080976A4: .4byte gUnknown_203B494
- thumb_func_end sub_809769C
-
- thumb_func_start sub_80976A8
-sub_80976A8:
- push {r4,lr}
- ldr r3, _080976F4
- ldr r1, [r3]
- movs r0, 0
- str r0, [r1]
- strh r0, [r1, 0x14]
- strh r0, [r1, 0x16]
- strh r0, [r1, 0x18]
- adds r2, r1, 0
- adds r2, 0xC0
- str r0, [r2]
- str r0, [r1, 0x8]
- str r0, [r1, 0xC]
- movs r2, 0
- adds r4, r3, 0
- movs r3, 0
-_080976C8:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0x1C
- adds r0, r1
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0xD
- ble _080976C8
- movs r2, 0
- ldr r4, _080976F4
- movs r3, 0
-_080976DE:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0x8C
- adds r0, r1
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0xC
- ble _080976DE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080976F4: .4byte gUnknown_203B494
- thumb_func_end sub_80976A8
-
- thumb_func_start sub_80976F8
-sub_80976F8:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809770C
- ldr r2, [r1]
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_0809770C: .4byte gUnknown_203B494
- thumb_func_end sub_80976F8
-
- thumb_func_start sub_8097710
-sub_8097710:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809772C
- ldr r2, [r1]
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08097730
- movs r0, 0
- b _08097732
- .align 2, 0
-_0809772C: .4byte gUnknown_203B494
-_08097730:
- movs r0, 0x1
-_08097732:
- pop {r1}
- bx r1
- thumb_func_end sub_8097710
-
- thumb_func_start sub_8097738
-sub_8097738:
- lsls r0, 24
- ldr r1, _08097744
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08097744: .4byte gUnknown_810B04C
- thumb_func_end sub_8097738
-
- thumb_func_start sub_8097748
-sub_8097748:
- ldr r0, _08097754
- ldr r1, [r0]
- movs r0, 0
- str r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08097754: .4byte gUnknown_203B494
- thumb_func_end sub_8097748
-
- thumb_func_start sub_8097758
-sub_8097758:
- push {lr}
- ldr r0, _08097770
- ldr r1, [r0]
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- ldr r2, _08097774
- cmp r0, r2
- ble _0809776C
- str r2, [r1, 0x4]
-_0809776C:
- pop {r0}
- bx r0
- .align 2, 0
-_08097770: .4byte gUnknown_203B494
-_08097774: .4byte 0x0001869f
- thumb_func_end sub_8097758
-
- thumb_func_start sub_8097778
-sub_8097778:
- ldr r0, _08097780
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_08097780: .4byte gUnknown_203B494
- thumb_func_end sub_8097778
-
- thumb_func_start sub_8097784
-sub_8097784:
- ldr r1, _0809778C
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_0809778C: .4byte gUnknown_203B494
- thumb_func_end sub_8097784
-
- thumb_func_start sub_8097790
-sub_8097790:
- push {lr}
- ldr r0, _080977B0
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- ldr r2, _080977B4
- cmp r0, r2
- ble _080977A4
- str r2, [r1, 0x8]
-_080977A4:
- movs r0, 0x8
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_080977B0: .4byte gUnknown_203B494
-_080977B4: .4byte 0x0001869f
- thumb_func_end sub_8097790
-
- thumb_func_start sub_80977B8
-sub_80977B8:
- ldr r0, _080977C0
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bx lr
- .align 2, 0
-_080977C0: .4byte gUnknown_203B494
- thumb_func_end sub_80977B8
-
- thumb_func_start sub_80977C4
-sub_80977C4:
- ldr r1, _080977CC
- ldr r1, [r1]
- str r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_080977CC: .4byte gUnknown_203B494
- thumb_func_end sub_80977C4
-
- thumb_func_start sub_80977D0
-sub_80977D0:
- push {lr}
- ldr r0, _080977F0
- ldr r1, [r0]
- ldr r0, [r1, 0xC]
- adds r0, 0x1
- str r0, [r1, 0xC]
- ldr r2, _080977F4
- cmp r0, r2
- ble _080977E4
- str r2, [r1, 0xC]
-_080977E4:
- movs r0, 0x9
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_080977F0: .4byte gUnknown_203B494
-_080977F4: .4byte 0x0001869f
- thumb_func_end sub_80977D0
-
- thumb_func_start sub_80977F8
-sub_80977F8:
- ldr r0, _08097800
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- bx lr
- .align 2, 0
-_08097800: .4byte gUnknown_203B494
- thumb_func_end sub_80977F8
-
- thumb_func_start sub_8097804
-sub_8097804:
- ldr r1, _0809780C
- ldr r1, [r1]
- str r0, [r1, 0xC]
- bx lr
- .align 2, 0
-_0809780C: .4byte gUnknown_203B494
- thumb_func_end sub_8097804
-
- thumb_func_start sub_8097810
-sub_8097810:
- push {lr}
- ldr r0, _08097830
- ldr r2, [r0]
- ldrh r3, [r2, 0x14]
- movs r0, 0x14
- ldrsh r1, [r2, r0]
- ldr r0, _08097834
- cmp r1, r0
- bgt _08097826
- adds r0, r3, 0x1
- strh r0, [r2, 0x14]
-_08097826:
- movs r0, 0xB
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_08097830: .4byte gUnknown_203B494
-_08097834: .4byte 0x0000270e
- thumb_func_end sub_8097810
-
- thumb_func_start sub_8097838
-sub_8097838:
- ldr r0, _08097844
- ldr r0, [r0]
- movs r1, 0x14
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08097844: .4byte gUnknown_203B494
- thumb_func_end sub_8097838
-
- thumb_func_start sub_8097848
-sub_8097848:
- push {lr}
- ldr r0, _08097868
- ldr r2, [r0]
- ldrh r3, [r2, 0x16]
- movs r0, 0x16
- ldrsh r1, [r2, r0]
- ldr r0, _0809786C
- cmp r1, r0
- bgt _0809785E
- adds r0, r3, 0x1
- strh r0, [r2, 0x16]
-_0809785E:
- movs r0, 0xA
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_08097868: .4byte gUnknown_203B494
-_0809786C: .4byte 0x0000270e
- thumb_func_end sub_8097848
-
- thumb_func_start sub_8097870
-sub_8097870:
- ldr r0, _0809787C
- ldr r0, [r0]
- movs r1, 0x16
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0809787C: .4byte gUnknown_203B494
- thumb_func_end sub_8097870
-
- thumb_func_start sub_8097880
-sub_8097880:
- ldr r0, _0809788C
- ldr r0, [r0]
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0809788C: .4byte gUnknown_203B494
- thumb_func_end sub_8097880
-
- thumb_func_start sub_8097890
-sub_8097890:
- push {lr}
- ldr r0, _080978B0
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xC0
- ldr r1, [r2]
- ldr r0, _080978B4
- cmp r1, r0
- bgt _080978A6
- adds r0, r1, 0x1
- str r0, [r2]
-_080978A6:
- movs r0, 0xC
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_080978B0: .4byte gUnknown_203B494
-_080978B4: .4byte 0x0001869e
- thumb_func_end sub_8097890
-
- thumb_func_start sub_80978B8
-sub_80978B8:
- ldr r0, _080978C4
- ldr r0, [r0]
- adds r0, 0xC0
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080978C4: .4byte gUnknown_203B494
- thumb_func_end sub_80978B8
-
- thumb_func_start sub_80978C8
-sub_80978C8:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_808E858
- lsls r0, 16
- asrs r3, r0, 16
- ldr r0, _080978FC
- ldr r2, [r0]
- adds r0, r3, 0
- cmp r3, 0
- bge _080978E2
- adds r0, 0x1F
-_080978E2:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x54
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080978FC: .4byte gUnknown_203B494
- thumb_func_end sub_80978C8
-
- thumb_func_start sub_8097900
-sub_8097900:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_808E858
- lsls r0, 16
- asrs r3, r0, 16
- ldr r0, _08097938
- ldr r2, [r0]
- adds r0, r3, 0
- cmp r3, 0
- bge _0809791A
- adds r0, 0x1F
-_0809791A:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x1C
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0809793C
- movs r0, 0
- b _0809793E
- .align 2, 0
-_08097938: .4byte gUnknown_203B494
-_0809793C:
- movs r0, 0x1
-_0809793E:
- pop {r1}
- bx r1
- thumb_func_end sub_8097900
-
- thumb_func_start sub_8097944
-sub_8097944:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0x1
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0xD
- bl sub_8097710
- lsls r0, 24
- cmp r0, 0
- bne _08097974
- bl sub_8092614
- lsls r0, 24
- cmp r0, 0
- beq _08097974
- movs r0, 0xD
- bl sub_80976F8
-_08097974:
- movs r4, 0
- ldr r0, _08097B5C
- mov r10, r0
- mov r8, r4
-_0809797C:
- ldr r1, _08097B60
- ldr r0, [r1]
- mov r1, r8
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080979F6
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- mov r1, r10
- ldr r2, [r1]
- adds r0, r3, 0
- cmp r3, 0
- bge _0809799E
- adds r0, 0x1F
-_0809799E:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x1C
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08097B60
- mov r9, r0
- mov r12, r8
- movs r7, 0x1
- movs r6, 0x2C
- movs r5, 0x3
-_080979C0:
- mov r1, r9
- ldr r0, [r1]
- add r0, r12
- adds r3, r0, r6
- ldrb r1, [r3]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080979EE
- mov r0, r10
- ldr r2, [r0]
- ldrh r3, [r3, 0x2]
- lsrs r0, r3, 5
- lsls r0, 2
- adds r2, 0x8C
- adds r2, r0
- movs r0, 0x1F
- ands r3, r0
- adds r1, r7, 0
- lsls r1, r3
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
-_080979EE:
- adds r6, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _080979C0
-_080979F6:
- movs r1, 0x58
- add r8, r1
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0809797C
- movs r4, 0
- ldr r1, _08097B64
-_08097A08:
- cmp r4, 0
- bne _08097A0E
- b _08097B80
-_08097A0E:
- ldr r0, _08097B68
- cmp r4, r0
- bne _08097A16
- b _08097B80
-_08097A16:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A1E
- b _08097B80
-_08097A1E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A26
- b _08097B80
-_08097A26:
- adds r0, 0x26
- cmp r4, r0
- bne _08097A2E
- b _08097B80
-_08097A2E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A36
- b _08097B80
-_08097A36:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A3E
- b _08097B80
-_08097A3E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A46
- b _08097B80
-_08097A46:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A4E
- b _08097B80
-_08097A4E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A56
- b _08097B80
-_08097A56:
- cmp r4, r1
- bne _08097A5C
- b _08097B80
-_08097A5C:
- ldr r0, _08097B5C
- ldr r5, [r0]
- adds r0, r4, 0
- cmp r4, 0
- bge _08097A68
- adds r0, 0x1F
-_08097A68:
- asrs r0, 5
- lsls r3, r0, 2
- adds r1, r5, 0
- adds r1, 0x54
- adds r1, r3
- lsls r0, 5
- subs r0, r4, r0
- movs r2, 0x1
- lsls r2, r0
- ldr r0, [r1]
- ands r0, r2
- cmp r0, 0
- bne _08097A86
- movs r0, 0
- str r0, [sp, 0x4]
-_08097A86:
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08097B7C
- cmp r4, 0x92
- bne _08097A9E
- movs r0, 0x10
- bl sub_80976F8
-_08097A9E:
- cmp r4, 0x91
- bne _08097AA8
- movs r0, 0x11
- bl sub_80976F8
-_08097AA8:
- cmp r4, 0x90
- bne _08097AB2
- movs r0, 0x12
- bl sub_80976F8
-_08097AB2:
- movs r0, 0xCF
- lsls r0, 1
- cmp r4, r0
- bne _08097AC0
- movs r0, 0x13
- bl sub_80976F8
-_08097AC0:
- ldr r0, _08097B6C
- cmp r4, r0
- bne _08097ACC
- movs r0, 0x14
- bl sub_80976F8
-_08097ACC:
- movs r0, 0x86
- lsls r0, 1
- cmp r4, r0
- bne _08097ADA
- movs r0, 0x15
- bl sub_80976F8
-_08097ADA:
- movs r0, 0x87
- lsls r0, 1
- cmp r4, r0
- bne _08097AE8
- movs r0, 0x16
- bl sub_80976F8
-_08097AE8:
- ldr r0, _08097B70
- cmp r4, r0
- bne _08097AF4
- movs r0, 0x17
- bl sub_80976F8
-_08097AF4:
- movs r0, 0xCD
- lsls r0, 1
- cmp r4, r0
- bne _08097B02
- movs r0, 0x18
- bl sub_80976F8
-_08097B02:
- ldr r0, _08097B74
- cmp r4, r0
- bne _08097B0E
- movs r0, 0x19
- bl sub_80976F8
-_08097B0E:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _08097B1C
- movs r0, 0x1A
- bl sub_80976F8
-_08097B1C:
- movs r0, 0x89
- lsls r0, 1
- cmp r4, r0
- bne _08097B2A
- movs r0, 0x1B
- bl sub_80976F8
-_08097B2A:
- movs r0, 0x8A
- lsls r0, 1
- cmp r4, r0
- bne _08097B38
- movs r0, 0x1C
- bl sub_80976F8
-_08097B38:
- cmp r4, 0x97
- bne _08097B42
- movs r0, 0x1D
- bl sub_80976F8
-_08097B42:
- cmp r4, 0x96
- bne _08097B4C
- movs r0, 0x1E
- bl sub_80976F8
-_08097B4C:
- ldr r0, _08097B78
- cmp r4, r0
- bne _08097B80
- movs r0, 0x1F
- bl sub_80976F8
- b _08097B80
- .align 2, 0
-_08097B5C: .4byte gUnknown_203B494
-_08097B60: .4byte gUnknown_203B45C
-_08097B64: .4byte 0x000001a7
-_08097B68: .4byte 0x00000179
-_08097B6C: .4byte 0x0000010d
-_08097B70: .4byte 0x00000113
-_08097B74: .4byte 0x0000019b
-_08097B78: .4byte 0x0000019d
-_08097B7C:
- movs r1, 0
- str r1, [sp]
-_08097B80:
- adds r4, 0x1
- ldr r1, _08097C0C
- cmp r4, r1
- bgt _08097B8A
- b _08097A08
-_08097B8A:
- ldr r0, [sp]
- cmp r0, 0
- beq _08097B96
- movs r0, 0xF
- bl sub_80976F8
-_08097B96:
- ldr r1, [sp, 0x4]
- cmp r1, 0
- beq _08097BA2
- movs r0, 0xE
- bl sub_80976F8
-_08097BA2:
- movs r3, 0
- movs r4, 0
-_08097BA6:
- cmp r4, 0
- beq _08097BE2
- ldr r0, _08097C10
- cmp r4, r0
- beq _08097BE2
- adds r0, 0x1
- cmp r4, r0
- beq _08097BE2
- adds r0, 0x1
- cmp r4, r0
- beq _08097BE2
- ldr r0, _08097C14
- ldr r2, [r0]
- adds r0, r4, 0
- cmp r4, 0
- bge _08097BC8
- adds r0, 0x1F
-_08097BC8:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x8C
- adds r2, r1
- lsls r0, 5
- subs r0, r4, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08097BE2
- adds r3, 0x1
-_08097BE2:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08097BA6
- cmp r3, 0
- beq _08097BFC
- ldr r0, _08097C14
- ldr r0, [r0]
- strh r3, [r0, 0x18]
- movs r0, 0x7
- bl sub_80976F8
-_08097BFC:
- 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
-_08097C0C: .4byte 0x000001a7
-_08097C10: .4byte 0x00000163
-_08097C14: .4byte gUnknown_203B494
- thumb_func_end sub_8097944
-
- thumb_func_start sub_8097C18
-sub_8097C18:
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8097944
- ldr r4, _08097CBC
- ldr r1, [r4]
- adds r1, 0x4
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0xC
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x20
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x16
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x18
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0xC0
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x1C
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x54
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r5, 0
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x10
- adds r0, r5, 0
- bl sub_80902F4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CBC: .4byte gUnknown_203B494
- thumb_func_end sub_8097C18
-
- thumb_func_start sub_8097CC0
-sub_8097CC0:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _08097D5C
- ldr r1, [r4]
- adds r1, 0x4
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0xC
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x20
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x16
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x18
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0xC0
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x1C
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x54
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r5, 0
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x10
- adds r0, r5, 0
- bl sub_8090314
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08097D5C: .4byte gUnknown_203B494
- thumb_func_end sub_8097CC0
-
- thumb_func_start sub_8097D60
-sub_8097D60:
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- mov r0, sp
- bl sub_8094A44
- mov r0, sp
- bl sub_8095044
- mov r0, sp
- bl sub_8097C18
- mov r0, sp
- bl sub_8098248
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r1}
- bx r1
- thumb_func_end sub_8097D60
-
- thumb_func_start sub_8097D98
-sub_8097D98:
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- mov r0, sp
- bl sub_8094B18
- mov r0, sp
- bl sub_8095080
- mov r0, sp
- bl sub_8097CC0
- mov r0, sp
- bl sub_8098308
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r1}
- bx r1
- thumb_func_end sub_8097D98
-
- thumb_func_start sub_8097DD0
-sub_8097DD0:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- bne _08097DEA
- ldr r1, [r2, 0x4]
- ldr r0, [r3, 0x4]
- cmp r1, r0
- bne _08097DEA
- movs r0, 0x1
- b _08097DEC
-_08097DEA:
- movs r0, 0
-_08097DEC:
- pop {r1}
- bx r1
- thumb_func_end sub_8097DD0
-
- thumb_func_start sub_8097DF0
-sub_8097DF0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1F8
- mov r8, r0
- str r1, [sp, 0x1F0]
- movs r0, 0
- mov r9, r0
- movs r7, 0
- ldr r1, _08097E3C
- ldr r0, [r1]
- cmp r0, 0
- beq _08097E6E
-_08097E0E:
- movs r4, 0
- lsls r5, r7, 3
- lsls r1, r7, 2
- mov r10, r1
- adds r6, r7, 0x1
- ldr r2, _08097E3C
- adds r3, r5, r2
- add r1, sp, 0x18C
-_08097E1E:
- ldr r0, [r3]
- adds r0, r4
- ldrb r2, [r0]
- cmp r2, 0x23
- bne _08097E40
- ldrb r0, [r0, 0x1]
- cmp r0, 0x72
- bne _08097E40
- strb r2, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0
- strb r0, [r1]
- b _08097E50
- .align 2, 0
-_08097E3C: .4byte gUnknown_810E074
-_08097E40:
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x63
- ble _08097E1E
-_08097E50:
- add r0, sp, 0x18C
- bl strlen
- mov r1, sp
- add r1, r10
- str r0, [r1]
- adds r7, r6, 0
- cmp r6, 0x62
- bgt _08097E6E
- lsls r0, r6, 3
- ldr r1, _08097EB4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _08097E0E
-_08097E6E:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _08097F2C
- ldr r3, _08097EB4
-_08097E78:
- cmp r0, 0x23
- bne _08097F08
- movs r7, 0
- adds r1, r3, 0
- ldr r0, [r1]
- cmp r0, 0
- beq _08097F20
- mov r2, r9
- lsls r0, r2, 2
- ldr r2, [sp, 0x1F0]
- adds r0, r2
- mov r10, r0
-_08097E90:
- lsls r4, r7, 3
- adds r0, r4, r1
- ldr r0, [r0]
- lsls r1, r7, 2
- add r1, sp
- ldr r2, [r1]
- mov r1, r8
- str r3, [sp, 0x1F4]
- bl sub_800B2D4
- lsls r0, 24
- adds r5, r4, 0
- adds r6, r7, 0x1
- ldr r3, [sp, 0x1F4]
- cmp r0, 0
- bne _08097EF0
- movs r4, 0
- b _08097EBA
- .align 2, 0
-_08097EB4: .4byte gUnknown_810E074
-_08097EB8:
- adds r4, 0x1
-_08097EBA:
- cmp r4, r9
- bge _08097ED6
- adds r0, r5, r3
- lsls r1, r4, 2
- ldr r2, [sp, 0x1F0]
- adds r1, r2
- ldr r1, [r1]
- str r3, [sp, 0x1F4]
- bl sub_8097DD0
- lsls r0, 24
- ldr r3, [sp, 0x1F4]
- cmp r0, 0
- beq _08097EB8
-_08097ED6:
- cmp r4, r9
- bne _08097EF0
- mov r0, r9
- cmp r0, 0x3
- bgt _08097EF0
- adds r0, r5, r3
- mov r1, r10
- adds r1, 0x4
- mov r10, r1
- subs r1, 0x4
- stm r1!, {r0}
- movs r2, 0x1
- add r9, r2
-_08097EF0:
- adds r7, r6, 0
- cmp r6, 0x62
- bgt _08097F20
- ldr r1, _08097F04
- lsls r0, r6, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _08097E90
- b _08097F20
- .align 2, 0
-_08097F04: .4byte gUnknown_810E074
-_08097F08:
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r1, 0
- adds r0, 0x7F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08097F1C
- cmp r1, 0x87
- bne _08097F20
-_08097F1C:
- movs r1, 0x1
- add r8, r1
-_08097F20:
- movs r2, 0x1
- add r8, r2
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0
- bne _08097E78
-_08097F2C:
- mov r0, r9
- add sp, 0x1F8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8097DF0
-
- thumb_func_start sub_8097F40
-sub_8097F40:
- push {lr}
- movs r2, 0
- ldr r1, _08097F58
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08097F50
- movs r2, 0x1
-_08097F50:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08097F58: .4byte gUnknown_810ACC0
- thumb_func_end sub_8097F40
-
- thumb_func_start sub_8097F5C
-sub_8097F5C:
- ldr r1, _08097F64
- ldr r0, _08097F68
- str r0, [r1]
- bx lr
- .align 2, 0
-_08097F64: .4byte gUnknown_203B498
-_08097F68: .4byte gUnknown_2039840
- thumb_func_end sub_8097F5C
-
- thumb_func_start sub_8097F6C
-sub_8097F6C:
- ldr r0, _08097F70
- bx lr
- .align 2, 0
-_08097F70: .4byte gUnknown_2039840
- thumb_func_end sub_8097F6C
-
- thumb_func_start sub_8097F74
-sub_8097F74:
- push {r4,lr}
- ldr r4, _08097FA0
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x64
- bl memset
- movs r2, 0
- ldr r3, _08097FA4
-_08097F86:
- ldr r0, [r4]
- adds r0, 0x58
- adds r0, r2
- ldrb r1, [r3, 0x2]
- strb r1, [r0]
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0xB
- ble _08097F86
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097FA0: .4byte gUnknown_203B498
-_08097FA4: .4byte gUnknown_810AD0C
- thumb_func_end sub_8097F74
-
- thumb_func_start sub_8097FA8
-sub_8097FA8:
- lsls r0, 24
- ldr r1, _08097FCC
- ldr r3, [r1]
- lsrs r1, r0, 29
- lsls r1, 2
- adds r3, 0x48
- adds r3, r1
- movs r1, 0xF8
- lsls r1, 21
- ands r1, r0
- lsrs r1, 24
- movs r2, 0x1
- lsls r2, r1
- ldr r0, [r3]
- orrs r0, r2
- str r0, [r3]
- bx lr
- .align 2, 0
-_08097FCC: .4byte gUnknown_203B498
- thumb_func_end sub_8097FA8
-
- thumb_func_start sub_8097FD0
-sub_8097FD0:
- lsls r0, 24
- ldr r1, _08097FF4
- ldr r3, [r1]
- lsrs r1, r0, 29
- lsls r1, 2
- adds r3, 0x3C
- adds r3, r1
- movs r1, 0xF8
- lsls r1, 21
- ands r1, r0
- lsrs r1, 24
- movs r2, 0x1
- lsls r2, r1
- ldr r0, [r3]
- orrs r0, r2
- str r0, [r3]
- bx lr
- .align 2, 0
-_08097FF4: .4byte gUnknown_203B498
- thumb_func_end sub_8097FD0
-
- thumb_func_start sub_8097FF8
-sub_8097FF8:
- push {r4-r7,lr}
- movs r4, 0
- ldr r6, _08098040
- movs r7, 0x1
-_08098000:
- ldr r5, [r6]
- adds r0, r4, 0
- cmp r4, 0
- bge _0809800A
- adds r0, 0x1F
-_0809800A:
- asrs r0, 5
- lsls r3, r0, 2
- adds r1, r5, 0
- adds r1, 0x48
- adds r1, r3
- lsls r0, 5
- subs r0, r4, r0
- adds r2, r7, 0
- lsls r2, r0
- ldr r0, [r1]
- ands r0, r2
- cmp r0, 0
- beq _08098030
- adds r1, r5, 0
- adds r1, 0x3C
- adds r1, r3
- ldr r0, [r1]
- orrs r0, r2
- str r0, [r1]
-_08098030:
- adds r4, 0x1
- cmp r4, 0x3F
- ble _08098000
- bl sub_8098080
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098040: .4byte gUnknown_203B498
- thumb_func_end sub_8097FF8
-
- thumb_func_start sub_8098044
-sub_8098044:
- push {r4,r5,lr}
- lsls r0, 24
- ldr r1, _0809807C
- ldr r3, [r1]
- lsrs r5, r0, 29
- lsls r5, 2
- adds r4, r3, 0
- adds r4, 0x3C
- adds r4, r5
- movs r1, 0xF8
- lsls r1, 21
- ands r1, r0
- lsrs r1, 24
- movs r2, 0x1
- lsls r2, r1
- mvns r2, r2
- ldr r0, [r4]
- ands r0, r2
- str r0, [r4]
- adds r3, 0x48
- adds r3, r5
- ldr r0, [r3]
- ands r0, r2
- str r0, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809807C: .4byte gUnknown_203B498
- thumb_func_end sub_8098044
-
- thumb_func_start sub_8098080
-sub_8098080:
- push {r4,lr}
- movs r2, 0
- ldr r4, _080980A0
- movs r3, 0
-_08098088:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0x48
- adds r0, r1
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08098088
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080980A0: .4byte gUnknown_203B498
- thumb_func_end sub_8098080
-
- thumb_func_start sub_80980A4
-sub_80980A4:
- ldr r0, _080980B0
- ldr r2, [r0]
- ldrb r0, [r2]
- movs r1, 0x1
- strb r1, [r2]
- bx lr
- .align 2, 0
-_080980B0: .4byte gUnknown_203B498
- thumb_func_end sub_80980A4
-
- thumb_func_start sub_80980B4
-sub_80980B4:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r3, r1, 0
- ldr r0, _080980F8
- cmp r1, r0
- beq _080980F4
- adds r0, 0x1
- cmp r1, r0
- beq _080980F4
- adds r0, 0x1
- cmp r1, r0
- beq _080980F4
- ldr r0, _080980FC
- ldr r2, [r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _080980DA
- adds r0, 0x1F
-_080980DA:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x4
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
-_080980F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080980F8: .4byte 0x000001a5
-_080980FC: .4byte gUnknown_203B498
- thumb_func_end sub_80980B4
-
- thumb_func_start sub_8098100
-sub_8098100:
- push {lr}
- lsls r1, r0, 24
- lsrs r3, r1, 24
- cmp r3, 0x3F
- bls _0809810E
- movs r0, 0
- b _0809812C
-_0809810E:
- ldr r0, _08098130
- ldr r2, [r0]
- lsrs r0, r1, 29
- lsls r0, 2
- adds r2, 0x3C
- adds r2, r0
- movs r0, 0x1F
- ands r0, r3
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _0809812C
- movs r0, 0x1
-_0809812C:
- pop {r1}
- bx r1
- .align 2, 0
-_08098130: .4byte gUnknown_203B498
- thumb_func_end sub_8098100
-
- thumb_func_start sub_8098134
-sub_8098134:
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- adds r3, r1, 0
- ldr r0, _0809816C
- ldr r2, [r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08098148
- adds r0, 0x1F
-_08098148:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x4
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08098166
- movs r0, 0x1
-_08098166:
- pop {r1}
- bx r1
- .align 2, 0
-_0809816C: .4byte gUnknown_203B498
- thumb_func_end sub_8098134
-
- thumb_func_start sub_8098170
-sub_8098170:
- push {lr}
- adds r3, r0, 0
- ldr r0, _0809819C
- ldr r2, [r0]
- adds r0, r3, 0
- cmp r3, 0
- bge _08098180
- adds r0, 0x1F
-_08098180:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x54
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0809819C: .4byte gUnknown_203B498
- thumb_func_end sub_8098170
-
- thumb_func_start sub_80981A0
-sub_80981A0:
- push {lr}
- adds r3, r0, 0
- cmp r3, 0x1E
- ble _080981AC
- movs r0, 0
- b _080981D4
-_080981AC:
- ldr r0, _080981D8
- ldr r2, [r0]
- adds r1, r3, 0
- cmp r3, 0
- bge _080981B8
- adds r1, 0x1F
-_080981B8:
- asrs r1, 5
- lsls r0, r1, 2
- adds r2, 0x54
- adds r2, r0
- lsls r1, 5
- subs r1, r3, r1
- movs r0, 0x1
- lsls r0, r1
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _080981D2
- movs r2, 0x1
-_080981D2:
- adds r0, r2, 0
-_080981D4:
- pop {r1}
- bx r1
- .align 2, 0
-_080981D8: .4byte gUnknown_203B498
- thumb_func_end sub_80981A0
-
- thumb_func_start sub_80981DC
-sub_80981DC:
- push {r4,r5,lr}
- lsls r0, 16
- asrs r3, r0, 16
- movs r1, 0
- ldr r4, _080981FC
- ldr r2, _08098200
-_080981E8:
- movs r5, 0
- ldrsh r0, [r2, r5]
- cmp r0, r3
- bne _08098204
- ldr r0, [r4]
- adds r0, 0x58
- adds r0, r1
- ldrb r0, [r0]
- b _0809820E
- .align 2, 0
-_080981FC: .4byte gUnknown_203B498
-_08098200: .4byte gUnknown_810AD0C
-_08098204:
- adds r2, 0x4
- adds r1, 0x1
- cmp r1, 0xB
- ble _080981E8
- movs r0, 0x1
-_0809820E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80981DC
-
- thumb_func_start sub_8098214
-sub_8098214:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r3, r0, 16
- movs r1, 0
- ldr r5, _08098240
- movs r4, 0x1
- ldr r2, _08098244
-_08098222:
- movs r6, 0
- ldrsh r0, [r2, r6]
- cmp r0, r3
- bne _08098232
- ldr r0, [r5]
- adds r0, 0x58
- adds r0, r1
- strb r4, [r0]
-_08098232:
- adds r2, 0x4
- adds r1, 0x1
- cmp r1, 0xB
- ble _08098222
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098240: .4byte gUnknown_203B498
-_08098244: .4byte gUnknown_810AD0C
- thumb_func_end sub_8098214
-
- thumb_func_start sub_8098248
-sub_8098248:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r7, r0, 0
- mov r5, sp
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
- add r4, sp, 0x4
- movs r0, 0
- strb r0, [r4]
- ldr r0, _08098300
- ldr r1, [r0]
- adds r0, r7, 0
- movs r2, 0x1
- bl sub_809488C
- movs r6, 0
- mov r9, r5
- mov r8, r4
- mov r4, sp
- adds r4, 0x1
- mov r5, sp
- adds r5, 0x2
-_0809827C:
- lsls r0, r6, 16
- asrs r0, 16
- bl sub_8098134
- mov r1, sp
- strb r0, [r1]
- adds r0, r7, 0
- movs r2, 0x1
- bl sub_809488C
- adds r6, 0x1
- ldr r0, _08098304
- cmp r6, r0
- ble _0809827C
- movs r6, 0
-_0809829A:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_8098100
- strb r0, [r4]
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_809488C
- adds r6, 0x1
- cmp r6, 0x3F
- ble _0809829A
- movs r6, 0
- adds r4, r5, 0
-_080982B8:
- adds r0, r6, 0
- bl sub_80981A0
- strb r0, [r4]
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_809488C
- adds r6, 0x1
- cmp r6, 0x1E
- ble _080982B8
- movs r6, 0
-_080982D2:
- ldr r0, _08098300
- ldr r0, [r0]
- adds r0, 0x58
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r8
- cmp r0, 0
- beq _080982E4
- mov r1, r9
-_080982E4:
- adds r0, r7, 0
- movs r2, 0x1
- bl sub_809488C
- adds r6, 0x1
- cmp r6, 0xB
- ble _080982D2
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098300: .4byte gUnknown_203B498
-_08098304: .4byte 0x000001a7
- thumb_func_end sub_8098248
-
- thumb_func_start sub_8098308
-sub_8098308:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r4, _080983D0
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x64
- bl memset
- ldr r1, [r4]
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_8094924
- movs r4, 0
- mov r5, sp
- adds r5, 0x1
- mov r7, sp
- adds r7, 0x2
- movs r0, 0x3
- add r0, sp
- mov r8, r0
-_08098338:
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_8094924
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098352
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_80980B4
-_08098352:
- adds r4, 0x1
- ldr r0, _080983D4
- cmp r4, r0
- ble _08098338
- movs r4, 0
-_0809835C:
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094924
- ldrb r0, [r5]
- cmp r0, 0
- beq _08098374
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8097FA8
-_08098374:
- adds r4, 0x1
- cmp r4, 0x3F
- ble _0809835C
- movs r4, 0
- adds r5, r7, 0
-_0809837E:
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094924
- ldrb r0, [r5]
- cmp r0, 0
- beq _08098394
- adds r0, r4, 0
- bl sub_8098170
-_08098394:
- adds r4, 0x1
- cmp r4, 0x1E
- ble _0809837E
- movs r4, 0
-_0809839C:
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0x1
- bl sub_8094924
- ldr r0, _080983D0
- ldr r1, [r0]
- adds r1, 0x58
- adds r1, r4
- mov r0, sp
- adds r0, 0x3
- ldrb r2, [r0]
- movs r0, 0x1
- ands r0, r2
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0xB
- ble _0809839C
- bl sub_8097FF8
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080983D0: .4byte gUnknown_203B498
-_080983D4: .4byte 0x000001a7
- thumb_func_end sub_8098308
-
- thumb_func_start sub_80983D8
-sub_80983D8:
- push {r4,lr}
- movs r2, 0
- ldrsh r3, [r1, r2]
- movs r4, 0
- ldrsh r2, [r0, r4]
- subs r2, r3, r2
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- subs r1, r0
- cmp r2, 0
- bne _080983FA
- cmp r1, 0
- bne _080983FA
- movs r0, 0
- b _08098428
-_080983FA:
- cmp r2, 0
- ble _08098400
- movs r2, 0x1
-_08098400:
- cmp r1, 0
- ble _08098406
- movs r1, 0x1
-_08098406:
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- bgt _08098410
- adds r2, r0, 0
-_08098410:
- cmp r1, r0
- bgt _08098416
- adds r1, r0, 0
-_08098416:
- ldr r3, _08098430
- adds r2, 0x1
- adds r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
-_08098428:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08098430: .4byte gUnknown_8115E94
- thumb_func_end sub_80983D8
-
- thumb_func_start sub_8098434
-sub_8098434:
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- movs r0, 0
- ldrsh r1, [r3, r0]
- movs r2, 0
- ldrsh r0, [r4, r2]
- subs r2, r1, r0
- cmp r2, 0
- bge _0809844A
- negs r2, r2
-_0809844A:
- movs r0, 0x2
- ldrsh r1, [r3, r0]
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- subs r0, r1, r0
- cmp r0, 0
- bge _0809845A
- negs r0, r0
-_0809845A:
- cmp r0, r2
- bge _08098460
- adds r0, r2, 0
-_08098460:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8098434
-
- thumb_func_start xxx_script_related_8098468
-xxx_script_related_8098468:
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _08098494
- str r0, [r1]
- ldr r4, _08098498
- movs r2, 0
- strb r2, [r4]
- ldr r3, _0809849C
- movs r1, 0x1
- strb r1, [r3]
- ldr r1, _080984A0
- strb r2, [r1]
- subs r0, 0xD
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _08098504
- lsls r0, 2
- ldr r1, _080984A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08098494: .4byte gUnknown_20398B4
-_08098498: .4byte gUnknown_20398B9
-_0809849C: .4byte gUnknown_20398B8
-_080984A0: .4byte gUnknown_20398BA
-_080984A4: .4byte _080984A8
- .align 2, 0
-_080984A8:
- .4byte _080984BC
- .4byte _080984C8
- .4byte _080984CE
- .4byte _080984D4
- .4byte _080984FC
-_080984BC:
- movs r1, 0x1
- strb r1, [r2]
- movs r0, 0
- strb r0, [r3]
- strb r1, [r4]
- b _08098504
-_080984C8:
- movs r0, 0x1
- strb r0, [r3]
- b _08098502
-_080984CE:
- movs r0, 0x1
- strb r0, [r3]
- b _08098502
-_080984D4:
- add r2, sp, 0x4
- movs r0, 0x3
- mov r1, sp
- bl sub_8001B88
- ldr r2, _080984F4
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0
- bne _080984EA
- movs r1, 0x1
-_080984EA:
- strb r1, [r2]
- ldr r1, _080984F8
- movs r0, 0x1
- strb r0, [r1]
- b _08098504
- .align 2, 0
-_080984F4: .4byte gUnknown_20398B8
-_080984F8: .4byte gUnknown_20398B9
-_080984FC:
- movs r0, 0
- strb r0, [r3]
- movs r0, 0x1
-_08098502:
- strb r0, [r4]
-_08098504:
- bl sub_801180C
- ldr r0, _080985B0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08098522
- movs r0, 0xD
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _08098522
- movs r0, 0x10
- bl sub_80118C4
-_08098522:
- ldr r1, _080985B4
- ldr r2, _080985B8
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl xxx_update_some_bg_tiles
- bl sub_8099648
- bl sub_809975C
- bl sub_809D0AC
- bl sub_80A7744
- bl sub_809D490
- bl sub_80A62F0
- bl sub_809C5C4
- bl sub_809A560
- bl sub_809CB50
- bl sub_80A4A7C
- bl nullsub_117
- bl sub_80AD990
- bl sub_80A77F8
- bl sub_80ABB54
- bl sub_80ACB90
- bl sub_809A62C
- ldr r0, _080985BC
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080985C0
- strb r1, [r0]
- ldr r6, _080985C4
- movs r0, 0x1
- str r0, [r6]
- ldr r1, _080985C8
- movs r0, 0
- str r0, [r1]
- ldr r0, _080985CC
- movs r4, 0x1
- negs r4, r4
- str r4, [r0]
- ldr r5, _080985D0
- movs r0, 0
- movs r1, 0xD
- bl sub_8001658
- strh r0, [r5]
- movs r0, 0
- movs r1, 0xE
- bl sub_8001658
- ldr r1, _080985D4
- str r0, [r1]
- ldr r0, _080985D8
- strh r4, [r0]
- adds r7, r4, 0
- ldr r0, [r6]
- b _08098988
- .align 2, 0
-_080985B0: .4byte gUnknown_20398B9
-_080985B4: .4byte gUnknown_2026E4E
-_080985B8: .4byte 0x00000808
-_080985BC: .4byte gUnknown_203B49C
-_080985C0: .4byte gUnknown_203B49D
-_080985C4: .4byte gUnknown_20398A8
-_080985C8: .4byte gUnknown_20398AC
-_080985CC: .4byte gUnknown_20398B0
-_080985D0: .4byte gUnknown_20398BE
-_080985D4: .4byte gUnknown_20398C0
-_080985D8: .4byte gUnknown_20398C4
-_080985DC:
- movs r0, 0x1
- negs r0, r0
- bl sub_809A71C
- bl sub_809A76C
- bl sub_809977C
- ldr r0, _08098600
- ldr r0, [r0]
- cmp r0, 0x11
- bls _080985F6
- b _08098756
-_080985F6:
- lsls r0, 2
- ldr r1, _08098604
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08098600: .4byte gUnknown_20398B4
-_08098604: .4byte _08098608
- .align 2, 0
-_08098608:
- .4byte _08098650
- .4byte _08098756
- .4byte _08098660
- .4byte _08098660
- .4byte _08098756
- .4byte _08098666
- .4byte _08098756
- .4byte _08098756
- .4byte _08098756
- .4byte _0809866A
- .4byte _0809866A
- .4byte _0809866A
- .4byte _0809866A
- .4byte _0809870C
- .4byte _08098748
- .4byte _0809874C
- .4byte _08098750
- .4byte _08098754
-_08098650:
- bl sub_8098C58
- ldr r1, _0809865C
- movs r0, 0x1
- str r0, [r1]
- b _08098756
- .align 2, 0
-_0809865C: .4byte gUnknown_20398B4
-_08098660:
- bl sub_8001D88
- b _08098756
-_08098666:
- movs r7, 0x70
- b _08098756
-_0809866A:
- ldr r0, _080986BC
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0x16
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x25
- movs r2, 0
- bl sub_80018D8
- bl sub_8098C58
- movs r0, 0
- movs r1, 0x15
- movs r2, 0x1
- movs r3, 0x2
- bl sub_800226C
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r4, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08098756
- cmp r4, 0x51
- bne _080986C0
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2608
- b _080986C6
- .align 2, 0
-_080986BC: .4byte gUnknown_20398B4
-_080986C0:
- adds r0, r4, 0
- bl sub_80A2608
-_080986C6:
- movs r1, 0xA
- ldrsh r7, [r0, r1]
- ldr r5, _08098700
- ldr r0, [r5]
- cmp r0, 0x9
- bne _080986E0
- lsls r2, r4, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x31
- movs r3, 0x1
- bl sub_800199C
-_080986E0:
- ldr r0, [r5]
- bl sub_8098FCC
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08098756
- ldr r0, _08098704
- strh r1, [r0]
- ldr r1, _08098708
- movs r0, 0
- str r0, [r1]
- b _08098756
- .align 2, 0
-_08098700: .4byte gUnknown_20398B4
-_08098704: .4byte gUnknown_20398BE
-_08098708: .4byte gUnknown_20398C0
-_0809870C:
- bl sub_8098C58
- ldr r1, _08098744
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x1
- bl sub_80018D8
- movs r0, 0
- movs r1, 0xF
- movs r2, 0
- bl sub_80018D8
- movs r0, 0
- movs r1, 0xD
- movs r2, 0
- bl sub_80018D8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0
- bl sub_80018D8
- movs r7, 0x71
- b _08098756
- .align 2, 0
-_08098744: .4byte gUnknown_20398B4
-_08098748:
- movs r7, 0x73
- b _08098756
-_0809874C:
- movs r7, 0x74
- b _08098756
-_08098750:
- movs r7, 0x75
- b _08098756
-_08098754:
- movs r7, 0x76
-_08098756:
- ldr r0, _08098790
- ldrb r0, [r0]
- cmp r0, 0
- bne _080987C0
- movs r0, 0
- movs r1, 0xD
- bl sub_8001658
- adds r5, r0, 0
- ldr r4, _08098794
- ldr r2, [r4]
- movs r0, 0
- movs r1, 0x18
- bl sub_80018D8
- ldr r4, [r4]
- cmp r4, 0x1
- beq _080987A6
- cmp r4, 0x3
- bne _0809879C
- ldr r0, _08098798
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- movs r1, 0xF
- bl sub_80018D8
- b _080987A6
- .align 2, 0
-_08098790: .4byte gUnknown_20398B9
-_08098794: .4byte gUnknown_20398B4
-_08098798: .4byte gUnknown_20398BE
-_0809879C:
- movs r0, 0
- movs r1, 0xF
- adds r2, r5, 0
- bl sub_80018D8
-_080987A6:
- ldr r0, _0809882C
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- movs r1, 0xD
- bl sub_80018D8
- ldr r0, _08098830
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0xE
- bl sub_80018D8
-_080987C0:
- ldr r1, _08098834
- movs r0, 0x2
- str r0, [r1]
- ldr r0, _08098838
- movs r1, 0
- str r1, [r0]
- ldr r0, _0809883C
- str r1, [r0]
- ldr r0, _08098840
- movs r4, 0x1
- negs r4, r4
- str r4, [r0]
- ldr r2, _08098844
- ldr r1, _0809882C
- ldrh r0, [r1]
- strh r0, [r2]
- strh r4, [r1]
- bl sub_809977C
- bl sub_809D4B0
- adds r0, r4, 0
- bl GroundSprite_Reset
- bl sub_809C63C
- bl sub_809A62C
- bl sub_80A4AEC
- bl sub_809D0BC
- bl sub_80AD9D0
- bl sub_80A786C
- bl sub_80ABB98
- bl sub_80ACBD4
- bl sub_809C658
- bl nullsub_16
- bl sub_8097944
- cmp r7, r4
- beq _08098848
- adds r0, r7, 0
- movs r1, 0
- bl GroundMap_ExecuteEvent
- b _08098850
- .align 2, 0
-_0809882C: .4byte gUnknown_20398BE
-_08098830: .4byte gUnknown_20398C0
-_08098834: .4byte gUnknown_20398B4
-_08098838: .4byte gUnknown_20398A8
-_0809883C: .4byte gUnknown_20398AC
-_08098840: .4byte gUnknown_20398B0
-_08098844: .4byte gUnknown_20398BC
-_08098848:
- movs r0, 0x66
- movs r1, 0
- bl GroundMap_ExecuteEvent
-_08098850:
- bl GroundMap_Action
- movs r0, 0
- movs r1, 0
- bl sub_8005838
- bl sub_80060EC
- bl xxx_call_update_bg_sound_input
-_08098864:
- bl xxx_call_update_bg_sound_input
- bl sub_80A6E68
- ldr r0, _08098890
- ldr r0, [r0]
- cmp r0, 0
- beq _080988B2
- ldr r1, _08098894
- ldr r0, [r1]
- cmp r0, 0
- ble _0809889C
- subs r0, 0x1
- str r0, [r1]
- cmp r0, 0
- bgt _080988F8
- ldr r0, _08098898
- ldr r0, [r0]
- bl sub_80999D4
- b _080988F8
- .align 2, 0
-_08098890: .4byte gUnknown_20398A8
-_08098894: .4byte gUnknown_20398AC
-_08098898: .4byte gUnknown_20398B0
-_0809889C:
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- bne _080988F8
- bl sub_809C740
- lsls r0, 24
- cmp r0, 0
- bne _0809897C
- b _080988F8
-_080988B2:
- ldr r0, _08098968
- ldrb r0, [r0]
- cmp r0, 0
- beq _080988F8
- ldr r0, _0809896C
- ldrb r0, [r0]
- cmp r0, 0
- bne _080988F8
- bl sub_809AFAC
- lsls r0, 24
- cmp r0, 0
- bne _080988F8
- ldr r0, _08098970
- ldrh r0, [r0, 0x2]
- ldr r2, _08098974
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080988E4
- bl sub_80048BC
- lsls r0, 24
- cmp r0, 0
- beq _080988F8
-_080988E4:
- movs r0, 0x72
- movs r1, 0
- bl GroundMap_ExecuteEvent
- movs r0, 0x1E
- bl sub_8098F44
- movs r0, 0x1E
- bl sub_80118C4
-_080988F8:
- bl GroundMap_Action
- bl nullsub_124
- bl GroundLives_Action
- bl GroundObject_Action
- bl GroundEffect_Action
- bl nullsub_105
- bl sub_809B474
- bl GroundScript_Unlock
- bl sub_809D25C
- bl sub_80A59DC
- bl sub_809B614
- bl sub_809CA20
- bl sub_80A6E80
- bl sub_8099BE4
- bl sub_8099744
- bl sub_8011860
- ldr r0, _08098978
- ldr r0, [r0]
- bl sub_8094FB4
- bl sub_800CB20
- bl sub_800485C
- bl nullsub_120
- bl sub_80A5E70
- bl sub_809B638
- bl nullsub_106
- bl sub_80A73EC
- bl sub_8099750
- bl sub_8009908
- b _08098864
- .align 2, 0
-_08098968: .4byte gUnknown_20398B9
-_0809896C: .4byte gUnknown_20398B8
-_08098970: .4byte gUnknown_20255F0
-_08098974: .4byte 0x0000030f
-_08098978: .4byte gUnknown_203B47C
-_0809897C:
- bl sub_80A4AEC
- movs r7, 0x1
- negs r7, r7
- ldr r0, _080989E8
- ldr r0, [r0]
-_08098988:
- subs r0, 0x1
- cmp r0, 0x1
- bhi _08098990
- b _080985DC
-_08098990:
- bl sub_80A4AC4
- bl nullsub_118
- bl sub_80A78F0
- bl sub_80ABBD4
- bl sub_80ACC10
- bl sub_80ADA08
- bl sub_809CB74
- bl sub_809A610
- bl sub_809C618
- bl sub_80A658C
- bl sub_809D508
- bl sub_80A7754
- bl nullsub_119
- bl sub_8099768
- bl nullsub_103
- bl nullsub_16
- ldr r0, _080989EC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080989FA
- ldr r0, _080989E8
- ldr r0, [r0]
- cmp r0, 0x9
- beq _080989F0
- cmp r0, 0xA
- bne _080989F0
- movs r0, 0x10
- b _08098BD2
- .align 2, 0
-_080989E8: .4byte gUnknown_20398A8
-_080989EC: .4byte gUnknown_20398B9
-_080989F0:
- movs r0, 0x1E
- bl sub_80118C4
- movs r0, 0xF
- b _08098BD2
-_080989FA:
- ldr r0, _08098A10
- ldr r0, [r0]
- subs r0, 0x3
- cmp r0, 0x5
- bls _08098A06
- b _08098BC0
-_08098A06:
- lsls r0, 2
- ldr r1, _08098A14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08098A10: .4byte gUnknown_20398A8
-_08098A14: .4byte _08098A18
- .align 2, 0
-_08098A18:
- .4byte _08098A30
- .4byte _08098A72
- .4byte _08098AA0
- .4byte _08098B08
- .4byte _08098B58
- .4byte _08098B8C
-_08098A30:
- movs r4, 0x1
- negs r4, r4
- movs r0, 0
- movs r1, 0x13
- adds r2, r4, 0
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x14
- adds r2, r4, 0
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x4
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x4
- bl sub_80018D8
- movs r0, 0
- movs r1, 0xD
- bl sub_8001658
- adds r2, r0, 0
- movs r0, 0
- movs r1, 0xF
- bl sub_80018D8
- movs r0, 0x5
- b _08098BD2
-_08098A72:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x5
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x5
- bl sub_80018D8
- movs r2, 0x1
- negs r2, r2
- movs r0, 0
- movs r1, 0x13
- bl sub_80018D8
- movs r0, 0x6
- b _08098BD2
-_08098AA0:
- ldr r5, _08098B04
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_80A2654
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0
- ldrsh r2, [r5, r0]
- movs r0, 0
- movs r1, 0x13
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x14
- adds r2, r4, 0
- bl sub_80018D8
- ldrh r2, [r5]
- movs r0, 0
- movs r1, 0x30
- movs r3, 0x1
- bl sub_800199C
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x11
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08098B00
- movs r0, 0
- movs r1, 0x11
- movs r2, 0
- bl sub_80018D8
-_08098B00:
- movs r0, 0x7
- b _08098BD2
- .align 2, 0
-_08098B04: .4byte gUnknown_20398C4
-_08098B08:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x51
- bl sub_80018D8
- ldr r0, _08098B54
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- movs r1, 0x14
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x11
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08098B4E
- movs r0, 0
- movs r1, 0x11
- movs r2, 0
- bl sub_80018D8
-_08098B4E:
- movs r0, 0x8
- b _08098BD2
- .align 2, 0
-_08098B54: .4byte gUnknown_20398C4
-_08098B58:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x50
- bl sub_80018D8
- ldr r0, _08098B88
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0x14
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0x9
- b _08098BD2
- .align 2, 0
-_08098B88: .4byte gUnknown_2039950
-_08098B8C:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x52
- bl sub_80018D8
- ldr r0, _08098BBC
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- movs r1, 0x14
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x7
- bl sub_80018D8
- movs r0, 0xA
- b _08098BD2
- .align 2, 0
-_08098BBC: .4byte gUnknown_20398C4
-_08098BC0:
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x1
- bl sub_80018D8
- movs r0, 0x10
- bl sub_80118C4
- movs r0, 0xE
-_08098BD2:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end xxx_script_related_8098468
-
- thumb_func_start sub_8098BDC
-sub_8098BDC:
- push {lr}
- bl sub_809B57C
- bl GroundScript_Unlock
- bl sub_809D25C
- bl sub_80A59DC
- bl sub_809B614
- bl sub_809CA20
- bl sub_80A6E80
- bl sub_8099BE4
- bl sub_8099744
- bl sub_8011860
- ldr r0, _08098C54
- ldr r0, [r0]
- bl sub_8094FB4
- bl sub_800CB20
- bl sub_800485C
- bl nullsub_120
- bl sub_80A5E70
- bl sub_809B638
- bl nullsub_106
- bl sub_80A73EC
- bl sub_8099750
- bl sub_8009908
- bl xxx_call_update_bg_sound_input
- bl sub_80A6E68
- bl GroundMap_Action
- bl nullsub_124
- bl GroundLives_Action
- bl GroundObject_Action
- bl GroundEffect_Action
- pop {r0}
- bx r0
- .align 2, 0
-_08098C54: .4byte gUnknown_203B47C
- thumb_func_end sub_8098BDC
-
- thumb_func_start sub_8098C58
-sub_8098C58:
- push {lr}
- movs r0, 0
- movs r1, 0x36
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x39
- bl sub_80015C0
- bl sub_809CB8C
- bl sub_8001D88
- movs r0, 0
- movs r1, 0x2A
- bl sub_8001658
- cmp r0, 0
- beq _08098CA2
- movs r0, 0
- movs r1, 0x29
- bl sub_8001658
- adds r2, r0, 0
- adds r2, 0x1
- cmp r2, 0xF
- ble _08098C90
- movs r2, 0
-_08098C90:
- movs r0, 0
- movs r1, 0x29
- bl sub_80018D8
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- bl sub_80018D8
-_08098CA2:
- movs r0, 0
- movs r1, 0x42
- movs r2, 0
- bl sub_8001784
- adds r3, r0, 0
- cmp r3, 0
- bgt _08098CB4
- movs r3, 0x1
-_08098CB4:
- subs r3, 0x1
- movs r0, 0
- movs r1, 0x42
- movs r2, 0
- bl sub_800199C
- bl sub_8098CC8
- pop {r0}
- bx r0
- thumb_func_end sub_8098C58
-
- thumb_func_start sub_8098CC8
-sub_8098CC8:
- push {lr}
- movs r0, 0x3
- movs r1, 0xB
- movs r2, 0
- bl sub_8001CC4
- lsls r0, 24
- cmp r0, 0
- beq _08098CDE
- movs r1, 0
- b _08098D06
-_08098CDE:
- movs r0, 0x3
- movs r1, 0xF
- movs r2, 0
- bl sub_8001CC4
- lsls r0, 24
- cmp r0, 0
- beq _08098CF2
- movs r1, 0x1
- b _08098D06
-_08098CF2:
- movs r0, 0x3
- movs r1, 0x12
- movs r2, 0
- bl sub_8001CC4
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _08098D06
- movs r1, 0x2
-_08098D06:
- adds r0, r1, 0
- bl sub_8091980
- bl sub_809674C
- bl sub_80961B4
- bl sub_8091FB4
- pop {r0}
- bx r0
- thumb_func_end sub_8098CC8
-
- thumb_func_start sub_8098D1C
-sub_8098D1C:
- push {r4-r7,lr}
- adds r7, r1, 0
- adds r4, r2, 0
- lsls r0, 16
- asrs r5, r0, 16
- ldr r6, _08098D34
- ldr r0, [r6]
- cmp r0, 0
- beq _08098D38
- movs r0, 0
- b _08098D60
- .align 2, 0
-_08098D34: .4byte gUnknown_20398A8
-_08098D38:
- ldr r1, _08098D68
- movs r0, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl Log
- movs r1, 0x1
- str r1, [r6]
- ldr r0, _08098D6C
- str r1, [r0]
- ldr r0, _08098D70
- str r4, [r0]
- ldr r1, _08098D74
- movs r0, 0x2
- str r0, [r1]
- ldr r0, _08098D78
- strh r5, [r0]
- ldr r0, _08098D7C
- str r7, [r0]
- movs r0, 0x1
-_08098D60:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08098D68: .4byte gUnknown_8115F5C
-_08098D6C: .4byte gUnknown_20398AC
-_08098D70: .4byte gUnknown_20398B0
-_08098D74: .4byte gUnknown_20398B4
-_08098D78: .4byte gUnknown_20398BE
-_08098D7C: .4byte gUnknown_20398C0
- thumb_func_end sub_8098D1C
-
- thumb_func_start sub_8098D80
-sub_8098D80:
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _08098DB8
- ldr r0, [r1]
- cmp r0, 0
- bne _08098DC4
- movs r0, 0x3
- str r0, [r1]
- ldr r1, _08098DBC
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _08098DC0
- str r4, [r0]
- bl sub_809C730
- movs r0, 0xD
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _08098DB2
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_80118C4
-_08098DB2:
- movs r0, 0x1
- b _08098DC6
- .align 2, 0
-_08098DB8: .4byte gUnknown_20398A8
-_08098DBC: .4byte gUnknown_20398AC
-_08098DC0: .4byte gUnknown_20398B0
-_08098DC4:
- movs r0, 0
-_08098DC6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8098D80
-
- thumb_func_start sub_8098DCC
-sub_8098DCC:
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _08098E04
- ldr r0, [r1]
- cmp r0, 0
- bne _08098E10
- movs r0, 0x4
- str r0, [r1]
- ldr r1, _08098E08
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _08098E0C
- str r4, [r0]
- bl sub_809C730
- movs r0, 0xD
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _08098DFE
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_80118C4
-_08098DFE:
- movs r0, 0x1
- b _08098E12
- .align 2, 0
-_08098E04: .4byte gUnknown_20398A8
-_08098E08: .4byte gUnknown_20398AC
-_08098E0C: .4byte gUnknown_20398B0
-_08098E10:
- movs r0, 0
-_08098E12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8098DCC
-
- thumb_func_start sub_8098E18
-sub_8098E18:
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 16
- asrs r2, r0, 16
- adds r5, r2, 0
- ldr r4, _08098E40
- ldr r0, [r4]
- cmp r0, 0
- bne _08098EA8
- ldr r1, _08098E44
- movs r0, 0
- adds r3, r6, 0
- bl Log
- ldr r0, _08098E48
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098E4C
- movs r0, 0x7
- b _08098E8A
- .align 2, 0
-_08098E40: .4byte gUnknown_20398A8
-_08098E44: .4byte gUnknown_8115F80
-_08098E48: .4byte gUnknown_203B49D
-_08098E4C:
- ldr r0, _08098E74
- ldrb r0, [r0]
- ldr r1, _08098E78
- cmp r0, 0
- bne _08098E58
- strh r5, [r1]
-_08098E58:
- movs r2, 0
- ldrsh r0, [r1, r2]
- bl sub_80A2750
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _08098E88
- cmp r0, 0x2
- bgt _08098E7C
- cmp r0, 0x1
- beq _08098E84
- b _08098E8C
- .align 2, 0
-_08098E74: .4byte gUnknown_203B49C
-_08098E78: .4byte gUnknown_20398C4
-_08098E7C:
- cmp r0, 0x4
- bne _08098E8C
- movs r0, 0x8
- b _08098E8A
-_08098E84:
- movs r0, 0x5
- b _08098E8A
-_08098E88:
- movs r0, 0x6
-_08098E8A:
- str r0, [r4]
-_08098E8C:
- ldr r0, _08098EA0
- movs r1, 0x1
- str r1, [r0]
- ldr r0, _08098EA4
- str r6, [r0]
- bl sub_809C730
- movs r0, 0x1
- b _08098EAA
- .align 2, 0
-_08098EA0: .4byte gUnknown_20398AC
-_08098EA4: .4byte gUnknown_20398B0
-_08098EA8:
- movs r0, 0
-_08098EAA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8098E18
-
- thumb_func_start sub_8098EB0
-sub_8098EB0:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08098EE4
- ldr r0, [r5]
- cmp r0, 0
- bne _08098EF8
- ldr r0, _08098EE8
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098EF8
- ldr r1, _08098EEC
- movs r0, 0
- adds r2, r4, 0
- bl Log
- movs r0, 0x7
- str r0, [r5]
- ldr r1, _08098EF0
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _08098EF4
- str r4, [r0]
- bl sub_809C730
- movs r0, 0x1
- b _08098EFA
- .align 2, 0
-_08098EE4: .4byte gUnknown_20398A8
-_08098EE8: .4byte gUnknown_203B49D
-_08098EEC: .4byte gUnknown_8115FA4
-_08098EF0: .4byte gUnknown_20398AC
-_08098EF4: .4byte gUnknown_20398B0
-_08098EF8:
- movs r0, 0
-_08098EFA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8098EB0
-
- thumb_func_start sub_8098F00
-sub_8098F00:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08098F10
- ldr r0, [r5]
- cmp r0, 0
- beq _08098F14
- movs r0, 0
- b _08098F32
- .align 2, 0
-_08098F10: .4byte gUnknown_20398A8
-_08098F14:
- ldr r1, _08098F38
- movs r0, 0
- adds r2, r4, 0
- bl Log
- movs r0, 0x9
- str r0, [r5]
- ldr r1, _08098F3C
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _08098F40
- str r4, [r0]
- bl sub_809C730
- movs r0, 0x1
-_08098F32:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08098F38: .4byte gUnknown_8115FC8
-_08098F3C: .4byte gUnknown_20398AC
-_08098F40: .4byte gUnknown_20398B0
- thumb_func_end sub_8098F00
-
- thumb_func_start sub_8098F44
-sub_8098F44:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08098F54
- ldr r0, [r5]
- cmp r0, 0
- beq _08098F58
- movs r0, 0
- b _08098F76
- .align 2, 0
-_08098F54: .4byte gUnknown_20398A8
-_08098F58:
- ldr r1, _08098F7C
- movs r0, 0
- adds r2, r4, 0
- bl Log
- movs r0, 0xA
- str r0, [r5]
- ldr r1, _08098F80
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _08098F84
- str r4, [r0]
- bl sub_809C730
- movs r0, 0x1
-_08098F76:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08098F7C: .4byte gUnknown_8115FE8
-_08098F80: .4byte gUnknown_20398AC
-_08098F84: .4byte gUnknown_20398B0
- thumb_func_end sub_8098F44
-
- thumb_func_start sub_8098F88
-sub_8098F88:
- ldr r0, _08098F90
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08098F90: .4byte gUnknown_20398B9
- thumb_func_end sub_8098F88
-
- thumb_func_start sub_8098F94
-sub_8098F94:
- ldr r0, _08098F9C
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08098F9C: .4byte gUnknown_20398BA
- thumb_func_end sub_8098F94
-
- thumb_func_start sub_8098FA0
-sub_8098FA0:
- push {lr}
- movs r0, 0
- movs r1, 0x11
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8098FA0
-
- thumb_func_start sub_8098FB4
-sub_8098FB4:
- 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_8098FB4
-
- thumb_func_start sub_8098FCC
-sub_8098FCC:
- push {r4,lr}
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r1, r0, 16
- adds r2, r1, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809909E
- cmp r1, 0x51
- bne _08098FF6
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- b _08098FF8
-_08098FF6:
- adds r0, r2, 0
-_08098FF8:
- bl sub_80A2608
- adds r4, r0, 0
- ldr r0, _0809900C
- ldr r0, [r0]
- cmp r0, 0x9
- bne _08099010
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- b _080990B2
- .align 2, 0
-_0809900C: .4byte gUnknown_20398B4
-_08099010:
- ldrh r0, [r4, 0x4]
- subs r0, 0xB2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- bhi _080990AE
- lsls r0, 2
- ldr r1, _08099028
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08099028: .4byte _0809902C
- .align 2, 0
-_0809902C:
- .4byte _0809908C
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990A2
- .4byte _080990AE
- .4byte _080990A2
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990A2
- .4byte _080990AE
- .4byte _080990AE
- .4byte _080990A2
-_0809908C:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x3
- movs r1, 0x2
- bl sub_8001D44
- lsls r0, 24
- cmp r0, 0
- beq _080990AE
-_0809909E:
- movs r0, 0xC
- b _080990B2
-_080990A2:
- movs r0, 0x5
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0809909E
-_080990AE:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
-_080990B2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8098FCC
-
- thumb_func_start sub_80990B8
-sub_80990B8:
- push {lr}
- movs r0, 0xB
- bl sub_8098FCC
- lsls r0, 16
- asrs r2, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- bne _080990D2
- bl sub_8098FB4
- b _080990E4
-_080990D2:
- ldr r1, _080990E8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- bl sub_80A2B18
-_080990E4:
- pop {r1}
- bx r1
- .align 2, 0
-_080990E8: .4byte gUnknown_811BAF4
- thumb_func_end sub_80990B8
-
- thumb_func_start sub_80990EC
-sub_80990EC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x80
- adds r7, r0, 0
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r4, 0
- bl sub_80A2608
- mov r8, r0
- ldrb r0, [r0, 0xC]
- movs r5, 0
- strb r0, [r7]
- movs r0, 0x1
- strb r0, [r7, 0x1]
- strb r5, [r7, 0xC]
- adds r0, r4, 0
- bl sub_80A2750
- lsls r0, 16
- asrs r6, r0, 16
- cmp r6, 0x2
- beq _080991C8
- cmp r6, 0x2
- bgt _08099126
- cmp r6, 0x1
- beq _0809912C
- b _080991CA
-_08099126:
- cmp r6, 0x4
- beq _080991C4
- b _080991CA
-_0809912C:
- movs r1, 0
- strb r5, [r7, 0xB]
- adds r0, r4, 0
- subs r0, 0x25
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0809913E
- movs r1, 0x1
-_0809913E:
- cmp r1, 0
- beq _080991CA
- strb r6, [r7, 0xC]
- mov r0, sp
- movs r1, 0x5B
- bl sub_80A8EC0
- add r4, sp, 0x18
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xA
- bl sub_8092310
- add r5, sp, 0x30
- str r4, [sp, 0x58]
- add r1, sp, 0x5C
- movs r2, 0
- movs r0, 0x5E
- strh r0, [r1]
- mov r0, sp
- adds r0, 0x5E
- strb r2, [r0]
- add r0, sp, 0x60
- movs r1, 0x47
- strb r1, [r0]
- strb r2, [r0, 0x1]
- add r1, sp, 0x64
- movs r0, 0x82
- lsls r0, 1
- strh r0, [r1]
- movs r0, 0xE0
- strh r0, [r1, 0x2]
- movs r0, 0xAC
- strh r0, [r1, 0x4]
- movs r0, 0xBE
- strh r0, [r1, 0x6]
- add r1, sp, 0x6C
- movs r0, 0x50
- strh r0, [r1]
- mov r0, sp
- adds r0, 0x6E
- movs r2, 0xF
- strh r2, [r0]
- add r0, sp, 0x70
- strh r6, [r0]
- adds r0, 0x2
- movs r1, 0x19
- strh r1, [r0]
- strh r1, [r0, 0x2]
- adds r0, 0x4
- strh r2, [r0]
- strh r2, [r0, 0x2]
- ldr r0, _080991C0
- str r0, [sp, 0x7C]
- add r1, sp, 0x58
- adds r0, r5, 0
- movs r2, 0x28
- bl memcpy
- adds r0, r7, 0
- adds r0, 0x18
- adds r1, r5, 0
- bl sub_808D144
- b _080991CA
- .align 2, 0
-_080991C0: .4byte 0x000061a8
-_080991C4:
- strb r5, [r7, 0xB]
- b _080991CA
-_080991C8:
- strb r6, [r7, 0xB]
-_080991CA:
- movs r0, 0
- strb r0, [r7, 0x4]
- strb r0, [r7, 0xD]
- mov r1, r8
- ldrb r0, [r1, 0x11]
- add sp, 0x80
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80990EC
-
- thumb_func_start sub_80991E0
-sub_80991E0:
- push {lr}
- adds r2, r0, 0
- ldr r3, _08099204
- ldrh r0, [r3]
- strh r0, [r1]
- ldr r0, _08099208
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809920C
- movs r0, 0
- ldrsh r1, [r3, r0]
- adds r0, r2, 0
- bl sub_80990EC
- lsls r0, 24
- lsrs r0, 24
- b _08099218
- .align 2, 0
-_08099204: .4byte gUnknown_20398C4
-_08099208: .4byte gUnknown_203B49C
-_0809920C:
- ldr r1, _0809921C
- adds r0, r2, 0
- movs r2, 0x88
- bl memcpy
- movs r0, 0x1
-_08099218:
- pop {r1}
- bx r1
- .align 2, 0
-_0809921C: .4byte gUnknown_20398C8
- thumb_func_end sub_80991E0
-
- thumb_func_start sub_8099220
-sub_8099220:
- push {lr}
- adds r2, r0, 0
- lsls r1, 16
- asrs r3, r1, 16
- cmp r2, 0
- beq _08099258
- ldr r1, _08099248
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0809924C
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08099250
- strh r3, [r0]
- ldr r0, _08099254
- adds r1, r2, 0
- movs r2, 0x88
- bl memcpy
- b _0809926A
- .align 2, 0
-_08099248: .4byte gUnknown_203B49C
-_0809924C: .4byte gUnknown_203B49D
-_08099250: .4byte gUnknown_20398C4
-_08099254: .4byte gUnknown_20398C8
-_08099258:
- ldr r0, _08099270
- strb r2, [r0]
- ldr r0, _08099274
- strb r2, [r0]
- ldr r1, _08099278
- movs r2, 0x1
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1]
-_0809926A:
- pop {r0}
- bx r0
- .align 2, 0
-_08099270: .4byte gUnknown_203B49C
-_08099274: .4byte gUnknown_203B49D
-_08099278: .4byte gUnknown_20398C4
- thumb_func_end sub_8099220
-
- thumb_func_start sub_809927C
-sub_809927C:
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080992CC
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _080992D0
- strb r1, [r0]
- ldr r1, _080992D4
- movs r0, 0x50
- strh r0, [r1]
- ldr r4, _080992D8
- strb r5, [r4]
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x50
- bl sub_80018D8
- ldrb r2, [r4]
- movs r0, 0
- movs r1, 0x14
- bl sub_80018D8
- ldr r4, _080992DC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8095494
- subs r4, 0x10
- movs r1, 0
- movs r0, 0x1
- strb r0, [r4, 0xB]
- strb r1, [r4, 0xC]
- strb r1, [r4, 0x4]
- strb r1, [r4, 0xD]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080992CC: .4byte gUnknown_203B49C
-_080992D0: .4byte gUnknown_203B49D
-_080992D4: .4byte gUnknown_20398C4
-_080992D8: .4byte gUnknown_2039950
-_080992DC: .4byte gUnknown_20398D8
- thumb_func_end sub_809927C
-
- thumb_func_start sub_80992E0
-sub_80992E0:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08099316
- cmp r1, 0x50
- beq _08099316
- cmp r1, 0x51
- beq _08099316
- cmp r1, 0x52
- beq _08099316
- strh r1, [r4]
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- strh r0, [r5]
- movs r0, 0x1
- b _08099322
-_08099316:
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- strh r0, [r4]
- strh r0, [r5]
- movs r0, 0
-_08099322:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80992E0
-
- thumb_func_start sub_8099328
-sub_8099328:
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _08099358
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2608
- ldrb r0, [r0, 0xC]
- cmp r0, 0x3E
- bhi _08099358
- strb r0, [r4]
- movs r0, 0x1
- b _0809935A
-_08099358:
- movs r0, 0
-_0809935A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099328
-
- thumb_func_start sub_8099360
-sub_8099360:
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x52
- beq _08099378
- movs r0, 0
- b _0809938E
-_08099378:
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2608
- ldrb r0, [r0, 0xC]
- strb r0, [r4]
- movs r0, 0x1
-_0809938E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099360
-
- thumb_func_start sub_8099394
-sub_8099394:
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x50
- beq _080993AC
- movs r0, 0
- b _080993B8
-_080993AC:
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- strb r0, [r4]
- movs r0, 0x1
-_080993B8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099394
-
- thumb_func_start sub_80993C0
-sub_80993C0:
- push {lr}
- lsls r0, 24
- ldr r2, _080993D4
- movs r1, 0
- cmp r0, 0
- bne _080993CE
- movs r1, 0x1
-_080993CE:
- strb r1, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080993D4: .4byte gUnknown_20398B8
- thumb_func_end sub_80993C0
-
- thumb_func_start sub_80993D8
-sub_80993D8:
- push {lr}
- bl sub_80A4B38
- pop {r0}
- bx r0
- thumb_func_end sub_80993D8
-
- thumb_func_start sub_80993E4
-sub_80993E4:
- push {lr}
- bl sub_80A4B54
- pop {r0}
- bx r0
- thumb_func_end sub_80993E4
-
- thumb_func_start sub_80993F0
-sub_80993F0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- movs r0, 0
- mov r10, r0
- bl sub_801180C
- movs r0, 0x10
- bl sub_80118C4
- ldr r1, _0809948C
- ldr r2, _08099490
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl xxx_update_some_bg_tiles
- movs r0, 0
- movs r1, 0x14
- bl sub_80095CC
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0
- movs r1, 0x14
- bl sub_8009408
- bl sub_8099648
- bl sub_809975C
- bl sub_809D0AC
- bl sub_8014144
- movs r0, 0
- movs r1, 0
- bl sub_8005838
- bl sub_80A4A7C
- mov r7, sp
- add r0, sp, 0x8
- mov r8, r0
-_08099454:
- bl sub_801D9E4
- lsls r0, 24
- cmp r0, 0
- beq _0809949C
- mov r0, r10
- bl sub_801DA58
-_08099464:
- movs r0, 0
- movs r1, 0
- bl sub_8005838
- movs r0, 0
- bl sub_8012A18
- bl sub_801DA78
- cmp r0, 0x2
- beq _08099494
- cmp r0, 0x3
- bne _08099464
- bl sub_801DAC0
- lsls r0, 16
- asrs r0, 16
- mov r10, r0
- b _080994A2
- .align 2, 0
-_0809948C: .4byte gUnknown_2026E4E
-_08099490: .4byte 0x00000808
-_08099494:
- movs r1, 0x1
- negs r1, r1
- mov r10, r1
- b _080994A2
-_0809949C:
- movs r2, 0x1
- negs r2, r2
- mov r10, r2
-_080994A2:
- bl sub_801DB0C
- movs r0, 0x1
- negs r0, r0
- cmp r10, r0
- bne _080994B0
- b _08099624
-_080994B0:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_80A4AEC
- bl sub_809D0BC
- mov r0, r10
- bl GroundMap_Select
- mov r0, sp
- mov r1, r8
- bl sub_80A579C
- ldr r0, [r7, 0x4]
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1
- str r0, [r7, 0x4]
- mov r2, r8
- ldr r0, [r2, 0x4]
- adds r0, r1
- str r0, [r2, 0x4]
- ldr r0, [sp]
- ldr r1, _08099520
- adds r0, r1
- str r0, [sp]
- ldr r0, [r7, 0x4]
- adds r0, r1
- str r0, [r7, 0x4]
- ldr r0, [sp, 0x8]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r1, [r0, 0x4]
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r2, [sp, 0x8]
- ldr r0, [sp]
- subs r0, r2, r0
- str r0, [sp, 0x20]
- ldr r0, [r7, 0x4]
- subs r0, r1, r0
- str r0, [sp, 0x24]
- movs r4, 0
- movs r5, 0
- movs r0, 0x4
- bl sub_80999E8
- mov r9, r5
- b _08099604
- .align 2, 0
-_08099520: .4byte 0xfffffc00
-_08099524:
- ldr r0, _0809953C
- ldrh r1, [r0, 0x2]
- ldrh r6, [r0]
- movs r0, 0x4
- ands r1, r0
- cmp r1, 0
- beq _08099540
- bl sub_80999FC
- movs r1, 0x1
- mov r9, r1
- b _080995AE
- .align 2, 0
-_0809953C: .4byte gUnknown_20255F0
-_08099540:
- adds r0, r6, 0
- bl sub_809CFE8
- lsls r0, 24
- asrs r1, r0, 24
- movs r2, 0x1
- negs r2, r2
- cmp r1, r2
- beq _0809959A
- add r0, sp, 0x10
- movs r2, 0x80
- lsls r2, 1
- bl sub_8002BB8
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- movs r0, 0x2
- ands r6, r0
- cmp r6, 0
- beq _0809956A
- movs r0, 0x4
-_0809956A:
- adds r1, r0, 0
- muls r1, r2
- adds r1, r4
- adds r4, r1, 0
- muls r0, r3
- adds r5, r0
- cmp r1, 0
- bge _0809957E
- movs r4, 0
- b _08099588
-_0809957E:
- ldr r0, [sp, 0x20]
- cmp r4, r0
- blt _08099588
- adds r4, r0, 0
- subs r4, 0x1
-_08099588:
- cmp r5, 0
- bge _08099590
- movs r5, 0
- b _0809959A
-_08099590:
- ldr r1, [sp, 0x24]
- cmp r5, r1
- blt _0809959A
- adds r5, r1, 0
- subs r5, 0x1
-_0809959A:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp, 0x18]
- ldr r0, [r7, 0x4]
- adds r0, r5
- add r1, sp, 0x18
- str r0, [r1, 0x4]
- movs r0, 0
- bl sub_809D158
-_080995AE:
- bl sub_809D25C
- bl sub_80A59DC
- bl xxx_draw_string_80144C4
- movs r0, 0
- movs r1, 0
- bl sub_8005838
- bl sub_80060EC
- ldr r0, _08099620
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- bl nullsub_8
- bl sub_8005180
- bl sub_8099BE4
- bl sub_8099744
- bl sub_8011860
- bl sub_800CB20
- bl sub_800485C
- bl nullsub_120
- bl sub_80A5E70
- bl xxx_call_update_bg_vram
- bl CopySpritesToOam
- bl sub_8005304
- bl sub_8099750
- bl sub_8009908
-_08099604:
- bl xxx_call_update_bg_sound_input
- movs r0, 0
- bl ResetSprites
- mov r2, r9
- cmp r2, 0
- beq _08099524
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- bne _080995AE
- b _08099454
- .align 2, 0
-_08099620: .4byte gUnknown_203B46C
-_08099624:
- movs r0, 0x10
- bl sub_80118C4
- bl sub_80A4AC4
- bl sub_8099768
- bl nullsub_103
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80993F0
-
- thumb_func_start sub_8099648
-sub_8099648:
- push {lr}
- bl sub_8003600
- bl sub_809965C
- pop {r0}
- bx r0
- thumb_func_end sub_8099648
-
- thumb_func_start nullsub_103
-nullsub_103:
- bx lr
- thumb_func_end nullsub_103
-
- thumb_func_start sub_809965C
-sub_809965C:
- push {r4,lr}
- movs r0, 0
- bl sub_8099690
- ldr r0, _08099688
- ldr r1, _0809968C
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- movs r0, 0xF8
- lsls r0, 1
- ldr r1, [r4, 0x4]
- movs r2, 0x10
- bl sub_800388C
- adds r0, r4, 0
- bl CloseFile
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099688: .4byte gUnknown_811601C
-_0809968C: .4byte gUnknown_8300500
- thumb_func_end sub_809965C
-
- thumb_func_start sub_8099690
-sub_8099690:
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _080996BC
- ldr r1, _080996C0
- bl OpenFileAndGetFileDataPtr
- adds r6, r0, 0
- cmp r4, 0x1
- beq _080996CC
- cmp r4, 0x2
- beq _080996D4
- ldr r0, _080996C4
- ldr r0, [r0]
- ldrb r0, [r0, 0xB]
- ldr r4, _080996C8
- cmp r0, 0
- beq _080996D6
- movs r0, 0x80
- lsls r0, 1
- adds r4, r0
- b _080996D6
- .align 2, 0
-_080996BC: .4byte gUnknown_8116028
-_080996C0: .4byte gUnknown_8300500
-_080996C4: .4byte gUnknown_203B46C
-_080996C8: .4byte gUnknown_202D078
-_080996CC:
- ldr r4, _080996D0
- b _080996D6
- .align 2, 0
-_080996D0: .4byte gUnknown_202D1B8
-_080996D4:
- ldr r4, _08099704
-_080996D6:
- movs r0, 0xF0
- adds r1, r4, 0
- movs r2, 0x10
- bl sub_800388C
- adds r5, r4, 0
- movs r4, 0
-_080996E4:
- adds r0, r4, 0
- adds r0, 0xF0
- adds r1, r5, 0
- adds r5, 0x4
- bl nullsub_5
- adds r4, 0x1
- cmp r4, 0xF
- ble _080996E4
- adds r0, r6, 0
- bl CloseFile
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08099704: .4byte gUnknown_202D1F8
- thumb_func_end sub_8099690
-
- thumb_func_start sub_8099708
-sub_8099708:
- push {lr}
- sub sp, 0x4
- str r1, [sp]
- lsls r0, 16
- lsrs r0, 16
- bl sub_8003810
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8099708
-
- thumb_func_start sub_809971C
-sub_809971C:
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r2, 0
- ble _0809973E
- adds r4, r2, 0
-_0809972A:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- ldm r6!, {r1}
- bl sub_8003810
- subs r4, 0x1
- cmp r4, 0
- bne _0809972A
-_0809973E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809971C
-
- thumb_func_start sub_8099744
-sub_8099744:
- push {lr}
- bl sub_80039B8
- pop {r0}
- bx r0
- thumb_func_end sub_8099744
-
- thumb_func_start sub_8099750
-sub_8099750:
- push {lr}
- bl TransferBGPaletteBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8099750
-
- thumb_func_start sub_809975C
-sub_809975C:
- push {lr}
- bl sub_809977C
- pop {r0}
- bx r0
- thumb_func_end sub_809975C
-
- thumb_func_start sub_8099768
-sub_8099768:
- push {lr}
- bl sub_809977C
- bl sub_8099744
- bl sub_8099750
- pop {r0}
- bx r0
- thumb_func_end sub_8099768
-
- thumb_func_start sub_809977C
-sub_809977C:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r1, _080997DC
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080997E0
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080997E4
- adds r0, r6, 0
- bl sub_8099838
- ldr r0, _080997E8
- mov r8, r0
- bl sub_8099838
- ldr r4, _080997EC
- adds r0, r4, 0
- bl sub_8099838
- subs r4, 0x8
- movs r0, 0
- str r0, [r4]
- movs r5, 0x80
- lsls r5, 1
- strh r5, [r4, 0x14]
- strh r0, [r6, 0xC]
- bl sub_8099DD0
- mov r0, r8
- strh r5, [r0, 0xC]
- adds r0, r5, 0
- bl sub_8099E58
- ldr r1, _080997F0
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x40
-_080997CA:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080997CA
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080997DC: .4byte gUnknown_2039990
-_080997E0: .4byte gUnknown_2039992
-_080997E4: .4byte gUnknown_2039958
-_080997E8: .4byte gUnknown_2039968
-_080997EC: .4byte gUnknown_2039980
-_080997F0: .4byte gUnknown_2039998
- thumb_func_end sub_809977C
-
- thumb_func_start sub_80997F4
-sub_80997F4:
- push {lr}
- lsls r0, 16
- ldr r2, _08099818
- lsrs r0, 15
- adds r0, r2
- strh r1, [r0]
- ldr r0, _0809981C
- bl sub_8099848
- ldr r0, _08099820
- bl sub_8099848
- ldr r0, _08099824
- bl sub_8099848
- pop {r0}
- bx r0
- .align 2, 0
-_08099818: .4byte gUnknown_2039998
-_0809981C: .4byte gUnknown_2039958
-_08099820: .4byte gUnknown_2039968
-_08099824: .4byte gUnknown_2039980
- thumb_func_end sub_80997F4
-
- thumb_func_start sub_8099828
-sub_8099828:
- lsls r0, 16
- ldr r1, _08099834
- lsrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_08099834: .4byte gUnknown_2039998
- thumb_func_end sub_8099828
-
- thumb_func_start sub_8099838
-sub_8099838:
- movs r1, 0x1
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- bx lr
- thumb_func_end sub_8099838
-
- thumb_func_start sub_8099848
-sub_8099848:
- push {lr}
- adds r1, r0, 0
- ldr r0, [r1]
- cmp r0, 0
- bne _08099856
- movs r0, 0x1
- str r0, [r1]
-_08099856:
- pop {r0}
- bx r0
- thumb_func_end sub_8099848
-
- thumb_func_start sub_809985C
-sub_809985C:
- push {lr}
- adds r2, r0, 0
- cmp r1, 0
- blt _08099872
- cmp r1, 0
- bne _08099874
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r2, 0xC]
- movs r0, 0x1
- b _08099876
-_08099872:
- movs r1, 0x1E
-_08099874:
- movs r0, 0x2
-_08099876:
- str r0, [r2]
- strh r1, [r2, 0x4]
- strh r1, [r2, 0x6]
- pop {r0}
- bx r0
- thumb_func_end sub_809985C
-
- thumb_func_start sub_8099880
-sub_8099880:
- push {lr}
- adds r2, r0, 0
- cmp r1, 0
- blt _08099892
- cmp r1, 0
- bne _08099894
- strh r1, [r2, 0xC]
- movs r0, 0x1
- b _08099896
-_08099892:
- movs r1, 0x1E
-_08099894:
- movs r0, 0x3
-_08099896:
- str r0, [r2]
- strh r1, [r2, 0x4]
- strh r1, [r2, 0x6]
- pop {r0}
- bx r0
- thumb_func_end sub_8099880
-
- thumb_func_start sub_80998A0
-sub_80998A0:
- push {r4,lr}
- adds r4, r0, 0
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- cmp r1, 0
- bge _080998B2
- movs r1, 0x1E
-_080998B2:
- cmp r2, r3
- bls _080998BE
- movs r0, 0x5
- str r0, [r4]
- subs r0, r2, r3
- b _080998D0
-_080998BE:
- cmp r2, r3
- bcs _080998CA
- movs r0, 0x4
- str r0, [r4]
- subs r0, r3, r2
- b _080998D0
-_080998CA:
- movs r0, 0x1
- str r0, [r4]
- movs r0, 0
-_080998D0:
- strh r0, [r4, 0xA]
- strh r1, [r4, 0x4]
- strh r1, [r4, 0x6]
- strh r2, [r4, 0xC]
- strh r3, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80998A0
-
- thumb_func_start sub_80998E0
-sub_80998E0:
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4]
- cmp r0, 0x5
- bhi _080999CA
- lsls r0, 2
- ldr r1, _080998F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080998F4: .4byte _080998F8
- .align 2, 0
-_080998F8:
- .4byte _080999CA
- .4byte _080999C2
- .4byte _08099910
- .4byte _08099946
- .4byte _08099976
- .4byte _0809999A
-_08099910:
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- strh r0, [r4, 0x4]
- lsls r0, 16
- cmp r0, 0
- ble _08099940
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- lsls r0, 8
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl __divsi3
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldrh r0, [r4, 0xC]
- cmp r0, r1
- bcs _080999C6
- strh r1, [r4, 0xC]
- b _080999C6
-_08099940:
- movs r0, 0x80
- lsls r0, 1
- b _080999C0
-_08099946:
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x4]
- lsls r0, 16
- cmp r0, 0
- ble _08099970
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- lsls r0, 8
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r0, [r4, 0xC]
- cmp r0, r1
- bls _080999C6
- strh r1, [r4, 0xC]
- b _080999C6
-_08099970:
- strh r1, [r4, 0xC]
- str r1, [r4]
- b _080999C6
-_08099976:
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- strh r0, [r4, 0x4]
- lsls r0, 16
- cmp r0, 0
- ble _080999BE
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- ldrh r0, [r4, 0xA]
- muls r0, r1
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x8]
- subs r1, r0
- strh r1, [r4, 0xC]
- b _080999C6
-_0809999A:
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- strh r0, [r4, 0x4]
- lsls r0, 16
- cmp r0, 0
- ble _080999BE
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- ldrh r0, [r4, 0xA]
- muls r0, r1
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x8]
- adds r1, r0
- strh r1, [r4, 0xC]
- b _080999C6
-_080999BE:
- ldrh r0, [r4, 0x8]
-_080999C0:
- strh r0, [r4, 0xC]
-_080999C2:
- movs r0, 0
- str r0, [r4]
-_080999C6:
- movs r0, 0x1
- b _080999CC
-_080999CA:
- movs r0, 0
-_080999CC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80998E0
-
- thumb_func_start sub_80999D4
-sub_80999D4:
- ldr r2, _080999E0
- movs r1, 0x1
- strb r1, [r2]
- ldr r1, _080999E4
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080999E0: .4byte gUnknown_2039990
-_080999E4: .4byte gUnknown_2039992
- thumb_func_end sub_80999D4
-
- thumb_func_start sub_80999E8
-sub_80999E8:
- push {lr}
- adds r1, r0, 0
- ldr r0, _080999F8
- bl sub_809985C
- pop {r0}
- bx r0
- .align 2, 0
-_080999F8: .4byte gUnknown_2039958
- thumb_func_end sub_80999E8
-
- thumb_func_start sub_80999FC
-sub_80999FC:
- push {lr}
- adds r1, r0, 0
- ldr r0, _08099A0C
- bl sub_8099880
- pop {r0}
- bx r0
- .align 2, 0
-_08099A0C: .4byte gUnknown_2039958
- thumb_func_end sub_80999FC
-
- thumb_func_start sub_8099A10
-sub_8099A10:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _08099A30
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80998A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099A30: .4byte gUnknown_2039958
- thumb_func_end sub_8099A10
-
- thumb_func_start sub_8099A34
-sub_8099A34:
- push {lr}
- adds r1, r0, 0
- ldr r0, _08099A44
- bl sub_809985C
- pop {r0}
- bx r0
- .align 2, 0
-_08099A44: .4byte gUnknown_2039968
- thumb_func_end sub_8099A34
-
- thumb_func_start sub_8099A48
-sub_8099A48:
- push {lr}
- adds r1, r0, 0
- ldr r0, _08099A58
- bl sub_8099880
- pop {r0}
- bx r0
- .align 2, 0
-_08099A58: .4byte gUnknown_2039968
- thumb_func_end sub_8099A48
-
- thumb_func_start sub_8099A5C
-sub_8099A5C:
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- str r2, [sp]
- ldr r0, _08099A88
- str r4, [r0]
- ldr r2, [sp]
- str r2, [r0, 0x4]
- movs r2, 0
- strh r2, [r0, 0x14]
- adds r0, 0x8
- bl sub_809985C
- subs r0, r4, 0x1
- cmp r0, 0xD
- bhi _08099AF0
- lsls r0, 2
- ldr r1, _08099A8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08099A88: .4byte gUnknown_2039978
-_08099A8C: .4byte _08099A90
- .align 2, 0
-_08099A90:
- .4byte _08099AC8
- .4byte _08099AF0
- .4byte _08099AC8
- .4byte _08099AF0
- .4byte _08099AE8
- .4byte _08099AF0
- .4byte _08099AE8
- .4byte _08099AF0
- .4byte _08099AE0
- .4byte _08099AF0
- .4byte _08099AE0
- .4byte _08099AF0
- .4byte _08099AE8
- .4byte _08099AE8
-_08099AC8:
- ldr r0, _08099AD8
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0xC]
- ldr r0, _08099ADC
- strh r1, [r0, 0xC]
- b _08099AF0
- .align 2, 0
-_08099AD8: .4byte gUnknown_2039968
-_08099ADC: .4byte gUnknown_2039958
-_08099AE0:
- ldr r1, _08099AE4
- b _08099AEA
- .align 2, 0
-_08099AE4: .4byte gUnknown_2039968
-_08099AE8:
- ldr r1, _08099AF8
-_08099AEA:
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1, 0xC]
-_08099AF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099AF8: .4byte gUnknown_2039958
- thumb_func_end sub_8099A5C
-
- thumb_func_start sub_8099AFC
-sub_8099AFC:
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- str r2, [sp]
- ldr r0, _08099B28
- str r4, [r0]
- ldr r2, [sp]
- str r2, [r0, 0x4]
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r0, 0x14]
- adds r0, 0x8
- bl sub_8099880
- subs r0, r4, 0x2
- cmp r0, 0xC
- bhi _08099B86
- lsls r0, 2
- ldr r1, _08099B2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08099B28: .4byte gUnknown_2039978
-_08099B2C: .4byte _08099B30
- .align 2, 0
-_08099B30:
- .4byte _08099B64
- .4byte _08099B86
- .4byte _08099B64
- .4byte _08099B86
- .4byte _08099B80
- .4byte _08099B86
- .4byte _08099B80
- .4byte _08099B86
- .4byte _08099B78
- .4byte _08099B86
- .4byte _08099B78
- .4byte _08099B80
- .4byte _08099B80
-_08099B64:
- ldr r0, _08099B70
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r0, _08099B74
- strh r1, [r0, 0xC]
- b _08099B86
- .align 2, 0
-_08099B70: .4byte gUnknown_2039968
-_08099B74: .4byte gUnknown_2039958
-_08099B78:
- ldr r1, _08099B7C
- b _08099B82
- .align 2, 0
-_08099B7C: .4byte gUnknown_2039968
-_08099B80:
- ldr r1, _08099B90
-_08099B82:
- movs r0, 0
- strh r0, [r1, 0xC]
-_08099B86:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099B90: .4byte gUnknown_2039958
- thumb_func_end sub_8099AFC
-
- thumb_func_start sub_8099B94
-sub_8099B94:
- push {lr}
- ldr r0, _08099BA4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08099BA8
- movs r0, 0x1
- b _08099BD6
- .align 2, 0
-_08099BA4: .4byte gUnknown_2039990
-_08099BA8:
- ldr r1, _08099BBC
- ldr r0, [r1]
- cmp r0, 0
- beq _08099BC0
- ldr r0, [r1, 0x8]
- cmp r0, 0
- beq _08099BD6
- movs r0, 0x1
- b _08099BD6
- .align 2, 0
-_08099BBC: .4byte gUnknown_2039978
-_08099BC0:
- movs r1, 0
- ldr r0, _08099BDC
- ldr r0, [r0]
- cmp r0, 0
- bne _08099BD2
- ldr r0, _08099BE0
- ldr r0, [r0]
- cmp r0, 0
- beq _08099BD4
-_08099BD2:
- movs r1, 0x1
-_08099BD4:
- adds r0, r1, 0
-_08099BD6:
- pop {r1}
- bx r1
- .align 2, 0
-_08099BDC: .4byte gUnknown_2039958
-_08099BE0: .4byte gUnknown_2039968
- thumb_func_end sub_8099B94
-
- thumb_func_start sub_8099BE4
-sub_8099BE4:
- push {r4,r5,lr}
- ldr r4, _08099C10
- ldr r0, [r4]
- cmp r0, 0
- bne _08099BF6
- ldr r0, [r4, 0x8]
- cmp r0, 0
- bne _08099BF6
- b _08099D08
-_08099BF6:
- adds r0, r4, 0
- adds r0, 0x8
- bl sub_80998E0
- lsls r0, 24
- cmp r0, 0
- beq _08099C14
- ldrh r0, [r4, 0x14]
- ldr r1, [r4, 0x4]
- bl sub_8099E80
- b _08099DC0
- .align 2, 0
-_08099C10: .4byte gUnknown_2039978
-_08099C14:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _08099C1C
- b _08099DC0
-_08099C1C:
- ldr r0, [r4]
- cmp r0, 0xE
- bls _08099C24
- b _08099DC0
-_08099C24:
- lsls r0, 2
- ldr r1, _08099C30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08099C30: .4byte _08099C34
- .align 2, 0
-_08099C34:
- .4byte _08099DC0
- .4byte _08099C70
- .4byte _08099CD8
- .4byte _08099C70
- .4byte _08099CD8
- .4byte _08099C70
- .4byte _08099CD8
- .4byte _08099C70
- .4byte _08099CD8
- .4byte _08099C70
- .4byte _08099CD8
- .4byte _08099C70
- .4byte _08099CD8
- .4byte _08099CD8
- .4byte _08099CD8
-_08099C70:
- ldr r0, _08099C80
- ldrh r1, [r0, 0x14]
- adds r3, r0, 0
- cmp r1, 0xFF
- bls _08099C84
- movs r0, 0
- str r0, [r3]
- b _08099DC0
- .align 2, 0
-_08099C80: .4byte gUnknown_2039978
-_08099C84:
- ldr r0, _08099CA0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08099C8E
- b _08099DC0
-_08099C8E:
- movs r2, 0
- ldr r0, [r3]
- cmp r0, 0x3
- beq _08099CB2
- cmp r0, 0x3
- bhi _08099CA4
- cmp r0, 0x1
- beq _08099CAE
- b _08099CBC
- .align 2, 0
-_08099CA0: .4byte gUnknown_2039990
-_08099CA4:
- cmp r0, 0x5
- beq _08099CB6
- cmp r0, 0x7
- beq _08099CBA
- b _08099CBC
-_08099CAE:
- movs r2, 0x2
- b _08099CC0
-_08099CB2:
- movs r2, 0x4
- b _08099CC0
-_08099CB6:
- movs r2, 0x6
- b _08099CC0
-_08099CBA:
- movs r2, 0x8
-_08099CBC:
- cmp r2, 0
- beq _08099CD4
-_08099CC0:
- ldr r0, _08099CD0
- movs r4, 0
- ldrsh r1, [r0, r4]
- adds r0, r2, 0
- ldr r2, [r3, 0x4]
- bl sub_8099AFC
- b _08099DC0
- .align 2, 0
-_08099CD0: .4byte gUnknown_2039992
-_08099CD4:
- str r2, [r3]
- b _08099DC0
-_08099CD8:
- ldr r2, _08099CE4
- ldrh r0, [r2, 0x14]
- cmp r0, 0
- bne _08099CE8
- str r0, [r2]
- b _08099DC0
- .align 2, 0
-_08099CE4: .4byte gUnknown_2039978
-_08099CE8:
- ldr r0, _08099D00
- ldrb r0, [r0]
- cmp r0, 0
- beq _08099DC0
- ldr r0, [r2]
- ldr r1, _08099D04
- movs r3, 0
- ldrsh r1, [r1, r3]
- ldr r2, [r2, 0x4]
- bl sub_8099AFC
- b _08099DC0
- .align 2, 0
-_08099D00: .4byte gUnknown_2039990
-_08099D04: .4byte gUnknown_2039992
-_08099D08:
- ldr r0, _08099D88
- ldrb r0, [r0]
- cmp r0, 0
- beq _08099D98
- movs r5, 0x1
- ldr r4, _08099D8C
- ldrh r0, [r4, 0xC]
- cmp r0, 0
- bne _08099D20
- ldr r0, [r4]
- cmp r0, 0
- beq _08099D46
-_08099D20:
- movs r5, 0
- ldr r0, [r4]
- cmp r0, 0x3
- beq _08099D34
- ldr r0, _08099D90
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r4, 0
- bl sub_8099880
-_08099D34:
- adds r0, r4, 0
- bl sub_80998E0
- lsls r0, 24
- cmp r0, 0
- beq _08099D46
- ldrh r0, [r4, 0xC]
- bl sub_8099DD0
-_08099D46:
- ldr r4, _08099D94
- ldrh r0, [r4, 0xC]
- cmp r0, 0
- bne _08099D54
- ldr r0, [r4]
- cmp r0, 0
- beq _08099D7A
-_08099D54:
- movs r5, 0
- ldr r0, [r4]
- cmp r0, 0x3
- beq _08099D68
- ldr r0, _08099D90
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r0, r4, 0
- bl sub_8099880
-_08099D68:
- adds r0, r4, 0
- bl sub_80998E0
- lsls r0, 24
- cmp r0, 0
- beq _08099D7A
- ldrh r0, [r4, 0xC]
- bl sub_8099E58
-_08099D7A:
- cmp r5, 0
- beq _08099DC0
- ldr r1, _08099D88
- movs r0, 0
- strb r0, [r1]
- b _08099DC0
- .align 2, 0
-_08099D88: .4byte gUnknown_2039990
-_08099D8C: .4byte gUnknown_2039958
-_08099D90: .4byte gUnknown_2039992
-_08099D94: .4byte gUnknown_2039968
-_08099D98:
- ldr r4, _08099DC8
- adds r0, r4, 0
- bl sub_80998E0
- lsls r0, 24
- cmp r0, 0
- beq _08099DAC
- ldrh r0, [r4, 0xC]
- bl sub_8099DD0
-_08099DAC:
- ldr r4, _08099DCC
- adds r0, r4, 0
- bl sub_80998E0
- lsls r0, 24
- cmp r0, 0
- beq _08099DC0
- ldrh r0, [r4, 0xC]
- bl sub_8099E58
-_08099DC0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099DC8: .4byte gUnknown_2039958
-_08099DCC: .4byte gUnknown_2039968
- thumb_func_end sub_8099BE4
-
- thumb_func_start sub_8099DD0
-sub_8099DD0:
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r4, 0
- ldr r6, _08099DF4
- movs r5, 0xD
-_08099DDC:
- ldrh r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08099DF8
- lsrs r0, r4, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _08099E00
- .align 2, 0
-_08099DF4: .4byte gUnknown_2039998
-_08099DF8:
- lsrs r0, r4, 16
- adds r1, r7, 0
- bl sub_8003664
-_08099E00:
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r6, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _08099DDC
- ldr r0, _08099E30
- movs r4, 0x80
- lsls r4, 13
- adds r6, r0, 0
- adds r6, 0x20
- movs r5, 0xE
-_08099E1A:
- ldrh r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08099E34
- lsrs r0, r4, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _08099E3C
- .align 2, 0
-_08099E30: .4byte gUnknown_2039998
-_08099E34:
- lsrs r0, r4, 16
- adds r1, r7, 0
- bl sub_8003664
-_08099E3C:
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r6, 0x2
- subs r5, 0x1
- cmp r5, 0
- bge _08099E1A
- movs r0, 0x20
- adds r1, r7, 0
- bl sub_8003664
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099DD0
-
- thumb_func_start sub_8099E58
-sub_8099E58:
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xF
- adds r1, r4, 0
- bl sub_8003664
- movs r0, 0xE
- adds r1, r4, 0
- bl sub_8003664
- movs r0, 0x1F
- adds r1, r4, 0
- bl sub_8003664
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8099E58
-
- thumb_func_start sub_8099E80
-sub_8099E80:
- push {r4-r7,lr}
- sub sp, 0x4
- str r1, [sp]
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08099EA0
- ldr r1, [r0]
- adds r2, r0, 0
- cmp r1, 0xE
- bls _08099E96
- b _0809A558
-_08099E96:
- lsls r0, r1, 2
- ldr r1, _08099EA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08099EA0: .4byte gUnknown_2039978
-_08099EA4: .4byte _08099EA8
- .align 2, 0
-_08099EA8:
- .4byte _0809A558
- .4byte _08099EE4
- .4byte _0809A05A
- .4byte _0809A1D2
- .4byte _0809A34A
- .4byte _08099FDE
- .4byte _0809A156
- .4byte _0809A2CE
- .4byte _0809A4BC
- .4byte _08099F5E
- .4byte _0809A0D6
- .4byte _0809A24E
- .4byte _0809A3EA
- .4byte _0809A48A
- .4byte _0809A48A
-_08099EE4:
- movs r4, 0
- movs r5, 0
- ldr r7, _08099F00
-_08099EEA:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08099F04
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _08099F0E
- .align 2, 0
-_08099F00: .4byte gUnknown_2039998
-_08099F04:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036AC
-_08099F0E:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xF
- ble _08099EEA
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
- ldr r0, _08099F40
- adds r7, r0, 0
- adds r7, 0x20
-_08099F28:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08099F44
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _08099F4E
- .align 2, 0
-_08099F40: .4byte gUnknown_2039998
-_08099F44:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036AC
-_08099F4E:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1F
- ble _08099F28
- b _0809A558
-_08099F5E:
- movs r4, 0xE
- movs r5, 0xE0
- lsls r5, 12
- ldr r0, _08099F80
- adds r7, r0, 0
- adds r7, 0x1C
-_08099F6A:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08099F84
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _08099F8E
- .align 2, 0
-_08099F80: .4byte gUnknown_2039998
-_08099F84:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036AC
-_08099F8E:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xF
- ble _08099F6A
- movs r4, 0x1F
- movs r5, 0xF8
- lsls r5, 13
- ldr r0, _08099FC0
- adds r7, r0, 0
- adds r7, 0x3E
-_08099FA8:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08099FC4
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _08099FCE
- .align 2, 0
-_08099FC0: .4byte gUnknown_2039998
-_08099FC4:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036AC
-_08099FCE:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1F
- ble _08099FA8
- b _0809A558
-_08099FDE:
- movs r4, 0
- movs r5, 0
- ldr r7, _08099FFC
-_08099FE4:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A000
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A00A
- .align 2, 0
-_08099FFC: .4byte gUnknown_2039998
-_0809A000:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036AC
-_0809A00A:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xD
- ble _08099FE4
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
- ldr r0, _0809A03C
- adds r7, r0, 0
- adds r7, 0x20
-_0809A024:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A040
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A04A
- .align 2, 0
-_0809A03C: .4byte gUnknown_2039998
-_0809A040:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036AC
-_0809A04A:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1E
- ble _0809A024
- b _0809A558
-_0809A05A:
- movs r4, 0
- movs r5, 0
- ldr r7, _0809A078
-_0809A060:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A07C
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A086
- .align 2, 0
-_0809A078: .4byte gUnknown_2039998
-_0809A07C:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036F4
-_0809A086:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xF
- ble _0809A060
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
- ldr r0, _0809A0B8
- adds r7, r0, 0
- adds r7, 0x20
-_0809A0A0:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A0BC
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A0C6
- .align 2, 0
-_0809A0B8: .4byte gUnknown_2039998
-_0809A0BC:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036F4
-_0809A0C6:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0809A0A0
- b _0809A558
-_0809A0D6:
- movs r4, 0xE
- movs r5, 0xE0
- lsls r5, 12
- ldr r0, _0809A0F8
- adds r7, r0, 0
- adds r7, 0x1C
-_0809A0E2:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A0FC
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A106
- .align 2, 0
-_0809A0F8: .4byte gUnknown_2039998
-_0809A0FC:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036F4
-_0809A106:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xF
- ble _0809A0E2
- movs r4, 0x1F
- movs r5, 0xF8
- lsls r5, 13
- ldr r0, _0809A138
- adds r7, r0, 0
- adds r7, 0x3E
-_0809A120:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A13C
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A146
- .align 2, 0
-_0809A138: .4byte gUnknown_2039998
-_0809A13C:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036F4
-_0809A146:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0809A120
- b _0809A558
-_0809A156:
- movs r4, 0
- movs r5, 0
- ldr r7, _0809A174
-_0809A15C:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A178
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A182
- .align 2, 0
-_0809A174: .4byte gUnknown_2039998
-_0809A178:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036F4
-_0809A182:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xD
- ble _0809A15C
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
- ldr r0, _0809A1B4
- adds r7, r0, 0
- adds r7, 0x20
-_0809A19C:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A1B8
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A1C2
- .align 2, 0
-_0809A1B4: .4byte gUnknown_2039998
-_0809A1B8:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80036F4
-_0809A1C2:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1E
- ble _0809A19C
- b _0809A558
-_0809A1D2:
- movs r4, 0
- movs r5, 0
- ldr r7, _0809A1F0
-_0809A1D8:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A1F4
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A1FE
- .align 2, 0
-_0809A1F0: .4byte gUnknown_2039998
-_0809A1F4:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_8003780
-_0809A1FE:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xF
- ble _0809A1D8
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
- ldr r0, _0809A230
- adds r7, r0, 0
- adds r7, 0x20
-_0809A218:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A234
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A23E
- .align 2, 0
-_0809A230: .4byte gUnknown_2039998
-_0809A234:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_8003780
-_0809A23E:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0809A218
- b _0809A558
-_0809A24E:
- movs r4, 0xE
- movs r5, 0xE0
- lsls r5, 12
- ldr r0, _0809A270
- adds r7, r0, 0
- adds r7, 0x1C
-_0809A25A:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A274
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A27E
- .align 2, 0
-_0809A270: .4byte gUnknown_2039998
-_0809A274:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_8003780
-_0809A27E:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xF
- ble _0809A25A
- movs r4, 0x1F
- movs r5, 0xF8
- lsls r5, 13
- ldr r0, _0809A2B0
- adds r7, r0, 0
- adds r7, 0x3E
-_0809A298:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A2B4
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A2BE
- .align 2, 0
-_0809A2B0: .4byte gUnknown_2039998
-_0809A2B4:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_8003780
-_0809A2BE:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0809A298
- b _0809A558
-_0809A2CE:
- movs r4, 0
- movs r5, 0
- ldr r7, _0809A2EC
-_0809A2D4:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A2F0
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A2FA
- .align 2, 0
-_0809A2EC: .4byte gUnknown_2039998
-_0809A2F0:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_8003780
-_0809A2FA:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0xD
- ble _0809A2D4
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
- ldr r0, _0809A32C
- adds r7, r0, 0
- adds r7, 0x20
-_0809A314:
- ldrh r1, [r7]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A330
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A33A
- .align 2, 0
-_0809A32C: .4byte gUnknown_2039998
-_0809A330:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_8003780
-_0809A33A:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r7, 0x2
- adds r4, 0x1
- cmp r4, 0x1E
- ble _0809A314
- b _0809A558
-_0809A34A:
- movs r4, 0
- movs r5, 0
-_0809A34E:
- ldr r0, _0809A36C
- lsls r1, r4, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809A370
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A38C
- .align 2, 0
-_0809A36C: .4byte gUnknown_2039998
-_0809A370:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A382
- lsrs r0, r5, 16
- adds r1, r6, 0
- bl sub_8003664
- b _0809A38C
-_0809A382:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80037C8
-_0809A38C:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0xF
- ble _0809A34E
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
-_0809A39E:
- ldr r0, _0809A3BC
- lsls r1, r4, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809A3C0
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A3DC
- .align 2, 0
-_0809A3BC: .4byte gUnknown_2039998
-_0809A3C0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A3D2
- lsrs r0, r5, 16
- adds r1, r6, 0
- bl sub_8003664
- b _0809A3DC
-_0809A3D2:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80037C8
-_0809A3DC:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0809A39E
- b _0809A558
-_0809A3EA:
- movs r4, 0xE
- movs r5, 0xE0
- lsls r5, 12
-_0809A3F0:
- ldr r0, _0809A40C
- lsls r1, r4, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809A410
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A42C
- .align 2, 0
-_0809A40C: .4byte gUnknown_2039998
-_0809A410:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A422
- lsrs r0, r5, 16
- adds r1, r6, 0
- bl sub_8003664
- b _0809A42C
-_0809A422:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80037C8
-_0809A42C:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0xF
- ble _0809A3F0
- movs r4, 0x1F
- movs r5, 0xF8
- lsls r5, 13
-_0809A43E:
- ldr r0, _0809A45C
- lsls r1, r4, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809A460
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A47C
- .align 2, 0
-_0809A45C: .4byte gUnknown_2039998
-_0809A460:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A472
- lsrs r0, r5, 16
- adds r1, r6, 0
- bl sub_8003664
- b _0809A47C
-_0809A472:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80037C8
-_0809A47C:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0809A43E
- b _0809A558
-_0809A48A:
- ldr r0, [r2]
- cmp r0, 0xD
- beq _0809A496
- cmp r0, 0xE
- beq _0809A4AA
- b _0809A4BC
-_0809A496:
- mov r0, sp
- movs r1, 0x90
- strb r1, [r0]
- strb r1, [r0, 0x1]
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x2]
- movs r0, 0x1
- negs r0, r0
- b _0809A4BA
-_0809A4AA:
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0xC0
- strb r0, [r1, 0x1]
- movs r0, 0x80
- strb r0, [r1, 0x2]
- subs r0, 0x81
-_0809A4BA:
- strb r0, [r1, 0x3]
-_0809A4BC:
- movs r4, 0
- movs r5, 0
-_0809A4C0:
- ldr r0, _0809A4DC
- lsls r1, r4, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809A4E0
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A4FC
- .align 2, 0
-_0809A4DC: .4byte gUnknown_2039998
-_0809A4E0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A4F2
- lsrs r0, r5, 16
- adds r1, r6, 0
- bl sub_8003664
- b _0809A4FC
-_0809A4F2:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80037C8
-_0809A4FC:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0xD
- ble _0809A4C0
- movs r4, 0x10
- movs r5, 0x80
- lsls r5, 13
-_0809A50E:
- ldr r0, _0809A52C
- lsls r1, r4, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809A530
- lsrs r0, r5, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8003664
- b _0809A54C
- .align 2, 0
-_0809A52C: .4byte gUnknown_2039998
-_0809A530:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809A542
- lsrs r0, r5, 16
- adds r1, r6, 0
- bl sub_8003664
- b _0809A54C
-_0809A542:
- lsrs r0, r5, 16
- adds r1, r6, 0
- ldr r2, [sp]
- bl sub_80037C8
-_0809A54C:
- movs r0, 0x80
- lsls r0, 9
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x1E
- ble _0809A50E
-_0809A558:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099E80
-
- thumb_func_start sub_809A560
-sub_809A560:
- push {r4-r6,lr}
- bl sub_8014144
- ldr r6, _0809A5F4
- movs r0, 0xB5
- lsls r0, 3
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r6]
- movs r4, 0
- str r4, [r0]
- movs r5, 0x1
- negs r5, r5
- str r5, [r0, 0x4]
- str r5, [r0, 0x8]
- ldr r0, _0809A5F8
- strh r4, [r0]
- ldr r0, _0809A5FC
- strh r4, [r0]
- movs r0, 0
- movs r1, 0x14
- bl sub_80095CC
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0
- movs r1, 0x14
- bl sub_8009408
- bl sub_809B294
- ldr r0, [r6]
- ldr r2, _0809A600
- adds r1, r0, r2
- str r4, [r1]
- adds r2, 0x4
- adds r1, r0, r2
- str r4, [r1]
- adds r2, 0x4
- adds r1, r0, r2
- str r4, [r1]
- adds r2, 0x4
- adds r1, r0, r2
- str r4, [r1]
- adds r2, 0x4
- adds r1, r0, r2
- str r4, [r1]
- adds r2, 0x4
- adds r1, r0, r2
- str r4, [r1]
- adds r2, 0x4
- adds r1, r0, r2
- str r4, [r1]
- adds r2, 0x4
- adds r1, r0, r2
- str r5, [r1]
- ldr r1, _0809A604
- adds r0, r1
- str r5, [r0]
- bl sub_809A7EC
- ldr r0, [r6]
- ldr r2, _0809A608
- adds r0, r2
- ldr r1, _0809A60C
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A5F4: .4byte gUnknown_3001B64
-_0809A5F8: .4byte gUnknown_20399DC
-_0809A5FC: .4byte gUnknown_20399DE
-_0809A600: .4byte 0x00000414
-_0809A604: .4byte 0x00000434
-_0809A608: .4byte 0x000005a4
-_0809A60C: .4byte 0x0000ffff
- thumb_func_end sub_809A560
-
- thumb_func_start sub_809A610
-sub_809A610:
- push {r4,lr}
- bl sub_809A62C
- ldr r4, _0809A628
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A628: .4byte gUnknown_3001B64
- thumb_func_end sub_809A610
-
- thumb_func_start sub_809A62C
-sub_809A62C:
- push {r4,lr}
- ldr r0, _0809A670
- ldr r0, [r0]
- movs r2, 0
- str r2, [r0]
- movs r1, 0x1
- negs r1, r1
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- ldr r0, _0809A674
- strh r2, [r0]
- ldr r0, _0809A678
- strh r2, [r0]
- movs r4, 0
-_0809A648:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_809A83C
- adds r4, 0x1
- cmp r4, 0x9
- ble _0809A648
- ldr r0, _0809A670
- ldr r0, [r0]
- ldr r1, _0809A67C
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- movs r0, 0
- movs r1, 0x1
- bl sub_809A680
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A670: .4byte gUnknown_3001B64
-_0809A674: .4byte gUnknown_20399DC
-_0809A678: .4byte gUnknown_20399DE
-_0809A67C: .4byte 0x00000414
- thumb_func_end sub_809A62C
-
- thumb_func_start sub_809A680
-sub_809A680:
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0x4
- bhi _0809A6C2
- lsls r0, r4, 2
- ldr r1, _0809A694
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809A694: .4byte _0809A698
- .align 2, 0
-_0809A698:
- .4byte _0809A6AC
- .4byte _0809A6BC
- .4byte _0809A6BC
- .4byte _0809A6BC
- .4byte _0809A6BC
-_0809A6AC:
- bl sub_809B294
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- b _0809A6D0
-_0809A6BC:
- bl sub_809B294
- b _0809A6D0
-_0809A6C2:
- bl sub_809B294
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
-_0809A6D0:
- ldr r0, _0809A6E0
- ldr r0, [r0]
- str r4, [r0]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809A6E0: .4byte gUnknown_3001B64
- thumb_func_end sub_809A680
-
- thumb_func_start sub_809A6E4
-sub_809A6E4:
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0809A6F4
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0809A6F4: .4byte gUnknown_20399DC
- thumb_func_end sub_809A6E4
-
- thumb_func_start sub_809A6F8
-sub_809A6F8:
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0809A708
- ldrh r1, [r2]
- bics r1, r0
- strh r1, [r2]
- bx lr
- .align 2, 0
-_0809A708: .4byte gUnknown_20399DC
- thumb_func_end sub_809A6F8
-
- thumb_func_start sub_809A70C
-sub_809A70C:
- ldr r0, _0809A714
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0809A714: .4byte gUnknown_20399DC
- thumb_func_end sub_809A70C
-
- thumb_func_start nullsub_209
-nullsub_209:
- bx lr
- thumb_func_end nullsub_209
-
- thumb_func_start sub_809A71C
-sub_809A71C:
- push {lr}
- adds r1, r0, 0
- ldr r0, _0809A734
- ldr r0, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- adds r0, r1, 0
- bl sub_801416C
- pop {r0}
- bx r0
- .align 2, 0
-_0809A734: .4byte gUnknown_3001B64
- thumb_func_end sub_809A71C
-
- thumb_func_start sub_809A738
-sub_809A738:
- push {lr}
- ldr r2, _0809A74C
- ldr r2, [r2]
- str r0, [r2, 0x4]
- str r1, [r2, 0x8]
- bl sub_801416C
- pop {r0}
- bx r0
- .align 2, 0
-_0809A74C: .4byte gUnknown_3001B64
- thumb_func_end sub_809A738
-
- thumb_func_start sub_809A750
-sub_809A750:
- push {lr}
- ldr r0, _0809A764
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_809B40C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0809A764: .4byte gUnknown_3001B64
- thumb_func_end sub_809A750
-
- thumb_func_start sub_809A768
-sub_809A768:
- movs r0, 0
- bx lr
- thumb_func_end sub_809A768
-
- thumb_func_start sub_809A76C
-sub_809A76C:
- push {lr}
- ldr r0, _0809A78C
- ldr r0, [r0]
- ldr r1, [r0]
- cmp r1, 0x1
- bcc _0809A7A4
- cmp r1, 0x2
- bls _0809A790
- cmp r1, 0x3
- bne _0809A7A4
- adds r0, 0xC
- movs r2, 0x1
- negs r2, r2
- movs r1, 0x4
- b _0809A798
- .align 2, 0
-_0809A78C: .4byte gUnknown_3001B64
-_0809A790:
- adds r0, 0xC
- movs r2, 0x1
- negs r2, r2
- movs r1, 0x84
-_0809A798:
- movs r3, 0
- bl sub_809B2B8
- lsls r0, 24
- lsrs r0, 24
- b _0809A7AE
-_0809A7A4:
- movs r0, 0
- movs r1, 0x1
- bl sub_809A680
- movs r0, 0
-_0809A7AE:
- pop {r1}
- bx r1
- thumb_func_end sub_809A76C
-
- thumb_func_start sub_809A7B4
-sub_809A7B4:
- push {lr}
- ldr r0, _0809A7D8
- ldr r0, [r0]
- ldr r1, [r0]
- cmp r1, 0x3
- bhi _0809A7DC
- cmp r1, 0x1
- bcc _0809A7DC
- adds r0, 0xC
- movs r2, 0x1
- negs r2, r2
- movs r1, 0x4
- movs r3, 0
- bl sub_809B2B8
- lsls r0, 24
- lsrs r0, 24
- b _0809A7E6
- .align 2, 0
-_0809A7D8: .4byte gUnknown_3001B64
-_0809A7DC:
- movs r0, 0
- movs r1, 0x1
- bl sub_809A680
- movs r0, 0
-_0809A7E6:
- pop {r1}
- bx r1
- thumb_func_end sub_809A7B4
-
- thumb_func_start sub_809A7EC
-sub_809A7EC:
- push {r4-r6,lr}
- ldr r0, _0809A830
- ldr r0, [r0]
- ldr r2, _0809A834
- adds r1, r0, r2
- ldr r0, _0809A838
- adds r6, r0, 0
- movs r3, 0
- movs r2, 0
- movs r4, 0x9
- movs r5, 0xFF
-_0809A802:
- ldrh r0, [r1]
- orrs r0, r6
- strh r0, [r1]
- strh r2, [r1, 0x2]
- strb r3, [r1, 0x4]
- strb r3, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- orrs r0, r5
- strb r0, [r1, 0x6]
- strb r3, [r1, 0x7]
- str r2, [r1, 0x8]
- str r2, [r1, 0xC]
- str r2, [r1, 0x10]
- str r2, [r1, 0x14]
- strb r3, [r1, 0x1C]
- str r2, [r1, 0x20]
- subs r4, 0x1
- adds r1, 0x24
- cmp r4, 0
- bge _0809A802
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A830: .4byte gUnknown_3001B64
-_0809A834: .4byte 0x0000043c
-_0809A838: .4byte 0x0000ffff
- thumb_func_end sub_809A7EC
-
- thumb_func_start sub_809A83C
-sub_809A83C:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0809A8A0
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r3, _0809A8A4
- adds r1, r3
- ldr r2, [r2]
- adds r6, r2, r1
- ldr r1, _0809A8A8
- strh r1, [r6]
- movs r2, 0
- movs r7, 0
- strh r7, [r6, 0x2]
- strb r2, [r6, 0x4]
- strb r2, [r6, 0x5]
- movs r1, 0xFF
- strb r1, [r6, 0x6]
- strb r2, [r6, 0x7]
- str r7, [r6, 0x8]
- str r7, [r6, 0xC]
- str r7, [r6, 0x10]
- str r7, [r6, 0x14]
- strb r2, [r6, 0x1C]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 4
- ldr r0, _0809A8AC
- adds r0, r4, r0
- ldr r5, _0809A8B0
- adds r1, r5, 0
- bl strcpy
- ldr r0, _0809A8B4
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl strcpy
- ldr r0, [r6, 0x20]
- cmp r0, 0
- beq _0809A89A
- bl CloseFile
- str r7, [r6, 0x20]
-_0809A89A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A8A0: .4byte gUnknown_3001B64
-_0809A8A4: .4byte 0x0000043c
-_0809A8A8: .4byte 0x0000ffff
-_0809A8AC: .4byte gUnknown_202DF98
-_0809A8B0: .4byte gUnknown_811615C
-_0809A8B4: .4byte gUnknown_202E2B8
- thumb_func_end sub_809A83C
-
- thumb_func_start sub_809A8B8
-sub_809A8B8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- asrs r0, 16
- mov r9, r0
- mov r0, sp
- strh r1, [r0]
- ldr r1, _0809A928
- mov r2, r9
- lsls r0, r2, 3
- add r0, r9
- lsls r0, 2
- ldr r2, _0809A92C
- adds r0, r2
- ldr r1, [r1]
- adds r7, r1, r0
- movs r0, 0x1
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r0, [r7, 0x20]
- cmp r0, 0
- beq _0809A8F6
- bl CloseFile
- ldr r2, [sp, 0x4]
- str r2, [r7, 0x20]
-_0809A8F6:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80A7DDC
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0xA
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x13
- bhi _0809A9D6
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80A8D54
- adds r5, r0, 0
- cmp r5, 0
- bne _0809A930
- movs r2, 0
- mov r10, r2
- b _0809A9D6
- .align 2, 0
-_0809A928: .4byte gUnknown_3001B64
-_0809A92C: .4byte 0x0000043c
-_0809A930:
- bl sub_808D3BC
- cmp r5, r0
- bne _0809A940
- mov r1, sp
- movs r0, 0x21
- strh r0, [r1]
- b _0809A9D6
-_0809A940:
- bl sub_808D3F8
- cmp r5, r0
- bne _0809A950
- mov r1, sp
- movs r0, 0x22
- strh r0, [r1]
- b _0809A9D6
-_0809A950:
- ldrb r0, [r5, 0x4]
- subs r0, 0x43
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0809A990
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r0, _0809A978
- cmp r1, r0
- beq _0809A9D6
- cmp r1, r0
- ble _0809A97C
- adds r0, 0x16
- cmp r1, r0
- bgt _0809A98A
- subs r0, 0x1
- cmp r1, r0
- blt _0809A98A
- b _0809A9D6
- .align 2, 0
-_0809A978: .4byte 0x00000183
-_0809A97C:
- movs r0, 0x82
- lsls r0, 1
- cmp r1, r0
- beq _0809A9D6
- adds r0, 0x2F
- cmp r1, r0
- beq _0809A9D6
-_0809A98A:
- movs r1, 0
- mov r10, r1
- b _0809A9D6
-_0809A990:
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r0, 0x87
- lsls r0, 1
- cmp r1, r0
- bgt _0809A9B0
- subs r0, 0x2
- cmp r1, r0
- bge _0809A9D6
- cmp r1, 0x90
- blt _0809A9D2
- cmp r1, 0x92
- ble _0809A9D6
- cmp r1, 0x96
- beq _0809A9D6
- b _0809A9D2
-_0809A9B0:
- movs r0, 0xCF
- lsls r0, 1
- cmp r1, r0
- bgt _0809A9CC
- subs r0, 0x4
- cmp r1, r0
- bge _0809A9D6
- subs r0, 0x87
- cmp r1, r0
- bgt _0809A9D2
- subs r0, 0x1
- cmp r1, r0
- blt _0809A9D2
- b _0809A9D6
-_0809A9CC:
- ldr r0, _0809A9F0
- cmp r1, r0
- beq _0809A9D6
-_0809A9D2:
- movs r0, 0
- mov r10, r0
-_0809A9D6:
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x21
- bhi _0809AA98
- lsls r0, 2
- ldr r1, _0809A9F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809A9F0: .4byte 0x000001a7
-_0809A9F4: .4byte _0809A9F8
- .align 2, 0
-_0809A9F8:
- .4byte _0809AA80
- .4byte _0809AA80
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA80
- .4byte _0809AA80
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA98
- .4byte _0809AA80
- .4byte _0809AA80
-_0809AA80:
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80A8CF0
- lsls r0, 24
- cmp r0, 0
- beq _0809AA94
- movs r2, 0x1
- str r2, [sp, 0x4]
- b _0809AA98
-_0809AA94:
- movs r0, 0
- mov r10, r0
-_0809AA98:
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AB34
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80A7AE8
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- blt _0809AACE
- mov r0, sp
- ldrh r0, [r0]
- movs r2, 0
- mov r8, r2
- movs r6, 0
- strh r0, [r7]
- adds r0, r1, 0
- bl sub_80A8BFC
- strh r0, [r7, 0x2]
- b _0809AAE6
-_0809AACE:
- ldrh r1, [r4]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0809AB34
- mov r0, sp
- ldrh r0, [r0]
- movs r2, 0
- mov r8, r2
- movs r6, 0
- strh r0, [r7]
- strh r1, [r7, 0x2]
-_0809AAE6:
- mov r0, r9
- lsls r4, r0, 2
- add r4, r9
- lsls r4, 4
- ldr r0, _0809AB28
- adds r0, r4, r0
- ldr r5, _0809AB2C
- adds r1, r5, 0
- bl strcpy
- ldr r0, _0809AB30
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl strcpy
- mov r1, r10
- strb r1, [r7, 0x4]
- mov r2, sp
- ldrb r2, [r2, 0x4]
- strb r2, [r7, 0x5]
- movs r0, 0xFF
- strb r0, [r7, 0x6]
- mov r0, r8
- strb r0, [r7, 0x7]
- str r6, [r7, 0x8]
- str r6, [r7, 0xC]
- str r6, [r7, 0x10]
- str r6, [r7, 0x14]
- strb r0, [r7, 0x1C]
- movs r0, 0x1
- b _0809AB3C
- .align 2, 0
-_0809AB28: .4byte gUnknown_202DF98
-_0809AB2C: .4byte gUnknown_811616C
-_0809AB30: .4byte gUnknown_202E2B8
-_0809AB34:
- mov r0, r9
- bl sub_809A83C
- movs r0, 0
-_0809AB3C:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A8B8
-
- thumb_func_start sub_809AB4C
-sub_809AB4C:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0809AB78
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- ldr r3, _0809AB7C
- adds r0, r3
- ldr r2, [r2]
- adds r6, r2, r0
- adds r0, r5, 0
- bl sub_809A8B8
- lsls r0, 24
- cmp r0, 0
- bne _0809AB80
- movs r0, 0
- b _0809ABA0
- .align 2, 0
-_0809AB78: .4byte gUnknown_3001B64
-_0809AB7C: .4byte 0x0000043c
-_0809AB80:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 4
- ldr r0, _0809ABA8
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl sub_808D908
- ldr r0, _0809ABAC
- adds r4, r0
- ldr r1, _0809ABB0
- adds r0, r4, 0
- bl strcpy
- movs r0, 0x1
-_0809ABA0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809ABA8: .4byte gUnknown_202DF98
-_0809ABAC: .4byte gUnknown_202E2B8
-_0809ABB0: .4byte gUnknown_811617C
- thumb_func_end sub_809AB4C
-
- thumb_func_start sub_809ABB4
-sub_809ABB4:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0809ABE0
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- ldr r3, _0809ABE4
- adds r0, r3
- ldr r2, [r2]
- adds r6, r2, r0
- adds r0, r5, 0
- bl sub_809A8B8
- lsls r0, 24
- cmp r0, 0
- bne _0809ABE8
- movs r0, 0
- b _0809AC0A
- .align 2, 0
-_0809ABE0: .4byte gUnknown_3001B64
-_0809ABE4: .4byte 0x0000043c
-_0809ABE8:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 4
- ldr r5, _0809AC10
- adds r5, r4, r5
- movs r0, 0x2
- ldrsh r1, [r6, r0]
- adds r0, r5, 0
- bl sub_808D908
- ldr r0, _0809AC14
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl strcpy
- movs r0, 0x1
-_0809AC0A:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AC10: .4byte gUnknown_202DF98
-_0809AC14: .4byte gUnknown_202E2B8
- thumb_func_end sub_809ABB4
-
- thumb_func_start sub_809AC18
-sub_809AC18:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0809AC44
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- ldr r3, _0809AC48
- adds r0, r3
- ldr r2, [r2]
- adds r6, r2, r0
- adds r0, r5, 0
- bl sub_809A8B8
- lsls r0, 24
- cmp r0, 0
- bne _0809AC4C
- movs r0, 0
- b _0809AC6E
- .align 2, 0
-_0809AC44: .4byte gUnknown_3001B64
-_0809AC48: .4byte 0x0000043c
-_0809AC4C:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 4
- ldr r0, _0809AC74
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl sub_808D908
- ldr r0, _0809AC78
- adds r4, r0
- movs r3, 0
- ldrsh r1, [r6, r3]
- adds r0, r4, 0
- bl sub_80A8EC0
- movs r0, 0x1
-_0809AC6E:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AC74: .4byte gUnknown_202DF98
-_0809AC78: .4byte gUnknown_202E2B8
- thumb_func_end sub_809AC18
-
- thumb_func_start sub_809AC7C
-sub_809AC7C:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 24
- asrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r2, _0809AD10
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0809AD14
- adds r1, r0
- ldr r0, [r2]
- adds r4, r0, r1
- ldr r0, [r4, 0x20]
- cmp r0, 0
- beq _0809ACA8
- bl CloseFile
- movs r0, 0
- str r0, [r4, 0x20]
-_0809ACA8:
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bge _0809ACB2
- b _0809ADC0
-_0809ACB2:
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0809ACBC
- b _0809ADC0
-_0809ACBC:
- cmp r1, 0
- bne _0809ACC2
- b _0809ADC0
-_0809ACC2:
- cmp r6, 0x15
- beq _0809ACCE
- movs r0, 0
- strb r6, [r4, 0x7]
- str r0, [r4, 0x8]
- str r0, [r4, 0xC]
-_0809ACCE:
- ldr r2, _0809AD18
- ldrb r0, [r4, 0x7]
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x8]
- ldrh r0, [r0]
- adds r0, r1
- movs r6, 0
- movs r3, 0
- strh r0, [r4, 0x18]
- ldrb r0, [r4, 0x7]
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0xC]
- ldrh r0, [r0, 0x2]
- adds r0, r1
- strh r0, [r4, 0x1A]
- ldrb r0, [r4, 0x7]
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- strb r0, [r4, 0x1D]
- strb r6, [r4, 0x1E]
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- bne _0809AD1C
- strb r5, [r4, 0x6]
- str r3, [r4, 0x10]
- str r3, [r4, 0x14]
- strb r6, [r4, 0x1C]
- movs r0, 0
- b _0809ADD2
- .align 2, 0
-_0809AD10: .4byte gUnknown_3001B64
-_0809AD14: .4byte 0x0000043c
-_0809AD18: .4byte gUnknown_8116040
-_0809AD1C:
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _0809ADC0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl sub_808DD90
- str r0, [r4, 0x20]
- cmp r0, 0
- beq _0809ADB6
- strb r5, [r4, 0x6]
- str r0, [r4, 0x10]
- movs r1, 0
- bl GetFileDataPtr
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x4D
- beq _0809AD62
- cmp r0, 0x4D
- bgt _0809AD4C
- cmp r0, 0x47
- beq _0809AD56
- b _0809ADA8
-_0809AD4C:
- cmp r0, 0x53
- beq _0809AD76
- cmp r0, 0x73
- beq _0809AD8A
- b _0809ADA8
-_0809AD56:
- movs r0, 0xF
- ands r0, r5
- cmp r0, 0x5
- bgt _0809ADA8
- adds r0, r5, 0x6
- b _0809AD9C
-_0809AD62:
- ldrb r0, [r4, 0x1D]
- cmp r0, 0
- beq _0809ADA8
- movs r0, 0xF
- ands r0, r5
- cmp r0, 0x3
- bgt _0809ADA8
- strb r6, [r4, 0x1D]
- adds r0, r5, 0x4
- b _0809AD9C
-_0809AD76:
- ldrb r0, [r4, 0x1D]
- cmp r0, 0
- beq _0809ADA8
- movs r0, 0xF
- ands r0, r5
- cmp r0, 0
- bgt _0809ADA8
- strb r6, [r4, 0x1D]
- adds r0, r5, 0x1
- b _0809AD9C
-_0809AD8A:
- ldrb r0, [r4, 0x1D]
- cmp r0, 0
- beq _0809ADA8
- movs r0, 0xF
- ands r0, r5
- cmp r0, 0x1
- bgt _0809ADA8
- strb r6, [r4, 0x1D]
- adds r0, r5, 0x2
-_0809AD9C:
- lsls r0, 24
- asrs r5, r0, 24
- movs r0, 0x40
- orrs r5, r0
- lsls r0, r5, 24
- asrs r5, r0, 24
-_0809ADA8:
- ldr r0, [r4, 0x20]
- ldr r0, [r0, 0x4]
- str r0, [r4, 0x14]
- movs r0, 0xF
- ands r5, r0
- strb r5, [r4, 0x1C]
- b _0809ADBC
-_0809ADB6:
- str r0, [r4, 0x10]
- str r0, [r4, 0x14]
- strb r6, [r4, 0x1C]
-_0809ADBC:
- movs r0, 0x1
- b _0809ADD2
-_0809ADC0:
- movs r0, 0xFF
- strb r0, [r4, 0x6]
- movs r0, 0
- strb r0, [r4, 0x7]
- str r0, [r4, 0x8]
- str r0, [r4, 0xC]
- str r0, [r4, 0x10]
- str r0, [r4, 0x14]
- strb r0, [r4, 0x1C]
-_0809ADD2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809AC7C
-
- thumb_func_start sub_809ADD8
-sub_809ADD8:
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0809AE28
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0809AE2C
- adds r1, r0
- ldr r0, [r2]
- adds r3, r0, r1
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _0809AE34
- cmp r0, 0
- beq _0809AE34
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r3, 0x8]
- str r1, [r3, 0xC]
- ldr r2, _0809AE30
- ldrb r0, [r3, 0x7]
- lsls r0, 3
- adds r0, r2
- ldr r1, [r3, 0x8]
- ldrh r0, [r0]
- adds r0, r1
- strh r0, [r3, 0x18]
- ldrb r0, [r3, 0x7]
- lsls r0, 3
- adds r0, r2
- ldr r1, [r3, 0xC]
- ldrh r0, [r0, 0x2]
- adds r0, r1
- strh r0, [r3, 0x1A]
- movs r0, 0x1
- b _0809AE36
- .align 2, 0
-_0809AE28: .4byte gUnknown_3001B64
-_0809AE2C: .4byte 0x0000043c
-_0809AE30: .4byte gUnknown_8116040
-_0809AE34:
- movs r0, 0
-_0809AE36:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809ADD8
-
- thumb_func_start sub_809AE3C
-sub_809AE3C:
- push {r4,lr}
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _0809AE88
- ldr r1, _0809AE80
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r3, _0809AE84
- adds r0, r3
- ldr r1, [r1]
- adds r4, r1, r0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0809AE74
- movs r1, 0x6
- ldrsb r1, [r4, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809AE74
- adds r0, r2, 0
- movs r1, 0
- movs r2, 0
- bl sub_809AC7C
-_0809AE74:
- ldr r0, [r4, 0x10]
- cmp r0, 0
- beq _0809AE88
- adds r0, r4, 0
- adds r0, 0x10
- b _0809AE8A
- .align 2, 0
-_0809AE80: .4byte gUnknown_3001B64
-_0809AE84: .4byte 0x0000043c
-_0809AE88:
- movs r0, 0
-_0809AE8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809AE3C
-
- thumb_func_start sub_809AE90
-sub_809AE90:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r2, 0
- lsls r1, 16
- asrs r6, r1, 16
- cmp r4, 0
- bne _0809AEA4
- bl sub_809A76C
- b _0809AEE0
-_0809AEA4:
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809AEDC
- ldr r1, _0809AED0
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl sub_809A680
- ldr r0, _0809AED4
- ldr r0, [r0]
- adds r0, 0xC
- ldr r2, _0809AED8
- lsls r1, r5, 1
- adds r1, r2
- ldrh r1, [r1]
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_809B2B8
- b _0809AEE0
- .align 2, 0
-_0809AED0: .4byte gUnknown_8116134
-_0809AED4: .4byte gUnknown_3001B64
-_0809AED8: .4byte gUnknown_8116148
-_0809AEDC:
- bl sub_809A7B4
-_0809AEE0:
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809AE90
-
- thumb_func_start sub_809AEEC
-sub_809AEEC:
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _0809AF1C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809AF1C
- movs r0, 0x2
- movs r1, 0x1
- bl sub_809A680
- ldr r0, _0809AF18
- ldr r0, [r0]
- adds r0, 0xC
- movs r2, 0x1
- negs r2, r2
- movs r1, 0xC2
- adds r3, r4, 0
- bl sub_809B2B8
- b _0809AF20
- .align 2, 0
-_0809AF18: .4byte gUnknown_3001B64
-_0809AF1C:
- bl sub_809A76C
-_0809AF20:
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809AEEC
-
- thumb_func_start sub_809AF2C
-sub_809AF2C:
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _0809AF5C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809AF5C
- movs r0, 0x2
- movs r1, 0x1
- bl sub_809A680
- ldr r0, _0809AF58
- ldr r0, [r0]
- adds r0, 0xC
- movs r2, 0x1
- negs r2, r2
- movs r1, 0xC2
- adds r3, r4, 0
- bl sub_809B2B8
- b _0809AF60
- .align 2, 0
-_0809AF58: .4byte gUnknown_3001B64
-_0809AF5C:
- bl sub_809A76C
-_0809AF60:
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809AF2C
-
- thumb_func_start sub_809AF6C
-sub_809AF6C:
- push {r4,lr}
- adds r4, r1, 0
- cmp r4, 0
- beq _0809AF9C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809AF9C
- movs r0, 0x3
- movs r1, 0x1
- bl sub_809A680
- ldr r0, _0809AF98
- ldr r0, [r0]
- adds r0, 0xC
- movs r2, 0x1
- negs r2, r2
- movs r1, 0x65
- adds r3, r4, 0
- bl sub_809B2B8
- b _0809AFA0
- .align 2, 0
-_0809AF98: .4byte gUnknown_3001B64
-_0809AF9C:
- bl sub_809A76C
-_0809AFA0:
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809AF6C
-
- thumb_func_start sub_809AFAC
-sub_809AFAC:
- push {lr}
- movs r1, 0
- ldr r0, _0809AFC4
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x4
- bne _0809AFBC
- movs r1, 0x1
-_0809AFBC:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809AFC4: .4byte gUnknown_3001B64
- thumb_func_end sub_809AFAC
-
- thumb_func_start sub_809AFC8
-sub_809AFC8:
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r1, 0
- adds r1, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- asrs r1, 16
- ldr r4, _0809AFF8
- negs r2, r0
- orrs r2, r0
- lsrs r2, 31
- str r1, [sp]
- str r3, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- adds r3, r5, 0
- bl sub_809B028
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AFF8: .4byte gUnknown_81160E8
- thumb_func_end sub_809AFC8
-
- thumb_func_start sub_809AFFC
-sub_809AFFC:
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- mov r0, sp
- bl sub_809B18C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r4, 0
- beq _0809B01C
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bne _0809B01A
- movs r1, 0x1
-_0809B01A:
- strb r1, [r4]
-_0809B01C:
- adds r0, r2, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809AFFC
-
- thumb_func_start sub_809B028
-sub_809B028:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- mov r8, r0
- adds r7, r2, 0
- adds r6, r3, 0
- ldr r0, [sp, 0x2C]
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r0, 16
- asrs r4, r0, 16
- ldr r1, _0809B084
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl sub_809A680
- ldr r0, _0809B088
- ldr r1, [r0]
- ldr r0, _0809B08C
- adds r2, r1, r0
- movs r0, 0x1
- str r0, [r2]
- movs r0, 0x83
- lsls r0, 3
- adds r2, r1, r0
- movs r0, 0
- str r0, [r2]
- ldr r2, _0809B090
- adds r0, r1, r2
- mov r2, r8
- str r2, [r0]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r1, r2
- movs r2, 0x2
- str r2, [r0]
- ldr r0, _0809B094
- adds r1, r0
- cmp r5, 0
- beq _0809B098
- str r2, [r1]
- b _0809B09A
- .align 2, 0
-_0809B084: .4byte gUnknown_8116134
-_0809B088: .4byte gUnknown_3001B64
-_0809B08C: .4byte 0x00000414
-_0809B090: .4byte 0x0000041c
-_0809B094: .4byte 0x00000424
-_0809B098:
- str r5, [r1]
-_0809B09A:
- ldr r0, _0809B0D4
- ldr r0, [r0]
- movs r1, 0x85
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0
- str r1, [r2]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- str r7, [r0]
- ldr r0, _0809B0D8
- lsls r2, r6, 1
- adds r0, r2, r0
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _0809B0F6
- cmp r4, 0
- bge _0809B0E4
- ldr r0, _0809B0DC
- ldr r1, _0809B0E0
- bl strcpy
- b _0809B0F6
- .align 2, 0
-_0809B0D4: .4byte gUnknown_3001B64
-_0809B0D8: .4byte gUnknown_8116148
-_0809B0DC: .4byte gUnknown_202E5D8
-_0809B0E0: .4byte gUnknown_8116180
-_0809B0E4:
- ldr r0, _0809B134
- ldr r1, _0809B138
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 4
- ldr r3, _0809B13C
- adds r2, r3
- bl sub_800D158
-_0809B0F6:
- adds r0, r4, 0
- bl sub_809AE3C
- ldr r4, _0809B140
- movs r1, 0
- str r1, [sp]
- movs r3, 0x4
- str r3, [sp, 0x4]
- str r1, [sp, 0x8]
- str r0, [sp, 0xC]
- ldr r0, _0809B144
- adds r0, r5, r0
- ldrh r2, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0809B11C
- movs r1, 0xC
-_0809B11C:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0809B128
- orrs r1, r3
-_0809B128:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0809B148
- movs r0, 0x21
- b _0809B14A
- .align 2, 0
-_0809B134: .4byte gUnknown_202E5D8
-_0809B138: .4byte gUnknown_8116188
-_0809B13C: .4byte gUnknown_202E2B8
-_0809B140: .4byte sub_809B428
-_0809B144: .4byte gUnknown_8116148
-_0809B148:
- movs r0, 0x1
-_0809B14A:
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r0, [sp, 0x30]
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_8014248
- ldr r0, _0809B184
- ldr r0, [r0]
- ldr r1, _0809B188
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809B176
- movs r0, 0x1
- bl sub_809A6E4
-_0809B176:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B184: .4byte gUnknown_3001B64
-_0809B188: .4byte 0x00000424
- thumb_func_end sub_809B028
-
- thumb_func_start sub_809B18C
-sub_809B18C:
- push {lr}
- adds r1, r0, 0
- ldr r2, _0809B1BC
- cmp r1, 0
- beq _0809B1A2
- ldr r0, [r2]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_0809B1A2:
- movs r1, 0
- ldr r0, [r2]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x3
- bne _0809B1B4
- movs r1, 0x1
-_0809B1B4:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809B1BC: .4byte gUnknown_3001B64
- thumb_func_end sub_809B18C
-
- thumb_func_start sub_809B1C0
-sub_809B1C0:
- push {lr}
- adds r3, r2, 0
- movs r2, 0
- bl sub_809B1D4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_809B1C0
-
- thumb_func_start sub_809B1D4
-sub_809B1D4:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- cmp r4, 0xB
- beq _0809B1E8
- cmp r4, 0xC
- beq _0809B1F0
- b _0809B202
-_0809B1E8:
- adds r0, r5, 0
- bl sub_8021700
- b _0809B1F8
-_0809B1F0:
- bl sub_8001D88
- bl sub_802FCF0
-_0809B1F8:
- lsls r0, 24
- cmp r0, 0
- beq _0809B202
- movs r0, 0
- b _0809B24C
-_0809B202:
- movs r0, 0x4
- movs r1, 0
- bl sub_809A680
- ldr r0, _0809B254
- ldr r1, [r0]
- ldr r2, _0809B258
- adds r0, r1, r2
- str r4, [r0]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r1, r3
- movs r2, 0
- str r2, [r0]
- adds r3, 0x4
- adds r0, r1, r3
- str r2, [r0]
- movs r0, 0x84
- lsls r0, 3
- adds r2, r1, r0
- movs r0, 0x1
- str r0, [r2]
- ldr r2, _0809B25C
- adds r0, r1, r2
- str r5, [r0]
- adds r3, 0xC
- adds r0, r1, r3
- str r6, [r0]
- adds r2, 0x8
- adds r0, r1, r2
- str r7, [r0]
- adds r3, 0x8
- adds r1, r3
- movs r0, 0x1
- negs r0, r0
- str r0, [r1]
- movs r0, 0x1
-_0809B24C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809B254: .4byte gUnknown_3001B64
-_0809B258: .4byte 0x00000414
-_0809B25C: .4byte 0x00000424
- thumb_func_end sub_809B1D4
-
- thumb_func_start sub_809B260
-sub_809B260:
- push {lr}
- adds r1, r0, 0
- ldr r2, _0809B290
- cmp r1, 0
- beq _0809B276
- ldr r0, [r2]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_0809B276:
- movs r1, 0
- ldr r0, [r2]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x3
- bne _0809B288
- movs r1, 0x1
-_0809B288:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809B290: .4byte gUnknown_3001B64
- thumb_func_end sub_809B260
-
- thumb_func_start sub_809B294
-sub_809B294:
- push {lr}
- movs r0, 0x3
- bl sub_80063D8
- ldr r0, _0809B2B4
- ldr r0, [r0]
- adds r0, 0xC
- movs r2, 0x1
- negs r2, r2
- movs r1, 0
- movs r3, 0
- bl sub_809B2B8
- pop {r0}
- bx r0
- .align 2, 0
-_0809B2B4: .4byte gUnknown_3001B64
- thumb_func_end sub_809B294
-
- thumb_func_start sub_809B2B8
-sub_809B2B8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r7, r3, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- strh r5, [r4]
- cmp r7, 0
- bne _0809B2F6
- cmp r5, 0
- bne _0809B2DE
- str r7, [r4, 0x4]
- movs r0, 0
- b _0809B3FC
-_0809B2DE:
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- bne _0809B2E8
- b _0809B3FA
-_0809B2E8:
- bl sub_8014490
- movs r0, 0
- movs r1, 0x1
- bl sub_809A680
- b _0809B3FA
-_0809B2F6:
- movs r0, 0x1
- str r0, [r4, 0x4]
- adds r0, 0xFF
- ands r0, r5
- cmp r0, 0
- beq _0809B32A
- cmp r6, 0
- bge _0809B318
- ldr r0, _0809B310
- ldr r1, _0809B314
- bl strcpy
- b _0809B32A
- .align 2, 0
-_0809B310: .4byte gUnknown_202E5D8
-_0809B314: .4byte gUnknown_8116180
-_0809B318:
- ldr r0, _0809B3D0
- ldr r1, _0809B3D4
- lsls r2, r6, 2
- adds r2, r6
- lsls r2, 4
- ldr r3, _0809B3D8
- adds r2, r3
- bl sub_800D158
-_0809B32A:
- ldr r0, _0809B3DC
- mov r8, r0
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x3
- bne _0809B344
- adds r4, 0x8
- ldr r1, _0809B3E0
- adds r0, r4, 0
- adds r2, r7, 0
- bl sub_800D158
- adds r7, r4, 0
-_0809B344:
- adds r0, r6, 0
- bl sub_809AE3C
- ldr r1, _0809B3E4
- mov r9, r1
- movs r1, 0x1
- negs r1, r1
- mov r12, r1
- movs r2, 0
- str r2, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r0, [sp, 0xC]
- movs r6, 0x80
- lsls r6, 1
- adds r0, r5, 0
- ands r0, r6
- movs r1, 0
- cmp r0, 0
- beq _0809B370
- movs r1, 0xC
-_0809B370:
- movs r4, 0x80
- lsls r4, 2
- adds r0, r5, 0
- ands r0, r4
- cmp r0, 0
- beq _0809B380
- movs r0, 0x4
- orrs r1, r0
-_0809B380:
- mov r0, r8
- ldr r3, [r0]
- ldr r2, [r3]
- cmp r2, 0x3
- bne _0809B38E
- movs r0, 0x10
- orrs r1, r0
-_0809B38E:
- cmp r2, 0x2
- bne _0809B396
- movs r0, 0x10
- orrs r1, r0
-_0809B396:
- adds r2, r1, 0
- movs r1, 0x20
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0809B3A4
- orrs r2, r1
-_0809B3A4:
- lsrs r1, r5, 6
- movs r0, 0x1
- ands r1, r0
- orrs r1, r2
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _0809B3B6
- orrs r1, r6
-_0809B3B6:
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _0809B3C0
- orrs r1, r4
-_0809B3C0:
- ldr r0, [r3, 0x4]
- cmp r0, r12
- beq _0809B3E8
- movs r0, 0x2
- orrs r0, r1
- lsls r0, 16
- b _0809B3EA
- .align 2, 0
-_0809B3D0: .4byte gUnknown_202E5D8
-_0809B3D4: .4byte gUnknown_8116188
-_0809B3D8: .4byte gUnknown_202E2B8
-_0809B3DC: .4byte gUnknown_3001B64
-_0809B3E0: .4byte gUnknown_8116190
-_0809B3E4: .4byte sub_809B428
-_0809B3E8:
- lsls r0, r1, 16
-_0809B3EA:
- lsrs r0, 16
- str r0, [sp, 0x10]
- adds r0, r7, 0
- mov r1, r9
- mov r2, r12
- movs r3, 0
- bl sub_8014248
-_0809B3FA:
- movs r0, 0x1
-_0809B3FC:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809B2B8
-
- thumb_func_start sub_809B40C
-sub_809B40C:
- push {lr}
- ldr r0, [r0, 0x4]
- cmp r0, 0
- beq _0809B41C
- cmp r0, 0x3
- bhi _0809B420
- cmp r0, 0x2
- bcc _0809B420
-_0809B41C:
- movs r0, 0
- b _0809B422
-_0809B420:
- movs r0, 0x1
-_0809B422:
- pop {r1}
- bx r1
- thumb_func_end sub_809B40C
-
- thumb_func_start sub_809B428
-sub_809B428:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r2, 0
- ldrb r0, [r5, 0x2]
- cmp r0, 0x4F
- beq _0809B44C
- cmp r0, 0x4F
- bgt _0809B43E
- cmp r0, 0x49
- beq _0809B444
- b _0809B46A
-_0809B43E:
- cmp r0, 0x57
- beq _0809B454
- b _0809B46A
-_0809B444:
- movs r0, 0x1E
- bl sub_8099A34
- b _0809B462
-_0809B44C:
- movs r0, 0x1E
- bl sub_8099A48
- b _0809B462
-_0809B454:
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- beq _0809B462
- adds r0, r5, 0
- b _0809B46C
-_0809B462:
- adds r1, r4, 0
- adds r1, 0x21
- movs r0, 0x1
- strb r0, [r1]
-_0809B46A:
- movs r0, 0
-_0809B46C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B428
-
- thumb_func_start sub_809B474
-sub_809B474:
- push {r4-r6,lr}
- ldr r0, _0809B498
- ldr r1, [r0]
- ldr r2, [r1]
- adds r6, r0, 0
- cmp r2, 0x3
- bls _0809B56E
- cmp r2, 0x4
- bne _0809B56E
- movs r5, 0x84
- lsls r5, 3
- adds r0, r1, r5
- ldr r0, [r0]
- cmp r0, 0x1
- beq _0809B49C
- cmp r0, 0x2
- beq _0809B508
- b _0809B56E
- .align 2, 0
-_0809B498: .4byte gUnknown_3001B64
-_0809B49C:
- bl sub_809B648
- lsls r0, 24
- cmp r0, 0
- bne _0809B4B0
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x3
- str r1, [r0]
- b _0809B4E8
-_0809B4B0:
- ldr r0, [r6]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r4, [r0]
- cmp r4, 0
- beq _0809B4F8
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _0809B4F2
- bl sub_809B294
- ldr r0, [r4, 0x4]
- bl _call_via_r0
- lsls r0, 24
- cmp r0, 0
- bne _0809B4F2
- ldr r1, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r2, r1, r3
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
- adds r1, r5
- movs r0, 0x3
- str r0, [r1]
-_0809B4E8:
- movs r0, 0
- movs r1, 0x1
- bl sub_809A680
- b _0809B56E
-_0809B4F2:
- ldrh r0, [r4]
- bl sub_809A6E4
-_0809B4F8:
- ldr r0, _0809B534
- ldr r1, [r0]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- movs r2, 0x2
- str r2, [r1]
- adds r6, r0, 0
-_0809B508:
- ldr r0, [r6]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r3
- ldr r4, [r0]
- cmp r4, 0
- beq _0809B54E
- ldr r0, [r4, 0xC]
- bl _call_via_r0
- adds r2, r0, 0
- cmp r2, 0x1
- bls _0809B56E
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r1, r0, r3
- cmp r2, 0x2
- bne _0809B538
- movs r0, 0x1
- negs r0, r0
- b _0809B53A
- .align 2, 0
-_0809B534: .4byte gUnknown_3001B64
-_0809B538:
- movs r0, 0
-_0809B53A:
- str r0, [r1]
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _0809B546
- bl _call_via_r0
-_0809B546:
- ldrh r0, [r4]
- bl sub_809A6F8
- b _0809B558
-_0809B54E:
- bl sub_809B648
- lsls r0, 24
- cmp r0, 0
- bne _0809B56E
-_0809B558:
- ldr r0, _0809B578
- ldr r0, [r0]
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- movs r1, 0x3
- str r1, [r0]
- movs r0, 0
- movs r1, 0x1
- bl sub_809A680
-_0809B56E:
- bl sub_809B57C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B578: .4byte gUnknown_3001B64
- thumb_func_end sub_809B474
-
- thumb_func_start sub_809B57C
-sub_809B57C:
- push {r4,r5,lr}
- sub sp, 0x8
- bl xxx_draw_string_80144C4
- ldr r5, _0809B5C8
- ldr r0, [r5]
- ldr r1, [r0]
- cmp r1, 0x3
- bhi _0809B5E4
- cmp r1, 0x1
- bcc _0809B5E4
- movs r4, 0x84
- lsls r4, 3
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _0809B5CC
- cmp r0, 0x3
- beq _0809B5CC
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0809B5E4
- ldr r1, [sp]
- movs r0, 0x1
- bl sub_809D9E0
- ldr r1, [r5]
- adds r2, r1, r4
- movs r0, 0x3
- str r0, [r2]
- movs r0, 0x86
- lsls r0, 3
- adds r1, r0
- ldr r0, [sp]
- str r0, [r1]
- b _0809B5E4
- .align 2, 0
-_0809B5C8: .4byte gUnknown_3001B64
-_0809B5CC:
- add r0, sp, 0x4
- bl sub_80144A4
- adds r4, r0, 0
- cmp r4, 0
- bne _0809B5E4
- movs r0, 0
- bl sub_809D9B8
- ldr r0, _0809B5FC
- ldr r0, [r0]
- str r4, [r0]
-_0809B5E4:
- ldr r0, _0809B5FC
- ldr r0, [r0]
- ldr r1, _0809B600
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bge _0809B604
- movs r0, 0
- movs r1, 0
- bl sub_8005838
- b _0809B60C
- .align 2, 0
-_0809B5FC: .4byte gUnknown_3001B64
-_0809B600: .4byte 0x00000434
-_0809B604:
- movs r0, 0
- movs r1, 0x5
- bl sub_8005838
-_0809B60C:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809B57C
-
- thumb_func_start sub_809B614
-sub_809B614:
- push {lr}
- bl sub_80060EC
- ldr r0, _0809B62C
- ldr r2, _0809B630
- ldrh r1, [r2]
- strh r1, [r0]
- ldr r0, _0809B634
- ands r0, r1
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0809B62C: .4byte gUnknown_20399DE
-_0809B630: .4byte gUnknown_20399DC
-_0809B634: .4byte 0x0000fffd
- thumb_func_end sub_809B614
-
- thumb_func_start sub_809B638
-sub_809B638:
- push {lr}
- bl xxx_call_update_bg_vram
- pop {r0}
- bx r0
- thumb_func_end sub_809B638
-
- thumb_func_start nullsub_210
-nullsub_210:
- bx lr
- thumb_func_end nullsub_210
-
- thumb_func_start sub_809B648
-sub_809B648:
- push {r4-r6,lr}
- sub sp, 0x24
- ldr r0, _0809B66C
- ldr r1, [r0]
- ldr r2, _0809B670
- adds r1, r2
- ldr r1, [r1]
- subs r1, 0x2
- adds r6, r0, 0
- cmp r1, 0x2C
- bls _0809B662
- bl _0809C392
-_0809B662:
- lsls r0, r1, 2
- ldr r1, _0809B674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809B66C: .4byte gUnknown_3001B64
-_0809B670: .4byte 0x00000414
-_0809B674: .4byte _0809B678
- .align 2, 0
-_0809B678:
- .4byte _0809B72C
- .4byte _0809B772
- .4byte _0809B7AC
- .4byte _0809B834
- .4byte _0809B89C
- .4byte _0809B8FC
- .4byte _0809B91C
- .4byte _0809B944
- .4byte _0809B9D2
- .4byte _0809BA2A
- .4byte _0809BAA8
- .4byte _0809BB66
- .4byte _0809BBDA
- .4byte _0809BBDA
- .4byte _0809BC26
- .4byte _0809BC68
- .4byte _0809C1B4
- .4byte _0809BC78
- .4byte _0809C1C2
- .4byte _0809C1C2
- .4byte _0809C1C8
- .4byte _0809BCBC
- .4byte _0809BCBC
- .4byte _0809BD1C
- .4byte _0809BD64
- .4byte _0809BDE8
- .4byte _0809BE30
- .4byte _0809BE40
- .4byte _0809BE50
- .4byte _0809BE60
- .4byte _0809BE9C
- .4byte _0809BEB8
- .4byte _0809BED4
- .4byte _0809BF70
- .4byte _0809BFFC
- .4byte _0809C072
- .4byte _0809C0B8
- .4byte _0809C0FC
- .4byte _0809C148
- .4byte _0809C158
- .4byte _0809C168
- .4byte _0809C204
- .4byte _0809C238
- .4byte _0809C280
- .4byte _0809C32A
-_0809B72C:
- ldr r2, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r0, r2, r3
- ldr r0, [r0]
- cmp r0, 0x1
- beq _0809B780
- ldr r0, _0809B754
- ldrh r0, [r0, 0x2]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809B758
- movs r0, 0x86
- lsls r0, 3
- adds r1, r2, r0
- movs r0, 0x1
- str r0, [r1]
- bl _0809C392
- .align 2, 0
-_0809B754: .4byte gUnknown_20255F0
-_0809B758:
- bl sub_8094D14
- lsls r0, 24
- cmp r0, 0
- beq _0809B784
- ldr r0, [r6]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- movs r1, 0x2
- str r1, [r0]
- bl _0809C392
-_0809B772:
- ldr r0, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809B78A
-_0809B780:
- bl sub_809B294
-_0809B784:
- movs r0, 0x1
- bl _0809C394
-_0809B78A:
- ldr r0, _0809B7A8
- ldrh r1, [r0]
- ldrh r0, [r0, 0x2]
- movs r2, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0809B79C
- bl _0809C392
-_0809B79C:
- ands r1, r2
- cmp r1, 0
- bne _0809B784
- bl _0809C392
- .align 2, 0
-_0809B7A8: .4byte gUnknown_20255F0
-_0809B7AC:
- ldr r0, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809B7F4
- bl sub_809B294
- ldr r1, [r6]
- ldr r2, _0809B7D8
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _0809B7E0
- ldr r3, _0809B7DC
- adds r0, r1, r3
- ldr r1, [r0]
- movs r0, 0
- bl sub_801602C
- b _0809B784
- .align 2, 0
-_0809B7D8: .4byte 0x00000424
-_0809B7DC: .4byte 0x0000042c
-_0809B7E0:
- ldr r2, _0809B7F0
- adds r0, r1, r2
- ldr r1, [r0]
- movs r0, 0x2
- bl sub_801602C
- b _0809B784
- .align 2, 0
-_0809B7F0: .4byte 0x0000042c
-_0809B7F4:
- bl sub_8016080
- cmp r0, 0x3
- bne _0809B80C
- bl sub_80160D8
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- bl _0809C1BC
-_0809B80C:
- cmp r0, 0x2
- bne _0809B784
- ldr r0, [r6]
- ldr r1, _0809B830
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0809B784
- bl sub_80160D8
- ldr r0, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
-_0809B828:
- movs r1, 0
- str r1, [r0]
- bl _0809C392
- .align 2, 0
-_0809B830: .4byte 0x00000424
-_0809B834:
- ldr r0, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809B85C
- bl sub_809B294
- ldr r0, [r6]
- ldr r1, _0809B858
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x1
- bl sub_801602C
- b _0809B784
- .align 2, 0
-_0809B858: .4byte 0x0000042c
-_0809B85C:
- bl sub_8016080
- cmp r0, 0x3
- bne _0809B874
- bl sub_80160D8
- ldr r0, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- bl _0809C1BC
-_0809B874:
- cmp r0, 0x2
- beq _0809B87A
- b _0809B784
-_0809B87A:
- ldr r0, [r6]
- ldr r3, _0809B898
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0
- bne _0809B888
- b _0809B784
-_0809B888:
- bl sub_80160D8
- ldr r0, [r6]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- b _0809B828
- .align 2, 0
-_0809B898: .4byte 0x00000424
-_0809B89C:
- ldr r0, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809B8C4
- bl sub_809B294
- ldr r0, [r6]
- ldr r3, _0809B8C0
- adds r0, r3
- ldr r1, [r0]
- movs r0, 0x4
- bl sub_80151C0
- b _0809B784
- .align 2, 0
-_0809B8C0: .4byte 0x0000042c
-_0809B8C4:
- bl sub_80154F0
- cmp r0, 0x3
- bne _0809B8D4
- bl sub_80155F0
- bl _0809C1B4
-_0809B8D4:
- cmp r0, 0x2
- beq _0809B8DA
- b _0809B784
-_0809B8DA:
- ldr r0, [r6]
- ldr r2, _0809B8F8
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _0809B8E8
- b _0809B784
-_0809B8E8:
- bl sub_80155F0
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- b _0809B828
- .align 2, 0
-_0809B8F8: .4byte 0x00000424
-_0809B8FC:
- ldr r0, [r6]
- ldr r1, _0809B914
- adds r0, r1
- ldr r0, [r0]
- bl sub_801D014
- ldr r0, [r6]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809B918
- b _0809B932
- .align 2, 0
-_0809B914: .4byte 0x0000042c
-_0809B918: .4byte gUnknown_81161A8
-_0809B91C:
- ldr r0, [r6]
- ldr r3, _0809B93C
- adds r0, r3
- ldr r0, [r0]
- bl sub_801D014
- ldr r0, [r6]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r1, _0809B940
-_0809B932:
- str r1, [r0]
- movs r0, 0x4
- bl sub_80119D4
- b _0809B784
- .align 2, 0
-_0809B93C: .4byte 0x0000042c
-_0809B940: .4byte gUnknown_81161B8
-_0809B944:
- bl sub_809B294
- ldr r4, _0809B984
- ldr r0, [r4]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809B998
- bl sub_809B294
- ldr r0, [r4]
- ldr r3, _0809B988
- adds r0, r3
- ldr r0, [r0]
- ldr r1, _0809B98C
- bl sub_8015080
- lsls r0, 24
- cmp r0, 0
- bne _0809B990
- ldr r0, [r4]
-_0809B972:
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
-_0809B978:
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl _0809C392
- .align 2, 0
-_0809B984: .4byte gUnknown_3001B64
-_0809B988: .4byte 0x0000042c
-_0809B98C: .4byte gUnknown_811610C
-_0809B990:
- movs r0, 0x4
- bl sub_80119D4
- b _0809B784
-_0809B998:
- bl sub_801516C
- cmp r0, 0x2
- beq _0809B9BC
- cmp r0, 0x3
- beq _0809B9A6
- b _0809B784
-_0809B9A6:
- bl sub_8015198
- ldr r1, [r4]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r2
- str r0, [r1]
- bl sub_80151A4
- bl _0809C392
-_0809B9BC:
- ldr r0, [r4]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl sub_80151A4
- bl _0809C392
-_0809B9D2:
- bl sub_809B294
- ldr r4, _0809BA08
- ldr r0, [r4]
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809BA1C
- bl sub_809B294
- ldr r0, [r4]
- ldr r2, _0809BA0C
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _0809BA10
- bl sub_8015080
- lsls r0, 24
- cmp r0, 0
- bne _0809BA14
- ldr r0, [r4]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- b _0809B978
- .align 2, 0
-_0809BA08: .4byte gUnknown_3001B64
-_0809BA0C: .4byte 0x0000042c
-_0809BA10: .4byte gUnknown_811612C
-_0809BA14:
- movs r0, 0x4
- bl sub_80119D4
- b _0809B784
-_0809BA1C:
- bl sub_801516C
- cmp r0, 0x2
- beq _0809B9BC
- cmp r0, 0x3
- beq _0809B9A6
- b _0809B784
-_0809BA2A:
- ldr r0, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809BA68
- bl sub_809B294
- ldr r0, [r6]
- ldr r2, _0809BA5C
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x3
- bl sub_80211AC
- lsls r0, 24
- cmp r0, 0
- bne _0809BA60
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- b _0809B978
- .align 2, 0
-_0809BA5C: .4byte 0x00000424
-_0809BA60:
- movs r0, 0x4
- bl sub_80119D4
- b _0809B784
-_0809BA68:
- movs r0, 0x1
- bl sub_8021274
- cmp r0, 0x2
- beq _0809BA92
- cmp r0, 0x3
- beq _0809BA78
- b _0809B784
-_0809BA78:
- bl sub_802132C
- ldr r1, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- bl sub_80213A0
- bl _0809C392
-_0809BA92:
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl sub_80213A0
- bl _0809C392
-_0809BAA8:
- ldr r0, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809BB10
- movs r0, 0
- movs r1, 0x12
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2654
- lsls r0, 16
- asrs r4, r0, 16
- bl sub_809B294
- movs r0, 0x3
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_802F73C
- lsls r0, 24
- cmp r0, 0
- bne _0809BAEA
- ldr r0, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- b _0809B978
-_0809BAEA:
- movs r5, 0x1
- negs r5, r5
- cmp r4, r5
- beq _0809BB08
- adds r0, r4, 0
- bl sub_802F848
- lsls r0, 24
- cmp r0, 0
- bne _0809BB08
- movs r0, 0
- movs r1, 0x12
- adds r2, r5, 0
- bl sub_80018D8
-_0809BB08:
- movs r0, 0x4
- bl sub_80119D4
- b _0809B784
-_0809BB10:
- movs r0, 0x1
- bl sub_802F8A0
- cmp r0, 0x2
- beq _0809BB50
- cmp r0, 0x3
- beq _0809BB20
- b _0809B784
-_0809BB20:
- bl sub_802F90C
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80A26B8
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- movs r0, 0
- movs r1, 0x12
- bl sub_80018D8
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- str r4, [r0]
- bl sub_802F974
- bl _0809C392
-_0809BB50:
- ldr r0, [r6]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl sub_802F974
- bl _0809C392
-_0809BB66:
- ldr r0, [r6]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809BB9A
- bl sub_809B294
- movs r0, 0x3
- movs r1, 0
- movs r2, 0xA
- bl sub_80302E8
- lsls r0, 24
- cmp r0, 0
- bne _0809BB92
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- b _0809B978
-_0809BB92:
- movs r0, 0x4
- bl sub_80119D4
- b _0809B784
-_0809BB9A:
- movs r0, 0x1
- bl sub_80303AC
- cmp r0, 0x2
- beq _0809BBC4
- cmp r0, 0x3
- beq _0809BBAA
- b _0809B784
-_0809BBAA:
- bl sub_8030418
- ldr r1, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r2
- lsls r0, 16
- asrs r0, 16
- str r0, [r1]
- bl sub_8030480
- bl _0809C392
-_0809BBC4:
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl sub_8030480
- bl _0809C392
-_0809BBDA:
- ldr r0, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809BC14
- bl sub_809B294
- ldr r0, [r6]
- ldr r2, _0809BC10
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0xE
- bne _0809BC02
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x1
- bl sub_80018D8
-_0809BC02:
- movs r0, 0x1
- bl sub_8011C28
- movs r0, 0
- bl sub_8012574
- b _0809B784
- .align 2, 0
-_0809BC10: .4byte 0x00000414
-_0809BC14:
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- beq _0809BC20
- b _0809B784
-_0809BC20:
- bl sub_8012750
- b _0809C392
-_0809BC26:
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- lsrs r0, 24
- negs r4, r0
- orrs r4, r0
- lsrs r4, 31
- bl sub_809B294
- adds r0, r4, 0
- bl sub_8016C94
- lsls r0, 24
- cmp r0, 0
- beq _0809BC5C
- ldr r0, _0809BC54
- ldr r0, [r0]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r3
- ldr r1, _0809BC58
- b _0809C266
- .align 2, 0
-_0809BC54: .4byte gUnknown_3001B64
-_0809BC58: .4byte gUnknown_81161C8
-_0809BC5C:
- ldr r0, _0809BC64
- ldr r0, [r0]
- b _0809B972
- .align 2, 0
-_0809BC64: .4byte gUnknown_3001B64
-_0809BC68:
- ldr r0, [r6]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809BC74
- b _0809C266
- .align 2, 0
-_0809BC74: .4byte gUnknown_81161D8
-_0809BC78:
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- lsrs r0, 24
- negs r4, r0
- orrs r4, r0
- lsrs r4, 31
- bl sub_809B294
- adds r0, r4, 0
- bl sub_80162E4
- lsls r0, 24
- cmp r0, 0
- beq _0809BCB0
- ldr r0, _0809BCA8
- ldr r0, [r0]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r3
- ldr r1, _0809BCAC
- b _0809C266
- .align 2, 0
-_0809BCA8: .4byte gUnknown_3001B64
-_0809BCAC: .4byte gUnknown_81161E8
-_0809BCB0:
- ldr r0, _0809BCB8
- ldr r0, [r0]
- b _0809B972
- .align 2, 0
-_0809BCB8: .4byte gUnknown_3001B64
-_0809BCBC:
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_809B294
- ldr r0, _0809BCE0
- ldr r0, [r0]
- ldr r2, _0809BCE4
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x17
- bne _0809BCE8
- negs r0, r4
- orrs r0, r4
- lsrs r0, 31
- b _0809BCF0
- .align 2, 0
-_0809BCE0: .4byte gUnknown_3001B64
-_0809BCE4: .4byte 0x00000414
-_0809BCE8:
- movs r0, 0x2
- cmp r4, 0
- beq _0809BCF0
- movs r0, 0x3
-_0809BCF0:
- bl sub_8018B00
- lsls r0, 24
- cmp r0, 0
- beq _0809BD10
- ldr r0, _0809BD08
- ldr r0, [r0]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r3
- ldr r1, _0809BD0C
- b _0809C266
- .align 2, 0
-_0809BD08: .4byte gUnknown_3001B64
-_0809BD0C: .4byte gUnknown_81161F8
-_0809BD10:
- ldr r0, _0809BD18
- ldr r0, [r0]
- b _0809B972
- .align 2, 0
-_0809BD18: .4byte gUnknown_3001B64
-_0809BD1C:
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- lsrs r0, 24
- negs r4, r0
- orrs r4, r0
- lsrs r4, 31
- bl sub_809B294
- adds r0, r4, 0
- bl sub_801FB50
- lsls r0, 24
- cmp r0, 0
- beq _0809BD54
- ldr r0, _0809BD4C
- ldr r0, [r0]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809BD50
- b _0809C266
- .align 2, 0
-_0809BD4C: .4byte gUnknown_3001B64
-_0809BD50: .4byte gUnknown_8116208
-_0809BD54:
- ldr r0, _0809BD60
- ldr r0, [r0]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- b _0809B978
- .align 2, 0
-_0809BD60: .4byte gUnknown_3001B64
-_0809BD64:
- ldr r0, [r6]
- movs r1, 0x84
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809BD84
- bl sub_809B294
- movs r0, 0
- movs r1, 0x39
- bl sub_80015C0
- bl sub_802465C
- b _0809B784
-_0809BD84:
- bl sub_80246F0
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x39
- bl sub_8001658
- cmp r0, 0
- bne _0809BDB2
- bl sub_80247B4
- lsls r0, 24
- cmp r0, 0
- beq _0809BDB2
- movs r0, 0
- movs r1, 0x39
- movs r2, 0x1
- bl sub_80018D8
- movs r0, 0x46
- movs r1, 0
- bl GroundMap_ExecuteEvent
-_0809BDB2:
- cmp r4, 0x3
- bne _0809BDCC
- bl sub_80247C0
- ldr r0, _0809BDC8
- ldr r0, [r0]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- b _0809C1BC
- .align 2, 0
-_0809BDC8: .4byte gUnknown_3001B64
-_0809BDCC:
- cmp r4, 0x2
- beq _0809BDD2
- b _0809B784
-_0809BDD2:
- bl sub_80247C0
- ldr r0, _0809BDE4
- ldr r0, [r0]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- b _0809B828
- .align 2, 0
-_0809BDE4: .4byte gUnknown_3001B64
-_0809BDE8:
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- lsrs r0, 24
- negs r4, r0
- orrs r4, r0
- lsrs r4, 31
- bl sub_809B294
- adds r0, r4, 0
- bl sub_8021B9C
- lsls r0, 24
- cmp r0, 0
- beq _0809BE20
- ldr r0, _0809BE18
- ldr r0, [r0]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r1, _0809BE1C
- b _0809C266
- .align 2, 0
-_0809BE18: .4byte gUnknown_3001B64
-_0809BE1C: .4byte gUnknown_8116218
-_0809BE20:
- ldr r0, _0809BE2C
- ldr r0, [r0]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- b _0809B978
- .align 2, 0
-_0809BE2C: .4byte gUnknown_3001B64
-_0809BE30:
- ldr r0, [r6]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r3
- ldr r1, _0809BE3C
- b _0809C266
- .align 2, 0
-_0809BE3C: .4byte gUnknown_8116228
-_0809BE40:
- ldr r0, [r6]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r1, _0809BE4C
- b _0809C266
- .align 2, 0
-_0809BE4C: .4byte gUnknown_8116238
-_0809BE50:
- ldr r0, [r6]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809BE5C
- b _0809C266
- .align 2, 0
-_0809BE5C: .4byte gUnknown_8116248
-_0809BE60:
- bl sub_809B294
- movs r0, 0x98
- lsls r0, 1
- bl sub_80314B4
- lsls r0, 24
- cmp r0, 0
- bne _0809BE84
- ldr r0, _0809BE80
- ldr r0, [r0]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- b _0809B978
- .align 2, 0
-_0809BE80: .4byte gUnknown_3001B64
-_0809BE84:
- ldr r0, _0809BE94
- ldr r0, [r0]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r1, _0809BE98
- b _0809C266
- .align 2, 0
-_0809BE94: .4byte gUnknown_3001B64
-_0809BE98: .4byte gUnknown_8116258
-_0809BE9C:
- movs r0, 0x4
- bl sub_80119D4
- ldr r0, _0809BEB0
- ldr r0, [r0]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809BEB4
- b _0809C266
- .align 2, 0
-_0809BEB0: .4byte gUnknown_3001B64
-_0809BEB4: .4byte gUnknown_8116268
-_0809BEB8:
- movs r0, 0x4
- bl sub_80119D4
- ldr r0, _0809BECC
- ldr r0, [r0]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r3
- ldr r1, _0809BED0
- b _0809C266
- .align 2, 0
-_0809BECC: .4byte gUnknown_3001B64
-_0809BED0: .4byte gUnknown_8116278
-_0809BED4:
- mov r0, sp
- bl sub_8099328
- lsls r0, 24
- cmp r0, 0
- beq _0809BF4E
- add r1, sp, 0x4
- add r2, sp, 0x8
- movs r0, 0x2
- bl sub_8001B88
- ldr r0, [sp, 0x8]
- cmp r0, 0x7
- bgt _0809BF4E
- add r4, sp, 0xC
-_0809BEF2:
- lsls r1, r0, 24
- lsrs r1, 24
- mov r0, sp
- ldrb r2, [r0]
- adds r0, r4, 0
- bl sub_8096AF8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809BF44
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- movs r0, 0x2
- bl sub_8001BB4
- ldr r0, _0809BF40
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 3
- adds r2, r0, r1
- ldrh r1, [r4, 0x2]
- lsls r1, 16
- asrs r1, 16
- negs r0, r1
- orrs r0, r1
- lsrs r1, r0, 31
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0809BF30
- adds r1, 0x2
-_0809BF30:
- str r1, [r2]
- cmp r1, 0
- beq _0809BF38
- b _0809C392
-_0809BF38:
- movs r0, 0x3
- str r0, [r2]
- b _0809C392
- .align 2, 0
-_0809BF40: .4byte gUnknown_3001B64
-_0809BF44:
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0x7
- ble _0809BEF2
-_0809BF4E:
- ldr r0, _0809BF6C
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- bl sub_8096BD0
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl sub_8001BB4
- b _0809C392
- .align 2, 0
-_0809BF6C: .4byte gUnknown_3001B64
-_0809BF70:
- mov r5, sp
- adds r5, 0x1
- adds r0, r5, 0
- bl sub_8099328
- lsls r0, 24
- cmp r0, 0
- bne _0809BF82
- b _0809C392
-_0809BF82:
- add r1, sp, 0x14
- add r2, sp, 0x18
- movs r0, 0x2
- bl sub_8001B88
- add r4, sp, 0x1C
- ldr r1, [sp, 0x18]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r5]
- adds r0, r4, 0
- bl sub_8096AF8
- ldrb r0, [r4]
- cmp r0, 0
- bne _0809BFA4
- b _0809C392
-_0809BFA4:
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r5]
- bl sub_802DB28
- lsls r0, 24
- cmp r0, 0
- bne _0809BFB8
- b _0809C392
-_0809BFB8:
- movs r0, 0
- movs r1, 0x19
- bl sub_8001658
- cmp r0, 0x63
- bgt _0809BFCE
- adds r2, r0, 0x1
- movs r0, 0
- movs r1, 0x19
- bl sub_80018D8
-_0809BFCE:
- movs r0, 0
- movs r1, 0x39
- movs r2, 0x1
- bl sub_80018D8
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0x18]
- adds r2, 0x1
- movs r0, 0x2
- bl sub_8001BB4
- ldr r0, _0809BFF4
- ldr r0, [r0]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809BFF8
- b _0809C266
- .align 2, 0
-_0809BFF4: .4byte gUnknown_3001B64
-_0809BFF8: .4byte gUnknown_8116288
-_0809BFFC:
- ldr r0, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809C036
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- lsrs r0, 24
- negs r4, r0
- orrs r4, r0
- asrs r4, 31
- movs r0, 0x4
- ands r4, r0
- bl sub_809B294
- adds r0, r4, 0
- bl sub_802FD14
- lsls r0, 24
- cmp r0, 0
- beq _0809C032
- bl _0809B784
-_0809C032:
- ldr r0, [r6]
- b _0809B972
-_0809C036:
- bl sub_802FE58
- cmp r0, 0x2
- beq _0809C05E
- cmp r0, 0x3
- beq _0809C046
- bl _0809B784
-_0809C046:
- bl sub_802FED0
- ldr r1, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r2
- lsls r0, 16
- asrs r0, 16
- str r0, [r1]
- bl sub_802FEE0
- b _0809C392
-_0809C05E:
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl sub_802FEE0
- b _0809C392
-_0809C072:
- movs r4, 0x1
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0809C082
- movs r4, 0x5
-_0809C082:
- bl sub_809B294
- adds r0, r4, 0
- bl sub_802FD14
- lsls r0, 24
- cmp r0, 0
- beq _0809C0A8
- ldr r0, _0809C0A0
- ldr r0, [r0]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r1, _0809C0A4
- b _0809C266
- .align 2, 0
-_0809C0A0: .4byte gUnknown_3001B64
-_0809C0A4: .4byte gUnknown_8116298
-_0809C0A8:
- ldr r0, _0809C0B4
- ldr r0, [r0]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- b _0809B978
- .align 2, 0
-_0809C0B4: .4byte gUnknown_3001B64
-_0809C0B8:
- movs r4, 0x2
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0809C0C8
- movs r4, 0x6
-_0809C0C8:
- bl sub_809B294
- adds r0, r4, 0
- bl sub_802FD14
- lsls r0, 24
- cmp r0, 0
- beq _0809C0F0
- ldr r0, _0809C0E8
- ldr r0, [r0]
- movs r3, 0x83
- lsls r3, 3
- adds r0, r3
- ldr r1, _0809C0EC
- b _0809C266
- .align 2, 0
-_0809C0E8: .4byte gUnknown_3001B64
-_0809C0EC: .4byte gUnknown_81162A8
-_0809C0F0:
- ldr r0, _0809C0F8
- ldr r0, [r0]
- b _0809B972
- .align 2, 0
-_0809C0F8: .4byte gUnknown_3001B64
-_0809C0FC:
- movs r4, 0x3
- movs r0, 0x4
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0809C10C
- movs r4, 0x7
-_0809C10C:
- bl sub_809B294
- adds r0, r4, 0
- bl sub_802FD14
- lsls r0, 24
- cmp r0, 0
- beq _0809C134
- ldr r0, _0809C12C
- ldr r0, [r0]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809C130
- b _0809C266
- .align 2, 0
-_0809C12C: .4byte gUnknown_3001B64
-_0809C130: .4byte gUnknown_81162B8
-_0809C134:
- ldr r0, _0809C144
- ldr r0, [r0]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- bl _0809B978
- .align 2, 0
-_0809C144: .4byte gUnknown_3001B64
-_0809C148:
- ldr r0, [r6]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r1, _0809C154
- b _0809C266
- .align 2, 0
-_0809C154: .4byte gUnknown_81162C8
-_0809C158:
- ldr r0, [r6]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809C164
- b _0809C266
- .align 2, 0
-_0809C164: .4byte gUnknown_81162D8
-_0809C168:
- bl sub_809B294
- bl sub_803B050
- lsls r0, 24
- cmp r0, 0
- beq _0809C1A0
- ldr r4, _0809C194
- ldr r0, [r4]
- ldr r3, _0809C198
- adds r0, r3
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_803B100
- ldr r0, [r4]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809C19C
- b _0809C266
- .align 2, 0
-_0809C194: .4byte gUnknown_3001B64
-_0809C198: .4byte 0x000005a4
-_0809C19C: .4byte gUnknown_81162E8
-_0809C1A0:
- ldr r0, _0809C1B0
- ldr r0, [r0]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- bl _0809B978
- .align 2, 0
-_0809C1B0: .4byte gUnknown_3001B64
-_0809C1B4:
- ldr r0, [r6]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
-_0809C1BC:
- movs r1, 0x1
- str r1, [r0]
- b _0809C392
-_0809C1C2:
- bl sub_809B294
- b _0809C392
-_0809C1C8:
- movs r0, 0x2
- bl sub_80252F0
- lsls r0, 24
- cmp r0, 0
- beq _0809C1EC
- ldr r0, _0809C1E4
- ldr r0, [r0]
- movs r2, 0x83
- lsls r2, 3
- adds r0, r2
- ldr r1, _0809C1E8
- b _0809C266
- .align 2, 0
-_0809C1E4: .4byte gUnknown_3001B64
-_0809C1E8: .4byte gUnknown_81162F8
-_0809C1EC:
- ldr r0, _0809C200
- ldr r0, [r0]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- movs r1, 0x2
- negs r1, r1
- str r1, [r0]
- b _0809C392
- .align 2, 0
-_0809C200: .4byte gUnknown_3001B64
-_0809C204:
- ldr r1, [r6]
- ldr r2, _0809C230
- adds r0, r1, r2
- ldr r0, [r0]
- movs r3, 0x85
- lsls r3, 3
- adds r1, r3
- ldr r1, [r1]
- bl sub_809CCDC
- ldr r1, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r2, r1, r3
- str r0, [r2]
- movs r0, 0x83
- lsls r0, 3
- adds r1, r0
- ldr r0, _0809C234
- str r0, [r1]
- bl _0809B784
- .align 2, 0
-_0809C230: .4byte 0x00000424
-_0809C234: .4byte gUnknown_8116308
-_0809C238:
- ldr r0, [r6]
- movs r2, 0x85
- lsls r2, 3
- adds r1, r0, r2
- ldr r5, [r1]
- ldr r3, _0809C26C
- adds r0, r3
- ldrb r4, [r0]
- bl sub_809B294
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_801B60C
- lsls r0, 24
- cmp r0, 0
- beq _0809C274
- ldr r0, [r6]
- movs r1, 0x83
- lsls r1, 3
- adds r0, r1
- ldr r1, _0809C270
-_0809C266:
- str r1, [r0]
- bl _0809B784
- .align 2, 0
-_0809C26C: .4byte 0x00000424
-_0809C270: .4byte gUnknown_8116318
-_0809C274:
- ldr r0, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- bl _0809B978
-_0809C280:
- ldr r0, [r6]
- movs r3, 0x84
- lsls r3, 3
- adds r0, r3
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809C2B8
- bl sub_809B294
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- lsls r0, 24
- cmp r0, 0
- beq _0809C2B2
- bl _0809B784
-_0809C2B2:
- ldr r0, [r6]
- bl _0809B972
-_0809C2B8:
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x2
- beq _0809C320
- cmp r0, 0x3
- beq _0809C2CA
- bl _0809B784
-_0809C2CA:
- bl sub_801A8AC
- adds r5, r0, 0
- ldr r0, _0809C304
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, r1
- ldrb r4, [r0, 0x2]
- adds r0, r4, 0
- bl sub_8091570
- lsls r0, 24
- cmp r0, 0
- beq _0809C30C
- ldr r0, _0809C308
- adds r1, r4, 0
- movs r2, 0
- bl sub_8090DC4
- adds r0, r5, 0
- bl sub_80911F8
- ldr r0, [r6]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- movs r1, 0x1
- b _0809C318
- .align 2, 0
-_0809C304: .4byte gUnknown_203B460
-_0809C308: .4byte gUnknown_202DE58
-_0809C30C:
- ldr r0, [r6]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
-_0809C314:
- movs r1, 0x1
- negs r1, r1
-_0809C318:
- str r1, [r0]
- bl sub_801A928
- b _0809C392
-_0809C320:
- ldr r0, [r6]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- b _0809C314
-_0809C32A:
- adds r4, r6, 0
- ldr r0, [r4]
- movs r2, 0x84
- lsls r2, 3
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809C36C
- bl sub_809B294
- ldr r1, [r4]
- ldr r3, _0809C368
- adds r0, r1, r3
- ldr r0, [r0]
- movs r2, 0x85
- lsls r2, 3
- adds r1, r2
- ldr r1, [r1]
- bl sub_8035444
- lsls r0, 24
- cmp r0, 0
- beq _0809C35C
- bl _0809B784
-_0809C35C:
- ldr r0, [r4]
- movs r3, 0x86
- lsls r3, 3
- adds r0, r3
- bl _0809B978
- .align 2, 0
-_0809C368: .4byte 0x00000424
-_0809C36C:
- bl sub_8035574
- cmp r0, 0x3
- bls _0809C378
- bl _0809B784
-_0809C378:
- cmp r0, 0x2
- bcs _0809C380
- bl _0809B784
-_0809C380:
- ldr r0, [r6]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl sub_803565C
-_0809C392:
- movs r0, 0
-_0809C394:
- add sp, 0x24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809B648
-
- thumb_func_start sub_809C39C
-sub_809C39C:
- push {lr}
- bl sub_801D178
- ldr r1, _0809C3D4
- ldr r1, [r1]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r2
- str r0, [r1]
- cmp r0, 0x3
- bne _0809C3CC
- bl sub_801D1D4
- lsls r0, 24
- lsrs r0, 24
- bl sub_8002694
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1
- negs r2, r2
- movs r1, 0
- bl sub_8098D1C
-_0809C3CC:
- bl sub_801D1E0
- pop {r0}
- bx r0
- .align 2, 0
-_0809C3D4: .4byte gUnknown_3001B64
- thumb_func_end sub_809C39C
-
- thumb_func_start sub_809C3D8
-sub_809C3D8:
- push {lr}
- bl sub_801D178
- ldr r1, _0809C410
- ldr r1, [r1]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r2
- str r0, [r1]
- cmp r0, 0x3
- bne _0809C408
- bl sub_801D1D4
- lsls r0, 24
- lsrs r0, 24
- bl sub_8002694
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1
- negs r2, r2
- movs r1, 0
- bl sub_8098D1C
-_0809C408:
- bl sub_801D1E0
- pop {r0}
- bx r0
- .align 2, 0
-_0809C410: .4byte gUnknown_3001B64
- thumb_func_end sub_809C3D8
-
- thumb_func_start sub_809C414
-sub_809C414:
- push {lr}
- bl sub_802540C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0809C448
- ldr r0, _0809C444
- ldr r0, [r0]
- movs r2, 0x86
- lsls r2, 3
- adds r0, r2
- str r1, [r0]
- adds r0, r1, 0
- bl sub_8002694
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1
- negs r2, r2
- movs r1, 0
- bl sub_8098D1C
- b _0809C458
- .align 2, 0
-_0809C444: .4byte gUnknown_3001B64
-_0809C448:
- ldr r0, _0809C460
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
-_0809C458:
- bl sub_8025418
- pop {r0}
- bx r0
- .align 2, 0
-_0809C460: .4byte gUnknown_3001B64
- thumb_func_end sub_809C414
-
- thumb_func_start sub_809C464
-sub_809C464:
- push {lr}
- bl sub_803C850
- bl sub_8001064
- bl sub_809965C
- pop {r0}
- bx r0
- thumb_func_end sub_809C464
-
- thumb_func_start sub_809C478
-sub_809C478:
- push {lr}
- sub sp, 0x8
- bl sub_80356A0
- cmp r0, 0x3
- bne _0809C492
- ldr r0, _0809C4AC
- bl sub_8011988
- bl InitFlash
- bl ClearFlashData
-_0809C492:
- bl sub_8035758
- add r2, sp, 0x4
- movs r0, 0x3
- mov r1, sp
- bl sub_8001B88
- movs r0, 0
- bl sub_80993C0
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0809C4AC: .4byte 0x00000313
- thumb_func_end sub_809C478
-
- thumb_func_start sub_809C4B0
-sub_809C4B0:
- push {r4,r5,lr}
- movs r4, 0x1
- negs r4, r4
- ldr r5, _0809C4FC
- ldr r0, [r5]
- movs r2, 0x86
- lsls r2, 3
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- bne _0809C4DE
- bl sub_803B168
- lsls r0, 16
- ldr r1, [r5]
- ldr r3, _0809C500
- adds r2, r1, r3
- asrs r4, r0, 16
- lsrs r0, 16
- strh r0, [r2]
- movs r0, 0x86
- lsls r0, 3
- adds r1, r0
-_0809C4DE:
- str r4, [r1]
- bl sub_803B1BC
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809C4F4
- adds r0, r4, 0
- movs r1, 0
- bl GroundMap_ExecuteEvent
-_0809C4F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C4FC: .4byte gUnknown_3001B64
-_0809C500: .4byte 0x000005a4
- thumb_func_end sub_809C4B0
-
- thumb_func_start sub_809C504
-sub_809C504:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80282DC
- adds r4, r0, 0
- cmp r4, 0x1
- bne _0809C530
- mov r0, sp
- ldrb r0, [r0]
- bl sub_809927C
- ldr r0, _0809C52C
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- str r4, [r0]
- b _0809C540
- .align 2, 0
-_0809C52C: .4byte gUnknown_3001B64
-_0809C530:
- ldr r0, _0809C54C
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
-_0809C540:
- bl sub_80282FC
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C54C: .4byte gUnknown_3001B64
- thumb_func_end sub_809C504
-
- thumb_func_start sub_809C550
-sub_809C550:
- push {r4,r5,lr}
- bl sub_802E90C
- adds r4, r0, 0
- movs r5, 0
- bl sub_802E918
- cmp r4, 0x2
- beq _0809C586
- cmp r4, 0x2
- bhi _0809C56C
- cmp r4, 0x1
- beq _0809C572
- b _0809C5AC
-_0809C56C:
- cmp r4, 0x3
- beq _0809C59A
- b _0809C5AC
-_0809C572:
- movs r0, 0x4
- movs r1, 0x1D
- movs r2, 0x3
- bl sub_8001CC4
- lsls r0, 24
- cmp r0, 0
- beq _0809C5AC
- movs r5, 0x1
- b _0809C5AC
-_0809C586:
- movs r0, 0x4
- movs r1, 0x1F
- movs r2, 0x2
- bl sub_8001CC4
- lsls r0, 24
- cmp r0, 0
- beq _0809C5AC
- movs r5, 0x2
- b _0809C5AC
-_0809C59A:
- movs r0, 0xB
- movs r1, 0x33
- movs r2, 0x8
- bl sub_8001CC4
- lsls r0, 24
- cmp r0, 0
- beq _0809C5AC
- movs r5, 0x3
-_0809C5AC:
- ldr r0, _0809C5C0
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C5C0: .4byte gUnknown_3001B64
- thumb_func_end sub_809C550
-
- thumb_func_start sub_809C5C4
-sub_809C5C4:
- push {r4,lr}
- ldr r4, _0809C610
- movs r0, 0x24
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- movs r2, 0
- str r2, [r0]
- str r2, [r0, 0x4]
- movs r3, 0
- strh r2, [r0, 0x8]
- strh r2, [r0, 0xA]
- strb r3, [r0, 0xD]
- ldr r0, [r4]
- strb r3, [r0, 0xE]
- ldr r1, [r4]
- str r2, [r1, 0x10]
- ldr r0, _0809C614
- strh r0, [r1, 0x14]
- movs r0, 0x23
- strh r0, [r1, 0x16]
- strb r3, [r1, 0x18]
- ldr r1, [r4]
- movs r0, 0x3F
- strb r0, [r1, 0x19]
- ldr r0, [r4]
- str r2, [r0, 0x1C]
- adds r0, 0x20
- strb r3, [r0]
- bl nullsub_107
- bl sub_809C63C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C610: .4byte gUnknown_3001B68
-_0809C614: .4byte 0x0000ffff
- thumb_func_end sub_809C5C4
-
- thumb_func_start sub_809C618
-sub_809C618:
- push {r4,lr}
- bl sub_809C63C
- bl nullsub_107
- bl nullsub_108
- ldr r4, _0809C638
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C638: .4byte gUnknown_3001B68
- thumb_func_end sub_809C618
-
- thumb_func_start sub_809C63C
-sub_809C63C:
- push {lr}
- bl nullsub_108
- ldr r0, _0809C654
- ldr r0, [r0]
- movs r1, 0
- str r1, [r0, 0x1C]
- adds r0, 0x20
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0809C654: .4byte gUnknown_3001B68
- thumb_func_end sub_809C63C
-
- thumb_func_start sub_809C658
-sub_809C658:
- push {lr}
- ldr r0, _0809C670
- ldr r0, [r0]
- ldrh r0, [r0, 0xA]
- cmp r0, 0x5
- bhi _0809C6C8
- lsls r0, 2
- ldr r1, _0809C674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C670: .4byte gUnknown_3001B68
-_0809C674: .4byte _0809C678
- .align 2, 0
-_0809C678:
- .4byte _0809C6C0
- .4byte _0809C6C0
- .4byte _0809C6AC
- .4byte _0809C690
- .4byte _0809C69E
- .4byte _0809C6B6
-_0809C690:
- bl nullsub_111
- bl nullsub_112
- bl nullsub_113
- b _0809C6C8
-_0809C69E:
- bl nullsub_114
- bl nullsub_115
- bl nullsub_116
- b _0809C6C8
-_0809C6AC:
- bl nullsub_109
- bl nullsub_110
- b _0809C6C8
-_0809C6B6:
- bl nullsub_107
- bl nullsub_108
- b _0809C6C8
-_0809C6C0:
- bl nullsub_107
- bl nullsub_108
-_0809C6C8:
- pop {r0}
- bx r0
- thumb_func_end sub_809C658
-
- thumb_func_start sub_809C6CC
-sub_809C6CC:
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _0809C6E8
- ldr r1, [r0]
- ldrh r0, [r1, 0x8]
- cmp r0, r2
- beq _0809C6E2
- movs r0, 0
- strh r2, [r1, 0x8]
- strb r0, [r1, 0xE]
-_0809C6E2:
- pop {r0}
- bx r0
- .align 2, 0
-_0809C6E8: .4byte gUnknown_3001B68
- thumb_func_end sub_809C6CC
-
- thumb_func_start sub_809C6EC
-sub_809C6EC:
- push {lr}
- bl sub_8098F88
- lsls r0, 24
- cmp r0, 0
- bne _0809C718
- ldr r0, _0809C70C
- ldr r0, [r0]
- ldrb r0, [r0, 0xC]
- cmp r0, 0
- bne _0809C710
- movs r0, 0x4
- bl sub_809C6CC
- b _0809C71E
- .align 2, 0
-_0809C70C: .4byte gUnknown_203B46C
-_0809C710:
- movs r0, 0x3
- bl sub_809C6CC
- b _0809C71E
-_0809C718:
- movs r0, 0x5
- bl sub_809C6CC
-_0809C71E:
- pop {r0}
- bx r0
- thumb_func_end sub_809C6EC
-
- thumb_func_start sub_809C724
-sub_809C724:
- ldr r0, _0809C72C
- ldr r0, [r0]
- ldrh r0, [r0, 0x8]
- bx lr
- .align 2, 0
-_0809C72C: .4byte gUnknown_3001B68
- thumb_func_end sub_809C724
-
- thumb_func_start sub_809C730
-sub_809C730:
- push {lr}
- bl sub_809C740
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_809C730
-
- thumb_func_start sub_809C740
-sub_809C740:
- push {lr}
- ldr r0, _0809C750
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _0809C754
- movs r0, 0
- b _0809C756
- .align 2, 0
-_0809C750: .4byte gUnknown_3001B68
-_0809C754:
- movs r0, 0x1
-_0809C756:
- pop {r1}
- bx r1
- thumb_func_end sub_809C740
-
- thumb_func_start nullsub_104
-nullsub_104:
- bx lr
- thumb_func_end nullsub_104
-
- thumb_func_start sub_809C760
-sub_809C760:
- ldr r0, _0809C76C
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0xE]
- bx lr
- .align 2, 0
-_0809C76C: .4byte gUnknown_3001B68
- thumb_func_end sub_809C760
-
- thumb_func_start sub_809C770
-sub_809C770:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r1, 16
- asrs r6, r1, 16
- ldr r4, _0809C790
- ldr r1, [r4]
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- beq _0809C794
- movs r0, 0
- strb r0, [r1, 0xE]
- b _0809CA10
- .align 2, 0
-_0809C790: .4byte gUnknown_3001B68
-_0809C794:
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- bne _0809C79E
- bl sub_809C6EC
-_0809C79E:
- ldr r0, [r4]
- ldrb r5, [r0, 0x18]
- ldrb r7, [r0, 0x19]
- cmp r6, 0x26
- bls _0809C7AA
- b _0809C8C8
-_0809C7AA:
- lsls r0, r6, 2
- ldr r1, _0809C7B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C7B4: .4byte _0809C7B8
- .align 2, 0
-_0809C7B8:
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C854
- .4byte _0809C868
- .4byte _0809C868
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C8C8
- .4byte _0809C86E
- .4byte _0809C8C4
- .4byte _0809C8C4
- .4byte _0809C8C4
-_0809C854:
- mov r0, r8
- bl sub_8002658
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0809C864
- b _0809CA10
-_0809C864:
- movs r4, 0x1
- b _0809C988
-_0809C868:
- movs r4, 0x1
- movs r5, 0
- b _0809C988
-_0809C86E:
- mov r0, r8
- subs r0, 0xA4
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bls _0809C87C
- b _0809CA10
-_0809C87C:
- lsls r0, 2
- ldr r1, _0809C888
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C888: .4byte _0809C88C
- .align 2, 0
-_0809C88C:
- .4byte _0809C8C4
- .4byte _0809C8C4
- .4byte _0809CA10
- .4byte _0809CA10
- .4byte _0809C8C4
- .4byte _0809C8C4
- .4byte _0809C8C4
- .4byte _0809CA10
- .4byte _0809CA10
- .4byte _0809CA10
- .4byte _0809C8C4
- .4byte _0809C8C4
- .4byte _0809C8C4
- .4byte _0809C8C4
-_0809C8C4:
- movs r4, 0
- b _0809C988
-_0809C8C8:
- adds r0, r6, 0
- subs r0, 0xC
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x16
- bhi _0809C968
- lsls r0, 2
- ldr r1, _0809C8E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C8E0: .4byte _0809C8E4
- .align 2, 0
-_0809C8E4:
- .4byte _0809C968
- .4byte _0809C940
- .4byte _0809C968
- .4byte _0809C968
- .4byte _0809C968
- .4byte _0809C968
- .4byte _0809C944
- .4byte _0809C944
- .4byte _0809C948
- .4byte _0809C948
- .4byte _0809C94C
- .4byte _0809C968
- .4byte _0809C950
- .4byte _0809C950
- .4byte _0809C954
- .4byte _0809C954
- .4byte _0809C958
- .4byte _0809C958
- .4byte _0809C95C
- .4byte _0809C95C
- .4byte _0809C960
- .4byte _0809C960
- .4byte _0809C964
-_0809C940:
- movs r1, 0
- b _0809C974
-_0809C944:
- movs r1, 0x7
- b _0809C974
-_0809C948:
- movs r1, 0x9
- b _0809C974
-_0809C94C:
- movs r1, 0xA
- b _0809C974
-_0809C950:
- movs r1, 0xB
- b _0809C974
-_0809C954:
- movs r1, 0xD
- b _0809C974
-_0809C958:
- movs r1, 0xF
- b _0809C974
-_0809C95C:
- movs r1, 0x11
- b _0809C974
-_0809C960:
- movs r1, 0x13
- b _0809C974
-_0809C964:
- movs r1, 0x20
- b _0809C974
-_0809C968:
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r1, r0, 16
-_0809C974:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809CA10
- adds r0, r1, 0
- bl sub_80A2740
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0x2
-_0809C988:
- ldr r0, _0809C99C
- ldr r2, [r0]
- ldr r1, [r2, 0x10]
- adds r3, r0, 0
- cmp r1, r4
- beq _0809C9A0
- movs r0, 0x2
- str r0, [r2]
- b _0809C9DE
- .align 2, 0
-_0809C99C: .4byte gUnknown_3001B68
-_0809C9A0:
- cmp r4, 0x1
- bne _0809C9CC
- ldrb r0, [r2, 0x18]
- cmp r5, r0
- bne _0809C9B2
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- cmp r0, r8
- beq _0809C9BC
-_0809C9B2:
- strb r4, [r2, 0xC]
- ldr r0, [r3]
- adds r0, 0x20
- strb r4, [r0]
- b _0809C9E8
-_0809C9BC:
- cmp r5, 0
- bne _0809C9E8
- movs r1, 0x16
- ldrsh r0, [r2, r1]
- cmp r0, r6
- beq _0809C9E8
- strb r4, [r2, 0xC]
- b _0809C9E8
-_0809C9CC:
- cmp r4, 0x2
- bne _0809C9E8
- ldrb r0, [r2, 0x19]
- cmp r7, r0
- bne _0809C9DE
- movs r1, 0x16
- ldrsh r0, [r2, r1]
- cmp r0, r6
- beq _0809C9E8
-_0809C9DE:
- movs r1, 0x1
- strb r1, [r2, 0xC]
- ldr r0, [r3]
- adds r0, 0x20
- strb r1, [r0]
-_0809C9E8:
- ldr r1, [r3]
- ldrb r0, [r1, 0xC]
- cmp r0, 0
- beq _0809CA10
- str r4, [r1, 0x10]
- movs r2, 0
- mov r0, r8
- strh r0, [r1, 0x14]
- strh r6, [r1, 0x16]
- strb r5, [r1, 0x18]
- ldr r0, [r3]
- strb r7, [r0, 0x19]
- ldr r1, [r3]
- ldrh r0, [r1, 0x8]
- cmp r0, 0x4
- beq _0809CA10
- strb r2, [r1, 0xC]
- ldr r0, [r3]
- adds r0, 0x20
- strb r2, [r0]
-_0809CA10:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809C770
-
- thumb_func_start nullsub_105
-nullsub_105:
- bx lr
- thumb_func_end nullsub_105
-
- thumb_func_start sub_809CA20
-sub_809CA20:
- push {lr}
- ldr r1, _0809CA74
- ldr r2, [r1]
- ldr r0, [r2]
- cmp r0, 0
- beq _0809CA38
- movs r0, 0
- str r0, [r2]
- movs r0, 0x1F
- str r0, [r2, 0x4]
- movs r0, 0x1
- strb r0, [r2, 0xC]
-_0809CA38:
- ldr r1, [r1]
- ldrb r0, [r1, 0xC]
- cmp r0, 0
- beq _0809CAE8
- ldrh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bne _0809CA5E
- ldr r2, [r1, 0x10]
- cmp r2, 0
- bne _0809CA5E
- movs r0, 0x2
- strh r0, [r1, 0xA]
- str r2, [r1, 0x1C]
- adds r1, 0x20
- movs r0, 0
- strb r0, [r1]
-_0809CA5E:
- ldr r0, _0809CA74
- ldr r0, [r0]
- ldrh r0, [r0, 0xA]
- cmp r0, 0x5
- bhi _0809CADA
- lsls r0, 2
- ldr r1, _0809CA78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809CA74: .4byte gUnknown_3001B68
-_0809CA78: .4byte _0809CA7C
- .align 2, 0
-_0809CA7C:
- .4byte _0809CAD2
- .4byte _0809CAD2
- .4byte _0809CABE
- .4byte _0809CA94
- .4byte _0809CAB0
- .4byte _0809CAC8
-_0809CA94:
- bl nullsub_111
- bl nullsub_113
- bl nullsub_112
- ldr r0, _0809CAAC
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0xD]
- b _0809CADA
- .align 2, 0
-_0809CAAC: .4byte gUnknown_3001B68
-_0809CAB0:
- bl nullsub_114
- bl nullsub_115
- bl nullsub_116
- b _0809CADA
-_0809CABE:
- bl nullsub_109
- bl nullsub_110
- b _0809CADA
-_0809CAC8:
- bl nullsub_107
- bl nullsub_108
- b _0809CADA
-_0809CAD2:
- bl nullsub_107
- bl nullsub_108
-_0809CADA:
- ldr r0, _0809CAE4
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0xC]
- b _0809CB1E
- .align 2, 0
-_0809CAE4: .4byte gUnknown_3001B68
-_0809CAE8:
- ldrh r0, [r1, 0xA]
- cmp r0, 0x5
- bhi _0809CB1E
- lsls r0, 2
- ldr r1, _0809CAF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809CAF8: .4byte _0809CAFC
- .align 2, 0
-_0809CAFC:
- .4byte _0809CB1E
- .4byte _0809CB1E
- .4byte _0809CB1E
- .4byte _0809CB14
- .4byte _0809CB1A
- .4byte _0809CB1E
-_0809CB14:
- bl nullsub_113
- b _0809CB1E
-_0809CB1A:
- bl nullsub_116
-_0809CB1E:
- pop {r0}
- bx r0
- thumb_func_end sub_809CA20
-
- thumb_func_start nullsub_106
-nullsub_106:
- bx lr
- thumb_func_end nullsub_106
-
- thumb_func_start nullsub_107
-nullsub_107:
- bx lr
- thumb_func_end nullsub_107
-
- thumb_func_start nullsub_108
-nullsub_108:
- bx lr
- thumb_func_end nullsub_108
-
- thumb_func_start nullsub_109
-nullsub_109:
- bx lr
- thumb_func_end nullsub_109
-
- thumb_func_start nullsub_110
-nullsub_110:
- bx lr
- thumb_func_end nullsub_110
-
- thumb_func_start nullsub_111
-nullsub_111:
- bx lr
- thumb_func_end nullsub_111
-
- thumb_func_start nullsub_112
-nullsub_112:
- bx lr
- thumb_func_end nullsub_112
-
- thumb_func_start nullsub_113
-nullsub_113:
- bx lr
- thumb_func_end nullsub_113
-
- thumb_func_start nullsub_114
-nullsub_114:
- bx lr
- thumb_func_end nullsub_114
-
- thumb_func_start nullsub_115
-nullsub_115:
- bx lr
- thumb_func_end nullsub_115
-
- thumb_func_start nullsub_116
-nullsub_116:
- bx lr
- thumb_func_end nullsub_116
-
- thumb_func_start sub_809CB50
-sub_809CB50:
- push {r4,lr}
- ldr r4, _0809CB70
- movs r0, 0xC
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- movs r1, 0x1
- negs r1, r1
- str r1, [r0, 0x4]
- movs r1, 0
- str r1, [r0, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CB70: .4byte gUnknown_20399E0
- thumb_func_end sub_809CB50
-
- thumb_func_start sub_809CB74
-sub_809CB74:
- push {r4,lr}
- ldr r4, _0809CB88
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CB88: .4byte gUnknown_20399E0
- thumb_func_end sub_809CB74
-
- thumb_func_start sub_809CB8C
-sub_809CB8C:
- push {lr}
- movs r0, 0
- movs r1, 0x3B
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x3D
- bl sub_80015C0
- pop {r0}
- bx r0
- thumb_func_end sub_809CB8C
-
- thumb_func_start sub_809CBA4
-sub_809CBA4:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8091130
- cmp r0, 0
- bge _0809CBB6
- movs r0, 0
- b _0809CBB8
-_0809CBB6:
- movs r0, 0x1
-_0809CBB8:
- pop {r1}
- bx r1
- thumb_func_end sub_809CBA4
-
- thumb_func_start sub_809CBBC
-sub_809CBBC:
- push {r4-r7,lr}
- sub sp, 0x54
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- adds r7, r3, 0
- ldrb r1, [r4]
- cmp r1, 0x69
- bne _0809CC20
- ldr r1, _0809CC0C
- movs r0, 0x2
- ldrsh r2, [r4, r0]
- ldr r0, _0809CC10
- ldr r0, [r0]
- movs r3, 0xD2
- lsls r3, 4
- adds r0, r3
- ldr r3, [r0]
- mov r0, sp
- bl sub_800D158
- ldr r0, _0809CC14
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r2, r0, r1
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- ldr r0, [r2]
- adds r1, r0, r1
- ldr r0, _0809CC18
- cmp r1, r0
- ble _0809CC1C
- cmp r6, 0
- beq _0809CC4E
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- adds r2, r6, 0
- b _0809CC4A
- .align 2, 0
-_0809CC0C: .4byte gUnknown_81163E4
-_0809CC10: .4byte gItemParametersFile + 4
-_0809CC14: .4byte gUnknown_203B460
-_0809CC18: .4byte 0x0001869f
-_0809CC1C:
- str r1, [r2]
- b _0809CC5E
-_0809CC20:
- ldrb r0, [r4, 0x2]
- lsls r1, 16
- lsls r0, 8
- orrs r0, r1
- str r0, [sp, 0x50]
- add r4, sp, 0x50
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0
- bl sub_8090E14
- bl sub_8090A34
- cmp r0, 0x13
- ble _0809CC52
- cmp r5, 0
- beq _0809CC4E
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- adds r2, r5, 0
-_0809CC4A:
- bl sub_809AE90
-_0809CC4E:
- movs r0, 0
- b _0809CC82
-_0809CC52:
- ldrb r0, [r4, 0x2]
- movs r1, 0
- bl sub_809124C
- bl sub_80910B4
-_0809CC5E:
- cmp r7, 0
- beq _0809CC80
- ldr r0, _0809CC8C
- mov r1, sp
- bl strcpy
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- adds r2, r7, 0
- bl sub_809AE90
- movs r1, 0x80
- lsls r1, 1
- movs r0, 0xCB
- bl sub_8011974
-_0809CC80:
- movs r0, 0x1
-_0809CC82:
- add sp, 0x54
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CC8C: .4byte gUnknown_202DE58
- thumb_func_end sub_809CBBC
-
- thumb_func_start sub_809CC90
-sub_809CC90:
- push {lr}
- lsls r0, 2
- ldr r1, _0809CCBC
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0x69
- bne _0809CCC8
- ldr r0, _0809CCC0
- ldr r0, [r0]
- movs r2, 0x98
- lsls r2, 2
- adds r0, r2
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- ldr r0, [r0]
- adds r0, r1
- ldr r1, _0809CCC4
- cmp r0, r1
- ble _0809CCD4
- movs r0, 0x2
- b _0809CCD6
- .align 2, 0
-_0809CCBC: .4byte gUnknown_81163BC
-_0809CCC0: .4byte gUnknown_203B460
-_0809CCC4: .4byte 0x0001869f
-_0809CCC8:
- bl sub_8090A34
- cmp r0, 0x13
- ble _0809CCD4
- movs r0, 0x2
- b _0809CCD6
-_0809CCD4:
- movs r0, 0x1
-_0809CCD6:
- pop {r1}
- bx r1
- thumb_func_end sub_809CC90
-
- thumb_func_start sub_809CCDC
-sub_809CCDC:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r1, r6, 2
- ldr r0, _0809CD20
- adds r5, r1, r0
- ldr r0, _0809CD24
- ldr r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r0, [r1, 0x4]
- movs r0, 0
- str r0, [r1, 0x8]
- movs r0, 0x2
- cmp r4, 0x63
- bgt _0809CD04
- movs r0, 0
- cmp r4, 0x1
- ble _0809CD04
- movs r0, 0x1
-_0809CD04:
- ldr r1, _0809CD28
- ldr r2, _0809CD2C
- ldr r3, _0809CD30
- lsls r0, 2
- adds r0, r3
- ldr r3, [r0]
- adds r0, r5, 0
- bl sub_809CBBC
- lsls r0, 24
- cmp r0, 0
- bne _0809CD34
- movs r0, 0x2
- b _0809CD3E
- .align 2, 0
-_0809CD20: .4byte gUnknown_81163BC
-_0809CD24: .4byte gUnknown_20399E0
-_0809CD28: .4byte gUnknown_81163F0
-_0809CD2C: .4byte gUnknown_811642C
-_0809CD30: .4byte gUnknown_203B4A0
-_0809CD34:
- ldr r0, _0809CD44
- ldr r0, [r0]
- str r6, [r0, 0x4]
- str r4, [r0, 0x8]
- movs r0, 0x1
-_0809CD3E:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CD44: .4byte gUnknown_20399E0
- thumb_func_end sub_809CCDC
-
- thumb_func_start sub_809CD48
-sub_809CD48:
- push {lr}
- bl sub_809A750
- lsls r0, 24
- cmp r0, 0
- bne _0809CD58
- movs r0, 0x3
- b _0809CD5A
-_0809CD58:
- movs r0, 0
-_0809CD5A:
- pop {r1}
- bx r1
- thumb_func_end sub_809CD48
-
- thumb_func_start nullsub_117
-nullsub_117:
- bx lr
- thumb_func_end nullsub_117
-
- thumb_func_start nullsub_118
-nullsub_118:
- bx lr
- thumb_func_end nullsub_118
-
- thumb_func_start sub_809CD68
-sub_809CD68:
- movs r2, 0
- str r2, [r0]
- str r2, [r0, 0x4]
- movs r1, 0x1
- negs r1, r1
- str r1, [r0, 0x10]
- str r2, [r0, 0x14]
- str r2, [r0, 0x8]
- strb r2, [r0, 0x18]
- bx lr
- thumb_func_end sub_809CD68
-
- thumb_func_start sub_809CD7C
-sub_809CD7C:
- movs r2, 0
- str r2, [r0]
- movs r1, 0x1
- negs r1, r1
- str r1, [r0, 0x10]
- str r2, [r0, 0x14]
- str r2, [r0, 0x8]
- bx lr
- thumb_func_end sub_809CD7C
-
- thumb_func_start sub_809CD8C
-sub_809CD8C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- cmp r4, 0x5
- bne _0809CD9E
- bl sub_809CD68
- str r4, [r5]
- b _0809CDB0
-_0809CD9E:
- ldr r0, [r5, 0x4]
- cmp r0, r4
- beq _0809CDB0
- str r4, [r5, 0x4]
- movs r0, 0x1
- negs r0, r0
- str r0, [r5, 0x10]
- movs r0, 0
- str r0, [r5, 0x14]
-_0809CDB0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809CD8C
-
- thumb_func_start sub_809CDB8
-sub_809CDB8:
- push {lr}
- adds r1, r0, 0
- ldr r0, [r1, 0x4]
- cmp r0, 0
- bne _0809CDC4
- ldr r0, [r1]
-_0809CDC4:
- pop {r1}
- bx r1
- thumb_func_end sub_809CDB8
-
- thumb_func_start sub_809CDC8
-sub_809CDC8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- ldr r1, [sp, 0x24]
- movs r0, 0x1
- negs r0, r0
- str r0, [r3]
- ldr r0, [r4]
- cmp r0, 0x1
- beq _0809CDEA
- cmp r0, 0x2
- beq _0809CDFE
- b _0809CE12
-_0809CDEA:
- movs r0, 0x80
- lsls r0, 6
- ands r1, r0
- cmp r1, 0
- beq _0809CE12
- adds r0, r4, 0
- bl sub_809CD68
- movs r0, 0x2
- b _0809CE10
-_0809CDFE:
- movs r0, 0x80
- lsls r0, 6
- ands r1, r0
- cmp r1, 0
- bne _0809CE12
- adds r0, r4, 0
- bl sub_809CD68
- movs r0, 0x1
-_0809CE10:
- str r0, [r4]
-_0809CE12:
- ldr r0, [r4, 0x4]
- mov r8, r0
- cmp r0, 0
- bne _0809CE1E
- ldr r1, [r4]
- mov r8, r1
-_0809CE1E:
- mov r0, r8
- subs r0, 0x1
- cmp r0, 0x6
- bls _0809CE28
- b _0809CFCC
-_0809CE28:
- lsls r0, 2
- ldr r1, _0809CE34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809CE34: .4byte _0809CE38
- .align 2, 0
-_0809CE38:
- .4byte _0809CE54
- .4byte _0809CF74
- .4byte _0809CFCC
- .4byte _0809CFCC
- .4byte _0809CECC
- .4byte _0809CF5C
- .4byte _0809CF5C
-_0809CE54:
- ldr r0, _0809CE70
- ldrh r2, [r0]
- ldrh r1, [r0, 0x2]
- movs r0, 0xF0
- ands r0, r2
- cmp r0, 0
- beq _0809CE74
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0809CEA4
- movs r0, 0
- b _0809CEA8
- .align 2, 0
-_0809CE70: .4byte gUnknown_20255F0
-_0809CE74:
- movs r3, 0x2
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0809CE82
- movs r0, 0x14
- b _0809CEA8
-_0809CE82:
- ldr r0, [r4, 0x10]
- cmp r0, 0x1
- ble _0809CEA4
- subs r0, 0x1
- str r0, [r4, 0x10]
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- bne _0809CEAA
- movs r0, 0x13
- str r0, [r6]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- strb r0, [r7]
- movs r0, 0x5
- b _0809CFDA
-_0809CEA4:
- movs r0, 0x1
- negs r0, r0
-_0809CEA8:
- str r0, [r4, 0x10]
-_0809CEAA:
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0809CEB6
- movs r0, 0xA
- b _0809CEC2
-_0809CEB6:
- ldr r0, [r4, 0x10]
- cmp r0, 0
- bne _0809CEC0
- movs r0, 0x8
- b _0809CEC2
-_0809CEC0:
- movs r0, 0x7
-_0809CEC2:
- str r0, [r6]
- adds r0, r2, 0
- bl sub_809CFE8
- b _0809CF4E
-_0809CECC:
- mov r0, sp
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- beq _0809CFCC
- ldr r0, _0809CEEC
- ldr r0, [r0]
- ldrb r0, [r0, 0xC]
- cmp r0, 0
- bne _0809CEF0
- movs r0, 0x4
- bl sub_809C6CC
- b _0809CEF6
- .align 2, 0
-_0809CEEC: .4byte gUnknown_203B46C
-_0809CEF0:
- movs r0, 0x3
- bl sub_809C6CC
-_0809CEF6:
- bl nullsub_104
- adds r0, r4, 0
- bl sub_809CD7C
- movs r5, 0x1
- str r5, [r4]
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0809CF1E
- cmp r0, 0x2
- bgt _0809CF14
- cmp r0, 0x1
- beq _0809CF2A
- b _0809CF54
-_0809CF14:
- cmp r0, 0x3
- beq _0809CF2A
- cmp r0, 0x4
- beq _0809CF3C
- b _0809CF54
-_0809CF1E:
- movs r0, 0x4
- str r0, [r4]
- movs r0, 0x1E
- bl sub_8098D80
- b _0809CF46
-_0809CF2A:
- movs r0, 0x4
- str r0, [r4]
- str r5, [r6]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- strb r0, [r7]
- movs r0, 0x4
- b _0809CFDA
-_0809CF3C:
- str r0, [r4]
- movs r0, 0x45
- movs r1, 0
- bl GroundMap_ExecuteEvent
-_0809CF46:
- str r5, [r6]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809CF4E:
- strb r0, [r7]
- ldr r0, [r4]
- b _0809CFDA
-_0809CF54:
- movs r0, 0x2
- bl sub_809D9B8
- b _0809CFCC
-_0809CF5C:
- add r0, sp, 0x4
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- beq _0809CFCC
- adds r0, r4, 0
- bl sub_809CD7C
- movs r0, 0x1
- str r0, [r4]
- b _0809CFDA
-_0809CF74:
- ldr r0, [r4, 0x8]
- cmp r0, 0
- ble _0809CF86
- subs r0, 0x1
- str r0, [r4, 0x8]
- movs r0, 0x9
- str r0, [r6]
- ldrb r0, [r4, 0xC]
- b _0809CFD6
-_0809CF86:
- ldr r0, _0809CFA0
- ldrh r1, [r0]
- movs r0, 0x9
- str r0, [r6]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0809CFA4
- movs r0, 0x4
- b _0809CFB6
- .align 2, 0
-_0809CFA0: .4byte gUnknown_20255F0
-_0809CFA4:
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _0809CFB0
- strb r2, [r7]
- b _0809CFB8
-_0809CFB0:
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809CFB6:
- strb r0, [r7]
-_0809CFB8:
- ldrb r0, [r7]
- strb r0, [r4, 0xC]
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- cmp r0, r1
- beq _0809CFD8
- movs r0, 0x20
- str r0, [r4, 0x8]
- b _0809CFD8
-_0809CFCC:
- movs r0, 0
- str r0, [r6]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809CFD6:
- strb r0, [r7]
-_0809CFD8:
- mov r0, r8
-_0809CFDA:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809CDC8
-
- thumb_func_start sub_809CFE8
-sub_809CFE8:
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809D014
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809D004
- movs r0, 0x3
- b _0809D052
-_0809D004:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809D010
- movs r0, 0x5
- b _0809D052
-_0809D010:
- movs r0, 0x4
- b _0809D052
-_0809D014:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809D038
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809D028
- movs r0, 0x1
- b _0809D052
-_0809D028:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809D034
- movs r0, 0x7
- b _0809D052
-_0809D034:
- movs r0, 0
- b _0809D052
-_0809D038:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809D044
- movs r0, 0x2
- b _0809D052
-_0809D044:
- movs r0, 0x20
- ands r2, r0
- cmp r2, 0
- bne _0809D050
- subs r0, 0x21
- b _0809D052
-_0809D050:
- movs r0, 0x6
-_0809D052:
- pop {r1}
- bx r1
- thumb_func_end sub_809CFE8
-
- thumb_func_start sub_809D058
-sub_809D058:
- push {lr}
- ldr r1, [r0, 0x4]
- cmp r1, 0x3F
- bgt _0809D076
- ldr r0, [r0]
- cmp r0, 0x67
- bgt _0809D06A
- movs r0, 0x5
- b _0809D0A6
-_0809D06A:
- cmp r0, 0x88
- ble _0809D072
- movs r0, 0x3
- b _0809D0A6
-_0809D072:
- movs r0, 0x4
- b _0809D0A6
-_0809D076:
- cmp r1, 0x60
- ble _0809D090
- ldr r0, [r0]
- cmp r0, 0x67
- bgt _0809D084
- movs r0, 0x7
- b _0809D0A6
-_0809D084:
- cmp r0, 0x88
- ble _0809D08C
- movs r0, 0x1
- b _0809D0A6
-_0809D08C:
- movs r0, 0
- b _0809D0A6
-_0809D090:
- ldr r0, [r0]
- cmp r0, 0x67
- bgt _0809D09A
- movs r0, 0x6
- b _0809D0A6
-_0809D09A:
- cmp r0, 0x88
- bgt _0809D0A4
- movs r0, 0x1
- negs r0, r0
- b _0809D0A6
-_0809D0A4:
- movs r0, 0x2
-_0809D0A6:
- pop {r1}
- bx r1
- thumb_func_end sub_809D058
-
- thumb_func_start sub_809D0AC
-sub_809D0AC:
- push {lr}
- bl sub_809D0BC
- pop {r0}
- bx r0
- thumb_func_end sub_809D0AC
-
- thumb_func_start nullsub_119
-nullsub_119:
- bx lr
- thumb_func_end nullsub_119
-
- thumb_func_start sub_809D0BC
-sub_809D0BC:
- push {r4,r5,lr}
- ldr r5, _0809D0F8
- ldr r1, _0809D0FC
- ldr r2, [r1]
- ldr r3, [r1, 0x4]
- str r2, [r5, 0x3C]
- str r3, [r5, 0x40]
- adds r0, r5, 0
- adds r0, 0x44
- movs r4, 0
- strb r4, [r0]
- movs r0, 0
- bl sub_809D158
- str r4, [r5, 0x8]
- str r4, [r5, 0xC]
- str r4, [r5, 0x10]
- movs r0, 0x1
- negs r0, r0
- str r0, [r5, 0x4]
- str r4, [r5, 0x24]
- str r4, [r5, 0x28]
- str r4, [r5, 0x2C]
- str r4, [r5, 0x30]
- str r4, [r5, 0x34]
- str r4, [r5, 0x38]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D0F8: .4byte gUnknown_20399E8
-_0809D0FC: .4byte gUnknown_8116478
- thumb_func_end sub_809D0BC
-
- thumb_func_start sub_809D100
-sub_809D100:
- push {lr}
- adds r2, r0, 0
- ldr r1, _0809D120
- ldr r0, [r1, 0x24]
- cmp r0, r2
- beq _0809D11A
- str r2, [r1, 0x24]
- movs r0, 0
- str r0, [r1, 0x28]
- str r0, [r1, 0x2C]
- str r0, [r1, 0x30]
- str r0, [r1, 0x34]
- str r0, [r1, 0x38]
-_0809D11A:
- pop {r0}
- bx r0
- .align 2, 0
-_0809D120: .4byte gUnknown_20399E8
- thumb_func_end sub_809D100
-
- thumb_func_start sub_809D124
-sub_809D124:
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _0809D144
- ldr r0, [r3, 0x24]
- cmp r0, r4
- beq _0809D13A
- str r4, [r3, 0x24]
- movs r0, 0
- str r0, [r3, 0x30]
- str r0, [r3, 0x34]
- str r0, [r3, 0x38]
-_0809D13A:
- str r1, [r3, 0x28]
- str r2, [r3, 0x2C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D144: .4byte gUnknown_20399E8
- thumb_func_end sub_809D124
-
- thumb_func_start sub_809D148
-sub_809D148:
- ldr r1, _0809D154
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_0809D154: .4byte gUnknown_20399E8
- thumb_func_end sub_809D148
-
- thumb_func_start sub_809D158
-sub_809D158:
- ldr r2, _0809D16C
- str r0, [r2]
- movs r0, 0
- str r0, [r2, 0x8]
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- str r0, [r2, 0x1C]
- str r1, [r2, 0x20]
- bx lr
- .align 2, 0
-_0809D16C: .4byte gUnknown_20399E8
- thumb_func_end sub_809D158
-
- thumb_func_start sub_809D170
-sub_809D170:
- ldr r2, _0809D17C
- str r0, [r2]
- movs r0, 0
- str r0, [r2, 0x8]
- str r1, [r2, 0x4]
- bx lr
- .align 2, 0
-_0809D17C: .4byte gUnknown_20399E8
- thumb_func_end sub_809D170
-
- thumb_func_start sub_809D180
-sub_809D180:
- ldr r2, _0809D18C
- str r0, [r2]
- movs r0, 0x1
- str r0, [r2, 0x8]
- str r1, [r2, 0xC]
- bx lr
- .align 2, 0
-_0809D18C: .4byte gUnknown_20399E8
- thumb_func_end sub_809D180
-
- thumb_func_start sub_809D190
-sub_809D190:
- ldr r3, _0809D1A4
- str r0, [r3]
- movs r0, 0x1
- str r0, [r3, 0x8]
- str r2, [r3, 0xC]
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- str r0, [r3, 0x14]
- str r1, [r3, 0x18]
- bx lr
- .align 2, 0
-_0809D1A4: .4byte gUnknown_20399E8
- thumb_func_end sub_809D190
-
- thumb_func_start sub_809D1A8
-sub_809D1A8:
- ldr r3, _0809D1B8
- str r0, [r3]
- movs r0, 0x1
- str r0, [r3, 0x8]
- str r2, [r3, 0xC]
- str r1, [r3, 0x4]
- bx lr
- .align 2, 0
-_0809D1B8: .4byte gUnknown_20399E8
- thumb_func_end sub_809D1A8
-
- thumb_func_start sub_809D1BC
-sub_809D1BC:
- ldr r2, _0809D1C8
- str r0, [r2]
- movs r0, 0x2
- str r0, [r2, 0x8]
- str r1, [r2, 0x10]
- bx lr
- .align 2, 0
-_0809D1C8: .4byte gUnknown_20399E8
- thumb_func_end sub_809D1BC
-
- thumb_func_start sub_809D1CC
-sub_809D1CC:
- ldr r3, _0809D1E0
- str r0, [r3]
- movs r0, 0x2
- str r0, [r3, 0x8]
- str r2, [r3, 0x10]
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- str r0, [r3, 0x14]
- str r1, [r3, 0x18]
- bx lr
- .align 2, 0
-_0809D1E0: .4byte gUnknown_20399E8
- thumb_func_end sub_809D1CC
-
- thumb_func_start sub_809D1E4
-sub_809D1E4:
- ldr r3, _0809D1F4
- str r0, [r3]
- movs r0, 0x2
- str r0, [r3, 0x8]
- str r2, [r3, 0x10]
- str r1, [r3, 0x4]
- bx lr
- .align 2, 0
-_0809D1F4: .4byte gUnknown_20399E8
- thumb_func_end sub_809D1E4
-
- thumb_func_start sub_809D1F8
-sub_809D1F8:
- ldr r2, _0809D204
- str r0, [r2]
- movs r0, 0x3
- str r0, [r2, 0x8]
- str r1, [r2, 0xC]
- bx lr
- .align 2, 0
-_0809D204: .4byte gUnknown_20399E8
- thumb_func_end sub_809D1F8
-
- thumb_func_start sub_809D208
-sub_809D208:
- ldr r3, _0809D21C
- str r0, [r3]
- movs r0, 0x3
- str r0, [r3, 0x8]
- str r2, [r3, 0xC]
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- str r0, [r3, 0x14]
- str r1, [r3, 0x18]
- bx lr
- .align 2, 0
-_0809D21C: .4byte gUnknown_20399E8
- thumb_func_end sub_809D208
-
- thumb_func_start sub_809D220
-sub_809D220:
- ldr r3, _0809D230
- str r0, [r3]
- movs r0, 0x3
- str r0, [r3, 0x8]
- str r2, [r3, 0xC]
- str r1, [r3, 0x4]
- bx lr
- .align 2, 0
-_0809D230: .4byte gUnknown_20399E8
- thumb_func_end sub_809D220
-
- thumb_func_start sub_809D234
-sub_809D234:
- push {lr}
- ldr r0, _0809D244
- ldr r0, [r0, 0x8]
- cmp r0, 0
- beq _0809D240
- movs r0, 0x1
-_0809D240:
- pop {r1}
- bx r1
- .align 2, 0
-_0809D244: .4byte gUnknown_20399E8
- thumb_func_end sub_809D234
-
- thumb_func_start sub_809D248
-sub_809D248:
- ldr r3, _0809D258
- ldr r1, [r3, 0x3C]
- ldr r2, [r3, 0x40]
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r3, 0x44
- ldrb r0, [r3]
- bx lr
- .align 2, 0
-_0809D258: .4byte gUnknown_20399E8
- thumb_func_end sub_809D248
-
- thumb_func_start sub_809D25C
-sub_809D25C:
- push {r4-r6,lr}
- sub sp, 0x24
- ldr r4, _0809D274
- ldr r0, [r4]
- cmp r0, 0x2
- beq _0809D28C
- cmp r0, 0x2
- bhi _0809D278
- cmp r0, 0x1
- beq _0809D27E
- b _0809D2B2
- .align 2, 0
-_0809D274: .4byte gUnknown_20399E8
-_0809D278:
- cmp r0, 0x3
- beq _0809D29A
- b _0809D2B2
-_0809D27E:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- adds r1, r4, 0
- adds r1, 0x1C
- bl sub_80A8FD8
- b _0809D2A6
-_0809D28C:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- adds r1, r4, 0
- adds r1, 0x1C
- bl sub_80AC448
- b _0809D2A6
-_0809D29A:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- adds r1, r4, 0
- adds r1, 0x1C
- bl sub_80AD360
-_0809D2A6:
- lsls r0, 16
- ldr r1, _0809D2C4
- cmp r0, r1
- bne _0809D2B2
- movs r0, 0
- str r0, [r4]
-_0809D2B2:
- ldr r4, _0809D2C8
- ldr r0, [r4, 0x8]
- cmp r0, 0x2
- beq _0809D356
- cmp r0, 0x2
- bhi _0809D2CC
- cmp r0, 0x1
- beq _0809D2D2
- b _0809D388
- .align 2, 0
-_0809D2C4: .4byte 0xffff0000
-_0809D2C8: .4byte gUnknown_20399E8
-_0809D2CC:
- cmp r0, 0x3
- beq _0809D314
- b _0809D388
-_0809D2D2:
- ldr r0, [r4, 0x1C]
- ldr r1, [r4, 0x14]
- subs r0, r1
- str r0, [sp, 0x4]
- ldr r0, [r4, 0x20]
- ldr r1, [r4, 0x18]
- subs r0, r1
- str r0, [sp, 0x8]
- ldr r1, [r4, 0xC]
- add r0, sp, 0x4
- bl sub_800290C
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bne _0809D2FA
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _0809D2FA
- str r0, [r4, 0x8]
- b _0809D392
-_0809D2FA:
- ldr r2, _0809D310
- ldr r0, [r2, 0x14]
- ldr r1, [sp, 0x4]
- adds r0, r1
- str r0, [r2, 0x14]
- ldr r0, [r2, 0x18]
- ldr r1, [sp, 0x8]
- adds r0, r1
- str r0, [r2, 0x18]
- b _0809D392
- .align 2, 0
-_0809D310: .4byte gUnknown_20399E8
-_0809D314:
- ldr r1, [r4, 0x1C]
- ldr r0, [r4, 0x14]
- subs r0, r1, r0
- cmp r0, 0
- bge _0809D320
- adds r0, 0xFF
-_0809D320:
- asrs r2, r0, 8
- ldr r1, [r4, 0x20]
- ldr r0, [r4, 0x18]
- subs r1, r0
- cmp r1, 0
- bge _0809D32E
- adds r1, 0xFF
-_0809D32E:
- asrs r1, 8
- lsls r0, r2, 8
- lsls r1, 8
- bl sub_8009FB8
- cmp r0, 0
- bge _0809D33E
- adds r0, 0xFF
-_0809D33E:
- asrs r0, 8
- lsls r0, 8
- ldr r1, [r4, 0xC]
- bl __divsi3
- str r0, [r4, 0x10]
- cmp r0, 0
- bgt _0809D352
- movs r0, 0x1
- str r0, [r4, 0x10]
-_0809D352:
- movs r0, 0x2
- str r0, [r4, 0x8]
-_0809D356:
- add r0, sp, 0xC
- ldr r1, _0809D384
- adds r2, r1, 0
- adds r2, 0x8
- adds r5, r1, 0
- subs r5, 0x14
- ldr r3, [r5, 0x10]
- movs r4, 0x1
- str r4, [sp]
- bl sub_8002934
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- str r0, [r5, 0x14]
- str r1, [r5, 0x18]
- ldr r0, [r5, 0x10]
- subs r0, 0x1
- str r0, [r5, 0x10]
- cmp r0, 0
- bgt _0809D392
- movs r0, 0
- str r0, [r5, 0x8]
- b _0809D392
- .align 2, 0
-_0809D384: .4byte gUnknown_20399FC
-_0809D388:
- ldr r2, _0809D3A4
- ldr r0, [r2, 0x1C]
- ldr r1, [r2, 0x20]
- str r0, [r2, 0x14]
- str r1, [r2, 0x18]
-_0809D392:
- ldr r5, _0809D3A4
- ldr r0, [r5, 0x24]
- cmp r0, 0x1
- beq _0809D3A8
- cmp r0, 0x2
- beq _0809D3D2
- movs r0, 0
- str r0, [r5, 0x34]
- b _0809D402
- .align 2, 0
-_0809D3A4: .4byte gUnknown_20399E8
-_0809D3A8:
- ldr r0, [r5, 0x30]
- subs r0, 0x1
- str r0, [r5, 0x30]
- cmp r0, 0
- bgt _0809D404
- movs r0, 0x4
- str r0, [r5, 0x30]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x2
- bl OtherRandomRange
- lsls r0, 10
- str r0, [r5, 0x34]
- adds r0, r4, 0
- movs r1, 0x2
- bl OtherRandomRange
- lsls r0, 10
- b _0809D402
-_0809D3D2:
- ldr r0, [r5, 0x30]
- subs r0, 0x1
- str r0, [r5, 0x30]
- cmp r0, 0
- bgt _0809D404
- ldr r0, [r5, 0x2C]
- str r0, [r5, 0x30]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x2
- bl OtherRandomRange
- ldr r1, [r5, 0x28]
- muls r0, r1
- lsls r0, 8
- str r0, [r5, 0x34]
- adds r0, r4, 0
- movs r1, 0x2
- bl OtherRandomRange
- ldr r1, [r5, 0x28]
- muls r0, r1
- lsls r0, 8
-_0809D402:
- str r0, [r5, 0x38]
-_0809D404:
- add r5, sp, 0x14
- add r6, sp, 0x1C
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A579C
- lsls r0, 24
- cmp r0, 0
- beq _0809D474
- ldr r4, _0809D47C
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x34]
- adds r0, r1
- adds r2, r0, 0
- subs r2, 0x80
- ldr r0, [r4, 0x18]
- ldr r1, [r4, 0x38]
- adds r0, r1
- ldr r1, _0809D480
- adds r3, r0, r1
- ldr r0, [sp, 0x14]
- cmp r2, r0
- bge _0809D434
- adds r2, r0, 0
-_0809D434:
- ldr r0, [sp, 0x1C]
- cmp r2, r0
- blt _0809D43C
- subs r2, r0, 0x1
-_0809D43C:
- ldr r0, [r5, 0x4]
- cmp r3, r0
- bge _0809D444
- adds r3, r0, 0
-_0809D444:
- ldr r1, [r6, 0x4]
- cmp r3, r1
- blt _0809D44C
- subs r3, r1, 0x1
-_0809D44C:
- ldr r1, _0809D484
- adds r0, r2, r1
- cmp r0, 0
- bge _0809D458
- adds r1, 0xFF
- adds r0, r2, r1
-_0809D458:
- asrs r0, 8
- str r0, [r4, 0x3C]
- ldr r1, _0809D488
- adds r0, r3, r1
- cmp r0, 0
- bge _0809D468
- adds r1, 0xFF
- adds r0, r3, r1
-_0809D468:
- asrs r0, 8
- str r0, [r4, 0x40]
- adds r1, r4, 0
- adds r1, 0x44
- movs r0, 0x1
- strb r0, [r1]
-_0809D474:
- add sp, 0x24
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D47C: .4byte gUnknown_20399E8
-_0809D480: .4byte 0xfffff480
-_0809D484: .4byte 0xffff8700
-_0809D488: .4byte 0xffffb000
- thumb_func_end sub_809D25C
-
- thumb_func_start nullsub_120
-nullsub_120:
- bx lr
- thumb_func_end nullsub_120
-
- thumb_func_start sub_809D490
-sub_809D490:
- push {r4,lr}
- ldr r4, _0809D4AC
- movs r0, 0x80
- lsls r0, 3
- movs r1, 0x6
- bl MemoryAlloc
- str r0, [r4]
- bl sub_809D4B0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D4AC: .4byte gUnknown_203B4B0
- thumb_func_end sub_809D490
-
- thumb_func_start sub_809D4B0
-sub_809D4B0:
- push {r4,r5,lr}
- ldr r0, _0809D4EC
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0809D4F0
- strh r1, [r0]
- ldr r0, _0809D4F4
- strh r1, [r0]
- ldr r1, _0809D4F8
- movs r0, 0
- strb r0, [r1]
- movs r1, 0
- ldr r5, _0809D4FC
- movs r2, 0
- ldr r3, _0809D500
- ldr r4, _0809D504
-_0809D4D4:
- adds r0, r1, r5
- strb r2, [r0]
- adds r0, r1, r3
- strb r2, [r0]
- stm r4!, {r2}
- adds r1, 0x1
- cmp r1, 0x80
- ble _0809D4D4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D4EC: .4byte gUnknown_2039A30
-_0809D4F0: .4byte gUnknown_2039A32
-_0809D4F4: .4byte gUnknown_2039A34
-_0809D4F8: .4byte gUnknown_2039A36
-_0809D4FC: .4byte gUnknown_2039A38
-_0809D500: .4byte gUnknown_2039AC0
-_0809D504: .4byte gUnknown_2039B48
- thumb_func_end sub_809D4B0
-
- thumb_func_start sub_809D508
-sub_809D508:
- push {r4,lr}
- ldr r4, _0809D51C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D51C: .4byte gUnknown_203B4B0
- thumb_func_end sub_809D508
-
- thumb_func_start sub_809D520
-sub_809D520:
- ldr r1, _0809D528
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0809D528: .4byte 0x0000ffff
- thumb_func_end sub_809D520
-
- thumb_func_start sub_809D52C
-sub_809D52C:
- push {lr}
- movs r2, 0
- ldrsh r1, [r0, r2]
- cmp r1, 0x1
- beq _0809D544
- cmp r1, 0x1
- ble _0809D562
- cmp r1, 0x2
- beq _0809D54E
- cmp r1, 0x3
- beq _0809D558
- b _0809D562
-_0809D544:
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- bl sub_80A882C
- b _0809D564
-_0809D54E:
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- bl sub_80AC240
- b _0809D564
-_0809D558:
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- bl sub_80AD158
- b _0809D564
-_0809D562:
- movs r0, 0
-_0809D564:
- pop {r1}
- bx r1
- thumb_func_end sub_809D52C
-
- thumb_func_start sub_809D568
-sub_809D568:
- push {lr}
- adds r3, r0, 0
- ldr r0, _0809D5B4
- strh r0, [r3]
- movs r2, 0
- movs r0, 0
- strh r0, [r3, 0x2]
- str r0, [r3, 0x8]
- str r0, [r3, 0x4]
- str r0, [r3, 0x14]
- str r0, [r3, 0x10]
- adds r1, r3, 0
- adds r1, 0x20
- strb r2, [r1]
- str r0, [r3, 0x1C]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r3, 0x22]
- strh r0, [r3, 0x24]
- adds r2, r3, 0
- adds r2, 0x26
- movs r1, 0xFF
- strb r1, [r2]
- strh r0, [r3, 0x28]
- strh r0, [r3, 0x2A]
- strh r0, [r3, 0x2C]
- str r0, [r3, 0x30]
- movs r2, 0
- movs r1, 0x3
- adds r0, r3, 0
- adds r0, 0x5C
-_0809D5A6:
- str r2, [r0]
- subs r0, 0x4
- subs r1, 0x1
- cmp r1, 0
- bge _0809D5A6
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5B4: .4byte 0x0000ffff
- thumb_func_end sub_809D568
-
- thumb_func_start sub_809D5B8
-sub_809D5B8:
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- str r0, [r4]
- str r0, [r4, 0x4]
- ldr r0, _0809D5FC
- strh r0, [r4, 0x10]
- movs r0, 0xFF
- strb r0, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_809D520
- movs r2, 0
- movs r1, 0x3
- adds r0, r4, 0
- adds r0, 0x20
-_0809D5DA:
- str r2, [r0]
- subs r0, 0x4
- subs r1, 0x1
- cmp r1, 0
- bge _0809D5DA
- adds r0, r4, 0
- adds r0, 0x24
- bl sub_809D568
- adds r0, r4, 0
- adds r0, 0x84
- bl sub_809D568
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5FC: .4byte 0x0000ffff
- thumb_func_end sub_809D5B8
-
- thumb_func_start sub_809D600
-sub_809D600:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r6, r1, 0
- mov r8, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x18]
- lsls r4, 16
- asrs r4, 16
- lsls r5, 24
- asrs r5, 24
- bl sub_809D5B8
- str r6, [r7]
- mov r0, r8
- str r0, [r7, 0x4]
- strh r4, [r7, 0x10]
- strb r5, [r7, 0x12]
- ldrh r0, [r6]
- strh r0, [r7, 0x8]
- ldr r1, [r6, 0x4]
- cmp r1, 0
- beq _0809D63A
- mov r0, r8
- bl _call_via_r1
- strh r0, [r7, 0xA]
- b _0809D63C
-_0809D63A:
- strh r1, [r7, 0xA]
-_0809D63C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809D600
-
- thumb_func_start sub_809D648
-sub_809D648:
- push {lr}
- bl sub_809D5B8
- pop {r0}
- bx r0
- thumb_func_end sub_809D648
-
- thumb_func_start sub_809D654
-sub_809D654:
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- bx lr
- thumb_func_end sub_809D654
-
- thumb_func_start sub_809D65C
-sub_809D65C:
- push {lr}
- adds r1, r0, 0
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0809D66E
- movs r0, 0x1
- negs r0, r0
- b _0809D672
-_0809D66E:
- movs r2, 0x24
- ldrsh r0, [r1, r2]
-_0809D672:
- pop {r1}
- bx r1
- thumb_func_end sub_809D65C
-
- thumb_func_start sub_809D678
-sub_809D678:
- movs r2, 0x26
- ldrsh r1, [r0, r2]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- thumb_func_end sub_809D678
-
- thumb_func_start sub_809D684
-sub_809D684:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0809D6A4
- ldr r0, [r2, 0x34]
- cmp r0, 0
- beq _0809D69C
- ldr r1, [r2, 0x38]
- b _0809D69E
-_0809D69C:
- ldr r1, [r2, 0x2C]
-_0809D69E:
- ldr r0, [r3]
- cmp r1, r0
- beq _0809D6CC
-_0809D6A4:
- adds r0, r2, 0
- adds r0, 0x86
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0809D6D0
- adds r0, r2, 0
- adds r0, 0x94
- ldr r0, [r0]
- cmp r0, 0
- beq _0809D6C0
- adds r0, r2, 0
- adds r0, 0x98
- b _0809D6C4
-_0809D6C0:
- adds r0, r2, 0
- adds r0, 0x8C
-_0809D6C4:
- ldr r1, [r0]
- ldr r0, [r3]
- cmp r1, r0
- bne _0809D6D0
-_0809D6CC:
- movs r0, 0x1
- b _0809D6D2
-_0809D6D0:
- movs r0, 0
-_0809D6D2:
- pop {r1}
- bx r1
- thumb_func_end sub_809D684
-
- thumb_func_start sub_809D6D8
-sub_809D6D8:
- lsls r1, 16
- asrs r1, 14
- adds r0, 0x14
- adds r0, r1
- str r2, [r0]
- bx lr
- thumb_func_end sub_809D6D8
-
- thumb_func_start sub_809D6E4
-sub_809D6E4:
- push {r4,lr}
- lsls r2, 16
- asrs r2, 16
- lsls r4, r2, 2
- adds r3, r0, 0
- adds r3, 0x14
- adds r3, r4
- ldr r3, [r3]
- str r3, [r1]
- strh r2, [r1, 0x4]
- ldrh r2, [r0, 0x10]
- strh r2, [r1, 0x6]
- ldrb r0, [r0, 0x12]
- strb r0, [r1, 0x8]
- adds r0, r3, 0
- cmp r0, 0
- beq _0809D708
- movs r0, 0x1
-_0809D708:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D6E4
-
- thumb_func_start sub_809D710
-sub_809D710:
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- lsls r2, 16
- asrs r2, 16
- ldr r1, _0809D73C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0x2
- strh r0, [r3, 0x4]
- cmp r4, 0
- beq _0809D740
- ldrh r0, [r4, 0x10]
- strh r0, [r3, 0x6]
- ldrb r0, [r4, 0x12]
- b _0809D746
- .align 2, 0
-_0809D73C: .4byte gUnknown_812F1F8
-_0809D740:
- ldr r0, _0809D750
- strh r0, [r3, 0x6]
- movs r0, 0xFF
-_0809D746:
- strb r0, [r3, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D750: .4byte 0x0000ffff
- thumb_func_end sub_809D710
-
- thumb_func_start sub_809D754
-sub_809D754:
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x24
- bl sub_809D568
- adds r4, 0x84
- adds r0, r4, 0
- bl sub_809D568
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D754
-
- thumb_func_start sub_809D770
-sub_809D770:
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x24
- bl sub_809D568
- adds r0, r4, 0
- adds r0, 0x84
- bl sub_809D568
- movs r0, 0x4
- strh r0, [r4, 0x26]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D770
-
- thumb_func_start GroundScript_ExecutePP
-GroundScript_ExecutePP:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- adds r6, r2, 0
- cmp r6, 0
- beq _0809D7A2
- ldr r0, [r6]
- cmp r0, 0
- bne _0809D7A6
-_0809D7A2:
- movs r0, 0
- b _0809D8B8
-_0809D7A6:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bhi _0809D858
- lsls r0, 2
- ldr r1, _0809D7B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809D7B8: .4byte _0809D7BC
- .align 2, 0
-_0809D7BC:
- .4byte _0809D830
- .4byte _0809D84A
- .4byte _0809D7D4
- .4byte _0809D7D4
- .4byte _0809D858
- .4byte _0809D7EE
-_0809D7D4:
- movs r3, 0x24
- ldrsh r0, [r5, r3]
- cmp r0, 0x1
- beq _0809D838
- adds r4, r5, 0
- adds r4, 0x24
- cmp r0, 0x5
- bne _0809D86C
- adds r0, r5, 0
- adds r0, 0x84
- bl sub_809D568
- b _0809D86C
-_0809D7EE:
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- beq _0809D808
- ldr r0, _0809D800
- ldr r1, _0809D804
- bl FatalError
- .align 2, 0
-_0809D800: .4byte gUnknown_8116538
-_0809D804: .4byte gUnknown_8116544
-_0809D808:
- adds r2, r5, 0
- adds r2, 0x84
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809D828
- ldr r0, _0809D820
- ldr r1, _0809D824
- bl FatalError
- .align 2, 0
-_0809D820: .4byte gUnknown_8116560
-_0809D824: .4byte gUnknown_811656C
-_0809D828:
- adds r4, r5, 0
- adds r4, 0x24
- adds r0, r2, 0
- b _0809D840
-_0809D830:
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _0809D84A
-_0809D838:
- adds r0, r5, 0
- adds r0, 0x84
- adds r4, r5, 0
- adds r4, 0x24
-_0809D840:
- adds r1, r4, 0
- movs r2, 0x60
- bl memcpy
- b _0809D86C
-_0809D84A:
- adds r0, r5, 0
- adds r0, 0x84
- bl sub_809D568
- adds r4, r5, 0
- adds r4, 0x24
- b _0809D86C
-_0809D858:
- ldr r0, _0809D864
- ldr r1, _0809D868
- movs r3, 0x4
- ldrsh r2, [r6, r3]
- bl FatalError
- .align 2, 0
-_0809D864: .4byte gUnknown_8116588
-_0809D868: .4byte gUnknown_8116594
-_0809D86C:
- adds r0, r4, 0
- bl sub_809D568
- cmp r7, 0
- beq _0809D87C
- ldr r0, [r7]
- str r0, [r5, 0xC]
- b _0809D884
-_0809D87C:
- adds r0, r5, 0
- adds r0, 0xC
- bl sub_809D520
-_0809D884:
- ldrh r0, [r6, 0x4]
- movs r1, 0
- strh r0, [r5, 0x24]
- movs r0, 0x3
- strh r0, [r5, 0x26]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x30]
- ldrb r0, [r6, 0x8]
- adds r2, r5, 0
- adds r2, 0x32
- strb r0, [r2]
- ldr r0, [r6]
- str r0, [r5, 0x28]
- str r0, [r5, 0x2C]
- str r1, [r5, 0x34]
- str r1, [r5, 0x38]
- ldr r0, [r5]
- ldr r2, [r0, 0x14]
- cmp r2, 0
- beq _0809D8B6
- ldr r0, [r5, 0x4]
- adds r1, r5, 0
- adds r1, 0x4A
- bl _call_via_r2
-_0809D8B6:
- movs r0, 0x1
-_0809D8B8:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GroundScript_ExecutePP
-
- thumb_func_start sub_809D8C0
-sub_809D8C0:
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r3, 0
- lsls r2, 16
- asrs r2, 16
- mov r1, sp
- bl sub_809D6E4
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- adds r3, r6, 0
- bl GroundScript_ExecutePP
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809D8C0
-
- thumb_func_start sub_809D8EC
-sub_809D8EC:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- asrs r5, r1, 16
- cmp r5, 0
- bne _0809D910
- bl sub_809A750
- lsls r0, 24
- cmp r0, 0
- bne _0809D910
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A2460
- str r0, [r4, 0x28]
- movs r0, 0
- b _0809D922
-_0809D910:
- adds r0, r4, 0
- adds r0, 0x46
- strh r5, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x26]
- ldr r1, _0809D928
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
-_0809D922:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D928: .4byte gUnknown_2039A36
- thumb_func_end sub_809D8EC
-
- thumb_func_start sub_809D92C
-sub_809D92C:
- push {lr}
- ldr r1, _0809D93C
- bl sub_809D770
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0809D93C: .4byte gUnknown_81165C8
- thumb_func_end sub_809D92C
-
- thumb_func_start sub_809D940
-sub_809D940:
- push {r4,lr}
- bl sub_80A8B74
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80AC378
- orrs r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80AD290
- orrs r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D940
-
- thumb_func_start sub_809D968
-sub_809D968:
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 16
- asrs r6, r1, 16
- movs r4, 0
- adds r2, r5, 0
- adds r2, 0x46
- ldrh r1, [r2]
- movs r0, 0
- ldrsh r3, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- beq _0809D98E
- cmp r3, r6
- bne _0809D98E
- ldr r0, _0809D9B4
- strh r0, [r2]
- movs r4, 0x1
-_0809D98E:
- adds r2, r5, 0
- adds r2, 0xA6
- ldrh r1, [r2]
- movs r0, 0
- ldrsh r3, [r2, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- beq _0809D9AA
- cmp r3, r6
- bne _0809D9AA
- ldr r0, _0809D9B4
- strh r0, [r2]
- movs r4, 0x1
-_0809D9AA:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D9B4: .4byte 0x0000ffff
- thumb_func_end sub_809D968
-
- thumb_func_start sub_809D9B8
-sub_809D9B8:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0809D9D4
- adds r1, r0, r1
- movs r3, 0
- movs r2, 0x1
- strb r2, [r1]
- ldr r1, _0809D9D8
- lsls r0, 2
- adds r0, r1
- str r3, [r0]
- ldr r0, _0809D9DC
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0809D9D4: .4byte gUnknown_2039A38
-_0809D9D8: .4byte gUnknown_2039B48
-_0809D9DC: .4byte gUnknown_2039A36
- thumb_func_end sub_809D9B8
-
- thumb_func_start sub_809D9E0
-sub_809D9E0:
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0809D9FC
- adds r2, r0, r2
- movs r3, 0x1
- strb r3, [r2]
- ldr r2, _0809DA00
- lsls r0, 2
- adds r0, r2
- str r1, [r0]
- ldr r0, _0809DA04
- strb r3, [r0]
- bx lr
- .align 2, 0
-_0809D9FC: .4byte gUnknown_2039A38
-_0809DA00: .4byte gUnknown_2039B48
-_0809DA04: .4byte gUnknown_2039A36
- thumb_func_end sub_809D9E0
-
- thumb_func_start sub_809DA08
-sub_809DA08:
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- asrs r4, r1, 16
- ldr r1, _0809DA2C
- lsls r0, r4, 2
- adds r0, r1
- str r2, [r0]
- cmp r4, 0
- bne _0809DA38
- bl sub_809A750
- lsls r0, 24
- cmp r0, 0
- bne _0809DA30
- movs r0, 0
- b _0809DA5E
- .align 2, 0
-_0809DA2C: .4byte gUnknown_2039B48
-_0809DA30:
- adds r0, r5, 0
- adds r0, 0x46
- strh r4, [r0]
- b _0809DA52
-_0809DA38:
- movs r1, 0x80
- adds r2, r5, 0
- adds r2, 0x46
- adds r0, r4, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0809DA64
- adds r0, r4, r0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0809DA68
- adds r0, r4, r0
- strb r1, [r0]
-_0809DA52:
- movs r0, 0x2
- strh r0, [r5, 0x26]
- ldr r1, _0809DA6C
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
-_0809DA5E:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809DA64: .4byte gUnknown_2039A38
-_0809DA68: .4byte gUnknown_2039AC0
-_0809DA6C: .4byte gUnknown_2039A36
- thumb_func_end sub_809DA08
-
- thumb_func_start HandleAction
-HandleAction:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x148
- adds r7, r0, 0
- movs r1, 0x26
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0809DA8A
- bl _0809EAB8
-_0809DA8A:
- movs r2, 0x26
- ldrsh r0, [r7, r2]
- cmp r0, 0x4
- bls _0809DA96
- bl _0809E9CC
-_0809DA96:
- lsls r0, 2
- ldr r1, _0809DAA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DAA0: .4byte _0809DAA4
- .align 2, 0
-_0809DAA4:
- .4byte _0809E9C6
- .4byte _0809E9C6
- .4byte _0809DAB8
- .4byte _0809E900
- .4byte _0809E9C6
-_0809DAB8:
- adds r1, r7, 0
- adds r1, 0x44
- ldrb r0, [r1]
- subs r0, 0x3
- adds r6, r1, 0
- cmp r0, 0xED
- bls _0809DACA
- bl _0809E9D6
-_0809DACA:
- lsls r0, 2
- ldr r1, _0809DAD4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DAD4: .4byte _0809DAD8
- .align 2, 0
-_0809DAD8:
- .4byte _0809E382
- .4byte _0809E3C4
- .4byte _0809E524
- .4byte _0809E464
- .4byte _0809E4B4
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809DED6
- .4byte _0809DED6
- .4byte _0809DED6
- .4byte _0809DED6
- .4byte _0809DED6
- .4byte _0809DED6
- .4byte _0809DED6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E308
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E308
- .4byte _0809E31C
- .4byte _0809E75C
- .4byte _0809E33C
- .4byte _0809E368
- .4byte _0809E658
- .4byte _0809E6B4
- .4byte _0809E6E8
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809E9D6
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809E9D6
- .4byte _0809DE90
- .4byte _0809DF60
- .4byte _0809DF60
- .4byte _0809DF60
- .4byte _0809DF60
- .4byte _0809DF60
- .4byte _0809DF60
- .4byte _0809DF60
- .4byte _0809E0A2
- .4byte _0809DFDC
- .4byte _0809DFDC
- .4byte _0809DFDC
- .4byte _0809DFDC
- .4byte _0809DFDC
- .4byte _0809DFDC
- .4byte _0809DFDC
- .4byte _0809E0A2
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E078
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E08C
- .4byte _0809E0E8
- .4byte _0809E0E8
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809E146
- .4byte _0809E146
- .4byte _0809E146
- .4byte _0809E146
- .4byte _0809E146
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809E9D6
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E2D0
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E798
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E864
- .4byte _0809E864
- .4byte _0809E864
- .4byte _0809E864
- .4byte _0809E864
- .4byte _0809E864
- .4byte _0809E864
- .4byte _0809E9D6
- .4byte _0809E8D8
- .4byte _0809DE90
- .4byte _0809DE90
- .4byte _0809DEA6
- .4byte _0809DEBE
- .4byte _0809DED6
- .4byte _0809DEE8
- .4byte _0809DF24
- .4byte _0809DF24
- .4byte _0809E2DE
- .4byte _0809E9D6
- .4byte _0809E2DE
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
- .4byte _0809E9D6
-_0809DE90:
- adds r1, r7, 0
- adds r1, 0x4E
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _0809DEA2
- bl _0809EAB2
-_0809DEA2:
- bl _0809E8F4
-_0809DEA6:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r1, [r1, 0x4C]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0809DEBA
- bl _0809E9D6
-_0809DEBA:
- bl _0809E8F4
-_0809DEBE:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r1, [r1, 0x50]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0809DED2
- bl _0809E9D6
-_0809DED2:
- bl _0809E8F4
-_0809DED6:
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- beq _0809DEE4
- bl _0809E9D6
-_0809DEE4:
- bl _0809E8F4
-_0809DEE8:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r0]
- str r0, [r1]
- add r0, sp, 0x4
- ldrh r0, [r0, 0x2]
- bl sub_8011940
- lsls r0, 24
- cmp r0, 0
- bne _0809DF06
- bl _0809E8F4
-_0809DF06:
- adds r2, r7, 0
- adds r2, 0x50
- ldrh r1, [r2]
- adds r0, r1, 0x1
- strh r0, [r2]
- lsls r1, 16
- ldr r0, _0809DF20
- cmp r1, r0
- bgt _0809DF1C
- bl _0809E9D6
-_0809DF1C:
- bl _0809E8F4
- .align 2, 0
-_0809DF20: .4byte 0x2a2f0000
-_0809DF24:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- add r0, sp, 0x4
- ldrh r0, [r0, 0x2]
- bl sub_80119C0
- lsls r0, 24
- cmp r0, 0
- bne _0809DF42
- bl _0809E8F4
-_0809DF42:
- adds r2, r7, 0
- adds r2, 0x50
- ldrh r1, [r2]
- adds r0, r1, 0x1
- strh r0, [r2]
- lsls r1, 16
- ldr r0, _0809DF5C
- cmp r1, r0
- bgt _0809DF58
- bl _0809E9D6
-_0809DF58:
- bl _0809E8F4
- .align 2, 0
-_0809DF5C: .4byte 0x0e0f0000
-_0809DF60:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r5, sp, 0xA4
- ldr r2, [r1, 0xC]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r1, [r7, 0x60]
- ldr r0, [r5]
- subs r1, r0
- add r4, sp, 0xAC
- str r1, [r4]
- ldr r0, [r7, 0x64]
- ldr r1, [r5, 0x4]
- subs r0, r1
- str r0, [r4, 0x4]
- ldr r1, [r7, 0x54]
- adds r0, r4, 0
- bl sub_800290C
- ldr r0, [r4]
- cmp r0, 0
- bne _0809DF98
- ldr r0, [r4, 0x4]
- cmp r0, 0
- bne _0809DF98
- bl _0809E8F4
-_0809DF98:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r1, 0x48]
- adds r1, r4, 0
- bl _call_via_r2
- movs r1, 0x9
- ands r1, r0
- cmp r1, 0
- beq _0809DFB0
- bl _0809E8F4
-_0809DFB0:
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- movs r1, 0x80
- lsls r1, 5
- ldr r2, [r2, 0x30]
- bl _call_via_r2
- adds r2, r7, 0
- adds r2, 0x4E
- ldrh r0, [r2]
- movs r5, 0
- ldrsh r1, [r2, r5]
- cmp r1, 0
- bge _0809DFD0
- bl _0809E9D6
-_0809DFD0:
- cmp r1, 0
- ble _0809DFD8
- bl _0809EAAC
-_0809DFD8:
- bl _0809E8F4
-_0809DFDC:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r5, sp, 0xB4
- ldr r2, [r1, 0xC]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r1, [r7, 0x60]
- ldr r0, [r5]
- subs r1, r0
- add r4, sp, 0xBC
- str r1, [r4]
- ldr r0, [r7, 0x64]
- ldr r1, [r5, 0x4]
- subs r0, r1
- str r0, [r4, 0x4]
- ldr r1, [r7, 0x54]
- adds r0, r4, 0
- bl sub_800290C
- ldr r0, [r4]
- adds r5, r4, 0
- cmp r0, 0
- bne _0809E016
- ldr r0, [r5, 0x4]
- cmp r0, 0
- bne _0809E016
- bl _0809E8F4
-_0809E016:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r1, 0x48]
- adds r1, r5, 0
- bl _call_via_r2
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_8002C60
- lsls r0, 24
- adds r2, r7, 0
- adds r2, 0x4A
- asrs r1, r0, 24
- lsrs r0, 24
- strb r0, [r2]
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
- movs r0, 0x9
- ands r0, r4
- cmp r0, 0
- beq _0809E04C
- bl _0809E8F4
-_0809E04C:
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- movs r1, 0x80
- lsls r1, 5
- ldr r2, [r2, 0x30]
- bl _call_via_r2
- adds r2, r7, 0
- adds r2, 0x4E
- ldrh r0, [r2]
- movs r6, 0
- ldrsh r1, [r2, r6]
- cmp r1, 0
- bge _0809E06C
- bl _0809E9D6
-_0809E06C:
- cmp r1, 0
- ble _0809E074
- bl _0809EAAC
-_0809E074:
- bl _0809E8F4
-_0809E078:
- adds r6, r7, 0
- adds r6, 0x4E
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- ble _0809E088
- bl _0809EA62
-_0809E088:
- bl _0809E8F4
-_0809E08C:
- movs r2, 0x4E
- adds r2, r7
- mov r8, r2
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _0809E09E
- bl _0809E9DA
-_0809E09E:
- bl _0809E8F4
-_0809E0A2:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r4, sp, 0xE4
- add r2, sp, 0xE8
- ldr r3, [r1, 0x10]
- adds r1, r4, 0
- bl _call_via_r3
- ldr r0, [r7, 0x6C]
- ldr r1, [r4]
- subs r0, r1
- adds r2, r4, 0
- cmp r0, 0
- bne _0809E0C2
- bl _0809E8F4
-_0809E0C2:
- ldr r4, [r7, 0x54]
- cmn r0, r4
- bge _0809E0CC
- subs r0, r1, r4
- b _0809E0D4
-_0809E0CC:
- cmp r0, r4
- ble _0809E0D2
- adds r0, r4, 0
-_0809E0D2:
- adds r0, r1, r0
-_0809E0D4:
- str r0, [r2]
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- add r1, sp, 0xE4
- ldr r1, [r1]
- ldr r2, [r2, 0x28]
- bl _call_via_r2
- bl _0809E9D6
-_0809E0E8:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r4, sp, 0x14
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- movs r1, 0
- ldrsb r1, [r4, r1]
- ldr r2, [r7, 0x54]
- add r4, sp, 0xEC
- adds r0, r4, 0
- bl sub_8002BB8
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- add r1, sp, 0xF4
- str r2, [r1]
- str r3, [r1, 0x4]
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r2, 0x48]
- bl _call_via_r2
- movs r1, 0x9
- ands r1, r0
- cmp r1, 0
- beq _0809E124
- bl _0809E8F4
-_0809E124:
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- movs r1, 0x80
- lsls r1, 5
- ldr r2, [r2, 0x30]
- bl _call_via_r2
- adds r1, r7, 0
- adds r1, 0x4E
- ldrh r2, [r1]
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, 0
- ble _0809E144
- bl _0809EAB2
-_0809E144:
- b _0809E8F4
-_0809E146:
- adds r1, r7, 0
- adds r1, 0x4E
- ldrh r2, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- mov r10, r1
- cmp r0, 0
- ble _0809E15A
- bl _0809EAB2
-_0809E15A:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
- movs r4, 0x1
- negs r4, r4
- mov r8, r4
- movs r5, 0
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- mov r4, sp
- adds r4, 0x15
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- add r0, sp, 0x4
- ldrb r0, [r0]
- subs r0, 0x91
- mov r9, r4
- cmp r0, 0x4
- bhi _0809E234
- lsls r0, 2
- ldr r1, _0809E194
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809E194: .4byte _0809E198
- .align 2, 0
-_0809E198:
- .4byte _0809E1AC
- .4byte _0809E1AC
- .4byte _0809E1BA
- .4byte _0809E1E0
- .4byte _0809E20C
-_0809E1AC:
- adds r0, r7, 0
- adds r0, 0x71
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
- b _0809E234
-_0809E1BA:
- ldr r0, [sp, 0x8]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _0809E234
- movs r5, 0x1
- add r1, sp, 0xFC
- adds r0, r4, 0
- bl sub_80A8FD8
- add r1, sp, 0x104
- adds r0, r4, 0
- bl sub_80A8F9C
- b _0809E234
-_0809E1E0:
- ldr r0, [sp, 0x8]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- blt _0809E234
- movs r5, 0x1
- add r1, sp, 0xFC
- bl sub_80A8FD8
- ldr r0, _0809E208
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- add r2, sp, 0x104
- str r0, [r2]
- str r1, [r2, 0x4]
- b _0809E234
- .align 2, 0
-_0809E208: .4byte gUnknown_81164DC
-_0809E20C:
- movs r5, 0x1
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r4, sp, 0xFC
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- add r1, sp, 0x104
- ldr r2, [r2, 0x8]
- bl _call_via_r2
- ldr r0, [sp, 0x8]
- lsls r0, 16
- asrs r0, 16
- adds r1, r4, 0
- bl sub_80AD8B4
-_0809E234:
- cmp r5, 0
- beq _0809E282
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r5, sp, 0x10C
- ldr r2, [r1, 0xC]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r4, sp, 0x114
- ldr r2, [r1, 0x8]
- adds r1, r4, 0
- bl _call_via_r2
- add r6, sp, 0xFC
- add r3, sp, 0x104
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_8002DF0
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
- movs r0, 0x1
- negs r0, r0
- cmp r8, r0
- bne _0809E28C
- ldr r3, _0809E2CC
- adds r0, r5, 0
- adds r1, r3, 0
- adds r2, r6, 0
- bl sub_8002D54
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
-_0809E282:
- movs r0, 0x1
- negs r0, r0
- cmp r8, r0
- bne _0809E28C
- b _0809E8F4
-_0809E28C:
- mov r5, r9
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r8, r0
- bne _0809E298
- b _0809E8F4
-_0809E298:
- mov r6, r9
- movs r0, 0
- ldrsb r0, [r6, r0]
- add r1, sp, 0x4
- ldrh r2, [r1, 0x2]
- lsls r2, 24
- lsrs r2, 24
- mov r1, r8
- bl sub_8002A70
- adds r1, r7, 0
- adds r1, 0x4A
- strb r0, [r1]
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
- add r0, sp, 0x4
- ldrb r0, [r0, 0x1]
- mov r1, r10
- strh r0, [r1]
- b _0809E9CC
- .align 2, 0
-_0809E2CC: .4byte gUnknown_81164DC
-_0809E2D0:
- bl sub_809D234
- lsls r0, 24
- cmp r0, 0
- beq _0809E2DC
- b _0809E9D6
-_0809E2DC:
- b _0809E8F4
-_0809E2DE:
- adds r0, r7, 0
- adds r0, 0x46
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809E2F0
- b _0809E9D6
-_0809E2F0:
- ldr r1, _0809E304
- adds r0, r7, 0
- adds r0, 0x4C
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- b _0809E8EC
- .align 2, 0
-_0809E304: .4byte gUnknown_2039B48
-_0809E308:
- adds r0, r7, 0
- adds r0, 0x46
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809E31A
- b _0809E9D6
-_0809E31A:
- b _0809E8CA
-_0809E31C:
- adds r0, r7, 0
- adds r0, 0x46
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809E32E
- b _0809E9D6
-_0809E32E:
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- beq _0809E33A
- b _0809E9D6
-_0809E33A:
- b _0809E8CA
-_0809E33C:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
- add r0, sp, 0x4
- ldrb r1, [r0, 0x1]
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- ldr r3, [sp, 0x8]
- adds r0, r7, 0
- bl sub_80A14E8
- adds r1, r0, 0
- cmp r1, 0
- bge _0809E360
- b _0809E9D6
-_0809E360:
- movs r0, 0x3
- strh r0, [r7, 0x26]
- adds r0, r7, 0
- b _0809E60C
-_0809E368:
- add r0, sp, 0x11C
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E376
- b _0809E9D6
-_0809E376:
- add r0, sp, 0x11C
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80A2460
- b _0809E8C8
-_0809E382:
- add r0, sp, 0x120
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E390
- b _0809E9D6
-_0809E390:
- add r4, sp, 0x120
- ldr r0, [r4]
- cmp r0, 0
- blt _0809E3BA
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldr r0, [r0]
- str r0, [r1]
- ldrb r0, [r4]
- bl sub_8002694
- lsls r0, 16
- asrs r0, 16
- add r1, sp, 0x4
- movs r3, 0x2
- ldrsh r2, [r1, r3]
- movs r1, 0
- bl sub_8098D1C
-_0809E3BA:
- ldr r1, [r4]
- adds r0, r7, 0
- bl sub_80A2460
- b _0809E8C8
-_0809E3C4:
- adds r4, r7, 0
- adds r4, 0x4C
- movs r5, 0
- ldrsh r0, [r4, r5]
- cmp r0, 0
- bne _0809E40C
- add r0, sp, 0x124
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E3DE
- b _0809E9D6
-_0809E3DE:
- add r0, sp, 0x124
- ldr r0, [r0]
- cmp r0, 0
- blt _0809E400
- lsls r0, 16
- asrs r0, 16
- bl sub_80A26B8
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- movs r0, 0
- movs r1, 0x12
- bl sub_80018D8
- movs r0, 0x1
- b _0809E402
-_0809E400:
- ldr r0, _0809E408
-_0809E402:
- strh r0, [r4]
- b _0809E8CE
- .align 2, 0
-_0809E408: .4byte 0x0000ffff
-_0809E40C:
- cmp r0, 0x1
- bne _0809E464
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- movs r1, 0x12
- bl sub_8001658
- adds r2, r0, 0
- lsls r2, 16
- asrs r4, r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x30
- bl sub_8001784
- cmp r4, 0x13
- bne _0809E43C
- cmp r0, 0
- beq _0809E45A
-_0809E43C:
- add r0, sp, 0x4
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- bl sub_8098DCC
- adds r0, r7, 0
- movs r1, 0
- bl sub_80A2460
- str r0, [r7, 0x28]
- movs r0, 0
- movs r1, 0
- bl sub_80A87AC
- b _0809E8F4
-_0809E45A:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x13
- bl sub_80018D8
-_0809E464:
- adds r0, r7, 0
- adds r0, 0x4C
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r5, r0, 0
- cmp r1, 0
- bne _0809E4B4
- add r0, sp, 0x128
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E480
- b _0809E9D6
-_0809E480:
- add r0, sp, 0x128
- ldr r1, [r0]
- cmp r1, 0
- blt _0809E4AA
- ldrb r0, [r6]
- cmp r0, 0x4
- bne _0809E49A
- lsls r0, r1, 16
- asrs r0, 16
- bl sub_80A26B8
- lsls r0, 16
- b _0809E49C
-_0809E49A:
- lsls r0, r1, 16
-_0809E49C:
- asrs r2, r0, 16
- movs r0, 0
- movs r1, 0x13
- bl sub_80018D8
- movs r0, 0x1
- b _0809E4AC
-_0809E4AA:
- ldr r0, _0809E4B0
-_0809E4AC:
- strh r0, [r5]
- b _0809E8CE
- .align 2, 0
-_0809E4B0: .4byte 0x0000ffff
-_0809E4B4:
- adds r0, r7, 0
- adds r0, 0x4C
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0x1
- beq _0809E4C4
- b _0809E5B8
-_0809E4C4:
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r6, r0, 16
- add r4, sp, 0x18
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80990EC
- lsls r0, 24
- cmp r0, 0
- beq _0809E580
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8099220
- movs r0, 0x6
- bl sub_80023E4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- ldr r4, _0809E51C
- ldr r2, [r4]
- movs r1, 0
- str r1, [sp]
- bl sub_809034C
- adds r1, r0, 0
- ldr r0, _0809E520
- str r1, [r0]
- cmp r1, 0x1
- beq _0809E586
- cmp r1, 0x1
- bcc _0809E580
- cmp r1, 0x2
- bne _0809E5AE
- strh r1, [r5]
- ldr r2, [r4]
- movs r0, 0x9
- b _0809E58E
- .align 2, 0
-_0809E51C: .4byte gUnknown_203B4B0
-_0809E520: .4byte gUnknown_2039DA4
-_0809E524:
- adds r0, r7, 0
- adds r0, 0x4C
- movs r4, 0
- ldrsh r6, [r0, r4]
- adds r5, r0, 0
- cmp r6, 0x1
- bne _0809E5B8
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- adds r4, r0, 0
- movs r0, 0x6
- bl sub_80023E4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4, 0x4]
- ldr r4, _0809E578
- ldr r2, [r4]
- str r6, [sp]
- movs r1, 0
- bl sub_809034C
- adds r1, r0, 0
- ldr r0, _0809E57C
- str r1, [r0]
- cmp r1, 0x1
- beq _0809E586
- cmp r1, 0x1
- bcc _0809E580
- cmp r1, 0x2
- bne _0809E5AE
- strh r1, [r5]
- ldr r2, [r4]
- movs r0, 0x9
- b _0809E58E
- .align 2, 0
-_0809E578: .4byte gUnknown_203B4B0
-_0809E57C: .4byte gUnknown_2039DA4
-_0809E580:
- movs r0, 0x3
- strh r0, [r5]
- b _0809E9CC
-_0809E586:
- movs r0, 0x4
- strh r0, [r5]
- ldr r2, [r4]
- movs r0, 0xA
-_0809E58E:
- movs r1, 0x1
- bl sub_809B1C0
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_809D8EC
- lsls r0, 24
- cmp r0, 0
- bne _0809E5A4
- b _0809E9CC
-_0809E5A4:
- movs r0, 0
- movs r1, 0xB
- bl sub_80A87AC
- b _0809E9CC
-_0809E5AE:
- ldr r0, _0809E5B4
- strh r0, [r5]
- b _0809E9CC
- .align 2, 0
-_0809E5B4: .4byte 0x0000ffff
-_0809E5B8:
- movs r6, 0
- ldrsh r2, [r5, r6]
- cmp r2, 0x2
- bne _0809E5DA
- add r0, sp, 0x12C
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E5CE
- b _0809E9D6
-_0809E5CE:
- add r0, sp, 0x12C
- ldr r0, [r0]
- cmp r0, 0
- beq _0809E626
- movs r0, 0x3
- b _0809E628
-_0809E5DA:
- cmp r2, 0x3
- bne _0809E614
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- strh r2, [r7, 0x26]
- add r0, sp, 0x4
- movs r6, 0x2
- ldrsh r0, [r0, r6]
- bl sub_80999FC
- movs r0, 0x70
- movs r1, 0
- bl GroundMap_ExecuteEvent
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0809E608
- b _0809E9CC
-_0809E608:
- adds r0, r7, 0
- movs r1, 0x1
-_0809E60C:
- bl sub_80A2460
- str r0, [r7, 0x28]
- b _0809E9CC
-_0809E614:
- cmp r2, 0x4
- bne _0809E63C
- add r0, sp, 0x130
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E626
- b _0809E9D6
-_0809E626:
- ldr r0, _0809E638
-_0809E628:
- strh r0, [r5]
- movs r0, 0
- movs r1, 0
- bl sub_80A87AC
- bl sub_809A76C
- b _0809E9CC
- .align 2, 0
-_0809E638: .4byte 0x0000ffff
-_0809E63C:
- movs r0, 0
- movs r1, 0
- bl sub_8099220
- movs r4, 0x1
- negs r4, r4
- movs r0, 0
- movs r1, 0x13
- adds r2, r4, 0
- bl sub_80018D8
- adds r0, r7, 0
- adds r1, r4, 0
- b _0809E8EE
-_0809E658:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- add r0, sp, 0x134
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E672
- b _0809E9D6
-_0809E672:
- add r0, sp, 0x134
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809E6A4
- ldr r0, [sp, 0x8]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809E6A4
- adds r0, r1, 0
- bl sub_80A8D54
- movs r2, 0
- adds r3, r0, 0
- adds r3, 0x4C
- ldr r4, _0809E6B0
-_0809E696:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _0809E696
-_0809E6A4:
- add r0, sp, 0x134
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80A2460
- b _0809E8C8
- .align 2, 0
-_0809E6B0: .4byte gUnknown_2039D98
-_0809E6B4:
- add r0, sp, 0x138
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E6C2
- b _0809E9D6
-_0809E6C2:
- add r4, sp, 0x138
- ldr r0, [r4]
- cmp r0, 0x1
- bne _0809E6D0
- ldr r0, _0809E6DC
- bl sub_80920EC
-_0809E6D0:
- ldr r1, [r4]
- adds r0, r7, 0
- bl sub_80A2460
- b _0809E8C8
- .align 2, 0
-_0809E6DC: .4byte gUnknown_2039D98
-_0809E6E0:
- movs r1, 0x2
- add r0, sp, 0x13C
- str r1, [r0]
- b _0809E74A
-_0809E6E8:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldr r0, [r0]
- str r0, [r1]
- ldr r5, [sp, 0x10]
- add r0, sp, 0x13C
- bl sub_809B260
- lsls r0, 24
- cmp r0, 0
- bne _0809E704
- b _0809E9D6
-_0809E704:
- add r0, sp, 0x13C
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0809E74A
- add r4, sp, 0x18
- ldr r0, _0809E758
- adds r3, r4, 0
- movs r2, 0
- mov r1, sp
- adds r1, 0x27
-_0809E718:
- strb r2, [r1]
- subs r1, 0x1
- cmp r1, r3
- bge _0809E718
- adds r1, r4, 0
- bl sub_80922F4
- movs r2, 0
- ldrb r0, [r4]
- ldrb r3, [r5]
- cmp r0, r3
- bne _0809E6E0
- cmp r0, 0
- beq _0809E74A
-_0809E734:
- adds r2, 0x1
- cmp r2, 0xF
- bgt _0809E74A
- adds r0, r4, r2
- adds r1, r5, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0809E6E0
- cmp r0, 0
- bne _0809E734
-_0809E74A:
- add r0, sp, 0x13C
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80A2460
- b _0809E8C8
- .align 2, 0
-_0809E758: .4byte gUnknown_2039D98
-_0809E75C:
- adds r2, r7, 0
- adds r2, 0x50
- ldrh r3, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bne _0809E76C
- b _0809E872
-_0809E76C:
- add r4, sp, 0xA0
- adds r0, r4, 0
- bl sub_809AFFC
- lsls r0, 24
- cmp r0, 0
- bne _0809E77C
- b _0809E9D6
-_0809E77C:
- ldrb r0, [r4]
- cmp r0, 0
- bne _0809E784
- b _0809E8CA
-_0809E784:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
- add r0, sp, 0x4
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- b _0809E8C2
-_0809E798:
- add r1, sp, 0x4
- ldr r0, [r7, 0x40]
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldr r0, [r0]
- str r0, [r1]
- adds r2, r7, 0
- adds r2, 0x50
- movs r3, 0
- ldrsh r0, [r2, r3]
- adds r4, r2, 0
- cmp r0, 0
- bne _0809E84C
- movs r3, 0
- adds r0, r7, 0
- adds r0, 0x4C
- movs r5, 0
- ldrsh r2, [r0, r5]
- adds r5, r0, 0
- cmp r2, 0
- bge _0809E7CC
- ldr r0, [r7, 0x28]
- ldrb r0, [r0]
- cmp r0, 0xD1
- beq _0809E812
- b _0809E8F4
-_0809E7CC:
- ldr r1, [r7, 0x28]
- ldrb r0, [r1]
- cmp r0, 0xD0
- bne _0809E7F8
- movs r6, 0x2
- ldrsh r0, [r1, r6]
- cmp r0, r2
- beq _0809E812
-_0809E7DC:
- ldr r0, [r7, 0x28]
- adds r1, r0, 0
- adds r1, 0x10
- str r1, [r7, 0x28]
- ldrb r0, [r0, 0x10]
- cmp r0, 0xD0
- bne _0809E7F8
- movs r0, 0x2
- ldrsh r1, [r1, r0]
- movs r2, 0
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _0809E7DC
- movs r3, 0x1
-_0809E7F8:
- cmp r3, 0
- bne _0809E812
- ldr r1, [r7, 0x28]
- ldrb r0, [r1]
- cmp r0, 0xD1
- bne _0809E8F4
-_0809E804:
- adds r0, r1, 0
- adds r1, 0x10
- str r1, [r7, 0x28]
- ldrb r0, [r0, 0x10]
- cmp r0, 0xD1
- beq _0809E804
- b _0809E8F4
-_0809E812:
- add r0, sp, 0x4
- ldrb r0, [r0, 0x1]
- ldr r1, [sp, 0x8]
- lsls r1, 16
- asrs r1, 16
- ldr r2, [r7, 0x28]
- ldr r2, [r2, 0xC]
- bl sub_809AE90
- lsls r0, 24
- cmp r0, 0
- beq _0809E844
- movs r0, 0
- movs r1, 0xA
- bl sub_80A87AC
- adds r0, r7, 0
- movs r1, 0
- bl sub_809D8EC
- lsls r0, 24
- cmp r0, 0
- beq _0809E844
- movs r0, 0x1
- strh r0, [r4]
-_0809E844:
- ldr r0, [r7, 0x28]
- adds r0, 0x10
- str r0, [r7, 0x28]
- b _0809E9CC
-_0809E84C:
- adds r0, r7, 0
- adds r0, 0x46
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809E85E
- b _0809E9D6
-_0809E85E:
- movs r0, 0
- strh r0, [r2]
- b _0809E8D0
-_0809E864:
- adds r2, r7, 0
- adds r2, 0x50
- ldrh r3, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bne _0809E88A
-_0809E872:
- adds r0, r7, 0
- adds r0, 0x46
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809E884
- b _0809E9D6
-_0809E884:
- adds r0, r3, 0x1
- strh r0, [r2]
- b _0809E9CC
-_0809E88A:
- add r0, sp, 0x140
- bl sub_809B18C
- lsls r0, 24
- cmp r0, 0
- bne _0809E898
- b _0809E9D6
-_0809E898:
- add r0, sp, 0x140
- ldr r3, [r0]
- cmp r3, 0
- ble _0809E8CA
- adds r0, r7, 0
- adds r0, 0x4C
- movs r6, 0
- ldrsh r2, [r0, r6]
- ldr r1, [r7, 0x40]
- lsls r0, r3, 4
- lsls r2, 4
- adds r2, r1
- add r1, sp, 0x4
- adds r0, r2
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- add r0, sp, 0x4
- movs r5, 0x2
- ldrsh r1, [r0, r5]
-_0809E8C2:
- adds r0, r7, 0
- bl sub_80A242C
-_0809E8C8:
- str r0, [r7, 0x28]
-_0809E8CA:
- movs r0, 0x3
- strh r0, [r7, 0x26]
-_0809E8CE:
- movs r0, 0
-_0809E8D0:
- movs r1, 0
- bl sub_80A87AC
- b _0809E9CC
-_0809E8D8:
- adds r0, r7, 0
- adds r0, 0x46
- movs r6, 0
- ldrsh r1, [r0, r6]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809E9D6
- ldr r0, _0809E8FC
- ldr r1, [r0, 0x4]
-_0809E8EC:
- adds r0, r7, 0
-_0809E8EE:
- bl sub_80A2460
- str r0, [r7, 0x28]
-_0809E8F4:
- movs r0, 0x3
- strh r0, [r7, 0x26]
- b _0809E9CC
- .align 2, 0
-_0809E8FC: .4byte gUnknown_2039B48
-_0809E900:
- adds r0, r7, 0
- bl ExecuteScriptCommand
- strh r0, [r7, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bhi _0809E9BC
- lsls r0, 2
- ldr r1, _0809E91C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809E91C: .4byte _0809E920
- .align 2, 0
-_0809E920:
- .4byte _0809E934
- .4byte _0809E9B8
- .4byte _0809E9BC
- .4byte _0809E9D6
- .4byte _0809E9B4
-_0809E934:
- adds r0, r7, 0
- adds r0, 0x86
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0809E9AA
- adds r4, r7, 0
- adds r4, 0x84
- adds r0, r7, 0
- adds r0, 0x24
- adds r1, r4, 0
- movs r2, 0x60
- bl memcpy
- ldr r2, [r7]
- ldr r0, [r2, 0x2C]
- cmp r0, 0
- beq _0809E98E
- adds r5, r7, 0
- adds r5, 0x4A
- movs r1, 0
- ldrsb r1, [r5, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809E98E
- ldr r0, [r7, 0x4]
- add r1, sp, 0x144
- ldr r2, [r2, 0x18]
- bl _call_via_r2
- add r0, sp, 0x144
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _0809E98E
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- movs r1, 0
- ldrsb r1, [r5, r1]
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
-_0809E98E:
- ldr r0, [r7]
- ldr r2, [r0, 0x30]
- cmp r2, 0
- beq _0809E9A2
- ldr r0, [r7, 0x4]
- adds r1, r7, 0
- adds r1, 0x48
- ldrh r1, [r1]
- bl _call_via_r2
-_0809E9A2:
- adds r0, r4, 0
- bl sub_809D568
- b _0809E9D6
-_0809E9AA:
- adds r0, r7, 0
- adds r0, 0x24
- bl sub_809D568
- b _0809E9D6
-_0809E9B4:
- movs r0, 0x4
- b _0809EABA
-_0809E9B8:
- movs r0, 0x1
- b _0809EABA
-_0809E9BC:
- adds r1, r7, 0
- adds r1, 0x50
- movs r0, 0
- strh r0, [r1]
- b _0809E9CC
-_0809E9C6:
- movs r2, 0x26
- ldrsh r0, [r7, r2]
- b _0809EABA
-_0809E9CC:
- movs r3, 0x1
- cmp r3, 0
- beq _0809E9D6
- bl _0809DA8A
-_0809E9D6:
- movs r0, 0x3
- b _0809EABA
-_0809E9DA:
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- add r4, sp, 0xCC
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- add r5, sp, 0xD4
- adds r1, r7, 0
- adds r1, 0x58
- adds r2, r7, 0
- adds r2, 0x60
- mov r6, r8
- movs r0, 0
- ldrsh r6, [r6, r0]
- mov r9, r6
- adds r6, r7, 0
- adds r6, 0x50
- movs r3, 0
- ldrsh r0, [r6, r3]
- str r0, [sp]
- adds r0, r5, 0
- mov r3, r9
- bl sub_8002934
- ldr r1, [r5]
- ldr r0, [r4]
- subs r1, r0
- add r0, sp, 0xDC
- str r1, [r0]
- ldr r1, [r5, 0x4]
- ldr r2, [r4, 0x4]
- subs r1, r2
- str r1, [r0, 0x4]
- bl sub_8002C60
- lsls r0, 24
- adds r2, r7, 0
- adds r2, 0x4A
- asrs r1, r0, 24
- lsrs r0, 24
- strb r0, [r2]
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- movs r1, 0x80
- lsls r1, 5
- ldr r2, [r2, 0x30]
- bl _call_via_r2
- mov r4, r8
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809E9D6
-_0809EA62:
- add r5, sp, 0xC4
- adds r1, r7, 0
- adds r1, 0x58
- adds r2, r7, 0
- adds r2, 0x60
- movs r3, 0
- ldrsh r0, [r6, r3]
- mov r8, r0
- adds r4, r7, 0
- adds r4, 0x50
- movs r3, 0
- ldrsh r0, [r4, r3]
- str r0, [sp]
- adds r0, r5, 0
- mov r3, r8
- bl sub_8002934
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- movs r1, 0x80
- lsls r1, 5
- ldr r2, [r2, 0x30]
- bl _call_via_r2
- ldrh r0, [r6]
- subs r0, 0x1
- strh r0, [r6]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0809E9D6
-_0809EAAC:
- subs r0, 0x1
- strh r0, [r2]
- b _0809E9D6
-_0809EAB2:
- subs r0, r2, 0x1
- strh r0, [r1]
- b _0809E9D6
-_0809EAB8:
- movs r0, 0
-_0809EABA:
- add sp, 0x148
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end HandleAction
-
- thumb_func_start ExecuteScriptCommand
-ExecuteScriptCommand:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1BC
- mov r9, r0
- movs r0, 0x24
- add r0, r9
- mov r10, r0
-_0809EAE0:
- mov r1, r10
- ldr r2, [r1, 0x4]
- str r2, [r1, 0x1C]
- add r1, sp, 0x8
- adds r0, r2, 0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- adds r2, 0x10
- mov r0, r10
- str r2, [r0, 0x4]
- add r0, sp, 0x8
- ldrb r0, [r0]
- mov r1, r10
- adds r1, 0x20
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- adds r2, r1, 0
- cmp r0, 0xF5
- bhi _0809EAE0
- lsls r0, 2
- ldr r1, _0809EB18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EB18: .4byte _0809EB1C
- .align 2, 0
-_0809EB1C:
- .4byte _0809EEF4
- .4byte _0809EF40
- .4byte _0809EFA2
- .4byte _0809EFD6
- .4byte _0809F064
- .4byte _0809F02A
- .4byte _0809F06C
- .4byte _0809F0D0
- .4byte _0809F0D0
- .4byte _0809F1FC
- .4byte _0809F2C8
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F2D6
- .4byte _0809F42A
- .4byte _0809F432
- .4byte _0809F43A
- .4byte _0809F442
- .4byte _0809F4FE
- .4byte _0809F5BE
- .4byte _0809F5AE
- .4byte _0809F5C6
- .4byte _0809F5C6
- .4byte _0809F660
- .4byte _0809F6EA
- .4byte _0809F786
- .4byte _0809F830
- .4byte _0809F842
- .4byte _0809F854
- .4byte _0809F872
- .4byte _0809F884
- .4byte _0809F896
- .4byte _0809F896
- .4byte _0809F8E8
- .4byte _0809F8F4
- .4byte _0809F900
- .4byte _0809F90C
- .4byte _0809F93E
- .4byte _0809FAF8
- .4byte _0809FB10
- .4byte _0809F92E
- .4byte _0809F936
- .4byte _0809FB28
- .4byte _0809FB28
- .4byte _0809FB28
- .4byte _0809FB28
- .4byte _0809FB28
- .4byte _0809FB28
- .4byte _0809FB28
- .4byte _0809FBDA
- .4byte _0809FC12
- .4byte _0809FC40
- .4byte _0809FC2E
- .4byte _0809FC46
- .4byte _0809FCA4
- .4byte _0809FCC4
- .4byte _0809EAE0
- .4byte _080A0E3A
- .4byte _0809FCE8
- .4byte _0809FCF0
- .4byte _0809FD0A
- .4byte _0809FD38
- .4byte _0809FD6C
- .4byte _0809FDA0
- .4byte _0809FDA8
- .4byte _0809FDC2
- .4byte _0809FDD4
- .4byte _0809FDE2
- .4byte _0809FDC2
- .4byte _0809FDD4
- .4byte _0809FDE2
- .4byte _0809FE04
- .4byte _0809FE28
- .4byte _0809FE86
- .4byte _0809FEBE
- .4byte _0809FED0
- .4byte _0809FF00
- .4byte _0809FF32
- .4byte _0809FF46
- .4byte _0809FF62
- .4byte _0809FF78
- .4byte _0809FF9A
- .4byte _0809FFBA
- .4byte _0809FFE4
- .4byte _080A0010
- .4byte _080A0064
- .4byte _080A0096
- .4byte _080A010E
- .4byte _080A0186
- .4byte _080A0198
- .4byte _080A01B8
- .4byte _080A01F0
- .4byte _080A0220
- .4byte _080A0250
- .4byte _080A0282
- .4byte _080A0282
- .4byte _080A0560
- .4byte _080A0198
- .4byte _080A01B8
- .4byte _080A01F0
- .4byte _080A0220
- .4byte _080A0250
- .4byte _080A0282
- .4byte _080A0282
- .4byte _080A0560
- .4byte _080A02B2
- .4byte _080A0310
- .4byte _080A0370
- .4byte _080A03F8
- .4byte _080A0462
- .4byte _080A04F2
- .4byte _080A02B2
- .4byte _080A0310
- .4byte _080A0370
- .4byte _080A03F8
- .4byte _080A0462
- .4byte _080A04F2
- .4byte _080A02B2
- .4byte _080A0310
- .4byte _080A0370
- .4byte _080A03F8
- .4byte _080A0462
- .4byte _080A04F2
- .4byte _080A02B2
- .4byte _080A0310
- .4byte _080A0370
- .4byte _080A03F8
- .4byte _080A0462
- .4byte _080A04F2
- .4byte _080A057C
- .4byte _080A05A4
- .4byte _080A05F0
- .4byte _080A060E
- .4byte _080A065C
- .4byte _080A068A
- .4byte _080A068A
- .4byte _080A068A
- .4byte _080A07CA
- .4byte _080A07DC
- .4byte _080A07C4
- .4byte _080A07C4
- .4byte _080A07C4
- .4byte _0809EAE0
- .4byte _080A080C
- .4byte _080A081E
- .4byte _080A086A
- .4byte _080A08BE
- .4byte _080A08CA
- .4byte _080A091E
- .4byte _080A0986
- .4byte _080A0998
- .4byte _080A09EA
- .4byte _080A0A52
- .4byte _080A0A64
- .4byte _080A0AB6
- .4byte _080A0B1E
- .4byte _080A0B30
- .4byte _080A0B42
- .4byte _080A0B54
- .4byte _080A0B6C
- .4byte _080A0B88
- .4byte _080A0BA2
- .4byte _080A0BB4
- .4byte _080A0BDA
- .4byte _080A0BF6
- .4byte _080A0C08
- .4byte _080A0C20
- .4byte _080A0C38
- .4byte _080A0C50
- .4byte _080A0C68
- .4byte _080A0C80
- .4byte _080A0C90
- .4byte _080A0CA2
- .4byte _080A0CC8
- .4byte _080A0CF2
- .4byte _080A0D16
- .4byte _080A0D40
- .4byte _080A0D6A
- .4byte _080A0D7A
- .4byte _080A0D94
- .4byte _080A0DAE
- .4byte _080A0DD6
- .4byte _080A0E08
- .4byte _080A0DE2
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _080A0E56
- .4byte _0809EAE0
- .4byte _0809EAE0
- .4byte _0809EAE0
- .4byte _080A10A0
- .4byte _0809EAE0
- .4byte _0809EAE0
- .4byte _080A10F8
- .4byte _080A10F8
- .4byte _080A10F8
- .4byte _080A10F8
- .4byte _080A10F8
- .4byte _080A10F8
- .4byte _080A10F8
- .4byte _0809EAE0
- .4byte _080A129E
- .4byte _080A12A8
- .4byte _080A12B4
- .4byte _0809F0C4
- .4byte _0809F0C4
- .4byte _0809F0C4
- .4byte _0809F0C4
- .4byte _0809F0C4
- .4byte _0809F0C4
- .4byte _080A12D0
- .4byte _080A12E6
- .4byte _080A12F4
- .4byte _080A1318
- .4byte _080A1324
- .4byte _080A1338
- .4byte _080A1344
- .4byte _080A1368
- .4byte _080A1374
- .4byte _080A13CA
- .4byte _080A13F8
- .4byte _080A1404
- .4byte _080A140C
- .4byte _080A1428
- .4byte _080A142C
- .4byte _0809EAE0
- .4byte _0809EAE0
- .4byte _0809EAE0
- .4byte _0809EAE0
- .4byte _0809EAE0
-_0809EEF4:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- adds r6, r4, 0
- add r0, sp, 0x8
- ldrb r5, [r0, 0x1]
- movs r0, 0x1
- bl sub_8011BA4
- lsls r0, 24
- cmp r0, 0
- beq _0809EF26
- ldr r1, _0809EF38
- ldr r2, _0809EF3C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r3, [r0]
- str r5, [sp]
- movs r0, 0x1
- adds r2, r4, 0
- bl Log
-_0809EF26:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r2, [r0, r1]
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8098D1C
- b _0809EAE0
- .align 2, 0
-_0809EF38: .4byte gUnknown_81165D4
-_0809EF3C: .4byte gUnknown_811BAF4
-_0809EF40:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- movs r5, 0x1
- negs r5, r5
- cmp r4, r5
- bne _0809EF5A
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r4, r0, 16
-_0809EF5A:
- movs r0, 0x1
- bl sub_8011BA4
- lsls r0, 24
- cmp r0, 0
- beq _0809EF70
- ldr r1, _0809EF90
- movs r0, 0x1
- adds r2, r4, 0
- bl Log
-_0809EF70:
- cmp r4, r5
- beq _0809EF94
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r0, r4, 0
- bl sub_8098E18
- mov r0, r9
- movs r1, 0x1
- bl sub_80A2460
- mov r3, r9
- str r0, [r3, 0x28]
- b _0809EAE0
- .align 2, 0
-_0809EF90: .4byte gUnknown_81165F4
-_0809EF94:
- mov r0, r9
- movs r1, 0
- bl sub_80A2460
- mov r4, r9
- str r0, [r4, 0x28]
- b _0809EAE0
-_0809EFA2:
- ldr r0, [sp, 0xC]
- bl sub_8021700
- lsls r0, 24
- cmp r0, 0
- beq _0809EFBE
- movs r1, 0x1
- negs r1, r1
- mov r0, r9
- bl sub_80A2460
- mov r5, r9
- str r0, [r5, 0x28]
- b _0809EAE0
-_0809EFBE:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- bl sub_8098D80
- mov r0, r9
- movs r1, 0
- bl sub_80A2460
- mov r2, r9
- str r0, [r2, 0x28]
- b _0809EAE0
-_0809EFD6:
- ldr r1, [sp, 0xC]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809F00C
- bl sub_802FCF0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0809F0BC
- movs r0, 0xC
- movs r1, 0
- movs r2, 0
- bl sub_809B1C0
- lsls r0, 24
- cmp r0, 0
- beq _0809F0BC
- movs r0, 0
- movs r1, 0xB
- bl sub_80A87AC
- mov r0, r9
- adds r0, 0x4C
- strh r4, [r0]
- b _0809F0C4
-_0809F00C:
- lsls r0, r1, 16
- asrs r0, 16
- bl sub_80A26B8
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- movs r0, 0
- movs r1, 0x12
- bl sub_80018D8
- mov r1, r9
- adds r1, 0x4C
- movs r0, 0x1
- b _0809F0C2
-_0809F02A:
- ldr r2, [sp, 0xC]
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- bne _0809F054
- movs r0, 0x24
- movs r1, 0
- movs r2, 0
- bl sub_809B1C0
- lsls r0, 24
- cmp r0, 0
- beq _0809F0BC
- movs r0, 0
- movs r1, 0xB
- bl sub_80A87AC
- mov r1, r9
- adds r1, 0x4C
- movs r0, 0
- b _0809F0C2
-_0809F054:
- movs r0, 0
- movs r1, 0x13
- bl sub_80018D8
- mov r1, r9
- adds r1, 0x4C
- movs r0, 0x1
- b _0809F0C2
-_0809F064:
- mov r1, r9
- adds r1, 0x4C
- movs r0, 0x1
- b _0809F0C2
-_0809F06C:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0809F088
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r4, r0, 16
- b _0809F092
-_0809F088:
- movs r0, 0
- movs r1, 0x13
- adds r2, r4, 0
- bl sub_80018D8
-_0809F092:
- movs r0, 0x1
- bl sub_8011BA4
- lsls r0, 24
- cmp r0, 0
- beq _0809F0A8
- ldr r1, _0809F0B8
- movs r0, 0x1
- adds r2, r4, 0
- bl Log
-_0809F0A8:
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809F0BC
- mov r1, r9
- adds r1, 0x4C
- movs r0, 0x1
- b _0809F0C2
- .align 2, 0
-_0809F0B8: .4byte gUnknown_811660C
-_0809F0BC:
- mov r1, r9
- adds r1, 0x4C
- ldr r0, _0809F0CC
-_0809F0C2:
- strh r0, [r1]
-_0809F0C4:
- movs r0, 0x2
- bl _080A142E
- .align 2, 0
-_0809F0CC: .4byte 0x0000ffff
-_0809F0D0:
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0809F130
- ldr r5, _0809F11C
- ldr r0, [sp, 0xC]
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A4D7C
- ldr r4, _0809F120
- strh r0, [r4]
- ldr r1, _0809F124
- strh r0, [r1]
- movs r0, 0x1
- bl sub_8011BA4
- lsls r0, 24
- cmp r0, 0
- beq _0809F16A
- ldr r1, _0809F128
- movs r3, 0
- ldrsh r2, [r5, r3]
- movs r5, 0
- ldrsh r3, [r4, r5]
- ldr r4, _0809F12C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- bl Log
- b _0809F16A
- .align 2, 0
-_0809F11C: .4byte gUnknown_2039A30
-_0809F120: .4byte gUnknown_2039A32
-_0809F124: .4byte gUnknown_2039A34
-_0809F128: .4byte gUnknown_8116628
-_0809F12C: .4byte gUnknown_811BAF4
-_0809F130:
- ldr r5, _0809F1E8
- ldr r4, _0809F1EC
- ldr r1, [sp, 0xC]
- strh r1, [r4]
- strh r1, [r5]
- ldr r0, _0809F1F0
- strh r1, [r0]
- movs r0, 0x1
- bl sub_8011BA4
- lsls r0, 24
- cmp r0, 0
- beq _0809F16A
- ldr r1, _0809F1F4
- movs r0, 0
- ldrsh r2, [r4, r0]
- movs r4, 0
- ldrsh r3, [r5, r4]
- ldr r4, _0809F1F8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- bl Log
-_0809F16A:
- ldr r5, _0809F1EC
- movs r0, 0
- ldrsh r2, [r5, r0]
- movs r0, 0
- movs r1, 0x10
- bl sub_80018D8
- ldr r6, _0809F1F8
- movs r2, 0
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- movs r0, 0
- movs r1, 0x11
- bl sub_80018D8
- ldr r4, _0809F1E8
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl GroundSprite_Reset
- bl sub_809D0BC
- bl sub_80AD9D0
- bl sub_80A786C
- bl sub_80ABB98
- bl sub_80ACBD4
- movs r2, 0
- ldrsh r0, [r5, r2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- bl sub_809C770
- movs r5, 0
- ldrsh r0, [r4, r5]
- bl GroundMap_Select
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl GroundLink_Select
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r1, 0
- movs r2, 0
- bl GroundLives_Select
- movs r3, 0
- ldrsh r0, [r4, r3]
- b _0809F2A0
- .align 2, 0
-_0809F1E8: .4byte gUnknown_2039A32
-_0809F1EC: .4byte gUnknown_2039A30
-_0809F1F0: .4byte gUnknown_2039A34
-_0809F1F4: .4byte gUnknown_8116644
-_0809F1F8: .4byte gUnknown_811BAF4
-_0809F1FC:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2608
- adds r6, r0, 0
- ldr r1, _0809F2AC
- ldr r5, _0809F2B0
- ldr r4, _0809F2B4
- ldr r0, [sp, 0x10]
- strh r0, [r4]
- strh r0, [r5]
- strh r0, [r1]
- movs r0, 0x1
- bl sub_8011BA4
- lsls r0, 24
- cmp r0, 0
- beq _0809F242
- ldr r1, _0809F2B8
- movs r0, 0
- ldrsh r2, [r4, r0]
- movs r4, 0
- ldrsh r3, [r5, r4]
- ldr r4, _0809F2BC
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- bl Log
-_0809F242:
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl GroundSprite_Reset
- bl sub_809D0BC
- bl sub_80AD9D0
- bl sub_80A786C
- bl sub_80ABB98
- bl sub_80ACBD4
- ldrb r2, [r6, 0xC]
- ldr r1, _0809F2C0
- ldr r0, [sp, 0x58]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x58]
- add r1, sp, 0x8
- ldrh r2, [r1, 0x2]
- lsls r2, 24
- lsrs r2, 16
- ldr r1, _0809F2C4
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x58]
- movs r2, 0
- ldrsh r0, [r5, r2]
- add r1, sp, 0x58
- add r2, sp, 0x8
- ldrb r2, [r2, 0x1]
- bl GroundMap_SelectDungeon
- movs r3, 0
- ldrsh r0, [r5, r3]
- bl GroundLink_Select
- movs r4, 0
- ldrsh r0, [r5, r4]
- movs r1, 0
- movs r2, 0
- bl GroundLives_Select
- movs r1, 0
- ldrsh r0, [r5, r1]
-_0809F2A0:
- movs r1, 0
- movs r2, 0
- bl GroundObject_Select
- b _0809EAE0
- .align 2, 0
-_0809F2AC: .4byte gUnknown_2039A34
-_0809F2B0: .4byte gUnknown_2039A32
-_0809F2B4: .4byte gUnknown_2039A30
-_0809F2B8: .4byte gUnknown_8116664
-_0809F2BC: .4byte gUnknown_811BAF4
-_0809F2C0: .4byte 0xffffff00
-_0809F2C4: .4byte 0xffff00ff
-_0809F2C8:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl GroundWeather_Select
- bl _0809EAE0
-_0809F2D6:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- blt _0809F2E8
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- b _0809F2EE
-_0809F2E8:
- mov r3, r10
- movs r4, 0xC
- ldrsh r0, [r3, r4]
-_0809F2EE:
- adds r6, r0, 0
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- cmp r0, 0
- blt _0809F302
- add r0, sp, 0x8
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- b _0809F308
-_0809F302:
- mov r5, r10
- movs r1, 0xE
- ldrsb r1, [r5, r1]
-_0809F308:
- adds r5, r1, 0
- add r0, sp, 0x8
- ldrb r0, [r0]
- subs r0, 0xC
- cmp r0, 0x9
- bls _0809F318
- bl _0809EAE0
-_0809F318:
- lsls r0, 2
- ldr r1, _0809F324
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809F324: .4byte _0809F328
- .align 2, 0
-_0809F328:
- .4byte _0809F350
- .4byte _0809F380
- .4byte _0809F398
- .4byte _0809F3B0
- .4byte _0809F3C8
- .4byte _0809F3E0
- .4byte _0809F3FA
- .4byte _0809F406
- .4byte _0809F412
- .4byte _0809F41E
-_0809F350:
- ldr r4, _0809F37C
- movs r1, 0
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundLives_Select
- movs r2, 0
- ldrsh r0, [r4, r2]
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundObject_Select
- movs r3, 0
- ldrsh r0, [r4, r3]
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundEffect_Select
- movs r1, 0
- ldrsh r0, [r4, r1]
- b _0809F3CE
- .align 2, 0
-_0809F37C: .4byte gUnknown_2039A32
-_0809F380:
- ldr r0, _0809F394
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundLives_Select
- bl _0809EAE0
- .align 2, 0
-_0809F394: .4byte gUnknown_2039A32
-_0809F398:
- ldr r0, _0809F3AC
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundObject_Select
- bl _0809EAE0
- .align 2, 0
-_0809F3AC: .4byte gUnknown_2039A32
-_0809F3B0:
- ldr r0, _0809F3C4
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundEffect_Select
- bl _0809EAE0
- .align 2, 0
-_0809F3C4: .4byte gUnknown_2039A32
-_0809F3C8:
- ldr r0, _0809F3DC
- movs r1, 0
- ldrsh r0, [r0, r1]
-_0809F3CE:
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundEvent_Select
- bl _0809EAE0
- .align 2, 0
-_0809F3DC: .4byte gUnknown_2039A32
-_0809F3E0:
- adds r0, r6, 0
- adds r1, r5, 0
- bl GroundLives_Cancel
- adds r0, r6, 0
- adds r1, r5, 0
- bl GroundObject_Cancel
- adds r0, r6, 0
- adds r1, r5, 0
- bl GroundEffect_Cancel
- b _0809F41E
-_0809F3FA:
- adds r0, r6, 0
- adds r1, r5, 0
- bl GroundLives_Cancel
- bl _0809EAE0
-_0809F406:
- adds r0, r6, 0
- adds r1, r5, 0
- bl GroundObject_Cancel
- bl _0809EAE0
-_0809F412:
- adds r0, r6, 0
- adds r1, r5, 0
- bl GroundEffect_Cancel
- bl _0809EAE0
-_0809F41E:
- adds r0, r6, 0
- adds r1, r5, 0
- bl GroundEvent_Cancel
- bl _0809EAE0
-_0809F42A:
- bl sub_80A79FC
- bl _0809EAE0
-_0809F432:
- bl GroundObject_CancelBlank
- bl _0809EAE0
-_0809F43A:
- bl GroundEffect_CancelBlank
- bl _0809EAE0
-_0809F442:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- add r4, sp, 0x18
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- add r6, sp, 0x1C
- ldr r0, [sp, 0x10]
- add r5, sp, 0x34
- movs r2, 0
- strb r0, [r5]
- ldrb r1, [r4]
- mov r0, sp
- adds r0, 0x35
- strb r1, [r0]
- adds r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- str r2, [sp, 0x38]
- add r4, sp, 0x3C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldr r2, _0809F4AC
- ldr r1, [sp, 0xC]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- str r0, [r4, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x18
- bl memcpy
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- adds r1, r6, 0
- cmp r0, 0
- blt _0809F4B0
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- b _0809F4B6
- .align 2, 0
-_0809F4AC: .4byte gUnknown_812F1F8
-_0809F4B0:
- mov r4, r10
- movs r5, 0xC
- ldrsh r2, [r4, r5]
-_0809F4B6:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- cmp r0, 0
- blt _0809F4C8
- add r0, sp, 0x8
- movs r3, 0x1
- ldrsb r3, [r0, r3]
- b _0809F4CE
-_0809F4C8:
- mov r0, r10
- movs r3, 0xE
- ldrsb r3, [r0, r3]
-_0809F4CE:
- movs r0, 0x1
- negs r0, r0
- bl GroundObject_Add
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0
- bge _0809F4E2
- bl _0809EAE0
-_0809F4E2:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- add r4, sp, 0x5C
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AC49C
- bl _0809EAE0
-_0809F4FE:
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r3, 0x4]
- add r4, sp, 0x4C
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- add r5, sp, 0x1C
- ldr r0, [sp, 0x10]
- add r1, sp, 0x28
- movs r3, 0
- strb r0, [r1]
- ldrb r2, [r4]
- mov r0, sp
- adds r0, 0x29
- strb r2, [r0]
- adds r0, 0x1
- movs r2, 0x1
- strb r2, [r0]
- adds r0, 0x1
- strb r2, [r0]
- str r3, [sp, 0x2C]
- ldr r3, _0809F55C
- ldr r2, [sp, 0xC]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, 0x8
- adds r0, r3
- ldr r0, [r0]
- str r0, [sp, 0x30]
- adds r0, r5, 0
- movs r2, 0xC
- bl memcpy
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- adds r1, r5, 0
- cmp r0, 0
- blt _0809F560
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- b _0809F566
- .align 2, 0
-_0809F55C: .4byte gUnknown_812F1F8
-_0809F560:
- mov r5, r10
- movs r0, 0xC
- ldrsh r2, [r5, r0]
-_0809F566:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- cmp r0, 0
- blt _0809F578
- add r0, sp, 0x8
- movs r3, 0x1
- ldrsb r3, [r0, r3]
- b _0809F57E
-_0809F578:
- mov r4, r10
- movs r3, 0xE
- ldrsb r3, [r4, r3]
-_0809F57E:
- movs r0, 0x1
- negs r0, r0
- bl GroundEffect_Add
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0
- bge _0809F592
- bl _0809EAE0
-_0809F592:
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- add r4, sp, 0x64
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80AD3B4
- bl _0809EAE0
-_0809F5AE:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- movs r1, 0x1
- bl GroundMap_ExecuteEvent
- bl _0809EAE0
-_0809F5BE:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- b _0809F712
-_0809F5C6:
- ldr r1, [sp, 0xC]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809F5D6
- lsls r0, r1, 16
- asrs r0, 16
- b _0809F5DC
-_0809F5D6:
- ldr r0, _0809F5F0
- movs r3, 0
- ldrsh r0, [r0, r3]
-_0809F5DC:
- adds r4, r0, 0
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- blt _0809F5F4
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r0, r5]
- b _0809F5FA
- .align 2, 0
-_0809F5F0: .4byte gUnknown_2039A30
-_0809F5F4:
- mov r0, r10
- movs r2, 0xC
- ldrsh r1, [r0, r2]
-_0809F5FA:
- adds r6, r1, 0
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- cmp r0, 0
- blt _0809F60E
- add r0, sp, 0x8
- movs r5, 0x1
- ldrsb r5, [r0, r5]
- b _0809F614
-_0809F60E:
- mov r3, r10
- movs r5, 0xE
- ldrsb r5, [r3, r5]
-_0809F614:
- adds r0, r4, 0
- bl sub_80A4D7C
- lsls r0, 16
- asrs r4, r0, 16
- movs r3, 0
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0809F62A
- movs r3, 0x1
-_0809F62A:
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl GroundMap_ExecuteStation
- ldr r1, _0809F65C
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r4
- bne _0809F642
- bl _0809EAE0
-_0809F642:
- strh r4, [r1]
- bl sub_809D940
- mov r1, r9
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0809F656
- bl _0809EAE0
-_0809F656:
- bl _080A142C
- .align 2, 0
-_0809F65C: .4byte gUnknown_2039A34
-_0809F660:
- movs r0, 0
- movs r1, 0x13
- bl sub_8001658
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80A2608
- adds r5, r0, 0
- lsls r2, r4, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x30
- bl sub_8001784
- cmp r0, 0
- bne _0809F68A
- movs r3, 0x6
- ldrsh r5, [r5, r3]
- b _0809F68E
-_0809F68A:
- movs r0, 0x8
- ldrsh r5, [r5, r0]
-_0809F68E:
- adds r0, r4, 0
- subs r0, 0x37
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bls _0809F6DC
- adds r0, r4, 0
- bl sub_80A2750
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _0809F6DC
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0809F6D8
- movs r0, 0x1
- bl sub_8011BA4
- lsls r0, 24
- cmp r0, 0
- beq _0809F6C6
- ldr r1, _0809F6D4
- movs r0, 0x1
- adds r2, r4, 0
- bl Log
-_0809F6C6:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8098E18
- bl _0809EAE0
- .align 2, 0
-_0809F6D4: .4byte gUnknown_8116684
-_0809F6D8:
- adds r0, r5, 0
- b _0809F712
-_0809F6DC:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_8098E18
- bl _0809EAE0
-_0809F6EA:
- mov r1, r9
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _0809F71C
- cmp r0, 0x1
- bgt _0809F700
- cmp r0, 0
- beq _0809F70C
- bl _0809EAE0
-_0809F700:
- cmp r0, 0x2
- beq _0809F73E
- cmp r0, 0x3
- beq _0809F762
- bl _0809EAE0
-_0809F70C:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
-_0809F712:
- movs r1, 0
- bl GroundMap_ExecuteEvent
- bl _0809EAE0
-_0809F71C:
- add r4, sp, 0x1C
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- mov r0, r9
- adds r1, r4, 0
- bl sub_809D710
- mov r1, r9
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- adds r1, 0x8
- adds r2, r4, 0
- bl GroundLives_ExecuteScript
- bl _0809EAE0
-_0809F73E:
- add r4, sp, 0x28
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- mov r0, r9
- adds r1, r4, 0
- bl sub_809D710
- mov r5, r9
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- mov r1, r9
- adds r1, 0x8
- adds r2, r4, 0
- bl GroundObject_ExecuteScript
- bl _0809EAE0
-_0809F762:
- add r4, sp, 0x34
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- mov r0, r9
- adds r1, r4, 0
- bl sub_809D710
- mov r5, r9
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- mov r1, r9
- adds r1, 0x8
- adds r2, r4, 0
- bl GroundEffect_ExecuteScript
- bl _0809EAE0
-_0809F786:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- cmp r0, 0
- bge _0809F79E
- bl _0809EAE0
-_0809F79E:
- add r1, sp, 0x6C
- bl sub_80A8BD8
- ldr r0, [sp, 0x6C]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0809F818
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- add r7, sp, 0x70
- ldr r2, [r1, 0xC]
- adds r1, r7, 0
- bl _call_via_r2
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r3, 0x4]
- add r5, sp, 0x78
- ldr r2, [r1, 0x8]
- adds r1, r5, 0
- bl _call_via_r2
- add r6, sp, 0x80
- mov r0, r8
- adds r1, r6, 0
- bl sub_80A8FD8
- add r4, sp, 0x88
- mov r0, r8
- adds r1, r4, 0
- bl sub_80A8F9C
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl sub_8002DF0
- lsls r0, 24
- asrs r1, r0, 24
- adds r4, r1, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809F812
- ldr r3, _0809F82C
- adds r0, r7, 0
- adds r1, r3, 0
- adds r2, r6, 0
- bl sub_8002D54
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, r4
- beq _0809F818
-_0809F812:
- mov r0, r8
- bl sub_80A9090
-_0809F818:
- mov r4, r9
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- mov r1, r8
- bl GroundLives_ExecutePlayerScriptActionLives
- movs r0, 0x3
- bl _080A142E
- .align 2, 0
-_0809F82C: .4byte gUnknown_81164DC
-_0809F830:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- bl sub_80999E8
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A130C
-_0809F842:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- bl sub_80999FC
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A130C
-_0809F854:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- ldr r1, [sp, 0xC]
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x10]
- lsls r2, 16
- lsrs r2, 16
- bl sub_8099A10
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A130C
-_0809F872:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- bl sub_8099A34
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A130C
-_0809F884:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- bl sub_8099A48
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A130C
-_0809F896:
- ldr r0, [sp, 0x10]
- asrs r0, 16
- add r1, sp, 0x20
- movs r2, 0
- strb r0, [r1]
- ldr r0, [sp, 0x10]
- asrs r0, 8
- adds r1, 0x1
- strb r0, [r1]
- ldr r1, [sp, 0x10]
- mov r0, sp
- adds r0, 0x22
- strb r1, [r0]
- adds r0, 0x1
- strb r2, [r0]
- ldr r2, [sp, 0x20]
- str r2, [sp, 0x1C]
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x27
- beq _0809F8C6
- cmp r0, 0x28
- beq _0809F8D4
- b _0809F8E0
-_0809F8C6:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- ldr r1, [sp, 0xC]
- bl sub_8099A5C
- b _0809F8E0
-_0809F8D4:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- ldr r1, [sp, 0xC]
- bl sub_8099AFC
-_0809F8E0:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A130C
-_0809F8E8:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- bl sub_809A6E4
- bl _0809EAE0
-_0809F8F4:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- bl sub_809A6F8
- bl _0809EAE0
-_0809F900:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- bl sub_809A738
- bl _0809EAE0
-_0809F90C:
- bl sub_809A768
- lsls r0, 24
- cmp r0, 0
- bne _0809F91A
- bl _0809EAE0
-_0809F91A:
- movs r0, 0
- movs r1, 0xA
- bl sub_80A87AC
- mov r0, r9
- movs r1, 0
- bl sub_809D8EC
- bl _080A130A
-_0809F92E:
- bl sub_809A76C
- bl _0809EAE0
-_0809F936:
- bl sub_809A7B4
- bl _0809EAE0
-_0809F93E:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- cmp r0, 0xA
- bls _0809F94A
- bl _0809EAE0
-_0809F94A:
- lsls r0, 2
- ldr r1, _0809F954
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809F954: .4byte _0809F958
- .align 2, 0
-_0809F958:
- .4byte _0809F984
- .4byte _0809F992
- .4byte _0809F9A4
- .4byte _0809F9B6
- .4byte _0809F9D8
- .4byte _0809F9EA
- .4byte _0809F9FC
- .4byte _0809FA44
- .4byte _0809FA56
- .4byte _0809FA68
- .4byte _0809FAB0
-_0809F984:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- bl sub_809A83C
- bl _0809EAE0
-_0809F992:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- mov r1, r9
- adds r1, 0x8
- bl sub_80A2500
- bl _0809EAE0
-_0809F9A4:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- mov r1, r9
- adds r1, 0xC
- bl sub_80A2500
- bl _0809EAE0
-_0809F9B6:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- add r1, sp, 0x90
- lsls r0, 16
- movs r2, 0x1
- orrs r0, r2
- str r0, [r1]
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- bl sub_80A2500
- bl _0809EAE0
-_0809F9D8:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- mov r1, r9
- adds r1, 0x8
- bl sub_80A252C
- bl _0809EAE0
-_0809F9EA:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- mov r1, r9
- adds r1, 0xC
- bl sub_80A252C
- bl _0809EAE0
-_0809F9FC:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- add r1, sp, 0x94
- ldrh r2, [r1]
- orrs r2, r0
- str r2, [r1]
- cmp r2, 0
- blt _0809FA30
- ldr r0, _0809FA2C
- ands r2, r0
- movs r0, 0x1
- orrs r2, r0
- str r2, [r1]
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- bl sub_80A252C
- bl _0809EAE0
- .align 2, 0
-_0809FA2C: .4byte 0xffff0000
-_0809FA30:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- bl sub_80A2584
- bl _0809EAE0
-_0809FA44:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- mov r1, r9
- adds r1, 0x8
- bl sub_80A2558
- bl _0809EAE0
-_0809FA56:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- mov r1, r9
- adds r1, 0xC
- bl sub_80A2558
- bl _0809EAE0
-_0809FA68:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- add r1, sp, 0x98
- ldrh r2, [r1]
- orrs r2, r0
- str r2, [r1]
- cmp r2, 0
- blt _0809FA9C
- ldr r0, _0809FA98
- ands r2, r0
- movs r0, 0x1
- orrs r2, r0
- str r2, [r1]
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- bl sub_80A2558
- bl _0809EAE0
- .align 2, 0
-_0809FA98: .4byte 0xffff0000
-_0809FA9C:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- bl sub_80A2598
- bl _0809EAE0
-_0809FAB0:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2740
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0809FAD0
- cmp r0, 0x2
- beq _0809FAD4
- b _0809FAD8
-_0809FAD0:
- movs r4, 0x1
- b _0809FAD8
-_0809FAD4:
- movs r4, 0x1
- negs r4, r4
-_0809FAD8:
- adds r0, r1, 0
- bl sub_8090298
- ldr r2, _0809FAF4
- add r1, sp, 0x8
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r1, r2
- adds r0, r4
- str r0, [r1]
- bl _0809EAE0
- .align 2, 0
-_0809FAF4: .4byte gUnknown_202DE30
-_0809FAF8:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- ldr r1, [sp, 0xC]
- lsls r1, 24
- asrs r1, 24
- add r2, sp, 0x8
- ldrb r2, [r2, 0x1]
- bl sub_809AC7C
- bl _0809EAE0
-_0809FB10:
- ldr r0, [sp, 0xC]
- add r1, sp, 0x9C
- str r0, [r1]
- ldr r0, [sp, 0x10]
- str r0, [r1, 0x4]
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- bl sub_809ADD8
- bl _0809EAE0
-_0809FB28:
- movs r1, 0
- ldrb r0, [r2]
- subs r0, 0x32
- cmp r0, 0x6
- bhi _0809FBBE
- lsls r0, 2
- ldr r1, _0809FB3C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809FB3C: .4byte _0809FB40
- .align 2, 0
-_0809FB40:
- .4byte _0809FB5C
- .4byte _0809FB6C
- .4byte _0809FB7C
- .4byte _0809FB8C
- .4byte _0809FB9C
- .4byte _0809FBAC
- .4byte _0809FBB4
-_0809FB5C:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- ldr r2, [sp, 0x14]
- movs r0, 0
- bl sub_809AE90
- b _0809FBBA
-_0809FB6C:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- ldr r2, [sp, 0x14]
- movs r0, 0x1
- bl sub_809AE90
- b _0809FBBA
-_0809FB7C:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- ldr r2, [sp, 0x14]
- movs r0, 0x2
- bl sub_809AE90
- b _0809FBBA
-_0809FB8C:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r0, r5]
- ldr r2, [sp, 0x14]
- movs r0, 0x3
- bl sub_809AE90
- b _0809FBBA
-_0809FB9C:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- ldr r2, [sp, 0x14]
- movs r0, 0x4
- bl sub_809AE90
- b _0809FBBA
-_0809FBAC:
- ldr r0, [sp, 0x14]
- bl sub_809AEEC
- b _0809FBBA
-_0809FBB4:
- ldr r0, [sp, 0x14]
- bl sub_809AF2C
-_0809FBBA:
- lsls r0, 24
- lsrs r1, r0, 24
-_0809FBBE:
- cmp r1, 0
- bne _0809FBC6
- bl _0809EAE0
-_0809FBC6:
- movs r0, 0
- movs r1, 0xA
- bl sub_80A87AC
- mov r0, r9
- movs r1, 0
- bl sub_809D8EC
- bl _080A130A
-_0809FBDA:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- ldr r1, [sp, 0x14]
- bl sub_809AF6C
- lsls r0, 24
- cmp r0, 0
- bne _0809FBF0
- bl _0809EAE0
-_0809FBF0:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- bge _0809FBFE
- bl _0809EAE0
-_0809FBFE:
- movs r0, 0
- movs r1, 0xA
- bl sub_80A87AC
- mov r0, r9
- movs r1, 0
- bl sub_809D8EC
- bl _080A130A
-_0809FC12:
- add r0, sp, 0x8
- ldrb r1, [r0, 0x1]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- lsls r2, 16
- asrs r2, 16
- ldr r3, [sp, 0x14]
- bl sub_809AFC8
- bl _080A1280
-_0809FC2E:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- bl sub_809B1D4
- bl _080A1292
-_0809FC40:
- movs r0, 0
- bl _080A0654
-_0809FC46:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809FC90
- adds r0, r1, 0
- bl sub_80A8D54
- cmp r0, 0
- bne _0809FC62
- bl _0809EAE0
-_0809FC62:
- movs r3, 0
- ldr r2, _0809FC8C
- adds r5, r2, 0
- adds r4, r0, 0
- adds r4, 0x4C
-_0809FC6C:
- adds r0, r3, r5
- adds r1, r4, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x9
- ble _0809FC6C
- movs r0, 0
- strb r0, [r2, 0xA]
- movs r0, 0x4
- movs r1, 0
- bl sub_809B1C0
- bl _080A1292
- .align 2, 0
-_0809FC8C: .4byte gUnknown_2039D98
-_0809FC90:
- ldr r2, _0809FCA0
- movs r0, 0x4
- movs r1, 0x1
- bl sub_809B1C0
- bl _080A1292
- .align 2, 0
-_0809FCA0: .4byte gUnknown_2039D98
-_0809FCA4:
- ldr r4, _0809FCC0
- adds r0, r4, 0
- bl sub_80920B8
- movs r0, 0
- strb r0, [r4, 0xA]
- movs r0, 0x5
- movs r1, 0
- adds r2, r4, 0
- bl sub_809B1C0
- bl _080A1292
- .align 2, 0
-_0809FCC0: .4byte gUnknown_2039D98
-_0809FCC4:
- ldr r2, _0809FCE4
- adds r3, r2, 0
- movs r1, 0
- adds r0, r2, 0
- adds r0, 0xB
-_0809FCCE:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, r3
- bge _0809FCCE
- add r0, sp, 0x8
- ldrb r1, [r0, 0x1]
- movs r0, 0x6
- bl sub_809B1C0
- bl _080A1292
- .align 2, 0
-_0809FCE4: .4byte gUnknown_2039D98
-_0809FCE8:
- bl sub_80118A4
- bl _0809EAE0
-_0809FCF0:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- blt _0809FD00
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- b _0809FD02
-_0809FD00:
- movs r0, 0x1E
-_0809FD02:
- bl sub_80118C4
- bl _0809EAE0
-_0809FD0A:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0809FD1E
- ldr r0, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- bl sub_80A25AC
- b _0809FD20
-_0809FD1E:
- ldr r0, [sp, 0xC]
-_0809FD20:
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0809FD34
- cmp r1, r0
- beq _0809FDA0
- adds r0, r1, 0
- bl sub_80118F0
- bl _0809EAE0
- .align 2, 0
-_0809FD34: .4byte 0x000003e7
-_0809FD38:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0809FD4C
- ldr r0, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- bl sub_80A25AC
- b _0809FD4E
-_0809FD4C:
- ldr r0, [sp, 0xC]
-_0809FD4E:
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _0809FD68
- cmp r2, r0
- beq _0809FDA0
- add r0, sp, 0x8
- ldrh r1, [r0, 0x2]
- adds r0, r2, 0
- bl sub_8011900
- bl _0809EAE0
- .align 2, 0
-_0809FD68: .4byte 0x000003e7
-_0809FD6C:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0809FD80
- ldr r0, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- bl sub_80A25AC
- b _0809FD82
-_0809FD80:
- ldr r0, [sp, 0xC]
-_0809FD82:
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _0809FD9C
- cmp r1, r0
- bne _0809FD90
- bl _0809EAE0
-_0809FD90:
- adds r0, r1, 0
- bl sub_8011914
- bl _0809EAE0
- .align 2, 0
-_0809FD9C: .4byte 0x000003e7
-_0809FDA0:
- bl sub_8011924
- bl _0809EAE0
-_0809FDA8:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- blt _0809FDB8
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- b _0809FDBA
-_0809FDB8:
- movs r0, 0x1E
-_0809FDBA:
- bl sub_8011930
- bl _0809EAE0
-_0809FDC2:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x80
- lsls r1, 1
- bl sub_8011974
- bl _0809EAE0
-_0809FDD4:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- bl sub_801199C
- bl _0809EAE0
-_0809FDE2:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- lsrs r2, r0, 16
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- blt _0809FDF8
- add r0, sp, 0x8
- ldrh r1, [r0, 0x2]
- b _0809FDFA
-_0809FDF8:
- movs r1, 0x1E
-_0809FDFA:
- adds r0, r2, 0
- bl sub_80119AC
- bl _0809EAE0
-_0809FE04:
- mov r1, r9
- adds r1, 0x84
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0x1
- bne _0809FE16
- adds r0, r1, 0
- bl sub_809D568
-_0809FE16:
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r2, [r1, 0x1C]
- movs r1, 0
- bl _call_via_r2
- bl _0809EAE0
-_0809FE28:
- mov r0, r9
- adds r0, 0xC
- bl sub_809D52C
- adds r4, r0, 0
- cmp r4, 0
- bne _0809FE3A
- bl _0809EAE0
-_0809FE3A:
- ldr r1, [r4]
- mov r2, r9
- ldr r0, [r2, 0x4]
- add r5, sp, 0xA4
- ldr r2, [r1, 0xC]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r1, [r4]
- mov r3, r9
- ldr r0, [r3, 0x4]
- mov r4, sp
- adds r4, 0x4D
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r5, 0
- bl _call_via_r2
- ldrb r0, [r4]
- mov r1, r9
- adds r1, 0x4A
- strb r0, [r1]
- mov r1, r9
- ldr r2, [r1]
- ldr r0, [r1, 0x4]
- movs r1, 0
- ldrsb r1, [r4, r1]
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
- bl _0809EAE0
-_0809FE86:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- add r6, sp, 0xAC
- ldr r2, [r1, 0xC]
- adds r1, r6, 0
- bl _call_via_r2
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- add r4, sp, 0xB4
- add r5, sp, 0xBC
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80AD914
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r3, [r1, 0x20]
- adds r1, r4, 0
- adds r2, r5, 0
- bl _call_via_r3
- bl _0809EAE0
-_0809FEBE:
- mov r1, r9
- ldr r2, [r1]
- ldr r0, [r1, 0x4]
- ldr r1, [sp, 0xC]
- ldr r2, [r2, 0x3C]
- bl _call_via_r2
- bl _0809EAE0
-_0809FED0:
- ldr r0, [sp, 0xC]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _0809FEEE
- mov r1, r9
- adds r1, 0x84
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _0809FEEE
- adds r0, r1, 0
- bl sub_809D568
-_0809FEEE:
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- ldr r1, [sp, 0xC]
- ldr r2, [r2, 0x40]
- bl _call_via_r2
- bl _0809EAE0
-_0809FF00:
- mov r4, r9
- ldr r2, [r4]
- ldr r0, [r4, 0x4]
- mov r1, r9
- adds r1, 0x4A
- ldr r2, [r2, 0x14]
- bl _call_via_r2
- add r0, sp, 0x8
- ldrh r1, [r0, 0x2]
- cmp r1, 0
- beq _0809FF1E
- mov r0, r9
- adds r0, 0x48
- strh r1, [r0]
-_0809FF1E:
- mov r5, r9
- ldr r2, [r5]
- ldr r0, [r5, 0x4]
- add r1, sp, 0x8
- ldrh r1, [r1, 0x2]
- ldr r2, [r2, 0x30]
- bl _call_via_r2
- bl _0809EAE0
-_0809FF32:
- mov r0, r9
- ldr r2, [r0]
- ldr r0, [r0, 0x4]
- add r1, sp, 0x8
- ldrh r1, [r1, 0x2]
- ldr r2, [r2, 0x34]
- bl _call_via_r2
- bl _0809EAE0
-_0809FF46:
- mov r1, r9
- ldr r3, [r1]
- ldr r0, [r1, 0x4]
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- add r2, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r2, r4]
- ldr r3, [r3, 0x38]
- bl _call_via_r3
- bl _0809EAE0
-_0809FF62:
- mov r5, r9
- ldr r2, [r5]
- ldr r0, [r5, 0x4]
- add r1, sp, 0x8
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- ldr r2, [r2, 0x44]
- bl _call_via_r2
- bl _0809EAE0
-_0809FF78:
- ldr r0, [sp, 0xC]
- lsls r0, 8
- add r1, sp, 0xC4
- str r0, [r1]
- ldr r0, [sp, 0x10]
- lsls r0, 8
- str r0, [r1, 0x4]
- mov r4, r9
- ldr r2, [r4]
- ldr r0, [r4, 0x4]
- ldr r2, [r2, 0x24]
- bl _call_via_r2
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- mov r5, r10
- b _080A05EA
-_0809FF9A:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- lsls r0, 8
- add r1, sp, 0xCC
- str r0, [r1]
- ldr r0, [sp, 0xC]
- lsls r0, 8
- str r0, [r1, 0x4]
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- ldr r2, [r2, 0x48]
- bl _call_via_r2
- b _080A0650
-_0809FFBA:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- bl OtherRandomCapped
- lsls r0, 8
- add r4, sp, 0xD4
- str r0, [r4]
- ldr r0, [sp, 0xC]
- bl OtherRandomCapped
- lsls r0, 8
- str r0, [r4, 0x4]
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r2, [r1, 0x48]
- adds r1, r4, 0
- bl _call_via_r2
- b _080A07B4
-_0809FFE4:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- add r4, sp, 0xDC
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- adds r1, r4, 0
- bl sub_80AD8B4
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r3, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r4, 0
- bl _call_via_r2
- b _080A0650
-_080A0010:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- add r6, sp, 0xE4
- ldr r2, [r1, 0xC]
- adds r1, r6, 0
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- add r4, sp, 0xEC
- add r5, sp, 0xF4
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80AD914
- ldr r0, [r5]
- ldr r1, [r4]
- subs r0, r1
- bl OtherRandomCapped
- ldr r1, [r4]
- adds r1, r0
- str r1, [r6]
- ldr r0, [r5, 0x4]
- ldr r1, [r4, 0x4]
- subs r0, r1
- bl OtherRandomCapped
- ldr r1, [r4, 0x4]
- adds r1, r0
- str r1, [r6, 0x4]
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r6, 0
- bl _call_via_r2
- b _080A07B4
-_080A0064:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A007A
- bl _0809EAE0
-_080A007A:
- add r4, sp, 0xFC
- adds r1, r4, 0
- bl sub_80A8FD8
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r4, 0
- bl _call_via_r2
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- b _080A03F0
-_080A0096:
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x32
- bl sub_8001784
- add r5, sp, 0x104
- str r0, [r5]
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x33
- bl sub_8001784
- str r0, [r5, 0x4]
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x34
- bl sub_8001784
- adds r6, r0, 0
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x35
- bl sub_8001784
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 24
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r5, 0
- bl _call_via_r2
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- ldr r2, [r1, 0x28]
- adds r1, r6, 0
- bl _call_via_r2
- mov r0, r9
- adds r0, 0x4A
- strb r4, [r0]
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r3, 0x4]
- ldr r2, [r1, 0x2C]
- adds r1, r4, 0
- bl _call_via_r2
- b _080A0650
-_080A010E:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- add r4, sp, 0x10C
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- ldr r3, [r5]
- ldr r0, [r5, 0x4]
- add r1, sp, 0x114
- add r2, sp, 0x118
- ldr r3, [r3, 0x10]
- bl _call_via_r3
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- mov r5, sp
- adds r5, 0x4E
- ldr r2, [r1, 0x14]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- add r0, sp, 0x10C
- ldr r3, [r0]
- movs r0, 0
- movs r1, 0x32
- bl sub_800199C
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- ldr r3, [r4, 0x4]
- movs r0, 0
- movs r1, 0x33
- bl sub_800199C
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- add r0, sp, 0x114
- ldr r3, [r0]
- movs r0, 0
- movs r1, 0x34
- bl sub_800199C
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- movs r3, 0
- ldrsb r3, [r5, r3]
- movs r0, 0
- movs r1, 0x35
- bl sub_800199C
- bl _0809EAE0
-_080A0186:
- mov r0, r9
- ldr r2, [r0]
- ldr r0, [r0, 0x4]
- ldr r1, [sp, 0xC]
- lsls r1, 8
- ldr r2, [r2, 0x28]
- bl _call_via_r2
- b _080A07B4
-_080A0198:
- ldr r0, [sp, 0xC]
- lsls r0, 8
- mov r2, r10
- str r0, [r2, 0x3C]
- ldr r0, [sp, 0x10]
- lsls r0, 8
- str r0, [r2, 0x40]
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- str r0, [r2, 0x30]
- ldr r0, _080A01B4
- bl _080A12AE
- .align 2, 0
-_080A01B4: .4byte 0x0000ffff
-_080A01B8:
- mov r4, r9
- ldr r1, [r4]
- ldr r0, [r4, 0x4]
- add r4, sp, 0x11C
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- ldr r1, [sp, 0xC]
- lsls r1, 8
- add r0, sp, 0x11C
- ldr r0, [r0]
- adds r0, r1
- mov r5, r10
- str r0, [r5, 0x3C]
- ldr r1, [sp, 0x10]
- lsls r1, 8
- ldr r0, [r4, 0x4]
- adds r0, r1
- str r0, [r5, 0x40]
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- str r0, [r5, 0x30]
- ldr r0, _080A01EC
- b _080A05EA
- .align 2, 0
-_080A01EC: .4byte 0x0000ffff
-_080A01F0:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- mov r4, r10
- adds r4, 0x3C
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- adds r1, r4, 0
- bl sub_80AD8B4
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- mov r4, r10
- str r0, [r4, 0x30]
- ldr r0, _080A021C
- b _080A0656
- .align 2, 0
-_080A021C: .4byte 0x0000ffff
-_080A0220:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- mov r4, r10
- adds r4, 0x3C
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- adds r1, r4, 0
- bl sub_80AD8B4
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- mov r2, r10
- str r0, [r2, 0x30]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A12AE
-_080A0250:
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r3, 0x4]
- mov r4, r10
- adds r4, 0x3C
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- adds r1, r4, 0
- bl sub_80AD8B4
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- mov r5, r10
- str r0, [r5, 0x30]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl OtherRandomCapped
- b _080A05EA
-_080A0282:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A0298
- bl _0809EAE0
-_080A0298:
- mov r1, r10
- adds r1, 0x3C
- bl sub_80A8FD8
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- mov r2, r10
- str r0, [r2, 0x30]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl _080A12AE
-_080A02B2:
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- mov r1, r10
- adds r1, 0x34
- ldr r2, [r2, 0xC]
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r1, r0, 8
- mov r4, r10
- str r1, [r4, 0x3C]
- ldr r0, [sp, 0x10]
- lsls r2, r0, 8
- str r2, [r4, 0x40]
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x7D
- beq _080A02DC
- cmp r0, 0x83
- bne _080A0304
-_080A02DC:
- mov r5, r10
- ldr r0, [r5, 0x34]
- subs r0, r1, r0
- ldr r1, [r5, 0x38]
- subs r1, r2, r1
- bl sub_8009FB8
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl __divsi3
- strh r0, [r5, 0x2A]
- lsls r0, 16
- cmp r0, 0
- ble _080A0300
- bl _0809F0C4
-_080A0300:
- movs r0, 0x1
- b _080A05EA
-_080A0304:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- mov r3, r10
- strh r0, [r3, 0x2A]
- bl _0809F0C4
-_080A0310:
- mov r4, r9
- ldr r2, [r4]
- ldr r0, [r4, 0x4]
- mov r1, r10
- adds r1, 0x34
- ldr r2, [r2, 0xC]
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r0, 8
- mov r5, r10
- ldr r4, [r5, 0x34]
- adds r3, r4, r0
- str r3, [r5, 0x3C]
- ldr r0, [sp, 0x10]
- lsls r0, 8
- ldr r2, [r5, 0x38]
- adds r1, r2, r0
- str r1, [r5, 0x40]
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x7E
- beq _080A0342
- cmp r0, 0x84
- bne _080A036A
-_080A0342:
- subs r0, r3, r4
- subs r1, r2
- bl sub_8009FB8
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl __divsi3
- mov r3, r10
- strh r0, [r3, 0x2A]
- lsls r0, 16
- cmp r0, 0
- ble _080A0362
- bl _0809F0C4
-_080A0362:
- movs r0, 0x1
- strh r0, [r3, 0x2A]
- bl _0809F0C4
-_080A036A:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- b _080A0654
-_080A0370:
- ldr r4, [sp, 0xC]
- lsls r4, 1
- subs r4, 0x1
- ldr r5, [sp, 0x10]
- lsls r5, 1
- subs r5, 0x1
- mov r0, r9
- ldr r2, [r0]
- ldr r0, [r0, 0x4]
- mov r1, r10
- adds r1, 0x34
- ldr r2, [r2, 0xC]
- bl _call_via_r2
- adds r0, r4, 0
- bl OtherRandomCapped
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- subs r0, r1
- lsls r0, 8
- mov r3, r10
- ldr r1, [r3, 0x34]
- adds r1, r0
- str r1, [r3, 0x3C]
- adds r0, r5, 0
- bl OtherRandomCapped
- ldr r1, [sp, 0xC]
- subs r0, r1
- lsls r0, 8
- mov r4, r10
- ldr r3, [r4, 0x38]
- adds r2, r3, r0
- str r2, [r4, 0x40]
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x7F
- beq _080A03C4
- cmp r0, 0x85
- bne _080A03EC
-_080A03C4:
- mov r5, r10
- ldr r0, [r5, 0x3C]
- ldr r1, [r5, 0x34]
- subs r0, r1
- subs r1, r2, r3
- bl sub_8009FB8
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl __divsi3
- strh r0, [r5, 0x2A]
- lsls r0, 16
- cmp r0, 0
- ble _080A03E8
- bl _0809F0C4
-_080A03E8:
- movs r0, 0x1
- b _080A05EA
-_080A03EC:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
-_080A03F0:
- mov r3, r10
- strh r0, [r3, 0x2A]
- bl _0809F0C4
-_080A03F8:
- mov r4, r9
- ldr r2, [r4]
- ldr r0, [r4, 0x4]
- mov r1, r10
- adds r1, 0x34
- ldr r2, [r2, 0xC]
- bl _call_via_r2
- mov r5, r10
- ldr r0, [r5, 0x34]
- ldr r1, [r5, 0x38]
- mov r2, r10
- str r0, [r2, 0x3C]
- str r1, [r2, 0x40]
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- mov r1, r10
- adds r1, 0x3C
- bl sub_80AD8B4
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x80
- beq _080A042E
- cmp r0, 0x86
- bne _080A045C
-_080A042E:
- mov r3, r10
- ldr r0, [r3, 0x3C]
- ldr r1, [r3, 0x34]
- subs r0, r1
- ldr r1, [r3, 0x40]
- ldr r2, [r3, 0x38]
- subs r1, r2
- bl sub_8009FB8
- add r1, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r1, r4]
- bl __divsi3
- mov r5, r10
- strh r0, [r5, 0x2A]
- lsls r0, 16
- cmp r0, 0
- ble _080A0458
- bl _0809F0C4
-_080A0458:
- movs r0, 0x1
- b _080A05EA
-_080A045C:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- b _080A07B8
-_080A0462:
- ldr r4, [sp, 0xC]
- lsls r4, 1
- subs r4, 0x1
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- mov r5, r10
- adds r5, 0x3C
- ldr r2, [r1, 0xC]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r0, [sp, 0x10]
- lsls r0, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_80AD8B4
- adds r0, r4, 0
- bl OtherRandomCapped
- add r1, sp, 0x8
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- subs r0, r1
- lsls r0, 8
- mov r5, r10
- ldr r1, [r5, 0x3C]
- adds r1, r0
- str r1, [r5, 0x3C]
- adds r0, r4, 0
- bl OtherRandomCapped
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- subs r0, r1
- lsls r0, 8
- ldr r1, [r5, 0x40]
- adds r2, r1, r0
- str r2, [r5, 0x40]
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x81
- beq _080A04C0
- cmp r0, 0x87
- bne _080A04EC
-_080A04C0:
- mov r3, r10
- ldr r0, [r3, 0x3C]
- ldr r1, [r3, 0x34]
- subs r0, r1
- ldr r1, [r3, 0x38]
- subs r1, r2, r1
- bl sub_8009FB8
- add r1, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r1, r4]
- bl __divsi3
- mov r5, r10
- strh r0, [r5, 0x2A]
- lsls r0, 16
- cmp r0, 0
- ble _080A04E8
- bl _0809F0C4
-_080A04E8:
- movs r0, 0x1
- b _080A05EA
-_080A04EC:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- b _080A07B8
-_080A04F2:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- bge _080A0508
- bl _0809EAE0
-_080A0508:
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- mov r1, r10
- adds r1, 0x34
- ldr r2, [r2, 0xC]
- bl _call_via_r2
- mov r1, r10
- adds r1, 0x3C
- adds r0, r4, 0
- bl sub_80A8FD8
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x82
- beq _080A052E
- cmp r0, 0x88
- bne _080A055A
-_080A052E:
- mov r4, r10
- ldr r0, [r4, 0x3C]
- ldr r1, [r4, 0x34]
- subs r0, r1
- ldr r1, [r4, 0x40]
- ldr r2, [r4, 0x38]
- subs r1, r2
- bl sub_8009FB8
- add r1, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r1, r5]
- bl __divsi3
- strh r0, [r4, 0x2A]
- lsls r0, 16
- cmp r0, 0
- ble _080A0556
- bl _0809F0C4
-_080A0556:
- movs r0, 0x1
- b _080A0656
-_080A055A:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- b _080A07B8
-_080A0560:
- ldr r0, [sp, 0xC]
- lsls r0, 8
- mov r2, r10
- str r0, [r2, 0x48]
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- str r0, [r2, 0x30]
- ldr r0, _080A0578
- bl _080A12AE
- .align 2, 0
-_080A0578: .4byte 0x0000ffff
-_080A057C:
- ldr r1, [sp, 0xC]
- mov r0, r9
- adds r0, 0x4A
- strb r1, [r0]
- mov r4, r9
- ldr r2, [r4]
- ldr r0, [r4, 0x4]
- lsls r1, 24
- asrs r1, 24
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- mov r1, r10
- str r0, [r1, 0x30]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- b _080A07BA
-_080A05A4:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- mov r4, sp
- adds r4, 0x4F
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- movs r0, 0
- ldrsb r0, [r4, r0]
- ldr r1, [sp, 0xC]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8002984
- mov r1, r9
- adds r1, 0x4A
- strb r0, [r1]
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- mov r5, r10
- str r0, [r5, 0x30]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
-_080A05EA:
- strh r0, [r5, 0x2A]
- bl _0809F0C4
-_080A05F0:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- mov r1, r9
- adds r1, 0x4A
- strb r0, [r1]
- mov r0, r9
- ldr r2, [r0]
- ldr r0, [r0, 0x4]
-_080A0600:
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
- b _080A07B4
-_080A060E:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- blt _080A0650
- add r4, sp, 0x50
- adds r1, r4, 0
- bl sub_80A9050
- movs r0, 0
- ldrsb r0, [r4, r0]
- add r1, sp, 0x8
- ldrh r1, [r1, 0x2]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8002984
- mov r1, r9
- adds r1, 0x4A
- strb r0, [r1]
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
-_080A0650:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
-_080A0654:
- mov r4, r10
-_080A0656:
- strh r0, [r4, 0x2A]
- bl _0809F0C4
-_080A065C:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x51
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- movs r0, 0
- ldrsb r0, [r4, r0]
- add r1, sp, 0x8
- ldrh r1, [r1, 0x2]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8002984
- mov r1, r9
- adds r1, 0x4A
- strb r0, [r1]
- ldr r2, [r5]
- ldr r0, [r5, 0x4]
- b _080A0600
-_080A068A:
- movs r5, 0
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0x8F
- beq _080A06CA
- cmp r0, 0x8F
- bgt _080A069E
- cmp r0, 0x8E
- beq _080A06A4
- b _080A0724
-_080A069E:
- cmp r0, 0x90
- beq _080A06F8
- b _080A0724
-_080A06A4:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _080A0724
- movs r5, 0x1
- add r1, sp, 0x124
- adds r0, r4, 0
- bl sub_80A8FD8
- add r1, sp, 0x12C
- adds r0, r4, 0
- bl sub_80A8F9C
- b _080A0724
-_080A06CA:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- blt _080A0724
- movs r5, 0x1
- add r1, sp, 0x124
- bl sub_80A8FD8
- ldr r0, _080A06F4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- add r2, sp, 0x12C
- str r0, [r2]
- str r1, [r2, 0x4]
- b _080A0724
- .align 2, 0
-_080A06F4: .4byte gUnknown_81164DC
-_080A06F8:
- movs r5, 0x1
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- add r4, sp, 0x124
- ldr r2, [r1, 0xC]
- adds r1, r4, 0
- bl _call_via_r2
- mov r3, r9
- ldr r2, [r3]
- ldr r0, [r3, 0x4]
- add r1, sp, 0x12C
- ldr r2, [r2, 0x8]
- bl _call_via_r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- adds r1, r4, 0
- bl sub_80AD8B4
-_080A0724:
- cmp r5, 0
- beq _080A07B4
- mov r4, r9
- ldr r1, [r4]
- ldr r0, [r4, 0x4]
- add r5, sp, 0x134
- ldr r2, [r1, 0xC]
- adds r1, r5, 0
- bl _call_via_r2
- ldr r1, [r4]
- ldr r0, [r4, 0x4]
- add r4, sp, 0x13C
- ldr r2, [r1, 0x8]
- adds r1, r4, 0
- bl _call_via_r2
- add r7, sp, 0x124
- add r3, sp, 0x12C
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl sub_8002DF0
- mov r1, sp
- adds r1, 0x52
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- ldrsb r4, [r1, r4]
- adds r6, r1, 0
- cmp r4, r0
- bne _080A078C
- ldr r3, _080A07C0
- adds r0, r5, 0
- adds r1, r3, 0
- adds r2, r7, 0
- bl sub_8002D54
- strb r0, [r6]
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, r4
- bne _080A078C
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- ldr r2, [r1, 0x14]
- adds r1, r6, 0
- bl _call_via_r2
-_080A078C:
- movs r0, 0
- ldrsb r0, [r6, r0]
- add r1, sp, 0x8
- ldrh r1, [r1, 0x2]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8002984
- mov r1, r9
- adds r1, 0x4A
- strb r0, [r1]
- mov r0, r9
- ldr r2, [r0]
- ldr r0, [r0, 0x4]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r2, [r2, 0x2C]
- bl _call_via_r2
-_080A07B4:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
-_080A07B8:
- mov r1, r10
-_080A07BA:
- strh r0, [r1, 0x2A]
- bl _0809F0C4
- .align 2, 0
-_080A07C0: .4byte gUnknown_81164DC
-_080A07C4:
- movs r0, 0
- bl _080A12AC
-_080A07CA:
- ldr r0, [sp, 0xC]
- mov r1, r9
- adds r1, 0x71
- movs r2, 0
- strb r0, [r1]
- mov r3, r10
- strh r2, [r3, 0x2A]
- bl _0809F0C4
-_080A07DC:
- mov r4, r9
- ldr r1, [r4]
- ldr r0, [r4, 0x4]
- mov r4, sp
- adds r4, 0x53
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- movs r0, 0
- ldrsb r0, [r4, r0]
- ldr r1, [sp, 0xC]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8002984
- mov r1, r9
- adds r1, 0x71
- movs r2, 0
- strb r0, [r1]
- mov r5, r10
- strh r2, [r5, 0x2A]
- bl _0809F0C4
-_080A080C:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- bl sub_809D124
- bl _0809EAE0
-_080A081E:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r1, r0, 16
- mov r3, r9
- movs r4, 0x8
- ldrsh r0, [r3, r4]
- cmp r0, 0x2
- beq _080A0856
- cmp r0, 0x2
- bgt _080A0844
- cmp r0, 0x1
- beq _080A084C
- bl _0809EAE0
-_080A0844:
- cmp r0, 0x3
- beq _080A0860
- bl _0809EAE0
-_080A084C:
- movs r0, 0x1
- bl sub_809D170
- bl _0809EAE0
-_080A0856:
- movs r0, 0x2
- bl sub_809D170
- bl _0809EAE0
-_080A0860:
- movs r0, 0x3
- bl sub_809D170
- bl _0809EAE0
-_080A086A:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- cmp r1, 0x2
- beq _080A08A0
- cmp r1, 0x2
- bgt _080A088E
- cmp r1, 0x1
- beq _080A0896
- bl _0809EAE0
-_080A088E:
- cmp r1, 0x3
- beq _080A08AA
- bl _0809EAE0
-_080A0896:
- add r4, sp, 0x144
- adds r1, r4, 0
- bl sub_80A8FD8
- b _080A08B2
-_080A08A0:
- add r4, sp, 0x144
- adds r1, r4, 0
- bl sub_80AC448
- b _080A08B2
-_080A08AA:
- add r4, sp, 0x144
- adds r1, r4, 0
- bl sub_80AD360
-_080A08B2:
- movs r0, 0
- adds r1, r4, 0
- bl sub_809D158
- bl _0809EAE0
-_080A08BE:
- movs r0, 0x1
- movs r1, 0
- bl sub_809D170
- bl _0809EAE0
-_080A08CA:
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r3, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bge _080A08E2
- bl _0809EAE0
-_080A08E2:
- mov r4, r9
- movs r5, 0x8
- ldrsh r0, [r4, r5]
- cmp r0, 0x2
- beq _080A090A
- cmp r0, 0x2
- bgt _080A08F8
- cmp r0, 0x1
- beq _080A0900
- bl _0809EAE0
-_080A08F8:
- cmp r0, 0x3
- beq _080A0914
- bl _0809EAE0
-_080A0900:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- movs r0, 0x1
- b _080A0990
-_080A090A:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- movs r0, 0x2
- b _080A0990
-_080A0914:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- movs r0, 0x3
- b _080A0990
-_080A091E:
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r0, 16
- mov r2, r9
- movs r3, 0x8
- ldrsh r1, [r2, r3]
- cmp r1, 0x2
- beq _080A095C
- cmp r1, 0x2
- bgt _080A0944
- cmp r1, 0x1
- beq _080A094C
- bl _0809EAE0
-_080A0944:
- cmp r1, 0x3
- beq _080A096C
- bl _0809EAE0
-_080A094C:
- add r4, sp, 0x14C
- adds r1, r4, 0
- bl sub_80A8FD8
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- b _080A097A
-_080A095C:
- add r4, sp, 0x14C
- adds r1, r4, 0
- bl sub_80AC448
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r2, [r0, r1]
- b _080A097A
-_080A096C:
- add r4, sp, 0x14C
- adds r1, r4, 0
- bl sub_80AD360
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
-_080A097A:
- movs r0, 0
- adds r1, r4, 0
- bl sub_809D190
- bl _0809F0C4
-_080A0986:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- movs r0, 0x1
- movs r1, 0
-_080A0990:
- bl sub_809D1A8
- bl _0809F0C4
-_080A0998:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bge _080A09B0
- bl _0809EAE0
-_080A09B0:
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- cmp r0, 0x2
- beq _080A09D6
- cmp r0, 0x2
- bgt _080A09C4
- cmp r0, 0x1
- beq _080A09CC
- bl _0809EAE0
-_080A09C4:
- cmp r0, 0x3
- beq _080A09E0
- bl _0809EAE0
-_080A09CC:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- movs r0, 0x1
- b _080A0A5C
-_080A09D6:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- movs r0, 0x2
- b _080A0A5C
-_080A09E0:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- movs r0, 0x3
- b _080A0A5C
-_080A09EA:
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r0, 16
- mov r2, r9
- movs r3, 0x8
- ldrsh r1, [r2, r3]
- cmp r1, 0x2
- beq _080A0A28
- cmp r1, 0x2
- bgt _080A0A10
- cmp r1, 0x1
- beq _080A0A18
- bl _0809EAE0
-_080A0A10:
- cmp r1, 0x3
- beq _080A0A38
- bl _0809EAE0
-_080A0A18:
- add r4, sp, 0x154
- adds r1, r4, 0
- bl sub_80A8FD8
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- b _080A0A46
-_080A0A28:
- add r4, sp, 0x154
- adds r1, r4, 0
- bl sub_80AC448
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r2, [r0, r1]
- b _080A0A46
-_080A0A38:
- add r4, sp, 0x154
- adds r1, r4, 0
- bl sub_80AD360
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
-_080A0A46:
- movs r0, 0
- adds r1, r4, 0
- bl sub_809D1CC
- bl _0809F0C4
-_080A0A52:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- movs r0, 0x1
- movs r1, 0
-_080A0A5C:
- bl sub_809D1E4
- bl _0809F0C4
-_080A0A64:
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bge _080A0A7C
- bl _0809EAE0
-_080A0A7C:
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- cmp r0, 0x2
- beq _080A0AA2
- cmp r0, 0x2
- bgt _080A0A90
- cmp r0, 0x1
- beq _080A0A98
- bl _0809EAE0
-_080A0A90:
- cmp r0, 0x3
- beq _080A0AAC
- bl _0809EAE0
-_080A0A98:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- movs r0, 0x1
- b _080A0B28
-_080A0AA2:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- movs r0, 0x2
- b _080A0B28
-_080A0AAC:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- movs r0, 0x3
- b _080A0B28
-_080A0AB6:
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- ldr r1, [r1, 0x4]
- bl _call_via_r1
- lsls r0, 16
- asrs r0, 16
- mov r2, r9
- movs r3, 0x8
- ldrsh r1, [r2, r3]
- cmp r1, 0x2
- beq _080A0AF4
- cmp r1, 0x2
- bgt _080A0ADC
- cmp r1, 0x1
- beq _080A0AE4
- bl _0809EAE0
-_080A0ADC:
- cmp r1, 0x3
- beq _080A0B04
- bl _0809EAE0
-_080A0AE4:
- add r4, sp, 0x15C
- adds r1, r4, 0
- bl sub_80A8FD8
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- b _080A0B12
-_080A0AF4:
- add r4, sp, 0x15C
- adds r1, r4, 0
- bl sub_80AC448
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r2, [r0, r1]
- b _080A0B12
-_080A0B04:
- add r4, sp, 0x15C
- adds r1, r4, 0
- bl sub_80AD360
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
-_080A0B12:
- movs r0, 0
- adds r1, r4, 0
- bl sub_809D208
- bl _0809F0C4
-_080A0B1E:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- movs r0, 0x1
- movs r1, 0
-_080A0B28:
- bl sub_809D220
- bl _0809F0C4
-_080A0B30:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r1, r5]
- bl sub_8001570
- bl _0809EAE0
-_080A0B42:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl sub_80015C0
- bl _0809EAE0
-_080A0B54:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- ldr r2, [sp, 0xC]
- add r3, sp, 0x8
- ldrb r3, [r3, 0x1]
- bl sub_800226C
- bl _0809EAE0
-_080A0B6C:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r1, r4]
- ldr r2, [sp, 0xC]
- lsls r2, 16
- asrs r2, 16
- add r3, sp, 0x8
- ldrb r3, [r3, 0x1]
- bl sub_80022A0
- bl _0809EAE0
-_080A0B88:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r1, r5]
- ldr r2, [sp, 0xC]
- lsls r2, 16
- lsrs r2, 16
- ldr r3, [sp, 0x10]
- bl sub_800199C
- bl _0809EAE0
-_080A0BA2:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- bl sub_8001BB4
- bl _0809EAE0
-_080A0BB4:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- add r1, sp, 0x164
- add r2, sp, 0x168
- bl sub_8001B88
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- add r1, sp, 0x164
- ldr r1, [r1]
- add r2, sp, 0x168
- ldr r2, [r2]
- adds r2, 0x1
- bl sub_8001BB4
- bl _0809EAE0
-_080A0BDA:
- ldr r2, [sp, 0xC]
- movs r0, 0
- movs r1, 0x13
- bl sub_80018D8
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r2, [r0, r4]
- movs r0, 0
- movs r1, 0x16
- bl sub_80018D8
- bl _0809EAE0
-_080A0BF6:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r2, [r0, r5]
- movs r0, 0
- movs r1, 0x1C
- bl sub_80018D8
- bl _0809EAE0
-_080A0C08:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- add r1, sp, 0x8
- ldrb r2, [r1, 0x1]
- negs r1, r2
- orrs r1, r2
- lsrs r1, 31
- bl sub_80026E8
- bl _0809EAE0
-_080A0C20:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- add r1, sp, 0x8
- ldrb r2, [r1, 0x1]
- negs r1, r2
- orrs r1, r2
- lsrs r1, 31
- bl sub_809733C
- bl _0809EAE0
-_080A0C38:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- add r1, sp, 0x8
- ldrb r2, [r1, 0x1]
- negs r1, r2
- orrs r1, r2
- lsrs r1, 31
- bl sub_80973A8
- bl _0809EAE0
-_080A0C50:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- add r1, sp, 0x8
- ldrb r2, [r1, 0x1]
- negs r1, r2
- orrs r1, r2
- lsrs r1, 31
- bl sub_8097418
- bl _0809EAE0
-_080A0C68:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- add r1, sp, 0x8
- ldrb r2, [r1, 0x1]
- negs r1, r2
- orrs r1, r2
- lsrs r1, 31
- bl sub_80975A8
- bl _0809EAE0
-_080A0C80:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80976F8
- bl _0809EAE0
-_080A0C90:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- ldr r2, [sp, 0xC]
- movs r0, 0
- movs r3, 0x2
- bl sub_80022F8
- b _080A0E1E
-_080A0CA2:
- mov r0, r10
- adds r0, 0x50
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- add r3, sp, 0x8
- ldrb r3, [r3, 0x1]
- bl sub_80022F8
- lsls r0, 24
- cmp r0, 0
- bne _080A0CC0
- bl _0809EAE0
-_080A0CC0:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- b _080A0D5C
-_080A0CC8:
- mov r0, r10
- adds r0, 0x50
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- lsls r2, 16
- asrs r2, 16
- add r3, sp, 0x8
- ldrb r3, [r3, 0x1]
- bl sub_8002318
- lsls r0, 24
- cmp r0, 0
- bne _080A0CEA
- bl _0809EAE0
-_080A0CEA:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- b _080A0E2C
-_080A0CF2:
- mov r0, r10
- adds r0, 0x50
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- lsls r2, 16
- lsrs r2, 16
- bl sub_8001784
- cmp r0, 0
- bne _080A0D0E
- bl _0809EAE0
-_080A0D0E:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- b _080A0D5C
-_080A0D16:
- mov r0, r10
- adds r0, 0x50
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- bl sub_8001AB0
- ldr r1, [sp, 0x10]
- add r2, sp, 0x8
- ldrb r2, [r2, 0x1]
- bl FlagJudge
- lsls r0, 24
- cmp r0, 0
- bne _080A0D38
- bl _0809EAE0
-_080A0D38:
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- b _080A0E2C
-_080A0D40:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- bl sub_8001CC4
- lsls r0, 24
- cmp r0, 0
- bne _080A0D58
- bl _0809EAE0
-_080A0D58:
- add r0, sp, 0x8
- ldrb r1, [r0, 0x1]
-_080A0D5C:
- mov r0, r9
- bl sub_80A242C
- mov r5, r10
- str r0, [r5, 0x4]
- bl _0809EAE0
-_080A0D6A:
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- bl sub_8001D08
- b _080A0DBA
-_080A0D7A:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x10]
- bl sub_8001D44
- lsls r0, 24
- cmp r0, 0
- bne _080A0D92
- bl _0809EAE0
-_080A0D92:
- b _080A0DF6
-_080A0D94:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _080A0DA8
- bl _0809EAE0
-_080A0DA8:
- add r0, sp, 0x8
- ldrb r1, [r0, 0x1]
- b _080A132A
-_080A0DAE:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8098100
-_080A0DBA:
- lsls r0, 24
- cmp r0, 0
- bne _080A0DC4
- bl _0809EAE0
-_080A0DC4:
- add r0, sp, 0x8
- ldrb r1, [r0, 0x1]
- mov r0, r9
- bl sub_80A242C
- mov r2, r10
- str r0, [r2, 0x4]
- bl _0809EAE0
-_080A0DD6:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80026CC
- b _080A0E1E
-_080A0DE2:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 24
- lsrs r0, 24
- bl sub_809CBA4
- cmp r0, 0
- bgt _080A0DF6
- bl _0809EAE0
-_080A0DF6:
- add r0, sp, 0x8
- ldrb r1, [r0, 0x1]
- mov r0, r9
- bl sub_80A242C
- mov r4, r10
- str r0, [r4, 0x4]
- bl _0809EAE0
-_080A0E08:
- mov r5, r9
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080A0E16
- bl _0809EAE0
-_080A0E16:
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- bl sub_80A8C98
-_080A0E1E:
- lsls r0, 24
- cmp r0, 0
- bne _080A0E28
- bl _0809EAE0
-_080A0E28:
- add r0, sp, 0x8
- ldrb r1, [r0, 0x1]
-_080A0E2C:
- mov r0, r9
- bl sub_80A242C
- mov r3, r10
- str r0, [r3, 0x4]
- bl _0809EAE0
-_080A0E3A:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8091130
- cmp r0, 0
- bge _080A0E4E
- bl _0809EAE0
-_080A0E4E:
- bl sub_80911F8
- bl _0809EAE0
-_080A0E56:
- add r0, sp, 0x8
- ldrb r2, [r0]
- adds r0, r2, 0
- subs r0, 0xC0
- cmp r0, 0xB
- bls _080A0E64
- b _080A1088
-_080A0E64:
- lsls r0, 2
- ldr r1, _080A0E70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A0E70: .4byte _080A0E74
- .align 2, 0
-_080A0E74:
- .4byte _080A0EA4
- .4byte _080A0EB6
- .4byte _080A0ECC
- .4byte _080A0EFA
- .4byte _080A0F08
- .4byte _080A0F14
- .4byte _080A0F26
- .4byte _080A0F36
- .4byte _080A0F98
- .4byte _080A1008
- .4byte _080A0F4C
- .4byte _080A107A
-_080A0EA4:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r1, r4]
- bl sub_8001658
- adds r1, r0, 0
- b _080A1098
-_080A0EB6:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r1, r5]
- bl sub_8001658
- ldr r1, [sp, 0xC]
- add r2, sp, 0x8
- ldrb r2, [r2, 0x1]
- b _080A0EF2
-_080A0ECC:
- mov r4, r10
- adds r4, 0x50
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r0, r4, 0
- bl sub_8001658
- adds r5, r0, 0
- ldr r1, [sp, 0xC]
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8001658
- adds r1, r0, 0
- add r0, sp, 0x8
- ldrb r2, [r0, 0x1]
- adds r0, r5, 0
-_080A0EF2:
- bl FlagCalc
- adds r1, r0, 0
- b _080A1098
-_080A0EFA:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- bl OtherRandomCapped
- adds r1, r0, 0
- b _080A1098
-_080A0F08:
- add r0, sp, 0x8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- movs r0, 0
- movs r2, 0
- b _080A0F1E
-_080A0F14:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r0, r5]
- movs r0, 0
- movs r2, 0x1
-_080A0F1E:
- bl sub_8001784
- adds r1, r0, 0
- b _080A1098
-_080A0F26:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A8C2C
- lsls r0, 16
- asrs r1, r0, 16
- b _080A1098
-_080A0F36:
- mov r0, r9
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- add r4, sp, 0x54
- ldr r2, [r1, 0x14]
- adds r1, r4, 0
- bl _call_via_r2
- movs r1, 0
- ldrsb r1, [r4, r1]
- b _080A1098
-_080A0F4C:
- mov r2, r9
- ldr r1, [r2]
- ldr r0, [r2, 0x4]
- movs r3, 0xB6
- lsls r3, 1
- add r3, sp
- mov r8, r3
- ldr r2, [r1, 0xC]
- mov r1, r8
- bl _call_via_r2
- add r6, sp, 0x16C
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- add r4, sp, 0x174
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- adds r5, r4, 0
- adds r1, r5, 0
- bl sub_80AD8B4
- ldr r1, [r4]
- ldr r0, [r6]
- subs r1, r0
- add r0, sp, 0x17C
- str r1, [r0]
- ldr r1, [r5, 0x4]
- mov r4, r8
- ldr r0, [r4, 0x4]
- subs r1, r0
- add r0, sp, 0x17C
- str r1, [r0, 0x4]
- bl sub_8002C60
- b _080A106A
-_080A0F98:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r6, r0, 16
- cmp r6, 0
- blt _080A1074
- mov r5, r9
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- movs r2, 0xC2
- lsls r2, 1
- add r2, sp
- mov r8, r2
- ldr r2, [r1, 0xC]
- mov r1, r8
- bl _call_via_r2
- ldr r1, [r5]
- ldr r0, [r5, 0x4]
- add r5, sp, 0x18C
- ldr r2, [r1, 0x8]
- adds r1, r5, 0
- bl _call_via_r2
- add r7, sp, 0x194
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_80A8FD8
- add r4, sp, 0x19C
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80A8F9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r7, 0
- adds r3, r4, 0
- bl sub_8002DF0
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A1098
- ldr r3, _080A1004
- mov r0, r8
- adds r1, r3, 0
- adds r2, r7, 0
- b _080A1066
- .align 2, 0
-_080A1004: .4byte gUnknown_81164DC
-_080A1008:
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r7, r0, 16
- cmp r7, 0
- blt _080A1074
- mov r3, r9
- ldr r1, [r3]
- ldr r0, [r3, 0x4]
- add r6, sp, 0x1A4
- ldr r2, [r1, 0xC]
- adds r1, r6, 0
- bl _call_via_r2
- mov r4, r9
- ldr r1, [r4]
- ldr r0, [r4, 0x4]
- add r4, sp, 0x1AC
- ldr r2, [r1, 0x8]
- adds r1, r4, 0
- bl _call_via_r2
- add r5, sp, 0x1B4
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80A8FD8
- ldr r7, _080A1070
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8002DF0
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A1098
- adds r0, r6, 0
- adds r1, r7, 0
- adds r2, r5, 0
- adds r3, r7, 0
-_080A1066:
- bl sub_8002D54
-_080A106A:
- lsls r0, 24
- asrs r1, r0, 24
- b _080A1098
- .align 2, 0
-_080A1070: .4byte gUnknown_81164DC
-_080A1074:
- movs r1, 0x1
- negs r1, r1
- b _080A1098
-_080A107A:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r0, [r0, r5]
- bl sub_809CC90
- adds r1, r0, 0
- b _080A1098
-_080A1088:
- ldr r0, _080A1090
- ldr r1, _080A1094
- bl FatalError
- .align 2, 0
-_080A1090: .4byte gUnknown_81166B4
-_080A1094: .4byte gUnknown_81166C0
-_080A1098:
- mov r0, r9
- bl sub_80A2460
- b _080A1330
-_080A10A0:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl sub_8001658
- adds r2, r0, 0
- mov r3, r10
- strh r2, [r3, 0x28]
- ldr r1, [r3, 0x4]
- ldrb r0, [r1]
- cmp r0, 0xD0
- bne _080A10DE
- lsls r0, r2, 16
- asrs r3, r0, 16
-_080A10C0:
- adds r2, r1, 0
- movs r4, 0x2
- ldrsh r0, [r1, r4]
- cmp r0, r3
- bne _080A10CE
- bl _0809F0C4
-_080A10CE:
- adds r0, r1, 0
- adds r0, 0x10
- mov r5, r10
- str r0, [r5, 0x4]
- adds r1, r0, 0
- ldrb r0, [r2, 0x10]
- cmp r0, 0xD0
- beq _080A10C0
-_080A10DE:
- mov r1, r10
- ldr r0, [r1, 0x4]
- ldrb r0, [r0]
- cmp r0, 0xD1
- beq _080A10EC
- bl _0809EAE0
-_080A10EC:
- ldr r0, _080A10F4
- strh r0, [r1, 0x28]
- bl _0809F0C4
- .align 2, 0
-_080A10F4: .4byte 0x0000ffff
-_080A10F8:
- ldr r7, [sp, 0x14]
- ldr r1, _080A11F0
- movs r0, 0
- str r0, [r1]
- mov r2, r10
- strh r0, [r2, 0x28]
- add r0, sp, 0x8
- ldrb r0, [r0]
- cmp r0, 0xD8
- bgt _080A1176
- cmp r0, 0xD6
- blt _080A1176
- mov r0, r10
- adds r0, 0x50
- ldr r1, [sp, 0x10]
- lsls r1, 16
- asrs r1, 16
- bl sub_8001658
- adds r3, r0, 0
- mov r4, r10
- ldr r1, [r4, 0x4]
- ldrb r0, [r1]
- cmp r0, 0xD0
- bne _080A114E
-_080A112A:
- adds r2, r1, 0
- movs r5, 0x2
- ldrsh r0, [r2, r5]
- cmp r0, r3
- bne _080A1136
- ldr r7, [r2, 0xC]
-_080A1136:
- adds r0, r1, 0
- adds r0, 0x10
- mov r1, r10
- str r0, [r1, 0x4]
- ldrh r1, [r1, 0x28]
- adds r1, 0x1
- mov r4, r10
- strh r1, [r4, 0x28]
- adds r1, r0, 0
- ldrb r0, [r2, 0x10]
- cmp r0, 0xD0
- beq _080A112A
-_080A114E:
- mov r5, r10
- ldr r1, [r5, 0x4]
- ldrb r0, [r1]
- cmp r0, 0xD1
- bne _080A1176
-_080A1158:
- cmp r7, 0
- bne _080A115E
- ldr r7, [r1, 0xC]
-_080A115E:
- mov r0, r10
- ldr r2, [r0, 0x4]
- adds r1, r2, 0
- adds r1, 0x10
- str r1, [r0, 0x4]
- ldrh r0, [r0, 0x28]
- adds r0, 0x1
- mov r3, r10
- strh r0, [r3, 0x28]
- ldrb r0, [r2, 0x10]
- cmp r0, 0xD1
- beq _080A1158
-_080A1176:
- cmp r7, 0
- bne _080A117C
- ldr r7, _080A11F4
-_080A117C:
- mov r4, r10
- ldr r5, [r4, 0x4]
- ldrb r0, [r5]
- cmp r0, 0xD9
- bne _080A11B8
- ldr r0, _080A11F8
- mov r8, r0
- ldr r6, _080A11F0
- movs r1, 0x4
- add r1, r8
- mov r12, r1
-_080A1192:
- ldr r1, [r6]
- lsls r2, r1, 3
- mov r4, r8
- adds r3, r2, r4
- adds r4, r5, 0
- ldr r0, [r4, 0xC]
- str r0, [r3]
- add r2, r12
- adds r1, 0x1
- str r1, [r2]
- str r1, [r6]
- adds r0, r4, 0
- adds r0, 0x10
- mov r5, r10
- str r0, [r5, 0x4]
- adds r5, r0, 0
- ldrb r0, [r4, 0x10]
- cmp r0, 0xD9
- beq _080A1192
-_080A11B8:
- ldr r0, _080A11F0
- ldr r1, [r0]
- cmp r1, 0
- bgt _080A11C4
- bl _0809EAE0
-_080A11C4:
- ldr r3, _080A11F8
- lsls r2, r1, 3
- adds r1, r2, r3
- movs r0, 0
- str r0, [r1]
- adds r0, r3, 0x4
- adds r2, r0
- add r0, sp, 0x8
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- str r0, [r2]
- add r0, sp, 0x8
- ldrb r0, [r0]
- subs r0, 0xD2
- cmp r0, 0x6
- bhi _080A1280
- lsls r0, 2
- ldr r1, _080A11FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A11F0: .4byte gUnknown_203B4AC
-_080A11F4: .4byte gUnknown_81166D8
-_080A11F8: .4byte gUnknown_2039D50
-_080A11FC: .4byte _080A1200
- .align 2, 0
-_080A1200:
- .4byte _080A121C
- .4byte _080A121C
- .4byte _080A123E
- .4byte _080A1260
- .4byte _080A121C
- .4byte _080A123E
- .4byte _080A1260
-_080A121C:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- movs r2, 0x1
- negs r2, r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- str r7, [sp, 0x4]
- adds r0, r3, 0
- movs r3, 0
- bl sub_809B028
- b _080A1280
-_080A123E:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- movs r2, 0x1
- negs r2, r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- str r7, [sp, 0x4]
- adds r0, r3, 0
- movs r3, 0x1
- bl sub_809B028
- b _080A1280
-_080A1260:
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- movs r2, 0x1
- negs r2, r2
- ldr r0, [sp, 0xC]
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- str r7, [sp, 0x4]
- adds r0, r3, 0
- movs r3, 0x2
- bl sub_809B028
-_080A1280:
- mov r0, r9
- movs r1, 0x1
- bl sub_809D8EC
- lsls r0, 24
- cmp r0, 0
- bne _080A1292
- bl _0809EAE0
-_080A1292:
- movs r0, 0
- movs r1, 0xB
- bl sub_80A87AC
- bl _0809F0C4
-_080A129E:
- mov r0, r9
- movs r1, 0x1
- bl sub_809D8EC
- b _080A130A
-_080A12A8:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
-_080A12AC:
- mov r2, r10
-_080A12AE:
- strh r0, [r2, 0x2A]
- bl _0809F0C4
-_080A12B4:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- ldr r0, [sp, 0xC]
- subs r0, r1
- bl OtherRandomCapped
- add r1, sp, 0x8
- ldrh r1, [r1, 0x2]
- adds r1, r0
- mov r4, r10
- strh r1, [r4, 0x2A]
- bl _0809F0C4
-_080A12D0:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- mov r5, r10
- strh r0, [r5, 0x28]
- add r0, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- mov r0, r9
- bl sub_809D8EC
- b _080A130A
-_080A12E6:
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- bl sub_809D9B8
- bl _0809EAE0
-_080A12F4:
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- mov r4, r10
- strh r0, [r4, 0x28]
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r0, r5]
- ldrb r2, [r0, 0x1]
- mov r0, r9
- bl sub_809DA08
-_080A130A:
- lsls r0, 24
-_080A130C:
- cmp r0, 0
- bne _080A1314
- bl _0809EAE0
-_080A1314:
- bl _0809F0C4
-_080A1318:
- mov r1, r10
- adds r1, 0x10
- mov r0, r10
- adds r0, 0x4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
-_080A1324:
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r0, r5]
-_080A132A:
- mov r0, r9
- bl sub_80A242C
-_080A1330:
- mov r1, r10
- str r0, [r1, 0x4]
- bl _0809EAE0
-_080A1338:
- mov r1, r10
- adds r1, 0x10
- mov r0, r10
- adds r0, 0x4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
-_080A1344:
- ldr r2, _080A1364
- add r0, sp, 0x8
- movs r5, 0x2
- ldrsh r1, [r0, r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- mov r1, r10
- str r0, [r1, 0x4]
- str r0, [r1, 0x8]
- bl _0809EAE0
- .align 2, 0
-_080A1364: .4byte gUnknown_812F1F8
-_080A1368:
- mov r1, r10
- adds r1, 0x10
- mov r0, r10
- adds r0, 0x4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
-_080A1374:
- ldr r0, _080A138C
- movs r5, 0
- ldrsh r1, [r0, r5]
- add r0, sp, 0x8
- ldrh r0, [r0, 0x2]
- lsls r0, 16
- cmp r0, 0
- blt _080A1390
- add r0, sp, 0x8
- movs r3, 0x2
- ldrsh r2, [r0, r3]
- b _080A1396
- .align 2, 0
-_080A138C: .4byte gUnknown_2039A34
-_080A1390:
- mov r4, r10
- movs r5, 0xC
- ldrsh r2, [r4, r5]
-_080A1396:
- adds r5, r2, 0
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- cmp r0, 0
- blt _080A13AA
- add r0, sp, 0x8
- movs r4, 0x1
- ldrsb r4, [r0, r4]
- b _080A13B0
-_080A13AA:
- mov r0, r10
- movs r4, 0xE
- ldrsb r4, [r0, r4]
-_080A13B0:
- add r0, sp, 0x1C
- adds r2, r5, 0
- adds r3, r4, 0
- bl GroundMap_GetStationScript
- ldr r0, [sp, 0x1C]
- mov r1, r10
- str r0, [r1, 0x4]
- str r0, [r1, 0x8]
- strh r5, [r1, 0xC]
- strb r4, [r1, 0xE]
- bl _0809EAE0
-_080A13CA:
- mov r0, r10
- adds r0, 0x50
- add r1, sp, 0x8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- bl sub_80A4D7C
- ldr r4, _080A13F4
- strh r0, [r4]
- bl sub_809D940
- movs r3, 0
- ldrsh r0, [r4, r3]
- bl GroundMap_ExecuteEnter
- bl _0809EAE0
- .align 2, 0
-_080A13F4: .4byte gUnknown_2039A34
-_080A13F8:
- movs r0, 0
- mov r4, r10
- str r0, [r4, 0x10]
- str r0, [r4, 0x14]
- bl _0809EAE0
-_080A1404:
- mov r5, r10
- ldr r0, [r5, 0x10]
- cmp r0, 0
- bne _080A1410
-_080A140C:
- movs r0, 0
- b _080A142E
-_080A1410:
- mov r0, r10
- adds r0, 0x4
- mov r1, r10
- adds r1, 0x10
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- movs r0, 0
- mov r5, r10
- str r0, [r5, 0x10]
- str r0, [r5, 0x14]
- bl _0809EAE0
-_080A1428:
- movs r0, 0x1
- b _080A142E
-_080A142C:
- movs r0, 0x4
-_080A142E:
- add sp, 0x1BC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ExecuteScriptCommand
-
- thumb_func_start sub_80A1440
-sub_80A1440:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A14E8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1440
-
- thumb_func_start GroundScript_ExecuteTrigger
-GroundScript_ExecuteTrigger:
- push {r4,r5,lr}
- sub sp, 0xF4
- lsls r0, 16
- asrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- ldr r1, _080A14C8
- adds r0, r1
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- cmp r0, 0xB
- bne _080A14C4
- add r5, sp, 0x10
- ldr r1, _080A14CC
- movs r0, 0
- str r0, [sp]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0
- bl sub_809D600
- movs r0, 0
- add r1, sp, 0x4
- adds r2, r4, 0
- bl sub_809D710
- ldr r3, _080A14D0
- adds r0, r5, 0
- movs r1, 0
- add r2, sp, 0x4
- bl GroundScript_ExecutePP
- add r1, sp, 0x44
- add r0, sp, 0x38
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, _080A14D4
- str r0, [r5, 0x34]
- str r0, [r5, 0x38]
- ldr r1, _080A14D8
- adds r0, r5, 0
- bl HandleAction
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- bl sub_809D648
- cmp r4, 0
- beq _080A14DC
-_080A14C4:
- movs r0, 0
- b _080A14DE
- .align 2, 0
-_080A14C8: .4byte gUnknown_812F1F8
-_080A14CC: .4byte gUnknown_8116488
-_080A14D0: .4byte gUnknown_81166F8
-_080A14D4: .4byte gUnknown_81164E4
-_080A14D8: .4byte gUnknown_8116704
-_080A14DC:
- movs r0, 0x1
-_080A14DE:
- add sp, 0xF4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GroundScript_ExecuteTrigger
-
- thumb_func_start sub_80A14E8
-sub_80A14E8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _080A1514
- add sp, r4
- adds r6, r0, 0
- adds r5, r2, 0
- adds r7, r3, 0
- lsls r1, 24
- lsrs r1, 24
- subs r0, r1, 0x1
- cmp r0, 0x49
- bls _080A1508
- bl _080A236A
-_080A1508:
- lsls r0, 2
- ldr r1, _080A1518
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A1514: .4byte 0xfffffc80
-_080A1518: .4byte _080A151C
- .align 2, 0
-_080A151C:
- .4byte _080A1644
- .4byte _080A164C
- .4byte _080A1672
- .4byte _080A167A
- .4byte _080A1680
- .4byte _080A1688
- .4byte _080A1690
- .4byte _080A1698
- .4byte _080A169E
- .4byte _080A16C6
- .4byte _080A1730
- .4byte _080A1756
- .4byte _080A178C
- .4byte _080A1792
- .4byte _080A17C0
- .4byte _080A17C6
- .4byte _080A1800
- .4byte _080A1814
- .4byte _080A1824
- .4byte _080A1840
- .4byte _080A185E
- .4byte _080A18C2
- .4byte _080A18E2
- .4byte _080A18F2
- .4byte _080A1904
- .4byte _080A197C
- .4byte _080A1988
- .4byte _080A19DC
- .4byte _080A19FC
- .4byte _080A1A0E
- .4byte _080A1A18
- .4byte _080A1A70
- .4byte _080A1AF8
- .4byte _080A1B20
- .4byte _080A1B36
- .4byte _080A1B58
- .4byte _080A1B64
- .4byte _080A1BD8
- .4byte _080A1BE4
- .4byte _080A1C30
- .4byte _080A1C84
- .4byte _080A1DEC
- .4byte _080A1E30
- .4byte _080A1E3C
- .4byte _080A1ED0
- .4byte _080A1ED6
- .4byte _080A1F28
- .4byte _080A1F3C
- .4byte _080A1F44
- .4byte _080A1F50
- .4byte _080A1F80
- .4byte _080A1FDA
- .4byte _080A202C
- .4byte _080A2054
- .4byte _080A2060
- .4byte _080A204A
- .4byte _080A206C
- .4byte _080A2076
- .4byte _080A207C
- .4byte _080A2082
- .4byte _080A20D4
- .4byte _080A20F4
- .4byte _080A21E4
- .4byte _080A228C
- .4byte _080A229E
- .4byte _080A2298
- .4byte _080A22AE
- .4byte _080A22CC
- .4byte _080A22E4
- .4byte _080A2304
- .4byte _080A2320
- .4byte _080A232E
- .4byte _080A233A
- .4byte _080A2346
-_080A1644:
- bl sub_8098C58
- bl _080A236A
-_080A164C:
- bl sub_8011C34
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080A1660
- bl Random
- bl sub_8011C40
-_080A1660:
- movs r0, 0x1
- bl sub_8011C28
- bl sub_8001064
- bl sub_809965C
- bl _080A236A
-_080A1672:
- bl sub_8098CC8
- bl _080A236A
-_080A167A:
- bl sub_80961D8
- b _080A1804
-_080A1680:
- bl sub_8096028
- bl _080A236A
-_080A1688:
- bl sub_80963FC
- bl _080A236A
-_080A1690:
- bl sub_8096488
- bl _080A236A
-_080A1698:
- bl sub_80964B4
- b _080A1804
-_080A169E:
- movs r0, 0x8
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _080A16B0
- bl sub_808D4B0
- b _080A16B4
-_080A16B0:
- bl sub_808D500
-_080A16B4:
- lsls r0, 24
- lsrs r4, r0, 24
- bl nullsub_104
- negs r0, r4
- orrs r0, r4
- lsrs r0, 31
- bl _080A236C
-_080A16C6:
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- beq _080A16D2
- bl _080A236A
-_080A16D2:
- movs r2, 0xE
- ldrsh r0, [r6, r2]
- add r1, sp, 0x314
- bl sub_80A8C4C
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080A16E8
- bl _080A236A
-_080A16E8:
- add r0, sp, 0x314
- ldrb r0, [r0]
- cmp r0, 0x44
- bne _080A16FC
- movs r0, 0x82
- lsls r0, 1
- cmp r1, r0
- bne _080A16FC
- bl _080A203C
-_080A16FC:
- movs r3, 0xE
- ldrsh r0, [r6, r3]
- bl sub_80A90C8
- lsls r0, 16
- ldr r1, _080A172C
- asrs r0, 14
- adds r0, r1
- ldr r1, [r0]
- add r0, sp, 0x4
- bl strcpy
- movs r0, 0
- movs r1, 0x1
- add r2, sp, 0x4
- bl sub_809AE90
-_080A171E:
- lsls r0, 24
-_080A1720:
- cmp r0, 0
- beq _080A1726
- b _080A1EBE
-_080A1726:
- bl _080A236A
- .align 2, 0
-_080A172C: .4byte gUnknown_813237C
-_080A1730:
- movs r0, 0
- movs r1, 0x14
- bl sub_8001658
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2740
- lsls r0, 24
- lsrs r0, 24
- bl sub_80969D0
- movs r1, 0
- cmp r0, 0
- ble _080A1750
- movs r1, 0x1
-_080A1750:
- adds r0, r1, 0
- bl _080A236C
-_080A1756:
- add r4, sp, 0x104
- adds r0, r4, 0
- bl sub_8099394
- lsls r0, 24
- cmp r0, 0
- bne _080A1768
- bl _080A236A
-_080A1768:
- ldr r0, _080A1788
- ldr r1, [r0]
- ldrb r2, [r4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 4
- adds r1, r0
- adds r1, 0x2C
- movs r0, 0
- ldrsb r0, [r1, r0]
-_080A177C:
- cmp r0, 0
- ble _080A1782
- b _080A1EBE
-_080A1782:
- bl _080A236A
- .align 2, 0
-_080A1788: .4byte gUnknown_203B480
-_080A178C:
- bl sub_8097640
- b _080A1804
-_080A1792:
- movs r5, 0x11
-_080A1794:
- lsls r4, r5, 16
- asrs r0, r4, 16
- bl sub_809758C
- lsls r0, 24
- cmp r0, 0
- beq _080A17B6
- lsrs r4, 16
- movs r0, 0
- movs r1, 0x2F
- adds r2, r4, 0
- bl sub_8001784
- cmp r0, 0
- bne _080A17B6
- bl _080A234E
-_080A17B6:
- adds r5, 0x1
- cmp r5, 0x16
- ble _080A1794
- bl _080A236A
-_080A17C0:
- bl sub_80964E4
- b _080A1804
-_080A17C6:
- movs r4, 0x8
- ldrsh r0, [r6, r4]
- cmp r0, 0x1
- beq _080A17D2
- bl _080A236A
-_080A17D2:
- movs r5, 0xA
- ldrsh r0, [r6, r5]
- cmp r0, 0
- beq _080A17DE
- bl _080A236A
-_080A17DE:
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- beq _080A17EA
- bl _080A236A
-_080A17EA:
- movs r2, 0xA
- ldrsh r4, [r6, r2]
- movs r3, 0xE
- ldrsh r0, [r6, r3]
- bl sub_80A8E9C
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_80A87E0
- b _080A171E
-_080A1800:
- bl sub_80A8D20
-_080A1804:
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bl _080A236C
-_080A1814:
- ldr r0, _080A1820
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 2
- ands r0, r1
- b _080A1720
- .align 2, 0
-_080A1820: .4byte gUnknown_20255F0
-_080A1824:
- lsls r0, r5, 16
- asrs r0, 16
- bl sub_80A8D54
- cmp r0, 0
- bne _080A1834
- bl _080A236A
-_080A1834:
- ldrh r0, [r0]
- lsrs r0, 1
- movs r1, 0x1
- ands r0, r1
- bl _080A236C
-_080A1840:
- movs r4, 0x8
- ldrsh r0, [r6, r4]
- cmp r0, 0x1
- beq _080A184C
- bl _080A236A
-_080A184C:
- movs r5, 0xA
- ldrsh r0, [r6, r5]
- bl sub_80A8BFC
- lsls r0, 16
- asrs r0, 16
- bl sub_808DB48
- b _080A171E
-_080A185E:
- lsls r0, r5, 16
- asrs r0, 16
- bl sub_80A7AE8
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0
- bge _080A1872
- bl _080A236A
-_080A1872:
- lsls r4, r7, 8
- ldr r1, [r6]
- ldr r0, [r6, 0x4]
- add r7, sp, 0x318
- ldr r2, [r1, 0xC]
- adds r1, r7, 0
- bl _call_via_r2
- add r6, sp, 0x320
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A8FD8
- add r0, sp, 0x318
- ldr r3, [r0]
- subs r1, r3, r4
- add r0, sp, 0x320
- ldr r2, [r0]
- cmp r1, r2
- ble _080A189E
- bl _080A236A
-_080A189E:
- adds r0, r3, r4
- cmp r0, r2
- bge _080A18A8
- bl _080A236A
-_080A18A8:
- ldr r2, [r7, 0x4]
- subs r0, r2, r4
- ldr r1, [r6, 0x4]
- cmp r0, r1
- ble _080A18B6
- bl _080A236A
-_080A18B6:
- adds r0, r2, r4
- cmp r0, r1
- blt _080A18BE
- b _080A1EBE
-_080A18BE:
- bl _080A236A
-_080A18C2:
- movs r0, 0x1
- bl sub_80A8D54
- cmp r0, 0
- bne _080A18D0
- bl _080A236A
-_080A18D0:
- adds r1, r0, 0
- adds r1, 0x4C
- movs r2, 0
- adds r0, 0x55
-_080A18D8:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080A18D8
- b _080A1EBE
-_080A18E2:
- movs r0, 0xC
- bl sub_80925EC
- movs r0, 0x12
- bl sub_80925EC
- bl _080A236A
-_080A18F2:
- ldr r0, _080A1900
- movs r1, 0x3C
-_080A18F6:
- movs r2, 0xA
- bl sub_80A8F50
- bl _080A236A
- .align 2, 0
-_080A1900: .4byte gUnknown_2039D98
-_080A1904:
- movs r0, 0x51
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80925EC
- add r1, sp, 0x4
- ldr r0, _080A1970
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
- ldm r0!, {r3,r4,r6}
- stm r1!, {r3,r4,r6}
- ldr r0, [r0]
- str r0, [r1]
- add r4, sp, 0x2C
- adds r0, r4, 0
- add r1, sp, 0x4
- bl sub_808D144
- adds r0, r4, 0
- bl sub_808D1DC
- cmp r0, 0
- bne _080A193C
- b _080A1EBE
-_080A193C:
- movs r3, 0
- ldr r1, _080A1974
- mov r8, r1
- lsls r6, r5, 2
- ldr r2, _080A1978
- adds r4, r0, 0
- adds r4, 0x4C
- mov r7, r8
-_080A194C:
- adds r0, r4, r3
- adds r1, r3, r7
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x9
- ble _080A194C
-_080A195A:
- adds r0, r6, r5
- lsls r0, 4
- adds r0, r2
- mov r1, r8
- movs r2, 0xA
- bl sub_80922B4
-_080A1968:
- bl sub_8097848
- bl _080A236A
- .align 2, 0
-_080A1970: .4byte gUnknown_8116710
-_080A1974: .4byte gUnknown_2039D98
-_080A1978: .4byte gUnknown_202E2B8
-_080A197C:
- ldr r0, _080A1984
- movs r1, 0x53
- b _080A18F6
- .align 2, 0
-_080A1984: .4byte gUnknown_2039D98
-_080A1988:
- ldr r0, _080A19D4
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80925EC
- add r1, sp, 0x84
- adds r2, r1, 0
- ldr r0, _080A19D8
- ldm r0!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r0!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldr r0, [r0]
- str r0, [r2]
- add r4, sp, 0xAC
- adds r0, r4, 0
- bl sub_808D144
- adds r0, r4, 0
- bl sub_808D1DC
- adds r4, r0, 0
- cmp r4, 0
- bne _080A19C2
- b _080A1EBE
-_080A19C2:
- bl sub_8097848
- ldrh r1, [r4]
- movs r0, 0x2
- orrs r0, r1
- strh r0, [r4]
- bl _080A236A
- .align 2, 0
-_080A19D4: .4byte 0x00000183
-_080A19D8: .4byte gUnknown_8116738
-_080A19DC:
- ldr r0, _080A19F8
- movs r1, 0
- bl sub_808D434
- adds r2, r0, 0
- cmp r2, 0
- bne _080A19EC
- b _080A1EBE
-_080A19EC:
- ldrh r1, [r2]
- movs r0, 0x2
- orrs r0, r1
- strh r0, [r2]
- bl _080A236A
- .align 2, 0
-_080A19F8: .4byte 0x00000183
-_080A19FC:
- movs r0, 0x82
- lsls r0, 1
-_080A1A00:
- bl sub_808D278
- cmp r0, 0
- bne _080A1A0A
- b _080A1EBE
-_080A1A0A:
- bl _080A236A
-_080A1A0E:
- ldr r0, _080A1A14
- movs r1, 0x7C
- b _080A18F6
- .align 2, 0
-_080A1A14: .4byte gUnknown_2039D98
-_080A1A18:
- add r1, sp, 0x108
- adds r2, r1, 0
- ldr r0, _080A1A64
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldr r0, [r0]
- str r0, [r2]
- add r4, sp, 0x130
- adds r0, r4, 0
- bl sub_808D144
- adds r0, r4, 0
- bl sub_808D1DC
- cmp r0, 0
- bne _080A1A42
- b _080A1EBE
-_080A1A42:
- movs r3, 0
- ldr r4, _080A1A68
- mov r8, r4
- lsls r6, r5, 2
- ldr r2, _080A1A6C
- adds r4, r0, 0
- adds r4, 0x4C
- mov r7, r8
-_080A1A52:
- adds r0, r4, r3
- adds r1, r3, r7
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x9
- ble _080A1A52
- b _080A195A
- .align 2, 0
-_080A1A64: .4byte gUnknown_8116760
-_080A1A68: .4byte gUnknown_2039D98
-_080A1A6C: .4byte gUnknown_202E2B8
-_080A1A70:
- movs r0, 0x9E
- movs r1, 0x1
- bl sub_80026E8
- movs r0, 0x91
- movs r1, 0
- bl sub_808D434
- cmp r0, 0
- bne _080A1A9A
- ldr r3, _080A1AEC
- str r0, [sp]
- movs r0, 0x91
- movs r1, 0
- movs r2, 0
- bl sub_808D2E8
- cmp r0, 0
- beq _080A1A9A
- bl sub_8097848
-_080A1A9A:
- movs r0, 0x92
- movs r1, 0
- bl sub_808D434
- cmp r0, 0
- bne _080A1ABC
- ldr r3, _080A1AF0
- str r0, [sp]
- movs r0, 0x92
- movs r1, 0
- movs r2, 0
- bl sub_808D2E8
- cmp r0, 0
- beq _080A1ABC
- bl sub_8097848
-_080A1ABC:
- movs r0, 0x90
- movs r1, 0
- bl sub_808D434
- cmp r0, 0
- beq _080A1ACC
- bl _080A236A
-_080A1ACC:
- ldr r3, _080A1AF4
- str r0, [sp]
- movs r0, 0x90
- movs r1, 0
- movs r2, 0
- bl sub_808D2E8
- cmp r0, 0
- bne _080A1AE2
- bl _080A236A
-_080A1AE2:
- bl sub_8097848
- bl _080A236A
- .align 2, 0
-_080A1AEC: .4byte gUnknown_8116788
-_080A1AF0: .4byte gUnknown_811678C
-_080A1AF4: .4byte gUnknown_8116790
-_080A1AF8:
- movs r0, 0x90
- bl sub_808E734
- lsls r0, 24
- cmp r0, 0
- bne _080A1B08
- bl _080A236A
-_080A1B08:
- movs r0, 0x91
- bl sub_808E734
- lsls r0, 24
- cmp r0, 0
- bne _080A1B18
- bl _080A236A
-_080A1B18:
- movs r0, 0x92
- bl sub_808E734
- b _080A171E
-_080A1B20:
- bl sub_808D33C
- ldrh r0, [r0, 0x8]
- subs r0, 0x90
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _080A1B32
- b _080A1EBE
-_080A1B32:
- bl _080A236A
-_080A1B36:
- bl sub_808D33C
- cmp r0, 0
- beq _080A1B4A
- movs r5, 0x8
- ldrsh r1, [r0, r5]
- ldr r0, _080A1B54
- cmp r1, r0
- bne _080A1B4A
- b _080A203C
-_080A1B4A:
- ldr r0, _080A1B54
- bl sub_8098134
- b _080A171E
- .align 2, 0
-_080A1B54: .4byte 0x00000113
-_080A1B58:
- ldr r0, _080A1B60
- movs r1, 0x79
- b _080A18F6
- .align 2, 0
-_080A1B60: .4byte gUnknown_2039D98
-_080A1B64:
- ldr r4, _080A1BCC
- adds r0, r4, 0
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092600
- lsls r0, 24
- cmp r0, 0
- bne _080A1B88
- adds r0, r4, 0
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80925EC
-_080A1B88:
- add r1, sp, 0x188
- adds r2, r1, 0
- ldr r0, _080A1BD0
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r0!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r0!, {r4-r6}
- stm r2!, {r4-r6}
- ldr r0, [r0]
- str r0, [r2]
- add r4, sp, 0x1B0
- adds r0, r4, 0
- bl sub_808D144
- adds r0, r4, 0
- bl sub_808D1DC
- cmp r0, 0
- bne _080A1BB2
- b _080A1EBE
-_080A1BB2:
- movs r2, 0
- adds r3, r0, 0
- adds r3, 0x4C
- ldr r4, _080A1BD4
-_080A1BBA:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _080A1BBA
- b _080A1968
- .align 2, 0
-_080A1BCC: .4byte 0x00000199
-_080A1BD0: .4byte gUnknown_8116794
-_080A1BD4: .4byte gUnknown_2039D98
-_080A1BD8:
- ldr r0, _080A1BE0
- movs r1, 0x7A
- b _080A18F6
- .align 2, 0
-_080A1BE0: .4byte gUnknown_2039D98
-_080A1BE4:
- add r1, sp, 0x208
- adds r2, r1, 0
- ldr r0, _080A1C28
- ldm r0!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r0!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldr r0, [r0]
- str r0, [r2]
- add r4, sp, 0x230
- adds r0, r4, 0
- bl sub_808D144
- adds r0, r4, 0
- bl sub_808D1DC
- cmp r0, 0
- bne _080A1C0E
- b _080A1EBE
-_080A1C0E:
- movs r2, 0
- adds r3, r0, 0
- adds r3, 0x4C
- ldr r4, _080A1C2C
-_080A1C16:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _080A1C16
- b _080A1968
- .align 2, 0
-_080A1C28: .4byte gUnknown_81167BC
-_080A1C2C: .4byte gUnknown_2039D98
-_080A1C30:
- bl sub_8090A34
- cmp r0, 0x13
- ble _080A1C70
- ldr r0, _080A1C64
- ldrb r4, [r0, 0x2]
- adds r0, r4, 0
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- bne _080A1C4A
- b _080A236A
-_080A1C4A:
- ldr r0, _080A1C68
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x50
- adds r1, r0, r1
- ldrh r2, [r1]
- ldr r0, _080A1C6C
- cmp r2, r0
- bls _080A1C5E
- b _080A236A
-_080A1C5E:
- adds r0, r2, 0x1
- strh r0, [r1]
- b _080A236A
- .align 2, 0
-_080A1C64: .4byte gUnknown_81167E4
-_080A1C68: .4byte gUnknown_203B460
-_080A1C6C: .4byte 0x000003e6
-_080A1C70:
- ldr r0, _080A1C80
- ldrb r0, [r0, 0x2]
- movs r1, 0
- bl sub_809124C
- bl sub_80910B4
- b _080A236A
- .align 2, 0
-_080A1C80: .4byte gUnknown_81167E4
-_080A1C84:
- movs r0, 0xD1
- lsls r0, 1
- bl RandomCapped
- adds r0, 0x1
- lsls r0, 16
- asrs r5, r0, 16
- movs r0, 0x20
- bl RandomCapped
- adds r4, r0, 0
- movs r7, 0xD2
- lsls r7, 1
- movs r6, 0
- ldr r0, _080A1DE0
- mov r8, r0
-_080A1CA4:
- adds r0, r5, 0x1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, r8
- ble _080A1CB0
- movs r5, 0x1
-_080A1CB0:
- subs r7, 0x1
- cmp r7, 0
- bge _080A1CCC
- cmp r6, 0
- bne _080A1CBC
- b _080A2360
-_080A1CBC:
- cmp r4, r6
- blt _080A1CCC
- adds r0, r6, 0
- bl RandomCapped
- adds r4, r0, 0
- movs r7, 0xD2
- lsls r7, 1
-_080A1CCC:
- adds r0, r5, 0
- subs r0, 0x90
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _080A1CA4
- ldr r0, _080A1DE4
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0xB
- cmp r5, r0
- beq _080A1CA4
- subs r0, 0xD
- cmp r5, r0
- beq _080A1CA4
- subs r0, 0x88
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x67
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x23
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x3
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- cmp r5, r8
- beq _080A1CA4
- cmp r5, 0x96
- beq _080A1CA4
- subs r0, 0x5
- cmp r5, r0
- beq _080A1CA4
- cmp r5, 0x97
- beq _080A1CA4
- subs r0, 0x5
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- subs r0, 0x8C
- cmp r5, r0
- beq _080A1CA4
- subs r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x2
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x5
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x82
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- adds r0, 0x1
- cmp r5, r0
- beq _080A1CA4
- subs r0, 0x83
- cmp r5, r0
- beq _080A1CA4
- adds r0, r5, 0
- bl sub_80981DC
- lsls r0, 24
- cmp r0, 0
- beq _080A1CA4
- adds r0, r5, 0
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092600
- lsls r0, 24
- cmp r0, 0
- beq _080A1D9E
- adds r0, r5, 0
- bl sub_808E734
- lsls r0, 24
- cmp r0, 0
- bne _080A1CA4
- adds r0, r5, 0
- bl sub_808D278
- cmp r0, 0
- beq _080A1CA4
-_080A1D9E:
- adds r6, 0x1
- subs r4, 0x1
- cmp r4, 0
- blt _080A1DA8
- b _080A1CA4
-_080A1DA8:
- movs r0, 0
- movs r1, 0x1F
- adds r2, r5, 0
- bl sub_80018D8
- ldr r4, _080A1DE8
- adds r0, r5, 0
- bl sub_808DBA8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0
- bl sub_8092578
- adds r0, r5, 0
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092600
- lsls r0, 24
- cmp r0, 0
- bne _080A1EBE
- b _080A203C
- .align 2, 0
-_080A1DE0: .4byte 0x000001a3
-_080A1DE4: .4byte 0x0000019b
-_080A1DE8: .4byte gUnknown_202E628
-_080A1DEC:
- movs r0, 0
- movs r1, 0x1F
- bl sub_8001658
- lsls r0, 16
- asrs r5, r0, 16
- ldr r4, _080A1E2C
- adds r0, r5, 0
- bl sub_808DBA8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0
- bl sub_8092578
- cmp r5, 0
- bne _080A1E14
- b _080A236A
-_080A1E14:
- adds r0, r5, 0
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092600
- lsls r0, 24
- cmp r0, 0
- bne _080A1EBE
- b _080A203C
- .align 2, 0
-_080A1E2C: .4byte gUnknown_202E628
-_080A1E30:
- ldr r0, _080A1E38
- movs r1, 0x20
- b _080A18F6
- .align 2, 0
-_080A1E38: .4byte gUnknown_2039D98
-_080A1E3C:
- cmp r5, 0
- bne _080A1E42
- b _080A2360
-_080A1E42:
- movs r0, 0
- movs r1, 0x1F
- bl sub_8001658
- lsls r0, 16
- asrs r5, r0, 16
- adds r6, r5, 0
- ldr r4, _080A1EC4
- adds r0, r5, 0
- bl sub_808DBA8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0
- bl sub_8092578
- cmp r5, 0
- bne _080A1E6C
- b _080A236A
-_080A1E6C:
- adds r0, r5, 0
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092600
- lsls r0, 24
- cmp r0, 0
- bne _080A1E8E
- adds r0, r5, 0
- bl sub_808DBA8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80925EC
-_080A1E8E:
- ldr r3, _080A1EC8
- movs r0, 0
- str r0, [sp]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0
- bl sub_808D2E8
- cmp r0, 0
- bne _080A1EA4
- b _080A236A
-_080A1EA4:
- movs r2, 0
- adds r3, r0, 0
- adds r3, 0x4C
- ldr r4, _080A1ECC
-_080A1EAC:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _080A1EAC
- bl sub_8097848
-_080A1EBE:
- movs r0, 0x1
- b _080A236C
- .align 2, 0
-_080A1EC4: .4byte gUnknown_202E628
-_080A1EC8: .4byte gUnknown_81167E8
-_080A1ECC: .4byte gUnknown_2039D98
-_080A1ED0:
- bl sub_809211C
- b _080A177C
-_080A1ED6:
- bl sub_8092178
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_809211C
- cmp r0, 0
- bgt _080A1EE8
- b _080A236A
-_080A1EE8:
- bl sub_8092158
- bl sub_8092178
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- bl sub_80921A8
- adds r1, r0, 0
- ldr r4, _080A1F30
- adds r0, r4, 0
- bl strcpy
- adds r0, r5, 0
- bl sub_80921A8
- adds r1, r0, 0
- adds r4, 0x50
- adds r0, r4, 0
- bl strcpy
- movs r1, 0x1
- negs r1, r1
- ldr r2, _080A1F34
- movs r0, 0
- bl sub_809AE90
- lsls r0, 24
- cmp r0, 0
- bne _080A1EBE
-_080A1F28:
- ldr r0, _080A1F38
- bl sub_80913A0
- b _080A236A
- .align 2, 0
-_080A1F30: .4byte gUnknown_202DE58
-_080A1F34: .4byte gUnknown_81167EC
-_080A1F38: .4byte 0x00002710
-_080A1F3C:
- ldr r0, _080A1F40
- b _080A1A00
- .align 2, 0
-_080A1F40: .4byte 0x00000133
-_080A1F44:
- ldr r0, _080A1F4C
- movs r1, 0x52
- b _080A18F6
- .align 2, 0
-_080A1F4C: .4byte gUnknown_2039D98
-_080A1F50:
- add r1, sp, 0x288
- adds r2, r1, 0
- ldr r0, _080A1F7C
- ldm r0!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r0!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldr r0, [r0]
- str r0, [r2]
- add r4, sp, 0x2B0
- adds r0, r4, 0
- bl sub_808D144
- adds r0, r4, 0
- bl sub_808D1DC
- cmp r0, 0
- beq _080A1EBE
- b _080A1968
- .align 2, 0
-_080A1F7C: .4byte gUnknown_811681C
-_080A1F80:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x3
- movs r1, 0x12
- bl sub_8001D44
- lsls r0, 24
- cmp r0, 0
- bne _080A1F94
- b _080A236A
-_080A1F94:
- movs r0, 0
- movs r1, 0xF
- bl sub_8001658
- cmp r0, 0x4
- bne _080A1FA2
- b _080A236A
-_080A1FA2:
- movs r0, 0
- movs r1, 0x42
- movs r2, 0
- bl sub_8001784
- cmp r0, 0
- ble _080A1FB2
- b _080A236A
-_080A1FB2:
- movs r0, 0x80
- lsls r0, 1
- bl OtherRandomCapped
- cmp r0, 0
- bne _080A1FCC
- movs r0, 0
- movs r1, 0x42
- movs r2, 0
- movs r3, 0x4
- bl sub_800199C
- b _080A1EBE
-_080A1FCC:
- movs r0, 0
- movs r1, 0x42
- movs r2, 0
- movs r3, 0x1
- bl sub_800199C
- b _080A236A
-_080A1FDA:
- ldr r6, _080A200C
- ldr r7, _080A2010
- movs r5, 0x2
-_080A1FE0:
- bl sub_8090A34
- cmp r0, 0x13
- ble _080A2018
- ldrb r4, [r6, 0x2]
- adds r0, r4, 0
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _080A2024
- ldr r0, _080A2014
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x50
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r7
- bhi _080A2024
- adds r0, 0x1
- strh r0, [r1]
- b _080A2024
- .align 2, 0
-_080A200C: .4byte gUnknown_8116844
-_080A2010: .4byte 0x000003e6
-_080A2014: .4byte gUnknown_203B460
-_080A2018:
- ldrb r0, [r6, 0x2]
- movs r1, 0
- bl sub_809124C
- bl sub_80910B4
-_080A2024:
- subs r5, 0x1
- cmp r5, 0
- bge _080A1FE0
- b _080A236A
-_080A202C:
- bl sub_808D33C
- cmp r0, 0
- beq _080A2040
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- cmp r0, 0x71
- bne _080A2040
-_080A203C:
- movs r0, 0x2
- b _080A236C
-_080A2040:
- movs r0, 0x71
- bl sub_8098134
- bl _080A171E
-_080A204A:
- movs r0, 0
- movs r1, 0x1
- bl sub_80A56A0
- b _080A236A
-_080A2054:
- add r0, sp, 0x328
- str r5, [r0]
- str r7, [r0, 0x4]
- bl sub_80A56F0
- b _080A236A
-_080A2060:
- add r0, sp, 0x330
- str r5, [r0]
- str r7, [r0, 0x4]
- bl sub_80A5704
- b _080A236A
-_080A206C:
- lsls r0, r5, 16
- lsrs r0, 16
- bl sub_809C6CC
- b _080A236A
-_080A2076:
- bl sub_809C6EC
- b _080A236A
-_080A207C:
- bl sub_809C760
- b _080A236A
-_080A2082:
- movs r0, 0
- movs r4, 0x80
- lsls r4, 9
-_080A2088:
- movs r1, 0x80
- lsls r1, 15
- bl sub_80A86C8
- adds r0, r4, 0
- movs r5, 0x80
- lsls r5, 9
- adds r4, r5
- asrs r0, 16
- cmp r0, 0x17
- ble _080A2088
- movs r0, 0
- adds r4, r5, 0
-_080A20A2:
- movs r1, 0x80
- lsls r1, 15
- bl sub_80AC1B0
- adds r0, r4, 0
- movs r6, 0x80
- lsls r6, 9
- adds r4, r6
- asrs r0, 16
- cmp r0, 0xF
- ble _080A20A2
- movs r0, 0
- adds r4, r6, 0
-_080A20BC:
- movs r1, 0x80
- lsls r1, 15
- bl sub_80AD0C8
- adds r0, r4, 0
- movs r1, 0x80
- lsls r1, 9
- adds r4, r1
- asrs r0, 16
- cmp r0, 0xF
- ble _080A20BC
- b _080A236A
-_080A20D4:
- add r0, sp, 0x338
- str r5, [r0]
- adds r4, r0, 0
- str r7, [r4, 0x4]
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80A5984
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- adds r1, r4, 0
- bl sub_80A59A0
- b _080A236A
-_080A20F4:
- add r1, sp, 0x308
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- strb r2, [r1, 0x1]
- strb r0, [r1, 0x2]
- strb r0, [r1, 0x3]
- str r2, [r1, 0x4]
- ldr r0, _080A21D8
- ldr r2, _080A21DC
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1, 0x8]
- movs r0, 0x1
- negs r0, r0
- lsls r2, r5, 16
- asrs r2, 16
- lsls r3, r7, 24
- asrs r3, 24
- bl GroundEffect_Add
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A2128
- b _080A236A
-_080A2128:
- bl sub_80AD158
- adds r7, r0, 0
- add r4, sp, 0x340
- add r5, sp, 0x348
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A579C
- ldr r0, [r4, 0x4]
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1
- str r0, [r4, 0x4]
- ldr r0, [r5, 0x4]
- adds r0, r1
- str r0, [r5, 0x4]
- ldr r1, [r6]
- ldr r0, [r6, 0x4]
- add r6, sp, 0x350
- ldr r2, [r1, 0xC]
- adds r1, r6, 0
- bl _call_via_r2
- add r1, sp, 0x350
- ldr r2, [r1]
- add r0, sp, 0x340
- ldr r0, [r0]
- cmp r2, r0
- blt _080A216E
- add r0, sp, 0x348
- ldr r0, [r0]
- cmp r2, r0
- blt _080A2170
- subs r0, 0x1
-_080A216E:
- str r0, [r1]
-_080A2170:
- ldr r1, [r6, 0x4]
- ldr r0, [r4, 0x4]
- cmp r1, r0
- blt _080A2180
- ldr r0, [r5, 0x4]
- cmp r1, r0
- blt _080A2182
- subs r0, 0x1
-_080A2180:
- str r0, [r6, 0x4]
-_080A2182:
- add r1, sp, 0x340
- ldr r0, [r1]
- ldr r2, _080A21E0
- adds r0, r2
- str r0, [r1]
- ldr r0, [r4, 0x4]
- adds r0, r2
- str r0, [r4, 0x4]
- add r1, sp, 0x348
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2
- str r0, [r1]
- ldr r0, [r5, 0x4]
- adds r0, r2
- str r0, [r5, 0x4]
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r3, [r1, 0x20]
- adds r1, r4, 0
- adds r2, r5, 0
- bl _call_via_r3
- ldr r1, [r7]
- ldr r0, [r7, 0x4]
- ldr r2, [r1, 0x24]
- adds r1, r6, 0
- bl _call_via_r2
- movs r0, 0
- movs r1, 0
- add r2, sp, 0x358
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r2, [r7]
- ldr r0, [r7, 0x4]
- add r1, sp, 0x358
- ldr r2, [r2, 0x48]
- bl _call_via_r2
- b _080A1EBE
- .align 2, 0
-_080A21D8: .4byte gUnknown_812F1F8
-_080A21DC: .4byte 0x00001310
-_080A21E0: .4byte 0xfffffc00
-_080A21E4:
- ldr r0, _080A2288
- ldrh r4, [r0]
- ldrh r0, [r0, 0x2]
- movs r1, 0xC
- ands r0, r1
- cmp r0, 0
- beq _080A21F4
- b _080A236A
-_080A21F4:
- adds r0, r4, 0
- bl sub_809CFE8
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A2282
- movs r2, 0x80
- lsls r2, 1
- add r0, sp, 0x360
- bl sub_8002BB8
- add r0, sp, 0x360
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- add r2, sp, 0x368
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x2
- ands r4, r0
- cmp r4, 0
- beq _080A2226
- movs r0, 0x4
-_080A2226:
- cmp r0, 0
- beq _080A2282
- movs r3, 0xDA
- lsls r3, 2
- add r3, sp
- mov r9, r3
- add r7, sp, 0x370
- add r4, sp, 0x378
- mov r8, r0
-_080A2238:
- ldr r1, [r6]
- ldr r0, [r6, 0x4]
- ldr r2, [r1, 0x48]
- mov r1, r9
- bl _call_via_r2
- cmp r0, 0
- beq _080A2276
- movs r5, 0
- str r5, [r7]
- mov r1, r9
- ldr r0, [r1, 0x4]
- str r0, [r7, 0x4]
- ldr r1, [r6]
- ldr r0, [r6, 0x4]
- ldr r2, [r1, 0x48]
- adds r1, r7, 0
- bl _call_via_r2
- cmp r0, 0
- beq _080A2276
- mov r2, r9
- ldr r0, [r2]
- str r0, [r4]
- str r5, [r4, 0x4]
- ldr r1, [r6]
- ldr r0, [r6, 0x4]
- ldr r2, [r1, 0x48]
- adds r1, r4, 0
- bl _call_via_r2
-_080A2276:
- movs r3, 0x1
- negs r3, r3
- add r8, r3
- mov r5, r8
- cmp r5, 0
- bne _080A2238
-_080A2282:
- movs r0, 0x1
- negs r0, r0
- b _080A236C
- .align 2, 0
-_080A2288: .4byte gUnknown_20255F0
-_080A228C:
- negs r0, r5
- orrs r0, r5
- lsrs r0, 31
- bl sub_80993C0
- b _080A236A
-_080A2298:
- movs r0, 0x1
- bl sub_8011C28
-_080A229E:
- adds r0, r5, 0
- bl sub_8098F00
- lsls r0, r5, 16
- lsrs r0, 16
- bl sub_80118C4
- b _080A236A
-_080A22AE:
- bl sub_800C068
- ldr r1, _080A22C4
- strh r0, [r1]
- lsls r0, 16
- ldr r1, _080A22C8
- cmp r0, r1
- beq _080A22C0
- b _080A1EBE
-_080A22C0:
- b _080A236A
- .align 2, 0
-_080A22C4: .4byte gUnknown_2039DA8
-_080A22C8: .4byte 0x03e70000
-_080A22CC:
- ldr r4, _080A22DC
- ldrh r0, [r4]
- ldr r5, _080A22E0
- cmp r0, r5
- beq _080A236A
- bl sub_80118F0
- b _080A2312
- .align 2, 0
-_080A22DC: .4byte gUnknown_2039DA8
-_080A22E0: .4byte 0x000003e7
-_080A22E4:
- ldr r4, _080A22FC
- ldrh r0, [r4]
- ldr r6, _080A2300
- cmp r0, r6
- beq _080A236A
- lsls r1, r5, 16
- lsrs r1, 16
- bl sub_8011900
- strh r6, [r4]
- b _080A1EBE
- .align 2, 0
-_080A22FC: .4byte gUnknown_2039DA8
-_080A2300: .4byte 0x000003e7
-_080A2304:
- ldr r4, _080A2318
- ldrh r0, [r4]
- ldr r5, _080A231C
- cmp r0, r5
- beq _080A236A
- bl sub_8011914
-_080A2312:
- strh r5, [r4]
- b _080A1EBE
- .align 2, 0
-_080A2318: .4byte gUnknown_2039DA8
-_080A231C: .4byte 0x000003e7
-_080A2320:
- lsls r0, r5, 16
- lsrs r0, 16
- lsls r1, r7, 16
- lsrs r1, 16
- bl sub_80997F4
- b _080A236A
-_080A232E:
- lsls r1, r5, 16
- lsrs r1, 16
- movs r0, 0x1E
- bl sub_80997F4
- b _080A236A
-_080A233A:
- lsls r1, r5, 16
- lsrs r1, 16
- movs r0, 0
- bl GroundSprite_ExtendPaletteAdd
- b _080A236A
-_080A2346:
- movs r0, 0
- bl GroundSprite_ExtendPaletteDelete
- b _080A236A
-_080A234E:
- movs r0, 0
- movs r1, 0x2F
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_800199C
- adds r0, r5, 0
- subs r0, 0x10
- b _080A236C
-_080A2360:
- movs r0, 0
- movs r1, 0x1F
- movs r2, 0
- bl sub_80018D8
-_080A236A:
- movs r0, 0
-_080A236C:
- movs r3, 0xE0
- lsls r3, 2
- add sp, r3
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A14E8
-
- thumb_func_start GroundScript_Unlock
-GroundScript_Unlock:
- push {r4-r7,lr}
- ldr r1, _080A241C
- ldrb r0, [r1]
- cmp r0, 0
- beq _080A2414
- movs r0, 0
- strb r0, [r1]
- movs r6, 0
-_080A2390:
- ldr r0, _080A2420
- adds r7, r6, r0
- ldrb r0, [r7]
- cmp r0, 0
- beq _080A240E
- movs r0, 0x1
- ldr r1, _080A2424
- adds r2, r6, 0
- bl Log
- lsls r5, r6, 16
- asrs r5, 16
- adds r0, r5, 0
- bl sub_80A4D2C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_80A8B1C
- orrs r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_80AC320
- orrs r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_80AD238
- orrs r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A2428
- adds r5, r6, r0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080A240C
- cmp r4, 0
- beq _080A240E
- movs r0, 0x80
- adds r4, r6, 0
- orrs r4, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80A4D2C
- adds r0, r4, 0
- bl sub_80A8B1C
- adds r0, r4, 0
- bl sub_80AC320
- adds r0, r4, 0
- bl sub_80AD238
- movs r0, 0
- strb r0, [r5]
-_080A240C:
- strb r0, [r7]
-_080A240E:
- adds r6, 0x1
- cmp r6, 0x80
- ble _080A2390
-_080A2414:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A241C: .4byte gUnknown_2039A36
-_080A2420: .4byte gUnknown_2039A38
-_080A2424: .4byte gUnknown_8116848
-_080A2428: .4byte gUnknown_2039AC0
- thumb_func_end GroundScript_Unlock
-
- thumb_func_start sub_80A242C
-sub_80A242C:
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r1, 0
- ldr r0, [r0, 0x2C]
- adds r2, r0, 0
- adds r2, 0x10
- mov r3, sp
-_080A243A:
- mov r1, sp
- adds r0, r2, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r0]
- str r0, [r1]
- adds r2, 0x10
- ldrb r0, [r3]
- cmp r0, 0xF4
- bne _080A243A
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r4, r0
- bne _080A243A
- adds r0, r2, 0
- add sp, 0x10
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A242C
-
- thumb_func_start sub_80A2460
-sub_80A2460:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r5, r0, 0
- mov r8, r1
- ldr r6, [r5, 0x28]
- mov r4, sp
-_080A2470:
- mov r0, sp
- adds r1, r6, 0
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldr r1, [r1]
- str r1, [r0]
- ldrb r0, [r4]
- cmp r0, 0xCC
- bne _080A249E
- ldr r1, [sp, 0x4]
- mov r0, r8
- movs r2, 0x2
- bl FlagJudge
- lsls r0, 24
- cmp r0, 0
- beq _080A24F0
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_80A242C
- b _080A24F4
-_080A249E:
- cmp r0, 0xCD
- bne _080A24BE
- ldr r1, [sp, 0x4]
- ldrb r2, [r4, 0x1]
- mov r0, r8
- bl FlagJudge
- lsls r0, 24
- cmp r0, 0
- beq _080A24F0
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl sub_80A242C
- b _080A24F4
-_080A24BE:
- cmp r0, 0xCE
- bne _080A24EC
- ldr r1, [sp, 0x4]
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- adds r0, 0x74
- bl sub_8001658
- adds r1, r0, 0
- ldrb r2, [r4, 0x1]
- mov r0, r8
- bl FlagJudge
- lsls r0, 24
- cmp r0, 0
- beq _080A24F0
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- adds r0, r5, 0
- bl sub_80A242C
- b _080A24F4
-_080A24EC:
- adds r0, r6, 0
- b _080A24F4
-_080A24F0:
- adds r6, 0x10
- b _080A2470
-_080A24F4:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2460
-
- thumb_func_start sub_80A2500
-sub_80A2500:
- push {r4,lr}
- adds r4, r0, 0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A2524
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- bl sub_80A8BBC
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_809AB4C
-_080A2524:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2500
-
- thumb_func_start sub_80A252C
-sub_80A252C:
- push {r4,lr}
- adds r4, r0, 0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A2550
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- bl sub_80A8BBC
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_809ABB4
-_080A2550:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A252C
-
- thumb_func_start sub_80A2558
-sub_80A2558:
- push {r4,lr}
- adds r4, r0, 0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A257C
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- bl sub_80A8BBC
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_809AC18
-_080A257C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2558
-
- thumb_func_start sub_80A2584
-sub_80A2584:
- push {lr}
- lsls r1, 16
- asrs r1, 16
- lsls r0, 16
- asrs r0, 16
- bl sub_809ABB4
- pop {r0}
- bx r0
- thumb_func_end sub_80A2584
-
- thumb_func_start sub_80A2598
-sub_80A2598:
- push {lr}
- lsls r1, 16
- asrs r1, 16
- lsls r0, 16
- asrs r0, 16
- bl sub_809AC18
- pop {r0}
- bx r0
- thumb_func_end sub_80A2598
-
- thumb_func_start sub_80A25AC
-sub_80A25AC:
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl sub_8098F88
- lsls r0, 24
- cmp r0, 0
- beq _080A25C2
- adds r0, r4, 0
- b _080A2602
-_080A25C2:
- cmp r4, 0x32
- bne _080A25CA
- movs r0, 0x32
- b _080A2602
-_080A25CA:
- movs r0, 0xC
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _080A25E0
- ldr r0, _080A25DC
- b _080A2602
- .align 2, 0
-_080A25DC: .4byte 0x000003e7
-_080A25E0:
- movs r0, 0xD
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080A25F0
- movs r0, 0x13
- b _080A2602
-_080A25F0:
- cmp r4, 0x1
- bne _080A2600
- movs r0, 0
- movs r1, 0x28
- bl sub_8001658
- movs r0, 0x1
- b _080A2602
-_080A2600:
- adds r0, r5, 0
-_080A2602:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A25AC
-
- thumb_func_start sub_80A2608
-sub_80A2608:
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A261C
- adds r0, r1
- bx lr
- .align 2, 0
-_080A261C: .4byte gUnknown_81168A8
- thumb_func_end sub_80A2608
-
- thumb_func_start sub_80A2620
-sub_80A2620:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_80A26B8
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A2640
- adds r0, r1
- pop {r1}
- bx r1
- .align 2, 0
-_080A2640: .4byte gUnknown_81168A8
- thumb_func_end sub_80A2620
-
- thumb_func_start sub_80A2644
-sub_80A2644:
- ldr r1, _080A2650
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080A2650: .4byte gUnknown_8116F24
- thumb_func_end sub_80A2644
-
- thumb_func_start sub_80A2654
-sub_80A2654:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2608
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- pop {r1}
- bx r1
- thumb_func_end sub_80A2654
-
- thumb_func_start sub_80A2668
-sub_80A2668:
- push {lr}
- lsls r0, 16
- ldr r2, _080A267C
- adds r1, r0, r2
- lsrs r0, r1, 16
- cmp r0, 0x18
- bls _080A2680
- movs r0, 0x1
- negs r0, r0
- b _080A2682
- .align 2, 0
-_080A267C: .4byte 0xffc90000
-_080A2680:
- asrs r0, r1, 16
-_080A2682:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2668
-
- thumb_func_start sub_80A2688
-sub_80A2688:
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r3, r1, 0
- adds r2, r1, 0
- subs r2, 0x4B
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x16
- bhi _080A26A0
- adds r0, r2, 0
- b _080A26B4
-_080A26A0:
- cmp r1, 0x2F
- bne _080A26A8
- movs r0, 0x17
- b _080A26B4
-_080A26A8:
- cmp r3, 0x30
- beq _080A26B2
- movs r0, 0x1
- negs r0, r0
- b _080A26B4
-_080A26B2:
- movs r0, 0x18
-_080A26B4:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2688
-
- thumb_func_start sub_80A26B8
-sub_80A26B8:
- lsls r0, 16
- ldr r1, _080A26C8
- asrs r0, 15
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_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_809017C.s b/asm/code_809017C.s
new file mode 100644
index 0000000..01f107b
--- /dev/null
+++ b/asm/code_809017C.s
@@ -0,0 +1,63219 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_809017C
+sub_809017C:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ mov r0, sp
+ bl sub_80901D8
+ movs r5, 0
+ ldr r2, _080901AC
+ ldrb r0, [r2]
+ cmp r0, 0x3F
+ beq _080901C6
+ mov r3, sp
+ ldrb r6, [r3]
+ movs r4, 0
+ adds r1, r2, 0
+_0809019A:
+ ldrb r0, [r1]
+ cmp r6, r0
+ bne _080901B0
+ ldrb r0, [r3, 0x1]
+ ldrb r2, [r1, 0x1]
+ cmp r0, r2
+ bne _080901B0
+ movs r0, 0x1
+ b _080901C8
+ .align 2, 0
+_080901AC: .4byte gUnknown_8107828
+_080901B0:
+ adds r4, 0x4
+ adds r1, 0x4
+ adds r5, 0x1
+ ldr r0, _080901D0
+ cmp r5, r0
+ bgt _080901C6
+ ldr r2, _080901D4
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3F
+ bne _0809019A
+_080901C6:
+ movs r0, 0
+_080901C8:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080901D0: .4byte 0x000003e6
+_080901D4: .4byte gUnknown_8107828
+ thumb_func_end sub_809017C
+
+ thumb_func_start sub_80901D8
+sub_80901D8:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldrb r0, [r2]
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bhi _080901FE
+ movs r0, 0x34
+ strb r0, [r3]
+ ldrb r1, [r2]
+ subs r1, 0x4B
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrb r2, [r2, 0x1]
+ adds r0, r2
+ strb r0, [r3, 0x1]
+ b _08090202
+_080901FE:
+ ldr r0, [r2]
+ str r0, [r3]
+_08090202:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80901D8
+
+ thumb_func_start sub_8090208
+sub_8090208:
+ push {lr}
+ ldr r3, _08090220
+ ldr r2, _08090224
+ ldrb r1, [r1]
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ adds r1, r3, 0
+ bl sub_800D158
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090220: .4byte gUnknown_8108F10
+_08090224: .4byte gDungeonNames
+ thumb_func_end sub_8090208
+
+ thumb_func_start sub_8090228
+sub_8090228:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _08090250
+ ldrb r3, [r4]
+ lsls r1, r3, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809025C
+ ldr r1, _08090254
+ ldr r2, _08090258
+ lsls r0, r3, 3
+ adds r0, r2
+ ldr r2, [r0]
+ ldrb r3, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_800D158
+ b _0809026E
+ .align 2, 0
+_08090250: .4byte gDungeons
+_08090254: .4byte gUnknown_8108F18
+_08090258: .4byte gDungeonNames
+_0809025C:
+ ldr r1, _08090274
+ ldr r2, _08090278
+ lsls r0, r3, 3
+ adds r0, r2
+ ldr r2, [r0]
+ ldrb r3, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_800D158
+_0809026E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090274: .4byte gUnknown_8108F2C
+_08090278: .4byte gDungeonNames
+ thumb_func_end sub_8090228
+
+ thumb_func_start sub_809027C
+sub_809027C:
+ push {lr}
+ ldr r2, _08090294
+ ldrb r1, [r1]
+ lsls r1, 3
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0x50
+ bl strncpy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090294: .4byte gDungeonNames
+ thumb_func_end sub_809027C
+
+ thumb_func_start sub_8090298
+sub_8090298:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bhi _080902AE
+ movs r0, 0x4
+ b _080902C2
+_080902AE:
+ cmp r1, 0x3E
+ bhi _080902C0
+ ldr r0, _080902BC
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ b _080902C2
+ .align 2, 0
+_080902BC: .4byte gUnknown_81077A8
+_080902C0:
+ movs r0, 0x1
+_080902C2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090298
+
+ thumb_func_start sub_80902C8
+sub_80902C8:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bls _080902EC
+ cmp r1, 0x3E
+ bhi _080902EC
+ ldr r0, _080902E8
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ b _080902EE
+ .align 2, 0
+_080902E8: .4byte gUnknown_81077E8
+_080902EC:
+ movs r0, 0
+_080902EE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80902C8
+
+ thumb_func_start sub_80902F4
+sub_80902F4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x7
+ bl sub_809488C
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80902F4
+
+ thumb_func_start sub_8090314
+sub_8090314:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ movs r2, 0x7
+ bl sub_8094924
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090314
+
+ thumb_func_start sub_809033C
+sub_809033C:
+ lsls r0, 24
+ ldr r1, _08090348
+ lsrs r0, 20
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_08090348: .4byte gDungeons
+ thumb_func_end sub_809033C
+
+ thumb_func_start sub_809034C
+sub_809034C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xF8
+ adds r7, r2, 0
+ ldr r2, [sp, 0x118]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 16
+ asrs r1, 16
+ str r1, [sp, 0xE0]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xE4]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xE8]
+ bl sub_8090A34
+ str r0, [sp, 0xEC]
+ movs r5, 0
+ movs r0, 0
+ str r0, [sp, 0xF4]
+ mov r8, r0
+ add r4, sp, 0xC8
+ movs r0, 0xA
+ strb r0, [r4]
+ add r1, sp, 0xF4
+ ldrb r1, [r1]
+ strb r1, [r4, 0x1]
+ ldr r1, _0809040C
+ adds r0, r7, 0
+ bl strcpy
+ movs r2, 0
+ str r2, [sp, 0xF0]
+ movs r3, 0
+ ldr r0, _08090410
+ ldr r6, [r0]
+ movs r4, 0x1
+_080903A2:
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r6, r0
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080903D0
+ lsrs r0, r1, 1
+ ands r0, r4
+ cmp r0, 0
+ beq _080903D0
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080903CA
+ ldr r0, [sp, 0xF0]
+ adds r0, 0x1
+ str r0, [sp, 0xF0]
+_080903CA:
+ adds r5, 0x1
+ cmp r5, 0x4
+ beq _080903DA
+_080903D0:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _080903A2
+_080903DA:
+ ldr r0, _08090414
+ mov r2, r9
+ lsls r1, r2, 4
+ adds r0, r1, r0
+ ldrb r0, [r0, 0x5]
+ mov r9, r1
+ ldr r1, [sp, 0xE4]
+ cmp r1, 0
+ bne _080903F2
+ cmp r0, 0x3
+ ble _080903F2
+ movs r0, 0x3
+_080903F2:
+ cmp r5, r0
+ ble _0809043C
+ cmp r0, 0x1
+ bne _0809041C
+ ldr r0, _08090418
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ b _08090430
+ .align 2, 0
+_0809040C: .4byte gUnknown_8108F40
+_08090410: .4byte gUnknown_203B45C
+_08090414: .4byte gDungeons
+_08090418: .4byte gUnknown_8115A2C
+_0809041C:
+ ldr r1, _08090464
+ subs r0, r5, r0
+ str r0, [r1]
+ ldr r0, _08090468
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+_08090430:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r2, 0x1
+ mov r8, r2
+_0809043C:
+ ldr r0, _0809046C
+ mov r2, r9
+ adds r1, r2, r0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0809048E
+ ldr r1, [sp, 0xEC]
+ cmp r0, r1
+ bge _0809048E
+ ldr r1, _08090464
+ str r0, [r1]
+ ldr r2, [sp, 0xEC]
+ subs r0, r2, r0
+ str r0, [r1, 0x4]
+ mov r0, r8
+ cmp r0, 0
+ bne _08090474
+ ldr r0, _08090470
+ b _08090476
+ .align 2, 0
+_08090464: .4byte gUnknown_202DE30
+_08090468: .4byte gUnknown_81159DC
+_0809046C: .4byte gDungeons
+_08090470: .4byte gUnknown_8115A80
+_08090474:
+ ldr r0, _080904AC
+_08090476:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_0809048E:
+ ldr r2, [sp, 0xE0]
+ cmp r2, 0
+ beq _0809054E
+ ldr r0, _080904B0
+ adds r1, r2, 0
+ bl sub_808D908
+ cmp r5, 0x3
+ ble _080904D2
+ mov r0, r8
+ cmp r0, 0
+ bne _080904B8
+ ldr r0, _080904B4
+ b _080904BA
+ .align 2, 0
+_080904AC: .4byte gUnknown_8115ADC
+_080904B0: .4byte gUnknown_202DF98
+_080904B4: .4byte gUnknown_8115B3C
+_080904B8:
+ ldr r0, _08090528
+_080904BA:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_080904D2:
+ ldr r0, [sp, 0xE0]
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r2, _0809052C
+ mov r10, r2
+ movs r6, 0x1
+_080904E4:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08090510
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _08090510
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0
+_08090510:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _080904E4
+ cmp r5, 0x6
+ ble _0809054E
+ mov r2, r8
+ cmp r2, 0
+ bne _08090534
+ ldr r0, _08090530
+ b _08090536
+ .align 2, 0
+_08090528: .4byte gUnknown_8115BA4
+_0809052C: .4byte gUnknown_203B45C
+_08090530: .4byte gUnknown_8115BF4
+_08090534:
+ ldr r0, _080905D0
+_08090536:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r0, 0x1
+ mov r8, r0
+_0809054E:
+ ldr r1, [sp, 0xE4]
+ cmp r1, 0
+ beq _08090602
+ add r5, sp, 0xCC
+ ldr r1, _080905D4
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl memcpy
+ add r4, sp, 0xD4
+ ldr r1, _080905D8
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ movs r6, 0
+ mov r10, r4
+ ldr r0, _080905DC
+ add r0, r9
+ ldrb r5, [r0, 0xB]
+ add r4, sp, 0xCC
+_08090578:
+ adds r0, r5, 0
+ asrs r0, r6
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809059E
+ ldrh r0, [r4]
+ bl sub_8090820
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809059E
+ mov r2, r10
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ bl sub_80911A4
+ cmp r0, 0
+ beq _080905A6
+_0809059E:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08090578
+_080905A6:
+ cmp r6, 0x3
+ bgt _08090602
+ add r4, sp, 0xD8
+ lsls r0, r6, 1
+ add r0, sp
+ adds r0, 0xCC
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ bl sub_8092A88
+ ldr r0, _080905E0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_80928C0
+ mov r0, r8
+ cmp r0, 0
+ bne _080905E8
+ ldr r0, _080905E4
+ b _080905EA
+ .align 2, 0
+_080905D0: .4byte gUnknown_8115C4C
+_080905D4: .4byte gUnknown_8108F42
+_080905D8: .4byte gUnknown_8108F4A
+_080905DC: .4byte gDungeons
+_080905E0: .4byte gUnknown_202DE58
+_080905E4: .4byte gUnknown_8115CB8
+_080905E8:
+ ldr r0, _080906A0
+_080905EA:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_08090602:
+ ldr r0, _080906A4
+ add r0, r9
+ ldrb r1, [r0, 0xB]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080906CE
+ ldr r5, _080906A8
+ ldr r2, [sp, 0xE0]
+ cmp r2, 0
+ beq _0809063A
+ adds r0, r2, 0
+ movs r1, 0
+ bl sub_808DC68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08090638
+ ldr r0, [sp, 0xE0]
+ movs r1, 0x1
+ bl sub_808DC68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0809063A
+_08090638:
+ movs r5, 0
+_0809063A:
+ ldr r0, _080906A8
+ cmp r5, r0
+ bne _080906CE
+ movs r5, 0
+ movs r6, 0x1
+_08090644:
+ ldr r2, _080906AC
+ movs r0, 0x58
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08090686
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _08090686
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ bl sub_808DC68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08090690
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r1, 0x1
+ bl sub_808DC68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08090690
+_08090686:
+ adds r5, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ ble _08090644
+_08090690:
+ ldr r0, _080906A8
+ cmp r5, r0
+ bne _080906CE
+ mov r0, r8
+ cmp r0, 0
+ bne _080906B4
+ ldr r0, _080906B0
+ b _080906B6
+ .align 2, 0
+_080906A0: .4byte gUnknown_8115D14
+_080906A4: .4byte gDungeons
+_080906A8: .4byte 0x0000019d
+_080906AC: .4byte gUnknown_203B45C
+_080906B0: .4byte gUnknown_8115D5C
+_080906B4:
+ ldr r0, _080906D8
+_080906B6:
+ ldr r0, [r0]
+ mov r1, sp
+ add r2, sp, 0xC8
+ movs r3, 0
+ bl xxx_format_string
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8090888
+ movs r1, 0x1
+ mov r8, r1
+_080906CE:
+ mov r2, r8
+ cmp r2, 0
+ beq _080906DC
+ movs r0, 0x1
+ b _0809080E
+ .align 2, 0
+_080906D8: .4byte gUnknown_8115D94
+_080906DC:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _080906EC
+ ldr r0, [sp, 0xE8]
+ cmp r0, 0
+ beq _0809071A
+_080906EC:
+ ldr r1, [sp, 0xF4]
+ cmp r1, 0
+ bne _08090708
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r2, 0x1
+ str r2, [sp, 0xF4]
+_08090708:
+ ldr r0, _080907F4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_0809071A:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _08090752
+ ldr r0, [sp, 0xF4]
+ cmp r0, 0
+ bne _08090740
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r1, 0x1
+ str r1, [sp, 0xF4]
+_08090740:
+ ldr r0, _080907F8
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_08090752:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08090792
+ ldr r2, [sp, 0xEC]
+ ldr r0, [sp, 0xF0]
+ cmn r2, r0
+ beq _08090792
+ ldr r1, [sp, 0xF4]
+ cmp r1, 0
+ bne _08090780
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r2, 0x1
+ str r2, [sp, 0xF4]
+_08090780:
+ ldr r0, _080907FC
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_08090792:
+ ldr r0, _080907EC
+ add r0, r9
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _080907DA
+ ldr r0, _08090800
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080907DA
+ ldr r2, [sp, 0xF4]
+ cmp r2, 0
+ bne _080907C8
+ ldr r0, _080907F0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcpy
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+ movs r0, 0x1
+ str r0, [sp, 0xF4]
+_080907C8:
+ ldr r0, _08090804
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl strcat
+ adds r0, r7, 0
+ add r1, sp, 0xC8
+ bl strcat
+_080907DA:
+ ldr r1, [sp, 0xF4]
+ cmp r1, 0
+ bne _0809080C
+ ldr r1, _08090808
+ adds r0, r7, 0
+ bl sub_800D158
+ movs r0, 0
+ b _0809080E
+ .align 2, 0
+_080907EC: .4byte gDungeons
+_080907F0: .4byte gUnknown_8115DD4
+_080907F4: .4byte gUnknown_8115E00
+_080907F8: .4byte gUnknown_8115E28
+_080907FC: .4byte gUnknown_8115E54
+_08090800: .4byte gUnknown_203B460
+_08090804: .4byte gUnknown_8115E80
+_08090808: .4byte gUnknown_8108F50
+_0809080C:
+ movs r0, 0x2
+_0809080E:
+ add sp, 0xF8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809034C
+
+ thumb_func_start sub_8090820
+sub_8090820:
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+ ldr r0, _08090868
+ ldr r0, [r0]
+ mov r12, r0
+ movs r7, 0x1
+_08090830:
+ movs r0, 0x58
+ muls r0, r4
+ mov r2, r12
+ adds r1, r2, r0
+ ldrh r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08090874
+ lsrs r0, r2, 1
+ ands r0, r7
+ cmp r0, 0
+ beq _08090874
+ movs r3, 0
+ movs r5, 0x1
+ adds r2, r1, 0
+ adds r2, 0x2C
+_08090852:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809086C
+ ldrh r0, [r2, 0x2]
+ cmp r0, r6
+ bne _0809086C
+ movs r0, 0x1
+ b _08090880
+ .align 2, 0
+_08090868: .4byte gUnknown_203B45C
+_0809086C:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08090852
+_08090874:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08090830
+ movs r0, 0
+_08090880:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090820
+
+ thumb_func_start sub_8090888
+sub_8090888:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r6, 0
+ b _0809089C
+_08090892:
+ ldrb r0, [r4]
+ cmp r0, 0xA
+ bne _0809089A
+ adds r6, 0x1
+_0809089A:
+ adds r4, 0x1
+_0809089C:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08090892
+ ldrb r7, [r5]
+ b _080908AE
+_080908A6:
+ movs r0, 0xA
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r6, 0x1
+_080908AE:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __modsi3
+ cmp r0, 0
+ bne _080908A6
+ adds r1, r7, 0
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080908CE
+_080908C2:
+ strb r1, [r4]
+ adds r4, 0x1
+ adds r5, 0x1
+ ldrb r1, [r5]
+ cmp r1, 0
+ bne _080908C2
+_080908CE:
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090888
+
+ thumb_func_start sub_80908D8
+sub_80908D8:
+ push {lr}
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r0, 0x3E
+ bhi _08090908
+ ldr r0, _08090900
+ ldrb r3, [r2]
+ adds r0, r3, r0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08090908
+ ldr r1, _08090904
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrb r1, [r2, 0x1]
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ b _0809090A
+ .align 2, 0
+_08090900: .4byte gUnknown_81077A8
+_08090904: .4byte gUnknown_8108084
+_08090908:
+ movs r0, 0x1
+_0809090A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80908D8
+
+ thumb_func_start sub_8090910
+sub_8090910:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldr r4, _0809094C
+ adds r0, r4, 0
+ bl RandomCapped
+ adds r6, r0, 0
+ adds r0, r4, 0
+ bl RandomCapped
+ adds r2, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0x3E
+ bhi _08090954
+ ldr r0, _08090950
+ ldrb r1, [r5]
+ adds r1, r0
+ ldrb r0, [r5, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08090954
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8091E94
+ lsls r0, 24
+ lsrs r0, 24
+ b _08090956
+ .align 2, 0
+_0809094C: .4byte 0x0000270f
+_08090950: .4byte gUnknown_81077A8
+_08090954:
+ movs r0, 0x46
+_08090956:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090910
+
+ thumb_func_start sub_809095C
+sub_809095C:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3E
+ bls _0809096A
+_08090966:
+ movs r0, 0x1
+ b _0809098C
+_0809096A:
+ movs r2, 0
+ ldr r0, _08090994
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x3F
+ beq _0809098A
+ adds r1, r4, 0
+_08090978:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _08090966
+ adds r2, 0x1
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0x3F
+ bne _08090978
+_0809098A:
+ movs r0, 0
+_0809098C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090994: .4byte gUnknown_810A350
+ thumb_func_end sub_809095C
+
+ thumb_func_start sub_8090998
+sub_8090998:
+ push {lr}
+ ldr r1, _080909B8
+ ldr r0, _080909BC
+ str r0, [r1]
+ ldr r0, _080909C0
+ ldr r1, _080909C4
+ bl OpenFileAndGetFileDataPtr
+ ldr r1, _080909C8
+ str r0, [r1]
+ ldr r1, _080909CC
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080909B8: .4byte gUnknown_203B460
+_080909BC: .4byte gUnknown_20389A8
+_080909C0: .4byte gUnknown_8109764
+_080909C4: .4byte gUnknown_8300500
+_080909C8: .4byte gItemParametersFile
+_080909CC: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090998
+
+ thumb_func_start sub_80909D0
+sub_80909D0:
+ ldr r0, _080909D4
+ bx lr
+ .align 2, 0
+_080909D4: .4byte gUnknown_20389A8
+ thumb_func_end sub_80909D0
+
+ thumb_func_start sub_80909D8
+sub_80909D8:
+ push {r4,lr}
+ movs r4, 0
+ ldr r3, _08090A30
+ movs r2, 0
+_080909E0:
+ ldr r0, [r3]
+ lsls r1, r4, 2
+ adds r0, r1
+ strb r2, [r0]
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _080909E0
+ movs r4, 0
+ ldr r3, _08090A30
+ movs r2, 0
+_080909F4:
+ ldr r0, [r3]
+ lsls r1, r4, 1
+ adds r0, 0x50
+ adds r0, r1
+ strh r2, [r0]
+ adds r4, 0x1
+ cmp r4, 0xEF
+ ble _080909F4
+ movs r4, 0
+_08090A06:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8091840
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08090A06
+ ldr r0, _08090A30
+ ldr r2, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r2, r1
+ movs r1, 0
+ str r1, [r0]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r0, r2, r3
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090A30: .4byte gUnknown_203B460
+ thumb_func_end sub_80909D8
+
+ thumb_func_start sub_8090A34
+sub_8090A34:
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _08090A5C
+ movs r5, 0x1
+ ldr r2, [r0]
+ movs r3, 0x13
+_08090A40:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08090A4C
+ adds r4, 0x1
+_08090A4C:
+ adds r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08090A40
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090A5C: .4byte gUnknown_203B460
+ thumb_func_end sub_8090A34
+
+ thumb_func_start sub_8090A60
+sub_8090A60:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08090A84
+ adds r0, r4, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08090A84
+ movs r0, 0
+ b _08090A86
+_08090A84:
+ movs r0, 0x1
+_08090A86:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090A60
+
+ thumb_func_start sub_8090A8C
+sub_8090A8C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ cmp r5, 0
+ beq _08090AF8
+ movs r7, 0x1
+ strb r7, [r6]
+ strb r5, [r6, 0x2]
+ adds r0, r5, 0
+ bl sub_8090A60
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08090AD4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8090D80
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8090D80
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl RandomRange
+ strb r0, [r6, 0x1]
+ b _08090AE8
+_08090AD4:
+ adds r0, r5, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08090AE6
+ strb r7, [r6, 0x1]
+ b _08090AE8
+_08090AE6:
+ strb r4, [r6, 0x1]
+_08090AE8:
+ mov r0, r8
+ cmp r0, 0
+ beq _08090AFE
+ ldrb r1, [r6]
+ movs r0, 0x8
+ orrs r0, r1
+ strb r0, [r6]
+ b _08090AFE
+_08090AF8:
+ strb r5, [r6]
+ strb r5, [r6, 0x2]
+ strb r5, [r6, 0x1]
+_08090AFE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090A8C
+
+ thumb_func_start sub_8090B08
+sub_8090B08:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r5, 0
+ beq _08090B5A
+ strb r5, [r6]
+ adds r0, r5, 0
+ bl sub_8090A60
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08090B42
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8090D80
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8090D80
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl RandomRange
+ strb r0, [r6, 0x1]
+ b _08090B5E
+_08090B42:
+ adds r0, r5, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08090B56
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+ b _08090B5E
+_08090B56:
+ strb r4, [r6, 0x1]
+ b _08090B5E
+_08090B5A:
+ strb r5, [r6]
+ strb r5, [r6, 0x1]
+_08090B5E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090B08
+
+ thumb_func_start sub_8090B64
+sub_8090B64:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r1, [r5]
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _08090BA4
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r1, [r4, 0x2]
+ ldrb r0, [r4, 0x2]
+ bl sub_8090A60
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _08090B9A
+ ldrb r0, [r4, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _08090B9A
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x7C
+ bne _08090BA0
+_08090B9A:
+ ldrb r0, [r5, 0x1]
+ strb r0, [r4, 0x1]
+ b _08090BAA
+_08090BA0:
+ strb r6, [r4, 0x1]
+ b _08090BAA
+_08090BA4:
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x1]
+ strb r0, [r4]
+_08090BAA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090B64
+
+ thumb_func_start sub_8090BB0
+sub_8090BB0:
+ push {lr}
+ adds r3, r0, 0
+ ldrb r0, [r1]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08090BC8
+ ldrb r0, [r1, 0x2]
+ strb r0, [r3]
+ ldrb r0, [r1, 0x1]
+ strb r0, [r3, 0x1]
+ b _08090BCA
+_08090BC8:
+ strb r2, [r3]
+_08090BCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090BB0
+
+ thumb_func_start sub_8090BD0
+sub_8090BD0:
+ lsls r0, 24
+ ldr r1, _08090BE0
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r0, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_08090BE0: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090BD0
+
+ thumb_func_start sub_8090BE4
+sub_8090BE4:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _08090BF6
+ adds r0, r4, 0
+ bl sub_80915D4
+ b _08090C24
+_08090BF6:
+ ldrb r0, [r4, 0x2]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090C14
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090C10
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ b _08090C24
+ .align 2, 0
+_08090C10: .4byte gItemParametersFile + 4
+_08090C14:
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090C2C
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldrb r1, [r4, 0x1]
+ ldr r0, [r0, 0x4]
+ muls r0, r1
+_08090C24:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090C2C: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090BE4
+
+ thumb_func_start sub_8090C30
+sub_8090C30:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _08090C42
+ adds r0, r4, 0
+ bl sub_80915D4
+ b _08090C70
+_08090C42:
+ ldrb r0, [r4, 0x2]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090C60
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090C5C
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldr r0, [r0, 0x8]
+ b _08090C70
+ .align 2, 0
+_08090C5C: .4byte gItemParametersFile + 4
+_08090C60:
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090C78
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldrb r1, [r4, 0x1]
+ ldr r0, [r0, 0x8]
+ muls r0, r1
+_08090C70:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090C78: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090C30
+
+ thumb_func_start sub_8090C7C
+sub_8090C7C:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090C90
+ movs r0, 0
+ b _08090CC0
+_08090C90:
+ ldrb r0, [r4, 0x2]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090CB0
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090CAC
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ b _08090CC0
+ .align 2, 0
+_08090CAC: .4byte gItemParametersFile + 4
+_08090CB0:
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090CC8
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldrb r1, [r4, 0x1]
+ ldr r0, [r0, 0x4]
+ muls r0, r1
+_08090CC0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090CC8: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090C7C
+
+ thumb_func_start sub_8090CCC
+sub_8090CCC:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090CE0
+ movs r0, 0
+ b _08090D10
+_08090CE0:
+ ldrb r0, [r4, 0x2]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090D00
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090CFC
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldr r0, [r0, 0x8]
+ b _08090D10
+ .align 2, 0
+_08090CFC: .4byte gItemParametersFile + 4
+_08090D00:
+ ldrb r0, [r4, 0x2]
+ ldr r1, _08090D18
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldrb r1, [r4, 0x1]
+ ldr r0, [r0, 0x8]
+ muls r0, r1
+_08090D10:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08090D18: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090CCC
+
+ thumb_func_start sub_8090D1C
+sub_8090D1C:
+ lsls r0, 24
+ ldr r1, _08090D2C
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_08090D2C: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090D1C
+
+ thumb_func_start sub_8090D30
+sub_8090D30:
+ lsls r0, 24
+ ldr r1, _08090D40
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldr r0, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_08090D40: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090D30
+
+ thumb_func_start sub_8090D44
+sub_8090D44:
+ lsls r0, 24
+ ldr r1, _08090D54
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r0, [r0, 0x1A]
+ bx lr
+ .align 2, 0
+_08090D54: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090D44
+
+ thumb_func_start sub_8090D58
+sub_8090D58:
+ lsls r0, 24
+ ldr r1, _08090D68
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r0, [r0, 0x1D]
+ bx lr
+ .align 2, 0
+_08090D68: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090D58
+
+ thumb_func_start sub_8090D6C
+sub_8090D6C:
+ lsls r0, 24
+ ldr r1, _08090D7C
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r0, [r0, 0x1E]
+ bx lr
+ .align 2, 0
+_08090D7C: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090D6C
+
+ thumb_func_start sub_8090D80
+sub_8090D80:
+ lsls r0, 24
+ ldr r2, _08090D94
+ ldr r2, [r2]
+ lsrs r0, 19
+ adds r0, r2
+ adds r0, 0x1B
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08090D94: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090D80
+
+ thumb_func_start sub_8090D98
+sub_8090D98:
+ lsls r0, 24
+ ldr r1, _08090DA8
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldr r0, [r0, 0x10]
+ bx lr
+ .align 2, 0
+_08090DA8: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090D98
+
+ thumb_func_start sub_8090DAC
+sub_8090DAC:
+ lsls r0, 24
+ ldr r2, _08090DC0
+ ldr r2, [r2]
+ lsrs r0, 19
+ adds r0, r2
+ adds r0, 0x14
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08090DC0: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090DAC
+
+ thumb_func_start sub_8090DC4
+sub_8090DC4:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x54
+ adds r6, r0, 0
+ adds r4, r1, 0
+ mov r8, r2
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08090E10
+ ldr r1, [r0]
+ lsls r0, r4, 5
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x50
+ bl strncpy
+ add r5, sp, 0x50
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8090A8C
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_8090F58
+ add sp, 0x54
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090E10: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8090DC4
+
+ thumb_func_start sub_8090E14
+sub_8090E14:
+ push {r4-r7,lr}
+ sub sp, 0x50
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r7, r2, 0
+ movs r4, 0
+ cmp r7, 0
+ beq _08090E2C
+ ldrb r1, [r7, 0x8]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+_08090E2C:
+ ldrb r0, [r5, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090E3E
+ cmp r4, 0
+ bne _08090E50
+ b _08090E70
+_08090E3E:
+ ldrb r0, [r5, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08090E90
+ cmp r4, 0
+ beq _08090E70
+_08090E50:
+ ldr r1, _08090E68
+ ldrb r0, [r5, 0x2]
+ ldr r2, _08090E6C
+ ldr r2, [r2]
+ lsls r0, 5
+ adds r0, r2
+ ldr r2, [r0]
+ ldrb r3, [r5, 0x1]
+ mov r0, sp
+ bl sub_800D158
+ b _08090EC4
+ .align 2, 0
+_08090E68: .4byte gUnknown_8109770
+_08090E6C: .4byte gItemParametersFile + 4
+_08090E70:
+ ldr r1, _08090E88
+ ldrb r0, [r5, 0x2]
+ ldr r2, _08090E8C
+ ldr r2, [r2]
+ lsls r0, 5
+ adds r0, r2
+ ldr r2, [r0]
+ mov r0, sp
+ bl sub_800D158
+ b _08090EC4
+ .align 2, 0
+_08090E88: .4byte gUnknown_8109778
+_08090E8C: .4byte gItemParametersFile + 4
+_08090E90:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x69
+ bne _08090EB0
+ ldr r4, _08090EAC
+ adds r0, r5, 0
+ bl sub_80915D4
+ adds r2, r0, 0
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_800D158
+ b _08090EC4
+ .align 2, 0
+_08090EAC: .4byte gUnknown_810977C
+_08090EB0:
+ ldrb r0, [r5, 0x2]
+ ldr r1, _08090F2C
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x50
+ bl strncpy
+_08090EC4:
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08090EE2
+ ldr r1, _08090F30
+ adds r0, r6, 0
+ mov r2, sp
+ bl sub_800D158
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x50
+ bl strncpy
+_08090EE2:
+ cmp r7, 0
+ beq _08090F38
+ ldrb r0, [r7, 0x4]
+ cmp r0, 0
+ beq _08090F0A
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08090F0A
+ ldr r1, _08090F34
+ adds r0, r6, 0
+ mov r2, sp
+ bl sub_800D158
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x50
+ bl strncpy
+_08090F0A:
+ ldr r0, [r7]
+ cmp r0, 0x1
+ beq _08090F14
+ cmp r0, 0x3
+ bne _08090F44
+_08090F14:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08090F38
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl sub_8090F58
+ b _08090F50
+ .align 2, 0
+_08090F2C: .4byte gItemParametersFile + 4
+_08090F30: .4byte gUnknown_8109784
+_08090F34: .4byte gUnknown_810978C
+_08090F38:
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x50
+ bl strncpy
+ b _08090F50
+_08090F44:
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl sub_8090F58
+_08090F50:
+ add sp, 0x50
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090E14
+
+ thumb_func_start sub_8090F58
+sub_8090F58:
+ push {r4-r6,lr}
+ sub sp, 0x2C
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r0, r2, 0
+ adds r4, r3, 0
+ cmp r4, 0
+ bne _08090F6C
+ adds r0, r5, 0
+ b _08090F94
+_08090F6C:
+ ldr r1, [r4]
+ cmp r1, 0x1
+ bcc _08090F8A
+ cmp r1, 0x2
+ bhi _08090F7E
+ bl sub_8090BE4
+ adds r1, r0, 0
+ b _08090F8C
+_08090F7E:
+ cmp r1, 0x4
+ bhi _08090F8A
+ bl sub_8090C30
+ adds r1, r0, 0
+ b _08090F8C
+_08090F8A:
+ movs r1, 0
+_08090F8C:
+ cmp r1, 0
+ bne _08090F9C
+ adds r0, r5, 0
+ adds r1, r6, 0
+_08090F94:
+ movs r2, 0x50
+ bl strncpy
+ b _08090FDE
+_08090F9C:
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08090FC8
+ adds r0, r1, 0
+ add r1, sp, 0x4
+ movs r2, 0x1
+ bl sub_8090FEC
+ ldr r1, _08090FC4
+ movs r0, 0x6
+ ldrsh r3, [r4, r0]
+ add r2, sp, 0x4
+ str r2, [sp]
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_800D158
+ b _08090FDE
+ .align 2, 0
+_08090FC4: .4byte gUnknown_8109794
+_08090FC8:
+ adds r0, r1, 0
+ add r1, sp, 0x4
+ movs r2, 0
+ bl sub_8090FEC
+ ldr r1, _08090FE8
+ adds r0, r5, 0
+ adds r2, r6, 0
+ add r3, sp, 0x4
+ bl sub_800D158
+_08090FDE:
+ add sp, 0x2C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090FE8: .4byte gUnknown_81097A4
+ thumb_func_end sub_8090F58
+
+ thumb_func_start sub_8090FEC
+sub_8090FEC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ movs r2, 0
+ ldr r1, _08091050
+ mov r9, r1
+ mov r12, r9
+_0809100E:
+ movs r1, 0
+ lsls r3, r2, 2
+ ldr r7, _08091054
+ adds r0, r3, r7
+ ldr r0, [r0]
+ adds r7, r2, 0x1
+ cmp r5, r0
+ blt _0809102C
+ ldr r2, _08091054
+_08091020:
+ adds r0, r3, r2
+ ldr r0, [r0]
+ subs r5, r0
+ adds r1, 0x1
+ cmp r5, r0
+ bge _08091020
+_0809102C:
+ cmp r1, 0x9
+ ble _08091032
+ movs r1, 0x9
+_08091032:
+ cmp r1, 0
+ beq _0809105C
+ movs r0, 0x1
+ mov r8, r0
+ lsls r1, 1
+ mov r2, r12
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4]
+ adds r4, 0x1
+ ldr r0, _08091058
+ adds r1, r0
+ ldrb r0, [r1]
+ b _0809106C
+ .align 2, 0
+_08091050: .4byte gUnknown_81097C4
+_08091054: .4byte gUnknown_81097B0
+_08091058: .4byte gUnknown_81097C5
+_0809105C:
+ mov r1, r8
+ cmp r1, 0
+ beq _08091074
+ mov r2, r12
+ ldrb r0, [r2]
+ strb r0, [r4]
+ adds r4, 0x1
+ ldrb r0, [r2, 0x1]
+_0809106C:
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r6, 0x1
+ b _08091080
+_08091074:
+ mov r0, r10
+ cmp r0, 0
+ beq _08091080
+ movs r0, 0x60
+ strb r0, [r4]
+ adds r4, 0x1
+_08091080:
+ adds r2, r7, 0
+ cmp r2, 0x4
+ ble _0809100E
+ lsls r1, r5, 1
+ mov r2, r9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r0, r9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r4]
+ adds r6, 0x1
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ adds r0, r6, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090FEC
+
+ thumb_func_start sub_80910B4
+sub_80910B4:
+ push {r4-r7,lr}
+ movs r2, 0
+ movs r4, 0
+ ldr r7, _080910C0
+ movs r3, 0
+ b _080910DA
+ .align 2, 0
+_080910C0: .4byte gUnknown_203B460
+_080910C4:
+ cmp r2, r4
+ ble _080910D4
+ ldr r0, [r7]
+ lsls r1, r4, 2
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_080910D4:
+ adds r3, 0x4
+ adds r2, 0x1
+ adds r4, 0x1
+_080910DA:
+ cmp r2, 0x13
+ bgt _08091106
+ ldr r0, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08091106
+ ldr r5, _0809112C
+ movs r6, 0x1
+_080910F0:
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x13
+ bgt _08091106
+ ldr r0, [r5]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080910F0
+_08091106:
+ cmp r2, 0x14
+ bne _080910C4
+ cmp r4, 0x13
+ bgt _08091124
+ ldr r3, _0809112C
+ movs r2, 0
+_08091112:
+ lsls r1, r4, 2
+ ldr r0, [r3]
+ adds r1, r0
+ strb r2, [r1, 0x2]
+ strb r2, [r1, 0x1]
+ strb r2, [r1]
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091112
+_08091124:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809112C: .4byte gUnknown_203B460
+ thumb_func_end sub_80910B4
+
+ thumb_func_start sub_8091130
+sub_8091130:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _08091154
+ ldr r2, [r0]
+ movs r5, 0x1
+_0809113E:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08091158
+ ldrb r0, [r2, 0x2]
+ cmp r0, r4
+ bne _08091158
+ adds r0, r3, 0
+ b _08091164
+ .align 2, 0
+_08091154: .4byte gUnknown_203B460
+_08091158:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _0809113E
+ movs r0, 0x1
+ negs r0, r0
+_08091164:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091130
+
+ thumb_func_start sub_809116C
+sub_809116C:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080911A0
+ ldr r2, [r0]
+ movs r6, 0x1
+ movs r3, 0x13
+_0809117C:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809118E
+ ldrb r0, [r2, 0x2]
+ cmp r0, r5
+ bne _0809118E
+ adds r4, 0x1
+_0809118E:
+ adds r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0809117C
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080911A0: .4byte gUnknown_203B460
+ thumb_func_end sub_809116C
+
+ thumb_func_start sub_80911A4
+sub_80911A4:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_809116C
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r0, _080911F4
+ ldr r7, [r0]
+ movs r6, 0x1
+_080911BA:
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r7, r0
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080911E2
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _080911E2
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080911E2
+ cmp r0, r5
+ bne _080911E2
+ adds r4, 0x1
+_080911E2:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _080911BA
+ adds r0, r4, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080911F4: .4byte gUnknown_203B45C
+ thumb_func_end sub_80911A4
+
+ thumb_func_start sub_80911F8
+sub_80911F8:
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ ldr r4, _08091230
+ cmp r2, 0x12
+ bgt _0809121C
+ adds r5, r4, 0
+ lsls r0, r2, 2
+ adds r3, r0, 0x4
+_08091208:
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x12
+ ble _08091208
+_0809121C:
+ ldr r0, [r4]
+ adds r0, 0x4E
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x4C
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091230: .4byte gUnknown_203B460
+ thumb_func_end sub_80911F8
+
+ thumb_func_start sub_8091234
+sub_8091234:
+ ldr r3, _08091248
+ ldr r1, [r3]
+ lsls r0, 2
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1, 0x2]
+ ldr r1, [r3]
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_08091248: .4byte gUnknown_203B460
+ thumb_func_end sub_8091234
+
+ thumb_func_start sub_809124C
+sub_809124C:
+ push {lr}
+ sub sp, 0x4
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_8090A8C
+ mov r0, sp
+ bl sub_8091290
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809124C
+
+ thumb_func_start sub_8091274
+sub_8091274:
+ push {lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ mov r0, sp
+ bl sub_8090B64
+ mov r0, sp
+ bl sub_8091290
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091274
+
+ thumb_func_start sub_8091290
+sub_8091290:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _080912B4
+ movs r6, 0x1
+_0809129A:
+ lsls r1, r3, 2
+ ldr r0, [r5]
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080912B8
+ ldr r0, [r4]
+ str r0, [r2]
+ movs r0, 0
+ b _080912C0
+ .align 2, 0
+_080912B4: .4byte gUnknown_203B460
+_080912B8:
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _0809129A
+ movs r0, 0x1
+_080912C0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091290
+
+ thumb_func_start sub_80912C8
+sub_80912C8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ movs r6, 0
+_080912D6:
+ ldr r0, _0809139C
+ lsls r1, r5, 2
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080912FE
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _080912FE
+ adds r0, r4, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ strb r6, [r4, 0x2]
+ strb r6, [r4, 0x1]
+ strb r6, [r4]
+_080912FE:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _080912D6
+ bl sub_80910B4
+ movs r5, 0
+_0809130A:
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ lsls r2, r5, 2
+ ldr r1, _0809139C
+ mov r8, r1
+ ldr r0, [r1]
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ mov r10, r2
+ adds r7, r5, 0x1
+ cmp r0, 0
+ beq _08091382
+ ldrb r0, [r3, 0x2]
+ bl sub_8090D44
+ adds r6, r0, 0
+ adds r4, r7, 0
+ cmp r7, 0x13
+ bgt _08091368
+_08091336:
+ lsls r5, r4, 2
+ mov r1, r8
+ ldr r0, [r1]
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08091362
+ ldrb r0, [r2, 0x2]
+ bl sub_8090D44
+ cmp r6, r0
+ ble _08091362
+ mov r9, r4
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ bl sub_8090D44
+ adds r6, r0, 0
+_08091362:
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091336
+_08091368:
+ mov r4, r9
+ cmp r4, 0
+ blt _08091382
+ ldr r0, _0809139C
+ ldr r1, [r0]
+ mov r0, r10
+ adds r2, r1, r0
+ ldr r3, [r2]
+ lsls r0, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ str r3, [r1]
+_08091382:
+ adds r5, r7, 0
+ cmp r5, 0x13
+ ble _0809130A
+ bl sub_80910B4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809139C: .4byte gUnknown_203B460
+ thumb_func_end sub_80912C8
+
+ thumb_func_start sub_80913A0
+sub_80913A0:
+ push {lr}
+ ldr r1, _080913C4
+ ldr r1, [r1]
+ movs r3, 0x98
+ lsls r3, 2
+ adds r2, r1, r3
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, _080913C8
+ cmp r1, r0
+ bgt _080913BE
+ cmp r1, 0
+ bge _080913C0
+ movs r0, 0
+_080913BE:
+ str r0, [r2]
+_080913C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080913C4: .4byte gUnknown_203B460
+_080913C8: .4byte 0x0001869f
+ thumb_func_end sub_80913A0
+
+ thumb_func_start sub_80913CC
+sub_80913CC:
+ lsls r0, 24
+ ldr r1, _080913DC
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ bx lr
+ .align 2, 0
+_080913DC: .4byte gItemParametersFile + 4
+ thumb_func_end sub_80913CC
+
+ thumb_func_start sub_80913E0
+sub_80913E0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x5C
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r2
+ ldrb r0, [r6, 0x2]
+ bl sub_8090D98
+ ldrb r1, [r6, 0x2]
+ add r0, sp, 0x4
+ movs r2, 0
+ bl sub_8090DC4
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0x7C
+ bne _08091414
+ ldr r0, _080914D4
+ ldrb r1, [r6, 0x1]
+ adds r1, 0x7D
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ bl sub_8090DC4
+_08091414:
+ adds r0, r5, 0
+ bl sub_80073B8
+ movs r7, 0
+ str r7, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ add r2, sp, 0x4
+ adds r3, r5, 0
+ bl sub_8014FF0
+ ldrb r0, [r6, 0x2]
+ bl sub_8090D98
+ adds r2, r0, 0
+ str r7, [sp]
+ movs r0, 0x8
+ movs r1, 0x18
+ adds r3, r5, 0
+ bl sub_8014FF0
+ ldrb r0, [r6, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080914B6
+ add r4, sp, 0x54
+ ldrb r0, [r6, 0x2]
+ bl sub_80913CC
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8092A88
+ movs r0, 0x7
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x4
+ movs r2, 0x52
+ movs r3, 0xC8
+ bl sub_80078A4
+ ldr r0, _080914D8
+ ldr r2, [r0]
+ str r7, [sp]
+ movs r0, 0x4
+ movs r1, 0x54
+ adds r3, r5, 0
+ bl sub_8014FF0
+ adds r0, r4, 0
+ bl sub_8092B00
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092334
+ adds r2, r0, 0
+ str r7, [sp]
+ movs r0, 0x40
+ movs r1, 0x54
+ adds r3, r5, 0
+ bl sub_8014FF0
+ adds r0, r4, 0
+ bl sub_8092BF4
+ ldr r1, _080914DC
+ str r0, [r1]
+ ldr r0, _080914E0
+ ldr r2, [r0]
+ str r7, [sp]
+ movs r0, 0x80
+ movs r1, 0x54
+ adds r3, r5, 0
+ bl sub_8014FF0
+_080914B6:
+ adds r0, r5, 0
+ bl sub_80073E0
+ ldrb r0, [r6, 0x2]
+ bl sub_8090D98
+ mov r1, r8
+ bl sub_8097DF0
+ add sp, 0x5C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080914D4: .4byte gUnknown_202DE58
+_080914D8: .4byte gUnknown_810CF0C
+_080914DC: .4byte gUnknown_202DE30
+_080914E0: .4byte gUnknown_8115970
+ thumb_func_end sub_80913E0
+
+ thumb_func_start sub_80914E4
+sub_80914E4:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r0, 0
+ beq _0809151A
+ cmp r0, 0x69
+ beq _0809151A
+ cmp r0, 0x79
+ beq _0809151A
+ cmp r0, 0x77
+ beq _0809151A
+ cmp r0, 0x78
+ beq _0809151A
+ cmp r0, 0x7A
+ beq _0809151A
+ bl sub_8090D30
+ cmp r0, 0
+ beq _0809151A
+ adds r0, r4, 0
+ bl sub_8090D1C
+ cmp r0, 0
+ beq _0809151A
+ movs r0, 0x1
+ b _0809151C
+_0809151A:
+ movs r0, 0
+_0809151C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80914E4
+
+ thumb_func_start sub_8091524
+sub_8091524:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ beq _0809153C
+ cmp r0, 0x69
+ beq _0809153C
+ cmp r1, 0x7C
+ beq _0809153C
+ movs r0, 0x1
+ b _0809153E
+_0809153C:
+ movs r0, 0
+_0809153E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091524
+
+ thumb_func_start sub_8091544
+sub_8091544:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ beq _08091568
+ cmp r0, 0x69
+ beq _08091568
+ cmp r0, 0x79
+ beq _08091568
+ cmp r0, 0x77
+ beq _08091568
+ cmp r0, 0x78
+ beq _08091568
+ cmp r1, 0x7A
+ beq _08091568
+ movs r0, 0x1
+ b _0809156A
+_08091568:
+ movs r0, 0
+_0809156A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091544
+
+ thumb_func_start sub_8091570
+sub_8091570:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08091596
+ adds r0, r4, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08091596
+ movs r0, 0
+ b _08091598
+_08091596:
+ movs r0, 0x1
+_08091598:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091570
+
+ thumb_func_start sub_80915A0
+sub_80915A0:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0xE0
+ beq _080915CC
+ cmp r0, 0xE1
+ beq _080915CC
+ cmp r0, 0xE2
+ beq _080915CC
+ cmp r0, 0xE3
+ beq _080915CC
+ cmp r0, 0xE4
+ beq _080915CC
+ cmp r0, 0xE5
+ beq _080915CC
+ cmp r0, 0xE6
+ beq _080915CC
+ cmp r1, 0xE7
+ beq _080915CC
+ movs r0, 0
+ b _080915CE
+_080915CC:
+ movs r0, 0x1
+_080915CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80915A0
+
+ thumb_func_start sub_80915D4
+sub_80915D4:
+ ldr r1, _080915E0
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080915E0: .4byte gUnknown_810A3F0
+ thumb_func_end sub_80915D4
+
+ thumb_func_start sub_80915E4
+sub_80915E4:
+ ldr r1, _080915F0
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080915F0: .4byte gUnknown_810A3F0
+ thumb_func_end sub_80915E4
+
+ thumb_func_start sub_80915F4
+sub_80915F4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r7, r3, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r0, _080916B8
+ strh r0, [r7]
+ movs r0, 0
+ strh r0, [r7, 0x2]
+ adds r0, r5, 0
+ bl sub_8091764
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809161E
+ b _08091756
+_0809161E:
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ movs r1, 0
+ bl sub_808DC68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r2, 0x8
+ ldrsh r0, [r6, r2]
+ movs r1, 0x1
+ bl sub_808DC68
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r5, 0
+ subs r2, 0x55
+ ldr r5, _080916BC
+ lsls r2, 1
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r2, r1
+ adds r1, r5
+ movs r4, 0
+ ldrsh r3, [r1, r4]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ adds r2, r5
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r2, 0x14
+ ldrsh r1, [r6, r2]
+ adds r3, r0
+ ldrh r4, [r6, 0x14]
+ adds r3, r4
+ strh r3, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r6, r2]
+ subs r1, r0, r1
+ lsls r3, 16
+ cmp r3, 0
+ bgt _0809167C
+ movs r0, 0x1
+ strh r0, [r6, 0x14]
+_0809167C:
+ movs r4, 0x14
+ ldrsh r0, [r6, r4]
+ ldr r2, _080916C0
+ cmp r0, r2
+ ble _08091688
+ strh r2, [r6, 0x14]
+_08091688:
+ movs r0, 0
+ cmp r1, 0x8
+ bgt _0809169C
+ movs r0, 0x1
+ cmp r1, 0x4
+ bgt _0809169C
+ movs r0, 0x3
+ cmp r1, 0x2
+ ble _0809169C
+ movs r0, 0x2
+_0809169C:
+ strh r0, [r7]
+ mov r1, r8
+ cmp r1, 0
+ bne _08091756
+ cmp r0, 0
+ bne _080916C4
+ movs r0, 0x10
+ bl RandomCapped
+ cmp r0, 0xA
+ bne _080916C4
+ movs r0, 0xF
+ b _080916D2
+ .align 2, 0
+_080916B8: .4byte 0x0000ffff
+_080916BC: .4byte gUnknown_810A580
+_080916C0: .4byte 0x000003e7
+_080916C4:
+ movs r0, 0x4
+ bl RandomCapped
+ ldr r1, _080916EC
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+_080916D2:
+ strh r0, [r7, 0x2]
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080916F6
+ ldrb r0, [r6, 0x18]
+ cmp r0, 0xFE
+ bhi _080916F0
+ adds r0, 0x1
+ strb r0, [r6, 0x18]
+ b _080916F6
+ .align 2, 0
+_080916EC: .4byte gUnknown_81097E0
+_080916F0:
+ ldr r0, _0809170C
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_080916F6:
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08091716
+ ldrb r0, [r6, 0x19]
+ cmp r0, 0xFE
+ bhi _08091710
+ adds r0, 0x1
+ strb r0, [r6, 0x19]
+ b _08091716
+ .align 2, 0
+_0809170C: .4byte 0x0000fffe
+_08091710:
+ ldr r0, _0809172C
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_08091716:
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08091736
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0xFE
+ bhi _08091730
+ adds r0, 0x1
+ strb r0, [r6, 0x1A]
+ b _08091736
+ .align 2, 0
+_0809172C: .4byte 0x0000fffd
+_08091730:
+ ldr r0, _0809174C
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_08091736:
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08091756
+ ldrb r0, [r6, 0x1B]
+ cmp r0, 0xFE
+ bhi _08091750
+ adds r0, 0x1
+ strb r0, [r6, 0x1B]
+ b _08091756
+ .align 2, 0
+_0809174C: .4byte 0x0000fffb
+_08091750:
+ ldr r0, _08091760
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_08091756:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091760: .4byte 0x0000fff7
+ thumb_func_end sub_80915F4
+
+ thumb_func_start sub_8091764
+sub_8091764:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x55
+ bls _08091776
+ cmp r0, 0x66
+ bhi _08091776
+ movs r0, 0x1
+ b _08091778
+_08091776:
+ movs r0, 0
+_08091778:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091764
+
+ thumb_func_start sub_809177C
+sub_809177C:
+ push {r4,lr}
+ movs r4, 0
+_08091780:
+ lsls r1, r4, 2
+ ldr r0, _080917A4
+ ldr r0, [r0]
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080917A8
+ ldrb r0, [r2, 0x2]
+ bl sub_8091764
+ lsls r0, 24
+ cmp r0, 0
+ beq _080917A8
+ movs r0, 0x1
+ b _080917B0
+ .align 2, 0
+_080917A4: .4byte gUnknown_203B460
+_080917A8:
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091780
+ movs r0, 0
+_080917B0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809177C
+
+ thumb_func_start sub_80917B8
+sub_80917B8:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _080917E0
+ ldr r2, _080917DC
+ ldr r1, [r2]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrb r3, [r4, 0x1]
+ adds r0, r3
+ b _080917F0
+ .align 2, 0
+_080917DC: .4byte gUnknown_203B460
+_080917E0:
+ ldr r2, _0809180C
+ ldr r1, [r2]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+_080917F0:
+ strh r0, [r1]
+ ldr r0, [r2]
+ ldrb r1, [r4, 0x2]
+ lsls r1, 1
+ adds r0, 0x50
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ ldr r1, _08091810
+ cmp r0, r1
+ bls _08091806
+ strh r1, [r2]
+_08091806:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809180C: .4byte gUnknown_203B460
+_08091810: .4byte 0x000003e7
+ thumb_func_end sub_80917B8
+
+ thumb_func_start sub_8091814
+sub_8091814:
+ push {lr}
+ movs r3, 0
+ ldr r0, _0809183C
+ ldr r0, [r0]
+ movs r2, 0x8C
+ lsls r2, 2
+ adds r1, r0, r2
+ movs r2, 0x7
+_08091824:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809182C
+ adds r3, 0x1
+_0809182C:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08091824
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809183C: .4byte gUnknown_203B460
+ thumb_func_end sub_8091814
+
+ thumb_func_start sub_8091840
+sub_8091840:
+ lsls r0, 24
+ ldr r1, _08091858
+ lsrs r0, 22
+ movs r2, 0x8C
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_08091858: .4byte gUnknown_203B460
+ thumb_func_end sub_8091840
+
+ thumb_func_start sub_809185C
+sub_809185C:
+ lsls r0, 24
+ ldr r1, _08091870
+ lsrs r0, 22
+ movs r2, 0x8C
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ adds r0, r1, 0
+ bx lr
+ .align 2, 0
+_08091870: .4byte gUnknown_203B460
+ thumb_func_end sub_809185C
+
+ thumb_func_start sub_8091874
+sub_8091874:
+ push {r4-r7,lr}
+ movs r2, 0
+ movs r4, 0
+ ldr r7, _08091884
+ movs r6, 0x8C
+ lsls r6, 2
+ movs r3, 0
+ b _080918A0
+ .align 2, 0
+_08091884: .4byte gUnknown_203B460
+_08091888:
+ cmp r2, r4
+ ble _0809189A
+ ldr r0, [r7]
+ lsls r1, r4, 2
+ adds r0, r6
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_0809189A:
+ adds r3, 0x4
+ adds r2, 0x1
+ adds r4, 0x1
+_080918A0:
+ cmp r2, 0x7
+ bgt _080918CA
+ ldr r0, [r7]
+ adds r0, r3
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080918CA
+ ldr r5, _080918E8
+ movs r1, 0x8C
+ lsls r1, 2
+_080918B6:
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x7
+ bgt _080918CA
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080918B6
+_080918CA:
+ cmp r2, 0x8
+ bne _08091888
+ cmp r4, 0x7
+ bgt _080918E0
+_080918D2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8091840
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080918D2
+_080918E0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080918E8: .4byte gUnknown_203B460
+ thumb_func_end sub_8091874
+
+ thumb_func_start sub_80918EC
+sub_80918EC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+_080918F8:
+ adds r1, r0, 0x1
+ mov r8, r1
+ mov r6, r8
+ cmp r1, 0x7
+ bgt _08091964
+ ldr r1, _08091978
+ mov r9, r1
+ lsls r7, r0, 2
+ movs r0, 0x8C
+ lsls r0, 2
+ mov r10, r0
+_0809190E:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7
+ add r0, r10
+ ldrb r0, [r0]
+ bl sub_8090D44
+ adds r4, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r5, r6, 2
+ adds r0, r5
+ add r0, r10
+ ldrb r0, [r0]
+ bl sub_8090D44
+ cmp r4, r0
+ bgt _0809194C
+ cmp r4, r0
+ bne _0809195E
+ mov r1, r9
+ ldr r0, [r1]
+ adds r2, r0, r7
+ ldr r1, _0809197C
+ adds r2, r1
+ adds r0, r5
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _0809195E
+_0809194C:
+ mov r1, r9
+ ldr r0, [r1]
+ add r0, r10
+ adds r2, r0, r7
+ ldr r3, [r2]
+ adds r0, r5
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+_0809195E:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _0809190E
+_08091964:
+ mov r0, r8
+ cmp r0, 0x6
+ ble _080918F8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091978: .4byte gUnknown_203B460
+_0809197C: .4byte 0x00000231
+ thumb_func_end sub_80918EC
+
+ thumb_func_start sub_8091980
+sub_8091980:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r1, sp
+ ldr r0, _080919F4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r5, 0
+_0809199C:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8091840
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0809199C
+ mov r0, r8
+ lsls r7, r0, 2
+ ldr r6, _080919F8
+ movs r5, 0x7
+_080919B2:
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r2, r0, 0
+ mov r1, sp
+ adds r0, r1, r7
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl sub_8091E94
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80919FC
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080919B2
+ bl sub_80918EC
+ mov r0, r8
+ bl sub_8091BB4
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080919F4: .4byte gUnknown_81097E8
+_080919F8: .4byte 0x0000270f
+ thumb_func_end sub_8091980
+
+ thumb_func_start sub_80919FC
+sub_80919FC:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ bl sub_8090B08
+ movs r3, 0
+ ldr r5, _08091A34
+ movs r4, 0x8C
+ lsls r4, 2
+_08091A14:
+ ldr r1, [r5]
+ lsls r2, r3, 2
+ adds r0, r1, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08091A38
+ movs r3, 0x8C
+ lsls r3, 2
+ adds r0, r1, r3
+ adds r0, r2
+ ldr r1, [sp]
+ str r1, [r0]
+ movs r0, 0
+ b _08091A40
+ .align 2, 0
+_08091A34: .4byte gUnknown_203B460
+_08091A38:
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08091A14
+ movs r0, 0x1
+_08091A40:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80919FC
+
+ thumb_func_start sub_8091A48
+sub_8091A48:
+ push {lr}
+ movs r3, 0
+ ldr r0, _08091A70
+ ldr r0, [r0]
+ movs r2, 0x94
+ lsls r2, 2
+ adds r1, r0, r2
+ movs r2, 0x3
+_08091A58:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08091A60
+ adds r3, 0x1
+_08091A60:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08091A58
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091A70: .4byte gUnknown_203B460
+ thumb_func_end sub_8091A48
+
+ thumb_func_start sub_8091A74
+sub_8091A74:
+ lsls r0, 24
+ ldr r1, _08091A8C
+ lsrs r0, 22
+ movs r2, 0x94
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_08091A8C: .4byte gUnknown_203B460
+ thumb_func_end sub_8091A74
+
+ thumb_func_start sub_8091A90
+sub_8091A90:
+ lsls r0, 24
+ ldr r1, _08091AA4
+ lsrs r0, 22
+ movs r2, 0x94
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ adds r0, r1, 0
+ bx lr
+ .align 2, 0
+_08091AA4: .4byte gUnknown_203B460
+ thumb_func_end sub_8091A90
+
+ thumb_func_start sub_8091AA8
+sub_8091AA8:
+ push {r4-r7,lr}
+ movs r2, 0
+ movs r4, 0
+ ldr r7, _08091AB8
+ movs r6, 0x94
+ lsls r6, 2
+ movs r3, 0
+ b _08091AD4
+ .align 2, 0
+_08091AB8: .4byte gUnknown_203B460
+_08091ABC:
+ cmp r2, r4
+ ble _08091ACE
+ ldr r0, [r7]
+ lsls r1, r4, 2
+ adds r0, r6
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_08091ACE:
+ adds r3, 0x4
+ adds r2, 0x1
+ adds r4, 0x1
+_08091AD4:
+ cmp r2, 0x3
+ bgt _08091AFE
+ ldr r0, [r7]
+ adds r0, r3
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08091AFE
+ ldr r5, _08091B1C
+ movs r1, 0x94
+ lsls r1, 2
+_08091AEA:
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08091AFE
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08091AEA
+_08091AFE:
+ cmp r2, 0x4
+ bne _08091ABC
+ cmp r4, 0x3
+ bgt _08091B14
+_08091B06:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8091A74
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08091B06
+_08091B14:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091B1C: .4byte gUnknown_203B460
+ thumb_func_end sub_8091AA8
+
+ thumb_func_start sub_8091B20
+sub_8091B20:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+_08091B2C:
+ adds r1, r0, 0x1
+ mov r8, r1
+ mov r6, r8
+ cmp r1, 0x3
+ bgt _08091B98
+ ldr r1, _08091BAC
+ mov r9, r1
+ lsls r7, r0, 2
+ movs r0, 0x94
+ lsls r0, 2
+ mov r10, r0
+_08091B42:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7
+ add r0, r10
+ ldrb r0, [r0]
+ bl sub_8090D44
+ adds r4, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r5, r6, 2
+ adds r0, r5
+ add r0, r10
+ ldrb r0, [r0]
+ bl sub_8090D44
+ cmp r4, r0
+ bgt _08091B80
+ cmp r4, r0
+ bne _08091B92
+ mov r1, r9
+ ldr r0, [r1]
+ adds r2, r0, r7
+ ldr r1, _08091BB0
+ adds r2, r1
+ adds r0, r5
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08091B92
+_08091B80:
+ mov r1, r9
+ ldr r0, [r1]
+ add r0, r10
+ adds r2, r0, r7
+ ldr r3, [r2]
+ adds r0, r5
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+_08091B92:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08091B42
+_08091B98:
+ mov r0, r8
+ cmp r0, 0x2
+ ble _08091B2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091BAC: .4byte gUnknown_203B460
+_08091BB0: .4byte 0x00000251
+ thumb_func_end sub_8091B20
+
+ thumb_func_start sub_8091BB4
+sub_8091BB4:
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r1, sp
+ ldr r0, _08091C14
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r5, 0
+_08091BCA:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8091A74
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08091BCA
+ lsls r7, r4, 2
+ ldr r6, _08091C18
+ movs r5, 0x3
+_08091BDE:
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r2, r0, 0
+ mov r1, sp
+ adds r0, r1, r7
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl sub_8091E94
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8091C1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08091BDE
+ bl sub_8091B20
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091C14: .4byte gUnknown_81097F8
+_08091C18: .4byte 0x0000270f
+ thumb_func_end sub_8091BB4
+
+ thumb_func_start sub_8091C1C
+sub_8091C1C:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ bl sub_8090B08
+ movs r3, 0
+ ldr r5, _08091C54
+ movs r4, 0x94
+ lsls r4, 2
+_08091C34:
+ ldr r1, [r5]
+ lsls r2, r3, 2
+ adds r0, r1, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08091C58
+ movs r3, 0x94
+ lsls r3, 2
+ adds r0, r1, r3
+ adds r0, r2
+ ldr r1, [sp]
+ str r1, [r0]
+ movs r0, 0
+ b _08091C60
+ .align 2, 0
+_08091C54: .4byte gUnknown_203B460
+_08091C58:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08091C34
+ movs r0, 0x1
+_08091C60:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091C1C
+
+ thumb_func_start sub_8091C68
+sub_8091C68:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ movs r4, 0
+ ldr r5, _08091D10
+_08091C7C:
+ lsls r0, r4, 2
+ ldr r1, [r5]
+ adds r1, r0
+ mov r0, sp
+ bl sub_8091E28
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091C7C
+ ldr r6, _08091D10
+ movs r5, 0x50
+ movs r4, 0xEF
+_08091C94:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_809488C
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091C94
+ ldr r6, _08091D10
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0x7
+_08091CB0:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DE0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091CB0
+ ldr r6, _08091D10
+ movs r5, 0x94
+ lsls r5, 2
+ movs r4, 0x3
+_08091CCA:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DE0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091CCA
+ ldr r4, _08091D10
+ ldr r1, [r4]
+ movs r0, 0x98
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ ldr r1, [r4]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091D10: .4byte gUnknown_203B460
+ thumb_func_end sub_8091C68
+
+ thumb_func_start sub_8091D14
+sub_8091D14:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ movs r4, 0
+ ldr r5, _08091DBC
+_08091D28:
+ lsls r0, r4, 2
+ ldr r1, [r5]
+ adds r1, r0
+ mov r0, sp
+ bl sub_8091E00
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091D28
+ ldr r6, _08091DBC
+ movs r5, 0x50
+ movs r4, 0xEF
+_08091D40:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_8094924
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091D40
+ ldr r6, _08091DBC
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0x7
+_08091D5C:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DC0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091D5C
+ ldr r6, _08091DBC
+ movs r5, 0x94
+ lsls r5, 2
+ movs r4, 0x3
+_08091D76:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DC0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091D76
+ ldr r4, _08091DBC
+ ldr r1, [r4]
+ movs r0, 0x98
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ ldr r1, [r4]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091DBC: .4byte gUnknown_203B460
+ thumb_func_end sub_8091D14
+
+ thumb_func_start sub_8091DC0
+sub_8091DC0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091DC0
+
+ thumb_func_start sub_8091DE0
+sub_8091DE0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091DE0
+
+ thumb_func_start sub_8091E00
+sub_8091E00:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl sub_8094924
+ adds r5, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091E00
+
+ thumb_func_start sub_8091E28
+sub_8091E28:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl sub_809488C
+ adds r5, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091E28
+
+ thumb_func_start sub_8091E50
+sub_8091E50:
+ lsls r0, 24
+ ldr r1, _08091E5C
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08091E5C: .4byte gUnknown_810AF50
+ thumb_func_end sub_8091E50
+
+ thumb_func_start sub_8091E60
+sub_8091E60:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ cmp r3, 0x3E
+ bhi _08091E8C
+ ldr r2, _08091E88
+ lsrs r0, 27
+ lsls r1, r3, 5
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r1, 0x7
+ ands r1, r4
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ b _08091E8E
+ .align 2, 0
+_08091E88: .4byte gUnknown_8108F64
+_08091E8C:
+ movs r0, 0
+_08091E8E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091E60
+
+ thumb_func_start sub_8091E94
+sub_8091E94:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08091EE4
+ add sp, r4
+ mov r8, r1
+ mov r10, r2
+ ldr r1, _08091EE8
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ movs r3, 0
+ add r1, sp, 0x18
+ mov r9, r1
+ ldr r2, _08091EEC
+ mov r12, r2
+ add r6, sp, 0x1F8
+ ldr r2, [r0]
+ adds r7, r6, 0
+ movs r4, 0
+_08091EC0:
+ ldrh r1, [r2]
+ cmp r1, r12
+ bls _08091EF4
+ ldrh r0, [r2]
+ ldr r1, _08091EF0
+ adds r0, r1
+ cmp r0, 0
+ beq _08091EFC
+ movs r5, 0
+ adds r1, r7, r4
+_08091ED4:
+ strh r5, [r1]
+ adds r1, 0x2
+ adds r4, 0x2
+ adds r3, 0x1
+ subs r0, 0x1
+ cmp r0, 0
+ bne _08091ED4
+ b _08091EFC
+ .align 2, 0
+_08091EE4: .4byte 0xfffffc10
+_08091EE8: .4byte gUnknown_8108E58
+_08091EEC: .4byte 0x0000752f
+_08091EF0: .4byte 0xffff8ad0
+_08091EF4:
+ adds r0, r6, r4
+ strh r1, [r0]
+ adds r4, 0x2
+ adds r3, 0x1
+_08091EFC:
+ adds r2, 0x2
+ cmp r3, 0xFB
+ ble _08091EC0
+ movs r3, 0xB
+ add r2, sp, 0x1F8
+ mov r1, sp
+_08091F08:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08091F08
+ mov r2, r9
+ add r1, sp, 0x210
+ movs r3, 0xEF
+_08091F1C:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08091F1C
+ movs r7, 0xC
+ movs r6, 0
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _08091F4A
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, r8
+ blt _08091F4A
+ movs r7, 0
+ b _08091F66
+_08091F46:
+ mov r8, r5
+ b _08091F9C
+_08091F4A:
+ adds r6, 0x1
+ cmp r6, 0xB
+ bgt _08091F66
+ lsls r0, r6, 1
+ mov r2, sp
+ adds r1, r2, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08091F4A
+ cmp r0, r8
+ blt _08091F4A
+ lsls r0, r6, 24
+ lsrs r7, r0, 24
+_08091F66:
+ movs r0, 0x46
+ mov r8, r0
+ cmp r7, 0xC
+ beq _08091F9C
+ movs r6, 0
+ mov r4, r9
+_08091F72:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08091F94
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r7
+ bne _08091F94
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, r10
+ bge _08091F46
+_08091F94:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0xEF
+ ble _08091F72
+_08091F9C:
+ mov r0, r8
+ movs r3, 0xFC
+ lsls r3, 2
+ add sp, r3
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091E94
+
+ thumb_func_start sub_8091FB4
+sub_8091FB4:
+ push {r4-r6,lr}
+ movs r6, 0
+_08091FB8:
+ ldr r0, _08092038
+ lsls r1, r6, 2
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08091FE8
+ movs r0, 0xF7
+ ands r0, r1
+ movs r5, 0
+ strb r0, [r4]
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _08091FE8
+ adds r0, r4, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x1]
+ strb r5, [r4]
+_08091FE8:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08091FB8
+ bl sub_80910B4
+ movs r6, 0
+_08091FF4:
+ movs r0, 0x58
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _0809203C
+ ldr r0, [r0]
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08092026
+ adds r4, r2, 0
+ adds r4, 0x28
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08092026
+ cmp r0, 0x69
+ bne _08092026
+ adds r0, r4, 0
+ bl sub_80915E4
+ bl sub_80913A0
+ movs r0, 0
+ strb r0, [r4]
+_08092026:
+ adds r6, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ ble _08091FF4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092038: .4byte gUnknown_203B460
+_0809203C: .4byte gUnknown_203B45C
+ thumb_func_end sub_8091FB4
+
+ thumb_func_start sub_8092040
+sub_8092040:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xEF
+ bls _0809204E
+_0809204A:
+ movs r0, 0x1
+ b _08092070
+_0809204E:
+ movs r2, 0
+ ldr r0, _08092078
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0xF0
+ beq _0809206E
+ adds r1, r4, 0
+_0809205C:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _0809204A
+ adds r2, 0x1
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0xF0
+ bne _0809205C
+_0809206E:
+ movs r0, 0
+_08092070:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08092078: .4byte gUnknown_810A35B
+ thumb_func_end sub_8092040
+
+ thumb_func_start sub_809207C
+sub_809207C:
+ ldr r1, _08092084
+ ldr r0, _08092088
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08092084: .4byte gUnknown_203B464
+_08092088: .4byte gUnknown_2038C10
+ thumb_func_end sub_809207C
+
+ thumb_func_start sub_809208C
+sub_809208C:
+ ldr r0, _08092090
+ bx lr
+ .align 2, 0
+_08092090: .4byte gUnknown_2038C10
+ thumb_func_end sub_809208C
+
+ thumb_func_start sub_8092094
+sub_8092094:
+ push {r4,lr}
+ ldr r4, _080920B0
+ ldr r0, [r4]
+ ldr r1, _080920B4
+ movs r2, 0xA
+ bl sub_8092310
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1, 0xC]
+ strb r0, [r1, 0x10]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080920B0: .4byte gUnknown_203B464
+_080920B4: .4byte gUnknown_810982C
+ thumb_func_end sub_8092094
+
+ thumb_func_start sub_80920B8
+sub_80920B8:
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+ ldr r0, _080920D4
+ ldr r3, [r0]
+_080920C2:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r1, 0x1
+ cmp r1, 0x9
+ ble _080920C2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080920D4: .4byte gUnknown_203B464
+ thumb_func_end sub_80920B8
+
+ thumb_func_start sub_80920D8
+sub_80920D8:
+ push {lr}
+ ldr r1, _080920E8
+ ldr r1, [r1]
+ movs r2, 0xA
+ bl sub_80922B4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080920E8: .4byte gUnknown_203B464
+ thumb_func_end sub_80920D8
+
+ thumb_func_start sub_80920EC
+sub_80920EC:
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, _0809210C
+_080920F4:
+ ldr r0, [r4]
+ adds r0, r2
+ ldrb r1, [r3]
+ strb r1, [r0]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _080920F4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809210C: .4byte gUnknown_203B464
+ thumb_func_end sub_80920EC
+
+ thumb_func_start sub_8092110
+sub_8092110:
+ ldr r0, _08092118
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_08092118: .4byte gUnknown_203B464
+ thumb_func_end sub_8092110
+
+ thumb_func_start sub_809211C
+sub_809211C:
+ push {lr}
+ bl sub_8092178
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _08092144
+ ldr r1, _0809213C
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08092140
+ ldr r1, [r1]
+ ldr r0, [r0]
+ ldr r1, [r1, 0xC]
+ subs r0, r1
+ b _08092146
+ .align 2, 0
+_0809213C: .4byte gUnknown_8109810
+_08092140: .4byte gUnknown_203B464
+_08092144:
+ movs r0, 0
+_08092146:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809211C
+
+ thumb_func_start sub_809214C
+sub_809214C:
+ ldr r1, _08092154
+ ldr r1, [r1]
+ str r0, [r1, 0xC]
+ bx lr
+ .align 2, 0
+_08092154: .4byte gUnknown_203B464
+ thumb_func_end sub_809214C
+
+ thumb_func_start sub_8092158
+sub_8092158:
+ push {lr}
+ ldr r1, _08092170
+ ldr r2, [r1]
+ ldr r1, [r2, 0xC]
+ adds r1, r0
+ str r1, [r2, 0xC]
+ ldr r0, _08092174
+ cmp r1, r0
+ ble _0809216C
+ str r0, [r2, 0xC]
+_0809216C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092170: .4byte gUnknown_203B464
+_08092174: .4byte 0x05f5e0ff
+ thumb_func_end sub_8092158
+
+ thumb_func_start sub_8092178
+sub_8092178:
+ push {lr}
+ movs r1, 0
+ ldr r0, _08092190
+ ldr r0, [r0]
+ ldr r3, [r0, 0xC]
+ ldr r2, _08092194
+_08092184:
+ ldr r0, [r2]
+ cmp r3, r0
+ bge _08092198
+ lsls r0, r1, 24
+ lsrs r0, 24
+ b _080921A2
+ .align 2, 0
+_08092190: .4byte gUnknown_203B464
+_08092194: .4byte gUnknown_8109810
+_08092198:
+ adds r2, 0x4
+ adds r1, 0x1
+ cmp r1, 0x6
+ ble _08092184
+ movs r0, 0x6
+_080921A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092178
+
+ thumb_func_start sub_80921A8
+sub_80921A8:
+ lsls r0, 24
+ ldr r1, _080921B4
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080921B4: .4byte gUnknown_810B44C
+ thumb_func_end sub_80921A8
+
+ thumb_func_start sub_80921B8
+sub_80921B8:
+ ldr r0, _080921C0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ bx lr
+ .align 2, 0
+_080921C0: .4byte gUnknown_203B464
+ thumb_func_end sub_80921B8
+
+ thumb_func_start sub_80921C4
+sub_80921C4:
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ add r6, sp, 0x10
+ movs r0, 0xFF
+ strb r0, [r6]
+ mov r5, sp
+ adds r5, 0x11
+ movs r0, 0
+ strb r0, [r5]
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ ldr r4, _08092228
+ ldr r1, [r4]
+ mov r0, sp
+ movs r2, 0x58
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0xC
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_809488C
+ movs r0, 0
+ bl sub_80023E4
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ adds r1, r5, 0
+ cmp r0, 0
+ beq _08092210
+ adds r1, r6, 0
+_08092210:
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_809488C
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08092228: .4byte gUnknown_203B464
+ thumb_func_end sub_80921C4
+
+ thumb_func_start sub_809222C
+sub_809222C:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ ldr r5, _0809227C
+ ldr r1, [r5]
+ mov r0, sp
+ movs r2, 0x58
+ bl sub_8094924
+ ldr r1, [r5]
+ adds r1, 0xC
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_8094924
+ add r4, sp, 0x10
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r2, [r5]
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ strb r0, [r2, 0x10]
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809227C: .4byte gUnknown_203B464
+ thumb_func_end sub_809222C
+
+ thumb_func_start sub_8092280
+sub_8092280:
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ thumb_func_end sub_8092280
+
+ thumb_func_start sub_8092288
+sub_8092288:
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ thumb_func_end sub_8092288
+
+ thumb_func_start sub_8092290
+sub_8092290:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ b _080922A4
+_08092298:
+ ldrb r0, [r4]
+ adds r4, 0x1
+ bl sub_8092288
+ strb r0, [r5]
+ adds r5, 0x1
+_080922A4:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08092298
+ movs r0, 0
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092290
+
+ thumb_func_start sub_80922B4
+sub_80922B4:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ b _080922CA
+_080922BE:
+ ldrb r0, [r4]
+ adds r4, 0x1
+ bl sub_8092288
+ strb r0, [r6]
+ adds r6, 0x1
+_080922CA:
+ adds r0, r5, 0
+ subs r5, 0x1
+ cmp r0, 0
+ ble _080922D8
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080922BE
+_080922D8:
+ movs r0, 0
+ strb r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80922B4
+
+ thumb_func_start sub_80922E4
+sub_80922E4:
+ ldr r1, _080922F0
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080922F0: .4byte gUnknown_810983C
+ thumb_func_end sub_80922E4
+
+ thumb_func_start sub_80922F4
+sub_80922F4:
+ push {lr}
+ adds r2, r0, 0
+ b _08092300
+_080922FA:
+ strb r0, [r2]
+ adds r1, 0x1
+ adds r2, 0x1
+_08092300:
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080922FA
+ movs r0, 0
+ strb r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80922F4
+
+ thumb_func_start sub_8092310
+sub_8092310:
+ push {r4,lr}
+ adds r4, r0, 0
+ b _0809231C
+_08092316:
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r1, 0x1
+_0809231C:
+ adds r0, r2, 0
+ subs r2, 0x1
+ cmp r0, 0
+ ble _0809232E
+ ldrb r0, [r1]
+ adds r3, r0, 0
+ cmp r3, 0
+ bne _08092316
+ strb r3, [r4]
+_0809232E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092310
+
+ thumb_func_start sub_8092334
+sub_8092334:
+ lsls r0, 24
+ ldr r1, _08092340
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08092340: .4byte gUnknown_810AD4C
+ thumb_func_end sub_8092334
+
+ thumb_func_start sub_8092344
+sub_8092344:
+ lsls r0, 24
+ ldr r1, _08092350
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08092350: .4byte gUnknown_810AE24
+ thumb_func_end sub_8092344
+
+ thumb_func_start sub_8092354
+sub_8092354:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08092360
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08092360: .4byte gUnknown_810AC7C
+ thumb_func_end sub_8092354
+
+ thumb_func_start sub_8092364
+sub_8092364:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08092370
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08092370: .4byte gUnknown_810AC6A
+ thumb_func_end sub_8092364
+
+ thumb_func_start sub_8092374
+sub_8092374:
+ push {lr}
+ lsls r1, 24
+ ldr r2, _0809238C
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0x50
+ bl strncpy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809238C: .4byte gUnknown_810B4C8
+ thumb_func_end sub_8092374
+
+ thumb_func_start sub_8092390
+sub_8092390:
+ lsls r0, 24
+ ldr r1, _0809239C
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0809239C: .4byte gUnknown_810B988
+ thumb_func_end sub_8092390
+
+ thumb_func_start sub_80923A0
+sub_80923A0:
+ ldr r1, _080923A8
+ ldr r0, _080923AC
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080923A8: .4byte gUnknown_203B468
+_080923AC: .4byte gUnknown_2038C28
+ thumb_func_end sub_80923A0
+
+ thumb_func_start sub_80923B0
+sub_80923B0:
+ ldr r0, _080923B4
+ bx lr
+ .align 2, 0
+_080923B4: .4byte gUnknown_2038C28
+ thumb_func_end sub_80923B0
+
+ thumb_func_start sub_80923B8
+sub_80923B8:
+ push {lr}
+ movs r1, 0
+ ldr r3, _080923D0
+ movs r2, 0
+_080923C0:
+ ldr r0, [r3]
+ adds r0, r1
+ strb r2, [r0]
+ adds r1, 0x1
+ cmp r1, 0x39
+ ble _080923C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080923D0: .4byte gUnknown_203B468
+ thumb_func_end sub_80923B8
+
+ thumb_func_start sub_80923D4
+sub_80923D4:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ movs r1, 0
+ ldr r2, _080923F0
+_080923DE:
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ adds r3, r0
+ cmp r3, r4
+ ble _080923F4
+ lsls r0, r1, 24
+ lsrs r0, 24
+ b _080923FE
+ .align 2, 0
+_080923F0: .4byte gUnknown_810AA90
+_080923F4:
+ adds r2, 0x8
+ adds r1, 0x1
+ cmp r1, 0x39
+ ble _080923DE
+ movs r0, 0
+_080923FE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80923D4
+
+ thumb_func_start sub_8092404
+sub_8092404:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r6, 0
+ movs r4, 0
+ mov r5, r10
+_08092426:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _08092494
+ ldr r0, [r0]
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08092472
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ beq _08092448
+ mov r0, r8
+ cmp r0, 0
+ beq _08092472
+_08092448:
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ bne _08092452
+ movs r1, 0x1
+_08092452:
+ cmp r1, 0
+ beq _0809245A
+ cmp r7, 0
+ beq _08092472
+_0809245A:
+ adds r0, r4, 0
+ bl sub_80923D4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bne _08092472
+ cmp r6, 0xF
+ bgt _08092472
+ strh r4, [r5]
+ adds r5, 0x2
+ adds r6, 0x1
+_08092472:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08092426
+ lsls r0, r6, 1
+ add r0, r10
+ ldr r2, _08092498
+ adds r1, r2, 0
+ strh r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092494: .4byte gUnknown_203B45C
+_08092498: .4byte 0x0000ffff
+ thumb_func_end sub_8092404
+
+ thumb_func_start sub_809249C
+sub_809249C:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080924F8
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809251A
+ movs r5, 0
+_080924B4:
+ ldr r2, _080924FC
+ movs r0, 0x58
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08092502
+ adds r0, r5, 0
+ bl sub_80923D4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ bne _08092502
+ movs r1, 0
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x41
+ bne _080924E2
+ movs r1, 0x1
+_080924E2:
+ cmp r1, 0
+ bne _080924F2
+ ldrb r1, [r4, 0x2]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ cmp r0, 0
+ beq _08092500
+_080924F2:
+ movs r7, 0
+ b _08092502
+ .align 2, 0
+_080924F8: .4byte gUnknown_203B468
+_080924FC: .4byte gUnknown_203B45C
+_08092500:
+ strh r0, [r4]
+_08092502:
+ adds r5, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ ble _080924B4
+ cmp r7, 0
+ beq _0809251A
+ ldr r0, _08092520
+ ldr r0, [r0]
+ adds r0, r6
+ movs r1, 0
+ strb r1, [r0]
+_0809251A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092520: .4byte gUnknown_203B468
+ thumb_func_end sub_809249C
+
+ thumb_func_start sub_8092524
+sub_8092524:
+ lsls r0, 24
+ ldr r1, _08092530
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08092530: .4byte gUnknown_81139D0
+ thumb_func_end sub_8092524
+
+ thumb_func_start sub_8092534
+sub_8092534:
+ lsls r0, 24
+ ldr r1, _08092540
+ lsrs r0, 21
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08092540: .4byte gUnknown_810AA90
+ thumb_func_end sub_8092534
+
+ thumb_func_start sub_8092544
+sub_8092544:
+ lsls r0, 24
+ ldr r1, _08092554
+ lsrs r0, 21
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08092554: .4byte gUnknown_810AA90
+ thumb_func_end sub_8092544
+
+ thumb_func_start sub_8092558
+sub_8092558:
+ push {lr}
+ lsls r2, r1, 24
+ ldr r1, _08092570
+ ldr r3, _08092574
+ lsrs r2, 22
+ adds r2, r3
+ ldr r2, [r2]
+ bl sub_800D158
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092570: .4byte gUnknown_81098A4
+_08092574: .4byte gUnknown_81139D0
+ thumb_func_end sub_8092558
+
+ thumb_func_start sub_8092578
+sub_8092578:
+ push {r4,r5,lr}
+ sub sp, 0x18
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ cmp r2, 0
+ beq _080925C0
+ ldr r0, _080925B4
+ lsls r1, r4, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ add r1, sp, 0x4
+ movs r2, 0x1
+ bl sub_8090FEC
+ ldr r1, _080925B8
+ ldr r2, _080925BC
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r2, [r0]
+ add r0, sp, 0x4
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r3, 0x60
+ bl sub_800D158
+ b _080925CE
+ .align 2, 0
+_080925B4: .4byte gUnknown_810AA90
+_080925B8: .4byte gUnknown_81098AC
+_080925BC: .4byte gUnknown_81139D0
+_080925C0:
+ ldr r0, _080925D8
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r5, 0
+ bl strcpy
+_080925CE:
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080925D8: .4byte gUnknown_81139D0
+ thumb_func_end sub_8092578
+
+ thumb_func_start sub_80925DC
+sub_80925DC:
+ lsls r0, 24
+ ldr r1, _080925E8
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080925E8: .4byte gUnknown_8113E30
+ thumb_func_end sub_80925DC
+
+ thumb_func_start sub_80925EC
+sub_80925EC:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080925FC
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080925FC: .4byte gUnknown_203B468
+ thumb_func_end sub_80925EC
+
+ thumb_func_start sub_8092600
+sub_8092600:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08092610
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ bx lr
+ .align 2, 0
+_08092610: .4byte gUnknown_203B468
+ thumb_func_end sub_8092600
+
+ thumb_func_start sub_8092614
+sub_8092614:
+ push {lr}
+ movs r1, 0x1
+ ldr r0, _08092628
+ ldr r2, [r0]
+_0809261C:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809262C
+ movs r0, 0
+ b _08092634
+ .align 2, 0
+_08092628: .4byte gUnknown_203B468
+_0809262C:
+ adds r1, 0x1
+ cmp r1, 0x39
+ ble _0809261C
+ movs r0, 0x1
+_08092634:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092614
+
+ thumb_func_start sub_8092638
+sub_8092638:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r12, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r6, 0
+ movs r3, 0
+ ldr r2, _080926DC
+ cmp r3, r5
+ bge _0809266E
+ ldr r1, _080926E0
+ adds r3, r5, 0
+_0809265E:
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ adds r6, r0
+ adds r1, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bne _0809265E
+ adds r3, r5, 0
+_0809266E:
+ str r6, [r4, 0x8]
+ ldr r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r4, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080926E8
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldr r1, _080926E0
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ movs r3, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080926EC
+ ldr r5, _080926E4
+_0809269A:
+ movs r0, 0x58
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, [r5]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080926CC
+ mov r7, r12
+ cmp r7, 0
+ beq _080926BA
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _080926CC
+_080926BA:
+ mov r0, r8
+ cmp r0, 0
+ beq _080926C6
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ beq _080926CC
+_080926C6:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+_080926CC:
+ adds r3, 0x1
+ adds r6, 0x1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ blt _0809269A
+ b _080926EC
+ .align 2, 0
+_080926DC: .4byte gUnknown_203B468
+_080926E0: .4byte gUnknown_810AA90
+_080926E4: .4byte gUnknown_203B45C
+_080926E8:
+ strh r0, [r4, 0x2]
+ strh r0, [r4]
+_080926EC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092638
+
+ thumb_func_start sub_80926F8
+sub_80926F8:
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r5, 0
+ movs r2, 0
+ ldr r0, _08092780
+ mov r12, r0
+ cmp r2, r3
+ bge _08092724
+ ldr r1, _08092784
+ adds r2, r3, 0
+_08092714:
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ adds r5, r0
+ adds r1, 0x8
+ subs r2, 0x1
+ cmp r2, 0
+ bne _08092714
+ adds r2, r3, 0
+_08092724:
+ str r5, [r4, 0x8]
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r4, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0809279C
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldr r1, _08092784
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ movs r6, 0
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ ble _080927A0
+ ldr r6, _08092788
+ adds r2, r0, 0
+_08092752:
+ movs r0, 0x58
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, [r6]
+ adds r3, r0, r1
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08092792
+ ldrb r0, [r3, 0x2]
+ cmp r0, 0
+ bne _08092776
+ cmp r7, 0
+ bne _0809278C
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0x41
+ bne _0809278C
+_08092776:
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ b _08092792
+ .align 2, 0
+_08092780: .4byte gUnknown_203B468
+_08092784: .4byte gUnknown_810AA90
+_08092788: .4byte gUnknown_203B45C
+_0809278C:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+_08092792:
+ subs r2, 0x1
+ adds r5, 0x1
+ cmp r2, 0
+ bne _08092752
+ b _080927A0
+_0809279C:
+ strh r0, [r4, 0x2]
+ strh r0, [r4]
+_080927A0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80926F8
+
+ thumb_func_start sub_80927A8
+sub_80927A8:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ movs r4, 0
+ add r5, sp, 0x10
+_080927BC:
+ ldr r0, _080927F0
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080927CC
+ movs r0, 0x1
+ negs r0, r0
+_080927CC:
+ str r0, [sp, 0x10]
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r4, 0x1
+ cmp r4, 0x39
+ ble _080927BC
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080927F0: .4byte gUnknown_203B468
+ thumb_func_end sub_80927A8
+
+ thumb_func_start sub_80927F4
+sub_80927F4:
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ movs r4, 0
+ add r7, sp, 0x10
+ movs r6, 0x1
+ ldr r5, _08092828
+_0809280C:
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r1, [sp, 0x10]
+ ands r1, r6
+ cmp r1, 0
+ beq _0809282C
+ ldr r0, [r5]
+ adds r0, r4
+ strb r6, [r0]
+ b _08092832
+ .align 2, 0
+_08092828: .4byte gUnknown_203B468
+_0809282C:
+ ldr r0, [r5]
+ adds r0, r4
+ strb r1, [r0]
+_08092832:
+ adds r4, 0x1
+ cmp r4, 0x39
+ ble _0809280C
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80927F4
+
+ thumb_func_start LoadWazaParameters
+LoadWazaParameters:
+ push {lr}
+ ldr r0, _08092868
+ ldr r1, _0809286C
+ bl OpenFileAndGetFileDataPtr
+ ldr r1, _08092870
+ str r0, [r1]
+ ldr r1, _08092874
+ ldr r2, [r0, 0x4]
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r1, _08092878
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092868: .4byte gUnknown_81098D0
+_0809286C: .4byte gUnknown_8300500
+_08092870: .4byte gWazaParametersFile
+_08092874: .4byte gUnknown_2038C68
+_08092878: .4byte gUnknown_2038C6C
+ thumb_func_end LoadWazaParameters
+
+ thumb_func_start sub_809287C
+sub_809287C:
+ push {lr}
+ adds r2, r0, 0
+ ldrb r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08092894
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08092898
+_08092894:
+ movs r0, 0x32
+ b _0809289A
+_08092898:
+ movs r0, 0x34
+_0809289A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809287C
+
+ thumb_func_start sub_80928A0
+sub_80928A0:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r2, 0
+ mov r0, sp
+ bl sub_8093F10
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ bl sub_80928C0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80928A0
+
+ thumb_func_start sub_80928C0
+sub_80928C0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ adds r7, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r0, r4, 0
+ bl sub_809287C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r5, 0
+ bne _080928DE
+ ldr r5, _080928F0
+_080928DE:
+ ldrb r1, [r4, 0x5]
+ cmp r1, 0
+ beq _080928F8
+ ldr r1, _080928F4
+ ldrb r2, [r4, 0x5]
+ add r0, sp, 0x14
+ bl sub_800D158
+ b _080928FC
+ .align 2, 0
+_080928F0: .4byte gUnknown_81098C4
+_080928F4: .4byte gUnknown_81098DC
+_080928F8:
+ add r0, sp, 0x14
+ strb r1, [r0]
+_080928FC:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0
+ beq _08092904
+ movs r6, 0x2
+_08092904:
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ beq _08092918
+ ldrh r0, [r4, 0x2]
+ bl sub_809422C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08092918
+ movs r6, 0x2
+_08092918:
+ ldr r0, [r5]
+ cmp r0, 0x4
+ bls _08092920
+ b _08092A6A
+_08092920:
+ lsls r0, 2
+ ldr r1, _0809292C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809292C: .4byte _08092930
+ .align 2, 0
+_08092930:
+ .4byte _08092944
+ .4byte _0809296C
+ .4byte _08092998
+ .4byte _080929C4
+ .4byte _08092A20
+_08092944:
+ ldr r1, _08092964
+ ldrh r2, [r4, 0x2]
+ ldr r0, _08092968
+ ldr r3, [r0]
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldr r3, [r0]
+ add r0, sp, 0x14
+ str r0, [sp]
+ adds r0, r7, 0
+ adds r2, r6, 0
+ bl sub_800D158
+ b _08092A6A
+ .align 2, 0
+_08092964: .4byte gUnknown_81098E0
+_08092968: .4byte gUnknown_2038C68
+_0809296C:
+ adds r0, r4, 0
+ bl sub_8092BF4
+ adds r3, r0, 0
+ ldr r1, _0809298C
+ mov r8, r1
+ ldrb r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r1, _08092990
+ mov r12, r1
+ cmp r0, 0
+ beq _080929E2
+ ldr r0, _08092994
+ b _080929E0
+ .align 2, 0
+_0809298C: .4byte gUnknown_81098EC
+_08092990: .4byte gUnknown_810990C
+_08092994: .4byte gUnknown_8109908
+_08092998:
+ adds r0, r4, 0
+ bl sub_8092BF4
+ adds r3, r0, 0
+ ldr r0, _080929B8
+ mov r8, r0
+ ldrb r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r1, _080929BC
+ mov r12, r1
+ cmp r0, 0
+ beq _080929E2
+ ldr r0, _080929C0
+ b _080929E0
+ .align 2, 0
+_080929B8: .4byte gUnknown_8109910
+_080929BC: .4byte gUnknown_810990C
+_080929C0: .4byte gUnknown_8109908
+_080929C4:
+ adds r0, r4, 0
+ bl sub_8092BF4
+ adds r3, r0, 0
+ ldr r0, _08092A10
+ mov r8, r0
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ ldr r1, _08092A14
+ mov r12, r1
+ cmp r0, 0
+ beq _080929E2
+ ldr r0, _08092A18
+_080929E0:
+ mov r12, r0
+_080929E2:
+ ldrh r1, [r4, 0x2]
+ ldr r0, _08092A1C
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [sp]
+ add r1, sp, 0x14
+ str r1, [sp, 0x4]
+ ldr r0, [r5, 0x4]
+ str r0, [sp, 0x8]
+ ldrb r0, [r4, 0x4]
+ str r0, [sp, 0xC]
+ str r3, [sp, 0x10]
+ adds r0, r7, 0
+ mov r1, r8
+ adds r2, r6, 0
+ mov r3, r12
+ bl sub_800D158
+ b _08092A6A
+ .align 2, 0
+_08092A10: .4byte gUnknown_81098EC
+_08092A14: .4byte gUnknown_810990C
+_08092A18: .4byte gUnknown_8109928
+_08092A1C: .4byte gUnknown_2038C68
+_08092A20:
+ adds r0, r4, 0
+ bl sub_8092BF4
+ adds r3, r0, 0
+ ldr r0, _08092A78
+ mov r8, r0
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ ldr r1, _08092A7C
+ mov r12, r1
+ cmp r0, 0
+ beq _08092A3E
+ ldr r0, _08092A80
+ mov r12, r0
+_08092A3E:
+ ldrh r1, [r4, 0x2]
+ ldr r0, _08092A84
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [sp]
+ add r1, sp, 0x14
+ str r1, [sp, 0x4]
+ ldr r0, [r5, 0x4]
+ str r0, [sp, 0x8]
+ ldrb r0, [r4, 0x4]
+ str r0, [sp, 0xC]
+ str r3, [sp, 0x10]
+ adds r0, r7, 0
+ mov r1, r8
+ adds r2, r6, 0
+ mov r3, r12
+ bl sub_800D158
+_08092A6A:
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092A78: .4byte gUnknown_8109910
+_08092A7C: .4byte gUnknown_810990C
+_08092A80: .4byte gUnknown_8109928
+_08092A84: .4byte gUnknown_2038C68
+ thumb_func_end sub_80928C0
+
+ thumb_func_start sub_8092A88
+sub_8092A88:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ movs r0, 0x5
+ strb r0, [r4]
+ strb r2, [r4, 0x1]
+ movs r5, 0
+ strh r1, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_8092BF4
+ strb r0, [r4, 0x4]
+ strb r5, [r4, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092A88
+
+ thumb_func_start sub_8092AA8
+sub_8092AA8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r2, 0
+ bne _08092AB8
+ strb r2, [r5]
+ b _08092ACE
+_08092AB8:
+ movs r1, 0
+ movs r0, 0x5
+ strb r0, [r5]
+ strb r1, [r5, 0x1]
+ movs r4, 0
+ strh r2, [r5, 0x2]
+ adds r0, r5, 0
+ bl sub_8092BF4
+ strb r0, [r5, 0x4]
+ strb r4, [r5, 0x5]
+_08092ACE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092AA8
+
+ thumb_func_start sub_8092AD4
+sub_8092AD4:
+ movs r2, 0x5
+ strb r2, [r0]
+ movs r2, 0
+ strh r1, [r0, 0x2]
+ strb r2, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_8092AD4
+
+ thumb_func_start sub_8092AE0
+sub_8092AE0:
+ ldrh r2, [r0, 0x2]
+ ldr r0, _08092AFC
+ ldr r3, [r0]
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ lsls r1, 1
+ adds r0, 0x8
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08092AFC: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092AE0
+
+ thumb_func_start sub_8092B00
+sub_8092B00:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092B14
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ bx lr
+ .align 2, 0
+_08092B14: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092B00
+
+ thumb_func_start sub_8092B18
+sub_8092B18:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r2, r1, 0
+ ldr r0, _08092B40
+ cmp r1, r0
+ beq _08092B48
+ cmp r1, 0
+ beq _08092B48
+ movs r0, 0xD2
+ lsls r0, 1
+ cmp r2, r0
+ beq _08092B48
+ ldr r0, _08092B44
+ ldr r1, [r0]
+ lsls r0, r2, 3
+ adds r0, r1
+ ldr r0, [r0]
+ b _08092B4A
+ .align 2, 0
+_08092B40: .4byte 0x000001a5
+_08092B44: .4byte gUnknown_2038C6C
+_08092B48:
+ ldr r0, _08092B50
+_08092B4A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08092B50: .4byte gUnknown_810992B
+ thumb_func_end sub_8092B18
+
+ thumb_func_start sub_8092B54
+sub_8092B54:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r2, r1, 0
+ ldr r0, _08092B7C
+ cmp r1, r0
+ beq _08092B84
+ cmp r1, 0
+ beq _08092B84
+ movs r0, 0xD2
+ lsls r0, 1
+ cmp r2, r0
+ beq _08092B84
+ ldr r0, _08092B80
+ ldr r1, [r0]
+ lsls r0, r2, 3
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ b _08092B86
+ .align 2, 0
+_08092B7C: .4byte 0x000001a5
+_08092B80: .4byte gUnknown_2038C6C
+_08092B84:
+ ldr r0, _08092B8C
+_08092B86:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08092B8C: .4byte gUnknown_810992B
+ thumb_func_end sub_8092B54
+
+ thumb_func_start sub_8092B90
+sub_8092B90:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092BA4
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0xD]
+ bx lr
+ .align 2, 0
+_08092BA4: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092B90
+
+ thumb_func_start sub_8092BA8
+sub_8092BA8:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092BBC
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x11]
+ bx lr
+ .align 2, 0
+_08092BBC: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092BA8
+
+ thumb_func_start sub_8092BC0
+sub_8092BC0:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092BD4
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08092BD4: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092BC0
+
+ thumb_func_start sub_8092BD8
+sub_8092BD8:
+ ldrh r2, [r0, 0x2]
+ ldr r0, _08092BF0
+ ldr r3, [r0]
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0xE
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08092BF0: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092BD8
+
+ thumb_func_start sub_8092BF4
+sub_8092BF4:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092C08
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_08092C08: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092BF4
+
+ thumb_func_start sub_8092C0C
+sub_8092C0C:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092C20
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x12]
+ bx lr
+ .align 2, 0
+_08092C20: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092C0C
+
+ thumb_func_start sub_8092C24
+sub_8092C24:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092C38
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ bx lr
+ .align 2, 0
+_08092C38: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092C24
+
+ thumb_func_start sub_8092C3C
+sub_8092C3C:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092C50
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x17]
+ bx lr
+ .align 2, 0
+_08092C50: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092C3C
+
+ thumb_func_start sub_8092C54
+sub_8092C54:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092C68
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x18]
+ bx lr
+ .align 2, 0
+_08092C68: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092C54
+
+ thumb_func_start sub_8092C6C
+sub_8092C6C:
+ ldrh r1, [r0, 0x2]
+ ldr r0, _08092C80
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x19]
+ bx lr
+ .align 2, 0
+_08092C80: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092C6C
+
+ thumb_func_start sub_8092C84
+sub_8092C84:
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ bl sub_8092A88
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0
+ bl sub_80928C0
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8092C84
+
+ thumb_func_start sub_8092CA8
+sub_8092CA8:
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08092CBC
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1, 0x20]
+ bx lr
+ .align 2, 0
+_08092CBC: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092CA8
+
+ thumb_func_start sub_8092CC0
+sub_8092CC0:
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08092CD4
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x14]
+ bx lr
+ .align 2, 0
+_08092CD4: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092CC0
+
+ thumb_func_start sub_8092CD8
+sub_8092CD8:
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08092CEC
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x15]
+ bx lr
+ .align 2, 0
+_08092CEC: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092CD8
+
+ thumb_func_start sub_8092CF0
+sub_8092CF0:
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08092D04
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x16]
+ bx lr
+ .align 2, 0
+_08092D04: .4byte gUnknown_2038C68
+ thumb_func_end sub_8092CF0
+
+ thumb_func_start sub_8092D08
+sub_8092D08:
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2]
+ cmp r1, 0xD9
+ beq _08092D4C
+ movs r0, 0x8E
+ lsls r0, 1
+ cmp r1, r0
+ beq _08092D4C
+ cmp r1, 0x53
+ beq _08092D4C
+ cmp r1, 0x22
+ beq _08092D4C
+ cmp r1, 0x54
+ beq _08092D4C
+ cmp r1, 0xAB
+ beq _08092D4C
+ ldr r0, _08092D48
+ cmp r1, r0
+ beq _08092D4C
+ cmp r1, 0x1B
+ beq _08092D4C
+ cmp r1, 0xF1
+ beq _08092D4C
+ cmp r1, 0x19
+ beq _08092D4C
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x1A
+ beq _08092D4C
+ movs r0, 0
+ b _08092D4E
+ .align 2, 0
+_08092D48: .4byte 0x00000125
+_08092D4C:
+ movs r0, 0x1
+_08092D4E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092D08
+
+ thumb_func_start sub_8092D54
+sub_8092D54:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r0, r1, 0
+ ldr r5, _08092D78
+ ldr r4, _08092D7C
+ bl sub_8092C6C
+ lsls r0, 2
+ adds r0, r4
+ ldr r2, [r0]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_800D158
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092D78: .4byte gUnknown_810992C
+_08092D7C: .4byte gUnknown_810CC0C
+ thumb_func_end sub_8092D54
+
+ thumb_func_start sub_8092D80
+sub_8092D80:
+ push {r4,r5,lr}
+ adds r3, r1, 0
+ movs r5, 0
+ lsls r1, r3, 3
+ adds r1, r0
+_08092D8A:
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, 0x4
+ beq _08092DB0
+ ldrb r2, [r1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092DB0
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092DAA
+ adds r0, r3, 0
+ b _08092DB2
+_08092DAA:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08092D8A
+_08092DB0:
+ movs r0, 0
+_08092DB2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092D80
+
+ thumb_func_start sub_8092DB8
+sub_8092DB8:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ movs r6, 0x1
+_08092DC0:
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08092DF0
+ movs r2, 0x3
+ ldrb r1, [r4, 0x18]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08092DD6
+ movs r1, 0x3
+ b _08092DEC
+_08092DD6:
+ subs r2, 0x1
+ cmp r2, 0
+ blt _08092E12
+ lsls r0, r2, 3
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08092DD6
+ adds r1, r2, 0
+_08092DEC:
+ cmp r2, 0
+ blt _08092E12
+_08092DF0:
+ lsls r0, r1, 3
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092E12
+ lsrs r0, r2, 1
+ ands r0, r3
+ cmp r0, 0
+ bne _08092E0C
+ adds r0, r1, 0
+ b _08092E14
+_08092E0C:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08092DC0
+_08092E12:
+ movs r0, 0
+_08092E14:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092DB8
+
+ thumb_func_start sub_8092E1C
+sub_8092E1C:
+ push {r4,r5,lr}
+ adds r3, r1, 0
+ movs r5, 0
+ lsls r1, r3, 3
+ adds r1, r0
+_08092E26:
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, 0x8
+ beq _08092E4C
+ ldrb r2, [r1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092E4C
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092E46
+ adds r0, r3, 0
+ b _08092E4E
+_08092E46:
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08092E26
+_08092E4C:
+ movs r0, 0
+_08092E4E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092E1C
+
+ thumb_func_start sub_8092E54
+sub_8092E54:
+ push {r4,r5,lr}
+ adds r3, r1, 0
+ movs r5, 0
+ lsls r1, r3, 3
+ adds r1, r0
+_08092E5E:
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, 0x8
+ beq _08092E84
+ ldrb r2, [r1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092E84
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092E7E
+ adds r0, r3, 0
+ b _08092E86
+_08092E7E:
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08092E5E
+_08092E84:
+ movs r0, 0
+_08092E86:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092E54
+
+ thumb_func_start sub_8092E8C
+sub_8092E8C:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ lsls r0, r1, 3
+ adds r3, r0, r6
+_08092E96:
+ subs r3, 0x8
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08092EC6
+ movs r3, 0x7
+ movs r4, 0x1
+ adds r2, r6, 0
+ adds r2, 0x38
+_08092EA6:
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08092EBC
+ lsrs r0, r1, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092EBC
+ adds r0, r3, 0
+ b _08092EE6
+_08092EBC:
+ subs r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _08092EA6
+ b _08092EE4
+_08092EC6:
+ ldrb r2, [r3]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092EE4
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092EDE
+ adds r0, r1, 0
+ b _08092EE6
+_08092EDE:
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08092E96
+_08092EE4:
+ movs r0, 0
+_08092EE6:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092E8C
+
+ thumb_func_start sub_8092EEC
+sub_8092EEC:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ lsls r0, r1, 3
+ adds r3, r0, r6
+_08092EF6:
+ subs r3, 0x8
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08092F26
+ movs r3, 0x7
+ movs r4, 0x1
+ adds r2, r6, 0
+ adds r2, 0x38
+_08092F06:
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08092F1C
+ lsrs r0, r1, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092F1C
+ adds r0, r3, 0
+ b _08092F46
+_08092F1C:
+ subs r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _08092F06
+ b _08092F44
+_08092F26:
+ ldrb r2, [r3]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092F44
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092F3E
+ adds r0, r1, 0
+ b _08092F46
+_08092F3E:
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08092EF6
+_08092F44:
+ movs r0, 0
+_08092F46:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092EEC
+
+ thumb_func_start sub_8092F4C
+sub_8092F4C:
+ push {r4,lr}
+ adds r2, r0, 0
+ cmp r1, 0
+ ble _08092F78
+ movs r4, 0x1
+ lsls r0, r1, 3
+ adds r3, r0, r2
+_08092F5A:
+ ldrb r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092F78
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ bne _08092F70
+ adds r0, r1, 0
+ b _08092F7A
+_08092F70:
+ subs r3, 0x8
+ subs r1, 0x1
+ cmp r1, 0
+ bgt _08092F5A
+_08092F78:
+ movs r0, 0
+_08092F7A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092F4C
+
+ thumb_func_start sub_8092F80
+sub_8092F80:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x80
+ adds r7, r0, 0
+ mov r8, r1
+ lsls r0, r1, 3
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093784
+ mov r0, sp
+ bl sub_8093744
+ adds r3, r0, 0
+ cmp r3, 0x2
+ bhi _08092FCC
+ lsls r1, r3, 5
+ adds r0, r3, 0x1
+ lsls r0, 5
+ mov r2, sp
+ adds r5, r0, r2
+ adds r4, r1, r2
+ movs r6, 0x3
+_08092FBA:
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r4!, {r0,r1}
+ stm r5!, {r2,r3}
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08092FBA
+_08092FCC:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_80937E0
+ movs r3, 0
+ movs r5, 0x80
+ movs r4, 0x7F
+ adds r1, r7, 0
+_08092FDC:
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08092FF0
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1]
+ mov r8, r3
+ b _08092FF8
+_08092FF0:
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08092FDC
+_08092FF8:
+ mov r0, r8
+ add sp, 0x80
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8092F80
+
+ thumb_func_start sub_8093008
+sub_8093008:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _0809307C
+ add sp, r4
+ adds r7, r0, 0
+ mov r8, r1
+ lsls r0, r1, 3
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093974
+ mov r0, sp
+ bl sub_80938F4
+ adds r3, r0, 0
+ cmp r3, 0x6
+ bhi _08093056
+ lsls r1, r3, 6
+ adds r0, r3, 0x1
+ lsls r0, 6
+ mov r2, sp
+ adds r5, r0, r2
+ adds r4, r1, r2
+ movs r6, 0x7
+_08093044:
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r4!, {r0,r1}
+ stm r5!, {r2,r3}
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08093044
+_08093056:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093A2C
+ movs r3, 0
+ movs r5, 0x80
+ movs r4, 0x7F
+ adds r1, r7, 0
+_08093066:
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08093080
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1]
+ mov r8, r3
+ b _08093088
+ .align 2, 0
+_0809307C: .4byte 0xfffffe00
+_08093080:
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08093066
+_08093088:
+ mov r0, r8
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093008
+
+ thumb_func_start sub_809309C
+sub_809309C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08093110
+ add sp, r4
+ adds r7, r0, 0
+ mov r8, r1
+ lsls r0, r1, 3
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_80939D0
+ mov r0, sp
+ bl sub_8093934
+ adds r3, r0, 0
+ cmp r3, 0x6
+ bhi _080930EA
+ lsls r1, r3, 6
+ adds r0, r3, 0x1
+ lsls r0, 6
+ mov r2, sp
+ adds r5, r0, r2
+ adds r4, r1, r2
+ movs r6, 0x7
+_080930D8:
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r4!, {r0,r1}
+ stm r5!, {r2,r3}
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080930D8
+_080930EA:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093B40
+ movs r3, 0
+ movs r5, 0x80
+ movs r4, 0x7F
+ adds r1, r7, 0
+_080930FA:
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08093114
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1]
+ mov r8, r3
+ b _0809311C
+ .align 2, 0
+_08093110: .4byte 0xfffffe00
+_08093114:
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _080930FA
+_0809311C:
+ mov r0, r8
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809309C
+
+ thumb_func_start sub_8093130
+sub_8093130:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x80
+ adds r7, r0, 0
+ mov r8, r1
+ lsls r0, r1, 3
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093784
+ mov r0, sp
+ bl sub_8093744
+ adds r1, r0, 0
+ subs r0, r1, 0x1
+ cmp r0, 0x2
+ bhi _0809317C
+ lsls r1, 5
+ lsls r0, 5
+ mov r2, sp
+ adds r5, r0, r2
+ adds r4, r1, r2
+ movs r6, 0x3
+_0809316A:
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r4!, {r0,r1}
+ stm r5!, {r2,r3}
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0809316A
+_0809317C:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_80937E0
+ movs r1, 0
+ movs r5, 0x80
+ movs r4, 0x7F
+ adds r2, r7, 0
+_0809318C:
+ ldrb r3, [r2]
+ adds r0, r5, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080931A0
+ adds r0, r4, 0
+ ands r0, r3
+ strb r0, [r2]
+ mov r8, r1
+ b _080931A8
+_080931A0:
+ adds r2, 0x8
+ adds r1, 0x1
+ cmp r1, 0x3
+ ble _0809318C
+_080931A8:
+ mov r0, r8
+ add sp, 0x80
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093130
+
+ thumb_func_start sub_80931B8
+sub_80931B8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _0809322C
+ add sp, r4
+ adds r7, r0, 0
+ mov r8, r1
+ lsls r0, r1, 3
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093974
+ mov r0, sp
+ bl sub_80938F4
+ adds r1, r0, 0
+ subs r0, r1, 0x1
+ cmp r0, 0x6
+ bhi _08093206
+ lsls r1, 6
+ lsls r0, 6
+ mov r2, sp
+ adds r5, r0, r2
+ adds r4, r1, r2
+ movs r6, 0x7
+_080931F4:
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r4!, {r0,r1}
+ stm r5!, {r2,r3}
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080931F4
+_08093206:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093A2C
+ movs r1, 0
+ movs r5, 0x80
+ movs r4, 0x7F
+ adds r2, r7, 0
+_08093216:
+ ldrb r3, [r2]
+ adds r0, r5, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08093230
+ adds r0, r4, 0
+ ands r0, r3
+ strb r0, [r2]
+ mov r8, r1
+ b _08093238
+ .align 2, 0
+_0809322C: .4byte 0xfffffe00
+_08093230:
+ adds r2, 0x8
+ adds r1, 0x1
+ cmp r1, 0x7
+ ble _08093216
+_08093238:
+ mov r0, r8
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80931B8
+
+ thumb_func_start sub_809324C
+sub_809324C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _080932C0
+ add sp, r4
+ adds r7, r0, 0
+ mov r8, r1
+ lsls r0, r1, 3
+ adds r0, r7, r0
+ ldrb r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_80939D0
+ mov r0, sp
+ bl sub_8093934
+ adds r1, r0, 0
+ subs r0, r1, 0x1
+ cmp r0, 0x6
+ bhi _0809329A
+ lsls r1, 6
+ lsls r0, 6
+ mov r2, sp
+ adds r5, r0, r2
+ adds r4, r1, r2
+ movs r6, 0x7
+_08093288:
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r4!, {r0,r1}
+ stm r5!, {r2,r3}
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08093288
+_0809329A:
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_8093B40
+ movs r1, 0
+ movs r5, 0x80
+ movs r4, 0x7F
+ adds r2, r7, 0
+_080932AA:
+ ldrb r3, [r2]
+ adds r0, r5, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080932C4
+ adds r0, r4, 0
+ ands r0, r3
+ strb r0, [r2]
+ mov r8, r1
+ b _080932CC
+ .align 2, 0
+_080932C0: .4byte 0xfffffe00
+_080932C4:
+ adds r2, 0x8
+ adds r1, 0x1
+ cmp r1, 0x7
+ ble _080932AA
+_080932CC:
+ mov r0, r8
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809324C
+
+ thumb_func_start sub_80932E0
+sub_80932E0:
+ push {lr}
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080932F4
+ movs r0, 0
+ b _080932F6
+_080932F4:
+ movs r0, 0x1
+_080932F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80932E0
+
+ thumb_func_start sub_80932FC
+sub_80932FC:
+ push {lr}
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08093310
+ movs r0, 0
+ b _08093312
+_08093310:
+ movs r0, 0x1
+_08093312:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80932FC
+
+ thumb_func_start sub_8093318
+sub_8093318:
+ push {r4,lr}
+ sub sp, 0x40
+ adds r4, r0, 0
+ mov r0, sp
+ movs r2, 0x40
+ bl MemoryCopy8
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_8093400
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x40
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093318
+
+ thumb_func_start sub_809333C
+sub_809333C:
+ push {r4,lr}
+ sub sp, 0x40
+ adds r4, r0, 0
+ mov r0, sp
+ movs r2, 0x40
+ bl MemoryCopy8
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_8093468
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x40
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809333C
+
+ thumb_func_start sub_8093360
+sub_8093360:
+ push {r4,lr}
+ sub sp, 0x40
+ adds r4, r0, 0
+ mov r0, sp
+ movs r2, 0x40
+ bl MemoryCopy8
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_80933D8
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x40
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093360
+
+ thumb_func_start sub_8093384
+sub_8093384:
+ push {lr}
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08093398
+ movs r0, 0x1
+ b _0809339A
+_08093398:
+ movs r0, 0
+_0809339A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093384
+
+ thumb_func_start sub_80933A0
+sub_80933A0:
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x1
+ movs r5, 0x2
+ movs r3, 0x7
+_080933AA:
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080933BE
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _080933BE
+ adds r4, 0x1
+_080933BE:
+ adds r1, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080933AA
+ cmp r4, 0x1
+ bgt _080933CE
+ movs r0, 0
+ b _080933D0
+_080933CE:
+ movs r0, 0x1
+_080933D0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80933A0
+
+ thumb_func_start sub_80933D8
+sub_80933D8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ bl sub_8093400
+ lsls r0, 24
+ cmp r0, 0
+ bne _080933F6
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8093468
+ lsls r0, 24
+ lsrs r0, 24
+ b _080933F8
+_080933F6:
+ movs r0, 0x1
+_080933F8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80933D8
+
+ thumb_func_start sub_8093400
+sub_8093400:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r7, r1, 0
+ lsls r0, r4, 3
+ adds r0, r7, r0
+ ldrh r0, [r0, 0x2]
+ bl sub_809422C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08093428
+ b _08093460
+_08093418:
+ adds r0, r1, 0
+ orrs r0, r2
+ strb r0, [r6]
+ adds r0, r7, 0
+ bl sub_809371C
+ movs r0, 0x1
+ b _08093462
+_08093428:
+ adds r5, r4, 0x1
+ cmp r5, 0x7
+ bgt _08093460
+ lsls r0, r5, 3
+ adds r4, r0, r7
+ adds r6, r4, 0
+_08093434:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093460
+ ldrh r0, [r4, 0x2]
+ bl sub_809422C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08093460
+ ldrb r1, [r4]
+ movs r2, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08093418
+ adds r4, 0x8
+ adds r6, 0x8
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08093434
+_08093460:
+ movs r0, 0
+_08093462:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093400
+
+ thumb_func_start sub_8093468
+sub_8093468:
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ movs r5, 0
+ adds r1, r0, 0x1
+ movs r4, 0
+ cmp r1, 0x7
+ bgt _080934A0
+ movs r0, 0x2
+ mov r12, r0
+ movs r7, 0xFD
+ lsls r0, r1, 3
+ adds r3, r0, r6
+_08093480:
+ ldrb r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ cmp r0, 0
+ beq _080934A0
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r3]
+ movs r5, 0x1
+ adds r3, 0x8
+ adds r1, 0x1
+ adds r4, 0x1
+ cmp r4, 0x7
+ bgt _080934A0
+ cmp r1, 0x7
+ ble _08093480
+_080934A0:
+ adds r0, r6, 0
+ bl sub_809371C
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093468
+
+ thumb_func_start sub_80934B0
+sub_80934B0:
+ push {lr}
+ adds r2, r0, 0
+ adds r0, r2, 0x1
+ cmp r0, 0x7
+ bgt _080934D2
+ lsls r0, r2, 3
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080934D2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080934D6
+_080934D2:
+ movs r0, 0
+ b _080934D8
+_080934D6:
+ movs r0, 0x1
+_080934D8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80934B0
+
+ thumb_func_start sub_80934DC
+sub_80934DC:
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 3
+ adds r4, r5, r0
+ ldrb r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080934F4
+ movs r0, 0xF7
+ ands r0, r1
+ b _0809351A
+_080934F4:
+ movs r7, 0x1
+ movs r6, 0xF7
+ adds r1, r5, 0
+ movs r3, 0x3
+_080934FC:
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0809350C
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+_0809350C:
+ adds r1, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080934FC
+ ldrb r1, [r4]
+ movs r0, 0x8
+ orrs r0, r1
+_0809351A:
+ strb r0, [r4]
+ adds r0, r5, 0
+ bl sub_809371C
+ movs r0, 0x1
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80934DC
+
+ thumb_func_start sub_809352C
+sub_809352C:
+ push {lr}
+ lsls r0, 3
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ movs r2, 0xF7
+ ands r2, r3
+ strb r2, [r0]
+ adds r0, r1, 0
+ bl sub_809371C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809352C
+
+ thumb_func_start sub_8093544
+sub_8093544:
+ push {lr}
+ lsls r0, 3
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ movs r3, 0x4
+ eors r2, r3
+ strb r2, [r0]
+ adds r0, r1, 0
+ bl sub_809371C
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093544
+
+ thumb_func_start sub_8093560
+sub_8093560:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ movs r5, 0x1
+ lsls r0, r4, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x2]
+ strh r0, [r2]
+ movs r1, 0
+ adds r0, r2, 0x2
+ movs r3, 0x2
+_08093576:
+ strh r1, [r0]
+ adds r0, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093576
+ adds r4, 0x1
+ adds r2, 0x2
+ cmp r4, 0x7
+ bgt _080935B0
+ cmp r5, 0x3
+ bgt _080935B0
+ movs r7, 0x2
+ lsls r0, r4, 3
+ adds r3, r0, r6
+_08093592:
+ ldrb r1, [r3]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080935B0
+ ldrh r0, [r3, 0x2]
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r5, 0x1
+ adds r3, 0x8
+ adds r4, 0x1
+ cmp r4, 0x7
+ bgt _080935B0
+ cmp r5, 0x3
+ ble _08093592
+_080935B0:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093560
+
+ thumb_func_start sub_80935B8
+sub_80935B8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r0, 0x63
+ mov r12, r0
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ adds r4, r1, 0
+ cmp r4, 0
+ blt _08093606
+ lsls r0, r4, 3
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093606
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08093606
+ movs r7, 0x1
+ movs r3, 0x2
+_080935EC:
+ subs r2, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ blt _08093606
+ ldrb r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093606
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080935EC
+_08093606:
+ adds r2, r4, 0x1
+ mov r9, r2
+ cmp r2, 0x3
+ bgt _08093642
+ lsls r0, r2, 3
+ adds r3, r5, r0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093642
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08093642
+ movs r6, 0x1
+ movs r7, 0x2
+_08093628:
+ adds r3, 0x8
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08093642
+ ldrb r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093642
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08093628
+_08093642:
+ cmp r6, 0
+ bne _0809364A
+ movs r0, 0x63
+ b _080936CC
+_0809364A:
+ movs r6, 0
+ b _08093668
+_0809364E:
+ ldrb r0, [r3, 0x4]
+ cmp r12, r0
+ ble _08093656
+ mov r12, r0
+_08093656:
+ cmp r0, 0
+ bne _0809365C
+ movs r6, 0x1
+_0809365C:
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08093668
+ movs r6, 0x1
+_08093668:
+ subs r2, 0x1
+ cmp r2, r4
+ blt _0809367C
+ lsls r0, r2, 3
+ adds r3, r5, r0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809364E
+_0809367C:
+ cmp r6, 0
+ beq _080936C6
+ mov r2, r9
+ cmp r2, 0x3
+ bgt _080936C0
+ lsls r0, r2, 3
+ adds r3, r5, r0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080936C0
+ movs r6, 0x2
+ movs r4, 0xFD
+_08093698:
+ ldrb r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080936C0
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ mov r8, r0
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080936C0
+ lsls r0, r2, 3
+ adds r3, r5, r0
+ ldrb r1, [r3]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _08093698
+_080936C0:
+ mov r0, r8
+ cmp r0, 0
+ bne _080936CA
+_080936C6:
+ mov r0, r12
+ b _080936CC
+_080936CA:
+ movs r0, 0
+_080936CC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80935B8
+
+ thumb_func_start sub_80936D8
+sub_80936D8:
+ push {r4,lr}
+ sub sp, 0x80
+ adds r4, r0, 0
+ mov r1, sp
+ bl sub_8093784
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_80937E0
+ add sp, 0x80
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80936D8
+
+ thumb_func_start sub_80936F4
+sub_80936F4:
+ push {r4,lr}
+ ldr r4, _08093718
+ add sp, r4
+ adds r4, r0, 0
+ mov r1, sp
+ bl sub_8093974
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_8093A2C
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093718: .4byte 0xfffffe00
+ thumb_func_end sub_80936F4
+
+ thumb_func_start sub_809371C
+sub_809371C:
+ push {r4,lr}
+ ldr r4, _08093740
+ add sp, r4
+ adds r4, r0, 0
+ mov r1, sp
+ bl sub_80939D0
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_8093B40
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093740: .4byte 0xfffffe00
+ thumb_func_end sub_809371C
+
+ thumb_func_start sub_8093744
+sub_8093744:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r4, 0
+ movs r6, 0x1
+ movs r5, 0x80
+_0809374E:
+ movs r3, 0
+ lsls r0, r4, 5
+ adds r2, r0, r7
+_08093754:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809376A
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809376A
+ adds r0, r4, 0
+ b _0809377C
+_0809376A:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08093754
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0809374E
+ movs r0, 0x1
+ negs r0, r0
+_0809377C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093744
+
+ thumb_func_start sub_8093784
+sub_8093784:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r2, 0
+ movs r4, 0
+_0809378C:
+ lsls r0, r2, 5
+ adds r2, 0x1
+ movs r3, 0x3
+ adds r0, r1
+ adds r0, 0x18
+_08093796:
+ strb r4, [r0]
+ subs r0, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093796
+ cmp r2, 0x3
+ ble _0809378C
+ movs r3, 0
+ movs r5, 0
+ adds r4, r1, 0
+ subs r4, 0x20
+ movs r7, 0x2
+_080937AE:
+ cmp r5, 0
+ beq _080937BC
+ ldrb r1, [r6]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080937C0
+_080937BC:
+ adds r4, 0x20
+ movs r3, 0
+_080937C0:
+ lsls r2, r3, 3
+ adds r2, r4
+ ldm r6!, {r0,r1}
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r1, [r2]
+ movs r0, 0xFD
+ ands r0, r1
+ strb r0, [r2]
+ adds r3, 0x1
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080937AE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093784
+
+ thumb_func_start sub_80937E0
+sub_80937E0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r0, [sp, 0x8]
+ mov r9, r1
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ add r1, sp, 0x4
+ mov r10, r1
+ mov r12, r6
+ movs r3, 0x1
+_080937FE:
+ mov r2, sp
+ adds r0, r2, r6
+ mov r7, r12
+ strb r7, [r0]
+ mov r1, sp
+ adds r1, r6
+ adds r1, 0x4
+ mov r2, r12
+ strb r2, [r1]
+ adds r7, r0, 0
+ lsls r0, r6, 5
+ adds r6, 0x1
+ adds r5, r1, 0
+ mov r1, r9
+ adds r2, r0, r1
+ movs r4, 0x3
+_0809381E:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809383E
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08093832
+ strb r3, [r7]
+_08093832:
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0809383E
+ strb r3, [r5]
+_0809383E:
+ adds r2, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0809381E
+ cmp r6, 0x3
+ ble _080937FE
+ movs r6, 0
+ mov r2, r8
+ lsls r2, 3
+ str r2, [sp, 0xC]
+_08093852:
+ movs r4, 0
+ lsls r0, r6, 5
+ mov r7, r9
+ adds r5, r0, r7
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x8]
+ adds r2, r0, r1
+ mov r7, r10
+ adds r7, r6
+ mov r12, r7
+_08093866:
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080938D6
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ cmp r4, 0
+ bne _08093884
+ ldrb r1, [r2]
+ movs r0, 0xFD
+ ands r0, r1
+ b _0809388A
+_08093884:
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+_0809388A:
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r3, 0xF7
+ ands r3, r0
+ movs r1, 0
+ movs r0, 0xFB
+ ands r3, r0
+ strb r3, [r2]
+ mov r7, sp
+ adds r0, r7, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080938B0
+ cmp r4, 0
+ bne _080938B0
+ movs r1, 0x8
+ adds r0, r3, 0
+ orrs r0, r1
+ strb r0, [r2]
+_080938B0:
+ mov r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080938C4
+ cmp r4, 0
+ bne _080938C4
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080938C4:
+ adds r2, 0x8
+ ldr r7, [sp, 0xC]
+ adds r7, 0x8
+ str r7, [sp, 0xC]
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x4
+ beq _080938E4
+_080938D6:
+ adds r5, 0x8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08093866
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08093852
+_080938E4:
+ 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_80937E0
+
+ thumb_func_start sub_80938F4
+sub_80938F4:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r4, 0
+ movs r6, 0x1
+ movs r5, 0x80
+_080938FE:
+ movs r3, 0
+ lsls r0, r4, 6
+ adds r2, r0, r7
+_08093904:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809391A
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809391A
+ adds r0, r4, 0
+ b _0809392C
+_0809391A:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08093904
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080938FE
+ movs r0, 0x1
+ negs r0, r0
+_0809392C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80938F4
+
+ thumb_func_start sub_8093934
+sub_8093934:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r4, 0
+ movs r6, 0x1
+ movs r5, 0x80
+_0809393E:
+ movs r3, 0
+ lsls r0, r4, 6
+ adds r2, r0, r7
+_08093944:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809395A
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809395A
+ adds r0, r4, 0
+ b _0809396C
+_0809395A:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08093944
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _0809393E
+ movs r0, 0x1
+ negs r0, r0
+_0809396C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093934
+
+ thumb_func_start sub_8093974
+sub_8093974:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r2, 0
+ movs r4, 0
+_0809397C:
+ lsls r0, r2, 6
+ adds r2, 0x1
+ movs r3, 0x7
+ adds r0, r1
+ adds r0, 0x38
+_08093986:
+ strb r4, [r0]
+ subs r0, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093986
+ cmp r2, 0x7
+ ble _0809397C
+ movs r3, 0
+ movs r5, 0
+ adds r4, r1, 0
+ subs r4, 0x40
+ movs r7, 0x2
+_0809399E:
+ cmp r5, 0
+ beq _080939AC
+ ldrb r1, [r6]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080939B0
+_080939AC:
+ adds r4, 0x40
+ movs r3, 0
+_080939B0:
+ lsls r2, r3, 3
+ adds r2, r4
+ ldm r6!, {r0,r1}
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r1, [r2]
+ movs r0, 0xFD
+ ands r0, r1
+ strb r0, [r2]
+ adds r3, 0x1
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0809399E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093974
+
+ thumb_func_start sub_80939D0
+sub_80939D0:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r2, 0
+ movs r4, 0
+_080939D8:
+ lsls r0, r2, 6
+ adds r2, 0x1
+ movs r3, 0x7
+ adds r0, r1
+ adds r0, 0x38
+_080939E2:
+ strb r4, [r0]
+ subs r0, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080939E2
+ cmp r2, 0x7
+ ble _080939D8
+ movs r3, 0
+ movs r5, 0
+ adds r4, r1, 0
+ subs r4, 0x40
+ movs r7, 0x2
+_080939FA:
+ cmp r5, 0
+ beq _08093A08
+ ldrb r1, [r6]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08093A0C
+_08093A08:
+ adds r4, 0x40
+ movs r3, 0
+_08093A0C:
+ lsls r2, r3, 3
+ adds r2, r4
+ ldm r6!, {r0,r1}
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r1, [r2]
+ movs r0, 0xFD
+ ands r0, r1
+ strb r0, [r2]
+ adds r3, 0x1
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _080939FA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80939D0
+
+ thumb_func_start sub_8093A2C
+sub_8093A2C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ str r0, [sp, 0x10]
+ mov r9, r1
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ add r1, sp, 0x8
+ mov r10, r1
+ mov r12, r6
+ movs r3, 0x1
+_08093A4A:
+ mov r2, sp
+ adds r0, r2, r6
+ mov r7, r12
+ strb r7, [r0]
+ mov r1, sp
+ adds r1, r6
+ adds r1, 0x8
+ mov r2, r12
+ strb r2, [r1]
+ adds r7, r0, 0
+ lsls r0, r6, 6
+ adds r6, 0x1
+ adds r5, r1, 0
+ mov r1, r9
+ adds r2, r0, r1
+ movs r4, 0x7
+_08093A6A:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093A8A
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08093A7E
+ strb r3, [r7]
+_08093A7E:
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08093A8A
+ strb r3, [r5]
+_08093A8A:
+ adds r2, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08093A6A
+ cmp r6, 0x7
+ ble _08093A4A
+ movs r6, 0
+ mov r2, r8
+ lsls r2, 3
+ str r2, [sp, 0x14]
+_08093A9E:
+ movs r4, 0
+ lsls r0, r6, 6
+ mov r7, r9
+ adds r5, r0, r7
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp, 0x10]
+ adds r2, r0, r1
+ mov r7, r10
+ adds r7, r6
+ mov r12, r7
+_08093AB2:
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093B22
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ cmp r4, 0
+ bne _08093AD0
+ ldrb r1, [r2]
+ movs r0, 0xFD
+ ands r0, r1
+ b _08093AD6
+_08093AD0:
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+_08093AD6:
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r3, 0xF7
+ ands r3, r0
+ movs r1, 0
+ movs r0, 0xFB
+ ands r3, r0
+ strb r3, [r2]
+ mov r7, sp
+ adds r0, r7, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08093AFC
+ cmp r4, 0
+ bne _08093AFC
+ movs r1, 0x8
+ adds r0, r3, 0
+ orrs r0, r1
+ strb r0, [r2]
+_08093AFC:
+ mov r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08093B10
+ cmp r4, 0
+ bne _08093B10
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08093B10:
+ adds r2, 0x8
+ ldr r7, [sp, 0x14]
+ adds r7, 0x8
+ str r7, [sp, 0x14]
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x8
+ beq _08093B30
+_08093B22:
+ adds r5, 0x8
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08093AB2
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08093A9E
+_08093B30:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093A2C
+
+ thumb_func_start sub_8093B40
+sub_8093B40:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ str r0, [sp, 0x10]
+ mov r9, r1
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ add r1, sp, 0x8
+ mov r10, r1
+ mov r12, r6
+ movs r3, 0x1
+_08093B5E:
+ mov r2, sp
+ adds r0, r2, r6
+ mov r7, r12
+ strb r7, [r0]
+ mov r1, sp
+ adds r1, r6
+ adds r1, 0x8
+ mov r2, r12
+ strb r2, [r1]
+ adds r7, r0, 0
+ lsls r0, r6, 6
+ adds r6, 0x1
+ adds r5, r1, 0
+ mov r1, r9
+ adds r2, r0, r1
+ movs r4, 0x7
+_08093B7E:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093B9E
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08093B92
+ strb r3, [r7]
+_08093B92:
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08093B9E
+ strb r3, [r5]
+_08093B9E:
+ adds r2, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08093B7E
+ cmp r6, 0x7
+ ble _08093B5E
+ movs r6, 0
+ mov r2, r8
+ lsls r2, 3
+ str r2, [sp, 0x14]
+_08093BB2:
+ movs r4, 0
+ lsls r0, r6, 6
+ mov r7, r9
+ adds r5, r0, r7
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp, 0x10]
+ adds r2, r0, r1
+ mov r7, r10
+ adds r7, r6
+ mov r12, r7
+_08093BC6:
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093C36
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ cmp r4, 0
+ bne _08093BE4
+ ldrb r1, [r2]
+ movs r0, 0xFD
+ ands r0, r1
+ b _08093BEA
+_08093BE4:
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+_08093BEA:
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r3, 0xF7
+ ands r3, r0
+ movs r1, 0
+ movs r0, 0xFB
+ ands r3, r0
+ strb r3, [r2]
+ mov r7, sp
+ adds r0, r7, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08093C10
+ cmp r4, 0
+ bne _08093C10
+ movs r1, 0x8
+ adds r0, r3, 0
+ orrs r0, r1
+ strb r0, [r2]
+_08093C10:
+ mov r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08093C24
+ cmp r4, 0
+ bne _08093C24
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08093C24:
+ adds r2, 0x8
+ ldr r7, [sp, 0x14]
+ adds r7, 0x8
+ str r7, [sp, 0x14]
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x8
+ beq _08093C44
+_08093C36:
+ adds r5, 0x8
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08093BC6
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08093BB2
+_08093C44:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093B40
+
+ thumb_func_start sub_8093C54
+sub_8093C54:
+ push {r4-r7,lr}
+ sub sp, 0x40
+ adds r6, r0, 0
+ lsls r0, r1, 3
+ adds r0, r6
+ movs r2, 0
+ strb r2, [r0]
+ adds r3, r1, 0x1
+ cmp r3, 0x7
+ bgt _08093CA6
+ lsls r0, r3, 3
+ adds r4, r6, r0
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093CA6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08093CA6
+ mov r12, r2
+ movs r7, 0x1
+ adds r2, r4, 0
+ movs r5, 0x2
+_08093C86:
+ mov r0, r12
+ strb r0, [r4]
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _08093CA6
+ adds r4, r2, 0
+ ldrb r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093CA6
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08093C86
+_08093CA6:
+ movs r4, 0
+ movs r7, 0x1
+ adds r2, r6, 0
+ mov r5, sp
+ movs r3, 0x7
+_08093CB0:
+ ldrb r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093CC2
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ stm r5!, {r0,r1}
+ adds r4, 0x1
+_08093CC2:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093CB0
+ cmp r4, 0x7
+ bgt _08093CDE
+ movs r1, 0
+ lsls r0, r4, 3
+ add r0, sp
+_08093CD4:
+ strb r1, [r0]
+ adds r0, 0x8
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08093CD4
+_08093CDE:
+ mov r4, sp
+ adds r2, r6, 0
+ movs r3, 0x7
+_08093CE4:
+ ldm r4!, {r0,r1}
+ stm r2!, {r0,r1}
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093CE4
+ add sp, 0x40
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093C54
+
+ thumb_func_start sub_8093CF8
+sub_8093CF8:
+ push {r4-r7,lr}
+ sub sp, 0x40
+ adds r6, r0, 0
+ lsls r0, r1, 3
+ adds r0, r6
+ movs r2, 0
+ strb r2, [r0]
+ adds r3, r1, 0x1
+ cmp r3, 0x7
+ bgt _08093D4A
+ lsls r0, r3, 3
+ adds r4, r6, r0
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093D4A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08093D4A
+ mov r12, r2
+ movs r7, 0x1
+ adds r2, r4, 0
+ movs r5, 0x2
+_08093D2A:
+ mov r0, r12
+ strb r0, [r4]
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _08093D4A
+ adds r4, r2, 0
+ ldrb r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093D4A
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08093D2A
+_08093D4A:
+ movs r4, 0
+ movs r7, 0x1
+ adds r2, r6, 0
+ mov r5, sp
+ movs r3, 0x7
+_08093D54:
+ ldrb r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08093D66
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ stm r5!, {r0,r1}
+ adds r4, 0x1
+_08093D66:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093D54
+ cmp r4, 0x7
+ bgt _08093D82
+ movs r1, 0
+ lsls r0, r4, 3
+ add r0, sp
+_08093D78:
+ strb r1, [r0]
+ adds r0, 0x8
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08093D78
+_08093D82:
+ mov r4, sp
+ adds r2, r6, 0
+ movs r3, 0x7
+_08093D88:
+ ldm r4!, {r0,r1}
+ stm r2!, {r0,r1}
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093D88
+ add sp, 0x40
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093CF8
+
+ thumb_func_start sub_8093D9C
+sub_8093D9C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ bl sub_8092A88
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8093DE8
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093D9C
+
+ thumb_func_start sub_8093DC4
+sub_8093DC4:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ mov r0, sp
+ bl sub_8093F10
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8093DE8
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8093DC4
+
+ thumb_func_start sub_8093DE8
+sub_8093DE8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08093E80
+ add sp, r4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ adds r0, r5, 0
+ bl sub_80073B8
+ ldr r0, _08093E84
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_80928C0
+ lsls r4, 3
+ adds r4, 0x10
+ ldr r2, _08093E88
+ movs r7, 0
+ str r7, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ adds r3, r5, 0
+ bl sub_8014FF0
+ movs r3, 0x13
+ ldrh r1, [r6, 0x2]
+ ldr r4, _08093E8C
+ ldr r2, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r2, [r0, 0x1C]
+ ldrb r0, [r2]
+ cmp r0, 0x2A
+ bne _08093E3A
+ movs r3, 0x10
+ adds r2, 0x1
+_08093E3A:
+ str r7, [sp]
+ movs r0, 0x4
+ adds r1, r3, 0
+ adds r3, r5, 0
+ bl sub_8014FF0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8093E90
+ adds r0, r5, 0
+ bl sub_80073E0
+ ldrh r1, [r6, 0x2]
+ ldr r2, [r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r0, 0x1C]
+ add r0, sp, 0x4
+ bl strcpy
+ add r0, sp, 0x4
+ mov r1, r8
+ bl sub_8097DF0
+ movs r3, 0xC9
+ lsls r3, 2
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08093E80: .4byte 0xfffffcdc
+_08093E84: .4byte gUnknown_202DF98
+_08093E88: .4byte gUnknown_8109930
+_08093E8C: .4byte gUnknown_2038C68
+ thumb_func_end sub_8093DE8
+
+ thumb_func_start sub_8093E90
+sub_8093E90:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r0, 0x7
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x4
+ movs r2, 0x48
+ movs r3, 0xC8
+ bl sub_80078A4
+ ldr r0, _08093F00
+ adds r1, r6, 0
+ bl sub_8092D54
+ ldr r0, _08093F04
+ ldr r2, [r0]
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x4
+ movs r1, 0x4A
+ adds r3, r5, 0
+ bl sub_8014FF0
+ ldr r0, _08093F08
+ ldr r2, [r0]
+ str r4, [sp]
+ movs r0, 0x4
+ movs r1, 0x56
+ adds r3, r5, 0
+ bl sub_8014FF0
+ adds r0, r6, 0
+ bl sub_8092B00
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092334
+ adds r2, r0, 0
+ str r4, [sp]
+ movs r0, 0x40
+ movs r1, 0x56
+ adds r3, r5, 0
+ bl sub_8014FF0
+ adds r0, r6, 0
+ bl sub_8092BC0
+ ldr r1, _08093F0C
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08093F00: .4byte gUnknown_202DF98
+_08093F04: .4byte gUnknown_810CF00
+_08093F08: .4byte gUnknown_810CF0C
+_08093F0C: .4byte gUnknown_202DE30
+ thumb_func_end sub_8093E90
+
+ thumb_func_start sub_8093F10
+sub_8093F10:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093F48
+ movs r0, 0
+ strb r1, [r3]
+ strb r0, [r3, 0x1]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r3, 0x2]
+ ldrh r1, [r4, 0x2]
+ ldr r0, _08093F44
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0xC]
+ strb r0, [r3, 0x4]
+ ldrb r0, [r4, 0x4]
+ strb r0, [r3, 0x5]
+ b _08093F4A
+ .align 2, 0
+_08093F44: .4byte gUnknown_2038C68
+_08093F48:
+ strb r0, [r3]
+_08093F4A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093F10
+
+ thumb_func_start sub_8093F50
+sub_8093F50:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ adds r3, r6, 0
+ adds r4, r1, 0
+ movs r5, 0x3
+_08093F5C:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08093F8C
+ strb r1, [r3]
+ strb r7, [r3, 0x1]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r3, 0x2]
+ ldrh r1, [r4, 0x2]
+ ldr r0, _08093F88
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0xC]
+ strb r0, [r3, 0x4]
+ ldrb r0, [r4, 0x4]
+ strb r0, [r3, 0x5]
+ b _08093F8E
+ .align 2, 0
+_08093F88: .4byte gUnknown_2038C68
+_08093F8C:
+ strb r0, [r3]
+_08093F8E:
+ adds r3, 0x8
+ adds r4, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08093F5C
+ adds r1, r6, 0
+ adds r1, 0x20
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093F50
+
+ thumb_func_start sub_8093FA8
+sub_8093FA8:
+ push {lr}
+ adds r2, r0, 0
+ movs r3, 0x3
+_08093FAE:
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2, 0x2]
+ ldrb r0, [r1, 0x5]
+ strb r0, [r2, 0x4]
+ adds r2, 0x8
+ adds r1, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08093FAE
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093FA8
+
+ thumb_func_start sub_8093FC8
+sub_8093FC8:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r2, r1, 0
+ movs r3, 0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08094002
+ movs r7, 0xFB
+ movs r6, 0x1
+ adds r4, r2, 0
+ adds r2, r5, 0
+_08093FE2:
+ ldm r4!, {r0,r1}
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r1, [r2, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08094002
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08093FE2
+_08094002:
+ cmp r3, 0x7
+ bgt _08094016
+ movs r1, 0
+ lsls r0, r3, 3
+ adds r0, r5
+_0809400C:
+ strb r1, [r0]
+ adds r0, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0809400C
+_08094016:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8093FC8
+
+ thumb_func_start sub_809401C
+sub_809401C:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r3, r1, 0
+ movs r2, 0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08094046
+ movs r6, 0x1
+ adds r4, r5, 0
+_08094032:
+ ldm r3!, {r0,r1}
+ stm r4!, {r0,r1}
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08094046
+ ldrb r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08094032
+_08094046:
+ cmp r2, 0x7
+ bgt _0809405A
+ movs r1, 0
+ lsls r0, r2, 3
+ adds r0, r5
+_08094050:
+ strb r1, [r0]
+ adds r0, 0x8
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08094050
+_0809405A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809401C
+
+ thumb_func_start sub_8094060
+sub_8094060:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ movs r4, 0
+ movs r5, 0
+ adds r3, r6, 0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08094084
+_08094076:
+ lsls r2, r4, 3
+ adds r2, r7, r2
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ adds r4, 0x1
+_08094084:
+ adds r5, 0x1
+ cmp r5, 0x7
+ bgt _0809409C
+ lsls r0, r5, 3
+ adds r3, r6, r0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08094084
+ cmp r4, 0x3
+ ble _08094076
+_0809409C:
+ cmp r4, 0x3
+ bgt _080940B0
+ movs r1, 0
+ lsls r0, r4, 3
+ adds r0, r7
+_080940A6:
+ strb r1, [r0]
+ adds r0, 0x8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080940A6
+_080940B0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094060
+
+ thumb_func_start sub_80940B8
+sub_80940B8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0x2
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_809488C
+ adds r5, 0x4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80940B8
+
+ thumb_func_start sub_80940E0
+sub_80940E0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0x2
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_8094924
+ adds r5, 0x4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80940E0
+
+ thumb_func_start sub_8094108
+sub_8094108:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r5, 0x3
+_08094110:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80940B8
+ adds r4, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08094110
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094108
+
+ thumb_func_start sub_8094128
+sub_8094128:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r5, 0x3
+_08094130:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80940E0
+ adds r4, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08094130
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094128
+
+ thumb_func_start sub_8094148
+sub_8094148:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r4, 0x1
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r1, r4, 0x2
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl sub_809488C
+ adds r1, r4, 0x4
+ adds r0, r5, 0
+ movs r2, 0x7
+ bl sub_809488C
+ adds r4, 0x5
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094148
+
+ thumb_func_start sub_8094184
+sub_8094184:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ adds r4, r7, 0
+ movs r5, 0x3
+_0809418E:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8094148
+ adds r4, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0809418E
+ adds r1, r7, 0
+ adds r1, 0x20
+ adds r0, r6, 0
+ movs r2, 0x8
+ bl sub_809488C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094184
+
+ thumb_func_start sub_80941B0
+sub_80941B0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r4, 0x1
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_8094924
+ adds r1, r4, 0x2
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl sub_8094924
+ adds r1, r4, 0x4
+ adds r0, r5, 0
+ movs r2, 0x7
+ bl sub_8094924
+ adds r4, 0x5
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80941B0
+
+ thumb_func_start sub_80941FC
+sub_80941FC:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ adds r4, r7, 0
+ movs r5, 0x3
+_08094206:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80941B0
+ adds r4, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08094206
+ adds r1, r7, 0
+ adds r1, 0x20
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r2, 0x8
+ bl sub_8094924
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80941FC
+
+ thumb_func_start sub_809422C
+sub_809422C:
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ cmp r1, 0x97
+ beq _08094260
+ cmp r1, 0x64
+ beq _08094260
+ cmp r1, 0x3C
+ beq _08094260
+ cmp r1, 0x4B
+ beq _08094260
+ movs r0, 0xAE
+ lsls r0, 1
+ cmp r1, r0
+ beq _08094260
+ cmp r1, 0x99
+ beq _08094260
+ cmp r1, 0xCD
+ beq _08094260
+ cmp r1, 0x9C
+ beq _08094260
+ cmp r2, 0x8
+ beq _08094260
+ movs r0, 0
+ b _08094262
+_08094260:
+ movs r0, 0x1
+_08094262:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809422C
+
+ thumb_func_start sub_8094268
+sub_8094268:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r3, r1, 0
+ asrs r0, r3, 16
+ asrs r1, r2, 16
+ adds r0, r1
+ lsls r0, 16
+ ldr r6, _080942B0
+ ands r3, r6
+ orrs r3, r0
+ adds r2, r3, r2
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080942B4
+ ands r3, r4
+ orrs r3, r2
+ asrs r1, r3, 16
+ ldr r0, _080942B8
+ cmp r1, r0
+ ble _080942A6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ ands r3, r4
+ orrs r3, r0
+ asrs r0, r3, 16
+ ldr r1, _080942BC
+ adds r0, r1
+ lsls r0, 16
+ ands r3, r6
+ orrs r3, r0
+_080942A6:
+ str r3, [r5]
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080942B0: .4byte 0x0000ffff
+_080942B4: .4byte 0xffff0000
+_080942B8: .4byte 0x000003e7
+_080942BC: .4byte 0xfffffc18
+ thumb_func_end sub_8094268
+
+ thumb_func_start sub_80942C0
+sub_80942C0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r3, r1, 0
+ asrs r0, r3, 16
+ asrs r1, r2, 16
+ subs r0, r1
+ lsls r0, 16
+ ldr r4, _08094310
+ ands r3, r4
+ orrs r3, r0
+ subs r2, r3, r2
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _08094314
+ ands r3, r1
+ orrs r3, r2
+ cmp r3, 0
+ bge _080942FC
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ ands r3, r1
+ orrs r3, r0
+ asrs r0, r3, 16
+ movs r2, 0xFA
+ lsls r2, 2
+ adds r0, r2
+ lsls r0, 16
+ ands r3, r4
+ orrs r3, r0
+_080942FC:
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _08094304
+ movs r3, 0
+_08094304:
+ str r3, [r5]
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08094310: .4byte 0x0000ffff
+_08094314: .4byte 0xffff0000
+ thumb_func_end sub_80942C0
+
+ thumb_func_start sub_8094318
+sub_8094318:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r3, r1, 0
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ bgt _08094336
+ cmp r1, r0
+ blt _0809433A
+ asrs r1, r3, 16
+ asrs r0, r2, 16
+ cmp r1, r0
+ ble _0809433A
+_08094336:
+ str r2, [r4]
+ b _0809433C
+_0809433A:
+ str r3, [r4]
+_0809433C:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094318
+
+ thumb_func_start sub_8094344
+sub_8094344:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r3, r1, 0
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ bgt _08094362
+ cmp r1, r0
+ blt _08094366
+ asrs r1, r3, 16
+ asrs r0, r2, 16
+ cmp r1, r0
+ ble _08094366
+_08094362:
+ str r3, [r4]
+ b _08094368
+_08094366:
+ str r2, [r4]
+_08094368:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094344
+
+ thumb_func_start sub_8094370
+sub_8094370:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsls r2, 16
+ ldr r4, _08094398
+ lsrs r3, r1, 16
+ orrs r3, r2
+ asrs r2, 16
+ ldr r1, _0809439C
+ asrs r0, r1, 16
+ cmp r2, r0
+ ble _0809438C
+ ands r3, r4
+ orrs r3, r1
+_0809438C:
+ str r3, [r5]
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08094398: .4byte 0x0000ffff
+_0809439C: .4byte 0x03e70000
+ thumb_func_end sub_8094370
+
+ thumb_func_start sub_80943A0
+sub_80943A0:
+ lsls r1, 16
+ lsrs r2, r1, 16
+ str r2, [r0]
+ bx lr
+ thumb_func_end sub_80943A0
+
+ thumb_func_start sub_80943A8
+sub_80943A8:
+ push {r4,r5,lr}
+ ldr r3, [r1, 0x4]
+ lsrs r2, r3, 16
+ ldr r1, _080943D4
+ ands r5, r1
+ orrs r5, r2
+ ldr r4, _080943D8
+ adds r2, r4, 0
+ ands r2, r3
+ lsls r1, r2, 5
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r2
+ lsls r1, 3
+ lsrs r1, 16
+ lsls r1, 16
+ ands r5, r4
+ orrs r5, r1
+ str r5, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080943D4: .4byte 0xffff0000
+_080943D8: .4byte 0x0000ffff
+ thumb_func_end sub_80943A8
+
+ thumb_func_start sub_80943DC
+sub_80943DC:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ asrs r1, r4, 16
+ adds r0, r1
+ lsls r3, r2, 16
+ asrs r3, 16
+ lsls r1, r3, 5
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r3
+ lsls r1, 3
+ asrs r2, 16
+ adds r1, r2
+ muls r0, r1
+ movs r5, 0xFA
+ lsls r5, 2
+ adds r1, r5, 0
+ bl __divsi3
+ adds r6, r0, 0
+ adds r1, r5, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08094448
+ ands r4, r1
+ orrs r4, r0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl __modsi3
+ lsls r0, 16
+ ldr r1, _0809444C
+ ands r1, r4
+ orrs r0, r1
+ mov r1, r8
+ str r0, [r1]
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08094448: .4byte 0xffff0000
+_0809444C: .4byte 0x0000ffff
+ thumb_func_end sub_80943DC
+
+ thumb_func_start sub_8094450
+sub_8094450:
+ push {lr}
+ adds r1, r0, 0
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bne _0809446A
+ asrs r0, r1, 16
+ cmp r0, 0
+ bne _08094466
+ movs r0, 0
+ b _08094476
+_08094466:
+ movs r0, 0x1
+ b _08094476
+_0809446A:
+ asrs r0, r1, 16
+ cmp r0, 0
+ bne _08094474
+ adds r0, r2, 0
+ b _08094476
+_08094474:
+ adds r0, r2, 0x1
+_08094476:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094450
+
+ thumb_func_start sub_809447C
+sub_809447C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x10
+ bl sub_8094924
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809447C
+
+ thumb_func_start sub_809449C
+sub_809449C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x10
+ bl sub_809488C
+ adds r4, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809449C
+
+ thumb_func_start sub_80944BC
+sub_80944BC:
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r1, 0
+ lsls r0, 16
+ asrs r1, r0, 16
+ ldr r0, _080944F4
+ cmp r1, r0
+ bgt _08094500
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ bl sub_8092AA8
+ ldr r0, _080944F8
+ mov r1, sp
+ movs r2, 0
+ bl sub_80928C0
+ ldr r0, _080944FC
+ ldr r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0xC8
+ adds r1, r4, 0
+ movs r3, 0
+ bl xxx_format_string
+ b _08094516
+ .align 2, 0
+_080944F4: .4byte 0x000001f3
+_080944F8: .4byte gUnknown_202DE58
+_080944FC: .4byte gUnknown_811383C
+_08094500:
+ ldr r0, _08094520
+ ldr r2, _08094524
+ adds r1, r2
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r4, 0
+ movs r2, 0xC8
+ bl strncpy
+_08094516:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094520: .4byte gUnknown_8113080
+_08094524: .4byte 0xfffffe0c
+ thumb_func_end sub_80944BC
+
+ thumb_func_start sub_8094528
+sub_8094528:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ ldr r0, _08094544
+ cmp r1, r0
+ ble _08094550
+ ldr r0, _08094548
+ ldr r2, _0809454C
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ b _08094552
+ .align 2, 0
+_08094544: .4byte 0x000001f3
+_08094548: .4byte gUnknown_8113080
+_0809454C: .4byte 0xfffffe0c
+_08094550:
+ movs r0, 0x1
+_08094552:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094528
+
+ thumb_func_start sub_8094558
+sub_8094558:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xCC
+ adds r7, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ bl sub_80073B8
+ movs r5, 0
+ str r5, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ adds r2, r4, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ ldr r4, _080945D0
+ adds r1, r6, 0
+ adds r1, 0x18
+ adds r0, r4, 0
+ bl sub_8090208
+ ldr r0, _080945D4
+ ldr r2, [r0]
+ str r5, [sp]
+ movs r0, 0x4
+ movs r1, 0x10
+ adds r3, r7, 0
+ bl sub_8014FF0
+ movs r5, 0x1A
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0xA
+ bl sub_80922B4
+ adds r4, 0x50
+ adds r1, r6, 0
+ adds r1, 0xA
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl sub_80922B4
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ bl sub_8094528
+ lsls r0, 24
+ cmp r0, 0
+ beq _080945DC
+ ldr r0, _080945D8
+ ldr r0, [r0]
+ add r2, sp, 0xCC
+ add r1, sp, 0x4
+ movs r3, 0
+ bl xxx_format_string
+ b _080945EA
+ .align 2, 0
+_080945D0: .4byte gUnknown_202DF98
+_080945D4: .4byte gUnknown_8113850
+_080945D8: .4byte gUnknown_8113868
+_080945DC:
+ ldr r0, _0809465C
+ ldr r0, [r0]
+ add r2, sp, 0xCC
+ add r1, sp, 0x4
+ movs r3, 0
+ bl xxx_format_string
+_080945EA:
+ add r0, sp, 0x4
+ bl sub_8008ED0
+ movs r4, 0xB0
+ subs r0, r4, r0
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp]
+ adds r1, r5, 0
+ add r2, sp, 0x4
+ adds r3, r7, 0
+ bl sub_8014FF0
+ adds r5, 0xA
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ add r1, sp, 0x4
+ bl sub_80944BC
+ add r0, sp, 0x4
+ bl sub_8008ED0
+ subs r4, r0
+ lsrs r0, r4, 31
+ adds r4, r0
+ asrs r0, r4, 1
+ mov r1, r8
+ str r1, [sp]
+ adds r1, r5, 0
+ add r2, sp, 0x4
+ adds r3, r7, 0
+ bl sub_8014FF0
+ adds r5, 0x10
+ ldr r1, _08094660
+ ldr r0, [r6, 0x20]
+ str r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ str r0, [r1, 0x4]
+ cmp r0, 0x63
+ ble _08094668
+ ldr r0, _08094664
+ ldr r2, [r0]
+ mov r0, r8
+ str r0, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ b _0809467A
+ .align 2, 0
+_0809465C: .4byte gUnknown_8113870
+_08094660: .4byte gUnknown_202DE30
+_08094664: .4byte gUnknown_81138C0
+_08094668:
+ ldr r0, _080946CC
+ ldr r2, [r0]
+ mov r1, r8
+ str r1, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+_0809467A:
+ adds r5, 0xA
+ ldr r4, _080946D0
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ str r0, [r4]
+ ldr r0, _080946D4
+ ldr r2, [r0]
+ movs r0, 0
+ mov r8, r0
+ str r0, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ adds r5, 0xA
+ adds r0, r6, 0
+ adds r0, 0x26
+ ldrb r2, [r0]
+ str r2, [r4]
+ adds r0, 0x2
+ ldrb r0, [r0]
+ str r0, [r4, 0x4]
+ adds r0, r6, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080946DC
+ adds r0, r1, 0
+ adds r0, r2, r0
+ str r0, [r4]
+ ldr r0, _080946D8
+ ldr r2, [r0]
+ mov r1, r8
+ str r1, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ b _080946EC
+ .align 2, 0
+_080946CC: .4byte gUnknown_8113898
+_080946D0: .4byte gUnknown_202DE30
+_080946D4: .4byte gUnknown_81138D0
+_080946D8: .4byte gUnknown_8113950
+_080946DC:
+ ldr r0, _08094714
+ ldr r2, [r0]
+ str r1, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+_080946EC:
+ adds r0, r6, 0
+ adds r0, 0x2D
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08094720
+ ldr r2, _08094718
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _0809471C
+ ldr r2, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ b _08094730
+ .align 2, 0
+_08094714: .4byte gUnknown_81138E4
+_08094718: .4byte gUnknown_202DE30
+_0809471C: .4byte gUnknown_8113974
+_08094720:
+ ldr r0, _08094768
+ ldr r2, [r0]
+ str r1, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+_08094730:
+ adds r5, 0xA
+ ldr r2, _0809476C
+ adds r0, r6, 0
+ adds r0, 0x27
+ ldrb r3, [r0]
+ str r3, [r2]
+ adds r0, 0x2
+ ldrb r0, [r0]
+ str r0, [r2, 0x4]
+ adds r0, r6, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08094774
+ adds r0, r1, 0
+ adds r0, r3, r0
+ str r0, [r2]
+ ldr r0, _08094770
+ ldr r2, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ b _08094784
+ .align 2, 0
+_08094768: .4byte gUnknown_8113900
+_0809476C: .4byte gUnknown_202DE30
+_08094770: .4byte gUnknown_8113990
+_08094774:
+ ldr r0, _080947AC
+ ldr r2, [r0]
+ str r1, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+_08094784:
+ adds r0, r6, 0
+ adds r0, 0x2E
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080947B8
+ ldr r2, _080947B0
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080947B4
+ ldr r2, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ b _080947C8
+ .align 2, 0
+_080947AC: .4byte gUnknown_8113918
+_080947B0: .4byte gUnknown_202DE30
+_080947B4: .4byte gUnknown_81139B4
+_080947B8:
+ ldr r0, _080947E4
+ ldr r2, [r0]
+ str r1, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+_080947C8:
+ adds r5, 0x10
+ adds r2, r6, 0
+ adds r2, 0x1C
+ ldrb r1, [r6, 0x1C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080947EC
+ ldr r0, _080947E8
+ adds r1, r2, 0
+ movs r2, 0
+ bl sub_8090E14
+ b _080947F6
+ .align 2, 0
+_080947E4: .4byte gUnknown_8113934
+_080947E8: .4byte gUnknown_202DE58
+_080947EC:
+ ldr r0, _0809481C
+ ldr r1, _08094820
+ ldr r1, [r1]
+ bl strcpy
+_080947F6:
+ ldr r0, _08094824
+ ldr r2, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8014FF0
+ adds r0, r7, 0
+ bl sub_80073E0
+ add sp, 0xCC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809481C: .4byte gUnknown_202DE58
+_08094820: .4byte gUnknown_81139B8
+_08094824: .4byte gUnknown_81139CC
+ thumb_func_end sub_8094558
+
+ thumb_func_start sub_8094828
+sub_8094828:
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0
+ beq _08094852
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bne _0809484C
+ ldr r0, _08094848
+ b _08094856
+ .align 2, 0
+_08094848: .4byte 0x00000223
+_0809484C:
+ movs r0, 0x89
+ lsls r0, 2
+ b _08094856
+_08094852:
+ lsls r0, r2, 16
+ asrs r0, 16
+_08094856:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094828
+
+ thumb_func_start sub_809485C
+sub_809485C:
+ str r1, [r0]
+ movs r3, 0
+ str r3, [r0, 0x8]
+ str r3, [r0, 0xC]
+ adds r1, r2
+ str r1, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_809485C
+
+ thumb_func_start sub_809486C
+sub_809486C:
+ push {lr}
+ str r1, [r0]
+ movs r3, 0
+ str r3, [r0, 0x8]
+ str r3, [r0, 0xC]
+ adds r3, r1, r2
+ str r3, [r0, 0x4]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl MemoryClear8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809486C
+
+ thumb_func_start nullsub_102
+nullsub_102:
+ bx lr
+ thumb_func_end nullsub_102
+
+ thumb_func_start sub_809488C
+sub_809488C:
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r4, r2, 0
+ movs r5, 0
+ adds r6, r1, 0
+ cmp r4, 0
+ beq _080948DE
+ movs r7, 0x1
+_0809489C:
+ ldrb r0, [r6]
+ asrs r0, r5
+ ands r0, r7
+ cmp r0, 0
+ beq _080948B4
+ ldr r2, [r3]
+ ldr r1, [r3, 0x8]
+ adds r0, r7, 0
+ lsls r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+_080948B4:
+ adds r5, 0x1
+ cmp r5, 0x8
+ bne _080948BE
+ adds r6, 0x1
+ movs r5, 0
+_080948BE:
+ ldr r0, [r3, 0x8]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ cmp r0, 0x8
+ bne _080948D2
+ ldr r0, [r3]
+ adds r0, 0x1
+ str r0, [r3]
+ movs r0, 0
+ str r0, [r3, 0x8]
+_080948D2:
+ ldr r0, [r3, 0xC]
+ adds r0, 0x1
+ str r0, [r3, 0xC]
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0809489C
+_080948DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809488C
+
+ thumb_func_start sub_80948E4
+sub_80948E4:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ adds r6, r1, 0
+ cmp r5, 0
+ beq _0809491C
+_080948F0:
+ ldrb r1, [r6]
+ ldr r0, [r4, 0x8]
+ lsls r1, r0
+ ldr r3, [r4]
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r2, [r4]
+ adds r0, r2, 0x1
+ str r0, [r4]
+ asrs r1, 8
+ ldrb r0, [r2, 0x1]
+ orrs r1, r0
+ strb r1, [r2, 0x1]
+ adds r6, 0x1
+ ldr r0, [r4, 0xC]
+ adds r0, 0x8
+ str r0, [r4, 0xC]
+ subs r5, 0x1
+ cmp r5, 0
+ bne _080948F0
+_0809491C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80948E4
+
+ thumb_func_start sub_8094924
+sub_8094924:
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r5, r2, 0
+ movs r6, 0
+ adds r2, r1, 0
+ cmp r5, 0
+ beq _08094978
+_08094932:
+ cmp r6, 0
+ bne _08094938
+ strb r6, [r2]
+_08094938:
+ ldr r7, [r3]
+ ldrb r0, [r7]
+ ldr r4, [r3, 0x8]
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08094952
+ adds r0, r1, 0
+ lsls r0, r6
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+_08094952:
+ adds r6, 0x1
+ cmp r6, 0x8
+ bne _0809495C
+ adds r2, 0x1
+ movs r6, 0
+_0809495C:
+ adds r0, r4, 0x1
+ str r0, [r3, 0x8]
+ cmp r0, 0x8
+ bne _0809496C
+ adds r0, r7, 0x1
+ str r0, [r3]
+ movs r0, 0
+ str r0, [r3, 0x8]
+_0809496C:
+ ldr r0, [r3, 0xC]
+ adds r0, 0x1
+ str r0, [r3, 0xC]
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08094932
+_08094978:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094924
+
+ thumb_func_start sub_8094980
+sub_8094980:
+ ldr r1, _08094988
+ ldr r0, _0809498C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08094988: .4byte gUnknown_203B46C
+_0809498C: .4byte gUnknown_2038C70
+ thumb_func_end sub_8094980
+
+ thumb_func_start sub_8094990
+sub_8094990:
+ ldr r0, _08094994
+ bx lr
+ .align 2, 0
+_08094994: .4byte gUnknown_2038C70
+ thumb_func_end sub_8094990
+
+ thumb_func_start sub_8094998
+sub_8094998:
+ push {lr}
+ lsls r0, 24
+ ldr r2, _080949D8
+ ldr r1, [r2]
+ movs r3, 0
+ strb r3, [r1, 0x8]
+ cmp r0, 0
+ beq _080949AC
+ ldr r0, [r2]
+ strb r3, [r0, 0xB]
+_080949AC:
+ ldr r0, [r2]
+ strb r3, [r0, 0x9]
+ ldr r0, [r2]
+ strb r3, [r0, 0xA]
+ ldr r0, [r2]
+ strb r3, [r0]
+ ldr r0, [r2]
+ movs r1, 0x1
+ strb r1, [r0, 0x1]
+ ldr r0, [r2]
+ strb r1, [r0, 0x2]
+ ldr r0, [r2]
+ strb r1, [r0, 0x3]
+ ldr r0, [r2]
+ strb r1, [r0, 0x4]
+ ldr r0, [r2]
+ strb r3, [r0, 0xC]
+ bl sub_8094C14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080949D8: .4byte gUnknown_203B46C
+ thumb_func_end sub_8094998
+
+ thumb_func_start sub_80949DC
+sub_80949DC:
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08094A38
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x8]
+ ldrb r3, [r2, 0x8]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0x9]
+ ldrb r3, [r2, 0x9]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0xA]
+ ldrb r3, [r2, 0xA]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0xB]
+ ldrb r3, [r2, 0xB]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1]
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0x1]
+ ldrb r3, [r2, 0x1]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0x2]
+ ldrb r3, [r2, 0x2]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0x3]
+ ldrb r3, [r2, 0x3]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0x4]
+ ldrb r3, [r2, 0x4]
+ cmp r0, r3
+ bne _08094A3C
+ ldrb r0, [r1, 0xC]
+ ldrb r2, [r2, 0xC]
+ cmp r0, r2
+ bne _08094A3C
+ movs r0, 0x1
+ b _08094A3E
+ .align 2, 0
+_08094A38: .4byte gUnknown_203B46C
+_08094A3C:
+ movs r0, 0
+_08094A3E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80949DC
+
+ thumb_func_start sub_8094A44
+sub_8094A44:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0xFF
+ mov r0, sp
+ strb r1, [r0]
+ mov r7, sp
+ adds r7, 0x1
+ movs r0, 0
+ strb r0, [r7]
+ ldr r5, _08094B14
+ ldr r1, [r5]
+ adds r1, 0x8
+ adds r0, r4, 0
+ movs r2, 0x2
+ bl sub_809488C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x9]
+ mov r1, sp
+ adds r6, r7, 0
+ cmp r0, 0
+ bne _08094A74
+ adds r1, r6, 0
+_08094A74:
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0xA]
+ adds r1, r6, 0
+ cmp r0, 0
+ beq _08094A88
+ mov r1, sp
+_08094A88:
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0xB]
+ adds r1, r6, 0
+ cmp r0, 0
+ beq _08094A9C
+ mov r1, sp
+_08094A9C:
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ adds r1, r6, 0
+ cmp r0, 0
+ beq _08094AB0
+ mov r1, sp
+_08094AB0:
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ adds r1, r6, 0
+ cmp r0, 0
+ beq _08094AC4
+ mov r1, sp
+_08094AC4:
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x2]
+ adds r1, r6, 0
+ cmp r0, 0
+ beq _08094AD8
+ mov r1, sp
+_08094AD8:
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x3]
+ adds r1, r7, 0
+ cmp r0, 0
+ beq _08094AEC
+ mov r1, sp
+_08094AEC:
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r1, [r5]
+ adds r1, 0x4
+ adds r0, r4, 0
+ movs r2, 0x3
+ bl sub_809488C
+ ldr r1, [r5]
+ adds r1, 0xC
+ adds r0, r4, 0
+ movs r2, 0x2
+ bl sub_809488C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094B14: .4byte gUnknown_203B46C
+ thumb_func_end sub_8094A44
+
+ thumb_func_start sub_8094B18
+sub_8094B18:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r6, r0, 0
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8094924
+ ldr r5, _08094C10
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x3
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r2, 0xA]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r2, 0xB]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r2, 0x2]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r1, [r5]
+ mov r0, sp
+ ldrb r0, [r0]
+ ands r4, r0
+ strb r4, [r1, 0x3]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x3
+ bl sub_8094924
+ ldr r2, [r5]
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ strb r0, [r2, 0x4]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x2
+ bl sub_8094924
+ ldr r1, [r5]
+ mov r0, sp
+ ldrb r0, [r0]
+ mov r2, r8
+ ands r2, r0
+ strb r2, [r1, 0xC]
+ bl sub_8094C14
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094C10: .4byte gUnknown_203B46C
+ thumb_func_end sub_8094B18
+
+ thumb_func_start sub_8094C14
+sub_8094C14:
+ push {r4,lr}
+ sub sp, 0x10
+ mov r1, sp
+ ldr r0, _08094C40
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, _08094C44
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ bl sub_80099F0
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094C40: .4byte gUnknown_8109954
+_08094C44: .4byte gUnknown_203B46C
+ thumb_func_end sub_8094C14
+
+ thumb_func_start sub_8094C48
+sub_8094C48:
+ push {lr}
+ ldr r0, _08094C5C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08094C60
+ cmp r0, 0x3
+ beq _08094C60
+ movs r0, 0x1
+ b _08094C62
+ .align 2, 0
+_08094C5C: .4byte gUnknown_203B46C
+_08094C60:
+ movs r0, 0
+_08094C62:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094C48
+
+ thumb_func_start sub_8094C68
+sub_8094C68:
+ push {lr}
+ ldr r0, _08094C7C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x2
+ beq _08094C80
+ cmp r0, 0x5
+ beq _08094C80
+ movs r0, 0x1
+ b _08094C82
+ .align 2, 0
+_08094C7C: .4byte gUnknown_203B46C
+_08094C80:
+ movs r0, 0
+_08094C82:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8094C68
+
+ thumb_func_start sub_8094C88
+sub_8094C88:
+ push {lr}
+ ldr r0, _08094C98
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x2
+ bhi _08094C9C
+ movs r0, 0x1
+ b _08094CA8
+ .align 2, 0
+_08094C98: .4byte gUnknown_203B46C
+_08094C9C:
+ subs r0, 0x3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _08094CAA
+ movs r0, 0x4
+_08094CA8:
+ strb r0, [r1, 0x4]
+_08094CAA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8094C88
+
+ thumb_func_start sub_8094CB0
+sub_8094CB0:
+ ldr r1, _08094CBC
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08094CBC: .4byte 0x0000ffff
+ thumb_func_end sub_8094CB0
+
+ thumb_func_start sub_8094CC0
+sub_8094CC0:
+ ldr r1, _08094CCC
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08094CCC: .4byte 0x0000ffff
+ thumb_func_end sub_8094CC0
+
+ thumb_func_start sub_8094CD0
+sub_8094CD0:
+ ldr r1, _08094CDC
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08094CDC: .4byte 0x0000ffff
+ thumb_func_end sub_8094CD0
+
+ thumb_func_start sub_8094CE0
+sub_8094CE0:
+ ldr r1, _08094CEC
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08094CEC: .4byte 0x0000ffff
+ thumb_func_end sub_8094CE0
+
+ thumb_func_start sub_8094CF0
+sub_8094CF0:
+ ldr r1, _08094CFC
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08094CFC: .4byte 0x0000ffff
+ thumb_func_end sub_8094CF0
+
+ thumb_func_start sub_8094D00
+sub_8094D00:
+ ldr r1, _08094D0C
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08094D0C: .4byte 0x0000ffff
+ thumb_func_end sub_8094D00
+
+ thumb_func_start sub_8094D10
+sub_8094D10:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8094D10
+
+ thumb_func_start sub_8094D14
+sub_8094D14:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8094D14
+
+ thumb_func_start sub_8094D18
+sub_8094D18:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8094D18
+
+ thumb_func_start sub_8094D1C
+sub_8094D1C:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8094D1C
+
+ thumb_func_start sub_8094D20
+sub_8094D20:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8094D20
+
+ thumb_func_start sub_8094D24
+sub_8094D24:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8094D24
+
+ thumb_func_start sub_8094D28
+sub_8094D28:
+ push {r4-r7,lr}
+ ldr r2, _08094D64
+ str r0, [r2]
+ ldr r1, _08094D68
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r7, _08094D6C
+ adds r5, r2, 0
+ adds r4, r1, 0
+ ldr r6, _08094D70
+_08094D3C:
+ ldr r2, [r4]
+ lsls r3, r2, 2
+ adds r3, r5
+ subs r0, r2, 0x1
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsrs r1, r0, 30
+ eors r0, r1
+ muls r0, r6
+ adds r0, r2
+ str r0, [r3]
+ adds r2, 0x1
+ str r2, [r4]
+ cmp r2, r7
+ ble _08094D3C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094D64: .4byte gUnknown_3001198
+_08094D68: .4byte gUnknown_203B470
+_08094D6C: .4byte 0x0000026f
+_08094D70: .4byte 0x6c078965
+ thumb_func_end sub_8094D28
+
+ thumb_func_start sub_8094D74
+sub_8094D74:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ adds r7, r1, 0
+ ldr r0, _08094E34
+ bl sub_8094D28
+ movs r4, 0x1
+ movs r5, 0
+ adds r3, r7, 0
+ movs r0, 0x9C
+ lsls r0, 2
+ cmp r3, r0
+ bge _08094D96
+ adds r3, r0, 0
+_08094D96:
+ ldr r6, _08094E38
+ cmp r3, 0
+ beq _08094DE2
+ mov r9, r6
+ ldr r0, _08094E3C
+ adds r0, r6
+ mov r12, r0
+ adds r2, r6, 0
+_08094DA6:
+ ldr r1, [r2]
+ lsrs r0, r1, 30
+ eors r1, r0
+ ldr r0, _08094E40
+ muls r0, r1
+ ldr r1, [r2, 0x4]
+ eors r1, r0
+ lsls r0, r5, 2
+ add r0, r8
+ ldr r0, [r0]
+ adds r1, r0
+ adds r1, r5
+ str r1, [r2, 0x4]
+ adds r2, 0x4
+ adds r4, 0x1
+ adds r5, 0x1
+ ldr r0, _08094E44
+ cmp r4, r0
+ ble _08094DD6
+ mov r1, r12
+ ldr r0, [r1]
+ str r0, [r6]
+ mov r2, r9
+ movs r4, 0x1
+_08094DD6:
+ cmp r5, r7
+ blt _08094DDC
+ movs r5, 0
+_08094DDC:
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08094DA6
+_08094DE2:
+ ldr r3, _08094E44
+ ldr r5, _08094E38
+ ldr r0, _08094E3C
+ adds r0, r5
+ mov r8, r0
+ lsls r0, r4, 2
+ subs r0, 0x4
+ adds r2, r0, r5
+ ldr r1, _08094E48
+ mov r12, r1
+ adds r7, r3, 0
+_08094DF8:
+ ldr r0, [r2]
+ lsrs r1, r0, 30
+ eors r0, r1
+ mov r1, r12
+ muls r1, r0
+ ldr r0, [r2, 0x4]
+ eors r0, r1
+ subs r0, r4
+ str r0, [r2, 0x4]
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, r7
+ ble _08094E1C
+ mov r1, r8
+ ldr r0, [r1]
+ str r0, [r6]
+ adds r2, r5, 0
+ movs r4, 0x1
+_08094E1C:
+ subs r3, 0x1
+ cmp r3, 0
+ bne _08094DF8
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r6]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094E34: .4byte 0x012bd6aa
+_08094E38: .4byte gUnknown_3001198
+_08094E3C: .4byte 0x000009bc
+_08094E40: .4byte 0x0019660d
+_08094E44: .4byte 0x0000026f
+_08094E48: .4byte 0x5d588b65
+ thumb_func_end sub_8094D74
+
+ thumb_func_start sub_8094E4C
+sub_8094E4C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08094F54
+ ldr r2, [r0]
+ ldr r1, _08094F58
+ mov r8, r0
+ cmp r2, r1
+ ble _08094F1C
+ ldr r0, _08094F5C
+ cmp r2, r0
+ bne _08094E6C
+ ldr r0, _08094F60
+ bl sub_8094D28
+_08094E6C:
+ movs r3, 0
+ ldr r0, _08094F64
+ mov r9, r0
+ ldr r7, _08094F68
+ mov r12, r9
+ adds r5, r7, 0
+_08094E78:
+ ldr r4, [r5]
+ movs r6, 0x80
+ lsls r6, 24
+ ands r4, r6
+ ldr r0, [r5, 0x4]
+ ldr r1, _08094F6C
+ ands r0, r1
+ orrs r4, r0
+ ldr r1, _08094F70
+ adds r0, r3, r1
+ lsls r0, 2
+ adds r0, r7
+ lsrs r2, r4, 1
+ ldr r1, [r0]
+ eors r1, r2
+ movs r0, 0x1
+ ands r4, r0
+ lsls r0, r4, 2
+ add r0, r12
+ ldr r0, [r0]
+ eors r1, r0
+ stm r5!, {r1}
+ adds r3, 0x1
+ cmp r3, 0xE2
+ ble _08094E78
+ ldr r5, _08094F74
+ cmp r3, r5
+ bgt _08094EE6
+ ldr r1, _08094F68
+ ldr r4, _08094F64
+ mov r12, r4
+ lsls r0, r3, 2
+ adds r2, r0, r1
+ ldr r4, _08094F78
+ adds r0, r4
+ adds r7, r0, r1
+_08094EC0:
+ ldr r4, [r2]
+ ands r4, r6
+ ldr r0, [r2, 0x4]
+ ldr r1, _08094F6C
+ ands r0, r1
+ orrs r4, r0
+ lsrs r0, r4, 1
+ ldm r7!, {r1}
+ eors r1, r0
+ movs r0, 0x1
+ ands r4, r0
+ lsls r0, r4, 2
+ add r0, r12
+ ldr r0, [r0]
+ eors r1, r0
+ stm r2!, {r1}
+ adds r3, 0x1
+ cmp r3, r5
+ ble _08094EC0
+_08094EE6:
+ ldr r2, _08094F68
+ ldr r0, _08094F7C
+ adds r3, r2, r0
+ ldr r4, [r3]
+ movs r0, 0x80
+ lsls r0, 24
+ ands r4, r0
+ ldr r0, [r2]
+ ldr r1, _08094F6C
+ ands r0, r1
+ orrs r4, r0
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r2, r1
+ lsrs r0, r4, 1
+ ldr r1, [r2]
+ eors r1, r0
+ movs r0, 0x1
+ ands r4, r0
+ lsls r0, r4, 2
+ add r0, r9
+ ldr r0, [r0]
+ eors r1, r0
+ str r1, [r3]
+ movs r0, 0
+ mov r4, r8
+ str r0, [r4]
+_08094F1C:
+ ldr r2, _08094F68
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r2
+ ldr r4, [r0]
+ adds r1, 0x1
+ mov r0, r8
+ str r1, [r0]
+ lsrs r0, r4, 11
+ eors r4, r0
+ lsls r0, r4, 7
+ ldr r1, _08094F80
+ ands r0, r1
+ eors r4, r0
+ lsls r0, r4, 15
+ ldr r1, _08094F84
+ ands r0, r1
+ eors r4, r0
+ lsrs r0, r4, 18
+ eors r4, r0
+ adds r0, r4, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08094F54: .4byte gUnknown_203B470
+_08094F58: .4byte 0x0000026f
+_08094F5C: .4byte 0x00000271
+_08094F60: .4byte 0x00001571
+_08094F64: .4byte gUnknown_203B474
+_08094F68: .4byte gUnknown_3001198
+_08094F6C: .4byte 0x7fffffff
+_08094F70: .4byte 0x0000018d
+_08094F74: .4byte 0x0000026e
+_08094F78: .4byte 0xfffffc74
+_08094F7C: .4byte 0x000009bc
+_08094F80: .4byte 0x9d2c5680
+_08094F84: .4byte 0xefc60000
+ thumb_func_end sub_8094E4C
+
+ thumb_func_start sub_8094F88
+sub_8094F88:
+ push {lr}
+ ldr r1, _08094F98
+ ldr r0, _08094F9C
+ str r0, [r1]
+ bl sub_8094FA8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08094F98: .4byte gUnknown_203B47C
+_08094F9C: .4byte gUnknown_2038C80
+ thumb_func_end sub_8094F88
+
+ thumb_func_start sub_8094FA0
+sub_8094FA0:
+ ldr r0, _08094FA4
+ bx lr
+ .align 2, 0
+_08094FA4: .4byte gUnknown_2038C80
+ thumb_func_end sub_8094FA0
+
+ thumb_func_start sub_8094FA8
+sub_8094FA8:
+ movs r1, 0
+ strb r1, [r0, 0x4]
+ strb r1, [r0, 0x3]
+ strb r1, [r0, 0x2]
+ strh r1, [r0]
+ bx lr
+ thumb_func_end sub_8094FA8
+
+ thumb_func_start sub_8094FB4
+sub_8094FB4:
+ push {lr}
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x4]
+ adds r0, 0x1
+ movs r1, 0
+ strb r0, [r2, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _0809500A
+ strb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x3]
+ adds r0, 0x1
+ strb r0, [r2, 0x3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _0809500A
+ strb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x2]
+ adds r0, 0x1
+ strb r0, [r2, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _0809500A
+ strb r1, [r2, 0x2]
+ ldrh r3, [r2]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ ldr r0, _08094FFC
+ cmp r1, r0
+ bgt _08095000
+ adds r0, r3, 0x1
+ b _08095008
+ .align 2, 0
+_08094FFC: .4byte 0x0000270e
+_08095000:
+ movs r0, 0x3B
+ strb r0, [r2, 0x3]
+ strb r0, [r2, 0x2]
+ ldr r0, _08095010
+_08095008:
+ strh r0, [r2]
+_0809500A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095010: .4byte 0x0000270f
+ thumb_func_end sub_8094FB4
+
+ thumb_func_start sub_8095014
+sub_8095014:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ ldr r1, _08095030
+ cmp r0, r1
+ bgt _08095034
+ str r0, [r5]
+ ldrb r0, [r4, 0x2]
+ str r0, [r2]
+ ldrb r0, [r4, 0x3]
+ b _0809503A
+ .align 2, 0
+_08095030: .4byte 0x0000270f
+_08095034:
+ str r1, [r5]
+ movs r0, 0x3B
+ str r0, [r2]
+_0809503A:
+ str r0, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095014
+
+ thumb_func_start sub_8095044
+sub_8095044:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _0809507C
+ ldr r1, [r4]
+ adds r1, 0x4
+ movs r2, 0x6
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x3
+ adds r0, r5, 0
+ movs r2, 0x6
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x2
+ adds r0, r5, 0
+ movs r2, 0x6
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809507C: .4byte gUnknown_203B47C
+ thumb_func_end sub_8095044
+
+ thumb_func_start sub_8095080
+sub_8095080:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080950B8
+ ldr r1, [r4]
+ adds r1, 0x4
+ movs r2, 0x6
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x3
+ adds r0, r5, 0
+ movs r2, 0x6
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x2
+ adds r0, r5, 0
+ movs r2, 0x6
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080950B8: .4byte gUnknown_203B47C
+ thumb_func_end sub_8095080
+
+ thumb_func_start sub_80950BC
+sub_80950BC:
+ ldr r1, _080950D8
+ ldr r0, _080950DC
+ str r0, [r1]
+ ldr r1, _080950E0
+ ldr r0, _080950E4
+ str r0, [r1]
+ ldr r1, _080950E8
+ ldr r0, _080950EC
+ str r0, [r1]
+ ldr r1, _080950F0
+ ldr r0, _080950F4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080950D8: .4byte gUnknown_203B480
+_080950DC: .4byte gUnknown_2038C88
+_080950E0: .4byte gUnknown_203B484
+_080950E4: .4byte gUnknown_2039288
+_080950E8: .4byte gUnknown_203B488
+_080950EC: .4byte gUnknown_20392E8
+_080950F0: .4byte gUnknown_203B48C
+_080950F4: .4byte gUnknown_20393C0
+ thumb_func_end sub_80950BC
+
+ thumb_func_start sub_80950F8
+sub_80950F8:
+ ldr r0, _080950FC
+ bx lr
+ .align 2, 0
+_080950FC: .4byte gUnknown_2038C88
+ thumb_func_end sub_80950F8
+
+ thumb_func_start sub_8095100
+sub_8095100:
+ ldr r0, _08095104
+ bx lr
+ .align 2, 0
+_08095104: .4byte gUnknown_2039288
+ thumb_func_end sub_8095100
+
+ thumb_func_start sub_8095108
+sub_8095108:
+ ldr r0, _0809510C
+ bx lr
+ .align 2, 0
+_0809510C: .4byte gUnknown_20392E8
+ thumb_func_end sub_8095108
+
+ thumb_func_start sub_8095110
+sub_8095110:
+ ldr r0, _08095114
+ bx lr
+ .align 2, 0
+_08095114: .4byte gUnknown_20393C0
+ thumb_func_end sub_8095110
+
+ thumb_func_start sub_8095118
+sub_8095118:
+ push {r4,lr}
+ ldr r4, _0809517C
+ ldr r0, [r4]
+ movs r2, 0xC0
+ lsls r2, 3
+ movs r1, 0
+ bl MemoryFill8
+ ldr r0, _08095180
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x5C
+ bl MemoryFill8
+ movs r2, 0
+ movs r1, 0
+ movs r3, 0x1F
+_0809513A:
+ ldr r0, [r4]
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, 0x22
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, 0x2D
+ strb r2, [r0]
+ adds r1, 0x30
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0809513A
+ ldr r2, _08095184
+ ldr r1, [r2]
+ movs r0, 0
+ str r0, [r1]
+ movs r3, 0
+ movs r4, 0x1
+ negs r4, r4
+_08095166:
+ ldr r0, [r2]
+ lsls r1, r3, 2
+ adds r0, 0x4
+ adds r0, r1
+ str r4, [r0]
+ adds r3, 0x1
+ cmp r3, 0x1F
+ ble _08095166
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809517C: .4byte gUnknown_203B480
+_08095180: .4byte gUnknown_203B484
+_08095184: .4byte gUnknown_203B48C
+ thumb_func_end sub_8095118
+
+ thumb_func_start nullsub_206
+nullsub_206:
+ bx lr
+ thumb_func_end nullsub_206
+
+ thumb_func_start nullsub_207
+nullsub_207:
+ bx lr
+ thumb_func_end nullsub_207
+
+ thumb_func_start sub_8095190
+sub_8095190:
+ push {lr}
+ movs r2, 0x2
+ ldr r0, _080951A8
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x60
+_0809519C:
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080951AC
+ adds r0, r2, 0
+ b _080951B8
+ .align 2, 0
+_080951A8: .4byte gUnknown_203B480
+_080951AC:
+ adds r1, 0x30
+ adds r2, 0x1
+ cmp r2, 0x1F
+ ble _0809519C
+ movs r0, 0x1
+ negs r0, r0
+_080951B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095190
+
+ thumb_func_start sub_80951BC
+sub_80951BC:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8095190
+ adds r2, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _080951F4
+ ldr r0, _080951F0
+ ldr r1, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 4
+ adds r1, r0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ b _080951F6
+ .align 2, 0
+_080951F0: .4byte gUnknown_203B480
+_080951F4:
+ movs r0, 0
+_080951F6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80951BC
+
+ thumb_func_start sub_80951FC
+sub_80951FC:
+ push {r4,r5,lr}
+ ldr r1, _08095224
+ ldr r1, [r1]
+ adds r1, 0x30
+ ldrb r2, [r1]
+ negs r3, r2
+ orrs r3, r2
+ lsrs r3, 31
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095224: .4byte gUnknown_203B480
+ thumb_func_end sub_80951FC
+
+ thumb_func_start sub_8095228
+sub_8095228:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0809523C
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 4
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_0809523C: .4byte gUnknown_203B480
+ thumb_func_end sub_8095228
+
+ thumb_func_start sub_8095240
+sub_8095240:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08095270
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 4
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, r4
+ adds r0, 0x22
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095270: .4byte gUnknown_203B480
+ thumb_func_end sub_8095240
+
+ thumb_func_start sub_8095274
+sub_8095274:
+ push {lr}
+ ldr r1, _08095294
+ ldr r3, [r1]
+ adds r2, r3, 0
+ ldm r2!, {r1}
+ lsls r1, 2
+ adds r2, r1
+ str r0, [r2]
+ ldr r0, [r3]
+ movs r1, 0
+ cmp r0, 0x1E
+ bgt _0809528E
+ adds r1, r0, 0x1
+_0809528E:
+ str r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095294: .4byte gUnknown_203B48C
+ thumb_func_end sub_8095274
+
+ thumb_func_start sub_8095298
+sub_8095298:
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r0, _080952B0
+ ldr r0, [r0]
+ adds r1, r0, 0x4
+_080952A4:
+ ldr r0, [r1]
+ cmp r0, r3
+ bne _080952B4
+ movs r0, 0x1
+ b _080952BE
+ .align 2, 0
+_080952B0: .4byte gUnknown_203B48C
+_080952B4:
+ adds r1, 0x4
+ adds r2, 0x1
+ cmp r2, 0x1F
+ ble _080952A4
+ movs r0, 0
+_080952BE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095298
+
+ thumb_func_start sub_80952C4
+sub_80952C4:
+ push {r4,lr}
+ ldr r2, _080952EC
+ ldr r1, [r2]
+ movs r0, 0
+ str r0, [r1]
+ movs r3, 0
+ adds r4, r2, 0
+ movs r2, 0x1
+ negs r2, r2
+_080952D6:
+ ldr r0, [r4]
+ lsls r1, r3, 2
+ adds r0, 0x4
+ adds r0, r1
+ str r2, [r0]
+ adds r3, 0x1
+ cmp r3, 0x1F
+ ble _080952D6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080952EC: .4byte gUnknown_203B48C
+ thumb_func_end sub_80952C4
+
+ thumb_func_start sub_80952F0
+sub_80952F0:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0
+ ldr r0, _08095310
+ ldr r2, [r0]
+_080952FE:
+ ldrb r0, [r2]
+ cmp r0, r1
+ bne _08095314
+ ldr r0, [r2, 0x10]
+ cmp r0, r4
+ bne _08095314
+ movs r0, 0x1
+ b _0809531E
+ .align 2, 0
+_08095310: .4byte gUnknown_203B480
+_08095314:
+ adds r2, 0x30
+ adds r3, 0x1
+ cmp r3, 0x1F
+ ble _080952FE
+ movs r0, 0
+_0809531E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80952F0
+
+ thumb_func_start sub_8095324
+sub_8095324:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _0809534C
+ ldr r1, [r0]
+ movs r2, 0x1F
+_08095332:
+ ldrb r0, [r1]
+ cmp r0, r4
+ bne _0809533A
+ adds r3, 0x1
+_0809533A:
+ adds r1, 0x30
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08095332
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809534C: .4byte gUnknown_203B480
+ thumb_func_end sub_8095324
+
+ thumb_func_start sub_8095350
+sub_8095350:
+ push {lr}
+ movs r3, 0
+ ldr r0, _08095370
+ ldr r1, [r0]
+ movs r2, 0x1F
+_0809535A:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08095362
+ adds r3, 0x1
+_08095362:
+ adds r1, 0x30
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0809535A
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095370: .4byte gUnknown_203B480
+ thumb_func_end sub_8095350
+
+ thumb_func_start sub_8095374
+sub_8095374:
+ push {lr}
+ movs r3, 0x1
+ negs r3, r3
+ movs r2, 0
+ ldr r0, _08095398
+ ldr r1, [r0]
+_08095380:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _08095388
+ adds r3, r2, 0
+_08095388:
+ adds r1, 0x30
+ adds r2, 0x1
+ cmp r2, 0x1F
+ ble _08095380
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095398: .4byte gUnknown_203B480
+ thumb_func_end sub_8095374
+
+ thumb_func_start sub_809539C
+sub_809539C:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0
+ ldr r0, _080953BC
+ ldr r2, [r0]
+_080953AA:
+ ldrb r0, [r2]
+ cmp r0, r1
+ bne _080953C0
+ ldr r0, [r2, 0x10]
+ cmp r0, r4
+ bne _080953C0
+ adds r0, r3, 0
+ b _080953CC
+ .align 2, 0
+_080953BC: .4byte gUnknown_203B480
+_080953C0:
+ adds r2, 0x30
+ adds r3, 0x1
+ cmp r3, 0x1F
+ ble _080953AA
+ movs r0, 0x1
+ negs r0, r0
+_080953CC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809539C
+
+ thumb_func_start sub_80953D4
+sub_80953D4:
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _080953EC
+ ldr r1, [r0]
+_080953E0:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _080953F0
+ adds r0, r2, 0
+ b _080953FC
+ .align 2, 0
+_080953EC: .4byte gUnknown_203B480
+_080953F0:
+ adds r1, 0x30
+ adds r2, 0x1
+ cmp r2, 0x1F
+ ble _080953E0
+ movs r0, 0x1
+ negs r0, r0
+_080953FC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80953D4
+
+ thumb_func_start sub_8095400
+sub_8095400:
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r0, _08095418
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x10
+_0809540E:
+ ldr r0, [r1]
+ cmp r0, r3
+ bne _0809541C
+ adds r0, r2, 0
+ b _08095428
+ .align 2, 0
+_08095418: .4byte gUnknown_203B480
+_0809541C:
+ adds r1, 0x30
+ adds r2, 0x1
+ cmp r2, 0x1F
+ ble _0809540E
+ movs r0, 0x1
+ negs r0, r0
+_08095428:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095400
+
+ thumb_func_start sub_809542C
+sub_809542C:
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r4, _08095490
+ ldr r2, [r4]
+ movs r1, 0x1
+ strb r1, [r2]
+ ldr r2, [r4]
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2, 0x4]
+ str r1, [r2, 0x8]
+ bl Random
+ bl sub_8094D28
+ bl sub_8094E4C
+ ldr r1, [r4]
+ str r0, [r1, 0x10]
+ bl sub_808D33C
+ ldr r1, [r4]
+ ldrh r0, [r0, 0x8]
+ strh r0, [r1, 0xC]
+ bl sub_808D33C
+ adds r1, r0, 0
+ mov r0, sp
+ bl sub_808DA34
+ ldr r0, [r4]
+ adds r0, 0x14
+ mov r1, sp
+ bl sub_80922F4
+ bl sub_8011C34
+ ldr r1, [r4]
+ str r0, [r1, 0x24]
+ ldrb r0, [r1, 0x4]
+ bl GetUnk3
+ ldr r1, [r4]
+ adds r1, 0x2C
+ strb r0, [r1]
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08095490: .4byte gUnknown_203B480
+ thumb_func_end sub_809542C
+
+ thumb_func_start sub_8095494
+sub_8095494:
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080954B0
+ ldr r3, [r2]
+ lsls r2, r1, 1
+ adds r2, r1
+ lsls r2, 4
+ adds r3, r2
+ ldr r1, [r3, 0x4]
+ ldr r2, [r3, 0x8]
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_080954B0: .4byte gUnknown_203B480
+ thumb_func_end sub_8095494
+
+ thumb_func_start sub_80954B4
+sub_80954B4:
+ push {lr}
+ movs r0, 0x3
+ bl sub_8095324
+ cmp r0, 0
+ bne _080954C4
+ movs r0, 0
+ b _080954C6
+_080954C4:
+ movs r0, 0x1
+_080954C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80954B4
+
+ thumb_func_start sub_80954CC
+sub_80954CC:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ ldr r6, _08095618
+ movs r5, 0
+ movs r4, 0x1F
+_080954E2:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8095774
+ adds r5, 0x30
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080954E2
+ ldr r4, _0809561C
+ ldr r1, [r4]
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_8094924
+ ldr r5, [r4]
+ adds r4, r5, 0x4
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x58
+ bl memset
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl sub_8094924
+ adds r1, r5, 0x6
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_8094924
+ adds r1, r5, 0x7
+ mov r0, sp
+ movs r2, 0x7
+ bl sub_8094924
+ adds r4, 0x4
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_8090314
+ adds r1, r5, 0
+ adds r1, 0xC
+ mov r0, sp
+ movs r2, 0x9
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x10
+ mov r0, sp
+ bl sub_808F410
+ adds r1, r5, 0
+ adds r1, 0x14
+ mov r0, sp
+ bl sub_808F410
+ adds r1, r5, 0
+ adds r1, 0x18
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x1A
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x1C
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x1D
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x1E
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x1F
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x20
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x24
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x28
+ mov r0, sp
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x2C
+ mov r0, sp
+ bl sub_8091DC0
+ adds r1, r5, 0
+ adds r1, 0x30
+ mov r0, sp
+ bl sub_8094128
+ adds r1, r5, 0
+ adds r1, 0x50
+ mov r0, sp
+ movs r2, 0x50
+ bl sub_8094924
+ ldr r4, _08095620
+ ldr r1, [r4]
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_8094924
+ adds r6, r4, 0
+ movs r5, 0x4
+ movs r4, 0x1F
+_080955F4:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_8094924
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080955F4
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095618: .4byte gUnknown_203B480
+_0809561C: .4byte gUnknown_203B484
+_08095620: .4byte gUnknown_203B48C
+ thumb_func_end sub_80954CC
+
+ thumb_func_start sub_8095624
+sub_8095624:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ ldr r6, _08095768
+ movs r5, 0
+ movs r4, 0x1F
+_0809563A:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8095824
+ adds r5, 0x30
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0809563A
+ ldr r4, _0809576C
+ ldr r1, [r4]
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_809488C
+ ldr r5, [r4]
+ adds r4, r5, 0x4
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x2
+ bl sub_809488C
+ adds r1, r5, 0x6
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_809488C
+ adds r1, r5, 0x7
+ mov r0, sp
+ movs r2, 0x7
+ bl sub_809488C
+ adds r4, 0x4
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80902F4
+ adds r1, r5, 0
+ adds r1, 0xC
+ mov r0, sp
+ movs r2, 0x9
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x10
+ mov r0, sp
+ bl sub_808F41C
+ adds r1, r5, 0
+ adds r1, 0x14
+ mov r0, sp
+ bl sub_808F41C
+ adds r1, r5, 0
+ adds r1, 0x18
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x1A
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x1C
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x1D
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x1E
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x1F
+ mov r0, sp
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x20
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x24
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x28
+ mov r0, sp
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x2C
+ mov r0, sp
+ bl sub_8091DE0
+ adds r1, r5, 0
+ adds r1, 0x30
+ mov r0, sp
+ bl sub_8094108
+ adds r1, r5, 0
+ adds r1, 0x50
+ mov r0, sp
+ movs r2, 0x50
+ bl sub_809488C
+ ldr r4, _08095770
+ ldr r1, [r4]
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_809488C
+ adds r6, r4, 0
+ movs r5, 0x4
+ movs r4, 0x1F
+_08095742:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_809488C
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08095742
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08095768: .4byte gUnknown_203B480
+_0809576C: .4byte gUnknown_203B484
+_08095770: .4byte gUnknown_203B48C
+ thumb_func_end sub_8095624
+
+ thumb_func_start sub_8095774
+sub_8095774:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ bl sub_8090314
+ adds r1, r5, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ movs r2, 0x18
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x14
+ adds r0, r4, 0
+ movs r2, 0x50
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x20
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x21
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x22
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x24
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x28
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x2C
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r1, r5, 0
+ adds r1, 0x2D
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095774
+
+ thumb_func_start sub_8095824
+sub_8095824:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0xFF
+ mov r0, sp
+ strb r1, [r0]
+ mov r6, sp
+ adds r6, 0x1
+ movs r0, 0
+ strb r0, [r6]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r4, 0x4
+ adds r0, r5, 0
+ bl sub_80902F4
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r5, 0
+ movs r2, 0x18
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x14
+ adds r0, r5, 0
+ movs r2, 0x50
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x20
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x21
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x22
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x24
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x28
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl sub_809488C
+ adds r1, r4, 0
+ adds r1, 0x2C
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r0, r4, 0
+ adds r0, 0x2D
+ ldrb r0, [r0]
+ mov r1, sp
+ cmp r0, 0
+ bne _080958D2
+ adds r1, r6, 0
+_080958D2:
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_809488C
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8095824
+
+ thumb_func_start sub_80958E4
+sub_80958E4:
+ str r1, [r0]
+ bx lr
+ thumb_func_end sub_80958E4
+
+ thumb_func_start sub_80958E8
+sub_80958E8:
+ ldr r1, _080958F0
+ ldr r0, _080958F4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080958F0: .4byte gUnknown_203B490
+_080958F4: .4byte gUnknown_2039448
+ thumb_func_end sub_80958E8
+
+ thumb_func_start sub_80958F8
+sub_80958F8:
+ ldr r0, _080958FC
+ bx lr
+ .align 2, 0
+_080958FC: .4byte gUnknown_2039448
+ thumb_func_end sub_80958F8
+
+ thumb_func_start sub_8095900
+sub_8095900:
+ push {r4-r7,lr}
+ movs r4, 0
+_08095904:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096040
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08095904
+ movs r4, 0
+_08095914:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80965B8
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08095914
+ movs r4, 0
+_08095924:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096C3C
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08095924
+ movs r4, 0
+ ldr r3, _080959B8
+ movs r2, 0xBC
+ lsls r2, 2
+ movs r1, 0
+_0809593C:
+ ldr r0, [r3]
+ adds r0, r2
+ adds r0, r4
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _0809593C
+ ldr r4, _080959B8
+ ldr r0, [r4]
+ movs r1, 0xCA
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ movs r7, 0xC8
+ lsls r7, 1
+ adds r0, r7
+ movs r1, 0x28
+ bl MemoryClear8
+ ldr r0, [r4]
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x78
+ bl MemoryClear8
+ adds r3, r4, 0
+ movs r5, 0
+ movs r2, 0
+ movs r6, 0x8C
+ lsls r6, 2
+ movs r4, 0xF
+_08095980:
+ ldr r0, [r3]
+ adds r0, r2
+ adds r0, r6
+ movs r1, 0x63
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, r2
+ ldr r7, _080959BC
+ adds r0, r7
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r3]
+ adds r7, 0x3
+ adds r0, r1, r7
+ adds r0, r2
+ str r5, [r0]
+ adds r7, 0x4
+ adds r0, r1, r7
+ adds r0, r2
+ str r5, [r0]
+ adds r2, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08095980
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080959B8: .4byte gUnknown_203B490
+_080959BC: .4byte 0x00000231
+ thumb_func_end sub_8095900
+
+ thumb_func_start sub_80959C0
+sub_80959C0:
+ push {lr}
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bne _080959D6
+ adds r0, r1, 0
+ bl sub_80959DC
+ lsls r0, 24
+ lsrs r0, 24
+ b _080959D8
+_080959D6:
+ movs r0, 0
+_080959D8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80959C0
+
+ thumb_func_start sub_80959DC
+sub_80959DC:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x4
+ bls _080959E8
+ b _08095B16
+_080959E8:
+ cmp r0, 0x4
+ bne _080959F8
+ ldrb r0, [r5, 0x4]
+ bl GetMaxItemCount
+ cmp r0, 0
+ bne _080959F8
+ b _08095B16
+_080959F8:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x9
+ bls _08095A00
+ b _08095B16
+_08095A00:
+ ldrb r0, [r5, 0x4]
+ bl sub_809095C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095A0E
+ b _08095B16
+_08095A0E:
+ ldrb r4, [r5, 0x5]
+ ldrb r0, [r5, 0x4]
+ bl sub_8090298
+ cmp r4, r0
+ bge _08095B16
+ adds r4, r5, 0x4
+ adds r0, r4, 0
+ bl sub_809017C
+ lsls r0, 24
+ adds r6, r4, 0
+ cmp r0, 0
+ bne _08095B16
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08095B16
+ ldr r4, _08095B1C
+ cmp r0, r4
+ bgt _08095B16
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ bl sub_808E770
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _08095B16
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ bl sub_803C0DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095B16
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, r4
+ bgt _08095B16
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ bl sub_808E770
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _08095B16
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ bl sub_803C0DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095B16
+ ldrb r0, [r5, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08095A9C
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _08095B16
+_08095A9C:
+ ldrb r0, [r5, 0x10]
+ bl sub_8092040
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095B16
+ ldrb r0, [r5, 0x10]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095B16
+ ldrb r0, [r5, 0x10]
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095B16
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x3
+ bne _08095AD4
+ ldrb r0, [r5, 0x4]
+ ldrb r1, [r5, 0x10]
+ bl sub_8091E60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095B16
+_08095AD4:
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0x4
+ beq _08095B16
+ cmp r0, 0xA
+ beq _08095B16
+ cmp r0, 0xA
+ bhi _08095B16
+ ldrb r0, [r5, 0x12]
+ bl sub_8092040
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095B16
+ ldrb r0, [r5, 0x13]
+ cmp r0, 0x39
+ bhi _08095B16
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0x9
+ bne _08095B20
+ ldrb r0, [r5, 0x13]
+ bl sub_8092534
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08095B16
+ ldrb r1, [r5, 0x1]
+ adds r0, r6, 0
+ bl sub_803C1D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095B20
+_08095B16:
+ movs r0, 0
+ b _08095B22
+ .align 2, 0
+_08095B1C: .4byte 0x000001a7
+_08095B20:
+ movs r0, 0x1
+_08095B22:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80959DC
+
+ thumb_func_start sub_8095B28
+sub_8095B28:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, _08095B44
+ add sp, r4
+ adds r4, r0, 0
+ bl sub_8095CE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095B48
+ movs r0, 0
+ b _08095CCC
+ .align 2, 0
+_08095B44: .4byte 0xfffffcb0
+_08095B48:
+ movs r0, 0x5
+ strb r0, [r4]
+ movs r0, 0x8
+ bl RandomCapped
+ ldr r1, _08095BC8
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _08095B6C
+ bl sub_8092178
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08095B6C
+ strb r0, [r4, 0x1]
+_08095B6C:
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ bl Random
+ ldr r1, _08095BCC
+ ands r1, r0
+ str r1, [r4, 0x8]
+ movs r7, 0
+ movs r5, 0x1
+ adds r0, r4, 0x4
+ mov r8, r0
+ movs r1, 0x12
+ adds r1, r4
+ mov r9, r1
+ mov r6, sp
+_08095B8A:
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095B9E
+ strh r5, [r6]
+ adds r6, 0x2
+ adds r7, 0x1
+_08095B9E:
+ adds r5, 0x1
+ ldr r0, _08095BD0
+ cmp r5, r0
+ ble _08095B8A
+ cmp r7, 0
+ beq _08095BD4
+ adds r0, r7, 0
+ bl RandomCapped
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+ adds r0, r7, 0
+ bl RandomCapped
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ b _08095BDC
+ .align 2, 0
+_08095BC8: .4byte gUnknown_8109984
+_08095BCC: .4byte 0x00ffffff
+_08095BD0: .4byte 0x000001a7
+_08095BD4:
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ movs r0, 0x91
+ lsls r0, 1
+_08095BDC:
+ strh r0, [r4, 0xE]
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08095BEE
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+_08095BEE:
+ ldrb r0, [r4, 0x4]
+ bl sub_8095F28
+ strb r0, [r4, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08095C10
+ strb r0, [r4, 0x1]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ adds r2, r4, 0
+ adds r2, 0x10
+ mov r0, r8
+ movs r1, 0
+ bl sub_803C37C
+_08095C10:
+ ldrb r0, [r4, 0x4]
+ bl GetMaxItemCount
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08095C28
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x4
+ bne _08095C28
+ strb r1, [r4, 0x1]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+_08095C28:
+ ldrb r1, [r4, 0x1]
+ mov r0, r8
+ mov r2, r9
+ bl sub_803C37C
+ ldrb r0, [r4, 0x10]
+ ldrb r1, [r4, 0x12]
+ cmp r0, r1
+ beq _08095C28
+ movs r0, 0
+ strb r0, [r4, 0x13]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ beq _08095C90
+ cmp r0, 0x2
+ bgt _08095C4E
+ cmp r0, 0x1
+ beq _08095C6C
+ b _08095CCA
+_08095C4E:
+ cmp r0, 0x4
+ bgt _08095CCA
+ bl Random
+ adds r1, r0, 0
+ movs r0, 0xE0
+ lsls r0, 3
+ ands r1, r0
+ movs r0, 0xC0
+ lsls r0, 2
+ cmp r1, r0
+ beq _08095CC4
+ cmp r1, r0
+ bgt _08095CB4
+ b _08095CAA
+_08095C6C:
+ bl Random
+ adds r1, r0, 0
+ movs r0, 0x70
+ ands r1, r0
+ cmp r1, 0x10
+ beq _08095C80
+ cmp r1, 0x30
+ beq _08095C88
+ b _08095CCA
+_08095C80:
+ adds r0, r4, 0
+ bl sub_803C3E0
+ b _08095CCA
+_08095C88:
+ adds r0, r4, 0
+ bl sub_803C45C
+ b _08095CCA
+_08095C90:
+ bl Random
+ movs r1, 0xC0
+ lsls r1, 6
+ ands r1, r0
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _08095CCA
+ adds r0, r4, 0
+ bl sub_803C4F0
+ b _08095CCA
+_08095CAA:
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ beq _08095CBC
+ b _08095CCA
+_08095CB4:
+ movs r0, 0xC0
+ lsls r0, 3
+ cmp r1, r0
+ bne _08095CCA
+_08095CBC:
+ adds r0, r4, 0
+ bl sub_803C580
+ b _08095CCA
+_08095CC4:
+ adds r0, r4, 0
+ bl sub_803C610
+_08095CCA:
+ movs r0, 0x1
+_08095CCC:
+ movs r3, 0xD4
+ lsls r3, 2
+ add sp, r3
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095B28
+
+ thumb_func_start sub_8095CE0
+sub_8095CE0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x60
+ str r0, [sp, 0x44]
+ mov r0, sp
+ bl sub_80A29B0
+ str r0, [sp, 0x4C]
+ cmp r0, 0
+ bne _08095D0C
+ mov r0, sp
+ add r1, sp, 0x4C
+ ldrb r1, [r1]
+ strb r1, [r0]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r2, 0x2
+ str r2, [sp, 0x4C]
+_08095D0C:
+ ldr r0, [sp, 0x4C]
+ bl RandomCapped
+ mov r9, r0
+ str r0, [sp, 0x48]
+ mov r1, sp
+ adds r1, 0x40
+ str r1, [sp, 0x5C]
+_08095D1C:
+ mov r0, sp
+ add r0, r9
+ ldrb r7, [r0]
+ adds r0, r7, 0
+ bl sub_8090298
+ str r0, [sp, 0x58]
+ lsrs r0, 31
+ ldr r2, [sp, 0x58]
+ adds r0, r2, r0
+ asrs r0, 1
+ str r0, [sp, 0x54]
+ adds r1, r2, 0
+ bl RandomRange
+ adds r4, r0, 0
+ str r4, [sp, 0x50]
+_08095D3E:
+ movs r0, 0x1
+ mov r8, r0
+ ldr r1, _08095DF4
+ ldr r0, [sp, 0x40]
+ ands r0, r1
+ orrs r0, r7
+ lsls r2, r4, 24
+ lsrs r2, 16
+ ldr r1, _08095DF8
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x40]
+ ldr r0, [sp, 0x5C]
+ bl sub_809017C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095D66
+ movs r1, 0
+ mov r8, r1
+_08095D66:
+ ldr r2, _08095DFC
+ mov r10, r2
+ movs r6, 0
+ movs r5, 0x3
+_08095D6E:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r6
+ adds r1, r7, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095D88
+ movs r2, 0
+ mov r8, r2
+_08095D88:
+ adds r6, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08095D6E
+ ldr r0, _08095DFC
+ mov r10, r0
+ movs r6, 0x50
+ movs r5, 0x7
+_08095D98:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r6
+ adds r1, r7, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095DB2
+ movs r2, 0
+ mov r8, r2
+_08095DB2:
+ adds r6, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08095D98
+ ldr r0, _08095DFC
+ mov r10, r0
+ movs r6, 0xF0
+ movs r5, 0x7
+_08095DC2:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r6
+ adds r1, r7, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095DDC
+ movs r2, 0
+ mov r8, r2
+_08095DDC:
+ adds r6, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08095DC2
+ mov r0, r8
+ cmp r0, 0
+ beq _08095E00
+ ldr r1, [sp, 0x44]
+ strb r7, [r1, 0x4]
+ strb r4, [r1, 0x5]
+ movs r0, 0x1
+ b _08095E28
+ .align 2, 0
+_08095DF4: .4byte 0xffffff00
+_08095DF8: .4byte 0xffff00ff
+_08095DFC: .4byte gUnknown_203B490
+_08095E00:
+ adds r4, 0x1
+ ldr r2, [sp, 0x58]
+ cmp r4, r2
+ blt _08095E0A
+ ldr r4, [sp, 0x54]
+_08095E0A:
+ ldr r0, [sp, 0x50]
+ cmp r4, r0
+ bne _08095D3E
+ movs r1, 0x1
+ add r9, r1
+ ldr r2, [sp, 0x4C]
+ cmp r9, r2
+ bne _08095E1E
+ movs r0, 0
+ mov r9, r0
+_08095E1E:
+ ldr r1, [sp, 0x48]
+ cmp r9, r1
+ beq _08095E26
+ b _08095D1C
+_08095E26:
+ movs r0, 0
+_08095E28:
+ add sp, 0x60
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095CE0
+
+ thumb_func_start sub_8095E38
+sub_8095E38:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08095E6E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _08095E5E
+ cmp r3, 0x1
+ bne _08095E5E
+ ldrb r0, [r4, 0x4]
+ cmp r0, r1
+ bne _08095E6E
+ movs r0, 0x1
+ b _08095E70
+_08095E5E:
+ ldrb r0, [r4, 0x4]
+ cmp r0, r1
+ bne _08095E6E
+ ldrb r0, [r4, 0x5]
+ cmp r0, r2
+ bne _08095E6E
+ movs r0, 0x1
+ b _08095E70
+_08095E6E:
+ movs r0, 0
+_08095E70:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095E38
+
+ thumb_func_start sub_8095E78
+sub_8095E78:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x3C
+ movs r6, 0
+ movs r5, 0x1
+_08095E84:
+ ldr r0, _08095F04
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r0, [r0]
+ adds r1, r5, 0x1
+ mov r8, r1
+ cmp r0, 0
+ bne _08095EF6
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8092534
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08095EF6
+ movs r4, 0
+ ldr r0, _08095F08
+ ldr r1, [r0]
+ movs r3, 0x3
+_08095EAC:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08095EBA
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x9
+ bne _08095EBA
+ movs r4, 0x1
+_08095EBA:
+ adds r1, 0x14
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08095EAC
+ ldr r0, _08095F08
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xF0
+ adds r1, r0, 0
+ movs r3, 0x7
+_08095ECE:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08095EE0
+ ldr r7, _08095F0C
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bne _08095EE0
+ movs r4, 0x1
+_08095EE0:
+ adds r2, 0x14
+ adds r1, 0x14
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08095ECE
+ cmp r4, 0
+ bne _08095EF6
+ mov r1, sp
+ adds r0, r1, r6
+ strb r5, [r0]
+ adds r6, 0x1
+_08095EF6:
+ mov r5, r8
+ cmp r5, 0x39
+ ble _08095E84
+ cmp r6, 0
+ bne _08095F10
+ movs r0, 0
+ b _08095F1A
+ .align 2, 0
+_08095F04: .4byte gUnknown_203B468
+_08095F08: .4byte gUnknown_203B490
+_08095F0C: .4byte 0x00000101
+_08095F10:
+ adds r0, r6, 0
+ bl RandomCapped
+ add r0, sp
+ ldrb r0, [r0]
+_08095F1A:
+ add sp, 0x3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095E78
+
+ thumb_func_start sub_8095F28
+sub_8095F28:
+ push {r4-r7,lr}
+ sub sp, 0xF0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ movs r5, 0x1
+_08095F34:
+ lsls r4, r5, 24
+ cmp r7, 0x63
+ beq _08095F48
+ lsrs r1, r4, 24
+ adds r0, r7, 0
+ bl sub_8091E60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095F6A
+_08095F48:
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095F6A
+ adds r0, r4, 0
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095F6A
+ mov r1, sp
+ adds r0, r1, r6
+ strb r5, [r0]
+ adds r6, 0x1
+_08095F6A:
+ adds r5, 0x1
+ cmp r5, 0xEF
+ ble _08095F34
+ cmp r6, 0
+ beq _08095F80
+ adds r0, r6, 0
+ bl RandomCapped
+ add r0, sp
+ ldrb r0, [r0]
+ b _08095F82
+_08095F80:
+ movs r0, 0
+_08095F82:
+ add sp, 0xF0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095F28
+
+ thumb_func_start sub_8095F8C
+sub_8095F8C:
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_08095F92:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096000
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095FA2
+ adds r5, 0x1
+_08095FA2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08095F92
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095F8C
+
+ thumb_func_start sub_8095FB0
+sub_8095FB0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _08095FD4
+ movs r2, 0
+_08095FBA:
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08095FD8
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ movs r0, 0
+ b _08095FE2
+ .align 2, 0
+_08095FD4: .4byte gUnknown_203B490
+_08095FD8:
+ adds r2, 0x14
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08095FBA
+ movs r0, 0x1
+_08095FE2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095FB0
+
+ thumb_func_start sub_8095FE8
+sub_8095FE8:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08095FFC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08095FFC: .4byte gUnknown_203B490
+ thumb_func_end sub_8095FE8
+
+ thumb_func_start sub_8096000
+sub_8096000:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809601C
+ ldr r2, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08096020
+ movs r0, 0
+ b _08096022
+ .align 2, 0
+_0809601C: .4byte gUnknown_203B490
+_08096020:
+ movs r0, 0x1
+_08096022:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096000
+
+ thumb_func_start sub_8096028
+sub_8096028:
+ push {r4,lr}
+ movs r4, 0
+_0809602C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096040
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0809602C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096028
+
+ thumb_func_start sub_8096040
+sub_8096040:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08096074
+ ldr r1, [r3]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r2
+ movs r4, 0
+ strb r4, [r1]
+ ldr r0, [r3]
+ adds r0, r2
+ movs r1, 0x63
+ strb r1, [r0, 0x4]
+ ldr r0, [r3]
+ adds r0, r2
+ strb r4, [r0, 0x5]
+ ldr r0, [r3]
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x11]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096074: .4byte gUnknown_203B490
+ thumb_func_end sub_8096040
+
+ thumb_func_start sub_8096078
+sub_8096078:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _08096090
+ mov r12, r0
+ mov r8, r3
+ movs r4, 0
+ mov r9, r4
+ b _080960B6
+ .align 2, 0
+_08096090: .4byte gUnknown_203B490
+_08096094:
+ cmp r2, r3
+ ble _080960AA
+ mov r1, r12
+ ldr r0, [r1]
+ mov r5, r8
+ adds r1, r0, r5
+ adds r0, r4
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_080960AA:
+ adds r4, 0x14
+ movs r0, 0x14
+ add r9, r0
+ adds r2, 0x1
+ add r8, r0
+ adds r3, 0x1
+_080960B6:
+ cmp r2, 0x3
+ bgt _080960E2
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080960E2
+ ldr r6, _08096110
+ mov r1, r9
+_080960CA:
+ adds r1, 0x14
+ adds r4, 0x14
+ movs r5, 0x14
+ add r9, r5
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080960E2
+ ldr r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080960CA
+_080960E2:
+ cmp r2, 0x4
+ bne _08096094
+ cmp r3, 0x3
+ bgt _08096102
+ ldr r4, _08096110
+ movs r2, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 2
+_080960F4:
+ ldr r0, [r4]
+ adds r0, r1
+ strb r2, [r0]
+ adds r1, 0x14
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080960F4
+_08096102:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096110: .4byte gUnknown_203B490
+ thumb_func_end sub_8096078
+
+ thumb_func_start sub_8096114
+sub_8096114:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r1, 0
+_08096122:
+ adds r0, r1, 0x1
+ mov r10, r0
+ mov r8, r10
+ cmp r0, 0x3
+ bgt _08096198
+ ldr r2, _080961B0
+ mov r9, r2
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r12, r0
+ mov r3, r10
+ lsls r0, r3, 2
+ add r0, r10
+ lsls r4, r0, 2
+_08096140:
+ mov r5, r9
+ ldr r1, [r5]
+ adds r3, r1, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _0809618C
+ mov r6, r12
+ adds r2, r1, r6
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r3, 0x4]
+ cmp r1, r0
+ bhi _08096164
+ cmp r1, r0
+ bne _0809618C
+ ldrb r0, [r2, 0x5]
+ ldrb r7, [r3, 0x5]
+ cmp r0, r7
+ bls _0809618C
+_08096164:
+ mov r1, sp
+ adds r0, r2, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ adds r1, r2, 0
+ adds r0, r3, 0
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ mov r7, r9
+ ldr r1, [r7]
+ adds r1, r4
+ mov r0, sp
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_0809618C:
+ adds r4, 0x14
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ ble _08096140
+_08096198:
+ mov r1, r10
+ cmp r1, 0x2
+ ble _08096122
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961B0: .4byte gUnknown_203B490
+ thumb_func_end sub_8096114
+
+ thumb_func_start sub_80961B4
+sub_80961B4:
+ push {lr}
+ bl sub_8096E2C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080961CE
+ ldr r0, _080961D4
+ ldr r0, [r0]
+ movs r1, 0xCA
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080961CE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961D4: .4byte gUnknown_203B490
+ thumb_func_end sub_80961B4
+
+ thumb_func_start sub_80961D8
+sub_80961D8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ bl sub_8095F8C
+ adds r6, r0, 0
+ movs r1, 0x4
+ bl RandomRange
+ mov r8, r0
+ cmp r6, 0x3
+ bgt _08096202
+ ldr r4, _08096208
+ ldr r0, [r4]
+ movs r2, 0xCA
+ lsls r2, 2
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0809620C
+_08096202:
+ movs r0, 0
+ b _080963A8
+ .align 2, 0
+_08096208: .4byte gUnknown_203B490
+_0809620C:
+ strb r7, [r1]
+ movs r5, 0x38
+ movs r0, 0xA
+ movs r1, 0x31
+ movs r2, 0x1
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809623A
+ ldr r0, [r4]
+ ldr r1, _08096328
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809623A
+ movs r0, 0x35
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809623A
+ movs r5, 0x35
+_0809623A:
+ movs r0, 0xF
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809629C
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ movs r2, 0xC9
+ lsls r2, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096264
+ movs r0, 0x34
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096264
+ movs r5, 0x34
+_08096264:
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r1, _08096330
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096280
+ movs r0, 0x33
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096280
+ movs r5, 0x33
+_08096280:
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r2, _08096334
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809629C
+ movs r0, 0x32
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809629C
+ movs r5, 0x32
+_0809629C:
+ bl sub_8092178
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080962C4
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r1, _08096338
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080962C4
+ movs r0, 0x36
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080962C4
+ movs r5, 0x36
+_080962C4:
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080962EC
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r2, _0809633C
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080962EC
+ movs r0, 0x37
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080962EC
+ movs r5, 0x37
+_080962EC:
+ cmp r5, 0x38
+ bne _08096310
+ cmp r6, r8
+ bgt _08096392
+ bl sub_8096E2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0xE
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809630C
+ cmp r5, 0x2
+ bhi _0809638E
+_0809630C:
+ cmp r5, 0x31
+ bhi _0809638E
+_08096310:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ adds r4, r0, 0
+ movs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x62
+ strb r0, [r4, 0x4]
+ strb r5, [r4, 0x5]
+ b _0809638A
+ .align 2, 0
+_08096328: .4byte 0x00000325
+_0809632C: .4byte gUnknown_203B490
+_08096330: .4byte 0x00000323
+_08096334: .4byte 0x00000322
+_08096338: .4byte 0x00000326
+_0809633C: .4byte 0x00000327
+_08096340:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ adds r4, r0, 0
+ bl sub_8095B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096392
+ bl sub_8095E78
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0x4
+ ldrb r1, [r4, 0x1]
+ bl sub_803C1D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809636C
+ movs r5, 0
+_0809636C:
+ movs r0, 0x5
+ movs r1, 0xA
+ bl RandomRange
+ strb r0, [r4, 0x11]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bne _0809638A
+ cmp r5, 0
+ bne _08096388
+ movs r0, 0x5
+ strb r0, [r4, 0x11]
+ b _0809638A
+_08096388:
+ strb r5, [r4, 0x13]
+_0809638A:
+ movs r7, 0x1
+ adds r6, 0x1
+_0809638E:
+ cmp r6, r8
+ ble _08096340
+_08096392:
+ bl sub_80963B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809639E
+ movs r7, 0x1
+_0809639E:
+ bl sub_8096078
+ bl sub_8096114
+ adds r0, r7, 0
+_080963A8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80961D8
+
+ thumb_func_start sub_80963B4
+sub_80963B4:
+ push {r4-r6,lr}
+ movs r6, 0
+ bl sub_8096E2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8095F8C
+ adds r4, r0, 0
+ cmp r4, 0x3
+ ble _080963CE
+ movs r0, 0
+ b _080963F4
+_080963CE:
+ movs r0, 0xE
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080963F2
+ cmp r5, 0x31
+ bhi _080963F2
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r1, 0x62
+ strb r1, [r0, 0x4]
+ strb r5, [r0, 0x5]
+ movs r6, 0x1
+_080963F2:
+ adds r0, r6, 0
+_080963F4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80963B4
+
+ thumb_func_start sub_80963FC
+sub_80963FC:
+ push {r4-r6,lr}
+ movs r6, 0
+_08096400:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8095FE8
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _08096418
+ adds r0, r4, 0
+ bl sub_8096040
+_08096418:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08096400
+ bl sub_8096078
+ bl sub_8095F8C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ adds r5, r0, 0
+ movs r0, 0
+ movs r4, 0x5
+ strb r4, [r5]
+ strb r0, [r5, 0x1]
+ strb r0, [r5, 0x2]
+ movs r0, 0x2
+ strb r0, [r5, 0x4]
+ movs r0, 0x3
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096484
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r0, 0x10
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ ldrb r0, [r5, 0x4]
+ bl sub_8095F28
+ strb r0, [r5, 0x10]
+ strb r4, [r5, 0x11]
+_0809645C:
+ ldrb r1, [r5, 0x1]
+ adds r0, r5, 0x4
+ adds r2, r5, 0
+ adds r2, 0x12
+ bl sub_803C37C
+ ldrb r0, [r5, 0x10]
+ ldrb r1, [r5, 0x12]
+ cmp r0, r1
+ beq _0809645C
+ movs r0, 0
+ strb r0, [r5, 0x13]
+ bl sub_8096078
+ bl sub_8096114
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096484: .4byte 0x00ffffff
+ thumb_func_end sub_80963FC
+
+ thumb_func_start sub_8096488
+sub_8096488:
+ push {r4,lr}
+ movs r4, 0
+_0809648C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096040
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0809648C
+ movs r0, 0
+ bl sub_8095FE8
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r1, 0x62
+ strb r1, [r0, 0x4]
+ strb r2, [r0, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096488
+
+ thumb_func_start sub_80964B4
+sub_80964B4:
+ push {lr}
+ ldr r0, _080964D4
+ ldr r0, [r0]
+ ldr r1, _080964D8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080964DC
+ movs r0, 0x35
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080964DC
+ movs r0, 0
+ b _080964DE
+ .align 2, 0
+_080964D4: .4byte gUnknown_203B490
+_080964D8: .4byte 0x00000325
+_080964DC:
+ movs r0, 0x1
+_080964DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80964B4
+
+ thumb_func_start sub_80964E4
+sub_80964E4:
+ push {lr}
+ ldr r0, _08096504
+ ldr r0, [r0]
+ ldr r1, _08096508
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809650C
+ movs r0, 0x36
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809650C
+ movs r0, 0
+ b _0809650E
+ .align 2, 0
+_08096504: .4byte gUnknown_203B490
+_08096508: .4byte 0x00000326
+_0809650C:
+ movs r0, 0x1
+_0809650E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80964E4
+
+ thumb_func_start sub_8096514
+sub_8096514:
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_0809651A:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_809658C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809652A
+ adds r5, 0x1
+_0809652A:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _0809651A
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096514
+
+ thumb_func_start sub_8096538
+sub_8096538:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _08096560
+ movs r2, 0
+_08096542:
+ ldr r0, [r5]
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x50
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08096564
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ movs r0, 0
+ b _0809656E
+ .align 2, 0
+_08096560: .4byte gUnknown_203B490
+_08096564:
+ adds r2, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096542
+ movs r0, 0x1
+_0809656E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096538
+
+ thumb_func_start sub_8096574
+sub_8096574:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08096588
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, 0x50
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096588: .4byte gUnknown_203B490
+ thumb_func_end sub_8096574
+
+ thumb_func_start sub_809658C
+sub_809658C:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080965AC
+ ldr r2, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ adds r2, 0x50
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080965B0
+ movs r0, 0
+ b _080965B2
+ .align 2, 0
+_080965AC: .4byte gUnknown_203B490
+_080965B0:
+ movs r0, 0x1
+_080965B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809658C
+
+ thumb_func_start sub_80965B8
+sub_80965B8:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080965F0
+ ldr r1, [r4]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r2
+ adds r1, 0x50
+ movs r3, 0
+ strb r3, [r1]
+ ldr r0, [r4]
+ adds r0, r2
+ adds r0, 0x54
+ movs r1, 0x63
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r2
+ adds r0, 0x55
+ strb r3, [r0]
+ ldr r0, [r4]
+ adds r0, r2
+ adds r0, 0x61
+ strb r3, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080965F0: .4byte gUnknown_203B490
+ thumb_func_end sub_80965B8
+
+ thumb_func_start sub_80965F4
+sub_80965F4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _0809660C
+ mov r12, r0
+ mov r8, r3
+ movs r4, 0
+ mov r9, r4
+ b _08096636
+ .align 2, 0
+_0809660C: .4byte gUnknown_203B490
+_08096610:
+ cmp r2, r3
+ ble _0809662A
+ mov r1, r12
+ ldr r0, [r1]
+ mov r5, r8
+ adds r1, r0, r5
+ adds r0, r4
+ adds r1, 0x50
+ adds r0, 0x50
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_0809662A:
+ adds r4, 0x14
+ movs r0, 0x14
+ add r9, r0
+ adds r2, 0x1
+ add r8, r0
+ adds r3, 0x1
+_08096636:
+ cmp r2, 0x7
+ bgt _08096666
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096666
+ ldr r6, _08096694
+ mov r1, r9
+_0809664C:
+ adds r1, 0x14
+ adds r4, 0x14
+ movs r5, 0x14
+ add r9, r5
+ adds r2, 0x1
+ cmp r2, 0x7
+ bgt _08096666
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809664C
+_08096666:
+ cmp r2, 0x8
+ bne _08096610
+ cmp r3, 0x7
+ bgt _08096688
+ ldr r4, _08096694
+ movs r2, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 2
+_08096678:
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, 0x50
+ strb r2, [r0]
+ adds r1, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096678
+_08096688:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096694: .4byte gUnknown_203B490
+ thumb_func_end sub_80965F4
+
+ thumb_func_start sub_8096698
+sub_8096698:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r1, 0
+_080966A6:
+ adds r6, r1, 0x1
+ mov r10, r6
+ cmp r6, 0x7
+ bgt _08096730
+ ldr r0, _08096748
+ mov r8, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r9, r0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r4, r0, 2
+_080966C0:
+ mov r2, r8
+ ldr r1, [r2]
+ adds r3, r1, r4
+ adds r5, r3, 0
+ adds r5, 0x50
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08096724
+ add r1, r9
+ mov r12, r1
+ mov r0, r12
+ adds r0, 0x54
+ adds r1, r3, 0
+ adds r1, 0x54
+ ldrb r2, [r0]
+ ldrb r0, [r1]
+ cmp r2, r0
+ bhi _080966F6
+ cmp r2, r0
+ bne _08096724
+ mov r0, r12
+ adds r0, 0x55
+ adds r1, 0x1
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08096724
+_080966F6:
+ mov r1, sp
+ mov r0, r12
+ adds r0, 0x50
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r3,r7}
+ stm r1!, {r3,r7}
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r5, 0
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r7}
+ stm r1!, {r2,r7}
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r4
+ adds r1, 0x50
+ mov r0, sp
+ ldm r0!, {r2,r5,r7}
+ stm r1!, {r2,r5,r7}
+ ldm r0!, {r3,r5}
+ stm r1!, {r3,r5}
+_08096724:
+ adds r4, 0x14
+ movs r7, 0x1
+ add r10, r7
+ mov r0, r10
+ cmp r0, 0x7
+ ble _080966C0
+_08096730:
+ adds r1, r6, 0
+ cmp r1, 0x6
+ ble _080966A6
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096748: .4byte gUnknown_203B490
+ thumb_func_end sub_8096698
+
+ thumb_func_start sub_809674C
+sub_809674C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x4
+ movs r1, 0x8
+ bl RandomRange
+ mov r8, r0
+ ldr r3, _08096864
+ movs r2, 0
+ movs r1, 0
+ movs r7, 0x7
+_08096764:
+ ldr r0, [r3]
+ adds r0, r1
+ adds r0, 0x50
+ strb r2, [r0]
+ adds r1, 0x14
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08096764
+ movs r7, 0
+ movs r0, 0xE
+ bl sub_8097318
+ lsls r0, 24
+ cmp r0, 0
+ beq _080967C0
+ movs r0, 0
+ bl sub_8096574
+ adds r5, r0, 0
+ movs r4, 0x2
+ strb r4, [r5]
+ movs r0, 0x6
+ strb r0, [r5, 0x1]
+ movs r0, 0x1
+ strb r0, [r5, 0x2]
+ movs r0, 0x2A
+ strb r0, [r5, 0x4]
+ movs r0, 0xA
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096868
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r1, 0
+ movs r0, 0xC2
+ lsls r0, 1
+ strh r0, [r5, 0xC]
+ movs r0, 0x38
+ strh r0, [r5, 0xE]
+ strb r1, [r5, 0x10]
+ strb r4, [r5, 0x11]
+ movs r0, 0x3A
+ strb r0, [r5, 0x12]
+ strb r1, [r5, 0x13]
+ movs r7, 0x1
+_080967C0:
+ movs r0, 0xF
+ bl sub_8097318
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809680A
+ lsls r0, r7, 24
+ lsrs r0, 24
+ bl sub_8096574
+ adds r5, r0, 0
+ movs r0, 0x3
+ strb r0, [r5]
+ movs r0, 0x6
+ strb r0, [r5, 0x1]
+ movs r4, 0x2
+ strb r4, [r5, 0x2]
+ movs r0, 0x35
+ strb r0, [r5, 0x4]
+ movs r0, 0xF
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096868
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r1, 0
+ movs r0, 0x82
+ lsls r0, 1
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ strb r1, [r5, 0x10]
+ strb r4, [r5, 0x11]
+ movs r0, 0x3A
+ strb r0, [r5, 0x12]
+ strb r1, [r5, 0x13]
+ adds r7, 0x1
+_0809680A:
+ movs r0, 0x1C
+ bl sub_8097318
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096854
+ lsls r0, r7, 24
+ lsrs r0, 24
+ bl sub_8096574
+ adds r5, r0, 0
+ movs r0, 0x4
+ strb r0, [r5]
+ movs r0, 0x6
+ strb r0, [r5, 0x1]
+ movs r0, 0x3
+ strb r0, [r5, 0x2]
+ movs r0, 0x1A
+ strb r0, [r5, 0x4]
+ movs r0, 0x14
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096868
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r1, 0
+ ldr r0, _0809686C
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ strb r1, [r5, 0x10]
+ movs r0, 0x2
+ strb r0, [r5, 0x11]
+ movs r0, 0x3A
+ strb r0, [r5, 0x12]
+ strb r1, [r5, 0x13]
+ adds r7, 0x1
+_08096854:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 2
+ adds r5, r0, 0
+ adds r5, 0x50
+ adds r4, r0, 0
+ b _08096886
+ .align 2, 0
+_08096864: .4byte gUnknown_203B490
+_08096868: .4byte 0x00ffffff
+_0809686C: .4byte 0x0000014d
+_08096870:
+ movs r0, 0
+ movs r1, 0x4
+ bl RandomRange
+ ldr r1, [r6]
+ adds r1, r4
+ adds r1, 0x61
+ strb r0, [r1]
+ adds r5, 0x14
+ adds r4, 0x14
+ adds r7, 0x1
+_08096886:
+ cmp r7, r8
+ bgt _0809689A
+ ldr r6, _080968AC
+ ldr r0, [r6]
+ adds r0, r5
+ bl sub_8095B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096870
+_0809689A:
+ bl sub_80965F4
+ bl sub_8096698
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080968AC: .4byte gUnknown_203B490
+ thumb_func_end sub_809674C
+
+ thumb_func_start sub_80968B0
+sub_80968B0:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ ldr r0, _08096928
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xF0
+_080968BE:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0809692C
+ ldrb r0, [r3, 0x1]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x2]
+ ldrb r5, [r2, 0x2]
+ cmp r0, r5
+ bne _0809692C
+ ldrb r0, [r3, 0x4]
+ ldrb r1, [r2, 0x4]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x5]
+ ldrb r5, [r2, 0x5]
+ cmp r0, r5
+ bne _0809692C
+ ldr r1, [r3, 0x8]
+ ldr r0, [r2, 0x8]
+ cmp r1, r0
+ bne _0809692C
+ movs r0, 0xC
+ ldrsh r1, [r3, r0]
+ movs r5, 0xC
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ bne _0809692C
+ movs r0, 0xE
+ ldrsh r1, [r3, r0]
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ bne _0809692C
+ ldrb r0, [r3, 0x10]
+ ldrb r1, [r2, 0x10]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x11]
+ ldrb r5, [r2, 0x11]
+ cmp r0, r5
+ bne _0809692C
+ ldrb r0, [r3, 0x12]
+ ldrb r1, [r2, 0x12]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x13]
+ ldrb r5, [r2, 0x13]
+ cmp r0, r5
+ bne _0809692C
+ movs r0, 0x1
+ b _08096936
+ .align 2, 0
+_08096928: .4byte gUnknown_203B490
+_0809692C:
+ adds r2, 0x14
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080968BE
+ movs r0, 0
+_08096936:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80968B0
+
+ thumb_func_start sub_809693C
+sub_809693C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x4]
+ mov r9, r0
+ ldrb r0, [r4, 0x5]
+ mov r8, r0
+ movs r7, 0
+ adds r0, r4, 0
+ bl sub_80959C0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096962
+ b _0809699A
+_0809695E:
+ movs r0, 0x1
+ b _0809699C
+_08096962:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _0809696A
+ movs r7, 0x1
+_0809696A:
+ movs r6, 0
+ movs r5, 0xF0
+ movs r4, 0
+_08096970:
+ ldr r0, _080969A8
+ ldr r1, [r0]
+ adds r0, r1, r4
+ adds r0, 0xF0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08096990
+ adds r0, r1, r5
+ mov r1, r9
+ mov r2, r8
+ adds r3, r7, 0
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809695E
+_08096990:
+ adds r5, 0x14
+ adds r4, 0x14
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08096970
+_0809699A:
+ movs r0, 0
+_0809699C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080969A8: .4byte gUnknown_203B490
+ thumb_func_end sub_809693C
+
+ thumb_func_start sub_80969AC
+sub_80969AC:
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_080969B2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096ACC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080969C2
+ adds r5, 0x1
+_080969C2:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080969B2
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80969AC
+
+ thumb_func_start sub_80969D0
+sub_80969D0:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r4, 0
+_080969DA:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x4]
+ cmp r0, r6
+ bne _080969FA
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ beq _080969F8
+ cmp r0, 0x8
+ beq _080969F8
+ cmp r0, 0x9
+ bne _080969FA
+_080969F8:
+ adds r5, 0x1
+_080969FA:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080969DA
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80969D0
+
+ thumb_func_start sub_8096A08
+sub_8096A08:
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_08096A14:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, r5
+ bne _08096A68
+ ldrb r0, [r2]
+ cmp r0, 0x6
+ bne _08096A68
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x2
+ bne _08096A68
+ ldr r1, _08096A60
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ movs r1, 0x4A
+ orrs r0, r1
+ ldr r1, _08096A64
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ add r0, sp, 0x8
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_808CFD0
+ movs r0, 0x1
+ b _08096A70
+ .align 2, 0
+_08096A60: .4byte 0xffffff00
+_08096A64: .4byte 0xffff00ff
+_08096A68:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08096A14
+ movs r0, 0
+_08096A70:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096A08
+
+ thumb_func_start sub_8096A78
+sub_8096A78:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _08096AA0
+ movs r2, 0
+_08096A82:
+ ldr r0, [r5]
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0xF0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08096AA4
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ movs r0, 0
+ b _08096AAE
+ .align 2, 0
+_08096AA0: .4byte gUnknown_203B490
+_08096AA4:
+ adds r2, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096A82
+ movs r0, 0x1
+_08096AAE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096A78
+
+ thumb_func_start sub_8096AB4
+sub_8096AB4:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08096AC8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, 0xF0
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096AC8: .4byte gUnknown_203B490
+ thumb_func_end sub_8096AB4
+
+ thumb_func_start sub_8096ACC
+sub_8096ACC:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08096AEC
+ ldr r2, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ adds r2, 0xF0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08096AF0
+ movs r0, 0
+ b _08096AF2
+ .align 2, 0
+_08096AEC: .4byte gUnknown_203B490
+_08096AF0:
+ movs r0, 0x1
+_08096AF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096ACC
+
+ thumb_func_start sub_8096AF8
+sub_8096AF8:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r0, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8096AB4
+ adds r3, r0, 0
+ movs r1, 0
+ strb r1, [r5]
+ ldrh r0, [r3, 0xC]
+ strh r0, [r5, 0x2]
+ strh r1, [r5, 0x4]
+ ldrb r0, [r3, 0x4]
+ cmp r0, r4
+ bne _08096B92
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x4
+ bhi _08096B92
+ lsls r0, 2
+ ldr r1, _08096B30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096B30: .4byte _08096B34
+ .align 2, 0
+_08096B34:
+ .4byte _08096B78
+ .4byte _08096B84
+ .4byte _08096B84
+ .4byte _08096B48
+ .4byte _08096B78
+_08096B48:
+ ldrb r0, [r3]
+ cmp r0, 0x6
+ bne _08096B92
+ ldr r0, _08096B74
+ movs r6, 0x1
+ ldr r2, [r0]
+ movs r4, 0x13
+_08096B56:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08096B6A
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r3, 0x10]
+ cmp r0, r1
+ bne _08096B6A
+ strb r6, [r5]
+_08096B6A:
+ adds r2, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096B56
+ b _08096B92
+ .align 2, 0
+_08096B74: .4byte gUnknown_203B460
+_08096B78:
+ ldrb r0, [r3]
+ cmp r0, 0x9
+ bne _08096B92
+ movs r0, 0x1
+ strb r0, [r5]
+ b _08096B92
+_08096B84:
+ ldrb r0, [r3]
+ cmp r0, 0x9
+ bne _08096B92
+ movs r0, 0x1
+ strb r0, [r5]
+ ldrh r0, [r3, 0xE]
+ strh r0, [r5, 0x4]
+_08096B92:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096AF8
+
+ thumb_func_start sub_8096B98
+sub_8096B98:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_08096BA0:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _08096BC2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x2
+ bne _08096BC2
+ ldrb r0, [r1, 0x4]
+ cmp r0, r5
+ bne _08096BC2
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ b _08096BCA
+_08096BC2:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08096BA0
+ movs r0, 0
+_08096BCA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096B98
+
+ thumb_func_start sub_8096BD0
+sub_8096BD0:
+ push {r4,r5,lr}
+ ldr r0, _08096C04
+ ldr r0, [r0]
+ adds r5, r0, 0
+ adds r5, 0xF0
+ movs r4, 0
+_08096BDC:
+ ldrb r0, [r5]
+ cmp r0, 0x9
+ bgt _08096BEE
+ cmp r0, 0x7
+ blt _08096BEE
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096C3C
+_08096BEE:
+ adds r5, 0x14
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08096BDC
+ bl sub_8096C80
+ bl sub_8096D24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C04: .4byte gUnknown_203B490
+ thumb_func_end sub_8096BD0
+
+ thumb_func_start sub_8096C08
+sub_8096C08:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _08096C28
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ movs r2, 0
+_08096C16:
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bls _08096C2C
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x4
+ bne _08096C2C
+ strb r2, [r3]
+ movs r0, 0x1
+ b _08096C36
+ .align 2, 0
+_08096C28: .4byte gUnknown_203B490
+_08096C2C:
+ adds r1, 0x14
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08096C16
+ movs r0, 0
+_08096C36:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096C08
+
+ thumb_func_start sub_8096C3C
+sub_8096C3C:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08096C78
+ ldr r1, [r3]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r2
+ adds r1, 0xF0
+ movs r4, 0
+ strb r4, [r1]
+ ldr r0, [r3]
+ adds r0, r2
+ adds r0, 0xF4
+ movs r1, 0x63
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, r2
+ adds r0, 0xF5
+ strb r4, [r0]
+ ldr r0, [r3]
+ adds r0, r2
+ ldr r2, _08096C7C
+ adds r1, r0, r2
+ movs r0, 0x5
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C78: .4byte gUnknown_203B490
+_08096C7C: .4byte 0x00000101
+ thumb_func_end sub_8096C3C
+
+ thumb_func_start sub_8096C80
+sub_8096C80:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _08096C98
+ mov r12, r0
+ mov r8, r3
+ movs r4, 0
+ mov r9, r4
+ b _08096CC2
+ .align 2, 0
+_08096C98: .4byte gUnknown_203B490
+_08096C9C:
+ cmp r2, r3
+ ble _08096CB6
+ mov r1, r12
+ ldr r0, [r1]
+ mov r5, r8
+ adds r1, r0, r5
+ adds r0, r4
+ adds r1, 0xF0
+ adds r0, 0xF0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_08096CB6:
+ adds r4, 0x14
+ movs r0, 0x14
+ add r9, r0
+ adds r2, 0x1
+ add r8, r0
+ adds r3, 0x1
+_08096CC2:
+ cmp r2, 0x7
+ bgt _08096CF2
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, 0xF0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096CF2
+ ldr r6, _08096D20
+ mov r1, r9
+_08096CD8:
+ adds r1, 0x14
+ adds r4, 0x14
+ movs r5, 0x14
+ add r9, r5
+ adds r2, 0x1
+ cmp r2, 0x7
+ bgt _08096CF2
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0xF0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096CD8
+_08096CF2:
+ cmp r2, 0x8
+ bne _08096C9C
+ cmp r3, 0x7
+ bgt _08096D14
+ ldr r4, _08096D20
+ movs r2, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 2
+_08096D04:
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, 0xF0
+ strb r2, [r0]
+ adds r1, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096D04
+_08096D14:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096D20: .4byte gUnknown_203B490
+ thumb_func_end sub_8096C80
+
+ thumb_func_start sub_8096D24
+sub_8096D24:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r1, 0
+_08096D32:
+ adds r6, r1, 0x1
+ mov r10, r6
+ cmp r6, 0x7
+ bgt _08096DBC
+ ldr r0, _08096DD4
+ mov r8, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r9, r0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r4, r0, 2
+_08096D4C:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r3, r2, r4
+ adds r5, r3, 0
+ adds r5, 0xF0
+ str r5, [sp, 0x14]
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08096DB0
+ add r2, r9
+ mov r12, r2
+ mov r0, r12
+ adds r0, 0xF4
+ adds r1, r3, 0
+ adds r1, 0xF4
+ ldrb r2, [r0]
+ ldrb r0, [r1]
+ cmp r2, r0
+ bhi _08096D84
+ cmp r2, r0
+ bne _08096DB0
+ mov r0, r12
+ adds r0, 0xF5
+ adds r1, 0x1
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08096DB0
+_08096D84:
+ mov r2, r12
+ adds r2, 0xF0
+ mov r1, sp
+ adds r0, r2, 0
+ ldm r0!, {r3,r5,r7}
+ stm r1!, {r3,r5,r7}
+ ldm r0!, {r3,r7}
+ stm r1!, {r3,r7}
+ ldr r0, [sp, 0x14]
+ ldm r0!, {r1,r5,r7}
+ stm r2!, {r1,r5,r7}
+ ldm r0!, {r3,r5}
+ stm r2!, {r3,r5}
+ mov r7, r8
+ ldr r1, [r7]
+ adds r1, r4
+ adds r1, 0xF0
+ mov r0, sp
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r7}
+ stm r1!, {r2,r7}
+_08096DB0:
+ adds r4, 0x14
+ movs r3, 0x1
+ add r10, r3
+ mov r5, r10
+ cmp r5, 0x7
+ ble _08096D4C
+_08096DBC:
+ adds r1, r6, 0
+ cmp r1, 0x6
+ ble _08096D32
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096DD4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096D24
+
+ thumb_func_start sub_8096DD8
+sub_8096DD8:
+ ldr r0, _08096DE4
+ ldr r0, [r0]
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096DE4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096DD8
+
+ thumb_func_start sub_8096DE8
+sub_8096DE8:
+ ldr r0, _08096DF4
+ ldr r0, [r0]
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096DF4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096DE8
+
+ thumb_func_start sub_8096DF8
+sub_8096DF8:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08096E10
+ ldr r1, [r1]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08096E10: .4byte gUnknown_203B490
+ thumb_func_end sub_8096DF8
+
+ thumb_func_start sub_8096E14
+sub_8096E14:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08096E28
+ ldr r1, [r1]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ bx lr
+ .align 2, 0
+_08096E28: .4byte gUnknown_203B490
+ thumb_func_end sub_8096E14
+
+ thumb_func_start sub_8096E2C
+sub_8096E2C:
+ push {lr}
+ movs r3, 0
+ ldr r0, _08096E70
+ ldr r1, [r0]
+ movs r2, 0x3
+_08096E36:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _08096E48
+ ldrb r0, [r1, 0x5]
+ cmp r3, r0
+ bgt _08096E48
+ cmp r0, 0x31
+ bhi _08096E48
+ adds r3, r0, 0x1
+_08096E48:
+ adds r1, 0x14
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08096E36
+ adds r2, r3, 0
+ cmp r2, 0x31
+ bgt _08096E7A
+ ldr r0, _08096E70
+ ldr r0, [r0]
+ movs r3, 0xBC
+ lsls r3, 2
+ adds r1, r0, r3
+_08096E60:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096E74
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _08096E7C
+ .align 2, 0
+_08096E70: .4byte gUnknown_203B490
+_08096E74:
+ adds r2, 0x1
+ cmp r2, 0x31
+ ble _08096E60
+_08096E7A:
+ movs r0, 0x38
+_08096E7C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096E2C
+
+ thumb_func_start sub_8096E80
+sub_8096E80:
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08096E9C
+ ldr r1, [r0]
+_08096E8C:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _08096EA0
+ ldrb r0, [r1, 0x5]
+ cmp r3, r0
+ bne _08096EA0
+ movs r0, 0x1
+ b _08096EAA
+ .align 2, 0
+_08096E9C: .4byte gUnknown_203B490
+_08096EA0:
+ adds r1, 0x14
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08096E8C
+ movs r0, 0
+_08096EAA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096E80
+
+ thumb_func_start sub_8096EB0
+sub_8096EB0:
+ ldrb r1, [r0, 0x2]
+ ldrb r2, [r0, 0x1]
+ adds r1, r2
+ ldrb r3, [r0, 0x4]
+ adds r2, r1, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1
+ ldr r1, [r0, 0x8]
+ lsls r1, 8
+ adds r2, r1
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ lsls r1, 12
+ adds r2, r1
+ movs r3, 0xE
+ ldrsh r1, [r0, r3]
+ lsls r1, 16
+ adds r2, r1
+ ldrb r1, [r0, 0x10]
+ lsls r1, 24
+ adds r1, r2, r1
+ ldrb r3, [r0, 0x11]
+ adds r2, r1, r3
+ ldrb r1, [r0, 0x12]
+ adds r1, r2, r1
+ ldrb r0, [r0, 0x13]
+ adds r2, r1, r0
+ adds r0, r2, 0
+ bx lr
+ thumb_func_end sub_8096EB0
+
+ thumb_func_start sub_8096EEC
+sub_8096EEC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ movs r3, 0xF
+ ldr r5, _08096F4C
+ mov r8, r5
+ movs r4, 0x8C
+ lsls r4, 2
+_08096EFE:
+ mov r0, r8
+ ldr r2, [r0]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2, r1
+ subs r3, 0x1
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0
+ adds r1, r4
+ adds r2, r4
+ ldm r2!, {r0,r6,r7}
+ stm r1!, {r0,r6,r7}
+ cmp r3, 0
+ bgt _08096EFE
+ ldr r2, [r5]
+ movs r3, 0x8C
+ lsls r3, 2
+ adds r2, r3
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ ldr r1, [r6, 0x8]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ mov r0, r12
+ bl sub_8096EB0
+ ldr r1, [r5]
+ movs r7, 0x8E
+ lsls r7, 2
+ adds r1, r7
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096F4C: .4byte gUnknown_203B490
+ thumb_func_end sub_8096EEC
+
+ thumb_func_start sub_8096F50
+sub_8096F50:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ bl sub_8096EB0
+ mov r12, r0
+ movs r5, 0
+ ldr r0, _08096F8C
+ ldr r7, [r0]
+ ldrb r6, [r4, 0x4]
+ movs r3, 0
+_08096F64:
+ movs r1, 0x8C
+ lsls r1, 2
+ adds r0, r3, r1
+ adds r2, r7, r0
+ ldrb r0, [r2]
+ cmp r0, r6
+ bne _08096F90
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r4, 0x5]
+ cmp r0, r1
+ bne _08096F90
+ ldr r1, [r2, 0x4]
+ ldr r0, [r4, 0x8]
+ cmp r1, r0
+ bne _08096F90
+ ldr r0, [r2, 0x8]
+ cmp r0, r12
+ bne _08096F90
+ movs r0, 0x1
+ b _08096F9A
+ .align 2, 0
+_08096F8C: .4byte gUnknown_203B490
+_08096F90:
+ adds r3, 0xC
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08096F64
+ movs r0, 0
+_08096F9A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096F50
+
+ thumb_func_start sub_8096FA0
+sub_8096FA0:
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ add r7, sp, 0x10
+ ldr r6, _08097020
+ movs r5, 0
+ movs r4, 0x3
+_08096FB8:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80971EC
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096FB8
+ ldr r6, _08097020
+ movs r5, 0x50
+ movs r4, 0x7
+_08096FD0:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80971EC
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096FD0
+ ldr r6, _08097020
+ movs r5, 0xF0
+ movs r4, 0x7
+_08096FE8:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80971EC
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096FE8
+ movs r4, 0
+ movs r6, 0x1
+ ldr r5, _08097020
+_08097000:
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r1, [sp, 0x10]
+ ands r1, r6
+ cmp r1, 0
+ beq _08097024
+ ldr r0, [r5]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r1
+ adds r0, r4
+ strb r6, [r0]
+ b _08097030
+ .align 2, 0
+_08097020: .4byte gUnknown_203B490
+_08097024:
+ ldr r0, [r5]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r0, r2
+ adds r0, r4
+ strb r1, [r0]
+_08097030:
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _08097000
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r1, [sp, 0x10]
+ movs r2, 0x1
+ ands r1, r2
+ cmp r1, 0
+ beq _0809705C
+ ldr r0, _08097058
+ ldr r0, [r0]
+ movs r1, 0xCA
+ lsls r1, 2
+ adds r0, r1
+ strb r2, [r0]
+ b _08097068
+ .align 2, 0
+_08097058: .4byte gUnknown_203B490
+_0809705C:
+ ldr r0, _080970D4
+ ldr r0, [r0]
+ movs r2, 0xCA
+ lsls r2, 2
+ adds r0, r2
+ strb r1, [r0]
+_08097068:
+ ldr r4, _080970D4
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r2, 0xA0
+ lsls r2, 1
+ mov r0, sp
+ bl sub_8094924
+ ldr r1, [r4]
+ movs r2, 0xDC
+ lsls r2, 1
+ adds r1, r2
+ movs r2, 0xF0
+ lsls r2, 2
+ mov r0, sp
+ bl sub_8094924
+ adds r6, r4, 0
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0xF
+_08097096:
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x8
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_8094924
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x4
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8090314
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08097096
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080970D4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096FA0
+
+ thumb_func_start sub_80970D8
+sub_80970D8:
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ add r7, sp, 0x10
+ ldr r6, _080971E8
+ movs r5, 0
+ movs r4, 0x3
+_080970F0:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8097270
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080970F0
+ ldr r6, _080971E8
+ movs r5, 0x50
+ movs r4, 0x7
+_08097108:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8097270
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08097108
+ ldr r6, _080971E8
+ movs r5, 0xF0
+ movs r4, 0x7
+_08097120:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8097270
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08097120
+ movs r4, 0
+_08097134:
+ ldr r0, _080971E8
+ ldr r0, [r0]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809714A
+ movs r0, 0x1
+ negs r0, r0
+_0809714A:
+ str r0, [sp, 0x10]
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _08097134
+ ldr r0, _080971E8
+ ldr r0, [r0]
+ movs r1, 0xCA
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097170
+ movs r0, 0x1
+ negs r0, r0
+_08097170:
+ str r0, [sp, 0x10]
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r4, _080971E8
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r2, 0xA0
+ lsls r2, 1
+ mov r0, sp
+ bl sub_809488C
+ ldr r1, [r4]
+ movs r0, 0xDC
+ lsls r0, 1
+ adds r1, r0
+ movs r2, 0xF0
+ lsls r2, 2
+ mov r0, sp
+ bl sub_809488C
+ adds r6, r4, 0
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0xF
+_080971AA:
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x8
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_809488C
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x4
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80902F4
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080971AA
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080971E8: .4byte gUnknown_203B490
+ thumb_func_end sub_80970D8
+
+ thumb_func_start sub_80971EC
+sub_80971EC:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x3
+ bl sub_8094924
+ adds r1, r5, 0x2
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0xE
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x12
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x13
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ movs r2, 0x18
+ bl sub_8094924
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ bl sub_8090314
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80971EC
+
+ thumb_func_start sub_8097270
+sub_8097270:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x3
+ bl sub_809488C
+ adds r1, r5, 0x2
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0xE
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x12
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x13
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ movs r2, 0x18
+ bl sub_809488C
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ bl sub_80902F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8097270
+
+ thumb_func_start sub_80972F4
+sub_80972F4:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x2B
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2C
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2D
+ bl sub_80015C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80972F4
+
+ thumb_func_start nullsub_128
+nullsub_128:
+ bx lr
+ thumb_func_end nullsub_128
+
+ thumb_func_start sub_8097318
+sub_8097318:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _08097326
+ movs r0, 0
+ b _08097338
+_08097326:
+ lsls r2, r0, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2B
+ bl sub_8001784
+ cmp r0, 0
+ beq _08097338
+ movs r0, 0x1
+_08097338:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097318
+
+ thumb_func_start sub_809733C
+sub_809733C:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r4, 0xD
+ beq _0809737C
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ movs r0, 0
+ movs r1, 0x2C
+ adds r2, r5, 0
+ bl sub_8001784
+ cmp r0, 0
+ bne _0809737C
+ movs r0, 0
+ movs r1, 0x2B
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_800199C
+ cmp r6, 0
+ beq _0809737C
+ cmp r4, 0xE
+ blt _0809737C
+ cmp r4, 0xF
+ ble _08097378
+ cmp r4, 0x1C
+ bne _0809737C
+_08097378:
+ bl sub_809674C
+_0809737C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809733C
+
+ thumb_func_start sub_8097384
+sub_8097384:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _08097392
+ movs r0, 0
+ b _080973A4
+_08097392:
+ lsls r2, r0, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2C
+ bl sub_8001784
+ cmp r0, 0
+ beq _080973A4
+ movs r0, 0x1
+_080973A4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097384
+
+ thumb_func_start sub_80973A8
+sub_80973A8:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r0, 0xD
+ beq _080973EE
+ lsls r5, r0, 16
+ cmp r6, 0
+ beq _080973E2
+ bl sub_80A26B8
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsrs r2, r5, 16
+ movs r0, 0
+ movs r1, 0x2B
+ movs r3, 0
+ bl sub_800199C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _080973E2
+ movs r0, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl sub_80018D8
+_080973E2:
+ lsrs r2, r5, 16
+ movs r0, 0
+ movs r1, 0x2C
+ adds r3, r6, 0
+ bl sub_800199C
+_080973EE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80973A8
+
+ thumb_func_start sub_80973F4
+sub_80973F4:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _08097402
+ movs r0, 0
+ b _08097414
+_08097402:
+ lsls r2, r0, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2D
+ bl sub_8001784
+ cmp r0, 0
+ beq _08097414
+ movs r0, 0x1
+_08097414:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80973F4
+
+ thumb_func_start sub_8097418
+sub_8097418:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r5, 0xD
+ beq _08097470
+ lsls r6, r5, 16
+ cmp r7, 0
+ beq _08097464
+ lsrs r2, r6, 16
+ movs r0, 0
+ movs r1, 0x2C
+ movs r3, 0
+ bl sub_800199C
+ cmp r5, 0x1E
+ bgt _08097464
+ lsls r0, r5, 3
+ ldr r1, _08097478
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0xFF
+ beq _0809744C
+ bl sub_8097FA8
+_0809744C:
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0xFF
+ beq _08097456
+ bl sub_8097FA8
+_08097456:
+ cmp r5, 0x9
+ bne _08097460
+ movs r0, 0x1F
+ bl sub_8097FA8
+_08097460:
+ bl sub_8097FF8
+_08097464:
+ lsrs r2, r6, 16
+ movs r0, 0
+ movs r1, 0x2D
+ adds r3, r7, 0
+ bl sub_800199C
+_08097470:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097478: .4byte gUnknown_8109994
+ thumb_func_end sub_8097418
+
+ thumb_func_start sub_809747C
+sub_809747C:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ beq _08097494
+ bl sub_80A270C
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetDungeonName1
+ b _08097496
+_08097494:
+ ldr r0, _0809749C
+_08097496:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809749C: .4byte gUnknown_8109CA8
+ thumb_func_end sub_809747C
+
+ thumb_func_start sub_80974A0
+sub_80974A0:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ beq _080974B8
+ bl sub_80A270C
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetDungeonName1
+ b _080974BA
+_080974B8:
+ ldr r0, _080974C0
+_080974BA:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080974C0: .4byte gUnknown_8109CA8
+ thumb_func_end sub_80974A0
+
+ thumb_func_start sub_80974C4
+sub_80974C4:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080974D8
+ ldr r0, _080974D4
+ b _080974E0
+ .align 2, 0
+_080974D4: .4byte gUnknown_8109CC0
+_080974D8:
+ lsls r0, 3
+ ldr r1, _080974E4
+ adds r0, r1
+ ldr r0, [r0]
+_080974E0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080974E4: .4byte gUnknown_8109994
+ thumb_func_end sub_80974C4
+
+ thumb_func_start sub_80974E8
+sub_80974E8:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x2E
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2F
+ bl sub_80015C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80974E8
+
+ thumb_func_start nullsub_208
+nullsub_208:
+ bx lr
+ thumb_func_end nullsub_208
+
+ thumb_func_start sub_8097504
+sub_8097504:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0x10
+ bgt _08097568
+ cmp r0, 0xE
+ bhi _08097580
+ lsls r0, 2
+ ldr r1, _08097520
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097520: .4byte _08097524
+ .align 2, 0
+_08097524:
+ .4byte _08097564
+ .4byte _08097564
+ .4byte _08097560
+ .4byte _08097580
+ .4byte _08097580
+ .4byte _08097564
+ .4byte _08097580
+ .4byte _08097564
+ .4byte _08097580
+ .4byte _08097564
+ .4byte _08097560
+ .4byte _08097560
+ .4byte _08097560
+ .4byte _08097574
+ .4byte _08097564
+_08097560:
+ movs r0, 0xE
+ b _08097576
+_08097564:
+ movs r0, 0xF
+ b _08097576
+_08097568:
+ cmp r1, 0x16
+ bgt _08097584
+ cmp r1, 0x16
+ beq _08097584
+ cmp r1, 0x15
+ beq _08097584
+_08097574:
+ movs r0, 0x6
+_08097576:
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097584
+_08097580:
+ movs r0, 0x1
+ b _08097586
+_08097584:
+ movs r0, 0
+_08097586:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097504
+
+ thumb_func_start sub_809758C
+sub_809758C:
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2E
+ bl sub_8001784
+ cmp r0, 0
+ beq _080975A2
+ movs r0, 0x1
+_080975A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809758C
+
+ thumb_func_start sub_80975A8
+sub_80975A8:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2E
+ bl sub_800199C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80975A8
+
+ thumb_func_start sub_80975C4
+sub_80975C4:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2728
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetDungeonName1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80975C4
+
+ thumb_func_start sub_80975DC
+sub_80975DC:
+ push {lr}
+ lsls r0, 16
+ ldr r1, _08097600
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _08097610
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0xE
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097608
+ ldr r0, _08097604
+ b _08097612
+ .align 2, 0
+_08097600: .4byte 0xffe90000
+_08097604: .4byte gUnknown_8109CD4
+_08097608:
+ ldr r0, _0809760C
+ b _08097612
+ .align 2, 0
+_0809760C: .4byte gUnknown_8109CE4
+_08097610:
+ ldr r0, _08097618
+_08097612:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08097618: .4byte gUnknown_8109CF4
+ thumb_func_end sub_80975DC
+
+ thumb_func_start sub_809761C
+sub_809761C:
+ push {r4,lr}
+ movs r4, 0
+_08097620:
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_809758C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097632
+ movs r0, 0
+ b _0809763A
+_08097632:
+ adds r4, 0x1
+ cmp r4, 0x10
+ ble _08097620
+ movs r0, 0x1
+_0809763A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809761C
+
+ thumb_func_start sub_8097640
+sub_8097640:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x2E
+ movs r2, 0x1F
+ bl sub_8001784
+ cmp r0, 0
+ bne _0809766A
+ bl sub_809761C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809766A
+ movs r0, 0
+ movs r1, 0x2E
+ movs r2, 0x1F
+ movs r3, 0x1
+ bl sub_800199C
+ movs r0, 0x1
+ b _0809766C
+_0809766A:
+ movs r0, 0
+_0809766C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097640
+
+ thumb_func_start sub_8097670
+sub_8097670:
+ ldr r1, _08097678
+ ldr r0, _0809767C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08097678: .4byte gUnknown_203B494
+_0809767C: .4byte gUnknown_2039778
+ thumb_func_end sub_8097670
+
+ thumb_func_start sub_8097680
+sub_8097680:
+ ldr r0, _08097684
+ bx lr
+ .align 2, 0
+_08097684: .4byte gUnknown_2039778
+ thumb_func_end sub_8097680
+
+ thumb_func_start sub_8097688
+sub_8097688:
+ ldr r3, _08097698
+ ldr r2, [r3]
+ ldrb r1, [r0]
+ strb r1, [r2, 0x10]
+ ldr r1, [r3]
+ ldrb r0, [r0, 0x1]
+ strb r0, [r1, 0x11]
+ bx lr
+ .align 2, 0
+_08097698: .4byte gUnknown_203B494
+ thumb_func_end sub_8097688
+
+ thumb_func_start sub_809769C
+sub_809769C:
+ ldr r0, _080976A4
+ ldr r0, [r0]
+ adds r0, 0x10
+ bx lr
+ .align 2, 0
+_080976A4: .4byte gUnknown_203B494
+ thumb_func_end sub_809769C
+
+ thumb_func_start sub_80976A8
+sub_80976A8:
+ push {r4,lr}
+ ldr r3, _080976F4
+ ldr r1, [r3]
+ movs r0, 0
+ str r0, [r1]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ adds r2, r1, 0
+ adds r2, 0xC0
+ str r0, [r2]
+ str r0, [r1, 0x8]
+ str r0, [r1, 0xC]
+ movs r2, 0
+ adds r4, r3, 0
+ movs r3, 0
+_080976C8:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0x1C
+ adds r0, r1
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0xD
+ ble _080976C8
+ movs r2, 0
+ ldr r4, _080976F4
+ movs r3, 0
+_080976DE:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0x8C
+ adds r0, r1
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0xC
+ ble _080976DE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080976F4: .4byte gUnknown_203B494
+ thumb_func_end sub_80976A8
+
+ thumb_func_start sub_80976F8
+sub_80976F8:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809770C
+ ldr r2, [r1]
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_0809770C: .4byte gUnknown_203B494
+ thumb_func_end sub_80976F8
+
+ thumb_func_start sub_8097710
+sub_8097710:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809772C
+ ldr r2, [r1]
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _08097730
+ movs r0, 0
+ b _08097732
+ .align 2, 0
+_0809772C: .4byte gUnknown_203B494
+_08097730:
+ movs r0, 0x1
+_08097732:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097710
+
+ thumb_func_start sub_8097738
+sub_8097738:
+ lsls r0, 24
+ ldr r1, _08097744
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08097744: .4byte gUnknown_810B04C
+ thumb_func_end sub_8097738
+
+ thumb_func_start sub_8097748
+sub_8097748:
+ ldr r0, _08097754
+ ldr r1, [r0]
+ movs r0, 0
+ str r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_08097754: .4byte gUnknown_203B494
+ thumb_func_end sub_8097748
+
+ thumb_func_start sub_8097758
+sub_8097758:
+ push {lr}
+ ldr r0, _08097770
+ ldr r1, [r0]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x1
+ str r0, [r1, 0x4]
+ ldr r2, _08097774
+ cmp r0, r2
+ ble _0809776C
+ str r2, [r1, 0x4]
+_0809776C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097770: .4byte gUnknown_203B494
+_08097774: .4byte 0x0001869f
+ thumb_func_end sub_8097758
+
+ thumb_func_start sub_8097778
+sub_8097778:
+ ldr r0, _08097780
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_08097780: .4byte gUnknown_203B494
+ thumb_func_end sub_8097778
+
+ thumb_func_start sub_8097784
+sub_8097784:
+ ldr r1, _0809778C
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_0809778C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097784
+
+ thumb_func_start sub_8097790
+sub_8097790:
+ push {lr}
+ ldr r0, _080977B0
+ ldr r1, [r0]
+ ldr r0, [r1, 0x8]
+ adds r0, 0x1
+ str r0, [r1, 0x8]
+ ldr r2, _080977B4
+ cmp r0, r2
+ ble _080977A4
+ str r2, [r1, 0x8]
+_080977A4:
+ movs r0, 0x8
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080977B0: .4byte gUnknown_203B494
+_080977B4: .4byte 0x0001869f
+ thumb_func_end sub_8097790
+
+ thumb_func_start sub_80977B8
+sub_80977B8:
+ ldr r0, _080977C0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_080977C0: .4byte gUnknown_203B494
+ thumb_func_end sub_80977B8
+
+ thumb_func_start sub_80977C4
+sub_80977C4:
+ ldr r1, _080977CC
+ ldr r1, [r1]
+ str r0, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_080977CC: .4byte gUnknown_203B494
+ thumb_func_end sub_80977C4
+
+ thumb_func_start sub_80977D0
+sub_80977D0:
+ push {lr}
+ ldr r0, _080977F0
+ ldr r1, [r0]
+ ldr r0, [r1, 0xC]
+ adds r0, 0x1
+ str r0, [r1, 0xC]
+ ldr r2, _080977F4
+ cmp r0, r2
+ ble _080977E4
+ str r2, [r1, 0xC]
+_080977E4:
+ movs r0, 0x9
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080977F0: .4byte gUnknown_203B494
+_080977F4: .4byte 0x0001869f
+ thumb_func_end sub_80977D0
+
+ thumb_func_start sub_80977F8
+sub_80977F8:
+ ldr r0, _08097800
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_08097800: .4byte gUnknown_203B494
+ thumb_func_end sub_80977F8
+
+ thumb_func_start sub_8097804
+sub_8097804:
+ ldr r1, _0809780C
+ ldr r1, [r1]
+ str r0, [r1, 0xC]
+ bx lr
+ .align 2, 0
+_0809780C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097804
+
+ thumb_func_start sub_8097810
+sub_8097810:
+ push {lr}
+ ldr r0, _08097830
+ ldr r2, [r0]
+ ldrh r3, [r2, 0x14]
+ movs r0, 0x14
+ ldrsh r1, [r2, r0]
+ ldr r0, _08097834
+ cmp r1, r0
+ bgt _08097826
+ adds r0, r3, 0x1
+ strh r0, [r2, 0x14]
+_08097826:
+ movs r0, 0xB
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097830: .4byte gUnknown_203B494
+_08097834: .4byte 0x0000270e
+ thumb_func_end sub_8097810
+
+ thumb_func_start sub_8097838
+sub_8097838:
+ ldr r0, _08097844
+ ldr r0, [r0]
+ movs r1, 0x14
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08097844: .4byte gUnknown_203B494
+ thumb_func_end sub_8097838
+
+ thumb_func_start sub_8097848
+sub_8097848:
+ push {lr}
+ ldr r0, _08097868
+ ldr r2, [r0]
+ ldrh r3, [r2, 0x16]
+ movs r0, 0x16
+ ldrsh r1, [r2, r0]
+ ldr r0, _0809786C
+ cmp r1, r0
+ bgt _0809785E
+ adds r0, r3, 0x1
+ strh r0, [r2, 0x16]
+_0809785E:
+ movs r0, 0xA
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097868: .4byte gUnknown_203B494
+_0809786C: .4byte 0x0000270e
+ thumb_func_end sub_8097848
+
+ thumb_func_start sub_8097870
+sub_8097870:
+ ldr r0, _0809787C
+ ldr r0, [r0]
+ movs r1, 0x16
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0809787C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097870
+
+ thumb_func_start sub_8097880
+sub_8097880:
+ ldr r0, _0809788C
+ ldr r0, [r0]
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0809788C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097880
+
+ thumb_func_start sub_8097890
+sub_8097890:
+ push {lr}
+ ldr r0, _080978B0
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xC0
+ ldr r1, [r2]
+ ldr r0, _080978B4
+ cmp r1, r0
+ bgt _080978A6
+ adds r0, r1, 0x1
+ str r0, [r2]
+_080978A6:
+ movs r0, 0xC
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080978B0: .4byte gUnknown_203B494
+_080978B4: .4byte 0x0001869e
+ thumb_func_end sub_8097890
+
+ thumb_func_start sub_80978B8
+sub_80978B8:
+ ldr r0, _080978C4
+ ldr r0, [r0]
+ adds r0, 0xC0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080978C4: .4byte gUnknown_203B494
+ thumb_func_end sub_80978B8
+
+ thumb_func_start sub_80978C8
+sub_80978C8:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_808E858
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r0, _080978FC
+ ldr r2, [r0]
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _080978E2
+ adds r0, 0x1F
+_080978E2:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x54
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080978FC: .4byte gUnknown_203B494
+ thumb_func_end sub_80978C8
+
+ thumb_func_start sub_8097900
+sub_8097900:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_808E858
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r0, _08097938
+ ldr r2, [r0]
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _0809791A
+ adds r0, 0x1F
+_0809791A:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x1C
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0809793C
+ movs r0, 0
+ b _0809793E
+ .align 2, 0
+_08097938: .4byte gUnknown_203B494
+_0809793C:
+ movs r0, 0x1
+_0809793E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097900
+
+ thumb_func_start sub_8097944
+sub_8097944:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0x1
+ str r0, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r0, 0xD
+ bl sub_8097710
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097974
+ bl sub_8092614
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097974
+ movs r0, 0xD
+ bl sub_80976F8
+_08097974:
+ movs r4, 0
+ ldr r0, _08097B5C
+ mov r10, r0
+ mov r8, r4
+_0809797C:
+ ldr r1, _08097B60
+ ldr r0, [r1]
+ mov r1, r8
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080979F6
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ mov r1, r10
+ ldr r2, [r1]
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _0809799E
+ adds r0, 0x1F
+_0809799E:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x1C
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, _08097B60
+ mov r9, r0
+ mov r12, r8
+ movs r7, 0x1
+ movs r6, 0x2C
+ movs r5, 0x3
+_080979C0:
+ mov r1, r9
+ ldr r0, [r1]
+ add r0, r12
+ adds r3, r0, r6
+ ldrb r1, [r3]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080979EE
+ mov r0, r10
+ ldr r2, [r0]
+ ldrh r3, [r3, 0x2]
+ lsrs r0, r3, 5
+ lsls r0, 2
+ adds r2, 0x8C
+ adds r2, r0
+ movs r0, 0x1F
+ ands r3, r0
+ adds r1, r7, 0
+ lsls r1, r3
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+_080979EE:
+ adds r6, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080979C0
+_080979F6:
+ movs r1, 0x58
+ add r8, r1
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0809797C
+ movs r4, 0
+ ldr r1, _08097B64
+_08097A08:
+ cmp r4, 0
+ bne _08097A0E
+ b _08097B80
+_08097A0E:
+ ldr r0, _08097B68
+ cmp r4, r0
+ bne _08097A16
+ b _08097B80
+_08097A16:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A1E
+ b _08097B80
+_08097A1E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A26
+ b _08097B80
+_08097A26:
+ adds r0, 0x26
+ cmp r4, r0
+ bne _08097A2E
+ b _08097B80
+_08097A2E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A36
+ b _08097B80
+_08097A36:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A3E
+ b _08097B80
+_08097A3E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A46
+ b _08097B80
+_08097A46:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A4E
+ b _08097B80
+_08097A4E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A56
+ b _08097B80
+_08097A56:
+ cmp r4, r1
+ bne _08097A5C
+ b _08097B80
+_08097A5C:
+ ldr r0, _08097B5C
+ ldr r5, [r0]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _08097A68
+ adds r0, 0x1F
+_08097A68:
+ asrs r0, 5
+ lsls r3, r0, 2
+ adds r1, r5, 0
+ adds r1, 0x54
+ adds r1, r3
+ lsls r0, 5
+ subs r0, r4, r0
+ movs r2, 0x1
+ lsls r2, r0
+ ldr r0, [r1]
+ ands r0, r2
+ cmp r0, 0
+ bne _08097A86
+ movs r0, 0
+ str r0, [sp, 0x4]
+_08097A86:
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08097B7C
+ cmp r4, 0x92
+ bne _08097A9E
+ movs r0, 0x10
+ bl sub_80976F8
+_08097A9E:
+ cmp r4, 0x91
+ bne _08097AA8
+ movs r0, 0x11
+ bl sub_80976F8
+_08097AA8:
+ cmp r4, 0x90
+ bne _08097AB2
+ movs r0, 0x12
+ bl sub_80976F8
+_08097AB2:
+ movs r0, 0xCF
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097AC0
+ movs r0, 0x13
+ bl sub_80976F8
+_08097AC0:
+ ldr r0, _08097B6C
+ cmp r4, r0
+ bne _08097ACC
+ movs r0, 0x14
+ bl sub_80976F8
+_08097ACC:
+ movs r0, 0x86
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097ADA
+ movs r0, 0x15
+ bl sub_80976F8
+_08097ADA:
+ movs r0, 0x87
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097AE8
+ movs r0, 0x16
+ bl sub_80976F8
+_08097AE8:
+ ldr r0, _08097B70
+ cmp r4, r0
+ bne _08097AF4
+ movs r0, 0x17
+ bl sub_80976F8
+_08097AF4:
+ movs r0, 0xCD
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B02
+ movs r0, 0x18
+ bl sub_80976F8
+_08097B02:
+ ldr r0, _08097B74
+ cmp r4, r0
+ bne _08097B0E
+ movs r0, 0x19
+ bl sub_80976F8
+_08097B0E:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B1C
+ movs r0, 0x1A
+ bl sub_80976F8
+_08097B1C:
+ movs r0, 0x89
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B2A
+ movs r0, 0x1B
+ bl sub_80976F8
+_08097B2A:
+ movs r0, 0x8A
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B38
+ movs r0, 0x1C
+ bl sub_80976F8
+_08097B38:
+ cmp r4, 0x97
+ bne _08097B42
+ movs r0, 0x1D
+ bl sub_80976F8
+_08097B42:
+ cmp r4, 0x96
+ bne _08097B4C
+ movs r0, 0x1E
+ bl sub_80976F8
+_08097B4C:
+ ldr r0, _08097B78
+ cmp r4, r0
+ bne _08097B80
+ movs r0, 0x1F
+ bl sub_80976F8
+ b _08097B80
+ .align 2, 0
+_08097B5C: .4byte gUnknown_203B494
+_08097B60: .4byte gUnknown_203B45C
+_08097B64: .4byte 0x000001a7
+_08097B68: .4byte 0x00000179
+_08097B6C: .4byte 0x0000010d
+_08097B70: .4byte 0x00000113
+_08097B74: .4byte 0x0000019b
+_08097B78: .4byte 0x0000019d
+_08097B7C:
+ movs r1, 0
+ str r1, [sp]
+_08097B80:
+ adds r4, 0x1
+ ldr r1, _08097C0C
+ cmp r4, r1
+ bgt _08097B8A
+ b _08097A08
+_08097B8A:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _08097B96
+ movs r0, 0xF
+ bl sub_80976F8
+_08097B96:
+ ldr r1, [sp, 0x4]
+ cmp r1, 0
+ beq _08097BA2
+ movs r0, 0xE
+ bl sub_80976F8
+_08097BA2:
+ movs r3, 0
+ movs r4, 0
+_08097BA6:
+ cmp r4, 0
+ beq _08097BE2
+ ldr r0, _08097C10
+ cmp r4, r0
+ beq _08097BE2
+ adds r0, 0x1
+ cmp r4, r0
+ beq _08097BE2
+ adds r0, 0x1
+ cmp r4, r0
+ beq _08097BE2
+ ldr r0, _08097C14
+ ldr r2, [r0]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _08097BC8
+ adds r0, 0x1F
+_08097BC8:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x8C
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r4, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08097BE2
+ adds r3, 0x1
+_08097BE2:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08097BA6
+ cmp r3, 0
+ beq _08097BFC
+ ldr r0, _08097C14
+ ldr r0, [r0]
+ strh r3, [r0, 0x18]
+ movs r0, 0x7
+ bl sub_80976F8
+_08097BFC:
+ 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
+_08097C0C: .4byte 0x000001a7
+_08097C10: .4byte 0x00000163
+_08097C14: .4byte gUnknown_203B494
+ thumb_func_end sub_8097944
+
+ thumb_func_start sub_8097C18
+sub_8097C18:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8097944
+ ldr r4, _08097CBC
+ ldr r1, [r4]
+ adds r1, 0x4
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x8
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0xC
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x14
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x16
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x18
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0xC0
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x1C
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x54
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x8C
+ movs r2, 0xD0
+ lsls r2, 1
+ adds r0, r5, 0
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x10
+ adds r0, r5, 0
+ bl sub_80902F4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097CBC: .4byte gUnknown_203B494
+ thumb_func_end sub_8097C18
+
+ thumb_func_start sub_8097CC0
+sub_8097CC0:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _08097D5C
+ ldr r1, [r4]
+ adds r1, 0x4
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x8
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0xC
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x14
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x16
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x18
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0xC0
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x1C
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x54
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x8C
+ movs r2, 0xD0
+ lsls r2, 1
+ adds r0, r5, 0
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x10
+ adds r0, r5, 0
+ bl sub_8090314
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097D5C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097CC0
+
+ thumb_func_start sub_8097D60
+sub_8097D60:
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ mov r0, sp
+ bl sub_8094A44
+ mov r0, sp
+ bl sub_8095044
+ mov r0, sp
+ bl sub_8097C18
+ mov r0, sp
+ bl sub_8098248
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097D60
+
+ thumb_func_start sub_8097D98
+sub_8097D98:
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ mov r0, sp
+ bl sub_8094B18
+ mov r0, sp
+ bl sub_8095080
+ mov r0, sp
+ bl sub_8097CC0
+ mov r0, sp
+ bl sub_8098308
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097D98
+
+ thumb_func_start sub_8097DD0
+sub_8097DD0:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ bne _08097DEA
+ ldr r1, [r2, 0x4]
+ ldr r0, [r3, 0x4]
+ cmp r1, r0
+ bne _08097DEA
+ movs r0, 0x1
+ b _08097DEC
+_08097DEA:
+ movs r0, 0
+_08097DEC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097DD0
+
+ thumb_func_start sub_8097DF0
+sub_8097DF0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1F8
+ mov r8, r0
+ str r1, [sp, 0x1F0]
+ movs r0, 0
+ mov r9, r0
+ movs r7, 0
+ ldr r1, _08097E3C
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08097E6E
+_08097E0E:
+ movs r4, 0
+ lsls r5, r7, 3
+ lsls r1, r7, 2
+ mov r10, r1
+ adds r6, r7, 0x1
+ ldr r2, _08097E3C
+ adds r3, r5, r2
+ add r1, sp, 0x18C
+_08097E1E:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r2, [r0]
+ cmp r2, 0x23
+ bne _08097E40
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x72
+ bne _08097E40
+ strb r2, [r1]
+ adds r1, 0x1
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0
+ strb r0, [r1]
+ b _08097E50
+ .align 2, 0
+_08097E3C: .4byte gUnknown_810E074
+_08097E40:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r4, 0x1
+ cmp r4, 0x63
+ ble _08097E1E
+_08097E50:
+ add r0, sp, 0x18C
+ bl strlen
+ mov r1, sp
+ add r1, r10
+ str r0, [r1]
+ adds r7, r6, 0
+ cmp r6, 0x62
+ bgt _08097E6E
+ lsls r0, r6, 3
+ ldr r1, _08097EB4
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08097E0E
+_08097E6E:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08097F2C
+ ldr r3, _08097EB4
+_08097E78:
+ cmp r0, 0x23
+ bne _08097F08
+ movs r7, 0
+ adds r1, r3, 0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08097F20
+ mov r2, r9
+ lsls r0, r2, 2
+ ldr r2, [sp, 0x1F0]
+ adds r0, r2
+ mov r10, r0
+_08097E90:
+ lsls r4, r7, 3
+ adds r0, r4, r1
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ add r1, sp
+ ldr r2, [r1]
+ mov r1, r8
+ str r3, [sp, 0x1F4]
+ bl sub_800B2D4
+ lsls r0, 24
+ adds r5, r4, 0
+ adds r6, r7, 0x1
+ ldr r3, [sp, 0x1F4]
+ cmp r0, 0
+ bne _08097EF0
+ movs r4, 0
+ b _08097EBA
+ .align 2, 0
+_08097EB4: .4byte gUnknown_810E074
+_08097EB8:
+ adds r4, 0x1
+_08097EBA:
+ cmp r4, r9
+ bge _08097ED6
+ adds r0, r5, r3
+ lsls r1, r4, 2
+ ldr r2, [sp, 0x1F0]
+ adds r1, r2
+ ldr r1, [r1]
+ str r3, [sp, 0x1F4]
+ bl sub_8097DD0
+ lsls r0, 24
+ ldr r3, [sp, 0x1F4]
+ cmp r0, 0
+ beq _08097EB8
+_08097ED6:
+ cmp r4, r9
+ bne _08097EF0
+ mov r0, r9
+ cmp r0, 0x3
+ bgt _08097EF0
+ adds r0, r5, r3
+ mov r1, r10
+ adds r1, 0x4
+ mov r10, r1
+ subs r1, 0x4
+ stm r1!, {r0}
+ movs r2, 0x1
+ add r9, r2
+_08097EF0:
+ adds r7, r6, 0
+ cmp r6, 0x62
+ bgt _08097F20
+ ldr r1, _08097F04
+ lsls r0, r6, 3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08097E90
+ b _08097F20
+ .align 2, 0
+_08097F04: .4byte gUnknown_810E074
+_08097F08:
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x7F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08097F1C
+ cmp r1, 0x87
+ bne _08097F20
+_08097F1C:
+ movs r1, 0x1
+ add r8, r1
+_08097F20:
+ movs r2, 0x1
+ add r8, r2
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08097E78
+_08097F2C:
+ mov r0, r9
+ add sp, 0x1F8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097DF0
+
+ thumb_func_start sub_8097F40
+sub_8097F40:
+ push {lr}
+ movs r2, 0
+ ldr r1, _08097F58
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08097F50
+ movs r2, 0x1
+_08097F50:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08097F58: .4byte gUnknown_810ACC0
+ thumb_func_end sub_8097F40
+
+ thumb_func_start sub_8097F5C
+sub_8097F5C:
+ ldr r1, _08097F64
+ ldr r0, _08097F68
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08097F64: .4byte gUnknown_203B498
+_08097F68: .4byte gUnknown_2039840
+ thumb_func_end sub_8097F5C
+
+ thumb_func_start sub_8097F6C
+sub_8097F6C:
+ ldr r0, _08097F70
+ bx lr
+ .align 2, 0
+_08097F70: .4byte gUnknown_2039840
+ thumb_func_end sub_8097F6C
+
+ thumb_func_start sub_8097F74
+sub_8097F74:
+ push {r4,lr}
+ ldr r4, _08097FA0
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x64
+ bl memset
+ movs r2, 0
+ ldr r3, _08097FA4
+_08097F86:
+ ldr r0, [r4]
+ adds r0, 0x58
+ adds r0, r2
+ ldrb r1, [r3, 0x2]
+ strb r1, [r0]
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0xB
+ ble _08097F86
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097FA0: .4byte gUnknown_203B498
+_08097FA4: .4byte gUnknown_810AD0C
+ thumb_func_end sub_8097F74
+
+ thumb_func_start sub_8097FA8
+sub_8097FA8:
+ lsls r0, 24
+ ldr r1, _08097FCC
+ ldr r3, [r1]
+ lsrs r1, r0, 29
+ lsls r1, 2
+ adds r3, 0x48
+ adds r3, r1
+ movs r1, 0xF8
+ lsls r1, 21
+ ands r1, r0
+ lsrs r1, 24
+ movs r2, 0x1
+ lsls r2, r1
+ ldr r0, [r3]
+ orrs r0, r2
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08097FCC: .4byte gUnknown_203B498
+ thumb_func_end sub_8097FA8
+
+ thumb_func_start sub_8097FD0
+sub_8097FD0:
+ lsls r0, 24
+ ldr r1, _08097FF4
+ ldr r3, [r1]
+ lsrs r1, r0, 29
+ lsls r1, 2
+ adds r3, 0x3C
+ adds r3, r1
+ movs r1, 0xF8
+ lsls r1, 21
+ ands r1, r0
+ lsrs r1, 24
+ movs r2, 0x1
+ lsls r2, r1
+ ldr r0, [r3]
+ orrs r0, r2
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08097FF4: .4byte gUnknown_203B498
+ thumb_func_end sub_8097FD0
+
+ thumb_func_start sub_8097FF8
+sub_8097FF8:
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r6, _08098040
+ movs r7, 0x1
+_08098000:
+ ldr r5, [r6]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _0809800A
+ adds r0, 0x1F
+_0809800A:
+ asrs r0, 5
+ lsls r3, r0, 2
+ adds r1, r5, 0
+ adds r1, 0x48
+ adds r1, r3
+ lsls r0, 5
+ subs r0, r4, r0
+ adds r2, r7, 0
+ lsls r2, r0
+ ldr r0, [r1]
+ ands r0, r2
+ cmp r0, 0
+ beq _08098030
+ adds r1, r5, 0
+ adds r1, 0x3C
+ adds r1, r3
+ ldr r0, [r1]
+ orrs r0, r2
+ str r0, [r1]
+_08098030:
+ adds r4, 0x1
+ cmp r4, 0x3F
+ ble _08098000
+ bl sub_8098080
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098040: .4byte gUnknown_203B498
+ thumb_func_end sub_8097FF8
+
+ thumb_func_start sub_8098044
+sub_8098044:
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r1, _0809807C
+ ldr r3, [r1]
+ lsrs r5, r0, 29
+ lsls r5, 2
+ adds r4, r3, 0
+ adds r4, 0x3C
+ adds r4, r5
+ movs r1, 0xF8
+ lsls r1, 21
+ ands r1, r0
+ lsrs r1, 24
+ movs r2, 0x1
+ lsls r2, r1
+ mvns r2, r2
+ ldr r0, [r4]
+ ands r0, r2
+ str r0, [r4]
+ adds r3, 0x48
+ adds r3, r5
+ ldr r0, [r3]
+ ands r0, r2
+ str r0, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809807C: .4byte gUnknown_203B498
+ thumb_func_end sub_8098044
+
+ thumb_func_start sub_8098080
+sub_8098080:
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _080980A0
+ movs r3, 0
+_08098088:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0x48
+ adds r0, r1
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08098088
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080980A0: .4byte gUnknown_203B498
+ thumb_func_end sub_8098080
+
+ thumb_func_start sub_80980A4
+sub_80980A4:
+ ldr r0, _080980B0
+ ldr r2, [r0]
+ ldrb r0, [r2]
+ movs r1, 0x1
+ strb r1, [r2]
+ bx lr
+ .align 2, 0
+_080980B0: .4byte gUnknown_203B498
+ thumb_func_end sub_80980A4
+
+ thumb_func_start sub_80980B4
+sub_80980B4:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r3, r1, 0
+ ldr r0, _080980F8
+ cmp r1, r0
+ beq _080980F4
+ adds r0, 0x1
+ cmp r1, r0
+ beq _080980F4
+ adds r0, 0x1
+ cmp r1, r0
+ beq _080980F4
+ ldr r0, _080980FC
+ ldr r2, [r0]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080980DA
+ adds r0, 0x1F
+_080980DA:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x4
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+_080980F4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080980F8: .4byte 0x000001a5
+_080980FC: .4byte gUnknown_203B498
+ thumb_func_end sub_80980B4
+
+ thumb_func_start sub_8098100
+sub_8098100:
+ push {lr}
+ lsls r1, r0, 24
+ lsrs r3, r1, 24
+ cmp r3, 0x3F
+ bls _0809810E
+ movs r0, 0
+ b _0809812C
+_0809810E:
+ ldr r0, _08098130
+ ldr r2, [r0]
+ lsrs r0, r1, 29
+ lsls r0, 2
+ adds r2, 0x3C
+ adds r2, r0
+ movs r0, 0x1F
+ ands r0, r3
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _0809812C
+ movs r0, 0x1
+_0809812C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098130: .4byte gUnknown_203B498
+ thumb_func_end sub_8098100
+
+ thumb_func_start sub_8098134
+sub_8098134:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r3, r1, 0
+ ldr r0, _0809816C
+ ldr r2, [r0]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08098148
+ adds r0, 0x1F
+_08098148:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x4
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08098166
+ movs r0, 0x1
+_08098166:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809816C: .4byte gUnknown_203B498
+ thumb_func_end sub_8098134
+
+ thumb_func_start sub_8098170
+sub_8098170:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _0809819C
+ ldr r2, [r0]
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _08098180
+ adds r0, 0x1F
+_08098180:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x54
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809819C: .4byte gUnknown_203B498
+ thumb_func_end sub_8098170
+
+ thumb_func_start sub_80981A0
+sub_80981A0:
+ push {lr}
+ adds r3, r0, 0
+ cmp r3, 0x1E
+ ble _080981AC
+ movs r0, 0
+ b _080981D4
+_080981AC:
+ ldr r0, _080981D8
+ ldr r2, [r0]
+ adds r1, r3, 0
+ cmp r3, 0
+ bge _080981B8
+ adds r1, 0x1F
+_080981B8:
+ asrs r1, 5
+ lsls r0, r1, 2
+ adds r2, 0x54
+ adds r2, r0
+ lsls r1, 5
+ subs r1, r3, r1
+ movs r0, 0x1
+ lsls r0, r1
+ ldr r2, [r2]
+ ands r2, r0
+ cmp r2, 0
+ beq _080981D2
+ movs r2, 0x1
+_080981D2:
+ adds r0, r2, 0
+_080981D4:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080981D8: .4byte gUnknown_203B498
+ thumb_func_end sub_80981A0
+
+ thumb_func_start sub_80981DC
+sub_80981DC:
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r3, r0, 16
+ movs r1, 0
+ ldr r4, _080981FC
+ ldr r2, _08098200
+_080981E8:
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ cmp r0, r3
+ bne _08098204
+ ldr r0, [r4]
+ adds r0, 0x58
+ adds r0, r1
+ ldrb r0, [r0]
+ b _0809820E
+ .align 2, 0
+_080981FC: .4byte gUnknown_203B498
+_08098200: .4byte gUnknown_810AD0C
+_08098204:
+ adds r2, 0x4
+ adds r1, 0x1
+ cmp r1, 0xB
+ ble _080981E8
+ movs r0, 0x1
+_0809820E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80981DC
+
+ thumb_func_start sub_8098214
+sub_8098214:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r3, r0, 16
+ movs r1, 0
+ ldr r5, _08098240
+ movs r4, 0x1
+ ldr r2, _08098244
+_08098222:
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ cmp r0, r3
+ bne _08098232
+ ldr r0, [r5]
+ adds r0, 0x58
+ adds r0, r1
+ strb r4, [r0]
+_08098232:
+ adds r2, 0x4
+ adds r1, 0x1
+ cmp r1, 0xB
+ ble _08098222
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098240: .4byte gUnknown_203B498
+_08098244: .4byte gUnknown_810AD0C
+ thumb_func_end sub_8098214
+
+ thumb_func_start sub_8098248
+sub_8098248:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ mov r5, sp
+ adds r5, 0x3
+ movs r0, 0xFF
+ strb r0, [r5]
+ add r4, sp, 0x4
+ movs r0, 0
+ strb r0, [r4]
+ ldr r0, _08098300
+ ldr r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0x1
+ bl sub_809488C
+ movs r6, 0
+ mov r9, r5
+ mov r8, r4
+ mov r4, sp
+ adds r4, 0x1
+ mov r5, sp
+ adds r5, 0x2
+_0809827C:
+ lsls r0, r6, 16
+ asrs r0, 16
+ bl sub_8098134
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r7, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r6, 0x1
+ ldr r0, _08098304
+ cmp r6, r0
+ ble _0809827C
+ movs r6, 0
+_0809829A:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8098100
+ strb r0, [r4]
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r6, 0x1
+ cmp r6, 0x3F
+ ble _0809829A
+ movs r6, 0
+ adds r4, r5, 0
+_080982B8:
+ adds r0, r6, 0
+ bl sub_80981A0
+ strb r0, [r4]
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r6, 0x1
+ cmp r6, 0x1E
+ ble _080982B8
+ movs r6, 0
+_080982D2:
+ ldr r0, _08098300
+ ldr r0, [r0]
+ adds r0, 0x58
+ adds r0, r6
+ ldrb r0, [r0]
+ mov r1, r8
+ cmp r0, 0
+ beq _080982E4
+ mov r1, r9
+_080982E4:
+ adds r0, r7, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r6, 0x1
+ cmp r6, 0xB
+ ble _080982D2
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098300: .4byte gUnknown_203B498
+_08098304: .4byte 0x000001a7
+ thumb_func_end sub_8098248
+
+ thumb_func_start sub_8098308
+sub_8098308:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r4, _080983D0
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x64
+ bl memset
+ ldr r1, [r4]
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_8094924
+ movs r4, 0
+ mov r5, sp
+ adds r5, 0x1
+ mov r7, sp
+ adds r7, 0x2
+ movs r0, 0x3
+ add r0, sp
+ mov r8, r0
+_08098338:
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_8094924
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08098352
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_80980B4
+_08098352:
+ adds r4, 0x1
+ ldr r0, _080983D4
+ cmp r4, r0
+ ble _08098338
+ movs r4, 0
+_0809835C:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08098374
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8097FA8
+_08098374:
+ adds r4, 0x1
+ cmp r4, 0x3F
+ ble _0809835C
+ movs r4, 0
+ adds r5, r7, 0
+_0809837E:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08098394
+ adds r0, r4, 0
+ bl sub_8098170
+_08098394:
+ adds r4, 0x1
+ cmp r4, 0x1E
+ ble _0809837E
+ movs r4, 0
+_0809839C:
+ adds r0, r6, 0
+ mov r1, r8
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r0, _080983D0
+ ldr r1, [r0]
+ adds r1, 0x58
+ adds r1, r4
+ mov r0, sp
+ adds r0, 0x3
+ ldrb r2, [r0]
+ movs r0, 0x1
+ ands r0, r2
+ strb r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0xB
+ ble _0809839C
+ bl sub_8097FF8
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080983D0: .4byte gUnknown_203B498
+_080983D4: .4byte 0x000001a7
+ thumb_func_end sub_8098308
+
+ thumb_func_start sub_80983D8
+sub_80983D8:
+ push {r4,lr}
+ movs r2, 0
+ ldrsh r3, [r1, r2]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ subs r2, r3, r2
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ subs r1, r0
+ cmp r2, 0
+ bne _080983FA
+ cmp r1, 0
+ bne _080983FA
+ movs r0, 0
+ b _08098428
+_080983FA:
+ cmp r2, 0
+ ble _08098400
+ movs r2, 0x1
+_08098400:
+ cmp r1, 0
+ ble _08098406
+ movs r1, 0x1
+_08098406:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ bgt _08098410
+ adds r2, r0, 0
+_08098410:
+ cmp r1, r0
+ bgt _08098416
+ adds r1, r0, 0
+_08098416:
+ ldr r3, _08098430
+ adds r2, 0x1
+ adds r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+_08098428:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098430: .4byte gUnknown_8115E94
+ thumb_func_end sub_80983D8
+
+ thumb_func_start sub_8098434
+sub_8098434:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _0809844A
+ negs r2, r2
+_0809844A:
+ movs r0, 0x2
+ ldrsh r1, [r3, r0]
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _0809845A
+ negs r0, r0
+_0809845A:
+ cmp r0, r2
+ bge _08098460
+ adds r0, r2, 0
+_08098460:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098434
+
+ thumb_func_start xxx_script_related_8098468
+xxx_script_related_8098468:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _08098494
+ str r0, [r1]
+ ldr r4, _08098498
+ movs r2, 0
+ strb r2, [r4]
+ ldr r3, _0809849C
+ movs r1, 0x1
+ strb r1, [r3]
+ ldr r1, _080984A0
+ strb r2, [r1]
+ subs r0, 0xD
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _08098504
+ lsls r0, 2
+ ldr r1, _080984A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08098494: .4byte gUnknown_20398B4
+_08098498: .4byte gUnknown_20398B9
+_0809849C: .4byte gUnknown_20398B8
+_080984A0: .4byte gUnknown_20398BA
+_080984A4: .4byte _080984A8
+ .align 2, 0
+_080984A8:
+ .4byte _080984BC
+ .4byte _080984C8
+ .4byte _080984CE
+ .4byte _080984D4
+ .4byte _080984FC
+_080984BC:
+ movs r1, 0x1
+ strb r1, [r2]
+ movs r0, 0
+ strb r0, [r3]
+ strb r1, [r4]
+ b _08098504
+_080984C8:
+ movs r0, 0x1
+ strb r0, [r3]
+ b _08098502
+_080984CE:
+ movs r0, 0x1
+ strb r0, [r3]
+ b _08098502
+_080984D4:
+ add r2, sp, 0x4
+ movs r0, 0x3
+ mov r1, sp
+ bl sub_8001B88
+ ldr r2, _080984F4
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _080984EA
+ movs r1, 0x1
+_080984EA:
+ strb r1, [r2]
+ ldr r1, _080984F8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08098504
+ .align 2, 0
+_080984F4: .4byte gUnknown_20398B8
+_080984F8: .4byte gUnknown_20398B9
+_080984FC:
+ movs r0, 0
+ strb r0, [r3]
+ movs r0, 0x1
+_08098502:
+ strb r0, [r4]
+_08098504:
+ bl sub_801180C
+ ldr r0, _080985B0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08098522
+ movs r0, 0xD
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098522
+ movs r0, 0x10
+ bl sub_80118C4
+_08098522:
+ ldr r1, _080985B4
+ ldr r2, _080985B8
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl xxx_update_some_bg_tiles
+ bl sub_8099648
+ bl sub_809975C
+ bl sub_809D0AC
+ bl sub_80A7744
+ bl sub_809D490
+ bl sub_80A62F0
+ bl sub_809C5C4
+ bl sub_809A560
+ bl sub_809CB50
+ bl sub_80A4A7C
+ bl nullsub_117
+ bl sub_80AD990
+ bl sub_80A77F8
+ bl sub_80ABB54
+ bl sub_80ACB90
+ bl sub_809A62C
+ ldr r0, _080985BC
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080985C0
+ strb r1, [r0]
+ ldr r6, _080985C4
+ movs r0, 0x1
+ str r0, [r6]
+ ldr r1, _080985C8
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, _080985CC
+ movs r4, 0x1
+ negs r4, r4
+ str r4, [r0]
+ ldr r5, _080985D0
+ movs r0, 0
+ movs r1, 0xD
+ bl sub_8001658
+ strh r0, [r5]
+ movs r0, 0
+ movs r1, 0xE
+ bl sub_8001658
+ ldr r1, _080985D4
+ str r0, [r1]
+ ldr r0, _080985D8
+ strh r4, [r0]
+ adds r7, r4, 0
+ ldr r0, [r6]
+ b _08098988
+ .align 2, 0
+_080985B0: .4byte gUnknown_20398B9
+_080985B4: .4byte gUnknown_2026E4E
+_080985B8: .4byte 0x00000808
+_080985BC: .4byte gUnknown_203B49C
+_080985C0: .4byte gUnknown_203B49D
+_080985C4: .4byte gUnknown_20398A8
+_080985C8: .4byte gUnknown_20398AC
+_080985CC: .4byte gUnknown_20398B0
+_080985D0: .4byte gUnknown_20398BE
+_080985D4: .4byte gUnknown_20398C0
+_080985D8: .4byte gUnknown_20398C4
+_080985DC:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_809A71C
+ bl sub_809A76C
+ bl sub_809977C
+ ldr r0, _08098600
+ ldr r0, [r0]
+ cmp r0, 0x11
+ bls _080985F6
+ b _08098756
+_080985F6:
+ lsls r0, 2
+ ldr r1, _08098604
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08098600: .4byte gUnknown_20398B4
+_08098604: .4byte _08098608
+ .align 2, 0
+_08098608:
+ .4byte _08098650
+ .4byte _08098756
+ .4byte _08098660
+ .4byte _08098660
+ .4byte _08098756
+ .4byte _08098666
+ .4byte _08098756
+ .4byte _08098756
+ .4byte _08098756
+ .4byte _0809866A
+ .4byte _0809866A
+ .4byte _0809866A
+ .4byte _0809866A
+ .4byte _0809870C
+ .4byte _08098748
+ .4byte _0809874C
+ .4byte _08098750
+ .4byte _08098754
+_08098650:
+ bl sub_8098C58
+ ldr r1, _0809865C
+ movs r0, 0x1
+ str r0, [r1]
+ b _08098756
+ .align 2, 0
+_0809865C: .4byte gUnknown_20398B4
+_08098660:
+ bl sub_8001D88
+ b _08098756
+_08098666:
+ movs r7, 0x70
+ b _08098756
+_0809866A:
+ ldr r0, _080986BC
+ ldr r2, [r0]
+ movs r0, 0
+ movs r1, 0x16
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x25
+ movs r2, 0
+ bl sub_80018D8
+ bl sub_8098C58
+ movs r0, 0
+ movs r1, 0x15
+ movs r2, 0x1
+ movs r3, 0x2
+ bl sub_800226C
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08098756
+ cmp r4, 0x51
+ bne _080986C0
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2608
+ b _080986C6
+ .align 2, 0
+_080986BC: .4byte gUnknown_20398B4
+_080986C0:
+ adds r0, r4, 0
+ bl sub_80A2608
+_080986C6:
+ movs r1, 0xA
+ ldrsh r7, [r0, r1]
+ ldr r5, _08098700
+ ldr r0, [r5]
+ cmp r0, 0x9
+ bne _080986E0
+ lsls r2, r4, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x31
+ movs r3, 0x1
+ bl sub_800199C
+_080986E0:
+ ldr r0, [r5]
+ bl sub_8098FCC
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08098756
+ ldr r0, _08098704
+ strh r1, [r0]
+ ldr r1, _08098708
+ movs r0, 0
+ str r0, [r1]
+ b _08098756
+ .align 2, 0
+_08098700: .4byte gUnknown_20398B4
+_08098704: .4byte gUnknown_20398BE
+_08098708: .4byte gUnknown_20398C0
+_0809870C:
+ bl sub_8098C58
+ ldr r1, _08098744
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x1
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0xF
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0
+ bl sub_80018D8
+ movs r7, 0x71
+ b _08098756
+ .align 2, 0
+_08098744: .4byte gUnknown_20398B4
+_08098748:
+ movs r7, 0x73
+ b _08098756
+_0809874C:
+ movs r7, 0x74
+ b _08098756
+_08098750:
+ movs r7, 0x75
+ b _08098756
+_08098754:
+ movs r7, 0x76
+_08098756:
+ ldr r0, _08098790
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080987C0
+ movs r0, 0
+ movs r1, 0xD
+ bl sub_8001658
+ adds r5, r0, 0
+ ldr r4, _08098794
+ ldr r2, [r4]
+ movs r0, 0
+ movs r1, 0x18
+ bl sub_80018D8
+ ldr r4, [r4]
+ cmp r4, 0x1
+ beq _080987A6
+ cmp r4, 0x3
+ bne _0809879C
+ ldr r0, _08098798
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0
+ movs r1, 0xF
+ bl sub_80018D8
+ b _080987A6
+ .align 2, 0
+_08098790: .4byte gUnknown_20398B9
+_08098794: .4byte gUnknown_20398B4
+_08098798: .4byte gUnknown_20398BE
+_0809879C:
+ movs r0, 0
+ movs r1, 0xF
+ adds r2, r5, 0
+ bl sub_80018D8
+_080987A6:
+ ldr r0, _0809882C
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0
+ movs r1, 0xD
+ bl sub_80018D8
+ ldr r0, _08098830
+ ldr r2, [r0]
+ movs r0, 0
+ movs r1, 0xE
+ bl sub_80018D8
+_080987C0:
+ ldr r1, _08098834
+ movs r0, 0x2
+ str r0, [r1]
+ ldr r0, _08098838
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _0809883C
+ str r1, [r0]
+ ldr r0, _08098840
+ movs r4, 0x1
+ negs r4, r4
+ str r4, [r0]
+ ldr r2, _08098844
+ ldr r1, _0809882C
+ ldrh r0, [r1]
+ strh r0, [r2]
+ strh r4, [r1]
+ bl sub_809977C
+ bl sub_809D4B0
+ adds r0, r4, 0
+ bl GroundSprite_Reset
+ bl sub_809C63C
+ bl sub_809A62C
+ bl sub_80A4AEC
+ bl sub_809D0BC
+ bl sub_80AD9D0
+ bl sub_80A786C
+ bl sub_80ABB98
+ bl sub_80ACBD4
+ bl sub_809C658
+ bl nullsub_16
+ bl sub_8097944
+ cmp r7, r4
+ beq _08098848
+ adds r0, r7, 0
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+ b _08098850
+ .align 2, 0
+_0809882C: .4byte gUnknown_20398BE
+_08098830: .4byte gUnknown_20398C0
+_08098834: .4byte gUnknown_20398B4
+_08098838: .4byte gUnknown_20398A8
+_0809883C: .4byte gUnknown_20398AC
+_08098840: .4byte gUnknown_20398B0
+_08098844: .4byte gUnknown_20398BC
+_08098848:
+ movs r0, 0x66
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+_08098850:
+ bl GroundMap_Action
+ movs r0, 0
+ movs r1, 0
+ bl sub_8005838
+ bl sub_80060EC
+ bl xxx_call_update_bg_sound_input
+_08098864:
+ bl xxx_call_update_bg_sound_input
+ bl sub_80A6E68
+ ldr r0, _08098890
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080988B2
+ ldr r1, _08098894
+ ldr r0, [r1]
+ cmp r0, 0
+ ble _0809889C
+ subs r0, 0x1
+ str r0, [r1]
+ cmp r0, 0
+ bgt _080988F8
+ ldr r0, _08098898
+ ldr r0, [r0]
+ bl sub_80999D4
+ b _080988F8
+ .align 2, 0
+_08098890: .4byte gUnknown_20398A8
+_08098894: .4byte gUnknown_20398AC
+_08098898: .4byte gUnknown_20398B0
+_0809889C:
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080988F8
+ bl sub_809C740
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809897C
+ b _080988F8
+_080988B2:
+ ldr r0, _08098968
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080988F8
+ ldr r0, _0809896C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080988F8
+ bl sub_809AFAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080988F8
+ ldr r0, _08098970
+ ldrh r0, [r0, 0x2]
+ ldr r2, _08098974
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080988E4
+ bl sub_80048BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080988F8
+_080988E4:
+ movs r0, 0x72
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+ movs r0, 0x1E
+ bl sub_8098F44
+ movs r0, 0x1E
+ bl sub_80118C4
+_080988F8:
+ bl GroundMap_Action
+ bl nullsub_124
+ bl GroundLives_Action
+ bl GroundObject_Action
+ bl GroundEffect_Action
+ bl nullsub_105
+ bl sub_809B474
+ bl GroundScript_Unlock
+ bl sub_809D25C
+ bl sub_80A59DC
+ bl sub_809B614
+ bl sub_809CA20
+ bl sub_80A6E80
+ bl sub_8099BE4
+ bl sub_8099744
+ bl sub_8011860
+ ldr r0, _08098978
+ ldr r0, [r0]
+ bl sub_8094FB4
+ bl sub_800CB20
+ bl sub_800485C
+ bl nullsub_120
+ bl sub_80A5E70
+ bl sub_809B638
+ bl nullsub_106
+ bl sub_80A73EC
+ bl sub_8099750
+ bl sub_8009908
+ b _08098864
+ .align 2, 0
+_08098968: .4byte gUnknown_20398B9
+_0809896C: .4byte gUnknown_20398B8
+_08098970: .4byte gUnknown_20255F0
+_08098974: .4byte 0x0000030f
+_08098978: .4byte gUnknown_203B47C
+_0809897C:
+ bl sub_80A4AEC
+ movs r7, 0x1
+ negs r7, r7
+ ldr r0, _080989E8
+ ldr r0, [r0]
+_08098988:
+ subs r0, 0x1
+ cmp r0, 0x1
+ bhi _08098990
+ b _080985DC
+_08098990:
+ bl sub_80A4AC4
+ bl nullsub_118
+ bl sub_80A78F0
+ bl sub_80ABBD4
+ bl sub_80ACC10
+ bl sub_80ADA08
+ bl sub_809CB74
+ bl sub_809A610
+ bl sub_809C618
+ bl sub_80A658C
+ bl sub_809D508
+ bl sub_80A7754
+ bl nullsub_119
+ bl sub_8099768
+ bl nullsub_103
+ bl nullsub_16
+ ldr r0, _080989EC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080989FA
+ ldr r0, _080989E8
+ ldr r0, [r0]
+ cmp r0, 0x9
+ beq _080989F0
+ cmp r0, 0xA
+ bne _080989F0
+ movs r0, 0x10
+ b _08098BD2
+ .align 2, 0
+_080989E8: .4byte gUnknown_20398A8
+_080989EC: .4byte gUnknown_20398B9
+_080989F0:
+ movs r0, 0x1E
+ bl sub_80118C4
+ movs r0, 0xF
+ b _08098BD2
+_080989FA:
+ ldr r0, _08098A10
+ ldr r0, [r0]
+ subs r0, 0x3
+ cmp r0, 0x5
+ bls _08098A06
+ b _08098BC0
+_08098A06:
+ lsls r0, 2
+ ldr r1, _08098A14
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08098A10: .4byte gUnknown_20398A8
+_08098A14: .4byte _08098A18
+ .align 2, 0
+_08098A18:
+ .4byte _08098A30
+ .4byte _08098A72
+ .4byte _08098AA0
+ .4byte _08098B08
+ .4byte _08098B58
+ .4byte _08098B8C
+_08098A30:
+ movs r4, 0x1
+ negs r4, r4
+ movs r0, 0
+ movs r1, 0x13
+ adds r2, r4, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x14
+ adds r2, r4, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x4
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x4
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0xD
+ bl sub_8001658
+ adds r2, r0, 0
+ movs r0, 0
+ movs r1, 0xF
+ bl sub_80018D8
+ movs r0, 0x5
+ b _08098BD2
+_08098A72:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x5
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x5
+ bl sub_80018D8
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_80018D8
+ movs r0, 0x6
+ b _08098BD2
+_08098AA0:
+ ldr r5, _08098B04
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_80A2654
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x14
+ adds r2, r4, 0
+ bl sub_80018D8
+ ldrh r2, [r5]
+ movs r0, 0
+ movs r1, 0x30
+ movs r3, 0x1
+ bl sub_800199C
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x11
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _08098B00
+ movs r0, 0
+ movs r1, 0x11
+ movs r2, 0
+ bl sub_80018D8
+_08098B00:
+ movs r0, 0x7
+ b _08098BD2
+ .align 2, 0
+_08098B04: .4byte gUnknown_20398C4
+_08098B08:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x51
+ bl sub_80018D8
+ ldr r0, _08098B54
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x11
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _08098B4E
+ movs r0, 0
+ movs r1, 0x11
+ movs r2, 0
+ bl sub_80018D8
+_08098B4E:
+ movs r0, 0x8
+ b _08098BD2
+ .align 2, 0
+_08098B54: .4byte gUnknown_20398C4
+_08098B58:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x50
+ bl sub_80018D8
+ ldr r0, _08098B88
+ ldrb r2, [r0]
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0x9
+ b _08098BD2
+ .align 2, 0
+_08098B88: .4byte gUnknown_2039950
+_08098B8C:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x52
+ bl sub_80018D8
+ ldr r0, _08098BBC
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x7
+ bl sub_80018D8
+ movs r0, 0xA
+ b _08098BD2
+ .align 2, 0
+_08098BBC: .4byte gUnknown_20398C4
+_08098BC0:
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x1
+ bl sub_80018D8
+ movs r0, 0x10
+ bl sub_80118C4
+ movs r0, 0xE
+_08098BD2:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end xxx_script_related_8098468
+
+ thumb_func_start sub_8098BDC
+sub_8098BDC:
+ push {lr}
+ bl sub_809B57C
+ bl GroundScript_Unlock
+ bl sub_809D25C
+ bl sub_80A59DC
+ bl sub_809B614
+ bl sub_809CA20
+ bl sub_80A6E80
+ bl sub_8099BE4
+ bl sub_8099744
+ bl sub_8011860
+ ldr r0, _08098C54
+ ldr r0, [r0]
+ bl sub_8094FB4
+ bl sub_800CB20
+ bl sub_800485C
+ bl nullsub_120
+ bl sub_80A5E70
+ bl sub_809B638
+ bl nullsub_106
+ bl sub_80A73EC
+ bl sub_8099750
+ bl sub_8009908
+ bl xxx_call_update_bg_sound_input
+ bl sub_80A6E68
+ bl GroundMap_Action
+ bl nullsub_124
+ bl GroundLives_Action
+ bl GroundObject_Action
+ bl GroundEffect_Action
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08098C54: .4byte gUnknown_203B47C
+ thumb_func_end sub_8098BDC
+
+ thumb_func_start sub_8098C58
+sub_8098C58:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x36
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x39
+ bl sub_80015C0
+ bl sub_809CB8C
+ bl sub_8001D88
+ movs r0, 0
+ movs r1, 0x2A
+ bl sub_8001658
+ cmp r0, 0
+ beq _08098CA2
+ movs r0, 0
+ movs r1, 0x29
+ bl sub_8001658
+ adds r2, r0, 0
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08098C90
+ movs r2, 0
+_08098C90:
+ movs r0, 0
+ movs r1, 0x29
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ bl sub_80018D8
+_08098CA2:
+ movs r0, 0
+ movs r1, 0x42
+ movs r2, 0
+ bl sub_8001784
+ adds r3, r0, 0
+ cmp r3, 0
+ bgt _08098CB4
+ movs r3, 0x1
+_08098CB4:
+ subs r3, 0x1
+ movs r0, 0
+ movs r1, 0x42
+ movs r2, 0
+ bl sub_800199C
+ bl sub_8098CC8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098C58
+
+ thumb_func_start sub_8098CC8
+sub_8098CC8:
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0xB
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08098CDE
+ movs r1, 0
+ b _08098D06
+_08098CDE:
+ movs r0, 0x3
+ movs r1, 0xF
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08098CF2
+ movs r1, 0x1
+ b _08098D06
+_08098CF2:
+ movs r0, 0x3
+ movs r1, 0x12
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _08098D06
+ movs r1, 0x2
+_08098D06:
+ adds r0, r1, 0
+ bl sub_8091980
+ bl sub_809674C
+ bl sub_80961B4
+ bl sub_8091FB4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8098CC8
+
+ thumb_func_start sub_8098D1C
+sub_8098D1C:
+ push {r4-r7,lr}
+ adds r7, r1, 0
+ adds r4, r2, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+ ldr r6, _08098D34
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _08098D38
+ movs r0, 0
+ b _08098D60
+ .align 2, 0
+_08098D34: .4byte gUnknown_20398A8
+_08098D38:
+ ldr r1, _08098D68
+ movs r0, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl Log
+ movs r1, 0x1
+ str r1, [r6]
+ ldr r0, _08098D6C
+ str r1, [r0]
+ ldr r0, _08098D70
+ str r4, [r0]
+ ldr r1, _08098D74
+ movs r0, 0x2
+ str r0, [r1]
+ ldr r0, _08098D78
+ strh r5, [r0]
+ ldr r0, _08098D7C
+ str r7, [r0]
+ movs r0, 0x1
+_08098D60:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098D68: .4byte gUnknown_8115F5C
+_08098D6C: .4byte gUnknown_20398AC
+_08098D70: .4byte gUnknown_20398B0
+_08098D74: .4byte gUnknown_20398B4
+_08098D78: .4byte gUnknown_20398BE
+_08098D7C: .4byte gUnknown_20398C0
+ thumb_func_end sub_8098D1C
+
+ thumb_func_start sub_8098D80
+sub_8098D80:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08098DB8
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _08098DC4
+ movs r0, 0x3
+ str r0, [r1]
+ ldr r1, _08098DBC
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08098DC0
+ str r4, [r0]
+ bl sub_809C730
+ movs r0, 0xD
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098DB2
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_80118C4
+_08098DB2:
+ movs r0, 0x1
+ b _08098DC6
+ .align 2, 0
+_08098DB8: .4byte gUnknown_20398A8
+_08098DBC: .4byte gUnknown_20398AC
+_08098DC0: .4byte gUnknown_20398B0
+_08098DC4:
+ movs r0, 0
+_08098DC6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098D80
+
+ thumb_func_start sub_8098DCC
+sub_8098DCC:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08098E04
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _08098E10
+ movs r0, 0x4
+ str r0, [r1]
+ ldr r1, _08098E08
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08098E0C
+ str r4, [r0]
+ bl sub_809C730
+ movs r0, 0xD
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08098DFE
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_80118C4
+_08098DFE:
+ movs r0, 0x1
+ b _08098E12
+ .align 2, 0
+_08098E04: .4byte gUnknown_20398A8
+_08098E08: .4byte gUnknown_20398AC
+_08098E0C: .4byte gUnknown_20398B0
+_08098E10:
+ movs r0, 0
+_08098E12:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098DCC
+
+ thumb_func_start sub_8098E18
+sub_8098E18:
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ asrs r2, r0, 16
+ adds r5, r2, 0
+ ldr r4, _08098E40
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _08098EA8
+ ldr r1, _08098E44
+ movs r0, 0
+ adds r3, r6, 0
+ bl Log
+ ldr r0, _08098E48
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08098E4C
+ movs r0, 0x7
+ b _08098E8A
+ .align 2, 0
+_08098E40: .4byte gUnknown_20398A8
+_08098E44: .4byte gUnknown_8115F80
+_08098E48: .4byte gUnknown_203B49D
+_08098E4C:
+ ldr r0, _08098E74
+ ldrb r0, [r0]
+ ldr r1, _08098E78
+ cmp r0, 0
+ bne _08098E58
+ strh r5, [r1]
+_08098E58:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bl sub_80A2750
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _08098E88
+ cmp r0, 0x2
+ bgt _08098E7C
+ cmp r0, 0x1
+ beq _08098E84
+ b _08098E8C
+ .align 2, 0
+_08098E74: .4byte gUnknown_203B49C
+_08098E78: .4byte gUnknown_20398C4
+_08098E7C:
+ cmp r0, 0x4
+ bne _08098E8C
+ movs r0, 0x8
+ b _08098E8A
+_08098E84:
+ movs r0, 0x5
+ b _08098E8A
+_08098E88:
+ movs r0, 0x6
+_08098E8A:
+ str r0, [r4]
+_08098E8C:
+ ldr r0, _08098EA0
+ movs r1, 0x1
+ str r1, [r0]
+ ldr r0, _08098EA4
+ str r6, [r0]
+ bl sub_809C730
+ movs r0, 0x1
+ b _08098EAA
+ .align 2, 0
+_08098EA0: .4byte gUnknown_20398AC
+_08098EA4: .4byte gUnknown_20398B0
+_08098EA8:
+ movs r0, 0
+_08098EAA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098E18
+
+ thumb_func_start sub_8098EB0
+sub_8098EB0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08098EE4
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _08098EF8
+ ldr r0, _08098EE8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08098EF8
+ ldr r1, _08098EEC
+ movs r0, 0
+ adds r2, r4, 0
+ bl Log
+ movs r0, 0x7
+ str r0, [r5]
+ ldr r1, _08098EF0
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08098EF4
+ str r4, [r0]
+ bl sub_809C730
+ movs r0, 0x1
+ b _08098EFA
+ .align 2, 0
+_08098EE4: .4byte gUnknown_20398A8
+_08098EE8: .4byte gUnknown_203B49D
+_08098EEC: .4byte gUnknown_8115FA4
+_08098EF0: .4byte gUnknown_20398AC
+_08098EF4: .4byte gUnknown_20398B0
+_08098EF8:
+ movs r0, 0
+_08098EFA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098EB0
+
+ thumb_func_start sub_8098F00
+sub_8098F00:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08098F10
+ ldr r0, [r5]
+ cmp r0, 0
+ beq _08098F14
+ movs r0, 0
+ b _08098F32
+ .align 2, 0
+_08098F10: .4byte gUnknown_20398A8
+_08098F14:
+ ldr r1, _08098F38
+ movs r0, 0
+ adds r2, r4, 0
+ bl Log
+ movs r0, 0x9
+ str r0, [r5]
+ ldr r1, _08098F3C
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08098F40
+ str r4, [r0]
+ bl sub_809C730
+ movs r0, 0x1
+_08098F32:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098F38: .4byte gUnknown_8115FC8
+_08098F3C: .4byte gUnknown_20398AC
+_08098F40: .4byte gUnknown_20398B0
+ thumb_func_end sub_8098F00
+
+ thumb_func_start sub_8098F44
+sub_8098F44:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08098F54
+ ldr r0, [r5]
+ cmp r0, 0
+ beq _08098F58
+ movs r0, 0
+ b _08098F76
+ .align 2, 0
+_08098F54: .4byte gUnknown_20398A8
+_08098F58:
+ ldr r1, _08098F7C
+ movs r0, 0
+ adds r2, r4, 0
+ bl Log
+ movs r0, 0xA
+ str r0, [r5]
+ ldr r1, _08098F80
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08098F84
+ str r4, [r0]
+ bl sub_809C730
+ movs r0, 0x1
+_08098F76:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08098F7C: .4byte gUnknown_8115FE8
+_08098F80: .4byte gUnknown_20398AC
+_08098F84: .4byte gUnknown_20398B0
+ thumb_func_end sub_8098F44
+
+ thumb_func_start sub_8098F88
+sub_8098F88:
+ ldr r0, _08098F90
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08098F90: .4byte gUnknown_20398B9
+ thumb_func_end sub_8098F88
+
+ thumb_func_start sub_8098F94
+sub_8098F94:
+ ldr r0, _08098F9C
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08098F9C: .4byte gUnknown_20398BA
+ thumb_func_end sub_8098F94
+
+ thumb_func_start sub_8098FA0
+sub_8098FA0:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x11
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098FA0
+
+ thumb_func_start sub_8098FB4
+sub_8098FB4:
+ 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_8098FB4
+
+ thumb_func_start sub_8098FCC
+sub_8098FCC:
+ push {r4,lr}
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r2, r1, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809909E
+ cmp r1, 0x51
+ bne _08098FF6
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ b _08098FF8
+_08098FF6:
+ adds r0, r2, 0
+_08098FF8:
+ bl sub_80A2608
+ adds r4, r0, 0
+ ldr r0, _0809900C
+ ldr r0, [r0]
+ cmp r0, 0x9
+ bne _08099010
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ b _080990B2
+ .align 2, 0
+_0809900C: .4byte gUnknown_20398B4
+_08099010:
+ ldrh r0, [r4, 0x4]
+ subs r0, 0xB2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ bhi _080990AE
+ lsls r0, 2
+ ldr r1, _08099028
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08099028: .4byte _0809902C
+ .align 2, 0
+_0809902C:
+ .4byte _0809908C
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990A2
+ .4byte _080990AE
+ .4byte _080990A2
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990A2
+ .4byte _080990AE
+ .4byte _080990AE
+ .4byte _080990A2
+_0809908C:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x2
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _080990AE
+_0809909E:
+ movs r0, 0xC
+ b _080990B2
+_080990A2:
+ movs r0, 0x5
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809909E
+_080990AE:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+_080990B2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8098FCC
+
+ thumb_func_start sub_80990B8
+sub_80990B8:
+ push {lr}
+ movs r0, 0xB
+ bl sub_8098FCC
+ lsls r0, 16
+ asrs r2, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ bne _080990D2
+ bl sub_8098FB4
+ b _080990E4
+_080990D2:
+ ldr r1, _080990E8
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ bl sub_80A2B18
+_080990E4:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080990E8: .4byte gUnknown_811BAF4
+ thumb_func_end sub_80990B8
+
+ thumb_func_start sub_80990EC
+sub_80990EC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x80
+ adds r7, r0, 0
+ lsls r1, 16
+ asrs r4, r1, 16
+ adds r0, r4, 0
+ bl sub_80A2608
+ mov r8, r0
+ ldrb r0, [r0, 0xC]
+ movs r5, 0
+ strb r0, [r7]
+ movs r0, 0x1
+ strb r0, [r7, 0x1]
+ strb r5, [r7, 0xC]
+ adds r0, r4, 0
+ bl sub_80A2750
+ lsls r0, 16
+ asrs r6, r0, 16
+ cmp r6, 0x2
+ beq _080991C8
+ cmp r6, 0x2
+ bgt _08099126
+ cmp r6, 0x1
+ beq _0809912C
+ b _080991CA
+_08099126:
+ cmp r6, 0x4
+ beq _080991C4
+ b _080991CA
+_0809912C:
+ movs r1, 0
+ strb r5, [r7, 0xB]
+ adds r0, r4, 0
+ subs r0, 0x25
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bhi _0809913E
+ movs r1, 0x1
+_0809913E:
+ cmp r1, 0
+ beq _080991CA
+ strb r6, [r7, 0xC]
+ mov r0, sp
+ movs r1, 0x5B
+ bl sub_80A8EC0
+ add r4, sp, 0x18
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xA
+ bl sub_8092310
+ add r5, sp, 0x30
+ str r4, [sp, 0x58]
+ add r1, sp, 0x5C
+ movs r2, 0
+ movs r0, 0x5E
+ strh r0, [r1]
+ mov r0, sp
+ adds r0, 0x5E
+ strb r2, [r0]
+ add r0, sp, 0x60
+ movs r1, 0x47
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ add r1, sp, 0x64
+ movs r0, 0x82
+ lsls r0, 1
+ strh r0, [r1]
+ movs r0, 0xE0
+ strh r0, [r1, 0x2]
+ movs r0, 0xAC
+ strh r0, [r1, 0x4]
+ movs r0, 0xBE
+ strh r0, [r1, 0x6]
+ add r1, sp, 0x6C
+ movs r0, 0x50
+ strh r0, [r1]
+ mov r0, sp
+ adds r0, 0x6E
+ movs r2, 0xF
+ strh r2, [r0]
+ add r0, sp, 0x70
+ strh r6, [r0]
+ adds r0, 0x2
+ movs r1, 0x19
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ adds r0, 0x4
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ ldr r0, _080991C0
+ str r0, [sp, 0x7C]
+ add r1, sp, 0x58
+ adds r0, r5, 0
+ movs r2, 0x28
+ bl memcpy
+ adds r0, r7, 0
+ adds r0, 0x18
+ adds r1, r5, 0
+ bl sub_808D144
+ b _080991CA
+ .align 2, 0
+_080991C0: .4byte 0x000061a8
+_080991C4:
+ strb r5, [r7, 0xB]
+ b _080991CA
+_080991C8:
+ strb r6, [r7, 0xB]
+_080991CA:
+ movs r0, 0
+ strb r0, [r7, 0x4]
+ strb r0, [r7, 0xD]
+ mov r1, r8
+ ldrb r0, [r1, 0x11]
+ add sp, 0x80
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80990EC
+
+ thumb_func_start sub_80991E0
+sub_80991E0:
+ push {lr}
+ adds r2, r0, 0
+ ldr r3, _08099204
+ ldrh r0, [r3]
+ strh r0, [r1]
+ ldr r0, _08099208
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809920C
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ adds r0, r2, 0
+ bl sub_80990EC
+ lsls r0, 24
+ lsrs r0, 24
+ b _08099218
+ .align 2, 0
+_08099204: .4byte gUnknown_20398C4
+_08099208: .4byte gUnknown_203B49C
+_0809920C:
+ ldr r1, _0809921C
+ adds r0, r2, 0
+ movs r2, 0x88
+ bl memcpy
+ movs r0, 0x1
+_08099218:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809921C: .4byte gUnknown_20398C8
+ thumb_func_end sub_80991E0
+
+ thumb_func_start sub_8099220
+sub_8099220:
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ asrs r3, r1, 16
+ cmp r2, 0
+ beq _08099258
+ ldr r1, _08099248
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0809924C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08099250
+ strh r3, [r0]
+ ldr r0, _08099254
+ adds r1, r2, 0
+ movs r2, 0x88
+ bl memcpy
+ b _0809926A
+ .align 2, 0
+_08099248: .4byte gUnknown_203B49C
+_0809924C: .4byte gUnknown_203B49D
+_08099250: .4byte gUnknown_20398C4
+_08099254: .4byte gUnknown_20398C8
+_08099258:
+ ldr r0, _08099270
+ strb r2, [r0]
+ ldr r0, _08099274
+ strb r2, [r0]
+ ldr r1, _08099278
+ movs r2, 0x1
+ negs r2, r2
+ adds r0, r2, 0
+ strh r0, [r1]
+_0809926A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099270: .4byte gUnknown_203B49C
+_08099274: .4byte gUnknown_203B49D
+_08099278: .4byte gUnknown_20398C4
+ thumb_func_end sub_8099220
+
+ thumb_func_start sub_809927C
+sub_809927C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080992CC
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080992D0
+ strb r1, [r0]
+ ldr r1, _080992D4
+ movs r0, 0x50
+ strh r0, [r1]
+ ldr r4, _080992D8
+ strb r5, [r4]
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x50
+ bl sub_80018D8
+ ldrb r2, [r4]
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_80018D8
+ ldr r4, _080992DC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8095494
+ subs r4, 0x10
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r4, 0xB]
+ strb r1, [r4, 0xC]
+ strb r1, [r4, 0x4]
+ strb r1, [r4, 0xD]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080992CC: .4byte gUnknown_203B49C
+_080992D0: .4byte gUnknown_203B49D
+_080992D4: .4byte gUnknown_20398C4
+_080992D8: .4byte gUnknown_2039950
+_080992DC: .4byte gUnknown_20398D8
+ thumb_func_end sub_809927C
+
+ thumb_func_start sub_80992E0
+sub_80992E0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08099316
+ cmp r1, 0x50
+ beq _08099316
+ cmp r1, 0x51
+ beq _08099316
+ cmp r1, 0x52
+ beq _08099316
+ strh r1, [r4]
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ strh r0, [r5]
+ movs r0, 0x1
+ b _08099322
+_08099316:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+ strh r0, [r4]
+ strh r0, [r5]
+ movs r0, 0
+_08099322:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80992E0
+
+ thumb_func_start sub_8099328
+sub_8099328:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _08099358
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2608
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0x3E
+ bhi _08099358
+ strb r0, [r4]
+ movs r0, 0x1
+ b _0809935A
+_08099358:
+ movs r0, 0
+_0809935A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099328
+
+ thumb_func_start sub_8099360
+sub_8099360:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x52
+ beq _08099378
+ movs r0, 0
+ b _0809938E
+_08099378:
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2608
+ ldrb r0, [r0, 0xC]
+ strb r0, [r4]
+ movs r0, 0x1
+_0809938E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099360
+
+ thumb_func_start sub_8099394
+sub_8099394:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x50
+ beq _080993AC
+ movs r0, 0
+ b _080993B8
+_080993AC:
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ strb r0, [r4]
+ movs r0, 0x1
+_080993B8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8099394
+
+ thumb_func_start sub_80993C0
+sub_80993C0:
+ push {lr}
+ lsls r0, 24
+ ldr r2, _080993D4
+ movs r1, 0
+ cmp r0, 0
+ bne _080993CE
+ movs r1, 0x1
+_080993CE:
+ strb r1, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080993D4: .4byte gUnknown_20398B8
+ thumb_func_end sub_80993C0
+
+ thumb_func_start sub_80993D8
+sub_80993D8:
+ push {lr}
+ bl sub_80A4B38
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80993D8
+
+ thumb_func_start sub_80993E4
+sub_80993E4:
+ push {lr}
+ bl sub_80A4B54
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80993E4
+
+ thumb_func_start sub_80993F0
+sub_80993F0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ movs r0, 0
+ mov r10, r0
+ bl sub_801180C
+ movs r0, 0x10
+ bl sub_80118C4
+ ldr r1, _0809948C
+ ldr r2, _08099490
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl xxx_update_some_bg_tiles
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_80095CC
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8009408
+ bl sub_8099648
+ bl sub_809975C
+ bl sub_809D0AC
+ bl sub_8014144
+ movs r0, 0
+ movs r1, 0
+ bl sub_8005838
+ bl sub_80A4A7C
+ mov r7, sp
+ add r0, sp, 0x8
+ mov r8, r0
+_08099454:
+ bl sub_801D9E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809949C
+ mov r0, r10
+ bl sub_801DA58
+_08099464:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8005838
+ movs r0, 0
+ bl sub_8012A18
+ bl sub_801DA78
+ cmp r0, 0x2
+ beq _08099494
+ cmp r0, 0x3
+ bne _08099464
+ bl sub_801DAC0
+ lsls r0, 16
+ asrs r0, 16
+ mov r10, r0
+ b _080994A2
+ .align 2, 0
+_0809948C: .4byte gUnknown_2026E4E
+_08099490: .4byte 0x00000808
+_08099494:
+ movs r1, 0x1
+ negs r1, r1
+ mov r10, r1
+ b _080994A2
+_0809949C:
+ movs r2, 0x1
+ negs r2, r2
+ mov r10, r2
+_080994A2:
+ bl sub_801DB0C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r10, r0
+ bne _080994B0
+ b _08099624
+_080994B0:
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl sub_80A4AEC
+ bl sub_809D0BC
+ mov r0, r10
+ bl GroundMap_Select
+ mov r0, sp
+ mov r1, r8
+ bl sub_80A579C
+ ldr r0, [r7, 0x4]
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [r7, 0x4]
+ mov r2, r8
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, [sp]
+ ldr r1, _08099520
+ adds r0, r1
+ str r0, [sp]
+ ldr r0, [r7, 0x4]
+ adds r0, r1
+ str r0, [r7, 0x4]
+ ldr r0, [sp, 0x8]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r1, [r0, 0x4]
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r2, [sp, 0x8]
+ ldr r0, [sp]
+ subs r0, r2, r0
+ str r0, [sp, 0x20]
+ ldr r0, [r7, 0x4]
+ subs r0, r1, r0
+ str r0, [sp, 0x24]
+ movs r4, 0
+ movs r5, 0
+ movs r0, 0x4
+ bl sub_80999E8
+ mov r9, r5
+ b _08099604
+ .align 2, 0
+_08099520: .4byte 0xfffffc00
+_08099524:
+ ldr r0, _0809953C
+ ldrh r1, [r0, 0x2]
+ ldrh r6, [r0]
+ movs r0, 0x4
+ ands r1, r0
+ cmp r1, 0
+ beq _08099540
+ bl sub_80999FC
+ movs r1, 0x1
+ mov r9, r1
+ b _080995AE
+ .align 2, 0
+_0809953C: .4byte gUnknown_20255F0
+_08099540:
+ adds r0, r6, 0
+ bl sub_809CFE8
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ cmp r1, r2
+ beq _0809959A
+ add r0, sp, 0x10
+ movs r2, 0x80
+ lsls r2, 1
+ bl sub_8002BB8
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ movs r0, 0x2
+ ands r6, r0
+ cmp r6, 0
+ beq _0809956A
+ movs r0, 0x4
+_0809956A:
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r4
+ adds r4, r1, 0
+ muls r0, r3
+ adds r5, r0
+ cmp r1, 0
+ bge _0809957E
+ movs r4, 0
+ b _08099588
+_0809957E:
+ ldr r0, [sp, 0x20]
+ cmp r4, r0
+ blt _08099588
+ adds r4, r0, 0
+ subs r4, 0x1
+_08099588:
+ cmp r5, 0
+ bge _08099590
+ movs r5, 0
+ b _0809959A
+_08099590:
+ ldr r1, [sp, 0x24]
+ cmp r5, r1
+ blt _0809959A
+ adds r5, r1, 0
+ subs r5, 0x1
+_0809959A:
+ ldr r0, [sp]
+ adds r0, r4
+ str r0, [sp, 0x18]
+ ldr r0, [r7, 0x4]
+ adds r0, r5
+ add r1, sp, 0x18
+ str r0, [r1, 0x4]
+ movs r0, 0
+ bl sub_809D158
+_080995AE:
+ bl sub_809D25C
+ bl sub_80A59DC
+ bl xxx_draw_string_80144C4
+ movs r0, 0
+ movs r1, 0
+ bl sub_8005838
+ bl sub_80060EC
+ ldr r0, _08099620
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ bl nullsub_8
+ bl sub_8005180
+ bl sub_8099BE4
+ bl sub_8099744
+ bl sub_8011860
+ bl sub_800CB20
+ bl sub_800485C
+ bl nullsub_120
+ bl sub_80A5E70
+ bl xxx_call_update_bg_vram
+ bl CopySpritesToOam
+ bl sub_8005304
+ bl sub_8099750
+ bl sub_8009908
+_08099604:
+ bl xxx_call_update_bg_sound_input
+ movs r0, 0
+ bl ResetSprites
+ mov r2, r9
+ cmp r2, 0
+ beq _08099524
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080995AE
+ b _08099454
+ .align 2, 0
+_08099620: .4byte gUnknown_203B46C
+_08099624:
+ movs r0, 0x10
+ bl sub_80118C4
+ bl sub_80A4AC4
+ bl sub_8099768
+ bl nullsub_103
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80993F0
+
+ thumb_func_start sub_8099648
+sub_8099648:
+ push {lr}
+ bl sub_8003600
+ bl sub_809965C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099648
+
+ thumb_func_start nullsub_103
+nullsub_103:
+ bx lr
+ thumb_func_end nullsub_103
+
+ thumb_func_start sub_809965C
+sub_809965C:
+ push {r4,lr}
+ movs r0, 0
+ bl sub_8099690
+ ldr r0, _08099688
+ ldr r1, _0809968C
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ movs r0, 0xF8
+ lsls r0, 1
+ ldr r1, [r4, 0x4]
+ movs r2, 0x10
+ bl sub_800388C
+ adds r0, r4, 0
+ bl CloseFile
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099688: .4byte gUnknown_811601C
+_0809968C: .4byte gUnknown_8300500
+ thumb_func_end sub_809965C
+
+ thumb_func_start sub_8099690
+sub_8099690:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _080996BC
+ ldr r1, _080996C0
+ bl OpenFileAndGetFileDataPtr
+ adds r6, r0, 0
+ cmp r4, 0x1
+ beq _080996CC
+ cmp r4, 0x2
+ beq _080996D4
+ ldr r0, _080996C4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xB]
+ ldr r4, _080996C8
+ cmp r0, 0
+ beq _080996D6
+ movs r0, 0x80
+ lsls r0, 1
+ adds r4, r0
+ b _080996D6
+ .align 2, 0
+_080996BC: .4byte gUnknown_8116028
+_080996C0: .4byte gUnknown_8300500
+_080996C4: .4byte gUnknown_203B46C
+_080996C8: .4byte gUnknown_202D078
+_080996CC:
+ ldr r4, _080996D0
+ b _080996D6
+ .align 2, 0
+_080996D0: .4byte gUnknown_202D1B8
+_080996D4:
+ ldr r4, _08099704
+_080996D6:
+ movs r0, 0xF0
+ adds r1, r4, 0
+ movs r2, 0x10
+ bl sub_800388C
+ adds r5, r4, 0
+ movs r4, 0
+_080996E4:
+ adds r0, r4, 0
+ adds r0, 0xF0
+ adds r1, r5, 0
+ adds r5, 0x4
+ bl nullsub_5
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _080996E4
+ adds r0, r6, 0
+ bl CloseFile
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099704: .4byte gUnknown_202D1F8
+ thumb_func_end sub_8099690
+
+ thumb_func_start sub_8099708
+sub_8099708:
+ push {lr}
+ sub sp, 0x4
+ str r1, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8003810
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099708
+
+ thumb_func_start sub_809971C
+sub_809971C:
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r2, 0
+ ble _0809973E
+ adds r4, r2, 0
+_0809972A:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldm r6!, {r1}
+ bl sub_8003810
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0809972A
+_0809973E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809971C
+
+ thumb_func_start sub_8099744
+sub_8099744:
+ push {lr}
+ bl sub_80039B8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099744
+
+ thumb_func_start sub_8099750
+sub_8099750:
+ push {lr}
+ bl TransferBGPaletteBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099750
+
+ thumb_func_start sub_809975C
+sub_809975C:
+ push {lr}
+ bl sub_809977C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809975C
+
+ thumb_func_start sub_8099768
+sub_8099768:
+ push {lr}
+ bl sub_809977C
+ bl sub_8099744
+ bl sub_8099750
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099768
+
+ thumb_func_start sub_809977C
+sub_809977C:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r1, _080997DC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080997E0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r6, _080997E4
+ adds r0, r6, 0
+ bl sub_8099838
+ ldr r0, _080997E8
+ mov r8, r0
+ bl sub_8099838
+ ldr r4, _080997EC
+ adds r0, r4, 0
+ bl sub_8099838
+ subs r4, 0x8
+ movs r0, 0
+ str r0, [r4]
+ movs r5, 0x80
+ lsls r5, 1
+ strh r5, [r4, 0x14]
+ strh r0, [r6, 0xC]
+ bl sub_8099DD0
+ mov r0, r8
+ strh r5, [r0, 0xC]
+ adds r0, r5, 0
+ bl sub_8099E58
+ ldr r1, _080997F0
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0x40
+_080997CA:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _080997CA
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080997DC: .4byte gUnknown_2039990
+_080997E0: .4byte gUnknown_2039992
+_080997E4: .4byte gUnknown_2039958
+_080997E8: .4byte gUnknown_2039968
+_080997EC: .4byte gUnknown_2039980
+_080997F0: .4byte gUnknown_2039998
+ thumb_func_end sub_809977C
+
+ thumb_func_start sub_80997F4
+sub_80997F4:
+ push {lr}
+ lsls r0, 16
+ ldr r2, _08099818
+ lsrs r0, 15
+ adds r0, r2
+ strh r1, [r0]
+ ldr r0, _0809981C
+ bl sub_8099848
+ ldr r0, _08099820
+ bl sub_8099848
+ ldr r0, _08099824
+ bl sub_8099848
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099818: .4byte gUnknown_2039998
+_0809981C: .4byte gUnknown_2039958
+_08099820: .4byte gUnknown_2039968
+_08099824: .4byte gUnknown_2039980
+ thumb_func_end sub_80997F4
+
+ thumb_func_start sub_8099828
+sub_8099828:
+ lsls r0, 16
+ ldr r1, _08099834
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_08099834: .4byte gUnknown_2039998
+ thumb_func_end sub_8099828
+
+ thumb_func_start sub_8099838
+sub_8099838:
+ movs r1, 0x1
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ bx lr
+ thumb_func_end sub_8099838
+
+ thumb_func_start sub_8099848
+sub_8099848:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _08099856
+ movs r0, 0x1
+ str r0, [r1]
+_08099856:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099848
+
+ thumb_func_start sub_809985C
+sub_809985C:
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0
+ blt _08099872
+ cmp r1, 0
+ bne _08099874
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r2, 0xC]
+ movs r0, 0x1
+ b _08099876
+_08099872:
+ movs r1, 0x1E
+_08099874:
+ movs r0, 0x2
+_08099876:
+ str r0, [r2]
+ strh r1, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809985C
+
+ thumb_func_start sub_8099880
+sub_8099880:
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0
+ blt _08099892
+ cmp r1, 0
+ bne _08099894
+ strh r1, [r2, 0xC]
+ movs r0, 0x1
+ b _08099896
+_08099892:
+ movs r1, 0x1E
+_08099894:
+ movs r0, 0x3
+_08099896:
+ str r0, [r2]
+ strh r1, [r2, 0x4]
+ strh r1, [r2, 0x6]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099880
+
+ thumb_func_start sub_80998A0
+sub_80998A0:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ cmp r1, 0
+ bge _080998B2
+ movs r1, 0x1E
+_080998B2:
+ cmp r2, r3
+ bls _080998BE
+ movs r0, 0x5
+ str r0, [r4]
+ subs r0, r2, r3
+ b _080998D0
+_080998BE:
+ cmp r2, r3
+ bcs _080998CA
+ movs r0, 0x4
+ str r0, [r4]
+ subs r0, r3, r2
+ b _080998D0
+_080998CA:
+ movs r0, 0x1
+ str r0, [r4]
+ movs r0, 0
+_080998D0:
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0x4]
+ strh r1, [r4, 0x6]
+ strh r2, [r4, 0xC]
+ strh r3, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80998A0
+
+ thumb_func_start sub_80998E0
+sub_80998E0:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4]
+ cmp r0, 0x5
+ bhi _080999CA
+ lsls r0, 2
+ ldr r1, _080998F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080998F4: .4byte _080998F8
+ .align 2, 0
+_080998F8:
+ .4byte _080999CA
+ .4byte _080999C2
+ .4byte _08099910
+ .4byte _08099946
+ .4byte _08099976
+ .4byte _0809999A
+_08099910:
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ strh r0, [r4, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08099940
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ lsls r0, 8
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r0, [r4, 0xC]
+ cmp r0, r1
+ bcs _080999C6
+ strh r1, [r4, 0xC]
+ b _080999C6
+_08099940:
+ movs r0, 0x80
+ lsls r0, 1
+ b _080999C0
+_08099946:
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08099970
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ lsls r0, 8
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r0, [r4, 0xC]
+ cmp r0, r1
+ bls _080999C6
+ strh r1, [r4, 0xC]
+ b _080999C6
+_08099970:
+ strh r1, [r4, 0xC]
+ str r1, [r4]
+ b _080999C6
+_08099976:
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ strh r0, [r4, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080999BE
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ ldrh r0, [r4, 0xA]
+ muls r0, r1
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x8]
+ subs r1, r0
+ strh r1, [r4, 0xC]
+ b _080999C6
+_0809999A:
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ strh r0, [r4, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080999BE
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ ldrh r0, [r4, 0xA]
+ muls r0, r1
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x8]
+ adds r1, r0
+ strh r1, [r4, 0xC]
+ b _080999C6
+_080999BE:
+ ldrh r0, [r4, 0x8]
+_080999C0:
+ strh r0, [r4, 0xC]
+_080999C2:
+ movs r0, 0
+ str r0, [r4]
+_080999C6:
+ movs r0, 0x1
+ b _080999CC
+_080999CA:
+ movs r0, 0
+_080999CC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80998E0
+
+ thumb_func_start sub_80999D4
+sub_80999D4:
+ ldr r2, _080999E0
+ movs r1, 0x1
+ strb r1, [r2]
+ ldr r1, _080999E4
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080999E0: .4byte gUnknown_2039990
+_080999E4: .4byte gUnknown_2039992
+ thumb_func_end sub_80999D4
+
+ thumb_func_start sub_80999E8
+sub_80999E8:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _080999F8
+ bl sub_809985C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080999F8: .4byte gUnknown_2039958
+ thumb_func_end sub_80999E8
+
+ thumb_func_start sub_80999FC
+sub_80999FC:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08099A0C
+ bl sub_8099880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099A0C: .4byte gUnknown_2039958
+ thumb_func_end sub_80999FC
+
+ thumb_func_start sub_8099A10
+sub_8099A10:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _08099A30
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80998A0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099A30: .4byte gUnknown_2039958
+ thumb_func_end sub_8099A10
+
+ thumb_func_start sub_8099A34
+sub_8099A34:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08099A44
+ bl sub_809985C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099A44: .4byte gUnknown_2039968
+ thumb_func_end sub_8099A34
+
+ thumb_func_start sub_8099A48
+sub_8099A48:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08099A58
+ bl sub_8099880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099A58: .4byte gUnknown_2039968
+ thumb_func_end sub_8099A48
+
+ thumb_func_start sub_8099A5C
+sub_8099A5C:
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ str r2, [sp]
+ ldr r0, _08099A88
+ str r4, [r0]
+ ldr r2, [sp]
+ str r2, [r0, 0x4]
+ movs r2, 0
+ strh r2, [r0, 0x14]
+ adds r0, 0x8
+ bl sub_809985C
+ subs r0, r4, 0x1
+ cmp r0, 0xD
+ bhi _08099AF0
+ lsls r0, 2
+ ldr r1, _08099A8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08099A88: .4byte gUnknown_2039978
+_08099A8C: .4byte _08099A90
+ .align 2, 0
+_08099A90:
+ .4byte _08099AC8
+ .4byte _08099AF0
+ .4byte _08099AC8
+ .4byte _08099AF0
+ .4byte _08099AE8
+ .4byte _08099AF0
+ .4byte _08099AE8
+ .4byte _08099AF0
+ .4byte _08099AE0
+ .4byte _08099AF0
+ .4byte _08099AE0
+ .4byte _08099AF0
+ .4byte _08099AE8
+ .4byte _08099AE8
+_08099AC8:
+ ldr r0, _08099AD8
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0xC]
+ ldr r0, _08099ADC
+ strh r1, [r0, 0xC]
+ b _08099AF0
+ .align 2, 0
+_08099AD8: .4byte gUnknown_2039968
+_08099ADC: .4byte gUnknown_2039958
+_08099AE0:
+ ldr r1, _08099AE4
+ b _08099AEA
+ .align 2, 0
+_08099AE4: .4byte gUnknown_2039968
+_08099AE8:
+ ldr r1, _08099AF8
+_08099AEA:
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1, 0xC]
+_08099AF0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099AF8: .4byte gUnknown_2039958
+ thumb_func_end sub_8099A5C
+
+ thumb_func_start sub_8099AFC
+sub_8099AFC:
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ str r2, [sp]
+ ldr r0, _08099B28
+ str r4, [r0]
+ ldr r2, [sp]
+ str r2, [r0, 0x4]
+ movs r2, 0x80
+ lsls r2, 1
+ strh r2, [r0, 0x14]
+ adds r0, 0x8
+ bl sub_8099880
+ subs r0, r4, 0x2
+ cmp r0, 0xC
+ bhi _08099B86
+ lsls r0, 2
+ ldr r1, _08099B2C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08099B28: .4byte gUnknown_2039978
+_08099B2C: .4byte _08099B30
+ .align 2, 0
+_08099B30:
+ .4byte _08099B64
+ .4byte _08099B86
+ .4byte _08099B64
+ .4byte _08099B86
+ .4byte _08099B80
+ .4byte _08099B86
+ .4byte _08099B80
+ .4byte _08099B86
+ .4byte _08099B78
+ .4byte _08099B86
+ .4byte _08099B78
+ .4byte _08099B80
+ .4byte _08099B80
+_08099B64:
+ ldr r0, _08099B70
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r0, _08099B74
+ strh r1, [r0, 0xC]
+ b _08099B86
+ .align 2, 0
+_08099B70: .4byte gUnknown_2039968
+_08099B74: .4byte gUnknown_2039958
+_08099B78:
+ ldr r1, _08099B7C
+ b _08099B82
+ .align 2, 0
+_08099B7C: .4byte gUnknown_2039968
+_08099B80:
+ ldr r1, _08099B90
+_08099B82:
+ movs r0, 0
+ strh r0, [r1, 0xC]
+_08099B86:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099B90: .4byte gUnknown_2039958
+ thumb_func_end sub_8099AFC
+
+ thumb_func_start sub_8099B94
+sub_8099B94:
+ push {lr}
+ ldr r0, _08099BA4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08099BA8
+ movs r0, 0x1
+ b _08099BD6
+ .align 2, 0
+_08099BA4: .4byte gUnknown_2039990
+_08099BA8:
+ ldr r1, _08099BBC
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08099BC0
+ ldr r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08099BD6
+ movs r0, 0x1
+ b _08099BD6
+ .align 2, 0
+_08099BBC: .4byte gUnknown_2039978
+_08099BC0:
+ movs r1, 0
+ ldr r0, _08099BDC
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08099BD2
+ ldr r0, _08099BE0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08099BD4
+_08099BD2:
+ movs r1, 0x1
+_08099BD4:
+ adds r0, r1, 0
+_08099BD6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08099BDC: .4byte gUnknown_2039958
+_08099BE0: .4byte gUnknown_2039968
+ thumb_func_end sub_8099B94
+
+ thumb_func_start sub_8099BE4
+sub_8099BE4:
+ push {r4,r5,lr}
+ ldr r4, _08099C10
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _08099BF6
+ ldr r0, [r4, 0x8]
+ cmp r0, 0
+ bne _08099BF6
+ b _08099D08
+_08099BF6:
+ adds r0, r4, 0
+ adds r0, 0x8
+ bl sub_80998E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08099C14
+ ldrh r0, [r4, 0x14]
+ ldr r1, [r4, 0x4]
+ bl sub_8099E80
+ b _08099DC0
+ .align 2, 0
+_08099C10: .4byte gUnknown_2039978
+_08099C14:
+ ldr r0, [r4, 0x8]
+ cmp r0, 0
+ beq _08099C1C
+ b _08099DC0
+_08099C1C:
+ ldr r0, [r4]
+ cmp r0, 0xE
+ bls _08099C24
+ b _08099DC0
+_08099C24:
+ lsls r0, 2
+ ldr r1, _08099C30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08099C30: .4byte _08099C34
+ .align 2, 0
+_08099C34:
+ .4byte _08099DC0
+ .4byte _08099C70
+ .4byte _08099CD8
+ .4byte _08099C70
+ .4byte _08099CD8
+ .4byte _08099C70
+ .4byte _08099CD8
+ .4byte _08099C70
+ .4byte _08099CD8
+ .4byte _08099C70
+ .4byte _08099CD8
+ .4byte _08099C70
+ .4byte _08099CD8
+ .4byte _08099CD8
+ .4byte _08099CD8
+_08099C70:
+ ldr r0, _08099C80
+ ldrh r1, [r0, 0x14]
+ adds r3, r0, 0
+ cmp r1, 0xFF
+ bls _08099C84
+ movs r0, 0
+ str r0, [r3]
+ b _08099DC0
+ .align 2, 0
+_08099C80: .4byte gUnknown_2039978
+_08099C84:
+ ldr r0, _08099CA0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08099C8E
+ b _08099DC0
+_08099C8E:
+ movs r2, 0
+ ldr r0, [r3]
+ cmp r0, 0x3
+ beq _08099CB2
+ cmp r0, 0x3
+ bhi _08099CA4
+ cmp r0, 0x1
+ beq _08099CAE
+ b _08099CBC
+ .align 2, 0
+_08099CA0: .4byte gUnknown_2039990
+_08099CA4:
+ cmp r0, 0x5
+ beq _08099CB6
+ cmp r0, 0x7
+ beq _08099CBA
+ b _08099CBC
+_08099CAE:
+ movs r2, 0x2
+ b _08099CC0
+_08099CB2:
+ movs r2, 0x4
+ b _08099CC0
+_08099CB6:
+ movs r2, 0x6
+ b _08099CC0
+_08099CBA:
+ movs r2, 0x8
+_08099CBC:
+ cmp r2, 0
+ beq _08099CD4
+_08099CC0:
+ ldr r0, _08099CD0
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ adds r0, r2, 0
+ ldr r2, [r3, 0x4]
+ bl sub_8099AFC
+ b _08099DC0
+ .align 2, 0
+_08099CD0: .4byte gUnknown_2039992
+_08099CD4:
+ str r2, [r3]
+ b _08099DC0
+_08099CD8:
+ ldr r2, _08099CE4
+ ldrh r0, [r2, 0x14]
+ cmp r0, 0
+ bne _08099CE8
+ str r0, [r2]
+ b _08099DC0
+ .align 2, 0
+_08099CE4: .4byte gUnknown_2039978
+_08099CE8:
+ ldr r0, _08099D00
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08099DC0
+ ldr r0, [r2]
+ ldr r1, _08099D04
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ ldr r2, [r2, 0x4]
+ bl sub_8099AFC
+ b _08099DC0
+ .align 2, 0
+_08099D00: .4byte gUnknown_2039990
+_08099D04: .4byte gUnknown_2039992
+_08099D08:
+ ldr r0, _08099D88
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08099D98
+ movs r5, 0x1
+ ldr r4, _08099D8C
+ ldrh r0, [r4, 0xC]
+ cmp r0, 0
+ bne _08099D20
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099D46
+_08099D20:
+ movs r5, 0
+ ldr r0, [r4]
+ cmp r0, 0x3
+ beq _08099D34
+ ldr r0, _08099D90
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r4, 0
+ bl sub_8099880
+_08099D34:
+ adds r0, r4, 0
+ bl sub_80998E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08099D46
+ ldrh r0, [r4, 0xC]
+ bl sub_8099DD0
+_08099D46:
+ ldr r4, _08099D94
+ ldrh r0, [r4, 0xC]
+ cmp r0, 0
+ bne _08099D54
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08099D7A
+_08099D54:
+ movs r5, 0
+ ldr r0, [r4]
+ cmp r0, 0x3
+ beq _08099D68
+ ldr r0, _08099D90
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r0, r4, 0
+ bl sub_8099880
+_08099D68:
+ adds r0, r4, 0
+ bl sub_80998E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08099D7A
+ ldrh r0, [r4, 0xC]
+ bl sub_8099E58
+_08099D7A:
+ cmp r5, 0
+ beq _08099DC0
+ ldr r1, _08099D88
+ movs r0, 0
+ strb r0, [r1]
+ b _08099DC0
+ .align 2, 0
+_08099D88: .4byte gUnknown_2039990
+_08099D8C: .4byte gUnknown_2039958
+_08099D90: .4byte gUnknown_2039992
+_08099D94: .4byte gUnknown_2039968
+_08099D98:
+ ldr r4, _08099DC8
+ adds r0, r4, 0
+ bl sub_80998E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08099DAC
+ ldrh r0, [r4, 0xC]
+ bl sub_8099DD0
+_08099DAC:
+ ldr r4, _08099DCC
+ adds r0, r4, 0
+ bl sub_80998E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08099DC0
+ ldrh r0, [r4, 0xC]
+ bl sub_8099E58
+_08099DC0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08099DC8: .4byte gUnknown_2039958
+_08099DCC: .4byte gUnknown_2039968
+ thumb_func_end sub_8099BE4
+
+ thumb_func_start sub_8099DD0
+sub_8099DD0:
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r4, 0
+ ldr r6, _08099DF4
+ movs r5, 0xD
+_08099DDC:
+ ldrh r1, [r6]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08099DF8
+ lsrs r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _08099E00
+ .align 2, 0
+_08099DF4: .4byte gUnknown_2039998
+_08099DF8:
+ lsrs r0, r4, 16
+ adds r1, r7, 0
+ bl sub_8003664
+_08099E00:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r4, r0
+ adds r6, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08099DDC
+ ldr r0, _08099E30
+ movs r4, 0x80
+ lsls r4, 13
+ adds r6, r0, 0
+ adds r6, 0x20
+ movs r5, 0xE
+_08099E1A:
+ ldrh r1, [r6]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08099E34
+ lsrs r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _08099E3C
+ .align 2, 0
+_08099E30: .4byte gUnknown_2039998
+_08099E34:
+ lsrs r0, r4, 16
+ adds r1, r7, 0
+ bl sub_8003664
+_08099E3C:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r4, r0
+ adds r6, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08099E1A
+ movs r0, 0x20
+ adds r1, r7, 0
+ bl sub_8003664
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099DD0
+
+ thumb_func_start sub_8099E58
+sub_8099E58:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xF
+ adds r1, r4, 0
+ bl sub_8003664
+ movs r0, 0xE
+ adds r1, r4, 0
+ bl sub_8003664
+ movs r0, 0x1F
+ adds r1, r4, 0
+ bl sub_8003664
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099E58
+
+ thumb_func_start sub_8099E80
+sub_8099E80:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ str r1, [sp]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _08099EA0
+ ldr r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0xE
+ bls _08099E96
+ b _0809A558
+_08099E96:
+ lsls r0, r1, 2
+ ldr r1, _08099EA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08099EA0: .4byte gUnknown_2039978
+_08099EA4: .4byte _08099EA8
+ .align 2, 0
+_08099EA8:
+ .4byte _0809A558
+ .4byte _08099EE4
+ .4byte _0809A05A
+ .4byte _0809A1D2
+ .4byte _0809A34A
+ .4byte _08099FDE
+ .4byte _0809A156
+ .4byte _0809A2CE
+ .4byte _0809A4BC
+ .4byte _08099F5E
+ .4byte _0809A0D6
+ .4byte _0809A24E
+ .4byte _0809A3EA
+ .4byte _0809A48A
+ .4byte _0809A48A
+_08099EE4:
+ movs r4, 0
+ movs r5, 0
+ ldr r7, _08099F00
+_08099EEA:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08099F04
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _08099F0E
+ .align 2, 0
+_08099F00: .4byte gUnknown_2039998
+_08099F04:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036AC
+_08099F0E:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _08099EEA
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+ ldr r0, _08099F40
+ adds r7, r0, 0
+ adds r7, 0x20
+_08099F28:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08099F44
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _08099F4E
+ .align 2, 0
+_08099F40: .4byte gUnknown_2039998
+_08099F44:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036AC
+_08099F4E:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _08099F28
+ b _0809A558
+_08099F5E:
+ movs r4, 0xE
+ movs r5, 0xE0
+ lsls r5, 12
+ ldr r0, _08099F80
+ adds r7, r0, 0
+ adds r7, 0x1C
+_08099F6A:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08099F84
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _08099F8E
+ .align 2, 0
+_08099F80: .4byte gUnknown_2039998
+_08099F84:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036AC
+_08099F8E:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _08099F6A
+ movs r4, 0x1F
+ movs r5, 0xF8
+ lsls r5, 13
+ ldr r0, _08099FC0
+ adds r7, r0, 0
+ adds r7, 0x3E
+_08099FA8:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08099FC4
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _08099FCE
+ .align 2, 0
+_08099FC0: .4byte gUnknown_2039998
+_08099FC4:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036AC
+_08099FCE:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _08099FA8
+ b _0809A558
+_08099FDE:
+ movs r4, 0
+ movs r5, 0
+ ldr r7, _08099FFC
+_08099FE4:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A000
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A00A
+ .align 2, 0
+_08099FFC: .4byte gUnknown_2039998
+_0809A000:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036AC
+_0809A00A:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xD
+ ble _08099FE4
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+ ldr r0, _0809A03C
+ adds r7, r0, 0
+ adds r7, 0x20
+_0809A024:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A040
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A04A
+ .align 2, 0
+_0809A03C: .4byte gUnknown_2039998
+_0809A040:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036AC
+_0809A04A:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1E
+ ble _0809A024
+ b _0809A558
+_0809A05A:
+ movs r4, 0
+ movs r5, 0
+ ldr r7, _0809A078
+_0809A060:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A07C
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A086
+ .align 2, 0
+_0809A078: .4byte gUnknown_2039998
+_0809A07C:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036F4
+_0809A086:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0809A060
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+ ldr r0, _0809A0B8
+ adds r7, r0, 0
+ adds r7, 0x20
+_0809A0A0:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A0BC
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A0C6
+ .align 2, 0
+_0809A0B8: .4byte gUnknown_2039998
+_0809A0BC:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036F4
+_0809A0C6:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0809A0A0
+ b _0809A558
+_0809A0D6:
+ movs r4, 0xE
+ movs r5, 0xE0
+ lsls r5, 12
+ ldr r0, _0809A0F8
+ adds r7, r0, 0
+ adds r7, 0x1C
+_0809A0E2:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A0FC
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A106
+ .align 2, 0
+_0809A0F8: .4byte gUnknown_2039998
+_0809A0FC:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036F4
+_0809A106:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0809A0E2
+ movs r4, 0x1F
+ movs r5, 0xF8
+ lsls r5, 13
+ ldr r0, _0809A138
+ adds r7, r0, 0
+ adds r7, 0x3E
+_0809A120:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A13C
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A146
+ .align 2, 0
+_0809A138: .4byte gUnknown_2039998
+_0809A13C:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036F4
+_0809A146:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0809A120
+ b _0809A558
+_0809A156:
+ movs r4, 0
+ movs r5, 0
+ ldr r7, _0809A174
+_0809A15C:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A178
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A182
+ .align 2, 0
+_0809A174: .4byte gUnknown_2039998
+_0809A178:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036F4
+_0809A182:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xD
+ ble _0809A15C
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+ ldr r0, _0809A1B4
+ adds r7, r0, 0
+ adds r7, 0x20
+_0809A19C:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A1B8
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A1C2
+ .align 2, 0
+_0809A1B4: .4byte gUnknown_2039998
+_0809A1B8:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80036F4
+_0809A1C2:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1E
+ ble _0809A19C
+ b _0809A558
+_0809A1D2:
+ movs r4, 0
+ movs r5, 0
+ ldr r7, _0809A1F0
+_0809A1D8:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A1F4
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A1FE
+ .align 2, 0
+_0809A1F0: .4byte gUnknown_2039998
+_0809A1F4:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_8003780
+_0809A1FE:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0809A1D8
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+ ldr r0, _0809A230
+ adds r7, r0, 0
+ adds r7, 0x20
+_0809A218:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A234
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A23E
+ .align 2, 0
+_0809A230: .4byte gUnknown_2039998
+_0809A234:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_8003780
+_0809A23E:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0809A218
+ b _0809A558
+_0809A24E:
+ movs r4, 0xE
+ movs r5, 0xE0
+ lsls r5, 12
+ ldr r0, _0809A270
+ adds r7, r0, 0
+ adds r7, 0x1C
+_0809A25A:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A274
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A27E
+ .align 2, 0
+_0809A270: .4byte gUnknown_2039998
+_0809A274:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_8003780
+_0809A27E:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0809A25A
+ movs r4, 0x1F
+ movs r5, 0xF8
+ lsls r5, 13
+ ldr r0, _0809A2B0
+ adds r7, r0, 0
+ adds r7, 0x3E
+_0809A298:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A2B4
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A2BE
+ .align 2, 0
+_0809A2B0: .4byte gUnknown_2039998
+_0809A2B4:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_8003780
+_0809A2BE:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0809A298
+ b _0809A558
+_0809A2CE:
+ movs r4, 0
+ movs r5, 0
+ ldr r7, _0809A2EC
+_0809A2D4:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A2F0
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A2FA
+ .align 2, 0
+_0809A2EC: .4byte gUnknown_2039998
+_0809A2F0:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_8003780
+_0809A2FA:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0xD
+ ble _0809A2D4
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+ ldr r0, _0809A32C
+ adds r7, r0, 0
+ adds r7, 0x20
+_0809A314:
+ ldrh r1, [r7]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A330
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A33A
+ .align 2, 0
+_0809A32C: .4byte gUnknown_2039998
+_0809A330:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_8003780
+_0809A33A:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r7, 0x2
+ adds r4, 0x1
+ cmp r4, 0x1E
+ ble _0809A314
+ b _0809A558
+_0809A34A:
+ movs r4, 0
+ movs r5, 0
+_0809A34E:
+ ldr r0, _0809A36C
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A370
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A38C
+ .align 2, 0
+_0809A36C: .4byte gUnknown_2039998
+_0809A370:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A382
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ bl sub_8003664
+ b _0809A38C
+_0809A382:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80037C8
+_0809A38C:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0809A34E
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+_0809A39E:
+ ldr r0, _0809A3BC
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A3C0
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A3DC
+ .align 2, 0
+_0809A3BC: .4byte gUnknown_2039998
+_0809A3C0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A3D2
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ bl sub_8003664
+ b _0809A3DC
+_0809A3D2:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80037C8
+_0809A3DC:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0809A39E
+ b _0809A558
+_0809A3EA:
+ movs r4, 0xE
+ movs r5, 0xE0
+ lsls r5, 12
+_0809A3F0:
+ ldr r0, _0809A40C
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A410
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A42C
+ .align 2, 0
+_0809A40C: .4byte gUnknown_2039998
+_0809A410:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A422
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ bl sub_8003664
+ b _0809A42C
+_0809A422:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80037C8
+_0809A42C:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0809A3F0
+ movs r4, 0x1F
+ movs r5, 0xF8
+ lsls r5, 13
+_0809A43E:
+ ldr r0, _0809A45C
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A460
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A47C
+ .align 2, 0
+_0809A45C: .4byte gUnknown_2039998
+_0809A460:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A472
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ bl sub_8003664
+ b _0809A47C
+_0809A472:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80037C8
+_0809A47C:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0809A43E
+ b _0809A558
+_0809A48A:
+ ldr r0, [r2]
+ cmp r0, 0xD
+ beq _0809A496
+ cmp r0, 0xE
+ beq _0809A4AA
+ b _0809A4BC
+_0809A496:
+ mov r0, sp
+ movs r1, 0x90
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x2]
+ movs r0, 0x1
+ negs r0, r0
+ b _0809A4BA
+_0809A4AA:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r0, 0xC0
+ strb r0, [r1, 0x1]
+ movs r0, 0x80
+ strb r0, [r1, 0x2]
+ subs r0, 0x81
+_0809A4BA:
+ strb r0, [r1, 0x3]
+_0809A4BC:
+ movs r4, 0
+ movs r5, 0
+_0809A4C0:
+ ldr r0, _0809A4DC
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A4E0
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A4FC
+ .align 2, 0
+_0809A4DC: .4byte gUnknown_2039998
+_0809A4E0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A4F2
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ bl sub_8003664
+ b _0809A4FC
+_0809A4F2:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80037C8
+_0809A4FC:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0xD
+ ble _0809A4C0
+ movs r4, 0x10
+ movs r5, 0x80
+ lsls r5, 13
+_0809A50E:
+ ldr r0, _0809A52C
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A530
+ lsrs r0, r5, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8003664
+ b _0809A54C
+ .align 2, 0
+_0809A52C: .4byte gUnknown_2039998
+_0809A530:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809A542
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ bl sub_8003664
+ b _0809A54C
+_0809A542:
+ lsrs r0, r5, 16
+ adds r1, r6, 0
+ ldr r2, [sp]
+ bl sub_80037C8
+_0809A54C:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x1E
+ ble _0809A50E
+_0809A558:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8099E80
+
+ thumb_func_start sub_809A560
+sub_809A560:
+ push {r4-r6,lr}
+ bl sub_8014144
+ ldr r6, _0809A5F4
+ movs r0, 0xB5
+ lsls r0, 3
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r6]
+ movs r4, 0
+ str r4, [r0]
+ movs r5, 0x1
+ negs r5, r5
+ str r5, [r0, 0x4]
+ str r5, [r0, 0x8]
+ ldr r0, _0809A5F8
+ strh r4, [r0]
+ ldr r0, _0809A5FC
+ strh r4, [r0]
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_80095CC
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8009408
+ bl sub_809B294
+ ldr r0, [r6]
+ ldr r2, _0809A600
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r2, 0x4
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r2, 0x4
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r2, 0x4
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r2, 0x4
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r2, 0x4
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r2, 0x4
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r2, 0x4
+ adds r1, r0, r2
+ str r5, [r1]
+ ldr r1, _0809A604
+ adds r0, r1
+ str r5, [r0]
+ bl sub_809A7EC
+ ldr r0, [r6]
+ ldr r2, _0809A608
+ adds r0, r2
+ ldr r1, _0809A60C
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A5F4: .4byte gUnknown_3001B64
+_0809A5F8: .4byte gUnknown_20399DC
+_0809A5FC: .4byte gUnknown_20399DE
+_0809A600: .4byte 0x00000414
+_0809A604: .4byte 0x00000434
+_0809A608: .4byte 0x000005a4
+_0809A60C: .4byte 0x0000ffff
+ thumb_func_end sub_809A560
+
+ thumb_func_start sub_809A610
+sub_809A610:
+ push {r4,lr}
+ bl sub_809A62C
+ ldr r4, _0809A628
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A628: .4byte gUnknown_3001B64
+ thumb_func_end sub_809A610
+
+ thumb_func_start sub_809A62C
+sub_809A62C:
+ push {r4,lr}
+ ldr r0, _0809A670
+ ldr r0, [r0]
+ movs r2, 0
+ str r2, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ ldr r0, _0809A674
+ strh r2, [r0]
+ ldr r0, _0809A678
+ strh r2, [r0]
+ movs r4, 0
+_0809A648:
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_809A83C
+ adds r4, 0x1
+ cmp r4, 0x9
+ ble _0809A648
+ ldr r0, _0809A670
+ ldr r0, [r0]
+ ldr r1, _0809A67C
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_809A680
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A670: .4byte gUnknown_3001B64
+_0809A674: .4byte gUnknown_20399DC
+_0809A678: .4byte gUnknown_20399DE
+_0809A67C: .4byte 0x00000414
+ thumb_func_end sub_809A62C
+
+ thumb_func_start sub_809A680
+sub_809A680:
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0x4
+ bhi _0809A6C2
+ lsls r0, r4, 2
+ ldr r1, _0809A694
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809A694: .4byte _0809A698
+ .align 2, 0
+_0809A698:
+ .4byte _0809A6AC
+ .4byte _0809A6BC
+ .4byte _0809A6BC
+ .4byte _0809A6BC
+ .4byte _0809A6BC
+_0809A6AC:
+ bl sub_809B294
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ b _0809A6D0
+_0809A6BC:
+ bl sub_809B294
+ b _0809A6D0
+_0809A6C2:
+ bl sub_809B294
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+_0809A6D0:
+ ldr r0, _0809A6E0
+ ldr r0, [r0]
+ str r4, [r0]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809A6E0: .4byte gUnknown_3001B64
+ thumb_func_end sub_809A680
+
+ thumb_func_start sub_809A6E4
+sub_809A6E4:
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0809A6F4
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0809A6F4: .4byte gUnknown_20399DC
+ thumb_func_end sub_809A6E4
+
+ thumb_func_start sub_809A6F8
+sub_809A6F8:
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0809A708
+ ldrh r1, [r2]
+ bics r1, r0
+ strh r1, [r2]
+ bx lr
+ .align 2, 0
+_0809A708: .4byte gUnknown_20399DC
+ thumb_func_end sub_809A6F8
+
+ thumb_func_start sub_809A70C
+sub_809A70C:
+ ldr r0, _0809A714
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_0809A714: .4byte gUnknown_20399DC
+ thumb_func_end sub_809A70C
+
+ thumb_func_start nullsub_209
+nullsub_209:
+ bx lr
+ thumb_func_end nullsub_209
+
+ thumb_func_start sub_809A71C
+sub_809A71C:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _0809A734
+ ldr r0, [r0]
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ adds r0, r1, 0
+ bl sub_801416C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A734: .4byte gUnknown_3001B64
+ thumb_func_end sub_809A71C
+
+ thumb_func_start sub_809A738
+sub_809A738:
+ push {lr}
+ ldr r2, _0809A74C
+ ldr r2, [r2]
+ str r0, [r2, 0x4]
+ str r1, [r2, 0x8]
+ bl sub_801416C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A74C: .4byte gUnknown_3001B64
+ thumb_func_end sub_809A738
+
+ thumb_func_start sub_809A750
+sub_809A750:
+ push {lr}
+ ldr r0, _0809A764
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_809B40C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809A764: .4byte gUnknown_3001B64
+ thumb_func_end sub_809A750
+
+ thumb_func_start sub_809A768
+sub_809A768:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_809A768
+
+ thumb_func_start sub_809A76C
+sub_809A76C:
+ push {lr}
+ ldr r0, _0809A78C
+ ldr r0, [r0]
+ ldr r1, [r0]
+ cmp r1, 0x1
+ bcc _0809A7A4
+ cmp r1, 0x2
+ bls _0809A790
+ cmp r1, 0x3
+ bne _0809A7A4
+ adds r0, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0x4
+ b _0809A798
+ .align 2, 0
+_0809A78C: .4byte gUnknown_3001B64
+_0809A790:
+ adds r0, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0x84
+_0809A798:
+ movs r3, 0
+ bl sub_809B2B8
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809A7AE
+_0809A7A4:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_809A680
+ movs r0, 0
+_0809A7AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809A76C
+
+ thumb_func_start sub_809A7B4
+sub_809A7B4:
+ push {lr}
+ ldr r0, _0809A7D8
+ ldr r0, [r0]
+ ldr r1, [r0]
+ cmp r1, 0x3
+ bhi _0809A7DC
+ cmp r1, 0x1
+ bcc _0809A7DC
+ adds r0, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0x4
+ movs r3, 0
+ bl sub_809B2B8
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809A7E6
+ .align 2, 0
+_0809A7D8: .4byte gUnknown_3001B64
+_0809A7DC:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_809A680
+ movs r0, 0
+_0809A7E6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809A7B4
+
+ thumb_func_start sub_809A7EC
+sub_809A7EC:
+ push {r4-r6,lr}
+ ldr r0, _0809A830
+ ldr r0, [r0]
+ ldr r2, _0809A834
+ adds r1, r0, r2
+ ldr r0, _0809A838
+ adds r6, r0, 0
+ movs r3, 0
+ movs r2, 0
+ movs r4, 0x9
+ movs r5, 0xFF
+_0809A802:
+ ldrh r0, [r1]
+ orrs r0, r6
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ strb r3, [r1, 0x4]
+ strb r3, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ orrs r0, r5
+ strb r0, [r1, 0x6]
+ strb r3, [r1, 0x7]
+ str r2, [r1, 0x8]
+ str r2, [r1, 0xC]
+ str r2, [r1, 0x10]
+ str r2, [r1, 0x14]
+ strb r3, [r1, 0x1C]
+ str r2, [r1, 0x20]
+ subs r4, 0x1
+ adds r1, 0x24
+ cmp r4, 0
+ bge _0809A802
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A830: .4byte gUnknown_3001B64
+_0809A834: .4byte 0x0000043c
+_0809A838: .4byte 0x0000ffff
+ thumb_func_end sub_809A7EC
+
+ thumb_func_start sub_809A83C
+sub_809A83C:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0809A8A0
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r3, _0809A8A4
+ adds r1, r3
+ ldr r2, [r2]
+ adds r6, r2, r1
+ ldr r1, _0809A8A8
+ strh r1, [r6]
+ movs r2, 0
+ movs r7, 0
+ strh r7, [r6, 0x2]
+ strb r2, [r6, 0x4]
+ strb r2, [r6, 0x5]
+ movs r1, 0xFF
+ strb r1, [r6, 0x6]
+ strb r2, [r6, 0x7]
+ str r7, [r6, 0x8]
+ str r7, [r6, 0xC]
+ str r7, [r6, 0x10]
+ str r7, [r6, 0x14]
+ strb r2, [r6, 0x1C]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 4
+ ldr r0, _0809A8AC
+ adds r0, r4, r0
+ ldr r5, _0809A8B0
+ adds r1, r5, 0
+ bl strcpy
+ ldr r0, _0809A8B4
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl strcpy
+ ldr r0, [r6, 0x20]
+ cmp r0, 0
+ beq _0809A89A
+ bl CloseFile
+ str r7, [r6, 0x20]
+_0809A89A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809A8A0: .4byte gUnknown_3001B64
+_0809A8A4: .4byte 0x0000043c
+_0809A8A8: .4byte 0x0000ffff
+_0809A8AC: .4byte gUnknown_202DF98
+_0809A8B0: .4byte gUnknown_811615C
+_0809A8B4: .4byte gUnknown_202E2B8
+ thumb_func_end sub_809A83C
+
+ thumb_func_start sub_809A8B8
+sub_809A8B8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ asrs r0, 16
+ mov r9, r0
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, _0809A928
+ mov r2, r9
+ lsls r0, r2, 3
+ add r0, r9
+ lsls r0, 2
+ ldr r2, _0809A92C
+ adds r0, r2
+ ldr r1, [r1]
+ adds r7, r1, r0
+ movs r0, 0x1
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, [r7, 0x20]
+ cmp r0, 0
+ beq _0809A8F6
+ bl CloseFile
+ ldr r2, [sp, 0x4]
+ str r2, [r7, 0x20]
+_0809A8F6:
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80A7DDC
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0xA
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x13
+ bhi _0809A9D6
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80A8D54
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _0809A930
+ movs r2, 0
+ mov r10, r2
+ b _0809A9D6
+ .align 2, 0
+_0809A928: .4byte gUnknown_3001B64
+_0809A92C: .4byte 0x0000043c
+_0809A930:
+ bl sub_808D3BC
+ cmp r5, r0
+ bne _0809A940
+ mov r1, sp
+ movs r0, 0x21
+ strh r0, [r1]
+ b _0809A9D6
+_0809A940:
+ bl sub_808D3F8
+ cmp r5, r0
+ bne _0809A950
+ mov r1, sp
+ movs r0, 0x22
+ strh r0, [r1]
+ b _0809A9D6
+_0809A950:
+ ldrb r0, [r5, 0x4]
+ subs r0, 0x43
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _0809A990
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r0, _0809A978
+ cmp r1, r0
+ beq _0809A9D6
+ cmp r1, r0
+ ble _0809A97C
+ adds r0, 0x16
+ cmp r1, r0
+ bgt _0809A98A
+ subs r0, 0x1
+ cmp r1, r0
+ blt _0809A98A
+ b _0809A9D6
+ .align 2, 0
+_0809A978: .4byte 0x00000183
+_0809A97C:
+ movs r0, 0x82
+ lsls r0, 1
+ cmp r1, r0
+ beq _0809A9D6
+ adds r0, 0x2F
+ cmp r1, r0
+ beq _0809A9D6
+_0809A98A:
+ movs r1, 0
+ mov r10, r1
+ b _0809A9D6
+_0809A990:
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r0, 0x87
+ lsls r0, 1
+ cmp r1, r0
+ bgt _0809A9B0
+ subs r0, 0x2
+ cmp r1, r0
+ bge _0809A9D6
+ cmp r1, 0x90
+ blt _0809A9D2
+ cmp r1, 0x92
+ ble _0809A9D6
+ cmp r1, 0x96
+ beq _0809A9D6
+ b _0809A9D2
+_0809A9B0:
+ movs r0, 0xCF
+ lsls r0, 1
+ cmp r1, r0
+ bgt _0809A9CC
+ subs r0, 0x4
+ cmp r1, r0
+ bge _0809A9D6
+ subs r0, 0x87
+ cmp r1, r0
+ bgt _0809A9D2
+ subs r0, 0x1
+ cmp r1, r0
+ blt _0809A9D2
+ b _0809A9D6
+_0809A9CC:
+ ldr r0, _0809A9F0
+ cmp r1, r0
+ beq _0809A9D6
+_0809A9D2:
+ movs r0, 0
+ mov r10, r0
+_0809A9D6:
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x21
+ bhi _0809AA98
+ lsls r0, 2
+ ldr r1, _0809A9F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809A9F0: .4byte 0x000001a7
+_0809A9F4: .4byte _0809A9F8
+ .align 2, 0
+_0809A9F8:
+ .4byte _0809AA80
+ .4byte _0809AA80
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA80
+ .4byte _0809AA80
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA98
+ .4byte _0809AA80
+ .4byte _0809AA80
+_0809AA80:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80A8CF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809AA94
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ b _0809AA98
+_0809AA94:
+ movs r0, 0
+ mov r10, r0
+_0809AA98:
+ mov r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809AB34
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ blt _0809AACE
+ mov r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ mov r8, r2
+ movs r6, 0
+ strh r0, [r7]
+ adds r0, r1, 0
+ bl sub_80A8BFC
+ strh r0, [r7, 0x2]
+ b _0809AAE6
+_0809AACE:
+ ldrh r1, [r4]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0809AB34
+ mov r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ mov r8, r2
+ movs r6, 0
+ strh r0, [r7]
+ strh r1, [r7, 0x2]
+_0809AAE6:
+ mov r0, r9
+ lsls r4, r0, 2
+ add r4, r9
+ lsls r4, 4
+ ldr r0, _0809AB28
+ adds r0, r4, r0
+ ldr r5, _0809AB2C
+ adds r1, r5, 0
+ bl strcpy
+ ldr r0, _0809AB30
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl strcpy
+ mov r1, r10
+ strb r1, [r7, 0x4]
+ mov r2, sp
+ ldrb r2, [r2, 0x4]
+ strb r2, [r7, 0x5]
+ movs r0, 0xFF
+ strb r0, [r7, 0x6]
+ mov r0, r8
+ strb r0, [r7, 0x7]
+ str r6, [r7, 0x8]
+ str r6, [r7, 0xC]
+ str r6, [r7, 0x10]
+ str r6, [r7, 0x14]
+ strb r0, [r7, 0x1C]
+ movs r0, 0x1
+ b _0809AB3C
+ .align 2, 0
+_0809AB28: .4byte gUnknown_202DF98
+_0809AB2C: .4byte gUnknown_811616C
+_0809AB30: .4byte gUnknown_202E2B8
+_0809AB34:
+ mov r0, r9
+ bl sub_809A83C
+ movs r0, 0
+_0809AB3C:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809A8B8
+
+ thumb_func_start sub_809AB4C
+sub_809AB4C:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0809AB78
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r0, 2
+ ldr r3, _0809AB7C
+ adds r0, r3
+ ldr r2, [r2]
+ adds r6, r2, r0
+ adds r0, r5, 0
+ bl sub_809A8B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809AB80
+ movs r0, 0
+ b _0809ABA0
+ .align 2, 0
+_0809AB78: .4byte gUnknown_3001B64
+_0809AB7C: .4byte 0x0000043c
+_0809AB80:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 4
+ ldr r0, _0809ABA8
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ bl sub_808D908
+ ldr r0, _0809ABAC
+ adds r4, r0
+ ldr r1, _0809ABB0
+ adds r0, r4, 0
+ bl strcpy
+ movs r0, 0x1
+_0809ABA0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809ABA8: .4byte gUnknown_202DF98
+_0809ABAC: .4byte gUnknown_202E2B8
+_0809ABB0: .4byte gUnknown_811617C
+ thumb_func_end sub_809AB4C
+
+ thumb_func_start sub_809ABB4
+sub_809ABB4:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0809ABE0
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r0, 2
+ ldr r3, _0809ABE4
+ adds r0, r3
+ ldr r2, [r2]
+ adds r6, r2, r0
+ adds r0, r5, 0
+ bl sub_809A8B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809ABE8
+ movs r0, 0
+ b _0809AC0A
+ .align 2, 0
+_0809ABE0: .4byte gUnknown_3001B64
+_0809ABE4: .4byte 0x0000043c
+_0809ABE8:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 4
+ ldr r5, _0809AC10
+ adds r5, r4, r5
+ movs r0, 0x2
+ ldrsh r1, [r6, r0]
+ adds r0, r5, 0
+ bl sub_808D908
+ ldr r0, _0809AC14
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl strcpy
+ movs r0, 0x1
+_0809AC0A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809AC10: .4byte gUnknown_202DF98
+_0809AC14: .4byte gUnknown_202E2B8
+ thumb_func_end sub_809ABB4
+
+ thumb_func_start sub_809AC18
+sub_809AC18:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0809AC44
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r0, 2
+ ldr r3, _0809AC48
+ adds r0, r3
+ ldr r2, [r2]
+ adds r6, r2, r0
+ adds r0, r5, 0
+ bl sub_809A8B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809AC4C
+ movs r0, 0
+ b _0809AC6E
+ .align 2, 0
+_0809AC44: .4byte gUnknown_3001B64
+_0809AC48: .4byte 0x0000043c
+_0809AC4C:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 4
+ ldr r0, _0809AC74
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ bl sub_808D908
+ ldr r0, _0809AC78
+ adds r4, r0
+ movs r3, 0
+ ldrsh r1, [r6, r3]
+ adds r0, r4, 0
+ bl sub_80A8EC0
+ movs r0, 0x1
+_0809AC6E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809AC74: .4byte gUnknown_202DF98
+_0809AC78: .4byte gUnknown_202E2B8
+ thumb_func_end sub_809AC18
+
+ thumb_func_start sub_809AC7C
+sub_809AC7C:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 24
+ asrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r2, _0809AD10
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0809AD14
+ adds r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ ldr r0, [r4, 0x20]
+ cmp r0, 0
+ beq _0809ACA8
+ bl CloseFile
+ movs r0, 0
+ str r0, [r4, 0x20]
+_0809ACA8:
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bge _0809ACB2
+ b _0809ADC0
+_0809ACB2:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0809ACBC
+ b _0809ADC0
+_0809ACBC:
+ cmp r1, 0
+ bne _0809ACC2
+ b _0809ADC0
+_0809ACC2:
+ cmp r6, 0x15
+ beq _0809ACCE
+ movs r0, 0
+ strb r6, [r4, 0x7]
+ str r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_0809ACCE:
+ ldr r2, _0809AD18
+ ldrb r0, [r4, 0x7]
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x8]
+ ldrh r0, [r0]
+ adds r0, r1
+ movs r6, 0
+ movs r3, 0
+ strh r0, [r4, 0x18]
+ ldrb r0, [r4, 0x7]
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0xC]
+ ldrh r0, [r0, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r4, 0x7]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ strb r0, [r4, 0x1D]
+ strb r6, [r4, 0x1E]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ bne _0809AD1C
+ strb r5, [r4, 0x6]
+ str r3, [r4, 0x10]
+ str r3, [r4, 0x14]
+ strb r6, [r4, 0x1C]
+ movs r0, 0
+ b _0809ADD2
+ .align 2, 0
+_0809AD10: .4byte gUnknown_3001B64
+_0809AD14: .4byte 0x0000043c
+_0809AD18: .4byte gUnknown_8116040
+_0809AD1C:
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0809ADC0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ bl sub_808DD90
+ str r0, [r4, 0x20]
+ cmp r0, 0
+ beq _0809ADB6
+ strb r5, [r4, 0x6]
+ str r0, [r4, 0x10]
+ movs r1, 0
+ bl GetFileDataPtr
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4D
+ beq _0809AD62
+ cmp r0, 0x4D
+ bgt _0809AD4C
+ cmp r0, 0x47
+ beq _0809AD56
+ b _0809ADA8
+_0809AD4C:
+ cmp r0, 0x53
+ beq _0809AD76
+ cmp r0, 0x73
+ beq _0809AD8A
+ b _0809ADA8
+_0809AD56:
+ movs r0, 0xF
+ ands r0, r5
+ cmp r0, 0x5
+ bgt _0809ADA8
+ adds r0, r5, 0x6
+ b _0809AD9C
+_0809AD62:
+ ldrb r0, [r4, 0x1D]
+ cmp r0, 0
+ beq _0809ADA8
+ movs r0, 0xF
+ ands r0, r5
+ cmp r0, 0x3
+ bgt _0809ADA8
+ strb r6, [r4, 0x1D]
+ adds r0, r5, 0x4
+ b _0809AD9C
+_0809AD76:
+ ldrb r0, [r4, 0x1D]
+ cmp r0, 0
+ beq _0809ADA8
+ movs r0, 0xF
+ ands r0, r5
+ cmp r0, 0
+ bgt _0809ADA8
+ strb r6, [r4, 0x1D]
+ adds r0, r5, 0x1
+ b _0809AD9C
+_0809AD8A:
+ ldrb r0, [r4, 0x1D]
+ cmp r0, 0
+ beq _0809ADA8
+ movs r0, 0xF
+ ands r0, r5
+ cmp r0, 0x1
+ bgt _0809ADA8
+ strb r6, [r4, 0x1D]
+ adds r0, r5, 0x2
+_0809AD9C:
+ lsls r0, 24
+ asrs r5, r0, 24
+ movs r0, 0x40
+ orrs r5, r0
+ lsls r0, r5, 24
+ asrs r5, r0, 24
+_0809ADA8:
+ ldr r0, [r4, 0x20]
+ ldr r0, [r0, 0x4]
+ str r0, [r4, 0x14]
+ movs r0, 0xF
+ ands r5, r0
+ strb r5, [r4, 0x1C]
+ b _0809ADBC
+_0809ADB6:
+ str r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ strb r6, [r4, 0x1C]
+_0809ADBC:
+ movs r0, 0x1
+ b _0809ADD2
+_0809ADC0:
+ movs r0, 0xFF
+ strb r0, [r4, 0x6]
+ movs r0, 0
+ strb r0, [r4, 0x7]
+ str r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+ str r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ strb r0, [r4, 0x1C]
+_0809ADD2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AC7C
+
+ thumb_func_start sub_809ADD8
+sub_809ADD8:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0809AE28
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0809AE2C
+ adds r1, r0
+ ldr r0, [r2]
+ adds r3, r0, r1
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ blt _0809AE34
+ cmp r0, 0
+ beq _0809AE34
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ str r0, [r3, 0x8]
+ str r1, [r3, 0xC]
+ ldr r2, _0809AE30
+ ldrb r0, [r3, 0x7]
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r3, 0x8]
+ ldrh r0, [r0]
+ adds r0, r1
+ strh r0, [r3, 0x18]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r3, 0xC]
+ ldrh r0, [r0, 0x2]
+ adds r0, r1
+ strh r0, [r3, 0x1A]
+ movs r0, 0x1
+ b _0809AE36
+ .align 2, 0
+_0809AE28: .4byte gUnknown_3001B64
+_0809AE2C: .4byte 0x0000043c
+_0809AE30: .4byte gUnknown_8116040
+_0809AE34:
+ movs r0, 0
+_0809AE36:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809ADD8
+
+ thumb_func_start sub_809AE3C
+sub_809AE3C:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ blt _0809AE88
+ ldr r1, _0809AE80
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ ldr r3, _0809AE84
+ adds r0, r3
+ ldr r1, [r1]
+ adds r4, r1, r0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0809AE74
+ movs r1, 0x6
+ ldrsb r1, [r4, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809AE74
+ adds r0, r2, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_809AC7C
+_0809AE74:
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ beq _0809AE88
+ adds r0, r4, 0
+ adds r0, 0x10
+ b _0809AE8A
+ .align 2, 0
+_0809AE80: .4byte gUnknown_3001B64
+_0809AE84: .4byte 0x0000043c
+_0809AE88:
+ movs r0, 0
+_0809AE8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AE3C
+
+ thumb_func_start sub_809AE90
+sub_809AE90:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r2, 0
+ lsls r1, 16
+ asrs r6, r1, 16
+ cmp r4, 0
+ bne _0809AEA4
+ bl sub_809A76C
+ b _0809AEE0
+_0809AEA4:
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809AEDC
+ ldr r1, _0809AED0
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_809A680
+ ldr r0, _0809AED4
+ ldr r0, [r0]
+ adds r0, 0xC
+ ldr r2, _0809AED8
+ lsls r1, r5, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl sub_809B2B8
+ b _0809AEE0
+ .align 2, 0
+_0809AED0: .4byte gUnknown_8116134
+_0809AED4: .4byte gUnknown_3001B64
+_0809AED8: .4byte gUnknown_8116148
+_0809AEDC:
+ bl sub_809A7B4
+_0809AEE0:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AE90
+
+ thumb_func_start sub_809AEEC
+sub_809AEEC:
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0809AF1C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809AF1C
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_809A680
+ ldr r0, _0809AF18
+ ldr r0, [r0]
+ adds r0, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0xC2
+ adds r3, r4, 0
+ bl sub_809B2B8
+ b _0809AF20
+ .align 2, 0
+_0809AF18: .4byte gUnknown_3001B64
+_0809AF1C:
+ bl sub_809A76C
+_0809AF20:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AEEC
+
+ thumb_func_start sub_809AF2C
+sub_809AF2C:
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0809AF5C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809AF5C
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_809A680
+ ldr r0, _0809AF58
+ ldr r0, [r0]
+ adds r0, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0xC2
+ adds r3, r4, 0
+ bl sub_809B2B8
+ b _0809AF60
+ .align 2, 0
+_0809AF58: .4byte gUnknown_3001B64
+_0809AF5C:
+ bl sub_809A76C
+_0809AF60:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AF2C
+
+ thumb_func_start sub_809AF6C
+sub_809AF6C:
+ push {r4,lr}
+ adds r4, r1, 0
+ cmp r4, 0
+ beq _0809AF9C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809AF9C
+ movs r0, 0x3
+ movs r1, 0x1
+ bl sub_809A680
+ ldr r0, _0809AF98
+ ldr r0, [r0]
+ adds r0, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0x65
+ adds r3, r4, 0
+ bl sub_809B2B8
+ b _0809AFA0
+ .align 2, 0
+_0809AF98: .4byte gUnknown_3001B64
+_0809AF9C:
+ bl sub_809A76C
+_0809AFA0:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AF6C
+
+ thumb_func_start sub_809AFAC
+sub_809AFAC:
+ push {lr}
+ movs r1, 0
+ ldr r0, _0809AFC4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x4
+ bne _0809AFBC
+ movs r1, 0x1
+_0809AFBC:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809AFC4: .4byte gUnknown_3001B64
+ thumb_func_end sub_809AFAC
+
+ thumb_func_start sub_809AFC8
+sub_809AFC8:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r1, 0
+ adds r1, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ asrs r1, 16
+ ldr r4, _0809AFF8
+ negs r2, r0
+ orrs r2, r0
+ lsrs r2, 31
+ str r1, [sp]
+ str r3, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ adds r3, r5, 0
+ bl sub_809B028
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809AFF8: .4byte gUnknown_81160E8
+ thumb_func_end sub_809AFC8
+
+ thumb_func_start sub_809AFFC
+sub_809AFFC:
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r0, sp
+ bl sub_809B18C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r4, 0
+ beq _0809B01C
+ movs r1, 0
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bne _0809B01A
+ movs r1, 0x1
+_0809B01A:
+ strb r1, [r4]
+_0809B01C:
+ adds r0, r2, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809AFFC
+
+ thumb_func_start sub_809B028
+sub_809B028:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ mov r8, r0
+ adds r7, r2, 0
+ adds r6, r3, 0
+ ldr r0, [sp, 0x2C]
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r0, 16
+ asrs r4, r0, 16
+ ldr r1, _0809B084
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_809A680
+ ldr r0, _0809B088
+ ldr r1, [r0]
+ ldr r0, _0809B08C
+ adds r2, r1, r0
+ movs r0, 0x1
+ str r0, [r2]
+ movs r0, 0x83
+ lsls r0, 3
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ ldr r2, _0809B090
+ adds r0, r1, r2
+ mov r2, r8
+ str r2, [r0]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r1, r2
+ movs r2, 0x2
+ str r2, [r0]
+ ldr r0, _0809B094
+ adds r1, r0
+ cmp r5, 0
+ beq _0809B098
+ str r2, [r1]
+ b _0809B09A
+ .align 2, 0
+_0809B084: .4byte gUnknown_8116134
+_0809B088: .4byte gUnknown_3001B64
+_0809B08C: .4byte 0x00000414
+_0809B090: .4byte 0x0000041c
+_0809B094: .4byte 0x00000424
+_0809B098:
+ str r5, [r1]
+_0809B09A:
+ ldr r0, _0809B0D4
+ ldr r0, [r0]
+ movs r1, 0x85
+ lsls r1, 3
+ adds r2, r0, r1
+ movs r1, 0
+ str r1, [r2]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ str r7, [r0]
+ ldr r0, _0809B0D8
+ lsls r2, r6, 1
+ adds r0, r2, r0
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ adds r5, r2, 0
+ cmp r0, 0
+ beq _0809B0F6
+ cmp r4, 0
+ bge _0809B0E4
+ ldr r0, _0809B0DC
+ ldr r1, _0809B0E0
+ bl strcpy
+ b _0809B0F6
+ .align 2, 0
+_0809B0D4: .4byte gUnknown_3001B64
+_0809B0D8: .4byte gUnknown_8116148
+_0809B0DC: .4byte gUnknown_202E5D8
+_0809B0E0: .4byte gUnknown_8116180
+_0809B0E4:
+ ldr r0, _0809B134
+ ldr r1, _0809B138
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 4
+ ldr r3, _0809B13C
+ adds r2, r3
+ bl sub_800D158
+_0809B0F6:
+ adds r0, r4, 0
+ bl sub_809AE3C
+ ldr r4, _0809B140
+ movs r1, 0
+ str r1, [sp]
+ movs r3, 0x4
+ str r3, [sp, 0x4]
+ str r1, [sp, 0x8]
+ str r0, [sp, 0xC]
+ ldr r0, _0809B144
+ adds r0, r5, r0
+ ldrh r2, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0809B11C
+ movs r1, 0xC
+_0809B11C:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0809B128
+ orrs r1, r3
+_0809B128:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0809B148
+ movs r0, 0x21
+ b _0809B14A
+ .align 2, 0
+_0809B134: .4byte gUnknown_202E5D8
+_0809B138: .4byte gUnknown_8116188
+_0809B13C: .4byte gUnknown_202E2B8
+_0809B140: .4byte sub_809B428
+_0809B144: .4byte gUnknown_8116148
+_0809B148:
+ movs r0, 0x1
+_0809B14A:
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r0, [sp, 0x30]
+ adds r1, r4, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_8014248
+ ldr r0, _0809B184
+ ldr r0, [r0]
+ ldr r1, _0809B188
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809B176
+ movs r0, 0x1
+ bl sub_809A6E4
+_0809B176:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B184: .4byte gUnknown_3001B64
+_0809B188: .4byte 0x00000424
+ thumb_func_end sub_809B028
+
+ thumb_func_start sub_809B18C
+sub_809B18C:
+ push {lr}
+ adds r1, r0, 0
+ ldr r2, _0809B1BC
+ cmp r1, 0
+ beq _0809B1A2
+ ldr r0, [r2]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_0809B1A2:
+ movs r1, 0
+ ldr r0, [r2]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x3
+ bne _0809B1B4
+ movs r1, 0x1
+_0809B1B4:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B1BC: .4byte gUnknown_3001B64
+ thumb_func_end sub_809B18C
+
+ thumb_func_start sub_809B1C0
+sub_809B1C0:
+ push {lr}
+ adds r3, r2, 0
+ movs r2, 0
+ bl sub_809B1D4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B1C0
+
+ thumb_func_start sub_809B1D4
+sub_809B1D4:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ cmp r4, 0xB
+ beq _0809B1E8
+ cmp r4, 0xC
+ beq _0809B1F0
+ b _0809B202
+_0809B1E8:
+ adds r0, r5, 0
+ bl sub_8021700
+ b _0809B1F8
+_0809B1F0:
+ bl sub_8001D88
+ bl sub_802FCF0
+_0809B1F8:
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809B202
+ movs r0, 0
+ b _0809B24C
+_0809B202:
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_809A680
+ ldr r0, _0809B254
+ ldr r1, [r0]
+ ldr r2, _0809B258
+ adds r0, r1, r2
+ str r4, [r0]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r1, r3
+ movs r2, 0
+ str r2, [r0]
+ adds r3, 0x4
+ adds r0, r1, r3
+ str r2, [r0]
+ movs r0, 0x84
+ lsls r0, 3
+ adds r2, r1, r0
+ movs r0, 0x1
+ str r0, [r2]
+ ldr r2, _0809B25C
+ adds r0, r1, r2
+ str r5, [r0]
+ adds r3, 0xC
+ adds r0, r1, r3
+ str r6, [r0]
+ adds r2, 0x8
+ adds r0, r1, r2
+ str r7, [r0]
+ adds r3, 0x8
+ adds r1, r3
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1]
+ movs r0, 0x1
+_0809B24C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B254: .4byte gUnknown_3001B64
+_0809B258: .4byte 0x00000414
+_0809B25C: .4byte 0x00000424
+ thumb_func_end sub_809B1D4
+
+ thumb_func_start sub_809B260
+sub_809B260:
+ push {lr}
+ adds r1, r0, 0
+ ldr r2, _0809B290
+ cmp r1, 0
+ beq _0809B276
+ ldr r0, [r2]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_0809B276:
+ movs r1, 0
+ ldr r0, [r2]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x3
+ bne _0809B288
+ movs r1, 0x1
+_0809B288:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809B290: .4byte gUnknown_3001B64
+ thumb_func_end sub_809B260
+
+ thumb_func_start sub_809B294
+sub_809B294:
+ push {lr}
+ movs r0, 0x3
+ bl sub_80063D8
+ ldr r0, _0809B2B4
+ ldr r0, [r0]
+ adds r0, 0xC
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0
+ movs r3, 0
+ bl sub_809B2B8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B2B4: .4byte gUnknown_3001B64
+ thumb_func_end sub_809B294
+
+ thumb_func_start sub_809B2B8
+sub_809B2B8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r7, r3, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ asrs r6, r2, 16
+ strh r5, [r4]
+ cmp r7, 0
+ bne _0809B2F6
+ cmp r5, 0
+ bne _0809B2DE
+ str r7, [r4, 0x4]
+ movs r0, 0
+ b _0809B3FC
+_0809B2DE:
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ bne _0809B2E8
+ b _0809B3FA
+_0809B2E8:
+ bl sub_8014490
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_809A680
+ b _0809B3FA
+_0809B2F6:
+ movs r0, 0x1
+ str r0, [r4, 0x4]
+ adds r0, 0xFF
+ ands r0, r5
+ cmp r0, 0
+ beq _0809B32A
+ cmp r6, 0
+ bge _0809B318
+ ldr r0, _0809B310
+ ldr r1, _0809B314
+ bl strcpy
+ b _0809B32A
+ .align 2, 0
+_0809B310: .4byte gUnknown_202E5D8
+_0809B314: .4byte gUnknown_8116180
+_0809B318:
+ ldr r0, _0809B3D0
+ ldr r1, _0809B3D4
+ lsls r2, r6, 2
+ adds r2, r6
+ lsls r2, 4
+ ldr r3, _0809B3D8
+ adds r2, r3
+ bl sub_800D158
+_0809B32A:
+ ldr r0, _0809B3DC
+ mov r8, r0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x3
+ bne _0809B344
+ adds r4, 0x8
+ ldr r1, _0809B3E0
+ adds r0, r4, 0
+ adds r2, r7, 0
+ bl sub_800D158
+ adds r7, r4, 0
+_0809B344:
+ adds r0, r6, 0
+ bl sub_809AE3C
+ ldr r1, _0809B3E4
+ mov r9, r1
+ movs r1, 0x1
+ negs r1, r1
+ mov r12, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x3
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r0, [sp, 0xC]
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r5, 0
+ ands r0, r6
+ movs r1, 0
+ cmp r0, 0
+ beq _0809B370
+ movs r1, 0xC
+_0809B370:
+ movs r4, 0x80
+ lsls r4, 2
+ adds r0, r5, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0809B380
+ movs r0, 0x4
+ orrs r1, r0
+_0809B380:
+ mov r0, r8
+ ldr r3, [r0]
+ ldr r2, [r3]
+ cmp r2, 0x3
+ bne _0809B38E
+ movs r0, 0x10
+ orrs r1, r0
+_0809B38E:
+ cmp r2, 0x2
+ bne _0809B396
+ movs r0, 0x10
+ orrs r1, r0
+_0809B396:
+ adds r2, r1, 0
+ movs r1, 0x20
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809B3A4
+ orrs r2, r1
+_0809B3A4:
+ lsrs r1, r5, 6
+ movs r0, 0x1
+ ands r1, r0
+ orrs r1, r2
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ beq _0809B3B6
+ orrs r1, r6
+_0809B3B6:
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ beq _0809B3C0
+ orrs r1, r4
+_0809B3C0:
+ ldr r0, [r3, 0x4]
+ cmp r0, r12
+ beq _0809B3E8
+ movs r0, 0x2
+ orrs r0, r1
+ lsls r0, 16
+ b _0809B3EA
+ .align 2, 0
+_0809B3D0: .4byte gUnknown_202E5D8
+_0809B3D4: .4byte gUnknown_8116188
+_0809B3D8: .4byte gUnknown_202E2B8
+_0809B3DC: .4byte gUnknown_3001B64
+_0809B3E0: .4byte gUnknown_8116190
+_0809B3E4: .4byte sub_809B428
+_0809B3E8:
+ lsls r0, r1, 16
+_0809B3EA:
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ adds r0, r7, 0
+ mov r1, r9
+ mov r2, r12
+ movs r3, 0
+ bl sub_8014248
+_0809B3FA:
+ movs r0, 0x1
+_0809B3FC:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B2B8
+
+ thumb_func_start sub_809B40C
+sub_809B40C:
+ push {lr}
+ ldr r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0809B41C
+ cmp r0, 0x3
+ bhi _0809B420
+ cmp r0, 0x2
+ bcc _0809B420
+_0809B41C:
+ movs r0, 0
+ b _0809B422
+_0809B420:
+ movs r0, 0x1
+_0809B422:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B40C
+
+ thumb_func_start sub_809B428
+sub_809B428:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r2, 0
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x4F
+ beq _0809B44C
+ cmp r0, 0x4F
+ bgt _0809B43E
+ cmp r0, 0x49
+ beq _0809B444
+ b _0809B46A
+_0809B43E:
+ cmp r0, 0x57
+ beq _0809B454
+ b _0809B46A
+_0809B444:
+ movs r0, 0x1E
+ bl sub_8099A34
+ b _0809B462
+_0809B44C:
+ movs r0, 0x1E
+ bl sub_8099A48
+ b _0809B462
+_0809B454:
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809B462
+ adds r0, r5, 0
+ b _0809B46C
+_0809B462:
+ adds r1, r4, 0
+ adds r1, 0x21
+ movs r0, 0x1
+ strb r0, [r1]
+_0809B46A:
+ movs r0, 0
+_0809B46C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B428
+
+ thumb_func_start sub_809B474
+sub_809B474:
+ push {r4-r6,lr}
+ ldr r0, _0809B498
+ ldr r1, [r0]
+ ldr r2, [r1]
+ adds r6, r0, 0
+ cmp r2, 0x3
+ bls _0809B56E
+ cmp r2, 0x4
+ bne _0809B56E
+ movs r5, 0x84
+ lsls r5, 3
+ adds r0, r1, r5
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _0809B49C
+ cmp r0, 0x2
+ beq _0809B508
+ b _0809B56E
+ .align 2, 0
+_0809B498: .4byte gUnknown_3001B64
+_0809B49C:
+ bl sub_809B648
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B4B0
+ ldr r0, [r6]
+ adds r0, r5
+ movs r1, 0x3
+ str r1, [r0]
+ b _0809B4E8
+_0809B4B0:
+ ldr r0, [r6]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _0809B4F8
+ ldr r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0809B4F2
+ bl sub_809B294
+ ldr r0, [r4, 0x4]
+ bl _call_via_r0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B4F2
+ ldr r1, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r2, r1, r3
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r2]
+ adds r1, r5
+ movs r0, 0x3
+ str r0, [r1]
+_0809B4E8:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_809A680
+ b _0809B56E
+_0809B4F2:
+ ldrh r0, [r4]
+ bl sub_809A6E4
+_0809B4F8:
+ ldr r0, _0809B534
+ ldr r1, [r0]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0x2
+ str r2, [r1]
+ adds r6, r0, 0
+_0809B508:
+ ldr r0, [r6]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r3
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _0809B54E
+ ldr r0, [r4, 0xC]
+ bl _call_via_r0
+ adds r2, r0, 0
+ cmp r2, 0x1
+ bls _0809B56E
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r1, r0, r3
+ cmp r2, 0x2
+ bne _0809B538
+ movs r0, 0x1
+ negs r0, r0
+ b _0809B53A
+ .align 2, 0
+_0809B534: .4byte gUnknown_3001B64
+_0809B538:
+ movs r0, 0
+_0809B53A:
+ str r0, [r1]
+ ldr r0, [r4, 0x8]
+ cmp r0, 0
+ beq _0809B546
+ bl _call_via_r0
+_0809B546:
+ ldrh r0, [r4]
+ bl sub_809A6F8
+ b _0809B558
+_0809B54E:
+ bl sub_809B648
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B56E
+_0809B558:
+ ldr r0, _0809B578
+ ldr r0, [r0]
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x3
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_809A680
+_0809B56E:
+ bl sub_809B57C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B578: .4byte gUnknown_3001B64
+ thumb_func_end sub_809B474
+
+ thumb_func_start sub_809B57C
+sub_809B57C:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl xxx_draw_string_80144C4
+ ldr r5, _0809B5C8
+ ldr r0, [r5]
+ ldr r1, [r0]
+ cmp r1, 0x3
+ bhi _0809B5E4
+ cmp r1, 0x1
+ bcc _0809B5E4
+ movs r4, 0x84
+ lsls r4, 3
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809B5CC
+ cmp r0, 0x3
+ beq _0809B5CC
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0809B5E4
+ ldr r1, [sp]
+ movs r0, 0x1
+ bl sub_809D9E0
+ ldr r1, [r5]
+ adds r2, r1, r4
+ movs r0, 0x3
+ str r0, [r2]
+ movs r0, 0x86
+ lsls r0, 3
+ adds r1, r0
+ ldr r0, [sp]
+ str r0, [r1]
+ b _0809B5E4
+ .align 2, 0
+_0809B5C8: .4byte gUnknown_3001B64
+_0809B5CC:
+ add r0, sp, 0x4
+ bl sub_80144A4
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0809B5E4
+ movs r0, 0
+ bl sub_809D9B8
+ ldr r0, _0809B5FC
+ ldr r0, [r0]
+ str r4, [r0]
+_0809B5E4:
+ ldr r0, _0809B5FC
+ ldr r0, [r0]
+ ldr r1, _0809B600
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0809B604
+ movs r0, 0
+ movs r1, 0
+ bl sub_8005838
+ b _0809B60C
+ .align 2, 0
+_0809B5FC: .4byte gUnknown_3001B64
+_0809B600: .4byte 0x00000434
+_0809B604:
+ movs r0, 0
+ movs r1, 0x5
+ bl sub_8005838
+_0809B60C:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B57C
+
+ thumb_func_start sub_809B614
+sub_809B614:
+ push {lr}
+ bl sub_80060EC
+ ldr r0, _0809B62C
+ ldr r2, _0809B630
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldr r0, _0809B634
+ ands r0, r1
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809B62C: .4byte gUnknown_20399DE
+_0809B630: .4byte gUnknown_20399DC
+_0809B634: .4byte 0x0000fffd
+ thumb_func_end sub_809B614
+
+ thumb_func_start sub_809B638
+sub_809B638:
+ push {lr}
+ bl xxx_call_update_bg_vram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809B638
+
+ thumb_func_start nullsub_210
+nullsub_210:
+ bx lr
+ thumb_func_end nullsub_210
+
+ thumb_func_start sub_809B648
+sub_809B648:
+ push {r4-r6,lr}
+ sub sp, 0x24
+ ldr r0, _0809B66C
+ ldr r1, [r0]
+ ldr r2, _0809B670
+ adds r1, r2
+ ldr r1, [r1]
+ subs r1, 0x2
+ adds r6, r0, 0
+ cmp r1, 0x2C
+ bls _0809B662
+ bl _0809C392
+_0809B662:
+ lsls r0, r1, 2
+ ldr r1, _0809B674
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809B66C: .4byte gUnknown_3001B64
+_0809B670: .4byte 0x00000414
+_0809B674: .4byte _0809B678
+ .align 2, 0
+_0809B678:
+ .4byte _0809B72C
+ .4byte _0809B772
+ .4byte _0809B7AC
+ .4byte _0809B834
+ .4byte _0809B89C
+ .4byte _0809B8FC
+ .4byte _0809B91C
+ .4byte _0809B944
+ .4byte _0809B9D2
+ .4byte _0809BA2A
+ .4byte _0809BAA8
+ .4byte _0809BB66
+ .4byte _0809BBDA
+ .4byte _0809BBDA
+ .4byte _0809BC26
+ .4byte _0809BC68
+ .4byte _0809C1B4
+ .4byte _0809BC78
+ .4byte _0809C1C2
+ .4byte _0809C1C2
+ .4byte _0809C1C8
+ .4byte _0809BCBC
+ .4byte _0809BCBC
+ .4byte _0809BD1C
+ .4byte _0809BD64
+ .4byte _0809BDE8
+ .4byte _0809BE30
+ .4byte _0809BE40
+ .4byte _0809BE50
+ .4byte _0809BE60
+ .4byte _0809BE9C
+ .4byte _0809BEB8
+ .4byte _0809BED4
+ .4byte _0809BF70
+ .4byte _0809BFFC
+ .4byte _0809C072
+ .4byte _0809C0B8
+ .4byte _0809C0FC
+ .4byte _0809C148
+ .4byte _0809C158
+ .4byte _0809C168
+ .4byte _0809C204
+ .4byte _0809C238
+ .4byte _0809C280
+ .4byte _0809C32A
+_0809B72C:
+ ldr r2, [r6]
+ movs r3, 0x84
+ lsls r3, 3
+ adds r0, r2, r3
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _0809B780
+ ldr r0, _0809B754
+ ldrh r0, [r0, 0x2]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809B758
+ movs r0, 0x86
+ lsls r0, 3
+ adds r1, r2, r0
+ movs r0, 0x1
+ str r0, [r1]
+ bl _0809C392
+ .align 2, 0
+_0809B754: .4byte gUnknown_20255F0
+_0809B758:
+ bl sub_8094D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809B784
+ ldr r0, [r6]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [r0]
+ bl _0809C392
+_0809B772:
+ ldr r0, [r6]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809B78A
+_0809B780:
+ bl sub_809B294
+_0809B784:
+ movs r0, 0x1
+ bl _0809C394
+_0809B78A:
+ ldr r0, _0809B7A8
+ ldrh r1, [r0]
+ ldrh r0, [r0, 0x2]
+ movs r2, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0809B79C
+ bl _0809C392
+_0809B79C:
+ ands r1, r2
+ cmp r1, 0
+ bne _0809B784
+ bl _0809C392
+ .align 2, 0
+_0809B7A8: .4byte gUnknown_20255F0
+_0809B7AC:
+ ldr r0, [r6]
+ movs r3, 0x84
+ lsls r3, 3
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809B7F4
+ bl sub_809B294
+ ldr r1, [r6]
+ ldr r2, _0809B7D8
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0809B7E0
+ ldr r3, _0809B7DC
+ adds r0, r1, r3
+ ldr r1, [r0]
+ movs r0, 0
+ bl sub_801602C
+ b _0809B784
+ .align 2, 0
+_0809B7D8: .4byte 0x00000424
+_0809B7DC: .4byte 0x0000042c
+_0809B7E0:
+ ldr r2, _0809B7F0
+ adds r0, r1, r2
+ ldr r1, [r0]
+ movs r0, 0x2
+ bl sub_801602C
+ b _0809B784
+ .align 2, 0
+_0809B7F0: .4byte 0x0000042c
+_0809B7F4:
+ bl sub_8016080
+ cmp r0, 0x3
+ bne _0809B80C
+ bl sub_80160D8
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ bl _0809C1BC
+_0809B80C:
+ cmp r0, 0x2
+ bne _0809B784
+ ldr r0, [r6]
+ ldr r1, _0809B830
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809B784
+ bl sub_80160D8
+ ldr r0, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+_0809B828:
+ movs r1, 0
+ str r1, [r0]
+ bl _0809C392
+ .align 2, 0
+_0809B830: .4byte 0x00000424
+_0809B834:
+ ldr r0, [r6]
+ movs r3, 0x84
+ lsls r3, 3
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809B85C
+ bl sub_809B294
+ ldr r0, [r6]
+ ldr r1, _0809B858
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x1
+ bl sub_801602C
+ b _0809B784
+ .align 2, 0
+_0809B858: .4byte 0x0000042c
+_0809B85C:
+ bl sub_8016080
+ cmp r0, 0x3
+ bne _0809B874
+ bl sub_80160D8
+ ldr r0, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ bl _0809C1BC
+_0809B874:
+ cmp r0, 0x2
+ beq _0809B87A
+ b _0809B784
+_0809B87A:
+ ldr r0, [r6]
+ ldr r3, _0809B898
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0809B888
+ b _0809B784
+_0809B888:
+ bl sub_80160D8
+ ldr r0, [r6]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ b _0809B828
+ .align 2, 0
+_0809B898: .4byte 0x00000424
+_0809B89C:
+ ldr r0, [r6]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809B8C4
+ bl sub_809B294
+ ldr r0, [r6]
+ ldr r3, _0809B8C0
+ adds r0, r3
+ ldr r1, [r0]
+ movs r0, 0x4
+ bl sub_80151C0
+ b _0809B784
+ .align 2, 0
+_0809B8C0: .4byte 0x0000042c
+_0809B8C4:
+ bl sub_80154F0
+ cmp r0, 0x3
+ bne _0809B8D4
+ bl sub_80155F0
+ bl _0809C1B4
+_0809B8D4:
+ cmp r0, 0x2
+ beq _0809B8DA
+ b _0809B784
+_0809B8DA:
+ ldr r0, [r6]
+ ldr r2, _0809B8F8
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0809B8E8
+ b _0809B784
+_0809B8E8:
+ bl sub_80155F0
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ b _0809B828
+ .align 2, 0
+_0809B8F8: .4byte 0x00000424
+_0809B8FC:
+ ldr r0, [r6]
+ ldr r1, _0809B914
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_801D014
+ ldr r0, [r6]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809B918
+ b _0809B932
+ .align 2, 0
+_0809B914: .4byte 0x0000042c
+_0809B918: .4byte gUnknown_81161A8
+_0809B91C:
+ ldr r0, [r6]
+ ldr r3, _0809B93C
+ adds r0, r3
+ ldr r0, [r0]
+ bl sub_801D014
+ ldr r0, [r6]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _0809B940
+_0809B932:
+ str r1, [r0]
+ movs r0, 0x4
+ bl sub_80119D4
+ b _0809B784
+ .align 2, 0
+_0809B93C: .4byte 0x0000042c
+_0809B940: .4byte gUnknown_81161B8
+_0809B944:
+ bl sub_809B294
+ ldr r4, _0809B984
+ ldr r0, [r4]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809B998
+ bl sub_809B294
+ ldr r0, [r4]
+ ldr r3, _0809B988
+ adds r0, r3
+ ldr r0, [r0]
+ ldr r1, _0809B98C
+ bl sub_8015080
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809B990
+ ldr r0, [r4]
+_0809B972:
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+_0809B978:
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl _0809C392
+ .align 2, 0
+_0809B984: .4byte gUnknown_3001B64
+_0809B988: .4byte 0x0000042c
+_0809B98C: .4byte gUnknown_811610C
+_0809B990:
+ movs r0, 0x4
+ bl sub_80119D4
+ b _0809B784
+_0809B998:
+ bl sub_801516C
+ cmp r0, 0x2
+ beq _0809B9BC
+ cmp r0, 0x3
+ beq _0809B9A6
+ b _0809B784
+_0809B9A6:
+ bl sub_8015198
+ ldr r1, [r4]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r2
+ str r0, [r1]
+ bl sub_80151A4
+ bl _0809C392
+_0809B9BC:
+ ldr r0, [r4]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl sub_80151A4
+ bl _0809C392
+_0809B9D2:
+ bl sub_809B294
+ ldr r4, _0809BA08
+ ldr r0, [r4]
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809BA1C
+ bl sub_809B294
+ ldr r0, [r4]
+ ldr r2, _0809BA0C
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, _0809BA10
+ bl sub_8015080
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BA14
+ ldr r0, [r4]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ b _0809B978
+ .align 2, 0
+_0809BA08: .4byte gUnknown_3001B64
+_0809BA0C: .4byte 0x0000042c
+_0809BA10: .4byte gUnknown_811612C
+_0809BA14:
+ movs r0, 0x4
+ bl sub_80119D4
+ b _0809B784
+_0809BA1C:
+ bl sub_801516C
+ cmp r0, 0x2
+ beq _0809B9BC
+ cmp r0, 0x3
+ beq _0809B9A6
+ b _0809B784
+_0809BA2A:
+ ldr r0, [r6]
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809BA68
+ bl sub_809B294
+ ldr r0, [r6]
+ ldr r2, _0809BA5C
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl sub_80211AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BA60
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ b _0809B978
+ .align 2, 0
+_0809BA5C: .4byte 0x00000424
+_0809BA60:
+ movs r0, 0x4
+ bl sub_80119D4
+ b _0809B784
+_0809BA68:
+ movs r0, 0x1
+ bl sub_8021274
+ cmp r0, 0x2
+ beq _0809BA92
+ cmp r0, 0x3
+ beq _0809BA78
+ b _0809B784
+_0809BA78:
+ bl sub_802132C
+ ldr r1, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ bl sub_80213A0
+ bl _0809C392
+_0809BA92:
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl sub_80213A0
+ bl _0809C392
+_0809BAA8:
+ ldr r0, [r6]
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809BB10
+ movs r0, 0
+ movs r1, 0x12
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2654
+ lsls r0, 16
+ asrs r4, r0, 16
+ bl sub_809B294
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_802F73C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BAEA
+ ldr r0, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ b _0809B978
+_0809BAEA:
+ movs r5, 0x1
+ negs r5, r5
+ cmp r4, r5
+ beq _0809BB08
+ adds r0, r4, 0
+ bl sub_802F848
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BB08
+ movs r0, 0
+ movs r1, 0x12
+ adds r2, r5, 0
+ bl sub_80018D8
+_0809BB08:
+ movs r0, 0x4
+ bl sub_80119D4
+ b _0809B784
+_0809BB10:
+ movs r0, 0x1
+ bl sub_802F8A0
+ cmp r0, 0x2
+ beq _0809BB50
+ cmp r0, 0x3
+ beq _0809BB20
+ b _0809B784
+_0809BB20:
+ bl sub_802F90C
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80A26B8
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ movs r0, 0
+ movs r1, 0x12
+ bl sub_80018D8
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ str r4, [r0]
+ bl sub_802F974
+ bl _0809C392
+_0809BB50:
+ ldr r0, [r6]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl sub_802F974
+ bl _0809C392
+_0809BB66:
+ ldr r0, [r6]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809BB9A
+ bl sub_809B294
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0xA
+ bl sub_80302E8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BB92
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ b _0809B978
+_0809BB92:
+ movs r0, 0x4
+ bl sub_80119D4
+ b _0809B784
+_0809BB9A:
+ movs r0, 0x1
+ bl sub_80303AC
+ cmp r0, 0x2
+ beq _0809BBC4
+ cmp r0, 0x3
+ beq _0809BBAA
+ b _0809B784
+_0809BBAA:
+ bl sub_8030418
+ ldr r1, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [r1]
+ bl sub_8030480
+ bl _0809C392
+_0809BBC4:
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl sub_8030480
+ bl _0809C392
+_0809BBDA:
+ ldr r0, [r6]
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809BC14
+ bl sub_809B294
+ ldr r0, [r6]
+ ldr r2, _0809BC10
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0xE
+ bne _0809BC02
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0x1
+ bl sub_80018D8
+_0809BC02:
+ movs r0, 0x1
+ bl sub_8011C28
+ movs r0, 0
+ bl sub_8012574
+ b _0809B784
+ .align 2, 0
+_0809BC10: .4byte 0x00000414
+_0809BC14:
+ bl sub_8012600
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BC20
+ b _0809B784
+_0809BC20:
+ bl sub_8012750
+ b _0809C392
+_0809BC26:
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ lsrs r0, 24
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_8016C94
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BC5C
+ ldr r0, _0809BC54
+ ldr r0, [r0]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r3
+ ldr r1, _0809BC58
+ b _0809C266
+ .align 2, 0
+_0809BC54: .4byte gUnknown_3001B64
+_0809BC58: .4byte gUnknown_81161C8
+_0809BC5C:
+ ldr r0, _0809BC64
+ ldr r0, [r0]
+ b _0809B972
+ .align 2, 0
+_0809BC64: .4byte gUnknown_3001B64
+_0809BC68:
+ ldr r0, [r6]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809BC74
+ b _0809C266
+ .align 2, 0
+_0809BC74: .4byte gUnknown_81161D8
+_0809BC78:
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ lsrs r0, 24
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_80162E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BCB0
+ ldr r0, _0809BCA8
+ ldr r0, [r0]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r3
+ ldr r1, _0809BCAC
+ b _0809C266
+ .align 2, 0
+_0809BCA8: .4byte gUnknown_3001B64
+_0809BCAC: .4byte gUnknown_81161E8
+_0809BCB0:
+ ldr r0, _0809BCB8
+ ldr r0, [r0]
+ b _0809B972
+ .align 2, 0
+_0809BCB8: .4byte gUnknown_3001B64
+_0809BCBC:
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_809B294
+ ldr r0, _0809BCE0
+ ldr r0, [r0]
+ ldr r2, _0809BCE4
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x17
+ bne _0809BCE8
+ negs r0, r4
+ orrs r0, r4
+ lsrs r0, 31
+ b _0809BCF0
+ .align 2, 0
+_0809BCE0: .4byte gUnknown_3001B64
+_0809BCE4: .4byte 0x00000414
+_0809BCE8:
+ movs r0, 0x2
+ cmp r4, 0
+ beq _0809BCF0
+ movs r0, 0x3
+_0809BCF0:
+ bl sub_8018B00
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BD10
+ ldr r0, _0809BD08
+ ldr r0, [r0]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r3
+ ldr r1, _0809BD0C
+ b _0809C266
+ .align 2, 0
+_0809BD08: .4byte gUnknown_3001B64
+_0809BD0C: .4byte gUnknown_81161F8
+_0809BD10:
+ ldr r0, _0809BD18
+ ldr r0, [r0]
+ b _0809B972
+ .align 2, 0
+_0809BD18: .4byte gUnknown_3001B64
+_0809BD1C:
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ lsrs r0, 24
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_801FB50
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BD54
+ ldr r0, _0809BD4C
+ ldr r0, [r0]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809BD50
+ b _0809C266
+ .align 2, 0
+_0809BD4C: .4byte gUnknown_3001B64
+_0809BD50: .4byte gUnknown_8116208
+_0809BD54:
+ ldr r0, _0809BD60
+ ldr r0, [r0]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ b _0809B978
+ .align 2, 0
+_0809BD60: .4byte gUnknown_3001B64
+_0809BD64:
+ ldr r0, [r6]
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809BD84
+ bl sub_809B294
+ movs r0, 0
+ movs r1, 0x39
+ bl sub_80015C0
+ bl sub_802465C
+ b _0809B784
+_0809BD84:
+ bl sub_80246F0
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x39
+ bl sub_8001658
+ cmp r0, 0
+ bne _0809BDB2
+ bl sub_80247B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BDB2
+ movs r0, 0
+ movs r1, 0x39
+ movs r2, 0x1
+ bl sub_80018D8
+ movs r0, 0x46
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+_0809BDB2:
+ cmp r4, 0x3
+ bne _0809BDCC
+ bl sub_80247C0
+ ldr r0, _0809BDC8
+ ldr r0, [r0]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ b _0809C1BC
+ .align 2, 0
+_0809BDC8: .4byte gUnknown_3001B64
+_0809BDCC:
+ cmp r4, 0x2
+ beq _0809BDD2
+ b _0809B784
+_0809BDD2:
+ bl sub_80247C0
+ ldr r0, _0809BDE4
+ ldr r0, [r0]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ b _0809B828
+ .align 2, 0
+_0809BDE4: .4byte gUnknown_3001B64
+_0809BDE8:
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ lsrs r0, 24
+ negs r4, r0
+ orrs r4, r0
+ lsrs r4, 31
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_8021B9C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BE20
+ ldr r0, _0809BE18
+ ldr r0, [r0]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _0809BE1C
+ b _0809C266
+ .align 2, 0
+_0809BE18: .4byte gUnknown_3001B64
+_0809BE1C: .4byte gUnknown_8116218
+_0809BE20:
+ ldr r0, _0809BE2C
+ ldr r0, [r0]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ b _0809B978
+ .align 2, 0
+_0809BE2C: .4byte gUnknown_3001B64
+_0809BE30:
+ ldr r0, [r6]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r3
+ ldr r1, _0809BE3C
+ b _0809C266
+ .align 2, 0
+_0809BE3C: .4byte gUnknown_8116228
+_0809BE40:
+ ldr r0, [r6]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _0809BE4C
+ b _0809C266
+ .align 2, 0
+_0809BE4C: .4byte gUnknown_8116238
+_0809BE50:
+ ldr r0, [r6]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809BE5C
+ b _0809C266
+ .align 2, 0
+_0809BE5C: .4byte gUnknown_8116248
+_0809BE60:
+ bl sub_809B294
+ movs r0, 0x98
+ lsls r0, 1
+ bl sub_80314B4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BE84
+ ldr r0, _0809BE80
+ ldr r0, [r0]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ b _0809B978
+ .align 2, 0
+_0809BE80: .4byte gUnknown_3001B64
+_0809BE84:
+ ldr r0, _0809BE94
+ ldr r0, [r0]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _0809BE98
+ b _0809C266
+ .align 2, 0
+_0809BE94: .4byte gUnknown_3001B64
+_0809BE98: .4byte gUnknown_8116258
+_0809BE9C:
+ movs r0, 0x4
+ bl sub_80119D4
+ ldr r0, _0809BEB0
+ ldr r0, [r0]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809BEB4
+ b _0809C266
+ .align 2, 0
+_0809BEB0: .4byte gUnknown_3001B64
+_0809BEB4: .4byte gUnknown_8116268
+_0809BEB8:
+ movs r0, 0x4
+ bl sub_80119D4
+ ldr r0, _0809BECC
+ ldr r0, [r0]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r3
+ ldr r1, _0809BED0
+ b _0809C266
+ .align 2, 0
+_0809BECC: .4byte gUnknown_3001B64
+_0809BED0: .4byte gUnknown_8116278
+_0809BED4:
+ mov r0, sp
+ bl sub_8099328
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809BF4E
+ add r1, sp, 0x4
+ add r2, sp, 0x8
+ movs r0, 0x2
+ bl sub_8001B88
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x7
+ bgt _0809BF4E
+ add r4, sp, 0xC
+_0809BEF2:
+ lsls r1, r0, 24
+ lsrs r1, 24
+ mov r0, sp
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ bl sub_8096AF8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809BF44
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ movs r0, 0x2
+ bl sub_8001BB4
+ ldr r0, _0809BF40
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r2, r0, r1
+ ldrh r1, [r4, 0x2]
+ lsls r1, 16
+ asrs r1, 16
+ negs r0, r1
+ orrs r0, r1
+ lsrs r1, r0, 31
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0809BF30
+ adds r1, 0x2
+_0809BF30:
+ str r1, [r2]
+ cmp r1, 0
+ beq _0809BF38
+ b _0809C392
+_0809BF38:
+ movs r0, 0x3
+ str r0, [r2]
+ b _0809C392
+ .align 2, 0
+_0809BF40: .4byte gUnknown_3001B64
+_0809BF44:
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ cmp r0, 0x7
+ ble _0809BEF2
+_0809BF4E:
+ ldr r0, _0809BF6C
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ bl sub_8096BD0
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ b _0809C392
+ .align 2, 0
+_0809BF6C: .4byte gUnknown_3001B64
+_0809BF70:
+ mov r5, sp
+ adds r5, 0x1
+ adds r0, r5, 0
+ bl sub_8099328
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BF82
+ b _0809C392
+_0809BF82:
+ add r1, sp, 0x14
+ add r2, sp, 0x18
+ movs r0, 0x2
+ bl sub_8001B88
+ add r4, sp, 0x1C
+ ldr r1, [sp, 0x18]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r5]
+ adds r0, r4, 0
+ bl sub_8096AF8
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0809BFA4
+ b _0809C392
+_0809BFA4:
+ ldr r0, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r5]
+ bl sub_802DB28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809BFB8
+ b _0809C392
+_0809BFB8:
+ movs r0, 0
+ movs r1, 0x19
+ bl sub_8001658
+ cmp r0, 0x63
+ bgt _0809BFCE
+ adds r2, r0, 0x1
+ movs r0, 0
+ movs r1, 0x19
+ bl sub_80018D8
+_0809BFCE:
+ movs r0, 0
+ movs r1, 0x39
+ movs r2, 0x1
+ bl sub_80018D8
+ ldr r1, [sp, 0x14]
+ ldr r2, [sp, 0x18]
+ adds r2, 0x1
+ movs r0, 0x2
+ bl sub_8001BB4
+ ldr r0, _0809BFF4
+ ldr r0, [r0]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809BFF8
+ b _0809C266
+ .align 2, 0
+_0809BFF4: .4byte gUnknown_3001B64
+_0809BFF8: .4byte gUnknown_8116288
+_0809BFFC:
+ ldr r0, [r6]
+ movs r3, 0x84
+ lsls r3, 3
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809C036
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ lsrs r0, 24
+ negs r4, r0
+ orrs r4, r0
+ asrs r4, 31
+ movs r0, 0x4
+ ands r4, r0
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_802FD14
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C032
+ bl _0809B784
+_0809C032:
+ ldr r0, [r6]
+ b _0809B972
+_0809C036:
+ bl sub_802FE58
+ cmp r0, 0x2
+ beq _0809C05E
+ cmp r0, 0x3
+ beq _0809C046
+ bl _0809B784
+_0809C046:
+ bl sub_802FED0
+ ldr r1, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [r1]
+ bl sub_802FEE0
+ b _0809C392
+_0809C05E:
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl sub_802FEE0
+ b _0809C392
+_0809C072:
+ movs r4, 0x1
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C082
+ movs r4, 0x5
+_0809C082:
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_802FD14
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C0A8
+ ldr r0, _0809C0A0
+ ldr r0, [r0]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _0809C0A4
+ b _0809C266
+ .align 2, 0
+_0809C0A0: .4byte gUnknown_3001B64
+_0809C0A4: .4byte gUnknown_8116298
+_0809C0A8:
+ ldr r0, _0809C0B4
+ ldr r0, [r0]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ b _0809B978
+ .align 2, 0
+_0809C0B4: .4byte gUnknown_3001B64
+_0809C0B8:
+ movs r4, 0x2
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C0C8
+ movs r4, 0x6
+_0809C0C8:
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_802FD14
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C0F0
+ ldr r0, _0809C0E8
+ ldr r0, [r0]
+ movs r3, 0x83
+ lsls r3, 3
+ adds r0, r3
+ ldr r1, _0809C0EC
+ b _0809C266
+ .align 2, 0
+_0809C0E8: .4byte gUnknown_3001B64
+_0809C0EC: .4byte gUnknown_81162A8
+_0809C0F0:
+ ldr r0, _0809C0F8
+ ldr r0, [r0]
+ b _0809B972
+ .align 2, 0
+_0809C0F8: .4byte gUnknown_3001B64
+_0809C0FC:
+ movs r4, 0x3
+ movs r0, 0x4
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C10C
+ movs r4, 0x7
+_0809C10C:
+ bl sub_809B294
+ adds r0, r4, 0
+ bl sub_802FD14
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C134
+ ldr r0, _0809C12C
+ ldr r0, [r0]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809C130
+ b _0809C266
+ .align 2, 0
+_0809C12C: .4byte gUnknown_3001B64
+_0809C130: .4byte gUnknown_81162B8
+_0809C134:
+ ldr r0, _0809C144
+ ldr r0, [r0]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ bl _0809B978
+ .align 2, 0
+_0809C144: .4byte gUnknown_3001B64
+_0809C148:
+ ldr r0, [r6]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _0809C154
+ b _0809C266
+ .align 2, 0
+_0809C154: .4byte gUnknown_81162C8
+_0809C158:
+ ldr r0, [r6]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809C164
+ b _0809C266
+ .align 2, 0
+_0809C164: .4byte gUnknown_81162D8
+_0809C168:
+ bl sub_809B294
+ bl sub_803B050
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C1A0
+ ldr r4, _0809C194
+ ldr r0, [r4]
+ ldr r3, _0809C198
+ adds r0, r3
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_803B100
+ ldr r0, [r4]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809C19C
+ b _0809C266
+ .align 2, 0
+_0809C194: .4byte gUnknown_3001B64
+_0809C198: .4byte 0x000005a4
+_0809C19C: .4byte gUnknown_81162E8
+_0809C1A0:
+ ldr r0, _0809C1B0
+ ldr r0, [r0]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ bl _0809B978
+ .align 2, 0
+_0809C1B0: .4byte gUnknown_3001B64
+_0809C1B4:
+ ldr r0, [r6]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+_0809C1BC:
+ movs r1, 0x1
+ str r1, [r0]
+ b _0809C392
+_0809C1C2:
+ bl sub_809B294
+ b _0809C392
+_0809C1C8:
+ movs r0, 0x2
+ bl sub_80252F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C1EC
+ ldr r0, _0809C1E4
+ ldr r0, [r0]
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r2
+ ldr r1, _0809C1E8
+ b _0809C266
+ .align 2, 0
+_0809C1E4: .4byte gUnknown_3001B64
+_0809C1E8: .4byte gUnknown_81162F8
+_0809C1EC:
+ ldr r0, _0809C200
+ ldr r0, [r0]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ movs r1, 0x2
+ negs r1, r1
+ str r1, [r0]
+ b _0809C392
+ .align 2, 0
+_0809C200: .4byte gUnknown_3001B64
+_0809C204:
+ ldr r1, [r6]
+ ldr r2, _0809C230
+ adds r0, r1, r2
+ ldr r0, [r0]
+ movs r3, 0x85
+ lsls r3, 3
+ adds r1, r3
+ ldr r1, [r1]
+ bl sub_809CCDC
+ ldr r1, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r2, r1, r3
+ str r0, [r2]
+ movs r0, 0x83
+ lsls r0, 3
+ adds r1, r0
+ ldr r0, _0809C234
+ str r0, [r1]
+ bl _0809B784
+ .align 2, 0
+_0809C230: .4byte 0x00000424
+_0809C234: .4byte gUnknown_8116308
+_0809C238:
+ ldr r0, [r6]
+ movs r2, 0x85
+ lsls r2, 3
+ adds r1, r0, r2
+ ldr r5, [r1]
+ ldr r3, _0809C26C
+ adds r0, r3
+ ldrb r4, [r0]
+ bl sub_809B294
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_801B60C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C274
+ ldr r0, [r6]
+ movs r1, 0x83
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _0809C270
+_0809C266:
+ str r1, [r0]
+ bl _0809B784
+ .align 2, 0
+_0809C26C: .4byte 0x00000424
+_0809C270: .4byte gUnknown_8116318
+_0809C274:
+ ldr r0, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ bl _0809B978
+_0809C280:
+ ldr r0, [r6]
+ movs r3, 0x84
+ lsls r3, 3
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809C2B8
+ bl sub_809B294
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801A5D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C2B2
+ bl _0809B784
+_0809C2B2:
+ ldr r0, [r6]
+ bl _0809B972
+_0809C2B8:
+ movs r0, 0x1
+ bl sub_801A6E8
+ cmp r0, 0x2
+ beq _0809C320
+ cmp r0, 0x3
+ beq _0809C2CA
+ bl _0809B784
+_0809C2CA:
+ bl sub_801A8AC
+ adds r5, r0, 0
+ ldr r0, _0809C304
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+ adds r0, r4, 0
+ bl sub_8091570
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C30C
+ ldr r0, _0809C308
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ adds r0, r5, 0
+ bl sub_80911F8
+ ldr r0, [r6]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x1
+ b _0809C318
+ .align 2, 0
+_0809C304: .4byte gUnknown_203B460
+_0809C308: .4byte gUnknown_202DE58
+_0809C30C:
+ ldr r0, [r6]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+_0809C314:
+ movs r1, 0x1
+ negs r1, r1
+_0809C318:
+ str r1, [r0]
+ bl sub_801A928
+ b _0809C392
+_0809C320:
+ ldr r0, [r6]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ b _0809C314
+_0809C32A:
+ adds r4, r6, 0
+ ldr r0, [r4]
+ movs r2, 0x84
+ lsls r2, 3
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809C36C
+ bl sub_809B294
+ ldr r1, [r4]
+ ldr r3, _0809C368
+ adds r0, r1, r3
+ ldr r0, [r0]
+ movs r2, 0x85
+ lsls r2, 3
+ adds r1, r2
+ ldr r1, [r1]
+ bl sub_8035444
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C35C
+ bl _0809B784
+_0809C35C:
+ ldr r0, [r4]
+ movs r3, 0x86
+ lsls r3, 3
+ adds r0, r3
+ bl _0809B978
+ .align 2, 0
+_0809C368: .4byte 0x00000424
+_0809C36C:
+ bl sub_8035574
+ cmp r0, 0x3
+ bls _0809C378
+ bl _0809B784
+_0809C378:
+ cmp r0, 0x2
+ bcs _0809C380
+ bl _0809B784
+_0809C380:
+ ldr r0, [r6]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl sub_803565C
+_0809C392:
+ movs r0, 0
+_0809C394:
+ add sp, 0x24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809B648
+
+ thumb_func_start sub_809C39C
+sub_809C39C:
+ push {lr}
+ bl sub_801D178
+ ldr r1, _0809C3D4
+ ldr r1, [r1]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r2
+ str r0, [r1]
+ cmp r0, 0x3
+ bne _0809C3CC
+ bl sub_801D1D4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8002694
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0
+ bl sub_8098D1C
+_0809C3CC:
+ bl sub_801D1E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C3D4: .4byte gUnknown_3001B64
+ thumb_func_end sub_809C39C
+
+ thumb_func_start sub_809C3D8
+sub_809C3D8:
+ push {lr}
+ bl sub_801D178
+ ldr r1, _0809C410
+ ldr r1, [r1]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r2
+ str r0, [r1]
+ cmp r0, 0x3
+ bne _0809C408
+ bl sub_801D1D4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8002694
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0
+ bl sub_8098D1C
+_0809C408:
+ bl sub_801D1E0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C410: .4byte gUnknown_3001B64
+ thumb_func_end sub_809C3D8
+
+ thumb_func_start sub_809C414
+sub_809C414:
+ push {lr}
+ bl sub_802540C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0809C448
+ ldr r0, _0809C444
+ ldr r0, [r0]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r2
+ str r1, [r0]
+ adds r0, r1, 0
+ bl sub_8002694
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1
+ negs r2, r2
+ movs r1, 0
+ bl sub_8098D1C
+ b _0809C458
+ .align 2, 0
+_0809C444: .4byte gUnknown_3001B64
+_0809C448:
+ ldr r0, _0809C460
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+_0809C458:
+ bl sub_8025418
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C460: .4byte gUnknown_3001B64
+ thumb_func_end sub_809C414
+
+ thumb_func_start sub_809C464
+sub_809C464:
+ push {lr}
+ bl sub_803C850
+ bl sub_8001064
+ bl sub_809965C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809C464
+
+ thumb_func_start sub_809C478
+sub_809C478:
+ push {lr}
+ sub sp, 0x8
+ bl sub_80356A0
+ cmp r0, 0x3
+ bne _0809C492
+ ldr r0, _0809C4AC
+ bl sub_8011988
+ bl InitFlash
+ bl ClearFlashData
+_0809C492:
+ bl sub_8035758
+ add r2, sp, 0x4
+ movs r0, 0x3
+ mov r1, sp
+ bl sub_8001B88
+ movs r0, 0
+ bl sub_80993C0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C4AC: .4byte 0x00000313
+ thumb_func_end sub_809C478
+
+ thumb_func_start sub_809C4B0
+sub_809C4B0:
+ push {r4,r5,lr}
+ movs r4, 0x1
+ negs r4, r4
+ ldr r5, _0809C4FC
+ ldr r0, [r5]
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r0, r2
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0809C4DE
+ bl sub_803B168
+ lsls r0, 16
+ ldr r1, [r5]
+ ldr r3, _0809C500
+ adds r2, r1, r3
+ asrs r4, r0, 16
+ lsrs r0, 16
+ strh r0, [r2]
+ movs r0, 0x86
+ lsls r0, 3
+ adds r1, r0
+_0809C4DE:
+ str r4, [r1]
+ bl sub_803B1BC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _0809C4F4
+ adds r0, r4, 0
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+_0809C4F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C4FC: .4byte gUnknown_3001B64
+_0809C500: .4byte 0x000005a4
+ thumb_func_end sub_809C4B0
+
+ thumb_func_start sub_809C504
+sub_809C504:
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80282DC
+ adds r4, r0, 0
+ cmp r4, 0x1
+ bne _0809C530
+ mov r0, sp
+ ldrb r0, [r0]
+ bl sub_809927C
+ ldr r0, _0809C52C
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ str r4, [r0]
+ b _0809C540
+ .align 2, 0
+_0809C52C: .4byte gUnknown_3001B64
+_0809C530:
+ ldr r0, _0809C54C
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+_0809C540:
+ bl sub_80282FC
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C54C: .4byte gUnknown_3001B64
+ thumb_func_end sub_809C504
+
+ thumb_func_start sub_809C550
+sub_809C550:
+ push {r4,r5,lr}
+ bl sub_802E90C
+ adds r4, r0, 0
+ movs r5, 0
+ bl sub_802E918
+ cmp r4, 0x2
+ beq _0809C586
+ cmp r4, 0x2
+ bhi _0809C56C
+ cmp r4, 0x1
+ beq _0809C572
+ b _0809C5AC
+_0809C56C:
+ cmp r4, 0x3
+ beq _0809C59A
+ b _0809C5AC
+_0809C572:
+ movs r0, 0x4
+ movs r1, 0x1D
+ movs r2, 0x3
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C5AC
+ movs r5, 0x1
+ b _0809C5AC
+_0809C586:
+ movs r0, 0x4
+ movs r1, 0x1F
+ movs r2, 0x2
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C5AC
+ movs r5, 0x2
+ b _0809C5AC
+_0809C59A:
+ movs r0, 0xB
+ movs r1, 0x33
+ movs r2, 0x8
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809C5AC
+ movs r5, 0x3
+_0809C5AC:
+ ldr r0, _0809C5C0
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 3
+ adds r0, r1
+ str r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C5C0: .4byte gUnknown_3001B64
+ thumb_func_end sub_809C550
+
+ thumb_func_start sub_809C5C4
+sub_809C5C4:
+ push {r4,lr}
+ ldr r4, _0809C610
+ movs r0, 0x24
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r2, 0
+ str r2, [r0]
+ str r2, [r0, 0x4]
+ movs r3, 0
+ strh r2, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ strb r3, [r0, 0xD]
+ ldr r0, [r4]
+ strb r3, [r0, 0xE]
+ ldr r1, [r4]
+ str r2, [r1, 0x10]
+ ldr r0, _0809C614
+ strh r0, [r1, 0x14]
+ movs r0, 0x23
+ strh r0, [r1, 0x16]
+ strb r3, [r1, 0x18]
+ ldr r1, [r4]
+ movs r0, 0x3F
+ strb r0, [r1, 0x19]
+ ldr r0, [r4]
+ str r2, [r0, 0x1C]
+ adds r0, 0x20
+ strb r3, [r0]
+ bl nullsub_107
+ bl sub_809C63C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C610: .4byte gUnknown_3001B68
+_0809C614: .4byte 0x0000ffff
+ thumb_func_end sub_809C5C4
+
+ thumb_func_start sub_809C618
+sub_809C618:
+ push {r4,lr}
+ bl sub_809C63C
+ bl nullsub_107
+ bl nullsub_108
+ ldr r4, _0809C638
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C638: .4byte gUnknown_3001B68
+ thumb_func_end sub_809C618
+
+ thumb_func_start sub_809C63C
+sub_809C63C:
+ push {lr}
+ bl nullsub_108
+ ldr r0, _0809C654
+ ldr r0, [r0]
+ movs r1, 0
+ str r1, [r0, 0x1C]
+ adds r0, 0x20
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C654: .4byte gUnknown_3001B68
+ thumb_func_end sub_809C63C
+
+ thumb_func_start sub_809C658
+sub_809C658:
+ push {lr}
+ ldr r0, _0809C670
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x5
+ bhi _0809C6C8
+ lsls r0, 2
+ ldr r1, _0809C674
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C670: .4byte gUnknown_3001B68
+_0809C674: .4byte _0809C678
+ .align 2, 0
+_0809C678:
+ .4byte _0809C6C0
+ .4byte _0809C6C0
+ .4byte _0809C6AC
+ .4byte _0809C690
+ .4byte _0809C69E
+ .4byte _0809C6B6
+_0809C690:
+ bl nullsub_111
+ bl nullsub_112
+ bl nullsub_113
+ b _0809C6C8
+_0809C69E:
+ bl nullsub_114
+ bl nullsub_115
+ bl nullsub_116
+ b _0809C6C8
+_0809C6AC:
+ bl nullsub_109
+ bl nullsub_110
+ b _0809C6C8
+_0809C6B6:
+ bl nullsub_107
+ bl nullsub_108
+ b _0809C6C8
+_0809C6C0:
+ bl nullsub_107
+ bl nullsub_108
+_0809C6C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809C658
+
+ thumb_func_start sub_809C6CC
+sub_809C6CC:
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _0809C6E8
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x8]
+ cmp r0, r2
+ beq _0809C6E2
+ movs r0, 0
+ strh r2, [r1, 0x8]
+ strb r0, [r1, 0xE]
+_0809C6E2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809C6E8: .4byte gUnknown_3001B68
+ thumb_func_end sub_809C6CC
+
+ thumb_func_start sub_809C6EC
+sub_809C6EC:
+ push {lr}
+ bl sub_8098F88
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809C718
+ ldr r0, _0809C70C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0
+ bne _0809C710
+ movs r0, 0x4
+ bl sub_809C6CC
+ b _0809C71E
+ .align 2, 0
+_0809C70C: .4byte gUnknown_203B46C
+_0809C710:
+ movs r0, 0x3
+ bl sub_809C6CC
+ b _0809C71E
+_0809C718:
+ movs r0, 0x5
+ bl sub_809C6CC
+_0809C71E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809C6EC
+
+ thumb_func_start sub_809C724
+sub_809C724:
+ ldr r0, _0809C72C
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_0809C72C: .4byte gUnknown_3001B68
+ thumb_func_end sub_809C724
+
+ thumb_func_start sub_809C730
+sub_809C730:
+ push {lr}
+ bl sub_809C740
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C730
+
+ thumb_func_start sub_809C740
+sub_809C740:
+ push {lr}
+ ldr r0, _0809C750
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809C754
+ movs r0, 0
+ b _0809C756
+ .align 2, 0
+_0809C750: .4byte gUnknown_3001B68
+_0809C754:
+ movs r0, 0x1
+_0809C756:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809C740
+
+ thumb_func_start nullsub_104
+nullsub_104:
+ bx lr
+ thumb_func_end nullsub_104
+
+ thumb_func_start sub_809C760
+sub_809C760:
+ ldr r0, _0809C76C
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0xE]
+ bx lr
+ .align 2, 0
+_0809C76C: .4byte gUnknown_3001B68
+ thumb_func_end sub_809C760
+
+ thumb_func_start sub_809C770
+sub_809C770:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ lsls r1, 16
+ asrs r6, r1, 16
+ ldr r4, _0809C790
+ ldr r1, [r4]
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ beq _0809C794
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ b _0809CA10
+ .align 2, 0
+_0809C790: .4byte gUnknown_3001B68
+_0809C794:
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ bne _0809C79E
+ bl sub_809C6EC
+_0809C79E:
+ ldr r0, [r4]
+ ldrb r5, [r0, 0x18]
+ ldrb r7, [r0, 0x19]
+ cmp r6, 0x26
+ bls _0809C7AA
+ b _0809C8C8
+_0809C7AA:
+ lsls r0, r6, 2
+ ldr r1, _0809C7B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C7B4: .4byte _0809C7B8
+ .align 2, 0
+_0809C7B8:
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C854
+ .4byte _0809C868
+ .4byte _0809C868
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C8C8
+ .4byte _0809C86E
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+_0809C854:
+ mov r0, r8
+ bl sub_8002658
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0809C864
+ b _0809CA10
+_0809C864:
+ movs r4, 0x1
+ b _0809C988
+_0809C868:
+ movs r4, 0x1
+ movs r5, 0
+ b _0809C988
+_0809C86E:
+ mov r0, r8
+ subs r0, 0xA4
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bls _0809C87C
+ b _0809CA10
+_0809C87C:
+ lsls r0, 2
+ ldr r1, _0809C888
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C888: .4byte _0809C88C
+ .align 2, 0
+_0809C88C:
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+ .4byte _0809CA10
+ .4byte _0809CA10
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+ .4byte _0809CA10
+ .4byte _0809CA10
+ .4byte _0809CA10
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+ .4byte _0809C8C4
+_0809C8C4:
+ movs r4, 0
+ b _0809C988
+_0809C8C8:
+ adds r0, r6, 0
+ subs r0, 0xC
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x16
+ bhi _0809C968
+ lsls r0, 2
+ ldr r1, _0809C8E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809C8E0: .4byte _0809C8E4
+ .align 2, 0
+_0809C8E4:
+ .4byte _0809C968
+ .4byte _0809C940
+ .4byte _0809C968
+ .4byte _0809C968
+ .4byte _0809C968
+ .4byte _0809C968
+ .4byte _0809C944
+ .4byte _0809C944
+ .4byte _0809C948
+ .4byte _0809C948
+ .4byte _0809C94C
+ .4byte _0809C968
+ .4byte _0809C950
+ .4byte _0809C950
+ .4byte _0809C954
+ .4byte _0809C954
+ .4byte _0809C958
+ .4byte _0809C958
+ .4byte _0809C95C
+ .4byte _0809C95C
+ .4byte _0809C960
+ .4byte _0809C960
+ .4byte _0809C964
+_0809C940:
+ movs r1, 0
+ b _0809C974
+_0809C944:
+ movs r1, 0x7
+ b _0809C974
+_0809C948:
+ movs r1, 0x9
+ b _0809C974
+_0809C94C:
+ movs r1, 0xA
+ b _0809C974
+_0809C950:
+ movs r1, 0xB
+ b _0809C974
+_0809C954:
+ movs r1, 0xD
+ b _0809C974
+_0809C958:
+ movs r1, 0xF
+ b _0809C974
+_0809C95C:
+ movs r1, 0x11
+ b _0809C974
+_0809C960:
+ movs r1, 0x13
+ b _0809C974
+_0809C964:
+ movs r1, 0x20
+ b _0809C974
+_0809C968:
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r1, r0, 16
+_0809C974:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809CA10
+ adds r0, r1, 0
+ bl sub_80A2740
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0x2
+_0809C988:
+ ldr r0, _0809C99C
+ ldr r2, [r0]
+ ldr r1, [r2, 0x10]
+ adds r3, r0, 0
+ cmp r1, r4
+ beq _0809C9A0
+ movs r0, 0x2
+ str r0, [r2]
+ b _0809C9DE
+ .align 2, 0
+_0809C99C: .4byte gUnknown_3001B68
+_0809C9A0:
+ cmp r4, 0x1
+ bne _0809C9CC
+ ldrb r0, [r2, 0x18]
+ cmp r5, r0
+ bne _0809C9B2
+ movs r1, 0x14
+ ldrsh r0, [r2, r1]
+ cmp r0, r8
+ beq _0809C9BC
+_0809C9B2:
+ strb r4, [r2, 0xC]
+ ldr r0, [r3]
+ adds r0, 0x20
+ strb r4, [r0]
+ b _0809C9E8
+_0809C9BC:
+ cmp r5, 0
+ bne _0809C9E8
+ movs r1, 0x16
+ ldrsh r0, [r2, r1]
+ cmp r0, r6
+ beq _0809C9E8
+ strb r4, [r2, 0xC]
+ b _0809C9E8
+_0809C9CC:
+ cmp r4, 0x2
+ bne _0809C9E8
+ ldrb r0, [r2, 0x19]
+ cmp r7, r0
+ bne _0809C9DE
+ movs r1, 0x16
+ ldrsh r0, [r2, r1]
+ cmp r0, r6
+ beq _0809C9E8
+_0809C9DE:
+ movs r1, 0x1
+ strb r1, [r2, 0xC]
+ ldr r0, [r3]
+ adds r0, 0x20
+ strb r1, [r0]
+_0809C9E8:
+ ldr r1, [r3]
+ ldrb r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0809CA10
+ str r4, [r1, 0x10]
+ movs r2, 0
+ mov r0, r8
+ strh r0, [r1, 0x14]
+ strh r6, [r1, 0x16]
+ strb r5, [r1, 0x18]
+ ldr r0, [r3]
+ strb r7, [r0, 0x19]
+ ldr r1, [r3]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0x4
+ beq _0809CA10
+ strb r2, [r1, 0xC]
+ ldr r0, [r3]
+ adds r0, 0x20
+ strb r2, [r0]
+_0809CA10:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809C770
+
+ thumb_func_start nullsub_105
+nullsub_105:
+ bx lr
+ thumb_func_end nullsub_105
+
+ thumb_func_start sub_809CA20
+sub_809CA20:
+ push {lr}
+ ldr r1, _0809CA74
+ ldr r2, [r1]
+ ldr r0, [r2]
+ cmp r0, 0
+ beq _0809CA38
+ movs r0, 0
+ str r0, [r2]
+ movs r0, 0x1F
+ str r0, [r2, 0x4]
+ movs r0, 0x1
+ strb r0, [r2, 0xC]
+_0809CA38:
+ ldr r1, [r1]
+ ldrb r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0809CAE8
+ ldrh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bne _0809CA5E
+ ldr r2, [r1, 0x10]
+ cmp r2, 0
+ bne _0809CA5E
+ movs r0, 0x2
+ strh r0, [r1, 0xA]
+ str r2, [r1, 0x1C]
+ adds r1, 0x20
+ movs r0, 0
+ strb r0, [r1]
+_0809CA5E:
+ ldr r0, _0809CA74
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x5
+ bhi _0809CADA
+ lsls r0, 2
+ ldr r1, _0809CA78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809CA74: .4byte gUnknown_3001B68
+_0809CA78: .4byte _0809CA7C
+ .align 2, 0
+_0809CA7C:
+ .4byte _0809CAD2
+ .4byte _0809CAD2
+ .4byte _0809CABE
+ .4byte _0809CA94
+ .4byte _0809CAB0
+ .4byte _0809CAC8
+_0809CA94:
+ bl nullsub_111
+ bl nullsub_113
+ bl nullsub_112
+ ldr r0, _0809CAAC
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0xD]
+ b _0809CADA
+ .align 2, 0
+_0809CAAC: .4byte gUnknown_3001B68
+_0809CAB0:
+ bl nullsub_114
+ bl nullsub_115
+ bl nullsub_116
+ b _0809CADA
+_0809CABE:
+ bl nullsub_109
+ bl nullsub_110
+ b _0809CADA
+_0809CAC8:
+ bl nullsub_107
+ bl nullsub_108
+ b _0809CADA
+_0809CAD2:
+ bl nullsub_107
+ bl nullsub_108
+_0809CADA:
+ ldr r0, _0809CAE4
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0xC]
+ b _0809CB1E
+ .align 2, 0
+_0809CAE4: .4byte gUnknown_3001B68
+_0809CAE8:
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x5
+ bhi _0809CB1E
+ lsls r0, 2
+ ldr r1, _0809CAF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809CAF8: .4byte _0809CAFC
+ .align 2, 0
+_0809CAFC:
+ .4byte _0809CB1E
+ .4byte _0809CB1E
+ .4byte _0809CB1E
+ .4byte _0809CB14
+ .4byte _0809CB1A
+ .4byte _0809CB1E
+_0809CB14:
+ bl nullsub_113
+ b _0809CB1E
+_0809CB1A:
+ bl nullsub_116
+_0809CB1E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809CA20
+
+ thumb_func_start nullsub_106
+nullsub_106:
+ bx lr
+ thumb_func_end nullsub_106
+
+ thumb_func_start nullsub_107
+nullsub_107:
+ bx lr
+ thumb_func_end nullsub_107
+
+ thumb_func_start nullsub_108
+nullsub_108:
+ bx lr
+ thumb_func_end nullsub_108
+
+ thumb_func_start nullsub_109
+nullsub_109:
+ bx lr
+ thumb_func_end nullsub_109
+
+ thumb_func_start nullsub_110
+nullsub_110:
+ bx lr
+ thumb_func_end nullsub_110
+
+ thumb_func_start nullsub_111
+nullsub_111:
+ bx lr
+ thumb_func_end nullsub_111
+
+ thumb_func_start nullsub_112
+nullsub_112:
+ bx lr
+ thumb_func_end nullsub_112
+
+ thumb_func_start nullsub_113
+nullsub_113:
+ bx lr
+ thumb_func_end nullsub_113
+
+ thumb_func_start nullsub_114
+nullsub_114:
+ bx lr
+ thumb_func_end nullsub_114
+
+ thumb_func_start nullsub_115
+nullsub_115:
+ bx lr
+ thumb_func_end nullsub_115
+
+ thumb_func_start nullsub_116
+nullsub_116:
+ bx lr
+ thumb_func_end nullsub_116
+
+ thumb_func_start sub_809CB50
+sub_809CB50:
+ push {r4,lr}
+ ldr r4, _0809CB70
+ movs r0, 0xC
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0, 0x4]
+ movs r1, 0
+ str r1, [r0, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CB70: .4byte gUnknown_20399E0
+ thumb_func_end sub_809CB50
+
+ thumb_func_start sub_809CB74
+sub_809CB74:
+ push {r4,lr}
+ ldr r4, _0809CB88
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809CB88: .4byte gUnknown_20399E0
+ thumb_func_end sub_809CB74
+
+ thumb_func_start sub_809CB8C
+sub_809CB8C:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x3B
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x3D
+ bl sub_80015C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809CB8C
+
+ thumb_func_start sub_809CBA4
+sub_809CBA4:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8091130
+ cmp r0, 0
+ bge _0809CBB6
+ movs r0, 0
+ b _0809CBB8
+_0809CBB6:
+ movs r0, 0x1
+_0809CBB8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CBA4
+
+ thumb_func_start sub_809CBBC
+sub_809CBBC:
+ push {r4-r7,lr}
+ sub sp, 0x54
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ adds r7, r3, 0
+ ldrb r1, [r4]
+ cmp r1, 0x69
+ bne _0809CC20
+ ldr r1, _0809CC0C
+ movs r0, 0x2
+ ldrsh r2, [r4, r0]
+ ldr r0, _0809CC10
+ ldr r0, [r0]
+ movs r3, 0xD2
+ lsls r3, 4
+ adds r0, r3
+ ldr r3, [r0]
+ mov r0, sp
+ bl sub_800D158
+ ldr r0, _0809CC14
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r2, r0, r1
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ ldr r0, [r2]
+ adds r1, r0, r1
+ ldr r0, _0809CC18
+ cmp r1, r0
+ ble _0809CC1C
+ cmp r6, 0
+ beq _0809CC4E
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ adds r2, r6, 0
+ b _0809CC4A
+ .align 2, 0
+_0809CC0C: .4byte gUnknown_81163E4
+_0809CC10: .4byte gItemParametersFile + 4
+_0809CC14: .4byte gUnknown_203B460
+_0809CC18: .4byte 0x0001869f
+_0809CC1C:
+ str r1, [r2]
+ b _0809CC5E
+_0809CC20:
+ ldrb r0, [r4, 0x2]
+ lsls r1, 16
+ lsls r0, 8
+ orrs r0, r1
+ str r0, [sp, 0x50]
+ add r4, sp, 0x50
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8090E14
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _0809CC52
+ cmp r5, 0
+ beq _0809CC4E
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ adds r2, r5, 0
+_0809CC4A:
+ bl sub_809AE90
+_0809CC4E:
+ movs r0, 0
+ b _0809CC82
+_0809CC52:
+ ldrb r0, [r4, 0x2]
+ movs r1, 0
+ bl sub_809124C
+ bl sub_80910B4
+_0809CC5E:
+ cmp r7, 0
+ beq _0809CC80
+ ldr r0, _0809CC8C
+ mov r1, sp
+ bl strcpy
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ adds r2, r7, 0
+ bl sub_809AE90
+ movs r1, 0x80
+ lsls r1, 1
+ movs r0, 0xCB
+ bl sub_8011974
+_0809CC80:
+ movs r0, 0x1
+_0809CC82:
+ add sp, 0x54
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809CC8C: .4byte gUnknown_202DE58
+ thumb_func_end sub_809CBBC
+
+ thumb_func_start sub_809CC90
+sub_809CC90:
+ push {lr}
+ lsls r0, 2
+ ldr r1, _0809CCBC
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0x69
+ bne _0809CCC8
+ ldr r0, _0809CCC0
+ ldr r0, [r0]
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r2
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ ldr r0, [r0]
+ adds r0, r1
+ ldr r1, _0809CCC4
+ cmp r0, r1
+ ble _0809CCD4
+ movs r0, 0x2
+ b _0809CCD6
+ .align 2, 0
+_0809CCBC: .4byte gUnknown_81163BC
+_0809CCC0: .4byte gUnknown_203B460
+_0809CCC4: .4byte 0x0001869f
+_0809CCC8:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _0809CCD4
+ movs r0, 0x2
+ b _0809CCD6
+_0809CCD4:
+ movs r0, 0x1
+_0809CCD6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CC90
+
+ thumb_func_start sub_809CCDC
+sub_809CCDC:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r1, r6, 2
+ ldr r0, _0809CD20
+ adds r5, r1, r0
+ ldr r0, _0809CD24
+ ldr r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1, 0x4]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r0, 0x2
+ cmp r4, 0x63
+ bgt _0809CD04
+ movs r0, 0
+ cmp r4, 0x1
+ ble _0809CD04
+ movs r0, 0x1
+_0809CD04:
+ ldr r1, _0809CD28
+ ldr r2, _0809CD2C
+ ldr r3, _0809CD30
+ lsls r0, 2
+ adds r0, r3
+ ldr r3, [r0]
+ adds r0, r5, 0
+ bl sub_809CBBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809CD34
+ movs r0, 0x2
+ b _0809CD3E
+ .align 2, 0
+_0809CD20: .4byte gUnknown_81163BC
+_0809CD24: .4byte gUnknown_20399E0
+_0809CD28: .4byte gUnknown_81163F0
+_0809CD2C: .4byte gUnknown_811642C
+_0809CD30: .4byte gUnknown_203B4A0
+_0809CD34:
+ ldr r0, _0809CD44
+ ldr r0, [r0]
+ str r6, [r0, 0x4]
+ str r4, [r0, 0x8]
+ movs r0, 0x1
+_0809CD3E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809CD44: .4byte gUnknown_20399E0
+ thumb_func_end sub_809CCDC
+
+ thumb_func_start sub_809CD48
+sub_809CD48:
+ push {lr}
+ bl sub_809A750
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809CD58
+ movs r0, 0x3
+ b _0809CD5A
+_0809CD58:
+ movs r0, 0
+_0809CD5A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CD48
+
+ thumb_func_start nullsub_117
+nullsub_117:
+ bx lr
+ thumb_func_end nullsub_117
+
+ thumb_func_start nullsub_118
+nullsub_118:
+ bx lr
+ thumb_func_end nullsub_118
+
+ thumb_func_start sub_809CD68
+sub_809CD68:
+ movs r2, 0
+ str r2, [r0]
+ str r2, [r0, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0, 0x10]
+ str r2, [r0, 0x14]
+ str r2, [r0, 0x8]
+ strb r2, [r0, 0x18]
+ bx lr
+ thumb_func_end sub_809CD68
+
+ thumb_func_start sub_809CD7C
+sub_809CD7C:
+ movs r2, 0
+ str r2, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0, 0x10]
+ str r2, [r0, 0x14]
+ str r2, [r0, 0x8]
+ bx lr
+ thumb_func_end sub_809CD7C
+
+ thumb_func_start sub_809CD8C
+sub_809CD8C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ cmp r4, 0x5
+ bne _0809CD9E
+ bl sub_809CD68
+ str r4, [r5]
+ b _0809CDB0
+_0809CD9E:
+ ldr r0, [r5, 0x4]
+ cmp r0, r4
+ beq _0809CDB0
+ str r4, [r5, 0x4]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r5, 0x10]
+ movs r0, 0
+ str r0, [r5, 0x14]
+_0809CDB0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809CD8C
+
+ thumb_func_start sub_809CDB8
+sub_809CDB8:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0809CDC4
+ ldr r0, [r1]
+_0809CDC4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CDB8
+
+ thumb_func_start sub_809CDC8
+sub_809CDC8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ ldr r1, [sp, 0x24]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r3]
+ ldr r0, [r4]
+ cmp r0, 0x1
+ beq _0809CDEA
+ cmp r0, 0x2
+ beq _0809CDFE
+ b _0809CE12
+_0809CDEA:
+ movs r0, 0x80
+ lsls r0, 6
+ ands r1, r0
+ cmp r1, 0
+ beq _0809CE12
+ adds r0, r4, 0
+ bl sub_809CD68
+ movs r0, 0x2
+ b _0809CE10
+_0809CDFE:
+ movs r0, 0x80
+ lsls r0, 6
+ ands r1, r0
+ cmp r1, 0
+ bne _0809CE12
+ adds r0, r4, 0
+ bl sub_809CD68
+ movs r0, 0x1
+_0809CE10:
+ str r0, [r4]
+_0809CE12:
+ ldr r0, [r4, 0x4]
+ mov r8, r0
+ cmp r0, 0
+ bne _0809CE1E
+ ldr r1, [r4]
+ mov r8, r1
+_0809CE1E:
+ mov r0, r8
+ subs r0, 0x1
+ cmp r0, 0x6
+ bls _0809CE28
+ b _0809CFCC
+_0809CE28:
+ lsls r0, 2
+ ldr r1, _0809CE34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809CE34: .4byte _0809CE38
+ .align 2, 0
+_0809CE38:
+ .4byte _0809CE54
+ .4byte _0809CF74
+ .4byte _0809CFCC
+ .4byte _0809CFCC
+ .4byte _0809CECC
+ .4byte _0809CF5C
+ .4byte _0809CF5C
+_0809CE54:
+ ldr r0, _0809CE70
+ ldrh r2, [r0]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0xF0
+ ands r0, r2
+ cmp r0, 0
+ beq _0809CE74
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0809CEA4
+ movs r0, 0
+ b _0809CEA8
+ .align 2, 0
+_0809CE70: .4byte gUnknown_20255F0
+_0809CE74:
+ movs r3, 0x2
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0809CE82
+ movs r0, 0x14
+ b _0809CEA8
+_0809CE82:
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x1
+ ble _0809CEA4
+ subs r0, 0x1
+ str r0, [r4, 0x10]
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0809CEAA
+ movs r0, 0x13
+ str r0, [r6]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+ strb r0, [r7]
+ movs r0, 0x5
+ b _0809CFDA
+_0809CEA4:
+ movs r0, 0x1
+ negs r0, r0
+_0809CEA8:
+ str r0, [r4, 0x10]
+_0809CEAA:
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0809CEB6
+ movs r0, 0xA
+ b _0809CEC2
+_0809CEB6:
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ bne _0809CEC0
+ movs r0, 0x8
+ b _0809CEC2
+_0809CEC0:
+ movs r0, 0x7
+_0809CEC2:
+ str r0, [r6]
+ adds r0, r2, 0
+ bl sub_809CFE8
+ b _0809CF4E
+_0809CECC:
+ mov r0, sp
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809CFCC
+ ldr r0, _0809CEEC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0
+ bne _0809CEF0
+ movs r0, 0x4
+ bl sub_809C6CC
+ b _0809CEF6
+ .align 2, 0
+_0809CEEC: .4byte gUnknown_203B46C
+_0809CEF0:
+ movs r0, 0x3
+ bl sub_809C6CC
+_0809CEF6:
+ bl nullsub_104
+ adds r0, r4, 0
+ bl sub_809CD7C
+ movs r5, 0x1
+ str r5, [r4]
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0809CF1E
+ cmp r0, 0x2
+ bgt _0809CF14
+ cmp r0, 0x1
+ beq _0809CF2A
+ b _0809CF54
+_0809CF14:
+ cmp r0, 0x3
+ beq _0809CF2A
+ cmp r0, 0x4
+ beq _0809CF3C
+ b _0809CF54
+_0809CF1E:
+ movs r0, 0x4
+ str r0, [r4]
+ movs r0, 0x1E
+ bl sub_8098D80
+ b _0809CF46
+_0809CF2A:
+ movs r0, 0x4
+ str r0, [r4]
+ str r5, [r6]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+ strb r0, [r7]
+ movs r0, 0x4
+ b _0809CFDA
+_0809CF3C:
+ str r0, [r4]
+ movs r0, 0x45
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+_0809CF46:
+ str r5, [r6]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_0809CF4E:
+ strb r0, [r7]
+ ldr r0, [r4]
+ b _0809CFDA
+_0809CF54:
+ movs r0, 0x2
+ bl sub_809D9B8
+ b _0809CFCC
+_0809CF5C:
+ add r0, sp, 0x4
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809CFCC
+ adds r0, r4, 0
+ bl sub_809CD7C
+ movs r0, 0x1
+ str r0, [r4]
+ b _0809CFDA
+_0809CF74:
+ ldr r0, [r4, 0x8]
+ cmp r0, 0
+ ble _0809CF86
+ subs r0, 0x1
+ str r0, [r4, 0x8]
+ movs r0, 0x9
+ str r0, [r6]
+ ldrb r0, [r4, 0xC]
+ b _0809CFD6
+_0809CF86:
+ ldr r0, _0809CFA0
+ ldrh r1, [r0]
+ movs r0, 0x9
+ str r0, [r6]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _0809CFA4
+ movs r0, 0x4
+ b _0809CFB6
+ .align 2, 0
+_0809CFA0: .4byte gUnknown_20255F0
+_0809CFA4:
+ movs r0, 0x80
+ ands r1, r0
+ cmp r1, 0
+ beq _0809CFB0
+ strb r2, [r7]
+ b _0809CFB8
+_0809CFB0:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_0809CFB6:
+ strb r0, [r7]
+_0809CFB8:
+ ldrb r0, [r7]
+ strb r0, [r4, 0xC]
+ lsls r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ cmp r0, r1
+ beq _0809CFD8
+ movs r0, 0x20
+ str r0, [r4, 0x8]
+ b _0809CFD8
+_0809CFCC:
+ movs r0, 0
+ str r0, [r6]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_0809CFD6:
+ strb r0, [r7]
+_0809CFD8:
+ mov r0, r8
+_0809CFDA:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CDC8
+
+ thumb_func_start sub_809CFE8
+sub_809CFE8:
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809D014
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809D004
+ movs r0, 0x3
+ b _0809D052
+_0809D004:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0809D010
+ movs r0, 0x5
+ b _0809D052
+_0809D010:
+ movs r0, 0x4
+ b _0809D052
+_0809D014:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809D038
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809D028
+ movs r0, 0x1
+ b _0809D052
+_0809D028:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0809D034
+ movs r0, 0x7
+ b _0809D052
+_0809D034:
+ movs r0, 0
+ b _0809D052
+_0809D038:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0809D044
+ movs r0, 0x2
+ b _0809D052
+_0809D044:
+ movs r0, 0x20
+ ands r2, r0
+ cmp r2, 0
+ bne _0809D050
+ subs r0, 0x21
+ b _0809D052
+_0809D050:
+ movs r0, 0x6
+_0809D052:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809CFE8
+
+ thumb_func_start sub_809D058
+sub_809D058:
+ push {lr}
+ ldr r1, [r0, 0x4]
+ cmp r1, 0x3F
+ bgt _0809D076
+ ldr r0, [r0]
+ cmp r0, 0x67
+ bgt _0809D06A
+ movs r0, 0x5
+ b _0809D0A6
+_0809D06A:
+ cmp r0, 0x88
+ ble _0809D072
+ movs r0, 0x3
+ b _0809D0A6
+_0809D072:
+ movs r0, 0x4
+ b _0809D0A6
+_0809D076:
+ cmp r1, 0x60
+ ble _0809D090
+ ldr r0, [r0]
+ cmp r0, 0x67
+ bgt _0809D084
+ movs r0, 0x7
+ b _0809D0A6
+_0809D084:
+ cmp r0, 0x88
+ ble _0809D08C
+ movs r0, 0x1
+ b _0809D0A6
+_0809D08C:
+ movs r0, 0
+ b _0809D0A6
+_0809D090:
+ ldr r0, [r0]
+ cmp r0, 0x67
+ bgt _0809D09A
+ movs r0, 0x6
+ b _0809D0A6
+_0809D09A:
+ cmp r0, 0x88
+ bgt _0809D0A4
+ movs r0, 0x1
+ negs r0, r0
+ b _0809D0A6
+_0809D0A4:
+ movs r0, 0x2
+_0809D0A6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D058
+
+ thumb_func_start sub_809D0AC
+sub_809D0AC:
+ push {lr}
+ bl sub_809D0BC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D0AC
+
+ thumb_func_start nullsub_119
+nullsub_119:
+ bx lr
+ thumb_func_end nullsub_119
+
+ thumb_func_start sub_809D0BC
+sub_809D0BC:
+ push {r4,r5,lr}
+ ldr r5, _0809D0F8
+ ldr r1, _0809D0FC
+ ldr r2, [r1]
+ ldr r3, [r1, 0x4]
+ str r2, [r5, 0x3C]
+ str r3, [r5, 0x40]
+ adds r0, r5, 0
+ adds r0, 0x44
+ movs r4, 0
+ strb r4, [r0]
+ movs r0, 0
+ bl sub_809D158
+ str r4, [r5, 0x8]
+ str r4, [r5, 0xC]
+ str r4, [r5, 0x10]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r5, 0x4]
+ str r4, [r5, 0x24]
+ str r4, [r5, 0x28]
+ str r4, [r5, 0x2C]
+ str r4, [r5, 0x30]
+ str r4, [r5, 0x34]
+ str r4, [r5, 0x38]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D0F8: .4byte gUnknown_20399E8
+_0809D0FC: .4byte gUnknown_8116478
+ thumb_func_end sub_809D0BC
+
+ thumb_func_start sub_809D100
+sub_809D100:
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, _0809D120
+ ldr r0, [r1, 0x24]
+ cmp r0, r2
+ beq _0809D11A
+ str r2, [r1, 0x24]
+ movs r0, 0
+ str r0, [r1, 0x28]
+ str r0, [r1, 0x2C]
+ str r0, [r1, 0x30]
+ str r0, [r1, 0x34]
+ str r0, [r1, 0x38]
+_0809D11A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D120: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D100
+
+ thumb_func_start sub_809D124
+sub_809D124:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _0809D144
+ ldr r0, [r3, 0x24]
+ cmp r0, r4
+ beq _0809D13A
+ str r4, [r3, 0x24]
+ movs r0, 0
+ str r0, [r3, 0x30]
+ str r0, [r3, 0x34]
+ str r0, [r3, 0x38]
+_0809D13A:
+ str r1, [r3, 0x28]
+ str r2, [r3, 0x2C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D144: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D124
+
+ thumb_func_start sub_809D148
+sub_809D148:
+ ldr r1, _0809D154
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_0809D154: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D148
+
+ thumb_func_start sub_809D158
+sub_809D158:
+ ldr r2, _0809D16C
+ str r0, [r2]
+ movs r0, 0
+ str r0, [r2, 0x8]
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ str r0, [r2, 0x1C]
+ str r1, [r2, 0x20]
+ bx lr
+ .align 2, 0
+_0809D16C: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D158
+
+ thumb_func_start sub_809D170
+sub_809D170:
+ ldr r2, _0809D17C
+ str r0, [r2]
+ movs r0, 0
+ str r0, [r2, 0x8]
+ str r1, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_0809D17C: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D170
+
+ thumb_func_start sub_809D180
+sub_809D180:
+ ldr r2, _0809D18C
+ str r0, [r2]
+ movs r0, 0x1
+ str r0, [r2, 0x8]
+ str r1, [r2, 0xC]
+ bx lr
+ .align 2, 0
+_0809D18C: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D180
+
+ thumb_func_start sub_809D190
+sub_809D190:
+ ldr r3, _0809D1A4
+ str r0, [r3]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ str r2, [r3, 0xC]
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ str r0, [r3, 0x14]
+ str r1, [r3, 0x18]
+ bx lr
+ .align 2, 0
+_0809D1A4: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D190
+
+ thumb_func_start sub_809D1A8
+sub_809D1A8:
+ ldr r3, _0809D1B8
+ str r0, [r3]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ str r2, [r3, 0xC]
+ str r1, [r3, 0x4]
+ bx lr
+ .align 2, 0
+_0809D1B8: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D1A8
+
+ thumb_func_start sub_809D1BC
+sub_809D1BC:
+ ldr r2, _0809D1C8
+ str r0, [r2]
+ movs r0, 0x2
+ str r0, [r2, 0x8]
+ str r1, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_0809D1C8: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D1BC
+
+ thumb_func_start sub_809D1CC
+sub_809D1CC:
+ ldr r3, _0809D1E0
+ str r0, [r3]
+ movs r0, 0x2
+ str r0, [r3, 0x8]
+ str r2, [r3, 0x10]
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ str r0, [r3, 0x14]
+ str r1, [r3, 0x18]
+ bx lr
+ .align 2, 0
+_0809D1E0: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D1CC
+
+ thumb_func_start sub_809D1E4
+sub_809D1E4:
+ ldr r3, _0809D1F4
+ str r0, [r3]
+ movs r0, 0x2
+ str r0, [r3, 0x8]
+ str r2, [r3, 0x10]
+ str r1, [r3, 0x4]
+ bx lr
+ .align 2, 0
+_0809D1F4: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D1E4
+
+ thumb_func_start sub_809D1F8
+sub_809D1F8:
+ ldr r2, _0809D204
+ str r0, [r2]
+ movs r0, 0x3
+ str r0, [r2, 0x8]
+ str r1, [r2, 0xC]
+ bx lr
+ .align 2, 0
+_0809D204: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D1F8
+
+ thumb_func_start sub_809D208
+sub_809D208:
+ ldr r3, _0809D21C
+ str r0, [r3]
+ movs r0, 0x3
+ str r0, [r3, 0x8]
+ str r2, [r3, 0xC]
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ str r0, [r3, 0x14]
+ str r1, [r3, 0x18]
+ bx lr
+ .align 2, 0
+_0809D21C: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D208
+
+ thumb_func_start sub_809D220
+sub_809D220:
+ ldr r3, _0809D230
+ str r0, [r3]
+ movs r0, 0x3
+ str r0, [r3, 0x8]
+ str r2, [r3, 0xC]
+ str r1, [r3, 0x4]
+ bx lr
+ .align 2, 0
+_0809D230: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D220
+
+ thumb_func_start sub_809D234
+sub_809D234:
+ push {lr}
+ ldr r0, _0809D244
+ ldr r0, [r0, 0x8]
+ cmp r0, 0
+ beq _0809D240
+ movs r0, 0x1
+_0809D240:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D244: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D234
+
+ thumb_func_start sub_809D248
+sub_809D248:
+ ldr r3, _0809D258
+ ldr r1, [r3, 0x3C]
+ ldr r2, [r3, 0x40]
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r3, 0x44
+ ldrb r0, [r3]
+ bx lr
+ .align 2, 0
+_0809D258: .4byte gUnknown_20399E8
+ thumb_func_end sub_809D248
+
+ thumb_func_start sub_809D25C
+sub_809D25C:
+ push {r4-r6,lr}
+ sub sp, 0x24
+ ldr r4, _0809D274
+ ldr r0, [r4]
+ cmp r0, 0x2
+ beq _0809D28C
+ cmp r0, 0x2
+ bhi _0809D278
+ cmp r0, 0x1
+ beq _0809D27E
+ b _0809D2B2
+ .align 2, 0
+_0809D274: .4byte gUnknown_20399E8
+_0809D278:
+ cmp r0, 0x3
+ beq _0809D29A
+ b _0809D2B2
+_0809D27E:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ adds r1, r4, 0
+ adds r1, 0x1C
+ bl sub_80A8FD8
+ b _0809D2A6
+_0809D28C:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ adds r1, r4, 0
+ adds r1, 0x1C
+ bl sub_80AC448
+ b _0809D2A6
+_0809D29A:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ adds r1, r4, 0
+ adds r1, 0x1C
+ bl sub_80AD360
+_0809D2A6:
+ lsls r0, 16
+ ldr r1, _0809D2C4
+ cmp r0, r1
+ bne _0809D2B2
+ movs r0, 0
+ str r0, [r4]
+_0809D2B2:
+ ldr r4, _0809D2C8
+ ldr r0, [r4, 0x8]
+ cmp r0, 0x2
+ beq _0809D356
+ cmp r0, 0x2
+ bhi _0809D2CC
+ cmp r0, 0x1
+ beq _0809D2D2
+ b _0809D388
+ .align 2, 0
+_0809D2C4: .4byte 0xffff0000
+_0809D2C8: .4byte gUnknown_20399E8
+_0809D2CC:
+ cmp r0, 0x3
+ beq _0809D314
+ b _0809D388
+_0809D2D2:
+ ldr r0, [r4, 0x1C]
+ ldr r1, [r4, 0x14]
+ subs r0, r1
+ str r0, [sp, 0x4]
+ ldr r0, [r4, 0x20]
+ ldr r1, [r4, 0x18]
+ subs r0, r1
+ str r0, [sp, 0x8]
+ ldr r1, [r4, 0xC]
+ add r0, sp, 0x4
+ bl sub_800290C
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _0809D2FA
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _0809D2FA
+ str r0, [r4, 0x8]
+ b _0809D392
+_0809D2FA:
+ ldr r2, _0809D310
+ ldr r0, [r2, 0x14]
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ ldr r1, [sp, 0x8]
+ adds r0, r1
+ str r0, [r2, 0x18]
+ b _0809D392
+ .align 2, 0
+_0809D310: .4byte gUnknown_20399E8
+_0809D314:
+ ldr r1, [r4, 0x1C]
+ ldr r0, [r4, 0x14]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _0809D320
+ adds r0, 0xFF
+_0809D320:
+ asrs r2, r0, 8
+ ldr r1, [r4, 0x20]
+ ldr r0, [r4, 0x18]
+ subs r1, r0
+ cmp r1, 0
+ bge _0809D32E
+ adds r1, 0xFF
+_0809D32E:
+ asrs r1, 8
+ lsls r0, r2, 8
+ lsls r1, 8
+ bl sub_8009FB8
+ cmp r0, 0
+ bge _0809D33E
+ adds r0, 0xFF
+_0809D33E:
+ asrs r0, 8
+ lsls r0, 8
+ ldr r1, [r4, 0xC]
+ bl __divsi3
+ str r0, [r4, 0x10]
+ cmp r0, 0
+ bgt _0809D352
+ movs r0, 0x1
+ str r0, [r4, 0x10]
+_0809D352:
+ movs r0, 0x2
+ str r0, [r4, 0x8]
+_0809D356:
+ add r0, sp, 0xC
+ ldr r1, _0809D384
+ adds r2, r1, 0
+ adds r2, 0x8
+ adds r5, r1, 0
+ subs r5, 0x14
+ ldr r3, [r5, 0x10]
+ movs r4, 0x1
+ str r4, [sp]
+ bl sub_8002934
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ str r0, [r5, 0x14]
+ str r1, [r5, 0x18]
+ ldr r0, [r5, 0x10]
+ subs r0, 0x1
+ str r0, [r5, 0x10]
+ cmp r0, 0
+ bgt _0809D392
+ movs r0, 0
+ str r0, [r5, 0x8]
+ b _0809D392
+ .align 2, 0
+_0809D384: .4byte gUnknown_20399FC
+_0809D388:
+ ldr r2, _0809D3A4
+ ldr r0, [r2, 0x1C]
+ ldr r1, [r2, 0x20]
+ str r0, [r2, 0x14]
+ str r1, [r2, 0x18]
+_0809D392:
+ ldr r5, _0809D3A4
+ ldr r0, [r5, 0x24]
+ cmp r0, 0x1
+ beq _0809D3A8
+ cmp r0, 0x2
+ beq _0809D3D2
+ movs r0, 0
+ str r0, [r5, 0x34]
+ b _0809D402
+ .align 2, 0
+_0809D3A4: .4byte gUnknown_20399E8
+_0809D3A8:
+ ldr r0, [r5, 0x30]
+ subs r0, 0x1
+ str r0, [r5, 0x30]
+ cmp r0, 0
+ bgt _0809D404
+ movs r0, 0x4
+ str r0, [r5, 0x30]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl OtherRandomRange
+ lsls r0, 10
+ str r0, [r5, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl OtherRandomRange
+ lsls r0, 10
+ b _0809D402
+_0809D3D2:
+ ldr r0, [r5, 0x30]
+ subs r0, 0x1
+ str r0, [r5, 0x30]
+ cmp r0, 0
+ bgt _0809D404
+ ldr r0, [r5, 0x2C]
+ str r0, [r5, 0x30]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl OtherRandomRange
+ ldr r1, [r5, 0x28]
+ muls r0, r1
+ lsls r0, 8
+ str r0, [r5, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl OtherRandomRange
+ ldr r1, [r5, 0x28]
+ muls r0, r1
+ lsls r0, 8
+_0809D402:
+ str r0, [r5, 0x38]
+_0809D404:
+ add r5, sp, 0x14
+ add r6, sp, 0x1C
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A579C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809D474
+ ldr r4, _0809D47C
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x34]
+ adds r0, r1
+ adds r2, r0, 0
+ subs r2, 0x80
+ ldr r0, [r4, 0x18]
+ ldr r1, [r4, 0x38]
+ adds r0, r1
+ ldr r1, _0809D480
+ adds r3, r0, r1
+ ldr r0, [sp, 0x14]
+ cmp r2, r0
+ bge _0809D434
+ adds r2, r0, 0
+_0809D434:
+ ldr r0, [sp, 0x1C]
+ cmp r2, r0
+ blt _0809D43C
+ subs r2, r0, 0x1
+_0809D43C:
+ ldr r0, [r5, 0x4]
+ cmp r3, r0
+ bge _0809D444
+ adds r3, r0, 0
+_0809D444:
+ ldr r1, [r6, 0x4]
+ cmp r3, r1
+ blt _0809D44C
+ subs r3, r1, 0x1
+_0809D44C:
+ ldr r1, _0809D484
+ adds r0, r2, r1
+ cmp r0, 0
+ bge _0809D458
+ adds r1, 0xFF
+ adds r0, r2, r1
+_0809D458:
+ asrs r0, 8
+ str r0, [r4, 0x3C]
+ ldr r1, _0809D488
+ adds r0, r3, r1
+ cmp r0, 0
+ bge _0809D468
+ adds r1, 0xFF
+ adds r0, r3, r1
+_0809D468:
+ asrs r0, 8
+ str r0, [r4, 0x40]
+ adds r1, r4, 0
+ adds r1, 0x44
+ movs r0, 0x1
+ strb r0, [r1]
+_0809D474:
+ add sp, 0x24
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D47C: .4byte gUnknown_20399E8
+_0809D480: .4byte 0xfffff480
+_0809D484: .4byte 0xffff8700
+_0809D488: .4byte 0xffffb000
+ thumb_func_end sub_809D25C
+
+ thumb_func_start nullsub_120
+nullsub_120:
+ bx lr
+ thumb_func_end nullsub_120
+
+ thumb_func_start sub_809D490
+sub_809D490:
+ push {r4,lr}
+ ldr r4, _0809D4AC
+ movs r0, 0x80
+ lsls r0, 3
+ movs r1, 0x6
+ bl MemoryAlloc
+ str r0, [r4]
+ bl sub_809D4B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D4AC: .4byte gUnknown_203B4B0
+ thumb_func_end sub_809D490
+
+ thumb_func_start sub_809D4B0
+sub_809D4B0:
+ push {r4,r5,lr}
+ ldr r0, _0809D4EC
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0809D4F0
+ strh r1, [r0]
+ ldr r0, _0809D4F4
+ strh r1, [r0]
+ ldr r1, _0809D4F8
+ movs r0, 0
+ strb r0, [r1]
+ movs r1, 0
+ ldr r5, _0809D4FC
+ movs r2, 0
+ ldr r3, _0809D500
+ ldr r4, _0809D504
+_0809D4D4:
+ adds r0, r1, r5
+ strb r2, [r0]
+ adds r0, r1, r3
+ strb r2, [r0]
+ stm r4!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x80
+ ble _0809D4D4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D4EC: .4byte gUnknown_2039A30
+_0809D4F0: .4byte gUnknown_2039A32
+_0809D4F4: .4byte gUnknown_2039A34
+_0809D4F8: .4byte gUnknown_2039A36
+_0809D4FC: .4byte gUnknown_2039A38
+_0809D500: .4byte gUnknown_2039AC0
+_0809D504: .4byte gUnknown_2039B48
+ thumb_func_end sub_809D4B0
+
+ thumb_func_start sub_809D508
+sub_809D508:
+ push {r4,lr}
+ ldr r4, _0809D51C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D51C: .4byte gUnknown_203B4B0
+ thumb_func_end sub_809D508
+
+ thumb_func_start sub_809D520
+sub_809D520:
+ ldr r1, _0809D528
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0809D528: .4byte 0x0000ffff
+ thumb_func_end sub_809D520
+
+ thumb_func_start sub_809D52C
+sub_809D52C:
+ push {lr}
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ cmp r1, 0x1
+ beq _0809D544
+ cmp r1, 0x1
+ ble _0809D562
+ cmp r1, 0x2
+ beq _0809D54E
+ cmp r1, 0x3
+ beq _0809D558
+ b _0809D562
+_0809D544:
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ bl sub_80A882C
+ b _0809D564
+_0809D54E:
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ bl sub_80AC240
+ b _0809D564
+_0809D558:
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ bl sub_80AD158
+ b _0809D564
+_0809D562:
+ movs r0, 0
+_0809D564:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D52C
+
+ thumb_func_start sub_809D568
+sub_809D568:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _0809D5B4
+ strh r0, [r3]
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r3, 0x2]
+ str r0, [r3, 0x8]
+ str r0, [r3, 0x4]
+ str r0, [r3, 0x14]
+ str r0, [r3, 0x10]
+ adds r1, r3, 0
+ adds r1, 0x20
+ strb r2, [r1]
+ str r0, [r3, 0x1C]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r3, 0x22]
+ strh r0, [r3, 0x24]
+ adds r2, r3, 0
+ adds r2, 0x26
+ movs r1, 0xFF
+ strb r1, [r2]
+ strh r0, [r3, 0x28]
+ strh r0, [r3, 0x2A]
+ strh r0, [r3, 0x2C]
+ str r0, [r3, 0x30]
+ movs r2, 0
+ movs r1, 0x3
+ adds r0, r3, 0
+ adds r0, 0x5C
+_0809D5A6:
+ str r2, [r0]
+ subs r0, 0x4
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0809D5A6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5B4: .4byte 0x0000ffff
+ thumb_func_end sub_809D568
+
+ thumb_func_start sub_809D5B8
+sub_809D5B8:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ str r0, [r4]
+ str r0, [r4, 0x4]
+ ldr r0, _0809D5FC
+ strh r0, [r4, 0x10]
+ movs r0, 0xFF
+ strb r0, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_809D520
+ movs r2, 0
+ movs r1, 0x3
+ adds r0, r4, 0
+ adds r0, 0x20
+_0809D5DA:
+ str r2, [r0]
+ subs r0, 0x4
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0809D5DA
+ adds r0, r4, 0
+ adds r0, 0x24
+ bl sub_809D568
+ adds r0, r4, 0
+ adds r0, 0x84
+ bl sub_809D568
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5FC: .4byte 0x0000ffff
+ thumb_func_end sub_809D5B8
+
+ thumb_func_start sub_809D600
+sub_809D600:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ adds r4, r3, 0
+ ldr r5, [sp, 0x18]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 24
+ asrs r5, 24
+ bl sub_809D5B8
+ str r6, [r7]
+ mov r0, r8
+ str r0, [r7, 0x4]
+ strh r4, [r7, 0x10]
+ strb r5, [r7, 0x12]
+ ldrh r0, [r6]
+ strh r0, [r7, 0x8]
+ ldr r1, [r6, 0x4]
+ cmp r1, 0
+ beq _0809D63A
+ mov r0, r8
+ bl _call_via_r1
+ strh r0, [r7, 0xA]
+ b _0809D63C
+_0809D63A:
+ strh r1, [r7, 0xA]
+_0809D63C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D600
+
+ thumb_func_start sub_809D648
+sub_809D648:
+ push {lr}
+ bl sub_809D5B8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D648
+
+ thumb_func_start sub_809D654
+sub_809D654:
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ bx lr
+ thumb_func_end sub_809D654
+
+ thumb_func_start sub_809D65C
+sub_809D65C:
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0809D66E
+ movs r0, 0x1
+ negs r0, r0
+ b _0809D672
+_0809D66E:
+ movs r2, 0x24
+ ldrsh r0, [r1, r2]
+_0809D672:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D65C
+
+ thumb_func_start sub_809D678
+sub_809D678:
+ movs r2, 0x26
+ ldrsh r1, [r0, r2]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ thumb_func_end sub_809D678
+
+ thumb_func_start sub_809D684
+sub_809D684:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _0809D6A4
+ ldr r0, [r2, 0x34]
+ cmp r0, 0
+ beq _0809D69C
+ ldr r1, [r2, 0x38]
+ b _0809D69E
+_0809D69C:
+ ldr r1, [r2, 0x2C]
+_0809D69E:
+ ldr r0, [r3]
+ cmp r1, r0
+ beq _0809D6CC
+_0809D6A4:
+ adds r0, r2, 0
+ adds r0, 0x86
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0809D6D0
+ adds r0, r2, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809D6C0
+ adds r0, r2, 0
+ adds r0, 0x98
+ b _0809D6C4
+_0809D6C0:
+ adds r0, r2, 0
+ adds r0, 0x8C
+_0809D6C4:
+ ldr r1, [r0]
+ ldr r0, [r3]
+ cmp r1, r0
+ bne _0809D6D0
+_0809D6CC:
+ movs r0, 0x1
+ b _0809D6D2
+_0809D6D0:
+ movs r0, 0
+_0809D6D2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D684
+
+ thumb_func_start sub_809D6D8
+sub_809D6D8:
+ lsls r1, 16
+ asrs r1, 14
+ adds r0, 0x14
+ adds r0, r1
+ str r2, [r0]
+ bx lr
+ thumb_func_end sub_809D6D8
+
+ thumb_func_start sub_809D6E4
+sub_809D6E4:
+ push {r4,lr}
+ lsls r2, 16
+ asrs r2, 16
+ lsls r4, r2, 2
+ adds r3, r0, 0
+ adds r3, 0x14
+ adds r3, r4
+ ldr r3, [r3]
+ str r3, [r1]
+ strh r2, [r1, 0x4]
+ ldrh r2, [r0, 0x10]
+ strh r2, [r1, 0x6]
+ ldrb r0, [r0, 0x12]
+ strb r0, [r1, 0x8]
+ adds r0, r3, 0
+ cmp r0, 0
+ beq _0809D708
+ movs r0, 0x1
+_0809D708:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D6E4
+
+ thumb_func_start sub_809D710
+sub_809D710:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r3, r1, 0
+ lsls r2, 16
+ asrs r2, 16
+ ldr r1, _0809D73C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r3]
+ movs r0, 0x2
+ strh r0, [r3, 0x4]
+ cmp r4, 0
+ beq _0809D740
+ ldrh r0, [r4, 0x10]
+ strh r0, [r3, 0x6]
+ ldrb r0, [r4, 0x12]
+ b _0809D746
+ .align 2, 0
+_0809D73C: .4byte gUnknown_812F1F8
+_0809D740:
+ ldr r0, _0809D750
+ strh r0, [r3, 0x6]
+ movs r0, 0xFF
+_0809D746:
+ strb r0, [r3, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D750: .4byte 0x0000ffff
+ thumb_func_end sub_809D710
+
+ thumb_func_start sub_809D754
+sub_809D754:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x24
+ bl sub_809D568
+ adds r4, 0x84
+ adds r0, r4, 0
+ bl sub_809D568
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D754
+
+ thumb_func_start sub_809D770
+sub_809D770:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x24
+ bl sub_809D568
+ adds r0, r4, 0
+ adds r0, 0x84
+ bl sub_809D568
+ movs r0, 0x4
+ strh r0, [r4, 0x26]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D770
+
+ thumb_func_start GroundScript_ExecutePP
+GroundScript_ExecutePP:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ adds r6, r2, 0
+ cmp r6, 0
+ beq _0809D7A2
+ ldr r0, [r6]
+ cmp r0, 0
+ bne _0809D7A6
+_0809D7A2:
+ movs r0, 0
+ b _0809D8B8
+_0809D7A6:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bhi _0809D858
+ lsls r0, 2
+ ldr r1, _0809D7B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809D7B8: .4byte _0809D7BC
+ .align 2, 0
+_0809D7BC:
+ .4byte _0809D830
+ .4byte _0809D84A
+ .4byte _0809D7D4
+ .4byte _0809D7D4
+ .4byte _0809D858
+ .4byte _0809D7EE
+_0809D7D4:
+ movs r3, 0x24
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x1
+ beq _0809D838
+ adds r4, r5, 0
+ adds r4, 0x24
+ cmp r0, 0x5
+ bne _0809D86C
+ adds r0, r5, 0
+ adds r0, 0x84
+ bl sub_809D568
+ b _0809D86C
+_0809D7EE:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ beq _0809D808
+ ldr r0, _0809D800
+ ldr r1, _0809D804
+ bl FatalError
+ .align 2, 0
+_0809D800: .4byte gUnknown_8116538
+_0809D804: .4byte gUnknown_8116544
+_0809D808:
+ adds r2, r5, 0
+ adds r2, 0x84
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809D828
+ ldr r0, _0809D820
+ ldr r1, _0809D824
+ bl FatalError
+ .align 2, 0
+_0809D820: .4byte gUnknown_8116560
+_0809D824: .4byte gUnknown_811656C
+_0809D828:
+ adds r4, r5, 0
+ adds r4, 0x24
+ adds r0, r2, 0
+ b _0809D840
+_0809D830:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _0809D84A
+_0809D838:
+ adds r0, r5, 0
+ adds r0, 0x84
+ adds r4, r5, 0
+ adds r4, 0x24
+_0809D840:
+ adds r1, r4, 0
+ movs r2, 0x60
+ bl memcpy
+ b _0809D86C
+_0809D84A:
+ adds r0, r5, 0
+ adds r0, 0x84
+ bl sub_809D568
+ adds r4, r5, 0
+ adds r4, 0x24
+ b _0809D86C
+_0809D858:
+ ldr r0, _0809D864
+ ldr r1, _0809D868
+ movs r3, 0x4
+ ldrsh r2, [r6, r3]
+ bl FatalError
+ .align 2, 0
+_0809D864: .4byte gUnknown_8116588
+_0809D868: .4byte gUnknown_8116594
+_0809D86C:
+ adds r0, r4, 0
+ bl sub_809D568
+ cmp r7, 0
+ beq _0809D87C
+ ldr r0, [r7]
+ str r0, [r5, 0xC]
+ b _0809D884
+_0809D87C:
+ adds r0, r5, 0
+ adds r0, 0xC
+ bl sub_809D520
+_0809D884:
+ ldrh r0, [r6, 0x4]
+ movs r1, 0
+ strh r0, [r5, 0x24]
+ movs r0, 0x3
+ strh r0, [r5, 0x26]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x30]
+ ldrb r0, [r6, 0x8]
+ adds r2, r5, 0
+ adds r2, 0x32
+ strb r0, [r2]
+ ldr r0, [r6]
+ str r0, [r5, 0x28]
+ str r0, [r5, 0x2C]
+ str r1, [r5, 0x34]
+ str r1, [r5, 0x38]
+ ldr r0, [r5]
+ ldr r2, [r0, 0x14]
+ cmp r2, 0
+ beq _0809D8B6
+ ldr r0, [r5, 0x4]
+ adds r1, r5, 0
+ adds r1, 0x4A
+ bl _call_via_r2
+_0809D8B6:
+ movs r0, 0x1
+_0809D8B8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end GroundScript_ExecutePP
+
+ thumb_func_start sub_809D8C0
+sub_809D8C0:
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r3, 0
+ lsls r2, 16
+ asrs r2, 16
+ mov r1, sp
+ bl sub_809D6E4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ adds r3, r6, 0
+ bl GroundScript_ExecutePP
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D8C0
+
+ thumb_func_start sub_809D8EC
+sub_809D8EC:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ asrs r5, r1, 16
+ cmp r5, 0
+ bne _0809D910
+ bl sub_809A750
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809D910
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A2460
+ str r0, [r4, 0x28]
+ movs r0, 0
+ b _0809D922
+_0809D910:
+ adds r0, r4, 0
+ adds r0, 0x46
+ strh r5, [r0]
+ movs r0, 0x2
+ strh r0, [r4, 0x26]
+ ldr r1, _0809D928
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_0809D922:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D928: .4byte gUnknown_2039A36
+ thumb_func_end sub_809D8EC
+
+ thumb_func_start sub_809D92C
+sub_809D92C:
+ push {lr}
+ ldr r1, _0809D93C
+ bl sub_809D770
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D93C: .4byte gUnknown_81165C8
+ thumb_func_end sub_809D92C
+
+ thumb_func_start sub_809D940
+sub_809D940:
+ push {r4,lr}
+ bl sub_80A8B74
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80AC378
+ orrs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80AD290
+ orrs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D940
+
+ thumb_func_start sub_809D968
+sub_809D968:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ asrs r6, r1, 16
+ movs r4, 0
+ adds r2, r5, 0
+ adds r2, 0x46
+ ldrh r1, [r2]
+ movs r0, 0
+ ldrsh r3, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ beq _0809D98E
+ cmp r3, r6
+ bne _0809D98E
+ ldr r0, _0809D9B4
+ strh r0, [r2]
+ movs r4, 0x1
+_0809D98E:
+ adds r2, r5, 0
+ adds r2, 0xA6
+ ldrh r1, [r2]
+ movs r0, 0
+ ldrsh r3, [r2, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ beq _0809D9AA
+ cmp r3, r6
+ bne _0809D9AA
+ ldr r0, _0809D9B4
+ strh r0, [r2]
+ movs r4, 0x1
+_0809D9AA:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D9B4: .4byte 0x0000ffff
+ thumb_func_end sub_809D968
+
+ thumb_func_start sub_809D9B8
+sub_809D9B8:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0809D9D4
+ adds r1, r0, r1
+ movs r3, 0
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r1, _0809D9D8
+ lsls r0, 2
+ adds r0, r1
+ str r3, [r0]
+ ldr r0, _0809D9DC
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0809D9D4: .4byte gUnknown_2039A38
+_0809D9D8: .4byte gUnknown_2039B48
+_0809D9DC: .4byte gUnknown_2039A36
+ thumb_func_end sub_809D9B8
+
+ thumb_func_start sub_809D9E0
+sub_809D9E0:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0809D9FC
+ adds r2, r0, r2
+ movs r3, 0x1
+ strb r3, [r2]
+ ldr r2, _0809DA00
+ lsls r0, 2
+ adds r0, r2
+ str r1, [r0]
+ ldr r0, _0809DA04
+ strb r3, [r0]
+ bx lr
+ .align 2, 0
+_0809D9FC: .4byte gUnknown_2039A38
+_0809DA00: .4byte gUnknown_2039B48
+_0809DA04: .4byte gUnknown_2039A36
+ thumb_func_end sub_809D9E0
+
+ thumb_func_start sub_809DA08
+sub_809DA08:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ asrs r4, r1, 16
+ ldr r1, _0809DA2C
+ lsls r0, r4, 2
+ adds r0, r1
+ str r2, [r0]
+ cmp r4, 0
+ bne _0809DA38
+ bl sub_809A750
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DA30
+ movs r0, 0
+ b _0809DA5E
+ .align 2, 0
+_0809DA2C: .4byte gUnknown_2039B48
+_0809DA30:
+ adds r0, r5, 0
+ adds r0, 0x46
+ strh r4, [r0]
+ b _0809DA52
+_0809DA38:
+ movs r1, 0x80
+ adds r2, r5, 0
+ adds r2, 0x46
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0809DA64
+ adds r0, r4, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0809DA68
+ adds r0, r4, r0
+ strb r1, [r0]
+_0809DA52:
+ movs r0, 0x2
+ strh r0, [r5, 0x26]
+ ldr r1, _0809DA6C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_0809DA5E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809DA64: .4byte gUnknown_2039A38
+_0809DA68: .4byte gUnknown_2039AC0
+_0809DA6C: .4byte gUnknown_2039A36
+ thumb_func_end sub_809DA08
+
+ thumb_func_start HandleAction
+HandleAction:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x148
+ adds r7, r0, 0
+ movs r1, 0x26
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _0809DA8A
+ bl _0809EAB8
+_0809DA8A:
+ movs r2, 0x26
+ ldrsh r0, [r7, r2]
+ cmp r0, 0x4
+ bls _0809DA96
+ bl _0809E9CC
+_0809DA96:
+ lsls r0, 2
+ ldr r1, _0809DAA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DAA0: .4byte _0809DAA4
+ .align 2, 0
+_0809DAA4:
+ .4byte _0809E9C6
+ .4byte _0809E9C6
+ .4byte _0809DAB8
+ .4byte _0809E900
+ .4byte _0809E9C6
+_0809DAB8:
+ adds r1, r7, 0
+ adds r1, 0x44
+ ldrb r0, [r1]
+ subs r0, 0x3
+ adds r6, r1, 0
+ cmp r0, 0xED
+ bls _0809DACA
+ bl _0809E9D6
+_0809DACA:
+ lsls r0, 2
+ ldr r1, _0809DAD4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DAD4: .4byte _0809DAD8
+ .align 2, 0
+_0809DAD8:
+ .4byte _0809E382
+ .4byte _0809E3C4
+ .4byte _0809E524
+ .4byte _0809E464
+ .4byte _0809E4B4
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809DED6
+ .4byte _0809DED6
+ .4byte _0809DED6
+ .4byte _0809DED6
+ .4byte _0809DED6
+ .4byte _0809DED6
+ .4byte _0809DED6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E308
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E308
+ .4byte _0809E31C
+ .4byte _0809E75C
+ .4byte _0809E33C
+ .4byte _0809E368
+ .4byte _0809E658
+ .4byte _0809E6B4
+ .4byte _0809E6E8
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809E9D6
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809E9D6
+ .4byte _0809DE90
+ .4byte _0809DF60
+ .4byte _0809DF60
+ .4byte _0809DF60
+ .4byte _0809DF60
+ .4byte _0809DF60
+ .4byte _0809DF60
+ .4byte _0809DF60
+ .4byte _0809E0A2
+ .4byte _0809DFDC
+ .4byte _0809DFDC
+ .4byte _0809DFDC
+ .4byte _0809DFDC
+ .4byte _0809DFDC
+ .4byte _0809DFDC
+ .4byte _0809DFDC
+ .4byte _0809E0A2
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E078
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E08C
+ .4byte _0809E0E8
+ .4byte _0809E0E8
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809E146
+ .4byte _0809E146
+ .4byte _0809E146
+ .4byte _0809E146
+ .4byte _0809E146
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809E9D6
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E2D0
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E798
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E864
+ .4byte _0809E864
+ .4byte _0809E864
+ .4byte _0809E864
+ .4byte _0809E864
+ .4byte _0809E864
+ .4byte _0809E864
+ .4byte _0809E9D6
+ .4byte _0809E8D8
+ .4byte _0809DE90
+ .4byte _0809DE90
+ .4byte _0809DEA6
+ .4byte _0809DEBE
+ .4byte _0809DED6
+ .4byte _0809DEE8
+ .4byte _0809DF24
+ .4byte _0809DF24
+ .4byte _0809E2DE
+ .4byte _0809E9D6
+ .4byte _0809E2DE
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+ .4byte _0809E9D6
+_0809DE90:
+ adds r1, r7, 0
+ adds r1, 0x4E
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _0809DEA2
+ bl _0809EAB2
+_0809DEA2:
+ bl _0809E8F4
+_0809DEA6:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r1, [r1, 0x4C]
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809DEBA
+ bl _0809E9D6
+_0809DEBA:
+ bl _0809E8F4
+_0809DEBE:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r1, [r1, 0x50]
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809DED2
+ bl _0809E9D6
+_0809DED2:
+ bl _0809E8F4
+_0809DED6:
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809DEE4
+ bl _0809E9D6
+_0809DEE4:
+ bl _0809E8F4
+_0809DEE8:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r0, sp, 0x4
+ ldrh r0, [r0, 0x2]
+ bl sub_8011940
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DF06
+ bl _0809E8F4
+_0809DF06:
+ adds r2, r7, 0
+ adds r2, 0x50
+ ldrh r1, [r2]
+ adds r0, r1, 0x1
+ strh r0, [r2]
+ lsls r1, 16
+ ldr r0, _0809DF20
+ cmp r1, r0
+ bgt _0809DF1C
+ bl _0809E9D6
+_0809DF1C:
+ bl _0809E8F4
+ .align 2, 0
+_0809DF20: .4byte 0x2a2f0000
+_0809DF24:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r0, sp, 0x4
+ ldrh r0, [r0, 0x2]
+ bl sub_80119C0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DF42
+ bl _0809E8F4
+_0809DF42:
+ adds r2, r7, 0
+ adds r2, 0x50
+ ldrh r1, [r2]
+ adds r0, r1, 0x1
+ strh r0, [r2]
+ lsls r1, 16
+ ldr r0, _0809DF5C
+ cmp r1, r0
+ bgt _0809DF58
+ bl _0809E9D6
+_0809DF58:
+ bl _0809E8F4
+ .align 2, 0
+_0809DF5C: .4byte 0x0e0f0000
+_0809DF60:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r5, sp, 0xA4
+ ldr r2, [r1, 0xC]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r1, [r7, 0x60]
+ ldr r0, [r5]
+ subs r1, r0
+ add r4, sp, 0xAC
+ str r1, [r4]
+ ldr r0, [r7, 0x64]
+ ldr r1, [r5, 0x4]
+ subs r0, r1
+ str r0, [r4, 0x4]
+ ldr r1, [r7, 0x54]
+ adds r0, r4, 0
+ bl sub_800290C
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _0809DF98
+ ldr r0, [r4, 0x4]
+ cmp r0, 0
+ bne _0809DF98
+ bl _0809E8F4
+_0809DF98:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r1, 0x48]
+ adds r1, r4, 0
+ bl _call_via_r2
+ movs r1, 0x9
+ ands r1, r0
+ cmp r1, 0
+ beq _0809DFB0
+ bl _0809E8F4
+_0809DFB0:
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ movs r1, 0x80
+ lsls r1, 5
+ ldr r2, [r2, 0x30]
+ bl _call_via_r2
+ adds r2, r7, 0
+ adds r2, 0x4E
+ ldrh r0, [r2]
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ cmp r1, 0
+ bge _0809DFD0
+ bl _0809E9D6
+_0809DFD0:
+ cmp r1, 0
+ ble _0809DFD8
+ bl _0809EAAC
+_0809DFD8:
+ bl _0809E8F4
+_0809DFDC:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r5, sp, 0xB4
+ ldr r2, [r1, 0xC]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r1, [r7, 0x60]
+ ldr r0, [r5]
+ subs r1, r0
+ add r4, sp, 0xBC
+ str r1, [r4]
+ ldr r0, [r7, 0x64]
+ ldr r1, [r5, 0x4]
+ subs r0, r1
+ str r0, [r4, 0x4]
+ ldr r1, [r7, 0x54]
+ adds r0, r4, 0
+ bl sub_800290C
+ ldr r0, [r4]
+ adds r5, r4, 0
+ cmp r0, 0
+ bne _0809E016
+ ldr r0, [r5, 0x4]
+ cmp r0, 0
+ bne _0809E016
+ bl _0809E8F4
+_0809E016:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r1, 0x48]
+ adds r1, r5, 0
+ bl _call_via_r2
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_8002C60
+ lsls r0, 24
+ adds r2, r7, 0
+ adds r2, 0x4A
+ asrs r1, r0, 24
+ lsrs r0, 24
+ strb r0, [r2]
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+ movs r0, 0x9
+ ands r0, r4
+ cmp r0, 0
+ beq _0809E04C
+ bl _0809E8F4
+_0809E04C:
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ movs r1, 0x80
+ lsls r1, 5
+ ldr r2, [r2, 0x30]
+ bl _call_via_r2
+ adds r2, r7, 0
+ adds r2, 0x4E
+ ldrh r0, [r2]
+ movs r6, 0
+ ldrsh r1, [r2, r6]
+ cmp r1, 0
+ bge _0809E06C
+ bl _0809E9D6
+_0809E06C:
+ cmp r1, 0
+ ble _0809E074
+ bl _0809EAAC
+_0809E074:
+ bl _0809E8F4
+_0809E078:
+ adds r6, r7, 0
+ adds r6, 0x4E
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ ble _0809E088
+ bl _0809EA62
+_0809E088:
+ bl _0809E8F4
+_0809E08C:
+ movs r2, 0x4E
+ adds r2, r7
+ mov r8, r2
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _0809E09E
+ bl _0809E9DA
+_0809E09E:
+ bl _0809E8F4
+_0809E0A2:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r4, sp, 0xE4
+ add r2, sp, 0xE8
+ ldr r3, [r1, 0x10]
+ adds r1, r4, 0
+ bl _call_via_r3
+ ldr r0, [r7, 0x6C]
+ ldr r1, [r4]
+ subs r0, r1
+ adds r2, r4, 0
+ cmp r0, 0
+ bne _0809E0C2
+ bl _0809E8F4
+_0809E0C2:
+ ldr r4, [r7, 0x54]
+ cmn r0, r4
+ bge _0809E0CC
+ subs r0, r1, r4
+ b _0809E0D4
+_0809E0CC:
+ cmp r0, r4
+ ble _0809E0D2
+ adds r0, r4, 0
+_0809E0D2:
+ adds r0, r1, r0
+_0809E0D4:
+ str r0, [r2]
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ add r1, sp, 0xE4
+ ldr r1, [r1]
+ ldr r2, [r2, 0x28]
+ bl _call_via_r2
+ bl _0809E9D6
+_0809E0E8:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r4, sp, 0x14
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ ldr r2, [r7, 0x54]
+ add r4, sp, 0xEC
+ adds r0, r4, 0
+ bl sub_8002BB8
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ add r1, sp, 0xF4
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r2, 0x48]
+ bl _call_via_r2
+ movs r1, 0x9
+ ands r1, r0
+ cmp r1, 0
+ beq _0809E124
+ bl _0809E8F4
+_0809E124:
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ movs r1, 0x80
+ lsls r1, 5
+ ldr r2, [r2, 0x30]
+ bl _call_via_r2
+ adds r1, r7, 0
+ adds r1, 0x4E
+ ldrh r2, [r1]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ ble _0809E144
+ bl _0809EAB2
+_0809E144:
+ b _0809E8F4
+_0809E146:
+ adds r1, r7, 0
+ adds r1, 0x4E
+ ldrh r2, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ mov r10, r1
+ cmp r0, 0
+ ble _0809E15A
+ bl _0809EAB2
+_0809E15A:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r4, 0x1
+ negs r4, r4
+ mov r8, r4
+ movs r5, 0
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ mov r4, sp
+ adds r4, 0x15
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ subs r0, 0x91
+ mov r9, r4
+ cmp r0, 0x4
+ bhi _0809E234
+ lsls r0, 2
+ ldr r1, _0809E194
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809E194: .4byte _0809E198
+ .align 2, 0
+_0809E198:
+ .4byte _0809E1AC
+ .4byte _0809E1AC
+ .4byte _0809E1BA
+ .4byte _0809E1E0
+ .4byte _0809E20C
+_0809E1AC:
+ adds r0, r7, 0
+ adds r0, 0x71
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r0
+ b _0809E234
+_0809E1BA:
+ ldr r0, [sp, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ blt _0809E234
+ movs r5, 0x1
+ add r1, sp, 0xFC
+ adds r0, r4, 0
+ bl sub_80A8FD8
+ add r1, sp, 0x104
+ adds r0, r4, 0
+ bl sub_80A8F9C
+ b _0809E234
+_0809E1E0:
+ ldr r0, [sp, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ blt _0809E234
+ movs r5, 0x1
+ add r1, sp, 0xFC
+ bl sub_80A8FD8
+ ldr r0, _0809E208
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ add r2, sp, 0x104
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ b _0809E234
+ .align 2, 0
+_0809E208: .4byte gUnknown_81164DC
+_0809E20C:
+ movs r5, 0x1
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r4, sp, 0xFC
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ add r1, sp, 0x104
+ ldr r2, [r2, 0x8]
+ bl _call_via_r2
+ ldr r0, [sp, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r4, 0
+ bl sub_80AD8B4
+_0809E234:
+ cmp r5, 0
+ beq _0809E282
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r5, sp, 0x10C
+ ldr r2, [r1, 0xC]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r4, sp, 0x114
+ ldr r2, [r1, 0x8]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r6, sp, 0xFC
+ add r3, sp, 0x104
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_8002DF0
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ bne _0809E28C
+ ldr r3, _0809E2CC
+ adds r0, r5, 0
+ adds r1, r3, 0
+ adds r2, r6, 0
+ bl sub_8002D54
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r0
+_0809E282:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ bne _0809E28C
+ b _0809E8F4
+_0809E28C:
+ mov r5, r9
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r8, r0
+ bne _0809E298
+ b _0809E8F4
+_0809E298:
+ mov r6, r9
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ add r1, sp, 0x4
+ ldrh r2, [r1, 0x2]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r1, r8
+ bl sub_8002A70
+ adds r1, r7, 0
+ adds r1, 0x4A
+ strb r0, [r1]
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+ add r0, sp, 0x4
+ ldrb r0, [r0, 0x1]
+ mov r1, r10
+ strh r0, [r1]
+ b _0809E9CC
+ .align 2, 0
+_0809E2CC: .4byte gUnknown_81164DC
+_0809E2D0:
+ bl sub_809D234
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E2DC
+ b _0809E9D6
+_0809E2DC:
+ b _0809E8F4
+_0809E2DE:
+ adds r0, r7, 0
+ adds r0, 0x46
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809E2F0
+ b _0809E9D6
+_0809E2F0:
+ ldr r1, _0809E304
+ adds r0, r7, 0
+ adds r0, 0x4C
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ b _0809E8EC
+ .align 2, 0
+_0809E304: .4byte gUnknown_2039B48
+_0809E308:
+ adds r0, r7, 0
+ adds r0, 0x46
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809E31A
+ b _0809E9D6
+_0809E31A:
+ b _0809E8CA
+_0809E31C:
+ adds r0, r7, 0
+ adds r0, 0x46
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809E32E
+ b _0809E9D6
+_0809E32E:
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E33A
+ b _0809E9D6
+_0809E33A:
+ b _0809E8CA
+_0809E33C:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r0, sp, 0x4
+ ldrb r1, [r0, 0x1]
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ ldr r3, [sp, 0x8]
+ adds r0, r7, 0
+ bl sub_80A14E8
+ adds r1, r0, 0
+ cmp r1, 0
+ bge _0809E360
+ b _0809E9D6
+_0809E360:
+ movs r0, 0x3
+ strh r0, [r7, 0x26]
+ adds r0, r7, 0
+ b _0809E60C
+_0809E368:
+ add r0, sp, 0x11C
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E376
+ b _0809E9D6
+_0809E376:
+ add r0, sp, 0x11C
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80A2460
+ b _0809E8C8
+_0809E382:
+ add r0, sp, 0x120
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E390
+ b _0809E9D6
+_0809E390:
+ add r4, sp, 0x120
+ ldr r0, [r4]
+ cmp r0, 0
+ blt _0809E3BA
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldrb r0, [r4]
+ bl sub_8002694
+ lsls r0, 16
+ asrs r0, 16
+ add r1, sp, 0x4
+ movs r3, 0x2
+ ldrsh r2, [r1, r3]
+ movs r1, 0
+ bl sub_8098D1C
+_0809E3BA:
+ ldr r1, [r4]
+ adds r0, r7, 0
+ bl sub_80A2460
+ b _0809E8C8
+_0809E3C4:
+ adds r4, r7, 0
+ adds r4, 0x4C
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ bne _0809E40C
+ add r0, sp, 0x124
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E3DE
+ b _0809E9D6
+_0809E3DE:
+ add r0, sp, 0x124
+ ldr r0, [r0]
+ cmp r0, 0
+ blt _0809E400
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A26B8
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ movs r0, 0
+ movs r1, 0x12
+ bl sub_80018D8
+ movs r0, 0x1
+ b _0809E402
+_0809E400:
+ ldr r0, _0809E408
+_0809E402:
+ strh r0, [r4]
+ b _0809E8CE
+ .align 2, 0
+_0809E408: .4byte 0x0000ffff
+_0809E40C:
+ cmp r0, 0x1
+ bne _0809E464
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0
+ movs r1, 0x12
+ bl sub_8001658
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r4, r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x30
+ bl sub_8001784
+ cmp r4, 0x13
+ bne _0809E43C
+ cmp r0, 0
+ beq _0809E45A
+_0809E43C:
+ add r0, sp, 0x4
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ bl sub_8098DCC
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_80A2460
+ str r0, [r7, 0x28]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A87AC
+ b _0809E8F4
+_0809E45A:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x13
+ bl sub_80018D8
+_0809E464:
+ adds r0, r7, 0
+ adds r0, 0x4C
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r5, r0, 0
+ cmp r1, 0
+ bne _0809E4B4
+ add r0, sp, 0x128
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E480
+ b _0809E9D6
+_0809E480:
+ add r0, sp, 0x128
+ ldr r1, [r0]
+ cmp r1, 0
+ blt _0809E4AA
+ ldrb r0, [r6]
+ cmp r0, 0x4
+ bne _0809E49A
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl sub_80A26B8
+ lsls r0, 16
+ b _0809E49C
+_0809E49A:
+ lsls r0, r1, 16
+_0809E49C:
+ asrs r2, r0, 16
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_80018D8
+ movs r0, 0x1
+ b _0809E4AC
+_0809E4AA:
+ ldr r0, _0809E4B0
+_0809E4AC:
+ strh r0, [r5]
+ b _0809E8CE
+ .align 2, 0
+_0809E4B0: .4byte 0x0000ffff
+_0809E4B4:
+ adds r0, r7, 0
+ adds r0, 0x4C
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ beq _0809E4C4
+ b _0809E5B8
+_0809E4C4:
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r6, r0, 16
+ add r4, sp, 0x18
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80990EC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E580
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8099220
+ movs r0, 0x6
+ bl sub_80023E4
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4]
+ ldr r4, _0809E51C
+ ldr r2, [r4]
+ movs r1, 0
+ str r1, [sp]
+ bl sub_809034C
+ adds r1, r0, 0
+ ldr r0, _0809E520
+ str r1, [r0]
+ cmp r1, 0x1
+ beq _0809E586
+ cmp r1, 0x1
+ bcc _0809E580
+ cmp r1, 0x2
+ bne _0809E5AE
+ strh r1, [r5]
+ ldr r2, [r4]
+ movs r0, 0x9
+ b _0809E58E
+ .align 2, 0
+_0809E51C: .4byte gUnknown_203B4B0
+_0809E520: .4byte gUnknown_2039DA4
+_0809E524:
+ adds r0, r7, 0
+ adds r0, 0x4C
+ movs r4, 0
+ ldrsh r6, [r0, r4]
+ adds r5, r0, 0
+ cmp r6, 0x1
+ bne _0809E5B8
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ adds r4, r0, 0
+ movs r0, 0x6
+ bl sub_80023E4
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x4]
+ ldr r4, _0809E578
+ ldr r2, [r4]
+ str r6, [sp]
+ movs r1, 0
+ bl sub_809034C
+ adds r1, r0, 0
+ ldr r0, _0809E57C
+ str r1, [r0]
+ cmp r1, 0x1
+ beq _0809E586
+ cmp r1, 0x1
+ bcc _0809E580
+ cmp r1, 0x2
+ bne _0809E5AE
+ strh r1, [r5]
+ ldr r2, [r4]
+ movs r0, 0x9
+ b _0809E58E
+ .align 2, 0
+_0809E578: .4byte gUnknown_203B4B0
+_0809E57C: .4byte gUnknown_2039DA4
+_0809E580:
+ movs r0, 0x3
+ strh r0, [r5]
+ b _0809E9CC
+_0809E586:
+ movs r0, 0x4
+ strh r0, [r5]
+ ldr r2, [r4]
+ movs r0, 0xA
+_0809E58E:
+ movs r1, 0x1
+ bl sub_809B1C0
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_809D8EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E5A4
+ b _0809E9CC
+_0809E5A4:
+ movs r0, 0
+ movs r1, 0xB
+ bl sub_80A87AC
+ b _0809E9CC
+_0809E5AE:
+ ldr r0, _0809E5B4
+ strh r0, [r5]
+ b _0809E9CC
+ .align 2, 0
+_0809E5B4: .4byte 0x0000ffff
+_0809E5B8:
+ movs r6, 0
+ ldrsh r2, [r5, r6]
+ cmp r2, 0x2
+ bne _0809E5DA
+ add r0, sp, 0x12C
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E5CE
+ b _0809E9D6
+_0809E5CE:
+ add r0, sp, 0x12C
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0809E626
+ movs r0, 0x3
+ b _0809E628
+_0809E5DA:
+ cmp r2, 0x3
+ bne _0809E614
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ strh r2, [r7, 0x26]
+ add r0, sp, 0x4
+ movs r6, 0x2
+ ldrsh r0, [r0, r6]
+ bl sub_80999FC
+ movs r0, 0x70
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _0809E608
+ b _0809E9CC
+_0809E608:
+ adds r0, r7, 0
+ movs r1, 0x1
+_0809E60C:
+ bl sub_80A2460
+ str r0, [r7, 0x28]
+ b _0809E9CC
+_0809E614:
+ cmp r2, 0x4
+ bne _0809E63C
+ add r0, sp, 0x130
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E626
+ b _0809E9D6
+_0809E626:
+ ldr r0, _0809E638
+_0809E628:
+ strh r0, [r5]
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A87AC
+ bl sub_809A76C
+ b _0809E9CC
+ .align 2, 0
+_0809E638: .4byte 0x0000ffff
+_0809E63C:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8099220
+ movs r4, 0x1
+ negs r4, r4
+ movs r0, 0
+ movs r1, 0x13
+ adds r2, r4, 0
+ bl sub_80018D8
+ adds r0, r7, 0
+ adds r1, r4, 0
+ b _0809E8EE
+_0809E658:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r0, sp, 0x134
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E672
+ b _0809E9D6
+_0809E672:
+ add r0, sp, 0x134
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809E6A4
+ ldr r0, [sp, 0x8]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809E6A4
+ adds r0, r1, 0
+ bl sub_80A8D54
+ movs r2, 0
+ adds r3, r0, 0
+ adds r3, 0x4C
+ ldr r4, _0809E6B0
+_0809E696:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _0809E696
+_0809E6A4:
+ add r0, sp, 0x134
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80A2460
+ b _0809E8C8
+ .align 2, 0
+_0809E6B0: .4byte gUnknown_2039D98
+_0809E6B4:
+ add r0, sp, 0x138
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E6C2
+ b _0809E9D6
+_0809E6C2:
+ add r4, sp, 0x138
+ ldr r0, [r4]
+ cmp r0, 0x1
+ bne _0809E6D0
+ ldr r0, _0809E6DC
+ bl sub_80920EC
+_0809E6D0:
+ ldr r1, [r4]
+ adds r0, r7, 0
+ bl sub_80A2460
+ b _0809E8C8
+ .align 2, 0
+_0809E6DC: .4byte gUnknown_2039D98
+_0809E6E0:
+ movs r1, 0x2
+ add r0, sp, 0x13C
+ str r1, [r0]
+ b _0809E74A
+_0809E6E8:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r5, [sp, 0x10]
+ add r0, sp, 0x13C
+ bl sub_809B260
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E704
+ b _0809E9D6
+_0809E704:
+ add r0, sp, 0x13C
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0809E74A
+ add r4, sp, 0x18
+ ldr r0, _0809E758
+ adds r3, r4, 0
+ movs r2, 0
+ mov r1, sp
+ adds r1, 0x27
+_0809E718:
+ strb r2, [r1]
+ subs r1, 0x1
+ cmp r1, r3
+ bge _0809E718
+ adds r1, r4, 0
+ bl sub_80922F4
+ movs r2, 0
+ ldrb r0, [r4]
+ ldrb r3, [r5]
+ cmp r0, r3
+ bne _0809E6E0
+ cmp r0, 0
+ beq _0809E74A
+_0809E734:
+ adds r2, 0x1
+ cmp r2, 0xF
+ bgt _0809E74A
+ adds r0, r4, r2
+ adds r1, r5, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0809E6E0
+ cmp r0, 0
+ bne _0809E734
+_0809E74A:
+ add r0, sp, 0x13C
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80A2460
+ b _0809E8C8
+ .align 2, 0
+_0809E758: .4byte gUnknown_2039D98
+_0809E75C:
+ adds r2, r7, 0
+ adds r2, 0x50
+ ldrh r3, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bne _0809E76C
+ b _0809E872
+_0809E76C:
+ add r4, sp, 0xA0
+ adds r0, r4, 0
+ bl sub_809AFFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E77C
+ b _0809E9D6
+_0809E77C:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0809E784
+ b _0809E8CA
+_0809E784:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r0, sp, 0x4
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ b _0809E8C2
+_0809E798:
+ add r1, sp, 0x4
+ ldr r0, [r7, 0x40]
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r2, r7, 0
+ adds r2, 0x50
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _0809E84C
+ movs r3, 0
+ adds r0, r7, 0
+ adds r0, 0x4C
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ adds r5, r0, 0
+ cmp r2, 0
+ bge _0809E7CC
+ ldr r0, [r7, 0x28]
+ ldrb r0, [r0]
+ cmp r0, 0xD1
+ beq _0809E812
+ b _0809E8F4
+_0809E7CC:
+ ldr r1, [r7, 0x28]
+ ldrb r0, [r1]
+ cmp r0, 0xD0
+ bne _0809E7F8
+ movs r6, 0x2
+ ldrsh r0, [r1, r6]
+ cmp r0, r2
+ beq _0809E812
+_0809E7DC:
+ ldr r0, [r7, 0x28]
+ adds r1, r0, 0
+ adds r1, 0x10
+ str r1, [r7, 0x28]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0xD0
+ bne _0809E7F8
+ movs r0, 0x2
+ ldrsh r1, [r1, r0]
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _0809E7DC
+ movs r3, 0x1
+_0809E7F8:
+ cmp r3, 0
+ bne _0809E812
+ ldr r1, [r7, 0x28]
+ ldrb r0, [r1]
+ cmp r0, 0xD1
+ bne _0809E8F4
+_0809E804:
+ adds r0, r1, 0
+ adds r1, 0x10
+ str r1, [r7, 0x28]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0xD1
+ beq _0809E804
+ b _0809E8F4
+_0809E812:
+ add r0, sp, 0x4
+ ldrb r0, [r0, 0x1]
+ ldr r1, [sp, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, [r7, 0x28]
+ ldr r2, [r2, 0xC]
+ bl sub_809AE90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E844
+ movs r0, 0
+ movs r1, 0xA
+ bl sub_80A87AC
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_809D8EC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E844
+ movs r0, 0x1
+ strh r0, [r4]
+_0809E844:
+ ldr r0, [r7, 0x28]
+ adds r0, 0x10
+ str r0, [r7, 0x28]
+ b _0809E9CC
+_0809E84C:
+ adds r0, r7, 0
+ adds r0, 0x46
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809E85E
+ b _0809E9D6
+_0809E85E:
+ movs r0, 0
+ strh r0, [r2]
+ b _0809E8D0
+_0809E864:
+ adds r2, r7, 0
+ adds r2, 0x50
+ ldrh r3, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bne _0809E88A
+_0809E872:
+ adds r0, r7, 0
+ adds r0, 0x46
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809E884
+ b _0809E9D6
+_0809E884:
+ adds r0, r3, 0x1
+ strh r0, [r2]
+ b _0809E9CC
+_0809E88A:
+ add r0, sp, 0x140
+ bl sub_809B18C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E898
+ b _0809E9D6
+_0809E898:
+ add r0, sp, 0x140
+ ldr r3, [r0]
+ cmp r3, 0
+ ble _0809E8CA
+ adds r0, r7, 0
+ adds r0, 0x4C
+ movs r6, 0
+ ldrsh r2, [r0, r6]
+ ldr r1, [r7, 0x40]
+ lsls r0, r3, 4
+ lsls r2, 4
+ adds r2, r1
+ add r1, sp, 0x4
+ adds r0, r2
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r0, sp, 0x4
+ movs r5, 0x2
+ ldrsh r1, [r0, r5]
+_0809E8C2:
+ adds r0, r7, 0
+ bl sub_80A242C
+_0809E8C8:
+ str r0, [r7, 0x28]
+_0809E8CA:
+ movs r0, 0x3
+ strh r0, [r7, 0x26]
+_0809E8CE:
+ movs r0, 0
+_0809E8D0:
+ movs r1, 0
+ bl sub_80A87AC
+ b _0809E9CC
+_0809E8D8:
+ adds r0, r7, 0
+ adds r0, 0x46
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809E9D6
+ ldr r0, _0809E8FC
+ ldr r1, [r0, 0x4]
+_0809E8EC:
+ adds r0, r7, 0
+_0809E8EE:
+ bl sub_80A2460
+ str r0, [r7, 0x28]
+_0809E8F4:
+ movs r0, 0x3
+ strh r0, [r7, 0x26]
+ b _0809E9CC
+ .align 2, 0
+_0809E8FC: .4byte gUnknown_2039B48
+_0809E900:
+ adds r0, r7, 0
+ bl ExecuteScriptCommand
+ strh r0, [r7, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bhi _0809E9BC
+ lsls r0, 2
+ ldr r1, _0809E91C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809E91C: .4byte _0809E920
+ .align 2, 0
+_0809E920:
+ .4byte _0809E934
+ .4byte _0809E9B8
+ .4byte _0809E9BC
+ .4byte _0809E9D6
+ .4byte _0809E9B4
+_0809E934:
+ adds r0, r7, 0
+ adds r0, 0x86
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0809E9AA
+ adds r4, r7, 0
+ adds r4, 0x84
+ adds r0, r7, 0
+ adds r0, 0x24
+ adds r1, r4, 0
+ movs r2, 0x60
+ bl memcpy
+ ldr r2, [r7]
+ ldr r0, [r2, 0x2C]
+ cmp r0, 0
+ beq _0809E98E
+ adds r5, r7, 0
+ adds r5, 0x4A
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809E98E
+ ldr r0, [r7, 0x4]
+ add r1, sp, 0x144
+ ldr r2, [r2, 0x18]
+ bl _call_via_r2
+ add r0, sp, 0x144
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E98E
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+_0809E98E:
+ ldr r0, [r7]
+ ldr r2, [r0, 0x30]
+ cmp r2, 0
+ beq _0809E9A2
+ ldr r0, [r7, 0x4]
+ adds r1, r7, 0
+ adds r1, 0x48
+ ldrh r1, [r1]
+ bl _call_via_r2
+_0809E9A2:
+ adds r0, r4, 0
+ bl sub_809D568
+ b _0809E9D6
+_0809E9AA:
+ adds r0, r7, 0
+ adds r0, 0x24
+ bl sub_809D568
+ b _0809E9D6
+_0809E9B4:
+ movs r0, 0x4
+ b _0809EABA
+_0809E9B8:
+ movs r0, 0x1
+ b _0809EABA
+_0809E9BC:
+ adds r1, r7, 0
+ adds r1, 0x50
+ movs r0, 0
+ strh r0, [r1]
+ b _0809E9CC
+_0809E9C6:
+ movs r2, 0x26
+ ldrsh r0, [r7, r2]
+ b _0809EABA
+_0809E9CC:
+ movs r3, 0x1
+ cmp r3, 0
+ beq _0809E9D6
+ bl _0809DA8A
+_0809E9D6:
+ movs r0, 0x3
+ b _0809EABA
+_0809E9DA:
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ add r4, sp, 0xCC
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r5, sp, 0xD4
+ adds r1, r7, 0
+ adds r1, 0x58
+ adds r2, r7, 0
+ adds r2, 0x60
+ mov r6, r8
+ movs r0, 0
+ ldrsh r6, [r6, r0]
+ mov r9, r6
+ adds r6, r7, 0
+ adds r6, 0x50
+ movs r3, 0
+ ldrsh r0, [r6, r3]
+ str r0, [sp]
+ adds r0, r5, 0
+ mov r3, r9
+ bl sub_8002934
+ ldr r1, [r5]
+ ldr r0, [r4]
+ subs r1, r0
+ add r0, sp, 0xDC
+ str r1, [r0]
+ ldr r1, [r5, 0x4]
+ ldr r2, [r4, 0x4]
+ subs r1, r2
+ str r1, [r0, 0x4]
+ bl sub_8002C60
+ lsls r0, 24
+ adds r2, r7, 0
+ adds r2, 0x4A
+ asrs r1, r0, 24
+ lsrs r0, 24
+ strb r0, [r2]
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ movs r1, 0x80
+ lsls r1, 5
+ ldr r2, [r2, 0x30]
+ bl _call_via_r2
+ mov r4, r8
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809E9D6
+_0809EA62:
+ add r5, sp, 0xC4
+ adds r1, r7, 0
+ adds r1, 0x58
+ adds r2, r7, 0
+ adds r2, 0x60
+ movs r3, 0
+ ldrsh r0, [r6, r3]
+ mov r8, r0
+ adds r4, r7, 0
+ adds r4, 0x50
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ str r0, [sp]
+ adds r0, r5, 0
+ mov r3, r8
+ bl sub_8002934
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ movs r1, 0x80
+ lsls r1, 5
+ ldr r2, [r2, 0x30]
+ bl _call_via_r2
+ ldrh r0, [r6]
+ subs r0, 0x1
+ strh r0, [r6]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0809E9D6
+_0809EAAC:
+ subs r0, 0x1
+ strh r0, [r2]
+ b _0809E9D6
+_0809EAB2:
+ subs r0, r2, 0x1
+ strh r0, [r1]
+ b _0809E9D6
+_0809EAB8:
+ movs r0, 0
+_0809EABA:
+ add sp, 0x148
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end HandleAction
+
+ thumb_func_start ExecuteScriptCommand
+ExecuteScriptCommand:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1BC
+ mov r9, r0
+ movs r0, 0x24
+ add r0, r9
+ mov r10, r0
+_0809EAE0:
+ mov r1, r10
+ ldr r2, [r1, 0x4]
+ str r2, [r1, 0x1C]
+ add r1, sp, 0x8
+ adds r0, r2, 0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r2, 0x10
+ mov r0, r10
+ str r2, [r0, 0x4]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ mov r1, r10
+ adds r1, 0x20
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ adds r2, r1, 0
+ cmp r0, 0xF5
+ bhi _0809EAE0
+ lsls r0, 2
+ ldr r1, _0809EB18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EB18: .4byte _0809EB1C
+ .align 2, 0
+_0809EB1C:
+ .4byte _0809EEF4
+ .4byte _0809EF40
+ .4byte _0809EFA2
+ .4byte _0809EFD6
+ .4byte _0809F064
+ .4byte _0809F02A
+ .4byte _0809F06C
+ .4byte _0809F0D0
+ .4byte _0809F0D0
+ .4byte _0809F1FC
+ .4byte _0809F2C8
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F2D6
+ .4byte _0809F42A
+ .4byte _0809F432
+ .4byte _0809F43A
+ .4byte _0809F442
+ .4byte _0809F4FE
+ .4byte _0809F5BE
+ .4byte _0809F5AE
+ .4byte _0809F5C6
+ .4byte _0809F5C6
+ .4byte _0809F660
+ .4byte _0809F6EA
+ .4byte _0809F786
+ .4byte _0809F830
+ .4byte _0809F842
+ .4byte _0809F854
+ .4byte _0809F872
+ .4byte _0809F884
+ .4byte _0809F896
+ .4byte _0809F896
+ .4byte _0809F8E8
+ .4byte _0809F8F4
+ .4byte _0809F900
+ .4byte _0809F90C
+ .4byte _0809F93E
+ .4byte _0809FAF8
+ .4byte _0809FB10
+ .4byte _0809F92E
+ .4byte _0809F936
+ .4byte _0809FB28
+ .4byte _0809FB28
+ .4byte _0809FB28
+ .4byte _0809FB28
+ .4byte _0809FB28
+ .4byte _0809FB28
+ .4byte _0809FB28
+ .4byte _0809FBDA
+ .4byte _0809FC12
+ .4byte _0809FC40
+ .4byte _0809FC2E
+ .4byte _0809FC46
+ .4byte _0809FCA4
+ .4byte _0809FCC4
+ .4byte _0809EAE0
+ .4byte _080A0E3A
+ .4byte _0809FCE8
+ .4byte _0809FCF0
+ .4byte _0809FD0A
+ .4byte _0809FD38
+ .4byte _0809FD6C
+ .4byte _0809FDA0
+ .4byte _0809FDA8
+ .4byte _0809FDC2
+ .4byte _0809FDD4
+ .4byte _0809FDE2
+ .4byte _0809FDC2
+ .4byte _0809FDD4
+ .4byte _0809FDE2
+ .4byte _0809FE04
+ .4byte _0809FE28
+ .4byte _0809FE86
+ .4byte _0809FEBE
+ .4byte _0809FED0
+ .4byte _0809FF00
+ .4byte _0809FF32
+ .4byte _0809FF46
+ .4byte _0809FF62
+ .4byte _0809FF78
+ .4byte _0809FF9A
+ .4byte _0809FFBA
+ .4byte _0809FFE4
+ .4byte _080A0010
+ .4byte _080A0064
+ .4byte _080A0096
+ .4byte _080A010E
+ .4byte _080A0186
+ .4byte _080A0198
+ .4byte _080A01B8
+ .4byte _080A01F0
+ .4byte _080A0220
+ .4byte _080A0250
+ .4byte _080A0282
+ .4byte _080A0282
+ .4byte _080A0560
+ .4byte _080A0198
+ .4byte _080A01B8
+ .4byte _080A01F0
+ .4byte _080A0220
+ .4byte _080A0250
+ .4byte _080A0282
+ .4byte _080A0282
+ .4byte _080A0560
+ .4byte _080A02B2
+ .4byte _080A0310
+ .4byte _080A0370
+ .4byte _080A03F8
+ .4byte _080A0462
+ .4byte _080A04F2
+ .4byte _080A02B2
+ .4byte _080A0310
+ .4byte _080A0370
+ .4byte _080A03F8
+ .4byte _080A0462
+ .4byte _080A04F2
+ .4byte _080A02B2
+ .4byte _080A0310
+ .4byte _080A0370
+ .4byte _080A03F8
+ .4byte _080A0462
+ .4byte _080A04F2
+ .4byte _080A02B2
+ .4byte _080A0310
+ .4byte _080A0370
+ .4byte _080A03F8
+ .4byte _080A0462
+ .4byte _080A04F2
+ .4byte _080A057C
+ .4byte _080A05A4
+ .4byte _080A05F0
+ .4byte _080A060E
+ .4byte _080A065C
+ .4byte _080A068A
+ .4byte _080A068A
+ .4byte _080A068A
+ .4byte _080A07CA
+ .4byte _080A07DC
+ .4byte _080A07C4
+ .4byte _080A07C4
+ .4byte _080A07C4
+ .4byte _0809EAE0
+ .4byte _080A080C
+ .4byte _080A081E
+ .4byte _080A086A
+ .4byte _080A08BE
+ .4byte _080A08CA
+ .4byte _080A091E
+ .4byte _080A0986
+ .4byte _080A0998
+ .4byte _080A09EA
+ .4byte _080A0A52
+ .4byte _080A0A64
+ .4byte _080A0AB6
+ .4byte _080A0B1E
+ .4byte _080A0B30
+ .4byte _080A0B42
+ .4byte _080A0B54
+ .4byte _080A0B6C
+ .4byte _080A0B88
+ .4byte _080A0BA2
+ .4byte _080A0BB4
+ .4byte _080A0BDA
+ .4byte _080A0BF6
+ .4byte _080A0C08
+ .4byte _080A0C20
+ .4byte _080A0C38
+ .4byte _080A0C50
+ .4byte _080A0C68
+ .4byte _080A0C80
+ .4byte _080A0C90
+ .4byte _080A0CA2
+ .4byte _080A0CC8
+ .4byte _080A0CF2
+ .4byte _080A0D16
+ .4byte _080A0D40
+ .4byte _080A0D6A
+ .4byte _080A0D7A
+ .4byte _080A0D94
+ .4byte _080A0DAE
+ .4byte _080A0DD6
+ .4byte _080A0E08
+ .4byte _080A0DE2
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _080A0E56
+ .4byte _0809EAE0
+ .4byte _0809EAE0
+ .4byte _0809EAE0
+ .4byte _080A10A0
+ .4byte _0809EAE0
+ .4byte _0809EAE0
+ .4byte _080A10F8
+ .4byte _080A10F8
+ .4byte _080A10F8
+ .4byte _080A10F8
+ .4byte _080A10F8
+ .4byte _080A10F8
+ .4byte _080A10F8
+ .4byte _0809EAE0
+ .4byte _080A129E
+ .4byte _080A12A8
+ .4byte _080A12B4
+ .4byte _0809F0C4
+ .4byte _0809F0C4
+ .4byte _0809F0C4
+ .4byte _0809F0C4
+ .4byte _0809F0C4
+ .4byte _0809F0C4
+ .4byte _080A12D0
+ .4byte _080A12E6
+ .4byte _080A12F4
+ .4byte _080A1318
+ .4byte _080A1324
+ .4byte _080A1338
+ .4byte _080A1344
+ .4byte _080A1368
+ .4byte _080A1374
+ .4byte _080A13CA
+ .4byte _080A13F8
+ .4byte _080A1404
+ .4byte _080A140C
+ .4byte _080A1428
+ .4byte _080A142C
+ .4byte _0809EAE0
+ .4byte _0809EAE0
+ .4byte _0809EAE0
+ .4byte _0809EAE0
+ .4byte _0809EAE0
+_0809EEF4:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r6, r4, 0
+ add r0, sp, 0x8
+ ldrb r5, [r0, 0x1]
+ movs r0, 0x1
+ bl sub_8011BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809EF26
+ ldr r1, _0809EF38
+ ldr r2, _0809EF3C
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r3, [r0]
+ str r5, [sp]
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl Log
+_0809EF26:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r2, [r0, r1]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8098D1C
+ b _0809EAE0
+ .align 2, 0
+_0809EF38: .4byte gUnknown_81165D4
+_0809EF3C: .4byte gUnknown_811BAF4
+_0809EF40:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r5, 0x1
+ negs r5, r5
+ cmp r4, r5
+ bne _0809EF5A
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r4, r0, 16
+_0809EF5A:
+ movs r0, 0x1
+ bl sub_8011BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809EF70
+ ldr r1, _0809EF90
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl Log
+_0809EF70:
+ cmp r4, r5
+ beq _0809EF94
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r0, r4, 0
+ bl sub_8098E18
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_80A2460
+ mov r3, r9
+ str r0, [r3, 0x28]
+ b _0809EAE0
+ .align 2, 0
+_0809EF90: .4byte gUnknown_81165F4
+_0809EF94:
+ mov r0, r9
+ movs r1, 0
+ bl sub_80A2460
+ mov r4, r9
+ str r0, [r4, 0x28]
+ b _0809EAE0
+_0809EFA2:
+ ldr r0, [sp, 0xC]
+ bl sub_8021700
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809EFBE
+ movs r1, 0x1
+ negs r1, r1
+ mov r0, r9
+ bl sub_80A2460
+ mov r5, r9
+ str r0, [r5, 0x28]
+ b _0809EAE0
+_0809EFBE:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ bl sub_8098D80
+ mov r0, r9
+ movs r1, 0
+ bl sub_80A2460
+ mov r2, r9
+ str r0, [r2, 0x28]
+ b _0809EAE0
+_0809EFD6:
+ ldr r1, [sp, 0xC]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809F00C
+ bl sub_802FCF0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0809F0BC
+ movs r0, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl sub_809B1C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F0BC
+ movs r0, 0
+ movs r1, 0xB
+ bl sub_80A87AC
+ mov r0, r9
+ adds r0, 0x4C
+ strh r4, [r0]
+ b _0809F0C4
+_0809F00C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl sub_80A26B8
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ movs r0, 0
+ movs r1, 0x12
+ bl sub_80018D8
+ mov r1, r9
+ adds r1, 0x4C
+ movs r0, 0x1
+ b _0809F0C2
+_0809F02A:
+ ldr r2, [sp, 0xC]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ bne _0809F054
+ movs r0, 0x24
+ movs r1, 0
+ movs r2, 0
+ bl sub_809B1C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F0BC
+ movs r0, 0
+ movs r1, 0xB
+ bl sub_80A87AC
+ mov r1, r9
+ adds r1, 0x4C
+ movs r0, 0
+ b _0809F0C2
+_0809F054:
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_80018D8
+ mov r1, r9
+ adds r1, 0x4C
+ movs r0, 0x1
+ b _0809F0C2
+_0809F064:
+ mov r1, r9
+ adds r1, 0x4C
+ movs r0, 0x1
+ b _0809F0C2
+_0809F06C:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0809F088
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r4, r0, 16
+ b _0809F092
+_0809F088:
+ movs r0, 0
+ movs r1, 0x13
+ adds r2, r4, 0
+ bl sub_80018D8
+_0809F092:
+ movs r0, 0x1
+ bl sub_8011BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F0A8
+ ldr r1, _0809F0B8
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl Log
+_0809F0A8:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _0809F0BC
+ mov r1, r9
+ adds r1, 0x4C
+ movs r0, 0x1
+ b _0809F0C2
+ .align 2, 0
+_0809F0B8: .4byte gUnknown_811660C
+_0809F0BC:
+ mov r1, r9
+ adds r1, 0x4C
+ ldr r0, _0809F0CC
+_0809F0C2:
+ strh r0, [r1]
+_0809F0C4:
+ movs r0, 0x2
+ bl _080A142E
+ .align 2, 0
+_0809F0CC: .4byte 0x0000ffff
+_0809F0D0:
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _0809F130
+ ldr r5, _0809F11C
+ ldr r0, [sp, 0xC]
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A4D7C
+ ldr r4, _0809F120
+ strh r0, [r4]
+ ldr r1, _0809F124
+ strh r0, [r1]
+ movs r0, 0x1
+ bl sub_8011BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F16A
+ ldr r1, _0809F128
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ movs r5, 0
+ ldrsh r3, [r4, r5]
+ ldr r4, _0809F12C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, 0x8
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x1
+ bl Log
+ b _0809F16A
+ .align 2, 0
+_0809F11C: .4byte gUnknown_2039A30
+_0809F120: .4byte gUnknown_2039A32
+_0809F124: .4byte gUnknown_2039A34
+_0809F128: .4byte gUnknown_8116628
+_0809F12C: .4byte gUnknown_811BAF4
+_0809F130:
+ ldr r5, _0809F1E8
+ ldr r4, _0809F1EC
+ ldr r1, [sp, 0xC]
+ strh r1, [r4]
+ strh r1, [r5]
+ ldr r0, _0809F1F0
+ strh r1, [r0]
+ movs r0, 0x1
+ bl sub_8011BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F16A
+ ldr r1, _0809F1F4
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ movs r4, 0
+ ldrsh r3, [r5, r4]
+ ldr r4, _0809F1F8
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, 0x8
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x1
+ bl Log
+_0809F16A:
+ ldr r5, _0809F1EC
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_80018D8
+ ldr r6, _0809F1F8
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ movs r0, 0
+ movs r1, 0x11
+ bl sub_80018D8
+ ldr r4, _0809F1E8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl GroundSprite_Reset
+ bl sub_809D0BC
+ bl sub_80AD9D0
+ bl sub_80A786C
+ bl sub_80ABB98
+ bl sub_80ACBD4
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ bl sub_809C770
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ bl GroundMap_Select
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl GroundLink_Select
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r1, 0
+ movs r2, 0
+ bl GroundLives_Select
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ b _0809F2A0
+ .align 2, 0
+_0809F1E8: .4byte gUnknown_2039A32
+_0809F1EC: .4byte gUnknown_2039A30
+_0809F1F0: .4byte gUnknown_2039A34
+_0809F1F4: .4byte gUnknown_8116644
+_0809F1F8: .4byte gUnknown_811BAF4
+_0809F1FC:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2608
+ adds r6, r0, 0
+ ldr r1, _0809F2AC
+ ldr r5, _0809F2B0
+ ldr r4, _0809F2B4
+ ldr r0, [sp, 0x10]
+ strh r0, [r4]
+ strh r0, [r5]
+ strh r0, [r1]
+ movs r0, 0x1
+ bl sub_8011BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F242
+ ldr r1, _0809F2B8
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ movs r4, 0
+ ldrsh r3, [r5, r4]
+ ldr r4, _0809F2BC
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, 0x8
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x1
+ bl Log
+_0809F242:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl GroundSprite_Reset
+ bl sub_809D0BC
+ bl sub_80AD9D0
+ bl sub_80A786C
+ bl sub_80ABB98
+ bl sub_80ACBD4
+ ldrb r2, [r6, 0xC]
+ ldr r1, _0809F2C0
+ ldr r0, [sp, 0x58]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x58]
+ add r1, sp, 0x8
+ ldrh r2, [r1, 0x2]
+ lsls r2, 24
+ lsrs r2, 16
+ ldr r1, _0809F2C4
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x58]
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ add r1, sp, 0x58
+ add r2, sp, 0x8
+ ldrb r2, [r2, 0x1]
+ bl GroundMap_SelectDungeon
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ bl GroundLink_Select
+ movs r4, 0
+ ldrsh r0, [r5, r4]
+ movs r1, 0
+ movs r2, 0
+ bl GroundLives_Select
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+_0809F2A0:
+ movs r1, 0
+ movs r2, 0
+ bl GroundObject_Select
+ b _0809EAE0
+ .align 2, 0
+_0809F2AC: .4byte gUnknown_2039A34
+_0809F2B0: .4byte gUnknown_2039A32
+_0809F2B4: .4byte gUnknown_2039A30
+_0809F2B8: .4byte gUnknown_8116664
+_0809F2BC: .4byte gUnknown_811BAF4
+_0809F2C0: .4byte 0xffffff00
+_0809F2C4: .4byte 0xffff00ff
+_0809F2C8:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl GroundWeather_Select
+ bl _0809EAE0
+_0809F2D6:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0809F2E8
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ b _0809F2EE
+_0809F2E8:
+ mov r3, r10
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+_0809F2EE:
+ adds r6, r0, 0
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ blt _0809F302
+ add r0, sp, 0x8
+ movs r1, 0x1
+ ldrsb r1, [r0, r1]
+ b _0809F308
+_0809F302:
+ mov r5, r10
+ movs r1, 0xE
+ ldrsb r1, [r5, r1]
+_0809F308:
+ adds r5, r1, 0
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ subs r0, 0xC
+ cmp r0, 0x9
+ bls _0809F318
+ bl _0809EAE0
+_0809F318:
+ lsls r0, 2
+ ldr r1, _0809F324
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809F324: .4byte _0809F328
+ .align 2, 0
+_0809F328:
+ .4byte _0809F350
+ .4byte _0809F380
+ .4byte _0809F398
+ .4byte _0809F3B0
+ .4byte _0809F3C8
+ .4byte _0809F3E0
+ .4byte _0809F3FA
+ .4byte _0809F406
+ .4byte _0809F412
+ .4byte _0809F41E
+_0809F350:
+ ldr r4, _0809F37C
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundLives_Select
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundObject_Select
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundEffect_Select
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ b _0809F3CE
+ .align 2, 0
+_0809F37C: .4byte gUnknown_2039A32
+_0809F380:
+ ldr r0, _0809F394
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundLives_Select
+ bl _0809EAE0
+ .align 2, 0
+_0809F394: .4byte gUnknown_2039A32
+_0809F398:
+ ldr r0, _0809F3AC
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundObject_Select
+ bl _0809EAE0
+ .align 2, 0
+_0809F3AC: .4byte gUnknown_2039A32
+_0809F3B0:
+ ldr r0, _0809F3C4
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundEffect_Select
+ bl _0809EAE0
+ .align 2, 0
+_0809F3C4: .4byte gUnknown_2039A32
+_0809F3C8:
+ ldr r0, _0809F3DC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+_0809F3CE:
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundEvent_Select
+ bl _0809EAE0
+ .align 2, 0
+_0809F3DC: .4byte gUnknown_2039A32
+_0809F3E0:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GroundLives_Cancel
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GroundObject_Cancel
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GroundEffect_Cancel
+ b _0809F41E
+_0809F3FA:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GroundLives_Cancel
+ bl _0809EAE0
+_0809F406:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GroundObject_Cancel
+ bl _0809EAE0
+_0809F412:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GroundEffect_Cancel
+ bl _0809EAE0
+_0809F41E:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl GroundEvent_Cancel
+ bl _0809EAE0
+_0809F42A:
+ bl sub_80A79FC
+ bl _0809EAE0
+_0809F432:
+ bl GroundObject_CancelBlank
+ bl _0809EAE0
+_0809F43A:
+ bl GroundEffect_CancelBlank
+ bl _0809EAE0
+_0809F442:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ add r4, sp, 0x18
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r6, sp, 0x1C
+ ldr r0, [sp, 0x10]
+ add r5, sp, 0x34
+ movs r2, 0
+ strb r0, [r5]
+ ldrb r1, [r4]
+ mov r0, sp
+ adds r0, 0x35
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ str r2, [sp, 0x38]
+ add r4, sp, 0x3C
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldr r2, _0809F4AC
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r4, 0xC]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x18
+ bl memcpy
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ adds r1, r6, 0
+ cmp r0, 0
+ blt _0809F4B0
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ b _0809F4B6
+ .align 2, 0
+_0809F4AC: .4byte gUnknown_812F1F8
+_0809F4B0:
+ mov r4, r10
+ movs r5, 0xC
+ ldrsh r2, [r4, r5]
+_0809F4B6:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ blt _0809F4C8
+ add r0, sp, 0x8
+ movs r3, 0x1
+ ldrsb r3, [r0, r3]
+ b _0809F4CE
+_0809F4C8:
+ mov r0, r10
+ movs r3, 0xE
+ ldrsb r3, [r0, r3]
+_0809F4CE:
+ movs r0, 0x1
+ negs r0, r0
+ bl GroundObject_Add
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ bge _0809F4E2
+ bl _0809EAE0
+_0809F4E2:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ add r4, sp, 0x5C
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AC49C
+ bl _0809EAE0
+_0809F4FE:
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r0, [r3, 0x4]
+ add r4, sp, 0x4C
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r5, sp, 0x1C
+ ldr r0, [sp, 0x10]
+ add r1, sp, 0x28
+ movs r3, 0
+ strb r0, [r1]
+ ldrb r2, [r4]
+ mov r0, sp
+ adds r0, 0x29
+ strb r2, [r0]
+ adds r0, 0x1
+ movs r2, 0x1
+ strb r2, [r0]
+ adds r0, 0x1
+ strb r2, [r0]
+ str r3, [sp, 0x2C]
+ ldr r3, _0809F55C
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, 0x8
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [sp, 0x30]
+ adds r0, r5, 0
+ movs r2, 0xC
+ bl memcpy
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ adds r1, r5, 0
+ cmp r0, 0
+ blt _0809F560
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ b _0809F566
+ .align 2, 0
+_0809F55C: .4byte gUnknown_812F1F8
+_0809F560:
+ mov r5, r10
+ movs r0, 0xC
+ ldrsh r2, [r5, r0]
+_0809F566:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ blt _0809F578
+ add r0, sp, 0x8
+ movs r3, 0x1
+ ldrsb r3, [r0, r3]
+ b _0809F57E
+_0809F578:
+ mov r4, r10
+ movs r3, 0xE
+ ldrsb r3, [r4, r3]
+_0809F57E:
+ movs r0, 0x1
+ negs r0, r0
+ bl GroundEffect_Add
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ bge _0809F592
+ bl _0809EAE0
+_0809F592:
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ add r4, sp, 0x64
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80AD3B4
+ bl _0809EAE0
+_0809F5AE:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ movs r1, 0x1
+ bl GroundMap_ExecuteEvent
+ bl _0809EAE0
+_0809F5BE:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ b _0809F712
+_0809F5C6:
+ ldr r1, [sp, 0xC]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809F5D6
+ lsls r0, r1, 16
+ asrs r0, 16
+ b _0809F5DC
+_0809F5D6:
+ ldr r0, _0809F5F0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+_0809F5DC:
+ adds r4, r0, 0
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0809F5F4
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r0, r5]
+ b _0809F5FA
+ .align 2, 0
+_0809F5F0: .4byte gUnknown_2039A30
+_0809F5F4:
+ mov r0, r10
+ movs r2, 0xC
+ ldrsh r1, [r0, r2]
+_0809F5FA:
+ adds r6, r1, 0
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ blt _0809F60E
+ add r0, sp, 0x8
+ movs r5, 0x1
+ ldrsb r5, [r0, r5]
+ b _0809F614
+_0809F60E:
+ mov r3, r10
+ movs r5, 0xE
+ ldrsb r5, [r3, r5]
+_0809F614:
+ adds r0, r4, 0
+ bl sub_80A4D7C
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r3, 0
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _0809F62A
+ movs r3, 0x1
+_0809F62A:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl GroundMap_ExecuteStation
+ ldr r1, _0809F65C
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r4
+ bne _0809F642
+ bl _0809EAE0
+_0809F642:
+ strh r4, [r1]
+ bl sub_809D940
+ mov r1, r9
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0809F656
+ bl _0809EAE0
+_0809F656:
+ bl _080A142C
+ .align 2, 0
+_0809F65C: .4byte gUnknown_2039A34
+_0809F660:
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_8001658
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80A2608
+ adds r5, r0, 0
+ lsls r2, r4, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x30
+ bl sub_8001784
+ cmp r0, 0
+ bne _0809F68A
+ movs r3, 0x6
+ ldrsh r5, [r5, r3]
+ b _0809F68E
+_0809F68A:
+ movs r0, 0x8
+ ldrsh r5, [r5, r0]
+_0809F68E:
+ adds r0, r4, 0
+ subs r0, 0x37
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bls _0809F6DC
+ adds r0, r4, 0
+ bl sub_80A2750
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _0809F6DC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0809F6D8
+ movs r0, 0x1
+ bl sub_8011BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F6C6
+ ldr r1, _0809F6D4
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl Log
+_0809F6C6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8098E18
+ bl _0809EAE0
+ .align 2, 0
+_0809F6D4: .4byte gUnknown_8116684
+_0809F6D8:
+ adds r0, r5, 0
+ b _0809F712
+_0809F6DC:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl sub_8098E18
+ bl _0809EAE0
+_0809F6EA:
+ mov r1, r9
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _0809F71C
+ cmp r0, 0x1
+ bgt _0809F700
+ cmp r0, 0
+ beq _0809F70C
+ bl _0809EAE0
+_0809F700:
+ cmp r0, 0x2
+ beq _0809F73E
+ cmp r0, 0x3
+ beq _0809F762
+ bl _0809EAE0
+_0809F70C:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+_0809F712:
+ movs r1, 0
+ bl GroundMap_ExecuteEvent
+ bl _0809EAE0
+_0809F71C:
+ add r4, sp, 0x1C
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_809D710
+ mov r1, r9
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ adds r1, 0x8
+ adds r2, r4, 0
+ bl GroundLives_ExecuteScript
+ bl _0809EAE0
+_0809F73E:
+ add r4, sp, 0x28
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_809D710
+ mov r5, r9
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ mov r1, r9
+ adds r1, 0x8
+ adds r2, r4, 0
+ bl GroundObject_ExecuteScript
+ bl _0809EAE0
+_0809F762:
+ add r4, sp, 0x34
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_809D710
+ mov r5, r9
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ mov r1, r9
+ adds r1, 0x8
+ adds r2, r4, 0
+ bl GroundEffect_ExecuteScript
+ bl _0809EAE0
+_0809F786:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ bge _0809F79E
+ bl _0809EAE0
+_0809F79E:
+ add r1, sp, 0x6C
+ bl sub_80A8BD8
+ ldr r0, [sp, 0x6C]
+ movs r1, 0x80
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F818
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ add r7, sp, 0x70
+ ldr r2, [r1, 0xC]
+ adds r1, r7, 0
+ bl _call_via_r2
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r0, [r3, 0x4]
+ add r5, sp, 0x78
+ ldr r2, [r1, 0x8]
+ adds r1, r5, 0
+ bl _call_via_r2
+ add r6, sp, 0x80
+ mov r0, r8
+ adds r1, r6, 0
+ bl sub_80A8FD8
+ add r4, sp, 0x88
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80A8F9C
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl sub_8002DF0
+ lsls r0, 24
+ asrs r1, r0, 24
+ adds r4, r1, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809F812
+ ldr r3, _0809F82C
+ adds r0, r7, 0
+ adds r1, r3, 0
+ adds r2, r6, 0
+ bl sub_8002D54
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, r4
+ beq _0809F818
+_0809F812:
+ mov r0, r8
+ bl sub_80A9090
+_0809F818:
+ mov r4, r9
+ movs r5, 0xA
+ ldrsh r0, [r4, r5]
+ mov r1, r8
+ bl GroundLives_ExecutePlayerScriptActionLives
+ movs r0, 0x3
+ bl _080A142E
+ .align 2, 0
+_0809F82C: .4byte gUnknown_81164DC
+_0809F830:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ bl sub_80999E8
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A130C
+_0809F842:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ bl sub_80999FC
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A130C
+_0809F854:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x10]
+ lsls r2, 16
+ lsrs r2, 16
+ bl sub_8099A10
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A130C
+_0809F872:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ bl sub_8099A34
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A130C
+_0809F884:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ bl sub_8099A48
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A130C
+_0809F896:
+ ldr r0, [sp, 0x10]
+ asrs r0, 16
+ add r1, sp, 0x20
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, [sp, 0x10]
+ asrs r0, 8
+ adds r1, 0x1
+ strb r0, [r1]
+ ldr r1, [sp, 0x10]
+ mov r0, sp
+ adds r0, 0x22
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r2, [r0]
+ ldr r2, [sp, 0x20]
+ str r2, [sp, 0x1C]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x27
+ beq _0809F8C6
+ cmp r0, 0x28
+ beq _0809F8D4
+ b _0809F8E0
+_0809F8C6:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ ldr r1, [sp, 0xC]
+ bl sub_8099A5C
+ b _0809F8E0
+_0809F8D4:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ ldr r1, [sp, 0xC]
+ bl sub_8099AFC
+_0809F8E0:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A130C
+_0809F8E8:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ bl sub_809A6E4
+ bl _0809EAE0
+_0809F8F4:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ bl sub_809A6F8
+ bl _0809EAE0
+_0809F900:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ bl sub_809A738
+ bl _0809EAE0
+_0809F90C:
+ bl sub_809A768
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809F91A
+ bl _0809EAE0
+_0809F91A:
+ movs r0, 0
+ movs r1, 0xA
+ bl sub_80A87AC
+ mov r0, r9
+ movs r1, 0
+ bl sub_809D8EC
+ bl _080A130A
+_0809F92E:
+ bl sub_809A76C
+ bl _0809EAE0
+_0809F936:
+ bl sub_809A7B4
+ bl _0809EAE0
+_0809F93E:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0xA
+ bls _0809F94A
+ bl _0809EAE0
+_0809F94A:
+ lsls r0, 2
+ ldr r1, _0809F954
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809F954: .4byte _0809F958
+ .align 2, 0
+_0809F958:
+ .4byte _0809F984
+ .4byte _0809F992
+ .4byte _0809F9A4
+ .4byte _0809F9B6
+ .4byte _0809F9D8
+ .4byte _0809F9EA
+ .4byte _0809F9FC
+ .4byte _0809FA44
+ .4byte _0809FA56
+ .4byte _0809FA68
+ .4byte _0809FAB0
+_0809F984:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ bl sub_809A83C
+ bl _0809EAE0
+_0809F992:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ mov r1, r9
+ adds r1, 0x8
+ bl sub_80A2500
+ bl _0809EAE0
+_0809F9A4:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ mov r1, r9
+ adds r1, 0xC
+ bl sub_80A2500
+ bl _0809EAE0
+_0809F9B6:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ add r1, sp, 0x90
+ lsls r0, 16
+ movs r2, 0x1
+ orrs r0, r2
+ str r0, [r1]
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ bl sub_80A2500
+ bl _0809EAE0
+_0809F9D8:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ mov r1, r9
+ adds r1, 0x8
+ bl sub_80A252C
+ bl _0809EAE0
+_0809F9EA:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ mov r1, r9
+ adds r1, 0xC
+ bl sub_80A252C
+ bl _0809EAE0
+_0809F9FC:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ add r1, sp, 0x94
+ ldrh r2, [r1]
+ orrs r2, r0
+ str r2, [r1]
+ cmp r2, 0
+ blt _0809FA30
+ ldr r0, _0809FA2C
+ ands r2, r0
+ movs r0, 0x1
+ orrs r2, r0
+ str r2, [r1]
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ bl sub_80A252C
+ bl _0809EAE0
+ .align 2, 0
+_0809FA2C: .4byte 0xffff0000
+_0809FA30:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80A2584
+ bl _0809EAE0
+_0809FA44:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ mov r1, r9
+ adds r1, 0x8
+ bl sub_80A2558
+ bl _0809EAE0
+_0809FA56:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ mov r1, r9
+ adds r1, 0xC
+ bl sub_80A2558
+ bl _0809EAE0
+_0809FA68:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ add r1, sp, 0x98
+ ldrh r2, [r1]
+ orrs r2, r0
+ str r2, [r1]
+ cmp r2, 0
+ blt _0809FA9C
+ ldr r0, _0809FA98
+ ands r2, r0
+ movs r0, 0x1
+ orrs r2, r0
+ str r2, [r1]
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ bl sub_80A2558
+ bl _0809EAE0
+ .align 2, 0
+_0809FA98: .4byte 0xffff0000
+_0809FA9C:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80A2598
+ bl _0809EAE0
+_0809FAB0:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2740
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _0809FAD0
+ cmp r0, 0x2
+ beq _0809FAD4
+ b _0809FAD8
+_0809FAD0:
+ movs r4, 0x1
+ b _0809FAD8
+_0809FAD4:
+ movs r4, 0x1
+ negs r4, r4
+_0809FAD8:
+ adds r0, r1, 0
+ bl sub_8090298
+ ldr r2, _0809FAF4
+ add r1, sp, 0x8
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ lsls r1, 2
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ bl _0809EAE0
+ .align 2, 0
+_0809FAF4: .4byte gUnknown_202DE30
+_0809FAF8:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ ldr r1, [sp, 0xC]
+ lsls r1, 24
+ asrs r1, 24
+ add r2, sp, 0x8
+ ldrb r2, [r2, 0x1]
+ bl sub_809AC7C
+ bl _0809EAE0
+_0809FB10:
+ ldr r0, [sp, 0xC]
+ add r1, sp, 0x9C
+ str r0, [r1]
+ ldr r0, [sp, 0x10]
+ str r0, [r1, 0x4]
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ bl sub_809ADD8
+ bl _0809EAE0
+_0809FB28:
+ movs r1, 0
+ ldrb r0, [r2]
+ subs r0, 0x32
+ cmp r0, 0x6
+ bhi _0809FBBE
+ lsls r0, 2
+ ldr r1, _0809FB3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809FB3C: .4byte _0809FB40
+ .align 2, 0
+_0809FB40:
+ .4byte _0809FB5C
+ .4byte _0809FB6C
+ .4byte _0809FB7C
+ .4byte _0809FB8C
+ .4byte _0809FB9C
+ .4byte _0809FBAC
+ .4byte _0809FBB4
+_0809FB5C:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ ldr r2, [sp, 0x14]
+ movs r0, 0
+ bl sub_809AE90
+ b _0809FBBA
+_0809FB6C:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ ldr r2, [sp, 0x14]
+ movs r0, 0x1
+ bl sub_809AE90
+ b _0809FBBA
+_0809FB7C:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ ldr r2, [sp, 0x14]
+ movs r0, 0x2
+ bl sub_809AE90
+ b _0809FBBA
+_0809FB8C:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r0, r5]
+ ldr r2, [sp, 0x14]
+ movs r0, 0x3
+ bl sub_809AE90
+ b _0809FBBA
+_0809FB9C:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ ldr r2, [sp, 0x14]
+ movs r0, 0x4
+ bl sub_809AE90
+ b _0809FBBA
+_0809FBAC:
+ ldr r0, [sp, 0x14]
+ bl sub_809AEEC
+ b _0809FBBA
+_0809FBB4:
+ ldr r0, [sp, 0x14]
+ bl sub_809AF2C
+_0809FBBA:
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0809FBBE:
+ cmp r1, 0
+ bne _0809FBC6
+ bl _0809EAE0
+_0809FBC6:
+ movs r0, 0
+ movs r1, 0xA
+ bl sub_80A87AC
+ mov r0, r9
+ movs r1, 0
+ bl sub_809D8EC
+ bl _080A130A
+_0809FBDA:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ ldr r1, [sp, 0x14]
+ bl sub_809AF6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809FBF0
+ bl _0809EAE0
+_0809FBF0:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0809FBFE
+ bl _0809EAE0
+_0809FBFE:
+ movs r0, 0
+ movs r1, 0xA
+ bl sub_80A87AC
+ mov r0, r9
+ movs r1, 0
+ bl sub_809D8EC
+ bl _080A130A
+_0809FC12:
+ add r0, sp, 0x8
+ ldrb r1, [r0, 0x1]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ lsls r2, 16
+ asrs r2, 16
+ ldr r3, [sp, 0x14]
+ bl sub_809AFC8
+ bl _080A1280
+_0809FC2E:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl sub_809B1D4
+ bl _080A1292
+_0809FC40:
+ movs r0, 0
+ bl _080A0654
+_0809FC46:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0809FC90
+ adds r0, r1, 0
+ bl sub_80A8D54
+ cmp r0, 0
+ bne _0809FC62
+ bl _0809EAE0
+_0809FC62:
+ movs r3, 0
+ ldr r2, _0809FC8C
+ adds r5, r2, 0
+ adds r4, r0, 0
+ adds r4, 0x4C
+_0809FC6C:
+ adds r0, r3, r5
+ adds r1, r4, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _0809FC6C
+ movs r0, 0
+ strb r0, [r2, 0xA]
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_809B1C0
+ bl _080A1292
+ .align 2, 0
+_0809FC8C: .4byte gUnknown_2039D98
+_0809FC90:
+ ldr r2, _0809FCA0
+ movs r0, 0x4
+ movs r1, 0x1
+ bl sub_809B1C0
+ bl _080A1292
+ .align 2, 0
+_0809FCA0: .4byte gUnknown_2039D98
+_0809FCA4:
+ ldr r4, _0809FCC0
+ adds r0, r4, 0
+ bl sub_80920B8
+ movs r0, 0
+ strb r0, [r4, 0xA]
+ movs r0, 0x5
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_809B1C0
+ bl _080A1292
+ .align 2, 0
+_0809FCC0: .4byte gUnknown_2039D98
+_0809FCC4:
+ ldr r2, _0809FCE4
+ adds r3, r2, 0
+ movs r1, 0
+ adds r0, r2, 0
+ adds r0, 0xB
+_0809FCCE:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, r3
+ bge _0809FCCE
+ add r0, sp, 0x8
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x6
+ bl sub_809B1C0
+ bl _080A1292
+ .align 2, 0
+_0809FCE4: .4byte gUnknown_2039D98
+_0809FCE8:
+ bl sub_80118A4
+ bl _0809EAE0
+_0809FCF0:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0809FD00
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ b _0809FD02
+_0809FD00:
+ movs r0, 0x1E
+_0809FD02:
+ bl sub_80118C4
+ bl _0809EAE0
+_0809FD0A:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0809FD1E
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80A25AC
+ b _0809FD20
+_0809FD1E:
+ ldr r0, [sp, 0xC]
+_0809FD20:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0809FD34
+ cmp r1, r0
+ beq _0809FDA0
+ adds r0, r1, 0
+ bl sub_80118F0
+ bl _0809EAE0
+ .align 2, 0
+_0809FD34: .4byte 0x000003e7
+_0809FD38:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0809FD4C
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80A25AC
+ b _0809FD4E
+_0809FD4C:
+ ldr r0, [sp, 0xC]
+_0809FD4E:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _0809FD68
+ cmp r2, r0
+ beq _0809FDA0
+ add r0, sp, 0x8
+ ldrh r1, [r0, 0x2]
+ adds r0, r2, 0
+ bl sub_8011900
+ bl _0809EAE0
+ .align 2, 0
+_0809FD68: .4byte 0x000003e7
+_0809FD6C:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0809FD80
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80A25AC
+ b _0809FD82
+_0809FD80:
+ ldr r0, [sp, 0xC]
+_0809FD82:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _0809FD9C
+ cmp r1, r0
+ bne _0809FD90
+ bl _0809EAE0
+_0809FD90:
+ adds r0, r1, 0
+ bl sub_8011914
+ bl _0809EAE0
+ .align 2, 0
+_0809FD9C: .4byte 0x000003e7
+_0809FDA0:
+ bl sub_8011924
+ bl _0809EAE0
+_0809FDA8:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0809FDB8
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ b _0809FDBA
+_0809FDB8:
+ movs r0, 0x1E
+_0809FDBA:
+ bl sub_8011930
+ bl _0809EAE0
+_0809FDC2:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x80
+ lsls r1, 1
+ bl sub_8011974
+ bl _0809EAE0
+_0809FDD4:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_801199C
+ bl _0809EAE0
+_0809FDE2:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ lsrs r2, r0, 16
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0809FDF8
+ add r0, sp, 0x8
+ ldrh r1, [r0, 0x2]
+ b _0809FDFA
+_0809FDF8:
+ movs r1, 0x1E
+_0809FDFA:
+ adds r0, r2, 0
+ bl sub_80119AC
+ bl _0809EAE0
+_0809FE04:
+ mov r1, r9
+ adds r1, 0x84
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x1
+ bne _0809FE16
+ adds r0, r1, 0
+ bl sub_809D568
+_0809FE16:
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r2, [r1, 0x1C]
+ movs r1, 0
+ bl _call_via_r2
+ bl _0809EAE0
+_0809FE28:
+ mov r0, r9
+ adds r0, 0xC
+ bl sub_809D52C
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0809FE3A
+ bl _0809EAE0
+_0809FE3A:
+ ldr r1, [r4]
+ mov r2, r9
+ ldr r0, [r2, 0x4]
+ add r5, sp, 0xA4
+ ldr r2, [r1, 0xC]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r1, [r4]
+ mov r3, r9
+ ldr r0, [r3, 0x4]
+ mov r4, sp
+ adds r4, 0x4D
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldrb r0, [r4]
+ mov r1, r9
+ adds r1, 0x4A
+ strb r0, [r1]
+ mov r1, r9
+ ldr r2, [r1]
+ ldr r0, [r1, 0x4]
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+ bl _0809EAE0
+_0809FE86:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ add r6, sp, 0xAC
+ ldr r2, [r1, 0xC]
+ adds r1, r6, 0
+ bl _call_via_r2
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ add r4, sp, 0xB4
+ add r5, sp, 0xBC
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80AD914
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r3, [r1, 0x20]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl _call_via_r3
+ bl _0809EAE0
+_0809FEBE:
+ mov r1, r9
+ ldr r2, [r1]
+ ldr r0, [r1, 0x4]
+ ldr r1, [sp, 0xC]
+ ldr r2, [r2, 0x3C]
+ bl _call_via_r2
+ bl _0809EAE0
+_0809FED0:
+ ldr r0, [sp, 0xC]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _0809FEEE
+ mov r1, r9
+ adds r1, 0x84
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _0809FEEE
+ adds r0, r1, 0
+ bl sub_809D568
+_0809FEEE:
+ mov r3, r9
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ ldr r1, [sp, 0xC]
+ ldr r2, [r2, 0x40]
+ bl _call_via_r2
+ bl _0809EAE0
+_0809FF00:
+ mov r4, r9
+ ldr r2, [r4]
+ ldr r0, [r4, 0x4]
+ mov r1, r9
+ adds r1, 0x4A
+ ldr r2, [r2, 0x14]
+ bl _call_via_r2
+ add r0, sp, 0x8
+ ldrh r1, [r0, 0x2]
+ cmp r1, 0
+ beq _0809FF1E
+ mov r0, r9
+ adds r0, 0x48
+ strh r1, [r0]
+_0809FF1E:
+ mov r5, r9
+ ldr r2, [r5]
+ ldr r0, [r5, 0x4]
+ add r1, sp, 0x8
+ ldrh r1, [r1, 0x2]
+ ldr r2, [r2, 0x30]
+ bl _call_via_r2
+ bl _0809EAE0
+_0809FF32:
+ mov r0, r9
+ ldr r2, [r0]
+ ldr r0, [r0, 0x4]
+ add r1, sp, 0x8
+ ldrh r1, [r1, 0x2]
+ ldr r2, [r2, 0x34]
+ bl _call_via_r2
+ bl _0809EAE0
+_0809FF46:
+ mov r1, r9
+ ldr r3, [r1]
+ ldr r0, [r1, 0x4]
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ add r2, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r2, r4]
+ ldr r3, [r3, 0x38]
+ bl _call_via_r3
+ bl _0809EAE0
+_0809FF62:
+ mov r5, r9
+ ldr r2, [r5]
+ ldr r0, [r5, 0x4]
+ add r1, sp, 0x8
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ ldr r2, [r2, 0x44]
+ bl _call_via_r2
+ bl _0809EAE0
+_0809FF78:
+ ldr r0, [sp, 0xC]
+ lsls r0, 8
+ add r1, sp, 0xC4
+ str r0, [r1]
+ ldr r0, [sp, 0x10]
+ lsls r0, 8
+ str r0, [r1, 0x4]
+ mov r4, r9
+ ldr r2, [r4]
+ ldr r0, [r4, 0x4]
+ ldr r2, [r2, 0x24]
+ bl _call_via_r2
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ mov r5, r10
+ b _080A05EA
+_0809FF9A:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ add r1, sp, 0xCC
+ str r0, [r1]
+ ldr r0, [sp, 0xC]
+ lsls r0, 8
+ str r0, [r1, 0x4]
+ mov r3, r9
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ ldr r2, [r2, 0x48]
+ bl _call_via_r2
+ b _080A0650
+_0809FFBA:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ bl OtherRandomCapped
+ lsls r0, 8
+ add r4, sp, 0xD4
+ str r0, [r4]
+ ldr r0, [sp, 0xC]
+ bl OtherRandomCapped
+ lsls r0, 8
+ str r0, [r4, 0x4]
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r2, [r1, 0x48]
+ adds r1, r4, 0
+ bl _call_via_r2
+ b _080A07B4
+_0809FFE4:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ add r4, sp, 0xDC
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r4, 0
+ bl sub_80AD8B4
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r0, [r3, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r4, 0
+ bl _call_via_r2
+ b _080A0650
+_080A0010:
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ add r6, sp, 0xE4
+ ldr r2, [r1, 0xC]
+ adds r1, r6, 0
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ add r4, sp, 0xEC
+ add r5, sp, 0xF4
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80AD914
+ ldr r0, [r5]
+ ldr r1, [r4]
+ subs r0, r1
+ bl OtherRandomCapped
+ ldr r1, [r4]
+ adds r1, r0
+ str r1, [r6]
+ ldr r0, [r5, 0x4]
+ ldr r1, [r4, 0x4]
+ subs r0, r1
+ bl OtherRandomCapped
+ ldr r1, [r4, 0x4]
+ adds r1, r0
+ str r1, [r6, 0x4]
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r6, 0
+ bl _call_via_r2
+ b _080A07B4
+_080A0064:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080A007A
+ bl _0809EAE0
+_080A007A:
+ add r4, sp, 0xFC
+ adds r1, r4, 0
+ bl sub_80A8FD8
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ b _080A03F0
+_080A0096:
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x32
+ bl sub_8001784
+ add r5, sp, 0x104
+ str r0, [r5]
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x33
+ bl sub_8001784
+ str r0, [r5, 0x4]
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x34
+ bl sub_8001784
+ adds r6, r0, 0
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x35
+ bl sub_8001784
+ adds r4, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r5, 0
+ bl _call_via_r2
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ ldr r2, [r1, 0x28]
+ adds r1, r6, 0
+ bl _call_via_r2
+ mov r0, r9
+ adds r0, 0x4A
+ strb r4, [r0]
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r0, [r3, 0x4]
+ ldr r2, [r1, 0x2C]
+ adds r1, r4, 0
+ bl _call_via_r2
+ b _080A0650
+_080A010E:
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ add r4, sp, 0x10C
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ ldr r3, [r5]
+ ldr r0, [r5, 0x4]
+ add r1, sp, 0x114
+ add r2, sp, 0x118
+ ldr r3, [r3, 0x10]
+ bl _call_via_r3
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ mov r5, sp
+ adds r5, 0x4E
+ ldr r2, [r1, 0x14]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ add r0, sp, 0x10C
+ ldr r3, [r0]
+ movs r0, 0
+ movs r1, 0x32
+ bl sub_800199C
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r3, [r4, 0x4]
+ movs r0, 0
+ movs r1, 0x33
+ bl sub_800199C
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ add r0, sp, 0x114
+ ldr r3, [r0]
+ movs r0, 0
+ movs r1, 0x34
+ bl sub_800199C
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r3, 0
+ ldrsb r3, [r5, r3]
+ movs r0, 0
+ movs r1, 0x35
+ bl sub_800199C
+ bl _0809EAE0
+_080A0186:
+ mov r0, r9
+ ldr r2, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r1, [sp, 0xC]
+ lsls r1, 8
+ ldr r2, [r2, 0x28]
+ bl _call_via_r2
+ b _080A07B4
+_080A0198:
+ ldr r0, [sp, 0xC]
+ lsls r0, 8
+ mov r2, r10
+ str r0, [r2, 0x3C]
+ ldr r0, [sp, 0x10]
+ lsls r0, 8
+ str r0, [r2, 0x40]
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ str r0, [r2, 0x30]
+ ldr r0, _080A01B4
+ bl _080A12AE
+ .align 2, 0
+_080A01B4: .4byte 0x0000ffff
+_080A01B8:
+ mov r4, r9
+ ldr r1, [r4]
+ ldr r0, [r4, 0x4]
+ add r4, sp, 0x11C
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ ldr r1, [sp, 0xC]
+ lsls r1, 8
+ add r0, sp, 0x11C
+ ldr r0, [r0]
+ adds r0, r1
+ mov r5, r10
+ str r0, [r5, 0x3C]
+ ldr r1, [sp, 0x10]
+ lsls r1, 8
+ ldr r0, [r4, 0x4]
+ adds r0, r1
+ str r0, [r5, 0x40]
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ str r0, [r5, 0x30]
+ ldr r0, _080A01EC
+ b _080A05EA
+ .align 2, 0
+_080A01EC: .4byte 0x0000ffff
+_080A01F0:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ mov r4, r10
+ adds r4, 0x3C
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r4, 0
+ bl sub_80AD8B4
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ mov r4, r10
+ str r0, [r4, 0x30]
+ ldr r0, _080A021C
+ b _080A0656
+ .align 2, 0
+_080A021C: .4byte 0x0000ffff
+_080A0220:
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ mov r4, r10
+ adds r4, 0x3C
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r4, 0
+ bl sub_80AD8B4
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ mov r2, r10
+ str r0, [r2, 0x30]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A12AE
+_080A0250:
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r0, [r3, 0x4]
+ mov r4, r10
+ adds r4, 0x3C
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r4, 0
+ bl sub_80AD8B4
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ mov r5, r10
+ str r0, [r5, 0x30]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl OtherRandomCapped
+ b _080A05EA
+_080A0282:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080A0298
+ bl _0809EAE0
+_080A0298:
+ mov r1, r10
+ adds r1, 0x3C
+ bl sub_80A8FD8
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ mov r2, r10
+ str r0, [r2, 0x30]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl _080A12AE
+_080A02B2:
+ mov r3, r9
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ mov r1, r10
+ adds r1, 0x34
+ ldr r2, [r2, 0xC]
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r1, r0, 8
+ mov r4, r10
+ str r1, [r4, 0x3C]
+ ldr r0, [sp, 0x10]
+ lsls r2, r0, 8
+ str r2, [r4, 0x40]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ beq _080A02DC
+ cmp r0, 0x83
+ bne _080A0304
+_080A02DC:
+ mov r5, r10
+ ldr r0, [r5, 0x34]
+ subs r0, r1, r0
+ ldr r1, [r5, 0x38]
+ subs r1, r2, r1
+ bl sub_8009FB8
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ strh r0, [r5, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A0300
+ bl _0809F0C4
+_080A0300:
+ movs r0, 0x1
+ b _080A05EA
+_080A0304:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ mov r3, r10
+ strh r0, [r3, 0x2A]
+ bl _0809F0C4
+_080A0310:
+ mov r4, r9
+ ldr r2, [r4]
+ ldr r0, [r4, 0x4]
+ mov r1, r10
+ adds r1, 0x34
+ ldr r2, [r2, 0xC]
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 8
+ mov r5, r10
+ ldr r4, [r5, 0x34]
+ adds r3, r4, r0
+ str r3, [r5, 0x3C]
+ ldr r0, [sp, 0x10]
+ lsls r0, 8
+ ldr r2, [r5, 0x38]
+ adds r1, r2, r0
+ str r1, [r5, 0x40]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x7E
+ beq _080A0342
+ cmp r0, 0x84
+ bne _080A036A
+_080A0342:
+ subs r0, r3, r4
+ subs r1, r2
+ bl sub_8009FB8
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ mov r3, r10
+ strh r0, [r3, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A0362
+ bl _0809F0C4
+_080A0362:
+ movs r0, 0x1
+ strh r0, [r3, 0x2A]
+ bl _0809F0C4
+_080A036A:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ b _080A0654
+_080A0370:
+ ldr r4, [sp, 0xC]
+ lsls r4, 1
+ subs r4, 0x1
+ ldr r5, [sp, 0x10]
+ lsls r5, 1
+ subs r5, 0x1
+ mov r0, r9
+ ldr r2, [r0]
+ ldr r0, [r0, 0x4]
+ mov r1, r10
+ adds r1, 0x34
+ ldr r2, [r2, 0xC]
+ bl _call_via_r2
+ adds r0, r4, 0
+ bl OtherRandomCapped
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ subs r0, r1
+ lsls r0, 8
+ mov r3, r10
+ ldr r1, [r3, 0x34]
+ adds r1, r0
+ str r1, [r3, 0x3C]
+ adds r0, r5, 0
+ bl OtherRandomCapped
+ ldr r1, [sp, 0xC]
+ subs r0, r1
+ lsls r0, 8
+ mov r4, r10
+ ldr r3, [r4, 0x38]
+ adds r2, r3, r0
+ str r2, [r4, 0x40]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x7F
+ beq _080A03C4
+ cmp r0, 0x85
+ bne _080A03EC
+_080A03C4:
+ mov r5, r10
+ ldr r0, [r5, 0x3C]
+ ldr r1, [r5, 0x34]
+ subs r0, r1
+ subs r1, r2, r3
+ bl sub_8009FB8
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ strh r0, [r5, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A03E8
+ bl _0809F0C4
+_080A03E8:
+ movs r0, 0x1
+ b _080A05EA
+_080A03EC:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+_080A03F0:
+ mov r3, r10
+ strh r0, [r3, 0x2A]
+ bl _0809F0C4
+_080A03F8:
+ mov r4, r9
+ ldr r2, [r4]
+ ldr r0, [r4, 0x4]
+ mov r1, r10
+ adds r1, 0x34
+ ldr r2, [r2, 0xC]
+ bl _call_via_r2
+ mov r5, r10
+ ldr r0, [r5, 0x34]
+ ldr r1, [r5, 0x38]
+ mov r2, r10
+ str r0, [r2, 0x3C]
+ str r1, [r2, 0x40]
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, r10
+ adds r1, 0x3C
+ bl sub_80AD8B4
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x80
+ beq _080A042E
+ cmp r0, 0x86
+ bne _080A045C
+_080A042E:
+ mov r3, r10
+ ldr r0, [r3, 0x3C]
+ ldr r1, [r3, 0x34]
+ subs r0, r1
+ ldr r1, [r3, 0x40]
+ ldr r2, [r3, 0x38]
+ subs r1, r2
+ bl sub_8009FB8
+ add r1, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r1, r4]
+ bl __divsi3
+ mov r5, r10
+ strh r0, [r5, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A0458
+ bl _0809F0C4
+_080A0458:
+ movs r0, 0x1
+ b _080A05EA
+_080A045C:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ b _080A07B8
+_080A0462:
+ ldr r4, [sp, 0xC]
+ lsls r4, 1
+ subs r4, 0x1
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ mov r5, r10
+ adds r5, 0x3C
+ ldr r2, [r1, 0xC]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r0, [sp, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ bl sub_80AD8B4
+ adds r0, r4, 0
+ bl OtherRandomCapped
+ add r1, sp, 0x8
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ subs r0, r1
+ lsls r0, 8
+ mov r5, r10
+ ldr r1, [r5, 0x3C]
+ adds r1, r0
+ str r1, [r5, 0x3C]
+ adds r0, r4, 0
+ bl OtherRandomCapped
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ subs r0, r1
+ lsls r0, 8
+ ldr r1, [r5, 0x40]
+ adds r2, r1, r0
+ str r2, [r5, 0x40]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x81
+ beq _080A04C0
+ cmp r0, 0x87
+ bne _080A04EC
+_080A04C0:
+ mov r3, r10
+ ldr r0, [r3, 0x3C]
+ ldr r1, [r3, 0x34]
+ subs r0, r1
+ ldr r1, [r3, 0x38]
+ subs r1, r2, r1
+ bl sub_8009FB8
+ add r1, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r1, r4]
+ bl __divsi3
+ mov r5, r10
+ strh r0, [r5, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A04E8
+ bl _0809F0C4
+_080A04E8:
+ movs r0, 0x1
+ b _080A05EA
+_080A04EC:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ b _080A07B8
+_080A04F2:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ bge _080A0508
+ bl _0809EAE0
+_080A0508:
+ mov r3, r9
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ mov r1, r10
+ adds r1, 0x34
+ ldr r2, [r2, 0xC]
+ bl _call_via_r2
+ mov r1, r10
+ adds r1, 0x3C
+ adds r0, r4, 0
+ bl sub_80A8FD8
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x82
+ beq _080A052E
+ cmp r0, 0x88
+ bne _080A055A
+_080A052E:
+ mov r4, r10
+ ldr r0, [r4, 0x3C]
+ ldr r1, [r4, 0x34]
+ subs r0, r1
+ ldr r1, [r4, 0x40]
+ ldr r2, [r4, 0x38]
+ subs r1, r2
+ bl sub_8009FB8
+ add r1, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r1, r5]
+ bl __divsi3
+ strh r0, [r4, 0x2A]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080A0556
+ bl _0809F0C4
+_080A0556:
+ movs r0, 0x1
+ b _080A0656
+_080A055A:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ b _080A07B8
+_080A0560:
+ ldr r0, [sp, 0xC]
+ lsls r0, 8
+ mov r2, r10
+ str r0, [r2, 0x48]
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ str r0, [r2, 0x30]
+ ldr r0, _080A0578
+ bl _080A12AE
+ .align 2, 0
+_080A0578: .4byte 0x0000ffff
+_080A057C:
+ ldr r1, [sp, 0xC]
+ mov r0, r9
+ adds r0, 0x4A
+ strb r1, [r0]
+ mov r4, r9
+ ldr r2, [r4]
+ ldr r0, [r4, 0x4]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ mov r1, r10
+ str r0, [r1, 0x30]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ b _080A07BA
+_080A05A4:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ mov r4, sp
+ adds r4, 0x4F
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8002984
+ mov r1, r9
+ adds r1, 0x4A
+ strb r0, [r1]
+ mov r3, r9
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ mov r5, r10
+ str r0, [r5, 0x30]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+_080A05EA:
+ strh r0, [r5, 0x2A]
+ bl _0809F0C4
+_080A05F0:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ mov r1, r9
+ adds r1, 0x4A
+ strb r0, [r1]
+ mov r0, r9
+ ldr r2, [r0]
+ ldr r0, [r0, 0x4]
+_080A0600:
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+ b _080A07B4
+_080A060E:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ blt _080A0650
+ add r4, sp, 0x50
+ adds r1, r4, 0
+ bl sub_80A9050
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ add r1, sp, 0x8
+ ldrh r1, [r1, 0x2]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8002984
+ mov r1, r9
+ adds r1, 0x4A
+ strb r0, [r1]
+ mov r3, r9
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+_080A0650:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+_080A0654:
+ mov r4, r10
+_080A0656:
+ strh r0, [r4, 0x2A]
+ bl _0809F0C4
+_080A065C:
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ mov r4, sp
+ adds r4, 0x51
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ add r1, sp, 0x8
+ ldrh r1, [r1, 0x2]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8002984
+ mov r1, r9
+ adds r1, 0x4A
+ strb r0, [r1]
+ ldr r2, [r5]
+ ldr r0, [r5, 0x4]
+ b _080A0600
+_080A068A:
+ movs r5, 0
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0x8F
+ beq _080A06CA
+ cmp r0, 0x8F
+ bgt _080A069E
+ cmp r0, 0x8E
+ beq _080A06A4
+ b _080A0724
+_080A069E:
+ cmp r0, 0x90
+ beq _080A06F8
+ b _080A0724
+_080A06A4:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ blt _080A0724
+ movs r5, 0x1
+ add r1, sp, 0x124
+ adds r0, r4, 0
+ bl sub_80A8FD8
+ add r1, sp, 0x12C
+ adds r0, r4, 0
+ bl sub_80A8F9C
+ b _080A0724
+_080A06CA:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ blt _080A0724
+ movs r5, 0x1
+ add r1, sp, 0x124
+ bl sub_80A8FD8
+ ldr r0, _080A06F4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ add r2, sp, 0x12C
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ b _080A0724
+ .align 2, 0
+_080A06F4: .4byte gUnknown_81164DC
+_080A06F8:
+ movs r5, 0x1
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ add r4, sp, 0x124
+ ldr r2, [r1, 0xC]
+ adds r1, r4, 0
+ bl _call_via_r2
+ mov r3, r9
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ add r1, sp, 0x12C
+ ldr r2, [r2, 0x8]
+ bl _call_via_r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r4, 0
+ bl sub_80AD8B4
+_080A0724:
+ cmp r5, 0
+ beq _080A07B4
+ mov r4, r9
+ ldr r1, [r4]
+ ldr r0, [r4, 0x4]
+ add r5, sp, 0x134
+ ldr r2, [r1, 0xC]
+ adds r1, r5, 0
+ bl _call_via_r2
+ ldr r1, [r4]
+ ldr r0, [r4, 0x4]
+ add r4, sp, 0x13C
+ ldr r2, [r1, 0x8]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r7, sp, 0x124
+ add r3, sp, 0x12C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl sub_8002DF0
+ mov r1, sp
+ adds r1, 0x52
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ ldrsb r4, [r1, r4]
+ adds r6, r1, 0
+ cmp r4, r0
+ bne _080A078C
+ ldr r3, _080A07C0
+ adds r0, r5, 0
+ adds r1, r3, 0
+ adds r2, r7, 0
+ bl sub_8002D54
+ strb r0, [r6]
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r0, r4
+ bne _080A078C
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ ldr r2, [r1, 0x14]
+ adds r1, r6, 0
+ bl _call_via_r2
+_080A078C:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ add r1, sp, 0x8
+ ldrh r1, [r1, 0x2]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8002984
+ mov r1, r9
+ adds r1, 0x4A
+ strb r0, [r1]
+ mov r0, r9
+ ldr r2, [r0]
+ ldr r0, [r0, 0x4]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, [r2, 0x2C]
+ bl _call_via_r2
+_080A07B4:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+_080A07B8:
+ mov r1, r10
+_080A07BA:
+ strh r0, [r1, 0x2A]
+ bl _0809F0C4
+ .align 2, 0
+_080A07C0: .4byte gUnknown_81164DC
+_080A07C4:
+ movs r0, 0
+ bl _080A12AC
+_080A07CA:
+ ldr r0, [sp, 0xC]
+ mov r1, r9
+ adds r1, 0x71
+ movs r2, 0
+ strb r0, [r1]
+ mov r3, r10
+ strh r2, [r3, 0x2A]
+ bl _0809F0C4
+_080A07DC:
+ mov r4, r9
+ ldr r1, [r4]
+ ldr r0, [r4, 0x4]
+ mov r4, sp
+ adds r4, 0x53
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8002984
+ mov r1, r9
+ adds r1, 0x71
+ movs r2, 0
+ strb r0, [r1]
+ mov r5, r10
+ strh r2, [r5, 0x2A]
+ bl _0809F0C4
+_080A080C:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ bl sub_809D124
+ bl _0809EAE0
+_080A081E:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r1, r0, 16
+ mov r3, r9
+ movs r4, 0x8
+ ldrsh r0, [r3, r4]
+ cmp r0, 0x2
+ beq _080A0856
+ cmp r0, 0x2
+ bgt _080A0844
+ cmp r0, 0x1
+ beq _080A084C
+ bl _0809EAE0
+_080A0844:
+ cmp r0, 0x3
+ beq _080A0860
+ bl _0809EAE0
+_080A084C:
+ movs r0, 0x1
+ bl sub_809D170
+ bl _0809EAE0
+_080A0856:
+ movs r0, 0x2
+ bl sub_809D170
+ bl _0809EAE0
+_080A0860:
+ movs r0, 0x3
+ bl sub_809D170
+ bl _0809EAE0
+_080A086A:
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ cmp r1, 0x2
+ beq _080A08A0
+ cmp r1, 0x2
+ bgt _080A088E
+ cmp r1, 0x1
+ beq _080A0896
+ bl _0809EAE0
+_080A088E:
+ cmp r1, 0x3
+ beq _080A08AA
+ bl _0809EAE0
+_080A0896:
+ add r4, sp, 0x144
+ adds r1, r4, 0
+ bl sub_80A8FD8
+ b _080A08B2
+_080A08A0:
+ add r4, sp, 0x144
+ adds r1, r4, 0
+ bl sub_80AC448
+ b _080A08B2
+_080A08AA:
+ add r4, sp, 0x144
+ adds r1, r4, 0
+ bl sub_80AD360
+_080A08B2:
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_809D158
+ bl _0809EAE0
+_080A08BE:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_809D170
+ bl _0809EAE0
+_080A08CA:
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r0, [r3, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bge _080A08E2
+ bl _0809EAE0
+_080A08E2:
+ mov r4, r9
+ movs r5, 0x8
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x2
+ beq _080A090A
+ cmp r0, 0x2
+ bgt _080A08F8
+ cmp r0, 0x1
+ beq _080A0900
+ bl _0809EAE0
+_080A08F8:
+ cmp r0, 0x3
+ beq _080A0914
+ bl _0809EAE0
+_080A0900:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ movs r0, 0x1
+ b _080A0990
+_080A090A:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ movs r0, 0x2
+ b _080A0990
+_080A0914:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ movs r0, 0x3
+ b _080A0990
+_080A091E:
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r0, 16
+ mov r2, r9
+ movs r3, 0x8
+ ldrsh r1, [r2, r3]
+ cmp r1, 0x2
+ beq _080A095C
+ cmp r1, 0x2
+ bgt _080A0944
+ cmp r1, 0x1
+ beq _080A094C
+ bl _0809EAE0
+_080A0944:
+ cmp r1, 0x3
+ beq _080A096C
+ bl _0809EAE0
+_080A094C:
+ add r4, sp, 0x14C
+ adds r1, r4, 0
+ bl sub_80A8FD8
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ b _080A097A
+_080A095C:
+ add r4, sp, 0x14C
+ adds r1, r4, 0
+ bl sub_80AC448
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r2, [r0, r1]
+ b _080A097A
+_080A096C:
+ add r4, sp, 0x14C
+ adds r1, r4, 0
+ bl sub_80AD360
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+_080A097A:
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_809D190
+ bl _0809F0C4
+_080A0986:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ movs r0, 0x1
+ movs r1, 0
+_080A0990:
+ bl sub_809D1A8
+ bl _0809F0C4
+_080A0998:
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bge _080A09B0
+ bl _0809EAE0
+_080A09B0:
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x2
+ beq _080A09D6
+ cmp r0, 0x2
+ bgt _080A09C4
+ cmp r0, 0x1
+ beq _080A09CC
+ bl _0809EAE0
+_080A09C4:
+ cmp r0, 0x3
+ beq _080A09E0
+ bl _0809EAE0
+_080A09CC:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ movs r0, 0x1
+ b _080A0A5C
+_080A09D6:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ movs r0, 0x2
+ b _080A0A5C
+_080A09E0:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ movs r0, 0x3
+ b _080A0A5C
+_080A09EA:
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r0, 16
+ mov r2, r9
+ movs r3, 0x8
+ ldrsh r1, [r2, r3]
+ cmp r1, 0x2
+ beq _080A0A28
+ cmp r1, 0x2
+ bgt _080A0A10
+ cmp r1, 0x1
+ beq _080A0A18
+ bl _0809EAE0
+_080A0A10:
+ cmp r1, 0x3
+ beq _080A0A38
+ bl _0809EAE0
+_080A0A18:
+ add r4, sp, 0x154
+ adds r1, r4, 0
+ bl sub_80A8FD8
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ b _080A0A46
+_080A0A28:
+ add r4, sp, 0x154
+ adds r1, r4, 0
+ bl sub_80AC448
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r2, [r0, r1]
+ b _080A0A46
+_080A0A38:
+ add r4, sp, 0x154
+ adds r1, r4, 0
+ bl sub_80AD360
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+_080A0A46:
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_809D1CC
+ bl _0809F0C4
+_080A0A52:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ movs r0, 0x1
+ movs r1, 0
+_080A0A5C:
+ bl sub_809D1E4
+ bl _0809F0C4
+_080A0A64:
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bge _080A0A7C
+ bl _0809EAE0
+_080A0A7C:
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x2
+ beq _080A0AA2
+ cmp r0, 0x2
+ bgt _080A0A90
+ cmp r0, 0x1
+ beq _080A0A98
+ bl _0809EAE0
+_080A0A90:
+ cmp r0, 0x3
+ beq _080A0AAC
+ bl _0809EAE0
+_080A0A98:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ movs r0, 0x1
+ b _080A0B28
+_080A0AA2:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ movs r0, 0x2
+ b _080A0B28
+_080A0AAC:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ movs r0, 0x3
+ b _080A0B28
+_080A0AB6:
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ ldr r1, [r1, 0x4]
+ bl _call_via_r1
+ lsls r0, 16
+ asrs r0, 16
+ mov r2, r9
+ movs r3, 0x8
+ ldrsh r1, [r2, r3]
+ cmp r1, 0x2
+ beq _080A0AF4
+ cmp r1, 0x2
+ bgt _080A0ADC
+ cmp r1, 0x1
+ beq _080A0AE4
+ bl _0809EAE0
+_080A0ADC:
+ cmp r1, 0x3
+ beq _080A0B04
+ bl _0809EAE0
+_080A0AE4:
+ add r4, sp, 0x15C
+ adds r1, r4, 0
+ bl sub_80A8FD8
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ b _080A0B12
+_080A0AF4:
+ add r4, sp, 0x15C
+ adds r1, r4, 0
+ bl sub_80AC448
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r2, [r0, r1]
+ b _080A0B12
+_080A0B04:
+ add r4, sp, 0x15C
+ adds r1, r4, 0
+ bl sub_80AD360
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+_080A0B12:
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_809D208
+ bl _0809F0C4
+_080A0B1E:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ movs r0, 0x1
+ movs r1, 0
+_080A0B28:
+ bl sub_809D220
+ bl _0809F0C4
+_080A0B30:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r1, r5]
+ bl sub_8001570
+ bl _0809EAE0
+_080A0B42:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl sub_80015C0
+ bl _0809EAE0
+_080A0B54:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ ldr r2, [sp, 0xC]
+ add r3, sp, 0x8
+ ldrb r3, [r3, 0x1]
+ bl sub_800226C
+ bl _0809EAE0
+_080A0B6C:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r1, r4]
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ asrs r2, 16
+ add r3, sp, 0x8
+ ldrb r3, [r3, 0x1]
+ bl sub_80022A0
+ bl _0809EAE0
+_080A0B88:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r1, r5]
+ ldr r2, [sp, 0xC]
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r3, [sp, 0x10]
+ bl sub_800199C
+ bl _0809EAE0
+_080A0BA2:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ bl sub_8001BB4
+ bl _0809EAE0
+_080A0BB4:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ add r1, sp, 0x164
+ add r2, sp, 0x168
+ bl sub_8001B88
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ add r1, sp, 0x164
+ ldr r1, [r1]
+ add r2, sp, 0x168
+ ldr r2, [r2]
+ adds r2, 0x1
+ bl sub_8001BB4
+ bl _0809EAE0
+_080A0BDA:
+ ldr r2, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x13
+ bl sub_80018D8
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r2, [r0, r4]
+ movs r0, 0
+ movs r1, 0x16
+ bl sub_80018D8
+ bl _0809EAE0
+_080A0BF6:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r2, [r0, r5]
+ movs r0, 0
+ movs r1, 0x1C
+ bl sub_80018D8
+ bl _0809EAE0
+_080A0C08:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ add r1, sp, 0x8
+ ldrb r2, [r1, 0x1]
+ negs r1, r2
+ orrs r1, r2
+ lsrs r1, 31
+ bl sub_80026E8
+ bl _0809EAE0
+_080A0C20:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r0, [r0, r2]
+ add r1, sp, 0x8
+ ldrb r2, [r1, 0x1]
+ negs r1, r2
+ orrs r1, r2
+ lsrs r1, 31
+ bl sub_809733C
+ bl _0809EAE0
+_080A0C38:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ add r1, sp, 0x8
+ ldrb r2, [r1, 0x1]
+ negs r1, r2
+ orrs r1, r2
+ lsrs r1, 31
+ bl sub_80973A8
+ bl _0809EAE0
+_080A0C50:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ add r1, sp, 0x8
+ ldrb r2, [r1, 0x1]
+ negs r1, r2
+ orrs r1, r2
+ lsrs r1, 31
+ bl sub_8097418
+ bl _0809EAE0
+_080A0C68:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ add r1, sp, 0x8
+ ldrb r2, [r1, 0x1]
+ negs r1, r2
+ orrs r1, r2
+ lsrs r1, 31
+ bl sub_80975A8
+ bl _0809EAE0
+_080A0C80:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80976F8
+ bl _0809EAE0
+_080A0C90:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ ldr r2, [sp, 0xC]
+ movs r0, 0
+ movs r3, 0x2
+ bl sub_80022F8
+ b _080A0E1E
+_080A0CA2:
+ mov r0, r10
+ adds r0, 0x50
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, [sp, 0x10]
+ add r3, sp, 0x8
+ ldrb r3, [r3, 0x1]
+ bl sub_80022F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0CC0
+ bl _0809EAE0
+_080A0CC0:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ b _080A0D5C
+_080A0CC8:
+ mov r0, r10
+ adds r0, 0x50
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, [sp, 0x10]
+ lsls r2, 16
+ asrs r2, 16
+ add r3, sp, 0x8
+ ldrb r3, [r3, 0x1]
+ bl sub_8002318
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0CEA
+ bl _0809EAE0
+_080A0CEA:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ b _080A0E2C
+_080A0CF2:
+ mov r0, r10
+ adds r0, 0x50
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, [sp, 0x10]
+ lsls r2, 16
+ lsrs r2, 16
+ bl sub_8001784
+ cmp r0, 0
+ bne _080A0D0E
+ bl _0809EAE0
+_080A0D0E:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ b _080A0D5C
+_080A0D16:
+ mov r0, r10
+ adds r0, 0x50
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8001AB0
+ ldr r1, [sp, 0x10]
+ add r2, sp, 0x8
+ ldrb r2, [r2, 0x1]
+ bl FlagJudge
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0D38
+ bl _0809EAE0
+_080A0D38:
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ b _080A0E2C
+_080A0D40:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0D58
+ bl _0809EAE0
+_080A0D58:
+ add r0, sp, 0x8
+ ldrb r1, [r0, 0x1]
+_080A0D5C:
+ mov r0, r9
+ bl sub_80A242C
+ mov r5, r10
+ str r0, [r5, 0x4]
+ bl _0809EAE0
+_080A0D6A:
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ bl sub_8001D08
+ b _080A0DBA
+_080A0D7A:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0D92
+ bl _0809EAE0
+_080A0D92:
+ b _080A0DF6
+_080A0D94:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0DA8
+ bl _0809EAE0
+_080A0DA8:
+ add r0, sp, 0x8
+ ldrb r1, [r0, 0x1]
+ b _080A132A
+_080A0DAE:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8098100
+_080A0DBA:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0DC4
+ bl _0809EAE0
+_080A0DC4:
+ add r0, sp, 0x8
+ ldrb r1, [r0, 0x1]
+ mov r0, r9
+ bl sub_80A242C
+ mov r2, r10
+ str r0, [r2, 0x4]
+ bl _0809EAE0
+_080A0DD6:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80026CC
+ b _080A0E1E
+_080A0DE2:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809CBA4
+ cmp r0, 0
+ bgt _080A0DF6
+ bl _0809EAE0
+_080A0DF6:
+ add r0, sp, 0x8
+ ldrb r1, [r0, 0x1]
+ mov r0, r9
+ bl sub_80A242C
+ mov r4, r10
+ str r0, [r4, 0x4]
+ bl _0809EAE0
+_080A0E08:
+ mov r5, r9
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080A0E16
+ bl _0809EAE0
+_080A0E16:
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ bl sub_80A8C98
+_080A0E1E:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0E28
+ bl _0809EAE0
+_080A0E28:
+ add r0, sp, 0x8
+ ldrb r1, [r0, 0x1]
+_080A0E2C:
+ mov r0, r9
+ bl sub_80A242C
+ mov r3, r10
+ str r0, [r3, 0x4]
+ bl _0809EAE0
+_080A0E3A:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8091130
+ cmp r0, 0
+ bge _080A0E4E
+ bl _0809EAE0
+_080A0E4E:
+ bl sub_80911F8
+ bl _0809EAE0
+_080A0E56:
+ add r0, sp, 0x8
+ ldrb r2, [r0]
+ adds r0, r2, 0
+ subs r0, 0xC0
+ cmp r0, 0xB
+ bls _080A0E64
+ b _080A1088
+_080A0E64:
+ lsls r0, 2
+ ldr r1, _080A0E70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A0E70: .4byte _080A0E74
+ .align 2, 0
+_080A0E74:
+ .4byte _080A0EA4
+ .4byte _080A0EB6
+ .4byte _080A0ECC
+ .4byte _080A0EFA
+ .4byte _080A0F08
+ .4byte _080A0F14
+ .4byte _080A0F26
+ .4byte _080A0F36
+ .4byte _080A0F98
+ .4byte _080A1008
+ .4byte _080A0F4C
+ .4byte _080A107A
+_080A0EA4:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r1, r4]
+ bl sub_8001658
+ adds r1, r0, 0
+ b _080A1098
+_080A0EB6:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r1, r5]
+ bl sub_8001658
+ ldr r1, [sp, 0xC]
+ add r2, sp, 0x8
+ ldrb r2, [r2, 0x1]
+ b _080A0EF2
+_080A0ECC:
+ mov r4, r10
+ adds r4, 0x50
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r0, r4, 0
+ bl sub_8001658
+ adds r5, r0, 0
+ ldr r1, [sp, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8001658
+ adds r1, r0, 0
+ add r0, sp, 0x8
+ ldrb r2, [r0, 0x1]
+ adds r0, r5, 0
+_080A0EF2:
+ bl FlagCalc
+ adds r1, r0, 0
+ b _080A1098
+_080A0EFA:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ bl OtherRandomCapped
+ adds r1, r0, 0
+ b _080A1098
+_080A0F08:
+ add r0, sp, 0x8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ movs r2, 0
+ b _080A0F1E
+_080A0F14:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r0, r5]
+ movs r0, 0
+ movs r2, 0x1
+_080A0F1E:
+ bl sub_8001784
+ adds r1, r0, 0
+ b _080A1098
+_080A0F26:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A8C2C
+ lsls r0, 16
+ asrs r1, r0, 16
+ b _080A1098
+_080A0F36:
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, [r0, 0x4]
+ add r4, sp, 0x54
+ ldr r2, [r1, 0x14]
+ adds r1, r4, 0
+ bl _call_via_r2
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ b _080A1098
+_080A0F4C:
+ mov r2, r9
+ ldr r1, [r2]
+ ldr r0, [r2, 0x4]
+ movs r3, 0xB6
+ lsls r3, 1
+ add r3, sp
+ mov r8, r3
+ ldr r2, [r1, 0xC]
+ mov r1, r8
+ bl _call_via_r2
+ add r6, sp, 0x16C
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ add r4, sp, 0x174
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ adds r5, r4, 0
+ adds r1, r5, 0
+ bl sub_80AD8B4
+ ldr r1, [r4]
+ ldr r0, [r6]
+ subs r1, r0
+ add r0, sp, 0x17C
+ str r1, [r0]
+ ldr r1, [r5, 0x4]
+ mov r4, r8
+ ldr r0, [r4, 0x4]
+ subs r1, r0
+ add r0, sp, 0x17C
+ str r1, [r0, 0x4]
+ bl sub_8002C60
+ b _080A106A
+_080A0F98:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r6, r0, 16
+ cmp r6, 0
+ blt _080A1074
+ mov r5, r9
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ movs r2, 0xC2
+ lsls r2, 1
+ add r2, sp
+ mov r8, r2
+ ldr r2, [r1, 0xC]
+ mov r1, r8
+ bl _call_via_r2
+ ldr r1, [r5]
+ ldr r0, [r5, 0x4]
+ add r5, sp, 0x18C
+ ldr r2, [r1, 0x8]
+ adds r1, r5, 0
+ bl _call_via_r2
+ add r7, sp, 0x194
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_80A8FD8
+ add r4, sp, 0x19C
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80A8F9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl sub_8002DF0
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A1098
+ ldr r3, _080A1004
+ mov r0, r8
+ adds r1, r3, 0
+ adds r2, r7, 0
+ b _080A1066
+ .align 2, 0
+_080A1004: .4byte gUnknown_81164DC
+_080A1008:
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r7, r0, 16
+ cmp r7, 0
+ blt _080A1074
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r0, [r3, 0x4]
+ add r6, sp, 0x1A4
+ ldr r2, [r1, 0xC]
+ adds r1, r6, 0
+ bl _call_via_r2
+ mov r4, r9
+ ldr r1, [r4]
+ ldr r0, [r4, 0x4]
+ add r4, sp, 0x1AC
+ ldr r2, [r1, 0x8]
+ adds r1, r4, 0
+ bl _call_via_r2
+ add r5, sp, 0x1B4
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80A8FD8
+ ldr r7, _080A1070
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl sub_8002DF0
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080A1098
+ adds r0, r6, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ adds r3, r7, 0
+_080A1066:
+ bl sub_8002D54
+_080A106A:
+ lsls r0, 24
+ asrs r1, r0, 24
+ b _080A1098
+ .align 2, 0
+_080A1070: .4byte gUnknown_81164DC
+_080A1074:
+ movs r1, 0x1
+ negs r1, r1
+ b _080A1098
+_080A107A:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r0, [r0, r5]
+ bl sub_809CC90
+ adds r1, r0, 0
+ b _080A1098
+_080A1088:
+ ldr r0, _080A1090
+ ldr r1, _080A1094
+ bl FatalError
+ .align 2, 0
+_080A1090: .4byte gUnknown_81166B4
+_080A1094: .4byte gUnknown_81166C0
+_080A1098:
+ mov r0, r9
+ bl sub_80A2460
+ b _080A1330
+_080A10A0:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl sub_8001658
+ adds r2, r0, 0
+ mov r3, r10
+ strh r2, [r3, 0x28]
+ ldr r1, [r3, 0x4]
+ ldrb r0, [r1]
+ cmp r0, 0xD0
+ bne _080A10DE
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+_080A10C0:
+ adds r2, r1, 0
+ movs r4, 0x2
+ ldrsh r0, [r1, r4]
+ cmp r0, r3
+ bne _080A10CE
+ bl _0809F0C4
+_080A10CE:
+ adds r0, r1, 0
+ adds r0, 0x10
+ mov r5, r10
+ str r0, [r5, 0x4]
+ adds r1, r0, 0
+ ldrb r0, [r2, 0x10]
+ cmp r0, 0xD0
+ beq _080A10C0
+_080A10DE:
+ mov r1, r10
+ ldr r0, [r1, 0x4]
+ ldrb r0, [r0]
+ cmp r0, 0xD1
+ beq _080A10EC
+ bl _0809EAE0
+_080A10EC:
+ ldr r0, _080A10F4
+ strh r0, [r1, 0x28]
+ bl _0809F0C4
+ .align 2, 0
+_080A10F4: .4byte 0x0000ffff
+_080A10F8:
+ ldr r7, [sp, 0x14]
+ ldr r1, _080A11F0
+ movs r0, 0
+ str r0, [r1]
+ mov r2, r10
+ strh r0, [r2, 0x28]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ cmp r0, 0xD8
+ bgt _080A1176
+ cmp r0, 0xD6
+ blt _080A1176
+ mov r0, r10
+ adds r0, 0x50
+ ldr r1, [sp, 0x10]
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8001658
+ adds r3, r0, 0
+ mov r4, r10
+ ldr r1, [r4, 0x4]
+ ldrb r0, [r1]
+ cmp r0, 0xD0
+ bne _080A114E
+_080A112A:
+ adds r2, r1, 0
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ cmp r0, r3
+ bne _080A1136
+ ldr r7, [r2, 0xC]
+_080A1136:
+ adds r0, r1, 0
+ adds r0, 0x10
+ mov r1, r10
+ str r0, [r1, 0x4]
+ ldrh r1, [r1, 0x28]
+ adds r1, 0x1
+ mov r4, r10
+ strh r1, [r4, 0x28]
+ adds r1, r0, 0
+ ldrb r0, [r2, 0x10]
+ cmp r0, 0xD0
+ beq _080A112A
+_080A114E:
+ mov r5, r10
+ ldr r1, [r5, 0x4]
+ ldrb r0, [r1]
+ cmp r0, 0xD1
+ bne _080A1176
+_080A1158:
+ cmp r7, 0
+ bne _080A115E
+ ldr r7, [r1, 0xC]
+_080A115E:
+ mov r0, r10
+ ldr r2, [r0, 0x4]
+ adds r1, r2, 0
+ adds r1, 0x10
+ str r1, [r0, 0x4]
+ ldrh r0, [r0, 0x28]
+ adds r0, 0x1
+ mov r3, r10
+ strh r0, [r3, 0x28]
+ ldrb r0, [r2, 0x10]
+ cmp r0, 0xD1
+ beq _080A1158
+_080A1176:
+ cmp r7, 0
+ bne _080A117C
+ ldr r7, _080A11F4
+_080A117C:
+ mov r4, r10
+ ldr r5, [r4, 0x4]
+ ldrb r0, [r5]
+ cmp r0, 0xD9
+ bne _080A11B8
+ ldr r0, _080A11F8
+ mov r8, r0
+ ldr r6, _080A11F0
+ movs r1, 0x4
+ add r1, r8
+ mov r12, r1
+_080A1192:
+ ldr r1, [r6]
+ lsls r2, r1, 3
+ mov r4, r8
+ adds r3, r2, r4
+ adds r4, r5, 0
+ ldr r0, [r4, 0xC]
+ str r0, [r3]
+ add r2, r12
+ adds r1, 0x1
+ str r1, [r2]
+ str r1, [r6]
+ adds r0, r4, 0
+ adds r0, 0x10
+ mov r5, r10
+ str r0, [r5, 0x4]
+ adds r5, r0, 0
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0xD9
+ beq _080A1192
+_080A11B8:
+ ldr r0, _080A11F0
+ ldr r1, [r0]
+ cmp r1, 0
+ bgt _080A11C4
+ bl _0809EAE0
+_080A11C4:
+ ldr r3, _080A11F8
+ lsls r2, r1, 3
+ adds r1, r2, r3
+ movs r0, 0
+ str r0, [r1]
+ adds r0, r3, 0x4
+ adds r2, r0
+ add r0, sp, 0x8
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ str r0, [r2]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ subs r0, 0xD2
+ cmp r0, 0x6
+ bhi _080A1280
+ lsls r0, 2
+ ldr r1, _080A11FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A11F0: .4byte gUnknown_203B4AC
+_080A11F4: .4byte gUnknown_81166D8
+_080A11F8: .4byte gUnknown_2039D50
+_080A11FC: .4byte _080A1200
+ .align 2, 0
+_080A1200:
+ .4byte _080A121C
+ .4byte _080A121C
+ .4byte _080A123E
+ .4byte _080A1260
+ .4byte _080A121C
+ .4byte _080A123E
+ .4byte _080A1260
+_080A121C:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ movs r2, 0x1
+ negs r2, r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ adds r0, r3, 0
+ movs r3, 0
+ bl sub_809B028
+ b _080A1280
+_080A123E:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ movs r2, 0x1
+ negs r2, r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ adds r0, r3, 0
+ movs r3, 0x1
+ bl sub_809B028
+ b _080A1280
+_080A1260:
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ movs r2, 0x1
+ negs r2, r2
+ ldr r0, [sp, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ adds r0, r3, 0
+ movs r3, 0x2
+ bl sub_809B028
+_080A1280:
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_809D8EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1292
+ bl _0809EAE0
+_080A1292:
+ movs r0, 0
+ movs r1, 0xB
+ bl sub_80A87AC
+ bl _0809F0C4
+_080A129E:
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_809D8EC
+ b _080A130A
+_080A12A8:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+_080A12AC:
+ mov r2, r10
+_080A12AE:
+ strh r0, [r2, 0x2A]
+ bl _0809F0C4
+_080A12B4:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ ldr r0, [sp, 0xC]
+ subs r0, r1
+ bl OtherRandomCapped
+ add r1, sp, 0x8
+ ldrh r1, [r1, 0x2]
+ adds r1, r0
+ mov r4, r10
+ strh r1, [r4, 0x2A]
+ bl _0809F0C4
+_080A12D0:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ mov r5, r10
+ strh r0, [r5, 0x28]
+ add r0, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ mov r0, r9
+ bl sub_809D8EC
+ b _080A130A
+_080A12E6:
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ bl sub_809D9B8
+ bl _0809EAE0
+_080A12F4:
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ mov r4, r10
+ strh r0, [r4, 0x28]
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r0, r5]
+ ldrb r2, [r0, 0x1]
+ mov r0, r9
+ bl sub_809DA08
+_080A130A:
+ lsls r0, 24
+_080A130C:
+ cmp r0, 0
+ bne _080A1314
+ bl _0809EAE0
+_080A1314:
+ bl _0809F0C4
+_080A1318:
+ mov r1, r10
+ adds r1, 0x10
+ mov r0, r10
+ adds r0, 0x4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+_080A1324:
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r0, r5]
+_080A132A:
+ mov r0, r9
+ bl sub_80A242C
+_080A1330:
+ mov r1, r10
+ str r0, [r1, 0x4]
+ bl _0809EAE0
+_080A1338:
+ mov r1, r10
+ adds r1, 0x10
+ mov r0, r10
+ adds r0, 0x4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+_080A1344:
+ ldr r2, _080A1364
+ add r0, sp, 0x8
+ movs r5, 0x2
+ ldrsh r1, [r0, r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ mov r1, r10
+ str r0, [r1, 0x4]
+ str r0, [r1, 0x8]
+ bl _0809EAE0
+ .align 2, 0
+_080A1364: .4byte gUnknown_812F1F8
+_080A1368:
+ mov r1, r10
+ adds r1, 0x10
+ mov r0, r10
+ adds r0, 0x4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+_080A1374:
+ ldr r0, _080A138C
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ add r0, sp, 0x8
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080A1390
+ add r0, sp, 0x8
+ movs r3, 0x2
+ ldrsh r2, [r0, r3]
+ b _080A1396
+ .align 2, 0
+_080A138C: .4byte gUnknown_2039A34
+_080A1390:
+ mov r4, r10
+ movs r5, 0xC
+ ldrsh r2, [r4, r5]
+_080A1396:
+ adds r5, r2, 0
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ blt _080A13AA
+ add r0, sp, 0x8
+ movs r4, 0x1
+ ldrsb r4, [r0, r4]
+ b _080A13B0
+_080A13AA:
+ mov r0, r10
+ movs r4, 0xE
+ ldrsb r4, [r0, r4]
+_080A13B0:
+ add r0, sp, 0x1C
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl GroundMap_GetStationScript
+ ldr r0, [sp, 0x1C]
+ mov r1, r10
+ str r0, [r1, 0x4]
+ str r0, [r1, 0x8]
+ strh r5, [r1, 0xC]
+ strb r4, [r1, 0xE]
+ bl _0809EAE0
+_080A13CA:
+ mov r0, r10
+ adds r0, 0x50
+ add r1, sp, 0x8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A4D7C
+ ldr r4, _080A13F4
+ strh r0, [r4]
+ bl sub_809D940
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ bl GroundMap_ExecuteEnter
+ bl _0809EAE0
+ .align 2, 0
+_080A13F4: .4byte gUnknown_2039A34
+_080A13F8:
+ movs r0, 0
+ mov r4, r10
+ str r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ bl _0809EAE0
+_080A1404:
+ mov r5, r10
+ ldr r0, [r5, 0x10]
+ cmp r0, 0
+ bne _080A1410
+_080A140C:
+ movs r0, 0
+ b _080A142E
+_080A1410:
+ mov r0, r10
+ adds r0, 0x4
+ mov r1, r10
+ adds r1, 0x10
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ movs r0, 0
+ mov r5, r10
+ str r0, [r5, 0x10]
+ str r0, [r5, 0x14]
+ bl _0809EAE0
+_080A1428:
+ movs r0, 0x1
+ b _080A142E
+_080A142C:
+ movs r0, 0x4
+_080A142E:
+ add sp, 0x1BC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ExecuteScriptCommand
+
+ thumb_func_start sub_80A1440
+sub_80A1440:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A14E8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1440
+
+ thumb_func_start GroundScript_ExecuteTrigger
+GroundScript_ExecuteTrigger:
+ push {r4,r5,lr}
+ sub sp, 0xF4
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080A14C8
+ adds r0, r1
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xB
+ bne _080A14C4
+ add r5, sp, 0x10
+ ldr r1, _080A14CC
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_809D600
+ movs r0, 0
+ add r1, sp, 0x4
+ adds r2, r4, 0
+ bl sub_809D710
+ ldr r3, _080A14D0
+ adds r0, r5, 0
+ movs r1, 0
+ add r2, sp, 0x4
+ bl GroundScript_ExecutePP
+ add r1, sp, 0x44
+ add r0, sp, 0x38
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, _080A14D4
+ str r0, [r5, 0x34]
+ str r0, [r5, 0x38]
+ ldr r1, _080A14D8
+ adds r0, r5, 0
+ bl HandleAction
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r5, 0
+ bl sub_809D648
+ cmp r4, 0
+ beq _080A14DC
+_080A14C4:
+ movs r0, 0
+ b _080A14DE
+ .align 2, 0
+_080A14C8: .4byte gUnknown_812F1F8
+_080A14CC: .4byte gUnknown_8116488
+_080A14D0: .4byte gUnknown_81166F8
+_080A14D4: .4byte gUnknown_81164E4
+_080A14D8: .4byte gUnknown_8116704
+_080A14DC:
+ movs r0, 0x1
+_080A14DE:
+ add sp, 0xF4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GroundScript_ExecuteTrigger
+
+ thumb_func_start sub_80A14E8
+sub_80A14E8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, _080A1514
+ add sp, r4
+ adds r6, r0, 0
+ adds r5, r2, 0
+ adds r7, r3, 0
+ lsls r1, 24
+ lsrs r1, 24
+ subs r0, r1, 0x1
+ cmp r0, 0x49
+ bls _080A1508
+ bl _080A236A
+_080A1508:
+ lsls r0, 2
+ ldr r1, _080A1518
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080A1514: .4byte 0xfffffc80
+_080A1518: .4byte _080A151C
+ .align 2, 0
+_080A151C:
+ .4byte _080A1644
+ .4byte _080A164C
+ .4byte _080A1672
+ .4byte _080A167A
+ .4byte _080A1680
+ .4byte _080A1688
+ .4byte _080A1690
+ .4byte _080A1698
+ .4byte _080A169E
+ .4byte _080A16C6
+ .4byte _080A1730
+ .4byte _080A1756
+ .4byte _080A178C
+ .4byte _080A1792
+ .4byte _080A17C0
+ .4byte _080A17C6
+ .4byte _080A1800
+ .4byte _080A1814
+ .4byte _080A1824
+ .4byte _080A1840
+ .4byte _080A185E
+ .4byte _080A18C2
+ .4byte _080A18E2
+ .4byte _080A18F2
+ .4byte _080A1904
+ .4byte _080A197C
+ .4byte _080A1988
+ .4byte _080A19DC
+ .4byte _080A19FC
+ .4byte _080A1A0E
+ .4byte _080A1A18
+ .4byte _080A1A70
+ .4byte _080A1AF8
+ .4byte _080A1B20
+ .4byte _080A1B36
+ .4byte _080A1B58
+ .4byte _080A1B64
+ .4byte _080A1BD8
+ .4byte _080A1BE4
+ .4byte _080A1C30
+ .4byte _080A1C84
+ .4byte _080A1DEC
+ .4byte _080A1E30
+ .4byte _080A1E3C
+ .4byte _080A1ED0
+ .4byte _080A1ED6
+ .4byte _080A1F28
+ .4byte _080A1F3C
+ .4byte _080A1F44
+ .4byte _080A1F50
+ .4byte _080A1F80
+ .4byte _080A1FDA
+ .4byte _080A202C
+ .4byte _080A2054
+ .4byte _080A2060
+ .4byte _080A204A
+ .4byte _080A206C
+ .4byte _080A2076
+ .4byte _080A207C
+ .4byte _080A2082
+ .4byte _080A20D4
+ .4byte _080A20F4
+ .4byte _080A21E4
+ .4byte _080A228C
+ .4byte _080A229E
+ .4byte _080A2298
+ .4byte _080A22AE
+ .4byte _080A22CC
+ .4byte _080A22E4
+ .4byte _080A2304
+ .4byte _080A2320
+ .4byte _080A232E
+ .4byte _080A233A
+ .4byte _080A2346
+_080A1644:
+ bl sub_8098C58
+ bl _080A236A
+_080A164C:
+ bl sub_8011C34
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080A1660
+ bl Random
+ bl sub_8011C40
+_080A1660:
+ movs r0, 0x1
+ bl sub_8011C28
+ bl sub_8001064
+ bl sub_809965C
+ bl _080A236A
+_080A1672:
+ bl sub_8098CC8
+ bl _080A236A
+_080A167A:
+ bl sub_80961D8
+ b _080A1804
+_080A1680:
+ bl sub_8096028
+ bl _080A236A
+_080A1688:
+ bl sub_80963FC
+ bl _080A236A
+_080A1690:
+ bl sub_8096488
+ bl _080A236A
+_080A1698:
+ bl sub_80964B4
+ b _080A1804
+_080A169E:
+ movs r0, 0x8
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A16B0
+ bl sub_808D4B0
+ b _080A16B4
+_080A16B0:
+ bl sub_808D500
+_080A16B4:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl nullsub_104
+ negs r0, r4
+ orrs r0, r4
+ lsrs r0, 31
+ bl _080A236C
+_080A16C6:
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ beq _080A16D2
+ bl _080A236A
+_080A16D2:
+ movs r2, 0xE
+ ldrsh r0, [r6, r2]
+ add r1, sp, 0x314
+ bl sub_80A8C4C
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080A16E8
+ bl _080A236A
+_080A16E8:
+ add r0, sp, 0x314
+ ldrb r0, [r0]
+ cmp r0, 0x44
+ bne _080A16FC
+ movs r0, 0x82
+ lsls r0, 1
+ cmp r1, r0
+ bne _080A16FC
+ bl _080A203C
+_080A16FC:
+ movs r3, 0xE
+ ldrsh r0, [r6, r3]
+ bl sub_80A90C8
+ lsls r0, 16
+ ldr r1, _080A172C
+ asrs r0, 14
+ adds r0, r1
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ bl strcpy
+ movs r0, 0
+ movs r1, 0x1
+ add r2, sp, 0x4
+ bl sub_809AE90
+_080A171E:
+ lsls r0, 24
+_080A1720:
+ cmp r0, 0
+ beq _080A1726
+ b _080A1EBE
+_080A1726:
+ bl _080A236A
+ .align 2, 0
+_080A172C: .4byte gUnknown_813237C
+_080A1730:
+ movs r0, 0
+ movs r1, 0x14
+ bl sub_8001658
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2740
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80969D0
+ movs r1, 0
+ cmp r0, 0
+ ble _080A1750
+ movs r1, 0x1
+_080A1750:
+ adds r0, r1, 0
+ bl _080A236C
+_080A1756:
+ add r4, sp, 0x104
+ adds r0, r4, 0
+ bl sub_8099394
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1768
+ bl _080A236A
+_080A1768:
+ ldr r0, _080A1788
+ ldr r1, [r0]
+ ldrb r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 4
+ adds r1, r0
+ adds r1, 0x2C
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+_080A177C:
+ cmp r0, 0
+ ble _080A1782
+ b _080A1EBE
+_080A1782:
+ bl _080A236A
+ .align 2, 0
+_080A1788: .4byte gUnknown_203B480
+_080A178C:
+ bl sub_8097640
+ b _080A1804
+_080A1792:
+ movs r5, 0x11
+_080A1794:
+ lsls r4, r5, 16
+ asrs r0, r4, 16
+ bl sub_809758C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A17B6
+ lsrs r4, 16
+ movs r0, 0
+ movs r1, 0x2F
+ adds r2, r4, 0
+ bl sub_8001784
+ cmp r0, 0
+ bne _080A17B6
+ bl _080A234E
+_080A17B6:
+ adds r5, 0x1
+ cmp r5, 0x16
+ ble _080A1794
+ bl _080A236A
+_080A17C0:
+ bl sub_80964E4
+ b _080A1804
+_080A17C6:
+ movs r4, 0x8
+ ldrsh r0, [r6, r4]
+ cmp r0, 0x1
+ beq _080A17D2
+ bl _080A236A
+_080A17D2:
+ movs r5, 0xA
+ ldrsh r0, [r6, r5]
+ cmp r0, 0
+ beq _080A17DE
+ bl _080A236A
+_080A17DE:
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ beq _080A17EA
+ bl _080A236A
+_080A17EA:
+ movs r2, 0xA
+ ldrsh r4, [r6, r2]
+ movs r3, 0xE
+ ldrsh r0, [r6, r3]
+ bl sub_80A8E9C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_80A87E0
+ b _080A171E
+_080A1800:
+ bl sub_80A8D20
+_080A1804:
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bl _080A236C
+_080A1814:
+ ldr r0, _080A1820
+ ldrh r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r0, r1
+ b _080A1720
+ .align 2, 0
+_080A1820: .4byte gUnknown_20255F0
+_080A1824:
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl sub_80A8D54
+ cmp r0, 0
+ bne _080A1834
+ bl _080A236A
+_080A1834:
+ ldrh r0, [r0]
+ lsrs r0, 1
+ movs r1, 0x1
+ ands r0, r1
+ bl _080A236C
+_080A1840:
+ movs r4, 0x8
+ ldrsh r0, [r6, r4]
+ cmp r0, 0x1
+ beq _080A184C
+ bl _080A236A
+_080A184C:
+ movs r5, 0xA
+ ldrsh r0, [r6, r5]
+ bl sub_80A8BFC
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_808DB48
+ b _080A171E
+_080A185E:
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl sub_80A7AE8
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ bge _080A1872
+ bl _080A236A
+_080A1872:
+ lsls r4, r7, 8
+ ldr r1, [r6]
+ ldr r0, [r6, 0x4]
+ add r7, sp, 0x318
+ ldr r2, [r1, 0xC]
+ adds r1, r7, 0
+ bl _call_via_r2
+ add r6, sp, 0x320
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A8FD8
+ add r0, sp, 0x318
+ ldr r3, [r0]
+ subs r1, r3, r4
+ add r0, sp, 0x320
+ ldr r2, [r0]
+ cmp r1, r2
+ ble _080A189E
+ bl _080A236A
+_080A189E:
+ adds r0, r3, r4
+ cmp r0, r2
+ bge _080A18A8
+ bl _080A236A
+_080A18A8:
+ ldr r2, [r7, 0x4]
+ subs r0, r2, r4
+ ldr r1, [r6, 0x4]
+ cmp r0, r1
+ ble _080A18B6
+ bl _080A236A
+_080A18B6:
+ adds r0, r2, r4
+ cmp r0, r1
+ blt _080A18BE
+ b _080A1EBE
+_080A18BE:
+ bl _080A236A
+_080A18C2:
+ movs r0, 0x1
+ bl sub_80A8D54
+ cmp r0, 0
+ bne _080A18D0
+ bl _080A236A
+_080A18D0:
+ adds r1, r0, 0
+ adds r1, 0x4C
+ movs r2, 0
+ adds r0, 0x55
+_080A18D8:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _080A18D8
+ b _080A1EBE
+_080A18E2:
+ movs r0, 0xC
+ bl sub_80925EC
+ movs r0, 0x12
+ bl sub_80925EC
+ bl _080A236A
+_080A18F2:
+ ldr r0, _080A1900
+ movs r1, 0x3C
+_080A18F6:
+ movs r2, 0xA
+ bl sub_80A8F50
+ bl _080A236A
+ .align 2, 0
+_080A1900: .4byte gUnknown_2039D98
+_080A1904:
+ movs r0, 0x51
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80925EC
+ add r1, sp, 0x4
+ ldr r0, _080A1970
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r4,r6}
+ stm r1!, {r2,r4,r6}
+ ldm r0!, {r3,r4,r6}
+ stm r1!, {r3,r4,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r4, sp, 0x2C
+ adds r0, r4, 0
+ add r1, sp, 0x4
+ bl sub_808D144
+ adds r0, r4, 0
+ bl sub_808D1DC
+ cmp r0, 0
+ bne _080A193C
+ b _080A1EBE
+_080A193C:
+ movs r3, 0
+ ldr r1, _080A1974
+ mov r8, r1
+ lsls r6, r5, 2
+ ldr r2, _080A1978
+ adds r4, r0, 0
+ adds r4, 0x4C
+ mov r7, r8
+_080A194C:
+ adds r0, r4, r3
+ adds r1, r3, r7
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _080A194C
+_080A195A:
+ adds r0, r6, r5
+ lsls r0, 4
+ adds r0, r2
+ mov r1, r8
+ movs r2, 0xA
+ bl sub_80922B4
+_080A1968:
+ bl sub_8097848
+ bl _080A236A
+ .align 2, 0
+_080A1970: .4byte gUnknown_8116710
+_080A1974: .4byte gUnknown_2039D98
+_080A1978: .4byte gUnknown_202E2B8
+_080A197C:
+ ldr r0, _080A1984
+ movs r1, 0x53
+ b _080A18F6
+ .align 2, 0
+_080A1984: .4byte gUnknown_2039D98
+_080A1988:
+ ldr r0, _080A19D4
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80925EC
+ add r1, sp, 0x84
+ adds r2, r1, 0
+ ldr r0, _080A19D8
+ ldm r0!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r0!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldr r0, [r0]
+ str r0, [r2]
+ add r4, sp, 0xAC
+ adds r0, r4, 0
+ bl sub_808D144
+ adds r0, r4, 0
+ bl sub_808D1DC
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080A19C2
+ b _080A1EBE
+_080A19C2:
+ bl sub_8097848
+ ldrh r1, [r4]
+ movs r0, 0x2
+ orrs r0, r1
+ strh r0, [r4]
+ bl _080A236A
+ .align 2, 0
+_080A19D4: .4byte 0x00000183
+_080A19D8: .4byte gUnknown_8116738
+_080A19DC:
+ ldr r0, _080A19F8
+ movs r1, 0
+ bl sub_808D434
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _080A19EC
+ b _080A1EBE
+_080A19EC:
+ ldrh r1, [r2]
+ movs r0, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ bl _080A236A
+ .align 2, 0
+_080A19F8: .4byte 0x00000183
+_080A19FC:
+ movs r0, 0x82
+ lsls r0, 1
+_080A1A00:
+ bl sub_808D278
+ cmp r0, 0
+ bne _080A1A0A
+ b _080A1EBE
+_080A1A0A:
+ bl _080A236A
+_080A1A0E:
+ ldr r0, _080A1A14
+ movs r1, 0x7C
+ b _080A18F6
+ .align 2, 0
+_080A1A14: .4byte gUnknown_2039D98
+_080A1A18:
+ add r1, sp, 0x108
+ adds r2, r1, 0
+ ldr r0, _080A1A64
+ ldm r0!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r0!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r0!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldr r0, [r0]
+ str r0, [r2]
+ add r4, sp, 0x130
+ adds r0, r4, 0
+ bl sub_808D144
+ adds r0, r4, 0
+ bl sub_808D1DC
+ cmp r0, 0
+ bne _080A1A42
+ b _080A1EBE
+_080A1A42:
+ movs r3, 0
+ ldr r4, _080A1A68
+ mov r8, r4
+ lsls r6, r5, 2
+ ldr r2, _080A1A6C
+ adds r4, r0, 0
+ adds r4, 0x4C
+ mov r7, r8
+_080A1A52:
+ adds r0, r4, r3
+ adds r1, r3, r7
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _080A1A52
+ b _080A195A
+ .align 2, 0
+_080A1A64: .4byte gUnknown_8116760
+_080A1A68: .4byte gUnknown_2039D98
+_080A1A6C: .4byte gUnknown_202E2B8
+_080A1A70:
+ movs r0, 0x9E
+ movs r1, 0x1
+ bl sub_80026E8
+ movs r0, 0x91
+ movs r1, 0
+ bl sub_808D434
+ cmp r0, 0
+ bne _080A1A9A
+ ldr r3, _080A1AEC
+ str r0, [sp]
+ movs r0, 0x91
+ movs r1, 0
+ movs r2, 0
+ bl sub_808D2E8
+ cmp r0, 0
+ beq _080A1A9A
+ bl sub_8097848
+_080A1A9A:
+ movs r0, 0x92
+ movs r1, 0
+ bl sub_808D434
+ cmp r0, 0
+ bne _080A1ABC
+ ldr r3, _080A1AF0
+ str r0, [sp]
+ movs r0, 0x92
+ movs r1, 0
+ movs r2, 0
+ bl sub_808D2E8
+ cmp r0, 0
+ beq _080A1ABC
+ bl sub_8097848
+_080A1ABC:
+ movs r0, 0x90
+ movs r1, 0
+ bl sub_808D434
+ cmp r0, 0
+ beq _080A1ACC
+ bl _080A236A
+_080A1ACC:
+ ldr r3, _080A1AF4
+ str r0, [sp]
+ movs r0, 0x90
+ movs r1, 0
+ movs r2, 0
+ bl sub_808D2E8
+ cmp r0, 0
+ bne _080A1AE2
+ bl _080A236A
+_080A1AE2:
+ bl sub_8097848
+ bl _080A236A
+ .align 2, 0
+_080A1AEC: .4byte gUnknown_8116788
+_080A1AF0: .4byte gUnknown_811678C
+_080A1AF4: .4byte gUnknown_8116790
+_080A1AF8:
+ movs r0, 0x90
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1B08
+ bl _080A236A
+_080A1B08:
+ movs r0, 0x91
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1B18
+ bl _080A236A
+_080A1B18:
+ movs r0, 0x92
+ bl sub_808E734
+ b _080A171E
+_080A1B20:
+ bl sub_808D33C
+ ldrh r0, [r0, 0x8]
+ subs r0, 0x90
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _080A1B32
+ b _080A1EBE
+_080A1B32:
+ bl _080A236A
+_080A1B36:
+ bl sub_808D33C
+ cmp r0, 0
+ beq _080A1B4A
+ movs r5, 0x8
+ ldrsh r1, [r0, r5]
+ ldr r0, _080A1B54
+ cmp r1, r0
+ bne _080A1B4A
+ b _080A203C
+_080A1B4A:
+ ldr r0, _080A1B54
+ bl sub_8098134
+ b _080A171E
+ .align 2, 0
+_080A1B54: .4byte 0x00000113
+_080A1B58:
+ ldr r0, _080A1B60
+ movs r1, 0x79
+ b _080A18F6
+ .align 2, 0
+_080A1B60: .4byte gUnknown_2039D98
+_080A1B64:
+ ldr r4, _080A1BCC
+ adds r0, r4, 0
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1B88
+ adds r0, r4, 0
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80925EC
+_080A1B88:
+ add r1, sp, 0x188
+ adds r2, r1, 0
+ ldr r0, _080A1BD0
+ ldm r0!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r0!, {r4-r6}
+ stm r2!, {r4-r6}
+ ldr r0, [r0]
+ str r0, [r2]
+ add r4, sp, 0x1B0
+ adds r0, r4, 0
+ bl sub_808D144
+ adds r0, r4, 0
+ bl sub_808D1DC
+ cmp r0, 0
+ bne _080A1BB2
+ b _080A1EBE
+_080A1BB2:
+ movs r2, 0
+ adds r3, r0, 0
+ adds r3, 0x4C
+ ldr r4, _080A1BD4
+_080A1BBA:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _080A1BBA
+ b _080A1968
+ .align 2, 0
+_080A1BCC: .4byte 0x00000199
+_080A1BD0: .4byte gUnknown_8116794
+_080A1BD4: .4byte gUnknown_2039D98
+_080A1BD8:
+ ldr r0, _080A1BE0
+ movs r1, 0x7A
+ b _080A18F6
+ .align 2, 0
+_080A1BE0: .4byte gUnknown_2039D98
+_080A1BE4:
+ add r1, sp, 0x208
+ adds r2, r1, 0
+ ldr r0, _080A1C28
+ ldm r0!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r0!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldr r0, [r0]
+ str r0, [r2]
+ add r4, sp, 0x230
+ adds r0, r4, 0
+ bl sub_808D144
+ adds r0, r4, 0
+ bl sub_808D1DC
+ cmp r0, 0
+ bne _080A1C0E
+ b _080A1EBE
+_080A1C0E:
+ movs r2, 0
+ adds r3, r0, 0
+ adds r3, 0x4C
+ ldr r4, _080A1C2C
+_080A1C16:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _080A1C16
+ b _080A1968
+ .align 2, 0
+_080A1C28: .4byte gUnknown_81167BC
+_080A1C2C: .4byte gUnknown_2039D98
+_080A1C30:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _080A1C70
+ ldr r0, _080A1C64
+ ldrb r4, [r0, 0x2]
+ adds r0, r4, 0
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1C4A
+ b _080A236A
+_080A1C4A:
+ ldr r0, _080A1C68
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x50
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ ldr r0, _080A1C6C
+ cmp r2, r0
+ bls _080A1C5E
+ b _080A236A
+_080A1C5E:
+ adds r0, r2, 0x1
+ strh r0, [r1]
+ b _080A236A
+ .align 2, 0
+_080A1C64: .4byte gUnknown_81167E4
+_080A1C68: .4byte gUnknown_203B460
+_080A1C6C: .4byte 0x000003e6
+_080A1C70:
+ ldr r0, _080A1C80
+ ldrb r0, [r0, 0x2]
+ movs r1, 0
+ bl sub_809124C
+ bl sub_80910B4
+ b _080A236A
+ .align 2, 0
+_080A1C80: .4byte gUnknown_81167E4
+_080A1C84:
+ movs r0, 0xD1
+ lsls r0, 1
+ bl RandomCapped
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r5, r0, 16
+ movs r0, 0x20
+ bl RandomCapped
+ adds r4, r0, 0
+ movs r7, 0xD2
+ lsls r7, 1
+ movs r6, 0
+ ldr r0, _080A1DE0
+ mov r8, r0
+_080A1CA4:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, r8
+ ble _080A1CB0
+ movs r5, 0x1
+_080A1CB0:
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080A1CCC
+ cmp r6, 0
+ bne _080A1CBC
+ b _080A2360
+_080A1CBC:
+ cmp r4, r6
+ blt _080A1CCC
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r4, r0, 0
+ movs r7, 0xD2
+ lsls r7, 1
+_080A1CCC:
+ adds r0, r5, 0
+ subs r0, 0x90
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _080A1CA4
+ ldr r0, _080A1DE4
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0xB
+ cmp r5, r0
+ beq _080A1CA4
+ subs r0, 0xD
+ cmp r5, r0
+ beq _080A1CA4
+ subs r0, 0x88
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x67
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x23
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x3
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ cmp r5, r8
+ beq _080A1CA4
+ cmp r5, 0x96
+ beq _080A1CA4
+ subs r0, 0x5
+ cmp r5, r0
+ beq _080A1CA4
+ cmp r5, 0x97
+ beq _080A1CA4
+ subs r0, 0x5
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ subs r0, 0x8C
+ cmp r5, r0
+ beq _080A1CA4
+ subs r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x2
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x5
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x82
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, 0x1
+ cmp r5, r0
+ beq _080A1CA4
+ subs r0, 0x83
+ cmp r5, r0
+ beq _080A1CA4
+ adds r0, r5, 0
+ bl sub_80981DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1CA4
+ adds r0, r5, 0
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1D9E
+ adds r0, r5, 0
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1CA4
+ adds r0, r5, 0
+ bl sub_808D278
+ cmp r0, 0
+ beq _080A1CA4
+_080A1D9E:
+ adds r6, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ blt _080A1DA8
+ b _080A1CA4
+_080A1DA8:
+ movs r0, 0
+ movs r1, 0x1F
+ adds r2, r5, 0
+ bl sub_80018D8
+ ldr r4, _080A1DE8
+ adds r0, r5, 0
+ bl sub_808DBA8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8092578
+ adds r0, r5, 0
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1EBE
+ b _080A203C
+ .align 2, 0
+_080A1DE0: .4byte 0x000001a3
+_080A1DE4: .4byte 0x0000019b
+_080A1DE8: .4byte gUnknown_202E628
+_080A1DEC:
+ movs r0, 0
+ movs r1, 0x1F
+ bl sub_8001658
+ lsls r0, 16
+ asrs r5, r0, 16
+ ldr r4, _080A1E2C
+ adds r0, r5, 0
+ bl sub_808DBA8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8092578
+ cmp r5, 0
+ bne _080A1E14
+ b _080A236A
+_080A1E14:
+ adds r0, r5, 0
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1EBE
+ b _080A203C
+ .align 2, 0
+_080A1E2C: .4byte gUnknown_202E628
+_080A1E30:
+ ldr r0, _080A1E38
+ movs r1, 0x20
+ b _080A18F6
+ .align 2, 0
+_080A1E38: .4byte gUnknown_2039D98
+_080A1E3C:
+ cmp r5, 0
+ bne _080A1E42
+ b _080A2360
+_080A1E42:
+ movs r0, 0
+ movs r1, 0x1F
+ bl sub_8001658
+ lsls r0, 16
+ asrs r5, r0, 16
+ adds r6, r5, 0
+ ldr r4, _080A1EC4
+ adds r0, r5, 0
+ bl sub_808DBA8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8092578
+ cmp r5, 0
+ bne _080A1E6C
+ b _080A236A
+_080A1E6C:
+ adds r0, r5, 0
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1E8E
+ adds r0, r5, 0
+ bl sub_808DBA8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80925EC
+_080A1E8E:
+ ldr r3, _080A1EC8
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_808D2E8
+ cmp r0, 0
+ bne _080A1EA4
+ b _080A236A
+_080A1EA4:
+ movs r2, 0
+ adds r3, r0, 0
+ adds r3, 0x4C
+ ldr r4, _080A1ECC
+_080A1EAC:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _080A1EAC
+ bl sub_8097848
+_080A1EBE:
+ movs r0, 0x1
+ b _080A236C
+ .align 2, 0
+_080A1EC4: .4byte gUnknown_202E628
+_080A1EC8: .4byte gUnknown_81167E8
+_080A1ECC: .4byte gUnknown_2039D98
+_080A1ED0:
+ bl sub_809211C
+ b _080A177C
+_080A1ED6:
+ bl sub_8092178
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_809211C
+ cmp r0, 0
+ bgt _080A1EE8
+ b _080A236A
+_080A1EE8:
+ bl sub_8092158
+ bl sub_8092178
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ bl sub_80921A8
+ adds r1, r0, 0
+ ldr r4, _080A1F30
+ adds r0, r4, 0
+ bl strcpy
+ adds r0, r5, 0
+ bl sub_80921A8
+ adds r1, r0, 0
+ adds r4, 0x50
+ adds r0, r4, 0
+ bl strcpy
+ movs r1, 0x1
+ negs r1, r1
+ ldr r2, _080A1F34
+ movs r0, 0
+ bl sub_809AE90
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1EBE
+_080A1F28:
+ ldr r0, _080A1F38
+ bl sub_80913A0
+ b _080A236A
+ .align 2, 0
+_080A1F30: .4byte gUnknown_202DE58
+_080A1F34: .4byte gUnknown_81167EC
+_080A1F38: .4byte 0x00002710
+_080A1F3C:
+ ldr r0, _080A1F40
+ b _080A1A00
+ .align 2, 0
+_080A1F40: .4byte 0x00000133
+_080A1F44:
+ ldr r0, _080A1F4C
+ movs r1, 0x52
+ b _080A18F6
+ .align 2, 0
+_080A1F4C: .4byte gUnknown_2039D98
+_080A1F50:
+ add r1, sp, 0x288
+ adds r2, r1, 0
+ ldr r0, _080A1F7C
+ ldm r0!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r0!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldr r0, [r0]
+ str r0, [r2]
+ add r4, sp, 0x2B0
+ adds r0, r4, 0
+ bl sub_808D144
+ adds r0, r4, 0
+ bl sub_808D1DC
+ cmp r0, 0
+ beq _080A1EBE
+ b _080A1968
+ .align 2, 0
+_080A1F7C: .4byte gUnknown_811681C
+_080A1F80:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x12
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1F94
+ b _080A236A
+_080A1F94:
+ movs r0, 0
+ movs r1, 0xF
+ bl sub_8001658
+ cmp r0, 0x4
+ bne _080A1FA2
+ b _080A236A
+_080A1FA2:
+ movs r0, 0
+ movs r1, 0x42
+ movs r2, 0
+ bl sub_8001784
+ cmp r0, 0
+ ble _080A1FB2
+ b _080A236A
+_080A1FB2:
+ movs r0, 0x80
+ lsls r0, 1
+ bl OtherRandomCapped
+ cmp r0, 0
+ bne _080A1FCC
+ movs r0, 0
+ movs r1, 0x42
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_800199C
+ b _080A1EBE
+_080A1FCC:
+ movs r0, 0
+ movs r1, 0x42
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_800199C
+ b _080A236A
+_080A1FDA:
+ ldr r6, _080A200C
+ ldr r7, _080A2010
+ movs r5, 0x2
+_080A1FE0:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _080A2018
+ ldrb r4, [r6, 0x2]
+ adds r0, r4, 0
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A2024
+ ldr r0, _080A2014
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x50
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, r7
+ bhi _080A2024
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080A2024
+ .align 2, 0
+_080A200C: .4byte gUnknown_8116844
+_080A2010: .4byte 0x000003e6
+_080A2014: .4byte gUnknown_203B460
+_080A2018:
+ ldrb r0, [r6, 0x2]
+ movs r1, 0
+ bl sub_809124C
+ bl sub_80910B4
+_080A2024:
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080A1FE0
+ b _080A236A
+_080A202C:
+ bl sub_808D33C
+ cmp r0, 0
+ beq _080A2040
+ movs r4, 0x8
+ ldrsh r0, [r0, r4]
+ cmp r0, 0x71
+ bne _080A2040
+_080A203C:
+ movs r0, 0x2
+ b _080A236C
+_080A2040:
+ movs r0, 0x71
+ bl sub_8098134
+ bl _080A171E
+_080A204A:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80A56A0
+ b _080A236A
+_080A2054:
+ add r0, sp, 0x328
+ str r5, [r0]
+ str r7, [r0, 0x4]
+ bl sub_80A56F0
+ b _080A236A
+_080A2060:
+ add r0, sp, 0x330
+ str r5, [r0]
+ str r7, [r0, 0x4]
+ bl sub_80A5704
+ b _080A236A
+_080A206C:
+ lsls r0, r5, 16
+ lsrs r0, 16
+ bl sub_809C6CC
+ b _080A236A
+_080A2076:
+ bl sub_809C6EC
+ b _080A236A
+_080A207C:
+ bl sub_809C760
+ b _080A236A
+_080A2082:
+ movs r0, 0
+ movs r4, 0x80
+ lsls r4, 9
+_080A2088:
+ movs r1, 0x80
+ lsls r1, 15
+ bl sub_80A86C8
+ adds r0, r4, 0
+ movs r5, 0x80
+ lsls r5, 9
+ adds r4, r5
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _080A2088
+ movs r0, 0
+ adds r4, r5, 0
+_080A20A2:
+ movs r1, 0x80
+ lsls r1, 15
+ bl sub_80AC1B0
+ adds r0, r4, 0
+ movs r6, 0x80
+ lsls r6, 9
+ adds r4, r6
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080A20A2
+ movs r0, 0
+ adds r4, r6, 0
+_080A20BC:
+ movs r1, 0x80
+ lsls r1, 15
+ bl sub_80AD0C8
+ adds r0, r4, 0
+ movs r1, 0x80
+ lsls r1, 9
+ adds r4, r1
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080A20BC
+ b _080A236A
+_080A20D4:
+ add r0, sp, 0x338
+ str r5, [r0]
+ adds r4, r0, 0
+ str r7, [r4, 0x4]
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_80A5984
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_80A59A0
+ b _080A236A
+_080A20F4:
+ add r1, sp, 0x308
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ strb r2, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ strb r0, [r1, 0x3]
+ str r2, [r1, 0x4]
+ ldr r0, _080A21D8
+ ldr r2, _080A21DC
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ lsls r2, r5, 16
+ asrs r2, 16
+ lsls r3, r7, 24
+ asrs r3, 24
+ bl GroundEffect_Add
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080A2128
+ b _080A236A
+_080A2128:
+ bl sub_80AD158
+ adds r7, r0, 0
+ add r4, sp, 0x340
+ add r5, sp, 0x348
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A579C
+ ldr r0, [r4, 0x4]
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [r4, 0x4]
+ ldr r0, [r5, 0x4]
+ adds r0, r1
+ str r0, [r5, 0x4]
+ ldr r1, [r6]
+ ldr r0, [r6, 0x4]
+ add r6, sp, 0x350
+ ldr r2, [r1, 0xC]
+ adds r1, r6, 0
+ bl _call_via_r2
+ add r1, sp, 0x350
+ ldr r2, [r1]
+ add r0, sp, 0x340
+ ldr r0, [r0]
+ cmp r2, r0
+ blt _080A216E
+ add r0, sp, 0x348
+ ldr r0, [r0]
+ cmp r2, r0
+ blt _080A2170
+ subs r0, 0x1
+_080A216E:
+ str r0, [r1]
+_080A2170:
+ ldr r1, [r6, 0x4]
+ ldr r0, [r4, 0x4]
+ cmp r1, r0
+ blt _080A2180
+ ldr r0, [r5, 0x4]
+ cmp r1, r0
+ blt _080A2182
+ subs r0, 0x1
+_080A2180:
+ str r0, [r6, 0x4]
+_080A2182:
+ add r1, sp, 0x340
+ ldr r0, [r1]
+ ldr r2, _080A21E0
+ adds r0, r2
+ str r0, [r1]
+ ldr r0, [r4, 0x4]
+ adds r0, r2
+ str r0, [r4, 0x4]
+ add r1, sp, 0x348
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1]
+ ldr r0, [r5, 0x4]
+ adds r0, r2
+ str r0, [r5, 0x4]
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r3, [r1, 0x20]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl _call_via_r3
+ ldr r1, [r7]
+ ldr r0, [r7, 0x4]
+ ldr r2, [r1, 0x24]
+ adds r1, r6, 0
+ bl _call_via_r2
+ movs r0, 0
+ movs r1, 0
+ add r2, sp, 0x358
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r2, [r7]
+ ldr r0, [r7, 0x4]
+ add r1, sp, 0x358
+ ldr r2, [r2, 0x48]
+ bl _call_via_r2
+ b _080A1EBE
+ .align 2, 0
+_080A21D8: .4byte gUnknown_812F1F8
+_080A21DC: .4byte 0x00001310
+_080A21E0: .4byte 0xfffffc00
+_080A21E4:
+ ldr r0, _080A2288
+ ldrh r4, [r0]
+ ldrh r0, [r0, 0x2]
+ movs r1, 0xC
+ ands r0, r1
+ cmp r0, 0
+ beq _080A21F4
+ b _080A236A
+_080A21F4:
+ adds r0, r4, 0
+ bl sub_809CFE8
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080A2282
+ movs r2, 0x80
+ lsls r2, 1
+ add r0, sp, 0x360
+ bl sub_8002BB8
+ add r0, sp, 0x360
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ add r2, sp, 0x368
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x2
+ ands r4, r0
+ cmp r4, 0
+ beq _080A2226
+ movs r0, 0x4
+_080A2226:
+ cmp r0, 0
+ beq _080A2282
+ movs r3, 0xDA
+ lsls r3, 2
+ add r3, sp
+ mov r9, r3
+ add r7, sp, 0x370
+ add r4, sp, 0x378
+ mov r8, r0
+_080A2238:
+ ldr r1, [r6]
+ ldr r0, [r6, 0x4]
+ ldr r2, [r1, 0x48]
+ mov r1, r9
+ bl _call_via_r2
+ cmp r0, 0
+ beq _080A2276
+ movs r5, 0
+ str r5, [r7]
+ mov r1, r9
+ ldr r0, [r1, 0x4]
+ str r0, [r7, 0x4]
+ ldr r1, [r6]
+ ldr r0, [r6, 0x4]
+ ldr r2, [r1, 0x48]
+ adds r1, r7, 0
+ bl _call_via_r2
+ cmp r0, 0
+ beq _080A2276
+ mov r2, r9
+ ldr r0, [r2]
+ str r0, [r4]
+ str r5, [r4, 0x4]
+ ldr r1, [r6]
+ ldr r0, [r6, 0x4]
+ ldr r2, [r1, 0x48]
+ adds r1, r4, 0
+ bl _call_via_r2
+_080A2276:
+ movs r3, 0x1
+ negs r3, r3
+ add r8, r3
+ mov r5, r8
+ cmp r5, 0
+ bne _080A2238
+_080A2282:
+ movs r0, 0x1
+ negs r0, r0
+ b _080A236C
+ .align 2, 0
+_080A2288: .4byte gUnknown_20255F0
+_080A228C:
+ negs r0, r5
+ orrs r0, r5
+ lsrs r0, 31
+ bl sub_80993C0
+ b _080A236A
+_080A2298:
+ movs r0, 0x1
+ bl sub_8011C28
+_080A229E:
+ adds r0, r5, 0
+ bl sub_8098F00
+ lsls r0, r5, 16
+ lsrs r0, 16
+ bl sub_80118C4
+ b _080A236A
+_080A22AE:
+ bl sub_800C068
+ ldr r1, _080A22C4
+ strh r0, [r1]
+ lsls r0, 16
+ ldr r1, _080A22C8
+ cmp r0, r1
+ beq _080A22C0
+ b _080A1EBE
+_080A22C0:
+ b _080A236A
+ .align 2, 0
+_080A22C4: .4byte gUnknown_2039DA8
+_080A22C8: .4byte 0x03e70000
+_080A22CC:
+ ldr r4, _080A22DC
+ ldrh r0, [r4]
+ ldr r5, _080A22E0
+ cmp r0, r5
+ beq _080A236A
+ bl sub_80118F0
+ b _080A2312
+ .align 2, 0
+_080A22DC: .4byte gUnknown_2039DA8
+_080A22E0: .4byte 0x000003e7
+_080A22E4:
+ ldr r4, _080A22FC
+ ldrh r0, [r4]
+ ldr r6, _080A2300
+ cmp r0, r6
+ beq _080A236A
+ lsls r1, r5, 16
+ lsrs r1, 16
+ bl sub_8011900
+ strh r6, [r4]
+ b _080A1EBE
+ .align 2, 0
+_080A22FC: .4byte gUnknown_2039DA8
+_080A2300: .4byte 0x000003e7
+_080A2304:
+ ldr r4, _080A2318
+ ldrh r0, [r4]
+ ldr r5, _080A231C
+ cmp r0, r5
+ beq _080A236A
+ bl sub_8011914
+_080A2312:
+ strh r5, [r4]
+ b _080A1EBE
+ .align 2, 0
+_080A2318: .4byte gUnknown_2039DA8
+_080A231C: .4byte 0x000003e7
+_080A2320:
+ lsls r0, r5, 16
+ lsrs r0, 16
+ lsls r1, r7, 16
+ lsrs r1, 16
+ bl sub_80997F4
+ b _080A236A
+_080A232E:
+ lsls r1, r5, 16
+ lsrs r1, 16
+ movs r0, 0x1E
+ bl sub_80997F4
+ b _080A236A
+_080A233A:
+ lsls r1, r5, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl GroundSprite_ExtendPaletteAdd
+ b _080A236A
+_080A2346:
+ movs r0, 0
+ bl GroundSprite_ExtendPaletteDelete
+ b _080A236A
+_080A234E:
+ movs r0, 0
+ movs r1, 0x2F
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_800199C
+ adds r0, r5, 0
+ subs r0, 0x10
+ b _080A236C
+_080A2360:
+ movs r0, 0
+ movs r1, 0x1F
+ movs r2, 0
+ bl sub_80018D8
+_080A236A:
+ movs r0, 0
+_080A236C:
+ movs r3, 0xE0
+ lsls r3, 2
+ add sp, r3
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A14E8
+
+ thumb_func_start GroundScript_Unlock
+GroundScript_Unlock:
+ push {r4-r7,lr}
+ ldr r1, _080A241C
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080A2414
+ movs r0, 0
+ strb r0, [r1]
+ movs r6, 0
+_080A2390:
+ ldr r0, _080A2420
+ adds r7, r6, r0
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _080A240E
+ movs r0, 0x1
+ ldr r1, _080A2424
+ adds r2, r6, 0
+ bl Log
+ lsls r5, r6, 16
+ asrs r5, 16
+ adds r0, r5, 0
+ bl sub_80A4D2C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_80A8B1C
+ orrs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_80AC320
+ orrs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_80AD238
+ orrs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080A2428
+ adds r5, r6, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080A240C
+ cmp r4, 0
+ beq _080A240E
+ movs r0, 0x80
+ adds r4, r6, 0
+ orrs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80A4D2C
+ adds r0, r4, 0
+ bl sub_80A8B1C
+ adds r0, r4, 0
+ bl sub_80AC320
+ adds r0, r4, 0
+ bl sub_80AD238
+ movs r0, 0
+ strb r0, [r5]
+_080A240C:
+ strb r0, [r7]
+_080A240E:
+ adds r6, 0x1
+ cmp r6, 0x80
+ ble _080A2390
+_080A2414:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A241C: .4byte gUnknown_2039A36
+_080A2420: .4byte gUnknown_2039A38
+_080A2424: .4byte gUnknown_8116848
+_080A2428: .4byte gUnknown_2039AC0
+ thumb_func_end GroundScript_Unlock
+
+ thumb_func_start sub_80A242C
+sub_80A242C:
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r4, r1, 0
+ ldr r0, [r0, 0x2C]
+ adds r2, r0, 0
+ adds r2, 0x10
+ mov r3, sp
+_080A243A:
+ mov r1, sp
+ adds r0, r2, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r2, 0x10
+ ldrb r0, [r3]
+ cmp r0, 0xF4
+ bne _080A243A
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r4, r0
+ bne _080A243A
+ adds r0, r2, 0
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A242C
+
+ thumb_func_start sub_80A2460
+sub_80A2460:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r5, r0, 0
+ mov r8, r1
+ ldr r6, [r5, 0x28]
+ mov r4, sp
+_080A2470:
+ mov r0, sp
+ adds r1, r6, 0
+ ldm r1!, {r2,r3,r7}
+ stm r0!, {r2,r3,r7}
+ ldr r1, [r1]
+ str r1, [r0]
+ ldrb r0, [r4]
+ cmp r0, 0xCC
+ bne _080A249E
+ ldr r1, [sp, 0x4]
+ mov r0, r8
+ movs r2, 0x2
+ bl FlagJudge
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24F0
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_80A242C
+ b _080A24F4
+_080A249E:
+ cmp r0, 0xCD
+ bne _080A24BE
+ ldr r1, [sp, 0x4]
+ ldrb r2, [r4, 0x1]
+ mov r0, r8
+ bl FlagJudge
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24F0
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ adds r0, r5, 0
+ bl sub_80A242C
+ b _080A24F4
+_080A24BE:
+ cmp r0, 0xCE
+ bne _080A24EC
+ ldr r1, [sp, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ adds r0, 0x74
+ bl sub_8001658
+ adds r1, r0, 0
+ ldrb r2, [r4, 0x1]
+ mov r0, r8
+ bl FlagJudge
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A24F0
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ adds r0, r5, 0
+ bl sub_80A242C
+ b _080A24F4
+_080A24EC:
+ adds r0, r6, 0
+ b _080A24F4
+_080A24F0:
+ adds r6, 0x10
+ b _080A2470
+_080A24F4:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2460
+
+ thumb_func_start sub_80A2500
+sub_80A2500:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080A2524
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ bl sub_80A8BBC
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_809AB4C
+_080A2524:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2500
+
+ thumb_func_start sub_80A252C
+sub_80A252C:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080A2550
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ bl sub_80A8BBC
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_809ABB4
+_080A2550:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A252C
+
+ thumb_func_start sub_80A2558
+sub_80A2558:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080A257C
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ bl sub_80A8BBC
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_809AC18
+_080A257C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2558
+
+ thumb_func_start sub_80A2584
+sub_80A2584:
+ push {lr}
+ lsls r1, 16
+ asrs r1, 16
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_809ABB4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2584
+
+ thumb_func_start sub_80A2598
+sub_80A2598:
+ push {lr}
+ lsls r1, 16
+ asrs r1, 16
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_809AC18
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A2598
+
+ thumb_func_start sub_80A25AC
+sub_80A25AC:
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_8098F88
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A25C2
+ adds r0, r4, 0
+ b _080A2602
+_080A25C2:
+ cmp r4, 0x32
+ bne _080A25CA
+ movs r0, 0x32
+ b _080A2602
+_080A25CA:
+ movs r0, 0xC
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A25E0
+ ldr r0, _080A25DC
+ b _080A2602
+ .align 2, 0
+_080A25DC: .4byte 0x000003e7
+_080A25E0:
+ movs r0, 0xD
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A25F0
+ movs r0, 0x13
+ b _080A2602
+_080A25F0:
+ cmp r4, 0x1
+ bne _080A2600
+ movs r0, 0
+ movs r1, 0x28
+ bl sub_8001658
+ movs r0, 0x1
+ b _080A2602
+_080A2600:
+ adds r0, r5, 0
+_080A2602:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A25AC
+
+ thumb_func_start sub_80A2608
+sub_80A2608:
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A261C
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_080A261C: .4byte gUnknown_81168A8
+ thumb_func_end sub_80A2608
+
+ thumb_func_start sub_80A2620
+sub_80A2620:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A26B8
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A2640
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2640: .4byte gUnknown_81168A8
+ thumb_func_end sub_80A2620
+
+ thumb_func_start sub_80A2644
+sub_80A2644:
+ ldr r1, _080A2650
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080A2650: .4byte gUnknown_8116F24
+ thumb_func_end sub_80A2644
+
+ thumb_func_start sub_80A2654
+sub_80A2654:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2608
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2654
+
+ thumb_func_start sub_80A2668
+sub_80A2668:
+ push {lr}
+ lsls r0, 16
+ ldr r2, _080A267C
+ adds r1, r0, r2
+ lsrs r0, r1, 16
+ cmp r0, 0x18
+ bls _080A2680
+ movs r0, 0x1
+ negs r0, r0
+ b _080A2682
+ .align 2, 0
+_080A267C: .4byte 0xffc90000
+_080A2680:
+ asrs r0, r1, 16
+_080A2682:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2668
+
+ thumb_func_start sub_80A2688
+sub_80A2688:
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r3, r1, 0
+ adds r2, r1, 0
+ subs r2, 0x4B
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bhi _080A26A0
+ adds r0, r2, 0
+ b _080A26B4
+_080A26A0:
+ cmp r1, 0x2F
+ bne _080A26A8
+ movs r0, 0x17
+ b _080A26B4
+_080A26A8:
+ cmp r3, 0x30
+ beq _080A26B2
+ movs r0, 0x1
+ negs r0, r0
+ b _080A26B4
+_080A26B2:
+ movs r0, 0x18
+_080A26B4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A2688
+
+ thumb_func_start sub_80A26B8
+sub_80A26B8:
+ lsls r0, 16
+ ldr r1, _080A26C8
+ asrs r0, 15
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_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/data/data_80B9BB8.s b/data/data_80B9BB8.s
index eb4932c..2f3012b 100644
--- a/data/data_80B9BB8.s
+++ b/data/data_80B9BB8.s
@@ -1501,7 +1501,7 @@ gUnknown_80DDB60: @ 80DDB60
.incbin "baserom.gba", 0xDDB60, 0x48
.include "data/text/wonder_mail_1.inc"
-
+
.global gUnknown_80DED44
gUnknown_80DED44: @ 80DED44
.incbin "baserom.gba", 0xDED44, 0x4
@@ -10022,8 +10022,8 @@ gUnknown_8109CE4: @ 8109CE4
gUnknown_8109CF4: @ 8109CF4
.incbin "baserom.gba", 0x109CF4, 0x3C
- .global gUnknown_8109D30
-gUnknown_8109D30: @ 8109D30
+ .global gDungeons
+gDungeons: @ 8109D30
.incbin "baserom.gba", 0x109D30, 0x620
.global gUnknown_810A350
@@ -10294,8 +10294,8 @@ gUnknown_810E02C: @ 810E02C
gUnknown_810E074: @ 810E074
.incbin "baserom.gba", 0x10E074, 0x39B4
- .global gUnknown_8111A28
-gUnknown_8111A28: @ 8111A28
+ .global gDungeonNames
+gDungeonNames: @ 8111A28
.incbin "baserom.gba", 0x111A28, 0x80C
.global gUnknown_8112234
diff --git a/include/dungeon.h b/include/dungeon.h
new file mode 100644
index 0000000..7a9c864
--- /dev/null
+++ b/include/dungeon.h
@@ -0,0 +1,31 @@
+#ifndef GUARD_DUNGEON_H
+#define GUARD_DUNGEON_H
+
+struct DungeonName
+{
+ const u8 *name1;
+ const u8 *name2;
+};
+
+struct Dungeon
+{
+ u8 stairDirection;
+ u8 unk1;
+ u8 unk2;
+ s8 unk3;
+ u8 maxItemCount;
+ u8 maxPartySize;
+ u8 levelCondition;
+ u8 moneyCondition;
+ u8 unk8;
+ u8 unk9;
+ u8 saveBeforeEntering; //whether to quicksave or not before entering
+ u8 unkB;
+ s16 unkC;
+ s16 unkE;
+};
+
+extern struct Dungeon gDungeons[];
+extern struct DungeonName gDungeonNames[];
+
+#endif //GUARD_DUNGEON_H
diff --git a/ld_script.txt b/ld_script.txt
index de750b1..ef1810e 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -69,6 +69,8 @@ SECTIONS {
asm/save.o(.text);
src/save1.o(.text);
asm/code_8012A18.o(.text);
+ src/dungeon.o(.text);
+ asm/code_809017C.o(.text);
asm/m4a_1.o(.text);
src/m4a_2.o(.text);
asm/m4a_3.o(.text);
diff --git a/src/dungeon.c b/src/dungeon.c
new file mode 100644
index 0000000..effe1c3
--- /dev/null
+++ b/src/dungeon.c
@@ -0,0 +1,67 @@
+#include "global.h"
+#include "dungeon.h"
+
+const u8 *GetDungeonName1(u8 dungeon)
+{
+ return gDungeonNames[dungeon].name1;
+}
+
+const u8 *GetDungeonName2(u8 dungeon)
+{
+ return gDungeonNames[dungeon].name2;
+}
+
+u8 GetStairDirection(u8 dungeon)
+{
+ return gDungeons[dungeon].stairDirection;
+}
+
+s16 GetUnkC(u8 dungeon)
+{
+ return gDungeons[dungeon].unkC;
+}
+
+u8 GetSaveBeforeEntering(u8 dungeon)
+{
+ return gDungeons[dungeon].saveBeforeEntering;
+}
+
+u8 GetUnk9(u8 dungeon)
+{
+ return gDungeons[dungeon].unk9;
+}
+
+u8 GetLevelCondition(u8 dungeon)
+{
+ return gDungeons[dungeon].levelCondition;
+}
+
+u8 GetMaxItemCount(u8 dungeon)
+{
+ return gDungeons[dungeon].maxItemCount;
+}
+
+u8 GetMoneyCondition(u8 dungeon)
+{
+ return gDungeons[dungeon].moneyCondition;
+}
+
+s8 GetUnk3(u8 dungeon)
+{
+ return gDungeons[dungeon].unk3;
+}
+
+u8 sub_8090148(u8 dungeon)
+{
+ return gDungeons[dungeon].unk2;
+}
+
+u8 sub_8090158(u8 dungeon)
+{
+ return gDungeons[dungeon].unk8;
+}
+
+s16 sub_8090168(u8 dungeon)
+{
+ return gDungeons[dungeon].unkE;
+}