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

	.syntax unified

	.text





	thumb_func_start sub_8016CA0
sub_8016CA0: @ 8016CA0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	lsls r0, 2
	add r0, r10
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	movs r7, 0
	mov r0, sp
	adds r0, 0x10
	str r0, [sp, 0x18]
_08016CC4:
	lsls r2, r7, 24
	lsrs r2, 24
	mov r0, sp
	ldr r1, [sp, 0x18]
	bl sub_800DE7C
	lsls r0, 24
	lsrs r4, r0, 24
	mov r0, sp
	ldrb r0, [r0, 0xA]
	lsls r0, 25
	lsrs r0, 25
	mov r2, r10
	lsls r1, r2, 2
	add r1, r10
	lsls r1, 3
	ldr r3, =gTasks
	adds r1, r3
	movs r5, 0x10
	ldrsh r1, [r1, r5]
	bl sub_8013D88
	cmp r0, 0
	bne _08016D00
	mov r1, sp
	ldr r0, =gUnknown_082F045C
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
_08016D00:
	mov r0, sp
	ldrb r1, [r0]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0x1
	bne _08016D18
	mov r1, sp
	ldr r0, =gUnknown_082F045C
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
_08016D18:
	cmp r4, 0
	bne _08016D9C
	lsls r0, r7, 3
	mov r8, r0
	adds r1, r7, 0x1
	mov r9, r1
	cmp r7, 0
	ble _08016D58
	movs r2, 0
	str r2, [sp, 0x1C]
	adds r4, r7, 0
_08016D2E:
	ldr r0, [r6, 0x4]
	ldr r3, [sp, 0x1C]
	adds r0, r3
	mov r1, sp
	bl sub_8017630
	lsls r0, 24
	cmp r0, 0
	bne _08016D4C
	mov r1, sp
	ldr r0, =gUnknown_082F045C
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
_08016D4C:
	ldr r5, [sp, 0x1C]
	adds r5, 0x1C
	str r5, [sp, 0x1C]
	subs r4, 0x1
	cmp r4, 0
	bne _08016D2E
_08016D58:
	ldr r1, [r6, 0x4]
	mov r0, r8
	subs r4, r0, r7
	lsls r4, 2
	adds r1, r4
	mov r0, sp
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldr r0, [r6, 0x4]
	adds r0, r4
	ldr r1, =gUnknown_082F045C
	bl sub_8017630
	ldr r3, [r6, 0x4]
	adds r3, r4
	movs r2, 0x1
	ands r2, r0
	ldrb r0, [r3, 0x18]
	movs r4, 0x2
	negs r4, r4
	adds r1, r4, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3, 0x18]
	b _08016DD4
	.pool
_08016D9C:
	ldr r1, [r6]
	lsls r4, r7, 3
	subs r4, r7
	lsls r4, 2
	adds r1, r4
	mov r0, sp
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldr r0, [r6]
	adds r0, r4
	ldr r1, =gUnknown_082F045C
	bl sub_8017630
	ldr r3, [r6]
	adds r3, r4
	movs r2, 0x1
	ands r2, r0
	ldrb r0, [r3, 0x18]
	movs r4, 0x2
	negs r4, r4
	adds r1, r4, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3, 0x18]
	adds r7, 0x1
	mov r9, r7
_08016DD4:
	mov r7, r9
	cmp r7, 0x3
	bgt _08016DDC
	b _08016CC4
_08016DDC:
	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_8016CA0

	thumb_func_start sub_8016DF0
sub_8016DF0: @ 8016DF0
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r0, =sub_8016CA0
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r2, =gTasks + 0x8
	adds r3, r1, r2
	str r4, [r3]
	str r5, [r3, 0x4]
	adds r2, r1
	strh r6, [r2, 0x8]
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8016DF0

	thumb_func_start sub_8016E24
sub_8016E24: @ 8016E24
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	lsls r0, 2
	add r0, r10
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	movs r3, 0
_08016E42:
	lsls r4, r3, 3
	subs r0, r4, r3
	lsls r5, r0, 2
	ldr r0, [r6]
	adds r0, r5
	adds r1, r0, 0
	adds r1, 0x10
	lsls r2, r3, 24
	lsrs r2, 24
	str r3, [sp]
	bl sub_800DE7C
	ldr r0, [r6]
	adds r0, r5
	ldrb r0, [r0, 0xA]
	lsls r0, 25
	lsrs r0, 25
	mov r2, r10
	lsls r1, r2, 2
	add r1, r10
	lsls r1, 3
	ldr r7, =gTasks
	adds r1, r7
	movs r2, 0xC
	ldrsh r1, [r1, r2]
	bl sub_8013D88
	mov r8, r4
	ldr r3, [sp]
	cmp r0, 0
	bne _08016E8E
	ldr r1, [r6]
	adds r1, r5
	ldr r0, =gUnknown_082F045C
	ldm r0!, {r2,r4,r7}
	stm r1!, {r2,r4,r7}
	ldm r0!, {r2,r4,r7}
	stm r1!, {r2,r4,r7}
_08016E8E:
	adds r4, r3, 0x1
	mov r9, r4
	cmp r3, 0
	ble _08016ED2
	str r5, [sp, 0x4]
	movs r5, 0
	str r5, [sp, 0x8]
	adds r4, r3, 0
_08016E9E:
	ldr r1, [r6]
	ldr r7, [sp, 0x8]
	adds r0, r1, r7
	ldr r2, [sp, 0x4]
	adds r1, r2
	str r3, [sp]
	bl sub_8017630
	lsls r0, 24
	ldr r3, [sp]
	cmp r0, 0
	bne _08016EC6
	ldr r1, [r6]
	ldr r5, [sp, 0x4]
	adds r1, r5
	ldr r0, =gUnknown_082F045C
	ldm r0!, {r2,r5,r7}
	stm r1!, {r2,r5,r7}
	ldm r0!, {r2,r5,r7}
	stm r1!, {r2,r5,r7}
_08016EC6:
	ldr r7, [sp, 0x8]
	adds r7, 0x1C
	str r7, [sp, 0x8]
	subs r4, 0x1
	cmp r4, 0
	bne _08016E9E
_08016ED2:
	mov r0, r8
	subs r4, r0, r3
	lsls r4, 2
	ldr r0, [r6]
	adds r0, r4
	ldr r1, =gUnknown_082F045C
	bl sub_8017630
	ldr r3, [r6]
	adds r3, r4
	movs r2, 0x1
	ands r2, r0
	ldrb r0, [r3, 0x18]
	movs r4, 0x2
	negs r4, r4
	adds r1, r4, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3, 0x18]
	mov r3, r9
	cmp r3, 0x3
	ble _08016E42
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8016E24

	thumb_func_start sub_8016F1C
sub_8016F1C: @ 8016F1C
	push {lr}
	lsls r1, 16
	asrs r1, 16
	cmp r1, 0x7
	bne _08016F2C
	ldrb r1, [r0]
	movs r0, 0x20
	b _08016F34
_08016F2C:
	cmp r1, 0x8
	bne _08016F3E
	ldrb r1, [r0]
	movs r0, 0x10
_08016F34:
	ands r0, r1
	cmp r0, 0
	beq _08016F3E
	movs r0, 0x1
	b _08016F40
_08016F3E:
	movs r0, 0
_08016F40:
	pop {r1}
	bx r1
	thumb_func_end sub_8016F1C

	thumb_func_start sub_8016F44
sub_8016F44: @ 8016F44
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r4, r1, r0
	movs r6, 0
	subs r0, 0x8
	movs r5, 0
	adds r1, r0
	mov r8, r1
_08016F62:
	ldr r0, [r4]
	adds r0, r5
	adds r1, r0, 0
	adds r1, 0x10
	lsls r2, r6, 24
	lsrs r2, 24
	bl sub_800DF34
	lsls r0, 24
	cmp r0, 0
	beq _08016F86
	ldr r0, [r4]
	adds r0, r5
	mov r2, r8
	movs r3, 0xC
	ldrsh r1, [r2, r3]
	bl sub_8016F1C
_08016F86:
	ldr r0, [r4]
	adds r0, r5
	ldr r1, =gUnknown_082F045C
	bl sub_8017630
	ldr r3, [r4]
	adds r3, r5
	movs r2, 0x1
	ands r2, r0
	ldrb r0, [r3, 0x18]
	movs r7, 0x2
	negs r7, r7
	adds r1, r7, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3, 0x18]
	adds r5, 0x1C
	adds r6, 0x1
	cmp r6, 0x3
	ble _08016F62
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8016F44

	thumb_func_start sub_8016FC0
sub_8016FC0: @ 8016FC0
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldr r0, =sub_8016E24
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 2
	adds r2, r0
	lsls r2, 3
	ldr r1, =gTasks + 0x8
	adds r3, r2, r1
	str r4, [r3]
	adds r1, r2
	strh r5, [r1, 0x4]
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8016FC0

	thumb_func_start sub_8016FF0
sub_8016FF0: @ 8016FF0
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldr r0, =sub_8016F44
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 2
	adds r2, r0
	lsls r2, 3
	ldr r1, =gTasks + 0x8
	adds r3, r2, r1
	str r4, [r3]
	adds r1, r2
	strh r5, [r1, 0x4]
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8016FF0

	thumb_func_start sub_8017020
sub_8017020: @ 8017020
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81973A4
	movs r0, 0
	movs r1, 0x1
	bl DrawDialogueFrame
	ldr r0, =gStringVar4
	adds r1, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0
	movs r1, 0x1
	bl AddTextPrinterWithCustomSpeedForMessage
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8017020

	thumb_func_start sub_801704C
sub_801704C: @ 801704C
	push {lr}
	bl RunTextPrintersAndIsPrinter0Active
	lsls r0, 16
	cmp r0, 0
	beq _0801705C
	movs r0, 0
	b _0801705E
_0801705C:
	movs r0, 0x1
_0801705E:
	pop {r1}
	bx r1
	thumb_func_end sub_801704C

	thumb_func_start PrintOnTextbox
PrintOnTextbox: @ 8017064
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _08017076
	cmp r0, 0x1
	beq _0801709C
	b _080170AE
_08017076:
	bl sub_81973A4
	movs r0, 0
	movs r1, 0x1
	bl DrawDialogueFrame
	ldr r0, =gStringVar4
	adds r1, r5, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	bl AddTextPrinterForMessage_2
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _080170AE
	.pool
_0801709C:
	bl RunTextPrintersAndIsPrinter0Active
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	bne _080170AE
	strb r0, [r4]
	movs r0, 0x1
	b _080170B0
_080170AE:
	movs r0, 0
_080170B0:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end PrintOnTextbox

	thumb_func_start sub_80170B8
sub_80170B8: @ 80170B8
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _080170CA
	cmp r0, 0x1
	beq _080170E0
	b _0801710C
_080170CA:
	cmp r5, 0
	beq _080170D4
	movs r0, 0x3
	negs r0, r0
	b _08017110
_080170D4:
	bl DisplayYesNoMenuDefaultYes
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801710C
_080170E0:
	cmp r5, 0
	beq _080170F2
	bl sub_8198C78
	movs r0, 0
	strb r0, [r4]
	movs r0, 0x3
	negs r0, r0
	b _08017110
_080170F2:
	bl Menu_ProcessInputNoWrapClearOnChoose
	lsls r0, 24
	asrs r1, r0, 24
	movs r2, 0x80
	lsls r2, 17
	adds r0, r2
	lsrs r0, 24
	cmp r0, 0x2
	bhi _0801710C
	strb r5, [r4]
	adds r0, r1, 0
	b _08017110
_0801710C:
	movs r0, 0x2
	negs r0, r0
_08017110:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_80170B8

	thumb_func_start sub_8017118
sub_8017118: @ 8017118
	push {r4,lr}
	sub sp, 0x8
	bl AddWindow
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0
	bl DrawStdWindowFrame
	adds r0, r4, 0
	movs r1, 0xFF
	bl FillWindowPixelBuffer
	ldr r2, =gUnknown_082EFD94
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0x6
	str r0, [sp, 0x4]
	adds r0, r4, 0
	movs r1, 0x1
	movs r3, 0x8
	bl sub_80173E0
	adds r0, r4, 0
	movs r1, 0x2
	bl CopyWindowToVram
	adds r0, r4, 0
	bl PutWindowTilemap
	adds r0, r4, 0
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8017118

	thumb_func_start sub_8017168
sub_8017168: @ 8017168
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	bl RemoveWindow
	pop {r0}
	bx r0
	thumb_func_end sub_8017168

	thumb_func_start sub_8017178
sub_8017178: @ 8017178
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	adds r7, r0, 0
	adds r5, r1, 0
	mov r9, r2
	ldrb r4, [r7]
	cmp r4, 0
	beq _08017194
	cmp r4, 0x1
	beq _08017228
	b _0801728E
_08017194:
	ldr r0, [r3]
	ldr r1, [r3, 0x4]
	str r0, [sp]
	str r1, [sp, 0x4]
	ldr r0, [sp, 0x24]
	bl sub_81DB41C
	adds r1, r0, 0
	ldr r2, [sp]
	lsrs r0, r2, 24
	cmp r0, r1
	ble _080171B6
	lsls r1, 24
	ldr r0, =0x00ffffff
	ands r0, r2
	orrs r0, r1
	str r0, [sp]
_080171B6:
	ldr r2, [sp]
	lsrs r0, r2, 8
	lsls r0, 24
	lsrs r0, 24
	lsrs r1, r2, 24
	adds r0, r1
	cmp r0, 0x1D
	ble _080171DC
	movs r0, 0x1D
	subs r0, r1
	cmp r0, 0
	bge _080171D0
	movs r0, 0
_080171D0:
	lsls r1, r0, 24
	lsrs r1, 16
	ldr r0, =0xffff00ff
	ands r0, r2
	orrs r0, r1
	str r0, [sp]
_080171DC:
	mov r0, sp
	bl AddWindow
	strb r0, [r5]
	ldrb r0, [r5]
	movs r1, 0
	bl DrawStdWindowFrame
	ldr r0, =gMultiuseListMenuTemplate
	adds r2, r0, 0
	ldr r1, [sp, 0x24]
	ldm r1!, {r3,r4,r6}
	stm r2!, {r3,r4,r6}
	ldm r1!, {r3,r4,r6}
	stm r2!, {r3,r4,r6}
	ldrb r1, [r5]
	strb r1, [r0, 0x10]
	movs r1, 0
	movs r2, 0
	bl ListMenuInit
	mov r1, r9
	strb r0, [r1]
	ldrb r0, [r5]
	movs r1, 0x1
	bl CopyWindowToVram
	ldrb r0, [r7]
	adds r0, 0x1
	strb r0, [r7]
	b _0801728E
	.pool
_08017228:
	mov r3, r9
	ldrb r0, [r3]
	bl ListMenu_ProcessInput
	mov r8, r0
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	ands r4, r1
	cmp r4, 0
	beq _08017264
	mov r4, r9
	ldrb r0, [r4]
	movs r1, 0
	movs r2, 0
	bl DestroyListMenuTask
	ldrb r0, [r5]
	movs r1, 0x1
	bl ClearStdWindowAndFrame
	ldrb r0, [r5]
	bl RemoveWindow
	movs r0, 0
	strb r0, [r7]
	mov r0, r8
	b _08017292
	.pool
_08017264:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0801728E
	mov r6, r9
	ldrb r0, [r6]
	movs r1, 0
	movs r2, 0
	bl DestroyListMenuTask
	ldrb r0, [r5]
	movs r1, 0x1
	bl ClearStdWindowAndFrame
	ldrb r0, [r5]
	bl RemoveWindow
	strb r4, [r7]
	movs r0, 0x2
	negs r0, r0
	b _08017292
_0801728E:
	movs r0, 0x1
	negs r0, r0
_08017292:
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8017178

	thumb_func_start sub_80172A0
sub_80172A0: @ 80172A0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r5, r0, 0
	adds r6, r1, 0
	mov r10, r2
	mov r9, r3
	ldrb r4, [r5]
	cmp r4, 0x1
	beq _0801730C
	cmp r4, 0x1
	bgt _080172C2
	cmp r4, 0
	beq _080172C8
	b _0801739C
_080172C2:
	cmp r4, 0x2
	beq _0801731C
	b _0801739C
_080172C8:
	ldr r0, =gUnknown_082F0344
	bl sub_8017118
	mov r1, r9
	strb r0, [r1]
	ldr r0, [sp, 0x20]
	bl AddWindow
	strb r0, [r6]
	ldrb r0, [r6]
	movs r1, 0
	bl DrawStdWindowFrame
	ldr r0, =gMultiuseListMenuTemplate
	adds r2, r0, 0
	ldr r1, [sp, 0x24]
	ldm r1!, {r3,r4,r7}
	stm r2!, {r3,r4,r7}
	ldm r1!, {r3,r4,r7}
	stm r2!, {r3,r4,r7}
	ldrb r1, [r6]
	strb r1, [r0, 0x10]
	movs r1, 0
	movs r2, 0x1
	bl ListMenuInit
	mov r1, r10
	strb r0, [r1]
	b _08017314
	.pool
_0801730C:
	ldrb r0, [r6]
	movs r1, 0x1
	bl CopyWindowToVram
_08017314:
	ldrb r0, [r5]
	adds r0, 0x1
	strb r0, [r5]
	b _0801739C
_0801731C:
	mov r3, r10
	ldrb r0, [r3]
	bl ListMenu_ProcessInput
	adds r1, r0, 0
	ldr r0, =gMain
	ldrh r2, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r2
	cmp r0, 0
	beq _0801739C
	cmp r1, 0x8
	beq _0801733E
	ands r4, r2
	mov r8, r4
	cmp r4, 0
	beq _08017368
_0801733E:
	mov r4, r10
	ldrb r0, [r4]
	movs r1, 0
	movs r2, 0
	bl DestroyListMenuTask
	ldrb r0, [r6]
	bl RemoveWindow
	mov r7, r9
	ldrb r0, [r7]
	bl sub_8017168
	movs r0, 0
	strb r0, [r5]
	movs r0, 0x2
	negs r0, r0
	b _080173A0
	.pool
_08017368:
	ldr r0, [sp, 0x28]
	bl sub_8017CB0
	adds r4, r0, 0
	cmp r4, 0
	blt _08017396
	mov r1, r10
	ldrb r0, [r1]
	movs r1, 0
	movs r2, 0
	bl DestroyListMenuTask
	ldrb r0, [r6]
	bl RemoveWindow
	mov r3, r9
	ldrb r0, [r3]
	bl sub_8017168
	mov r7, r8
	strb r7, [r5]
	adds r0, r4, 0
	b _080173A0
_08017396:
	movs r0, 0x7
	bl PlaySE
_0801739C:
	movs r0, 0x1
	negs r0, r0
_080173A0:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_80172A0

	thumb_func_start sub_80173B0
sub_80173B0: @ 80173B0
	push {lr}
	sub sp, 0xC
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	add sp, 0xC
	pop {r0}
	bx r0
	thumb_func_end sub_80173B0

	thumb_func_start sub_80173D4
sub_80173D4: @ 80173D4
	push {lr}
	bl EnableBothScriptContexts
	pop {r0}
	bx r0
	thumb_func_end sub_80173D4

	thumb_func_start sub_80173E0
sub_80173E0: @ 80173E0
	push {r4,r5,lr}
	sub sp, 0x10
	ldr r5, [sp, 0x1C]
	ldr r4, [sp, 0x20]
	lsls r3, 24
	lsrs r3, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r4, 24
	lsrs r4, 24
	str r2, [sp]
	mov r2, sp
	strb r0, [r2, 0x4]
	mov r0, sp
	strb r1, [r0, 0x5]
	strb r3, [r0, 0x6]
	strb r5, [r0, 0x7]
	strb r3, [r0, 0x8]
	strb r5, [r0, 0x9]
	ldrb r1, [r2, 0xC]
	movs r0, 0x10
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0xC]
	ldr r2, =gTextFlags
	ldrb r1, [r2]
	movs r0, 0x3
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	cmp r4, 0x6
	bls _08017422
	b _0801756E
_08017422:
	lsls r0, r4, 2
	ldr r1, =_08017434
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08017434:
	.4byte _08017450
	.4byte _0801747C
	.4byte _080174A8
	.4byte _080174D4
	.4byte _08017500
	.4byte _0801752C
	.4byte _08017544
_08017450:
	mov r0, sp
	movs r1, 0
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r3, 0xF
	adds r0, r3, 0
	ands r0, r1
	movs r1, 0x20
	orrs r0, r1
	strb r0, [r2, 0xC]
	ldrb r1, [r2, 0xD]
	movs r0, 0x10
	negs r0, r0
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2, 0xD]
	ands r0, r3
	movs r1, 0x30
	b _0801756A
_0801747C:
	mov r0, sp
	movs r1, 0
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r3, 0xF
	adds r0, r3, 0
	ands r0, r1
	movs r1, 0x40
	orrs r0, r1
	strb r0, [r2, 0xC]
	ldrb r1, [r2, 0xD]
	movs r0, 0x10
	negs r0, r0
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2, 0xD]
	ands r0, r3
	movs r1, 0x50
	b _0801756A
_080174A8:
	mov r0, sp
	movs r1, 0
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r3, 0xF
	adds r0, r3, 0
	ands r0, r1
	movs r1, 0x60
	orrs r0, r1
	strb r0, [r2, 0xC]
	ldrb r1, [r2, 0xD]
	movs r0, 0x10
	negs r0, r0
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2, 0xD]
	ands r0, r3
	movs r1, 0x70
	b _0801756A
_080174D4:
	mov r0, sp
	movs r1, 0
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r3, 0xF
	adds r0, r3, 0
	ands r0, r1
	movs r1, 0x10
	orrs r0, r1
	strb r0, [r2, 0xC]
	ldrb r1, [r2, 0xD]
	movs r0, 0x10
	negs r0, r0
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2, 0xD]
	ands r0, r3
	movs r1, 0x30
	b _0801756A
_08017500:
	mov r0, sp
	movs r1, 0
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r3, 0xF
	adds r0, r3, 0
	ands r0, r1
	movs r1, 0x10
	orrs r0, r1
	strb r0, [r2, 0xC]
	ldrb r1, [r2, 0xD]
	movs r0, 0x10
	negs r0, r0
	ands r0, r1
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2, 0xD]
	ands r0, r3
	movs r1, 0x30
	b _0801756A
_0801752C:
	mov r0, sp
	movs r1, 0
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r4, 0xF
	movs r3, 0xF
	adds r0, r3, 0
	ands r0, r1
	movs r1, 0x70
	b _0801755A
_08017544:
	mov r0, sp
	movs r1, 0
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r4, 0xF
	movs r3, 0xF
	adds r0, r3, 0
	ands r0, r1
	movs r1, 0xE0
_0801755A:
	orrs r0, r1
	strb r0, [r2, 0xC]
	mov r1, sp
	ldrb r0, [r1, 0xD]
	orrs r0, r4
	strb r0, [r1, 0xD]
	ands r0, r3
	movs r1, 0x90
_0801756A:
	orrs r0, r1
	strb r0, [r2, 0xD]
_0801756E:
	mov r0, sp
	movs r1, 0xFF
	movs r2, 0
	bl AddTextPrinter
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_80173E0

	thumb_func_start sub_8017580
sub_8017580: @ 8017580
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r1, 24
	lsrs r1, 24
	cmp r1, 0
	beq _080175D8
	ldr r2, =gUnknown_082F045C
	mov r8, r2
	movs r5, 0
	mov r9, r5
	movs r6, 0x4
	negs r6, r6
	mov r12, r6
	adds r2, r0, 0
	adds r2, 0x18
	adds r4, r0, 0
	movs r7, 0xFF
	mov r10, r7
	adds r3, r1, 0
_080175AC:
	adds r1, r4, 0
	mov r0, r8
	ldm r0!, {r5-r7}
	stm r1!, {r5-r7}
	ldm r0!, {r5-r7}
	stm r1!, {r5-r7}
	mov r0, r10
	strh r0, [r2]
	ldrb r1, [r2, 0x2]
	mov r0, r12
	ands r0, r1
	movs r1, 0x5
	negs r1, r1
	ands r0, r1
	strb r0, [r2, 0x2]
	mov r5, r9
	strb r5, [r2, 0x3]
	adds r2, 0x20
	adds r4, 0x20
	subs r3, 0x1
	cmp r3, 0
	bne _080175AC
_080175D8:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8017580

	thumb_func_start sub_80175EC
sub_80175EC: @ 80175EC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r1, =gUnknown_082F045C
	mov r12, r1
	movs r5, 0x2
	negs r5, r5
	mov r8, r5
	adds r2, r0, 0
	adds r2, 0x18
	adds r3, r0, 0
	movs r4, 0x3
_08017604:
	adds r1, r3, 0
	mov r0, r12
	ldm r0!, {r5-r7}
	stm r1!, {r5-r7}
	ldm r0!, {r5-r7}
	stm r1!, {r5-r7}
	ldrb r1, [r2]
	mov r0, r8
	ands r0, r1
	strb r0, [r2]
	adds r2, 0x1C
	adds r3, 0x1C
	subs r4, 0x1
	cmp r4, 0
	bge _08017604
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80175EC

	thumb_func_start sub_8017630
sub_8017630: @ 8017630
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	movs r2, 0
	adds r4, r5, 0x2
	adds r3, r6, 0x2
_0801763C:
	adds r0, r4, r2
	adds r1, r3, r2
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	bne _08017664
	adds r2, 0x1
	cmp r2, 0x1
	ble _0801763C
	movs r2, 0
	adds r4, r5, 0
	adds r4, 0x10
	adds r3, r6, 0
	adds r3, 0x10
_08017658:
	adds r0, r4, r2
	adds r1, r3, r2
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	beq _08017668
_08017664:
	movs r0, 0x1
	b _08017670
_08017668:
	adds r2, 0x1
	cmp r2, 0x7
	ble _08017658
	movs r0, 0
_08017670:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8017630

	thumb_func_start sub_8017678
sub_8017678: @ 8017678
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	ldrb r3, [r5, 0xA]
	movs r0, 0x7F
	ldrb r2, [r6, 0xA]
	adds r1, r0, 0
	ands r1, r3
	ands r0, r2
	cmp r1, r0
	bne _080176DC
	movs r0, 0x80
	adds r1, r0, 0
	ands r1, r3
	ands r0, r2
	cmp r1, r0
	bne _080176DC
	movs r2, 0
	adds r4, r5, 0x4
	adds r3, r6, 0x4
_080176A0:
	adds r0, r4, r2
	adds r1, r3, r2
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	bne _080176DC
	adds r2, 0x1
	cmp r2, 0x3
	ble _080176A0
	ldrh r2, [r5, 0x8]
	ldr r0, =0x000003ff
	ldrh r3, [r6, 0x8]
	adds r1, r0, 0
	ands r1, r2
	ands r0, r3
	cmp r1, r0
	bne _080176DC
	ldrb r2, [r5, 0x9]
	movs r0, 0xFC
	ldrb r3, [r6, 0x9]
	adds r1, r0, 0
	ands r1, r2
	ands r0, r3
	cmp r1, r0
	bne _080176DC
	movs r0, 0
	b _080176DE
	.pool
_080176DC:
	movs r0, 0x1
_080176DE:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8017678

	thumb_func_start sub_80176E4
sub_80176E4: @ 80176E4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	movs r7, 0xFF
	movs r6, 0
	adds r4, r1, 0
	adds r4, 0x18
	adds r5, r1, 0
_080176F6:
	ldrb r1, [r4]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0801771E
	mov r0, r8
	adds r1, r5, 0
	bl sub_8017630
	lsls r0, 24
	cmp r0, 0
	bne _0801771E
	lsls r0, r6, 24
	lsrs r7, r0, 24
	ldrb r0, [r4]
	movs r2, 0x2
	negs r2, r2
	adds r1, r2, 0
	ands r0, r1
	strb r0, [r4]
_0801771E:
	adds r4, 0x1C
	adds r5, 0x1C
	adds r6, 0x1
	cmp r6, 0x3
	ble _080176F6
	adds r0, r7, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_80176E4

	thumb_func_start sub_8017734
sub_8017734: @ 8017734
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r3, r0, 0
	mov r8, r1
	lsls r2, 24
	lsrs r6, r2, 24
	ldrb r1, [r1, 0x18]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _080177A8
	movs r5, 0
	cmp r5, r6
	bge _080177A8
	movs r0, 0x4
	negs r0, r0
	mov r9, r0
	movs r1, 0x2
	negs r1, r1
	mov r12, r1
	adds r2, r3, 0
	adds r2, 0x18
	adds r1, r3, 0
_08017766:
	ldrb r0, [r2, 0x2]
	movs r3, 0x3
	ands r3, r0
	cmp r3, 0
	bne _0801779E
	mov r0, r8
	ldm r0!, {r4,r6,r7}
	stm r1!, {r4,r6,r7}
	ldm r0!, {r4,r6,r7}
	stm r1!, {r4,r6,r7}
	strh r3, [r2]
	ldrb r1, [r2, 0x2]
	mov r0, r9
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2, 0x2]
	movs r0, 0x40
	strb r0, [r2, 0x3]
	mov r0, r8
	ldrb r1, [r0, 0x18]
	mov r0, r12
	ands r0, r1
	mov r1, r8
	strb r0, [r1, 0x18]
	lsls r0, r5, 24
	lsrs r0, 24
	b _080177AA
_0801779E:
	adds r2, 0x20
	adds r1, 0x20
	adds r5, 0x1
	cmp r5, r6
	blt _08017766
_080177A8:
	movs r0, 0xFF
_080177AA:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8017734

	thumb_func_start sub_80177B8
sub_80177B8: @ 80177B8
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	adds r4, r1, 0
	adds r6, r3, 0
	ldr r3, [sp, 0x2C]
	ldr r1, [sp, 0x30]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r4, 24
	lsrs r4, 24
	lsls r2, 24
	lsrs r7, r2, 24
	lsls r3, 24
	lsrs r3, 24
	mov r9, r3
	lsls r1, 24
	lsrs r1, 24
	ldr r5, =gStringVar4
	adds r1, 0x1
	adds r0, r5, 0
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r1, =gText_Colon
	adds r0, r5, 0
	bl StringAppend
	str r7, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	mov r0, r8
	movs r1, 0x1
	adds r2, r5, 0
	adds r3, r4, 0
	bl sub_80173E0
	adds r4, 0x12
	lsls r4, 24
	lsrs r4, 24
	ldrb r0, [r6, 0xA]
	lsls r0, 25
	lsrs r2, r0, 25
	ldrb r1, [r6, 0x1A]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _08017884
	movs r0, 0x40
	ands r2, r0
	cmp r2, 0
	bne _08017884
	adds r0, r5, 0
	adds r1, r6, 0
	bl sub_8018404
	str r7, [sp]
	mov r0, r9
	str r0, [sp, 0x4]
	mov r0, r8
	movs r1, 0x1
	adds r2, r5, 0
	adds r3, r4, 0
	bl sub_80173E0
	ldrb r1, [r6, 0x2]
	ldrb r0, [r6, 0x3]
	lsls r0, 8
	orrs r1, r0
	add r0, sp, 0x8
	movs r2, 0x2
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	ldr r1, =gText_UnkCtrlCodeF907
	adds r0, r5, 0
	bl StringCopy
	adds r0, r5, 0
	add r1, sp, 0x8
	bl StringAppend
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x88
	bl GetStringRightAlignXOffset
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	str r7, [sp]
	mov r0, r9
	str r0, [sp, 0x4]
	mov r0, r8
	movs r1, 0x1
	adds r2, r5, 0
	bl sub_80173E0
_08017884:
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80177B8

	thumb_func_start sub_80178A0
sub_80178A0: @ 80178A0
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	adds r5, r3, 0
	ldr r3, [sp, 0x2C]
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r1, 24
	lsrs r6, r1, 24
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r3, 24
	lsrs r7, r3, 24
	ldrb r1, [r5, 0x1A]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _0801792A
	ldr r4, =gStringVar4
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_8018404
	mov r0, r8
	str r0, [sp]
	str r7, [sp, 0x4]
	mov r0, r9
	movs r1, 0x1
	adds r2, r4, 0
	adds r3, r6, 0
	bl sub_80173E0
	ldrb r1, [r5, 0x2]
	ldrb r0, [r5, 0x3]
	lsls r0, 8
	orrs r1, r0
	add r0, sp, 0x8
	movs r2, 0x2
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	ldr r1, =gText_UnkCtrlCodeF907
	adds r0, r4, 0
	bl StringCopy
	adds r0, r4, 0
	add r1, sp, 0x8
	bl StringAppend
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x68
	bl GetStringRightAlignXOffset
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	mov r0, r8
	str r0, [sp]
	str r7, [sp, 0x4]
	mov r0, r9
	movs r1, 0x1
	adds r2, r4, 0
	bl sub_80173E0
_0801792A:
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80178A0

	thumb_func_start sub_8017940
sub_8017940: @ 8017940
	push {r4,lr}
	sub sp, 0x4
	mov r4, sp
	adds r4, 0x2
	mov r0, sp
	adds r1, r4, 0
	bl GetXYCoordsOneStepInFrontOfPlayer
	mov r0, sp
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0x9
	bne _08017978
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0x8
	bne _08017978
	ldr r0, =gPlayerAvatar
	ldrb r0, [r0, 0x3]
	cmp r0, 0x2
	beq _0801796E
	cmp r0, 0
	bne _08017978
_0801796E:
	movs r0, 0x1
	b _0801797A
	.pool
_08017978:
	movs r0, 0
_0801797A:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8017940

	thumb_func_start sub_8017984
sub_8017984: @ 8017984
	push {lr}
	cmp r0, 0x4
	beq _0801799C
	cmp r0, 0x4
	ble _080179A4
	cmp r0, 0x5
	beq _08017998
	cmp r0, 0x8
	beq _080179A0
	b _080179A4
_08017998:
	movs r0, 0x1
	b _080179A6
_0801799C:
	movs r0, 0x2
	b _080179A6
_080179A0:
	movs r0, 0x3
	b _080179A6
_080179A4:
	movs r0, 0
_080179A6:
	pop {r1}
	bx r1
	thumb_func_end sub_8017984

	thumb_func_start sub_80179AC
sub_80179AC: @ 80179AC
	push {r4,lr}
	sub sp, 0x20
	adds r4, r0, 0
	mov r0, sp
	adds r1, r4, 0
	bl sub_8018404
	adds r4, 0x2
	adds r0, r4, 0
	bl ReadAsU16
	lsls r0, 16
	lsrs r0, 16
	mov r1, sp
	bl sub_800E540
	add sp, 0x20
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_80179AC

	thumb_func_start sub_80179D4
sub_80179D4: @ 80179D4
	push {r4-r6,lr}
	adds r6, r3, 0
	lsls r1, 24
	lsrs r4, r1, 24
	lsls r2, 24
	lsrs r2, 19
	adds r5, r0, r2
	ldrb r1, [r5, 0xA]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08017A4C
	cmp r4, 0
	bne _08017A4C
	ldr r4, =gStringVar1
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_8018404
	adds r0, r5, 0x2
	bl ReadAsU16
	lsls r0, 16
	lsrs r0, 16
	adds r1, r4, 0
	bl sub_800E540
	adds r2, r0, 0
	ldrb r1, [r5, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x45
	bne _08017A38
	ldr r0, =gStringVar4
	ldr r3, =gUnknown_082EE6B8
	lsls r1, r6, 2
	lsls r2, 3
	adds r1, r2
	adds r1, r3
	ldr r1, [r1]
	bl StringExpandPlaceholders
	movs r0, 0x2
	b _08017B2A
	.pool
_08017A38:
	ldr r0, =gUnknown_082EE17C
	lsls r1, r2, 2
	adds r1, r0
	ldr r0, [r1]
	bl sub_8017020
	movs r0, 0x1
	b _08017B2A
	.pool
_08017A4C:
	ldr r0, =gStringVar1
	adds r1, r5, 0
	bl sub_8018404
	cmp r4, 0
	beq _08017A62
	adds r0, r5, r4
	ldrb r0, [r0, 0x3]
	lsrs r6, r0, 3
	movs r0, 0x1
	ands r6, r0
_08017A62:
	ldrb r0, [r5, 0xA]
	lsls r0, 25
	lsrs r0, 25
	movs r1, 0x3F
	ands r1, r0
	cmp r1, 0x4
	beq _08017AB0
	cmp r1, 0x4
	bgt _08017A80
	cmp r1, 0x1
	beq _08017A8A
	b _08017B20
	.pool
_08017A80:
	cmp r1, 0x5
	beq _08017AD0
	cmp r1, 0x8
	beq _08017AF4
	b _08017B20
_08017A8A:
	ldr r5, =gStringVar4
	ldr r4, =gUnknown_082EEEAC
	bl Random
	lsls r0, 16
	movs r1, 0xC0
	lsls r1, 10
	ands r1, r0
	lsrs r1, 14
	lsls r0, r6, 4
	adds r1, r0
	adds r1, r4
	ldr r1, [r1]
	b _08017B0E
	.pool
_08017AB0:
	ldr r5, =gStringVar4
	ldr r4, =gUnknown_082EF1CC
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x1
	ands r0, r1
	lsls r0, 2
	lsls r1, r6, 4
	b _08017B08
	.pool
_08017AD0:
	ldr r5, =gStringVar4
	ldr r4, =gUnknown_082EF010
	bl Random
	lsls r0, 16
	movs r1, 0xC0
	lsls r1, 10
	ands r1, r0
	lsrs r1, 14
	lsls r0, r6, 4
	adds r1, r0
	adds r1, r4
	ldr r1, [r1]
	b _08017B0E
	.pool
_08017AF4:
	ldr r5, =gStringVar4
	ldr r4, =gUnknown_082EF100
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x1
	ands r0, r1
	lsls r0, 2
	lsls r1, r6, 3
_08017B08:
	adds r0, r1
	adds r0, r4
	ldr r1, [r0]
_08017B0E:
	adds r0, r5, 0
	bl StringExpandPlaceholders
	b _08017B28
	.pool
_08017B20:
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_082EE6C8
	bl StringExpandPlaceholders
_08017B28:
	movs r0, 0
_08017B2A:
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_80179D4

	thumb_func_start nullsub_14
nullsub_14: @ 8017B38
	bx lr
	thumb_func_end nullsub_14

	thumb_func_start sub_8017B3C
sub_8017B3C: @ 8017B3C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0xC
	ldr r4, [sp, 0x28]
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	lsls r4, 24
	lsrs r4, 24
	ldrh r0, [r2, 0x8]
	lsls r0, 22
	lsrs r0, 22
	mov r8, r0
	ldrb r0, [r2, 0x9]
	lsrs r7, r0, 2
	ldrb r0, [r2, 0xB]
	lsrs r0, 1
	mov r9, r0
	str r5, [sp]
	str r4, [sp, 0x4]
	adds r0, r6, 0
	movs r1, 0x1
	adds r2, r3, 0
	movs r3, 0x8
	bl sub_80173E0
	movs r0, 0xCE
	lsls r0, 1
	cmp r8, r0
	bne _08017B94
	ldr r2, =gUnknown_082EF7D0
	str r5, [sp]
	str r4, [sp, 0x4]
	adds r0, r6, 0
	movs r1, 0x1
	movs r3, 0x44
	bl sub_80173E0
	b _08017BD4
	.pool
_08017B94:
	adds r1, r7, 0x1
	adds r0, r6, 0
	movs r2, 0x44
	adds r3, r5, 0
	bl blit_move_info_icon
	movs r0, 0xB
	mov r2, r8
	muls r2, r0
	ldr r0, =gSpeciesNames
	adds r2, r0
	str r5, [sp]
	str r4, [sp, 0x4]
	adds r0, r6, 0
	movs r1, 0x1
	movs r3, 0x76
	bl sub_80173E0
	add r0, sp, 0x8
	mov r1, r9
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	str r5, [sp]
	str r4, [sp, 0x4]
	adds r0, r6, 0
	movs r1, 0x1
	add r2, sp, 0x8
	movs r3, 0xC6
	bl sub_80173E0
_08017BD4:
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8017B3C

	thumb_func_start sub_8017BE8
sub_8017BE8: @ 8017BE8
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	adds r4, r1, 0
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r2, 24
	lsrs r7, r2, 24
	ldr r0, =gUnknown_02022C30
	ldr r0, [r0]
	mov r8, r0
	movs r0, 0x3
	negs r0, r0
	cmp r4, r0
	bne _08017C6C
	ldr r0, =gUnknown_082F03A4
	ldrb r0, [r0, 0x14]
	lsls r0, 28
	lsrs r0, 28
	cmp r7, r0
	bne _08017C6C
	bl sub_800F7DC
	adds r2, r0, 0
	ldrh r1, [r2, 0x8]
	ldr r0, =0x000003ff
	ands r0, r1
	cmp r0, 0
	beq _08017CA0
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	movs r0, 0x5
	str r0, [sp]
	mov r0, r9
	adds r1, r7, 0
	bl sub_8017B3C
	b _08017CA0
	.pool
_08017C4C:
	mov r0, r12
	adds r1, r0, r4
	add r0, sp, 0x4
	bl sub_8018404
	mov r0, r8
	ldr r2, [r0]
	adds r2, r4
	movs r0, 0x6
	str r0, [sp]
	mov r0, r9
	adds r1, r7, 0
	add r3, sp, 0x4
	bl sub_8017B3C
	b _08017CA0
_08017C6C:
	movs r5, 0
	movs r1, 0
	mov r2, r8
	ldr r2, [r2]
	mov r12, r2
	adds r2, 0x8
	movs r3, 0
	adds r6, r4, 0x1
_08017C7C:
	ldrb r0, [r2, 0x12]
	lsls r0, 30
	lsrs r0, 30
	adds r4, r3, 0
	cmp r0, 0x1
	bne _08017C92
	ldrh r0, [r2]
	lsls r0, 22
	cmp r0, 0
	beq _08017C92
	adds r5, 0x1
_08017C92:
	cmp r5, r6
	beq _08017C4C
	adds r2, 0x20
	adds r3, 0x20
	adds r1, 0x1
	cmp r1, 0x7
	ble _08017C7C
_08017CA0:
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8017BE8

	thumb_func_start sub_8017CB0
sub_8017CB0: @ 8017CB0
	push {r4-r7,lr}
	movs r4, 0
	movs r3, 0
	movs r7, 0x3
	ldr r6, =0x000003ff
	adds r2, r0, 0
	adds r2, 0x8
	adds r5, r1, 0x1
_08017CC0:
	ldrb r1, [r2, 0x12]
	adds r0, r7, 0
	ands r0, r1
	cmp r0, 0x1
	bne _08017CD6
	ldrh r1, [r2]
	adds r0, r6, 0
	ands r0, r1
	cmp r0, 0
	beq _08017CD6
	adds r4, 0x1
_08017CD6:
	cmp r4, r5
	bne _08017CE4
	adds r0, r3, 0
	b _08017CF0
	.pool
_08017CE4:
	adds r2, 0x20
	adds r3, 0x1
	cmp r3, 0x7
	ble _08017CC0
	movs r0, 0x1
	negs r0, r0
_08017CF0:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8017CB0

	thumb_func_start sub_8017CF8
sub_8017CF8: @ 8017CF8
	lsls r0, 5
	adds r0, r1
	ldrb r0, [r0, 0xB]
	lsls r0, 31
	lsrs r0, 31
	bx lr
	thumb_func_end sub_8017CF8

	thumb_func_start sub_8017D04
sub_8017D04: @ 8017D04
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r0, 0xCE
	lsls r0, 1
	cmp r1, r0
	bne _08017D44
	movs r4, 0
	b _08017D2E
_08017D14:
	movs r0, 0x64
	muls r0, r4
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x41
	bl GetMonData
	adds r1, r0, 0
	movs r0, 0xCE
	lsls r0, 1
	cmp r1, r0
	beq _08017D74
	adds r4, 0x1
_08017D2E:
	ldr r0, =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r4, r0
	blt _08017D14
	movs r0, 0x2
	b _08017D90
	.pool
_08017D44:
	movs r4, 0
	ldr r0, =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r4, r0
	bge _08017D8E
	ldr r6, =gBaseStats
_08017D50:
	movs r0, 0x64
	muls r0, r4
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x41
	bl GetMonData
	adds r1, r0, 0
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r1, r0, r6
	ldrb r0, [r1, 0x6]
	cmp r0, r5
	beq _08017D74
	ldrb r0, [r1, 0x7]
	cmp r0, r5
	bne _08017D84
_08017D74:
	movs r0, 0
	b _08017D90
	.pool
_08017D84:
	adds r4, 0x1
	ldr r0, =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r4, r0
	blt _08017D50
_08017D8E:
	movs r0, 0x1
_08017D90:
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8017D04

	thumb_func_start sub_8017D9C
sub_8017D9C: @ 8017D9C
	push {lr}
	adds r3, r0, 0
	cmp r1, 0x44
	beq _08017DD8
	cmp r1, 0x44
	bgt _08017DAE
	cmp r1, 0x41
	beq _08017DB8
	b _08017DF6
_08017DAE:
	cmp r1, 0x45
	beq _08017DC8
	cmp r1, 0x48
	beq _08017DE8
	b _08017DF6
_08017DB8:
	ldr r0, =gUnknown_082EEA68
	lsls r1, r2, 2
	adds r1, r0
	ldr r1, [r1]
	b _08017DDA
	.pool
_08017DC8:
	ldr r0, =gUnknown_082EED3C
	lsls r1, r2, 2
	adds r1, r0
	ldr r1, [r1]
	b _08017DDA
	.pool
_08017DD8:
	ldr r1, =gUnknown_082EF7B0
_08017DDA:
	adds r0, r3, 0
	bl StringExpandPlaceholders
	b _08017DF6
	.pool
_08017DE8:
	ldr r0, =gUnknown_082EEB08
	lsls r1, r2, 2
	adds r1, r0
	ldr r1, [r1]
	adds r0, r3, 0
	bl StringExpandPlaceholders
_08017DF6:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8017D9C

	thumb_func_start sub_8017E00
sub_8017E00: @ 8017E00
	push {r4-r6,lr}
	adds r5, r0, 0
	lsls r1, 24
	lsrs r4, r1, 24
	adds r6, r4, 0
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r2, =gLinkPlayers
	movs r0, 0x1
	adds r1, r3, 0
	eors r1, r0
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r0, r2
	ldrb r0, [r0, 0x13]
	cmp r4, 0x44
	beq _08017E54
	cmp r4, 0x44
	bgt _08017E38
	cmp r4, 0x41
	beq _08017E3E
	b _08017E94
	.pool
_08017E38:
	cmp r6, 0x45
	beq _08017E78
	b _08017E94
_08017E3E:
	ldr r2, =gUnknown_082EE984
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	lsls r0, r3, 1
	adds r0, r3
	lsls r0, 3
	adds r1, r0
	b _08017E66
	.pool
_08017E54:
	ldr r2, =gUnknown_082EE984
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	lsls r0, r3, 1
	adds r0, r3
	lsls r0, 3
	adds r1, r0
	adds r2, 0x8
_08017E66:
	adds r1, r2
	ldr r1, [r1]
	adds r0, r5, 0
	bl StringCopy
	b _08017E94
	.pool
_08017E78:
	ldr r2, =gUnknown_082EE984
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	lsls r0, r3, 1
	adds r0, r3
	lsls r0, 3
	adds r1, r0
	adds r2, 0x4
	adds r1, r2
	ldr r1, [r1]
	adds r0, r5, 0
	bl StringCopy
_08017E94:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8017E00

	thumb_func_start sub_8017EA0
sub_8017EA0: @ 8017EA0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r7, r0, 0
	adds r5, r2, 0
	adds r6, r3, 0
	movs r2, 0
	mov r8, r2
	ldrh r0, [r5]
	subs r0, 0x40
	cmp r0, 0x8
	bls _08017EBA
	b _08017FC6
_08017EBA:
	lsls r0, 2
	ldr r1, =_08017EC8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08017EC8:
	.4byte _08017FBC
	.4byte _08017EEC
	.4byte _08017FC6
	.4byte _08017FC6
	.4byte _08017EFC
	.4byte _08017EF4
	.4byte _08017FC6
	.4byte _08017FC6
	.4byte _08017FAC
_08017EEC:
	ldr r1, =gUnknown_082EE3DC
	b _08017FAE
	.pool
_08017EF4:
	ldr r1, =gUnknown_082EE430
	b _08017FAE
	.pool
_08017EFC:
	adds r0, r6, 0
	adds r0, 0x58
	ldr r4, =gUnknown_02022C40
	ldrh r1, [r4, 0xC]
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r0, r6, 0
	adds r0, 0x68
	ldrh r2, [r4, 0xA]
	movs r1, 0xB
	muls r1, r2
	ldr r2, =gSpeciesNames
	adds r1, r2
	bl StringCopy
	movs r4, 0
	b _08017F2E
	.pool
_08017F2C:
	adds r4, 0x1
_08017F2E:
	cmp r4, 0x3
	bgt _08017F64
	ldr r0, =gUnknown_03007890
	ldr r0, [r0]
	lsls r1, r4, 5
	adds r0, r1
	ldrh r0, [r0, 0x18]
	cmp r0, 0x2
	bne _08017F2C
	ldrh r1, [r5, 0x4]
	adds r0, r6, 0
	adds r0, 0x78
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldrh r1, [r5, 0x2]
	movs r0, 0xB
	muls r1, r0
	ldr r0, =gSpeciesNames
	adds r1, r0
	adds r0, r6, 0
	adds r0, 0x88
	bl StringCopy
	ldrh r5, [r5, 0x2]
	mov r8, r5
_08017F64:
	movs r0, 0xCE
	lsls r0, 1
	cmp r8, r0
	bne _08017F84
	ldr r1, =gUnknown_082EE4F0
	adds r0, r7, 0
	bl StringCopy
	b _08017FB4
	.pool
_08017F84:
	movs r4, 0
	adds r5, r6, 0
	adds r5, 0x58
_08017F8A:
	lsls r0, r4, 24
	lsrs r0, 24
	adds r1, r5, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	adds r5, 0x10
	adds r4, 0x1
	cmp r4, 0x3
	ble _08017F8A
	ldr r1, =gUnknown_082EE47C
	adds r0, r7, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	b _08017FB4
	.pool
_08017FAC:
	ldr r1, =gUnknown_082EE380
_08017FAE:
	adds r0, r7, 0
	bl StringExpandPlaceholders
_08017FB4:
	movs r2, 0x1
	b _08017FC6
	.pool
_08017FBC:
	ldr r1, =gUnknown_082EE544
	adds r0, r7, 0
	bl StringExpandPlaceholders
	movs r2, 0x2
_08017FC6:
	adds r0, r2, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8017EA0

	thumb_func_start sub_8017FD8
sub_8017FD8: @ 8017FD8
	push {lr}
	adds r2, r0, 0
	ldr r0, =gRecvCmds
	ldrh r1, [r0, 0x2]
	cmp r1, 0
	beq _08017FFC
	cmp r1, 0x51
	beq _08017FEC
	cmp r1, 0x52
	bne _08017FFC
_08017FEC:
	adds r0, r2, 0
	adds r0, 0x98
	strh r1, [r0]
	movs r0, 0x1
	b _08017FFE
	.pool
_08017FFC:
	movs r0, 0
_08017FFE:
	pop {r1}
	bx r1
	thumb_func_end sub_8017FD8

	thumb_func_start InUnionRoom
InUnionRoom: @ 8018004
	push {lr}
	movs r2, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldr r0, =0x00003c19
	cmp r1, r0
	bne _08018016
	movs r2, 0x1
_08018016:
	adds r0, r2, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end InUnionRoom

	thumb_func_start sub_8018024
sub_8018024: @ 8018024
	push {r4-r6,lr}
	movs r6, 0
	movs r5, 0
	ldr r0, =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r6, r0
	bge _08018064
_08018032:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	cmp r0, 0x1E
	bhi _0801805A
	adds r0, r4, 0
	movs r1, 0x41
	bl GetMonData
	movs r1, 0xCE
	lsls r1, 1
	cmp r0, r1
	beq _0801805A
	adds r6, 0x1
_0801805A:
	adds r5, 0x1
	ldr r0, =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r5, r0
	blt _08018032
_08018064:
	cmp r6, 0x1
	bgt _08018074
	movs r0, 0
	b _08018076
	.pool
_08018074:
	movs r0, 0x1
_08018076:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8018024

	thumb_func_start sub_801807C
sub_801807C: @ 801807C
	movs r1, 0
	strh r1, [r0]
	strh r1, [r0, 0x2]
	str r1, [r0, 0x4]
	strh r1, [r0, 0xA]
	strh r1, [r0, 0xC]
	strh r1, [r0, 0xE]
	strh r1, [r0, 0x10]
	str r1, [r0, 0x14]
	bx lr
	thumb_func_end sub_801807C

	thumb_func_start sub_8018090
sub_8018090: @ 8018090
	push {lr}
	ldr r0, =gUnknown_02022C40
	bl sub_801807C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8018090

	thumb_func_start sub_80180A0
sub_80180A0: @ 80180A0
	push {r4,r5,lr}
	adds r5, r1, 0
	movs r1, 0x64
	adds r4, r0, 0
	muls r4, r1
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	movs r1, 0x41
	bl GetMonData
	strh r0, [r5, 0xA]
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	strh r0, [r5, 0xC]
	adds r0, r4, 0
	movs r1, 0
	bl GetMonData
	str r0, [r5, 0x4]
	ldrh r1, [r5, 0xA]
	movs r0, 0xCE
	lsls r0, 1
	cmp r1, r0
	beq _080180E0
	movs r0, 0
	b _080180E2
	.pool
_080180E0:
	movs r0, 0x1
_080180E2:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_80180A0

	thumb_func_start sub_80180E8
sub_80180E8: @ 80180E8
	push {r4,r5,lr}
	adds r5, r1, 0
	movs r1, 0x64
	adds r4, r0, 0
	muls r4, r1
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	movs r1, 0x41
	bl GetMonData
	strh r0, [r5, 0xE]
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	strh r0, [r5, 0x10]
	adds r0, r4, 0
	movs r1, 0
	bl GetMonData
	str r0, [r5, 0x14]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80180E8

	thumb_func_start sub_8018120
sub_8018120: @ 8018120
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r1, 24
	movs r2, 0
	mov r8, r2
	cmp r1, 0
	bne _0801813E
	ldrh r7, [r0, 0xA]
	ldr r6, [r0, 0x4]
	b _08018142
_08018136:
	lsls r0, r5, 16
	lsrs r0, 16
	mov r8, r0
	b _08018176
_0801813E:
	ldrh r7, [r0, 0xE]
	ldr r6, [r0, 0x14]
_08018142:
	movs r5, 0
	b _0801816E
_08018146:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0
	bl GetMonData
	cmp r0, r6
	bne _0801816C
	adds r0, r4, 0
	movs r1, 0x41
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r7
	beq _08018136
_0801816C:
	adds r5, 0x1
_0801816E:
	ldr r0, =gPlayerPartyCount
	ldrb r0, [r0]
	cmp r5, r0
	blt _08018146
_08018176:
	mov r0, r8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8018120

	thumb_func_start sub_801818C
sub_801818C: @ 801818C
	push {r4,lr}
	adds r4, r0, 0
	bl sub_80173B0
	bl ScriptContext2_Disable
	bl sub_8098524
	ldr r1, =gUnknown_02022C2C
	movs r0, 0
	strb r0, [r1]
	cmp r4, 0
	beq _080181BC
	ldr r2, =gUnknown_02022C40
	ldrh r0, [r2, 0x2]
	ldrh r1, [r2, 0xA]
	ldrh r2, [r2, 0xC]
	bl sub_8010FCC
	movs r0, 0x40
	movs r1, 0
	movs r2, 0
	bl sub_8011090
_080181BC:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801818C

	thumb_func_start sub_80181CC
sub_80181CC: @ 80181CC
	push {lr}
	bl ScriptContext2_Enable
	bl ScriptFreezeEventObjects
	pop {r0}
	bx r0
	thumb_func_end sub_80181CC

	thumb_func_start sub_80181DC
sub_80181DC: @ 80181DC
	push {r4,lr}
	movs r3, 0x80
	movs r2, 0
	ldr r4, [r0, 0xC]
_080181E4:
	lsls r0, r2, 3
	subs r0, r2
	lsls r0, 2
	adds r1, r4, r0
	ldrb r0, [r1, 0x18]
	lsls r0, 31
	cmp r0, 0
	beq _0801820C
	ldrb r0, [r1, 0xB]
	lsls r0, 31
	lsrs r0, 31
	lsls r0, 3
	orrs r3, r0
	ldrb r1, [r1, 0x2]
	movs r0, 0x7
	ands r0, r1
	orrs r3, r0
	lsls r0, r3, 24
	lsrs r3, r0, 24
	b _08018216
_0801820C:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _080181E4
_08018216:
	adds r0, r3, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_80181DC

	thumb_func_start sub_8018220
sub_8018220: @ 8018220
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	mov r9, r1
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp]
	bl GetMultiplayerId
	movs r1, 0x1
	eors r0, r1
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r1, r0
	ldr r0, =gTrainerCards
	adds r1, r0
	mov r8, r1
	bl DynamicPlaceholderTextUtil_Reset
	mov r6, r9
	adds r6, 0xC0
	bl sub_8068BB0
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xD
	muls r1, r0
	ldr r0, =gTrainerClassNames
	adds r1, r0
	adds r0, r6, 0
	bl StringCopy
	movs r0, 0
	adds r1, r6, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	mov r1, r8
	adds r1, 0x30
	movs r0, 0x1
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r4, 0xBA
	lsls r4, 1
	add r4, r9
	ldr r1, =gUnknown_082EFF50
	mov r2, r8
	ldrb r0, [r2, 0x1]
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl StringCopy
	movs r0, 0x2
	adds r1, r4, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	mov r5, r9
	adds r5, 0xDE
	mov r0, r8
	ldrh r1, [r0, 0xC]
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r0, 0x3
	adds r1, r5, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r2, 0xED
	add r2, r9
	mov r10, r2
	mov r0, r8
	ldrh r1, [r0, 0x10]
	mov r0, r10
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	mov r4, r9
	adds r4, 0xFC
	mov r2, r8
	ldrh r1, [r2, 0x12]
	adds r0, r4, 0
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	movs r0, 0x4
	mov r1, r10
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r0, 0x5
	adds r1, r4, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r4, 0xD2
	lsls r4, 1
	add r4, r9
	ldr r1, =gUnknown_082EFF64
	adds r0, r4, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	ldr r0, =gStringVar4
	adds r1, r4, 0
	bl StringCopy
	mov r0, r8
	ldrh r1, [r0, 0x14]
	ldr r4, =0x0000270f
	cmp r1, r4
	ble _0801830C
	adds r1, r4, 0
_0801830C:
	adds r0, r6, 0
	movs r2, 0
	movs r3, 0x4
	bl ConvertIntToDecimalStringN
	movs r0, 0
	adds r1, r6, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	mov r2, r8
	ldrh r1, [r2, 0x16]
	cmp r1, r4
	ble _08018328
	adds r1, r4, 0
_08018328:
	mov r4, r9
	adds r4, 0xCF
	adds r0, r4, 0
	movs r2, 0
	movs r3, 0x4
	bl ConvertIntToDecimalStringN
	movs r0, 0x2
	adds r1, r4, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	mov r0, r8
	ldrh r1, [r0, 0x20]
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	movs r0, 0x3
	adds r1, r5, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r7, 0
	movs r6, 0x80
	lsls r6, 19
	mov r5, r8
	adds r5, 0x28
	mov r4, r10
_08018360:
	ldrh r1, [r5]
	adds r0, r4, 0
	bl CopyEasyChatWord
	lsrs r0, r6, 24
	adds r1, r4, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r2, 0x80
	lsls r2, 17
	adds r6, r2
	adds r5, 0x2
	adds r4, 0xF
	adds r7, 0x1
	cmp r7, 0x3
	ble _08018360
	movs r4, 0xD2
	lsls r4, 1
	add r4, r9
	ldr r1, =gUnknown_082EFFA4
	adds r0, r4, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	ldr r5, =gStringVar4
	adds r0, r5, 0
	adds r1, r4, 0
	bl StringAppend
	ldr r0, [sp]
	cmp r0, 0x1
	bne _080183D0
	ldr r1, =gUnknown_082F0020
	adds r0, r4, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	adds r0, r5, 0
	adds r1, r4, 0
	bl StringAppend
	b _080183F0
	.pool
_080183D0:
	ldr r2, [sp]
	cmp r2, 0
	bne _080183F0
	ldr r0, =gUnknown_082F0018
	mov r2, r8
	ldrb r1, [r2]
	lsls r1, 2
	adds r1, r0
	ldr r1, [r1]
	adds r0, r4, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	adds r0, r5, 0
	adds r1, r4, 0
	bl StringAppend
_080183F0:
	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 sub_8018220

	thumb_func_start sub_8018404
sub_8018404: @ 8018404
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	adds r1, 0x10
	bl StringCopy7
	ldrb r1, [r4]
	lsls r1, 28
	lsrs r1, 28
	adds r0, r5, 0
	bl ConvertInternationalString
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8018404

	thumb_func_start sub_8018424
sub_8018424: @ 8018424
	push {lr}
	bl ProcessSpriteCopyRequests
	bl LoadOam
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_8018424

	thumb_func_start sub_8018438
sub_8018438: @ 8018438
	push {lr}
	bl RunTasks
	bl RunTextPrinters
	bl AnimateSprites
	bl BuildOamBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_8018438

	thumb_func_start sub_8018450
sub_8018450: @ 8018450
	push {r4-r7,lr}
	sub sp, 0xC
	adds r7, r0, 0
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r6, r0, r1
	ldrb r0, [r6]
	cmp r0, 0x1
	bne _08018466
	b _08018574
_08018466:
	cmp r0, 0x1
	bgt _08018474
	cmp r0, 0
	beq _08018482
	b _08018644
	.pool
_08018474:
	cmp r0, 0x2
	bne _0801847A
	b _080185F8
_0801847A:
	cmp r0, 0x3
	bne _08018480
	b _08018618
_08018480:
	b _08018644
_08018482:
	movs r0, 0
	bl SetVBlankCallback
	bl ResetPaletteFade
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl ResetTasks
	bl ScanlineEffect_Stop
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082F0598
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r4, 0x80
	lsls r4, 4
	adds r0, r4, 0
	bl Alloc
	adds r1, r0, 0
	movs r0, 0x3
	bl SetBgTilemapBuffer
	adds r0, r4, 0
	bl Alloc
	adds r1, r0, 0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	adds r0, r4, 0
	bl Alloc
	adds r1, r0, 0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	adds r0, r4, 0
	bl Alloc
	adds r1, r0, 0
	movs r0, 0
	bl SetBgTilemapBuffer
	movs r0, 0x3
	bl bgid_upload_textbox_1
	ldr r0, =gUnknown_082F05A8
	bl InitWindows
	bl DeactivateAllTextPrinters
	movs r1, 0xC0
	lsls r1, 7
	movs r0, 0
	bl ClearGpuRegBits
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	b _08018610
	.pool
_08018574:
	ldr r0, =gUnkTextboxBorderPal
	movs r1, 0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0x2
	bl stdpal_get
	movs r1, 0xD0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0xC0
	bl sub_81978B0
	movs r0, 0
	movs r1, 0xA
	movs r2, 0xE0
	bl LoadUserWindowBorderGfx
	movs r0, 0
	movs r1, 0x1
	movs r2, 0xF0
	bl LoadUserWindowBorderGfx_
	movs r4, 0x20
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r5, 0x11
	str r5, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	str r4, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	str r4, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	movs r0, 0x3
	bl sub_8018798
	lsls r0, r7, 24
	lsrs r0, 24
	movs r1, 0
	bl sub_80186EC
	b _08018610
	.pool
_080185F8:
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_08018610:
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	b _08018644
_08018618:
	movs r0, 0
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	ldr r0, =0x0000021d
	bl PlayBGM
	ldr r0, =sub_8018424
	bl SetVBlankCallback
	movs r0, 0xC5
	bl EnableInterrupts
	movs r0, 0x1
	b _08018646
	.pool
_08018644:
	movs r0, 0
_08018646:
	add sp, 0xC
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8018450

	thumb_func_start c2_mystery_gift
c2_mystery_gift: @ 8018650
	push {lr}
	movs r0, 0
	bl sub_8018450
	cmp r0, 0
	beq _0801866C
	ldr r0, =sub_8018438
	bl SetMainCallback2
	ldr r1, =gUnknown_02022C60
	movs r0, 0
	strb r0, [r1]
	bl task_add_00_mystery_gift
_0801866C:
	bl RunTasks
	pop {r0}
	bx r0
	.pool
	thumb_func_end c2_mystery_gift

	thumb_func_start sub_801867C
sub_801867C: @ 801867C
	push {lr}
	movs r0, 0x1
	bl sub_8018450
	cmp r0, 0
	beq _08018698
	ldr r0, =sub_8018438
	bl SetMainCallback2
	ldr r1, =gUnknown_02022C60
	movs r0, 0x1
	strb r0, [r1]
	bl sub_81D5014
_08018698:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801867C

	thumb_func_start sub_80186A4
sub_80186A4: @ 80186A4
	push {lr}
	ldr r1, =gUnknown_02022C60
	movs r0, 0
	strb r0, [r1]
	bl FreeAllWindowBuffers
	movs r0, 0
	bl GetBgTilemapBuffer
	bl Free
	movs r0, 0x1
	bl GetBgTilemapBuffer
	bl Free
	movs r0, 0x2
	bl GetBgTilemapBuffer
	bl Free
	movs r0, 0x3
	bl GetBgTilemapBuffer
	bl Free
	ldr r0, =CB2_InitTitleScreen
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80186A4

	thumb_func_start sub_80186EC
sub_80186EC: @ 80186EC
	push {r4-r7,lr}
	sub sp, 0x14
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	cmp r4, 0
	bne _0801871C
	ldr r0, =gText_MysteryGift
	ldr r7, =gText_PickOKCancel
	cmp r5, 0
	bne _08018720
	ldr r7, =gText_PickOKExit
	b _08018720
	.pool
_0801871C:
	ldr r0, =gJPText_MysteryGift
	ldr r7, =gJPText_DecideStop
_08018720:
	movs r4, 0
	str r4, [sp]
	str r4, [sp, 0x4]
	ldr r6, =gUnknown_082F0720
	str r6, [sp, 0x8]
	movs r5, 0x1
	negs r5, r5
	str r5, [sp, 0xC]
	str r0, [sp, 0x10]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x4
	movs r3, 0x1
	bl AddTextPrinterParameterized4
	movs r0, 0
	adds r1, r7, 0
	movs r2, 0xDE
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r4, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	str r5, [sp, 0xC]
	str r7, [sp, 0x10]
	movs r0, 0
	movs r1, 0
	movs r3, 0x1
	bl AddTextPrinterParameterized4
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0
	bl PutWindowTilemap
	add sp, 0x14
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80186EC

	thumb_func_start sub_8018784
sub_8018784: @ 8018784
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1
	movs r2, 0xF
	bl sub_8098858
	pop {r0}
	bx r0
	thumb_func_end sub_8018784

	thumb_func_start sub_8018798
sub_8018798: @ 8018798
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0
	mov r9, r0
	lsls r4, 24
	lsrs r0, r4, 24
	movs r1, 0x20
	str r1, [sp]
	movs r1, 0x2
	str r1, [sp, 0x4]
	movs r1, 0x11
	str r1, [sp, 0x8]
	movs r1, 0x3
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	mov r8, r4
	movs r4, 0x1
_080187C8:
	movs r7, 0
	mov r0, r9
	adds r0, 0x2
	movs r1, 0x1
	add r1, r9
	mov r10, r1
	lsls r5, r0, 24
	movs r6, 0
_080187D8:
	mov r1, r9
	ands r1, r4
	adds r0, r7, 0
	ands r0, r4
	cmp r1, r0
	beq _080187FC
	lsrs r2, r6, 24
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	mov r1, r8
	lsrs r0, r1, 24
	movs r1, 0x1
	lsrs r3, r5, 24
	bl FillBgTilemapBufferRect
	b _08018812
_080187FC:
	lsrs r2, r6, 24
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	mov r1, r8
	lsrs r0, r1, 24
	movs r1, 0x2
	lsrs r3, r5, 24
	bl FillBgTilemapBufferRect
_08018812:
	movs r0, 0x80
	lsls r0, 17
	adds r6, r0
	adds r7, 0x1
	cmp r7, 0x1F
	ble _080187D8
	mov r9, r10
	mov r1, r9
	cmp r1, 0x11
	ble _080187C8
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8018798

	thumb_func_start sub_8018838
sub_8018838: @ 8018838
	push {lr}
	sub sp, 0xC
	cmp r0, 0
	beq _08018846
	cmp r0, 0x1
	beq _0801885E
	b _08018876
_08018846:
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	b _08018876
_0801885E:
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x1E
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x2
	bl FillBgTilemapBufferRect
_08018876:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	add sp, 0xC
	pop {r0}
	bx r0
	thumb_func_end sub_8018838

	thumb_func_start sub_8018884
sub_8018884: @ 8018884
	push {r4,lr}
	sub sp, 0x14
	adds r1, r0, 0
	ldr r4, =gStringVar4
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	ldr r0, =gUnknown_082F0728
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	str r4, [sp, 0x10]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl AddTextPrinterParameterized4
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0xF
	bl sub_8098858
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0x1
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0x14
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8018884

	thumb_func_start sub_80188DC
sub_80188DC: @ 80188DC
	push {lr}
	movs r0, 0x1
	bl rbox_fill_rectangle
	movs r0, 0x1
	bl ClearWindowTilemap
	movs r0, 0x1
	movs r1, 0x1
	bl CopyWindowToVram
	pop {r0}
	bx r0
	thumb_func_end sub_80188DC

	thumb_func_start mevent_0814257C
mevent_0814257C: @ 80188F8
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	adds r0, r1, 0
	ldrb r2, [r4]
	cmp r2, 0x1
	beq _08018920
	cmp r2, 0x1
	bgt _08018910
	cmp r2, 0
	beq _0801891A
	b _08018980
_08018910:
	cmp r2, 0x2
	beq _08018954
	cmp r2, 0xFF
	beq _0801897C
	b _08018980
_0801891A:
	bl sub_8018884
	b _08018944
_08018920:
	movs r0, 0
	str r0, [sp]
	ldr r0, =gUnknown_02022C58
	str r0, [sp, 0x4]
	adds r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0xD0
	movs r2, 0x14
	movs r3, 0x1
	bl DrawDownArrow
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _08018980
_08018944:
	ldrb r0, [r4]
	adds r0, 0x1
	b _0801897E
	.pool
_08018954:
	movs r0, 0x1
	str r0, [sp]
	ldr r0, =gUnknown_02022C58
	str r0, [sp, 0x4]
	adds r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0xD0
	movs r2, 0x14
	movs r3, 0x1
	bl DrawDownArrow
	movs r0, 0
	strb r0, [r4]
	bl sub_80188DC
	movs r0, 0x1
	b _08018982
	.pool
_0801897C:
	movs r0, 0x2
_0801897E:
	strb r0, [r4]
_08018980:
	movs r0, 0
_08018982:
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end mevent_0814257C

	thumb_func_start sub_801898C
sub_801898C: @ 801898C
	push {lr}
	sub sp, 0xC
	movs r0, 0
	str r0, [sp]
	ldr r0, =gUnknown_02022C58
	str r0, [sp, 0x4]
	adds r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0xD0
	movs r2, 0x14
	movs r3, 0x1
	bl DrawDownArrow
	add sp, 0xC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801898C

	thumb_func_start sub_80189B4
sub_80189B4: @ 80189B4
	push {lr}
	sub sp, 0xC
	movs r0, 0x1
	str r0, [sp]
	ldr r0, =gUnknown_02022C58
	str r0, [sp, 0x4]
	adds r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0xD0
	movs r2, 0x14
	movs r3, 0x1
	bl DrawDownArrow
	add sp, 0xC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80189B4

	thumb_func_start sub_80189DC
sub_80189DC: @ 80189DC
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _080189EC
	cmp r0, 0x1
	beq _08018A08
	b _08018A14
_080189EC:
	bl sub_801898C
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _08018A14
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _08018A14
	.pool
_08018A08:
	bl sub_80189B4
	movs r0, 0
	strb r0, [r4]
	movs r0, 0x1
	b _08018A16
_08018A14:
	movs r0, 0
_08018A16:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_80189DC

	thumb_func_start sub_8018A1C
sub_8018A1C: @ 8018A1C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	bne _08018A2C
	adds r0, r1, 0
	bl sub_8018884
_08018A2C:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x78
	bhi _08018A3E
	movs r0, 0
	b _08018A48
_08018A3E:
	movs r0, 0
	strb r0, [r4]
	bl sub_80188DC
	movs r0, 0x1
_08018A48:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8018A1C

	thumb_func_start sub_8018A50
sub_8018A50: @ 8018A50
	push {r4,r5,lr}
	sub sp, 0x24
	lsls r2, 24
	add r1, sp, 0x4
	ldr r0, =gUnknown_082F0638
	ldm r0!, {r3-r5}
	stm r1!, {r3-r5}
	ldm r0!, {r3-r5}
	stm r1!, {r3-r5}
	ldr r0, =gUnknown_082F05E0
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x1C]
	str r1, [sp, 0x20]
	cmp r2, 0
	bne _08018A80
	ldr r0, =gUnknown_082F0608
	b _08018A82
	.pool
_08018A80:
	ldr r0, =gUnknown_082F0620
_08018A82:
	str r0, [sp, 0x4]
	add r0, sp, 0x4
	bl sub_81DB41C
	adds r3, r0, 0
	movs r0, 0x1
	ands r0, r3
	cmp r0, 0
	beq _08018A96
	adds r3, 0x1
_08018A96:
	lsls r1, r3, 24
	ldr r0, =0x00ffffff
	ldr r2, [sp, 0x1C]
	ands r2, r0
	orrs r2, r1
	str r2, [sp, 0x1C]
	cmp r3, 0x1D
	bgt _08018ACC
	movs r0, 0x1E
	subs r0, r3
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	lsls r0, 24
	lsrs r0, 16
	ldr r1, =0xffff00ff
	ands r1, r2
	orrs r1, r0
	str r1, [sp, 0x1C]
	b _08018AD2
	.pool
_08018ACC:
	ldr r0, =0xffff00ff
	ands r2, r0
	str r2, [sp, 0x1C]
_08018AD2:
	add r0, sp, 0x1C
	movs r1, 0xE0
	str r1, [sp]
	add r1, sp, 0x4
	movs r2, 0x1
	movs r3, 0xA
	bl DoMysteryGiftListMenu
	adds r4, r0, 0
	movs r0, 0x1
	negs r0, r0
	cmp r4, r0
	beq _08018AFA
	movs r0, 0x2
	bl ClearWindowTilemap
	movs r0, 0x2
	movs r1, 0x1
	bl CopyWindowToVram
_08018AFA:
	adds r0, r4, 0
	add sp, 0x24
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8018A50

	thumb_func_start sub_8018B08
sub_8018B08: @ 8018B08
	push {r4-r6,lr}
	sub sp, 0x1C
	adds r5, r0, 0
	adds r4, r1, 0
	adds r1, r3, 0
	lsls r2, 24
	lsrs r6, r2, 24
	ldrb r0, [r5]
	cmp r0, 0x1
	beq _08018B98
	cmp r0, 0x1
	bgt _08018B26
	cmp r0, 0
	beq _08018B30
	b _08018C3E
_08018B26:
	cmp r0, 0x2
	beq _08018BE4
	cmp r0, 0xFF
	beq _08018C1A
	b _08018C3E
_08018B30:
	ldr r0, =gStringVar4
	bl StringExpandPlaceholders
	cmp r6, 0
	bne _08018B48
	ldr r0, =gUnknown_082F05C8
	b _08018B4A
	.pool
_08018B48:
	ldr r0, =gUnknown_082F05D0
_08018B4A:
	bl AddWindow
	strh r0, [r4]
	ldrb r0, [r4]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4]
	movs r2, 0
	str r2, [sp]
	str r2, [sp, 0x4]
	ldr r1, =gUnknown_082F0728
	str r1, [sp, 0x8]
	str r2, [sp, 0xC]
	ldr r1, =gStringVar4
	str r1, [sp, 0x10]
	movs r1, 0x1
	movs r3, 0x1
	bl AddTextPrinterParameterized4
	ldrb r0, [r4]
	movs r1, 0x1
	movs r2, 0xF
	bl sub_8098858
	ldrb r0, [r4]
	movs r1, 0x2
	bl CopyWindowToVram
	ldrb r0, [r4]
	bl PutWindowTilemap
	b _08018BD6
	.pool
_08018B98:
	ldr r0, =gUnknown_082F05E8
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x14]
	str r1, [sp, 0x18]
	cmp r6, 0
	bne _08018BBC
	ldr r0, =0xff00ffff
	ldr r1, [sp, 0x14]
	ands r1, r0
	movs r0, 0x90
	lsls r0, 12
	b _08018BC6
	.pool
_08018BBC:
	ldr r0, =0xff00ffff
	ldr r1, [sp, 0x14]
	ands r1, r0
	movs r0, 0xF0
	lsls r0, 12
_08018BC6:
	orrs r1, r0
	str r1, [sp, 0x14]
	add r0, sp, 0x14
	movs r1, 0xA
	movs r2, 0xE
	movs r3, 0
	bl CreateYesNoMenu
_08018BD6:
	ldrb r0, [r5]
	adds r0, 0x1
	strb r0, [r5]
	b _08018C3E
	.pool
_08018BE4:
	bl Menu_ProcessInputNoWrapClearOnChoose
	lsls r0, 24
	asrs r6, r0, 24
	movs r1, 0x80
	lsls r1, 17
	adds r0, r1
	lsrs r0, 24
	cmp r0, 0x2
	bhi _08018C3E
	movs r0, 0
	strb r0, [r5]
	ldrb r0, [r4]
	bl rbox_fill_rectangle
	ldrb r0, [r4]
	bl ClearWindowTilemap
	ldrb r0, [r4]
	movs r1, 0x1
	bl CopyWindowToVram
	ldrb r0, [r4]
	bl RemoveWindow
	adds r0, r6, 0
	b _08018C42
_08018C1A:
	movs r0, 0
	strb r0, [r5]
	ldrb r0, [r4]
	bl rbox_fill_rectangle
	ldrb r0, [r4]
	bl ClearWindowTilemap
	ldrb r0, [r4]
	movs r1, 0x1
	bl CopyWindowToVram
	ldrb r0, [r4]
	bl RemoveWindow
	movs r0, 0x1
	negs r0, r0
	b _08018C42
_08018C3E:
	movs r0, 0x2
	negs r0, r0
_08018C42:
	add sp, 0x1C
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8018B08

	thumb_func_start sub_8018C4C
sub_8018C4C: @ 8018C4C
	push {r4-r6,lr}
	sub sp, 0x14
	adds r6, r0, 0
	adds r5, r1, 0
	ldrb r0, [r6]
	cmp r0, 0x1
	beq _08018CE8
	cmp r0, 0x1
	bgt _08018C64
	cmp r0, 0
	beq _08018C6C
	b _08018D8C
_08018C64:
	cmp r0, 0xFF
	bne _08018C6A
	b _08018D68
_08018C6A:
	b _08018D8C
_08018C6C:
	cmp r2, 0
	bne _08018C84
	ldr r0, =gStringVar4
	ldr r1, =gText_WhatToDoWithCards
	bl StringExpandPlaceholders
	b _08018C8C
	.pool
_08018C84:
	ldr r0, =gStringVar4
	ldr r1, =gText_WhatToDoWithNews
	bl StringExpandPlaceholders
_08018C8C:
	ldr r0, =gUnknown_082F05D8
	bl AddWindow
	strh r0, [r5]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r5]
	movs r2, 0
	str r2, [sp]
	str r2, [sp, 0x4]
	ldr r1, =gUnknown_082F0728
	str r1, [sp, 0x8]
	str r2, [sp, 0xC]
	ldr r1, =gStringVar4
	str r1, [sp, 0x10]
	movs r1, 0x1
	movs r3, 0x1
	bl AddTextPrinterParameterized4
	ldrb r0, [r5]
	movs r1, 0x1
	movs r2, 0xF
	bl sub_8098858
	ldrb r0, [r5]
	movs r1, 0x2
	bl CopyWindowToVram
	ldrb r0, [r5]
	bl PutWindowTilemap
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	b _08018D8C
	.pool
_08018CE8:
	cmp r3, 0
	beq _08018D10
	cmp r2, 0
	bne _08018D00
	ldr r0, =gUnknown_082F05F8
	ldr r1, =gUnknown_082F06C8
	b _08018D28
	.pool
_08018D00:
	ldr r0, =gUnknown_082F0600
	ldr r1, =gUnknown_082F06F8
	b _08018D28
	.pool
_08018D10:
	cmp r2, 0
	bne _08018D24
	ldr r0, =gUnknown_082F05F0
	ldr r1, =gUnknown_082F06B0
	b _08018D28
	.pool
_08018D24:
	ldr r0, =gUnknown_082F05F8
	ldr r1, =gUnknown_082F06E0
_08018D28:
	movs r2, 0xE0
	str r2, [sp]
	movs r2, 0x1
	movs r3, 0xA
	bl DoMysteryGiftListMenu
	adds r4, r0, 0
	movs r0, 0x1
	negs r0, r0
	cmp r4, r0
	beq _08018D8C
	movs r0, 0
	strb r0, [r6]
	ldrb r0, [r5]
	bl rbox_fill_rectangle
	ldrb r0, [r5]
	bl ClearWindowTilemap
	ldrb r0, [r5]
	movs r1, 0x1
	bl CopyWindowToVram
	ldrb r0, [r5]
	bl RemoveWindow
	adds r0, r4, 0
	b _08018D90
	.pool
_08018D68:
	movs r0, 0
	strb r0, [r6]
	ldrb r0, [r5]
	bl rbox_fill_rectangle
	ldrb r0, [r5]
	bl ClearWindowTilemap
	ldrb r0, [r5]
	movs r1, 0x1
	bl CopyWindowToVram
	ldrb r0, [r5]
	bl RemoveWindow
	movs r0, 0x2
	negs r0, r0
	b _08018D90
_08018D8C:
	movs r0, 0x1
	negs r0, r0
_08018D90:
	add sp, 0x14
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8018C4C

	thumb_func_start sub_8018D98
sub_8018D98: @ 8018D98
	push {lr}
	cmp r0, 0
	beq _08018DA4
	bl sub_801B0CC
	b _08018DA8
_08018DA4:
	bl sub_801B27C
_08018DA8:
	pop {r1}
	bx r1
	thumb_func_end sub_8018D98

	thumb_func_start sub_8018DAC
sub_8018DAC: @ 8018DAC
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrb r0, [r5]
	cmp r0, 0
	beq _08018DBC
	cmp r0, 0x1
	beq _08018DE4
	b _08018E00
_08018DBC:
	cmp r1, 0
	bne _08018DD4
	bl sav1_get_mevent_buffer_1
	adds r4, r0, 0
	bl sav1_get_mevent_buffer_2
	adds r1, r0, 0
	adds r0, r4, 0
	bl sub_801BAAC
	b _08018DDC
_08018DD4:
	bl sub_801B00C
	bl sub_801C6C8
_08018DDC:
	ldrb r0, [r5]
	adds r0, 0x1
	strb r0, [r5]
	b _08018E00
_08018DE4:
	cmp r1, 0
	bne _08018DF2
	bl sub_801BB74
_08018DEC:
	cmp r0, 0
	bne _08018DF8
	b _08018E00
_08018DF2:
	bl sub_801C758
	b _08018DEC
_08018DF8:
	movs r0, 0
	strb r0, [r5]
	movs r0, 0x1
	b _08018E02
_08018E00:
	movs r0, 0
_08018E02:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8018DAC

	thumb_func_start sub_8018E08
sub_8018E08: @ 8018E08
	push {lr}
	cmp r0, 0
	bne _08018E14
	bl sub_801B1E8
	b _08018E18
_08018E14:
	bl sub_801B06C
_08018E18:
	movs r0, 0x1
	pop {r1}
	bx r1
	thumb_func_end sub_8018E08

	thumb_func_start sub_8018E20
sub_8018E20: @ 8018E20
	push {lr}
	cmp r0, 0
	bne _08018E36
	adds r0, r1, 0
	bl sub_801BDA4
	cmp r0, 0
	beq _08018E40
	bl sub_801BB48
	b _08018E48
_08018E36:
	adds r0, r1, 0
	bl sub_801CA50
	cmp r0, 0
	bne _08018E44
_08018E40:
	movs r0, 0
	b _08018E4A
_08018E44:
	bl sub_801C72C
_08018E48:
	movs r0, 0x1
_08018E4A:
	pop {r1}
	bx r1
	thumb_func_end sub_8018E20

	thumb_func_start sub_8018E50
sub_8018E50: @ 8018E50
	push {lr}
	cmp r2, 0
	beq _08018E60
	ldr r3, =gText_OkayToDiscardNews
	b _08018E62
	.pool
_08018E60:
	ldr r3, =gText_IfThrowAwayCardEventWontHappen
_08018E62:
	movs r2, 0x1
	bl sub_8018B08
	lsls r0, 24
	asrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8018E50

	thumb_func_start mevent_message_was_thrown_away
mevent_message_was_thrown_away: @ 8018E74
	push {lr}
	cmp r1, 0
	beq _08018E84
	ldr r1, =gText_WonderNewsThrownAway
	b _08018E86
	.pool
_08018E84:
	ldr r1, =gText_WonderCardThrownAway
_08018E86:
	bl mevent_0814257C
	pop {r1}
	bx r1
	.pool
	thumb_func_end mevent_message_was_thrown_away

	thumb_func_start mevent_save_game
mevent_save_game: @ 8018E94
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0x4
	bhi _08018F04
	lsls r0, 2
	ldr r1, =_08018EAC
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08018EAC:
	.4byte _08018EC0
	.4byte _08018ECC
	.4byte _08018ED4
	.4byte _08018EE0
	.4byte _08018EF8
_08018EC0:
	ldr r0, =gText_DataWillBeSaved
	bl sub_8018884
	b _08018EEC
	.pool
_08018ECC:
	movs r0, 0
	bl TrySavingData
	b _08018EEC
_08018ED4:
	ldr r0, =gText_SaveCompletedPressA
	bl sub_8018884
	b _08018EEC
	.pool
_08018EE0:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _08018F04
_08018EEC:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _08018F04
	.pool
_08018EF8:
	movs r0, 0
	strb r0, [r4]
	bl sub_80188DC
	movs r0, 0x1
	b _08018F06
_08018F04:
	movs r0, 0
_08018F06:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end mevent_save_game

	thumb_func_start mevent_message
mevent_message: @ 8018F0C
	push {r4-r6,lr}
	adds r4, r0, 0
	lsls r1, 24
	lsrs r6, r1, 24
	lsls r2, 24
	lsrs r5, r2, 24
	movs r2, 0
	str r2, [r4]
	cmp r3, 0xE
	bls _08018F22
	b _08019034
_08018F22:
	lsls r0, r3, 2
	ldr r1, =_08018F30
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08018F30:
	.4byte _08018F6C
	.4byte _08018F78
	.4byte _08018F84
	.4byte _08018F9C
	.4byte _08018FB4
	.4byte _08018FC0
	.4byte _08018FCC
	.4byte _08018FD8
	.4byte _08018FE4
	.4byte _08018FF0
	.4byte _08018FFC
	.4byte _08019014
	.4byte _08019020
	.4byte _0801902C
	.4byte _08019030
_08018F6C:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_NothingSentOver
	b _08019034
	.pool
_08018F78:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_RecordUploadedViaWireless
	b _08019034
	.pool
_08018F84:
	movs r0, 0x1
	str r0, [r4]
	ldr r2, =gText_WonderCardReceivedFrom
	cmp r5, 0
	bne _08019034
	ldr r2, =gText_WonderCardReceived
	b _08019034
	.pool
_08018F9C:
	movs r0, 0x1
	str r0, [r4]
	ldr r2, =gText_WonderNewsReceivedFrom
	cmp r5, 0
	bne _08019034
	ldr r2, =gText_WonderNewsReceived
	b _08019034
	.pool
_08018FB4:
	movs r0, 0x1
	str r0, [r4]
	ldr r2, =gText_NewStampReceived
	b _08019034
	.pool
_08018FC0:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_AlreadyHadCard
	b _08019034
	.pool
_08018FCC:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_AlreadyHadStamp
	b _08019034
	.pool
_08018FD8:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_AlreadyHadNews
	b _08019034
	.pool
_08018FE4:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_NoMoreRoomForStamps
	b _08019034
	.pool
_08018FF0:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_CommunicationCanceled
	b _08019034
	.pool
_08018FFC:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_CantAcceptNewsFromTrainer
	cmp r6, 0
	bne _08019034
	ldr r2, =gText_CantAcceptCardFromTrainer
	b _08019034
	.pool
_08019014:
	movs r0, 0
	str r0, [r4]
	ldr r2, =gText_CommunicationError
	b _08019034
	.pool
_08019020:
	movs r0, 0x1
	str r0, [r4]
	ldr r2, =gText_NewTrainerReceived
	b _08019034
	.pool
_0801902C:
	movs r0, 0x1
	b _08019032
_08019030:
	movs r0, 0
_08019032:
	str r0, [r4]
_08019034:
	adds r0, r2, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end mevent_message

	thumb_func_start mevent_08142CE8
mevent_08142CE8: @ 801903C
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r0, r1, 0
	adds r5, r2, 0
	ldrb r4, [r6]
	cmp r4, 0x1
	beq _0801906E
	cmp r4, 0x1
	bgt _08019054
	cmp r4, 0
	beq _0801905A
	b _0801909A
_08019054:
	cmp r4, 0x2
	beq _08019084
	b _0801909A
_0801905A:
	cmp r0, 0
	beq _08019062
	bl sub_8018884
_08019062:
	movs r0, 0xB9
	lsls r0, 1
	bl PlayFanfare
	strh r4, [r5]
	b _0801907C
_0801906E:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0xF0
	bls _0801909A
_0801907C:
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	b _0801909A
_08019084:
	bl IsFanfareTaskInactive
	lsls r0, 24
	cmp r0, 0
	beq _0801909A
	movs r0, 0
	strb r0, [r6]
	bl sub_80188DC
	movs r0, 0x1
	b _0801909C
_0801909A:
	movs r0, 0
_0801909C:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end mevent_08142CE8

	thumb_func_start mevent_message_stamp_card_etc_send_status
mevent_message_stamp_card_etc_send_status: @ 80190A4
	push {r4,lr}
	adds r3, r0, 0
	ldr r1, =gText_CommunicationError
	movs r0, 0
	str r0, [r3]
	adds r4, r1, 0
	cmp r2, 0xE
	bhi _08019166
	lsls r0, r2, 2
	ldr r1, =_080190C8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080190C8:
	.4byte _08019104
	.4byte _0801910C
	.4byte _08019114
	.4byte _0801911C
	.4byte _08019128
	.4byte _08019130
	.4byte _08019138
	.4byte _08019140
	.4byte _08019148
	.4byte _08019150
	.4byte _08019164
	.4byte _08019158
	.4byte _0801915C
	.4byte _0801915C
	.4byte _08019164
_08019104:
	ldr r1, =gText_NothingSentOver
	b _08019166
	.pool
_0801910C:
	ldr r1, =gText_RecordUploadedViaWireless
	b _08019166
	.pool
_08019114:
	ldr r1, =gText_WonderCardSentTo
	b _0801911E
	.pool
_0801911C:
	ldr r1, =gText_WonderNewsSentTo
_0801911E:
	movs r0, 0x1
	str r0, [r3]
	b _08019166
	.pool
_08019128:
	ldr r1, =gText_StampSentTo
	b _08019166
	.pool
_08019130:
	ldr r1, =gText_OtherTrainerHasCard
	b _08019166
	.pool
_08019138:
	ldr r1, =gText_OtherTrainerHasStamp
	b _08019166
	.pool
_08019140:
	ldr r1, =gText_OtherTrainerHasNews
	b _08019166
	.pool
_08019148:
	ldr r1, =gText_NoMoreRoomForStamps
	b _08019166
	.pool
_08019150:
	ldr r1, =gText_OtherTrainerCanceled
	b _08019166
	.pool
_08019158:
	adds r1, r4, 0
	b _08019166
_0801915C:
	ldr r1, =gText_GiftSentTo
	b _08019166
	.pool
_08019164:
	ldr r1, =gText_CantSendGiftToTrainer
_08019166:
	adds r0, r1, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end mevent_message_stamp_card_etc_send_status

	thumb_func_start sub_8019174
sub_8019174: @ 8019174
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	adds r5, r1, 0
	adds r1, r2, 0
	adds r2, r3, 0
	lsls r1, 24
	lsrs r1, 24
	mov r0, sp
	bl mevent_message_stamp_card_etc_send_status
	adds r1, r0, 0
	ldr r0, [sp]
	cmp r0, 0
	bne _0801919A
	adds r0, r4, 0
	bl mevent_0814257C
	b _080191A2
_0801919A:
	adds r0, r4, 0
	adds r2, r5, 0
	bl mevent_08142CE8
_080191A2:
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8019174

	thumb_func_start task_add_00_mystery_gift
task_add_00_mystery_gift: @ 80191AC
	push {r4,lr}
	ldr r0, =task00_mystery_gift
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	movs r0, 0
	strb r0, [r4, 0x8]
	strb r0, [r4, 0x9]
	strb r0, [r4, 0xA]
	strb r0, [r4, 0xB]
	strb r0, [r4, 0xC]
	strb r0, [r4, 0xD]
	movs r1, 0
	strh r0, [r4]
	strh r0, [r4, 0x2]
	strh r0, [r4, 0x4]
	strh r0, [r4, 0x6]
	strb r1, [r4, 0xE]
	movs r0, 0x40
	bl AllocZeroed
	str r0, [r4, 0x10]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_add_00_mystery_gift

	thumb_func_start task00_mystery_gift
task00_mystery_gift: @ 80191F4
	push {r4,r5,lr}
	sub sp, 0x4
	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
	ldrb r0, [r5, 0x8]
	cmp r0, 0x25
	bls _0801920E
	b _08019922
_0801920E:
	lsls r0, 2
	ldr r1, =_08019220
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08019220:
	.4byte _080192B8
	.4byte _080192BE
	.4byte _08019300
	.4byte _08019338
	.4byte _0801935C
	.4byte _080193AC
	.4byte _0801940C
	.4byte _08019444
	.4byte _08019454
	.4byte _080194CC
	.4byte _080194F0
	.4byte _08019508
	.4byte _08019538
	.4byte _08019574
	.4byte _0801958C
	.4byte _080195BC
	.4byte _080198EC
	.4byte _0801961A
	.4byte _0801962A
	.4byte _08019922
	.4byte _0801963C
	.4byte _08019688
	.4byte _080196FE
	.4byte _0801972E
	.4byte _08019764
	.4byte _0801977E
	.4byte _08019792
	.4byte _0801979E
	.4byte _080197B2
	.4byte _080197C6
	.4byte _080197F8
	.4byte _0801982C
	.4byte _08019870
	.4byte _08019884
	.4byte _080198A0
	.4byte _080198B8
	.4byte _080198EC
	.4byte _0801990C
_080192B8:
	movs r0, 0x1
	strb r0, [r5, 0x8]
	b _08019922
_080192BE:
	adds r0, r5, 0
	adds r0, 0x9
	adds r1, r5, 0
	movs r2, 0
	bl sub_8018A50
	adds r1, r0, 0
	cmp r1, 0x1
	beq _080192E8
	cmp r1, 0x1
	bcc _080192DE
	movs r0, 0x2
	negs r0, r0
	cmp r1, r0
	beq _080192FA
	b _08019922
_080192DE:
	movs r0, 0
	strb r0, [r5, 0xC]
	bl sub_801B27C
	b _080192EE
_080192E8:
	strb r1, [r5, 0xC]
	bl sub_801B0CC
_080192EE:
	cmp r0, 0x1
	bne _080192F4
	b _08019820
_080192F4:
	movs r0, 0x2
	strb r0, [r5, 0x8]
	b _08019922
_080192FA:
	movs r0, 0x25
	strb r0, [r5, 0x8]
	b _08019922
_08019300:
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	bne _08019314
	adds r0, r5, 0
	adds r0, 0x9
	ldr r1, =gText_DontHaveCardNewOneInput
	b _0801931A
	.pool
_08019314:
	adds r0, r5, 0
	adds r0, 0x9
	ldr r1, =gText_DontHaveNewsNewOneInput
_0801931A:
	bl mevent_0814257C
	cmp r0, 0
	bne _08019324
	b _08019922
_08019324:
	movs r0, 0x3
	strb r0, [r5, 0x8]
	movs r0, 0
	movs r1, 0x1
	bl sub_80186EC
	b _08019922
	.pool
_08019338:
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	bne _0801934C
	ldr r0, =gText_WhereShouldCardBeAccessed
	bl sub_8018884
	b _08019352
	.pool
_0801934C:
	ldr r0, =gText_WhereShouldNewsBeAccessed
	bl sub_8018884
_08019352:
	movs r0, 0x4
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_0801935C:
	adds r0, r5, 0
	adds r0, 0x9
	adds r1, r5, 0
	movs r2, 0x1
	bl sub_8018A50
	adds r4, r0, 0
	cmp r4, 0x1
	beq _0801938A
	cmp r4, 0x1
	bcc _0801937C
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _08019396
	b _08019922
_0801937C:
	bl sub_80188DC
	movs r1, 0
	movs r0, 0x5
	strb r0, [r5, 0x8]
	strb r1, [r5, 0xD]
	b _08019922
_0801938A:
	bl sub_80188DC
	movs r0, 0x5
	strb r0, [r5, 0x8]
	strb r4, [r5, 0xD]
	b _08019922
_08019396:
	bl sub_80188DC
	ldrb r0, [r5, 0xC]
	bl sub_8018D98
	cmp r0, 0
	beq _080193A6
	b _08019820
_080193A6:
	strb r0, [r5, 0x8]
	movs r0, 0
	b _080198FE
_080193AC:
	ldr r0, =gStringVar1
	movs r1, 0xFF
	strb r1, [r0]
	ldr r0, =gStringVar2
	strb r1, [r0]
	ldr r0, =gStringVar3
	strb r1, [r0]
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	beq _080193D4
	cmp r0, 0x1
	beq _080193EE
	b _08019406
	.pool
_080193D4:
	ldrb r0, [r5, 0xD]
	cmp r0, 0x1
	bne _080193E2
	movs r0, 0x15
	bl sub_8014EFC
	b _08019406
_080193E2:
	cmp r0, 0
	bne _08019406
	movs r0, 0x15
	bl sub_80152A8
	b _08019406
_080193EE:
	ldrb r0, [r5, 0xD]
	cmp r0, 0x1
	bne _080193FC
	movs r0, 0x16
	bl sub_8014EFC
	b _08019406
_080193FC:
	cmp r0, 0
	bne _08019406
	movs r0, 0x16
	bl sub_80152A8
_08019406:
	movs r0, 0x6
	strb r0, [r5, 0x8]
	b _08019922
_0801940C:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _0801942C
	movs r0, 0x1
	bl sub_8018838
	movs r0, 0x7
	strb r0, [r5, 0x8]
	ldrb r0, [r5, 0xC]
	bl sub_801D484
	b _08019922
	.pool
_0801942C:
	ldr r0, =gSpecialVar_Result
	ldrh r0, [r0]
	cmp r0, 0x5
	beq _08019436
	b _08019922
_08019436:
	movs r0, 0x1
	bl sub_8018838
	b _080197C0
	.pool
_08019444:
	ldr r0, =gText_Communicating
	bl sub_8018884
	movs r0, 0x8
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_08019454:
	adds r0, r5, 0
	bl sub_801D4A8
	subs r0, 0x2
	cmp r0, 0x4
	bls _08019462
	b _08019922
_08019462:
	lsls r0, 2
	ldr r1, =_08019470
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08019470:
	.4byte _080194AE
	.4byte _080194A8
	.4byte _080194B4
	.4byte _08019492
	.4byte _08019484
_08019484:
	bl task_add_05_task_del_08FA224_when_no_RfuFunc
	ldrh r0, [r5]
	strb r0, [r5, 0xE]
	movs r0, 0xD
	strb r0, [r5, 0x8]
	b _08019922
_08019492:
	ldr r4, [r5, 0x10]
	bl sub_801D4F4
	adds r1, r0, 0
	adds r0, r4, 0
	movs r2, 0x40
	bl memcpy
	bl sub_801D4E4
	b _08019922
_080194A8:
	movs r0, 0xA
	strb r0, [r5, 0x8]
	b _08019922
_080194AE:
	movs r0, 0x9
	strb r0, [r5, 0x8]
	b _08019922
_080194B4:
	movs r0, 0xB
	strb r0, [r5, 0x8]
	ldr r0, =gStringVar1
	ldr r1, =gLinkPlayers + 8
	bl StringCopy
	b _08019922
	.pool
_080194CC:
	adds r4, r5, 0
	adds r4, 0x9
	bl sub_801D4F4
	adds r3, r0, 0
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0
	bl sub_8018B08
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0x1
	beq _08019564
	cmp r1, 0x1
	bcs _08019552
	movs r0, 0
	b _08019566
_080194F0:
	adds r4, r5, 0
	adds r4, 0x9
	bl sub_801D4F4
	adds r1, r0, 0
	adds r0, r4, 0
	bl mevent_0814257C
	cmp r0, 0
	bne _08019506
	b _08019922
_08019506:
	b _0801956A
_08019508:
	adds r0, r5, 0
	adds r0, 0x9
	ldr r3, =gText_ThrowAwayWonderCard
	adds r1, r5, 0
	movs r2, 0
	bl sub_8018B08
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0x1
	beq _08019564
	cmp r1, 0x1
	bcs _08019552
	bl sub_801B3F8
	cmp r0, 0x1
	bne _08019534
	movs r0, 0xC
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_08019534:
	movs r0, 0
	b _08019566
_08019538:
	adds r0, r5, 0
	adds r0, 0x9
	ldr r3, =gText_HaventReceivedCardsGift
	adds r1, r5, 0
	movs r2, 0
	bl sub_8018B08
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0x1
	beq _08019564
	cmp r1, 0x1
	bcc _08019560
_08019552:
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _08019564
	b _08019922
	.pool
_08019560:
	movs r0, 0
	b _08019566
_08019564:
	movs r0, 0x1
_08019566:
	bl sub_801D500
_0801956A:
	bl sub_801D4E4
	movs r0, 0x7
	strb r0, [r5, 0x8]
	b _08019922
_08019574:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _0801957E
	b _08019922
_0801957E:
	bl sub_800E084
	movs r0, 0xE
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_0801958C:
	adds r0, r5, 0
	adds r0, 0x9
	ldr r1, =gText_CommunicationCompleted
	bl sub_8018A1C
	cmp r0, 0
	bne _0801959C
	b _08019922
_0801959C:
	ldrb r0, [r5, 0xD]
	cmp r0, 0x1
	bne _080195AA
	ldr r0, =gStringVar1
	ldr r1, =gLinkPlayers + 8
	bl StringCopy
_080195AA:
	movs r0, 0xF
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_080195BC:
	ldrb r1, [r5, 0xC]
	ldrb r2, [r5, 0xD]
	ldrb r3, [r5, 0xE]
	mov r0, sp
	bl mevent_message
	adds r1, r0, 0
	cmp r1, 0
	bne _080195D0
	ldr r1, [r5, 0x10]
_080195D0:
	ldr r0, [sp]
	cmp r0, 0
	beq _080195E2
	adds r0, r5, 0
	adds r0, 0x9
	adds r2, r5, 0
	bl mevent_08142CE8
	b _080195EA
_080195E2:
	adds r0, r5, 0
	adds r0, 0x9
	bl mevent_0814257C
_080195EA:
	adds r1, r0, 0
	cmp r1, 0
	bne _080195F2
	b _08019922
_080195F2:
	ldrb r0, [r5, 0xE]
	cmp r0, 0x3
	bne _0801960C
	ldrb r0, [r5, 0xD]
	cmp r0, 0x1
	bne _08019606
	movs r0, 0x1
	bl sub_801DB68
	b _0801960C
_08019606:
	movs r0, 0x2
	bl sub_801DB68
_0801960C:
	ldr r0, [sp]
	cmp r0, 0
	beq _08019614
	b _080198DC
_08019614:
	strb r0, [r5, 0x8]
	movs r0, 0
	b _080198FE
_0801961A:
	adds r0, r5, 0
	adds r0, 0x9
	bl mevent_save_game
	cmp r0, 0
	bne _08019628
	b _08019922
_08019628:
	b _08019820
_0801962A:
	adds r0, r5, 0
	adds r0, 0x9
	ldrb r1, [r5, 0xC]
	bl sub_8018DAC
	cmp r0, 0
	bne _0801963A
	b _08019922
_0801963A:
	b _080196F8
_0801963C:
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	bne _08019664
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08019652
	movs r0, 0x15
	strb r0, [r5, 0x8]
_08019652:
	ldrh r1, [r2, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _0801965E
	b _08019922
_0801965E:
	b _08019682
	.pool
_08019664:
	ldr r0, =gMain
	ldrh r0, [r0, 0x2E]
	bl sub_801CCD0
	cmp r0, 0
	beq _0801967C
	cmp r0, 0x1
	beq _08019682
	b _08019922
	.pool
_0801967C:
	bl sub_801CC38
	b _0801975E
_08019682:
	movs r0, 0x1B
	strb r0, [r5, 0x8]
	b _08019922
_08019688:
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	bne _080196A2
	bl sub_801B308
	cmp r0, 0
	beq _080196B6
	adds r0, r5, 0
	adds r0, 0x9
	ldrb r2, [r5, 0xC]
	adds r1, r5, 0
	movs r3, 0
	b _080196C0
_080196A2:
	bl sub_801B128
	cmp r0, 0
	beq _080196B6
	adds r0, r5, 0
	adds r0, 0x9
	ldrb r2, [r5, 0xC]
	adds r1, r5, 0
	movs r3, 0
	b _080196C0
_080196B6:
	adds r0, r5, 0
	adds r0, 0x9
	ldrb r2, [r5, 0xC]
	adds r1, r5, 0
	movs r3, 0x1
_080196C0:
	bl sub_8018C4C
	adds r1, r0, 0
	cmp r1, 0x1
	beq _080196E2
	cmp r1, 0x1
	bcc _080196DC
	cmp r1, 0x2
	beq _080196E8
	movs r0, 0x2
	negs r0, r0
	cmp r1, r0
	beq _080196EE
	b _08019922
_080196DC:
	movs r0, 0x1C
	strb r0, [r5, 0x8]
	b _08019922
_080196E2:
	movs r0, 0x1D
	strb r0, [r5, 0x8]
	b _08019922
_080196E8:
	movs r0, 0x16
	strb r0, [r5, 0x8]
	b _08019922
_080196EE:
	ldrb r0, [r5, 0xC]
	cmp r0, 0x1
	bne _080196F8
	bl sub_801CC80
_080196F8:
	movs r0, 0x14
	strb r0, [r5, 0x8]
	b _08019922
_080196FE:
	adds r0, r5, 0
	adds r0, 0x9
	ldrb r2, [r5, 0xC]
	adds r1, r5, 0
	bl sub_8018E50
	adds r1, r0, 0
	cmp r1, 0
	beq _0801971A
	cmp r1, 0
	ble _08019748
	cmp r1, 0x1
	beq _0801975E
	b _08019922
_0801971A:
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	bne _08019758
	bl sub_801B3F8
	cmp r0, 0x1
	bne _08019758
	movs r0, 0x17
	strb r0, [r5, 0x8]
	b _08019922
_0801972E:
	adds r0, r5, 0
	adds r0, 0x9
	ldr r3, =gText_HaventReceivedGiftOkayToDiscard
	adds r1, r5, 0
	movs r2, 0x1
	bl sub_8018B08
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0x1
	beq _0801975E
	cmp r1, 0x1
	bcc _08019758
_08019748:
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0801975E
	b _08019922
	.pool
_08019758:
	movs r0, 0x18
	strb r0, [r5, 0x8]
	b _08019922
_0801975E:
	movs r0, 0x15
	strb r0, [r5, 0x8]
	b _08019922
_08019764:
	ldrb r0, [r5, 0xC]
	movs r1, 0x1
	bl sub_8018E20
	cmp r0, 0
	bne _08019772
	b _08019922
_08019772:
	ldrb r0, [r5, 0xC]
	bl sub_8018E08
	movs r0, 0x19
	strb r0, [r5, 0x8]
	b _08019922
_0801977E:
	adds r0, r5, 0
	adds r0, 0x9
	bl mevent_save_game
	cmp r0, 0
	bne _0801978C
	b _08019922
_0801978C:
	movs r0, 0x1A
	strb r0, [r5, 0x8]
	b _08019922
_08019792:
	adds r0, r5, 0
	adds r0, 0x9
	ldrb r1, [r5, 0xC]
	bl mevent_message_was_thrown_away
	b _080198F6
_0801979E:
	ldrb r0, [r5, 0xC]
	movs r1, 0
	bl sub_8018E20
	cmp r0, 0
	bne _080197AC
	b _08019922
_080197AC:
	movs r0, 0
	strb r0, [r5, 0x8]
	b _08019922
_080197B2:
	ldrb r0, [r5, 0xC]
	movs r1, 0x1
	bl sub_8018E20
	cmp r0, 0
	bne _080197C0
	b _08019922
_080197C0:
	movs r0, 0x3
	strb r0, [r5, 0x8]
	b _08019922
_080197C6:
	ldrb r0, [r5, 0xC]
	movs r1, 0x1
	bl sub_8018E20
	cmp r0, 0
	bne _080197D4
	b _08019922
_080197D4:
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	beq _080197E0
	cmp r0, 0x1
	beq _080197E8
	b _080197EE
_080197E0:
	movs r0, 0x15
	bl sub_8014A00
	b _080197EE
_080197E8:
	movs r0, 0x16
	bl sub_8014A00
_080197EE:
	movs r0, 0x1
	strb r0, [r5, 0xD]
	movs r0, 0x1E
	strb r0, [r5, 0x8]
	b _08019922
_080197F8:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _08019810
	movs r0, 0x1
	bl sub_8018838
	movs r0, 0x1F
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_08019810:
	ldr r0, =gSpecialVar_Result
	ldrh r0, [r0]
	cmp r0, 0x5
	beq _0801981A
	b _08019922
_0801981A:
	movs r0, 0x1
	bl sub_8018838
_08019820:
	movs r0, 0x12
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_0801982C:
	ldr r0, =gStringVar1
	movs r1, 0xFF
	strb r1, [r0]
	ldr r0, =gStringVar2
	strb r1, [r0]
	ldr r0, =gStringVar3
	strb r1, [r0]
	ldrb r0, [r5, 0xC]
	cmp r0, 0
	bne _0801985C
	ldr r0, =gText_SendingWonderCard
	bl sub_8018884
	bl mevent_srv_new_wcard
	b _08019866
	.pool
_0801985C:
	ldr r0, =gText_SendingWonderNews
	bl sub_8018884
	bl mevent_srv_init_wnews
_08019866:
	movs r0, 0x20
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_08019870:
	adds r0, r5, 0
	bl sub_801D0C4
	cmp r0, 0x3
	bne _08019922
	ldrh r0, [r5]
	strb r0, [r5, 0xE]
	movs r0, 0x21
	strb r0, [r5, 0x8]
	b _08019922
_08019884:
	bl task_add_05_task_del_08FA224_when_no_RfuFunc
	ldr r0, =gStringVar1
	ldr r1, =gLinkPlayers + 0x1C + 0x08 @ &gLinkPlayers[1].name
	bl StringCopy
	movs r0, 0x22
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_080198A0:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _08019922
	bl sub_800E084
	movs r0, 0x23
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_080198B8:
	adds r0, r5, 0
	adds r0, 0x9
	ldrb r2, [r5, 0xD]
	ldrb r3, [r5, 0xE]
	adds r1, r5, 0
	bl sub_8019174
	cmp r0, 0
	beq _08019922
	ldr r0, [r5, 0xC]
	ldr r1, =0x00ffff00
	ands r0, r1
	ldr r1, =0x00030100
	cmp r0, r1
	bne _080198FA
	movs r0, 0x3
	bl sub_801DB68
_080198DC:
	movs r0, 0x11
	strb r0, [r5, 0x8]
	b _08019922
	.pool
_080198EC:
	adds r0, r5, 0
	adds r0, 0x9
	ldr r1, =gText_CommunicationError
	bl mevent_0814257C
_080198F6:
	cmp r0, 0
	beq _08019922
_080198FA:
	movs r0, 0
	strb r0, [r5, 0x8]
_080198FE:
	movs r1, 0
	bl sub_80186EC
	b _08019922
	.pool
_0801990C:
	bl CloseLink
	ldr r0, [r5, 0x10]
	bl Free
	adds r0, r4, 0
	bl DestroyTask
	ldr r0, =sub_80186A4
	bl SetMainCallback2
_08019922:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task00_mystery_gift

	thumb_func_start sub_8019930
sub_8019930: @ 8019930
	ldr r0, =0x000001a9
	bx lr
	.pool
	thumb_func_end sub_8019930

	thumb_func_start bgid_upload_textbox_1
bgid_upload_textbox_1: @ 8019938
	push {lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnkTextboxBorderGfx
	movs r2, 0x80
	lsls r2, 1
	movs r3, 0
	str r3, [sp]
	bl DecompressAndLoadBgGfxUsingHeap
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end bgid_upload_textbox_1

	thumb_func_start is_walking_or_running
is_walking_or_running: @ 8019958
	push {lr}
	ldr r0, =gPlayerAvatar
	ldrb r0, [r0, 0x3]
	cmp r0, 0x2
	beq _08019966
	cmp r0, 0
	bne _08019970
_08019966:
	movs r0, 0x1
	b _08019972
	.pool
_08019970:
	movs r0, 0
_08019972:
	pop {r1}
	bx r1
	thumb_func_end is_walking_or_running

	thumb_func_start sub_8019978
sub_8019978: @ 8019978
	ldr r3, =gUnknown_082F072C
	movs r2, 0x7
	ands r2, r1
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 1
	adds r2, r1
	adds r2, r3
	ldrb r0, [r2]
	bx lr
	.pool
	thumb_func_end sub_8019978

	thumb_func_start sub_8019990
sub_8019990: @ 8019990
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r4, =gUnknown_082F0740
	mov r8, r4
	lsls r0, 2
	adds r4, r0, r4
	movs r6, 0
	ldrsh r5, [r4, r6]
	ldr r6, =gUnknown_082F0760
	lsls r1, 1
	adds r4, r1, r6
	ldrb r4, [r4]
	lsls r4, 24
	asrs r4, 24
	adds r5, r4
	adds r5, 0x7
	str r5, [r2]
	movs r2, 0x2
	add r8, r2
	add r0, r8
	movs r4, 0
	ldrsh r0, [r0, r4]
	adds r6, 0x1
	adds r1, r6
	ldrb r1, [r1]
	lsls r1, 24
	asrs r1, 24
	adds r0, r1
	adds r0, 0x7
	str r0, [r3]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019990

	thumb_func_start sub_80199E0
sub_80199E0: @ 80199E0
	push {r4-r7,lr}
	mov r12, r3
	ldr r7, =gUnknown_082F0740
	lsls r5, r0, 2
	adds r0, r5, r7
	movs r4, 0
	ldrsh r3, [r0, r4]
	ldr r6, =gUnknown_082F0760
	lsls r4, r1, 1
	adds r0, r4, r6
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	adds r3, r0
	adds r3, 0x7
	cmp r3, r2
	bne _08019A28
	adds r0, r7, 0x2
	adds r0, r5, r0
	movs r2, 0
	ldrsh r1, [r0, r2]
	adds r0, r6, 0x1
	adds r0, r4, r0
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	adds r1, r0
	adds r1, 0x7
	cmp r1, r12
	bne _08019A28
	movs r0, 0x1
	b _08019A2A
	.pool
_08019A28:
	movs r0, 0
_08019A2A:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_80199E0

	thumb_func_start sub_8019A30
sub_8019A30: @ 8019A30
	push {lr}
	ldr r1, =0x000002bf
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8019A30

	thumb_func_start flag_set_x63
flag_set_x63: @ 8019A4C
	push {lr}
	ldr r1, =0x000002bf
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bl FlagSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end flag_set_x63

	thumb_func_start flag_clear_x63
flag_clear_x63: @ 8019A64
	push {lr}
	ldr r1, =0x000002bf
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bl FlagClear
	pop {r0}
	bx r0
	.pool
	thumb_func_end flag_clear_x63

	thumb_func_start sub_8019A7C
sub_8019A7C: @ 8019A7C
	push {lr}
	ldr r2, =0x00004010
	adds r0, r2
	lsls r0, 16
	lsrs r0, 16
	lsls r1, 16
	lsrs r1, 16
	bl VarSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019A7C

	thumb_func_start sub_8019A98
sub_8019A98: @ 8019A98
	push {lr}
	ldr r1, =gUnknown_082F0774
	adds r0, r1
	ldrb r0, [r0]
	ldr r1, =gSaveBlock1Ptr
	ldr r2, [r1]
	ldrb r1, [r2, 0x5]
	ldrb r2, [r2, 0x4]
	bl show_sprite
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019A98

	thumb_func_start sub_8019AB8
sub_8019AB8: @ 8019AB8
	push {lr}
	ldr r1, =gUnknown_082F0774
	adds r0, r1
	ldrb r0, [r0]
	ldr r1, =gSaveBlock1Ptr
	ldr r2, [r1]
	ldrb r1, [r2, 0x5]
	ldrb r2, [r2, 0x4]
	bl RemoveEventObjectByLocalIdAndMap
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019AB8

	thumb_func_start sub_8019AD8
sub_8019AD8: @ 8019AD8
	push {r4,r5,lr}
	sub sp, 0x4
	adds r5, r1, 0
	ldr r1, =gUnknown_082F0774
	adds r0, r1
	ldrb r0, [r0]
	ldr r1, =gSaveBlock1Ptr
	ldr r2, [r1]
	ldrb r1, [r2, 0x5]
	ldrb r2, [r2, 0x4]
	mov r3, sp
	bl TryGetEventObjectIdByLocalIdAndMap
	lsls r0, 24
	cmp r0, 0
	bne _08019B30
	mov r0, sp
	ldrb r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, =gEventObjects
	adds r4, r0, r1
	adds r0, r4, 0
	bl EventObjectIsMovementOverridden
	lsls r0, 24
	cmp r0, 0
	bne _08019B30
	ldrb r1, [r5]
	adds r0, r4, 0
	bl EventObjectSetHeldMovement
	lsls r0, 24
	cmp r0, 0
	bne _08019B30
	movs r0, 0x1
	b _08019B32
	.pool
_08019B30:
	movs r0, 0
_08019B32:
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8019AD8

	thumb_func_start sub_8019B3C
sub_8019B3C: @ 8019B3C
	push {r4,lr}
	sub sp, 0x4
	ldr r1, =gUnknown_082F0774
	adds r0, r1
	ldrb r0, [r0]
	ldr r1, =gSaveBlock1Ptr
	ldr r2, [r1]
	ldrb r1, [r2, 0x5]
	ldrb r2, [r2, 0x4]
	mov r3, sp
	bl TryGetEventObjectIdByLocalIdAndMap
	lsls r0, 24
	cmp r0, 0
	bne _08019B9C
	mov r0, sp
	ldrb r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, =gEventObjects
	adds r4, r0, r1
	adds r0, r4, 0
	bl EventObjectClearHeldMovementIfFinished
	lsls r0, 24
	cmp r0, 0
	bne _08019B84
	movs r0, 0
	b _08019B9E
	.pool
_08019B84:
	bl ScriptContext2_IsEnabled
	lsls r0, 24
	cmp r0, 0
	bne _08019B96
	adds r0, r4, 0
	bl UnfreezeEventObject
	b _08019B9C
_08019B96:
	adds r0, r4, 0
	bl FreezeEventObject
_08019B9C:
	movs r0, 0x1
_08019B9E:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8019B3C

	thumb_func_start sub_8019BA8
sub_8019BA8: @ 8019BA8
	push {lr}
	ldr r2, =gUnknown_02022C68
	movs r1, 0
	str r1, [r2]
	ldr r1, =gUnknown_02022C64
	str r0, [r1]
	movs r1, 0
	movs r2, 0x7
_08019BB8:
	strb r1, [r0]
	strb r1, [r0, 0x1]
	strb r1, [r0, 0x2]
	strb r1, [r0, 0x3]
	adds r0, 0x4
	subs r2, 0x1
	cmp r2, 0
	bge _08019BB8
	bl sub_8019DF4
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8019BA8

	thumb_func_start sub_8019BDC
sub_8019BDC: @ 8019BDC
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	movs r0, 0
	ldrsb r0, [r5, r0]
	cmp r0, 0
	beq _08019BF0
	cmp r0, 0x1
	beq _08019C10
	b _08019C2E
_08019BF0:
	ldr r1, =gUnknown_082F078C
	adds r0, r4, 0
	bl sub_8019AD8
	cmp r0, 0x1
	bne _08019C2E
	adds r0, r4, 0
	bl flag_set_x63
	ldrb r0, [r5]
	adds r0, 0x1
	strb r0, [r5]
	b _08019C2E
	.pool
_08019C10:
	adds r0, r4, 0
	bl sub_8019B3C
	cmp r0, 0
	beq _08019C2E
	adds r0, r4, 0
	bl sub_8019AB8
	adds r0, r4, 0
	bl flag_set_x63
	movs r0, 0
	strb r0, [r5]
	movs r0, 0x1
	b _08019C30
_08019C2E:
	movs r0, 0
_08019C30:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8019BDC

	thumb_func_start sub_8019C38
sub_8019C38: @ 8019C38
	push {r4-r7,lr}
	sub sp, 0x4
	adds r6, r0, 0
	adds r5, r1, 0
	adds r7, r2, 0
	movs r0, 0
	ldrsb r0, [r6, r0]
	cmp r0, 0x2
	beq _08019CD4
	cmp r0, 0x2
	bgt _08019C54
	cmp r0, 0
	beq _08019C5A
	b _08019CE6
_08019C54:
	cmp r0, 0x3
	beq _08019CBC
	b _08019CE6
_08019C5A:
	bl is_walking_or_running
	cmp r0, 0
	beq _08019CE6
	mov r4, sp
	adds r4, 0x2
	mov r0, sp
	adds r1, r4, 0
	bl PlayerGetDestCoords
	mov r0, sp
	movs r1, 0
	ldrsh r2, [r0, r1]
	movs r0, 0
	ldrsh r3, [r4, r0]
	adds r0, r5, 0
	movs r1, 0
	bl sub_80199E0
	cmp r0, 0x1
	beq _08019CE6
	mov r0, sp
	adds r1, r4, 0
	bl player_get_pos_including_state_based_drift
	mov r0, sp
	movs r1, 0
	ldrsh r2, [r0, r1]
	movs r0, 0
	ldrsh r3, [r4, r0]
	adds r0, r5, 0
	movs r1, 0
	bl sub_80199E0
	cmp r0, 0x1
	beq _08019CE6
	ldrb r1, [r7, 0x1]
	adds r0, r5, 0
	bl sub_8019A7C
	adds r0, r5, 0
	bl sub_8019A98
	adds r0, r5, 0
	bl flag_clear_x63
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
_08019CBC:
	ldr r1, =gUnknown_082F078E
	adds r0, r5, 0
	bl sub_8019AD8
	cmp r0, 0x1
	bne _08019CE6
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	b _08019CE6
	.pool
_08019CD4:
	adds r0, r5, 0
	bl sub_8019B3C
	cmp r0, 0
	beq _08019CE6
	movs r0, 0
	strb r0, [r6]
	movs r0, 0x1
	b _08019CE8
_08019CE6:
	movs r0, 0
_08019CE8:
	add sp, 0x4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8019C38

	thumb_func_start sub_8019CF0
sub_8019CF0: @ 8019CF0
	push {r4,lr}
	ldr r3, =gUnknown_02022C64
	lsls r0, 2
	ldr r4, [r3]
	adds r4, r0
	movs r0, 0x1
	strb r0, [r4, 0x3]
	adds r0, r1, 0
	adds r1, r2, 0
	bl sub_8019978
	strb r0, [r4, 0x1]
	ldrb r0, [r4]
	cmp r0, 0
	beq _08019D18
	movs r0, 0
	b _08019D1A
	.pool
_08019D18:
	movs r0, 0x1
_08019D1A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8019CF0

	thumb_func_start AGBAssert
AGBAssert: @ 8019D20
	push {lr}
	ldr r1, =gUnknown_02022C64
	lsls r0, 2
	ldr r1, [r1]
	adds r1, r0
	movs r0, 0x2
	strb r0, [r1, 0x3]
	ldrb r0, [r1]
	cmp r0, 0x1
	beq _08019D3C
	movs r0, 0
	b _08019D3E
	.pool
_08019D3C:
	movs r0, 0x1
_08019D3E:
	pop {r1}
	bx r1
	thumb_func_end AGBAssert

	thumb_func_start sub_8019D44
sub_8019D44: @ 8019D44
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	ldrb r1, [r4]
	cmp r1, 0x1
	beq _08019DA6
	cmp r1, 0x1
	bgt _08019D5A
	cmp r1, 0
	beq _08019D64
	b _08019DC6
_08019D5A:
	cmp r1, 0x2
	beq _08019D70
	cmp r1, 0x3
	beq _08019DB4
	b _08019DC6
_08019D64:
	ldrb r0, [r4, 0x3]
	cmp r0, 0x1
	bne _08019DC6
	movs r0, 0x2
	strb r0, [r4]
	strb r1, [r4, 0x2]
_08019D70:
	adds r0, r5, 0
	movs r1, 0
	bl sub_8019F8C
	adds r1, r0, 0
	cmp r1, 0
	bne _08019D96
	ldrb r0, [r4, 0x3]
	cmp r0, 0x2
	bne _08019D96
	strb r1, [r4]
	strb r1, [r4, 0x2]
	adds r0, r5, 0
	bl sub_8019AB8
	adds r0, r5, 0
	bl flag_set_x63
	b _08019DC6
_08019D96:
	adds r0, r4, 0x2
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_8019C38
	cmp r0, 0x1
	bne _08019DC6
	b _08019DC4
_08019DA6:
	ldrb r0, [r4, 0x3]
	cmp r0, 0x2
	bne _08019DC6
	movs r1, 0
	movs r0, 0x3
	strb r0, [r4]
	strb r1, [r4, 0x2]
_08019DB4:
	adds r0, r4, 0x2
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_8019BDC
	cmp r0, 0x1
	bne _08019DC6
	movs r0, 0
_08019DC4:
	strb r0, [r4]
_08019DC6:
	movs r0, 0
	strb r0, [r4, 0x3]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8019D44

	thumb_func_start sub_8019DD0
sub_8019DD0: @ 8019DD0
	push {r4,r5,lr}
	movs r4, 0
	ldr r5, =gUnknown_02022C64
_08019DD6:
	lsls r0, r4, 2
	ldr r1, [r5]
	adds r1, r0
	adds r0, r4, 0
	bl sub_8019D44
	adds r4, 0x1
	cmp r4, 0x7
	ble _08019DD6
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019DD0

	thumb_func_start sub_8019DF4
sub_8019DF4: @ 8019DF4
	push {r4,lr}
	ldr r4, =sub_8019DD0
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08019E18
	adds r0, r4, 0
	movs r1, 0x5
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	b _08019E1A
	.pool
_08019E18:
	movs r0, 0x10
_08019E1A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8019DF4

	thumb_func_start sub_8019E20
sub_8019E20: @ 8019E20
	push {lr}
	ldr r0, =sub_8019DD0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xF
	bhi _08019E34
	bl DestroyTask
_08019E34:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019E20

	thumb_func_start sub_8019E3C
sub_8019E3C: @ 8019E3C
	push {r4,lr}
	movs r4, 0
_08019E40:
	adds r0, r4, 0
	bl sub_8019A30
	cmp r0, 0
	bne _08019E56
	adds r0, r4, 0
	bl sub_8019AB8
	adds r0, r4, 0
	bl flag_set_x63
_08019E56:
	adds r4, 0x1
	cmp r4, 0x7
	ble _08019E40
	ldr r1, =gUnknown_02022C64
	movs r0, 0
	str r0, [r1]
	bl sub_8019E20
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019E3C

	thumb_func_start sub_8019E70
sub_8019E70: @ 8019E70
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	str r0, [sp, 0x8]
	mov r9, r1
	movs r7, 0
	mov r0, r9
	lsls r0, 2
	mov r8, r0
	ldr r0, =gUnknown_082F0740
	mov r2, r8
	adds r1, r2, r0
	ldrh r1, [r1]
	mov r2, sp
	strh r1, [r2, 0xC]
	adds r0, 0x2
	add r0, r8
	ldrh r0, [r0]
	mov r10, r0
	ldr r6, =gUnknown_082F0760
_08019E9E:
	mov r5, r8
	add r5, r9
	adds r5, r7
	adds r4, r5, 0
	subs r4, 0x38
	lsls r4, 24
	lsrs r4, 24
	movs r2, 0
	ldrsb r2, [r6, r2]
	mov r0, sp
	ldrh r0, [r0, 0xC]
	adds r2, r0, r2
	lsls r2, 16
	asrs r2, 16
	movs r3, 0x1
	ldrsb r3, [r6, r3]
	add r3, r10
	lsls r3, 16
	asrs r3, 16
	movs r0, 0x3
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r0, 0x41
	adds r1, r4, 0
	bl sprite_new
	ldr r1, [sp, 0x8]
	adds r5, r1, r5
	strb r0, [r5]
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_8097C44
	adds r6, 0x2
	adds r7, 0x1
	cmp r7, 0x4
	ble _08019E9E
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019E70

	thumb_func_start sub_8019F04
sub_8019F04: @ 8019F04
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r4, 0
	ldr r6, =gSprites
_08019F0C:
	adds r0, r5, r4
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	bl DestroySprite
	adds r4, 0x1
	cmp r4, 0x27
	ble _08019F0C
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8019F04

	thumb_func_start sub_8019F2C
sub_8019F2C: @ 8019F2C
	push {r4-r7,lr}
	sub sp, 0x8
	movs r5, 0
	add r7, sp, 0x4
_08019F34:
	movs r4, 0
	adds r6, r5, 0x1
_08019F38:
	adds r0, r5, 0
	adds r1, r4, 0
	mov r2, sp
	adds r3, r7, 0
	bl sub_8019990
	ldr r0, [sp]
	ldr r1, [sp, 0x4]
	movs r2, 0
	bl sub_8088B94
	adds r4, 0x1
	cmp r4, 0x4
	ble _08019F38
	adds r5, r6, 0
	cmp r5, 0x7
	ble _08019F34
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8019F2C

	thumb_func_start sub_8019F64
sub_8019F64: @ 8019F64
	push {lr}
	adds r1, r0, 0
	cmp r1, 0
	beq _08019F78
	ldr r0, =gUnknown_082F076F
	adds r0, r1, r0
	ldrb r0, [r0]
	b _08019F88
	.pool
_08019F78:
	ldrb r1, [r2, 0xA]
	movs r0, 0x7F
	ands r0, r1
	cmp r0, 0x45
	beq _08019F86
	movs r0, 0x4
	b _08019F88
_08019F86:
	movs r0, 0x1
_08019F88:
	pop {r1}
	bx r1
	thumb_func_end sub_8019F64

	thumb_func_start sub_8019F8C
sub_8019F8C: @ 8019F8C
	push {lr}
	adds r2, r0, 0
	lsls r0, r2, 2
	adds r0, r2
	adds r0, r1
	subs r0, 0x38
	lsls r0, 24
	lsrs r0, 24
	bl sub_8097C8C
	pop {r1}
	bx r1
	thumb_func_end sub_8019F8C

	thumb_func_start sub_8019FA4
sub_8019FA4: @ 8019FA4
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	adds r5, r0, 0
	adds r6, r1, 0
	mov r9, r3
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r0, r5, 2
	adds r0, r5
	adds r7, r0, r6
	adds r0, r5, 0
	bl sub_8019F8C
	cmp r0, 0x1
	bne _08019FE2
	adds r4, r7, 0
	subs r4, 0x38
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0
	bl sub_8097C44
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_8097CC4
_08019FE2:
	adds r0, r7, 0
	subs r0, 0x38
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	bl sub_8097BB4
	adds r0, r6, 0
	adds r1, r5, 0
	mov r2, r9
	bl sub_8019F64
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r6, 0
	adds r1, r5, 0
	bl sub_801A3B0
	add r3, sp, 0x4
	adds r0, r5, 0
	adds r1, r6, 0
	mov r2, sp
	bl sub_8019990
	ldr r0, [sp]
	ldr r1, [sp, 0x4]
	movs r2, 0x1
	bl sub_8088B94
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8019FA4

	thumb_func_start sub_801A02C
sub_801A02C: @ 801A02C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r0, r4, 2
	adds r0, r4
	adds r0, r5
	subs r0, 0x38
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x2
	bl sub_8097CC4
	add r3, sp, 0x4
	adds r0, r4, 0
	adds r1, r5, 0
	mov r2, sp
	bl sub_8019990
	ldr r0, [sp]
	ldr r1, [sp, 0x4]
	movs r2, 0
	bl sub_8088B94
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801A02C

	thumb_func_start sub_801A064
sub_801A064: @ 801A064
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	adds r7, r0, 0
	mov r8, r1
	mov r6, sp
	adds r6, 0x2
	mov r0, sp
	adds r1, r6, 0
	bl PlayerGetDestCoords
	add r4, sp, 0x4
	mov r5, sp
	adds r5, 0x6
	adds r0, r4, 0
	adds r1, r5, 0
	bl player_get_pos_including_state_based_drift
	lsls r0, r7, 2
	adds r0, r7
	subs r0, 0x38
	lsls r0, 24
	lsrs r0, 24
	bl sub_8097C8C
	mov r10, r6
	mov r9, r4
	adds r6, r5, 0
	cmp r0, 0x1
	bne _0801A0F0
	mov r0, sp
	movs r1, 0
	ldrsh r2, [r0, r1]
	mov r0, r10
	movs r1, 0
	ldrsh r3, [r0, r1]
	adds r0, r7, 0
	movs r1, 0
	bl sub_80199E0
	cmp r0, 0x1
	beq _0801A15C
	movs r0, 0
	ldrsh r2, [r4, r0]
	movs r1, 0
	ldrsh r3, [r6, r1]
	adds r0, r7, 0
	movs r1, 0
	bl sub_80199E0
	cmp r0, 0x1
	beq _0801A15C
	mov r2, r8
	ldrb r0, [r2, 0xB]
	lsls r0, 31
	lsrs r0, 31
	ldrb r1, [r2, 0x2]
	bl sub_8019978
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r7, 0
	movs r1, 0
	mov r3, r8
	bl sub_8019FA4
_0801A0F0:
	movs r5, 0x1
	mov r4, r8
	adds r4, 0x4
_0801A0F6:
	ldrb r0, [r4]
	cmp r0, 0
	bne _0801A106
	adds r0, r7, 0
	adds r1, r5, 0
	bl sub_801A02C
	b _0801A154
_0801A106:
	mov r0, sp
	movs r1, 0
	ldrsh r2, [r0, r1]
	mov r0, r10
	movs r1, 0
	ldrsh r3, [r0, r1]
	adds r0, r7, 0
	adds r1, r5, 0
	bl sub_80199E0
	cmp r0, 0
	bne _0801A154
	mov r0, r9
	movs r1, 0
	ldrsh r2, [r0, r1]
	movs r0, 0
	ldrsh r3, [r6, r0]
	adds r0, r7, 0
	adds r1, r5, 0
	bl sub_80199E0
	cmp r0, 0
	bne _0801A154
	ldrb r2, [r4]
	lsrs r0, r2, 3
	movs r1, 0x1
	ands r0, r1
	movs r1, 0x7
	ands r1, r2
	bl sub_8019978
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r7, 0
	adds r1, r5, 0
	mov r3, r8
	bl sub_8019FA4
_0801A154:
	adds r4, 0x1
	adds r5, 0x1
	cmp r5, 0x4
	ble _0801A0F6
_0801A15C:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_801A064

	thumb_func_start sub_801A16C
sub_801A16C: @ 801A16C
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	ldrb r0, [r4, 0xA]
	lsls r0, 25
	lsrs r0, 25
	subs r0, 0x40
	cmp r0, 0x14
	bhi _0801A20E
	lsls r0, 2
	ldr r1, =_0801A18C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801A18C:
	.4byte _0801A1E0
	.4byte _0801A200
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A200
	.4byte _0801A200
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A200
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A20E
	.4byte _0801A200
	.4byte _0801A200
	.4byte _0801A200
	.4byte _0801A1E0
_0801A1E0:
	ldrb r1, [r4, 0xB]
	lsls r1, 31
	lsrs r1, 31
	ldrb r2, [r4, 0x2]
	adds r0, r5, 0
	bl sub_8019CF0
	movs r4, 0
_0801A1F0:
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_801A02C
	adds r4, 0x1
	cmp r4, 0x4
	bls _0801A1F0
	b _0801A20E
_0801A200:
	adds r0, r5, 0
	bl AGBAssert
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_801A064
_0801A20E:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801A16C

	thumb_func_start sub_801A214
sub_801A214: @ 801A214
	push {r4,r5,lr}
	adds r5, r0, 0
	bl AGBAssert
	movs r4, 0
_0801A21E:
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_801A02C
	adds r4, 0x1
	cmp r4, 0x4
	ble _0801A21E
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801A214

	thumb_func_start sub_801A234
sub_801A234: @ 801A234
	push {r4,r5,lr}
	ldr r2, =gUnknown_02022C68
	movs r1, 0
	str r1, [r2]
	movs r5, 0
	ldr r4, [r0]
_0801A240:
	ldrb r0, [r4, 0x1A]
	movs r1, 0x3
	ands r1, r0
	cmp r1, 0x1
	bne _0801A258
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_801A16C
	b _0801A264
	.pool
_0801A258:
	cmp r1, 0x2
	bne _0801A264
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_801A214
_0801A264:
	adds r4, 0x20
	adds r5, 0x1
	cmp r5, 0x7
	ble _0801A240
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801A234

	thumb_func_start sub_801A274
sub_801A274: @ 801A274
	ldr r1, =gUnknown_02022C68
	movs r0, 0x96
	lsls r0, 1
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_801A274

	thumb_func_start sub_801A284
sub_801A284: @ 801A284
	push {lr}
	adds r2, r0, 0
	ldr r0, =gUnknown_02022C68
	ldr r1, [r0]
	adds r1, 0x1
	str r1, [r0]
	movs r0, 0x96
	lsls r0, 1
	cmp r1, r0
	bls _0801A29E
	adds r0, r2, 0
	bl sub_801A234
_0801A29E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801A284

	thumb_func_start sub_801A2A8
sub_801A2A8: @ 801A2A8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	adds r5, r0, 0
	str r1, [sp, 0x4]
	str r2, [sp, 0x8]
	bl is_walking_or_running
	cmp r0, 0
	bne _0801A2F0
	b _0801A396
_0801A2C4:
	ldr r4, =gUnknown_082F076A
	bl GetPlayerFacingDirection
	lsls r0, 24
	lsrs r0, 24
	adds r0, r4
	ldrb r2, [r0]
	adds r0, r6, 0
	ldr r1, [sp, 0xC]
	bl sub_801A3B0
	ldr r0, [sp, 0x4]
	strh r6, [r0]
	mov r1, sp
	ldrh r2, [r1, 0xC]
	ldr r1, [sp, 0x8]
	strh r2, [r1]
	movs r0, 0x1
	b _0801A398
	.pool
_0801A2F0:
	mov r4, sp
	adds r4, 0x2
	mov r0, sp
	adds r1, r4, 0
	bl GetXYCoordsOneStepInFrontOfPlayer
	movs r0, 0
	str r0, [sp, 0xC]
	ldr r0, =gUnknown_082F0740
	adds r7, r5, 0
	movs r1, 0
	mov r10, r1
	adds r2, r0, 0x2
	str r2, [sp, 0x10]
	str r0, [sp, 0x14]
_0801A30E:
	movs r6, 0
	ldr r4, [sp, 0x14]
	movs r0, 0
	ldrsh r4, [r4, r0]
	mov r9, r4
	ldr r1, [sp, 0x10]
	mov r8, r1
	ldr r5, =gUnknown_082F0760
_0801A31E:
	mov r2, r10
	adds r3, r2, r6
	mov r0, sp
	movs r4, 0
	ldrsh r1, [r0, r4]
	movs r0, 0
	ldrsb r0, [r5, r0]
	add r0, r9
	adds r0, 0x7
	cmp r1, r0
	bne _0801A372
	mov r1, sp
	movs r2, 0x2
	ldrsh r0, [r1, r2]
	mov r4, r8
	movs r2, 0
	ldrsh r1, [r4, r2]
	movs r2, 0x1
	ldrsb r2, [r5, r2]
	adds r1, r2
	adds r1, 0x7
	cmp r0, r1
	bne _0801A372
	adds r0, r3, 0
	subs r0, 0x38
	lsls r0, 24
	lsrs r4, r0, 24
	adds r0, r4, 0
	bl sub_8097C8C
	cmp r0, 0
	bne _0801A372
	adds r0, r4, 0
	bl sub_8097D9C
	cmp r0, 0
	bne _0801A372
	ldrb r1, [r7, 0x1A]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	beq _0801A2C4
_0801A372:
	adds r5, 0x2
	adds r6, 0x1
	cmp r6, 0x4
	ble _0801A31E
	adds r7, 0x20
	movs r4, 0x5
	add r10, r4
	ldr r0, [sp, 0x10]
	adds r0, 0x4
	str r0, [sp, 0x10]
	ldr r1, [sp, 0x14]
	adds r1, 0x4
	str r1, [sp, 0x14]
	ldr r2, [sp, 0xC]
	adds r2, 0x1
	str r2, [sp, 0xC]
	cmp r2, 0x7
	ble _0801A30E
_0801A396:
	movs r0, 0
_0801A398:
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801A2A8

	thumb_func_start sub_801A3B0
sub_801A3B0: @ 801A3B0
	push {r4,lr}
	adds r4, r0, 0
	adds r3, r1, 0
	lsls r1, r2, 24
	lsrs r1, 24
	lsls r0, r3, 2
	adds r0, r3
	subs r0, 0x38
	adds r0, r4
	lsls r0, 24
	lsrs r0, 24
	bl sub_8097B78
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801A3B0

	thumb_func_start sub_801A3D0
sub_801A3D0: @ 801A3D0
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	lsls r3, r4, 5
	adds r3, r2
	adds r2, r3, 0
	bl sub_8019F64
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_801A3B0
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801A3D0

	thumb_func_start sub_801A3F4
sub_801A3F4: @ 801A3F4
	push {lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801A414
	bl RunTasks
	bl RunTextPrinters
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
_0801A414:
	pop {r0}
	bx r0
	thumb_func_end sub_801A3F4

	thumb_func_start sub_801A418
sub_801A418: @ 801A418
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_801A418

	thumb_func_start sub_801A42C
sub_801A42C: @ 801A42C
	push {lr}
	ldr r0, =sub_801A43C
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801A42C

	thumb_func_start sub_801A43C
sub_801A43C: @ 801A43C
	push {r4,r5,lr}
	sub sp, 0xC
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	ldr r5, =gUnknown_03000DAC
	movs r0, 0x6C
	bl AllocZeroed
	str r0, [r5]
	movs r0, 0
	bl SetVBlankCallback
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082F0D34
	movs r0, 0
	movs r2, 0x2
	bl InitBgsFromTemplates
	movs r4, 0x80
	lsls r4, 4
	adds r0, r4, 0
	bl Alloc
	adds r1, r0, 0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	adds r0, r4, 0
	bl Alloc
	adds r1, r0, 0
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, =gWirelessInfoScreenGfx
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl DecompressAndLoadBgGfxUsingHeap
	ldr r1, =gWirelessInfoScreenTilemap
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r0, =gUnknown_082F0D3C
	bl InitWindows
	bl DeactivateAllTextPrinters
	bl ResetPaletteFade
	bl ResetSpriteData
	bl ResetTasks
	bl ScanlineEffect_Stop
	bl m4aSoundVSyncOn
	ldr r0, =sub_801A418
	bl SetVBlankCallback
	ldr r0, =sub_801A6C0
	movs r1, 0
	bl CreateTask
	ldr r1, [r5]
	adds r1, 0x60
	strb r0, [r1]
	bl sub_8013C40
	ldr r1, [r5]
	adds r1, 0x61
	strb r0, [r1]
	ldr r1, [r5]
	movs r0, 0x1
	str r0, [r1, 0x1C]
	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, =gWirelessInfoScreenPal
	movs r1, 0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0xF0
	bl sub_81978B0
	bl DynamicPlaceholderTextUtil_Reset
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	ldr r0, =sub_801A3F4
	bl SetMainCallback2
	bl RunTasks
	bl RunTextPrinters
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801A43C

	thumb_func_start sub_801A584
sub_801A584: @ 801A584
	push {r4,lr}
	bl FreeAllWindowBuffers
	movs r4, 0
_0801A58C:
	lsls r0, r4, 24
	lsrs r0, 24
	bl GetBgTilemapBuffer
	bl Free
	adds r4, 0x1
	cmp r4, 0x1
	ble _0801A58C
	ldr r0, =gUnknown_03000DAC
	ldr r0, [r0]
	bl Free
	ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
	bl SetMainCallback2
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801A584

	thumb_func_start sub_801A5BC
sub_801A5BC: @ 801A5BC
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x5
	ble _0801A5E4
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xE
	bne _0801A5E0
	movs r0, 0
	strh r0, [r1]
_0801A5E0:
	movs r0, 0
	strh r0, [r2]
_0801A5E4:
	movs r2, 0
	ldrsh r0, [r1, r2]
	adds r0, 0x2
	lsls r0, 5
	ldr r1, =gWirelessInfoScreenPal
	adds r0, r1
	movs r1, 0
	movs r2, 0x10
	bl LoadPalette
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801A5BC

	thumb_func_start sub_801A600
sub_801A600: @ 801A600
	push {r4,r5,lr}
	sub sp, 0x8
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0x2
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_082F0D5C
	ldr r4, [r5]
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0xC0
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0x6
	str r0, [sp]
	movs r0, 0x3
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0x1
	adds r2, r4, 0
	bl sub_801A8B0
	movs r1, 0
_0801A644:
	adds r4, r1, 0x1
	lsls r0, r4, 2
	adds r0, r5
	ldr r2, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 25
	movs r1, 0x80
	lsls r1, 20
	adds r0, r1
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r1, 0x1
	movs r3, 0
	bl sub_801A8B0
	adds r1, r4, 0
	cmp r4, 0x2
	ble _0801A644
	ldr r1, =gUnknown_082F0D5C
	adds r0, r4, 0x1
	lsls r0, 2
	adds r0, r1
	ldr r2, [r0]
	lsls r0, r4, 4
	subs r0, r4
	lsls r0, 25
	movs r1, 0x80
	lsls r1, 20
	adds r0, r1
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0x1
	movs r3, 0
	bl sub_801A8B0
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801A600

	thumb_func_start sub_801A6C0
sub_801A6C0: @ 801A6C0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r2, 0x8
	ldrsh r0, [r0, r2]
	adds r2, r1, 0
	cmp r0, 0x5
	bls _0801A6E2
	b _0801A89C
_0801A6E2:
	lsls r0, 2
	ldr r1, =_0801A6F4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801A6F4:
	.4byte _0801A70C
	.4byte _0801A728
	.4byte _0801A74C
	.4byte _0801A768
	.4byte _0801A85C
	.4byte _0801A884
_0801A70C:
	bl sub_801A600
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0801A89C
	.pool
_0801A728:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	movs r0, 0x1
	bl ShowBg
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	bl ShowBg
	b _0801A86C
_0801A74C:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _0801A75A
	b _0801A89C
_0801A75A:
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r2
	b _0801A876
	.pool
_0801A768:
	ldr r0, =gUnknown_03000DAC
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x10
	adds r2, r0, 0
	adds r2, 0x20
	adds r3, r0, 0
	adds r3, 0x61
	ldrb r3, [r3]
	bl sub_801AA30
	lsls r1, r5, 2
	mov r8, r1
	cmp r0, 0
	beq _0801A7F8
	movs r0, 0x2
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r4, 0
	ldr r6, =gStringVar4
	movs r7, 0x80
	lsls r7, 20
_0801A796:
	ldr r0, =gUnknown_03000DAC
	ldr r0, [r0]
	lsls r1, r4, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r6, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	cmp r4, 0x3
	beq _0801A7CC
	lsrs r0, r7, 24
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0x1
	adds r2, r6, 0
	movs r3, 0xC
	bl sub_801A8B0
	b _0801A7DE
	.pool
_0801A7CC:
	movs r0, 0x62
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r1, 0x1
	adds r2, r6, 0
	movs r3, 0xC
	bl sub_801A8B0
_0801A7DE:
	movs r2, 0xF0
	lsls r2, 21
	adds r7, r2
	adds r4, 0x1
	cmp r4, 0x3
	ble _0801A796
	movs r0, 0x2
	bl PutWindowTilemap
	movs r0, 0x2
	movs r1, 0x3
	bl CopyWindowToVram
_0801A7F8:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _0801A80C
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0801A836
_0801A80C:
	movs r0, 0x5
	bl PlaySE
	ldr r2, =gTasks
	ldr r0, =gUnknown_03000DAC
	ldr r0, [r0]
	adds r0, 0x61
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	movs r1, 0xFF
	strh r1, [r0, 0x26]
	mov r0, r8
	adds r1, r0, r5
	lsls r1, 3
	adds r1, r2
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0801A836:
	mov r2, r8
	adds r1, r2, r5
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r1, r0
	adds r0, r1, 0
	adds r0, 0xE
	adds r1, 0x10
	bl sub_801A5BC
	b _0801A89C
	.pool
_0801A85C:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
_0801A86C:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
_0801A876:
	ldrh r1, [r0, 0x8]
	adds r1, 0x1
	strh r1, [r0, 0x8]
	b _0801A89C
	.pool
_0801A884:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0801A89C
	ldr r0, =sub_801A584
	bl SetMainCallback2
	adds r0, r5, 0
	bl DestroyTask
_0801A89C:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801A6C0

	thumb_func_start sub_801A8B0
sub_801A8B0: @ 801A8B0
	push {r4-r7,lr}
	sub sp, 0x18
	mov r12, r2
	ldr r2, [sp, 0x2C]
	ldr r4, [sp, 0x30]
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r6, r1, 24
	lsls r3, 24
	lsrs r5, r3, 24
	lsls r2, 24
	lsrs r3, r2, 24
	lsls r4, 24
	lsrs r0, r4, 24
	cmp r0, 0x4
	bhi _0801A93A
	lsls r0, 2
	ldr r1, =_0801A8E0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801A8E0:
	.4byte _0801A8F4
	.4byte _0801A902
	.4byte _0801A910
	.4byte _0801A91E
	.4byte _0801A92C
_0801A8F4:
	add r1, sp, 0x14
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x2
	strb r0, [r1, 0x1]
	movs r0, 0x3
	b _0801A938
_0801A902:
	add r1, sp, 0x14
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x1
	strb r0, [r1, 0x1]
	movs r0, 0x3
	b _0801A938
_0801A910:
	add r1, sp, 0x14
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x4
	strb r0, [r1, 0x1]
	movs r0, 0x5
	b _0801A938
_0801A91E:
	add r1, sp, 0x14
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x7
	strb r0, [r1, 0x1]
	movs r0, 0x6
	b _0801A938
_0801A92C:
	add r1, sp, 0x14
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x1
	strb r0, [r1, 0x1]
	movs r0, 0x2
_0801A938:
	strb r0, [r1, 0x2]
_0801A93A:
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	add r0, sp, 0x14
	str r0, [sp, 0x8]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0xC]
	mov r0, r12
	str r0, [sp, 0x10]
	adds r0, r7, 0
	adds r1, r6, 0
	adds r2, r5, 0
	bl AddTextPrinterParameterized4
	add sp, 0x18
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_801A8B0

	thumb_func_start sub_801A960
sub_801A960: @ 801A960
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	mov r12, r0
	adds r7, r1, 0
	ldrb r0, [r0, 0xA]
	lsls r0, 25
	lsrs r0, 25
	mov r8, r0
	movs r4, 0
	ldr r0, =gUnknown_082F0D70
	mov r9, r0
	movs r1, 0x1
	add r1, r9
	mov r10, r1
	mov r3, r12
	adds r3, 0x4
	str r3, [sp]
_0801A98A:
	lsls r0, r4, 1
	adds r2, r0, r4
	mov r3, r9
	adds r1, r2, r3
	adds r5, r0, 0
	adds r6, r4, 0x1
	ldrb r1, [r1]
	cmp r8, r1
	bne _0801A9EE
	mov r0, r12
	ldrb r1, [r0, 0x1A]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _0801A9EE
	mov r0, r9
	adds r0, 0x2
	adds r3, r2, r0
	ldrb r0, [r3]
	cmp r0, 0
	bne _0801A9DC
	movs r2, 0
	movs r1, 0
	ldr r3, [sp]
_0801A9BA:
	adds r0, r3, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _0801A9C4
	adds r2, 0x1
_0801A9C4:
	adds r1, 0x1
	cmp r1, 0x3
	ble _0801A9BA
	adds r2, 0x1
	adds r0, r5, r4
	add r0, r10
	ldrb r1, [r0]
	lsls r1, 2
	adds r1, r7
	b _0801A9E8
	.pool
_0801A9DC:
	mov r1, r10
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r1, 2
	adds r1, r7
	ldrb r2, [r3]
_0801A9E8:
	ldr r0, [r1]
	adds r0, r2
	str r0, [r1]
_0801A9EE:
	adds r4, r6, 0
	cmp r4, 0x1E
	bls _0801A98A
	mov r0, r8
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_801A960

	thumb_func_start sub_801AA08
sub_801AA08: @ 801AA08
	push {r4,lr}
	movs r4, 0
	adds r3, r1, 0
	adds r2, r0, 0
_0801AA10:
	ldr r1, [r2]
	ldr r0, [r3]
	cmp r1, r0
	beq _0801AA1C
	movs r0, 0x1
	b _0801AA28
_0801AA1C:
	adds r3, 0x4
	adds r2, 0x4
	adds r4, 0x1
	cmp r4, 0x3
	ble _0801AA10
	movs r0, 0
_0801AA28:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801AA08

	thumb_func_start sub_801AA30
sub_801AA30: @ 801AA30
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	adds r6, r0, 0
	mov r9, r1
	adds r5, r2, 0
	lsls r4, r3, 24
	lsrs r4, 24
	movs r0, 0
	mov r8, r0
	mov r0, sp
	movs r1, 0
	movs r2, 0x10
	bl memset
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r7, r0, r1
	movs r4, 0
_0801AA5E:
	lsls r1, r4, 5
	ldr r0, [r7]
	adds r0, r1
	mov r1, sp
	bl sub_801A960
	adds r1, r0, 0
	ldr r0, [r5]
	cmp r1, r0
	beq _0801AA78
	str r1, [r5]
	movs r2, 0x1
	mov r8, r2
_0801AA78:
	adds r5, 0x4
	adds r4, 0x1
	cmp r4, 0xF
	ble _0801AA5E
	mov r0, sp
	mov r1, r9
	bl sub_801AA08
	cmp r0, 0
	bne _0801AA9C
	mov r3, r8
	cmp r3, 0x1
	beq _0801AAC4
	movs r0, 0
	b _0801AAC6
	.pool
_0801AA9C:
	adds r1, r6, 0
	mov r0, sp
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldr r0, [r0]
	str r0, [r1]
	mov r1, r9
	mov r0, sp
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldr r0, [r0]
	str r0, [r1]
	ldr r0, [r6]
	ldr r1, [r6, 0x4]
	adds r0, r1
	ldr r1, [r6, 0x8]
	adds r0, r1
	ldr r1, [r6, 0xC]
	adds r0, r1
	str r0, [r6, 0xC]
_0801AAC4:
	movs r0, 0x1
_0801AAC6:
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_801AA30

	thumb_func_start sub_801AAD4
sub_801AAD4: @ 801AAD4
	push {r4-r7,lr}
	movs r0, 0xA
	bl sub_8014210
	movs r4, 0
	movs r7, 0x64
	ldr r6, =gPlayerParty
	ldr r5, =gEnemyParty
_0801AAE4:
	ldr r0, =gSelectedOrderFromParty
	adds r0, r4, r0
	ldrb r0, [r0]
	subs r0, 0x1
	adds r1, r0, 0
	muls r1, r7
	adds r1, r6
	adds r0, r5, 0
	movs r2, 0x64
	bl memcpy
	adds r5, 0x64
	adds r4, 0x1
	cmp r4, 0x1
	ble _0801AAE4
	ldr r4, =gPlayerParty
	movs r0, 0xFA
	lsls r0, 1
	adds r5, r4, r0
_0801AB0A:
	adds r0, r4, 0
	bl ZeroMonData
	adds r4, 0x64
	cmp r4, r5
	ble _0801AB0A
	ldr r4, =gPlayerParty
	movs r5, 0
	adds r6, r4, 0
	adds r6, 0x64
_0801AB1E:
	ldr r1, =gEnemyParty
	adds r1, r5, r1
	adds r0, r4, 0
	movs r2, 0x64
	bl memcpy
	adds r4, 0x64
	adds r5, 0x64
	cmp r4, r6
	ble _0801AB1E
	movs r0, 0x32
	bl IncrementGameStat
	bl CalculatePlayerPartyCount
	ldr r0, =gTrainerBattleOpponent_A
	movs r2, 0xC0
	lsls r2, 4
	adds r1, r2, 0
	strh r1, [r0]
	ldr r0, =CB2_InitBattle
	bl SetMainCallback2
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801AAD4

	thumb_func_start sub_801AB68
sub_801AB68: @ 801AB68
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	adds r5, r0, 0
	adds r7, r1, 0
	adds r6, r2, 0
	ldr r4, [sp, 0x38]
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0
	mov r9, r0
	movs r1, 0x1
	mov r10, r1
	ldr r0, =gUnknown_082F0DE4
	mov r8, r0
	ldrb r0, [r0]
	lsls r1, r0, 4
	orrs r1, r0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r5, 0
	str r3, [sp, 0x14]
	bl FillWindowPixelBuffer
	mov r1, r9
	str r1, [sp]
	mov r0, r10
	str r0, [sp, 0x4]
	mov r1, r8
	str r1, [sp, 0x8]
	lsls r4, 24
	asrs r4, 24
	str r4, [sp, 0xC]
	str r7, [sp, 0x10]
	adds r0, r5, 0
	movs r1, 0x1
	adds r2, r6, 0
	ldr r3, [sp, 0x14]
	bl AddTextPrinterParameterized4
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801AB68

	thumb_func_start sub_801ABDC
sub_801ABDC: @ 801ABDC
	push {r4-r6,lr}
	sub sp, 0x4
	adds r4, r0, 0
	adds r6, r1, 0
	adds r5, r2, 0
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _0801ABF4
	cmp r0, 0x1
	beq _0801AC22
	b _0801AC36
_0801ABF4:
	movs r0, 0
	movs r1, 0x1
	movs r2, 0xD
	bl sub_8098858
	str r5, [sp]
	movs r0, 0
	adds r1, r6, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_801AB68
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _0801AC36
_0801AC22:
	movs r0, 0
	bl IsTextPrinterActive
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	bne _0801AC36
	strh r0, [r4]
	movs r0, 0x1
	b _0801AC38
_0801AC36:
	movs r0, 0
_0801AC38:
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801ABDC

	thumb_func_start sub_801AC40
sub_801AC40: @ 801AC40
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_801AC40

	thumb_func_start sub_801AC54
sub_801AC54: @ 801AC54
	push {r4,lr}
	sub sp, 0xC
	ldr r1, =gMain
	movs r2, 0x87
	lsls r2, 3
	adds r0, r1, r2
	ldrb r0, [r0]
	adds r2, r1, 0
	cmp r0, 0x33
	bls _0801AC6A
	b _0801AFAE
_0801AC6A:
	lsls r0, 2
	ldr r1, =_0801AC7C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801AC7C:
	.4byte _0801AD4C
	.4byte _0801ADFC
	.4byte _0801AE24
	.4byte _0801AE48
	.4byte _0801AE98
	.4byte _0801AFAE
	.4byte _0801AF7C
	.4byte _0801AF58
	.4byte _0801AF7C
	.4byte _0801AF98
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AFAE
	.4byte _0801AF24
	.4byte _0801AF40
_0801AD4C:
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	ldr r4, =gUnknown_02022C6C
	movs r0, 0x4
	bl AllocZeroed
	str r0, [r4]
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl ResetTasks
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082F0DD0
	movs r0, 0
	movs r2, 0x1
	bl InitBgsFromTemplates
	bl reset_temp_tile_data_buffers
	ldr r0, =gUnknown_082F0DD4
	bl InitWindows
	lsls r0, 16
	cmp r0, 0
	bne _0801AD8C
	b _0801AFC2
_0801AD8C:
	bl DeactivateAllTextPrinters
	movs r0, 0
	bl ClearWindowTilemap
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r0, 0x1E
	str r0, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	movs r0, 0
	movs r1, 0x1
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx
	movs r0, 0
	movs r1, 0x1
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx_
	bl sub_819789C
	ldr r0, =sub_801AC40
	bl SetVBlankCallback
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _0801AF8A
	.pool
_0801ADFC:
	ldr r0, =gUnknown_02022C6C
	ldr r0, [r0]
	ldr r1, =gText_CommStandbyAwaitingOtherPlayer
	movs r2, 0
	bl sub_801ABDC
	cmp r0, 0
	bne _0801AE0E
	b _0801AFAE
_0801AE0E:
	ldr r1, =gMain
	movs r2, 0x87
	lsls r2, 3
	adds r1, r2
	b _0801AF8A
	.pool
_0801AE24:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	movs r0, 0
	bl ShowBg
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _0801AF8A
	.pool
_0801AE48:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	beq _0801AE54
	b _0801AFAE
_0801AE54:
	ldr r4, =gBlockSendBuffer
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x20
	bl memset
	ldr r0, =gSelectedOrderFromParty
	ldrb r1, [r0]
	ldrb r0, [r0, 0x1]
	cmn r1, r0
	bne _0801AE78
	movs r0, 0x52
	b _0801AE7A
	.pool
_0801AE78:
	movs r0, 0x51
_0801AE7A:
	strb r0, [r4]
	ldr r1, =gBlockSendBuffer
	movs r0, 0
	movs r2, 0x20
	bl SendBlock
	ldr r1, =gMain
	movs r2, 0x87
	lsls r2, 3
	adds r1, r2
	b _0801AF8A
	.pool
_0801AE98:
	bl GetBlockReceivedStatus
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3
	beq _0801AEA6
	b _0801AFAE
_0801AEA6:
	ldr r1, =gBlockRecvBuffer
	ldrh r0, [r1]
	cmp r0, 0x51
	bne _0801AEE0
	movs r2, 0x80
	lsls r2, 1
	adds r0, r1, r2
	ldrh r0, [r0]
	cmp r0, 0x51
	bne _0801AEE0
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	movs r1, 0x32
	b _0801AF16
	.pool
_0801AEE0:
	bl sub_800AC34
	ldr r4, =gBlockRecvBuffer
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r0, 16
	adds r0, r4
	ldrh r0, [r0]
	cmp r0, 0x52
	bne _0801AF0C
	ldr r0, =gMain
	movs r2, 0x87
	lsls r2, 3
	adds r0, r2
	movs r1, 0x6
	b _0801AF16
	.pool
_0801AF0C:
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	movs r1, 0x8
_0801AF16:
	strb r1, [r0]
	bl ResetBlockReceivedFlags
	b _0801AFAE
	.pool
_0801AF24:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	bne _0801AFAE
	bl sub_800ADF8
	ldr r1, =gMain
	movs r2, 0x87
	lsls r2, 3
	adds r1, r2
	b _0801AF8A
	.pool
_0801AF40:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801AFAE
	ldr r0, =sub_801AAD4
	bl SetMainCallback2
	b _0801AFAE
	.pool
_0801AF58:
	ldr r0, =gUnknown_02022C6C
	ldr r0, [r0]
	ldr r1, =gText_RefusedBattle
	movs r2, 0x1
	bl sub_801ABDC
	cmp r0, 0
	beq _0801AFAE
	ldr r0, =CB2_ReturnToField
	bl SetMainCallback2
	b _0801AFAE
	.pool
_0801AF7C:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801AFAE
	movs r0, 0x87
	lsls r0, 3
	adds r1, r2, r0
_0801AF8A:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0801AFAE
	.pool
_0801AF98:
	ldr r0, =gUnknown_02022C6C
	ldr r0, [r0]
	ldr r1, =gText_BattleWasRefused
	movs r2, 0x1
	bl sub_801ABDC
	cmp r0, 0
	beq _0801AFAE
	ldr r0, =CB2_ReturnToField
	bl SetMainCallback2
_0801AFAE:
	bl RunTasks
	bl RunTextPrinters
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
_0801AFC2:
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801AC54

@void sub_801AFD8() {
@	CpuFill32(0, &gSaveBlock1Ptr->field_322C, 219);
@	sub_801B180();
@	sub_811F8BC();
@}
	thumb_func_start sub_801AFD8
sub_801AFD8: @ 801AFD8
	push {lr}
	sub sp, 0x4
	movs r0, 0
	str r0, [sp]
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x0000322c
	adds r1, r0
	ldr r2, =0x050000db
	mov r0, sp
	bl CpuSet
	bl sub_801B180
	bl sub_811F8BC
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801AFD8

	thumb_func_start sub_801B00C
sub_801B00C: @ 801B00C
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003230
	adds r0, r1
	bx lr
	.pool
	thumb_func_end sub_801B00C

	thumb_func_start sav1_get_mevent_buffer_1
sav1_get_mevent_buffer_1: @ 801B020
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000033f0
	adds r0, r1
	bx lr
	.pool
	thumb_func_end sav1_get_mevent_buffer_1

	thumb_func_start sav1_get_mevent_buffer_2
sav1_get_mevent_buffer_2: @ 801B034
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	movs r1, 0xD5
	lsls r1, 6
	adds r0, r1
	bx lr
	.pool
	thumb_func_end sav1_get_mevent_buffer_2

	thumb_func_start GetSaveBlock1Field356C
GetSaveBlock1Field356C: @ 801B044
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x0000356c
	adds r0, r1
	bx lr
	.pool
	thumb_func_end GetSaveBlock1Field356C

	thumb_func_start GetSaveBlock1Field3564
GetSaveBlock1Field3564: @ 801B058
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003564
	adds r0, r1
	bx lr
	.pool
	thumb_func_end GetSaveBlock1Field3564

	thumb_func_start sub_801B06C
sub_801B06C: @ 801B06C
	push {lr}
	bl sub_801B14C
	pop {r0}
	bx r0
	thumb_func_end sub_801B06C

	thumb_func_start sub_801B078
sub_801B078: @ 801B078
	push {r4-r7,lr}
	adds r7, r0, 0
	bl sub_801B114
	cmp r0, 0
	beq _0801B0C4
	bl sub_801B14C
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	ldr r5, =0x00003230
	adds r0, r5
	movs r6, 0xDE
	lsls r6, 1
	adds r1, r7, 0
	adds r2, r6, 0
	bl memcpy
	ldr r0, [r4]
	adds r0, r5
	adds r1, r6, 0
	bl CalcCRC16WithTable
	ldr r1, [r4]
	ldr r2, =0x0000322c
	adds r1, r2
	lsls r0, 16
	lsrs r0, 16
	str r0, [r1]
	movs r0, 0x1
	b _0801B0C6
	.pool
_0801B0C4:
	movs r0, 0
_0801B0C6:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_801B078

	thumb_func_start sub_801B0CC
sub_801B0CC: @ 801B0CC
	push {r4,lr}
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	ldr r1, =0x00003230
	adds r0, r1
	movs r1, 0xDE
	lsls r1, 1
	bl CalcCRC16WithTable
	lsls r0, 16
	lsrs r0, 16
	ldr r4, [r4]
	ldr r2, =0x0000322c
	adds r1, r4, r2
	ldr r1, [r1]
	cmp r0, r1
	bne _0801B10C
	ldr r1, =0x00003230
	adds r0, r4, r1
	bl sub_801B114
	cmp r0, 0
	beq _0801B10C
	movs r0, 0x1
	b _0801B10E
	.pool
_0801B10C:
	movs r0, 0
_0801B10E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801B0CC

	thumb_func_start sub_801B114
sub_801B114: @ 801B114
	push {lr}
	ldrh r0, [r0]
	cmp r0, 0
	beq _0801B120
	movs r0, 0x1
	b _0801B122
_0801B120:
	movs r0, 0
_0801B122:
	pop {r1}
	bx r1
	thumb_func_end sub_801B114

	thumb_func_start sub_801B128
sub_801B128: @ 801B128
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003230
	adds r0, r1
	ldrb r0, [r0, 0x2]
	cmp r0, 0
	beq _0801B144
	movs r0, 0x1
	b _0801B146
	.pool
_0801B144:
	movs r0, 0
_0801B146:
	pop {r1}
	bx r1
	thumb_func_end sub_801B128

	thumb_func_start sub_801B14C
sub_801B14C: @ 801B14C
	push {r4,lr}
	sub sp, 0x4
	movs r4, 0
	str r4, [sp]
	bl sub_801B00C
	adds r1, r0, 0
	ldr r2, =0x0500006f
	mov r0, sp
	bl CpuSet
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x0000322c
	adds r0, r1
	str r4, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B14C

	thumb_func_start sub_801B180
sub_801B180: @ 801B180
	push {lr}
	sub sp, 0x4
	movs r0, 0
	str r0, [sp]
	bl GetSaveBlock1Field356C
	adds r1, r0, 0
	ldr r2, =0x05000001
	mov r0, sp
	bl CpuSet
	bl sub_801DBC0
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B180

	thumb_func_start sub_801B1A4
sub_801B1A4: @ 801B1A4
	push {r4,r5,lr}
	adds r5, r0, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003230
	adds r4, r0, r1
	bl sub_801B0CC
	cmp r0, 0
	bne _0801B1C4
_0801B1B8:
	movs r0, 0
	b _0801B1DC
	.pool
_0801B1C4:
	movs r2, 0
	ldr r3, =0x000001bb
_0801B1C8:
	adds r0, r4, r2
	adds r1, r5, r2
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	bne _0801B1B8
	adds r2, 0x1
	cmp r2, r3
	bls _0801B1C8
	movs r0, 0x1
_0801B1DC:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801B1A4

	thumb_func_start sub_801B1E8
sub_801B1E8: @ 801B1E8
	push {lr}
	bl sub_801B330
	bl sub_801B368
	bl sub_801B9F8
	bl ClearRamScript
	bl sub_809D4D8
	bl sub_809D570
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000bec
	adds r0, r1
	bl ClearEReaderTrainer
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B1E8

	thumb_func_start sub_801B21C
sub_801B21C: @ 801B21C
	push {r4-r7,lr}
	adds r7, r0, 0
	bl sub_801B2CC
	cmp r0, 0
	beq _0801B274
	bl sub_801B1E8
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	ldr r5, =0x000033f0
	adds r0, r5
	movs r6, 0xA6
	lsls r6, 1
	adds r1, r7, 0
	adds r2, r6, 0
	bl memcpy
	ldr r0, [r4]
	adds r0, r5
	adds r1, r6, 0
	bl CalcCRC16WithTable
	ldr r1, [r4]
	ldr r3, =0x000033ec
	adds r2, r1, r3
	lsls r0, 16
	lsrs r0, 16
	str r0, [r2]
	movs r0, 0xD5
	lsls r0, 6
	adds r2, r1, r0
	adds r1, r5
	ldrh r0, [r1, 0x2]
	strh r0, [r2, 0x6]
	movs r0, 0x1
	b _0801B276
	.pool
_0801B274:
	movs r0, 0
_0801B276:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_801B21C

	thumb_func_start sub_801B27C
sub_801B27C: @ 801B27C
	push {r4,r5,lr}
	ldr r5, =gSaveBlock1Ptr
	ldr r0, [r5]
	ldr r1, =0x000033ec
	adds r4, r0, r1
	adds r1, 0x4
	adds r0, r1
	movs r1, 0xA6
	lsls r1, 1
	bl CalcCRC16WithTable
	lsls r0, 16
	lsrs r0, 16
	ldr r1, [r4]
	cmp r1, r0
	bne _0801B2C4
	ldr r0, [r5]
	ldr r1, =0x000033f0
	adds r0, r1
	bl sub_801B2CC
	cmp r0, 0
	beq _0801B2C4
	bl sub_80991F8
	cmp r0, 0
	beq _0801B2C4
	movs r0, 0x1
	b _0801B2C6
	.pool
_0801B2C4:
	movs r0, 0
_0801B2C6:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_801B27C

	thumb_func_start sub_801B2CC
sub_801B2CC: @ 801B2CC
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2]
	cmp r0, 0
	beq _0801B302
	ldrb r1, [r2, 0x8]
	lsls r0, r1, 30
	lsrs r0, 30
	cmp r0, 0x2
	bhi _0801B302
	movs r0, 0xC0
	ands r0, r1
	cmp r0, 0
	beq _0801B2F0
	cmp r0, 0x40
	beq _0801B2F0
	cmp r0, 0x80
	bne _0801B302
_0801B2F0:
	lsls r0, r1, 26
	lsrs r0, 28
	cmp r0, 0x7
	bhi _0801B302
	ldrb r0, [r2, 0x9]
	cmp r0, 0x7
	bhi _0801B302
	movs r0, 0x1
	b _0801B304
_0801B302:
	movs r0, 0
_0801B304:
	pop {r1}
	bx r1
	thumb_func_end sub_801B2CC

	thumb_func_start sub_801B308
sub_801B308: @ 801B308
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000033f0
	adds r0, r1
	ldrb r1, [r0, 0x8]
	movs r0, 0xC0
	ands r0, r1
	cmp r0, 0
	beq _0801B328
	movs r0, 0x1
	b _0801B32A
	.pool
_0801B328:
	movs r0, 0
_0801B32A:
	pop {r1}
	bx r1
	thumb_func_end sub_801B308

	thumb_func_start sub_801B330
sub_801B330: @ 801B330
	push {r4,r5,lr}
	sub sp, 0x4
	movs r5, 0
	str r5, [sp]
	ldr r4, =gSaveBlock1Ptr
	ldr r1, [r4]
	ldr r0, =0x000033f0
	adds r1, r0
	ldr r2, =0x05000053
	mov r0, sp
	bl CpuSet
	ldr r0, [r4]
	ldr r1, =0x000033ec
	adds r0, r1
	str r5, [r0]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B330

	thumb_func_start sub_801B368
sub_801B368: @ 801B368
	push {r4,lr}
	sub sp, 0x4
	movs r4, 0
	str r4, [sp]
	bl sav1_get_mevent_buffer_2
	adds r1, r0, 0
	ldr r2, =0x05000009
	mov r0, sp
	bl CpuSet
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x0000353c
	adds r0, r1
	str r4, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B368

	thumb_func_start sub_801B39C
sub_801B39C: @ 801B39C
	push {lr}
	bl sub_801B27C
	cmp r0, 0
	bne _0801B3AA
	movs r0, 0
	b _0801B3B4
_0801B3AA:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000033f0
	adds r0, r1
	ldrh r0, [r0]
_0801B3B4:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801B39C

	thumb_func_start sub_801B3C0
sub_801B3C0: @ 801B3C0
	push {lr}
	adds r2, r0, 0
	ldrb r1, [r2, 0x8]
	movs r0, 0xC0
	ands r0, r1
	cmp r0, 0x40
	bne _0801B3D4
	movs r0, 0x3F
	ands r0, r1
	strb r0, [r2, 0x8]
_0801B3D4:
	pop {r0}
	bx r0
	thumb_func_end sub_801B3C0

	thumb_func_start sub_801B3D8
sub_801B3D8: @ 801B3D8
	push {lr}
	lsls r0, 16
	ldr r1, =0xfc180000
	adds r0, r1
	lsrs r0, 16
	cmp r0, 0x13
	bls _0801B3F0
	movs r0, 0
	b _0801B3F2
	.pool
_0801B3F0:
	movs r0, 0x1
_0801B3F2:
	pop {r1}
	bx r1
	thumb_func_end sub_801B3D8

	thumb_func_start sub_801B3F8
sub_801B3F8: @ 801B3F8
	push {r4,lr}
	bl sub_801B39C
	lsls r0, 16
	lsrs r4, r0, 16
	adds r0, r4, 0
	bl sub_801B3D8
	cmp r0, 0
	beq _0801B430
	ldr r1, =gUnknown_082F0DE8
	ldr r2, =0xfffffc18
	adds r0, r4, r2
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0801B430
	movs r0, 0x1
	b _0801B432
	.pool
_0801B430:
	movs r0, 0
_0801B432:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801B3F8

	thumb_func_start sub_801B438
sub_801B438: @ 801B438
	push {lr}
	movs r3, 0
	cmp r3, r1
	bge _0801B45A
	adds r2, r0, 0
	adds r2, 0x8
_0801B444:
	ldrh r0, [r2, 0xE]
	cmp r0, 0
	beq _0801B452
	ldrh r0, [r2]
	cmp r0, 0
	beq _0801B452
	adds r3, 0x1
_0801B452:
	adds r2, 0x2
	subs r1, 0x1
	cmp r1, 0
	bne _0801B444
_0801B45A:
	adds r0, r3, 0
	pop {r1}
	bx r1
	thumb_func_end sub_801B438

	thumb_func_start sub_801B460
sub_801B460: @ 801B460
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	movs r1, 0
	cmp r1, r2
	bge _0801B49A
	ldrh r6, [r4, 0x2]
	movs r0, 0x16
	adds r0, r5
	mov r12, r0
_0801B474:
	lsls r3, r1, 1
	mov r7, r12
	ldrh r0, [r7]
	cmp r0, r6
	beq _0801B48C
	adds r0, r5, 0
	adds r0, 0x8
	adds r0, r3
	ldrh r0, [r0]
	ldrh r3, [r4]
	cmp r0, r3
	bne _0801B490
_0801B48C:
	movs r0, 0x1
	b _0801B49C
_0801B490:
	movs r7, 0x2
	add r12, r7
	adds r1, 0x1
	cmp r1, r2
	blt _0801B474
_0801B49A:
	movs r0, 0
_0801B49C:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_801B460

	thumb_func_start sub_801B4A4
sub_801B4A4: @ 801B4A4
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0x2]
	cmp r0, 0
	beq _0801B4C4
	ldrh r1, [r1]
	cmp r1, 0
	beq _0801B4C4
	ldr r0, =0x0000019b
	cmp r1, r0
	bhi _0801B4C4
	movs r0, 0x1
	b _0801B4C6
	.pool
_0801B4C4:
	movs r0, 0
_0801B4C6:
	pop {r1}
	bx r1
	thumb_func_end sub_801B4A4

	thumb_func_start sub_801B4CC
sub_801B4CC: @ 801B4CC
	push {lr}
	bl sub_801B27C
	cmp r0, 0
	beq _0801B500
	ldr r0, =gSaveBlock1Ptr
	ldr r3, [r0]
	ldr r0, =0x000033f0
	adds r2, r3, r0
	ldrb r1, [r2, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _0801B500
	movs r1, 0xD5
	lsls r1, 6
	adds r0, r3, r1
	ldrb r1, [r2, 0x9]
	bl sub_801B438
	b _0801B502
	.pool
_0801B500:
	movs r0, 0
_0801B502:
	pop {r1}
	bx r1
	thumb_func_end sub_801B4CC

	thumb_func_start sub_801B508
sub_801B508: @ 801B508
	push {r4-r6,lr}
	adds r5, r0, 0
	ldr r6, =gSaveBlock1Ptr
	ldr r0, [r6]
	ldr r1, =0x000033f0
	adds r0, r1
	ldrb r4, [r0, 0x9]
	adds r0, r5, 0
	bl sub_801B4A4
	cmp r0, 0
	beq _0801B572
	ldr r0, [r6]
	movs r1, 0xD5
	lsls r1, 6
	adds r0, r1
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_801B460
	cmp r0, 0
	beq _0801B54C
	b _0801B572
	.pool
_0801B540:
	ldrh r0, [r5, 0x2]
	strh r0, [r1]
	ldrh r0, [r5]
	strh r0, [r2]
	movs r0, 0x1
	b _0801B574
_0801B54C:
	movs r3, 0
	cmp r3, r4
	bge _0801B572
	ldr r0, [r6]
	ldr r6, =0x00003548
	adds r2, r0, r6
	adds r6, 0xE
	adds r1, r0, r6
_0801B55C:
	ldrh r0, [r2, 0xE]
	cmp r0, 0
	bne _0801B568
	ldrh r0, [r2]
	cmp r0, 0
	beq _0801B540
_0801B568:
	adds r2, 0x2
	adds r1, 0x2
	adds r3, 0x1
	cmp r3, r4
	blt _0801B55C
_0801B572:
	movs r0, 0
_0801B574:
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801B508

	thumb_func_start sub_801B580
sub_801B580: @ 801B580
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r5, r0, 0
	adds r4, r1, 0
	movs r0, 0
	str r0, [sp]
	ldr r2, =0x05000019
	mov r0, sp
	adds r1, r5, 0
	bl CpuSet
	ldr r0, =0x00000101
	str r0, [r5]
	movs r0, 0x1
	strh r0, [r5, 0x4]
	str r0, [r5, 0x8]
	cmp r4, 0
	beq _0801B5C0
	movs r0, 0x5
	strh r0, [r5, 0xC]
	ldr r0, =0x00000201
	b _0801B5C8
	.pool
_0801B5C0:
	movs r0, 0x4
	strh r0, [r5, 0xC]
	movs r0, 0x80
	lsls r0, 2
_0801B5C8:
	str r0, [r5, 0x10]
	bl sub_801B27C
	cmp r0, 0
	beq _0801B5FC
	bl sav1_get_mevent_buffer_1
	ldrh r0, [r0]
	strh r0, [r5, 0x14]
	bl sav1_get_mevent_buffer_2
	adds r1, r5, 0
	adds r1, 0x20
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	bl sav1_get_mevent_buffer_1
	ldrb r1, [r0, 0x9]
	adds r0, r5, 0
	adds r0, 0x44
	strb r1, [r0]
	b _0801B5FE
_0801B5FC:
	strh r0, [r5, 0x14]
_0801B5FE:
	adds r4, r5, 0
	adds r4, 0x4C
	ldr r0, =gSaveBlock2Ptr
	mov r8, r0
	adds r6, r5, 0
	adds r6, 0x45
	adds r7, r5, 0
	adds r7, 0x50
	movs r1, 0x5C
	adds r1, r5
	mov r9, r1
	movs r2, 0x60
	adds r2, r5
	mov r10, r2
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r3, =0x00003564
	adds r2, r0, r3
	adds r1, r5, 0
	adds r1, 0x16
	movs r3, 0x3
_0801B628:
	ldrh r0, [r2]
	strh r0, [r1]
	adds r2, 0x2
	adds r1, 0x2
	subs r3, 0x1
	cmp r3, 0
	bge _0801B628
	mov r0, r8
	ldr r1, [r0]
	adds r1, 0xA
	adds r0, r4, 0
	bl CopyTrainerId
	mov r2, r8
	ldr r1, [r2]
	adds r0, r6, 0
	bl StringCopy
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r3, =0x00002bb0
	adds r2, r0, r3
	adds r1, r7, 0
	movs r3, 0x5
_0801B658:
	ldrh r0, [r2]
	strh r0, [r1]
	adds r2, 0x2
	adds r1, 0x2
	subs r3, 0x1
	cmp r3, 0
	bge _0801B658
	ldr r1, =RomHeaderGameCode
	mov r0, r9
	movs r2, 0x4
	bl memcpy
	ldr r0, =RomHeaderSoftwareVersion
	ldrb r0, [r0]
	mov r4, r10
	strb r0, [r4]
	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 sub_801B580

	thumb_func_start sub_801B6A0
sub_801B6A0: @ 801B6A0
	push {r4,lr}
	adds r2, r0, 0
	adds r4, r1, 0
	ldr r1, [r2]
	ldr r0, =0x00000101
	cmp r1, r0
	bne _0801B6DC
	ldrh r1, [r2, 0x4]
	movs r3, 0x1
	adds r0, r3, 0
	ands r0, r1
	cmp r0, 0
	beq _0801B6DC
	ldr r0, [r2, 0x8]
	ands r0, r3
	cmp r0, 0
	beq _0801B6DC
	cmp r4, 0
	bne _0801B6E4
	ldrh r1, [r2, 0xC]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _0801B6DC
	ldr r0, [r2, 0x10]
	movs r1, 0xE0
	lsls r1, 2
	ands r0, r1
	cmp r0, 0
	bne _0801B6E4
_0801B6DC:
	movs r0, 0
	b _0801B6E6
	.pool
_0801B6E4:
	movs r0, 0x1
_0801B6E6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801B6A0

	thumb_func_start sub_801B6EC
sub_801B6EC: @ 801B6EC
	push {lr}
	ldrh r1, [r1, 0x14]
	cmp r1, 0
	bne _0801B6F8
	movs r0, 0
	b _0801B704
_0801B6F8:
	ldrh r0, [r0]
	cmp r0, r1
	beq _0801B702
	movs r0, 0x2
	b _0801B704
_0801B702:
	movs r0, 0x1
_0801B704:
	pop {r1}
	bx r1
	thumb_func_end sub_801B6EC

	thumb_func_start sub_801B708
sub_801B708: @ 801B708
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r4, 0
	adds r5, 0x20
	adds r4, 0x44
	ldrb r1, [r4]
	adds r0, r5, 0
	bl sub_801B438
	ldrb r2, [r4]
	subs r4, r2, r0
	cmp r4, 0
	bne _0801B728
	movs r0, 0x1
	b _0801B742
_0801B728:
	adds r0, r5, 0
	adds r1, r6, 0
	bl sub_801B460
	cmp r0, 0
	beq _0801B738
	movs r0, 0x3
	b _0801B742
_0801B738:
	cmp r4, 0x1
	beq _0801B740
	movs r0, 0x2
	b _0801B742
_0801B740:
	movs r0, 0x4
_0801B742:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801B708

	thumb_func_start sub_801B748
sub_801B748: @ 801B748
	push {r4,lr}
	movs r3, 0
	adds r2, r0, 0
	adds r2, 0x16
_0801B750:
	ldrh r0, [r2]
	ldrh r4, [r1]
	cmp r0, r4
	beq _0801B75C
	movs r0, 0
	b _0801B768
_0801B75C:
	adds r1, 0x2
	adds r2, 0x2
	adds r3, 0x1
	cmp r3, 0x3
	ble _0801B750
	movs r0, 0x1
_0801B768:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801B748

	thumb_func_start sub_801B770
sub_801B770: @ 801B770
	push {lr}
	adds r2, r0, 0
	adds r2, 0x20
	adds r0, 0x44
	ldrb r1, [r0]
	adds r0, r2, 0
	bl sub_801B438
	pop {r1}
	bx r1
	thumb_func_end sub_801B770

	thumb_func_start sub_801B784
sub_801B784: @ 801B784
	push {lr}
	adds r2, r0, 0
	cmp r1, 0x4
	bhi _0801B7D0
	lsls r0, r1, 2
	ldr r1, =_0801B79C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801B79C:
	.4byte _0801B7B0
	.4byte _0801B7B4
	.4byte _0801B7B8
	.4byte _0801B7BC
	.4byte _0801B7C8
_0801B7B0:
	ldrh r0, [r2, 0x20]
	b _0801B7D2
_0801B7B4:
	ldrh r0, [r2, 0x22]
	b _0801B7D2
_0801B7B8:
	ldrh r0, [r2, 0x24]
	b _0801B7D2
_0801B7BC:
	adds r0, r2, 0
	bl sub_801B770
	lsls r0, 16
	lsrs r0, 16
	b _0801B7D2
_0801B7C8:
	adds r0, r2, 0
	adds r0, 0x44
	ldrb r0, [r0]
	b _0801B7D2
_0801B7D0:
	movs r0, 0
_0801B7D2:
	pop {r1}
	bx r1
	thumb_func_end sub_801B784

	thumb_func_start sub_801B7D8
sub_801B7D8: @ 801B7D8
	push {r4,lr}
	adds r4, r0, 0
	ldr r2, =gSaveBlock1Ptr
	ldr r0, [r2]
	ldr r1, =0x000033f0
	adds r0, r1
	ldrb r1, [r0, 0x8]
	movs r0, 0x3
	ands r0, r1
	adds r3, r2, 0
	cmp r0, 0x2
	bne _0801B850
	movs r2, 0
	cmp r4, 0x4
	bhi _0801B83A
	lsls r0, r4, 2
	ldr r1, =_0801B80C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801B80C:
	.4byte _0801B820
	.4byte _0801B828
	.4byte _0801B834
	.4byte _0801B83A
	.4byte _0801B83A
_0801B820:
	ldr r0, [r3]
	movs r1, 0xD5
	lsls r1, 6
	b _0801B838
_0801B828:
	ldr r0, [r3]
	ldr r1, =0x00003542
	b _0801B838
	.pool
_0801B834:
	ldr r0, [r3]
	ldr r1, =0x00003544
_0801B838:
	adds r2, r0, r1
_0801B83A:
	cmp r2, 0
	beq _0801B850
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =0x000003e7
	cmp r0, r1
	bls _0801B850
	strh r1, [r2]
_0801B850:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B7D8

	thumb_func_start mevent_081445C0
mevent_081445C0: @ 801B860
	push {lr}
	cmp r0, 0x4
	bhi _0801B938
	lsls r0, 2
	ldr r1, =_0801B874
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801B874:
	.4byte _0801B888
	.4byte _0801B8AC
	.4byte _0801B8D0
	.4byte _0801B8F4
	.4byte _0801B918
_0801B888:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r1, =0x000033f0
	adds r0, r2, r1
	ldrb r1, [r0, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x2
	bne _0801B938
	movs r1, 0xD5
	lsls r1, 6
	adds r0, r2, r1
	ldrh r0, [r0]
	b _0801B93A
	.pool
_0801B8AC:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r1, =0x000033f0
	adds r0, r2, r1
	ldrb r1, [r0, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x2
	bne _0801B938
	movs r1, 0xD5
	lsls r1, 6
	adds r0, r2, r1
	ldrh r0, [r0, 0x2]
	b _0801B93A
	.pool
_0801B8D0:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r1, =0x000033f0
	adds r0, r2, r1
	ldrb r1, [r0, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x2
	bne _0801B938
	movs r1, 0xD5
	lsls r1, 6
	adds r0, r2, r1
	ldrh r0, [r0, 0x4]
	b _0801B93A
	.pool
_0801B8F4:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000033f0
	adds r0, r1
	ldrb r1, [r0, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _0801B938
	bl sub_801B4CC
	lsls r0, 16
	lsrs r0, 16
	b _0801B93A
	.pool
_0801B918:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000033f0
	adds r2, r0, r1
	ldrb r1, [r2, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _0801B938
	ldrb r0, [r2, 0x9]
	b _0801B93A
	.pool
_0801B938:
	movs r0, 0
_0801B93A:
	pop {r1}
	bx r1
	thumb_func_end mevent_081445C0

	thumb_func_start sub_801B940
sub_801B940: @ 801B940
	ldr r1, =gUnknown_02022C70
	movs r0, 0
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_801B940

	thumb_func_start sub_801B94C
sub_801B94C: @ 801B94C
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r0, 16
	adds r4, r0, 0
	ldr r5, =gUnknown_02022C70
	movs r0, 0
	str r0, [r5]
	cmp r4, 0
	beq _0801B98A
	bl sub_801B27C
	cmp r0, 0
	beq _0801B988
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000033f0
	adds r0, r1
	ldrh r0, [r0]
	cmp r0, r4
	bne _0801B988
	movs r0, 0x1
	str r0, [r5]
	b _0801B98A
	.pool
_0801B988:
	movs r0, 0
_0801B98A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_801B94C

	thumb_func_start sub_801B990
sub_801B990: @ 801B990
	push {lr}
	adds r2, r0, 0
	ldr r0, =gUnknown_02022C70
	ldr r0, [r0]
	cmp r0, 0
	beq _0801B9EC
	cmp r2, 0x1
	beq _0801B9DC
	cmp r2, 0x1
	bcc _0801B9C0
	cmp r2, 0x2
	bne _0801B9EC
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r0, =0x00003584
	adds r2, r0
	movs r0, 0x2
	b _0801B9CA
	.pool
_0801B9C0:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r0, =0x00003570
	adds r2, r0
	movs r0, 0
_0801B9CA:
	movs r3, 0x5
	bl sub_801BA8C
	b _0801B9EC
	.pool
_0801B9DC:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r0, =0x00003570
	adds r2, r0
	movs r0, 0x1
	movs r3, 0x5
	bl sub_801BA8C
_0801B9EC:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B990

	thumb_func_start sub_801B9F8
sub_801B9F8: @ 801B9F8
	push {lr}
	sub sp, 0x4
	movs r0, 0
	str r0, [sp]
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x00003570
	adds r1, r0
	ldr r2, =0x0500000a
	mov r0, sp
	bl CpuSet
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801B9F8

	thumb_func_start sub_801BA24
sub_801BA24: @ 801BA24
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	movs r1, 0
	cmp r1, r2
	bge _0801BA46
	ldr r0, [r4]
	cmp r0, r5
	beq _0801BA46
	adds r3, r4, 0
_0801BA38:
	adds r3, 0x4
	adds r1, 0x1
	cmp r1, r2
	bge _0801BA46
	ldr r0, [r3]
	cmp r0, r5
	bne _0801BA38
_0801BA46:
	cmp r1, r2
	bne _0801BA68
	subs r3, r1, 0x1
	cmp r3, 0
	ble _0801BA62
	lsls r0, r3, 2
	subs r0, 0x4
	adds r2, r0, r4
_0801BA56:
	ldr r0, [r2]
	str r0, [r2, 0x4]
	subs r2, 0x4
	subs r3, 0x1
	cmp r3, 0
	bgt _0801BA56
_0801BA62:
	str r5, [r4]
	movs r0, 0x1
	b _0801BA84
_0801BA68:
	adds r3, r1, 0
	cmp r3, 0
	ble _0801BA80
	lsls r0, r3, 2
	subs r0, 0x4
	adds r2, r0, r4
_0801BA74:
	ldr r0, [r2]
	str r0, [r2, 0x4]
	subs r2, 0x4
	subs r3, 0x1
	cmp r3, 0
	bgt _0801BA74
_0801BA80:
	str r5, [r4]
	movs r0, 0
_0801BA84:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_801BA24

	thumb_func_start sub_801BA8C
sub_801BA8C: @ 801BA8C
	push {r4,lr}
	adds r4, r0, 0
	adds r0, r1, 0
	adds r1, r2, 0
	adds r2, r3, 0
	bl sub_801BA24
	cmp r0, 0
	beq _0801BAA4
	adds r0, r4, 0
	bl sub_801B7D8
_0801BAA4:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801BA8C

	thumb_func_start sub_801BAAC
sub_801BAAC: @ 801BAAC
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	cmp r5, 0
	beq _0801BAC8
	cmp r6, 0
	beq _0801BAC8
	ldr r7, =gUnknown_02022C74
	ldr r0, =0x0000145c
	bl AllocZeroed
	str r0, [r7]
	cmp r0, 0
	bne _0801BAD4
_0801BAC8:
	movs r0, 0
	b _0801BB3E
	.pool
_0801BAD4:
	movs r4, 0xA6
	lsls r4, 1
	adds r1, r5, 0
	adds r2, r4, 0
	bl memcpy
	ldr r1, [r7]
	adds r1, r4
	adds r0, r6, 0
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldr r2, [r7]
	ldrb r1, [r2, 0x8]
	lsls r0, r1, 26
	lsrs r0, 28
	cmp r0, 0x7
	bls _0801BB06
	movs r0, 0x3D
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x8]
_0801BB06:
	ldr r2, [r7]
	ldrb r1, [r2, 0x8]
	lsls r0, r1, 30
	lsrs r0, 30
	cmp r0, 0x2
	bls _0801BB1A
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x8]
_0801BB1A:
	ldr r1, [r7]
	ldrb r0, [r1, 0x9]
	cmp r0, 0x7
	bls _0801BB26
	movs r0, 0
	strb r0, [r1, 0x9]
_0801BB26:
	ldr r0, [r7]
	movs r1, 0xB8
	lsls r1, 1
	adds r2, r0, r1
	ldrb r0, [r0, 0x8]
	lsls r0, 26
	lsrs r0, 28
	lsls r0, 4
	ldr r1, =gUnknown_082F1D60
	adds r0, r1
	str r0, [r2]
	movs r0, 0x1
_0801BB3E:
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801BAAC

	thumb_func_start sub_801BB48
sub_801BB48: @ 801BB48
	push {r4,lr}
	ldr r4, =gUnknown_02022C74
	ldr r0, [r4]
	cmp r0, 0
	beq _0801BB64
	ldr r2, =0x0000145c
	movs r1, 0
	bl memset
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
_0801BB64:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801BB48

	thumb_func_start sub_801BB74
sub_801BB74: @ 801BB74
	push {r4-r6,lr}
	sub sp, 0x24
	ldr r5, =gUnknown_02022C74
	ldr r0, [r5]
	cmp r0, 0
	bne _0801BB8C
	movs r0, 0x1
	negs r0, r0
	b _0801BD98
	.pool
_0801BB8C:
	movs r4, 0xBA
	lsls r4, 1
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0x7
	bls _0801BB9A
	b _0801BD70
_0801BB9A:
	lsls r0, 2
	ldr r1, =_0801BBA8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801BBA8:
	.4byte _0801BBC8
	.4byte _0801BBDA
	.4byte _0801BBE8
	.4byte _0801BC8C
	.4byte _0801BD14
	.4byte _0801BD1A
	.4byte _0801BD34
	.4byte _0801BD3A
_0801BBC8:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _0801BD86
_0801BBDA:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	bne _0801BBE6
	b _0801BD86
_0801BBE6:
	b _0801BD96
_0801BBE8:
	movs r5, 0x1E
	str r5, [sp]
	movs r4, 0x14
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r5, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r5, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	ldr r5, =gUnknown_02022C74
	ldr r0, [r5]
	movs r1, 0xB8
	lsls r1, 1
	adds r0, r1
	ldr r0, [r0]
	ldr r1, [r0, 0x4]
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0x8
	bl decompress_and_copy_tile_data_to_vram
	ldr r4, =gUnknown_082F0E1C
	adds r0, r4, 0
	bl AddWindow
	ldr r1, [r5]
	movs r2, 0xBB
	lsls r2, 1
	adds r1, r2
	strh r0, [r1]
	adds r0, r4, 0
	adds r0, 0x8
	bl AddWindow
	ldr r1, [r5]
	movs r2, 0xBC
	lsls r2, 1
	adds r1, r2
	strh r0, [r1]
	adds r4, 0x10
	adds r0, r4, 0
	bl AddWindow
	ldr r1, [r5]
	movs r2, 0xBD
	lsls r2, 1
	adds r1, r2
	strh r0, [r1]
	b _0801BD86
	.pool
_0801BC8C:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0
	beq _0801BC9A
	b _0801BD96
_0801BC9A:
	movs r0, 0x1
	bl stdpal_get
	movs r1, 0x20
	movs r2, 0x20
	bl LoadPalette
	ldr r2, =gPaletteFade
	ldrb r0, [r2, 0x8]
	movs r1, 0x80
	orrs r0, r1
	strb r0, [r2, 0x8]
	ldr r5, =gUnknown_02022C74
	ldr r0, [r5]
	movs r4, 0xB8
	lsls r4, 1
	adds r0, r4
	ldr r0, [r0]
	ldr r0, [r0, 0xC]
	movs r1, 0x10
	movs r2, 0x20
	bl LoadPalette
	ldr r1, [r5]
	adds r4, r1, r4
	ldr r0, [r4]
	ldr r0, [r0, 0x8]
	ldr r4, =0x0000045c
	adds r1, r4
	bl LZ77UnCompWram
	ldr r1, [r5]
	adds r1, r4
	movs r2, 0x1E
	str r2, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	str r6, [sp, 0x8]
	str r6, [sp, 0xC]
	str r2, [sp, 0x10]
	str r0, [sp, 0x14]
	movs r0, 0x1
	str r0, [sp, 0x18]
	movs r0, 0x8
	str r0, [sp, 0x1C]
	str r6, [sp, 0x20]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyRectToBgTilemapBufferRect
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	b _0801BD86
	.pool
_0801BD14:
	bl sub_801BEF8
	b _0801BD86
_0801BD1A:
	movs r0, 0
	bl sub_801C178
	movs r0, 0x1
	bl sub_801C178
	movs r0, 0x2
	bl sub_801C178
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	b _0801BD86
_0801BD34:
	bl LoadMonIconPalettes
	b _0801BD86
_0801BD3A:
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	ldr r2, =gPaletteFade
	ldrb r1, [r2, 0x8]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x8]
	bl sub_801C4C0
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	bl UpdatePaletteFade
	b _0801BD86
	.pool
_0801BD70:
	bl UpdatePaletteFade
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	bne _0801BD96
	ldr r0, [r5]
	adds r0, r4
	strb r1, [r0]
	movs r0, 0x1
	b _0801BD98
_0801BD86:
	ldr r0, =gUnknown_02022C74
	ldr r1, [r0]
	movs r0, 0xBA
	lsls r0, 1
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_0801BD96:
	movs r0, 0
_0801BD98:
	add sp, 0x24
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801BB74

	thumb_func_start sub_801BDA4
sub_801BDA4: @ 801BDA4
	push {r4,r5,lr}
	sub sp, 0x8
	adds r2, r0, 0
	ldr r5, =gUnknown_02022C74
	ldr r0, [r5]
	cmp r0, 0
	bne _0801BDBC
	movs r0, 0x1
	negs r0, r0
	b _0801BEEC
	.pool
_0801BDBC:
	movs r4, 0xBA
	lsls r4, 1
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0x5
	bls _0801BDCA
	b _0801BEC4
_0801BDCA:
	lsls r0, 2
	ldr r1, =_0801BDD8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801BDD8:
	.4byte _0801BDF0
	.4byte _0801BE02
	.4byte _0801BE0E
	.4byte _0801BE56
	.4byte _0801BE94
	.4byte _0801BE9E
_0801BDF0:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _0801BEDA
_0801BE02:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	beq _0801BEDA
	b _0801BEEA
_0801BE0E:
	movs r5, 0x1E
	str r5, [sp]
	movs r4, 0x14
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r5, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r5, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	b _0801BEDA
_0801BE56:
	movs r0, 0x1
	bl HideBg
	movs r0, 0x2
	bl HideBg
	ldr r4, =gUnknown_02022C74
	ldr r0, [r4]
	movs r1, 0xBD
	lsls r1, 1
	adds r0, r1
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r0, [r4]
	movs r1, 0xBC
	lsls r1, 1
	adds r0, r1
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r0, [r4]
	movs r1, 0xBB
	lsls r1, 1
	adds r0, r1
	ldrb r0, [r0]
	bl RemoveWindow
	b _0801BEDA
	.pool
_0801BE94:
	bl sub_801C61C
	bl FreeMonIconPalettes
	b _0801BEDA
_0801BE9E:
	ldr r0, =gUnknown_02022C60
	ldrb r0, [r0]
	adds r1, r2, 0
	bl sub_80186EC
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	b _0801BEDA
	.pool
_0801BEC4:
	bl UpdatePaletteFade
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	bne _0801BEEA
	ldr r0, [r5]
	adds r0, r4
	strb r1, [r0]
	movs r0, 0x1
	b _0801BEEC
_0801BEDA:
	ldr r0, =gUnknown_02022C74
	ldr r1, [r0]
	movs r0, 0xBA
	lsls r0, 1
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_0801BEEA:
	movs r0, 0
_0801BEEC:
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801BDA4

	thumb_func_start sub_801BEF8
sub_801BEF8: @ 801BEF8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	movs r5, 0
	mov r0, sp
	movs r1, 0
	movs r2, 0x6
	bl memset
	ldr r4, =gUnknown_02022C74
	ldr r1, [r4]
	ldr r2, =0x0000018b
	adds r0, r1, r2
	adds r1, 0xA
	movs r2, 0x28
	bl memcpy
	ldr r0, [r4]
	ldr r3, =0x000001b3
	adds r1, r0, r3
	movs r0, 0xFF
	strb r0, [r1]
	ldr r1, [r4]
	movs r2, 0xDA
	lsls r2, 1
	adds r0, r1, r2
	adds r1, 0x32
	movs r2, 0x28
	bl memcpy
	ldr r0, [r4]
	movs r3, 0xEE
	lsls r3, 1
	adds r0, r3
	movs r1, 0x1
	negs r1, r1
	strb r1, [r0]
	ldr r1, [r4]
	ldr r0, [r1, 0x4]
	ldr r2, =0x000f423f
	cmp r0, r2
	bls _0801BF54
	str r2, [r1, 0x4]
_0801BF54:
	ldr r1, [r4]
	ldr r2, =0x000001dd
	adds r0, r1, r2
	ldr r1, [r1, 0x4]
	movs r2, 0
	movs r3, 0x6
	bl ConvertIntToDecimalStringN
	adds r6, r4, 0
_0801BF66:
	ldr r2, [r6]
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r4, r1, r5
	adds r0, r4, r2
	movs r3, 0xF2
	lsls r3, 1
	adds r0, r3
	adds r1, r2
	adds r1, 0x5A
	movs r2, 0x28
	bl memcpy
	ldr r1, [r6]
	movs r0, 0x83
	lsls r0, 2
	adds r1, r0
	adds r1, r4
	movs r2, 0x1
	negs r2, r2
	adds r7, r2, 0
	movs r0, 0xFF
	strb r0, [r1]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x3
	bls _0801BF66
	ldr r6, =gUnknown_02022C74
	ldr r1, [r6]
	movs r3, 0xA2
	lsls r3, 2
	adds r0, r1, r3
	adds r1, 0xFA
	movs r2, 0x28
	bl memcpy
	ldr r0, [r6]
	movs r4, 0xAC
	lsls r4, 2
	adds r0, r4
	movs r1, 0x1
	negs r1, r1
	adds r4, r1, 0
	movs r1, 0xFF
	strb r1, [r0]
	ldr r1, [r6]
	ldrb r0, [r1, 0x8]
	lsls r0, 30
	lsrs r0, 30
	cmp r0, 0x1
	beq _0801C018
	cmp r0, 0x1
	bgt _0801BFF0
	cmp r0, 0
	beq _0801BFF6
	b _0801C168
	.pool
_0801BFF0:
	cmp r0, 0x2
	beq _0801C028
	b _0801C168
_0801BFF6:
	ldr r2, =0x000002b1
	adds r0, r1, r2
	movs r3, 0x91
	lsls r3, 1
	adds r1, r3
	movs r2, 0x28
	bl memcpy
	ldr r1, [r6]
	ldr r0, =0x000002d9
	adds r1, r0
	b _0801C01C
	.pool
_0801C018:
	ldr r2, =0x000002b1
	adds r1, r2
_0801C01C:
	ldrb r0, [r1]
	orrs r0, r4
	strb r0, [r1]
	b _0801C168
	.pool
_0801C028:
	ldr r3, =0x000002b1
	adds r0, r1, r3
	ldrb r1, [r0]
	orrs r1, r7
	strb r1, [r0]
	mov r3, sp
	ldr r1, [r6]
	movs r4, 0xA6
	lsls r4, 1
	adds r0, r1, r4
	ldrh r0, [r0]
	ldr r2, =0x000003e7
	cmp r0, r2
	bls _0801C046
	adds r0, r2, 0
_0801C046:
	strh r0, [r3]
	mov r3, sp
	movs r4, 0xA7
	lsls r4, 1
	adds r0, r1, r4
	ldrh r0, [r0]
	cmp r0, r2
	bls _0801C058
	adds r0, r2, 0
_0801C058:
	strh r0, [r3, 0x2]
	mov r3, sp
	movs r4, 0xA8
	lsls r4, 1
	adds r0, r1, r4
	ldrh r0, [r0]
	cmp r0, r2
	bls _0801C06A
	adds r0, r2, 0
_0801C06A:
	strh r0, [r3, 0x4]
	movs r5, 0
_0801C06E:
	lsls r4, r5, 1
	adds r4, r5
	lsls r4, 4
	movs r0, 0xB7
	lsls r0, 2
	adds r4, r0
	ldr r0, [r6]
	adds r0, r4
	adds r0, 0x2A
	movs r1, 0xFF
	movs r2, 0x4
	bl memset
	ldr r0, [r6]
	adds r0, r4
	adds r0, 0x1
	movs r1, 0xFF
	movs r2, 0x29
	bl memset
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x7
	bls _0801C06E
	movs r5, 0
	movs r6, 0
	ldr r1, =gUnknown_02022C74
	mov r8, r1
	movs r2, 0x91
	lsls r2, 1
	mov r10, r2
	ldr r7, =0x00000175
	movs r3, 0xB7
	lsls r3, 2
	mov r9, r3
_0801C0B6:
	mov r4, r8
	ldr r2, [r4]
	mov r0, r10
	adds r1, r2, r0
	adds r0, r1, r5
	ldrb r3, [r0]
	cmp r3, 0xF7
	beq _0801C0F8
	ldr r1, =0x00000175
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 4
	adds r0, r6, r0
	ldr r4, =0x000002dd
	adds r1, r2, r4
	adds r1, r0
	strb r3, [r1]
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	b _0801C15E
	.pool
_0801C0F8:
	adds r0, r5, 0x1
	adds r0, r1, r0
	ldrb r3, [r0]
	cmp r3, 0x2
	bls _0801C108
	adds r0, r5, 0x2
	lsls r0, 16
	b _0801C15C
_0801C108:
	adds r0, r2, r7
	ldrb r1, [r0]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 4
	add r0, r9
	adds r0, r2, r0
	adds r0, 0x2A
	lsls r1, r3, 1
	add r1, sp
	ldrh r1, [r1]
	movs r2, 0x2
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	mov r0, r8
	ldr r1, [r0]
	adds r0, r1, r7
	ldrb r2, [r0]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 4
	adds r0, r1, r0
	adds r4, r5, 0x2
	add r1, r10
	adds r1, r4
	ldrb r1, [r1]
	add r0, r9
	strb r1, [r0]
	mov r2, r8
	ldr r1, [r2]
	adds r1, r7
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	ldr r0, [r2]
	adds r0, r7
	ldrb r0, [r0]
	cmp r0, 0x7
	bhi _0801C168
	movs r6, 0
	lsls r0, r4, 16
_0801C15C:
	lsrs r5, r0, 16
_0801C15E:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x27
	bls _0801C0B6
_0801C168:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_801BEF8

	thumb_func_start sub_801C178
sub_801C178: @ 801C178
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	lsls r0, 24
	lsrs r4, r0, 24
	mov r8, r4
	movs r0, 0
	str r0, [sp, 0xC]
	ldr r7, =gUnknown_02022C74
	ldr r0, [r7]
	lsls r1, r4, 1
	movs r2, 0xBB
	lsls r2, 1
	adds r0, r2
	adds r0, r1
	ldrh r0, [r0]
	lsls r6, r0, 24
	lsrs r5, r6, 24
	adds r0, r5, 0
	bl PutWindowTilemap
	adds r0, r5, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	cmp r4, 0x1
	beq _0801C2A0
	cmp r4, 0x1
	bgt _0801C1C4
	cmp r4, 0
	beq _0801C1D0
	mov r9, r6
	b _0801C498
	.pool
_0801C1C4:
	mov r0, r8
	cmp r0, 0x2
	bne _0801C1CC
	b _0801C304
_0801C1CC:
	mov r9, r6
	b _0801C498
_0801C1D0:
	ldr r2, [r7]
	movs r1, 0xB8
	lsls r1, 1
	mov r10, r1
	adds r0, r2, r1
	ldr r0, [r0]
	ldrb r0, [r0]
	lsls r0, 28
	lsrs r0, 28
	lsls r1, r0, 1
	adds r1, r0
	ldr r0, =gUnknown_082F0E10
	mov r8, r0
	add r1, r8
	str r1, [sp]
	ldr r1, [sp, 0xC]
	str r1, [sp, 0x4]
	ldr r0, =0x0000018b
	adds r2, r0
	str r2, [sp, 0x8]
	adds r0, r5, 0
	movs r1, 0x3
	movs r2, 0
	movs r3, 0x1
	bl AddTextPrinterParameterized3
	ldr r4, [r7]
	movs r1, 0xDA
	lsls r1, 1
	mov r9, r1
	add r4, r9
	movs r0, 0x3
	movs r1, 0x2
	bl GetFontAttribute
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	movs r0, 0x3
	adds r1, r4, 0
	bl GetStringWidth
	movs r1, 0xA0
	subs r1, r0
	cmp r1, 0
	bge _0801C22E
	movs r1, 0
_0801C22E:
	lsls r2, r1, 24
	lsrs r2, 24
	ldr r3, [r7]
	mov r1, r10
	adds r0, r3, r1
	ldr r0, [r0]
	ldrb r1, [r0]
	lsls r1, 28
	lsrs r1, 28
	lsls r0, r1, 1
	adds r0, r1
	add r0, r8
	str r0, [sp]
	ldr r0, [sp, 0xC]
	str r0, [sp, 0x4]
	add r3, r9
	str r3, [sp, 0x8]
	adds r0, r5, 0
	movs r1, 0x3
	movs r3, 0x11
	bl AddTextPrinterParameterized3
	ldr r2, [r7]
	ldr r0, [r2, 0x4]
	mov r9, r6
	cmp r0, 0
	bne _0801C266
	b _0801C498
_0801C266:
	mov r1, r10
	adds r0, r2, r1
	ldr r0, [r0]
	ldrb r1, [r0]
	lsls r1, 28
	lsrs r1, 28
	lsls r0, r1, 1
	adds r0, r1
	add r0, r8
	str r0, [sp]
	ldr r0, [sp, 0xC]
	str r0, [sp, 0x4]
	ldr r1, =0x000001dd
	adds r0, r2, r1
	str r0, [sp, 0x8]
	adds r0, r5, 0
	movs r1, 0x1
	movs r2, 0xA6
	movs r3, 0x11
	bl AddTextPrinterParameterized3
	b _0801C498
	.pool
_0801C2A0:
	mov r9, r6
_0801C2A2:
	ldr r2, [sp, 0xC]
	lsls r4, r2, 24
	asrs r4, 24
	lsls r3, r4, 4
	adds r3, 0x2
	lsls r3, 24
	lsrs r3, 24
	ldr r0, =gUnknown_02022C74
	ldr r2, [r0]
	movs r1, 0xB8
	lsls r1, 1
	adds r0, r2, r1
	ldr r0, [r0]
	ldrb r0, [r0]
	lsrs r0, 4
	lsls r1, r0, 1
	adds r1, r0
	ldr r0, =gUnknown_082F0E10
	adds r1, r0
	str r1, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r4
	movs r1, 0xF2
	lsls r1, 1
	adds r0, r1
	adds r2, r0
	str r2, [sp, 0x8]
	mov r2, r9
	lsrs r0, r2, 24
	movs r1, 0x3
	movs r2, 0
	bl AddTextPrinterParameterized3
	adds r4, 0x1
	lsls r4, 24
	lsrs r0, r4, 24
	str r0, [sp, 0xC]
	asrs r4, 24
	cmp r4, 0x3
	ble _0801C2A2
	b _0801C498
	.pool
_0801C304:
	ldr r4, =gUnknown_082F0E18
	ldr r2, [r7]
	ldrb r0, [r2, 0x8]
	lsls r0, 30
	lsrs r0, 30
	adds r0, r4
	ldrb r3, [r0]
	movs r1, 0xB8
	lsls r1, 1
	adds r0, r2, r1
	ldr r0, [r0]
	ldrb r0, [r0, 0x1]
	lsls r0, 28
	lsrs r0, 28
	lsls r1, r0, 1
	adds r1, r0
	ldr r0, =gUnknown_082F0E10
	mov r10, r0
	add r1, r10
	str r1, [sp]
	ldr r1, [sp, 0xC]
	str r1, [sp, 0x4]
	movs r1, 0xA2
	lsls r1, 2
	adds r0, r2, r1
	str r0, [sp, 0x8]
	adds r0, r5, 0
	movs r1, 0x3
	movs r2, 0
	bl AddTextPrinterParameterized3
	ldr r2, [r7]
	ldrb r1, [r2, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x2
	beq _0801C398
	lsls r0, r1, 30
	lsrs r0, 30
	adds r0, r4
	ldrb r3, [r0]
	adds r3, 0x10
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0xB8
	lsls r1, 1
	adds r0, r2, r1
	ldr r0, [r0]
	ldrb r1, [r0, 0x1]
	lsls r1, 28
	lsrs r1, 28
	lsls r0, r1, 1
	adds r0, r1
	add r0, r10
	str r0, [sp]
	ldr r0, [sp, 0xC]
	str r0, [sp, 0x4]
	ldr r1, =0x000002b1
	adds r0, r2, r1
	str r0, [sp, 0x8]
	adds r0, r5, 0
	movs r1, 0x3
	movs r2, 0
	bl AddTextPrinterParameterized3
	mov r9, r6
	b _0801C498
	.pool
_0801C398:
	movs r2, 0
	mov r8, r2
	lsls r0, r1, 30
	lsrs r0, 30
	adds r0, r4
	ldrb r0, [r0]
	adds r4, r0, 0
	adds r4, 0x10
	movs r0, 0x3
	movs r1, 0x2
	bl GetFontAttribute
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, [r7]
	ldr r1, =0x00000175
	adds r0, r1
	mov r9, r6
	ldr r1, [sp, 0xC]
	ldrb r0, [r0]
	cmp r1, r0
	bge _0801C498
	str r5, [sp, 0x10]
	lsls r0, r4, 24
	lsrs r0, 24
	str r0, [sp, 0x14]
	mov r10, r2
_0801C3CE:
	mov r0, r8
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r3, [r7]
	movs r1, 0xB8
	lsls r1, 1
	adds r0, r3, r1
	ldr r0, [r0]
	ldrb r1, [r0, 0x1]
	lsls r1, 28
	lsrs r1, 28
	lsls r0, r1, 1
	adds r0, r1
	ldr r1, =gUnknown_082F0E10
	adds r0, r1
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	ldr r1, [sp, 0xC]
	lsls r0, r1, 24
	asrs r6, r0, 24
	lsls r0, r6, 1
	adds r0, r6
	lsls r5, r0, 4
	movs r0, 0xB7
	lsls r0, 2
	adds r4, r5, r0
	adds r3, r4
	adds r3, 0x1
	str r3, [sp, 0x8]
	ldr r0, [sp, 0x10]
	movs r1, 0x3
	ldr r3, [sp, 0x14]
	bl AddTextPrinterParameterized3
	ldr r1, [r7]
	adds r0, r1, r5
	ldr r2, =0x00000306
	adds r0, r2
	ldrb r0, [r0]
	cmp r0, 0xFF
	beq _0801C482
	adds r1, r4
	adds r1, 0x1
	movs r0, 0x3
	mov r2, r10
	bl GetStringWidth
	add r8, r0
	mov r0, r8
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r3, [r7]
	movs r1, 0xB8
	lsls r1, 1
	adds r0, r3, r1
	ldr r0, [r0]
	ldrb r1, [r0, 0x1]
	lsls r1, 28
	lsrs r1, 28
	lsls r0, r1, 1
	adds r0, r1
	ldr r1, =gUnknown_082F0E10
	adds r0, r1
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	adds r3, r4
	adds r3, 0x2A
	str r3, [sp, 0x8]
	ldr r0, [sp, 0x10]
	movs r1, 0x3
	ldr r3, [sp, 0x14]
	bl AddTextPrinterParameterized3
	ldr r1, [r7]
	adds r1, r4
	adds r1, 0x2A
	movs r0, 0x3
	mov r2, r10
	bl GetStringWidth
	ldr r1, [r7]
	adds r1, r5
	movs r2, 0xB7
	lsls r2, 2
	adds r1, r2
	ldrb r1, [r1]
	adds r0, r1
	add r8, r0
_0801C482:
	adds r1, r6, 0x1
	lsls r1, 24
	lsrs r0, r1, 24
	str r0, [sp, 0xC]
	asrs r1, 24
	ldr r0, [r7]
	ldr r2, =0x00000175
	adds r0, r2
	ldrb r0, [r0]
	cmp r1, r0
	blt _0801C3CE
_0801C498:
	mov r1, r9
	lsrs r0, r1, 24
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801C178

	thumb_func_start sub_801C4C0
sub_801C4C0: @ 801C4C0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	movs r7, 0
	ldr r4, =gUnknown_02022C74
	ldr r0, [r4]
	movs r1, 0xBE
	lsls r1, 1
	adds r0, r1
	movs r1, 0xFF
	strb r1, [r0]
	ldr r0, [r4]
	movs r2, 0xA9
	lsls r2, 1
	adds r1, r0, r2
	ldrh r0, [r1]
	cmp r0, 0
	beq _0801C52C
	bl sub_80D2E84
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =SpriteCallbackDummy
	str r7, [sp]
	str r7, [sp, 0x4]
	movs r2, 0xDC
	movs r3, 0x14
	bl sub_80D2D78
	ldr r1, [r4]
	movs r2, 0xBE
	lsls r2, 1
	adds r1, r2
	strb r0, [r1]
	ldr r2, =gSprites
	ldr r0, [r4]
	movs r1, 0xBE
	lsls r1, 1
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrb r2, [r0, 0x5]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	movs r2, 0x8
	orrs r1, r2
	strb r1, [r0, 0x5]
_0801C52C:
	ldr r1, [r4]
	ldrb r0, [r1, 0x9]
	cmp r0, 0
	beq _0801C5EE
	ldrb r1, [r1, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _0801C5EE
	ldr r0, =gUnknown_082F1D00
	bl LoadCompressedSpriteSheetUsingHeap
	ldr r0, [r4]
	movs r2, 0xB8
	lsls r2, 1
	adds r0, r2
	ldr r0, [r0]
	ldrb r0, [r0, 0x1]
	lsrs r0, 4
	lsls r0, 3
	ldr r1, =gUnknown_082F1D08
	adds r0, r1
	bl LoadSpritePalette
	ldr r0, [r4]
	ldrb r0, [r0, 0x9]
	cmp r7, r0
	bcs _0801C5EE
	adds r6, r4, 0
	ldr r0, =0x0000017d
	mov r10, r0
	movs r1, 0
	mov r9, r1
	movs r2, 0xFF
	mov r8, r2
_0801C572:
	ldr r1, [r6]
	lsls r4, r7, 1
	add r1, r10
	adds r1, r4
	ldrb r0, [r1]
	mov r2, r8
	orrs r0, r2
	strb r0, [r1]
	ldr r1, [r6]
	movs r0, 0xBF
	lsls r0, 1
	adds r1, r0
	adds r1, r4
	ldrb r0, [r1]
	orrs r0, r2
	strb r0, [r1]
	lsls r1, r7, 5
	movs r0, 0xD8
	subs r5, r0, r1
	ldr r0, =gUnknown_082F1D48
	adds r1, r5, 0
	movs r2, 0x90
	movs r3, 0x8
	bl CreateSprite
	ldr r1, [r6]
	add r1, r10
	adds r1, r4
	strb r0, [r1]
	ldr r0, [r6]
	movs r1, 0xAA
	lsls r1, 1
	adds r0, r1
	adds r1, r0, r4
	ldrh r0, [r1]
	cmp r0, 0
	beq _0801C5E0
	bl sub_80D2E84
	lsls r0, 16
	lsrs r0, 16
	mov r2, r9
	str r2, [sp]
	str r2, [sp, 0x4]
	ldr r1, =SpriteCallbackDummy
	adds r2, r5, 0
	movs r3, 0x88
	bl sub_80D2D78
	ldr r1, [r6]
	movs r2, 0xBF
	lsls r2, 1
	adds r1, r2
	adds r1, r4
	strb r0, [r1]
_0801C5E0:
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, [r6]
	ldrb r0, [r0, 0x9]
	cmp r7, r0
	bcc _0801C572
_0801C5EE:
	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 sub_801C4C0

	thumb_func_start sub_801C61C
sub_801C61C: @ 801C61C
	push {r4-r7,lr}
	movs r5, 0
	ldr r4, =gUnknown_02022C74
	ldr r0, [r4]
	movs r2, 0xBE
	lsls r2, 1
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0801C640
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl sub_80D2EF8
_0801C640:
	ldr r0, [r4]
	ldrb r2, [r0, 0x9]
	cmp r2, 0
	beq _0801C6B4
	ldrb r1, [r0, 0x8]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _0801C6B4
	cmp r5, r2
	bcs _0801C6A4
	adds r6, r4, 0
	ldr r7, =gSprites
_0801C65A:
	ldr r0, [r6]
	lsls r4, r5, 1
	ldr r1, =0x0000017d
	adds r0, r1
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0801C678
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	bl DestroySprite
_0801C678:
	ldr r0, [r6]
	movs r2, 0xBF
	lsls r2, 1
	adds r0, r2
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0801C696
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	bl sub_80D2EF8
_0801C696:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, [r6]
	ldrb r0, [r0, 0x9]
	cmp r5, r0
	bcc _0801C65A
_0801C6A4:
	movs r4, 0x80
	lsls r4, 8
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
_0801C6B4:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801C61C

	thumb_func_start sub_801C6C8
sub_801C6C8: @ 801C6C8
	push {r4-r6,lr}
	adds r4, r0, 0
	cmp r4, 0
	beq _0801C6DE
	ldr r5, =gUnknown_02022C78
	ldr r0, =0x000013a4
	bl AllocZeroed
	str r0, [r5]
	cmp r0, 0
	bne _0801C6EC
_0801C6DE:
	movs r0, 0
	b _0801C71C
	.pool
_0801C6EC:
	movs r6, 0xDE
	lsls r6, 1
	adds r1, r4, 0
	adds r2, r6, 0
	bl memcpy
	ldr r1, [r5]
	ldrb r0, [r1, 0x3]
	cmp r0, 0x7
	bls _0801C704
	movs r0, 0
	strb r0, [r1, 0x3]
_0801C704:
	ldr r2, [r5]
	adds r3, r2, r6
	ldrb r0, [r2, 0x3]
	lsls r0, 4
	ldr r1, =gUnknown_082F24C8
	adds r0, r1
	str r0, [r3]
	ldr r0, =0x000001c1
	adds r1, r2, r0
	movs r0, 0xFF
	strb r0, [r1]
	movs r0, 0x1
_0801C71C:
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801C6C8

	thumb_func_start sub_801C72C
sub_801C72C: @ 801C72C
	push {r4,lr}
	ldr r4, =gUnknown_02022C78
	ldr r0, [r4]
	cmp r0, 0
	beq _0801C748
	ldr r2, =0x000013a4
	movs r1, 0
	bl memset
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
_0801C748:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801C72C

	thumb_func_start sub_801C758
sub_801C758: @ 801C758
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x24
	ldr r5, =gUnknown_02022C78
	ldr r0, [r5]
	cmp r0, 0
	bne _0801C778
	movs r0, 0x1
	negs r0, r0
	b _0801CA3A
	.pool
_0801C778:
	movs r4, 0xE0
	lsls r4, 1
	adds r0, r4
	ldrb r0, [r0]
	lsrs r0, 1
	cmp r0, 0x6
	bls _0801C788
	b _0801CA04
_0801C788:
	lsls r0, 2
	ldr r1, =_0801C798
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801C798:
	.4byte _0801C7B4
	.4byte _0801C7C6
	.4byte _0801C82C
	.4byte _0801C8D4
	.4byte _0801C990
	.4byte _0801C996
	.4byte _0801C9A8
_0801C7B4:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _0801CA1E
_0801C7C6:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	beq _0801C7D2
	b _0801CA38
_0801C7D2:
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x40
	movs r1, 0xF0
	bl SetGpuReg
	ldr r1, =0x00001a98
	movs r0, 0x44
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0x1F
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x1B
	bl SetGpuReg
	movs r1, 0x80
	lsls r1, 6
	movs r0, 0
	bl SetGpuRegBits
	b _0801CA1E
	.pool
_0801C82C:
	movs r5, 0x1E
	str r5, [sp]
	movs r4, 0x14
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r5, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r5, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r5, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	ldr r5, =gUnknown_02022C78
	ldr r0, [r5]
	movs r1, 0xDE
	lsls r1, 1
	adds r0, r1
	ldr r0, [r0]
	ldr r1, [r0, 0x4]
	movs r0, 0
	str r0, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0x8
	bl decompress_and_copy_tile_data_to_vram
	ldr r4, =gUnknown_082F1DE8
	adds r0, r4, 0
	bl AddWindow
	ldr r1, [r5]
	movs r2, 0xE4
	lsls r2, 1
	adds r1, r2
	strh r0, [r1]
	adds r4, 0x8
	adds r0, r4, 0
	bl AddWindow
	ldr r1, [r5]
	movs r3, 0xE5
	lsls r3, 1
	adds r1, r3
	strh r0, [r1]
	b _0801CA1E
	.pool
_0801C8D4:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r7, r0, 24
	cmp r7, 0
	beq _0801C8E2
	b _0801CA38
_0801C8E2:
	movs r0, 0x1
	bl stdpal_get
	movs r1, 0x20
	movs r2, 0x20
	bl LoadPalette
	ldr r2, =gPaletteFade
	ldrb r0, [r2, 0x8]
	movs r1, 0x80
	orrs r0, r1
	strb r0, [r2, 0x8]
	ldr r0, =gUnknown_02022C78
	mov r8, r0
	ldr r0, [r0]
	movs r4, 0xDE
	lsls r4, 1
	adds r0, r4
	ldr r0, [r0]
	ldr r0, [r0, 0xC]
	movs r1, 0x10
	movs r2, 0x20
	bl LoadPalette
	mov r2, r8
	ldr r1, [r2]
	adds r4, r1, r4
	ldr r0, [r4]
	ldr r0, [r0, 0x8]
	movs r6, 0xE9
	lsls r6, 2
	adds r1, r6
	bl LZ77UnCompWram
	mov r3, r8
	ldr r1, [r3]
	adds r1, r6
	movs r4, 0x1E
	str r4, [sp]
	movs r5, 0x3
	str r5, [sp, 0x4]
	str r7, [sp, 0x8]
	str r7, [sp, 0xC]
	str r4, [sp, 0x10]
	str r5, [sp, 0x14]
	movs r0, 0x1
	mov r10, r0
	str r0, [sp, 0x18]
	movs r2, 0x8
	mov r9, r2
	str r2, [sp, 0x1C]
	str r7, [sp, 0x20]
	movs r2, 0
	movs r3, 0
	bl CopyRectToBgTilemapBufferRect
	mov r3, r8
	ldr r1, [r3]
	adds r1, r6
	str r4, [sp]
	movs r0, 0x17
	str r0, [sp, 0x4]
	str r7, [sp, 0x8]
	str r5, [sp, 0xC]
	str r4, [sp, 0x10]
	str r0, [sp, 0x14]
	mov r0, r10
	str r0, [sp, 0x18]
	mov r2, r9
	str r2, [sp, 0x1C]
	str r7, [sp, 0x20]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0x3
	bl CopyRectToBgTilemapBufferRect
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	b _0801CA1E
	.pool
_0801C990:
	bl sub_801CDCC
	b _0801CA1E
_0801C996:
	bl sub_801CE7C
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	b _0801CA1E
_0801C9A8:
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	ldr r2, =gPaletteFade
	ldrb r1, [r2, 0x8]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x8]
	ldr r4, =gUnknown_02022C78
	ldr r1, [r4]
	movs r3, 0xE5
	lsls r3, 2
	adds r0, r1, r3
	movs r2, 0xE3
	lsls r2, 1
	adds r1, r2
	bl AddScrollIndicatorArrowPair
	ldr r1, [r4]
	ldr r3, =0x000001c1
	adds r2, r1, r3
	movs r1, 0
	strb r0, [r2]
	movs r0, 0x1
	negs r0, r0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	bl UpdatePaletteFade
	b _0801CA1E
	.pool
_0801CA04:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	bne _0801CA38
	ldr r0, [r5]
	adds r0, r4
	ldrb r2, [r0]
	movs r1, 0x1
	ands r1, r2
	strb r1, [r0]
	movs r0, 0x1
	b _0801CA3A
_0801CA1E:
	ldr r0, =gUnknown_02022C78
	ldr r2, [r0]
	movs r0, 0xE0
	lsls r0, 1
	adds r2, r0
	ldrb r3, [r2]
	lsrs r1, r3, 1
	adds r1, 0x1
	lsls r1, 1
	movs r0, 0x1
	ands r0, r3
	orrs r0, r1
	strb r0, [r2]
_0801CA38:
	movs r0, 0
_0801CA3A:
	add sp, 0x24
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801C758

	thumb_func_start sub_801CA50
sub_801CA50: @ 801CA50
	push {r4,r5,lr}
	sub sp, 0x8
	adds r2, r0, 0
	ldr r5, =gUnknown_02022C78
	ldr r0, [r5]
	cmp r0, 0
	bne _0801CA68
	movs r0, 0x1
	negs r0, r0
	b _0801CC2A
	.pool
_0801CA68:
	movs r4, 0xE0
	lsls r4, 1
	adds r0, r4
	ldrb r0, [r0]
	lsrs r0, 1
	cmp r0, 0x5
	bls _0801CA78
	b _0801CBF4
_0801CA78:
	lsls r0, 2
	ldr r1, =_0801CA88
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801CA88:
	.4byte _0801CAA0
	.4byte _0801CAB2
	.4byte _0801CAF4
	.4byte _0801CB54
	.4byte _0801CB84
	.4byte _0801CBC0
_0801CAA0:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _0801CC0E
_0801CAB2:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	beq _0801CABE
	b _0801CC28
_0801CABE:
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	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 r1, 0x80
	lsls r1, 6
	movs r0, 0
	bl ClearGpuRegBits
	b _0801CC0E
_0801CAF4:
	movs r4, 0x1E
	str r4, [sp]
	movs r5, 0x14
	str r5, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	movs r5, 0x18
	str r5, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	b _0801CC0E
_0801CB54:
	movs r0, 0x1
	bl HideBg
	movs r0, 0x2
	bl HideBg
	ldr r4, =gUnknown_02022C78
	ldr r0, [r4]
	movs r1, 0xE5
	lsls r1, 1
	adds r0, r1
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r0, [r4]
	movs r2, 0xE4
	lsls r2, 1
	adds r0, r2
	ldrb r0, [r0]
	bl RemoveWindow
	b _0801CC0E
	.pool
_0801CB84:
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldr r4, =gUnknown_02022C78
	ldr r0, [r4]
	ldr r2, =0x000001c1
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0801CC0E
	bl RemoveScrollIndicatorArrowPair
	ldr r0, [r4]
	ldr r2, =0x000001c1
	adds r1, r0, r2
	movs r0, 0xFF
	strb r0, [r1]
	b _0801CC0E
	.pool
_0801CBC0:
	ldr r0, =gUnknown_02022C60
	ldrb r0, [r0]
	adds r1, r2, 0
	bl sub_80186EC
	movs r0, 0x3
	bl sub_8018798
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	b _0801CC0E
	.pool
_0801CBF4:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	bne _0801CC28
	ldr r0, [r5]
	adds r0, r4
	ldrb r2, [r0]
	movs r1, 0x1
	ands r1, r2
	strb r1, [r0]
	movs r0, 0x1
	b _0801CC2A
_0801CC0E:
	ldr r0, =gUnknown_02022C78
	ldr r2, [r0]
	movs r0, 0xE0
	lsls r0, 1
	adds r2, r0
	ldrb r3, [r2]
	lsrs r1, r3, 1
	adds r1, 0x1
	lsls r1, 1
	movs r0, 0x1
	ands r0, r3
	orrs r0, r1
	strb r0, [r2]
_0801CC28:
	movs r0, 0
_0801CC2A:
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801CA50

	thumb_func_start sub_801CC38
sub_801CC38: @ 801CC38
	push {r4,r5,lr}
	ldr r4, =gUnknown_02022C78
	ldr r2, [r4]
	movs r5, 0xE0
	lsls r5, 1
	adds r0, r2, r5
	ldrb r1, [r0]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _0801CC72
	ldr r0, =0x000001c1
	adds r1, r2, r0
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0801CC72
	bl RemoveScrollIndicatorArrowPair
	ldr r0, [r4]
	ldr r2, =0x000001c1
	adds r1, r0, r2
	movs r0, 0xFF
	strb r0, [r1]
	ldr r1, [r4]
	adds r1, r5
	ldrb r0, [r1]
	movs r2, 0x1
	orrs r0, r2
	strb r0, [r1]
_0801CC72:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801CC38

	thumb_func_start sub_801CC80
sub_801CC80: @ 801CC80
	push {r4,lr}
	ldr r4, =gUnknown_02022C78
	ldr r2, [r4]
	movs r1, 0xE0
	lsls r1, 1
	adds r0, r2, r1
	ldrb r1, [r0]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0801CCC0
	movs r3, 0xE5
	lsls r3, 2
	adds r0, r2, r3
	movs r3, 0xE3
	lsls r3, 1
	adds r1, r2, r3
	bl AddScrollIndicatorArrowPair
	ldr r1, [r4]
	ldr r2, =0x000001c1
	adds r1, r2
	strb r0, [r1]
	ldr r1, [r4]
	movs r3, 0xE0
	lsls r3, 1
	adds r1, r3
	ldrb r2, [r1]
	movs r0, 0x2
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
_0801CCC0:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801CC80

	thumb_func_start sub_801CCD0
sub_801CCD0: @ 801CCD0
	push {r4-r6,lr}
	lsls r0, 16
	lsrs r4, r0, 16
	adds r3, r4, 0
	ldr r2, =gUnknown_02022C78
	ldr r0, [r2]
	mov r12, r0
	movs r0, 0xE1
	lsls r0, 1
	add r0, r12
	ldrb r1, [r0]
	movs r5, 0x1
	adds r0, r5, 0
	ands r0, r1
	adds r6, r2, 0
	cmp r0, 0
	beq _0801CD00
	bl sub_801CFA4
_0801CCF6:
	movs r0, 0xFF
	b _0801CDC6
	.pool
_0801CD00:
	cmp r4, 0x2
	beq _0801CD1C
	cmp r4, 0x2
	bgt _0801CD0E
	cmp r4, 0x1
	beq _0801CD18
	b _0801CCF6
_0801CD0E:
	cmp r3, 0x40
	beq _0801CD20
	cmp r3, 0x80
	beq _0801CD50
	b _0801CCF6
_0801CD18:
	movs r0, 0
	b _0801CDC6
_0801CD1C:
	movs r0, 0x1
	b _0801CDC6
_0801CD20:
	movs r0, 0xE3
	lsls r0, 1
	add r0, r12
	ldrh r0, [r0]
	cmp r0, 0
	beq _0801CCF6
	movs r0, 0xE0
	lsls r0, 1
	add r0, r12
	ldrb r1, [r0]
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0
	bne _0801CCF6
	ldr r2, =0x000001c3
	add r2, r12
	ldrb r1, [r2]
	movs r0, 0x2
	negs r0, r0
	ands r0, r1
	b _0801CD7E
	.pool
_0801CD50:
	movs r0, 0xE3
	lsls r0, 1
	add r0, r12
	movs r1, 0xE2
	lsls r1, 1
	add r1, r12
	ldrh r0, [r0]
	ldrh r1, [r1]
	cmp r0, r1
	beq _0801CCF6
	movs r0, 0xE0
	lsls r0, 1
	add r0, r12
	ldrb r1, [r0]
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0
	bne _0801CCF6
	ldr r2, =0x000001c3
	add r2, r12
	ldrb r0, [r2]
	movs r1, 0x1
	orrs r0, r1
_0801CD7E:
	strb r0, [r2]
	ldr r2, [r6]
	movs r4, 0xE1
	lsls r4, 1
	adds r2, r4
	ldrb r0, [r2]
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2]
	ldr r3, [r6]
	adds r3, r4
	ldrb r1, [r3]
	movs r2, 0x1
	adds r0, r2, 0
	ands r0, r1
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r3]
	ldr r1, [r6]
	adds r4, 0x1
	adds r1, r4
	ldrb r3, [r1]
	adds r0, r2, 0
	ands r0, r3
	strb r0, [r1]
	ldr r0, [r6]
	adds r0, r4
	ldrb r0, [r0]
	ands r2, r0
	cmp r2, 0
	beq _0801CDC4
	movs r0, 0x3
	b _0801CDC6
	.pool
_0801CDC4:
	movs r0, 0x2
_0801CDC6:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801CCD0

	thumb_func_start sub_801CDCC
sub_801CDCC: @ 801CDCC
	push {r4-r6,lr}
	movs r5, 0
	ldr r4, =gUnknown_02022C78
	ldr r1, [r4]
	movs r2, 0xE7
	lsls r2, 1
	adds r0, r1, r2
	adds r1, 0x4
	movs r2, 0x28
	bl memcpy
	ldr r0, [r4]
	movs r3, 0xFB
	lsls r3, 1
	adds r1, r0, r3
	movs r0, 0xFF
	strb r0, [r1]
	adds r6, r4, 0
_0801CDF0:
	ldr r2, [r6]
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r4, r1, r5
	adds r0, r4, r2
	ldr r3, =0x000001f7
	adds r0, r3
	adds r1, r2
	adds r1, 0x2C
	movs r2, 0x28
	bl memcpy
	ldr r0, [r6]
	ldr r1, =0x0000021f
	adds r0, r1
	adds r0, r4
	movs r1, 0xFF
	strb r1, [r0]
	cmp r5, 0x7
	bls _0801CE34
	ldr r1, [r6]
	ldr r2, =0x000001f7
	adds r0, r1, r2
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0xFF
	beq _0801CE34
	movs r3, 0xE2
	lsls r3, 1
	adds r1, r3
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0801CE34:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x9
	bls _0801CDF0
	ldr r2, =gUnknown_02022C78
	ldr r1, [r2]
	movs r4, 0xE5
	lsls r4, 2
	adds r1, r4
	ldr r0, =gUnknown_082F1DF8
	ldm r0!, {r3-r5}
	stm r1!, {r3-r5}
	ldr r0, [r0]
	str r0, [r1]
	ldr r2, [r2]
	movs r5, 0xE2
	lsls r5, 1
	adds r0, r2, r5
	ldrh r1, [r0]
	movs r3, 0xE7
	lsls r3, 2
	adds r0, r2, r3
	strh r1, [r0]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801CDCC

	thumb_func_start sub_801CE7C
sub_801CE7C: @ 801CE7C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	movs r5, 0
	ldr r6, =gUnknown_02022C78
	ldr r0, [r6]
	movs r7, 0xE4
	lsls r7, 1
	adds r0, r7
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r0, [r6]
	movs r4, 0xE5
	lsls r4, 1
	adds r0, r4
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r0, [r6]
	adds r0, r7
	ldrb r0, [r0]
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r0, [r6]
	adds r0, r4
	ldrb r0, [r0]
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r4, [r6]
	movs r0, 0xE7
	lsls r0, 1
	mov r8, r0
	add r4, r8
	movs r0, 0x3
	movs r1, 0x2
	bl GetFontAttribute
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	movs r0, 0x3
	adds r1, r4, 0
	bl GetStringWidth
	movs r1, 0xE0
	subs r1, r0
	lsrs r0, r1, 31
	adds r1, r0
	asrs r1, 1
	cmp r1, 0
	bge _0801CEEC
	movs r1, 0
_0801CEEC:
	ldr r4, [r6]
	adds r0, r4, r7
	ldrb r0, [r0]
	lsls r2, r1, 24
	lsrs r2, 24
	movs r3, 0xDE
	lsls r3, 1
	adds r1, r4, r3
	ldr r1, [r1]
	ldrb r1, [r1]
	lsls r1, 28
	lsrs r1, 28
	lsls r3, r1, 1
	adds r3, r1
	ldr r1, =gUnknown_082F1DE0
	adds r3, r1
	str r3, [sp]
	str r5, [sp, 0x4]
	add r4, r8
	str r4, [sp, 0x8]
	movs r1, 0x3
	movs r3, 0x6
	bl AddTextPrinterParameterized3
_0801CF1C:
	ldr r6, =gUnknown_02022C78
	ldr r4, [r6]
	movs r1, 0xE5
	lsls r1, 1
	adds r0, r4, r1
	ldrb r0, [r0]
	lsls r3, r5, 4
	adds r3, 0x2
	lsls r3, 24
	lsrs r3, 24
	movs r2, 0xDE
	lsls r2, 1
	adds r1, r4, r2
	ldr r1, [r1]
	ldrb r1, [r1]
	lsrs r1, 4
	lsls r2, r1, 1
	adds r2, r1
	ldr r1, =gUnknown_082F1DE0
	adds r2, r1
	str r2, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r5
	ldr r2, =0x000001f7
	adds r1, r2
	adds r4, r1
	str r4, [sp, 0x8]
	movs r1, 0x3
	movs r2, 0
	bl AddTextPrinterParameterized3
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x9
	bls _0801CF1C
	ldr r0, [r6]
	movs r3, 0xE4
	lsls r3, 1
	adds r0, r3
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, [r6]
	movs r1, 0xE5
	lsls r1, 1
	adds r0, r1
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801CE7C

	thumb_func_start sub_801CFA4
sub_801CFA4: @ 801CFA4
	push {r4-r6,lr}
	ldr r0, =gUnknown_02022C78
	ldr r1, [r0]
	movs r2, 0xE1
	lsls r2, 1
	adds r0, r1, r2
	ldrb r0, [r0]
	lsrs r4, r0, 1
	lsls r4, 8
	ldr r6, =0x000001c3
	adds r0, r1, r6
	ldrb r1, [r0]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0801CFE4
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	movs r0, 0x3
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	b _0801CFF8
	.pool
_0801CFE4:
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0x2
	bl ChangeBgY
	movs r0, 0x3
	adds r1, r4, 0
	movs r2, 0x2
	bl ChangeBgY
_0801CFF8:
	ldr r3, =gUnknown_02022C78
	ldr r0, [r3]
	ldr r2, =0x000001c3
	adds r5, r0, r2
	ldrb r4, [r5]
	lsrs r1, r4, 1
	movs r6, 0xE1
	lsls r6, 1
	adds r0, r6
	ldrb r0, [r0]
	lsrs r0, 1
	adds r1, r0
	lsls r1, 1
	movs r6, 0x1
	adds r0, r6, 0
	ands r0, r4
	orrs r0, r1
	strb r0, [r5]
	ldr r1, [r3]
	adds r2, r1, r2
	ldrb r2, [r2]
	lsrs r0, r2, 1
	cmp r0, 0xF
	bls _0801D070
	adds r0, r6, 0
	ands r0, r2
	cmp r0, 0
	beq _0801D044
	movs r0, 0xE3
	lsls r0, 1
	adds r1, r0
	ldrh r0, [r1]
	adds r0, 0x1
	b _0801D04E
	.pool
_0801D044:
	movs r2, 0xE3
	lsls r2, 1
	adds r1, r2
	ldrh r0, [r1]
	subs r0, 0x1
_0801D04E:
	strh r0, [r1]
	ldr r0, [r3]
	movs r6, 0xE1
	lsls r6, 1
	adds r2, r0, r6
	ldrb r1, [r2]
	movs r0, 0x2
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	ldr r0, [r3]
	ldr r1, =0x000001c3
	adds r2, r0, r1
	ldrb r1, [r2]
	movs r0, 0x1
	ands r0, r1
	strb r0, [r2]
_0801D070:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801CFA4

	thumb_func_start mevent_srv_init_wnews
mevent_srv_init_wnews: @ 801D07C
	push {r4,lr}
	ldr r4, =gUnknown_02022C7C
	movs r0, 0x60
	bl AllocZeroed
	str r0, [r4]
	ldr r1, =gUnknown_082F298C
	movs r2, 0
	movs r3, 0x1
	bl mevent_srv_init_common
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end mevent_srv_init_wnews

	thumb_func_start mevent_srv_new_wcard
mevent_srv_new_wcard: @ 801D0A0
	push {r4,lr}
	ldr r4, =gUnknown_02022C7C
	movs r0, 0x60
	bl AllocZeroed
	str r0, [r4]
	ldr r1, =gUnknown_082F29EC
	movs r2, 0
	movs r3, 0x1
	bl mevent_srv_init_common
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end mevent_srv_new_wcard

	thumb_func_start sub_801D0C4
sub_801D0C4: @ 801D0C4
	push {r4-r6,lr}
	adds r6, r0, 0
	ldr r4, =gUnknown_02022C7C
	ldr r0, [r4]
	cmp r0, 0
	bne _0801D0D8
	movs r0, 0x3
	b _0801D0F8
	.pool
_0801D0D8:
	bl mevent_dispatch_08145600
	adds r5, r0, 0
	cmp r5, 0x3
	bne _0801D0F6
	ldr r0, [r4]
	ldr r1, [r0, 0x4]
	strh r1, [r6]
	bl mevent_srv_free_resources
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
_0801D0F6:
	adds r0, r5, 0
_0801D0F8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801D0C4

	thumb_func_start mevent_srv_init_common
mevent_srv_init_common: @ 801D100
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	adds r4, r0, 0
	adds r6, r1, 0
	mov r8, r2
	mov r9, r3
	movs r5, 0
	str r5, [r4]
	str r5, [r4, 0x8]
	movs r0, 0xA6
	lsls r0, 1
	bl AllocZeroed
	str r0, [r4, 0x18]
	movs r0, 0xDE
	lsls r0, 1
	bl AllocZeroed
	str r0, [r4, 0x1C]
	movs r0, 0x80
	lsls r0, 3
	bl AllocZeroed
	str r0, [r4, 0x14]
	movs r0, 0x64
	bl AllocZeroed
	str r0, [r4, 0x20]
	str r6, [r4, 0x10]
	str r5, [r4, 0xC]
	adds r4, 0x38
	adds r0, r4, 0
	mov r1, r8
	mov r2, r9
	bl sub_801D8D8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end mevent_srv_init_common

	thumb_func_start mevent_srv_free_resources
mevent_srv_free_resources: @ 801D158
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x18]
	bl Free
	ldr r0, [r4, 0x1C]
	bl Free
	ldr r0, [r4, 0x14]
	bl Free
	ldr r0, [r4, 0x20]
	bl Free
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end mevent_srv_free_resources

	thumb_func_start mevent_srv_814501C
mevent_srv_814501C: @ 801D17C
	push {lr}
	adds r0, 0x38
	bl sub_801D904
	pop {r0}
	bx r0
	thumb_func_end mevent_srv_814501C

	thumb_func_start sub_801D188
sub_801D188: @ 801D188
	push {lr}
	cmp r0, 0
	bne _0801D190
	adds r0, r1, 0
_0801D190:
	pop {r1}
	bx r1
	thumb_func_end sub_801D188

	thumb_func_start sub_801D194
sub_801D194: @ 801D194
	push {lr}
	cmp r1, r0
	bcs _0801D19E
	movs r0, 0
	b _0801D1A8
_0801D19E:
	cmp r1, r0
	beq _0801D1A6
	movs r0, 0x2
	b _0801D1A8
_0801D1A6:
	movs r0, 0x1
_0801D1A8:
	pop {r1}
	bx r1
	thumb_func_end sub_801D194

	thumb_func_start sub_801D1AC
sub_801D1AC: @ 801D1AC
	movs r1, 0x4
	str r1, [r0, 0x8]
	movs r0, 0
	bx lr
	thumb_func_end sub_801D1AC

	thumb_func_start sub_801D1B4
sub_801D1B4: @ 801D1B4
	movs r0, 0x3
	bx lr
	thumb_func_end sub_801D1B4

	thumb_func_start sub_801D1B8
sub_801D1B8: @ 801D1B8
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x38
	bl sub_801D8C0
	cmp r0, 0
	beq _0801D1CA
	movs r0, 0x4
	str r0, [r4, 0x8]
_0801D1CA:
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801D1B8

	thumb_func_start sub_801D1D4
sub_801D1D4: @ 801D1D4
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x38
	bl sub_801D8CC
	cmp r0, 0
	beq _0801D1E6
	movs r0, 0x4
	str r0, [r4, 0x8]
_0801D1E6:
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801D1D4

	thumb_func_start sub_801D1F0
sub_801D1F0: @ 801D1F0
	push {r4,r5,lr}
	adds r5, r0, 0
	ldr r0, [r5, 0xC]
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	ldr r2, [r5, 0x10]
	adds r3, r2, r1
	adds r0, 0x1
	str r0, [r5, 0xC]
	ldr r0, [r3]
	cmp r0, 0x1E
	bls _0801D20C
	b _0801D464
_0801D20C:
	lsls r0, 2
	ldr r1, =_0801D21C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801D21C:
	.4byte _0801D298
	.4byte _0801D2A2
	.4byte _0801D2A8
	.4byte _0801D2E2
	.4byte _0801D2D8
	.4byte _0801D2BA
	.4byte _0801D2C6
	.4byte _0801D2EC
	.4byte _0801D300
	.4byte _0801D308
	.4byte _0801D31E
	.4byte _0801D32E
	.4byte _0801D33A
	.4byte _0801D360
	.4byte _0801D348
	.4byte _0801D390
	.4byte _0801D378
	.4byte _0801D3DC
	.4byte _0801D3A8
	.4byte _0801D3C0
	.4byte _0801D3CE
	.4byte _0801D406
	.4byte _0801D3EA
	.4byte _0801D3F8
	.4byte _0801D40E
	.4byte _0801D418
	.4byte _0801D422
	.4byte _0801D43C
	.4byte _0801D450
	.4byte _0801D458
	.4byte _0801D2CC
_0801D298:
	movs r0, 0x1
	str r0, [r5, 0x8]
	ldr r0, [r3, 0x4]
	str r0, [r5, 0x4]
	b _0801D464
_0801D2A2:
	movs r0, 0x3
	str r0, [r5, 0x8]
	b _0801D464
_0801D2A8:
	adds r0, r5, 0
	adds r0, 0x38
	ldr r1, [r3, 0x4]
	ldr r2, [r5, 0x14]
	bl sub_801D928
	movs r0, 0x2
	str r0, [r5, 0x8]
	b _0801D464
_0801D2BA:
	ldr r0, [r5, 0x20]
	ldr r1, [r5, 0x14]
	movs r2, 0x64
	bl memcpy
	b _0801D464
_0801D2C6:
	ldr r0, [r5, 0x20]
	movs r1, 0
	b _0801D2D0
_0801D2CC:
	ldr r0, [r5, 0x20]
	movs r1, 0x1
_0801D2D0:
	bl sub_801B6A0
	str r0, [r5, 0x4]
	b _0801D464
_0801D2D8:
	ldr r1, [r5, 0x4]
	ldr r0, [r3, 0x4]
	cmp r1, r0
	beq _0801D2E2
	b _0801D464
_0801D2E2:
	movs r0, 0
	str r0, [r5, 0xC]
	ldr r0, [r3, 0x8]
	str r0, [r5, 0x10]
	b _0801D464
_0801D2EC:
	ldr r0, [r3, 0x8]
	ldr r1, [r5, 0x18]
	bl sub_801D188
	adds r2, r0, 0
	ldr r1, [r5, 0x20]
	bl sub_801B6EC
	str r0, [r5, 0x4]
	b _0801D464
_0801D300:
	ldr r0, [r5, 0x14]
	ldr r0, [r0]
	str r0, [r5, 0x4]
	b _0801D464
_0801D308:
	ldr r0, [r3, 0x8]
	adds r1, r5, 0
	adds r1, 0x34
	bl sub_801D188
	adds r2, r0, 0
	ldr r1, [r5, 0x20]
	bl sub_801B708
	str r0, [r5, 0x4]
	b _0801D464
_0801D31E:
	ldr r0, [r5, 0x20]
	ldr r1, [r3, 0x4]
	bl sub_801B784
	lsls r0, 16
	lsrs r0, 16
	str r0, [r5, 0x4]
	b _0801D464
_0801D32E:
	ldr r0, [r5, 0x20]
	ldr r1, [r3, 0x8]
	bl sub_801B748
	str r0, [r5, 0x4]
	b _0801D464
_0801D33A:
	ldr r0, [r3, 0x8]
	ldr r1, [r5, 0x14]
	ldr r1, [r1]
	bl sub_801D194
	str r0, [r5, 0x4]
	b _0801D464
_0801D348:
	ldr r0, [r3, 0x8]
	ldr r1, [r5, 0x1C]
	bl sub_801D188
	adds r2, r0, 0
	movs r3, 0xDE
	lsls r3, 1
	adds r0, r5, 0
	movs r1, 0x17
	bl mevent_srv_814501C
	b _0801D464
_0801D360:
	ldr r0, [r3, 0x8]
	ldr r1, [r5, 0x18]
	bl sub_801D188
	adds r2, r0, 0
	movs r3, 0xA6
	lsls r3, 1
	adds r0, r5, 0
	movs r1, 0x16
	bl mevent_srv_814501C
	b _0801D464
_0801D378:
	ldr r0, [r3, 0x8]
	adds r1, r5, 0
	adds r1, 0x34
	bl sub_801D188
	adds r2, r0, 0
	adds r0, r5, 0
	movs r1, 0x18
	movs r3, 0x4
	bl mevent_srv_814501C
	b _0801D464
_0801D390:
	ldr r2, [r3, 0x8]
	cmp r2, 0
	bne _0801D39C
	ldr r2, [r5, 0x24]
	ldr r3, [r5, 0x28]
	b _0801D39E
_0801D39C:
	ldr r3, [r3, 0x4]
_0801D39E:
	adds r0, r5, 0
	movs r1, 0x19
	bl mevent_srv_814501C
	b _0801D464
_0801D3A8:
	ldr r2, [r3, 0x8]
	cmp r2, 0
	bne _0801D3B4
	ldr r2, [r5, 0x2C]
	ldr r3, [r5, 0x30]
	b _0801D3B6
_0801D3B4:
	ldr r3, [r3, 0x4]
_0801D3B6:
	adds r0, r5, 0
	movs r1, 0x10
	bl mevent_srv_814501C
	b _0801D464
_0801D3C0:
	ldr r2, [r3, 0x8]
	adds r0, r5, 0
	movs r1, 0x1A
	movs r3, 0xBC
	bl mevent_srv_814501C
	b _0801D464
_0801D3CE:
	ldr r2, [r3, 0x8]
	ldr r3, [r3, 0x4]
	adds r0, r5, 0
	movs r1, 0x15
	bl mevent_srv_814501C
	b _0801D464
_0801D3DC:
	ldr r2, [r3, 0x8]
	ldr r3, [r3, 0x4]
	adds r0, r5, 0
	movs r1, 0x1C
	bl mevent_srv_814501C
	b _0801D464
_0801D3EA:
	ldr r0, [r5, 0x18]
	ldr r1, [r3, 0x8]
	movs r2, 0xA6
	lsls r2, 1
	bl memcpy
	b _0801D464
_0801D3F8:
	ldr r0, [r5, 0x1C]
	ldr r1, [r3, 0x8]
	movs r2, 0xDE
	lsls r2, 1
	bl memcpy
	b _0801D464
_0801D406:
	ldr r0, [r3, 0x8]
	ldr r0, [r0]
	str r0, [r5, 0x34]
	b _0801D464
_0801D40E:
	ldr r0, [r3, 0x8]
	str r0, [r5, 0x24]
	ldr r0, [r3, 0x4]
	str r0, [r5, 0x28]
	b _0801D464
_0801D418:
	ldr r0, [r3, 0x8]
	str r0, [r5, 0x2C]
	ldr r0, [r3, 0x4]
	str r0, [r5, 0x30]
	b _0801D464
_0801D422:
	ldr r4, [r5, 0x18]
	bl sav1_get_mevent_buffer_1
	adds r1, r0, 0
	movs r2, 0xA6
	lsls r2, 1
	adds r0, r4, 0
	bl memcpy
	ldr r0, [r5, 0x18]
	bl sub_801B3C0
	b _0801D464
_0801D43C:
	ldr r4, [r5, 0x1C]
	bl sub_801B00C
	adds r1, r0, 0
	movs r2, 0xDE
	lsls r2, 1
	adds r0, r4, 0
	bl memcpy
	b _0801D464
_0801D450:
	bl sub_8099244
	str r0, [r5, 0x24]
	b _0801D464
_0801D458:
	ldr r2, [r3, 0x8]
	ldr r3, [r3, 0x4]
	adds r0, r5, 0
	movs r1, 0x1B
	bl mevent_srv_814501C
_0801D464:
	movs r0, 0x1
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_801D1F0

	thumb_func_start mevent_dispatch_08145600
mevent_dispatch_08145600: @ 801D46C
	push {lr}
	ldr r2, =gUnknown_082F2548
	ldr r1, [r0, 0x8]
	lsls r1, 2
	adds r1, r2
	ldr r1, [r1]
	bl _call_via_r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end mevent_dispatch_08145600

	thumb_func_start sub_801D484
sub_801D484: @ 801D484
	push {r4,r5,lr}
	adds r5, r0, 0
	ldr r4, =gUnknown_02022C80
	movs r0, 0x50
	bl AllocZeroed
	str r0, [r4]
	movs r1, 0x1
	movs r2, 0
	bl mevent_srv_ish_init
	ldr r0, [r4]
	str r5, [r0, 0x4C]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801D484

	thumb_func_start sub_801D4A8
sub_801D4A8: @ 801D4A8
	push {r4-r6,lr}
	adds r6, r0, 0
	ldr r4, =gUnknown_02022C80
	ldr r0, [r4]
	cmp r0, 0
	bne _0801D4BC
	movs r0, 0x6
	b _0801D4DC
	.pool
_0801D4BC:
	bl mevent_srv_ish_exec
	adds r5, r0, 0
	cmp r5, 0x6
	bne _0801D4DA
	ldr r0, [r4]
	ldr r1, [r0, 0x4]
	strh r1, [r6]
	bl sub_801D55C
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
_0801D4DA:
	adds r0, r5, 0
_0801D4DC:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801D4A8

	thumb_func_start sub_801D4E4
sub_801D4E4: @ 801D4E4
	ldr r0, =gUnknown_02022C80
	ldr r1, [r0]
	ldr r0, [r1, 0xC]
	adds r0, 0x1
	str r0, [r1, 0xC]
	bx lr
	.pool
	thumb_func_end sub_801D4E4

	thumb_func_start sub_801D4F4
sub_801D4F4: @ 801D4F4
	ldr r0, =gUnknown_02022C80
	ldr r0, [r0]
	ldr r0, [r0, 0x20]
	bx lr
	.pool
	thumb_func_end sub_801D4F4

	thumb_func_start sub_801D500
sub_801D500: @ 801D500
	ldr r1, =gUnknown_02022C80
	ldr r1, [r1]
	str r0, [r1, 0x4]
	bx lr
	.pool
	thumb_func_end sub_801D500

	thumb_func_start mevent_srv_ish_init
mevent_srv_ish_init: @ 801D50C
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r4, r0, 0
	adds r6, r1, 0
	mov r8, r2
	movs r0, 0
	str r0, [r4]
	str r0, [r4, 0x8]
	str r0, [r4, 0xC]
	movs r5, 0x80
	lsls r5, 3
	adds r0, r5, 0
	bl AllocZeroed
	str r0, [r4, 0x14]
	adds r0, r5, 0
	bl AllocZeroed
	str r0, [r4, 0x18]
	adds r0, r5, 0
	bl AllocZeroed
	str r0, [r4, 0x1C]
	movs r0, 0x40
	bl AllocZeroed
	str r0, [r4, 0x20]
	adds r4, 0x24
	adds r0, r4, 0
	adds r1, r6, 0
	mov r2, r8
	bl sub_801D8D8
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end mevent_srv_ish_init

	thumb_func_start sub_801D55C
sub_801D55C: @ 801D55C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x14]
	bl Free
	ldr r0, [r4, 0x18]
	bl Free
	ldr r0, [r4, 0x1C]
	bl Free
	ldr r0, [r4, 0x20]
	bl Free
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801D55C

	thumb_func_start sub_801D580
sub_801D580: @ 801D580
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x1C]
	ldr r1, [r4, 0x18]
	movs r2, 0x80
	lsls r2, 3
	bl memcpy
	movs r0, 0
	str r0, [r4, 0x10]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801D580

	thumb_func_start sub_801D59C
sub_801D59C: @ 801D59C
	push {r4-r6,lr}
	sub sp, 0x4
	adds r4, r0, 0
	adds r6, r1, 0
	adds r5, r2, 0
	movs r0, 0
	str r0, [sp]
	ldr r1, [r4, 0x14]
	ldr r2, =0x05000100
	mov r0, sp
	bl CpuSet
	ldr r2, [r4, 0x14]
	str r5, [r2]
	adds r4, 0x24
	adds r0, r4, 0
	adds r1, r6, 0
	movs r3, 0x4
	bl sub_801D904
	add sp, 0x4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801D59C

	thumb_func_start sub_801D5D0
sub_801D5D0: @ 801D5D0
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x1C]
	ldr r1, =gUnknown_082F2598
	movs r2, 0x80
	lsls r2, 3
	bl memcpy
	movs r1, 0
	str r1, [r4, 0x10]
	movs r0, 0x4
	str r0, [r4, 0x8]
	str r1, [r4, 0xC]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801D5D0

	thumb_func_start sub_801D5F8
sub_801D5F8: @ 801D5F8
	movs r0, 0x6
	bx lr
	thumb_func_end sub_801D5F8

	thumb_func_start sub_801D5FC
sub_801D5FC: @ 801D5FC
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x24
	bl sub_801D8C0
	cmp r0, 0
	beq _0801D612
	movs r0, 0x4
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
_0801D612:
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801D5FC

	thumb_func_start sub_801D61C
sub_801D61C: @ 801D61C
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x24
	bl sub_801D8CC
	cmp r0, 0
	beq _0801D632
	movs r0, 0x4
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
_0801D632:
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801D61C

	thumb_func_start sub_801D63C
sub_801D63C: @ 801D63C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x10]
	lsls r2, r0, 3
	ldr r1, [r4, 0x1C]
	adds r2, r1, r2
	adds r0, 0x1
	str r0, [r4, 0x10]
	ldr r0, [r2]
	cmp r0, 0x15
	bls _0801D654
	b _0801D804
_0801D654:
	lsls r0, 2
	ldr r1, =_0801D664
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801D664:
	.4byte _0801D804
	.4byte _0801D6BC
	.4byte _0801D6C4
	.4byte _0801D6D4
	.4byte _0801D70E
	.4byte _0801D716
	.4byte _0801D6FE
	.4byte _0801D708
	.4byte _0801D764
	.4byte _0801D790
	.4byte _0801D788
	.4byte _0801D72C
	.4byte _0801D742
	.4byte _0801D758
	.4byte _0801D77C
	.4byte _0801D7B8
	.4byte _0801D7BC
	.4byte _0801D7C4
	.4byte _0801D7D0
	.4byte _0801D6EA
	.4byte _0801D6D8
	.4byte _0801D7F0
_0801D6BC:
	ldr r0, [r2, 0x4]
	str r0, [r4, 0x4]
	movs r0, 0x1
	b _0801D7FE
_0801D6C4:
	adds r0, r4, 0
	adds r0, 0x24
	ldr r1, [r2, 0x4]
	ldr r2, [r4, 0x18]
	bl sub_801D928
	movs r0, 0x2
	b _0801D7FE
_0801D6D4:
	movs r0, 0x3
	b _0801D7FE
_0801D6D8:
	adds r0, r4, 0
	adds r0, 0x24
	ldr r2, [r4, 0x14]
	movs r1, 0x14
	movs r3, 0
	bl sub_801D904
	movs r0, 0x3
	b _0801D7FE
_0801D6EA:
	ldrb r0, [r2, 0x4]
	bl GetGameStat
	adds r2, r0, 0
	adds r0, r4, 0
	movs r1, 0x12
	bl sub_801D59C
	movs r0, 0x3
	b _0801D7FE
_0801D6FE:
	ldr r0, [r4, 0x4]
	cmp r0, 0
	beq _0801D706
	b _0801D804
_0801D706:
	b _0801D70E
_0801D708:
	ldr r0, [r4, 0x4]
	cmp r0, 0x1
	bne _0801D804
_0801D70E:
	adds r0, r4, 0
	bl sub_801D580
	b _0801D804
_0801D716:
	ldr r0, [r4, 0x20]
	ldr r1, [r4, 0x18]
	movs r2, 0x40
	bl memcpy
	movs r0, 0x5
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
	movs r0, 0x2
	b _0801D806
_0801D72C:
	ldr r0, [r4, 0x20]
	ldr r1, [r4, 0x18]
	movs r2, 0x40
	bl memcpy
	movs r0, 0x5
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
	movs r0, 0x3
	b _0801D806
_0801D742:
	ldr r0, [r4, 0x20]
	ldr r1, [r4, 0x18]
	movs r2, 0x40
	bl memcpy
	movs r0, 0x5
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
	movs r0, 0x5
	b _0801D806
_0801D758:
	movs r0, 0x5
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
	movs r0, 0x4
	b _0801D806
_0801D764:
	ldr r0, [r4, 0x14]
	ldr r1, [r4, 0x4C]
	bl sub_801B580
	adds r0, r4, 0
	adds r0, 0x24
	ldr r2, [r4, 0x14]
	movs r1, 0x11
	movs r3, 0x64
	bl sub_801D904
	b _0801D804
_0801D77C:
	ldr r2, [r4, 0x4]
	adds r0, r4, 0
	movs r1, 0x13
	bl sub_801D59C
	b _0801D804
_0801D788:
	ldr r0, [r4, 0x18]
	bl sub_801B21C
	b _0801D804
_0801D790:
	ldr r0, [r4, 0x18]
	bl sub_801B1A4
	cmp r0, 0
	bne _0801D7AC
	ldr r0, [r4, 0x18]
	bl sub_801B078
	adds r0, r4, 0
	movs r1, 0x13
	movs r2, 0
	bl sub_801D59C
	b _0801D804
_0801D7AC:
	adds r0, r4, 0
	movs r1, 0x13
	movs r2, 0x1
	bl sub_801D59C
	b _0801D804
_0801D7B8:
	movs r0, 0x6
	b _0801D7FE
_0801D7BC:
	ldr r0, [r4, 0x18]
	bl sub_801B508
	b _0801D804
_0801D7C4:
	ldr r0, [r4, 0x18]
	movs r1, 0xFA
	lsls r1, 2
	bl sub_80992A0
	b _0801D804
_0801D7D0:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000bec
	adds r0, r1
	ldr r1, [r4, 0x18]
	movs r2, 0xBC
	bl memcpy
	bl ValidateEReaderTrainer
	b _0801D804
	.pool
_0801D7F0:
	ldr r0, =gDecompressionBuffer
	ldr r1, [r4, 0x18]
	movs r2, 0x80
	lsls r2, 3
	bl memcpy
	movs r0, 0x7
_0801D7FE:
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
_0801D804:
	movs r0, 0x1
_0801D806:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801D63C

	thumb_func_start sub_801D810
sub_801D810: @ 801D810
	push {lr}
	adds r1, r0, 0
	ldr r0, [r1, 0xC]
	cmp r0, 0
	beq _0801D822
	movs r0, 0x4
	str r0, [r1, 0x8]
	movs r0, 0
	str r0, [r1, 0xC]
_0801D822:
	movs r0, 0x1
	pop {r1}
	bx r1
	thumb_func_end sub_801D810

	thumb_func_start sub_801D828
sub_801D828: @ 801D828
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0xC]
	cmp r0, 0
	beq _0801D838
	cmp r0, 0x1
	beq _0801D846
	b _0801D858
_0801D838:
	ldr r0, [r4, 0x18]
	bl sub_8153870
	ldr r0, [r4, 0xC]
	adds r0, 0x1
	str r0, [r4, 0xC]
	b _0801D858
_0801D846:
	adds r0, r4, 0x4
	bl sub_8153884
	adds r1, r0, 0
	cmp r1, 0
	bne _0801D858
	movs r0, 0x4
	str r0, [r4, 0x8]
	str r1, [r4, 0xC]
_0801D858:
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801D828

	thumb_func_start sub_801D860
sub_801D860: @ 801D860
	push {r4,lr}
	adds r4, r0, 0
	ldr r3, =gDecompressionBuffer
	adds r0, r4, 0x4
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	ldr r2, =gSaveBlock1Ptr
	ldr r2, [r2]
	bl _call_via_r3
	cmp r0, 0x1
	bne _0801D880
	movs r0, 0x4
	str r0, [r4, 0x8]
	movs r0, 0
	str r0, [r4, 0xC]
_0801D880:
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801D860

	thumb_func_start mevent_srv_ish_exec
mevent_srv_ish_exec: @ 801D894
	push {r4,r5,lr}
	sub sp, 0x20
	mov r2, sp
	ldr r1, =gUnknown_082F255C
	ldm r1!, {r3-r5}
	stm r2!, {r3-r5}
	ldm r1!, {r3-r5}
	stm r2!, {r3-r5}
	ldm r1!, {r3,r4}
	stm r2!, {r3,r4}
	ldr r1, [r0, 0x8]
	lsls r1, 2
	add r1, sp
	ldr r1, [r1]
	bl _call_via_r1
	add sp, 0x20
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end mevent_srv_ish_exec

	thumb_func_start sub_801D8C0
sub_801D8C0: @ 801D8C0
	push {lr}
	ldr r1, [r0, 0x20]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_801D8C0

	thumb_func_start sub_801D8CC
sub_801D8CC: @ 801D8CC
	push {lr}
	ldr r1, [r0, 0x24]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_801D8CC

	thumb_func_start sub_801D8D8
sub_801D8D8: @ 801D8D8
	movs r3, 0
	strb r1, [r0, 0x4]
	strb r2, [r0, 0x5]
	str r3, [r0]
	strh r3, [r0, 0x12]
	strh r3, [r0, 0x14]
	strh r3, [r0, 0x10]
	strh r3, [r0, 0xA]
	strh r3, [r0, 0xC]
	strh r3, [r0, 0x8]
	str r3, [r0, 0x1C]
	str r3, [r0, 0x18]
	ldr r1, =sub_801DA5C
	str r1, [r0, 0x24]
	ldr r1, =sub_801D988
	str r1, [r0, 0x20]
	bx lr
	.pool
	thumb_func_end sub_801D8D8

	thumb_func_start sub_801D904
sub_801D904: @ 801D904
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0
	str r0, [r4]
	strh r1, [r4, 0xE]
	strh r0, [r4, 0x10]
	strh r0, [r4, 0x12]
	cmp r3, 0
	beq _0801D91A
	strh r3, [r4, 0x14]
	b _0801D920
_0801D91A:
	movs r0, 0x80
	lsls r0, 3
	strh r0, [r4, 0x14]
_0801D920:
	str r2, [r4, 0x1C]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801D904

	thumb_func_start sub_801D928
sub_801D928: @ 801D928
	movs r3, 0
	str r3, [r0]
	strh r1, [r0, 0x6]
	strh r3, [r0, 0x8]
	strh r3, [r0, 0xA]
	strh r3, [r0, 0xC]
	str r2, [r0, 0x18]
	bx lr
	thumb_func_end sub_801D928

	thumb_func_start sub_801D938
sub_801D938: @ 801D938
	push {lr}
	adds r3, r0, 0
	adds r0, r1, 0
	lsls r3, 8
	ldr r1, =gBlockRecvBuffer
	adds r3, r1
	adds r1, r3, 0
	bl memcpy
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801D938

	thumb_func_start sub_801D954
sub_801D954: @ 801D954
	push {r4,lr}
	adds r4, r0, 0
	bl GetBlockReceivedStatus
	lsls r0, 24
	lsrs r0, 24
	asrs r0, r4
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	bne _0801D96E
	movs r0, 0
	b _0801D970
_0801D96E:
	movs r0, 0x1
_0801D970:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801D954

	thumb_func_start sub_801D978
sub_801D978: @ 801D978
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	bl ResetBlockReceivedFlag
	pop {r0}
	bx r0
	thumb_func_end sub_801D978

	thumb_func_start sub_801D988
sub_801D988: @ 801D988
	push {r4-r6,lr}
	sub sp, 0x8
	adds r5, r0, 0
	ldr r6, [r5]
	cmp r6, 0x1
	beq _0801D9EC
	cmp r6, 0x1
	bgt _0801D99E
	cmp r6, 0
	beq _0801D9A4
	b _0801DA52
_0801D99E:
	cmp r6, 0x2
	beq _0801DA38
	b _0801DA52
_0801D9A4:
	ldrb r0, [r5, 0x5]
	bl sub_801D954
	cmp r0, 0
	beq _0801DA52
	ldrb r0, [r5, 0x5]
	mov r4, sp
	mov r1, sp
	movs r2, 0x8
	bl sub_801D938
	ldrh r1, [r4, 0x4]
	strh r1, [r5, 0xC]
	ldrh r0, [r4, 0x2]
	strh r0, [r5, 0xA]
	lsls r1, 16
	movs r0, 0x80
	lsls r0, 19
	cmp r1, r0
	bls _0801D9D2
_0801D9CC:
	bl sub_8010198
	b _0801DA52
_0801D9D2:
	mov r1, sp
	ldrh r0, [r5, 0x6]
	ldrh r1, [r1]
	cmp r0, r1
	bne _0801D9CC
	strh r6, [r5, 0x8]
	ldrb r0, [r5, 0x5]
	bl sub_801D978
	ldr r0, [r5]
	adds r0, 0x1
	str r0, [r5]
	b _0801DA52
_0801D9EC:
	ldrb r0, [r5, 0x5]
	bl sub_801D954
	cmp r0, 0
	beq _0801DA52
	ldrh r0, [r5, 0x8]
	lsls r1, r0, 6
	subs r1, r0
	lsls r3, r1, 2
	ldrh r0, [r5, 0xC]
	subs r2, r0, r3
	cmp r2, 0xFC
	bhi _0801DA1E
	ldrb r0, [r5, 0x5]
	ldr r1, [r5, 0x18]
	adds r1, r3
	bl sub_801D938
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	ldr r0, [r5]
	adds r0, 0x1
	str r0, [r5]
	b _0801DA30
_0801DA1E:
	ldrb r0, [r5, 0x5]
	ldr r1, [r5, 0x18]
	adds r1, r3
	movs r2, 0xFC
	bl sub_801D938
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
_0801DA30:
	ldrb r0, [r5, 0x5]
	bl sub_801D978
	b _0801DA52
_0801DA38:
	ldr r0, [r5, 0x18]
	ldrh r1, [r5, 0xC]
	bl CalcCRC16WithTable
	lsls r0, 16
	lsrs r0, 16
	ldrh r1, [r5, 0xA]
	cmp r0, r1
	bne _0801D9CC
	movs r0, 0
	str r0, [r5]
	movs r0, 0x1
	b _0801DA54
_0801DA52:
	movs r0, 0
_0801DA54:
	add sp, 0x8
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801D988

	thumb_func_start sub_801DA5C
sub_801DA5C: @ 801DA5C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r4, r0, 0
	ldr r5, [r4]
	cmp r5, 0x1
	beq _0801DAC8
	cmp r5, 0x1
	bgt _0801DA72
	cmp r5, 0
	beq _0801DA7C
	b _0801DB5E
_0801DA72:
	cmp r5, 0x2
	beq _0801DB1C
	cmp r5, 0x3
	beq _0801DB46
	b _0801DB5E
_0801DA7C:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801DB5E
	ldrh r1, [r4, 0xE]
	ldr r2, =0xffff0000
	ldr r0, [sp]
	ands r0, r2
	orrs r0, r1
	str r0, [sp]
	ldrh r1, [r4, 0x14]
	ldr r0, [sp, 0x4]
	ands r0, r2
	orrs r0, r1
	str r0, [sp, 0x4]
	ldr r0, [r4, 0x1C]
	bl CalcCRC16WithTable
	lsls r0, 16
	ldr r2, =0x0000ffff
	ldr r1, [sp]
	ands r1, r2
	orrs r1, r0
	str r1, [sp]
	lsrs r1, 16
	strh r1, [r4, 0x12]
	strh r5, [r4, 0x10]
	movs r0, 0
	mov r1, sp
	movs r2, 0x8
	bl SendBlock
	b _0801DB3E
	.pool
_0801DAC8:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801DB5E
	ldrb r0, [r4, 0x4]
	bl sub_801D954
	cmp r0, 0
	beq _0801DB5E
	ldrb r0, [r4, 0x4]
	bl sub_801D978
	ldrh r1, [r4, 0x10]
	lsls r0, r1, 6
	subs r0, r1
	lsls r3, r0, 2
	ldrh r0, [r4, 0x14]
	subs r0, r3
	cmp r0, 0xFC
	bhi _0801DB08
	ldr r1, [r4, 0x1C]
	adds r1, r3
	lsls r2, r0, 16
	lsrs r2, 16
	movs r0, 0
	bl SendBlock
	ldrh r0, [r4, 0x10]
	adds r0, 0x1
	strh r0, [r4, 0x10]
	b _0801DB3E
_0801DB08:
	ldr r1, [r4, 0x1C]
	adds r1, r3
	movs r0, 0
	movs r2, 0xFC
	bl SendBlock
	ldrh r0, [r4, 0x10]
	adds r0, 0x1
	strh r0, [r4, 0x10]
	b _0801DB5E
_0801DB1C:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801DB5E
	ldr r0, [r4, 0x1C]
	ldrh r1, [r4, 0x14]
	bl CalcCRC16WithTable
	lsls r0, 16
	lsrs r0, 16
	ldrh r1, [r4, 0x12]
	cmp r0, r1
	beq _0801DB3E
	bl sub_8010198
	b _0801DB5E
_0801DB3E:
	ldr r0, [r4]
	adds r0, 0x1
	str r0, [r4]
	b _0801DB5E
_0801DB46:
	ldrb r0, [r4, 0x4]
	bl sub_801D954
	cmp r0, 0
	beq _0801DB5E
	ldrb r0, [r4, 0x4]
	bl sub_801D978
	movs r0, 0
	str r0, [r4]
	movs r0, 0x1
	b _0801DB60
_0801DB5E:
	movs r0, 0
_0801DB60:
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_801DA5C

	thumb_func_start sub_801DB68
sub_801DB68: @ 801DB68
	push {r4,r5,lr}
	adds r4, r0, 0
	bl GetSaveBlock1Field356C
	adds r5, r0, 0
	movs r0, 0x3
	adds r1, r4, 0
	ands r1, r0
	ldrb r2, [r5]
	movs r0, 0x4
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r5]
	cmp r4, 0x2
	bhi _0801DB8E
	cmp r4, 0x1
	bcs _0801DB94
	b _0801DBB8
_0801DB8E:
	cmp r4, 0x3
	beq _0801DBA6
	b _0801DBB8
_0801DB94:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xF
	bl __umodsi3
	adds r0, 0x10
	b _0801DBB6
_0801DBA6:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xF
	bl __umodsi3
	adds r0, 0x1
_0801DBB6:
	strb r0, [r5, 0x1]
_0801DBB8:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801DB68

	thumb_func_start sub_801DBC0
sub_801DBC0: @ 801DBC0
	push {lr}
	bl GetSaveBlock1Field356C
	movs r1, 0
	strb r1, [r0]
	strb r1, [r0, 0x1]
	ldr r0, =0x0000402e
	bl VarSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801DBC0

	thumb_func_start sub_801DBDC
sub_801DBDC: @ 801DBDC
	push {r4,lr}
	ldr r0, =0x0000402e
	bl GetVarPointer
	adds r4, r0, 0
	bl GetSaveBlock1Field356C
	adds r2, r0, 0
	ldr r0, [r2]
	lsls r0, 24
	lsrs r0, 29
	cmp r0, 0x4
	bls _0801DC10
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	lsls r0, 16
	ldr r1, =0x01f30000
	cmp r0, r1
	bls _0801DC10
	ldrb r0, [r2]
	movs r1, 0x1F
	ands r1, r0
	strb r1, [r2]
	movs r0, 0
	strh r0, [r4]
_0801DC10:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801DBDC

	thumb_func_start sub_801DC20
sub_801DC20: @ 801DC20
	push {r4-r6,lr}
	ldr r6, =gSpecialVar_Result
	bl GetSaveBlock1Field356C
	adds r4, r0, 0
	bl IsMysteryEventEnabled
	cmp r0, 0
	beq _0801DC3A
	bl sub_801B0CC
	cmp r0, 0
	bne _0801DC44
_0801DC3A:
	movs r0, 0
	b _0801DCA6
	.pool
_0801DC44:
	adds r0, r4, 0
	bl sub_801DD44
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x6
	bhi _0801DCA4
	lsls r0, r5, 2
	ldr r1, =_0801DC60
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801DC60:
	.4byte _0801DCA4
	.4byte _0801DC7C
	.4byte _0801DC7C
	.4byte _0801DCA4
	.4byte _0801DC86
	.4byte _0801DC96
	.4byte _0801DCA4
_0801DC7C:
	adds r0, r4, 0
	bl sub_801DCAC
	strh r0, [r6]
	b _0801DCA4
_0801DC86:
	adds r0, r4, 0
	bl sub_801DCAC
	strh r0, [r6]
	adds r0, r4, 0
	bl sub_801DCD8
	b _0801DCA4
_0801DC96:
	adds r0, r4, 0
	bl sub_801DCAC
	strh r0, [r6]
	adds r0, r4, 0
	bl sub_801DCCC
_0801DCA4:
	adds r0, r5, 0
_0801DCA6:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801DC20

	thumb_func_start sub_801DCAC
sub_801DCAC: @ 801DCAC
	push {r4,lr}
	ldrb r2, [r0]
	movs r1, 0x4
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	ldrb r4, [r0, 0x1]
	adds r4, 0x84
	movs r1, 0
	strb r1, [r0, 0x1]
	bl sub_801DD10
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801DCAC

	thumb_func_start sub_801DCCC
sub_801DCCC: @ 801DCCC
	ldrb r2, [r0]
	movs r1, 0x1D
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	bx lr
	thumb_func_end sub_801DCCC

	thumb_func_start sub_801DCD8
sub_801DCD8: @ 801DCD8
	push {r4,lr}
	adds r3, r0, 0
	ldr r0, [r3]
	lsls r0, 27
	lsrs r0, 29
	adds r0, 0x1
	movs r1, 0x7
	ands r0, r1
	lsls r0, 2
	ldrb r1, [r3]
	movs r4, 0x1D
	negs r4, r4
	adds r2, r4, 0
	ands r2, r1
	orrs r2, r0
	strb r2, [r3]
	ldr r0, [r3]
	lsls r0, 27
	lsrs r0, 29
	cmp r0, 0x4
	bls _0801DD0A
	ands r2, r4
	movs r0, 0x10
	orrs r2, r0
	strb r2, [r3]
_0801DD0A:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801DCD8

	thumb_func_start sub_801DD10
sub_801DD10: @ 801DD10
	push {r4,lr}
	adds r3, r0, 0
	ldr r0, [r3]
	lsls r0, 24
	lsrs r0, 29
	adds r0, 0x1
	lsls r0, 5
	ldrb r1, [r3]
	movs r4, 0x1F
	adds r2, r4, 0
	ands r2, r1
	orrs r2, r0
	strb r2, [r3]
	ldr r0, [r3]
	lsls r0, 24
	lsrs r0, 29
	cmp r0, 0x5
	bls _0801DD3C
	ands r2, r4
	movs r0, 0xA0
	orrs r2, r0
	strb r2, [r3]
_0801DD3C:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801DD10

	thumb_func_start sub_801DD44
sub_801DD44: @ 801DD44
	push {lr}
	adds r2, r0, 0
	ldrb r1, [r2]
	movs r0, 0xE0
	ands r0, r1
	cmp r0, 0xA0
	bne _0801DD56
	movs r0, 0x6
	b _0801DD92
_0801DD56:
	ldr r1, [r2]
	lsls r0, r1, 30
	lsrs r0, 30
	cmp r0, 0x1
	beq _0801DD78
	cmp r0, 0x1
	bgt _0801DD6A
	cmp r0, 0
	beq _0801DD74
	b _0801DD90
_0801DD6A:
	cmp r0, 0x2
	beq _0801DD7C
	cmp r0, 0x3
	beq _0801DD80
	b _0801DD90
_0801DD74:
	movs r0, 0x3
	b _0801DD92
_0801DD78:
	movs r0, 0x1
	b _0801DD92
_0801DD7C:
	movs r0, 0x2
	b _0801DD92
_0801DD80:
	lsls r0, r1, 27
	lsrs r0, 29
	cmp r0, 0x2
	bhi _0801DD8C
	movs r0, 0x4
	b _0801DD92
_0801DD8C:
	movs r0, 0x5
	b _0801DD92
_0801DD90:
	movs r0, 0
_0801DD92:
	pop {r1}
	bx r1
	thumb_func_end sub_801DD44

	thumb_func_start sub_801DD98
sub_801DD98: @ 801DD98
	push {r4,lr}
	ldr r4, =gUnknown_02022C84
	movs r0, 0xDE
	lsls r0, 1
	bl Alloc
	str r0, [r4]
	bl sub_801DDD0
	ldr r1, =gKeyRepeatStartDelay
	movs r0, 0x14
	strh r0, [r1]
	movs r0, 0
	bl SetVBlankCallback
	ldr r0, =c2_081284E0
	bl SetMainCallback2
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801DD98

	thumb_func_start sub_801DDD0
sub_801DDD0: @ 801DDD0
	push {r4-r7,lr}
	adds r4, r0, 0
	movs r5, 0
	movs r0, 0
	strh r0, [r4, 0x4]
	strh r0, [r4, 0x6]
	strb r5, [r4, 0x10]
	strb r5, [r4, 0x11]
	strb r5, [r4, 0x12]
	strb r5, [r4, 0x14]
	strb r5, [r4, 0x15]
	strb r5, [r4, 0x16]
	movs r0, 0xFF
	strb r0, [r4, 0x1A]
	bl GetLinkPlayerCount
	strb r0, [r4, 0xD]
	bl GetMultiplayerId
	strb r0, [r4, 0x13]
	strb r5, [r4, 0x17]
	strb r5, [r4, 0x18]
	movs r1, 0xC8
	lsls r1, 1
	adds r0, r4, r1
	bl sub_801EF1C
	ldr r7, =gSaveBlock1Ptr
	ldr r6, =0x00003c88
	adds r4, 0xB9
	movs r5, 0x9
_0801DE0E:
	ldr r1, [r7]
	adds r1, r6
	adds r0, r4, 0
	bl StringCopy
	adds r6, 0x15
	adds r4, 0x15
	subs r5, 0x1
	cmp r5, 0
	bge _0801DE0E
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801DDD0

	thumb_func_start sub_801DE30
sub_801DE30: @ 801DE30
	push {r4,lr}
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	ldrb r0, [r0, 0xE]
	bl DestroyTask
	ldr r0, [r4]
	ldrb r0, [r0, 0xF]
	bl DestroyTask
	ldr r0, [r4]
	bl Free
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801DE30

	thumb_func_start c2_081284E0
c2_081284E0: @ 801DE54
	push {r4-r6,lr}
	sub sp, 0x4
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r6, r0, r1
	ldrb r0, [r6]
	cmp r0, 0x1
	beq _0801DE8C
	cmp r0, 0x1
	bgt _0801DE74
	cmp r0, 0
	beq _0801DE7A
	b _0801DF04
	.pool
_0801DE74:
	cmp r0, 0x2
	beq _0801DEC8
	b _0801DF04
_0801DE7A:
	bl ResetTasks
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl sub_801F4D0
	b _0801DEBC
_0801DE8C:
	bl sub_801F5B8
	bl sub_801F534
	adds r5, r0, 0
	cmp r5, 0
	bne _0801DF04
	movs r4, 0x1
	negs r4, r4
	adds r0, r4, 0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	str r5, [sp]
	adds r0, r4, 0
	adds r1, r4, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r0, =sub_801DF20
	bl SetVBlankCallback
_0801DEBC:
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	b _0801DF04
	.pool
_0801DEC8:
	bl UpdatePaletteFade
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0801DF04
	ldr r0, =sub_801DF38
	bl SetMainCallback2
	ldr r0, =sub_801DF54
	movs r1, 0x8
	bl CreateTask
	ldr r4, =gUnknown_02022C84
	ldr r1, [r4]
	strb r0, [r1, 0xE]
	ldr r0, =sub_801F2B4
	movs r1, 0x7
	bl CreateTask
	ldr r1, [r4]
	strb r0, [r1, 0xF]
	bl sub_800E0E8
	movs r0, 0xE8
	movs r1, 0x96
	bl CreateWirelessStatusIndicatorSprite
_0801DF04:
	add sp, 0x4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end c2_081284E0

	thumb_func_start sub_801DF20
sub_801DF20: @ 801DF20
	push {lr}
	bl TransferPlttBuffer
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl ScanlineEffect_InitHBlankDmaTransfer
	pop {r0}
	bx r0
	thumb_func_end sub_801DF20

	thumb_func_start sub_801DF38
sub_801DF38: @ 801DF38
	push {lr}
	bl RunTasks
	bl sub_801F5B8
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_801DF38

	thumb_func_start sub_801DF54
sub_801DF54: @ 801DF54
	push {r4,lr}
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	ldrb r0, [r0, 0x17]
	cmp r0, 0x2
	beq _0801DF7A
	cmp r0, 0x2
	bgt _0801DF70
	cmp r0, 0x1
	beq _0801DF76
	b _0801DF8A
	.pool
_0801DF70:
	cmp r0, 0x3
	beq _0801DF7E
	b _0801DF8A
_0801DF76:
	movs r0, 0x6
	b _0801DF80
_0801DF7A:
	movs r0, 0x7
	b _0801DF80
_0801DF7E:
	movs r0, 0x8
_0801DF80:
	bl sub_801EBD4
	ldr r1, [r4]
	movs r0, 0
	strb r0, [r1, 0x17]
_0801DF8A:
	ldr r1, =gUnknown_082F2A7C
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrh r0, [r0, 0x4]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801DF54

	thumb_func_start sub_801DFAC
sub_801DFAC: @ 801DFAC
	push {r4,lr}
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	ldrh r1, [r0, 0x6]
	cmp r1, 0x1
	beq _0801DFE0
	cmp r1, 0x1
	bgt _0801DFC8
	cmp r1, 0
	beq _0801DFCE
	b _0801E028
	.pool
_0801DFC8:
	cmp r1, 0x2
	beq _0801E018
	b _0801E028
_0801DFCE:
	movs r1, 0xC8
	lsls r1, 1
	adds r0, r1
	bl sub_801EF24
	ldr r1, [r4]
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
_0801DFE0:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E028
	bl sub_8011A9C
	cmp r0, 0
	bne _0801E028
	ldr r4, =gUnknown_02022C84
	ldr r1, [r4]
	movs r0, 0xC8
	lsls r0, 1
	adds r1, r0
	movs r0, 0
	movs r2, 0x28
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _0801E028
	ldr r1, [r4]
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E028
	.pool
_0801E018:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E028
	movs r0, 0x1
	bl sub_801EBD4
_0801E028:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801DFAC

	thumb_func_start sub_801E030
sub_801E030: @ 801E030
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022C84
	ldr r3, [r5]
	ldrh r0, [r3, 0x6]
	cmp r0, 0
	beq _0801E048
	cmp r0, 0x1
	beq _0801E0F6
	b _0801E118
	.pool
_0801E048:
	ldr r1, =gMain
	ldrh r2, [r1, 0x2E]
	movs r0, 0x8
	ands r0, r2
	cmp r0, 0
	beq _0801E068
	ldrb r0, [r3, 0x15]
	cmp r0, 0
	beq _0801E118
	movs r0, 0x4
	bl sub_801EBD4
	b _0801E118
	.pool
_0801E068:
	movs r0, 0x4
	ands r0, r2
	cmp r0, 0
	beq _0801E078
	movs r0, 0x2
	bl sub_801EBD4
	b _0801E118
_0801E078:
	ldrh r1, [r1, 0x30]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0801E0A4
	ldrb r0, [r3, 0x15]
	cmp r0, 0
	beq _0801E09C
	bl sub_801ED68
	movs r0, 0x8
	movs r1, 0
	bl sub_801F5EC
	ldr r1, [r5]
	movs r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E118
_0801E09C:
	movs r0, 0x3
	bl sub_801EBD4
	b _0801E118
_0801E0A4:
	movs r4, 0x1
	adds r0, r4, 0
	ands r0, r2
	cmp r0, 0
	beq _0801E0C0
	bl sub_801EC94
	movs r0, 0x8
	movs r1, 0
	bl sub_801F5EC
	movs r0, 0x2
	movs r1, 0x1
	b _0801E0EC
_0801E0C0:
	movs r0, 0x80
	lsls r0, 1
	ands r0, r2
	cmp r0, 0
	beq _0801E0E0
	ldrb r0, [r3, 0x10]
	cmp r0, 0x3
	beq _0801E0D8
	bl sub_801ED94
	movs r0, 0x8
	b _0801E0EA
_0801E0D8:
	movs r0, 0x5
	bl sub_801EBD4
	b _0801E118
_0801E0E0:
	bl sub_801EBE4
	cmp r0, 0
	beq _0801E118
	movs r0, 0x1
_0801E0EA:
	movs r1, 0
_0801E0EC:
	bl sub_801F5EC
	ldr r0, [r5]
	strh r4, [r0, 0x6]
	b _0801E118
_0801E0F6:
	movs r0, 0
	bl sub_801F644
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x1
	bl sub_801F644
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r4, 0
	bne _0801E118
	cmp r1, 0
	bne _0801E118
	ldr r0, [r5]
	strh r1, [r0, 0x6]
_0801E118:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801E030

	thumb_func_start sub_801E120
sub_801E120: @ 801E120
	push {r4-r6,lr}
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrh r0, [r0, 0x6]
	cmp r0, 0x4
	bls _0801E12E
	b _0801E23A
_0801E12E:
	lsls r0, 2
	ldr r1, =_0801E140
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801E140:
	.4byte _0801E154
	.4byte _0801E15E
	.4byte _0801E17C
	.4byte _0801E208
	.4byte _0801E21C
_0801E154:
	movs r0, 0x3
	movs r1, 0
	bl sub_801F5EC
	b _0801E16A
_0801E15E:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E23A
_0801E16A:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E23A
	.pool
_0801E17C:
	bl Menu_ProcessInput
	lsls r0, 24
	asrs r0, 8
	lsrs r6, r0, 16
	asrs r4, r0, 16
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _0801E1B4
	adds r0, 0x1
	cmp r4, r0
	beq _0801E1D4
	movs r0, 0x4
	movs r1, 0
	bl sub_801F5EC
	ldr r5, =gUnknown_02022C84
	ldr r2, [r5]
	ldrb r0, [r2, 0x10]
	cmp r0, r4
	beq _0801E1DC
	cmp r4, 0x3
	ble _0801E1EC
	b _0801E1DC
	.pool
_0801E1B4:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _0801E23A
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	bl Menu_MoveCursor
	b _0801E23A
	.pool
_0801E1D4:
	movs r0, 0x4
	movs r1, 0
	bl sub_801F5EC
_0801E1DC:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x3
	strh r0, [r1, 0x6]
	b _0801E23A
	.pool
_0801E1EC:
	movs r1, 0
	strb r1, [r2, 0x11]
	ldr r0, [r5]
	strb r1, [r0, 0x12]
	movs r0, 0x5
	movs r1, 0x1
	bl sub_801F5EC
	ldr r0, [r5]
	strb r6, [r0, 0x10]
	ldr r1, [r5]
	movs r0, 0x4
	strh r0, [r1, 0x6]
	b _0801E23A
_0801E208:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E23A
	movs r0, 0x1
	bl sub_801EBD4
	b _0801E23A
_0801E21C:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E23A
	movs r0, 0x1
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E23A
	movs r0, 0x1
	bl sub_801EBD4
_0801E23A:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_801E120

	thumb_func_start sub_801E240
sub_801E240: @ 801E240
	push {r4,r5,lr}
	ldr r1, =gUnknown_02022C84
	ldr r0, [r1]
	ldrh r0, [r0, 0x6]
	adds r2, r1, 0
	cmp r0, 0xA
	bls _0801E250
	b _0801E458
_0801E250:
	lsls r0, 2
	ldr r1, =_0801E264
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801E264:
	.4byte _0801E290
	.4byte _0801E2A8
	.4byte _0801E2C4
	.4byte _0801E322
	.4byte _0801E3D4
	.4byte _0801E424
	.4byte _0801E458
	.4byte _0801E458
	.4byte _0801E378
	.4byte _0801E338
	.4byte _0801E35C
_0801E290:
	movs r0, 0x6
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E458
	.pool
_0801E2A8:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	beq _0801E2B6
	b _0801E458
_0801E2B6:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x2
	strh r0, [r1, 0x6]
	b _0801E458
	.pool
_0801E2C4:
	bl sub_801FF08
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0801E2E6
	cmp r1, 0
	bgt _0801E2DE
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0801E396
	b _0801E458
_0801E2DE:
	cmp r1, 0x1
	beq _0801E2E4
	b _0801E458
_0801E2E4:
	b _0801E396
_0801E2E6:
	ldr r4, =gUnknown_02022C84
	ldr r1, [r4]
	ldrb r0, [r1, 0x13]
	cmp r0, 0
	bne _0801E310
	movs r2, 0xC8
	lsls r2, 1
	adds r0, r1, r2
	bl sub_801EFD0
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
	ldr r1, [r4]
	movs r0, 0x9
	strh r0, [r1, 0x6]
	b _0801E458
	.pool
_0801E310:
	movs r2, 0xC8
	lsls r2, 1
	adds r0, r1, r2
	bl sub_801EF7C
	ldr r1, [r4]
	movs r0, 0x4
	strh r0, [r1, 0x6]
	b _0801E458
_0801E322:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	beq _0801E330
	b _0801E458
_0801E330:
	movs r0, 0x1
	bl sub_801EBD4
	b _0801E458
_0801E338:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	beq _0801E346
	b _0801E458
_0801E346:
	movs r0, 0x14
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0xA
	strh r0, [r1, 0x6]
	b _0801E458
	.pool
_0801E35C:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	beq _0801E36A
	b _0801E458
_0801E36A:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x8
	strh r0, [r1, 0x6]
	b _0801E458
	.pool
_0801E378:
	bl sub_801FF08
	lsls r0, 24
	asrs r5, r0, 24
	cmp r5, 0
	beq _0801E3AC
	cmp r5, 0
	bgt _0801E392
	movs r0, 0x1
	negs r0, r0
	cmp r5, r0
	beq _0801E396
	b _0801E458
_0801E392:
	cmp r5, 0x1
	bne _0801E458
_0801E396:
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x3
	strh r0, [r1, 0x6]
	b _0801E458
	.pool
_0801E3AC:
	bl sub_80104B0
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	movs r1, 0xC8
	lsls r1, 1
	adds r0, r1
	bl sub_801EFD0
	ldr r0, [r4]
	movs r1, 0x4
	strh r1, [r0, 0x6]
	movs r2, 0xDC
	lsls r2, 1
	adds r0, r2
	strh r5, [r0]
	b _0801E458
	.pool
_0801E3D4:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E414
	bl sub_8011A9C
	cmp r0, 0
	bne _0801E414
	ldr r4, =gUnknown_02022C84
	ldr r1, [r4]
	movs r0, 0xC8
	lsls r0, 1
	adds r1, r0
	movs r0, 0
	movs r2, 0x28
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _0801E414
	ldr r1, [r4]
	ldrb r0, [r1, 0x13]
	cmp r0, 0
	bne _0801E410
	movs r0, 0x6
	b _0801E412
	.pool
_0801E410:
	movs r0, 0x5
_0801E412:
	strh r0, [r1, 0x6]
_0801E414:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801E458
	b _0801E42C
	.pool
_0801E424:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801E438
_0801E42C:
	movs r0, 0x9
	bl sub_801EBD4
	b _0801E458
	.pool
_0801E438:
	ldr r3, [r2]
	movs r1, 0xDC
	lsls r1, 1
	adds r2, r3, r1
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	movs r1, 0x96
	lsls r1, 17
	cmp r0, r1
	bls _0801E458
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x4
	strh r0, [r3, 0x6]
_0801E458:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801E240

	thumb_func_start sub_801E460
sub_801E460: @ 801E460
	push {r4,lr}
	ldr r1, =gUnknown_02022C84
	ldr r0, [r1]
	ldrh r0, [r0, 0x6]
	adds r2, r1, 0
	cmp r0, 0x7
	bls _0801E470
	b _0801E5BC
_0801E470:
	lsls r0, 2
	ldr r1, =_0801E484
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801E484:
	.4byte _0801E4A4
	.4byte _0801E4C8
	.4byte _0801E4E8
	.4byte _0801E50C
	.4byte _0801E540
	.4byte _0801E560
	.4byte _0801E584
	.4byte _0801E5A8
_0801E4A4:
	ldr r0, =sub_801F2B4
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	beq _0801E4B2
	b _0801E5BC
_0801E4B2:
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	b _0801E59A
	.pool
_0801E4C8:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E5BC
	movs r0, 0x12
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	b _0801E59A
	.pool
_0801E4E8:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E5BC
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	movs r1, 0xC8
	lsls r1, 1
	adds r0, r1
	bl sub_801EFA8
	ldr r1, [r4]
	b _0801E59A
	.pool
_0801E50C:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E5BC
	bl sub_8011A9C
	cmp r0, 0
	bne _0801E5BC
	ldr r4, =gUnknown_02022C84
	ldr r1, [r4]
	movs r0, 0xC8
	lsls r0, 1
	adds r1, r0
	movs r0, 0
	movs r2, 0x28
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _0801E5BC
	ldr r1, [r4]
	b _0801E59A
	.pool
_0801E540:
	bl GetBlockReceivedStatus
	movs r1, 0x1
	ands r1, r0
	cmp r1, 0
	beq _0801E5BC
	bl sub_8011A9C
	cmp r0, 0
	bne _0801E5BC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	b _0801E59A
	.pool
_0801E560:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E5BC
	bl sub_8011A9C
	adds r4, r0, 0
	cmp r4, 0
	bne _0801E5BC
	bl sub_800AC34
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	strh r4, [r1, 0xA]
	b _0801E59A
	.pool
_0801E584:
	ldr r1, [r2]
	ldrh r0, [r1, 0xA]
	cmp r0, 0x95
	bhi _0801E590
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0801E590:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801E5BC
	ldr r1, [r2]
_0801E59A:
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E5BC
	.pool
_0801E5A8:
	ldr r1, [r2]
	ldrh r0, [r1, 0xA]
	cmp r0, 0x95
	bls _0801E5B8
	movs r0, 0x9
	bl sub_801EBD4
	b _0801E5BC
_0801E5B8:
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0801E5BC:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801E460

	thumb_func_start sub_801E5C4
sub_801E5C4: @ 801E5C4
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022C84
	ldr r1, [r5]
	ldrh r0, [r1, 0x6]
	cmp r0, 0x1
	beq _0801E604
	cmp r0, 0x1
	bgt _0801E5E0
	cmp r0, 0
	beq _0801E5EA
	b _0801E662
	.pool
_0801E5E0:
	cmp r0, 0x2
	beq _0801E62E
	cmp r0, 0x3
	beq _0801E650
	b _0801E662
_0801E5EA:
	ldr r0, =sub_801F2B4
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _0801E662
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
	b _0801E640
	.pool
_0801E604:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E662
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E662
	bl sub_8011A9C
	adds r4, r0, 0
	cmp r4, 0
	bne _0801E662
	bl sub_800AC34
	ldr r1, [r5]
	strh r4, [r1, 0xA]
	b _0801E642
_0801E62E:
	ldrh r0, [r1, 0xA]
	cmp r0, 0x95
	bhi _0801E638
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0801E638:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801E662
_0801E640:
	ldr r1, [r5]
_0801E642:
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E662
	.pool
_0801E650:
	ldrh r0, [r1, 0xA]
	cmp r0, 0x95
	bls _0801E65E
	movs r0, 0x9
	bl sub_801EBD4
	b _0801E662
_0801E65E:
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0801E662:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_801E5C4

	thumb_func_start sub_801E668
sub_801E668: @ 801E668
	push {r4,lr}
	ldr r1, =gUnknown_02022C84
	ldr r0, [r1]
	ldrh r0, [r0, 0x6]
	adds r2, r1, 0
	cmp r0, 0x4
	bhi _0801E75C
	lsls r0, 2
	ldr r1, =_0801E688
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801E688:
	.4byte _0801E69C
	.4byte _0801E6C8
	.4byte _0801E6F0
	.4byte _0801E724
	.4byte _0801E748
_0801E69C:
	ldr r0, =sub_801F2B4
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _0801E75C
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	ldrb r0, [r0, 0x13]
	cmp r0, 0
	beq _0801E6BA
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
_0801E6BA:
	ldr r1, [r4]
	b _0801E73A
	.pool
_0801E6C8:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E75C
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	ldrb r0, [r0, 0x13]
	cmp r0, 0
	beq _0801E6E6
	movs r0, 0x13
	movs r1, 0
	bl sub_801F5EC
_0801E6E6:
	ldr r1, [r4]
	b _0801E73A
	.pool
_0801E6F0:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0801E75C
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E75C
	bl sub_8011A9C
	adds r4, r0, 0
	cmp r4, 0
	bne _0801E75C
	bl sub_800AC34
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	strh r4, [r1, 0xA]
	b _0801E73A
	.pool
_0801E724:
	ldr r1, [r2]
	ldrh r0, [r1, 0xA]
	cmp r0, 0x95
	bhi _0801E730
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0801E730:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801E75C
	ldr r1, [r2]
_0801E73A:
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E75C
	.pool
_0801E748:
	ldr r1, [r2]
	ldrh r0, [r1, 0xA]
	cmp r0, 0x95
	bls _0801E758
	movs r0, 0x9
	bl sub_801EBD4
	b _0801E75C
_0801E758:
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0801E75C:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801E668

	thumb_func_start sub_801E764
sub_801E764: @ 801E764
	push {r4,lr}
	ldr r1, =gUnknown_02022C84
	ldr r0, [r1]
	ldrh r0, [r0, 0x6]
	adds r4, r1, 0
	cmp r0, 0x4
	bhi _0801E830
	lsls r0, 2
	ldr r1, =_0801E784
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801E784:
	.4byte _0801E798
	.4byte _0801E7C0
	.4byte _0801E7F4
	.4byte _0801E802
	.4byte _0801E820
_0801E798:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801E7AC
	movs r0, 0x1
	bl sub_801EBD4
	b _0801E830
	.pool
_0801E7AC:
	ldr r0, [r4]
	movs r1, 0xC8
	lsls r1, 1
	adds r0, r1
	bl sub_801EF4C
	ldr r1, [r4]
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
_0801E7C0:
	bl IsLinkTaskFinished
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0801E830
	bl sub_8011A9C
	cmp r0, 0
	bne _0801E830
	ldr r4, =gUnknown_02022C84
	ldr r1, [r4]
	movs r0, 0xC8
	lsls r0, 1
	adds r1, r0
	movs r0, 0
	movs r2, 0x28
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _0801E830
	ldr r1, [r4]
	b _0801E812
	.pool
_0801E7F4:
	bl sub_801EE10
	movs r0, 0x8
	movs r1, 0
	bl sub_801F5EC
	b _0801E80E
_0801E802:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E830
_0801E80E:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
_0801E812:
	ldrh r0, [r1, 0x6]
	adds r0, 0x1
	strh r0, [r1, 0x6]
	b _0801E830
	.pool
_0801E820:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0801E830
	movs r0, 0x1
	bl sub_801EBD4
_0801E830:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801E764

	thumb_func_start sub_801E838
sub_801E838: @ 801E838
	push {r4,lr}
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrh r0, [r0, 0x6]
	cmp r0, 0x6
	bls _0801E846
	b _0801E968
_0801E846:
	lsls r0, 2
	ldr r1, =_0801E858
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801E858:
	.4byte _0801E874
	.4byte _0801E8A4
	.4byte _0801E8F8
	.4byte _0801E910
	.4byte _0801E920
	.4byte _0801E934
	.4byte _0801E94C
_0801E874:
	bl sub_801EDC4
	cmp r0, 0
	beq _0801E890
	movs r0, 0x9
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x2
	b _0801E966
	.pool
_0801E890:
	movs r0, 0xD
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x5
	b _0801E966
	.pool
_0801E8A4:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0801E8CC
	bl sub_801EDE0
	movs r0, 0xB
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x3
	b _0801E966
	.pool
_0801E8CC:
	movs r4, 0x2
	adds r0, r4, 0
	ands r0, r1
	cmp r0, 0
	beq _0801E8DA
	movs r0, 0xA
	b _0801E95A
_0801E8DA:
	bl sub_801EBE4
	cmp r0, 0
	beq _0801E968
	movs r0, 0x1
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	strh r4, [r0, 0x6]
	b _0801E968
	.pool
_0801E8F8:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E968
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x1
	b _0801E966
	.pool
_0801E910:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E968
	movs r0, 0xA
	b _0801E95A
_0801E920:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E968
	movs r0, 0x1
	bl sub_801EBD4
	b _0801E968
_0801E934:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801E968
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x6
	b _0801E966
	.pool
_0801E94C:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _0801E968
	movs r0, 0x7
_0801E95A:
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x4
_0801E966:
	strh r0, [r1, 0x6]
_0801E968:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801E838

	thumb_func_start sub_801E978
sub_801E978: @ 801E978
	push {r4,lr}
	sub sp, 0x4
	ldr r1, =gUnknown_02022C84
	ldr r0, [r1]
	ldrh r0, [r0, 0x6]
	adds r4, r1, 0
	cmp r0, 0xD
	bls _0801E98A
	b _0801EBC2
_0801E98A:
	lsls r0, 2
	ldr r1, =_0801E99C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801E99C:
	.4byte _0801E9D4
	.4byte _0801E9EE
	.4byte _0801EA14
	.4byte _0801EA58
	.4byte _0801EA7C
	.4byte _0801EA98
	.4byte _0801EADC
	.4byte _0801EB04
	.4byte _0801EB28
	.4byte _0801EB40
	.4byte _0801EB64
	.4byte _0801EB72
	.4byte _0801EB88
	.4byte _0801EBA8
_0801E9D4:
	ldr r1, [r4]
	ldrb r0, [r1, 0x18]
	cmp r0, 0
	bne _0801E9DE
	b _0801EB82
_0801E9DE:
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
	ldr r1, [r4]
	movs r0, 0x1
	strh r0, [r1, 0x6]
	b _0801EBC2
_0801E9EE:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	beq _0801E9FC
	b _0801EBC2
_0801E9FC:
	movs r0, 0xE
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x2
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EA14:
	bl sub_801FF08
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0801EA40
	cmp r1, 0
	bgt _0801EA2E
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0801EA34
	b _0801EBC2
_0801EA2E:
	cmp r1, 0x1
	beq _0801EA34
	b _0801EBC2
_0801EA34:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	b _0801EB82
	.pool
_0801EA40:
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x3
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EA58:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	beq _0801EA66
	b _0801EBC2
_0801EA66:
	movs r0, 0xF
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x4
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EA7C:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	beq _0801EA8A
	b _0801EBC2
_0801EA8A:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x5
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EA98:
	bl sub_801FF08
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0801EAC4
	cmp r1, 0
	bgt _0801EAB2
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0801EAB8
	b _0801EBC2
_0801EAB2:
	cmp r1, 0x1
	beq _0801EAB8
	b _0801EBC2
_0801EAB8:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	b _0801EB82
	.pool
_0801EAC4:
	movs r0, 0x7
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x6
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EADC:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801EBC2
	movs r0, 0x10
	movs r1, 0
	bl sub_801F5EC
	bl sub_801EE2C
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x7
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EB04:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801EBC2
	bl SetContinueGameWarpStatusToDynamicWarp
	movs r0, 0
	bl TrySavingData
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x8
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EB28:
	movs r0, 0x11
	movs r1, 0
	bl sub_801F5EC
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x9
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EB40:
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801EBC2
	movs r0, 0x37
	bl PlaySE
	bl ClearContinueGameWarpStatus2
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0xA
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EB64:
	ldr r1, [r4]
	movs r0, 0
	strb r0, [r1, 0x19]
	ldr r1, [r4]
	movs r0, 0xB
	strh r0, [r1, 0x6]
	b _0801EBC2
_0801EB72:
	ldr r0, [r4]
	ldrb r1, [r0, 0x19]
	adds r1, 0x1
	strb r1, [r0, 0x19]
	ldr r1, [r4]
	ldrb r0, [r1, 0x19]
	cmp r0, 0x78
	bls _0801EBC2
_0801EB82:
	movs r0, 0xC
	strh r0, [r1, 0x6]
	b _0801EBC2
_0801EB88:
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	str r0, [sp]
	adds r0, r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0xD
	strh r0, [r1, 0x6]
	b _0801EBC2
	.pool
_0801EBA8:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0801EBC2
	bl sub_801F544
	bl sub_801DE30
	ldr r0, =CB2_ReturnToField
	bl SetMainCallback2
_0801EBC2:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801E978

	thumb_func_start sub_801EBD4
sub_801EBD4: @ 801EBD4
	ldr r1, =gUnknown_02022C84
	ldr r1, [r1]
	movs r2, 0
	strh r0, [r1, 0x4]
	strh r2, [r1, 0x6]
	bx lr
	.pool
	thumb_func_end sub_801EBD4

	thumb_func_start sub_801EBE4
sub_801EBE4: @ 801EBE4
	push {lr}
	ldr r0, =gMain
	ldrh r2, [r0, 0x30]
	movs r0, 0x40
	ands r0, r2
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0
	bne _0801EC6E
	movs r0, 0x80
	ands r0, r2
	cmp r0, 0
	beq _0801EC24
	ldr r0, =gUnknown_02022C84
	ldr r2, [r0]
	ldr r1, =gUnknown_082F2AA4
	ldrb r0, [r2, 0x10]
	adds r0, r1
	ldrb r1, [r2, 0x12]
	ldrb r0, [r0]
	cmp r1, r0
	bcs _0801EC20
	adds r0, r1, 0x1
	b _0801EC88
	.pool
_0801EC20:
	strb r3, [r2, 0x12]
	b _0801EC8A
_0801EC24:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	ldrb r0, [r1, 0x10]
	cmp r0, 0x3
	beq _0801EC6A
	movs r0, 0x20
	ands r0, r2
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0
	beq _0801EC52
	ldrb r0, [r1, 0x11]
	cmp r0, 0
	beq _0801EC4C
	subs r0, 0x1
	strb r0, [r1, 0x11]
	b _0801EC8A
	.pool
_0801EC4C:
	movs r0, 0x4
	strb r0, [r1, 0x11]
	b _0801EC8A
_0801EC52:
	movs r0, 0x10
	ands r0, r2
	cmp r0, 0
	beq _0801EC6A
	ldrb r0, [r1, 0x11]
	cmp r0, 0x3
	bhi _0801EC66
	adds r0, 0x1
	strb r0, [r1, 0x11]
	b _0801EC8A
_0801EC66:
	strb r3, [r1, 0x11]
	b _0801EC8A
_0801EC6A:
	movs r0, 0
	b _0801EC8C
_0801EC6E:
	ldr r0, =gUnknown_02022C84
	ldr r2, [r0]
	ldrb r0, [r2, 0x12]
	cmp r0, 0
	beq _0801EC80
	subs r0, 0x1
	b _0801EC88
	.pool
_0801EC80:
	ldr r0, =gUnknown_082F2AA4
	ldrb r1, [r2, 0x10]
	adds r1, r0
	ldrb r0, [r1]
_0801EC88:
	strb r0, [r2, 0x12]
_0801EC8A:
	movs r0, 0x1
_0801EC8C:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801EBE4

	thumb_func_start sub_801EC94
sub_801EC94: @ 801EC94
	push {r4-r6,lr}
	sub sp, 0x18
	ldr r0, =gUnknown_02022C84
	ldr r5, [r0]
	ldrb r0, [r5, 0x10]
	cmp r0, 0x3
	beq _0801ECDC
	ldr r3, =gUnknown_082F2BA8
	ldrb r1, [r5, 0x12]
	lsls r1, 2
	adds r2, r0, 0
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r1, r0
	adds r1, r3
	ldr r4, [r1]
	ldrb r0, [r5, 0x11]
	cmp r0, 0
	beq _0801ECCE
	adds r1, r0, 0
_0801ECBE:
	ldrb r0, [r4]
	cmp r0, 0xF9
	bne _0801ECC6
	adds r4, 0x1
_0801ECC6:
	adds r4, 0x1
	subs r1, 0x1
	cmp r1, 0
	bne _0801ECBE
_0801ECCE:
	movs r5, 0x1
	b _0801ED02
	.pool
_0801ECDC:
	ldrb r0, [r5, 0x12]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	adds r1, r0
	adds r1, 0xB9
	adds r1, r5, r1
	mov r0, sp
	bl StringCopy
	movs r1, 0
	strb r1, [r0]
	movs r1, 0xFF
	strb r1, [r0, 0x1]
	mov r4, sp
	mov r0, sp
	bl StringLength_Multibyte
	adds r5, r0, 0
_0801ED02:
	ldr r6, =gUnknown_02022C84
	ldr r1, [r6]
	ldrb r0, [r1, 0x15]
	strb r0, [r1, 0x14]
	cmp r4, 0
	beq _0801ED5A
	bl sub_801EE84
	adds r2, r0, 0
	subs r5, 0x1
	movs r0, 0x1
	negs r0, r0
	cmp r5, r0
	beq _0801ED56
	ldr r0, [r6]
	ldrb r0, [r0, 0x15]
	cmp r0, 0xE
	bhi _0801ED56
	adds r3, r6, 0
_0801ED28:
	ldrb r0, [r4]
	cmp r0, 0xF9
	bne _0801ED34
	strb r0, [r2]
	adds r4, 0x1
	adds r2, 0x1
_0801ED34:
	ldrb r0, [r4]
	strb r0, [r2]
	adds r4, 0x1
	adds r2, 0x1
	ldr r1, [r3]
	ldrb r0, [r1, 0x15]
	adds r0, 0x1
	strb r0, [r1, 0x15]
	subs r5, 0x1
	movs r0, 0x1
	negs r0, r0
	cmp r5, r0
	beq _0801ED56
	ldr r0, [r3]
	ldrb r0, [r0, 0x15]
	cmp r0, 0xE
	bls _0801ED28
_0801ED56:
	movs r0, 0xFF
	strb r0, [r2]
_0801ED5A:
	add sp, 0x18
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EC94

	thumb_func_start sub_801ED68
sub_801ED68: @ 801ED68
	push {r4,lr}
	ldr r4, =gUnknown_02022C84
	ldr r1, [r4]
	ldrb r0, [r1, 0x15]
	strb r0, [r1, 0x14]
	ldr r0, [r4]
	ldrb r0, [r0, 0x15]
	cmp r0, 0
	beq _0801ED8A
	bl sub_801EEA8
	movs r1, 0xFF
	strb r1, [r0]
	ldr r1, [r4]
	ldrb r0, [r1, 0x15]
	subs r0, 0x1
	strb r0, [r1, 0x15]
_0801ED8A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801ED68

	thumb_func_start sub_801ED94
sub_801ED94: @ 801ED94
	push {lr}
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	ldrb r0, [r1, 0x15]
	subs r0, 0x1
	strb r0, [r1, 0x14]
	bl sub_801EEA8
	adds r2, r0, 0
	ldrb r0, [r2]
	cmp r0, 0xF9
	beq _0801EDB8
	ldr r1, =gUnknown_082F2AA8
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _0801EDB8
	strb r0, [r2]
_0801EDB8:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801ED94

	thumb_func_start sub_801EDC4
sub_801EDC4: @ 801EDC4
	push {lr}
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x15]
	cmp r0, 0
	bne _0801EDD8
	movs r0, 0
	b _0801EDDA
	.pool
_0801EDD8:
	movs r0, 0x1
_0801EDDA:
	pop {r1}
	bx r1
	thumb_func_end sub_801EDC4

	thumb_func_start sub_801EDE0
sub_801EDE0: @ 801EDE0
	push {r4,lr}
	bl sub_801F114
	adds r1, r0, 0
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	ldrb r3, [r0, 0x12]
	lsls r2, r3, 2
	adds r2, r3
	lsls r2, 2
	adds r2, r3
	adds r2, 0xB9
	adds r0, r2
	bl StringCopy
	ldr r1, [r4]
	movs r0, 0x1
	strb r0, [r1, 0x18]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EDE0

	thumb_func_start sub_801EE10
sub_801EE10: @ 801EE10
	ldr r1, =gUnknown_02022C84
	ldr r2, [r1]
	movs r0, 0xFF
	strb r0, [r2, 0x1A]
	ldr r2, [r1]
	movs r3, 0
	movs r0, 0xF
	strb r0, [r2, 0x14]
	ldr r0, [r1]
	strb r3, [r0, 0x15]
	bx lr
	.pool
	thumb_func_end sub_801EE10

	thumb_func_start sub_801EE2C
sub_801EE2C: @ 801EE2C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r0, =gSaveBlock1Ptr
	mov r8, r0
	ldr r7, =gUnknown_02022C84
	movs r6, 0xB9
	ldr r5, =0x00003c88
	movs r4, 0x9
_0801EE3E:
	mov r1, r8
	ldr r0, [r1]
	adds r0, r5
	ldr r1, [r7]
	adds r1, r6
	bl StringCopy
	adds r6, 0x15
	adds r5, 0x15
	subs r4, 0x1
	cmp r4, 0
	bge _0801EE3E
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EE2C

	thumb_func_start sub_801EE6C
sub_801EE6C: @ 801EE6C
	ldr r2, =gUnknown_02022C84
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	adds r1, r0
	adds r1, 0xB9
	ldr r0, [r2]
	adds r0, r1
	bx lr
	.pool
	thumb_func_end sub_801EE6C

	thumb_func_start sub_801EE84
sub_801EE84: @ 801EE84
	push {lr}
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x1A
	ldrb r0, [r0, 0x1A]
	cmp r0, 0xFF
	beq _0801EE9C
_0801EE94:
	adds r1, 0x1
	ldrb r0, [r1]
	cmp r0, 0xFF
	bne _0801EE94
_0801EE9C:
	adds r0, r1, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801EE84

	thumb_func_start sub_801EEA8
sub_801EEA8: @ 801EEA8
	push {lr}
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r2, r0, 0
	adds r2, 0x1A
	adds r1, r2, 0
	ldrb r0, [r0, 0x1A]
	cmp r0, 0xFF
	beq _0801EECC
_0801EEBA:
	adds r2, r1, 0
	ldrb r0, [r2]
	cmp r0, 0xF9
	bne _0801EEC4
	adds r1, r2, 0x1
_0801EEC4:
	adds r1, 0x1
	ldrb r0, [r1]
	cmp r0, 0xFF
	bne _0801EEBA
_0801EECC:
	adds r0, r2, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801EEA8

	thumb_func_start sub_801EED8
sub_801EED8: @ 801EED8
	push {r4,lr}
	ldr r4, =gUnknown_02022C84
	ldr r0, [r4]
	adds r0, 0x1A
	bl StringLength_Multibyte
	adds r2, r0, 0
	ldr r0, [r4]
	adds r1, r0, 0
	adds r1, 0x1A
	movs r4, 0
	cmp r2, 0xA
	bls _0801EF0C
	subs r2, 0xA
	movs r3, 0
	cmp r4, r2
	bcs _0801EF0C
_0801EEFA:
	ldrb r0, [r1]
	cmp r0, 0xF9
	bne _0801EF02
	adds r1, 0x1
_0801EF02:
	adds r1, 0x1
	adds r4, 0x1
	adds r3, 0x1
	cmp r3, r2
	bcc _0801EEFA
_0801EF0C:
	lsls r0, r4, 16
	lsrs r0, 16
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801EED8

	thumb_func_start sub_801EF1C
sub_801EF1C: @ 801EF1C
	movs r1, 0
	strb r1, [r0]
	bx lr
	thumb_func_end sub_801EF1C

	thumb_func_start sub_801EF24
sub_801EF24: @ 801EF24
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x2
	strb r0, [r4]
	adds r0, r4, 0x1
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	bl StringCopy
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x13]
	strb r0, [r4, 0x9]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EF24

	thumb_func_start sub_801EF4C
sub_801EF4C: @ 801EF4C
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x1
	strb r0, [r4]
	adds r0, r4, 0x1
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	bl StringCopy
	adds r4, 0x9
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	adds r1, 0x1A
	adds r0, r4, 0
	bl StringCopy
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EF4C

	thumb_func_start sub_801EF7C
sub_801EF7C: @ 801EF7C
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x3
	strb r0, [r4]
	adds r0, r4, 0x1
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	bl StringCopy
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x13]
	strb r0, [r4, 0x9]
	bl sub_8011A50
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EF7C

	thumb_func_start sub_801EFA8
sub_801EFA8: @ 801EFA8
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x4
	strb r0, [r4]
	adds r0, r4, 0x1
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	bl StringCopy
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x13]
	strb r0, [r4, 0x9]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EFA8

	thumb_func_start sub_801EFD0
sub_801EFD0: @ 801EFD0
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x5
	strb r0, [r4]
	adds r0, r4, 0x1
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	bl StringCopy
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x13]
	strb r0, [r4, 0x9]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801EFD0

	thumb_func_start sub_801EFF8
sub_801EFF8: @ 801EFF8
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r5, r1, 0
	ldrb r0, [r5]
	adds r1, r0, 0
	adds r4, r5, 0x1
	adds r5, r4, 0
	adds r5, 0x8
	cmp r0, 0x2
	beq _0801F020
	cmp r0, 0x2
	bgt _0801F016
	cmp r0, 0x1
	beq _0801F044
	b _0801F0A8
_0801F016:
	cmp r1, 0x3
	beq _0801F07A
	cmp r1, 0x5
	beq _0801F06E
	b _0801F0A8
_0801F020:
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x13]
	ldrb r1, [r4, 0x8]
	cmp r0, r1
	beq _0801F0A8
	bl DynamicPlaceholderTextUtil_Reset
	movs r0, 0
	adds r1, r4, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r1, =gText_F700JoinedChat
	b _0801F094
	.pool
_0801F044:
	adds r0, r6, 0
	adds r1, r4, 0
	bl StringCopy
	movs r1, 0xFC
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0x13
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0x2A
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0xF0
	strb r1, [r0]
	adds r0, 0x1
	adds r1, r5, 0
	bl StringCopy
	movs r0, 0x1
	b _0801F0AA
_0801F06E:
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r0, 0x79
	adds r1, r4, 0
	bl StringCopy
_0801F07A:
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x13]
	ldrb r5, [r5]
	cmp r0, r5
	beq _0801F0A8
	bl DynamicPlaceholderTextUtil_Reset
	movs r0, 0
	adds r1, r4, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r1, =gText_F700LeftChat
_0801F094:
	adds r0, r6, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	movs r0, 0x1
	b _0801F0AA
	.pool
_0801F0A8:
	movs r0, 0
_0801F0AA:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801EFF8

	thumb_func_start sub_801F0B0
sub_801F0B0: @ 801F0B0
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x10]
	bx lr
	.pool
	thumb_func_end sub_801F0B0

	thumb_func_start sub_801F0BC
sub_801F0BC: @ 801F0BC
	ldr r2, =gUnknown_02022C84
	ldr r3, [r2]
	ldrb r2, [r3, 0x11]
	strb r2, [r0]
	ldrb r0, [r3, 0x12]
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_801F0BC

	thumb_func_start sub_801F0D0
sub_801F0D0: @ 801F0D0
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r0, 0x1A
	bx lr
	.pool
	thumb_func_end sub_801F0D0

	thumb_func_start sub_801F0DC
sub_801F0DC: @ 801F0DC
	push {lr}
	bl sub_801F0D0
	bl StringLength_Multibyte
	pop {r1}
	bx r1
	thumb_func_end sub_801F0DC

	thumb_func_start sub_801F0EC
sub_801F0EC: @ 801F0EC
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r3, [r0, 0x15]
	ldrb r2, [r0, 0x14]
	subs r0, r3, r2
	cmp r0, 0
	bge _0801F108
	negs r0, r0
	str r3, [r4]
	b _0801F10A
	.pool
_0801F108:
	str r2, [r4]
_0801F10A:
	str r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_801F0EC

	thumb_func_start sub_801F114
sub_801F114: @ 801F114
	push {lr}
	bl sub_801EED8
	lsls r0, 16
	lsrs r2, r0, 16
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x1A
	cmp r2, 0
	beq _0801F13A
_0801F12A:
	ldrb r0, [r1]
	cmp r0, 0xF9
	bne _0801F132
	adds r1, 0x1
_0801F132:
	adds r1, 0x1
	subs r2, 0x1
	cmp r2, 0
	bne _0801F12A
_0801F13A:
	adds r0, r1, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801F114

	thumb_func_start sub_801F144
sub_801F144: @ 801F144
	push {r4,lr}
	bl sub_801EED8
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x1A
	movs r2, 0
	movs r3, 0
	cmp r2, r4
	bcs _0801F174
_0801F15E:
	ldrb r0, [r1]
	cmp r0, 0xF9
	bne _0801F166
	adds r1, 0x1
_0801F166:
	adds r1, 0x1
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	adds r3, 0x1
	cmp r3, r4
	bcc _0801F15E
_0801F174:
	adds r0, r2, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_801F144

	thumb_func_start sub_801F180
sub_801F180: @ 801F180
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r0, 0x39
	bx lr
	.pool
	thumb_func_end sub_801F180

	thumb_func_start sub_801F18C
sub_801F18C: @ 801F18C
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x16]
	bx lr
	.pool
	thumb_func_end sub_801F18C

	thumb_func_start sub_801F198
sub_801F198: @ 801F198
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	ldrb r0, [r0, 0x15]
	bx lr
	.pool
	thumb_func_end sub_801F198

	thumb_func_start sub_801F1A4
sub_801F1A4: @ 801F1A4
	push {lr}
	bl sub_801EEA8
	ldrb r1, [r0]
	cmp r1, 0xFF
	bhi _0801F1BE
	ldr r0, =gUnknown_082F2AA8
	adds r0, r1, r0
	ldrb r0, [r0]
	cmp r0, r1
	beq _0801F1BE
	cmp r0, 0
	bne _0801F1C8
_0801F1BE:
	movs r0, 0x3
	b _0801F1CA
	.pool
_0801F1C8:
	movs r0, 0
_0801F1CA:
	pop {r1}
	bx r1
	thumb_func_end sub_801F1A4

	thumb_func_start sub_801F1D0
sub_801F1D0: @ 801F1D0
	ldr r0, =gUnknown_02022C84
	ldr r0, [r0]
	adds r0, 0x79
	bx lr
	.pool
	thumb_func_end sub_801F1D0

	thumb_func_start copy_strings_to_sav1
copy_strings_to_sav1: @ 801F1DC
	push {r4,lr}
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	ldr r1, =0x00003c88
	adds r0, r1
	ldr r1, =gText_Hello
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003c9d
	adds r0, r1
	ldr r1, =gText_Pokemon2
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003cb2
	adds r0, r1
	ldr r1, =gText_Trade
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003cc7
	adds r0, r1
	ldr r1, =gText_Battle
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003cdc
	adds r0, r1
	ldr r1, =gText_Lets
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003cf1
	adds r0, r1
	ldr r1, =gText_Ok
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003d06
	adds r0, r1
	ldr r1, =gText_Sorry
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003d1b
	adds r0, r1
	ldr r1, =gText_YayUnkF9F9
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003d30
	adds r0, r1
	ldr r1, =gText_ThankYou
	bl StringCopy
	ldr r0, [r4]
	ldr r1, =0x00003d45
	adds r0, r1
	ldr r1, =gText_ByeBye
	bl StringCopy
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end copy_strings_to_sav1

	thumb_func_start sub_801F2B4
sub_801F2B4: @ 801F2B4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0x7
	bls _0801F2CE
	b _0801F4C4
_0801F2CE:
	lsls r0, 2
	ldr r1, =_0801F2E0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801F2E0:
	.4byte _0801F300
	.4byte _0801F30E
	.4byte _0801F4A8
	.4byte _0801F35C
	.4byte _0801F448
	.4byte _0801F480
	.4byte _0801F494
	.4byte _0801F438
_0801F300:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0801F30A
	b _0801F49C
_0801F30A:
	movs r0, 0x1
	strh r0, [r4]
_0801F30E:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	adds r2, r0, 0
	strh r0, [r4, 0x8]
	ldr r3, =gUnknown_02022C84
	ldr r0, [r3]
	ldrb r1, [r0, 0xD]
	movs r5, 0x8
	ldrsh r0, [r4, r5]
	cmp r1, r0
	beq _0801F33C
	movs r0, 0x2
	strh r0, [r4]
	ldr r0, [r3]
	strb r2, [r0, 0xD]
	b _0801F4C4
	.pool
_0801F33C:
	bl GetBlockReceivedStatus
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x6]
	cmp r0, 0
	bne _0801F354
	bl sub_8011A9C
	cmp r0, 0
	beq _0801F354
	b _0801F4C4
_0801F354:
	movs r0, 0
	strh r0, [r4, 0x2]
	movs r0, 0x3
	strh r0, [r4]
_0801F35C:
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	cmp r0, 0x4
	bgt _0801F396
	movs r2, 0x6
	ldrsh r0, [r4, r2]
	movs r3, 0x2
	ldrsh r1, [r4, r3]
	asrs r0, r1
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	bne _0801F396
	movs r2, 0x1
_0801F378:
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x4
	bgt _0801F396
	movs r5, 0x6
	ldrsh r0, [r4, r5]
	movs r3, 0x2
	ldrsh r1, [r4, r3]
	asrs r0, r1
	ands r0, r2
	cmp r0, 0
	beq _0801F378
_0801F396:
	ldrh r1, [r4, 0x2]
	movs r5, 0x2
	ldrsh r0, [r4, r5]
	cmp r0, 0x5
	bne _0801F3A2
	b _0801F4C0
_0801F3A2:
	strh r1, [r4, 0x4]
	lsls r0, r1, 24
	lsrs r0, 24
	bl ResetBlockReceivedFlag
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	lsls r0, 8
	ldr r1, =gBlockRecvBuffer
	adds r0, r1
	ldrb r0, [r0]
	subs r0, 0x1
	cmp r0, 0x4
	bhi _0801F3E4
	lsls r0, 2
	ldr r1, =_0801F3D0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801F3D0:
	.4byte _0801F3E4
	.4byte _0801F3E8
	.4byte _0801F3EC
	.4byte _0801F3F0
	.4byte _0801F3F4
_0801F3E4:
	movs r0, 0x3
	b _0801F3F6
_0801F3E8:
	movs r0, 0x3
	b _0801F3F6
_0801F3EC:
	movs r0, 0x4
	b _0801F3F6
_0801F3F0:
	movs r0, 0x5
	b _0801F3F6
_0801F3F4:
	movs r0, 0x6
_0801F3F6:
	strh r0, [r4, 0xA]
	ldr r5, =gUnknown_02022C84
	ldr r0, [r5]
	adds r0, 0x39
	movs r2, 0x2
	ldrsh r1, [r4, r2]
	lsls r1, 8
	ldr r2, =gBlockRecvBuffer
	adds r1, r2
	bl sub_801EFF8
	cmp r0, 0
	beq _0801F42C
	ldr r0, [r5]
	ldrh r1, [r4, 0x2]
	strb r1, [r0, 0x16]
	movs r0, 0xC
	movs r1, 0x2
	bl sub_801F5EC
	movs r0, 0x7
	b _0801F42E
	.pool
_0801F42C:
	ldrh r0, [r4, 0xA]
_0801F42E:
	strh r0, [r4]
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	b _0801F4C4
_0801F438:
	movs r0, 0x2
	bl sub_801F644
	lsls r0, 24
	cmp r0, 0
	bne _0801F4C4
	ldrh r0, [r4, 0xA]
	b _0801F4C2
_0801F448:
	ldr r6, =gUnknown_02022C84
	ldr r0, [r6]
	ldrb r0, [r0, 0x13]
	cmp r0, 0
	bne _0801F47C
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	cmp r0, 0
	beq _0801F47C
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _0801F474
	bl sub_80104B0
	ldr r1, [r6]
	movs r0, 0x1
	b _0801F49A
	.pool
_0801F474:
	movs r5, 0x4
	ldrsh r0, [r4, r5]
	bl sub_8011DE0
_0801F47C:
	movs r0, 0x3
	b _0801F4C2
_0801F480:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	ldrb r0, [r1, 0x13]
	cmp r0, 0
	beq _0801F49C
	movs r0, 0x2
	b _0801F49A
	.pool
_0801F494:
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	movs r0, 0x3
_0801F49A:
	strb r0, [r1, 0x17]
_0801F49C:
	adds r0, r5, 0
	bl DestroyTask
	b _0801F4C4
	.pool
_0801F4A8:
	bl sub_8011A9C
	cmp r0, 0
	bne _0801F4C4
	ldr r0, =gUnknown_02022C84
	ldr r1, [r0]
	ldrb r0, [r1, 0x13]
	cmp r0, 0
	bne _0801F4C0
	ldrb r0, [r1, 0xD]
	bl sub_80110B8
_0801F4C0:
	movs r0, 0x1
_0801F4C2:
	strh r0, [r4]
_0801F4C4:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801F2B4

	thumb_func_start sub_801F4D0
sub_801F4D0: @ 801F4D0
	push {r4,lr}
	ldr r4, =gUnknown_02022C88
	ldr r0, =0x00002168
	bl Alloc
	str r0, [r4]
	cmp r0, 0
	beq _0801F52C
	bl sub_8020890
	cmp r0, 0
	beq _0801F52C
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082F2C60
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	ldr r0, =gUnknown_082F2C70
	bl InitWindows
	bl reset_temp_tile_data_buffers
	bl sub_8020770
	ldr r0, [r4]
	bl sub_801F574
	bl sub_801F580
	movs r0, 0
	movs r1, 0
	bl sub_801F5EC
	movs r0, 0x1
	b _0801F52E
	.pool
_0801F52C:
	movs r0, 0
_0801F52E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F4D0

	thumb_func_start sub_801F534
sub_801F534: @ 801F534
	push {lr}
	movs r0, 0
	bl sub_801F644
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_801F534

	thumb_func_start sub_801F544
sub_801F544: @ 801F544
	push {r4,lr}
	bl sub_80208D0
	ldr r4, =gUnknown_02022C88
	ldr r0, [r4]
	cmp r0, 0
	beq _0801F55A
	bl Free
	movs r0, 0
	str r0, [r4]
_0801F55A:
	bl FreeAllWindowBuffers
	ldr r1, =gScanlineEffect
	movs r0, 0x3
	strb r0, [r1, 0x15]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801F544

	thumb_func_start sub_801F574
sub_801F574: @ 801F574
	movs r2, 0
	movs r1, 0xFF
	strh r1, [r0, 0x18]
	strh r1, [r0, 0x1E]
	strh r2, [r0, 0x1A]
	bx lr
	thumb_func_end sub_801F574

	thumb_func_start sub_801F580
sub_801F580: @ 801F580
	push {r4,r5,lr}
	ldr r1, =gUnknown_02022C88
	ldr r0, [r1]
	cmp r0, 0
	beq _0801F5A8
	movs r2, 0
	adds r4, r1, 0
	ldr r5, =sub_801FDD8
	movs r3, 0
_0801F592:
	ldr r0, [r4]
	lsls r1, r2, 3
	adds r0, r1
	str r5, [r0]
	strb r3, [r0, 0x4]
	ldr r0, [r4]
	adds r0, r1
	strb r3, [r0, 0x5]
	adds r2, 0x1
	cmp r2, 0x2
	ble _0801F592
_0801F5A8:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801F580

	thumb_func_start sub_801F5B8
sub_801F5B8: @ 801F5B8
	push {r4-r6,lr}
	ldr r1, =gUnknown_02022C88
	ldr r0, [r1]
	cmp r0, 0
	beq _0801F5E0
	movs r5, 0
	adds r6, r1, 0
_0801F5C6:
	ldr r1, [r6]
	lsls r4, r5, 3
	adds r1, r4
	adds r0, r1, 0x5
	ldr r1, [r1]
	bl _call_via_r1
	ldr r1, [r6]
	adds r1, r4
	strb r0, [r1, 0x4]
	adds r5, 0x1
	cmp r5, 0x2
	ble _0801F5C6
_0801F5E0:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801F5B8

	thumb_func_start sub_801F5EC
sub_801F5EC: @ 801F5EC
	push {r4-r7,lr}
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 24
	ldr r3, =gUnknown_02022C88
	ldr r0, [r3]
	lsrs r1, 21
	adds r0, r1
	ldr r2, =sub_801FDD8
	str r2, [r0]
	movs r4, 0
	adds r5, r3, 0
	adds r3, r1, 0
	mov r12, r4
	ldr r1, =gUnknown_082F2C98
	movs r7, 0x1
	adds r2, r1, 0x4
_0801F60E:
	ldrh r0, [r1]
	cmp r0, r6
	bne _0801F634
	ldr r1, [r5]
	adds r1, r3
	ldr r0, [r2]
	str r0, [r1]
	strb r7, [r1, 0x4]
	ldr r0, [r5]
	adds r0, r3
	mov r1, r12
	strb r1, [r0, 0x5]
	b _0801F63E
	.pool
_0801F634:
	adds r1, 0x8
	adds r2, 0x8
	adds r4, 0x1
	cmp r4, 0x14
	bls _0801F60E
_0801F63E:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_801F5EC

	thumb_func_start sub_801F644
sub_801F644: @ 801F644
	lsls r0, 24
	ldr r1, =gUnknown_02022C88
	ldr r1, [r1]
	lsrs r0, 21
	adds r1, r0
	ldrb r0, [r1, 0x4]
	bx lr
	.pool
	thumb_func_end sub_801F644

	thumb_func_start sub_801F658
sub_801F658: @ 801F658
	push {r4,lr}
	adds r4, r0, 0
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0801F6EE
	ldrb r0, [r4]
	cmp r0, 0x6
	bhi _0801F6E4
	lsls r0, 2
	ldr r1, =_0801F67C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801F67C:
	.4byte _0801F698
	.4byte _0801F6A2
	.4byte _0801F6A8
	.4byte _0801F6AE
	.4byte _0801F6B4
	.4byte _0801F6BA
	.4byte _0801F6CC
_0801F698:
	bl sub_8020480
	bl sub_8020538
	b _0801F6E8
_0801F6A2:
	bl sub_8020584
	b _0801F6E8
_0801F6A8:
	bl sub_80205B4
	b _0801F6E8
_0801F6AE:
	bl task_tutorial_story_unknown
	b _0801F6E8
_0801F6B4:
	bl sub_8020680
	b _0801F6E8
_0801F6BA:
	bl sub_80206A4
	bl sub_80206D0
	bl sub_8020740
	bl sub_80206E8
	b _0801F6E8
_0801F6CC:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801F6E8
	bl sub_80208E8
	bl sub_8020A68
	bl sub_8020B20
	b _0801F6E8
_0801F6E4:
	movs r0, 0
	b _0801F6F0
_0801F6E8:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
_0801F6EE:
	movs r0, 0x1
_0801F6F0:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F658

	thumb_func_start sub_801F6F8
sub_801F6F8: @ 801F6F8
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801F708
	cmp r0, 0x1
	beq _0801F716
	b _0801F720
_0801F708:
	bl sub_80203B0
	movs r0, 0x3
	movs r1, 0x3
	bl CopyWindowToVram
	b _0801F720
_0801F716:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801F728
_0801F720:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	movs r0, 0x1
_0801F728:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F6F8

	thumb_func_start sub_801F730
sub_801F730: @ 801F730
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801F740
	cmp r0, 0x1
	beq _0801F74E
	b _0801F758
_0801F740:
	bl sub_802040C
	movs r0, 0x3
	movs r1, 0x3
	bl CopyWindowToVram
	b _0801F758
_0801F74E:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801F760
_0801F758:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	movs r0, 0x1
_0801F760:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F730

	thumb_func_start sub_801F768
sub_801F768: @ 801F768
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0x1
	beq _0801F79E
	cmp r0, 0x1
	bgt _0801F77C
	cmp r0, 0
	beq _0801F782
	b _0801F7C4
_0801F77C:
	cmp r0, 0x2
	beq _0801F7AA
	b _0801F7C4
_0801F782:
	movs r0, 0x1
	bl sub_802091C
	bl sub_8020320
	cmp r0, 0
	bne _0801F7CA
	bl sub_80201A4
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	b _0801F7C4
_0801F79E:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _0801F7C4
	b _0801F7CA
_0801F7AA:
	bl sub_8020368
	cmp r0, 0
	bne _0801F7CA
	bl sub_802093C
	movs r0, 0
	bl sub_802091C
	bl sub_8020B80
	movs r0, 0
	b _0801F7CC
_0801F7C4:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
_0801F7CA:
	movs r0, 0x1
_0801F7CC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F768

	thumb_func_start sub_801F7D4
sub_801F7D4: @ 801F7D4
	push {lr}
	bl sub_802093C
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_801F7D4

	thumb_func_start sub_801F7E0
sub_801F7E0: @ 801F7E0
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801F7F0
	cmp r0, 0x1
	beq _0801F814
	b _0801F81E
_0801F7F0:
	movs r0, 0
	movs r1, 0
	bl sub_801FF18
	movs r0, 0x17
	movs r1, 0xB
	movs r2, 0x1
	bl sub_801FDDC
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	b _0801F81E
	.pool
_0801F814:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801F826
_0801F81E:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	movs r0, 0x1
_0801F826:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F7E0

	thumb_func_start sub_801F82C
sub_801F82C: @ 801F82C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801F83C
	cmp r0, 0x1
	beq _0801F84C
	b _0801F862
_0801F83C:
	bl sub_8020094
	bl sub_801FEBC
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	b _0801F862
_0801F84C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801F868
	bl sub_80200C8
	bl sub_801FEE4
	movs r0, 0
	b _0801F86A
_0801F862:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
_0801F868:
	movs r0, 0x1
_0801F86A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F82C

	thumb_func_start sub_801F870
sub_801F870: @ 801F870
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801F882
	cmp r0, 0x1
	beq _0801F8BA
	b _0801F8CC
_0801F882:
	add r1, sp, 0x8
	add r0, sp, 0x4
	bl sub_801F0EC
	ldr r0, [sp, 0x4]
	lsls r0, 16
	lsrs r0, 16
	ldr r1, [sp, 0x8]
	lsls r1, 16
	lsrs r1, 16
	movs r2, 0
	bl sub_80200EC
	bl sub_801F0D0
	adds r1, r0, 0
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0
	movs r2, 0x3
	movs r3, 0x1
	bl sub_8020118
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
	b _0801F8CC
_0801F8BA:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801F8D2
	bl sub_8020B80
	movs r0, 0
	b _0801F8D4
_0801F8CC:
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
_0801F8D2:
	movs r0, 0x1
_0801F8D4:
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801F870

	thumb_func_start sub_801F8DC
sub_801F8DC: @ 801F8DC
	push {r4-r6,lr}
	sub sp, 0x4
	adds r6, r0, 0
	ldrb r0, [r6]
	cmp r0, 0x1
	beq _0801F938
	cmp r0, 0x1
	bgt _0801F8F2
	cmp r0, 0
	beq _0801F8FC
	b _0801F972
_0801F8F2:
	cmp r0, 0x2
	beq _0801F95C
	cmp r0, 0x3
	beq _0801F96E
	b _0801F972
_0801F8FC:
	bl sub_801F144
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_801F114
	adds r5, r0, 0
	bl StringLength_Multibyte
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	movs r2, 0x66
	bl sub_80200EC
	movs r0, 0x5
	str r0, [sp]
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0
	movs r3, 0x4
	bl sub_8020118
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
	b _0801F972
_0801F938:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801F978
	movs r0, 0x1
	movs r1, 0x10
	bl sub_801FF18
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	b _0801F972
	.pool
_0801F95C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801F978
	movs r0, 0x1
	bl sub_80209AC
	b _0801F972
_0801F96E:
	movs r0, 0
	b _0801F97A
_0801F972:
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
_0801F978:
	movs r0, 0x1
_0801F97A:
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801F8DC

	thumb_func_start sub_801F984
sub_801F984: @ 801F984
	push {r4-r6,lr}
	sub sp, 0x4
	adds r6, r0, 0
	ldrb r0, [r6]
	cmp r0, 0x1
	beq _0801F9E0
	cmp r0, 0x1
	bgt _0801F99A
	cmp r0, 0
	beq _0801F9A4
	b _0801FA1A
_0801F99A:
	cmp r0, 0x2
	beq _0801FA00
	cmp r0, 0x3
	beq _0801FA16
	b _0801FA1A
_0801F9A4:
	bl sub_801F144
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_801F114
	adds r5, r0, 0
	bl StringLength_Multibyte
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	movs r2, 0
	bl sub_80200EC
	movs r0, 0x2
	str r0, [sp]
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0x3
	movs r3, 0x1
	bl sub_8020118
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
	b _0801FA1A
_0801F9E0:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801FA20
	bl sub_8020094
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	b _0801FA1A
	.pool
_0801FA00:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801FA20
	movs r0, 0
	bl sub_80209AC
	bl sub_80200C8
	b _0801FA1A
_0801FA16:
	movs r0, 0
	b _0801FA22
_0801FA1A:
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
_0801FA20:
	movs r0, 0x1
_0801FA22:
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801F984

	thumb_func_start sub_801FA2C
sub_801FA2C: @ 801FA2C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FA3C
	cmp r0, 0x1
	beq _0801FA50
	b _0801FA5E
_0801FA3C:
	bl sub_80201A4
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FA5E
_0801FA50:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801FA5E
	movs r0, 0
	b _0801FA60
_0801FA5E:
	movs r0, 0x1
_0801FA60:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FA2C

	thumb_func_start sub_801FA68
sub_801FA68: @ 801FA68
	push {r4-r6,lr}
	adds r6, r0, 0
	ldrb r0, [r6]
	cmp r0, 0x4
	bhi _0801FB3A
	lsls r0, 2
	ldr r1, =_0801FA80
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0801FA80:
	.4byte _0801FA94
	.4byte _0801FAC0
	.4byte _0801FAF0
	.4byte _0801FB14
	.4byte _0801FADE
_0801FA94:
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrh r5, [r0, 0x1A]
	bl sub_801F180
	adds r4, r0, 0
	bl sub_801F18C
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_8020420
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	b _0801FB34
	.pool
_0801FAC0:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0
	bne _0801FB3A
	ldr r0, =gUnknown_02022C88
	ldr r1, [r0]
	ldrh r0, [r1, 0x1A]
	cmp r0, 0x8
	bhi _0801FAE8
	adds r0, 0x1
	strh r0, [r1, 0x1A]
	movs r0, 0x4
	strb r0, [r6]
_0801FADE:
	movs r0, 0
	b _0801FB3C
	.pool
_0801FAE8:
	strh r2, [r1, 0x1C]
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
_0801FAF0:
	movs r0, 0
	movs r1, 0
	movs r2, 0x5
	movs r3, 0x11
	bl ScrollWindow
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, =gUnknown_02022C88
	ldr r1, [r0]
	ldrh r0, [r1, 0x1C]
	adds r0, 0x1
	strh r0, [r1, 0x1C]
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
_0801FB14:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0801FB3A
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrh r0, [r0, 0x1C]
	cmp r0, 0x2
	bhi _0801FB34
	ldrb r0, [r6]
	subs r0, 0x1
	b _0801FB38
	.pool
_0801FB34:
	ldrb r0, [r6]
	adds r0, 0x1
_0801FB38:
	strb r0, [r6]
_0801FB3A:
	movs r0, 0x1
_0801FB3C:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_801FA68

	thumb_func_start sub_801FB44
sub_801FB44: @ 801FB44
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FB54
	cmp r0, 0x1
	beq _0801FB60
	b _0801FB66
_0801FB54:
	bl sub_80209E0
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FB66
_0801FB60:
	bl sub_8020A1C
	b _0801FB68
_0801FB66:
	movs r0, 0x1
_0801FB68:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FB44

	thumb_func_start sub_801FB70
sub_801FB70: @ 801FB70
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FB80
	cmp r0, 0x1
	beq _0801FBA0
	b _0801FBAA
_0801FB80:
	movs r0, 0x3
	movs r1, 0x10
	bl sub_801FF18
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FBAA
	.pool
_0801FBA0:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FBAC
_0801FBAA:
	movs r0, 0x1
_0801FBAC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FB70

	thumb_func_start sub_801FBB4
sub_801FBB4: @ 801FBB4
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FBC4
	cmp r0, 0x1
	beq _0801FBE4
	b _0801FBEE
_0801FBC4:
	movs r0, 0x4
	movs r1, 0
	bl sub_801FF18
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FBEE
	.pool
_0801FBE4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FBF0
_0801FBEE:
	movs r0, 0x1
_0801FBF0:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FBB4

	thumb_func_start sub_801FBF8
sub_801FBF8: @ 801FBF8
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FC08
	cmp r0, 0x1
	beq _0801FC38
	b _0801FC42
_0801FC08:
	bl DynamicPlaceholderTextUtil_Reset
	bl sub_801F1D0
	adds r1, r0, 0
	movs r0, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r0, 0x5
	movs r1, 0
	bl sub_801FF18
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FC42
	.pool
_0801FC38:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FC44
_0801FC42:
	movs r0, 0x1
_0801FC44:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FBF8

	thumb_func_start sub_801FC4C
sub_801FC4C: @ 801FC4C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FC5C
	cmp r0, 0x1
	beq _0801FC88
	b _0801FC92
_0801FC5C:
	movs r0, 0x6
	movs r1, 0
	bl sub_801FF18
	movs r0, 0x17
	movs r1, 0xA
	movs r2, 0x1
	bl sub_801FDDC
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FC92
	.pool
_0801FC88:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FC94
_0801FC92:
	movs r0, 0x1
_0801FC94:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FC4C

	thumb_func_start sub_801FC9C
sub_801FC9C: @ 801FC9C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FCAC
	cmp r0, 0x1
	beq _0801FCD8
	b _0801FCE2
_0801FCAC:
	movs r0, 0x7
	movs r1, 0
	bl sub_801FF18
	movs r0, 0x17
	movs r1, 0xA
	movs r2, 0x1
	bl sub_801FDDC
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FCE2
	.pool
_0801FCD8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FCE4
_0801FCE2:
	movs r0, 0x1
_0801FCE4:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FC9C

	thumb_func_start sub_801FCEC
sub_801FCEC: @ 801FCEC
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FCFC
	cmp r0, 0x1
	beq _0801FD1C
	b _0801FD26
_0801FCFC:
	movs r0, 0x8
	movs r1, 0
	bl sub_801FF18
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FD26
	.pool
_0801FD1C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FD28
_0801FD26:
	movs r0, 0x1
_0801FD28:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FCEC

	thumb_func_start sub_801FD30
sub_801FD30: @ 801FD30
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FD40
	cmp r0, 0x1
	beq _0801FD74
	b _0801FD7E
_0801FD40:
	bl DynamicPlaceholderTextUtil_Reset
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	movs r0, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	movs r0, 0x9
	movs r1, 0
	bl sub_801FF18
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FD7E
	.pool
_0801FD74:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FD80
_0801FD7E:
	movs r0, 0x1
_0801FD80:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FD30

	thumb_func_start sub_801FD88
sub_801FD88: @ 801FD88
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0
	beq _0801FD98
	cmp r0, 0x1
	beq _0801FDC4
	b _0801FDCE
_0801FD98:
	movs r0, 0xA
	movs r1, 0
	bl sub_801FF18
	movs r0, 0x17
	movs r1, 0xA
	movs r2, 0x1
	bl sub_801FDDC
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	ldrb r0, [r0, 0x1E]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _0801FDCE
	.pool
_0801FDC4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0801FDD0
_0801FDCE:
	movs r0, 0x1
_0801FDD0:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_801FD88

	thumb_func_start sub_801FDD8
sub_801FDD8: @ 801FDD8
	movs r0, 0
	bx lr
	thumb_func_end sub_801FDD8

	thumb_func_start sub_801FDDC
sub_801FDDC: @ 801FDDC
	push {r4-r7,lr}
	sub sp, 0x14
	lsls r0, 24
	lsls r1, 24
	lsls r2, 24
	lsrs r7, r2, 24
	ldr r4, =0xffffff00
	ldr r2, [sp, 0xC]
	ands r2, r4
	lsrs r0, 16
	ldr r3, =0xffff00ff
	ands r2, r3
	orrs r2, r0
	lsrs r1, 8
	ldr r0, =0xff00ffff
	ands r2, r0
	orrs r2, r1
	ldr r0, =0x00ffffff
	ands r2, r0
	movs r0, 0xC0
	lsls r0, 19
	orrs r2, r0
	str r2, [sp, 0xC]
	ldr r0, [sp, 0x10]
	ands r0, r4
	movs r1, 0x4
	orrs r0, r1
	ands r0, r3
	movs r1, 0xE0
	lsls r1, 4
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0xA4
	lsls r1, 15
	orrs r0, r1
	str r0, [sp, 0x10]
	add r0, sp, 0xC
	bl AddWindow
	adds r1, r0, 0
	ldr r5, =gUnknown_02022C88
	ldr r0, [r5]
	movs r6, 0
	strh r1, [r0, 0x18]
	lsls r0, r1, 16
	lsrs r0, 16
	cmp r0, 0xFF
	beq _0801FE94
	lsls r0, r1, 24
	lsrs r0, 24
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r5]
	ldrb r0, [r0, 0x18]
	bl PutWindowTilemap
	ldr r0, [r5]
	ldrb r0, [r0, 0x18]
	ldr r2, =gText_Yes
	movs r1, 0x1
	str r1, [sp]
	movs r4, 0xFF
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r3, 0x8
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	ldrb r0, [r0, 0x18]
	ldr r2, =gText_No
	movs r1, 0x11
	str r1, [sp]
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x8
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	ldrb r0, [r0, 0x18]
	movs r1, 0x1
	movs r2, 0xD
	bl sub_8098858
	ldr r0, [r5]
	ldrb r0, [r0, 0x18]
	movs r1, 0x2
	adds r2, r7, 0
	bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
_0801FE94:
	add sp, 0x14
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801FDDC

	thumb_func_start sub_801FEBC
sub_801FEBC: @ 801FEBC
	push {r4,lr}
	ldr r4, =gUnknown_02022C88
	ldr r0, [r4]
	ldrh r0, [r0, 0x18]
	cmp r0, 0xFF
	beq _0801FEDA
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl ClearStdWindowAndFrameToTransparent
	ldr r0, [r4]
	ldrb r0, [r0, 0x18]
	bl ClearWindowTilemap
_0801FEDA:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801FEBC

	thumb_func_start sub_801FEE4
sub_801FEE4: @ 801FEE4
	push {r4,lr}
	ldr r4, =gUnknown_02022C88
	ldr r0, [r4]
	ldrh r0, [r0, 0x18]
	cmp r0, 0xFF
	beq _0801FEFE
	lsls r0, 24
	lsrs r0, 24
	bl RemoveWindow
	ldr r1, [r4]
	movs r0, 0xFF
	strh r0, [r1, 0x18]
_0801FEFE:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801FEE4

	thumb_func_start sub_801FF08
sub_801FF08: @ 801FF08
	push {lr}
	bl Menu_ProcessInput
	lsls r0, 24
	asrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_801FF08

	thumb_func_start sub_801FF18
sub_801FF18: @ 801FF18
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x1C
	adds r7, r0, 0
	lsls r1, 16
	lsrs r1, 16
	mov r9, r1
	ldr r1, =0xffffff00
	ldr r3, [sp, 0x14]
	ands r3, r1
	ldr r2, =0xffff00ff
	ands r3, r2
	movs r0, 0x80
	lsls r0, 4
	orrs r3, r0
	ldr r0, =0xff00ffff
	ands r3, r0
	movs r0, 0x80
	lsls r0, 13
	orrs r3, r0
	ldr r5, =0x00ffffff
	ands r3, r5
	movs r0, 0xA8
	lsls r0, 21
	orrs r3, r0
	str r3, [sp, 0x14]
	ldr r0, [sp, 0x18]
	ands r0, r1
	movs r1, 0x4
	orrs r0, r1
	ands r0, r2
	movs r1, 0xE0
	lsls r1, 4
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0xD4
	lsls r1, 15
	orrs r0, r1
	str r0, [sp, 0x18]
	ldr r1, =gUnknown_082F2D40
	lsls r0, r7, 1
	adds r0, r7
	lsls r0, 2
	adds r4, r0, r1
	ldrb r0, [r4, 0xA]
	cmp r0, 0
	beq _0801FF98
	lsls r0, r3, 16
	movs r1, 0xF9
	lsls r1, 24
	adds r0, r1
	lsrs r0, 16
	ands r2, r3
	orrs r2, r0
	lsrs r1, r2, 24
	adds r1, 0x7
	lsls r1, 24
	adds r0, r5, 0
	ands r0, r2
	orrs r0, r1
	str r0, [sp, 0x14]
_0801FF98:
	add r0, sp, 0x14
	bl AddWindow
	ldr r5, =gUnknown_02022C88
	ldr r1, [r5]
	strh r0, [r1, 0x1E]
	ldrh r0, [r1, 0x1E]
	mov r8, r0
	cmp r0, 0xFF
	beq _08020082
	ldrb r0, [r4, 0x9]
	cmp r0, 0
	beq _0801FFE0
	adds r0, r1, 0
	adds r0, 0x22
	ldr r1, [r4]
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	ldr r0, [r5]
	adds r6, r0, 0
	adds r6, 0x22
	b _0801FFE2
	.pool
_0801FFE0:
	ldr r6, [r4]
_0801FFE2:
	mov r0, r9
	lsls r1, r0, 8
	movs r0, 0
	movs r2, 0
	bl ChangeBgY
	mov r1, r8
	lsls r0, r1, 24
	lsrs r5, r0, 24
	adds r0, r5, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r5, 0
	bl PutWindowTilemap
	ldr r1, =gUnknown_082F2D40
	lsls r0, r7, 1
	adds r0, r7
	lsls r0, 2
	adds r4, r0, r1
	ldrb r0, [r4, 0x4]
	cmp r0, 0x1
	bne _08020050
	adds r0, r5, 0
	movs r1, 0xA
	movs r2, 0x2
	bl sub_80989E0
	ldrb r3, [r4, 0x5]
	adds r3, 0x8
	lsls r3, 24
	lsrs r3, 24
	ldrb r0, [r4, 0x6]
	adds r0, 0x8
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	ldrb r0, [r4, 0x7]
	str r0, [sp, 0xC]
	ldrb r0, [r4, 0x8]
	str r0, [sp, 0x10]
	adds r0, r5, 0
	movs r1, 0x1
	adds r2, r6, 0
	bl AddTextPrinterParameterized5
	b _0802007A
	.pool
_08020050:
	adds r0, r5, 0
	movs r1, 0xA
	movs r2, 0x2
	bl sub_8098858
	ldrb r3, [r4, 0x5]
	ldrb r0, [r4, 0x6]
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	ldrb r0, [r4, 0x7]
	str r0, [sp, 0xC]
	ldrb r0, [r4, 0x8]
	str r0, [sp, 0x10]
	adds r0, r5, 0
	movs r1, 0x1
	adds r2, r6, 0
	bl AddTextPrinterParameterized5
_0802007A:
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	mov r1, r8
	strh r1, [r0, 0x1E]
_08020082:
	add sp, 0x1C
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_801FF18

	thumb_func_start sub_8020094
sub_8020094: @ 8020094
	push {r4,lr}
	ldr r4, =gUnknown_02022C88
	ldr r0, [r4]
	ldrh r0, [r0, 0x1E]
	cmp r0, 0xFF
	beq _080200B2
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl ClearStdWindowAndFrameToTransparent
	ldr r0, [r4]
	ldrb r0, [r0, 0x1E]
	bl ClearWindowTilemap
_080200B2:
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020094

	thumb_func_start sub_80200C8
sub_80200C8: @ 80200C8
	push {r4,lr}
	ldr r4, =gUnknown_02022C88
	ldr r0, [r4]
	ldrh r0, [r0, 0x1E]
	cmp r0, 0xFF
	beq _080200E2
	lsls r0, 24
	lsrs r0, 24
	bl RemoveWindow
	ldr r1, [r4]
	movs r0, 0xFF
	strh r0, [r1, 0x1E]
_080200E2:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80200C8

	thumb_func_start sub_80200EC
sub_80200EC: @ 80200EC
	push {lr}
	sub sp, 0x8
	adds r3, r0, 0
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 19
	lsrs r3, 16
	lsls r1, 19
	lsrs r1, 16
	str r1, [sp]
	movs r0, 0xE
	str r0, [sp, 0x4]
	movs r0, 0x1
	adds r1, r2, 0
	adds r2, r3, 0
	movs r3, 0x1
	bl FillWindowPixelRect
	add sp, 0x8
	pop {r0}
	bx r0
	thumb_func_end sub_80200EC

	thumb_func_start sub_8020118
sub_8020118: @ 8020118
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x34
	mov r10, r1
	ldr r1, [sp, 0x54]
	lsls r0, 16
	lsrs r5, r0, 16
	mov r9, r5
	lsls r2, 24
	lsrs r4, r2, 24
	mov r8, r4
	lsls r3, 24
	lsrs r7, r3, 24
	lsls r1, 24
	lsrs r6, r1, 24
	cmp r4, 0
	beq _08020154
	bl sub_801F198
	adds r1, r0, 0
	subs r1, r5
	lsls r1, 16
	lsrs r1, 16
	adds r0, r5, 0
	adds r2, r4, 0
	bl sub_80200EC
_08020154:
	add r0, sp, 0xC
	mov r1, r8
	strb r1, [r0]
	strb r7, [r0, 0x1]
	strb r6, [r0, 0x2]
	add r4, sp, 0x10
	movs r0, 0xFC
	strb r0, [r4]
	movs r0, 0x14
	strb r0, [r4, 0x1]
	movs r0, 0x8
	strb r0, [r4, 0x2]
	mov r0, sp
	adds r0, 0x13
	mov r1, r10
	bl StringCopy
	mov r0, r9
	lsls r2, r0, 27
	lsrs r2, 24
	add r1, sp, 0xC
	str r1, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x2
	movs r3, 0x1
	bl AddTextPrinterParameterized3
	add sp, 0x34
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8020118

	thumb_func_start sub_80201A4
sub_80201A4: @ 80201A4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4C
	movs r0, 0x2
	movs r1, 0xFF
	bl FillWindowPixelBuffer
	bl sub_801F0B0
	lsls r0, 24
	lsrs r2, r0, 24
	add r1, sp, 0xC
	movs r0, 0
	strb r0, [r1]
	movs r0, 0xE
	strb r0, [r1, 0x1]
	movs r0, 0xD
	strb r0, [r1, 0x2]
	cmp r2, 0x3
	beq _08020240
	add r1, sp, 0x10
	movs r0, 0xFC
	strb r0, [r1]
	movs r0, 0x14
	strb r0, [r1, 0x1]
	movs r0, 0x8
	strb r0, [r1, 0x2]
	str r0, [sp, 0x40]
	str r1, [sp, 0x44]
	cmp r2, 0x2
	bne _080201EC
	movs r1, 0x6
	str r1, [sp, 0x40]
_080201EC:
	movs r7, 0
	movs r6, 0
	lsls r0, r2, 2
	ldr r1, =gUnknown_082F2BA8
	adds r0, r2
	lsls r0, 3
	adds r4, r0, r1
	ldr r0, [sp, 0x40]
	lsls r5, r0, 24
_080201FE:
	ldr r1, [r4]
	cmp r1, 0
	bne _08020206
	b _0802030C
_08020206:
	mov r0, sp
	adds r0, 0x13
	bl StringCopy
	lsls r3, r6, 24
	lsrs r3, 24
	add r1, sp, 0xC
	str r1, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	ldr r0, [sp, 0x44]
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0
	lsrs r2, r5, 24
	bl AddTextPrinterParameterized3
	adds r4, 0x4
	adds r7, 0x1
	adds r0, r6, 0
	adds r0, 0xC
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r7, 0x9
	ble _080201FE
	b _0802030C
	.pool
_08020240:
	movs r1, 0x4
	str r1, [sp, 0x40]
	movs r7, 0
	movs r6, 0
_08020248:
	adds r0, r7, 0
	bl sub_801EE6C
	adds r5, r0, 0
	movs r0, 0
	adds r1, r5, 0
	movs r2, 0
	bl GetStringWidth
	cmp r0, 0x28
	bgt _08020286
	lsls r3, r6, 24
	lsrs r3, 24
	add r4, sp, 0xC
	str r4, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0
	movs r4, 0x80
	lsls r4, 19
	lsrs r2, r4, 24
	bl AddTextPrinterParameterized3
	adds r0, r7, 0x1
	str r0, [sp, 0x48]
	adds r6, 0xC
	mov r10, r6
	b _08020300
_08020286:
	adds r0, r5, 0
	bl StringLength_Multibyte
	adds r4, r0, 0
	mov r1, sp
	adds r1, 0x10
	str r1, [sp, 0x44]
	ldr r0, [sp, 0x40]
	lsls r0, 24
	mov r8, r0
	lsls r1, r6, 24
	mov r9, r1
	adds r0, r7, 0x1
	str r0, [sp, 0x48]
	adds r6, 0xC
	mov r10, r6
	ldr r7, [sp, 0x40]
	adds r7, 0x23
	ldr r6, [sp, 0x44]
_080202AC:
	subs r4, 0x1
	adds r0, r6, 0
	adds r1, r5, 0
	adds r2, r4, 0
	bl StringCopyN_Multibyte
	movs r0, 0
	adds r1, r6, 0
	movs r2, 0
	bl GetStringWidth
	cmp r0, 0x23
	bgt _080202AC
	mov r1, r8
	lsrs r2, r1, 24
	mov r0, r9
	lsrs r4, r0, 24
	add r1, sp, 0xC
	str r1, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	ldr r1, [sp, 0x44]
	str r1, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0
	adds r3, r4, 0
	bl AddTextPrinterParameterized3
	adds r2, r7, 0
	add r0, sp, 0xC
	str r0, [sp]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp, 0x4]
	ldr r0, =gText_Ellipsis
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0
	adds r3, r4, 0
	bl AddTextPrinterParameterized3
_08020300:
	ldr r7, [sp, 0x48]
	mov r4, r10
	lsls r0, r4, 16
	lsrs r6, r0, 16
	cmp r7, 0x9
	ble _08020248
_0802030C:
	add sp, 0x4C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80201A4

	thumb_func_start sub_8020320
sub_8020320: @ 8020320
	push {r4,lr}
	ldr r1, =gUnknown_02022C88
	ldr r2, [r1]
	ldrh r3, [r2, 0x20]
	movs r4, 0x20
	ldrsh r0, [r2, r4]
	cmp r0, 0x37
	bgt _08020354
	adds r0, r3, 0
	adds r0, 0xC
	strh r0, [r2, 0x20]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x37
	ble _08020348
	movs r0, 0x38
	strh r0, [r2, 0x20]
	b _08020354
	.pool
_08020348:
	movs r1, 0x20
	ldrsh r0, [r2, r1]
	bl sub_80207C0
	movs r0, 0x1
	b _08020360
_08020354:
	ldr r0, [r1]
	movs r4, 0x20
	ldrsh r0, [r0, r4]
	bl sub_8020818
	movs r0, 0
_08020360:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8020320

	thumb_func_start sub_8020368
sub_8020368: @ 8020368
	push {r4,lr}
	ldr r1, =gUnknown_02022C88
	ldr r2, [r1]
	ldrh r3, [r2, 0x20]
	movs r4, 0x20
	ldrsh r0, [r2, r4]
	cmp r0, 0
	ble _0802039C
	adds r0, r3, 0
	subs r0, 0xC
	strh r0, [r2, 0x20]
	lsls r0, 16
	cmp r0, 0
	bgt _08020390
	movs r0, 0
	strh r0, [r2, 0x20]
	b _0802039C
	.pool
_08020390:
	movs r1, 0x20
	ldrsh r0, [r2, r1]
	bl sub_80207C0
	movs r0, 0x1
	b _080203A8
_0802039C:
	ldr r0, [r1]
	movs r4, 0x20
	ldrsh r0, [r0, r4]
	bl sub_8020818
	movs r0, 0
_080203A8:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8020368

	thumb_func_start sub_80203B0
sub_80203B0: @ 80203B0
	push {r4,r5,lr}
	sub sp, 0xC
	movs r0, 0x3
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0xD
	bl sub_8098858
	movs r5, 0xE
	str r5, [sp]
	movs r4, 0x5
	str r4, [sp, 0x4]
	ldr r0, =gUnknown_082F2DC8
	str r0, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0x2
	movs r2, 0x8
	movs r3, 0x1
	bl PrintTextArray
	bl sub_801F0B0
	lsls r0, 24
	lsrs r0, 24
	str r5, [sp]
	str r4, [sp, 0x4]
	str r0, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0x2
	movs r2, 0
	movs r3, 0x1
	bl sub_81983AC
	movs r0, 0x3
	bl PutWindowTilemap
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80203B0

	thumb_func_start sub_802040C
sub_802040C: @ 802040C
	push {lr}
	movs r0, 0x3
	movs r1, 0
	bl ClearStdWindowAndFrameToTransparent
	movs r0, 0x3
	bl ClearWindowTilemap
	pop {r0}
	bx r0
	thumb_func_end sub_802040C

	thumb_func_start sub_8020420
sub_8020420: @ 8020420
	push {r4,r5,lr}
	sub sp, 0x10
	adds r5, r1, 0
	lsls r0, 16
	lsrs r0, 16
	lsls r2, 24
	add r3, sp, 0xC
	movs r1, 0x1
	strb r1, [r3]
	lsrs r2, 23
	adds r1, r2, 0x2
	strb r1, [r3, 0x1]
	adds r1, r3, 0
	adds r2, 0x3
	strb r2, [r1, 0x2]
	lsls r4, r0, 4
	subs r4, r0
	lsls r3, r4, 16
	lsrs r3, 16
	movs r0, 0xA8
	str r0, [sp]
	movs r0, 0xF
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0x11
	movs r2, 0
	bl FillWindowPixelRect
	adds r4, 0x1
	lsls r4, 24
	lsrs r4, 24
	add r0, sp, 0xC
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0
	movs r1, 0x2
	movs r2, 0
	adds r3, r4, 0
	bl AddTextPrinterParameterized3
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8020420

	thumb_func_start sub_8020480
sub_8020480: @ 8020480
	push {lr}
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuRegBits
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r1, 0xE0
	lsls r1, 8
	movs r0, 0
	bl ClearGpuRegBits
	movs r1, 0x80
	lsls r1, 6
	movs r0, 0
	bl SetGpuRegBits
	ldr r1, =0x000040f0
	movs r0, 0x40
	bl SetGpuReg
	movs r0, 0x44
	movs r1, 0x90
	bl SetGpuReg
	movs r0, 0x48
	movs r1, 0x3D
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x3F
	bl SetGpuReg
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020480

	thumb_func_start sub_8020538
sub_8020538: @ 8020538
	push {r4,lr}
	ldr r4, =gUnknown_02022C88
	ldr r1, [r4]
	movs r0, 0x94
	lsls r0, 1
	adds r1, r0
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00000928
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001128
	adds r1, r0
	movs r0, 0x3
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001928
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020538

	thumb_func_start sub_8020584
sub_8020584: @ 8020584
	push {lr}
	sub sp, 0x8
	movs r1, 0xC0
	lsls r1, 19
	movs r0, 0
	movs r2, 0x20
	movs r3, 0x1
	bl RequestDma3Fill
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	add sp, 0x8
	pop {r0}
	bx r0
	thumb_func_end sub_8020584

	thumb_func_start sub_80205B4
sub_80205B4: @ 80205B4
	push {lr}
	sub sp, 0x4
	ldr r0, =gUnknown_08DD4BD0
	movs r1, 0x70
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_08DD4BB0
	movs r1, 0xC0
	movs r2, 0x20
	bl LoadPalette
	ldr r1, =gUnknown_08DD4BF0
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_08DD4C4C
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80205B4

	thumb_func_start task_tutorial_story_unknown
task_tutorial_story_unknown: @ 8020604
	push {r4,r5,lr}
	sub sp, 0x4
	ldr r0, =gLinkMiscMenu_Pal
	movs r1, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r1, =gLinkMiscMenu_Gfx
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	adds r5, r0, 0
	cmp r5, 0
	beq _0802064E
	movs r1, 0x88
	lsls r1, 2
	adds r0, r5, r1
	ldr r4, =gUnknown_02022C88
	ldr r1, [r4]
	ldr r2, =0x00002128
	adds r1, r2
	movs r2, 0x8
	bl CpuFastSet
	movs r1, 0x84
	lsls r1, 3
	adds r0, r5, r1
	ldr r1, [r4]
	ldr r2, =0x00002148
	adds r1, r2
	movs r2, 0x8
	bl CpuFastSet
_0802064E:
	ldr r1, =gLinkMiscMenu_Tilemap
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_tutorial_story_unknown

	thumb_func_start sub_8020680
sub_8020680: @ 8020680
	push {lr}
	ldr r0, =gUnknown_082F2C20
	movs r1, 0x80
	movs r2, 0x20
	bl LoadPalette
	ldr r1, =0x06004020
	movs r0, 0
	movs r2, 0x20
	movs r3, 0x1
	bl RequestDma3Fill
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020680

	thumb_func_start sub_80206A4
sub_80206A4: @ 80206A4
	push {lr}
	ldr r0, =gUnknown_082F2C40
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80206A4

	thumb_func_start sub_80206D0
sub_80206D0: @ 80206D0
	push {lr}
	movs r0, 0x2
	bl PutWindowTilemap
	bl sub_80201A4
	movs r0, 0x2
	movs r1, 0x3
	bl CopyWindowToVram
	pop {r0}
	bx r0
	thumb_func_end sub_80206D0

	thumb_func_start sub_80206E8
sub_80206E8: @ 80206E8
	push {r4,lr}
	sub sp, 0xC
	add r1, sp, 0x8
	movs r0, 0
	strb r0, [r1]
	movs r0, 0xFF
	strb r0, [r1, 0x1]
	movs r4, 0
_080206F8:
	ldr r0, =gUnknown_02022C88
	ldr r1, [r0]
	ldr r0, =0x00002128
	adds r1, r0
	lsls r2, r4, 19
	lsrs r2, 16
	movs r0, 0x8
	str r0, [sp]
	movs r0, 0x10
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r3, 0
	bl BlitBitmapToWindow
	adds r4, 0x1
	cmp r4, 0xE
	ble _080206F8
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0x1
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80206E8

	thumb_func_start sub_8020740
sub_8020740: @ 8020740
	push {lr}
	movs r0, 0x3
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx
	movs r0, 0x3
	movs r1, 0xA
	movs r2, 0x20
	bl LoadUserWindowBorderGfx_
	ldr r0, =gUnknown_0860F074
	movs r1, 0xE0
	movs r2, 0x20
	bl LoadPalette
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020740

	thumb_func_start sub_8020770
sub_8020770: @ 8020770
	push {lr}
	sub sp, 0x10
	ldr r0, =0xa2600001
	str r0, [sp, 0x4]
	ldr r0, =0x04000014
	str r0, [sp]
	mov r2, sp
	movs r1, 0
	movs r0, 0x1
	strb r0, [r2, 0x8]
	mov r0, sp
	strb r1, [r0, 0x9]
	ldr r0, =gUnknown_02022C88
	ldr r0, [r0]
	strh r1, [r0, 0x20]
	str r1, [sp, 0xC]
	add r0, sp, 0xC
	ldr r1, =gScanlineEffectRegBuffers
	ldr r2, =0x010003c0
	bl CpuFastSet
	ldr r0, [sp]
	ldr r1, [sp, 0x4]
	ldr r2, [sp, 0x8]
	bl ScanlineEffect_SetParams
	add sp, 0x10
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020770

	thumb_func_start sub_80207C0
sub_80207C0: @ 80207C0
	push {r4,r5,lr}
	sub sp, 0x4
	lsls r0, 16
	lsrs r0, 16
	mov r1, sp
	strh r0, [r1]
	ldr r5, =gScanlineEffect
	ldrb r0, [r5, 0x14]
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 7
	ldr r4, =gScanlineEffectRegBuffers
	adds r1, r4
	ldr r2, =0x01000090
	mov r0, sp
	bl CpuSet
	mov r0, sp
	adds r0, 0x2
	movs r1, 0
	strh r1, [r0]
	ldrb r2, [r5, 0x14]
	lsls r1, r2, 4
	subs r1, r2
	lsls r1, 7
	movs r2, 0x90
	lsls r2, 1
	adds r4, r2
	adds r1, r4
	ldr r2, =0x01000010
	bl CpuSet
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80207C0

	thumb_func_start sub_8020818
sub_8020818: @ 8020818
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x8
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	mov r0, sp
	strh r4, [r0]
	ldr r5, =gScanlineEffectRegBuffers
	ldr r0, =0x01000090
	mov r9, r0
	mov r0, sp
	adds r1, r5, 0
	mov r2, r9
	bl CpuSet
	mov r0, sp
	adds r0, 0x2
	movs r6, 0
	strh r6, [r0]
	movs r2, 0x90
	lsls r2, 1
	adds r1, r5, r2
	ldr r2, =0x01000010
	mov r8, r2
	bl CpuSet
	add r0, sp, 0x4
	strh r4, [r0]
	movs r2, 0xF0
	lsls r2, 3
	adds r1, r5, r2
	mov r2, r9
	bl CpuSet
	mov r0, sp
	adds r0, 0x6
	strh r6, [r0]
	movs r1, 0x8A
	lsls r1, 4
	adds r5, r1
	adds r1, r5, 0
	mov r2, r8
	bl CpuSet
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020818

	thumb_func_start sub_8020890
sub_8020890: @ 8020890
	push {r4,r5,lr}
	movs r5, 0
	ldr r4, =gUnknown_082F3134
_08020896:
	adds r0, r4, 0
	bl LoadCompressedSpriteSheet
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0x4
	bls _08020896
	ldr r0, =gUnknown_082F315C
	bl LoadSpritePalette
	ldr r4, =gUnknown_02022C8C
	movs r0, 0x18
	bl Alloc
	str r0, [r4]
	cmp r0, 0
	beq _080208C8
	movs r0, 0x1
	b _080208CA
	.pool
_080208C8:
	movs r0, 0
_080208CA:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8020890

	thumb_func_start sub_80208D0
sub_80208D0: @ 80208D0
	push {lr}
	ldr r0, =gUnknown_02022C8C
	ldr r0, [r0]
	cmp r0, 0
	beq _080208DE
	bl Free
_080208DE:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80208D0

	thumb_func_start sub_80208E8
sub_80208E8: @ 80208E8
	push {lr}
	ldr r0, =gUnknown_082F319C
	movs r1, 0xA
	movs r2, 0x18
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_02022C8C
	ldr r2, [r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r2]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80208E8

	thumb_func_start sub_802091C
sub_802091C: @ 802091C
	ldr r1, =gUnknown_02022C8C
	ldr r1, [r1]
	ldr r2, [r1]
	adds r2, 0x3E
	movs r1, 0x1
	ands r0, r1
	lsls r0, 2
	ldrb r3, [r2]
	movs r1, 0x5
	negs r1, r1
	ands r1, r3
	orrs r1, r0
	strb r1, [r2]
	bx lr
	.pool
	thumb_func_end sub_802091C

	thumb_func_start sub_802093C
sub_802093C: @ 802093C
	push {r4,r5,lr}
	sub sp, 0x4
	bl sub_801F0B0
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	mov r5, sp
	adds r5, 0x1
	mov r0, sp
	adds r1, r5, 0
	bl sub_801F0BC
	cmp r4, 0x3
	beq _0802097C
	ldr r4, =gUnknown_02022C8C
	ldr r0, [r4]
	ldr r0, [r0]
	movs r1, 0
	bl StartSpriteAnim
	ldr r1, [r4]
	ldr r2, [r1]
	mov r0, sp
	ldrb r0, [r0]
	lsls r0, 3
	adds r0, 0xA
	strh r0, [r2, 0x20]
	ldr r2, [r1]
	b _08020992
	.pool
_0802097C:
	ldr r4, =gUnknown_02022C8C
	ldr r0, [r4]
	ldr r0, [r0]
	movs r1, 0x2
	bl StartSpriteAnim
	ldr r2, [r4]
	ldr r1, [r2]
	movs r0, 0x18
	strh r0, [r1, 0x20]
	ldr r2, [r2]
_08020992:
	ldrb r1, [r5]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, 0x18
	strh r0, [r2, 0x22]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802093C

	thumb_func_start sub_80209AC
sub_80209AC: @ 80209AC
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 2
	ldr r0, =gUnknown_082F2DF0+2
	adds r4, r0
	movs r0, 0
	bl IndexOfSpritePaletteTag
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 4
	ldr r0, =0x01010000
	adds r1, r0
	lsrs r1, 16
	adds r0, r4, 0
	movs r2, 0x4
	bl LoadPalette
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80209AC

	thumb_func_start sub_80209E0
sub_80209E0: @ 80209E0
	push {lr}
	bl sub_801F0B0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3
	beq _08020A00
	ldr r0, =gUnknown_02022C8C
	ldr r0, [r0]
	ldr r0, [r0]
	movs r1, 0x1
	bl StartSpriteAnim
	b _08020A0C
	.pool
_08020A00:
	ldr r0, =gUnknown_02022C8C
	ldr r0, [r0]
	ldr r0, [r0]
	movs r1, 0x3
	bl StartSpriteAnim
_08020A0C:
	ldr r0, =gUnknown_02022C8C
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1, 0x14]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80209E0

	thumb_func_start sub_8020A1C
sub_8020A1C: @ 8020A1C
	push {r4,lr}
	ldr r4, =gUnknown_02022C8C
	ldr r1, [r4]
	ldrh r0, [r1, 0x14]
	cmp r0, 0x3
	bls _08020A30
_08020A28:
	movs r0, 0
	b _08020A62
	.pool
_08020A30:
	adds r0, 0x1
	strh r0, [r1, 0x14]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x3
	bls _08020A60
	bl sub_801F0B0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3
	beq _08020A54
	ldr r0, [r4]
	ldr r0, [r0]
	movs r1, 0
	bl StartSpriteAnim
	b _08020A28
_08020A54:
	ldr r0, [r4]
	ldr r0, [r0]
	movs r1, 0x2
	bl StartSpriteAnim
	b _08020A28
_08020A60:
	movs r0, 0x1
_08020A62:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8020A1C

	thumb_func_start sub_8020A68
sub_8020A68: @ 8020A68
	push {r4,r5,lr}
	ldr r0, =gUnknown_082F31BC
	movs r1, 0x4C
	movs r2, 0x98
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_02022C8C
	ldr r2, [r5]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r4, =gSprites
	adds r1, r4
	str r1, [r2, 0x8]
	ldr r0, =gUnknown_082F31D4
	movs r1, 0x40
	movs r2, 0x98
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r2, [r5]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	str r1, [r2, 0x4]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020A68

	thumb_func_start sub_8020ABC
sub_8020ABC: @ 8020ABC
	push {r4,lr}
	adds r4, r0, 0
	bl sub_801F198
	adds r3, r0, 0
	cmp r3, 0xF
	bne _08020AD8
	adds r0, r4, 0
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	b _08020AEC
_08020AD8:
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x5
	negs r1, r1
	ands r1, r0
	strb r1, [r2]
	lsls r0, r3, 3
	adds r0, 0x4C
	strh r0, [r4, 0x20]
_08020AEC:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8020ABC

	thumb_func_start sub_8020AF4
sub_8020AF4: @ 8020AF4
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0x2E]
	adds r0, 0x1
	movs r2, 0
	strh r0, [r1, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x4
	ble _08020B1A
	strh r2, [r1, 0x2E]
	ldrh r0, [r1, 0x24]
	adds r0, 0x1
	strh r0, [r1, 0x24]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x4
	ble _08020B1A
	strh r2, [r1, 0x24]
_08020B1A:
	pop {r0}
	bx r0
	thumb_func_end sub_8020AF4

	thumb_func_start sub_8020B20
sub_8020B20: @ 8020B20
	push {r4,r5,lr}
	ldr r0, =gUnknown_082F322C
	movs r1, 0x8
	movs r2, 0x98
	movs r3, 0x3
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_02022C8C
	ldr r2, [r5]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r4, =gSprites
	adds r1, r4
	str r1, [r2, 0xC]
	ldr r0, =gUnknown_082F3244
	movs r1, 0x20
	movs r2, 0x98
	movs r3, 0x4
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r2, [r5]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	str r1, [r2, 0x10]
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020B20

	thumb_func_start sub_8020B80
sub_8020B80: @ 8020B80
	push {r4,lr}
	bl sub_801F0B0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3
	bne _08020BB8
	bl sub_801F0DC
	cmp r0, 0
	beq _08020BC2
	ldr r3, =gUnknown_02022C8C
	ldr r0, [r3]
	ldr r1, [r0, 0x10]
	adds r1, 0x3E
	ldrb r2, [r1]
	movs r0, 0x5
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r0, [r3]
	ldr r0, [r0, 0x10]
	movs r1, 0x3
	bl StartSpriteAnim
	b _08020BF6
	.pool
_08020BB8:
	bl sub_801F1A4
	adds r4, r0, 0
	cmp r4, 0x3
	bne _08020BD8
_08020BC2:
	ldr r0, =gUnknown_02022C8C
	ldr r0, [r0]
	ldr r1, [r0, 0x10]
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1]
	b _08020BF6
	.pool
_08020BD8:
	ldr r3, =gUnknown_02022C8C
	ldr r0, [r3]
	ldr r1, [r0, 0x10]
	adds r1, 0x3E
	ldrb r2, [r1]
	movs r0, 0x5
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r0, [r3]
	ldr r0, [r0, 0x10]
	lsls r1, r4, 24
	lsrs r1, 24
	bl StartSpriteAnim
_08020BF6:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020B80

	thumb_func_start sub_8020C00
sub_8020C00: @ 8020C00
	ldr r0, =gUnknown_02022C90
	ldr r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_8020C00

	thumb_func_start sub_8020C0C
sub_8020C0C: @ 8020C0C
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r5, =gUnknown_02022C90
	ldr r0, [r5]
	cmp r0, 0
	bne _08020C20
	movs r0, 0x2
	b _08020C5C
	.pool
_08020C20:
	cmp r4, 0
	bne _08020C26
	ldr r4, [r0]
_08020C26:
	ldrb r0, [r0, 0xA]
	bl DestroyTask
	ldr r0, [r5]
	bl Free
	movs r0, 0
	str r0, [r5]
	adds r0, r4, 0
	bl SetMainCallback2
	ldr r0, =CB2_ReturnToField
	cmp r4, r0
	bne _08020C5A
	ldr r2, =gTextFlags
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	movs r0, 0xC8
	lsls r0, 1
	bl PlayNewMapMusic
	ldr r0, =CB1_Overworld
	bl SetMainCallback1
_08020C5A:
	movs r0, 0
_08020C5C:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8020C0C

	thumb_func_start sub_8020C70
sub_8020C70: @ 8020C70
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0
	mov r8, r0
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _08020C8E
	ldr r0, =gWirelessCommType
	ldrb r0, [r0]
	cmp r0, 0
	bne _08020CAC
_08020C8E:
	adds r0, r4, 0
	bl SetMainCallback2
	ldr r0, =gUnknown_03005000
	mov r1, r8
	strh r1, [r0, 0x10]
	strh r1, [r0, 0x12]
	b _08020CF8
	.pool
_08020CAC:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r7, r0, 24
	mov r0, r8
	cmp r0, 0x1
	bls _08020CC8
	cmp r7, r8
	bcc _08020CDC
_08020CC8:
	adds r0, r4, 0
	bl SetMainCallback2
	ldr r0, =gUnknown_03005000
	movs r1, 0
	strh r1, [r0, 0x10]
	strh r1, [r0, 0x12]
	b _08020CF8
	.pool
_08020CDC:
	ldr r6, =gUnknown_02022C90
	ldr r0, =0x000041c0
	bl AllocZeroed
	adds r5, r0, 0
	str r5, [r6]
	cmp r5, 0
	bne _08020D10
	adds r0, r4, 0
	bl SetMainCallback2
	ldr r0, =gUnknown_03005000
	strh r5, [r0, 0x10]
	strh r5, [r0, 0x12]
_08020CF8:
	adds r0, 0xEE
	ldrb r1, [r0]
	movs r1, 0x1
	strb r1, [r0]
	b _08020D74
	.pool
_08020D10:
	str r4, [r5]
	movs r4, 0
	strb r7, [r5, 0x8]
	ldr r0, [r6]
	mov r1, r8
	strb r1, [r0, 0x9]
	ldr r0, [r6]
	bl sub_8020FC4
	ldr r1, [r6]
	movs r2, 0x1
	movs r0, 0x1
	strh r0, [r1, 0x12]
	strb r2, [r1, 0xE]
	ldr r1, [r6]
	movs r0, 0x6
	strb r0, [r1, 0xF]
	ldr r0, [r6]
	adds r0, 0x36
	movs r2, 0x1
	negs r2, r2
	movs r1, 0x10
	str r1, [sp]
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl sub_8024604
	ldr r2, [r6]
	adds r2, 0x36
	movs r0, 0x4
	movs r1, 0x1
	bl sub_8022BEC
	ldr r0, =sub_8020F88
	bl SetMainCallback2
	ldr r0, =sub_8020FA0
	movs r1, 0x8
	bl CreateTask
	ldr r1, [r6]
	strb r0, [r1, 0xA]
	ldr r2, =gTextFlags
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
_08020D74:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020C70

	thumb_func_start sub_8020D8C
sub_8020D8C: @ 8020D8C
	push {r4,lr}
	sub sp, 0xC
	ldr r1, =gSpecialVar_ItemId
	ldrh r0, [r1]
	subs r0, 0x85
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x2B
	bls _08020DA8
	movs r0, 0x85
	strh r0, [r1]
	b _08020DB0
	.pool
_08020DA8:
	ldrh r0, [r1]
	movs r1, 0x1
	bl RemoveBagItem
_08020DB0:
	ldr r4, =gUnknown_02022C90
	ldr r2, [r4]
	ldrb r0, [r2, 0x8]
	lsls r0, 5
	adds r0, r2, r0
	ldr r1, =gSpecialVar_ItemId
	ldrh r1, [r1]
	subs r1, 0x85
	adds r0, 0xA4
	movs r3, 0
	strh r1, [r0]
	movs r0, 0x1
	strb r0, [r2, 0xE]
	ldr r1, [r4]
	movs r0, 0x9
	strb r0, [r1, 0xF]
	ldr r0, [r4]
	adds r0, 0x36
	movs r2, 0x1
	negs r2, r2
	movs r1, 0x10
	str r1, [sp]
	str r3, [sp, 0x4]
	str r3, [sp, 0x8]
	movs r1, 0
	bl sub_8024604
	ldr r2, [r4]
	adds r2, 0x36
	movs r0, 0x4
	movs r1, 0x1
	bl sub_8022BEC
	ldr r0, =sub_8020FA0
	movs r1, 0x8
	bl CreateTask
	ldr r1, [r4]
	strb r0, [r1, 0xA]
	ldr r0, =sub_8020F88
	bl SetMainCallback2
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020D8C

	thumb_func_start sub_8020E1C
sub_8020E1C: @ 8020E1C
	push {lr}
	ldr r0, =gUnknown_02022C90
	ldr r0, [r0]
	ldrb r0, [r0, 0xA]
	bl DestroyTask
	ldr r0, =sub_8020D8C
	bl sub_81AABF0
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020E1C

	thumb_func_start sub_8020E3C
sub_8020E3C: @ 8020E3C
	push {lr}
	ldr r0, =sub_8020F74
	bl SetVBlankCallback
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020E3C

	thumb_func_start sub_8020E4C
sub_8020E4C: @ 8020E4C
	push {lr}
	movs r0, 0
	bl SetVBlankCallback
	pop {r0}
	bx r0
	thumb_func_end sub_8020E4C

	thumb_func_start sub_8020E58
sub_8020E58: @ 8020E58
	push {r4-r6,lr}
	ldr r4, =gUnknown_02022C90
	ldr r0, [r4]
	adds r0, 0x6C
	ldrh r2, [r0]
	lsls r2, 8
	movs r1, 0xF0
	lsls r1, 6
	adds r0, r2, 0
	bl sub_81515FC
	adds r2, r0, 0
	ldr r0, [r4]
	adds r0, 0x72
	ldrh r3, [r0]
	lsls r3, 8
	adds r0, r3, 0
	adds r1, r2, 0
	bl sub_81515FC
	adds r3, r0, 0
	ldr r0, =0x0000ffff
	ands r3, r0
	ldr r2, [r4]
	strh r3, [r2, 0x16]
	ldrb r0, [r2, 0x9]
	cmp r0, 0x3
	beq _08020EDC
	cmp r0, 0x3
	bgt _08020EA4
	cmp r0, 0x2
	beq _08020EAE
	b _08020F48
	.pool
_08020EA4:
	cmp r0, 0x4
	beq _08020EEC
	cmp r0, 0x5
	beq _08020F20
	b _08020F48
_08020EAE:
	ldr r5, =gSaveBlock2Ptr
	ldr r1, [r5]
	movs r0, 0xF6
	lsls r0, 1
	adds r1, r0
	lsls r0, r3, 16
	lsrs r0, 16
	ldrh r1, [r1]
	cmp r0, r1
	bls _08020F48
	adds r2, 0x25
	ldrb r0, [r2]
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2]
	ldr r0, [r5]
	ldr r1, [r4]
	ldrh r1, [r1, 0x16]
	movs r2, 0xF6
	lsls r2, 1
	b _08020F14
	.pool
_08020EDC:
	ldr r5, =gSaveBlock2Ptr
	ldr r0, [r5]
	movs r6, 0xF7
	lsls r6, 1
	b _08020F28
	.pool
_08020EEC:
	ldr r5, =gSaveBlock2Ptr
	ldr r1, [r5]
	movs r0, 0xF8
	lsls r0, 1
	adds r1, r0
	lsls r0, r3, 16
	lsrs r0, 16
	ldrh r1, [r1]
	cmp r0, r1
	bls _08020F48
	adds r2, 0x25
	ldrb r0, [r2]
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2]
	ldr r0, [r5]
	ldr r1, [r4]
	ldrh r1, [r1, 0x16]
	movs r2, 0xF8
	lsls r2, 1
_08020F14:
	adds r0, r2
	strh r1, [r0]
	b _08020F48
	.pool
_08020F20:
	ldr r5, =gSaveBlock2Ptr
	ldr r0, [r5]
	movs r6, 0xF9
	lsls r6, 1
_08020F28:
	adds r1, r0, r6
	lsls r0, r3, 16
	lsrs r0, 16
	ldrh r1, [r1]
	cmp r0, r1
	bls _08020F48
	adds r2, 0x25
	ldrb r0, [r2]
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2]
	ldr r1, [r5]
	ldr r0, [r4]
	ldrh r0, [r0, 0x16]
	adds r1, r6
	strh r0, [r1]
_08020F48:
	ldr r4, =gUnknown_02022C90
	ldr r1, [r4]
	ldr r0, [r1, 0x68]
	str r0, [r1, 0x1C]
	bl sub_8024700
	lsls r0, 24
	cmp r0, 0
	bne _08020F66
	ldr r0, [r4]
	adds r0, 0x25
	ldrb r1, [r0]
	movs r2, 0x1
	orrs r1, r2
	strb r1, [r0]
_08020F66:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020E58

	thumb_func_start sub_8020F74
sub_8020F74: @ 8020F74
	push {lr}
	bl TransferPlttBuffer
	bl LoadOam
	bl ProcessSpriteCopyRequests
	pop {r0}
	bx r0
	thumb_func_end sub_8020F74

	thumb_func_start sub_8020F88
sub_8020F88: @ 8020F88
	push {lr}
	bl RunTasks
	bl RunTextPrinters
	bl AnimateSprites
	bl BuildOamBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_8020F88

	thumb_func_start sub_8020FA0
sub_8020FA0: @ 8020FA0
	push {r4,lr}
	ldr r4, =gUnknown_02022C90
	ldr r0, [r4]
	ldr r2, [r0, 0x4]
	cmp r2, 0
	beq _08020FB4
	adds r1, r0, 0
	adds r1, 0x36
	bl _call_via_r2
_08020FB4:
	ldr r0, [r4]
	bl sub_8021450
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8020FA0

	thumb_func_start sub_8020FC4
sub_8020FC4: @ 8020FC4
	push {r4-r6,lr}
	adds r6, r0, 0
	movs r5, 0
	b _08020FE6
_08020FCC:
	lsls r0, r5, 5
	adds r0, 0x98
	adds r0, r6, r0
	lsls r1, r5, 3
	subs r1, r5
	lsls r1, 2
	ldr r2, =gLinkPlayers + 8
	adds r1, r2
	bl StringCopy
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_08020FE6:
	ldrb r0, [r6, 0x9]
	cmp r5, r0
	bcc _08020FCC
	cmp r5, 0x4
	bhi _08021012
_08020FF0:
	lsls r4, r5, 5
	adds r0, r4, 0
	adds r0, 0x98
	adds r0, r6, r0
	movs r1, 0x1
	movs r2, 0x7
	bl memset
	adds r4, r6, r4
	adds r4, 0x9F
	movs r0, 0xFF
	strb r0, [r4]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x4
	bls _08020FF0
_08021012:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x14]
	lsls r0, 29
	lsrs r0, 29
	cmp r0, 0x1
	beq _0802103E
	cmp r0, 0x1
	bgt _08021034
	cmp r0, 0
	beq _0802103A
	b _08021046
	.pool
_08021034:
	cmp r0, 0x2
	beq _08021042
	b _08021046
_0802103A:
	movs r0, 0x8
	b _08021044
_0802103E:
	movs r0, 0x4
	b _08021044
_08021042:
	movs r0, 0x1
_08021044:
	strb r0, [r6, 0xB]
_08021046:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8020FC4

	thumb_func_start sub_802104C
sub_802104C: @ 802104C
	push {r4,r5,lr}
	sub sp, 0xC
	bl sub_8020C00
	adds r5, r0, 0
	cmp r5, 0
	bne _08021060
	movs r0, 0x1
	negs r0, r0
	b _08021304
_08021060:
	ldrb r0, [r5, 0xC]
	cmp r0, 0x9
	bls _08021068
	b _080212FC
_08021068:
	lsls r0, 2
	ldr r1, =_08021078
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08021078:
	.4byte _080210A0
	.4byte _080210BE
	.4byte _080210E4
	.4byte _080210F2
	.4byte _08021178
	.4byte _080211BE
	.4byte _080211EC
	.4byte _0802121C
	.4byte _08021278
	.4byte _080212B4
_080210A0:
	movs r0, 0
	bl SetVBlankCallback
	movs r0, 0
	bl SetHBlankCallback
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	bl ScanlineEffect_Stop
	bl reset_temp_tile_data_buffers
	b _080212FC
_080210BE:
	add r0, sp, 0x8
	movs r4, 0
	strh r4, [r0]
	movs r1, 0xE0
	lsls r1, 19
	ldr r2, =0x01000200
	bl CpuSet
	ldr r0, =gReservedSpritePaletteCount
	strb r4, [r0]
	movs r0, 0x3
	bl sub_8034C54
	b _080212FC
	.pool
_080210E4:
	bl ResetPaletteFade
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	b _080212FC
_080210F2:
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082F32C8
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	movs r0, 0xE0
	lsls r0, 1
	adds r1, r5, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	movs r0, 0x87
	lsls r0, 6
	adds r1, r5, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	movs r0, 0xC7
	lsls r0, 6
	adds r1, r5, r0
	movs r0, 0x3
	bl SetBgTilemapBuffer
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	b _080212FC
	.pool
_08021178:
	movs r4, 0x20
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	movs r0, 0x40
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	b _080212FC
_080211BE:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	ldr r1, =gUnknown_08DE34B8
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	b _080212FC
	.pool
_080211EC:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _080211F8
	b _08021302
_080211F8:
	bl InitStandardTextBoxWindows
	bl sub_8197200
	adds r0, r5, 0
	bl sub_8022588
	adds r0, r5, 0
	bl sub_8022600
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x8]
	movs r2, 0x80
	orrs r1, r2
	strb r1, [r0, 0x8]
	b _080212FC
	.pool
_0802121C:
	ldr r0, =gUnknown_08DE3398
	movs r2, 0xC0
	lsls r2, 1
	movs r1, 0
	bl LoadPalette
	ldr r1, =gBerryCrushGrinderTopTilemap
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r1, =gBerryCrushContainerCapTilemap
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r1, =gBerryCrushBackgroundTilemap
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	adds r0, r5, 0
	bl sub_80226D0
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	b _080212FC
	.pool
_08021278:
	bl sub_800E0E8
	movs r0, 0
	movs r1, 0
	bl CreateWirelessStatusIndicatorSprite
	adds r0, r5, 0
	bl sub_8022730
	ldr r0, =gSpriteCoordOffsetY
	ldrh r1, [r0]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x16
	bl SetGpuReg
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	b _080212FC
	.pool
_080212B4:
	ldr r2, =gPaletteFade
	ldrb r1, [r2, 0x8]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x8]
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuRegBits
	bl sub_8020E3C
	movs r0, 0
	strb r0, [r5, 0xC]
	movs r0, 0x1
	b _08021304
	.pool
_080212FC:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_08021302:
	movs r0, 0
_08021304:
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802104C

	thumb_func_start sub_802130C
sub_802130C: @ 802130C
	push {r4,r5,lr}
	sub sp, 0x8
	bl sub_8020C00
	adds r5, r0, 0
	cmp r5, 0
	bne _08021320
	movs r0, 0x1
	negs r0, r0
	b _08021446
_08021320:
	ldrb r0, [r5, 0xC]
	cmp r0, 0x7
	bls _08021328
	b _0802143E
_08021328:
	lsls r0, 2
	ldr r1, =_08021338
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08021338:
	.4byte _08021358
	.4byte _0802135E
	.4byte _08021368
	.4byte _0802137E
	.4byte _0802138A
	.4byte _080213E6
	.4byte _08021426
	.4byte _08021436
_08021358:
	bl sub_8010434
	b _0802143E
_0802135E:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08021444
_08021368:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	bl UpdatePaletteFade
	b _0802143E
_0802137E:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	beq _0802143E
	b _08021444
_0802138A:
	movs r4, 0x20
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	b _0802143E
_080213E6:
	bl FreeAllWindowBuffers
	movs r0, 0
	bl HideBg
	movs r0, 0
	bl UnsetBgTilemapBuffer
	movs r0, 0x1
	bl HideBg
	movs r0, 0x1
	bl UnsetBgTilemapBuffer
	movs r0, 0x2
	bl HideBg
	movs r0, 0x2
	bl UnsetBgTilemapBuffer
	movs r0, 0x3
	bl HideBg
	movs r0, 0x3
	bl UnsetBgTilemapBuffer
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl ClearGpuRegBits
	b _0802143E
_08021426:
	bl sub_800E084
	adds r0, r5, 0
	bl sub_8022960
	bl sub_8034CC8
	b _0802143E
_08021436:
	movs r0, 0
	strb r0, [r5, 0xC]
	movs r0, 0x1
	b _08021446
_0802143E:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_08021444:
	movs r0, 0
_08021446:
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802130C

	thumb_func_start sub_8021450
sub_8021450: @ 8021450
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gSpriteCoordOffsetY
	ldrh r1, [r4, 0x2C]
	ldrh r2, [r4, 0x2A]
	adds r1, r2
	strh r1, [r0]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x16
	bl SetGpuReg
	ldrh r0, [r4, 0x12]
	cmp r0, 0x7
	bne _0802147C
	movs r1, 0x9C
	lsls r1, 1
	adds r0, r4, r1
	ldrh r1, [r4, 0x28]
	bl sub_8022524
_0802147C:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8021450

	thumb_func_start sub_8021488
sub_8021488: @ 8021488
	movs r1, 0
	ldr r2, =0x0000ff98
	strh r2, [r0, 0x2A]
	strh r1, [r0, 0x2C]
	ldr r0, =gSpriteCoordOffsetX
	strh r1, [r0]
	ldr r0, =gSpriteCoordOffsetY
	strh r2, [r0]
	bx lr
	.pool
	thumb_func_end sub_8021488

	thumb_func_start sub_80214A8
sub_80214A8: @ 80214A8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r10, r0
	str r1, [sp]
	movs r0, 0
	mov r9, r0
	mov r1, r10
	ldrb r1, [r1, 0x9]
	cmp r9, r1
	bcc _080214C6
	b _080215E4
_080214C6:
	ldr r1, =gUnknown_082F41E8
	mov r2, r9
	lsls r0, r2, 1
	adds r0, r1
	ldrh r2, [r0]
	mov r1, r9
	lsls r0, r1, 5
	add r0, r10
	adds r0, 0xA4
	ldrh r3, [r0]
	adds r3, 0x85
	lsls r3, 16
	lsrs r3, 16
	ldr r0, =gUnknown_082F436C
	adds r1, r2, 0
	bl AddCustomItemIconSprite
	lsls r0, 24
	lsrs r0, 24
	mov r2, r9
	lsls r3, r2, 2
	ldr r1, [sp]
	adds r1, 0x38
	adds r6, r1, r3
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r6]
	ldrb r0, [r1, 0x5]
	movs r2, 0xC
	orrs r0, r2
	strb r0, [r1, 0x5]
	ldr r2, [r6]
	adds r2, 0x2C
	ldrb r0, [r2]
	movs r1, 0x80
	orrs r0, r1
	strb r0, [r2]
	ldr r1, [r6]
	ldr r0, [sp]
	adds r0, 0xC
	adds r0, r3
	mov r8, r0
	ldr r0, [r0]
	ldrh r0, [r0, 0x8]
	adds r0, 0x78
	strh r0, [r1, 0x20]
	ldr r1, [r6]
	ldr r0, =0x0000fff0
	strh r0, [r1, 0x22]
	ldr r3, [r6]
	adds r5, r3, 0
	adds r5, 0x2E
	movs r0, 0x80
	lsls r0, 2
	strh r0, [r5, 0x2]
	movs r0, 0x20
	strh r0, [r5, 0x4]
	movs r0, 0x70
	strh r0, [r5, 0xE]
	mov r2, r8
	ldr r1, [r2]
	ldrh r0, [r1, 0xA]
	ldrh r1, [r1, 0x8]
	subs r0, r1
	lsls r0, 16
	asrs r1, r0, 16
	adds r0, r1, 0
	cmp r1, 0
	bge _08021558
	adds r0, r1, 0x3
_08021558:
	asrs r0, 2
	strh r0, [r5, 0xC]
	lsls r0, r1, 23
	lsrs r7, r0, 16
	movs r2, 0x80
	lsls r2, 2
	adds r2, 0x20
	lsrs r2, 1
	movs r0, 0x7
	movs r1, 0xFE
	lsls r1, 6
	str r3, [sp, 0x4]
	bl sub_81515D4
	adds r4, r0, 0
	ldr r0, [r6]
	ldrh r0, [r0, 0x20]
	lsls r0, 7
	ldr r3, [sp, 0x4]
	strh r0, [r3, 0x2E]
	lsls r1, r7, 16
	asrs r1, 16
	lsls r4, 16
	asrs r4, 16
	movs r0, 0x7
	adds r2, r4, 0
	bl sub_81515D4
	strh r0, [r5, 0x6]
	movs r0, 0x7
	adds r1, r4, 0
	movs r2, 0x55
	bl sub_8151550
	adds r2, r0, 0
	movs r0, 0
	strh r0, [r5, 0x8]
	lsls r2, 16
	asrs r2, 16
	movs r0, 0x7
	movs r1, 0xFE
	lsls r1, 6
	bl sub_81515D4
	strh r0, [r5, 0xA]
	ldrh r0, [r5, 0xE]
	ldr r2, =0xffff8000
	adds r1, r2, 0
	orrs r0, r1
	strh r0, [r5, 0xE]
	mov r1, r8
	ldr r0, [r1]
	movs r2, 0x8
	ldrsh r0, [r0, r2]
	cmp r0, 0
	bge _080215D0
	ldr r0, [r6]
	movs r1, 0x1
	bl StartSpriteAffineAnim
_080215D0:
	mov r0, r9
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	mov r0, r10
	ldrb r0, [r0, 0x9]
	cmp r9, r0
	bcs _080215E4
	b _080214C6
_080215E4:
	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 sub_80214A8

	thumb_func_start sub_8021608
sub_8021608: @ 8021608
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r4, r5, 0
	adds r4, 0x2E
	ldrh r0, [r4, 0x4]
	ldrh r1, [r4, 0x2]
	adds r0, r1
	strh r0, [r4, 0x2]
	lsls r0, 16
	asrs r0, 24
	ldrh r2, [r5, 0x26]
	adds r0, r2
	strh r0, [r5, 0x26]
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	movs r6, 0x80
	lsls r6, 8
	ands r0, r6
	cmp r0, 0
	beq _0802166E
	ldrh r0, [r4, 0x6]
	ldrh r2, [r5, 0x2E]
	adds r0, r2
	strh r0, [r5, 0x2E]
	ldrh r0, [r4, 0xA]
	ldrh r1, [r4, 0x8]
	adds r0, r1
	strh r0, [r4, 0x8]
	lsls r0, 16
	asrs r0, 23
	movs r2, 0xC
	ldrsh r1, [r4, r2]
	bl Sin
	strh r0, [r5, 0x24]
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	ands r0, r6
	cmp r0, 0
	beq _0802166E
	ldrh r0, [r4, 0x8]
	lsls r0, 16
	asrs r0, 23
	cmp r0, 0x7E
	ble _0802166E
	movs r0, 0
	strh r0, [r5, 0x24]
	ldrh r1, [r4, 0xE]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xE]
_0802166E:
	ldrh r0, [r4]
	lsls r0, 16
	asrs r0, 23
	strh r0, [r5, 0x20]
	movs r2, 0x22
	ldrsh r1, [r5, r2]
	movs r2, 0x26
	ldrsh r0, [r5, r2]
	adds r1, r0
	ldrh r2, [r4, 0xE]
	ldr r0, =0x00007fff
	ands r0, r2
	cmp r1, r0
	blt _0802169A
	ldr r0, =SpriteCallbackDummy
	str r0, [r5, 0x1C]
	adds r0, r5, 0
	bl FreeSpriteOamMatrix
	adds r0, r5, 0
	bl DestroySprite
_0802169A:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8021608

	thumb_func_start sub_80216A8
sub_80216A8: @ 80216A8
	push {r4-r7,lr}
	adds r6, r0, 0
	movs r5, 0
	ldrb r0, [r6, 0x9]
	cmp r5, r0
	bcs _080216D4
	ldr r7, =gUnknown_082F41E8
_080216B6:
	lsls r0, r5, 1
	adds r0, r7
	ldrh r4, [r0]
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldrb r0, [r6, 0x9]
	cmp r5, r0
	bcc _080216B6
_080216D4:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80216A8

	thumb_func_start sub_80216E0
sub_80216E0: @ 80216E0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	adds r6, r0, 0
	str r1, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	movs r1, 0x4E
	adds r1, r6
	mov r10, r1
	mov r9, r0
	ldrb r2, [r6, 0x9]
	cmp r0, r2
	bcs _080217AE
	ldr r7, =gUnknown_082F41CC
_08021704:
	mov r3, r10
	ldrh r0, [r3, 0xA]
	mov r4, r9
	lsls r1, r4, 1
	add r1, r9
	asrs r0, r1
	lsls r0, 16
	movs r1, 0xE0
	lsls r1, 11
	ands r1, r0
	lsrs r1, 16
	mov r8, r1
	cmp r1, 0
	beq _0802179E
	ldr r0, [sp, 0x4]
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x4]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _08021748
	lsls r4, 2
	ldr r5, [sp]
	adds r5, 0x24
	adds r0, r5, r4
	ldr r0, [r0]
	movs r1, 0x1
	bl StartSpriteAnim
	b _0802175A
	.pool
_08021748:
	mov r0, r9
	lsls r4, r0, 2
	ldr r5, [sp]
	adds r5, 0x24
	adds r0, r5, r4
	ldr r0, [r0]
	movs r1, 0
	bl StartSpriteAnim
_0802175A:
	adds r3, r5, r4
	ldr r2, [r3]
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r4, 0x5
	negs r4, r4
	adds r1, r4, 0
	ands r0, r1
	strb r0, [r2]
	ldr r2, [r3]
	adds r2, 0x2C
	ldrb r0, [r2]
	subs r4, 0x3C
	adds r1, r4, 0
	ands r0, r1
	strb r0, [r2]
	ldr r2, [r3]
	movs r0, 0x3
	mov r1, r8
	ands r1, r0
	mov r8, r1
	subs r1, 0x1
	lsls r1, 1
	adds r0, r1, r7
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	strh r0, [r2, 0x24]
	ldr r2, [r3]
	ldr r3, =gUnknown_082F41CC+1
	adds r1, r3
	movs r0, 0
	ldrsb r0, [r1, r0]
	strh r0, [r2, 0x26]
_0802179E:
	mov r0, r9
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	ldrb r4, [r6, 0x9]
	cmp r9, r4
	bcc _08021704
_080217AE:
	ldr r0, [sp, 0x4]
	cmp r0, 0
	bne _080217C0
	adds r2, r6, 0
	adds r2, 0x25
	ldrb r1, [r2]
	b _0802189C
	.pool
_080217C0:
	ldrh r0, [r6, 0x28]
	movs r1, 0x3
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	mov r1, r8
	str r1, [sp, 0x8]
	movs r2, 0
	mov r9, r2
	mov r3, r10
	ldrh r1, [r3, 0xC]
	lsls r0, r1, 1
	adds r0, 0x3
	adds r6, 0x25
	str r6, [sp, 0xC]
	adds r3, r1, 0
	cmp r9, r0
	bge _08021890
_080217E8:
	mov r4, r9
	lsls r1, r4, 2
	ldr r0, [sp]
	adds r0, 0x4C
	adds r7, r0, r1
	ldr r2, [r7]
	adds r0, r2, 0
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _0802187E
	ldr r0, =sub_8022B28
	str r0, [r2, 0x1C]
	lsls r1, r4, 1
	ldr r3, =gUnknown_082F41CC+6
	adds r0, r1, r3
	movs r4, 0
	ldrsb r4, [r0, r4]
	adds r0, r4, 0
	adds r0, 0x78
	strh r0, [r2, 0x20]
	ldr r2, [r7]
	ldr r0, =gUnknown_082F41CC+7
	adds r1, r0
	movs r6, 0
	ldrsb r6, [r1, r6]
	mov r1, r8
	lsls r0, r1, 2
	subs r0, 0x88
	subs r0, r6, r0
	strh r0, [r2, 0x22]
	ldr r5, [r7]
	ldr r2, [sp, 0x8]
	lsls r1, r2, 2
	adds r0, r4, 0
	bl __divsi3
	adds r4, r0
	strh r4, [r5, 0x24]
	ldr r0, [r7]
	strh r6, [r0, 0x26]
	mov r3, r10
	ldrb r1, [r3, 0x4]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08021860
	ldr r0, [r7]
	movs r1, 0x1
	bl StartSpriteAnim
	b _08021868
	.pool
_08021860:
	ldr r0, [r7]
	movs r1, 0
	bl StartSpriteAnim
_08021868:
	mov r0, r8
	adds r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	mov r4, r10
	ldrh r3, [r4, 0xC]
	cmp r0, 0x3
	bls _0802187E
	movs r0, 0
	mov r8, r0
_0802187E:
	mov r0, r9
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r0, r3, 1
	adds r0, 0x3
	cmp r9, r0
	blt _080217E8
_08021890:
	ldr r2, [sp, 0xC]
	ldrb r1, [r2]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _080218A6
_0802189C:
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	b _080218C4
_080218A6:
	ldr r3, [sp, 0x4]
	cmp r3, 0x1
	bne _080218B4
	movs r0, 0x4E
	bl PlaySE
	b _080218BA
_080218B4:
	movs r0, 0x4D
	bl PlaySE
_080218BA:
	ldr r4, [sp, 0xC]
	ldrb r0, [r4]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r4]
_080218C4:
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_80216E0

	thumb_func_start sub_80218D4
sub_80218D4: @ 80218D4
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	movs r2, 0
	ldrb r0, [r5, 0x9]
	cmp r2, r0
	bcs _08021906
	adds r4, r6, 0
	adds r4, 0x24
	movs r7, 0x4
	adds r3, r0, 0
_080218EA:
	lsls r0, r2, 2
	adds r0, r4, r0
	ldr r0, [r0]
	adds r0, 0x3E
	ldrb r1, [r0]
	adds r0, r7, 0
	ands r0, r1
	cmp r0, 0
	beq _08021920
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, r3
	bcc _080218EA
_08021906:
	movs r2, 0
	adds r3, r6, 0
	adds r3, 0x4C
	movs r4, 0x4
_0802190E:
	lsls r0, r2, 2
	adds r0, r3, r0
	ldr r0, [r0]
	adds r0, 0x3E
	ldrb r1, [r0]
	adds r0, r4, 0
	ands r0, r1
	cmp r0, 0
	bne _08021924
_08021920:
	movs r0, 0
	b _0802193C
_08021924:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xA
	bls _0802190E
	movs r1, 0x2C
	ldrsh r0, [r5, r1]
	cmp r0, 0
	beq _0802193A
	movs r0, 0
	strh r0, [r5, 0x2C]
_0802193A:
	movs r0, 0x1
_0802193C:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_80218D4

	thumb_func_start sub_8021944
sub_8021944: @ 8021944
	push {r4-r7,lr}
	adds r6, r0, 0
	lsls r4, r1, 16
	lsrs r4, 16
	movs r7, 0
	movs r5, 0xE1
	lsls r5, 4
	adds r0, r4, 0
	adds r1, r5, 0
	bl __udivsi3
	strh r0, [r6, 0x4]
	adds r0, r4, 0
	adds r1, r5, 0
	bl __umodsi3
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x3C
	bl __udivsi3
	strh r0, [r6, 0x6]
	adds r0, r4, 0
	movs r1, 0x3C
	bl __umodsi3
	lsls r0, 24
	asrs r0, 16
	movs r1, 0x4
	bl sub_8151534
	adds r2, r7, 0
	lsls r0, 16
	asrs r3, r0, 16
	movs r0, 0x7
	mov r12, r0
	ldr r5, =gUnknown_082F334C
	movs r4, 0x1
_08021990:
	mov r0, r12
	subs r1, r0, r2
	adds r0, r3, 0
	asrs r0, r1
	ands r0, r4
	cmp r0, 0
	beq _080219A6
	lsls r0, r2, 2
	adds r0, r5
	ldr r0, [r0]
	adds r7, r0
_080219A6:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x7
	bls _08021990
	ldr r1, =0x000f4240
	adds r0, r7, 0
	bl __udivsi3
	strh r0, [r6, 0x8]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8021944

	thumb_func_start sub_80219C8
sub_80219C8: @ 80219C8
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0xC
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r2, 0
	mov r8, r3
	lsls r6, 24
	lsrs r6, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x2
	mov r1, r8
	bl GetStringWidth
	lsls r4, 2
	lsrs r0, 1
	subs r4, r0
	lsls r4, 24
	lsrs r4, 24
	lsls r0, r5, 1
	adds r0, r5
	ldr r1, =gUnknown_082F32D8
	adds r0, r1
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	mov r0, r8
	str r0, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x2
	adds r2, r4, 0
	movs r3, 0
	bl AddTextPrinterParameterized3
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80219C8

	thumb_func_start sub_8021A28
sub_8021A28: @ 8021A28
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	str r0, [sp, 0xC]
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0x10]
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp, 0x14]
	lsls r3, 24
	movs r0, 0
	str r0, [sp, 0x18]
	movs r1, 0
	str r1, [sp, 0x1C]
	ldr r2, [sp, 0xC]
	adds r2, 0x68
	str r2, [sp, 0x20]
	movs r4, 0xF0
	lsls r4, 24
	adds r3, r4
	lsrs r3, 24
	ldr r0, [sp, 0x10]
	cmp r0, 0x2
	bne _08021A68
	adds r0, r3, 0
	subs r0, 0x2A
	lsls r0, 24
	lsrs r3, r0, 24
_08021A68:
	ldr r2, [sp, 0xC]
	ldrb r1, [r2, 0x9]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 1
	subs r6, r3, r0
	cmp r6, 0
	ble _08021A84
	lsrs r0, r6, 31
	adds r0, r6, r0
	asrs r0, 1
	adds r6, r0, 0
	adds r6, 0x10
	b _08021A86
_08021A84:
	movs r6, 0x10
_08021A86:
	movs r5, 0
	ldr r3, [sp, 0xC]
	ldrb r3, [r3, 0x9]
	cmp r5, r3
	bcc _08021A92
	b _08021D14
_08021A92:
	ldr r4, [sp, 0x10]
	lsls r4, 2
	str r4, [sp, 0x24]
_08021A98:
	bl DynamicPlaceholderTextUtil_Reset
	ldr r0, [sp, 0x10]
	cmp r0, 0x1
	beq _08021B48
	cmp r0, 0x1
	bgt _08021AC0
	cmp r0, 0
	beq _08021ADE
	ldr r4, [sp, 0x14]
	subs r4, 0x4
	lsls r1, r6, 24
	mov r10, r1
	ldr r2, [sp, 0x1C]
	adds r2, 0xA2
	mov r9, r2
	ldr r3, [sp, 0x18]
	lsls r3, 5
	mov r8, r3
	b _08021C5A
_08021AC0:
	ldr r4, [sp, 0x10]
	cmp r4, 0x2
	bne _08021AC8
	b _08021C1C
_08021AC8:
	ldr r4, [sp, 0x14]
	subs r4, 0x4
	lsls r0, r6, 24
	mov r10, r0
	ldr r1, [sp, 0x1C]
	adds r1, 0xA2
	mov r9, r1
	ldr r2, [sp, 0x18]
	lsls r2, 5
	mov r8, r2
	b _08021C5A
_08021ADE:
	ldr r0, [sp, 0x20]
	adds r0, 0x20
	adds r0, r5
	ldrb r0, [r0]
	str r0, [sp, 0x18]
	lsls r3, r5, 1
	ldr r2, [sp, 0x20]
	adds r2, 0xC
	cmp r5, 0
	beq _08021B04
	adds r0, r2, r3
	subs r1, r5, 0x1
	lsls r1, 1
	adds r1, r2, r1
	ldrh r0, [r0]
	ldrh r1, [r1]
	cmp r0, r1
	beq _08021B04
	str r5, [sp, 0x1C]
_08021B04:
	ldr r4, [sp, 0x24]
	ldr r1, [sp, 0x10]
	adds r0, r4, r1
	lsls r0, 1
	adds r0, r3, r0
	adds r0, r2, r0
	ldrh r1, [r0]
	ldr r0, =gStringVar4
	movs r2, 0x1
	movs r3, 0x4
	bl ConvertIntToDecimalStringN
	ldr r0, =gUnknown_082F43B4
	adds r0, r4, r0
	ldr r1, [r0]
	ldr r0, =gStringVar4
	bl StringAppend
	ldr r4, [sp, 0x14]
	subs r4, 0x4
	lsls r2, r6, 24
	mov r10, r2
	ldr r3, [sp, 0x1C]
	adds r3, 0xA2
	mov r9, r3
	ldr r0, [sp, 0x18]
	lsls r0, 5
	mov r8, r0
	b _08021C5A
	.pool
_08021B48:
	ldr r1, [sp, 0x20]
	adds r0, r1, r5
	adds r0, 0x28
	ldrb r0, [r0]
	str r0, [sp, 0x18]
	lsls r3, r5, 1
	adds r2, r1, 0
	adds r2, 0xC
	cmp r5, 0
	beq _08021B72
	adds r0, r3, 0
	adds r0, 0xA
	adds r0, r2, r0
	adds r1, r3, 0
	adds r1, 0x8
	adds r1, r2, r1
	ldrh r0, [r0]
	ldrh r1, [r1]
	cmp r0, r1
	beq _08021B72
	str r5, [sp, 0x1C]
_08021B72:
	ldr r0, [sp, 0x24]
	ldr r1, [sp, 0x10]
	adds r4, r0, r1
	lsls r4, 1
	adds r4, r3, r4
	adds r4, r2, r4
	ldrh r1, [r4]
	lsrs r1, 4
	ldr r0, =gStringVar1
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r7, 0
	ldrb r0, [r4]
	movs r3, 0xF
	ands r3, r0
	movs r2, 0
	ldr r4, [sp, 0x10]
	lsls r4, 2
	str r4, [sp, 0x28]
	ldr r4, [sp, 0x14]
	subs r4, 0x4
	lsls r0, r6, 24
	mov r10, r0
	ldr r1, [sp, 0x1C]
	adds r1, 0xA2
	mov r9, r1
	ldr r0, [sp, 0x18]
	lsls r0, 5
	mov r8, r0
	adds r6, 0xE
	adds r5, 0x1
	ldr r1, =gUnknown_082F334C
	mov r12, r1
_08021BB8:
	movs r0, 0x3
	subs r1, r0, r2
	adds r0, r3, 0
	asrs r0, r1
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08021BD0
	lsls r0, r2, 2
	add r0, r12
	ldr r0, [r0]
	adds r7, r0
_08021BD0:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _08021BB8
	adds r0, r7, 0
	ldr r1, =0x000f4240
	bl __udivsi3
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r0, =gStringVar2
	adds r1, r3, 0
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r0, =gUnknown_082F43B4
	ldr r2, [sp, 0x28]
	adds r0, r2, r0
	ldr r1, [r0]
	ldr r0, =gStringVar4
	bl StringExpandPlaceholders
	b _08021C5E
	.pool
_08021C1C:
	str r5, [sp, 0x18]
	str r5, [sp, 0x1C]
	lsls r7, r5, 5
	ldr r3, [sp, 0xC]
	adds r0, r3, r7
	adds r0, 0xA4
	ldrb r2, [r0]
	cmp r2, 0x2B
	bls _08021C30
	movs r2, 0
_08021C30:
	lsls r1, r2, 3
	subs r1, r2
	lsls r1, 2
	ldr r0, =gBerries
	adds r1, r0
	ldr r0, =gStringVar1
	bl StringCopy
	ldr r0, =gUnknown_082F43B4
	ldr r1, [r0, 0x8]
	ldr r0, =gStringVar4
	bl StringExpandPlaceholders
	ldr r4, [sp, 0x14]
	subs r4, 0x4
	lsls r0, r6, 24
	mov r10, r0
	movs r1, 0xA2
	adds r1, r5
	mov r9, r1
	mov r8, r7
_08021C5A:
	adds r6, 0xE
	adds r5, 0x1
_08021C5E:
	movs r0, 0x2
	ldr r1, =gStringVar4
	adds r2, r4, 0
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	ldr r3, [sp, 0xC]
	movs r4, 0xDD
	lsls r4, 1
	adds r0, r3, r4
	ldrb r0, [r0]
	lsls r2, 24
	lsrs r2, 24
	mov r1, r10
	lsrs r3, r1, 24
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r1, =gStringVar4
	str r1, [sp, 0x8]
	movs r1, 0x2
	bl AddTextPrinterParameterized3
	ldr r3, [sp, 0x18]
	ldr r2, [sp, 0xC]
	ldrb r2, [r2, 0x8]
	cmp r3, r2
	bne _08021CC0
	ldr r0, =gStringVar3
	ldr r1, =gText_1DotBlueF700
	bl StringCopy
	b _08021CC8
	.pool
_08021CC0:
	ldr r0, =gStringVar3
	ldr r1, =gText_1DotF700
	bl StringCopy
_08021CC8:
	ldr r4, =gStringVar3
	mov r3, r9
	strb r3, [r4]
	mov r1, r8
	adds r1, 0x98
	ldr r0, [sp, 0xC]
	adds r1, r0, r1
	movs r0, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r0, =gStringVar4
	adds r1, r4, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	ldr r1, [sp, 0xC]
	movs r2, 0xDD
	lsls r2, 1
	adds r0, r1, r2
	ldrb r0, [r0]
	mov r4, r10
	lsrs r3, r4, 24
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	ldr r2, =gStringVar4
	str r2, [sp, 0x8]
	movs r1, 0x2
	movs r2, 0x4
	bl AddTextPrinterParameterized3
	lsls r0, r5, 24
	lsrs r5, r0, 24
	ldr r3, [sp, 0xC]
	ldrb r3, [r3, 0x9]
	cmp r5, r3
	bcs _08021D14
	b _08021A98
_08021D14:
	add sp, 0x2C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8021A28

	thumb_func_start sub_8021D34
sub_8021D34: @ 8021D34
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x1C
	mov r8, r0
	movs r0, 0
	mov r10, r0
	movs r6, 0
	movs r1, 0
	str r1, [sp, 0xC]
	mov r2, r8
	adds r2, 0x68
	str r2, [sp, 0x10]
	movs r4, 0xDD
	lsls r4, 1
	add r4, r8
	mov r9, r4
	ldrb r0, [r4]
	movs r1, 0x4
	bl GetWindowAttribute
	lsls r0, 27
	movs r1, 0xD6
	lsls r1, 24
	adds r0, r1
	lsrs r7, r0, 24
	movs r0, 0x9C
	lsls r0, 1
	add r0, r8
	ldr r2, [sp, 0x10]
	ldrh r1, [r2, 0x4]
	bl sub_8021944
	ldrb r0, [r4]
	ldr r4, =gUnknown_082F32D8
	str r4, [sp]
	str r6, [sp, 0x4]
	ldr r1, =gText_TimeColon
	str r1, [sp, 0x8]
	movs r1, 0x2
	movs r2, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	ldr r4, =gText_SpaceSec
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	movs r1, 0xB0
	subs r0, r1, r0
	lsls r0, 24
	lsrs r6, r0, 24
	mov r2, r9
	ldrb r0, [r2]
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	mov r2, r10
	str r2, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	movs r0, 0x9F
	lsls r0, 1
	add r0, r8
	movs r4, 0
	ldrsh r1, [r0, r4]
	ldr r0, =gStringVar1
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r0, =gStringVar2
	movs r1, 0xA0
	lsls r1, 1
	add r1, r8
	movs r2, 0
	ldrsh r1, [r1, r2]
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r5, =gStringVar4
	ldr r1, =gText_XDotY2
	adds r0, r5, 0
	bl StringExpandPlaceholders
	movs r0, 0x2
	adds r1, r5, 0
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	subs r0, r6, r0
	lsls r0, 24
	lsrs r6, r0, 24
	mov r4, r9
	ldrb r0, [r4]
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	mov r2, r10
	str r2, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	ldr r4, =gText_SpaceMin
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	subs r0, r6, r0
	lsls r0, 24
	lsrs r6, r0, 24
	mov r1, r9
	ldrb r0, [r1]
	ldr r2, =gUnknown_082F32D8
	str r2, [sp]
	mov r1, r10
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	movs r0, 0x9E
	lsls r0, 1
	add r0, r8
	movs r2, 0
	ldrsh r1, [r0, r2]
	ldr r0, =gStringVar1
	movs r2, 0x2
	movs r3, 0x1
	bl ConvertIntToDecimalStringN
	ldr r1, =gText_StrVar1
	adds r0, r5, 0
	bl StringExpandPlaceholders
	movs r0, 0x2
	adds r1, r5, 0
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	subs r0, r6, r0
	lsls r0, 24
	lsrs r6, r0, 24
	mov r4, r9
	ldrb r0, [r4]
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	mov r2, r10
	str r2, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	adds r0, r7, 0
	adds r0, 0xE
	lsls r0, 24
	lsrs r7, r0, 24
	ldrb r0, [r4]
	ldr r4, =gUnknown_082F32D8
	str r4, [sp]
	mov r1, r10
	str r1, [sp, 0x4]
	ldr r1, =gText_PressingSpeed
	str r1, [sp, 0x8]
	movs r1, 0x2
	movs r2, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	ldr r4, =gText_TimesPerSec
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	movs r2, 0xB0
	subs r0, r2, r0
	lsls r0, 24
	str r0, [sp, 0x18]
	lsrs r6, r0, 24
	mov r1, r9
	ldrb r0, [r1]
	ldr r2, =gUnknown_082F32D8
	str r2, [sp]
	mov r1, r10
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	mov r4, r8
	ldrb r2, [r4, 0x16]
	ldrh r0, [r4, 0x16]
	mov r12, r0
	movs r1, 0x7
	mov r9, r1
	movs r5, 0x1
	ldr r3, =gUnknown_082F334C
_08021EEC:
	mov r4, r9
	mov r0, r10
	subs r1, r4, r0
	adds r0, r2, 0
	asrs r0, r1
	ands r0, r5
	cmp r0, 0
	beq _08021F0A
	mov r1, r10
	lsls r0, r1, 2
	adds r0, r3
	ldr r0, [r0]
	ldr r4, [sp, 0xC]
	adds r4, r0
	str r4, [sp, 0xC]
_08021F0A:
	mov r0, r10
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	cmp r0, 0x7
	bls _08021EEC
	ldr r0, =gStringVar1
	mov r2, r12
	lsrs r1, r2, 8
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar2
	ldr r1, =0x000f4240
	ldr r0, [sp, 0xC]
	bl __udivsi3
	adds r1, r0, 0
	adds r0, r4, 0
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gText_XDotY3
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x2
	adds r1, r4, 0
	bl GetStringWidth
	subs r0, r6, r0
	lsls r0, 24
	lsrs r6, r0, 24
	mov r0, r8
	adds r0, 0x25
	ldrb r1, [r0]
	movs r0, 0x2
	ands r0, r1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0
	beq _08021FC4
	movs r0, 0xDD
	lsls r0, 1
	add r0, r8
	ldrb r0, [r0]
	ldr r1, =gUnknown_082F32E7
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	b _08021FDE
	.pool
_08021FC4:
	movs r0, 0xDD
	lsls r0, 1
	add r0, r8
	ldrb r0, [r0]
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	str r2, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
_08021FDE:
	adds r0, r7, 0
	adds r0, 0xE
	lsls r0, 24
	lsrs r7, r0, 24
	movs r4, 0xDD
	lsls r4, 1
	add r8, r4
	mov r1, r8
	ldrb r0, [r1]
	ldr r2, =gUnknown_082F32D8
	mov r9, r2
	str r2, [sp]
	movs r5, 0
	str r5, [sp, 0x4]
	ldr r1, =gText_Silkiness
	str r1, [sp, 0x8]
	movs r1, 0x2
	movs r2, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	ldr r0, =gStringVar1
	ldr r4, [sp, 0x10]
	ldrh r1, [r4, 0x8]
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gText_Var1Percent
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x2
	adds r1, r4, 0
	bl GetStringWidth
	movs r1, 0xB0
	subs r1, r0
	lsls r1, 24
	lsrs r6, r1, 24
	mov r1, r8
	ldrb r0, [r1]
	mov r2, r9
	str r2, [sp]
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x2
	adds r2, r6, 0
	adds r3, r7, 0
	bl AddTextPrinterParameterized3
	add sp, 0x1C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8021D34

	thumb_func_start sub_8022070
sub_8022070: @ 8022070
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r6, r1, 0
	adds r0, r6, 0
	adds r0, 0x80
	ldrb r0, [r0]
	cmp r0, 0x5
	bls _08022084
	b _08022218
_08022084:
	lsls r0, 2
	ldr r1, =_08022094
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08022094:
	.4byte _080220AC
	.4byte _080220F8
	.4byte _0802210C
	.4byte _08022130
	.4byte _080221F8
	.4byte _08022200
_080220AC:
	ldrb r0, [r4, 0x9]
	subs r0, 0x2
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r6, 0
	bl sub_8022554
	ldrh r0, [r4, 0x12]
	lsls r0, 3
	ldr r2, =gUnknown_082F32CC
	mov r1, sp
	adds r0, r2
	ldm r0!, {r2,r3}
	stm r1!, {r2,r3}
	ldrh r0, [r4, 0x12]
	cmp r0, 0xD
	bne _080220DC
	ldr r0, =gUnknown_082F3344
	adds r0, 0x4
	b _080220DE
	.pool
_080220DC:
	ldr r0, =gUnknown_082F3344
_080220DE:
	adds r0, r5, r0
	ldrb r1, [r0]
	mov r0, sp
	strb r1, [r0, 0x4]
	mov r0, sp
	bl AddWindow
	adds r1, r6, 0
	adds r1, 0x82
	strb r0, [r1]
	b _08022218
	.pool
_080220F8:
	adds r4, r6, 0
	adds r4, 0x82
	ldrb r0, [r4]
	bl PutWindowTilemap
	ldrb r0, [r4]
	movs r1, 0
	bl FillWindowPixelBuffer
	b _08022218
_0802210C:
	adds r5, r6, 0
	adds r5, 0x82
	ldrb r0, [r5]
	ldr r4, =0x0000021d
	adds r1, r4, 0
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx_
	ldrb r0, [r5]
	movs r1, 0
	adds r2, r4, 0
	movs r3, 0xD
	bl DrawStdFrameWithCustomTileAndPalette
	b _08022218
	.pool
_08022130:
	ldrb r0, [r4, 0x9]
	subs r0, 0x2
	lsls r0, 24
	lsrs r5, r0, 24
	ldrh r0, [r4, 0x12]
	cmp r0, 0xC
	beq _08022184
	cmp r0, 0xC
	bgt _08022148
	cmp r0, 0xB
	beq _0802214E
	b _08022218
_08022148:
	cmp r0, 0xD
	beq _080221C8
	b _08022218
_0802214E:
	adds r0, r6, 0
	adds r0, 0x82
	ldrb r0, [r0]
	ldr r3, =gText_PressesRankings
	movs r1, 0x14
	movs r2, 0x3
	bl sub_80219C8
	ldr r0, =gUnknown_082F3344
	adds r0, r5, r0
	ldrb r3, [r0]
	lsls r3, 27
	lsrs r3, 24
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0xA0
	bl sub_8021A28
	adds r1, r6, 0
	adds r1, 0x80
	movs r0, 0x5
	b _08022220
	.pool
_08022184:
	adds r0, r6, 0
	adds r0, 0x82
	ldrb r0, [r0]
	ldr r2, =gUnknown_082F43B4
	adds r1, r4, 0
	adds r1, 0x8F
	ldrb r1, [r1]
	adds r1, 0x3
	lsls r1, 2
	adds r1, r2
	ldr r3, [r1]
	movs r1, 0x14
	movs r2, 0x4
	bl sub_80219C8
	ldr r0, =gUnknown_082F3344
	adds r0, r5, r0
	ldrb r3, [r0]
	lsls r3, 27
	lsrs r3, 24
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0xA0
	bl sub_8021A28
	adds r1, r6, 0
	adds r1, 0x80
	movs r0, 0x5
	b _08022220
	.pool
_080221C8:
	adds r0, r6, 0
	adds r0, 0x82
	ldrb r0, [r0]
	ldr r3, =gText_CrushingResults
	movs r1, 0x16
	movs r2, 0x3
	bl sub_80219C8
	ldr r0, =gUnknown_082F3344
	adds r0, 0x4
	adds r0, r5, r0
	ldrb r3, [r0]
	lsls r3, 27
	lsrs r3, 24
	adds r0, r4, 0
	movs r1, 0x2
	movs r2, 0xB0
	bl sub_8021A28
	b _08022218
	.pool
_080221F8:
	adds r0, r4, 0
	bl sub_8021D34
	b _08022218
_08022200:
	adds r0, r6, 0
	adds r0, 0x82
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	adds r1, r6, 0
	adds r1, 0x80
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x1
	b _08022224
_08022218:
	adds r1, r6, 0
	adds r1, 0x80
	ldrb r0, [r1]
	adds r0, 0x1
_08022220:
	strb r0, [r1]
	movs r0, 0
_08022224:
	add sp, 0x8
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8022070

	thumb_func_start sub_802222C
sub_802222C: @ 802222C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xDD
	lsls r0, 1
	adds r5, r4, r0
	ldrb r0, [r5]
	movs r1, 0x1
	bl ClearStdWindowAndFrameToTransparent
	ldrb r0, [r5]
	bl RemoveWindow
	adds r0, r4, 0
	bl sub_8022600
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802222C

	thumb_func_start sub_8022250
sub_8022250: @ 8022250
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x14
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0
	mov r9, r0
	movs r1, 0
	str r1, [sp, 0xC]
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	movs r1, 0
	ldrsh r0, [r6, r1]
	cmp r0, 0x1
	beq _080222D0
	cmp r0, 0x1
	bgt _08022288
	cmp r0, 0
	beq _08022296
	b _080224BA
	.pool
_08022288:
	cmp r0, 0x2
	bne _0802228E
	b _08022480
_0802228E:
	cmp r0, 0x3
	bne _08022294
	b _08022494
_08022294:
	b _080224BA
_08022296:
	ldr r0, =gUnknown_082F32EC
	bl AddWindow
	strh r0, [r6, 0x2]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	ldrb r0, [r6, 0x2]
	movs r1, 0
	bl FillWindowPixelBuffer
	ldrb r0, [r6, 0x2]
	ldr r4, =0x0000021d
	adds r1, r4, 0
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx_
	ldrb r0, [r6, 0x2]
	movs r1, 0
	adds r2, r4, 0
	movs r3, 0xD
	bl DrawStdFrameWithCustomTileAndPalette
	b _080224BA
	.pool
_080222D0:
	ldr r0, =gText_BerryCrush2
	mov r10, r0
	movs r1, 0x1
	negs r1, r1
	mov r8, r1
	movs r0, 0x1
	mov r1, r10
	mov r2, r8
	bl GetStringWidth
	lsrs r0, 1
	movs r4, 0x60
	subs r0, r4, r0
	lsls r0, 24
	lsrs r7, r0, 24
	ldrb r0, [r6, 0x2]
	ldr r5, =gUnknown_082F32E1
	str r5, [sp]
	mov r1, r9
	str r1, [sp, 0x4]
	mov r1, r10
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r7, 0
	movs r3, 0x1
	bl AddTextPrinterParameterized3
	ldr r0, =gText_PressingSpeedRankings
	mov r10, r0
	movs r0, 0x1
	mov r1, r10
	mov r2, r8
	bl GetStringWidth
	lsrs r0, 1
	subs r4, r0
	lsls r4, 24
	lsrs r7, r4, 24
	ldrb r0, [r6, 0x2]
	str r5, [sp]
	mov r1, r9
	str r1, [sp, 0x4]
	mov r1, r10
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r7, 0
	movs r3, 0x11
	bl AddTextPrinterParameterized3
	movs r0, 0x29
	mov r10, r0
_08022336:
	mov r1, r9
	adds r1, 0x2
	ldr r0, =gStringVar1
	movs r2, 0
	movs r3, 0x1
	bl ConvertIntToDecimalStringN
	ldr r0, =gStringVar4
	ldr r1, =gText_Var1Players
	bl StringExpandPlaceholders
	ldrb r0, [r6, 0x2]
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	ldr r1, =gStringVar4
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0
	mov r3, r10
	bl AddTextPrinterParameterized3
	movs r0, 0x1
	ldr r1, =gText_TimesPerSec
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	movs r1, 0xC0
	subs r1, r0
	lsls r1, 24
	lsrs r7, r1, 24
	ldrb r0, [r6, 0x2]
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	ldr r1, =gText_TimesPerSec
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r7, 0
	mov r3, r10
	bl AddTextPrinterParameterized3
	movs r2, 0
	mov r0, r9
	lsls r4, r0, 1
	mov r1, r10
	adds r1, 0x10
	str r1, [sp, 0x10]
	movs r0, 0x1
	add r9, r0
	adds r0, r4, r6
	ldrb r3, [r0, 0x4]
	movs r1, 0x7
	mov r12, r1
	movs r0, 0x1
	mov r8, r0
	ldr r5, =gUnknown_082F334C
_080223AE:
	mov r0, r12
	subs r1, r0, r2
	adds r0, r3, 0
	asrs r0, r1
	mov r1, r8
	ands r0, r1
	cmp r0, 0
	beq _080223CA
	lsls r0, r2, 2
	adds r0, r5
	ldr r0, [r0]
	ldr r1, [sp, 0xC]
	adds r1, r0
	str r1, [sp, 0xC]
_080223CA:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x7
	bls _080223AE
	adds r0, r4, r6
	ldrh r1, [r0, 0x4]
	lsrs r1, 8
	ldr r0, =gStringVar1
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r0, [sp, 0xC]
	ldr r1, =0x000f4240
	bl __udivsi3
	adds r1, r0, 0
	ldr r0, =gStringVar2
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r0, =gStringVar4
	ldr r1, =gText_XDotY3
	bl StringExpandPlaceholders
	movs r0, 0x1
	ldr r1, =gStringVar4
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	subs r0, r7, r0
	lsls r0, 24
	lsrs r7, r0, 24
	ldrb r0, [r6, 0x2]
	ldr r1, =gUnknown_082F32D8
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	ldr r1, =gStringVar4
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r7, 0
	mov r3, r10
	bl AddTextPrinterParameterized3
	ldr r1, [sp, 0x10]
	lsls r0, r1, 24
	lsrs r0, 24
	mov r10, r0
	movs r0, 0
	str r0, [sp, 0xC]
	mov r1, r9
	lsls r0, r1, 24
	lsrs r0, 24
	mov r9, r0
	cmp r0, 0x3
	bhi _08022444
	b _08022336
_08022444:
	ldrb r0, [r6, 0x2]
	movs r1, 0x3
	bl CopyWindowToVram
	b _080224BA
	.pool
_08022480:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _080224BA
	b _080224C0
	.pool
_08022494:
	ldrb r0, [r6, 0x2]
	movs r1, 0x1
	bl ClearStdWindowAndFrameToTransparent
	ldrb r0, [r6, 0x2]
	bl ClearWindowTilemap
	ldrb r0, [r6, 0x2]
	bl RemoveWindow
	adds r0, r4, 0
	bl DestroyTask
	bl EnableBothScriptContexts
	bl ScriptContext2_Disable
	mov r0, r9
	b _080224BE
_080224BA:
	ldrh r0, [r6]
	adds r0, 0x1
_080224BE:
	strh r0, [r6]
_080224C0:
	add sp, 0x14
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8022250

	thumb_func_start sub_80224D0
sub_80224D0: @ 80224D0
	push {lr}
	bl ScriptContext2_Enable
	ldr r0, =sub_8022250
	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
	ldr r0, =gSaveBlock2Ptr
	ldr r2, [r0]
	movs r3, 0xF6
	lsls r3, 1
	adds r0, r2, r3
	ldrh r0, [r0]
	strh r0, [r1, 0xC]
	adds r3, 0x2
	adds r0, r2, r3
	ldrh r0, [r0]
	strh r0, [r1, 0xE]
	adds r3, 0x2
	adds r0, r2, r3
	ldrh r0, [r0]
	strh r0, [r1, 0x10]
	adds r3, 0x2
	adds r0, r2, r3
	ldrh r0, [r0]
	strh r0, [r1, 0x12]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80224D0

	thumb_func_start sub_8022524
sub_8022524: @ 8022524
	push {r4,lr}
	adds r4, r0, 0
	lsls r1, 16
	lsrs r1, 16
	bl sub_8021944
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	movs r0, 0
	bl sub_8035044
	movs r0, 0x6
	ldrsh r1, [r4, r0]
	movs r0, 0x1
	bl sub_8035044
	movs r0, 0x8
	ldrsh r1, [r4, r0]
	movs r0, 0x2
	bl sub_8035044
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8022524

	thumb_func_start sub_8022554
sub_8022554: @ 8022554
	push {lr}
	ldr r2, [r0, 0x78]
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r3, 0x4
	orrs r1, r3
	strb r1, [r2]
	ldr r1, [r0, 0x7C]
	adds r1, 0x3E
	ldrb r0, [r1]
	orrs r0, r3
	strb r0, [r1]
	movs r0, 0x2
	movs r1, 0x1
	bl sub_803547C
	movs r0, 0x1
	movs r1, 0x1
	bl sub_803547C
	movs r0, 0
	movs r1, 0x1
	bl sub_803547C
	pop {r0}
	bx r0
	thumb_func_end sub_8022554

	thumb_func_start sub_8022588
sub_8022588: @ 8022588
	push {r4-r7,lr}
	adds r5, r0, 0
	movs r6, 0
	ldrb r0, [r5, 0x9]
	cmp r6, r0
	bcs _080225E8
	ldr r7, =gUnknown_082F417C
_08022596:
	lsls r0, r6, 2
	movs r1, 0xA2
	lsls r1, 1
	adds r2, r5, r1
	adds r2, r0
	ldrb r1, [r5, 0x9]
	subs r1, 0x2
	lsls r0, r1, 2
	adds r0, r1
	adds r0, r6, r0
	adds r0, r7
	ldrb r1, [r0]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	ldr r1, =gUnknown_082F4190
	adds r0, r1
	str r0, [r2]
	ldrb r0, [r0]
	lsls r0, 3
	ldr r1, =gUnknown_082F32F4
	adds r0, r1
	bl AddWindow
	ldr r1, =0x000001bb
	adds r4, r5, r1
	adds r4, r6
	strb r0, [r4]
	ldrb r0, [r4]
	bl PutWindowTilemap
	ldrb r0, [r4]
	movs r1, 0
	bl FillWindowPixelBuffer
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	ldrb r0, [r5, 0x9]
	cmp r6, r0
	bcc _08022596
_080225E8:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8022588

	thumb_func_start sub_8022600
sub_8022600: @ 8022600
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x14
	adds r6, r0, 0
	movs r7, 0
	ldrb r0, [r6, 0x9]
	cmp r7, r0
	bcs _080226B6
	movs r1, 0
	mov r8, r1
_08022616:
	ldr r1, =0x000001bb
	adds r0, r6, r1
	adds r5, r0, r7
	ldrb r0, [r5]
	bl PutWindowTilemap
	ldrb r0, [r6, 0x8]
	cmp r7, r0
	bne _08022668
	lsls r4, r7, 5
	adds r4, 0x98
	adds r4, r6, r4
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0
	bl GetStringWidth
	lsrs r0, 1
	movs r2, 0x24
	subs r2, r0
	lsls r2, 24
	lsrs r2, 24
	ldrb r0, [r5]
	mov r1, r8
	str r1, [sp]
	str r1, [sp, 0x4]
	ldr r1, =gUnknown_082F32DB
	str r1, [sp, 0x8]
	mov r1, r8
	str r1, [sp, 0xC]
	str r4, [sp, 0x10]
	movs r1, 0x2
	movs r3, 0x1
	bl AddTextPrinterParameterized4
	b _0802269C
	.pool
_08022668:
	lsls r4, r7, 5
	adds r4, 0x98
	adds r4, r6, r4
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0
	bl GetStringWidth
	lsrs r0, 1
	movs r2, 0x24
	subs r2, r0
	lsls r2, 24
	lsrs r2, 24
	ldrb r0, [r5]
	mov r1, r8
	str r1, [sp]
	str r1, [sp, 0x4]
	ldr r1, =gUnknown_082F32DE
	str r1, [sp, 0x8]
	mov r1, r8
	str r1, [sp, 0xC]
	str r4, [sp, 0x10]
	movs r1, 0x2
	movs r3, 0x1
	bl AddTextPrinterParameterized4
_0802269C:
	ldr r1, =0x000001bb
	adds r0, r6, r1
	adds r0, r7
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	ldrb r0, [r6, 0x9]
	cmp r7, r0
	bcc _08022616
_080226B6:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	add sp, 0x14
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8022600

	thumb_func_start sub_80226D0
sub_80226D0: @ 80226D0
	push {r4-r6,lr}
	sub sp, 0x8
	adds r6, r0, 0
	movs r5, 0
	ldr r0, =gUnknown_08DE3FD4
	ldr r4, =gDecompressionBuffer
	adds r1, r4, 0
	bl LZ77UnCompWram
	b _0802271A
	.pool
_080226EC:
	lsls r1, r5, 2
	movs r2, 0xA2
	lsls r2, 1
	adds r0, r6, r2
	adds r0, r1
	ldr r3, [r0]
	ldrb r0, [r3]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r4, r1
	ldrb r2, [r3, 0x1]
	ldrb r3, [r3, 0x2]
	movs r0, 0xA
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x3
	bl CopyToBgTilemapBufferRect
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_0802271A:
	ldrb r0, [r6, 0x9]
	cmp r5, r0
	bcc _080226EC
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_80226D0

	thumb_func_start sub_8022730
sub_8022730: @ 8022730
	push {r4-r7,lr}
	adds r6, r0, 0
	movs r5, 0
	ldr r0, =0x0000ff98
	strh r0, [r6, 0x2A]
	strh r5, [r6, 0x2C]
	ldr r1, =gSpriteCoordOffsetX
	strh r5, [r1]
	ldr r1, =gSpriteCoordOffsetY
	strh r0, [r1]
	ldr r4, =gUnknown_082F41F4
_08022746:
	lsls r0, r5, 3
	adds r0, r4
	bl LoadCompressedSpriteSheet
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _08022746
	ldr r0, =gUnknown_082F421C
	bl LoadSpritePalettes
	ldr r0, =gUnknown_082F430C
	movs r1, 0x78
	movs r2, 0x58
	movs r3, 0x5
	bl CreateSprite
	lsls r0, 24
	lsrs r2, r0, 24
	movs r0, 0xAC
	lsls r0, 1
	adds r3, r6, r0
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r3]
	ldrb r1, [r0, 0x5]
	movs r2, 0xC
	orrs r1, r2
	strb r1, [r0, 0x5]
	ldr r1, [r3]
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x2
	orrs r0, r2
	strb r0, [r1]
	ldr r1, [r3]
	adds r1, 0x2C
	ldrb r0, [r1]
	movs r2, 0x40
	orrs r0, r2
	strb r0, [r1]
	movs r5, 0
	ldrb r1, [r6, 0x9]
	cmp r5, r1
	bcs _08022822
	movs r7, 0x4
_080227AA:
	lsls r4, r5, 2
	movs r3, 0xA2
	lsls r3, 1
	adds r0, r6, r3
	adds r0, r4
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	adds r1, 0x78
	lsls r1, 16
	asrs r1, 16
	ldrh r2, [r0, 0x6]
	adds r2, 0x20
	lsls r2, 16
	asrs r2, 16
	ldr r0, =gUnknown_082F4324
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r2, r0, 24
	movs r0, 0xAE
	lsls r0, 1
	adds r3, r6, r0
	adds r3, r4
	lsls r1, r2, 4
	adds r1, r2
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r3]
	ldrb r0, [r1, 0x5]
	movs r4, 0xD
	negs r4, r4
	adds r2, r4, 0
	ands r0, r2
	orrs r0, r7
	strb r0, [r1, 0x5]
	ldr r1, [r3]
	adds r1, 0x3E
	ldrb r0, [r1]
	orrs r0, r7
	strb r0, [r1]
	ldr r2, [r3]
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x2
	orrs r0, r1
	strb r0, [r2]
	ldr r2, [r3]
	adds r2, 0x2C
	ldrb r0, [r2]
	movs r1, 0x40
	orrs r0, r1
	strb r0, [r2]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldrb r0, [r6, 0x9]
	cmp r5, r0
	bcc _080227AA
_08022822:
	movs r5, 0
	ldr r4, =gUnknown_082F41CC+6
	adds r7, r4, 0x1
_08022828:
	lsls r2, r5, 1
	adds r0, r2, r4
	movs r1, 0
	ldrsb r1, [r0, r1]
	adds r1, 0x78
	adds r2, r7
	ldrb r2, [r2]
	lsls r2, 24
	asrs r2, 24
	adds r2, 0x88
	ldr r0, =gUnknown_082F433C
	movs r3, 0x6
	bl CreateSprite
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r5, 2
	movs r1, 0xC2
	lsls r1, 1
	adds r3, r6, r1
	adds r3, r0
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r3]
	ldrb r1, [r0, 0x5]
	movs r2, 0xC
	orrs r1, r2
	strb r1, [r0, 0x5]
	ldr r2, [r3]
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	ldr r2, [r3]
	adds r2, 0x2C
	ldrb r0, [r2]
	movs r1, 0x40
	orrs r0, r1
	strb r0, [r2]
	ldr r0, [r3]
	strh r5, [r0, 0x2E]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0xA
	bls _08022828
	movs r5, 0
_0802288E:
	lsls r1, r5, 1
	adds r1, r5
	lsls r1, 19
	movs r3, 0xB0
	lsls r3, 16
	adds r1, r3
	asrs r1, 16
	ldr r0, =gUnknown_082F4354
	movs r2, 0x8
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r5, 2
	movs r4, 0xD8
	lsls r4, 1
	adds r3, r6, r4
	adds r3, r0
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r3]
	ldrb r1, [r0, 0x5]
	movs r4, 0xD
	negs r4, r4
	adds r2, r4, 0
	ands r1, r2
	strb r1, [r0, 0x5]
	ldr r2, [r3]
	adds r2, 0x3E
	ldrb r0, [r2]
	adds r4, 0x8
	adds r1, r4, 0
	ands r0, r1
	strb r0, [r2]
	ldr r2, [r3]
	adds r2, 0x2C
	ldrb r0, [r2]
	movs r3, 0x41
	negs r3, r3
	adds r1, r3, 0
	ands r0, r1
	strb r0, [r2]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x1
	bls _0802288E
	ldr r4, =gUnknown_082F4384
	movs r0, 0
	movs r1, 0
	adds r2, r4, 0
	bl sub_8034D14
	adds r2, r4, 0
	adds r2, 0x10
	movs r0, 0x1
	movs r1, 0
	bl sub_8034D14
	adds r4, 0x20
	movs r0, 0x2
	movs r1, 0
	adds r2, r4, 0
	bl sub_8034D14
	ldrh r0, [r6, 0x12]
	cmp r0, 0x1
	bne _08022928
	movs r4, 0x9C
	lsls r4, 1
	adds r0, r6, r4
	bl sub_8022554
_08022928:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8022730

	thumb_func_start sub_8022960
sub_8022960: @ 8022960
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r4, 0
	movs r0, 0x4
	bl FreeSpriteTilesByTag
	movs r0, 0x3
	bl FreeSpriteTilesByTag
	movs r0, 0x2
	bl FreeSpriteTilesByTag
	movs r0, 0x1
	bl FreeSpriteTilesByTag
	movs r0, 0x4
	bl FreeSpritePaletteByTag
	movs r0, 0x2
	bl FreeSpritePaletteByTag
	movs r0, 0x1
	bl FreeSpritePaletteByTag
	movs r0, 0xD8
	lsls r0, 1
	adds r6, r5, r0
_08022996:
	lsls r0, r4, 2
	adds r0, r6, r0
	ldr r0, [r0]
	bl DestroySprite
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x1
	bls _08022996
	movs r0, 0x2
	bl sub_80353DC
	movs r0, 0x1
	bl sub_80353DC
	movs r0, 0
	bl sub_80353DC
	movs r4, 0
	movs r1, 0xC2
	lsls r1, 1
	adds r6, r5, r1
_080229C4:
	lsls r0, r4, 2
	adds r0, r6, r0
	ldr r0, [r0]
	bl DestroySprite
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0xA
	bls _080229C4
	movs r4, 0
	ldrb r2, [r5, 0x9]
	cmp r4, r2
	bcs _080229FC
_080229E0:
	lsls r1, r4, 2
	movs r2, 0xAE
	lsls r2, 1
	adds r0, r5, r2
	adds r0, r1
	ldr r0, [r0]
	bl DestroySprite
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldrb r0, [r5, 0x9]
	cmp r4, r0
	bcc _080229E0
_080229FC:
	movs r1, 0xAC
	lsls r1, 1
	adds r0, r5, r1
	ldr r2, [r0]
	adds r0, r2, 0
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08022A18
	adds r0, r2, 0
	bl DestroySprite
_08022A18:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8022960

	thumb_func_start sub_8022A20
sub_8022A20: @ 8022A20
	push {lr}
	adds r3, r0, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _08022A46
	adds r2, r3, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	subs r2, 0x12
	ldrb r0, [r2]
	movs r1, 0x40
	orrs r0, r1
	strb r0, [r2]
_08022A46:
	pop {r0}
	bx r0
	thumb_func_end sub_8022A20

	thumb_func_start sub_8022A4C
sub_8022A4C: @ 8022A4C
	push {r4,r5,lr}
	adds r3, r0, 0
	movs r1, 0
	ldr r5, =SpriteCallbackDummy
	adds r2, r3, 0
	adds r2, 0x2E
	movs r4, 0
_08022A5A:
	lsls r0, r1, 1
	adds r0, r2, r0
	strh r4, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x7
	bls _08022A5A
	movs r0, 0
	strh r0, [r3, 0x24]
	strh r0, [r3, 0x26]
	adds r2, r3, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	subs r2, 0x12
	ldrb r0, [r2]
	movs r1, 0x40
	orrs r0, r1
	strb r0, [r2]
	str r5, [r3, 0x1C]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8022A4C

	thumb_func_start sub_8022A94
sub_8022A94: @ 8022A94
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r4, r5, 0
	adds r4, 0x2E
	ldrh r0, [r4, 0x4]
	ldrh r1, [r4, 0x2]
	adds r0, r1
	strh r0, [r4, 0x2]
	lsls r0, 16
	asrs r0, 24
	ldrh r2, [r5, 0x26]
	adds r0, r2
	strh r0, [r5, 0x26]
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	movs r6, 0x80
	lsls r6, 8
	ands r0, r6
	cmp r0, 0
	beq _08022AFA
	ldrh r0, [r4, 0x6]
	ldrh r2, [r5, 0x2E]
	adds r0, r2
	strh r0, [r5, 0x2E]
	ldrh r0, [r4, 0xA]
	ldrh r1, [r4, 0x8]
	adds r0, r1
	strh r0, [r4, 0x8]
	lsls r0, 16
	asrs r0, 23
	movs r2, 0xC
	ldrsh r1, [r4, r2]
	bl Sin
	strh r0, [r5, 0x24]
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	ands r0, r6
	cmp r0, 0
	beq _08022AFA
	ldrh r0, [r4, 0x8]
	lsls r0, 16
	asrs r0, 23
	cmp r0, 0x7E
	ble _08022AFA
	movs r0, 0
	strh r0, [r5, 0x24]
	ldrh r1, [r4, 0xE]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xE]
_08022AFA:
	ldrh r0, [r4]
	lsls r0, 16
	asrs r0, 23
	strh r0, [r5, 0x20]
	movs r2, 0x22
	ldrsh r1, [r5, r2]
	movs r2, 0x26
	ldrsh r0, [r5, r2]
	adds r1, r0
	ldrh r2, [r4, 0xE]
	ldr r0, =0x00007fff
	ands r0, r2
	cmp r1, r0
	ble _08022B1A
	ldr r0, =sub_8022A4C
	str r0, [r5, 0x1C]
_08022B1A:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8022A94

	thumb_func_start sub_8022B28
sub_8022B28: @ 8022B28
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r0, 0
	adds r7, r6, 0
	adds r7, 0x2E
	movs r0, 0
	mov r8, r0
	movs r2, 0xA0
	lsls r2, 2
	strh r2, [r7, 0x2]
	movs r0, 0x20
	strh r0, [r7, 0x4]
	movs r1, 0xA8
	strh r1, [r7, 0xE]
	movs r0, 0x24
	ldrsh r4, [r6, r0]
	lsls r4, 23
	lsrs r4, 16
	ldrh r0, [r6, 0x22]
	subs r1, r0
	lsls r1, 23
	asrs r1, 16
	adds r2, 0x20
	asrs r2, 1
	movs r0, 0x7
	bl sub_81515D4
	adds r5, r0, 0
	ldrh r0, [r6, 0x20]
	lsls r0, 7
	strh r0, [r6, 0x2E]
	lsls r4, 16
	asrs r4, 16
	lsls r5, 16
	asrs r5, 16
	movs r0, 0x7
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_81515D4
	strh r0, [r7, 0x6]
	movs r0, 0x7
	adds r1, r5, 0
	movs r2, 0x55
	bl sub_8151550
	adds r2, r0, 0
	mov r1, r8
	strh r1, [r7, 0x8]
	movs r1, 0xFE
	lsls r1, 6
	lsls r2, 16
	asrs r2, 16
	movs r0, 0x7
	bl sub_81515D4
	strh r0, [r7, 0xA]
	movs r2, 0x24
	ldrsh r0, [r6, r2]
	cmp r0, 0
	bge _08022BA6
	adds r0, 0x3
_08022BA6:
	asrs r0, 2
	strh r0, [r7, 0xC]
	ldrh r0, [r7, 0xE]
	ldr r2, =0xffff8000
	adds r1, r2, 0
	orrs r0, r1
	strh r0, [r7, 0xE]
	mov r0, r8
	strh r0, [r6, 0x26]
	strh r0, [r6, 0x24]
	ldr r0, =sub_8022A94
	str r0, [r6, 0x1C]
	adds r2, r6, 0
	adds r2, 0x2C
	ldrb r1, [r2]
	movs r0, 0x41
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	adds r2, 0x12
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8022B28

	thumb_func_start sub_8022BEC
sub_8022BEC: @ 8022BEC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r7, r2, 0
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r1, 24
	lsrs r4, r1, 24
	mov r8, r4
	bl sub_8020C00
	adds r6, r0, 0
	cmp r5, 0x19
	bls _08022C0A
	movs r5, 0
_08022C0A:
	cmp r4, 0
	beq _08022C14
	cmp r4, 0x1
	beq _08022C40
	b _08022C4A
_08022C14:
	cmp r5, 0
	beq _08022C28
	ldr r0, =gUnknown_082F43CC
	lsls r1, r5, 2
	adds r1, r0
	ldr r2, [r1]
	adds r0, r6, 0
	adds r1, r7, 0
	bl _call_via_r2
_08022C28:
	ldrb r0, [r6, 0xE]
	cmp r0, 0x19
	bls _08022C32
	mov r0, r8
	strb r0, [r6, 0xE]
_08022C32:
	ldr r0, =gUnknown_082F43CC
	ldrb r1, [r6, 0xE]
	lsls r1, 2
	b _08022C44
	.pool
_08022C40:
	ldr r0, =gUnknown_082F43CC
	lsls r1, r5, 2
_08022C44:
	adds r1, r0
	ldr r0, [r1]
	str r0, [r6, 0x4]
_08022C4A:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8022BEC

	thumb_func_start sub_8022C58
sub_8022C58: @ 8022C58
	push {r4-r6,lr}
	sub sp, 0x4
	adds r6, r0, 0
	ldrb r2, [r1]
	ldrb r3, [r1, 0x1]
	lsls r3, 8
	orrs r2, r3
	ldrb r3, [r1, 0x2]
	lsls r3, 16
	orrs r2, r3
	ldrb r3, [r1, 0x3]
	lsls r3, 24
	adds r0, r2, 0
	orrs r0, r3
	ldrb r2, [r1, 0x9]
	strb r2, [r1]
	ldrb r4, [r1, 0x8]
	lsls r4, 8
	ldrb r2, [r1, 0x7]
	orrs r4, r2
	ldr r5, =gPaletteFade
	ldrb r3, [r5, 0x8]
	movs r2, 0x7F
	ands r2, r3
	strb r2, [r5, 0x8]
	movs r5, 0x4
	ldrsb r5, [r1, r5]
	ldrb r2, [r1, 0x5]
	ldrb r3, [r1, 0x6]
	str r4, [sp]
	adds r1, r5, 0
	bl BeginNormalPaletteFade
	bl UpdatePaletteFade
	movs r0, 0x2
	strb r0, [r6, 0xE]
	movs r0, 0
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8022C58

	thumb_func_start sub_8022CB0
sub_8022CB0: @ 8022CB0
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldrb r0, [r4, 0xC]
	cmp r0, 0x1
	beq _08022CE4
	cmp r0, 0x1
	bgt _08022CC6
	cmp r0, 0
	beq _08022CD0
	b _08022D06
_08022CC6:
	cmp r0, 0x2
	beq _08022CEA
	cmp r0, 0x3
	beq _08022CF6
	b _08022D06
_08022CD0:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	bne _08022D0C
	ldrb r0, [r5]
	cmp r0, 0
	bne _08022D06
	movs r0, 0x3
	b _08022D0A
_08022CE4:
	bl sub_8010434
	b _08022D06
_08022CEA:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	bne _08022D06
	b _08022D0C
_08022CF6:
	ldrb r0, [r4, 0xF]
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r0, 0
	strb r0, [r4, 0xC]
	b _08022D0E
_08022D06:
	ldrb r0, [r4, 0xC]
	adds r0, 0x1
_08022D0A:
	strb r0, [r4, 0xC]
_08022D0C:
	movs r0, 0
_08022D0E:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8022CB0

	thumb_func_start sub_8022D14
sub_8022D14: @ 8022D14
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x10
	adds r7, r0, 0
	adds r5, r1, 0
	ldrb r4, [r5, 0x3]
	lsls r4, 8
	ldrb r0, [r5, 0x2]
	orrs r4, r0
	ldrb r6, [r7, 0xC]
	cmp r6, 0x1
	beq _08022DC0
	cmp r6, 0x1
	bgt _08022D38
	cmp r6, 0
	beq _08022D42
	b _08022E08
_08022D38:
	cmp r6, 0x2
	beq _08022DD8
	cmp r6, 0x3
	beq _08022DE8
	b _08022E08
_08022D42:
	movs r0, 0
	movs r1, 0
	bl DrawDialogueFrame
	ldrb r1, [r5, 0x1]
	movs r0, 0x2
	mov r8, r0
	ands r0, r1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	beq _08022D90
	ldr r4, =gStringVar4
	ldr r1, =gUnknown_082F32A4
	ldrb r0, [r5]
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl StringExpandPlaceholders
	ldrb r3, [r7, 0xB]
	str r6, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	adds r2, r4, 0
	bl AddTextPrinterParameterized2
	b _08022DB2
	.pool
_08022D90:
	ldr r1, =gUnknown_082F32A4
	ldrb r0, [r5]
	lsls r0, 2
	adds r0, r1
	ldr r2, [r0]
	ldrb r3, [r7, 0xB]
	str r4, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	bl AddTextPrinterParameterized2
_08022DB2:
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	b _08022E08
	.pool
_08022DC0:
	movs r0, 0
	bl IsTextPrinterActive
	lsls r0, 16
	cmp r0, 0
	bne _08022E0E
	cmp r4, 0
	bne _08022E08
	ldrb r0, [r7, 0xC]
	adds r0, 0x1
	strb r0, [r7, 0xC]
	b _08022E08
_08022DD8:
	ldr r0, =gMain
	ldrh r0, [r0, 0x2E]
	ands r4, r0
	cmp r4, 0
	bne _08022E08
	b _08022E0E
	.pool
_08022DE8:
	ldrb r1, [r5, 0x1]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08022DFA
	movs r0, 0
	movs r1, 0x1
	bl ClearDialogWindowAndFrame
_08022DFA:
	ldrb r0, [r7, 0xE]
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	ldrb r0, [r5, 0x4]
	b _08022E0C
_08022E08:
	ldrb r0, [r7, 0xC]
	adds r0, 0x1
_08022E0C:
	strb r0, [r7, 0xC]
_08022E0E:
	movs r0, 0
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8022D14

	thumb_func_start sub_8022E1C
sub_8022E1C: @ 8022E1C
	push {r4,lr}
	adds r4, r0, 0
	bl sub_802104C
	cmp r0, 0
	beq _08022E34
	ldrb r0, [r4, 0xE]
	adds r2, r4, 0
	adds r2, 0x36
	movs r1, 0
	bl sub_8022BEC
_08022E34:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8022E1C

	thumb_func_start sub_8022E3C
sub_8022E3C: @ 8022E3C
	push {r4,lr}
	adds r4, r0, 0
	bl sub_802130C
	cmp r0, 0
	beq _08022E54
	ldrb r0, [r4, 0xE]
	adds r2, r4, 0
	adds r2, 0x36
	movs r1, 0
	bl sub_8022BEC
_08022E54:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8022E3C

	thumb_func_start sub_8022E5C
sub_8022E5C: @ 8022E5C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4, 0xC]
	cmp r0, 0
	beq _08022E6C
	cmp r0, 0x1
	beq _08022E72
	b _08022E9C
_08022E6C:
	bl sub_8010434
	b _08022E9C
_08022E72:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08022EA2
	ldr r0, =0x000001e5
	bl PlayNewMapMusic
	movs r0, 0x7
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r1, 0
	movs r0, 0x3
	strh r0, [r4, 0x12]
	strb r1, [r4, 0xC]
	b _08022EA2
	.pool
_08022E9C:
	ldrb r0, [r4, 0xC]
	adds r0, 0x1
	strb r0, [r4, 0xC]
_08022EA2:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8022E5C

	thumb_func_start sub_8022EAC
sub_8022EAC: @ 8022EAC
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	adds r5, r1, 0
	ldrb r0, [r4, 0xC]
	cmp r0, 0
	beq _08022EC2
	cmp r0, 0x1
	beq _08022EE8
	adds r0, 0x1
	b _08022EF8
_08022EC2:
	adds r0, r4, 0
	bl sub_8024578
	movs r0, 0x1
	str r0, [sp]
	adds r0, r5, 0
	movs r1, 0
	movs r2, 0x1
	movs r3, 0
	bl sub_8024644
	movs r0, 0x7
	strb r0, [r4, 0xE]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	b _08022EFA
_08022EE8:
	movs r0, 0x8
	strb r0, [r4, 0xE]
	movs r0, 0x5
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r0, 0x2
_08022EF8:
	strb r0, [r4, 0xC]
_08022EFA:
	movs r0, 0
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8022EAC

	thumb_func_start sub_8022F04
sub_8022F04: @ 8022F04
	push {lr}
	movs r1, 0
	str r1, [r0, 0x4]
	ldr r0, =sub_8020E1C
	bl SetMainCallback2
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8022F04

	thumb_func_start sub_8022F1C
sub_8022F1C: @ 8022F1C
	push {r4-r7,lr}
	sub sp, 0x4
	adds r5, r0, 0
	adds r2, r1, 0
	ldrb r0, [r5, 0xC]
	cmp r0, 0x5
	bls _08022F2C
	b _08023060
_08022F2C:
	lsls r0, 2
	ldr r1, =_08022F3C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08022F3C:
	.4byte _08022F54
	.4byte _08022F74
	.4byte _08022F7A
	.4byte _08022FAA
	.4byte _08022FBA
	.4byte _08023044
_08022F54:
	movs r0, 0x1
	str r0, [sp]
	adds r0, r2, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl sub_8024644
	movs r0, 0x9
	strb r0, [r5, 0xE]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	b _08023066
_08022F74:
	bl sub_8010434
	b _08023060
_08022F7A:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08023066
	adds r4, r5, 0
	adds r4, 0x42
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0xC
	bl memset
	ldrb r0, [r5, 0x8]
	lsls r0, 5
	adds r0, r5, r0
	adds r0, 0xA4
	ldrh r0, [r0]
	strh r0, [r4]
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0x2
	bl SendBlock
	b _08023060
_08022FAA:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08023066
	movs r0, 0
	strh r0, [r5, 0x10]
	b _08023060
_08022FBA:
	bl GetBlockReceivedStatus
	ldr r2, =gUnknown_082F4448
	ldrb r4, [r5, 0x9]
	subs r1, r4, 0x2
	adds r1, r2
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r1]
	cmp r0, r1
	bne _08023066
	movs r3, 0
	cmp r3, r4
	bcs _0802301E
	ldr r7, =gBlockRecvBuffer
	movs r6, 0
	ldr r4, =gUnknown_0858AB24
_08022FDC:
	lsls r0, r3, 5
	adds r0, r5, r0
	lsls r1, r3, 8
	adds r1, r7
	ldrh r1, [r1]
	adds r2, r0, 0
	adds r2, 0xA4
	strh r1, [r2]
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0xB0
	bls _08022FF6
	strh r6, [r2]
_08022FF6:
	ldrh r1, [r2]
	lsls r1, 2
	adds r1, r4
	ldrh r0, [r5, 0x18]
	ldrb r1, [r1]
	adds r0, r1
	strh r0, [r5, 0x18]
	ldrh r0, [r2]
	lsls r0, 2
	adds r0, r4
	ldrh r1, [r0, 0x2]
	ldr r0, [r5, 0x1C]
	adds r0, r1
	str r0, [r5, 0x1C]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	ldrb r0, [r5, 0x9]
	cmp r3, r0
	bcc _08022FDC
_0802301E:
	movs r0, 0
	strh r0, [r5, 0x10]
	bl ResetBlockReceivedFlags
	movs r1, 0x18
	ldrsh r0, [r5, r1]
	lsls r0, 8
	movs r1, 0x80
	lsls r1, 6
	bl sub_81515FC
	str r0, [r5, 0x20]
	b _08023060
	.pool
_08023044:
	movs r0, 0
	movs r1, 0x1
	bl ClearDialogWindowAndFrame
	movs r0, 0xA
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r1, 0
	movs r0, 0x4
	strh r0, [r5, 0x12]
	strb r1, [r5, 0xC]
	b _08023066
_08023060:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_08023066:
	movs r0, 0
	add sp, 0x4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8022F1C

	thumb_func_start sub_8023070
sub_8023070: @ 8023070
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4, 0xC]
	cmp r0, 0x6
	bls _0802307C
	b _080231A8
_0802307C:
	lsls r0, 2
	ldr r1, =_0802308C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802308C:
	.4byte _080230A8
	.4byte _080230BA
	.4byte _080230E8
	.4byte _08023120
	.4byte _08023150
	.4byte _08023172
	.4byte _08023184
_080230A8:
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r4, r0
	adds r0, r4, 0
	bl sub_80214A8
	bl sub_8010434
	b _080231A8
_080230BA:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _080231AE
	movs r2, 0x9C
	lsls r2, 1
	adds r1, r4, r2
	movs r0, 0
	strb r0, [r1]
	ldr r3, =0x00000139
	adds r1, r4, r3
	strb r0, [r1]
	adds r2, 0x2
	adds r1, r4, r2
	strb r0, [r1]
	adds r3, 0x2
	adds r1, r4, r3
	strb r0, [r1]
	b _080231A8
	.pool
_080230E8:
	movs r0, 0x9C
	lsls r0, 1
	adds r3, r4, r0
	ldrb r0, [r3]
	lsls r0, 2
	movs r2, 0xB8
	lsls r2, 1
	adds r1, r4, r2
	adds r0, r1, r0
	ldr r2, [r0]
	ldr r0, =sub_8021608
	str r0, [r2, 0x1C]
	ldrb r0, [r3]
	lsls r0, 2
	adds r1, r0
	ldr r1, [r1]
	adds r1, 0x2C
	ldrb r2, [r1]
	movs r0, 0x7F
	ands r0, r2
	strb r0, [r1]
	movs r0, 0x3D
	bl PlaySE
	b _080231A8
	.pool
_08023120:
	movs r3, 0x9C
	lsls r3, 1
	adds r2, r4, r3
	ldrb r0, [r2]
	lsls r0, 2
	adds r3, 0x38
	adds r1, r4, r3
	adds r3, r1, r0
	ldr r0, [r3]
	ldr r1, [r0, 0x1C]
	ldr r0, =sub_8021608
	cmp r1, r0
	beq _080231AE
	movs r0, 0
	str r0, [r3]
	ldrb r0, [r2]
	adds r0, 0x1
	strb r0, [r2]
	bl sub_8010434
	b _080231A8
	.pool
_08023150:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _080231AE
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r4, r0
	ldrb r0, [r1]
	ldrb r2, [r4, 0x9]
	cmp r0, r2
	bcs _0802316C
	movs r0, 0x2
	b _080231AC
_0802316C:
	movs r0, 0
	strb r0, [r1]
	b _080231A8
_08023172:
	movs r3, 0x9C
	lsls r3, 1
	adds r1, r4, r3
	adds r0, r4, 0
	bl sub_80216A8
	bl sub_8010434
	b _080231A8
_08023184:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _080231AE
	movs r0, 0x2B
	bl PlaySE
	movs r0, 0xB
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r1, 0
	movs r0, 0x5
	strh r0, [r4, 0x12]
	strb r1, [r4, 0xC]
	b _080231AE
_080231A8:
	ldrb r0, [r4, 0xC]
	adds r0, 0x1
_080231AC:
	strb r0, [r4, 0xC]
_080231AE:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8023070

	thumb_func_start sub_80231B8
sub_80231B8: @ 80231B8
	push {r4-r7,lr}
	adds r4, r0, 0
	ldrb r1, [r4, 0xC]
	cmp r1, 0x1
	beq _0802321C
	cmp r1, 0x1
	bgt _080231CC
	cmp r1, 0
	beq _080231D6
	b _080232DC
_080231CC:
	cmp r1, 0x2
	beq _0802329C
	cmp r1, 0x3
	beq _080232BE
	b _080232DC
_080231D6:
	ldrh r0, [r4, 0x2A]
	adds r0, 0x4
	strh r0, [r4, 0x2A]
	lsls r0, 16
	cmp r0, 0
	bge _080231E4
	b _080232E2
_080231E4:
	strh r1, [r4, 0x2A]
	ldr r0, =0x00000139
	adds r3, r4, r0
	movs r0, 0x4
	strb r0, [r3]
	movs r2, 0x9C
	lsls r2, 1
	adds r1, r4, r2
	movs r0, 0
	strb r0, [r1]
	ldr r2, =gUnknown_082F326C
	ldrb r1, [r3]
	lsls r0, r1, 3
	subs r0, r1
	adds r0, r2
	ldrb r0, [r0]
	movs r2, 0x9D
	lsls r2, 1
	adds r1, r4, r2
	strb r0, [r1]
	movs r0, 0xD6
	bl PlaySE
	b _080232DC
	.pool
_0802321C:
	ldr r7, =gUnknown_082F326C
	movs r0, 0x9C
	lsls r0, 1
	adds r6, r4, r0
	ldr r1, =0x00000139
	adds r5, r4, r1
	ldrb r1, [r5]
	lsls r0, r1, 3
	subs r0, r1
	ldrb r2, [r6]
	adds r0, r2
	adds r0, r7
	movs r1, 0
	ldrsb r1, [r0, r1]
	strh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x12
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1A
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1E
	bl SetGpuReg
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	movs r1, 0x9D
	lsls r1, 1
	adds r2, r4, r1
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r2]
	cmp r0, r1
	bcc _080232E2
	ldrb r0, [r5]
	cmp r0, 0
	beq _080232DC
	subs r0, 0x1
	strb r0, [r5]
	ldrb r1, [r5]
	lsls r0, r1, 3
	subs r0, r1
	adds r0, r7
	ldrb r0, [r0]
	strb r0, [r2]
	movs r0, 0
	strb r0, [r6]
	b _080232E2
	.pool
_0802329C:
	movs r0, 0
	strh r0, [r4, 0x2C]
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1E
	movs r1, 0
	bl SetGpuReg
	bl sub_8010434
	b _080232DC
_080232BE:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _080232E2
	movs r0, 0xC
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r1, 0
	movs r0, 0x6
	strh r0, [r4, 0x12]
	strb r1, [r4, 0xC]
	b _080232E2
_080232DC:
	ldrb r0, [r4, 0xC]
	adds r0, 0x1
	strb r0, [r4, 0xC]
_080232E2:
	movs r0, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_80231B8

	thumb_func_start sub_80232EC
sub_80232EC: @ 80232EC
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	ldrb r0, [r4, 0xC]
	cmp r0, 0x1
	beq _0802330C
	cmp r0, 0x1
	bgt _08023302
	cmp r0, 0
	beq _08023332
	b _0802338C
_08023302:
	cmp r0, 0x2
	beq _0802332A
	cmp r0, 0x3
	beq _08023338
	b _0802338C
_0802330C:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08023392
	movs r1, 0x80
	lsls r1, 5
	movs r0, 0
	str r0, [sp]
	adds r0, r1, 0
	movs r2, 0x78
	movs r3, 0x50
	bl sub_802EB24
	b _0802338C
_0802332A:
	bl sub_802EB84
	cmp r0, 0
	bne _08023392
_08023332:
	bl sub_8010434
	b _0802338C
_08023338:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08023392
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r4, r0
	movs r0, 0
	strb r0, [r1]
	ldr r2, =0x00000139
	adds r1, r4, r2
	strb r0, [r1]
	adds r2, 0x1
	adds r1, r4, r2
	strb r0, [r1]
	adds r2, 0x1
	adds r1, r4, r2
	strb r0, [r1]
	strh r0, [r4, 0x10]
	ldrb r0, [r4, 0x8]
	cmp r0, 0
	bne _08023378
	movs r0, 0xD
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	b _08023382
	.pool
_08023378:
	movs r0, 0xE
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
_08023382:
	movs r1, 0
	movs r0, 0x7
	strh r0, [r4, 0x12]
	strb r1, [r4, 0xC]
	b _08023392
_0802338C:
	ldrb r0, [r4, 0xC]
	adds r0, 0x1
	strb r0, [r4, 0xC]
_08023392:
	movs r0, 0
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_80232EC

	thumb_func_start sub_802339C
sub_802339C: @ 802339C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r4, r0, 0
	movs r0, 0
	mov r8, r0
	movs r2, 0
	adds r7, r2, 0
	ldrb r1, [r4, 0x9]
	cmp r7, r1
	bcs _080234AA
	movs r2, 0x5E
	adds r2, r4
	mov r9, r2
	ldr r3, =gUnknown_082F325C
	mov r10, r3
_080233C0:
	lsls r0, r7, 4
	ldr r1, =gRecvCmds
	adds r2, r0, r1
	ldrh r1, [r2]
	movs r0, 0xFF
	lsls r0, 8
	ands r0, r1
	movs r3, 0xBC
	lsls r3, 6
	cmp r0, r3
	bne _0802349E
	ldrh r0, [r2, 0x2]
	cmp r0, 0x2
	bne _0802349E
	ldrb r1, [r2, 0x4]
	movs r0, 0x4
	ands r0, r1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	beq _08023496
	mov r0, r9
	ldrb r2, [r0]
	lsrs r1, r2, 3
	mov r3, r10
	adds r0, r7, r3
	ldrb r0, [r0]
	orrs r1, r0
	lsls r1, 3
	movs r0, 0x7
	ands r0, r2
	orrs r0, r1
	mov r1, r9
	strb r0, [r1]
	lsls r2, r7, 5
	adds r3, r4, r2
	mov r12, r3
	mov r1, r12
	adds r1, 0xB5
	movs r0, 0x1
	strb r0, [r1]
	subs r1, 0x7
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	mov r0, r8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	subs r1, 0x8
	ldrh r0, [r4, 0x28]
	ldrh r1, [r1]
	subs r0, r1
	lsls r0, 16
	lsrs r3, r0, 16
	mov r5, r12
	adds r5, 0xAA
	ldrh r1, [r5]
	subs r0, r1, 0x1
	adds r6, r2, 0
	cmp r3, r0
	blt _08023468
	adds r0, r1, 0x1
	cmp r3, r0
	bgt _08023468
	mov r1, r12
	adds r1, 0xA8
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	strh r3, [r5]
	mov r0, r12
	adds r0, 0xAC
	ldrh r1, [r1]
	ldrh r2, [r0]
	cmp r1, r2
	bls _08023476
	strh r1, [r0]
	b _08023476
	.pool
_08023468:
	adds r0, r4, r6
	adds r2, r0, 0
	adds r2, 0xA8
	movs r1, 0
	strh r1, [r2]
	adds r0, 0xAA
	strh r3, [r0]
_08023476:
	adds r1, r4, r6
	ldrh r0, [r4, 0x28]
	adds r3, r1, 0
	adds r3, 0xA6
	movs r2, 0
	strh r0, [r3]
	adds r1, 0xB4
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bls _0802349E
	strb r2, [r1]
	b _0802349E
_08023496:
	lsls r0, r7, 5
	adds r0, r4, r0
	adds r0, 0xB5
	strb r1, [r0]
_0802349E:
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	ldrb r3, [r4, 0x9]
	cmp r7, r3
	bcc _080233C0
_080234AA:
	mov r0, r8
	cmp r0, 0x1
	bls _080234E0
	movs r7, 0
	ldrb r1, [r4, 0x9]
	cmp r7, r1
	bcs _080234E0
	movs r3, 0x2
_080234BA:
	lsls r0, r7, 5
	adds r1, r4, r0
	adds r2, r1, 0
	adds r2, 0xB5
	ldrb r0, [r2]
	cmp r0, 0
	beq _080234D4
	orrs r0, r3
	strb r0, [r2]
	adds r1, 0xB0
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_080234D4:
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	ldrb r2, [r4, 0x9]
	cmp r7, r2
	bcc _080234BA
_080234E0:
	mov r3, r8
	cmp r3, 0
	beq _08023548
	ldrh r0, [r4, 0x2E]
	add r0, r8
	strh r0, [r4, 0x2E]
	ldr r1, =gUnknown_082F3264
	mov r0, r8
	subs r0, 0x1
	adds r0, r1
	ldrb r0, [r0]
	add r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldrh r0, [r4, 0x34]
	add r0, r8
	strh r0, [r4, 0x34]
	ldrh r0, [r4, 0x1A]
	add r0, r8
	strh r0, [r4, 0x1A]
	movs r1, 0x18
	ldrsh r0, [r4, r1]
	movs r3, 0x1A
	ldrsh r2, [r4, r3]
	subs r0, r2
	cmp r0, 0
	ble _08023534
	lsls r2, 8
	ldr r1, [r4, 0x20]
	adds r0, r2, 0
	bl sub_81515FC
	adds r2, r0, 0
	asrs r2, 8
	adds r0, r4, 0
	adds r0, 0x24
	strb r2, [r0]
	b _08023548
	.pool
_08023534:
	adds r1, r4, 0
	adds r1, 0x24
	movs r0, 0x20
	strb r0, [r1]
	adds r2, r4, 0
	adds r2, 0x5E
	ldrb r0, [r2]
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2]
_08023548:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_802339C

	thumb_func_start sub_8023558
sub_8023558: @ 8023558
	push {r4-r6,lr}
	adds r3, r0, 0
	movs r6, 0
	movs r1, 0
	adds r4, r1, 0
	ldrb r0, [r3, 0x9]
	cmp r4, r0
	bcs _080235B0
	adds r5, r3, 0
	adds r5, 0x64
_0802356C:
	lsls r0, r4, 5
	adds r1, r3, r0
	adds r0, r1, 0
	adds r0, 0xB5
	ldrb r2, [r0]
	cmp r2, 0
	beq _080235A4
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r1, 0
	adds r0, 0xB4
	ldrb r0, [r0]
	adds r1, r0, 0x1
	movs r0, 0x2
	ands r0, r2
	cmp r0, 0
	beq _08023594
	movs r0, 0x4
	orrs r1, r0
_08023594:
	lsls r0, r4, 1
	adds r0, r4
	lsls r1, r0
	lsls r0, r1, 16
	lsrs r1, r0, 16
	ldrh r0, [r5]
	orrs r1, r0
	strh r1, [r5]
_080235A4:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldrb r1, [r3, 0x9]
	cmp r4, r1
	bcc _0802356C
_080235B0:
	adds r0, r3, 0
	adds r0, 0x24
	ldrb r1, [r0]
	adds r0, 0x3C
	strh r1, [r0]
	cmp r6, 0
	bne _080235D4
	ldr r2, =0x0000013b
	adds r0, r3, r2
	ldrb r0, [r0]
	cmp r0, 0
	beq _080236A0
	movs r4, 0x9C
	lsls r4, 1
	adds r1, r3, r4
	b _08023612
	.pool
_080235D4:
	ldr r5, =0x0000013b
	adds r2, r3, r5
	ldrb r0, [r2]
	cmp r0, 0
	beq _0802361A
	ldr r0, =0x00000139
	adds r1, r3, r0
	ldrb r2, [r1]
	cmp r6, r2
	beq _0802360C
	subs r0, r6, 0x1
	strb r0, [r1]
	ldr r1, =gUnknown_082F3290
	lsls r0, 2
	adds r0, r1
	ldrb r0, [r0]
	movs r4, 0x9D
	lsls r4, 1
	adds r1, r3, r4
	strb r0, [r1]
	b _08023640
	.pool
_0802360C:
	movs r5, 0x9C
	lsls r5, 1
	adds r1, r3, r5
_08023612:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _08023640
_0802361A:
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r3, r0
	movs r0, 0
	strb r0, [r1]
	subs r0, r6, 0x1
	ldr r4, =0x00000139
	adds r1, r3, r4
	strb r0, [r1]
	ldr r1, =gUnknown_082F3290
	lsls r0, 2
	adds r0, r1
	ldrb r0, [r0]
	movs r5, 0x9D
	lsls r5, 1
	adds r1, r3, r5
	strb r0, [r1]
	movs r0, 0x1
	strb r0, [r2]
_08023640:
	ldr r0, =0x0000013b
	adds r4, r3, r0
	ldrb r0, [r4]
	cmp r0, 0
	beq _080236A0
	movs r2, 0x9C
	lsls r2, 1
	adds r1, r3, r2
	movs r5, 0x9D
	lsls r5, 1
	adds r2, r3, r5
	ldrb r0, [r1]
	ldrb r5, [r2]
	cmp r0, r5
	bcc _0802367C
	movs r0, 0
	strb r0, [r1]
	ldr r5, =0x00000139
	adds r1, r3, r5
	strb r0, [r1]
	strb r0, [r2]
	strb r0, [r4]
	movs r1, 0
	b _08023690
	.pool
_0802367C:
	ldr r2, =gUnknown_082F3290
	ldrb r1, [r1]
	ldr r4, =0x00000139
	adds r0, r3, r4
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, 0x1
	adds r1, r0
	adds r1, r2
	ldrb r1, [r1]
_08023690:
	adds r0, r3, 0
	adds r0, 0x5F
	strb r1, [r0]
	b _080236A8
	.pool
_080236A0:
	adds r1, r3, 0
	adds r1, 0x5F
	movs r0, 0
	strb r0, [r1]
_080236A8:
	ldrh r1, [r3, 0x26]
	adds r0, r3, 0
	adds r0, 0x62
	strh r1, [r0]
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8023558

	thumb_func_start sub_80236B8
sub_80236B8: @ 80236B8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r5, r0, 0
	ldr r3, =gMain
	ldrh r1, [r3, 0x2E]
	movs r4, 0x1
	adds r0, r4, 0
	ands r0, r1
	cmp r0, 0
	beq _080236DA
	adds r2, r5, 0
	adds r2, 0x5E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
_080236DA:
	ldrh r1, [r3, 0x2C]
	adds r0, r4, 0
	ands r0, r1
	cmp r0, 0
	beq _080236FA
	ldrb r0, [r5, 0x8]
	lsls r0, 5
	adds r0, r5, r0
	adds r1, r0, 0
	adds r1, 0xB2
	ldrh r0, [r1]
	ldrh r2, [r5, 0x28]
	cmp r0, r2
	bcs _080236FA
	adds r0, 0x1
	strh r0, [r1]
_080236FA:
	ldrb r0, [r5, 0x8]
	adds r7, r5, 0
	adds r7, 0x5E
	cmp r0, 0
	beq _08023710
	ldrb r1, [r7]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	bne _08023710
	b _0802384C
_08023710:
	adds r4, r5, 0
	adds r4, 0x5C
	movs r0, 0x2
	strh r0, [r4]
	ldrh r0, [r5, 0x28]
	movs r1, 0x1E
	bl __umodsi3
	lsls r0, 16
	mov r8, r4
	adds r6, r5, 0
	adds r6, 0x25
	cmp r0, 0
	bne _08023768
	movs r0, 0x2E
	ldrsh r2, [r5, r0]
	ldr r1, =gUnknown_082F4444
	ldrb r0, [r5, 0x9]
	subs r0, 0x2
	adds r0, r1
	ldrb r0, [r0]
	cmp r2, r0
	ble _08023754
	ldrh r0, [r5, 0x30]
	adds r0, 0x1
	strh r0, [r5, 0x30]
	ldrb r0, [r6]
	movs r1, 0x10
	orrs r0, r1
	b _0802375C
	.pool
_08023754:
	ldrb r1, [r6]
	movs r0, 0x11
	negs r0, r0
	ands r0, r1
_0802375C:
	strb r0, [r6]
	movs r0, 0
	strh r0, [r5, 0x2E]
	ldrh r0, [r5, 0x32]
	adds r0, 0x1
	strh r0, [r5, 0x32]
_08023768:
	ldrh r0, [r5, 0x28]
	movs r1, 0xF
	bl __umodsi3
	lsls r0, 16
	cmp r0, 0
	bne _080237DE
	movs r0, 0x34
	ldrsh r2, [r5, r0]
	ldr r3, =gUnknown_082F4434
	ldrb r0, [r5, 0x9]
	subs r0, 0x2
	lsls r1, r0, 2
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r2, r0
	bge _08023798
	ldrb r1, [r6]
	movs r0, 0x1F
	ands r0, r1
	strb r0, [r6]
	b _080237D8
	.pool
_08023798:
	adds r0, r3, 0x1
	adds r0, r1, r0
	ldrb r0, [r0]
	cmp r2, r0
	bge _080237AC
	ldrb r0, [r6]
	movs r1, 0x1F
	ands r1, r0
	movs r0, 0x20
	b _080237D4
_080237AC:
	adds r0, r3, 0x2
	adds r0, r1, r0
	ldrb r0, [r0]
	cmp r2, r0
	bge _080237BC
	movs r0, 0x2
	strh r0, [r5, 0x34]
	b _080237D8
_080237BC:
	adds r0, r3, 0x3
	adds r0, r1, r0
	ldrb r0, [r0]
	cmp r2, r0
	bge _080237CC
	movs r0, 0x3
	strh r0, [r5, 0x34]
	b _080237D8
_080237CC:
	ldrb r0, [r6]
	movs r1, 0x1F
	ands r1, r0
	movs r0, 0x80
_080237D4:
	orrs r1, r0
	strb r1, [r6]
_080237D8:
	movs r0, 0
	strh r0, [r5, 0x34]
	b _0802380A
_080237DE:
	ldrh r0, [r5, 0x10]
	adds r0, 0x1
	strh r0, [r5, 0x10]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x3C
	bls _0802380A
	cmp r0, 0x46
	bls _080237FA
	bl sub_8011AC8
	movs r0, 0
	strh r0, [r5, 0x10]
	b _0802380A
_080237FA:
	ldrb r0, [r7]
	movs r4, 0xF8
	ands r4, r0
	cmp r4, 0
	bne _0802380A
	bl sub_8011AC8
	strh r4, [r5, 0x10]
_0802380A:
	ldrh r1, [r5, 0x28]
	ldr r0, =0x00008c9f
	cmp r1, r0
	bls _0802381A
	ldrb r0, [r7]
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r7]
_0802381A:
	ldrb r1, [r6]
	lsls r1, 27
	lsrs r1, 31
	lsls r1, 1
	ldrb r2, [r7]
	movs r0, 0x3
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r7]
	ldrb r0, [r6]
	lsrs r0, 5
	adds r2, r5, 0
	adds r2, 0x66
	strh r0, [r2]
	adds r4, r5, 0
	adds r4, 0x42
	adds r0, r4, 0
	mov r1, r8
	movs r2, 0xC
	bl memcpy
	adds r0, r4, 0
	bl sub_800FE50
_0802384C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80236B8

	thumb_func_start sub_802385C
sub_802385C: @ 802385C
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r4, 0
	ldr r3, =gRecvCmds
	ldrb r0, [r5, 0x9]
	cmp r4, r0
	bcs _08023880
	movs r1, 0
_0802386C:
	lsls r0, r4, 5
	adds r0, r5, r0
	adds r0, 0xB5
	strb r1, [r0]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldrb r0, [r5, 0x9]
	cmp r4, r0
	bcc _0802386C
_08023880:
	adds r2, r3, 0
	ldrh r0, [r2]
	movs r1, 0xFF
	lsls r1, 8
	ands r1, r0
	movs r0, 0xBC
	lsls r0, 6
	cmp r1, r0
	bne _08023898
	ldrh r0, [r2, 0x2]
	cmp r0, 0x2
	beq _080238AC
_08023898:
	adds r2, r5, 0
	adds r2, 0x25
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	b _080238EA
	.pool
_080238AC:
	adds r4, r5, 0
	adds r4, 0x4E
	adds r0, r4, 0
	adds r1, r3, 0
	movs r2, 0xE
	bl memcpy
	ldrh r0, [r4, 0x6]
	strh r0, [r5, 0x2A]
	movs r0, 0x5
	ldrsb r0, [r4, r0]
	strh r0, [r5, 0x2C]
	ldrh r0, [r4, 0x8]
	strh r0, [r5, 0x28]
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	adds r0, r5, 0
	bl sub_80216E0
	ldrb r1, [r4, 0x4]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _080238EA
	adds r0, r5, 0
	adds r0, 0x25
	ldrb r1, [r0]
	movs r2, 0x8
	orrs r1, r2
	strb r1, [r0]
_080238EA:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802385C

	thumb_func_start sub_80238F0
sub_80238F0: @ 80238F0
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x5C
	movs r1, 0
	movs r2, 0xC
	bl memset
	adds r0, r4, 0
	adds r0, 0x4E
	movs r1, 0
	movs r2, 0xE
	bl memset
	adds r0, r4, 0
	bl sub_802385C
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x12
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1A
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1E
	bl SetGpuReg
	adds r0, r4, 0
	adds r0, 0x25
	ldrb r1, [r0]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _08023978
	ldrh r1, [r4, 0x28]
	ldr r0, =0x00008c9f
	cmp r1, r0
	bls _08023964
	adds r0, 0x1
	strh r0, [r4, 0x28]
	movs r0, 0x10
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	b _0802396E
	.pool
_08023964:
	movs r0, 0xF
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
_0802396E:
	movs r1, 0
	movs r0, 0
	strh r0, [r4, 0x10]
	strb r1, [r4, 0xC]
	b _08023992
_08023978:
	ldrh r0, [r4, 0x26]
	adds r0, 0x1
	strh r0, [r4, 0x26]
	adds r0, r4, 0
	bl sub_802339C
	adds r0, r4, 0
	bl sub_8023558
	adds r0, r4, 0
	bl sub_80236B8
	movs r0, 0
_08023992:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_80238F0

	thumb_func_start sub_8023998
sub_8023998: @ 8023998
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x5C
	movs r1, 0
	movs r2, 0xC
	bl memset
	adds r0, r4, 0
	adds r0, 0x4E
	movs r1, 0
	movs r2, 0xE
	bl memset
	adds r0, r4, 0
	bl sub_802385C
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x12
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1A
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1E
	bl SetGpuReg
	adds r0, r4, 0
	adds r0, 0x25
	ldrb r1, [r0]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _08023A20
	ldrh r1, [r4, 0x28]
	ldr r0, =0x00008c9f
	cmp r1, r0
	bls _08023A0C
	adds r0, 0x1
	strh r0, [r4, 0x28]
	movs r0, 0x10
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	b _08023A16
	.pool
_08023A0C:
	movs r0, 0xF
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
_08023A16:
	movs r1, 0
	movs r0, 0
	strh r0, [r4, 0x10]
	strb r1, [r4, 0xC]
	b _08023A28
_08023A20:
	adds r0, r4, 0
	bl sub_80236B8
	movs r0, 0
_08023A28:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8023998

	thumb_func_start sub_8023A30
sub_8023A30: @ 8023A30
	push {r4-r7,lr}
	adds r4, r0, 0
	ldrb r0, [r4, 0xC]
	cmp r0, 0x5
	bls _08023A3C
	b _08023BB2
_08023A3C:
	lsls r0, 2
	ldr r1, =_08023A4C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08023A4C:
	.4byte _08023A64
	.4byte _08023A8C
	.4byte _08023ADC
	.4byte _08023B5C
	.4byte _08023B7A
	.4byte _08023B94
_08023A64:
	movs r0, 0x8
	strh r0, [r4, 0x12]
	movs r0, 0xD6
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	ldr r2, =0x000003ff
	movs r1, 0x8
	bl BlendPalettes
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r4, r0
	movs r0, 0x2
	strb r0, [r1]
	b _08023BB2
	.pool
_08023A8C:
	movs r1, 0x9C
	lsls r1, 1
	adds r5, r4, r1
	ldrb r0, [r5]
	subs r0, 0x1
	strb r0, [r5]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _08023AA2
	b _08023BB8
_08023AA2:
	movs r0, 0x1
	negs r0, r0
	ldr r2, =0x000003ff
	movs r1, 0
	bl BlendPalettes
	ldr r2, =0x00000139
	adds r1, r4, r2
	movs r0, 0x4
	strb r0, [r1]
	movs r0, 0
	strb r0, [r5]
	ldr r2, =gUnknown_082F326C
	ldrb r1, [r1]
	lsls r0, r1, 3
	subs r0, r1
	adds r0, r2
	ldrb r0, [r0]
	movs r2, 0x9D
	lsls r2, 1
	adds r1, r4, r2
	strb r0, [r1]
	b _08023BB2
	.pool
_08023ADC:
	ldr r7, =gUnknown_082F326C
	movs r0, 0x9C
	lsls r0, 1
	adds r6, r4, r0
	ldr r1, =0x00000139
	adds r5, r4, r1
	ldrb r1, [r5]
	lsls r0, r1, 3
	subs r0, r1
	ldrb r2, [r6]
	adds r0, r2
	adds r0, r7
	movs r1, 0
	ldrsb r1, [r0, r1]
	strh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x12
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1A
	bl SetGpuReg
	ldrh r1, [r4, 0x2C]
	negs r1, r1
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1E
	bl SetGpuReg
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	movs r1, 0x9D
	lsls r1, 1
	adds r2, r4, r1
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r2]
	cmp r0, r1
	bcc _08023BB8
	ldrb r0, [r5]
	cmp r0, 0
	beq _08023BB2
	subs r0, 0x1
	strb r0, [r5]
	ldrb r1, [r5]
	lsls r0, r1, 3
	subs r0, r1
	adds r0, r7
	ldrb r0, [r0]
	strb r0, [r2]
	movs r0, 0
	strb r0, [r6]
	b _08023BB8
	.pool
_08023B5C:
	movs r0, 0
	strh r0, [r4, 0x2C]
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1E
	movs r1, 0
	bl SetGpuReg
	b _08023BB2
_08023B7A:
	movs r2, 0x9C
	lsls r2, 1
	adds r1, r4, r2
	adds r0, r4, 0
	bl sub_80218D4
	cmp r0, 0
	beq _08023BB8
	bl sub_8010434
	movs r0, 0
	strh r0, [r4, 0x10]
	b _08023BB2
_08023B94:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08023BB8
	movs r0, 0x11
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r1, 0
	movs r0, 0
	strh r0, [r4, 0x10]
	strb r1, [r4, 0xC]
	b _08023BBA
_08023BB2:
	ldrb r0, [r4, 0xC]
	adds r0, 0x1
	strb r0, [r4, 0xC]
_08023BB8:
	movs r0, 0
_08023BBA:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8023A30

	thumb_func_start sub_8023BC0
sub_8023BC0: @ 8023BC0
	push {r4-r6,lr}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	ldrb r0, [r5, 0xC]
	cmp r0, 0x1
	beq _08023C04
	cmp r0, 0x1
	bgt _08023BD8
	cmp r0, 0
	beq _08023BE2
	b _08023C9C
_08023BD8:
	cmp r0, 0x2
	beq _08023C2A
	cmp r0, 0x3
	beq _08023C5C
	b _08023C9C
_08023BE2:
	movs r0, 0x9
	strh r0, [r5, 0x12]
	movs r0, 0x20
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x8
	movs r2, 0x1F
	bl BlendPalettes
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	movs r0, 0x4
	strb r0, [r1]
	b _08023C9C
_08023C04:
	movs r0, 0x9C
	lsls r0, 1
	adds r4, r5, r0
	ldrb r0, [r4]
	subs r0, 0x1
	strb r0, [r4]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	bne _08023CA2
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	movs r2, 0x1F
	bl BlendPalettes
	movs r0, 0
	strb r0, [r4]
	b _08023C9C
_08023C2A:
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	adds r0, r5, 0
	bl sub_80218D4
	cmp r0, 0
	beq _08023CA2
	bl sub_8010434
	movs r0, 0
	strh r0, [r5, 0x10]
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x1E
	movs r1, 0
	bl SetGpuReg
	b _08023C9C
_08023C5C:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08023CA2
	ldr r0, =gStringVar1
	ldr r1, [r5, 0x1C]
	movs r2, 0
	movs r3, 0x6
	bl ConvertIntToDecimalStringN
	movs r4, 0
	str r4, [sp]
	adds r0, r6, 0
	movs r1, 0x7
	movs r2, 0x1
	movs r3, 0
	bl sub_8024644
	movs r0, 0x13
	strb r0, [r5, 0xE]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r0, 0
	strh r4, [r5, 0x10]
	b _08023CA0
	.pool
_08023C9C:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
_08023CA0:
	strb r0, [r5, 0xC]
_08023CA2:
	movs r0, 0
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8023BC0

	thumb_func_start sub_8023CAC
sub_8023CAC: @ 8023CAC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	adds r7, r0, 0
	ldrb r0, [r7, 0xC]
	cmp r0, 0x7
	bls _08023CC2
	b _0802402E
_08023CC2:
	lsls r0, 2
	ldr r1, =_08023CD0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08023CD0:
	.4byte _08023CF0
	.4byte _08023D2A
	.4byte _08023D38
	.4byte _08023DA0
	.4byte _08023F20
	.4byte _08023FD0
	.4byte _08023FDC
	.4byte _08024010
_08023CF0:
	adds r4, r7, 0
	adds r4, 0x42
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x4
	bl memset
	ldrb r0, [r7, 0x8]
	lsls r0, 5
	adds r0, r7, r0
	adds r2, r0, 0
	adds r2, 0xB2
	ldrh r1, [r7, 0x28]
	ldrh r0, [r2]
	cmp r0, r1
	bls _08023D12
	strh r1, [r2]
_08023D12:
	ldrb r0, [r7, 0x8]
	lsls r0, 5
	adds r0, r7, r0
	adds r0, 0xB2
	ldrh r0, [r0]
	strh r0, [r4]
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0x2
	bl SendBlock
	b _0802402E
_08023D2A:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	bne _08023D36
	b _08024034
_08023D36:
	b _08024004
_08023D38:
	bl GetBlockReceivedStatus
	ldr r2, =gUnknown_082F4448
	ldrb r3, [r7, 0x9]
	subs r1, r3, 0x2
	adds r1, r2
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r1]
	cmp r0, r1
	beq _08023D50
	b _08024034
_08023D50:
	movs r0, 0
	mov r8, r0
	adds r4, r7, 0
	adds r4, 0x42
	cmp r8, r3
	bcs _08023D7E
	ldr r2, =gBlockRecvBuffer
_08023D5E:
	mov r3, r8
	lsls r1, r3, 5
	adds r1, r7, r1
	lsls r0, r3, 8
	adds r0, r2
	ldrh r0, [r0]
	adds r1, 0xB2
	strh r0, [r1]
	mov r0, r8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldrb r6, [r7, 0x9]
	cmp r8, r6
	bcc _08023D5E
_08023D7E:
	movs r0, 0
	strh r0, [r7, 0x10]
	strh r0, [r4]
	bl ResetBlockReceivedFlags
	ldrb r0, [r7, 0x8]
	cmp r0, 0
	bne _08023D9C
	movs r0, 0x3
	b _08024032
	.pool
_08023D9C:
	movs r0, 0x6
	b _08024032
_08023DA0:
	adds r0, r7, 0
	adds r0, 0x68
	movs r1, 0
	movs r2, 0x30
	bl memset
	ldrh r1, [r7, 0x28]
	adds r0, r7, 0
	adds r0, 0x6C
	strh r1, [r0]
	movs r0, 0x18
	ldrsh r4, [r7, r0]
	ldrh r0, [r7, 0x28]
	movs r1, 0x3C
	bl __udivsi3
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl __divsi3
	adds r1, r7, 0
	adds r1, 0x6E
	strh r0, [r1]
	movs r1, 0x30
	ldrsh r0, [r7, r1]
	lsls r0, 8
	movs r4, 0xC8
	lsls r4, 6
	adds r1, r4, 0
	bl sub_8151574
	adds r2, r0, 0
	movs r3, 0x32
	ldrsh r1, [r7, r3]
	lsls r1, 8
	bl sub_81515FC
	adds r2, r0, r4
	asrs r2, 8
	movs r1, 0x7F
	adds r0, r2, 0
	ands r0, r1
	adds r1, r7, 0
	adds r1, 0x70
	strh r0, [r1]
	lsls r2, 8
	movs r1, 0xC8
	lsls r1, 7
	adds r0, r2, 0
	bl sub_81515FC
	adds r2, r0, 0
	ldrb r1, [r7, 0x9]
	ldr r0, [r7, 0x1C]
	muls r0, r1
	lsls r4, r0, 8
	adds r0, r4, 0
	adds r1, r2, 0
	bl sub_8151574
	adds r4, r0, 0
	asrs r0, r4, 8
	str r0, [r7, 0x68]
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x3
	bl __umodsi3
	adds r1, r7, 0
	adds r1, 0x8F
	strb r0, [r1]
	movs r6, 0
	mov r8, r6
	mov r9, r1
	ldrb r0, [r7, 0x9]
	cmp r8, r0
	bcc _08023E44
	b _0802402E
_08023E44:
	adds r0, r7, 0
	adds r0, 0x88
	add r0, r8
	mov r1, r8
	strb r1, [r0]
	adds r0, r7, 0
	adds r0, 0x90
	add r0, r8
	strb r1, [r0]
	mov r3, r8
	lsls r2, r3, 1
	adds r1, r7, 0
	adds r1, 0x74
	adds r1, r2
	lsls r0, r3, 5
	adds r3, r7, r0
	adds r5, r3, 0
	adds r5, 0xAE
	ldrh r0, [r5]
	strh r0, [r1]
	adds r1, r7, 0
	adds r1, 0x72
	ldrh r6, [r1]
	adds r0, r6
	strh r0, [r1]
	mov r1, r9
	ldrb r0, [r1]
	adds r6, r2, 0
	cmp r0, 0x1
	beq _08023EAE
	cmp r0, 0x1
	bgt _08023E8A
	cmp r0, 0
	beq _08023E90
	b _08023F04
_08023E8A:
	cmp r0, 0x2
	beq _08023ECC
	b _08023F04
_08023E90:
	ldrh r0, [r5]
	cmp r0, 0
	beq _08023ED2
	adds r0, r3, 0
	adds r0, 0xAC
	ldrh r2, [r0]
	lsls r2, 8
	adds r0, r2, 0
	movs r1, 0xC8
	lsls r1, 7
	bl sub_8151574
	adds r2, r0, 0
	ldrh r4, [r5]
	b _08023EFA
_08023EAE:
	ldrh r0, [r5]
	cmp r0, 0
	beq _08023ED2
	adds r0, r3, 0
	adds r0, 0xB0
	ldrh r2, [r0]
	lsls r2, 8
	adds r0, r2, 0
	movs r1, 0xC8
	lsls r1, 7
	bl sub_8151574
	adds r2, r0, 0
	ldrh r4, [r5]
	b _08023EFA
_08023ECC:
	ldrh r0, [r5]
	cmp r0, 0
	bne _08023ED6
_08023ED2:
	movs r4, 0
	b _08023F04
_08023ED6:
	adds r1, r3, 0
	adds r1, 0xB2
	ldrh r0, [r1]
	ldrh r2, [r7, 0x28]
	cmp r0, r2
	bcc _08023EE8
	movs r4, 0xC8
	lsls r4, 7
	b _08023F04
_08023EE8:
	ldrh r2, [r1]
	lsls r2, 8
	adds r0, r2, 0
	movs r1, 0xC8
	lsls r1, 7
	bl sub_8151574
	adds r2, r0, 0
	ldrh r4, [r7, 0x28]
_08023EFA:
	lsls r4, 8
	adds r1, r4, 0
	bl sub_81515FC
	adds r4, r0, 0
_08023F04:
	asrs r4, 4
	adds r0, r7, 0
	adds r0, 0x7E
	adds r0, r6
	strh r4, [r0]
	mov r0, r8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldrb r3, [r7, 0x9]
	cmp r8, r3
	bcc _08023E44
	b _0802402E
_08023F20:
	movs r6, 0
	mov r8, r6
	ldrb r0, [r7, 0x9]
	subs r0, 0x1
	adds r1, r7, 0
	adds r1, 0x68
	str r1, [sp, 0xC]
	cmp r8, r0
	bge _08023FC4
_08023F32:
	ldrb r0, [r7, 0x9]
	subs r0, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	mov r2, r8
	adds r2, 0x1
	str r2, [sp, 0x8]
	cmp r4, r8
	bls _08023FB4
	adds r3, r7, 0
	adds r3, 0x74
	str r3, [sp]
	adds r6, r7, 0
	adds r6, 0x88
	str r6, [sp, 0x4]
	movs r0, 0x90
	adds r0, r7
	mov r10, r0
	movs r1, 0x7E
	adds r1, r7
	mov r9, r1
_08023F5C:
	subs r2, r4, 0x1
	mov r12, r2
	lsls r6, r2, 1
	ldr r0, [sp]
	adds r3, r0, r6
	lsls r5, r4, 1
	adds r1, r0, r5
	ldrh r2, [r3]
	ldrh r0, [r1]
	cmp r2, r0
	bcs _08023F86
	ldrh r0, [r1]
	strh r2, [r1]
	strh r0, [r3]
	ldr r1, [sp, 0x4]
	adds r2, r1, r4
	ldrb r3, [r2]
	add r1, r12
	ldrb r0, [r1]
	strb r0, [r2]
	strb r3, [r1]
_08023F86:
	mov r2, r9
	adds r3, r2, r6
	adds r1, r2, r5
	ldrh r2, [r3]
	ldrh r6, [r1]
	cmp r2, r6
	bcs _08023FAA
	ldrh r0, [r1]
	strh r2, [r1]
	strh r0, [r3]
	mov r0, r10
	adds r2, r0, r4
	ldrb r3, [r2]
	mov r1, r10
	add r1, r12
	ldrb r0, [r1]
	strb r0, [r2]
	strb r3, [r1]
_08023FAA:
	mov r1, r12
	lsls r0, r1, 24
	lsrs r4, r0, 24
	cmp r4, r8
	bhi _08023F5C
_08023FB4:
	ldr r2, [sp, 0x8]
	lsls r0, r2, 24
	lsrs r0, 24
	mov r8, r0
	ldrb r0, [r7, 0x9]
	subs r0, 0x1
	cmp r8, r0
	blt _08023F32
_08023FC4:
	movs r0, 0
	ldr r1, [sp, 0xC]
	movs r2, 0x30
	bl SendBlock
	b _0802402E
_08023FD0:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08024034
	b _08024004
_08023FDC:
	bl GetBlockReceivedStatus
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08024034
	adds r4, r7, 0
	adds r4, 0x68
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x30
	bl memset
	ldr r1, =gBlockRecvBuffer
	adds r0, r4, 0
	movs r2, 0x30
	bl memcpy
	bl ResetBlockReceivedFlags
_08024004:
	movs r0, 0
	strh r0, [r7, 0x10]
	b _0802402E
	.pool
_08024010:
	bl sub_8020E58
	movs r0, 0x12
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r0, 0
	movs r1, 0xB
	strh r1, [r7, 0x12]
	strb r0, [r7, 0xC]
	adds r1, r7, 0
	adds r1, 0x24
	strb r0, [r1]
	b _08024034
_0802402E:
	ldrb r0, [r7, 0xC]
	adds r0, 0x1
_08024032:
	strb r0, [r7, 0xC]
_08024034:
	movs r0, 0
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8023CAC

	thumb_func_start sub_8024048
sub_8024048: @ 8024048
	push {r4-r6,lr}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	ldrb r0, [r5, 0xC]
	cmp r0, 0x4
	bhi _08024124
	lsls r0, 2
	ldr r1, =_08024064
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08024064:
	.4byte _08024078
	.4byte _0802408A
	.4byte _0802409C
	.4byte _080240CC
	.4byte _080240DC
_08024078:
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	adds r0, r5, 0
	bl sub_8022070
	cmp r0, 0
	bne _08024124
	b _0802412A
_0802408A:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	movs r0, 0x1E
	strb r0, [r1]
	b _08024124
_0802409C:
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	ldrb r0, [r1]
	cmp r0, 0
	beq _080240AE
	subs r0, 0x1
	strb r0, [r1]
	b _0802412A
_080240AE:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0802412A
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_802222C
	b _08024124
	.pool
_080240CC:
	ldrh r0, [r5, 0x12]
	cmp r0, 0xC
	bhi _08024124
	adds r0, 0x1
	movs r1, 0
	strh r0, [r5, 0x12]
	strb r1, [r5, 0xC]
	b _0802412A
_080240DC:
	ldr r0, =gStringVar1
	ldr r1, [r5, 0x1C]
	movs r2, 0
	movs r3, 0x6
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar2
	bl sub_80247BC
	adds r1, r0, 0
	adds r0, r4, 0
	movs r2, 0
	movs r3, 0x6
	bl ConvertIntToDecimalStringN
	movs r4, 0
	str r4, [sp]
	adds r0, r6, 0
	movs r1, 0x2
	movs r2, 0x3
	movs r3, 0
	bl sub_8024644
	movs r0, 0x13
	strb r0, [r5, 0xE]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	strb r4, [r5, 0xC]
	b _0802412A
	.pool
_08024124:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_0802412A:
	movs r0, 0
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8024048

	thumb_func_start sub_8024134
sub_8024134: @ 8024134
	push {r4,r5,lr}
	sub sp, 0x10
	adds r5, r0, 0
	adds r4, r1, 0
	ldrb r0, [r5, 0xC]
	cmp r0, 0x4
	bhi _08024218
	lsls r0, 2
	ldr r1, =_08024150
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08024150:
	.4byte _08024164
	.4byte _080241A0
	.4byte _080241A6
	.4byte _080241F0
	.4byte _08024204
_08024164:
	ldrh r1, [r5, 0x28]
	ldr r0, =0x00008c9f
	cmp r1, r0
	bls _08024176
	movs r1, 0x9C
	lsls r1, 1
	adds r0, r5, r1
	bl sub_8022554
_08024176:
	movs r0, 0x1
	str r0, [sp]
	adds r0, r4, 0
	movs r1, 0x8
	movs r2, 0
	movs r3, 0
	bl sub_8024644
	movs r4, 0
	movs r0, 0x13
	strb r0, [r5, 0xE]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	strb r4, [r5, 0xC]
	b _0802421E
	.pool
_080241A0:
	bl sub_8010434
	b _08024218
_080241A6:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0802421E
	movs r0, 0
	movs r1, 0
	bl DrawDialogueFrame
	ldr r2, =gText_SavingDontTurnOffPower
	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 AddTextPrinterParameterized2
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, =sub_8153688
	movs r1, 0
	bl CreateTask
	b _08024218
	.pool
_080241F0:
	ldr r0, =sub_8153688
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	beq _08024218
	b _0802421E
	.pool
_08024204:
	movs r0, 0x14
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r1, 0
	movs r0, 0xF
	strh r0, [r5, 0x12]
	strb r1, [r5, 0xC]
	b _0802421E
_08024218:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_0802421E:
	movs r0, 0
	add sp, 0x10
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8024134

	thumb_func_start sub_8024228
sub_8024228: @ 8024228
	push {r4-r6,lr}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	ldrb r0, [r5, 0xC]
	cmp r0, 0x1
	beq _0802426A
	cmp r0, 0x1
	bgt _08024240
	cmp r0, 0
	beq _08024246
	b _080242D0
_08024240:
	cmp r0, 0x2
	beq _08024270
	b _080242D0
_08024246:
	movs r0, 0x1
	str r0, [sp]
	adds r0, r6, 0
	movs r1, 0x4
	movs r2, 0
	movs r3, 0
	bl sub_8024644
	movs r0, 0x14
	strb r0, [r5, 0xE]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r0, 0
	strb r0, [r5, 0xC]
	b _080242D8
_0802426A:
	bl DisplayYesNoMenuDefaultYes
	b _080242D0
_08024270:
	bl Menu_ProcessInputNoWrapClearOnChoose
	lsls r0, 24
	asrs r4, r0, 24
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _080242D6
	adds r0, r5, 0
	adds r0, 0x42
	movs r1, 0
	movs r2, 0xC
	bl memset
	cmp r4, 0
	bne _080242A2
	bl HasAtLeastOneBerry
	lsls r0, 24
	cmp r0, 0
	beq _0802429E
	strh r4, [r5, 0x14]
	b _080242A6
_0802429E:
	movs r0, 0x3
	b _080242A4
_080242A2:
	movs r0, 0x1
_080242A4:
	strh r0, [r5, 0x14]
_080242A6:
	movs r0, 0
	movs r1, 0x1
	bl ClearDialogWindowAndFrame
	movs r4, 0
	str r4, [sp]
	adds r0, r6, 0
	movs r1, 0x8
	movs r2, 0
	movs r3, 0
	bl sub_8024644
	movs r0, 0x15
	strb r0, [r5, 0xE]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	strb r4, [r5, 0xC]
	b _080242D6
_080242D0:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_080242D6:
	movs r0, 0
_080242D8:
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8024228

	thumb_func_start sub_80242E0
sub_80242E0: @ 80242E0
	push {r4-r7,lr}
	adds r4, r0, 0
	movs r5, 0
	ldrb r0, [r4, 0xC]
	cmp r0, 0x1
	beq _08024306
	cmp r0, 0x1
	bgt _080242F6
	cmp r0, 0
	beq _08024300
	b _080243AC
_080242F6:
	cmp r0, 0x2
	beq _08024328
	cmp r0, 0x3
	beq _08024336
	b _080243AC
_08024300:
	bl sub_8010434
	b _080243AC
_08024306:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _080243B2
	ldrh r0, [r4, 0x14]
	adds r1, r4, 0
	adds r1, 0x42
	strh r0, [r1]
	adds r0, r4, 0
	adds r0, 0x4E
	strh r5, [r0]
	movs r0, 0
	movs r2, 0x2
	bl SendBlock
	b _080243AC
_08024328:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _080243B2
	strh r5, [r4, 0x10]
	b _080243AC
_08024336:
	bl GetBlockReceivedStatus
	ldr r2, =gUnknown_082F4448
	ldrb r3, [r4, 0x9]
	subs r1, r3, 0x2
	adds r1, r2
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r1]
	cmp r0, r1
	bne _080243B2
	adds r7, r4, 0
	adds r7, 0x42
	adds r6, r4, 0
	adds r6, 0x4E
	cmp r5, r3
	bcs _08024374
	adds r1, r6, 0
	ldr r2, =gBlockRecvBuffer
_0802435C:
	lsls r0, r5, 8
	adds r0, r2
	ldrh r0, [r0]
	ldrh r3, [r1]
	adds r0, r3
	strh r0, [r1]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldrb r0, [r4, 0x9]
	cmp r5, r0
	bcc _0802435C
_08024374:
	ldrh r0, [r6]
	cmp r0, 0
	beq _08024390
	movs r0, 0x17
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	b _0802439A
	.pool
_08024390:
	movs r0, 0x16
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
_0802439A:
	bl ResetBlockReceivedFlags
	movs r1, 0
	movs r0, 0
	strh r0, [r7]
	strh r0, [r6]
	strh r0, [r4, 0x10]
	strb r1, [r4, 0xC]
	b _080243B4
_080243AC:
	ldrb r0, [r4, 0xC]
	adds r0, 0x1
	strb r0, [r4, 0xC]
_080243B2:
	movs r0, 0
_080243B4:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_80242E0

	thumb_func_start sub_80243BC
sub_80243BC: @ 80243BC
	push {r4,r5,lr}
	sub sp, 0x4
	adds r5, r0, 0
	ldrb r4, [r5, 0xC]
	cmp r4, 0x1
	beq _080243EA
	cmp r4, 0x1
	bgt _080243D2
	cmp r4, 0
	beq _080243DC
	b _08024434
_080243D2:
	cmp r4, 0x2
	beq _080243F6
	cmp r4, 0x3
	beq _0802441A
	b _08024434
_080243DC:
	movs r0, 0x1
	negs r0, r0
	str r4, [sp]
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x10
	b _08024410
_080243EA:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	beq _08024434
	b _0802443A
_080243F6:
	movs r0, 0
	movs r1, 0x1
	bl ClearDialogWindowAndFrame
	adds r0, r5, 0
	bl sub_8021488
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
_08024410:
	bl BeginNormalPaletteFade
	bl UpdatePaletteFade
	b _08024434
_0802441A:
	bl UpdatePaletteFade
	lsls r0, 24
	cmp r0, 0
	bne _0802443A
	movs r0, 0x7
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	movs r0, 0
	strh r4, [r5, 0x12]
	b _08024438
_08024434:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
_08024438:
	strb r0, [r5, 0xC]
_0802443A:
	movs r0, 0
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_80243BC

	thumb_func_start sub_8024444
sub_8024444: @ 8024444
	push {r4,r5,lr}
	sub sp, 0x10
	adds r5, r0, 0
	ldrb r4, [r5, 0xC]
	cmp r4, 0x1
	beq _080244BC
	cmp r4, 0x1
	bgt _0802445A
	cmp r4, 0
	beq _08024460
	b _080244F6
_0802445A:
	cmp r4, 0x2
	beq _080244D4
	b _080244F6
_08024460:
	movs r0, 0
	movs r1, 0
	bl DrawDialogueFrame
	ldrh r1, [r5, 0x14]
	cmp r1, 0x3
	bne _08024490
	ldr r0, =gUnknown_082F32A4
	ldr r2, [r0, 0x14]
	ldrb r3, [r5, 0xB]
	str r4, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	bl AddTextPrinterParameterized2
	b _080244AC
	.pool
_08024490:
	ldr r0, =gUnknown_082F32A4
	ldr r2, [r0, 0x18]
	ldrb r3, [r5, 0xB]
	str r4, [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
	bl AddTextPrinterParameterized2
_080244AC:
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	b _080244F6
	.pool
_080244BC:
	movs r0, 0
	bl IsTextPrinterActive
	lsls r0, 16
	cmp r0, 0
	bne _080244FC
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	movs r0, 0x78
	strb r0, [r1]
	b _080244F6
_080244D4:
	movs r0, 0x9C
	lsls r0, 1
	adds r1, r5, r0
	ldrb r0, [r1]
	adds r4, r0, 0
	cmp r4, 0
	beq _080244E8
	subs r0, 0x1
	strb r0, [r1]
	b _080244FC
_080244E8:
	movs r0, 0x18
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	strb r4, [r5, 0xC]
	b _080244FC
_080244F6:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_080244FC:
	movs r0, 0
	add sp, 0x10
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8024444

	thumb_func_start sub_8024508
sub_8024508: @ 8024508
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrb r4, [r5, 0xC]
	cmp r4, 0x1
	beq _08024528
	cmp r4, 0x1
	bgt _0802451C
	cmp r4, 0
	beq _08024522
	b _08024558
_0802451C:
	cmp r4, 0x2
	beq _08024538
	b _08024558
_08024522:
	bl sub_8010434
	b _08024558
_08024528:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0802455E
	bl sub_800AC34
	b _08024558
_08024538:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0802455E
	movs r0, 0x19
	strb r0, [r5, 0xE]
	movs r0, 0x5
	movs r1, 0x1
	movs r2, 0
	bl sub_8022BEC
	strb r4, [r5, 0xC]
	b _0802455E
	.pool
_08024558:
	ldrb r0, [r5, 0xC]
	adds r0, 0x1
	strb r0, [r5, 0xC]
_0802455E:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8024508

	thumb_func_start sub_8024568
sub_8024568: @ 8024568
	push {lr}
	movs r0, 0
	bl sub_8020C0C
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_8024568

	thumb_func_start sub_8024578
sub_8024578: @ 8024578
	push {r4-r6,lr}
	adds r4, r0, 0
	movs r5, 0
	movs r0, 0x33
	bl IncrementGameStat
	strb r5, [r4, 0xD]
	movs r1, 0
	strh r5, [r4, 0x10]
	movs r0, 0x2
	strh r0, [r4, 0x12]
	strh r5, [r4, 0x14]
	str r5, [r4, 0x1C]
	strh r5, [r4, 0x18]
	strh r5, [r4, 0x1A]
	str r5, [r4, 0x20]
	adds r0, r4, 0
	adds r0, 0x24
	strb r1, [r0]
	adds r1, r4, 0
	adds r1, 0x25
	movs r0, 0
	strb r0, [r1]
	strh r5, [r4, 0x26]
	strh r5, [r4, 0x28]
	strh r5, [r4, 0x2E]
	ldr r0, =0x0000ffff
	strh r0, [r4, 0x32]
	strh r5, [r4, 0x30]
	strh r5, [r4, 0x34]
	movs r6, 0
	movs r3, 0
_080245B8:
	lsls r0, r5, 5
	adds r2, r4, r0
	adds r1, r2, 0
	adds r1, 0xA4
	ldr r0, =0x0000ffff
	strh r0, [r1]
	adds r0, r2, 0
	adds r0, 0xA6
	strh r3, [r0]
	adds r0, 0x2
	strh r3, [r0]
	adds r1, 0x6
	movs r0, 0x1
	strh r0, [r1]
	adds r0, r2, 0
	adds r0, 0xAC
	strh r3, [r0]
	adds r0, 0x2
	strh r3, [r0]
	adds r0, 0x2
	strh r3, [r0]
	adds r0, 0x2
	strh r3, [r0]
	adds r0, 0x2
	strb r6, [r0]
	adds r0, 0x1
	strb r6, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x4
	bls _080245B8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8024578

	thumb_func_start sub_8024604
sub_8024604: @ 8024604
	push {r4-r6,lr}
	sub sp, 0x8
	str r2, [sp, 0x4]
	ldr r5, [sp, 0x18]
	ldr r6, [sp, 0x1C]
	ldr r4, [sp, 0x20]
	mov r2, sp
	strh r4, [r2]
	add r4, sp, 0x4
	ldrb r2, [r4]
	strb r2, [r0]
	ldrb r2, [r4, 0x1]
	strb r2, [r0, 0x1]
	ldrb r2, [r4, 0x2]
	strb r2, [r0, 0x2]
	ldrb r2, [r4, 0x3]
	strb r2, [r0, 0x3]
	strb r3, [r0, 0x4]
	strb r5, [r0, 0x5]
	strb r6, [r0, 0x6]
	mov r2, sp
	ldrb r2, [r2]
	strb r2, [r0, 0x7]
	mov r2, sp
	ldrb r2, [r2, 0x1]
	strb r2, [r0, 0x8]
	strb r1, [r0, 0x9]
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8024604

	thumb_func_start sub_8024644
sub_8024644: @ 8024644
	push {r4,r5,lr}
	sub sp, 0x4
	ldr r5, [sp, 0x10]
	mov r4, sp
	strh r3, [r4]
	strb r1, [r0]
	strb r2, [r0, 0x1]
	mov r1, sp
	ldrb r1, [r1]
	strb r1, [r0, 0x2]
	mov r1, sp
	ldrb r1, [r1, 0x1]
	strb r1, [r0, 0x3]
	strb r5, [r0, 0x4]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8024644

	thumb_func_start sub_8024668
sub_8024668: @ 8024668
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	adds r1, 0xAC
	ldr r0, [r0]
	ldr r1, [r1]
	eors r0, r1
	bx lr
	.pool
	thumb_func_end sub_8024668

	thumb_func_start SetBerryPowder
SetBerryPowder: @ 802467C
	ldr r2, =gSaveBlock2Ptr
	ldr r2, [r2]
	adds r2, 0xAC
	ldr r2, [r2]
	eors r2, r1
	str r2, [r0]
	bx lr
	.pool
	thumb_func_end SetBerryPowder

	thumb_func_start ApplyNewEncryptionKeyToBerryPowder
ApplyNewEncryptionKeyToBerryPowder: @ 8024690
	push {lr}
	adds r1, r0, 0
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r2, 0xFA
	lsls r2, 1
	adds r0, r2
	bl ApplyNewEncryptionKeyToWord
	pop {r0}
	bx r0
	.pool
	thumb_func_end ApplyNewEncryptionKeyToBerryPowder

	thumb_func_start sub_80246AC
sub_80246AC: @ 80246AC
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xFA
	lsls r1, 1
	adds r0, r1
	bl sub_8024668
	cmp r0, r4
	bcc _080246CC
	movs r0, 0x1
	b _080246CE
	.pool
_080246CC:
	movs r0, 0
_080246CE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_80246AC

	thumb_func_start sub_80246D4
sub_80246D4: @ 80246D4
	push {lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xFA
	lsls r1, 1
	adds r0, r1
	bl sub_8024668
	ldr r1, =gSpecialVar_0x8004
	ldrh r1, [r1]
	cmp r0, r1
	bcc _080246F8
	movs r0, 0x1
	b _080246FA
	.pool
_080246F8:
	movs r0, 0
_080246FA:
	pop {r1}
	bx r1
	thumb_func_end sub_80246D4

	thumb_func_start sub_8024700
sub_8024700: @ 8024700
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xFA
	lsls r1, 1
	adds r5, r0, r1
	adds r0, r5, 0
	bl sub_8024668
	adds r1, r0, r4
	ldr r2, =0x0001869f @ Note to decompiler: See UNKNOWN_OFFSET
	cmp r1, r2
	bhi _08024730
	adds r0, r5, 0
	bl SetBerryPowder
	movs r0, 0x1
	b _0802473A
	.pool
_08024730:
	adds r0, r5, 0
	adds r1, r2, 0
	bl SetBerryPowder
	movs r0, 0
_0802473A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8024700

	thumb_func_start sub_8024740
sub_8024740: @ 8024740
	push {r4,r5,lr}
	adds r5, r0, 0
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xFA
	lsls r1, 1
	adds r4, r0, r1
	adds r0, r5, 0
	bl sub_80246AC
	lsls r0, 24
	cmp r0, 0
	beq _08024774
	adds r0, r4, 0
	bl sub_8024668
	adds r1, r0, 0
	subs r1, r5
	adds r0, r4, 0
	bl SetBerryPowder
	movs r0, 0x1
	b _08024776
	.pool
_08024774:
	movs r0, 0
_08024776:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8024740

	thumb_func_start sub_802477C
sub_802477C: @ 802477C
	push {r4,r5,lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xFA
	lsls r1, 1
	adds r4, r0, r1
	ldr r5, =gSpecialVar_0x8004
	ldrh r0, [r5]
	bl sub_80246AC
	lsls r0, 24
	cmp r0, 0
	beq _080247B4
	adds r0, r4, 0
	bl sub_8024668
	adds r1, r0, 0
	ldrh r0, [r5]
	subs r1, r0
	adds r0, r4, 0
	bl SetBerryPowder
	movs r0, 0x1
	b _080247B6
	.pool
_080247B4:
	movs r0, 0
_080247B6:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802477C

	thumb_func_start sub_80247BC
sub_80247BC: @ 80247BC
	push {lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xFA
	lsls r1, 1
	adds r0, r1
	bl sub_8024668
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_80247BC

	thumb_func_start sub_80247D4
sub_80247D4: @ 80247D4
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0xC
	adds r6, r0, 0
	mov r8, r2
	adds r4, r3, 0
	ldr r5, [sp, 0x24]
	lsls r6, 24
	lsrs r6, 24
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	ldr r0, =gStringVar1
	mov r9, r0
	movs r2, 0x1
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	str r4, [sp]
	str r5, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	mov r2, r9
	mov r3, r8
	bl AddTextPrinterParameterized
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80247D4

	thumb_func_start sub_802482C
sub_802482C: @ 802482C
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0xC
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r2, 0
	mov r8, r3
	lsls r6, 24
	lsrs r6, 24
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 24
	lsrs r5, 24
	adds r0, r6, 0
	movs r1, 0
	adds r2, r4, 0
	adds r3, r5, 0
	bl DrawStdFrameWithCustomTileAndPalette
	ldr r2, =gText_Powder
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r4, 0
	str r4, [sp, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	str r4, [sp]
	adds r0, r6, 0
	mov r1, r8
	movs r2, 0x1A
	movs r3, 0x11
	bl sub_80247D4
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802482C

	thumb_func_start sub_802488C
sub_802488C: @ 802488C
	push {lr}
	sub sp, 0x4
	bl sub_80247BC
	adds r1, r0, 0
	ldr r0, =gUnknown_02022C94
	ldrb r0, [r0]
	movs r2, 0
	str r2, [sp]
	movs r2, 0x1A
	movs r3, 0x11
	bl sub_80247D4
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802488C

	thumb_func_start sub_80248B0
sub_80248B0: @ 80248B0
	push {r4,r5,lr}
	sub sp, 0x18
	movs r0, 0x7
	str r0, [sp]
	movs r0, 0x4
	str r0, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0x1C
	str r0, [sp, 0xC]
	add r0, sp, 0x10
	movs r1, 0
	movs r2, 0x1
	movs r3, 0x1
	bl SetWindowTemplateFields
	ldr r4, =gUnknown_02022C94
	add r0, sp, 0x10
	bl AddWindow
	strb r0, [r4]
	ldrb r0, [r4]
	movs r1, 0
	bl FillWindowPixelBuffer
	ldrb r0, [r4]
	bl PutWindowTilemap
	ldrb r0, [r4]
	ldr r5, =0x0000021d
	adds r1, r5, 0
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx_
	ldrb r4, [r4]
	bl sub_80247BC
	adds r3, r0, 0
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0xD
	bl sub_802482C
	add sp, 0x18
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80248B0

	thumb_func_start sub_8024918
sub_8024918: @ 8024918
	push {r4,lr}
	ldr r4, =gUnknown_02022C94
	ldrb r0, [r4]
	bl ClearWindowTilemap
	ldrb r0, [r4]
	movs r1, 0x1
	bl ClearStdWindowAndFrameToTransparent
	ldrb r0, [r4]
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8024918

	thumb_func_start sub_802493C
sub_802493C: @ 802493C
	push {r4-r6,lr}
	adds r5, r1, 0
	lsls r0, 16
	lsrs r6, r0, 16
	ldr r1, =gUnknown_03000DB0
	movs r0, 0
	str r0, [r1]
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _08024A10
	ldr r4, =gUnknown_02022C98
	ldr r0, =0x00003330
	bl AllocZeroed
	str r0, [r4]
	cmp r0, 0
	beq _08024A10
	bl sub_8024A1C
	ldr r0, [r4]
	bl sub_8024A30
	ldr r0, [r4]
	str r5, [r0]
	bl GetMultiplayerId
	ldr r1, [r4]
	adds r1, 0x28
	strb r0, [r1]
	ldr r1, [r4]
	ldr r2, =0x000032cc
	adds r0, r1, r2
	adds r2, r1, 0
	adds r2, 0x28
	ldrb r3, [r2]
	lsls r2, r3, 4
	subs r2, r3
	lsls r2, 2
	adds r1, r2
	ldr r2, =0x000031a0
	adds r1, r2
	movs r2, 0x3C
	bl memcpy
	ldr r0, [r4]
	adds r1, r0, 0
	adds r1, 0x28
	ldrb r1, [r1]
	lsls r1, 2
	ldr r2, =0x0000318c
	adds r1, r2
	adds r0, r1
	movs r1, 0x64
	muls r1, r6
	ldr r2, =gPlayerParty
	adds r1, r2
	bl sub_80261F8
	ldr r0, =sub_8024BC8
	movs r1, 0x1
	bl CreateTask
	ldr r0, =sub_80261CC
	bl SetMainCallback2
	bl sub_80273F0
	ldr r2, [r4]
	adds r0, r2, 0
	adds r0, 0x24
	ldrb r0, [r0]
	adds r1, r2, 0
	adds r1, 0x44
	adds r2, 0x48
	bl sub_8026B5C
	bl StopMapMusic
	ldr r0, =0x0000021e
	bl PlayNewMapMusic
	b _08024A16
	.pool
_08024A10:
	adds r0, r5, 0
	bl SetMainCallback2
_08024A16:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_802493C

	thumb_func_start sub_8024A1C
sub_8024A1C: @ 8024A1C
	push {lr}
	bl ResetTasks
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	pop {r0}
	bx r0
	thumb_func_end sub_8024A1C

	thumb_func_start sub_8024A30
sub_8024A30: @ 8024A30
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x28
	adds r2, r0, 0
	movs r0, 0
	strb r0, [r2, 0xC]
	strb r0, [r2, 0x10]
	strb r0, [r2, 0x14]
	strb r0, [r2, 0x18]
	strb r0, [r2, 0x1C]
	movs r3, 0x8E
	lsls r3, 1
	adds r1, r2, r3
	str r0, [r1]
	movs r7, 0x90
	lsls r7, 1
	adds r1, r2, r7
	str r0, [r1]
	adds r1, r2, 0
	adds r1, 0x30
	strb r0, [r1]
	adds r1, 0x10
	strb r0, [r1]
	subs r1, 0x4
	strb r0, [r1]
	adds r3, 0x10
	adds r1, r2, r3
	str r0, [r1]
	movs r5, 0
	adds r1, r2, 0
	adds r1, 0x98
	movs r3, 0
_08024A76:
	adds r0, r1, r5
	strb r3, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _08024A76
	movs r5, 0
	adds r7, r2, 0
	adds r7, 0xA8
	str r7, [sp]
	adds r0, r2, 0
	adds r0, 0xB0
	str r0, [sp, 0xC]
	movs r1, 0x4A
	adds r1, r2
	mov r10, r1
	movs r3, 0x4C
	adds r3, r2
	mov r9, r3
	movs r7, 0x4E
	adds r7, r2
	mov r12, r7
	subs r0, 0x60
	str r0, [sp, 0x24]
	adds r6, r2, 0
	adds r6, 0x54
	adds r1, r2, 0
	adds r1, 0xD0
	str r1, [sp, 0x1C]
	adds r3, r2, 0
	adds r3, 0xDC
	str r3, [sp, 0x20]
	adds r7, r2, 0
	adds r7, 0xC4
	str r7, [sp, 0x14]
	adds r0, 0xA4
	str r0, [sp, 0x4]
	adds r1, 0x25
	str r1, [sp, 0x8]
	subs r3, 0xBC
	str r3, [sp, 0x10]
	movs r7, 0x24
	adds r7, r2
	mov r8, r7
	subs r0, 0xC0
	str r0, [sp, 0x18]
	movs r3, 0
	movs r1, 0x86
	lsls r1, 1
	adds r4, r2, r1
	movs r7, 0x98
	lsls r7, 1
	adds r2, r7
_08024AE2:
	ldr r1, [sp]
	adds r0, r1, r5
	strb r3, [r0]
	ldr r7, [sp, 0xC]
	adds r0, r7, r5
	strb r3, [r0]
	lsls r0, r5, 1
	adds r0, r5
	lsls r0, 2
	mov r7, r10
	adds r1, r7, r0
	strh r3, [r1]
	mov r7, r9
	adds r1, r7, r0
	strh r3, [r1]
	mov r7, r12
	adds r1, r7, r0
	strh r3, [r1]
	ldr r7, [sp, 0x24]
	adds r1, r7, r0
	strh r3, [r1]
	adds r0, r6, r0
	strh r3, [r0]
	adds r0, r4, r5
	strb r3, [r0]
	lsls r0, r5, 2
	adds r0, r2, r0
	str r3, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x4
	bls _08024AE2
	movs r5, 0
	movs r3, 0
	movs r4, 0xFF
	ldr r6, [sp, 0x1C]
_08024B2C:
	adds r0, r6, r5
	strb r3, [r0]
	ldr r1, [sp, 0x20]
	adds r0, r1, r5
	strb r3, [r0]
	ldr r7, [sp, 0x14]
	adds r0, r7, r5
	strb r3, [r0]
	lsls r1, r5, 1
	ldr r0, [sp, 0x4]
	adds r2, r0, r1
	ldrb r0, [r2]
	orrs r0, r4
	strb r0, [r2]
	ldr r7, [sp, 0x8]
	adds r1, r7, r1
	ldrb r0, [r1]
	orrs r0, r4
	strb r0, [r1]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0xA
	bls _08024B2C
	bl GetMultiplayerId
	movs r1, 0
	lsls r0, 24
	cmp r0, 0
	bne _08024B6A
	movs r1, 0x1
_08024B6A:
	ldr r0, [sp, 0x10]
	strb r1, [r0]
	bl GetLinkPlayerCount
	mov r1, r8
	strb r0, [r1]
	bl GetMultiplayerId
	ldr r3, [sp, 0x18]
	strb r0, [r3]
	movs r5, 0x1
	mov r7, r8
	ldrb r7, [r7]
	cmp r5, r7
	bcs _08024BB6
	ldr r7, [sp, 0x18]
	mov r6, r8
_08024B8C:
	adds r4, r7, r5
	subs r0, r5, 0x1
	adds r0, r7, r0
	ldrb r0, [r0]
	adds r0, 0x1
	strb r0, [r4]
	ldrb r2, [r4]
	ldrb r1, [r6]
	subs r0, r1, 0x1
	cmp r2, r0
	ble _08024BAA
	adds r0, r2, 0
	bl __umodsi3
	strb r0, [r4]
_08024BAA:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldrb r0, [r6]
	cmp r5, r0
	bcc _08024B8C
_08024BB6:
	add sp, 0x28
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8024A30

	thumb_func_start sub_8024BC8
sub_8024BC8: @ 8024BC8
	push {r4,r5,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r1, r0, 24
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	ldrb r0, [r0, 0xC]
	cmp r0, 0x7
	bls _08024BDC
	b _08024D34
_08024BDC:
	lsls r0, 2
	ldr r1, =_08024BF0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08024BF0:
	.4byte _08024C10
	.4byte _08024C24
	.4byte _08024C4C
	.4byte _08024C5A
	.4byte _08024C80
	.4byte _08024CD4
	.4byte _08024CE6
	.4byte _08024D10
_08024C10:
	movs r0, 0
	bl SetVBlankCallback
	ldr r0, =sub_8025910
	movs r1, 0x4
	bl sub_802620C
	b _08024D20
	.pool
_08024C24:
	ldr r0, =sub_8025910
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	beq _08024C32
	b _08024D40
_08024C32:
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	movs r1, 0xB0
	lsls r1, 1
	adds r0, r1
	bl sub_8029274
	ldr r1, [r4]
	b _08024D24
	.pool
_08024C4C:
	bl sub_802A770
	cmp r0, 0
	bne _08024D40
	bl sub_8010434
	b _08024D20
_08024C5A:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08024D40
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _08024D20
	bl sub_800E0E8
	movs r0, 0
	movs r1, 0
	bl CreateWirelessStatusIndicatorSprite
	b _08024D20
	.pool
_08024C80:
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r5, [r0]
	bl sub_80283A8
	movs r4, 0
	cmp r4, r5
	bcs _08024CBA
_08024C92:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x34
	adds r0, r4
	ldrb r2, [r0]
	lsls r0, r2, 2
	ldr r3, =0x0000318c
	adds r0, r3
	adds r0, r1, r0
	adds r1, 0x24
	ldrb r3, [r1]
	adds r1, r4, 0
	bl sub_8028408
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08024C92
_08024CBA:
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	adds r0, 0x24
	ldrb r1, [r0]
	movs r0, 0
	bl sub_802868C
	ldr r1, [r4]
	b _08024D24
	.pool
_08024CD4:
	bl sub_8028A34
	bl sub_8028A88
	bl sub_8028D44
	bl sub_8028734
	b _08024D20
_08024CE6:
	movs r4, 0x1
	negs r4, r4
	adds r0, r4, 0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	str r0, [sp]
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r0, =sub_80261E4
	bl SetVBlankCallback
	b _08024D20
	.pool
_08024D10:
	bl UpdatePaletteFade
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08024D40
_08024D20:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
_08024D24:
	ldrb r0, [r1, 0xC]
	adds r0, 0x1
	strb r0, [r1, 0xC]
	b _08024D40
	.pool
_08024D34:
	adds r0, r1, 0
	bl DestroyTask
	ldr r0, =sub_802589C
	bl sub_802621C
_08024D40:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8024BC8

	thumb_func_start sub_8024D4C
sub_8024D4C: @ 8024D4C
	push {lr}
	bl sub_8025D04
	ldr r1, =gUnknown_082F7AC4
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	ldrb r0, [r0, 0x18]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	ldr r0, =gUnknown_03000DB0
	ldr r0, [r0]
	cmp r0, 0
	bne _08024D70
	bl sub_8026AF4
_08024D70:
	bl sub_8025D50
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8024D4C

	thumb_func_start sub_8024D84
sub_8024D84: @ 8024D84
	push {lr}
	bl sub_8025E0C
	ldr r1, =gUnknown_082F7AF4
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	ldrb r0, [r0, 0x18]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	ldr r0, =gUnknown_03000DB0
	ldr r0, [r0]
	cmp r0, 0
	bne _08024DA8
	bl sub_8026B28
_08024DA8:
	bl sub_8025ED8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8024D84

	thumb_func_start sub_8024DBC
sub_8024DBC: @ 8024DBC
	push {r4,lr}
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	ldrb r0, [r0, 0x10]
	cmp r0, 0
	beq _08024DD4
	cmp r0, 0x1
	beq _08024DEA
	b _08024DF8
	.pool
_08024DD4:
	movs r0, 0x1
	bl sub_8028504
	movs r0, 0x1
	bl sub_80292E0
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _08024DF8
_08024DEA:
	bl sub_802A770
	cmp r0, 0
	bne _08024DF8
	movs r0, 0x1
	bl sub_8026240
_08024DF8:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8024DBC

	thumb_func_start sub_8024E00
sub_8024E00: @ 8024E00
	push {r4,lr}
	ldr r4, =gUnknown_02022C98
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	cmp r0, 0
	bne _08024E20
	bl sub_80262C0
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _08024E30
	.pool
_08024E20:
	movs r0, 0x8C
	lsls r0, 1
	adds r1, r0
	movs r0, 0x1
	str r0, [r1]
	movs r0, 0x2
	bl sub_8026240
_08024E30:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8024E00

	thumb_func_start sub_8024E38
sub_8024E38: @ 8024E38
	push {r4,lr}
	sub sp, 0x4
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	ldrb r0, [r0, 0x10]
	adds r4, r1, 0
	cmp r0, 0x5
	bhi _08024F08
	lsls r0, 2
	ldr r1, =_08024E5C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08024E5C:
	.4byte _08024E74
	.4byte _08024E90
	.4byte _08024EA0
	.4byte _08024EC4
	.4byte _08024ED8
	.4byte _08024EF8
_08024E74:
	movs r0, 0
	str r0, [sp]
	movs r0, 0x7
	movs r1, 0x8
	movs r2, 0x78
	movs r3, 0x50
	bl sub_802EB24
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08024EF0
	.pool
_08024E90:
	bl sub_8010434
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08024EF0
	.pool
_08024EA0:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08024F08
	ldr r2, =gUnknown_02022C98
	ldr r1, [r2]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	movs r3, 0
	strb r0, [r1, 0x10]
	ldr r0, [r2]
	adds r0, 0x30
	strb r3, [r0]
	b _08024F08
	.pool
_08024EC4:
	bl sub_802EB84
	cmp r0, 0
	bne _08024F08
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08024EF0
	.pool
_08024ED8:
	ldr r1, [r4]
	adds r1, 0x30
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bls _08024F08
	bl sub_8010434
	ldr r1, [r4]
_08024EF0:
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _08024F08
_08024EF8:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08024F08
	movs r0, 0x3
	bl sub_8026240
_08024F08:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8024E38

	thumb_func_start sub_8024F10
sub_8024F10: @ 8024F10
	push {lr}
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	ldrb r0, [r1, 0x10]
	cmp r0, 0
	bne _08024F2E
	movs r2, 0x8E
	lsls r2, 1
	adds r0, r1, r2
	ldr r0, [r0]
	cmp r0, 0
	beq _08024F2E
	movs r0, 0x4
	bl sub_8026240
_08024F2E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8024F10

	thumb_func_start sub_8024F38
sub_8024F38: @ 8024F38
	push {r4,lr}
	ldr r4, =gUnknown_02022C98
	ldr r2, [r4]
	ldrb r0, [r2, 0x10]
	cmp r0, 0
	bne _08024FF6
	adds r0, r2, 0
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bhi _08024FE8
	adds r0, r2, 0
	adds r0, 0xA8
	ldrb r0, [r0]
	cmp r0, 0
	bne _08024FEE
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _08024F88
	ldr r1, =0x000031cc
	adds r0, r2, r1
	ldrb r1, [r0]
	cmp r1, 0
	bne _08024FEE
	ldr r3, =0x000031d0
	adds r0, r2, r3
	strb r1, [r0]
	movs r0, 0x2
	b _08024FC2
	.pool
_08024F88:
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _08024FA8
	ldr r3, =0x000031cc
	adds r0, r2, r3
	ldrb r1, [r0]
	cmp r1, 0
	bne _08024FEE
	adds r3, 0x4
	adds r0, r2, r3
	strb r1, [r0]
	movs r0, 0x1
	b _08024FC2
	.pool
_08024FA8:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _08024FD4
	ldr r3, =0x000031cc
	adds r0, r2, r3
	ldrb r1, [r0]
	cmp r1, 0
	bne _08024FEE
	adds r3, 0x4
	adds r0, r2, r3
	strb r1, [r0]
	movs r0, 0x3
_08024FC2:
	bl sub_8027518
	ldr r1, [r4]
	ldr r2, =0x000031cc
	adds r1, r2
	strb r0, [r1]
	b _08024FEE
	.pool
_08024FD4:
	movs r0, 0
	bl sub_8027518
	ldr r1, [r4]
	ldr r3, =0x000031cc
	adds r1, r3
	strb r0, [r1]
	b _08024FEE
	.pool
_08024FE8:
	movs r0, 0xB
	bl sub_8026240
_08024FEE:
	bl sub_802671C
	bl sub_8025F48
_08024FF6:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8024F38

	thumb_func_start sub_8024FFC
sub_8024FFC: @ 8024FFC
	push {lr}
	ldr r0, =gUnknown_02022C98
	ldr r2, [r0]
	adds r0, r2, 0
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bhi _080250C4
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _0802504C
	adds r0, r2, 0
	adds r0, 0x28
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r0, r2, r0
	ldr r1, =0x000031cc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _080250CA
	ldr r3, =0x000032f8
	adds r1, r2, r3
	movs r0, 0x2
	strb r0, [r1]
	b _080250CA
	.pool
_0802504C:
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _08025080
	adds r0, r2, 0
	adds r0, 0x28
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r0, r2, r0
	ldr r1, =0x000031cc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _080250CA
	ldr r3, =0x000032f8
	adds r1, r2, r3
	movs r0, 0x1
	strb r0, [r1]
	b _080250CA
	.pool
_08025080:
	movs r0, 0x20
	ands r0, r1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	beq _080250B8
	adds r0, r2, 0
	adds r0, 0x28
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r0, r2, r0
	ldr r1, =0x000031cc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _080250CA
	ldr r3, =0x000032f8
	adds r1, r2, r3
	movs r0, 0x3
	strb r0, [r1]
	b _080250CA
	.pool
_080250B8:
	ldr r3, =0x000032f8
	adds r0, r2, r3
	strb r1, [r0]
	b _080250CA
	.pool
_080250C4:
	movs r0, 0xB
	bl sub_8026240
_080250CA:
	bl sub_8026044
	pop {r0}
	bx r0
	thumb_func_end sub_8024FFC

	thumb_func_start sub_80250D4
sub_80250D4: @ 80250D4
	push {r4,r5,lr}
	bl sub_802671C
	bl sub_8025F48
	bl sub_8026C50
	cmp r0, 0x1
	bne _080250F2
	bl sub_80272A4
	movs r0, 0x5
	bl sub_8026240
	b _08025150
_080250F2:
	ldr r0, =gUnknown_02022C98
	ldr r2, [r0]
	movs r1, 0x96
	lsls r1, 1
	adds r4, r2, r1
	movs r1, 0x1
	str r1, [r4]
	movs r3, 0x1
	adds r1, r2, 0
	adds r1, 0x24
	adds r5, r0, 0
	ldrb r1, [r1]
	cmp r3, r1
	bcs _08025150
	movs r1, 0x9A
	lsls r1, 1
	adds r0, r2, r1
	ldr r0, [r0]
	cmp r0, 0x1
	beq _08025124
	movs r0, 0
	str r0, [r4]
	b _08025150
	.pool
_08025124:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r2, [r5]
	adds r0, r2, 0
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r3, r0
	bcs _08025150
	lsls r0, r3, 2
	movs r4, 0x98
	lsls r4, 1
	adds r1, r2, r4
	adds r1, r0
	ldr r0, [r1]
	cmp r0, 0x1
	beq _08025124
	movs r0, 0x96
	lsls r0, 1
	adds r1, r2, r0
	movs r0, 0
	str r0, [r1]
_08025150:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_80250D4

	thumb_func_start sub_8025158
sub_8025158: @ 8025158
	push {lr}
	bl sub_8026044
	bl sub_8026C90
	cmp r0, 0x1
	bne _0802516C
	movs r0, 0x5
	bl sub_8026240
_0802516C:
	pop {r0}
	bx r0
	thumb_func_end sub_8025158

	thumb_func_start sub_8025170
sub_8025170: @ 8025170
	push {r4,lr}
	bl GetBlockReceivedStatus
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_800A9D8
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	beq _0802518C
	movs r0, 0
	b _08025192
_0802518C:
	bl ResetBlockReceivedFlags
	movs r0, 0x1
_08025192:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8025170

	thumb_func_start sub_8025198
sub_8025198: @ 8025198
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022C98
	ldr r1, [r5]
	ldrb r4, [r1, 0x10]
	cmp r4, 0x1
	beq _080251D0
	cmp r4, 0x1
	bgt _080251B4
	cmp r4, 0
	beq _080251BA
	b _0802520C
	.pool
_080251B4:
	cmp r4, 0x2
	beq _080251DC
	b _0802520C
_080251BA:
	adds r1, 0x4A
	movs r0, 0
	movs r2, 0x3C
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _08025226
	ldr r0, [r5]
	strb r4, [r0, 0x8]
	b _08025202
_080251D0:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08025226
	b _08025202
_080251DC:
	bl sub_8025170
	cmp r0, 0
	beq _080251EE
	ldr r0, [r5]
	adds r1, r0, 0
	adds r1, 0x24
	ldrb r1, [r1]
	strb r1, [r0, 0x8]
_080251EE:
	ldr r2, [r5]
	adds r1, r2, 0
	adds r1, 0x24
	ldrb r0, [r2, 0x8]
	ldrb r1, [r1]
	cmp r0, r1
	bcc _08025226
	ldrb r0, [r2, 0x14]
	adds r0, 0x1
	strb r0, [r2, 0x14]
_08025202:
	ldr r1, [r5]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _08025226
_0802520C:
	movs r0, 0x1
	bl WaitFanfare
	lsls r0, 24
	cmp r0, 0
	beq _08025226
	movs r0, 0x6
	bl sub_8026240
	ldr r0, =0x0000020b
	movs r1, 0x4
	bl FadeOutAndPlayNewMapMusic
_08025226:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8025198

	thumb_func_start sub_8025230
sub_8025230: @ 8025230
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022C98
	ldr r2, [r5]
	ldrb r4, [r2, 0x10]
	cmp r4, 0x1
	beq _08025274
	cmp r4, 0x1
	bgt _0802524C
	cmp r4, 0
	beq _08025252
	b _080252DC
	.pool
_0802524C:
	cmp r4, 0x2
	beq _08025282
	b _080252DC
_08025252:
	ldrb r0, [r2, 0x14]
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	adds r1, 0x4A
	adds r1, r2, r1
	movs r0, 0
	movs r2, 0x3C
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _08025316
	ldr r0, [r5]
	strb r4, [r0, 0x8]
	ldr r1, [r5]
	b _080252CC
_08025274:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08025316
	ldr r1, [r5]
	b _080252CC
_08025282:
	bl sub_8025170
	cmp r0, 0
	beq _080252B4
	movs r4, 0
	b _080252AA
_0802528E:
	ldr r0, [r5]
	adds r0, 0x4A
	ldr r1, =gBlockRecvBuffer
	movs r2, 0x3C
	bl memcpy
	ldr r1, [r5]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	strb r0, [r1, 0x8]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
_080252AA:
	ldr r0, [r5]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r4, r0
	bcc _0802528E
_080252B4:
	ldr r3, =gUnknown_02022C98
	ldr r2, [r3]
	adds r1, r2, 0
	adds r1, 0x24
	ldrb r0, [r2, 0x8]
	ldrb r1, [r1]
	cmp r0, r1
	bcc _08025316
	ldrb r0, [r2, 0x14]
	adds r0, 0x1
	strb r0, [r2, 0x14]
	ldr r1, [r3]
_080252CC:
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _08025316
	.pool
_080252DC:
	movs r0, 0x1
	bl WaitFanfare
	lsls r0, 24
	cmp r0, 0
	beq _08025316
	ldr r0, =gUnknown_02022C98
	ldr r2, [r0]
	adds r0, r2, 0
	adds r0, 0x28
	ldrb r0, [r0]
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	adds r0, r2, 0
	adds r0, 0x54
	adds r0, r1
	ldrh r1, [r0]
	movs r3, 0x8A
	lsls r3, 1
	adds r0, r2, r3
	strh r1, [r0]
	movs r0, 0x6
	bl sub_8026240
	ldr r0, =0x0000020b
	movs r1, 0x4
	bl FadeOutAndPlayNewMapMusic
_08025316:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8025230

	thumb_func_start sub_8025324
sub_8025324: @ 8025324
	push {r4,r5,lr}
	sub sp, 0x4
	movs r1, 0x1
	mov r0, sp
	strb r1, [r0]
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	ldrb r0, [r0, 0x10]
	cmp r0, 0x4
	bls _0802533A
	b _08025458
_0802533A:
	lsls r0, 2
	ldr r1, =_0802534C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802534C:
	.4byte _08025360
	.4byte _08025384
	.4byte _0802539C
	.4byte _080253BC
	.4byte _080253DC
_08025360:
	bl sub_802749C
	movs r0, 0x1
	bl sub_80289E8
	bl sub_8028DFC
	movs r0, 0x1
	bl sub_8028EC8
	movs r0, 0x2
	bl sub_80292E0
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08025448
	.pool
_08025384:
	bl sub_802A770
	cmp r0, 0
	bne _08025466
	movs r0, 0x5
	bl sub_80292E0
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08025448
	.pool
_0802539C:
	bl sub_802A794
	mov r1, sp
	strb r0, [r1]
	movs r0, 0
	movs r2, 0x1
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _08025466
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08025448
	.pool
_080253BC:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _08025466
	ldr r3, =gUnknown_02022C98
	ldr r1, [r3]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	movs r2, 0
	strb r0, [r1, 0x10]
	ldr r0, [r3]
	strb r2, [r0, 0x8]
	b _08025466
	.pool
_080253DC:
	bl sub_8025170
	cmp r0, 0
	beq _08025422
	movs r2, 0
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r2, r0
	bcs _08025422
	adds r3, r1, 0
	movs r5, 0x86
	lsls r5, 1
	ldr r4, =gBlockRecvBuffer
_080253FA:
	ldr r1, [r3]
	adds r1, r2, r1
	adds r1, r5
	lsls r0, r2, 8
	adds r0, r4
	ldrb r0, [r0]
	strb r0, [r1]
	ldr r1, [r3]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	strb r0, [r1, 0x8]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, [r3]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r2, r0
	bcc _080253FA
_08025422:
	ldr r4, =gUnknown_02022C98
	ldr r2, [r4]
	adds r1, r2, 0
	adds r1, 0x24
	ldrb r0, [r2, 0x8]
	ldrb r1, [r1]
	cmp r0, r1
	bcc _08025466
	ldrb r0, [r2, 0x14]
	adds r0, 0x1
	strb r0, [r2, 0x14]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x77
	bls _08025466
	movs r0, 0x6
	bl sub_80292E0
	ldr r1, [r4]
_08025448:
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _08025466
	.pool
_08025458:
	bl sub_802A770
	cmp r0, 0
	bne _08025466
	movs r0, 0x7
	bl sub_8026240
_08025466:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8025324

	thumb_func_start sub_8025470
sub_8025470: @ 8025470
	push {r4,r5,lr}
	sub sp, 0x4
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	ldrb r0, [r0, 0x10]
	cmp r0, 0x7
	bls _08025480
	b _08025606
_08025480:
	lsls r0, 2
	ldr r1, =_08025494
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08025494:
	.4byte _080254B4
	.4byte _080254D4
	.4byte _080254F0
	.4byte _08025504
	.4byte _08025520
	.4byte _0802553C
	.4byte _08025564
	.4byte _08025578
_080254B4:
	bl sub_8027748
	ldr r1, =0x00000bb7
	cmp r0, r1
	bls _080254C4
	movs r0, 0x4
	bl sub_80292E0
_080254C4:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _080255E8
	.pool
_080254D4:
	bl sub_802A770
	cmp r0, 0
	beq _080254DE
	b _0802563C
_080254DE:
	movs r0, 0x3
	bl sub_80292E0
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _080255E8
	.pool
_080254F0:
	bl sub_8028FCC
	bl sub_80272E8
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _080255E8
	.pool
_08025504:
	bl sub_802A794
	lsls r0, 24
	lsrs r0, 24
	mov r1, sp
	strb r0, [r1]
	cmp r0, 0
	bne _08025516
	b _0802563C
_08025516:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _080255E8
	.pool
_08025520:
	bl sub_802A770
	cmp r0, 0
	beq _0802552A
	b _0802563C
_0802552A:
	movs r0, 0x5
	bl sub_80292E0
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _080255E8
	.pool
_0802553C:
	bl sub_802A794
	mov r1, sp
	strb r0, [r1]
	movs r0, 0
	movs r2, 0x1
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _0802563C
	ldr r2, =gUnknown_02022C98
	ldr r1, [r2]
	movs r0, 0
	strb r0, [r1, 0x8]
	ldr r1, [r2]
	b _080255E8
	.pool
_08025564:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0802563C
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _080255E8
	.pool
_08025578:
	bl sub_8025170
	cmp r0, 0
	beq _080255BE
	movs r2, 0
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r2, r0
	bcs _080255BE
	adds r3, r1, 0
	movs r5, 0x86
	lsls r5, 1
	ldr r4, =gBlockRecvBuffer
_08025596:
	ldr r1, [r3]
	adds r1, r2, r1
	adds r1, r5
	lsls r0, r2, 8
	adds r0, r4
	ldrb r0, [r0]
	strb r0, [r1]
	ldr r1, [r3]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	strb r0, [r1, 0x8]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, [r3]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r2, r0
	bcc _08025596
_080255BE:
	ldr r4, =gUnknown_02022C98
	ldr r2, [r4]
	adds r1, r2, 0
	adds r1, 0x24
	ldrb r0, [r2, 0x8]
	ldrb r1, [r1]
	cmp r0, r1
	bcc _080255F8
	ldrb r0, [r2, 0x14]
	adds r0, 0x1
	strb r0, [r2, 0x14]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x77
	bls _0802563C
	bl sub_8027608
	movs r0, 0x6
	bl sub_80292E0
	ldr r1, [r4]
_080255E8:
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _0802563C
	.pool
_080255F8:
	bl sub_8027554
	b _0802563C
_080255FE:
	movs r0, 0x8
	bl sub_8026240
	b _0802563C
_08025606:
	bl sub_802A770
	cmp r0, 0
	bne _0802563C
	movs r2, 0
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r2, r0
	bcs _08025636
	movs r4, 0x86
	lsls r4, 1
	adds r3, r1, r4
	adds r1, r0, 0
_08025624:
	adds r0, r3, r2
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _080255FE
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, r1
	bcc _08025624
_08025636:
	movs r0, 0xA
	bl sub_8026240
_0802563C:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8025470

	thumb_func_start sub_8025644
sub_8025644: @ 8025644
	push {r4,lr}
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	ldrb r0, [r0, 0x10]
	cmp r0, 0x1
	beq _08025672
	cmp r0, 0x1
	bgt _08025660
	cmp r0, 0
	beq _08025666
	b _08025692
	.pool
_08025660:
	cmp r0, 0x2
	beq _0802567C
	b _08025692
_08025666:
	bl sub_800AC34
	movs r0, 0x7
	bl sub_80292E0
	b _08025688
_08025672:
	bl sub_802A770
	cmp r0, 0
	bne _080256A0
	b _08025688
_0802567C:
	bl sub_802A794
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bne _080256A0
_08025688:
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _080256A0
_08025692:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _080256A0
	movs r0, 0x9
	bl sub_8026240
_080256A0:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8025644

	thumb_func_start sub_80256AC
sub_80256AC: @ 80256AC
	push {r4,lr}
	sub sp, 0x4
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	ldrb r1, [r0, 0x10]
	cmp r1, 0x1
	beq _080256E0
	cmp r1, 0x1
	bgt _080256C8
	cmp r1, 0
	beq _080256CE
	b _08025728
	.pool
_080256C8:
	cmp r1, 0x2
	beq _080256F8
	b _08025728
_080256CE:
	movs r0, 0x1
	negs r0, r0
	str r1, [sp]
	movs r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _0802571A
_080256E0:
	bl UpdatePaletteFade
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0802574C
	b _0802571A
	.pool
_080256F8:
	bl sub_8028B80
	bl sub_80287E4
	ldr r0, [r4]
	adds r0, 0x24
	ldrb r0, [r0]
	bl sub_8028614
	bl sub_8028E84
	ldr r1, =gUnknown_03000DB0
	movs r0, 0x1
	str r0, [r1]
	movs r0, 0x8
	bl sub_80292E0
_0802571A:
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _0802574C
	.pool
_08025728:
	bl sub_802A770
	cmp r0, 0
	bne _0802574C
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	ldr r0, [r0]
	bl SetMainCallback2
	ldr r0, [r4]
	ldrb r0, [r0, 0x4]
	bl DestroyTask
	ldr r0, [r4]
	bl Free
	bl FreeAllWindowBuffers
_0802574C:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80256AC

	thumb_func_start sub_8025758
sub_8025758: @ 8025758
	push {r4,lr}
	sub sp, 0x4
	ldr r4, =gUnknown_02022C98
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	cmp r0, 0x6
	bls _08025768
	b _0802585C
_08025768:
	lsls r0, 2
	ldr r1, =_0802577C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802577C:
	.4byte _08025798
	.4byte _08025838
	.4byte _080257B0
	.4byte _08025802
	.4byte _08025808
	.4byte _08025818
	.4byte _08025838
_08025798:
	movs r0, 0x9
	bl sub_80292E0
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _08025848
_080257B0:
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	b _08025848
_08025802:
	bl StopMapMusic
	b _08025848
_08025808:
	ldr r0, =0x0000021e
	bl PlayNewMapMusic
	bl sub_8028E4C
	b _08025848
	.pool
_08025818:
	movs r4, 0x1
	negs r4, r4
	adds r0, r4, 0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	str r0, [sp]
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	b _08025848
_08025838:
	bl UpdatePaletteFade
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0802588C
_08025848:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _0802588C
	.pool
_0802585C:
	ldrb r0, [r1, 0x4]
	bl DestroyTask
	ldr r0, =sub_802589C
	bl sub_802621C
	bl sub_802903C
	ldr r0, [r4]
	bl sub_8024A30
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _08025882
	ldr r0, [r4]
	adds r0, 0x24
	movs r1, 0x1
	strb r1, [r0]
_08025882:
	bl sub_80273F0
	movs r0, 0
	bl sub_8028EC8
_0802588C:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8025758

	thumb_func_start sub_802589C
sub_802589C: @ 802589C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	ldrb r0, [r0, 0x10]
	adds r4, r1, 0
	cmp r0, 0x1
	beq _080258C8
	cmp r0, 0x1
	bgt _080258BC
	cmp r0, 0
	beq _080258C2
	b _080258E0
	.pool
_080258BC:
	cmp r0, 0x2
	beq _080258CE
	b _080258E0
_080258C2:
	bl sub_8026264
	b _080258D2
_080258C8:
	bl sub_80286E4
	b _080258D6
_080258CE:
	bl sub_8028828
_080258D2:
	cmp r0, 0x1
	bne _08025904
_080258D6:
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
	b _08025904
_080258E0:
	ldr r0, [r4]
	adds r0, 0x20
	ldrb r0, [r0]
	cmp r0, 0
	beq _080258F8
	ldr r0, =sub_8024D4C
	bl sub_802621C
	b _080258FE
	.pool
_080258F8:
	ldr r0, =sub_8024D84
	bl sub_802621C
_080258FE:
	adds r0, r5, 0
	bl DestroyTask
_08025904:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802589C

	thumb_func_start sub_8025910
sub_8025910: @ 8025910
	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
	movs r0, 0
	ldrsh r4, [r5, r0]
	cmp r4, 0x1
	beq _0802596C
	cmp r4, 0x1
	bgt _08025938
	cmp r4, 0
	beq _0802593E
	b _080259E8
	.pool
_08025938:
	cmp r4, 0x2
	beq _0802597E
	b _080259E8
_0802593E:
	ldr r6, =gUnknown_02022C98
	ldr r1, [r6]
	adds r0, r1, 0
	adds r0, 0x28
	ldrb r0, [r0]
	lsls r0, 2
	ldr r2, =0x0000318c
	adds r0, r2
	adds r1, r0
	movs r0, 0
	movs r2, 0x1
	bl SendBlock
	lsls r0, 24
	cmp r0, 0
	beq _080259E8
	ldr r0, [r6]
	strb r4, [r0, 0x8]
	b _08025976
	.pool
_0802596C:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _080259E8
_08025976:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	b _080259E8
_0802597E:
	bl sub_8025170
	cmp r0, 0
	beq _080259C4
	movs r2, 0
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r2, r0
	bcs _080259C4
	adds r3, r1, 0
	ldr r5, =gBlockRecvBuffer
	ldr r4, =0x0000318c
_0802599A:
	ldr r0, [r3]
	lsls r1, r2, 2
	adds r1, r0
	adds r1, r4
	lsls r0, r2, 8
	adds r0, r5
	ldrb r0, [r0]
	strb r0, [r1]
	ldr r1, [r3]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	strb r0, [r1, 0x8]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, [r3]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r2, r0
	bcc _0802599A
_080259C4:
	ldr r4, =gUnknown_02022C98
	ldr r0, [r4]
	adds r1, r0, 0
	adds r1, 0x24
	ldrb r0, [r0, 0x8]
	ldrb r1, [r1]
	cmp r0, r1
	bcc _080259E8
	adds r0, r6, 0
	bl DestroyTask
	movs r0, 0x6
	bl sub_80292E0
	ldr r1, [r4]
	ldrb r0, [r1, 0x10]
	adds r0, 0x1
	strb r0, [r1, 0x10]
_080259E8:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8025910

	thumb_func_start sub_80259FC
sub_80259FC: @ 80259FC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x18
	ldr r6, =gUnknown_02022C98
	ldr r0, [r6]
	adds r1, r0, 0
	adds r1, 0x24
	ldrb r7, [r1]
	ldr r2, =0x000031a0
	adds r1, r0, r2
	ldr r3, =0x000031cc
	adds r2, r0, r3
	ldr r4, =0x00003208
	adds r3, r0, r4
	ldr r5, =0x00003244
	adds r4, r0, r5
	str r4, [sp]
	adds r5, 0x3C
	adds r4, r0, r5
	str r4, [sp, 0x4]
	adds r5, 0x3C
	adds r4, r0, r5
	str r4, [sp, 0x8]
	adds r4, r0, 0
	adds r4, 0x40
	str r4, [sp, 0xC]
	movs r5, 0x90
	lsls r5, 1
	adds r4, r0, r5
	str r4, [sp, 0x10]
	movs r4, 0x96
	lsls r4, 1
	adds r0, r4
	str r0, [sp, 0x14]
	movs r0, 0
	bl sub_8028164
	ldr r1, [r6]
	ldr r5, =0x000031b0
	adds r2, r1, r5
	str r0, [r2]
	movs r0, 0x94
	lsls r0, 1
	adds r1, r0
	movs r0, 0x1
	strb r0, [r1]
	movs r5, 0x1
	cmp r5, r7
	bcs _08025AA4
_08025A60:
	ldr r1, [r6]
	adds r0, r1, 0
	adds r0, 0xA8
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, 0
	bne _08025A9A
	lsls r0, r5, 4
	subs r0, r5
	lsls r4, r0, 2
	adds r1, r4, r1
	ldr r2, =0x000031cc
	adds r1, r2
	adds r0, r5, 0
	bl sub_8028318
	adds r1, r0, 0
	cmp r1, 0
	bne _08025A9A
	ldr r0, [r6]
	adds r0, r4
	ldr r3, =0x000031cc
	adds r0, r3
	strb r1, [r0]
	ldr r0, [r6]
	movs r4, 0x94
	lsls r4, 1
	adds r0, r4
	strb r1, [r0]
_08025A9A:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r7
	bcc _08025A60
_08025AA4:
	ldr r5, =gUnknown_02022C98
	ldr r1, [r5]
	movs r6, 0x92
	lsls r6, 1
	adds r1, r6
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3B
	bls _08025B02
	ldr r1, [r5]
	movs r2, 0x94
	lsls r2, 1
	adds r0, r1, r2
	ldrb r4, [r0]
	cmp r4, 0
	beq _08025AF0
	bl sub_8011AC8
	ldr r0, [r5]
	adds r0, r6
	movs r1, 0
	strb r1, [r0]
	b _08025B02
	.pool
_08025AF0:
	adds r0, r1, r6
	ldrb r0, [r0]
	cmp r0, 0x46
	bls _08025B02
	bl sub_8011AC8
	ldr r0, [r5]
	adds r0, r6
	strb r4, [r0]
_08025B02:
	movs r5, 0
	cmp r5, r7
	bcs _08025BF6
	ldr r3, =0x000031cc
	mov r12, r3
	ldr r4, =gUnknown_02022C98
	mov r8, r4
_08025B10:
	mov r6, r8
	ldr r2, [r6]
	lsls r0, r5, 4
	subs r1, r0, r5
	lsls r1, 2
	adds r1, r2, r1
	add r1, r12
	ldrb r1, [r1]
	adds r6, r0, 0
	cmp r1, 0
	beq _08025B36
	adds r0, r2, 0
	adds r0, 0xA8
	adds r1, r0, r5
	ldrb r0, [r1]
	cmp r0, 0
	bne _08025B36
	movs r0, 0x1
	strb r0, [r1]
_08025B36:
	adds r3, r4, 0
	ldr r1, [r3]
	adds r0, r1, 0
	adds r0, 0xA8
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, 0x3
	bgt _08025B54
	cmp r0, 0x1
	bge _08025B5A
	b _08025BEC
	.pool
_08025B54:
	cmp r0, 0x4
	beq _08025BA8
	b _08025BEC
_08025B5A:
	adds r1, 0xB0
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	movs r2, 0
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bls _08025BEC
	ldr r0, [r3]
	adds r0, 0xB0
	adds r0, r5
	strb r2, [r0]
	ldr r0, [r3]
	adds r0, 0xA8
	adds r0, r5
	strb r2, [r0]
	ldr r0, [r3]
	subs r1, r6, r5
	lsls r1, 2
	adds r0, r1
	add r0, r12
	strb r2, [r0]
	ldr r0, [r3]
	adds r0, r1
	ldr r6, =0x000031d0
	adds r0, r6
	strb r2, [r0]
	ldr r0, [r3]
	adds r0, r1
	ldr r1, =0x000031d4
	adds r0, r1
	b _08025BEA
	.pool
_08025BA8:
	adds r1, 0xB0
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	movs r2, 0
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x27
	bls _08025BEC
	ldr r0, [r4]
	adds r0, 0xB0
	adds r0, r5
	strb r2, [r0]
	ldr r0, [r4]
	adds r0, 0xA8
	adds r0, r5
	strb r2, [r0]
	ldr r0, [r4]
	subs r1, r6, r5
	lsls r1, 2
	adds r0, r1
	add r0, r12
	strb r2, [r0]
	ldr r0, [r4]
	adds r0, r1
	ldr r3, =0x000031d0
	adds r0, r3
	strb r2, [r0]
	ldr r0, [r4]
	adds r0, r1
	ldr r6, =0x000031d4
	adds r0, r6
_08025BEA:
	strb r2, [r0]
_08025BEC:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r7
	bcc _08025B10
_08025BF6:
	add sp, 0x18
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80259FC

	thumb_func_start sub_8025C0C
sub_8025C0C: @ 8025C0C
	push {r4-r7,lr}
	sub sp, 0x18
	ldr r5, =gUnknown_02022C98
	ldr r0, [r5]
	adds r1, r0, 0
	adds r1, 0x24
	ldrb r6, [r1]
	ldr r2, =0x000031a0
	adds r1, r0, r2
	ldr r3, =0x000031cc
	adds r2, r0, r3
	ldr r4, =0x00003208
	adds r3, r0, r4
	ldr r7, =0x00003244
	adds r4, r0, r7
	str r4, [sp]
	adds r7, 0x3C
	adds r4, r0, r7
	str r4, [sp, 0x4]
	adds r7, 0x3C
	adds r4, r0, r7
	str r4, [sp, 0x8]
	adds r4, r0, 0
	adds r4, 0x40
	str r4, [sp, 0xC]
	movs r7, 0x90
	lsls r7, 1
	adds r4, r0, r7
	str r4, [sp, 0x10]
	movs r4, 0x96
	lsls r4, 1
	adds r0, r4
	str r0, [sp, 0x14]
	movs r0, 0
	bl sub_8028164
	ldr r1, [r5]
	ldr r7, =0x000031b0
	adds r2, r1, r7
	str r0, [r2]
	movs r0, 0x94
	lsls r0, 1
	adds r1, r0
	movs r0, 0x1
	strb r0, [r1]
	movs r4, 0x1
	cmp r4, r6
	bcs _08025C9C
_08025C6C:
	adds r0, r4, 0
	bl sub_8028374
	cmp r0, 0
	beq _08025C92
	ldr r0, =gUnknown_02022C98
	ldr r2, [r0]
	lsls r1, r4, 2
	movs r3, 0x98
	lsls r3, 1
	adds r0, r2, r3
	adds r0, r1
	movs r1, 0x1
	str r1, [r0]
	movs r7, 0x94
	lsls r7, 1
	adds r1, r2, r7
	movs r0, 0
	strb r0, [r1]
_08025C92:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r6
	bcc _08025C6C
_08025C9C:
	ldr r5, =gUnknown_02022C98
	ldr r1, [r5]
	movs r6, 0x92
	lsls r6, 1
	adds r1, r6
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3B
	bls _08025CFA
	ldr r1, [r5]
	movs r2, 0x94
	lsls r2, 1
	adds r0, r1, r2
	ldrb r4, [r0]
	cmp r4, 0
	beq _08025CE8
	bl sub_8011AC8
	ldr r0, [r5]
	adds r0, r6
	movs r1, 0
	strb r1, [r0]
	b _08025CFA
	.pool
_08025CE8:
	adds r0, r1, r6
	ldrb r0, [r0]
	cmp r0, 0x46
	bls _08025CFA
	bl sub_8011AC8
	ldr r0, [r5]
	adds r0, r6
	strb r4, [r0]
_08025CFA:
	add sp, 0x18
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8025C0C

	thumb_func_start sub_8025D04
sub_8025D04: @ 8025D04
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022C98
	ldr r0, [r5]
	ldrb r0, [r0, 0x18]
	cmp r0, 0x4
	beq _08025D40
	cmp r0, 0x4
	bgt _08025D20
	cmp r0, 0x3
	beq _08025D26
	b _08025D4A
	.pool
_08025D20:
	cmp r0, 0xB
	beq _08025D46
	b _08025D4A
_08025D26:
	bl sub_8026BB8
	adds r4, r0, 0
	cmp r4, 0x1
	bne _08025D4A
	bl sub_8026C28
	ldr r0, [r5]
	movs r1, 0x8E
	lsls r1, 1
	adds r0, r1
	str r4, [r0]
	b _08025D4A
_08025D40:
	bl sub_80259FC
	b _08025D4A
_08025D46:
	bl sub_8025C0C
_08025D4A:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8025D04

	thumb_func_start sub_8025D50
sub_8025D50: @ 8025D50
	push {r4-r6,lr}
	sub sp, 0x14
	ldr r0, =gUnknown_02022C98
	ldr r5, [r0]
	ldrb r0, [r5, 0x18]
	cmp r0, 0x4
	beq _08025D68
	cmp r0, 0xB
	beq _08025DB8
	b _08025DF4
	.pool
_08025D68:
	ldr r1, =0x000032cc
	adds r0, r5, r1
	ldr r2, =0x000031cc
	adds r1, r5, r2
	ldr r3, =0x00003208
	adds r2, r5, r3
	ldr r4, =0x00003244
	adds r3, r5, r4
	movs r6, 0xCA
	lsls r6, 6
	adds r4, r5, r6
	str r4, [sp]
	adds r6, 0x3C
	adds r4, r5, r6
	str r4, [sp, 0x4]
	adds r4, r5, 0
	adds r4, 0x40
	ldrb r4, [r4]
	str r4, [sp, 0x8]
	movs r6, 0x90
	lsls r6, 1
	adds r4, r5, r6
	ldr r4, [r4]
	str r4, [sp, 0xC]
	adds r6, 0xC
	adds r4, r5, r6
	ldr r4, [r4]
	str r4, [sp, 0x10]
	bl sub_8027E30
	b _08025DF4
	.pool
_08025DB8:
	ldr r1, =0x000032cc
	adds r0, r5, r1
	ldr r2, =0x000031cc
	adds r1, r5, r2
	ldr r3, =0x00003208
	adds r2, r5, r3
	ldr r4, =0x00003244
	adds r3, r5, r4
	movs r6, 0xCA
	lsls r6, 6
	adds r4, r5, r6
	str r4, [sp]
	adds r6, 0x3C
	adds r4, r5, r6
	str r4, [sp, 0x4]
	adds r4, r5, 0
	adds r4, 0x40
	ldrb r4, [r4]
	str r4, [sp, 0x8]
	movs r6, 0x90
	lsls r6, 1
	adds r4, r5, r6
	ldr r4, [r4]
	str r4, [sp, 0xC]
	adds r6, 0xC
	adds r4, r5, r6
	ldr r4, [r4]
	str r4, [sp, 0x10]
	bl sub_8027E30
_08025DF4:
	add sp, 0x14
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8025D50

	thumb_func_start sub_8025E0C
sub_8025E0C: @ 8025E0C
	push {r4-r6,lr}
	sub sp, 0x18
	ldr r0, =gUnknown_02022C98
	ldr r5, [r0]
	ldrb r0, [r5, 0x18]
	cmp r0, 0x4
	beq _08025E24
	cmp r0, 0xB
	beq _08025E7C
	b _08025EC0
	.pool
_08025E24:
	adds r0, r5, 0
	adds r0, 0x28
	ldrb r0, [r0]
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 2
	ldr r2, =0x000031a0
	adds r1, r2
	adds r1, r5, r1
	ldr r3, =0x000031cc
	adds r2, r5, r3
	ldr r4, =0x00003208
	adds r3, r5, r4
	ldr r6, =0x00003244
	adds r4, r5, r6
	str r4, [sp]
	adds r6, 0x3C
	adds r4, r5, r6
	str r4, [sp, 0x4]
	adds r6, 0x3C
	adds r4, r5, r6
	str r4, [sp, 0x8]
	adds r4, r5, 0
	adds r4, 0x40
	str r4, [sp, 0xC]
	movs r6, 0x90
	lsls r6, 1
	adds r4, r5, r6
	str r4, [sp, 0x10]
	adds r6, 0xC
	adds r4, r5, r6
	str r4, [sp, 0x14]
	bl sub_8028164
	b _08025EC0
	.pool
_08025E7C:
	adds r0, r5, 0
	adds r0, 0x28
	ldrb r0, [r0]
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 2
	ldr r2, =0x000031a0
	adds r1, r2
	adds r1, r5, r1
	ldr r3, =0x000031cc
	adds r2, r5, r3
	ldr r4, =0x00003208
	adds r3, r5, r4
	ldr r6, =0x00003244
	adds r4, r5, r6
	str r4, [sp]
	adds r6, 0x3C
	adds r4, r5, r6
	str r4, [sp, 0x4]
	adds r6, 0x3C
	adds r4, r5, r6
	str r4, [sp, 0x8]
	adds r4, r5, 0
	adds r4, 0x40
	str r4, [sp, 0xC]
	movs r6, 0x90
	lsls r6, 1
	adds r4, r5, r6
	str r4, [sp, 0x10]
	adds r6, 0xC
	adds r4, r5, r6
	str r4, [sp, 0x14]
	bl sub_8028164
_08025EC0:
	add sp, 0x18
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8025E0C

	thumb_func_start sub_8025ED8
sub_8025ED8: @ 8025ED8
	push {r4,lr}
	ldr r4, =gUnknown_02022C98
	ldr r1, [r4]
	ldrb r0, [r1, 0x18]
	cmp r0, 0x4
	beq _08025F0E
	cmp r0, 0x4
	bgt _08025EF4
	cmp r0, 0x3
	beq _08025EFA
	b _08025F40
	.pool
_08025EF4:
	cmp r0, 0xB
	beq _08025F24
	b _08025F40
_08025EFA:
	movs r0, 0x1
	bl sub_8027DD0
	ldr r0, [r4]
	movs r1, 0x8E
	lsls r1, 1
	adds r0, r1
	movs r1, 0x1
	str r1, [r0]
	b _08025F40
_08025F0E:
	ldr r2, =0x000032f8
	adds r1, r2
	ldrb r0, [r1]
	cmp r0, 0
	beq _08025F40
	bl sub_80282EC
	b _08025F40
	.pool
_08025F24:
	movs r2, 0x90
	lsls r2, 1
	adds r0, r1, r2
	ldr r0, [r0]
	cmp r0, 0
	bne _08025F40
	adds r2, 0xC
	adds r0, r1, r2
	ldr r0, [r0]
	cmp r0, 0
	bne _08025F40
	movs r0, 0x1
	bl sub_8028350
_08025F40:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8025ED8

	thumb_func_start sub_8025F48
sub_8025F48: @ 8025F48
	push {r4-r6,lr}
	ldr r6, =gUnknown_02022C98
	ldr r2, [r6]
	adds r0, r2, 0
	adds r0, 0x28
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r1, r2, r0
	ldr r3, =0x000031cc
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r0, 0
	bne _08025F88
	bl IsSEPlaying
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	bne _08025FEA
	ldr r0, [r6]
	movs r2, 0xA2
	lsls r2, 1
	adds r0, r2
	strb r1, [r0]
	b _08025FEA
	.pool
_08025F88:
	ldr r3, =0x000031d0
	adds r0, r1, r3
	ldrb r4, [r0]
	cmp r4, 0x1
	bne _08025FB8
	movs r1, 0xA2
	lsls r1, 1
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _08025FEA
	movs r0, 0x1F
	bl m4aSongNumStop
	movs r0, 0x1F
	bl PlaySE
	ldr r0, [r6]
	movs r2, 0xA2
	lsls r2, 1
	adds r0, r2
	b _08025FE8
	.pool
_08025FB8:
	ldr r3, =0x000031d4
	adds r0, r1, r3
	ldrb r4, [r0]
	cmp r4, 0x1
	bne _08025FEA
	movs r5, 0xA2
	lsls r5, 1
	adds r0, r2, r5
	ldrb r0, [r0]
	cmp r0, 0
	bne _08025FEA
	bl IsSEPlaying
	lsls r0, 24
	cmp r0, 0
	bne _08025FEA
	movs r0, 0x16
	bl PlaySE
	movs r0, 0x1
	bl sub_80284CC
	ldr r0, [r6]
	adds r0, r5
_08025FE8:
	strb r4, [r0]
_08025FEA:
	ldr r0, =gUnknown_02022C98
	ldr r2, [r0]
	movs r5, 0xAA
	lsls r5, 1
	adds r1, r2, r5
	ldrb r1, [r1]
	adds r4, r0, 0
	cmp r1, 0
	bne _0802601C
	adds r0, r2, 0
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _0802601C
	bl StopMapMusic
	ldr r0, [r4]
	adds r0, r5
	movs r1, 0x1
	b _0802603A
	.pool
_0802601C:
	ldr r0, [r4]
	movs r1, 0xAA
	lsls r1, 1
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0802603C
	movs r0, 0xB
	bl PlayFanfareByFanfareNum
	ldr r0, [r4]
	movs r2, 0xAA
	lsls r2, 1
	adds r0, r2
	movs r1, 0x2
_0802603A:
	strb r1, [r0]
_0802603C:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8025F48

	thumb_func_start sub_8026044
sub_8026044: @ 8026044
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r6, =gUnknown_02022C98
	ldr r2, [r6]
	adds r0, r2, 0
	adds r0, 0x44
	ldrb r0, [r0]
	mov r8, r0
	adds r0, r2, 0
	adds r0, 0x48
	ldrb r7, [r0]
	subs r0, 0x20
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r1, r2, r0
	ldr r3, =0x000031cc
	adds r0, r1, r3
	ldrb r3, [r0]
	cmp r3, 0
	bne _0802609C
	ldr r4, =0x000031d0
	adds r0, r1, r4
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _080260FE
	adds r4, 0x4
	adds r0, r1, r4
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _080260FE
	movs r1, 0xA2
	lsls r1, 1
	adds r0, r2, r1
	strb r3, [r0]
	b _080260FE
	.pool
_0802609C:
	ldr r3, =0x000031d0
	adds r0, r1, r3
	ldrb r4, [r0]
	cmp r4, 0x1
	bne _080260CC
	movs r1, 0xA2
	lsls r1, 1
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _080260FE
	movs r0, 0x1F
	bl m4aSongNumStop
	movs r0, 0x1F
	bl PlaySE
	ldr r0, [r6]
	movs r3, 0xA2
	lsls r3, 1
	adds r0, r3
	b _080260FC
	.pool
_080260CC:
	ldr r4, =0x000031d4
	adds r0, r1, r4
	ldrb r4, [r0]
	cmp r4, 0x1
	bne _080260FE
	movs r5, 0xA2
	lsls r5, 1
	adds r0, r2, r5
	ldrb r0, [r0]
	cmp r0, 0
	bne _080260FE
	bl IsSEPlaying
	lsls r0, 24
	cmp r0, 0
	bne _080260FE
	movs r0, 0x16
	bl PlaySE
	movs r0, 0x1
	bl sub_80284CC
	ldr r0, [r6]
	adds r0, r5
_080260FC:
	strb r4, [r0]
_080260FE:
	mov r4, r8
	cmp r4, r7
	bcs _08026172
	ldr r5, =gUnknown_02022C98
_08026106:
	ldr r2, [r5]
	adds r0, r2, 0
	adds r0, 0x28
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	ldr r1, =0x000031a0
	adds r0, r1
	adds r0, r2, r0
	adds r1, r0, 0
	adds r1, 0x14
	adds r0, 0x1F
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _0802615C
	movs r3, 0xA4
	lsls r3, 1
	adds r0, r2, r3
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0
	bne _08026168
	adds r0, r1, r4
	ldrb r0, [r0]
	adds r0, 0x4A
	bl PlaySE
	ldr r0, [r5]
	movs r1, 0xA4
	lsls r1, 1
	adds r0, r1
	adds r0, r4
	movs r1, 0x1
	b _08026166
	.pool
_0802615C:
	movs r3, 0xA4
	lsls r3, 1
	adds r0, r2, r3
	adds r0, r4
	movs r1, 0
_08026166:
	strb r1, [r0]
_08026168:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r7
	bcc _08026106
_08026172:
	ldr r0, =gUnknown_02022C98
	ldr r2, [r0]
	movs r5, 0xAA
	lsls r5, 1
	adds r1, r2, r5
	ldrb r1, [r1]
	adds r4, r0, 0
	cmp r1, 0
	bne _080261A0
	adds r0, r2, 0
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _080261A0
	bl StopMapMusic
	ldr r0, [r4]
	adds r0, r5
	movs r1, 0x1
	b _080261BE
	.pool
_080261A0:
	ldr r0, [r4]
	movs r1, 0xAA
	lsls r1, 1
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _080261C0
	movs r0, 0xB
	bl PlayFanfareByFanfareNum
	ldr r0, [r4]
	movs r3, 0xAA
	lsls r3, 1
	adds r0, r3
	movs r1, 0x2
_080261BE:
	strb r1, [r0]
_080261C0:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8026044

	thumb_func_start sub_80261CC
sub_80261CC: @ 80261CC
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_80261CC

	thumb_func_start sub_80261E4
sub_80261E4: @ 80261E4
	push {lr}
	bl TransferPlttBuffer
	bl LoadOam
	bl ProcessSpriteCopyRequests
	pop {r0}
	bx r0
	thumb_func_end sub_80261E4

	thumb_func_start sub_80261F8
sub_80261F8: @ 80261F8
	push {r4,lr}
	adds r4, r0, 0
	adds r0, r1, 0
	bl IsMonShiny
	strb r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_80261F8

	thumb_func_start sub_802620C
sub_802620C: @ 802620C
	push {lr}
	lsls r1, 24
	lsrs r1, 24
	bl CreateTask
	pop {r0}
	bx r0
	thumb_func_end sub_802620C

	thumb_func_start sub_802621C
sub_802621C: @ 802621C
	push {lr}
	movs r1, 0x1
	bl CreateTask
	ldr r1, =gUnknown_02022C98
	ldr r3, [r1]
	movs r2, 0
	strb r0, [r3, 0x4]
	ldr r0, [r1]
	strb r2, [r0, 0x10]
	ldr r0, [r1]
	strb r2, [r0, 0xC]
	ldr r0, [r1]
	strb r2, [r0, 0x14]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802621C

	thumb_func_start sub_8026240
sub_8026240: @ 8026240
	push {r4,lr}
	ldr r2, =gUnknown_02022C98
	ldr r1, [r2]
	ldrb r3, [r1, 0x18]
	movs r4, 0
	strb r3, [r1, 0x1C]
	ldr r1, [r2]
	strb r0, [r1, 0x18]
	ldr r0, [r2]
	strb r4, [r0, 0x10]
	ldr r0, [r2]
	strb r4, [r0, 0x14]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026240

	thumb_func_start sub_8026264
sub_8026264: @ 8026264
	push {r4,lr}
	ldr r3, =gUnknown_02022C98
	ldr r1, [r3]
	ldrb r0, [r1, 0x14]
	lsrs r2, r0, 2
	adds r0, 0x1
	strb r0, [r1, 0x14]
	cmp r2, 0
	beq _080262B8
	ldr r3, [r3]
	ldrb r0, [r3, 0x14]
	movs r1, 0x3
	ands r0, r1
	cmp r0, 0
	bne _080262B8
	ldr r1, =gUnknown_082F7A94
	adds r0, r3, 0
	adds r0, 0x24
	ldrb r0, [r0]
	subs r0, 0x1
	adds r0, r1
	ldrb r0, [r0]
	cmp r2, r0
	bcc _080262A0
	movs r0, 0x1
	b _080262BA
	.pool
_080262A0:
	lsls r4, r2, 3
	adds r1, r4, 0
	movs r0, 0x14
	bl SetGpuReg
	negs r4, r4
	lsls r4, 16
	lsrs r4, 16
	movs r0, 0x18
	adds r1, r4, 0
	bl SetGpuReg
_080262B8:
	movs r0, 0
_080262BA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8026264

	thumb_func_start sub_80262C0
sub_80262C0: @ 80262C0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r2, =gUnknown_02022C98
	ldr r0, [r2]
	adds r1, r0, 0
	adds r1, 0x44
	adds r0, 0x48
	ldrb r5, [r0]
	ldrb r1, [r1]
	cmp r1, r5
	bcs _0802630C
	mov r8, r2
	ldr r0, =0x000032e0
	mov r12, r0
	movs r7, 0
	movs r6, 0x1
_080262E2:
	mov r2, r8
	ldr r0, [r2]
	mov r2, r12
	adds r4, r0, r2
	ldr r2, =0x000032eb
	adds r0, r2
	adds r2, r0, r1
	movs r3, 0
	adds r0, r1, 0
	ands r0, r6
	cmp r0, 0
	bne _080262FC
	movs r3, 0x1
_080262FC:
	strb r3, [r2]
	adds r0, r4, r1
	strb r7, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, r5
	bcc _080262E2
_0802630C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80262C0

	thumb_func_start sub_8026324
sub_8026324: @ 8026324
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x44
	ldrb r0, [r0]
	str r0, [sp]
	adds r0, r1, 0
	adds r0, 0x48
	ldrb r0, [r0]
	str r0, [sp, 0x4]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	str r0, [sp, 0x8]
	adds r0, r1, 0
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _08026358
	b _08026614
_08026358:
	movs r6, 0
	ldr r0, [sp, 0x8]
	cmp r6, r0
	bcs _08026440
_08026360:
	ldr r3, =gUnknown_02022C98
	lsls r0, r6, 4
	subs r1, r0, r6
	lsls r1, 2
	ldr r2, [r3]
	adds r1, r2
	ldr r4, =0x000031cc
	adds r4, r1
	mov r8, r4
	ldrb r1, [r4]
	mov r9, r0
	adds r0, r6, 0x1
	str r0, [sp, 0xC]
	cmp r1, 0
	beq _08026434
	adds r0, r2, 0
	adds r0, 0xA8
	adds r0, r6
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _08026434
	ldr r1, [sp]
	mov r10, r1
	ldr r2, [sp, 0x4]
	cmp r10, r2
	bcs _08026434
	adds r7, r3, 0
_08026396:
	ldr r0, =gUnknown_082F449C
	add r0, r10
	ldrb r5, [r0]
	ldr r1, [r7]
	lsls r4, r5, 1
	adds r0, r1, 0
	adds r0, 0xF4
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, r6
	beq _08026434
	adds r0, r1, 0
	adds r0, 0xF5
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, r6
	beq _08026434
	mov r0, r8
	ldrb r1, [r0]
	adds r0, r6, 0
	adds r2, r5, 0
	bl sub_8026634
	cmp r0, 0x1
	bne _08026410
	movs r2, 0
	ldr r3, =gUnknown_02022C98
	mov r8, r4
_080263CE:
	ldr r0, [r3]
	mov r4, r8
	adds r1, r2, r4
	adds r0, 0xF4
	adds r1, r0, r1
	ldrb r0, [r1]
	cmp r0, 0xFF
	bne _08026404
	strb r6, [r1]
	ldr r0, [r3]
	adds r0, 0xA8
	adds r0, r6
	movs r1, 0x2
	strb r1, [r0]
	ldr r0, [r3]
	adds r0, 0xC4
	adds r0, r5
	movs r1, 0x1
	strb r1, [r0]
	b _08026434
	.pool
_08026404:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x1
	bls _080263CE
	b _08026434
_08026410:
	ldr r0, [r7]
	mov r2, r9
	subs r1, r2, r6
	lsls r1, 2
	adds r0, r1
	ldr r4, =0x000031d4
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _08026434
	mov r0, r10
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	ldr r0, [sp, 0x4]
	cmp r10, r0
	bcc _08026396
_08026434:
	ldr r1, [sp, 0xC]
	lsls r0, r1, 24
	lsrs r6, r0, 24
	ldr r2, [sp, 0x8]
	cmp r6, r2
	bcc _08026360
_08026440:
	ldr r4, [sp]
	mov r10, r4
	ldr r0, [sp, 0x4]
	cmp r10, r0
	bcc _0802644C
	b _08026614
_0802644C:
	ldr r1, =gUnknown_02022C98
	mov r9, r1
_08026450:
	movs r6, 0xFF
	ldr r0, =gUnknown_082F449C
	add r0, r10
	ldrb r5, [r0]
	mov r2, r9
	ldr r0, [r2]
	adds r0, 0xC4
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _08026468
	b _08026602
_08026468:
	adds r0, r5, 0
	bl sub_8026D8C
	mov r1, r9
	ldr r4, [r1]
	lsls r0, 24
	lsrs r0, 24
	adds r1, r4, 0
	adds r1, 0x90
	adds r1, r0
	ldrb r0, [r1]
	movs r1, 0x7
	bl __udivsi3
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x1
	bls _0802648E
	movs r3, 0x2
_0802648E:
	ldr r2, =gUnknown_082F7A88
	ldr r0, =0x000031b4
	adds r1, r4, r0
	adds r1, r5
	lsls r0, r3, 1
	adds r0, r3
	ldrb r1, [r1]
	adds r0, r1
	adds r0, r2
	ldrb r1, [r0]
	adds r0, r4, 0
	adds r0, 0xD0
	adds r0, r5
	ldrb r0, [r0]
	subs r2, r1, r0
	cmp r2, 0x5
	bgt _080264BC
	adds r1, r4, 0
	adds r1, 0x9C
	adds r1, r5
	ldrb r0, [r1]
	adds r0, r2
	strb r0, [r1]
_080264BC:
	mov r2, r9
	ldr r1, [r2]
	adds r1, 0x9C
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	movs r2, 0
	strb r0, [r1]
	movs r4, 0xFF
	ands r0, r4
	cmp r0, 0x5
	bhi _080264D6
	b _08026602
_080264D6:
	mov r1, r9
	ldr r0, [r1]
	adds r0, 0x9C
	adds r0, r5
	strb r2, [r0]
	ldr r3, [r1]
	lsls r1, r5, 1
	adds r0, r3, 0
	adds r0, 0xF4
	adds r2, r0, r1
	ldrb r0, [r2]
	mov r8, r1
	cmp r0, 0xFF
	bne _08026518
	adds r0, r3, 0
	adds r0, 0xF5
	add r0, r8
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _08026500
	b _08026602
_08026500:
	b _08026528
	.pool
_08026518:
	adds r0, r3, 0
	adds r0, 0xF5
	add r0, r8
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _08026528
	ldrb r4, [r2]
	b _0802654E
_08026528:
	mov r2, r9
	ldr r1, [r2]
	adds r0, r1, 0
	adds r0, 0xF4
	add r0, r8
	ldrb r7, [r0]
	adds r1, 0xF5
	add r1, r8
	ldrb r6, [r1]
	bl Random
	movs r1, 0x1
	ands r1, r0
	cmp r1, 0
	bne _0802654A
	adds r4, r7, 0
	b _0802654E
_0802654A:
	adds r4, r6, 0
	adds r6, r7, 0
_0802654E:
	mov r1, r9
	ldr r0, [r1]
	ldr r2, =0x000032eb
	adds r0, r2
	adds r0, r5
	movs r1, 0x7
	strb r1, [r0]
	mov r1, r9
	ldr r0, [r1]
	adds r0, 0xC4
	adds r0, r5
	movs r1, 0x2
	strb r1, [r0]
	mov r2, r9
	ldr r0, [r2]
	adds r0, 0xA8
	adds r0, r4
	movs r1, 0x3
	strb r1, [r0]
	ldr r0, [r2]
	adds r0, 0xB8
	adds r0, r5
	strb r4, [r0]
	ldr r1, [r2]
	lsls r0, r4, 4
	subs r0, r4
	lsls r0, 2
	adds r1, r0
	ldr r2, =0x000031d0
	adds r1, r2
	movs r0, 0x1
	strb r0, [r1]
	mov r2, r9
	ldr r1, [r2]
	lsls r0, r6, 4
	subs r0, r6
	lsls r0, 2
	adds r1, r0
	ldr r0, =0x000031d4
	adds r1, r0
	movs r2, 0x1
	strb r2, [r1]
	mov r0, r9
	ldr r1, [r0]
	lsls r0, r4, 1
	adds r1, 0x86
	adds r1, r0
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	movs r0, 0
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_8026F1C
	movs r0, 0x1
	bl sub_8027234
	adds r0, r4, 0
	bl sub_8026D1C
	mov r1, r9
	ldr r0, [r1]
	adds r1, r0, 0
	adds r1, 0xE8
	adds r1, r5
	ldr r2, =0x000032e0
	adds r0, r2
	adds r0, r5
	ldrb r0, [r0]
	strb r0, [r1]
	mov r4, r9
	ldr r0, [r4]
	adds r0, r2
	adds r0, r5
	movs r1, 0x3
	strb r1, [r0]
	ldr r1, [r4]
	adds r1, 0xF4
	add r1, r8
	ldrb r0, [r1]
	movs r2, 0xFF
	orrs r0, r2
	strb r0, [r1]
	ldr r1, [r4]
	adds r1, 0xF5
	add r1, r8
	ldrb r0, [r1]
	orrs r0, r2
	strb r0, [r1]
_08026602:
	mov r0, r10
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	ldr r4, [sp, 0x4]
	cmp r10, r4
	bcs _08026614
	b _08026450
_08026614:
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026324

	thumb_func_start sub_8026634
sub_8026634: @ 8026634
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 24
	lsrs r3, r1, 24
	lsls r2, 24
	lsrs r6, r2, 24
	movs r7, 0
	ldr r2, =gUnknown_02022C98
	ldr r1, [r2]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r0, [r0]
	subs r0, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, =0x000032e0
	adds r1, r0
	mov r12, r2
	cmp r3, 0x2
	beq _08026670
	cmp r3, 0x2
	bgt _08026676
	cmp r3, 0x1
	beq _08026674
	b _08026676
	.pool
_08026670:
	movs r7, 0x1
	b _08026676
_08026674:
	movs r7, 0x2
_08026676:
	adds r0, r1, 0
	adds r0, 0xB
	adds r0, r6
	ldrb r0, [r0]
	subs r0, 0x6
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _080266D4
	ldr r0, =gUnknown_082F449C+0x113
	lsls r1, r4, 1
	adds r1, r4
	adds r1, r7, r1
	lsls r2, r5, 4
	subs r2, r5
	adds r1, r2
	adds r1, r0
	ldrb r1, [r1]
	cmp r6, r1
	bne _0802670A
	mov r0, r12
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xC4
	adds r0, r6
	ldrb r0, [r0]
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _080266D0
	lsls r0, r4, 4
	subs r0, r4
	lsls r0, 2
	adds r0, r1, r0
	ldr r1, =0x000031d4
	adds r0, r1
	movs r1, 0x1
	strb r1, [r0]
	b _0802670A
	.pool
_080266D0:
	movs r0, 0x1
	b _0802670C
_080266D4:
	ldr r0, =gUnknown_082F449C+0x113
	lsls r1, r4, 1
	adds r1, r4
	adds r1, r7, r1
	lsls r2, r5, 4
	subs r2, r5
	adds r1, r2
	adds r1, r0
	ldrb r1, [r1]
	cmp r6, r1
	bne _0802670A
	mov r1, r12
	ldr r0, [r1]
	adds r0, 0xA8
	adds r0, r4
	movs r1, 0x4
	strb r1, [r0]
	mov r0, r12
	ldr r1, [r0]
	lsls r0, r4, 4
	subs r0, r4
	lsls r0, 2
	adds r1, r0
	ldr r0, =0x000031d4
	adds r1, r0
	movs r0, 0x1
	strb r0, [r1]
_0802670A:
	movs r0, 0
_0802670C:
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8026634

	thumb_func_start sub_802671C
sub_802671C: @ 802671C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	ldr r2, =gUnknown_02022C98
	ldr r4, [r2]
	adds r0, r4, 0
	adds r0, 0x44
	ldrb r1, [r0]
	adds r0, 0x4
	ldrb r0, [r0]
	mov r9, r0
	movs r3, 0
	mov r10, r3
	movs r5, 0x90
	lsls r5, 1
	adds r0, r4, r5
	str r3, [r0]
	adds r5, r1, 0
	mov r0, r9
	subs r0, 0x1
	cmp r5, r0
	blt _0802674E
	b _08026974
_0802674E:
	mov r8, r2
_08026750:
	mov r0, r8
	ldr r4, [r0]
	adds r0, r4, 0
	adds r0, 0xC4
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, 0x1
	bls _08026762
	b _0802686C
_08026762:
	movs r1, 0x90
	lsls r1, 1
	adds r0, r4, r1
	movs r2, 0x1
	str r2, [r0]
	ldr r1, =0x000032eb
	adds r0, r4, r1
	adds r6, r0, r5
	ldrb r0, [r6]
	cmp r0, 0x9
	bls _080267FC
	movs r7, 0
	movs r0, 0xA
	strb r0, [r6]
	mov r1, r8
	ldr r0, [r1]
	adds r0, 0xC4
	adds r0, r5
	movs r1, 0x3
	strb r1, [r0]
	mov r1, r8
	ldr r0, [r1]
	movs r6, 0xA4
	lsls r6, 1
	adds r0, r6
	adds r1, r0, r5
	ldrb r0, [r1]
	cmp r0, 0
	bne _080267AC
	strb r2, [r1]
	ldr r2, =0x000032e0
	adds r0, r4, r2
	adds r0, r5
	ldrb r0, [r0]
	adds r0, 0x4A
	bl PlaySE
_080267AC:
	mov r0, r8
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _080267C2
	mov r2, r10
	cmp r2, 0x1
	beq _080267C2
	b _08026964
_080267C2:
	movs r0, 0x1
	mov r10, r0
	adds r0, r1, r6
	adds r0, r5
	strb r7, [r0]
	mov r1, r8
	ldr r0, [r1]
	adds r1, r0, 0
	adds r1, 0x40
	ldrb r0, [r1]
	cmp r0, 0x9
	bhi _080267DE
	adds r0, 0x1
	strb r0, [r1]
_080267DE:
	movs r0, 0x3
	adds r1, r5, 0
	movs r2, 0
	bl sub_8026F1C
	movs r0, 0
	bl sub_8027234
	b _08026964
	.pool
_080267FC:
	adds r0, r5, 0
	bl sub_8026D8C
	mov r2, r8
	ldr r7, [r2]
	lsls r0, 24
	lsrs r0, 24
	adds r1, r7, 0
	adds r1, 0x90
	adds r1, r0
	ldrb r0, [r1]
	movs r1, 0x7
	bl __udivsi3
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x1
	bls _08026822
	movs r3, 0x2
_08026822:
	ldr r2, =gUnknown_082F7A88
	ldr r0, =0x000032e0
	adds r1, r4, r0
	adds r1, r5
	lsls r0, r3, 1
	adds r0, r3
	ldrb r1, [r1]
	adds r0, r1
	adds r0, r2
	ldrb r2, [r0]
	adds r1, r7, 0
	adds r1, 0xD0
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	movs r3, 0
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, r2
	bcc _0802685C
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	mov r1, r8
	ldr r0, [r1]
	adds r0, 0xD0
	adds r0, r5
	strb r3, [r0]
_0802685C:
	bl sub_8026324
	b _08026964
	.pool
_0802686C:
	cmp r0, 0x2
	bne _080268F4
	movs r2, 0x90
	lsls r2, 1
	adds r0, r4, r2
	movs r6, 0x1
	str r6, [r0]
	adds r1, r4, 0
	adds r1, 0xDC
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	movs r3, 0
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x13
	bls _08026964
	mov r0, r8
	ldr r2, [r0]
	adds r0, r2, 0
	adds r0, 0xB8
	adds r0, r5
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r2, r0
	ldr r1, =0x000031d0
	adds r2, r1
	strb r3, [r2]
	mov r2, r8
	ldr r0, [r2]
	adds r0, 0xDC
	adds r0, r5
	strb r3, [r0]
	ldr r0, [r2]
	adds r0, 0xD0
	adds r0, r5
	strb r3, [r0]
	ldr r0, [r2]
	adds r0, 0xC4
	adds r0, r5
	strb r3, [r0]
	ldr r1, =0x000032eb
	adds r0, r4, r1
	adds r0, r5
	strb r6, [r0]
	adds r0, r5, 0
	bl sub_8026D8C
	lsls r0, 24
	lsrs r0, 24
	adds r1, r5, 0
	bl sub_8026DB0
	ldr r2, =0x000032e0
	adds r1, r4, r2
	adds r1, r5
	strb r0, [r1]
	b _08026964
	.pool
_080268F4:
	cmp r0, 0x3
	bne _08026964
	adds r1, r4, 0
	adds r1, 0xDC
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	movs r2, 0
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x13
	bls _08026964
	mov r0, r8
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bhi _08026964
	adds r0, r1, 0
	adds r0, 0xDC
	adds r0, r5
	strb r2, [r0]
	mov r1, r8
	ldr r0, [r1]
	adds r0, 0xD0
	adds r0, r5
	strb r2, [r0]
	ldr r0, [r1]
	adds r0, 0xC4
	adds r0, r5
	strb r2, [r0]
	ldr r2, =0x000032eb
	adds r0, r4, r2
	adds r0, r5
	movs r1, 0x1
	strb r1, [r0]
	mov r0, r8
	ldr r1, [r0]
	adds r1, 0xE8
	adds r1, r5
	subs r2, 0xB
	adds r4, r2
	adds r4, r5
	ldrb r0, [r4]
	strb r0, [r1]
	adds r0, r5, 0
	bl sub_8026D8C
	lsls r0, 24
	lsrs r0, 24
	adds r1, r5, 0
	bl sub_8026DB0
	strb r0, [r4]
_08026964:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	mov r0, r9
	subs r0, 0x1
	cmp r5, r0
	bge _08026974
	b _08026750
_08026974:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802671C

	thumb_func_start sub_8026988
sub_8026988: @ 8026988
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x44
	adds r0, 0x48
	ldrb r0, [r0]
	mov r8, r0
	ldrb r6, [r1]
	cmp r6, r8
	bcs _08026A7A
	ldr r0, =gUnknown_082F449C
	mov r9, r0
_080269A8:
	ldr r0, =gUnknown_02022C98
	ldr r3, [r0]
	adds r0, r3, 0
	adds r0, 0x28
	ldrb r1, [r0]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	ldr r2, =0x000031a0
	adds r0, r2
	adds r7, r3, r0
	movs r0, 0xB
	adds r2, r1, 0
	muls r2, r0
	adds r2, r6, r2
	adds r3, 0x24
	ldrb r1, [r3]
	subs r1, 0x1
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 3
	subs r0, r1
	adds r2, r0
	add r2, r9
	ldrb r4, [r2]
	adds r0, r7, 0
	adds r0, 0x1F
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0
	beq _080269FC
	adds r0, r6, 0
	movs r1, 0
	bl sub_8028BF8
	b _08026A04
	.pool
_080269FC:
	adds r0, r6, 0
	movs r1, 0x1
	bl sub_8028BF8
_08026A04:
	adds r0, r7, 0
	adds r0, 0x1F
	adds r5, r0, r4
	ldrb r0, [r5]
	cmp r0, 0x9
	bls _08026A30
	adds r0, r7, 0
	adds r0, 0x14
	adds r0, r4
	ldrb r1, [r0]
	adds r1, 0x3
	lsls r1, 24
	lsrs r1, 24
	adds r0, r6, 0
	bl sub_8028CA4
	ldrb r1, [r5]
	lsls r1, 25
	movs r0, 0xFF
	lsls r0, 24
	adds r1, r0
	b _08026A52
_08026A30:
	adds r0, r7, 0
	adds r0, 0x14
	adds r3, r0, r4
	ldrb r0, [r3]
	cmp r0, 0x3
	bne _08026A5C
	movs r0, 0x7
	strb r0, [r5]
	adds r0, r6, 0
	movs r1, 0x6
	bl sub_8028CA4
	ldrb r1, [r5]
	lsls r1, 25
	movs r2, 0xFF
	lsls r2, 24
	adds r1, r2
_08026A52:
	lsrs r1, 24
	adds r0, r6, 0
	bl sub_8028C7C
	b _08026A70
_08026A5C:
	ldrb r1, [r3]
	adds r0, r6, 0
	bl sub_8028CA4
	ldrb r1, [r5]
	lsls r1, 25
	lsrs r1, 24
	adds r0, r6, 0
	bl sub_8028C7C
_08026A70:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, r8
	bcc _080269A8
_08026A7A:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8026988

	thumb_func_start sub_8026A88
sub_8026A88: @ 8026A88
	push {r4-r6,lr}
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	adds r0, 0x24
	ldrb r5, [r0]
	movs r4, 0
	cmp r4, r5
	bcs _08026ABA
	adds r6, r1, 0
_08026A9A:
	lsls r0, r4, 4
	subs r0, r4
	lsls r0, 2
	ldr r1, [r6]
	adds r0, r1
	ldr r1, =0x000031cc
	adds r0, r1
	ldrb r1, [r0]
	adds r0, r4, 0
	bl sub_80286B4
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08026A9A
_08026ABA:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026A88

	thumb_func_start sub_8026AC8
sub_8026AC8: @ 8026AC8
	push {r4,r5,lr}
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r5, [r0]
	movs r4, 0
	cmp r4, r5
	bcs _08026AEA
_08026AD8:
	adds r0, r4, 0
	movs r1, 0x4
	bl sub_80286B4
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08026AD8
_08026AEA:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026AC8

	thumb_func_start sub_8026AF4
sub_8026AF4: @ 8026AF4
	push {lr}
	bl sub_8026988
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _08026B10
	bl sub_8026AC8
	b _08026B14
	.pool
_08026B10:
	bl sub_8026A88
_08026B14:
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x40
	ldrb r0, [r0]
	bl sub_80288D4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026AF4

	thumb_func_start sub_8026B28
sub_8026B28: @ 8026B28
	push {lr}
	bl sub_8026988
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x40
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _08026B44
	bl sub_8026AC8
	b _08026B48
	.pool
_08026B44:
	bl sub_8026A88
_08026B48:
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x40
	ldrb r0, [r0]
	bl sub_80288D4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026B28

	thumb_func_start sub_8026B5C
sub_8026B5C: @ 8026B5C
	push {lr}
	adds r3, r1, 0
	lsls r0, 24
	lsrs r0, 24
	subs r0, 0x1
	cmp r0, 0x4
	bhi _08026BB4
	lsls r0, 2
	ldr r1, =_08026B78
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08026B78:
	.4byte _08026B8C
	.4byte _08026B94
	.4byte _08026B9C
	.4byte _08026BA4
	.4byte _08026BAC
_08026B8C:
	movs r0, 0x4
	strb r0, [r3]
	movs r0, 0x7
	b _08026BB2
_08026B94:
	movs r0, 0x3
	strb r0, [r3]
	movs r0, 0x8
	b _08026BB2
_08026B9C:
	movs r0, 0x2
	strb r0, [r3]
	movs r0, 0x9
	b _08026BB2
_08026BA4:
	movs r0, 0x1
	strb r0, [r3]
	movs r0, 0xA
	b _08026BB2
_08026BAC:
	movs r0, 0
	strb r0, [r3]
	movs r0, 0xB
_08026BB2:
	strb r0, [r2]
_08026BB4:
	pop {r0}
	bx r0
	thumb_func_end sub_8026B5C

	thumb_func_start sub_8026BB8
sub_8026BB8: @ 8026BB8
	push {r4-r6,lr}
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	adds r0, 0x24
	ldrb r5, [r0]
	movs r4, 0x1
	cmp r4, r5
	bcs _08026C1E
	adds r6, r1, 0
_08026BCA:
	ldr r0, [r6]
	movs r1, 0xAC
	lsls r1, 1
	adds r0, r1
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0
	bne _08026BEC
	adds r0, r4, 0
	bl sub_8027DFC
	ldr r1, [r6]
	movs r2, 0xAC
	lsls r2, 1
	adds r1, r2
	adds r1, r4
	strb r0, [r1]
_08026BEC:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08026BCA
	cmp r4, r5
	bcs _08026C1E
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	movs r2, 0xAC
	lsls r2, 1
	adds r1, r0, r2
_08026C04:
	adds r0, r1, r4
	ldrb r0, [r0]
	cmp r0, 0
	bne _08026C14
	movs r0, 0
	b _08026C20
	.pool
_08026C14:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08026C04
_08026C1E:
	movs r0, 0x1
_08026C20:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8026BB8

	thumb_func_start sub_8026C28
sub_8026C28: @ 8026C28
	push {r4,lr}
	movs r1, 0
	ldr r4, =gUnknown_02022C98
	movs r3, 0xAC
	lsls r3, 1
	movs r2, 0
_08026C34:
	ldr r0, [r4]
	adds r0, r3
	adds r0, r1
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x4
	bls _08026C34
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026C28

	thumb_func_start sub_8026C50
sub_8026C50: @ 8026C50
	push {r4,lr}
	ldr r3, =gUnknown_02022C98
	ldr r1, [r3]
	adds r2, r1, 0
	adds r2, 0x40
	ldrb r0, [r2]
	cmp r0, 0x9
	bls _08026C88
	movs r4, 0x90
	lsls r4, 1
	adds r0, r1, r4
	ldr r0, [r0]
	cmp r0, 0
	bne _08026C88
	movs r0, 0xA
	strb r0, [r2]
	ldr r0, [r3]
	movs r1, 0x96
	lsls r1, 1
	adds r0, r1
	ldr r0, [r0]
	cmp r0, 0
	beq _08026C88
	movs r0, 0x1
	b _08026C8A
	.pool
_08026C88:
	movs r0, 0
_08026C8A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8026C50

	thumb_func_start sub_8026C90
sub_8026C90: @ 8026C90
	push {r4-r6,lr}
	ldr r4, =gUnknown_02022C98
	ldr r1, [r4]
	adds r2, r1, 0
	adds r2, 0x40
	ldrb r0, [r2]
	cmp r0, 0x9
	bls _08026D14
	adds r0, r1, 0
	adds r0, 0x44
	ldrb r3, [r0]
	adds r0, 0x4
	ldrb r5, [r0]
	movs r0, 0xA
	strb r0, [r2]
	ldr r4, [r4]
	mov r12, r4
	movs r0, 0x96
	lsls r0, 1
	add r0, r12
	ldr r0, [r0]
	cmp r0, 0
	beq _08026D14
	adds r4, r3, 0
	cmp r4, r5
	bcs _08026D04
	mov r0, r12
	adds r0, 0x28
	ldrb r3, [r0]
	lsls r1, r3, 4
	subs r1, r3
	lsls r1, 2
	ldr r6, =gUnknown_082F449C
	subs r0, 0x4
	ldrb r2, [r0]
	subs r2, 0x1
	add r1, r12
	movs r0, 0xB
	muls r3, r0
	lsls r0, r2, 3
	subs r0, r2
	lsls r0, 3
	subs r2, r0, r2
	ldr r0, =0x000031bf
	adds r1, r0
_08026CEA:
	adds r0, r4, r3
	adds r0, r2
	adds r0, r6
	ldrb r0, [r0]
	adds r0, r1, r0
	ldrb r0, [r0]
	cmp r0, 0xA
	bne _08026D14
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08026CEA
_08026D04:
	movs r0, 0x1
	b _08026D16
	.pool
_08026D14:
	movs r0, 0
_08026D16:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8026C90

	thumb_func_start sub_8026D1C
sub_8026D1C: @ 8026D1C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r0, =gUnknown_082F7A9C
	mov r8, r0
	ldr r0, =gUnknown_02022C98
	ldr r6, [r0]
	adds r0, r6, 0
	adds r0, 0x90
	adds r0, r5
	mov r9, r0
	ldrb r7, [r0]
	adds r0, r7, 0
	movs r1, 0x7
	bl __umodsi3
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	add r4, r8
	adds r0, r7, 0
	movs r1, 0x7
	bl __udivsi3
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldrb r4, [r4]
	adds r0, r4
	lsls r0, 24
	lsls r5, 1
	adds r6, 0x86
	adds r6, r5
	ldrh r1, [r6]
	lsrs r0, 24
	cmp r1, r0
	bcc _08026D76
	adds r0, r7, 0x1
	mov r1, r9
	strb r0, [r1]
_08026D76:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8026D1C

	thumb_func_start sub_8026D8C
sub_8026D8C: @ 8026D8C
	lsls r0, 24
	lsrs r0, 24
	ldr r3, =gUnknown_082F449C+0x1AC
	ldr r1, =gUnknown_02022C98
	ldr r1, [r1]
	adds r1, 0x24
	ldrb r1, [r1]
	subs r1, 0x1
	movs r2, 0xB
	muls r1, r2
	adds r0, r1
	adds r0, r3
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_8026D8C

	thumb_func_start sub_8026DB0
sub_8026DB0: @ 8026DB0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	ldr r4, =gUnknown_02022C98
	ldr r1, [r4]
	adds r1, 0x24
	ldrb r2, [r1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldr r3, =gUnknown_082F449C+0x15E
	lsls r1, r0, 1
	adds r1, r0
	lsls r0, r2, 4
	subs r0, r2
	adds r1, r0
	adds r0, r1, r3
	ldrb r0, [r0]
	mov r12, r0
	adds r0, r3, 0x1
	adds r0, r1, r0
	ldrb r7, [r0]
	adds r3, 0x2
	adds r1, r3
	ldrb r1, [r1]
	mov r8, r1
	movs r3, 0
	ldr r1, =gUnknown_082F449C+0x1E3
	lsls r0, r2, 2
	adds r2, r0, r2
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _08026E18
	adds r6, r1, 0
_08026DFE:
	adds r0, r3, r2
	adds r0, r6
	ldrb r0, [r0]
	cmp r5, r0
	beq _08026E3C
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	adds r0, r3, r2
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _08026DFE
_08026E18:
	ldr r0, [r4]
	adds r0, 0x90
	mov r1, r12
	adds r2, r0, r1
	adds r1, r0, r7
	ldrb r0, [r2]
	ldrb r3, [r1]
	cmp r0, r3
	bls _08026E46
	adds r1, r0, 0
	b _08026E48
	.pool
_08026E3C:
	ldr r0, [r4]
	adds r0, 0x90
	adds r0, r7
	ldrb r0, [r0]
	b _08026E5A
_08026E46:
	ldrb r1, [r1]
_08026E48:
	ldr r0, [r4]
	adds r0, 0x90
	mov r2, r8
	adds r4, r0, r2
	ldrb r0, [r4]
	cmp r0, r1
	bls _08026E58
	adds r1, r0, 0
_08026E58:
	adds r0, r1, 0
_08026E5A:
	adds r1, r5, 0
	bl sub_8026E70
	lsls r0, 24
	lsrs r0, 24
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8026DB0

	thumb_func_start sub_8026E70
sub_8026E70: @ 8026E70
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =gUnknown_02022C98
	ldr r2, [r2]
	adds r2, 0xE8
	adds r2, r1
	ldrb r4, [r2]
	movs r1, 0x7
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x6
	bhi _08026EDE
	lsls r0, 2
	ldr r1, =_08026EA4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08026EA4:
	.4byte _08026EDE
	.4byte _08026ED6
	.4byte _08026EE2
	.4byte _08026EC0
	.4byte _08026EC6
	.4byte _08026ECC
	.4byte _08026ED2
_08026EC0:
	cmp r4, 0
	beq _08026ED6
	b _08026EDE
_08026EC6:
	cmp r4, 0
	beq _08026EE2
	b _08026EDE
_08026ECC:
	cmp r4, 0x2
	beq _08026ED6
	b _08026EE2
_08026ED2:
	cmp r4, 0
	bne _08026EDA
_08026ED6:
	movs r0, 0x1
	b _08026EE4
_08026EDA:
	cmp r4, 0x1
	beq _08026EE2
_08026EDE:
	movs r0, 0
	b _08026EE4
_08026EE2:
	movs r0, 0x2
_08026EE4:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8026E70

	thumb_func_start sub_8026EEC
sub_8026EEC: @ 8026EEC
	push {r4-r6,lr}
	movs r6, 0
	movs r5, 0
	adds r4, r0, 0
	b _08026EFE
_08026EF6:
	ldrh r0, [r4, 0x6]
	adds r6, r0
	adds r4, 0xC
	adds r5, 0x1
_08026EFE:
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	cmp r5, r0
	blt _08026EF6
	cmp r6, 0xA
	bgt _08026F12
	movs r0, 0
	b _08026F14
_08026F12:
	movs r0, 0x1
_08026F14:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8026EEC

	thumb_func_start sub_8026F1C
sub_8026F1C: @ 8026F1C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, 24
	lsrs r4, r1, 24
	lsls r2, 24
	lsrs r2, 24
	ldr r6, =gUnknown_02022C98
	ldr r1, [r6]
	adds r0, r1, 0
	adds r0, 0x24
	ldrb r5, [r0]
	cmp r3, 0
	bge _08026F3A
	b _0802722C
_08026F3A:
	cmp r3, 0x2
	ble _08026F48
	cmp r3, 0x3
	beq _08026F78
	b _0802722C
	.pool
_08026F48:
	ldr r3, =0x000031b4
	adds r0, r1, r3
	adds r0, r4
	ldrb r4, [r0]
	lsls r4, 1
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 2
	adds r4, r0
	adds r0, r1, 0
	adds r0, 0x4A
	adds r0, r4
	ldrh r0, [r0]
	ldr r1, =0x00004e20
	bl sub_8027A28
	ldr r1, [r6]
	adds r1, 0x4A
	adds r1, r4
	b _0802722A
	.pool
_08026F78:
	adds r0, r1, 0
	adds r0, 0x4A
	bl sub_8026EEC
	cmp r0, 0
	beq _08026F86
	b _0802722C
_08026F86:
	cmp r5, 0x3
	bne _08026F8C
	b _08027154
_08026F8C:
	cmp r5, 0x3
	bgt _08026F98
	cmp r5, 0x2
	bne _08026F96
	b _080271E8
_08026F96:
	b _0802722C
_08026F98:
	cmp r5, 0x4
	bne _08026F9E
	b _08027090
_08026F9E:
	cmp r5, 0x5
	beq _08026FA4
	b _0802722C
_08026FA4:
	cmp r4, 0x9
	bls _08026FAA
	b _0802722C
_08026FAA:
	lsls r0, r4, 2
	ldr r1, =_08026FB8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08026FB8:
	.4byte _08026FE0
	.4byte _08026FF8
	.4byte _08027004
	.4byte _0802701C
	.4byte _08027028
	.4byte _08027040
	.4byte _0802704C
	.4byte _08027060
	.4byte _0802706C
	.4byte _08027084
_08026FE0:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x68
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x74
	b _08027226
	.pool
_08026FF8:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x74
	b _08027226
	.pool
_08027004:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x74
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x80
	b _08027226
	.pool
_0802701C:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x80
	b _08027226
	.pool
_08027028:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x80
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x50
	b _08027226
	.pool
_08027040:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x50
	b _08027226
	.pool
_0802704C:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x50
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	b _08027224
	.pool
_08027060:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08027224
	.pool
_0802706C:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x5C
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x68
	b _08027226
	.pool
_08027084:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x68
	b _08027226
	.pool
_08027090:
	subs r0, r4, 0x1
	cmp r0, 0x7
	bls _08027098
	b _0802722C
_08027098:
	lsls r0, 2
	ldr r1, =_080270A8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080270A8:
	.4byte _080270C8
	.4byte _080270E0
	.4byte _080270EC
	.4byte _08027104
	.4byte _08027110
	.4byte _08027124
	.4byte _08027130
	.4byte _08027148
_080270C8:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x68
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x74
	b _08027226
	.pool
_080270E0:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x74
	b _08027226
	.pool
_080270EC:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x74
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x50
	b _08027226
	.pool
_08027104:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x50
	b _08027226
	.pool
_08027110:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x50
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	b _08027224
	.pool
_08027124:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08027224
	.pool
_08027130:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x5C
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x68
	b _08027226
	.pool
_08027148:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x68
	b _08027226
	.pool
_08027154:
	subs r0, r4, 0x2
	cmp r0, 0x5
	bhi _0802722C
	lsls r0, 2
	ldr r1, =_08027168
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08027168:
	.4byte _08027180
	.4byte _08027198
	.4byte _080271A4
	.4byte _080271BC
	.4byte _080271C8
	.4byte _080271DC
_08027180:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x5C
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x68
	b _08027226
	.pool
_08027198:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x68
	b _08027226
	.pool
_080271A4:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x68
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	adds r1, 0x50
	b _08027226
	.pool
_080271BC:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x50
	b _08027226
	.pool
_080271C8:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0x50
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	b _08027224
	.pool
_080271DC:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	b _08027224
	.pool
_080271E8:
	cmp r4, 0x4
	beq _0802720E
	cmp r4, 0x4
	bgt _080271F6
	cmp r4, 0x3
	beq _08027200
	b _0802722C
_080271F6:
	cmp r4, 0x5
	beq _08027214
	cmp r4, 0x6
	beq _08027222
	b _0802722C
_08027200:
	ldr r1, [r6]
	adds r2, r1, 0
	adds r2, 0x50
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	b _08027224
_0802720E:
	ldr r1, [r6]
	adds r1, 0x50
	b _08027226
_08027214:
	ldr r1, [r6]
	adds r2, r1, 0
	adds r2, 0x50
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	b _08027224
_08027222:
	ldr r1, [r6]
_08027224:
	adds r1, 0x5C
_08027226:
	ldrh r0, [r1]
	adds r0, 0x1
_0802722A:
	strh r0, [r1]
_0802722C:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8026F1C

	thumb_func_start sub_8027234
sub_8027234: @ 8027234
	push {r4,r5,lr}
	adds r1, r0, 0
	ldr r4, =gUnknown_02022C98
	ldr r3, [r4]
	adds r0, r3, 0
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r0, 0x5
	bne _0802729E
	cmp r1, 0x1
	bne _08027280
	movs r5, 0x89
	lsls r5, 1
	adds r1, r3, r5
	ldrh r0, [r1]
	adds r2, r0, 0x1
	strh r2, [r1]
	movs r0, 0x8A
	lsls r0, 1
	adds r1, r3, r0
	lsls r0, r2, 16
	lsrs r0, 16
	ldrh r3, [r1]
	cmp r0, r3
	bls _08027268
	strh r2, [r1]
_08027268:
	ldr r0, [r4]
	adds r2, r0, r5
	ldrh r0, [r2]
	ldr r1, =0x0000270f
	cmp r0, r1
	bls _0802729E
	strh r1, [r2]
	b _0802729E
	.pool
_08027280:
	movs r2, 0x89
	lsls r2, 1
	adds r0, r3, r2
	movs r5, 0x8A
	lsls r5, 1
	adds r1, r3, r5
	ldrh r0, [r0]
	ldrh r3, [r1]
	cmp r0, r3
	bls _08027296
	strh r0, [r1]
_08027296:
	ldr r0, [r4]
	adds r0, r2
	movs r1, 0
	strh r1, [r0]
_0802729E:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8027234

	thumb_func_start sub_80272A4
sub_80272A4: @ 80272A4
	push {r4,r5,lr}
	movs r3, 0
	ldr r2, =gUnknown_02022C98
	ldr r0, [r2]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r3, r0
	bcs _080272DC
	adds r5, r2, 0
	movs r4, 0x8A
	lsls r4, 1
_080272BA:
	ldr r2, [r5]
	lsls r0, r3, 1
	adds r0, r3
	lsls r0, 2
	adds r1, r2, 0
	adds r1, 0x54
	adds r1, r0
	adds r0, r2, r4
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	adds r2, 0x24
	ldrb r2, [r2]
	cmp r3, r2
	bcc _080272BA
_080272DC:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80272A4

	thumb_func_start sub_80272E8
sub_80272E8: @ 80272E8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	movs r5, 0
	ldr r7, =gUnknown_02022C98
	movs r4, 0
	ldr r0, =0x000031bf
	mov r10, r0
_080272FC:
	movs r2, 0
	lsls r6, r5, 4
	lsls r1, r5, 1
	mov r8, r1
	lsls r0, r5, 3
	mov r12, r0
	adds r1, r5, 0x1
	mov r9, r1
	subs r0, r6, r5
	lsls r3, r0, 2
_08027310:
	ldr r0, [r7]
	adds r1, r2, r3
	add r0, r10
	adds r0, r1
	strb r4, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xA
	bls _08027310
	ldr r0, [r7]
	subs r1, r6, r5
	lsls r1, 2
	adds r0, r1
	ldr r2, =0x000031cc
	adds r0, r2
	strb r4, [r0]
	ldr r0, [r7]
	adds r0, r1
	ldr r1, =0x000031d0
	adds r0, r1
	strb r4, [r0]
	ldr r0, [r7]
	adds r0, 0x90
	adds r0, r5
	strb r4, [r0]
	ldr r1, [r7]
	adds r0, r1, 0
	adds r0, 0x86
	add r0, r8
	strh r4, [r0]
	add r1, r12
	ldr r2, =0x00003308
	adds r1, r2
	strb r4, [r1]
	ldr r2, [r7]
	ldr r1, =0x0000330c
	adds r0, r2, r1
	add r0, r12
	str r4, [r0]
	mov r0, r8
	adds r1, r0, r5
	lsls r1, 2
	adds r0, r2, 0
	adds r0, 0x4A
	adds r0, r1
	strh r4, [r0]
	adds r0, r2, 0
	adds r0, 0x4C
	adds r0, r1
	strh r4, [r0]
	adds r0, r2, 0
	adds r0, 0x4E
	adds r0, r1
	strh r4, [r0]
	adds r0, r2, 0
	adds r0, 0x50
	adds r0, r1
	strh r4, [r0]
	adds r0, r2, 0
	adds r0, 0x52
	adds r0, r1
	strh r4, [r0]
	adds r0, r2, 0
	adds r0, 0x54
	adds r0, r1
	strh r4, [r0]
	mov r1, r9
	lsls r0, r1, 24
	lsrs r5, r0, 24
	cmp r5, 0x4
	bls _080272FC
	ldr r2, =gUnknown_02022C98
	ldr r0, [r2]
	movs r1, 0xAA
	lsls r1, 1
	adds r0, r1
	movs r2, 0
	strb r2, [r0]
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	movs r1, 0x89
	lsls r1, 1
	adds r3, r0, r1
	movs r1, 0
	strh r2, [r3]
	adds r0, 0x40
	strb r1, [r0]
	bl sub_8026A88
	bl sub_8026988
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80272E8

	thumb_func_start sub_80273F0
sub_80273F0: @ 80273F0
	push {r4,r5,lr}
	movs r4, 0
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r0, [r0]
	cmp r0, 0x4
	beq _0802740C
	cmp r0, 0x5
	beq _08027410
	b _08027412
	.pool
_0802740C:
	movs r4, 0x1
	b _08027412
_08027410:
	movs r4, 0x2
_08027412:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xA
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	movs r3, 0
	lsls r1, r4, 2
	ldr r5, =gUnknown_02022C98
	ldr r2, =gUnknown_082F7AA4
	adds r1, r4
	lsls r1, 1
	adds r0, r1
	adds r0, r2
	ldrb r2, [r0]
_08027436:
	ldr r1, [r5]
	lsls r0, r3, 1
	adds r0, r3
	lsls r0, 2
	adds r1, 0x52
	adds r1, r0
	strh r2, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x4
	bls _08027436
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80273F0

	thumb_func_start sub_802745C
sub_802745C: @ 802745C
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_02022C98
	ldr r2, [r1]
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	adds r0, r2, 0
	adds r0, 0x4A
	adds r0, r1
	ldrh r3, [r0]
	adds r0, r2, 0
	adds r0, 0x4C
	adds r0, r1
	ldrh r0, [r0]
	adds r2, 0x4E
	adds r2, r1
	adds r3, r0
	ldrh r2, [r2]
	adds r0, r3, r2
	ldr r1, =0x0000270f
	cmp r0, r1
	bls _0802748E
	adds r0, r1, 0
_0802748E:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802745C

	thumb_func_start sub_802749C
sub_802749C: @ 802749C
	push {r4-r6,lr}
	ldr r5, =gUnknown_02022C98
	ldr r0, [r5]
	adds r0, 0x28
	ldrb r0, [r0]
	bl sub_802745C
	ldr r1, =0x0000270f
	bl sub_8027A38
	adds r4, r0, 0
	ldr r0, [r5]
	adds r0, 0x28
	ldrb r0, [r0]
	bl sub_80276C0
	ldr r1, =0x000f4236
	bl sub_8027A38
	adds r2, r0, 0
	ldr r3, =gSaveBlock2Ptr
	ldr r0, [r3]
	movs r6, 0x83
	lsls r6, 2
	adds r1, r0, r6
	ldr r0, [r1]
	cmp r0, r2
	bcs _080274D6
	str r2, [r1]
_080274D6:
	ldr r0, [r3]
	movs r2, 0x84
	lsls r2, 2
	adds r1, r0, r2
	ldrh r0, [r1]
	cmp r0, r4
	bcs _080274E6
	strh r4, [r1]
_080274E6:
	ldr r0, [r3]
	ldr r6, =0x00000212
	adds r2, r0, r6
	ldr r0, [r5]
	movs r1, 0x8A
	lsls r1, 1
	adds r0, r1
	ldrh r1, [r0]
	ldrh r0, [r2]
	cmp r0, r1
	bcs _080274FE
	strh r1, [r2]
_080274FE:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802749C

	thumb_func_start sub_8027518
sub_8027518: @ 8027518
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r1, =gUnknown_02022C98
	ldr r0, [r1]
	adds r0, 0x9B
	ldrb r6, [r0]
	movs r3, 0x3
	adds r5, r1, 0
	adds r4, r5, 0
_0802752C:
	ldr r0, [r4]
	adds r0, 0x98
	adds r2, r0, r3
	subs r1, r3, 0x1
	adds r0, r1
	ldrb r0, [r0]
	strb r0, [r2]
	lsls r1, 24
	lsrs r3, r1, 24
	cmp r3, 0
	bne _0802752C
	ldr r0, [r5]
	adds r0, 0x98
	strb r7, [r0]
	adds r0, r6, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8027518

	thumb_func_start sub_8027554
sub_8027554: @ 8027554
	push {r4,lr}
	ldr r4, =gUnknown_02022C98
	ldr r3, [r4]
	adds r0, r3, 0
	adds r0, 0x28
	ldrb r1, [r0]
	adds r0, 0x88
	adds r2, r0, r1
	ldrb r0, [r2]
	cmp r0, 0
	bne _080275FC
	ldr r0, =gMain
	ldrh r2, [r0, 0x2E]
	movs r0, 0x40
	ands r0, r2
	cmp r0, 0
	beq _08027594
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r0, r3, r0
	ldr r1, =0x000031cc
	adds r0, r1
	movs r1, 0x2
	b _080275CA
	.pool
_08027594:
	movs r0, 0x20
	ands r0, r2
	cmp r0, 0
	beq _080275B0
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r0, r3, r0
	ldr r1, =0x000031cc
	adds r0, r1
	movs r1, 0x3
	b _080275CA
	.pool
_080275B0:
	movs r0, 0x10
	ands r0, r2
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0
	beq _080275E8
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r0, r3, r0
	ldr r1, =0x000031cc
	adds r0, r1
	movs r1, 0x1
_080275CA:
	strb r1, [r0]
	ldr r0, [r4]
	adds r1, r0, 0
	adds r1, 0x28
	adds r0, 0xB0
	ldrb r1, [r1]
	adds r0, r1
	movs r1, 0x6
	strb r1, [r0]
	movs r0, 0xD4
	bl PlaySE
	b _08027600
	.pool
_080275E8:
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 2
	adds r0, r3, r0
	ldr r1, =0x000031cc
	adds r0, r1
	strb r2, [r0]
	b _08027600
	.pool
_080275FC:
	subs r0, 0x1
	strb r0, [r2]
_08027600:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8027554

	thumb_func_start sub_8027608
sub_8027608: @ 8027608
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x28
	ldrb r2, [r0]
	lsls r0, r2, 4
	subs r0, r2
	lsls r0, 2
	adds r1, r0
	ldr r0, =0x000031cc
	adds r1, r0
	movs r0, 0
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_8027608

	thumb_func_start sub_802762C
sub_802762C: @ 802762C
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x28
	ldrb r2, [r0]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 2
	adds r1, 0x52
	adds r1, r0
	ldrh r0, [r1]
	adds r0, 0x85
	lsls r0, 16
	lsrs r0, 16
	bx lr
	.pool
	thumb_func_end sub_802762C

	thumb_func_start sub_8027650
sub_8027650: @ 8027650
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_8027650

	thumb_func_start sub_8027660
sub_8027660: @ 8027660
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0802768C
	ldr r0, =gUnknown_02022C98
	lsls r1, r2, 4
	subs r1, r2
	lsls r1, 2
	ldr r2, =0x000031a0
	adds r1, r2
	ldr r0, [r0]
	b _08027694
	.pool
_0802768C:
	lsls r0, r2, 3
	subs r0, r2
	lsls r0, 2
	ldr r1, =gLinkPlayers + 8
_08027694:
	adds r0, r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8027660

	thumb_func_start sub_80276A0
sub_80276A0: @ 80276A0
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	ldr r2, =gUnknown_02022C98
	ldr r3, [r2]
	lsrs r1, 23
	lsls r2, r0, 1
	adds r2, r0
	lsls r2, 2
	adds r1, r2
	adds r3, 0x4A
	adds r3, r1
	ldrh r0, [r3]
	bx lr
	.pool
	thumb_func_end sub_80276A0

	thumb_func_start sub_80276C0
sub_80276C0: @ 80276C0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	movs r5, 0
	movs r3, 0
	ldr r0, =gUnknown_02022C98
	mov r9, r0
	ldr r2, =gUnknown_082F7B24
	mov r10, r2
	ldr r2, [r0]
	lsls r1, r4, 1
	adds r0, r1, r4
	lsls r0, 2
	str r0, [sp]
	adds r6, r2, 0
	adds r6, 0x4A
	mov r12, r1
	mov r8, r10
_080276EE:
	lsls r1, r3, 1
	ldr r7, [sp]
	adds r0, r1, r7
	adds r0, r6, r0
	ldrh r2, [r0]
	add r1, r8
	movs r7, 0
	ldrsh r0, [r1, r7]
	muls r0, r2
	adds r5, r0
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x2
	bls _080276EE
	mov r0, r9
	ldr r1, [r0]
	mov r2, r12
	adds r0, r2, r4
	lsls r0, 2
	adds r1, 0x50
	adds r1, r0
	ldrh r1, [r1]
	mov r3, r10
	movs r7, 0x6
	ldrsh r0, [r3, r7]
	muls r0, r1
	cmp r5, r0
	bls _08027734
	subs r0, r5, r0
	b _08027736
	.pool
_08027734:
	movs r0, 0
_08027736:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_80276C0

	thumb_func_start sub_8027748
sub_8027748: @ 8027748
	push {r4-r6,lr}
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r6, [r0]
	movs r0, 0
	bl sub_80276C0
	adds r5, r0, 0
	movs r4, 0x1
	cmp r4, r6
	bcs _08027776
_08027760:
	adds r0, r4, 0
	bl sub_80276C0
	cmp r0, r5
	bls _0802776C
	adds r5, r0, 0
_0802776C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r6
	bcc _08027760
_08027776:
	ldr r1, =0x000f4236
	adds r0, r5, 0
	bl sub_8027A38
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8027748

	thumb_func_start sub_802778C
sub_802778C: @ 802778C
	push {r4,r5,lr}
	lsls r0, 24
	ldr r1, =gUnknown_02022C98
	ldr r2, [r1]
	adds r1, r2, 0
	adds r1, 0x24
	ldrb r5, [r1]
	lsrs r4, r0, 23
	adds r2, 0x4A
	adds r0, r2, r4
	ldrh r3, [r0]
	movs r1, 0
	cmp r1, r5
	bcs _080277C4
_080277A8:
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, r4, r0
	adds r0, r2, r0
	ldrh r0, [r0]
	cmp r0, r3
	bls _080277BA
	adds r3, r0, 0
_080277BA:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, r5
	bcc _080277A8
_080277C4:
	adds r0, r3, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802778C

	thumb_func_start sub_80277D0
sub_80277D0: @ 80277D0
	push {r4-r7,lr}
	sub sp, 0x14
	lsls r0, 24
	lsrs r7, r0, 24
	movs r6, 0x1
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r5, [r0]
	movs r4, 0
	cmp r4, r5
	bcs _080277FE
_080277E8:
	adds r0, r4, 0
	bl sub_80276C0
	lsls r1, r4, 2
	add r1, sp
	str r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _080277E8
_080277FE:
	lsls r7, 2
	mov r12, r7
	cmp r6, 0
	beq _08027838
	subs r7, r5, 0x1
_08027808:
	movs r6, 0
	movs r4, 0
	cmp r6, r7
	bge _08027834
	adds r5, r7, 0
_08027812:
	lsls r0, r4, 2
	mov r2, sp
	adds r1, r2, r0
	adds r4, 0x1
	lsls r0, r4, 2
	adds r3, r2, r0
	ldr r0, [r1]
	ldr r2, [r3]
	cmp r0, r2
	bcs _0802782C
	str r2, [r1]
	str r0, [r3]
	movs r6, 0x1
_0802782C:
	lsls r0, r4, 24
	lsrs r4, r0, 24
	cmp r4, r5
	blt _08027812
_08027834:
	cmp r6, 0
	bne _08027808
_08027838:
	mov r0, sp
	add r0, r12
	ldr r0, [r0]
	add sp, 0x14
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_80277D0

	thumb_func_start sub_802784C
sub_802784C: @ 802784C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	movs r0, 0
	mov r10, r0
	mov r8, r0
	mov r9, r0
	ldr r6, =gUnknown_02022C98
	ldr r0, [r6]
	adds r0, 0x24
	ldrb r5, [r0]
	bl sub_8027748
	bl sub_8027748
	cmp r0, 0
	bne _080278A0
	movs r4, 0
	cmp r9, r5
	bcs _080278A0
	adds r2, r6, 0
	ldr r1, =0x00003308
	mov r12, r1
	movs r7, 0
	movs r6, 0x4
	ldr r3, =0x0000330c
_08027884:
	ldr r0, [r2]
	lsls r1, r4, 3
	adds r0, r1
	add r0, r12
	strb r6, [r0]
	ldr r0, [r2]
	adds r0, r3
	adds r0, r1
	str r7, [r0]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08027884
_080278A0:
	movs r4, 0
	cmp r4, r5
	bcs _080278CA
_080278A6:
	adds r0, r4, 0
	bl sub_80276C0
	ldr r1, =0x000f4236
	bl sub_8027A38
	ldr r1, =gUnknown_02022C98
	ldr r1, [r1]
	lsls r2, r4, 3
	ldr r3, =0x0000330c
	adds r1, r3
	adds r1, r2
	str r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _080278A6
_080278CA:
	mov r0, r10
	bl sub_80277D0
	adds r6, r0, 0
	mov r3, r8
	movs r4, 0
	cmp r4, r5
	bcs _08027916
	ldr r7, =gUnknown_02022C98
	mov r10, r7
_080278DE:
	mov r0, r10
	ldr r2, [r0]
	lsls r1, r4, 3
	ldr r7, =0x0000330c
	adds r0, r2, r7
	adds r0, r1
	ldr r0, [r0]
	cmp r6, r0
	bne _0802790C
	adds r0, r2, r1
	ldr r1, =0x00003308
	adds r0, r1
	strb r3, [r0]
	mov r0, r8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	mov r0, r9
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
_0802790C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _080278DE
_08027916:
	mov r10, r8
	cmp r9, r5
	bcc _080278CA
	movs r0, 0
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802784C

	thumb_func_start sub_802793C
sub_802793C: @ 802793C
	lsls r1, 24
	ldr r2, =gUnknown_02022C98
	ldr r2, [r2]
	lsrs r1, 21
	ldr r3, =0x00003308
	adds r2, r3
	adds r2, r1
	ldr r1, [r2]
	ldr r2, [r2, 0x4]
	str r1, [r0]
	str r2, [r0, 0x4]
	bx lr
	.pool
	thumb_func_end sub_802793C

	thumb_func_start sub_802795C
sub_802795C: @ 802795C
	push {r4-r7,lr}
	sub sp, 0x14
	lsls r0, 24
	lsrs r6, r0, 24
	movs r7, 0
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r5, [r0]
	mov r0, sp
	movs r1, 0
	movs r2, 0x14
	bl memset
	movs r4, 0
	cmp r7, r5
	bcs _08027994
_0802797E:
	adds r0, r4, 0
	bl sub_80276C0
	lsls r1, r4, 2
	add r1, sp
	str r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _0802797E
_08027994:
	lsls r0, r6, 2
	add r0, sp
	ldr r1, [r0]
	movs r4, 0
_0802799C:
	cmp r4, r6
	beq _080279B0
	lsls r0, r4, 2
	add r0, sp
	ldr r0, [r0]
	cmp r1, r0
	bcs _080279B0
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
_080279B0:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x4
	bls _0802799C
	adds r0, r7, 0
	add sp, 0x14
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802795C

	thumb_func_start sub_80279C8
sub_80279C8: @ 80279C8
	push {r4-r6,lr}
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x28
	ldrb r4, [r0]
	bl sub_802762C
	lsls r0, 16
	lsrs r5, r0, 16
	adds r6, r5, 0
	adds r0, r4, 0
	bl sub_80276C0
	adds r4, r0, 0
	bl sub_8027748
	cmp r4, r0
	beq _080279F4
	movs r0, 0x3
	b _08027A22
	.pool
_080279F4:
	adds r0, r5, 0
	movs r1, 0x1
	bl CheckBagHasSpace
	lsls r0, 24
	cmp r0, 0
	bne _08027A06
	movs r0, 0x2
	b _08027A22
_08027A06:
	adds r0, r6, 0
	movs r1, 0x1
	bl AddBagItem
	adds r0, r6, 0
	movs r1, 0x1
	bl CheckBagHasSpace
	lsls r0, 24
	cmp r0, 0
	beq _08027A20
	movs r0, 0
	b _08027A22
_08027A20:
	movs r0, 0x1
_08027A22:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_80279C8

	thumb_func_start sub_8027A28
sub_8027A28: @ 8027A28
	push {lr}
	adds r2, r0, 0
	adds r0, r1, 0
	cmp r2, r0
	bcs _08027A34
	adds r0, r2, 0x1
_08027A34:
	pop {r1}
	bx r1
	thumb_func_end sub_8027A28

	thumb_func_start sub_8027A38
sub_8027A38: @ 8027A38
	push {lr}
	adds r2, r0, 0
	adds r0, r1, 0
	cmp r2, r0
	bcs _08027A44
	adds r0, r2, 0
_08027A44:
	pop {r1}
	bx r1
	thumb_func_end sub_8027A38

	thumb_func_start sub_8027A48
sub_8027A48: @ 8027A48
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_02022C98
	ldr r1, [r1]
	adds r1, 0x34
	adds r1, r0
	ldrb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_8027A48

	thumb_func_start sub_8027A5C
sub_8027A5C: @ 8027A5C
	push {r4-r6,lr}
	movs r5, 0
	ldr r6, =gSpecialVar_Result
_08027A62:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x5
	bl GetMonData
	cmp r0, 0
	beq _08027A94
	adds r0, r4, 0
	movs r1, 0x41
	bl GetMonData
	cmp r0, 0x55
	bne _08027A94
	movs r0, 0x1
	strh r0, [r6]
	b _08027AA0
	.pool
_08027A94:
	adds r5, 0x1
	cmp r5, 0x5
	ble _08027A62
	ldr r1, =gSpecialVar_Result
	movs r0, 0
	strh r0, [r1]
_08027AA0:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8027A5C

	thumb_func_start sub_8027AAC
sub_8027AAC: @ 8027AAC
	push {r4,lr}
	ldr r4, =sub_8027ACC
	adds r0, r4, 0
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	bl _call_via_r4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8027AAC

	thumb_func_start sub_8027ACC
sub_8027ACC: @ 8027ACC
	push {r4-r7,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r7, r0, r1
	movs r1, 0
	ldrsh r0, [r7, r1]
	cmp r0, 0x1
	beq _08027B94
	cmp r0, 0x1
	bgt _08027AF4
	cmp r0, 0
	beq _08027AFE
	b _08027BE2
	.pool
_08027AF4:
	cmp r0, 0x2
	beq _08027BA0
	cmp r0, 0x3
	beq _08027BC8
	b _08027BE2
_08027AFE:
	ldr r0, =gUnknown_082F7B2C
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp]
	str r1, [sp, 0x4]
	ldr r1, =gText_BerryPickingRecords
	movs r0, 0x1
	movs r2, 0
	bl GetStringWidth
	adds r4, r0, 0
	movs r6, 0
	ldr r5, =gUnknown_082F7B34
_08027B18:
	ldr r1, [r5]
	movs r0, 0x1
	movs r2, 0
	bl GetStringWidth
	adds r0, 0x32
	cmp r0, r4
	ble _08027B2A
	adds r4, r0, 0
_08027B2A:
	adds r5, 0x4
	adds r6, 0x1
	cmp r6, 0x2
	bls _08027B18
	adds r0, r4, 0x7
	cmp r0, 0
	bge _08027B3A
	adds r0, 0x7
_08027B3A:
	asrs r4, r0, 3
	movs r0, 0x1
	ands r0, r4
	cmp r0, 0
	beq _08027B46
	adds r4, 0x1
_08027B46:
	movs r1, 0x1E
	subs r1, r4
	lsrs r0, r1, 31
	adds r1, r0
	asrs r1, 1
	lsls r1, 24
	lsrs r1, 16
	ldr r2, =0xffff00ff
	ldr r0, [sp]
	ands r0, r2
	orrs r0, r1
	lsls r2, r4, 24
	ldr r1, =0x00ffffff
	ands r0, r1
	orrs r0, r2
	str r0, [sp]
	mov r0, sp
	bl AddWindow
	strh r0, [r7, 0x2]
	lsls r0, 24
	lsrs r0, 24
	adds r1, r4, 0
	bl sub_8027BEC
	ldrb r0, [r7, 0x2]
	movs r1, 0x3
	b _08027BB6
	.pool
_08027B94:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _08027BE2
	b _08027BBA
_08027BA0:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _08027BE2
	ldrb r0, [r7, 0x2]
	bl rbox_fill_rectangle
	ldrb r0, [r7, 0x2]
	movs r1, 0x1
_08027BB6:
	bl CopyWindowToVram
_08027BBA:
	ldrh r0, [r7]
	adds r0, 0x1
	strh r0, [r7]
	b _08027BE2
	.pool
_08027BC8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _08027BE2
	ldrb r0, [r7, 0x2]
	bl RemoveWindow
	adds r0, r4, 0
	bl DestroyTask
	bl EnableBothScriptContexts
_08027BE2:
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8027ACC

	thumb_func_start sub_8027BEC
sub_8027BEC: @ 8027BEC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	str r1, [sp, 0x18]
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	movs r2, 0x84
	lsls r2, 2
	adds r0, r1, r2
	ldrh r0, [r0]
	str r0, [sp, 0xC]
	subs r2, 0x4
	adds r0, r1, r2
	ldr r0, [r0]
	str r0, [sp, 0x10]
	ldr r0, =0x00000212
	adds r1, r0
	ldrh r0, [r1]
	str r0, [sp, 0x14]
	ldr r4, =0x0000021d
	adds r0, r7, 0
	adds r1, r4, 0
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx_
	adds r0, r7, 0
	adds r1, r4, 0
	movs r2, 0xD
	bl sub_8098858
	adds r0, r7, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gText_BerryPickingRecords
	ldr r0, [sp, 0x18]
	lsls r2, r0, 3
	movs r0, 0x1
	adds r1, r4, 0
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	adds r2, r4, 0
	bl AddTextPrinterParameterized
	movs r6, 0
	ldr r2, =gStringVar1
	mov r8, r2
	movs r0, 0xFF
	mov r10, r0
	mov r9, r6
	mov r2, sp
	adds r2, 0xC
	str r2, [sp, 0x1C]
_08027C76:
	lsls r4, r6, 2
	ldr r0, [sp, 0x1C]
	ldm r0!, {r1}
	str r0, [sp, 0x1C]
	ldr r0, =gUnknown_082F7B40
	adds r0, r6, r0
	ldrb r3, [r0]
	mov r0, r8
	movs r2, 0
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	mov r1, r8
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	adds r5, r0, 0
	ldr r0, =gUnknown_082F7B34
	adds r4, r0
	ldr r2, [r4]
	ldr r0, =gUnknown_082F7B44
	lsls r4, r6, 1
	adds r0, r4, r0
	ldrb r0, [r0]
	str r0, [sp]
	mov r0, r10
	str r0, [sp, 0x4]
	mov r0, r9
	str r0, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r2, [sp, 0x18]
	lsls r3, r2, 3
	subs r3, r5
	lsls r3, 24
	lsrs r3, 24
	ldr r0, =gUnknown_082F7B4A
	adds r4, r0
	ldrb r0, [r4]
	str r0, [sp]
	mov r0, r10
	str r0, [sp, 0x4]
	mov r2, r9
	str r2, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	mov r2, r8
	bl AddTextPrinterParameterized
	adds r6, 0x1
	cmp r6, 0x2
	ble _08027C76
	adds r0, r7, 0
	bl PutWindowTilemap
	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_8027BEC

	thumb_func_start sub_8027D20
sub_8027D20: @ 8027D20
	push {lr}
	bl GetLinkPlayerCount
	ldr r1, =gUnknown_02022C98
	ldr r1, [r1]
	adds r1, 0x24
	strb r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8027D20

	thumb_func_start sub_8027D38
sub_8027D38: @ 8027D38
	push {r4-r7,lr}
	ldr r0, =gUnknown_02022C98
	ldr r0, [r0]
	adds r0, 0x24
	ldrb r4, [r0]
	cmp r4, 0x4
	bhi _08027D66
	ldr r5, =gUnknown_082F7B90
_08027D48:
	lsls r0, r4, 3
	subs r0, r4
	lsls r0, 2
	ldr r1, =gLinkPlayers + 8
	adds r0, r1
	lsls r1, r4, 2
	adds r1, r5
	ldr r1, [r1]
	bl StringCopy
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x4
	bls _08027D48
_08027D66:
	ldr r0, =gUnknown_02022C98
	ldr r1, [r0]
	adds r1, 0x24
	movs r2, 0x5
	strb r2, [r1]
	movs r1, 0
	mov r12, r0
_08027D74:
	movs r4, 0
	mov r2, r12
	ldr r0, [r2]
	adds r0, 0x24
	adds r5, r1, 0x1
	ldrb r0, [r0]
	cmp r4, r0
	bcs _08027DB2
	ldr r7, =gUnknown_02022C98
	lsls r3, r1, 1
	ldr r6, =gUnknown_082F7B50
_08027D8A:
	ldr r2, [r7]
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 2
	adds r0, r3, r0
	adds r1, r2, 0
	adds r1, 0x4A
	adds r1, r0
	lsls r0, r4, 3
	adds r0, r3, r0
	adds r0, r6
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	adds r2, 0x24
	ldrb r2, [r2]
	cmp r4, r2
	bcc _08027D8A
_08027DB2:
	lsls r0, r5, 24
	lsrs r1, r0, 24
	cmp r1, 0x3
	bls _08027D74
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8027D38

	thumb_func_start sub_8027DD0
sub_8027DD0: @ 8027DD0
	push {lr}
	sub sp, 0x8
	ldr r3, =0xffffff00
	ldr r1, [sp]
	ands r1, r3
	movs r2, 0x1
	orrs r1, r2
	str r1, [sp]
	lsls r0, 24
	lsrs r0, 24
	ldr r1, [sp, 0x4]
	ands r1, r3
	orrs r1, r0
	str r1, [sp, 0x4]
	mov r0, sp
	bl sub_800FE50
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8027DD0

	thumb_func_start sub_8027DFC
sub_8027DFC: @ 8027DFC
	push {lr}
	adds r2, r0, 0
	ldr r3, =gRecvCmds
	ldrh r0, [r3]
	movs r1, 0xFF
	lsls r1, 8
	ands r1, r0
	movs r0, 0xBC
	lsls r0, 6
	cmp r1, r0
	bne _08027E1E
	lsls r0, r2, 4
	adds r1, r3, 0x2
	adds r1, r0, r1
	ldrb r0, [r1]
	cmp r0, 0x1
	beq _08027E28
_08027E1E:
	movs r0, 0
	b _08027E2A
	.pool
_08027E28:
	ldrb r0, [r1, 0x4]
_08027E2A:
	pop {r1}
	bx r1
	thumb_func_end sub_8027DFC

	thumb_func_start sub_8027E30
sub_8027E30: @ 8027E30
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	ldr r4, [sp, 0x48]
	lsls r4, 24
	str r4, [sp, 0x1C]
	movs r4, 0x14
	adds r4, r0
	mov r9, r4
	mov r5, sp
	movs r4, 0x2
	strb r4, [r5]
	mov r10, sp
	mov r5, r9
	ldrb r4, [r5, 0xB]
	movs r7, 0xF
	adds r5, r7, 0
	ands r5, r4
	mov r6, r10
	ldrb r6, [r6, 0x1]
	mov r8, r6
	movs r4, 0x10
	negs r4, r4
	mov r6, r8
	ands r4, r6
	orrs r4, r5
	mov r5, r10
	strb r4, [r5, 0x1]
	mov r8, sp
	mov r6, r9
	ldrb r5, [r6, 0xC]
	lsls r5, 4
	ands r4, r7
	orrs r4, r5
	mov r5, r8
	strb r4, [r5, 0x1]
	ldrb r5, [r6, 0xD]
	movs r6, 0xF
	ands r5, r6
	mov r4, r10
	ldrb r4, [r4, 0x2]
	mov r8, r4
	movs r4, 0x10
	negs r4, r4
	mov r6, r8
	ands r4, r6
	orrs r4, r5
	mov r5, r10
	strb r4, [r5, 0x2]
	mov r8, sp
	mov r6, r9
	ldrb r5, [r6, 0xE]
	lsls r5, 4
	ands r4, r7
	orrs r4, r5
	mov r5, r8
	strb r4, [r5, 0x2]
	ldrb r5, [r6, 0xF]
	movs r6, 0xF
	ands r5, r6
	mov r4, r10
	ldrb r4, [r4, 0x3]
	mov r8, r4
	movs r4, 0x10
	negs r4, r4
	mov r6, r8
	ands r4, r6
	orrs r4, r5
	mov r5, r10
	strb r4, [r5, 0x3]
	mov r8, sp
	mov r6, r9
	ldrb r5, [r6, 0x10]
	lsls r5, 4
	ands r4, r7
	orrs r4, r5
	mov r5, r8
	strb r4, [r5, 0x3]
	ldrb r5, [r6, 0x11]
	movs r6, 0xF
	ands r5, r6
	mov r4, r10
	ldrb r4, [r4, 0x4]
	mov r8, r4
	movs r4, 0x10
	negs r4, r4
	mov r6, r8
	ands r4, r6
	orrs r4, r5
	mov r5, r10
	strb r4, [r5, 0x4]
	mov r8, sp
	mov r6, r9
	ldrb r5, [r6, 0x12]
	lsls r5, 4
	ands r4, r7
	orrs r4, r5
	mov r5, r8
	strb r4, [r5, 0x4]
	ldrb r4, [r6, 0x13]
	movs r6, 0xF
	ands r4, r6
	mov r6, r8
	ldrb r5, [r6, 0x5]
	movs r6, 0x10
	negs r6, r6
	ands r6, r5
	orrs r6, r4
	str r6, [sp, 0xC]
	mov r4, r8
	strb r6, [r4, 0x5]
	mov r5, sp
	mov r6, r9
	ldrb r4, [r6, 0x14]
	lsls r4, 4
	ldr r6, [sp, 0xC]
	ands r6, r7
	orrs r6, r4
	strb r6, [r5, 0x5]
	mov r7, sp
	movs r4, 0x3
	mov r8, r4
	ldrb r0, [r0, 0x14]
	mov r5, r8
	ands r0, r5
	ldrb r5, [r7, 0x6]
	movs r6, 0x4
	negs r6, r6
	mov r10, r6
	mov r4, r10
	ands r4, r5
	orrs r4, r0
	strb r4, [r7, 0x6]
	mov r5, r9
	ldrb r0, [r5, 0x1]
	mov r6, r8
	ands r0, r6
	lsls r0, 2
	movs r5, 0xD
	negs r5, r5
	ands r5, r4
	orrs r5, r0
	strb r5, [r7, 0x6]
	mov r0, r9
	ldrb r4, [r0, 0x2]
	ands r4, r6
	lsls r4, 4
	movs r0, 0x31
	negs r0, r0
	ands r0, r5
	orrs r0, r4
	strb r0, [r7, 0x6]
	mov r5, sp
	mov r6, r9
	ldrb r4, [r6, 0x3]
	lsls r4, 6
	movs r6, 0x3F
	ands r0, r6
	orrs r0, r4
	strb r0, [r5, 0x6]
	mov r4, r9
	ldrb r0, [r4, 0x4]
	mov r5, r8
	ands r0, r5
	ldrb r5, [r7, 0x7]
	mov r4, r10
	ands r4, r5
	orrs r4, r0
	strb r4, [r7, 0x7]
	mov r6, r9
	ldrb r0, [r6, 0x5]
	mov r5, r8
	ands r0, r5
	lsls r0, 2
	movs r5, 0xD
	negs r5, r5
	ands r5, r4
	orrs r5, r0
	strb r5, [r7, 0x7]
	ldrb r4, [r6, 0x6]
	mov r6, r8
	ands r4, r6
	lsls r4, 4
	movs r0, 0x31
	negs r0, r0
	ands r0, r5
	orrs r0, r4
	strb r0, [r7, 0x7]
	mov r5, sp
	mov r6, r9
	ldrb r4, [r6, 0x7]
	lsls r4, 6
	movs r6, 0x3F
	ands r0, r6
	orrs r0, r4
	strb r0, [r5, 0x7]
	mov r8, sp
	mov r0, r9
	ldrb r4, [r0, 0x8]
	movs r7, 0x3
	adds r0, r7, 0
	ands r0, r4
	mov r4, r8
	ldrb r5, [r4, 0x8]
	mov r4, r10
	ands r4, r5
	orrs r4, r0
	mov r5, r8
	strb r4, [r5, 0x8]
	mov r6, r9
	ldrb r5, [r6, 0x9]
	adds r0, r7, 0
	ands r0, r5
	lsls r0, 2
	movs r5, 0xD
	negs r5, r5
	ands r5, r4
	orrs r5, r0
	mov r0, r8
	strb r5, [r0, 0x8]
	ldrb r0, [r1]
	adds r4, r7, 0
	ands r4, r0
	lsls r4, 4
	movs r0, 0x31
	negs r0, r0
	ands r0, r5
	orrs r0, r4
	mov r4, r8
	strb r0, [r4, 0x8]
	mov r5, sp
	ldrb r4, [r2]
	lsls r4, 6
	movs r6, 0x3F
	ands r0, r6
	orrs r0, r4
	strb r0, [r5, 0x8]
	ldrb r4, [r3]
	adds r0, r7, 0
	ands r0, r4
	ldrb r4, [r5, 0x9]
	mov r6, r10
	ands r6, r4
	orrs r6, r0
	mov r10, r6
	strb r6, [r5, 0x9]
	ldr r0, [sp, 0x40]
	ldrb r4, [r0]
	adds r0, r7, 0
	ands r0, r4
	lsls r0, 2
	movs r4, 0xD
	negs r4, r4
	ands r6, r4
	orrs r6, r0
	str r6, [sp, 0x10]
	strb r6, [r5, 0x9]
	mov r4, sp
	ldr r5, [sp, 0x44]
	ldrb r0, [r5]
	adds r6, r7, 0
	ands r6, r0
	lsls r0, r6, 4
	subs r7, 0x34
	ldr r5, [sp, 0x10]
	ands r7, r5
	orrs r7, r0
	strb r7, [r4, 0x9]
	mov r5, sp
	ldrb r0, [r1, 0x4]
	movs r6, 0x1
	mov r12, r6
	mov r4, r12
	ands r4, r0
	lsls r4, 6
	movs r0, 0x41
	negs r0, r0
	mov r10, r0
	ands r0, r7
	orrs r0, r4
	strb r0, [r5, 0x9]
	ldrb r4, [r2, 0x4]
	lsls r4, 7
	movs r5, 0x7F
	ands r0, r5
	orrs r0, r4
	mov r4, r8
	strb r0, [r4, 0x9]
	ldrb r4, [r3, 0x4]
	mov r0, r12
	ands r0, r4
	mov r5, r8
	ldrb r4, [r5, 0xA]
	movs r7, 0x2
	negs r7, r7
	adds r5, r7, 0
	ands r5, r4
	orrs r5, r0
	mov r6, r8
	strb r5, [r6, 0xA]
	mov r9, sp
	ldr r4, [sp, 0x40]
	ldrb r0, [r4, 0x4]
	mov r4, r12
	ands r4, r0
	lsls r4, 1
	movs r6, 0x3
	negs r6, r6
	mov r8, r6
	mov r0, r8
	ands r0, r5
	orrs r0, r4
	mov r4, r9
	strb r0, [r4, 0xA]
	ldr r6, [sp, 0x44]
	ldrb r5, [r6, 0x4]
	mov r4, r12
	ands r4, r5
	lsls r4, 2
	movs r5, 0x5
	negs r5, r5
	ands r0, r5
	orrs r0, r4
	mov r4, r9
	strb r0, [r4, 0xA]
	mov r4, sp
	ldrb r1, [r1, 0x8]
	mov r0, r12
	ands r0, r1
	lsls r0, 2
	ldrb r1, [r4, 0xB]
	ands r5, r1
	orrs r5, r0
	strb r5, [r4, 0xB]
	ldrb r1, [r2, 0x8]
	mov r0, r12
	ands r0, r1
	lsls r0, 3
	movs r1, 0x9
	negs r1, r1
	ands r1, r5
	orrs r1, r0
	strb r1, [r4, 0xB]
	ldrb r2, [r3, 0x8]
	mov r0, r12
	ands r0, r2
	lsls r0, 4
	movs r2, 0x11
	negs r2, r2
	ands r2, r1
	orrs r2, r0
	strb r2, [r4, 0xB]
	mov r3, sp
	ldr r5, [sp, 0x40]
	ldrb r0, [r5, 0x8]
	mov r1, r12
	ands r1, r0
	lsls r1, 5
	movs r0, 0x21
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0xB]
	mov r2, sp
	ldrb r1, [r6, 0x8]
	mov r6, r12
	ands r6, r1
	lsls r1, r6, 6
	mov r3, r10
	ands r0, r3
	orrs r0, r1
	strb r0, [r2, 0xB]
	ldr r4, [sp, 0x1C]
	lsrs r3, r4, 21
	ldrb r1, [r2, 0xA]
	movs r0, 0x7
	ands r0, r1
	orrs r0, r3
	strb r0, [r2, 0xA]
	mov r1, sp
	ldr r5, [sp, 0x4C]
	movs r6, 0x1
	ands r5, r6
	lsls r2, r5, 1
	ldrb r0, [r1, 0xB]
	mov r3, r8
	ands r3, r0
	orrs r3, r2
	mov r8, r3
	strb r3, [r1, 0xB]
	mov r0, sp
	ldr r4, [sp, 0x50]
	ands r4, r6
	mov r5, r8
	ands r5, r7
	orrs r5, r4
	strb r5, [r0, 0xB]
	bl sub_800FE50
	add sp, 0x20
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8027E30

	thumb_func_start sub_8028164
sub_8028164: @ 8028164
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r7, r1, 0
	adds r5, r2, 0
	adds r6, r3, 0
	ldr r0, [sp, 0x1C]
	mov r12, r0
	ldr r1, [sp, 0x20]
	mov r8, r1
	ldr r0, [sp, 0x24]
	mov r9, r0
	adds r2, r7, 0
	adds r2, 0x14
	ldr r4, =gRecvCmds
	ldrh r0, [r4]
	movs r1, 0xFF
	lsls r1, 8
	ands r1, r0
	movs r0, 0xBC
	lsls r0, 6
	cmp r1, r0
	bne _0802819C
	adds r3, r4, 0x2
	ldrb r0, [r4, 0x2]
	cmp r0, 0x2
	beq _080281A4
_0802819C:
	movs r0, 0
	b _080282DE
	.pool
_080281A4:
	ldrb r0, [r3, 0x1]
	lsls r0, 28
	lsrs r0, 28
	strb r0, [r2, 0xB]
	ldrb r0, [r3, 0x1]
	lsrs r0, 4
	strb r0, [r2, 0xC]
	ldrb r0, [r3, 0x2]
	lsls r0, 28
	lsrs r0, 28
	strb r0, [r2, 0xD]
	ldrb r0, [r3, 0x2]
	lsrs r0, 4
	strb r0, [r2, 0xE]
	ldrb r0, [r3, 0x3]
	lsls r0, 28
	lsrs r0, 28
	strb r0, [r2, 0xF]
	ldrb r0, [r3, 0x3]
	lsrs r0, 4
	strb r0, [r2, 0x10]
	ldrb r0, [r3, 0x4]
	lsls r0, 28
	lsrs r0, 28
	strb r0, [r2, 0x11]
	ldrb r0, [r3, 0x4]
	lsrs r0, 4
	strb r0, [r2, 0x12]
	ldrb r0, [r3, 0x5]
	lsls r0, 28
	lsrs r0, 28
	strb r0, [r2, 0x13]
	ldrb r0, [r3, 0x5]
	lsrs r0, 4
	strb r0, [r2, 0x14]
	ldrb r0, [r3, 0x1]
	lsls r0, 28
	lsrs r0, 28
	strb r0, [r2, 0x15]
	ldrb r0, [r3, 0x6]
	lsls r0, 30
	lsrs r0, 30
	strb r0, [r7, 0x14]
	ldrb r0, [r3, 0x6]
	lsls r0, 28
	lsrs r0, 30
	strb r0, [r2, 0x1]
	ldrb r0, [r3, 0x6]
	lsls r0, 26
	lsrs r0, 30
	strb r0, [r2, 0x2]
	ldrb r0, [r3, 0x6]
	lsrs r0, 6
	strb r0, [r2, 0x3]
	ldrb r0, [r3, 0x7]
	lsls r0, 30
	lsrs r0, 30
	strb r0, [r2, 0x4]
	ldrb r0, [r3, 0x7]
	lsls r0, 28
	lsrs r0, 30
	strb r0, [r2, 0x5]
	ldrb r0, [r3, 0x7]
	lsls r0, 26
	lsrs r0, 30
	strb r0, [r2, 0x6]
	ldrb r0, [r3, 0x7]
	lsrs r0, 6
	strb r0, [r2, 0x7]
	ldrb r0, [r3, 0x8]
	lsls r0, 30
	lsrs r0, 30
	strb r0, [r2, 0x8]
	ldrb r0, [r3, 0x8]
	lsls r0, 28
	lsrs r0, 30
	strb r0, [r2, 0x9]
	ldrb r0, [r3, 0x6]
	lsls r0, 30
	lsrs r0, 30
	strb r0, [r2, 0xA]
	ldrb r0, [r3, 0x8]
	lsls r0, 26
	lsrs r0, 30
	strb r0, [r5]
	ldrb r0, [r3, 0x9]
	lsls r0, 25
	lsrs r0, 31
	strb r0, [r5, 0x4]
	ldrb r0, [r3, 0xB]
	lsls r0, 29
	lsrs r0, 31
	strb r0, [r5, 0x8]
	ldrb r0, [r3, 0x8]
	lsrs r0, 6
	strb r0, [r6]
	ldrb r0, [r3, 0x9]
	lsrs r0, 7
	strb r0, [r6, 0x4]
	ldrb r0, [r3, 0xB]
	lsls r0, 28
	lsrs r0, 31
	strb r0, [r6, 0x8]
	ldrb r0, [r3, 0x9]
	lsls r0, 30
	lsrs r0, 30
	mov r1, r12
	strb r0, [r1]
	ldrb r0, [r3, 0xA]
	lsls r0, 31
	lsrs r0, 31
	strb r0, [r1, 0x4]
	ldrb r0, [r3, 0xB]
	lsls r0, 27
	lsrs r0, 31
	strb r0, [r1, 0x8]
	ldrb r0, [r3, 0x9]
	lsls r0, 28
	lsrs r0, 30
	mov r1, r8
	strb r0, [r1]
	ldrb r0, [r3, 0xA]
	lsls r0, 30
	lsrs r0, 31
	strb r0, [r1, 0x4]
	ldrb r0, [r3, 0xB]
	lsls r0, 26
	lsrs r0, 31
	strb r0, [r1, 0x8]
	ldrb r0, [r3, 0x9]
	lsls r0, 26
	lsrs r0, 30
	mov r1, r9
	strb r0, [r1]
	ldrb r0, [r3, 0xA]
	lsls r0, 29
	lsrs r0, 31
	strb r0, [r1, 0x4]
	ldrb r0, [r3, 0xB]
	lsls r0, 25
	lsrs r0, 31
	strb r0, [r1, 0x8]
	ldrb r0, [r3, 0xA]
	lsrs r0, 3
	ldr r1, [sp, 0x28]
	strb r0, [r1]
	ldrb r0, [r3, 0xB]
	lsls r0, 30
	lsrs r0, 31
	ldr r1, [sp, 0x2C]
	str r0, [r1]
	ldrb r0, [r3, 0xB]
	lsls r0, 31
	lsrs r0, 31
	ldr r1, [sp, 0x30]
	str r0, [r1]
	movs r0, 0x1
_080282DE:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8028164

	thumb_func_start sub_80282EC
sub_80282EC: @ 80282EC
	push {lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r0, 24
	ldr r3, =0xffffff00
	ldr r1, [sp]
	ands r1, r3
	movs r2, 0x3
	orrs r1, r2
	str r1, [sp]
	ldr r1, [sp, 0x4]
	ands r1, r3
	orrs r1, r0
	str r1, [sp, 0x4]
	mov r0, sp
	bl sub_800FE50
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80282EC

	thumb_func_start sub_8028318
sub_8028318: @ 8028318
	push {r4,lr}
	adds r2, r0, 0
	adds r4, r1, 0
	ldr r3, =gRecvCmds
	ldrh r0, [r3]
	movs r1, 0xFF
	lsls r1, 8
	ands r1, r0
	movs r0, 0xBC
	lsls r0, 6
	cmp r1, r0
	bne _0802833C
	lsls r0, r2, 4
	adds r1, r3, 0x2
	adds r1, r0, r1
	ldrb r0, [r1]
	cmp r0, 0x3
	beq _08028344
_0802833C:
	movs r0, 0
	b _0802834A
	.pool
_08028344:
	ldrb r0, [r1, 0x4]
	strb r0, [r4]
	movs r0, 0x1
_0802834A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8028318

	thumb_func_start sub_8028350
sub_8028350: @ 8028350
	push {lr}
	sub sp, 0x8
	ldr r2, =0xffffff00
	ldr r1, [sp]
	ands r1, r2
	movs r2, 0x4
	orrs r1, r2
	str r1, [sp]
	str r0, [sp, 0x4]
	mov r0, sp
	bl sub_800FE50
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028350

	thumb_func_start sub_8028374
sub_8028374: @ 8028374
	push {lr}
	adds r2, r0, 0
	ldr r3, =gRecvCmds
	ldrh r0, [r3]
	movs r1, 0xFF
	lsls r1, 8
	ands r1, r0
	movs r0, 0xBC
	lsls r0, 6
	cmp r1, r0
	bne _08028396
	lsls r0, r2, 4
	adds r1, r3, 0x2
	adds r1, r0, r1
	ldrb r0, [r1]
	cmp r0, 0x4
	beq _080283A0
_08028396:
	movs r0, 0
	b _080283A2
	.pool
_080283A0:
	ldr r0, [r1, 0x4]
_080283A2:
	pop {r1}
	bx r1
	thumb_func_end sub_8028374

	thumb_func_start sub_80283A8
sub_80283A8: @ 80283A8
	push {r4,r5,lr}
	sub sp, 0x18
	movs r5, 0xC0
	lsls r5, 6
	adds r0, r5, 0
	bl AllocZeroed
	adds r4, r0, 0
	ldr r0, =gUnknown_082FB2D8
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	ldr r0, =gUnknown_082FB2E0
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x10]
	str r1, [sp, 0x14]
	ldr r0, =gDodrioBerryPkmnGfx
	adds r1, r4, 0
	bl LZ77UnCompWram
	cmp r4, 0
	beq _080283E8
	str r4, [sp]
	str r5, [sp, 0x4]
	mov r0, sp
	bl LoadSpriteSheet
	adds r0, r4, 0
	bl Free
_080283E8:
	add r0, sp, 0x8
	bl LoadSpritePalette
	add r0, sp, 0x10
	bl LoadSpritePalette
	add sp, 0x18
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80283A8

	thumb_func_start sub_8028408
sub_8028408: @ 8028408
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x30
	adds r6, r1, 0
	mov r8, r2
	adds r5, r3, 0
	lsls r6, 24
	lsrs r6, 24
	mov r1, r8
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	lsls r5, 24
	lsrs r5, 24
	add r1, sp, 0x18
	movs r3, 0
	strh r3, [r1]
	ldrb r2, [r0]
	mov r0, sp
	adds r0, 0x1A
	strh r2, [r0]
	ldr r0, =gUnknown_082FB1E0
	str r0, [sp, 0x1C]
	ldr r0, =gUnknown_082FB228
	str r0, [sp, 0x20]
	str r3, [sp, 0x24]
	ldr r0, =gDummySpriteAffineAnimTable
	str r0, [sp, 0x28]
	ldr r0, =sub_80284A8
	str r0, [sp, 0x2C]
	mov r0, sp
	movs r2, 0x18
	bl memcpy
	movs r0, 0x4
	bl AllocZeroed
	ldr r1, =gUnknown_02022C9C
	mov r2, r8
	lsls r4, r2, 2
	adds r4, r1
	str r0, [r4]
	adds r0, r6, 0
	adds r1, r5, 0
	bl sub_8028F14
	adds r1, r0, 0
	lsls r1, 16
	asrs r1, 16
	mov r0, sp
	movs r2, 0x88
	movs r3, 0x3
	bl CreateSprite
	ldr r1, [r4]
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1]
	movs r0, 0x1
	mov r1, r8
	bl sub_8028654
	add sp, 0x30
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028408

	thumb_func_start sub_80284A8
sub_80284A8: @ 80284A8
	push {lr}
	movs r2, 0x2E
	ldrsh r1, [r0, r2]
	cmp r1, 0x1
	beq _080284BC
	cmp r1, 0x1
	ble _080284C6
	cmp r1, 0x2
	beq _080284C2
	b _080284C6
_080284BC:
	bl sub_802853C
	b _080284C6
_080284C2:
	bl sub_80285AC
_080284C6:
	pop {r0}
	bx r0
	thumb_func_end sub_80284A8

	thumb_func_start sub_80284CC
sub_80284CC: @ 80284CC
	push {lr}
	bl GetMultiplayerId
	ldr r1, =gUnknown_02022C9C
	lsls r0, 24
	lsrs r0, 22
	adds r0, r1
	ldr r0, [r0]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	movs r2, 0
	movs r1, 0x1
	strh r1, [r0, 0x2E]
	strh r2, [r0, 0x30]
	strh r2, [r0, 0x32]
	strh r2, [r0, 0x34]
	strh r2, [r0, 0x36]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80284CC

	thumb_func_start sub_8028504
sub_8028504: @ 8028504
	push {lr}
	bl GetMultiplayerId
	ldr r1, =gUnknown_02022C9C
	lsls r0, 24
	lsrs r0, 22
	adds r0, r1
	ldr r0, [r0]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	movs r2, 0
	movs r1, 0x2
	strh r1, [r0, 0x2E]
	strh r2, [r0, 0x30]
	strh r2, [r0, 0x32]
	strh r2, [r0, 0x34]
	strh r2, [r0, 0x36]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028504

	thumb_func_start sub_802853C
sub_802853C: @ 802853C
	push {r4,lr}
	adds r4, r0, 0
	ldrh r0, [r4, 0x30]
	adds r0, 0x1
	strh r0, [r4, 0x30]
	lsls r0, 16
	asrs r2, r0, 16
	lsrs r0, 31
	adds r0, r2, r0
	asrs r1, r0, 1
	adds r0, r1, 0
	cmp r1, 0
	bge _08028558
	adds r0, r1, 0x3
_08028558:
	asrs r0, 2
	lsls r0, 2
	subs r0, r1, r0
	lsls r0, 24
	lsrs r0, 24
	cmp r2, 0x2
	ble _080285A2
	cmp r0, 0x2
	bgt _0802856E
	cmp r0, 0x1
	bge _08028572
_0802856E:
	movs r0, 0x1
	b _08028574
_08028572:
	movs r0, 0xFF
_08028574:
	lsls r0, 24
	asrs r0, 24
	ldrh r1, [r4, 0x20]
	adds r0, r1
	strh r0, [r4, 0x20]
	ldrh r0, [r4, 0x30]
	adds r0, 0x1
	strh r0, [r4, 0x30]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x27
	ble _080285A2
	movs r0, 0
	strh r0, [r4, 0x2E]
	bl sub_8027650
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	bl sub_8028F14
	strh r0, [r4, 0x20]
_080285A2:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802853C

	thumb_func_start sub_80285AC
sub_80285AC: @ 80285AC
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrh r0, [r5, 0x30]
	adds r0, 0x1
	strh r0, [r5, 0x30]
	lsls r0, 16
	asrs r0, 16
	movs r1, 0xD
	bl __divsi3
	lsls r0, 16
	asrs r1, r0, 16
	adds r0, r1, 0
	cmp r1, 0
	bge _080285CC
	adds r0, r1, 0x3
_080285CC:
	asrs r0, 2
	lsls r0, 2
	subs r0, r1, r0
	lsls r0, 24
	lsrs r4, r0, 24
	movs r1, 0x30
	ldrsh r0, [r5, r1]
	movs r1, 0xD
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _080285F0
	cmp r4, 0
	beq _080285F0
	movs r0, 0xD4
	bl PlaySE
_080285F0:
	movs r1, 0x30
	ldrsh r0, [r5, r1]
	cmp r0, 0x67
	ble _080285FE
	movs r0, 0
	strh r0, [r5, 0x2E]
	movs r4, 0
_080285FE:
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r0, 24
	adds r1, r4, 0
	bl sub_80286B4
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_80285AC

	thumb_func_start sub_8028614
sub_8028614: @ 8028614
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
	cmp r4, r5
	bcs _08028646
	ldr r6, =gUnknown_02022C9C
_08028622:
	lsls r0, r4, 2
	adds r0, r6
	ldr r0, [r0]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	cmp r0, 0
	beq _0802863C
	bl DestroySpriteAndFreeResources
_0802863C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08028622
_08028646:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028614

	thumb_func_start sub_8028654
sub_8028654: @ 8028654
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	ldr r3, =gSprites
	ldr r2, =gUnknown_02022C9C
	lsrs r1, 22
	adds r1, r2
	ldr r1, [r1]
	ldrh r1, [r1]
	lsls r2, r1, 4
	adds r2, r1
	lsls r2, 2
	adds r2, r3
	adds r2, 0x3E
	movs r1, 0x1
	ands r0, r1
	lsls r0, 2
	ldrb r3, [r2]
	movs r1, 0x5
	negs r1, r1
	ands r1, r3
	orrs r1, r0
	strb r1, [r2]
	bx lr
	.pool
	thumb_func_end sub_8028654

	thumb_func_start sub_802868C
sub_802868C: @ 802868C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	movs r4, 0
	cmp r4, r5
	bcs _080286AE
_0802869C:
	adds r0, r6, 0
	adds r1, r4, 0
	bl sub_8028654
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _0802869C
_080286AE:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_802868C

	thumb_func_start sub_80286B4
sub_80286B4: @ 80286B4
	push {lr}
	lsls r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =gUnknown_02022C9C
	lsrs r0, 22
	adds r0, r2
	ldr r0, [r0]
	ldrh r2, [r0]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	ldr r2, =gSprites
	adds r0, r2
	bl StartSpriteAnim
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80286B4

	thumb_func_start nullsub_15
nullsub_15: @ 80286E0
	bx lr
	thumb_func_end nullsub_15

	thumb_func_start sub_80286E4
sub_80286E4: @ 80286E4
	push {r4-r7,lr}
	movs r4, 0
	ldr r0, =gSprites
	mov r12, r0
	movs r6, 0
	ldr r5, =gUnknown_02022CF4
_080286F0:
	ldr r3, [r5]
	lsls r1, r4, 1
	adds r0, r3, 0
	adds r0, 0x2A
	adds r0, r1
	ldrh r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	add r1, r12
	lsls r0, r4, 4
	adds r0, 0x30
	strh r0, [r1, 0x20]
	lsls r2, r4, 3
	movs r7, 0x8
	negs r7, r7
	adds r0, r7, 0
	subs r0, r2
	strh r0, [r1, 0x22]
	adds r3, 0xC
	adds r3, r4
	strb r6, [r3]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _080286F0
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80286E4

	thumb_func_start sub_8028734
sub_8028734: @ 8028734
	push {r4-r6,lr}
	sub sp, 0x28
	movs r4, 0xC0
	lsls r4, 1
	adds r0, r4, 0
	bl AllocZeroed
	adds r6, r0, 0
	ldr r0, =gUnknown_082FB2E8
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x20]
	str r1, [sp, 0x24]
	ldr r0, =gDodrioBerryStatusGfx
	adds r1, r6, 0
	bl LZ77UnCompWram
	cmp r6, 0
	beq _080287C4
	str r6, [sp, 0x18]
	add r5, sp, 0x18
	movs r0, 0x80
	lsls r0, 9
	orrs r0, r4
	str r0, [r5, 0x4]
	mov r1, sp
	ldr r0, =gUnknown_082FB2F0
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldr r4, =gUnknown_02022CF4
	movs r0, 0x40
	bl AllocZeroed
	str r0, [r4]
	adds r0, r5, 0
	bl LoadSpriteSheet
	add r0, sp, 0x20
	bl LoadSpritePalette
	movs r4, 0
_0802878A:
	lsls r1, r4, 20
	movs r0, 0xC0
	lsls r0, 14
	adds r1, r0
	asrs r1, 16
	lsls r0, r4, 3
	movs r3, 0x8
	negs r3, r3
	adds r2, r3, 0
	subs r2, r0
	lsls r2, 16
	asrs r2, 16
	mov r0, sp
	movs r3, 0
	bl CreateSprite
	ldr r1, =gUnknown_02022CF4
	ldr r1, [r1]
	lsls r2, r4, 1
	adds r1, 0x2A
	adds r1, r2
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _0802878A
_080287C4:
	adds r0, r6, 0
	bl Free
	add sp, 0x28
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028734

	thumb_func_start sub_80287E4
sub_80287E4: @ 80287E4
	push {r4,r5,lr}
	movs r4, 0
_080287E8:
	ldr r5, =gUnknown_02022CF4
	ldr r0, [r5]
	lsls r1, r4, 1
	adds r0, 0x2A
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	cmp r0, 0
	beq _08028806
	bl DestroySpriteAndFreeResources
_08028806:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _080287E8
	ldr r0, [r5]
	bl Free
	movs r0, 0
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80287E4

	thumb_func_start sub_8028828
sub_8028828: @ 8028828
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	movs r3, 0
	movs r6, 0
	ldr r0, =gUnknown_02022CF4
	mov r9, r0
_0802883A:
	mov r7, r9
	ldr r2, [r7]
	lsls r5, r6, 1
	adds r0, r2, 0
	adds r0, 0x2A
	adds r0, r5
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r4, r0, r1
	adds r0, r2, 0
	adds r0, 0x16
	adds r0, r5
	movs r1, 0x2
	strh r1, [r0]
	adds r0, r2, 0
	adds r0, 0xC
	adds r2, r0, r6
	ldrb r1, [r2]
	cmp r1, 0
	beq _08028870
	movs r7, 0x22
	ldrsh r0, [r4, r7]
	cmp r0, 0x8
	beq _080288A6
_08028870:
	movs r3, 0x1
	movs r7, 0x22
	ldrsh r0, [r4, r7]
	cmp r0, 0x8
	bne _08028896
	cmp r1, 0
	bne _080288A6
	strb r3, [r2]
	mov r1, r9
	ldr r0, [r1]
	adds r0, 0x16
	adds r0, r5
	ldr r1, =0x0000fff0
	strh r1, [r0]
	movs r0, 0x24
	str r3, [sp]
	bl PlaySE
	ldr r3, [sp]
_08028896:
	mov r7, r9
	ldr r0, [r7]
	adds r0, 0x16
	adds r0, r5
	ldrh r0, [r0]
	ldrh r1, [r4, 0x22]
	adds r0, r1
	strh r0, [r4, 0x22]
_080288A6:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x9
	bls _0802883A
	cmp r3, 0
	bne _080288C4
	movs r0, 0x1
	b _080288C6
	.pool
_080288C4:
	movs r0, 0
_080288C6:
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8028828

	thumb_func_start sub_80288D4
sub_80288D4: @ 80288D4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0xA
	bls _08028910
	movs r4, 0
_080288E0:
	ldr r0, =gUnknown_02022CF4
	ldr r0, [r0]
	lsls r1, r4, 1
	adds r0, 0x2A
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	movs r1, 0x1
	bl StartSpriteAnim
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _080288E0
	b _080289DA
	.pool
_08028910:
	movs r4, 0
	movs r0, 0xA
	subs r0, r5
	cmp r4, r0
	bge _080289D6
	ldr r6, =gSprites
_0802891C:
	cmp r5, 0x6
	bls _08028984
	ldr r0, =gUnknown_02022CF4
	ldr r2, [r0]
	ldr r1, =0x0000fffa
	adds r0, r1, 0
	ldrh r1, [r2, 0x3E]
	adds r0, r1
	adds r0, r5
	movs r1, 0
	strh r0, [r2, 0x3E]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1E
	bls _0802894C
	strh r1, [r2, 0x3E]
	b _0802899E
	.pool
_0802894C:
	cmp r0, 0xA
	bls _0802896A
	lsls r1, r4, 1
	adds r0, r2, 0
	adds r0, 0x2A
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x2
	bl StartSpriteAnim
	b _0802899E
_0802896A:
	lsls r1, r4, 1
	adds r0, r2, 0
	adds r0, 0x2A
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0
	bl StartSpriteAnim
	b _0802899E
_08028984:
	ldr r0, =gUnknown_02022CF4
	ldr r0, [r0]
	lsls r1, r4, 1
	adds r0, 0x2A
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0
	bl StartSpriteAnim
_0802899E:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0xA
	subs r0, r5
	cmp r4, r0
	blt _0802891C
	b _080289D6
	.pool
_080289B4:
	ldr r0, =gUnknown_02022CF4
	ldr r0, [r0]
	lsls r1, r4, 1
	adds r0, 0x2A
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	movs r1, 0x1
	bl StartSpriteAnim
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
_080289D6:
	cmp r4, 0x9
	bls _080289B4
_080289DA:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80288D4

	thumb_func_start sub_80289E8
sub_80289E8: @ 80289E8
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	movs r3, 0
	ldr r7, =gSprites
	movs r1, 0x1
	ands r0, r1
	lsls r4, r0, 2
	movs r6, 0x5
	negs r6, r6
	ldr r5, =gUnknown_02022CF4
_080289FE:
	ldr r0, [r5]
	lsls r1, r3, 1
	adds r0, 0x2A
	adds r0, r1
	ldrh r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	adds r1, 0x3E
	ldrb r2, [r1]
	adds r0, r6, 0
	ands r0, r2
	orrs r0, r4
	strb r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x9
	bls _080289FE
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80289E8

	thumb_func_start sub_8028A34
sub_8028A34: @ 8028A34
	push {r4,r5,lr}
	sub sp, 0x10
	movs r5, 0x90
	lsls r5, 3
	adds r0, r5, 0
	bl AllocZeroed
	adds r4, r0, 0
	ldr r0, =gUnknown_082FB314
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	ldr r0, =gDodrioBerrySpritesGfx
	adds r1, r4, 0
	bl LZ77UnCompWram
	cmp r4, 0
	beq _08028A6A
	str r4, [sp]
	movs r0, 0x80
	lsls r0, 10
	orrs r0, r5
	str r0, [sp, 0x4]
	mov r0, sp
	bl LoadSpriteSheet
_08028A6A:
	add r0, sp, 0x8
	bl LoadSpritePalette
	adds r0, r4, 0
	bl Free
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028A34

	thumb_func_start sub_8028A88
sub_8028A88: @ 8028A88
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x30
	mov r1, sp
	ldr r0, =gUnknown_082FB324
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	add r2, sp, 0x18
	adds r1, r2, 0
	ldr r0, =gUnknown_082FB33C
	ldm r0!, {r3-r5}
	stm r1!, {r3-r5}
	ldm r0!, {r3-r5}
	stm r1!, {r3-r5}
	movs r5, 0
	mov r9, r2
_08028AB0:
	movs r0, 0x4
	bl AllocZeroed
	ldr r1, =gUnknown_02022CB8
	lsls r4, r5, 2
	adds r4, r1
	str r0, [r4]
	lsls r0, r5, 3
	lsls r1, r5, 4
	adds r1, r0
	mov r0, sp
	movs r2, 0x8
	movs r3, 0x1
	bl CreateSprite
	ldr r1, [r4]
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1]
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_8028BF8
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0xA
	bls _08028AB0
	movs r5, 0
	ldr r7, =gUnknown_02022CE4
	ldr r4, =gUnknown_082FB31C
	mov r8, r4
_08028AF0:
	movs r0, 0x4
	bl AllocZeroed
	lsls r1, r5, 2
	adds r4, r1, r7
	str r0, [r4]
	adds r6, r1, 0
	cmp r5, 0x3
	bne _08028B2C
	mov r0, r8
	movs r2, 0x6
	ldrsh r1, [r0, r2]
	mov r0, r9
	movs r2, 0x31
	movs r3, 0
	bl CreateSprite
	ldr r1, [r7, 0xC]
	b _08028B40
	.pool
_08028B2C:
	lsls r0, r5, 1
	add r0, r8
	movs r3, 0
	ldrsh r1, [r0, r3]
	mov r0, r9
	movs r2, 0x34
	movs r3, 0
	bl CreateSprite
	ldr r1, [r4]
_08028B40:
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1]
	adds r0, r6, r7
	ldr r0, [r0]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	adds r1, r5, 0
	bl StartSpriteAnim
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _08028AF0
	movs r0, 0x1
	bl sub_8028C30
	add sp, 0x30
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028A88

	thumb_func_start sub_8028B80
sub_8028B80: @ 8028B80
	push {r4-r6,lr}
	movs r5, 0
	ldr r6, =gUnknown_02022CB8
_08028B86:
	lsls r0, r5, 2
	adds r4, r0, r6
	ldr r0, [r4]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	cmp r0, 0
	beq _08028BA0
	bl DestroySprite
_08028BA0:
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0xA
	bls _08028B86
	movs r5, 0
	ldr r6, =gUnknown_02022CE4
_08028BB8:
	lsls r0, r5, 2
	adds r4, r0, r6
	ldr r0, [r4]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	cmp r0, 0
	beq _08028BD2
	bl DestroySprite
_08028BD2:
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _08028BB8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028B80

	thumb_func_start sub_8028BF8
sub_8028BF8: @ 8028BF8
	lsls r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r3, =gSprites
	ldr r2, =gUnknown_02022CB8
	lsrs r0, 22
	adds r0, r2
	ldr r0, [r0]
	ldrh r0, [r0]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r3
	adds r2, 0x3E
	movs r0, 0x1
	ands r1, r0
	lsls r1, 2
	ldrb r3, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r3
	orrs r0, r1
	strb r0, [r2]
	bx lr
	.pool
	thumb_func_end sub_8028BF8

	thumb_func_start sub_8028C30
sub_8028C30: @ 8028C30
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	movs r3, 0
	ldr r7, =gSprites
	ldr r6, =gUnknown_02022CE4
	movs r1, 0x1
	ands r0, r1
	lsls r4, r0, 2
	movs r5, 0x5
	negs r5, r5
_08028C46:
	lsls r0, r3, 2
	adds r0, r6
	ldr r0, [r0]
	ldrh r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	adds r1, 0x3E
	ldrb r2, [r1]
	adds r0, r5, 0
	ands r0, r2
	orrs r0, r4
	strb r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _08028C46
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028C30

	thumb_func_start sub_8028C7C
sub_8028C7C: @ 8028C7C
	lsls r0, 24
	lsls r1, 24
	ldr r3, =gSprites
	ldr r2, =gUnknown_02022CB8
	lsrs r0, 22
	adds r0, r2
	ldr r0, [r0]
	ldrh r2, [r0]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r3
	lsrs r1, 21
	strh r1, [r0, 0x22]
	bx lr
	.pool
	thumb_func_end sub_8028C7C

	thumb_func_start sub_8028CA4
sub_8028CA4: @ 8028CA4
	push {lr}
	lsls r0, 16
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =gUnknown_02022CB8
	lsrs r0, 14
	adds r0, r2
	ldr r0, [r0]
	ldrh r2, [r0]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	ldr r2, =gSprites
	adds r0, r2
	bl StartSpriteAnim
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028CA4

	thumb_func_start sub_8028CD0
sub_8028CD0: @ 8028CD0
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gSprites
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r1
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	adds r1, 0x32
	strh r1, [r2, 0x20]
	movs r0, 0x32
	strh r0, [r2, 0x22]
	bx lr
	.pool
	thumb_func_end sub_8028CD0

	thumb_func_start sub_8028CF4
sub_8028CF4: @ 8028CF4
	push {r4-r7,lr}
	adds r4, r0, 0
	adds r0, 0x42
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0x1
	beq _08028D36
	movs r3, 0
	ldr r7, =gUnknown_082FB354
	ldr r6, =gUnknown_02022CB0
	movs r5, 0
_08028D0A:
	lsls r0, r3, 2
	adds r2, r0, r6
	ldr r1, [r2]
	ldrh r0, [r1, 0x2]
	adds r0, 0x1
	strh r0, [r1, 0x2]
	adds r1, r3, r7
	lsls r0, 16
	lsrs r0, 16
	ldrb r1, [r1]
	cmp r0, r1
	bls _08028D2C
	ldrh r0, [r4, 0x20]
	subs r0, 0x1
	strh r0, [r4, 0x20]
	ldr r0, [r2]
	strh r5, [r0, 0x2]
_08028D2C:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x1
	bls _08028D0A
_08028D36:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028CF4

	thumb_func_start sub_8028D44
sub_8028D44: @ 8028D44
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x28
	movs r4, 0x80
	lsls r4, 3
	adds r0, r4, 0
	bl AllocZeroed
	adds r6, r0, 0
	ldr r0, =gUnknown_082FB360
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x20]
	str r1, [sp, 0x24]
	ldr r0, =gDodrioBerryPlatformGfx
	adds r1, r6, 0
	bl LZ77UnCompWram
	cmp r6, 0
	beq _08028DD2
	str r6, [sp, 0x18]
	add r0, sp, 0x18
	movs r1, 0xA0
	lsls r1, 11
	orrs r1, r4
	str r1, [r0, 0x4]
	mov r2, sp
	ldr r1, =gUnknown_082FB368
	ldm r1!, {r3-r5}
	stm r2!, {r3-r5}
	ldm r1!, {r3-r5}
	stm r2!, {r3-r5}
	bl LoadSpriteSheet
	add r0, sp, 0x20
	bl LoadSpritePalette
	movs r5, 0
	ldr r7, =gUnknown_082FB356
	adds r0, r7, 0x2
	mov r9, r0
	ldr r1, =gUnknown_02022CB0
	mov r8, r1
_08028D9E:
	movs r0, 0x4
	bl AllocZeroed
	lsls r2, r5, 2
	mov r3, r8
	adds r4, r2, r3
	str r0, [r4]
	adds r0, r2, r7
	movs r3, 0
	ldrsh r1, [r0, r3]
	add r2, r9
	movs r0, 0
	ldrsh r2, [r2, r0]
	mov r0, sp
	movs r3, 0x4
	bl CreateSprite
	ldr r1, [r4]
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x1
	bls _08028D9E
_08028DD2:
	adds r0, r6, 0
	bl Free
	add sp, 0x28
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028D44

	thumb_func_start sub_8028DFC
sub_8028DFC: @ 8028DFC
	push {r4-r7,lr}
	movs r3, 0
	ldr r0, =gUnknown_02022CB0
	mov r12, r0
	ldr r4, =gUnknown_082FB356
	adds r7, r4, 0x2
	ldr r6, =gSprites
	movs r5, 0x1
_08028E0C:
	lsls r2, r3, 2
	mov r1, r12
	adds r0, r2, r1
	ldr r0, [r0]
	ldrh r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r6
	adds r0, r1, 0
	adds r0, 0x42
	strh r5, [r0]
	adds r0, r2, r4
	ldrh r0, [r0]
	strh r0, [r1, 0x20]
	adds r2, r7
	ldrh r0, [r2]
	strh r0, [r1, 0x22]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x1
	bls _08028E0C
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028DFC

	thumb_func_start sub_8028E4C
sub_8028E4C: @ 8028E4C
	push {r4,r5,lr}
	movs r2, 0
	ldr r5, =gUnknown_02022CB0
	ldr r4, =gSprites
	movs r3, 0
_08028E56:
	lsls r0, r2, 2
	adds r0, r5
	ldr r0, [r0]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x42
	strh r3, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x1
	bls _08028E56
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028E4C

	thumb_func_start sub_8028E84
sub_8028E84: @ 8028E84
	push {r4-r6,lr}
	movs r5, 0
	ldr r6, =gUnknown_02022CB0
_08028E8A:
	lsls r0, r5, 2
	adds r4, r0, r6
	ldr r0, [r4]
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	cmp r0, 0
	beq _08028EA4
	bl DestroySprite
_08028EA4:
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x1
	bls _08028E8A
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028E84

	thumb_func_start sub_8028EC8
sub_8028EC8: @ 8028EC8
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	movs r3, 0
	ldr r7, =gSprites
	ldr r6, =gUnknown_02022CB0
	movs r1, 0x1
	ands r0, r1
	lsls r4, r0, 2
	movs r5, 0x5
	negs r5, r5
_08028EDE:
	lsls r0, r3, 2
	adds r0, r6
	ldr r0, [r0]
	ldrh r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	adds r1, 0x3E
	ldrb r2, [r1]
	adds r0, r5, 0
	ands r0, r2
	orrs r0, r4
	strb r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x1
	bls _08028EDE
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8028EC8

	thumb_func_start sub_8028F14
sub_8028F14: @ 8028F14
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r1, 24
	lsrs r1, 24
	movs r3, 0
	subs r0, r1, 0x1
	cmp r0, 0x4
	bhi _08028FC6
	lsls r0, 2
	ldr r1, =_08028F34
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08028F34:
	.4byte _08028FB4
	.4byte _08028F48
	.4byte _08028F52
	.4byte _08028F66
	.4byte _08028F8E
_08028F48:
	cmp r2, 0
	beq _08028F7E
	cmp r2, 0x1
	bne _08028FC6
	b _08028F82
_08028F52:
	cmp r2, 0x1
	beq _08028FB8
	cmp r2, 0x1
	bgt _08028F60
	cmp r2, 0
	beq _08028FB4
	b _08028FC6
_08028F60:
	cmp r2, 0x2
	bne _08028FC6
	b _08028FC4
_08028F66:
	cmp r2, 0x1
	beq _08028F82
	cmp r2, 0x1
	bgt _08028F74
	cmp r2, 0
	beq _08028F7E
	b _08028FC6
_08028F74:
	cmp r2, 0x2
	beq _08028F86
	cmp r2, 0x3
	beq _08028F8A
	b _08028FC6
_08028F7E:
	movs r3, 0xC
	b _08028FC6
_08028F82:
	movs r3, 0x12
	b _08028FC6
_08028F86:
	movs r3, 0x18
	b _08028FC6
_08028F8A:
	movs r3, 0x6
	b _08028FC6
_08028F8E:
	cmp r2, 0x4
	bhi _08028FC6
	lsls r0, r2, 2
	ldr r1, =_08028FA0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08028FA0:
	.4byte _08028FB4
	.4byte _08028FB8
	.4byte _08028FBC
	.4byte _08028FC0
	.4byte _08028FC4
_08028FB4:
	movs r3, 0xF
	b _08028FC6
_08028FB8:
	movs r3, 0x15
	b _08028FC6
_08028FBC:
	movs r3, 0x1B
	b _08028FC6
_08028FC0:
	movs r3, 0x3
	b _08028FC6
_08028FC4:
	movs r3, 0x9
_08028FC6:
	lsls r0, r3, 3
	pop {r1}
	bx r1
	thumb_func_end sub_8028F14

	thumb_func_start sub_8028FCC
sub_8028FCC: @ 8028FCC
	push {r4,lr}
	movs r4, 0
_08028FD0:
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_8028BF8
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_8028C7C
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0xA
	bls _08028FD0
	movs r0, 0
	bl sub_80289E8
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8028FCC

	thumb_func_start sub_8028FF8
sub_8028FF8: @ 8028FF8
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	bl GetWindowFrameTilesPal
	ldr r1, [r0]
	movs r2, 0x90
	lsls r2, 1
	movs r0, 0
	movs r3, 0x1
	bl LoadBgTiles
	adds r0, r4, 0
	bl GetWindowFrameTilesPal
	ldr r0, [r0, 0x4]
	movs r1, 0xA0
	movs r2, 0x20
	bl LoadPalette
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8028FF8

	thumb_func_start sub_802902C
sub_802902C: @ 802902C
	push {lr}
	movs r0, 0
	movs r1, 0xA
	movs r2, 0xB0
	bl LoadUserWindowBorderGfx_
	pop {r0}
	bx r0
	thumb_func_end sub_802902C

	thumb_func_start sub_802903C
sub_802903C: @ 802903C
	ldr r3, =gUnknown_02022CF8
	ldr r0, [r3]
	movs r2, 0xC0
	lsls r2, 6
	adds r1, r0, r2
	movs r2, 0
	str r2, [r1]
	ldr r1, =0x00003014
	adds r0, r1
	strb r2, [r0]
	ldr r0, [r3]
	adds r1, 0x4
	adds r0, r1
	strb r2, [r0]
	ldr r0, [r3]
	adds r1, 0x8
	adds r0, r1
	strb r2, [r0]
	ldr r0, [r3]
	adds r1, 0x4
	adds r0, r1
	strb r2, [r0]
	bx lr
	.pool
	thumb_func_end sub_802903C

	thumb_func_start sub_8029074
sub_8029074: @ 8029074
	push {r4-r6,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r6, 0xA
	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]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	ldrb r3, [r4, 0x2]
	subs r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	ldrb r0, [r4, 0x3]
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x2
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x3]
	ldrb r0, [r4, 0x1]
	adds r2, r0
	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 r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x3
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	str r5, [sp]
	ldrb r0, [r4, 0x4]
	str r0, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x4
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x3]
	ldrb r0, [r4, 0x1]
	adds r2, r0
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	str r5, [sp]
	ldrb r0, [r4, 0x4]
	str r0, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x6
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x4]
	ldrb r0, [r4, 0x2]
	adds r3, r0
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x7
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	ldrb r3, [r4, 0x4]
	ldrb r0, [r4, 0x2]
	adds r3, r0
	lsls r3, 24
	lsrs r3, 24
	ldrb r0, [r4, 0x3]
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x8
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x3]
	ldrb r0, [r4, 0x1]
	adds r2, r0
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x4]
	ldrb r4, [r4, 0x2]
	adds r3, r4
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x9
	bl FillBgTilemapBufferRect
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8029074

	thumb_func_start sub_8029174
sub_8029174: @ 8029174
	push {r4-r6,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r6, 0xB
	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]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0xA
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	ldrb r3, [r4, 0x2]
	subs r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	ldrb r0, [r4, 0x3]
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0xB
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x3]
	ldrb r0, [r4, 0x1]
	adds r2, r0
	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 r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0xC
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	str r5, [sp]
	ldrb r0, [r4, 0x4]
	str r0, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0xD
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x3]
	ldrb r0, [r4, 0x1]
	adds r2, r0
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x2]
	str r5, [sp]
	ldrb r0, [r4, 0x4]
	str r0, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0xF
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	subs r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x4]
	ldrb r0, [r4, 0x2]
	adds r3, r0
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x10
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x1]
	ldrb r3, [r4, 0x4]
	ldrb r0, [r4, 0x2]
	adds r3, r0
	lsls r3, 24
	lsrs r3, 24
	ldrb r0, [r4, 0x3]
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x11
	bl FillBgTilemapBufferRect
	ldrb r2, [r4, 0x3]
	ldrb r0, [r4, 0x1]
	adds r2, r0
	lsls r2, 24
	lsrs r2, 24
	ldrb r3, [r4, 0x4]
	ldrb r4, [r4, 0x2]
	adds r3, r4
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0
	movs r1, 0x12
	bl FillBgTilemapBufferRect
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8029174

	thumb_func_start sub_8029274
sub_8029274: @ 8029274
	push {r4,lr}
	ldr r4, =gUnknown_02022CF8
	str r0, [r4]
	movs r2, 0xC0
	lsls r2, 6
	adds r1, r0, r2
	movs r2, 0
	str r2, [r1]
	ldr r3, =0x00003014
	adds r1, r0, r3
	strb r2, [r1]
	ldr r1, =0x00003018
	adds r0, r1
	strb r2, [r0]
	ldr r0, [r4]
	adds r3, 0xC
	adds r0, r3
	strb r2, [r0]
	ldr r0, [r4]
	adds r1, 0xC
	adds r0, r1
	strb r2, [r0]
	ldr r0, =sub_8029314
	movs r1, 0x3
	bl CreateTask
	ldr r1, [r4]
	ldr r2, =0x00003004
	adds r1, r2
	strb r0, [r1]
	ldr r0, =sub_8029338
	bl sub_802A72C
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8029274

	thumb_func_start sub_80292D4
sub_80292D4: @ 80292D4
	push {lr}
	bl FreeAllWindowBuffers
	pop {r0}
	bx r0
	thumb_func_end sub_80292D4

	thumb_func_start sub_80292E0
sub_80292E0: @ 80292E0
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	movs r4, 0
	ldr r5, =gUnknown_082FB40C
	adds r7, r5, 0x4
_080292EC:
	lsls r1, r4, 3
	adds r0, r1, r5
	ldrb r0, [r0]
	cmp r0, r6
	bne _080292FE
	adds r0, r1, r7
	ldr r0, [r0]
	bl sub_802A72C
_080292FE:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _080292EC
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80292E0

	thumb_func_start sub_8029314
sub_8029314: @ 8029314
	push {lr}
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	movs r1, 0xC0
	lsls r1, 6
	adds r0, r1
	ldr r0, [r0]
	cmp r0, 0
	bne _0802932E
	bl sub_802A75C
	bl _call_via_r0
_0802932E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8029314

	thumb_func_start sub_8029338
sub_8029338: @ 8029338
	push {lr}
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r2, =0x00003014
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x4
	bhi _08029430
	lsls r0, 2
	ldr r1, =_08029360
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08029360:
	.4byte _08029374
	.4byte _0802937A
	.4byte _08029394
	.4byte _080293D8
	.4byte _08029404
_08029374:
	bl sub_802A7A8
	b _08029414
_0802937A:
	bl sub_802A8E8
	cmp r0, 0x1
	bne _0802943A
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r2, =0x00003014
	adds r1, r2
	b _0802941C
	.pool
_08029394:
	ldr r1, =gDodrioBerryBgTilemap1
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r1, =gDodrioBerryBgTilemap2Left
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r1, =gDodrioBerryBgTilemap2Right
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	b _08029414
	.pool
_080293D8:
	movs r0, 0
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r2, =0x00003014
	adds r1, r2
	b _0802941C
	.pool
_08029404:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x14]
	lsrs r0, 3
	bl sub_8028FF8
	bl sub_802902C
_08029414:
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r0, =0x00003014
	adds r1, r0
_0802941C:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0802943A
	.pool
_08029430:
	movs r2, 0xC0
	lsls r2, 6
	adds r1, r2
	movs r0, 0x1
	str r0, [r1]
_0802943A:
	pop {r0}
	bx r0
	thumb_func_end sub_8029338

	thumb_func_start sub_8029440
sub_8029440: @ 8029440
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x1C
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r2, =0x00003014
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, 0
	beq _08029488
	cmp r0, 0x1
	bne _08029460
	b _080295EC
_08029460:
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xB4
	bhi _0802946E
	b _0802968E
_0802946E:
	bl sub_8027650
	lsls r0, 24
	lsrs r7, r0, 24
	movs r6, 0
	cmp r6, r7
	bcc _0802947E
	b _08029666
_0802947E:
	b _08029640
	.pool
_08029488:
	bl sub_8027650
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r1, =gUnknown_082FB3C8
	subs r0, r7, 0x1
	lsls r0, 2
	adds r0, r1
	ldr r5, [r0]
	ldr r2, =0xffffff00
	ldr r0, [sp, 0xC]
	ands r0, r2
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0xE0
	lsls r1, 19
	orrs r0, r1
	str r0, [sp, 0xC]
	ldr r0, [sp, 0x10]
	ands r0, r2
	movs r1, 0x2
	orrs r0, r1
	ldr r1, =0xffff00ff
	ands r0, r1
	movs r1, 0xD0
	lsls r1, 4
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0x98
	lsls r1, 13
	orrs r0, r1
	str r0, [sp, 0x10]
	movs r6, 0
	cmp r6, r7
	bcs _080295B8
	mov r3, sp
	adds r3, 0xC
	str r3, [sp, 0x18]
	mov r10, r4
	ldr r0, =0x00003008
	mov r9, r0
_080294DC:
	movs r1, 0
	mov r8, r1
	adds r0, r6, 0
	bl sub_8027A48
	lsls r0, 24
	lsrs r0, 24
	adds r4, r0, 0
	bl sub_8027660
	adds r1, r0, 0
	movs r0, 0x1
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	movs r1, 0x38
	subs r1, r0
	lsrs r1, 1
	str r1, [sp, 0x14]
	ldrb r0, [r5]
	lsls r0, 8
	ldr r2, =0xffff00ff
	ldr r1, [sp, 0xC]
	ands r1, r2
	orrs r1, r0
	str r1, [sp, 0xC]
	ldrb r2, [r5, 0x1]
	lsls r2, 16
	ldr r0, =0xff00ffff
	ands r0, r1
	orrs r0, r2
	str r0, [sp, 0xC]
	add r0, sp, 0xC
	bl AddWindow
	mov r2, r10
	ldr r1, [r2]
	add r1, r9
	adds r1, r6
	strb r0, [r1]
	ldr r0, [r2]
	add r0, r9
	adds r0, r6
	ldrb r0, [r0]
	bl ClearWindowTilemap
	mov r3, r10
	ldr r0, [r3]
	add r0, r9
	adds r0, r6
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	bne _0802955A
	movs r0, 0x2
	mov r8, r0
_0802955A:
	adds r0, r4, 0
	bl sub_8027660
	adds r4, r0, 0
	mov r1, r10
	ldr r0, [r1]
	add r0, r9
	adds r0, r6
	ldrb r0, [r0]
	ldr r3, [sp, 0x14]
	lsls r2, r3, 24
	lsrs r2, 24
	mov r3, r8
	lsls r1, r3, 1
	add r1, r8
	ldr r3, =gUnknown_082FB380
	adds r1, r3
	str r1, [sp]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x1
	bl AddTextPrinterParameterized3
	mov r2, r10
	ldr r0, [r2]
	add r0, r9
	adds r0, r6
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r3, [sp, 0x18]
	ldrh r0, [r3, 0x6]
	adds r0, 0xE
	strh r0, [r3, 0x6]
	add r0, sp, 0xC
	bl sub_8029174
	adds r5, 0x4
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, r7
	bcc _080294DC
_080295B8:
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r0, =0x00003014
	adds r1, r0
	b _0802962A
	.pool
_080295EC:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802968E
	bl sub_8027650
	lsls r0, 24
	lsrs r7, r0, 24
	movs r6, 0
	cmp r6, r7
	bcs _0802961C
_08029604:
	ldr r0, [r4]
	ldr r1, =0x00003008
	adds r0, r1
	adds r0, r6
	ldrb r0, [r0]
	bl PutWindowTilemap
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, r7
	bcc _08029604
_0802961C:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r2, =0x00003014
	adds r1, r2
_0802962A:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0802968E
	.pool
_08029640:
	ldr r5, =gUnknown_02022CF8
	ldr r0, [r5]
	ldr r4, =0x00003008
	adds r0, r4
	adds r0, r6
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r5]
	adds r0, r4
	adds r0, r6
	ldrb r0, [r0]
	bl RemoveWindow
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, r7
	bcc _08029640
_08029666:
	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 r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	movs r3, 0xC0
	lsls r3, 6
	adds r0, r3
	movs r1, 0x1
	str r1, [r0]
_0802968E:
	add sp, 0x1C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8029440

	thumb_func_start sub_80296A8
sub_80296A8: @ 80296A8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x6C
	lsls r0, 24
	movs r1, 0
	mov r8, r1
	movs r6, 0
	lsrs r7, r0, 24
	add r4, sp, 0x2C
	ldr r1, =gUnknown_082FB45C
	adds r0, r4, 0
	movs r2, 0x5
	bl memcpy
	movs r5, 0
	cmp r5, r7
	bcs _080296F8
	add r4, sp, 0x34
_080296D2:
	mov r0, sp
	adds r0, r5
	adds r0, 0x2C
	strb r5, [r0]
	add r0, sp, 0x5C
	adds r1, r5, 0
	bl sub_802793C
	lsls r2, r5, 3
	adds r2, r4, r2
	ldr r0, [sp, 0x5C]
	ldr r1, [sp, 0x60]
	str r0, [r2]
	str r1, [r2, 0x4]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r7
	bcc _080296D2
_080296F8:
	bl sub_8027748
	cmp r0, 0
	beq _0802972E
_08029700:
	movs r5, 0
	cmp r5, r7
	bcs _08029728
	add r2, sp, 0x34
	add r1, sp, 0x2C
_0802970A:
	lsls r0, r5, 3
	adds r0, r2, r0
	ldrb r0, [r0]
	cmp r0, r8
	bne _0802971E
	adds r0, r1, r6
	strb r5, [r0]
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
_0802971E:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r7
	bcc _0802970A
_08029728:
	mov r8, r6
	cmp r6, r7
	bcc _08029700
_0802972E:
	movs r5, 0
	ldr r4, =gText_SpacePoints
	cmp r5, r7
	bcs _08029754
	add r1, sp, 0x34
	add r6, sp, 0x38
	subs r3, r7, 0x1
_0802973C:
	lsls r2, r5, 3
	adds r0, r6, r2
	ldr r0, [r0]
	cmp r0, 0
	bne _0802974A
	adds r0, r1, r2
	strb r3, [r0]
_0802974A:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r7
	bcc _0802973C
_08029754:
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0
	bl GetStringWidth
	movs r1, 0xD8
	subs r1, r0
	str r1, [sp, 0x64]
	movs r5, 0
	cmp r5, r7
	bcs _08029860
	mov r2, sp
	adds r2, 0x34
	str r2, [sp, 0x68]
	ldr r3, =0x00003009
	mov r10, r3
_08029774:
	movs r0, 0
	mov r8, r0
	mov r0, sp
	adds r0, r5
	adds r0, 0x2C
	ldrb r0, [r0]
	adds r4, r0, 0
	lsls r1, r4, 3
	add r0, sp, 0x38
	adds r0, r1
	ldr r0, [r0]
	mov r9, r0
	ldr r2, =gUnknown_02022CF8
	ldr r0, [r2]
	add r0, r10
	ldrb r0, [r0]
	ldr r2, =gUnknown_082FB3DC
	ldr r3, [sp, 0x68]
	adds r1, r3, r1
	ldrb r1, [r1]
	lsls r1, 2
	adds r1, r2
	ldr r2, [r1]
	ldr r3, =gUnknown_082FB402
	lsls r1, r5, 1
	adds r1, r3
	ldrb r6, [r1]
	str r6, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	mov r3, r8
	str r3, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x8
	bl AddTextPrinterParameterized
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	bne _080297CC
	movs r0, 0x2
	mov r8, r0
_080297CC:
	adds r0, r4, 0
	bl sub_8027660
	adds r3, r0, 0
	ldr r1, =gUnknown_02022CF8
	ldr r0, [r1]
	add r0, r10
	ldrb r0, [r0]
	mov r2, r8
	lsls r1, r2, 1
	add r1, r8
	ldr r2, =gUnknown_082FB380
	adds r1, r2
	str r1, [sp]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp, 0x4]
	str r3, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0x1C
	adds r3, r6, 0
	bl AddTextPrinterParameterized3
	add r0, sp, 0xC
	mov r1, r9
	movs r2, 0
	movs r3, 0x7
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	adds r3, r0, 0
	ldr r2, =gUnknown_02022CF8
	ldr r0, [r2]
	add r0, r10
	ldrb r0, [r0]
	ldr r1, [sp, 0x64]
	subs r3, r1, r3
	lsls r3, 24
	lsrs r3, 24
	str r6, [sp]
	movs r2, 0xFF
	str r2, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	add r2, sp, 0xC
	bl AddTextPrinterParameterized
	ldr r2, =gUnknown_02022CF8
	ldr r0, [r2]
	add r0, r10
	ldrb r0, [r0]
	ldr r1, [sp, 0x64]
	lsls r3, r1, 24
	str r6, [sp]
	movs r2, 0xFF
	str r2, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	ldr r2, =gText_SpacePoints
	lsrs r3, 24
	bl AddTextPrinterParameterized
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r7
	bcc _08029774
_08029860:
	add sp, 0x6C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80296A8

	thumb_func_start sub_802988C
sub_802988C: @ 802988C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x14
	bl sub_8027650
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0xC]
	ldr r6, =gUnknown_02022CF8
	ldr r1, [r6]
	ldr r2, =0x00003014
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0xB
	bls _080298B2
	b _08029FA8
_080298B2:
	lsls r0, 2
	ldr r1, =_080298C8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_080298C8:
	.4byte _080298F8
	.4byte _08029914
	.4byte _0802996C
	.4byte _08029B6C
	.4byte _08029BB8
	.4byte _08029BFC
	.4byte _08029C60
	.4byte _08029C9C
	.4byte _08029CE0
	.4byte _08029DA0
	.4byte _08029F08
	.4byte _08029F5C
_080298F8:
	bl sub_802784C
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r0, =0x0000301c
	adds r2, r1, r0
	movs r0, 0
	strh r0, [r2]
	b _08029F8A
	.pool
_08029914:
	ldr r6, =gUnknown_082F7BBC
	adds r0, r6, 0
	bl AddWindow
	ldr r4, =gUnknown_02022CF8
	ldr r1, [r4]
	ldr r2, =0x00003008
	mov r8, r2
	add r1, r8
	strb r0, [r1]
	movs r0, 0x8
	adds r0, r6
	mov r9, r0
	bl AddWindow
	ldr r1, [r4]
	ldr r5, =0x00003009
	adds r1, r5
	strb r0, [r1]
	ldr r0, [r4]
	add r0, r8
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r4]
	adds r0, r5
	ldrb r0, [r0]
	bl ClearWindowTilemap
	adds r0, r6, 0
	bl sub_8029174
	mov r0, r9
	bl sub_8029174
	b _08029F88
	.pool
_0802996C:
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r5, =0x00003008
	adds r0, r5
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r4]
	ldr r1, =0x00003009
	mov r9, r1
	add r0, r9
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r2, =gText_BerryPickingResults
	mov r8, r2
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x1
	mov r1, r8
	bl GetStringWidth
	adds r1, r0, 0
	movs r0, 0xE0
	subs r0, r1
	lsrs r3, r0, 1
	ldr r0, [r4]
	adds r0, r5
	ldrb r0, [r0]
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x1
	str r1, [sp]
	movs r6, 0xFF
	str r6, [sp, 0x4]
	movs r5, 0
	str r5, [sp, 0x8]
	mov r2, r8
	bl AddTextPrinterParameterized
	ldr r0, [r4]
	add r0, r9
	ldrb r0, [r0]
	ldr r2, =gText_10P30P50P50P
	movs r1, 0x11
	str r1, [sp]
	str r6, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x44
	bl AddTextPrinterParameterized
	mov r9, r5
	ldr r0, [sp, 0xC]
	cmp r9, r0
	bcc _080299E2
	b _08029B2A
_080299E2:
	movs r4, 0
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r0, 24
	cmp r9, r0
	bne _080299F2
	movs r4, 0x2
_080299F2:
	mov r0, r9
	bl sub_8027660
	adds r6, r0, 0
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	ldr r1, =0x00003009
	adds r0, r1
	ldrb r0, [r0]
	mov r2, r9
	lsls r5, r2, 1
	ldr r2, =gUnknown_082FB3F8
	adds r1, r5, r2
	ldrb r3, [r1]
	lsls r1, r4, 1
	adds r1, r4
	ldr r2, =gUnknown_082FB380
	adds r1, r2
	str r1, [sp]
	movs r4, 0x1
	negs r4, r4
	str r4, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0
	bl AddTextPrinterParameterized3
	movs r7, 0
	mov r8, r5
	mov r0, r9
	adds r0, 0x1
	str r0, [sp, 0x10]
	ldr r1, =gStringVar4
	mov r10, r1
_08029A36:
	mov r0, r9
	adds r1, r7, 0
	bl sub_80276A0
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =0x0000270f
	bl sub_8027A38
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r7, 0
	bl sub_802778C
	ldr r1, =0x0000270f
	bl sub_8027A38
	lsls r0, 16
	lsrs r6, r0, 16
	mov r0, r10
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0x4
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	mov r1, r10
	movs r2, 0x1
	negs r2, r2
	bl GetStringWidth
	adds r5, r0, 0
	cmp r6, r4
	bne _08029AE0
	cmp r6, 0
	beq _08029AE0
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	lsls r1, r7, 1
	ldr r2, =gUnknown_082FB3F0
	adds r1, r2
	ldrb r2, [r1]
	subs r2, r5
	lsls r2, 24
	lsrs r2, 24
	ldr r1, =gUnknown_082FB3F8
	add r1, r8
	ldrb r3, [r1]
	ldr r1, =gUnknown_082FB383
	str r1, [sp]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp, 0x4]
	mov r1, r10
	str r1, [sp, 0x8]
	movs r1, 0x1
	bl AddTextPrinterParameterized3
	b _08029B10
	.pool
_08029AE0:
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	lsls r1, r7, 1
	ldr r2, =gUnknown_082FB3F0
	adds r1, r2
	ldrb r3, [r1]
	subs r3, r5
	lsls r3, 24
	lsrs r3, 24
	ldr r1, =gUnknown_082FB3F8
	add r1, r8
	ldrb r1, [r1]
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	ldr r2, =gStringVar4
	bl AddTextPrinterParameterized
_08029B10:
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	cmp r7, 0x3
	bls _08029A36
	ldr r1, [sp, 0x10]
	lsls r0, r1, 24
	lsrs r0, 24
	mov r9, r0
	ldr r2, [sp, 0xC]
	cmp r9, r2
	bcs _08029B2A
	b _080299E2
_08029B2A:
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, [r4]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r1, [r4]
	ldr r0, =0x00003014
	adds r1, r0
	b _08029F8E
	.pool
_08029B6C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _08029B90
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r0, [r4]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	bl PutWindowTilemap
_08029B90:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	bl sub_8028C30
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r0, =0x00003014
	adds r1, r0
	b _08029F8E
	.pool
_08029BB8:
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x0000301c
	adds r2, r0, r1
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1D
	bhi _08029BD0
	b _08029FF8
_08029BD0:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _08029BDE
	b _08029FF8
_08029BDE:
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	bl sub_8028C30
	b _08029F88
	.pool
_08029BFC:
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r5, =0x00003008
	adds r0, r5
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r4]
	ldr r1, =0x00003009
	adds r0, r1
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r6, =gText_AnnouncingRankings
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x1
	adds r1, r6, 0
	bl GetStringWidth
	adds r1, r0, 0
	movs r0, 0xE0
	subs r0, r1
	lsrs r3, r0, 1
	ldr r0, [r4]
	adds r0, r5
	ldrb r0, [r0]
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r6, 0
	bl AddTextPrinterParameterized
	b _08029F88
	.pool
_08029C60:
	ldr r0, [sp, 0xC]
	bl sub_80296A8
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, [r4]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r1, [r4]
	ldr r0, =0x00003014
	adds r1, r0
	b _08029F8E
	.pool
_08029C9C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _08029CC0
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r0, [r4]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	bl PutWindowTilemap
_08029CC0:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r0, =0x00003014
	adds r1, r0
	b _08029F8E
	.pool
_08029CE0:
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x0000301c
	adds r2, r0, r1
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1D
	bhi _08029CF8
	b _08029FF8
_08029CF8:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _08029D06
	b _08029FF8
_08029D06:
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x5
	bl PlaySE
	bl sub_8027748
	ldr r1, =0x00000bb7
	cmp r0, r1
	bhi _08029D3C
	ldr r0, [r4]
	ldr r2, =0x00003014
	adds r0, r2
	movs r1, 0x7F
	strb r1, [r0]
	b _08029D4C
	.pool
_08029D3C:
	bl StopMapMusic
	ldr r1, [r4]
	ldr r0, =0x00003014
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_08029D4C:
	movs r0, 0x1E
	str r0, [sp]
	movs r0, 0xF
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x5
	bl FillBgTilemapBufferRect_Palette0
	ldr r5, =gUnknown_02022CF8
	ldr r0, [r5]
	ldr r4, =0x00003009
	adds r0, r4
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r6, =gUnknown_082F7BCC
	adds r0, r6, 0
	bl AddWindow
	ldr r1, [r5]
	adds r1, r4
	strb r0, [r1]
	ldr r0, [r5]
	adds r0, r4
	ldrb r0, [r0]
	bl ClearWindowTilemap
	adds r0, r6, 0
	bl sub_8029174
	b _08029FF8
	.pool
_08029DA0:
	ldr r0, =0x0000016f
	bl PlayNewMapMusic
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r6, =0x00003008
	adds r0, r6
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r4]
	ldr r1, =0x00003009
	mov r10, r1
	add r0, r10
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r5, =gText_AnnouncingPrizes
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x1
	adds r1, r5, 0
	bl GetStringWidth
	adds r1, r0, 0
	movs r0, 0xE0
	subs r0, r1
	lsrs r3, r0, 1
	ldr r0, [r4]
	adds r0, r6
	ldrb r0, [r0]
	lsls r3, 24
	lsrs r3, 24
	movs r2, 0x1
	mov r9, r2
	str r2, [sp]
	movs r1, 0xFF
	mov r8, r1
	str r1, [sp, 0x4]
	movs r6, 0
	str r6, [sp, 0x8]
	movs r1, 0x1
	adds r2, r5, 0
	bl AddTextPrinterParameterized
	bl DynamicPlaceholderTextUtil_Reset
	bl sub_802762C
	lsls r0, 16
	lsrs r0, 16
	ldr r5, =gStringVar1
	adds r1, r5, 0
	bl CopyItemName
	movs r0, 0
	adds r1, r5, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r7, =gStringVar4
	ldr r1, =gText_FirstPlacePrize
	adds r0, r7, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	ldr r0, [r4]
	add r0, r10
	ldrb r0, [r0]
	mov r2, r9
	str r2, [sp]
	mov r1, r8
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r1, 0x1
	adds r2, r7, 0
	movs r3, 0
	bl AddTextPrinterParameterized
	bl sub_80279C8
	lsls r0, 24
	lsrs r4, r0, 24
	adds r6, r4, 0
	cmp r4, 0
	beq _08029EC8
	cmp r4, 0x3
	beq _08029EC8
	bl DynamicPlaceholderTextUtil_Reset
	bl sub_802762C
	lsls r0, 16
	lsrs r0, 16
	adds r1, r5, 0
	bl CopyItemName
	movs r0, 0
	adds r1, r5, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	cmp r4, 0x2
	bne _08029E9C
	ldr r1, =gText_CantHoldAnyMore
	adds r0, r7, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	b _08029EA8
	.pool
_08029E9C:
	cmp r6, 0x1
	bne _08029EA8
	ldr r1, =gText_FilledStorageSpace
	adds r0, r7, 0
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_08029EA8:
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	ldr r2, =gStringVar4
	movs r1, 0x29
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
_08029EC8:
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, [r4]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r1, [r4]
	ldr r0, =0x00003014
	adds r1, r0
	b _08029F8E
	.pool
_08029F08:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _08029F2C
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r0, [r4]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	bl PutWindowTilemap
_08029F2C:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =0x0000020b
	movs r1, 0x14
	movs r2, 0xA
	bl FadeOutAndFadeInNewMapMusic
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r0, =0x00003014
	adds r1, r0
	b _08029F8E
	.pool
_08029F5C:
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x0000301c
	adds r2, r0, r1
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1D
	bls _08029FF8
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08029FF8
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x5
	bl PlaySE
_08029F88:
	ldr r1, [r4]
_08029F8A:
	ldr r2, =0x00003014
	adds r1, r2
_08029F8E:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _08029FF8
	.pool
_08029FA8:
	ldr r5, =0x00003008
	adds r0, r1, r5
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r6]
	ldr r4, =0x00003009
	adds r0, r4
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r6]
	adds r0, r5
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r0, [r6]
	adds r0, r4
	ldrb r0, [r0]
	bl RemoveWindow
	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 r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, [r6]
	movs r1, 0xC0
	lsls r1, 6
	adds r0, r1
	movs r1, 0x1
	str r1, [r0]
_08029FF8:
	add sp, 0x14
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802988C

	thumb_func_start sub_802A010
sub_802A010: @ 802A010
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	ldr r1, =gUnknown_02022CF8
	ldr r2, [r1]
	ldr r3, =0x00003014
	adds r0, r2, r3
	ldrb r6, [r0]
	adds r7, r1, 0
	cmp r6, 0x1
	beq _0802A0CC
	cmp r6, 0x1
	bgt _0802A040
	cmp r6, 0
	beq _0802A04E
	b _0802A2FC
	.pool
_0802A040:
	cmp r6, 0x2
	bne _0802A046
	b _0802A194
_0802A046:
	cmp r6, 0x3
	bne _0802A04C
	b _0802A1D0
_0802A04C:
	b _0802A2FC
_0802A04E:
	ldr r0, =gUnknown_082F7BD4
	mov r9, r0
	bl AddWindow
	ldr r1, [r7]
	ldr r4, =0x00003008
	adds r1, r4
	strb r0, [r1]
	movs r1, 0x8
	add r1, r9
	mov r8, r1
	mov r0, r8
	bl AddWindow
	ldr r1, [r7]
	ldr r2, =0x00003009
	adds r1, r2
	strb r0, [r1]
	ldr r0, [r7]
	adds r0, r4
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r7]
	ldr r3, =0x00003009
	adds r0, r3
	ldrb r0, [r0]
	bl ClearWindowTilemap
	mov r0, r9
	bl sub_8029174
	mov r0, r8
	bl sub_8029074
	ldr r1, [r7]
	ldr r0, =0x00003014
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	ldr r0, [r7]
	ldr r1, =0x00003020
	adds r0, r1
	strb r6, [r0]
	ldr r0, [r7]
	ldr r2, =0x00003024
	adds r0, r2
	strb r6, [r0]
	b _0802A35E
	.pool
_0802A0CC:
	ldr r3, =0x00003008
	mov r8, r3
	adds r0, r2, r3
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r7]
	ldr r1, =0x00003009
	mov r10, r1
	add r0, r10
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r7]
	add r0, r8
	ldrb r0, [r0]
	ldr r2, =gText_WantToPlayAgain
	movs r1, 0x5
	str r1, [sp]
	movs r3, 0xFF
	mov r9, r3
	str r3, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r7]
	add r0, r10
	ldrb r0, [r0]
	ldr r2, =gText_Yes
	str r6, [sp]
	mov r3, r9
	str r3, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x8
	bl AddTextPrinterParameterized
	ldr r0, [r7]
	add r0, r10
	ldrb r0, [r0]
	ldr r2, =gText_No
	movs r1, 0x11
	str r1, [sp]
	mov r3, r9
	str r3, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x8
	bl AddTextPrinterParameterized
	ldr r0, [r7]
	add r0, r10
	ldrb r0, [r0]
	ldr r2, =gText_SelectorArrow2
	str r6, [sp]
	mov r3, r9
	str r3, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r7]
	add r0, r8
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, [r7]
	add r0, r10
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r1, [r7]
	ldr r2, =0x00003014
	adds r1, r2
	b _0802A2EA
	.pool
_0802A194:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802A1B6
	ldr r0, [r7]
	ldr r3, =0x00003008
	adds r0, r3
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r0, [r7]
	ldr r1, =0x00003009
	adds r0, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
_0802A1B6:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r1, [r7]
	ldr r2, =0x00003014
	adds r1, r2
	b _0802A2EA
	.pool
_0802A1D0:
	ldr r3, =0x00003020
	adds r0, r2, r3
	ldrb r5, [r0]
	cmp r5, 0
	bne _0802A1DC
	movs r5, 0x1
_0802A1DC:
	ldr r0, =0x00003009
	mov r8, r0
	adds r0, r2, r0
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r7]
	add r0, r8
	ldrb r0, [r0]
	ldr r2, =gText_Yes
	movs r1, 0x1
	str r1, [sp]
	movs r3, 0xFF
	mov r10, r3
	str r3, [sp, 0x4]
	movs r1, 0
	mov r9, r1
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x8
	bl AddTextPrinterParameterized
	ldr r0, [r7]
	add r0, r8
	ldrb r0, [r0]
	ldr r2, =gText_No
	movs r1, 0x11
	str r1, [sp]
	mov r3, r10
	str r3, [sp, 0x4]
	mov r1, r9
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x8
	bl AddTextPrinterParameterized
	ldr r0, [r7]
	add r0, r8
	ldrb r0, [r0]
	ldr r2, =gText_SelectorArrow2
	subs r1, r5, 0x1
	lsls r1, 4
	adds r1, 0x1
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp]
	mov r3, r10
	str r3, [sp, 0x4]
	mov r1, r9
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r7]
	add r0, r8
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r5, 0x1
	movs r2, 0x1
	ands r2, r1
	cmp r2, 0
	beq _0802A294
	movs r0, 0x5
	bl PlaySE
	ldr r0, [r7]
	ldr r3, =0x00003020
	adds r1, r0, r3
	ldrb r0, [r1]
	cmp r0, 0
	bne _0802A2E4
	strb r5, [r1]
	b _0802A2E4
	.pool
_0802A294:
	movs r0, 0xC0
	ands r0, r1
	cmp r0, 0
	beq _0802A2CC
	movs r0, 0x5
	bl PlaySE
	ldr r0, [r7]
	ldr r2, =0x00003020
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, 0x1
	beq _0802A2C2
	cmp r0, 0x1
	bgt _0802A2BC
	cmp r0, 0
	beq _0802A2C2
	b _0802A35E
	.pool
_0802A2BC:
	cmp r0, 0x2
	beq _0802A2C8
	b _0802A35E
_0802A2C2:
	movs r0, 0x2
	strb r0, [r1]
	b _0802A35E
_0802A2C8:
	strb r5, [r1]
	b _0802A35E
_0802A2CC:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0802A35E
	movs r0, 0x5
	bl PlaySE
	ldr r0, [r7]
	ldr r3, =0x00003020
	adds r0, r3
	movs r1, 0x2
	strb r1, [r0]
_0802A2E4:
	ldr r1, [r7]
	ldr r0, =0x00003014
	adds r1, r0
_0802A2EA:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0802A35E
	.pool
_0802A2FC:
	ldr r0, [r7]
	ldr r2, =0x00003020
	adds r1, r0, r2
	ldrb r1, [r1]
	ldr r3, =0x00003024
	adds r0, r3
	strb r1, [r0]
	ldr r0, [r7]
	ldr r6, =0x00003008
	adds r0, r6
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r7]
	ldr r1, =0x00003009
	adds r0, r1
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r7]
	adds r0, r6
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r0, [r7]
	ldr r2, =0x00003009
	adds r0, r2
	ldrb r0, [r0]
	bl RemoveWindow
	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 r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, [r7]
	movs r3, 0xC0
	lsls r3, 6
	adds r0, r3
	movs r1, 0x1
	str r1, [r0]
_0802A35E:
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802A010

	thumb_func_start sub_802A380
sub_802A380: @ 802A380
	push {r4-r6,lr}
	sub sp, 0x10
	ldr r5, =gUnknown_02022CF8
	ldr r0, [r5]
	ldr r6, =0x00003014
	adds r0, r6
	ldrb r4, [r0]
	cmp r4, 0x1
	beq _0802A3D8
	cmp r4, 0x1
	bgt _0802A3A4
	cmp r4, 0
	beq _0802A3AE
	b _0802A420
	.pool
_0802A3A4:
	cmp r4, 0x2
	beq _0802A3EC
	cmp r4, 0x3
	beq _0802A404
	b _0802A420
_0802A3AE:
	movs r0, 0
	movs r1, 0
	bl DrawDialogueFrame
	ldr r2, =gText_SavingDontTurnOffPower
	str r4, [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 AddTextPrinterParameterized2
	b _0802A410
	.pool
_0802A3D8:
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, [r5]
	ldr r0, =0x00003014
	adds r1, r0
	b _0802A414
	.pool
_0802A3EC:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802A448
	ldr r0, =sub_8153688
	movs r1, 0
	bl CreateTask
	b _0802A410
	.pool
_0802A404:
	ldr r0, =sub_8153688
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _0802A448
_0802A410:
	ldr r1, [r5]
	adds r1, r6
_0802A414:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0802A448
	.pool
_0802A420:
	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 r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	movs r1, 0xC0
	lsls r1, 6
	adds r0, r1
	movs r1, 0x1
	str r1, [r0]
_0802A448:
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802A380

	thumb_func_start sub_802A454
sub_802A454: @ 802A454
	push {r4-r6,lr}
	sub sp, 0xC
	ldr r1, =gUnknown_02022CF8
	ldr r2, [r1]
	ldr r6, =0x00003014
	adds r0, r2, r6
	ldrb r0, [r0]
	adds r5, r1, 0
	cmp r0, 0x1
	beq _0802A4AC
	cmp r0, 0x1
	bgt _0802A47C
	cmp r0, 0
	beq _0802A482
	b _0802A520
	.pool
_0802A47C:
	cmp r0, 0x2
	beq _0802A4F4
	b _0802A520
_0802A482:
	ldr r4, =gUnknown_082F7BEC
	adds r0, r4, 0
	bl AddWindow
	ldr r1, [r5]
	ldr r2, =0x00003008
	adds r1, r2
	strb r0, [r1]
	ldr r0, [r5]
	adds r0, r2
	ldrb r0, [r0]
	bl ClearWindowTilemap
	adds r0, r4, 0
	bl sub_8029174
	b _0802A510
	.pool
_0802A4AC:
	ldr r4, =0x00003008
	adds r0, r2, r4
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r5]
	adds r0, r4
	ldrb r0, [r0]
	ldr r2, =gText_CommunicationStandby3
	movs r1, 0x5
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	adds r0, r4
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r1, [r5]
	ldr r0, =0x00003014
	adds r1, r0
	b _0802A514
	.pool
_0802A4F4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802A50A
	ldr r0, [r5]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
_0802A50A:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_0802A510:
	ldr r1, [r5]
	adds r1, r6
_0802A514:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0802A52C
	.pool
_0802A520:
	ldr r0, [r5]
	movs r1, 0xC0
	lsls r1, 6
	adds r0, r1
	movs r1, 0x1
	str r1, [r0]
_0802A52C:
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_802A454

	thumb_func_start sub_802A534
sub_802A534: @ 802A534
	push {r4,r5,lr}
	sub sp, 0x8
	ldr r5, =gUnknown_02022CF8
	ldr r0, [r5]
	ldr r4, =0x00003008
	adds r0, r4
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r5]
	adds r0, r4
	ldrb r0, [r0]
	bl RemoveWindow
	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 r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, [r5]
	movs r1, 0xC0
	lsls r1, 6
	adds r0, r1
	movs r1, 0x1
	str r1, [r0]
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802A534

	thumb_func_start sub_802A588
sub_802A588: @ 802A588
	push {r4-r7,lr}
	sub sp, 0xC
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r7, =0x00003014
	adds r2, r1, r7
	ldrb r5, [r2]
	adds r6, r0, 0
	cmp r5, 0x1
	beq _0802A610
	cmp r5, 0x1
	bgt _0802A5B0
	cmp r5, 0
	beq _0802A5BA
	b _0802A6A4
	.pool
_0802A5B0:
	cmp r5, 0x2
	beq _0802A658
	cmp r5, 0x3
	beq _0802A684
	b _0802A6A4
_0802A5BA:
	ldr r4, =gUnknown_082F7BE4
	adds r0, r4, 0
	bl AddWindow
	ldr r1, [r6]
	ldr r2, =0x00003008
	adds r1, r2
	strb r0, [r1]
	ldr r0, [r6]
	adds r0, r2
	ldrb r0, [r0]
	bl ClearWindowTilemap
	adds r0, r4, 0
	bl sub_8029174
	ldr r1, [r6]
	adds r1, r7
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	ldr r0, [r6]
	ldr r2, =0x0000301c
	adds r1, r0, r2
	movs r2, 0
	strh r5, [r1]
	ldr r1, =0x00003020
	adds r0, r1
	strb r2, [r0]
	ldr r0, [r6]
	adds r1, 0x4
	adds r0, r1
	strb r2, [r0]
	b _0802A6EA
	.pool
_0802A610:
	ldr r4, =0x00003008
	adds r0, r1, r4
	ldrb r0, [r0]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r0, [r6]
	adds r0, r4
	ldrb r0, [r0]
	ldr r2, =gText_SomeoneDroppedOut
	movs r1, 0x5
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r6]
	adds r0, r4
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r1, [r6]
	ldr r2, =0x00003014
	adds r1, r2
	b _0802A678
	.pool
_0802A658:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802A66E
	ldr r0, [r6]
	ldr r1, =0x00003008
	adds r0, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
_0802A66E:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r1, [r6]
	adds r1, r7
_0802A678:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _0802A6EA
	.pool
_0802A684:
	ldr r0, =0x0000301c
	adds r1, r0
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x77
	bls _0802A6EA
	ldrb r0, [r2]
	adds r0, 0x1
	strb r0, [r2]
	b _0802A6EA
	.pool
_0802A6A4:
	ldr r0, [r6]
	ldr r1, =0x00003024
	adds r0, r1
	movs r1, 0x5
	strb r1, [r0]
	ldr r0, [r6]
	ldr r4, =0x00003008
	adds r0, r4
	ldrb r0, [r0]
	bl ClearWindowTilemap
	ldr r0, [r6]
	adds r0, r4
	ldrb r0, [r0]
	bl RemoveWindow
	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 r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, [r6]
	movs r2, 0xC0
	lsls r2, 6
	adds r0, r2
	movs r1, 0x1
	str r1, [r0]
_0802A6EA:
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802A588

	thumb_func_start unused_0
unused_0: @ 802A6FC
	push {r4,lr}
	ldr r4, =gUnknown_02022CF8
	ldr r0, [r4]
	ldr r1, =0x00003004
	adds r0, r1
	ldrb r0, [r0]
	bl DestroyTask
	ldr r0, [r4]
	movs r1, 0xC0
	lsls r1, 6
	adds r0, r1
	movs r1, 0x1
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end unused_0

	thumb_func_start nullsub_16
nullsub_16: @ 802A728
	bx lr
	thumb_func_end nullsub_16

	thumb_func_start sub_802A72C
sub_802A72C: @ 802A72C
	push {r4,lr}
	ldr r2, =gUnknown_02022CF8
	ldr r1, [r2]
	ldr r3, =0x00003014
	adds r1, r3
	movs r3, 0
	strb r3, [r1]
	ldr r1, [r2]
	movs r4, 0xC0
	lsls r4, 6
	adds r2, r1, r4
	str r3, [r2]
	ldr r2, =0x00003028
	adds r1, r2
	str r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802A72C

	thumb_func_start sub_802A75C
sub_802A75C: @ 802A75C
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	ldr r1, =0x00003028
	adds r0, r1
	ldr r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_802A75C

	thumb_func_start sub_802A770
sub_802A770: @ 802A770
	push {lr}
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	movs r1, 0xC0
	lsls r1, 6
	adds r0, r1
	ldr r0, [r0]
	cmp r0, 0x1
	beq _0802A78C
	movs r0, 0x1
	b _0802A78E
	.pool
_0802A78C:
	movs r0, 0
_0802A78E:
	pop {r1}
	bx r1
	thumb_func_end sub_802A770

	thumb_func_start sub_802A794
sub_802A794: @ 802A794
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	ldr r1, =0x00003024
	adds r0, r1
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_802A794

	thumb_func_start sub_802A7A8
sub_802A7A8: @ 802A7A8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	movs r3, 0xC0
	lsls r3, 19
	movs r4, 0xC0
	lsls r4, 9
	add r0, sp, 0x4
	mov r8, r0
	mov r2, sp
	movs r6, 0
	ldr r1, =0x040000d4
	movs r5, 0x80
	lsls r5, 5
	ldr r7, =0x81000800
	movs r0, 0x81
	lsls r0, 24
	mov r12, r0
_0802A7CE:
	strh r6, [r2]
	mov r0, sp
	str r0, [r1]
	str r3, [r1, 0x4]
	str r7, [r1, 0x8]
	ldr r0, [r1, 0x8]
	adds r3, r5
	subs r4, r5
	cmp r4, r5
	bhi _0802A7CE
	strh r6, [r2]
	mov r2, sp
	str r2, [r1]
	str r3, [r1, 0x4]
	lsrs r0, r4, 1
	mov r2, r12
	orrs r0, r2
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	movs r0, 0xE0
	lsls r0, 19
	movs r3, 0x80
	lsls r3, 3
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r2, =0x040000d4
	mov r1, r8
	str r1, [r2]
	str r0, [r2, 0x4]
	lsrs r0, r3, 2
	movs r1, 0x85
	lsls r1, 24
	orrs r0, r1
	str r0, [r2, 0x8]
	ldr r0, [r2, 0x8]
	movs r1, 0xA0
	lsls r1, 19
	mov r0, sp
	strh r4, [r0]
	str r0, [r2]
	str r1, [r2, 0x4]
	lsrs r3, 1
	movs r0, 0x81
	lsls r0, 24
	orrs r3, r0
	str r3, [r2, 0x8]
	ldr r0, [r2, 0x8]
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082F7BA4
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	bl InitStandardTextBoxWindows
	bl sub_8197200
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	ldr r4, =gUnknown_02022CF8
	ldr r1, [r4]
	movs r0, 0x3
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	movs r2, 0x80
	lsls r2, 5
	adds r1, r2
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	movs r0, 0x80
	lsls r0, 6
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802A7A8

	thumb_func_start sub_802A8E8
sub_802A8E8: @ 802A8E8
	push {lr}
	sub sp, 0x4
	ldr r0, =gUnknown_02022CF8
	ldr r0, [r0]
	ldr r2, =0x00003018
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, 0x5
	bhi _0802A982
	lsls r0, 2
	ldr r1, =_0802A910
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802A910:
	.4byte _0802A928
	.4byte _0802A938
	.4byte _0802A93E
	.4byte _0802A94C
	.4byte _0802A964
	.4byte _0802A972
_0802A928:
	ldr r0, =gDodrioBerryBgPal1
	movs r1, 0
	movs r2, 0x40
	bl LoadPalette
	b _0802A98A
	.pool
_0802A938:
	bl reset_temp_tile_data_buffers
	b _0802A98A
_0802A93E:
	ldr r1, =gDodrioBerryBgGfx1
	movs r0, 0
	str r0, [sp]
	movs r0, 0x3
	b _0802A954
	.pool
_0802A94C:
	ldr r1, =gDodrioBerryBgGfx2
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
_0802A954:
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	b _0802A98A
	.pool
_0802A964:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0802A98A
	b _0802A998
_0802A972:
	movs r0, 0x3
	bl stdpal_get
	movs r1, 0xD0
	movs r2, 0x20
	bl LoadPalette
	b _0802A98A
_0802A982:
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x1
	b _0802A99A
_0802A98A:
	ldr r0, =gUnknown_02022CF8
	ldr r1, [r0]
	ldr r0, =0x00003018
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_0802A998:
	movs r0, 0
_0802A99A:
	add sp, 0x4
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802A8E8

	thumb_func_start sub_802A9A8
sub_802A9A8: @ 802A9A8
	push {r4-r7,lr}
	adds r6, r1, 0
	lsls r0, 16
	lsrs r7, r0, 16
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802AA3C
	ldr r5, =gUnknown_02022CFC
	ldr r0, =0x000083b0
	bl Alloc
	str r0, [r5]
	cmp r0, 0
	beq _0802AA3C
	bl ResetTasks
	ldr r0, =sub_802ACA0
	movs r1, 0x1
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, [r5]
	movs r1, 0
	strh r1, [r0, 0x8]
	str r6, [r0]
	strb r4, [r0, 0x4]
	bl GetMultiplayerId
	ldr r1, [r5]
	strb r0, [r1, 0x6]
	ldr r0, [r5]
	ldrb r2, [r0, 0x6]
	lsls r1, r2, 1
	adds r1, r2
	lsls r1, 2
	ldr r2, =0x000082a8
	adds r1, r2
	adds r0, r1
	movs r1, 0x64
	muls r1, r7
	ldr r2, =gPlayerParty
	adds r1, r2
	bl sub_802AC2C
	ldr r0, [r5]
	bl sub_802AA60
	ldr r2, [r5]
	adds r0, r4, 0
	movs r1, 0x2
	bl SetWordTaskArg
	ldr r0, =sub_802AC6C
	bl SetMainCallback2
	b _0802AA42
	.pool
_0802AA3C:
	adds r0, r6, 0
	bl SetMainCallback2
_0802AA42:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_802A9A8

	thumb_func_start sub_802AA48
sub_802AA48: @ 802AA48
	push {lr}
	bl sub_802D0AC
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	bl Free
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802AA48

	thumb_func_start sub_802AA60
sub_802AA60: @ 802AA60
	push {r4,lr}
	adds r4, r0, 0
	bl GetLinkPlayerCount
	movs r2, 0
	strb r0, [r4, 0x5]
	adds r1, r4, 0
	adds r1, 0x70
	movs r0, 0x5
	strb r0, [r1]
	adds r0, r4, 0
	adds r0, 0x72
	strh r2, [r0]
	bl sub_802AB20
	adds r0, r4, 0
	bl sub_802AA94
	ldrb r0, [r4, 0x5]
	cmp r0, 0x5
	bne _0802AA8E
	bl sub_802E3A8
_0802AA8E:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_802AA60

	thumb_func_start sub_802AA94
sub_802AA94: @ 802AA94
	push {r4-r6,lr}
	adds r4, r0, 0
	movs r0, 0x6
	str r0, [r4, 0x14]
	str r0, [r4, 0x18]
	adds r0, r4, 0
	adds r0, 0x4A
	movs r6, 0
	movs r5, 0
	strh r5, [r0]
	str r5, [r4, 0x1C]
	str r5, [r4, 0x5C]
	bl GetMultiplayerId
	movs r1, 0
	lsls r0, 24
	cmp r0, 0
	bne _0802AABA
	movs r1, 0x1
_0802AABA:
	adds r0, r4, 0
	adds r0, 0x47
	strb r1, [r0]
	strh r5, [r4, 0x8]
	strh r5, [r4, 0xA]
	strh r5, [r4, 0xC]
	strh r5, [r4, 0xE]
	str r5, [r4, 0x58]
	strh r5, [r4, 0x3A]
	subs r0, 0x3
	strb r6, [r0]
	str r5, [r4, 0x54]
	adds r0, 0x2
	strb r6, [r0]
	adds r0, 0x3
	strb r6, [r0]
	subs r0, 0x1
	movs r1, 0x1
	strb r1, [r0]
	str r5, [r4, 0x78]
	adds r0, 0x29
	strb r6, [r0]
	adds r0, 0x3
	strh r5, [r0]
	str r1, [r4, 0x60]
	subs r0, 0x27
	strb r6, [r0]
	str r5, [r4, 0x68]
	str r5, [r4, 0x64]
	str r5, [r4, 0x2C]
	str r5, [r4, 0x30]
	bl sub_802AB98
	bl sub_802C0E8
	movs r2, 0
	adds r5, r4, 0
	adds r5, 0x7C
	movs r3, 0
	adds r1, r4, 0
	adds r1, 0x9A
_0802AB0C:
	adds r0, r5, r2
	strb r3, [r0]
	strh r3, [r1]
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, 0x4
	ble _0802AB0C
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_802AA94

	thumb_func_start sub_802AB20
sub_802AB20: @ 802AB20
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r7, =gUnknown_02022CFC
	movs r6, 0
	movs r5, 0
	ldr r0, =gPkmnJumpSpecies
	mov r8, r0
	movs r4, 0x4
_0802AB32:
	ldr r0, [r7]
	adds r0, r5
	ldr r1, =0x000082a8
	adds r0, r1
	ldrh r0, [r0]
	bl sub_802AC00
	lsls r0, 16
	ldr r1, [r7]
	adds r1, r6
	asrs r0, 14
	add r0, r8
	ldrh r0, [r0, 0x2]
	ldr r2, =0x000082f0
	adds r1, r2
	strh r0, [r1]
	adds r6, 0x28
	adds r5, 0xC
	subs r4, 0x1
	cmp r4, 0
	bge _0802AB32
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	ldr r0, =0x000083ac
	adds r3, r1, r0
	ldrb r2, [r1, 0x6]
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r2, =0x000082e4
	adds r0, r2
	adds r1, r0
	str r1, [r3]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802AB20

	thumb_func_start sub_802AB98
sub_802AB98: @ 802AB98
	push {r4-r7,lr}
	movs r5, 0
	ldr r6, =gUnknown_02022CFC
	movs r4, 0
	movs r3, 0
_0802ABA2:
	ldr r2, [r6]
	adds r1, r2, r3
	ldr r7, =0x000082f2
	adds r0, r1, r7
	strh r4, [r0]
	adds r7, 0x2
	adds r0, r1, r7
	strh r4, [r0]
	ldr r0, =0x000082f6
	adds r1, r0
	strh r4, [r1]
	ldr r1, =0x000082e4
	adds r0, r2, r1
	adds r0, r3
	str r4, [r0]
	subs r7, 0xC
	adds r0, r2, r7
	adds r0, r3
	ldr r1, =0x7fffffff
	str r1, [r0]
	ldr r1, =0x000082f8
	adds r0, r2, r1
	adds r0, r3
	str r4, [r0]
	adds r2, 0x8B
	adds r2, r5
	movs r0, 0x9
	strb r0, [r2]
	adds r3, 0x28
	adds r5, 0x1
	cmp r5, 0x4
	ble _0802ABA2
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802AB98

	thumb_func_start sub_802AC00
sub_802AC00: @ 802AC00
	push {lr}
	lsls r0, 16
	lsrs r3, r0, 16
	movs r1, 0
	ldr r2, =gPkmnJumpSpecies
_0802AC0A:
	ldrh r0, [r2]
	cmp r0, r3
	bne _0802AC1C
	lsls r0, r1, 16
	asrs r0, 16
	b _0802AC28
	.pool
_0802AC1C:
	adds r2, 0x4
	adds r1, 0x1
	cmp r1, 0x63
	bls _0802AC0A
	movs r0, 0x1
	negs r0, r0
_0802AC28:
	pop {r1}
	bx r1
	thumb_func_end sub_802AC00

	thumb_func_start sub_802AC2C
sub_802AC2C: @ 802AC2C
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	strh r0, [r5]
	adds r0, r4, 0
	movs r1, 0x1
	bl GetMonData
	str r0, [r5, 0x4]
	adds r0, r4, 0
	movs r1, 0
	bl GetMonData
	str r0, [r5, 0x8]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802AC2C

	thumb_func_start sub_802AC58
sub_802AC58: @ 802AC58
	push {lr}
	bl TransferPlttBuffer
	bl LoadOam
	bl ProcessSpriteCopyRequests
	pop {r0}
	bx r0
	thumb_func_end sub_802AC58

	thumb_func_start sub_802AC6C
sub_802AC6C: @ 802AC6C
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_802AC6C

	thumb_func_start sub_802AC84
sub_802AC84: @ 802AC84
	push {lr}
	movs r1, 0x1
	bl CreateTask
	ldr r2, =gUnknown_02022CFC
	ldr r1, [r2]
	movs r3, 0
	strb r0, [r1, 0x4]
	ldr r0, [r2]
	strh r3, [r0, 0x8]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802AC84

	thumb_func_start sub_802ACA0
sub_802ACA0: @ 802ACA0
	push {r4,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	ldrh r0, [r0, 0x8]
	adds r2, r1, 0
	cmp r0, 0x5
	bls _0802ACB6
	b _0802AE08
_0802ACB6:
	lsls r0, 2
	ldr r1, =_0802ACC8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802ACC8:
	.4byte _0802ACE0
	.4byte _0802AD0C
	.4byte _0802AD3C
	.4byte _0802AD68
	.4byte _0802ADA4
	.4byte _0802ADD0
_0802ACE0:
	movs r0, 0
	bl SetVBlankCallback
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	ldr r0, =sub_802BD84
	movs r1, 0x5
	bl sub_802BE60
	movs r0, 0x4
	bl FadeOutMapMusic
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	b _0802ADC0
	.pool
_0802AD0C:
	ldr r0, =sub_802BD84
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _0802AE08
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	adds r0, 0xA4
	bl sub_802D074
	bl sub_800E0E8
	movs r0, 0
	movs r1, 0
	bl CreateWirelessStatusIndicatorSprite
	ldr r1, [r4]
	b _0802ADC0
	.pool
_0802AD3C:
	bl sub_802D0F0
	cmp r0, 0
	bne _0802AE08
	bl IsNotWaitingForBGMStop
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0802AE08
	ldr r0, =0x0000021a
	movs r1, 0x8
	bl FadeOutAndPlayNewMapMusic
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	b _0802ADC0
	.pool
_0802AD68:
	bl IsLinkTaskFinished
	lsls r0, 24
	cmp r0, 0
	beq _0802AE08
	movs r4, 0x1
	negs r4, r4
	adds r0, r4, 0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	str r0, [sp]
	adds r0, r4, 0
	adds r1, r4, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r0, =sub_802AC58
	bl SetVBlankCallback
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	b _0802ADC0
	.pool
_0802ADA4:
	bl UpdatePaletteFade
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0
	bne _0802AE08
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	strb r2, [r0, 0x7]
	ldr r1, [r1]
_0802ADC0:
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802AE08
	.pool
_0802ADD0:
	ldr r0, [r2]
	ldrb r1, [r0, 0x7]
	adds r1, 0x1
	strb r1, [r0, 0x7]
	ldr r1, [r2]
	ldrb r0, [r1, 0x7]
	cmp r0, 0x13
	bls _0802AE08
	adds r0, r1, 0
	adds r0, 0x47
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802ADF8
	ldr r0, =sub_802AF80
	bl sub_802AC84
	b _0802ADFE
	.pool
_0802ADF8:
	ldr r0, =sub_802B194
	bl sub_802AC84
_0802ADFE:
	bl sub_802BE80
	adds r0, r4, 0
	bl DestroyTask
_0802AE08:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802ACA0

	thumb_func_start sub_802AE14
sub_802AE14: @ 802AE14
	push {lr}
	adds r1, r0, 0
	cmp r1, 0
	bne _0802AE34
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	ldr r0, =0x00001111
	str r0, [r1, 0x30]
	movs r0, 0x1
	str r0, [r1, 0x2C]
	b _0802AE46
	.pool
_0802AE34:
	ldr r0, =gUnknown_02022CFC
	ldr r2, [r0]
	subs r1, 0x1
	movs r0, 0x1
	lsls r0, r1
	subs r0, 0x1
	str r0, [r2, 0x30]
	movs r0, 0
	str r0, [r2, 0x2C]
_0802AE46:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802AE14

	thumb_func_start sub_802AE50
sub_802AE50: @ 802AE50
	push {r4-r6,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	adds r1, 0x70
	movs r2, 0
	strb r0, [r1]
	ldr r0, [r4]
	movs r3, 0
	strh r2, [r0, 0x8]
	strh r2, [r0, 0xA]
	adds r0, 0x48
	movs r1, 0x1
	strb r1, [r0]
	ldr r0, [r4]
	adds r0, 0x49
	strb r3, [r0]
	movs r3, 0x1
	ldr r0, [r4]
	ldrb r0, [r0, 0x5]
	cmp r3, r0
	bge _0802AE94
	adds r6, r4, 0
	ldr r5, =0x000082fc
	movs r4, 0
	movs r2, 0x28
_0802AE82:
	ldr r1, [r6]
	adds r0, r1, r5
	adds r0, r2
	str r4, [r0]
	adds r2, 0x28
	adds r3, 0x1
	ldrb r1, [r1, 0x5]
	cmp r3, r1
	blt _0802AE82
_0802AE94:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802AE50

	thumb_func_start sub_802AEA4
sub_802AEA4: @ 802AEA4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	movs r4, 0x1
	movs r0, 0
	str r0, [sp, 0x4]
	ldr r7, =gUnknown_02022CFC
	ldr r0, [r7]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	bge _0802AF48
	adds r1, r7, 0
	mov r10, r1
	movs r2, 0x2
	add r2, sp
	mov r8, r2
	ldr r3, =0x0000830c
	mov r9, r3
	movs r6, 0x28
_0802AED0:
	mov r1, r10
	ldr r0, [r1]
	adds r1, r0, r6
	ldr r2, =0x000082f4
	adds r1, r2
	ldrh r5, [r1]
	add r0, r9
	adds r1, r4, 0
	mov r2, sp
	mov r3, r8
	bl sub_802E264
	cmp r0, 0
	beq _0802AF10
	ldr r2, [r7]
	lsls r1, r4, 1
	adds r0, r2, 0
	adds r0, 0x90
	adds r0, r1
	mov r3, r8
	ldrh r1, [r3]
	strh r1, [r0]
	adds r2, 0x8B
	adds r2, r4
	mov r0, sp
	ldrb r0, [r0]
	strb r0, [r2]
	ldr r0, [r7]
	adds r0, r6
	ldr r1, =0x000082f6
	adds r0, r1
	strh r5, [r0]
_0802AF10:
	mov r2, r10
	ldr r1, [r2]
	ldr r3, =0x000082fc
	adds r0, r1, r3
	adds r0, r6
	ldr r0, [r0]
	cmp r0, 0
	beq _0802AF36
	adds r0, r1, 0
	adds r0, 0x8B
	adds r0, r4
	adds r1, 0x70
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	bne _0802AF36
	ldr r0, [sp, 0x4]
	adds r0, 0x1
	str r0, [sp, 0x4]
_0802AF36:
	movs r1, 0x28
	add r9, r1
	adds r6, 0x28
	adds r4, 0x1
	ldr r7, =gUnknown_02022CFC
	ldr r0, [r7]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	blt _0802AED0
_0802AF48:
	ldr r2, =gUnknown_02022CFC
	ldr r1, [r2]
	ldrb r0, [r1, 0x5]
	subs r0, 0x1
	ldr r3, [sp, 0x4]
	cmp r3, r0
	bne _0802AF5C
	adds r1, 0x49
	movs r0, 0x1
	strb r0, [r1]
_0802AF5C:
	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 sub_802AEA4

	thumb_func_start sub_802AF80
sub_802AF80: @ 802AF80
	push {r4,r5,lr}
	bl sub_802AEA4
	bl sub_802C43C
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x48
	ldrb r0, [r0]
	cmp r0, 0
	bne _0802AFB2
	adds r0, r1, 0
	adds r0, 0x49
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802AFB2
	adds r0, r1, 0
	adds r0, 0x4C
	ldrb r0, [r0]
	bl sub_802AE50
	movs r0, 0x3
	bl sub_802AE14
_0802AFB2:
	ldr r4, =gUnknown_02022CFC
	ldr r2, [r4]
	adds r0, r2, 0
	adds r0, 0x48
	ldrb r5, [r0]
	cmp r5, 0x1
	bne _0802AFEE
	ldr r1, =gUnknown_082FB5F4
	adds r0, 0x28
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	adds r1, r0, 0
	cmp r1, 0
	bne _0802AFEE
	ldr r0, [r4]
	adds r0, 0x48
	strb r1, [r0]
	ldr r1, [r4]
	ldrb r2, [r1, 0x6]
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r2, =0x000082fc
	adds r1, r2
	adds r1, r0
	str r5, [r1]
_0802AFEE:
	bl sub_802C1DC
	bl sub_802B008
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802AF80

	thumb_func_start sub_802B008
sub_802B008: @ 802B008
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	ldr r0, [r1, 0x2C]
	cmp r0, 0
	bne _0802B01E
	ldr r2, =0x000082e4
	adds r0, r1, r2
	adds r1, 0x70
	bl sub_802E138
_0802B01E:
	ldr r1, [r4]
	ldr r2, [r1, 0x30]
	ldr r0, =0x00001111
	cmp r2, r0
	beq _0802B030
	ldr r0, [r1, 0x2C]
	adds r0, 0x1
	ands r0, r2
	str r0, [r1, 0x2C]
_0802B030:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802B008

	thumb_func_start sub_802B044
sub_802B044: @ 802B044
	ldr r2, =gUnknown_02022CFC
	ldr r1, [r2]
	adds r1, 0x70
	movs r3, 0
	strb r0, [r1]
	ldr r0, [r2]
	strh r3, [r0, 0x8]
	strh r3, [r0, 0xA]
	adds r0, 0x48
	movs r1, 0x1
	strb r1, [r0]
	ldr r1, [r2]
	ldrb r2, [r1, 0x6]
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r2, =0x000082fc
	adds r1, r2
	adds r1, r0
	str r3, [r1]
	bx lr
	.pool
	thumb_func_end sub_802B044

	thumb_func_start sub_802B078
sub_802B078: @ 802B078
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x10
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldr r2, =0x000082f4
	adds r1, r0, r2
	ldrh r1, [r1]
	mov r8, r1
	ldr r3, =0x000082e4
	adds r0, r3
	mov r1, sp
	bl sub_802E1BC
	cmp r0, 0
	beq _0802B128
	ldr r2, [r4]
	ldrb r0, [r2, 0x6]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r3, =0x000082fc
	adds r0, r2, r3
	adds r0, r1
	ldr r0, [r0]
	cmp r0, 0x1
	bne _0802B0C6
	mov r0, sp
	adds r1, r2, 0
	adds r1, 0x70
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	beq _0802B0C6
	mov r0, sp
	ldrb r0, [r0]
	bl sub_802B044
_0802B0C6:
	ldr r3, =gUnknown_02022CFC
	ldr r2, [r3]
	ldr r0, [r2, 0x78]
	ldr r1, [sp, 0x8]
	cmp r0, r1
	beq _0802B108
	str r1, [r2, 0x78]
	movs r4, 0x1
	str r4, [r2, 0x5C]
	mov r0, sp
	ldrb r1, [r0, 0x1]
	adds r0, r2, 0
	adds r0, 0x71
	strb r1, [r0]
	ldr r0, [r3]
	adds r1, r0, 0
	adds r1, 0x71
	ldrb r1, [r1]
	cmp r1, 0
	beq _0802B104
	adds r0, 0x4D
	strb r4, [r0]
	b _0802B108
	.pool
_0802B104:
	adds r0, 0x4D
	strb r1, [r0]
_0802B108:
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	mov r0, sp
	ldrh r0, [r0, 0x2]
	adds r2, r1, 0
	adds r2, 0x72
	strh r0, [r2]
	mov r0, sp
	ldrh r2, [r0, 0x4]
	adds r0, r1, 0
	adds r0, 0x74
	strh r2, [r0]
	ldr r0, =0x000082f6
	adds r1, r0
	mov r2, r8
	strh r2, [r1]
_0802B128:
	movs r4, 0x1
	ldr r2, =gUnknown_02022CFC
	ldr r0, [r2]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	bge _0802B176
	adds r7, r2, 0
	ldr r6, =0x0000830c
	movs r5, 0x28
_0802B13A:
	ldr r1, [r7]
	ldrb r3, [r1, 0x6]
	cmp r4, r3
	beq _0802B168
	adds r0, r1, r5
	ldr r3, =0x000082f4
	adds r0, r3
	ldrh r0, [r0]
	mov r8, r0
	adds r0, r1, r6
	adds r1, r4, 0
	str r2, [sp, 0xC]
	bl sub_802E2D0
	ldr r2, [sp, 0xC]
	cmp r0, 0
	beq _0802B168
	ldr r0, [r7]
	adds r0, r5
	ldr r1, =0x000082f6
	adds r0, r1
	mov r3, r8
	strh r3, [r0]
_0802B168:
	adds r6, 0x28
	adds r5, 0x28
	adds r4, 0x1
	ldr r0, [r2]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	blt _0802B13A
_0802B176:
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802B078

	thumb_func_start sub_802B194
sub_802B194: @ 802B194
	push {r4,lr}
	bl sub_802B078
	ldr r4, =gUnknown_02022CFC
	ldr r2, [r4]
	adds r0, r2, 0
	adds r0, 0x48
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802B1E0
	ldr r1, =gUnknown_082FB618
	adds r0, r2, 0
	adds r0, 0x70
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	adds r1, r0, 0
	cmp r1, 0
	bne _0802B1E0
	ldr r0, [r4]
	adds r0, 0x48
	strb r1, [r0]
	ldr r1, [r4]
	ldrb r2, [r1, 0x6]
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r2, =0x000082fc
	adds r1, r2
	adds r1, r0
	movs r0, 0x1
	str r0, [r1]
	movs r0, 0x3
	bl sub_802AE14
_0802B1E0:
	bl sub_802C1DC
	bl sub_802B1FC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802B194

	thumb_func_start sub_802B1FC
sub_802B1FC: @ 802B1FC
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r2, [r4]
	ldr r0, [r2, 0x2C]
	cmp r0, 0
	bne _0802B224
	ldrb r1, [r2, 0x6]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	ldr r1, =0x000082e4
	adds r0, r1
	adds r0, r2, r0
	adds r1, r2, 0
	adds r1, 0x70
	ldrb r1, [r1]
	adds r2, 0x42
	ldrh r2, [r2]
	bl sub_802E234
_0802B224:
	ldr r1, [r4]
	ldr r2, [r1, 0x30]
	ldr r0, =0x00001111
	cmp r2, r0
	beq _0802B236
	ldr r0, [r1, 0x2C]
	adds r0, 0x1
	ands r0, r2
	str r0, [r1, 0x2C]
_0802B236:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802B1FC

	thumb_func_start sub_802B248
sub_802B248: @ 802B248
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0
	beq _0802B260
	cmp r0, 0x1
	beq _0802B26E
	b _0802B294
	.pool
_0802B260:
	movs r0, 0x3
	bl sub_802AE14
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B26E:
	bl sub_802B7E0
	cmp r0, 0
	bne _0802B294
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x4A
	ldrh r0, [r0]
	adds r2, r1, 0
	adds r2, 0x72
	strh r0, [r2]
	adds r1, 0x4C
	movs r0, 0x1
	strb r0, [r1]
	movs r0, 0
	b _0802B296
	.pool
_0802B294:
	movs r0, 0x1
_0802B296:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B248

	thumb_func_start sub_802B29C
sub_802B29C: @ 802B29C
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0
	beq _0802B2B4
	cmp r0, 0x1
	beq _0802B2CA
	movs r0, 0x1
	b _0802B2CE
	.pool
_0802B2B4:
	movs r0, 0
	bl sub_802AE14
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x72
	ldrh r0, [r0]
	str r0, [r1, 0x24]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B2CA:
	bl sub_802B7E0
_0802B2CE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B29C

	thumb_func_start sub_802B2D4
sub_802B2D4: @ 802B2D4
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	cmp r0, 0
	beq _0802B2EC
	cmp r0, 0x1
	beq _0802B300
	b _0802B314
	.pool
_0802B2EC:
	bl sub_802C0E8
	movs r0, 0x5
	bl sub_802AE14
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B314
_0802B300:
	adds r0, r1, 0
	adds r0, 0x49
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802B314
	adds r1, 0x4C
	movs r0, 0x2
	strb r0, [r1]
	movs r0, 0
	b _0802B316
_0802B314:
	movs r0, 0x1
_0802B316:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B2D4

	thumb_func_start sub_802B31C
sub_802B31C: @ 802B31C
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0
	beq _0802B334
	cmp r0, 0x1
	beq _0802B352
	b _0802B35E
	.pool
_0802B334:
	bl sub_802C0E8
	movs r0, 0
	bl sub_802AE14
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x72
	ldrh r0, [r0]
	adds r2, r1, 0
	adds r2, 0x4A
	strh r0, [r2]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B352:
	bl sub_802C70C
	cmp r0, 0
	beq _0802B35E
	movs r0, 0
	b _0802B360
_0802B35E:
	movs r0, 0x1
_0802B360:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B31C

	thumb_func_start sub_802B368
sub_802B368: @ 802B368
	push {lr}
	bl sub_802B8CC
	cmp r0, 0
	bne _0802B390
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x4A
	ldrh r0, [r0]
	adds r2, r1, 0
	adds r2, 0x72
	strh r0, [r2]
	adds r1, 0x4C
	movs r0, 0x1
	strb r0, [r1]
	b _0802B3AA
	.pool
_0802B390:
	bl sub_802C538
	cmp r0, 0
	beq _0802B39C
	movs r0, 0x1
	b _0802B3AC
_0802B39C:
	bl sub_802C0B8
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	adds r0, 0x4C
	movs r1, 0x3
	strb r1, [r0]
_0802B3AA:
	movs r0, 0
_0802B3AC:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802B368

	thumb_func_start sub_802B3B4
sub_802B3B4: @ 802B3B4
	push {lr}
	bl sub_802B8CC
	cmp r0, 0
	beq _0802B3CE
	bl sub_802C538
	cmp r0, 0
	beq _0802B3CA
	movs r0, 0x1
	b _0802B3D0
_0802B3CA:
	bl sub_802C0B8
_0802B3CE:
	movs r0, 0
_0802B3D0:
	pop {r1}
	bx r1
	thumb_func_end sub_802B3B4

	thumb_func_start sub_802B3D4
sub_802B3D4: @ 802B3D4
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0x1
	beq _0802B40C
	cmp r0, 0x1
	bgt _0802B3F0
	cmp r0, 0
	beq _0802B3F6
	b _0802B468
	.pool
_0802B3F0:
	cmp r0, 0x2
	beq _0802B460
	b _0802B468
_0802B3F6:
	bl sub_802C538
	bl sub_802C5DC
	cmp r0, 0
	beq _0802B468
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B468
_0802B40C:
	bl sub_802B964
	cmp r0, 0
	bne _0802B468
	bl sub_802C7BC
	cmp r0, 0
	beq _0802B42E
	bl sub_802C7E0
	ldr r1, [r4]
	adds r2, r1, 0
	adds r2, 0x72
	strh r0, [r2]
	adds r1, 0x4C
	movs r0, 0x7
	b _0802B454
_0802B42E:
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x74
	ldrh r0, [r0]
	cmp r0, 0xC7
	bls _0802B448
	ldrh r0, [r1, 0xE]
	adds r2, r1, 0
	adds r2, 0x72
	strh r0, [r2]
	adds r1, 0x4C
	movs r0, 0x8
	b _0802B454
_0802B448:
	ldrh r0, [r1, 0xE]
	adds r2, r1, 0
	adds r2, 0x72
	strh r0, [r2]
	adds r1, 0x4C
	movs r0, 0x4
_0802B454:
	strb r0, [r1]
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B460:
	movs r0, 0
	b _0802B46A
	.pool
_0802B468:
	movs r0, 0x1
_0802B46A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B3D4

	thumb_func_start sub_802B470
sub_802B470: @ 802B470
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0x1
	beq _0802B4B0
	cmp r0, 0x1
	bgt _0802B48C
	cmp r0, 0
	beq _0802B492
	b _0802B4C4
	.pool
_0802B48C:
	cmp r0, 0x2
	beq _0802B4C0
	b _0802B4C4
_0802B492:
	bl sub_802C538
	cmp r0, 0
	bne _0802B49E
	bl sub_802C0B8
_0802B49E:
	bl sub_802C5DC
	cmp r0, 0
	beq _0802B4C4
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B4C4
_0802B4B0:
	bl sub_802B964
	cmp r0, 0
	bne _0802B4C4
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B4C0:
	movs r0, 0
	b _0802B4C6
_0802B4C4:
	movs r0, 0x1
_0802B4C6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B470

	thumb_func_start sub_802B4CC
sub_802B4CC: @ 802B4CC
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r1, [r0, 0x8]
	cmp r1, 0x1
	beq _0802B500
	cmp r1, 0x1
	bgt _0802B4E8
	cmp r1, 0
	beq _0802B4F2
	b _0802B560
	.pool
_0802B4E8:
	cmp r1, 0x2
	beq _0802B52C
	cmp r1, 0x3
	beq _0802B556
	b _0802B560
_0802B4F2:
	movs r0, 0x4
	bl sub_802AE14
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B500:
	bl sub_802BB84
	cmp r0, 0
	bne _0802B560
	ldr r4, =gUnknown_02022CFC
	ldr r2, [r4]
	ldr r0, [r2, 0x78]
	adds r1, r2, 0
	adds r1, 0x74
	ldrh r1, [r1]
	adds r2, 0x72
	ldrh r2, [r2]
	bl sub_802E354
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B560
	.pool
_0802B52C:
	adds r0, 0x49
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802B560
	bl sub_802C650
	cmp r0, 0
	beq _0802B544
	ldr r0, [r4]
	adds r0, 0x4C
	movs r1, 0x5
	b _0802B54A
_0802B544:
	ldr r0, [r4]
	adds r0, 0x4C
	movs r1, 0x6
_0802B54A:
	strb r1, [r0]
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B556:
	movs r0, 0
	b _0802B562
	.pool
_0802B560:
	movs r0, 0x1
_0802B562:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B4CC

	thumb_func_start sub_802B568
sub_802B568: @ 802B568
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0
	beq _0802B580
	cmp r0, 0x1
	beq _0802B58E
	b _0802B5C0
	.pool
_0802B580:
	movs r0, 0
	bl sub_802AE14
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B58E:
	bl sub_802BB84
	cmp r0, 0
	bne _0802B5C0
	ldr r4, =gUnknown_02022CFC
	ldr r2, [r4]
	ldr r0, [r2, 0x78]
	adds r1, r2, 0
	adds r1, 0x74
	ldrh r1, [r1]
	adds r2, 0x72
	ldrh r2, [r2]
	bl sub_802E354
	ldr r0, [r4]
	adds r1, r0, 0
	adds r1, 0x45
	ldrb r1, [r1]
	adds r0, 0x42
	strh r1, [r0]
	movs r0, 0
	b _0802B5C2
	.pool
_0802B5C0:
	movs r0, 0x1
_0802B5C2:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B568

	thumb_func_start sub_802B5C8
sub_802B5C8: @ 802B5C8
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	cmp r0, 0
	beq _0802B5E0
	cmp r0, 0x1
	beq _0802B5F2
	b _0802B61E
	.pool
_0802B5E0:
	bl sub_802BD30
	cmp r0, 0
	bne _0802B61E
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B61E
_0802B5F2:
	adds r0, r1, 0
	adds r0, 0x49
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802B61E
	adds r0, r1, 0
	bl sub_802AA94
	bl Random
	ldr r1, [r4]
	lsls r0, 16
	lsrs r0, 16
	str r0, [r1, 0x24]
	adds r3, r1, 0
	adds r3, 0x72
	movs r2, 0
	strh r0, [r3]
	adds r1, 0x4C
	strb r2, [r1]
	movs r0, 0
	b _0802B620
_0802B61E:
	movs r0, 0x1
_0802B620:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B5C8

	thumb_func_start sub_802B628
sub_802B628: @ 802B628
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0
	beq _0802B640
	cmp r0, 0x1
	beq _0802B656
	b _0802B65A
	.pool
_0802B640:
	bl sub_802BD30
	cmp r0, 0
	bne _0802B65A
	ldr r0, [r4]
	bl sub_802AA94
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_0802B656:
	movs r0, 0
	b _0802B65C
_0802B65A:
	movs r0, 0x1
_0802B65C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B628

	thumb_func_start sub_802B664
sub_802B664: @ 802B664
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	cmp r0, 0x1
	beq _0802B68C
	cmp r0, 0x1
	bgt _0802B680
	cmp r0, 0
	beq _0802B686
	b _0802B6B0
	.pool
_0802B680:
	cmp r0, 0x2
	beq _0802B69C
	b _0802B6B0
_0802B686:
	movs r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B6B0
_0802B68C:
	movs r0, 0
	bl sub_802AE14
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B6B0
_0802B69C:
	bl sub_802BC60
	cmp r0, 0
	bne _0802B6B0
	ldr r0, [r4]
	ldr r0, [r0]
	bl SetMainCallback2
	bl sub_802AA48
_0802B6B0:
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B664

	thumb_func_start sub_802B6B8
sub_802B6B8: @ 802B6B8
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x8]
	cmp r0, 0
	beq _0802B6D0
	cmp r0, 0x1
	beq _0802B6E0
	b _0802B6FC
	.pool
_0802B6D0:
	movs r0, 0x4
	bl sub_802AE14
	ldr r1, [r4]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B6FC
_0802B6E0:
	bl sub_802BA58
	cmp r0, 0
	bne _0802B6FC
	ldr r0, [r4]
	ldrh r1, [r0, 0xE]
	adds r2, r0, 0
	adds r2, 0x72
	strh r1, [r2]
	adds r0, 0x4C
	movs r1, 0x8
	strb r1, [r0]
	movs r0, 0
	b _0802B6FE
_0802B6FC:
	movs r0, 0x1
_0802B6FE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B6B8

	thumb_func_start sub_802B704
sub_802B704: @ 802B704
	push {lr}
	movs r0, 0
	bl sub_802AE14
	bl sub_802BA58
	cmp r0, 0
	beq _0802B718
	movs r0, 0x1
	b _0802B71A
_0802B718:
	movs r0, 0
_0802B71A:
	pop {r1}
	bx r1
	thumb_func_end sub_802B704

	thumb_func_start sub_802B720
sub_802B720: @ 802B720
	push {r4,lr}
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	ldrh r0, [r0, 0x8]
	adds r4, r1, 0
	cmp r0, 0x4
	bhi _0802B7D8
	lsls r0, 2
	ldr r1, =_0802B740
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802B740:
	.4byte _0802B754
	.4byte _0802B770
	.4byte _0802B780
	.4byte _0802B798
	.4byte _0802B7BC
_0802B754:
	ldr r2, [r4]
	ldr r0, [r2, 0x78]
	adds r1, r2, 0
	adds r1, 0x74
	ldrh r1, [r1]
	adds r2, 0x72
	ldrh r2, [r2]
	bl sub_802E354
	movs r0, 0x5
	bl sub_802D0C8
	ldr r1, [r4]
	b _0802B7AC
_0802B770:
	bl sub_802D0F0
	cmp r0, 0
	bne _0802B7D8
	movs r0, 0
	bl sub_802AE14
	b _0802B7A8
_0802B780:
	bl sub_802C70C
	cmp r0, 0
	beq _0802B7D8
	ldr r0, =sub_8153688
	movs r1, 0x6
	bl CreateTask
	b _0802B7A8
	.pool
_0802B798:
	ldr r0, =sub_8153688
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _0802B7D8
	bl sub_802DA14
_0802B7A8:
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
_0802B7AC:
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0802B7D8
	.pool
_0802B7BC:
	bl sub_802DA44
	cmp r0, 0
	bne _0802B7D8
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	adds r0, 0x4C
	movs r1, 0x4
	strb r1, [r0]
	movs r0, 0
	b _0802B7DA
	.pool
_0802B7D8:
	movs r0, 0x1
_0802B7DA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802B720

	thumb_func_start sub_802B7E0
sub_802B7E0: @ 802B7E0
	push {r4,r5,lr}
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	ldrh r0, [r0, 0xA]
	adds r4, r1, 0
	cmp r0, 0x7
	bhi _0802B8C4
	lsls r0, 2
	ldr r1, =_0802B800
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802B800:
	.4byte _0802B820
	.4byte _0802B82C
	.4byte _0802B84C
	.4byte _0802B866
	.4byte _0802B878
	.4byte _0802B880
	.4byte _0802B8A0
	.4byte _0802B8BA
_0802B820:
	movs r0, 0x2
	bl sub_802D0C8
	bl sub_802DDE0
	b _0802B890
_0802B82C:
	bl sub_802D0F0
	adds r5, r0, 0
	cmp r5, 0
	bne _0802B8C4
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrb r0, [r0, 0x6]
	bl sub_802DDF4
	ldr r1, [r4]
	strh r5, [r1, 0x3C]
	b _0802B894
	.pool
_0802B84C:
	ldr r1, [r4]
	ldrh r0, [r1, 0x3C]
	adds r0, 0x1
	strh r0, [r1, 0x3C]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x78
	bls _0802B8C4
	movs r0, 0x3
	bl sub_802D0C8
	ldr r1, [r4]
	b _0802B894
_0802B866:
	bl sub_802D0F0
	cmp r0, 0x1
	beq _0802B8C4
	bl sub_802DE08
	cmp r0, 0x1
	beq _0802B8C4
	b _0802B890
_0802B878:
	movs r0, 0x9
	bl sub_802D0C8
	b _0802B890
_0802B880:
	bl sub_802D0F0
	cmp r0, 0
	bne _0802B8C4
	bl sub_802C260
	bl sub_802D764
_0802B890:
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
_0802B894:
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _0802B8C4
	.pool
_0802B8A0:
	bl sub_802D788
	cmp r0, 0
	bne _0802B8C4
	bl sub_802C270
	bl sub_802BEA0
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0802B8BA:
	movs r0, 0
	b _0802B8C6
	.pool
_0802B8C4:
	movs r0, 0x1
_0802B8C6:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802B7E0

	thumb_func_start sub_802B8CC
sub_802B8CC: @ 802B8CC
	push {r4,r5,lr}
	bl sub_802BEE4
	ldr r5, =gUnknown_02022CFC
	ldr r1, [r5]
	ldrh r4, [r1, 0x36]
	cmp r4, 0
	beq _0802B8E8
	movs r0, 0
	strh r0, [r1, 0x36]
	b _0802B95C
	.pool
_0802B8E8:
	ldrh r0, [r1, 0xA]
	cmp r0, 0x1
	beq _0802B914
	cmp r0, 0x1
	bgt _0802B8F8
	cmp r0, 0
	beq _0802B902
	b _0802B95A
_0802B8F8:
	cmp r0, 0x2
	beq _0802B938
	cmp r0, 0x3
	beq _0802B94C
	b _0802B95A
_0802B902:
	movs r0, 0
	bl sub_802C130
	cmp r0, 0
	beq _0802B95A
	ldr r1, [r5]
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0802B914:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0802B95A
	bl sub_802C164
	movs r0, 0x3
	bl sub_802AE14
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	b _0802B944
	.pool
_0802B938:
	movs r0, 0x1
	bl sub_802C130
	cmp r0, 0x1
	bne _0802B95A
	ldr r1, [r5]
_0802B944:
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _0802B95A
_0802B94C:
	movs r0, 0
	bl sub_802C130
	cmp r0, 0x1
	bne _0802B95A
	ldr r0, [r5]
	strh r4, [r0, 0xA]
_0802B95A:
	movs r0, 0x1
_0802B95C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802B8CC

	thumb_func_start sub_802B964
sub_802B964: @ 802B964
	push {r4-r6,lr}
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	ldrh r0, [r0, 0xA]
	adds r5, r1, 0
	cmp r0, 0x4
	bhi _0802BA50
	lsls r0, 2
	ldr r1, =_0802B984
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802B984:
	.4byte _0802B998
	.4byte _0802B9BC
	.4byte _0802BA00
	.4byte _0802BA24
	.4byte _0802BA46
_0802B998:
	movs r4, 0
	ldr r0, [r5]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	bge _0802B9B8
	adds r6, r5, 0
_0802B9A4:
	adds r0, r4, 0
	bl sub_802DDB8
	cmp r0, 0x1
	beq _0802BA50
	adds r4, 0x1
	ldr r0, [r6]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	blt _0802B9A4
_0802B9B8:
	ldr r1, [r5]
	b _0802BA1C
_0802B9BC:
	movs r4, 0
	ldr r0, [r5]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	bge _0802B9EC
	adds r6, r5, 0
	movs r5, 0
_0802B9CA:
	ldr r0, [r6]
	adds r0, r5
	ldr r1, =0x000082f4
	adds r0, r1
	ldrh r0, [r0]
	cmp r0, 0x2
	bne _0802B9E0
	lsls r0, r4, 24
	lsrs r0, 24
	bl sub_802DDA0
_0802B9E0:
	adds r5, 0x28
	adds r4, 0x1
	ldr r0, [r6]
	ldrb r0, [r0, 0x5]
	cmp r4, r0
	blt _0802B9CA
_0802B9EC:
	movs r0, 0x1
	bl sub_802D0C8
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	b _0802BA18
	.pool
_0802BA00:
	ldr r1, [r5]
	ldrh r0, [r1, 0x3C]
	adds r0, 0x1
	strh r0, [r1, 0x3C]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x64
	bls _0802BA50
	movs r0, 0x3
	bl sub_802D0C8
	ldr r1, [r5]
_0802BA18:
	movs r0, 0
	strh r0, [r1, 0x3C]
_0802BA1C:
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _0802BA50
_0802BA24:
	bl sub_802D0F0
	adds r5, r0, 0
	cmp r5, 0
	bne _0802BA50
	bl sub_802DDCC
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	adds r0, 0x71
	strb r5, [r0]
	bl sub_802C114
	ldr r1, [r4]
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0802BA46:
	movs r0, 0
	b _0802BA52
	.pool
_0802BA50:
	movs r0, 0x1
_0802BA52:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_802B964

	thumb_func_start sub_802BA58
sub_802BA58: @ 802BA58
	push {r4,lr}
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	ldrh r0, [r0, 0xA]
	adds r4, r1, 0
	cmp r0, 0x6
	bls _0802BA68
	b _0802BB7C
_0802BA68:
	lsls r0, 2
	ldr r1, =_0802BA7C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802BA7C:
	.4byte _0802BA98
	.4byte _0802BAB8
	.4byte _0802BAD0
	.4byte _0802BB00
	.4byte _0802BAB8
	.4byte _0802BAD0
	.4byte _0802BB70
_0802BA98:
	ldr r2, [r4]
	adds r0, r2, 0
	adds r0, 0x72
	ldrh r0, [r0]
	adds r1, r2, 0
	adds r1, 0x3E
	adds r2, 0x40
	bl sub_802C808
	ldr r1, [r4]
	ldrh r0, [r1, 0x3E]
	adds r1, 0x40
	ldrh r1, [r1]
	bl sub_802D7E8
	b _0802BAF0
_0802BAB8:
	bl sub_802D974
	adds r2, r0, 0
	cmp r2, 0
	bne _0802BB7C
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	strh r2, [r1, 0x3C]
	b _0802BAF2
	.pool
_0802BAD0:
	ldr r1, [r4]
	ldrh r0, [r1, 0x3C]
	adds r2, r0, 0x1
	strh r2, [r1, 0x3C]
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _0802BAEC
	lsls r0, r2, 16
	lsrs r0, 16
	cmp r0, 0xB4
	bls _0802BB7C
_0802BAEC:
	bl sub_802DA14
_0802BAF0:
	ldr r1, [r4]
_0802BAF2:
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _0802BB7C
	.pool
_0802BB00:
	bl sub_802DA44
	cmp r0, 0
	bne _0802BB7C
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	ldrh r0, [r1, 0x3E]
	adds r1, 0x40
	ldrh r1, [r1]
	bl sub_802C880
	ldr r1, [r4]
	adds r2, r1, 0
	adds r2, 0x40
	strh r0, [r2]
	lsls r0, 16
	cmp r0, 0
	beq _0802BB58
	ldrh r0, [r1, 0x3E]
	ldrh r1, [r2]
	bl AddBagItem
	lsls r0, 24
	cmp r0, 0
	beq _0802BB58
	ldr r0, [r4]
	ldrh r0, [r0, 0x3E]
	movs r1, 0x1
	bl CheckBagHasSpace
	lsls r0, 24
	cmp r0, 0
	bne _0802BB50
	ldr r0, [r4]
	ldrh r0, [r0, 0x3E]
	bl sub_802D884
	b _0802BB62
	.pool
_0802BB50:
	ldr r1, [r4]
	movs r0, 0x6
	strh r0, [r1, 0xA]
	b _0802BB7C
_0802BB58:
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0x3E]
	bl sub_802D8FC
_0802BB62:
	ldr r1, [r4]
	movs r0, 0x4
	strh r0, [r1, 0xA]
	b _0802BB7C
	.pool
_0802BB70:
	bl sub_802DA44
	cmp r0, 0
	bne _0802BB7C
	movs r0, 0
	b _0802BB7E
_0802BB7C:
	movs r0, 0x1
_0802BB7E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802BA58

	thumb_func_start sub_802BB84
sub_802BB84: @ 802BB84
	push {r4,lr}
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldrh r0, [r0, 0xA]
	cmp r0, 0x6
	bhi _0802BC58
	lsls r0, 2
	ldr r1, =_0802BBA4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802BBA4:
	.4byte _0802BBC0
	.4byte _0802BBC4
	.4byte _0802BBCE
	.4byte _0802BC1C
	.4byte _0802BC26
	.4byte _0802BC3C
	.4byte _0802BC4E
_0802BBC0:
	movs r0, 0x4
	b _0802BC28
_0802BBC4:
	bl sub_802D0F0
	cmp r0, 0
	bne _0802BC58
	b _0802BC2C
_0802BBCE:
	bl sub_802DA8C
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0802BC04
	cmp r1, 0
	bgt _0802BBE8
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0802BBEC
	b _0802BC58
_0802BBE8:
	cmp r1, 0x1
	bne _0802BC58
_0802BBEC:
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	adds r0, 0x45
	movs r1, 0x1
	strb r1, [r0]
	movs r0, 0x6
	bl sub_802D0C8
	ldr r1, [r4]
	b _0802BC30
	.pool
_0802BC04:
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	adds r0, 0x45
	movs r1, 0x2
	strb r1, [r0]
	movs r0, 0x6
	bl sub_802D0C8
	ldr r1, [r4]
	b _0802BC30
	.pool
_0802BC1C:
	bl sub_802D0F0
	cmp r0, 0
	bne _0802BC58
	b _0802BC2C
_0802BC26:
	movs r0, 0x8
_0802BC28:
	bl sub_802D0C8
_0802BC2C:
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
_0802BC30:
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _0802BC58
	.pool
_0802BC3C:
	bl sub_802D0F0
	cmp r0, 0
	bne _0802BC58
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0802BC4E:
	movs r0, 0
	b _0802BC5A
	.pool
_0802BC58:
	movs r0, 0x1
_0802BC5A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802BB84

	thumb_func_start sub_802BC60
sub_802BC60: @ 802BC60
	push {r4,lr}
	sub sp, 0x4
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	ldrh r0, [r0, 0xA]
	adds r4, r1, 0
	cmp r0, 0x5
	bhi _0802BD24
	lsls r0, 2
	ldr r1, =_0802BC84
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802BC84:
	.4byte _0802BC9C
	.4byte _0802BCA2
	.4byte _0802BCB2
	.4byte _0802BCC8
	.4byte _0802BCEE
	.4byte _0802BD14
_0802BC9C:
	bl sub_802DA14
	b _0802BCFE
_0802BCA2:
	bl sub_802DA44
	cmp r0, 0
	bne _0802BD24
	movs r0, 0x7
	bl sub_802D0C8
	b _0802BCFE
_0802BCB2:
	bl sub_802D0F0
	adds r2, r0, 0
	cmp r2, 0
	bne _0802BD24
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	strh r2, [r1, 0x3C]
	b _0802BD02
	.pool
_0802BCC8:
	ldr r1, [r4]
	ldrh r0, [r1, 0x3C]
	adds r0, 0x1
	strh r0, [r1, 0x3C]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x78
	bls _0802BD24
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	str r0, [sp]
	adds r0, r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r1, [r4]
	b _0802BD02
_0802BCEE:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0802BD24
	bl sub_800AC34
_0802BCFE:
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
_0802BD02:
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _0802BD24
	.pool
_0802BD14:
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0802BD24
	movs r0, 0
	b _0802BD26
	.pool
_0802BD24:
	movs r0, 0x1
_0802BD26:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802BC60

	thumb_func_start sub_802BD30
sub_802BD30: @ 802BD30
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldrh r0, [r0, 0xA]
	cmp r0, 0x1
	beq _0802BD66
	cmp r0, 0x1
	bgt _0802BD4C
	cmp r0, 0
	beq _0802BD52
	b _0802BD7A
	.pool
_0802BD4C:
	cmp r0, 0x2
	beq _0802BD76
	b _0802BD7A
_0802BD52:
	bl sub_802DA14
	movs r0, 0
	bl sub_802DD64
	ldr r1, [r4]
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
	b _0802BD7A
_0802BD66:
	bl sub_802DA44
	cmp r0, 0
	bne _0802BD7A
	ldr r1, [r4]
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0802BD76:
	movs r0, 0
	b _0802BD7C
_0802BD7A:
	movs r0, 0x1
_0802BD7C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802BD30

	thumb_func_start sub_802BD84
sub_802BD84: @ 802BD84
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	lsls r0, 2
	add r0, r10
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	mov r0, r10
	movs r1, 0xE
	bl GetWordTaskArg
	mov r8, r0
	movs r1, 0
	ldrsh r0, [r6, r1]
	cmp r0, 0
	beq _0802BDC8
	cmp r0, 0x1
	beq _0802BDDC
	b _0802BE48
	.pool
_0802BDBC:
	bl sub_802AB20
	mov r0, r10
	bl DestroyTask
	b _0802BE48
_0802BDC8:
	movs r1, 0
	adds r0, r6, 0
	adds r0, 0x8
_0802BDCE:
	strh r1, [r0, 0x4]
	subs r0, 0x2
	cmp r0, r6
	bge _0802BDCE
	ldrh r0, [r6]
	adds r0, 0x1
	strh r0, [r6]
_0802BDDC:
	mov r3, r8
	ldrb r1, [r3, 0x6]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	ldr r4, =0x000082a8
	adds r0, r4
	add r0, r8
	bl sub_802E0AC
	movs r2, 0
	adds r5, r6, 0x4
	mov r9, r2
	movs r7, 0x83
	lsls r7, 8
	add r7, r8
	add r4, r8
_0802BDFE:
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _0802BE38
	adds r0, r2, 0
	adds r1, r4, 0
	str r2, [sp]
	bl sub_802E0D0
	ldr r2, [sp]
	cmp r0, 0
	beq _0802BE38
	ldr r1, =gLinkPlayers + 8
	add r1, r9
	adds r0, r7, 0
	bl StringCopy
	movs r0, 0x1
	strh r0, [r5]
	ldrh r0, [r6, 0x2]
	adds r0, 0x1
	strh r0, [r6, 0x2]
	movs r3, 0x2
	ldrsh r0, [r6, r3]
	ldr r2, [sp]
	mov r1, r8
	ldrb r1, [r1, 0x5]
	cmp r0, r1
	beq _0802BDBC
_0802BE38:
	adds r5, 0x2
	movs r3, 0x1C
	add r9, r3
	adds r7, 0x28
	adds r4, 0xC
	adds r2, 0x1
	cmp r2, 0x4
	ble _0802BDFE
_0802BE48:
	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 sub_802BD84

	thumb_func_start sub_802BE60
sub_802BE60: @ 802BE60
	push {lr}
	lsls r1, 24
	lsrs r1, 24
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_02022CFC
	ldr r2, [r1]
	movs r1, 0xE
	bl SetWordTaskArg
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802BE60

	thumb_func_start sub_802BE80
sub_802BE80: @ 802BE80
	ldr r0, =gUnknown_02022CFC
	ldr r2, [r0]
	adds r0, r2, 0
	adds r0, 0x4A
	movs r1, 0
	strh r1, [r0]
	movs r0, 0x6
	str r0, [r2, 0x14]
	strh r1, [r2, 0x34]
	str r1, [r2, 0x1C]
	strh r1, [r2, 0x36]
	str r1, [r2, 0x10]
	bx lr
	.pool
	thumb_func_end sub_802BE80

	thumb_func_start sub_802BEA0
sub_802BEA0: @ 802BEA0
	push {r4,lr}
	ldr r3, =gUnknown_02022CFC
	ldr r0, [r3]
	adds r1, r0, 0
	adds r1, 0x4A
	movs r4, 0
	movs r2, 0
	strh r2, [r1]
	ldr r1, =0x000006ff
	strh r1, [r0, 0x34]
	movs r1, 0x7
	str r1, [r0, 0x14]
	strh r2, [r0, 0x36]
	str r2, [r0, 0x10]
	adds r0, 0x51
	strb r4, [r0]
	ldr r0, [r3]
	adds r0, 0x50
	strb r4, [r0]
	ldr r0, [r3]
	str r2, [r0, 0x20]
	adds r1, r0, 0
	adds r1, 0x4E
	strh r2, [r1]
	str r2, [r0, 0x6C]
	bl sub_802BF7C
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802BEA0

	thumb_func_start sub_802BEE4
sub_802BEE4: @ 802BEE4
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x46
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802BF34
	adds r1, 0x4A
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	bl sub_802BF48
	ldr r3, [r4]
	ldrh r1, [r3, 0x34]
	adds r2, r1, r0
	strh r2, [r3, 0x34]
	lsls r1, r2, 16
	ldr r0, =0x09fe0000
	cmp r1, r0
	bls _0802BF16
	ldr r1, =0xfffff601
	adds r0, r2, r1
	strh r0, [r3, 0x34]
_0802BF16:
	ldr r1, [r4]
	ldr r2, [r1, 0x14]
	str r2, [r1, 0x18]
	ldrh r0, [r1, 0x34]
	lsrs r0, 8
	str r0, [r1, 0x14]
	cmp r0, 0x6
	bls _0802BF34
	cmp r2, 0x6
	bhi _0802BF34
	ldrh r0, [r1, 0x36]
	adds r0, 0x1
	strh r0, [r1, 0x36]
	bl sub_802BF7C
_0802BF34:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802BEE4

	thumb_func_start sub_802BF48
sub_802BF48: @ 802BF48
	push {lr}
	ldr r0, =gUnknown_02022CFC
	ldr r2, [r0]
	ldr r0, [r2, 0x10]
	cmp r0, 0
	beq _0802BF5C
	movs r0, 0
	b _0802BF72
	.pool
_0802BF5C:
	ldr r3, [r2, 0x1C]
	ldrh r1, [r2, 0x34]
	ldr r0, =0x000005ff
	cmp r1, r0
	bhi _0802BF70
	ldr r0, [r2, 0x20]
	adds r0, 0x50
	str r0, [r2, 0x20]
	lsrs r0, 8
	adds r3, r0
_0802BF70:
	adds r0, r3, 0
_0802BF72:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802BF48

	thumb_func_start sub_802BF7C
sub_802BF7C: @ 802BF7C
	push {r4,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r3, [r4]
	movs r0, 0
	str r0, [r3, 0x20]
	adds r1, r3, 0
	adds r1, 0x4E
	ldrh r0, [r1]
	cmp r0, 0
	beq _0802BFC0
	subs r0, 0x1
	strh r0, [r1]
	ldr r0, [r3, 0x6C]
	cmp r0, 0
	beq _0802C08A
	bl sub_802C098
	movs r1, 0x3
	ands r1, r0
	cmp r1, 0
	beq _0802BFB0
	ldr r1, [r4]
	b _0802C086
	.pool
_0802BFB0:
	ldr r1, [r4]
	ldr r0, [r1, 0x28]
	cmp r0, 0x36
	bls _0802BFBC
	movs r0, 0x1E
	b _0802C088
_0802BFBC:
	movs r0, 0x52
	b _0802C088
_0802BFC0:
	adds r2, r3, 0
	adds r2, 0x50
	ldrb r1, [r2]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	bne _0802C014
	ldr r0, =gUnknown_082FB63C
	ldrb r1, [r2]
	lsls r1, 1
	adds r1, r0
	adds r0, r3, 0
	adds r0, 0x51
	ldrb r2, [r0]
	lsls r0, r2, 3
	subs r0, r2
	ldrh r1, [r1]
	adds r0, r1
	str r0, [r3, 0x28]
	bl sub_802C098
	ldr r2, [r4]
	ldr r3, =gUnknown_082FB64C
	movs r1, 0x3
	ands r1, r0
	lsls r1, 1
	adds r1, r3
	ldrh r0, [r1]
	adds r0, 0x2
	adds r1, r2, 0
	adds r1, 0x4E
	strh r0, [r1]
	adds r2, 0x50
	ldrb r0, [r2]
	adds r0, 0x1
	strb r0, [r2]
	b _0802C082
	.pool
_0802C014:
	lsls r0, r1, 24
	lsrs r0, 24
	cmp r0, 0x8
	bne _0802C030
	adds r1, r3, 0
	adds r1, 0x51
	ldrb r0, [r1]
	cmp r0, 0x2
	bhi _0802C02C
	adds r0, 0x1
	strb r0, [r1]
	b _0802C030
_0802C02C:
	movs r0, 0x1
	str r0, [r3, 0x6C]
_0802C030:
	ldr r2, =gUnknown_082FB63C
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	mov r12, r0
	mov r3, r12
	adds r3, 0x50
	ldrb r0, [r3]
	movs r1, 0xF
	subs r1, r0
	lsls r1, 1
	adds r1, r2
	mov r0, r12
	adds r0, 0x51
	ldrb r2, [r0]
	lsls r0, r2, 3
	subs r0, r2
	ldrh r1, [r1]
	adds r0, r1
	mov r1, r12
	str r0, [r1, 0x28]
	ldrb r0, [r3]
	adds r0, 0x1
	strb r0, [r3]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xF
	bls _0802C082
	bl sub_802C098
	movs r1, 0x3
	ands r1, r0
	cmp r1, 0
	bne _0802C07A
	ldr r1, [r4]
	ldr r0, [r1, 0x28]
	subs r0, 0x5
	str r0, [r1, 0x28]
_0802C07A:
	ldr r0, [r4]
	adds r0, 0x50
	movs r1, 0
	strb r1, [r0]
_0802C082:
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
_0802C086:
	ldr r0, [r1, 0x28]
_0802C088:
	str r0, [r1, 0x1C]
_0802C08A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802BF7C

	thumb_func_start sub_802C098
sub_802C098: @ 802C098
	ldr r0, =gUnknown_02022CFC
	ldr r2, [r0]
	ldr r1, [r2, 0x24]
	ldr r0, =0x41c64e6d
	muls r0, r1
	ldr r1, =0x00006073
	adds r0, r1
	str r0, [r2, 0x24]
	lsrs r0, 16
	bx lr
	.pool
	thumb_func_end sub_802C098

	thumb_func_start sub_802C0B8
sub_802C0B8: @ 802C0B8
	push {lr}
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	movs r0, 0x1
	str r0, [r1, 0x10]
	movs r0, 0x6
	str r0, [r1, 0x14]
	ldr r0, =0x000005ff
	strh r0, [r1, 0x34]
	bl sub_802C270
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C0B8

	thumb_func_start sub_802C0DC
sub_802C0DC: @ 802C0DC
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldr r0, [r0, 0x10]
	bx lr
	.pool
	thumb_func_end sub_802C0DC

	thumb_func_start sub_802C0E8
sub_802C0E8: @ 802C0E8
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022CFC
	ldr r4, =0x000082f8
	movs r3, 0
	movs r2, 0
	movs r1, 0x4
_0802C0F4:
	ldr r0, [r5]
	adds r0, r4
	adds r0, r2
	str r3, [r0]
	adds r2, 0x28
	subs r1, 0x1
	cmp r1, 0
	bge _0802C0F4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C0E8

	thumb_func_start sub_802C114
sub_802C114: @ 802C114
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldr r1, =0x000083ac
	adds r0, r1
	ldr r1, [r0]
	movs r2, 0
	strh r2, [r1, 0x10]
	ldr r0, [r0]
	strh r2, [r0, 0x12]
	bx lr
	.pool
	thumb_func_end sub_802C114

	thumb_func_start sub_802C130
sub_802C130: @ 802C130
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =gUnknown_02022CFC
	ldr r2, [r1]
	ldrb r3, [r2, 0x6]
	lsls r1, r3, 2
	adds r1, r3
	lsls r1, 3
	adds r2, r1
	ldr r1, =0x000082f4
	adds r2, r1
	ldrh r1, [r2]
	cmp r1, r0
	beq _0802C15C
	movs r0, 0
	b _0802C15E
	.pool
_0802C15C:
	movs r0, 0x1
_0802C15E:
	pop {r1}
	bx r1
	thumb_func_end sub_802C130

	thumb_func_start sub_802C164
sub_802C164: @ 802C164
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldr r1, =0x000083ac
	adds r2, r0, r1
	ldr r1, [r2]
	adds r0, 0x4A
	ldrh r0, [r0]
	strh r0, [r1, 0xE]
	ldr r1, [r2]
	ldrh r0, [r1, 0x10]
	strh r0, [r1, 0x12]
	ldr r1, [r2]
	movs r0, 0x1
	strh r0, [r1, 0x10]
	bx lr
	.pool
	thumb_func_end sub_802C164

	thumb_func_start sub_802C18C
sub_802C18C: @ 802C18C
	push {r4,lr}
	ldr r0, =gUnknown_02022CFC
	ldr r2, [r0]
	ldr r0, =0x000083ac
	adds r3, r2, r0
	ldr r1, [r3]
	ldrh r0, [r1, 0x10]
	strh r0, [r1, 0x12]
	ldr r0, [r3]
	movs r4, 0x2
	strh r4, [r0, 0x10]
	ldr r1, [r3]
	adds r2, 0x4A
	ldrh r0, [r2]
	strh r0, [r1, 0xE]
	ldr r0, [r3]
	str r4, [r0, 0x14]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C18C

	thumb_func_start sub_802C1BC
sub_802C1BC: @ 802C1BC
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldr r1, =0x000083ac
	adds r0, r1
	ldr r1, [r0]
	ldrh r2, [r1, 0x10]
	movs r3, 0
	strh r2, [r1, 0x12]
	ldr r0, [r0]
	strh r3, [r0, 0x10]
	bx lr
	.pool
	thumb_func_end sub_802C1BC

	thumb_func_start sub_802C1DC
sub_802C1DC: @ 802C1DC
	push {r4,r5,lr}
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	ldr r0, [r1, 0x5C]
	cmp r0, 0
	beq _0802C21C
	ldr r0, [r1, 0x78]
	bl sub_802DD64
	ldr r1, [r4]
	movs r5, 0
	str r5, [r1, 0x5C]
	adds r0, r1, 0
	adds r0, 0x4D
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802C21C
	adds r0, r1, 0
	adds r0, 0x71
	ldrb r0, [r0]
	bl sub_802DCCC
	ldr r1, =gUnknown_082FB654
	subs r0, 0x2
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	bl PlaySE
	ldr r0, [r4]
	adds r0, 0x4D
	strb r5, [r0]
_0802C21C:
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	adds r0, 0x74
	ldrh r0, [r0]
	bl sub_802DD74
	bl sub_802C280
	bl sub_802C240
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C1DC

	thumb_func_start sub_802C240
sub_802C240: @ 802C240
	push {lr}
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x46
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802C256
	ldr r0, [r1, 0x14]
	bl sub_802DC9C
_0802C256:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C240

	thumb_func_start sub_802C260
sub_802C260: @ 802C260
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	adds r0, 0x46
	movs r1, 0
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_802C260

	thumb_func_start sub_802C270
sub_802C270: @ 802C270
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	adds r0, 0x46
	movs r1, 0x1
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_802C270

	thumb_func_start sub_802C280
sub_802C280: @ 802C280
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	movs r6, 0
	ldr r2, =gUnknown_02022CFC
	ldr r0, [r2]
	ldrb r0, [r0, 0x5]
	mov r9, r0
	movs r5, 0
	cmp r6, r9
	bge _0802C360
	mov r10, r2
	mov r8, r5
	movs r7, 0
_0802C2A2:
	mov r0, r10
	ldr r3, [r0]
	adds r1, r3, r7
	ldr r2, =0x000082f4
	adds r0, r1, r2
	ldrh r2, [r0]
	cmp r2, 0x1
	beq _0802C2D4
	cmp r2, 0x1
	bgt _0802C2C4
	cmp r2, 0
	beq _0802C2CA
	b _0802C354
	.pool
_0802C2C4:
	cmp r2, 0x2
	beq _0802C338
	b _0802C354
_0802C2CA:
	adds r0, r5, 0
	movs r1, 0
	bl sub_802DC80
	b _0802C354
_0802C2D4:
	ldr r0, =0x000082f6
	adds r4, r1, r0
	ldrh r0, [r4]
	cmp r0, 0x1
	bne _0802C2F6
	ldr r0, =0x000082f2
	adds r0, r1
	adds r1, r3, 0
	adds r1, 0x9A
	add r1, r8
	str r1, [sp]
	ldrh r1, [r0]
	mov r12, r1
	ldr r0, [sp]
	ldrh r0, [r0]
	cmp r12, r0
	beq _0802C31E
_0802C2F6:
	ldrb r3, [r3, 0x6]
	cmp r5, r3
	bne _0802C2FE
	strh r2, [r4]
_0802C2FE:
	orrs r6, r2
	mov r1, r10
	ldr r2, [r1]
	ldr r1, =0x000082e8
	adds r0, r2, r1
	adds r0, r7
	ldr r1, =0x7fffffff
	str r1, [r0]
	adds r1, r2, 0
	adds r1, 0x9A
	add r1, r8
	adds r2, r7
	ldr r0, =0x000082f2
	adds r2, r0
	ldrh r0, [r2]
	strh r0, [r1]
_0802C31E:
	adds r0, r5, 0
	bl sub_802C398
	b _0802C354
	.pool
_0802C338:
	ldr r0, =0x000082f6
	adds r1, r0
	ldrh r0, [r1]
	cmp r0, 0x2
	beq _0802C354
	ldrb r3, [r3, 0x6]
	cmp r5, r3
	bne _0802C34A
	strh r2, [r1]
_0802C34A:
	orrs r6, r2
	lsls r0, r5, 24
	lsrs r0, 24
	bl sub_802DD88
_0802C354:
	movs r1, 0x2
	add r8, r1
	adds r7, 0x28
	adds r5, 0x1
	cmp r5, r9
	blt _0802C2A2
_0802C360:
	movs r0, 0x2
	ands r0, r6
	cmp r0, 0
	beq _0802C378
	movs r0, 0x83
	lsls r0, 1
	bl PlaySE
	b _0802C386
	.pool
_0802C378:
	movs r0, 0x1
	ands r6, r0
	cmp r6, 0
	beq _0802C386
	movs r0, 0xA
	bl PlaySE
_0802C386:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_802C280

	thumb_func_start sub_802C398
sub_802C398: @ 802C398
	push {r4-r6,lr}
	adds r6, r0, 0
	ldr r0, =gUnknown_02022CFC
	ldr r2, [r0]
	ldr r0, [r2, 0x68]
	cmp r0, 0
	bne _0802C432
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, =0x000082e4
	adds r0, r1
	adds r5, r2, r0
	ldr r1, [r5, 0x4]
	ldr r0, =0x7fffffff
	cmp r1, r0
	beq _0802C3D0
	adds r0, r1, 0x1
	str r0, [r5, 0x4]
	adds r3, r0, 0
	b _0802C3E8
	.pool
_0802C3D0:
	adds r0, r2, 0
	adds r0, 0x4A
	ldrh r1, [r0]
	ldrh r0, [r5, 0xE]
	subs r3, r1, r0
	ldr r0, =0x0000fde7
	cmp r3, r0
	ble _0802C3E6
	ldr r0, =0xffff0218
	adds r3, r0
	adds r3, r1
_0802C3E6:
	str r3, [r5, 0x4]
_0802C3E8:
	cmp r3, 0x3
	ble _0802C432
	subs r3, 0x4
	cmp r3, 0x2F
	bgt _0802C414
	ldr r2, =gUnknown_082FB65C
	ldrh r1, [r5, 0xC]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 4
	adds r0, r3, r0
	adds r0, r2
	movs r4, 0
	ldrsb r4, [r0, r4]
	b _0802C416
	.pool
_0802C414:
	movs r4, 0
_0802C416:
	adds r1, r4, 0
	adds r0, r6, 0
	bl sub_802DC80
	cmp r4, 0
	bne _0802C430
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldrb r0, [r0, 0x6]
	cmp r6, r0
	bne _0802C430
	bl sub_802C1BC
_0802C430:
	str r4, [r5]
_0802C432:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C398

	thumb_func_start sub_802C43C
sub_802C43C: @ 802C43C
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022CFC
	ldr r1, [r5]
	ldr r0, [r1, 0x14]
	cmp r0, 0x8
	bne _0802C4CE
	ldr r0, [r1, 0x18]
	cmp r0, 0x7
	bne _0802C4CE
	ldr r4, [r1, 0x58]
	cmp r4, 0
	bne _0802C46C
	bl sub_802C780
	ldr r0, [r5]
	str r4, [r0, 0x54]
	movs r1, 0x1
	str r1, [r0, 0x58]
	adds r0, 0x71
	strb r4, [r0]
	b _0802C4CE
	.pool
_0802C46C:
	ldr r0, [r1, 0x54]
	cmp r0, 0x5
	bne _0802C480
	ldrh r0, [r1, 0xC]
	adds r0, 0x1
	strh r0, [r1, 0xC]
	ldrh r0, [r1, 0xC]
	bl sub_802C7A0
	b _0802C484
_0802C480:
	movs r0, 0
	strh r0, [r1, 0xC]
_0802C484:
	ldr r4, =gUnknown_02022CFC
	ldr r1, [r4]
	ldr r0, [r1, 0x54]
	cmp r0, 0x1
	ble _0802C49E
	movs r0, 0x1
	str r0, [r1, 0x64]
	adds r0, r1, 0
	adds r0, 0x86
	adds r1, 0x81
	movs r2, 0x5
	bl memcpy
_0802C49E:
	bl sub_802C780
	ldr r0, [r4]
	movs r2, 0
	str r2, [r0, 0x54]
	movs r1, 0x1
	str r1, [r0, 0x58]
	adds r0, 0x71
	strb r2, [r0]
	ldr r0, [r4]
	adds r2, r0, 0
	adds r2, 0x74
	ldrh r1, [r2]
	ldr r0, =0x0000270e
	cmp r1, r0
	bhi _0802C4C2
	adds r0, r1, 0x1
	strh r0, [r2]
_0802C4C2:
	movs r0, 0xA
	bl sub_802C688
	movs r0, 0x3
	bl sub_802AE14
_0802C4CE:
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldr r0, [r0, 0x64]
	cmp r0, 0
	beq _0802C504
	bl sub_802C618
	cmp r0, 0x1
	beq _0802C4E8
	ldr r0, [r4]
	ldr r0, [r0, 0x14]
	cmp r0, 0
	bne _0802C504
_0802C4E8:
	ldr r0, [r4]
	adds r0, 0x86
	bl sub_802C73C
	bl sub_802C790
	bl sub_802C688
	movs r0, 0x3
	bl sub_802AE14
	ldr r1, [r4]
	movs r0, 0
	str r0, [r1, 0x64]
_0802C504:
	ldr r4, =gUnknown_02022CFC
	ldr r0, [r4]
	ldr r0, [r0, 0x58]
	cmp r0, 0
	beq _0802C52A
	bl sub_802C6B0
	adds r2, r0, 0
	ldr r1, [r4]
	ldr r0, [r1, 0x54]
	cmp r2, r0
	ble _0802C52A
	str r2, [r1, 0x54]
	adds r0, r1, 0
	adds r0, 0x81
	adds r1, 0x7C
	movs r2, 0x5
	bl memcpy
_0802C52A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C43C

	thumb_func_start sub_802C538
sub_802C538: @ 802C538
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022CFC
	ldr r1, [r5]
	ldr r0, [r1, 0x14]
	cmp r0, 0x6
	bne _0802C582
	ldr r4, =0x000083ac
	adds r0, r1, r4
	ldr r1, [r0]
	ldr r0, [r1]
	cmp r0, 0
	bne _0802C582
	ldrh r0, [r1, 0x12]
	cmp r0, 0x1
	bne _0802C578
	bl sub_802C0DC
	adds r1, r0, 0
	cmp r1, 0x1
	bne _0802C578
	ldr r0, [r5]
	adds r0, r4
	ldr r0, [r0]
	str r1, [r0, 0x14]
	b _0802C582
	.pool
_0802C574:
	movs r0, 0
	b _0802C5CA
_0802C578:
	bl sub_802C18C
	movs r0, 0x3
	bl sub_802AE14
_0802C582:
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	ldr r0, [r1, 0x14]
	cmp r0, 0x7
	bne _0802C5A8
	ldr r0, [r1, 0x18]
	cmp r0, 0x6
	bne _0802C5A8
	ldr r2, =0x000083ac
	adds r0, r1, r2
	ldr r1, [r0]
	ldrh r0, [r1, 0x10]
	cmp r0, 0x2
	beq _0802C5A8
	movs r0, 0x1
	str r0, [r1, 0x14]
	movs r0, 0x3
	bl sub_802AE14
_0802C5A8:
	movs r2, 0
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldrb r1, [r0, 0x5]
	cmp r2, r1
	bge _0802C5C8
	adds r3, r1, 0
	ldr r4, =0x000082f4
	adds r1, r0, r4
_0802C5BA:
	ldrh r0, [r1]
	cmp r0, 0x2
	beq _0802C574
	adds r1, 0x28
	adds r2, 0x1
	cmp r2, r3
	blt _0802C5BA
_0802C5C8:
	movs r0, 0x1
_0802C5CA:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802C538

	thumb_func_start sub_802C5DC
sub_802C5DC: @ 802C5DC
	push {r4,lr}
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldrb r3, [r0, 0x5]
	movs r4, 0
	cmp r4, r3
	bge _0802C600
	ldr r1, =0x000082f8
	adds r2, r0, r1
	adds r1, r3, 0
_0802C5F0:
	ldr r0, [r2]
	cmp r0, 0
	beq _0802C5F8
	adds r4, 0x1
_0802C5F8:
	adds r2, 0x28
	subs r1, 0x1
	cmp r1, 0
	bne _0802C5F0
_0802C600:
	movs r0, 0
	cmp r4, r3
	bne _0802C608
	movs r0, 0x1
_0802C608:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802C5DC

	thumb_func_start sub_802C618
sub_802C618: @ 802C618
	push {r4,lr}
	movs r2, 0
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldrb r1, [r0, 0x5]
	cmp r2, r1
	bge _0802C648
	adds r3, r1, 0
	ldr r4, =0x000082f8
	adds r1, r0, r4
_0802C62C:
	ldr r0, [r1]
	cmp r0, 0x1
	beq _0802C640
	movs r0, 0
	b _0802C64A
	.pool
_0802C640:
	adds r1, 0x28
	adds r2, 0x1
	cmp r2, r3
	blt _0802C62C
_0802C648:
	movs r0, 0x1
_0802C64A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802C618

	thumb_func_start sub_802C650
sub_802C650: @ 802C650
	push {lr}
	ldr r0, =gUnknown_02022CFC
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x45
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0802C668
_0802C660:
	movs r0, 0
	b _0802C684
	.pool
_0802C668:
	movs r2, 0x1
	ldrb r0, [r1, 0x5]
	cmp r2, r0
	bge _0802C682
	adds r3, r0, 0
	adds r1, 0x92
_0802C674:
	ldrh r0, [r1]
	cmp r0, 0x1
	beq _0802C660
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, r3
	blt _0802C674
_0802C682:
	movs r0, 0x1
_0802C684:
	pop {r1}
	bx r1
	thumb_func_end sub_802C650

	thumb_func_start sub_802C688
sub_802C688: @ 802C688
	push {lr}
	ldr r1, =gUnknown_02022CFC
	ldr r2, [r1]
	ldr r1, [r2, 0x78]
	adds r1, r0
	str r1, [r2, 0x78]
	movs r0, 0x1
	str r0, [r2, 0x5C]
	ldr r0, =0x00018695
	cmp r1, r0
	bls _0802C6A2
	adds r0, 0x1
	str r0, [r2, 0x78]
_0802C6A2:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C688

	thumb_func_start sub_802C6B0
sub_802C6B0: @ 802C6B0
	push {r4-r7,lr}
	movs r5, 0
	ldr r1, =gUnknown_02022CFC
	ldr r0, [r1]
	ldrb r4, [r0, 0x5]
	movs r2, 0
	cmp r5, r4
	bge _0802C702
	mov r12, r1
	movs r3, 0
	ldr r7, =0x000082e4
	movs r6, 0x1E
	negs r6, r6
_0802C6CA:
	mov r0, r12
	ldr r1, [r0]
	adds r0, r1, r7
	adds r0, r3
	ldr r0, [r0]
	cmp r0, r6
	bne _0802C6F0
	adds r0, r1, 0
	adds r0, 0x7C
	adds r0, r2
	movs r1, 0x1
	strb r1, [r0]
	adds r5, 0x1
	b _0802C6FA
	.pool
_0802C6F0:
	adds r0, r1, 0
	adds r0, 0x7C
	adds r0, r2
	movs r1, 0
	strb r1, [r0]
_0802C6FA:
	adds r3, 0x28
	adds r2, 0x1
	cmp r2, r4
	blt _0802C6CA
_0802C702:
	adds r0, r5, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_802C6B0

	thumb_func_start sub_802C70C
sub_802C70C: @ 802C70C
	push {lr}
	movs r2, 0
	ldr r1, =gUnknown_03005000
	ldr r3, =0x000009e6
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r0, 0
	bne _0802C728
	ldr r3, =0x00000c1a
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r0, 0
	bne _0802C728
	movs r2, 0x1
_0802C728:
	adds r0, r2, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802C70C

	thumb_func_start sub_802C73C
sub_802C73C: @ 802C73C
	push {r4-r6,lr}
	adds r4, r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	ldr r6, =gUnknown_02022CFC
	movs r5, 0x1
_0802C74A:
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802C75A
	adds r0, r5, 0
	lsls r0, r1
	orrs r2, r0
	adds r3, 0x1
_0802C75A:
	adds r1, 0x1
	cmp r1, 0x4
	ble _0802C74A
	ldr r0, [r6]
	adds r0, 0x71
	strb r2, [r0]
	cmp r2, 0
	beq _0802C772
	ldr r0, [r6]
	adds r0, 0x4D
	movs r1, 0x1
	strb r1, [r0]
_0802C772:
	adds r0, r3, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802C73C

	thumb_func_start sub_802C780
sub_802C780: @ 802C780
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	adds r0, 0x44
	movs r1, 0
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_802C780

	thumb_func_start sub_802C790
sub_802C790: @ 802C790
	ldr r1, =gUnknown_082FB6EC
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_802C790

	thumb_func_start sub_802C7A0
sub_802C7A0: @ 802C7A0
	push {lr}
	lsls r0, 16
	lsrs r1, r0, 16
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldrh r2, [r0, 0xE]
	cmp r1, r2
	bls _0802C7B2
	strh r1, [r0, 0xE]
_0802C7B2:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C7A0

	thumb_func_start sub_802C7BC
sub_802C7BC: @ 802C7BC
	push {lr}
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldr r1, =gUnknown_082FB714
	ldr r2, [r0, 0x78]
	ldr r0, [r1]
	cmp r2, r0
	bcs _0802C7D8
	movs r0, 0
	b _0802C7DA
	.pool
_0802C7D8:
	movs r0, 0x1
_0802C7DA:
	pop {r1}
	bx r1
	thumb_func_end sub_802C7BC

	thumb_func_start sub_802C7E0
sub_802C7E0: @ 802C7E0
	push {r4,lr}
	bl sub_802C818
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_802C838
	lsls r0, 16
	lsrs r0, 4
	ldr r1, =0x00000fff
	ands r4, r1
	orrs r0, r4
	lsls r0, 16
	lsrs r0, 16
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802C7E0

	thumb_func_start sub_802C808
sub_802C808: @ 802C808
	lsls r0, 16
	lsrs r3, r0, 28
	strh r3, [r2]
	lsls r0, 4
	lsrs r0, 20
	strh r0, [r1]
	bx lr
	thumb_func_end sub_802C808

	thumb_func_start sub_802C818
sub_802C818: @ 802C818
	push {lr}
	bl Random
	lsls r0, 16
	movs r1, 0xE0
	lsls r1, 11
	ands r1, r0
	ldr r0, =gUnknown_082FB704
	lsrs r1, 15
	adds r1, r0
	ldrh r0, [r1]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802C818

	thumb_func_start sub_802C838
sub_802C838: @ 802C838
	push {r4-r6,lr}
	movs r5, 0
	movs r4, 0
	ldr r3, =gUnknown_02022CFC
	ldr r0, [r3]
	ldr r2, =gUnknown_082FB714
	ldr r1, [r0, 0x78]
	ldr r0, [r2]
	cmp r1, r0
	bcc _0802C874
	ldr r5, [r2, 0x4]
	adds r6, r3, 0
	adds r3, r2, 0x4
_0802C852:
	adds r3, 0x8
	adds r2, 0x8
	adds r4, 0x1
	cmp r4, 0x4
	bhi _0802C874
	ldr r0, [r6]
	ldr r1, [r0, 0x78]
	ldr r0, [r2]
	cmp r1, r0
	bcc _0802C874
	ldr r5, [r3]
	b _0802C852
	.pool
_0802C874:
	lsls r0, r5, 16
	lsrs r0, 16
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_802C838

	thumb_func_start sub_802C880
sub_802C880: @ 802C880
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r1, 16
	lsrs r4, r1, 16
	b _0802C892
_0802C88C:
	subs r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
_0802C892:
	cmp r4, 0
	beq _0802C8A4
	adds r0, r5, 0
	adds r1, r4, 0
	bl CheckBagHasSpace
	lsls r0, 24
	cmp r0, 0
	beq _0802C88C
_0802C8A4:
	adds r0, r4, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802C880

	thumb_func_start sub_802C8AC
sub_802C8AC: @ 802C8AC
	push {lr}
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_802C8AC

	thumb_func_start sub_802C8BC
sub_802C8BC: @ 802C8BC
	ldr r0, =gUnknown_02022CFC
	ldr r0, [r0]
	ldrb r0, [r0, 0x6]
	bx lr
	.pool
	thumb_func_end sub_802C8BC

	thumb_func_start sub_802C8C8
sub_802C8C8: @ 802C8C8
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gUnknown_02022CFC
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	ldr r0, =0x000082a8
	adds r1, r0
	ldr r0, [r2]
	adds r0, r1
	bx lr
	.pool
	thumb_func_end sub_802C8C8

	thumb_func_start sub_802C8E8
sub_802C8E8: @ 802C8E8
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =gUnknown_02022CFC
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	ldr r1, [r2]
	adds r0, r1
	movs r1, 0x83
	lsls r1, 8
	adds r0, r1
	bx lr
	.pool
	thumb_func_end sub_802C8E8

	thumb_func_start sub_802C908
sub_802C908: @ 802C908
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	bl sub_802AC00
	lsls r0, 16
	asrs r0, 16
	mvns r0, r0
	lsrs r0, 31
	pop {r1}
	bx r1
	thumb_func_end sub_802C908

	thumb_func_start sub_802C920
sub_802C920: @ 802C920
	push {r4,r5,lr}
	movs r5, 0
_0802C924:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x5
	bl GetMonData
	cmp r0, 0
	beq _0802C95C
	adds r0, r4, 0
	movs r1, 0x41
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	bl sub_802C908
	cmp r0, 0
	beq _0802C95C
	ldr r1, =gSpecialVar_Result
	movs r0, 0x1
	b _0802C966
	.pool
_0802C95C:
	adds r5, 0x1
	cmp r5, 0x5
	ble _0802C924
	ldr r1, =gSpecialVar_Result
	movs r0, 0
_0802C966:
	strh r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C920

	thumb_func_start sub_802C974
sub_802C974: @ 802C974
	push {r4-r6,lr}
	adds r6, r0, 0
	movs r4, 0
	ldr r5, =gUnknown_082FBE08
_0802C97C:
	adds r0, r5, 0
	bl LoadCompressedSpriteSheet
	adds r5, 0x8
	adds r4, 0x1
	cmp r4, 0x4
	bls _0802C97C
	movs r4, 0
	ldr r5, =gUnknown_082FBE30
_0802C98E:
	adds r0, r5, 0
	bl LoadSpritePalette
	adds r5, 0x8
	adds r4, 0x1
	cmp r4, 0x1
	bls _0802C98E
	movs r0, 0x5
	bl IndexOfSpritePaletteTag
	strb r0, [r6, 0xE]
	movs r0, 0x6
	bl IndexOfSpritePaletteTag
	strb r0, [r6, 0xF]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C974

	thumb_func_start sub_802C9BC
sub_802C9BC: @ 802C9BC
	push {lr}
	movs r2, 0
	movs r1, 0x7
	adds r0, 0x3C
_0802C9C4:
	strh r2, [r0]
	subs r0, 0x2
	subs r1, 0x1
	cmp r1, 0
	bge _0802C9C4
	pop {r0}
	bx r0
	thumb_func_end sub_802C9BC

	thumb_func_start sub_802C9D4
sub_802C9D4: @ 802C9D4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x34
	mov r9, r0
	adds r7, r1, 0
	ldr r0, [sp, 0x54]
	lsls r2, 16
	lsrs r2, 16
	str r2, [sp, 0x28]
	lsls r3, 16
	lsrs r3, 16
	str r3, [sp, 0x2C]
	lsls r0, 24
	lsrs r6, r0, 24
	mov r1, sp
	ldr r0, =gUnknown_082FBE40
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	movs r0, 0x80
	lsls r0, 6
	bl Alloc
	mov r8, r0
	movs r0, 0x80
	lsls r0, 4
	bl Alloc
	mov r10, r0
	bl sub_802C8BC
	lsls r0, 16
	lsrs r0, 16
	cmp r6, r0
	bne _0802CA2C
	movs r0, 0x3
	b _0802CA32
	.pool
_0802CA2C:
	adds r0, r6, 0x4
	lsls r0, 24
	lsrs r0, 24
_0802CA32:
	str r0, [sp, 0x30]
	mov r1, r8
	cmp r1, 0
	beq _0802CAF4
	mov r2, r10
	cmp r2, 0
	beq _0802CAF4
	ldrh r2, [r7]
	lsls r0, r2, 3
	ldr r1, =gMonStillFrontPicTable
	adds r0, r1
	ldr r3, [r7, 0x8]
	mov r1, r8
	bl HandleLoadSpecialPokePic
	mov r3, r8
	str r3, [sp, 0x18]
	adds r4, r6, 0
	add r0, sp, 0x18
	ldr r5, =0xffff0000
	lsls r1, r4, 16
	movs r2, 0x80
	lsls r2, 4
	orrs r1, r2
	str r1, [r0, 0x4]
	bl LoadSpriteSheet
	ldrh r0, [r7]
	ldr r1, [r7, 0x4]
	ldr r2, [r7, 0x8]
	bl GetFrontSpritePalFromSpeciesAndPersonality
	str r0, [sp, 0x20]
	add r0, sp, 0x20
	ldr r1, [r0, 0x4]
	ands r1, r5
	orrs r1, r4
	str r1, [r0, 0x4]
	bl LoadCompressedSpritePalette
	mov r0, r8
	bl Free
	mov r0, r10
	bl Free
	mov r1, sp
	mov r0, sp
	ldrh r0, [r0]
	adds r0, r6
	strh r0, [r1]
	mov r0, sp
	ldrh r0, [r0, 0x2]
	adds r0, r6
	strh r0, [r1, 0x2]
	ldr r4, [sp, 0x28]
	lsls r1, r4, 16
	asrs r1, 16
	ldr r0, [sp, 0x2C]
	lsls r2, r0, 16
	asrs r2, 16
	mov r0, sp
	ldr r3, [sp, 0x30]
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x40
	beq _0802CAF4
	lsls r0, r6, 2
	ldr r2, =0x000081a8
	add r2, r9
	adds r2, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r2]
	ldr r0, =0x000081fc
	add r0, r9
	adds r0, r6
	add r1, sp, 0x30
	ldrb r1, [r1]
	strb r1, [r0]
	b _0802CB00
	.pool
_0802CAF4:
	lsls r0, r6, 2
	ldr r1, =0x000081a8
	add r1, r9
	adds r1, r0
	movs r0, 0
	str r0, [r1]
_0802CB00:
	add sp, 0x34
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802C9D4

	thumb_func_start sub_802CB14
sub_802CB14: @ 802CB14
	push {r4-r6,lr}
	adds r4, r0, 0
	lsls r6, r1, 2
	ldr r0, =0x000081bc
	adds r5, r4, r0
	adds r5, r6
	ldr r0, [r5]
	bl sub_802C9BC
	ldr r2, [r5]
	ldr r0, =0x000081a8
	adds r4, r0
	adds r4, r6
	ldr r1, [r4]
	ldr r0, =gSprites
	subs r1, r0
	lsls r0, r1, 4
	subs r0, r1
	lsls r1, r0, 8
	adds r0, r1
	lsls r1, r0, 16
	adds r0, r1
	negs r0, r0
	asrs r0, 2
	strh r0, [r2, 0x3C]
	ldr r1, [r5]
	adds r1, 0x3E
	ldrb r2, [r1]
	movs r0, 0x5
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r1, [r5]
	movs r0, 0x60
	strh r0, [r1, 0x22]
	ldr r0, [r5]
	ldr r1, =sub_802CB7C
	str r1, [r0, 0x1C]
	movs r1, 0x1
	bl StartSpriteAnim
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CB14

	thumb_func_start sub_802CB7C
sub_802CB7C: @ 802CB7C
	push {lr}
	adds r2, r0, 0
	movs r1, 0x2E
	ldrsh r0, [r2, r1]
	cmp r0, 0x1
	beq _0802CBA8
	cmp r0, 0x1
	bgt _0802CB92
	cmp r0, 0
	beq _0802CB98
	b _0802CBE6
_0802CB92:
	cmp r0, 0x2
	beq _0802CBC8
	b _0802CBE6
_0802CB98:
	adds r0, r2, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _0802CBE6
	b _0802CBD6
_0802CBA8:
	ldrh r1, [r2, 0x22]
	subs r1, 0x1
	strh r1, [r2, 0x22]
	ldrh r0, [r2, 0x30]
	adds r0, 0x1
	strh r0, [r2, 0x30]
	lsls r1, 16
	asrs r1, 16
	cmp r1, 0x48
	bgt _0802CBE6
	movs r0, 0x48
	strh r0, [r2, 0x22]
	ldrh r0, [r2, 0x2E]
	adds r0, 0x1
	strh r0, [r2, 0x2E]
	b _0802CBE6
_0802CBC8:
	ldrh r0, [r2, 0x30]
	adds r0, 0x1
	strh r0, [r2, 0x30]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x2F
	ble _0802CBE6
_0802CBD6:
	adds r3, r2, 0
	adds r3, 0x3E
	ldrb r0, [r3]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r3]
	ldr r0, =SpriteCallbackDummy
	str r0, [r2, 0x1C]
_0802CBE6:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CB7C

	thumb_func_start sub_802CBF0
sub_802CBF0: @ 802CBF0
	push {lr}
	lsls r1, 2
	ldr r2, =0x000081a8
	adds r0, r2
	adds r0, r1
	ldr r2, [r0]
	ldr r1, =sub_802CC40
	str r1, [r2, 0x1C]
	movs r1, 0
	strh r1, [r2, 0x26]
	ldr r0, [r0]
	bl sub_802C9BC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CBF0

	thumb_func_start sub_802CC18
sub_802CC18: @ 802CC18
	push {lr}
	movs r2, 0
	lsls r1, 2
	ldr r3, =0x000081a8
	adds r0, r3
	adds r0, r1
	ldr r0, [r0]
	ldr r1, [r0, 0x1C]
	ldr r0, =sub_802CC40
	cmp r1, r0
	bne _0802CC30
	movs r2, 0x1
_0802CC30:
	adds r0, r2, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802CC18

	thumb_func_start sub_802CC40
sub_802CC40: @ 802CC40
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2, 0x30]
	adds r0, 0x1
	strh r0, [r2, 0x30]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x1
	ble _0802CC6C
	ldrh r0, [r2, 0x32]
	adds r0, 0x1
	strh r0, [r2, 0x32]
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0802CC64
	movs r0, 0x2
	b _0802CC66
_0802CC64:
	ldr r0, =0x0000fffe
_0802CC66:
	strh r0, [r2, 0x26]
	movs r0, 0
	strh r0, [r2, 0x30]
_0802CC6C:
	movs r1, 0x32
	ldrsh r0, [r2, r1]
	cmp r0, 0xC
	ble _0802CC7C
	movs r0, 0
	strh r0, [r2, 0x26]
	ldr r0, =SpriteCallbackDummy
	str r0, [r2, 0x1C]
_0802CC7C:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CC40

	thumb_func_start sub_802CC88
sub_802CC88: @ 802CC88
	push {r4,lr}
	adds r4, r0, 0
	lsls r1, 2
	ldr r0, =0x000081a8
	adds r4, r0
	adds r4, r1
	ldr r0, [r4]
	bl sub_802C9BC
	ldr r1, [r4]
	ldr r0, =sub_802CD08
	str r0, [r1, 0x1C]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CC88

	thumb_func_start sub_802CCB0
sub_802CCB0: @ 802CCB0
	push {r4-r7,lr}
	adds r4, r0, 0
	bl sub_802C8AC
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	beq _0802CCF4
	movs r1, 0x5
	negs r1, r1
	mov r12, r1
	ldr r1, =0x000081a8
	adds r3, r4, r1
	ldr r7, =sub_802CD08
	ldr r6, =SpriteCallbackDummy
	movs r5, 0xA
	adds r4, r0, 0
_0802CCD2:
	ldr r2, [r3]
	ldr r0, [r2, 0x1C]
	cmp r0, r7
	bne _0802CCEC
	adds r2, 0x3E
	ldrb r1, [r2]
	mov r0, r12
	ands r0, r1
	strb r0, [r2]
	ldr r0, [r3]
	str r6, [r0, 0x1C]
	adds r0, 0x43
	strb r5, [r0]
_0802CCEC:
	adds r3, 0x4
	subs r4, 0x1
	cmp r4, 0
	bne _0802CCD2
_0802CCF4:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CCB0

	thumb_func_start sub_802CD08
sub_802CD08: @ 802CD08
	push {lr}
	adds r3, r0, 0
	ldrh r0, [r3, 0x2E]
	adds r0, 0x1
	strh r0, [r3, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3
	ble _0802CD36
	movs r0, 0
	strh r0, [r3, 0x2E]
	adds r3, 0x3E
	ldrb r2, [r3]
	lsls r0, r2, 29
	lsrs r0, 31
	movs r1, 0x1
	eors r1, r0
	lsls r1, 2
	movs r0, 0x5
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3]
_0802CD36:
	pop {r0}
	bx r0
	thumb_func_end sub_802CD08

	thumb_func_start sub_802CD3C
sub_802CD3C: @ 802CD3C
	push {r4,r5,lr}
	adds r4, r0, 0
	bl sub_802C8AC
	lsls r0, 16
	lsrs r3, r0, 16
	movs r2, 0
	cmp r2, r3
	bge _0802CD66
	ldr r0, =0x000081fc
	adds r5, r4, r0
	subs r0, 0x54
	adds r4, r0
_0802CD56:
	ldm r4!, {r0}
	adds r1, r5, r2
	ldrb r1, [r1]
	adds r0, 0x43
	strb r1, [r0]
	adds r2, 0x1
	cmp r2, r3
	blt _0802CD56
_0802CD66:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CD3C

	thumb_func_start sub_802CD70
sub_802CD70: @ 802CD70
	push {r4,lr}
	adds r4, r0, 0
	lsls r1, 2
	ldr r0, =0x000081a8
	adds r4, r0
	adds r4, r1
	ldr r0, [r4]
	bl sub_802C9BC
	ldr r1, [r4]
	ldr r0, =sub_802CDD4
	str r0, [r1, 0x1C]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CD70

	thumb_func_start sub_802CD98
sub_802CD98: @ 802CD98
	push {r4,r5,lr}
	adds r4, r0, 0
	bl sub_802C8AC
	lsls r0, 16
	lsrs r3, r0, 16
	movs r2, 0
	cmp r2, r3
	bge _0802CDCC
	ldr r5, =sub_802CDD4
	ldr r0, =0x000081a8
	adds r1, r4, r0
_0802CDB0:
	ldr r0, [r1]
	ldr r0, [r0, 0x1C]
	cmp r0, r5
	bne _0802CDC4
	movs r0, 0x1
	b _0802CDCE
	.pool
_0802CDC4:
	adds r1, 0x4
	adds r2, 0x1
	cmp r2, r3
	blt _0802CDB0
_0802CDCC:
	movs r0, 0
_0802CDCE:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802CD98

	thumb_func_start sub_802CDD4
sub_802CDD4: @ 802CDD4
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0x2E
	ldrsh r4, [r5, r0]
	cmp r4, 0
	beq _0802CDE6
	cmp r4, 0x1
	beq _0802CDF4
	b _0802CE3C
_0802CDE6:
	movs r0, 0x22
	bl PlaySE
	strh r4, [r5, 0x30]
	ldrh r0, [r5, 0x2E]
	adds r0, 0x1
	strh r0, [r5, 0x2E]
_0802CDF4:
	ldrh r0, [r5, 0x30]
	adds r0, 0x4
	strh r0, [r5, 0x30]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7F
	ble _0802CE06
	movs r0, 0
	strh r0, [r5, 0x30]
_0802CE06:
	ldr r1, =gSineTable
	movs r2, 0x30
	ldrsh r0, [r5, r2]
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	lsls r0, 16
	asrs r0, 19
	negs r0, r0
	strh r0, [r5, 0x26]
	movs r0, 0x30
	ldrsh r1, [r5, r0]
	cmp r1, 0
	bne _0802CE3C
	ldrh r0, [r5, 0x32]
	adds r0, 0x1
	strh r0, [r5, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x1
	bgt _0802CE38
	strh r1, [r5, 0x2E]
	b _0802CE3C
	.pool
_0802CE38:
	ldr r0, =SpriteCallbackDummy
	str r0, [r5, 0x1C]
_0802CE3C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CDD4

	thumb_func_start sub_802CE48
sub_802CE48: @ 802CE48
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r3, 24
	lsrs r4, r3, 24
	ldr r0, =gUnknown_082FC00C
	lsls r1, 16
	asrs r1, 16
	lsls r2, 16
	asrs r2, 16
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x40
	beq _0802CE88
	ldr r0, =gSprites
	lsls r1, r2, 4
	adds r1, r2
	lsls r1, 2
	adds r1, r0
	adds r3, r1, 0
	adds r3, 0x3E
	ldrb r0, [r3]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r3]
	lsls r2, r4, 2
	ldr r3, =0x000081bc
	adds r0, r5, r3
	adds r0, r2
	str r1, [r0]
_0802CE88:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CE48

	thumb_func_start sub_802CE9C
sub_802CE9C: @ 802CE9C
	push {r4-r7,lr}
	adds r7, r0, 0
	movs r5, 0
	movs r4, 0
	ldr r6, =gUnknown_082FBE58
_0802CEA6:
	ldr r1, =gUnknown_082FBEB8
	lsls r0, r4, 2
	adds r0, r1
	ldr r0, [r0]
	ldr r2, =gUnknown_082FBEA8
	lsls r1, r5, 1
	adds r1, r2
	movs r2, 0
	ldrsh r1, [r1, r2]
	movs r3, 0
	ldrsh r2, [r6, r3]
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r0, r5, 2
	ldr r3, =0x000081d0
	adds r2, r7, r3
	adds r2, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r2]
	adds r5, 0x1
	adds r6, 0x14
	adds r4, 0x1
	cmp r4, 0x3
	ble _0802CEA6
	movs r4, 0x3
	movs r6, 0x3C
_0802CEE8:
	ldr r1, =gUnknown_082FBEB8
	lsls r0, r4, 2
	adds r0, r1
	ldr r0, [r0]
	ldr r2, =gUnknown_082FBEA8
	lsls r1, r5, 1
	adds r1, r2
	movs r2, 0
	ldrsh r1, [r1, r2]
	ldr r2, =gUnknown_082FBE58
	adds r2, r6, r2
	movs r3, 0
	ldrsh r2, [r2, r3]
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r0, r5, 2
	ldr r3, =0x000081d0
	adds r2, r7, r3
	adds r2, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r2]
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r2, 0x1
	orrs r1, r2
	strb r1, [r0]
	adds r5, 0x1
	subs r6, 0x14
	subs r4, 0x1
	cmp r4, 0
	bge _0802CEE8
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CE9C

	thumb_func_start sub_802CF50
sub_802CF50: @ 802CF50
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	str r0, [sp, 0x8]
	cmp r1, 0x5
	ble _0802CF70
	movs r0, 0xA
	subs r1, r0, r1
	movs r0, 0x3
	str r0, [sp]
	ldr r2, [sp, 0x8]
	ldrb r0, [r2, 0xF]
	b _0802CF78
_0802CF70:
	movs r3, 0x2
	str r3, [sp]
	ldr r7, [sp, 0x8]
	ldrb r0, [r7, 0xE]
_0802CF78:
	movs r6, 0
	lsls r2, r1, 1
	str r2, [sp, 0x4]
	lsls r0, 4
	mov r9, r0
	lsls r1, 24
	mov r8, r1
	ldr r0, =gUnknown_082FBE58
	adds r4, r2, r0
	ldr r3, [sp]
	lsls r3, 2
	mov r10, r3
	movs r5, 0x3
_0802CF92:
	lsls r0, r6, 2
	ldr r7, [sp, 0x8]
	ldr r1, =0x000081d0
	adds r2, r7, r1
	adds r2, r0
	ldr r1, [r2]
	ldrh r0, [r4]
	strh r0, [r1, 0x22]
	ldr r3, [r2]
	ldrb r0, [r3, 0x5]
	movs r7, 0xD
	negs r7, r7
	adds r1, r7, 0
	ands r0, r1
	mov r1, r10
	orrs r0, r1
	strb r0, [r3, 0x5]
	ldr r3, [r2]
	ldrb r1, [r3, 0x5]
	movs r0, 0xF
	ands r0, r1
	mov r7, r9
	orrs r0, r7
	strb r0, [r3, 0x5]
	ldr r0, [r2]
	mov r2, r8
	lsrs r1, r2, 24
	bl StartSpriteAnim
	adds r6, 0x1
	adds r4, 0x14
	subs r5, 0x1
	cmp r5, 0
	bge _0802CF92
	movs r5, 0x3
	ldr r0, =gUnknown_082FBE58
	ldr r3, [sp, 0x4]
	adds r0, r3, r0
	adds r4, r0, 0
	adds r4, 0x3C
	ldr r7, [sp]
	lsls r7, 2
	mov r10, r7
_0802CFE8:
	lsls r0, r6, 2
	ldr r1, [sp, 0x8]
	ldr r3, =0x000081d0
	adds r2, r1, r3
	adds r2, r0
	ldr r1, [r2]
	ldrh r0, [r4]
	strh r0, [r1, 0x22]
	ldr r3, [r2]
	ldrb r0, [r3, 0x5]
	movs r7, 0xD
	negs r7, r7
	adds r1, r7, 0
	ands r0, r1
	mov r1, r10
	orrs r0, r1
	strb r0, [r3, 0x5]
	ldr r3, [r2]
	ldrb r1, [r3, 0x5]
	movs r0, 0xF
	ands r0, r1
	mov r7, r9
	orrs r0, r7
	strb r0, [r3, 0x5]
	ldr r0, [r2]
	mov r2, r8
	lsrs r1, r2, 24
	bl StartSpriteAnim
	adds r6, 0x1
	subs r4, 0x14
	subs r5, 0x1
	cmp r5, 0
	bge _0802CFE8
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802CF50

	thumb_func_start sub_802D044
sub_802D044: @ 802D044
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r0, 0
	str r0, [sp]
	movs r0, 0x9
	movs r1, 0x7
	movs r2, 0x78
	movs r3, 0x50
	bl sub_802EB24
	adds r0, r4, 0
	bl sub_802CD3C
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_802D044

	thumb_func_start sub_802D068
sub_802D068: @ 802D068
	push {lr}
	bl sub_802EB84
	pop {r1}
	bx r1
	thumb_func_end sub_802D068

	thumb_func_start sub_802D074
sub_802D074: @ 802D074
	push {r4,lr}
	ldr r4, =gUnknown_02022D00
	str r0, [r4]
	bl sub_802D0BC
	ldr r0, =sub_802D12C
	movs r1, 0x3
	bl CreateTask
	ldr r1, [r4]
	strb r0, [r1, 0x6]
	ldr r2, [r4]
	ldrb r0, [r2, 0x6]
	movs r1, 0x2
	bl SetWordTaskArg
	ldr r0, =sub_802D150
	bl sub_802D108
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D074

	thumb_func_start sub_802D0AC
sub_802D0AC: @ 802D0AC
	push {lr}
	bl FreeAllWindowBuffers
	bl sub_8034CC8
	pop {r0}
	bx r0
	thumb_func_end sub_802D0AC

	thumb_func_start sub_802D0BC
sub_802D0BC: @ 802D0BC
	movs r1, 0
	strh r1, [r0, 0x4]
	str r1, [r0]
	movs r1, 0xFF
	strh r1, [r0, 0x12]
	bx lr
	thumb_func_end sub_802D0BC

	thumb_func_start sub_802D0C8
sub_802D0C8: @ 802D0C8
	push {r4-r6,lr}
	adds r6, r0, 0
	movs r5, 0
	ldr r4, =gUnknown_082FE18C
_0802D0D0:
	ldr r0, [r4]
	cmp r0, r6
	bne _0802D0DC
	ldr r0, [r4, 0x4]
	bl sub_802D108
_0802D0DC:
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0x9
	bls _0802D0D0
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D0C8

	thumb_func_start sub_802D0F0
sub_802D0F0: @ 802D0F0
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	ldr r1, [r0]
	movs r0, 0x1
	eors r1, r0
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	bx lr
	.pool
	thumb_func_end sub_802D0F0

	thumb_func_start sub_802D108
sub_802D108: @ 802D108
	push {r4,lr}
	adds r2, r0, 0
	ldr r4, =gUnknown_02022D00
	ldr r0, [r4]
	ldrb r0, [r0, 0x6]
	movs r1, 0
	bl SetWordTaskArg
	ldr r1, [r4]
	movs r0, 0
	strh r0, [r1, 0x4]
	str r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D108

	thumb_func_start sub_802D12C
sub_802D12C: @ 802D12C
	push {lr}
	lsls r0, 24
	lsrs r1, r0, 24
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	ldr r0, [r0]
	cmp r0, 0
	bne _0802D148
	adds r0, r1, 0
	movs r1, 0
	bl GetWordTaskArg
	bl _call_via_r0
_0802D148:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D12C

	thumb_func_start sub_802D150
sub_802D150: @ 802D150
	push {r4-r6,lr}
	sub sp, 0x8
	ldr r6, =gUnknown_02022D00
	ldr r1, [r6]
	ldrh r5, [r1, 0x4]
	cmp r5, 0x1
	bne _0802D160
	b _0802D298
_0802D160:
	cmp r5, 0x1
	bgt _0802D170
	cmp r5, 0
	beq _0802D178
	b _0802D2DA
	.pool
_0802D170:
	cmp r5, 0x2
	bne _0802D176
	b _0802D2D6
_0802D176:
	b _0802D2DA
_0802D178:
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_082FE164
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	ldr r0, =gUnknown_082FE174
	bl InitWindows
	bl reset_temp_tile_data_buffers
	ldr r0, [r6]
	bl sub_802C974
	bl sub_802DD08
	ldr r0, =gPkmnJumpBgPal
	movs r1, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r1, =gPkmnJumpBgGfx
	str r5, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gPkmnJumpBgTilemap
	movs r4, 0x1
	str r4, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =gPkmnJumpVenusaurPal
	movs r1, 0x30
	movs r2, 0x20
	bl LoadPalette
	ldr r1, =gPkmnJumpVenusaurGfx
	str r5, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gPkmnJumpVenusaurTilemap
	str r4, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =gPkmnJumpResultsPal
	movs r1, 0x10
	movs r2, 0x20
	bl LoadPalette
	ldr r1, =gPkmnJumpResultsGfx
	str r5, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gPkmnJumpResultsTilemap
	str r4, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =gPkmnJumpPal3
	movs r1, 0x20
	movs r2, 0x20
	bl LoadPalette
	ldr r1, [r6]
	movs r0, 0xD3
	lsls r0, 1
	adds r1, r0
	movs r0, 0
	bl SetBgTilemapBuffer
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	bl sub_802DB8C
	movs r0, 0
	bl sub_802DD64
	movs r0, 0
	movs r1, 0x1
	movs r2, 0xE0
	bl sub_8098C6C
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	bl sub_8199D98
	b _0802D2CC
	.pool
_0802D298:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _0802D2DA
	bl sub_802DBF8
	ldr r0, [r6]
	bl sub_802CE9C
	ldr r0, [r6]
	movs r1, 0x6
	bl sub_802CF50
	movs r0, 0x3
	bl ShowBg
	movs r0, 0
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x1
	bl HideBg
_0802D2CC:
	ldr r1, [r6]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D2DA
_0802D2D6:
	movs r0, 0x1
	str r0, [r1]
_0802D2DA:
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_802D150

	thumb_func_start sub_802D2E4
sub_802D2E4: @ 802D2E4
	push {r4,lr}
	ldr r4, =gUnknown_02022D00
	ldr r0, [r4]
	ldrh r0, [r0, 0x4]
	cmp r0, 0x1
	beq _0802D310
	cmp r0, 0x1
	bgt _0802D300
	cmp r0, 0
	beq _0802D30A
	b _0802D34A
	.pool
_0802D300:
	cmp r0, 0x2
	beq _0802D322
	cmp r0, 0x3
	beq _0802D33A
	b _0802D34A
_0802D30A:
	bl sub_802DE1C
	b _0802D330
_0802D310:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D34A
	movs r0, 0
	bl sub_802DF70
	b _0802D330
_0802D322:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D34A
	bl sub_802DFD4
_0802D330:
	ldr r1, [r4]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D34A
_0802D33A:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D34A
	ldr r1, [r4]
	movs r0, 0x1
	str r0, [r1]
_0802D34A:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_802D2E4

	thumb_func_start sub_802D350
sub_802D350: @ 802D350
	push {r4,lr}
	ldr r4, =gUnknown_02022D00
	ldr r0, [r4]
	ldrh r0, [r0, 0x4]
	cmp r0, 0x1
	beq _0802D37C
	cmp r0, 0x1
	bgt _0802D36C
	cmp r0, 0
	beq _0802D376
	b _0802D3B6
	.pool
_0802D36C:
	cmp r0, 0x2
	beq _0802D38E
	cmp r0, 0x3
	beq _0802D3A6
	b _0802D3B6
_0802D376:
	bl sub_802DE1C
	b _0802D39C
_0802D37C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D3B6
	movs r0, 0x1
	bl sub_802DF70
	b _0802D39C
_0802D38E:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D3B6
	bl sub_802DFD4
_0802D39C:
	ldr r1, [r4]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D3B6
_0802D3A6:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D3B6
	ldr r1, [r4]
	movs r0, 0x1
	str r0, [r1]
_0802D3B6:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_802D350

	thumb_func_start sub_802D3BC
sub_802D3BC: @ 802D3BC
	push {r4,r5,lr}
	bl sub_802C8AC
	lsls r0, 16
	lsrs r5, r0, 16
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	ldrh r0, [r0, 0x4]
	cmp r0, 0
	beq _0802D3DC
	cmp r0, 0x1
	beq _0802D410
	b _0802D43E
	.pool
_0802D3DC:
	movs r4, 0
	cmp r4, r5
	bge _0802D3F8
_0802D3E2:
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	lsls r1, r4, 1
	adds r0, 0x1C
	adds r0, r1
	ldrb r0, [r0]
	bl ClearWindowTilemap
	adds r4, 0x1
	cmp r4, r5
	blt _0802D3E2
_0802D3F8:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_02022D00
	ldr r1, [r0]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D43E
	.pool
_0802D410:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D43E
	movs r4, 0
	cmp r4, r5
	bge _0802D436
_0802D420:
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	lsls r1, r4, 1
	adds r0, 0x1C
	adds r0, r1
	ldrb r0, [r0]
	bl RemoveWindow
	adds r4, 0x1
	cmp r4, r5
	blt _0802D420
_0802D436:
	ldr r0, =gUnknown_02022D00
	ldr r1, [r0]
	movs r0, 0x1
	str r0, [r1]
_0802D43E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D3BC

	thumb_func_start sub_802D448
sub_802D448: @ 802D448
	push {r4,r5,lr}
	sub sp, 0xC
	ldr r5, =gUnknown_02022D00
	ldr r0, [r5]
	ldrh r4, [r0, 0x4]
	cmp r4, 0x1
	beq _0802D4A4
	cmp r4, 0x1
	bgt _0802D464
	cmp r4, 0
	beq _0802D46A
	b _0802D4EC
	.pool
_0802D464:
	cmp r4, 0x2
	beq _0802D4DC
	b _0802D4EC
_0802D46A:
	movs r0, 0x1
	movs r1, 0x8
	movs r2, 0x14
	movs r3, 0x2
	bl sub_802DA9C
	ldr r1, [r5]
	strh r0, [r1, 0x12]
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gText_WantToPlayAgain2
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	b _0802D4D2
	.pool
_0802D4A4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D4EC
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	bl PutWindowTilemap
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x1
	movs r2, 0xE
	bl sub_8098858
	movs r0, 0x17
	movs r1, 0x7
	movs r2, 0
	bl sub_802DB18
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_0802D4D2:
	ldr r1, [r5]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D4EC
_0802D4DC:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D4EC
	ldr r1, [r5]
	movs r0, 0x1
	str r0, [r1]
_0802D4EC:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802D448

	thumb_func_start sub_802D4F4
sub_802D4F4: @ 802D4F4
	push {r4,r5,lr}
	sub sp, 0xC
	ldr r5, =gUnknown_02022D00
	ldr r0, [r5]
	ldrh r4, [r0, 0x4]
	cmp r4, 0x1
	beq _0802D550
	cmp r4, 0x1
	bgt _0802D510
	cmp r4, 0
	beq _0802D516
	b _0802D58E
	.pool
_0802D510:
	cmp r4, 0x2
	beq _0802D57E
	b _0802D58E
_0802D516:
	movs r0, 0x2
	movs r1, 0x7
	movs r2, 0x1A
	movs r3, 0x4
	bl sub_802DA9C
	ldr r1, [r5]
	strh r0, [r1, 0x12]
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gText_SavingDontTurnOffPower
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	b _0802D574
	.pool
_0802D550:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D58E
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	bl PutWindowTilemap
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x1
	movs r2, 0xE
	bl sub_8098858
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_0802D574:
	ldr r1, [r5]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D58E
_0802D57E:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D58E
	ldr r1, [r5]
	movs r0, 0x1
	str r0, [r1]
_0802D58E:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802D4F4

	thumb_func_start sub_802D598
sub_802D598: @ 802D598
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022D00
	ldr r0, [r5]
	ldrh r4, [r0, 0x4]
	cmp r4, 0
	beq _0802D5B0
	cmp r4, 0x1
	beq _0802D5C8
	b _0802D5DE
	.pool
_0802D5B0:
	bl sub_802DA14
	bl sub_8198C78
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r1, [r5]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D5DE
_0802D5C8:
	bl sub_802DA44
	cmp r0, 0
	bne _0802D5DE
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D5DE
	ldr r0, [r5]
	str r4, [r0]
_0802D5DE:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802D598

	thumb_func_start sub_802D5E4
sub_802D5E4: @ 802D5E4
	push {r4,r5,lr}
	sub sp, 0xC
	ldr r5, =gUnknown_02022D00
	ldr r0, [r5]
	ldrh r4, [r0, 0x4]
	cmp r4, 0x1
	beq _0802D640
	cmp r4, 0x1
	bgt _0802D600
	cmp r4, 0
	beq _0802D606
	b _0802D67E
	.pool
_0802D600:
	cmp r4, 0x2
	beq _0802D66E
	b _0802D67E
_0802D606:
	movs r0, 0x2
	movs r1, 0x8
	movs r2, 0x16
	movs r3, 0x4
	bl sub_802DA9C
	ldr r1, [r5]
	strh r0, [r1, 0x12]
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gText_SomeoneDroppedOut2
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	b _0802D664
	.pool
_0802D640:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D67E
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	bl PutWindowTilemap
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x1
	movs r2, 0xE
	bl sub_8098858
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_0802D664:
	ldr r1, [r5]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D67E
_0802D66E:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D67E
	ldr r1, [r5]
	movs r0, 0x1
	str r0, [r1]
_0802D67E:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802D5E4

	thumb_func_start sub_802D688
sub_802D688: @ 802D688
	push {r4,r5,lr}
	sub sp, 0xC
	ldr r5, =gUnknown_02022D00
	ldr r0, [r5]
	ldrh r4, [r0, 0x4]
	cmp r4, 0x1
	beq _0802D6E4
	cmp r4, 0x1
	bgt _0802D6A4
	cmp r4, 0
	beq _0802D6AA
	b _0802D722
	.pool
_0802D6A4:
	cmp r4, 0x2
	beq _0802D712
	b _0802D722
_0802D6AA:
	movs r0, 0x7
	movs r1, 0xA
	movs r2, 0x10
	movs r3, 0x2
	bl sub_802DA9C
	ldr r1, [r5]
	strh r0, [r1, 0x12]
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gText_CommunicationStandby4
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	b _0802D708
	.pool
_0802D6E4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D722
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	bl PutWindowTilemap
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x1
	movs r2, 0xE
	bl sub_8098858
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_0802D708:
	ldr r1, [r5]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D722
_0802D712:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802D722
	ldr r1, [r5]
	movs r0, 0x1
	str r0, [r1]
_0802D722:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802D688

	thumb_func_start sub_802D72C
sub_802D72C: @ 802D72C
	push {r4,r5,lr}
	ldr r5, =gUnknown_02022D00
	ldr r0, [r5]
	ldrh r4, [r0, 0x4]
	cmp r4, 0
	beq _0802D744
	cmp r4, 0x1
	beq _0802D752
	b _0802D75E
	.pool
_0802D744:
	bl sub_802D044
	ldr r1, [r5]
	ldrh r0, [r1, 0x4]
	adds r0, 0x1
	strh r0, [r1, 0x4]
	b _0802D75E
_0802D752:
	bl sub_802D068
	cmp r0, 0
	bne _0802D75E
	ldr r0, [r5]
	str r4, [r0]
_0802D75E:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802D72C

	thumb_func_start sub_802D764
sub_802D764: @ 802D764
	push {lr}
	ldr r1, =gUnknown_02022D00
	ldr r0, [r1]
	movs r2, 0
	strb r2, [r0, 0xA]
	ldr r0, [r1]
	strb r2, [r0, 0xB]
	ldr r2, [r1]
	movs r0, 0x6
	strb r0, [r2, 0xC]
	ldr r0, [r1]
	ldrb r0, [r0, 0xC]
	bl sub_802DC9C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D764

	thumb_func_start sub_802D788
sub_802D788: @ 802D788
	push {r4,lr}
	ldr r0, =gUnknown_02022D00
	ldr r2, [r0]
	ldrb r3, [r2, 0xA]
	adds r4, r0, 0
	cmp r3, 0
	beq _0802D7A0
	cmp r3, 0x1
	beq _0802D7DA
	b _0802D7DE
	.pool
_0802D7A0:
	ldrb r0, [r2, 0xB]
	adds r0, 0x1
	strb r0, [r2, 0xB]
	ldr r1, [r4]
	ldrb r0, [r1, 0xB]
	cmp r0, 0xA
	bls _0802D7CA
	strb r3, [r1, 0xB]
	ldr r0, [r4]
	ldrb r1, [r0, 0xC]
	adds r1, 0x1
	strb r1, [r0, 0xC]
	ldr r1, [r4]
	ldrb r0, [r1, 0xC]
	cmp r0, 0x9
	bls _0802D7CA
	strb r3, [r1, 0xC]
	ldr r1, [r4]
	ldrb r0, [r1, 0xA]
	adds r0, 0x1
	strb r0, [r1, 0xA]
_0802D7CA:
	ldr r0, [r4]
	ldrb r0, [r0, 0xC]
	bl sub_802DC9C
	ldr r0, [r4]
	ldrb r0, [r0, 0xC]
	cmp r0, 0x7
	bne _0802D7DE
_0802D7DA:
	movs r0, 0
	b _0802D7E0
_0802D7DE:
	movs r0, 0x1
_0802D7E0:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802D788

	thumb_func_start sub_802D7E8
sub_802D7E8: @ 802D7E8
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r1, 0
	lsls r0, 16
	lsrs r0, 16
	lsls r4, 16
	lsrs r4, 16
	ldr r5, =gUnknown_02022D00
	ldr r1, [r5]
	adds r1, 0x26
	adds r2, r4, 0
	bl CopyItemNameHandlePlural
	ldr r0, [r5]
	adds r0, 0x66
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0x1
	bl ConvertIntToDecimalStringN
	bl DynamicPlaceholderTextUtil_Reset
	ldr r1, [r5]
	adds r1, 0x26
	movs r0, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r1, [r5]
	adds r1, 0x66
	movs r0, 0x1
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r0, [r5]
	adds r0, 0xA6
	ldr r1, =gText_AwesomeWonF701F700
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	movs r0, 0x4
	movs r1, 0x8
	movs r2, 0x16
	movs r3, 0x4
	bl sub_802DA9C
	ldr r2, [r5]
	movs r4, 0
	movs r3, 0
	strh r0, [r2, 0x12]
	lsls r0, 24
	lsrs r0, 24
	adds r2, 0xA6
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	str r3, [sp, 0x8]
	movs r1, 0x1
	bl AddTextPrinterParameterized
	ldr r0, [r5]
	ldrb r0, [r0, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r1, [r5]
	ldr r0, =0x0000016f
	strh r0, [r1, 0x14]
	strb r4, [r1, 0xD]
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D7E8

	thumb_func_start sub_802D884
sub_802D884: @ 802D884
	push {r4-r6,lr}
	sub sp, 0xC
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gUnknown_02022D00
	ldr r1, [r4]
	adds r1, 0x26
	bl CopyItemName
	bl DynamicPlaceholderTextUtil_Reset
	ldr r1, [r4]
	adds r1, 0x26
	movs r0, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r0, [r4]
	adds r0, 0xA6
	ldr r1, =gText_FilledStorageSpace2
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	movs r0, 0x4
	movs r1, 0x8
	movs r2, 0x16
	movs r3, 0x4
	bl sub_802DA9C
	ldr r2, [r4]
	movs r6, 0
	movs r5, 0
	strh r0, [r2, 0x12]
	lsls r0, 24
	lsrs r0, 24
	adds r2, 0xA6
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r4]
	ldrb r0, [r0, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, [r4]
	strh r5, [r0, 0x14]
	strb r6, [r0, 0xD]
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D884

	thumb_func_start sub_802D8FC
sub_802D8FC: @ 802D8FC
	push {r4-r6,lr}
	sub sp, 0xC
	lsls r0, 16
	lsrs r0, 16
	ldr r4, =gUnknown_02022D00
	ldr r1, [r4]
	adds r1, 0x26
	bl CopyItemName
	bl DynamicPlaceholderTextUtil_Reset
	ldr r1, [r4]
	adds r1, 0x26
	movs r0, 0
	bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
	ldr r0, [r4]
	adds r0, 0xA6
	ldr r1, =gText_CantHoldMore
	bl DynamicPlaceholderTextUtil_ExpandPlaceholders
	movs r0, 0x4
	movs r1, 0x9
	movs r2, 0x16
	movs r3, 0x2
	bl sub_802DA9C
	ldr r2, [r4]
	movs r6, 0
	movs r5, 0
	strh r0, [r2, 0x12]
	lsls r0, 24
	lsrs r0, 24
	adds r2, 0xA6
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [r4]
	ldrb r0, [r0, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	ldr r0, [r4]
	strh r5, [r0, 0x14]
	strb r6, [r0, 0xD]
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802D8FC

	thumb_func_start sub_802D974
sub_802D974: @ 802D974
	push {r4,lr}
	ldr r4, =gUnknown_02022D00
	ldr r0, [r4]
	ldrb r0, [r0, 0xD]
	cmp r0, 0x1
	beq _0802D9C8
	cmp r0, 0x1
	bgt _0802D990
	cmp r0, 0
	beq _0802D99A
	b _0802DA0C
	.pool
_0802D990:
	cmp r0, 0x2
	beq _0802D9EE
	cmp r0, 0x3
	beq _0802DA02
	b _0802DA0C
_0802D99A:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802DA0C
	ldr r0, [r4]
	ldrb r0, [r0, 0x12]
	bl PutWindowTilemap
	ldr r0, [r4]
	ldrb r0, [r0, 0x12]
	movs r1, 0x1
	movs r2, 0xE
	bl sub_8098858
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r1, [r4]
	ldrb r0, [r1, 0xD]
	adds r0, 0x1
	strb r0, [r1, 0xD]
	b _0802DA0C
_0802D9C8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802DA0C
	ldr r1, [r4]
	ldrh r0, [r1, 0x14]
	cmp r0, 0
	bne _0802D9E0
	ldrb r0, [r1, 0xD]
	adds r0, 0x2
	b _0802DA00
_0802D9E0:
	ldrh r0, [r1, 0x14]
	bl PlayFanfare
	ldr r1, [r4]
	ldrb r0, [r1, 0xD]
	adds r0, 0x1
	strb r0, [r1, 0xD]
_0802D9EE:
	bl IsFanfareTaskInactive
	lsls r0, 24
	cmp r0, 0
	beq _0802DA0C
	ldr r0, =gUnknown_02022D00
	ldr r1, [r0]
	ldrb r0, [r1, 0xD]
	adds r0, 0x1
_0802DA00:
	strb r0, [r1, 0xD]
_0802DA02:
	movs r0, 0
	b _0802DA0E
	.pool
_0802DA0C:
	movs r0, 0x1
_0802DA0E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802D974

	thumb_func_start sub_802DA14
sub_802DA14: @ 802DA14
	push {r4,lr}
	ldr r4, =gUnknown_02022D00
	ldr r0, [r4]
	ldrh r0, [r0, 0x12]
	cmp r0, 0xFF
	beq _0802DA38
	lsls r0, 24
	lsrs r0, 24
	bl rbox_fill_rectangle
	ldr r0, [r4]
	ldrb r0, [r0, 0x12]
	movs r1, 0x1
	bl CopyWindowToVram
	ldr r1, [r4]
	movs r0, 0
	strb r0, [r1, 0xD]
_0802DA38:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DA14

	thumb_func_start sub_802DA44
sub_802DA44: @ 802DA44
	push {r4,lr}
	ldr r4, =gUnknown_02022D00
	ldr r1, [r4]
	ldrh r0, [r1, 0x12]
	cmp r0, 0xFF
	bne _0802DA58
_0802DA50:
	movs r0, 0
	b _0802DA84
	.pool
_0802DA58:
	ldrb r0, [r1, 0xD]
	cmp r0, 0
	bne _0802DA7E
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802DA82
	ldr r0, [r4]
	ldrb r0, [r0, 0x12]
	bl RemoveWindow
	ldr r1, [r4]
	movs r0, 0xFF
	strh r0, [r1, 0x12]
	ldrb r0, [r1, 0xD]
	adds r0, 0x1
	strb r0, [r1, 0xD]
	b _0802DA50
_0802DA7E:
	cmp r0, 0x1
	beq _0802DA50
_0802DA82:
	movs r0, 0x1
_0802DA84:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802DA44

	thumb_func_start sub_802DA8C
sub_802DA8C: @ 802DA8C
	push {lr}
	bl Menu_ProcessInputNoWrapClearOnChoose
	lsls r0, 24
	asrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_802DA8C

	thumb_func_start sub_802DA9C
sub_802DA9C: @ 802DA9C
	push {r4-r6,lr}
	sub sp, 0x8
	ldr r6, =0xffffff00
	ldr r4, [sp]
	ands r4, r6
	lsls r0, 24
	lsrs r0, 16
	ldr r5, =0xffff00ff
	ands r4, r5
	orrs r4, r0
	lsls r1, 24
	lsrs r1, 8
	ldr r0, =0xff00ffff
	ands r4, r0
	orrs r4, r1
	lsls r2, 24
	ldr r0, =0x00ffffff
	ands r4, r0
	orrs r4, r2
	str r4, [sp]
	lsls r3, 24
	lsrs r3, 24
	ldr r0, [sp, 0x4]
	ands r0, r6
	orrs r0, r3
	ands r0, r5
	movs r1, 0xF0
	lsls r1, 4
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0x86
	lsls r1, 15
	orrs r0, r1
	str r0, [sp, 0x4]
	mov r0, sp
	bl AddWindow
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r0, r4, 24
	lsrs r0, 24
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r4, 0
	add sp, 0x8
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802DA9C

	thumb_func_start sub_802DB18
sub_802DB18: @ 802DB18
	push {r4,r5,lr}
	sub sp, 0x8
	adds r3, r2, 0
	lsls r3, 24
	lsrs r3, 24
	ldr r5, =0xffffff00
	ldr r2, [sp]
	ands r2, r5
	lsls r0, 24
	lsrs r0, 16
	ldr r4, =0xffff00ff
	ands r2, r4
	orrs r2, r0
	lsls r1, 24
	lsrs r1, 8
	ldr r0, =0xff00ffff
	ands r2, r0
	orrs r2, r1
	ldr r0, =0x00ffffff
	ands r2, r0
	movs r0, 0xC0
	lsls r0, 19
	orrs r2, r0
	str r2, [sp]
	ldr r0, [sp, 0x4]
	ands r0, r5
	movs r1, 0x4
	orrs r0, r1
	ands r0, r4
	movs r1, 0x80
	lsls r1, 2
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0xAC
	lsls r1, 14
	orrs r0, r1
	str r0, [sp, 0x4]
	mov r0, sp
	movs r1, 0x1
	movs r2, 0xD
	bl CreateYesNoMenu
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DB18

	thumb_func_start sub_802DB8C
sub_802DB8C: @ 802DB8C
	push {r4,lr}
	sub sp, 0x10
	ldr r1, =gUnknown_082FE1DC
	add r0, sp, 0xC
	movs r2, 0x3
	bl memcpy
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	add r0, sp, 0xC
	str r0, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r0, =gText_SpacePoints2
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl AddTextPrinterParameterized3
	add r0, sp, 0xC
	str r0, [sp]
	str r4, [sp, 0x4]
	ldr r0, =gText_SpaceTimes3
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl AddTextPrinterParameterized3
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DB8C

	thumb_func_start sub_802DBF8
sub_802DBF8: @ 802DBF8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	bl sub_802C8AC
	lsls r0, 16
	lsrs r0, 16
	mov r10, r0
	ldr r1, =gUnknown_082FE260
	subs r0, 0x2
	lsls r0, 2
	adds r0, r1
	ldr r5, [r0]
	movs r6, 0
	cmp r6, r10
	bge _0802DC62
	ldr r0, =gMonFrontPicCoords
	mov r9, r0
	ldr r1, =gUnknown_02022D00
	mov r8, r1
_0802DC26:
	lsls r4, r6, 24
	lsrs r4, 24
	adds r0, r4, 0
	bl sub_802C8C8
	adds r1, r0, 0
	ldrh r0, [r1]
	lsls r0, 2
	add r0, r9
	ldrb r3, [r0, 0x1]
	mov r2, r8
	ldr r0, [r2]
	movs r7, 0
	ldrsh r2, [r5, r7]
	adds r3, 0x70
	str r4, [sp]
	bl sub_802C9D4
	mov r1, r8
	ldr r0, [r1]
	movs r2, 0
	ldrsh r1, [r5, r2]
	movs r2, 0x70
	adds r3, r4, 0
	bl sub_802CE48
	adds r5, 0x2
	adds r6, 0x1
	cmp r6, r10
	blt _0802DC26
_0802DC62:
	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 sub_802DBF8

	thumb_func_start sub_802DC80
sub_802DC80: @ 802DC80
	ldr r2, =gUnknown_02022D00
	ldr r2, [r2]
	lsls r0, 2
	ldr r3, =0x000081a8
	adds r2, r3
	adds r2, r0
	ldr r0, [r2]
	strh r1, [r0, 0x26]
	bx lr
	.pool
	thumb_func_end sub_802DC80

	thumb_func_start sub_802DC9C
sub_802DC9C: @ 802DC9C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	adds r1, r4, 0
	bl sub_802CF50
	ldr r0, =gUnknown_082FE1DF
	adds r4, r0
	ldrb r0, [r4]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 13
	movs r0, 0x2
	movs r2, 0
	bl ChangeBgY
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DC9C

	thumb_func_start sub_802DCCC
sub_802DCCC: @ 802DCCC
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r5, 0
	movs r6, 0
_0802DCD6:
	movs r0, 0x1
	ands r0, r4
	cmp r0, 0
	beq _0802DCEA
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	adds r1, r5, 0
	bl sub_802CB14
	adds r6, 0x1
_0802DCEA:
	lsrs r4, 1
	adds r5, 0x1
	cmp r5, 0x4
	ble _0802DCD6
	subs r0, r6, 0x2
	lsls r0, 24
	lsrs r0, 24
	bl sub_802E00C
	adds r0, r6, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802DCCC

	thumb_func_start sub_802DD08
sub_802DD08: @ 802DD08
	push {r4,lr}
	sub sp, 0x10
	mov r1, sp
	movs r0, 0x40
	strb r0, [r1]
	movs r0, 0x5
	strb r0, [r1, 0x1]
	movs r0, 0x8
	strb r0, [r1, 0x2]
	movs r0, 0x6C
	strh r0, [r1, 0x4]
	movs r4, 0x6
	strh r4, [r1, 0x6]
	ldr r0, =gUnknown_082FE1EC
	str r0, [sp, 0x8]
	ldr r0, =gUnknown_082FE1F4
	str r0, [sp, 0xC]
	movs r0, 0x2
	bl sub_8034C54
	movs r0, 0
	movs r1, 0
	mov r2, sp
	bl sub_8034D14
	mov r1, sp
	movs r0, 0x4
	strb r0, [r1, 0x1]
	movs r0, 0x1E
	strh r0, [r1, 0x4]
	mov r0, sp
	strh r4, [r0, 0x6]
	movs r0, 0x1
	movs r1, 0
	mov r2, sp
	bl sub_8034D14
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DD08

	thumb_func_start sub_802DD64
sub_802DD64: @ 802DD64
	push {lr}
	adds r1, r0, 0
	movs r0, 0
	bl sub_8035044
	pop {r0}
	bx r0
	thumb_func_end sub_802DD64

	thumb_func_start sub_802DD74
sub_802DD74: @ 802DD74
	push {lr}
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1
	bl sub_8035044
	pop {r0}
	bx r0
	thumb_func_end sub_802DD74

	thumb_func_start sub_802DD88
sub_802DD88: @ 802DD88
	push {lr}
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	bl sub_802CBF0
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DD88

	thumb_func_start sub_802DDA0
sub_802DDA0: @ 802DDA0
	push {lr}
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	bl sub_802CC88
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DDA0

	thumb_func_start sub_802DDB8
sub_802DDB8: @ 802DDB8
	push {lr}
	adds r1, r0, 0
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	bl sub_802CC18
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802DDB8

	thumb_func_start sub_802DDCC
sub_802DDCC: @ 802DDCC
	push {lr}
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	bl sub_802CCB0
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DDCC

	thumb_func_start sub_802DDE0
sub_802DDE0: @ 802DDE0
	push {lr}
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	bl sub_802CD3C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DDE0

	thumb_func_start sub_802DDF4
sub_802DDF4: @ 802DDF4
	push {lr}
	adds r1, r0, 0
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	bl sub_802CD70
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DDF4

	thumb_func_start sub_802DE08
sub_802DE08: @ 802DE08
	push {lr}
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	bl sub_802CD98
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802DE08

	thumb_func_start sub_802DE1C
sub_802DE1C: @ 802DE1C
	push {r4-r7,lr}
	sub sp, 0x8
	bl sub_802C8AC
	lsls r0, 16
	lsrs r7, r0, 16
	ldr r1, =gUnknown_082FE234
	subs r0, r7, 0x2
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	ldr r2, =0xffffff00
	ldr r0, [sp]
	ands r0, r2
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 20
	orrs r0, r1
	str r0, [sp]
	ldr r0, [sp, 0x4]
	ands r0, r2
	movs r1, 0x2
	orrs r0, r1
	ldr r1, =0xffff00ff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 2
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0xAC
	lsls r1, 14
	orrs r0, r1
	str r0, [sp, 0x4]
	movs r5, 0
	cmp r5, r7
	bge _0802DEAC
	mov r6, sp
_0802DE6A:
	ldrb r0, [r4]
	lsls r0, 8
	ldr r2, =0xffff00ff
	ldr r1, [sp]
	ands r1, r2
	orrs r1, r0
	str r1, [sp]
	ldrb r2, [r4, 0x2]
	lsls r2, 16
	ldr r0, =0xff00ffff
	ands r0, r1
	orrs r0, r2
	str r0, [sp]
	mov r0, sp
	bl AddWindow
	ldr r1, =gUnknown_02022D00
	ldr r1, [r1]
	lsls r2, r5, 1
	adds r1, 0x1C
	adds r1, r2
	strh r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	bl ClearWindowTilemap
	ldrh r0, [r6, 0x6]
	adds r0, 0x10
	strh r0, [r6, 0x6]
	adds r4, 0x4
	adds r5, 0x1
	cmp r5, r7
	blt _0802DE6A
_0802DEAC:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DE1C

	thumb_func_start sub_802DED8
sub_802DED8: @ 802DED8
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x10
	adds r5, r0, 0
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	add r0, sp, 0xC
	strb r1, [r0]
	strb r2, [r0, 0x1]
	strb r3, [r0, 0x2]
	ldr r6, =gUnknown_02022D00
	ldr r0, [r6]
	lsls r1, r5, 1
	mov r8, r1
	adds r0, 0x1C
	add r0, r8
	ldrb r0, [r0]
	movs r1, 0
	bl FillWindowPixelBuffer
	lsls r5, 24
	lsrs r5, 24
	adds r0, r5, 0
	bl sub_802C8E8
	adds r1, r0, 0
	movs r2, 0x1
	negs r2, r2
	mov r9, r2
	movs r0, 0x1
	bl GetStringWidth
	movs r4, 0x40
	subs r4, r0
	lsrs r4, 1
	adds r0, r5, 0
	bl sub_802C8E8
	adds r1, r0, 0
	ldr r0, [r6]
	adds r0, 0x1C
	add r0, r8
	ldrb r0, [r0]
	lsls r4, 24
	lsrs r4, 24
	add r2, sp, 0xC
	str r2, [sp]
	mov r2, r9
	str r2, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x1
	bl AddTextPrinterParameterized3
	ldr r0, [r6]
	adds r0, 0x1C
	add r0, r8
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DED8

	thumb_func_start sub_802DF70
sub_802DF70: @ 802DF70
	push {r4-r6,lr}
	adds r4, r0, 0
	bl sub_802C8AC
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r4, 0
	bne _0802DF9A
	movs r4, 0
	cmp r4, r5
	bge _0802DFCC
_0802DF86:
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x2
	movs r3, 0x3
	bl sub_802DED8
	adds r4, 0x1
	cmp r4, r5
	blt _0802DF86
	b _0802DFCC
_0802DF9A:
	bl sub_802C8BC
	lsls r0, 16
	lsrs r6, r0, 16
	movs r4, 0
	cmp r4, r5
	bge _0802DFCC
_0802DFA8:
	cmp r6, r4
	beq _0802DFBA
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x2
	movs r3, 0x3
	bl sub_802DED8
	b _0802DFC6
_0802DFBA:
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x4
	movs r3, 0x5
	bl sub_802DED8
_0802DFC6:
	adds r4, 0x1
	cmp r4, r5
	blt _0802DFA8
_0802DFCC:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_802DF70

	thumb_func_start sub_802DFD4
sub_802DFD4: @ 802DFD4
	push {r4,r5,lr}
	bl sub_802C8AC
	lsls r0, 16
	lsrs r5, r0, 16
	movs r4, 0
	cmp r4, r5
	bge _0802DFFA
_0802DFE4:
	ldr r0, =gUnknown_02022D00
	ldr r0, [r0]
	lsls r1, r4, 1
	adds r0, 0x1C
	adds r0, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
	adds r4, 0x1
	cmp r4, r5
	blt _0802DFE4
_0802DFFA:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802DFD4

	thumb_func_start sub_802E00C
sub_802E00C: @ 802E00C
	push {r4,lr}
	adds r1, r0, 0
	lsls r1, 24
	lsrs r4, r1, 24
	ldr r0, =gUnknown_02022D00
	ldr r2, [r0]
	movs r0, 0
	str r0, [r2, 0x18]
	lsrs r1, 25
	lsls r1, 16
	movs r0, 0x1
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	ands r4, r0
	lsls r4, 8
	subs r4, 0x28
	lsls r4, 8
	adds r1, r4, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	bl ShowBg
	ldr r0, =sub_802E090
	movs r1, 0x4
	bl CreateTask
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E00C

	thumb_func_start sub_802E058
sub_802E058: @ 802E058
	push {r4,lr}
	ldr r4, =gUnknown_02022D00
	ldr r0, [r4]
	ldr r0, [r0, 0x18]
	cmp r0, 0x1F
	bls _0802E06C
	movs r0, 0
	b _0802E08A
	.pool
_0802E06C:
	movs r0, 0x1
	movs r1, 0x80
	movs r2, 0x1
	bl ChangeBgY
	ldr r1, [r4]
	ldr r0, [r1, 0x18]
	adds r0, 0x1
	str r0, [r1, 0x18]
	cmp r0, 0x1F
	bls _0802E088
	movs r0, 0x1
	bl HideBg
_0802E088:
	movs r0, 0x1
_0802E08A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802E058

	thumb_func_start sub_802E090
sub_802E090: @ 802E090
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_802E058
	cmp r0, 0
	bne _0802E0A4
	adds r0, r4, 0
	bl DestroyTask
_0802E0A4:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_802E090

	thumb_func_start sub_802E0AC
sub_802E0AC: @ 802E0AC
	push {lr}
	sub sp, 0xC
	mov r2, sp
	movs r1, 0x1
	strb r1, [r2]
	ldrh r1, [r0]
	strh r1, [r2, 0x2]
	ldr r1, [r0, 0x4]
	str r1, [sp, 0x8]
	ldr r0, [r0, 0x8]
	str r0, [sp, 0x4]
	mov r0, sp
	bl sub_800FE50
	add sp, 0xC
	pop {r0}
	bx r0
	thumb_func_end sub_802E0AC

	thumb_func_start sub_802E0D0
sub_802E0D0: @ 802E0D0
	push {r4,lr}
	sub sp, 0xC
	adds r4, r1, 0
	ldr r3, =gRecvCmds
	lsls r2, r0, 4
	adds r0, r2, r3
	ldrh r1, [r0]
	movs r0, 0xFF
	lsls r0, 8
	ands r0, r1
	movs r1, 0xBC
	lsls r1, 6
	cmp r0, r1
	bne _0802E100
	adds r1, r3, 0x2
	adds r1, r2, r1
	mov r0, sp
	movs r2, 0xC
	bl memcpy
	mov r0, sp
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _0802E108
_0802E100:
	movs r0, 0
	b _0802E118
	.pool
_0802E108:
	mov r0, sp
	ldrh r0, [r0, 0x2]
	strh r0, [r4]
	ldr r0, [sp, 0x8]
	str r0, [r4, 0x4]
	ldr r0, [sp, 0x4]
	str r0, [r4, 0x8]
	movs r0, 0x1
_0802E118:
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802E0D0

	thumb_func_start sub_802E120
sub_802E120: @ 802E120
	push {lr}
	sub sp, 0xC
	mov r2, sp
	movs r1, 0x2
	strb r1, [r2]
	str r0, [sp, 0x4]
	mov r0, sp
	bl sub_800FE50
	add sp, 0xC
	pop {r0}
	bx r0
	thumb_func_end sub_802E120

	thumb_func_start sub_802E138
sub_802E138: @ 802E138
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0xC
	mov r3, sp
	movs r2, 0x3
	strb r2, [r3]
	ldr r3, [r1, 0x8]
	lsls r3, 15
	ldr r2, [sp, 0x8]
	ldr r4, =0x00007fff
	mov r8, r4
	ands r2, r4
	orrs r2, r3
	str r2, [sp, 0x8]
	mov r6, sp
	ldrb r2, [r1, 0x1]
	movs r5, 0x1F
	adds r3, r5, 0
	ands r3, r2
	ldrb r4, [r6, 0x3]
	movs r2, 0x20
	negs r2, r2
	ands r2, r4
	orrs r2, r3
	strb r2, [r6, 0x3]
	mov r3, sp
	ldrb r2, [r1]
	strb r2, [r3, 0x1]
	ldrh r2, [r1, 0x2]
	strh r2, [r3, 0x6]
	mov r4, sp
	ldrh r2, [r1, 0x4]
	mov r1, r8
	ands r2, r1
	ldrh r3, [r4, 0x8]
	ldr r1, =0xffff8000
	ands r1, r3
	orrs r1, r2
	strh r1, [r4, 0x8]
	mov r2, sp
	ldrh r1, [r0, 0x10]
	strb r1, [r2, 0x2]
	mov r3, sp
	ldr r1, [r0, 0x14]
	lsls r1, 5
	ldrb r2, [r3, 0x3]
	ands r5, r2
	orrs r5, r1
	strb r5, [r3, 0x3]
	mov r1, sp
	ldrh r0, [r0, 0xE]
	strh r0, [r1, 0x4]
	mov r0, sp
	bl sub_800FE50
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E138

	thumb_func_start sub_802E1BC
sub_802E1BC: @ 802E1BC
	push {r4,r5,lr}
	sub sp, 0xC
	adds r5, r0, 0
	adds r4, r1, 0
	ldr r2, =gRecvCmds
	ldrh r0, [r2]
	movs r1, 0xFF
	lsls r1, 8
	ands r1, r0
	movs r0, 0xBC
	lsls r0, 6
	cmp r1, r0
	bne _0802E228
	adds r1, r2, 0x2
	mov r0, sp
	movs r2, 0xC
	bl memcpy
	mov r0, sp
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _0802E228
	ldr r0, [sp, 0x8]
	lsrs r0, 15
	str r0, [r4, 0x8]
	mov r0, sp
	ldrb r1, [r0, 0x3]
	lsls r0, r1, 27
	lsrs r0, 27
	strb r0, [r4, 0x1]
	mov r0, sp
	ldrb r0, [r0, 0x1]
	strb r0, [r4]
	mov r0, sp
	ldrh r0, [r0, 0x6]
	strh r0, [r4, 0x2]
	mov r0, sp
	ldrh r0, [r0, 0x8]
	lsls r0, 17
	lsrs r0, 17
	strh r0, [r4, 0x4]
	mov r0, sp
	ldrb r0, [r0, 0x2]
	strh r0, [r5, 0x10]
	lsls r1, 24
	lsrs r1, 29
	str r1, [r5, 0x14]
	mov r0, sp
	ldrh r0, [r0, 0x4]
	strh r0, [r5, 0xE]
	movs r0, 0x1
	b _0802E22A
	.pool
_0802E228:
	movs r0, 0
_0802E22A:
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_802E1BC

	thumb_func_start sub_802E234
sub_802E234: @ 802E234
	push {r4,lr}
	sub sp, 0xC
	mov r4, sp
	movs r3, 0x4
	strb r3, [r4]
	ldrh r3, [r0, 0x10]
	strb r3, [r4, 0x1]
	ldr r3, [r0, 0x14]
	strb r3, [r4, 0x2]
	ldr r3, [r0, 0x18]
	strb r3, [r4, 0x3]
	mov r3, sp
	ldrh r0, [r0, 0xE]
	strh r0, [r3, 0x4]
	mov r0, sp
	strb r1, [r0, 0x6]
	strh r2, [r0, 0x8]
	bl sub_800FE50
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_802E234

	thumb_func_start sub_802E264
sub_802E264: @ 802E264
	push {r4-r6,lr}
	sub sp, 0xC
	adds r4, r0, 0
	adds r5, r2, 0
	adds r6, r3, 0
	ldr r3, =gRecvCmds
	lsls r2, r1, 4
	adds r0, r2, r3
	ldrh r1, [r0]
	movs r0, 0xFF
	lsls r0, 8
	ands r0, r1
	movs r1, 0xBC
	lsls r1, 6
	cmp r0, r1
	bne _0802E2C4
	adds r1, r3, 0x2
	adds r1, r2, r1
	mov r0, sp
	movs r2, 0xC
	bl memcpy
	mov r0, sp
	ldrb r0, [r0]
	cmp r0, 0x4
	bne _0802E2C4
	mov r0, sp
	ldrb r0, [r0, 0x1]
	strh r0, [r4, 0x10]
	mov r0, sp
	ldrb r0, [r0, 0x2]
	str r0, [r4, 0x14]
	mov r0, sp
	ldrb r0, [r0, 0x3]
	str r0, [r4, 0x18]
	mov r0, sp
	ldrh r0, [r0, 0x4]
	strh r0, [r4, 0xE]
	mov r0, sp
	ldrb r0, [r0, 0x6]
	strb r0, [r5]
	mov r0, sp
	ldrh r0, [r0, 0x8]
	strh r0, [r6]
	movs r0, 0x1
	b _0802E2C6
	.pool
_0802E2C4:
	movs r0, 0
_0802E2C6:
	add sp, 0xC
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_802E264

	thumb_func_start sub_802E2D0
sub_802E2D0: @ 802E2D0
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	ldr r3, =gRecvCmds
	lsls r2, r1, 4
	adds r0, r2, r3
	ldrh r1, [r0]
	movs r0, 0xFF
	lsls r0, 8
	ands r0, r1
	movs r1, 0xBC
	lsls r1, 6
	cmp r0, r1
	bne _0802E320
	adds r1, r3, 0x2
	adds r1, r2, r1
	mov r0, sp
	movs r2, 0xC
	bl memcpy
	mov r0, sp
	ldrb r0, [r0]
	cmp r0, 0x4
	bne _0802E320
	mov r0, sp
	ldrb r0, [r0, 0x1]
	strh r0, [r4, 0x10]
	mov r0, sp
	ldrb r0, [r0, 0x2]
	str r0, [r4, 0x14]
	mov r0, sp
	ldrb r0, [r0, 0x3]
	str r0, [r4, 0x18]
	mov r0, sp
	ldrh r0, [r0, 0x4]
	strh r0, [r4, 0xE]
	movs r0, 0x1
	b _0802E322
	.pool
_0802E320:
	movs r0, 0
_0802E322:
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802E2D0

	thumb_func_start sub_802E32C
sub_802E32C: @ 802E32C
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xFE
	lsls r1, 1
	adds r0, r1
	bx lr
	.pool
	thumb_func_end sub_802E32C

	thumb_func_start ResetPokeJumpResults
ResetPokeJumpResults: @ 802E33C
	push {lr}
	bl sub_802E32C
	movs r1, 0
	strh r1, [r0]
	str r1, [r0, 0xC]
	strh r1, [r0, 0x4]
	strh r1, [r0, 0x6]
	str r1, [r0, 0x8]
	strh r1, [r0, 0x2]
	pop {r0}
	bx r0
	thumb_func_end ResetPokeJumpResults

	thumb_func_start sub_802E354
sub_802E354: @ 802E354
	push {r4-r6,lr}
	adds r4, r0, 0
	lsls r1, 16
	lsrs r5, r1, 16
	lsls r2, 16
	lsrs r6, r2, 16
	bl sub_802E32C
	adds r1, r0, 0
	movs r2, 0
	ldr r0, [r1, 0xC]
	cmp r0, r4
	bcs _0802E378
	ldr r0, =0x00018696
	cmp r4, r0
	bhi _0802E378
	str r4, [r1, 0xC]
	movs r2, 0x1
_0802E378:
	ldrh r0, [r1]
	cmp r0, r5
	bcs _0802E388
	ldr r0, =0x0000270f
	cmp r5, r0
	bhi _0802E388
	strh r5, [r1]
	movs r2, 0x1
_0802E388:
	ldrh r0, [r1, 0x4]
	cmp r0, r6
	bcs _0802E398
	ldr r0, =0x0000270f
	cmp r6, r0
	bhi _0802E398
	strh r6, [r1, 0x4]
	movs r2, 0x1
_0802E398:
	adds r0, r2, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802E354

	thumb_func_start sub_802E3A8
sub_802E3A8: @ 802E3A8
	push {lr}
	bl sub_802E32C
	adds r2, r0, 0
	ldrh r1, [r2, 0x6]
	ldr r0, =0x0000270e
	cmp r1, r0
	bhi _0802E3BC
	adds r0, r1, 0x1
	strh r0, [r2, 0x6]
_0802E3BC:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E3A8

	thumb_func_start sub_802E3C4
sub_802E3C4: @ 802E3C4
	push {r4,lr}
	ldr r4, =sub_802E3E4
	adds r0, r4, 0
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	bl _call_via_r4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E3C4

	thumb_func_start sub_802E3E4
sub_802E3E4: @ 802E3E4
	push {r4-r7,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r7, r0, r1
	movs r1, 0
	ldrsh r0, [r7, r1]
	cmp r0, 0x1
	beq _0802E4A8
	cmp r0, 0x1
	bgt _0802E40C
	cmp r0, 0
	beq _0802E416
	b _0802E4F6
	.pool
_0802E40C:
	cmp r0, 0x2
	beq _0802E4B4
	cmp r0, 0x3
	beq _0802E4DC
	b _0802E4F6
_0802E416:
	ldr r0, =gUnknown_082FE270
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp]
	str r1, [sp, 0x4]
	ldr r1, =gText_PkmnJumpRecords
	movs r0, 0x1
	movs r2, 0
	bl GetStringWidth
	adds r4, r0, 0
	movs r6, 0
	ldr r5, =gUnknown_082FE278
_0802E430:
	ldr r1, [r5]
	movs r0, 0x1
	movs r2, 0
	bl GetStringWidth
	adds r0, 0x26
	cmp r0, r4
	ble _0802E442
	adds r4, r0, 0
_0802E442:
	adds r5, 0x4
	adds r6, 0x1
	cmp r6, 0x2
	bls _0802E430
	adds r0, r4, 0x7
	cmp r0, 0
	bge _0802E452
	adds r0, 0x7
_0802E452:
	asrs r4, r0, 3
	movs r0, 0x1
	ands r0, r4
	cmp r0, 0
	beq _0802E45E
	adds r4, 0x1
_0802E45E:
	movs r1, 0x1E
	subs r1, r4
	lsrs r0, r1, 31
	adds r1, r0
	asrs r1, 1
	lsls r1, 24
	lsrs r1, 16
	ldr r2, =0xffff00ff
	ldr r0, [sp]
	ands r0, r2
	orrs r0, r1
	lsls r2, r4, 24
	ldr r1, =0x00ffffff
	ands r0, r1
	orrs r0, r2
	str r0, [sp]
	mov r0, sp
	bl AddWindow
	strh r0, [r7, 0x2]
	ldrh r0, [r7, 0x2]
	adds r1, r4, 0
	bl sub_802E500
	ldrb r0, [r7, 0x2]
	movs r1, 0x3
	b _0802E4CA
	.pool
_0802E4A8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802E4F6
	b _0802E4CE
_0802E4B4:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _0802E4F6
	ldrb r0, [r7, 0x2]
	bl rbox_fill_rectangle
	ldrb r0, [r7, 0x2]
	movs r1, 0x1
_0802E4CA:
	bl CopyWindowToVram
_0802E4CE:
	ldrh r0, [r7]
	adds r0, 0x1
	strh r0, [r7]
	b _0802E4F6
	.pool
_0802E4DC:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0802E4F6
	ldrb r0, [r7, 0x2]
	bl RemoveWindow
	adds r0, r4, 0
	bl DestroyTask
	bl EnableBothScriptContexts
_0802E4F6:
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_802E3E4

	thumb_func_start sub_802E500
sub_802E500: @ 802E500
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x24
	str r1, [sp, 0x1C]
	lsls r0, 16
	lsrs r0, 16
	str r0, [sp, 0x18]
	bl sub_802E32C
	ldrh r1, [r0]
	str r1, [sp, 0xC]
	ldr r1, [r0, 0xC]
	str r1, [sp, 0x10]
	ldrh r0, [r0, 0x4]
	str r0, [sp, 0x14]
	ldr r0, [sp, 0x18]
	lsls r4, r0, 24
	lsrs r4, 24
	ldr r5, =0x0000021d
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0xD0
	bl LoadUserWindowBorderGfx_
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0xD
	bl sub_8098858
	adds r0, r4, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r5, =gText_PkmnJumpRecords
	ldr r1, [sp, 0x1C]
	lsls r2, r1, 3
	movs r0, 0x1
	adds r1, r5, 0
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl AddTextPrinterParameterized
	movs r6, 0
	adds r7, r4, 0
	movs r0, 0xFF
	mov r10, r0
	mov r9, r6
	mov r1, sp
	adds r1, 0xC
	str r1, [sp, 0x20]
	movs r0, 0xC8
	lsls r0, 21
	mov r8, r0
	ldr r5, =gStringVar1
_0802E58A:
	ldr r1, =gUnknown_082FE278
	lsls r0, r6, 2
	adds r0, r1
	ldr r2, [r0]
	mov r1, r8
	lsrs r4, r1, 24
	str r4, [sp]
	mov r0, r10
	str r0, [sp, 0x4]
	mov r1, r9
	str r1, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r0, [sp, 0x20]
	ldm r0!, {r1}
	str r0, [sp, 0x20]
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	adds r0, r5, 0
	bl sub_802E620
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0
	bl GetStringWidth
	ldr r1, [sp, 0x1C]
	lsls r3, r1, 3
	subs r3, r0
	lsls r3, 24
	lsrs r3, 24
	str r4, [sp]
	mov r0, r10
	str r0, [sp, 0x4]
	mov r1, r9
	str r1, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl AddTextPrinterParameterized
	movs r0, 0x80
	lsls r0, 21
	add r8, r0
	adds r6, 0x1
	ldr r1, [sp, 0x18]
	lsls r0, r1, 24
	cmp r6, 0x2
	bls _0802E58A
	lsrs r0, 24
	bl PutWindowTilemap
	add sp, 0x24
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E500

	thumb_func_start sub_802E620
sub_802E620: @ 802E620
	push {lr}
	adds r1, r0, 0
	b _0802E628
_0802E626:
	adds r1, 0x1
_0802E628:
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _0802E636
	cmp r0, 0
	bne _0802E626
	movs r0, 0xFF
	strb r0, [r1]
_0802E636:
	pop {r0}
	bx r0
	thumb_func_end sub_802E620

	thumb_func_start sub_802E63C
sub_802E63C: @ 802E63C
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r0, =sub_802E6D0
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks
	adds r0, r1
	movs r1, 0x1
	strh r1, [r0, 0x8]
	strh r5, [r0, 0xA]
	ldr r0, =gUnknown_082FE748
	lsls r5, 4
	adds r5, r0
	ldr r1, [r5]
	adds r0, r4, 0
	bl _call_via_r1
	adds r0, r4, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802E63C

	thumb_func_start sub_802E688
sub_802E688: @ 802E688
	push {lr}
	ldr r0, =sub_802E6D0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	beq _0802E6B4
	ldr r0, =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	movs r0, 0x2
	strh r0, [r1, 0x8]
	movs r0, 0x1
	b _0802E6B6
	.pool
_0802E6B4:
	movs r0, 0
_0802E6B6:
	pop {r1}
	bx r1
	thumb_func_end sub_802E688

	thumb_func_start sub_802E6BC
sub_802E6BC: @ 802E6BC
	push {lr}
	ldr r0, =sub_802E6D0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802E6BC

	thumb_func_start sub_802E6D0
sub_802E6D0: @ 802E6D0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0x3
	beq _0802E71C
	cmp r0, 0x3
	bgt _0802E6F8
	cmp r0, 0x2
	beq _0802E6FE
	b _0802E752
	.pool
_0802E6F8:
	cmp r0, 0x4
	beq _0802E738
	b _0802E752
_0802E6FE:
	ldr r1, =gUnknown_082FE748
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	lsls r0, 4
	adds r1, 0x8
	adds r0, r1
	ldr r1, [r0]
	adds r0, r5, 0
	bl _call_via_r1
	movs r0, 0x3
	strh r0, [r4]
	b _0802E752
	.pool
_0802E71C:
	ldr r0, =gUnknown_082FE748
	movs r2, 0x2
	ldrsh r1, [r4, r2]
	lsls r1, 4
	adds r0, 0xC
	adds r1, r0
	ldr r1, [r1]
	adds r0, r5, 0
	bl _call_via_r1
	b _0802E752
	.pool
_0802E738:
	ldr r0, =gUnknown_082FE748
	movs r2, 0x2
	ldrsh r1, [r4, r2]
	lsls r1, 4
	adds r0, 0x4
	adds r1, r0
	ldr r1, [r1]
	adds r0, r5, 0
	bl _call_via_r1
	adds r0, r5, 0
	bl DestroyTask
_0802E752:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E6D0

	thumb_func_start sub_802E75C
sub_802E75C: @ 802E75C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	movs r1, 0x6
	ldrsh r0, [r4, r1]
	lsls r0, 3
	ldr r1, =gUnknown_082FE6C8
	adds r0, r1
	bl LoadCompressedSpriteSheet
	movs r2, 0x8
	ldrsh r0, [r4, r2]
	lsls r0, 3
	ldr r1, =gUnknown_082FE6D8
	adds r0, r1
	bl LoadSpritePalette
	movs r5, 0
	movs r3, 0x10
	ldrsh r0, [r4, r3]
	cmp r5, r0
	bge _0802E7C4
_0802E790:
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	ldr r1, =gUnknown_082FE730
	adds r0, r1
	movs r2, 0x12
	ldrsh r1, [r4, r2]
	movs r3, 0x14
	ldrsh r2, [r4, r3]
	ldrb r3, [r4, 0xE]
	bl CreateSprite
	lsls r1, r5, 1
	adds r1, r4
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1, 0x1A]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	cmp r5, r0
	blt _0802E790
_0802E7C4:
	movs r5, 0
	movs r2, 0x10
	ldrsh r0, [r4, r2]
	cmp r5, r0
	bge _0802E820
	movs r7, 0x3
	movs r3, 0xD
	negs r3, r3
	mov r12, r3
	ldr r6, =gSprites
_0802E7D8:
	lsls r0, r5, 1
	adds r0, r4
	movs r1, 0x1A
	ldrsh r0, [r0, r1]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r6
	ldrb r1, [r4, 0xC]
	ands r1, r7
	lsls r1, 2
	ldrb r3, [r2, 0x5]
	mov r0, r12
	ands r0, r3
	orrs r0, r1
	strb r0, [r2, 0x5]
	adds r3, r2, 0
	adds r3, 0x3E
	ldrb r0, [r3]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r3]
	ldrh r0, [r4, 0xA]
	strh r0, [r2, 0x30]
	mov r3, r8
	strh r3, [r2, 0x34]
	strh r5, [r2, 0x36]
	ldrh r0, [r4, 0x1A]
	strh r0, [r2, 0x38]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	cmp r5, r0
	blt _0802E7D8
_0802E820:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E75C

	thumb_func_start sub_802E83C
sub_802E83C: @ 802E83C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r1, =gTasks + 0x8
	adds r4, r1
	movs r5, 0
	strh r5, [r4, 0x4]
	strh r5, [r4, 0x6]
	strh r5, [r4, 0x8]
	movs r1, 0x3C
	strh r1, [r4, 0xA]
	strh r5, [r4, 0xC]
	strh r5, [r4, 0xE]
	movs r1, 0x3
	strh r1, [r4, 0x10]
	movs r1, 0x78
	strh r1, [r4, 0x12]
	movs r1, 0x58
	strh r1, [r4, 0x14]
	adds r1, r4, 0
	bl sub_802E75C
	movs r0, 0x1C
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r5, =gSprites
	adds r0, r5
	movs r1, 0x4
	bl StartSpriteAnim
	movs r0, 0x1C
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldr r1, =0x0000ffe0
	strh r1, [r0, 0x24]
	movs r0, 0x1E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	movs r1, 0x5
	bl StartSpriteAnim
	movs r0, 0x1E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	movs r1, 0x20
	strh r1, [r0, 0x24]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E83C

	thumb_func_start sub_802E8C8
sub_802E8C8: @ 802E8C8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	movs r5, 0
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r4, r1, r0
	b _0802E8FC
	.pool
_0802E8E0:
	lsls r0, r5, 1
	adds r0, r4
	movs r2, 0x1A
	ldrsh r1, [r0, r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySprite
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_0802E8FC:
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	cmp r5, r0
	blt _0802E8E0
	ldr r1, =gUnknown_082FE6C8
	movs r2, 0x6
	ldrsh r0, [r4, r2]
	lsls r0, 3
	adds r0, r1
	ldrh r0, [r0, 0x6]
	bl FreeSpriteTilesByTag
	ldr r1, =gUnknown_082FE6D8
	movs r2, 0x8
	ldrsh r0, [r4, r2]
	lsls r0, 3
	adds r0, r1
	ldrh r0, [r0, 0x4]
	bl FreeSpritePaletteByTag
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802E8C8

	thumb_func_start sub_802E938
sub_802E938: @ 802E938
	push {r4-r6,lr}
	adds r6, r0, 0
	movs r0, 0x34
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r5, r0, r1
	movs r1, 0x16
	ldrsh r0, [r5, r1]
	movs r2, 0xA
	ldrsh r1, [r5, r2]
	bl __modsi3
	cmp r0, 0
	bne _0802EA4A
	ldrh r2, [r5, 0x16]
	movs r3, 0x16
	ldrsh r1, [r5, r3]
	movs r3, 0x14
	ldrsh r0, [r5, r3]
	cmp r1, r0
	beq _0802EA4A
	strh r2, [r5, 0x14]
	movs r1, 0x32
	ldrsh r0, [r6, r1]
	cmp r0, 0x4
	bhi _0802EA44
	lsls r0, 2
	ldr r1, =_0802E984
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802E984:
	.4byte _0802E998
	.4byte _0802E9A6
	.4byte _0802E9A6
	.4byte _0802E9BA
	.4byte _0802EA04
_0802E998:
	adds r2, r6, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
_0802E9A6:
	movs r0, 0x38
	bl PlaySE
	ldrh r1, [r6, 0x32]
	lsls r1, 24
	lsrs r1, 24
	adds r0, r6, 0
	bl StartSpriteAnim
	b _0802EA44
_0802E9BA:
	movs r0, 0x15
	bl PlaySE
	ldrh r1, [r6, 0x32]
	lsls r1, 24
	lsrs r1, 24
	adds r0, r6, 0
	bl StartSpriteAnim
	ldr r4, =gSprites
	movs r2, 0x1C
	ldrsh r0, [r5, r2]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	adds r1, 0x3E
	ldrb r3, [r1]
	movs r2, 0x5
	negs r2, r2
	adds r0, r2, 0
	ands r0, r3
	strb r0, [r1]
	movs r3, 0x1E
	ldrsh r1, [r5, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r1, [r0]
	ands r2, r1
	strb r2, [r0]
	b _0802EA44
	.pool
_0802EA04:
	adds r1, r6, 0
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1]
	ldr r3, =gSprites
	movs r0, 0x1C
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	movs r0, 0x1E
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	movs r0, 0x4
	strh r0, [r5]
	b _0802EA4A
	.pool
_0802EA44:
	ldrh r0, [r6, 0x32]
	adds r0, 0x1
	strh r0, [r6, 0x32]
_0802EA4A:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_802E938

	thumb_func_start sub_802EA50
sub_802EA50: @ 802EA50
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r5, =gTasks + 0x8
	adds r6, r4, r5
	movs r0, 0x38
	bl PlaySE
	ldr r2, =gSprites
	movs r0, 0x1A
	ldrsh r1, [r6, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r2, 0
	adds r1, 0x1C
	adds r0, r1
	ldr r1, =sub_802E938
	str r1, [r0]
	movs r0, 0x1A
	ldrsh r1, [r6, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r2, [r0]
	movs r1, 0x5
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	subs r5, 0x8
	adds r4, r5
	movs r0, 0x3
	strh r0, [r4, 0x8]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802EA50

	thumb_func_start sub_802EAB0
sub_802EAB0: @ 802EAB0
	push {r4,r5,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r4, r1, r0
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	beq _0802EB14
	ldr r1, =gRecvCmds
	ldrh r0, [r1, 0x2]
	ldr r5, =0x00007fff
	cmp r0, r5
	bne _0802EAD8
	ldrh r0, [r1, 0x4]
	strh r0, [r4, 0x16]
_0802EAD8:
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _0802EB1A
	ldrh r0, [r4, 0x18]
	adds r0, 0x1
	strh r0, [r4, 0x18]
	mov r0, sp
	movs r1, 0
	movs r2, 0xC
	bl memset
	mov r0, sp
	strh r5, [r0]
	mov r1, sp
	ldrh r0, [r4, 0x18]
	strh r0, [r1, 0x2]
	mov r0, sp
	bl sub_800FE50
	b _0802EB1A
	.pool
_0802EB14:
	ldrh r0, [r4, 0x16]
	adds r0, 0x1
	strh r0, [r4, 0x16]
_0802EB1A:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_802EAB0

	thumb_func_start sub_802EB24
sub_802EB24: @ 802EB24
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x4
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r0, [sp, 0x18]
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 16
	lsrs r5, 16
	lsls r6, 16
	lsrs r6, 16
	lsls r3, 16
	lsrs r3, 16
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r0, =sub_802EB98
	movs r1, 0x50
	str r3, [sp]
	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, 0xC]
	strh r5, [r1, 0xE]
	strh r6, [r1, 0x10]
	ldr r3, [sp]
	strh r3, [r1, 0x12]
	mov r0, r8
	strh r0, [r1, 0x14]
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802EB24

	thumb_func_start sub_802EB84
sub_802EB84: @ 802EB84
	push {lr}
	ldr r0, =sub_802EB98
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802EB84

	thumb_func_start sub_802EB98
sub_802EB98: @ 802EB98
	push {r4-r6,lr}
	sub sp, 0xC
	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
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0x1
	beq _0802EC08
	cmp r0, 0x1
	bgt _0802EBC0
	cmp r0, 0
	beq _0802EBC6
	b _0802EC8A
	.pool
_0802EBC0:
	cmp r0, 0x2
	beq _0802EC4C
	b _0802EC8A
_0802EBC6:
	ldrh r0, [r5, 0x4]
	ldrh r1, [r5, 0x6]
	bl sub_802EF50
	ldrh r0, [r5, 0x4]
	ldrh r1, [r5, 0x6]
	movs r3, 0x8
	ldrsh r2, [r5, r3]
	movs r4, 0xA
	ldrsh r3, [r5, r4]
	ldrb r4, [r5, 0xC]
	str r4, [sp]
	bl sub_802EFA8
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0xE]
	ldrh r0, [r5, 0x4]
	ldrh r1, [r5, 0x6]
	movs r3, 0x8
	ldrsh r2, [r5, r3]
	movs r4, 0xA
	ldrsh r3, [r5, r4]
	ldrb r4, [r5, 0xC]
	str r4, [sp]
	adds r4, r5, 0
	adds r4, 0x10
	str r4, [sp, 0x4]
	adds r4, 0x2
	str r4, [sp, 0x8]
	bl sub_802EFFC
	b _0802EC3E
_0802EC08:
	ldrb r0, [r5, 0xE]
	bl sub_802EC98
	cmp r0, 0
	bne _0802EC8A
	ldrb r0, [r5, 0xE]
	ldrb r1, [r5, 0x10]
	ldrb r2, [r5, 0x12]
	bl sub_802EDCC
	movs r0, 0xE
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r4, =gSprites
	adds r0, r4
	bl FreeSpriteOamMatrix
	movs r3, 0xE
	ldrsh r1, [r5, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	bl DestroySprite
_0802EC3E:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	b _0802EC8A
	.pool
_0802EC4C:
	ldrb r0, [r5, 0x10]
	bl sub_802EE30
	cmp r0, 0
	bne _0802EC8A
	movs r4, 0x10
	ldrsh r1, [r5, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r4, =gSprites
	adds r0, r4
	bl DestroySprite
	movs r0, 0x12
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	bl DestroySprite
	ldrh r0, [r5, 0x4]
	bl FreeSpriteTilesByTag
	ldrh r0, [r5, 0x6]
	bl FreeSpritePaletteByTag
	adds r0, r6, 0
	bl DestroyTask
_0802EC8A:
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802EB98

	thumb_func_start sub_802EC98
sub_802EC98: @ 802EC98
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r4, r1, r0
	movs r1, 0x2E
	ldrsh r0, [r4, r1]
	cmp r0, 0x7
	bls _0802ECB2
	b _0802EDC4
_0802ECB2:
	lsls r0, 2
	ldr r1, =_0802ECC4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802ECC4:
	.4byte _0802ECE4
	.4byte _0802ECF6
	.4byte _0802ED1C
	.4byte _0802ED2C
	.4byte _0802ED4E
	.4byte _0802ED86
	.4byte _0802EDAC
	.4byte _0802ED82
_0802ECE4:
	movs r1, 0x80
	lsls r1, 4
	adds r0, r4, 0
	movs r2, 0x1A
	bl sub_8007E18
	ldrh r0, [r4, 0x2E]
	adds r0, 0x1
	strh r0, [r4, 0x2E]
_0802ECF6:
	movs r2, 0x32
	ldrsh r0, [r4, r2]
	cmp r0, 0
	bne _0802ED04
	movs r0, 0x39
	bl PlaySE
_0802ED04:
	ldrh r0, [r4, 0x32]
	adds r0, 0x1
	strh r0, [r4, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x13
	ble _0802EDC4
	movs r0, 0
	strh r0, [r4, 0x32]
	adds r0, r4, 0
	movs r1, 0x1
	b _0802EDA2
_0802ED1C:
	adds r0, r4, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _0802EDC4
	b _0802EDA6
_0802ED2C:
	ldrh r0, [r4, 0x32]
	adds r0, 0x1
	strh r0, [r4, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3
	ble _0802EDC4
	movs r0, 0
	strh r0, [r4, 0x32]
	ldrh r0, [r4, 0x2E]
	adds r0, 0x1
	strh r0, [r4, 0x2E]
	adds r0, r4, 0
	movs r1, 0x2
	bl StartSpriteAffineAnim
	b _0802EDC4
_0802ED4E:
	ldrh r0, [r4, 0x22]
	subs r0, 0x4
	strh r0, [r4, 0x22]
	ldrh r0, [r4, 0x32]
	adds r0, 0x1
	strh r0, [r4, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	ble _0802EDC4
	ldrh r1, [r4, 0x36]
	movs r2, 0x36
	ldrsh r0, [r4, r2]
	cmp r0, 0x1
	bgt _0802ED7E
	adds r1, 0x1
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl StartSpriteAnim
	movs r0, 0
	strh r0, [r4, 0x32]
	b _0802EDA6
_0802ED7E:
	movs r0, 0x7
	strh r0, [r4, 0x2E]
_0802ED82:
	movs r0, 0
	b _0802EDC6
_0802ED86:
	ldrh r0, [r4, 0x22]
	adds r0, 0x4
	strh r0, [r4, 0x22]
	ldrh r0, [r4, 0x32]
	adds r0, 0x1
	strh r0, [r4, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	ble _0802EDC4
	movs r0, 0
	strh r0, [r4, 0x32]
	adds r0, r4, 0
	movs r1, 0x3
_0802EDA2:
	bl StartSpriteAffineAnim
_0802EDA6:
	ldrh r0, [r4, 0x2E]
	adds r0, 0x1
	b _0802EDC2
_0802EDAC:
	adds r0, r4, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _0802EDC4
	ldrh r0, [r4, 0x36]
	adds r0, 0x1
	strh r0, [r4, 0x36]
	movs r0, 0x1
_0802EDC2:
	strh r0, [r4, 0x2E]
_0802EDC4:
	movs r0, 0x1
_0802EDC6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_802EC98

	thumb_func_start sub_802EDCC
sub_802EDCC: @ 802EDCC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r2, 24
	ldr r0, =gSprites
	mov r8, r0
	lsls r4, r1, 4
	adds r4, r1
	lsls r4, 2
	adds r5, r4, r0
	ldr r0, =0x0000ffd8
	strh r0, [r5, 0x26]
	lsls r3, r2, 4
	adds r3, r2
	lsls r3, 2
	mov r1, r8
	adds r2, r3, r1
	strh r0, [r2, 0x26]
	adds r5, 0x3E
	ldrb r6, [r5]
	movs r1, 0x5
	negs r1, r1
	adds r0, r1, 0
	ands r0, r6
	strb r0, [r5]
	adds r2, 0x3E
	ldrb r0, [r2]
	ands r1, r0
	strb r1, [r2]
	movs r0, 0x1C
	add r8, r0
	add r4, r8
	ldr r0, =sub_802EE5C
	str r0, [r4]
	add r3, r8
	str r0, [r3]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802EDCC

	thumb_func_start sub_802EE30
sub_802EE30: @ 802EE30
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	movs r3, 0
	ldr r2, =gSprites
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r2, 0x1C
	adds r1, r2
	ldr r1, [r1]
	ldr r0, =sub_802EE5C
	cmp r1, r0
	bne _0802EE4E
	movs r3, 0x1
_0802EE4E:
	adds r0, r3, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802EE30

	thumb_func_start sub_802EE5C
sub_802EE5C: @ 802EE5C
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r5, 0
	adds r4, 0x2E
	movs r1, 0x2E
	ldrsh r0, [r5, r1]
	cmp r0, 0x4
	bhi _0802EF46
	lsls r0, 2
	ldr r1, =_0802EE7C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0802EE7C:
	.4byte _0802EE90
	.4byte _0802EEA0
	.4byte _0802EEC8
	.4byte _0802EEFC
	.4byte _0802EF34
_0802EE90:
	movs r0, 0x40
	strh r0, [r4, 0x8]
	ldrh r0, [r5, 0x26]
	lsls r0, 4
	strh r0, [r4, 0xA]
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_0802EEA0:
	ldrh r1, [r4, 0x8]
	ldrh r2, [r4, 0xA]
	adds r0, r1, r2
	strh r0, [r4, 0xA]
	adds r1, 0x1
	strh r1, [r4, 0x8]
	lsls r0, 16
	asrs r0, 20
	strh r0, [r5, 0x26]
	cmp r0, 0
	blt _0802EF46
	movs r0, 0x39
	bl PlaySE
	movs r0, 0
	strh r0, [r5, 0x26]
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _0802EF46
_0802EEC8:
	ldrh r0, [r4, 0x2]
	adds r0, 0xC
	strh r0, [r4, 0x2]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7F
	ble _0802EEE6
	movs r0, 0x39
	bl PlaySE
	movs r0, 0
	strh r0, [r4, 0x2]
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_0802EEE6:
	ldr r0, =gSineTable
	movs r2, 0x2
	ldrsh r1, [r4, r2]
	lsls r1, 1
	adds r1, r0
	movs r2, 0
	ldrsh r0, [r1, r2]
	asrs r0, 4
	b _0802EF2A
	.pool
_0802EEFC:
	ldrh r0, [r4, 0x2]
	adds r0, 0x10
	strh r0, [r4, 0x2]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7F
	ble _0802EF1A
	movs r0, 0x39
	bl PlaySE
	movs r0, 0
	strh r0, [r4, 0x2]
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_0802EF1A:
	ldr r1, =gSineTable
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	lsls r0, 16
	asrs r0, 21
_0802EF2A:
	negs r0, r0
	strh r0, [r5, 0x26]
	b _0802EF46
	.pool
_0802EF34:
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x28
	ble _0802EF46
	ldr r0, =SpriteCallbackDummy
	str r0, [r5, 0x1C]
_0802EF46:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802EE5C

	thumb_func_start sub_802EF50
sub_802EF50: @ 802EF50
	push {r4,lr}
	sub sp, 0x10
	lsls r1, 16
	lsrs r1, 16
	ldr r2, =gUnknown_082FEBCC
	ldr r3, [r2, 0x4]
	ldr r2, [r2]
	str r2, [sp]
	str r3, [sp, 0x4]
	ldr r2, =gUnknown_082FEBD4
	ldr r3, [r2, 0x4]
	ldr r2, [r2]
	str r2, [sp, 0x8]
	str r3, [sp, 0xC]
	lsls r0, 16
	ldr r3, =0x0000ffff
	ldr r2, [sp, 0x4]
	ands r2, r3
	orrs r2, r0
	str r2, [sp, 0x4]
	ldr r2, =0xffff0000
	add r4, sp, 0x8
	ldr r0, [r4, 0x4]
	ands r0, r2
	orrs r0, r1
	str r0, [r4, 0x4]
	mov r0, sp
	bl LoadCompressedSpriteSheet
	adds r0, r4, 0
	bl LoadSpritePalette
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802EF50

	thumb_func_start sub_802EFA8
sub_802EFA8: @ 802EFA8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x18
	mov r12, r3
	ldr r3, [sp, 0x30]
	lsls r1, 16
	lsrs r1, 16
	lsls r3, 24
	lsrs r3, 24
	mov r8, r3
	mov r5, sp
	ldr r4, =gUnknown_082FEC90
	ldm r4!, {r3,r6,r7}
	stm r5!, {r3,r6,r7}
	ldm r4!, {r3,r6,r7}
	stm r5!, {r3,r6,r7}
	mov r4, sp
	strh r0, [r4]
	mov r0, sp
	strh r1, [r0, 0x2]
	lsls r2, 16
	asrs r2, 16
	mov r0, r12
	lsls r6, r0, 16
	asrs r6, 16
	mov r0, sp
	adds r1, r2, 0
	adds r2, r6, 0
	mov r3, r8
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	add sp, 0x18
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_802EFA8

	thumb_func_start sub_802EFFC
sub_802EFFC: @ 802EFFC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	mov r12, r3
	ldr r6, [sp, 0x38]
	ldr r3, [sp, 0x3C]
	mov r9, r3
	ldr r4, [sp, 0x40]
	mov r8, r4
	lsls r1, 16
	lsrs r1, 16
	lsls r6, 24
	lsrs r6, 24
	mov r10, r6
	mov r4, sp
	ldr r3, =gUnknown_082FECA8
	ldm r3!, {r5-r7}
	stm r4!, {r5-r7}
	ldm r3!, {r5-r7}
	stm r4!, {r5-r7}
	mov r3, sp
	strh r0, [r3]
	mov r0, sp
	strh r1, [r0, 0x2]
	lsls r2, 16
	asrs r4, r2, 16
	ldr r0, =0xffe00000
	adds r2, r0
	asrs r2, 16
	mov r1, r12
	lsls r5, r1, 16
	asrs r5, 16
	mov r0, sp
	adds r1, r2, 0
	adds r2, r5, 0
	mov r3, r10
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	mov r3, r9
	strh r0, [r3]
	adds r4, 0x20
	lsls r4, 16
	asrs r4, 16
	mov r0, sp
	adds r1, r4, 0
	adds r2, r5, 0
	mov r3, r10
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	mov r4, r8
	strh r0, [r4]
	ldr r2, =gSprites
	mov r5, r9
	movs r6, 0
	ldrsh r1, [r5, r6]
	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 r7, 0
	ldrsh r1, [r4, r7]
	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]
	movs r0, 0
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0x1
	bl StartSpriteAnim
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_802EFFC

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