#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text 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 .align 2,0