.include "asm/macros.inc"
	.include "constants/constants.inc"

	.syntax unified

	.text


	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, =sStartMenuItems
	mov r9, r0
	ldr r1, =gStringVar4
	mov r10, r1
_0809F7DA:
	ldr r0, =sCurrentStartMenuActions
	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 GetStartMenuWindowId
	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 GetStartMenuWindowId
	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 PrintTextOnWindow
_0809F858:
	movs r0, 0x80
	lsls r0, 17
	adds r1, r7, r0
	lsrs r2, r1, 24
	asrs r1, 24
	ldr r0, =sNumStartMenuActions
	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, =sNumStartMenuActions
	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 DisplaySafariBallsWindow
_0809F918:
	bl InBattlePyramid
	lsls r0, 24
	cmp r0, 0
	beq _0809F926
	bl DisplayPyramidFloorWindow
_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 GetStartMenuWindowId
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x10
	str r1, [sp]
	ldr r1, =sNumStartMenuActions
	ldrb r1, [r1]
	str r1, [sp, 0x4]
	ldr r4, =sStartMenuCursorPos
	ldrb r1, [r4]
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x9
	bl sub_81983AC
	strb r0, [r4]
	bl GetStartMenuWindowId
	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, =gFieldCallback
	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, =sStartMenuCursorPos
	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, =sStartMenuCursorPos
	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, =sStartMenuItems
	ldr r2, =sCurrentStartMenuActions
	ldr r0, =sStartMenuCursorPos
	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, =sStartMenuItems
	ldr r2, =sCurrentStartMenuActions
	ldr r0, =sStartMenuCursorPos
	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 ScriptContext1_SetupScript
	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 GetStartMenuWindowId
	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 GetStartMenuWindowId
	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 PrintTextOnWindow
	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 PrintTextOnWindow
	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 PrintTextOnWindow
	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 PrintTextOnWindow
	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 PrintTextOnWindow
	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 PrintTextOnWindow
_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 PrintTextOnWindow
	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 PrintTextOnWindow
	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 GetStartMenuWindowId
	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 AppendToList
AppendToList: @ 80A0944
	ldrb r3, [r1]
	adds r0, r3
	strb r2, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	bx lr
	thumb_func_end AppendToList

	.align 2, 0 @ Don't pad with nop.