.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start BuildStartMenuActions BuildStartMenuActions: @ 809F440 push {lr} ldr r0, =gUnknown_0203760F movs r1, 0 strb r1, [r0] bl is_c1_link_related_active cmp r0, 0x1 bne _0809F45C bl BuildStartMenuActions_LinkMode b _0809F4AC .pool _0809F45C: bl InUnionRoom cmp r0, 0x1 bne _0809F46A bl BuildStartMenuActions_UnionRoom b _0809F4AC _0809F46A: bl GetSafariZoneFlag cmp r0, 0x1 bne _0809F478 bl BuildStartMenuActions_SafariZone b _0809F4AC _0809F478: bl InBattlePike lsls r0, 24 cmp r0, 0 beq _0809F488 bl BuildStartMenuActions_BattlePike b _0809F4AC _0809F488: bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _0809F498 bl BuildStartMenuActions_BattlePyramid b _0809F4AC _0809F498: bl in_multi_battle_room_with_var_condition lsls r0, 24 cmp r0, 0 beq _0809F4A8 bl BuildStartMenuActions_MultiBattleRoom b _0809F4AC _0809F4A8: bl BuildStartMenuActions_Normal _0809F4AC: pop {r0} bx r0 thumb_func_end BuildStartMenuActions thumb_func_start AddStartMenuAction @ void AddStartMenuAction(u8 entry) AddStartMenuAction: @ 809F4B0 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_02037610 ldr r1, =gUnknown_0203760F bl append_byte pop {r0} bx r0 .pool thumb_func_end AddStartMenuAction thumb_func_start BuildStartMenuActions_Normal BuildStartMenuActions_Normal: @ 809F4CC push {lr} ldr r0, =0x00000861 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F4E2 movs r0, 0 bl AddStartMenuAction _0809F4E2: movs r0, 0x86 lsls r0, 4 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F4F8 movs r0, 0x1 bl AddStartMenuAction _0809F4F8: movs r0, 0x2 bl AddStartMenuAction ldr r0, =0x00000862 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F512 movs r0, 0x3 bl AddStartMenuAction _0809F512: movs r0, 0x4 bl AddStartMenuAction movs r0, 0x5 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 .pool thumb_func_end BuildStartMenuActions_Normal thumb_func_start BuildStartMenuActions_SafariZone BuildStartMenuActions_SafariZone: @ 809F538 push {lr} movs r0, 0x8 bl AddStartMenuAction movs r0, 0 bl AddStartMenuAction movs r0, 0x1 bl AddStartMenuAction movs r0, 0x2 bl AddStartMenuAction movs r0, 0x4 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 thumb_func_end BuildStartMenuActions_SafariZone thumb_func_start BuildStartMenuActions_LinkMode BuildStartMenuActions_LinkMode: @ 809F568 push {lr} movs r0, 0x1 bl AddStartMenuAction movs r0, 0x2 bl AddStartMenuAction ldr r0, =0x00000862 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F58A movs r0, 0x3 bl AddStartMenuAction _0809F58A: movs r0, 0x9 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 .pool thumb_func_end BuildStartMenuActions_LinkMode thumb_func_start BuildStartMenuActions_UnionRoom BuildStartMenuActions_UnionRoom: @ 809F5A4 push {lr} movs r0, 0x1 bl AddStartMenuAction movs r0, 0x2 bl AddStartMenuAction ldr r0, =0x00000862 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809F5C6 movs r0, 0x3 bl AddStartMenuAction _0809F5C6: movs r0, 0x4 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 .pool thumb_func_end BuildStartMenuActions_UnionRoom thumb_func_start BuildStartMenuActions_BattlePike BuildStartMenuActions_BattlePike: @ 809F5E0 push {lr} movs r0, 0 bl AddStartMenuAction movs r0, 0x1 bl AddStartMenuAction movs r0, 0x4 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 thumb_func_end BuildStartMenuActions_BattlePike thumb_func_start BuildStartMenuActions_BattlePyramid BuildStartMenuActions_BattlePyramid: @ 809F604 push {lr} movs r0, 0x1 bl AddStartMenuAction movs r0, 0xC bl AddStartMenuAction movs r0, 0x4 bl AddStartMenuAction movs r0, 0xA bl AddStartMenuAction movs r0, 0xB bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 thumb_func_end BuildStartMenuActions_BattlePyramid thumb_func_start BuildStartMenuActions_MultiBattleRoom BuildStartMenuActions_MultiBattleRoom: @ 809F634 push {lr} movs r0, 0x1 bl AddStartMenuAction movs r0, 0x4 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 thumb_func_end BuildStartMenuActions_MultiBattleRoom thumb_func_start sub_809F654 sub_809F654: @ 809F654 push {r4,r5,lr} sub sp, 0xC ldr r4, =gUnknown_0203760C ldr r0, =gUnknown_08510508 bl AddWindow strb r0, [r4] ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldr r0, =gStringVar1 ldr r1, =gUnknown_0203A04C ldrb r1, [r1] movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, =gStringVar4 ldr r1, =gUnknown_085EE6FF adds r0, r5, 0 bl StringExpandPlaceholders ldrb r0, [r4] movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 movs r3, 0 bl Print ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_809F654 thumb_func_start sub_809F6C8 sub_809F6C8: @ 809F6C8 push {r4,r5,lr} sub sp, 0xC ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x7 bne _0809F6F0 ldr r4, =gUnknown_0203760D ldr r0, =gUnknown_08510538 b _0809F6F4 .pool _0809F6F0: ldr r4, =gUnknown_0203760D ldr r0, =gUnknown_08510530 _0809F6F4: bl AddWindow strb r0, [r4] ldr r4, =gUnknown_0203760D ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldr r0, =gStringVar1 ldr r2, =gUnknown_08510510 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r3, =0x00000cb2 adds r1, r3 ldrh r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy ldr r5, =gStringVar4 ldr r1, =gUnknown_085EE716 adds r0, r5, 0 bl StringExpandPlaceholders ldrb r0, [r4] movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 movs r3, 0 bl Print ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_809F6C8 thumb_func_start RemoveExtraStartMenuWindows RemoveExtraStartMenuWindows: @ 809F774 push {r4,lr} bl GetSafariZoneFlag cmp r0, 0 beq _0809F796 ldr r4, =gUnknown_0203760C ldrb r0, [r4] movs r1, 0 bl sub_8198070 ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r4] bl RemoveWindow _0809F796: bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _0809F7B0 ldr r4, =gUnknown_0203760D ldrb r0, [r4] movs r1, 0 bl sub_8198070 ldrb r0, [r4] bl RemoveWindow _0809F7B0: pop {r4} pop {r0} bx r0 .pool thumb_func_end RemoveExtraStartMenuWindows thumb_func_start PrintStartMenuActions PrintStartMenuActions: @ 809F7C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r0 adds r6, r1, 0 ldrb r2, [r0] ldr r0, =gUnknown_08510540 mov r9, r0 ldr r1, =gStringVar4 mov r10, r1 _0809F7DA: ldr r0, =gUnknown_02037610 lsls r2, 24 asrs r4, r2, 24 adds r5, r4, r0 ldrb r0, [r5] lsls r3, r0, 3 mov r0, r9 adds r0, 0x4 adds r0, r3, r0 ldr r1, [r0] ldr r0, =StartMenu_PlayerName adds r7, r2, 0 cmp r1, r0 bne _0809F828 bl get_start_menu_window_id_maybe lsls r0, 24 lsrs r0, 24 ldrb r1, [r5] lsls r1, 3 add r1, r9 ldr r1, [r1] lsls r3, r4, 4 adds r3, 0x9 lsls r3, 16 lsrs r3, 16 movs r2, 0x8 bl sub_819A024 b _0809F858 .pool _0809F828: mov r1, r9 adds r0, r3, r1 ldr r1, [r0] mov r0, r10 bl StringExpandPlaceholders bl get_start_menu_window_id_maybe lsls r0, 24 lsrs r0, 24 lsls r1, r4, 4 adds r1, 0x9 lsls r1, 24 lsrs r1, 24 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 mov r2, r10 movs r3, 0x8 bl Print _0809F858: movs r0, 0x80 lsls r0, 17 adds r1, r7, r0 lsrs r2, r1, 24 asrs r1, 24 ldr r0, =gUnknown_0203760F ldrb r0, [r0] cmp r1, r0 bge _0809F87C subs r6, 0x1 cmp r6, 0 bne _0809F7DA mov r1, r8 strb r2, [r1] movs r0, 0 b _0809F882 .pool _0809F87C: mov r0, r8 strb r2, [r0] movs r0, 0x1 _0809F882: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end PrintStartMenuActions thumb_func_start sub_809F894 sub_809F894: @ 809F894 push {r4,lr} sub sp, 0xC ldr r0, =gUnknown_02037619 movs r1, 0 ldrsb r1, [r0, r1] adds r2, r0, 0 cmp r1, 0x5 bhi _0809F98C lsls r0, r1, 2 ldr r1, =_0809F8B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0809F8B8: .4byte _0809F8D0 .4byte _0809F8D8 .4byte _0809F8E4 .4byte _0809F90C .4byte _0809F930 .4byte _0809F94C _0809F8D0: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _0809F98C _0809F8D8: bl BuildStartMenuActions ldr r1, =gUnknown_02037619 b _0809F940 .pool _0809F8E4: bl sub_81973A4 ldr r0, =gUnknown_0203760F ldrb r0, [r0] bl sub_81979C4 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_81973FC ldr r1, =gUnknown_02037619 movs r0, 0 strb r0, [r1, 0x1] b _0809F940 .pool _0809F90C: bl GetSafariZoneFlag cmp r0, 0 beq _0809F918 bl sub_809F654 _0809F918: bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _0809F926 bl sub_809F6C8 _0809F926: ldr r1, =gUnknown_02037619 b _0809F940 .pool _0809F930: ldr r4, =gUnknown_0203761A adds r0, r4, 0 movs r1, 0x2 bl PrintStartMenuActions cmp r0, 0 beq _0809F98C subs r1, r4, 0x1 _0809F940: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0809F98C .pool _0809F94C: bl get_start_menu_window_id_maybe lsls r0, 24 lsrs r0, 24 movs r1, 0x10 str r1, [sp] ldr r1, =gUnknown_0203760F ldrb r1, [r1] str r1, [sp, 0x4] ldr r4, =gUnknown_0203760E ldrb r1, [r4] str r1, [sp, 0x8] movs r1, 0x1 movs r2, 0 movs r3, 0x9 bl sub_81983AC strb r0, [r4] bl get_start_menu_window_id_maybe lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl CopyWindowToVram movs r0, 0x1 b _0809F98E .pool _0809F98C: movs r0, 0 _0809F98E: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_809F894 thumb_func_start sub_809F998 sub_809F998: @ 809F998 push {lr} ldr r1, =gUnknown_02037619 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] _0809F9A2: bl sub_809F894 cmp r0, 0 beq _0809F9A2 pop {r0} bx r0 .pool thumb_func_end sub_809F998 thumb_func_start task50_startmenu task50_startmenu: @ 809F9B4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_809F894 cmp r0, 0x1 bne _0809F9C8 adds r0, r4, 0 bl SwitchTaskToFollowupFunc _0809F9C8: pop {r4} pop {r0} bx r0 thumb_func_end task50_startmenu thumb_func_start sub_809F9D0 sub_809F9D0: @ 809F9D0 push {r4,r5,lr} adds r5, r0, 0 ldr r1, =gUnknown_02037619 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] ldr r4, =task50_startmenu adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl SetTaskFuncWithFollowupFunc pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_809F9D0 thumb_func_start sub_809FA00 sub_809FA00: @ 809FA00 push {lr} bl sub_809F894 cmp r0, 0 beq _0809FA12 bl sub_80AF688 movs r0, 0x1 b _0809FA14 _0809FA12: movs r0, 0 _0809FA14: pop {r1} bx r1 thumb_func_end sub_809FA00 thumb_func_start sub_809FA18 sub_809FA18: @ 809FA18 ldr r1, =gUnknown_02037619 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] ldr r1, =gUnknown_03005DB0 ldr r0, =sub_809FA00 str r0, [r1] bx lr .pool thumb_func_end sub_809FA18 thumb_func_start sub_809FA34 sub_809FA34: @ 809FA34 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0809FA58 cmp r0, 0x1 beq _0809FA7C b _0809FA92 .pool _0809FA58: bl InUnionRoom cmp r0, 0x1 bne _0809FA64 bl var_800D_set_xB _0809FA64: ldr r1, =gUnknown_03005DF4 ldr r0, =HandleStartMenuInput str r0, [r1] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0809FA92 .pool _0809FA7C: ldr r0, =gUnknown_03005DF4 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809FA92 adds r0, r5, 0 bl DestroyTask _0809FA92: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_809FA34 thumb_func_start sub_809FA9C sub_809FA9C: @ 809FA9C push {lr} bl is_c1_link_related_active cmp r0, 0 bne _0809FAB2 bl player_bitmagic bl sub_808B864 bl sub_808BCF4 _0809FAB2: ldr r0, =sub_809FA34 bl sub_809F9D0 bl script_env_2_enable pop {r0} bx r0 .pool thumb_func_end sub_809FA9C thumb_func_start HandleStartMenuInput HandleStartMenuInput: @ 809FAC4 push {r4,lr} ldr r4, =gMain ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0809FAE4 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl MoveMenuCursor ldr r1, =gUnknown_0203760E strb r0, [r1] _0809FAE4: ldrh r1, [r4, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FAFE movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor ldr r1, =gUnknown_0203760E strb r0, [r1] _0809FAFE: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809FB98 movs r0, 0x5 bl PlaySE ldr r1, =gUnknown_08510540 ldr r2, =gUnknown_02037610 ldr r0, =gUnknown_0203760E ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] ldr r0, =StartMenu_Pokedex cmp r1, r0 bne _0809FB34 movs r0, 0 bl pokedex_count lsls r0, 16 cmp r0, 0 beq _0809FBA0 _0809FB34: ldr r3, =gUnknown_03005DF4 ldr r1, =gUnknown_08510540 ldr r2, =gUnknown_02037610 ldr r0, =gUnknown_0203760E ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] str r1, [r3] ldr r0, =StartMenu_Save cmp r1, r0 beq _0809FBA0 ldr r0, =StartMenu_Exit cmp r1, r0 beq _0809FBA0 ldr r0, =StartMenu_SafariZoneRetire cmp r1, r0 beq _0809FBA0 ldr r0, =StartMenu_BattlePyramidRetire cmp r1, r0 beq _0809FBA0 movs r0, 0x1 movs r1, 0 bl fade_screen b _0809FBA0 .pool _0809FB98: movs r0, 0xA ands r0, r1 cmp r0, 0 bne _0809FBA4 _0809FBA0: movs r0, 0 b _0809FBAE _0809FBA4: bl RemoveExtraStartMenuWindows bl sub_80A0934 movs r0, 0x1 _0809FBAE: pop {r4} pop {r1} bx r1 thumb_func_end HandleStartMenuInput thumb_func_start StartMenu_Pokedex StartMenu_Pokedex: @ 809FBB4 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FBCC movs r0, 0 b _0809FBE6 .pool _0809FBCC: movs r0, 0x29 bl IncrementGameStat bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps ldr r0, =sub_80BB534 bl SetMainCallback2 movs r0, 0x1 _0809FBE6: pop {r1} bx r1 .pool thumb_func_end StartMenu_Pokedex thumb_func_start StartMenu_Pokemon StartMenu_Pokemon: @ 809FBF0 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FC08 movs r0, 0 b _0809FC1C .pool _0809FC08: bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps ldr r0, =CB2_PartyMenuFromStartMenu bl SetMainCallback2 movs r0, 0x1 _0809FC1C: pop {r1} bx r1 .pool thumb_func_end StartMenu_Pokemon thumb_func_start StartMenu_Bag StartMenu_Bag: @ 809FC24 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FC3C movs r0, 0 b _0809FC50 .pool _0809FC3C: bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps ldr r0, =CB2_BagMenuFromStartMenu bl SetMainCallback2 movs r0, 0x1 _0809FC50: pop {r1} bx r1 .pool thumb_func_end StartMenu_Bag thumb_func_start StartMenu_PokeNav StartMenu_PokeNav: @ 809FC58 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FC70 movs r0, 0 b _0809FC84 .pool _0809FC70: bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps ldr r0, =CB2_PokeNav bl SetMainCallback2 movs r0, 0x1 _0809FC84: pop {r1} bx r1 .pool thumb_func_end StartMenu_PokeNav thumb_func_start StartMenu_PlayerName StartMenu_PlayerName: @ 809FC8C push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0809FCF4 bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps bl is_c1_link_related_active cmp r0, 0 bne _0809FCB6 bl InUnionRoom cmp r0, 0 beq _0809FCC8 _0809FCB6: ldr r0, =sub_8086194 bl sub_80C4DDC b _0809FCEA .pool _0809FCC8: ldr r0, =0x000008d2 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0809FCE4 ldr r0, =sub_8086194 bl sub_80C51C4 b _0809FCEA .pool _0809FCE4: ldr r0, =sub_8086194 bl sub_80C4DDC _0809FCEA: movs r0, 0x1 b _0809FCF6 .pool _0809FCF4: movs r0, 0 _0809FCF6: pop {r1} bx r1 thumb_func_end StartMenu_PlayerName thumb_func_start StartMenu_Save StartMenu_Save: @ 809FCFC push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _0809FD0C bl RemoveExtraStartMenuWindows _0809FD0C: ldr r1, =gUnknown_03005DF4 ldr r0, =sub_809FE28 str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end StartMenu_Save thumb_func_start StartMenu_Option StartMenu_Option: @ 809FD20 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FD38 movs r0, 0 b _0809FD52 .pool _0809FD38: bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps ldr r0, =CB2_OptionsMenu bl SetMainCallback2 ldr r1, =gMain ldr r0, =sub_8086194 str r0, [r1, 0x8] movs r0, 0x1 _0809FD52: pop {r1} bx r1 .pool thumb_func_end StartMenu_Option thumb_func_start StartMenu_Exit StartMenu_Exit: @ 809FD64 push {lr} bl RemoveExtraStartMenuWindows bl sub_80A0934 movs r0, 0x1 pop {r1} bx r1 thumb_func_end StartMenu_Exit thumb_func_start StartMenu_SafariZoneRetire StartMenu_SafariZoneRetire: @ 809FD74 push {lr} bl RemoveExtraStartMenuWindows bl sub_80A0934 bl sub_80FC180 movs r0, 0x1 pop {r1} bx r1 thumb_func_end StartMenu_SafariZoneRetire thumb_func_start StartMenu_LinkModePlayerName StartMenu_LinkModePlayerName: @ 809FD88 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FDA0 movs r0, 0 b _0809FDB4 .pool _0809FDA0: bl play_some_sound bl overworld_free_bg_tilemaps ldr r0, =gUnknown_03005DB4 ldrb r0, [r0] ldr r1, =sub_8086194 bl sub_80C4E74 movs r0, 0x1 _0809FDB4: pop {r1} bx r1 .pool thumb_func_end StartMenu_LinkModePlayerName thumb_func_start StartMenu_BattlePyramidRetire StartMenu_BattlePyramidRetire: @ 809FDC0 ldr r1, =gUnknown_03005DF4 ldr r0, =sub_809FE9C str r0, [r1] movs r0, 0 bx lr .pool thumb_func_end StartMenu_BattlePyramidRetire thumb_func_start sub_809FDD4 sub_809FDD4: @ 809FDD4 push {lr} movs r0, 0 movs r1, 0 bl sub_8197DF8 bl sub_80984F4 ldr r0, =sub_809FA34 bl sub_809F9D0 bl script_env_2_enable pop {r0} bx r0 .pool thumb_func_end sub_809FDD4 thumb_func_start StartMenu_BattlePyramidBag StartMenu_BattlePyramidBag: @ 809FDF4 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0809FE0C movs r0, 0 b _0809FE20 .pool _0809FE0C: bl play_some_sound bl RemoveExtraStartMenuWindows bl overworld_free_bg_tilemaps ldr r0, =sub_81C4EFC bl SetMainCallback2 movs r0, 0x1 _0809FE20: pop {r1} bx r1 .pool thumb_func_end StartMenu_BattlePyramidBag thumb_func_start sub_809FE28 sub_809FE28: @ 809FE28 push {lr} bl sub_809FF28 ldr r1, =gUnknown_03005DF4 ldr r0, =sub_809FE44 str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_809FE28 thumb_func_start sub_809FE44 sub_809FE44: @ 809FE44 push {lr} bl sub_809FF4C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809FE7C cmp r0, 0x1 ble _0809FE94 cmp r0, 0x2 beq _0809FE60 cmp r0, 0x3 beq _0809FE7C b _0809FE94 _0809FE60: movs r0, 0 movs r1, 0 bl sub_8197DF8 bl sub_809F998 ldr r1, =gUnknown_03005DF4 ldr r0, =HandleStartMenuInput str r0, [r1] b _0809FE94 .pool _0809FE7C: movs r0, 0 movs r1, 0x1 bl sub_8197DF8 bl sub_80984F4 bl script_env_2_disable bl sub_81A9EC8 movs r0, 0x1 b _0809FE96 _0809FE94: movs r0, 0 _0809FE96: pop {r1} bx r1 thumb_func_end sub_809FE44 thumb_func_start sub_809FE9C sub_809FE9C: @ 809FE9C push {lr} bl sub_80A0340 ldr r1, =gUnknown_03005DF4 ldr r0, =sub_809FED4 str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_809FE9C thumb_func_start sub_809FEB8 sub_809FEB8: @ 809FEB8 push {lr} bl sub_809F998 ldr r1, =gUnknown_03005DF4 ldr r0, =HandleStartMenuInput str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_809FEB8 thumb_func_start sub_809FED4 sub_809FED4: @ 809FED4 push {lr} bl sub_809FF4C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809FEEC cmp r0, 0x1 ble _0809FF20 cmp r0, 0x2 beq _0809FF00 b _0809FF20 _0809FEEC: bl RemoveExtraStartMenuWindows ldr r1, =gUnknown_03005DF4 ldr r0, =sub_809FEB8 str r0, [r1] b _0809FF20 .pool _0809FF00: movs r0, 0 movs r1, 0x1 bl sub_8197DF8 bl sub_80984F4 bl script_env_2_disable ldr r0, =gUnknown_08252C88 bl script_env_1_execute_new_script movs r0, 0x1 b _0809FF22 .pool _0809FF20: movs r0, 0 _0809FF22: pop {r1} bx r1 thumb_func_end sub_809FED4 thumb_func_start sub_809FF28 sub_809FF28: @ 809FF28 push {lr} bl save_serialize_map ldr r1, =gUnknown_0203761C ldr r0, =sub_80A00A0 str r0, [r1] ldr r1, =gUnknown_02037621 movs r0, 0 strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_809FF28 thumb_func_start sub_809FF4C sub_809FF4C: @ 809FF4C push {lr} bl sub_8197224 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _0809FF78 ldr r1, =gUnknown_02037621 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_0203761C ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 b _0809FF7A .pool _0809FF78: movs r0, 0 _0809FF7A: pop {r1} bx r1 thumb_func_end sub_809FF4C thumb_func_start sub_809FF80 sub_809FF80: @ 809FF80 push {lr} bl sub_809FF28 ldr r0, =task50_save_game movs r1, 0x50 bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_809FF80 thumb_func_start sub_809FF98 sub_809FF98: @ 809FF98 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldr r0, =gStringVar4 adds r1, r2, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0x1 bl sub_819786C movs r0, 0x1 bl AddTextPrinterForMessage_2 ldr r1, =gUnknown_02037621 movs r0, 0x1 strb r0, [r1] ldr r0, =gUnknown_0203761C str r4, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_809FF98 thumb_func_start task50_save_game task50_save_game: @ 809FFD0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_809FF4C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 beq _0809FFFC cmp r1, 0x1 bgt _0809FFEC cmp r1, 0 beq _080A000A b _080A0000 _0809FFEC: cmp r1, 0x3 bgt _080A0000 ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] b _080A0000 .pool _0809FFFC: ldr r0, =gScriptResult strh r1, [r0] _080A0000: adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080A000A: pop {r4} pop {r0} bx r0 .pool thumb_func_end task50_save_game thumb_func_start sub_80A0014 sub_80A0014: @ 80A0014 push {lr} movs r0, 0 movs r1, 0x1 bl sub_8197434 pop {r0} bx r0 thumb_func_end sub_80A0014 thumb_func_start sub_80A0024 sub_80A0024: @ 80A0024 push {lr} bl sub_80A0888 pop {r0} bx r0 thumb_func_end sub_80A0024 thumb_func_start sub_80A0030 sub_80A0030: @ 80A0030 ldr r1, =gUnknown_02037620 movs r0, 0x3C strb r0, [r1] bx lr .pool thumb_func_end sub_80A0030 thumb_func_start sub_80A003C sub_80A003C: @ 80A003C push {lr} ldr r1, =gUnknown_02037620 ldrb r0, [r1] subs r2, r0, 0x1 strb r2, [r1] ldr r0, =gMain ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080A0064 lsls r0, r2, 24 cmp r0, 0 beq _080A006A movs r0, 0 b _080A006C .pool _080A0064: movs r0, 0x5 bl PlaySE _080A006A: movs r0, 0x1 _080A006C: pop {r1} bx r1 thumb_func_end sub_80A003C thumb_func_start sub_80A0070 sub_80A0070: @ 80A0070 push {lr} ldr r1, =gUnknown_02037620 ldrb r0, [r1] cmp r0, 0 bne _080A0094 ldr r0, =gMain ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080A0098 movs r0, 0x1 b _080A009A .pool _080A0094: subs r0, 0x1 strb r0, [r1] _080A0098: movs r0, 0 _080A009A: pop {r1} bx r1 thumb_func_end sub_80A0070 thumb_func_start sub_80A00A0 sub_80A00A0: @ 80A00A0 push {lr} bl get_start_menu_window_id_maybe lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_819746C bl remove_start_menu_window_maybe bl sub_80A06B4 bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _080A00D4 ldr r0, =gUnknown_08252CA7 ldr r1, =sub_80A00EC bl sub_809FF98 b _080A00DC .pool _080A00D4: ldr r0, =gUnknown_082C87B4 ldr r1, =sub_80A00EC bl sub_809FF98 _080A00DC: movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A00A0 thumb_func_start sub_80A00EC sub_80A00EC: @ 80A00EC push {lr} bl sub_8197930 ldr r1, =gUnknown_0203761C ldr r0, =sub_80A0108 str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A00EC thumb_func_start sub_80A0108 sub_80A0108: @ 80A0108 push {lr} bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080A012A cmp r1, 0 bgt _080A0124 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A0168 b _080A0174 _080A0124: cmp r1, 0x1 beq _080A0168 b _080A0174 _080A012A: ldr r0, =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _080A0136 cmp r0, 0x2 bne _080A013E _080A0136: ldr r0, =gDifferentSaveFile ldrb r0, [r0] cmp r0, 0 bne _080A0158 _080A013E: ldr r1, =gUnknown_0203761C ldr r0, =sub_80A017C str r0, [r1] b _080A0174 .pool _080A0158: ldr r1, =gUnknown_0203761C ldr r0, =sub_80A0234 str r0, [r1] b _080A0174 .pool _080A0168: bl sub_80A0024 bl sub_80A0014 movs r0, 0x2 b _080A0176 _080A0174: movs r0, 0 _080A0176: pop {r1} bx r1 thumb_func_end sub_80A0108 thumb_func_start sub_80A017C sub_80A017C: @ 80A017C push {lr} ldr r0, =gDifferentSaveFile ldrb r0, [r0] cmp r0, 0x1 bne _080A019C ldr r0, =gUnknown_082C8845 ldr r1, =sub_80A01B4 bl sub_809FF98 b _080A01A4 .pool _080A019C: ldr r0, =gUnknown_082C87D5 ldr r1, =sub_80A01D0 bl sub_809FF98 _080A01A4: movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A017C thumb_func_start sub_80A01B4 sub_80A01B4: @ 80A01B4 push {lr} movs r0, 0x1 bl sub_8197948 ldr r1, =gUnknown_0203761C ldr r0, =sub_80A01EC str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A01B4 thumb_func_start sub_80A01D0 sub_80A01D0: @ 80A01D0 push {lr} bl sub_8197930 ldr r1, =gUnknown_0203761C ldr r0, =sub_80A01EC str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A01D0 thumb_func_start sub_80A01EC sub_80A01EC: @ 80A01EC push {lr} bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080A020E cmp r1, 0 bgt _080A0208 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A0220 b _080A022C _080A0208: cmp r1, 0x1 beq _080A0220 b _080A022C _080A020E: ldr r1, =gUnknown_0203761C ldr r0, =sub_80A0234 str r0, [r1] b _080A022C .pool _080A0220: bl sub_80A0024 bl sub_80A0014 movs r0, 0x2 b _080A022E _080A022C: movs r0, 0 _080A022E: pop {r1} bx r1 thumb_func_end sub_80A01EC thumb_func_start sub_80A0234 sub_80A0234: @ 80A0234 push {lr} ldr r0, =gUnknown_082C8810 ldr r1, =sub_80A024C bl sub_809FF98 movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A0234 thumb_func_start sub_80A024C sub_80A024C: @ 80A024C push {r4,lr} movs r0, 0 bl IncrementGameStat bl sub_81A9E90 ldr r4, =gDifferentSaveFile ldrb r0, [r4] cmp r0, 0x1 bne _080A0274 movs r0, 0x4 bl TrySavingData lsls r0, 24 lsrs r1, r0, 24 movs r0, 0 strb r0, [r4] b _080A027E .pool _080A0274: movs r0, 0 bl TrySavingData lsls r0, 24 lsrs r1, r0, 24 _080A027E: cmp r1, 0x1 bne _080A0294 ldr r0, =gUnknown_082C8832 ldr r1, =sub_80A02B0 bl sub_809FF98 b _080A029C .pool _080A0294: ldr r0, =gUnknown_082C892A ldr r1, =sub_80A02FC bl sub_809FF98 _080A029C: bl sub_80A0030 movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80A024C thumb_func_start sub_80A02B0 sub_80A02B0: @ 80A02B0 push {lr} movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _080A02CA movs r0, 0x37 bl PlaySE ldr r1, =gUnknown_0203761C ldr r0, =sub_80A02D8 str r0, [r1] _080A02CA: movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A02B0 thumb_func_start sub_80A02D8 sub_80A02D8: @ 80A02D8 push {lr} bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080A02F6 bl sub_80A003C lsls r0, 24 cmp r0, 0 beq _080A02F6 bl sub_80A0024 movs r0, 0x1 b _080A02F8 _080A02F6: movs r0, 0 _080A02F8: pop {r1} bx r1 thumb_func_end sub_80A02D8 thumb_func_start sub_80A02FC sub_80A02FC: @ 80A02FC push {lr} movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _080A0316 movs r0, 0x16 bl PlaySE ldr r1, =gUnknown_0203761C ldr r0, =sub_80A0324 str r0, [r1] _080A0316: movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A02FC thumb_func_start sub_80A0324 sub_80A0324: @ 80A0324 push {lr} bl sub_80A0070 lsls r0, 24 cmp r0, 0 beq _080A0338 bl sub_80A0024 movs r0, 0x3 b _080A033A _080A0338: movs r0, 0 _080A033A: pop {r1} bx r1 thumb_func_end sub_80A0324 thumb_func_start sub_80A0340 sub_80A0340: @ 80A0340 ldr r1, =gUnknown_0203761C ldr r0, =sub_80A035C str r0, [r1] ldr r1, =gUnknown_02037621 movs r0, 0 strb r0, [r1] bx lr .pool thumb_func_end sub_80A0340 thumb_func_start sub_80A035C sub_80A035C: @ 80A035C push {lr} bl get_start_menu_window_id_maybe lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_819746C bl remove_start_menu_window_maybe ldr r0, =gUnknown_08252CFB ldr r1, =sub_80A0388 bl sub_809FF98 movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A035C thumb_func_start sub_80A0388 sub_80A0388: @ 80A0388 push {lr} movs r0, 0x1 bl sub_8197948 ldr r1, =gUnknown_0203761C ldr r0, =sub_80A03A4 str r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_80A0388 thumb_func_start sub_80A03A4 sub_80A03A4: @ 80A03A4 push {lr} bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080A03C6 cmp r1, 0 bgt _080A03C0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080A03CA b _080A03D2 _080A03C0: cmp r1, 0x1 beq _080A03CA b _080A03D2 _080A03C6: movs r0, 0x2 b _080A03D4 _080A03CA: bl sub_80A0014 movs r0, 0x1 b _080A03D4 _080A03D2: movs r0, 0 _080A03D4: pop {r1} bx r1 thumb_func_end sub_80A03A4 thumb_func_start sub_80A03D8 sub_80A03D8: @ 80A03D8 push {lr} bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80A03D8 thumb_func_start sub_80A03E4 sub_80A03E4: @ 80A03E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 ldrb r0, [r0] cmp r0, 0x4 bls _080A03F6 b _080A04FC _080A03F6: lsls r0, 2 ldr r1, =_080A0404 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080A0404: .4byte _080A0418 .4byte _080A0490 .4byte _080A04A2 .4byte _080A04D4 .4byte _080A04F8 _080A0418: movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0 bl SetVBlankCallback bl remove_some_task movs r2, 0xA0 lsls r2, 19 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, =0x040000d4 mov r0, sp str r0, [r1] str r2, [r1, 0x4] ldr r0, =0x81000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 mov r4, sp movs r6, 0 movs r5, 0x80 lsls r5, 5 ldr r7, =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080A045A: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _080A045A strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _080A04FC .pool _080A0490: bl ResetSpriteData bl ResetTasks bl ResetPaletteFade bl dp12_8087EA4 b _080A04FC _080A04A2: movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085105A8 movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates ldr r0, =gUnknown_085105AC bl InitWindows movs r0, 0 movs r1, 0x8 movs r2, 0xE0 bl box_border_load_tiles_and_pal movs r0, 0xF0 bl sub_81978B0 b _080A04FC .pool _080A04D4: movs r0, 0 bl ShowBg movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, =sub_80A03D8 bl SetVBlankCallback movs r0, 0x1 bl EnableInterrupts b _080A04FC .pool _080A04F8: movs r0, 0x1 b _080A0506 _080A04FC: mov r1, r8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _080A0506: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80A03E4 thumb_func_start sub_80A0514 sub_80A0514: @ 80A0514 push {lr} ldr r0, =gUnknown_030026F8 bl sub_80A03E4 cmp r0, 0 beq _080A052E ldr r0, =sub_80A0550 movs r1, 0x50 bl CreateTask ldr r0, =sub_80A0540 bl SetMainCallback2 _080A052E: pop {r0} bx r0 .pool thumb_func_end sub_80A0514 thumb_func_start sub_80A0540 sub_80A0540: @ 80A0540 push {lr} bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80A0540 thumb_func_start sub_80A0550 sub_80A0550: @ 80A0550 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080A0570 b _080A06A8 _080A0570: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x6 bls _080A057A b _080A06A8 _080A057A: lsls r0, 2 ldr r1, =_080A0590 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080A0590: .4byte _080A05AC .4byte _080A0630 .4byte _080A063C .4byte _080A065C .4byte _080A0670 .4byte _080A0688 .4byte _080A0698 _080A05AC: movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, =gUnknown_082C8959 movs r4, 0 str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r6, 0x1 str r6, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 movs r3, 0xFF bl AddTextPrinterParametrized movs r0, 0 movs r1, 0x8 movs r2, 0xE bl sub_8098858 movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _080A0620 bl InUnionRoom cmp r0, 0 beq _080A0620 bl sub_800A07C cmp r0, 0 beq _080A061C strh r6, [r5] b _080A06A8 .pool _080A061C: movs r0, 0x5 b _080A06A6 _080A0620: ldr r0, =gSoftResetDisabled movs r1, 0x1 strb r1, [r0] movs r0, 0x1 b _080A06A6 .pool _080A0630: bl sub_8076D5C bl sub_8153430 movs r0, 0x2 b _080A06A6 _080A063C: bl sub_8153474 lsls r0, 24 cmp r0, 0 beq _080A06A8 bl sav2_gender2_inplace_and_xFE movs r0, 0x3 strh r0, [r5] ldr r1, =gSoftResetDisabled movs r0, 0 strb r0, [r1] b _080A06A8 .pool _080A065C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 b _080A06A6 _080A0670: bl FreeAllWindowBuffers ldr r0, =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask b _080A06A8 .pool _080A0688: ldr r0, =sub_8153688 movs r1, 0x5 bl CreateTask movs r0, 0x6 b _080A06A6 .pool _080A0698: ldr r0, =sub_8153688 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080A06A8 movs r0, 0x3 _080A06A6: strh r0, [r5] _080A06A8: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80A0550 thumb_func_start sub_80A06B4 sub_80A06B4: @ 80A06B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r0, =gUnknown_085105BC ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0xC] str r1, [sp, 0x10] ldr r0, =0x00000861 mov r10, r0 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080A06EC add r0, sp, 0xC ldrb r1, [r0, 0x4] subs r1, 0x2 lsls r1, 24 lsrs r1, 24 ldr r2, =0xffffff00 ldr r0, [sp, 0x10] ands r0, r2 orrs r0, r1 str r0, [sp, 0x10] _080A06EC: ldr r6, =gUnknown_02037622 add r0, sp, 0xC bl AddWindow strb r0, [r6] ldrb r0, [r6] movs r1, 0 bl sub_81973FC ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x4 mov r9, r1 cmp r0, 0 bne _080A0710 movs r0, 0x8 mov r9, r0 _080A0710: movs r4, 0x1 ldr r5, =gStringVar4 movs r0, 0x3 adds r1, r5, 0 movs r2, 0x6 bl sub_819A344 ldrb r0, [r6] str r4, [sp] movs r1, 0xFF mov r8, r1 str r1, [sp, 0x4] movs r7, 0 str r7, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 movs r3, 0 bl Print movs r4, 0x11 ldrb r0, [r6] ldr r2, =gUnknown_085EED26 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl Print movs r0, 0 adds r1, r5, 0 mov r2, r9 bl sub_819A344 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x70 bl GetStringRightAlignXOffset adds r2, r0, 0 ldrb r0, [r6] lsls r2, 16 lsrs r2, 16 adds r1, r5, 0 movs r3, 0x11 bl sub_819A024 movs r4, 0x21 ldrb r0, [r6] ldr r2, =gUnknown_085EED2D str r4, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl Print movs r0, 0x4 adds r1, r5, 0 mov r2, r9 bl sub_819A344 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x70 bl GetStringRightAlignXOffset adds r2, r0, 0 ldrb r0, [r6] lsls r3, r2, 24 lsrs r3, 24 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl Print mov r0, r10 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080A0802 movs r4, 0x31 ldrb r0, [r6] ldr r2, =gUnknown_085EED34 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl Print movs r0, 0x1 adds r1, r5, 0 mov r2, r9 bl sub_819A344 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x70 bl GetStringRightAlignXOffset adds r2, r0, 0 ldrb r0, [r6] lsls r3, r2, 24 lsrs r3, 24 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl Print _080A0802: adds r4, 0x10 ldrb r0, [r6] ldr r2, =gUnknown_085EED3C lsls r4, 24 lsrs r4, 24 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl Print movs r0, 0x2 adds r1, r5, 0 mov r2, r9 bl sub_819A344 movs r0, 0x1 adds r1, r5, 0 movs r2, 0x70 bl GetStringRightAlignXOffset adds r2, r0, 0 ldrb r0, [r6] lsls r3, r2, 24 lsrs r3, 24 str r4, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl Print ldrb r0, [r6] movs r1, 0x2 bl CopyWindowToVram add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80A06B4 thumb_func_start sub_80A0888 sub_80A0888: @ 80A0888 push {r4,lr} ldr r4, =gUnknown_02037622 ldrb r0, [r4] movs r1, 0 bl sub_819746C ldrb r0, [r4] bl RemoveWindow pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80A0888 thumb_func_start sub_80A08A4 sub_80A08A4: @ 80A08A4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =sub_8153688 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080A08C0 adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080A08C0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80A08A4 thumb_func_start sub_80A08CC sub_80A08CC: @ 80A08CC push {r4,r5,lr} ldr r0, =sub_8153688 movs r1, 0x5 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r5 movs r1, 0x1 strh r1, [r0, 0xC] ldr r0, =sub_80A08A4 movs r1, 0x6 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r5 strh r4, [r1, 0xA] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80A08CC thumb_func_start sub_80A0914 sub_80A0914: @ 80A0914 push {lr} bl get_start_menu_window_id_maybe lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_819746C bl remove_start_menu_window_maybe bl sub_80984F4 bl script_env_2_disable pop {r0} bx r0 thumb_func_end sub_80A0914 thumb_func_start sub_80A0934 sub_80A0934: @ 80A0934 push {lr} movs r0, 0x5 bl PlaySE bl sub_80A0914 pop {r0} bx r0 thumb_func_end sub_80A0934 thumb_func_start append_byte append_byte: @ 80A0944 ldrb r3, [r1] adds r0, r3 strb r2, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bx lr thumb_func_end append_byte .align 2, 0 @ Don't pad with nop.