diff options
-rw-r--r-- | asm/code.s | 4 | ||||
-rw-r--r-- | asm/code_8012A18.s | 63408 | ||||
-rw-r--r-- | asm/code_809017C.s | 63219 | ||||
-rw-r--r-- | data/data_80B9BB8.s | 10 | ||||
-rw-r--r-- | include/dungeon.h | 31 | ||||
-rwxr-xr-x | ld_script.txt | 2 | ||||
-rw-r--r-- | src/dungeon.c | 67 |
7 files changed, 63344 insertions, 63397 deletions
@@ -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; +} |