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

	.syntax unified

	.text

	thumb_func_start CB2_MainMenu
@ void CB2_MainMenu()
CB2_MainMenu: @ 802F6B0
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end CB2_MainMenu

	thumb_func_start VBlankCB_MainMenu
@ void VBlankCB_MainMenu()
VBlankCB_MainMenu: @ 802F6C8
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end VBlankCB_MainMenu

	thumb_func_start CB2_InitMainMenu
@ void CB2_InitMainMenu()
CB2_InitMainMenu: @ 802F6DC
	push {lr}
	movs r0, 0
	bl InitMainMenu
	pop {r0}
	bx r0
	thumb_func_end CB2_InitMainMenu

	thumb_func_start CB2_ReinitMainMenu
@ void CB2_ReinitMainMenu()
CB2_ReinitMainMenu: @ 802F6E8
	push {lr}
	movs r0, 0x1
	bl InitMainMenu
	pop {r0}
	bx r0
	thumb_func_end CB2_ReinitMainMenu

	thumb_func_start InitMainMenu
@ void InitMainMenu(bool8 affects_palette_maybe)
InitMainMenu: @ 802F6F4
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	bl SetVBlankCallback
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	movs r0, 0xC
	movs r1, 0
	bl SetGpuReg
	movs r0, 0xA
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x8
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x18
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x14
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x16
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x10
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	add r1, sp, 0x4
	movs r0, 0
	strh r0, [r1]
	ldr r1, =0x040000d4
	add r0, sp, 0x4
	str r0, [r1]
	movs r0, 0xC0
	lsls r0, 19
	str r0, [r1, 0x4]
	ldr r0, =0x8100c000
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	movs r5, 0
	str r5, [sp, 0x8]
	add r0, sp, 0x8
	str r0, [r1]
	movs r0, 0xE0
	lsls r0, 19
	str r0, [r1, 0x4]
	ldr r0, =0x85000100
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	add r0, sp, 0x4
	strh r5, [r0]
	str r0, [r1]
	ldr r0, =0x05000002
	str r0, [r1, 0x4]
	ldr r0, =0x810001ff
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	bl ResetPaletteFade
	ldr r0, =gMainMenuBgPal
	movs r1, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gMainMenuTextPal
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	bl remove_some_task
	bl ResetTasks
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	cmp r4, 0
	beq _0802F7EC
	movs r0, 0x1
	negs r0, r0
	str r5, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	b _0802F7FE
	.pool
_0802F7EC:
	movs r0, 0x1
	negs r0, r0
	ldr r1, =0x0000ffff
	str r1, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
_0802F7FE:
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082FF0E8
	movs r0, 0
	movs r2, 0x2
	bl InitBgsFromTemplates
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldr r0, =gUnknown_082FF038
	bl InitWindows
	bl DeactivateAllTextPrinters
	ldr r1, =0x000001d5
	movs r0, 0
	bl LoadMainMenuWindowFrameTiles
	movs r0, 0x40
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1
	bl EnableInterrupts
	ldr r0, =VBlankCB_MainMenu
	bl SetVBlankCallback
	ldr r0, =CB2_MainMenu
	bl SetMainCallback2
	movs r1, 0xC1
	lsls r1, 6
	movs r0, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl HideBg
	ldr r0, =Task_MainMenuCheckSaveFile
	movs r1, 0
	bl CreateTask
	movs r0, 0
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end InitMainMenu

	thumb_func_start Task_MainMenuCheckSaveFile
@ void Task_MainMenuCheckSaveFile(u8 taskId)
Task_MainMenuCheckSaveFile: @ 802F8D8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	lsls r7, r0, 3
	ldr r0, =gTasks + 0x8
	mov r8, r0
	adds r4, r7, r0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	beq _0802F900
	b _0802FA4E
_0802F900:
	movs r0, 0x40
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0x11
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x31
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0xC1
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0x7
	bl SetGpuReg
	bl sub_80093CC
	lsls r0, 24
	cmp r0, 0
	beq _0802F946
	movs r0, 0x1
	strh r0, [r4, 0x1E]
_0802F946:
	ldr r0, =gSaveFileStatus
	ldrh r0, [r0]
	cmp r0, 0x2
	beq _0802F990
	cmp r0, 0x2
	bgt _0802F968
	cmp r0, 0
	beq _0802F9D0
	cmp r0, 0x1
	beq _0802F972
	b _0802F9D0
	.pool
_0802F968:
	cmp r0, 0x4
	beq _0802F9EC
	cmp r0, 0xFF
	beq _0802F9A4
	b _0802F9D0
_0802F972:
	strh r0, [r4]
	bl IsMysteryGiftEnabled
	cmp r0, 0
	beq _0802F982
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_0802F982:
	mov r0, r8
	subs r0, 0x8
	adds r0, r7, r0
	ldr r1, =Task_MainMenuCheckBattery
	b _0802F9FC
	.pool
_0802F990:
	ldr r0, =gText_SaveFileErased
	bl CreateMainMenuErrorWindow
	strh r5, [r4]
	mov r0, r8
	subs r0, 0x8
	adds r0, r7, r0
	b _0802F9FA
	.pool
_0802F9A4:
	ldr r0, =gText_SaveFileCorrupted
	bl CreateMainMenuErrorWindow
	mov r0, r8
	subs r0, 0x8
	adds r0, r7, r0
	ldr r1, =Task_WaitForSaveFileErrorWindow
	str r1, [r0]
	movs r0, 0x1
	strh r0, [r4]
	bl IsMysteryGiftEnabled
	cmp r0, 0x1
	bne _0802F9FE
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _0802F9FE
	.pool
_0802F9D0:
	movs r0, 0
	strh r0, [r4]
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, =Task_MainMenuCheckBattery
	b _0802F9FC
	.pool
_0802F9EC:
	ldr r0, =gJPText_No1MSubCircuit
	bl CreateMainMenuErrorWindow
	mov r0, r8
	subs r0, 0x8
	adds r0, r7, r0
	strh r5, [r0, 0x8]
_0802F9FA:
	ldr r1, =Task_WaitForSaveFileErrorWindow
_0802F9FC:
	str r1, [r0]
_0802F9FE:
	ldr r2, =gUnknown_02022D06
	ldrh r1, [r2]
	movs r0, 0x80
	lsls r0, 8
	ands r0, r1
	cmp r0, 0
	beq _0802FA3E
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0x2
	beq _0802FA36
	cmp r0, 0x2
	ble _0802FA2C
	cmp r0, 0x3
	beq _0802FA3A
	b _0802FA3E
	.pool
_0802FA2C:
	cmp r0, 0
	blt _0802FA3E
	ldrh r0, [r4]
	adds r0, 0x1
	b _0802FA3C
_0802FA36:
	movs r0, 0x3
	b _0802FA3C
_0802FA3A:
	movs r0, 0x4
_0802FA3C:
	strh r0, [r2]
_0802FA3E:
	ldrh r1, [r2]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r2]
	strh r0, [r4, 0x2]
	ldrh r0, [r4]
	adds r0, 0x2
	strh r0, [r4, 0x18]
_0802FA4E:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_MainMenuCheckSaveFile

	thumb_func_start Task_WaitForSaveFileErrorWindow
@ void Task_WaitForSaveFileErrorWindow(u8 taskId)
Task_WaitForSaveFileErrorWindow: @ 802FA5C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl RunTextPrinters
	movs r0, 0x7
	bl IsTextPrinterActive
	lsls r0, 16
	cmp r0, 0
	bne _0802FA98
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0802FA98
	movs r0, 0x7
	bl ClearWindowTilemap
	ldr r0, =gUnknown_082FF070
	bl sub_8032250
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =Task_MainMenuCheckBattery
	str r1, [r0]
_0802FA98:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_WaitForSaveFileErrorWindow

	thumb_func_start Task_MainMenuCheckBattery
@ void Task_MainMenuCheckBattery(u8 taskId)
Task_MainMenuCheckBattery: @ 802FAB0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0802FB3C
	movs r0, 0x40
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0x11
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x31
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0xC1
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0x7
	bl SetGpuReg
	bl RtcGetErrorStatus
	movs r1, 0xFF
	lsls r1, 4
	ands r1, r0
	cmp r1, 0
	bne _0802FB28
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =Task_DisplayMainMenu
	str r0, [r1]
	b _0802FB3C
	.pool
_0802FB28:
	ldr r0, =gText_BatteryRunDry
	bl CreateMainMenuErrorWindow
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, =Task_WaitForBatteryDryErrorWindow
	str r1, [r0]
_0802FB3C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_MainMenuCheckBattery

	thumb_func_start Task_WaitForBatteryDryErrorWindow
@ void Task_WaitForBatteryDryErrorWindow(u8 taskId)
Task_WaitForBatteryDryErrorWindow: @ 802FB50
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl RunTextPrinters
	movs r0, 0x7
	bl IsTextPrinterActive
	lsls r0, 16
	cmp r0, 0
	bne _0802FB8C
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0802FB8C
	movs r0, 0x7
	bl ClearWindowTilemap
	ldr r0, =gUnknown_082FF070
	bl sub_8032250
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =Task_DisplayMainMenu
	str r1, [r0]
_0802FB8C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_WaitForBatteryDryErrorWindow

	thumb_func_start Task_DisplayMainMenu
@ void Task_DisplayMainMenu(u8 taskId)
Task_DisplayMainMenu: @ 802FBA4
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	beq _0802FBCE
	b _0803006C
_0802FBCE:
	movs r0, 0x40
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0x11
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x31
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0xC1
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0x7
	bl SetGpuReg
	add r0, sp, 0xC
	strh r4, [r0]
	movs r1, 0xFE
	movs r2, 0x2
	bl LoadPalette
	add r1, sp, 0xC
	ldr r2, =0x00007fff
	adds r0, r2, 0
	strh r0, [r1]
	adds r0, r1, 0
	movs r1, 0xFA
	movs r2, 0x2
	bl LoadPalette
	add r1, sp, 0xC
	ldr r2, =0x0000318c
	adds r0, r2, 0
	strh r0, [r1]
	adds r0, r1, 0
	movs r1, 0xFB
	movs r2, 0x2
	bl LoadPalette
	add r1, sp, 0xC
	ldr r2, =0x0000675a
	adds r0, r2, 0
	strh r0, [r1]
	adds r0, r1, 0
	movs r1, 0xFC
	movs r2, 0x2
	bl LoadPalette
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	cmp r0, 0
	bne _0802FC84
	add r1, sp, 0xC
	ldr r2, =0x00007e04
	adds r0, r2, 0
	strh r0, [r1]
	adds r0, r1, 0
	movs r1, 0xF1
	movs r2, 0x2
	bl LoadPalette
	b _0802FC96
	.pool
_0802FC84:
	add r1, sp, 0xC
	ldr r2, =0x0000547f
	adds r0, r2, 0
	strh r0, [r1]
	adds r0, r1, 0
	movs r1, 0xF1
	movs r2, 0x2
	bl LoadPalette
_0802FC96:
	ldr r0, =gTasks
	mov r8, r0
	lsls r1, r7, 2
	adds r0, r1, r7
	lsls r0, 3
	add r0, r8
	movs r2, 0x8
	ldrsh r0, [r0, r2]
	mov r9, r1
	cmp r0, 0x1
	beq _0802FD44
	cmp r0, 0x1
	ble _0802FCBC
	cmp r0, 0x2
	bne _0802FCB6
	b _0802FE00
_0802FCB6:
	cmp r0, 0x3
	bne _0802FCBC
	b _0802FEFC
_0802FCBC:
	movs r0, 0
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x1
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_082FF0E0
	str r5, [sp]
	movs r4, 0x1
	negs r4, r4
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuNewGame
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuOption
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r4, =gUnknown_082FF038
	ldr r5, =0x000001d5
	adds r0, r4, 0
	adds r1, r5, 0
	bl DrawMainMenuWindowBorder
	adds r4, 0x8
	b _0802FED4
	.pool
_0802FD44:
	movs r0, 0x2
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x3
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x4
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_082FF0E0
	str r5, [sp]
	movs r4, 0x1
	negs r4, r4
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuContinue
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuNewGame
	str r0, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuOption
	str r0, [sp, 0x8]
	movs r0, 0x4
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	bl fmt_savegame
	movs r0, 0x2
	bl PutWindowTilemap
	movs r0, 0x3
	bl PutWindowTilemap
	movs r0, 0x4
	bl PutWindowTilemap
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x3
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x4
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r4, =gUnknown_082FF048
	ldr r5, =0x000001d5
	adds r0, r4, 0
	adds r1, r5, 0
	bl DrawMainMenuWindowBorder
	adds r0, r4, 0
	adds r0, 0x8
	adds r1, r5, 0
	bl DrawMainMenuWindowBorder
	adds r4, 0x10
	b _0802FED4
	.pool
_0802FE00:
	movs r0, 0x2
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x3
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x4
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x5
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_082FF0E0
	str r5, [sp]
	movs r4, 0x1
	negs r4, r4
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuContinue
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuNewGame
	str r0, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuMysteryGift
	str r0, [sp, 0x8]
	movs r0, 0x4
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuOption
	str r0, [sp, 0x8]
	movs r0, 0x5
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	bl fmt_savegame
	movs r0, 0x2
	bl PutWindowTilemap
	movs r0, 0x3
	bl PutWindowTilemap
	movs r0, 0x4
	bl PutWindowTilemap
	movs r0, 0x5
	bl PutWindowTilemap
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x3
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x4
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x5
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r4, =gUnknown_082FF048
	ldr r5, =0x000001d5
	adds r0, r4, 0
	adds r1, r5, 0
	bl DrawMainMenuWindowBorder
	adds r0, r4, 0
	adds r0, 0x8
	adds r1, r5, 0
	bl DrawMainMenuWindowBorder
	adds r0, r4, 0
	adds r0, 0x10
	adds r1, r5, 0
	bl DrawMainMenuWindowBorder
	adds r4, 0x18
_0802FED4:
	adds r0, r4, 0
	adds r1, r5, 0
	bl DrawMainMenuWindowBorder
	b _0803005E
	.pool
_0802FEFC:
	movs r0, 0x2
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x3
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x4
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x5
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	movs r0, 0x6
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_082FF0E0
	str r5, [sp]
	movs r4, 0x1
	negs r4, r4
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuContinue
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuNewGame
	str r0, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuMysteryGift2
	str r0, [sp, 0x8]
	movs r0, 0x4
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuMysteryEvents
	str r0, [sp, 0x8]
	movs r0, 0x5
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	str r5, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_MainMenuOption
	str r0, [sp, 0x8]
	movs r0, 0x6
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	bl fmt_savegame
	movs r0, 0x2
	bl PutWindowTilemap
	movs r0, 0x3
	bl PutWindowTilemap
	movs r0, 0x4
	bl PutWindowTilemap
	movs r0, 0x5
	bl PutWindowTilemap
	movs r0, 0x6
	bl PutWindowTilemap
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x3
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x4
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x5
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x6
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r5, =gUnknown_082FF048
	ldr r4, =0x000001d5
	adds r0, r5, 0
	adds r1, r4, 0
	bl DrawMainMenuWindowBorder
	adds r0, r5, 0
	adds r0, 0x8
	adds r1, r4, 0
	bl DrawMainMenuWindowBorder
	adds r0, r5, 0
	adds r0, 0x10
	adds r1, r4, 0
	bl DrawMainMenuWindowBorder
	adds r0, r5, 0
	adds r0, 0x18
	adds r1, r4, 0
	bl DrawMainMenuWindowBorder
	adds r0, r5, 0
	adds r0, 0x20
	adds r1, r4, 0
	bl DrawMainMenuWindowBorder
	ldr r0, =gUnknown_082FF0F4
	ldr r4, =gUnknown_02022D06
	adds r1, r4, 0
	bl AddScrollIndicatorArrowPair
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x1A]
	movs r0, 0x1A
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	add r0, r8
	ldr r1, =Task_ScrollIndicatorArrowPairOnMainMenu
	str r1, [r0]
	ldrh r0, [r4]
	cmp r0, 0x4
	bne _0803005E
	movs r4, 0x80
	lsls r4, 6
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	movs r0, 0x1
	strh r0, [r6, 0x1C]
	movs r2, 0x1A
	ldrsh r1, [r6, r2]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	add r0, r8
	movs r1, 0x1
	strh r1, [r0, 0x26]
_0803005E:
	ldr r0, =gTasks
	mov r2, r9
	adds r1, r2, r7
	lsls r1, 3
	adds r1, r0
	ldr r0, =Task_HighlightSelectedMainMenuItem
	str r0, [r1]
_0803006C:
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_DisplayMainMenu

	thumb_func_start Task_HighlightSelectedMainMenuItem
@ void Task_HighlightSelectedMainMenuItem(u8 taskId)
Task_HighlightSelectedMainMenuItem: @ 80300B0
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	ldrb r0, [r4, 0x8]
	ldrb r1, [r4, 0xA]
	movs r3, 0x24
	ldrsh r2, [r4, r3]
	bl HighlightSelectedMainMenuItem
	ldr r0, =Task_HandleMainMenuInput
	str r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_HighlightSelectedMainMenuItem

	thumb_func_start HandleMainMenuInput
@ u8 HandleMainMenuInput(u8 taskId)
HandleMainMenuInput: @ 80300E0
	push {r4-r7,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r4, r1, 3
	ldr r7, =gTasks + 0x8
	adds r5, r4, r7
	ldr r1, =gMain
	ldrh r2, [r1, 0x2E]
	movs r0, 0x1
	ands r0, r2
	cmp r0, 0
	beq _08030130
	movs r0, 0x5
	bl PlaySE
	bl sub_80093CC
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	adds r0, r7, 0
	subs r0, 0x8
	adds r0, r4, r0
	ldr r1, =Task_HandleMainMenuAPressed
	str r1, [r0]
	b _08030240
	.pool
_08030130:
	movs r0, 0x2
	ands r0, r2
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0
	beq _08030178
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	ldr r1, =0x0000ffff
	str r1, [sp]
	movs r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	movs r0, 0x40
	movs r1, 0xF0
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0xA0
	bl SetGpuReg
	adds r0, r7, 0
	subs r0, 0x8
	adds r0, r4, r0
	ldr r1, =Task_HandleMainMenuBPressed
	str r1, [r0]
	b _08030240
	.pool
_08030178:
	movs r0, 0x40
	ands r0, r2
	cmp r0, 0
	beq _080301CA
	movs r0, 0x2
	ldrsh r2, [r5, r0]
	cmp r2, 0
	ble _080301CA
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0x3
	bne _080301C4
	movs r1, 0x1C
	ldrsh r0, [r5, r1]
	cmp r0, 0x1
	bne _080301C4
	cmp r2, 0x1
	bne _080301C4
	movs r4, 0x80
	lsls r4, 6
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0x2
	bl ChangeBgY
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x2
	bl ChangeBgY
	movs r2, 0x1A
	ldrsh r1, [r5, r2]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r7, r0
	strh r6, [r5, 0x1C]
	strh r6, [r0, 0x1E]
_080301C4:
	ldrh r0, [r5, 0x2]
	subs r0, 0x1
	b _0803022C
_080301CA:
	ldrh r1, [r1, 0x2E]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _08030240
	movs r0, 0x2
	ldrsh r1, [r5, r0]
	movs r2, 0x18
	ldrsh r0, [r5, r2]
	subs r0, 0x1
	cmp r1, r0
	bge _08030240
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0x3
	bne _08030228
	movs r2, 0x2
	ldrsh r0, [r5, r2]
	cmp r0, 0x3
	bne _08030228
	movs r1, 0x1C
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _08030228
	movs r4, 0x80
	lsls r4, 6
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	ldr r2, =gTasks
	movs r0, 0x1A
	ldrsh r1, [r5, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	movs r1, 0x1
	strh r1, [r5, 0x1C]
	movs r1, 0x1
	strh r1, [r0, 0x26]
_08030228:
	ldrh r0, [r5, 0x2]
	adds r0, 0x1
_0803022C:
	strh r0, [r5, 0x2]
	ldr r1, =gUnknown_02022D06
	strh r0, [r1]
	movs r0, 0x1
	b _08030242
	.pool
_08030240:
	movs r0, 0
_08030242:
	add sp, 0x4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end HandleMainMenuInput

	thumb_func_start Task_HandleMainMenuInput
@ void Task_HandleMainMenuInput(u8 taskId)
Task_HandleMainMenuInput: @ 803024C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r0, r4, 0
	bl HandleMainMenuInput
	lsls r0, 24
	cmp r0, 0
	beq _0803026C
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =Task_HighlightSelectedMainMenuItem
	str r0, [r1]
_0803026C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_HandleMainMenuInput

	thumb_func_start Task_HandleMainMenuAPressed
@ void Task_HandleMainMenuAPressed(int task_id)
Task_HandleMainMenuAPressed: @ 803027C
	push {r4-r7,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _08030292
	b _08030536
_08030292:
	ldr r2, =gTasks
	lsls r1, r6, 2
	adds r0, r1, r6
	lsls r0, 3
	adds r4, r0, r2
	movs r2, 0x8
	ldrsh r0, [r4, r2]
	adds r7, r1, 0
	cmp r0, 0x3
	bne _080302B0
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	bl RemoveScrollIndicatorArrowPair
_080302B0:
	movs r0, 0
	movs r1, 0x1
	bl sub_819746C
	movs r0, 0x1
	movs r1, 0x1
	bl sub_819746C
	movs r0, 0x2
	movs r1, 0x1
	bl sub_819746C
	movs r0, 0x3
	movs r1, 0x1
	bl sub_819746C
	movs r0, 0x4
	movs r1, 0x1
	bl sub_819746C
	movs r0, 0x5
	movs r1, 0x1
	bl sub_819746C
	movs r0, 0x6
	movs r1, 0x1
	bl sub_819746C
	movs r0, 0x7
	movs r1, 0x1
	bl sub_819746C
	bl sub_80093CC
	lsls r0, 24
	lsrs r2, r0, 24
	movs r3, 0x8
	ldrsh r0, [r4, r3]
	cmp r0, 0x1
	beq _08030324
	cmp r0, 0x1
	ble _0803030C
	cmp r0, 0x2
	beq _08030336
	cmp r0, 0x3
	beq _08030358
_0803030C:
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _08030388
	cmp r0, 0x1
	bne _08030388
	b _080303D8
	.pool
_08030324:
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	cmp r0, 0x1
	beq _08030388
	cmp r0, 0x1
	ble _08030384
	cmp r0, 0x2
	bne _08030384
	b _080303D8
_08030336:
	movs r3, 0xA
	ldrsh r0, [r4, r3]
	cmp r0, 0x1
	beq _08030388
	cmp r0, 0x1
	ble _08030384
	cmp r0, 0x2
	beq _0803034C
	cmp r0, 0x3
	beq _080303D8
	b _08030384
_0803034C:
	movs r5, 0x3
	cmp r2, 0
	bne _080303DA
	movs r5, 0x6
	strh r2, [r4, 0x8]
	b _080303DA
_08030358:
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0x4
	bhi _08030384
	lsls r0, 2
	ldr r1, =_08030370
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08030370:
	.4byte _08030384
	.4byte _08030388
	.4byte _0803038C
	.4byte _080303BC
	.4byte _080303D8
_08030384:
	movs r5, 0x1
	b _080303DA
_08030388:
	movs r5, 0
	b _080303DA
_0803038C:
	ldr r0, =gTasks
	adds r1, r7, r6
	lsls r1, 3
	adds r1, r0
	movs r3, 0x26
	ldrsh r0, [r1, r3]
	cmp r0, 0
	beq _080303AC
	movs r5, 0x3
	cmp r2, 0
	bne _080303DA
	movs r5, 0x6
	strh r2, [r1, 0x8]
	b _080303DA
	.pool
_080303AC:
	cmp r2, 0
	beq _080303B8
	movs r5, 0x6
	movs r0, 0x1
	strh r0, [r1, 0x8]
	b _080303DA
_080303B8:
	movs r5, 0x5
	b _080303DA
_080303BC:
	cmp r2, 0
	beq _080303D4
	movs r5, 0x6
	ldr r0, =gTasks
	adds r1, r7, r6
	lsls r1, 3
	adds r1, r0
	movs r0, 0x2
	strh r0, [r1, 0x8]
	b _080303DA
	.pool
_080303D4:
	movs r5, 0x4
	b _080303DA
_080303D8:
	movs r5, 0x2
_080303DA:
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	cmp r5, 0x6
	bhi _0803041C
	lsls r0, r5, 2
	ldr r1, =_08030400
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08030400:
	.4byte _0803041C
	.4byte _08030444
	.4byte _08030460
	.4byte _08030478
	.4byte _08030480
	.4byte _08030488
	.4byte _0803049C
_0803041C:
	ldr r0, =gPlttBufferUnfaded
	movs r1, 0
	strh r1, [r0]
	ldr r0, =gPlttBufferFaded
	strh r1, [r0]
	ldr r1, =gTasks
	adds r0, r7, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_1
	str r1, [r0]
	b _08030514
	.pool
_08030444:
	ldr r0, =gPlttBufferUnfaded
	movs r1, 0
	strh r1, [r0]
	ldr r0, =gPlttBufferFaded
	strh r1, [r0]
	ldr r0, =sub_8086230
	b _0803048A
	.pool
_08030460:
	ldr r0, =gMain
	ldr r1, =CB2_ReinitMainMenu
	str r1, [r0, 0x8]
	ldr r0, =CB2_OptionsMenu
	b _0803048A
	.pool
_08030478:
	ldr r0, =c2_mystery_gift
	b _0803048A
	.pool
_08030480:
	ldr r0, =sub_8178974
	b _0803048A
	.pool
_08030488:
	ldr r0, =sub_801867C
_0803048A:
	bl SetMainCallback2
	adds r0, r6, 0
	bl DestroyTask
	b _08030514
	.pool
_0803049C:
	ldr r1, =gTasks
	adds r0, r7, r6
	lsls r0, 3
	adds r0, r1
	movs r4, 0
	strh r4, [r0, 0xA]
	ldr r1, =Task_DisplayMainMenuInvalidActionError
	str r1, [r0]
	ldr r0, =gPlttBufferUnfaded
	movs r2, 0xF1
	lsls r2, 1
	adds r0, r2
	ldr r1, =0x00007fff
	strh r1, [r0]
	ldr r0, =gPlttBufferFaded
	adds r0, r2
	strh r1, [r0]
	movs r0, 0x18
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x14
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x16
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x10
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1
	negs r0, r0
	str r4, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	b _08030536
	.pool
_08030514:
	bl FreeAllWindowBuffers
	cmp r5, 0x2
	beq _08030528
	ldr r1, =gUnknown_02022D06
	movs r0, 0
	strh r0, [r1]
	b _08030536
	.pool
_08030528:
	ldr r0, =gUnknown_02022D06
	ldrh r1, [r0]
	movs r3, 0x80
	lsls r3, 8
	adds r2, r3, 0
	orrs r1, r2
	strh r1, [r0]
_08030536:
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_HandleMainMenuAPressed

	thumb_func_start Task_HandleMainMenuBPressed
@ void Task_HandleMainMenuBPressed(u8 taskId)
Task_HandleMainMenuBPressed: @ 8030544
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	adds r5, r2, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _0803058C
	ldr r0, =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	movs r2, 0x8
	ldrsh r0, [r1, r2]
	cmp r0, 0x3
	bne _08030578
	ldrh r0, [r1, 0x22]
	lsls r0, 24
	lsrs r0, 24
	bl RemoveScrollIndicatorArrowPair
_08030578:
	ldr r0, =gUnknown_02022D06
	strh r4, [r0]
	bl FreeAllWindowBuffers
	ldr r0, =c2_title_screen_1
	bl SetMainCallback2
	adds r0, r5, 0
	bl DestroyTask
_0803058C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_HandleMainMenuBPressed

	thumb_func_start Task_DisplayMainMenuInvalidActionError
@ void Task_DisplayMainMenuInvalidActionError(u8 taskId)
Task_DisplayMainMenuInvalidActionError: @ 80305A4
	push {r4,r5,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r0, 0xA
	ldrsh r1, [r4, r0]
	cmp r1, 0x1
	beq _0803063C
	cmp r1, 0x1
	bgt _080305CC
	cmp r1, 0
	beq _080305D6
	b _08030688
	.pool
_080305CC:
	cmp r1, 0x2
	beq _0803064C
	cmp r1, 0x3
	beq _08030664
	b _08030688
_080305D6:
	movs r0, 0x1E
	str r0, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	beq _08030610
	cmp r0, 0x1
	bgt _080305FC
	cmp r0, 0
	beq _08030602
	b _08030622
_080305FC:
	cmp r0, 0x2
	beq _0803061C
	b _08030622
_08030602:
	ldr r0, =gText_WirelessNotConnected
	bl CreateMainMenuErrorWindow
	b _08030622
	.pool
_08030610:
	ldr r0, =gText_MysteryGiftCantUse
	bl CreateMainMenuErrorWindow
	b _08030622
	.pool
_0803061C:
	ldr r0, =gText_MysteryEventsCantUse
	bl CreateMainMenuErrorWindow
_08030622:
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _08030688
	.pool
_0803063C:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	b _08030658
	.pool
_0803064C:
	bl RunTextPrinters
	movs r0, 0x7
	bl IsTextPrinterActive
	lsls r0, 16
_08030658:
	cmp r0, 0
	bne _08030688
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	b _08030688
_08030664:
	ldr r0, =gMain
	ldrh r0, [r0, 0x2E]
	ands r1, r0
	cmp r1, 0
	beq _08030688
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r0, =Task_HandleMainMenuBPressed
	str r0, [r4]
_08030688:
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_DisplayMainMenuInvalidActionError

	thumb_func_start HighlightSelectedMainMenuItem
@ void HighlightSelectedMainMenuItem(u8 a1, u8 selectedMenuItem, u16 a3)
HighlightSelectedMainMenuItem: @ 8030698
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 24
	lsrs r4, r1, 24
	lsls r2, 16
	lsrs r6, r2, 16
	ldr r1, =0x000009e7
	movs r0, 0x40
	bl SetGpuReg
	cmp r5, 0x1
	beq _080306DC
	cmp r5, 0x1
	ble _080306BE
	cmp r5, 0x2
	beq _08030700
	cmp r5, 0x3
	beq _08030728
_080306BE:
	cmp r4, 0
	beq _080306C6
	cmp r4, 0x1
	beq _080306D4
_080306C6:
	ldr r1, =0x0000011f
	b _0803078E
	.pool
_080306D4:
	ldr r1, =0x0000213f
	b _0803078E
	.pool
_080306DC:
	cmp r4, 0x1
	beq _080306F0
	cmp r4, 0x1
	ble _080306E8
	cmp r4, 0x2
	beq _080306F8
_080306E8:
	ldr r1, =0x0000013f
	b _0803078E
	.pool
_080306F0:
	ldr r1, =0x0000415f
	b _0803078E
	.pool
_080306F8:
	ldr r1, =0x0000617f
	b _0803078E
	.pool
_08030700:
	cmp r4, 0x1
	beq _08030718
	cmp r4, 0x1
	ble _08030710
	cmp r4, 0x2
	beq _08030720
	cmp r4, 0x3
	beq _0803078C
_08030710:
	ldr r1, =0x0000013f
	b _0803078E
	.pool
_08030718:
	ldr r1, =0x0000415f
	b _0803078E
	.pool
_08030720:
	ldr r1, =0x0000617f
	b _0803078E
	.pool
_08030728:
	cmp r4, 0x4
	bhi _08030750
	lsls r0, r4, 2
	ldr r1, =_0803073C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0803073C:
	.4byte _08030750
	.4byte _08030758
	.4byte _0803076C
	.4byte _08030780
	.4byte _0803079C
_08030750:
	ldr r1, =0x0000013f
	b _0803078E
	.pool
_08030758:
	cmp r6, 0
	beq _08030764
	ldr r1, =0x0000213f
	b _0803078E
	.pool
_08030764:
	ldr r1, =0x0000415f
	b _0803078E
	.pool
_0803076C:
	cmp r6, 0
	beq _08030778
	ldr r1, =0x0000415f
	b _0803078E
	.pool
_08030778:
	ldr r1, =0x0000617f
	b _0803078E
	.pool
_08030780:
	cmp r6, 0
	beq _0803078C
	ldr r1, =0x0000617f
	b _0803078E
	.pool
_0803078C:
	ldr r1, =0x0000819f
_0803078E:
	movs r0, 0x44
	bl SetGpuReg
	b _080307A4
	.pool
_0803079C:
	ldr r1, =0x0000819f
	movs r0, 0x44
	bl SetGpuReg
_080307A4:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end HighlightSelectedMainMenuItem

	thumb_func_start task_new_game_prof_birch_speech_1
@ void task_new_game_prof_birch_speech_1(int task_id)
task_new_game_prof_birch_speech_1: @ 80307B0
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	ldr r0, =gUnknown_082FF0F0
	bl InitBgFromTemplate
	movs r0, 0x40
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	ldr r0, =gBirchIntroShadowGfx
	movs r1, 0xC0
	lsls r1, 19
	bl LZ77UnCompVram
	ldr r0, =gUnknown_082FEEF0
	ldr r1, =0x06003800
	bl LZ77UnCompVram
	ldr r0, =gUnknown_082FECFC
	movs r1, 0
	movs r2, 0x40
	bl LoadPalette
	ldr r0, =gUnknown_082FF028
	movs r1, 0x1
	movs r2, 0x10
	bl LoadPalette
	bl remove_some_task
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl dp13_810BB8C
	adds r0, r4, 0
	bl AddBirchSpeechObjects
	movs r0, 0x1
	negs r0, r0
	movs r5, 0
	str r5, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	strh r5, [r0, 0x10]
	ldr r1, =task_new_game_prof_birch_speech_2
	str r1, [r0]
	movs r1, 0xFF
	strh r1, [r0, 0xC]
	strh r1, [r0, 0xE]
	movs r1, 0xD8
	strh r1, [r0, 0x16]
	movs r0, 0xBB
	lsls r0, 1
	bl PlayBGM
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_1

	thumb_func_start task_new_game_prof_birch_speech_2
task_new_game_prof_birch_speech_2: @ 80308B0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	ldrh r1, [r4, 0x16]
	movs r2, 0x16
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _080308D4
	subs r0, r1, 0x1
	strh r0, [r4, 0x16]
	b _0803091A
	.pool
_080308D4:
	ldrb r0, [r4, 0x18]
	ldr r2, =gSprites
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	movs r0, 0x88
	strh r0, [r1, 0x20]
	movs r0, 0x3C
	strh r0, [r1, 0x22]
	adds r3, r1, 0
	adds r3, 0x3E
	ldrb r2, [r3]
	subs r0, 0x41
	ands r0, r2
	strb r0, [r3]
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1, 0x1]
	adds r0, r5, 0
	movs r1, 0xA
	bl sub_8031BAC
	adds r0, r5, 0
	movs r1, 0x14
	bl sub_8031D34
	movs r0, 0x50
	strh r0, [r4, 0x16]
	ldr r0, =task_new_game_prof_birch_speech_3
	str r0, [r4]
_0803091A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_2

	thumb_func_start task_new_game_prof_birch_speech_3
@ int task_new_game_prof_birch_speech_3()
task_new_game_prof_birch_speech_3: @ 8030928
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _080309B6
	ldr r2, =gSprites
	movs r1, 0x18
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x1]
	ldrh r1, [r4, 0x16]
	movs r2, 0x16
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _08030970
	subs r0, r1, 0x1
	strh r0, [r4, 0x16]
	b _080309B6
	.pool
_08030970:
	ldr r0, =gUnknown_082FF080
	bl InitWindows
	movs r0, 0
	movs r1, 0xF3
	bl LoadMainMenuWindowFrameTiles
	movs r0, 0
	movs r1, 0xFC
	movs r2, 0xF0
	bl copy_textbox_border_tile_patterns_to_vram
	movs r0, 0
	movs r1, 0x1
	bl unknown_rbox_to_vram
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0
	bl sub_8032318
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C897B
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r0, =task_new_game_prof_birch_speech_4
	str r0, [r4]
_080309B6:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_3

	thumb_func_start task_new_game_prof_birch_speech_4
task_new_game_prof_birch_speech_4: @ 80309CC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08030A0A
	bl sub_8197224
	lsls r0, 16
	cmp r0, 0
	bne _08030A0A
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_5
	str r1, [r0]
	ldr r0, =gStringVar4
	ldr r1, =gText_ThisIsAPokemon
	bl StringExpandPlaceholders
	ldr r1, =sub_80323A0
	movs r0, 0x1
	bl AddTextPrinterWithCallbackForMessage
	ldr r0, =gUnknown_03000DD0
	strb r4, [r0]
_08030A0A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_4

	thumb_func_start task_new_game_prof_birch_speech_5
task_new_game_prof_birch_speech_5: @ 8030A2C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8197224
	lsls r0, 16
	cmp r0, 0
	bne _08030A58
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C8A1F
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_6
	str r1, [r0]
_08030A58:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_5

	thumb_func_start sub_8030A70
sub_8030A70: @ 8030A70
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x14
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r6, =gTasks
	ldr r0, =gUnknown_03000DD0
	mov r8, r0
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r6
	ldrb r0, [r0, 0x1A]
	ldr r1, =gSprites
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r1
	movs r5, 0
	movs r1, 0x64
	strh r1, [r2, 0x20]
	movs r1, 0x4B
	strh r1, [r2, 0x22]
	movs r1, 0x3E
	adds r1, r2
	mov r12, r1
	ldrb r3, [r1]
	movs r1, 0x5
	negs r1, r1
	ands r1, r3
	mov r3, r12
	strb r1, [r3]
	strh r5, [r2, 0x2E]
	ldrb r1, [r2, 0x5]
	lsrs r1, 4
	str r5, [sp]
	str r5, [sp, 0x4]
	movs r2, 0x20
	str r2, [sp, 0x8]
	ldr r2, =0x0000ffff
	str r2, [sp, 0xC]
	ldr r2, =0x00000127
	str r2, [sp, 0x10]
	movs r2, 0x70
	movs r3, 0x3A
	bl sub_8076438
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r6
	ldr r1, =sub_8030B14
	str r1, [r0]
	mov r0, r8
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r6
	strh r5, [r0, 0x16]
	add sp, 0x14
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8030A70

	thumb_func_start sub_8030B14
sub_8030B14: @ 8030B14
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	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
	subs r1, 0x8
	mov r8, r1
	ldr r2, =gUnknown_03000DD0
	ldrb r1, [r2]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	mov r1, r8
	adds r6, r0, r1
	movs r0, 0x1A
	ldrsh r1, [r6, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r3, r0, r1
	movs r1, 0
	ldrsh r0, [r5, r1]
	adds r7, r2, 0
	cmp r0, 0
	beq _08030B64
	cmp r0, 0x1
	beq _08030B7C
	b _08030B98
	.pool
_08030B64:
	ldr r1, [r3, 0x1C]
	ldr r0, =SpriteCallbackDummy
	cmp r1, r0
	bne _08030BBA
	ldrb r1, [r3, 0x1]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	strb r0, [r3, 0x1]
	b _08030B98
	.pool
_08030B7C:
	movs r1, 0x16
	ldrsh r0, [r6, r1]
	cmp r0, 0x5F
	ble _08030BBA
	adds r0, r4, 0
	bl DestroyTask
	ldrb r1, [r7]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	mov r1, r8
	adds r2, r0, r1
	b _08030BAA
_08030B98:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	ldr r2, =gTasks
	ldrb r1, [r7]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r2, r0, r2
_08030BAA:
	ldrh r3, [r2, 0x16]
	movs r0, 0x16
	ldrsh r1, [r2, r0]
	ldr r0, =0x00003fff
	cmp r1, r0
	bgt _08030BBA
	adds r0, r3, 0x1
	strh r0, [r2, 0x16]
_08030BBA:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8030B14

	thumb_func_start task_new_game_prof_birch_speech_6
task_new_game_prof_birch_speech_6: @ 8030BCC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8197224
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	bne _08030BFE
	ldr r0, =gUnknown_02022D04
	strb r1, [r0]
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C8BD0
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_7
	str r1, [r0]
_08030BFE:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_6

	thumb_func_start task_new_game_prof_birch_speech_7
task_new_game_prof_birch_speech_7: @ 8030C18
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	bl sub_8197224
	lsls r0, 16
	cmp r0, 0
	bne _08030C7C
	ldr r5, =gSprites
	ldr r0, =gTasks
	lsls r4, r6, 2
	adds r4, r6
	lsls r4, 3
	adds r4, r0
	movs r1, 0x18
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r5
	ldrb r3, [r1, 0x1]
	movs r2, 0xD
	negs r2, r2
	adds r0, r2, 0
	ands r0, r3
	movs r3, 0x4
	orrs r0, r3
	strb r0, [r1, 0x1]
	movs r0, 0x1A
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrb r1, [r0, 0x1]
	ands r2, r1
	orrs r2, r3
	strb r2, [r0, 0x1]
	adds r0, r6, 0
	movs r1, 0x2
	bl sub_8031ACC
	adds r0, r6, 0
	movs r1, 0x1
	bl sub_8031C88
	movs r0, 0x40
	strh r0, [r4, 0x16]
	ldr r0, =task_new_game_prof_birch_speech_8
	str r0, [r4]
_08030C7C:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_7

	thumb_func_start task_new_game_prof_birch_speech_8
task_new_game_prof_birch_speech_8: @ 8030C90
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r2, r1, r2
	ldrh r3, [r2, 0x10]
	movs r0, 0x10
	ldrsh r1, [r2, r0]
	movs r0, 0x3C
	negs r0, r0
	cmp r1, r0
	beq _08030CC0
	subs r0, r3, 0x2
	strh r0, [r2, 0x10]
	ldrh r1, [r2, 0x10]
	movs r0, 0x14
	bl SetGpuReg
	b _08030CC8
	.pool
_08030CC0:
	ldr r0, =0x0000ffc4
	strh r0, [r2, 0x10]
	ldr r0, =task_new_game_prof_birch_speech_9
	str r0, [r2]
_08030CC8:
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_8

	thumb_func_start task_new_game_prof_birch_speech_9
task_new_game_prof_birch_speech_9: @ 8030CD4
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r5, r0, 0
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _08030D7A
	ldr r2, =gSprites
	movs r0, 0x18
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r7, 0x4
	orrs r1, r7
	strb r1, [r0]
	movs r0, 0x1A
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r7
	strb r1, [r0]
	ldrh r0, [r4, 0x16]
	movs r1, 0x16
	ldrsh r6, [r4, r1]
	cmp r6, 0
	beq _08030D34
	subs r0, 0x1
	strh r0, [r4, 0x16]
	b _08030D7A
	.pool
_08030D34:
	ldrb r3, [r4, 0x1C]
	lsls r1, r3, 4
	adds r1, r3
	lsls r1, 2
	adds r1, r2
	movs r0, 0xB4
	strh r0, [r1, 0x20]
	movs r0, 0x3C
	strh r0, [r1, 0x22]
	movs r2, 0x3E
	adds r2, r1
	mov r12, r2
	ldrb r2, [r2]
	subs r0, 0x41
	ands r0, r2
	mov r2, r12
	strb r0, [r2]
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	orrs r0, r7
	strb r0, [r1, 0x1]
	strh r3, [r4, 0xC]
	strh r6, [r4, 0x14]
	adds r0, r5, 0
	movs r1, 0x2
	bl sub_8031BAC
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_8031D34
	ldr r0, =task_new_game_prof_birch_speech_10
	str r0, [r4]
_08030D7A:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_9

	thumb_func_start task_new_game_prof_birch_speech_10
task_new_game_prof_birch_speech_10: @ 8030D84
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r3, r1, r2
	movs r1, 0x12
	ldrsh r0, [r3, r1]
	cmp r0, 0
	beq _08030DB8
	ldr r2, =gSprites
	movs r1, 0xC
	ldrsh r0, [r3, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x1]
	ldr r0, =task_new_game_prof_birch_speech_11
	str r0, [r3]
_08030DB8:
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_10

	thumb_func_start task_new_game_prof_birch_speech_11
task_new_game_prof_birch_speech_11: @ 8030DC8
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	bl sub_8032318
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C8BDD
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_12
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_11

	thumb_func_start task_new_game_prof_birch_speech_12
task_new_game_prof_birch_speech_12: @ 8030E08
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8197224
	lsls r0, 16
	cmp r0, 0
	bne _08030E2A
	bl sub_8031D74
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =task_new_game_prof_birch_speech_13
	str r0, [r1]
_08030E2A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_12

	thumb_func_start task_new_game_prof_birch_speech_13
task_new_game_prof_birch_speech_13: @ 8030E38
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_8031DB4
	lsls r0, 24
	asrs r4, r0, 24
	cmp r4, 0
	beq _08030E52
	cmp r4, 0x1
	beq _08030E52
	lsls r4, r5, 2
	b _08030E76
_08030E52:
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	strb r4, [r0, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	bl sub_80322E0
	ldr r1, =gTasks
	lsls r2, r5, 2
	adds r0, r2, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_14
	str r1, [r0]
	adds r4, r2, 0
_08030E76:
	bl GetMenuCursorPos
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r1, =gTasks
	adds r0, r4, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r1, 0x14
	ldrsh r0, [r4, r1]
	cmp r3, r0
	beq _08030EB8
	strh r3, [r4, 0x14]
	ldr r2, =gSprites
	movs r0, 0xC
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrb r2, [r0, 0x1]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0, 0x1]
	adds r0, r5, 0
	movs r1, 0
	bl sub_8031ACC
	ldr r0, =sub_8030ED4
	str r0, [r4]
_08030EB8:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_13

	thumb_func_start sub_8030ED4
sub_8030ED4: @ 8030ED4
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r4, r0, r1
	ldrb r5, [r4, 0xC]
	movs r2, 0x12
	ldrsh r0, [r4, r2]
	adds r7, r1, 0
	cmp r0, 0
	bne _08030F0C
	ldr r0, =gSprites
	lsls r1, r5, 4
	adds r1, r5
	lsls r1, 2
	adds r1, r0
	ldrh r0, [r1, 0x20]
	adds r0, 0x4
	strh r0, [r1, 0x20]
	b _08030F72
	.pool
_08030F0C:
	ldr r3, =gSprites
	lsls r0, r5, 4
	adds r0, r5
	lsls r0, 2
	adds r0, r3
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	movs r1, 0x14
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _08030F30
	ldrb r5, [r4, 0x1E]
	b _08030F32
	.pool
_08030F30:
	ldrb r5, [r4, 0x1C]
_08030F32:
	lsls r2, r5, 4
	adds r2, r5
	lsls r2, 2
	adds r2, r3
	movs r0, 0xF0
	strh r0, [r2, 0x20]
	movs r0, 0x3C
	strh r0, [r2, 0x22]
	adds r3, r2, 0
	adds r3, 0x3E
	ldrb r1, [r3]
	subs r0, 0x41
	ands r0, r1
	strb r0, [r3]
	lsls r4, r6, 2
	adds r4, r6
	lsls r4, 3
	adds r4, r7
	strh r5, [r4, 0xC]
	ldrb r1, [r2, 0x1]
	movs r0, 0xD
	negs r0, r0
	ands r0, r1
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2, 0x1]
	adds r0, r6, 0
	movs r1, 0
	bl sub_8031BAC
	ldr r0, =sub_8030F7C
	str r0, [r4]
_08030F72:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8030ED4

	thumb_func_start sub_8030F7C
sub_8030F7C: @ 8030F7C
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r3, r1, r2
	ldrb r1, [r3, 0xC]
	ldr r2, =gSprites
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, r0, r2
	ldrh r1, [r2, 0x20]
	movs r4, 0x20
	ldrsh r0, [r2, r4]
	cmp r0, 0xB4
	ble _08030FB0
	subs r0, r1, 0x4
	strh r0, [r2, 0x20]
	b _08030FCA
	.pool
_08030FB0:
	movs r0, 0xB4
	strh r0, [r2, 0x20]
	movs r1, 0x12
	ldrsh r0, [r3, r1]
	cmp r0, 0
	beq _08030FCA
	ldrb r0, [r2, 0x1]
	movs r1, 0xD
	negs r1, r1
	ands r1, r0
	strb r1, [r2, 0x1]
	ldr r0, =task_new_game_prof_birch_speech_13
	str r0, [r3]
_08030FCA:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8030F7C

	thumb_func_start task_new_game_prof_birch_speech_14
task_new_game_prof_birch_speech_14: @ 8030FD4
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	bl sub_8032318
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C8BFF
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_15
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_14

	thumb_func_start task_new_game_prof_birch_speech_15
task_new_game_prof_birch_speech_15: @ 8031014
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8197224
	lsls r0, 16
	cmp r0, 0
	bne _08031032
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =task_new_game_prof_birch_speech_16
	str r0, [r1]
_08031032:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_15

	thumb_func_start task_new_game_prof_birch_speech_16
task_new_game_prof_birch_speech_16: @ 8031040
	push {r4,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _0803105C
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0803107A
_0803105C:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_17
	str r1, [r0]
_0803107A:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_16

	thumb_func_start task_new_game_prof_birch_speech_17
task_new_game_prof_birch_speech_17: @ 8031090
	push {r4,r5,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	bne _080310EC
	bl FreeAllWindowBuffers
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldrh r0, [r0, 0x1A]
	bl sub_818D820
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x14
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	bl set_default_player_name
	adds r0, r4, 0
	bl DestroyTask
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	ldrb r2, [r1, 0x8]
	str r5, [sp]
	ldr r0, =new_game_prof_birch_speech_part2_start
	str r0, [sp, 0x4]
	movs r0, 0
	movs r3, 0
	bl DoNamingScreen
_080310EC:
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_17

	thumb_func_start task_new_game_prof_birch_speech_part2_2
task_new_game_prof_birch_speech_part2_2: @ 8031104
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	bl sub_8032318
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C8C1C
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_part2_3
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_2

	thumb_func_start task_new_game_prof_birch_speech_part2_3
task_new_game_prof_birch_speech_part2_3: @ 8031144
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_8197224
	lsls r0, 16
	cmp r0, 0
	bne _08031178
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0xF
	str r0, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0xF3
	movs r3, 0xDF
	bl sub_80323CC
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =task_new_game_prof_birch_speech_part2_4
	str r1, [r0]
_08031178:
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_3

	thumb_func_start task_new_game_prof_birch_speech_part2_4
task_new_game_prof_birch_speech_part2_4: @ 8031188
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_8198C58
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _080311AE
	cmp r1, 0
	bgt _080311A8
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _080311FC
	b _08031210
_080311A8:
	cmp r1, 0x1
	beq _080311FC
	b _08031210
_080311AE:
	movs r0, 0x5
	bl PlaySE
	ldr r2, =gSprites
	ldr r0, =gTasks
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	adds r4, r0
	movs r0, 0xC
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrb r2, [r0, 0x1]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0, 0x1]
	adds r0, r5, 0
	movs r1, 0x2
	bl sub_8031ACC
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_8031C88
	ldr r0, =task_new_game_prof_birch_speech_part2_5
	str r0, [r4]
	b _08031210
	.pool
_080311FC:
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =task_new_game_prof_birch_speech_11
	str r0, [r1]
_08031210:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_4

	thumb_func_start task_new_game_prof_birch_speech_part2_5
task_new_game_prof_birch_speech_part2_5: @ 8031220
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldrh r2, [r1, 0x10]
	movs r3, 0x10
	ldrsh r0, [r1, r3]
	cmp r0, 0
	beq _0803124C
	adds r0, r2, 0x2
	strh r0, [r1, 0x10]
	ldrh r1, [r1, 0x10]
	movs r0, 0x14
	bl SetGpuReg
	b _08031250
	.pool
_0803124C:
	ldr r0, =task_new_game_prof_birch_speech_part2_6
	str r0, [r1]
_08031250:
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_5

	thumb_func_start task_new_game_prof_birch_speech_part2_6
task_new_game_prof_birch_speech_part2_6: @ 8031258
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r7, r0, r1
	movs r1, 0x12
	ldrsh r0, [r7, r1]
	cmp r0, 0
	beq _08031320
	ldr r5, =gSprites
	movs r2, 0x1C
	ldrsh r1, [r7, r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r3, 0x4
	mov r12, r3
	mov r2, r12
	orrs r1, r2
	strb r1, [r0]
	movs r3, 0x1E
	ldrsh r1, [r7, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	ldrb r0, [r7, 0x18]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r5
	movs r0, 0x88
	strh r0, [r1, 0x20]
	movs r0, 0x3C
	strh r0, [r1, 0x22]
	adds r3, r1, 0
	adds r3, 0x3E
	ldrb r2, [r3]
	movs r4, 0x5
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	strb r0, [r3]
	ldrb r3, [r1, 0x1]
	movs r2, 0xD
	negs r2, r2
	adds r0, r2, 0
	ands r0, r3
	mov r3, r12
	orrs r0, r3
	strb r0, [r1, 0x1]
	ldrb r1, [r7, 0x1A]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	movs r1, 0x64
	strh r1, [r0, 0x20]
	movs r1, 0x4B
	strh r1, [r0, 0x22]
	adds r3, r0, 0
	adds r3, 0x3E
	ldrb r1, [r3]
	ands r4, r1
	strb r4, [r3]
	ldrb r1, [r0, 0x1]
	ands r2, r1
	mov r1, r12
	orrs r2, r1
	strb r2, [r0, 0x1]
	adds r0, r6, 0
	movs r1, 0x2
	bl sub_8031BAC
	adds r0, r6, 0
	movs r1, 0x1
	bl sub_8031D34
	movs r0, 0
	bl sub_8032318
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C8C2A
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r0, =task_new_game_prof_birch_speech_part2_7
	str r0, [r7]
_08031320:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_6

	thumb_func_start task_new_game_prof_birch_speech_part2_7
task_new_game_prof_birch_speech_part2_7: @ 803133C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _080313D2
	ldr r7, =gSprites
	movs r1, 0x18
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	ldrb r2, [r1, 0x1]
	movs r6, 0xD
	negs r6, r6
	adds r0, r6, 0
	ands r0, r2
	strb r0, [r1, 0x1]
	movs r1, 0x1A
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	ldrb r2, [r1, 0x1]
	adds r0, r6, 0
	ands r0, r2
	strb r0, [r1, 0x1]
	bl sub_8197224
	lsls r0, 16
	cmp r0, 0
	bne _080313D2
	movs r0, 0x18
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrb r2, [r0, 0x1]
	adds r1, r6, 0
	ands r1, r2
	movs r3, 0x4
	orrs r1, r3
	strb r1, [r0, 0x1]
	movs r1, 0x1A
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	ldrb r2, [r1, 0x1]
	adds r0, r6, 0
	ands r0, r2
	orrs r0, r3
	strb r0, [r1, 0x1]
	adds r0, r5, 0
	movs r1, 0x2
	bl sub_8031ACC
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_8031C88
	movs r0, 0x40
	strh r0, [r4, 0x16]
	ldr r0, =task_new_game_prof_birch_speech_part2_8
	str r0, [r4]
_080313D2:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_7

	thumb_func_start task_new_game_prof_birch_speech_part2_8
task_new_game_prof_birch_speech_part2_8: @ 80313E4
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r4, r0, r1
	movs r2, 0x12
	ldrsh r0, [r4, r2]
	adds r7, r1, 0
	cmp r0, 0
	beq _080314B0
	ldr r2, =gSprites
	movs r3, 0x18
	ldrsh r1, [r4, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r3, 0x4
	orrs r1, r3
	strb r1, [r0]
	movs r0, 0x1A
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r3
	strb r1, [r0]
	ldrh r1, [r4, 0x16]
	movs r3, 0x16
	ldrsh r0, [r4, r3]
	cmp r0, 0
	beq _08031444
	subs r0, r1, 0x1
	strh r0, [r4, 0x16]
	b _080314B0
	.pool
_08031444:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	cmp r0, 0
	beq _08031458
	ldrb r5, [r4, 0x1E]
	b _0803145A
	.pool
_08031458:
	ldrb r5, [r4, 0x1C]
_0803145A:
	lsls r1, r5, 4
	adds r1, r5
	lsls r1, 2
	adds r1, r2
	movs r0, 0x78
	strh r0, [r1, 0x20]
	movs r0, 0x3C
	strh r0, [r1, 0x22]
	adds r3, r1, 0
	adds r3, 0x3E
	ldrb r2, [r3]
	subs r0, 0x41
	ands r0, r2
	strb r0, [r3]
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1, 0x1]
	lsls r4, r6, 2
	adds r4, r6
	lsls r4, 3
	adds r4, r7
	strh r5, [r4, 0xC]
	adds r0, r6, 0
	movs r1, 0x2
	bl sub_8031BAC
	adds r0, r6, 0
	movs r1, 0x1
	bl sub_8031D34
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082C8C7A
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage
	ldr r0, =task_new_game_prof_birch_speech_part2_9
	str r0, [r4]
_080314B0:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_8

	thumb_func_start task_new_game_prof_birch_speech_part2_9
task_new_game_prof_birch_speech_part2_9: @ 80314C4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r6, r1, r2
	movs r1, 0x12
	ldrsh r0, [r6, r1]
	cmp r0, 0
	beq _0803155C
	ldr r7, =gSprites
	movs r1, 0xC
	ldrsh r0, [r6, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x1]
	bl sub_8197224
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	cmp r0, 0
	bne _0803155C
	ldrb r0, [r6, 0xC]
	lsls r4, r0, 4
	adds r4, r0
	lsls r4, 2
	adds r5, r4, r7
	ldrb r1, [r5, 0x1]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r5, 0x1]
	adds r0, r7, 0
	adds r0, 0x10
	adds r0, r4, r0
	ldr r1, =gUnknown_082FF114
	str r1, [r0]
	adds r0, r5, 0
	bl InitSpriteAffineAnim
	adds r0, r5, 0
	movs r1, 0
	bl StartSpriteAffineAnim
	adds r0, r7, 0
	adds r0, 0x1C
	adds r4, r0
	ldr r0, =sub_80318D8
	str r0, [r4]
	ldr r0, =0x0000ffff
	mov r1, r8
	str r1, [sp]
	movs r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	movs r0, 0x4
	bl FadeOutBGM
	ldr r0, =task_new_game_prof_birch_speech_part2_10
	str r0, [r6]
_0803155C:
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_9

	thumb_func_start task_new_game_prof_birch_speech_part2_10
task_new_game_prof_birch_speech_part2_10: @ 8031580
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r3, r1, r2
	ldrb r1, [r3, 0xC]
	ldr r2, =gSprites
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3F
	ldrb r0, [r0]
	lsls r0, 26
	cmp r0, 0
	bge _080315AA
	ldr r0, =task_new_game_prof_birch_speech_part2_11
	str r0, [r3]
_080315AA:
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_10

	thumb_func_start task_new_game_prof_birch_speech_part2_11
task_new_game_prof_birch_speech_part2_11: @ 80315BC
	push {r4,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0803160A
	ldr r0, =gTasks
	lsls r4, r2, 2
	adds r4, r2
	lsls r4, 3
	adds r4, r0
	ldrb r2, [r4, 0xC]
	ldr r1, =gSprites
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r1, 0x1C
	adds r0, r1
	ldr r1, =nullsub_11
	str r1, [r0]
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	ldr r0, =0xffff0000
	ldr r1, =0x0000ffff
	str r1, [sp]
	movs r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r0, =task_new_game_prof_birch_speech_part2_12
	str r0, [r4]
_0803160A:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_11

	thumb_func_start task_new_game_prof_birch_speech_part2_12
task_new_game_prof_birch_speech_part2_12: @ 8031630
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08031666
	bl FreeAllWindowBuffers
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldrh r0, [r0, 0x1A]
	bl sub_818D820
	bl dp13_810BB8C
	ldr r0, =CB2_NewGame
	bl SetMainCallback2
	adds r0, r4, 0
	bl DestroyTask
_08031666:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_12

	thumb_func_start new_game_prof_birch_speech_part2_start
new_game_prof_birch_speech_part2_start: @ 8031678
	push {r4,r5,lr}
	sub sp, 0xC
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	ldr r1, =gUnknown_082FF0E8
	movs r0, 0
	movs r2, 0x2
	bl InitBgsFromTemplates
	ldr r0, =gUnknown_082FF0F0
	bl InitBgFromTemplate
	movs r0, 0
	bl SetVBlankCallback
	movs r0, 0xC
	movs r1, 0
	bl SetGpuReg
	movs r0, 0xA
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x8
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x18
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x14
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x16
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x10
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	add r0, sp, 0x4
	movs r4, 0
	strh r4, [r0]
	ldr r1, =0x040000d4
	str r0, [r1]
	movs r4, 0xC0
	lsls r4, 19
	str r4, [r1, 0x4]
	ldr r0, =0x8100c000
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	movs r2, 0
	str r2, [sp, 0x8]
	add r0, sp, 0x8
	str r0, [r1]
	movs r0, 0xE0
	lsls r0, 19
	str r0, [r1, 0x4]
	ldr r0, =0x85000100
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	add r0, sp, 0x4
	strh r2, [r0]
	str r0, [r1]
	movs r0, 0xA0
	lsls r0, 19
	str r0, [r1, 0x4]
	ldr r0, =0x81000200
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	bl ResetPaletteFade
	ldr r0, =gBirchIntroShadowGfx
	adds r1, r4, 0
	bl LZ77UnCompVram
	ldr r0, =gUnknown_082FEEF0
	ldr r1, =0x06003800
	bl LZ77UnCompVram
	ldr r0, =gUnknown_082FECFC
	movs r1, 0
	movs r2, 0x40
	bl LoadPalette
	ldr r0, =gUnknown_082FF018+2
	movs r1, 0x1
	movs r2, 0x10
	bl LoadPalette
	bl ResetTasks
	ldr r0, =task_new_game_prof_birch_speech_part2_1
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r0, 0x5
	strh r0, [r4, 0x16]
	ldr r0, =0x0000ffc4
	strh r0, [r4, 0x10]
	bl remove_some_task
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl dp13_810BB8C
	adds r0, r5, 0
	bl AddBirchSpeechObjects
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	cmp r0, 0
	beq _080317DC
	movs r0, 0x1
	strh r0, [r4, 0x14]
	ldrb r3, [r4, 0x1E]
	b _080317E0
	.pool
_080317DC:
	strh r0, [r4, 0x14]
	ldrb r3, [r4, 0x1C]
_080317E0:
	ldr r0, =gSprites
	lsls r1, r3, 4
	adds r1, r3
	lsls r1, 2
	adds r1, r0
	movs r4, 0
	movs r0, 0xB4
	strh r0, [r1, 0x20]
	movs r0, 0x3C
	strh r0, [r1, 0x22]
	adds r1, 0x3E
	ldrb r2, [r1]
	subs r0, 0x41
	ands r0, r2
	strb r0, [r1]
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	strh r3, [r0, 0xC]
	ldr r1, =0x0000ffc4
	movs r0, 0x14
	bl SetGpuReg
	movs r0, 0x1
	negs r0, r0
	str r4, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	movs r0, 0x40
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	ldr r3, =0x04000208
	ldrh r2, [r3]
	strh r4, [r3]
	ldr r4, =0x04000200
	ldrh r0, [r4]
	movs r1, 0x1
	orrs r0, r1
	strh r0, [r4]
	strh r2, [r3]
	ldr r0, =VBlankCB_MainMenu
	bl SetVBlankCallback
	ldr r0, =CB2_MainMenu
	bl SetMainCallback2
	ldr r0, =gUnknown_082FF080
	bl InitWindows
	movs r0, 0
	movs r1, 0xF3
	bl LoadMainMenuWindowFrameTiles
	movs r0, 0
	movs r1, 0xFC
	movs r2, 0xF0
	bl copy_textbox_border_tile_patterns_to_vram
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end new_game_prof_birch_speech_part2_start

	thumb_func_start nullsub_11
nullsub_11: @ 80318D4
	bx lr
	thumb_func_end nullsub_11

	thumb_func_start sub_80318D8
sub_80318D8: @ 80318D8
	movs r2, 0x22
	ldrsh r1, [r0, r2]
	lsls r1, 16
	movs r3, 0x2E
	ldrsh r2, [r0, r3]
	adds r1, r2
	movs r2, 0xC0
	lsls r2, 8
	adds r1, r2
	lsrs r2, r1, 16
	strh r2, [r0, 0x22]
	strh r1, [r0, 0x2E]
	bx lr
	thumb_func_end sub_80318D8

	thumb_func_start sub_80318F4
sub_80318F4: @ 80318F4
	push {lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =0x00000127
	str r0, [sp]
	str r1, [sp, 0x4]
	movs r0, 0xE
	str r0, [sp, 0x8]
	ldr r0, =0x0000ffff
	str r0, [sp, 0xC]
	adds r0, r2, 0
	movs r1, 0x8
	movs r2, 0
	movs r3, 0x1
	bl sub_818D3E4
	lsls r0, 24
	lsrs r0, 24
	add sp, 0x10
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_80318F4

	thumb_func_start AddBirchSpeechObjects
@ void AddBirchSpeechObjects(u8 taskId)
AddBirchSpeechObjects: @ 803192C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x88
	movs r1, 0x3C
	movs r2, 0x1
	bl AddNewGameBirchObject
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gSprites
	mov r9, r1
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	movs r3, 0x1C
	add r3, r9
	mov r8, r3
	adds r1, r2, r3
	ldr r7, =nullsub_11
	str r7, [r1]
	add r2, r9
	ldrb r3, [r2, 0x5]
	movs r6, 0xD
	negs r6, r6
	adds r1, r6, 0
	ands r1, r3
	strb r1, [r2, 0x5]
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r3, 0x4
	mov r10, r3
	mov r3, r10
	orrs r1, r3
	strb r1, [r2]
	ldr r1, =gTasks
	lsls r5, r4, 2
	adds r5, r4
	lsls r5, 3
	adds r5, r1
	strh r0, [r5, 0x18]
	movs r0, 0x64
	movs r1, 0x4B
	bl sub_80318F4
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	mov r4, r8
	adds r1, r2, r4
	str r7, [r1]
	add r2, r9
	ldrb r3, [r2, 0x5]
	adds r1, r6, 0
	ands r1, r3
	strb r1, [r2, 0x5]
	adds r2, 0x3E
	ldrb r1, [r2]
	mov r3, r10
	orrs r1, r3
	strb r1, [r2]
	strh r0, [r5, 0x1A]
	movs r0, 0x3C
	bl sub_806EFF0
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =0x0201c000
	str r4, [sp]
	movs r1, 0x78
	movs r2, 0x3C
	movs r3, 0
	bl sub_80B5E6C
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	mov r3, r8
	adds r1, r2, r3
	str r7, [r1]
	add r2, r9
	adds r3, r2, 0
	adds r3, 0x3E
	ldrb r1, [r3]
	mov r4, r10
	orrs r1, r4
	strb r1, [r3]
	ldrb r3, [r2, 0x5]
	adds r1, r6, 0
	ands r1, r3
	strb r1, [r2, 0x5]
	strh r0, [r5, 0x1C]
	movs r0, 0x3F
	bl sub_806EFF0
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =0x0201c000
	movs r2, 0x80
	lsls r2, 4
	adds r4, r1, r2
	str r4, [sp]
	movs r1, 0x78
	movs r2, 0x3C
	movs r3, 0
	bl sub_80B5E6C
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	add r8, r2
	mov r3, r8
	str r7, [r3]
	add r2, r9
	adds r3, r2, 0
	adds r3, 0x3E
	ldrb r1, [r3]
	mov r4, r10
	orrs r1, r4
	strb r1, [r3]
	ldrb r1, [r2, 0x5]
	ands r6, r1
	strb r6, [r2, 0x5]
	strh r0, [r5, 0x1E]
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end AddBirchSpeechObjects

	thumb_func_start sub_8031A5C
sub_8031A5C: @ 8031A5C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r4, =gTasks
	lsls r0, r3, 2
	adds r0, r3
	lsls r0, 3
	adds r2, r0, r4
	ldrh r1, [r2, 0xA]
	movs r5, 0xA
	ldrsh r0, [r2, r5]
	cmp r0, 0
	bne _08031A94
	movs r1, 0x8
	ldrsh r0, [r2, r1]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r4
	movs r0, 0x1
	strh r0, [r1, 0x12]
	adds r0, r3, 0
	bl DestroyTask
	b _08031AC4
	.pool
_08031A94:
	ldrh r3, [r2, 0x10]
	movs r4, 0x10
	ldrsh r0, [r2, r4]
	cmp r0, 0
	beq _08031AA4
	subs r0, r3, 0x1
	strh r0, [r2, 0x10]
	b _08031AC4
_08031AA4:
	ldrh r0, [r2, 0xE]
	strh r0, [r2, 0x10]
	subs r1, 0x1
	strh r1, [r2, 0xA]
	ldrh r0, [r2, 0xC]
	adds r0, 0x1
	strh r0, [r2, 0xC]
	movs r5, 0xC
	ldrsh r0, [r2, r5]
	lsls r0, 8
	adds r1, r0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x52
	bl SetGpuReg
_08031AC4:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8031A5C

	thumb_func_start sub_8031ACC
sub_8031ACC: @ 8031ACC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	movs r1, 0x94
	lsls r1, 2
	movs r0, 0x50
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0x10
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	ldr r0, =gTasks
	mov r8, r0
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	add r0, r8
	movs r6, 0
	strh r6, [r0, 0x12]
	ldr r0, =sub_8031A5C
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	add r1, r8
	strh r4, [r1, 0x8]
	movs r0, 0x10
	strh r0, [r1, 0xA]
	strh r6, [r1, 0xC]
	strh r5, [r1, 0xE]
	strh r5, [r1, 0x10]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8031ACC

	thumb_func_start sub_8031B3C
sub_8031B3C: @ 8031B3C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r4, =gTasks
	lsls r0, r3, 2
	adds r0, r3
	lsls r0, 3
	adds r2, r0, r4
	ldrh r1, [r2, 0xA]
	movs r5, 0xA
	ldrsh r0, [r2, r5]
	cmp r0, 0x10
	bne _08031B74
	movs r1, 0x8
	ldrsh r0, [r2, r1]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r4
	movs r0, 0x1
	strh r0, [r1, 0x12]
	adds r0, r3, 0
	bl DestroyTask
	b _08031BA4
	.pool
_08031B74:
	ldrh r3, [r2, 0x10]
	movs r4, 0x10
	ldrsh r0, [r2, r4]
	cmp r0, 0
	beq _08031B84
	subs r0, r3, 0x1
	strh r0, [r2, 0x10]
	b _08031BA4
_08031B84:
	ldrh r0, [r2, 0xE]
	strh r0, [r2, 0x10]
	adds r1, 0x1
	strh r1, [r2, 0xA]
	ldrh r0, [r2, 0xC]
	subs r0, 0x1
	strh r0, [r2, 0xC]
	movs r5, 0xC
	ldrsh r0, [r2, r5]
	lsls r0, 8
	adds r1, r0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x52
	bl SetGpuReg
_08031BA4:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8031B3C

	thumb_func_start sub_8031BAC
sub_8031BAC: @ 8031BAC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	movs r1, 0x94
	lsls r1, 2
	movs r0, 0x50
	bl SetGpuReg
	movs r1, 0x80
	lsls r1, 5
	movs r0, 0x52
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	ldr r0, =gTasks
	mov r8, r0
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	add r0, r8
	movs r6, 0
	strh r6, [r0, 0x12]
	ldr r0, =sub_8031B3C
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	add r1, r8
	strh r4, [r1, 0x8]
	strh r6, [r1, 0xA]
	movs r0, 0x10
	strh r0, [r1, 0xC]
	strh r5, [r1, 0xE]
	strh r5, [r1, 0x10]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8031BAC

	thumb_func_start sub_8031C1C
sub_8031C1C: @ 8031C1C
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r1, r0, r1
	ldrh r3, [r1, 0xC]
	movs r4, 0xC
	ldrsh r0, [r1, r4]
	cmp r0, 0
	beq _08031C40
	subs r0, r3, 0x1
	strh r0, [r1, 0xC]
	b _08031C7C
	.pool
_08031C40:
	ldrh r3, [r1, 0xA]
	movs r4, 0xA
	ldrsh r0, [r1, r4]
	cmp r0, 0x8
	bne _08031C52
	adds r0, r2, 0
	bl DestroyTask
	b _08031C7C
_08031C52:
	ldrh r2, [r1, 0x10]
	movs r4, 0x10
	ldrsh r0, [r1, r4]
	cmp r0, 0
	beq _08031C62
	subs r0, r2, 0x1
	strh r0, [r1, 0x10]
	b _08031C7C
_08031C62:
	ldrh r0, [r1, 0xE]
	strh r0, [r1, 0x10]
	adds r0, r3, 0x1
	strh r0, [r1, 0xA]
	movs r2, 0xA
	ldrsh r0, [r1, r2]
	lsls r0, 1
	ldr r1, =gUnknown_082FF018
	adds r0, r1
	movs r1, 0x1
	movs r2, 0x10
	bl LoadPalette
_08031C7C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8031C1C

	thumb_func_start sub_8031C88
sub_8031C88: @ 8031C88
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	ldr r0, =sub_8031C1C
	movs r1, 0
	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, 0x8]
	strh r0, [r1, 0xA]
	movs r0, 0x8
	strh r0, [r1, 0xC]
	strh r5, [r1, 0xE]
	strh r5, [r1, 0x10]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8031C88

	thumb_func_start sub_8031CC8
sub_8031CC8: @ 8031CC8
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r1, r0, r1
	ldrh r3, [r1, 0xC]
	movs r4, 0xC
	ldrsh r0, [r1, r4]
	cmp r0, 0
	beq _08031CEC
	subs r0, r3, 0x1
	strh r0, [r1, 0xC]
	b _08031D28
	.pool
_08031CEC:
	ldrh r3, [r1, 0xA]
	movs r4, 0xA
	ldrsh r0, [r1, r4]
	cmp r0, 0
	bne _08031CFE
	adds r0, r2, 0
	bl DestroyTask
	b _08031D28
_08031CFE:
	ldrh r2, [r1, 0x10]
	movs r4, 0x10
	ldrsh r0, [r1, r4]
	cmp r0, 0
	beq _08031D0E
	subs r0, r2, 0x1
	strh r0, [r1, 0x10]
	b _08031D28
_08031D0E:
	ldrh r0, [r1, 0xE]
	strh r0, [r1, 0x10]
	subs r0, r3, 0x1
	strh r0, [r1, 0xA]
	movs r2, 0xA
	ldrsh r0, [r1, r2]
	lsls r0, 1
	ldr r1, =gUnknown_082FF018
	adds r0, r1
	movs r1, 0x1
	movs r2, 0x10
	bl LoadPalette
_08031D28:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8031CC8

	thumb_func_start sub_8031D34
sub_8031D34: @ 8031D34
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	ldr r0, =sub_8031CC8
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	strh r4, [r1, 0x8]
	movs r0, 0x8
	strh r0, [r1, 0xA]
	strh r0, [r1, 0xC]
	strh r5, [r1, 0xE]
	strh r5, [r1, 0x10]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8031D34

	thumb_func_start sub_8031D74
sub_8031D74: @ 8031D74
	push {lr}
	ldr r0, =gUnknown_082FF088
	movs r1, 0xF3
	bl DrawMainMenuWindowBorder
	movs r0, 0x1
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r2, =gUnknown_082FF118
	movs r0, 0x1
	movs r1, 0x2
	bl PrintMenuTable
	movs r0, 0x1
	movs r1, 0x2
	movs r2, 0
	bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0x1
	movs r1, 0x3
	bl CopyWindowToVram
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8031D74

	thumb_func_start sub_8031DB4
sub_8031DB4: @ 8031DB4
	push {lr}
	bl ProcessMenuInputNoWrapAround
	lsls r0, 24
	asrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_8031DB4

	thumb_func_start set_default_player_name
@ void set_default_player_name(int name_id)
set_default_player_name: @ 8031DC4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =gSaveBlock2Ptr
	ldr r0, [r1]
	ldrb r0, [r0, 0x8]
	adds r5, r1, 0
	cmp r0, 0
	bne _08031DE4
	ldr r1, =gMalePresetNames
	b _08031DE6
	.pool
_08031DE4:
	ldr r1, =gFemalePresetNames
_08031DE6:
	lsls r0, r2, 2
	adds r0, r1
	ldr r3, [r0]
	movs r2, 0
	ldr r4, =gSaveBlock2Ptr
_08031DF0:
	ldr r1, [r4]
	adds r1, r2
	adds r0, r3, r2
	ldrb r0, [r0]
	strb r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x6
	bls _08031DF0
	ldr r1, [r5]
	movs r0, 0xFF
	strb r0, [r1, 0x7]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end set_default_player_name

	thumb_func_start CreateMainMenuErrorWindow
@ void CreateMainMenuErrorWindow(u8 *str)
CreateMainMenuErrorWindow: @ 8031E18
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0x7
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r0, 0x7
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0
	bl PrintTextOnWindow
	movs r0, 0x7
	bl PutWindowTilemap
	movs r0, 0x7
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, =gUnknown_082FF070
	ldr r1, =0x000001d5
	bl DrawMainMenuWindowBorder
	ldr r1, =0x000009e7
	movs r0, 0x40
	bl SetGpuReg
	ldr r1, =0x0000719f
	movs r0, 0x44
	bl SetGpuReg
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end CreateMainMenuErrorWindow

	thumb_func_start fmt_savegame
fmt_savegame: @ 8031E7C
	push {lr}
	bl fmt_time
	bl fmt_pokedex
	bl fmt_player
	bl fmt_badges
	pop {r0}
	bx r0
	thumb_func_end fmt_savegame

	thumb_func_start fmt_time
fmt_time: @ 8031E94
	push {r4-r6,lr}
	sub sp, 0xC
	ldr r4, =gStringVar4
	ldr r1, =gText_ContinueMenuPlayer
	adds r0, r4, 0
	bl StringExpandPlaceholders
	ldr r6, =gUnknown_082FF0E3
	str r6, [sp]
	movs r5, 0x1
	negs r5, r5
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x11
	bl box_print
	ldr r4, =gSaveBlock2Ptr
	ldr r1, [r4]
	movs r0, 0x1
	movs r2, 0x64
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r6, [sp]
	str r5, [sp, 0x4]
	ldr r0, [r4]
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r3, 0x11
	bl box_print
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end fmt_time

	thumb_func_start fmt_player
fmt_player: @ 8031EF8
	push {r4-r6,lr}
	sub sp, 0x2C
	ldr r4, =gStringVar4
	ldr r1, =gText_ContinueMenuTime
	adds r0, r4, 0
	bl StringExpandPlaceholders
	ldr r6, =gUnknown_082FF0E3
	str r6, [sp]
	movs r5, 0x1
	negs r5, r5
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0x6C
	movs r3, 0x11
	bl box_print
	ldr r4, =gSaveBlock2Ptr
	ldr r0, [r4]
	ldrh r1, [r0, 0xE]
	add r0, sp, 0xC
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r1, 0xF0
	strb r1, [r0]
	adds r0, 0x1
	ldr r1, [r4]
	ldrb r1, [r1, 0x10]
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0xD0
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r6, [sp]
	str r5, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r3, 0x11
	bl box_print
	add sp, 0x2C
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end fmt_player

	thumb_func_start fmt_pokedex
fmt_pokedex: @ 8031F7C
	push {r4-r7,lr}
	sub sp, 0x2C
	ldr r0, =0x00000861
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08031FFE
	bl IsNationalPokedexEnabled
	cmp r0, 0
	beq _08031FA4
	movs r0, 0x1
	bl pokedex_count
	b _08031FAA
	.pool
_08031FA4:
	movs r0, 0x1
	bl sub_80C0844
_08031FAA:
	lsls r0, 16
	lsrs r7, r0, 16
	ldr r4, =gStringVar4
	ldr r1, =gText_ContinueMenuPokedex
	adds r0, r4, 0
	bl StringExpandPlaceholders
	ldr r6, =gUnknown_082FF0E3
	str r6, [sp]
	movs r5, 0x1
	negs r5, r5
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x21
	bl box_print
	add r0, sp, 0xC
	adds r1, r7, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0x64
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r6, [sp]
	str r5, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r3, 0x21
	bl box_print
_08031FFE:
	add sp, 0x2C
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end fmt_pokedex

	thumb_func_start fmt_badges
fmt_badges: @ 8032014
	push {r4-r7,lr}
	sub sp, 0x2C
	movs r7, 0
	ldr r4, =0x00000867
_0803201C:
	lsls r0, r4, 16
	lsrs r0, 16
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _08032030
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
_08032030:
	adds r4, 0x1
	ldr r0, =0x0000086e
	cmp r4, r0
	bls _0803201C
	ldr r4, =gStringVar4
	ldr r1, =gText_ContinueMenuBadges
	adds r0, r4, 0
	bl StringExpandPlaceholders
	ldr r6, =gUnknown_082FF0E3
	str r6, [sp]
	movs r5, 0x1
	negs r5, r5
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0x6C
	movs r3, 0x21
	bl box_print
	add r0, sp, 0xC
	adds r1, r7, 0
	movs r2, 0x2
	movs r3, 0x1
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0xD0
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r6, [sp]
	str r5, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r3, 0x21
	bl box_print
	add sp, 0x2C
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end fmt_badges

	thumb_func_start LoadMainMenuWindowFrameTiles
@ void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset)
LoadMainMenuWindowFrameTiles: @ 80320A4
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 16
	lsrs r5, 16
	ldr r6, =gSaveBlock2Ptr
	ldr r0, [r6]
	ldrb r0, [r0, 0x14]
	lsrs r0, 3
	bl sub_8098758
	ldr r1, [r0]
	movs r2, 0x90
	lsls r2, 1
	adds r0, r4, 0
	adds r3, r5, 0
	bl LoadBgTiles
	ldr r0, [r6]
	ldrb r0, [r0, 0x14]
	lsrs r0, 3
	bl sub_8098758
	ldr r0, [r0, 0x4]
	movs r1, 0x20
	movs r2, 0x20
	bl LoadPalette
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end LoadMainMenuWindowFrameTiles

	thumb_func_start DrawMainMenuWindowBorder
@ void DrawMainMenuWindowBorder(struct WindowTemplate *template, u16 baseTileNum)
DrawMainMenuWindowBorder: @ 80320EC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x1C
	adds r4, r0, 0
	lsls r6, r1, 16
	movs r0, 0x80
	lsls r0, 9
	adds r0, r6
	lsrs r0, 16
	mov r9, r0
	movs r1, 0x80
	lsls r1, 10
	adds r1, r6
	lsrs r1, 16
	mov r10, r1
	movs r7, 0xC0
	lsls r7, 10
	adds r1, r6, r7
	lsrs r1, 16
	str r1, [sp, 0x18]
	movs r0, 0xA0
	lsls r0, 11
	adds r1, r6, r0
	lsrs r1, 16
	str r1, [sp, 0xC]
	movs r7, 0xC0
	lsls r7, 11
	adds r1, r6, r7
	lsrs r1, 16
	str r1, [sp, 0x10]
	movs r0, 0xE0
	lsls r0, 11
	adds r1, r6, r0
	lsrs r1, 16
	str r1, [sp, 0x14]
	lsrs r1, r6, 16
	movs r7, 0x80
	lsls r7, 12
	adds r6, r7
	lsrs r6, 16
	ldrb r0, [r4]
	ldrb r2, [r4, 0x1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	subs r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	movs r5, 0x1
	str r5, [sp]
	str r5, [sp, 0x4]
	movs r7, 0x2
	mov r8, r7
	str r7, [sp, 0x8]
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	ldrb r2, [r4, 0x1]
	ldrb r3, [r4, 0x2]
	subs r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	ldrb r1, [r4, 0x3]
	str r1, [sp]
	str r5, [sp, 0x4]
	str r7, [sp, 0x8]
	mov r1, r9
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	ldrb r2, [r4, 0x3]
	ldrb r1, [r4, 0x1]
	adds r2, r1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	subs r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	str r7, [sp, 0x8]
	mov r1, r10
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	ldrb r2, [r4, 0x1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	str r5, [sp]
	ldrb r1, [r4, 0x4]
	str r1, [sp, 0x4]
	str r7, [sp, 0x8]
	ldr r1, [sp, 0x18]
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	ldrb r2, [r4, 0x3]
	ldrb r7, [r4, 0x1]
	adds r2, r7
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	str r5, [sp]
	ldrb r1, [r4, 0x4]
	str r1, [sp, 0x4]
	mov r1, r8
	str r1, [sp, 0x8]
	ldr r1, [sp, 0xC]
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	ldrb r2, [r4, 0x1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x4]
	ldrb r7, [r4, 0x2]
	adds r3, r7
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	mov r1, r8
	str r1, [sp, 0x8]
	ldr r1, [sp, 0x10]
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	ldrb r2, [r4, 0x1]
	ldrb r3, [r4, 0x4]
	ldrb r7, [r4, 0x2]
	adds r3, r7
	lsls r3, 24
	lsrs r3, 24
	ldrb r1, [r4, 0x3]
	str r1, [sp]
	str r5, [sp, 0x4]
	mov r1, r8
	str r1, [sp, 0x8]
	ldr r1, [sp, 0x14]
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	ldrb r2, [r4, 0x3]
	ldrb r7, [r4, 0x1]
	adds r2, r7
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x4]
	ldrb r1, [r4, 0x2]
	adds r3, r1
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	mov r7, r8
	str r7, [sp, 0x8]
	adds r1, r6, 0
	bl FillBgTilemapBufferRect
	ldrb r0, [r4]
	bl CopyBgTilemapBufferToVram
	add sp, 0x1C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end DrawMainMenuWindowBorder

	thumb_func_start sub_8032250
sub_8032250: @ 8032250
	push {r4-r6,lr}
	sub sp, 0xC
	adds r6, r0, 0
	ldrb r0, [r6]
	ldrb r1, [r6, 0x1]
	subs r2, r1, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r4, [r6, 0x2]
	subs r3, r4, 0x1
	lsls r3, 24
	lsrs r3, 24
	ldrb r5, [r6, 0x3]
	adds r1, r5
	adds r1, 0x1
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp]
	ldrb r1, [r6, 0x4]
	adds r4, r1
	adds r4, 0x1
	lsls r4, 24
	lsrs r4, 24
	str r4, [sp, 0x4]
	movs r1, 0x2
	str r1, [sp, 0x8]
	movs r1, 0
	bl FillBgTilemapBufferRect
	ldrb r0, [r6]
	bl CopyBgTilemapBufferToVram
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8032250

	thumb_func_start sub_8032298
sub_8032298: @ 8032298
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r1, 0
	adds r5, r2, 0
	ldr r1, [sp, 0x18]
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsls r5, 24
	lsls r3, 24
	lsls r1, 24
	movs r2, 0xFF
	lsls r2, 24
	adds r4, r2
	lsrs r4, 24
	adds r5, r2
	lsrs r5, 24
	movs r2, 0x80
	lsls r2, 18
	adds r3, r2
	lsrs r3, 24
	str r3, [sp]
	adds r1, r2
	lsrs r1, 24
	str r1, [sp, 0x4]
	movs r1, 0x2
	str r1, [sp, 0x8]
	movs r1, 0
	adds r2, r4, 0
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8032298

	thumb_func_start sub_80322E0
sub_80322E0: @ 80322E0
	push {r4,r5,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r1, =sub_8032298
	adds r0, r5, 0
	bl CallWindowFunction
	adds r0, r5, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r5, 0
	bl ClearWindowTilemap
	cmp r4, 0x1
	bne _0803230E
	adds r0, r5, 0
	movs r1, 0x3
	bl CopyWindowToVram
_0803230E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80322E0

	thumb_func_start sub_8032318
sub_8032318: @ 8032318
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x8
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	movs r0, 0x1
	movs r1, 0x6
	bl GetFontAttribute
	mov r9, r0
	mov r0, r9
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r0, 0x1
	movs r1, 0
	bl GetFontAttribute
	mov r8, r0
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	movs r0, 0x1
	movs r1, 0x1
	bl GetFontAttribute
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	adds r0, r6, 0
	movs r1, 0x3
	bl GetWindowAttribute
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r6, 0
	movs r1, 0x4
	bl GetWindowAttribute
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	muls r1, r4
	str r1, [sp]
	muls r0, r5
	str r0, [sp, 0x4]
	adds r0, r6, 0
	mov r1, r9
	movs r2, 0
	movs r3, 0
	bl FillWindowPixelRect
	adds r0, r6, 0
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8032318

	thumb_func_start sub_80323A0
sub_80323A0: @ 80323A0
	push {lr}
	ldr r0, [r0]
	subs r0, 0x2
	ldrb r0, [r0]
	cmp r0, 0x8
	bne _080323C0
	ldr r1, =gUnknown_02022D04
	ldrb r0, [r1]
	cmp r0, 0
	bne _080323C0
	movs r0, 0x1
	strb r0, [r1]
	ldr r0, =sub_8030A70
	movs r1, 0
	bl CreateTask
_080323C0:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80323A0

	thumb_func_start sub_80323CC
sub_80323CC: @ 80323CC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x20
	adds r4, r0, 0
	adds r5, r1, 0
	mov r8, r2
	ldr r6, [sp, 0x34]
	ldr r1, [sp, 0x38]
	lsls r4, 24
	lsls r5, 24
	mov r0, r8
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r3, 16
	lsrs r3, 16
	lsls r6, 24
	lsrs r6, 24
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0x80
	lsls r0, 17
	adds r4, r0
	lsrs r4, 24
	adds r5, r0
	lsrs r5, 24
	movs r0, 0x5
	str r0, [sp]
	movs r0, 0x4
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r3, [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
	mov r1, r8
	adds r2, r6, 0
	movs r3, 0
	bl CreateYesNoMenu
	add sp, 0x20
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_80323CC

	thumb_func_start unknown_rbox_to_vram
unknown_rbox_to_vram: @ 803243C
	push {r4,r5,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r1, =sub_8032474
	adds r0, r5, 0
	bl CallWindowFunction
	adds r0, r5, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r5, 0
	bl PutWindowTilemap
	cmp r4, 0x1
	bne _0803246A
	adds r0, r5, 0
	movs r1, 0x3
	bl CopyWindowToVram
_0803246A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end unknown_rbox_to_vram

	thumb_func_start sub_8032474
sub_8032474: @ 8032474
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	mov r8, r0
	adds r5, r2, 0
	mov r9, r3
	ldr r0, [sp, 0x40]
	ldr r6, [sp, 0x44]
	mov r2, r8
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r1, 24
	lsls r5, 24
	mov r2, r9
	lsls r2, 24
	lsrs r2, 24
	mov r9, r2
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x10]
	lsls r6, 24
	lsrs r6, 24
	lsrs r0, r1, 24
	str r0, [sp, 0xC]
	movs r2, 0xFE
	lsls r2, 24
	adds r1, r2
	lsrs r1, 24
	str r1, [sp, 0x14]
	lsrs r0, r5, 24
	mov r10, r0
	movs r2, 0xFF
	lsls r2, 24
	adds r5, r2
	lsrs r5, 24
	movs r4, 0x1
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	movs r1, 0xFD
	ldr r2, [sp, 0x14]
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r0, [sp, 0xC]
	subs r0, 0x1
	lsls r2, r0, 24
	lsrs r2, 24
	str r2, [sp, 0x18]
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	movs r1, 0xFF
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	movs r1, 0x80
	lsls r1, 1
	mov r0, r9
	str r0, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0xC]
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r1, =0x00000101
	ldr r7, [sp, 0xC]
	add r7, r9
	subs r0, r7, 0x1
	lsls r2, r0, 24
	lsrs r2, 24
	str r2, [sp, 0x1C]
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	movs r1, 0x81
	lsls r1, 1
	lsls r2, r7, 24
	lsrs r7, r2, 24
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	adds r2, r7, 0
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r1, =0x00000103
	str r4, [sp]
	movs r5, 0x5
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x14]
	mov r3, r10
	bl FillBgTilemapBufferRect
	ldr r1, =0x00000105
	mov r0, r9
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x18]
	mov r3, r10
	bl FillBgTilemapBufferRect
	movs r1, 0x83
	lsls r1, 1
	str r4, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	adds r2, r7, 0
	mov r3, r10
	bl FillBgTilemapBufferRect
	ldr r1, =0x000008fd
	ldr r2, [sp, 0x10]
	add r10, r2
	mov r0, r10
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x14]
	mov r3, r10
	bl FillBgTilemapBufferRect
	ldr r1, =0x000008ff
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x18]
	mov r3, r10
	bl FillBgTilemapBufferRect
	movs r1, 0x90
	lsls r1, 4
	movs r2, 0x1
	negs r2, r2
	add r9, r2
	mov r0, r9
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0xC]
	mov r3, r10
	bl FillBgTilemapBufferRect
	ldr r1, =0x00000901
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x1C]
	mov r3, r10
	bl FillBgTilemapBufferRect
	ldr r1, =0x00000902
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	adds r2, r7, 0
	mov r3, r10
	bl FillBgTilemapBufferRect
	add sp, 0x20
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8032474

	thumb_func_start task_new_game_prof_birch_speech_part2_1
task_new_game_prof_birch_speech_part2_1: @ 803261C
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
	ldrh r0, [r4, 0x16]
	subs r1, r0, 0x1
	strh r1, [r4, 0x16]
	lsls r0, 16
	cmp r0, 0
	bgt _08032644
	movs r0, 0
	movs r1, 0x1
	bl unknown_rbox_to_vram
	ldr r0, =task_new_game_prof_birch_speech_part2_2
	str r0, [r4]
_08032644:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_new_game_prof_birch_speech_part2_1

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