.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_81231EC sub_81231EC: @ 81231EC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08123210 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812320A ldr r0, _08123214 @ =sub_8123244 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0812320A: pop {r4} pop {r0} bx r0 .align 2, 0 _08123210: .4byte gPaletteFade _08123214: .4byte sub_8123244 thumb_func_end sub_81231EC thumb_func_start sub_8123218 sub_8123218: @ 8123218 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _08123240 @ =sub_81231EC movs r1, 0x1 bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08123240: .4byte sub_81231EC thumb_func_end sub_8123218 thumb_func_start sub_8123244 sub_8123244: @ 8123244 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 ldr r1, _08123268 @ =gMain ldr r2, _0812326C @ =0x0000043c adds r0, r1, r2 ldrb r0, [r0] mov r9, r1 cmp r0, 0x8 bhi _08123298 lsls r0, 2 ldr r1, _08123270 @ =_08123274 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08123268: .4byte gMain _0812326C: .4byte 0x0000043c _08123270: .4byte _08123274 .align 2, 0 _08123274: .4byte _08123298 .4byte _08123384 .4byte _081233E8 .4byte _08123484 .4byte _081234A0 .4byte _08123504 .4byte _08123598 .4byte _08123678 .4byte _081236B0 _08123298: movs r0, 0 bl SetVBlankCallback bl remove_some_task movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0xC mov r9, r0 add r2, sp, 0x8 movs r6, 0 ldr r1, _08123368 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _0812336C @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r8, r0 _081232C0: strh r6, [r2] add r0, sp, 0x8 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 _081232C0 strh r6, [r2] add r2, sp, 0x8 str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r8 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, 0xC] ldr r2, _08123368 @ =0x040000d4 mov r1, r9 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 add r0, sp, 0x8 strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r4, 0x81 lsls r4, 24 orrs r3, r4 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r1, _08123370 @ =gUnknown_02039274 ldr r0, _08123374 @ =gSharedMem + 0x17000 str r0, [r1] adds r3, r0, 0 ldr r5, _08123378 @ =0x000010fc ldr r0, _0812337C @ =gMain mov r9, r0 add r1, sp, 0x8 movs r7, 0 movs r6, 0x80 lsls r6, 5 ldr r0, _0812336C @ =0x81000800 mov r8, r0 _08123338: strh r7, [r1] add r0, sp, 0x8 str r0, [r2] str r3, [r2, 0x4] mov r0, r8 str r0, [r2, 0x8] ldr r0, [r2, 0x8] adds r3, r6 subs r5, r6 cmp r5, r6 bhi _08123338 strh r7, [r1] add r1, sp, 0x8 str r1, [r2] str r3, [r2, 0x4] lsrs r0, r5, 1 orrs r0, r4 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r1, _08123380 @ =0x0000043c add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123368: .4byte 0x040000d4 _0812336C: .4byte 0x81000800 _08123370: .4byte gUnknown_02039274 _08123374: .4byte gSharedMem + 0x17000 _08123378: .4byte 0x000010fc _0812337C: .4byte gMain _08123380: .4byte 0x0000043c _08123384: bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes bl ResetPaletteFade bl StartWeather movs r4, 0 ldr r0, _081233D4 @ =gWeatherPtr ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _081233A4: lsls r0, r4, 2 adds r0, r1, r0 str r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081233A4 bl InitMapMusic bl ResetMapMusic ldr r2, _081233D8 @ =gSpriteCoordOffsetX ldr r1, _081233DC @ =gSpriteCoordOffsetY movs r0, 0 strh r0, [r1] strh r0, [r2] ldr r1, _081233E0 @ =gMain ldr r2, _081233E4 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081233D4: .4byte gWeatherPtr _081233D8: .4byte gSpriteCoordOffsetX _081233DC: .4byte gSpriteCoordOffsetY _081233E0: .4byte gMain _081233E4: .4byte 0x0000043c _081233E8: movs r4, 0 ldr r5, _08123454 @ =gUnknown_08401CF8 _081233EC: lsls r0, r4, 3 adds r0, r5 bl LoadCompressedObjectPic adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081233EC ldr r0, _08123458 @ =gUnknown_08401D18 bl LoadSpritePalettes ldr r0, _0812345C @ =gCableCarMtChimneyTilemap ldr r4, _08123460 @ =gSharedMem + 0x19000 adds r1, r4, 0 bl LZDecompressWram ldr r0, _08123464 @ =gCableCarTreeTilemap movs r2, 0xB4 lsls r2, 1 adds r1, r4, r2 bl LZDecompressWram ldr r0, _08123468 @ =gCableCarMountainTilemap movs r2, 0xA5 lsls r2, 3 adds r1, r4, r2 bl LZDecompressWram ldr r0, _0812346C @ =gCableCarPylonStemTilemap ldr r1, _08123470 @ =0x000009d8 adds r4, r1 adds r1, r4, 0 bl LZDecompressWram ldr r0, _08123474 @ =gCableCarBG_Pal movs r1, 0 movs r2, 0x80 bl LoadPalette ldr r0, _08123478 @ =gCableCarBG_Gfx movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r1, _0812347C @ =gMain ldr r2, _08123480 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123454: .4byte gUnknown_08401CF8 _08123458: .4byte gUnknown_08401D18 _0812345C: .4byte gCableCarMtChimneyTilemap _08123460: .4byte gSharedMem + 0x19000 _08123464: .4byte gCableCarTreeTilemap _08123468: .4byte gCableCarMountainTilemap _0812346C: .4byte gCableCarPylonStemTilemap _08123470: .4byte 0x000009d8 _08123474: .4byte gCableCarBG_Pal _08123478: .4byte gCableCarBG_Gfx _0812347C: .4byte gMain _08123480: .4byte 0x0000043c _08123484: bl sub_8124118 bl RunTasks ldr r1, _08123498 @ =gMain ldr r0, _0812349C @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123498: .4byte gMain _0812349C: .4byte 0x0000043c _081234A0: ldr r0, _081234B4 @ =gUnknown_02039274 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0x7 bne _081234BC ldr r1, _081234B8 @ =0x0000043c add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081234B4: .4byte gUnknown_02039274 _081234B8: .4byte 0x0000043c _081234BC: ldr r0, _081234FC @ =gWeatherPtr ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 ldr r0, [r1] cmp r0, 0 bne _081234CC b _0812370E _081234CC: movs r4, 0 adds r3, r1, 0 movs r5, 0xD negs r5, r5 _081234D4: lsls r0, r4, 2 adds r0, r3, r0 ldr r2, [r0] cmp r2, 0 beq _081234E6 ldrb r1, [r2, 0x5] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x5] _081234E6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081234D4 ldr r1, _08123500 @ =0x0000043c add r1, r9 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081234FC: .4byte gWeatherPtr _08123500: .4byte 0x0000043c _08123504: ldr r0, _08123578 @ =0x0600e800 ldr r5, _0812357C @ =gSharedMem + 0x19168 movs r1, 0x20 str r1, [sp] movs r1, 0xF str r1, [sp, 0x4] adds r1, r5, 0 movs r2, 0 movs r3, 0x11 bl sub_8124F08 ldr r0, _08123580 @ =0x0600f000 movs r2, 0xF0 lsls r2, 2 adds r1, r5, r2 movs r2, 0x1E str r2, [sp] movs r2, 0x14 mov r9, r2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 ldr r0, _08123584 @ =gUnknown_02039274 mov r8, r0 ldr r0, [r0] ldr r6, _08123588 @ =0x000008fc adds r0, r6 ldr r1, _0812358C @ =gCableCarPylonHookTilemapEntries movs r2, 0x5 str r2, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, r6 movs r2, 0x87 lsls r2, 4 adds r5, r2 str r4, [sp] mov r1, r9 str r1, [sp, 0x4] adds r1, r5, 0 movs r2, 0 movs r3, 0x2 bl sub_8124F08 ldr r1, _08123590 @ =gMain ldr r2, _08123594 @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123578: .4byte 0x0600e800 _0812357C: .4byte gSharedMem + 0x19168 _08123580: .4byte 0x0600f000 _08123584: .4byte gUnknown_02039274 _08123588: .4byte 0x000008fc _0812358C: .4byte gCableCarPylonHookTilemapEntries _08123590: .4byte gMain _08123594: .4byte 0x0000043c _08123598: ldr r0, _08123664 @ =gSpecialVar_0x8004 ldrb r0, [r0] bl sub_81248AC ldr r0, _08123668 @ =gUnknown_02039274 mov r8, r0 ldr r0, [r0] adds r0, 0xFC ldr r4, _0812366C @ =gSharedMem + 0x19090 movs r6, 0xC str r6, [sp] movs r5, 0x3 str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0 movs r3, 0xE bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC adds r1, r4, 0 adds r1, 0x48 str r6, [sp] str r5, [sp, 0x4] movs r2, 0xC movs r3, 0x11 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC adds r1, r4, 0 adds r1, 0x90 str r6, [sp] str r5, [sp, 0x4] movs r2, 0x18 movs r3, 0x14 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC movs r2, 0x90 negs r2, r2 adds r2, r4 mov r9, r2 str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0 movs r3, 0x11 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC subs r4, 0x48 str r6, [sp] str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0 movs r3, 0x14 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0xC movs r3, 0x14 bl sub_8124F08 mov r1, r8 ldr r0, [r1] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] adds r1, r4, 0 movs r2, 0xC movs r3, 0x17 bl sub_8124F08 mov r2, r8 ldr r0, [r2] adds r0, 0xFC str r6, [sp] str r5, [sp, 0x4] mov r1, r9 movs r2, 0x18 movs r3, 0x17 bl sub_8124F08 ldr r1, _08123670 @ =gMain ldr r0, _08123674 @ =0x0000043c adds r1, r0 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _08123664: .4byte gSpecialVar_0x8004 _08123668: .4byte gUnknown_02039274 _0812366C: .4byte gSharedMem + 0x19090 _08123670: .4byte gMain _08123674: .4byte 0x0000043c _08123678: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x3 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _081236A4 @ =0x000001a9 movs r1, 0x1 bl FadeInNewBGM movs r0, 0x1 bl sub_8123FBC ldr r1, _081236A8 @ =gMain ldr r2, _081236AC @ =0x0000043c adds r1, r2 ldrb r0, [r1] adds r0, 0x1 b _0812370C .align 2, 0 _081236A4: .4byte 0x000001a9 _081236A8: .4byte gMain _081236AC: .4byte 0x0000043c _081236B0: ldr r3, _081236E4 @ =0x04000208 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _081236E8 @ =0x04000200 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] ldr r0, _081236EC @ =sub_8123C40 bl SetVBlankCallback ldr r0, _081236F0 @ =sub_8123724 bl SetMainCallback2 ldr r0, _081236F4 @ =sub_8123878 movs r1, 0 bl CreateTask ldr r0, _081236F8 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08123700 ldr r0, _081236FC @ =sub_81239E4 b _08123702 .align 2, 0 _081236E4: .4byte 0x04000208 _081236E8: .4byte 0x04000200 _081236EC: .4byte sub_8123C40 _081236F0: .4byte sub_8123724 _081236F4: .4byte sub_8123878 _081236F8: .4byte gSpecialVar_0x8004 _081236FC: .4byte sub_81239E4 _08123700: ldr r0, _0812371C @ =sub_8123AF8 _08123702: movs r1, 0x1 bl CreateTask ldr r1, _08123720 @ =gUnknown_02039274 ldr r1, [r1] _0812370C: strb r0, [r1] _0812370E: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812371C: .4byte sub_8123AF8 _08123720: .4byte gUnknown_02039274 thumb_func_end sub_8123244 thumb_func_start sub_8123724 sub_8123724: @ 8123724 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl MapMusicMain pop {r0} bx r0 thumb_func_end sub_8123724 thumb_func_start sub_8123740 sub_8123740: @ 8123740 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r4, 0 movs r0, 0 bl sub_8123FBC ldr r0, _08123854 @ =gSpriteCoordOffsetX strh r4, [r0] movs r0, 0 bl sub_807C9B4 add r7, sp, 0x4 ldr r0, _08123858 @ =gWeatherPtr ldr r0, [r0] adds r1, r0, 0 adds r1, 0xF0 movs r2, 0 _08123766: lsls r0, r4, 2 adds r0, r1, r0 str r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _08123766 bl ResetTasks bl ResetSpriteData bl ResetPaletteFade ldr r2, _0812385C @ =gSharedMem movs r3, 0x80 lsls r3, 10 movs r5, 0 ldr r1, _08123860 @ =0x040000d4 movs r4, 0x80 lsls r4, 5 ldr r6, _08123864 @ =0x85000400 movs r0, 0x85 lsls r0, 24 mov r12, r0 _08123798: str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r4 subs r3, r4 cmp r3, r4 bhi _08123798 str r5, [sp] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 2 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _08123868 @ =gUnknown_02039274 movs r0, 0 str r0, [r1] movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 adds r2, r7, 0 movs r6, 0 ldr r1, _08123860 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r0, _0812386C @ =0x81000800 mov r12, r0 movs r0, 0x81 lsls r0, 24 mov r8, r0 _081237E0: strh r6, [r2] str r2, [r1] str r3, [r1, 0x4] mov r0, r12 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _081237E0 strh r6, [r7] str r7, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r8 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] ldr r2, _08123860 @ =0x040000d4 mov r1, sp 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 r0, 0xA0 lsls r0, 19 strh r4, [r7] str r7, [r2] str r0, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl warp_in ldr r0, _08123870 @ =gFieldCallback str r4, [r0] ldr r0, _08123874 @ =CB2_LoadMap bl SetMainCallback2 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08123854: .4byte gSpriteCoordOffsetX _08123858: .4byte gWeatherPtr _0812385C: .4byte gSharedMem _08123860: .4byte 0x040000d4 _08123864: .4byte 0x85000400 _08123868: .4byte gUnknown_02039274 _0812386C: .4byte 0x81000800 _08123870: .4byte gFieldCallback _08123874: .4byte CB2_LoadMap thumb_func_end sub_8123740 thumb_func_start sub_8123878 sub_8123878: @ 8123878 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _081238A4 @ =gUnknown_02039274 ldr r3, [r5] ldrh r0, [r3, 0x6] adds r0, 0x1 strh r0, [r3, 0x6] ldrb r2, [r3, 0x1] adds r7, r5, 0 cmp r2, 0x2 beq _0812397E cmp r2, 0x2 bgt _081238A8 cmp r2, 0 beq _081238B6 cmp r2, 0x1 beq _081238D0 b _081239D6 .align 2, 0 _081238A4: .4byte gUnknown_02039274 _081238A8: cmp r2, 0x3 bne _081238AE b _081239A4 _081238AE: cmp r2, 0xFF bne _081238B4 b _081239BC _081238B4: b _081239D6 _081238B6: lsls r0, 16 lsrs r0, 16 ldrh r1, [r3, 0x4] cmp r0, r1 beq _081238C2 b _081239D6 _081238C2: ldrb r0, [r3, 0x2] bl DoWeatherEffect ldr r1, [r5] movs r0, 0x1 strb r0, [r1, 0x1] b _081239D6 _081238D0: ldrb r0, [r3, 0x2] cmp r0, 0x2 beq _08123924 cmp r0, 0x7 beq _081238DC b _081239D6 _081238DC: ldr r0, _08123920 @ =gWeatherPtr ldr r0, [r0] adds r2, r0, 0 adds r2, 0xF0 ldr r0, [r2] cmp r0, 0 beq _081239D6 ldrb r1, [r0, 0x5] movs r0, 0xC ands r0, r1 cmp r0, 0 beq _081239D6 adds r3, r2, 0 movs r5, 0xD negs r5, r5 _081238FA: lsls r0, r4, 2 adds r0, r3, r0 ldr r2, [r0] cmp r2, 0 beq _0812390C ldrb r1, [r2, 0x5] adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0x5] _0812390C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _081238FA ldr r1, [r7] movs r0, 0x2 strb r0, [r1, 0x1] b _081239D6 .align 2, 0 _08123920: .4byte gWeatherPtr _08123924: ldr r0, _08123938 @ =gWeatherPtr ldr r2, [r0] movs r1, 0xDA lsls r1, 3 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x2 bne _0812393C strb r0, [r3, 0x1] b _081239D6 .align 2, 0 _08123938: .4byte gWeatherPtr _0812393C: ldrh r1, [r3, 0x6] ldrh r0, [r3, 0x4] adds r0, 0x8 cmp r1, r0 blt _081239D6 adds r6, r2, 0 adds r6, 0xF0 movs r5, 0x1 movs r7, 0x5 negs r7, r7 _08123950: lsls r0, r4, 2 adds r0, r6, r0 ldr r0, [r0] cmp r0, 0 beq _08123972 adds r3, r0, 0 adds r3, 0x3E ldrb r2, [r3] lsls r1, r2, 29 lsrs r1, 31 eors r1, r5 ands r1, r5 lsls r1, 2 adds r0, r7, 0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08123972: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x13 bls _08123950 b _081239D6 _0812397E: lsls r1, r0, 16 ldr r0, _081239A0 @ =0x023a0000 cmp r1, r0 bne _081239D6 movs r0, 0x3 strb r0, [r3, 0x1] subs r0, 0x4 str r4, [sp] movs r1, 0x3 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 bl FadeOutBGM b _081239D6 .align 2, 0 _081239A0: .4byte 0x023a0000 _081239A4: ldr r0, _081239B8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081239D6 movs r0, 0xFF strb r0, [r3, 0x1] b _081239D6 .align 2, 0 _081239B8: .4byte gPaletteFade _081239BC: movs r0, 0 bl SetVBlankCallback adds r0, r6, 0 bl DestroyTask ldr r0, [r5] ldrb r0, [r0] bl DestroyTask ldr r0, _081239E0 @ =sub_8123740 bl SetMainCallback2 _081239D6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081239E0: .4byte sub_8123740 thumb_func_end sub_8123878 thumb_func_start sub_81239E4 sub_81239E4: @ 81239E4 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08123A38 @ =gUnknown_02039274 ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0xFF beq _08123AC0 ldrb r0, [r1, 0x14] subs r0, 0x1 strb r0, [r1, 0x14] ldr r1, [r6] ldrh r0, [r1, 0x6] movs r3, 0x1 ands r0, r3 cmp r0, 0 bne _08123A0A ldrb r0, [r1, 0x15] subs r0, 0x1 strb r0, [r1, 0x15] _08123A0A: ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08123A24 ldrb r0, [r2, 0xC] subs r0, 0x1 strb r0, [r2, 0xC] ldr r1, [r6] ldrb r0, [r1, 0xD] subs r0, 0x1 strb r0, [r1, 0xD] _08123A24: ldr r0, [r6] ldrb r1, [r0, 0x14] cmp r1, 0x20 beq _08123A74 cmp r1, 0x20 bgt _08123A3C cmp r1, 0x10 beq _08123A90 b _08123AC0 .align 2, 0 _08123A38: .4byte gUnknown_02039274 _08123A3C: cmp r1, 0x28 beq _08123A60 cmp r1, 0xAF bne _08123AC0 ldr r1, _08123A5C @ =0x000008fc adds r0, r1 movs r1, 0x2 str r1, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0x16 bl sub_8124E7C b _08123AC0 .align 2, 0 _08123A5C: .4byte 0x000008fc _08123A60: ldr r1, _08123A70 @ =0x000008fc adds r0, r1 movs r1, 0x2 str r1, [sp] str r1, [sp, 0x4] movs r1, 0 movs r2, 0x3 b _08123A82 .align 2, 0 _08123A70: .4byte 0x000008fc _08123A74: ldr r1, _08123A8C @ =0x000008fc adds r0, r1 str r3, [sp] movs r1, 0x2 str r1, [sp, 0x4] movs r1, 0 movs r2, 0x2 _08123A82: movs r3, 0 bl sub_8124E7C b _08123AC0 .align 2, 0 _08123A8C: .4byte 0x000008fc _08123A90: ldr r5, _08123AE8 @ =0x000008fc adds r0, r5 ldr r1, _08123AEC @ =gCableCarPylonHookTilemapEntries movs r2, 0x5 str r2, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8124F08 ldr r0, [r6] adds r0, r5 ldr r1, _08123AF0 @ =gSharedMem + 0x199D8 str r4, [sp] movs r2, 0x1E str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_8124F08 ldr r1, [r6] movs r0, 0x40 strb r0, [r1, 0x15] _08123AC0: bl sub_812453C ldr r3, _08123AF4 @ =gSpriteCoordOffsetX movs r0, 0 ldrsh r2, [r3, r0] adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _08123AD6 adds r0, r2, 0 adds r0, 0x80 _08123AD6: asrs r0, 7 lsls r0, 7 subs r0, r1, r0 strh r0, [r3] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123AE8: .4byte 0x000008fc _08123AEC: .4byte gCableCarPylonHookTilemapEntries _08123AF0: .4byte gSharedMem + 0x199D8 _08123AF4: .4byte gSpriteCoordOffsetX thumb_func_end sub_81239E4 thumb_func_start sub_8123AF8 sub_8123AF8: @ 8123AF8 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08123B4C @ =gUnknown_02039274 ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0xFF beq _08123BEE ldrb r0, [r1, 0x14] adds r0, 0x1 strb r0, [r1, 0x14] ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08123B1E ldrb r0, [r2, 0x15] adds r0, 0x1 strb r0, [r2, 0x15] _08123B1E: ldr r2, [r6] ldrh r0, [r2, 0x6] movs r1, 0x7 ands r0, r1 cmp r0, 0 bne _08123B38 ldrb r0, [r2, 0xC] adds r0, 0x1 strb r0, [r2, 0xC] ldr r1, [r6] ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] _08123B38: ldr r3, [r6] ldrb r0, [r3, 0x14] cmp r0, 0x20 beq _08123BB0 cmp r0, 0x20 bgt _08123B50 cmp r0, 0x10 beq _08123B78 b _08123BEE .align 2, 0 _08123B4C: .4byte gUnknown_02039274 _08123B50: cmp r0, 0x28 beq _08123BDC cmp r0, 0xB0 bne _08123BEE ldr r1, _08123B70 @ =0x000008fc adds r0, r3, r1 ldr r1, _08123B74 @ =gSharedMem + 0x199D8 movs r2, 0x2 str r2, [sp] movs r2, 0x1E str r2, [sp, 0x4] movs r2, 0 movs r3, 0x2 bl sub_8124F08 b _08123BEE .align 2, 0 _08123B70: .4byte 0x000008fc _08123B74: .4byte gSharedMem + 0x199D8 _08123B78: ldr r5, _08123BAC @ =0x000008fc adds r0, r3, r5 movs r1, 0x3 str r1, [sp] movs r4, 0x2 str r4, [sp, 0x4] movs r1, 0 movs r2, 0x2 movs r3, 0 bl sub_8124E7C ldr r0, [r6] adds r0, r5 str r4, [sp] movs r1, 0xA str r1, [sp, 0x4] movs r1, 0 movs r2, 0 movs r3, 0x16 bl sub_8124E7C ldr r1, [r6] movs r0, 0xC0 strb r0, [r1, 0x15] b _08123BEE .align 2, 0 _08123BAC: .4byte 0x000008fc _08123BB0: ldr r1, _08123BD4 @ =gCableCarPylonHookTilemapEntries + 0x4 ldrh r2, [r1] movs r4, 0x90 lsls r4, 4 adds r0, r3, r4 strh r2, [r0] ldrh r2, [r1, 0x2] adds r4, 0x2 adds r0, r3, r4 strh r2, [r0] ldrh r2, [r1, 0xA] adds r4, 0x3E adds r0, r3, r4 strh r2, [r0] ldrh r1, [r1, 0xC] ldr r2, _08123BD8 @ =0x00000942 b _08123BEA .align 2, 0 _08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4 _08123BD8: .4byte 0x00000942 _08123BDC: ldr r2, _08123C08 @ =gCableCarPylonHookTilemapEntries + 0x8 ldrh r1, [r2] ldr r4, _08123C0C @ =0x00000904 adds r0, r3, r4 strh r1, [r0] ldrh r1, [r2, 0xA] ldr r2, _08123C10 @ =0x00000944 _08123BEA: adds r0, r3, r2 strh r1, [r0] _08123BEE: bl sub_8124598 ldr r0, _08123C14 @ =gUnknown_02039274 ldr r1, [r0] ldrh r0, [r1, 0x6] ldrh r1, [r1, 0x4] cmp r0, r1 bcs _08123C1C ldr r4, _08123C18 @ =gSpriteCoordOffsetX movs r1, 0 ldrsh r0, [r4, r1] b _08123C26 .align 2, 0 _08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8 _08123C0C: .4byte 0x00000904 _08123C10: .4byte 0x00000944 _08123C14: .4byte gUnknown_02039274 _08123C18: .4byte gSpriteCoordOffsetX _08123C1C: ldr r0, _08123C38 @ =gWeatherPtr ldr r4, [r0] ldr r2, _08123C3C @ =0x000006fc adds r4, r2 ldrh r0, [r4] _08123C26: adds r0, 0xF7 movs r1, 0xF8 bl __modsi3 strh r0, [r4] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123C38: .4byte gWeatherPtr _08123C3C: .4byte 0x000006fc thumb_func_end sub_8123AF8 thumb_func_start sub_8123C40 sub_8123C40: @ 8123C40 push {r4,lr} ldr r1, _08123C9C @ =0x040000d4 ldr r0, _08123CA0 @ =gUnknown_02039274 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xFC str r0, [r1] ldr r0, _08123CA4 @ =0x0600e000 str r0, [r1, 0x4] ldr r3, _08123CA8 @ =0x80000400 str r3, [r1, 0x8] ldr r0, [r1, 0x8] ldr r4, _08123CAC @ =0x000008fc adds r0, r2, r4 str r0, [r1] ldr r0, _08123CB0 @ =0x0600f800 str r0, [r1, 0x4] str r3, [r1, 0x8] ldr r0, [r1, 0x8] subs r1, 0xB8 ldrb r0, [r2, 0x14] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x15] strh r0, [r1] subs r1, 0xA ldrb r0, [r2, 0xC] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0xD] strh r0, [r1] subs r1, 0x6 ldrb r0, [r2, 0x8] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x9] strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r4} pop {r0} bx r0 .align 2, 0 _08123C9C: .4byte 0x040000d4 _08123CA0: .4byte gUnknown_02039274 _08123CA4: .4byte 0x0600e000 _08123CA8: .4byte 0x80000400 _08123CAC: .4byte 0x000008fc _08123CB0: .4byte 0x0600f800 thumb_func_end sub_8123C40 thumb_func_start nullsub_76 nullsub_76: @ 8123CB4 bx lr thumb_func_end nullsub_76 thumb_func_start sub_8123CB8 sub_8123CB8: @ 8123CB8 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _08123D20 @ =gUnknown_02039274 ldr r6, [r0] ldrb r0, [r6, 0x1] cmp r0, 0xFF beq _08123D84 ldr r0, _08123D24 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08123D34 movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123CE2 ldr r1, _08123D28 @ =0x47800000 bl __addsf3 _08123CE2: ldr r1, _08123D2C @ =0x3e0f5c29 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] subs r1, r0 strh r1, [r5, 0x20] movs r1, 0x6 ldrsh r4, [r6, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D0A ldr r1, _08123D28 @ =0x47800000 bl __addsf3 _08123D0A: ldr r1, _08123D30 @ =0x3d89374c bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] subs r1, r0 strh r1, [r5, 0x22] b _08123D84 .align 2, 0 _08123D20: .4byte gUnknown_02039274 _08123D24: .4byte gSpecialVar_0x8004 _08123D28: .4byte 0x47800000 _08123D2C: .4byte 0x3e0f5c29 _08123D30: .4byte 0x3d89374c _08123D34: movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D48 ldr r1, _08123D8C @ =0x47800000 bl __addsf3 _08123D48: ldr r1, _08123D90 @ =0x3e0f5c29 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] adds r0, r1 strh r0, [r5, 0x20] movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123D70 ldr r1, _08123D8C @ =0x47800000 bl __addsf3 _08123D70: ldr r1, _08123D94 @ =0x3d89374c bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x22] _08123D84: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08123D8C: .4byte 0x47800000 _08123D90: .4byte 0x3e0f5c29 _08123D94: .4byte 0x3d89374c thumb_func_end sub_8123CB8 thumb_func_start sub_8123D98 sub_8123D98: @ 8123D98 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _08123E04 @ =gUnknown_02039274 ldr r6, [r0] ldrb r0, [r6, 0x1] cmp r0, 0xFF bne _08123DA8 b _08123EB0 _08123DA8: ldr r0, _08123E08 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _08123E18 movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123DC4 ldr r1, _08123E0C @ =0x47800000 bl __addsf3 _08123DC4: ldr r1, _08123E10 @ =0x3e0f5c29 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] subs r1, r0 strh r1, [r5, 0x20] movs r1, 0x6 ldrsh r4, [r6, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123DEC ldr r1, _08123E0C @ =0x47800000 bl __addsf3 _08123DEC: ldr r1, _08123E14 @ =0x3d89374c bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] subs r1, r0 strh r1, [r5, 0x22] b _08123E68 .align 2, 0 _08123E04: .4byte gUnknown_02039274 _08123E08: .4byte gSpecialVar_0x8004 _08123E0C: .4byte 0x47800000 _08123E10: .4byte 0x3e0f5c29 _08123E14: .4byte 0x3d89374c _08123E18: movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123E2C ldr r1, _08123E8C @ =0x47800000 bl __addsf3 _08123E2C: ldr r1, _08123E90 @ =0x3e0f5c29 bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2E] adds r0, r1 strh r0, [r5, 0x20] movs r0, 0x6 ldrsh r4, [r6, r0] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08123E54 ldr r1, _08123E8C @ =0x47800000 bl __addsf3 _08123E54: ldr r1, _08123E94 @ =0x3d89374c bl __mulsf3 bl __fixunssfsi lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x22] _08123E68: movs r0, 0x32 ldrsh r2, [r5, r0] cmp r2, 0 bne _08123E98 movs r0, 0x11 strh r0, [r5, 0x26] ldrh r0, [r5, 0x34] adds r1, r0, 0x1 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _08123EB0 strh r2, [r5, 0x34] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] b _08123EB0 .align 2, 0 _08123E8C: .4byte 0x47800000 _08123E90: .4byte 0x3e0f5c29 _08123E94: .4byte 0x3d89374c _08123E98: movs r2, 0 movs r0, 0x10 strh r0, [r5, 0x26] ldrh r0, [r5, 0x34] adds r1, r0, 0x1 strh r1, [r5, 0x34] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _08123EB0 strh r2, [r5, 0x34] strh r2, [r5, 0x32] _08123EB0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8123D98 thumb_func_start sub_8123EB8 sub_8123EB8: @ 8123EB8 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _08123EE8 adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r3, [r2, 0x20] adds r0, r3 strh r0, [r2, 0x20] ldrh r1, [r2, 0x22] adds r1, 0x10 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r2, 0x22] _08123EE8: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _08123F3E movs r0, 0x30 ldrsh r1, [r2, r0] cmp r1, 0 beq _08123F08 cmp r1, 0x1 beq _08123F12 b _08123F30 _08123F08: ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] b _08123F22 _08123F12: ldrh r0, [r2, 0x2E] ands r0, r1 cmp r0, 0 beq _08123F30 ldrh r0, [r2, 0x20] adds r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x20] _08123F22: movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08123F30 ldrh r0, [r2, 0x22] adds r0, 0x1 strh r0, [r2, 0x22] _08123F30: movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0xA0 ble _08123F3E adds r0, r2, 0 bl DestroySprite _08123F3E: pop {r0} bx r0 thumb_func_end sub_8123EB8 thumb_func_start sub_8123F44 sub_8123F44: @ 8123F44 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _08123F62 ldrh r1, [r2, 0x22] adds r1, 0x10 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 strh r0, [r2, 0x22] _08123F62: ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 movs r3, 0x32 ldrsh r1, [r2, r3] cmp r0, r1 blt _08123FB8 movs r0, 0x30 ldrsh r1, [r2, r0] cmp r1, 0 beq _08123F82 cmp r1, 0x1 beq _08123F8C b _08123FAA _08123F82: ldrh r0, [r2, 0x20] subs r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x2E] b _08123F9C _08123F8C: ldrh r0, [r2, 0x2E] ands r0, r1 cmp r0, 0 beq _08123FAA ldrh r0, [r2, 0x20] subs r0, 0x1 strh r0, [r2, 0x20] ldrh r0, [r2, 0x20] _08123F9C: movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08123FAA ldrh r0, [r2, 0x22] subs r0, 0x1 strh r0, [r2, 0x22] _08123FAA: movs r1, 0x22 ldrsh r0, [r2, r1] cmp r0, 0x4F bgt _08123FB8 adds r0, r2, 0 bl DestroySprite _08123FB8: pop {r0} bx r0 thumb_func_end sub_8123F44 thumb_func_start sub_8123FBC sub_8123FBC: @ 8123FBC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08123FCA cmp r0, 0x1 beq _08124024 _08123FCA: ldr r1, _08124020 @ =REG_WININ movs r0, 0 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0xA strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x46 strh r0, [r1] adds r1, 0xE strh r0, [r1] subs r1, 0x2 strh r0, [r1] subs r1, 0x2 strh r0, [r1] subs r1, 0x2 strh r0, [r1] adds r1, 0x14 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] subs r1, 0x6 strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r1, 0x3E strh r0, [r1] b _081240EE .align 2, 0 _08124020: .4byte REG_WININ _08124024: ldr r0, _08124060 @ =REG_WININ movs r3, 0 strh r3, [r0] adds r0, 0x2 strh r3, [r0] subs r0, 0xA strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] ldr r0, _08124064 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _0812406C ldr r1, _08124068 @ =gUnknown_02039274 ldr r2, [r1] movs r0, 0xB0 strb r0, [r2, 0x14] ldr r2, [r1] movs r0, 0x10 strb r0, [r2, 0x15] ldr r0, [r1] strb r3, [r0, 0xC] ldr r2, [r1] movs r0, 0x50 b _08124082 .align 2, 0 _08124060: .4byte REG_WININ _08124064: .4byte gSpecialVar_0x8004 _08124068: .4byte gUnknown_02039274 _0812406C: ldr r1, _081240F4 @ =gUnknown_02039274 ldr r2, [r1] movs r0, 0x60 strb r0, [r2, 0x14] ldr r2, [r1] movs r0, 0xE8 strb r0, [r2, 0x15] ldr r0, [r1] strb r3, [r0, 0xC] ldr r2, [r1] movs r0, 0x4 _08124082: strb r0, [r2, 0xD] ldr r0, [r1] strb r3, [r0, 0x9] ldr r0, [r1] strb r3, [r0, 0x9] adds r2, r1, 0 ldr r1, _081240F8 @ =REG_BG3HOFS ldr r2, [r2] ldrb r0, [r2, 0x14] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x15] strh r0, [r1] ldr r0, _081240FC @ =REG_BG2HOFS movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r1, _08124100 @ =REG_BG1HOFS ldrb r0, [r2, 0xC] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0xD] strh r0, [r1] subs r1, 0x6 ldrb r0, [r2, 0x8] strh r0, [r1] adds r1, 0x2 ldrb r0, [r2, 0x9] strh r0, [r1] subs r1, 0xA ldr r2, _08124104 @ =0x00003c01 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r3, _08124108 @ =0x00003d02 adds r0, r3, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0812410C @ =0x00003e03 adds r0, r2, 0 strh r0, [r1] ldr r0, _08124110 @ =REG_BG3CNT movs r3, 0xFC lsls r3, 6 adds r2, r3, 0 strh r2, [r0] subs r1, 0xC movs r3, 0xFA lsls r3, 5 adds r0, r3, 0 strh r0, [r1] ldr r0, _08124114 @ =REG_BLDCNT strh r2, [r0] _081240EE: pop {r0} bx r0 .align 2, 0 _081240F4: .4byte gUnknown_02039274 _081240F8: .4byte REG_BG3HOFS _081240FC: .4byte REG_BG2HOFS _08124100: .4byte REG_BG1HOFS _08124104: .4byte 0x00003c01 _08124108: .4byte 0x00003d02 _0812410C: .4byte 0x00003e03 _08124110: .4byte REG_BG3CNT _08124114: .4byte REG_BLDCNT thumb_func_end sub_8123FBC thumb_func_start sub_8124118 sub_8124118: @ 8124118 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r1, _0812422C @ =gCableCarPlayerGraphicsIDs add r0, sp, 0x8 movs r2, 0x2 bl memcpy bl Random lsls r0, 16 lsrs r0, 16 mov r9, r0 add r6, sp, 0xC ldr r1, _08124230 @ =gMtChimneyHikerGraphicsIDs adds r0, r6, 0 movs r2, 0x4 bl memcpy add r5, sp, 0x10 ldr r1, _08124234 @ =gMtChimneyHikerCoords adds r0, r5, 0 movs r2, 0x8 bl memcpy add r4, sp, 0x18 ldr r1, _08124238 @ =gMtChimneyHikerMovementDelayTable adds r0, r4, 0 movs r2, 0x4 bl memcpy ldr r0, _0812423C @ =gUnknown_08401D9C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x1C] str r1, [sp, 0x20] ldr r0, _08124240 @ =gSpecialVar_0x8004 ldrh r0, [r0] mov r8, r6 mov r10, r5 cmp r0, 0 beq _08124176 cmp r0, 0x1 beq _08124258 _08124176: ldr r0, _08124244 @ =gSaveBlock2 ldrb r0, [r0, 0x8] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r1, _08124248 @ =sub_8123D98 movs r2, 0x66 str r2, [sp] movs r2, 0xC8 movs r3, 0x49 bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _081241BE ldr r0, _0812424C @ =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x8 strh r0, [r1, 0x24] movs r0, 0x10 strh r0, [r1, 0x26] movs r0, 0xC8 strh r0, [r1, 0x2E] movs r0, 0x49 strh r0, [r1, 0x30] _081241BE: ldr r4, _08124250 @ =gSpriteTemplate_8401D40 adds r0, r4, 0 movs r1, 0xB0 movs r2, 0x2B movs r3, 0x67 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 ldr r5, _0812424C @ =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x20 strh r1, [r0, 0x26] strh r1, [r0, 0x24] movs r1, 0xB0 strh r1, [r0, 0x2E] movs r1, 0x2B strh r1, [r0, 0x30] adds r4, 0x18 adds r0, r4, 0 movs r1, 0xC8 movs r2, 0x63 movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] movs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0xC8 strh r1, [r0, 0x2E] movs r1, 0x63 strh r1, [r0, 0x30] ldr r2, _08124254 @ =gUnknown_02039274 ldr r1, [r2] movs r0, 0x7 strb r0, [r1, 0x2] ldr r1, [r2] movs r0, 0xAF lsls r0, 1 strh r0, [r1, 0x4] movs r0, 0x2 bl sub_807C9B4 b _0812431E .align 2, 0 _0812422C: .4byte gCableCarPlayerGraphicsIDs _08124230: .4byte gMtChimneyHikerGraphicsIDs _08124234: .4byte gMtChimneyHikerCoords _08124238: .4byte gMtChimneyHikerMovementDelayTable _0812423C: .4byte gUnknown_08401D9C _08124240: .4byte gSpecialVar_0x8004 _08124244: .4byte gSaveBlock2 _08124248: .4byte sub_8123D98 _0812424C: .4byte gSprites _08124250: .4byte gSpriteTemplate_8401D40 _08124254: .4byte gUnknown_02039274 _08124258: ldr r7, _081243EC @ =gUnknown_02039274 ldr r0, [r7] adds r0, 0xFC ldr r1, _081243F0 @ =gSharedMem + 0x19048 movs r2, 0xC str r2, [sp] movs r2, 0x3 str r2, [sp, 0x4] movs r2, 0x18 movs r3, 0x1A bl sub_8124F08 ldr r0, _081243F4 @ =gSaveBlock2 ldrb r0, [r0, 0x8] add r0, sp adds r0, 0x8 ldrb r0, [r0] ldr r1, _081243F8 @ =sub_8123D98 movs r2, 0x66 str r2, [sp] movs r2, 0x80 movs r3, 0x27 bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _081242B8 ldr r0, _081243FC @ =gSprites lsls r1, r6, 4 adds r1, r6 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 movs r2, 0x8 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0x8 strh r0, [r1, 0x24] movs r0, 0x10 strh r0, [r1, 0x26] movs r0, 0x80 strh r0, [r1, 0x2E] movs r0, 0x27 strh r0, [r1, 0x30] _081242B8: ldr r4, _08124400 @ =gSpriteTemplate_8401D40 adds r0, r4, 0 movs r1, 0x68 movs r2, 0x9 movs r3, 0x67 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 ldr r5, _081243FC @ =gSprites lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x20 strh r1, [r0, 0x26] strh r1, [r0, 0x24] movs r1, 0x68 strh r1, [r0, 0x2E] movs r1, 0x9 strh r1, [r0, 0x30] adds r4, 0x18 adds r0, r4, 0 movs r1, 0x80 movs r2, 0x41 movs r3, 0x65 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] movs r1, 0x4 strh r1, [r0, 0x26] movs r1, 0x80 strh r1, [r0, 0x2E] movs r1, 0x41 strh r1, [r0, 0x30] ldr r1, [r7] movs r0, 0x2 strb r0, [r1, 0x2] ldr r1, [r7] ldr r0, _08124404 @ =0x00000109 strh r0, [r1, 0x4] movs r0, 0x7 bl sub_807C9B4 _0812431E: movs r4, 0 ldr r5, _081243FC @ =gSprites _08124322: lsls r1, r4, 20 movs r0, 0xC0 lsls r0, 15 adds r1, r0 asrs r1, 16 lsls r2, r4, 19 ldr r3, _08124408 @ =0xfff80000 adds r2, r3 asrs r2, 16 ldr r0, _0812440C @ =gSpriteTemplate_8401D70 movs r3, 0x68 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r5 movs r1, 0x8 strh r1, [r0, 0x24] strh r1, [r0, 0x26] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x8 bls _08124322 movs r0, 0x3F mov r4, r9 ands r0, r4 cmp r0, 0 bne _08124458 mov r0, r9 movs r1, 0x3 bl __umodsi3 lsls r0, 16 lsrs r0, 16 add r0, r8 ldrb r0, [r0] ldr r5, _08124410 @ =gSpecialVar_0x8004 ldrh r4, [r5] lsls r4, 2 add r1, sp, 0x1C adds r1, r4, r1 ldr r1, [r1] mov r3, r10 adds r2, r3, r4 movs r3, 0 ldrsh r2, [r2, r3] mov r3, sp adds r3, 0x12 adds r3, r4 movs r4, 0 ldrsh r3, [r3, r4] movs r4, 0x6A str r4, [sp] bl AddPseudoFieldObject lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _08124458 ldr r1, _081243FC @ =gSprites lsls r2, r6, 4 adds r0, r2, r6 lsls r0, 2 adds r4, r0, r1 ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x5] adds r0, r4, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x24] adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r5] mov r8, r2 cmp r0, 0 bne _0812441A movs r7, 0x1 mov r5, r9 ands r5, r7 cmp r5, 0 beq _08124414 adds r0, r4, 0 movs r1, 0x6 b _08124428 .align 2, 0 _081243EC: .4byte gUnknown_02039274 _081243F0: .4byte gSharedMem + 0x19048 _081243F4: .4byte gSaveBlock2 _081243F8: .4byte sub_8123D98 _081243FC: .4byte gSprites _08124400: .4byte gSpriteTemplate_8401D40 _08124404: .4byte 0x00000109 _08124408: .4byte 0xfff80000 _0812440C: .4byte gSpriteTemplate_8401D70 _08124410: .4byte gSpecialVar_0x8004 _08124414: adds r0, r4, 0 movs r1, 0x7 b _0812443A _0812441A: movs r7, 0x1 mov r5, r9 ands r5, r7 cmp r5, 0 beq _08124436 adds r0, r4, 0 movs r1, 0x7 _08124428: bl StartSpriteAnim strh r7, [r4, 0x30] ldrh r0, [r4, 0x22] adds r0, 0x2 strh r0, [r4, 0x22] b _08124440 _08124436: adds r0, r4, 0 movs r1, 0x6 _0812443A: bl StartSpriteAnim strh r5, [r4, 0x30] _08124440: ldr r0, _08124468 @ =gSprites mov r2, r8 adds r1, r2, r6 lsls r1, 2 adds r1, r0 movs r0, 0x3 mov r3, r9 ands r0, r3 add r0, sp adds r0, 0x18 ldrb r0, [r0] strh r0, [r1, 0x32] _08124458: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08124468: .4byte gSprites thumb_func_end sub_8124118 thumb_func_start sub_812446C sub_812446C: @ 812446C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r3, 0 mov r9, r3 ldr r2, _08124530 @ =gUnknown_02039274 ldr r0, [r2] ldrb r1, [r0, 0x1B] adds r1, 0x2 lsls r0, r1, 3 adds r0, r1 lsls r0, 26 lsrs r0, 24 mov r12, r0 _0812448E: movs r6, 0 lsls r0, r3, 1 adds r1, r3, 0x3 adds r2, r3, 0x6 adds r4, r3, 0x1 str r4, [sp] adds r0, r3 lsls r0, 3 mov r10, r0 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 mov r8, r0 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 str r0, [sp, 0x4] _081244B0: ldr r7, _08124530 @ =gUnknown_02039274 ldr r5, [r7] lsls r3, r6, 1 mov r0, r10 adds r2, r3, r0 adds r4, r5, 0 adds r4, 0x22 adds r2, r4, r2 mov r1, r12 adds r0, r1, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 1 ldr r7, _08124534 @ =gSharedMem + 0x19000 adds r1, r7 ldrh r0, [r1] strh r0, [r2] mov r0, r8 adds r1, r3, r0 adds r1, r4, r1 mov r7, r9 lsls r2, r7, 1 ldr r7, _08124534 @ =gSharedMem + 0x19000 adds r0, r2, r7 ldrh r0, [r0] strh r0, [r1] ldr r0, [sp, 0x4] adds r3, r0 adds r4, r3 ldr r1, _08124538 @ =gSharedMem + 0x19048 adds r2, r1 ldrh r0, [r2] strh r0, [r4] mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xB bls _081244B0 ldr r4, [sp] lsls r0, r4, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _0812448E ldrb r0, [r5, 0x1B] adds r0, 0x1 movs r1, 0x3 bl __modsi3 strb r0, [r5, 0x1B] 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 _08124530: .4byte gUnknown_02039274 _08124534: .4byte gSharedMem + 0x19000 _08124538: .4byte gSharedMem + 0x19048 thumb_func_end sub_812446C thumb_func_start sub_812453C sub_812453C: @ 812453C push {r4,r5,lr} ldr r5, _08124594 @ =gUnknown_02039274 ldr r4, [r5] ldrb r0, [r4, 0x1C] adds r0, 0x1 movs r1, 0x60 bl __modsi3 strb r0, [r4, 0x1C] ldr r1, [r5] ldrb r0, [r1, 0x1F] ldrb r2, [r1, 0x1D] subs r0, r2 strb r0, [r1, 0x8] ldr r2, [r5] adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] ldrb r1, [r2, 0x1E] subs r0, r1 strb r0, [r2, 0x9] ldr r1, [r5] ldrb r0, [r1, 0x1D] adds r0, 0x1 strb r0, [r1, 0x1D] ldr r2, [r5] ldrb r0, [r2, 0x1D] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _08124580 ldrb r0, [r2, 0x1E] adds r0, 0x1 strb r0, [r2, 0x1E] _08124580: ldr r0, [r5] ldrb r0, [r0, 0x1D] cmp r0, 0x10 bls _0812458C bl sub_81245F4 _0812458C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08124594: .4byte gUnknown_02039274 thumb_func_end sub_812453C thumb_func_start sub_8124598 sub_8124598: @ 8124598 push {r4,r5,lr} ldr r5, _081245F0 @ =gUnknown_02039274 ldr r4, [r5] ldrb r0, [r4, 0x1C] adds r0, 0x1 movs r1, 0x60 bl __modsi3 strb r0, [r4, 0x1C] ldr r1, [r5] ldrb r0, [r1, 0x1D] ldrb r2, [r1, 0x1F] adds r0, r2 strb r0, [r1, 0x8] ldr r1, [r5] adds r2, r1, 0 adds r2, 0x20 ldrb r0, [r1, 0x1E] ldrb r2, [r2] adds r0, r2 strb r0, [r1, 0x9] ldr r1, [r5] ldrb r0, [r1, 0x1D] adds r0, 0x1 strb r0, [r1, 0x1D] ldr r2, [r5] ldrb r0, [r2, 0x1D] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _081245DC ldrb r0, [r2, 0x1E] adds r0, 0x1 strb r0, [r2, 0x1E] _081245DC: ldr r0, [r5] ldrb r0, [r0, 0x1D] cmp r0, 0x10 bls _081245E8 bl sub_812476C _081245E8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081245F0: .4byte gUnknown_02039274 thumb_func_end sub_8124598 thumb_func_start sub_81245F4 sub_81245F4: @ 81245F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r12, r0 ldr r2, _0812475C @ =gUnknown_02039274 ldr r0, [r2] mov r1, r12 strb r1, [r0, 0x1E] strb r1, [r0, 0x1D] ldr r1, [r2] ldrb r0, [r1, 0x8] strb r0, [r1, 0x1F] ldr r0, [r2] ldrb r1, [r0, 0x9] adds r0, 0x20 strb r1, [r0] ldr r4, [r2] ldrb r1, [r4, 0x19] adds r3, r1, 0 adds r3, 0x1E adds r0, r3, 0 mov r9, r2 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r4, 0x19] mov r2, r9 ldr r1, [r2] ldrb r0, [r1, 0x18] subs r0, 0x2 strb r0, [r1, 0x18] ldr r0, [r2] ldrb r1, [r0, 0x1A] adds r2, r1, 0 adds r2, 0x17 adds r0, r2, 0 ldr r3, _08124760 @ =gUnknown_0203927A mov r10, r3 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 mov r4, r10 strb r0, [r4] ldr r7, _08124764 @ =gUnknown_02039278 ldr r0, _08124768 @ =gUnknown_02039279 mov r8, r0 _08124658: mov r1, r9 ldr r3, [r1] ldrb r0, [r3, 0x19] strb r0, [r7] mov r2, r10 ldrb r0, [r2] mov r4, r12 adds r1, r0, r4 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 mov r1, r8 strb r0, [r1] ldrb r2, [r7] lsls r2, 1 ldrb r0, [r1] lsls r0, 6 adds r2, r0 adds r6, r3, 0 adds r6, 0xFC adds r2, r6, r2 ldrb r1, [r3, 0x18] lsls r1, 1 mov r4, r12 lsls r0, r4, 1 add r0, r12 lsls r5, r0, 3 adds r1, r5 adds r4, r3, 0 adds r4, 0x22 adds r1, r4, r1 ldrh r0, [r1] strh r0, [r2] ldrb r1, [r7] adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r7] ldrb r1, [r7] lsls r1, 1 mov r2, r8 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r1, r6, r1 ldrb r0, [r3, 0x18] adds r0, 0x1 lsls r0, 1 adds r0, r5 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1] mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x8 bls _08124658 ldr r4, _08124764 @ =gUnknown_02039278 mov r5, r9 ldr r3, [r5] ldrb r1, [r3, 0x19] adds r2, r1, 0 adds r2, 0x1E adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r4] adds r0, r3, 0 adds r0, 0xFC ldrb r2, [r4] movs r1, 0x2 str r1, [sp] movs r6, 0x20 str r6, [sp, 0x4] movs r1, 0 movs r3, 0 bl sub_8124E7C ldr r1, [r5] ldrb r0, [r1, 0x18] cmp r0, 0 bne _0812474C ldrb r2, [r1, 0x1A] adds r3, r2, 0 adds r3, 0x1D adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r1, 0x1A] mov r3, r9 ldr r1, [r3] movs r0, 0xC strb r0, [r1, 0x18] bl sub_812446C mov r4, r9 ldr r1, [r4] ldrb r3, [r1, 0x1A] adds r4, r3, 0x1 adds r0, r4, 0 asrs r0, 5 lsls r0, 5 subs r0, r4, r0 ldr r2, _08124764 @ =gUnknown_02039278 strb r0, [r2] adds r0, r1, 0 adds r0, 0xFC ldrb r3, [r2] str r6, [sp] movs r1, 0x9 str r1, [sp, 0x4] movs r1, 0 movs r2, 0 bl sub_8124E7C _0812474C: 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 _0812475C: .4byte gUnknown_02039274 _08124760: .4byte gUnknown_0203927A _08124764: .4byte gUnknown_02039278 _08124768: .4byte gUnknown_02039279 thumb_func_end sub_81245F4 thumb_func_start sub_812476C sub_812476C: @ 812476C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r12, r0 ldr r2, _0812489C @ =gUnknown_02039274 ldr r0, [r2] mov r1, r12 strb r1, [r0, 0x1E] strb r1, [r0, 0x1D] ldr r1, [r2] ldrb r0, [r1, 0x8] strb r0, [r1, 0x1F] ldr r0, [r2] ldrb r1, [r0, 0x9] adds r0, 0x20 strb r1, [r0] ldr r4, [r2] ldrb r1, [r4, 0x19] adds r3, r1, 0x2 adds r0, r3, 0 mov r9, r2 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r4, 0x19] mov r2, r9 ldr r1, [r2] ldrb r0, [r1, 0x18] adds r0, 0x2 strb r0, [r1, 0x18] ldr r1, _081248A0 @ =gUnknown_0203927D ldr r0, [r2] ldrb r0, [r0, 0x1A] strb r0, [r1] ldr r4, _081248A4 @ =gUnknown_0203927C mov r10, r4 ldr r7, _081248A8 @ =gUnknown_0203927B mov r8, r10 _081247C0: mov r0, r9 ldr r3, [r0] ldrb r0, [r3, 0x19] strb r0, [r7] ldr r1, _081248A0 @ =gUnknown_0203927D ldrb r0, [r1] mov r2, r12 adds r1, r0, r2 adds r0, r1, 0 asrs r0, 5 lsls r0, 5 subs r0, r1, r0 mov r4, r8 strb r0, [r4] ldrb r2, [r7] lsls r2, 1 ldrb r0, [r4] lsls r0, 6 adds r2, r0 adds r6, r3, 0 adds r6, 0xFC adds r2, r6, r2 ldrb r1, [r3, 0x18] lsls r1, 1 mov r4, r12 lsls r0, r4, 1 add r0, r12 lsls r5, r0, 3 adds r1, r5 adds r4, r3, 0 adds r4, 0x22 adds r1, r4, r1 ldrh r0, [r1] strh r0, [r2] ldrb r1, [r7] adds r2, r1, 0x1 adds r0, r2, 0 asrs r0, 5 lsls r0, 5 subs r0, r2, r0 strb r0, [r7] ldrb r1, [r7] lsls r1, 1 mov r2, r8 ldrb r0, [r2] lsls r0, 6 adds r1, r0 adds r1, r6, r1 ldrb r0, [r3, 0x18] adds r0, 0x1 lsls r0, 1 adds r0, r5 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1] mov r0, r12 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x8 bls _081247C0 mov r4, r9 ldr r1, [r4] ldrb r2, [r1, 0x1A] adds r3, r2, 0 adds r3, 0x17 adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 mov r2, r10 strb r0, [r2] adds r0, r1, 0 adds r0, 0xFC ldrb r2, [r1, 0x19] mov r1, r10 ldrb r3, [r1] movs r1, 0x2 str r1, [sp] movs r1, 0x9 str r1, [sp, 0x4] movs r1, 0 bl sub_8124E7C ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0xA bne _0812488C ldrb r2, [r1, 0x1A] adds r3, r2, 0x3 adds r0, r3, 0 asrs r0, 5 lsls r0, 5 subs r0, r3, r0 strb r0, [r1, 0x1A] mov r2, r9 ldr r1, [r2] movs r0, 0xFE strb r0, [r1, 0x18] bl sub_812446C _0812488C: 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 _0812489C: .4byte gUnknown_02039274 _081248A0: .4byte gUnknown_0203927D _081248A4: .4byte gUnknown_0203927C _081248A8: .4byte gUnknown_0203927B thumb_func_end sub_812476C thumb_func_start sub_81248AC sub_81248AC: @ 81248AC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081248BA cmp r0, 0x1 beq _081248E4 _081248BA: ldr r1, _081248E0 @ =gUnknown_02039274 ldr r2, [r1] movs r3, 0 movs r0, 0x2 strb r0, [r2, 0x1B] ldr r0, [r1] strb r3, [r0, 0x19] ldr r2, [r1] movs r0, 0x14 strb r0, [r2, 0x1A] ldr r1, [r1] movs r0, 0xC strb r0, [r1, 0x18] bl sub_812446C bl sub_81245F4 b _08124906 .align 2, 0 _081248E0: .4byte gUnknown_02039274 _081248E4: ldr r1, _08124914 @ =gUnknown_02039274 ldr r2, [r1] movs r0, 0x2 strb r0, [r2, 0x1B] ldr r2, [r1] movs r0, 0x1C strb r0, [r2, 0x19] ldr r2, [r1] movs r0, 0x14 strb r0, [r2, 0x1A] ldr r1, [r1] movs r0, 0x4 strb r0, [r1, 0x18] bl sub_812446C bl sub_812476C _08124906: ldr r0, _08124914 @ =gUnknown_02039274 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x1C] pop {r0} bx r0 .align 2, 0 _08124914: .4byte gUnknown_02039274 thumb_func_end sub_81248AC .align 2, 0 @ Don't pad with nop.