.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_809AAB0 sub_809AAB0: @ 809AAB0 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 bl sub_809AB7C ldr r4, _0809AAE8 @ =gUnknown_2039934 movs r1, 0xF ands r1, r0 ldrb r2, [r4, 0x16] movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x16] movs r0, 0 strh r0, [r4, 0xC] bl ContextNpcGetTextColor lsls r0, 24 cmp r0, 0 bne _0809AAF0 ldrh r0, [r4, 0x16] ldr r1, _0809AAEC @ =0xfffffe0f ands r1, r0 movs r0, 0x40 b _0809AAF8 .align 2, 0 _0809AAE8: .4byte gUnknown_2039934 _0809AAEC: .4byte 0xfffffe0f _0809AAF0: ldrh r0, [r4, 0x16] ldr r1, _0809AB68 @ =0xfffffe0f ands r1, r0 movs r0, 0x50 _0809AAF8: orrs r1, r0 strh r1, [r4, 0x16] ldr r4, _0809AB6C @ =gUnknown_2039950 ldr r0, _0809AB70 @ =gUnknown_83DF0BC bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl SetStdWindowBorderStyle movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldrb r0, [r4] movs r6, 0x10 str r6, [sp] movs r5, 0x3 str r5, [sp, 0x4] ldr r1, _0809AB74 @ =gUnknown_83DF09C str r1, [sp, 0x8] movs r1, 0x2 movs r3, 0x2 bl PrintTextArray ldrb r0, [r4] str r6, [sp] str r5, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl Menu_InitCursor ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0x1 bl CopyWindowToVram ldr r0, _0809AB78 @ =sub_809AC10 movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809AB68: .4byte 0xfffffe0f _0809AB6C: .4byte gUnknown_2039950 _0809AB70: .4byte gUnknown_83DF0BC _0809AB74: .4byte gUnknown_83DF09C _0809AB78: .4byte sub_809AC10 thumb_func_end sub_809AAB0 thumb_func_start sub_809AB7C sub_809AB7C: @ 809AB7C push {r4,r5,lr} cmp r0, 0 beq _0809AB8C lsls r0, 24 lsrs r0, 24 b _0809ABCE _0809AB88: movs r0, 0x1 b _0809ABCE _0809AB8C: movs r4, 0 ldr r1, _0809ABD4 @ =gUnknown_2039934 ldrh r0, [r1, 0x10] cmp r4, r0 bcs _0809ABCC ldr r0, [r1, 0x4] ldrh r0, [r0] cmp r0, 0 beq _0809ABCC adds r5, r1, 0 _0809ABA0: ldr r1, [r5, 0x4] lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _0809AB88 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldrh r0, [r5, 0x10] cmp r4, r0 bcs _0809ABCC ldr r0, [r5, 0x4] lsls r1, r4, 1 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _0809ABA0 _0809ABCC: movs r0, 0 _0809ABCE: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809ABD4: .4byte gUnknown_2039934 thumb_func_end sub_809AB7C thumb_func_start sub_809ABD8 sub_809ABD8: @ 809ABD8 push {lr} adds r1, r0, 0 ldr r2, _0809AC00 @ =gUnknown_2039934 str r1, [r2, 0x4] movs r0, 0 strh r0, [r2, 0x10] ldrh r0, [r1] cmp r0, 0 beq _0809ABFC _0809ABEA: ldrh r0, [r2, 0x10] adds r0, 0x1 strh r0, [r2, 0x10] ldrh r0, [r2, 0x10] lsls r0, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _0809ABEA _0809ABFC: pop {r0} bx r0 .align 2, 0 _0809AC00: .4byte gUnknown_2039934 thumb_func_end sub_809ABD8 thumb_func_start sub_809AC04 sub_809AC04: @ 809AC04 ldr r1, _0809AC0C @ =gUnknown_2039934 str r0, [r1] bx lr .align 2, 0 _0809AC0C: .4byte gUnknown_2039934 thumb_func_end sub_809AC04 thumb_func_start sub_809AC10 sub_809AC10: @ 809AC10 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl Menu_ProcessInputNoWrapAround lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _0809AC52 adds r0, 0x1 cmp r1, r0 bne _0809AC3C movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_809ACF8 b _0809AC52 _0809AC3C: ldr r4, _0809AC58 @ =gUnknown_83DF09C bl Menu_GetCursorPos lsls r0, 24 lsrs r0, 21 adds r4, 0x4 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 _0809AC52: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809AC58: .4byte gUnknown_83DF09C thumb_func_end sub_809AC10 thumb_func_start sub_809AC5C sub_809AC5C: @ 809AC5C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _0809AC8C @ =sub_809AE14 adds r0, r4, 0 movs r1, 0xE bl SetWordTaskArg movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _0809AC90 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809AC94 @ =sub_809AD40 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0809AC8C: .4byte sub_809AE14 _0809AC90: .4byte gTasks _0809AC94: .4byte sub_809AD40 thumb_func_end sub_809AC5C thumb_func_start sub_809AC98 sub_809AC98: @ 809AC98 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r2, _0809ACC8 @ =sub_809ACD4 adds r0, r4, 0 movs r1, 0xE bl SetWordTaskArg movs r0, 0x1 movs r1, 0 bl fade_screen ldr r1, _0809ACCC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809ACD0 @ =sub_809AD40 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0809ACC8: .4byte sub_809ACD4 _0809ACCC: .4byte gTasks _0809ACD0: .4byte sub_809AD40 thumb_func_end sub_809AC98 thumb_func_start sub_809ACD4 sub_809ACD4: @ 809ACD4 push {lr} ldr r2, _0809ACEC @ =CB2_ReturnToField movs r0, 0x2 movs r1, 0x3 bl sub_8107DB4 ldr r1, _0809ACF0 @ =gFieldCallback ldr r0, _0809ACF4 @ =sub_809AD74 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0809ACEC: .4byte CB2_ReturnToField _0809ACF0: .4byte gFieldCallback _0809ACF4: .4byte sub_809AD74 thumb_func_end sub_809ACD4 thumb_func_start sub_809ACF8 sub_809ACF8: @ 809ACF8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_809AD24 bl sub_809C138 adds r0, r4, 0 bl DestroyTask ldr r0, _0809AD20 @ =gUnknown_2039934 ldr r0, [r0] cmp r0, 0 beq _0809AD1A bl _call_via_r0 _0809AD1A: pop {r4} pop {r0} bx r0 .align 2, 0 _0809AD20: .4byte gUnknown_2039934 thumb_func_end sub_809ACF8 thumb_func_start sub_809AD24 sub_809AD24: @ 809AD24 push {r4,lr} ldr r4, _0809AD3C @ =gUnknown_2039950 ldrb r0, [r4] movs r1, 0x2 bl ClearStdWindowAndFrameToTransparent ldrb r0, [r4] bl RemoveWindow pop {r4} pop {r0} bx r0 .align 2, 0 _0809AD3C: .4byte gUnknown_2039950 thumb_func_end sub_809AD24 thumb_func_start sub_809AD40 sub_809AD40: @ 809AD40 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809AD70 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0809AD68 adds r0, r4, 0 movs r1, 0xE bl GetWordTaskArg bl SetMainCallback2 bl FreeAllWindowBuffers adds r0, r4, 0 bl DestroyTask _0809AD68: pop {r4} pop {r0} bx r0 .align 2, 0 _0809AD70: .4byte gPaletteFade thumb_func_end sub_809AD40 thumb_func_start sub_809AD74 sub_809AD74: @ 809AD74 push {lr} bl sub_807DC00 ldr r0, _0809AD88 @ =sub_809AD8C movs r1, 0x8 bl CreateTask pop {r0} bx r0 .align 2, 0 _0809AD88: .4byte sub_809AD8C thumb_func_end sub_809AD74 thumb_func_start sub_809AD8C sub_809AD8C: @ 809AD8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl field_weather_is_fade_finished lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809ADB2 bl sub_809B56C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0809ADB8 @ =gUnknown_841689E ldr r3, _0809ADBC @ =sub_809ADC0 adds r0, r4, 0 bl DisplayItemMessageOnField _0809ADB2: pop {r4} pop {r0} bx r0 .align 2, 0 _0809ADB8: .4byte gUnknown_841689E _0809ADBC: .4byte sub_809ADC0 thumb_func_end sub_809AD8C thumb_func_start sub_809ADC0 sub_809ADC0: @ 809ADC0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0809ADE0 @ =gUnknown_2039934 ldrb r0, [r0, 0x16] lsls r0, 28 lsrs r0, 28 bl sub_809AAB0 adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _0809ADE0: .4byte gUnknown_2039934 thumb_func_end sub_809ADC0 thumb_func_start sub_809ADE4 sub_809ADE4: @ 809ADE4 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl DoScheduledBgTilemapCopiesToVram pop {r0} bx r0 thumb_func_end sub_809ADE4 thumb_func_start sub_809AE00 sub_809AE00: @ 809AE00 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_809AE00 thumb_func_start sub_809AE14 sub_809AE14: @ 809AE14 push {r4,r5,lr} sub sp, 0xC ldr r0, _0809AE90 @ =gMain movs r1, 0x87 lsls r1, 3 adds r5, r0, r1 ldrb r4, [r5] cmp r4, 0 beq _0809AEAC cmp r4, 0x1 bne _0809AE2C b _0809AF54 _0809AE2C: ldr r0, _0809AE94 @ =gUnknown_2039934 movs r5, 0 strh r5, [r0, 0xC] strh r5, [r0, 0xE] bl sub_809B15C bl sub_809B690 ldr r0, _0809AE98 @ =sub_809BBC0 movs r1, 0x8 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0809AE9C @ =gMultiuseListMenuTemplate movs r1, 0 movs r2, 0 bl ListMenuInit ldr r2, _0809AEA0 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x16] movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes str r5, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, _0809AEA4 @ =sub_809AE00 bl SetVBlankCallback ldr r0, _0809AEA8 @ =sub_809ADE4 bl SetMainCallback2 b _0809AF64 .align 2, 0 _0809AE90: .4byte gMain _0809AE94: .4byte gUnknown_2039934 _0809AE98: .4byte sub_809BBC0 _0809AE9C: .4byte gMultiuseListMenuTemplate _0809AEA0: .4byte gTasks _0809AEA4: .4byte sub_809AE00 _0809AEA8: .4byte sub_809ADE4 _0809AEAC: bl SetVBlankHBlankCallbacksToNull str r4, [sp, 0x8] movs r1, 0xE0 lsls r1, 19 ldr r2, _0809AF4C @ =0x01000100 add r0, sp, 0x8 bl CpuFastSet bl ScanlineEffect_Stop bl ResetTempTileDataBuffers bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl ClearScheduledBgCopiesToVram bl ResetItemMenuIconState bl sub_809AF6C lsls r0, 24 cmp r0, 0 beq _0809AF64 bl sub_809B188 lsls r0, 24 cmp r0, 0 beq _0809AF64 bl sub_809AFD0 movs r4, 0x20 str r4, [sp] str r4, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 ldr r0, _0809AF50 @ =gUnknown_2039934 ldrb r0, [r0, 0x16] lsls r0, 28 lsrs r0, 28 bl BuyMenuInitWindows bl sub_809B080 b _0809AF5E .align 2, 0 _0809AF4C: .4byte 0x01000100 _0809AF50: .4byte gUnknown_2039934 _0809AF54: bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _0809AF64 _0809AF5E: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _0809AF64: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809AE14 thumb_func_start sub_809AF6C sub_809AF6C: @ 809AF6C push {r4,r5,lr} ldr r4, _0809AFB0 @ =gUnknown_2039954 movs r5, 0x80 lsls r5, 4 adds r0, r5, 0 bl Alloc str r0, [r4] cmp r0, 0 beq _0809AFC0 ldr r4, _0809AFB4 @ =gUnknown_2039958 adds r0, r5, 0 bl Alloc str r0, [r4] cmp r0, 0 beq _0809AFC0 ldr r4, _0809AFB8 @ =gUnknown_203995C adds r0, r5, 0 bl Alloc str r0, [r4] cmp r0, 0 beq _0809AFC0 ldr r4, _0809AFBC @ =gUnknown_2039960 adds r0, r5, 0 bl Alloc str r0, [r4] cmp r0, 0 beq _0809AFC0 movs r0, 0x1 b _0809AFCA .align 2, 0 _0809AFB0: .4byte gUnknown_2039954 _0809AFB4: .4byte gUnknown_2039958 _0809AFB8: .4byte gUnknown_203995C _0809AFBC: .4byte gUnknown_2039960 _0809AFC0: bl sub_809B604 bl sub_809B670 movs r0, 0 _0809AFCA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809AF6C thumb_func_start sub_809AFD0 sub_809AFD0: @ 809AFD0 push {lr} movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _0809B070 @ =gUnknown_83DF0C4 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, _0809B074 @ =gUnknown_2039958 ldr r1, [r0] movs r0, 0x1 bl SetBgTilemapBuffer ldr r0, _0809B078 @ =gUnknown_2039960 ldr r1, [r0] movs r0, 0x2 bl SetBgTilemapBuffer ldr r0, _0809B07C @ =gUnknown_203995C ldr r1, [r0] movs r0, 0x3 bl SetBgTilemapBuffer movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg movs r0, 0x18 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x1C movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg pop {r0} bx r0 .align 2, 0 _0809B070: .4byte gUnknown_83DF0C4 _0809B074: .4byte gUnknown_2039958 _0809B078: .4byte gUnknown_2039960 _0809B07C: .4byte gUnknown_203995C thumb_func_end sub_809AFD0 thumb_func_start sub_809B080 sub_809B080: @ 809B080 push {r4,lr} sub sp, 0x4 ldr r1, _0809B0B0 @ =gUnknown_8E85DC8 movs r2, 0x90 lsls r2, 3 movs r3, 0xF7 lsls r3, 2 movs r0, 0 str r0, [sp] movs r0, 0x1 bl DecompressAndCopyTileDataToVram ldr r0, _0809B0B4 @ =gUnknown_2039934 ldrb r1, [r0, 0x16] movs r0, 0xF ands r0, r1 cmp r0, 0x1 beq _0809B0C0 ldr r0, _0809B0B8 @ =gUnknown_8E85EFC ldr r1, _0809B0BC @ =gUnknown_2039954 ldr r1, [r1] bl LZDecompressWram b _0809B0CA .align 2, 0 _0809B0B0: .4byte gUnknown_8E85DC8 _0809B0B4: .4byte gUnknown_2039934 _0809B0B8: .4byte gUnknown_8E85EFC _0809B0BC: .4byte gUnknown_2039954 _0809B0C0: ldr r0, _0809B100 @ =gUnknown_8E86038 ldr r1, _0809B104 @ =gUnknown_2039954 ldr r1, [r1] bl LZDecompressWram _0809B0CA: movs r0, 0x40 bl Alloc adds r4, r0, 0 ldr r0, _0809B108 @ =gUnknown_8E86170 adds r1, r4, 0 bl LZDecompressWram adds r0, r4, 0 movs r1, 0xB0 movs r2, 0x20 bl LoadPalette adds r0, r4, 0 adds r0, 0x20 movs r1, 0x60 movs r2, 0x20 bl LoadPalette adds r0, r4, 0 bl Free add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809B100: .4byte gUnknown_8E86038 _0809B104: .4byte gUnknown_2039954 _0809B108: .4byte gUnknown_8E86170 thumb_func_end sub_809B080 thumb_func_start sub_809B10C sub_809B10C: @ 809B10C push {lr} sub sp, 0x8 movs r2, 0x6 cmp r0, 0 bne _0809B118 movs r2, 0xB _0809B118: ldr r0, _0809B138 @ =gUnknown_2039934 ldrb r1, [r0, 0x16] movs r0, 0xF ands r0, r1 cmp r0, 0x1 beq _0809B13C movs r0, 0x6 str r0, [sp] str r2, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0xE movs r3, 0x1E bl SetBgRectPal b _0809B14E .align 2, 0 _0809B138: .4byte gUnknown_2039934 _0809B13C: movs r0, 0x8 str r0, [sp] str r2, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0xC movs r3, 0x1E bl SetBgRectPal _0809B14E: movs r0, 0x1 bl ScheduleBgCopyTilemapToVram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_809B10C thumb_func_start sub_809B15C sub_809B15C: @ 809B15C push {lr} bl sub_809B764 bl sub_809BAFC bl BuyMenuDrawMoneyBox movs r0, 0 bl ScheduleBgCopyTilemapToVram movs r0, 0x1 bl ScheduleBgCopyTilemapToVram movs r0, 0x2 bl ScheduleBgCopyTilemapToVram movs r0, 0x3 bl ScheduleBgCopyTilemapToVram pop {r0} bx r0 thumb_func_end sub_809B15C thumb_func_start sub_809B188 sub_809B188: @ 809B188 push {r4-r7,lr} ldr r7, _0809B1C0 @ =gUnknown_2039964 ldr r4, _0809B1C4 @ =gUnknown_2039934 ldrh r0, [r4, 0x10] adds r0, 0x1 lsls r0, 3 bl Alloc str r0, [r7] cmp r0, 0 beq _0809B1B2 ldr r5, _0809B1C8 @ =gUnknown_2039968 ldrh r0, [r4, 0x10] adds r0, 0x1 movs r1, 0xD muls r0, r1 bl Alloc str r0, [r5] cmp r0, 0 bne _0809B1CC _0809B1B2: bl sub_809B604 bl sub_809B670 movs r0, 0 b _0809B2F0 .align 2, 0 _0809B1C0: .4byte gUnknown_2039964 _0809B1C4: .4byte gUnknown_2039934 _0809B1C8: .4byte gUnknown_2039968 _0809B1CC: movs r6, 0 b _0809B1F2 _0809B1D0: lsls r1, r6, 3 ldr r0, [r7] adds r0, r1 ldr r2, [r4, 0x4] lsls r1, r6, 1 adds r1, r2 ldrh r1, [r1] movs r2, 0xD adds r3, r6, 0 muls r3, r2 ldr r2, [r5] adds r2, r3 bl sub_809B300 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _0809B1F2: ldrh r0, [r4, 0x10] cmp r6, r0 bcc _0809B1D0 ldr r5, _0809B2C8 @ =gUnknown_2039968 movs r0, 0xD adds r4, r6, 0 muls r4, r0 ldr r0, [r5] adds r0, r4 ldr r1, _0809B2CC @ =gFameCheckerText_Cancel bl StringCopy ldr r0, _0809B2D0 @ =gUnknown_2039964 ldr r2, [r0] lsls r1, r6, 3 adds r1, r2 ldr r0, [r5] adds r0, r4 str r0, [r1] movs r0, 0x2 negs r0, r0 str r0, [r1, 0x4] ldr r5, _0809B2D4 @ =gMultiuseListMenuTemplate str r2, [r5] ldr r6, _0809B2D8 @ =gUnknown_2039934 ldrh r0, [r6, 0x10] adds r0, 0x1 movs r1, 0 strh r0, [r5, 0xC] movs r0, 0x4 strb r0, [r5, 0x10] strb r1, [r5, 0x11] movs r0, 0x9 strb r0, [r5, 0x12] movs r0, 0x1 strb r0, [r5, 0x13] ldrb r1, [r5, 0x16] subs r0, 0x9 ands r0, r1 movs r1, 0x39 negs r1, r1 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x16] ldrb r2, [r5, 0x14] movs r1, 0x10 negs r1, r1 adds r0, r1, 0 ands r0, r2 movs r3, 0x2 orrs r0, r3 strb r0, [r5, 0x14] ldrb r2, [r5, 0x17] movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r3 strb r0, [r5, 0x17] ldrb r0, [r5, 0x15] ands r1, r0 strb r1, [r5, 0x15] movs r0, 0x2 movs r1, 0x5 bl GetFontAttribute lsls r0, 4 ldrb r2, [r5, 0x14] movs r4, 0xF adds r1, r4, 0 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x14] movs r0, 0x2 movs r1, 0x7 bl GetFontAttribute lsls r0, 4 ldrb r2, [r5, 0x15] adds r1, r4, 0 ands r1, r2 orrs r1, r0 strb r1, [r5, 0x15] ldr r0, _0809B2DC @ =sub_809B320 str r0, [r5, 0x4] ldr r0, _0809B2E0 @ =sub_809B408 str r0, [r5, 0x8] ldrb r2, [r5, 0x16] movs r1, 0x3F adds r0, r1, 0 ands r0, r2 strb r0, [r5, 0x16] ldrb r0, [r5, 0x17] ands r1, r0 strb r1, [r5, 0x17] ldrb r0, [r6, 0x16] ands r4, r0 movs r1, 0x6 cmp r4, 0x1 bne _0809B2BC movs r1, 0x5 _0809B2BC: ldrh r0, [r6, 0x10] adds r0, 0x1 cmp r0, r1 ble _0809B2E4 strh r1, [r5, 0xE] b _0809B2E6 .align 2, 0 _0809B2C8: .4byte gUnknown_2039968 _0809B2CC: .4byte gFameCheckerText_Cancel _0809B2D0: .4byte gUnknown_2039964 _0809B2D4: .4byte gMultiuseListMenuTemplate _0809B2D8: .4byte gUnknown_2039934 _0809B2DC: .4byte sub_809B320 _0809B2E0: .4byte sub_809B408 _0809B2E4: strh r0, [r5, 0xE] _0809B2E6: ldr r0, _0809B2F8 @ =gUnknown_2039934 ldr r1, _0809B2FC @ =gMultiuseListMenuTemplate ldrh r1, [r1, 0xE] strh r1, [r0, 0x12] movs r0, 0x1 _0809B2F0: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809B2F8: .4byte gUnknown_2039934 _0809B2FC: .4byte gMultiuseListMenuTemplate thumb_func_end sub_809B188 thumb_func_start sub_809B300 sub_809B300: @ 809B300 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r5, 16 lsrs r5, 16 adds r0, r5, 0 adds r1, r6, 0 bl CopyItemName str r6, [r4] str r5, [r4, 0x4] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_809B300 thumb_func_start sub_809B320 sub_809B320: @ 809B320 push {r4-r7,lr} sub sp, 0x14 adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _0809B334 movs r0, 0x5 bl PlaySE _0809B334: movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _0809B348 lsls r0, r5, 16 lsrs r0, 16 bl ItemId_GetDescription adds r7, r0, 0 b _0809B34A _0809B348: ldr r7, _0809B384 @ =gUnknown_8416757 _0809B34A: movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer ldr r6, _0809B388 @ =gUnknown_2039934 ldrb r0, [r6, 0x16] movs r4, 0xF ands r4, r0 cmp r4, 0x1 beq _0809B3D8 ldrb r1, [r6, 0x17] lsls r1, 29 lsrs r1, 30 movs r0, 0x1 eors r0, r1 bl DestroyItemMenuIcon movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _0809B38C lsls r0, r5, 16 lsrs r0, 16 ldrb r1, [r6, 0x17] lsls r1, 29 lsrs r1, 30 bl CreateItemMenuIcon b _0809B398 .align 2, 0 _0809B384: .4byte gUnknown_8416757 _0809B388: .4byte gUnknown_2039934 _0809B38C: ldr r0, _0809B3D0 @ =0x00000177 ldrb r1, [r6, 0x17] lsls r1, 29 lsrs r1, 30 bl CreateItemMenuIcon _0809B398: ldr r3, _0809B3D4 @ =gUnknown_2039934 ldrb r2, [r3, 0x17] lsls r0, r2, 29 lsrs r0, 30 movs r1, 0x1 eors r1, r0 lsls r1, 1 movs r0, 0x7 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x17] movs r0, 0x3 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x5 movs r1, 0x2 adds r2, r7, 0 movs r3, 0 bl BuyMenuPrint b _0809B400 .align 2, 0 _0809B3D0: .4byte 0x00000177 _0809B3D4: .4byte gUnknown_2039934 _0809B3D8: movs r0, 0x6 movs r1, 0 bl FillWindowPixelBuffer adds r0, r5, 0 bl sub_809B494 movs r0, 0x3 str r0, [sp] str r4, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x5 movs r1, 0x2 adds r2, r7, 0 movs r3, 0x2 bl BuyMenuPrint _0809B400: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809B320 thumb_func_start sub_809B408 sub_809B408: @ 809B408 push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r5, r2, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _0809B480 ldr r4, _0809B488 @ =gStringVar1 lsls r0, r1, 16 lsrs r0, 16 bl itemid_get_market_price adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 movs r1, 0x4 subs r1, r0 ldr r2, _0809B48C @ =gStringVar4 adds r0, r1, 0 subs r1, 0x1 cmp r0, 0 beq _0809B45C movs r3, 0 _0809B450: strb r3, [r2] adds r2, 0x1 adds r0, r1, 0 subs r1, 0x1 cmp r0, 0 bne _0809B450 _0809B45C: ldr r1, _0809B490 @ =gText_PokedollarVar1 adds r0, r2, 0 bl StringExpandPlaceholders ldr r2, _0809B48C @ =gStringVar4 str r5, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] adds r0, r6, 0 movs r1, 0 movs r3, 0x69 bl BuyMenuPrint _0809B480: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809B488: .4byte gStringVar1 _0809B48C: .4byte gStringVar4 _0809B490: .4byte gText_PokedollarVar1 thumb_func_end sub_809B408 thumb_func_start sub_809B494 sub_809B494: @ 809B494 push {r4-r7,lr} sub sp, 0x14 adds r7, r0, 0 movs r0, 0x2 negs r0, r0 cmp r7, r0 beq _0809B528 ldr r4, _0809B514 @ =gStringVar1 ldr r0, _0809B518 @ =0xfffffee0 adds r1, r7, r0 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, _0809B51C @ =gStringVar4 ldr r1, _0809B520 @ =gOtherText_UnkF9_08_Clear_01 adds r0, r5, 0 bl StringCopy adds r0, r5, 0 adds r1, r4, 0 bl StringAppend movs r4, 0 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] movs r6, 0x1 str r6, [sp, 0x10] movs r0, 0x6 movs r1, 0 adds r2, r5, 0 movs r3, 0 bl BuyMenuPrint lsls r0, r7, 16 lsrs r0, 16 bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, _0809B524 @ =gMoveNames adds r1, r0 adds r0, r5, 0 bl StringCopy movs r0, 0x10 str r0, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r6, [sp, 0x10] movs r0, 0x6 movs r1, 0x2 adds r2, r5, 0 movs r3, 0 bl BuyMenuPrint b _0809B55C .align 2, 0 _0809B514: .4byte gStringVar1 _0809B518: .4byte 0xfffffee0 _0809B51C: .4byte gStringVar4 _0809B520: .4byte gOtherText_UnkF9_08_Clear_01 _0809B524: .4byte gMoveNames _0809B528: ldr r2, _0809B564 @ =gText_ThreeHyphens movs r4, 0 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] movs r5, 0x1 str r5, [sp, 0x10] movs r0, 0x6 movs r1, 0 movs r3, 0 bl BuyMenuPrint ldr r2, _0809B568 @ =gUnknown_8416217 movs r0, 0x10 str r0, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r5, [sp, 0x10] movs r0, 0x6 movs r1, 0x2 movs r3, 0 bl BuyMenuPrint _0809B55C: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809B564: .4byte gText_ThreeHyphens _0809B568: .4byte gUnknown_8416217 thumb_func_end sub_809B494 thumb_func_start sub_809B56C sub_809B56C: @ 809B56C ldr r0, _0809B578 @ =gUnknown_2039934 ldrh r0, [r0, 0x16] lsls r0, 23 lsrs r0, 27 bx lr .align 2, 0 _0809B578: .4byte gUnknown_2039934 thumb_func_end sub_809B56C thumb_func_start sub_809B57C sub_809B57C: @ 809B57C push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl ListMenuGetYCoordForPrintingArrowCursor lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_809B59C pop {r4} pop {r0} bx r0 thumb_func_end sub_809B57C thumb_func_start sub_809B59C sub_809B59C: @ 809B59C push {r4,r5,lr} sub sp, 0x14 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0xFF bne _0809B5E0 movs r0, 0x2 movs r1, 0 bl GetFontAttribute adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] movs r0, 0x4 movs r1, 0 movs r2, 0x1 adds r3, r5, 0 bl FillWindowPixelRect movs r0, 0x4 movs r1, 0x2 bl CopyWindowToVram b _0809B5F8 _0809B5E0: ldr r2, _0809B600 @ =gFameCheckerText_ListMenuCursor str r5, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r1, [sp, 0x10] movs r0, 0x4 movs r1, 0x2 movs r3, 0x1 bl BuyMenuPrint _0809B5F8: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809B600: .4byte gFameCheckerText_ListMenuCursor thumb_func_end sub_809B59C thumb_func_start sub_809B604 sub_809B604: @ 809B604 push {lr} ldr r0, _0809B658 @ =gUnknown_2039954 ldr r0, [r0] cmp r0, 0 beq _0809B612 bl Free _0809B612: ldr r0, _0809B65C @ =gUnknown_2039958 ldr r0, [r0] cmp r0, 0 beq _0809B61E bl Free _0809B61E: ldr r0, _0809B660 @ =gUnknown_203995C ldr r0, [r0] cmp r0, 0 beq _0809B62A bl Free _0809B62A: ldr r0, _0809B664 @ =gUnknown_2039960 ldr r0, [r0] cmp r0, 0 beq _0809B636 bl Free _0809B636: ldr r0, _0809B668 @ =gUnknown_2039964 ldr r0, [r0] cmp r0, 0 beq _0809B642 bl Free _0809B642: ldr r0, _0809B66C @ =gUnknown_2039968 ldr r0, [r0] cmp r0, 0 beq _0809B64E bl Free _0809B64E: bl FreeAllWindowBuffers pop {r0} bx r0 .align 2, 0 _0809B658: .4byte gUnknown_2039954 _0809B65C: .4byte gUnknown_2039958 _0809B660: .4byte gUnknown_203995C _0809B664: .4byte gUnknown_2039960 _0809B668: .4byte gUnknown_2039964 _0809B66C: .4byte gUnknown_2039968 thumb_func_end sub_809B604 thumb_func_start sub_809B670 sub_809B670: @ 809B670 push {lr} ldr r0, _0809B684 @ =gFieldCallback ldr r1, _0809B688 @ =sub_809AD74 str r1, [r0] ldr r0, _0809B68C @ =CB2_ReturnToField bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0809B684: .4byte gFieldCallback _0809B688: .4byte sub_809AD74 _0809B68C: .4byte CB2_ReturnToField thumb_func_end sub_809B670 thumb_func_start sub_809B690 sub_809B690: @ 809B690 push {r4,lr} sub sp, 0x10 ldr r4, _0809B6C0 @ =gUnknown_2039934 ldrb r1, [r4, 0x16] movs r0, 0xF ands r0, r1 cmp r0, 0x1 beq _0809B6C4 ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x12] subs r0, r1 adds r0, 0x1 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r4, 0 adds r0, 0xE str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0xA0 movs r2, 0x8 movs r3, 0x68 b _0809B6E2 .align 2, 0 _0809B6C0: .4byte gUnknown_2039934 _0809B6C4: ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x12] subs r0, r1 adds r0, 0x1 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r4, 0 adds r0, 0xE str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0xA0 movs r2, 0x8 movs r3, 0x58 _0809B6E2: bl AddScrollIndicatorArrowPairParameterized lsls r0, 3 ldrb r2, [r4, 0x17] movs r1, 0x7 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x17] add sp, 0x10 pop {r4} pop {r0} bx r0 thumb_func_end sub_809B690 thumb_func_start sub_809B6FC sub_809B6FC: @ 809B6FC push {r4,lr} sub sp, 0x10 ldr r4, _0809B738 @ =gUnknown_2039934 movs r0, 0x1 strh r0, [r4, 0x18] movs r0, 0x2 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r4, 0 adds r0, 0x18 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0x98 movs r2, 0x48 movs r3, 0x68 bl AddScrollIndicatorArrowPairParameterized lsls r0, 3 ldrb r2, [r4, 0x17] movs r1, 0x7 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x17] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0809B738: .4byte gUnknown_2039934 thumb_func_end sub_809B6FC thumb_func_start sub_809B73C sub_809B73C: @ 809B73C push {r4,lr} ldr r4, _0809B760 @ =gUnknown_2039934 ldrb r1, [r4, 0x17] movs r0, 0xF8 ands r0, r1 cmp r0, 0xF8 beq _0809B758 lsrs r0, r1, 3 bl RemoveScrollIndicatorArrowPair ldrb r0, [r4, 0x17] movs r1, 0xF8 orrs r0, r1 strb r0, [r4, 0x17] _0809B758: pop {r4} pop {r0} bx r0 .align 2, 0 _0809B760: .4byte gUnknown_2039934 thumb_func_end sub_809B73C thumb_func_start sub_809B764 sub_809B764: @ 809B764 push {lr} bl sub_809B92C bl sub_809BA40 bl sub_809B778 pop {r0} bx r0 thumb_func_end sub_809B764 thumb_func_start sub_809B778 sub_809B778: @ 809B778 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _0809B804 @ =gMapHeader ldr r0, [r0] mov r9, r0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r1, sp mov r0, sp ldrh r0, [r0] subs r0, 0x2 strh r0, [r1] ldrh r0, [r4] subs r0, 0x3 strh r0, [r4] movs r1, 0 mov r10, r4 _0809B7AA: movs r4, 0 lsls r1, 16 mov r8, r1 asrs r7, r1, 16 _0809B7B2: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] lsls r4, 16 asrs r6, r4, 16 adds r0, r6 mov r2, r10 movs r3, 0 ldrsh r1, [r2, r3] adds r1, r7 bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r5, r0, 16 mov r0, sp ldrh r0, [r0] adds r0, r6, r0 lsls r0, 16 asrs r0, 16 mov r2, r10 ldrh r1, [r2] adds r1, r7, r1 lsls r1, 16 asrs r1, 16 bl MapGridGetMetatileLayerTypeAt lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0809B808 @ =0x0000027f cmp r5, r0 bhi _0809B80C mov r1, r9 ldr r0, [r1, 0x10] lsls r1, r5, 4 ldr r2, [r0, 0xC] adds r2, r1 adds r0, r6, 0 adds r1, r7, 0 bl sub_809B850 b _0809B822 .align 2, 0 _0809B804: .4byte gMapHeader _0809B808: .4byte 0x0000027f _0809B80C: mov r2, r9 ldr r0, [r2, 0x14] ldr r2, _0809B84C @ =0xfffffd80 adds r1, r5, r2 lsls r1, 4 ldr r2, [r0, 0xC] adds r2, r1 adds r0, r6, 0 adds r1, r7, 0 bl sub_809B850 _0809B822: movs r3, 0x80 lsls r3, 9 adds r0, r4, r3 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x4 ble _0809B7B2 adds r0, r3, 0 add r0, r8 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x9 ble _0809B7AA add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809B84C: .4byte 0xfffffd80 thumb_func_end sub_809B778 thumb_func_start sub_809B850 sub_809B850: @ 809B850 push {r4-r6,lr} adds r6, r2, 0 lsls r3, 24 lsrs r3, 24 adds r2, r3, 0 lsls r0, 17 lsrs r5, r0, 16 lsls r1, 22 movs r0, 0x80 lsls r0, 15 adds r1, r0 lsrs r1, 16 cmp r3, 0x1 beq _0809B8A0 cmp r3, 0x1 bgt _0809B876 cmp r3, 0 beq _0809B87C b _0809B8F6 _0809B876: cmp r2, 0x2 beq _0809B8D0 b _0809B8F6 _0809B87C: ldr r0, _0809B898 @ =gUnknown_2039960 ldr r0, [r0] lsls r5, 16 asrs r5, 16 lsls r4, r1, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl sub_809B904 ldr r0, _0809B89C @ =gUnknown_2039958 b _0809B8B8 .align 2, 0 _0809B898: .4byte gUnknown_2039960 _0809B89C: .4byte gUnknown_2039958 _0809B8A0: ldr r0, _0809B8C8 @ =gUnknown_203995C ldr r0, [r0] lsls r5, 16 asrs r5, 16 lsls r4, r1, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl sub_809B904 ldr r0, _0809B8CC @ =gUnknown_2039960 _0809B8B8: ldr r0, [r0] adds r3, r6, 0 adds r3, 0x8 adds r1, r5, 0 adds r2, r4, 0 bl sub_809B904 b _0809B8F6 .align 2, 0 _0809B8C8: .4byte gUnknown_203995C _0809B8CC: .4byte gUnknown_2039960 _0809B8D0: ldr r0, _0809B8FC @ =gUnknown_203995C ldr r0, [r0] lsls r5, 16 asrs r5, 16 lsls r4, r1, 16 asrs r4, 16 adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl sub_809B904 ldr r0, _0809B900 @ =gUnknown_2039958 ldr r0, [r0] adds r3, r6, 0 adds r3, 0x8 adds r1, r5, 0 adds r2, r4, 0 bl sub_809B904 _0809B8F6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809B8FC: .4byte gUnknown_203995C _0809B900: .4byte gUnknown_2039958 thumb_func_end sub_809B850 thumb_func_start sub_809B904 sub_809B904: @ 809B904 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 adds r1, r2 lsls r1, 1 adds r1, r0 ldrh r0, [r3] strh r0, [r1] ldrh r0, [r3, 0x2] strh r0, [r1, 0x2] adds r2, r1, 0 adds r2, 0x40 ldrh r0, [r3, 0x4] strh r0, [r2] adds r1, 0x42 ldrh r0, [r3, 0x6] strh r0, [r1] bx lr thumb_func_end sub_809B904 thumb_func_start sub_809B92C sub_809B92C: @ 809B92C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 mov r9, r0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer bl PlayerGetZCoord lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r5, 0 ldr r2, _0809B9DC @ =gUnknown_20398B4 movs r1, 0x10 _0809B958: lsls r0, r5, 3 adds r0, r2 strh r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xF bls _0809B958 movs r5, 0 ldr r6, _0809B9E0 @ =gUnknown_20398BA subs r1, r6, 0x6 mov r8, r1 _0809B970: movs r4, 0 adds r2, r5, 0x1 mov r10, r2 _0809B976: mov r1, sp ldr r3, _0809B9E4 @ =0x0000fffd adds r0, r3, 0 ldrh r1, [r1] adds r0, r1 adds r0, r4 lsls r0, 16 lsrs r0, 16 ldr r2, _0809B9E8 @ =0x0000fffe adds r1, r2, 0 mov r3, sp ldrh r3, [r3, 0x2] adds r1, r3 adds r1, r5 lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0x4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x10 beq _0809BA1C mov r0, r9 lsls r2, r0, 3 mov r1, r8 adds r0, r2, r1 movs r7, 0 strh r3, [r0] mov r0, r8 adds r0, 0x2 adds r0, r2, r0 strh r4, [r0] ldr r1, _0809B9EC @ =gUnknown_20398B8 adds r0, r2, r1 strh r5, [r0] ldr r1, _0809B9F0 @ =gMapObjects lsls r0, r3, 3 adds r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x18] lsls r0, 28 lsrs r0, 28 cmp r0, 0x2 beq _0809BA00 cmp r0, 0x2 bgt _0809B9F4 cmp r0, 0x1 beq _0809B9FA b _0809BA0C .align 2, 0 _0809B9DC: .4byte gUnknown_20398B4 _0809B9E0: .4byte gUnknown_20398BA _0809B9E4: .4byte 0x0000fffd _0809B9E8: .4byte 0x0000fffe _0809B9EC: .4byte gUnknown_20398B8 _0809B9F0: .4byte gMapObjects _0809B9F4: cmp r0, 0x3 beq _0809BA06 b _0809BA0C _0809B9FA: adds r0, r2, r6 strh r7, [r0] b _0809BA12 _0809BA00: adds r1, r2, r6 movs r0, 0x1 b _0809BA10 _0809BA06: adds r1, r2, r6 movs r0, 0x2 b _0809BA10 _0809BA0C: adds r1, r2, r6 movs r0, 0x3 _0809BA10: strh r0, [r1] _0809BA12: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0809BA1C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _0809B976 mov r2, r10 lsls r0, r2, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _0809B970 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809B92C thumb_func_start sub_809BA40 sub_809BA40: @ 809BA40 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r6, 0 ldr r7, _0809BAE8 @ =gUnknown_20398B4 ldr r0, _0809BAEC @ =gMapObjects mov r8, r0 adds r1, r7, 0x6 mov r9, r1 _0809BA56: lsls r5, r6, 3 adds r4, r5, r7 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x10 beq _0809BACE adds r1, r0, 0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo movs r1, 0 ldrsh r2, [r4, r1] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 add r1, r8 ldrb r4, [r1, 0x5] adds r1, r7, 0x2 adds r1, r5, r1 ldrh r2, [r1] lsls r2, 20 ldr r1, _0809BAF0 @ =0xfff80000 adds r2, r1 asrs r2, 16 adds r1, r7, 0x4 adds r1, r5, r1 ldrh r3, [r1] lsls r3, 4 movs r1, 0xA ldrsh r0, [r0, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 subs r0, 0x30 subs r3, r0 lsls r3, 16 asrs r3, 16 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 ldr r1, _0809BAF4 @ =SpriteCallbackDummy bl AddPseudoEventObject lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _0809BAF8 @ =gSprites adds r2, r0 mov r1, r9 adds r0, r5, r1 ldrb r1, [r0] adds r0, r2, 0 bl StartSpriteAnim _0809BACE: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xF bls _0809BA56 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809BAE8: .4byte gUnknown_20398B4 _0809BAEC: .4byte gMapObjects _0809BAF0: .4byte 0xfff80000 _0809BAF4: .4byte SpriteCallbackDummy _0809BAF8: .4byte gSprites thumb_func_end sub_809BA40 thumb_func_start sub_809BAFC sub_809BAFC: @ 809BAFC push {r4-r6,lr} ldr r0, _0809BB34 @ =gUnknown_2039958 ldr r4, [r0] ldr r0, _0809BB38 @ =gUnknown_2039954 ldr r3, [r0] movs r1, 0 ldr r0, _0809BB3C @ =0x0000b3dc adds r6, r0, 0 ldr r5, _0809BB40 @ =0x000003ff _0809BB0E: lsls r0, r1, 16 asrs r2, r0, 16 lsls r1, r2, 1 adds r0, r1, r3 ldrh r0, [r0] cmp r0, 0 beq _0809BB22 adds r1, r4 adds r0, r6 strh r0, [r1] _0809BB22: adds r0, r2, 0x1 lsls r0, 16 lsrs r1, r0, 16 asrs r0, 16 cmp r0, r5 ble _0809BB0E pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809BB34: .4byte gUnknown_2039958 _0809BB38: .4byte gUnknown_2039954 _0809BB3C: .4byte 0x0000b3dc _0809BB40: .4byte 0x000003ff thumb_func_end sub_809BAFC thumb_func_start sub_809BB44 sub_809BB44: @ 809BB44 push {r4,lr} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0809BBAC @ =gTasks+0x8 adds r4, r0 movs r0, 0x3 movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, _0809BBB0 @ =gUnknown_2039934 ldr r3, [r0, 0x8] movs r0, 0xFF str r0, [sp] movs r0, 0x3 movs r1, 0x36 movs r2, 0xA bl PrintMoneyAmount ldr r0, _0809BBB4 @ =gStringVar1 movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, _0809BBB8 @ =gStringVar4 ldr r1, _0809BBBC @ =gText_TimesStrVar1 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] movs r0, 0x3 movs r1, 0 adds r2, r4, 0 movs r3, 0x2 bl BuyMenuPrint add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _0809BBAC: .4byte gTasks+0x8 _0809BBB0: .4byte gUnknown_2039934 _0809BBB4: .4byte gStringVar1 _0809BBB8: .4byte gStringVar4 _0809BBBC: .4byte gText_TimesStrVar1 thumb_func_end sub_809BB44 thumb_func_start sub_809BBC0 sub_809BBC0: @ 809BBC0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _0809BC00 @ =gTasks+0x8 adds r5, r0, r1 ldr r0, _0809BC04 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0809BC8E ldrb r0, [r5, 0xE] bl ListMenu_ProcessInput adds r4, r0, 0 ldrb r0, [r5, 0xE] ldr r7, _0809BC08 @ =gUnknown_2039942 subs r2, r7, 0x2 adds r1, r7, 0 bl ListMenuGetScrollAndRow movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0809BC0C adds r0, 0x1 cmp r4, r0 bne _0809BC1A b _0809BC8E .align 2, 0 _0809BC00: .4byte gTasks+0x8 _0809BC04: .4byte gPaletteFade _0809BC08: .4byte gUnknown_2039942 _0809BC0C: movs r0, 0x5 bl PlaySE adds r0, r6, 0 bl sub_809C004 b _0809BC8E _0809BC1A: movs r0, 0x5 bl PlaySE strh r4, [r5, 0xA] movs r0, 0x5 bl ClearWindowTilemap bl sub_809B73C ldrb r0, [r5, 0xE] movs r1, 0x2 bl sub_809B57C movs r0, 0x1 bl sub_809B10C lsls r0, r4, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl itemid_get_market_price adds r1, r0, 0 adds r0, r7, 0 subs r0, 0xE lsls r1, 16 lsrs r1, 16 str r1, [r0, 0x8] ldr r0, _0809BC70 @ =gSaveBlock1Ptr ldr r0, [r0] movs r2, 0xA4 lsls r2, 2 adds r0, r2 bl IsEnoughMoney lsls r0, 24 cmp r0, 0 bne _0809BC7C ldr r1, _0809BC74 @ =gUnknown_8416842 ldr r2, _0809BC78 @ =sub_809BF98 adds r0, r6, 0 bl BuyMenuDisplayMessage b _0809BC8E .align 2, 0 _0809BC70: .4byte gSaveBlock1Ptr _0809BC74: .4byte gUnknown_8416842 _0809BC78: .4byte sub_809BF98 _0809BC7C: ldr r1, _0809BC94 @ =gStringVar1 adds r0, r4, 0 bl CopyItemName ldr r1, _0809BC98 @ =gUnknown_8416766 ldr r2, _0809BC9C @ =sub_809BCA0 adds r0, r6, 0 bl BuyMenuDisplayMessage _0809BC8E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809BC94: .4byte gStringVar1 _0809BC98: .4byte gUnknown_8416766 _0809BC9C: .4byte sub_809BCA0 thumb_func_end sub_809BBC0 thumb_func_start sub_809BCA0 sub_809BCA0: @ 809BCA0 push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 lsls r5, r7, 2 adds r5, r7 lsls r5, 3 ldr r0, _0809BD40 @ =gTasks+0x8 adds r5, r0 ldrh r0, [r5, 0xA] bl BagGetQuantityByItemId adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x1 movs r1, 0 bl BuyMenuQuantityBoxThinBorder ldr r0, _0809BD44 @ =gStringVar1 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r6, _0809BD48 @ =gStringVar4 ldr r1, _0809BD4C @ =gUnknown_8416749 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0x2 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] movs r4, 0x1 str r4, [sp, 0x10] movs r0, 0x1 movs r1, 0x2 adds r2, r6, 0 movs r3, 0 bl BuyMenuPrint strh r4, [r5, 0x2] movs r0, 0x3 movs r1, 0 bl BuyMenuQuantityBoxNormalBorder adds r0, r7, 0 bl sub_809BB44 movs r0, 0 bl ScheduleBgCopyTilemapToVram ldr r0, _0809BD50 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xA4 lsls r1, 2 adds r0, r1 bl GetMoney adds r4, r0, 0 ldrh r0, [r5, 0xA] bl itemid_get_market_price adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl __udivsi3 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x63 bls _0809BD58 ldr r1, _0809BD54 @ =gUnknown_2039934 movs r0, 0x63 b _0809BD5E .align 2, 0 _0809BD40: .4byte gTasks+0x8 _0809BD44: .4byte gStringVar1 _0809BD48: .4byte gStringVar4 _0809BD4C: .4byte gUnknown_8416749 _0809BD50: .4byte gSaveBlock1Ptr _0809BD54: .4byte gUnknown_2039934 _0809BD58: ldr r1, _0809BD80 @ =gUnknown_2039934 lsls r0, r2, 24 lsrs r0, 24 _0809BD5E: strh r0, [r1, 0x14] cmp r2, 0x1 beq _0809BD68 bl sub_809B6FC _0809BD68: ldr r0, _0809BD84 @ =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, _0809BD88 @ =sub_809BD8C str r0, [r1] add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809BD80: .4byte gUnknown_2039934 _0809BD84: .4byte gTasks _0809BD88: .4byte sub_809BD8C thumb_func_end sub_809BCA0 thumb_func_start sub_809BD8C sub_809BD8C: @ 809BD8C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0809BDCC @ =gTasks+0x8 adds r4, r0, r1 adds r0, r4, 0x2 ldr r6, _0809BDD0 @ =gUnknown_2039934 ldrh r1, [r6, 0x14] bl AdjustQuantityAccordingToDPadInput lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809BDD4 ldrh r0, [r4, 0xA] bl itemid_get_market_price lsls r0, 16 lsrs r0, 16 movs r2, 0x2 ldrsh r1, [r4, r2] muls r0, r1 str r0, [r6, 0x8] adds r0, r5, 0 bl sub_809BB44 b _0809BE88 .align 2, 0 _0809BDCC: .4byte gTasks+0x8 _0809BDD0: .4byte gUnknown_2039934 _0809BDD4: ldr r0, _0809BE3C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809BE54 movs r0, 0x5 bl PlaySE bl sub_809B73C movs r0, 0x3 movs r1, 0 bl ClearStdWindowAndFrameToTransparent movs r0, 0x1 movs r1, 0 bl ClearStdWindowAndFrameToTransparent movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x1 bl ClearWindowTilemap movs r0, 0x4 bl PutWindowTilemap ldrh r0, [r4, 0xA] ldr r1, _0809BE40 @ =gStringVar1 bl CopyItemName ldr r0, _0809BE44 @ =gStringVar2 movs r2, 0x2 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _0809BE48 @ =gStringVar3 ldr r1, [r6, 0x8] movs r2, 0 movs r3, 0x8 bl ConvertIntToDecimalStringN ldr r1, _0809BE4C @ =gUnknown_841678E ldr r2, _0809BE50 @ =sub_809BE90 adds r0, r5, 0 bl BuyMenuDisplayMessage b _0809BE88 .align 2, 0 _0809BE3C: .4byte gMain _0809BE40: .4byte gStringVar1 _0809BE44: .4byte gStringVar2 _0809BE48: .4byte gStringVar3 _0809BE4C: .4byte gUnknown_841678E _0809BE50: .4byte sub_809BE90 _0809BE54: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809BE88 movs r0, 0x5 bl PlaySE bl sub_809B73C movs r0, 0x3 movs r1, 0 bl ClearStdWindowAndFrameToTransparent movs r0, 0x1 movs r1, 0 bl ClearStdWindowAndFrameToTransparent movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x1 bl ClearWindowTilemap adds r0, r7, 0 bl sub_809BF98 _0809BE88: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809BD8C thumb_func_start sub_809BE90 sub_809BE90: @ 809BE90 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0809BEA0 @ =gUnknown_83DF0B4 bl BuyMenuConfirmPurchase pop {r0} bx r0 .align 2, 0 _0809BEA0: .4byte gUnknown_83DF0B4 thumb_func_end sub_809BE90 thumb_func_start sub_809BEA4 sub_809BEA4: @ 809BEA4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0809BEE8 @ =gTasks+0x8 adds r4, r0, r1 movs r0, 0x4 bl PutWindowTilemap ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x2] bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809BEF4 ldr r1, _0809BEEC @ =gUnknown_84167E7 ldr r2, _0809BEF0 @ =sub_809BF0C adds r0, r5, 0 bl BuyMenuDisplayMessage adds r0, r5, 0 bl nullsub_52 ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x2] movs r2, 0x1 bl sub_809C09C b _0809BEFE .align 2, 0 _0809BEE8: .4byte gTasks+0x8 _0809BEEC: .4byte gUnknown_84167E7 _0809BEF0: .4byte sub_809BF0C _0809BEF4: ldr r1, _0809BF04 @ =gUnknown_8416861 ldr r2, _0809BF08 @ =sub_809BF98 adds r0, r5, 0 bl BuyMenuDisplayMessage _0809BEFE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809BF04: .4byte gUnknown_8416861 _0809BF08: .4byte sub_809BF98 thumb_func_end sub_809BEA4 thumb_func_start sub_809BF0C sub_809BF0C: @ 809BF0C push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x26 bl IncrementGameStat ldr r6, _0809BF58 @ =gSaveBlock1Ptr ldr r0, [r6] movs r5, 0xA4 lsls r5, 2 adds r0, r5 ldr r1, _0809BF5C @ =gUnknown_2039934 ldr r1, [r1, 0x8] bl RemoveMoney movs r0, 0xF8 bl PlaySE ldr r0, [r6] adds r0, r5 bl GetMoney adds r1, r0, 0 movs r0, 0 movs r2, 0 bl PrintMoneyAmountInMoneyBox ldr r1, _0809BF60 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809BF64 @ =sub_809BF68 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809BF58: .4byte gSaveBlock1Ptr _0809BF5C: .4byte gUnknown_2039934 _0809BF60: .4byte gTasks _0809BF64: .4byte sub_809BF68 thumb_func_end sub_809BF0C thumb_func_start sub_809BF68 sub_809BF68: @ 809BF68 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0809BF94 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0809BF82 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809BF8E _0809BF82: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_809BF98 _0809BF8E: pop {r4} pop {r0} bx r0 .align 2, 0 _0809BF94: .4byte gMain thumb_func_end sub_809BF68 thumb_func_start sub_809BF98 sub_809BF98: @ 809BF98 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r5, r1, 3 ldr r6, _0809BFF8 @ =gTasks+0x8 adds r4, r5, r6 movs r0, 0x2 movs r1, 0 bl ClearDialogWindowAndFrameToTransparent ldrb r0, [r4, 0xE] movs r1, 0x1 bl sub_809B57C movs r0, 0 bl sub_809B10C movs r0, 0x4 bl PutWindowTilemap movs r0, 0x5 bl PutWindowTilemap ldr r0, _0809BFFC @ =gUnknown_2039934 ldrb r1, [r0, 0x16] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _0809BFDC movs r0, 0x6 bl PutWindowTilemap _0809BFDC: movs r0, 0 bl ScheduleBgCopyTilemapToVram bl sub_809B690 adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, _0809C000 @ =sub_809BBC0 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809BFF8: .4byte gTasks+0x8 _0809BFFC: .4byte gUnknown_2039934 _0809C000: .4byte sub_809BBC0 thumb_func_end sub_809BF98 thumb_func_start sub_809C004 sub_809C004: @ 809C004 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0809C03C @ =gFieldCallback ldr r0, _0809C040 @ =sub_809AD74 str r0, [r1] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0809C044 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0809C048 @ =sub_809C04C str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809C03C: .4byte gFieldCallback _0809C040: .4byte sub_809AD74 _0809C044: .4byte gTasks _0809C048: .4byte sub_809C04C thumb_func_end sub_809C004 thumb_func_start sub_809C04C sub_809C04C: @ 809C04C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0809C088 @ =gTasks+0x8 adds r2, r0, r1 ldr r0, _0809C08C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0809C082 ldrb r0, [r2, 0xE] movs r1, 0 movs r2, 0 bl DestroyListMenuTask bl sub_809B604 ldr r0, _0809C090 @ =CB2_ReturnToField bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0809C082: pop {r4} pop {r0} bx r0 .align 2, 0 _0809C088: .4byte gTasks+0x8 _0809C08C: .4byte gPaletteFade _0809C090: .4byte CB2_ReturnToField thumb_func_end sub_809C04C thumb_func_start nullsub_52 nullsub_52: @ 809C094 bx lr thumb_func_end nullsub_52 thumb_func_start nullsub_53 nullsub_53: @ 809C098 bx lr thumb_func_end nullsub_53 thumb_func_start sub_809C09C sub_809C09C: @ 809C09C push {r4-r6,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r5, r2, 24 ldr r1, _0809C0B8 @ =gUnknown_203996C ldrb r2, [r1, 0xA] cmp r2, r5 bne _0809C0BC adds r4, r1, 0 b _0809C0D4 .align 2, 0 _0809C0B8: .4byte gUnknown_203996C _0809C0BC: ldrb r0, [r1, 0x16] cmp r0, r5 bne _0809C0C8 adds r4, r1, 0 adds r4, 0xC b _0809C0D4 _0809C0C8: adds r4, r1, 0 adds r4, 0xC cmp r2, 0 bne _0809C0D2 adds r4, r1, 0 _0809C0D2: strb r5, [r4, 0xA] _0809C0D4: ldrh r0, [r4, 0x4] cmp r0, 0 beq _0809C0DE movs r0, 0x1 strb r0, [r4, 0x9] _0809C0DE: strh r3, [r4, 0x4] ldrh r1, [r4, 0x6] ldr r0, _0809C128 @ =0x000003e6 cmp r1, r0 bhi _0809C0F8 adds r0, r6, r1 strh r0, [r4, 0x6] lsls r0, 16 lsrs r0, 16 ldr r1, _0809C12C @ =0x000003e7 cmp r0, r1 bls _0809C0F8 strh r1, [r4, 0x6] _0809C0F8: ldr r1, [r4] ldr r0, _0809C130 @ =0x000f423e cmp r1, r0 bhi _0809C120 adds r0, r3, 0 bl itemid_get_market_price lsls r0, 16 lsrs r0, 16 subs r1, r5, 0x1 asrs r0, r1 adds r1, r0, 0 muls r1, r6 ldr r0, [r4] adds r0, r1 str r0, [r4] ldr r1, _0809C134 @ =0x000f423f cmp r0, r1 bls _0809C120 str r1, [r4] _0809C120: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809C128: .4byte 0x000003e6 _0809C12C: .4byte 0x000003e7 _0809C130: .4byte 0x000f423e _0809C134: .4byte 0x000f423f thumb_func_end sub_809C09C thumb_func_start sub_809C138 sub_809C138: @ 809C138 push {r4,lr} ldr r4, _0809C160 @ =gUnknown_203996C ldrb r0, [r4, 0xA] cmp r0, 0 beq _0809C14A adds r0, 0x24 adds r1, r4, 0 bl sub_8113550 _0809C14A: ldrb r0, [r4, 0x16] cmp r0, 0 beq _0809C15A adds r0, 0x24 adds r1, r4, 0 adds r1, 0xC bl sub_8113550 _0809C15A: pop {r4} pop {r0} bx r0 .align 2, 0 _0809C160: .4byte gUnknown_203996C thumb_func_end sub_809C138 thumb_func_start CreatePokemartMenu CreatePokemartMenu: @ 809C164 push {r4,lr} bl sub_809ABD8 movs r0, 0 bl sub_809AAB0 ldr r0, _0809C194 @ =EnableBothScriptContexts bl sub_809AC04 bl nullsub_53 ldr r4, _0809C198 @ =gUnknown_203996C adds r0, r4, 0 movs r1, 0 movs r2, 0x18 bl memset ldr r0, _0809C19C @ =gMapHeader ldrb r0, [r0, 0x14] strb r0, [r4, 0x8] strb r0, [r4, 0x14] pop {r4} pop {r0} bx r0 .align 2, 0 _0809C194: .4byte EnableBothScriptContexts _0809C198: .4byte gUnknown_203996C _0809C19C: .4byte gMapHeader thumb_func_end CreatePokemartMenu thumb_func_start CreateDecorationShop1Menu CreateDecorationShop1Menu: @ 809C1A0 push {lr} bl sub_809ABD8 movs r0, 0x2 bl sub_809AAB0 ldr r0, _0809C1B8 @ =EnableBothScriptContexts bl sub_809AC04 pop {r0} bx r0 .align 2, 0 _0809C1B8: .4byte EnableBothScriptContexts thumb_func_end CreateDecorationShop1Menu thumb_func_start CreateDecorationShop2Menu CreateDecorationShop2Menu: @ 809C1BC push {lr} bl sub_809ABD8 movs r0, 0x3 bl sub_809AAB0 ldr r0, _0809C1D4 @ =EnableBothScriptContexts bl sub_809AC04 pop {r0} bx r0 .align 2, 0 _0809C1D4: .4byte EnableBothScriptContexts thumb_func_end CreateDecorationShop2Menu thumb_func_start sub_809C1D8 sub_809C1D8: @ 809C1D8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r9, r1 lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 mov r10, r2 ldr r2, _0809C26C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x10] subs r0, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r1, 0x12] subs r0, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldrh r4, [r1, 0xA] movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0 bne _0809C29C movs r2, 0 lsls r5, 16 str r5, [sp, 0xC] lsls r0, r3, 16 lsls r1, r4, 16 asrs r0, 16 str r0, [sp] asrs r1, 16 str r1, [sp, 0x4] lsls r0, r1, 1 mov r1, r9 adds r7, r0, r1 _0809C22C: movs r4, 0 lsls r2, 16 mov r8, r2 asrs r0, r2, 16 ldr r2, [sp] adds r6, r2, r0 _0809C238: ldr r0, [sp, 0xC] asrs r1, r0, 16 lsls r4, 16 asrs r0, r4, 16 adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridGetMetatileIdAt movs r2, 0 ldrsh r1, [r7, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 bne _0809C280 ldr r0, [sp, 0x4] cmp r0, 0x2 beq _0809C270 ldrh r0, [r7, 0x2] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt b _0809C280 .align 2, 0 _0809C26C: .4byte gTasks _0809C270: mov r1, r9 ldrh r0, [r1] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt _0809C280: movs r2, 0x80 lsls r2, 9 adds r0, r4, r2 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _0809C238 adds r0, r2, 0 add r0, r8 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _0809C22C b _0809C324 _0809C29C: movs r2, 0 lsls r5, 16 str r5, [sp, 0xC] lsls r0, r3, 16 lsls r1, r4, 16 asrs r0, 16 str r0, [sp, 0x8] asrs r7, r1, 16 _0809C2AC: movs r4, 0 lsls r2, 16 mov r8, r2 asrs r0, r2, 16 ldr r1, [sp, 0x8] adds r6, r1, r0 _0809C2B8: ldr r2, [sp, 0xC] asrs r1, r2, 16 lsls r4, 16 asrs r0, r4, 16 adds r5, r1, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridGetMetatileIdAt movs r1, 0x2 subs r1, r7 lsls r1, 1 add r1, r9 movs r2, 0 ldrsh r1, [r1, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 bne _0809C30A cmp r7, 0x2 beq _0809C2FA movs r0, 0x1 subs r0, r7 lsls r0, 1 add r0, r9 ldrh r0, [r0] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt b _0809C30A _0809C2FA: mov r1, r9 ldrh r0, [r1, 0x4] mov r2, r10 orrs r2, r0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridSetMetatileIdAt _0809C30A: movs r2, 0x80 lsls r2, 9 adds r0, r4, r2 lsrs r4, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _0809C2B8 adds r0, r2, 0 add r0, r8 lsrs r2, r0, 16 asrs r0, 16 cmp r0, 0x2 ble _0809C2AC _0809C324: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809C1D8 thumb_func_start sub_809C334 sub_809C334: @ 809C334 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 ldr r1, _0809C35C @ =gTasks+0x8 adds r4, r0, r1 movs r0, 0x1 strh r0, [r4, 0x6] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x6 bhi _0809C3CE lsls r0, 2 ldr r1, _0809C360 @ =_0809C364 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809C35C: .4byte gTasks+0x8 _0809C360: .4byte _0809C364 .align 2, 0 _0809C364: .4byte _0809C380 .4byte _0809C388 .4byte _0809C390 .4byte _0809C398 .4byte _0809C3A0 .4byte _0809C3B4 .4byte _0809C3C4 _0809C380: ldr r1, _0809C384 @ =gUnknown_83DF0D4 b _0809C3B6 .align 2, 0 _0809C384: .4byte gUnknown_83DF0D4 _0809C388: ldr r1, _0809C38C @ =gUnknown_83DF0DA b _0809C3B6 .align 2, 0 _0809C38C: .4byte gUnknown_83DF0DA _0809C390: ldr r1, _0809C394 @ =gUnknown_83DF0E0 b _0809C3A2 .align 2, 0 _0809C394: .4byte gUnknown_83DF0E0 _0809C398: ldr r1, _0809C39C @ =gUnknown_83DF0E6 b _0809C3B6 .align 2, 0 _0809C39C: .4byte gUnknown_83DF0E6 _0809C3A0: ldr r1, _0809C3B0 @ =gUnknown_83DF0EC _0809C3A2: movs r2, 0xC0 lsls r2, 4 adds r0, r3, 0 bl sub_809C1D8 b _0809C3CE .align 2, 0 _0809C3B0: .4byte gUnknown_83DF0EC _0809C3B4: ldr r1, _0809C3C0 @ =gUnknown_83DF0F2 _0809C3B6: adds r0, r3, 0 movs r2, 0 bl sub_809C1D8 b _0809C3CE .align 2, 0 _0809C3C0: .4byte gUnknown_83DF0F2 _0809C3C4: ldr r1, _0809C3F8 @ =gUnknown_83DF0F8 adds r0, r3, 0 movs r2, 0 bl sub_809C1D8 _0809C3CE: ldrh r0, [r4] adds r0, 0x1 movs r1, 0x7 ands r0, r1 strh r0, [r4] adds r5, r0, 0 cmp r5, 0 bne _0809C3F2 bl DrawWholeMapView movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, 0x1 movs r1, 0x3 bl __modsi3 strh r0, [r4, 0x2] strh r5, [r4, 0x6] _0809C3F2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809C3F8: .4byte gUnknown_83DF0F8 thumb_func_end sub_809C334 thumb_func_start sub_809C3FC sub_809C3FC: @ 809C3FC push {r4-r7,lr} adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 ldr r6, _0809C440 @ =sub_809C334 adds r0, r6, 0 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0809C444 @ =gTasks+0x8 adds r7, r0, r1 adds r0, r7, 0 adds r0, 0x8 adds r1, r7, 0 adds r1, 0xA bl PlayerGetDestCoords movs r0, 0 strh r0, [r7] strh r0, [r7, 0x2] strh r5, [r7, 0x4] adds r0, r4, 0 bl _call_via_r6 adds r0, r4, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809C440: .4byte sub_809C334 _0809C444: .4byte gTasks+0x8 thumb_func_end sub_809C3FC thumb_func_start sub_809C448 sub_809C448: @ 809C448 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_809C3FC ldr r1, _0809C45C @ =gUnknown_2039984 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0809C45C: .4byte gUnknown_2039984 thumb_func_end sub_809C448 thumb_func_start sub_809C460 sub_809C460: @ 809C460 push {lr} ldr r0, _0809C470 @ =gUnknown_2039984 ldrb r0, [r0] bl DestroyTask pop {r0} bx r0 .align 2, 0 _0809C470: .4byte gUnknown_2039984 thumb_func_end sub_809C460 thumb_func_start sub_809C474 sub_809C474: @ 809C474 push {lr} ldr r2, _0809C498 @ =gTasks ldr r0, _0809C49C @ =gUnknown_2039984 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r2 movs r2, 0xE ldrsh r0, [r1, r2] cmp r0, 0 bne _0809C4A0 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x2 bne _0809C4A0 movs r0, 0 b _0809C4A2 .align 2, 0 _0809C498: .4byte gTasks _0809C49C: .4byte gUnknown_2039984 _0809C4A0: movs r0, 0x1 _0809C4A2: pop {r1} bx r1 thumb_func_end sub_809C474 thumb_func_start sub_809C4A8 sub_809C4A8: @ 809C4A8 push {r4,lr} ldr r0, _0809C4E0 @ =sub_809C500 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0809C4E4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] adds r2, 0x8 adds r1, r2 adds r0, r1, 0x4 adds r1, 0x6 bl PlayerGetDestCoords ldr r0, _0809C4E8 @ =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _0809C4EC ldrh r0, [r4, 0xC] adds r0, 0x6 b _0809C4F0 .align 2, 0 _0809C4E0: .4byte sub_809C500 _0809C4E4: .4byte gTasks _0809C4E8: .4byte gSpecialVar_0x8004 _0809C4EC: ldrh r0, [r4, 0xC] subs r0, 0x1 _0809C4F0: strh r0, [r4, 0xC] ldrh r0, [r4, 0xE] subs r0, 0x5 strh r0, [r4, 0xE] pop {r4} pop {r0} bx r0 thumb_func_end sub_809C4A8 thumb_func_start sub_809C500 sub_809C500: @ 809C500 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0809C544 @ =gTasks+0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _0809C588 ldrh r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0809C550 movs r2, 0x4 ldrsh r0, [r4, r2] movs r2, 0x6 ldrsh r1, [r4, r2] ldr r2, _0809C548 @ =0x00000eb5 bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x2 ldr r2, _0809C54C @ =0x00000eb7 bl MapGridSetMetatileIdAt b _0809C56E .align 2, 0 _0809C544: .4byte gTasks+0x8 _0809C548: .4byte 0x00000eb5 _0809C54C: .4byte 0x00000eb7 _0809C550: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] ldr r2, _0809C5EC @ =0x00000eb6 bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x2 ldr r2, _0809C5F0 @ =0x00000eb8 bl MapGridSetMetatileIdAt _0809C56E: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x2 bl CurrentMapDrawMetatileAt _0809C588: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 bne _0809C5E6 movs r0, 0 strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0xD bne _0809C5E6 movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] ldr r2, _0809C5F4 @ =0x00000e8a bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x2 ldr r2, _0809C5F8 @ =0x00000e96 bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x2 bl CurrentMapDrawMetatileAt adds r0, r5, 0 bl DestroyTask _0809C5E6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809C5EC: .4byte 0x00000eb6 _0809C5F0: .4byte 0x00000eb8 _0809C5F4: .4byte 0x00000e8a _0809C5F8: .4byte 0x00000e96 thumb_func_end sub_809C500 thumb_func_start sub_809C5FC sub_809C5FC: @ 809C5FC push {r4,lr} ldr r0, _0809C638 @ =sub_809C640 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0809C63C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] adds r2, 0x8 adds r1, r2 adds r0, r1, 0x4 adds r1, 0x6 bl PlayerGetDestCoords ldrh r0, [r4, 0xC] adds r0, 0x4 strh r0, [r4, 0xC] ldrh r0, [r4, 0xE] subs r0, 0x5 strh r0, [r4, 0xE] pop {r4} pop {r0} bx r0 .align 2, 0 _0809C638: .4byte sub_809C640 _0809C63C: .4byte gTasks thumb_func_end sub_809C5FC thumb_func_start sub_809C640 sub_809C640: @ 809C640 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0809C6A8 @ =gTasks+0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _0809C6F2 movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0 beq _0809C6BA movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] ldr r2, _0809C6AC @ =0x00000e85 bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x1 ldr r2, _0809C6B0 @ =0x00000eb4 bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x1 bl CurrentMapDrawMetatileAt movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0x4 bne _0809C6B4 adds r0, r5, 0 bl DestroyTask b _0809C70A .align 2, 0 _0809C6A8: .4byte gTasks+0x8 _0809C6AC: .4byte 0x00000e85 _0809C6B0: .4byte 0x00000eb4 _0809C6B4: ldrh r0, [r4, 0x4] subs r0, 0x1 strh r0, [r4, 0x4] _0809C6BA: movs r2, 0x4 ldrsh r0, [r4, r2] movs r2, 0x6 ldrsh r1, [r4, r2] ldr r2, _0809C710 @ =0x00000eb9 bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x1 ldr r2, _0809C714 @ =0x00000eba bl MapGridSetMetatileIdAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] adds r1, 0x1 bl CurrentMapDrawMetatileAt _0809C6F2: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _0809C70A movs r0, 0 strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] _0809C70A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809C710: .4byte 0x00000eb9 _0809C714: .4byte 0x00000eba thumb_func_end sub_809C640 .align 2, 0 @ Don't pad with nop.