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

	.syntax unified

	.text

	thumb_func_start ScriptMenu_Multichoice
@ bool8 ScriptMenu_Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
ScriptMenu_Multichoice: @ 80E1E08
	push {r4-r7,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r6, r1, 24
	lsls r2, 24
	lsrs r5, r2, 24
	lsls r3, 24
	lsrs r4, r3, 24
	ldr r0, =sub_80E2058
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _080E1E4C
	ldr r0, =gSpecialVar_Result
	movs r1, 0xFF
	strh r1, [r0]
	movs r0, 0
	str r0, [sp]
	adds r0, r7, 0
	adds r1, r6, 0
	adds r2, r5, 0
	adds r3, r4, 0
	bl DoMultichoice
	movs r0, 0x1
	b _080E1E4E
	.pool
_080E1E4C:
	movs r0, 0
_080E1E4E:
	add sp, 0x4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end ScriptMenu_Multichoice

	thumb_func_start ScriptMenu_MultichoiceWithDefault
ScriptMenu_MultichoiceWithDefault: @ 80E1E58
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	ldr r4, [sp, 0x1C]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r6, r2, 24
	lsls r3, 24
	lsrs r5, r3, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =sub_80E2058
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _080E1EA8
	ldr r1, =gSpecialVar_Result
	movs r0, 0xFF
	strh r0, [r1]
	str r4, [sp]
	mov r0, r8
	adds r1, r7, 0
	adds r2, r6, 0
	adds r3, r5, 0
	bl DoMultichoice
	movs r0, 0x1
	b _080E1EAA
	.pool
_080E1EA8:
	movs r0, 0
_080E1EAA:
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end ScriptMenu_MultichoiceWithDefault

	thumb_func_start sub_80E1EB8
sub_80E1EB8: @ 80E1EB8
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r5, 0
	b _080E1EEC
_080E1EC0:
	cmp r1, 0xFD
	bne _080E1EE4
	adds r4, 0x1
	ldrb r0, [r4]
	cmp r0, 0x1
	bne _080E1EEC
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	bl StringLength
	adds r0, r5, r0
	lsls r0, 16
	lsrs r5, r0, 16
	adds r4, 0x1
	b _080E1EEC
	.pool
_080E1EE4:
	adds r4, 0x1
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
_080E1EEC:
	ldrb r1, [r4]
	adds r0, r1, 0
	cmp r0, 0xFF
	bne _080E1EC0
	adds r0, r5, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_80E1EB8

	thumb_func_start DoMultichoice
@ void DoMultichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
DoMultichoice: @ 80E1EFC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	ldr r4, [sp, 0x28]
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	lsls r2, 24
	lsrs r2, 24
	mov r10, r2
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp]
	lsls r4, 24
	lsrs r4, 24
	str r4, [sp, 0x4]
	ldr r1, =gUnknown_0858B760
	lsls r0, r2, 3
	adds r0, r1
	ldrb r6, [r0, 0x4]
	ldr r0, [r0]
	mov r8, r0
	movs r1, 0
	cmp r1, r6
	bge _080E1F4C
	mov r5, r8
	adds r4, r6, 0
_080E1F3C:
	ldr r0, [r5]
	bl display_text_and_get_width
	adds r1, r0, 0
	adds r5, 0x8
	subs r4, 0x1
	cmp r4, 0
	bne _080E1F3C
_080E1F4C:
	adds r0, r1, 0
	bl convert_pixel_width_to_tile_width
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r7, 0
	adds r1, r4, 0
	bl sub_80E2D5C
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r3, r6, 25
	lsrs r3, 24
	adds r0, r7, 0
	mov r1, r9
	adds r2, r4, 0
	bl CreateWindowFromRect
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0
	bl SetStandardWindowBorderStyle
	adds r0, r4, 0
	adds r1, r6, 0
	mov r2, r8
	bl PrintMenuTable
	adds r0, r4, 0
	adds r1, r6, 0
	ldr r2, [sp, 0x4]
	bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	ldr r0, [sp]
	adds r1, r6, 0
	adds r2, r4, 0
	mov r3, r10
	bl sub_80E1FBC
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end DoMultichoice

	thumb_func_start sub_80E1FBC
sub_80E1FBC: @ 80E1FBC
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r2, 24
	mov r9, r2
	lsls r3, 24
	lsrs r4, r3, 24
	ldr r1, =gUnknown_02039F90
	movs r0, 0x2
	strb r0, [r1]
	movs r2, 0
	ldr r6, =sub_80E2058
	ldr r5, =gUnknown_0858BB68
	movs r3, 0xC
_080E1FE6:
	adds r0, r2, r5
	ldrb r0, [r0]
	cmp r0, r4
	bne _080E1FF0
	strb r3, [r1]
_080E1FF0:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x5
	bls _080E1FE6
	adds r0, r6, 0
	movs r1, 0x50
	bl CreateTask
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r1, r0, r1
	mov r0, r8
	strh r0, [r1, 0x10]
	cmp r7, 0x3
	bls _080E202C
	movs r0, 0x1
	b _080E202E
	.pool
_080E202C:
	movs r0, 0
_080E202E:
	strh r0, [r1, 0x12]
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	mov r1, r9
	strh r1, [r0, 0x14]
	strh r4, [r0, 0x16]
	adds r0, r4, 0
	bl sub_80E2A94
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E1FBC

	thumb_func_start sub_80E2058
sub_80E2058: @ 80E2058
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	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
	bne _080E20FC
	ldr r1, =gUnknown_02039F90
	ldrb r0, [r1]
	cmp r0, 0
	beq _080E2090
	subs r0, 0x1
	strb r0, [r1]
	b _080E20FC
	.pool
_080E2090:
	movs r1, 0xA
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _080E209E
	bl ProcessMenuInputNoWrapAround
	b _080E20A2
_080E209E:
	bl ProcessMenuInput
_080E20A2:
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0xC0
	ands r0, r1
	cmp r0, 0
	beq _080E20B8
	ldrb r0, [r5, 0xE]
	bl sub_80E2A94
_080E20B8:
	lsls r0, r4, 24
	asrs r1, r0, 24
	movs r0, 0x2
	negs r0, r0
	cmp r1, r0
	beq _080E20FC
	adds r0, 0x1
	cmp r1, r0
	bne _080E20E8
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _080E20FC
	movs r0, 0x5
	bl PlaySE
	ldr r1, =gSpecialVar_Result
	movs r0, 0x7F
	strh r0, [r1]
	b _080E20EC
	.pool
_080E20E8:
	ldr r0, =gSpecialVar_Result
	strh r1, [r0]
_080E20EC:
	ldrb r0, [r5, 0xC]
	bl sub_80E2A78
	adds r0, r6, 0
	bl DestroyTask
	bl EnableBothScriptContexts
_080E20FC:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E2058

	thumb_func_start ScriptMenu_YesNo
ScriptMenu_YesNo: @ 80E2108
	push {r4,lr}
	ldr r4, =task_yes_no_maybe
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _080E2138
	ldr r1, =gSpecialVar_Result
	movs r0, 0xFF
	strh r0, [r1]
	bl sub_8197930
	adds r0, r4, 0
	movs r1, 0x50
	bl CreateTask
	movs r0, 0x1
	b _080E213A
	.pool
_080E2138:
	movs r0, 0
_080E213A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end ScriptMenu_YesNo

	thumb_func_start sub_80E2140
sub_80E2140: @ 80E2140
	push {lr}
	ldr r0, =gSpecialVar_Result
	ldrh r0, [r0]
	cmp r0, 0xFF
	beq _080E2154
	movs r0, 0x1
	b _080E2156
	.pool
_080E2154:
	movs r0, 0
_080E2156:
	pop {r1}
	bx r1
	thumb_func_end sub_80E2140

	thumb_func_start task_yes_no_maybe
task_yes_no_maybe: @ 80E215C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r1, r0, r1
	ldrh r2, [r1, 0xC]
	movs r3, 0xC
	ldrsh r0, [r1, r3]
	cmp r0, 0x4
	bgt _080E2180
	adds r0, r2, 0x1
	strh r0, [r1, 0xC]
	b _080E21C4
	.pool
_080E2180:
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _080E21A4
	cmp r1, r0
	bgt _080E219C
	subs r0, 0x1
	cmp r1, r0
	beq _080E21C4
	b _080E21BA
_080E219C:
	cmp r1, 0
	beq _080E21B4
	cmp r1, 0x1
	bne _080E21BA
_080E21A4:
	movs r0, 0x5
	bl PlaySE
	ldr r1, =gSpecialVar_Result
	movs r0, 0
	b _080E21B8
	.pool
_080E21B4:
	ldr r1, =gSpecialVar_Result
	movs r0, 0x1
_080E21B8:
	strh r0, [r1]
_080E21BA:
	adds r0, r4, 0
	bl DestroyTask
	bl EnableBothScriptContexts
_080E21C4:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_yes_no_maybe

	thumb_func_start ScriptMenu_MultichoiceGrid
ScriptMenu_MultichoiceGrid: @ 80E21D0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	ldr r4, [sp, 0x30]
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0x4]
	lsls r2, 24
	lsrs r5, r2, 24
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x8]
	lsls r4, 24
	lsrs r4, 24
	mov r10, r4
	ldr r0, =sub_80E2308
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E2210
	movs r0, 0
	b _080E22E8
	.pool
_080E2210:
	ldr r0, =gSpecialVar_Result
	movs r1, 0xFF
	strh r1, [r0]
	movs r2, 0
	movs r6, 0
	ldr r1, =gUnknown_0858B760
	lsls r5, 3
	adds r0, r5, r1
	str r5, [sp, 0xC]
	ldrb r0, [r0, 0x4]
	cmp r2, r0
	bge _080E2246
	mov r8, r1
_080E222A:
	mov r0, r8
	adds r4, r5, r0
	ldr r1, [r4]
	lsls r0, r6, 3
	adds r0, r1
	ldr r0, [r0]
	adds r1, r2, 0
	bl display_text_and_get_width
	adds r2, r0, 0
	adds r6, 0x1
	ldrb r4, [r4, 0x4]
	cmp r6, r4
	blt _080E222A
_080E2246:
	adds r0, r2, 0
	bl convert_pixel_width_to_tile_width
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	mov r1, r10
	muls r1, r5
	mov r8, r1
	adds r0, r7, 0
	bl sub_80E2D5C
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r2, =gUnknown_0858B760
	mov r9, r2
	ldr r0, [sp, 0xC]
	add r9, r0
	mov r1, r9
	ldrb r0, [r1, 0x4]
	mov r1, r10
	bl __udivsi3
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	ldr r0, =sub_80E2308
	movs r1, 0x50
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	mov r2, sp
	ldrh r2, [r2, 0x8]
	strh r2, [r4, 0x10]
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r3, r6, 25
	lsrs r3, 24
	adds r0, r7, 0
	ldr r1, [sp, 0x4]
	mov r2, r8
	bl CreateWindowFromRect
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x14]
	movs r1, 0
	bl SetStandardWindowBorderStyle
	ldrb r0, [r4, 0x14]
	lsls r5, 27
	lsrs r5, 24
	mov r2, r9
	ldr r1, [r2]
	str r1, [sp]
	adds r1, r5, 0
	mov r2, r10
	adds r3, r6, 0
	bl sub_81997AC
	ldrb r0, [r4, 0x14]
	movs r1, 0
	str r1, [sp]
	adds r1, r5, 0
	mov r2, r10
	adds r3, r6, 0
	bl sub_8199944
	ldrb r0, [r4, 0x14]
	movs r1, 0x3
	bl CopyWindowToVram
	movs r0, 0x1
_080E22E8:
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ScriptMenu_MultichoiceGrid

	thumb_func_start sub_80E2308
sub_80E2308: @ 80E2308
	push {r4,r5,lr}
	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
	bl sub_8199334
	lsls r0, 24
	asrs r1, r0, 24
	movs r0, 0x2
	negs r0, r0
	cmp r1, r0
	beq _080E2360
	adds r0, 0x1
	cmp r1, r0
	bne _080E234C
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _080E2360
	movs r0, 0x5
	bl PlaySE
	ldr r1, =gSpecialVar_Result
	movs r0, 0x7F
	strh r0, [r1]
	b _080E2350
	.pool
_080E234C:
	ldr r0, =gSpecialVar_Result
	strh r1, [r0]
_080E2350:
	ldrb r0, [r5, 0xC]
	bl sub_80E2A78
	adds r0, r4, 0
	bl DestroyTask
	bl EnableBothScriptContexts
_080E2360:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E2308

	thumb_func_start ScrSpecial_CreatePCMenu
@ bool ScrSpecial_CreatePCMenu()
ScrSpecial_CreatePCMenu: @ 80E236C
	push {lr}
	ldr r0, =sub_80E2058
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _080E2394
	ldr r1, =gSpecialVar_Result
	movs r0, 0xFF
	strh r0, [r1]
	bl CreatePCMenu
	movs r0, 0x1
	b _080E2396
	.pool
_080E2394:
	movs r0, 0
_080E2396:
	pop {r1}
	bx r1
	thumb_func_end ScrSpecial_CreatePCMenu

	thumb_func_start CreatePCMenu
CreatePCMenu: @ 80E239C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	movs r7, 0x8
	movs r5, 0
	movs r4, 0
	ldr r6, =gUnknown_0858BB70
_080E23AC:
	ldm r6!, {r0}
	adds r1, r5, 0
	bl display_text_and_get_width
	adds r5, r0, 0
	adds r4, 0x1
	cmp r4, 0x3
	bls _080E23AC
	ldr r6, =0x00000864
	adds r0, r6, 0
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _080E23D4
	ldr r0, =gText_HallOfFame
	adds r1, r5, 0
	bl display_text_and_get_width
	adds r5, r0, 0
_080E23D4:
	adds r0, r5, 0
	bl convert_pixel_width_to_tile_width
	lsls r0, 24
	lsrs r4, r0, 24
	adds r0, r6, 0
	bl FlagGet
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	beq _080E2448
	movs r0, 0x4
	mov r8, r0
	movs r0, 0
	movs r1, 0
	adds r2, r4, 0
	movs r3, 0x8
	bl CreateWindowFromRect
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r6, 0
	movs r1, 0
	bl SetStandardWindowBorderStyle
	ldr r2, =gText_HallOfFame
	movs r0, 0x21
	str r0, [sp]
	movs r5, 0xFF
	str r5, [sp, 0x4]
	movs r4, 0
	str r4, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	adds r3, r7, 0
	bl PrintTextOnWindow
	ldr r2, =gText_LogOff
	movs r0, 0x31
	str r0, [sp]
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	adds r3, r7, 0
	bl PrintTextOnWindow
	b _080E247A
	.pool
_080E2448:
	movs r0, 0x3
	mov r8, r0
	movs r0, 0
	movs r1, 0
	adds r2, r4, 0
	movs r3, 0x6
	bl CreateWindowFromRect
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r6, 0
	movs r1, 0
	bl SetStandardWindowBorderStyle
	ldr r2, =gText_LogOff
	movs r0, 0x21
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	str r5, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	adds r3, r7, 0
	bl PrintTextOnWindow
_080E247A:
	ldr r0, =0x000008ab
	bl FlagGet
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	beq _080E24B0
	ldr r2, =gText_LanettesPC
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	adds r3, r7, 0
	bl PrintTextOnWindow
	b _080E24C6
	.pool
_080E24B0:
	ldr r2, =gText_SomeonesPC
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	adds r3, r7, 0
	bl PrintTextOnWindow
_080E24C6:
	ldr r4, =gStringVar4
	ldr r1, =gText_PlayersPC
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r0, r6, 0
	adds r1, r4, 0
	adds r2, r7, 0
	movs r3, 0x11
	bl PrintPlayerNameOnWindow
	adds r0, r6, 0
	mov r1, r8
	movs r2, 0
	bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
	adds r0, r6, 0
	movs r1, 0x3
	bl CopyWindowToVram
	movs r0, 0
	mov r1, r8
	adds r2, r6, 0
	movs r3, 0x1
	bl sub_80E1FBC
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end CreatePCMenu

	thumb_func_start ScriptMenu_DisplayPCStartupPrompt
ScriptMenu_DisplayPCStartupPrompt: @ 80E2514
	push {lr}
	sub sp, 0x10
	movs r0, 0
	movs r1, 0x1
	bl sub_819786C
	ldr r2, =gUnknown_0827266F
	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, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	add sp, 0x10
	pop {r0}
	bx r0
	.pool
	thumb_func_end ScriptMenu_DisplayPCStartupPrompt

	thumb_func_start sub_80E2548
sub_80E2548: @ 80E2548
	push {lr}
	ldr r0, =sub_80E2058
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _080E2570
	ldr r1, =gSpecialVar_Result
	movs r0, 0xFF
	strh r0, [r1]
	bl sub_80E2578
	movs r0, 0x1
	b _080E2572
	.pool
_080E2570:
	movs r0, 0
_080E2572:
	pop {r1}
	bx r1
	thumb_func_end sub_80E2548

	thumb_func_start sub_80E2578
sub_80E2578: @ 80E2578
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0xC
	movs r5, 0
	movs r4, 0
	ldr r3, =gUnknown_03001124
	movs r2, 0xFF
_080E258A:
	adds r0, r4, r3
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x6
	bls _080E258A
	movs r0, 0x1
	movs r1, 0
	bl GetFontAttribute
	ldr r0, =gSpecialVar_0x8004
	ldrh r1, [r0]
	cmp r1, 0
	bne _080E25D2
	ldr r4, =gUnknown_03001124
	adds r0, r5, r4
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	movs r0, 0xE8
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x1
	bne _080E25D2
	adds r0, r5, r4
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_080E25D2:
	ldr r0, =0x00000113
	movs r1, 0x1
	bl CheckBagHasItem
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E2630
	ldr r0, =0x000008b3
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E2630
	ldr r2, =gSpecialVar_0x8004
	ldrh r0, [r2]
	cmp r0, 0
	bne _080E2606
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x2
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_080E2606:
	ldrh r0, [r2]
	cmp r0, 0x1
	bne _080E2630
	movs r4, 0xD7
	lsls r4, 1
	adds r0, r4, 0
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _080E2630
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x2
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl FlagSet
_080E2630:
	movs r0, 0xB9
	lsls r0, 1
	movs r1, 0x1
	bl CheckBagHasItem
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E2690
	movs r0, 0x8E
	lsls r0, 4
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E2690
	ldr r2, =gSpecialVar_0x8004
	ldrh r0, [r2]
	cmp r0, 0
	bne _080E2668
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x3
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_080E2668:
	ldrh r0, [r2]
	cmp r0, 0x1
	bne _080E2690
	ldr r4, =0x000001db
	adds r0, r4, 0
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _080E2690
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x3
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl FlagSet
_080E2690:
	ldr r0, =0x00000173
	movs r1, 0x1
	bl CheckBagHasItem
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E26EC
	ldr r0, =0x000008d5
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E26EC
	ldr r2, =gSpecialVar_0x8004
	ldrh r0, [r2]
	cmp r0, 0
	bne _080E26C4
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x4
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_080E26C4:
	ldrh r0, [r2]
	cmp r0, 0x1
	bne _080E26EC
	ldr r4, =0x000001af
	adds r0, r4, 0
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _080E26EC
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x4
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl FlagSet
_080E26EC:
	movs r0, 0xBC
	lsls r0, 1
	movs r1, 0x1
	bl CheckBagHasItem
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E274C
	ldr r0, =0x000008d6
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _080E274C
	ldr r2, =gSpecialVar_0x8004
	ldrh r0, [r2]
	cmp r0, 0
	bne _080E2722
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x5
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_080E2722:
	ldrh r0, [r2]
	cmp r0, 0x1
	bne _080E274C
	movs r4, 0xD8
	lsls r4, 1
	adds r0, r4, 0
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _080E274C
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x5
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl FlagSet
_080E274C:
	ldr r0, =gUnknown_03001124
	adds r0, r5, r0
	movs r1, 0x6
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0
	bne _080E276E
	movs r0, 0xE8
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
_080E276E:
	adds r7, r5, 0
	cmp r7, 0x7
	bne _080E27A4
	ldr r1, =gSpecialVar_0x8004
	movs r0, 0xB
	strh r0, [r1]
	bl sub_813A128
	b _080E2860
	.pool
_080E27A4:
	movs r1, 0
	movs r4, 0
	lsls r6, r7, 25
	subs r0, r7, 0x1
	mov r9, r0
	ldr r5, =gUnknown_0858BB80
_080E27B0:
	ldr r0, =gUnknown_03001124
	adds r0, r4, r0
	ldrb r0, [r0]
	cmp r0, 0xFF
	beq _080E27C6
	lsls r0, 2
	adds r0, r5
	ldr r0, [r0]
	bl display_text_and_get_width
	adds r1, r0, 0
_080E27C6:
	adds r4, 0x1
	cmp r4, 0x6
	bls _080E27B0
	adds r0, r1, 0
	bl convert_pixel_width_to_tile_width
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	movs r0, 0x1C
	subs r0, r2
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x6
	subs r1, r7
	lsls r1, 25
	lsrs r1, 24
	lsrs r3, r6, 24
	bl CreateWindowFromRect
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r6, 0
	movs r1, 0
	bl SetStandardWindowBorderStyle
	movs r5, 0
	movs r4, 0
	ldr r0, =gUnknown_0858BB80
	mov r8, r0
_080E2802:
	ldr r0, =gUnknown_03001124
	adds r1, r4, r0
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _080E2834
	lsls r0, 2
	add r0, r8
	ldr r2, [r0]
	lsls r0, r5, 4
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_080E2834:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x6
	bls _080E2802
	mov r0, r9
	lsls r2, r0, 24
	lsrs r2, 24
	adds r0, r6, 0
	adds r1, r7, 0
	bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
	adds r0, r6, 0
	movs r1, 0x3
	bl CopyWindowToVram
	movs r0, 0
	adds r1, r7, 0
	adds r2, r6, 0
	movs r3, 0x8
	bl sub_80E1FBC
_080E2860:
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E2578

	thumb_func_start sub_80E2878
sub_80E2878: @ 80E2878
	push {lr}
	ldr r2, =gSpecialVar_Result
	ldrh r0, [r2]
	cmp r0, 0x7F
	beq _080E288C
	ldr r0, =gUnknown_03001124
	ldrh r1, [r2]
	adds r1, r0
	ldrb r0, [r1]
	strh r0, [r2]
_080E288C:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E2878

	thumb_func_start task_picbox
task_picbox: @ 80E2898
	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, 0x1
	beq _080E28F8
	cmp r0, 0x1
	bgt _080E28C0
	cmp r0, 0
	beq _080E28DE
	b _080E28F8
	.pool
_080E28C0:
	cmp r0, 0x2
	beq _080E28CA
	cmp r0, 0x3
	beq _080E28EC
	b _080E28F8
_080E28CA:
	movs r0, 0xC
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	ldrb r1, [r4, 0xC]
	bl FreeResourcesAndDestroySprite
_080E28DE:
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _080E28F8
	.pool
_080E28EC:
	ldrb r0, [r4, 0x12]
	bl sub_80E2A78
	adds r0, r5, 0
	bl DestroyTask
_080E28F8:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end task_picbox

	thumb_func_start ScriptMenu_ShowPokemonPic
ScriptMenu_ShowPokemonPic: @ 80E2900
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r6, r2, 24
	ldr r4, =task_picbox
	adds r0, r4, 0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	bne _080E29B8
	lsls r1, r7, 19
	movs r0, 0xA0
	lsls r0, 14
	adds r1, r0
	asrs r1, 16
	lsls r2, r6, 19
	adds r2, r0
	asrs r2, 16
	mov r0, r8
	movs r3, 0
	bl CreateMonSprite_PicBox
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	adds r0, r4, 0
	movs r1, 0x50
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x8
	movs r3, 0x8
	bl CreateWindowFromRect
	ldr r1, =gTasks
	lsls r3, r4, 2
	adds r3, r4
	lsls r3, 3
	adds r3, r1
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	strh r0, [r3, 0x12]
	strh r1, [r3, 0x8]
	mov r0, r8
	strh r0, [r3, 0xA]
	strh r5, [r3, 0xC]
	ldr r4, =gSprites
	lsls r1, r5, 4
	adds r1, r5
	lsls r1, 2
	adds r0, r4, 0
	adds r0, 0x1C
	adds r0, r1, r0
	ldr r2, =SpriteCallbackDummy
	str r2, [r0]
	adds r1, r4
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x5]
	ldrb r0, [r3, 0x12]
	movs r1, 0x1
	bl SetStandardWindowBorderStyle
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x1
	b _080E29BA
	.pool
_080E29B8:
	movs r0, 0
_080E29BA:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end ScriptMenu_ShowPokemonPic

	thumb_func_start ScriptMenu_GetPicboxWaitFunc
ScriptMenu_GetPicboxWaitFunc: @ 80E29C4
	push {lr}
	ldr r0, =task_picbox
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	beq _080E29F4
	ldr r0, =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	ldr r0, =sub_80E29FC
	b _080E29F6
	.pool
_080E29F4:
	movs r0, 0
_080E29F6:
	pop {r1}
	bx r1
	thumb_func_end ScriptMenu_GetPicboxWaitFunc

	thumb_func_start sub_80E29FC
sub_80E29FC: @ 80E29FC
	push {lr}
	ldr r0, =task_picbox
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _080E2A14
	movs r0, 0
	b _080E2A16
	.pool
_080E2A14:
	movs r0, 0x1
_080E2A16:
	pop {r1}
	bx r1
	thumb_func_end sub_80E29FC

	thumb_func_start CreateWindowFromRect
CreateWindowFromRect: @ 80E2A1C
	push {r4,r5,lr}
	sub sp, 0x20
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 24
	lsls r5, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0x80
	lsls r0, 17
	adds r4, r0
	lsrs r4, 24
	adds r5, r0
	lsrs r5, 24
	str r2, [sp]
	str r3, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0x64
	str r0, [sp, 0xC]
	add r0, sp, 0x10
	movs r1, 0
	adds r2, r4, 0
	adds r3, r5, 0
	bl sub_8198A50
	ldr r0, [sp, 0x10]
	ldr r1, [sp, 0x14]
	str r0, [sp, 0x18]
	str r1, [sp, 0x1C]
	add r0, sp, 0x18
	bl AddWindow
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	bl PutWindowTilemap
	adds r0, r4, 0
	add sp, 0x20
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end CreateWindowFromRect

	thumb_func_start sub_80E2A78
sub_80E2A78: @ 80E2A78
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_8198070
	adds r0, r4, 0
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_80E2A78

	thumb_func_start sub_80E2A94
sub_80E2A94: @ 80E2A94
	push {r4,lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	subs r0, 0x4A
	cmp r0, 0x5
	bhi _080E2B70
	lsls r0, 2
	ldr r1, =_080E2AB0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080E2AB0:
	.4byte _080E2B40
	.4byte _080E2B08
	.4byte _080E2AD8
	.4byte _080E2AC8
	.4byte _080E2AE8
	.4byte _080E2AF8
_080E2AC8:
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gUnknown_0858BBAC
	b _080E2B12
	.pool
_080E2AD8:
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gUnknown_0858BB9C
	b _080E2B12
	.pool
_080E2AE8:
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gUnknown_0858BBBC
	b _080E2B12
	.pool
_080E2AF8:
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gUnknown_0858BBCC
	b _080E2B12
	.pool
_080E2B08:
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gUnknown_0858BBEC
_080E2B12:
	bl GetMenuCursorPos
	lsls r0, 24
	lsrs r0, 22
	adds r0, r4
	ldr r2, [r0]
	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, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	b _080E2B70
	.pool
_080E2B40:
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gUnknown_0858BBE0
	bl GetMenuCursorPos
	lsls r0, 24
	lsrs r0, 22
	adds r0, r4
	ldr r2, [r0]
	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, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
_080E2B70:
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E2A94

	thumb_func_start sp106_CreateStartMenu
sp106_CreateStartMenu: @ 80E2B7C
	push {lr}
	ldr r0, =sub_80E2058
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _080E2BA4
	ldr r1, =gSpecialVar_Result
	movs r0, 0xFF
	strh r0, [r1]
	bl CreateStartMenu
	movs r0, 0x1
	b _080E2BA6
	.pool
_080E2BA4:
	movs r0, 0
_080E2BA6:
	pop {r1}
	bx r1
	thumb_func_end sp106_CreateStartMenu

	thumb_func_start CreateStartMenu
CreateStartMenu: @ 80E2BAC
	push {r4-r6,lr}
	sub sp, 0xC
	movs r0, 0x15
	movs r1, 0
	movs r2, 0x7
	movs r3, 0x12
	bl CreateWindowFromRect
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0
	bl SetStandardWindowBorderStyle
	ldr r2, =gText_MenuOptionPokedex
	movs r0, 0x9
	str r0, [sp]
	movs r5, 0xFF
	str r5, [sp, 0x4]
	movs r6, 0
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	ldr r2, =gText_MenuOptionPokemon
	movs r0, 0x19
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	ldr r2, =gText_MenuOptionBag
	movs r0, 0x29
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	ldr r2, =gText_MenuOptionPokenav
	movs r0, 0x39
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	ldr r0, =gSaveBlock2Ptr
	ldr r2, [r0]
	movs r0, 0x49
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	ldr r2, =gText_MenuOptionSave
	movs r0, 0x59
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	ldr r2, =gText_MenuOptionOption
	movs r0, 0x69
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	ldr r2, =gText_MenuOptionExit
	movs r0, 0x79
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	movs r0, 0x10
	str r0, [sp]
	movs r0, 0x8
	str r0, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x9
	bl sub_81983AC
	movs r0, 0
	movs r1, 0x8
	adds r2, r4, 0
	movs r3, 0x56
	bl sub_80E2CC4
	adds r0, r4, 0
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end CreateStartMenu

	thumb_func_start sub_80E2CC4
sub_80E2CC4: @ 80E2CC4
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r5, r2, 0
	adds r6, r3, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	ldr r1, =gUnknown_02039F90
	movs r0, 0x2
	strb r0, [r1]
	ldr r0, =sub_80E2058
	movs r1, 0x50
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r0, 0
	strh r4, [r1, 0x10]
	strh r0, [r1, 0x12]
	strh r5, [r1, 0x14]
	strh r6, [r1, 0x16]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E2CC4

	thumb_func_start display_text_and_get_width_internal
display_text_and_get_width_internal: @ 80E2D10
	push {lr}
	sub sp, 0x40
	adds r1, r0, 0
	mov r0, sp
	bl StringExpandPlaceholders
	movs r0, 0x1
	mov r1, sp
	movs r2, 0
	bl GetStringWidth
	add sp, 0x40
	pop {r1}
	bx r1
	thumb_func_end display_text_and_get_width_internal

	thumb_func_start display_text_and_get_width
display_text_and_get_width: @ 80E2D2C
	push {r4,lr}
	adds r4, r1, 0
	bl display_text_and_get_width_internal
	cmp r0, r4
	bge _080E2D3A
	adds r0, r4, 0
_080E2D3A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end display_text_and_get_width

	thumb_func_start convert_pixel_width_to_tile_width
convert_pixel_width_to_tile_width: @ 80E2D40
	push {lr}
	adds r1, r0, 0
	adds r0, 0x9
	cmp r0, 0
	bge _080E2D4C
	adds r0, 0x7
_080E2D4C:
	asrs r0, 3
	adds r0, 0x1
	cmp r0, 0x1C
	ble _080E2D56
	movs r0, 0x1C
_080E2D56:
	pop {r1}
	bx r1
	thumb_func_end convert_pixel_width_to_tile_width

	thumb_func_start sub_80E2D5C
sub_80E2D5C: @ 80E2D5C
	push {lr}
	adds r2, r0, 0
	adds r0, r2, r1
	cmp r0, 0x1C
	ble _080E2D70
	movs r0, 0x1C
	subs r2, r0, r1
	cmp r2, 0
	bge _080E2D70
	movs r2, 0
_080E2D70:
	adds r0, r2, 0
	pop {r1}
	bx r1
	thumb_func_end sub_80E2D5C

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