.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start DoNamingScreen DoNamingScreen: @ 809D954 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r1 lsls r0, 24 lsrs r7, r0, 24 lsls r2, 16 lsrs r5, r2, 16 lsls r3, 16 lsrs r6, r3, 16 ldr r4, _0809D980 @ =gUnknown_203998C movs r0, 0xF2 lsls r0, 5 bl Alloc str r0, [r4] cmp r0, 0 bne _0809D984 ldr r0, [sp, 0x1C] bl SetMainCallback2 b _0809D9BE .align 2, 0 _0809D980: .4byte gUnknown_203998C _0809D984: ldr r1, _0809D9C8 @ =0x00001e2c adds r0, r1 strb r7, [r0] ldr r0, [r4] ldr r2, _0809D9CC @ =0x00001e34 adds r1, r0, r2 strh r5, [r1] adds r2, 0x2 adds r1, r0, r2 strh r6, [r1] ldr r1, _0809D9D0 @ =0x00001e38 adds r2, r0, r1 ldr r1, [sp, 0x18] str r1, [r2] ldr r2, _0809D9D4 @ =0x00001e30 adds r1, r0, r2 mov r2, r8 str r2, [r1] ldr r1, _0809D9D8 @ =0x00001e3c adds r0, r1 ldr r2, [sp, 0x1C] str r2, [r0] cmp r7, 0 bne _0809D9B8 bl StartTimer1 _0809D9B8: ldr r0, _0809D9DC @ =c2_choose_name_or_words_screen bl SetMainCallback2 _0809D9BE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809D9C8: .4byte 0x00001e2c _0809D9CC: .4byte 0x00001e34 _0809D9D0: .4byte 0x00001e38 _0809D9D4: .4byte 0x00001e30 _0809D9D8: .4byte 0x00001e3c _0809D9DC: .4byte c2_choose_name_or_words_screen thumb_func_end DoNamingScreen thumb_func_start c2_choose_name_or_words_screen c2_choose_name_or_words_screen: @ 809D9E0 push {lr} ldr r0, _0809D9FC @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bhi _0809DA78 lsls r0, 2 ldr r1, _0809DA00 @ =_0809DA04 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809D9FC: .4byte gMain _0809DA00: .4byte _0809DA04 .align 2, 0 _0809DA04: .4byte _0809DA24 .4byte _0809DA2E .4byte _0809DA34 .4byte _0809DA3A .4byte _0809DA44 .4byte _0809DA4A .4byte _0809DA50 .4byte _0809DA56 _0809DA24: bl sub_809FB88 bl sub_809DA84 b _0809DA62 _0809DA2E: bl choose_name_or_words_screen_init_bgs b _0809DA62 _0809DA34: bl ResetPaletteFade b _0809DA62 _0809DA3A: bl ResetSpriteData bl FreeAllSpritePalettes b _0809DA62 _0809DA44: bl ResetTasks b _0809DA62 _0809DA4A: bl choose_name_or_words_screen_apply_bg_pals b _0809DA62 _0809DA50: bl choose_name_or_words_screen_load_bg_tile_patterns b _0809DA62 _0809DA56: bl sub_809E898 bl UpdatePaletteFade bl sub_809FC34 _0809DA62: ldr r1, _0809DA74 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0809DA80 .align 2, 0 _0809DA74: .4byte gMain _0809DA78: bl sub_809F8C0 bl sub_809DD60 _0809DA80: pop {r0} bx r0 thumb_func_end c2_choose_name_or_words_screen thumb_func_start sub_809DA84 sub_809DA84: @ 809DA84 push {r4-r6,lr} ldr r4, _0809DB3C @ =gUnknown_203998C ldr r0, [r4] ldr r1, _0809DB40 @ =0x00001e10 adds r0, r1 movs r2, 0 strb r2, [r0] ldr r1, [r4] ldr r3, _0809DB44 @ =0x00001e18 adds r0, r1, r3 movs r5, 0 strh r2, [r0] ldr r6, _0809DB48 @ =0x00001e1a adds r0, r1, r6 strh r2, [r0] ldr r0, _0809DB4C @ =0x00001e1c adds r2, r1, r0 movs r3, 0x1 movs r0, 0x1 strh r0, [r2] adds r6, 0x4 adds r2, r1, r6 movs r0, 0x2 strh r0, [r2] movs r0, 0xF1 lsls r0, 5 adds r1, r0 strb r5, [r1] ldr r0, [r4] ldr r1, _0809DB50 @ =0x00001e21 adds r0, r1 strb r3, [r0] ldr r1, [r4] ldr r5, _0809DB54 @ =0x00001e28 adds r3, r1, r5 ldr r2, _0809DB58 @ =gUnknown_83E248C adds r6, 0xE adds r0, r1, r6 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [r3] ldrb r0, [r0, 0x4] ldr r2, _0809DB5C @ =0x00001e22 adds r1, r2 strb r0, [r1] ldr r2, [r4] adds r0, r2, r5 ldr r0, [r0] ldrb r1, [r0, 0x1] lsls r1, 3 movs r0, 0xF0 subs r0, r1 asrs r0, 1 adds r0, 0x6 ldr r3, _0809DB60 @ =0x00001e16 adds r1, r2, r3 strh r0, [r1] ldr r6, _0809DB64 @ =gKeyRepeatStartDelay ldrh r0, [r6] ldr r1, _0809DB68 @ =0x00001e25 adds r2, r1 strb r0, [r2] ldr r0, [r4] movs r2, 0xC0 lsls r2, 5 adds r0, r2 movs r1, 0xFF movs r2, 0x10 bl memset ldr r1, [r4] adds r5, r1, r5 ldr r0, [r5] ldrb r0, [r0] cmp r0, 0 beq _0809DB30 movs r3, 0xC0 lsls r3, 5 adds r0, r1, r3 ldr r2, _0809DB6C @ =0x00001e30 adds r1, r2 ldr r1, [r1] bl StringCopy _0809DB30: movs r0, 0x10 strh r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809DB3C: .4byte gUnknown_203998C _0809DB40: .4byte 0x00001e10 _0809DB44: .4byte 0x00001e18 _0809DB48: .4byte 0x00001e1a _0809DB4C: .4byte 0x00001e1c _0809DB50: .4byte 0x00001e21 _0809DB54: .4byte 0x00001e28 _0809DB58: .4byte gUnknown_83E248C _0809DB5C: .4byte 0x00001e22 _0809DB60: .4byte 0x00001e16 _0809DB64: .4byte gKeyRepeatStartDelay _0809DB68: .4byte 0x00001e25 _0809DB6C: .4byte 0x00001e30 thumb_func_end sub_809DA84 thumb_func_start sub_809DB70 sub_809DB70: @ 809DB70 push {r4,r5,lr} movs r3, 0 ldr r4, _0809DBAC @ =gSprites movs r5, 0x5 negs r5, r5 _0809DB7A: lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r0, r4 adds r2, r0, 0 adds r2, 0x3E ldrb r1, [r2] lsls r0, r1, 31 cmp r0, 0 beq _0809DB94 adds r0, r5, 0 ands r0, r1 strb r0, [r2] _0809DB94: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3F bls _0809DB7A movs r0, 0 bl sub_809EA0C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809DBAC: .4byte gSprites thumb_func_end sub_809DB70 thumb_func_start choose_name_or_words_screen_init_bgs choose_name_or_words_screen_init_bgs: @ 809DBB0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0xC mov r8, r0 add r2, sp, 0x8 movs r6, 0 ldr r1, _0809DD44 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _0809DD48 @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0809DBD6: 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 _0809DBD6 strh r6, [r2] add r2, sp, 0x8 str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0xC] ldr r2, _0809DD44 @ =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 add r0, sp, 0x8 strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _0809DD4C @ =gUnknown_83E2290 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY bl InitStandardTextBoxWindows bl ResetBg0 _0809DCA4: lsls r0, r4, 3 ldr r1, _0809DD50 @ =gUnknown_83E22A0 adds r0, r1 bl AddWindow ldr r5, _0809DD54 @ =gUnknown_203998C ldr r1, [r5] ldr r2, _0809DD58 @ =0x00001e11 adds r1, r2 adds r1, r4 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0809DCA4 movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r1, 0xC8 lsls r1, 3 movs r0, 0x50 bl SetGpuReg ldr r1, _0809DD5C @ =0x0000080c movs r0, 0x52 bl SetGpuReg ldr r1, [r5] movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r5] movs r0, 0x80 lsls r0, 4 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer ldr r1, [r5] movs r2, 0x80 lsls r2, 5 adds r1, r2 movs r0, 0x3 bl SetBgTilemapBuffer movs r4, 0x20 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 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809DD44: .4byte 0x040000d4 _0809DD48: .4byte 0x81000800 _0809DD4C: .4byte gUnknown_83E2290 _0809DD50: .4byte gUnknown_83E22A0 _0809DD54: .4byte gUnknown_203998C _0809DD58: .4byte 0x00001e11 _0809DD5C: .4byte 0x0000080c thumb_func_end choose_name_or_words_screen_init_bgs thumb_func_start sub_809DD60 sub_809DD60: @ 809DD60 push {lr} ldr r0, _0809DD80 @ =sub_809DD88 movs r1, 0x2 bl CreateTask ldr r0, _0809DD84 @ =sub_809FB70 bl SetMainCallback2 bl sub_812B234 movs r0, 0x3 bl HelpSystem_SetSomeVariable2 pop {r0} bx r0 .align 2, 0 _0809DD80: .4byte sub_809DD88 _0809DD84: .4byte sub_809FB70 thumb_func_end sub_809DD60 thumb_func_start sub_809DD88 sub_809DD88: @ 809DD88 push {lr} ldr r0, _0809DDA4 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809DDA8 @ =0x00001e10 adds r0, r1 ldrb r0, [r0] cmp r0, 0x9 bhi _0809DE1A lsls r0, 2 ldr r1, _0809DDAC @ =_0809DDB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809DDA4: .4byte gUnknown_203998C _0809DDA8: .4byte 0x00001e10 _0809DDAC: .4byte _0809DDB0 .align 2, 0 _0809DDB0: .4byte _0809DDD8 .4byte _0809DDE6 .4byte _0809DDEC .4byte _0809DDF2 .4byte _0809DDF8 .4byte _0809DDFE .4byte _0809DE04 .4byte _0809DE0A .4byte _0809DE10 .4byte _0809DE16 _0809DDD8: bl sub_809DE70 bl sub_809DB70 bl sub_809FB9C b _0809DE1A _0809DDE6: bl sub_809DF28 b _0809DE1A _0809DDEC: bl sub_809DF64 b _0809DE1A _0809DDF2: bl sub_809DF74 b _0809DE1A _0809DDF8: bl sub_809E210 b _0809DE1A _0809DDFE: bl sub_809E250 b _0809DE1A _0809DE04: bl pokemon_store b _0809DE1A _0809DE0A: bl sub_809E1D4 b _0809DE1A _0809DE10: bl sub_809E014 b _0809DE1A _0809DE16: bl sub_809E048 _0809DE1A: pop {r0} bx r0 thumb_func_end sub_809DD88 thumb_func_start sub_809DE20 sub_809DE20: @ 809DE20 lsls r0, 24 lsrs r0, 24 ldr r1, _0809DE2C @ =gUnknown_83E234B adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0809DE2C: .4byte gUnknown_83E234B thumb_func_end sub_809DE20 thumb_func_start sub_809DE30 sub_809DE30: @ 809DE30 ldr r1, _0809DE44 @ =gUnknown_83E234E ldr r0, _0809DE48 @ =gUnknown_203998C ldr r0, [r0] ldr r2, _0809DE4C @ =0x00001e22 adds r0, r2 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0809DE44: .4byte gUnknown_83E234E _0809DE48: .4byte gUnknown_203998C _0809DE4C: .4byte 0x00001e22 thumb_func_end sub_809DE30 thumb_func_start sub_809DE50 sub_809DE50: @ 809DE50 ldr r1, _0809DE64 @ =gUnknown_83E2351 ldr r0, _0809DE68 @ =gUnknown_203998C ldr r0, [r0] ldr r2, _0809DE6C @ =0x00001e22 adds r0, r2 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0809DE64: .4byte gUnknown_83E2351 _0809DE68: .4byte gUnknown_203998C _0809DE6C: .4byte 0x00001e22 thumb_func_end sub_809DE50 thumb_func_start sub_809DE70 sub_809DE70: @ 809DE70 push {r4-r6,lr} sub sp, 0x4 ldr r1, _0809DF08 @ =gUnknown_8E982BC movs r0, 0x3 bl sub_809F900 ldr r5, _0809DF0C @ =gUnknown_203998C ldr r0, [r5] ldr r1, _0809DF10 @ =0x00001e22 adds r0, r1 movs r6, 0 movs r1, 0x1 strb r1, [r0] ldr r1, _0809DF14 @ =gUnknown_8E98458 movs r0, 0x2 bl sub_809F900 ldr r1, _0809DF18 @ =gUnknown_8E98398 movs r0, 0x1 bl sub_809F900 ldr r0, [r5] ldr r1, _0809DF1C @ =0x00001e12 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_809F9E8 ldr r0, [r5] ldr r1, _0809DF20 @ =0x00001e11 adds r0, r1 ldrb r0, [r0] movs r1, 0x1 bl sub_809F9E8 bl sub_809F914 bl sub_809F56C bl sub_809FAE4 movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes str r6, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, [r5] ldr r0, _0809DF24 @ =0x00001e10 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809DF08: .4byte gUnknown_8E982BC _0809DF0C: .4byte gUnknown_203998C _0809DF10: .4byte 0x00001e22 _0809DF14: .4byte gUnknown_8E98458 _0809DF18: .4byte gUnknown_8E98398 _0809DF1C: .4byte 0x00001e12 _0809DF20: .4byte 0x00001e11 _0809DF24: .4byte 0x00001e10 thumb_func_end sub_809DE70 thumb_func_start sub_809DF28 sub_809DF28: @ 809DF28 push {lr} ldr r0, _0809DF58 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0809DF50 movs r0, 0x1 bl SetInputState movs r0, 0x1 bl sub_809EA64 ldr r0, _0809DF5C @ =gUnknown_203998C ldr r1, [r0] ldr r0, _0809DF60 @ =0x00001e10 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0809DF50: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0809DF58: .4byte gPaletteFade _0809DF5C: .4byte gUnknown_203998C _0809DF60: .4byte 0x00001e10 thumb_func_end sub_809DF28 thumb_func_start sub_809DF64 sub_809DF64: @ 809DF64 push {lr} bl sub_809F0CC lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_809DF64 thumb_func_start sub_809DF74 sub_809DF74: @ 809DF74 push {lr} bl sub_809EAD4 lsls r0, 24 cmp r0, 0 beq _0809DF96 movs r0, 0x1 bl SetInputState bl sub_809E9F8 ldr r0, _0809DF9C @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809DFA0 @ =0x00001e10 adds r0, r1 movs r1, 0x2 strb r1, [r0] _0809DF96: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0809DF9C: .4byte gUnknown_203998C _0809DFA0: .4byte 0x00001e10 thumb_func_end sub_809DF74 thumb_func_start pokemon_store pokemon_store: @ 809DFA4 push {r4,lr} bl sub_809F7EC movs r0, 0 bl SetInputState movs r0, 0 bl sub_809EA64 movs r0, 0x3 movs r1, 0 movs r2, 0x1 bl sub_809E518 ldr r4, _0809DFEC @ =gUnknown_203998C ldr r0, [r4] ldr r1, _0809DFF0 @ =0x00001e2c adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _0809DFF8 bl CalculatePlayerPartyCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _0809DFF8 bl pokemon_transfer_to_pc_with_message ldr r0, [r4] ldr r1, _0809DFF4 @ =0x00001e10 adds r0, r1 movs r1, 0x7 strb r1, [r0] movs r0, 0 b _0809E006 .align 2, 0 _0809DFEC: .4byte gUnknown_203998C _0809DFF0: .4byte 0x00001e2c _0809DFF4: .4byte 0x00001e10 _0809DFF8: ldr r0, _0809E00C @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809E010 @ =0x00001e10 adds r0, r1 movs r1, 0x8 strb r1, [r0] movs r0, 0x1 _0809E006: pop {r4} pop {r1} bx r1 .align 2, 0 _0809E00C: .4byte gUnknown_203998C _0809E010: .4byte 0x00001e10 thumb_func_end pokemon_store thumb_func_start sub_809E014 sub_809E014: @ 809E014 push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0809E040 @ =gUnknown_203998C ldr r1, [r0] ldr r0, _0809E044 @ =0x00001e10 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _0809E040: .4byte gUnknown_203998C _0809E044: .4byte 0x00001e10 thumb_func_end sub_809E014 thumb_func_start sub_809E048 sub_809E048: @ 809E048 push {r4,r5,lr} ldr r0, _0809E0A0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0809E096 ldr r4, _0809E0A4 @ =gUnknown_203998C ldr r0, [r4] ldr r1, _0809E0A8 @ =0x00001e2c adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0809E06C bl SeedRngAndSetTrainerId _0809E06C: ldr r0, [r4] ldr r1, _0809E0AC @ =0x00001e3c adds r0, r1 ldr r0, [r0] bl SetMainCallback2 ldr r0, _0809E0B0 @ =sub_809DD88 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask bl FreeAllWindowBuffers ldr r0, [r4] bl Free str r5, [r4] bl sub_812B248 _0809E096: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809E0A0: .4byte gPaletteFade _0809E0A4: .4byte gUnknown_203998C _0809E0A8: .4byte 0x00001e2c _0809E0AC: .4byte 0x00001e3c _0809E0B0: .4byte sub_809DD88 thumb_func_end sub_809E048 thumb_func_start pokemon_transfer_to_pc_with_message pokemon_transfer_to_pc_with_message: @ 809E0B4 push {r4,r5,lr} sub sp, 0x10 movs r5, 0 bl sub_80CC7F8 lsls r0, 24 cmp r0, 0 bne _0809E104 ldr r4, _0809E0F0 @ =gStringVar1 ldr r0, _0809E0F4 @ =0x00004037 bl VarGet lsls r0, 24 lsrs r0, 24 bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r0, _0809E0F8 @ =gStringVar2 ldr r1, _0809E0FC @ =gUnknown_203998C ldr r1, [r1] ldr r2, _0809E100 @ =0x00001e30 adds r1, r2 ldr r1, [r1] bl StringCopy b _0809E144 .align 2, 0 _0809E0F0: .4byte gStringVar1 _0809E0F4: .4byte 0x00004037 _0809E0F8: .4byte gStringVar2 _0809E0FC: .4byte gUnknown_203998C _0809E100: .4byte 0x00001e30 _0809E104: ldr r4, _0809E1AC @ =gStringVar1 ldr r0, _0809E1B0 @ =0x00004037 bl VarGet lsls r0, 24 lsrs r0, 24 bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r0, _0809E1B4 @ =gStringVar2 ldr r1, _0809E1B8 @ =gUnknown_203998C ldr r1, [r1] ldr r2, _0809E1BC @ =0x00001e30 adds r1, r2 ldr r1, [r1] bl StringCopy ldr r4, _0809E1C0 @ =gStringVar3 bl get_unknown_box_id lsls r0, 24 lsrs r0, 24 bl GetBoxNamePtr adds r1, r0, 0 adds r0, r4, 0 bl StringCopy movs r5, 0x2 _0809E144: ldr r0, _0809E1C4 @ =0x00000834 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0809E156 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0809E156: ldr r4, _0809E1C8 @ =gStringVar4 ldr r1, _0809E1CC @ =gUnknown_83E2280 lsls r0, r5, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 bl DrawDialogueFrame ldr r2, _0809E1D0 @ =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] bl GetTextSpeedSetting adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x2 adds r2, r4, 0 bl AddTextPrinterParameterized2 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E1AC: .4byte gStringVar1 _0809E1B0: .4byte 0x00004037 _0809E1B4: .4byte gStringVar2 _0809E1B8: .4byte gUnknown_203998C _0809E1BC: .4byte 0x00001e30 _0809E1C0: .4byte gStringVar3 _0809E1C4: .4byte 0x00000834 _0809E1C8: .4byte gStringVar4 _0809E1CC: .4byte gUnknown_83E2280 _0809E1D0: .4byte gTextFlags thumb_func_end pokemon_transfer_to_pc_with_message thumb_func_start sub_809E1D4 sub_809E1D4: @ 809E1D4 push {lr} bl RunTextPrinters movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _0809E1FE ldr r0, _0809E204 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809E1FE ldr r0, _0809E208 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809E20C @ =0x00001e10 adds r0, r1 movs r1, 0x8 strb r1, [r0] _0809E1FE: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0809E204: .4byte gMain _0809E208: .4byte gUnknown_203998C _0809E20C: .4byte 0x00001e10 thumb_func_end sub_809E1D4 thumb_func_start sub_809E210 sub_809E210: @ 809E210 push {lr} movs r0, 0 bl SetInputState bl sub_809EC20 bl sub_809E30C movs r0, 0x1 bl sub_809EA0C movs r0, 0 movs r1, 0 movs r2, 0x1 bl sub_809E518 movs r0, 0x6 bl PlaySE ldr r0, _0809E248 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809E24C @ =0x00001e10 adds r0, r1 movs r1, 0x5 strb r1, [r0] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0809E248: .4byte gUnknown_203998C _0809E24C: .4byte 0x00001e10 thumb_func_end sub_809E210 thumb_func_start sub_809E250 sub_809E250: @ 809E250 push {r4-r6,lr} sub sp, 0x4 bl sub_809E364 lsls r0, 24 cmp r0, 0 beq _0809E302 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sub_809E9CC bl sub_809EB40 movs r5, 0 mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] lsls r0, 24 lsrs r0, 24 adds r6, r4, 0 cmp r1, r0 bne _0809E282 movs r5, 0x1 _0809E282: ldr r2, _0809E2B8 @ =gUnknown_203998C ldr r0, [r2] ldr r1, _0809E2BC @ =0x00001e10 adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r1, [r2] ldr r3, _0809E2C0 @ =0x00001e22 adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r4, [r2] adds r4, r3 ldrb r0, [r4] movs r1, 0x3 bl __umodsi3 strb r0, [r4] cmp r5, 0 beq _0809E2C4 mov r4, sp bl sub_809EB40 lsls r0, 24 lsrs r0, 24 b _0809E2E2 .align 2, 0 _0809E2B8: .4byte gUnknown_203998C _0809E2BC: .4byte 0x00001e10 _0809E2C0: .4byte 0x00001e22 _0809E2C4: mov r0, sp movs r2, 0 ldrsh r4, [r0, r2] bl sub_809EB40 lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _0809E2E4 mov r4, sp bl sub_809EB40 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 _0809E2E2: strh r0, [r4] _0809E2E4: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r6, r2] bl sub_809E948 bl sub_809FA60 movs r0, 0x1 bl SetInputState movs r0, 0 bl sub_809EA0C _0809E302: movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809E250 thumb_func_start sub_809E30C sub_809E30C: @ 809E30C push {r4,lr} ldr r4, _0809E328 @ =sub_809E32C adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _0809E328: .4byte sub_809E32C thumb_func_end sub_809E30C thumb_func_start sub_809E32C sub_809E32C: @ 809E32C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0809E35C @ =gUnknown_83E2354 ldr r2, _0809E360 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0809E33E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0809E33E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809E35C: .4byte gUnknown_83E2354 _0809E360: .4byte gTasks thumb_func_end sub_809E32C thumb_func_start sub_809E364 sub_809E364: @ 809E364 push {lr} ldr r0, _0809E378 @ =sub_809E32C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0809E37C movs r0, 0 b _0809E37E .align 2, 0 _0809E378: .4byte sub_809E32C _0809E37C: movs r0, 0x1 _0809E37E: pop {r1} bx r1 thumb_func_end sub_809E364 thumb_func_start sub_809E384 sub_809E384: @ 809E384 ldr r1, _0809E3A0 @ =gUnknown_203998C ldr r1, [r1] ldr r3, _0809E3A4 @ =0x00001e18 adds r2, r1, r3 movs r3, 0 strh r3, [r2] ldr r2, _0809E3A8 @ =0x00001e1a adds r1, r2 strh r3, [r1] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] movs r0, 0 bx lr .align 2, 0 _0809E3A0: .4byte gUnknown_203998C _0809E3A4: .4byte 0x00001e18 _0809E3A8: .4byte 0x00001e1a thumb_func_end sub_809E384 thumb_func_start sub_809E3AC sub_809E3AC: @ 809E3AC push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r5, _0809E42C @ =gUnknown_203998C ldr r0, [r5] ldr r2, _0809E430 @ =0x00001e1a adds r1, r0, r2 str r1, [sp] ldr r1, _0809E434 @ =0x00001e18 adds r0, r1 str r0, [sp, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] movs r1, 0x28 bl Sin ldr r1, [r5] movs r2, 0xF1 lsls r2, 5 adds r1, r2 ldrb r1, [r1] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] ldrh r0, [r4, 0xA] adds r0, 0x80 movs r1, 0xFF ands r0, r1 movs r1, 0x28 bl Sin ldr r1, [r5] ldr r2, _0809E438 @ =0x00001e21 adds r1, r2 ldrb r1, [r1] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x3F ble _0809E422 ldr r0, [r5] ldr r1, _0809E43C @ =0x00001e1c adds r2, r0, r1 ldrb r3, [r2] adds r1, 0x2 adds r0, r1 ldrh r1, [r0] strh r1, [r2] strh r3, [r0] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0809E422: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809E42C: .4byte gUnknown_203998C _0809E430: .4byte 0x00001e1a _0809E434: .4byte 0x00001e18 _0809E438: .4byte 0x00001e21 _0809E43C: .4byte 0x00001e1c thumb_func_end sub_809E3AC thumb_func_start sub_809E440 sub_809E440: @ 809E440 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r5, _0809E4C4 @ =gUnknown_203998C ldr r0, [r5] ldr r2, _0809E4C8 @ =0x00001e1a adds r1, r0, r2 str r1, [sp] ldr r3, _0809E4CC @ =0x00001e18 adds r0, r3 str r0, [sp, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x4 strh r0, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] movs r1, 0x28 bl Sin ldr r1, [r5] movs r2, 0xF1 lsls r2, 5 adds r1, r2 ldrb r1, [r1] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] ldrh r0, [r4, 0xA] adds r0, 0x80 movs r1, 0xFF ands r0, r1 movs r1, 0x28 bl Sin ldr r1, [r5] ldr r3, _0809E4D0 @ =0x00001e21 adds r1, r3 ldrb r1, [r1] lsls r1, 2 add r1, sp ldr r1, [r1] strh r0, [r1] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x7F ble _0809E4BA ldr r0, [r5] movs r2, 0xF1 lsls r2, 5 adds r1, r0, r2 ldrb r2, [r1] adds r0, r3 ldrb r0, [r0] strb r0, [r1] ldr r0, [r5] adds r0, r3 strb r2, [r0] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0809E4BA: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809E4C4: .4byte gUnknown_203998C _0809E4C8: .4byte 0x00001e1a _0809E4CC: .4byte 0x00001e18 _0809E4D0: .4byte 0x00001e21 thumb_func_end sub_809E440 thumb_func_start sub_809E4D4 sub_809E4D4: @ 809E4D4 push {lr} ldr r0, _0809E4EC @ =sub_809E32C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 pop {r1} bx r1 .align 2, 0 _0809E4EC: .4byte sub_809E32C thumb_func_end sub_809E4D4 thumb_func_start sub_809E4F0 sub_809E4F0: @ 809E4F0 push {lr} ldr r0, _0809E510 @ =c3_0809E58C movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0809E514 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x3 strh r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0809E510: .4byte c3_0809E58C _0809E514: .4byte gTasks thumb_func_end sub_809E4F0 thumb_func_start sub_809E518 sub_809E518: @ 809E518 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _0809E550 @ =c3_0809E58C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0809E554 @ =gTasks adds r4, r1, r0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r5, r0 bne _0809E558 cmp r6, 0 bne _0809E558 strh r7, [r4, 0xA] movs r0, 0x1 strh r0, [r4, 0xC] b _0809E584 .align 2, 0 _0809E550: .4byte c3_0809E58C _0809E554: .4byte gTasks _0809E558: cmp r5, 0x3 bne _0809E568 movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 bne _0809E568 cmp r6, 0 beq _0809E584 _0809E568: ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x3 beq _0809E57A lsls r0, r1, 24 lsrs r0, 24 bl sub_809E6B8 _0809E57A: adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_809E6E0 _0809E584: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809E518 thumb_func_start c3_0809E58C c3_0809E58C: @ 809E58C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0809E5F4 @ =gTasks adds r4, r1, r0 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x3 beq _0809E63E movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 beq _0809E63E lsls r0, r1, 24 lsrs r0, 24 bl sub_809E644 lsls r0, 16 lsrs r0, 16 ldrb r3, [r4, 0xE] adds r1, r3, 0 adds r2, r3, 0 bl MultiplyInvertedPaletteRGBComponents ldrh r1, [r4, 0x12] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 beq _0809E5D8 subs r0, r1, 0x1 strh r0, [r4, 0x12] lsls r0, 16 cmp r0, 0 bne _0809E63E _0809E5D8: movs r0, 0x2 strh r0, [r4, 0x12] ldrh r1, [r4, 0x10] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r0, 0 blt _0809E602 ldrh r2, [r4, 0xE] movs r3, 0xE ldrsh r0, [r4, r3] cmp r0, 0xD bgt _0809E5F8 adds r0, r2, r1 b _0809E606 .align 2, 0 _0809E5F4: .4byte gTasks _0809E5F8: movs r0, 0x10 strh r0, [r4, 0xE] ldrh r0, [r4, 0x14] adds r0, 0x1 b _0809E60C _0809E602: ldrh r3, [r4, 0xE] adds r0, r1, r3 _0809E606: strh r0, [r4, 0xE] ldrh r2, [r4, 0x14] adds r0, r1, r2 _0809E60C: strh r0, [r4, 0x14] movs r3, 0xE ldrsh r0, [r4, r3] ldrh r1, [r4, 0xE] cmp r0, 0x10 bne _0809E62C movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0x16 bne _0809E62C ldr r0, _0809E628 @ =0x0000fffc strh r0, [r4, 0x10] b _0809E63E .align 2, 0 _0809E628: .4byte 0x0000fffc _0809E62C: lsls r0, r1, 16 asrs r1, r0, 16 cmp r1, 0 bne _0809E63E ldrh r0, [r4, 0xA] strh r0, [r4, 0xC] movs r0, 0x2 strh r0, [r4, 0x10] strh r1, [r4, 0x14] _0809E63E: pop {r4} pop {r0} bx r0 thumb_func_end c3_0809E58C thumb_func_start sub_809E644 sub_809E644: @ 809E644 push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x4 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 movs r1, 0x87 lsls r1, 1 adds r5, r1, 0 adds r0, r5 add r6, sp, 0x8 strh r0, [r6] movs r0, 0x6 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r5 mov r1, sp adds r1, 0xA strh r0, [r1] movs r0, 0x7 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 adds r0, r5 add r1, sp, 0xC strh r0, [r1] movs r0, 0x7 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 20 ldr r1, _0809E6B4 @ =0x00000101 adds r0, r1 mov r1, sp adds r1, 0xE strh r0, [r1] mov r0, sp adds r1, r6, 0 movs r2, 0x8 bl memcpy lsls r4, 1 mov r1, sp adds r0, r1, r4 ldrh r0, [r0] add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809E6B4: .4byte 0x00000101 thumb_func_end sub_809E644 thumb_func_start sub_809E6B8 sub_809E6B8: @ 809E6B8 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_809E644 lsls r0, 16 ldr r2, _0809E6D8 @ =gPlttBufferFaded lsrs r0, 15 adds r2, r0, r2 ldr r1, _0809E6DC @ =gPlttBufferUnfaded adds r0, r1 ldrh r0, [r0] strh r0, [r2] pop {r0} bx r0 .align 2, 0 _0809E6D8: .4byte gPlttBufferFaded _0809E6DC: .4byte gPlttBufferUnfaded thumb_func_end sub_809E6B8 thumb_func_start sub_809E6E0 sub_809E6E0: @ 809E6E0 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 movs r3, 0 strh r1, [r0, 0x8] strh r2, [r0, 0xA] movs r1, 0x1 strh r1, [r0, 0xC] movs r2, 0x4 strh r2, [r0, 0xE] movs r1, 0x2 strh r1, [r0, 0x10] strh r3, [r0, 0x12] strh r2, [r0, 0x14] bx lr thumb_func_end sub_809E6E0 thumb_func_start sub_809E700 sub_809E700: @ 809E700 push {r4-r6,lr} adds r5, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0809E718 adds r0, r5, 0 movs r1, 0 bl StartSpriteAnim _0809E718: ldrh r0, [r5, 0x36] movs r1, 0xFF ands r1, r0 adds r6, r5, 0 adds r6, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r6] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] movs r0, 0x2E ldrsh r4, [r5, r0] bl sub_809EB40 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _0809E74C ldrb r0, [r6] movs r1, 0x4 orrs r0, r1 strb r0, [r6] _0809E74C: ldrb r1, [r6] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0809E77C movs r1, 0x36 ldrsh r0, [r5, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0809E77C movs r2, 0x2E ldrsh r1, [r5, r2] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r1, r0 bne _0809E77C movs r0, 0x30 ldrsh r1, [r5, r0] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r1, r0 beq _0809E786 _0809E77C: movs r0, 0 strh r0, [r5, 0x38] movs r0, 0x2 strh r0, [r5, 0x3A] strh r0, [r5, 0x3C] _0809E786: ldrh r0, [r5, 0x3C] subs r0, 0x1 strh r0, [r5, 0x3C] lsls r0, 16 cmp r0, 0 bne _0809E7AE ldrh r1, [r5, 0x3A] ldrh r2, [r5, 0x38] adds r0, r1, r2 strh r0, [r5, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 beq _0809E7A6 cmp r0, 0 bne _0809E7AA _0809E7A6: negs r0, r1 strh r0, [r5, 0x3A] _0809E7AA: movs r0, 0x2 strh r0, [r5, 0x3C] _0809E7AE: movs r1, 0x36 ldrsh r0, [r5, r1] movs r1, 0xFF lsls r1, 8 ands r0, r1 cmp r0, 0 beq _0809E7E4 ldrh r4, [r5, 0x38] lsls r5, r4, 24 lsrs r5, 24 lsls r4, 16 asrs r4, 17 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 4 ldr r2, _0809E7EC @ =0x01010000 adds r0, r2 lsrs r0, 16 adds r1, r4, 0 adds r2, r5, 0 adds r3, r5, 0 bl MultiplyInvertedPaletteRGBComponents _0809E7E4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809E7EC: .4byte 0x01010000 thumb_func_end sub_809E700 thumb_func_start sub_809E7F0 sub_809E7F0: @ 809E7F0 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _0809E838 @ =gUnknown_83E2364 mov r0, sp movs r2, 0x8 bl memcpy ldrh r1, [r4, 0x2E] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _0809E814 subs r0, r1, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 cmp r0, 0 bne _0809E822 _0809E814: movs r0, 0x8 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x30] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0x30] _0809E822: movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x24] add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0809E838: .4byte gUnknown_83E2364 thumb_func_end sub_809E7F0 thumb_func_start sub_809E83C sub_809E83C: @ 809E83C push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _0809E864 @ =gUnknown_83E236C mov r0, sp movs r2, 0x8 bl memcpy bl sub_809F668 lsls r0, 24 ldrh r1, [r4, 0x2E] lsls r1, 24 cmp r0, r1 beq _0809E868 movs r0, 0 strh r0, [r4, 0x26] strh r0, [r4, 0x30] b _0809E88E .align 2, 0 _0809E864: .4byte gUnknown_83E236C _0809E868: movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 1 add r0, sp ldrh r0, [r0] strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _0809E890 ldrh r0, [r4, 0x30] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0x30] movs r0, 0 _0809E88E: strh r0, [r4, 0x32] _0809E890: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_809E83C thumb_func_start sub_809E898 sub_809E898: @ 809E898 push {lr} bl sub_809E8B4 bl sub_809EB5C bl sub_809EDE8 bl sub_809EE60 bl sub_809EF24 pop {r0} bx r0 thumb_func_end sub_809E898 thumb_func_start sub_809E8B4 sub_809E8B4: @ 809E8B4 push {r4-r6,lr} ldr r0, _0809E938 @ =gUnknown_83E25EC movs r1, 0x26 movs r2, 0x58 movs r3, 0x1 bl CreateSprite ldr r5, _0809E93C @ =gUnknown_203998C ldr r1, [r5] ldr r4, _0809E940 @ =0x00001e23 adds r1, r4 strb r0, [r1] movs r0, 0x1 bl sub_809EA0C ldr r6, _0809E944 @ =gSprites ldr r0, [r5] adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 adds r0, r2, 0 ands r0, r3 movs r3, 0x4 orrs r0, r3 strb r0, [r1, 0x5] ldr r0, [r5] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x1] ands r2, r1 orrs r2, r3 strb r2, [r0, 0x1] ldr r2, [r5] adds r2, r4 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 strh r1, [r0, 0x3A] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 strh r1, [r0, 0x3A] movs r0, 0 movs r1, 0 bl sub_809E948 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809E938: .4byte gUnknown_83E25EC _0809E93C: .4byte gUnknown_203998C _0809E940: .4byte 0x00001e23 _0809E944: .4byte gSprites thumb_func_end sub_809E8B4 thumb_func_start sub_809E948 sub_809E948: @ 809E948 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsls r1, 16 lsrs r7, r1, 16 ldr r1, _0809E994 @ =gUnknown_203998C ldr r1, [r1] ldr r2, _0809E998 @ =0x00001e23 adds r1, r2 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, _0809E99C @ =gSprites adds r5, r1, r2 lsrs r1, r0, 16 mov r8, r1 asrs r6, r0, 16 ldr r4, _0809E9A0 @ =gUnknown_83E2330 bl sub_809DE50 lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] cmp r6, r0 bge _0809E9A8 bl sub_809DE50 ldr r1, _0809E9A4 @ =gUnknown_83E2333 lsls r0, 24 lsrs r0, 21 adds r0, r6, r0 adds r0, r1 ldrb r0, [r0] adds r0, 0x26 b _0809E9AA .align 2, 0 _0809E994: .4byte gUnknown_203998C _0809E998: .4byte 0x00001e23 _0809E99C: .4byte gSprites _0809E9A0: .4byte gUnknown_83E2330 _0809E9A4: .4byte gUnknown_83E2333 _0809E9A8: movs r0, 0 _0809E9AA: strh r0, [r5, 0x20] lsls r0, r7, 16 asrs r0, 12 adds r0, 0x58 strh r0, [r5, 0x22] ldrh r0, [r5, 0x2E] strh r0, [r5, 0x32] ldrh r0, [r5, 0x30] strh r0, [r5, 0x34] mov r2, r8 strh r2, [r5, 0x2E] strh r7, [r5, 0x30] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809E948 thumb_func_start sub_809E9CC sub_809E9CC: @ 809E9CC ldr r2, _0809E9EC @ =gUnknown_203998C ldr r2, [r2] ldr r3, _0809E9F0 @ =0x00001e23 adds r2, r3 ldrb r3, [r2] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 ldr r3, _0809E9F4 @ =gSprites adds r2, r3 ldrh r3, [r2, 0x2E] strh r3, [r0] ldrh r0, [r2, 0x30] strh r0, [r1] bx lr .align 2, 0 _0809E9EC: .4byte gUnknown_203998C _0809E9F0: .4byte 0x00001e23 _0809E9F4: .4byte gSprites thumb_func_end sub_809E9CC thumb_func_start sub_809E9F8 sub_809E9F8: @ 809E9F8 push {lr} bl sub_809EB40 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_809E948 pop {r0} bx r0 thumb_func_end sub_809E9F8 thumb_func_start sub_809EA0C sub_809EA0C: @ 809EA0C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0809EA54 @ =gSprites ldr r1, _0809EA58 @ =gUnknown_203998C ldr r4, [r1] ldr r1, _0809EA5C @ =0x00001e23 adds r4, r1 ldrb r1, [r4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 ldrh r3, [r2, 0x36] ldr r1, _0809EA60 @ =0xffffff00 ands r1, r3 strh r1, [r2, 0x36] ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 ldrh r2, [r1, 0x36] orrs r0, r2 strh r0, [r1, 0x36] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809EA54: .4byte gSprites _0809EA58: .4byte gUnknown_203998C _0809EA5C: .4byte 0x00001e23 _0809EA60: .4byte 0xffffff00 thumb_func_end sub_809EA0C thumb_func_start sub_809EA64 sub_809EA64: @ 809EA64 push {r4,r5,lr} lsls r0, 24 ldr r5, _0809EA9C @ =gSprites ldr r1, _0809EAA0 @ =gUnknown_203998C ldr r4, [r1] ldr r1, _0809EAA4 @ =0x00001e23 adds r4, r1 ldrb r1, [r4] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r5 ldrh r3, [r2, 0x36] movs r1, 0xFF ands r1, r3 strh r1, [r2, 0x36] ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 lsrs r0, 16 ldrh r2, [r1, 0x36] orrs r0, r2 strh r0, [r1, 0x36] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809EA9C: .4byte gSprites _0809EAA0: .4byte gUnknown_203998C _0809EAA4: .4byte 0x00001e23 thumb_func_end sub_809EA64 thumb_func_start sub_809EAA8 sub_809EAA8: @ 809EAA8 push {lr} ldr r0, _0809EAC8 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809EACC @ =0x00001e23 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809EAD0 @ =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _0809EAC8: .4byte gUnknown_203998C _0809EACC: .4byte 0x00001e23 _0809EAD0: .4byte gSprites thumb_func_end sub_809EAA8 thumb_func_start sub_809EAD4 sub_809EAD4: @ 809EAD4 ldr r2, _0809EAF4 @ =gSprites ldr r0, _0809EAF8 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809EAFC @ =0x00001e23 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 lsrs r0, 31 bx lr .align 2, 0 _0809EAF4: .4byte gSprites _0809EAF8: .4byte gUnknown_203998C _0809EAFC: .4byte 0x00001e23 thumb_func_end sub_809EAD4 thumb_func_start sub_809EB00 sub_809EB00: @ 809EB00 push {r4,r5,lr} sub sp, 0x4 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl sub_809E9CC mov r0, sp movs r1, 0 ldrsh r4, [r0, r1] bl sub_809EB40 lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _0809EB34 ldr r0, _0809EB30 @ =gUnknown_83E2374 movs r2, 0 ldrsh r1, [r5, r2] adds r1, r0 ldrb r0, [r1] b _0809EB36 .align 2, 0 _0809EB30: .4byte gUnknown_83E2374 _0809EB34: movs r0, 0 _0809EB36: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809EB00 thumb_func_start sub_809EB40 sub_809EB40: @ 809EB40 push {r4,lr} ldr r4, _0809EB58 @ =gUnknown_83E2330 bl sub_809DE50 lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _0809EB58: .4byte gUnknown_83E2330 thumb_func_end sub_809EB40 thumb_func_start sub_809EB5C sub_809EB5C: @ 809EB5C push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0809EC00 @ =gUnknown_83E2574 movs r1, 0xCC movs r2, 0x58 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, _0809EC04 @ =gUnknown_203998C ldr r1, [r1] ldr r2, _0809EC08 @ =0x00001e24 adds r1, r2 strb r0, [r1] lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r0, _0809EC0C @ =gSprites mov r8, r0 add r5, r8 ldr r1, _0809EC10 @ =gUnknown_83E2504 adds r0, r5, 0 bl SetSubspriteTables adds r1, r5, 0 adds r1, 0x3E ldrb r0, [r1] movs r6, 0x4 orrs r0, r6 strb r0, [r1] ldr r0, _0809EC14 @ =gUnknown_83E25A4 movs r1, 0xCC movs r2, 0x54 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x3A] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r8 ldr r1, _0809EC18 @ =gUnknown_83E250C adds r0, r4, 0 bl SetSubspriteTables adds r4, 0x3E ldrb r0, [r4] orrs r0, r6 strb r0, [r4] ldr r0, _0809EC1C @ =gUnknown_83E258C movs r1, 0xCC movs r2, 0x53 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 add r2, r8 ldrb r3, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r6 strb r1, [r2, 0x5] strh r0, [r5, 0x3C] adds r2, 0x3E ldrb r0, [r2] orrs r0, r6 strb r0, [r2] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EC00: .4byte gUnknown_83E2574 _0809EC04: .4byte gUnknown_203998C _0809EC08: .4byte 0x00001e24 _0809EC0C: .4byte gSprites _0809EC10: .4byte gUnknown_83E2504 _0809EC14: .4byte gUnknown_83E25A4 _0809EC18: .4byte gUnknown_83E250C _0809EC1C: .4byte gUnknown_83E258C thumb_func_end sub_809EB5C thumb_func_start sub_809EC20 sub_809EC20: @ 809EC20 ldr r0, _0809EC44 @ =gUnknown_203998C ldr r2, [r0] ldr r1, _0809EC48 @ =0x00001e24 adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809EC4C @ =gSprites adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x2E] ldr r1, _0809EC50 @ =0x00001e22 adds r2, r1 ldrb r1, [r2] strh r1, [r0, 0x30] bx lr .align 2, 0 _0809EC44: .4byte gUnknown_203998C _0809EC48: .4byte 0x00001e24 _0809EC4C: .4byte gSprites _0809EC50: .4byte 0x00001e22 thumb_func_end sub_809EC20 thumb_func_start sub_809EC54 sub_809EC54: @ 809EC54 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0809EC78 @ =gUnknown_83E2378 _0809EC5A: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0809EC5A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809EC78: .4byte gUnknown_83E2378 thumb_func_end sub_809EC54 thumb_func_start sub_809EC7C sub_809EC7C: @ 809EC7C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x3A ldrsh r0, [r6, r1] lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r1, _0809ECC4 @ =gSprites adds r5, r1 movs r2, 0x3C ldrsh r0, [r6, r2] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r1 ldr r0, _0809ECC8 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809ECCC @ =0x00001e22 adds r0, r1 ldrb r0, [r0] bl sub_809DE20 lsls r0, 24 lsrs r0, 24 adds r1, r5, 0 adds r2, r4, 0 bl sub_809ED88 ldrh r0, [r6, 0x2E] adds r0, 0x1 strh r0, [r6, 0x2E] movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809ECC4: .4byte gSprites _0809ECC8: .4byte gUnknown_203998C _0809ECCC: .4byte 0x00001e22 thumb_func_end sub_809EC7C thumb_func_start sub_809ECD0 sub_809ECD0: @ 809ECD0 movs r0, 0 bx lr thumb_func_end sub_809ECD0 thumb_func_start sub_809ECD4 sub_809ECD4: @ 809ECD4 push {r4,r5,lr} adds r3, r0, 0 movs r0, 0x3A ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r2, _0809ED40 @ =gSprites adds r4, r0, r2 movs r0, 0x3C ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r0, r2 ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0809ED38 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] ldr r0, _0809ED44 @ =0x0000fffc strh r0, [r4, 0x26] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r3, 0x30] lsls r0, 24 lsrs r0, 24 adds r0, 0x1 movs r1, 0x3 bl __modsi3 lsls r0, 24 lsrs r0, 24 bl sub_809DE20 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl sub_809ED88 _0809ED38: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809ED40: .4byte gSprites _0809ED44: .4byte 0x0000fffc thumb_func_end sub_809ECD4 thumb_func_start sub_809ED48 sub_809ED48: @ 809ED48 push {r4,lr} adds r4, r0, 0 movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0809ED84 @ =gSprites adds r2, r0, r1 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] lsls r0, 16 cmp r0, 0 blt _0809ED7C movs r0, 0 strh r0, [r2, 0x26] movs r0, 0x1 strh r0, [r4, 0x2E] _0809ED7C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0809ED84: .4byte gSprites thumb_func_end sub_809ED48 thumb_func_start sub_809ED88 sub_809ED88: @ 809ED88 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r5, 24 lsrs r5, 24 ldr r0, _0809EDE0 @ =gUnknown_83E2388 lsls r4, r5, 1 adds r0, r4, r0 ldrh r0, [r0] bl IndexOfSpritePaletteTag lsls r0, 4 mov r1, r8 ldrb r2, [r1, 0x5] movs r1, 0xF ands r1, r2 orrs r1, r0 mov r0, r8 strb r1, [r0, 0x5] ldr r0, _0809EDE4 @ =gUnknown_83E238E adds r4, r0 ldrh r0, [r4] bl GetSpriteTileStartByTag adds r1, r6, 0 adds r1, 0x40 strh r0, [r1] adds r6, 0x42 movs r1, 0x3F ands r1, r5 ldrb r2, [r6] movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EDE0: .4byte gUnknown_83E2388 _0809EDE4: .4byte gUnknown_83E238E thumb_func_end sub_809ED88 thumb_func_start sub_809EDE8 sub_809EDE8: @ 809EDE8 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, _0809EE50 @ =gUnknown_83E25BC movs r1, 0xCC movs r2, 0x74 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r6, _0809EE54 @ =gSprites adds r4, r6 ldr r0, _0809EE58 @ =gUnknown_83E2524 mov r8, r0 adds r0, r4, 0 mov r1, r8 bl SetSubspriteTables adds r4, 0x3E ldrb r0, [r4] movs r5, 0x4 orrs r0, r5 strb r0, [r4] ldr r0, _0809EE5C @ =gUnknown_83E25D4 movs r1, 0xCC movs r2, 0x8C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r6 adds r0, r4, 0 mov r1, r8 bl SetSubspriteTables adds r4, 0x3E ldrb r0, [r4] orrs r0, r5 strb r0, [r4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EE50: .4byte gUnknown_83E25BC _0809EE54: .4byte gSprites _0809EE58: .4byte gUnknown_83E2524 _0809EE5C: .4byte gUnknown_83E25D4 thumb_func_end sub_809EDE8 thumb_func_start sub_809EE60 sub_809EE60: @ 809EE60 push {r4-r6,lr} ldr r5, _0809EF0C @ =gUnknown_203998C ldr r0, [r5] ldr r4, _0809EF10 @ =0x00001e16 adds r0, r4 ldrh r1, [r0] subs r1, 0x5 ldr r0, _0809EF14 @ =gUnknown_83E2604 lsls r1, 16 asrs r1, 16 movs r2, 0x38 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 ldr r3, _0809EF18 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r5] adds r4, r0, r4 ldrh r1, [r4] movs r5, 0 ldr r2, _0809EF1C @ =0x00001e28 adds r0, r2 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r5, r0 bcs _0809EF04 adds r6, r3, 0 _0809EEB2: lsls r1, 16 asrs r4, r1, 16 movs r0, 0xC0 lsls r0, 10 adds r1, r0 asrs r1, 16 ldr r0, _0809EF20 @ =gUnknown_83E261C movs r2, 0x3C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] strh r5, [r0, 0x2E] adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x8 lsls r4, 16 lsrs r1, r4, 16 ldr r0, _0809EF0C @ =gUnknown_203998C ldr r0, [r0] ldr r2, _0809EF1C @ =0x00001e28 adds r0, r2 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r5, r0 bcc _0809EEB2 _0809EF04: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809EF0C: .4byte gUnknown_203998C _0809EF10: .4byte 0x00001e16 _0809EF14: .4byte gUnknown_83E2604 _0809EF18: .4byte gSprites _0809EF1C: .4byte 0x00001e28 _0809EF20: .4byte gUnknown_83E261C thumb_func_end sub_809EE60 thumb_func_start sub_809EF24 sub_809EF24: @ 809EF24 push {lr} ldr r1, _0809EF44 @ =gUnknown_83E2394 ldr r0, _0809EF48 @ =gUnknown_203998C ldr r0, [r0] ldr r2, _0809EF4C @ =0x00001e28 adds r0, r2 ldr r0, [r0] ldrb r0, [r0, 0x2] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0809EF44: .4byte gUnknown_83E2394 _0809EF48: .4byte gUnknown_203998C _0809EF4C: .4byte 0x00001e28 thumb_func_end sub_809EF24 thumb_func_start nullsub_54 nullsub_54: @ 809EF50 bx lr thumb_func_end nullsub_54 thumb_func_start sub_809EF54 sub_809EF54: @ 809EF54 push {lr} sub sp, 0x4 ldr r0, _0809EFA0 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809EFA4 @ =0x00001e34 adds r0, r1 ldrb r1, [r0] movs r0, 0 bl sub_805C7C8 lsls r0, 24 lsrs r0, 24 ldr r1, _0809EFA8 @ =SpriteCallbackDummy movs r2, 0 str r2, [sp] movs r2, 0x38 movs r3, 0x25 bl AddPseudoEventObject adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, _0809EFAC @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] movs r1, 0x4 bl StartSpriteAnim add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0809EFA0: .4byte gUnknown_203998C _0809EFA4: .4byte 0x00001e34 _0809EFA8: .4byte SpriteCallbackDummy _0809EFAC: .4byte gSprites thumb_func_end sub_809EF54 thumb_func_start sub_809EFB0 sub_809EFB0: @ 809EFB0 push {r4,lr} ldr r0, _0809EFE4 @ =gUnknown_83E2634 movs r1, 0x38 movs r2, 0x29 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0809EFE8 @ =gSprites adds r4, r0 ldr r1, _0809EFEC @ =gUnknown_83E252C adds r0, r4, 0 bl SetSubspriteTables ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] pop {r4} pop {r0} bx r0 .align 2, 0 _0809EFE4: .4byte gUnknown_83E2634 _0809EFE8: .4byte gSprites _0809EFEC: .4byte gUnknown_83E252C thumb_func_end sub_809EFB0 thumb_func_start sub_809EFF0 sub_809EFF0: @ 809EFF0 push {lr} sub sp, 0xC bl sub_809707C ldr r0, _0809F038 @ =gUnknown_203998C ldr r3, [r0] ldr r1, _0809F03C @ =0x00001e34 adds r0, r3, r1 ldrh r0, [r0] ldr r1, _0809F040 @ =SpriteCallbackDummy movs r2, 0 str r2, [sp] ldr r2, _0809F044 @ =0x00001e38 adds r3, r2 ldr r2, [r3] str r2, [sp, 0x4] movs r2, 0x1 str r2, [sp, 0x8] movs r2, 0x38 movs r3, 0x28 bl sub_8096E18 lsls r0, 24 lsrs r0, 24 ldr r2, _0809F048 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r1, 0x5] add sp, 0xC pop {r0} bx r0 .align 2, 0 _0809F038: .4byte gUnknown_203998C _0809F03C: .4byte 0x00001e34 _0809F040: .4byte SpriteCallbackDummy _0809F044: .4byte 0x00001e38 _0809F048: .4byte gSprites thumb_func_end sub_809EFF0 thumb_func_start sub_809F04C sub_809F04C: @ 809F04C push {r4,lr} sub sp, 0x2C ldr r0, _0809F0B8 @ =gUnknown_83E23C0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x1C] str r1, [sp, 0x20] ldr r0, _0809F0BC @ =gUnknown_83E23C8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x24] str r1, [sp, 0x28] ldr r1, _0809F0C0 @ =SpriteCallbackDummy add r3, sp, 0x18 movs r0, 0 mov r2, sp bl sub_805E8E8 mov r2, sp add r0, sp, 0x1C ldrh r1, [r0, 0x6] strh r1, [r2] add r4, sp, 0x24 ldrh r1, [r4, 0x4] strh r1, [r2, 0x2] ldr r1, _0809F0C4 @ =gUnknown_83E23BC str r1, [sp, 0x8] bl LoadSpriteSheet adds r0, r4, 0 bl LoadSpritePalette mov r0, sp movs r1, 0x38 movs r2, 0x25 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0809F0C8 @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r1, 0x5] add sp, 0x2C pop {r4} pop {r0} bx r0 .align 2, 0 _0809F0B8: .4byte gUnknown_83E23C0 _0809F0BC: .4byte gUnknown_83E23C8 _0809F0C0: .4byte SpriteCallbackDummy _0809F0C4: .4byte gUnknown_83E23BC _0809F0C8: .4byte gSprites thumb_func_end sub_809F04C thumb_func_start sub_809F0CC sub_809F0CC: @ 809F0CC push {r4,r5,lr} bl GetInputEvent lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_809EB00 lsls r0, 24 lsrs r0, 24 cmp r4, 0x8 bne _0809F0EA bl sub_809F1F0 b _0809F106 _0809F0EA: cmp r4, 0x6 bne _0809F0F4 bl sub_809F700 b _0809F114 _0809F0F4: cmp r5, 0x9 beq _0809F110 ldr r1, _0809F10C @ =gUnknown_83E23D0 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 _0809F106: lsls r0, 24 lsrs r0, 24 b _0809F116 .align 2, 0 _0809F10C: .4byte gUnknown_83E23D0 _0809F110: bl sub_809E9F8 _0809F114: movs r0, 0 _0809F116: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809F0CC thumb_func_start sub_809F11C sub_809F11C: @ 809F11C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x3 movs r1, 0 movs r2, 0 bl sub_809E518 cmp r4, 0x5 bne _0809F156 bl sub_809F75C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_809EAA8 cmp r4, 0 beq _0809F156 movs r0, 0 bl SetInputState ldr r0, _0809F160 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809F164 @ =0x00001e10 adds r0, r1 movs r1, 0x3 strb r1, [r0] _0809F156: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0809F160: .4byte gUnknown_203998C _0809F164: .4byte 0x00001e10 thumb_func_end sub_809F11C thumb_func_start KeyboardKeyHandler_Page KeyboardKeyHandler_Page: @ 809F168 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_809E518 cmp r4, 0x5 beq _0809F182 movs r0, 0 b _0809F18A _0809F182: bl sub_809F1F0 lsls r0, 24 lsrs r0, 24 _0809F18A: pop {r4} pop {r1} bx r1 thumb_func_end KeyboardKeyHandler_Page thumb_func_start KeyboardKeyHandler_Backspace KeyboardKeyHandler_Backspace: @ 809F190 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_809E518 cmp r4, 0x5 bne _0809F1AA bl sub_809F700 _0809F1AA: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end KeyboardKeyHandler_Backspace thumb_func_start KeyboardKeyHandler_OK KeyboardKeyHandler_OK: @ 809F1B4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x1 movs r2, 0 bl sub_809E518 cmp r4, 0x5 beq _0809F1CE movs r0, 0 b _0809F1E2 _0809F1CE: movs r0, 0x5 bl PlaySE ldr r0, _0809F1E8 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809F1EC @ =0x00001e10 adds r0, r1 movs r1, 0x6 strb r1, [r0] movs r0, 0x1 _0809F1E2: pop {r4} pop {r1} bx r1 .align 2, 0 _0809F1E8: .4byte gUnknown_203998C _0809F1EC: .4byte 0x00001e10 thumb_func_end KeyboardKeyHandler_OK thumb_func_start sub_809F1F0 sub_809F1F0: @ 809F1F0 ldr r0, _0809F200 @ =gUnknown_203998C ldr r0, [r0] ldr r1, _0809F204 @ =0x00001e10 adds r0, r1 movs r1, 0x4 strb r1, [r0] movs r0, 0x1 bx lr .align 2, 0 _0809F200: .4byte gUnknown_203998C _0809F204: .4byte 0x00001e10 thumb_func_end sub_809F1F0 thumb_func_start InputInit InputInit: @ 809F208 push {lr} ldr r0, _0809F218 @ =sub_809F26C movs r1, 0x1 bl CreateTask pop {r0} bx r0 .align 2, 0 _0809F218: .4byte sub_809F26C thumb_func_end InputInit thumb_func_start GetInputEvent GetInputEvent: @ 809F21C push {lr} ldr r0, _0809F238 @ =sub_809F26C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _0809F23C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0xA] pop {r1} bx r1 .align 2, 0 _0809F238: .4byte sub_809F26C _0809F23C: .4byte gTasks thumb_func_end GetInputEvent thumb_func_start SetInputState SetInputState: @ 809F240 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0809F264 @ =sub_809F26C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _0809F268 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .align 2, 0 _0809F264: .4byte sub_809F26C _0809F268: .4byte gTasks thumb_func_end SetInputState thumb_func_start sub_809F26C sub_809F26C: @ 809F26C push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r3, _0809F294 @ =gUnknown_83E23E0 ldr r2, _0809F298 @ =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r1, [r0, r2] lsls r1, 2 adds r1, r3 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _0809F294: .4byte gUnknown_83E23E0 _0809F298: .4byte gTasks thumb_func_end sub_809F26C thumb_func_start InputState_Disabled InputState_Disabled: @ 809F29C movs r1, 0 strh r1, [r0, 0xA] bx lr thumb_func_end InputState_Disabled thumb_func_start InputState_Enabled InputState_Enabled: @ 809F2A4 push {lr} adds r2, r0, 0 movs r0, 0 strh r0, [r2, 0xA] ldr r0, _0809F2C0 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809F2C4 movs r0, 0x5 strh r0, [r2, 0xA] b _0809F2F4 .align 2, 0 _0809F2C0: .4byte gMain _0809F2C4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809F2D2 movs r0, 0x6 strh r0, [r2, 0xA] b _0809F2F4 _0809F2D2: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809F2E0 movs r0, 0x8 strh r0, [r2, 0xA] b _0809F2F4 _0809F2E0: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0809F2EE movs r0, 0x9 strh r0, [r2, 0xA] b _0809F2F4 _0809F2EE: adds r0, r2, 0 bl sub_809F2F8 _0809F2F4: pop {r0} bx r0 thumb_func_end InputState_Enabled thumb_func_start sub_809F2F8 sub_809F2F8: @ 809F2F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 mov r9, r0 ldr r1, _0809F3E4 @ =gUnknown_83E23E8 mov r0, sp movs r2, 0xA bl memcpy add r0, sp, 0xC mov r10, r0 ldr r1, _0809F3E8 @ =gUnknown_83E23F2 movs r2, 0xA bl memcpy mov r1, sp adds r1, 0x18 str r1, [sp, 0x2C] ldr r1, _0809F3EC @ =gUnknown_83E23FC ldr r0, [sp, 0x2C] movs r2, 0x8 bl memcpy mov r2, sp adds r2, 0x20 str r2, [sp, 0x30] ldr r1, _0809F3F0 @ =gUnknown_83E2404 adds r0, r2, 0 movs r2, 0x6 bl memcpy add r4, sp, 0x28 mov r5, sp adds r5, 0x2A adds r0, r4, 0 adds r1, r5, 0 bl sub_809E9CC ldr r0, _0809F3F4 @ =gMain ldrh r2, [r0, 0x30] movs r0, 0x40 ands r0, r2 lsls r0, 16 lsrs r0, 16 negs r0, r0 lsrs r1, r0, 31 movs r0, 0x80 ands r0, r2 adds r6, r4, 0 cmp r0, 0 beq _0809F366 movs r1, 0x2 _0809F366: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _0809F370 movs r1, 0x3 _0809F370: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _0809F37A movs r1, 0x4 _0809F37A: ldrh r0, [r6] mov r8, r0 lsls r1, 1 mov r2, sp adds r7, r2, r1 ldrh r0, [r7] add r0, r8 strh r0, [r6] add r1, r10 ldrh r0, [r1] ldrh r1, [r5] adds r0, r1 strh r0, [r5] movs r2, 0 ldrsh r0, [r6, r2] cmp r0, 0 bge _0809F3A6 bl sub_809EB40 lsls r0, 24 lsrs r0, 24 strh r0, [r6] _0809F3A6: movs r0, 0 ldrsh r4, [r6, r0] bl sub_809EB40 lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _0809F3BA movs r0, 0 strh r0, [r6] _0809F3BA: movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0 beq _0809F426 movs r2, 0 ldrsh r4, [r6, r2] bl sub_809EB40 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _0809F3F8 ldrh r0, [r5] mov r1, r9 strh r0, [r1, 0xC] movs r2, 0 ldrsh r0, [r5, r2] lsls r0, 1 ldr r1, [sp, 0x2C] adds r0, r1, r0 b _0809F422 .align 2, 0 _0809F3E4: .4byte gUnknown_83E23E8 _0809F3E8: .4byte gUnknown_83E23F2 _0809F3EC: .4byte gUnknown_83E23FC _0809F3F0: .4byte gUnknown_83E2404 _0809F3F4: .4byte gMain _0809F3F8: mov r2, r8 lsls r4, r2, 16 asrs r4, 16 bl sub_809EB40 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _0809F426 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _0809F418 mov r2, r9 ldrh r0, [r2, 0xC] b _0809F424 _0809F418: movs r1, 0 ldrsh r0, [r5, r1] lsls r0, 1 ldr r2, [sp, 0x30] adds r0, r2, r0 _0809F422: ldrh r0, [r0] _0809F424: strh r0, [r5] _0809F426: movs r0, 0 ldrsh r4, [r6, r0] bl sub_809EB40 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _0809F468 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bge _0809F442 movs r0, 0x2 strh r0, [r5] _0809F442: movs r2, 0 ldrsh r0, [r5, r2] cmp r0, 0x2 ble _0809F44E movs r0, 0 strh r0, [r5] _0809F44E: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bne _0809F45E movs r0, 0x1 mov r2, r9 strh r0, [r2, 0xC] b _0809F480 _0809F45E: cmp r0, 0x2 bne _0809F480 mov r1, r9 strh r0, [r1, 0xC] b _0809F480 _0809F468: movs r2, 0 ldrsh r0, [r5, r2] cmp r0, 0 bge _0809F474 movs r0, 0x3 strh r0, [r5] _0809F474: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x3 ble _0809F480 movs r0, 0 strh r0, [r5] _0809F480: movs r2, 0 ldrsh r0, [r6, r2] movs r2, 0 ldrsh r1, [r5, r2] bl sub_809E948 add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_809F2F8 thumb_func_start sub_809F49C sub_809F49C: @ 809F49C push {r4,r5,lr} sub sp, 0xC ldr r5, _0809F4E4 @ =gUnknown_203998C ldr r0, [r5] ldr r4, _0809F4E8 @ =0x00001e14 adds r0, r4 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r1, [r5] adds r0, r1, r4 ldrb r0, [r0] ldr r2, _0809F4EC @ =0x00001e28 adds r1, r2 ldr r1, [r1] ldr r2, [r1, 0x8] movs r1, 0x1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x1 bl AddTextPrinterParameterized ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809F4E4: .4byte gUnknown_203998C _0809F4E8: .4byte 0x00001e14 _0809F4EC: .4byte 0x00001e28 thumb_func_end sub_809F49C thumb_func_start sub_809F4F0 sub_809F4F0: @ 809F4F0 push {r4,r5,lr} sub sp, 0x2C ldr r5, _0809F558 @ =gUnknown_203998C ldr r0, [r5] ldr r1, _0809F55C @ =0x00001e34 adds r0, r1 ldrh r1, [r0] movs r0, 0xB muls r1, r0 ldr r0, _0809F560 @ =gSpeciesNames adds r1, r0 add r0, sp, 0xC bl StringCopy ldr r0, [r5] ldr r1, _0809F564 @ =0x00001e28 adds r0, r1 ldr r0, [r0] ldr r1, [r0, 0x8] add r0, sp, 0xC movs r2, 0xF bl StringAppendN ldr r0, [r5] ldr r4, _0809F568 @ =0x00001e14 adds r0, r4 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC movs r3, 0x1 bl AddTextPrinterParameterized ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap add sp, 0x2C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809F558: .4byte gUnknown_203998C _0809F55C: .4byte 0x00001e34 _0809F560: .4byte gSpeciesNames _0809F564: .4byte 0x00001e28 _0809F568: .4byte 0x00001e14 thumb_func_end sub_809F4F0 thumb_func_start sub_809F56C sub_809F56C: @ 809F56C push {lr} ldr r1, _0809F588 @ =gUnknown_83E240C ldr r0, _0809F58C @ =gUnknown_203998C ldr r0, [r0] ldr r2, _0809F590 @ =0x00001e2c adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0809F588: .4byte gUnknown_83E240C _0809F58C: .4byte gUnknown_203998C _0809F590: .4byte 0x00001e2c thumb_func_end sub_809F56C thumb_func_start sub_809F594 sub_809F594: @ 809F594 push {lr} ldr r1, _0809F5B4 @ =gUnknown_83E2420 ldr r0, _0809F5B8 @ =gUnknown_203998C ldr r0, [r0] ldr r2, _0809F5BC @ =0x00001e28 adds r0, r2 ldr r0, [r0] ldrb r0, [r0, 0x3] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .align 2, 0 _0809F5B4: .4byte gUnknown_83E2420 _0809F5B8: .4byte gUnknown_203998C _0809F5BC: .4byte 0x00001e28 thumb_func_end sub_809F594 thumb_func_start nullsub_55 nullsub_55: @ 809F5C0 bx lr thumb_func_end nullsub_55 thumb_func_start sub_809F5C4 sub_809F5C4: @ 809F5C4 push {r4,r5,lr} sub sp, 0x10 movs r4, 0 ldr r1, _0809F61C @ =gUnknown_841621F add r0, sp, 0xC bl StringCopy ldr r5, _0809F620 @ =gUnknown_203998C ldr r0, [r5] ldr r1, _0809F624 @ =0x00001e36 adds r0, r1 ldrh r0, [r0] cmp r0, 0xFF beq _0809F614 cmp r0, 0xFE bne _0809F5EE ldr r1, _0809F628 @ =gUnknown_8416221 add r0, sp, 0xC bl StringCopy movs r4, 0x1 _0809F5EE: ldr r0, [r5] ldr r1, _0809F62C @ =0x00001e13 adds r0, r1 ldrb r0, [r0] lsls r1, r4, 1 adds r1, r4 ldr r2, _0809F630 @ =gUnknown_83E2428 adds r1, r2 str r1, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] add r1, sp, 0xC str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0x68 movs r3, 0x1 bl AddTextPrinterParameterized3 _0809F614: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809F61C: .4byte gUnknown_841621F _0809F620: .4byte gUnknown_203998C _0809F624: .4byte 0x00001e36 _0809F628: .4byte gUnknown_8416221 _0809F62C: .4byte 0x00001e13 _0809F630: .4byte gUnknown_83E2428 thumb_func_end sub_809F5C4 thumb_func_start sub_809F634 sub_809F634: @ 809F634 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r6, _0809F664 @ =gUnknown_83E22D0 bl sub_809DE50 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 13 adds r4, r5 lsls r0, 24 lsrs r0, 19 adds r4, r0 adds r4, r6 ldrb r0, [r4] pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809F664: .4byte gUnknown_83E22D0 thumb_func_end sub_809F634 thumb_func_start sub_809F668 sub_809F668: @ 809F668 push {r4,r5,lr} movs r2, 0 ldr r0, _0809F690 @ =gUnknown_203998C ldr r4, [r0] ldr r3, _0809F694 @ =0x00001e28 adds r1, r4, r3 ldr r1, [r1] ldrb r3, [r1, 0x1] adds r5, r0, 0 cmp r2, r3 bcs _0809F6A2 movs r0, 0xC0 lsls r0, 5 adds r1, r4, r0 _0809F684: adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xFF bne _0809F698 adds r0, r2, 0 b _0809F6B2 .align 2, 0 _0809F690: .4byte gUnknown_203998C _0809F694: .4byte 0x00001e28 _0809F698: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r3 bcc _0809F684 _0809F6A2: ldr r0, [r5] ldr r1, _0809F6B8 @ =0x00001e28 adds r0, r1 ldr r0, [r0] ldrb r0, [r0, 0x1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 _0809F6B2: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809F6B8: .4byte 0x00001e28 thumb_func_end sub_809F668 thumb_func_start sub_809F6BC sub_809F6BC: @ 809F6BC push {lr} ldr r0, _0809F6E8 @ =gUnknown_203998C ldr r2, [r0] ldr r1, _0809F6EC @ =0x00001e28 adds r0, r2, r1 ldr r0, [r0] ldrb r0, [r0, 0x1] subs r0, 0x1 lsls r1, r0, 24 cmp r1, 0 ble _0809F6F8 movs r0, 0xC0 lsls r0, 5 adds r3, r2, r0 _0809F6D8: asrs r2, r1, 24 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0xFF beq _0809F6F0 lsrs r0, r1, 24 b _0809F6FA .align 2, 0 _0809F6E8: .4byte gUnknown_203998C _0809F6EC: .4byte 0x00001e28 _0809F6F0: subs r0, r2, 0x1 lsls r1, r0, 24 cmp r1, 0 bgt _0809F6D8 _0809F6F8: movs r0, 0 _0809F6FA: pop {r1} bx r1 thumb_func_end sub_809F6BC thumb_func_start sub_809F700 sub_809F700: @ 809F700 push {r4-r6,lr} bl sub_809F6BC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r6, _0809F758 @ =gUnknown_203998C ldr r0, [r6] movs r5, 0xC0 lsls r5, 5 adds r0, r5 adds r0, r4 movs r1, 0 strb r1, [r0] bl sub_809F914 movs r0, 0x3 bl CopyBgTilemapBufferToVram ldr r0, [r6] adds r0, r5 adds r0, r4 movs r1, 0xFF strb r1, [r0] bl sub_809EB00 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0809F740 cmp r0, 0x2 bne _0809F74A _0809F740: movs r0, 0x1 movs r1, 0 movs r2, 0x1 bl sub_809E518 _0809F74A: movs r0, 0x17 bl PlaySE pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F758: .4byte gUnknown_203998C thumb_func_end sub_809F700 thumb_func_start sub_809F75C sub_809F75C: @ 809F75C push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sub_809E9CC mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl sub_809F634 lsls r0, 24 lsrs r0, 24 bl sub_809F7C4 bl sub_809F914 movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0x5 bl PlaySE bl sub_809F6BC lsls r0, 24 lsrs r0, 24 ldr r1, _0809F7B0 @ =gUnknown_203998C ldr r1, [r1] ldr r2, _0809F7B4 @ =0x00001e28 adds r1, r2 ldr r1, [r1] ldrb r1, [r1, 0x1] subs r1, 0x1 cmp r0, r1 bne _0809F7B8 movs r0, 0x1 b _0809F7BA .align 2, 0 _0809F7B0: .4byte gUnknown_203998C _0809F7B4: .4byte 0x00001e28 _0809F7B8: movs r0, 0 _0809F7BA: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_809F75C thumb_func_start sub_809F7C4 sub_809F7C4: @ 809F7C4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_809F668 lsls r0, 24 lsrs r0, 24 ldr r1, _0809F7E8 @ =gUnknown_203998C ldr r1, [r1] movs r2, 0xC0 lsls r2, 5 adds r1, r2 adds r1, r0 strb r4, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _0809F7E8: .4byte gUnknown_203998C thumb_func_end sub_809F7C4 thumb_func_start sub_809F7EC sub_809F7EC: @ 809F7EC push {r4,r5,lr} movs r2, 0 ldr r1, _0809F800 @ =gUnknown_203998C ldr r0, [r1] ldr r4, _0809F804 @ =0x00001e28 adds r0, r4 ldr r0, [r0] adds r5, r1, 0 b _0809F84C .align 2, 0 _0809F800: .4byte gUnknown_203998C _0809F804: .4byte 0x00001e28 _0809F808: ldr r1, [r1] movs r0, 0xC0 lsls r0, 5 adds r3, r1, r0 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0 beq _0809F83C cmp r0, 0xFF beq _0809F83C ldr r2, _0809F838 @ =0x00001e30 adds r0, r1, r2 ldr r0, [r0] adds r1, r4 ldr r1, [r1] ldrb r2, [r1, 0x1] adds r2, 0x1 lsls r2, 24 lsrs r2, 24 adds r1, r3, 0 bl StringCopyN b _0809F852 .align 2, 0 _0809F838: .4byte 0x00001e30 _0809F83C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r1, r5, 0 ldr r0, [r1] ldr r4, _0809F858 @ =0x00001e28 adds r0, r4 ldr r0, [r0] _0809F84C: ldrb r0, [r0, 0x1] cmp r2, r0 bcc _0809F808 _0809F852: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809F858: .4byte 0x00001e28 thumb_func_end sub_809F7EC thumb_func_start choose_name_or_words_screen_load_bg_tile_patterns choose_name_or_words_screen_load_bg_tile_patterns: @ 809F85C push {r4-r6,lr} ldr r0, _0809F8AC @ =gUnknown_8E980E4 ldr r6, _0809F8B0 @ =gUnknown_203998C ldr r1, [r6] ldr r4, _0809F8B4 @ =0x00001810 adds r1, r4 bl LZ77UnCompWram ldr r1, [r6] adds r1, r4 movs r5, 0xC0 lsls r5, 3 movs r0, 0x1 adds r2, r5, 0 movs r3, 0 bl LoadBgTiles ldr r1, [r6] adds r1, r4 movs r0, 0x2 adds r2, r5, 0 movs r3, 0 bl LoadBgTiles ldr r1, [r6] adds r1, r4 movs r0, 0x3 adds r2, r5, 0 movs r3, 0 bl LoadBgTiles ldr r0, _0809F8B8 @ =gUnknown_83E267C bl LoadSpriteSheets ldr r0, _0809F8BC @ =gUnknown_83E26E4 bl LoadSpritePalettes pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809F8AC: .4byte gUnknown_8E980E4 _0809F8B0: .4byte gUnknown_203998C _0809F8B4: .4byte 0x00001810 _0809F8B8: .4byte gUnknown_83E267C _0809F8BC: .4byte gUnknown_83E26E4 thumb_func_end choose_name_or_words_screen_load_bg_tile_patterns thumb_func_start sub_809F8C0 sub_809F8C0: @ 809F8C0 push {lr} bl InputInit bl sub_809E4F0 pop {r0} bx r0 thumb_func_end sub_809F8C0 thumb_func_start choose_name_or_words_screen_apply_bg_pals choose_name_or_words_screen_apply_bg_pals: @ 809F8D0 push {lr} ldr r0, _0809F8F8 @ =gUnknown_8E98024 movs r1, 0 movs r2, 0xC0 bl LoadPalette ldr r0, _0809F8FC @ =gUnknown_8E97FE4 movs r1, 0xA0 movs r2, 0x20 bl LoadPalette movs r0, 0x2 bl stdpal_get movs r1, 0xB0 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .align 2, 0 _0809F8F8: .4byte gUnknown_8E98024 _0809F8FC: .4byte gUnknown_8E97FE4 thumb_func_end choose_name_or_words_screen_apply_bg_pals thumb_func_start sub_809F900 sub_809F900: @ 809F900 push {lr} lsls r0, 24 lsrs r0, 24 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer pop {r0} bx r0 thumb_func_end sub_809F900 thumb_func_start sub_809F914 sub_809F914: @ 809F914 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r7, _0809F9D8 @ =gUnknown_203998C ldr r1, [r7] ldr r2, _0809F9DC @ =0x00001e28 adds r0, r1, r2 ldr r0, [r0] ldrb r6, [r0, 0x1] subs r2, 0x12 adds r0, r1, r2 ldrh r0, [r0] subs r0, 0x40 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, _0809F9E0 @ =0x00001e13 adds r1, r0 ldrb r0, [r1] movs r1, 0x11 bl FillWindowPixelBuffer movs r4, 0 cmp r4, r6 bcs _0809F9AA add r5, sp, 0xC mov r10, r4 ldr r0, _0809F9E4 @ =gExpandedPlaceholder_Empty ldrb r0, [r0] mov r8, r0 _0809F956: ldr r0, [r7] movs r1, 0xC0 lsls r1, 5 adds r0, r1 adds r0, r4 ldrb r0, [r0] strb r0, [r5] mov r2, r8 strb r2, [r5, 0x1] ldrb r0, [r5] bl sub_809FC54 lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r0, 0x1 bne _0809F97A movs r1, 0x2 _0809F97A: ldr r0, [r7] ldr r2, _0809F9E0 @ =0x00001e13 adds r0, r2 ldrb r0, [r0] lsls r3, r4, 3 add r3, r9 adds r3, r1 lsls r3, 24 lsrs r3, 24 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] movs r1, 0x2 add r2, sp, 0xC bl AddTextPrinterParameterized adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _0809F956 _0809F9AA: bl sub_809F594 ldr r5, _0809F9D8 @ =gUnknown_203998C ldr r0, [r5] ldr r4, _0809F9E0 @ =0x00001e13 adds r0, r4 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809F9D8: .4byte gUnknown_203998C _0809F9DC: .4byte 0x00001e28 _0809F9E0: .4byte 0x00001e13 _0809F9E4: .4byte gExpandedPlaceholder_Empty thumb_func_end sub_809F914 thumb_func_start sub_809F9E8 sub_809F9E8: @ 809F9E8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _0809FA54 @ =gUnknown_83E243C adds r0, r5, r0 ldrb r1, [r0] adds r0, r6, 0 bl FillWindowPixelBuffer movs r4, 0 ldr r1, _0809FA58 @ =gUnknown_83E2440 lsls r0, r5, 2 adds r0, r1 ldr r7, [r0] ldr r0, _0809FA5C @ =gUnknown_83E264C mov r8, r0 _0809FA12: lsls r3, r4, 4 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 str r7, [sp] movs r0, 0 str r0, [sp, 0x4] lsls r0, r4, 2 lsls r1, r5, 4 adds r0, r1 add r0, r8 ldr r0, [r0] str r0, [sp, 0x8] adds r0, r6, 0 movs r1, 0x1 movs r2, 0 bl AddTextPrinterParameterized3 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0809FA12 adds r0, r6, 0 bl PutWindowTilemap add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809FA54: .4byte gUnknown_83E243C _0809FA58: .4byte gUnknown_83E2440 _0809FA5C: .4byte gUnknown_83E264C thumb_func_end sub_809F9E8 thumb_func_start sub_809FA60 sub_809FA60: @ 809FA60 push {r4,r5,lr} movs r0, 0xA bl GetGpuReg adds r4, r0, 0 movs r5, 0x3 ands r4, r5 movs r0, 0xC bl GetGpuReg ands r0, r5 cmp r4, r0 bls _0809FA90 movs r2, 0x1 movs r5, 0x1 ldr r1, _0809FA88 @ =gUnknown_203998C ldr r0, [r1] ldr r3, _0809FA8C @ =0x00001e11 b _0809FA9A .align 2, 0 _0809FA88: .4byte gUnknown_203998C _0809FA8C: .4byte 0x00001e11 _0809FA90: movs r2, 0x2 movs r5, 0x2 ldr r1, _0809FAD4 @ =gUnknown_203998C ldr r0, [r1] ldr r3, _0809FAD8 @ =0x00001e12 _0809FA9A: adds r0, r3 ldrb r4, [r0] adds r0, r1, 0 ldr r1, _0809FADC @ =gUnknown_83E244C ldr r0, [r0] ldr r3, _0809FAE0 @ =0x00001e22 adds r0, r3 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl sub_809F900 bl sub_809DE30 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_809F9E8 adds r0, r5, 0 bl CopyBgTilemapBufferToVram pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809FAD4: .4byte gUnknown_203998C _0809FAD8: .4byte 0x00001e12 _0809FADC: .4byte gUnknown_83E244C _0809FAE0: .4byte 0x00001e22 thumb_func_end sub_809FA60 thumb_func_start sub_809FAE4 sub_809FAE4: @ 809FAE4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x10 ldr r1, _0809FB60 @ =gUnknown_83E2458 add r0, sp, 0xC movs r2, 0x3 bl memcpy ldr r0, _0809FB64 @ =gUnknown_8418E77 mov r8, r0 movs r0, 0 mov r1, r8 movs r2, 0 bl GetStringWidth adds r6, r0, 0 ldr r5, _0809FB68 @ =gUnknown_203998C ldr r0, [r5] ldr r4, _0809FB6C @ =0x00001e15 adds r0, r4 ldrb r0, [r0] movs r1, 0xFF bl FillWindowPixelBuffer ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x14 negs r1, r1 adds r2, r1, 0 subs r2, r6 lsls r2, 24 lsrs r2, 24 add r1, sp, 0xC str r1, [sp] movs r1, 0 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0 movs r3, 0 bl AddTextPrinterParameterized3 ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809FB60: .4byte gUnknown_83E2458 _0809FB64: .4byte gUnknown_8418E77 _0809FB68: .4byte gUnknown_203998C _0809FB6C: .4byte 0x00001e15 thumb_func_end sub_809FAE4 thumb_func_start sub_809FB70 sub_809FB70: @ 809FB70 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_809FB70 thumb_func_start sub_809FB88 sub_809FB88: @ 809FB88 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback pop {r0} bx r0 thumb_func_end sub_809FB88 thumb_func_start sub_809FB9C sub_809FB9C: @ 809FB9C push {lr} ldr r0, _0809FBA8 @ =sub_809FBAC bl SetVBlankCallback pop {r0} bx r0 .align 2, 0 _0809FBA8: .4byte sub_809FBAC thumb_func_end sub_809FB9C thumb_func_start sub_809FBAC sub_809FBAC: @ 809FBAC push {r4,r5,lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r5, _0809FC1C @ =gUnknown_203998C ldr r0, [r5] ldr r1, _0809FC20 @ =0x00001e18 adds r0, r1 ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg ldr r0, [r5] ldr r1, _0809FC24 @ =0x00001e1a adds r0, r1 ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg movs r0, 0xA bl GetGpuReg ldr r4, _0809FC28 @ =0x0000fffc adds r1, r4, 0 ands r1, r0 movs r0, 0xA bl SetGpuReg ldr r0, [r5] ldr r1, _0809FC2C @ =0x00001e1c adds r0, r1 ldrh r1, [r0] movs r0, 0xA bl SetGpuRegBits movs r0, 0xC bl GetGpuReg ands r4, r0 movs r0, 0xC adds r1, r4, 0 bl SetGpuReg ldr r0, [r5] ldr r1, _0809FC30 @ =0x00001e1e adds r0, r1 ldrh r1, [r0] movs r0, 0xC bl SetGpuRegBits pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809FC1C: .4byte gUnknown_203998C _0809FC20: .4byte 0x00001e18 _0809FC24: .4byte 0x00001e1a _0809FC28: .4byte 0x0000fffc _0809FC2C: .4byte 0x00001e1c _0809FC30: .4byte 0x00001e1e thumb_func_end sub_809FBAC thumb_func_start sub_809FC34 sub_809FC34: @ 809FC34 push {lr} movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg pop {r0} bx r0 thumb_func_end sub_809FC34 thumb_func_start sub_809FC54 sub_809FC54: @ 809FC54 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r2, 0 ldr r0, _0809FC74 @ =gUnknown_8418E8A ldrb r1, [r0] adds r3, r0, 0 cmp r1, 0xFF beq _0809FC86 adds r1, r3, 0 _0809FC68: adds r0, r2, r1 ldrb r0, [r0] cmp r4, r0 bne _0809FC78 movs r0, 0x1 b _0809FC88 .align 2, 0 _0809FC74: .4byte gUnknown_8418E8A _0809FC78: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0xFF bne _0809FC68 _0809FC86: movs r0, 0 _0809FC88: pop {r4} pop {r1} bx r1 thumb_func_end sub_809FC54 thumb_func_start sub_809FC90 sub_809FC90: @ 809FC90 push {lr} sub sp, 0x8 ldr r0, _0809FCB0 @ =gSaveBlock2Ptr ldr r1, [r0] ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] ldr r0, _0809FCB4 @ =sub_80568A8 str r0, [sp, 0x4] movs r0, 0 movs r3, 0 bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0809FCB0: .4byte gSaveBlock2Ptr _0809FCB4: .4byte sub_80568A8 thumb_func_end sub_809FC90 thumb_func_start sub_809FCB8 sub_809FCB8: @ 809FCB8 push {lr} sub sp, 0x8 ldr r0, _0809FCD8 @ =gSaveBlock2Ptr ldr r1, [r0] ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] ldr r0, _0809FCDC @ =sub_80568A8 str r0, [sp, 0x4] movs r0, 0x1 movs r3, 0 bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0809FCD8: .4byte gSaveBlock2Ptr _0809FCDC: .4byte sub_80568A8 thumb_func_end sub_809FCB8 thumb_func_start sub_809FCE0 sub_809FCE0: @ 809FCE0 push {lr} sub sp, 0x8 ldr r0, _0809FD00 @ =gSaveBlock2Ptr ldr r1, [r0] ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] ldr r0, _0809FD04 @ =sub_80568A8 str r0, [sp, 0x4] movs r0, 0x2 movs r3, 0 bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0809FD00: .4byte gSaveBlock2Ptr _0809FD04: .4byte sub_80568A8 thumb_func_end sub_809FCE0 thumb_func_start sub_809FD08 sub_809FD08: @ 809FD08 push {lr} sub sp, 0x8 ldr r0, _0809FD28 @ =gSaveBlock2Ptr ldr r1, [r0] ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] ldr r0, _0809FD2C @ =sub_80568A8 str r0, [sp, 0x4] movs r0, 0x3 movs r3, 0 bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0809FD28: .4byte gSaveBlock2Ptr _0809FD2C: .4byte sub_80568A8 thumb_func_end sub_809FD08 thumb_func_start sub_809FD30 sub_809FD30: @ 809FD30 push {lr} sub sp, 0x8 ldr r0, _0809FD50 @ =gSaveBlock2Ptr ldr r1, [r0] ldrb r2, [r1, 0x8] movs r0, 0 str r0, [sp] ldr r0, _0809FD54 @ =sub_80568A8 str r0, [sp, 0x4] movs r0, 0x4 movs r3, 0 bl DoNamingScreen add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0809FD50: .4byte gSaveBlock2Ptr _0809FD54: .4byte sub_80568A8 thumb_func_end sub_809FD30 .align 2, 0 @ Don't pad with nop.