.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80BFE18 sub_80BFE18: @ 80BFE18 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 mov r9, r2 cmp r1, 0 beq _080BFE92 movs r0, 0x1F mov r10, r0 mov r8, r1 _080BFE38: ldrh r1, [r6] movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r5, r1, 21 mov r2, r10 ands r5, r2 lsrs r4, r1, 26 ands r4, r2 lsls r0, 8 movs r1, 0x64 bl __divsi3 mov r1, r9 muls r1, r0 adds r0, r1, 0 asrs r7, r0, 8 lsls r0, r5, 8 movs r1, 0x64 bl __divsi3 mov r2, r9 muls r2, r0 adds r0, r2, 0 asrs r5, r0, 8 lsls r0, r4, 8 movs r1, 0x64 bl __divsi3 mov r1, r9 muls r1, r0 adds r0, r1, 0 asrs r4, r0, 8 lsls r0, r4, 10 lsls r1, r5, 5 orrs r0, r1 orrs r0, r7 strh r0, [r6] adds r6, 0x2 movs r2, 0x1 negs r2, r2 add r8, r2 mov r0, r8 cmp r0, 0 bne _080BFE38 _080BFE92: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BFE18 thumb_func_start sub_80BFEA0 sub_80BFEA0: @ 80BFEA0 push {r4,lr} sub sp, 0x20 ldr r4, _080BFED8 @ =gUnknown_83EF31C adds r0, r4, 0 mov r1, sp movs r2, 0x10 bl CpuSet mov r0, sp movs r1, 0x10 movs r2, 0x5F bl sub_80BFE18 mov r0, sp movs r1, 0x20 movs r2, 0x20 bl LoadPalette adds r4, 0x1E adds r0, r4, 0 movs r1, 0x2F movs r2, 0x2 bl LoadPalette add sp, 0x20 pop {r4} pop {r0} bx r0 .align 2, 0 _080BFED8: .4byte gUnknown_83EF31C thumb_func_end sub_80BFEA0 thumb_func_start sub_80BFEDC sub_80BFEDC: @ 80BFEDC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080BFEFC @ =gUnknown_20399D4 ldr r0, _080BFF00 @ =0x000047c0 bl AllocZeroed adds r2, r0, 0 str r2, [r4] cmp r2, 0 bne _080BFF08 ldr r0, _080BFF04 @ =CB2_ReturnToField bl SetMainCallback2 b _080BFF38 .align 2, 0 _080BFEFC: .4byte gUnknown_20399D4 _080BFF00: .4byte 0x000047c0 _080BFF04: .4byte CB2_ReturnToField _080BFF08: ldr r1, _080BFF40 @ =gUnknown_2031DE0 movs r0, 0x1 strb r0, [r1] ldr r1, _080BFF44 @ =0x00004796 adds r0, r2, r1 movs r1, 0 strb r5, [r0] ldr r0, [r4] ldr r2, _080BFF48 @ =0x000047a0 adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r0, r2 strb r1, [r0] bl sub_80BFFD0 ldr r0, _080BFF4C @ =sub_80C0100 bl SetMainCallback2 _080BFF38: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080BFF40: .4byte gUnknown_2031DE0 _080BFF44: .4byte 0x00004796 _080BFF48: .4byte 0x000047a0 _080BFF4C: .4byte sub_80C0100 thumb_func_end sub_80BFEDC thumb_func_start sub_80BFF50 sub_80BFF50: @ 80BFF50 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080BFF70 @ =gUnknown_20399D4 ldr r0, _080BFF74 @ =0x000047c0 bl AllocZeroed adds r2, r0, 0 str r2, [r4] cmp r2, 0 bne _080BFF7C ldr r0, _080BFF78 @ =CB2_ReturnToField bl SetMainCallback2 b _080BFFB4 .align 2, 0 _080BFF70: .4byte gUnknown_20399D4 _080BFF74: .4byte 0x000047c0 _080BFF78: .4byte CB2_ReturnToField _080BFF7C: ldr r1, _080BFFBC @ =gUnknown_2031DE0 movs r0, 0x1 strb r0, [r1] ldr r1, _080BFFC0 @ =0x00004796 adds r0, r2, r1 movs r1, 0 strb r5, [r0] ldr r0, [r4] ldr r2, _080BFFC4 @ =0x000047a0 adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r0, r2 strb r1, [r0] ldr r0, [r4] adds r2, 0x4 adds r0, r2 strb r1, [r0] ldr r0, [r4] ldr r1, _080BFFC8 @ =0x000047bc adds r0, r1 str r6, [r0] bl sub_80BFFD0 ldr r0, _080BFFCC @ =sub_80C0100 bl SetMainCallback2 _080BFFB4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080BFFBC: .4byte gUnknown_2031DE0 _080BFFC0: .4byte 0x00004796 _080BFFC4: .4byte 0x000047a0 _080BFFC8: .4byte 0x000047bc _080BFFCC: .4byte sub_80C0100 thumb_func_end sub_80BFF50 thumb_func_start sub_80BFFD0 sub_80BFFD0: @ 80BFFD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, _080C0000 @ =gUnknown_20399D4 ldr r2, [r1] ldr r3, _080C0004 @ =0x00004796 adds r0, r2, r3 ldrb r0, [r0] mov r8, r1 cmp r0, 0 blt _080BFFF2 cmp r0, 0x1 ble _080BFFF2 cmp r0, 0x2 beq _080C0010 _080BFFF2: mov r4, r8 ldr r0, [r4] ldr r1, _080C0008 @ =0x000047b8 adds r0, r1 ldr r1, _080C000C @ =sub_80C04E4 str r1, [r0] b _080C0018 .align 2, 0 _080C0000: .4byte gUnknown_20399D4 _080C0004: .4byte 0x00004796 _080C0008: .4byte 0x000047b8 _080C000C: .4byte sub_80C04E4 _080C0010: ldr r3, _080C009C @ =0x000047b8 adds r1, r2, r3 ldr r0, _080C00A0 @ =sub_80C4F08 str r0, [r1] _080C0018: movs r3, 0 ldr r6, _080C00A4 @ =gUnknown_20399D4 ldr r5, _080C00A8 @ =0x00004797 ldr r4, _080C00AC @ =gUnknown_83F1B00 ldr r2, _080C00B0 @ =0x00004796 _080C0022: ldr r0, [r6] adds r1, r0, r5 adds r1, r3 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r3, r0 adds r0, r4 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _080C0022 ldr r0, _080C00B4 @ =0x00000845 bl FlagGet lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080C0058 ldr r0, _080C00A4 @ =gUnknown_20399D4 ldr r0, [r0] ldr r4, _080C00A8 @ =0x00004797 adds r0, r4 strb r1, [r0] _080C0058: movs r7, 0 movs r1, 0 ldr r2, _080C00B8 @ =gMapHeader ldrb r0, [r2, 0x14] ldr r3, _080C00A4 @ =gUnknown_20399D4 mov r8, r3 cmp r0, 0x8E bls _080C00D8 ldr r4, _080C00BC @ =gUnknown_83F1AA4 mov r12, r4 mov r10, r12 mov r9, r2 _080C0070: movs r3, 0 lsls r0, r1, 4 subs r0, r1 lsls r2, r0, 1 mov r4, r10 adds r0, r2, r4 ldrb r0, [r0] adds r5, r1, 0x1 cmp r0, 0xC5 beq _080C00D0 ldr r6, _080C00BC @ =gUnknown_83F1AA4 mov r0, r9 ldrb r1, [r0, 0x14] lsls r4, r5, 24 _080C008C: adds r0, r3, r2 adds r0, r6 ldrb r0, [r0] cmp r1, r0 bne _080C00C0 lsrs r7, r4, 24 b _080C00D0 .align 2, 0 _080C009C: .4byte 0x000047b8 _080C00A0: .4byte sub_80C4F08 _080C00A4: .4byte gUnknown_20399D4 _080C00A8: .4byte 0x00004797 _080C00AC: .4byte gUnknown_83F1B00 _080C00B0: .4byte 0x00004796 _080C00B4: .4byte 0x00000845 _080C00B8: .4byte gMapHeader _080C00BC: .4byte gUnknown_83F1AA4 _080C00C0: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r3, r2 add r0, r12 ldrb r0, [r0] cmp r0, 0xC5 bne _080C008C _080C00D0: lsls r0, r5, 24 lsrs r1, r0, 24 cmp r7, 0 beq _080C0070 _080C00D8: mov r1, r8 ldr r0, [r1] ldr r2, _080C00F8 @ =0x0000479b adds r0, r2 strb r7, [r0] ldr r0, [r1] ldr r3, _080C00FC @ =0x0000479c adds r0, r3 strb r7, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C00F8: .4byte 0x0000479b _080C00FC: .4byte 0x0000479c thumb_func_end sub_80BFFD0 thumb_func_start sub_80C0100 sub_80C0100: @ 80C0100 push {r4,lr} sub sp, 0x8 ldr r0, _080C011C @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C0120 @ =0x000047a4 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _080C0202 lsls r0, 2 ldr r1, _080C0124 @ =_080C0128 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C011C: .4byte gUnknown_20399D4 _080C0120: .4byte 0x000047a4 _080C0124: .4byte _080C0128 .align 2, 0 _080C0128: .4byte _080C014C .4byte _080C0152 .4byte _080C0158 .4byte _080C015E .4byte _080C016A .4byte _080C0180 .4byte _080C01D4 .4byte _080C01E0 .4byte _080C01EC _080C014C: bl sub_80C08E0 b _080C021A _080C0152: bl sub_80C0904 b _080C021A _080C0158: bl sub_80C0A6C b _080C021A _080C015E: bl sub_80C0238 lsls r0, 24 cmp r0, 0 beq _080C0228 b _080C021A _080C016A: movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 b _080C01BA _080C0180: ldr r4, _080C01C4 @ =gUnknown_20399D4 ldr r1, [r4] ldr r2, _080C01C8 @ =0x0000479b adds r0, r1, r2 ldrb r0, [r0] lsls r2, r0, 2 adds r2, r0 lsls r0, r2, 4 subs r0, r2 lsls r0, 4 adds r0, 0x26 adds r1, r0 movs r0, 0 bl sub_80C0CC8 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r4] ldr r2, _080C01CC @ =0x00004796 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080C021A ldr r0, _080C01D0 @ =0x000012e6 adds r1, r0 movs r0, 0x1 bl sub_80C0CC8 _080C01BA: movs r0, 0x1 bl CopyBgTilemapBufferToVram b _080C021A .align 2, 0 _080C01C4: .4byte gUnknown_20399D4 _080C01C8: .4byte 0x0000479b _080C01CC: .4byte 0x00004796 _080C01D0: .4byte 0x000012e6 _080C01D4: bl sub_80C0B18 movs r0, 0 bl PutWindowTilemap b _080C021A _080C01E0: bl sub_80C0BB0 movs r0, 0x1 bl PutWindowTilemap b _080C021A _080C01EC: movs r0, 0x2 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C021A movs r0, 0x1 bl sub_80C0A88 b _080C021A _080C0202: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl sub_80C03E8 bl sub_80C08F4 _080C021A: ldr r0, _080C0230 @ =gUnknown_20399D4 ldr r1, [r0] ldr r2, _080C0234 @ =0x000047a4 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080C0228: add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _080C0230: .4byte gUnknown_20399D4 _080C0234: .4byte 0x000047a4 thumb_func_end sub_80C0100 thumb_func_start sub_80C0238 sub_80C0238: @ 80C0238 push {r4,lr} sub sp, 0x4 ldr r0, _080C0258 @ =gUnknown_20399D4 ldr r1, [r0] ldr r2, _080C025C @ =0x000047a8 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x8 bls _080C024C b _080C03B0 _080C024C: lsls r0, 2 ldr r1, _080C0260 @ =_080C0264 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0258: .4byte gUnknown_20399D4 _080C025C: .4byte 0x000047a8 _080C0260: .4byte _080C0264 .align 2, 0 _080C0264: .4byte _080C0288 .4byte _080C0298 .4byte _080C02FC .4byte _080C0302 .4byte _080C0340 .4byte _080C034E .4byte _080C0364 .4byte _080C037C .4byte _080C0394 _080C0288: ldr r0, _080C0294 @ =gUnknown_83EF23C movs r1, 0xC0 movs r2, 0x20 bl LoadPalette b _080C03C8 .align 2, 0 _080C0294: .4byte gUnknown_83EF23C _080C0298: ldr r0, _080C02EC @ =gUnknown_83EF2DC movs r1, 0 movs r2, 0xA0 bl LoadPalette bl sub_80BFEA0 ldr r0, _080C02F0 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C02F4 @ =0x00004796 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080C02B6 b _080C03C8 _080C02B6: ldr r4, _080C02F8 @ =gUnknown_83EF25A adds r0, r4, 0 movs r1, 0 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x10 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x20 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x30 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x40 movs r2, 0x2 bl LoadPalette b _080C03C8 .align 2, 0 _080C02EC: .4byte gUnknown_83EF2DC _080C02F0: .4byte gUnknown_20399D4 _080C02F4: .4byte 0x00004796 _080C02F8: .4byte gUnknown_83EF25A _080C02FC: bl ResetTempTileDataBuffers b _080C03C8 _080C0302: ldr r1, _080C0330 @ =gUnknown_83EF61C movs r4, 0 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl DecompressAndCopyTileDataToVram ldr r0, _080C0334 @ =gUnknown_20399D4 ldr r0, [r0] ldr r2, _080C0338 @ =0x00004796 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080C03C8 ldr r1, _080C033C @ =gUnknown_83F1978 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl DecompressAndCopyTileDataToVram b _080C03C8 .align 2, 0 _080C0330: .4byte gUnknown_83EF61C _080C0334: .4byte gUnknown_20399D4 _080C0338: .4byte 0x00004796 _080C033C: .4byte gUnknown_83F1978 _080C0340: bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C03C8 b _080C03D6 _080C034E: ldr r0, _080C035C @ =gUnknown_83F089C ldr r1, _080C0360 @ =gUnknown_20399D4 ldr r1, [r1] adds r1, 0x26 bl LZ77UnCompWram b _080C03C8 .align 2, 0 _080C035C: .4byte gUnknown_83F089C _080C0360: .4byte gUnknown_20399D4 _080C0364: ldr r0, _080C0370 @ =gUnknown_83F0AFC ldr r1, _080C0374 @ =gUnknown_20399D4 ldr r1, [r1] ldr r2, _080C0378 @ =0x000004d6 b _080C039C .align 2, 0 _080C0370: .4byte gUnknown_83F0AFC _080C0374: .4byte gUnknown_20399D4 _080C0378: .4byte 0x000004d6 _080C037C: ldr r0, _080C0388 @ =gUnknown_83F0C0C ldr r1, _080C038C @ =gUnknown_20399D4 ldr r1, [r1] ldr r2, _080C0390 @ =0x00000986 b _080C039C .align 2, 0 _080C0388: .4byte gUnknown_83F0C0C _080C038C: .4byte gUnknown_20399D4 _080C0390: .4byte 0x00000986 _080C0394: ldr r0, _080C03A4 @ =gUnknown_83F0CF0 ldr r1, _080C03A8 @ =gUnknown_20399D4 ldr r1, [r1] ldr r2, _080C03AC @ =0x00000e36 _080C039C: adds r1, r2 bl LZ77UnCompWram b _080C03C8 .align 2, 0 _080C03A4: .4byte gUnknown_83F0CF0 _080C03A8: .4byte gUnknown_20399D4 _080C03AC: .4byte 0x00000e36 _080C03B0: ldr r0, _080C03C0 @ =gUnknown_83F19A0 ldr r2, _080C03C4 @ =0x000012e6 adds r1, r2 bl LZ77UnCompWram movs r0, 0x1 b _080C03D8 .align 2, 0 _080C03C0: .4byte gUnknown_83F19A0 _080C03C4: .4byte 0x000012e6 _080C03C8: ldr r0, _080C03E0 @ =gUnknown_20399D4 ldr r1, [r0] ldr r0, _080C03E4 @ =0x000047a8 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080C03D6: movs r0, 0 _080C03D8: add sp, 0x4 pop {r4} pop {r1} bx r1 .align 2, 0 _080C03E0: .4byte gUnknown_20399D4 _080C03E4: .4byte 0x000047a8 thumb_func_end sub_80C0238 thumb_func_start sub_80C03E8 sub_80C03E8: @ 80C03E8 push {lr} ldr r0, _080C0404 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C0408 @ =0x000047b8 adds r0, r1 ldr r0, [r0] movs r1, 0 bl CreateTask ldr r0, _080C040C @ =sub_80C08B4 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080C0404: .4byte gUnknown_20399D4 _080C0408: .4byte 0x000047b8 _080C040C: .4byte sub_80C08B4 thumb_func_end sub_80C03E8 thumb_func_start sub_80C0410 sub_80C0410: @ 80C0410 push {r4,r5,lr} bl sub_80C0E20 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl sub_80C3514 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 bl sub_80C3508 adds r3, r0, 0 lsls r3, 16 asrs r3, 16 adds r0, r5, 0 movs r1, 0 adds r2, r4, 0 bl sub_80C4164 lsls r0, 24 lsrs r0, 24 cmp r0, 0x63 beq _080C0446 movs r0, 0x1 b _080C0448 _080C0446: movs r0, 0 _080C0448: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C0410 thumb_func_start sub_80C0450 sub_80C0450: @ 80C0450 push {lr} bl sub_80C0410 cmp r0, 0 beq _080C04E0 movs r0, 0 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C0474 movs r0, 0 bl sub_80C3AC8 lsls r0, 24 cmp r0, 0 bne _080C048E _080C0474: movs r0, 0x1 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C0494 movs r0, 0x1 bl sub_80C3AC8 lsls r0, 24 cmp r0, 0 beq _080C0494 _080C048E: movs r0, 0x65 bl PlaySE _080C0494: bl sub_80C3508 lsls r0, 16 lsrs r0, 16 cmp r0, 0x15 bne _080C04C2 bl sub_80C3514 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bne _080C04C2 movs r0, 0 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C04C2 movs r0, 0xE1 bl PlaySE b _080C04E0 _080C04C2: bl sub_80C3508 lsls r0, 16 lsrs r0, 16 cmp r0, 0x15 bne _080C04E0 bl sub_80C3514 lsls r0, 16 lsrs r0, 16 cmp r0, 0xD bne _080C04E0 movs r0, 0xE1 bl PlaySE _080C04E0: pop {r0} bx r0 thumb_func_end sub_80C0450 thumb_func_start sub_80C04E4 sub_80C04E4: @ 80C04E4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C0508 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C050C @ =0x000047a0 adds r0, r1 ldrb r0, [r0] cmp r0, 0x5 bls _080C04FC b _080C07B0 _080C04FC: lsls r0, 2 ldr r1, _080C0510 @ =_080C0514 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0508: .4byte gUnknown_20399D4 _080C050C: .4byte 0x000047a0 _080C0510: .4byte _080C0514 .align 2, 0 _080C0514: .4byte _080C052C .4byte _080C0560 .4byte _080C05E0 .4byte _080C0624 .4byte _080C0760 .4byte _080C0788 _080C052C: bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r4, _080C0558 @ =gUnknown_20399D4 ldr r1, [r4] ldr r2, _080C055C @ =0x000047b8 adds r1, r2 ldr r2, [r1] adds r1, r5, 0 bl sub_80C4398 movs r0, 0 movs r1, 0 bl sub_80C3008 movs r0, 0x1 movs r1, 0x1 bl sub_80C41D8 ldr r1, [r4] b _080C079C .align 2, 0 _080C0558: .4byte gUnknown_20399D4 _080C055C: .4byte 0x000047b8 _080C0560: ldr r0, _080C057C @ =gUnknown_20399D4 ldr r1, [r0] ldr r2, _080C0580 @ =0x00004799 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 bne _080C0584 adds r2, 0x1F adds r0, r1, r2 ldr r1, [r0] adds r0, r5, 0 bl sub_80C2208 b _080C0798 .align 2, 0 _080C057C: .4byte gUnknown_20399D4 _080C0580: .4byte 0x00004799 _080C0584: movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg movs r0, 0x1 bl ShowBg ldr r0, _080C05D8 @ =gUnknown_8418EB5 bl sub_80C4E18 ldr r0, _080C05DC @ =gUnknown_8418E8B bl sub_80C4E74 movs r0, 0 bl sub_80C4ED0 movs r0, 0 bl sub_80C4324 movs r0, 0 bl sub_80C3154 bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0 bl sub_80C48BC bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0 bl sub_80C4960 b _080C0798 .align 2, 0 _080C05D8: .4byte gUnknown_8418EB5 _080C05DC: .4byte gUnknown_8418E8B _080C05E0: ldr r0, _080C0618 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C05EE b _080C07C2 _080C05EE: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 beq _080C05FA b _080C07C2 _080C05FA: bl sub_80C0B18 movs r0, 0 bl PutWindowTilemap bl sub_80C0BB0 movs r0, 0x1 bl PutWindowTilemap ldr r0, _080C061C @ =gUnknown_20399D4 ldr r1, [r0] ldr r2, _080C0620 @ =0x000047a0 adds r1, r2 b _080C07A0 .align 2, 0 _080C0618: .4byte gPaletteFade _080C061C: .4byte gUnknown_20399D4 _080C0620: .4byte 0x000047a0 _080C0624: bl sub_80C3400 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x5 bls _080C0634 b _080C07C2 _080C0634: lsls r0, 2 ldr r1, _080C0640 @ =_080C0644 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C0640: .4byte _080C0644 .align 2, 0 _080C0644: .4byte _080C065C .4byte _080C07C2 .4byte _080C0662 .4byte _080C070C .4byte _080C0740 .4byte _080C0798 _080C065C: bl sub_80C3178 b _080C07C2 _080C0662: bl sub_80C0B18 bl sub_80C0BB0 bl sub_80C0B9C bl sub_80C0450 bl sub_80C3580 lsls r0, 16 lsrs r0, 16 cmp r0, 0xC5 beq _080C06A8 movs r0, 0x1 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C068E b _080C07C2 _080C068E: movs r0, 0x1 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C0700 ldr r0, _080C06A4 @ =gUnknown_8418E8D bl sub_80C4E74 b _080C07C2 .align 2, 0 _080C06A4: .4byte gUnknown_8418E8D _080C06A8: bl sub_80C3508 lsls r0, 16 lsrs r0, 16 cmp r0, 0x15 bne _080C06DC bl sub_80C3514 lsls r0, 16 lsrs r0, 16 cmp r0, 0xB bne _080C06DC movs r0, 0 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C06DC ldr r0, _080C06D8 @ =gUnknown_8418EA7 bl sub_80C4E74 b _080C07C2 .align 2, 0 _080C06D8: .4byte gUnknown_8418EA7 _080C06DC: bl sub_80C3508 lsls r0, 16 lsrs r0, 16 cmp r0, 0x15 bne _080C0700 bl sub_80C3514 lsls r0, 16 lsrs r0, 16 cmp r0, 0xD bne _080C0700 ldr r0, _080C06FC @ =gUnknown_8418E95 bl sub_80C4E74 b _080C07C2 .align 2, 0 _080C06FC: .4byte gUnknown_8418E95 _080C0700: ldr r0, _080C0708 @ =gUnknown_8418E8B bl sub_80C4E74 b _080C07C2 .align 2, 0 _080C0708: .4byte gUnknown_8418E8B _080C070C: movs r0, 0x1 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C07C2 ldr r0, _080C0734 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C0738 @ =0x00004798 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080C07C2 ldr r2, _080C073C @ =sub_80C07F8 movs r0, 0 adds r1, r5, 0 bl sub_80C195C b _080C07C2 .align 2, 0 _080C0734: .4byte gUnknown_20399D4 _080C0738: .4byte 0x00004798 _080C073C: .4byte sub_80C07F8 _080C0740: ldr r0, _080C0754 @ =gUnknown_20399D4 ldr r0, [r0] ldr r2, _080C0758 @ =0x0000479b adds r0, r2 ldrb r0, [r0] ldr r2, _080C075C @ =sub_80C07F8 adds r1, r5, 0 bl sub_80C0E70 b _080C07C2 .align 2, 0 _080C0754: .4byte gUnknown_20399D4 _080C0758: .4byte 0x0000479b _080C075C: .4byte sub_80C07F8 _080C0760: movs r0, 0x2 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C0776 adds r0, r5, 0 bl sub_80C2C1C b _080C0798 _080C0776: ldr r0, _080C0780 @ =gUnknown_20399D4 ldr r1, [r0] ldr r2, _080C0784 @ =0x000047a0 adds r1, r2 b _080C07A0 .align 2, 0 _080C0780: .4byte gUnknown_20399D4 _080C0784: .4byte 0x000047a0 _080C0788: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _080C0798: ldr r0, _080C07A8 @ =gUnknown_20399D4 ldr r1, [r0] _080C079C: ldr r0, _080C07AC @ =0x000047a0 adds r1, r0 _080C07A0: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C07C2 .align 2, 0 _080C07A8: .4byte gUnknown_20399D4 _080C07AC: .4byte 0x000047a0 _080C07B0: ldr r0, _080C07CC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C07C2 adds r0, r5, 0 bl sub_80C0820 _080C07C2: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C07CC: .4byte gPaletteFade thumb_func_end sub_80C04E4 thumb_func_start sub_80C07D0 sub_80C07D0: @ 80C07D0 ldr r1, _080C07DC @ =gUnknown_20399D4 ldr r1, [r1] ldr r2, _080C07E0 @ =0x000047b8 adds r1, r2 str r0, [r1] bx lr .align 2, 0 _080C07DC: .4byte gUnknown_20399D4 _080C07E0: .4byte 0x000047b8 thumb_func_end sub_80C07D0 thumb_func_start sub_80C07E4 sub_80C07E4: @ 80C07E4 ldr r0, _080C07F0 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C07F4 @ =0x000047b8 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _080C07F0: .4byte gUnknown_20399D4 _080C07F4: .4byte 0x000047b8 thumb_func_end sub_80C07E4 thumb_func_start sub_80C07F8 sub_80C07F8: @ 80C07F8 lsls r0, 24 lsrs r0, 24 ldr r2, _080C0814 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C0818 @ =gUnknown_20399D4 ldr r0, [r0] ldr r2, _080C081C @ =0x000047b8 adds r0, r2 ldr r0, [r0] str r0, [r1] bx lr .align 2, 0 _080C0814: .4byte gTasks _080C0818: .4byte gUnknown_20399D4 _080C081C: .4byte 0x000047b8 thumb_func_end sub_80C07F8 thumb_func_start sub_80C0820 sub_80C0820: @ 80C0820 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C0838 bl sub_80C25BC _080C0838: bl sub_80C4A04 bl sub_80C3188 bl sub_80C4348 bl sub_80C4D30 adds r0, r4, 0 bl DestroyTask bl FreeAllWindowBuffers ldr r0, _080C086C @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C0870 @ =0x000047bc adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _080C0878 ldr r0, _080C0874 @ =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 b _080C087C .align 2, 0 _080C086C: .4byte gUnknown_20399D4 _080C0870: .4byte 0x000047bc _080C0874: .4byte gMain _080C0878: bl SetMainCallback2 _080C087C: ldr r4, _080C0894 @ =gUnknown_20399D4 ldr r0, [r4] cmp r0, 0 beq _080C088C bl Free movs r0, 0 str r0, [r4] _080C088C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C0894: .4byte gUnknown_20399D4 thumb_func_end sub_80C0820 thumb_func_start sub_80C0898 sub_80C0898: @ 80C0898 push {r4,lr} ldr r4, _080C08B0 @ =gUnknown_20399D4 ldr r0, [r4] cmp r0, 0 beq _080C08AA bl Free movs r0, 0 str r0, [r4] _080C08AA: pop {r4} pop {r0} bx r0 .align 2, 0 _080C08B0: .4byte gUnknown_20399D4 thumb_func_end sub_80C0898 thumb_func_start sub_80C08B4 sub_80C08B4: @ 80C08B4 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80C08B4 thumb_func_start sub_80C08CC sub_80C08CC: @ 80C08CC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80C08CC thumb_func_start sub_80C08E0 sub_80C08E0: @ 80C08E0 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback pop {r0} bx r0 thumb_func_end sub_80C08E0 thumb_func_start sub_80C08F4 sub_80C08F4: @ 80C08F4 push {lr} ldr r0, _080C0900 @ =sub_80C08CC bl SetVBlankCallback pop {r0} bx r0 .align 2, 0 _080C0900: .4byte sub_80C08CC thumb_func_end sub_80C08F4 thumb_func_start sub_80C0904 sub_80C0904: @ 80C0904 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, _080C0A18 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _080C0A1C @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080C092A: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _080C092A strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _080C0A18 @ =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _080C0A20 @ =gUnknown_83F1A50 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r0, _080C0A24 @ =gUnknown_83F1A60 bl InitWindows bl DeactivateAllTextPrinters ldr r1, _080C0A28 @ =0x00006040 movs r0, 0 bl SetGpuReg bl sub_80C0A2C bl sub_80C0AB8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C0A18: .4byte 0x040000d4 _080C0A1C: .4byte 0x81000800 _080C0A20: .4byte gUnknown_83F1A50 _080C0A24: .4byte gUnknown_83F1A60 _080C0A28: .4byte 0x00006040 thumb_func_end sub_80C0904 thumb_func_start sub_80C0A2C sub_80C0A2C: @ 80C0A2C push {r4,lr} ldr r4, _080C0A5C @ =gUnknown_20399D4 ldr r1, [r4] ldr r0, _080C0A60 @ =0x00001796 adds r1, r0 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, _080C0A64 @ =0x00002796 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, _080C0A68 @ =0x00003796 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer pop {r4} pop {r0} bx r0 .align 2, 0 _080C0A5C: .4byte gUnknown_20399D4 _080C0A60: .4byte 0x00001796 _080C0A64: .4byte 0x00002796 _080C0A68: .4byte 0x00003796 thumb_func_end sub_80C0A2C thumb_func_start sub_80C0A6C sub_80C0A6C: @ 80C0A6C push {lr} bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80C0A6C thumb_func_start sub_80C0A88 sub_80C0A88: @ 80C0A88 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080C0A98 cmp r0, 0x1 beq _080C0AA6 b _080C0AB2 _080C0A98: movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg b _080C0AB2 _080C0AA6: movs r0, 0 bl HideBg movs r0, 0x3 bl HideBg _080C0AB2: pop {r0} bx r0 thumb_func_end sub_80C0A88 thumb_func_start sub_80C0AB8 sub_80C0AB8: @ 80C0AB8 push {r4,lr} bl sub_80C4BE4 movs r0, 0 movs r1, 0x11 movs r2, 0xC0 bl sub_80C4C2C movs r0, 0x6 bl sub_80C4C48 movs r0, 0x39 movs r1, 0x39 bl sub_80C4C74 movs r0, 0x1B bl sub_80C4C88 ldr r4, _080C0B14 @ =gUnknown_83F1B0C movs r0, 0 adds r1, r4, 0 bl sub_80C4CF0 adds r4, 0x8 movs r0, 0x1 adds r1, r4, 0 bl sub_80C4CF0 movs r0, 0 movs r1, 0 bl sub_80C4C9C bl sub_80C3580 lsls r0, 16 lsrs r0, 16 cmp r0, 0xC5 beq _080C0B0C movs r0, 0x1 movs r1, 0 bl sub_80C4C9C _080C0B0C: pop {r4} pop {r0} bx r0 .align 2, 0 _080C0B14: .4byte gUnknown_83F1B0C thumb_func_end sub_80C0AB8 thumb_func_start sub_80C0B18 sub_80C0B18: @ 80C0B18 push {r4,r5,lr} sub sp, 0xC movs r0, 0 bl ClearWindowTilemap movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer bl sub_80C3520 lsls r0, 16 lsrs r0, 16 cmp r0, 0xC5 bne _080C0B44 ldr r1, _080C0B40 @ =gUnknown_83F1B1C movs r0, 0 bl sub_80C4CF0 b _080C0B88 .align 2, 0 _080C0B40: .4byte gUnknown_83F1B1C _080C0B44: ldr r5, _080C0B90 @ =gUnknown_20399D4 ldr r4, [r5] bl sub_80C3520 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 bl sub_80C4D78 ldr r0, _080C0B94 @ =gUnknown_83F1A90 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldr r0, [r5] str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl AddTextPrinterParameterized3 movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x2 bl CopyWindowToVram ldr r1, _080C0B98 @ =gUnknown_83F1B0C movs r0, 0 bl sub_80C4CF0 _080C0B88: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C0B90: .4byte gUnknown_20399D4 _080C0B94: .4byte gUnknown_83F1A90 _080C0B98: .4byte gUnknown_83F1B0C thumb_func_end sub_80C0B18 thumb_func_start sub_80C0B9C sub_80C0B9C: @ 80C0B9C push {lr} ldr r1, _080C0BAC @ =gUnknown_83F1B14 movs r0, 0x1 bl sub_80C4CF0 pop {r0} bx r0 .align 2, 0 _080C0BAC: .4byte gUnknown_83F1B14 thumb_func_end sub_80C0B9C thumb_func_start sub_80C0BB0 sub_80C0BB0: @ 80C0BB0 push {r4-r6,lr} sub sp, 0xC ldr r5, _080C0C84 @ =gUnknown_20399D4 ldr r1, [r5] ldr r2, _080C0C88 @ =0x000047ac adds r0, r1, r2 movs r6, 0 strh r6, [r0] ldr r3, _080C0C8C @ =0x000047ae adds r2, r1, r3 movs r0, 0x18 strh r0, [r2] ldr r0, _080C0C90 @ =0x000047b0 adds r1, r0 movs r0, 0x20 strh r0, [r1] movs r0, 0x1 movs r1, 0x1 bl sub_80C4C9C movs r0, 0x1 bl ClearWindowTilemap bl sub_80C3580 lsls r0, 16 lsrs r0, 16 cmp r0, 0xC5 beq _080C0C7A adds r4, r0, 0 subs r4, 0x58 lsls r4, 16 lsrs r4, 16 movs r0, 0x1 movs r1, 0 bl sub_80C4C9C ldr r0, [r5] ldr r1, _080C0C88 @ =0x000047ac adds r0, r1 movs r1, 0x1 strh r1, [r0] ldr r0, _080C0C94 @ =gUnknown_83F1CAC lsls r4, 2 adds r4, r0 ldr r4, [r4] adds r0, r4, 0 bl StringLength ldr r2, [r5] ldr r3, _080C0C98 @ =0x000047aa adds r1, r2, r3 strh r0, [r1] ldrh r1, [r1] lsls r0, r1, 2 adds r0, r1 lsls r0, 1 adds r0, 0x32 adds r3, 0x4 adds r1, r2, r3 strh r0, [r1] ldr r0, _080C0C90 @ =0x000047b0 adds r2, r0 movs r0, 0x30 strh r0, [r2] movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r5] adds r0, 0x13 adds r1, r4, 0 bl StringCopy ldr r4, _080C0C9C @ =gUnknown_83F1A9C movs r0, 0x1 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 22 subs r0, 0x8 adds r0, r4 ldr r0, [r0] str r0, [sp] str r6, [sp, 0x4] ldr r0, [r5] adds r0, 0x13 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0xC movs r3, 0x2 bl AddTextPrinterParameterized3 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram _080C0C7A: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C0C84: .4byte gUnknown_20399D4 _080C0C88: .4byte 0x000047ac _080C0C8C: .4byte 0x000047ae _080C0C90: .4byte 0x000047b0 _080C0C94: .4byte gUnknown_83F1CAC _080C0C98: .4byte 0x000047aa _080C0C9C: .4byte gUnknown_83F1A9C thumb_func_end sub_80C0BB0 thumb_func_start sub_80C0CA0 sub_80C0CA0: @ 80C0CA0 push {lr} movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_80C0CA0 thumb_func_start sub_80C0CC8 sub_80C0CC8: @ 80C0CC8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r7, r1, 0 lsls r0, 24 ldr r2, _080C0D0C @ =gUnknown_20399D4 lsrs r0, 12 ldr r1, _080C0D10 @ =0x00001796 adds r0, r1 ldr r1, [r2] adds r6, r1, r0 movs r1, 0 mov r8, r2 _080C0CE4: movs r2, 0 lsls r5, r1, 16 asrs r1, r5, 16 lsls r3, r1, 5 lsls r0, r1, 4 subs r0, r1 lsls r4, r0, 1 _080C0CF2: lsls r0, r2, 16 asrs r1, r0, 16 adds r2, r0, 0 cmp r1, 0x1D bgt _080C0D14 adds r0, r3, r1 lsls r0, 1 adds r0, r6 adds r1, r4, r1 lsls r1, 1 adds r1, r7 ldrh r1, [r1] b _080C0D1C .align 2, 0 _080C0D0C: .4byte gUnknown_20399D4 _080C0D10: .4byte 0x00001796 _080C0D14: adds r0, r3, r1 lsls r0, 1 adds r0, r6 ldrh r1, [r7] _080C0D1C: strh r1, [r0] movs r1, 0x80 lsls r1, 9 adds r0, r2, r1 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x1F ble _080C0CF2 adds r0, r5, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080C0CE4 mov r1, r8 ldr r0, [r1] ldr r1, _080C0D94 @ =0x00004797 adds r0, r1 ldrb r5, [r0] cmp r5, 0x1 bne _080C0D86 movs r4, 0x3 str r4, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0 movs r1, 0xF0 movs r2, 0x18 movs r3, 0xE bl WriteSequenceToBgTilemapBuffer movs r1, 0x80 lsls r1, 1 str r4, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0 movs r2, 0x18 movs r3, 0xF bl WriteSequenceToBgTilemapBuffer movs r1, 0x88 lsls r1, 1 str r4, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0 movs r2, 0x18 movs r3, 0x10 bl WriteSequenceToBgTilemapBuffer _080C0D86: ldr r0, _080C0D98 @ =gUnknown_20399D8 ldr r0, [r0] cmp r0, 0 beq _080C0DA0 ldr r1, _080C0D9C @ =0x00001cca b _080C0DA6 .align 2, 0 _080C0D94: .4byte 0x00004797 _080C0D98: .4byte gUnknown_20399D8 _080C0D9C: .4byte 0x00001cca _080C0DA0: mov r1, r8 ldr r0, [r1] ldr r1, _080C0DF8 @ =0x0000479b _080C0DA6: adds r0, r1 ldrb r4, [r0] cmp r4, 0x2 bne _080C0DCC ldr r0, _080C0DFC @ =0x000008b5 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C0DCC movs r0, 0x3 str r0, [sp] str r4, [sp, 0x4] movs r0, 0 movs r1, 0x3 movs r2, 0xD movs r3, 0xB bl FillBgTilemapBufferRect_Palette0 _080C0DCC: cmp r4, 0x3 bne _080C0DEC ldr r0, _080C0E00 @ =0x000008c2 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C0DEC str r4, [sp] str r4, [sp, 0x4] movs r0, 0 movs r1, 0x3 movs r2, 0x15 movs r3, 0x10 bl FillBgTilemapBufferRect_Palette0 _080C0DEC: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C0DF8: .4byte 0x0000479b _080C0DFC: .4byte 0x000008b5 _080C0E00: .4byte 0x000008c2 thumb_func_end sub_80C0CC8 thumb_func_start sub_80C0E04 sub_80C0E04: @ 80C0E04 lsls r0, 24 lsrs r0, 24 ldr r1, _080C0E18 @ =gUnknown_20399D4 ldr r1, [r1] ldr r2, _080C0E1C @ =0x00004797 adds r1, r2 adds r1, r0 ldrb r0, [r1] bx lr .align 2, 0 _080C0E18: .4byte gUnknown_20399D4 _080C0E1C: .4byte 0x00004797 thumb_func_end sub_80C0E04 thumb_func_start sub_80C0E20 sub_80C0E20: @ 80C0E20 ldr r0, _080C0E2C @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C0E30 @ =0x0000479b adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080C0E2C: .4byte gUnknown_20399D4 _080C0E30: .4byte 0x0000479b thumb_func_end sub_80C0E20 thumb_func_start sub_80C0E34 sub_80C0E34: @ 80C0E34 ldr r0, _080C0E40 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C0E44 @ =0x0000479c adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _080C0E40: .4byte gUnknown_20399D4 _080C0E44: .4byte 0x0000479c thumb_func_end sub_80C0E34 thumb_func_start sub_80C0E48 sub_80C0E48: @ 80C0E48 ldr r1, _080C0E54 @ =gUnknown_20399D4 ldr r1, [r1] ldr r2, _080C0E58 @ =0x0000479b adds r1, r2 strb r0, [r1] bx lr .align 2, 0 _080C0E54: .4byte gUnknown_20399D4 _080C0E58: .4byte 0x0000479b thumb_func_end sub_80C0E48 thumb_func_start sub_80C0E5C sub_80C0E5C: @ 80C0E5C ldr r1, _080C0E68 @ =gUnknown_20399D4 ldr r1, [r1] ldr r2, _080C0E6C @ =0x0000479c adds r1, r2 strb r0, [r1] bx lr .align 2, 0 _080C0E68: .4byte gUnknown_20399D4 _080C0E6C: .4byte 0x0000479c thumb_func_end sub_80C0E5C thumb_func_start sub_80C0E70 sub_80C0E70: @ 80C0E70 push {r4-r7,lr} adds r7, r2, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r4, _080C0EA0 @ =gUnknown_20399D8 movs r0, 0xE7 lsls r0, 5 bl AllocZeroed str r0, [r4] ldr r0, _080C0EA4 @ =0x00000846 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080C0EAC ldr r0, [r4] ldr r1, _080C0EA8 @ =0x00001ccc adds r0, r1 movs r1, 0x3 b _080C0ED2 .align 2, 0 _080C0EA0: .4byte gUnknown_20399D8 _080C0EA4: .4byte 0x00000846 _080C0EA8: .4byte 0x00001ccc _080C0EAC: ldr r0, _080C0EC4 @ =0x00000845 bl FlagGet lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080C0ECC ldr r0, [r4] ldr r2, _080C0EC8 @ =0x00001ccc adds r0, r2 movs r1, 0x1 b _080C0ED2 .align 2, 0 _080C0EC4: .4byte 0x00000845 _080C0EC8: .4byte 0x00001ccc _080C0ECC: ldr r0, [r4] ldr r3, _080C0F14 @ =0x00001ccc adds r0, r3 _080C0ED2: strb r1, [r0] ldr r4, _080C0F18 @ =gUnknown_20399D8 ldr r2, [r4] ldr r0, _080C0F1C @ =0x000018b8 adds r1, r2, r0 movs r0, 0x58 strh r0, [r1] ldr r3, _080C0F20 @ =0x00001cc4 adds r1, r2, r3 movs r0, 0x98 strh r0, [r1] ldr r1, _080C0F14 @ =0x00001ccc adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x2 beq _080C0F2C cmp r0, 0x2 bgt _080C0F4C cmp r0, 0x1 bne _080C0F4C ldr r0, _080C0F24 @ =gUnknown_83F1084 movs r3, 0x80 lsls r3, 5 adds r1, r2, r3 bl LZ77UnCompWram ldr r0, [r4] ldr r1, _080C0F28 @ =0x00001cce adds r0, r1 movs r1, 0x6 strh r1, [r0] b _080C0F64 .align 2, 0 _080C0F14: .4byte 0x00001ccc _080C0F18: .4byte gUnknown_20399D8 _080C0F1C: .4byte 0x000018b8 _080C0F20: .4byte 0x00001cc4 _080C0F24: .4byte gUnknown_83F1084 _080C0F28: .4byte 0x00001cce _080C0F2C: ldr r0, _080C0F44 @ =gUnknown_83F1190 movs r3, 0x80 lsls r3, 5 adds r1, r2, r3 bl LZ77UnCompWram ldr r0, [r4] ldr r1, _080C0F48 @ =0x00001cce adds r0, r1 movs r1, 0x4 strh r1, [r0] b _080C0F64 .align 2, 0 _080C0F44: .4byte gUnknown_83F1190 _080C0F48: .4byte 0x00001cce _080C0F4C: ldr r0, _080C0FB4 @ =gUnknown_20399D8 ldr r1, [r0] ldr r3, _080C0FB8 @ =0x00001cce adds r2, r1, r3 movs r0, 0x3 strh r0, [r2] ldr r0, _080C0FBC @ =gUnknown_83F0F1C movs r2, 0x80 lsls r2, 5 adds r1, r2 bl LZ77UnCompWram _080C0F64: ldr r0, _080C0FC0 @ =gUnknown_83F0580 ldr r4, _080C0FB4 @ =gUnknown_20399D8 ldr r1, [r4] bl LZ77UnCompWram ldr r0, [r4] ldr r3, _080C0FC4 @ =0x00001cc8 adds r0, r3 movs r1, 0 strb r1, [r0] ldr r0, [r4] ldr r1, _080C0FC8 @ =0x00001cca adds r0, r1 strb r6, [r0] ldr r0, [r4] ldr r2, _080C0FCC @ =0x00001cd0 adds r0, r2 str r7, [r0] bl sub_80C0E34 ldr r1, [r4] ldr r3, _080C0FD0 @ =0x00001ccb adds r1, r3 strb r0, [r1] movs r0, 0 bl sub_80C4AAC ldr r0, _080C0FD4 @ =gUnknown_8418EB0 bl sub_80C4E74 ldr r1, _080C0FD8 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C0FDC @ =sub_80C1098 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C0FB4: .4byte gUnknown_20399D8 _080C0FB8: .4byte 0x00001cce _080C0FBC: .4byte gUnknown_83F0F1C _080C0FC0: .4byte gUnknown_83F0580 _080C0FC4: .4byte 0x00001cc8 _080C0FC8: .4byte 0x00001cca _080C0FCC: .4byte 0x00001cd0 _080C0FD0: .4byte 0x00001ccb _080C0FD4: .4byte gUnknown_8418EB0 _080C0FD8: .4byte gTasks _080C0FDC: .4byte sub_80C1098 thumb_func_end sub_80C0E70 thumb_func_start sub_80C0FE0 sub_80C0FE0: @ 80C0FE0 push {lr} bl sub_80C4BE4 movs r0, 0x1B movs r1, 0x4 movs r2, 0x40 bl sub_80C4C2C ldr r0, _080C100C @ =gUnknown_20399D8 ldr r0, [r0] ldr r1, _080C1010 @ =0x00001ccd adds r0, r1 ldrb r1, [r0] movs r0, 0x10 subs r0, r1 lsls r0, 16 lsrs r0, 16 bl sub_80C4C5C pop {r0} bx r0 .align 2, 0 _080C100C: .4byte gUnknown_20399D8 _080C1010: .4byte 0x00001ccd thumb_func_end sub_80C0FE0 thumb_func_start sub_80C1014 sub_80C1014: @ 80C1014 push {r4,lr} ldr r4, _080C1028 @ =gUnknown_20399D8 ldr r0, [r4] ldr r2, _080C102C @ =0x00001ccd adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xF bls _080C1030 movs r0, 0x1 b _080C104C .align 2, 0 _080C1028: .4byte gUnknown_20399D8 _080C102C: .4byte 0x00001ccd _080C1030: ldrb r1, [r1] movs r0, 0x10 subs r0, r1 lsls r0, 16 lsrs r0, 16 bl sub_80C4C5C ldr r1, [r4] ldr r0, _080C1054 @ =0x00001ccd adds r1, r0 ldrb r0, [r1] adds r0, 0x2 strb r0, [r1] movs r0, 0 _080C104C: pop {r4} pop {r1} bx r1 .align 2, 0 _080C1054: .4byte 0x00001ccd thumb_func_end sub_80C1014 thumb_func_start sub_80C1058 sub_80C1058: @ 80C1058 push {lr} ldr r2, _080C106C @ =gUnknown_20399D8 ldr r0, [r2] ldr r3, _080C1070 @ =0x00001ccd adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0x1 bhi _080C1074 movs r0, 0x1 b _080C108E .align 2, 0 _080C106C: .4byte gUnknown_20399D8 _080C1070: .4byte 0x00001ccd _080C1074: subs r0, 0x2 strb r0, [r1] ldr r0, [r2] ldr r1, _080C1094 @ =0x00001ccd adds r0, r1 ldrb r1, [r0] movs r0, 0x10 subs r0, r1 lsls r0, 16 lsrs r0, 16 bl sub_80C4C5C movs r0, 0 _080C108E: pop {r1} bx r1 .align 2, 0 _080C1094: .4byte 0x00001ccd thumb_func_end sub_80C1058 thumb_func_start sub_80C1098 sub_80C1098: @ 80C1098 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C10BC @ =gUnknown_20399D8 ldr r0, [r1] ldr r3, _080C10C0 @ =0x00001cc8 adds r0, r3 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0xC bls _080C10B0 b _080C1274 _080C10B0: lsls r0, 2 ldr r1, _080C10C4 @ =_080C10C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C10BC: .4byte gUnknown_20399D8 _080C10C0: .4byte 0x00001cc8 _080C10C4: .4byte _080C10C8 .align 2, 0 _080C10C8: .4byte _080C10FC .4byte _080C111C .4byte _080C112E .4byte _080C1146 .4byte _080C115C .4byte _080C1168 .4byte _080C1180 .4byte _080C1192 .4byte _080C11B0 .4byte _080C11BE .4byte _080C1220 .4byte _080C1236 .4byte _080C1254 _080C10FC: bl sub_80C08E0 ldr r0, _080C1110 @ =gUnknown_8418EBC bl sub_80C4E18 ldr r0, _080C1114 @ =gUnknown_20399D8 ldr r1, [r0] ldr r0, _080C1118 @ =0x00001cc8 adds r1, r0 b _080C1262 .align 2, 0 _080C1110: .4byte gUnknown_8418EBC _080C1114: .4byte gUnknown_20399D8 _080C1118: .4byte 0x00001cc8 _080C111C: ldr r1, [r4] movs r2, 0x80 lsls r2, 5 movs r0, 0x2 movs r3, 0 bl LoadBgTiles ldr r1, [r4] b _080C125E _080C112E: ldr r1, [r4] movs r0, 0x80 lsls r0, 5 adds r1, r0 movs r0, 0x2 bl sub_80C1324 movs r0, 0x2 bl CopyBgTilemapBufferToVram ldr r1, [r4] b _080C125E _080C1146: bl sub_80C0CA0 ldr r0, _080C1154 @ =gUnknown_20399D8 ldr r1, [r0] ldr r0, _080C1158 @ =0x00001cc8 adds r1, r0 b _080C1262 .align 2, 0 _080C1154: .4byte gUnknown_20399D8 _080C1158: .4byte 0x00001cc8 _080C115C: bl sub_80C0FE0 movs r0, 0x2 bl ShowBg b _080C125A _080C1168: bl sub_80C08F4 ldr r0, _080C1178 @ =gUnknown_20399D8 ldr r1, [r0] ldr r0, _080C117C @ =0x00001cc8 adds r1, r0 b _080C1262 .align 2, 0 _080C1178: .4byte gUnknown_20399D8 _080C117C: .4byte 0x00001cc8 _080C1180: bl sub_80C1014 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C127A bl sub_80C1390 b _080C125A _080C1192: bl sub_80C144C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C127A ldr r0, _080C11A8 @ =gUnknown_20399D8 ldr r1, [r0] ldr r0, _080C11AC @ =0x00001cc8 adds r1, r0 b _080C1262 .align 2, 0 _080C11A8: .4byte gUnknown_20399D8 _080C11AC: .4byte 0x00001cc8 _080C11B0: bl sub_80C16D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C127A b _080C125A _080C11BE: bl sub_80C1478 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C127A ldr r5, _080C1214 @ =gUnknown_20399D8 ldr r0, [r5] ldr r4, _080C1218 @ =0x00001cca adds r0, r4 ldrb r0, [r0] bl sub_80C0E48 bl sub_80C0E34 ldr r1, [r5] adds r1, r4 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _080C120C movs r0, 0 bl sub_80C4324 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x19 movs r2, 0 bl sub_80C48BC ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x19 movs r2, 0 bl sub_80C4960 _080C120C: ldr r1, [r5] ldr r0, _080C121C @ =0x00001cc8 adds r1, r0 b _080C1262 .align 2, 0 _080C1214: .4byte gUnknown_20399D8 _080C1218: .4byte 0x00001cca _080C121C: .4byte 0x00001cc8 _080C1220: bl sub_80C12EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C127A bl sub_80C1880 bl sub_80C0FE0 b _080C125A _080C1236: bl sub_80C1058 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C127A ldr r0, _080C124C @ =gUnknown_20399D8 ldr r1, [r0] ldr r0, _080C1250 @ =0x00001cc8 adds r1, r0 b _080C1262 .align 2, 0 _080C124C: .4byte gUnknown_20399D8 _080C1250: .4byte 0x00001cc8 _080C1254: movs r0, 0 bl sub_80C3154 _080C125A: ldr r0, _080C126C @ =gUnknown_20399D8 ldr r1, [r0] _080C125E: ldr r3, _080C1270 @ =0x00001cc8 adds r1, r3 _080C1262: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C127A .align 2, 0 _080C126C: .4byte gUnknown_20399D8 _080C1270: .4byte 0x00001cc8 _080C1274: adds r0, r2, 0 bl sub_80C1280 _080C127A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C1098 thumb_func_start sub_80C1280 sub_80C1280: @ 80C1280 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C12D4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r4, _080C12D8 @ =gUnknown_20399D8 ldr r0, [r4] ldr r2, _080C12DC @ =0x00001cd0 adds r0, r2 ldr r0, [r0] str r0, [r1] movs r0, 0x2 bl HideBg ldr r0, _080C12E0 @ =gUnknown_8418EB5 bl sub_80C4E18 ldr r0, _080C12E4 @ =gUnknown_8418EA7 bl sub_80C4E74 bl sub_80C0AB8 bl sub_80C0B9C ldr r1, _080C12E8 @ =gUnknown_83F1B1C movs r0, 0 bl sub_80C4CF0 ldr r0, [r4] cmp r0, 0 beq _080C12CC bl Free movs r0, 0 str r0, [r4] _080C12CC: pop {r4} pop {r0} bx r0 .align 2, 0 _080C12D4: .4byte gTasks _080C12D8: .4byte gUnknown_20399D8 _080C12DC: .4byte 0x00001cd0 _080C12E0: .4byte gUnknown_8418EB5 _080C12E4: .4byte gUnknown_8418EA7 _080C12E8: .4byte gUnknown_83F1B1C thumb_func_end sub_80C1280 thumb_func_start sub_80C12EC sub_80C12EC: @ 80C12EC push {lr} ldr r0, _080C1308 @ =gUnknown_20399D8 ldr r0, [r0] ldr r2, _080C130C @ =0x00001cdc adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0 bne _080C1310 movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r0, 0x1 b _080C131E .align 2, 0 _080C1308: .4byte gUnknown_20399D8 _080C130C: .4byte 0x00001cdc _080C1310: subs r0, 0x1 strh r0, [r1] ldrh r1, [r1] movs r0, 0x54 bl SetGpuReg movs r0, 0 _080C131E: pop {r1} bx r1 thumb_func_end sub_80C12EC thumb_func_start sub_80C1324 sub_80C1324: @ 80C1324 push {r4-r7,lr} adds r7, r1, 0 lsls r0, 24 ldr r1, _080C1360 @ =gUnknown_20399D4 lsrs r0, 12 ldr r2, _080C1364 @ =0x00001796 adds r0, r2 ldr r1, [r1] adds r6, r1, r0 movs r1, 0 _080C1338: movs r2, 0 lsls r5, r1, 16 asrs r1, r5, 16 lsls r3, r1, 5 lsls r0, r1, 4 subs r0, r1 lsls r4, r0, 1 _080C1346: lsls r0, r2, 16 asrs r1, r0, 16 adds r2, r0, 0 cmp r1, 0x1D bgt _080C1368 adds r0, r3, r1 lsls r0, 1 adds r0, r6 adds r1, r4, r1 lsls r1, 1 adds r1, r7 ldrh r1, [r1] b _080C1370 .align 2, 0 _080C1360: .4byte gUnknown_20399D4 _080C1364: .4byte 0x00001796 _080C1368: adds r0, r3, r1 lsls r0, 1 adds r0, r6 ldrh r1, [r7] _080C1370: strh r1, [r0] movs r1, 0x80 lsls r1, 9 adds r0, r2, r1 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x1F ble _080C1346 adds r0, r5, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080C1338 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C1324 thumb_func_start sub_80C1390 sub_80C1390: @ 80C1390 push {r4,r5,lr} sub sp, 0x8 ldr r0, _080C1428 @ =gUnknown_20399D8 ldr r2, [r0] ldr r1, _080C142C @ =0x00001cd4 adds r0, r2, r1 movs r1, 0x48 strh r1, [r0] ldr r5, _080C1430 @ =0xffff0000 ldr r0, [sp] ands r0, r5 orrs r0, r1 str r0, [sp] ldr r0, _080C1434 @ =0x00001cce adds r3, r2, r0 ldr r1, _080C1438 @ =0x00001cca adds r0, r2, r1 ldrb r1, [r0] lsls r1, 2 ldrh r3, [r3] adds r1, r3 lsls r1, 3 ldr r0, _080C143C @ =0x00001cd6 adds r4, r2, r0 strh r1, [r4] lsls r1, 16 ldr r3, _080C1440 @ =0x0000ffff ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] ldr r1, _080C1444 @ =0x00001cd8 adds r0, r2, r1 movs r1, 0xA8 strh r1, [r0] ldr r0, [sp, 0x4] ands r0, r5 orrs r0, r1 str r0, [sp, 0x4] ldrh r1, [r4] adds r1, 0x20 ldr r0, _080C1448 @ =0x00001cda adds r2, r0 strh r1, [r2] ands r1, r3 lsls r1, 16 ldr r0, [sp, 0x4] ands r0, r3 orrs r0, r1 str r0, [sp, 0x4] bl sub_80C4BE4 movs r0, 0 movs r1, 0x15 movs r2, 0xC0 bl sub_80C4C2C movs r0, 0x1F movs r1, 0x15 bl sub_80C4C74 movs r0, 0x3F bl sub_80C4C88 movs r0, 0x1 movs r1, 0 bl sub_80C4C9C movs r0, 0x1 mov r1, sp bl sub_80C4CF0 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C1428: .4byte gUnknown_20399D8 _080C142C: .4byte 0x00001cd4 _080C1430: .4byte 0xffff0000 _080C1434: .4byte 0x00001cce _080C1438: .4byte 0x00001cca _080C143C: .4byte 0x00001cd6 _080C1440: .4byte 0x0000ffff _080C1444: .4byte 0x00001cd8 _080C1448: .4byte 0x00001cda thumb_func_end sub_80C1390 thumb_func_start sub_80C144C sub_80C144C: @ 80C144C push {lr} ldr r0, _080C1460 @ =gUnknown_20399D8 ldr r0, [r0] ldr r2, _080C1464 @ =0x00001cdc adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0x5 bls _080C1468 movs r0, 0x1 b _080C1474 .align 2, 0 _080C1460: .4byte gUnknown_20399D8 _080C1464: .4byte 0x00001cdc _080C1468: adds r0, 0x1 strh r0, [r1] ldrh r0, [r1] bl sub_80C4C48 movs r0, 0 _080C1474: pop {r1} bx r1 thumb_func_end sub_80C144C thumb_func_start sub_80C1478 sub_80C1478: @ 80C1478 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r6, 0 ldr r0, _080C1574 @ =gUnknown_20399D8 mov r8, r0 ldr r5, [r0] ldr r1, _080C1578 @ =0x00001cd4 adds r0, r5, r1 movs r1, 0x48 strh r1, [r0] ldr r4, _080C157C @ =0xffff0000 ldr r0, [sp] ands r0, r4 orrs r0, r1 str r0, [sp] ldr r3, _080C1580 @ =0x00001cce adds r2, r5, r3 ldr r7, _080C1584 @ =0x00001cca adds r0, r5, r7 ldrb r1, [r0] lsls r1, 2 ldrh r2, [r2] adds r1, r2 lsls r1, 3 ldr r0, _080C1588 @ =0x00001cd6 adds r3, r5, r0 strh r1, [r3] lsls r1, 16 ldr r2, _080C158C @ =0x0000ffff ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldr r1, _080C1590 @ =0x00001cd8 adds r0, r5, r1 movs r1, 0xA8 strh r1, [r0] ldr r0, [sp, 0x4] ands r0, r4 orrs r0, r1 str r0, [sp, 0x4] ldrh r1, [r3] adds r1, 0x20 ldr r3, _080C1594 @ =0x00001cda adds r0, r5, r3 strh r1, [r0] ands r1, r2 lsls r1, 16 ldr r0, [sp, 0x4] ands r0, r2 orrs r0, r1 str r0, [sp, 0x4] ldr r0, _080C1598 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080C150E adds r1, r7, 0 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _080C150E movs r0, 0xF5 bl PlaySE mov r2, r8 ldr r1, [r2] adds r1, r7 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] movs r6, 0x1 _080C150E: ldr r0, _080C1598 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C1542 ldr r4, _080C1574 @ =gUnknown_20399D8 ldr r0, [r4] ldr r3, _080C1584 @ =0x00001cca adds r1, r0, r3 ldr r2, _080C159C @ =0x00001ccc adds r0, r2 ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bcs _080C1542 movs r0, 0xF5 bl PlaySE ldr r1, [r4] ldr r3, _080C1584 @ =0x00001cca adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r6, 0x1 _080C1542: ldr r2, _080C1598 @ =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 ldr r4, _080C1574 @ =gUnknown_20399D8 cmp r0, 0 beq _080C15A8 ldr r0, [r4] ldr r1, _080C15A0 @ =0x00001cdc adds r0, r1 ldrh r0, [r0] cmp r0, 0x6 bne _080C15A8 movs r0, 0xC7 bl PlaySE ldr r0, [r4] ldr r2, _080C1584 @ =0x00001cca adds r1, r0, r2 ldrb r1, [r1] ldr r3, _080C15A4 @ =0x00001ccb adds r0, r3 strb r1, [r0] movs r0, 0x1 b _080C16AC .align 2, 0 _080C1574: .4byte gUnknown_20399D8 _080C1578: .4byte 0x00001cd4 _080C157C: .4byte 0xffff0000 _080C1580: .4byte 0x00001cce _080C1584: .4byte 0x00001cca _080C1588: .4byte 0x00001cd6 _080C158C: .4byte 0x0000ffff _080C1590: .4byte 0x00001cd8 _080C1594: .4byte 0x00001cda _080C1598: .4byte gMain _080C159C: .4byte 0x00001ccc _080C15A0: .4byte 0x00001cdc _080C15A4: .4byte 0x00001ccb _080C15A8: ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C1604 ldr r0, [r4] ldr r2, _080C15FC @ =0x00001ccb adds r1, r0, r2 ldrb r1, [r1] subs r2, 0x1 adds r0, r2 strb r1, [r0] ldr r3, _080C1600 @ =gUnknown_20399D4 ldr r0, [r4] adds r0, r2 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 4 adds r0, 0x26 ldr r1, [r3] adds r1, r0 movs r0, 0 bl sub_80C0CC8 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0xFF movs r1, 0x19 movs r2, 0x1 bl sub_80C48BC movs r0, 0xFF movs r1, 0x19 movs r2, 0x1 bl sub_80C4960 movs r0, 0x1 b _080C16AC .align 2, 0 _080C15FC: .4byte 0x00001ccb _080C1600: .4byte gUnknown_20399D4 _080C1604: cmp r6, 0 beq _080C166C ldr r2, _080C168C @ =gUnknown_20399D4 ldr r5, _080C1690 @ =gUnknown_20399D8 ldr r0, [r5] ldr r4, _080C1694 @ =0x00001cca adds r0, r4 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 4 adds r0, 0x26 ldr r1, [r2] adds r1, r0 movs r0, 0 bl sub_80C0CC8 ldr r0, _080C1698 @ =gUnknown_8418EB0 bl sub_80C4E74 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0xFF movs r1, 0x19 movs r2, 0x1 bl sub_80C48BC movs r0, 0xFF movs r1, 0x19 movs r2, 0x1 bl sub_80C4960 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x19 movs r2, 0 bl sub_80C48BC ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x19 movs r2, 0 bl sub_80C4960 _080C166C: ldr r0, _080C1690 @ =gUnknown_20399D8 ldr r4, [r0] ldr r3, _080C1694 @ =0x00001cca adds r4, r3 bl sub_80C0E34 ldrb r1, [r4] lsls r0, 24 lsrs r0, 24 cmp r1, r0 beq _080C169C movs r0, 0x1 bl sub_80C4324 b _080C16A2 .align 2, 0 _080C168C: .4byte gUnknown_20399D4 _080C1690: .4byte gUnknown_20399D8 _080C1694: .4byte 0x00001cca _080C1698: .4byte gUnknown_8418EB0 _080C169C: movs r0, 0 bl sub_80C4324 _080C16A2: movs r0, 0x1 mov r1, sp bl sub_80C4CF0 movs r0, 0 _080C16AC: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C1478 thumb_func_start sub_80C16B8 sub_80C16B8: @ 80C16B8 ldr r1, _080C16C8 @ =gUnknown_20399D8 ldr r1, [r1] ldr r2, _080C16CC @ =0x00001cd6 adds r1, r2 ldrh r1, [r1] adds r1, 0x10 strh r1, [r0, 0x22] bx lr .align 2, 0 _080C16C8: .4byte gUnknown_20399D8 _080C16CC: .4byte 0x00001cd6 thumb_func_end sub_80C16B8 thumb_func_start sub_80C16D0 sub_80C16D0: @ 80C16D0 push {lr} ldr r0, _080C16EC @ =gUnknown_20399D8 ldr r1, [r0] ldr r2, _080C16F0 @ =0x00001cc9 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _080C1708 cmp r0, 0x1 bgt _080C16F4 cmp r0, 0 beq _080C16FA b _080C1732 .align 2, 0 _080C16EC: .4byte gUnknown_20399D8 _080C16F0: .4byte 0x00001cc9 _080C16F4: cmp r0, 0x2 beq _080C171C b _080C1732 _080C16FA: ldr r0, _080C1700 @ =gUnknown_83EF3C4 ldr r2, _080C1704 @ =0x000014b0 b _080C170C .align 2, 0 _080C1700: .4byte gUnknown_83EF3C4 _080C1704: .4byte 0x000014b0 _080C1708: ldr r0, _080C1714 @ =gUnknown_83EF450 ldr r2, _080C1718 @ =0x000018bc _080C170C: adds r1, r2 bl LZ77UnCompWram b _080C1736 .align 2, 0 _080C1714: .4byte gUnknown_83EF450 _080C1718: .4byte 0x000018bc _080C171C: movs r0, 0 movs r1, 0x2 movs r2, 0x2 bl sub_80C1754 movs r0, 0x1 movs r1, 0x3 movs r2, 0x3 bl sub_80C1754 b _080C1736 _080C1732: movs r0, 0x1 b _080C1746 _080C1736: ldr r0, _080C174C @ =gUnknown_20399D8 ldr r1, [r0] ldr r0, _080C1750 @ =0x00001cc9 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _080C1746: pop {r1} bx r1 .align 2, 0 _080C174C: .4byte gUnknown_20399D8 _080C1750: .4byte 0x00001cc9 thumb_func_end sub_80C16D0 thumb_func_start sub_80C1754 sub_80C1754: @ 80C1754 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 bl sub_80C176C pop {r0} bx r0 thumb_func_end sub_80C1754 thumb_func_start sub_80C176C sub_80C176C: @ 80C176C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x28 lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsls r2, 16 lsrs r2, 16 ldr r3, _080C1848 @ =gUnknown_20399D8 mov r8, r3 lsls r5, r0, 6 adds r5, r0 lsls r5, 2 subs r5, r0 lsls r5, 2 ldr r4, _080C184C @ =0x000014b0 adds r0, r5, r4 ldr r3, [r3] adds r0, r3, r0 str r0, [sp, 0x18] movs r4, 0x80 lsls r4, 3 add r0, sp, 0x18 lsrs r6, r1, 16 mov r9, r6 orrs r1, r4 str r1, [r0, 0x4] ldr r1, _080C1850 @ =gUnknown_83EF384 str r1, [sp, 0x20] ldr r4, _080C1854 @ =0xffff0000 add r6, sp, 0x20 ldr r1, [r6, 0x4] ands r1, r4 orrs r1, r2 str r1, [r6, 0x4] mov r1, sp movs r4, 0 mov r7, r9 strh r7, [r1] strh r2, [r1, 0x2] ldr r1, _080C1858 @ =gUnknown_83F1B24 str r1, [sp, 0x4] ldr r1, _080C185C @ =gUnknown_83F1B38 str r1, [sp, 0x8] str r4, [sp, 0xC] ldr r1, _080C1860 @ =gDummySpriteAffineAnimTable str r1, [sp, 0x10] ldr r1, _080C1864 @ =sub_80C16B8 str r1, [sp, 0x14] adds r3, r5 ldr r4, _080C1868 @ =0x000018b4 adds r1, r3, r4 strh r7, [r1] ldr r1, _080C186C @ =0x000018b6 adds r3, r1 strh r2, [r3] bl LoadSpriteSheet adds r0, r6, 0 bl LoadSpritePalette mov r3, r8 ldr r2, [r3] adds r0, r2, r5 adds r4, 0x4 adds r0, r4 movs r6, 0 ldrsh r1, [r0, r6] ldr r7, _080C1870 @ =0x00001cce adds r0, r2, r7 ldr r3, _080C1874 @ =0x00001cca adds r2, r3 ldrb r2, [r2] lsls r2, 2 ldrh r0, [r0] adds r2, r0 lsls r2, 19 asrs r2, 16 mov r0, sp movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r4, r8 ldr r2, [r4] ldr r6, _080C1878 @ =0x000018b0 adds r2, r6 adds r2, r5 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080C187C @ =gSprites adds r1, r0 str r1, [r2] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] add sp, 0x28 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1848: .4byte gUnknown_20399D8 _080C184C: .4byte 0x000014b0 _080C1850: .4byte gUnknown_83EF384 _080C1854: .4byte 0xffff0000 _080C1858: .4byte gUnknown_83F1B24 _080C185C: .4byte gUnknown_83F1B38 _080C1860: .4byte gDummySpriteAffineAnimTable _080C1864: .4byte sub_80C16B8 _080C1868: .4byte 0x000018b4 _080C186C: .4byte 0x000018b6 _080C1870: .4byte 0x00001cce _080C1874: .4byte 0x00001cca _080C1878: .4byte 0x000018b0 _080C187C: .4byte gSprites thumb_func_end sub_80C176C thumb_func_start sub_80C1880 sub_80C1880: @ 80C1880 push {r4-r6,lr} movs r5, 0 ldr r6, _080C18D0 @ =gUnknown_20399D8 _080C1886: ldr r1, [r6] lsls r0, r5, 6 adds r0, r5 lsls r0, 2 subs r0, r5 lsls r4, r0, 2 ldr r0, _080C18D4 @ =0x000018b0 adds r1, r0 adds r1, r4 ldr r0, [r1] cmp r0, 0 beq _080C18BE bl DestroySprite ldr r0, [r6] adds r0, r4 ldr r1, _080C18D8 @ =0x000018b4 adds r0, r1 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r6] adds r0, r4 ldr r1, _080C18DC @ =0x000018b6 adds r0, r1 ldrh r0, [r0] bl FreeSpritePaletteByTag _080C18BE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _080C1886 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C18D0: .4byte gUnknown_20399D8 _080C18D4: .4byte 0x000018b0 _080C18D8: .4byte 0x000018b4 _080C18DC: .4byte 0x000018b6 thumb_func_end sub_80C1880 thumb_func_start sub_80C18E0 sub_80C18E0: @ 80C18E0 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 movs r2, 0 ldr r3, _080C1904 @ =gUnknown_83F1B3C adds r5, r3, 0 adds r5, 0x8 _080C18EE: lsls r0, r2, 1 adds r0, r2 lsls r1, r0, 2 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r4 bne _080C1908 adds r0, r1, r5 ldr r0, [r0] b _080C1914 .align 2, 0 _080C1904: .4byte gUnknown_83F1B3C _080C1908: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x12 bls _080C18EE ldr r0, _080C191C @ =gUnknown_8418EC3 _080C1914: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080C191C: .4byte gUnknown_8418EC3 thumb_func_end sub_80C18E0 thumb_func_start sub_80C1920 sub_80C1920: @ 80C1920 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 movs r2, 0 ldr r3, _080C1940 @ =gUnknown_83F1B3C adds r5, r3, 0x4 _080C192C: lsls r0, r2, 1 adds r0, r2 lsls r1, r0, 2 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r4 bne _080C1944 adds r0, r1, r5 ldr r0, [r0] b _080C1950 .align 2, 0 _080C1940: .4byte gUnknown_83F1B3C _080C1944: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x12 bls _080C192C ldr r0, _080C1958 @ =gUnknown_8418EC3 _080C1950: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080C1958: .4byte gUnknown_8418EC3 thumb_func_end sub_80C1920 thumb_func_start sub_80C195C sub_80C195C: @ 80C195C push {r4-r6,lr} adds r6, r2, 0 lsls r1, 24 lsrs r5, r1, 24 ldr r4, _080C19E0 @ =gUnknown_20399DC ldr r0, _080C19E4 @ =0x00003e28 bl AllocZeroed str r0, [r4] bl sub_80C3580 lsls r0, 24 lsrs r0, 24 cmp r0, 0xB8 bne _080C197C movs r0, 0xBC _080C197C: bl sub_80F8544 ldr r1, [r4] movs r2, 0xF5 lsls r2, 6 adds r1, r2 str r0, [r1] cmp r0, 0 bne _080C199E movs r0, 0x8A bl sub_80F8544 ldr r1, [r4] movs r3, 0xF5 lsls r3, 6 adds r1, r3 str r0, [r1] _080C199E: ldr r0, [r4] ldr r1, _080C19E8 @ =0x00003d48 adds r0, r1 movs r2, 0 strb r2, [r0] ldr r0, [r4] ldr r3, _080C19EC @ =0x00003d4a adds r0, r3 strb r2, [r0] ldr r0, [r4] subs r3, 0x6 adds r1, r0, r3 str r6, [r1] ldr r1, _080C19F0 @ =0x00003e14 adds r0, r1 strh r2, [r0] movs r0, 0 bl sub_80C4AAC bl sub_80C4BE4 bl sub_80C0CA0 ldr r1, _080C19F4 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080C19F8 @ =sub_80C1A94 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C19E0: .4byte gUnknown_20399DC _080C19E4: .4byte 0x00003e28 _080C19E8: .4byte 0x00003d48 _080C19EC: .4byte 0x00003d4a _080C19F0: .4byte 0x00003e14 _080C19F4: .4byte gTasks _080C19F8: .4byte sub_80C1A94 thumb_func_end sub_80C195C thumb_func_start sub_80C19FC sub_80C19FC: @ 80C19FC push {lr} ldr r0, _080C1A18 @ =gUnknown_20399DC ldr r1, [r0] ldr r2, _080C1A1C @ =0x00003d4a adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _080C1A3A cmp r0, 0x1 bgt _080C1A20 cmp r0, 0 beq _080C1A2A b _080C1A72 .align 2, 0 _080C1A18: .4byte gUnknown_20399DC _080C1A1C: .4byte 0x00003d4a _080C1A20: cmp r0, 0x2 beq _080C1A50 cmp r0, 0x3 beq _080C1A5E b _080C1A72 _080C1A2A: movs r2, 0xF5 lsls r2, 6 adds r0, r1, r2 ldr r0, [r0] ldr r0, [r0, 0x4] bl LZ77UnCompWram b _080C1A76 _080C1A3A: movs r2, 0xF5 lsls r2, 6 adds r0, r1, r2 ldr r0, [r0] ldr r0, [r0, 0x8] movs r2, 0xE1 lsls r2, 6 adds r1, r2 bl LZ77UnCompWram b _080C1A76 _080C1A50: movs r2, 0xE1 lsls r2, 6 movs r0, 0x2 movs r3, 0 bl LoadBgTiles b _080C1A76 _080C1A5E: movs r2, 0xF5 lsls r2, 6 adds r0, r1, r2 ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0xD0 movs r2, 0x60 bl LoadPalette b _080C1A76 _080C1A72: movs r0, 0x1 b _080C1A86 _080C1A76: ldr r0, _080C1A8C @ =gUnknown_20399DC ldr r1, [r0] ldr r0, _080C1A90 @ =0x00003d4a adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _080C1A86: pop {r1} bx r1 .align 2, 0 _080C1A8C: .4byte gUnknown_20399DC _080C1A90: .4byte 0x00003d4a thumb_func_end sub_80C19FC thumb_func_start sub_80C1A94 sub_80C1A94: @ 80C1A94 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C1AB8 @ =gUnknown_20399DC ldr r0, [r1] ldr r3, _080C1ABC @ =0x00003d48 adds r0, r3 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x9 bls _080C1AAC b _080C1BD0 _080C1AAC: lsls r0, 2 ldr r1, _080C1AC0 @ =_080C1AC4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1AB8: .4byte gUnknown_20399DC _080C1ABC: .4byte 0x00003d48 _080C1AC0: .4byte _080C1AC4 .align 2, 0 _080C1AC4: .4byte _080C1AEC .4byte _080C1B04 .4byte _080C1B12 .4byte _080C1B34 .4byte _080C1B54 .4byte _080C1B5C .4byte _080C1B74 .4byte _080C1B84 .4byte _080C1B9C .4byte _080C1BBC _080C1AEC: bl sub_80C08E0 ldr r0, _080C1AFC @ =gUnknown_20399DC ldr r1, [r0] ldr r0, _080C1B00 @ =0x00003d48 adds r1, r0 b _080C1BCA .align 2, 0 _080C1AFC: .4byte gUnknown_20399DC _080C1B00: .4byte 0x00003d48 _080C1B04: bl sub_80C19FC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C1BD0 b _080C1BC2 _080C1B12: bl sub_80C1E94 ldr r0, _080C1B28 @ =gUnknown_8418E9E bl sub_80C4E74 ldr r0, _080C1B2C @ =gUnknown_20399DC ldr r1, [r0] ldr r0, _080C1B30 @ =0x00003d48 adds r1, r0 b _080C1BCA .align 2, 0 _080C1B28: .4byte gUnknown_8418E9E _080C1B2C: .4byte gUnknown_20399DC _080C1B30: .4byte 0x00003d48 _080C1B34: ldr r1, [r4] movs r3, 0xE1 lsls r3, 6 adds r1, r3 movs r0, 0x2 bl sub_80C1E78 movs r0, 0x2 bl CopyBgTilemapBufferToVram ldr r1, [r4] ldr r0, _080C1B50 @ =0x00003d48 adds r1, r0 b _080C1BCA .align 2, 0 _080C1B50: .4byte 0x00003d48 _080C1B54: movs r0, 0x2 bl ShowBg b _080C1BC2 _080C1B5C: bl sub_80C08F4 ldr r0, _080C1B6C @ =gUnknown_20399DC ldr r1, [r0] ldr r0, _080C1B70 @ =0x00003d48 adds r1, r0 b _080C1BCA .align 2, 0 _080C1B6C: .4byte gUnknown_20399DC _080C1B70: .4byte 0x00003d48 _080C1B74: movs r0, 0 bl sub_80C1F80 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C1BD0 b _080C1BC2 _080C1B84: ldr r0, _080C1B94 @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080C1B98 @ =sub_80C1BE0 str r0, [r1] b _080C1BD0 .align 2, 0 _080C1B94: .4byte gTasks _080C1B98: .4byte sub_80C1BE0 _080C1B9C: movs r0, 0x1 bl sub_80C1F80 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C1BD0 ldr r0, _080C1BB4 @ =gUnknown_20399DC ldr r1, [r0] ldr r0, _080C1BB8 @ =0x00003d48 adds r1, r0 b _080C1BCA .align 2, 0 _080C1BB4: .4byte gUnknown_20399DC _080C1BB8: .4byte 0x00003d48 _080C1BBC: adds r0, r2, 0 bl sub_80C1E14 _080C1BC2: ldr r0, _080C1BD8 @ =gUnknown_20399DC ldr r1, [r0] ldr r3, _080C1BDC @ =0x00003d48 adds r1, r3 _080C1BCA: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080C1BD0: pop {r4} pop {r0} bx r0 .align 2, 0 _080C1BD8: .4byte gUnknown_20399DC _080C1BDC: .4byte 0x00003d48 thumb_func_end sub_80C1A94 thumb_func_start sub_80C1BE0 sub_80C1BE0: @ 80C1BE0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C1C08 @ =gUnknown_20399DC ldr r0, [r1] ldr r3, _080C1C0C @ =0x00003d49 adds r0, r3 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x4 bls _080C1BFE b _080C1DF0 _080C1BFE: lsls r0, 2 ldr r1, _080C1C10 @ =_080C1C14 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C1C08: .4byte gUnknown_20399DC _080C1C0C: .4byte 0x00003d49 _080C1C10: .4byte _080C1C14 .align 2, 0 _080C1C14: .4byte _080C1C28 .4byte _080C1C58 .4byte _080C1C80 .4byte _080C1CA8 .4byte _080C1DA0 _080C1C28: ldr r1, [r3] ldr r0, _080C1C48 @ =0x00003e0e adds r2, r1, r0 ldr r0, _080C1C4C @ =0x00000133 strh r0, [r2] ldr r3, _080C1C50 @ =0x00003e10 adds r2, r1, r3 subs r0, 0x33 strh r0, [r2] ldr r0, _080C1C54 @ =0x00003e12 adds r2, r1, r0 movs r0, 0xF0 strh r0, [r2] subs r3, 0xC7 b _080C1DD6 .align 2, 0 _080C1C48: .4byte 0x00003e0e _080C1C4C: .4byte 0x00000133 _080C1C50: .4byte 0x00003e10 _080C1C54: .4byte 0x00003e12 _080C1C58: ldr r0, [r3] ldr r1, _080C1C7C @ =0x00003d4c adds r0, r1 ldrb r1, [r0] adds r2, r1, 0x1 strb r2, [r0] lsls r1, 24 lsrs r1, 24 cmp r1, 0x28 bhi _080C1C6E b _080C1DFE _080C1C6E: ldr r0, [r3] ldr r1, _080C1C7C @ =0x00003d4c adds r0, r1 movs r1, 0 strb r1, [r0] ldr r1, [r3] b _080C1DD4 .align 2, 0 _080C1C7C: .4byte 0x00003d4c _080C1C80: movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x2 bl PutWindowTilemap ldr r0, _080C1CA0 @ =gUnknown_20399DC ldr r1, [r0] ldr r0, _080C1CA4 @ =0x00003d49 adds r1, r0 b _080C1DD8 .align 2, 0 _080C1CA0: .4byte gUnknown_20399DC _080C1CA4: .4byte 0x00003d49 _080C1CA8: ldr r7, _080C1D10 @ =gUnknown_20399DC ldr r2, [r7] ldr r1, _080C1D14 @ =0x00003d4c adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x19 bls _080C1D24 bl sub_80C3580 lsls r0, 16 lsrs r0, 16 bl sub_80C1920 ldr r1, _080C1D18 @ =gUnknown_83F1A94 str r1, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x2 movs r2, 0x4 movs r3, 0 bl AddTextPrinterParameterized3 bl sub_80C3580 lsls r0, 16 lsrs r0, 16 bl sub_80C18E0 ldr r1, _080C1D1C @ =gUnknown_83F1A90 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x2 movs r2, 0x2 movs r3, 0xE bl AddTextPrinterParameterized3 movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram ldr r1, [r7] ldr r3, _080C1D20 @ =0x00003d49 adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C1D80 .align 2, 0 _080C1D10: .4byte gUnknown_20399DC _080C1D14: .4byte 0x00003d4c _080C1D18: .4byte gUnknown_83F1A94 _080C1D1C: .4byte gUnknown_83F1A90 _080C1D20: .4byte 0x00003d49 _080C1D24: cmp r0, 0x14 bls _080C1D80 ldr r6, _080C1D88 @ =0x00003e0e adds r1, r2, r6 ldrh r0, [r1] subs r0, 0x6 strh r0, [r1] ldr r4, _080C1D8C @ =0x00003e10 adds r1, r2, r4 ldrh r0, [r1] subs r0, 0x5 strh r0, [r1] ldr r0, _080C1D90 @ =0x00003e12 mov r8, r0 adds r1, r2, r0 ldrh r0, [r1] subs r0, 0x5 strh r0, [r1] movs r1, 0xF5 lsls r1, 6 adds r0, r2, r1 ldr r0, [r0] ldr r0, [r0, 0xC] ldr r5, _080C1D94 @ =0x00003d4e adds r1, r2, r5 movs r2, 0x30 bl CpuSet ldr r1, [r7] adds r0, r1, r5 adds r6, r1, r6 ldrh r2, [r6] adds r4, r1, r4 ldrh r3, [r4] add r1, r8 ldrh r1, [r1] str r1, [sp] movs r1, 0x30 bl sub_8071660 ldr r0, [r7] adds r0, r5 movs r1, 0xD0 movs r2, 0x60 bl LoadPalette _080C1D80: ldr r0, _080C1D98 @ =gUnknown_20399DC ldr r1, [r0] ldr r3, _080C1D9C @ =0x00003d4c b _080C1DD6 .align 2, 0 _080C1D88: .4byte 0x00003e0e _080C1D8C: .4byte 0x00003e10 _080C1D90: .4byte 0x00003e12 _080C1D94: .4byte 0x00003d4e _080C1D98: .4byte gUnknown_20399DC _080C1D9C: .4byte 0x00003d4c _080C1DA0: ldr r0, _080C1DE0 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080C1DB4 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C1DFE _080C1DB4: movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram ldr r2, _080C1DE4 @ =gUnknown_20399DC ldr r1, [r2] ldr r0, _080C1DE8 @ =0x00003d48 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r1, [r2] _080C1DD4: ldr r3, _080C1DEC @ =0x00003d49 _080C1DD6: adds r1, r3 _080C1DD8: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C1DFE .align 2, 0 _080C1DE0: .4byte gMain _080C1DE4: .4byte gUnknown_20399DC _080C1DE8: .4byte 0x00003d48 _080C1DEC: .4byte 0x00003d49 _080C1DF0: ldr r0, _080C1E0C @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _080C1E10 @ =sub_80C1A94 str r0, [r1] _080C1DFE: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C1E0C: .4byte gTasks _080C1E10: .4byte sub_80C1A94 thumb_func_end sub_80C1BE0 thumb_func_start sub_80C1E14 sub_80C1E14: @ 80C1E14 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080C1E68 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r4, _080C1E6C @ =gUnknown_20399DC ldr r0, [r4] ldr r2, _080C1E70 @ =0x00003d44 adds r0, r2 ldr r0, [r0] str r0, [r1] movs r0, 0x2 bl HideBg movs r0, 0 bl sub_80C4B30 bl sub_80C0B18 bl sub_80C0BB0 bl sub_80C0AB8 bl sub_80C0B9C ldr r0, _080C1E74 @ =gUnknown_8418E8D bl sub_80C4E74 ldr r0, [r4] cmp r0, 0 beq _080C1E60 bl Free movs r0, 0 str r0, [r4] _080C1E60: pop {r4} pop {r0} bx r0 .align 2, 0 _080C1E68: .4byte gTasks _080C1E6C: .4byte gUnknown_20399DC _080C1E70: .4byte 0x00003d44 _080C1E74: .4byte gUnknown_8418E8D thumb_func_end sub_80C1E14 thumb_func_start sub_80C1E78 sub_80C1E78: @ 80C1E78 push {lr} sub sp, 0x8 movs r0, 0x20 str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBufferRect add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80C1E78 thumb_func_start sub_80C1E94 sub_80C1E94: @ 80C1E94 push {r4-r6,lr} bl sub_80C4BE4 movs r0, 0 movs r1, 0x11 movs r2, 0xC0 bl sub_80C4C2C ldr r5, _080C1F58 @ =gUnknown_20399DC ldr r0, [r5] ldr r1, _080C1F5C @ =0x00003e14 adds r0, r1 ldrh r0, [r0] bl sub_80C4C48 movs r0, 0 movs r1, 0xD bl sub_80C4C74 movs r0, 0x3B bl sub_80C4C88 movs r0, 0x1 movs r1, 0 bl sub_80C4C9C bl sub_80C3508 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_80C3514 lsls r0, 16 ldr r5, [r5] lsls r4, 3 adds r4, 0x20 ldr r2, _080C1F60 @ =0x00003e16 adds r1, r5, r2 strh r4, [r1] lsrs r0, 13 adds r0, 0x18 ldr r3, _080C1F64 @ =0x00003e18 adds r2, r5, r3 strh r0, [r2] ldrh r0, [r1] adds r0, 0x8 ldr r4, _080C1F68 @ =0x00003e1a adds r3, r5, r4 strh r0, [r3] ldrh r0, [r2] adds r0, 0x8 ldr r6, _080C1F6C @ =0x00003e1c adds r4, r5, r6 strh r0, [r4] ldrh r1, [r1] movs r0, 0x10 subs r0, r1 cmp r0, 0 bge _080C1F0E adds r0, 0x7 _080C1F0E: asrs r1, r0, 3 ldr r6, _080C1F70 @ =0x00003e1e adds r0, r5, r6 strh r1, [r0] ldrh r1, [r2] movs r0, 0x20 subs r0, r1 cmp r0, 0 bge _080C1F22 adds r0, 0x7 _080C1F22: asrs r1, r0, 3 ldr r2, _080C1F74 @ =0x00003e20 adds r0, r5, r2 strh r1, [r0] ldrh r1, [r3] movs r0, 0xE0 subs r0, r1 cmp r0, 0 bge _080C1F36 adds r0, 0x7 _080C1F36: asrs r1, r0, 3 ldr r3, _080C1F78 @ =0x00003e22 adds r0, r5, r3 strh r1, [r0] ldrh r1, [r4] movs r0, 0x88 subs r0, r1 cmp r0, 0 bge _080C1F4A adds r0, 0x7 _080C1F4A: asrs r1, r0, 3 ldr r4, _080C1F7C @ =0x00003e24 adds r0, r5, r4 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C1F58: .4byte gUnknown_20399DC _080C1F5C: .4byte 0x00003e14 _080C1F60: .4byte 0x00003e16 _080C1F64: .4byte 0x00003e18 _080C1F68: .4byte 0x00003e1a _080C1F6C: .4byte 0x00003e1c _080C1F70: .4byte 0x00003e1e _080C1F74: .4byte 0x00003e20 _080C1F78: .4byte 0x00003e22 _080C1F7C: .4byte 0x00003e24 thumb_func_end sub_80C1E94 thumb_func_start sub_80C1F80 sub_80C1F80: @ 80C1F80 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 cmp r0, 0 bne _080C2014 ldr r1, _080C1FF0 @ =gUnknown_20399DC ldr r2, [r1] ldr r0, _080C1FF4 @ =0x00003d4b adds r3, r2, r0 ldrb r0, [r3] adds r6, r1, 0 cmp r0, 0x7 bhi _080C2024 ldr r4, _080C1FF8 @ =0x00003e16 adds r1, r2, r4 adds r4, 0x8 adds r0, r2, r4 ldrh r0, [r0] ldrh r4, [r1] adds r0, r4 strh r0, [r1] ldr r0, _080C1FFC @ =0x00003e18 adds r1, r2, r0 ldr r4, _080C2000 @ =0x00003e20 adds r0, r2, r4 ldrh r0, [r0] ldrh r4, [r1] adds r0, r4 strh r0, [r1] ldr r0, _080C2004 @ =0x00003e1a adds r1, r2, r0 ldr r4, _080C2008 @ =0x00003e22 adds r0, r2, r4 ldrh r0, [r0] ldrh r4, [r1] adds r0, r4 strh r0, [r1] ldr r0, _080C200C @ =0x00003e1c adds r1, r2, r0 ldr r4, _080C2010 @ =0x00003e24 adds r0, r2, r4 ldrh r0, [r0] ldrh r2, [r1] adds r0, r2 strh r0, [r1] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldr r0, [r6] subs r4, 0x10 adds r1, r0, r4 ldrh r0, [r1] cmp r0, 0x5 bhi _080C2086 adds r0, 0x1 b _080C2084 .align 2, 0 _080C1FF0: .4byte gUnknown_20399DC _080C1FF4: .4byte 0x00003d4b _080C1FF8: .4byte 0x00003e16 _080C1FFC: .4byte 0x00003e18 _080C2000: .4byte 0x00003e20 _080C2004: .4byte 0x00003e1a _080C2008: .4byte 0x00003e22 _080C200C: .4byte 0x00003e1c _080C2010: .4byte 0x00003e24 _080C2014: ldr r1, _080C2028 @ =gUnknown_20399DC ldr r3, [r1] ldr r0, _080C202C @ =0x00003d4b adds r5, r3, r0 ldrb r0, [r5] adds r6, r1, 0 cmp r0, 0 bne _080C2030 _080C2024: movs r0, 0x1 b _080C20DE .align 2, 0 _080C2028: .4byte gUnknown_20399DC _080C202C: .4byte 0x00003d4b _080C2030: ldr r1, _080C20E8 @ =0x00003e16 adds r2, r3, r1 ldr r4, _080C20EC @ =0x00003e1e adds r1, r3, r4 ldrh r0, [r2] ldrh r1, [r1] subs r0, r1 strh r0, [r2] ldr r0, _080C20F0 @ =0x00003e18 adds r2, r3, r0 adds r4, 0x2 adds r1, r3, r4 ldrh r0, [r2] ldrh r1, [r1] subs r0, r1 strh r0, [r2] ldr r0, _080C20F4 @ =0x00003e1a adds r2, r3, r0 adds r4, 0x2 adds r1, r3, r4 ldrh r0, [r2] ldrh r1, [r1] subs r0, r1 strh r0, [r2] ldr r0, _080C20F8 @ =0x00003e1c adds r2, r3, r0 adds r4, 0x2 adds r1, r3, r4 ldrh r0, [r2] ldrh r1, [r1] subs r0, r1 strh r0, [r2] ldrb r0, [r5] subs r0, 0x1 strb r0, [r5] ldr r0, [r6] ldr r2, _080C20FC @ =0x00003e14 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0 beq _080C2086 subs r0, 0x1 _080C2084: strh r0, [r1] _080C2086: ldr r4, [r6] ldr r1, _080C20E8 @ =0x00003e16 adds r0, r4, r1 ldrh r0, [r0] ldr r5, _080C2100 @ =0xffff0000 ldr r2, [sp] ands r2, r5 orrs r2, r0 str r2, [sp] adds r1, 0x2 adds r0, r4, r1 ldrh r1, [r0] lsls r1, 16 ldr r3, _080C2104 @ =0x0000ffff adds r0, r3, 0 ands r0, r2 orrs r0, r1 str r0, [sp] ldr r2, _080C20F4 @ =0x00003e1a adds r4, r2 ldrh r0, [r4] ldr r1, [sp, 0x4] ands r1, r5 orrs r1, r0 str r1, [sp, 0x4] ldr r0, [r6] ldr r4, _080C20F8 @ =0x00003e1c adds r0, r4 ldrh r0, [r0] lsls r0, 16 ands r3, r1 orrs r3, r0 str r3, [sp, 0x4] movs r0, 0x1 mov r1, sp bl sub_80C4CF0 ldr r0, [r6] ldr r1, _080C20FC @ =0x00003e14 adds r0, r1 ldrh r0, [r0] bl sub_80C4C48 movs r0, 0 _080C20DE: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080C20E8: .4byte 0x00003e16 _080C20EC: .4byte 0x00003e1e _080C20F0: .4byte 0x00003e18 _080C20F4: .4byte 0x00003e1a _080C20F8: .4byte 0x00003e1c _080C20FC: .4byte 0x00003e14 _080C2100: .4byte 0xffff0000 _080C2104: .4byte 0x0000ffff thumb_func_end sub_80C1F80 thumb_func_start nullsub_63 nullsub_63: @ 80C2108 bx lr thumb_func_end nullsub_63 thumb_func_start sub_80C210C sub_80C210C: @ 80C210C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r5, r0, 0 lsls r5, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _080C21E0 @ =gUnknown_20399E0 mov r9, r0 ldr r6, [r0] lsrs r5, 22 adds r6, r5 ldr r0, [r6] str r0, [sp, 0x18] movs r3, 0x80 lsls r3, 3 mov r10, r3 add r0, sp, 0x18 lsls r3, r1, 16 mov r4, r10 orrs r3, r4 str r3, [r0, 0x4] ldr r3, _080C21E4 @ =gUnknown_83EF3A4 str r3, [sp, 0x20] ldr r4, _080C21E8 @ =0xffff0000 add r7, sp, 0x20 mov r8, r7 ldr r3, [r7, 0x4] ands r3, r4 orrs r3, r2 str r3, [r7, 0x4] mov r3, sp movs r4, 0 strh r1, [r3] strh r2, [r3, 0x2] ldr r3, _080C21EC @ =gUnknown_83F1C20 str r3, [sp, 0x4] ldr r3, _080C21F0 @ =gUnknown_83F1C30 str r3, [sp, 0x8] str r4, [sp, 0xC] ldr r3, _080C21F4 @ =gDummySpriteAffineAnimTable str r3, [sp, 0x10] ldr r3, _080C21F8 @ =nullsub_63 str r3, [sp, 0x14] ldr r3, [r6] movs r4, 0x81 lsls r4, 3 adds r3, r4 strh r1, [r3] ldr r1, [r6] ldr r7, _080C21FC @ =0x0000040a adds r1, r7 strh r2, [r1] bl LoadSpriteSheet mov r0, r8 bl LoadSpritePalette mov r1, r9 ldr r0, [r1] adds r0, r5 ldr r0, [r0] ldr r2, _080C2200 @ =0x00000404 adds r1, r0, r2 movs r3, 0 ldrsh r1, [r1, r3] subs r4, 0x2 adds r0, r4 movs r7, 0 ldrsh r2, [r0, r7] mov r0, sp movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r2, r9 ldr r1, [r2] adds r1, r5 ldr r2, [r1] add r2, r10 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080C2204 @ =gSprites adds r1, r0 str r1, [r2] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C21E0: .4byte gUnknown_20399E0 _080C21E4: .4byte gUnknown_83EF3A4 _080C21E8: .4byte 0xffff0000 _080C21EC: .4byte gUnknown_83F1C20 _080C21F0: .4byte gUnknown_83F1C30 _080C21F4: .4byte gDummySpriteAffineAnimTable _080C21F8: .4byte nullsub_63 _080C21FC: .4byte 0x0000040a _080C2200: .4byte 0x00000404 _080C2204: .4byte gSprites thumb_func_end sub_80C210C thumb_func_start sub_80C2208 sub_80C2208: @ 80C2208 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r1 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, _080C22A4 @ =gUnknown_20399E0 ldr r0, _080C22A8 @ =0x00000cd4 bl AllocZeroed str r0, [r4] movs r6, 0 _080C2224: ldr r0, _080C22AC @ =0x0000040c bl AllocZeroed adds r5, r0, 0 ldr r7, _080C22A4 @ =gUnknown_20399E0 ldr r4, [r7] lsls r0, r6, 2 adds r4, r0 str r5, [r4] adds r0, r6, 0 movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 19 adds r0, 0x68 ldr r1, _080C22B0 @ =0x00000404 adds r5, r1 strh r0, [r5] ldr r4, [r4] adds r0, r6, 0 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 18 adds r0, 0x28 ldr r2, _080C22B4 @ =0x00000406 adds r4, r2 strh r0, [r4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _080C2224 movs r0, 0 bl sub_80C4AAC bl sub_80C4BE4 bl sub_80C24BC movs r0, 0x1 bl sub_80C0A88 ldr r0, [r7] ldr r1, _080C22B8 @ =0x00000cc8 adds r0, r1 mov r2, r9 str r2, [r0] ldr r1, _080C22BC @ =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _080C22C0 @ =sub_80C267C str r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C22A4: .4byte gUnknown_20399E0 _080C22A8: .4byte 0x00000cd4 _080C22AC: .4byte 0x0000040c _080C22B0: .4byte 0x00000404 _080C22B4: .4byte 0x00000406 _080C22B8: .4byte 0x00000cc8 _080C22BC: .4byte gTasks _080C22C0: .4byte sub_80C267C thumb_func_end sub_80C2208 thumb_func_start sub_80C22C4 sub_80C22C4: @ 80C22C4 push {r4-r7,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r2, 0x6 bne _080C2310 movs r3, 0 ldr r7, _080C230C @ =gUnknown_20399E0 movs r6, 0x80 lsls r6, 3 movs r1, 0x1 adds r0, r4, 0 ands r0, r1 lsls r4, r0, 2 movs r5, 0x5 negs r5, r5 _080C22E6: ldr r0, [r7] lsls r1, r3, 2 adds r0, r1 ldr r0, [r0] adds r0, r6 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 orrs r0, r4 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x5 bls _080C22E6 b _080C2338 .align 2, 0 _080C230C: .4byte gUnknown_20399E0 _080C2310: ldr r0, _080C2340 @ =gUnknown_20399E0 ldr r0, [r0] lsls r1, r2, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 adds r0, r1 ldr r2, [r0] adds r2, 0x3E movs r0, 0x1 adds r1, r4, 0 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _080C2338: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2340: .4byte gUnknown_20399E0 thumb_func_end sub_80C22C4 thumb_func_start sub_80C2344 sub_80C2344: @ 80C2344 push {lr} ldr r0, _080C2360 @ =gUnknown_20399E0 ldr r0, [r0] ldr r1, _080C2364 @ =0x00000ccd adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bls _080C2356 b _080C249C _080C2356: lsls r0, 2 ldr r1, _080C2368 @ =_080C236C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C2360: .4byte gUnknown_20399E0 _080C2364: .4byte 0x00000ccd _080C2368: .4byte _080C236C .align 2, 0 _080C236C: .4byte _080C2390 .4byte _080C23B0 .4byte _080C23D0 .4byte _080C23F0 .4byte _080C2410 .4byte _080C2430 .4byte _080C2450 .4byte _080C2468 .4byte _080C2484 _080C2390: ldr r0, _080C23A8 @ =gUnknown_83F12CC ldr r1, _080C23AC @ =gUnknown_20399E0 ldr r1, [r1] ldr r1, [r1] bl LZ77UnCompWram movs r0, 0 movs r1, 0x4 movs r2, 0x4 bl sub_80C210C b _080C24A0 .align 2, 0 _080C23A8: .4byte gUnknown_83F12CC _080C23AC: .4byte gUnknown_20399E0 _080C23B0: ldr r0, _080C23C8 @ =gUnknown_83F1550 ldr r1, _080C23CC @ =gUnknown_20399E0 ldr r1, [r1] ldr r1, [r1, 0x4] bl LZ77UnCompWram movs r0, 0x1 movs r1, 0x5 movs r2, 0x5 bl sub_80C210C b _080C24A0 .align 2, 0 _080C23C8: .4byte gUnknown_83F1550 _080C23CC: .4byte gUnknown_20399E0 _080C23D0: ldr r0, _080C23E8 @ =gUnknown_83F1738 ldr r1, _080C23EC @ =gUnknown_20399E0 ldr r1, [r1] ldr r1, [r1, 0x8] bl LZ77UnCompWram movs r0, 0x2 movs r1, 0x6 movs r2, 0x6 bl sub_80C210C b _080C24A0 .align 2, 0 _080C23E8: .4byte gUnknown_83F1738 _080C23EC: .4byte gUnknown_20399E0 _080C23F0: ldr r0, _080C2408 @ =gUnknown_83F13EC ldr r1, _080C240C @ =gUnknown_20399E0 ldr r1, [r1] ldr r1, [r1, 0xC] bl LZ77UnCompWram movs r0, 0x3 movs r1, 0x7 movs r2, 0x7 bl sub_80C210C b _080C24A0 .align 2, 0 _080C2408: .4byte gUnknown_83F13EC _080C240C: .4byte gUnknown_20399E0 _080C2410: ldr r0, _080C2428 @ =gUnknown_83F1640 ldr r1, _080C242C @ =gUnknown_20399E0 ldr r1, [r1] ldr r1, [r1, 0x10] bl LZ77UnCompWram movs r0, 0x4 movs r1, 0x8 movs r2, 0x8 bl sub_80C210C b _080C24A0 .align 2, 0 _080C2428: .4byte gUnknown_83F1640 _080C242C: .4byte gUnknown_20399E0 _080C2430: ldr r0, _080C2448 @ =gUnknown_83F1804 ldr r1, _080C244C @ =gUnknown_20399E0 ldr r1, [r1] ldr r1, [r1, 0x14] bl LZ77UnCompWram movs r0, 0x5 movs r1, 0x9 movs r2, 0x9 bl sub_80C210C b _080C24A0 .align 2, 0 _080C2448: .4byte gUnknown_83F1804 _080C244C: .4byte gUnknown_20399E0 _080C2450: ldr r0, _080C2460 @ =gUnknown_83F0330 ldr r1, _080C2464 @ =gUnknown_20399E0 ldr r1, [r1] adds r1, 0x18 bl LZ77UnCompWram b _080C24A0 .align 2, 0 _080C2460: .4byte gUnknown_83F0330 _080C2464: .4byte gUnknown_20399E0 _080C2468: ldr r0, _080C2478 @ =gUnknown_83F0E0C ldr r1, _080C247C @ =gUnknown_20399E0 ldr r1, [r1] ldr r2, _080C2480 @ =0x00000818 adds r1, r2 bl LZ77UnCompWram b _080C24A0 .align 2, 0 _080C2478: .4byte gUnknown_83F0E0C _080C247C: .4byte gUnknown_20399E0 _080C2480: .4byte 0x00000818 _080C2484: ldr r0, _080C2498 @ =gUnknown_20399E0 ldr r1, [r0] adds r1, 0x18 movs r2, 0x80 lsls r2, 4 movs r0, 0x1 movs r3, 0 bl LoadBgTiles b _080C24A0 .align 2, 0 _080C2498: .4byte gUnknown_20399E0 _080C249C: movs r0, 0x1 b _080C24B0 _080C24A0: ldr r0, _080C24B4 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C24B8 @ =0x00000ccd adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _080C24B0: pop {r1} bx r1 .align 2, 0 _080C24B4: .4byte gUnknown_20399E0 _080C24B8: .4byte 0x00000ccd thumb_func_end sub_80C2344 thumb_func_start sub_80C24BC sub_80C24BC: @ 80C24BC push {r4,r5,lr} sub sp, 0x8 ldr r0, _080C252C @ =gUnknown_20399E0 ldr r3, [r0] ldr r0, [r3] ldr r2, _080C2530 @ =0x00000404 adds r0, r2 ldrh r0, [r0] adds r0, 0x8 lsls r0, 16 ldr r4, _080C2534 @ =0xffff0000 ldr r5, _080C2538 @ =0x0000ffff lsrs r0, 16 movs r1, 0x80 lsls r1, 13 orrs r0, r1 str r0, [sp] ldr r0, [r3, 0xC] adds r0, r2 ldrh r1, [r0] subs r1, 0x8 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x4] ands r0, r4 orrs r0, r1 ands r0, r5 movs r1, 0xA0 lsls r1, 16 orrs r0, r1 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_80C4C2C movs r0, 0x12 movs r1, 0 bl sub_80C4C74 movs r0, 0x10 bl sub_80C4C88 movs r0, 0 mov r1, sp bl sub_80C4CF0 movs r0, 0 movs r1, 0 bl sub_80C4C9C add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C252C: .4byte gUnknown_20399E0 _080C2530: .4byte 0x00000404 _080C2534: .4byte 0xffff0000 _080C2538: .4byte 0x0000ffff thumb_func_end sub_80C24BC thumb_func_start sub_80C253C sub_80C253C: @ 80C253C push {lr} sub sp, 0x8 ldr r0, _080C258C @ =gUnknown_83F1C34 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] bl sub_80C4BE4 movs r0, 0x2 movs r1, 0x29 movs r2, 0x80 bl sub_80C4C2C ldr r0, _080C2590 @ =gUnknown_20399E0 ldr r0, [r0] movs r1, 0xCD lsls r1, 4 adds r0, r1 ldrb r0, [r0] bl sub_80C4C48 movs r0, 0x37 movs r1, 0 bl sub_80C4C74 movs r0, 0x12 bl sub_80C4C88 movs r0, 0 mov r1, sp bl sub_80C4CF0 movs r0, 0 movs r1, 0 bl sub_80C4C9C add sp, 0x8 pop {r0} bx r0 .align 2, 0 _080C258C: .4byte gUnknown_83F1C34 _080C2590: .4byte gUnknown_20399E0 thumb_func_end sub_80C253C thumb_func_start sub_80C2594 sub_80C2594: @ 80C2594 lsls r0, 24 lsrs r0, 24 ldr r2, _080C25B0 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C25B4 @ =gUnknown_20399E0 ldr r0, [r0] ldr r2, _080C25B8 @ =0x00000cc8 adds r0, r2 ldr r0, [r0] str r0, [r1] bx lr .align 2, 0 _080C25B0: .4byte gTasks _080C25B4: .4byte gUnknown_20399E0 _080C25B8: .4byte 0x00000cc8 thumb_func_end sub_80C2594 thumb_func_start sub_80C25BC sub_80C25BC: @ 80C25BC push {r4-r6,lr} bl sub_80C2604 movs r5, 0 ldr r6, _080C2600 @ =gUnknown_20399E0 _080C25C6: ldr r0, [r6] lsls r4, r5, 2 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _080C25DE bl Free ldr r0, [r6] adds r0, r4 movs r1, 0 str r1, [r0] _080C25DE: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _080C25C6 ldr r4, _080C2600 @ =gUnknown_20399E0 ldr r0, [r4] cmp r0, 0 beq _080C25F8 bl Free movs r0, 0 str r0, [r4] _080C25F8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C2600: .4byte gUnknown_20399E0 thumb_func_end sub_80C25BC thumb_func_start sub_80C2604 sub_80C2604: @ 80C2604 push {r4-r7,lr} movs r5, 0 ldr r7, _080C2670 @ =gUnknown_20399E0 movs r6, 0x80 lsls r6, 3 _080C260E: ldr r2, [r7] lsls r4, r5, 2 adds r2, r4 ldr r1, [r2] adds r0, r1, r6 ldr r0, [r0] ldrh r0, [r0, 0x20] ldr r3, _080C2674 @ =0x00000404 adds r1, r3 strh r0, [r1] ldr r1, [r2] adds r0, r1, r6 ldr r0, [r0] ldrh r0, [r0, 0x22] adds r3, 0x2 adds r1, r3 strh r0, [r1] ldr r0, [r2] adds r0, r6 ldr r0, [r0] cmp r0, 0 beq _080C2660 bl DestroySprite ldr r0, [r7] adds r0, r4 ldr r0, [r0] movs r1, 0x81 lsls r1, 3 adds r0, r1 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r7] adds r0, r4 ldr r0, [r0] ldr r3, _080C2678 @ =0x0000040a adds r0, r3 ldrh r0, [r0] bl FreeSpritePaletteByTag _080C2660: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _080C260E pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C2670: .4byte gUnknown_20399E0 _080C2674: .4byte 0x00000404 _080C2678: .4byte 0x0000040a thumb_func_end sub_80C2604 thumb_func_start sub_80C267C sub_80C267C: @ 80C267C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r1, _080C26A0 @ =gUnknown_20399E0 ldr r0, [r1] ldr r2, _080C26A4 @ =0x00000ccc adds r0, r2 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0xD bls _080C2696 b _080C2990 _080C2696: lsls r0, 2 ldr r1, _080C26A8 @ =_080C26AC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C26A0: .4byte gUnknown_20399E0 _080C26A4: .4byte 0x00000ccc _080C26A8: .4byte _080C26AC .align 2, 0 _080C26AC: .4byte _080C26E4 .4byte _080C26FC .4byte _080C270C .4byte _080C272C .4byte _080C2768 .4byte _080C2788 .4byte _080C27B4 .4byte _080C27C4 .4byte _080C27E4 .4byte _080C281E .4byte _080C2868 .4byte _080C28A4 .4byte _080C2928 .4byte _080C296C _080C26E4: bl sub_80C08E0 ldr r0, _080C26F4 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C26F8 @ =0x00000ccc adds r1, r0 b _080C297E .align 2, 0 _080C26F4: .4byte gUnknown_20399E0 _080C26F8: .4byte 0x00000ccc _080C26FC: bl sub_80C2344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C270A b _080C299A _080C270A: b _080C2976 _080C270C: ldr r1, [r4] ldr r0, _080C2728 @ =0x00000818 adds r1, r0 movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBufferRect ldr r1, [r4] b _080C297A .align 2, 0 _080C2728: .4byte 0x00000818 _080C272C: movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl sub_80C08F4 ldr r0, _080C2760 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2764 @ =0x00000ccc adds r1, r0 b _080C297E .align 2, 0 _080C2760: .4byte gUnknown_20399E0 _080C2764: .4byte 0x00000ccc _080C2768: movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x6 movs r1, 0 bl sub_80C22C4 bl sub_80C2B48 b _080C2976 _080C2788: ldr r0, _080C27AC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C2796 b _080C299A _080C2796: ldr r1, [r4] ldr r0, _080C27B0 @ =0x00000ccc adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0xF4 bl PlaySE b _080C299A .align 2, 0 _080C27AC: .4byte gPaletteFade _080C27B0: .4byte 0x00000ccc _080C27B4: bl sub_80C29A4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080C27C2 b _080C299A _080C27C2: b _080C2976 _080C27C4: movs r0, 0 bl sub_80C4324 movs r0, 0 bl sub_80C3154 ldr r0, _080C27DC @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C27E0 @ =0x00000ccc adds r1, r0 b _080C297E .align 2, 0 _080C27DC: .4byte gUnknown_20399E0 _080C27E0: .4byte 0x00000ccc _080C27E4: ldr r0, [r4] movs r1, 0xCD lsls r1, 4 adds r0, r1 movs r1, 0xF strb r1, [r0] bl sub_80C253C movs r0, 0 bl sub_80C0A88 bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0 bl sub_80C48BC bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0 bl sub_80C4960 ldr r1, [r4] b _080C297A _080C281E: ldr r0, _080C283C @ =gUnknown_8418EB5 bl sub_80C4E18 movs r0, 0x1 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080C2844 ldr r0, _080C2840 @ =gUnknown_8418E8B bl sub_80C4E74 b _080C284A .align 2, 0 _080C283C: .4byte gUnknown_8418EB5 _080C2840: .4byte gUnknown_8418E8B _080C2844: ldr r0, _080C285C @ =gUnknown_8418E8D bl sub_80C4E74 _080C284A: movs r0, 0 bl sub_80C4ED0 ldr r0, _080C2860 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2864 @ =0x00000ccc adds r1, r0 b _080C297E .align 2, 0 _080C285C: .4byte gUnknown_8418E8D _080C2860: .4byte gUnknown_20399E0 _080C2864: .4byte 0x00000ccc _080C2868: ldr r4, _080C28A0 @ =gUnknown_83EF25A adds r0, r4, 0 movs r1, 0 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x10 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x20 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x30 movs r2, 0x2 bl LoadPalette adds r0, r4, 0 movs r1, 0x40 movs r2, 0x2 bl LoadPalette b _080C2976 .align 2, 0 _080C28A0: .4byte gUnknown_83EF25A _080C28A4: movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] movs r5, 0x2 str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0 movs r3, 0x1 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0x3 movs r2, 0x1 movs r3, 0x1 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0x3E movs r2, 0x1C movs r3, 0x1 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0x3F movs r2, 0x1D movs r3, 0x1 bl FillBgTilemapBufferRect movs r0, 0x1A str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0x3D movs r2, 0x2 movs r3, 0x1 bl FillBgTilemapBufferRect movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0xF4 bl m4aSongNumStop movs r0, 0x2A bl PlaySE ldr r0, _080C2920 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2924 @ =0x00000ccc adds r1, r0 b _080C297E .align 2, 0 _080C2920: .4byte gUnknown_20399E0 _080C2924: .4byte 0x00000ccc _080C2928: ldr r0, [r4] movs r2, 0xCD lsls r2, 4 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x2 bne _080C2958 movs r0, 0x6 movs r1, 0x1 bl sub_80C22C4 ldr r1, [r4] ldr r0, _080C2954 @ =0x00000ccc adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 bl sub_80C4C48 b _080C299A .align 2, 0 _080C2954: .4byte 0x00000ccc _080C2958: subs r0, 0x1 strb r0, [r1] ldr r0, [r4] movs r1, 0xCD lsls r1, 4 adds r0, r1 ldrb r0, [r0] bl sub_80C4C48 b _080C299A _080C296C: movs r0, 0 bl sub_80C4B30 bl sub_80C0BB0 _080C2976: ldr r0, _080C2988 @ =gUnknown_20399E0 ldr r1, [r0] _080C297A: ldr r2, _080C298C @ =0x00000ccc adds r1, r2 _080C297E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C299A .align 2, 0 _080C2988: .4byte gUnknown_20399E0 _080C298C: .4byte 0x00000ccc _080C2990: bl sub_80C2604 adds r0, r5, 0 bl sub_80C2594 _080C299A: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C267C thumb_func_start sub_80C29A4 sub_80C29A4: @ 80C29A4 push {r4,r5,lr} bl sub_80C2B48 ldr r0, _080C29C8 @ =gUnknown_20399E0 ldr r2, [r0] ldr r0, [r2] movs r4, 0x80 lsls r4, 3 adds r0, r4 ldr r1, [r0] ldrh r3, [r1, 0x20] movs r5, 0x20 ldrsh r0, [r1, r5] cmp r0, 0 bne _080C29CC movs r0, 0x1 b _080C2B3A .align 2, 0 _080C29C8: .4byte gUnknown_20399E0 _080C29CC: ldr r5, _080C2A18 @ =0x00000cce adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0x11 bls _080C2A1C subs r0, r3, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x1 b _080C2B28 .align 2, 0 _080C2A18: .4byte 0x00000cce _080C2A1C: cmp r0, 0xE bls _080C2A60 subs r0, r3, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x2 b _080C2B28 _080C2A60: cmp r0, 0xA bls _080C2AA4 subs r0, r3, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x3 b _080C2B28 _080C2AA4: cmp r0, 0x6 bls _080C2AE8 subs r0, r3, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x5 b _080C2B28 _080C2AE8: adds r0, r3, 0 subs r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x8 _080C2B28: strh r0, [r1, 0x20] ldr r0, _080C2B40 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2B44 @ =0x00000cce adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _080C2B3A: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080C2B40: .4byte gUnknown_20399E0 _080C2B44: .4byte 0x00000cce thumb_func_end sub_80C29A4 thumb_func_start sub_80C2B48 sub_80C2B48: @ 80C2B48 push {r4,r5,lr} sub sp, 0x8 ldr r0, _080C2B90 @ =gUnknown_20399E0 ldr r3, [r0] ldr r0, [r3] movs r2, 0x80 lsls r2, 3 adds r0, r2 ldr r0, [r0] ldr r4, _080C2B94 @ =0xffff0000 ldr r5, _080C2B98 @ =0x0000ffff ldrh r0, [r0, 0x20] movs r1, 0x80 lsls r1, 13 orrs r0, r1 str r0, [sp] ldr r0, [r3, 0xC] adds r0, r2 ldr r0, [r0] ldrh r1, [r0, 0x20] ldr r0, [sp, 0x4] ands r0, r4 orrs r0, r1 ands r0, r5 movs r1, 0xA0 lsls r1, 16 orrs r0, r1 str r0, [sp, 0x4] movs r0, 0 mov r1, sp bl sub_80C4CF0 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2B90: .4byte gUnknown_20399E0 _080C2B94: .4byte 0xffff0000 _080C2B98: .4byte 0x0000ffff thumb_func_end sub_80C2B48 thumb_func_start sub_80C2B9C sub_80C2B9C: @ 80C2B9C push {r4,r5,lr} sub sp, 0x8 ldr r0, _080C2C0C @ =gUnknown_20399E0 ldr r3, [r0] ldr r0, [r3] ldr r2, _080C2C10 @ =0x00000404 adds r0, r2 ldrh r0, [r0] adds r0, 0x10 lsls r0, 16 ldr r4, _080C2C14 @ =0xffff0000 ldr r5, _080C2C18 @ =0x0000ffff lsrs r0, 16 movs r1, 0x80 lsls r1, 13 orrs r0, r1 str r0, [sp] ldr r0, [r3, 0xC] adds r0, r2 ldrh r1, [r0] subs r1, 0x10 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x4] ands r0, r4 orrs r0, r1 ands r0, r5 movs r1, 0xA0 lsls r1, 16 orrs r0, r1 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x2 movs r2, 0 bl sub_80C4C2C movs r0, 0x12 movs r1, 0 bl sub_80C4C74 movs r0, 0x10 bl sub_80C4C88 movs r0, 0 mov r1, sp bl sub_80C4CF0 movs r0, 0 movs r1, 0 bl sub_80C4C9C add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C2C0C: .4byte gUnknown_20399E0 _080C2C10: .4byte 0x00000404 _080C2C14: .4byte 0xffff0000 _080C2C18: .4byte 0x0000ffff thumb_func_end sub_80C2B9C thumb_func_start sub_80C2C1C sub_80C2C1C: @ 80C2C1C lsls r0, 24 lsrs r0, 24 ldr r2, _080C2C30 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C2C34 @ =sub_80C2C7C str r0, [r1] bx lr .align 2, 0 _080C2C30: .4byte gTasks _080C2C34: .4byte sub_80C2C7C thumb_func_end sub_80C2C1C thumb_func_start sub_80C2C38 sub_80C2C38: @ 80C2C38 push {lr} movs r0, 0 movs r1, 0x4 movs r2, 0x4 bl sub_80C210C movs r0, 0x1 movs r1, 0x5 movs r2, 0x5 bl sub_80C210C movs r0, 0x2 movs r1, 0x6 movs r2, 0x6 bl sub_80C210C movs r0, 0x3 movs r1, 0x7 movs r2, 0x7 bl sub_80C210C movs r0, 0x4 movs r1, 0x8 movs r2, 0x8 bl sub_80C210C movs r0, 0x5 movs r1, 0x9 movs r2, 0x9 bl sub_80C210C pop {r0} bx r0 thumb_func_end sub_80C2C38 thumb_func_start sub_80C2C7C sub_80C2C7C: @ 80C2C7C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080C2CA0 @ =gUnknown_20399E0 ldr r3, [r1] ldr r4, _080C2CA4 @ =0x00000ccf adds r0, r3, r4 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0x7 bls _080C2C94 b _080C2DFC _080C2C94: lsls r0, 2 ldr r1, _080C2CA8 @ =_080C2CAC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C2CA0: .4byte gUnknown_20399E0 _080C2CA4: .4byte 0x00000ccf _080C2CA8: .4byte _080C2CAC .align 2, 0 _080C2CAC: .4byte _080C2CCC .4byte _080C2CF4 .4byte _080C2CFA .4byte _080C2D1C .4byte _080C2D6C .4byte _080C2D84 .4byte _080C2DB8 .4byte _080C2DD8 _080C2CCC: movs r0, 0x1 bl sub_80C4ED0 movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram ldr r0, _080C2CEC @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2CF0 @ =0x00000ccf adds r1, r0 b _080C2DEC .align 2, 0 _080C2CEC: .4byte gUnknown_20399E0 _080C2CF0: .4byte 0x00000ccf _080C2CF4: bl sub_80C2C38 b _080C2DE4 _080C2CFA: ldr r0, _080C2D10 @ =gUnknown_83EF2DC movs r1, 0 movs r2, 0xA0 bl LoadPalette ldr r0, _080C2D14 @ =gUnknown_20399E0 ldr r1, [r0] ldr r3, _080C2D18 @ =0x00000ccf adds r1, r3 b _080C2DEC .align 2, 0 _080C2D10: .4byte gUnknown_83EF2DC _080C2D14: .4byte gUnknown_20399E0 _080C2D18: .4byte 0x00000ccf _080C2D1C: movs r0, 0x6 movs r1, 0 bl sub_80C22C4 movs r0, 0x1 bl sub_80C4324 movs r0, 0x1 bl sub_80C3154 movs r0, 0xFF movs r1, 0x19 movs r2, 0x1 bl sub_80C4960 movs r0, 0xFF movs r1, 0x19 movs r2, 0x1 bl sub_80C48BC ldr r1, _080C2D64 @ =gUnknown_20399E0 ldr r0, [r1] ldr r4, _080C2D68 @ =0x00000cce adds r0, r4 movs r2, 0 strb r2, [r0] ldr r0, [r1] movs r3, 0xCD lsls r3, 4 adds r0, r3 strb r2, [r0] ldr r1, [r1] adds r4, 0x1 adds r1, r4 b _080C2DEC .align 2, 0 _080C2D64: .4byte gUnknown_20399E0 _080C2D68: .4byte 0x00000cce _080C2D6C: bl sub_80C253C ldr r0, _080C2D7C @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2D80 @ =0x00000ccf adds r1, r0 b _080C2DEC .align 2, 0 _080C2D7C: .4byte gUnknown_20399E0 _080C2D80: .4byte 0x00000ccf _080C2D84: ldr r0, [r4] movs r2, 0xCD lsls r2, 4 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xF bne _080C2DA4 ldrb r0, [r1] bl sub_80C4C48 ldr r1, [r4] ldr r3, _080C2DA0 @ =0x00000ccf adds r1, r3 b _080C2DEC .align 2, 0 _080C2DA0: .4byte 0x00000ccf _080C2DA4: adds r0, 0x1 strb r0, [r1] ldr r0, [r4] movs r4, 0xCD lsls r4, 4 adds r0, r4 ldrb r0, [r0] bl sub_80C4C48 b _080C2E0E _080C2DB8: bl sub_80C2B9C bl sub_80C2B48 movs r0, 0xF3 bl PlaySE ldr r0, _080C2DD0 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2DD4 @ =0x00000ccf adds r1, r0 b _080C2DEC .align 2, 0 _080C2DD0: .4byte gUnknown_20399E0 _080C2DD4: .4byte 0x00000ccf _080C2DD8: bl sub_80C2E1C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C2E0E _080C2DE4: ldr r0, _080C2DF4 @ =gUnknown_20399E0 ldr r1, [r0] ldr r2, _080C2DF8 @ =0x00000ccf adds r1, r2 _080C2DEC: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C2E0E .align 2, 0 _080C2DF4: .4byte gUnknown_20399E0 _080C2DF8: .4byte 0x00000ccf _080C2DFC: ldr r1, _080C2E14 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldr r4, _080C2E18 @ =0x00000cc8 adds r1, r3, r4 ldr r1, [r1] str r1, [r0] _080C2E0E: pop {r4} pop {r0} bx r0 .align 2, 0 _080C2E14: .4byte gTasks _080C2E18: .4byte 0x00000cc8 thumb_func_end sub_80C2C7C thumb_func_start sub_80C2E1C sub_80C2E1C: @ 80C2E1C push {r4,r5,lr} bl sub_80C2B48 ldr r0, _080C2E40 @ =gUnknown_20399E0 ldr r2, [r0] ldr r0, [r2] movs r4, 0x80 lsls r4, 3 adds r0, r4 ldr r1, [r0] ldrh r3, [r1, 0x20] movs r5, 0x20 ldrsh r0, [r1, r5] cmp r0, 0x68 bne _080C2E44 movs r0, 0x1 b _080C2FB2 .align 2, 0 _080C2E40: .4byte gUnknown_20399E0 _080C2E44: ldr r5, _080C2E90 @ =0x00000cce adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0x11 bls _080C2E94 adds r0, r3, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x1 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x1 b _080C2FA0 .align 2, 0 _080C2E90: .4byte 0x00000cce _080C2E94: cmp r0, 0xE bls _080C2ED8 adds r0, r3, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x2 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x2 b _080C2FA0 _080C2ED8: cmp r0, 0xA bls _080C2F1C adds r0, r3, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x3 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x3 b _080C2FA0 _080C2F1C: cmp r0, 0x6 bls _080C2F60 adds r0, r3, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x5 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x5 b _080C2FA0 _080C2F60: adds r0, r3, 0 adds r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x4] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x8] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] adds r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0xC] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x10] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x8 strh r0, [r1, 0x20] ldr r0, [r2, 0x14] adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x20] subs r0, 0x8 _080C2FA0: strh r0, [r1, 0x20] ldr r0, _080C2FB8 @ =gUnknown_20399E0 ldr r1, [r0] ldr r0, _080C2FBC @ =0x00000cce adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _080C2FB2: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080C2FB8: .4byte gUnknown_20399E0 _080C2FBC: .4byte 0x00000cce thumb_func_end sub_80C2E1C thumb_func_start sub_80C2FC0 sub_80C2FC0: @ 80C2FC0 push {lr} adds r1, r0, 0 ldr r0, _080C2FE8 @ =gUnknown_20399E4 ldr r2, [r0] ldrh r0, [r2, 0xC] cmp r0, 0 beq _080C2FEC ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x20] adds r0, r3 strh r0, [r1, 0x20] ldrh r0, [r2, 0xA] ldrh r3, [r1, 0x22] adds r0, r3 strh r0, [r1, 0x22] ldrh r0, [r2, 0xC] subs r0, 0x1 strh r0, [r2, 0xC] b _080C3004 .align 2, 0 _080C2FE8: .4byte gUnknown_20399E4 _080C2FEC: ldr r1, [r2, 0x1C] movs r3, 0 ldrsh r0, [r2, r3] lsls r0, 3 adds r0, 0x24 strh r0, [r1, 0x20] ldr r1, [r2, 0x1C] movs r3, 0x2 ldrsh r0, [r2, r3] lsls r0, 3 adds r0, 0x24 strh r0, [r1, 0x22] _080C3004: pop {r0} bx r0 thumb_func_end sub_80C2FC0 thumb_func_start sub_80C3008 sub_80C3008: @ 80C3008 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r6, _080C3090 @ =gUnknown_20399E4 movs r0, 0x92 lsls r0, 1 bl AllocZeroed adds r1, r0, 0 str r1, [r6] ldr r0, _080C3094 @ =gUnknown_83EF4E0 adds r1, 0x24 bl LZ77UnCompWram ldr r0, [r6] strh r4, [r0, 0x20] strh r5, [r0, 0x22] bl sub_80C3D40 ldr r1, [r6] movs r2, 0 ldrsh r0, [r1, r2] lsls r0, 3 adds r0, 0x24 strh r0, [r1, 0x4] movs r3, 0x2 ldrsh r0, [r1, r3] lsls r0, 3 adds r0, 0x24 strh r0, [r1, 0x6] ldr r0, _080C3098 @ =sub_80C31C0 str r0, [r1, 0x10] ldrb r0, [r1, 0x14] bl sub_80C35DC ldr r1, [r6] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x16] bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r1, [r6] movs r4, 0x2 ldrsh r2, [r1, r4] movs r4, 0 ldrsh r3, [r1, r4] movs r1, 0x1 bl sub_80C4164 lsls r0, 24 lsrs r0, 24 bl sub_80C3878 ldr r1, [r6] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x18] bl sub_80C309C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3090: .4byte gUnknown_20399E4 _080C3094: .4byte gUnknown_83EF4E0 _080C3098: .4byte sub_80C31C0 thumb_func_end sub_80C3008 thumb_func_start sub_80C309C sub_80C309C: @ 80C309C push {r4-r6,lr} sub sp, 0x40 ldr r6, _080C3134 @ =gUnknown_20399E4 ldr r2, [r6] adds r0, r2, 0 adds r0, 0x24 str r0, [sp, 0x30] movs r1, 0x80 lsls r1, 1 add r5, sp, 0x30 str r1, [r5, 0x4] ldrh r0, [r2, 0x20] lsls r0, 16 orrs r0, r1 str r0, [r5, 0x4] ldr r0, _080C3138 @ =gUnknown_83EF25C str r0, [sp, 0x38] ldrh r3, [r2, 0x22] ldr r1, _080C313C @ =0xffff0000 add r4, sp, 0x38 ldr r0, [r4, 0x4] ands r0, r1 orrs r0, r3 str r0, [r4, 0x4] ldrh r0, [r2, 0x20] add r1, sp, 0x18 movs r3, 0 strh r0, [r1] ldrh r2, [r2, 0x22] mov r0, sp adds r0, 0x1A strh r2, [r0] ldr r0, _080C3140 @ =gUnknown_83F1C3C str r0, [sp, 0x1C] ldr r0, _080C3144 @ =gUnknown_83F1C50 str r0, [sp, 0x20] str r3, [sp, 0x24] ldr r0, _080C3148 @ =gDummySpriteAffineAnimTable str r0, [sp, 0x28] ldr r0, _080C314C @ =sub_80C2FC0 str r0, [sp, 0x2C] mov r0, sp movs r2, 0x18 bl memcpy adds r0, r5, 0 bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette ldr r0, [r6] movs r2, 0x4 ldrsh r1, [r0, r2] movs r3, 0x6 ldrsh r2, [r0, r3] mov r0, sp movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080C3150 @ =gSprites adds r1, r0 str r1, [r2, 0x1C] movs r0, 0x1 bl sub_80C3154 add sp, 0x40 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C3134: .4byte gUnknown_20399E4 _080C3138: .4byte gUnknown_83EF25C _080C313C: .4byte 0xffff0000 _080C3140: .4byte gUnknown_83F1C3C _080C3144: .4byte gUnknown_83F1C50 _080C3148: .4byte gDummySpriteAffineAnimTable _080C314C: .4byte sub_80C2FC0 _080C3150: .4byte gSprites thumb_func_end sub_80C309C thumb_func_start sub_80C3154 sub_80C3154: @ 80C3154 lsls r0, 24 lsrs r0, 24 ldr r1, _080C3174 @ =gUnknown_20399E4 ldr r1, [r1] ldr r2, [r1, 0x1C] adds r2, 0x3E movs r1, 0x1 ands r0, r1 lsls r0, 2 ldrb r3, [r2] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r0 strb r1, [r2] bx lr .align 2, 0 _080C3174: .4byte gUnknown_20399E4 thumb_func_end sub_80C3154 thumb_func_start sub_80C3178 sub_80C3178: @ 80C3178 ldr r0, _080C3184 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0xE] bx lr .align 2, 0 _080C3184: .4byte gUnknown_20399E4 thumb_func_end sub_80C3178 thumb_func_start sub_80C3188 sub_80C3188: @ 80C3188 push {r4,lr} ldr r4, _080C31BC @ =gUnknown_20399E4 ldr r0, [r4] ldr r0, [r0, 0x1C] cmp r0, 0 beq _080C31A8 bl DestroySprite ldr r0, [r4] ldrh r0, [r0, 0x20] bl FreeSpriteTilesByTag ldr r0, [r4] ldrh r0, [r0, 0x22] bl FreeSpritePaletteByTag _080C31A8: ldr r0, [r4] cmp r0, 0 beq _080C31B6 bl Free movs r0, 0 str r0, [r4] _080C31B6: pop {r4} pop {r0} bx r0 .align 2, 0 _080C31BC: .4byte gUnknown_20399E4 thumb_func_end sub_80C3188 thumb_func_start sub_80C31C0 sub_80C31C0: @ 80C31C0 push {r4-r6,lr} movs r5, 0 ldr r3, _080C3278 @ =gUnknown_20399E4 ldr r4, [r3] strh r5, [r4, 0x8] strh r5, [r4, 0xA] ldr r2, _080C327C @ =gMain ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 adds r6, r3, 0 cmp r0, 0 beq _080C31E8 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 ble _080C31E8 ldr r0, _080C3280 @ =0x0000fffe strh r0, [r4, 0xA] movs r5, 0x1 _080C31E8: ldrh r1, [r2, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C3202 ldr r1, [r6] movs r3, 0x2 ldrsh r0, [r1, r3] cmp r0, 0xD bgt _080C3202 movs r0, 0x2 strh r0, [r1, 0xA] movs r5, 0x1 _080C3202: ldrh r1, [r2, 0x2C] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080C321C ldr r1, [r6] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x14 bgt _080C321C movs r0, 0x2 strh r0, [r1, 0x8] movs r5, 0x1 _080C321C: ldrh r1, [r2, 0x2C] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080C3236 ldr r1, [r6] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _080C3236 ldr r0, _080C3280 @ =0x0000fffe strh r0, [r1, 0x8] movs r5, 0x1 _080C3236: ldrh r3, [r2, 0x2E] movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _080C328C movs r5, 0x4 ldr r0, [r6] ldr r1, [r0] ldr r0, _080C3284 @ =0x000d0015 cmp r1, r0 bne _080C3254 movs r0, 0xF0 bl PlaySE movs r5, 0x6 _080C3254: ldr r0, [r6] ldr r1, [r0] ldr r0, _080C3288 @ =0x000b0015 cmp r1, r0 bne _080C331A movs r0, 0 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C331A movs r0, 0xF0 bl PlaySE movs r5, 0x5 b _080C331A .align 2, 0 _080C3278: .4byte gUnknown_20399E4 _080C327C: .4byte gMain _080C3280: .4byte 0x0000fffe _080C3284: .4byte 0x000d0015 _080C3288: .4byte 0x000b0015 _080C328C: movs r0, 0x2 ands r0, r3 cmp r0, 0 bne _080C3318 ldrh r1, [r2, 0x30] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080C3300 bl sub_80C3418 bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r4, _080C32FC @ =gUnknown_20399E4 ldr r1, [r4] movs r5, 0x2 ldrsh r2, [r1, r5] movs r5, 0 ldrsh r3, [r1, r5] movs r1, 0 bl sub_80C4164 ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x14] bl sub_80C35DC ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x16] bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] movs r3, 0x2 ldrsh r2, [r1, r3] movs r5, 0 ldrsh r3, [r1, r5] movs r1, 0x1 bl sub_80C4164 lsls r0, 24 lsrs r0, 24 bl sub_80C3878 ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x18] movs r0, 0x3 b _080C332C .align 2, 0 _080C32FC: .4byte gUnknown_20399E4 _080C3300: movs r0, 0x4 ands r0, r3 cmp r0, 0 beq _080C331A ldr r0, _080C3334 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C3338 @ =0x000047bc adds r0, r1 ldr r1, [r0] ldr r0, _080C333C @ =CB2_ReturnToField cmp r1, r0 bne _080C331A _080C3318: movs r5, 0x6 _080C331A: cmp r5, 0x1 bne _080C332A ldr r0, _080C3340 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x4 strh r0, [r1, 0xC] ldr r0, _080C3344 @ =sub_80C3348 str r0, [r1, 0x10] _080C332A: adds r0, r5, 0 _080C332C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080C3334: .4byte gUnknown_20399D4 _080C3338: .4byte 0x000047bc _080C333C: .4byte CB2_ReturnToField _080C3340: .4byte gUnknown_20399E4 _080C3344: .4byte sub_80C3348 thumb_func_end sub_80C31C0 thumb_func_start sub_80C3348 sub_80C3348: @ 80C3348 push {r4,r5,lr} ldr r4, _080C3358 @ =gUnknown_20399E4 ldr r1, [r4] ldrh r0, [r1, 0xC] cmp r0, 0 beq _080C335C movs r0, 0x2 b _080C33F4 .align 2, 0 _080C3358: .4byte gUnknown_20399E4 _080C335C: movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 ble _080C336A ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080C336A: ldr r1, [r4] movs r3, 0x8 ldrsh r0, [r1, r3] cmp r0, 0 bge _080C337A ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _080C337A: ldr r1, [r4] movs r5, 0xA ldrsh r0, [r1, r5] cmp r0, 0 ble _080C338A ldrh r0, [r1, 0x2] adds r0, 0x1 strh r0, [r1, 0x2] _080C338A: ldr r1, [r4] movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bge _080C339A ldrh r0, [r1, 0x2] subs r0, 0x1 strh r0, [r1, 0x2] _080C339A: bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] movs r3, 0x2 ldrsh r2, [r1, r3] movs r5, 0 ldrsh r3, [r1, r5] movs r1, 0 bl sub_80C4164 ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x14] bl sub_80C35DC ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x16] bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] movs r3, 0x2 ldrsh r2, [r1, r3] movs r5, 0 ldrsh r3, [r1, r5] movs r1, 0x1 bl sub_80C4164 lsls r0, 24 lsrs r0, 24 bl sub_80C3878 ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x18] ldr r0, _080C33FC @ =sub_80C31C0 str r0, [r1, 0x10] movs r0, 0x3 _080C33F4: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080C33FC: .4byte sub_80C31C0 thumb_func_end sub_80C3348 thumb_func_start sub_80C3400 sub_80C3400: @ 80C3400 push {lr} ldr r0, _080C3414 @ =gUnknown_20399E4 ldr r0, [r0] ldr r0, [r0, 0x10] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080C3414: .4byte gUnknown_20399E4 thumb_func_end sub_80C3400 thumb_func_start sub_80C3418 sub_80C3418: @ 80C3418 push {r4,r5,lr} movs r0, 0 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C3482 ldr r5, _080C3474 @ =gUnknown_20399E4 ldr r1, [r5] ldrb r0, [r1, 0xE] adds r0, 0x1 strb r0, [r1, 0xE] ldr r4, [r5] ldrb r0, [r4, 0xE] movs r1, 0x3 bl __umodsi3 strb r0, [r4, 0xE] ldr r0, [r5] ldrb r0, [r0, 0xE] cmp r0, 0 bne _080C3460 bl sub_80C0E20 adds r4, r0, 0 bl sub_80C0E34 lsls r4, 24 lsls r0, 24 cmp r4, r0 beq _080C3460 ldr r1, [r5] ldrb r0, [r1, 0xE] adds r0, 0x1 strb r0, [r1, 0xE] _080C3460: ldr r4, _080C3474 @ =gUnknown_20399E4 ldr r1, [r4] ldrb r0, [r1, 0xE] cmp r0, 0x1 beq _080C3478 cmp r0, 0x1 ble _080C34A2 cmp r0, 0x2 beq _080C34B8 b _080C34A2 .align 2, 0 _080C3474: .4byte gUnknown_20399E4 _080C3478: movs r0, 0x15 strh r0, [r1] movs r0, 0xB strh r0, [r1, 0x2] b _080C34C0 _080C3482: ldr r4, _080C34B4 @ =gUnknown_20399E4 ldr r1, [r4] ldrb r0, [r1, 0xE] adds r0, 0x1 strb r0, [r1, 0xE] ldr r2, [r4] ldrb r0, [r2, 0xE] movs r1, 0x1 ands r0, r1 strb r0, [r2, 0xE] ldr r1, [r4] ldrb r0, [r1, 0xE] cmp r0, 0 beq _080C34A2 cmp r0, 0x1 beq _080C34B8 _080C34A2: bl sub_80C4380 ldr r1, [r4] strh r0, [r1] bl sub_80C438C ldr r1, [r4] strh r0, [r1, 0x2] b _080C34C0 .align 2, 0 _080C34B4: .4byte gUnknown_20399E4 _080C34B8: movs r0, 0xD strh r0, [r1, 0x2] movs r0, 0x15 strh r0, [r1] _080C34C0: ldr r4, _080C3504 @ =gUnknown_20399E4 ldr r1, [r4] ldr r2, [r1, 0x1C] movs r3, 0 ldrsh r0, [r1, r3] lsls r0, 3 adds r0, 0x24 strh r0, [r2, 0x20] ldr r2, [r1, 0x1C] movs r5, 0x2 ldrsh r0, [r1, r5] lsls r0, 3 adds r0, 0x24 strh r0, [r2, 0x22] bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] movs r3, 0x2 ldrsh r2, [r1, r3] movs r5, 0 ldrsh r3, [r1, r5] movs r1, 0 bl sub_80C4164 ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x14] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C3504: .4byte gUnknown_20399E4 thumb_func_end sub_80C3418 thumb_func_start sub_80C3508 sub_80C3508: @ 80C3508 ldr r0, _080C3510 @ =gUnknown_20399E4 ldr r0, [r0] ldrh r0, [r0] bx lr .align 2, 0 _080C3510: .4byte gUnknown_20399E4 thumb_func_end sub_80C3508 thumb_func_start sub_80C3514 sub_80C3514: @ 80C3514 ldr r0, _080C351C @ =gUnknown_20399E4 ldr r0, [r0] ldrh r0, [r0, 0x2] bx lr .align 2, 0 _080C351C: .4byte gUnknown_20399E4 thumb_func_end sub_80C3514 thumb_func_start sub_80C3520 sub_80C3520: @ 80C3520 push {r4,lr} ldr r4, _080C353C @ =gUnknown_20399E4 ldr r1, [r4] ldrh r0, [r1, 0x2] cmp r0, 0xE bhi _080C3538 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 blt _080C3538 cmp r0, 0x15 ble _080C3540 _080C3538: movs r0, 0xC5 b _080C3574 .align 2, 0 _080C353C: .4byte gUnknown_20399E4 _080C3540: bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] movs r3, 0x2 ldrsh r2, [r1, r3] movs r4, 0 ldrsh r3, [r1, r4] movs r1, 0 bl sub_80C4164 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xAE beq _080C3564 cmp r4, 0xBB bne _080C3572 _080C3564: ldr r0, _080C357C @ =0x000008b5 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C3572 movs r4, 0xC5 _080C3572: adds r0, r4, 0 _080C3574: pop {r4} pop {r1} bx r1 .align 2, 0 _080C357C: .4byte 0x000008b5 thumb_func_end sub_80C3520 thumb_func_start sub_80C3580 sub_80C3580: @ 80C3580 push {r4,lr} ldr r4, _080C359C @ =gUnknown_20399E4 ldr r1, [r4] ldrh r0, [r1, 0x2] cmp r0, 0xE bhi _080C3598 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 blt _080C3598 cmp r0, 0x15 ble _080C35A0 _080C3598: movs r0, 0xC5 b _080C35D0 .align 2, 0 _080C359C: .4byte gUnknown_20399E4 _080C35A0: bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] movs r3, 0x2 ldrsh r2, [r1, r3] movs r4, 0 ldrsh r3, [r1, r4] movs r1, 0x1 bl sub_80C4164 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x8D bne _080C35CE ldr r0, _080C35D8 @ =0x00000844 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080C35CE movs r4, 0xC5 _080C35CE: adds r0, r4, 0 _080C35D0: pop {r4} pop {r1} bx r1 .align 2, 0 _080C35D8: .4byte 0x00000844 thumb_func_end sub_80C3580 thumb_func_start sub_80C35DC sub_80C35DC: @ 80C35DC push {lr} lsls r0, 24 lsrs r0, 24 subs r0, 0x58 cmp r0, 0x6D bls _080C35EA b _080C3870 _080C35EA: lsls r0, 2 ldr r1, _080C35F4 @ =_080C35F8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C35F4: .4byte _080C35F8 .align 2, 0 _080C35F8: .4byte _080C37B0 .4byte _080C37B6 .4byte _080C37C0 .4byte _080C37C8 .4byte _080C37D0 .4byte _080C37D8 .4byte _080C37E0 .4byte _080C37E8 .4byte _080C37F0 .4byte _080C37F8 .4byte _080C3800 .4byte _080C3840 .4byte _080C3858 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3808 .4byte _080C3810 .4byte _080C3818 .4byte _080C3820 .4byte _080C3828 .4byte _080C3830 .4byte _080C3836 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C3870 .4byte _080C384C _080C37B0: movs r0, 0x89 lsls r0, 4 b _080C385A _080C37B6: ldr r0, _080C37BC @ =0x00000891 b _080C385A .align 2, 0 _080C37BC: .4byte 0x00000891 _080C37C0: ldr r0, _080C37C4 @ =0x00000892 b _080C385A .align 2, 0 _080C37C4: .4byte 0x00000892 _080C37C8: ldr r0, _080C37CC @ =0x00000893 b _080C385A .align 2, 0 _080C37CC: .4byte 0x00000893 _080C37D0: ldr r0, _080C37D4 @ =0x00000894 b _080C385A .align 2, 0 _080C37D4: .4byte 0x00000894 _080C37D8: ldr r0, _080C37DC @ =0x00000895 b _080C385A .align 2, 0 _080C37DC: .4byte 0x00000895 _080C37E0: ldr r0, _080C37E4 @ =0x00000896 b _080C385A .align 2, 0 _080C37E4: .4byte 0x00000896 _080C37E8: ldr r0, _080C37EC @ =0x00000897 b _080C385A .align 2, 0 _080C37EC: .4byte 0x00000897 _080C37F0: ldr r0, _080C37F4 @ =0x00000898 b _080C385A .align 2, 0 _080C37F4: .4byte 0x00000898 _080C37F8: ldr r0, _080C37FC @ =0x00000899 b _080C385A .align 2, 0 _080C37FC: .4byte 0x00000899 _080C3800: ldr r0, _080C3804 @ =0x0000089a b _080C385A .align 2, 0 _080C3804: .4byte 0x0000089a _080C3808: ldr r0, _080C380C @ =0x0000089b b _080C385A .align 2, 0 _080C380C: .4byte 0x0000089b _080C3810: ldr r0, _080C3814 @ =0x0000089c b _080C385A .align 2, 0 _080C3814: .4byte 0x0000089c _080C3818: ldr r0, _080C381C @ =0x0000089d b _080C385A .align 2, 0 _080C381C: .4byte 0x0000089d _080C3820: ldr r0, _080C3824 @ =0x0000089e b _080C385A .align 2, 0 _080C3824: .4byte 0x0000089e _080C3828: ldr r0, _080C382C @ =0x0000089f b _080C385A .align 2, 0 _080C382C: .4byte 0x0000089f _080C3830: movs r0, 0x8A lsls r0, 4 b _080C385A _080C3836: ldr r0, _080C383C @ =0x000008a1 b _080C385A .align 2, 0 _080C383C: .4byte 0x000008a1 _080C3840: movs r0, 0x3 bl sub_80C0E04 lsls r0, 24 cmp r0, 0 bne _080C3850 _080C384C: movs r0, 0 b _080C3872 _080C3850: ldr r0, _080C3854 @ =0x000008a2 b _080C385A .align 2, 0 _080C3854: .4byte 0x000008a2 _080C3858: ldr r0, _080C386C @ =0x000008a3 _080C385A: bl FlagGet lsls r0, 24 movs r1, 0x3 cmp r0, 0 beq _080C3868 movs r1, 0x2 _080C3868: adds r0, r1, 0 b _080C3872 .align 2, 0 _080C386C: .4byte 0x000008a3 _080C3870: movs r0, 0x1 _080C3872: pop {r1} bx r1 thumb_func_end sub_80C35DC thumb_func_start sub_80C3878 sub_80C3878: @ 80C3878 push {lr} lsls r0, 24 lsrs r0, 24 subs r0, 0x7E cmp r0, 0x47 bls _080C3886 b _080C3AC0 _080C3886: lsls r0, 2 ldr r1, _080C3890 @ =_080C3894 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C3890: .4byte _080C3894 .align 2, 0 _080C3894: .4byte _080C39B8 .4byte _080C39C0 .4byte _080C39C8 .4byte _080C39D0 .4byte _080C39D8 .4byte _080C39E0 .4byte _080C39E8 .4byte _080C39F0 .4byte _080C39F8 .4byte _080C3A00 .4byte _080C3A08 .4byte _080C3A10 .4byte _080C3A18 .4byte _080C3A1E .4byte _080C3A28 .4byte _080C3A30 .4byte _080C3A38 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3A40 .4byte _080C3A48 .4byte _080C3A50 .4byte _080C3A58 .4byte _080C3A60 .4byte _080C3A68 .4byte _080C3A70 .4byte _080C3A78 .4byte _080C3A80 .4byte _080C3A88 .4byte _080C3A90 .4byte _080C3A98 .4byte _080C3A9E .4byte _080C3AA8 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C3AC0 .4byte _080C39B4 _080C39B4: movs r0, 0 b _080C3AC2 _080C39B8: ldr r0, _080C39BC @ =0x000008a4 b _080C3AAA .align 2, 0 _080C39BC: .4byte 0x000008a4 _080C39C0: ldr r0, _080C39C4 @ =0x000008a5 b _080C3AAA .align 2, 0 _080C39C4: .4byte 0x000008a5 _080C39C8: ldr r0, _080C39CC @ =0x000008a6 b _080C3AAA .align 2, 0 _080C39CC: .4byte 0x000008a6 _080C39D0: ldr r0, _080C39D4 @ =0x000008a7 b _080C3AAA .align 2, 0 _080C39D4: .4byte 0x000008a7 _080C39D8: ldr r0, _080C39DC @ =0x000008a8 b _080C3AAA .align 2, 0 _080C39DC: .4byte 0x000008a8 _080C39E0: ldr r0, _080C39E4 @ =0x000008a9 b _080C3AAA .align 2, 0 _080C39E4: .4byte 0x000008a9 _080C39E8: ldr r0, _080C39EC @ =0x000008aa b _080C3AAA .align 2, 0 _080C39EC: .4byte 0x000008aa _080C39F0: ldr r0, _080C39F4 @ =0x000008ab b _080C3AAA .align 2, 0 _080C39F4: .4byte 0x000008ab _080C39F8: ldr r0, _080C39FC @ =0x000008ac b _080C3AAA .align 2, 0 _080C39FC: .4byte 0x000008ac _080C3A00: ldr r0, _080C3A04 @ =0x000008ad b _080C3AAA .align 2, 0 _080C3A04: .4byte 0x000008ad _080C3A08: ldr r0, _080C3A0C @ =0x000008ae b _080C3AAA .align 2, 0 _080C3A0C: .4byte 0x000008ae _080C3A10: ldr r0, _080C3A14 @ =0x000008af b _080C3AAA .align 2, 0 _080C3A14: .4byte 0x000008af _080C3A18: movs r0, 0x8B lsls r0, 4 b _080C3AAA _080C3A1E: ldr r0, _080C3A24 @ =0x000008b1 b _080C3AAA .align 2, 0 _080C3A24: .4byte 0x000008b1 _080C3A28: ldr r0, _080C3A2C @ =0x000008b2 b _080C3AAA .align 2, 0 _080C3A2C: .4byte 0x000008b2 _080C3A30: ldr r0, _080C3A34 @ =0x000008b3 b _080C3AAA .align 2, 0 _080C3A34: .4byte 0x000008b3 _080C3A38: ldr r0, _080C3A3C @ =0x000008b4 b _080C3AAA .align 2, 0 _080C3A3C: .4byte 0x000008b4 _080C3A40: ldr r0, _080C3A44 @ =0x000008b5 b _080C3AAA .align 2, 0 _080C3A44: .4byte 0x000008b5 _080C3A48: ldr r0, _080C3A4C @ =0x000008b6 b _080C3AAA .align 2, 0 _080C3A4C: .4byte 0x000008b6 _080C3A50: ldr r0, _080C3A54 @ =0x000008b7 b _080C3AAA .align 2, 0 _080C3A54: .4byte 0x000008b7 _080C3A58: ldr r0, _080C3A5C @ =0x000008b8 b _080C3AAA .align 2, 0 _080C3A5C: .4byte 0x000008b8 _080C3A60: ldr r0, _080C3A64 @ =0x000008b9 b _080C3AAA .align 2, 0 _080C3A64: .4byte 0x000008b9 _080C3A68: ldr r0, _080C3A6C @ =0x000008ba b _080C3AAA .align 2, 0 _080C3A6C: .4byte 0x000008ba _080C3A70: ldr r0, _080C3A74 @ =0x000008bb b _080C3AAA .align 2, 0 _080C3A74: .4byte 0x000008bb _080C3A78: ldr r0, _080C3A7C @ =0x000008bc b _080C3AAA .align 2, 0 _080C3A7C: .4byte 0x000008bc _080C3A80: ldr r0, _080C3A84 @ =0x000008bd b _080C3AAA .align 2, 0 _080C3A84: .4byte 0x000008bd _080C3A88: ldr r0, _080C3A8C @ =0x000008be b _080C3AAA .align 2, 0 _080C3A8C: .4byte 0x000008be _080C3A90: ldr r0, _080C3A94 @ =0x000008bf b _080C3AAA .align 2, 0 _080C3A94: .4byte 0x000008bf _080C3A98: movs r0, 0x8C lsls r0, 4 b _080C3AAA _080C3A9E: ldr r0, _080C3AA4 @ =0x000008c1 b _080C3AAA .align 2, 0 _080C3AA4: .4byte 0x000008c1 _080C3AA8: ldr r0, _080C3ABC @ =0x000008c2 _080C3AAA: bl FlagGet lsls r0, 24 movs r1, 0x3 cmp r0, 0 beq _080C3AB8 movs r1, 0x2 _080C3AB8: adds r0, r1, 0 b _080C3AC2 .align 2, 0 _080C3ABC: .4byte 0x000008c2 _080C3AC0: movs r0, 0x1 _080C3AC2: pop {r1} bx r1 thumb_func_end sub_80C3878 thumb_func_start sub_80C3AC8 sub_80C3AC8: @ 80C3AC8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080C3AE4 cmp r0, 0x1 beq _080C3AF0 ldr r0, _080C3AE0 @ =gUnknown_20399E4 ldr r0, [r0] ldrb r0, [r0, 0x16] b _080C3AF6 .align 2, 0 _080C3AE0: .4byte gUnknown_20399E4 _080C3AE4: ldr r0, _080C3AEC @ =gUnknown_20399E4 ldr r0, [r0] ldrb r0, [r0, 0x16] b _080C3AF6 .align 2, 0 _080C3AEC: .4byte gUnknown_20399E4 _080C3AF0: ldr r0, _080C3AFC @ =gUnknown_20399E4 ldr r0, [r0] ldrb r0, [r0, 0x18] _080C3AF6: pop {r1} bx r1 .align 2, 0 _080C3AFC: .4byte gUnknown_20399E4 thumb_func_end sub_80C3AC8 thumb_func_start sub_80C3B00 sub_80C3B00: @ 80C3B00 push {lr} ldr r0, _080C3B24 @ =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0x4 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] pop {r1} bx r1 .align 2, 0 _080C3B24: .4byte gSaveBlock1Ptr thumb_func_end sub_80C3B00 thumb_func_start sub_80C3B28 sub_80C3B28: @ 80C3B28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _080C3B58 @ =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0x4 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 bl get_map_light_level_by_bank_and_number lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x8 bhi _080C3B84 lsls r0, 2 ldr r1, _080C3B5C @ =_080C3B60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C3B58: .4byte gSaveBlock1Ptr _080C3B5C: .4byte _080C3B60 .align 2, 0 _080C3B60: .4byte _080C3B84 .4byte _080C3B84 .4byte _080C3B84 .4byte _080C3BAC .4byte _080C3B84 .4byte _080C3B84 .4byte _080C3BAC .4byte _080C3C2C .4byte _080C3BF0 _080C3B84: ldr r0, _080C3BA0 @ =gUnknown_20399E4 ldr r2, [r0] ldr r1, _080C3BA4 @ =gMapHeader ldrb r0, [r1, 0x14] strh r0, [r2, 0x14] ldr r0, [r1] ldrh r1, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldr r0, _080C3BA8 @ =gSaveBlock1Ptr ldr r0, [r0] ldrh r4, [r0] ldrh r5, [r0, 0x2] b _080C3C9A .align 2, 0 _080C3BA0: .4byte gUnknown_20399E4 _080C3BA4: .4byte gMapHeader _080C3BA8: .4byte gSaveBlock1Ptr _080C3BAC: ldr r4, _080C3BE8 @ =gSaveBlock1Ptr ldr r1, [r4] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 adds r1, 0x25 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r0, _080C3BEC @ =gUnknown_20399E4 ldr r1, [r0] ldrb r0, [r2, 0x14] strh r0, [r1, 0x14] ldr r0, [r2] ldrh r1, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldr r0, [r4] ldrh r4, [r0, 0x28] ldrh r5, [r0, 0x2A] b _080C3C9A .align 2, 0 _080C3BE8: .4byte gSaveBlock1Ptr _080C3BEC: .4byte gUnknown_20399E4 _080C3BF0: ldr r4, _080C3C24 @ =gSaveBlock1Ptr ldr r1, [r4] movs r0, 0x14 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x15] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r0, _080C3C28 @ =gUnknown_20399E4 ldr r1, [r0] ldrb r0, [r2, 0x14] strh r0, [r1, 0x14] ldr r0, [r2] ldrh r1, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldr r0, [r4] ldrh r4, [r0, 0x18] ldrh r5, [r0, 0x1A] b _080C3C9A .align 2, 0 _080C3C24: .4byte gSaveBlock1Ptr _080C3C28: .4byte gUnknown_20399E4 _080C3C2C: ldr r4, _080C3C5C @ =gUnknown_20399E4 ldr r0, [r4] ldr r1, _080C3C60 @ =gMapHeader ldrb r1, [r1, 0x14] strh r1, [r0, 0x14] cmp r1, 0xC4 beq _080C3C68 ldr r0, _080C3C64 @ =gSaveBlock1Ptr ldr r0, [r0] adds r5, r0, 0 adds r5, 0x24 movs r0, 0 ldrsb r0, [r5, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ldrsb r1, [r5, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 b _080C3C8E .align 2, 0 _080C3C5C: .4byte gUnknown_20399E4 _080C3C60: .4byte gMapHeader _080C3C64: .4byte gSaveBlock1Ptr _080C3C68: ldr r0, _080C3D30 @ =gSaveBlock1Ptr ldr r0, [r0] adds r5, r0, 0 adds r5, 0x14 ldrb r0, [r0, 0x14] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ldrsb r1, [r5, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r2, r0, 0 ldr r1, [r4] ldrb r0, [r2, 0x14] strh r0, [r1, 0x14] _080C3C8E: ldr r0, [r2] ldrh r1, [r0] ldrh r0, [r0, 0x4] mov r8, r0 ldrh r4, [r5, 0x4] ldrh r5, [r5, 0x6] _080C3C9A: ldr r0, _080C3D34 @ =gUnknown_20399E4 ldr r7, [r0] ldrh r0, [r7, 0x14] subs r0, 0x58 strh r0, [r7, 0x14] ldr r0, _080C3D38 @ =gUnknown_83F2178 mov r10, r0 ldrh r0, [r7, 0x14] lsls r0, 2 mov r9, r0 add r0, r10 ldrh r6, [r0] adds r0, r1, 0 adds r1, r6, 0 bl __udivsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080C3CC4 movs r1, 0x1 _080C3CC4: adds r0, r4, 0 bl __udivsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r6 bcc _080C3CD8 subs r0, r6, 0x1 lsls r0, 16 lsrs r4, r0, 16 _080C3CD8: mov r0, r10 adds r0, 0x2 add r0, r9 ldrh r6, [r0] mov r0, r8 adds r1, r6, 0 bl __udivsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _080C3CF2 movs r1, 0x1 _080C3CF2: adds r0, r5, 0 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r6 bcc _080C3D06 subs r0, r6, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080C3D06: ldr r1, _080C3D3C @ =gUnknown_83F1E60 mov r2, r9 adds r0, r2, r1 ldrh r0, [r0] adds r0, r4, r0 strh r0, [r7] ldrh r0, [r7, 0x14] lsls r0, 2 adds r1, 0x2 adds r0, r1 ldrh r0, [r0] adds r0, r5, r0 strh r0, [r7, 0x2] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C3D30: .4byte gSaveBlock1Ptr _080C3D34: .4byte gUnknown_20399E4 _080C3D38: .4byte gUnknown_83F2178 _080C3D3C: .4byte gUnknown_83F1E60 thumb_func_end sub_80C3B28 thumb_func_start sub_80C3D40 sub_80C3D40: @ 80C3D40 push {r4,r5,lr} bl sub_80C3B00 lsls r0, 16 lsrs r0, 16 subs r0, 0x66 cmp r0, 0x5C bls _080C3D52 b _080C4132 _080C3D52: lsls r0, 2 ldr r1, _080C3D5C @ =_080C3D60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C3D5C: .4byte _080C3D60 .align 2, 0 _080C3D60: .4byte _080C4034 .4byte _080C4132 .4byte _080C4132 .4byte _080C40A0 .4byte _080C40C4 .4byte _080C40E8 .4byte _080C4108 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4064 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4028 .4byte _080C4132 .4byte _080C3F24 .4byte _080C3F50 .4byte _080C3F78 .4byte _080C4132 .4byte _080C4132 .4byte _080C3F44 .4byte _080C3EE4 .4byte _080C3EF0 .4byte _080C3ED4 .4byte _080C3F38 .4byte _080C4132 .4byte _080C4132 .4byte _080C3F04 .4byte _080C4132 .4byte _080C3F10 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C4132 .4byte _080C3FB0 .4byte _080C3FC8 .4byte _080C3FD4 .4byte _080C4132 .4byte _080C3FF4 .4byte _080C3FBC .4byte _080C4014 .4byte _080C4132 .4byte _080C3FE0 .4byte _080C4132 .4byte _080C4008 .4byte _080C4132 .4byte _080C4132 .4byte _080C3FA4 .4byte _080C4008 .4byte _080C4008 .4byte _080C4008 .4byte _080C4008 .4byte _080C4008 .4byte _080C4008 .4byte _080C4008 _080C3ED4: ldr r0, _080C3EE0 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xC strh r0, [r1] strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C3EE0: .4byte gUnknown_20399E4 _080C3EE4: ldr r0, _080C3EEC @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xE b _080C411C .align 2, 0 _080C3EEC: .4byte gUnknown_20399E4 _080C3EF0: ldr r0, _080C3F00 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x4 strh r0, [r1] movs r0, 0xE strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C3F00: .4byte gUnknown_20399E4 _080C3F04: ldr r0, _080C3F0C @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x12 b _080C411C .align 2, 0 _080C3F0C: .4byte gUnknown_20399E4 _080C3F10: ldr r0, _080C3F20 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x12 strh r0, [r1] movs r0, 0x4 strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C3F20: .4byte gUnknown_20399E4 _080C3F24: ldr r0, _080C3F34 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xE strh r0, [r1] movs r0, 0x9 strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C3F34: .4byte gUnknown_20399E4 _080C3F38: ldr r0, _080C3F40 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x2 b _080C3FE6 .align 2, 0 _080C3F40: .4byte gUnknown_20399E4 _080C3F44: ldr r0, _080C3F4C @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xB b _080C411C .align 2, 0 _080C3F4C: .4byte gUnknown_20399E4 _080C3F50: ldr r0, _080C3F70 @ =gUnknown_20399E4 ldr r1, [r0] movs r2, 0xE strh r2, [r1] movs r0, 0x7 strh r0, [r1, 0x2] ldr r0, _080C3F74 @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0x1E beq _080C3F6C b _080C4136 _080C3F6C: b _080C40B6 .align 2, 0 _080C3F70: .4byte gUnknown_20399E4 _080C3F74: .4byte gSaveBlock1Ptr _080C3F78: ldr r0, _080C3F9C @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xC strh r0, [r1] movs r2, 0x6 strh r2, [r1, 0x2] ldr r0, _080C3FA0 @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0x23 beq _080C3F94 b _080C4136 _080C3F94: movs r0, 0xF strh r0, [r1] b _080C4136 .align 2, 0 _080C3F9C: .4byte gUnknown_20399E4 _080C3FA0: .4byte gSaveBlock1Ptr _080C3FA4: ldr r0, _080C3FAC @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x12 b _080C4092 .align 2, 0 _080C3FAC: .4byte gUnknown_20399E4 _080C3FB0: ldr r0, _080C3FB8 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xA b _080C401A .align 2, 0 _080C3FB8: .4byte gUnknown_20399E4 _080C3FBC: ldr r0, _080C3FC4 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x5 b _080C411C .align 2, 0 _080C3FC4: .4byte gUnknown_20399E4 _080C3FC8: ldr r0, _080C3FD0 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x2 b _080C3FE6 .align 2, 0 _080C3FD0: .4byte gUnknown_20399E4 _080C3FD4: ldr r0, _080C3FDC @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xE b _080C4078 .align 2, 0 _080C3FDC: .4byte gUnknown_20399E4 _080C3FE0: ldr r0, _080C3FF0 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x11 _080C3FE6: strh r0, [r1] movs r0, 0x3 strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C3FF0: .4byte gUnknown_20399E4 _080C3FF4: ldr r0, _080C4004 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x11 strh r0, [r1] movs r0, 0xB strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C4004: .4byte gUnknown_20399E4 _080C4008: ldr r0, _080C4010 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x9 b _080C4078 .align 2, 0 _080C4010: .4byte gUnknown_20399E4 _080C4014: ldr r0, _080C4024 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x10 _080C401A: strh r0, [r1] movs r0, 0x8 strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C4024: .4byte gUnknown_20399E4 _080C4028: ldr r0, _080C4030 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x4 b _080C411C .align 2, 0 _080C4030: .4byte gUnknown_20399E4 _080C4034: ldr r0, _080C404C @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080C4054 ldr r0, _080C4050 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x4 b _080C40D8 .align 2, 0 _080C404C: .4byte gSaveBlock1Ptr _080C4050: .4byte gUnknown_20399E4 _080C4054: cmp r0, 0x3 bne _080C412C ldr r0, _080C4060 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x4 b _080C40B4 .align 2, 0 _080C4060: .4byte gUnknown_20399E4 _080C4064: ldr r0, _080C4080 @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0x27 bne _080C4088 ldr r0, _080C4084 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x4 _080C4078: strh r0, [r1] movs r0, 0xC strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C4080: .4byte gSaveBlock1Ptr _080C4084: .4byte gUnknown_20399E4 _080C4088: cmp r0, 0x28 bne _080C4136 ldr r0, _080C409C @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0x4 _080C4092: strh r0, [r1] movs r0, 0xD strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C409C: .4byte gUnknown_20399E4 _080C40A0: ldr r0, _080C40BC @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _080C412C ldr r0, _080C40C0 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xE _080C40B4: strh r0, [r1] _080C40B6: movs r0, 0x5 strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C40BC: .4byte gSaveBlock1Ptr _080C40C0: .4byte gUnknown_20399E4 _080C40C4: ldr r0, _080C40E0 @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080C412C ldr r0, _080C40E4 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xE _080C40D8: strh r0, [r1] movs r0, 0x7 strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C40E0: .4byte gSaveBlock1Ptr _080C40E4: .4byte gUnknown_20399E4 _080C40E8: ldr r0, _080C4100 @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080C412C ldr r0, _080C4104 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xD b _080C411C .align 2, 0 _080C4100: .4byte gSaveBlock1Ptr _080C4104: .4byte gUnknown_20399E4 _080C4108: ldr r0, _080C4124 @ =gSaveBlock1Ptr ldr r0, [r0] ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080C412C ldr r0, _080C4128 @ =gUnknown_20399E4 ldr r1, [r0] movs r0, 0xF _080C411C: strh r0, [r1] movs r0, 0x6 strh r0, [r1, 0x2] b _080C4136 .align 2, 0 _080C4124: .4byte gSaveBlock1Ptr _080C4128: .4byte gUnknown_20399E4 _080C412C: bl sub_80C3B28 b _080C4136 _080C4132: bl sub_80C3B28 _080C4136: bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r4, _080C4160 @ =gUnknown_20399E4 ldr r1, [r4] movs r3, 0x2 ldrsh r2, [r1, r3] movs r5, 0 ldrsh r3, [r1, r5] movs r1, 0 bl sub_80C4164 ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x14] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C4160: .4byte gUnknown_20399E4 thumb_func_end sub_80C3D40 thumb_func_start sub_80C4164 sub_80C4164: @ 80C4164 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r1, r3, 16 cmp r0, 0x1 beq _080C4198 cmp r0, 0x1 bgt _080C4186 cmp r0, 0 beq _080C4190 b _080C41D0 _080C4186: cmp r5, 0x2 beq _080C41A0 cmp r5, 0x3 beq _080C41A8 b _080C41D0 _080C4190: ldr r3, _080C4194 @ =gUnknown_83F2490 b _080C41AA .align 2, 0 _080C4194: .4byte gUnknown_83F2490 _080C4198: ldr r3, _080C419C @ =gUnknown_83F2724 b _080C41AA .align 2, 0 _080C419C: .4byte gUnknown_83F2724 _080C41A0: ldr r3, _080C41A4 @ =gUnknown_83F29B8 b _080C41AA .align 2, 0 _080C41A4: .4byte gUnknown_83F29B8 _080C41A8: ldr r3, _080C41CC @ =gUnknown_83F2C4C _080C41AA: lsls r1, 16 asrs r1, 16 lsls r0, r2, 16 asrs r0, 16 movs r2, 0x16 muls r0, r2 adds r1, r0 lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 5 adds r0, r2 lsls r0, 1 adds r1, r0 adds r1, r3 ldrb r0, [r1] b _080C41D2 .align 2, 0 _080C41CC: .4byte gUnknown_83F2C4C _080C41D0: movs r0, 0xC5 _080C41D2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C4164 thumb_func_start sub_80C41D8 sub_80C41D8: @ 80C41D8 push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r5, r1, 16 ldr r4, _080C4204 @ =gUnknown_20399E8 movs r0, 0x8C bl AllocZeroed adds r1, r0, 0 str r1, [r4] ldr r0, _080C4208 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _080C4210 ldr r0, _080C420C @ =gUnknown_83EF59C adds r1, 0xC bl LZ77UnCompWram b _080C4218 .align 2, 0 _080C4204: .4byte gUnknown_20399E8 _080C4208: .4byte gSaveBlock2Ptr _080C420C: .4byte gUnknown_83EF59C _080C4210: ldr r0, _080C423C @ =gUnknown_83EF524 adds r1, 0xC bl LZ77UnCompWram _080C4218: ldr r4, _080C4240 @ =gUnknown_20399E8 ldr r0, [r4] strh r6, [r0, 0x8] strh r5, [r0, 0xA] bl sub_80C3508 ldr r1, [r4] strh r0, [r1] bl sub_80C3514 ldr r1, [r4] strh r0, [r1, 0x2] bl sub_80C4244 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C423C: .4byte gUnknown_83EF524 _080C4240: .4byte gUnknown_20399E8 thumb_func_end sub_80C41D8 thumb_func_start sub_80C4244 sub_80C4244: @ 80C4244 push {r4-r6,lr} sub sp, 0x40 ldr r6, _080C42FC @ =gUnknown_20399E8 ldr r2, [r6] adds r0, r2, 0 adds r0, 0xC str r0, [sp, 0x30] movs r1, 0x80 add r5, sp, 0x30 str r1, [r5, 0x4] ldrh r0, [r2, 0x8] lsls r0, 16 orrs r0, r1 str r0, [r5, 0x4] ldr r0, _080C4300 @ =gUnknown_83EF27C str r0, [sp, 0x38] ldrh r3, [r2, 0xA] ldr r1, _080C4304 @ =0xffff0000 add r4, sp, 0x38 ldr r0, [r4, 0x4] ands r0, r1 orrs r0, r3 str r0, [r4, 0x4] ldrh r0, [r2, 0x8] add r1, sp, 0x18 movs r3, 0 strh r0, [r1] ldrh r2, [r2, 0xA] mov r0, sp adds r0, 0x1A strh r2, [r0] ldr r0, _080C4308 @ =gUnknown_83F1C54 str r0, [sp, 0x1C] ldr r0, _080C430C @ =gUnknown_83F1C64 str r0, [sp, 0x20] str r3, [sp, 0x24] ldr r0, _080C4310 @ =gDummySpriteAffineAnimTable str r0, [sp, 0x28] ldr r0, _080C4314 @ =SpriteCallbackDummy str r0, [sp, 0x2C] mov r0, sp movs r2, 0x18 bl memcpy ldr r0, _080C4318 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _080C42AA ldr r0, _080C431C @ =gUnknown_83EF29C str r0, [sp, 0x38] _080C42AA: adds r0, r5, 0 bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette ldr r0, [r6] movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 19 movs r3, 0x90 lsls r3, 14 adds r1, r3 asrs r1, 16 movs r3, 0x2 ldrsh r2, [r0, r3] lsls r2, 19 movs r0, 0x90 lsls r0, 14 adds r2, r0 asrs r2, 16 mov r0, sp movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080C4320 @ =gSprites adds r1, r0 str r1, [r2, 0x4] movs r0, 0x1 bl sub_80C4324 add sp, 0x40 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C42FC: .4byte gUnknown_20399E8 _080C4300: .4byte gUnknown_83EF27C _080C4304: .4byte 0xffff0000 _080C4308: .4byte gUnknown_83F1C54 _080C430C: .4byte gUnknown_83F1C64 _080C4310: .4byte gDummySpriteAffineAnimTable _080C4314: .4byte SpriteCallbackDummy _080C4318: .4byte gSaveBlock2Ptr _080C431C: .4byte gUnknown_83EF29C _080C4320: .4byte gSprites thumb_func_end sub_80C4244 thumb_func_start sub_80C4324 sub_80C4324: @ 80C4324 lsls r0, 24 lsrs r0, 24 ldr r1, _080C4344 @ =gUnknown_20399E8 ldr r1, [r1] ldr r2, [r1, 0x4] adds r2, 0x3E movs r1, 0x1 ands r0, r1 lsls r0, 2 ldrb r3, [r2] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r0 strb r1, [r2] bx lr .align 2, 0 _080C4344: .4byte gUnknown_20399E8 thumb_func_end sub_80C4324 thumb_func_start sub_80C4348 sub_80C4348: @ 80C4348 push {r4,lr} ldr r4, _080C437C @ =gUnknown_20399E8 ldr r0, [r4] ldr r0, [r0, 0x4] cmp r0, 0 beq _080C4368 bl DestroySprite ldr r0, [r4] ldrh r0, [r0, 0x8] bl FreeSpriteTilesByTag ldr r0, [r4] ldrh r0, [r0, 0xA] bl FreeSpritePaletteByTag _080C4368: ldr r0, [r4] cmp r0, 0 beq _080C4376 bl Free movs r0, 0 str r0, [r4] _080C4376: pop {r4} pop {r0} bx r0 .align 2, 0 _080C437C: .4byte gUnknown_20399E8 thumb_func_end sub_80C4348 thumb_func_start sub_80C4380 sub_80C4380: @ 80C4380 ldr r0, _080C4388 @ =gUnknown_20399E8 ldr r0, [r0] ldrh r0, [r0] bx lr .align 2, 0 _080C4388: .4byte gUnknown_20399E8 thumb_func_end sub_80C4380 thumb_func_start sub_80C438C sub_80C438C: @ 80C438C ldr r0, _080C4394 @ =gUnknown_20399E8 ldr r0, [r0] ldrh r0, [r0, 0x2] bx lr .align 2, 0 _080C4394: .4byte gUnknown_20399E8 thumb_func_end sub_80C438C thumb_func_start sub_80C4398 sub_80C4398: @ 80C4398 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 ldr r5, _080C43F4 @ =gUnknown_20399EC ldr r0, _080C43F8 @ =0x0000046c bl AllocZeroed str r0, [r5] movs r2, 0x8D lsls r2, 3 adds r1, r0, r2 mov r2, r8 str r2, [r1] movs r1, 0x8C lsls r1, 3 adds r0, r1 strb r4, [r0] ldr r0, _080C43FC @ =gUnknown_83F18D8 ldr r1, [r5] bl LZ77UnCompWram ldr r0, _080C4400 @ =gUnknown_83F1908 ldr r1, [r5] adds r1, 0x40 bl LZ77UnCompWram ldr r1, _080C4404 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _080C4408 @ =sub_80C440C str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C43F4: .4byte gUnknown_20399EC _080C43F8: .4byte 0x0000046c _080C43FC: .4byte gUnknown_83F18D8 _080C4400: .4byte gUnknown_83F1908 _080C4404: .4byte gTasks _080C4408: .4byte sub_80C440C thumb_func_end sub_80C4398 thumb_func_start sub_80C440C sub_80C440C: @ 80C440C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _080C442C @ =gUnknown_20399EC ldr r0, [r0] ldr r1, _080C4430 @ =0x00000463 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bhi _080C44BC lsls r0, 2 ldr r1, _080C4434 @ =_080C4438 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C442C: .4byte gUnknown_20399EC _080C4430: .4byte 0x00000463 _080C4434: .4byte _080C4438 .align 2, 0 _080C4438: .4byte _080C444C .4byte _080C4452 .4byte _080C4468 .4byte _080C446E .4byte _080C44A0 _080C444C: bl sub_80C08E0 b _080C44A4 _080C4452: bl sub_80C47F0 ldr r0, _080C4460 @ =gUnknown_20399EC ldr r1, [r0] ldr r0, _080C4464 @ =0x00000463 adds r1, r0 b _080C44AC .align 2, 0 _080C4460: .4byte gUnknown_20399EC _080C4464: .4byte 0x00000463 _080C4468: bl sub_80C4750 b _080C44A4 _080C446E: movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _080C4498 @ =gUnknown_20399EC ldr r1, [r0] ldr r0, _080C449C @ =0x00000463 adds r1, r0 b _080C44AC .align 2, 0 _080C4498: .4byte gUnknown_20399EC _080C449C: .4byte 0x00000463 _080C44A0: bl sub_80C08F4 _080C44A4: ldr r0, _080C44B4 @ =gUnknown_20399EC ldr r1, [r0] ldr r2, _080C44B8 @ =0x00000463 adds r1, r2 _080C44AC: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C44DC .align 2, 0 _080C44B4: .4byte gUnknown_20399EC _080C44B8: .4byte 0x00000463 _080C44BC: movs r0, 0 bl GetGpuReg adds r1, r0, 0 movs r2, 0x80 lsls r2, 5 adds r0, r2, 0 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0 bl SetGpuReg adds r0, r4, 0 bl sub_80C44E4 _080C44DC: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80C440C thumb_func_start sub_80C44E4 sub_80C44E4: @ 80C44E4 lsls r0, 24 lsrs r0, 24 ldr r2, _080C4504 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, _080C4508 @ =gUnknown_20399EC ldr r0, [r0] movs r2, 0x8D lsls r2, 3 adds r0, r2 ldr r0, [r0] str r0, [r1] bx lr .align 2, 0 _080C4504: .4byte gTasks _080C4508: .4byte gUnknown_20399EC thumb_func_end sub_80C44E4 thumb_func_start sub_80C450C sub_80C450C: @ 80C450C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r10, r0 mov r9, r1 adds r4, r2, 0 adds r5, r3, 0 ldr r3, [sp, 0x4C] ldr r6, [sp, 0x50] lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 str r5, [sp, 0x28] lsls r3, 24 lsrs r3, 24 lsls r6, 24 lsrs r6, 24 ldr r7, _080C45F4 @ =gUnknown_20399EC ldr r0, [r7] adds r0, 0x40 str r0, [sp, 0x18] movs r2, 0x80 lsls r2, 1 add r0, sp, 0x18 lsls r1, r3, 16 orrs r1, r2 str r1, [r0, 0x4] ldr r1, _080C45F8 @ =gUnknown_83EF2BC str r1, [sp, 0x20] ldr r2, _080C45FC @ =0xffff0000 add r5, sp, 0x20 mov r8, r5 ldr r1, [r5, 0x4] ands r1, r2 orrs r1, r6 str r1, [r5, 0x4] mov r1, sp movs r2, 0 strh r3, [r1] strh r6, [r1, 0x2] ldr r1, _080C4600 @ =gUnknown_83F1C68 str r1, [sp, 0x4] ldr r1, _080C4604 @ =gUnknown_83F1C94 str r1, [sp, 0x8] str r2, [sp, 0xC] ldr r1, _080C4608 @ =gDummySpriteAffineAnimTable str r1, [sp, 0x10] ldr r1, _080C460C @ =SpriteCallbackDummy str r1, [sp, 0x14] bl LoadSpriteSheet mov r0, r8 bl LoadSpritePalette lsls r4, 19 movs r0, 0x90 lsls r0, 14 adds r4, r0 asrs r4, 16 ldr r1, [sp, 0x28] lsls r5, r1, 19 adds r5, r0 asrs r5, 16 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r7] mov r5, r9 lsls r5, 4 mov r9, r5 movs r1, 0xB6 lsls r1, 2 adds r2, r1 add r2, r9 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080C4610 @ =gSprites adds r1, r0 str r1, [r2] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r0, [r7] add r0, r9 movs r2, 0xB5 lsls r2, 2 adds r0, r2 mov r5, r10 strb r5, [r0] 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 _080C45F4: .4byte gUnknown_20399EC _080C45F8: .4byte gUnknown_83EF2BC _080C45FC: .4byte 0xffff0000 _080C4600: .4byte gUnknown_83F1C68 _080C4604: .4byte gUnknown_83F1C94 _080C4608: .4byte gDummySpriteAffineAnimTable _080C460C: .4byte SpriteCallbackDummy _080C4610: .4byte gSprites thumb_func_end sub_80C450C thumb_func_start sub_80C4614 sub_80C4614: @ 80C4614 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C ldr r4, [sp, 0x4C] ldr r5, [sp, 0x50] lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x28] lsls r2, 16 lsrs r2, 16 mov r8, r2 lsls r3, 16 lsrs r3, 16 mov r9, r3 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r7, 0 ldr r0, _080C4730 @ =gUnknown_20399EC ldr r0, [r0] str r0, [sp, 0x18] movs r2, 0x40 add r0, sp, 0x18 lsls r1, r4, 16 orrs r1, r2 str r1, [r0, 0x4] ldr r1, _080C4734 @ =gUnknown_83EF2BC str r1, [sp, 0x20] ldr r2, _080C4738 @ =0xffff0000 add r6, sp, 0x20 ldr r1, [r6, 0x4] ands r1, r2 orrs r1, r5 str r1, [r6, 0x4] mov r1, sp strh r4, [r1] strh r5, [r1, 0x2] ldr r1, _080C473C @ =gUnknown_83F1C70 str r1, [sp, 0x4] ldr r1, _080C4740 @ =gUnknown_83F1C98 str r1, [sp, 0x8] str r7, [sp, 0xC] ldr r1, _080C4744 @ =gDummySpriteAffineAnimTable str r1, [sp, 0x10] ldr r1, _080C4748 @ =SpriteCallbackDummy str r1, [sp, 0x14] bl LoadSpriteSheet adds r0, r6, 0 bl LoadSpritePalette mov r0, r9 lsls r2, r0, 16 asrs r2, 16 mov r1, r8 lsls r3, r1, 16 asrs r3, 16 mov r0, r10 movs r1, 0 bl sub_80C4164 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl sub_80C35DC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080C46BE adds r0, r4, 0 bl sub_80C35DC lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080C46C4 _080C46BE: cmp r5, 0x64 beq _080C46C4 movs r7, 0x2 _080C46C4: mov r3, r8 lsls r1, r3, 3 lsls r0, r7, 16 asrs r0, 16 adds r0, 0x24 adds r1, r0 lsls r1, 16 asrs r1, 16 mov r3, r9 lsls r2, r3, 3 adds r2, r0 lsls r2, 16 asrs r2, 16 mov r0, sp movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, _080C4730 @ =gUnknown_20399EC ldr r2, [r4] ldr r1, [sp, 0x28] lsls r3, r1, 4 movs r1, 0xA4 lsls r1, 1 adds r2, r1 adds r2, r3 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080C474C @ =gSprites adds r1, r0 str r1, [r2] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r0, [r4] adds r0, r3 movs r3, 0xA2 lsls r3, 1 adds r0, r3 mov r1, r10 strb r1, [r0] 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 _080C4730: .4byte gUnknown_20399EC _080C4734: .4byte gUnknown_83EF2BC _080C4738: .4byte 0xffff0000 _080C473C: .4byte gUnknown_83F1C70 _080C4740: .4byte gUnknown_83F1C98 _080C4744: .4byte gDummySpriteAffineAnimTable _080C4748: .4byte SpriteCallbackDummy _080C474C: .4byte gSprites thumb_func_end sub_80C4614 thumb_func_start sub_80C4750 sub_80C4750: @ 80C4750 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r7, 0 movs r0, 0x3 bl sub_80C0E04 lsls r0, 24 cmp r0, 0 beq _080C47E0 movs r1, 0 _080C476C: movs r5, 0 lsls r0, r1, 24 adds r1, 0x1 mov r10, r1 lsrs r0, 24 str r0, [sp, 0x8] _080C4778: movs r4, 0 lsls r0, r5, 16 mov r8, r0 adds r1, r5, 0x1 mov r9, r1 _080C4782: lsls r3, r4, 16 asrs r3, 16 ldr r0, [sp, 0x8] movs r1, 0 mov r6, r8 asrs r2, r6, 16 bl sub_80C4164 lsls r0, 24 lsrs r0, 24 bl sub_80C35DC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C47C2 adds r0, r7, 0 adds r0, 0xA lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xA str r0, [sp, 0x4] ldr r0, [sp, 0x8] adds r1, r7, 0 adds r2, r4, 0 adds r3, r5, 0 bl sub_80C450C adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080C47C2: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x15 bls _080C4782 mov r1, r9 lsls r0, r1, 16 lsrs r5, r0, 16 cmp r5, 0xE bls _080C4778 mov r6, r10 lsls r0, r6, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080C476C _080C47E0: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C4750 thumb_func_start sub_80C47F0 sub_80C47F0: @ 80C47F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r6, 0 movs r1, 0 _080C4800: movs r7, 0 lsls r0, r1, 24 adds r1, 0x1 str r1, [sp, 0x8] lsrs r0, 24 mov r8, r0 _080C480C: movs r5, 0 lsls r0, r7, 16 mov r9, r0 adds r1, r7, 0x1 mov r10, r1 _080C4816: lsls r3, r5, 16 asrs r3, 16 mov r0, r8 movs r1, 0x1 mov r4, r9 asrs r2, r4, 16 bl sub_80C4164 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 cmp r0, 0xC5 beq _080C4884 cmp r0, 0x8D bne _080C4840 ldr r0, _080C48B4 @ =0x00000844 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080C4884 _080C4840: adds r0, r6, 0 adds r0, 0x23 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xA str r0, [sp, 0x4] mov r0, r8 adds r1, r6, 0 adds r2, r5, 0 adds r3, r7, 0 bl sub_80C4614 adds r0, r4, 0 bl sub_80C3878 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080C487E ldr r0, _080C48B8 @ =gUnknown_20399EC ldr r0, [r0] lsls r1, r6, 4 movs r2, 0xA4 lsls r2, 1 adds r0, r2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim _080C487E: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080C4884: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x15 bls _080C4816 mov r4, r10 lsls r0, r4, 16 lsrs r7, r0, 16 cmp r7, 0xE bls _080C480C ldr r1, [sp, 0x8] lsls r0, r1, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _080C4800 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C48B4: .4byte 0x00000844 _080C48B8: .4byte gUnknown_20399EC thumb_func_end sub_80C47F0 thumb_func_start sub_80C48BC sub_80C48BC: @ 80C48BC push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r5, r2, 24 cmp r1, 0x19 bne _080C4920 movs r3, 0 ldr r0, _080C491C @ =gUnknown_20399EC mov r12, r0 movs r1, 0x1 adds r0, r5, 0 ands r0, r1 lsls r5, r0, 2 movs r6, 0x5 negs r6, r6 _080C48E0: mov r7, r12 ldr r1, [r7] lsls r2, r3, 4 adds r0, r1, r2 movs r7, 0xB5 lsls r7, 2 adds r0, r7 ldrb r0, [r0] cmp r0, r4 beq _080C48F8 cmp r4, 0xFF bne _080C490E _080C48F8: movs r7, 0xB6 lsls r7, 2 adds r0, r1, r7 adds r0, r2 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 orrs r0, r5 strb r0, [r1] _080C490E: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x18 bls _080C48E0 b _080C4954 .align 2, 0 _080C491C: .4byte gUnknown_20399EC _080C4920: ldr r0, _080C495C @ =gUnknown_20399EC ldr r2, [r0] lsls r1, 4 adds r0, r2, r1 movs r3, 0xB5 lsls r3, 2 adds r0, r3 ldrb r0, [r0] cmp r0, r4 bne _080C4954 movs r7, 0xB6 lsls r7, 2 adds r0, r2, r7 adds r0, r1 ldr r2, [r0] adds r2, 0x3E movs r0, 0x1 adds r1, r5, 0 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _080C4954: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C495C: .4byte gUnknown_20399EC thumb_func_end sub_80C48BC thumb_func_start sub_80C4960 sub_80C4960: @ 80C4960 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r5, r2, 24 cmp r1, 0x19 bne _080C49C4 movs r3, 0 ldr r0, _080C49C0 @ =gUnknown_20399EC mov r12, r0 movs r1, 0x1 adds r0, r5, 0 ands r0, r1 lsls r5, r0, 2 movs r6, 0x5 negs r6, r6 _080C4984: mov r7, r12 ldr r1, [r7] lsls r2, r3, 4 adds r0, r1, r2 movs r7, 0xA2 lsls r7, 1 adds r0, r7 ldrb r0, [r0] cmp r0, r4 beq _080C499C cmp r4, 0xFF bne _080C49B2 _080C499C: movs r7, 0xA4 lsls r7, 1 adds r0, r1, r7 adds r0, r2 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 orrs r0, r5 strb r0, [r1] _080C49B2: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x18 bls _080C4984 b _080C49F8 .align 2, 0 _080C49C0: .4byte gUnknown_20399EC _080C49C4: ldr r0, _080C4A00 @ =gUnknown_20399EC ldr r2, [r0] lsls r1, 4 adds r0, r2, r1 movs r3, 0xA2 lsls r3, 1 adds r0, r3 ldrb r0, [r0] cmp r0, r4 beq _080C49F8 movs r7, 0xA4 lsls r7, 1 adds r0, r2, r7 adds r0, r1 ldr r2, [r0] adds r2, 0x3E movs r0, 0x1 adds r1, r5, 0 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _080C49F8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C4A00: .4byte gUnknown_20399EC thumb_func_end sub_80C4960 thumb_func_start sub_80C4A04 sub_80C4A04: @ 80C4A04 push {r4-r6,lr} movs r5, 0 ldr r6, _080C4AA4 @ =gUnknown_20399EC _080C4A0A: ldr r0, [r6] lsls r4, r5, 4 movs r1, 0xB6 lsls r1, 2 adds r0, r1 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _080C4A3E bl DestroySprite ldr r0, [r6] adds r0, r4 movs r1, 0xB7 lsls r1, 2 adds r0, r1 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r6] adds r0, r4 ldr r1, _080C4AA8 @ =0x000002de adds r0, r1 ldrh r0, [r0] bl FreeSpritePaletteByTag _080C4A3E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x18 bls _080C4A0A movs r5, 0 ldr r6, _080C4AA4 @ =gUnknown_20399EC _080C4A4C: ldr r0, [r6] lsls r4, r5, 4 movs r1, 0xA4 lsls r1, 1 adds r0, r1 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _080C4A82 bl DestroySprite ldr r0, [r6] adds r0, r4 movs r1, 0xA6 lsls r1, 1 adds r0, r1 ldrh r0, [r0] bl FreeSpriteTilesByTag ldr r0, [r6] adds r0, r4 movs r1, 0xA7 lsls r1, 1 adds r0, r1 ldrh r0, [r0] bl FreeSpritePaletteByTag _080C4A82: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x18 bls _080C4A4C ldr r4, _080C4AA4 @ =gUnknown_20399EC ldr r0, [r4] cmp r0, 0 beq _080C4A9C bl Free movs r0, 0 str r0, [r4] _080C4A9C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C4AA4: .4byte gUnknown_20399EC _080C4AA8: .4byte 0x000002de thumb_func_end sub_80C4A04 thumb_func_start sub_80C4AAC sub_80C4AAC: @ 80C4AAC push {r4,lr} lsls r0, 24 ldr r1, _080C4B24 @ =gUnknown_20399F0 lsrs r0, 22 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 bne _080C4B28 movs r0, 0x14 bl AllocZeroed str r0, [r4] movs r0, 0x50 bl GetGpuReg ldr r1, [r4] strh r0, [r1] movs r0, 0x54 bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0x2] movs r0, 0x52 bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0x4] movs r0, 0x48 bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0x6] movs r0, 0x4A bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0x8] movs r0, 0x40 bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0xA] movs r0, 0x42 bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0xC] movs r0, 0x44 bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0xE] movs r0, 0x46 bl GetGpuReg ldr r1, [r4] strh r0, [r1, 0x10] movs r0, 0x1 b _080C4B2A .align 2, 0 _080C4B24: .4byte gUnknown_20399F0 _080C4B28: movs r0, 0 _080C4B2A: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C4AAC thumb_func_start sub_80C4B30 sub_80C4B30: @ 80C4B30 push {r4,lr} lsls r0, 24 ldr r1, _080C4B44 @ =gUnknown_20399F0 lsrs r0, 22 adds r4, r0, r1 ldr r0, [r4] cmp r0, 0 bne _080C4B48 movs r0, 0 b _080C4BB0 .align 2, 0 _080C4B44: .4byte gUnknown_20399F0 _080C4B48: ldrh r1, [r0] movs r0, 0x50 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x2] movs r0, 0x54 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x4] movs r0, 0x52 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x6] movs r0, 0x48 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x8] movs r0, 0x4A bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0xA] movs r0, 0x40 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0xC] movs r0, 0x42 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0xE] movs r0, 0x44 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x10] movs r0, 0x46 bl SetGpuReg ldr r0, [r4] cmp r0, 0 beq _080C4BAE bl Free movs r0, 0 str r0, [r4] _080C4BAE: movs r0, 0x1 _080C4BB0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C4B30 thumb_func_start sub_80C4BB8 sub_80C4BB8: @ 80C4BB8 push {r4-r6,lr} movs r5, 0 ldr r6, _080C4BE0 @ =gUnknown_20399F0 _080C4BBE: lsls r0, r5, 2 adds r4, r0, r6 ldr r0, [r4] cmp r0, 0 beq _080C4BD0 bl Free movs r0, 0 str r0, [r4] _080C4BD0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _080C4BBE pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C4BE0: .4byte gUnknown_20399F0 thumb_func_end sub_80C4BB8 thumb_func_start sub_80C4BE4 sub_80C4BE4: @ 80C4BE4 push {lr} sub sp, 0x8 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] movs r1, 0 movs r2, 0 bl sub_80C4C2C movs r0, 0 bl sub_80C4C48 movs r0, 0 mov r1, sp bl sub_80C4CF0 movs r0, 0x1 mov r1, sp bl sub_80C4CF0 movs r0, 0 movs r1, 0 bl sub_80C4C74 movs r0, 0 movs r1, 0x1 bl sub_80C4C9C movs r0, 0x1 movs r1, 0x1 bl sub_80C4C9C add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80C4BE4 thumb_func_start sub_80C4C2C sub_80C4C2C: @ 80C4C2C push {lr} adds r3, r0, 0 lsls r1, 16 lsls r2, 16 lsls r3, 24 orrs r3, r1 orrs r3, r2 lsrs r3, 16 movs r0, 0x50 adds r1, r3, 0 bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_80C4C2C thumb_func_start sub_80C4C48 sub_80C4C48: @ 80C4C48 push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0x54 bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_80C4C48 thumb_func_start sub_80C4C5C sub_80C4C5C: @ 80C4C5C push {lr} adds r2, r0, 0 lsls r1, 16 lsls r2, 24 orrs r2, r1 lsrs r2, 16 movs r0, 0x52 adds r1, r2, 0 bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_80C4C5C thumb_func_start sub_80C4C74 sub_80C4C74: @ 80C4C74 push {lr} lsls r0, 16 lsls r1, 24 orrs r1, r0 lsrs r1, 16 movs r0, 0x48 bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_80C4C74 thumb_func_start sub_80C4C88 sub_80C4C88: @ 80C4C88 push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0x4A bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_80C4C88 thumb_func_start sub_80C4C9C sub_80C4C9C: @ 80C4C9C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 ldr r1, _080C4CBC @ =gUnknown_83F1CA0 mov r0, sp movs r2, 0x4 bl memcpy cmp r4, 0 beq _080C4CC0 cmp r4, 0x1 beq _080C4CDC b _080C4CE8 .align 2, 0 _080C4CBC: .4byte gUnknown_83F1CA0 _080C4CC0: movs r0, 0 bl GetGpuReg adds r1, r0, 0 lsls r0, r5, 1 add r0, sp ldrh r0, [r0] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0 bl SetGpuReg b _080C4CE8 _080C4CDC: lsls r0, r5, 1 add r0, sp ldrh r1, [r0] movs r0, 0 bl ClearGpuRegBits _080C4CE8: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C4C9C thumb_func_start sub_80C4CF0 sub_80C4CF0: @ 80C4CF0 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 lsls r4, 24 ldr r5, _080C4D2C @ =gUnknown_83F1CA4 lsrs r4, 23 adds r0, r4, r5 ldrb r0, [r0] ldrh r1, [r6, 0x2] lsls r1, 8 ldrh r2, [r6, 0x6] orrs r1, r2 lsls r1, 16 lsrs r1, 16 bl SetGpuReg adds r5, 0x1 adds r4, r5 ldrb r0, [r4] ldrh r1, [r6] lsls r1, 8 ldrh r2, [r6, 0x4] orrs r1, r2 lsls r1, 16 lsrs r1, 16 bl SetGpuReg pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C4D2C: .4byte gUnknown_83F1CA4 thumb_func_end sub_80C4CF0 thumb_func_start sub_80C4D30 sub_80C4D30: @ 80C4D30 push {lr} bl sub_80C4BB8 bl sub_80C4BE4 pop {r0} bx r0 thumb_func_end sub_80C4D30 thumb_func_start sub_80C4D40 sub_80C4D40: @ 80C4D40 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, _080C4D68 @ =gUnknown_20399D4 ldr r0, [r0] cmp r0, 0 bne _080C4D70 cmp r1, 0x5E bne _080C4D70 ldr r0, _080C4D6C @ =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, 0xA bne _080C4D70 ldrb r0, [r1, 0x5] cmp r0, 0x6 bhi _080C4D70 movs r0, 0x1 b _080C4D72 .align 2, 0 _080C4D68: .4byte gUnknown_20399D4 _080C4D6C: .4byte gSaveBlock1Ptr _080C4D70: movs r0, 0 _080C4D72: pop {r1} bx r1 thumb_func_end sub_80C4D40 thumb_func_start sub_80C4D78 sub_80C4D78: @ 80C4D78 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsls r2, 16 lsrs r4, r2, 16 lsrs r0, r1, 16 ldr r2, _080C4D9C @ =0xffa80000 adds r1, r2 lsrs r5, r1, 16 cmp r5, 0x6C bhi _080C4DBC bl sub_80C4D40 cmp r0, 0x1 bne _080C4DA4 ldr r1, _080C4DA0 @ =gMapSecName_CeladonDept b _080C4DAC .align 2, 0 _080C4D9C: .4byte 0xffa80000 _080C4DA0: .4byte gMapSecName_CeladonDept _080C4DA4: ldr r0, _080C4DB8 @ =gUnknown_83F1CAC lsls r1, r5, 2 adds r1, r0 ldr r1, [r1] _080C4DAC: adds r0, r6, 0 bl StringCopy adds r1, r0, 0 b _080C4DCE .align 2, 0 _080C4DB8: .4byte gUnknown_83F1CAC _080C4DBC: cmp r4, 0 bne _080C4DC2 movs r4, 0x12 _080C4DC2: adds r0, r6, 0 movs r1, 0 adds r2, r4, 0 bl StringFill b _080C4DF2 _080C4DCE: cmp r4, 0 beq _080C4DF0 subs r0, r1, r6 lsls r0, 16 lsrs r0, 16 cmp r0, r4 bcs _080C4DEC movs r2, 0 _080C4DDE: strb r2, [r1] adds r1, 0x1 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, r4 bcc _080C4DDE _080C4DEC: movs r0, 0xFF strb r0, [r1] _080C4DF0: adds r0, r1, 0 _080C4DF2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C4D78 thumb_func_start sub_80C4DF8 sub_80C4DF8: @ 80C4DF8 push {lr} lsls r1, 16 lsrs r1, 16 movs r2, 0 bl sub_80C4D78 pop {r1} bx r1 thumb_func_end sub_80C4DF8 thumb_func_start sub_80C4E08 sub_80C4E08: @ 80C4E08 push {lr} lsls r1, 16 lsrs r1, 16 bl sub_80C4DF8 pop {r1} bx r1 thumb_func_end sub_80C4E08 thumb_func_start sub_80C4E18 sub_80C4E18: @ 80C4E18 push {r4,lr} sub sp, 0xC adds r4, r0, 0 ldr r0, _080C4E38 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C4E3C @ =0x00004799 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080C4E40 movs r0, 0x3 movs r1, 0 bl FillWindowPixelBuffer b _080C4E48 .align 2, 0 _080C4E38: .4byte gUnknown_20399D4 _080C4E3C: .4byte 0x00004799 _080C4E40: movs r0, 0x3 movs r1, 0xFF bl FillWindowPixelBuffer _080C4E48: ldr r0, _080C4E70 @ =gUnknown_83F1CA8 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0 bl AddTextPrinterParameterized3 movs r0, 0x3 movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080C4E70: .4byte gUnknown_83F1CA8 thumb_func_end sub_80C4E18 thumb_func_start sub_80C4E74 sub_80C4E74: @ 80C4E74 push {r4,lr} sub sp, 0xC adds r4, r0, 0 ldr r0, _080C4E94 @ =gUnknown_20399D4 ldr r0, [r0] ldr r1, _080C4E98 @ =0x00004799 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080C4E9C movs r0, 0x4 movs r1, 0 bl FillWindowPixelBuffer b _080C4EA4 .align 2, 0 _080C4E94: .4byte gUnknown_20399D4 _080C4E98: .4byte 0x00004799 _080C4E9C: movs r0, 0x4 movs r1, 0xFF bl FillWindowPixelBuffer _080C4EA4: ldr r0, _080C4ECC @ =gUnknown_83F1CA8 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x4 movs r1, 0 movs r2, 0 movs r3, 0 bl AddTextPrinterParameterized3 movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080C4ECC: .4byte gUnknown_83F1CA8 thumb_func_end sub_80C4E74 thumb_func_start sub_80C4ED0 sub_80C4ED0: @ 80C4ED0 push {lr} lsls r0, 24 cmp r0, 0 bne _080C4EE6 movs r0, 0x3 bl PutWindowTilemap movs r0, 0x4 bl PutWindowTilemap b _080C4EF2 _080C4EE6: movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x4 bl ClearWindowTilemap _080C4EF2: pop {r0} bx r0 thumb_func_end sub_80C4ED0 thumb_func_start sub_80C4EF8 sub_80C4EF8: @ 80C4EF8 push {lr} bl sub_80C51E8 movs r0, 0x2 bl sub_80BFEDC pop {r0} bx r0 thumb_func_end sub_80C4EF8 thumb_func_start sub_80C4F08 sub_80C4F08: @ 80C4F08 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _080C4F28 @ =gUnknown_20399FC ldr r2, [r0] ldrb r0, [r2] cmp r0, 0x6 bls _080C4F1C b _080C51B8 _080C4F1C: lsls r0, 2 ldr r1, _080C4F2C @ =_080C4F30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C4F28: .4byte gUnknown_20399FC _080C4F2C: .4byte _080C4F30 .align 2, 0 _080C4F30: .4byte _080C4F4C .4byte _080C4F92 .4byte _080C4FEC .4byte _080C5000 .4byte _080C5028 .4byte _080C5180 .4byte _080C5196 _080C4F4C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl sub_80C0E20 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80C07E4 adds r2, r0, 0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80C4398 movs r0, 0 movs r1, 0 bl sub_80C3008 movs r0, 0x1 movs r1, 0x1 bl sub_80C41D8 movs r0, 0 bl sub_80C3154 movs r0, 0 bl sub_80C4324 b _080C51A6 _080C4F92: movs r0, 0x2 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C4FAE bl sub_80C07E4 adds r1, r0, 0 adds r0, r5, 0 bl sub_80C2208 b _080C51A6 _080C4FAE: movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg movs r0, 0x1 bl ShowBg ldr r0, _080C4FE8 @ =gUnknown_8418EB5 bl sub_80C4E18 bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0 bl sub_80C48BC bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0 bl sub_80C4960 b _080C51A6 .align 2, 0 _080C4FE8: .4byte gUnknown_8418EB5 _080C4FEC: ldr r0, _080C4FFC @ =gUnknown_8418EB0 bl sub_80C4E74 movs r0, 0 bl sub_80C4ED0 b _080C51A6 .align 2, 0 _080C4FFC: .4byte gUnknown_8418EB0 _080C5000: ldr r0, _080C5024 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C500E b _080C51DC _080C500E: bl sub_80C0B18 movs r0, 0 bl PutWindowTilemap bl sub_80C0BB0 movs r0, 0x1 bl PutWindowTilemap b _080C51A6 .align 2, 0 _080C5024: .4byte gPaletteFade _080C5028: bl sub_80C3400 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x5 bls _080C5038 b _080C51DC _080C5038: lsls r0, 2 ldr r1, _080C5044 @ =_080C5048 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C5044: .4byte _080C5048 .align 2, 0 _080C5048: .4byte _080C51DC .4byte _080C51DC .4byte _080C5070 .4byte _080C50F8 .4byte _080C5168 .4byte _080C5060 _080C5060: ldr r0, _080C506C @ =gUnknown_20399FC ldr r1, [r0] movs r0, 0x6 strb r0, [r1] b _080C51DC .align 2, 0 _080C506C: .4byte gUnknown_20399FC _080C5070: movs r0, 0 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _080C5086 movs r0, 0x66 bl PlaySE b _080C508A _080C5086: bl sub_80C0450 _080C508A: bl sub_80C3178 bl sub_80C0B18 bl sub_80C0BB0 bl sub_80C0B9C bl sub_80C3508 lsls r0, 16 lsrs r0, 16 cmp r0, 0x15 bne _080C50C4 bl sub_80C3514 lsls r0, 16 lsrs r0, 16 cmp r0, 0xD bne _080C50C4 movs r0, 0xE1 bl PlaySE ldr r0, _080C50C0 @ =gUnknown_8418E95 bl sub_80C4E74 b _080C51DC .align 2, 0 _080C50C0: .4byte gUnknown_8418E95 _080C50C4: movs r0, 0 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080C50E0 movs r0, 0 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C50EC _080C50E0: ldr r0, _080C50E8 @ =gUnknown_8418EB0 bl sub_80C4E74 b _080C51DC .align 2, 0 _080C50E8: .4byte gUnknown_8418EB0 _080C50EC: ldr r0, _080C50F4 @ =gUnknown_8418E8B bl sub_80C4E74 b _080C51DC .align 2, 0 _080C50F4: .4byte gUnknown_8418E8B _080C50F8: movs r0, 0 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080C5114 movs r0, 0 bl sub_80C3AC8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080C51DC _080C5114: movs r0, 0x3 bl sub_80C0E04 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _080C51DC ldr r0, _080C514C @ =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0x4 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 bl get_map_light_level_by_bank_and_number lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _080C5140 cmp r0, 0x8 bne _080C5154 _080C5140: ldr r2, _080C5150 @ =gUnknown_20399FC ldr r1, [r2] movs r0, 0 strb r0, [r1, 0x2] ldr r1, [r2] b _080C51AA .align 2, 0 _080C514C: .4byte gSaveBlock1Ptr _080C5150: .4byte gUnknown_20399FC _080C5154: movs r0, 0x1 bl PlaySE ldr r1, _080C5164 @ =gUnknown_20399FC ldr r0, [r1] strb r4, [r0, 0x2] ldr r1, [r1] b _080C51AA .align 2, 0 _080C5164: .4byte gUnknown_20399FC _080C5168: bl sub_80C0E20 lsls r0, 24 lsrs r0, 24 ldr r2, _080C517C @ =sub_80C07F8 adds r1, r5, 0 bl sub_80C0E70 b _080C51DC .align 2, 0 _080C517C: .4byte sub_80C07F8 _080C5180: movs r0, 0x2 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C51A6 adds r0, r5, 0 bl sub_80C2C1C b _080C51A6 _080C5196: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _080C51A6: ldr r0, _080C51B4 @ =gUnknown_20399FC ldr r1, [r0] _080C51AA: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C51DC .align 2, 0 _080C51B4: .4byte gUnknown_20399FC _080C51B8: ldr r0, _080C51E4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C51DC ldrb r0, [r2, 0x2] cmp r0, 0x1 bne _080C51D6 bl sub_80C3520 lsls r0, 16 lsrs r0, 16 bl sub_80C527C _080C51D6: adds r0, r5, 0 bl sub_80C5208 _080C51DC: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C51E4: .4byte gPaletteFade thumb_func_end sub_80C4F08 thumb_func_start sub_80C51E8 sub_80C51E8: @ 80C51E8 push {r4,lr} ldr r4, _080C5204 @ =gUnknown_20399FC movs r0, 0x4 bl AllocZeroed str r0, [r4] movs r1, 0 strb r1, [r0] ldr r0, [r4] strb r1, [r0, 0x1] pop {r4} pop {r0} bx r0 .align 2, 0 _080C5204: .4byte gUnknown_20399FC thumb_func_end sub_80C51E8 thumb_func_start sub_80C5208 sub_80C5208: @ 80C5208 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 bl sub_80C0E04 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080C5220 bl sub_80C25BC _080C5220: bl sub_80C4A04 bl sub_80C3188 bl sub_80C4348 bl sub_80C4D30 bl sub_80C0898 adds r0, r4, 0 bl DestroyTask bl FreeAllWindowBuffers ldr r0, _080C5250 @ =gUnknown_20399FC ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0x1 bne _080C5258 ldr r0, _080C5254 @ =CB2_ReturnToField bl SetMainCallback2 b _080C525E .align 2, 0 _080C5250: .4byte gUnknown_20399FC _080C5254: .4byte CB2_ReturnToField _080C5258: ldr r0, _080C5274 @ =sub_8124AB0 bl SetMainCallback2 _080C525E: ldr r4, _080C5278 @ =gUnknown_20399FC ldr r0, [r4] cmp r0, 0 beq _080C526E bl Free movs r0, 0 str r0, [r4] _080C526E: pop {r4} pop {r0} bx r0 .align 2, 0 _080C5274: .4byte sub_8124AB0 _080C5278: .4byte gUnknown_20399FC thumb_func_end sub_80C5208 thumb_func_start sub_80C527C sub_80C527C: @ 80C527C push {r4,r5,lr} lsls r0, 16 ldr r1, _080C52A4 @ =0xffa80000 adds r0, r1 lsrs r0, 16 ldr r5, _080C52A8 @ =gUnknown_83F2EE0 lsls r1, r0, 1 adds r4, r1, r0 adds r0, r5, 0x2 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0 beq _080C52AC bl sub_805546C adds r0, r4, r5 bl sub_8124C1C b _080C52C6 .align 2, 0 _080C52A4: .4byte 0xffa80000 _080C52A8: .4byte gUnknown_83F2EE0 _080C52AC: adds r0, r4, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r5, 0x1 adds r1, r4, r1 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 bl warp1_set_2 _080C52C6: bl sub_80842C8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C527C thumb_func_start sub_80C52D0 sub_80C52D0: @ 80C52D0 push {lr} ldr r2, _080C5318 @ =gUnknown_3005334 ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080C531C @ =gUnknown_3005348 ldrb r1, [r0, 0x1F] strb r1, [r2] ldr r2, _080C5320 @ =gUnknown_3005330 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080C5324 @ =gUnknown_3005344 ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080C5328 @ =gUnknown_3005340 ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080C532C @ =gUnknown_3005338 ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080C5330 @ =gUnknown_300534C ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080C5334 @ =gUnknown_300533C ldrb r1, [r0, 0x1E] strb r1, [r2] ldrb r0, [r0] subs r0, 0x2 cmp r0, 0x22 bls _080C530C b _080C5458 _080C530C: lsls r0, 2 ldr r1, _080C5338 @ =_080C533C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C5318: .4byte gUnknown_3005334 _080C531C: .4byte gUnknown_3005348 _080C5320: .4byte gUnknown_3005330 _080C5324: .4byte gUnknown_3005344 _080C5328: .4byte gUnknown_3005340 _080C532C: .4byte gUnknown_3005338 _080C5330: .4byte gUnknown_300534C _080C5334: .4byte gUnknown_300533C _080C5338: .4byte _080C533C .align 2, 0 _080C533C: .4byte _080C53C8 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5428 .4byte _080C5458 .4byte _080C53CE .4byte _080C53D4 .4byte _080C53E8 .4byte _080C53FA .4byte _080C5458 .4byte _080C5410 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5458 .4byte _080C5416 .4byte _080C53F4 .4byte _080C541C .4byte _080C5422 .4byte _080C5458 .4byte _080C5458 .4byte _080C5434 _080C53C8: bl sub_80C55D4 b _080C5458 _080C53CE: bl sub_80C568C b _080C5458 _080C53D4: bl sub_80C5884 ldr r0, _080C53E4 @ =gUnknown_3005348 ldrb r0, [r0] bl sub_80C5748 b _080C5458 .align 2, 0 _080C53E4: .4byte gUnknown_3005348 _080C53E8: bl sub_80C5884 bl sub_80C59D4 bl sub_80C57EC _080C53F4: bl sub_80C59D4 b _080C5458 _080C53FA: bl sub_80C5884 bl sub_80C5B9C bl sub_80C5B9C bl sub_80C5C44 bl sub_80C57EC b _080C5458 _080C5410: bl sub_80C5A6C b _080C5458 _080C5416: bl sub_80C5884 b _080C5458 _080C541C: bl sub_80C5B9C b _080C5458 _080C5422: bl sub_80C5C44 b _080C5458 _080C5428: bl sub_80C55F4 movs r0, 0x3 bl sub_80C545C b _080C5458 _080C5434: bl sub_80C5884 bl sub_80C5B9C bl sub_80C5C44 bl sub_80C57EC bl sub_80C568C bl sub_80C568C movs r0, 0x2 bl sub_80C545C movs r0, 0x4 bl sub_80C5514 _080C5458: pop {r0} bx r0 thumb_func_end sub_80C52D0 thumb_func_start sub_80C545C sub_80C545C: @ 80C545C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 movs r2, 0 ldr r0, _080C54FC @ =gUnknown_3005338 mov r8, r0 ldrb r0, [r0] cmp r2, r0 bcs _080C54EE ldr r1, _080C5500 @ =gUnknown_3005340 mov r12, r1 ldr r3, _080C5504 @ =gUnknown_300534C mov r10, r3 ldr r0, _080C5508 @ =gUnknown_3005330 mov r9, r0 _080C5482: ldr r1, _080C550C @ =gUnknown_3005344 ldrb r0, [r1] adds r0, r2 mov r3, r10 ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080C5510 @ =gUnknown_3005334 ldr r1, [r3] adds r1, r0 mov r3, r9 ldrb r0, [r3] lsls r0, 1 adds r3, r1, r0 movs r4, 0 adds r5, r2, 0x1 mov r0, r12 ldrb r0, [r0] cmp r4, r0 bcs _080C54E2 movs r6, 0x80 lsls r6, 8 _080C54AE: ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080C54D2 movs r0, 0x1F ands r0, r1 adds r0, r7 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _080C54C8 movs r2, 0x1F _080C54C8: lsls r0, r2, 10 lsls r1, r2, 5 orrs r0, r1 orrs r0, r2 strh r0, [r3] _080C54D2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r3, 0x2 mov r1, r12 ldrb r1, [r1] cmp r4, r1 bcc _080C54AE _080C54E2: lsls r0, r5, 24 lsrs r2, r0, 24 mov r3, r8 ldrb r3, [r3] cmp r2, r3 bcc _080C5482 _080C54EE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C54FC: .4byte gUnknown_3005338 _080C5500: .4byte gUnknown_3005340 _080C5504: .4byte gUnknown_300534C _080C5508: .4byte gUnknown_3005330 _080C550C: .4byte gUnknown_3005344 _080C5510: .4byte gUnknown_3005334 thumb_func_end sub_80C545C thumb_func_start sub_80C5514 sub_80C5514: @ 80C5514 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080C55BC @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C55AC ldr r1, _080C55C0 @ =gUnknown_3005340 mov r10, r1 _080C5532: ldr r3, _080C55C4 @ =gUnknown_3005344 ldrb r0, [r3] adds r0, r2 ldr r3, _080C55C8 @ =gUnknown_300534C ldrb r1, [r3] muls r0, r1 lsls r0, 1 ldr r3, _080C55CC @ =gUnknown_3005334 ldr r1, [r3] adds r1, r0 ldr r3, _080C55D0 @ =gUnknown_3005330 ldrb r0, [r3] lsls r0, 1 adds r3, r1, r0 movs r5, 0 adds r7, r2, 0x1 mov r0, r10 ldrb r0, [r0] cmp r5, r0 bcs _080C55A0 movs r1, 0x80 lsls r1, 8 mov r9, r1 movs r0, 0x1F mov r12, r0 mov r1, r8 subs r6, r0, r1 _080C5568: ldrh r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 bne _080C5590 movs r4, 0x1F mov r2, r12 ands r2, r1 cmp r2, r6 ble _080C5586 mov r1, r8 lsrs r0, r1, 1 subs r0, r4, r0 lsls r0, 24 lsrs r2, r0, 24 _080C5586: lsls r0, r2, 10 lsls r1, r2, 5 orrs r0, r1 orrs r0, r2 strh r0, [r3] _080C5590: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r3, 0x2 mov r0, r10 ldrb r0, [r0] cmp r5, r0 bcc _080C5568 _080C55A0: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r1, _080C55BC @ =gUnknown_3005338 ldrb r1, [r1] cmp r2, r1 bcc _080C5532 _080C55AC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C55BC: .4byte gUnknown_3005338 _080C55C0: .4byte gUnknown_3005340 _080C55C4: .4byte gUnknown_3005344 _080C55C8: .4byte gUnknown_300534C _080C55CC: .4byte gUnknown_3005334 _080C55D0: .4byte gUnknown_3005330 thumb_func_end sub_80C5514 thumb_func_start sub_80C55D4 sub_80C55D4: @ 80C55D4 push {r4,r5,lr} movs r4, 0 ldr r5, _080C55F0 @ =0x00000c7f _080C55DA: lsls r0, r4, 16 lsrs r0, 16 bl sub_80C5CF8 adds r4, 0x1 cmp r4, r5 bls _080C55DA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C55F0: .4byte 0x00000c7f thumb_func_end sub_80C55D4 thumb_func_start sub_80C55F4 sub_80C55F4: @ 80C55F4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080C5674 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C5666 ldr r0, _080C5678 @ =gUnknown_3005334 mov r8, r0 ldr r3, _080C567C @ =gUnknown_3005340 _080C560C: ldr r0, _080C5680 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C5684 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080C5688 @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080C565A movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080C5638: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080C564C adds r0, r4, 0 str r3, [sp] bl sub_80C5ECC strh r0, [r4] ldr r3, [sp] _080C564C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080C5638 _080C565A: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080C5674 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C560C _080C5666: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5674: .4byte gUnknown_3005338 _080C5678: .4byte gUnknown_3005334 _080C567C: .4byte gUnknown_3005340 _080C5680: .4byte gUnknown_3005344 _080C5684: .4byte gUnknown_300534C _080C5688: .4byte gUnknown_3005330 thumb_func_end sub_80C55F4 thumb_func_start sub_80C568C sub_80C568C: @ 80C568C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r2, 0 ldr r0, _080C5730 @ =gUnknown_3005340 ldrb r0, [r0] cmp r2, r0 bcs _080C5722 ldr r0, _080C5734 @ =gUnknown_3005334 mov r8, r0 ldr r3, _080C5738 @ =gUnknown_300534C _080C56A4: ldr r0, _080C573C @ =gUnknown_3005344 ldrb r1, [r0] ldrb r0, [r3] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080C5740 @ =gUnknown_3005330 ldrb r0, [r0] adds r0, r2 lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 ldrb r0, [r3] lsls r0, 1 adds r4, r0 ldr r0, _080C5744 @ =gUnknown_3005338 ldrb r0, [r0] subs r0, 0x1 adds r7, r2, 0x1 cmp r5, r0 bge _080C5716 ldr r6, _080C5738 @ =gUnknown_300534C _080C56DA: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 bne _080C5700 ldrb r2, [r6] lsls r2, 1 adds r2, r4, r2 mov r0, sp adds r1, r4, 0 str r3, [sp, 0x4] bl sub_80C61BC strh r0, [r4] mov r1, sp strh r0, [r1] ldr r3, [sp, 0x4] _080C5700: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6] lsls r0, 1 adds r4, r0 ldr r0, _080C5744 @ =gUnknown_3005338 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080C56DA _080C5716: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080C5730 @ =gUnknown_3005340 ldrb r0, [r0] cmp r2, r0 bcc _080C56A4 _080C5722: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5730: .4byte gUnknown_3005340 _080C5734: .4byte gUnknown_3005334 _080C5738: .4byte gUnknown_300534C _080C573C: .4byte gUnknown_3005344 _080C5740: .4byte gUnknown_3005330 _080C5744: .4byte gUnknown_3005338 thumb_func_end sub_80C568C thumb_func_start sub_80C5748 sub_80C5748: @ 80C5748 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r2, 0 ldr r0, _080C57D4 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C57C4 ldr r0, _080C57D8 @ =gUnknown_3005334 mov r9, r0 ldr r3, _080C57DC @ =gUnknown_3005340 _080C5768: ldr r0, _080C57E0 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C57E4 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r9 ldr r1, [r4] adds r1, r0 ldr r0, _080C57E8 @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080C57B8 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080C5794: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080C57AA adds r0, r4, 0 mov r1, r8 str r3, [sp] bl sub_80C5F00 strh r0, [r4] ldr r3, [sp] _080C57AA: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080C5794 _080C57B8: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080C57D4 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C5768 _080C57C4: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C57D4: .4byte gUnknown_3005338 _080C57D8: .4byte gUnknown_3005334 _080C57DC: .4byte gUnknown_3005340 _080C57E0: .4byte gUnknown_3005344 _080C57E4: .4byte gUnknown_300534C _080C57E8: .4byte gUnknown_3005330 thumb_func_end sub_80C5748 thumb_func_start sub_80C57EC sub_80C57EC: @ 80C57EC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080C586C @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C585E ldr r0, _080C5870 @ =gUnknown_3005334 mov r8, r0 ldr r3, _080C5874 @ =gUnknown_3005340 _080C5804: ldr r0, _080C5878 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C587C @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080C5880 @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080C5852 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080C5830: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080C5844 adds r0, r4, 0 str r3, [sp] bl sub_80C600C strh r0, [r4] ldr r3, [sp] _080C5844: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080C5830 _080C5852: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080C586C @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C5804 _080C585E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C586C: .4byte gUnknown_3005338 _080C5870: .4byte gUnknown_3005334 _080C5874: .4byte gUnknown_3005340 _080C5878: .4byte gUnknown_3005344 _080C587C: .4byte gUnknown_300534C _080C5880: .4byte gUnknown_3005330 thumb_func_end sub_80C57EC thumb_func_start sub_80C5884 sub_80C5884: @ 80C5884 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r7, 0 ldr r0, _080C59BC @ =gUnknown_3005338 ldrb r0, [r0] cmp r7, r0 bcs _080C5910 ldr r0, _080C59C0 @ =gUnknown_3005334 mov r8, r0 _080C589A: ldr r0, _080C59C4 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r7 ldr r0, _080C59C8 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r2, r8 ldr r1, [r2] adds r1, r0 ldr r0, _080C59CC @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r5, r1, r0 adds r4, r5, 0x2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80C603C strh r0, [r5] movs r6, 0x1 adds r5, r4, 0 ldr r0, _080C59D0 @ =gUnknown_3005340 ldrb r0, [r0] subs r0, 0x1 adds r7, 0x1 cmp r6, r0 bge _080C58FA _080C58D2: adds r4, r5, 0x2 adds r0, r5, 0 adds r1, r4, 0 bl sub_80C603C strh r0, [r5] subs r1, r5, 0x2 adds r0, r5, 0 bl sub_80C603C strh r0, [r5] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r5, r4, 0 ldr r0, _080C59D0 @ =gUnknown_3005340 ldrb r0, [r0] subs r0, 0x1 cmp r6, r0 blt _080C58D2 _080C58FA: subs r1, r5, 0x2 adds r0, r5, 0 bl sub_80C603C strh r0, [r5] lsls r0, r7, 24 lsrs r7, r0, 24 ldr r0, _080C59BC @ =gUnknown_3005338 ldrb r0, [r0] cmp r7, r0 bcc _080C589A _080C5910: movs r6, 0 ldr r0, _080C59D0 @ =gUnknown_3005340 ldrb r0, [r0] cmp r6, r0 bcs _080C59B0 ldr r3, _080C59C0 @ =gUnknown_3005334 mov r9, r3 ldr r0, _080C59C8 @ =gUnknown_300534C mov r8, r0 _080C5922: ldr r0, _080C59C4 @ =gUnknown_3005344 ldrb r0, [r0] mov r2, r8 ldrb r1, [r2] muls r0, r1 lsls r0, 1 mov r3, r9 ldr r2, [r3] adds r2, r0 ldr r0, _080C59CC @ =gUnknown_3005330 ldrb r0, [r0] adds r0, r6 lsls r0, 1 adds r5, r2, r0 lsls r1, 1 adds r1, r5, r1 adds r0, r5, 0 bl sub_80C603C strh r0, [r5] movs r7, 0x1 mov r1, r8 ldrb r0, [r1] lsls r0, 1 adds r5, r0 ldr r0, _080C59BC @ =gUnknown_3005338 ldrb r0, [r0] subs r0, 0x1 adds r6, 0x1 cmp r7, r0 bge _080C5994 ldr r4, _080C59C8 @ =gUnknown_300534C _080C5962: ldrb r1, [r4] lsls r1, 1 adds r1, r5, r1 adds r0, r5, 0 bl sub_80C603C strh r0, [r5] ldrb r1, [r4] lsls r1, 1 subs r1, r5, r1 adds r0, r5, 0 bl sub_80C603C strh r0, [r5] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] lsls r0, 1 adds r5, r0 ldr r0, _080C59BC @ =gUnknown_3005338 ldrb r0, [r0] subs r0, 0x1 cmp r7, r0 blt _080C5962 _080C5994: mov r2, r8 ldrb r1, [r2] lsls r1, 1 subs r1, r5, r1 adds r0, r5, 0 bl sub_80C603C strh r0, [r5] lsls r0, r6, 24 lsrs r6, r0, 24 ldr r0, _080C59D0 @ =gUnknown_3005340 ldrb r0, [r0] cmp r6, r0 bcc _080C5922 _080C59B0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C59BC: .4byte gUnknown_3005338 _080C59C0: .4byte gUnknown_3005334 _080C59C4: .4byte gUnknown_3005344 _080C59C8: .4byte gUnknown_300534C _080C59CC: .4byte gUnknown_3005330 _080C59D0: .4byte gUnknown_3005340 thumb_func_end sub_80C5884 thumb_func_start sub_80C59D4 sub_80C59D4: @ 80C59D4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080C5A54 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C5A46 ldr r0, _080C5A58 @ =gUnknown_3005334 mov r8, r0 ldr r3, _080C5A5C @ =gUnknown_3005340 _080C59EC: ldr r0, _080C5A60 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C5A64 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r4, r8 ldr r1, [r4] adds r1, r0 ldr r0, _080C5A68 @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 adds r6, r2, 0x1 ldrb r0, [r3] cmp r5, r0 bcs _080C5A3A movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080C5A18: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080C5A2C adds r0, r4, 0 str r3, [sp] bl sub_80C606C strh r0, [r4] ldr r3, [sp] _080C5A2C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r5, r0 bcc _080C5A18 _080C5A3A: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080C5A54 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C59EC _080C5A46: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5A54: .4byte gUnknown_3005338 _080C5A58: .4byte gUnknown_3005334 _080C5A5C: .4byte gUnknown_3005340 _080C5A60: .4byte gUnknown_3005344 _080C5A64: .4byte gUnknown_300534C _080C5A68: .4byte gUnknown_3005330 thumb_func_end sub_80C59D4 thumb_func_start sub_80C5A6C sub_80C5A6C: @ 80C5A6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, _080C5B98 @ =gUnknown_3005334 ldr r4, [r0] movs r6, 0 movs r0, 0x80 lsls r0, 8 adds r5, r0, 0 _080C5A84: movs r7, 0 _080C5A86: ldrh r0, [r4] ands r0, r5 cmp r0, 0 bne _080C5A96 adds r0, r4, 0 bl sub_80C606C strh r0, [r4] _080C5A96: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r4, 0x2 cmp r7, 0x3F bls _080C5A86 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3F bls _080C5A84 movs r7, 0 ldr r1, _080C5B98 @ =gUnknown_3005334 mov r10, r1 mov r3, sp movs r2, 0x80 lsls r2, 8 mov r9, r2 _080C5ABA: lsls r0, r7, 1 mov r2, r10 ldr r1, [r2] adds r4, r1, r0 ldrh r1, [r4] strh r1, [r3] mov r1, r9 strh r1, [r4] movs r6, 0x1 adds r4, 0x80 adds r5, r0, 0 _080C5AD0: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 ands r0, r2 cmp r0, 0 bne _080C5AF0 adds r2, r4, 0 adds r2, 0x80 mov r0, sp adds r1, r4, 0 str r3, [sp, 0x4] bl sub_80C62DC strh r0, [r4] ldr r3, [sp, 0x4] strh r0, [r3] _080C5AF0: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, 0x80 cmp r6, 0x3E bls _080C5AD0 mov r0, r9 strh r0, [r4] mov r1, r10 ldr r0, [r1] adds r4, r0, r5 ldrh r0, [r4] strh r0, [r3] mov r2, r9 strh r2, [r4] movs r6, 0x1 adds r4, 0x80 movs r0, 0x80 lsls r0, 8 mov r8, r0 _080C5B18: ldrh r0, [r4] mov r1, r8 ands r0, r1 adds r5, r4, 0 adds r5, 0x80 cmp r0, 0 bne _080C5B38 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 str r3, [sp, 0x4] bl sub_80C62DC strh r0, [r4] ldr r3, [sp, 0x4] strh r0, [r3] _080C5B38: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, r5, 0 cmp r6, 0x3E bls _080C5B18 mov r2, r9 strh r2, [r4] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3F bls _080C5ABA ldr r0, _080C5B98 @ =gUnknown_3005334 ldr r4, [r0] movs r6, 0 movs r0, 0x80 lsls r0, 8 mov r8, r0 _080C5B5E: movs r7, 0 adds r5, r6, 0x1 _080C5B62: ldrh r0, [r4] mov r1, r8 ands r0, r1 cmp r0, 0 bne _080C5B74 adds r0, r4, 0 bl sub_80C606C strh r0, [r4] _080C5B74: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r4, 0x2 cmp r7, 0x3F bls _080C5B62 lsls r0, r5, 24 lsrs r6, r0, 24 cmp r6, 0x3F bls _080C5B5E 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 _080C5B98: .4byte gUnknown_3005334 thumb_func_end sub_80C5A6C thumb_func_start sub_80C5B9C sub_80C5B9C: @ 80C5B9C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080C5C2C @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C5C1E ldr r0, _080C5C30 @ =gUnknown_3005334 mov r8, r0 _080C5BB2: ldr r0, _080C5C34 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C5C38 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080C5C3C @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 adds r4, 0x2 ldr r0, _080C5C40 @ =gUnknown_3005340 ldrb r0, [r0] subs r0, 0x1 adds r6, r2, 0x1 cmp r5, r0 bge _080C5C12 movs r0, 0x80 lsls r0, 8 adds r7, r0, 0 _080C5BEA: ldrh r0, [r4] ands r0, r7 cmp r0, 0 bne _080C5C00 mov r0, sp adds r1, r4, 0 bl sub_80C6098 strh r0, [r4] mov r1, sp strh r0, [r1] _080C5C00: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080C5C40 @ =gUnknown_3005340 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080C5BEA _080C5C12: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080C5C2C @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C5BB2 _080C5C1E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5C2C: .4byte gUnknown_3005338 _080C5C30: .4byte gUnknown_3005334 _080C5C34: .4byte gUnknown_3005344 _080C5C38: .4byte gUnknown_300534C _080C5C3C: .4byte gUnknown_3005330 _080C5C40: .4byte gUnknown_3005340 thumb_func_end sub_80C5B9C thumb_func_start sub_80C5C44 sub_80C5C44: @ 80C5C44 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r2, 0 ldr r0, _080C5CE0 @ =gUnknown_3005340 ldrb r0, [r0] cmp r2, r0 bcs _080C5CD2 ldr r0, _080C5CE4 @ =gUnknown_3005334 mov r8, r0 ldr r7, _080C5CE8 @ =gUnknown_300534C _080C5C5C: ldr r0, _080C5CEC @ =gUnknown_3005344 ldrb r1, [r0] ldrb r0, [r7] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080C5CF0 @ =gUnknown_3005330 ldrb r0, [r0] adds r0, r2 lsls r0, 1 adds r4, r1, r0 ldrh r1, [r4] mov r0, sp strh r1, [r0] movs r5, 0x1 ldrb r0, [r7] lsls r0, 1 adds r4, r0 ldr r0, _080C5CF4 @ =gUnknown_3005338 ldrb r0, [r0] subs r0, 0x1 adds r6, r2, 0x1 cmp r5, r0 bge _080C5CC6 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080C5C96: ldrh r0, [r4] ands r0, r2 cmp r0, 0 bne _080C5CB0 mov r0, sp adds r1, r4, 0 str r2, [sp, 0x4] bl sub_80C6098 strh r0, [r4] mov r1, sp strh r0, [r1] ldr r2, [sp, 0x4] _080C5CB0: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r7] lsls r0, 1 adds r4, r0 ldr r0, _080C5CF4 @ =gUnknown_3005338 ldrb r0, [r0] subs r0, 0x1 cmp r5, r0 blt _080C5C96 _080C5CC6: lsls r0, r6, 24 lsrs r2, r0, 24 ldr r0, _080C5CE0 @ =gUnknown_3005340 ldrb r0, [r0] cmp r2, r0 bcc _080C5C5C _080C5CD2: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C5CE0: .4byte gUnknown_3005340 _080C5CE4: .4byte gUnknown_3005334 _080C5CE8: .4byte gUnknown_300534C _080C5CEC: .4byte gUnknown_3005344 _080C5CF0: .4byte gUnknown_3005330 _080C5CF4: .4byte gUnknown_3005338 thumb_func_end sub_80C5C44 thumb_func_start sub_80C5CF8 sub_80C5CF8: @ 80C5CF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 16 lsrs r0, 16 mov r10, r0 mov r2, sp ldr r3, _080C5D64 @ =gUnknown_83F3024 lsls r1, r0, 1 add r1, r10 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] adds r0, r3, 0x1 adds r0, r1, r0 ldrb r0, [r0] strb r0, [r2, 0x1] mov r5, sp adds r0, r3, 0x2 adds r1, r0 ldrb r4, [r1] lsls r2, r4, 24 lsrs r1, r2, 27 movs r0, 0x7 ands r1, r0 strh r1, [r5, 0x2] lsrs r2, 25 mov r9, r2 movs r0, 0x3 ands r2, r0 mov r9, r2 movs r5, 0x1 ands r5, r4 movs r4, 0x1 mov r8, r4 cmp r8, r1 bcs _080C5DAA mov r3, sp _080C5D4A: cmp r5, 0 bne _080C5D68 mov r0, r8 lsls r2, r0, 2 mov r4, sp adds r1, r4, r2 ldrb r0, [r3] mov r4, r8 subs r0, r4 strb r0, [r1] ldrb r0, [r3, 0x1] add r0, r8 b _080C5D7A .align 2, 0 _080C5D64: .4byte gUnknown_83F3024 _080C5D68: mov r0, r8 lsls r2, r0, 2 mov r4, sp adds r1, r4, r2 ldrb r0, [r3] adds r0, 0x1 strb r0, [r1] ldrb r0, [r3, 0x1] subs r0, 0x1 _080C5D7A: strb r0, [r1, 0x1] add r2, sp ldrb r0, [r2] cmp r0, 0x3F bhi _080C5D8A ldrb r0, [r2, 0x1] cmp r0, 0x3F bls _080C5D92 _080C5D8A: mov r0, r8 subs r0, 0x1 strh r0, [r3, 0x2] b _080C5DAA _080C5D92: ldrh r0, [r3, 0x2] mov r1, r8 subs r0, r1 strh r0, [r2, 0x2] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrh r0, [r3, 0x2] cmp r8, r0 bcc _080C5D4A _080C5DAA: movs r2, 0 mov r8, r2 mov r0, sp ldrh r0, [r0, 0x2] cmp r8, r0 bcc _080C5DB8 b _080C5EBA _080C5DB8: movs r3, 0x1F _080C5DBA: ldr r1, _080C5E18 @ =gUnknown_3005334 mov r4, r8 lsls r0, r4, 2 mov r2, sp adds r6, r2, r0 ldrb r0, [r6, 0x1] lsls r0, 7 ldr r1, [r1] adds r1, r0 ldrb r0, [r6] lsls r0, 1 adds r2, r1, r0 ldrh r1, [r2] movs r4, 0x80 lsls r4, 8 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080C5EA6 movs r7, 0x1F ands r7, r1 lsls r0, r1, 16 lsrs r5, r0, 21 ands r5, r3 lsrs r4, r0, 26 ands r4, r3 mov r0, r9 cmp r0, 0 blt _080C5E9C cmp r0, 0x1 ble _080C5E1C cmp r0, 0x3 bgt _080C5E9C ldrh r0, [r6, 0x2] adds r1, r7, r0 lsls r1, 16 lsrs r7, r1, 16 adds r1, r5, r0 lsls r1, 16 lsrs r5, r1, 16 adds r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 cmp r7, 0x1F bls _080C5E90 movs r7, 0x1F b _080C5E90 .align 2, 0 _080C5E18: .4byte gUnknown_3005334 _080C5E1C: mov r1, r10 lsls r0, r1, 1 add r0, r10 ldr r1, _080C5E50 @ =gUnknown_83F3024 adds r1, 0x2 adds r0, r1 ldrb r0, [r0] lsrs r0, 3 movs r1, 0x7 ands r0, r1 movs r1, 0x3 str r2, [sp, 0x18] str r3, [sp, 0x1C] bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x18] ldr r3, [sp, 0x1C] cmp r0, 0x1 beq _080C5E6C cmp r0, 0x1 bgt _080C5E54 cmp r0, 0 beq _080C5E5A b _080C5E9C .align 2, 0 _080C5E50: .4byte gUnknown_83F3024 _080C5E54: cmp r0, 0x2 beq _080C5E7E b _080C5E9C _080C5E5A: ldrh r0, [r6, 0x2] cmp r7, r0 bcc _080C5E68 subs r0, r7, r0 lsls r0, 16 lsrs r7, r0, 16 b _080C5E9C _080C5E68: movs r7, 0 b _080C5E9C _080C5E6C: ldrh r0, [r6, 0x2] cmp r5, r0 bcc _080C5E7A subs r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 b _080C5E9C _080C5E7A: movs r5, 0 b _080C5E9C _080C5E7E: ldrh r0, [r6, 0x2] cmp r4, r0 bcc _080C5E8C subs r0, r4, r0 lsls r0, 16 lsrs r4, r0, 16 b _080C5E9C _080C5E8C: movs r4, 0 b _080C5E9C _080C5E90: cmp r5, 0x1F bls _080C5E96 movs r5, 0x1F _080C5E96: cmp r4, 0x1F bls _080C5E9C movs r4, 0x1F _080C5E9C: lsls r0, r4, 10 lsls r1, r5, 5 orrs r0, r1 orrs r7, r0 strh r7, [r2] _080C5EA6: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, sp ldrh r0, [r0, 0x2] cmp r8, r0 bcs _080C5EBA b _080C5DBA _080C5EBA: 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_80C5CF8 thumb_func_start sub_80C5ECC sub_80C5ECC: @ 80C5ECC push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r0, r1, 10 lsls r2, r1, 5 orrs r0, r2 orrs r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80C5ECC thumb_func_start sub_80C5F00 sub_80C5F00: @ 80C5F00 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldrh r0, [r0] movs r2, 0x1F movs r1, 0x1F ands r1, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r2 lsrs r0, 26 ands r0, r2 cmp r1, 0x10 bhi _080C5F30 cmp r3, 0x10 bhi _080C5F30 cmp r0, 0x10 bhi _080C5F30 adds r0, r4, 0 bl sub_80C5F3C lsls r0, 16 lsrs r0, 16 b _080C5F32 _080C5F30: ldr r0, _080C5F38 @ =0x00007fff _080C5F32: pop {r4} pop {r1} bx r1 .align 2, 0 _080C5F38: .4byte 0x00007fff thumb_func_end sub_80C5F00 thumb_func_start sub_80C5F3C sub_80C5F3C: @ 80C5F3C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 mov r8, r0 movs r6, 0 movs r7, 0 adds r0, r4, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _080C5FF4 lsls r0, 2 ldr r1, _080C5F80 @ =_080C5F84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C5F80: .4byte _080C5F84 .align 2, 0 _080C5F84: .4byte _080C5F9C .4byte _080C5FAC .4byte _080C5FBC .4byte _080C5FCA .4byte _080C5FD8 .4byte _080C5FE6 _080C5F9C: movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r6, r0, 16 adds r7, r6, 0 movs r1, 0 mov r8, r1 b _080C5FF4 _080C5FAC: movs r7, 0 movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r6, r8 b _080C5FF4 _080C5FBC: movs r0, 0x15 subs r0, r5 lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 mov r8, r7 b _080C5FF4 _080C5FCA: movs r7, 0 movs r6, 0 movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r0, 16 b _080C5FF2 _080C5FD8: movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r7, r0, 16 movs r6, 0 mov r8, r6 b _080C5FF4 _080C5FE6: movs r7, 0 movs r0, 0x17 subs r0, r5 lsls r0, 16 lsrs r6, r0, 16 movs r0, 0 _080C5FF2: mov r8, r0 _080C5FF4: lsls r0, r7, 10 lsls r1, r6, 5 orrs r0, r1 mov r1, r8 orrs r1, r0 lsls r0, r1, 16 lsrs r0, 16 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C5F3C thumb_func_start sub_80C600C sub_80C600C: @ 80C600C push {lr} ldrh r0, [r0] movs r2, 0x1F movs r1, 0x1F ands r1, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r2 lsrs r0, 26 ands r0, r2 cmp r1, 0x10 bhi _080C6030 cmp r3, 0x10 bhi _080C6030 cmp r0, 0x10 bhi _080C6030 movs r0, 0 b _080C6032 _080C6030: ldr r0, _080C6038 @ =0x00007fff _080C6032: pop {r1} bx r1 .align 2, 0 _080C6038: .4byte 0x00007fff thumb_func_end sub_80C600C thumb_func_start sub_80C603C sub_80C603C: @ 80C603C push {r4,lr} adds r4, r0, 0 ldrh r3, [r4] cmp r3, 0 beq _080C6064 movs r2, 0x80 lsls r2, 8 adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _080C6056 adds r0, r2, 0 b _080C6066 _080C6056: ldrh r1, [r1] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _080C6064 ldrh r0, [r4] b _080C6066 _080C6064: movs r0, 0 _080C6066: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C603C thumb_func_start sub_80C606C sub_80C606C: @ 80C606C push {r4,lr} ldrh r1, [r0] movs r0, 0x1F movs r3, 0x1F ands r3, r1 lsls r1, 16 lsrs r2, r1, 21 lsrs r1, 26 subs r3, r0, r3 adds r4, r0, 0 bics r4, r2 adds r2, r4, 0 bics r0, r1 lsls r0, 10 lsls r2, 5 orrs r0, r2 orrs r0, r3 lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 thumb_func_end sub_80C606C thumb_func_start sub_80C6098 sub_80C6098: @ 80C6098 push {r4-r7,lr} sub sp, 0x14 adds r7, r1, 0 ldrh r4, [r0] ldrh r5, [r7] lsls r6, r4, 16 lsls r0, r5, 16 mov r12, r0 cmp r4, r5 beq _080C610A mov r2, sp movs r3, 0x1F movs r1, 0x1F adds r0, r1, 0 ands r0, r4 strh r0, [r2] lsrs r0, r6, 21 ands r0, r3 strh r0, [r2, 0x2] lsrs r0, r6, 26 ands r0, r3 strh r0, [r2, 0x4] mov r0, sp ands r1, r5 strh r1, [r0, 0x6] mov r1, sp mov r2, r12 lsrs r0, r2, 21 ands r0, r3 strh r0, [r1, 0x8] lsrs r0, r2, 26 ands r0, r3 strh r0, [r1, 0xA] mov r0, sp ldrh r0, [r0] cmp r0, 0x19 bls _080C60F2 mov r0, sp ldrh r0, [r0, 0x2] cmp r0, 0x19 bls _080C60F2 mov r0, sp ldrh r0, [r0, 0x4] cmp r0, 0x19 bhi _080C610A _080C60F2: mov r0, sp ldrh r0, [r0, 0x6] cmp r0, 0x19 bls _080C610E mov r0, sp ldrh r0, [r0, 0x8] cmp r0, 0x19 bls _080C610E mov r0, sp ldrh r0, [r0, 0xA] cmp r0, 0x19 bls _080C610E _080C610A: ldrh r0, [r7] b _080C61B4 _080C610E: movs r4, 0 add r6, sp, 0xC mov r7, sp adds r7, 0x6 adds r5, r6, 0 _080C6118: lsls r2, r4, 1 mov r1, sp adds r0, r1, r2 adds r1, r7, r2 ldrh r3, [r0] ldrh r0, [r1] cmp r3, r0 bls _080C612E adds r1, r5, r2 subs r0, r3, r0 b _080C6132 _080C612E: adds r1, r5, r2 subs r0, r3 _080C6132: strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _080C6118 adds r1, r6, 0 ldrh r0, [r1, 0x2] ldrh r3, [r1] cmp r3, r0 bcc _080C6158 ldrh r2, [r1, 0x4] cmp r3, r2 bcc _080C6152 adds r2, r3, 0 b _080C616C _080C6152: cmp r0, r2 bcs _080C615E b _080C6166 _080C6158: ldrh r2, [r1, 0x4] cmp r0, r2 bcc _080C6162 _080C615E: ldrh r2, [r1, 0x2] b _080C616C _080C6162: cmp r2, r3 bcc _080C616A _080C6166: ldrh r2, [r1, 0x4] b _080C616C _080C616A: ldrh r2, [r6] _080C616C: mov r0, sp ldrh r1, [r0, 0x6] lsrs r0, r2, 1 movs r6, 0x1F subs r6, r0 adds r0, r1, 0 muls r0, r6 movs r1, 0x1F bl __divsi3 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r0, sp ldrh r0, [r0, 0x8] muls r0, r6 movs r1, 0x1F bl __divsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, sp ldrh r0, [r0, 0xA] muls r0, r6 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 lsls r4, 5 orrs r0, r4 orrs r5, r0 lsls r5, 16 lsrs r5, 16 adds r0, r5, 0 _080C61B4: add sp, 0x14 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C6098 thumb_func_start sub_80C61BC sub_80C61BC: @ 80C61BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 mov r10, r1 str r2, [sp] ldrh r1, [r3] mov r0, r10 ldrh r0, [r0] cmp r1, r0 bne _080C61E4 ldrh r0, [r2] cmp r0, r1 bne _080C61E4 mov r1, r10 ldrh r0, [r1] b _080C62CC _080C61E4: mov r2, r10 ldrh r0, [r2] movs r1, 0x1F mov r9, r1 movs r4, 0x1F adds r5, r4, 0 ands r5, r0 lsls r0, 16 lsrs r2, r0, 21 mov r1, r9 ands r1, r2 mov r8, r1 lsrs r0, 26 mov r2, r9 ands r2, r0 str r2, [sp, 0x4] ldrh r2, [r3] adds r0, r4, 0 ands r0, r2 lsls r2, 16 lsrs r1, r2, 21 mov r3, r9 ands r1, r3 adds r0, r1 lsrs r2, 26 ands r2, r3 adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 adds r0, r5, r1 ldr r2, [sp, 0x4] adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] ldrh r1, [r3] ands r4, r1 lsls r1, 16 lsrs r0, r1, 21 mov r2, r9 ands r0, r2 adds r4, r0 lsrs r1, 26 ands r1, r2 adds r4, r1 adds r0, r4, 0 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r7, r6 bne _080C6266 cmp r1, r6 bne _080C6266 mov r3, r10 ldrh r0, [r3] b _080C62CC _080C6266: cmp r7, r6 bls _080C626E subs r0, r7, r6 b _080C6270 _080C626E: subs r0, r6, r7 _080C6270: lsls r0, 16 lsrs r2, r0, 16 cmp r1, r6 bls _080C627C subs r0, r1, r6 b _080C627E _080C627C: subs r0, r6, r1 _080C627E: lsls r0, 16 lsrs r0, 16 cmp r2, r0 bcc _080C6288 adds r0, r2, 0 _080C6288: lsrs r0, 1 movs r4, 0x1F subs r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, [sp, 0x4] adds r0, r1, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 mov r2, r8 lsls r1, r2, 5 orrs r0, r1 orrs r5, r0 lsls r0, r5, 16 lsrs r0, 16 _080C62CC: 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_80C61BC thumb_func_start sub_80C62DC sub_80C62DC: @ 80C62DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 mov r10, r1 str r2, [sp] ldrh r1, [r3] mov r0, r10 ldrh r0, [r0] cmp r1, r0 bne _080C6304 ldrh r0, [r2] cmp r0, r1 bne _080C6304 mov r1, r10 ldrh r0, [r1] b _080C63EA _080C6304: mov r2, r10 ldrh r0, [r2] movs r1, 0x1F mov r9, r1 movs r4, 0x1F adds r5, r4, 0 ands r5, r0 lsls r0, 16 lsrs r2, r0, 21 mov r1, r9 ands r1, r2 mov r8, r1 lsrs r0, 26 mov r2, r9 ands r2, r0 str r2, [sp, 0x4] ldrh r2, [r3] adds r0, r4, 0 ands r0, r2 lsls r2, 16 lsrs r1, r2, 21 mov r3, r9 ands r1, r3 adds r0, r1 lsrs r2, 26 ands r2, r3 adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r7, r0, 16 mov r1, r8 adds r0, r5, r1 ldr r2, [sp, 0x4] adds r0, r2 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, [sp] ldrh r1, [r3] ands r4, r1 lsls r1, 16 lsrs r0, r1, 21 mov r2, r9 ands r0, r2 adds r4, r0 lsrs r1, 26 ands r1, r2 adds r4, r1 adds r0, r4, 0 movs r1, 0x3 bl __divsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r7, r6 bne _080C6386 cmp r1, r6 bne _080C6386 mov r3, r10 ldrh r0, [r3] b _080C63EA _080C6386: cmp r7, r6 bls _080C638E subs r0, r7, r6 b _080C6390 _080C638E: subs r0, r6, r7 _080C6390: lsls r0, 16 lsrs r2, r0, 16 cmp r1, r6 bls _080C639C subs r0, r1, r6 b _080C639E _080C639C: subs r0, r6, r1 _080C639E: lsls r0, 16 lsrs r0, 16 cmp r2, r0 bcc _080C63A8 adds r0, r2, 0 _080C63A8: movs r4, 0x1F subs r4, r0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, [sp, 0x4] adds r0, r1, 0 muls r0, r4 movs r1, 0x1F bl __divsi3 lsls r0, 16 lsrs r0, 6 mov r2, r8 lsls r1, r2, 5 orrs r0, r1 orrs r5, r0 lsls r0, r5, 16 lsrs r0, 16 _080C63EA: 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_80C62DC thumb_func_start sub_80C63FC sub_80C63FC: @ 80C63FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldrb r1, [r0, 0x1D] lsrs r5, r1, 3 ldrb r1, [r0, 0x1E] lsrs r1, 3 str r1, [sp, 0x8] ldr r1, [r0, 0x4] str r1, [sp] ldr r2, [r0, 0x10] str r2, [sp, 0x4] ldrh r0, [r0, 0x16] cmp r0, 0x2 bne _080C64AC movs r1, 0 ldr r0, [sp, 0x8] cmp r1, r0 bcc _080C642A b _080C6538 _080C642A: movs r0, 0 adds r2, r1, 0x1 mov r10, r2 cmp r0, r5 bcs _080C649E adds r2, r1, 0 muls r2, r5 mov r9, r2 lsls r1, 3 mov r8, r1 _080C643E: movs r4, 0 lsls r6, r0, 4 adds r7, r0, 0x1 add r0, r9 lsls r0, 6 ldr r1, [sp, 0x4] adds r1, r0 mov r12, r1 _080C644E: lsls r0, r4, 3 mov r2, r12 adds r3, r2, r0 mov r1, r8 adds r0, r1, r4 lsls r0, 3 muls r0, r5 lsls r0, 1 ldr r2, [sp] adds r0, r2, r0 adds r2, r0, r6 ldrh r0, [r2, 0x2] lsls r0, 8 ldrh r1, [r2] orrs r0, r1 strh r0, [r3] ldrh r0, [r2, 0x6] lsls r0, 8 ldrh r1, [r2, 0x4] orrs r0, r1 strh r0, [r3, 0x2] ldrh r0, [r2, 0xA] lsls r0, 8 ldrh r1, [r2, 0x8] orrs r0, r1 strh r0, [r3, 0x4] ldrh r0, [r2, 0xE] lsls r0, 8 ldrh r1, [r2, 0xC] orrs r0, r1 strh r0, [r3, 0x6] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080C644E lsls r0, r7, 16 lsrs r0, 16 cmp r0, r5 bcc _080C643E _080C649E: mov r1, r10 lsls r0, r1, 16 lsrs r1, r0, 16 ldr r2, [sp, 0x8] cmp r1, r2 bcc _080C642A b _080C6538 _080C64AC: movs r1, 0 ldr r0, [sp, 0x8] cmp r1, r0 bcs _080C6538 _080C64B4: movs r0, 0 adds r2, r1, 0x1 mov r10, r2 cmp r0, r5 bcs _080C652C adds r2, r1, 0 muls r2, r5 mov r9, r2 lsls r1, 3 mov r8, r1 _080C64C8: movs r4, 0 lsls r6, r0, 4 adds r7, r0, 0x1 add r0, r9 lsls r0, 5 ldr r1, [sp, 0x4] adds r1, r0 mov r12, r1 _080C64D8: lsls r0, r4, 2 mov r2, r12 adds r3, r2, r0 mov r1, r8 adds r0, r1, r4 lsls r0, 3 muls r0, r5 lsls r0, 1 ldr r2, [sp] adds r0, r2, r0 adds r2, r0, r6 ldrh r1, [r2, 0x2] lsls r1, 4 ldrh r0, [r2] orrs r1, r0 ldrh r0, [r2, 0x4] lsls r0, 8 orrs r1, r0 ldrh r0, [r2, 0x6] lsls r0, 12 orrs r1, r0 strh r1, [r3] ldrh r1, [r2, 0xA] lsls r1, 4 ldrh r0, [r2, 0x8] orrs r1, r0 ldrh r0, [r2, 0xC] lsls r0, 8 orrs r1, r0 ldrh r0, [r2, 0xE] lsls r0, 12 orrs r1, r0 strh r1, [r3, 0x2] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x7 bls _080C64D8 lsls r0, r7, 16 lsrs r0, 16 cmp r0, r5 bcc _080C64C8 _080C652C: mov r1, r10 lsls r0, r1, 16 lsrs r1, r0, 16 ldr r2, [sp, 0x8] cmp r1, r2 bcc _080C64B4 _080C6538: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C63FC thumb_func_start sub_80C6548 sub_80C6548: @ 80C6548 push {lr} ldr r2, _080C6598 @ =gUnknown_3005354 ldrb r1, [r0, 0x18] lsls r1, 4 strh r1, [r2] ldr r3, _080C659C @ =gUnknown_3005350 ldrh r2, [r2] lsls r2, 1 ldr r1, [r0, 0x8] adds r1, r2 str r1, [r3] ldr r2, _080C65A0 @ =gUnknown_3005334 ldr r1, [r0, 0x4] str r1, [r2] ldr r2, _080C65A4 @ =gUnknown_3005330 ldrb r1, [r0, 0x19] strb r1, [r2] ldr r2, _080C65A8 @ =gUnknown_3005344 ldrb r1, [r0, 0x1A] strb r1, [r2] ldr r2, _080C65AC @ =gUnknown_3005340 ldrb r1, [r0, 0x1B] strb r1, [r2] ldr r2, _080C65B0 @ =gUnknown_3005338 ldrb r1, [r0, 0x1C] strb r1, [r2] ldr r2, _080C65B4 @ =gUnknown_300534C ldrb r1, [r0, 0x1D] strb r1, [r2] ldr r2, _080C65B8 @ =gUnknown_300533C ldrb r1, [r0, 0x1E] strb r1, [r2] ldrh r0, [r0, 0x14] cmp r0, 0x5 bhi _080C660E lsls r0, 2 ldr r1, _080C65BC @ =_080C65C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C6598: .4byte gUnknown_3005354 _080C659C: .4byte gUnknown_3005350 _080C65A0: .4byte gUnknown_3005334 _080C65A4: .4byte gUnknown_3005330 _080C65A8: .4byte gUnknown_3005344 _080C65AC: .4byte gUnknown_3005340 _080C65B0: .4byte gUnknown_3005338 _080C65B4: .4byte gUnknown_300534C _080C65B8: .4byte gUnknown_300533C _080C65BC: .4byte _080C65C0 .align 2, 0 _080C65C0: .4byte _080C65D8 .4byte _080C65E0 .4byte _080C65E8 .4byte _080C65F2 .4byte _080C65FC .4byte _080C6606 _080C65D8: movs r0, 0 bl sub_80C6748 b _080C660E _080C65E0: movs r0, 0x1 bl sub_80C6748 b _080C660E _080C65E8: bl sub_80C6614 bl sub_80C6AB8 b _080C660E _080C65F2: bl sub_80C6714 bl sub_80C6A08 b _080C660E _080C65FC: bl sub_80C66D8 bl sub_80C6958 b _080C660E _080C6606: bl sub_80C66BC bl sub_80C68A0 _080C660E: pop {r0} bx r0 thumb_func_end sub_80C6548 thumb_func_start sub_80C6614 sub_80C6614: @ 80C6614 ldr r2, _080C667C @ =gUnknown_3005350 ldr r1, [r2] movs r0, 0 strh r0, [r1] ldr r0, [r2] ldr r2, _080C6680 @ =0x000018c6 adds r1, r2, 0 strh r1, [r0, 0x2] ldr r2, _080C6684 @ =0x000077bd adds r1, r2, 0 strh r1, [r0, 0x4] ldr r2, _080C6688 @ =0x00002d6b adds r1, r2, 0 strh r1, [r0, 0x6] ldr r2, _080C668C @ =0x000018dd adds r1, r2, 0 strh r1, [r0, 0x8] ldr r2, _080C6690 @ =0x00001ba6 adds r1, r2, 0 strh r1, [r0, 0xA] ldr r2, _080C6694 @ =0x000074c6 adds r1, r2, 0 strh r1, [r0, 0xC] ldr r2, _080C6698 @ =0x00001bbd adds r1, r2, 0 strh r1, [r0, 0xE] ldr r2, _080C669C @ =0x000074dd adds r1, r2, 0 strh r1, [r0, 0x10] ldr r2, _080C66A0 @ =0x000077a6 adds r1, r2, 0 strh r1, [r0, 0x12] ldr r2, _080C66A4 @ =0x0000197d adds r1, r2, 0 strh r1, [r0, 0x14] ldr r2, _080C66A8 @ =0x00001bab adds r1, r2, 0 strh r1, [r0, 0x16] ldr r2, _080C66AC @ =0x00007566 adds r1, r2, 0 strh r1, [r0, 0x18] ldr r2, _080C66B0 @ =0x00002cdd adds r1, r2, 0 strh r1, [r0, 0x1A] ldr r2, _080C66B4 @ =0x00002fa6 adds r1, r2, 0 strh r1, [r0, 0x1C] ldr r2, _080C66B8 @ =0x000074cb adds r1, r2, 0 strh r1, [r0, 0x1E] bx lr .align 2, 0 _080C667C: .4byte gUnknown_3005350 _080C6680: .4byte 0x000018c6 _080C6684: .4byte 0x000077bd _080C6688: .4byte 0x00002d6b _080C668C: .4byte 0x000018dd _080C6690: .4byte 0x00001ba6 _080C6694: .4byte 0x000074c6 _080C6698: .4byte 0x00001bbd _080C669C: .4byte 0x000074dd _080C66A0: .4byte 0x000077a6 _080C66A4: .4byte 0x0000197d _080C66A8: .4byte 0x00001bab _080C66AC: .4byte 0x00007566 _080C66B0: .4byte 0x00002cdd _080C66B4: .4byte 0x00002fa6 _080C66B8: .4byte 0x000074cb thumb_func_end sub_80C6614 thumb_func_start sub_80C66BC sub_80C66BC: @ 80C66BC ldr r2, _080C66D0 @ =gUnknown_3005350 ldr r0, [r2] movs r1, 0 strh r1, [r0] ldr r2, [r2] strh r1, [r2, 0x2] ldr r1, _080C66D4 @ =0x00007fff adds r0, r1, 0 strh r0, [r2, 0x4] bx lr .align 2, 0 _080C66D0: .4byte gUnknown_3005350 _080C66D4: .4byte 0x00007fff thumb_func_end sub_80C66BC thumb_func_start sub_80C66D8 sub_80C66D8: @ 80C66D8 push {r4,r5,lr} ldr r1, _080C6710 @ =gUnknown_3005350 ldr r0, [r1] movs r2, 0 strh r2, [r0] ldr r0, [r1] strh r2, [r0, 0x2] movs r4, 0 adds r5, r1, 0 _080C66EA: ldr r0, [r5] lsls r2, r4, 1 adds r2, r0 adds r0, r4, 0x2 lsls r3, r0, 1 lsls r1, r0, 11 lsls r0, 6 orrs r1, r0 orrs r1, r3 strh r1, [r2, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xD bls _080C66EA pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C6710: .4byte gUnknown_3005350 thumb_func_end sub_80C66D8 thumb_func_start sub_80C6714 sub_80C6714: @ 80C6714 push {r4,lr} ldr r2, _080C6744 @ =gUnknown_3005350 ldr r1, [r2] movs r0, 0 strh r0, [r1] movs r3, 0 adds r4, r2, 0 _080C6722: ldr r0, [r4] lsls r2, r3, 1 adds r2, r0 lsls r0, r3, 10 lsls r1, r3, 5 orrs r0, r1 orrs r0, r3 strh r0, [r2, 0x2] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1F bls _080C6722 pop {r4} pop {r0} bx r0 .align 2, 0 _080C6744: .4byte gUnknown_3005350 thumb_func_end sub_80C6714 thumb_func_start sub_80C6748 sub_80C6748: @ 80C6748 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 movs r1, 0xDF mov r9, r1 cmp r0, 0 bne _080C6760 movs r2, 0xFF mov r9, r2 _080C6760: movs r6, 0 ldr r3, _080C67E4 @ =gUnknown_3005350 mov r12, r3 mov r0, r9 lsls r4, r0, 1 ldr r5, _080C67E8 @ =gUnknown_3005338 cmp r6, r9 bcs _080C6784 movs r2, 0 _080C6772: ldr r0, [r3] lsls r1, r6, 1 adds r1, r0 strh r2, [r1] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r9 bcc _080C6772 _080C6784: mov r1, r12 ldr r0, [r1] adds r0, r4, r0 ldr r2, _080C67EC @ =0x00003def adds r1, r2, 0 strh r1, [r0] movs r3, 0 ldrb r5, [r5] cmp r3, r5 bcs _080C6888 _080C6798: ldr r2, _080C67F0 @ =gUnknown_3005334 ldr r0, _080C67F4 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r3 ldr r0, _080C67F8 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 ldr r1, [r2] adds r1, r0 ldr r0, _080C67FC @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080C6800 @ =gUnknown_3005340 adds r2, r0, 0 adds r3, 0x1 mov r10, r3 ldrb r3, [r2] cmp r6, r3 bcs _080C687A ldr r0, _080C6804 @ =gUnknown_3005354 mov r8, r0 _080C67C8: ldrh r0, [r4] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _080C6808 mov r1, r8 ldrh r0, [r1] strh r0, [r4] adds r6, 0x1 adds r7, r4, 0x2 b _080C686E .align 2, 0 _080C67E4: .4byte gUnknown_3005350 _080C67E8: .4byte gUnknown_3005338 _080C67EC: .4byte 0x00003def _080C67F0: .4byte gUnknown_3005334 _080C67F4: .4byte gUnknown_3005344 _080C67F8: .4byte gUnknown_300534C _080C67FC: .4byte gUnknown_3005330 _080C6800: .4byte gUnknown_3005340 _080C6804: .4byte gUnknown_3005354 _080C6808: adds r0, r4, 0 bl sub_80C6B68 lsls r0, 16 lsrs r5, r0, 16 movs r3, 0x1 adds r6, 0x1 adds r7, r4, 0x2 cmp r3, r9 bcs _080C6864 ldr r0, _080C6834 @ =gUnknown_3005350 ldr r2, [r0] ldrh r1, [r2, 0x2] mov r12, r0 cmp r1, 0 bne _080C6838 strh r5, [r2, 0x2] mov r2, r8 ldrh r0, [r2] adds r0, 0x1 b _080C6862 .align 2, 0 _080C6834: .4byte gUnknown_3005350 _080C6838: mov r2, r12 ldr r1, [r2] lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r5 beq _080C685C adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r9 bcs _080C6864 lsls r0, r3, 1 adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 bne _080C6838 strh r5, [r1] _080C685C: mov r1, r8 ldrh r0, [r1] adds r0, r3 _080C6862: strh r0, [r4] _080C6864: ldr r2, _080C6898 @ =gUnknown_3005340 cmp r3, r9 bne _080C686E mov r3, r9 strh r3, [r4] _080C686E: lsls r0, r6, 24 lsrs r6, r0, 24 adds r4, r7, 0 ldrb r0, [r2] cmp r6, r0 bcc _080C67C8 _080C687A: mov r1, r10 lsls r0, r1, 24 lsrs r3, r0, 24 ldr r0, _080C689C @ =gUnknown_3005338 ldrb r0, [r0] cmp r3, r0 bcc _080C6798 _080C6888: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6898: .4byte gUnknown_3005340 _080C689C: .4byte gUnknown_3005338 thumb_func_end sub_80C6748 thumb_func_start sub_80C68A0 sub_80C68A0: @ 80C68A0 push {r4-r7,lr} mov r7, r8 push {r7} movs r2, 0 ldr r0, _080C68F4 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C6944 ldr r0, _080C68F8 @ =gUnknown_3005334 mov r8, r0 _080C68B4: ldr r0, _080C68FC @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C6900 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080C6904 @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r6, 0 ldr r0, _080C6908 @ =gUnknown_3005340 adds r3, r0, 0 adds r7, r2, 0x1 ldrb r0, [r3] cmp r6, r0 bcs _080C6938 ldr r5, _080C690C @ =gUnknown_3005354 _080C68E0: ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _080C6910 ldrh r0, [r5] strh r0, [r4] b _080C692A .align 2, 0 _080C68F4: .4byte gUnknown_3005338 _080C68F8: .4byte gUnknown_3005334 _080C68FC: .4byte gUnknown_3005344 _080C6900: .4byte gUnknown_300534C _080C6904: .4byte gUnknown_3005330 _080C6908: .4byte gUnknown_3005340 _080C690C: .4byte gUnknown_3005354 _080C6910: adds r0, r4, 0 bl sub_80C600C lsls r0, 16 cmp r0, 0 bne _080C6922 ldrh r0, [r5] adds r0, 0x1 b _080C6926 _080C6922: ldrh r0, [r5] adds r0, 0x2 _080C6926: strh r0, [r4] ldr r3, _080C6950 @ =gUnknown_3005340 _080C692A: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r4, 0x2 ldrb r0, [r3] cmp r6, r0 bcc _080C68E0 _080C6938: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080C6954 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C68B4 _080C6944: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6950: .4byte gUnknown_3005340 _080C6954: .4byte gUnknown_3005338 thumb_func_end sub_80C68A0 thumb_func_start sub_80C6958 sub_80C6958: @ 80C6958 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080C69AC @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C69F4 ldr r0, _080C69B0 @ =gUnknown_3005334 mov r8, r0 _080C696E: ldr r0, _080C69B4 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C69B8 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080C69BC @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080C69C0 @ =gUnknown_3005340 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080C69E8 ldr r6, _080C69C4 @ =gUnknown_3005354 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080C699E: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080C69C8 ldrh r0, [r6] strh r0, [r4] b _080C69D8 .align 2, 0 _080C69AC: .4byte gUnknown_3005338 _080C69B0: .4byte gUnknown_3005334 _080C69B4: .4byte gUnknown_3005344 _080C69B8: .4byte gUnknown_300534C _080C69BC: .4byte gUnknown_3005330 _080C69C0: .4byte gUnknown_3005340 _080C69C4: .4byte gUnknown_3005354 _080C69C8: adds r0, r4, 0 str r2, [sp] bl sub_80C6CAC ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080C69D8: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080C6A00 @ =gUnknown_3005340 ldrb r0, [r0] cmp r5, r0 bcc _080C699E _080C69E8: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080C6A04 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C696E _080C69F4: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6A00: .4byte gUnknown_3005340 _080C6A04: .4byte gUnknown_3005338 thumb_func_end sub_80C6958 thumb_func_start sub_80C6A08 sub_80C6A08: @ 80C6A08 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080C6A5C @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C6AA4 ldr r0, _080C6A60 @ =gUnknown_3005334 mov r8, r0 _080C6A1E: ldr r0, _080C6A64 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C6A68 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080C6A6C @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080C6A70 @ =gUnknown_3005340 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080C6A98 ldr r6, _080C6A74 @ =gUnknown_3005354 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080C6A4E: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080C6A78 ldrh r0, [r6] strh r0, [r4] b _080C6A88 .align 2, 0 _080C6A5C: .4byte gUnknown_3005338 _080C6A60: .4byte gUnknown_3005334 _080C6A64: .4byte gUnknown_3005344 _080C6A68: .4byte gUnknown_300534C _080C6A6C: .4byte gUnknown_3005330 _080C6A70: .4byte gUnknown_3005340 _080C6A74: .4byte gUnknown_3005354 _080C6A78: adds r0, r4, 0 str r2, [sp] bl sub_80C6CE0 ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080C6A88: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080C6AB0 @ =gUnknown_3005340 ldrb r0, [r0] cmp r5, r0 bcc _080C6A4E _080C6A98: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080C6AB4 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C6A1E _080C6AA4: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6AB0: .4byte gUnknown_3005340 _080C6AB4: .4byte gUnknown_3005338 thumb_func_end sub_80C6A08 thumb_func_start sub_80C6AB8 sub_80C6AB8: @ 80C6AB8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 movs r2, 0 ldr r0, _080C6B0C @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcs _080C6B54 ldr r0, _080C6B10 @ =gUnknown_3005334 mov r8, r0 _080C6ACE: ldr r0, _080C6B14 @ =gUnknown_3005344 ldrb r1, [r0] adds r1, r2 ldr r0, _080C6B18 @ =gUnknown_300534C ldrb r0, [r0] muls r0, r1 lsls r0, 1 mov r3, r8 ldr r1, [r3] adds r1, r0 ldr r0, _080C6B1C @ =gUnknown_3005330 ldrb r0, [r0] lsls r0, 1 adds r4, r1, r0 movs r5, 0 ldr r0, _080C6B20 @ =gUnknown_3005340 adds r7, r2, 0x1 ldrb r0, [r0] cmp r5, r0 bcs _080C6B48 ldr r6, _080C6B24 @ =gUnknown_3005354 movs r0, 0x80 lsls r0, 8 adds r2, r0, 0 _080C6AFE: ldrh r0, [r4] ands r0, r2 cmp r0, 0 beq _080C6B28 ldrh r0, [r6] strh r0, [r4] b _080C6B38 .align 2, 0 _080C6B0C: .4byte gUnknown_3005338 _080C6B10: .4byte gUnknown_3005334 _080C6B14: .4byte gUnknown_3005344 _080C6B18: .4byte gUnknown_300534C _080C6B1C: .4byte gUnknown_3005330 _080C6B20: .4byte gUnknown_3005340 _080C6B24: .4byte gUnknown_3005354 _080C6B28: adds r0, r4, 0 str r2, [sp] bl sub_80C6BDC ldrh r1, [r6] adds r0, r1 strh r0, [r4] ldr r2, [sp] _080C6B38: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x2 ldr r0, _080C6B60 @ =gUnknown_3005340 ldrb r0, [r0] cmp r5, r0 bcc _080C6AFE _080C6B48: lsls r0, r7, 24 lsrs r2, r0, 24 ldr r0, _080C6B64 @ =gUnknown_3005338 ldrb r0, [r0] cmp r2, r0 bcc _080C6ACE _080C6B54: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6B60: .4byte gUnknown_3005340 _080C6B64: .4byte gUnknown_3005338 thumb_func_end sub_80C6AB8 thumb_func_start sub_80C6B68 sub_80C6B68: @ 80C6B68 push {r4,lr} ldrh r0, [r0] movs r1, 0x1F movs r4, 0x1F ands r4, r0 lsls r0, 16 lsrs r3, r0, 21 ands r3, r1 lsrs r2, r0, 26 ands r2, r1 movs r1, 0x3 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080C6B8C movs r0, 0x1C ands r0, r4 adds r4, r0, 0x4 _080C6B8C: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080C6B9A movs r0, 0x1C ands r0, r3 adds r3, r0, 0x4 _080C6B9A: adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _080C6BA8 movs r0, 0x1C ands r0, r2 adds r2, r0, 0x4 _080C6BA8: cmp r4, 0x5 bhi _080C6BAE movs r4, 0x6 _080C6BAE: cmp r4, 0x1E bls _080C6BB4 movs r4, 0x1E _080C6BB4: cmp r3, 0x5 bhi _080C6BBA movs r3, 0x6 _080C6BBA: cmp r3, 0x1E bls _080C6BC0 movs r3, 0x1E _080C6BC0: cmp r2, 0x5 bhi _080C6BC6 movs r2, 0x6 _080C6BC6: cmp r2, 0x1E bls _080C6BCC movs r2, 0x1E _080C6BCC: lsls r0, r2, 10 lsls r1, r3, 5 orrs r0, r1 orrs r4, r0 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80C6B68 thumb_func_start sub_80C6BDC sub_80C6BDC: @ 80C6BDC push {lr} ldrh r0, [r0] movs r1, 0x1F movs r3, 0x1F ands r3, r0 lsls r0, 16 lsrs r2, r0, 21 ands r2, r1 lsrs r0, 26 ands r0, r1 cmp r3, 0xB bhi _080C6C00 cmp r2, 0xA bhi _080C6C00 cmp r0, 0xA bhi _080C6C00 movs r0, 0x1 b _080C6CA6 _080C6C00: cmp r3, 0x13 bls _080C6C24 cmp r2, 0x13 bls _080C6C0C cmp r0, 0x13 bhi _080C6C30 _080C6C0C: cmp r3, 0x13 bls _080C6C24 cmp r2, 0x13 bls _080C6C1A cmp r0, 0xE bhi _080C6C30 b _080C6C68 _080C6C1A: cmp r0, 0x13 bls _080C6C24 cmp r2, 0xE bhi _080C6C30 b _080C6C44 _080C6C24: cmp r2, 0x13 bls _080C6C34 cmp r0, 0x13 bls _080C6C34 cmp r3, 0xE bls _080C6C8C _080C6C30: movs r0, 0x2 b _080C6CA6 _080C6C34: cmp r3, 0x13 bls _080C6C58 cmp r2, 0xB bls _080C6C4C cmp r0, 0xB bls _080C6C48 cmp r2, r0 bcs _080C6C68 _080C6C44: movs r0, 0x8 b _080C6CA6 _080C6C48: movs r0, 0xA b _080C6CA6 _080C6C4C: cmp r0, 0xB bls _080C6C54 movs r0, 0xD b _080C6CA6 _080C6C54: movs r0, 0x4 b _080C6CA6 _080C6C58: cmp r2, 0x13 bls _080C6C7C cmp r3, 0xB bls _080C6C70 cmp r0, 0xB bls _080C6C6C cmp r3, r0 bcc _080C6C8C _080C6C68: movs r0, 0x7 b _080C6CA6 _080C6C6C: movs r0, 0xB b _080C6CA6 _080C6C70: cmp r0, 0xB bls _080C6C78 movs r0, 0xE b _080C6CA6 _080C6C78: movs r0, 0x5 b _080C6CA6 _080C6C7C: cmp r0, 0x13 bls _080C6CA4 cmp r3, 0xB bls _080C6C90 cmp r2, 0xB bls _080C6C98 cmp r3, r2 bcs _080C6C44 _080C6C8C: movs r0, 0x9 b _080C6CA6 _080C6C90: cmp r2, 0xB bls _080C6C98 movs r0, 0xC b _080C6CA6 _080C6C98: cmp r0, 0xB bls _080C6CA0 movs r0, 0xF b _080C6CA6 _080C6CA0: movs r0, 0x6 b _080C6CA6 _080C6CA4: movs r0, 0x3 _080C6CA6: pop {r1} bx r1 thumb_func_end sub_80C6BDC thumb_func_start sub_80C6CAC sub_80C6CAC: @ 80C6CAC push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 movs r1, 0x1E ands r0, r1 lsls r0, 16 cmp r0, 0 beq _080C6CD8 lsrs r0, 17 b _080C6CDA _080C6CD8: movs r0, 0x1 _080C6CDA: pop {r1} bx r1 thumb_func_end sub_80C6CAC thumb_func_start sub_80C6CE0 sub_80C6CE0: @ 80C6CE0 push {lr} ldrh r1, [r0] movs r3, 0x1F movs r0, 0x1F ands r0, r1 lsls r1, 16 lsrs r2, r1, 21 ands r2, r3 lsrs r1, 26 ands r1, r3 adds r0, r2 adds r0, r1 movs r1, 0x3 bl __divsi3 lsls r0, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80C6CE0 .align 2, 0 @ Don't pad with nop.