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

	.syntax unified

	.text

	thumb_func_start sub_81BF8EC
sub_81BF8EC: @ 81BF8EC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r1
	adds r5, r2, 0
	adds r6, r3, 0
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	ldr r4, =gUnknown_0203CF1C
	ldr r0, =0x000040f8
	bl AllocZeroed
	str r0, [r4]
	ldr r1, =0x000040bc
	adds r0, r1
	strb r7, [r0]
	ldr r0, [r4]
	mov r2, r8
	str r2, [r0]
	adds r1, 0x2
	adds r0, r1
	strb r5, [r0]
	ldr r0, [r4]
	ldr r2, =0x000040bf
	adds r0, r2
	strb r6, [r0]
	ldr r1, [r4]
	ldr r0, [sp, 0x18]
	str r0, [r1, 0x4]
	cmp r7, 0x2
	bne _081BF94C
	subs r2, 0x2
	adds r1, r2
	movs r0, 0x1
	b _081BF952
	.pool
_081BF94C:
	ldr r0, =0x000040bd
	adds r1, r0
	movs r0, 0
_081BF952:
	strb r0, [r1]
	cmp r7, 0x1
	beq _081BF9A0
	cmp r7, 0x1
	bgt _081BF96C
	cmp r7, 0
	beq _081BF97C
	ldr r2, =gUnknown_0203CF1C
	b _081BF9EE
	.pool
_081BF96C:
	cmp r7, 0x2
	beq _081BF97C
	cmp r7, 0x3
	beq _081BF9D0
	ldr r2, =gUnknown_0203CF1C
	b _081BF9EE
	.pool
_081BF97C:
	ldr r2, =gUnknown_0203CF1C
	ldr r0, [r2]
	ldr r1, =0x000040c1
	adds r0, r1
	movs r1, 0
	strb r1, [r0]
	ldr r0, [r2]
	ldr r1, =0x000040c2
	adds r0, r1
	movs r1, 0x3
	b _081BF9EC
	.pool
_081BF9A0:
	ldr r2, =gUnknown_0203CF1C
	ldr r0, [r2]
	ldr r1, =0x000040c1
	adds r0, r1
	movs r1, 0
	strb r1, [r0]
	ldr r0, [r2]
	ldr r1, =0x000040c2
	adds r0, r1
	movs r1, 0x3
	strb r1, [r0]
	ldr r0, [r2]
	ldr r1, =0x000040c8
	adds r0, r1
	strb r7, [r0]
	b _081BF9EE
	.pool
_081BF9D0:
	ldr r2, =gUnknown_0203CF1C
	ldr r0, [r2]
	ldr r1, =0x000040c1
	adds r0, r1
	movs r1, 0x2
	strb r1, [r0]
	ldr r0, [r2]
	ldr r1, =0x000040c2
	adds r0, r1
	strb r7, [r0]
	ldr r0, [r2]
	adds r1, 0x1
	adds r0, r1
	movs r1, 0x1
_081BF9EC:
	strb r1, [r0]
_081BF9EE:
	ldr r0, [r2]
	ldr r2, =0x000040c1
	adds r1, r0, r2
	ldrb r1, [r1]
	subs r2, 0x1
	adds r0, r2
	strb r1, [r0]
	movs r0, 0xFF
	bl sub_81C488C
	ldr r0, =gBattleSpritesGfx
	ldr r0, [r0]
	cmp r0, 0
	bne _081BFA12
	movs r0, 0
	movs r1, 0
	bl sub_806F2AC
_081BFA12:
	ldr r0, =sub_81BFAE4
	bl SetMainCallback2
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BF8EC

	thumb_func_start sub_81BFA38
sub_81BFA38: @ 81BFA38
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x4
	mov r8, r0
	adds r4, r1, 0
	adds r5, r2, 0
	ldr r6, [sp, 0x18]
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 16
	lsrs r6, 16
	str r3, [sp]
	movs r0, 0x3
	mov r1, r8
	adds r2, r4, 0
	adds r3, r5, 0
	bl sub_81BF8EC
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c4
	adds r0, r1
	strh r6, [r0]
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BFA38

	thumb_func_start sub_81BFA80
sub_81BFA80: @ 81BFA80
	push {r4,lr}
	sub sp, 0x4
	ldr r4, [sp, 0xC]
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	str r4, [sp]
	bl sub_81BF8EC
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040ef
	adds r0, r1
	movs r1, 0x1
	strb r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BFA80

	thumb_func_start sub_81BFAB4
sub_81BFAB4: @ 81BFAB4
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl do_scheduled_bg_tilemap_copies_to_vram
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_81BFAB4

	thumb_func_start sub_81BFAD0
sub_81BFAD0: @ 81BFAD0
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_81BFAD0

	thumb_func_start sub_81BFAE4
sub_81BFAE4: @ 81BFAE4
	push {lr}
_081BFAE6:
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081BFB0A
	bl sub_81BFB10
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081BFB0A
	bl sub_81221AC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081BFAE6
_081BFB0A:
	pop {r0}
	bx r0
	thumb_func_end sub_81BFAE4

	thumb_func_start sub_81BFB10
sub_81BFB10: @ 81BFB10
	push {r4,lr}
	sub sp, 0x4
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x18
	bls _081BFB24
	b _081BFE00
_081BFB24:
	lsls r0, 2
	ldr r1, =_081BFB38
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081BFB38:
	.4byte _081BFB9C
	.4byte _081BFBAA
	.4byte _081BFBBC
	.4byte _081BFBD0
	.4byte _081BFBE4
	.4byte _081BFBEA
	.4byte _081BFC04
	.4byte _081BFC20
	.4byte _081BFC26
	.4byte _081BFC38
	.4byte _081BFC58
	.4byte _081BFC7C
	.4byte _081BFC82
	.4byte _081BFC94
	.4byte _081BFCAC
	.4byte _081BFCC0
	.4byte _081BFCD8
	.4byte _081BFCF8
	.4byte _081BFD34
	.4byte _081BFD50
	.4byte _081BFD60
	.4byte _081BFD74
	.4byte _081BFD7A
	.4byte _081BFDB0
	.4byte _081BFDCC
_081BFB9C:
	bl SetVBlankHBlankCallbacksToNull
	bl sub_8121DA0
	bl clear_scheduled_bg_copies_to_vram
	b _081BFDE6
_081BFBAA:
	bl remove_some_task
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFBBC:
	bl ResetPaletteFade
	ldr r2, =gPaletteFade
	ldrb r0, [r2, 0x8]
	movs r1, 0x80
	orrs r0, r1
	b _081BFDE4
	.pool
_081BFBD0:
	bl ResetSpriteData
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFBE4:
	bl FreeAllSpritePalettes
	b _081BFDE6
_081BFBEA:
	bl sub_81BFE24
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040f0
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _081BFDE6
	.pool
_081BFC04:
	bl sub_81BFEB0
	lsls r0, 24
	cmp r0, 0
	bne _081BFC10
	b _081BFE18
_081BFC10:
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFC20:
	bl sub_81C2554
	b _081BFDE6
_081BFC26:
	bl sub_81C1BA0
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFC38:
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_81C0098
	ldr r0, [r4]
	ldr r1, =0x000040f0
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _081BFDE6
	.pool
_081BFC58:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_81C00F0
	lsls r0, 24
	cmp r0, 0
	bne _081BFC6A
	b _081BFE18
_081BFC6A:
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFC7C:
	bl sub_81C25E8
	b _081BFDE6
_081BFC82:
	bl sub_81C286C
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFC94:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	bl sub_81C2D9C
	b _081BFDE6
	.pool
_081BFCAC:
	bl sub_81C0348
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFCC0:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	bl sub_81C2AFC
	b _081BFDE6
	.pool
_081BFCD8:
	bl sub_81C4190
	bl sub_81C42C8
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040f0
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _081BFDE6
	.pool
_081BFCF8:
	ldr r4, =gUnknown_0203CF1C
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0xC
	ldr r2, =0x000040f0
	adds r1, r2
	bl sub_81C45F4
	ldr r1, [r4]
	ldr r2, =0x000040d3
	adds r1, r2
	strb r0, [r1]
	ldr r1, [r4]
	adds r2, r1, r2
	ldrb r0, [r2]
	cmp r0, 0xFF
	bne _081BFD1C
	b _081BFE18
_081BFD1C:
	ldr r0, =0x000040f0
	adds r1, r0
	movs r0, 0
	strh r0, [r1]
	b _081BFDE6
	.pool
_081BFD34:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_81C4984
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFD50:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_81C4A08
	b _081BFDE6
	.pool
_081BFD60:
	bl sub_81C4A88
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFD74:
	bl sub_81C4280
	b _081BFDE6
_081BFD7A:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040bc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	beq _081BFDA0
	ldr r0, =sub_81C0510
	movs r1, 0
	bl CreateTask
	b _081BFDE6
	.pool
_081BFDA0:
	ldr r0, =sub_81C171C
	movs r1, 0
	bl CreateTask
	b _081BFDE6
	.pool
_081BFDB0:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	b _081BFDEE
	.pool
_081BFDCC:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r2, =gPaletteFade
	ldrb r1, [r2, 0x8]
	movs r0, 0x7F
	ands r0, r1
_081BFDE4:
	strb r0, [r2, 0x8]
_081BFDE6:
	ldr r1, =gMain
	movs r2, 0x87
	lsls r2, 3
	adds r1, r2
_081BFDEE:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _081BFE18
	.pool
_081BFE00:
	ldr r0, =sub_81BFAD0
	bl SetVBlankCallback
	ldr r0, =sub_81BFAB4
	bl SetMainCallback2
	movs r0, 0x1
	b _081BFE1A
	.pool
_081BFE18:
	movs r0, 0
_081BFE1A:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81BFB10

	thumb_func_start sub_81BFE24
sub_81BFE24: @ 81BFE24
	push {r4,lr}
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0861CBB4
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203CF1C
	ldr r1, [r4]
	ldr r0, =0x000020bc
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x000010bc
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	adds r1, 0xBC
	movs r0, 0x3
	bl SetBgTilemapBuffer
	bl sub_8121E10
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x3
	bl schedule_bg_copy_tilemap_to_vram
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BFE24

	thumb_func_start sub_81BFEB0
sub_81BFEB0: @ 81BFEB0
	push {r4,lr}
	sub sp, 0x4
	ldr r1, =gUnknown_0203CF1C
	ldr r0, [r1]
	ldr r2, =0x000040f0
	adds r0, r2
	movs r2, 0
	ldrsh r0, [r0, r2]
	adds r4, r1, 0
	cmp r0, 0xC
	bls _081BFEC8
	b _081C008C
_081BFEC8:
	lsls r0, 2
	ldr r1, =_081BFEE0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081BFEE0:
	.4byte _081BFF14
	.4byte _081BFF30
	.4byte _081BFF60
	.4byte _081BFF78
	.4byte _081BFF90
	.4byte _081BFFA8
	.4byte _081BFFC0
	.4byte _081BFFF0
	.4byte _081BFFFC
	.4byte _081C0018
	.4byte _081C0024
	.4byte _081C0040
	.4byte _081C0064
_081BFF14:
	bl reset_temp_tile_data_buffers
	ldr r1, =gUnknown_08D97D0C
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	b _081C0046
	.pool
_081BFF30:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081BFF3E
	b _081C008C
_081BFF3E:
	ldr r0, =gUnknown_08D9862C
	ldr r4, =gUnknown_0203CF1C
	ldr r1, [r4]
	adds r1, 0xBC
	bl LZDecompressWram
	ldr r1, [r4]
	ldr r2, =0x000040f0
	adds r1, r2
	b _081C004E
	.pool
_081BFF60:
	ldr r0, =gUnknown_08D98CC8
	ldr r1, [r4]
	ldr r2, =0x000008bc
	adds r1, r2
	bl LZDecompressWram
	ldr r1, [r4]
	b _081C004A
	.pool
_081BFF78:
	ldr r0, =gUnknown_08D987FC
	ldr r1, [r4]
	ldr r2, =0x000018bc
	adds r1, r2
	bl LZDecompressWram
	ldr r1, [r4]
	b _081C004A
	.pool
_081BFF90:
	ldr r0, =gUnknown_08D9898C
	ldr r1, [r4]
	ldr r2, =0x000028bc
	adds r1, r2
	bl LZDecompressWram
	ldr r1, [r4]
	b _081C004A
	.pool
_081BFFA8:
	ldr r0, =gUnknown_08D98B28
	ldr r1, [r4]
	ldr r2, =0x000038bc
	adds r1, r2
	bl LZDecompressWram
	ldr r1, [r4]
	b _081C004A
	.pool
_081BFFC0:
	ldr r0, =gUnknown_08D9853C
	movs r2, 0x80
	lsls r2, 1
	movs r1, 0
	bl LoadCompressedPalette
	ldr r0, =gUnknown_08D85620
	movs r1, 0x81
	movs r2, 0x1E
	bl LoadPalette
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040f0
	adds r1, r2
	b _081C004E
	.pool
_081BFFF0:
	ldr r0, =gUnknown_0861CFBC
	bl LoadCompressedObjectPic
	b _081C0046
	.pool
_081BFFFC:
	ldr r0, =gUnknown_0861D074
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040f0
	adds r1, r2
	b _081C004E
	.pool
_081C0018:
	ldr r0, =gUnknown_0861D0F8
	bl LoadCompressedObjectPic
	b _081C0046
	.pool
_081C0024:
	ldr r0, =gUnknown_0861D100
	bl LoadCompressedObjectPalette
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040f0
	adds r1, r2
	b _081C004E
	.pool
_081C0040:
	ldr r0, =gUnknown_0861D07C
	bl LoadCompressedObjectPalette
_081C0046:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
_081C004A:
	ldr r0, =0x000040f0
	adds r1, r0
_081C004E:
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _081C008C
	.pool
_081C0064:
	ldr r0, =gUnknown_08D97B84
	movs r1, 0xE8
	lsls r1, 1
	movs r2, 0x60
	bl LoadCompressedPalette
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040f0
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	movs r0, 0x1
	b _081C008E
	.pool
_081C008C:
	movs r0, 0
_081C008E:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81BFEB0

	thumb_func_start sub_81C0098
sub_81C0098: @ 81C0098
	push {r4,lr}
	adds r3, r0, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040bd
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C00D0
	ldr r2, [r1]
	ldr r4, =0x000040be
	adds r0, r1, r4
	ldrb r1, [r0]
	movs r0, 0x64
	muls r1, r0
	adds r1, r2
	adds r0, r3, 0
	movs r2, 0x64
	bl memcpy
	b _081C00E6
	.pool
_081C00D0:
	ldr r0, [r1]
	ldr r2, =0x000040be
	adds r1, r2
	ldrb r2, [r1]
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 4
	adds r0, r1
	adds r1, r3, 0
	bl sub_8069004
_081C00E6:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0098

	thumb_func_start sub_81C00F0
sub_81C00F0: @ 81C00F0
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r5, r0, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r7, [r0]
	adds r6, r7, 0
	adds r6, 0x70
	ldr r1, =0x000040f0
	adds r0, r7, r1
	movs r2, 0
	ldrsh r0, [r0, r2]
	cmp r0, 0x1
	beq _081C0198
	cmp r0, 0x1
	bgt _081C0120
	cmp r0, 0
	beq _081C012C
	b _081C0314
	.pool
_081C0120:
	cmp r0, 0x2
	beq _081C01DC
	cmp r0, 0x3
	bne _081C012A
	b _081C02A8
_081C012A:
	b _081C0314
_081C012C:
	adds r0, r5, 0
	movs r1, 0xB
	bl GetMonData
	strh r0, [r6]
	adds r0, r5, 0
	movs r1, 0x41
	bl GetMonData
	strh r0, [r6, 0x2]
	adds r0, r5, 0
	movs r1, 0x19
	bl GetMonData
	str r0, [r6, 0x10]
	adds r0, r5, 0
	movs r1, 0x38
	bl GetMonData
	strb r0, [r6, 0x5]
	adds r0, r5, 0
	movs r1, 0x2E
	bl GetMonData
	strb r0, [r6, 0x8]
	adds r0, r5, 0
	movs r1, 0xC
	bl GetMonData
	strh r0, [r6, 0x2E]
	adds r0, r5, 0
	movs r1, 0
	bl GetMonData
	str r0, [r6, 0xC]
	adds r0, r5, 0
	movs r1, 0x4
	bl GetMonData
	adds r1, r7, 0
	adds r1, 0xA5
	strb r0, [r1]
	lsls r0, 24
	cmp r0, 0
	beq _081C018C
	movs r0, 0x1
	strb r0, [r6, 0x4]
	b _081C0322
_081C018C:
	adds r0, r5, 0
	movs r1, 0x2D
	bl GetMonData
	strb r0, [r6, 0x4]
	b _081C0322
_081C0198:
	movs r4, 0
	movs r0, 0x8C
	adds r0, r7
	mov r8, r0
	movs r1, 0xA4
	adds r1, r7
	mov r9, r1
	adds r6, r7, 0
	adds r6, 0x84
_081C01AA:
	adds r1, r4, 0
	adds r1, 0xD
	adds r0, r5, 0
	bl GetMonData
	strh r0, [r6]
	adds r1, r4, 0
	adds r1, 0x11
	adds r0, r5, 0
	bl GetMonData
	mov r2, r8
	adds r1, r2, r4
	strb r0, [r1]
	adds r6, 0x2
	adds r4, 0x1
	cmp r4, 0x3
	bls _081C01AA
	adds r0, r5, 0
	movs r1, 0x15
	bl GetMonData
	mov r1, r9
	strb r0, [r1]
	b _081C0322
_081C01DC:
	ldr r1, [r7]
	ldr r0, =gPlayerParty
	cmp r1, r0
	beq _081C01F8
	ldr r2, =0x000040bc
	adds r0, r7, r2
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _081C01F8
	ldr r1, =0x000040ef
	adds r0, r7, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081C0254
_081C01F8:
	adds r0, r5, 0
	bl GetNature
	adds r1, r6, 0
	adds r1, 0x33
	strb r0, [r1]
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	strh r0, [r6, 0x20]
	adds r0, r5, 0
	movs r1, 0x3A
	bl GetMonData
	strh r0, [r6, 0x22]
	adds r0, r5, 0
	movs r1, 0x3B
	bl GetMonData
	strh r0, [r6, 0x24]
	adds r0, r5, 0
	movs r1, 0x3C
	bl GetMonData
	strh r0, [r6, 0x26]
	adds r0, r5, 0
	movs r1, 0x3E
	bl GetMonData
	strh r0, [r6, 0x28]
	adds r0, r5, 0
	movs r1, 0x3F
	bl GetMonData
	strh r0, [r6, 0x2A]
	adds r0, r5, 0
	movs r1, 0x3D
	b _081C02A0
	.pool
_081C0254:
	adds r0, r5, 0
	bl GetNature
	adds r1, r7, 0
	adds r1, 0xA3
	strb r0, [r1]
	adds r0, r5, 0
	movs r1, 0x39
	bl GetMonData
	strh r0, [r6, 0x20]
	adds r0, r5, 0
	movs r1, 0x3A
	bl GetMonData
	strh r0, [r6, 0x22]
	adds r0, r5, 0
	movs r1, 0x54
	bl GetMonData
	strh r0, [r6, 0x24]
	adds r0, r5, 0
	movs r1, 0x55
	bl GetMonData
	strh r0, [r6, 0x26]
	adds r0, r5, 0
	movs r1, 0x57
	bl GetMonData
	strh r0, [r6, 0x28]
	adds r0, r5, 0
	movs r1, 0x58
	bl GetMonData
	strh r0, [r6, 0x2A]
	adds r0, r5, 0
	movs r1, 0x56
_081C02A0:
	bl GetMonData
	strh r0, [r6, 0x2C]
	b _081C0322
_081C02A8:
	adds r4, r7, 0
	adds r4, 0xA6
	adds r0, r5, 0
	movs r1, 0x7
	adds r2, r4, 0
	bl GetMonData
	adds r0, r5, 0
	movs r1, 0x3
	bl GetMonData
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl ConvertInternationalString
	adds r0, r5, 0
	bl sub_81B205C
	strb r0, [r6, 0x7]
	adds r0, r5, 0
	movs r1, 0x31
	bl GetMonData
	adds r1, r7, 0
	adds r1, 0xA2
	strb r0, [r1]
	adds r0, r5, 0
	movs r1, 0x1
	bl GetMonData
	str r0, [r6, 0x48]
	adds r0, r5, 0
	movs r1, 0x23
	bl GetMonData
	strb r0, [r6, 0x9]
	adds r0, r5, 0
	movs r1, 0x24
	bl GetMonData
	strb r0, [r6, 0xA]
	adds r0, r5, 0
	movs r1, 0x25
	bl GetMonData
	strb r0, [r6, 0xB]
	adds r0, r5, 0
	movs r1, 0x20
	bl GetMonData
	strh r0, [r6, 0x30]
	b _081C0322
_081C0314:
	adds r0, r5, 0
	movs r1, 0x52
	bl GetMonData
	strb r0, [r6, 0x6]
	movs r0, 0x1
	b _081C0332
_081C0322:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040f0
	adds r1, r2
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	movs r0, 0
_081C0332:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C00F0

	thumb_func_start sub_81C0348
sub_81C0348: @ 81C0348
	push {r4-r6,lr}
	ldr r6, =gUnknown_0203CF1C
	ldr r2, [r6]
	ldr r1, =0x000040c0
	adds r0, r2, r1
	ldrb r0, [r0]
	subs r0, 0x2
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _081C037C
	movs r0, 0
	movs r1, 0xFF
	bl sub_81C1DA4
	movs r0, 0
	movs r1, 0xFF
	movs r2, 0
	bl sub_81C1EFC
	b _081C03D8
	.pool
_081C037C:
	ldr r1, =0x000040c6
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r1, 1
	adds r0, r2, 0
	adds r0, 0x84
	adds r0, r1
	ldrh r0, [r0]
	bl sub_81C240C
	ldr r0, [r6]
	ldr r5, =0x000020bc
	adds r0, r5
	movs r1, 0x3
	movs r2, 0
	bl sub_81C2194
	ldr r0, [r6]
	ldr r4, =0x000030bc
	adds r0, r4
	movs r1, 0x1
	movs r2, 0
	bl sub_81C2194
	ldr r1, [r6]
	adds r1, r4
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r6]
	adds r1, r5
	movs r0, 0x2
	bl SetBgTilemapBuffer
	movs r1, 0x80
	lsls r1, 9
	movs r0, 0x2
	movs r2, 0x1
	bl ChangeBgX
	movs r0, 0x13
	bl ClearWindowTilemap
	movs r0, 0xD
	bl ClearWindowTilemap
_081C03D8:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x77
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C0400
	movs r0, 0
	movs r1, 0xFF
	bl sub_81C2074
	b _081C0416
	.pool
_081C0400:
	ldr r2, =0x000040c0
	adds r0, r1, r2
	ldrb r0, [r0]
	subs r0, 0x2
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _081C0416
	movs r0, 0xD
	bl PutWindowTilemap
_081C0416:
	bl sub_81C2524
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_81C2228
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0348

	thumb_func_start sub_81C0434
sub_81C0434: @ 81C0434
	push {lr}
	bl FreeAllWindowBuffers
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	bl Free
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0434

	thumb_func_start sub_81C044C
sub_81C044C: @ 81C044C
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C0484
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C044C

	thumb_func_start sub_81C0484
sub_81C0484: @ 81C0484
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C04EC
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081C04EC
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	ldr r0, [r0, 0x4]
	bl SetMainCallback2
	ldr r1, =gUnknown_0203CF20
	ldr r0, [r4]
	ldr r2, =0x000040be
	adds r0, r2
	ldrb r0, [r0]
	strb r0, [r1]
	bl sub_81C4898
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl StopCryAndClearCrySongs
	ldr r0, =gMPlay_BGM
	ldr r1, =0x0000ffff
	movs r2, 0x80
	lsls r2, 1
	bl m4aMPlayVolumeControl
	ldr r0, =gBattleSpritesGfx
	ldr r0, [r0]
	cmp r0, 0
	bne _081C04E2
	movs r0, 0
	bl sub_806F47C
_081C04E2:
	bl sub_81C0434
	adds r0, r5, 0
	bl DestroyTask
_081C04EC:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0484

	thumb_func_start sub_81C0510
sub_81C0510: @ 81C0510
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C05FE
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r2, 0x80
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	bne _081C05FE
	ldr r5, =gMain
	ldrh r1, [r5, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081C0550
	movs r1, 0x1
	negs r1, r1
	adds r0, r4, 0
	bl sub_81C0604
	b _081C05FE
	.pool
_081C0550:
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	beq _081C0562
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C0604
	b _081C05FE
_081C0562:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	bne _081C0576
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C0582
_081C0576:
	movs r1, 0x1
	negs r1, r1
	adds r0, r4, 0
	bl sub_81C0A8C
	b _081C05FE
_081C0582:
	ldrh r1, [r5, 0x2E]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _081C0598
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _081C05A2
_081C0598:
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C0A8C
	b _081C05FE
_081C05A2:
	ldrh r1, [r5, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C05E6
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081C05FE
	cmp r0, 0
	bne _081C05D8
	bl sub_81C48F0
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81C044C
	b _081C05FE
	.pool
_081C05D8:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81C0E48
	b _081C05FE
_081C05E6:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C05FE
	bl sub_81C48F0
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81C044C
_081C05FE:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C0510

	thumb_func_start sub_81C0604
sub_81C0604: @ 81C0604
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	adds r4, r5, 0
	ldr r1, =gUnknown_0203CF1C
	ldr r3, [r1]
	ldr r2, =0x000040c3
	adds r0, r3, r2
	ldrb r0, [r0]
	adds r6, r1, 0
	cmp r0, 0
	bne _081C06EE
	ldr r1, =0x000040bd
	adds r0, r3, r1
	ldrb r2, [r0]
	cmp r2, 0x1
	bne _081C0678
	adds r1, 0x3
	adds r0, r3, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _081C0654
	lsls r1, r5, 24
	asrs r1, 24
	movs r4, 0x2
	eors r1, r2
	negs r0, r1
	orrs r0, r1
	asrs r0, 31
	ands r4, r0
	b _081C065C
	.pool
_081C0654:
	movs r4, 0x3
	cmp r5, 0x1
	bne _081C065C
	movs r4, 0x1
_081C065C:
	ldr r2, [r6]
	ldr r0, [r2]
	ldr r3, =0x000040be
	adds r1, r2, r3
	ldrb r1, [r1]
	adds r3, 0x1
	adds r2, r3
	ldrb r2, [r2]
	adds r3, r4, 0
	bl sub_80D214C
	b _081C0696
	.pool
_081C0678:
	bl sub_81B1250
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C068E
	lsls r0, r5, 24
	asrs r0, 24
	bl sub_81C09B4
	b _081C0696
_081C068E:
	lsls r0, r4, 24
	asrs r0, 24
	bl sub_81C08F8
_081C0696:
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 24
	asrs r0, 24
	movs r1, 0x1
	negs r1, r1
	cmp r0, r1
	beq _081C06EE
	movs r0, 0x5
	bl PlaySE
	ldr r5, =gUnknown_0203CF1C
	ldr r0, [r5]
	adds r0, 0x77
	ldrb r0, [r0]
	cmp r0, 0
	beq _081C06D4
	movs r0, 0x2
	movs r1, 0x1
	bl sub_81C4204
	movs r0, 0xD
	bl ClearWindowTilemap
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0
	movs r1, 0x2
	bl sub_81C2074
_081C06D4:
	ldr r0, [r5]
	ldr r1, =0x000040be
	adds r0, r1
	movs r2, 0
	strb r4, [r0]
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	strh r2, [r0, 0x8]
	ldr r1, =sub_81C0704
	str r1, [r0]
_081C06EE:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0604

	thumb_func_start sub_81C0704
sub_81C0704: @ 81C0704
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r4, r1, 3
	ldr r6, =gTasks + 0x8
	adds r5, r4, r6
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0xC
	bls _081C071E
	b _081C08BC
_081C071E:
	lsls r0, 2
	ldr r1, =_081C0730
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C0730:
	.4byte _081C0764
	.4byte _081C076A
	.4byte _081C0780
	.4byte _081C07A8
	.4byte _081C07C8
	.4byte _081C07E0
	.4byte _081C07F0
	.4byte _081C0800
	.4byte _081C0828
	.4byte _081C086C
	.4byte _081C0872
	.4byte _081C0878
	.4byte _081C0894
_081C0764:
	bl StopCryAndClearCrySongs
	b _081C08EC
_081C076A:
	bl sub_81C4898
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040d3
	b _081C0786
	.pool
_081C0780:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040d4
_081C0786:
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySpriteAndFreeResources
	b _081C08EC
	.pool
_081C07A8:
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_81C0098
	ldr r0, [r4]
	ldr r1, =0x000040f0
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _081C08EC
	.pool
_081C07C8:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_81C00F0
	lsls r0, 24
	cmp r0, 0
	bne _081C07DA
	b _081C08F2
_081C07DA:
	b _081C08EC
	.pool
_081C07E0:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_81C49E0
	b _081C08EC
	.pool
_081C07F0:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	bl sub_81C4A08
	b _081C08EC
	.pool
_081C0800:
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	adds r0, 0x77
	ldrb r0, [r0]
	cmp r0, 0
	beq _081C0816
	movs r1, 0x2
	negs r1, r1
	movs r0, 0xA
	bl sub_81C2074
_081C0816:
	ldr r0, [r4]
	adds r0, 0xC
	bl sub_81C2228
	movs r0, 0
	strh r0, [r5, 0x2]
	b _081C08EC
	.pool
_081C0828:
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	adds r0, 0xC
	adds r1, r5, 0x2
	bl sub_81C45F4
	ldr r1, [r4]
	ldr r2, =0x000040d3
	adds r1, r2
	strb r0, [r1]
	ldr r0, [r4]
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _081C08F2
	ldr r2, =gSprites
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0x1
	strh r1, [r0, 0x32]
	bl sub_81C0E24
	movs r0, 0
	strh r0, [r5, 0x2]
	b _081C08EC
	.pool
_081C086C:
	bl sub_81C4280
	b _081C08EC
_081C0872:
	bl sub_81C25E8
	b _081C08EC
_081C0878:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	bl sub_81C2D9C
	bl sub_81C2524
	b _081C08EC
	.pool
_081C0894:
	ldr r2, =gSprites
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040d3
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0
	strh r1, [r0, 0x32]
	b _081C08EC
	.pool
_081C08BC:
	bl sub_81221EC
	lsls r0, 24
	cmp r0, 0
	bne _081C08F2
	ldr r0, =sub_81C20F0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	bne _081C08F2
	strh r0, [r5]
	adds r0, r6, 0
	subs r0, 0x8
	adds r0, r4, r0
	ldr r1, =sub_81C0510
	str r1, [r0]
	b _081C08F2
	.pool
_081C08EC:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
_081C08F2:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C0704

	thumb_func_start sub_81C08F8
sub_81C08F8: @ 81C08F8
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gUnknown_0203CF1C
	ldr r2, [r1]
	ldr r7, [r2]
	ldr r3, =0x000040c0
	adds r0, r2, r3
	ldrb r0, [r0]
	adds r5, r1, 0
	cmp r0, 0
	bne _081C0960
	lsls r0, r4, 24
	asrs r3, r0, 24
	movs r1, 0x1
	negs r1, r1
	adds r6, r0, 0
	cmp r3, r1
	bne _081C0928
	ldr r1, =0x000040be
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _081C0988
_081C0928:
	asrs r0, r6, 24
	cmp r0, 0x1
	bne _081C0940
	ldr r0, [r5]
	ldr r2, =0x000040be
	adds r1, r0, r2
	ldr r3, =0x000040bf
	adds r0, r3
	ldrb r1, [r1]
	ldrb r0, [r0]
	cmp r1, r0
	bcs _081C0988
_081C0940:
	ldr r0, [r5]
	ldr r1, =0x000040be
	adds r0, r1
	ldrb r0, [r0]
	adds r0, r4
	lsls r0, 24
	asrs r0, 24
	b _081C09AE
	.pool
_081C0960:
	ldr r3, =0x000040be
	adds r0, r2, r3
	ldrb r5, [r0]
	lsls r6, r4, 24
_081C0968:
	lsls r0, r5, 24
	asrs r0, 24
	asrs r1, r6, 24
	adds r0, r1
	lsls r0, 24
	lsrs r5, r0, 24
	asrs r4, r0, 24
	cmp r4, 0
	blt _081C0988
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040bf
	adds r0, r1
	ldrb r0, [r0]
	cmp r4, r0
	ble _081C099C
_081C0988:
	movs r0, 0x1
	negs r0, r0
	b _081C09AE
	.pool
_081C099C:
	movs r0, 0x64
	muls r0, r4
	adds r0, r7, r0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	bne _081C0968
	adds r0, r4, 0
_081C09AE:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81C08F8

	thumb_func_start sub_81C09B4
sub_81C09B4: @ 81C09B4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	mov r12, r0
	ldr r6, =gUnknown_0203CF1C
	ldr r0, [r6]
	ldr r1, [r0]
	mov r8, r1
	movs r5, 0
	movs r2, 0
	ldr r3, =gUnknown_0861CC1C
	movs r1, 0
	ldrsb r1, [r3, r1]
	ldr r4, =0x000040be
	adds r0, r4
	ldrb r0, [r0]
	cmp r1, r0
	beq _081C09FC
	adds r7, r3, 0
	adds r3, r4, 0
_081C09E0:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x5
	bhi _081C09FC
	adds r0, r2, r7
	movs r1, 0
	ldrsb r1, [r0, r1]
	ldr r0, [r6]
	adds r0, r3
	ldrb r0, [r0]
	cmp r1, r0
	bne _081C09E0
	adds r5, r2, 0
_081C09FC:
	mov r0, r12
	lsls r6, r0, 24
	ldr r7, =gUnknown_0861CC1C
_081C0A02:
	lsls r0, r5, 24
	asrs r0, 24
	asrs r1, r6, 24
	adds r0, r1
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, r5, 24
	lsrs r0, r1, 24
	cmp r0, 0x5
	bhi _081C0A40
	asrs r0, r1, 24
	adds r0, r7
	movs r4, 0
	ldrsb r4, [r0, r4]
	movs r0, 0x64
	muls r0, r4
	add r0, r8
	bl sub_81C0A50
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C0A02
	adds r0, r4, 0
	b _081C0A44
	.pool
_081C0A40:
	movs r0, 0x1
	negs r0, r0
_081C0A44:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81C09B4

	thumb_func_start sub_81C0A50
sub_81C0A50: @ 81C0A50
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0xB
	bl GetMonData
	cmp r0, 0
	beq _081C0A84
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040be
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C0A78
	adds r0, r4, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	bne _081C0A84
_081C0A78:
	movs r0, 0x1
	b _081C0A86
	.pool
_081C0A84:
	movs r0, 0
_081C0A86:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C0A50

	thumb_func_start sub_81C0A8C
sub_81C0A8C: @ 81C0A8C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r6, r0, 24
	str r6, [sp]
	lsls r1, 24
	lsrs r3, r1, 24
	str r3, [sp, 0x4]
	ldr r0, =gUnknown_0203CF1C
	mov r8, r0
	ldr r2, [r0]
	adds r1, r2, 0
	adds r1, 0x70
	lsls r0, r6, 2
	adds r0, r6
	lsls r7, r0, 3
	ldr r0, =gTasks + 0x8
	mov r9, r0
	adds r0, r7, r0
	str r0, [sp, 0x8]
	ldrb r1, [r1, 0x4]
	mov r10, r1
	cmp r1, 0
	bne _081C0B6E
	lsls r0, r3, 24
	asrs r5, r0, 24
	movs r0, 0x1
	negs r0, r0
	cmp r5, r0
	bne _081C0AE0
	ldr r1, =0x000040c0
	adds r0, r2, r1
	ldr r3, =0x000040c1
	adds r1, r2, r3
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	beq _081C0B6E
_081C0AE0:
	cmp r5, 0x1
	bne _081C0AF4
	ldr r1, =0x000040c0
	adds r0, r2, r1
	ldr r3, =0x000040c2
	adds r1, r2, r3
	ldrb r0, [r0]
	ldrb r1, [r1]
	cmp r0, r1
	beq _081C0B6E
_081C0AF4:
	movs r0, 0x5
	bl PlaySE
	mov r1, r8
	ldr r0, [r1]
	ldr r4, =0x000040c0
	adds r0, r4
	ldrb r0, [r0]
	bl sub_81C2C38
	mov r2, r8
	ldr r1, [r2]
	adds r1, r4
	ldrb r0, [r1]
	ldr r3, [sp, 0x4]
	adds r0, r3
	strb r0, [r1]
	mov r1, r10
	ldr r0, [sp, 0x8]
	strh r1, [r0]
	cmp r5, 0x1
	bne _081C0B4C
	ldr r1, =sub_81C0B8C
	mov r0, r9
	subs r0, 0x8
	adds r0, r7, r0
	ldr r2, [r0]
	adds r0, r6, 0
	bl SetTaskFuncWithFollowupFunc
	b _081C0B5C
	.pool
_081C0B4C:
	ldr r1, =sub_81C0CC4
	mov r0, r9
	subs r0, 0x8
	adds r0, r7, r0
	ldr r2, [r0]
	ldr r0, [sp]
	bl SetTaskFuncWithFollowupFunc
_081C0B5C:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r2, =0x000040c0
	adds r0, r2
	ldrb r0, [r0]
	bl sub_81C2DE4
	bl sub_81C424C
_081C0B6E:
	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_81C0A8C

	thumb_func_start sub_81C0B8C
sub_81C0B8C: @ 81C0B8C
	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, 0
	bne _081C0C2A
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r3, =0x000040c9
	adds r0, r3
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C0BE0
	movs r0, 0x1
	strh r0, [r4, 0x2]
	movs r0, 0x1
	movs r1, 0x7
	movs r2, 0x1
	bl SetBgAttribute
	movs r0, 0x2
	movs r1, 0x7
	movs r2, 0x2
	bl SetBgAttribute
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	b _081C0BFE
	.pool
_081C0BE0:
	movs r0, 0x2
	strh r0, [r4, 0x2]
	movs r0, 0x2
	movs r1, 0x7
	movs r2, 0x1
	bl SetBgAttribute
	movs r0, 0x1
	movs r1, 0x7
	movs r2, 0x2
	bl SetBgAttribute
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
_081C0BFE:
	ldrb r0, [r4, 0x2]
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	ldrb r0, [r4, 0x2]
	ldr r1, =gUnknown_0203CF1C
	ldr r1, [r1]
	ldr r3, =0x000040c0
	adds r2, r1, r3
	ldrb r2, [r2]
	lsls r2, 12
	adds r2, 0xBC
	adds r1, r2
	bl SetBgTilemapBuffer
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
_081C0C2A:
	ldrb r0, [r4, 0x2]
	movs r1, 0x80
	lsls r1, 6
	movs r2, 0x1
	bl ChangeBgX
	ldrh r0, [r4]
	adds r0, 0x20
	strh r0, [r4]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xFF
	ble _081C0C52
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81C0C68
	str r0, [r1]
_081C0C52:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0B8C

	thumb_func_start sub_81C0C68
sub_81C0C68: @ 81C0C68
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r2, r4, 2
	adds r2, r4
	lsls r2, 3
	ldr r0, =gTasks + 0x8
	adds r2, r0
	ldr r5, =gUnknown_0203CF1C
	ldr r3, [r5]
	ldr r0, =0x000040c9
	adds r3, r0
	ldrb r0, [r3]
	movs r1, 0x1
	eors r0, r1
	movs r1, 0
	strb r0, [r3]
	strh r1, [r2, 0x2]
	strh r1, [r2]
	bl sub_81C1BA0
	ldr r0, [r5]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	bl sub_81C2AFC
	bl sub_81C4280
	bl sub_81C0E24
	adds r0, r4, 0
	bl SwitchTaskToFollowupFunc
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0C68

	thumb_func_start sub_81C0CC4
sub_81C0CC4: @ 81C0CC4
	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, 0
	bne _081C0D0C
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c9
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C0CFC
	movs r0, 0x2
	b _081C0CFE
	.pool
_081C0CFC:
	movs r0, 0x1
_081C0CFE:
	strh r0, [r4, 0x2]
	ldrb r0, [r4, 0x2]
	movs r1, 0x80
	lsls r1, 9
	movs r2, 0
	bl ChangeBgX
_081C0D0C:
	ldrb r0, [r4, 0x2]
	movs r1, 0x80
	lsls r1, 6
	movs r2, 0x2
	bl ChangeBgX
	ldrh r0, [r4]
	adds r0, 0x20
	strh r0, [r4]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xFF
	ble _081C0D34
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81C0D44
	str r0, [r1]
_081C0D34:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0CC4

	thumb_func_start sub_81C0D44
sub_81C0D44: @ 81C0D44
	push {r4-r7,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
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c9
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C0D8C
	movs r0, 0x1
	movs r1, 0x7
	movs r2, 0x1
	bl SetBgAttribute
	movs r0, 0x2
	movs r1, 0x7
	movs r2, 0x2
	bl SetBgAttribute
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	b _081C0DA6
	.pool
_081C0D8C:
	movs r0, 0x2
	movs r1, 0x7
	movs r2, 0x1
	bl SetBgAttribute
	movs r0, 0x1
	movs r1, 0x7
	movs r2, 0x2
	bl SetBgAttribute
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
_081C0DA6:
	ldr r6, =gUnknown_0203CF1C
	ldr r2, [r6]
	ldr r7, =0x000040c0
	adds r1, r2, r7
	ldrb r0, [r1]
	cmp r0, 0x1
	bls _081C0DD0
	ldrb r0, [r4, 0x2]
	ldrb r1, [r1]
	lsls r1, 12
	ldr r3, =0xfffff0bc
	adds r1, r3
	adds r1, r2, r1
	bl SetBgTilemapBuffer
	ldrb r0, [r4, 0x2]
	movs r1, 0x80
	lsls r1, 9
	movs r2, 0
	bl ChangeBgX
_081C0DD0:
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	ldr r2, [r6]
	ldr r0, =0x000040c9
	adds r2, r0
	ldrb r0, [r2]
	movs r1, 0x1
	eors r0, r1
	movs r1, 0
	strb r0, [r2]
	strh r1, [r4, 0x2]
	strh r1, [r4]
	bl sub_81C1BA0
	ldr r0, [r6]
	adds r0, r7
	ldrb r0, [r0]
	bl sub_81C2AFC
	bl sub_81C4280
	bl sub_81C0E24
	adds r0, r5, 0
	bl SwitchTaskToFollowupFunc
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0D44

	thumb_func_start sub_81C0E24
sub_81C0E24: @ 81C0E24
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040c0
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081C0E3C
	adds r0, r1, 0
	adds r0, 0xC
	bl sub_81C22CC
_081C0E3C:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0E24

	thumb_func_start sub_81C0E48
sub_81C0E48: @ 81C0E48
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r5, =gUnknown_0203CF1C
	ldr r0, [r5]
	ldr r2, =0x000040c6
	adds r0, r2
	movs r1, 0
	strb r1, [r0]
	ldr r1, [r5]
	adds r2, r1, r2
	ldrb r0, [r2]
	lsls r0, 1
	adds r1, 0x84
	adds r1, r0
	ldrh r6, [r1]
	mov r8, r6
	movs r0, 0x13
	bl ClearWindowTilemap
	ldr r2, =gSprites
	ldr r0, [r5]
	ldr r1, =0x000040d5
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	blt _081C0E96
	movs r0, 0xD
	bl ClearWindowTilemap
_081C0E96:
	movs r4, 0x3
	negs r4, r4
	movs r0, 0x9
	adds r1, r4, 0
	bl sub_81C1DA4
	movs r0, 0x9
	adds r1, r4, 0
	adds r2, r6, 0
	bl sub_81C1EFC
	ldr r0, [r5]
	ldr r1, =0x000040c8
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C0EC4
	movs r0, 0x5
	bl ClearWindowTilemap
	movs r0, 0x6
	bl PutWindowTilemap
_081C0EC4:
	ldr r0, [r5]
	ldr r1, =0x000020bc
	adds r0, r1
	movs r1, 0x3
	movs r2, 0
	bl sub_81C2194
	ldr r0, [r5]
	ldr r1, =0x000030bc
	adds r0, r1
	movs r1, 0x1
	movs r2, 0
	bl sub_81C2194
	mov r0, r8
	bl sub_81C3E9C
	bl sub_81C3F44
	bl sub_81C44F0
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x8
	bl sub_81C4AF8
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C0F44
	str r1, [r0]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C0E48

	thumb_func_start sub_81C0F44
sub_81C0F44: @ 81C0F44
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C103A
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081C0F98
	movs r0, 0x4
	strh r0, [r4]
	movs r1, 0x1
	negs r1, r1
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r0, =0x000040c6
	adds r2, r0
	adds r0, r4, 0
	bl sub_81C1070
	b _081C103A
	.pool
_081C0F98:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081C0FC0
	movs r0, 0x4
	strh r0, [r4]
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r0, =0x000040c6
	adds r2, r0
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C1070
	b _081C103A
	.pool
_081C0FC0:
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C1026
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040c8
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081C0FE8
	subs r2, 0x4
	adds r0, r1, r2
	ldr r0, [r0]
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 11
	cmp r0, r1
	bne _081C1004
_081C0FE8:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81C11F4
	b _081C103A
	.pool
_081C1004:
	bl sub_81C1040
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C101E
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81C129C
	b _081C103A
_081C101E:
	movs r0, 0x20
	bl PlaySE
	b _081C103A
_081C1026:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C103A
	movs r0, 0x5
	bl PlaySE
	adds r0, r6, 0
	bl sub_81C11F4
_081C103A:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C0F44

	thumb_func_start sub_81C1040
sub_81C1040: @ 81C1040
	push {lr}
	movs r1, 0x1
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r2, r0, 0
	adds r2, 0x84
_081C104C:
	lsls r0, r1, 1
	adds r0, r2, r0
	ldrh r0, [r0]
	cmp r0, 0
	beq _081C1060
	movs r0, 0x1
	b _081C106C
	.pool
_081C1060:
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x3
	bls _081C104C
	movs r0, 0
_081C106C:
	pop {r1}
	bx r1
	thumb_func_end sub_81C1040

	thumb_func_start sub_81C1070
sub_81C1070: @ 81C1070
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r7, r0, 0
	adds r4, r1, 0
	mov r8, r2
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	mov r0, r8
	ldrb r6, [r0]
	movs r2, 0
	lsls r4, 24
	asrs r4, 24
	mov r12, r4
	movs r1, 0
	ldrsh r4, [r7, r1]
	ldrb r0, [r7]
	lsls r3, r0, 24
_081C109C:
	lsls r0, r6, 24
	asrs r0, 24
	add r0, r12
	lsls r0, 24
	lsrs r6, r0, 24
	asrs r0, 24
	cmp r0, r4
	ble _081C10B0
	movs r6, 0
	b _081C10B6
_081C10B0:
	cmp r0, 0
	bge _081C10B6
	lsrs r6, r3, 24
_081C10B6:
	lsls r0, r6, 24
	asrs r1, r0, 24
	mov r9, r0
	cmp r1, 0x4
	bne _081C10C2
	b _081C11CC
_081C10C2:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	lsls r1, 1
	adds r0, 0x84
	adds r0, r1
	ldrh r5, [r0]
	cmp r5, 0
	bne _081C10E2
	lsls r0, r2, 24
	movs r1, 0x80
	lsls r1, 17
	adds r0, r1
	lsrs r2, r0, 24
	asrs r0, 24
	cmp r0, 0x3
	ble _081C109C
_081C10E2:
	adds r0, r5, 0
	bl sub_81C240C
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r5, 0
	bl sub_81C3E9C
	mov r1, r8
	ldrb r0, [r1]
	cmp r0, 0x4
	bne _081C1110
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c4
	adds r0, r1
	ldrh r0, [r0]
	cmp r0, 0
	beq _081C1118
_081C1110:
	movs r1, 0x2
	ldrsh r0, [r7, r1]
	cmp r0, 0x1
	bne _081C115E
_081C1118:
	movs r0, 0x13
	bl ClearWindowTilemap
	ldr r2, =gSprites
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040d5
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	blt _081C1142
	movs r0, 0xD
	bl ClearWindowTilemap
_081C1142:
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r4, 0x3
	negs r4, r4
	movs r0, 0x9
	adds r1, r4, 0
	bl sub_81C1DA4
	movs r0, 0x9
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_81C1EFC
_081C115E:
	mov r1, r8
	ldrb r0, [r1]
	cmp r0, 0x4
	beq _081C11A0
	mov r1, r9
	asrs r0, r1, 24
	cmp r0, 0x4
	bne _081C11A0
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c4
	adds r0, r1
	ldrh r0, [r0]
	cmp r0, 0
	bne _081C11A0
	movs r0, 0xE
	bl ClearWindowTilemap
	movs r0, 0xF
	bl ClearWindowTilemap
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0
	movs r1, 0x3
	bl sub_81C1DA4
	movs r0, 0
	movs r1, 0x3
	movs r2, 0
	bl sub_81C1EFC
_081C11A0:
	mov r0, r8
	strb r6, [r0]
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c6
	adds r0, r1
	cmp r8, r0
	bne _081C11E0
	movs r0, 0x8
	bl sub_81C4D18
	b _081C11E6
	.pool
_081C11CC:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c4
	adds r0, r1
	ldrh r5, [r0]
	b _081C10E2
	.pool
_081C11E0:
	movs r0, 0x12
	bl sub_81C4D18
_081C11E6:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C1070

	thumb_func_start sub_81C11F4
sub_81C11F4: @ 81C11F4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r0, 0x8
	bl sub_81C4C60
	movs r0, 0x6
	bl ClearWindowTilemap
	movs r0, 0x5
	bl PutWindowTilemap
	movs r0, 0
	bl sub_81C3E9C
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	ldr r1, =0x000020bc
	adds r0, r1
	movs r1, 0x3
	movs r2, 0x1
	bl sub_81C2194
	ldr r0, [r4]
	ldr r1, =0x000030bc
	adds r0, r1
	movs r1, 0x1
	movs r2, 0x1
	bl sub_81C2194
	bl sub_81C4064
	ldr r0, [r4]
	ldr r1, =0x000040c6
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x4
	beq _081C125E
	movs r0, 0xE
	bl ClearWindowTilemap
	movs r0, 0xF
	bl ClearWindowTilemap
	movs r0, 0
	movs r1, 0x3
	bl sub_81C1DA4
	movs r0, 0
	movs r1, 0x3
	movs r2, 0
	bl sub_81C1EFC
_081C125E:
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81C0510
	str r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C11F4

	thumb_func_start sub_81C129C
sub_81C129C: @ 81C129C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r2, =0x000040c6
	adds r1, r0, r2
	ldrb r1, [r1]
	adds r2, 0x1
	adds r0, r2
	strb r1, [r0]
	movs r0, 0x1
	bl sub_81C4C84
	movs r0, 0x12
	bl sub_81C4AF8
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C12E4
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C129C

	thumb_func_start sub_81C12E4
sub_81C12E4: @ 81C12E4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C13AA
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081C1338
	movs r0, 0x3
	strh r0, [r4]
	movs r1, 0x1
	negs r1, r1
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r0, =0x000040c7
	adds r2, r0
	adds r0, r4, 0
	bl sub_81C1070
	b _081C13AA
	.pool
_081C1338:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081C1360
	movs r0, 0x3
	strh r0, [r4]
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r0, =0x000040c7
	adds r2, r0
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C1070
	b _081C13AA
	.pool
_081C1360:
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C139A
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r2, =0x000040c6
	adds r1, r0, r2
	adds r2, 0x1
	adds r0, r2
	ldrb r1, [r1]
	ldrb r0, [r0]
	cmp r1, r0
	bne _081C1390
	adds r0, r5, 0
	movs r1, 0
	bl sub_81C13B0
	b _081C13AA
	.pool
_081C1390:
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81C13B0
	b _081C13AA
_081C139A:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C13AA
	adds r0, r6, 0
	movs r1, 0
	bl sub_81C13B0
_081C13AA:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C12E4

	thumb_func_start sub_81C13B0
sub_81C13B0: @ 81C13B0
	push {r4-r7,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81C4C84
	movs r0, 0x12
	bl sub_81C4C60
	cmp r4, 0x1
	bne _081C1464
	ldr r0, =gUnknown_0203CF1C
	ldr r3, [r0]
	ldr r1, =0x000040bd
	adds r0, r3, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C1410
	ldr r0, [r3]
	ldr r2, =0x000040be
	adds r1, r3, r2
	ldrb r2, [r1]
	movs r1, 0x64
	muls r1, r2
	adds r0, r1
	ldr r4, =0x000040c6
	adds r1, r3, r4
	ldrb r1, [r1]
	adds r4, 0x1
	adds r2, r3, r4
	ldrb r2, [r2]
	bl sub_81C14BC
	b _081C1430
	.pool
_081C1410:
	ldr r0, [r3]
	ldr r2, =0x000040be
	adds r1, r3, r2
	ldrb r2, [r1]
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 4
	adds r0, r1
	ldr r4, =0x000040c6
	adds r1, r3, r4
	ldrb r1, [r1]
	adds r4, 0x1
	adds r2, r3, r4
	ldrb r2, [r2]
	bl sub_81C15EC
_081C1430:
	ldr r5, =gUnknown_0203CF1C
	ldr r0, [r5]
	adds r0, 0xC
	bl sub_81C0098
	ldr r1, [r5]
	ldr r6, =0x000040c6
	adds r0, r1, r6
	ldrb r0, [r0]
	ldr r4, =0x000040c7
	adds r1, r4
	ldrb r1, [r1]
	bl sub_81C40A0
	ldr r1, [r5]
	adds r0, r1, r6
	ldrb r0, [r0]
	adds r1, r4
	ldrb r1, [r1]
	bl sub_81C4568
	ldr r0, [r5]
	adds r4, r0, r4
	ldrb r1, [r4]
	adds r0, r6
	strb r1, [r0]
_081C1464:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040c6
	adds r0, r1, r2
	ldrb r0, [r0]
	lsls r0, 1
	adds r1, 0x84
	adds r1, r0
	ldrh r4, [r1]
	adds r0, r4, 0
	bl sub_81C3E9C
	adds r0, r4, 0
	bl sub_81C240C
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C0F44
	str r1, [r0]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C13B0

	thumb_func_start sub_81C14BC
sub_81C14BC: @ 81C14BC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x28
	adds r7, r0, 0
	adds r4, r1, 0
	adds r6, r2, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r6, 24
	lsrs r6, 24
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	lsls r0, r4, 1
	mov r10, r0
	adds r1, r2, 0
	adds r1, 0x84
	adds r0, r1, r0
	str r0, [sp, 0x8]
	ldrh r0, [r0]
	mov r3, sp
	adds r3, 0x2
	str r3, [sp, 0x1C]
	strh r0, [r3]
	lsls r0, r6, 1
	mov r9, r0
	add r1, r9
	str r1, [sp, 0xC]
	ldrh r1, [r1]
	mov r0, sp
	strh r1, [r0]
	adds r1, r2, 0
	adds r1, 0x8C
	adds r3, r1, r4
	str r3, [sp, 0x10]
	ldrb r0, [r3]
	mov r3, sp
	adds r3, 0x5
	str r3, [sp, 0x24]
	strb r0, [r3]
	adds r1, r6
	str r1, [sp, 0x14]
	ldrb r0, [r1]
	mov r1, sp
	adds r1, 0x4
	str r1, [sp, 0x20]
	strb r0, [r1]
	adds r2, 0xA4
	str r2, [sp, 0x18]
	ldrb r0, [r2]
	mov r5, sp
	adds r5, 0x6
	strb r0, [r5]
	ldr r1, =gUnknown_08329D22
	adds r0, r4, r1
	ldrb r0, [r0]
	mov r8, r0
	ldrb r0, [r5]
	adds r2, r0, 0
	mov r3, r8
	ands r2, r3
	mov r3, r10
	asrs r2, r3
	lsls r2, 24
	lsrs r2, 24
	adds r1, r6, r1
	ldrb r1, [r1]
	mov r12, r1
	adds r1, r0, 0
	mov r3, r12
	ands r1, r3
	mov r3, r9
	asrs r1, r3
	lsls r1, 24
	lsrs r1, 24
	mov r3, r8
	bics r0, r3
	strb r0, [r5]
	ldrb r0, [r5]
	mov r3, r12
	bics r0, r3
	strb r0, [r5]
	mov r0, r9
	lsls r2, r0
	mov r3, r10
	lsls r1, r3
	adds r2, r1
	ldrb r0, [r5]
	orrs r0, r2
	strb r0, [r5]
	adds r1, r4, 0
	adds r1, 0xD
	adds r0, r7, 0
	mov r2, sp
	bl SetMonData
	adds r1, r6, 0
	adds r1, 0xD
	adds r0, r7, 0
	ldr r2, [sp, 0x1C]
	bl SetMonData
	adds r4, 0x11
	adds r0, r7, 0
	adds r1, r4, 0
	ldr r2, [sp, 0x20]
	bl SetMonData
	adds r6, 0x11
	adds r0, r7, 0
	adds r1, r6, 0
	ldr r2, [sp, 0x24]
	bl SetMonData
	adds r0, r7, 0
	movs r1, 0x15
	adds r2, r5, 0
	bl SetMonData
	mov r0, sp
	ldrh r0, [r0]
	ldr r1, [sp, 0x8]
	strh r0, [r1]
	ldr r3, [sp, 0x1C]
	ldrh r0, [r3]
	ldr r1, [sp, 0xC]
	strh r0, [r1]
	ldr r3, [sp, 0x20]
	ldrb r0, [r3]
	ldr r1, [sp, 0x10]
	strb r0, [r1]
	ldr r3, [sp, 0x24]
	ldrb r0, [r3]
	ldr r1, [sp, 0x14]
	strb r0, [r1]
	ldrb r0, [r5]
	ldr r3, [sp, 0x18]
	strb r0, [r3]
	add sp, 0x28
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C14BC

	thumb_func_start sub_81C15EC
sub_81C15EC: @ 81C15EC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x28
	adds r7, r0, 0
	adds r4, r1, 0
	adds r6, r2, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r6, 24
	lsrs r6, 24
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	lsls r0, r4, 1
	mov r10, r0
	adds r1, r2, 0
	adds r1, 0x84
	adds r0, r1, r0
	str r0, [sp, 0x8]
	ldrh r0, [r0]
	mov r3, sp
	adds r3, 0x2
	str r3, [sp, 0x1C]
	strh r0, [r3]
	lsls r0, r6, 1
	mov r9, r0
	add r1, r9
	str r1, [sp, 0xC]
	ldrh r1, [r1]
	mov r0, sp
	strh r1, [r0]
	adds r1, r2, 0
	adds r1, 0x8C
	adds r3, r1, r4
	str r3, [sp, 0x10]
	ldrb r0, [r3]
	mov r3, sp
	adds r3, 0x5
	str r3, [sp, 0x24]
	strb r0, [r3]
	adds r1, r6
	str r1, [sp, 0x14]
	ldrb r0, [r1]
	mov r1, sp
	adds r1, 0x4
	str r1, [sp, 0x20]
	strb r0, [r1]
	adds r2, 0xA4
	str r2, [sp, 0x18]
	ldrb r0, [r2]
	mov r5, sp
	adds r5, 0x6
	strb r0, [r5]
	ldr r1, =gUnknown_08329D22
	adds r0, r4, r1
	ldrb r0, [r0]
	mov r8, r0
	ldrb r0, [r5]
	adds r2, r0, 0
	mov r3, r8
	ands r2, r3
	mov r3, r10
	asrs r2, r3
	lsls r2, 24
	lsrs r2, 24
	adds r1, r6, r1
	ldrb r1, [r1]
	mov r12, r1
	adds r1, r0, 0
	mov r3, r12
	ands r1, r3
	mov r3, r9
	asrs r1, r3
	lsls r1, 24
	lsrs r1, 24
	mov r3, r8
	bics r0, r3
	strb r0, [r5]
	ldrb r0, [r5]
	mov r3, r12
	bics r0, r3
	strb r0, [r5]
	mov r0, r9
	lsls r2, r0
	mov r3, r10
	lsls r1, r3
	adds r2, r1
	ldrb r0, [r5]
	orrs r0, r2
	strb r0, [r5]
	adds r1, r4, 0
	adds r1, 0xD
	adds r0, r7, 0
	mov r2, sp
	bl SetBoxMonData
	adds r1, r6, 0
	adds r1, 0xD
	adds r0, r7, 0
	ldr r2, [sp, 0x1C]
	bl SetBoxMonData
	adds r4, 0x11
	adds r0, r7, 0
	adds r1, r4, 0
	ldr r2, [sp, 0x20]
	bl SetBoxMonData
	adds r6, 0x11
	adds r0, r7, 0
	adds r1, r6, 0
	ldr r2, [sp, 0x24]
	bl SetBoxMonData
	adds r0, r7, 0
	movs r1, 0x15
	adds r2, r5, 0
	bl SetBoxMonData
	mov r0, sp
	ldrh r0, [r0]
	ldr r1, [sp, 0x8]
	strh r0, [r1]
	ldr r3, [sp, 0x1C]
	ldrh r0, [r3]
	ldr r1, [sp, 0xC]
	strh r0, [r1]
	ldr r3, [sp, 0x20]
	ldrb r0, [r3]
	ldr r1, [sp, 0x10]
	strb r0, [r1]
	ldr r3, [sp, 0x24]
	ldrb r0, [r3]
	ldr r1, [sp, 0x14]
	strb r0, [r1]
	ldrb r0, [r5]
	ldr r3, [sp, 0x18]
	strb r0, [r3]
	add sp, 0x28
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C15EC

	thumb_func_start sub_81C171C
sub_81C171C: @ 81C171C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_81C44F0
	movs r0, 0x8
	bl sub_81C4AF8
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C174C
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C171C

	thumb_func_start sub_81C174C
sub_81C174C: @ 81C174C
	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
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C176A
	b _081C189A
_081C176A:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r2, 0x80
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	beq _081C177A
	b _081C189A
_081C177A:
	ldr r6, =gMain
	ldrh r1, [r6, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081C17B4
	movs r0, 0x4
	strh r0, [r4]
	movs r1, 0x1
	negs r1, r1
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r0, =0x000040c6
	adds r2, r0
	adds r0, r4, 0
	bl sub_81C1070
	b _081C189A
	.pool
_081C17B4:
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	beq _081C17DC
	movs r0, 0x4
	strh r0, [r4]
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r1, =0x000040c6
	adds r2, r1
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C1070
	b _081C189A
	.pool
_081C17DC:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	bne _081C17F0
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C17FC
_081C17F0:
	movs r1, 0x1
	negs r1, r1
	adds r0, r5, 0
	bl sub_81C0A8C
	b _081C189A
_081C17FC:
	ldrh r1, [r6, 0x2E]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _081C1812
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _081C181C
_081C1812:
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81C0A8C
	b _081C189A
_081C181C:
	ldrh r1, [r6, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C1876
	bl sub_81C18A8
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C1868
	bl sub_81C48F0
	movs r0, 0x5
	bl PlaySE
	ldr r2, =gUnknown_0203CF21
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c6
	adds r0, r1
	ldrb r0, [r0]
	strb r0, [r2]
	ldr r1, =gSpecialVar_0x8005
	ldrb r0, [r2]
	strh r0, [r1]
	adds r0, r5, 0
	bl sub_81C044C
	b _081C189A
	.pool
_081C1868:
	movs r0, 0x20
	bl PlaySE
	adds r0, r5, 0
	bl sub_81C18F4
	b _081C189A
_081C1876:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C189A
	bl sub_81C48F0
	movs r0, 0x5
	bl PlaySE
	ldr r1, =gUnknown_0203CF21
	movs r0, 0x4
	strb r0, [r1]
	ldr r1, =gSpecialVar_0x8005
	movs r0, 0x4
	strh r0, [r1]
	adds r0, r5, 0
	bl sub_81C044C
_081C189A:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C174C

	thumb_func_start sub_81C18A8
sub_81C18A8: @ 81C18A8
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r0, =0x000040c6
	adds r1, r2, r0
	ldrb r0, [r1]
	cmp r0, 0x4
	beq _081C18DA
	ldr r3, =0x000040c4
	adds r0, r2, r3
	ldrh r0, [r0]
	cmp r0, 0
	beq _081C18DA
	ldrb r1, [r1]
	lsls r1, 1
	adds r0, r2, 0
	adds r0, 0x84
	adds r0, r1
	ldrh r0, [r0]
	bl sub_81B6D14
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C18EC
_081C18DA:
	movs r0, 0x1
	b _081C18EE
	.pool
_081C18EC:
	movs r0, 0
_081C18EE:
	pop {r1}
	bx r1
	thumb_func_end sub_81C18A8

	thumb_func_start sub_81C18F4
sub_81C18F4: @ 81C18F4
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0xE
	bl ClearWindowTilemap
	movs r0, 0xF
	bl ClearWindowTilemap
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0
	movs r1, 0x3
	bl sub_81C1DA4
	movs r0, 0
	movs r1, 0x3
	movs r2, 0
	bl sub_81C1EFC
	bl sub_81C4154
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C1940
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C18F4

	thumb_func_start sub_81C1940
sub_81C1940: @ 81C1940
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	mov r8, r0
	ldr r0, =gTasks + 0x8
	mov r9, r0
	mov r4, r8
	add r4, r9
	ldr r0, =sub_81C1E20
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C196C
	b _081C1B74
_081C196C:
	ldr r6, =gMain
	ldrh r1, [r6, 0x2E]
	movs r0, 0x40
	ands r0, r1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0
	beq _081C19B0
	movs r0, 0x1
	strh r0, [r4, 0x2]
	movs r0, 0x4
	strh r0, [r4]
	movs r1, 0x1
	negs r1, r1
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r0, =0x000040c6
	adds r2, r0
	adds r0, r4, 0
	bl sub_81C1070
	movs r0, 0
	strh r0, [r4, 0x2]
	b _081C1B6A
	.pool
_081C19B0:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081C19DC
	movs r0, 0x1
	strh r0, [r4, 0x2]
	movs r0, 0x4
	strh r0, [r4]
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r1, =0x000040c6
	adds r2, r1
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C1070
	strh r5, [r4, 0x2]
	b _081C1B6A
	.pool
_081C19DC:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	bne _081C19F0
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C1A64
_081C19F0:
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	ldr r2, =0x000040c0
	adds r0, r2
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _081C1A00
	b _081C1B74
_081C1A00:
	movs r0, 0x13
	bl ClearWindowTilemap
	ldr r2, =gSprites
	ldr r0, [r4]
	ldr r1, =0x000040d5
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	blt _081C1A28
	movs r0, 0xD
	bl ClearWindowTilemap
_081C1A28:
	ldr r1, [r4]
	ldr r2, =0x000040c6
	adds r0, r1, r2
	ldrb r0, [r0]
	lsls r0, 1
	adds r1, 0x84
	adds r1, r0
	ldrh r5, [r1]
	mov r0, r9
	subs r0, 0x8
	add r0, r8
	ldr r1, =sub_81C174C
	str r1, [r0]
	movs r1, 0x1
	negs r1, r1
	adds r0, r7, 0
	b _081C1ACE
	.pool
_081C1A64:
	ldrh r1, [r6, 0x2E]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _081C1A7A
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _081C1B04
_081C1A7A:
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	beq _081C1B74
	movs r0, 0x13
	bl ClearWindowTilemap
	ldr r2, =gSprites
	ldr r0, [r4]
	ldr r1, =0x000040d5
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	blt _081C1AB0
	movs r0, 0xD
	bl ClearWindowTilemap
_081C1AB0:
	ldr r1, [r4]
	ldr r2, =0x000040c6
	adds r0, r1, r2
	ldrb r0, [r0]
	lsls r0, 1
	adds r1, 0x84
	adds r1, r0
	ldrh r5, [r1]
	mov r0, r9
	subs r0, 0x8
	add r0, r8
	ldr r1, =sub_81C174C
	str r1, [r0]
	adds r0, r7, 0
	movs r1, 0x1
_081C1ACE:
	bl sub_81C0A8C
	movs r4, 0x2
	negs r4, r4
	movs r0, 0x9
	adds r1, r4, 0
	bl sub_81C1DA4
	movs r0, 0x9
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_81C1EFC
	b _081C1B74
	.pool
_081C1B04:
	ldrh r1, [r6, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _081C1B74
	movs r0, 0x13
	bl ClearWindowTilemap
	ldr r2, =gSprites
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	ldr r1, =0x000040d5
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	blt _081C1B38
	movs r0, 0xD
	bl ClearWindowTilemap
_081C1B38:
	ldr r1, [r4]
	ldr r2, =0x000040c6
	adds r0, r1, r2
	ldrb r0, [r0]
	lsls r0, 1
	adds r1, 0x84
	adds r1, r0
	ldrh r5, [r1]
	adds r0, r5, 0
	bl sub_81C3E9C
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r4, 0x3
	negs r4, r4
	movs r0, 0x9
	adds r1, r4, 0
	bl sub_81C1DA4
	movs r0, 0x9
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_81C1EFC
_081C1B6A:
	mov r0, r9
	subs r0, 0x8
	add r0, r8
	ldr r1, =sub_81C174C
	str r1, [r0]
_081C1B74:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C1940

	thumb_func_start sub_81C1B94
sub_81C1B94: @ 81C1B94
	ldr r0, =gUnknown_0203CF21
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_81C1B94

	thumb_func_start sub_81C1BA0
sub_81C1BA0: @ 81C1BA0
	push {r4-r7,lr}
	sub sp, 0xC
	movs r0, 0x20
	bl Alloc
	adds r4, r0, 0
	movs r5, 0
_081C1BAE:
	lsls r0, r5, 25
	lsrs r1, r0, 24
	adds r6, r1, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r3, [r0]
	ldr r2, =0x000040c1
	adds r0, r3, r2
	ldrb r0, [r0]
	cmp r5, r0
	bcs _081C1BD8
	lsls r0, r1, 1
	adds r0, r4
	movs r1, 0x40
	strh r1, [r0]
	strh r1, [r0, 0x2]
	movs r1, 0x50
	b _081C1BEE
	.pool
_081C1BD8:
	ldr r7, =0x000040c2
	adds r0, r3, r7
	ldrb r2, [r0]
	cmp r5, r2
	bls _081C1BF8
	lsls r0, r1, 1
	adds r0, r4
	movs r1, 0x4A
	strh r1, [r0]
	strh r1, [r0, 0x2]
	movs r1, 0x5A
_081C1BEE:
	strh r1, [r0, 0x10]
	strh r1, [r0, 0x12]
	b _081C1C78
	.pool
_081C1BF8:
	ldr r7, =0x000040c0
	adds r0, r3, r7
	ldrb r0, [r0]
	cmp r5, r0
	bcs _081C1C1C
	lsls r1, 1
	adds r1, r4
	movs r0, 0x46
	strh r0, [r1]
	movs r0, 0x47
	strh r0, [r1, 0x2]
	movs r0, 0x56
	strh r0, [r1, 0x10]
	movs r0, 0x57
	b _081C1C76
	.pool
_081C1C1C:
	cmp r5, r0
	bne _081C1C4C
	cmp r5, r2
	beq _081C1C38
	lsls r1, 1
	adds r1, r4
	movs r0, 0x41
	strh r0, [r1]
	movs r0, 0x42
	strh r0, [r1, 0x2]
	movs r0, 0x51
	strh r0, [r1, 0x10]
	movs r0, 0x52
	b _081C1C76
_081C1C38:
	lsls r1, 1
	adds r1, r4
	movs r0, 0x4B
	strh r0, [r1]
	movs r0, 0x4C
	strh r0, [r1, 0x2]
	movs r0, 0x5B
	strh r0, [r1, 0x10]
	movs r0, 0x5C
	b _081C1C76
_081C1C4C:
	cmp r5, r2
	beq _081C1C64
	lsls r1, 1
	adds r1, r4
	movs r0, 0x43
	strh r0, [r1]
	movs r0, 0x44
	strh r0, [r1, 0x2]
	movs r0, 0x53
	strh r0, [r1, 0x10]
	movs r0, 0x54
	b _081C1C76
_081C1C64:
	lsls r1, r6, 1
	adds r1, r4
	movs r0, 0x48
	strh r0, [r1]
	movs r0, 0x49
	strh r0, [r1, 0x2]
	movs r0, 0x58
	strh r0, [r1, 0x10]
	movs r0, 0x59
_081C1C76:
	strh r0, [r1, 0x12]
_081C1C78:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _081C1BAE
	movs r0, 0x8
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x10
	str r0, [sp, 0x8]
	movs r0, 0x3
	adds r1, r4, 0
	movs r2, 0xB
	movs r3, 0
	bl CopyToBgTilemapBufferRect_ChangePalette
	movs r0, 0x3
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r4, 0
	bl Free
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C1BA0

	thumb_func_start sub_81C1CB0
sub_81C1CB0: @ 81C1CB0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	adds r4, r0, 0
	mov r8, r1
	lsls r2, 24
	lsrs r6, r2, 24
	lsls r3, 24
	lsrs r5, r3, 24
	ldrb r1, [r4, 0x6]
	ldrb r0, [r4, 0x7]
	lsls r0, 1
	muls r0, r1
	bl Alloc
	adds r7, r0, 0
	mov r1, sp
	ldrh r0, [r4, 0x4]
	strh r0, [r1]
	ldrb r1, [r4, 0x7]
	ldrb r0, [r4, 0x6]
	adds r2, r1, 0
	muls r2, r0
	movs r0, 0x80
	lsls r0, 17
	orrs r2, r0
	mov r0, sp
	adds r1, r7, 0
	bl CpuSet
	ldrb r0, [r4, 0x6]
	cmp r0, r6
	beq _081C1D60
	cmp r5, 0
	bne _081C1D30
	movs r5, 0
	ldrb r0, [r4, 0x7]
	cmp r5, r0
	bcs _081C1D60
_081C1D00:
	ldrb r2, [r4, 0x6]
	adds r1, r2, 0
	muls r1, r5
	adds r3, r6, r1
	lsls r3, 1
	ldr r0, [r4]
	adds r0, r3
	lsls r1, 1
	adds r1, r7, r1
	subs r2, r6
	ldr r3, =0x001fffff
	ands r2, r3
	bl CpuSet
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	ldrb r3, [r4, 0x7]
	cmp r5, r3
	bcc _081C1D00
	b _081C1D60
	.pool
_081C1D30:
	movs r5, 0
	ldrb r0, [r4, 0x7]
	cmp r5, r0
	bcs _081C1D60
_081C1D38:
	ldrb r2, [r4, 0x6]
	adds r1, r2, 0
	muls r1, r5
	lsls r3, r1, 1
	ldr r0, [r4]
	adds r0, r3
	adds r1, r6, r1
	lsls r1, 1
	adds r1, r7, r1
	subs r2, r6
	ldr r3, =0x001fffff
	ands r2, r3
	bl CpuSet
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	ldrb r3, [r4, 0x7]
	cmp r5, r3
	bcc _081C1D38
_081C1D60:
	movs r5, 0
	b _081C1D8A
	.pool
_081C1D68:
	ldrb r2, [r4, 0x6]
	adds r0, r2, 0
	muls r0, r5
	lsls r0, 1
	adds r0, r7, r0
	ldrb r1, [r4, 0x9]
	adds r1, r5
	lsls r1, 5
	ldrb r3, [r4, 0x8]
	adds r1, r3
	lsls r1, 1
	add r1, r8
	bl CpuSet
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
_081C1D8A:
	ldrb r0, [r4, 0x7]
	cmp r5, r0
	bcc _081C1D68
	adds r0, r7, 0
	bl Free
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C1CB0

	thumb_func_start sub_81C1DA4
sub_81C1DA4: @ 81C1DA4
	push {r4-r6,lr}
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 16
	lsrs r4, r1, 16
	asrs r1, 16
	ldr r3, =gUnknown_0861CC04
	ldrb r2, [r3, 0x6]
	cmp r1, r2
	ble _081C1DBA
	adds r4, r2, 0
_081C1DBA:
	lsls r0, r4, 16
	asrs r0, 16
	cmp r0, 0
	beq _081C1DC6
	cmp r0, r2
	bne _081C1DE8
_081C1DC6:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r0, =0x000020bc
	adds r1, r0
	lsls r2, r4, 24
	lsrs r2, 24
	adds r0, r3, 0
	movs r3, 0x1
	bl sub_81C1CB0
	b _081C1E12
	.pool
_081C1DE8:
	ldr r5, =sub_81C1E20
	adds r0, r5, 0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	bne _081C1E04
	adds r0, r5, 0
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r2, r0, 24
_081C1E04:
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	strh r4, [r0, 0x8]
	strh r6, [r0, 0xA]
_081C1E12:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C1DA4

	thumb_func_start sub_81C1E20
sub_81C1E20: @ 81C1E20
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4]
	ldrh r1, [r4, 0x2]
	adds r0, r1
	strh r0, [r4, 0x2]
	lsls r0, 16
	cmp r0, 0
	bge _081C1E50
	movs r0, 0
	strh r0, [r4, 0x2]
	ldr r7, =gUnknown_0861CC04
	b _081C1E60
	.pool
_081C1E50:
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	ldr r0, =gUnknown_0861CC04
	ldrb r2, [r0, 0x6]
	adds r7, r0, 0
	cmp r1, r2
	ble _081C1E60
	strh r2, [r4, 0x2]
_081C1E60:
	ldr r5, =gUnknown_0203CF1C
	ldr r1, [r5]
	ldr r0, =0x000020bc
	adds r1, r0
	ldrb r2, [r4, 0x2]
	adds r0, r7, 0
	movs r3, 0x1
	bl sub_81C1CB0
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	cmp r0, 0
	ble _081C1E80
	ldrb r7, [r7, 0x6]
	cmp r0, r7
	blt _081C1EE0
_081C1E80:
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bge _081C1EAC
	ldr r0, [r5]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _081C1ED4
	movs r0, 0xE
	bl PutWindowTilemap
	b _081C1ED4
	.pool
_081C1EAC:
	ldr r2, =gSprites
	ldr r0, [r5]
	ldr r1, =0x000040d5
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	blt _081C1ECE
	movs r0, 0xD
	bl PutWindowTilemap
_081C1ECE:
	movs r0, 0x13
	bl PutWindowTilemap
_081C1ED4:
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r6, 0
	bl DestroyTask
_081C1EE0:
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C1E20

	thumb_func_start sub_81C1EFC
sub_81C1EFC: @ 81C1EFC
	push {r4-r7,lr}
	lsls r0, 16
	lsrs r7, r0, 16
	lsls r1, 16
	lsls r2, 16
	lsrs r6, r2, 16
	lsrs r4, r1, 16
	asrs r1, 16
	ldr r3, =gUnknown_0861CC10
	ldrb r2, [r3, 0x6]
	cmp r1, r2
	ble _081C1F16
	adds r4, r2, 0
_081C1F16:
	lsls r0, r4, 16
	asrs r0, 16
	cmp r0, 0
	beq _081C1F22
	cmp r0, r2
	bne _081C1F44
_081C1F22:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r0, =0x000030bc
	adds r1, r0
	lsls r2, r4, 24
	lsrs r2, 24
	adds r0, r3, 0
	movs r3, 0x1
	bl sub_81C1CB0
	b _081C1F70
	.pool
_081C1F44:
	ldr r5, =sub_81C1F80
	adds r0, r5, 0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	bne _081C1F60
	adds r0, r5, 0
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r2, r0, 24
_081C1F60:
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	strh r4, [r0, 0x8]
	strh r7, [r0, 0xA]
	strh r6, [r0, 0xC]
_081C1F70:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C1EFC

	thumb_func_start sub_81C1F80
sub_81C1F80: @ 81C1F80
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4]
	ldrh r1, [r4, 0x2]
	adds r0, r1
	strh r0, [r4, 0x2]
	lsls r0, 16
	cmp r0, 0
	bge _081C1FB0
	movs r0, 0
	strh r0, [r4, 0x2]
	ldr r7, =gUnknown_0861CC10
	b _081C1FC0
	.pool
_081C1FB0:
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	ldr r0, =gUnknown_0861CC10
	ldrb r2, [r0, 0x6]
	adds r7, r0, 0
	cmp r1, r2
	ble _081C1FC0
	strh r2, [r4, 0x2]
_081C1FC0:
	ldr r5, =gUnknown_0203CF1C
	ldr r1, [r5]
	ldr r0, =0x000030bc
	adds r1, r0
	ldrb r2, [r4, 0x2]
	adds r0, r7, 0
	movs r3, 0x1
	bl sub_81C1CB0
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	cmp r0, 0
	ble _081C1FE0
	ldrb r7, [r7, 0x6]
	cmp r0, r7
	blt _081C2058
_081C1FE0:
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bge _081C2024
	ldr r0, [r5]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C2006
	ldr r0, =sub_81C0B8C
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	bne _081C2006
	movs r0, 0xF
	bl PutWindowTilemap
_081C2006:
	ldrh r0, [r4, 0x4]
	bl sub_81C240C
	b _081C204C
	.pool
_081C2024:
	ldr r2, =gSprites
	ldr r0, [r5]
	ldr r1, =0x000040d5
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r0, [r0]
	lsls r0, 29
	cmp r0, 0
	blt _081C2046
	movs r0, 0xD
	bl PutWindowTilemap
_081C2046:
	movs r0, 0x13
	bl PutWindowTilemap
_081C204C:
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r6, 0
	bl DestroyTask
_081C2058:
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C1F80

	thumb_func_start sub_81C2074
sub_81C2074: @ 81C2074
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r1, 16
	lsrs r4, r1, 16
	asrs r1, 16
	ldr r3, =gUnknown_0861CBEC
	ldrb r2, [r3, 0x6]
	cmp r1, r2
	ble _081C208A
	adds r4, r2, 0
_081C208A:
	lsls r0, r4, 16
	asrs r0, 16
	cmp r0, 0
	beq _081C2096
	cmp r0, r2
	bne _081C20C8
_081C2096:
	ldr r5, =gUnknown_0203CF1C
	ldr r1, [r5]
	adds r1, 0xBC
	lsls r4, 24
	lsrs r4, 24
	adds r0, r3, 0
	adds r2, r4, 0
	movs r3, 0
	bl sub_81C1CB0
	ldr r0, =gUnknown_0861CBF8
	ldr r1, [r5]
	adds r1, 0xBC
	adds r2, r4, 0
	movs r3, 0
	bl sub_81C1CB0
	b _081C20E2
	.pool
_081C20C8:
	ldr r0, =sub_81C20F0
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	strh r4, [r1, 0x8]
	strh r5, [r1, 0xA]
_081C20E2:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2074

	thumb_func_start sub_81C20F0
sub_81C20F0: @ 81C20F0
	push {r4-r7,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
	ldrh r0, [r5]
	ldrh r1, [r5, 0x2]
	adds r0, r1
	strh r0, [r5, 0x2]
	lsls r0, 16
	cmp r0, 0
	bge _081C2120
	movs r0, 0
	strh r0, [r5, 0x2]
	ldr r7, =gUnknown_0861CBEC
	b _081C2130
	.pool
_081C2120:
	movs r0, 0x2
	ldrsh r1, [r5, r0]
	ldr r0, =gUnknown_0861CBEC
	ldrb r2, [r0, 0x6]
	adds r7, r0, 0
	cmp r1, r2
	ble _081C2130
	strh r2, [r5, 0x2]
_081C2130:
	ldr r4, =gUnknown_0203CF1C
	ldr r1, [r4]
	adds r1, 0xBC
	ldrb r2, [r5, 0x2]
	adds r0, r7, 0
	movs r3, 0
	bl sub_81C1CB0
	ldr r0, =gUnknown_0861CBF8
	ldr r1, [r4]
	adds r1, 0xBC
	ldrb r2, [r5, 0x2]
	movs r3, 0
	bl sub_81C1CB0
	movs r0, 0x3
	bl schedule_bg_copy_tilemap_to_vram
	movs r1, 0x2
	ldrsh r0, [r5, r1]
	cmp r0, 0
	ble _081C2162
	ldrb r7, [r7, 0x6]
	cmp r0, r7
	blt _081C2180
_081C2162:
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bge _081C217A
	bl sub_81C4A88
	movs r0, 0xD
	bl PutWindowTilemap
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
_081C217A:
	adds r0, r6, 0
	bl DestroyTask
_081C2180:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C20F0

	thumb_func_start sub_81C2194
sub_81C2194: @ 81C2194
	push {r4-r7,lr}
	adds r6, r0, 0
	lsls r2, 24
	lsls r1, 28
	lsrs r4, r1, 16
	ldr r7, =0x0000056a
	cmp r2, 0
	bne _081C21E4
	movs r3, 0
	ldr r5, =gUnknown_08DC3CD4
_081C21A8:
	adds r2, r7, r3
	lsls r2, 1
	adds r2, r6
	lsls r0, r3, 1
	adds r0, r5
	ldrh r1, [r0]
	adds r1, r4, r1
	strh r1, [r2]
	adds r0, r2, 0
	adds r0, 0x40
	strh r1, [r0]
	adds r2, 0x80
	adds r0, r3, 0
	adds r0, 0x14
	lsls r0, 1
	adds r0, r5
	ldrh r0, [r0]
	adds r0, r4, r0
	strh r0, [r2]
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x13
	bls _081C21A8
	b _081C221C
	.pool
_081C21E4:
	movs r3, 0
	ldr r5, =gUnknown_08DC3CD4
_081C21E8:
	adds r1, r7, r3
	lsls r1, 1
	adds r1, r6
	adds r0, r3, 0
	adds r0, 0x14
	lsls r0, 1
	adds r0, r5
	ldrh r0, [r0]
	adds r0, r4, r0
	strh r0, [r1]
	adds r2, r1, 0
	adds r2, 0x40
	adds r0, r3, 0
	adds r0, 0x28
	lsls r0, 1
	adds r0, r5
	ldrh r0, [r0]
	adds r0, r4, r0
	strh r0, [r2]
	adds r1, 0x80
	strh r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x13
	bls _081C21E8
_081C221C:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2194

	thumb_func_start sub_81C2228
sub_81C2228: @ 81C2228
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0
	bl CheckPartyPokerus
	lsls r0, 24
	cmp r0, 0
	bne _081C225C
	adds r0, r4, 0
	movs r1, 0
	bl CheckPartyHasHadPokerus
	lsls r0, 24
	cmp r0, 0
	beq _081C225C
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r2, =0x00000502
	adds r1, r0, r2
	movs r2, 0x2C
	b _081C2266
	.pool
_081C225C:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r2, =0x00000502
	adds r1, r0, r2
	ldr r2, =0x0000081a
_081C2266:
	strh r2, [r1]
	ldr r1, =0x00000d02
	adds r0, r1
	strh r2, [r0]
	movs r0, 0x3
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2228

	thumb_func_start sub_81C228C
sub_81C228C: @ 81C228C
	push {lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	bne _081C22AC
	movs r0, 0x8
	str r0, [sp]
	str r1, [sp, 0x4]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0x4
	movs r3, 0x8
	bl sub_8199C30
	b _081C22C0
_081C22AC:
	movs r0, 0x8
	str r0, [sp]
	movs r0, 0x5
	str r0, [sp, 0x4]
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0x4
	movs r3, 0x8
	bl sub_8199C30
_081C22C0:
	movs r0, 0x3
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0x8
	pop {r0}
	bx r0
	thumb_func_end sub_81C228C

	thumb_func_start sub_81C22CC
sub_81C22CC: @ 81C22CC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	adds r6, r1, 0
	adds r6, 0x70
	ldrb r1, [r6, 0x5]
	mov r8, r0
	cmp r1, 0x63
	bhi _081C2340
	ldr r5, =gExperienceTables
	adds r2, r1, 0
	adds r1, r2, 0x1
	lsls r1, 2
	ldr r4, =gBaseStats
	ldrh r3, [r6]
	lsls r0, r3, 3
	subs r0, r3
	lsls r0, 2
	adds r0, r4
	ldrb r3, [r0, 0x13]
	movs r0, 0xCA
	lsls r0, 1
	muls r0, r3
	adds r1, r0
	adds r1, r5
	lsls r2, 2
	adds r2, r0
	adds r2, r5
	ldr r1, [r1]
	ldr r2, [r2]
	subs r1, r2
	ldr r0, [r6, 0x10]
	subs r4, r0, r2
	lsls r0, r4, 6
	bl __udivsi3
	adds r6, r0, 0
	movs r7, 0
	adds r0, r7, 0
	orrs r0, r6
	cmp r0, 0
	bne _081C2344
	cmp r4, 0
	beq _081C2344
	movs r6, 0x1
	movs r7, 0
	b _081C2344
	.pool
_081C2340:
	movs r6, 0
	movs r7, 0
_081C2344:
	mov r1, r8
	ldr r0, [r1]
	ldr r2, =0x00001d66
	adds r2, r0
	mov r9, r2
	movs r0, 0
	mov r12, r0
	ldr r1, =0x00002062
	mov r10, r1
_081C2356:
	cmp r7, 0
	bgt _081C2362
	cmp r7, 0
	bne _081C237C
	cmp r6, 0x7
	bls _081C237C
_081C2362:
	mov r2, r12
	lsls r0, r2, 1
	add r0, r9
	ldr r2, =0x0000206a
	adds r1, r2, 0
	strh r1, [r0]
	b _081C23B6
	.pool
_081C237C:
	mov r1, r12
	lsls r0, r1, 1
	add r0, r9
	mov r8, r0
	adds r5, r7, 0
	adds r4, r6, 0
	cmp r7, 0
	bge _081C2394
	movs r4, 0x7
	movs r5, 0
	adds r4, r6
	adcs r5, r7
_081C2394:
	lsls r3, r5, 29
	lsrs r2, r4, 3
	adds r0, r3, 0
	orrs r0, r2
	asrs r1, r5, 3
	lsrs r5, r0, 29
	lsls r4, r1, 3
	adds r3, r5, 0
	orrs r3, r4
	lsls r2, r0, 3
	adds r1, r7, 0
	adds r0, r6, 0
	subs r0, r2
	sbcs r1, r3
	add r0, r10
	mov r2, r8
	strh r0, [r2]
_081C23B6:
	movs r0, 0x8
	negs r0, r0
	asrs r1, r0, 31
	adds r6, r0
	adcs r7, r1
	cmp r7, 0
	bge _081C23C8
	movs r6, 0
	movs r7, 0
_081C23C8:
	mov r0, r12
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r12, r0
	cmp r0, 0x7
	bls _081C2356
	movs r0, 0x1
	bl GetBgTilemapBuffer
	ldr r1, =gUnknown_0203CF1C
	ldr r1, [r1]
	ldr r2, =0x000010bc
	adds r1, r2
	cmp r0, r1
	bne _081C23F8
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	b _081C23FE
	.pool
_081C23F8:
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
_081C23FE:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C22CC

	thumb_func_start sub_81C240C
sub_81C240C: @ 81C240C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 16
	lsrs r3, r0, 16
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000038bc
	adds r5, r0, r1
	cmp r3, 0
	beq _081C2510
	ldr r1, =gContestEffects
	ldr r2, =gContestMoves
	lsls r3, 3
	adds r0, r3, r2
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldrb r4, [r0, 0x1]
	mov r9, r1
	mov r8, r2
	mov r10, r3
	cmp r4, 0xFF
	beq _081C244C
	adds r0, r4, 0
	movs r1, 0xA
	bl __udivsi3
	lsls r0, 24
	lsrs r4, r0, 24
_081C244C:
	movs r2, 0
	movs r6, 0x3
	movs r3, 0xF3
	lsls r3, 2
_081C2454:
	cmp r4, 0xFF
	beq _081C2484
	cmp r2, r4
	bcs _081C2484
	lsrs r0, r2, 2
	adds r1, r2, 0
	ands r1, r6
	lsls r0, 5
	adds r0, r1
	lsls r0, 1
	adds r0, r5
	adds r0, r3
	ldr r7, =0x0000103a
	b _081C2496
	.pool
_081C2484:
	lsrs r0, r2, 2
	adds r1, r2, 0
	ands r1, r6
	lsls r0, 5
	adds r0, r1
	lsls r0, 1
	adds r0, r5
	adds r0, r3
	ldr r7, =0x00001039
_081C2496:
	adds r1, r7, 0
	strh r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x7
	bls _081C2454
	mov r0, r10
	add r0, r8
	ldrb r0, [r0]
	lsls r0, 2
	add r0, r9
	ldrb r4, [r0, 0x2]
	cmp r4, 0xFF
	beq _081C24C0
	adds r0, r4, 0
	movs r1, 0xA
	bl __udivsi3
	lsls r0, 24
	lsrs r4, r0, 24
_081C24C0:
	movs r2, 0
	movs r6, 0x3
	ldr r3, =0x0000044c
_081C24C6:
	cmp r4, 0xFF
	beq _081C24F0
	cmp r2, r4
	bcs _081C24F0
	lsrs r0, r2, 2
	adds r1, r2, 0
	ands r1, r6
	lsls r0, 5
	adds r0, r1
	lsls r0, 1
	adds r0, r5
	adds r0, r3
	ldr r7, =0x0000103c
	b _081C2502
	.pool
_081C24F0:
	lsrs r0, r2, 2
	adds r1, r2, 0
	ands r1, r6
	lsls r0, 5
	adds r0, r1
	lsls r0, 1
	adds r0, r5
	adds r0, r3
	ldr r7, =0x0000103d
_081C2502:
	adds r1, r7, 0
	strh r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x7
	bls _081C24C6
_081C2510:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C240C

	thumb_func_start sub_81C2524
sub_81C2524: @ 81C2524
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0x74
	ldrb r0, [r0]
	cmp r0, 0
	beq _081C2544
	movs r1, 0x80
	lsls r1, 9
	movs r0, 0x3
	movs r2, 0
	bl ChangeBgX
	b _081C254E
	.pool
_081C2544:
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
_081C254E:
	pop {r0}
	bx r0
	thumb_func_end sub_81C2524

	thumb_func_start sub_81C2554
sub_81C2554: @ 81C2554
	push {r4,r5,lr}
	ldr r0, =gUnknown_0861CC24
	bl InitWindows
	bl DeactivateAllTextPrinters
	movs r4, 0
_081C2562:
	adds r0, r4, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x13
	bls _081C2562
	movs r4, 0
	ldr r5, =gUnknown_0203CF1C
	ldr r3, =0x000040cb
	movs r2, 0xFF
_081C257C:
	ldr r0, [r5]
	adds r0, r3
	adds r0, r4
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x7
	bls _081C257C
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2554

	thumb_func_start sub_81C25A4
sub_81C25A4: @ 81C25A4
	push {r4-r6,lr}
	sub sp, 0x14
	ldr r4, [sp, 0x24]
	ldr r5, [sp, 0x28]
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	movs r6, 0
	str r6, [sp]
	str r4, [sp, 0x4]
	lsls r4, r5, 1
	adds r4, r5
	ldr r5, =gUnknown_0861CD2C
	adds r4, r5
	str r4, [sp, 0x8]
	str r6, [sp, 0xC]
	str r1, [sp, 0x10]
	movs r1, 0x1
	bl AddTextPrinterParametrized2
	add sp, 0x14
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C25A4

	thumb_func_start sub_81C25E8
sub_81C25E8: @ 81C25E8
	push {lr}
	movs r0, 0x11
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0x12
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0x13
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0x74
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C2618
	bl sub_81C2628
	b _081C261C
	.pool
_081C2618:
	bl sub_81C2794
_081C261C:
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	pop {r0}
	bx r0
	thumb_func_end sub_81C25E8

	thumb_func_start sub_81C2628
sub_81C2628: @ 81C2628
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x18
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	movs r1, 0xC
	adds r1, r0
	mov r8, r1
	adds r7, r0, 0
	adds r7, 0x70
	ldrh r0, [r7]
	bl SpeciesToPokedexNum
	lsls r0, 16
	lsrs r5, r0, 16
	ldr r0, =0x0000ffff
	cmp r5, r0
	beq _081C26CE
	ldr r6, =gStringVar1
	ldr r1, =gText_UnkCtrlF908Clear01
	adds r0, r6, 0
	bl StringCopy
	ldr r4, =gStringVar2
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0x2
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r0, r6, 0
	adds r1, r4, 0
	bl StringAppend
	mov r0, r8
	bl IsMonShiny
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	bne _081C26AC
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r0, 0x11
	adds r1, r6, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	movs r0, 0
	bl sub_81C228C
	b _081C26C6
	.pool
_081C26AC:
	movs r0, 0
	str r0, [sp]
	movs r0, 0x7
	str r0, [sp, 0x4]
	movs r0, 0x11
	adds r1, r6, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	movs r0, 0x1
	bl sub_81C228C
_081C26C6:
	movs r0, 0x11
	bl PutWindowTilemap
	b _081C26EE
_081C26CE:
	movs r0, 0x11
	bl ClearWindowTilemap
	mov r0, r8
	bl IsMonShiny
	lsls r0, 24
	cmp r0, 0
	bne _081C26E8
	movs r0, 0
	bl sub_81C228C
	b _081C26EE
_081C26E8:
	movs r0, 0x1
	bl sub_81C228C
_081C26EE:
	ldr r4, =gStringVar1
	ldr r1, =gText_LevelSymbol
	adds r0, r4, 0
	bl StringCopy
	ldr r5, =gStringVar2
	ldrb r1, [r7, 0x5]
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r0, r4, 0
	adds r1, r5, 0
	bl StringAppend
	movs r6, 0
	str r6, [sp]
	movs r5, 0x1
	str r5, [sp, 0x4]
	movs r0, 0x13
	adds r1, r4, 0
	movs r2, 0x18
	movs r3, 0x11
	bl sub_81C25A4
	mov r0, r8
	adds r1, r4, 0
	bl GetMonNickname
	str r6, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x12
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	add r1, sp, 0x8
	movs r0, 0xBA
	strb r0, [r1]
	mov r0, sp
	adds r0, 0x9
	ldrh r2, [r7, 0x2]
	movs r1, 0xB
	muls r1, r2
	ldr r2, =gSpeciesNames
	adds r1, r2
	bl StringCopy
	str r6, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x13
	add r1, sp, 0x8
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldrh r1, [r7, 0x2]
	mov r0, r8
	bl sub_81C27DC
	movs r0, 0x12
	bl PutWindowTilemap
	movs r0, 0x13
	bl PutWindowTilemap
	add sp, 0x18
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2628

	thumb_func_start sub_81C2794
sub_81C2794: @ 81C2794
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0xC
	ldr r4, =gStringVar1
	adds r1, r4, 0
	bl GetMonNickname
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	movs r0, 0x12
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	movs r0, 0x12
	bl PutWindowTilemap
	movs r0, 0x11
	bl ClearWindowTilemap
	movs r0, 0x13
	bl ClearWindowTilemap
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2794

	thumb_func_start sub_81C27DC
sub_81C27DC: @ 81C27DC
	push {lr}
	sub sp, 0x8
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0x20
	beq _081C282C
	cmp r1, 0x1D
	beq _081C282C
	bl GetMonGender
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _081C27FE
	cmp r0, 0xFE
	beq _081C2818
	b _081C282C
_081C27FE:
	ldr r1, =gText_MaleSymbol
	str r0, [sp]
	movs r0, 0x3
	str r0, [sp, 0x4]
	movs r0, 0x13
	movs r2, 0x39
	movs r3, 0x11
	bl sub_81C25A4
	b _081C282C
	.pool
_081C2818:
	ldr r1, =gText_FemaleSymbol
	movs r0, 0
	str r0, [sp]
	movs r0, 0x4
	str r0, [sp, 0x4]
	movs r0, 0x13
	movs r2, 0x39
	movs r3, 0x11
	bl sub_81C25A4
_081C282C:
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C27DC

	thumb_func_start sub_81C2838
sub_81C2838: @ 81C2838
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 24
	ldr r3, =gUnknown_0861CDD3
	cmp r1, 0
	bne _081C284A
	subs r3, 0x80
_081C284A:
	lsls r2, 16
	lsrs r2, 16
	movs r0, 0x10
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r4, 0
	adds r1, r3, 0
	movs r3, 0
	bl BlitBitmapToWindow
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2838

	thumb_func_start sub_81C286C
sub_81C286C: @ 81C286C
	push {r4-r7,lr}
	sub sp, 0x8
	ldr r1, =gUnknown_085EA3CF
	movs r5, 0
	str r5, [sp]
	movs r6, 0x1
	str r6, [sp, 0x4]
	movs r0, 0
	movs r2, 0x2
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA3DC
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0x1
	movs r2, 0x2
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA3EB
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0x2
	movs r2, 0x2
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA3F8
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0x3
	movs r2, 0x2
	movs r3, 0x1
	bl sub_81C25A4
	ldr r7, =gText_Cancel2
	movs r0, 0x1
	adds r1, r7, 0
	movs r2, 0x3E
	bl GetStringRightAlignXOffset
	adds r4, r0, 0
	adds r2, r4, 0
	subs r2, 0x10
	cmp r2, 0
	bge _081C28CC
	movs r2, 0
_081C28CC:
	movs r0, 0x4
	movs r1, 0
	bl sub_81C2838
	lsls r2, r4, 24
	lsrs r2, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x4
	adds r1, r7, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r7, =gUnknown_085EA406
	movs r0, 0x1
	adds r1, r7, 0
	movs r2, 0x3E
	bl GetStringRightAlignXOffset
	adds r4, r0, 0
	adds r2, r4, 0
	subs r2, 0x10
	cmp r2, 0
	bge _081C28FE
	movs r2, 0
_081C28FE:
	movs r0, 0x5
	movs r1, 0
	bl sub_81C2838
	lsls r2, r4, 24
	lsrs r2, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x5
	adds r1, r7, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r7, =gUnknown_085EA3C8
	movs r0, 0x1
	adds r1, r7, 0
	movs r2, 0x3E
	bl GetStringRightAlignXOffset
	adds r4, r0, 0
	adds r2, r4, 0
	subs r2, 0x10
	cmp r2, 0
	bge _081C2930
	movs r2, 0
_081C2930:
	movs r0, 0x6
	movs r1, 0
	bl sub_81C2838
	lsls r2, r4, 24
	lsrs r2, 24
	str r5, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x6
	adds r1, r7, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA369
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0x8
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA378
	str r5, [sp]
	str r5, [sp, 0x4]
	movs r0, 0x9
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r4, =gUnknown_085EA361
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x2A
	bl GetStringCenterAlignXOffset
	adds r0, 0x6
	lsls r2, r0, 24
	lsrs r2, 24
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xA
	adds r1, r4, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r4, =gUnknown_085EA33C
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x2A
	bl GetStringCenterAlignXOffset
	adds r0, 0x6
	lsls r2, r0, 24
	lsrs r2, 24
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xA
	adds r1, r4, 0
	movs r3, 0x11
	bl sub_81C25A4
	ldr r4, =gUnknown_085EA343
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x2A
	bl GetStringCenterAlignXOffset
	adds r0, 0x6
	lsls r2, r0, 24
	lsrs r2, 24
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xA
	adds r1, r4, 0
	movs r3, 0x21
	bl sub_81C25A4
	ldr r4, =gUnknown_085EA34B
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x24
	bl GetStringCenterAlignXOffset
	adds r0, 0x2
	lsls r2, r0, 24
	lsrs r2, 24
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xB
	adds r1, r4, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r4, =gUnknown_085EA353
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x24
	bl GetStringCenterAlignXOffset
	adds r0, 0x2
	lsls r2, r0, 24
	lsrs r2, 24
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xB
	adds r1, r4, 0
	movs r3, 0x11
	bl sub_81C25A4
	ldr r4, =gUnknown_085EA35B
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x24
	bl GetStringCenterAlignXOffset
	adds r0, 0x2
	lsls r2, r0, 24
	lsrs r2, 24
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xB
	adds r1, r4, 0
	movs r3, 0x21
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA39F
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xC
	movs r2, 0x6
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA3AB
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xC
	movs r2, 0x6
	movs r3, 0x11
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA398
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xD
	movs r2, 0x2
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA37E
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xE
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA384
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xE
	movs r2, 0
	movs r3, 0x11
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA38D
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xF
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gUnknown_085EA394
	str r5, [sp]
	str r6, [sp, 0x4]
	movs r0, 0xF
	movs r2, 0
	movs r3, 0x11
	bl sub_81C25A4
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C286C

	thumb_func_start sub_81C2AFC
sub_81C2AFC: @ 81C2AFC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	movs r0, 0
	bl ClearWindowTilemap
	movs r0, 0x1
	bl ClearWindowTilemap
	movs r0, 0x2
	bl ClearWindowTilemap
	movs r0, 0x3
	bl ClearWindowTilemap
	cmp r4, 0x1
	beq _081C2B66
	cmp r4, 0x1
	bgt _081C2B2A
	cmp r4, 0
	beq _081C2B34
	b _081C2C06
_081C2B2A:
	cmp r5, 0x2
	beq _081C2B80
	cmp r5, 0x3
	beq _081C2BC4
	b _081C2C06
_081C2B34:
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0x4
	bl PutWindowTilemap
	bl sub_81A6BF4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C2B58
	bl sub_81B9E94
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C2B5E
_081C2B58:
	movs r0, 0x8
	bl PutWindowTilemap
_081C2B5E:
	movs r0, 0x9
	bl PutWindowTilemap
	b _081C2C06
_081C2B66:
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0xA
	bl PutWindowTilemap
	movs r0, 0xB
	bl PutWindowTilemap
	movs r0, 0xC
	bl PutWindowTilemap
	b _081C2C06
_081C2B80:
	movs r0, 0x2
	bl PutWindowTilemap
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040bc
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C2BBC
	adds r2, 0x8
	adds r0, r1, r2
	ldr r0, [r0]
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 11
	cmp r0, r1
	beq _081C2C06
	movs r0, 0xE
	bl PutWindowTilemap
	b _081C2C06
	.pool
_081C2BBC:
	movs r0, 0x5
	bl PutWindowTilemap
	b _081C2C06
_081C2BC4:
	movs r0, 0x3
	bl PutWindowTilemap
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040bc
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C2C00
	adds r2, 0x8
	adds r0, r1, r2
	ldr r0, [r0]
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 11
	cmp r0, r1
	beq _081C2C06
	movs r0, 0xF
	bl PutWindowTilemap
	b _081C2C06
	.pool
_081C2C00:
	movs r0, 0x5
	bl PutWindowTilemap
_081C2C06:
	movs r4, 0
	ldr r5, =gUnknown_0203CF1C
_081C2C0A:
	ldr r0, [r5]
	ldr r1, =0x000040cb
	adds r0, r1
	adds r0, r4
	ldrb r0, [r0]
	bl PutWindowTilemap
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x7
	bls _081C2C0A
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2AFC

	thumb_func_start sub_81C2C38
sub_81C2C38: @ 81C2C38
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r1, r0, 0
	cmp r0, 0x1
	beq _081C2C84
	cmp r0, 0x1
	bgt _081C2C4E
	cmp r0, 0
	beq _081C2C58
	b _081C2D0E
_081C2C4E:
	cmp r1, 0x2
	beq _081C2C98
	cmp r1, 0x3
	beq _081C2CD4
	b _081C2D0E
_081C2C58:
	movs r0, 0x4
	bl ClearWindowTilemap
	bl sub_81A6BF4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C2C76
	bl sub_81B9E94
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C2C7C
_081C2C76:
	movs r0, 0x8
	bl ClearWindowTilemap
_081C2C7C:
	movs r0, 0x9
	bl ClearWindowTilemap
	b _081C2D0E
_081C2C84:
	movs r0, 0xA
	bl ClearWindowTilemap
	movs r0, 0xB
	bl ClearWindowTilemap
	movs r0, 0xC
	bl ClearWindowTilemap
	b _081C2D0E
_081C2C98:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040bc
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C2CCC
	adds r2, 0x8
	adds r0, r1, r2
	ldr r0, [r0]
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 11
	cmp r0, r1
	beq _081C2D0E
	movs r0, 0xE
	bl ClearWindowTilemap
	b _081C2D0E
	.pool
_081C2CCC:
	movs r0, 0x5
	bl ClearWindowTilemap
	b _081C2D0E
_081C2CD4:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040bc
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C2D08
	adds r2, 0x8
	adds r0, r1, r2
	ldr r0, [r0]
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 11
	cmp r0, r1
	beq _081C2D0E
	movs r0, 0xF
	bl ClearWindowTilemap
	b _081C2D0E
	.pool
_081C2D08:
	movs r0, 0x5
	bl ClearWindowTilemap
_081C2D0E:
	movs r4, 0
_081C2D10:
	adds r0, r4, 0
	bl sub_81C2D68
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x7
	bls _081C2D10
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C2C38

	thumb_func_start sub_81C2D2C
sub_81C2D2C: @ 81C2D2C
	push {r4,lr}
	adds r3, r0, 0
	lsls r1, 24
	lsrs r2, r1, 24
	ldr r0, =gUnknown_0203CF1C
	ldr r4, =0x000040cb
	adds r1, r2, r4
	ldr r0, [r0]
	adds r4, r0, r1
	ldrb r0, [r4]
	cmp r0, 0xFF
	bne _081C2D56
	lsls r0, r2, 3
	adds r0, r3, r0
	bl AddWindow
	strb r0, [r4]
	ldrb r0, [r4]
	movs r1, 0
	bl FillWindowPixelBuffer
_081C2D56:
	ldrb r0, [r4]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C2D2C

	thumb_func_start sub_81C2D68
sub_81C2D68: @ 81C2D68
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203CF1C
	ldr r2, =0x000040cb
	adds r0, r2
	ldr r1, [r1]
	adds r4, r1, r0
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _081C2D8C
	bl ClearWindowTilemap
	ldrb r0, [r4]
	bl RemoveWindow
	movs r0, 0xFF
	strb r0, [r4]
_081C2D8C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2D68

	thumb_func_start sub_81C2D9C
sub_81C2D9C: @ 81C2D9C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
_081C2DA4:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040cb
	adds r0, r1
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _081C2DBA
	movs r1, 0
	bl FillWindowPixelBuffer
_081C2DBA:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x7
	bls _081C2DA4
	ldr r0, =gUnknown_0861CE54
	lsls r1, r5, 2
	adds r1, r0
	ldr r0, [r1]
	bl _call_via_r0
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2D9C

	thumb_func_start sub_81C2DE4
sub_81C2DE4: @ 81C2DE4
	push {lr}
	lsls r0, 24
	ldr r1, =gUnknown_0861CE64
	lsrs r0, 22
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0x10
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2DE4

	thumb_func_start sub_81C2E00
sub_81C2E00: @ 81C2E00
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0x74
	ldrb r0, [r0]
	cmp r0, 0
	beq _081C2E24
	bl sub_81C335C
	bl sub_81C33CC
	bl sub_81C3428
	bl sub_81C349C
	b _081C2E3C
	.pool
_081C2E24:
	bl sub_81C2EC4
	bl sub_81C2F5C
	bl sub_81C2FD8
	bl sub_81C302C
	bl sub_81C307C
	bl sub_81C3194
_081C2E3C:
	pop {r0}
	bx r0
	thumb_func_end sub_81C2E00

	thumb_func_start sub_81C2E40
sub_81C2E40: @ 81C2E40
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x6
	bhi _081C2EB8
	lsls r0, 2
	ldr r1, =_081C2E70
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C2E70:
	.4byte _081C2E8C
	.4byte _081C2E92
	.4byte _081C2E98
	.4byte _081C2E9E
	.4byte _081C2EA4
	.4byte _081C2EAA
	.4byte _081C2EB0
_081C2E8C:
	bl sub_81C2EC4
	b _081C2EB8
_081C2E92:
	bl sub_81C2F5C
	b _081C2EB8
_081C2E98:
	bl sub_81C2FD8
	b _081C2EB8
_081C2E9E:
	bl sub_81C302C
	b _081C2EB8
_081C2EA4:
	bl sub_81C307C
	b _081C2EB8
_081C2EAA:
	bl sub_81C3194
	b _081C2EB8
_081C2EB0:
	adds r0, r2, 0
	bl DestroyTask
	b _081C2EBE
_081C2EB8:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_081C2EBE:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C2E40

	thumb_func_start sub_81C2EC4
sub_81C2EC4: @ 81C2EC4
	push {r4-r6,lr}
	sub sp, 0x8
	bl sub_81A6BF4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C2F54
	bl sub_81B9E94
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C2F54
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r4, =gUnknown_085EA365
	movs r6, 0
	str r6, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	adds r0, r5, 0
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0
	bl GetStringWidth
	adds r2, r0, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xA2
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C2F40
	adds r1, 0xA6
	lsls r2, 24
	lsrs r2, 24
	str r6, [sp]
	movs r0, 0x5
	str r0, [sp, 0x4]
	adds r0, r5, 0
	movs r3, 0x1
	bl sub_81C25A4
	b _081C2F54
	.pool
_081C2F40:
	adds r1, 0xA6
	lsls r2, 24
	lsrs r2, 24
	str r6, [sp]
	movs r0, 0x6
	str r0, [sp, 0x4]
	adds r0, r5, 0
	movs r3, 0x1
	bl sub_81C25A4
_081C2F54:
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C2EC4

	thumb_func_start sub_81C2F5C
sub_81C2F5C: @ 81C2F5C
	push {r4,r5,lr}
	sub sp, 0x8
	bl sub_81A6BF4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C2FC0
	bl sub_81B9E94
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C2FC0
	ldr r5, =gStringVar1
	ldr r1, =gText_UnkCtrlF907F908
	adds r0, r5, 0
	bl StringCopy
	ldr r1, =gUnknown_0203CF1C
	ldr r1, [r1]
	adds r1, 0xB8
	ldrh r1, [r1]
	movs r2, 0x2
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x38
	bl GetStringRightAlignXOffset
	adds r4, r0, 0
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0x1
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsrs r4, 24
	movs r1, 0
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	adds r1, r5, 0
	adds r2, r4, 0
	movs r3, 0x1
	bl sub_81C25A4
_081C2FC0:
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2F5C

	thumb_func_start sub_81C2FD8
sub_81C2FD8: @ 81C2FD8
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x70
	ldrh r0, [r0]
	adds r1, 0x78
	ldrb r1, [r1]
	bl GetAbilityBySpecies
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0x2
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0xD
	muls r1, r4
	ldr r2, =gAbilityNames
	adds r1, r2
	movs r2, 0
	str r2, [sp]
	movs r2, 0x1
	str r2, [sp, 0x4]
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C2FD8

	thumb_func_start sub_81C302C
sub_81C302C: @ 81C302C
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x70
	ldrh r0, [r0]
	adds r1, 0x78
	ldrb r1, [r1]
	bl GetAbilityBySpecies
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0x2
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gAbilityDescriptionPointers
	lsls r4, 2
	adds r4, r1
	ldr r1, [r4]
	movs r2, 0
	str r2, [sp]
	str r2, [sp, 0x4]
	movs r3, 0x11
	bl sub_81C25A4
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C302C

	thumb_func_start sub_81C307C
sub_81C307C: @ 81C307C
	push {r4-r6,lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r4, r0, 0
	adds r4, 0x70
	bl sub_81AFBF0
	ldr r1, =gUnknown_0861CE74
	movs r0, 0
	bl sub_81AFC0C
	ldr r1, =gUnknown_0861CE7B
	movs r0, 0x1
	bl sub_81AFC0C
	bl sub_81C31C0
	bl sub_81A6BF4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C30C2
	bl sub_81B9E94
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C30C2
	bl sub_81C3304
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C30E0
_081C30C2:
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_085EA5DB
	bl sub_81AFC28
	b _081C3182
	.pool
_081C30E0:
	movs r0, 0x20
	bl Alloc
	adds r6, r0, 0
	movs r0, 0x20
	bl Alloc
	adds r5, r0, 0
	adds r0, r6, 0
	bl sub_81C31F0
	ldrb r0, [r4, 0x9]
	cmp r0, 0xD4
	bhi _081C310C
	adds r1, r0, 0
	adds r0, r5, 0
	bl sub_8124610
	movs r0, 0x4
	adds r1, r5, 0
	bl sub_81AFC0C
_081C310C:
	bl sub_81C3220
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C3148
	ldrb r0, [r4, 0xA]
	cmp r0, 0
	bne _081C3134
	ldrb r0, [r4, 0x9]
	ldr r1, =gUnknown_085EA516
	cmp r0, 0xD4
	bls _081C3170
	ldr r1, =gUnknown_085EA617
	b _081C3170
	.pool
_081C3134:
	ldrb r0, [r4, 0x9]
	ldr r1, =gUnknown_085EA4EC
	cmp r0, 0xD4
	bls _081C3170
	ldr r1, =gUnknown_085EA5EB
	b _081C3170
	.pool
_081C3148:
	ldrb r0, [r4, 0x9]
	cmp r0, 0xFF
	bne _081C3158
	ldr r1, =gUnknown_085EA56A
	b _081C3170
	.pool
_081C3158:
	cmp r0, 0xFE
	beq _081C316E
	bl sub_81C32BC
	lsls r0, 24
	cmp r0, 0
	beq _081C316E
	ldrb r0, [r4, 0x9]
	ldr r1, =gUnknown_085EA5A8
	cmp r0, 0xD4
	bls _081C3170
_081C316E:
	ldr r1, =gUnknown_085EA544
_081C3170:
	ldr r0, =gStringVar4
	bl sub_81AFC28
	adds r0, r6, 0
	bl Free
	adds r0, r5, 0
	bl Free
_081C3182:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C307C

	thumb_func_start sub_81C3194
sub_81C3194: @ 81C3194
	push {lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0x3
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gStringVar4
	movs r2, 0
	str r2, [sp]
	str r2, [sp, 0x4]
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3194

	thumb_func_start sub_81C31C0
sub_81C31C0: @ 81C31C0
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =gNatureNamePointers
	adds r0, 0xA3
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	movs r0, 0x2
	bl sub_81AFC0C
	ldr r1, =gUnknown_085EA3C0
	movs r0, 0x5
	bl sub_81AFC0C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C31C0

	thumb_func_start sub_81C31F0
sub_81C31F0: @ 81C31F0
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0x7A
	ldrb r1, [r0]
	cmp r1, 0
	bne _081C3202
	movs r1, 0x5
_081C3202:
	adds r0, r4, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r0, 0x3
	adds r1, r4, 0
	bl sub_81AFC0C
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C31F0

	thumb_func_start sub_81C3220
sub_81C3220: @ 81C3220
	push {r4-r6,lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r6, r0, 0
	adds r6, 0x70
	ldr r1, [r0]
	ldr r0, =gEnemyParty
	cmp r1, r0
	bne _081C326C
	bl GetMultiplayerId
	movs r1, 0x1
	eors r0, r1
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gLinkPlayers
	lsls r1, r0, 3
	subs r1, r0
	lsls r1, 2
	adds r0, r2, 0x4
	adds r0, r1, r0
	ldrh r4, [r0]
	adds r0, r1, r2
	ldrb r5, [r0, 0x13]
	ldr r0, =gStringVar1
	adds r2, 0x8
	adds r1, r2
	bl StringCopy
	b _081C3282
	.pool
_081C326C:
	bl sub_80F0020
	adds r4, r0, 0
	ldr r0, =0x0000ffff
	ands r4, r0
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	ldrb r5, [r1, 0x8]
	ldr r0, =gStringVar1
	bl StringCopy
_081C3282:
	adds r0, r6, 0
	adds r0, 0x32
	ldrb r0, [r0]
	cmp r5, r0
	bne _081C32A4
	ldr r0, [r6, 0x48]
	ldr r1, =0x0000ffff
	ands r0, r1
	cmp r4, r0
	bne _081C32A4
	ldr r0, =gStringVar1
	adds r1, r6, 0
	adds r1, 0x36
	bl StringCompareWithoutExtCtrlCodes
	cmp r0, 0
	beq _081C32B4
_081C32A4:
	movs r0, 0
	b _081C32B6
	.pool
_081C32B4:
	movs r0, 0x1
_081C32B6:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81C3220

	thumb_func_start sub_81C32BC
sub_81C32BC: @ 81C32BC
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0x70
	ldrb r0, [r0, 0xB]
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bls _081C32D8
	movs r0, 0
	b _081C32DA
	.pool
_081C32D8:
	movs r0, 0x1
_081C32DA:
	pop {r1}
	bx r1
	thumb_func_end sub_81C32BC

	thumb_func_start sub_81C32E0
sub_81C32E0: @ 81C32E0
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r0, 0x70
	ldrb r0, [r0, 0xB]
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bls _081C32FC
	movs r0, 0
	b _081C32FE
	.pool
_081C32FC:
	movs r0, 0x1
_081C32FE:
	pop {r1}
	bx r1
	thumb_func_end sub_81C32E0

	thumb_func_start sub_81C3304
sub_81C3304: @ 81C3304
	push {lr}
	ldr r0, =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x80
	lsls r1, 15
	ands r0, r1
	cmp r0, 0
	beq _081C3354
	ldr r0, =gMain
	ldr r1, =0x00000439
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C3354
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040be
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081C333A
	cmp r0, 0x4
	beq _081C333A
	cmp r0, 0x5
	bne _081C3354
_081C333A:
	movs r0, 0x1
	b _081C3356
	.pool
_081C3354:
	movs r0, 0
_081C3356:
	pop {r1}
	bx r1
	thumb_func_end sub_81C3304

	thumb_func_start sub_81C335C
sub_81C335C: @ 81C335C
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x8
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0
	bl sub_81C2D2C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_085EA365
	mov r8, r0
	movs r0, 0x1
	mov r1, r8
	movs r2, 0
	bl GetStringWidth
	adds r5, r0, 0
	movs r0, 0
	mov r9, r0
	str r0, [sp]
	movs r6, 0x1
	str r6, [sp, 0x4]
	adds r0, r4, 0
	mov r1, r8
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gText_FiveMarks
	lsls r5, 24
	lsrs r5, 24
	mov r0, r9
	str r0, [sp]
	str r6, [sp, 0x4]
	adds r0, r4, 0
	adds r2, r5, 0
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C335C

	thumb_func_start sub_81C33CC
sub_81C33CC: @ 81C33CC
	push {r4,r5,lr}
	sub sp, 0x8
	ldr r5, =gStringVar1
	ldr r1, =gText_UnkCtrlF907F908
	adds r0, r5, 0
	bl StringCopy
	ldr r1, =gText_FiveMarks
	adds r0, r5, 0
	bl StringAppend
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x38
	bl GetStringRightAlignXOffset
	adds r4, r0, 0
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0x1
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsrs r4, 24
	movs r1, 0
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	adds r1, r5, 0
	adds r2, r4, 0
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C33CC

	thumb_func_start sub_81C3428
sub_81C3428: @ 81C3428
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x70
	adds r0, 0xA5
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081C3448
	ldr r4, =gUnknown_085EA40B
	b _081C346C
	.pool
_081C3448:
	ldrh r0, [r1, 0x30]
	cmp r0, 0x5
	bhi _081C3458
	ldr r4, =gUnknown_085EA4A2
	b _081C346C
	.pool
_081C3458:
	cmp r0, 0xA
	bhi _081C3464
	ldr r4, =gUnknown_085EA475
	b _081C346C
	.pool
_081C3464:
	ldr r4, =gUnknown_085EA40B
	cmp r0, 0x28
	bhi _081C346C
	ldr r4, =gUnknown_085EA442
_081C346C:
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0x2
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3428

	thumb_func_start sub_81C349C
sub_81C349C: @ 81C349C
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r4, r0, 0
	adds r4, 0x70
	adds r0, 0xA5
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081C3500
	ldrb r0, [r4, 0x9]
	cmp r0, 0xFF
	bne _081C34C4
	ldr r4, =gUnknown_085EA678
	b _081C3502
	.pool
_081C34C4:
	bl sub_81C32BC
	lsls r0, 24
	cmp r0, 0
	beq _081C34D8
	bl sub_81C3220
	lsls r0, 24
	cmp r0, 0
	bne _081C34E0
_081C34D8:
	ldr r4, =gUnknown_085EA6AB
	b _081C3502
	.pool
_081C34E0:
	ldrb r0, [r4, 0x9]
	cmp r0, 0xFD
	bne _081C3500
	bl sub_81C32E0
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =gUnknown_085EA702
	cmp r0, 0x1
	bne _081C3502
	ldr r4, =gUnknown_085EA6D7
	b _081C3502
	.pool
_081C3500:
	ldr r4, =gUnknown_085EA647
_081C3502:
	ldr r0, =gUnknown_0861CCCC
	movs r1, 0x3
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C349C

	thumb_func_start sub_81C3530
sub_81C3530: @ 81C3530
	push {lr}
	bl sub_81C35E4
	bl sub_81C3690
	bl sub_81C3710
	bl sub_81C37D8
	bl sub_81C3808
	bl sub_81C3890
	bl sub_81C38C0
	pop {r0}
	bx r0
	thumb_func_end sub_81C3530

	thumb_func_start sub_81C3554
sub_81C3554: @ 81C3554
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	bhi _081C35D6
	lsls r0, 2
	ldr r1, =_081C3584
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C3584:
	.4byte _081C35A4
	.4byte _081C35AA
	.4byte _081C35B0
	.4byte _081C35B6
	.4byte _081C35BC
	.4byte _081C35C2
	.4byte _081C35C8
	.4byte _081C35CE
_081C35A4:
	bl sub_81C35E4
	b _081C35D6
_081C35AA:
	bl sub_81C3690
	b _081C35D6
_081C35B0:
	bl sub_81C3710
	b _081C35D6
_081C35B6:
	bl sub_81C37D8
	b _081C35D6
_081C35BC:
	bl sub_81C3808
	b _081C35D6
_081C35C2:
	bl sub_81C3890
	b _081C35D6
_081C35C8:
	bl sub_81C38C0
	b _081C35D6
_081C35CE:
	adds r0, r2, 0
	bl DestroyTask
	b _081C35DC
_081C35D6:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_081C35DC:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C3554

	thumb_func_start sub_81C35E4
sub_81C35E4: @ 81C35E4
	push {r4,r5,lr}
	sub sp, 0x8
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	adds r0, 0x9E
	ldrh r0, [r0]
	cmp r0, 0xAF
	bne _081C3628
	bl sub_81B1250
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C3628
	ldr r0, [r4]
	ldr r1, =0x000040be
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081C3614
	cmp r0, 0x4
	beq _081C3614
	cmp r0, 0x5
	bne _081C3628
_081C3614:
	movs r0, 0xAF
	bl ItemId_GetItem
	adds r5, r0, 0
	b _081C3650
	.pool
_081C3628:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x9E
	ldrh r0, [r1]
	cmp r0, 0
	bne _081C3644
	ldr r5, =gText_None
	b _081C3650
	.pool
_081C3644:
	ldrh r0, [r1]
	ldr r4, =gStringVar1
	adds r1, r4, 0
	bl CopyItemName
	adds r5, r4, 0
_081C3650:
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x48
	bl GetStringCenterAlignXOffset
	adds r4, r0, 0
	adds r4, 0x6
	ldr r0, =gUnknown_0861CCEC
	movs r1, 0
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsrs r4, 24
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	adds r1, r5, 0
	adds r2, r4, 0
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C35E4

	thumb_func_start sub_81C3690
sub_81C3690: @ 81C3690
	push {r4,r5,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0x76
	ldrb r0, [r1]
	cmp r0, 0
	bne _081C36B0
	ldr r5, =gText_None
	b _081C36C8
	.pool
_081C36B0:
	ldr r0, =gStringVar1
	ldrb r1, [r1]
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gUnknown_085EA3B4
	adds r0, r4, 0
	bl StringExpandPlaceholders
	adds r5, r4, 0
_081C36C8:
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x46
	bl GetStringCenterAlignXOffset
	adds r4, r0, 0
	adds r4, 0x6
	ldr r0, =gUnknown_0861CCEC
	movs r1, 0x1
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsrs r4, 24
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	adds r1, r5, 0
	adds r2, r4, 0
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3690

	thumb_func_start sub_81C3710
sub_81C3710: @ 81C3710
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	movs r0, 0x8
	bl Alloc
	mov r9, r0
	movs r0, 0x8
	bl Alloc
	mov r8, r0
	movs r0, 0x8
	bl Alloc
	adds r6, r0, 0
	movs r0, 0x8
	bl Alloc
	adds r5, r0, 0
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	adds r0, 0x90
	ldrh r1, [r0]
	mov r0, r9
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r0, [r4]
	adds r0, 0x92
	ldrh r1, [r0]
	mov r0, r8
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r0, [r4]
	adds r0, 0x94
	ldrh r1, [r0]
	adds r0, r6, 0
	movs r2, 0x1
	movs r3, 0x7
	bl ConvertIntToDecimalStringN
	ldr r0, [r4]
	adds r0, 0x96
	ldrh r1, [r0]
	adds r0, r5, 0
	movs r2, 0x1
	movs r3, 0x7
	bl ConvertIntToDecimalStringN
	bl sub_81AFBF0
	movs r0, 0
	mov r1, r9
	bl sub_81AFC0C
	movs r0, 0x1
	mov r1, r8
	bl sub_81AFC0C
	movs r0, 0x2
	adds r1, r6, 0
	bl sub_81AFC0C
	movs r0, 0x3
	adds r1, r5, 0
	bl sub_81AFC0C
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_0861CE82
	bl sub_81AFC28
	mov r0, r9
	bl Free
	mov r0, r8
	bl Free
	adds r0, r6, 0
	bl Free
	adds r0, r5, 0
	bl Free
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3710

	thumb_func_start sub_81C37D8
sub_81C37D8: @ 81C37D8
	push {lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0861CCEC
	movs r1, 0x2
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gStringVar4
	movs r2, 0
	str r2, [sp]
	str r2, [sp, 0x4]
	movs r2, 0x4
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C37D8

	thumb_func_start sub_81C3808
sub_81C3808: @ 81C3808
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r0, =gStringVar1
	mov r8, r0
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	adds r0, 0x98
	ldrh r1, [r0]
	mov r0, r8
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r6, =gStringVar2
	ldr r0, [r4]
	adds r0, 0x9A
	ldrh r1, [r0]
	adds r0, r6, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r5, =gStringVar3
	ldr r0, [r4]
	adds r0, 0x9C
	ldrh r1, [r0]
	adds r0, r5, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	bl sub_81AFBF0
	movs r0, 0
	mov r1, r8
	bl sub_81AFC0C
	movs r0, 0x1
	adds r1, r6, 0
	bl sub_81AFC0C
	movs r0, 0x2
	adds r1, r5, 0
	bl sub_81AFC0C
	ldr r0, =gStringVar4
	ldr r1, =gUnknown_0861CE8E
	bl sub_81AFC28
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3808

	thumb_func_start sub_81C3890
sub_81C3890: @ 81C3890
	push {lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0861CCEC
	movs r1, 0x3
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gStringVar4
	movs r2, 0
	str r2, [sp]
	str r2, [sp, 0x4]
	movs r2, 0x2
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3890

	thumb_func_start sub_81C38C0
sub_81C38C0: @ 81C38C0
	push {r4-r6,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r5, r0, 0
	adds r5, 0x70
	ldr r0, =gUnknown_0861CCEC
	movs r1, 0x4
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r4, =gStringVar1
	ldr r1, [r5, 0x10]
	adds r0, r4, 0
	movs r2, 0x1
	movs r3, 0x7
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x2A
	bl GetStringRightAlignXOffset
	adds r0, 0x2
	lsls r2, r0, 24
	lsrs r2, 24
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r6, 0
	adds r1, r4, 0
	movs r3, 0x1
	bl sub_81C25A4
	ldrb r0, [r5, 0x5]
	cmp r0, 0x63
	bhi _081C3948
	ldr r4, =gExperienceTables
	adds r1, r0, 0
	adds r1, 0x1
	lsls r1, 2
	ldr r3, =gBaseStats
	ldrh r2, [r5]
	lsls r0, r2, 3
	subs r0, r2
	lsls r0, 2
	adds r0, r3
	ldrb r2, [r0, 0x13]
	movs r0, 0xCA
	lsls r0, 1
	muls r0, r2
	adds r1, r0
	adds r1, r4
	ldr r1, [r1]
	ldr r0, [r5, 0x10]
	subs r1, r0
	b _081C394A
	.pool
_081C3948:
	movs r1, 0
_081C394A:
	ldr r4, =gStringVar1
	adds r0, r4, 0
	movs r2, 0x1
	movs r3, 0x6
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x2A
	bl GetStringRightAlignXOffset
	adds r0, 0x2
	lsls r2, r0, 24
	lsrs r2, 24
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r6, 0
	adds r1, r4, 0
	movs r3, 0x11
	bl sub_81C25A4
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C38C0

	thumb_func_start sub_81C3984
sub_81C3984: @ 81C3984
	push {r4,lr}
	movs r0, 0
	bl sub_81C3B08
	movs r0, 0x1
	bl sub_81C3B08
	movs r0, 0x2
	bl sub_81C3B08
	movs r0, 0x3
	bl sub_81C3B08
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	ldr r1, =0x000040bc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C39EA
	bl sub_81C3F44
	ldr r1, [r4]
	ldr r0, =0x000040c6
	adds r2, r1, r0
	ldrb r0, [r2]
	cmp r0, 0x4
	bne _081C39DC
	ldr r0, =0x000040c4
	adds r1, r0
	ldrh r0, [r1]
	cmp r0, 0
	beq _081C39EA
	bl sub_81C3E9C
	b _081C39EA
	.pool
_081C39DC:
	ldrb r0, [r2]
	lsls r0, 1
	adds r1, 0x84
	adds r1, r0
	ldrh r0, [r1]
	bl sub_81C3E9C
_081C39EA:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C3984

	thumb_func_start sub_81C39F0
sub_81C39F0: @ 81C39F0
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	bhi _081C3AFC
	lsls r0, 2
	ldr r1, =_081C3A20
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C3A20:
	.4byte _081C3A40
	.4byte _081C3A48
	.4byte _081C3A50
	.4byte _081C3A58
	.4byte _081C3A60
	.4byte _081C3A7C
	.4byte _081C3ABE
	.4byte _081C3AF4
_081C3A40:
	movs r0, 0
	bl sub_81C3B08
	b _081C3AFC
_081C3A48:
	movs r0, 0x1
	bl sub_81C3B08
	b _081C3AFC
_081C3A50:
	movs r0, 0x2
	bl sub_81C3B08
	b _081C3AFC
_081C3A58:
	movs r0, 0x3
	bl sub_81C3B08
	b _081C3AFC
_081C3A60:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040bc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C3AFC
	bl sub_81C3F44
	b _081C3AFC
	.pool
_081C3A7C:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040bc
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C3AFC
	ldr r0, =0x000040c6
	adds r2, r1, r0
	ldrb r0, [r2]
	cmp r0, 0x4
	bne _081C3AB0
	ldr r2, =0x000040c4
	adds r0, r1, r2
	ldrh r0, [r0]
	strh r0, [r4, 0x2]
	b _081C3AFC
	.pool
_081C3AB0:
	ldrb r0, [r2]
	lsls r0, 1
	adds r1, 0x84
	adds r1, r0
	ldrh r0, [r1]
	strh r0, [r4, 0x2]
	b _081C3AFC
_081C3ABE:
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040bc
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C3AFC
	adds r2, 0x8
	adds r0, r1, r2
	ldr r0, [r0]
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 11
	cmp r0, r1
	beq _081C3AFC
	ldrh r0, [r4, 0x2]
	bl sub_81C3E9C
	b _081C3AFC
	.pool
_081C3AF4:
	adds r0, r2, 0
	bl DestroyTask
	b _081C3B02
_081C3AFC:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_081C3B02:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C39F0

	thumb_func_start sub_81C3B08
sub_81C3B08: @ 81C3B08
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	mov r10, r0
	ldr r4, =gUnknown_0861CD14
	adds r0, r4, 0
	movs r1, 0
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x8]
	lsls r1, r7, 1
	mov r0, r10
	adds r0, 0x84
	adds r0, r1
	ldrh r5, [r0]
	cmp r5, 0
	beq _081C3C00
	mov r0, r10
	adds r0, 0xA4
	ldrb r1, [r0]
	adds r0, r5, 0
	adds r2, r7, 0
	bl CalculatePPWithBonus
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	movs r0, 0xD
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gMoveNames
	adds r1, r0
	lsls r0, r7, 4
	mov r9, r0
	mov r3, r9
	adds r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	mov r0, r8
	movs r2, 0
	bl sub_81C25A4
	ldr r0, =gStringVar1
	mov r8, r0
	mov r5, r10
	adds r5, 0x8C
	adds r5, r7
	ldrb r1, [r5]
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar2
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	bl sub_81AFBF0
	movs r0, 0
	mov r1, r8
	bl sub_81AFC0C
	movs r0, 0x1
	adds r1, r4, 0
	bl sub_81AFC0C
	ldr r4, =gStringVar4
	ldr r1, =gUnknown_0861CE97
	adds r0, r4, 0
	bl sub_81AFC28
	adds r7, r4, 0
	ldrb r0, [r5]
	adds r1, r6, 0
	bl sub_814FC20
	lsls r0, 24
	lsrs r0, 24
	adds r5, r0, 0
	adds r5, 0x9
	movs r0, 0x1
	adds r1, r7, 0
	movs r2, 0x2C
	bl GetStringRightAlignXOffset
	mov r4, r9
	b _081C3C26
	.pool
_081C3C00:
	ldr r1, =gText_OneDash
	lsls r4, r7, 4
	adds r3, r4, 0x1
	lsls r3, 24
	lsrs r3, 24
	str r5, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	mov r0, r8
	movs r2, 0
	bl sub_81C25A4
	ldr r7, =gText_TwoDashes
	movs r5, 0xC
	movs r0, 0x1
	adds r1, r7, 0
	movs r2, 0x2C
	bl GetStringCenterAlignXOffset
_081C3C26:
	lsls r2, r0, 24
	lsrs r2, 24
	adds r3, r4, 0x1
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0
	str r0, [sp]
	lsls r0, r5, 24
	lsrs r0, 24
	str r0, [sp, 0x4]
	ldr r0, [sp, 0x8]
	adds r1, r7, 0
	bl sub_81C25A4
	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_81C3B08

	thumb_func_start sub_81C3C5C
sub_81C3C5C: @ 81C3C5C
	push {r4-r6,lr}
	sub sp, 0x8
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0
	beq _081C3CFC
	movs r0, 0x13
	str r0, [sp]
	movs r0, 0x20
	str r0, [sp, 0x4]
	movs r0, 0xE
	movs r1, 0
	movs r2, 0x35
	movs r3, 0
	bl FillWindowPixelRect
	ldr r2, =gBattleMoves
	lsls r1, r5, 1
	adds r0, r1, r5
	lsls r0, 2
	adds r2, r0, r2
	ldrb r0, [r2, 0x1]
	adds r6, r1, 0
	cmp r0, 0x1
	bhi _081C3C9C
	ldr r1, =gText_ThreeDashes
	b _081C3CAC
	.pool
_081C3C9C:
	ldr r4, =gStringVar1
	ldrb r1, [r2, 0x1]
	adds r0, r4, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r1, r4, 0
_081C3CAC:
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0xE
	movs r2, 0x35
	movs r3, 0x1
	bl sub_81C25A4
	ldr r1, =gBattleMoves
	adds r0, r6, r5
	lsls r0, 2
	adds r1, r0, r1
	ldrb r0, [r1, 0x3]
	cmp r0, 0
	bne _081C3CDC
	ldr r1, =gText_ThreeDashes
	b _081C3CEC
	.pool
_081C3CDC:
	ldr r4, =gStringVar1
	ldrb r1, [r1, 0x3]
	adds r0, r4, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r1, r4, 0
_081C3CEC:
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0xE
	movs r2, 0x35
	movs r3, 0x11
	bl sub_81C25A4
_081C3CFC:
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3C5C

	thumb_func_start sub_81C3D08
sub_81C3D08: @ 81C3D08
	push {r4,lr}
	movs r0, 0
	bl sub_81C3B08
	movs r0, 0x1
	bl sub_81C3B08
	movs r0, 0x2
	bl sub_81C3B08
	movs r0, 0x3
	bl sub_81C3B08
	ldr r4, =gUnknown_0203CF1C
	ldr r0, [r4]
	ldr r1, =0x000040bc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C3D40
	bl sub_81C3F44
	ldr r0, [r4]
	ldr r1, =0x000040c6
	adds r0, r1
	ldrb r0, [r0]
	bl sub_81C3E2C
_081C3D40:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3D08

	thumb_func_start sub_81C3D54
sub_81C3D54: @ 81C3D54
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x6
	bhi _081C3E20
	lsls r0, 2
	ldr r1, =_081C3D84
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C3D84:
	.4byte _081C3DA0
	.4byte _081C3DA8
	.4byte _081C3DB0
	.4byte _081C3DB8
	.4byte _081C3DC0
	.4byte _081C3DDC
	.4byte _081C3E18
_081C3DA0:
	movs r0, 0
	bl sub_81C3B08
	b _081C3E20
_081C3DA8:
	movs r0, 0x1
	bl sub_81C3B08
	b _081C3E20
_081C3DB0:
	movs r0, 0x2
	bl sub_81C3B08
	b _081C3E20
_081C3DB8:
	movs r0, 0x3
	bl sub_81C3B08
	b _081C3E20
_081C3DC0:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040bc
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C3E20
	bl sub_81C3F44
	b _081C3E20
	.pool
_081C3DDC:
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	ldr r1, =0x000040bc
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x3
	bne _081C3E20
	adds r1, 0x8
	adds r0, r2, r1
	ldr r0, [r0]
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 11
	cmp r0, r1
	beq _081C3E20
	ldr r1, =0x000040c6
	adds r0, r2, r1
	ldrb r0, [r0]
	bl sub_81C3E2C
	b _081C3E20
	.pool
_081C3E18:
	adds r0, r2, 0
	bl DestroyTask
	b _081C3E26
_081C3E20:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_081C3E26:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C3D54

	thumb_func_start sub_81C3E2C
sub_81C3E2C: @ 81C3E2C
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x4
	bne _081C3E48
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c4
	b _081C3E50
	.pool
_081C3E48:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	lsls r1, 1
	adds r0, 0x84
_081C3E50:
	adds r0, r1
	ldrh r4, [r0]
	cmp r4, 0
	beq _081C3E82
	ldr r0, =gUnknown_0861CD14
	movs r1, 0x2
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	ldr r3, =gContestEffectDescriptionPointers
	ldr r2, =gContestMoves
	lsls r1, r4, 3
	adds r1, r2
	ldrb r1, [r1]
	lsls r1, 2
	adds r1, r3
	ldr r1, [r1]
	movs r2, 0
	str r2, [sp]
	str r2, [sp, 0x4]
	movs r2, 0x6
	movs r3, 0x1
	bl sub_81C25A4
_081C3E82:
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3E2C

	thumb_func_start sub_81C3E9C
sub_81C3E9C: @ 81C3E9C
	push {r4-r6,lr}
	sub sp, 0x8
	lsls r0, 16
	lsrs r4, r0, 16
	adds r6, r4, 0
	ldr r0, =gUnknown_0861CD14
	movs r1, 0x2
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r5, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	cmp r4, 0
	beq _081C3F30
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _081C3F00
	adds r0, r4, 0
	bl sub_81C3C5C
	ldr r1, =gMoveDescriptionPointers
	subs r0, r4, 0x1
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r5, 0
	movs r2, 0x6
	movs r3, 0x1
	bl sub_81C25A4
	b _081C3F20
	.pool
_081C3F00:
	ldr r2, =gContestEffectDescriptionPointers
	ldr r1, =gContestMoves
	lsls r0, r6, 3
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, r2
	ldr r1, [r0]
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r5, 0
	movs r2, 0x6
	movs r3, 0x1
	bl sub_81C25A4
_081C3F20:
	adds r0, r5, 0
	bl PutWindowTilemap
	b _081C3F36
	.pool
_081C3F30:
	adds r0, r5, 0
	bl ClearWindowTilemap
_081C3F36:
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C3E9C

	thumb_func_start sub_81C3F44
sub_81C3F44: @ 81C3F44
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	ldr r4, =gUnknown_0861CD14
	adds r0, r4, 0
	movs r1, 0
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r6, r0, 24
	adds r7, r6, 0
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C2D2C
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r2, =0x000040c4
	adds r0, r1, r2
	ldrh r2, [r0]
	cmp r2, 0
	bne _081C3F9C
	ldr r1, =gText_Cancel
	str r2, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	adds r0, r6, 0
	movs r2, 0
	movs r3, 0x41
	bl sub_81C25A4
	b _081C4044
	.pool
_081C3F9C:
	ldrh r5, [r0]
	ldr r2, =0x000040c0
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _081C3FD0
	movs r0, 0xD
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gMoveNames
	adds r1, r0
	movs r0, 0
	str r0, [sp]
	movs r0, 0x6
	str r0, [sp, 0x4]
	adds r0, r6, 0
	movs r2, 0
	movs r3, 0x41
	bl sub_81C25A4
	b _081C3FEC
	.pool
_081C3FD0:
	movs r0, 0xD
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gMoveNames
	adds r1, r0
	movs r0, 0
	str r0, [sp]
	movs r0, 0x5
	str r0, [sp, 0x4]
	adds r0, r7, 0
	movs r2, 0
	movs r3, 0x41
	bl sub_81C25A4
_081C3FEC:
	ldr r4, =gStringVar1
	ldr r1, =gBattleMoves
	lsls r0, r5, 1
	adds r0, r5
	lsls r0, 2
	adds r0, r1
	ldrb r1, [r0, 0x4]
	adds r0, r4, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	bl sub_81AFBF0
	movs r0, 0
	adds r1, r4, 0
	bl sub_81AFC0C
	movs r0, 0x1
	adds r1, r4, 0
	bl sub_81AFC0C
	ldr r4, =gStringVar4
	ldr r1, =gUnknown_0861CE97
	adds r0, r4, 0
	bl sub_81AFC28
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x2C
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	movs r0, 0
	str r0, [sp]
	movs r0, 0xC
	str r0, [sp, 0x4]
	mov r0, r8
	adds r1, r4, 0
	movs r3, 0x41
	bl sub_81C25A4
_081C4044:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C3F44

	thumb_func_start sub_81C4064
sub_81C4064: @ 81C4064
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0861CD14
	movs r1, 0
	bl sub_81C2D2C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x48
	str r0, [sp]
	movs r0, 0x10
	str r0, [sp, 0x4]
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x42
	bl FillWindowPixelRect
	adds r0, r4, 0
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4064

	thumb_func_start sub_81C40A0
sub_81C40A0: @ 81C40A0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r9, r0
	mov r10, r1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	mov r0, r10
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	ldr r5, =gUnknown_0861CD14
	adds r0, r5, 0
	movs r1, 0
	bl sub_81C2D2C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81C2D2C
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	mov r0, r9
	lsls r6, r0, 4
	movs r0, 0x48
	mov r8, r0
	str r0, [sp]
	movs r0, 0x10
	str r0, [sp, 0x4]
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0
	adds r3, r6, 0
	bl FillWindowPixelRect
	mov r0, r10
	lsls r7, r0, 4
	mov r0, r8
	str r0, [sp]
	movs r0, 0x10
	str r0, [sp, 0x4]
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0
	adds r3, r7, 0
	bl FillWindowPixelRect
	movs r4, 0x30
	str r4, [sp]
	movs r0, 0x10
	str r0, [sp, 0x4]
	adds r0, r5, 0
	movs r1, 0
	movs r2, 0
	adds r3, r6, 0
	bl FillWindowPixelRect
	str r4, [sp]
	movs r0, 0x10
	str r0, [sp, 0x4]
	adds r0, r5, 0
	movs r1, 0
	movs r2, 0
	adds r3, r7, 0
	bl FillWindowPixelRect
	mov r0, r9
	bl sub_81C3B08
	mov r0, r10
	bl sub_81C3B08
	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_81C40A0

	thumb_func_start sub_81C4154
sub_81C4154: @ 81C4154
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0861CD14
	movs r1, 0x2
	bl sub_81C2D2C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r1, =gUnknown_085EA4CB
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r4, 0
	movs r2, 0x6
	movs r3, 0x1
	bl sub_81C25A4
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4154

	thumb_func_start sub_81C4190
sub_81C4190: @ 81C4190
	push {r4,r5,lr}
	movs r2, 0
	ldr r5, =gUnknown_0203CF1C
	ldr r4, =0x000040d3
	movs r3, 0xFF
_081C419A:
	ldr r0, [r5]
	adds r0, r4
	adds r0, r2
	ldrb r1, [r0]
	orrs r1, r3
	strb r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x1B
	bls _081C419A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4190

	thumb_func_start sub_81C41C0
sub_81C41C0: @ 81C41C0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r5, =gUnknown_0203CF1C
	ldr r0, [r5]
	ldr r1, =0x000040d3
	adds r0, r1
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _081C41F2
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySprite
	ldr r0, [r5]
	ldr r1, =0x000040d3
	adds r0, r1
	adds r0, r4
	movs r1, 0xFF
	strb r1, [r0]
_081C41F2:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C41C0

	thumb_func_start sub_81C4204
sub_81C4204: @ 81C4204
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r3, =gSprites
	ldr r2, =gUnknown_0203CF1C
	ldr r2, [r2]
	ldr r4, =0x000040d3
	adds r2, r4
	adds r2, r0
	ldrb r0, [r2]
	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]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4204

	thumb_func_start sub_81C424C
sub_81C424C: @ 81C424C
	push {r4,lr}
	movs r4, 0x3
_081C4250:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040d3
	adds r0, r1
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0xFF
	beq _081C4268
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C4204
_081C4268:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x1B
	bls _081C4250
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C424C

	thumb_func_start sub_81C4280
sub_81C4280: @ 81C4280
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _081C42B0
	cmp r0, 0x2
	bgt _081C42A4
	cmp r0, 0
	beq _081C42AA
	b _081C42C2
	.pool
_081C42A4:
	cmp r0, 0x3
	beq _081C42BA
	b _081C42C2
_081C42AA:
	bl sub_81C43A0
	b _081C42C2
_081C42B0:
	bl sub_81C4420
	bl sub_81C44F0
	b _081C42C2
_081C42BA:
	bl sub_81C4484
	bl sub_81C44F0
_081C42C2:
	pop {r0}
	bx r0
	thumb_func_end sub_81C4280

	thumb_func_start sub_81C42C8
sub_81C42C8: @ 81C42C8
	push {r4,r5,lr}
	movs r4, 0x3
	ldr r5, =gUnknown_0203CF1C
_081C42CE:
	ldr r0, [r5]
	ldr r1, =0x000040d3
	adds r0, r1
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _081C42F2
	ldr r0, =gUnknown_0861CFC4
	movs r1, 0
	movs r2, 0
	movs r3, 0x2
	bl CreateSprite
	ldr r1, [r5]
	ldr r2, =0x000040d3
	adds r1, r2
	adds r1, r4
	strb r0, [r1]
_081C42F2:
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C4204
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x7
	bls _081C42CE
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C42C8

	thumb_func_start sub_81C4318
sub_81C4318: @ 81C4318
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	mov r8, r2
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r3, 24
	lsrs r3, 24
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040d3
	adds r0, r1
	adds r0, r3
	ldrb r0, [r0]
	lsls r4, r0, 4
	adds r4, r0
	lsls r4, 2
	ldr r0, =gSprites
	adds r4, r0
	adds r0, r4, 0
	adds r1, r5, 0
	str r3, [sp]
	bl StartSpriteAnim
	ldr r0, =gUnknown_0861CFDC
	adds r5, r0
	ldrb r1, [r5]
	lsls r1, 4
	ldrb r2, [r4, 0x5]
	movs r0, 0xF
	ands r0, r2
	orrs r0, r1
	strb r0, [r4, 0x5]
	adds r6, 0x10
	strh r6, [r4, 0x20]
	movs r0, 0x8
	add r8, r0
	mov r1, r8
	strh r1, [r4, 0x22]
	ldr r3, [sp]
	adds r0, r3, 0
	movs r1, 0
	bl sub_81C4204
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4318

	thumb_func_start sub_81C43A0
sub_81C43A0: @ 81C43A0
	push {r4,r5,lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r5, r0, 0
	adds r5, 0x70
	ldrb r0, [r5, 0x4]
	cmp r0, 0
	beq _081C43CC
	movs r0, 0x9
	movs r1, 0x78
	movs r2, 0x30
	movs r3, 0x3
	bl sub_81C4318
	movs r0, 0x4
	movs r1, 0x1
	bl sub_81C4204
	b _081C4418
	.pool
_081C43CC:
	ldr r4, =gBaseStats
	ldrh r1, [r5]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r0, r4
	ldrb r0, [r0, 0x6]
	movs r1, 0x78
	movs r2, 0x30
	movs r3, 0x3
	bl sub_81C4318
	ldrh r1, [r5]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r1, r0, r4
	ldrb r0, [r1, 0x6]
	ldrb r2, [r1, 0x7]
	cmp r0, r2
	beq _081C4410
	ldrb r0, [r1, 0x7]
	movs r1, 0xA0
	movs r2, 0x30
	movs r3, 0x4
	bl sub_81C4318
	movs r0, 0x4
	movs r1, 0
	bl sub_81C4204
	b _081C4418
	.pool
_081C4410:
	movs r0, 0x4
	movs r1, 0x1
	bl sub_81C4204
_081C4418:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C43A0

	thumb_func_start sub_81C4420
sub_81C4420: @ 81C4420
	push {r4-r6,lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r5, r0, 0
	adds r5, 0x70
	movs r4, 0
	ldr r6, =gBattleMoves
_081C442E:
	lsls r0, r4, 1
	adds r1, r5, 0
	adds r1, 0x14
	adds r1, r0
	ldrh r0, [r1]
	cmp r0, 0
	beq _081C4468
	adds r1, r0, 0
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	ldrb r0, [r0, 0x2]
	lsls r2, r4, 28
	movs r1, 0x80
	lsls r1, 22
	adds r2, r1
	lsrs r2, 24
	adds r3, r4, 0x3
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x55
	bl sub_81C4318
	b _081C4474
	.pool
_081C4468:
	adds r0, r4, 0x3
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1
	bl sub_81C4204
_081C4474:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _081C442E
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C4420

	thumb_func_start sub_81C4484
sub_81C4484: @ 81C4484
	push {r4,r5,lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r5, r0, 0
	adds r5, 0x70
	movs r4, 0
_081C4490:
	lsls r0, r4, 1
	adds r1, r5, 0
	adds r1, 0x14
	adds r2, r1, r0
	ldrh r0, [r2]
	cmp r0, 0
	beq _081C44D4
	ldr r1, =gContestMoves
	lsls r0, 3
	adds r0, r1
	ldrb r0, [r0, 0x1]
	lsls r0, 29
	lsrs r0, 5
	movs r1, 0x90
	lsls r1, 21
	adds r0, r1
	lsrs r0, 24
	lsls r2, r4, 28
	movs r1, 0x80
	lsls r1, 22
	adds r2, r1
	lsrs r2, 24
	adds r3, r4, 0x3
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x55
	bl sub_81C4318
	b _081C44E0
	.pool
_081C44D4:
	adds r0, r4, 0x3
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1
	bl sub_81C4204
_081C44E0:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _081C4490
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C4484

	thumb_func_start sub_81C44F0
sub_81C44F0: @ 81C44F0
	push {lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	ldr r0, =0x000040c4
	adds r3, r1, r0
	ldrh r0, [r3]
	cmp r0, 0
	bne _081C4514
	movs r0, 0x7
	movs r1, 0x1
	bl sub_81C4204
	b _081C4560
	.pool
_081C4514:
	ldr r2, =0x000040c0
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _081C4540
	ldr r2, =gBattleMoves
	ldrh r1, [r3]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrb r0, [r0, 0x2]
	movs r1, 0x55
	movs r2, 0x60
	movs r3, 0x7
	bl sub_81C4318
	b _081C4560
	.pool
_081C4540:
	ldr r1, =gContestMoves
	ldrh r0, [r3]
	lsls r0, 3
	adds r0, r1
	ldrb r0, [r0, 0x1]
	lsls r0, 29
	lsrs r0, 5
	movs r1, 0x90
	lsls r1, 21
	adds r0, r1
	lsrs r0, 24
	movs r1, 0x55
	movs r2, 0x60
	movs r3, 0x7
	bl sub_81C4318
_081C4560:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C44F0

	thumb_func_start sub_81C4568
sub_81C4568: @ 81C4568
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =gUnknown_0203CF1C
	ldr r2, [r2]
	adds r0, 0x3
	ldr r3, =0x000040d3
	adds r2, r3
	adds r0, r2, r0
	ldrb r0, [r0]
	lsls r4, r0, 4
	adds r4, r0
	lsls r4, 2
	ldr r5, =gSprites
	adds r4, r5
	adds r1, 0x3
	adds r2, r1
	ldrb r0, [r2]
	lsls r3, r0, 4
	adds r3, r0
	lsls r3, 2
	adds r3, r5
	adds r5, r4, 0
	adds r5, 0x2A
	ldrb r1, [r5]
	adds r2, r3, 0
	adds r2, 0x2A
	ldrb r0, [r2]
	strb r0, [r5]
	strb r1, [r2]
	ldrb r6, [r4, 0x5]
	lsrs r5, r6, 4
	ldrb r2, [r3, 0x5]
	lsrs r2, 4
	lsls r2, 4
	movs r1, 0xF
	adds r0, r1, 0
	ands r0, r6
	orrs r0, r2
	strb r0, [r4, 0x5]
	lsls r5, 4
	ldrb r0, [r3, 0x5]
	ands r1, r0
	orrs r1, r5
	strb r1, [r3, 0x5]
	adds r4, 0x3F
	ldrb r0, [r4]
	movs r2, 0x4
	orrs r0, r2
	movs r1, 0x11
	negs r1, r1
	ands r0, r1
	strb r0, [r4]
	adds r3, 0x3F
	ldrb r0, [r3]
	orrs r0, r2
	ands r0, r1
	strb r0, [r3]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4568

	thumb_func_start sub_81C45F4
sub_81C45F4: @ 81C45F4
	push {r4-r6,lr}
	adds r3, r0, 0
	adds r6, r1, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r2, [r0]
	adds r5, r2, 0
	adds r5, 0x70
	movs r1, 0
	ldrsh r0, [r6, r1]
	cmp r0, 0
	beq _081C4620
	cmp r0, 0x1
	bne _081C4610
	b _081C4750
_081C4610:
	adds r0, r3, 0
	bl sub_81C47B4
	lsls r0, 24
	lsrs r0, 24
	b _081C4770
	.pool
_081C4620:
	ldr r0, =gMain
	ldr r1, =0x00000439
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C4680
	ldr r1, =0x000040be
	adds r0, r2, r1
	ldrb r1, [r0]
	movs r0, 0x3
	bl sub_80688F8
	lsls r0, 24
	cmp r0, 0
	beq _081C4668
	ldrh r2, [r5, 0x2]
	lsls r0, r2, 3
	ldr r1, =gMonFrontPicTable
	adds r0, r1
	ldr r1, =gBattleSpritesGfx
	ldr r1, [r1]
	ldr r1, [r1, 0x8]
	b _081C46D6
	.pool
_081C4668:
	ldrh r2, [r5, 0x2]
	lsls r0, r2, 3
	ldr r1, =gMonFrontPicTable
	adds r0, r1
	ldr r1, =gBattleSpritesGfx
	ldr r1, [r1]
	b _081C46B0
	.pool
_081C4680:
	ldr r0, =gBattleSpritesGfx
	ldr r3, [r0]
	adds r4, r0, 0
	cmp r3, 0
	beq _081C46E4
	ldr r1, [r2]
	ldr r0, =gPlayerParty
	cmp r1, r0
	beq _081C46A6
	ldr r1, =0x000040bc
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _081C46A6
	adds r1, 0x33
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081C46CC
_081C46A6:
	ldrh r2, [r5, 0x2]
	lsls r0, r2, 3
	ldr r1, =gMonFrontPicTable
	adds r0, r1
	ldr r1, [r4]
_081C46B0:
	ldr r1, [r1, 0x8]
	ldr r3, [r5, 0xC]
	bl HandleLoadSpecialPokePic_2
	b _081C4768
	.pool
_081C46CC:
	ldrh r2, [r5, 0x2]
	lsls r0, r2, 3
	ldr r1, =gMonFrontPicTable
	adds r0, r1
	ldr r1, [r3, 0x8]
_081C46D6:
	ldr r3, [r5, 0xC]
	bl HandleLoadSpecialPokePic_DontHandleDeoxys
	b _081C4768
	.pool
_081C46E4:
	ldr r1, [r2]
	ldr r0, =gPlayerParty
	cmp r1, r0
	beq _081C4700
	ldr r1, =0x000040bc
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _081C4700
	adds r1, 0x33
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081C472C
_081C4700:
	ldrh r4, [r5, 0x2]
	lsls r4, 3
	ldr r0, =gMonFrontPicTable
	adds r4, r0
	movs r0, 0
	movs r1, 0x1
	bl sub_806F4F8
	adds r1, r0, 0
	ldrh r2, [r5, 0x2]
	ldr r3, [r5, 0xC]
	adds r0, r4, 0
	bl HandleLoadSpecialPokePic_2
	b _081C4768
	.pool
_081C472C:
	ldrh r4, [r5, 0x2]
	lsls r4, 3
	ldr r0, =gMonFrontPicTable
	adds r4, r0
	movs r0, 0
	movs r1, 0x1
	bl sub_806F4F8
	adds r1, r0, 0
	ldrh r2, [r5, 0x2]
	ldr r3, [r5, 0xC]
	adds r0, r4, 0
	bl HandleLoadSpecialPokePic_DontHandleDeoxys
	b _081C4768
	.pool
_081C4750:
	ldrh r0, [r5, 0x2]
	ldr r1, [r5, 0x48]
	ldr r2, [r5, 0xC]
	bl sub_806E7CC
	adds r4, r0, 0
	bl LoadCompressedObjectPalette
	ldrh r0, [r4, 0x4]
	movs r1, 0x1
	bl sub_806A068
_081C4768:
	ldrh r0, [r6]
	adds r0, 0x1
	strh r0, [r6]
	movs r0, 0xFF
_081C4770:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81C45F4

	thumb_func_start sub_81C4778
sub_81C4778: @ 81C4778
	push {r4,lr}
	ldr r0, =gUnknown_0203CF1C
	ldr r1, [r0]
	adds r4, r1, 0
	adds r4, 0x70
	ldrb r0, [r4, 0x4]
	cmp r0, 0
	bne _081C47AE
	adds r0, r1, 0
	adds r0, 0xC
	bl sub_805F110
	cmp r0, 0x1
	bne _081C47A4
	ldrh r0, [r4, 0x2]
	movs r1, 0
	movs r2, 0
	bl PlayCry3
	b _081C47AE
	.pool
_081C47A4:
	ldrh r0, [r4, 0x2]
	movs r1, 0
	movs r2, 0xB
	bl PlayCry3
_081C47AE:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C4778

	thumb_func_start sub_81C47B4
sub_81C47B4: @ 81C47B4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r0, =gUnknown_0203CF1C
	ldr r6, [r0]
	adds r6, 0x70
	ldr r0, =gUnknown_0202499C
	movs r1, 0x28
	movs r2, 0x40
	movs r3, 0x5
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r4, r0, 4
	add r4, r8
	lsls r4, 2
	ldr r5, =gSprites
	adds r7, r4, r5
	adds r0, r7, 0
	bl FreeSpriteOamMatrix
	ldrh r0, [r6, 0x2]
	movs r1, 0
	strh r0, [r7, 0x2E]
	strh r1, [r7, 0x32]
	adds r5, 0x1C
	adds r4, r5
	ldr r0, =sub_81C4844
	str r0, [r4]
	ldrb r1, [r7, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r1
	strb r0, [r7, 0x5]
	ldrh r0, [r6, 0x2]
	bl IsPokeSpriteNotFlipped
	lsls r0, 24
	cmp r0, 0
	bne _081C4828
	adds r0, r7, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r2, 0x1
	orrs r1, r2
	strb r1, [r0]
	b _081C4836
	.pool
_081C4828:
	adds r2, r7, 0
	adds r2, 0x3F
	ldrb r1, [r2]
	movs r0, 0x2
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
_081C4836:
	mov r0, r8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81C47B4

	thumb_func_start sub_81C4844
sub_81C4844: @ 81C4844
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	adds r5, r0, 0
	adds r5, 0x70
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081C487E
	movs r1, 0x32
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	beq _081C487E
	ldrh r0, [r4, 0x2E]
	bl IsPokeSpriteNotFlipped
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x30]
	bl sub_81C4778
	ldrh r1, [r4, 0x2E]
	ldrb r2, [r5, 0x4]
	adds r0, r4, 0
	bl PokemonSummaryDoMonAnimation
_081C487E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4844

	thumb_func_start sub_81C488C
sub_81C488C: @ 81C488C
	ldr r1, =gUnknown_0203CF24
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81C488C

	thumb_func_start sub_81C4898
sub_81C4898: @ 81C4898
	push {r4,lr}
	ldr r4, =gUnknown_0203CF24
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _081C48AA
	bl DestroyTask
	movs r0, 0xFF
	strb r0, [r4]
_081C48AA:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4898

	thumb_func_start sub_81C48B4
sub_81C48B4: @ 81C48B4
	push {lr}
	ldr r2, =gSprites
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040d3
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, [r0]
	ldr r0, =SpriteCallbackDummy
	cmp r1, r0
	beq _081C48E8
	movs r0, 0x1
	b _081C48EA
	.pool
_081C48E8:
	movs r0, 0
_081C48EA:
	pop {r1}
	bx r1
	thumb_func_end sub_81C48B4

	thumb_func_start sub_81C48F0
sub_81C48F0: @ 81C48F0
	push {r4-r6,lr}
	ldr r6, =gSprites
	ldr r5, =gUnknown_0203CF1C
	ldr r0, [r5]
	ldr r4, =0x000040d3
	adds r0, r4
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x40
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r5]
	adds r0, r4
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r6, 0
	adds r1, 0x1C
	adds r0, r1
	ldr r1, =SpriteCallbackDummy
	str r1, [r0]
	bl sub_806EE98
	ldr r0, [r5]
	adds r0, r4
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	ldrb r0, [r0, 0x5]
	lsrs r0, 4
	lsls r3, r0, 4
	movs r1, 0x80
	lsls r1, 1
	adds r0, r1, 0
	orrs r3, r0
	movs r2, 0
	ldr r5, =gPlttBufferUnfaded
	ldr r4, =gPlttBufferFaded
_081C494C:
	adds r0, r2, r3
	lsls r0, 16
	lsrs r0, 15
	adds r1, r0, r5
	adds r0, r4
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0xF
	bls _081C494C
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C48F0

	thumb_func_start sub_81C4984
sub_81C4984: @ 81C4984
	push {r4-r6,lr}
	adds r5, r0, 0
	ldr r1, =0x00007533
	ldr r2, =gUnknown_0861D120
	adds r0, r1, 0
	bl sub_811FF94
	adds r4, r0, 0
	ldr r6, =gUnknown_0203CF1C
	ldr r0, [r6]
	str r4, [r0, 0x8]
	cmp r4, 0
	beq _081C49CE
	adds r0, r5, 0
	movs r1, 0x8
	bl GetMonData
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl StartSpriteAnim
	ldr r1, [r6]
	ldr r2, [r1, 0x8]
	movs r0, 0x3C
	strh r0, [r2, 0x20]
	ldr r2, [r1, 0x8]
	movs r0, 0x1A
	strh r0, [r2, 0x22]
	ldr r2, [r1, 0x8]
	ldrb r1, [r2, 0x5]
	subs r0, 0x27
	ands r0, r1
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2, 0x5]
_081C49CE:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4984

	thumb_func_start sub_81C49E0
sub_81C49E0: @ 81C49E0
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r0, [r0, 0x8]
	bl DestroySprite
	ldr r0, =0x00007533
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl sub_81C4984
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C49E0

	thumb_func_start sub_81C4A08
sub_81C4A08: @ 81C4A08
	push {r4,lr}
	movs r1, 0x26
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	bl ball_number_to_ball_processing_index
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	bl sub_8076A78
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 3
	ldr r1, =gUnknown_0832C588
	adds r0, r1
	movs r1, 0x10
	movs r2, 0x88
	movs r3, 0
	bl CreateSprite
	ldr r2, =gUnknown_0203CF1C
	ldr r1, [r2]
	ldr r3, =0x000040d4
	adds r1, r3
	strb r0, [r1]
	ldr r4, =gSprites
	ldr r2, [r2]
	adds r2, r3
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r4, 0
	adds r1, 0x1C
	adds r0, r1
	ldr r1, =SpriteCallbackDummy
	str r1, [r0]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	ldrb r1, [r0, 0x5]
	movs r2, 0xC
	orrs r1, r2
	strb r1, [r0, 0x5]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4A08

	thumb_func_start sub_81C4A88
sub_81C4A88: @ 81C4A88
	push {r4,r5,lr}
	ldr r5, =gUnknown_0203CF1C
	ldr r0, [r5]
	ldr r1, =0x000040d5
	adds r4, r0, r1
	ldrb r0, [r4]
	cmp r0, 0xFF
	bne _081C4AA6
	ldr r0, =gUnknown_0861D108
	movs r1, 0x40
	movs r2, 0x98
	movs r3, 0
	bl CreateSprite
	strb r0, [r4]
_081C4AA6:
	ldr r0, [r5]
	adds r0, 0xC
	bl sub_81B205C
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0
	beq _081C4AE8
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	subs r1, r2, 0x1
	lsls r1, 24
	lsrs r1, 24
	bl StartSpriteAnim
	movs r0, 0x2
	movs r1, 0
	bl sub_81C4204
	b _081C4AF0
	.pool
_081C4AE8:
	movs r0, 0x2
	movs r1, 0x1
	bl sub_81C4204
_081C4AF0:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C4A88

	thumb_func_start sub_81C4AF8
sub_81C4AF8: @ 81C4AF8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r0, =gUnknown_0203CF1C
	ldr r1, =0x000040d3
	add r1, r8
	ldr r0, [r0]
	adds r7, r0, r1
	ldr r1, =0x000040c0
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bls _081C4BD2
	movs r0, 0
	mov r9, r0
	mov r1, r8
	cmp r1, 0x8
	bne _081C4B2A
	movs r0, 0x1
	mov r9, r0
_081C4B2A:
	movs r5, 0
	ldr r6, =gSprites
	mov r10, r5
_081C4B30:
	lsls r1, r5, 20
	movs r0, 0xB2
	lsls r0, 15
	adds r1, r0
	asrs r1, 16
	ldr r0, =gUnknown_0861D084
	movs r2, 0x28
	mov r3, r9
	bl CreateSprite
	adds r1, r7, r5
	strb r0, [r1]
	adds r4, r1, 0
	cmp r5, 0
	bne _081C4B74
	ldrb r1, [r7]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x4
	bl StartSpriteAnim
	b _081C4B9A
	.pool
_081C4B74:
	cmp r5, 0x9
	bne _081C4B8A
	ldrb r1, [r7, 0x9]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x5
	bl StartSpriteAnim
	b _081C4B9A
_081C4B8A:
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x6
	bl StartSpriteAnim
_081C4B9A:
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r6, 0
	adds r1, 0x1C
	adds r0, r1
	ldr r1, =sub_81C4BE4
	str r1, [r0]
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	mov r1, r8
	strh r1, [r0, 0x2E]
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	mov r1, r10
	strh r1, [r0, 0x30]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x9
	bls _081C4B30
_081C4BD2:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4AF8

	thumb_func_start sub_81C4BE4
sub_81C4BE4: @ 81C4BE4
	push {lr}
	adds r3, r0, 0
	adds r0, 0x2A
	ldrb r0, [r0]
	subs r0, 0x4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bhi _081C4C1C
	ldrh r0, [r3, 0x30]
	adds r0, 0x1
	movs r1, 0x1F
	ands r0, r1
	strh r0, [r3, 0x30]
	cmp r0, 0x18
	ble _081C4C10
	adds r2, r3, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	b _081C4C2A
_081C4C10:
	adds r2, r3, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	b _081C4C28
_081C4C1C:
	movs r0, 0
	strh r0, [r3, 0x30]
	adds r2, r3, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	subs r0, 0x5
_081C4C28:
	ands r0, r1
_081C4C2A:
	strb r0, [r2]
	movs r1, 0x2E
	ldrsh r0, [r3, r1]
	cmp r0, 0x8
	bne _081C4C44
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c6
	b _081C4C4A
	.pool
_081C4C44:
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040c7
_081C4C4A:
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 4
	strh r0, [r3, 0x26]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4BE4

	thumb_func_start sub_81C4C60
sub_81C4C60: @ 81C4C60
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
_081C4C68:
	adds r0, r5, r4
	lsls r0, 24
	lsrs r0, 24
	bl sub_81C41C0
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _081C4C68
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C4C60

	thumb_func_start sub_81C4C84
sub_81C4C84: @ 81C4C84
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, =gUnknown_0203CF1C
	ldr r0, [r0]
	ldr r1, =0x000040db
	adds r5, r0, r1
	lsls r0, r6, 1
	adds r0, r6
	lsls r0, 24
	movs r4, 0
	ldr r7, =gSprites
	movs r2, 0x80
	lsls r2, 19
	adds r2, r0
	mov r9, r2
	lsrs r6, r0, 24
	movs r1, 0xA0
	lsls r1, 19
	adds r1, r0
	mov r8, r1
_081C4CB4:
	cmp r4, 0
	bne _081C4CD4
	ldrb r1, [r5]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	mov r2, r9
	b _081C4CE4
	.pool
_081C4CD4:
	cmp r4, 0x9
	bne _081C4CEC
	ldrb r1, [r5, 0x9]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	mov r2, r8
_081C4CE4:
	lsrs r1, r2, 24
	bl StartSpriteAnim
	b _081C4D02
_081C4CEC:
	adds r0, r5, r4
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	adds r1, r6, 0x6
	lsls r1, 24
	lsrs r1, 24
	bl StartSpriteAnim
_081C4D02:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _081C4CB4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C4C84

	thumb_func_start sub_81C4D18
sub_81C4D18: @ 81C4D18
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203CF1C
	ldr r2, =0x000040d3
	adds r0, r2
	ldr r1, [r1]
	adds r5, r1, r0
	movs r3, 0
	ldr r4, =gSprites
	movs r7, 0x5
	negs r7, r7
	movs r6, 0
_081C4D32:
	adds r2, r5, r3
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	strh r6, [r0, 0x30]
	ldrb r0, [r2]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	adds r1, 0x3E
	ldrb r2, [r1]
	adds r0, r7, 0
	ands r0, r2
	strb r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x9
	bls _081C4D32
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4D18

	thumb_func_start sub_81C4D70
sub_81C4D70: @ 81C4D70
	push {r4,r5,lr}
	sub sp, 0x4
	adds r5, r0, 0
	ldr r4, =gUnknown_0203CF28
	movs r0, 0x4
	bl Alloc
	str r0, [r4]
	ldr r1, [r5]
	lsls r0, r1, 20
	lsrs r4, r0, 30
	cmp r4, 0
	bne _081C4DDC
	lsls r0, r1, 30
	lsrs r0, 30
	movs r1, 0x8
	movs r2, 0
	bl SetBgAttribute
	ldr r3, [r5]
	lsls r0, r3, 30
	lsrs r0, 30
	ldr r1, =gUnknown_0861D1A0
	lsls r3, 22
	lsrs r3, 24
	str r4, [sp]
	movs r2, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	ldr r1, =gUnknown_0861DEF4
	movs r2, 0x1
	str r2, [sp]
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, [r5]
	lsls r1, 22
	lsrs r1, 24
	str r4, [sp]
	movs r2, 0x20
	movs r3, 0x20
	bl sub_8199D3C
	b _081C4E2E
	.pool
_081C4DDC:
	lsls r0, r1, 30
	lsrs r0, 30
	movs r1, 0x8
	movs r2, 0x2
	bl SetBgAttribute
	ldr r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	movs r1, 0x9
	movs r2, 0x1
	bl SetBgAttribute
	ldr r3, [r5]
	lsls r0, r3, 30
	lsrs r0, 30
	ldr r1, =gUnknown_0861E208
	lsls r3, 22
	lsrs r3, 24
	movs r2, 0
	str r2, [sp]
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	ldr r1, =gUnknown_0861EF64
	movs r4, 0x1
	str r4, [sp]
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, [r5]
	lsls r1, 22
	lsrs r1, 24
	str r4, [sp]
	movs r2, 0x40
	movs r3, 0x40
	bl sub_8199D3C
_081C4E2E:
	ldr r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	ldr r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldr r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	movs r1, 0x4
	movs r2, 0x1
	bl SetBgAttribute
	ldr r0, =gUnknown_0861D140
	ldr r1, =gPlttBufferUnfaded + 0xE0
	ldr r2, =0x04000018
	bl CpuSet
	ldr r0, =gUnknown_0203CF28
	ldr r1, [r0]
	ldr r0, [r5]
	lsls r0, 30
	lsrs r0, 30
	strb r0, [r1]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4D70

	thumb_func_start sub_81C4E90
sub_81C4E90: @ 81C4E90
	push {lr}
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _081C4EA0
	movs r0, 0x1
	b _081C4EAC
_081C4EA0:
	ldr r0, =gUnknown_0203CF28
	ldr r0, [r0]
	ldrb r0, [r0]
	bl ShowBg
	movs r0, 0
_081C4EAC:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C4E90

	thumb_func_start sub_81C4EB4
sub_81C4EB4: @ 81C4EB4
	push {r4,lr}
	ldr r4, =gUnknown_0203CF28
	ldr r0, [r4]
	cmp r0, 0
	beq _081C4EC6
	bl Free
	movs r0, 0
	str r0, [r4]
_081C4EC6:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4EB4

	thumb_func_start sub_81C4ED0
sub_81C4ED0: @ 81C4ED0
	push {lr}
	adds r1, r0, 0
	ldr r0, =gUnknown_0203CF28
	ldr r0, [r0]
	ldrb r0, [r0]
	lsls r1, 8
	movs r2, 0
	bl ChangeBgY
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4ED0

	thumb_func_start sub_81C4EEC
sub_81C4EEC: @ 81C4EEC
	ldr r1, =gUnknown_0203CF30
	movs r0, 0
	strh r0, [r1, 0x6]
	strh r0, [r1, 0x8]
	bx lr
	.pool
	thumb_func_end sub_81C4EEC

	thumb_func_start sub_81C4EFC
sub_81C4EFC: @ 81C4EFC
	push {lr}
	ldr r1, =sub_8086194
	movs r0, 0
	bl sub_81C4F98
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4EFC

	thumb_func_start sub_81C4F10
sub_81C4F10: @ 81C4F10
	push {lr}
	ldr r1, =sub_8059D50
	movs r0, 0x1
	bl sub_81C4F98
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4F10

	thumb_func_start sub_81C4F24
sub_81C4F24: @ 81C4F24
	push {lr}
	bl ScriptContext2_Enable
	movs r0, 0x1
	movs r1, 0
	bl fade_screen
	ldr r0, =sub_81C4F44
	movs r1, 0xA
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4F24

	thumb_func_start sub_81C4F44
sub_81C4F44: @ 81C4F44
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081C4F6E
	bl overworld_free_bg_tilemaps
	ldr r0, =gUnknown_03005DB0
	ldr r1, =hm_add_c3_without_phase_2
	str r1, [r0]
	ldr r1, =c2_exit_to_overworld_2_switch
	movs r0, 0x3
	bl sub_81C4F98
	adds r0, r4, 0
	bl DestroyTask
_081C4F6E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4F44

	thumb_func_start sub_81C4F84
sub_81C4F84: @ 81C4F84
	push {lr}
	ldr r0, =gUnknown_0203CF30
	ldr r1, [r0]
	movs r0, 0x4
	bl sub_81C4F98
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4F84

	thumb_func_start sub_81C4F98
sub_81C4F98: @ 81C4F98
	push {r4-r6,lr}
	adds r5, r1, 0
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r6, =gUnknown_0203CF2C
	ldr r0, =0x0000098c
	bl AllocZeroed
	str r0, [r6]
	cmp r4, 0x4
	beq _081C4FB2
	ldr r0, =gUnknown_0203CF30
	strb r4, [r0, 0x4]
_081C4FB2:
	cmp r5, 0
	beq _081C4FBA
	ldr r0, =gUnknown_0203CF30
	str r5, [r0]
_081C4FBA:
	ldr r0, [r6]
	movs r1, 0
	str r1, [r0]
	ldr r1, =0x00000814
	adds r0, r1
	movs r1, 0xFF
	strb r1, [r0]
	ldr r0, [r6]
	ldr r1, =0x00000816
	adds r0, r1
	movs r1, 0x1
	negs r1, r1
	strb r1, [r0]
	ldr r0, [r6]
	ldr r1, =0x00000804
	adds r0, r1
	movs r1, 0xFF
	movs r2, 0xB
	bl memset
	ldr r0, [r6]
	ldr r1, =0x0000080f
	adds r0, r1
	movs r1, 0xFF
	movs r2, 0x5
	bl memset
	ldr r0, =sub_81C504C
	bl SetMainCallback2
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C4F98

	thumb_func_start sub_81C501C
sub_81C501C: @ 81C501C
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl do_scheduled_bg_tilemap_copies_to_vram
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_81C501C

	thumb_func_start sub_81C5038
sub_81C5038: @ 81C5038
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_81C5038

	thumb_func_start sub_81C504C
sub_81C504C: @ 81C504C
	push {lr}
_081C504E:
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C5072
	bl sub_81C5078
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C5072
	bl sub_81221AC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C504E
_081C5072:
	pop {r0}
	bx r0
	thumb_func_end sub_81C504C

	thumb_func_start sub_81C5078
sub_81C5078: @ 81C5078
	push {lr}
	sub sp, 0x4
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x10
	bls _081C508C
	b _081C51BC
_081C508C:
	lsls r0, 2
	ldr r1, =_081C50A0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C50A0:
	.4byte _081C50E4
	.4byte _081C50EE
	.4byte _081C50F4
	.4byte _081C50FA
	.4byte _081C510C
	.4byte _081C5112
	.4byte _081C5122
	.4byte _081C513C
	.4byte _081C5148
	.4byte _081C514E
	.4byte _081C515C
	.4byte _081C5162
	.4byte _081C5168
	.4byte _081C516E
	.4byte _081C5174
	.4byte _081C517A
	.4byte _081C5188
_081C50E4:
	bl SetVBlankHBlankCallbacksToNull
	bl clear_scheduled_bg_copies_to_vram
	b _081C51A2
_081C50EE:
	bl remove_some_task
	b _081C51A2
_081C50F4:
	bl FreeAllSpritePalettes
	b _081C51A2
_081C50FA:
	bl ResetPaletteFade
	ldr r2, =gPaletteFade
	ldrb r0, [r2, 0x8]
	movs r1, 0x80
	orrs r0, r1
	b _081C51A0
	.pool
_081C510C:
	bl ResetSpriteData
	b _081C51A2
_081C5112:
	bl sub_81221AC
	lsls r0, 24
	cmp r0, 0
	bne _081C51A2
	bl ResetTasks
	b _081C51A2
_081C5122:
	bl sub_81C51DC
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000984
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	b _081C51A2
	.pool
_081C513C:
	bl sub_81C5238
	lsls r0, 24
	cmp r0, 0
	beq _081C51D4
	b _081C51A2
_081C5148:
	bl sub_81C6BD8
	b _081C51A2
_081C514E:
	bl sub_81C5924
	bl sub_81C59BC
	bl sub_81C5A20
	b _081C51A2
_081C515C:
	bl sub_81C5314
	b _081C51A2
_081C5162:
	bl sub_81C56F8
	b _081C51A2
_081C5168:
	bl sub_81C6EF4
	b _081C51A2
_081C516E:
	bl sub_81C5674
	b _081C51A2
_081C5174:
	bl sub_81C700C
	b _081C51A2
_081C517A:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	b _081C51A2
_081C5188:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r2, =gPaletteFade
	ldrb r1, [r2, 0x8]
	movs r0, 0x7F
	ands r0, r1
_081C51A0:
	strb r0, [r2, 0x8]
_081C51A2:
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _081C51D4
	.pool
_081C51BC:
	ldr r0, =sub_81C5038
	bl SetVBlankCallback
	ldr r0, =sub_81C501C
	bl SetMainCallback2
	movs r0, 0x1
	b _081C51D6
	.pool
_081C51D4:
	movs r0, 0
_081C51D6:
	add sp, 0x4
	pop {r1}
	bx r1
	thumb_func_end sub_81C5078

	thumb_func_start sub_81C51DC
sub_81C51DC: @ 81C51DC
	push {lr}
	bl sub_8121DA0
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0861F2B4
	movs r0, 0
	movs r2, 0x3
	bl InitBgsFromTemplates
	ldr r0, =gUnknown_0203CF2C
	ldr r1, [r0]
	adds r1, 0x4
	movs r0, 0x2
	bl SetBgTilemapBuffer
	bl sub_8121E10
	movs r0, 0x2
	bl schedule_bg_copy_tilemap_to_vram
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C51DC

	thumb_func_start sub_81C5238
sub_81C5238: @ 81C5238
	push {r4,lr}
	sub sp, 0x4
	ldr r4, =gUnknown_0203CF2C
	ldr r0, [r4]
	ldr r1, =0x00000984
	adds r0, r1
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0x4
	bhi _081C52F0
	lsls r0, 2
	ldr r1, =_081C5264
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C5264:
	.4byte _081C5278
	.4byte _081C5294
	.4byte _081C52B8
	.4byte _081C52C8
	.4byte _081C52D4
_081C5278:
	bl reset_temp_tile_data_buffers
	ldr r1, =gUnknown_08D9A620
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	b _081C52D8
	.pool
_081C5294:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C5308
	ldr r0, =gUnknown_08D9AE04
	ldr r4, =gUnknown_0203CF2C
	ldr r1, [r4]
	adds r1, 0x4
	bl LZDecompressWram
	ldr r1, [r4]
	b _081C52DC
	.pool
_081C52B8:
	ldr r0, =gUnknown_08D9AF44
	movs r1, 0
	movs r2, 0x20
	bl LoadCompressedPalette
	b _081C52D8
	.pool
_081C52C8:
	ldr r0, =gUnknown_0861F3CC
	bl LoadCompressedObjectPic
	b _081C52D8
	.pool
_081C52D4:
	bl sub_81C6E98
_081C52D8:
	ldr r0, =gUnknown_0203CF2C
	ldr r1, [r0]
_081C52DC:
	ldr r0, =0x00000984
	adds r1, r0
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _081C5308
	.pool
_081C52F0:
	bl sub_8122328
	ldr r0, [r4]
	ldr r1, =0x00000984
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	movs r0, 0x1
	b _081C530A
	.pool
_081C5308:
	movs r0, 0
_081C530A:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C5238

	thumb_func_start sub_81C5314
sub_81C5314: @ 81C5314
	push {r4-r7,lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r2, [r0]
	ldr r1, =0x00000ca9
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	ldr r3, =0x00000e2c
	adds r0, r3
	adds r7, r2, r0
	movs r6, 0
	ldr r1, =gUnknown_0203CF2C
	ldr r0, [r1]
	ldr r4, =0x00000821
	adds r0, r4
	ldrb r0, [r0]
	subs r0, 0x1
	cmp r6, r0
	bge _081C5382
	adds r5, r1, 0
_081C5344:
	lsls r1, r6, 1
	adds r4, r1, r6
	lsls r4, 3
	ldr r0, =0x0000087c
	adds r4, r0
	ldr r0, [r5]
	adds r0, r4
	adds r1, r7
	ldrh r1, [r1]
	bl sub_81C540C
	ldr r1, [r5]
	lsls r2, r6, 3
	ldr r3, =0x00000824
	adds r0, r1, r3
	adds r0, r2
	adds r4, r1, r4
	str r4, [r0]
	ldr r4, =0x00000828
	adds r0, r1, r4
	adds r0, r2
	str r6, [r0]
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	ldr r0, =0x00000821
	adds r1, r0
	ldrb r0, [r1]
	subs r0, 0x1
	cmp r6, r0
	blt _081C5344
_081C5382:
	ldr r5, =gUnknown_0203CF2C
	lsls r4, r6, 1
	adds r4, r6
	lsls r4, 3
	ldr r1, =0x0000087c
	adds r4, r1
	ldr r0, [r5]
	adds r0, r4
	ldr r1, =gText_CloseBag
	bl StringCopy
	ldr r1, [r5]
	lsls r2, r6, 3
	ldr r3, =0x00000824
	adds r0, r1, r3
	adds r0, r2
	adds r4, r1, r4
	str r4, [r0]
	ldr r4, =0x00000828
	adds r1, r4
	adds r1, r2
	movs r0, 0x2
	negs r0, r0
	str r0, [r1]
	ldr r2, =gUnknown_03006310
	adds r1, r2, 0
	ldr r0, =gUnknown_0861F2C0
	ldm r0!, {r4,r6,r7}
	stm r1!, {r4,r6,r7}
	ldm r0!, {r4,r6,r7}
	stm r1!, {r4,r6,r7}
	ldr r1, [r5]
	ldr r6, =0x00000821
	adds r0, r1, r6
	ldrb r0, [r0]
	strh r0, [r2, 0xC]
	adds r3, r1, r3
	str r3, [r2]
	ldr r7, =0x00000822
	adds r1, r7
	ldrb r0, [r1]
	strh r0, [r2, 0xE]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5314

	thumb_func_start sub_81C540C
sub_81C540C: @ 81C540C
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r1, 16
	lsrs r4, r1, 16
	adds r0, r4, 0
	bl ItemId_GetPocket
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bne _081C5450
	ldr r0, =gStringVar1
	adds r1, r4, 0
	subs r1, 0x84
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r1, =gStringVar2
	adds r0, r4, 0
	bl CopyItemName
	ldr r1, =gUnknown_085E9210
	adds r0, r5, 0
	bl StringExpandPlaceholders
	b _081C5458
	.pool
_081C5450:
	adds r0, r4, 0
	adds r1, r5, 0
	bl CopyItemName
_081C5458:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C540C

	thumb_func_start sub_81C5460
sub_81C5460: @ 81C5460
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r1, 24
	lsrs r1, 24
	cmp r1, 0x1
	beq _081C5476
	movs r0, 0x5
	bl PlaySE
	bl sub_81C6F20
_081C5476:
	ldr r5, =gUnknown_0203CF2C
	ldr r1, [r5]
	ldr r2, =0x00000814
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _081C5504
	adds r2, 0x1
	adds r0, r1, r2
	ldrb r1, [r0]
	movs r0, 0x1
	eors r0, r1
	bl sub_81C6FF8
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _081C54E0
	ldr r0, =gSaveBlock2Ptr
	ldr r2, [r0]
	lsls r3, r4, 1
	ldr r1, =0x00000ca9
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r3, r0
	ldr r0, =0x00000e2c
	adds r2, r0
	adds r2, r3
	ldrh r0, [r2]
	ldr r1, [r5]
	ldr r2, =0x00000815
	adds r1, r2
	ldrb r1, [r1]
	bl sub_81C6F90
	b _081C54EE
	.pool
_081C54E0:
	ldr r0, =0x0000ffff
	ldr r1, [r5]
	ldr r2, =0x00000815
	adds r1, r2
	ldrb r1, [r1]
	bl sub_81C6F90
_081C54EE:
	ldr r0, =gUnknown_0203CF2C
	ldr r1, [r0]
	ldr r0, =0x00000815
	adds r1, r0
	ldrb r0, [r1]
	movs r2, 0x1
	eors r0, r2
	strb r0, [r1]
	adds r0, r4, 0
	bl sub_81C55D8
_081C5504:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5460

	thumb_func_start sub_81C5518
sub_81C5518: @ 81C5518
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r1, 0
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r2, 24
	lsrs r5, r2, 24
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _081C55B8
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000814
	adds r0, r1
	ldrb r1, [r0]
	cmp r1, 0xFF
	beq _081C5560
	lsls r0, r4, 24
	lsrs r0, 24
	cmp r1, r0
	bne _081C5558
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81C5AB8
	b _081C5560
	.pool
_081C5558:
	adds r0, r5, 0
	movs r1, 0xFF
	bl sub_81C5AB8
_081C5560:
	ldr r0, =gStringVar1
	ldr r1, =gSaveBlock2Ptr
	ldr r3, [r1]
	ldr r2, =0x00000ca9
	adds r1, r3, r2
	ldrb r2, [r1]
	lsls r2, 30
	lsrs r2, 30
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 1
	adds r1, r4, r1
	ldr r2, =0x00000e54
	adds r3, r2
	adds r3, r1
	ldrb r1, [r3]
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gText_xVar1
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0x7
	adds r1, r4, 0
	movs r2, 0x77
	bl GetStringRightAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	movs r0, 0xFF
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	adds r0, r6, 0
	adds r1, r4, 0
	adds r3, r5, 0
	bl sub_81C6C94
_081C55B8:
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5518

	thumb_func_start sub_81C55D8
sub_81C55D8: @ 81C55D8
	push {r4,lr}
	sub sp, 0x10
	adds r3, r0, 0
	movs r0, 0x2
	negs r0, r0
	cmp r3, r0
	beq _081C561C
	ldr r0, =gSaveBlock2Ptr
	ldr r2, [r0]
	lsls r3, 1
	ldr r1, =0x00000ca9
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r3, r0
	ldr r0, =0x00000e2c
	adds r2, r0
	adds r2, r3
	ldrh r0, [r2]
	bl ItemId_GetDescription
	adds r4, r0, 0
	b _081C5638
	.pool
_081C561C:
	ldr r0, =gStringVar1
	ldr r2, =gUnknown_085E91B0
	ldr r1, =gUnknown_0203CF30
	ldrb r1, [r1, 0x4]
	lsls r1, 2
	adds r1, r2
	ldr r1, [r1]
	bl StringCopy
	ldr r4, =gStringVar4
	ldr r1, =gText_ReturnToVar1
	adds r0, r4, 0
	bl StringExpandPlaceholders
_081C5638:
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r1, 0
	str r1, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r1, [sp, 0xC]
	adds r1, r4, 0
	movs r2, 0x3
	movs r3, 0
	bl sub_81C6C3C
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C55D8

	thumb_func_start sub_81C5674
sub_81C5674: @ 81C5674
	push {r4,lr}
	sub sp, 0x10
	ldr r4, =gUnknown_0203CF2C
	ldr r1, [r4]
	ldr r2, =0x00000816
	adds r0, r1, r2
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _081C56B4
	adds r2, 0xB
	adds r0, r1, r2
	ldrb r0, [r0]
	adds r2, 0x1
	adds r1, r2
	ldrb r1, [r1]
	subs r0, r1
	str r0, [sp]
	ldr r0, =0x00000b5e
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	ldr r0, =gUnknown_0203CF38
	str r0, [sp, 0xC]
	movs r0, 0x2
	movs r1, 0xAC
	movs r2, 0xC
	movs r3, 0x94
	bl AddScrollIndicatorArrowPairParametrized
	ldr r1, [r4]
	ldr r2, =0x00000816
	adds r1, r2
	strb r0, [r1]
_081C56B4:
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5674

	thumb_func_start sub_81C56CC
sub_81C56CC: @ 81C56CC
	push {r4,lr}
	ldr r4, =gUnknown_0203CF2C
	ldr r0, [r4]
	ldr r2, =0x00000816
	adds r1, r0, r2
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _081C56EA
	bl RemoveScrollIndicatorArrowPair
	ldr r0, [r4]
	ldr r1, =0x00000816
	adds r0, r1
	movs r1, 0xFF
	strb r1, [r0]
_081C56EA:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C56CC

	thumb_func_start sub_81C56F8
sub_81C56F8: @ 81C56F8
	push {r4,lr}
	ldr r0, =sub_81C5BC8
	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
	ldr r0, =gUnknown_03006310
	ldr r2, =gUnknown_0203CF30
	ldrh r1, [r2, 0x8]
	ldrh r2, [r2, 0x6]
	bl ListMenuInit
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C56F8

	thumb_func_start sub_81C5738
sub_81C5738: @ 81C5738
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =gSaveBlock2Ptr
	ldr r6, [r2]
	ldr r3, =0x00000ca9
	adds r2, r6, r3
	ldrb r3, [r2]
	lsls r3, 30
	lsrs r2, r3, 30
	lsls r4, r2, 2
	adds r4, r2
	lsls r4, 2
	ldr r2, =0x00000e2c
	adds r4, r2
	adds r4, r6, r4
	lsrs r3, 30
	lsls r2, r3, 2
	adds r2, r3
	lsls r2, 1
	ldr r3, =0x00000e54
	adds r2, r3
	adds r6, r2
	lsls r5, r0, 1
	adds r5, r4
	ldrh r2, [r5]
	mov r8, r2
	lsls r2, r1, 1
	adds r2, r4
	ldrh r3, [r2]
	strh r3, [r5]
	mov r3, r8
	strh r3, [r2]
	adds r0, r6, r0
	ldrb r2, [r0]
	adds r6, r1
	ldrb r1, [r6]
	strb r1, [r0]
	strb r2, [r6]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5738

	thumb_func_start sub_81C57A8
sub_81C57A8: @ 81C57A8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r7, r4, 0
	lsls r1, 24
	lsrs r5, r1, 24
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	ldr r1, =0x00000ca9
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r2, r1, 30
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	ldr r2, =0x00000e2c
	adds r0, r2
	adds r6, r3, r0
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	ldr r1, =0x00000e54
	adds r0, r1
	adds r3, r0
	cmp r4, r5
	beq _081C5862
	lsls r0, r4, 1
	adds r0, r6
	ldrh r0, [r0]
	mov r12, r0
	adds r0, r3, r4
	ldrb r0, [r0]
	mov r8, r0
	cmp r5, r4
	bls _081C5830
	subs r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r2, r4, 16
	cmp r4, r5
	bge _081C5854
_081C5802:
	asrs r2, 16
	lsls r0, r2, 1
	adds r0, r6
	ldrh r1, [r0, 0x2]
	strh r1, [r0]
	adds r1, r3, r2
	ldrb r0, [r1, 0x1]
	strb r0, [r1]
	adds r2, 0x1
	lsls r2, 16
	asrs r0, r2, 16
	cmp r0, r5
	blt _081C5802
	b _081C5854
	.pool
_081C5830:
	lsls r2, r7, 16
	cmp r7, r5
	ble _081C5854
_081C5836:
	asrs r2, 16
	lsls r1, r2, 1
	adds r1, r6
	subs r0, r1, 0x2
	ldrh r0, [r0]
	strh r0, [r1]
	adds r1, r3, r2
	subs r0, r1, 0x1
	ldrb r0, [r0]
	strb r0, [r1]
	subs r2, 0x1
	lsls r2, 16
	asrs r0, r2, 16
	cmp r0, r5
	bgt _081C5836
_081C5854:
	lsls r0, r5, 1
	adds r0, r6
	mov r2, r12
	strh r2, [r0]
	adds r0, r3, r5
	mov r1, r8
	strb r1, [r0]
_081C5862:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C57A8

	thumb_func_start sub_81C586C
sub_81C586C: @ 81C586C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	ldr r1, =0x00000ca9
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r2, r1, 30
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	ldr r2, =0x00000e2c
	adds r0, r2
	adds r0, r3
	mov r9, r0
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	ldr r4, =0x00000e54
	adds r0, r4
	adds r3, r0
	mov r8, r3
	movs r5, 0
	movs r3, 0
_081C58A4:
	lsls r0, r5, 1
	mov r1, r9
	adds r2, r0, r1
	ldrh r0, [r2]
	mov r4, r8
	adds r1, r4, r5
	cmp r0, 0
	beq _081C58BA
	ldrb r0, [r1]
	cmp r0, 0
	bne _081C58BE
_081C58BA:
	strh r3, [r2]
	strb r3, [r1]
_081C58BE:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x9
	bls _081C58A4
	movs r5, 0
_081C58CA:
	adds r1, r5, 0x1
	lsls r0, r1, 24
	lsrs r4, r0, 24
	adds r7, r1, 0
	cmp r4, 0x9
	bhi _081C58FE
	lsls r0, r5, 1
	mov r1, r9
	adds r6, r0, r1
_081C58DC:
	ldrh r0, [r6]
	cmp r0, 0
	beq _081C58EC
	mov r2, r8
	adds r0, r2, r5
	ldrb r0, [r0]
	cmp r0, 0
	bne _081C58F4
_081C58EC:
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_81C5738
_081C58F4:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x9
	bls _081C58DC
_081C58FE:
	lsls r0, r7, 24
	lsrs r5, r0, 24
	cmp r5, 0x8
	bls _081C58CA
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C586C

	thumb_func_start sub_81C5924
sub_81C5924: @ 81C5924
	push {r4-r6,lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r2, [r0]
	ldr r1, =0x00000ca9
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	ldr r1, =0x00000e2c
	adds r0, r1
	adds r5, r2, r0
	bl sub_81C586C
	ldr r3, =gUnknown_0203CF2C
	ldr r0, [r3]
	ldr r2, =0x00000821
	adds r0, r2
	movs r1, 0
	strb r1, [r0]
	movs r4, 0
	adds r6, r3, 0
_081C5954:
	lsls r0, r4, 1
	adds r0, r5
	ldrh r0, [r0]
	ldr r3, =gUnknown_0203CF2C
	cmp r0, 0
	beq _081C596A
	ldr r1, [r6]
	adds r1, r2
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_081C596A:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x9
	bls _081C5954
	ldr r0, [r3]
	ldr r2, =0x00000821
	adds r0, r2
	ldrb r1, [r0]
	adds r1, 0x1
	strb r1, [r0]
	ldr r0, [r3]
	adds r2, r0, r2
	ldrb r2, [r2]
	cmp r2, 0x8
	bls _081C59AC
	ldr r2, =0x00000822
	adds r1, r0, r2
	movs r0, 0x8
	strb r0, [r1]
	b _081C59B2
	.pool
_081C59AC:
	ldr r1, =0x00000822
	adds r0, r1
	strb r2, [r0]
_081C59B2:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5924

	thumb_func_start sub_81C59BC
sub_81C59BC: @ 81C59BC
	push {r4,r5,lr}
	ldr r0, =gUnknown_0203CF30
	ldrh r1, [r0, 0x8]
	adds r3, r0, 0
	ldr r4, =gUnknown_0203CF2C
	cmp r1, 0
	beq _081C59E4
	ldrh r0, [r3, 0x8]
	ldr r1, [r4]
	ldr r5, =0x00000822
	adds r2, r1, r5
	ldrb r2, [r2]
	adds r0, r2
	subs r5, 0x1
	adds r1, r5
	ldrb r1, [r1]
	cmp r0, r1
	ble _081C59E4
	subs r0, r1, r2
	strh r0, [r3, 0x8]
_081C59E4:
	adds r2, r3, 0
	ldrh r1, [r2, 0x8]
	ldrh r0, [r2, 0x6]
	adds r1, r0
	ldr r0, [r4]
	ldr r4, =0x00000821
	adds r0, r4
	ldrb r0, [r0]
	cmp r1, r0
	blt _081C5A18
	adds r1, r0, 0
	cmp r1, 0
	bne _081C5A14
	strh r1, [r2, 0x6]
	b _081C5A18
	.pool
_081C5A14:
	subs r0, 0x1
	strh r0, [r3, 0x6]
_081C5A18:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C59BC

	thumb_func_start sub_81C5A20
sub_81C5A20: @ 81C5A20
	push {r4-r7,lr}
	ldr r0, =gUnknown_0203CF30
	ldrh r1, [r0, 0x6]
	adds r5, r0, 0
	cmp r1, 0x4
	bls _081C5A80
	movs r4, 0
	ldrh r0, [r5, 0x6]
	subs r0, 0x4
	cmp r4, r0
	bgt _081C5A80
	ldrh r2, [r5, 0x8]
	ldr r6, =gUnknown_0203CF2C
	ldr r0, [r6]
	ldr r3, =0x00000822
	adds r1, r0, r3
	ldrb r1, [r1]
	adds r2, r1
	ldr r7, =0x00000821
	adds r0, r7
	ldrb r0, [r0]
	cmp r2, r0
	beq _081C5A80
	adds r3, r5, 0
_081C5A50:
	ldrh r0, [r3, 0x6]
	subs r0, 0x1
	strh r0, [r3, 0x6]
	ldrh r0, [r3, 0x8]
	adds r0, 0x1
	strh r0, [r3, 0x8]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldrh r0, [r3, 0x6]
	subs r0, 0x4
	cmp r4, r0
	bgt _081C5A80
	ldrh r2, [r5, 0x8]
	ldr r1, [r6]
	ldr r7, =0x00000822
	adds r0, r1, r7
	ldrb r0, [r0]
	adds r2, r0
	ldr r0, =0x00000821
	adds r1, r0
	ldrb r1, [r1]
	cmp r2, r1
	bne _081C5A50
_081C5A80:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5A20

	thumb_func_start sub_81C5A98
sub_81C5A98: @ 81C5A98
	push {r4,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsrs r4, 24
	bl ListMenuGetYCoordForPrintingArrowCursor
	lsls r0, 24
	lsrs r0, 24
	adds r1, r4, 0
	bl sub_81C5AB8
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C5A98

	thumb_func_start sub_81C5AB8
sub_81C5AB8: @ 81C5AB8
	push {r4,r5,lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 24
	lsrs r2, r1, 24
	cmp r2, 0xFF
	bne _081C5AF4
	movs r0, 0x1
	movs r1, 0
	bl GetMenuCursorDimensionByFont
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x1
	movs r1, 0x1
	bl GetMenuCursorDimensionByFont
	lsls r0, 24
	lsrs r0, 24
	str r4, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	adds r3, r5, 0
	bl FillWindowPixelRect
	b _081C5B08
_081C5AF4:
	ldr r1, =gText_SelectorArrow2
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	str r2, [sp, 0xC]
	movs r2, 0
	adds r3, r5, 0
	bl sub_81C6C3C
_081C5B08:
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5AB8

	thumb_func_start sub_81C5B14
sub_81C5B14: @ 81C5B14
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C5B4C
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5B14

	thumb_func_start sub_81C5B4C
sub_81C5B4C: @ 81C5B4C
	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 r2, r0, r1
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081C5BBC
	ldrb r0, [r2]
	ldr r4, =gUnknown_0203CF38
	subs r2, r4, 0x2
	adds r1, r4, 0
	bl sub_81AE6C8
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r0, [r0]
	cmp r0, 0
	beq _081C5B94
	bl SetMainCallback2
	b _081C5B9E
	.pool
_081C5B94:
	adds r0, r4, 0
	subs r0, 0x8
	ldr r0, [r0]
	bl SetMainCallback2
_081C5B9E:
	bl sub_81C56CC
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl FreeAllWindowBuffers
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	bl Free
	adds r0, r5, 0
	bl DestroyTask
_081C5BBC:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5B4C

	thumb_func_start sub_81C5BC8
sub_81C5BC8: @ 81C5BC8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r7, r0, r1
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C5BEA
	b _081C5D16
_081C5BEA:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081C5BF8
	b _081C5D16
_081C5BF8:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x4
	ands r0, r1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0
	beq _081C5C5C
	ldr r4, =gUnknown_0203CF30
	ldrb r0, [r4, 0x4]
	cmp r0, 0x2
	bne _081C5C12
	b _081C5D16
_081C5C12:
	ldrb r0, [r7]
	adds r1, r4, 0
	adds r1, 0x8
	adds r2, r4, 0x6
	bl get_coro_args_x18_x1A
	ldrh r1, [r4, 0x8]
	ldrh r0, [r4, 0x6]
	adds r1, r0
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r2, =0x00000821
	adds r0, r2
	ldrb r0, [r0]
	subs r0, 0x1
	cmp r1, r0
	beq _081C5D16
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81C67CC
	b _081C5D16
	.pool
_081C5C5C:
	ldrb r0, [r7]
	bl ListMenuHandleInput
	adds r6, r0, 0
	ldrb r0, [r7]
	ldr r1, =gUnknown_0203CF38
	mov r8, r1
	mov r2, r8
	subs r2, 0x2
	bl get_coro_args_x18_x1A
	movs r0, 0x2
	negs r0, r0
	cmp r6, r0
	beq _081C5C88
	adds r0, 0x1
	cmp r6, r0
	bne _081C5CA0
	b _081C5D16
	.pool
_081C5C88:
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gScriptItemId
	strh r4, [r0]
	adds r0, r5, 0
	bl sub_81C5B14
	b _081C5D16
	.pool
_081C5CA0:
	movs r0, 0x5
	bl PlaySE
	ldr r2, =gScriptItemId
	mov r12, r2
	ldr r0, =gSaveBlock2Ptr
	ldr r2, [r0]
	lsls r3, r6, 1
	ldr r0, =0x00000ca9
	adds r4, r2, r0
	ldrb r1, [r4]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r3, r0
	ldr r1, =0x00000e2c
	adds r0, r2, r1
	adds r0, r3
	ldrh r0, [r0]
	mov r1, r12
	strh r0, [r1]
	strh r6, [r7, 0x2]
	ldrb r1, [r4]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	adds r0, r6, r0
	ldr r1, =0x00000e54
	adds r2, r1
	adds r2, r0
	ldrb r0, [r2]
	strh r0, [r7, 0x4]
	mov r0, r8
	subs r0, 0x8
	ldrb r0, [r0, 0x4]
	cmp r0, 0x2
	bne _081C5D10
	adds r0, r5, 0
	bl sub_81C674C
	b _081C5D16
	.pool
_081C5D10:
	adds r0, r5, 0
	bl sub_81C5D20
_081C5D16:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C5BC8

	thumb_func_start sub_81C5D20
sub_81C5D20: @ 81C5D20
	push {r4,r5,lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	bl sub_81C56CC
	ldrb r0, [r4]
	movs r1, 0x1
	bl sub_81C5A98
	ldr r0, =gUnknown_0203CF30
	ldrb r4, [r0, 0x4]
	cmp r4, 0x1
	beq _081C5D74
	cmp r4, 0x3
	beq _081C5DC4
	ldr r0, =gUnknown_0203CF2C
	ldr r1, [r0]
	ldr r0, =0x00000818
	adds r2, r1, r0
	ldr r0, =gUnknown_0861F308
	str r0, [r2]
	movs r0, 0x82
	lsls r0, 4
	adds r1, r0
	movs r0, 0x4
	b _081C5DD8
	.pool
_081C5D74:
	ldr r0, =gScriptItemId
	ldrh r0, [r0]
	bl ItemId_GetBattleUsage
	lsls r0, 24
	cmp r0, 0
	beq _081C5DA0
	ldr r0, =gUnknown_0203CF2C
	ldr r1, [r0]
	ldr r0, =0x00000818
	adds r2, r1, r0
	ldr r0, =gUnknown_0861F30E
	b _081C5DCE
	.pool
_081C5DA0:
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000818
	adds r2, r0, r1
	ldr r1, =gUnknown_0861F310
	str r1, [r2]
	movs r1, 0x82
	lsls r1, 4
	adds r0, r1
	strb r4, [r0]
	b _081C5DDA
	.pool
_081C5DC4:
	ldr r0, =gUnknown_0203CF2C
	ldr r1, [r0]
	ldr r0, =0x00000818
	adds r2, r1, r0
	ldr r0, =gUnknown_0861F30C
_081C5DCE:
	str r0, [r2]
	movs r0, 0x82
	lsls r0, 4
	adds r1, r0
	movs r0, 0x2
_081C5DD8:
	strb r0, [r1]
_081C5DDA:
	ldr r0, =gScriptItemId
	ldrh r0, [r0]
	ldr r1, =gStringVar1
	bl CopyItemName
	ldr r4, =gStringVar4
	ldr r1, =gText_Var1IsSelected
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r1, 0
	str r1, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r1, [sp, 0xC]
	adds r1, r4, 0
	movs r2, 0x3
	movs r3, 0
	bl sub_81C6C3C
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	movs r1, 0x82
	lsls r1, 4
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081C5E3C
	movs r0, 0
	b _081C5E42
	.pool
_081C5E3C:
	cmp r0, 0x2
	bne _081C5E50
	movs r0, 0x1
_081C5E42:
	bl sub_81C6D24
	lsls r0, 24
	lsrs r0, 24
	bl sub_81C5EAC
	b _081C5E62
_081C5E50:
	movs r0, 0x2
	bl sub_81C6D24
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x2
	movs r2, 0x2
	bl sub_81C5F08
_081C5E62:
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	movs r1, 0x82
	lsls r1, 4
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x4
	bne _081C5E8C
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81C5FE4
	b _081C5E98
	.pool
_081C5E8C:
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81C5F68
_081C5E98:
	str r0, [r1]
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5D20

	thumb_func_start sub_81C5EAC
sub_81C5EAC: @ 81C5EAC
	push {r4-r6,lr}
	sub sp, 0x14
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	str r0, [sp]
	movs r0, 0x10
	str r0, [sp, 0x4]
	ldr r6, =gUnknown_0203CF2C
	ldr r1, [r6]
	movs r5, 0x82
	lsls r5, 4
	adds r0, r1, r5
	ldrb r0, [r0]
	str r0, [sp, 0x8]
	ldr r0, =gUnknown_0861F2D8
	str r0, [sp, 0xC]
	ldr r0, =0x00000818
	adds r1, r0
	ldr r0, [r1]
	str r0, [sp, 0x10]
	adds r0, r4, 0
	movs r1, 0x7
	movs r2, 0x8
	movs r3, 0x1
	bl AddItemMenuActionTextPrinters
	ldr r0, [r6]
	adds r0, r5
	ldrb r1, [r0]
	adds r0, r4, 0
	movs r2, 0
	bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
	add sp, 0x14
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5EAC

	thumb_func_start sub_81C5F08
sub_81C5F08: @ 81C5F08
	push {r4-r6,lr}
	sub sp, 0x14
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	movs r0, 0x38
	str r0, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	ldr r0, =gUnknown_0861F2D8
	str r0, [sp, 0xC]
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000818
	adds r0, r1
	ldr r0, [r0]
	str r0, [sp, 0x10]
	adds r0, r4, 0
	movs r1, 0x7
	movs r2, 0x8
	movs r3, 0x1
	bl sub_8198DBC
	movs r0, 0
	str r0, [sp]
	adds r0, r4, 0
	movs r1, 0x38
	adds r2, r5, 0
	adds r3, r6, 0
	bl sub_8199944
	add sp, 0x14
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5F08

	thumb_func_start sub_81C5F68
sub_81C5F68: @ 81C5F68
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C5FD0
	bl ProcessMenuInputNoWrapAround
	lsls r0, 24
	asrs r4, r0, 24
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _081C5FD0
	adds r0, 0x1
	cmp r4, r0
	bne _081C5FA8
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gUnknown_0861F2D8
	ldr r1, [r0, 0x1C]
	adds r0, r5, 0
	bl _call_via_r1
	b _081C5FD0
	.pool
_081C5FA8:
	movs r0, 0x5
	bl PlaySE
	ldr r1, =gUnknown_0861F2D8
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r2, =0x00000818
	adds r0, r2
	ldr r0, [r0]
	adds r0, r4
	ldrb r0, [r0]
	lsls r0, 3
	adds r1, 0x4
	adds r0, r1
	ldr r1, [r0]
	cmp r1, 0
	beq _081C5FD0
	adds r0, r6, 0
	bl _call_via_r1
_081C5FD0:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5F68

	thumb_func_start sub_81C5FE4
sub_81C5FE4: @ 81C5FE4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C5FF8
	b _081C6160
_081C5FF8:
	bl GetMenuCursorPos
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r5, =gMain
	ldrh r1, [r5, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081C6040
	lsls r0, r4, 24
	asrs r0, 24
	cmp r0, 0
	bgt _081C6016
	b _081C6160
_081C6016:
	subs r0, 0x2
	lsls r0, 24
	asrs r0, 24
	bl sub_81C616C
	lsls r0, 24
	cmp r0, 0
	bne _081C6028
	b _081C6160
_081C6028:
	movs r0, 0x5
	bl PlaySE
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	bl sub_8199134
	b _081C6160
	.pool
_081C6040:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081C6084
	lsls r0, r4, 24
	asrs r1, r0, 24
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	movs r2, 0x82
	lsls r2, 4
	adds r0, r2
	ldrb r0, [r0]
	subs r0, 0x2
	cmp r1, r0
	blt _081C6060
	b _081C6160
_081C6060:
	adds r0, r1, 0x2
	lsls r0, 24
	asrs r0, 24
	bl sub_81C616C
	lsls r0, 24
	cmp r0, 0
	beq _081C6160
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	movs r1, 0x1
	bl sub_8199134
	b _081C6160
	.pool
_081C6084:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	bne _081C6098
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C60C0
_081C6098:
	lsls r0, r4, 24
	asrs r1, r0, 24
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C6160
	subs r0, r1, 0x1
	lsls r0, 24
	asrs r0, 24
	bl sub_81C616C
	lsls r0, 24
	cmp r0, 0
	beq _081C6160
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	b _081C60FA
_081C60C0:
	ldrh r1, [r5, 0x2E]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _081C60D6
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _081C6102
_081C60D6:
	lsls r0, r4, 24
	asrs r1, r0, 24
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _081C6160
	adds r0, r1, 0x1
	lsls r0, 24
	asrs r0, 24
	bl sub_81C616C
	lsls r0, 24
	cmp r0, 0
	beq _081C6160
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
_081C60FA:
	movs r1, 0
	bl sub_8199134
	b _081C6160
_081C6102:
	ldrh r1, [r5, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C6148
	movs r0, 0x5
	bl PlaySE
	ldr r2, =gUnknown_0861F2D8
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	lsls r1, r4, 24
	asrs r1, 24
	ldr r3, =0x00000818
	adds r0, r3
	ldr r0, [r0]
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 3
	adds r2, 0x4
	adds r0, r2
	ldr r1, [r0]
	cmp r1, 0
	beq _081C6160
	adds r0, r6, 0
	bl _call_via_r1
	b _081C6160
	.pool
_081C6148:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C6160
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gUnknown_0861F2D8
	ldr r1, [r0, 0x1C]
	adds r0, r6, 0
	bl _call_via_r1
_081C6160:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C5FE4

	thumb_func_start sub_81C616C
sub_81C616C: @ 81C616C
	push {lr}
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	blt _081C61A0
	ldr r0, =gUnknown_0203CF2C
	ldr r2, [r0]
	movs r3, 0x82
	lsls r3, 4
	adds r0, r2, r3
	ldrb r0, [r0]
	cmp r1, r0
	bgt _081C61A0
	ldr r3, =0x00000818
	adds r0, r2, r3
	ldr r0, [r0]
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x5
	beq _081C61A0
	movs r0, 0x1
	b _081C61A2
	.pool
_081C61A0:
	movs r0, 0
_081C61A2:
	pop {r1}
	bx r1
	thumb_func_end sub_81C616C

	thumb_func_start sub_81C61A8
sub_81C61A8: @ 81C61A8
	push {lr}
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	movs r1, 0x82
	lsls r1, 4
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081C61C8
	movs r0, 0
	bl sub_81C6D6C
	b _081C61DA
	.pool
_081C61C8:
	cmp r0, 0x2
	bne _081C61D4
	movs r0, 0x1
	bl sub_81C6D6C
	b _081C61DA
_081C61D4:
	movs r0, 0x2
	bl sub_81C6D6C
_081C61DA:
	pop {r0}
	bx r0
	thumb_func_end sub_81C61A8

	thumb_func_start sub_81C61E0
sub_81C61E0: @ 81C61E0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r4, =gScriptItemId
	ldrh r0, [r4]
	bl ItemId_GetPocket
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	beq _081C620C
	cmp r0, 0x2
	beq _081C620C
	cmp r0, 0x3
	beq _081C620C
	ldrh r0, [r4]
	bl itemid_is_mail
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C6228
_081C620C:
	bl sub_81C61A8
	ldr r1, =gText_DadsAdvice
	ldr r2, =sub_81C6714
	adds r0, r5, 0
	bl DisplayItemMessageInBattlePyramid
	b _081C6252
	.pool
_081C6228:
	ldrh r0, [r4]
	bl ItemId_GetFieldFunc
	cmp r0, 0
	beq _081C6252
	bl sub_81C61A8
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	ldrh r0, [r4]
	bl ItemId_GetFieldFunc
	adds r1, r0, 0
	adds r0, r5, 0
	bl _call_via_r1
_081C6252:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C61E0

	thumb_func_start sub_81C6258
sub_81C6258: @ 81C6258
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	bl sub_81C61A8
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	bl sub_81C55D8
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	ldrb r0, [r4]
	movs r1, 0
	bl sub_81C5A98
	adds r0, r5, 0
	bl sub_81C629C
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6258

	thumb_func_start sub_81C629C
sub_81C629C: @ 81C629C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_81C5674
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81C5BC8
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C629C

	thumb_func_start sub_81C62C4
sub_81C62C4: @ 81C62C4
	push {r4-r7,lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r6, r0, 3
	ldr r7, =gTasks + 0x8
	adds r4, r6, r7
	bl sub_81C61A8
	movs r0, 0x1
	strh r0, [r4, 0x10]
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	bne _081C62F4
	adds r0, r5, 0
	bl sub_81C6350
	b _081C6334
	.pool
_081C62F4:
	ldr r0, =gScriptItemId
	ldrh r0, [r0]
	ldr r1, =gStringVar1
	bl CopyItemName
	ldr r4, =gStringVar4
	ldr r1, =gText_TossHowManyVar1s
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r1, 0
	str r1, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r1, [sp, 0xC]
	adds r1, r4, 0
	movs r2, 0x3
	movs r3, 0
	bl sub_81C6C3C
	bl sub_81C6404
	adds r0, r7, 0
	subs r0, 0x8
	adds r0, r6, r0
	ldr r1, =sub_81C64B4
	str r1, [r0]
_081C6334:
	add sp, 0x10
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C62C4

	thumb_func_start sub_81C6350
sub_81C6350: @ 81C6350
	push {r4,r5,lr}
	sub sp, 0x10
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	ldr r0, =gScriptItemId
	ldrh r0, [r0]
	ldr r1, =gStringVar1
	bl CopyItemName
	ldr r0, =gStringVar2
	movs r2, 0x10
	ldrsh r1, [r4, r2]
	movs r2, 0
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gText_ConfirmTossItems
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r1, 0
	str r1, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r1, [sp, 0xC]
	adds r1, r4, 0
	movs r2, 0x3
	movs r3, 0
	bl sub_81C6C3C
	ldr r1, =gUnknown_0861F314
	adds r0, r5, 0
	bl sub_81C6DAC
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6350

	thumb_func_start sub_81C63D0
sub_81C63D0: @ 81C63D0
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	bl sub_81C55D8
	ldrb r0, [r4]
	movs r1, 0
	bl sub_81C5A98
	adds r0, r5, 0
	bl sub_81C629C
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C63D0

	thumb_func_start sub_81C6404
sub_81C6404: @ 81C6404
	push {r4,lr}
	sub sp, 0xC
	ldr r0, =gStringVar1
	movs r1, 0x1
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gText_xVar1
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0x3
	bl sub_81C6CEC
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x28
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0x1
	adds r2, r4, 0
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6404

	thumb_func_start sub_81C645C
sub_81C645C: @ 81C645C
	push {r4,lr}
	sub sp, 0xC
	adds r1, r0, 0
	ldr r0, =gStringVar1
	lsls r1, 16
	asrs r1, 16
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gText_xVar1
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x28
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0x1
	adds r2, r4, 0
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C645C

	thumb_func_start sub_81C64B4
sub_81C64B4: @ 81C64B4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	adds r0, r4, 0
	adds r0, 0x10
	ldrh r1, [r4, 0x4]
	bl AdjustQuantityAccordingToDPadInput
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C64E8
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	bl sub_81C645C
	b _081C6544
	.pool
_081C64E8:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C651C
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x3
	movs r1, 0
	bl sub_8198070
	movs r0, 0x3
	bl ClearWindowTilemap
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r5, 0
	bl sub_81C6350
	b _081C6544
	.pool
_081C651C:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C6544
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x3
	movs r1, 0
	bl sub_8198070
	movs r0, 0x3
	bl ClearWindowTilemap
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r6, 0
	bl sub_81C63D0
_081C6544:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C64B4

	thumb_func_start sub_81C654C
sub_81C654C: @ 81C654C
	push {r4-r6,lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r5, =gTasks + 0x8
	adds r6, r4, r5
	ldr r0, =gScriptItemId
	ldrh r0, [r0]
	ldr r1, =gStringVar1
	bl CopyItemName
	ldr r0, =gStringVar2
	movs r2, 0x10
	ldrsh r1, [r6, r2]
	movs r2, 0
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r6, =gStringVar4
	ldr r1, =gText_ThrewAwayVar2Var1s
	adds r0, r6, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r1, 0
	str r1, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r1, [sp, 0xC]
	adds r1, r6, 0
	movs r2, 0x3
	movs r3, 0
	bl sub_81C6C3C
	subs r5, 0x8
	adds r4, r5
	ldr r0, =sub_81C65CC
	str r0, [r4]
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C654C

	thumb_func_start sub_81C65CC
sub_81C65CC: @ 81C65CC
	push {r4-r7,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
	ldr r6, =gUnknown_0203CF38
	subs r7, r6, 0x2
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _081C662E
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gScriptItemId
	ldrh r0, [r0]
	ldrh r1, [r4, 0x10]
	bl RemovePyramidBagItem
	ldrb r0, [r4]
	adds r1, r6, 0
	adds r2, r7, 0
	bl sub_81AE6C8
	bl sub_81C5924
	bl sub_81C59BC
	bl sub_81C5314
	ldr r0, =gUnknown_03006310
	ldrh r1, [r6]
	ldrh r2, [r7]
	bl ListMenuInit
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	adds r0, r5, 0
	bl sub_81C629C
_081C662E:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C65CC

	thumb_func_start sub_81C6648
sub_81C6648: @ 81C6648
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r6, r4, 0
	bl sub_81C61A8
	ldr r5, =gScriptItemId
	ldrh r0, [r5]
	bl itemid_is_mail
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081C667C
	ldr r1, =gText_CantWriteMail
	ldr r2, =sub_81C66EC
	adds r0, r4, 0
	bl DisplayItemMessageInBattlePyramid
	b _081C66A6
	.pool
_081C667C:
	ldrh r0, [r5]
	bl itemid_is_unique
	lsls r0, 24
	cmp r0, 0
	bne _081C66A0
	ldr r0, =gUnknown_0203CF2C
	ldr r1, [r0]
	ldr r0, =sub_81B7F60
	str r0, [r1]
	adds r0, r4, 0
	bl sub_81C5B14
	b _081C66A6
	.pool
_081C66A0:
	adds r0, r6, 0
	bl sub_81C66AC
_081C66A6:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C6648

	thumb_func_start sub_81C66AC
sub_81C66AC: @ 81C66AC
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gScriptItemId
	ldrh r0, [r0]
	ldr r1, =gStringVar1
	bl CopyItemName
	ldr r5, =gStringVar4
	ldr r1, =gText_Var1CantBeHeld
	adds r0, r5, 0
	bl StringExpandPlaceholders
	ldr r2, =sub_81C66EC
	adds r0, r4, 0
	adds r1, r5, 0
	bl DisplayItemMessageInBattlePyramid
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C66AC

	thumb_func_start sub_81C66EC
sub_81C66EC: @ 81C66EC
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C670A
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81C6714
_081C670A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C66EC

	thumb_func_start sub_81C6714
sub_81C6714: @ 81C6714
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	bl sub_81C6E1C
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	bl sub_81C55D8
	ldrb r0, [r4]
	movs r1, 0
	bl sub_81C5A98
	adds r0, r5, 0
	bl sub_81C629C
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6714

	thumb_func_start sub_81C674C
sub_81C674C: @ 81C674C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r6, r4, 0
	ldr r5, =gScriptItemId
	ldrh r0, [r5]
	bl itemid_80BF6D8_mail_related
	lsls r0, 24
	cmp r0, 0
	bne _081C677C
	ldr r1, =gText_CantWriteMail
	ldr r2, =sub_81C66EC
	adds r0, r4, 0
	bl DisplayItemMessageInBattlePyramid
	b _081C6796
	.pool
_081C677C:
	ldrh r0, [r5]
	bl itemid_is_unique
	lsls r0, 24
	cmp r0, 0
	bne _081C6790
	adds r0, r4, 0
	bl sub_81C5B14
	b _081C6796
_081C6790:
	adds r0, r6, 0
	bl sub_81C66AC
_081C6796:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81C674C

	thumb_func_start sub_81C679C
sub_81C679C: @ 81C679C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r4, =gScriptItemId
	ldrh r0, [r4]
	bl ItemId_GetBattleFunc
	cmp r0, 0
	beq _081C67C0
	bl sub_81C61A8
	ldrh r0, [r4]
	bl ItemId_GetBattleFunc
	adds r1, r0, 0
	adds r0, r5, 0
	bl _call_via_r1
_081C67C0:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C679C

	thumb_func_start sub_81C67CC
sub_81C67CC: @ 81C67CC
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	mov r9, r0
	adds r5, r4, r0
	ldr r0, =gUnknown_0203CF30
	ldrh r1, [r0, 0x6]
	ldrh r0, [r0, 0x8]
	adds r1, r0
	strh r1, [r5, 0x2]
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r2, =0x00000814
	adds r0, r2
	movs r2, 0
	mov r8, r2
	strb r1, [r0]
	ldrb r0, [r5]
	movs r1, 0x10
	movs r2, 0x1
	bl sub_81AF15C
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	movs r0, 0x2
	ldrsh r2, [r5, r0]
	lsls r2, 1
	ldr r1, =0x00000ca9
	adds r0, r3, r1
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r2, r0
	ldr r0, =0x00000e2c
	adds r3, r0
	adds r3, r2
	ldrh r0, [r3]
	ldr r1, =gStringVar1
	bl CopyItemName
	ldr r6, =gStringVar4
	ldr r1, =gText_MoveVar1Where
	adds r0, r6, 0
	bl StringExpandPlaceholders
	movs r0, 0x1
	movs r1, 0
	bl FillWindowPixelBuffer
	mov r1, r8
	str r1, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r1, [sp, 0xC]
	adds r1, r6, 0
	movs r2, 0x3
	movs r3, 0
	bl sub_81C6C3C
	ldrb r0, [r5]
	movs r1, 0x1
	bl sub_81C5A98
	ldrb r0, [r5, 0x2]
	bl sub_81C704C
	movs r2, 0x8
	negs r2, r2
	add r9, r2
	add r4, r9
	ldr r0, =sub_81C68B0
	str r0, [r4]
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C67CC

	thumb_func_start sub_81C68B0
sub_81C68B0: @ 81C68B0
	push {r4-r7,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
	bl sub_81221EC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081C695C
	ldr r7, =gMain
	ldrh r1, [r7, 0x2E]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _081C68F8
	movs r0, 0x5
	bl PlaySE
	ldrb r0, [r4]
	ldr r1, =gUnknown_0203CF38
	subs r2, r1, 0x2
	bl get_coro_args_x18_x1A
	b _081C6940
	.pool
_081C68F8:
	ldrb r0, [r4]
	bl ListMenuHandleInput
	adds r6, r0, 0
	ldrb r0, [r4]
	ldr r4, =gUnknown_0203CF38
	subs r2, r4, 0x2
	adds r1, r4, 0
	bl get_coro_args_x18_x1A
	movs r0, 0
	bl sub_81C7028
	subs r4, 0x8
	ldrb r0, [r4, 0x6]
	bl sub_81C704C
	movs r0, 0x2
	negs r0, r0
	cmp r6, r0
	beq _081C6930
	adds r0, 0x1
	cmp r6, r0
	bne _081C6950
	b _081C695C
	.pool
_081C6930:
	movs r0, 0x5
	bl PlaySE
	ldrh r1, [r7, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C6948
_081C6940:
	adds r0, r5, 0
	bl sub_81C6964
	b _081C695C
_081C6948:
	adds r0, r5, 0
	bl sub_81C6A14
	b _081C695C
_081C6950:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81C6964
_081C695C:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C68B0

	thumb_func_start sub_81C6964
sub_81C6964: @ 81C6964
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r5, r0, r1
	ldr r7, =gUnknown_0203CF38
	subs r0, r7, 0x2
	mov r8, r0
	ldrh r0, [r0]
	ldrh r1, [r7]
	adds r0, r1
	lsls r0, 16
	lsrs r4, r0, 16
	movs r3, 0x2
	ldrsh r1, [r5, r3]
	cmp r1, r4
	beq _081C6996
	subs r0, r4, 0x1
	cmp r1, r0
	bne _081C69A8
_081C6996:
	adds r0, r6, 0
	bl sub_81C6A14
	b _081C69FC
	.pool
_081C69A8:
	ldrb r0, [r5, 0x2]
	lsls r1, r4, 24
	lsrs r1, 24
	bl sub_81C57A8
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000814
	adds r0, r1
	movs r1, 0xFF
	strb r1, [r0]
	movs r0, 0x1
	bl sub_81C7028
	ldrb r0, [r5]
	adds r1, r7, 0
	mov r2, r8
	bl sub_81AE6C8
	movs r3, 0x2
	ldrsh r0, [r5, r3]
	cmp r0, r4
	bge _081C69E0
	adds r1, r7, 0
	subs r1, 0x8
	ldrh r0, [r1, 0x6]
	subs r0, 0x1
	strh r0, [r1, 0x6]
_081C69E0:
	bl sub_81C5314
	ldr r0, =gUnknown_03006310
	ldrh r1, [r7]
	mov r3, r8
	ldrh r2, [r3]
	bl ListMenuInit
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5]
	adds r0, r6, 0
	bl sub_81C629C
_081C69FC:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6964

	thumb_func_start sub_81C6A14
sub_81C6A14: @ 81C6A14
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r6, r0, 0
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldr r5, =gUnknown_0203CF38
	subs r7, r5, 0x2
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000814
	adds r0, r1
	movs r1, 0xFF
	strb r1, [r0]
	movs r0, 0x1
	bl sub_81C7028
	ldrb r0, [r4]
	adds r1, r5, 0
	adds r2, r7, 0
	bl sub_81AE6C8
	movs r0, 0x2
	ldrsh r2, [r4, r0]
	ldrh r0, [r5]
	ldrh r1, [r7]
	adds r0, r1
	cmp r2, r0
	bge _081C6A5E
	adds r1, r5, 0
	subs r1, 0x8
	ldrh r0, [r1, 0x6]
	subs r0, 0x1
	strh r0, [r1, 0x6]
_081C6A5E:
	bl sub_81C5314
	ldr r0, =gUnknown_03006310
	ldrh r1, [r5]
	ldrh r2, [r7]
	bl ListMenuInit
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	adds r0, r6, 0
	bl sub_81C629C
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6A14

	thumb_func_start sub_81C6A94
sub_81C6A94: @ 81C6A94
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	ldr r0, =gPlayerParty
	mov r9, r0
	movs r0, 0x14
	bl Alloc
	adds r7, r0, 0
	movs r0, 0xA
	bl Alloc
	adds r5, r0, 0
	ldr r1, =gSaveBlock2Ptr
	mov r8, r1
	ldr r2, [r1]
	ldr r4, =0x00000ca9
	adds r0, r2, r4
	ldrb r0, [r0]
	lsls r0, 30
	lsrs r0, 30
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldr r0, =0x00000e2c
	adds r1, r0
	adds r0, r7, 0
	movs r2, 0x14
	bl memcpy
	mov r1, r8
	ldr r2, [r1]
	adds r0, r2, r4
	ldrb r0, [r0]
	lsls r0, 30
	lsrs r0, 30
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 1
	adds r1, r2
	ldr r0, =0x00000e54
	adds r1, r0
	adds r0, r5, 0
	movs r2, 0xA
	bl memcpy
	movs r6, 0
_081C6AF8:
	movs r0, 0x64
	muls r0, r6
	add r0, r9
	movs r1, 0xC
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	mov r1, sp
	strh r0, [r1]
	cmp r0, 0
	beq _081C6B88
	movs r1, 0x1
	bl AddBagItem
	lsls r0, 24
	cmp r0, 0
	bne _081C6B88
	mov r1, r8
	ldr r2, [r1]
	adds r0, r2, r4
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x00000e2c
	adds r0, r1
	adds r1, r7, 0
	movs r2, 0x14
	bl memcpy
	mov r0, r8
	ldr r2, [r0]
	adds r0, r2, r4
	ldrb r1, [r0]
	lsls r1, 30
	lsrs r1, 30
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	adds r0, r2
	ldr r1, =0x00000e54
	adds r0, r1
	adds r1, r5, 0
	movs r2, 0xA
	bl memcpy
	adds r0, r7, 0
	bl Free
	adds r0, r5, 0
	bl Free
	ldr r1, =gScriptResult
	movs r0, 0x1
	strh r0, [r1]
	b _081C6BC6
	.pool
_081C6B88:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x2
	bls _081C6AF8
	movs r1, 0
	mov r0, sp
	strh r1, [r0]
	movs r6, 0
	movs r4, 0x64
_081C6B9C:
	adds r0, r6, 0
	muls r0, r4
	add r0, r9
	movs r1, 0xC
	mov r2, sp
	bl SetMonData
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x2
	bls _081C6B9C
	ldr r1, =gScriptResult
	movs r0, 0
	strh r0, [r1]
	adds r0, r7, 0
	bl Free
	adds r0, r5, 0
	bl Free
_081C6BC6:
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6A94

	thumb_func_start sub_81C6BD8
sub_81C6BD8: @ 81C6BD8
	push {r4,lr}
	ldr r0, =gUnknown_0861F328
	bl InitWindows
	bl DeactivateAllTextPrinters
	movs r0, 0
	movs r1, 0x1
	movs r2, 0xE0
	bl sub_809882C
	movs r0, 0
	movs r1, 0xA
	movs r2, 0xD0
	bl copy_textbox_border_tile_patterns_to_vram
	ldr r0, =gUnknown_0860F074
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	movs r4, 0
_081C6C04:
	adds r0, r4, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x4
	bls _081C6C04
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6BD8

	thumb_func_start sub_81C6C3C
sub_81C6C3C: @ 81C6C3C
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x14
	ldr r4, [sp, 0x28]
	ldr r6, [sp, 0x2C]
	ldr r5, [sp, 0x30]
	mov r8, r5
	ldr r5, [sp, 0x34]
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r5, 24
	lsrs r5, 24
	str r4, [sp]
	str r6, [sp, 0x4]
	lsls r4, r5, 1
	adds r4, r5
	ldr r5, =gUnknown_0861F31C
	adds r4, r5
	str r4, [sp, 0x8]
	mov r4, r8
	lsls r4, 24
	asrs r4, 24
	str r4, [sp, 0xC]
	str r1, [sp, 0x10]
	movs r1, 0x1
	bl AddTextPrinterParametrized2
	add sp, 0x14
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6C3C

	thumb_func_start sub_81C6C94
sub_81C6C94: @ 81C6C94
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x14
	ldr r4, [sp, 0x28]
	ldr r6, [sp, 0x2C]
	ldr r5, [sp, 0x30]
	mov r8, r5
	ldr r5, [sp, 0x34]
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r5, 24
	lsrs r5, 24
	str r4, [sp]
	str r6, [sp, 0x4]
	lsls r4, r5, 1
	adds r4, r5
	ldr r5, =gUnknown_0861F31C
	adds r4, r5
	str r4, [sp, 0x8]
	mov r4, r8
	lsls r4, 24
	asrs r4, 24
	str r4, [sp, 0xC]
	str r1, [sp, 0x10]
	movs r1, 0x7
	bl AddTextPrinterParametrized2
	add sp, 0x14
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6C94

	thumb_func_start sub_81C6CEC
sub_81C6CEC: @ 81C6CEC
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	movs r2, 0x1
	movs r3, 0xE
	bl SetWindowBorderStyle
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	pop {r0}
	bx r0
	thumb_func_end sub_81C6CEC

	thumb_func_start sub_81C6D08
sub_81C6D08: @ 81C6D08
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203CF2C
	ldr r1, [r1]
	ldr r2, =0x0000080f
	adds r1, r2
	adds r1, r0
	ldrb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81C6D08

	thumb_func_start sub_81C6D24
sub_81C6D24: @ 81C6D24
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =gUnknown_0203CF2C
	ldr r3, =0x0000080f
	adds r1, r2, r3
	ldr r0, [r0]
	adds r4, r0, r1
	ldrb r0, [r4]
	cmp r0, 0xFF
	bne _081C6D58
	lsls r0, r2, 3
	ldr r1, =gUnknown_0861F350
	adds r0, r1
	bl AddWindow
	strb r0, [r4]
	ldrb r0, [r4]
	movs r1, 0
	movs r2, 0x1
	movs r3, 0xE
	bl SetWindowBorderStyle
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
_081C6D58:
	ldrb r0, [r4]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C6D24

	thumb_func_start sub_81C6D6C
sub_81C6D6C: @ 81C6D6C
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203CF2C
	ldr r2, =0x0000080f
	adds r0, r2
	ldr r1, [r1]
	adds r4, r1, r0
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _081C6D9E
	movs r1, 0
	bl sub_8198070
	ldrb r0, [r4]
	bl ClearWindowTilemap
	ldrb r0, [r4]
	bl RemoveWindow
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	movs r0, 0xFF
	strb r0, [r4]
_081C6D9E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6D6C

	thumb_func_start sub_81C6DAC
sub_81C6DAC: @ 81C6DAC
	push {lr}
	sub sp, 0x10
	adds r3, r1, 0
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0861F370
	movs r2, 0x2
	str r2, [sp]
	movs r2, 0x1
	str r2, [sp, 0x4]
	movs r2, 0xE
	str r2, [sp, 0x8]
	str r3, [sp, 0xC]
	movs r2, 0x1
	movs r3, 0
	bl CreateYesNoMenuWithCallbacks
	add sp, 0x10
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6DAC

	thumb_func_start DisplayItemMessageInBattlePyramid
@ void DisplayItemMessageInBattlePyramid(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
DisplayItemMessageInBattlePyramid: @ 81C6DD8
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x2
	movs r1, 0x11
	bl FillWindowPixelBuffer
	bl sav2_get_text_speed
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1
	str r1, [sp]
	str r0, [sp, 0x4]
	str r5, [sp, 0x8]
	str r6, [sp, 0xC]
	adds r0, r4, 0
	movs r1, 0x2
	movs r2, 0xA
	movs r3, 0xD
	bl DisplayMessageAndContinueTask
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end DisplayItemMessageInBattlePyramid

	thumb_func_start sub_81C6E1C
sub_81C6E1C: @ 81C6E1C
	push {lr}
	movs r0, 0x2
	movs r1, 0
	bl sub_8197DF8
	movs r0, 0x2
	bl ClearWindowTilemap
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	pop {r0}
	bx r0
	thumb_func_end sub_81C6E1C

	thumb_func_start sub_81C6E38
sub_81C6E38: @ 81C6E38
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gUnknown_0203CF2C
	ldr r2, =0x00000804
	adds r1, r4, r2
	ldr r0, [r0]
	adds r5, r0, r1
	ldrb r0, [r5]
	cmp r0, 0xFF
	beq _081C6E80
	ldr r0, =0x00001024
	adds r4, r0
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
	ldrb r1, [r5]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r4, =gSprites
	adds r0, r4
	bl FreeSpriteOamMatrix
	ldrb r1, [r5]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	bl DestroySprite
	movs r0, 0xFF
	strb r0, [r5]
_081C6E80:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6E38

	thumb_func_start sub_81C6E98
sub_81C6E98: @ 81C6E98
	push {r4,lr}
	sub sp, 0x8
	movs r0, 0x40
	bl Alloc
	adds r4, r0, 0
	ldr r0, =gUnknown_08D9ADD0
	adds r1, r4, 0
	bl LZDecompressWram
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000ca9
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r4, r0
	str r0, [sp]
	ldr r1, =0xffff0000
	ldr r0, [sp, 0x4]
	ands r0, r1
	ldr r1, =0x00001024
	orrs r0, r1
	str r0, [sp, 0x4]
	mov r0, sp
	bl LoadSpritePalette
	adds r0, r4, 0
	bl Free
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6E98

	thumb_func_start sub_81C6EF4
sub_81C6EF4: @ 81C6EF4
	push {r4,lr}
	ldr r0, =gUnknown_0203CF2C
	ldr r4, [r0]
	ldr r0, =0x00000804
	adds r4, r0
	ldr r0, =gUnknown_0861F3D4
	movs r1, 0x44
	movs r2, 0x38
	movs r3, 0
	bl CreateSprite
	strb r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6EF4

	thumb_func_start sub_81C6F20
sub_81C6F20: @ 81C6F20
	push {r4,lr}
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000804
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r4, r0, r1
	adds r0, r4, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081C6F50
	adds r0, r4, 0
	movs r1, 0x1
	bl StartSpriteAffineAnim
	ldr r0, =sub_81C6F68
	str r0, [r4, 0x1C]
_081C6F50:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6F20

	thumb_func_start sub_81C6F68
sub_81C6F68: @ 81C6F68
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081C6F84
	adds r0, r4, 0
	movs r1, 0
	bl StartSpriteAffineAnim
	ldr r0, =SpriteCallbackDummy
	str r0, [r4, 0x1C]
_081C6F84:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6F68

	thumb_func_start sub_81C6F90
sub_81C6F90: @ 81C6F90
	push {r4-r6,lr}
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 24
	lsrs r4, r1, 24
	ldr r0, =gUnknown_0203CF2C
	ldr r2, =0x00000805
	adds r1, r4, r2
	ldr r0, [r0]
	adds r5, r0, r1
	ldrb r0, [r5]
	cmp r0, 0xFF
	bne _081C6FE0
	ldr r0, =0x00001025
	adds r4, r0
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
	adds r0, r4, 0
	adds r1, r4, 0
	adds r2, r6, 0
	bl AddItemIconObject
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x40
	beq _081C6FE0
	strb r2, [r5]
	ldr r1, =gSprites
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r1
	movs r1, 0x18
	strh r1, [r0, 0x24]
	movs r1, 0x58
	strh r1, [r0, 0x26]
_081C6FE0:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C6F90

	thumb_func_start sub_81C6FF8
sub_81C6FF8: @ 81C6FF8
	push {lr}
	lsls r0, 24
	movs r1, 0x80
	lsls r1, 17
	adds r0, r1
	lsrs r0, 24
	bl sub_81C6E38
	pop {r0}
	bx r0
	thumb_func_end sub_81C6FF8

	thumb_func_start sub_81C700C
sub_81C700C: @ 81C700C
	push {lr}
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000807
	adds r0, r1
	movs r1, 0x8
	bl sub_8122344
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C700C

	thumb_func_start sub_81C7028
sub_81C7028: @ 81C7028
	push {lr}
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000807
	adds r0, r1
	movs r1, 0x8
	bl sub_81223FC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7028

	thumb_func_start sub_81C704C
sub_81C704C: @ 81C704C
	push {lr}
	adds r3, r0, 0
	lsls r3, 24
	ldr r0, =gUnknown_0203CF2C
	ldr r0, [r0]
	ldr r1, =0x00000807
	adds r0, r1
	lsrs r3, 4
	movs r1, 0x80
	lsls r1, 13
	adds r3, r1
	lsrs r3, 16
	movs r1, 0x88
	movs r2, 0x78
	bl sub_8122448
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C704C

	thumb_func_start sub_81C7078
sub_81C7078: @ 81C7078
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	bl is_c1_link_related_active
	cmp r0, 0
	bne _081C7090
	ldr r0, =sub_81C7170
	b _081C7092
	.pool
_081C7090:
	ldr r0, =sub_81C71E4
_081C7092:
	lsls r1, r4, 24
	lsrs r1, 24
	bl CreateTask
	lsls r0, 24
	lsrs r4, r0, 24
	adds r0, r4, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl SetWordTaskArg
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r2, =gUnknown_0203CF3C
	ldrb r1, [r2]
	strh r1, [r0, 0xE]
	ldrb r0, [r2]
	adds r1, r0, 0x1
	strb r1, [r2]
	lsls r0, 24
	lsrs r0, 8
	orrs r0, r4
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C7078

	thumb_func_start sub_81C70D8
sub_81C70D8: @ 81C70D8
	push {lr}
	ldr r1, =0x0000ffff
	ands r1, r0
	lsrs r3, r0, 16
	ldr r2, =gTasks
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r1, r0, r2
	ldrb r0, [r1, 0x4]
	cmp r0, 0
	beq _081C711C
	ldr r2, [r1]
	ldr r0, =sub_81C7170
	cmp r2, r0
	beq _081C70FE
	ldr r0, =sub_81C71E4
	cmp r2, r0
	bne _081C711C
_081C70FE:
	movs r2, 0xE
	ldrsh r0, [r1, r2]
	cmp r0, r3
	bne _081C711C
	movs r0, 0x1
	b _081C711E
	.pool
_081C711C:
	movs r0, 0
_081C711E:
	pop {r1}
	bx r1
	thumb_func_end sub_81C70D8

	thumb_func_start sub_81C7124
sub_81C7124: @ 81C7124
	push {r4-r6,lr}
	adds r6, r0, 0
	movs r5, 0
	ldr r4, =gTasks
_081C712C:
	ldrb r0, [r4, 0x4]
	cmp r0, 0
	beq _081C7160
	ldr r1, [r4]
	ldr r0, =sub_81C7170
	cmp r1, r0
	beq _081C7140
	ldr r0, =sub_81C71E4
	cmp r1, r0
	bne _081C7160
_081C7140:
	lsls r0, r5, 24
	lsrs r0, 24
	movs r1, 0x1
	bl GetWordTaskArg
	cmp r0, r6
	bne _081C7160
	movs r0, 0x1
	b _081C716A
	.pool
_081C7160:
	adds r4, 0x28
	adds r5, 0x1
	cmp r5, 0xF
	ble _081C712C
	movs r0, 0
_081C716A:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81C7124

	thumb_func_start sub_81C7170
sub_81C7170: @ 81C7170
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r5, 0
	movs r1, 0x1
	bl GetWordTaskArg
	adds r6, r0, 0
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	movs r7, 0
_081C718C:
	movs r1, 0
	ldrsh r0, [r4, r1]
	bl _call_via_r6
	cmp r0, 0x4
	bhi _081C71D6
	lsls r0, 2
	ldr r1, =_081C71AC
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C71AC:
	.4byte _081C71C6
	.4byte _081C71C0
	.4byte _081C71DE
	.4byte _081C71DA
	.4byte _081C71CE
_081C71C0:
	ldrh r0, [r4]
	adds r0, 0x1
	b _081C71D8
_081C71C6:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _081C71DE
_081C71CE:
	adds r0, r5, 0
	bl DestroyTask
	b _081C71DE
_081C71D6:
	subs r0, 0x5
_081C71D8:
	strh r0, [r4]
_081C71DA:
	cmp r7, 0
	beq _081C718C
_081C71DE:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7170

	thumb_func_start sub_81C71E4
sub_81C71E4: @ 81C71E4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_8087598
	cmp r0, 0
	bne _081C724A
	adds r0, r5, 0
	movs r1, 0x1
	bl GetWordTaskArg
	adds r2, r0, 0
	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]
	bl _call_via_r2
	cmp r0, 0x4
	bhi _081C7246
	lsls r0, 2
	ldr r1, =_081C7224
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C7224:
	.4byte _081C7238
	.4byte _081C7238
	.4byte _081C724A
	.4byte _081C724A
	.4byte _081C723E
_081C7238:
	ldrh r0, [r4]
	adds r0, 0x1
	b _081C7248
_081C723E:
	adds r0, r5, 0
	bl DestroyTask
	b _081C724A
_081C7246:
	subs r0, 0x5
_081C7248:
	strh r0, [r4]
_081C724A:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C71E4

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