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

	.syntax unified

	.text
    
        
	thumb_func_start sub_81BE66C
sub_81BE66C: @ 81BE66C
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	movs r0, 0xD0
	lsls r0, 5
	cmp r1, r0
	bne _081BE690
	movs r0, 0xA7
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	b _081BE692
	.pool
_081BE690:
	movs r0, 0
_081BE692:
	pop {r1}
	bx r1
	thumb_func_end sub_81BE66C

	thumb_func_start sub_81BE698
sub_81BE698: @ 81BE698
	push {lr}
	ldr r0, =gUnknown_0203CF18
	ldr r0, [r0]
	adds r0, 0x4
	bl sub_8151E50
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE698

	thumb_func_start sub_81BE6AC
sub_81BE6AC: @ 81BE6AC
	ldr r1, =gUnknown_0203CF18
	movs r0, 0
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81BE6AC

	thumb_func_start sub_81BE6B8
sub_81BE6B8: @ 81BE6B8
	push {r4,lr}
	ldr r4, =gUnknown_0203CF18
	ldr r0, [r4]
	cmp r0, 0
	beq _081BE6CC
	movs r0, 0
	str r0, [r4]
	b _081BE718
	.pool
_081BE6CC:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	movs r0, 0xD0
	lsls r0, 5
	cmp r1, r0
	bne _081BE718
	movs r0, 0xA7
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081BE718
	movs r0, 0xC8
	bl AllocZeroed
	str r0, [r4]
	adds r0, 0x4
	bl sub_8151B3C
	ldr r0, [r4]
	adds r0, 0x4
	ldr r1, =gUnknown_08617E18
	bl sub_8151B68
	ldr r0, [r4]
	adds r0, 0x4
	movs r1, 0x1
	movs r2, 0x1
	bl sub_8151CA8
	ldr r0, =sub_81BE698
	movs r1, 0xFF
	bl CreateTask
	ldr r1, [r4]
	strb r0, [r1]
_081BE718:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE6B8

	thumb_func_start sub_81BE72C
sub_81BE72C: @ 81BE72C
	push {r4,lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	movs r0, 0xD0
	lsls r0, 5
	cmp r1, r0
	bne _081BE788
	movs r0, 0xA7
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081BE788
	ldr r4, =gUnknown_0203CF18
	ldr r0, [r4]
	cmp r0, 0
	beq _081BE788
	ldr r0, =sub_81BE698
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	beq _081BE766
	ldr r0, [r4]
	ldrb r0, [r0]
	bl DestroyTask
_081BE766:
	ldr r0, [r4]
	adds r0, 0x4
	movs r1, 0x1
	movs r2, 0x1
	bl sub_8151D28
	ldr r0, [r4]
	adds r0, 0x4
	movs r1, 0x1
	movs r2, 0x1
	bl sub_8151C50
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
_081BE788:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE72C

	thumb_func_start sub_81BE79C
sub_81BE79C: @ 81BE79C
	push {r4,lr}
	ldr r0, =0x000040cb
	bl VarGet
	lsls r0, 16
	cmp r0, 0
	beq _081BE7B8
	movs r0, 0xA7
	lsls r0, 1
	bl FlagReset
	b _081BE7EE
	.pool
_081BE7B8:
	bl Random
	lsls r0, 16
	lsrs r4, r0, 16
	movs r0, 0x1
	ands r4, r0
	movs r0, 0x9D
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081BE7D4
	movs r4, 0x1
_081BE7D4:
	cmp r4, 0
	beq _081BE7E6
	movs r0, 0xA7
	lsls r0, 1
	bl FlagSet
	bl sub_81BE6B8
	b _081BE7EE
_081BE7E6:
	movs r0, 0xA7
	lsls r0, 1
	bl FlagReset
_081BE7EE:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81BE79C

	thumb_func_start sub_81BE7F4
sub_81BE7F4: @ 81BE7F4
	push {lr}
	ldr r0, =sub_81BE808
	movs r1, 0x8
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE7F4

	thumb_func_start sub_81BE808
sub_81BE808: @ 81BE808
	push {r4,r5,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrb r1, [r0, 0x5]
	ldrb r2, [r0, 0x4]
	movs r0, 0x2D
	mov r3, sp
	bl TryGetFieldObjectIdByLocalIdAndMap
	mov r0, sp
	ldrb r0, [r0]
	lsls r2, r0, 3
	adds r2, r0
	lsls r2, 2
	ldr r4, =gMapObjects
	adds r2, r4
	ldr r3, =gSprites
	ldrb r1, [r2, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x26]
	adds r1, 0x4
	strh r1, [r0, 0x26]
	ldr r0, =gUnknown_02037590
	ldrb r0, [r0, 0x5]
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	ldrb r2, [r2, 0x4]
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r3
	movs r4, 0x22
	ldrsh r2, [r0, r4]
	movs r4, 0x26
	ldrsh r0, [r0, r4]
	adds r2, r0
	ldrb r1, [r1, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	movs r3, 0x22
	ldrsh r1, [r0, r3]
	movs r4, 0x26
	ldrsh r0, [r0, r4]
	adds r1, r0
	cmp r2, r1
	blt _081BE882
	adds r0, r5, 0
	bl DestroyTask
	bl EnableBothScriptContexts
_081BE882:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE808

	thumb_func_start sp136_strengh_sound
sp136_strengh_sound: @ 81BE89C
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	mov r8, r0
	adds r4, r1, 0
	adds r5, r2, 0
	adds r6, r3, 0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	ldr r0, =sub_81BE900
	movs r1, 0x9
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r0, 0
	strh r4, [r1, 0x8]
	strh r0, [r1, 0xA]
	strh r5, [r1, 0xC]
	strh r6, [r1, 0xE]
	mov r0, r8
	strh r0, [r1, 0x10]
	movs r0, 0
	bl SetCameraPanningCallback
	movs r0, 0xD6
	bl PlaySE
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sp136_strengh_sound

	thumb_func_start sub_81BE900
sub_81BE900: @ 81BE900
	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
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	movs r2, 0x6
	ldrsh r1, [r4, r2]
	bl __modsi3
	cmp r0, 0
	bne _081BE95C
	strh r0, [r4, 0x2]
	ldrh r0, [r4, 0x4]
	subs r0, 0x1
	strh r0, [r4, 0x4]
	ldrh r0, [r4]
	negs r0, r0
	strh r0, [r4]
	ldrh r0, [r4, 0x8]
	negs r0, r0
	strh r0, [r4, 0x8]
	movs r1, 0
	ldrsh r0, [r4, r1]
	movs r2, 0x8
	ldrsh r1, [r4, r2]
	bl SetCameraPanning
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081BE95C
	bl sub_81BE968
	adds r0, r5, 0
	bl DestroyTask
	bl InstallCameraPanAheadCallback
_081BE95C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE900

	thumb_func_start sub_81BE968
sub_81BE968: @ 81BE968
	push {lr}
	ldr r0, =sub_81BE9C0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	beq _081BE988
	ldr r0, =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_081BE988:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE968

	thumb_func_start sub_81BE994
sub_81BE994: @ 81BE994
	push {lr}
	ldr r0, =gUnknown_08617D94
	bl LoadSpriteSheets
	bl sub_81BEA20
	ldr r0, =sub_81BE9C0
	movs r1, 0x8
	bl CreateTask
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0x10
	movs r3, 0x3
	bl sp136_strengh_sound
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE994

	thumb_func_start sub_81BE9C0
sub_81BE9C0: @ 81BE9C0
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r3, r1, 3
	ldr r4, =gTasks + 0x8
	adds r2, r3, r4
	ldrh r0, [r2, 0x2]
	adds r0, 0x1
	strh r0, [r2, 0x2]
	lsls r0, 16
	movs r1, 0xFA
	lsls r1, 18
	cmp r0, r1
	beq _081BE9E6
	ldrh r0, [r2]
	cmp r0, 0x11
	bne _081BE9F0
_081BE9E6:
	adds r0, r4, 0
	subs r0, 0x8
	adds r0, r3, r0
	ldr r1, =sub_81BEA00
	str r1, [r0]
_081BE9F0:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BE9C0

	thumb_func_start sub_81BEA00
sub_81BEA00: @ 81BEA00
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0xFA
	lsls r0, 4
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl DestroyTask
	bl EnableBothScriptContexts
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81BEA00

	thumb_func_start sub_81BEA20
sub_81BEA20: @ 81BEA20
	push {r4-r7,lr}
	movs r4, 0
	ldr r5, =gUnknown_08617D64
	adds r7, r5, 0x2
	ldr r6, =gSprites
_081BEA2A:
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 1
	adds r1, r0, r5
	ldrh r1, [r1]
	adds r1, 0x78
	lsls r1, 16
	asrs r1, 16
	adds r0, r7
	movs r3, 0
	ldrsh r2, [r0, r3]
	ldr r0, =gUnknown_08617E60
	movs r3, 0x8
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	ldrb r2, [r0, 0x5]
	movs r3, 0xD
	negs r3, r3
	adds r1, r3, 0
	ands r2, r1
	movs r1, 0xF
	ands r2, r1
	strb r2, [r0, 0x5]
	strh r4, [r0, 0x2E]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x7
	bls _081BEA2A
	movs r4, 0
	ldr r5, =gUnknown_08617D64
	adds r7, r5, 0x2
	ldr r6, =gSprites
_081BEA78:
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 1
	adds r1, r0, r5
	ldrh r1, [r1]
	adds r1, 0x73
	lsls r1, 16
	asrs r1, 16
	adds r0, r7
	ldrh r2, [r0]
	subs r2, 0x3
	lsls r2, 16
	asrs r2, 16
	ldr r0, =gUnknown_08617E34
	movs r3, 0x8
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	ldrb r2, [r0, 0x5]
	movs r3, 0xD
	negs r3, r3
	adds r1, r3, 0
	ands r2, r1
	movs r1, 0xF
	ands r2, r1
	strb r2, [r0, 0x5]
	strh r4, [r0, 0x2E]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x7
	bls _081BEA78
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEA20

	thumb_func_start sub_81BEAD8
sub_81BEAD8: @ 81BEAD8
	push {r4,lr}
	adds r4, r0, 0
	ldrh r0, [r4, 0x30]
	adds r0, 0x2
	strh r0, [r4, 0x30]
	movs r1, 0x30
	ldrsh r0, [r4, r1]
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	strh r0, [r4, 0x26]
	movs r0, 0x22
	ldrsh r3, [r4, r0]
	movs r1, 0x26
	ldrsh r0, [r4, r1]
	adds r3, r0
	ldr r2, =gUnknown_08617D64
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 1
	adds r2, 0x4
	adds r0, r2
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r3, r0
	ble _081BEB1A
	adds r0, r4, 0
	bl DestroySprite
	bl sub_81BE968
_081BEB1A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEAD8

	thumb_func_start sub_81BEB24
sub_81BEB24: @ 81BEB24
	push {r4,r5,lr}
	movs r4, 0
	ldr r5, =gUnknown_08617DA4
_081BEB2A:
	lsls r2, r4, 2
	adds r2, r5
	ldrb r0, [r2]
	adds r0, 0x7
	ldrb r1, [r2, 0x1]
	adds r1, 0x7
	ldrh r2, [r2, 0x2]
	bl MapGridSetMetatileIdAt
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x11
	bls _081BEB2A
	bl DrawWholeMapView
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEB24

	thumb_func_start sub_81BEB54
sub_81BEB54: @ 81BEB54
	push {lr}
	ldr r0, =sub_81BED50
	movs r1, 0x9
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEB54

	thumb_func_start sub_81BEB68
sub_81BEB68: @ 81BEB68
	push {lr}
	ldr r0, =sub_81BEBF4
	movs r1, 0x9
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEB68

	thumb_func_start sub_81BEB7C
sub_81BEB7C: @ 81BEB7C
	push {lr}
	ldr r0, =sub_81BF028
	movs r1, 0x9
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEB7C

	thumb_func_start sub_81BEB90
sub_81BEB90: @ 81BEB90
	push {r4,lr}
	ldr r4, =gUnknown_0203CF14
	ldr r0, [r4]
	ldrh r1, [r0]
	movs r0, 0x10
	bl SetGpuReg
	ldr r0, [r4]
	ldrh r1, [r0, 0x2]
	movs r0, 0x12
	bl SetGpuReg
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEB90

	thumb_func_start sub_81BEBB4
sub_81BEBB4: @ 81BEBB4
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r2, r1, r2
	ldrh r1, [r2, 0x8]
	movs r3, 0x8
	ldrsh r0, [r2, r3]
	cmp r0, 0
	bne _081BEBEC
	ldr r0, =gUnknown_0203CF14
	ldr r1, [r0]
	ldrh r0, [r1]
	negs r0, r0
	strh r0, [r1]
	movs r0, 0x2
	strh r0, [r2, 0x8]
	bl sub_81BEB90
	b _081BEBF0
	.pool
_081BEBEC:
	subs r0, r1, 0x1
	strh r0, [r2, 0x8]
_081BEBF0:
	pop {r0}
	bx r0
	thumb_func_end sub_81BEBB4

	thumb_func_start sub_81BEBF4
sub_81BEBF4: @ 81BEBF4
	push {r4,r5,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0x8
	ldrsh r0, [r0, r1]
	cmp r0, 0x6
	bls _081BEC10
	b _081BED40
_081BEC10:
	lsls r0, 2
	ldr r1, =_081BEC24
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081BEC24:
	.4byte _081BEC40
	.4byte _081BEC50
	.4byte _081BEC88
	.4byte _081BECB0
	.4byte _081BECF8
	.4byte _081BED00
	.4byte _081BED1C
_081BEC40:
	bl FreeAllWindowBuffers
	movs r0, 0
	movs r1, 0x7
	movs r2, 0x2
	bl SetBgAttribute
	b _081BED04
_081BEC50:
	ldr r4, =gUnknown_0203CF04
	movs r0, 0x92
	lsls r0, 4
	bl AllocZeroed
	str r0, [r4]
	ldr r4, =gUnknown_0203CF08
	movs r0, 0x80
	lsls r0, 4
	bl AllocZeroed
	str r0, [r4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	b _081BECD8
	.pool
_081BEC88:
	ldr r0, =gUnknown_08617274
	ldr r4, =gUnknown_0203CF04
	ldr r1, [r4]
	movs r2, 0x92
	lsls r2, 3
	bl CpuSet
	ldr r1, [r4]
	movs r2, 0x92
	lsls r2, 4
	movs r0, 0
	movs r3, 0
	bl LoadBgTiles
	b _081BECD8
	.pool
_081BECB0:
	ldr r0, =gUnknown_0203CF08
	ldr r1, [r0]
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, =gUnknown_08617B94
	movs r0, 0x6
	str r0, [sp]
	movs r0, 0xC
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	movs r0, 0
	movs r2, 0xC
	movs r3, 0x1D
	bl CopyToBgTilemapBufferRect_ChangePalette
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_081BECD8:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldrh r1, [r0, 0x8]
	adds r1, 0x1
	strh r1, [r0, 0x8]
	b _081BED40
	.pool
_081BECF8:
	movs r0, 0
	bl ShowBg
	b _081BED04
_081BED00:
	bl sub_81BEB24
_081BED04:
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _081BED40
	.pool
_081BED1C:
	ldr r4, =gUnknown_0203CF14
	movs r0, 0x4
	bl Alloc
	str r0, [r4]
	movs r2, 0
	movs r1, 0x2
	strh r1, [r0]
	strh r2, [r0, 0x2]
	ldr r0, =sub_81BEBB4
	movs r1, 0xA
	bl CreateTask
	adds r0, r5, 0
	bl DestroyTask
	bl EnableBothScriptContexts
_081BED40:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BEBF4

	thumb_func_start sub_81BED50
sub_81BED50: @ 81BED50
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	ldr r1, =gTasks
	lsls r0, 2
	add r0, r10
	lsls r0, 3
	adds r0, r1
	ldrh r0, [r0, 0x8]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	adds r6, r1, 0
	cmp r0, 0x7
	bls _081BED7C
	b _081BF002
_081BED7C:
	lsls r0, 2
	ldr r1, =_081BED90
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081BED90:
	.4byte _081BEDB0
	.4byte _081BF002
	.4byte _081BEDC4
	.4byte _081BEF64
	.4byte _081BEF94
	.4byte _081BEFD0
	.4byte _081BEFF0
	.4byte _081BEFF8
_081BEDB0:
	ldr r4, =gUnknown_0203CF10
	movs r0, 0xC0
	lsls r0, 2
	bl AllocZeroed
	str r0, [r4]
	b _081BF002
	.pool
_081BEDC4:
	mov r1, r10
	lsls r0, r1, 2
	adds r1, r0, r1
	lsls r1, 3
	adds r2, r1, r6
	ldrh r3, [r2, 0xE]
	movs r4, 0xE
	ldrsh r1, [r2, r4]
	str r0, [sp, 0x8]
	cmp r1, 0x5F
	bgt _081BEE8A
	movs r1, 0xA
	ldrsh r0, [r2, r1]
	cmp r0, 0x1
	ble _081BEE7C
	lsls r0, r3, 24
	lsrs r4, r0, 24
	movs r0, 0x30
	bl Alloc
	ldr r3, =gUnknown_0203CF10
	ldr r1, [r3]
	lsls r2, r4, 3
	adds r1, r2, r1
	str r0, [r1]
	movs r5, 0
	adds r4, r2, 0
_081BEDFA:
	ldr r0, [r3]
	adds r0, r4, r0
	ldr r0, [r0]
	adds r0, r5
	strb r5, [r0]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x2F
	bls _081BEDFA
	movs r5, 0
	ldr r7, =gUnknown_0203CF10
	adds r6, r2, 0
_081BEE14:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x30
	bl __umodsi3
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x30
	bl __umodsi3
	lsls r0, 16
	lsrs r0, 16
	ldr r1, [r7]
	adds r1, r6, r1
	ldr r1, [r1]
	adds r0, r1, r0
	ldrb r2, [r0]
	adds r1, r4
	ldrb r1, [r1]
	strb r1, [r0]
	ldr r0, [r7]
	adds r0, r6, r0
	ldr r0, [r0]
	adds r0, r4
	strb r2, [r0]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x2F
	bls _081BEE14
	ldr r0, =gTasks
	ldr r1, [sp, 0x8]
	add r1, r10
	lsls r1, 3
	adds r2, r1, r0
	ldrh r3, [r2, 0xE]
	movs r4, 0xE
	ldrsh r1, [r2, r4]
	adds r6, r0, 0
	cmp r1, 0x5F
	bgt _081BEE78
	adds r0, r3, 0x1
	strh r0, [r2, 0xE]
_081BEE78:
	movs r0, 0
	strh r0, [r2, 0xA]
_081BEE7C:
	ldr r1, [sp, 0x8]
	add r1, r10
	lsls r1, 3
	adds r1, r6
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
_081BEE8A:
	ldr r0, [sp, 0x8]
	add r0, r10
	lsls r0, 3
	adds r0, r6
	ldrb r4, [r0, 0xE]
	ldrb r5, [r0, 0xC]
	lsls r0, r4, 16
	cmp r5, r4
	bcs _081BEF32
	str r0, [sp, 0xC]
_081BEE9E:
	movs r6, 0
	adds r0, r5, 0x1
	str r0, [sp, 0x4]
	lsls r4, r5, 3
	movs r2, 0x5F
	subs r1, r2, r5
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 4
	mov r9, r0
_081BEEB2:
	ldr r0, =gUnknown_0203CF04
	ldr r0, [r0]
	ldr r7, =gUnknown_0203CF10
	ldr r3, [r7]
	adds r3, r4, r3
	ldrb r2, [r3, 0x4]
	adds r1, r2, 0x1
	strb r1, [r3, 0x4]
	lsls r2, 24
	lsrs r2, 24
	ldr r1, [r3]
	adds r1, r2
	ldrb r1, [r1]
	add r1, r9
	lsls r1, 16
	lsrs r1, 16
	movs r2, 0x1
	mov r8, r2
	str r2, [sp]
	movs r2, 0
	movs r3, 0x30
	bl sub_81BF2B8
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0
	beq _081BEEB2
	ldr r0, [r7]
	adds r1, r4, r0
	ldrb r0, [r1, 0x4]
	cmp r0, 0x2F
	bls _081BEF24
	ldr r0, [r1]
	bl Free
	ldr r0, [r7]
	adds r0, r4, r0
	movs r1, 0
	str r1, [r0]
	ldr r1, [sp, 0x8]
	add r1, r10
	lsls r1, 3
	ldr r4, =gTasks
	adds r1, r4
	ldrh r0, [r1, 0xC]
	adds r0, 0x1
	strh r0, [r1, 0xC]
	mov r0, r8
	ands r5, r0
	cmp r5, 0x1
	bne _081BEF24
	ldr r0, =gUnknown_0203CF14
	ldr r1, [r0]
	ldrh r0, [r1, 0x2]
	subs r0, 0x1
	strh r0, [r1, 0x2]
_081BEF24:
	ldr r1, [sp, 0x4]
	lsls r0, r1, 16
	lsrs r5, r0, 16
	ldr r2, [sp, 0xC]
	lsrs r0, r2, 16
	cmp r5, r0
	bcc _081BEE9E
_081BEF32:
	ldr r0, =gUnknown_0203CF04
	ldr r1, [r0]
	movs r2, 0x92
	lsls r2, 4
	movs r0, 0
	movs r3, 0
	bl LoadBgTiles
	ldr r0, =gUnknown_0203CF10
	ldr r0, [r0]
	movs r4, 0xBE
	lsls r4, 2
	adds r0, r4
	ldrb r0, [r0, 0x4]
	cmp r0, 0x2F
	bhi _081BF002
	b _081BF014
	.pool
_081BEF64:
	movs r0, 0
	bl UnsetBgTilemapBuffer
	ldr r0, =sub_81BEBB4
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _081BEF7C
	bl DestroyTask
_081BEF7C:
	ldr r0, =gUnknown_0203CF14
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1]
	strh r0, [r1, 0x2]
	bl sub_81BEB90
	b _081BF002
	.pool
_081BEF94:
	ldr r4, =gUnknown_0203CF14
	ldr r0, [r4]
	bl Free
	movs r5, 0
	str r5, [r4]
	ldr r4, =gUnknown_0203CF10
	ldr r0, [r4]
	bl Free
	str r5, [r4]
	ldr r4, =gUnknown_0203CF04
	ldr r0, [r4]
	bl Free
	str r5, [r4]
	ldr r4, =gUnknown_0203CF08
	ldr r0, [r4]
	bl Free
	str r5, [r4]
	b _081BF002
	.pool
_081BEFD0:
	movs r0, 0xC
	movs r1, 0x2
	bl SetGpuRegBits
	movs r0, 0x8
	movs r1, 0
	bl SetGpuRegBits
	movs r0, 0
	movs r1, 0x7
	movs r2, 0
	bl SetBgAttribute
	bl sub_81971D0
	b _081BF002
_081BEFF0:
	movs r0, 0
	bl ShowBg
	b _081BF002
_081BEFF8:
	mov r0, r10
	bl DestroyTask
	bl EnableBothScriptContexts
_081BF002:
	ldr r0, =gTasks
	mov r2, r10
	lsls r1, r2, 2
	add r1, r10
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_081BF014:
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BED50

	thumb_func_start sub_81BF028
sub_81BF028: @ 81BF028
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x18
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldrh r0, [r0, 0x8]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	bls _081BF04C
	b _081BF228
_081BF04C:
	lsls r0, 2
	ldr r1, =_081BF060
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081BF060:
	.4byte _081BF080
	.4byte _081BF0B4
	.4byte _081BF0DC
	.4byte _081BF0F0
	.4byte _081BF148
	.4byte _081BF170
	.4byte _081BF1CC
	.4byte _081BF224
_081BF080:
	ldr r4, =gUnknown_0203CF0C
	movs r0, 0x14
	bl AllocZeroed
	str r0, [r4]
	movs r0, 0x80
	bl AllocZeroed
	ldr r1, [r4]
	str r0, [r1]
	movs r0, 0x8
	bl AllocZeroed
	ldr r1, [r4]
	str r0, [r1, 0x4]
	movs r0, 0x80
	lsls r0, 2
	bl AllocZeroed
	ldr r1, [r4]
	str r0, [r1, 0xC]
	movs r0, 0
	strh r0, [r1, 0x10]
	b _081BF228
	.pool
_081BF0B4:
	ldr r0, =gUnknown_0203CF0C
	ldr r0, [r0]
	ldr r1, [r0]
	movs r5, 0
	ldr r2, =gUnknown_08617C44
_081BF0BE:
	adds r0, r5, r2
	ldrb r0, [r0]
	strb r0, [r1]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	adds r1, 0x1
	cmp r5, 0x7F
	bls _081BF0BE
	b _081BF228
	.pool
_081BF0DC:
	ldr r0, =gUnknown_0203CF0C
	ldr r0, [r0]
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [r1]
	movs r0, 0x80
	strh r0, [r1, 0x4]
	b _081BF228
	.pool
_081BF0F0:
	mov r1, sp
	ldr r0, =gUnknown_08617E00
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldr r4, =gUnknown_0203CF0C
	ldr r0, [r4]
	ldr r0, [r0, 0x4]
	str r0, [sp, 0xC]
	movs r2, 0x10
	negs r2, r2
	mov r0, sp
	movs r1, 0x80
	movs r3, 0x1
	bl CreateSprite
	ldr r1, [r4]
	movs r3, 0
	strb r0, [r1, 0x8]
	ldr r2, =gSprites
	ldr r0, [r4]
	ldrb r1, [r0, 0x8]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x28
	strb r3, [r0]
	ldr r3, [r4]
	ldrb r1, [r3, 0x8]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	strh r1, [r0, 0x2E]
	ldrb r1, [r3, 0x8]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0x1
	strh r1, [r0, 0x30]
_081BF148:
	movs r5, 0
	ldr r2, =gUnknown_0203CF0C
_081BF14C:
	ldr r0, [r2]
	ldr r1, [r0, 0xC]
	lsls r0, r5, 1
	adds r0, r1
	strh r5, [r0]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0xFF
	bls _081BF14C
	b _081BF228
	.pool
_081BF170:
	movs r5, 0
	movs r6, 0xFF
	ldr r0, =0x000001ff
	mov r8, r0
_081BF178:
	bl Random
	adds r4, r6, 0
	ands r4, r0
	bl Random
	adds r1, r6, 0
	ands r1, r0
	ldr r0, =gUnknown_0203CF0C
	ldr r3, [r0]
	ldr r0, [r3, 0xC]
	lsls r1, 1
	adds r1, r0
	ldrh r2, [r1]
	lsls r4, 1
	adds r4, r0
	ldrh r0, [r4]
	strh r0, [r1]
	strh r2, [r4]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r8
	bls _081BF178
	ldr r2, =gSprites
	ldrb r1, [r3, 0x8]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, =sub_81BF248
	str r1, [r0]
	b _081BF228
	.pool
_081BF1CC:
	ldr r3, =gSprites
	ldr r5, =gUnknown_0203CF0C
	ldr r0, [r5]
	ldrb r1, [r0, 0x8]
	lsls r0, r1, 4
	adds r0, r1
	lsls r2, r0, 2
	adds r0, r3, 0
	adds r0, 0x1C
	adds r0, r2, r0
	ldr r1, [r0]
	ldr r0, =SpriteCallbackDummy
	cmp r1, r0
	bne _081BF238
	adds r0, r2, r3
	bl DestroySprite
	ldr r0, [r5]
	ldr r0, [r0, 0xC]
	bl Free
	ldr r0, [r5]
	movs r4, 0
	str r4, [r0, 0xC]
	ldr r0, [r0, 0x4]
	bl Free
	ldr r0, [r5]
	str r4, [r0, 0x4]
	ldr r0, [r0]
	bl Free
	ldr r0, [r5]
	str r4, [r0]
	bl Free
	str r4, [r5]
	b _081BF228
	.pool
_081BF224:
	bl EnableBothScriptContexts
_081BF228:
	ldr r0, =gTasks
	lsls r1, r7, 2
	adds r1, r7
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_081BF238:
	add sp, 0x18
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BF028

	thumb_func_start sub_81BF248
sub_81BF248: @ 81BF248
	push {r4,r5,lr}
	sub sp, 0x4
	adds r5, r0, 0
	ldr r0, =gUnknown_0203CF0C
	ldr r0, [r0]
	ldrh r0, [r0, 0x10]
	cmp r0, 0xFF
	bls _081BF268
	ldr r0, =SpriteCallbackDummy
	str r0, [r5, 0x1C]
	b _081BF2B0
	.pool
_081BF268:
	ldrh r1, [r5, 0x22]
	movs r2, 0x22
	ldrsh r0, [r5, r2]
	cmp r0, 0x5F
	ble _081BF2AC
	movs r4, 0
_081BF274:
	ldr r0, =gUnknown_0203CF0C
	ldr r3, [r0]
	ldr r0, [r3]
	ldrh r1, [r3, 0x10]
	adds r2, r1, 0x1
	strh r2, [r3, 0x10]
	lsls r1, 16
	ldr r2, [r3, 0xC]
	lsrs r1, 15
	adds r1, r2
	ldrh r1, [r1]
	movs r2, 0
	str r2, [sp]
	movs r3, 0x10
	bl sub_81BF2B8
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x1
	bls _081BF274
	adds r0, r5, 0
	movs r1, 0
	bl StartSpriteAnim
	b _081BF2B0
	.pool
_081BF2AC:
	adds r0, r1, 0x1
	strh r0, [r5, 0x22]
_081BF2B0:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81BF248

	thumb_func_start sub_81BF2B8
sub_81BF2B8: @ 81BF2B8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	str r0, [sp]
	mov r10, r1
	adds r6, r2, 0
	mov r8, r3
	ldr r0, [sp, 0x28]
	mov r9, r0
	lsls r1, 16
	lsrs r1, 16
	mov r10, r1
	lsls r6, 24
	lsrs r6, 24
	mov r0, r8
	lsls r0, 24
	mov r8, r0
	lsrs r7, r0, 24
	mov r1, r9
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	mov r0, r10
	adds r1, r7, 0
	bl __divsi3
	adds r5, r0, 0
	lsls r5, 24
	lsrs r4, r5, 24
	ldr r3, =gUnknown_030012A8
	strh r4, [r3]
	mov r0, r10
	adds r1, r7, 0
	str r3, [sp, 0x4]
	bl __modsi3
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r3, [sp, 0x4]
	strh r2, [r3, 0x2]
	movs r1, 0x7
	ands r4, r1
	ands r2, r1
	strh r4, [r3, 0x4]
	strh r2, [r3, 0x6]
	lsrs r0, 27
	lsrs r5, 27
	strh r0, [r3, 0x8]
	strh r5, [r3, 0xA]
	mov r1, r8
	lsrs r1, 27
	lsls r1, 6
	mov r8, r1
	mov r1, r8
	muls r1, r5
	lsls r0, 6
	adds r1, r0
	lsls r1, 16
	lsrs r1, 16
	strh r1, [r3, 0xC]
	lsls r4, 3
	adds r4, r2
	adds r1, r4
	lsls r4, r1, 16
	lsrs r4, 17
	strh r1, [r3, 0xE]
	movs r1, 0x1
	mov r0, r10
	ands r1, r0
	movs r2, 0x1
	eors r1, r2
	lsls r0, r1, 2
	lsls r6, r0
	eors r1, r2
	lsls r1, 2
	movs r0, 0xF
	lsls r0, r1
	orrs r6, r0
	lsls r6, 24
	lsrs r6, 24
	mov r1, r9
	lsls r1, 5
	mov r9, r1
	add r9, r4
	ldr r1, [sp]
	add r1, r9
	ldrb r0, [r1]
	ands r6, r0
	strb r6, [r1]
	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_81BF2B8

	thumb_func_start sub_81BF384
sub_81BF384: @ 81BF384
	push {r4,lr}
	ldr r0, =0x0000ffff
	bl DisableInterrupts
	movs r0, 0x1
	bl EnableInterrupts
	bl m4aSoundVSyncOff
	movs r0, 0
	bl SetVBlankCallback
	bl ResetSpriteData
	bl ResetTasks
	bl remove_some_task
	movs r0, 0
	movs r1, 0
	bl SetGpuReg
	ldr r4, =gUnknown_030012B8
	movs r0, 0x50
	bl AllocZeroed
	str r0, [r4]
	movs r1, 0
	strb r1, [r0]
	ldr r1, [r4]
	movs r0, 0x6
	strb r0, [r1, 0x1]
	ldr r0, =sub_81BF3DC
	bl SetMainCallback2
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BF384

	thumb_func_start sub_81BF3DC
sub_81BF3DC: @ 81BF3DC
	push {r4,r5,lr}
	sub sp, 0x4
	ldr r1, =gUnknown_030012B8
	ldr r0, [r1]
	ldrb r0, [r0]
	adds r5, r1, 0
	cmp r0, 0x7
	bls _081BF3EE
	b _081BF592
_081BF3EE:
	lsls r0, 2
	ldr r1, =_081BF400
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081BF400:
	.4byte _081BF420
	.4byte _081BF430
	.4byte _081BF45C
	.4byte _081BF488
	.4byte _081BF4BC
	.4byte _081BF514
	.4byte _081BF552
	.4byte _081BF574
_081BF420:
	bl sub_81BF5A4
	ldr r0, =gUnknown_030012B8
	ldr r1, [r0]
	movs r0, 0x1
	b _081BF590
	.pool
_081BF430:
	movs r0, 0x5
	bl sub_81BF7A4
	cmp r0, 0x5
	beq _081BF43C
	b _081BF592
_081BF43C:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _081BF44A
	b _081BF592
_081BF44A:
	ldr r0, =gUnknown_030012B8
	ldr r1, [r0]
	movs r0, 0x2
	b _081BF590
	.pool
_081BF45C:
	movs r0, 0
	bl sub_81BF7A4
	cmp r0, 0
	beq _081BF468
	b _081BF592
_081BF468:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _081BF476
	b _081BF592
_081BF476:
	ldr r0, =gUnknown_030012B8
	ldr r1, [r0]
	movs r0, 0x3
	b _081BF590
	.pool
_081BF488:
	movs r0, 0x1
	bl sub_81BF7A4
	cmp r0, 0x1
	beq _081BF494
	b _081BF592
_081BF494:
	ldr r4, =gUnknown_030012B8
	ldr r0, [r4]
	ldr r1, =gUnknown_089A6550
	str r1, [r0, 0x2C]
	adds r0, 0x4F
	movs r5, 0
	strb r5, [r0]
	ldr r0, [r4]
	adds r0, 0x4
	bl MultiBootInit
	ldr r1, [r4]
	strh r5, [r1, 0x2]
	movs r0, 0x4
	b _081BF590
	.pool
_081BF4BC:
	adds r4, r5, 0
	ldr r0, [r4]
	adds r0, 0x4
	bl MultiBootMain
	ldr r4, [r4]
	ldrb r0, [r4, 0x1C]
	cmp r0, 0
	bne _081BF4D8
	ldr r0, [r4, 0x20]
	ldr r1, =0x00020200
	ands r0, r1
	cmp r0, r1
	beq _081BF4E4
_081BF4D8:
	movs r0, 0
	strh r0, [r4, 0x2]
	b _081BF592
	.pool
_081BF4E4:
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0xB4
	bls _081BF592
	adds r0, r4, 0x4
	ldr r1, =gMultiBootProgram_BerryGlitchFix_Start
	ldr r2, =gMultiBootProgram_BerryGlitchFix_End
	subs r2, r1
	movs r3, 0x1
	str r3, [sp]
	movs r3, 0x4
	bl MultiBootStartMaster
	ldr r1, [r5]
	movs r0, 0x5
	b _081BF590
	.pool
_081BF514:
	movs r0, 0x2
	bl sub_81BF7A4
	adds r4, r0, 0
	cmp r4, 0x2
	bne _081BF592
	ldr r5, =gUnknown_030012B8
	ldr r0, [r5]
	adds r0, 0x4
	bl MultiBootMain
	ldr r0, [r5]
	adds r0, 0x4
	bl MultiBootCheckComplete
	cmp r0, 0
	beq _081BF540
	ldr r1, [r5]
	movs r0, 0x6
	b _081BF590
	.pool
_081BF540:
	ldr r1, [r5]
	adds r0, r1, 0
	adds r0, 0x22
	ldrb r0, [r0]
	ands r4, r0
	cmp r4, 0
	bne _081BF592
	movs r0, 0x7
	b _081BF590
_081BF552:
	movs r0, 0x3
	bl sub_81BF7A4
	cmp r0, 0x3
	bne _081BF592
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081BF592
	bl DoSoftReset
	b _081BF592
	.pool
_081BF574:
	movs r0, 0x4
	bl sub_81BF7A4
	cmp r0, 0x4
	bne _081BF592
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081BF592
	ldr r0, =gUnknown_030012B8
	ldr r1, [r0]
	movs r0, 0x1
_081BF590:
	strb r0, [r1]
_081BF592:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BF3DC

	thumb_func_start sub_81BF5A4
sub_81BF5A4: @ 81BF5A4
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x10
	movs r0, 0x8
	movs r1, 0
	bl SetGpuReg
	movs r0, 0xA
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x10
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x14
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x16
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r1, 0
	str r1, [sp, 0xC]
	ldr r4, =0x040000d4
	add r0, sp, 0xC
	str r0, [r4]
	movs r0, 0xC0
	lsls r0, 19
	str r0, [r4, 0x4]
	ldr r0, =0x85006000
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	str r1, [sp, 0xC]
	add r0, sp, 0xC
	str r0, [r4]
	movs r0, 0xE0
	lsls r0, 19
	str r0, [r4, 0x4]
	ldr r2, =0x85000100
	str r2, [r4, 0x8]
	ldr r0, [r4, 0x8]
	str r1, [sp, 0xC]
	add r0, sp, 0xC
	str r0, [r4]
	movs r0, 0xA0
	lsls r0, 19
	str r0, [r4, 0x4]
	str r2, [r4, 0x8]
	ldr r0, [r4, 0x8]
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_08618108
	movs r0, 0
	movs r2, 0x2
	bl InitBgsFromTemplates
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldr r0, =gUnknown_08618110
	bl InitWindows
	bl DeactivateAllTextPrinters
	ldr r0, =gUnknown_08618138
	str r0, [r4]
	ldr r0, =0x050001e0
	str r0, [r4, 0x4]
	ldr r0, =0x84000008
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	movs r0, 0
	movs r1, 0x40
	bl SetGpuReg
	movs r0, 0x2
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0x3
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_08617E9B
	movs r0, 0
	adds r1, r5, 0
	movs r2, 0
	bl GetStringWidth
	adds r1, r0, 0
	movs r4, 0x78
	subs r0, r4, r1
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r6, =gUnknown_0861815B
	str r6, [sp]
	movs r0, 0x1
	negs r0, r0
	mov r8, r0
	str r0, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0
	movs r3, 0x3
	bl box_print
	ldr r5, =gUnknown_08617E8D
	movs r0, 0
	adds r1, r5, 0
	movs r2, 0
	bl GetStringWidth
	adds r1, r0, 0
	subs r4, r1
	lsrs r0, r4, 31
	adds r4, r0
	asrs r4, 1
	adds r0, r4, 0
	adds r0, 0x78
	lsls r2, r0, 24
	lsrs r2, 24
	str r6, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0
	movs r3, 0x3
	bl box_print
	movs r0, 0
	adds r1, r5, 0
	movs r2, 0
	bl GetStringWidth
	adds r1, r0, 0
	movs r0, 0x70
	subs r0, r1
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	lsls r2, r0, 24
	lsrs r2, 24
	str r6, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x3
	movs r1, 0
	movs r3, 0
	bl box_print
	ldr r4, =gUnknown_08617E78
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0
	bl GetStringWidth
	adds r1, r0, 0
	movs r0, 0xD0
	subs r0, r1
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r0, =gUnknown_08618158
	str r0, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0x2
	bl box_print
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0x3
	movs r1, 0x2
	bl CopyWindowToVram
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BF5A4

	thumb_func_start sub_81BF7A4
sub_81BF7A4: @ 81BF7A4
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r5, =gUnknown_030012B8
	ldr r0, [r5]
	ldrb r0, [r0, 0x1]
	cmp r0, r4
	bne _081BF7BC
	adds r0, r4, 0
	b _081BF7DC
	.pool
_081BF7BC:
	cmp r0, 0x6
	bne _081BF7CC
	adds r0, r4, 0
	bl sub_81BF7E8
	ldr r0, [r5]
	strb r4, [r0, 0x1]
	b _081BF7D6
_081BF7CC:
	bl sub_81BF8D8
	ldr r1, [r5]
	movs r0, 0x6
	strb r0, [r1, 0x1]
_081BF7D6:
	ldr r0, =gUnknown_030012B8
	ldr r0, [r0]
	ldrb r0, [r0, 0x1]
_081BF7DC:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81BF7A4

	thumb_func_start sub_81BF7E8
sub_81BF7E8: @ 81BF7E8
	push {r4-r6,lr}
	sub sp, 0xC
	adds r6, r0, 0
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0x1
	movs r1, 0xAA
	bl FillWindowPixelBuffer
	ldr r0, =gUnknown_08618158
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	ldr r0, =gUnknown_08618160
	lsls r4, r6, 2
	adds r0, r4, r0
	ldr r0, [r0]
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl box_print
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
	cmp r6, 0x5
	bhi _081BF87E
	ldr r0, =_081BF850
	adds r0, r4, r0
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081BF850:
	.4byte _081BF868
	.4byte _081BF870
	.4byte _081BF868
	.4byte _081BF868
	.4byte _081BF868
	.4byte _081BF878
_081BF868:
	movs r0, 0x2
	bl PutWindowTilemap
	b _081BF87E
_081BF870:
	movs r0, 0x3
	bl PutWindowTilemap
	b _081BF87E
_081BF878:
	movs r0, 0
	bl PutWindowTilemap
_081BF87E:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r5, =gUnknown_08618178
	lsls r4, r6, 1
	adds r4, r6
	lsls r4, 2
	adds r0, r4, r5
	ldr r0, [r0]
	ldr r1, =0x06004000
	bl LZ77UnCompVram
	adds r0, r5, 0x4
	adds r0, r4, r0
	ldr r0, [r0]
	ldr r1, =0x0600f800
	bl LZ77UnCompVram
	adds r5, 0x8
	adds r4, r5
	ldr r0, [r4]
	movs r1, 0xA0
	lsls r1, 19
	ldr r2, =0x04000040
	bl CpuSet
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81BF7E8

	thumb_func_start sub_81BF8D8
sub_81BF8D8: @ 81BF8D8
	push {lr}
	movs r0, 0
	bl HideBg
	movs r0, 0x1
	bl HideBg
	pop {r0}
	bx r0
	thumb_func_end sub_81BF8D8

	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

	thumb_func_start CB2_PokeNav
CB2_PokeNav: @ 81C7250
	push {r4,lr}
	ldr r4, =gUnknown_0203CF40
	movs r0, 0x5C
	bl Alloc
	str r0, [r4]
	cmp r0, 0
	bne _081C7270
	ldr r0, =sub_8086194
	bl SetMainCallback2
	b _081C7292
	.pool
_081C7270:
	bl sub_81C7360
	bl ResetTasks
	movs r0, 0
	bl SetVBlankCallback
	ldr r0, =sub_81C742C
	movs r1, 0
	bl CreateTask
	ldr r0, =sub_81C7400
	bl SetMainCallback2
	ldr r0, =sub_81C7418
	bl SetVBlankCallback
_081C7292:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end CB2_PokeNav

	thumb_func_start sub_81C72A4
sub_81C72A4: @ 81C72A4
	push {lr}
	ldr r0, =sub_81C72BC
	bl SetMainCallback2
	movs r0, 0x1
	movs r1, 0
	bl fade_screen
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C72A4

	thumb_func_start sub_81C72BC
sub_81C72BC: @ 81C72BC
	push {r4,lr}
	bl UpdatePaletteFade
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081C7320
	ldr r4, =gUnknown_0203CF40
	movs r0, 0x5C
	bl Alloc
	str r0, [r4]
	cmp r0, 0
	bne _081C72F0
	ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
	bl SetMainCallback2
	b _081C7320
	.pool
_081C72F0:
	bl sub_81C7360
	ldr r1, [r4]
	movs r0, 0x1
	strh r0, [r1, 0x8]
	bl ResetTasks
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	movs r0, 0
	bl SetVBlankCallback
	ldr r0, =sub_81C742C
	movs r1, 0
	bl CreateTask
	ldr r0, =sub_81C7400
	bl SetMainCallback2
	ldr r0, =sub_81C7418
	bl SetVBlankCallback
_081C7320:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C72BC

	thumb_func_start sub_81C7334
sub_81C7334: @ 81C7334
	push {r4,lr}
	movs r4, 0
_081C7338:
	adds r0, r4, 0
	bl sub_81C7650
	adds r4, 0x1
	cmp r4, 0x12
	ble _081C7338
	ldr r4, =gUnknown_0203CF40
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
	bl InitKeys
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7334

	thumb_func_start sub_81C7360
sub_81C7360: @ 81C7360
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r2, 0
	movs r1, 0x12
	adds r0, 0x58
_081C736A:
	str r2, [r0]
	subs r0, 0x4
	subs r1, 0x1
	cmp r1, 0
	bge _081C736A
	movs r4, 0
	strh r4, [r5, 0x8]
	str r4, [r5, 0x4]
	bl sub_81C7388
	str r0, [r5, 0xC]
	str r4, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7360

	thumb_func_start sub_81C7388
sub_81C7388: @ 81C7388
	push {r4-r6,lr}
	movs r5, 0
_081C738C:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x5
	bl GetMonData
	cmp r0, 0
	beq _081C73BA
	adds r0, r4, 0
	movs r1, 0x6
	bl GetMonData
	cmp r0, 0
	bne _081C73BA
	adds r0, r4, 0
	movs r1, 0x52
	bl GetMonData
	cmp r0, 0
	bne _081C73E2
_081C73BA:
	adds r5, 0x1
	cmp r5, 0x5
	ble _081C738C
	movs r4, 0
_081C73C2:
	movs r5, 0
	lsls r6, r4, 24
_081C73C6:
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_80D2270
	cmp r0, 0
	beq _081C73EC
	lsls r1, r5, 24
	lsrs r1, 24
	lsrs r0, r6, 24
	movs r2, 0x52
	bl GetBoxMonDataFromAnyBox
	cmp r0, 0
	beq _081C73EC
_081C73E2:
	movs r0, 0x1
	b _081C73FA
	.pool
_081C73EC:
	adds r5, 0x1
	cmp r5, 0x1D
	ble _081C73C6
	adds r4, 0x1
	cmp r4, 0xD
	ble _081C73C2
	movs r0, 0
_081C73FA:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81C7388

	thumb_func_start sub_81C7400
sub_81C7400: @ 81C7400
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_81C7400

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

	thumb_func_start sub_81C742C
sub_81C742C: @ 81C742C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r7, r1, r0
	movs r1, 0
	ldrsh r0, [r7, r1]
	cmp r0, 0x5
	bls _081C7446
	b _081C7562
_081C7446:
	lsls r0, 2
	ldr r1, =_081C7458
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C7458:
	.4byte _081C7470
	.4byte _081C747A
	.4byte _081C7490
	.4byte _081C749C
	.4byte _081C751E
	.4byte _081C752C
_081C7470:
	bl sub_81C76C4
	movs r0, 0x1
	strh r0, [r7]
	b _081C7562
_081C747A:
	bl sub_81C76FC
	cmp r0, 0
	bne _081C7562
	ldr r0, =0x000186a0
	bl sub_81C756C
	b _081C74E8
	.pool
_081C7490:
	bl sub_81C786C
	cmp r0, 0
	bne _081C7562
	movs r0, 0x3
	strh r0, [r7]
_081C749C:
	bl sub_81C75E0
	adds r6, r0, 0
	movs r0, 0x1
	negs r0, r0
	cmp r6, r0
	beq _081C74FC
	ldr r0, =0x0001869f
	cmp r6, r0
	bls _081C7506
	ldr r4, =gUnknown_0861F3EC
	ldr r5, =gUnknown_0203CF40
	ldr r0, [r5]
	ldr r1, [r0, 0x4]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r1, r4, 0
	adds r1, 0x18
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	ldr r0, [r5]
	ldr r1, [r0, 0x4]
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 2
	adds r4, 0x14
	adds r0, r4
	ldr r0, [r0]
	bl _call_via_r0
	adds r0, r6, 0
	bl sub_81C756C
	cmp r0, 0
	beq _081C74FC
_081C74E8:
	movs r0, 0x4
	strh r0, [r7]
	b _081C7562
	.pool
_081C74FC:
	bl sub_81C7710
	movs r0, 0x5
	strh r0, [r7]
	b _081C7562
_081C7506:
	cmp r6, 0
	beq _081C7562
	adds r0, r6, 0
	bl sub_81C7850
	bl sub_81C786C
	cmp r0, 0
	beq _081C7562
	movs r0, 0x2
	strh r0, [r7]
	b _081C7562
_081C751E:
	bl sub_81C75D4
	cmp r0, 0
	bne _081C7562
	movs r0, 0x3
	strh r0, [r7]
	b _081C7562
_081C752C:
	bl sub_81C7738
	cmp r0, 0
	bne _081C7562
	ldr r0, =gUnknown_0203CF40
	ldr r0, [r0]
	ldrh r0, [r0, 0x8]
	negs r4, r0
	orrs r4, r0
	lsrs r4, 31
	bl sub_81C9430
	bl sub_81C7334
	cmp r4, 0
	beq _081C755C
	ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
	bl SetMainCallback2
	b _081C7562
	.pool
_081C755C:
	ldr r0, =sub_8086194
	bl SetMainCallback2
_081C7562:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C742C

	thumb_func_start sub_81C756C
sub_81C756C: @ 81C756C
	push {r4-r6,lr}
	ldr r1, =0xfffe7960
	adds r6, r0, r1
	bl sub_81C75F4
	ldr r5, =gUnknown_0861F3EC
	lsls r0, r6, 3
	subs r0, r6
	lsls r4, r0, 2
	adds r0, r4, r5
	ldr r0, [r0]
	bl _call_via_r0
	cmp r0, 0
	beq _081C75CC
	adds r0, r5, 0
	adds r0, 0x8
	adds r0, r4, r0
	ldr r0, [r0]
	bl _call_via_r0
	cmp r0, 0
	beq _081C75CC
	adds r0, r5, 0
	adds r0, 0xC
	adds r0, r4, r0
	ldr r0, [r0]
	adds r1, r5, 0
	adds r1, 0x10
	adds r1, r4, r1
	ldr r1, [r1]
	bl sub_81C7834
	ldr r0, =gUnknown_0203CF40
	ldr r1, [r0]
	adds r0, r5, 0x4
	adds r0, r4, r0
	ldr r0, [r0]
	str r0, [r1]
	str r6, [r1, 0x4]
	movs r0, 0x1
	b _081C75CE
	.pool
_081C75CC:
	movs r0, 0
_081C75CE:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81C756C

	thumb_func_start sub_81C75D4
sub_81C75D4: @ 81C75D4
	push {lr}
	bl sub_81C786C
	pop {r1}
	bx r1
	thumb_func_end sub_81C75D4

	thumb_func_start sub_81C75E0
sub_81C75E0: @ 81C75E0
	push {lr}
	ldr r0, =gUnknown_0203CF40
	ldr r0, [r0]
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C75E0

	thumb_func_start sub_81C75F4
sub_81C75F4: @ 81C75F4
	push {lr}
	bl InitKeys
	pop {r0}
	bx r0
	thumb_func_end sub_81C75F4

	thumb_func_start c3args_set_0toR1_1to0
c3args_set_0toR1_1to0: @ 81C7600
	push {lr}
	bl SetVBlankCallback
	pop {r0}
	bx r0
	thumb_func_end c3args_set_0toR1_1to0

	thumb_func_start sub_81C760C
sub_81C760C: @ 81C760C
	push {lr}
	ldr r0, =sub_81C7418
	bl SetVBlankCallback
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C760C

	thumb_func_start sub_81C761C
sub_81C761C: @ 81C761C
	push {r4,lr}
	adds r4, r0, 0
	adds r0, r1, 0
	bl Alloc
	ldr r1, =gUnknown_0203CF40
	ldr r1, [r1]
	lsls r4, 2
	adds r1, 0x10
	adds r1, r4
	str r0, [r1]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C761C

	thumb_func_start sub_81C763C
sub_81C763C: @ 81C763C
	ldr r1, =gUnknown_0203CF40
	ldr r1, [r1]
	lsls r0, 2
	adds r1, 0x10
	adds r1, r0
	ldr r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81C763C

	thumb_func_start sub_81C7650
sub_81C7650: @ 81C7650
	push {r4,r5,lr}
	ldr r5, =gUnknown_0203CF40
	ldr r1, [r5]
	lsls r4, r0, 2
	adds r1, 0x10
	adds r1, r4
	ldr r0, [r1]
	cmp r0, 0
	beq _081C7670
	bl Free
	ldr r0, [r5]
	adds r0, 0x10
	adds r0, r4
	movs r1, 0
	str r1, [r0]
_081C7670:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7650

	thumb_func_start sub_81C767C
sub_81C767C: @ 81C767C
	ldr r0, =gUnknown_0203CF40
	ldr r0, [r0]
	ldrh r0, [r0, 0x8]
	bx lr
	.pool
	thumb_func_end sub_81C767C

	thumb_func_start sub_81C7688
sub_81C7688: @ 81C7688
	ldr r1, =gUnknown_0203CF40
	ldr r1, [r1]
	strh r0, [r1, 0x8]
	bx lr
	.pool
	thumb_func_end sub_81C7688

	thumb_func_start sub_81C7694
sub_81C7694: @ 81C7694
	push {lr}
	adds r1, r0, 0
	cmp r1, 0x4
	bls _081C769E
	movs r1, 0
_081C769E:
	ldr r0, =gUnknown_0203CF40
	ldr r0, [r0]
	strh r1, [r0, 0xA]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7694

	thumb_func_start sub_81C76AC
sub_81C76AC: @ 81C76AC
	ldr r0, =gUnknown_0203CF40
	ldr r0, [r0]
	ldrh r0, [r0, 0xA]
	bx lr
	.pool
	thumb_func_end sub_81C76AC

	thumb_func_start sub_81C76B8
sub_81C76B8: @ 81C76B8
	ldr r0, =gUnknown_0203CF40
	ldr r0, [r0]
	ldr r0, [r0, 0xC]
	bx lr
	.pool
	thumb_func_end sub_81C76B8

	thumb_func_start sub_81C76C4
sub_81C76C4: @ 81C76C4
	push {r4,lr}
	ldr r1, =0x0000082c
	movs r0, 0
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081C76F4
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	ldr r0, =sub_81C7764
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0xC]
	movs r0, 0x1
	b _081C76F6
	.pool
_081C76F4:
	movs r0, 0
_081C76F6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C76C4

	thumb_func_start sub_81C76FC
sub_81C76FC: @ 81C76FC
	push {lr}
	movs r0, 0
	bl sub_81C763C
	ldr r0, [r0, 0xC]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81C76FC

	thumb_func_start sub_81C7710
sub_81C7710: @ 81C7710
	push {lr}
	sub sp, 0x4
	movs r0, 0x6F
	bl PlaySE
	bl sub_81CAADC
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	str r0, [sp]
	adds r0, r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	add sp, 0x4
	pop {r0}
	bx r0
	thumb_func_end sub_81C7710

	thumb_func_start sub_81C7738
sub_81C7738: @ 81C7738
	push {lr}
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081C7750
	movs r0, 0x1
	b _081C775E
	.pool
_081C7750:
	bl sub_81C99D4
	bl sub_81C7C94
	bl FreeAllWindowBuffers
	movs r0, 0
_081C775E:
	pop {r1}
	bx r1
	thumb_func_end sub_81C7738

	thumb_func_start sub_81C7764
sub_81C7764: @ 81C7764
	push {r4,lr}
	sub sp, 0x4
	cmp r0, 0x1
	beq _081C77B0
	cmp r0, 0x1
	bgt _081C7776
	cmp r0, 0
	beq _081C7780
	b _081C782A
_081C7776:
	cmp r0, 0x2
	beq _081C77FC
	cmp r0, 0x3
	beq _081C780E
	b _081C782A
_081C7780:
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	bl FreeAllWindowBuffers
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0861FA04
	movs r0, 0
	movs r2, 0x1
	bl InitBgsFromTemplates
	bl sub_8199D98
	bl reset_temp_tile_data_buffers
	movs r0, 0x1
	b _081C782C
	.pool
_081C77B0:
	movs r0, 0
	bl sub_81C763C
	adds r4, r0, 0
	ldr r1, =gUnknown_08DC7B80
	movs r0, 0
	str r0, [sp]
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	adds r4, 0x2C
	movs r0, 0
	adds r1, r4, 0
	bl SetBgTilemapBuffer
	ldr r1, =gUnknown_08DC7D84
	movs r0, 0
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r0, =gUnknown_08DC7B60
	movs r1, 0
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	b _081C782C
	.pool
_081C77FC:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081C7818
	bl sub_81C7B74
	movs r0, 0
	b _081C782C
_081C780E:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081C781C
_081C7818:
	movs r0, 0x2
	b _081C782C
_081C781C:
	bl sub_81C7C28
	bl sub_81C7D28
	movs r0, 0
	bl ShowBg
_081C782A:
	movs r0, 0x4
_081C782C:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C7764

	thumb_func_start sub_81C7834
sub_81C7834: @ 81C7834
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	movs r0, 0
	bl sub_81C763C
	str r4, [r0]
	str r5, [r0, 0x4]
	movs r1, 0
	str r1, [r0, 0x8]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7834

	thumb_func_start sub_81C7850
sub_81C7850: @ 81C7850
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0
	bl sub_81C763C
	movs r1, 0
	str r1, [r0, 0x8]
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7850

	thumb_func_start sub_81C786C
sub_81C786C: @ 81C786C
	push {lr}
	movs r0, 0
	bl sub_81C763C
	ldr r0, [r0, 0x4]
	bl _call_via_r0
	pop {r1}
	bx r1
	thumb_func_end sub_81C786C

	thumb_func_start sub_81C7880
sub_81C7880: @ 81C7880
	push {r4,lr}
	movs r0, 0
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =atk47_cmd47
	movs r1, 0x4
	bl sub_81C7078
	str r0, [r4, 0xC]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7880

	thumb_func_start sub_81C78A0
sub_81C78A0: @ 81C78A0
	push {r4,lr}
	movs r0, 0
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =sub_81C791C
	movs r1, 0x4
	bl sub_81C7078
	str r0, [r4, 0xC]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C78A0

	thumb_func_start sub_81C78C0
sub_81C78C0: @ 81C78C0
	push {lr}
	movs r0, 0
	bl sub_81C763C
	ldr r0, [r0, 0xC]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81C78C0

	thumb_func_start atk47_cmd47
atk47_cmd47: @ 81C78D4
	push {lr}
	cmp r0, 0x1
	beq _081C78EA
	cmp r0, 0x1
	bgt _081C78E4
	cmp r0, 0
	beq _081C78EA
	b _081C7914
_081C78E4:
	cmp r0, 0x2
	beq _081C78EE
	b _081C7914
_081C78EA:
	movs r0, 0
	b _081C7916
_081C78EE:
	movs r1, 0xC0
	lsls r1, 1
	movs r0, 0
	movs r2, 0x1
	bl ChangeBgY
	ldr r1, =0x00001fff
	cmp r0, r1
	bhi _081C7908
	movs r0, 0x2
	b _081C7916
	.pool
_081C7908:
	movs r1, 0x80
	lsls r1, 6
	movs r0, 0
	movs r2, 0
	bl ChangeBgY
_081C7914:
	movs r0, 0x4
_081C7916:
	pop {r1}
	bx r1
	thumb_func_end atk47_cmd47

	thumb_func_start sub_81C791C
sub_81C791C: @ 81C791C
	push {lr}
	movs r1, 0xC0
	lsls r1, 1
	movs r0, 0
	movs r2, 0x2
	bl ChangeBgY
	cmp r0, 0
	ble _081C7932
	movs r0, 0x2
	b _081C793E
_081C7932:
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x4
_081C793E:
	pop {r1}
	bx r1
	thumb_func_end sub_81C791C

	thumb_func_start sub_81C7944
sub_81C7944: @ 81C7944
	push {lr}
	lsls r1, 1
	ldr r3, =gPlttBufferUnfaded
	adds r1, r3
	lsls r2, 10
	lsrs r2, 11
	bl CpuSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7944

	thumb_func_start sub_81C795C
sub_81C795C: @ 81C795C
	push {r4,lr}
	adds r4, r0, 0
	b _081C7974
_081C7962:
	lsls r0, r1, 4
	movs r2, 0x80
	lsls r2, 1
	adds r1, r0, r2
	ldr r0, [r4]
	movs r2, 0x20
	bl sub_81C7944
	adds r4, 0x8
_081C7974:
	ldr r0, [r4]
	cmp r0, 0
	beq _081C7988
	ldrh r0, [r4, 0x4]
	bl AllocSpritePalette
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0xFF
	bne _081C7962
_081C7988:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C795C

	thumb_func_start sub_81C7990
sub_81C7990: @ 81C7990
	push {lr}
	sub sp, 0x4
	adds r3, r0, 0
	lsls r1, 16
	lsrs r1, 16
	mov r0, sp
	strh r1, [r0]
	lsls r3, 5
	ldr r0, =gPlttBufferFaded + 0x200
	adds r3, r0
	ldr r2, =0x01000010
	mov r0, sp
	adds r1, r3, 0
	bl CpuSet
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7990

	thumb_func_start sub_81C79BC
sub_81C79BC: @ 81C79BC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	str r0, [sp]
	str r1, [sp, 0x4]
	mov r10, r2
	str r3, [sp, 0x8]
	ldr r0, [sp, 0x2C]
	cmp r0, 0
	bne _081C79E4
	ldr r2, =0x001fffff
	mov r1, r10
	ands r2, r1
	ldr r0, [sp]
	b _081C79F4
	.pool
_081C79E4:
	ldr r2, [sp, 0x2C]
	ldr r0, [sp, 0x8]
	cmp r2, r0
	blt _081C7A00
	ldr r2, =0x001fffff
	mov r1, r10
	ands r2, r1
	ldr r0, [sp, 0x4]
_081C79F4:
	ldr r1, [sp, 0x30]
	bl CpuSet
	b _081C7AAE
	.pool
_081C7A00:
	movs r2, 0x1
	negs r2, r2
	add r10, r2
	b _081C7AA6
_081C7A08:
	ldr r1, [sp]
	ldrh r0, [r1]
	movs r2, 0x1F
	mov r9, r2
	mov r1, r9
	ands r1, r0
	mov r9, r1
	lsls r0, 16
	lsrs r2, r0, 21
	movs r1, 0x1F
	ands r1, r2
	mov r8, r1
	lsrs r7, r0, 26
	movs r2, 0x1F
	ands r7, r2
	ldr r0, [sp, 0x4]
	ldrh r4, [r0]
	movs r0, 0x1F
	ands r0, r4
	mov r1, r9
	subs r0, r1
	lsls r0, 8
	ldr r1, [sp, 0x8]
	bl __divsi3
	ldr r2, [sp, 0x2C]
	adds r6, r0, 0
	muls r6, r2
	asrs r6, 8
	lsls r4, 16
	lsrs r0, r4, 21
	movs r1, 0x1F
	ands r0, r1
	mov r2, r8
	subs r0, r2
	lsls r0, 8
	ldr r1, [sp, 0x8]
	bl __divsi3
	ldr r1, [sp, 0x2C]
	adds r5, r0, 0
	muls r5, r1
	asrs r5, 8
	lsrs r4, 26
	movs r2, 0x1F
	ands r4, r2
	subs r4, r7
	lsls r4, 8
	adds r0, r4, 0
	ldr r1, [sp, 0x8]
	bl __divsi3
	ldr r1, [sp, 0x2C]
	muls r0, r1
	asrs r0, 8
	add r6, r9
	movs r2, 0x1F
	ands r6, r2
	add r5, r8
	ands r5, r2
	adds r0, r7, r0
	ands r0, r2
	lsls r0, 10
	lsls r5, 5
	orrs r0, r5
	orrs r0, r6
	ldr r1, [sp, 0x30]
	strh r0, [r1]
	ldr r2, [sp]
	adds r2, 0x2
	str r2, [sp]
	ldr r0, [sp, 0x4]
	adds r0, 0x2
	str r0, [sp, 0x4]
	adds r1, 0x2
	str r1, [sp, 0x30]
	movs r1, 0x1
	negs r1, r1
	add r10, r1
_081C7AA6:
	movs r0, 0x1
	negs r0, r0
	cmp r10, r0
	bne _081C7A08
_081C7AAE:
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C79BC

	thumb_func_start sub_81C7AC0
sub_81C7AC0: @ 81C7AC0
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r0, 0
	bl sub_81C763C
	cmp r4, 0x1
	beq _081C7AF0
	cmp r4, 0x1
	bgt _081C7ADA
	cmp r4, 0
	beq _081C7AE4
	b _081C7B2C
_081C7ADA:
	cmp r4, 0x2
	beq _081C7B04
	cmp r4, 0x3
	beq _081C7B18
	b _081C7B2C
_081C7AE4:
	ldr r0, [r0, 0x14]
	movs r1, 0x2
	negs r1, r1
	str r4, [sp]
	movs r2, 0
	b _081C7B10
_081C7AF0:
	ldr r0, [r0, 0x14]
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	b _081C7B2C
_081C7B04:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
_081C7B10:
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _081C7B2C
_081C7B18:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
_081C7B2C:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7AC0

	thumb_func_start sub_81C7B34
sub_81C7B34: @ 81C7B34
	ldr r0, =gPaletteFade
	ldrb r0, [r0, 0x7]
	lsrs r0, 7
	bx lr
	.pool
	thumb_func_end sub_81C7B34

	thumb_func_start sub_81C7B40
sub_81C7B40: @ 81C7B40
	push {lr}
	ldr r0, =0xfffefffe
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7B40

	thumb_func_start sub_81C7B54
sub_81C7B54: @ 81C7B54
	push {r4,r5,lr}
	adds r5, r0, 0
	cmp r1, 0
	ble _081C7B6C
	adds r4, r1, 0
_081C7B5E:
	adds r0, r5, 0
	adds r5, 0x4
	bl InitBgFromTemplate
	subs r4, 0x1
	cmp r4, 0
	bne _081C7B5E
_081C7B6C:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7B54

	thumb_func_start sub_81C7B74
sub_81C7B74: @ 81C7B74
	push {r4,lr}
	movs r0, 0
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =gUnknown_0861FA08
	bl InitWindows
	movs r0, 0
	str r0, [r4, 0x10]
	bl sub_81C7BF8
	ldrb r0, [r4, 0x10]
	bl PutWindowTilemap
	ldrb r0, [r4, 0x10]
	movs r1, 0x3
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7B74

	thumb_func_start sub_81C7BA4
sub_81C7BA4: @ 81C7BA4
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, [r5, 0x10]
	bl sub_81C7BF8
	ldrb r0, [r5, 0x10]
	ldr r1, =gUnknown_0861FA48
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	ldr r1, =gUnknown_0861FA18
	lsls r4, 2
	adds r4, r1
	ldr r1, [r4]
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7BA4

	thumb_func_start sub_81C7BE8
sub_81C7BE8: @ 81C7BE8
	push {lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81C7BE8

	thumb_func_start sub_81C7BF8
sub_81C7BF8: @ 81C7BF8
	push {r4,lr}
	sub sp, 0x8
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0x44
	bl FillWindowPixelBuffer
	movs r0, 0x80
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	adds r0, r4, 0
	movs r1, 0x55
	movs r2, 0
	movs r3, 0
	bl FillWindowPixelRect
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7BF8

	thumb_func_start sub_81C7C28
sub_81C7C28: @ 81C7C28
	push {r4-r6,lr}
	movs r0, 0
	bl sub_81C763C
	adds r6, r0, 0
	movs r5, 0
	ldr r4, =gUnknown_0861FA4C
_081C7C36:
	adds r0, r4, 0
	bl LoadCompressedObjectPic
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0
	beq _081C7C36
	ldr r0, =gUnknown_0861FA54
	bl sub_81C795C
	movs r0, 0
	bl IndexOfSpritePaletteTag
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x80
	lsls r1, 9
	lsls r1, r0
	movs r0, 0x2
	negs r0, r0
	bics r0, r1
	str r0, [r6, 0x14]
	ldr r0, =gUnknown_0861FB04
	movs r1, 0xDC
	movs r2, 0xC
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r6, 0x18]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7C28

	thumb_func_start sub_81C7C94
sub_81C7C94: @ 81C7C94
	push {lr}
	movs r0, 0
	bl sub_81C763C
	ldr r0, [r0, 0x18]
	bl DestroySprite
	movs r0, 0
	bl FreeSpriteTilesByTag
	movs r0, 0
	bl FreeSpritePaletteByTag
	pop {r0}
	bx r0
	thumb_func_end sub_81C7C94

	thumb_func_start sub_81C7CB4
sub_81C7CB4: @ 81C7CB4
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0
	bl GetBgY
	lsrs r0, 8
	negs r0, r0
	strh r0, [r4, 0x26]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7CB4

	thumb_func_start sub_81C7CCC
sub_81C7CCC: @ 81C7CCC
	push {lr}
	movs r0, 0
	bl sub_81C763C
	ldr r0, [r0, 0x18]
	ldr r1, =SpriteCallbackDummy
	str r1, [r0, 0x1C]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C7CCC

	thumb_func_start sub_81C7CE4
sub_81C7CE4: @ 81C7CE4
	push {r4,lr}
	movs r0, 0
	bl sub_81C763C
	ldr r2, [r0, 0x18]
	movs r4, 0
	movs r1, 0xDC
	strh r1, [r2, 0x20]
	ldr r2, [r0, 0x18]
	movs r1, 0xC
	strh r1, [r2, 0x22]
	ldr r2, [r0, 0x18]
	ldr r1, =sub_81C7CB4
	str r1, [r2, 0x1C]
	adds r2, 0x3E
	ldrb r3, [r2]
	movs r1, 0x5
	negs r1, r1
	ands r1, r3
	strb r1, [r2]
	ldr r3, [r0, 0x18]
	ldrb r2, [r3, 0x5]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	strb r1, [r3, 0x5]
	ldr r0, [r0, 0x18]
	adds r0, 0x43
	strb r4, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7CE4

	thumb_func_start sub_81C7D28
sub_81C7D28: @ 81C7D28
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r0, 0
	bl sub_81C763C
	adds r6, r0, 0
	ldr r0, =gUnknown_0861FA64
	bl LoadCompressedObjectPic
	movs r0, 0x1
	bl AllocSpritePalette
	movs r0, 0x2
	bl AllocSpritePalette
	movs r5, 0
	ldr r0, =gSprites
	mov r8, r0
	movs r7, 0x4
_081C7D50:
	ldr r0, =gUnknown_0861FB2C
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r4, r5, 2
	adds r2, r6, 0
	adds r2, 0x1C
	adds r2, r4
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	str r0, [r2]
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r7
	strb r1, [r0]
	ldr r1, [r2]
	lsls r0, r5, 6
	strh r0, [r1, 0x24]
	ldr r0, =gUnknown_0861FB44
	movs r1, 0
	movs r2, 0
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	adds r2, r6, 0
	adds r2, 0x24
	adds r2, r4
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	str r0, [r2]
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r7
	strb r1, [r0]
	ldr r1, [r2]
	lsls r0, r5, 5
	strh r0, [r1, 0x24]
	ldr r1, [r2]
	movs r0, 0x12
	strh r0, [r1, 0x26]
	ldr r3, [r2]
	ldrh r2, [r3, 0x4]
	lsls r1, r2, 22
	lsrs r1, 22
	lsls r0, r5, 3
	adds r0, 0x40
	adds r1, r0
	ldr r4, =0x000003ff
	adds r0, r4, 0
	ands r1, r0
	ldr r4, =0xfffffc00
	adds r0, r4, 0
	ands r2, r0
	orrs r2, r1
	strh r2, [r3, 0x4]
	adds r5, 0x1
	cmp r5, 0x1
	ble _081C7D50
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7D28

	thumb_func_start sub_81C7DFC
sub_81C7DFC: @ 81C7DFC
	push {lr}
	cmp r0, 0x5
	bhi _081C7E08
	bl sub_81C7E58
	b _081C7E0E
_081C7E08:
	subs r0, 0x6
	bl sub_81C7F24
_081C7E0E:
	pop {r0}
	bx r0
	thumb_func_end sub_81C7DFC

	thumb_func_start sub_81C7E14
sub_81C7E14: @ 81C7E14
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x4
	bne _081C7E30
	movs r0, 0x2
	bl GetSpriteTileStartByTag
	ldr r3, [r5, 0x20]
	adds r0, 0x20
	b _081C7E3A
_081C7E30:
	movs r0, 0x2
	bl GetSpriteTileStartByTag
	ldr r3, [r5, 0x20]
	adds r0, 0x40
_081C7E3A:
	ldr r2, =0x000003ff
	adds r1, r2, 0
	ands r0, r1
	ldrh r2, [r3, 0x4]
	ldr r1, =0xfffffc00
	ands r1, r2
	orrs r1, r0
	strh r1, [r3, 0x4]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7E14

	thumb_func_start sub_81C7E58
sub_81C7E58: @ 81C7E58
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	mov r9, r0
	cmp r0, 0x5
	bhi _081C7F16
	movs r0, 0
	bl sub_81C763C
	adds r7, r0, 0
	ldr r0, =gUnknown_0861FA6C
	mov r1, r9
	lsls r6, r1, 3
	adds r6, r0
	ldrh r4, [r6, 0x6]
	ldr r2, [r6]
	mov r8, r2
	mov r0, r8
	bl sub_8034974
	adds r5, r0, 0
	lsls r4, 5
	ldr r0, =gUnknown_08DC7F00
	adds r4, r0
	movs r0, 0x1
	bl IndexOfSpritePaletteTag
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 4
	movs r0, 0x80
	lsls r0, 17
	adds r1, r0
	lsrs r1, 16
	adds r0, r4, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r4, =0x0201c000
	mov r0, r8
	adds r1, r4, 0
	bl LZ77UnCompWram
	movs r0, 0x2
	bl GetSpriteTileStartByTag
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 11
	ldr r2, =0x06010000
	adds r1, r2
	lsls r5, 16
	lsrs r5, 16
	adds r0, r4, 0
	adds r2, r5, 0
	movs r3, 0x1
	bl RequestDma3Copy
	movs r0, 0x2
	bl GetSpriteTileStartByTag
	ldr r3, [r7, 0x20]
	ldrh r1, [r6, 0x4]
	adds r0, r1
	ldr r2, =0x000003ff
	adds r1, r2, 0
	ands r0, r1
	ldrh r2, [r3, 0x4]
	ldr r1, =0xfffffc00
	ands r1, r2
	orrs r1, r0
	strh r1, [r3, 0x4]
	mov r0, r9
	subs r0, 0x4
	cmp r0, 0x1
	bhi _081C7F10
	ldr r1, [r7, 0x20]
	movs r0, 0x38
	b _081C7F14
	.pool
_081C7F10:
	ldr r1, [r7, 0x20]
	movs r0, 0x40
_081C7F14:
	strh r0, [r1, 0x24]
_081C7F16:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7E58

	thumb_func_start sub_81C7F24
sub_81C7F24: @ 81C7F24
	push {r4-r6,lr}
	cmp r0, 0x6
	bhi _081C7F8A
	ldr r2, =gUnknown_0861FA9C
	lsls r1, r0, 3
	adds r0, r2, 0x4
	adds r0, r1, r0
	ldr r4, [r0]
	adds r1, r2
	ldr r6, [r1]
	adds r0, r6, 0
	bl sub_8034974
	adds r5, r0, 0
	lsls r4, 5
	ldr r0, =gUnknown_08DC7F00
	adds r4, r0
	movs r0, 0x2
	bl IndexOfSpritePaletteTag
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 4
	movs r0, 0x80
	lsls r0, 17
	adds r1, r0
	lsrs r1, 16
	adds r0, r4, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r4, =0x0201d000
	adds r0, r6, 0
	adds r1, r4, 0
	bl LZ77UnCompWram
	movs r0, 0x2
	bl GetSpriteTileStartByTag
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 11
	ldr r0, =0x06010800
	adds r1, r0
	lsls r5, 16
	lsrs r5, 16
	adds r0, r4, 0
	adds r2, r5, 0
	movs r3, 0x1
	bl RequestDma3Copy
_081C7F8A:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C7F24

	thumb_func_start sub_81C7FA0
sub_81C7FA0: @ 81C7FA0
	push {lr}
	adds r3, r0, 0
	movs r0, 0x10
	cmp r1, 0
	bne _081C7FAC
	movs r0, 0x30
_081C7FAC:
	cmp r3, 0x5
	bhi _081C7FB8
	adds r1, r2, 0
	bl sub_81C803C
	b _081C7FBE
_081C7FB8:
	adds r1, r2, 0
	bl sub_81C8088
_081C7FBE:
	pop {r0}
	bx r0
	thumb_func_end sub_81C7FA0

	thumb_func_start sub_81C7FC4
sub_81C7FC4: @ 81C7FC4
	push {lr}
	cmp r0, 0x5
	bhi _081C7FD2
	adds r0, r1, 0
	bl sub_81C80D4
	b _081C7FD8
_081C7FD2:
	adds r0, r1, 0
	bl sub_81C8110
_081C7FD8:
	pop {r0}
	bx r0
	thumb_func_end sub_81C7FC4

	thumb_func_start sub_81C7FDC
sub_81C7FDC: @ 81C7FDC
	push {r4,lr}
	movs r0, 0
	bl sub_81C763C
	movs r4, 0x4
	adds r2, r0, 0
	adds r2, 0x1C
	movs r3, 0x1
_081C7FEC:
	ldr r1, [r2]
	adds r1, 0x3E
	ldrb r0, [r1]
	orrs r0, r4
	strb r0, [r1]
	ldr r1, [r2, 0x8]
	adds r1, 0x3E
	ldrb r0, [r1]
	orrs r0, r4
	strb r0, [r1]
	adds r2, 0x4
	subs r3, 0x1
	cmp r3, 0
	bge _081C7FEC
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C7FDC

	thumb_func_start sub_81C8010
sub_81C8010: @ 81C8010
	push {lr}
	movs r0, 0
	bl sub_81C763C
	adds r1, r0, 0
	ldr r0, [r1, 0x1C]
	ldr r2, [r0, 0x1C]
	ldr r0, =SpriteCallbackDummy
	cmp r2, r0
	bne _081C8034
	ldr r0, [r1, 0x24]
	ldr r0, [r0, 0x1C]
	cmp r0, r2
	bne _081C8034
	movs r0, 0
	b _081C8036
	.pool
_081C8034:
	movs r0, 0x1
_081C8036:
	pop {r1}
	bx r1
	thumb_func_end sub_81C8010

	thumb_func_start sub_81C803C
sub_81C803C: @ 81C803C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	adds r4, r1, 0
	movs r0, 0
	bl sub_81C763C
	cmp r4, 0
	bne _081C8058
	movs r7, 0x60
	negs r7, r7
	movs r6, 0x20
	b _081C805E
_081C8058:
	movs r7, 0x80
	lsls r7, 1
	movs r6, 0xA0
_081C805E:
	adds r4, r0, 0
	adds r4, 0x1C
	movs r5, 0x1
_081C8064:
	ldr r0, [r4]
	mov r1, r8
	strh r1, [r0, 0x22]
	ldm r4!, {r0}
	adds r1, r7, 0
	adds r2, r6, 0
	movs r3, 0xC
	bl sub_81C814C
	subs r5, 0x1
	cmp r5, 0
	bge _081C8064
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C803C

	thumb_func_start sub_81C8088
sub_81C8088: @ 81C8088
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	adds r4, r1, 0
	movs r0, 0
	bl sub_81C763C
	cmp r4, 0
	bne _081C80A4
	movs r7, 0x60
	negs r7, r7
	movs r6, 0x10
	b _081C80AA
_081C80A4:
	movs r7, 0x80
	lsls r7, 1
	movs r6, 0xC0
_081C80AA:
	adds r4, r0, 0
	adds r4, 0x24
	movs r5, 0x1
_081C80B0:
	ldr r0, [r4]
	mov r1, r8
	strh r1, [r0, 0x22]
	ldm r4!, {r0}
	adds r1, r7, 0
	adds r2, r6, 0
	movs r3, 0xC
	bl sub_81C814C
	subs r5, 0x1
	cmp r5, 0
	bge _081C80B0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C8088

	thumb_func_start sub_81C80D4
sub_81C80D4: @ 81C80D4
	push {r4-r7,lr}
	adds r4, r0, 0
	movs r0, 0
	bl sub_81C763C
	cmp r4, 0
	bne _081C80EA
	movs r6, 0x20
	movs r5, 0x60
	negs r5, r5
	b _081C80F0
_081C80EA:
	movs r6, 0xC0
	movs r5, 0x80
	lsls r5, 1
_081C80F0:
	adds r7, r0, 0
	adds r7, 0x1C
	movs r4, 0x1
_081C80F6:
	ldm r7!, {r0}
	adds r1, r6, 0
	adds r2, r5, 0
	movs r3, 0xC
	bl sub_81C814C
	subs r4, 0x1
	cmp r4, 0
	bge _081C80F6
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C80D4

	thumb_func_start sub_81C8110
sub_81C8110: @ 81C8110
	push {r4-r7,lr}
	adds r4, r0, 0
	movs r0, 0
	bl sub_81C763C
	cmp r4, 0
	bne _081C8126
	movs r6, 0x10
	movs r5, 0x60
	negs r5, r5
	b _081C812C
_081C8126:
	movs r6, 0xC0
	movs r5, 0x80
	lsls r5, 1
_081C812C:
	adds r7, r0, 0
	adds r7, 0x24
	movs r4, 0x1
_081C8132:
	ldm r7!, {r0}
	adds r1, r6, 0
	adds r2, r5, 0
	movs r3, 0xC
	bl sub_81C814C
	subs r4, 0x1
	cmp r4, 0
	bge _081C8132
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81C8110

	thumb_func_start sub_81C814C
sub_81C814C: @ 81C814C
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r0, r1, 0
	adds r6, r2, 0
	adds r5, r3, 0
	strh r0, [r4, 0x20]
	lsls r1, r0, 4
	strh r1, [r4, 0x2E]
	subs r0, r6, r0
	lsls r0, 4
	adds r1, r5, 0
	bl __divsi3
	strh r0, [r4, 0x30]
	strh r5, [r4, 0x32]
	strh r6, [r4, 0x3C]
	ldr r0, =sub_81C817C
	str r0, [r4, 0x1C]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C814C

	thumb_func_start sub_81C817C
sub_81C817C: @ 81C817C
	push {lr}
	adds r2, r0, 0
	ldrh r1, [r2, 0x32]
	movs r3, 0x32
	ldrsh r0, [r2, r3]
	cmp r0, 0
	beq _081C81C4
	subs r0, r1, 0x1
	strh r0, [r2, 0x32]
	ldrh r0, [r2, 0x30]
	ldrh r1, [r2, 0x2E]
	adds r0, r1
	strh r0, [r2, 0x2E]
	lsls r0, 16
	asrs r0, 20
	strh r0, [r2, 0x20]
	adds r0, 0x10
	lsls r0, 16
	movs r1, 0x88
	lsls r1, 17
	cmp r0, r1
	bls _081C81B6
	adds r0, r2, 0
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	b _081C81CC
_081C81B6:
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	b _081C81CC
_081C81C4:
	ldrh r0, [r2, 0x3C]
	strh r0, [r2, 0x20]
	ldr r0, =SpriteCallbackDummy
	str r0, [r2, 0x1C]
_081C81CC:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C817C

	thumb_func_start sub_81C81D4
sub_81C81D4: @ 81C81D4
	push {r4-r7,lr}
	adds r6, r0, 0
	adds r5, r1, 0
	adds r7, r2, 0
	ldr r1, =0x000008a4
	movs r0, 0x11
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081C821C
	ldr r1, =0x00000888
	adds r0, r4, r1
	adds r1, r5, 0
	bl sub_81C9160
	adds r0, r4, 0
	adds r1, r6, 0
	adds r2, r5, 0
	adds r3, r7, 0
	bl sub_81C91AC
	cmp r0, 0
	beq _081C821C
	ldr r0, =sub_81C8254
	movs r1, 0x6
	bl sub_81C7078
	movs r0, 0x1
	b _081C821E
	.pool
_081C821C:
	movs r0, 0
_081C821E:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81C81D4

	thumb_func_start sub_81C8224
sub_81C8224: @ 81C8224
	push {lr}
	ldr r0, =sub_81C8254
	bl sub_81C7124
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C8224

	thumb_func_start sub_81C8234
sub_81C8234: @ 81C8234
	push {r4,lr}
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81C8FE0
	ldrb r0, [r4, 0x8]
	bl RemoveWindow
	movs r0, 0x11
	bl sub_81C7650
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C8234

	thumb_func_start sub_81C8254
sub_81C8254: @ 81C8254
	push {r4,lr}
	adds r4, r0, 0
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081C82C0
	movs r0, 0x11
	bl sub_81C763C
	adds r2, r0, 0
	cmp r4, 0x4
	bhi _081C82D6
	lsls r0, r4, 2
	ldr r1, =_081C827C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C827C:
	.4byte _081C8290
	.4byte _081C829A
	.4byte _081C82A4
	.4byte _081C82B8
	.4byte _081C82CC
_081C8290:
	adds r0, r2, 0
	bl sub_81C82E4
	movs r0, 0
	b _081C82D8
_081C829A:
	adds r0, r2, 0
	bl sub_81C835C
	movs r0, 0
	b _081C82D8
_081C82A4:
	ldr r1, =0x00000888
	adds r0, r2, r1
	adds r1, r2, 0
	bl sub_81C837C
	movs r0, 0
	b _081C82D8
	.pool
_081C82B8:
	bl sub_81C83E0
	cmp r0, 0
	beq _081C82C4
_081C82C0:
	movs r0, 0x2
	b _081C82D8
_081C82C4:
	bl sub_81C8ED0
	movs r0, 0x1
	b _081C82D8
_081C82CC:
	ldr r1, =0x00000888
	adds r0, r2, r1
	adds r1, r2, 0
	bl sub_81C8EF8
_081C82D6:
	movs r0, 0x4
_081C82D8:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C8254

	thumb_func_start sub_81C82E4
sub_81C82E4: @ 81C82E4
	push {r4,r5,lr}
	sub sp, 0x8
	adds r5, r0, 0
	ldrb r4, [r5, 0x1]
	lsls r4, 12
	ldrh r0, [r5, 0x6]
	orrs r4, r0
	lsls r4, 16
	lsrs r4, 16
	ldrb r0, [r5]
	ldrh r2, [r5, 0x6]
	movs r1, 0x11
	movs r3, 0x1
	bl sub_8199DF0
	ldrb r0, [r5]
	ldrh r2, [r5, 0x6]
	adds r2, 0x1
	movs r1, 0x44
	movs r3, 0x1
	bl sub_8199DF0
	ldrb r0, [r5]
	adds r1, r5, 0
	adds r1, 0x88
	bl SetBgTilemapBuffer
	ldrb r0, [r5]
	movs r1, 0x20
	str r1, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	ldrb r0, [r5]
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldrb r0, [r5]
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	ldrb r0, [r5]
	ldrb r1, [r5, 0x3]
	lsls r1, 11
	movs r2, 0x2
	bl ChangeBgY
	ldrb r0, [r5]
	bl CopyBgTilemapBufferToVram
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C82E4

	thumb_func_start sub_81C835C
sub_81C835C: @ 81C835C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4, 0x8]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x8]
	bl PutWindowTilemap
	ldrb r0, [r4, 0x8]
	movs r1, 0x1
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C835C

	thumb_func_start sub_81C837C
sub_81C837C: @ 81C837C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r3, r0, 0
	adds r5, r1, 0
	ldrh r0, [r3, 0x2]
	ldrh r4, [r3]
	subs r2, r0, r4
	ldrh r0, [r3, 0x8]
	cmp r2, r0
	ble _081C8392
	adds r2, r0, 0
_081C8392:
	ldr r0, [r3, 0x10]
	ldr r3, [r3, 0xC]
	movs r1, 0
	str r1, [sp]
	str r5, [sp, 0x4]
	adds r1, r4, 0
	bl sub_81C83AC
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C837C

	thumb_func_start sub_81C83AC
sub_81C83AC: @ 81C83AC
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldr r1, [sp, 0x10]
	cmp r2, 0
	beq _081C83D6
	adds r0, r5, 0
	muls r0, r3
	adds r0, r4, r0
	str r0, [r1, 0x1C]
	str r3, [r1, 0x18]
	movs r0, 0
	strh r0, [r1, 0xC]
	strh r2, [r1, 0xE]
	str r5, [r1, 0x14]
	ldr r0, [sp, 0xC]
	str r0, [r1, 0x10]
	ldr r0, =sub_81C83F0
	movs r1, 0x5
	bl sub_81C7078
_081C83D6:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C83AC

	thumb_func_start sub_81C83E0
sub_81C83E0: @ 81C83E0
	push {lr}
	ldr r0, =sub_81C83F0
	bl sub_81C7124
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C83E0

	thumb_func_start sub_81C83F0
sub_81C83F0: @ 81C83F0
	push {r4-r7,lr}
	sub sp, 0xC
	adds r6, r0, 0
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	cmp r6, 0
	beq _081C8408
	cmp r6, 0x1
	beq _081C848C
	b _081C849A
_081C8408:
	ldrh r0, [r4, 0xA]
	ldrh r1, [r4, 0xC]
	adds r0, r1
	ldr r1, [r4, 0x10]
	adds r5, r0, r1
	movs r0, 0xF
	ands r5, r0
	ldr r0, [r4, 0x1C]
	adds r7, r4, 0
	adds r7, 0x48
	ldr r2, [r4, 0x34]
	adds r1, r7, 0
	bl _call_via_r2
	ldr r3, [r4, 0x38]
	cmp r3, 0
	beq _081C8434
	ldrh r0, [r4, 0x8]
	ldr r1, [r4, 0x14]
	adds r2, r5, 0
	bl _call_via_r3
_081C8434:
	ldrb r0, [r4, 0x8]
	ldrb r1, [r4, 0x5]
	lsls r2, r5, 4
	movs r3, 0x1
	orrs r2, r3
	str r2, [sp]
	movs r2, 0xFF
	str r2, [sp, 0x4]
	str r6, [sp, 0x8]
	adds r2, r7, 0
	movs r3, 0x8
	bl PrintTextOnWindow
	ldrh r0, [r4, 0xC]
	adds r0, 0x1
	strh r0, [r4, 0xC]
	lsls r0, 16
	lsrs r0, 16
	ldrh r1, [r4, 0xE]
	cmp r0, r1
	bcc _081C847A
	ldr r0, [r4, 0x38]
	cmp r0, 0
	beq _081C846E
	ldrb r0, [r4, 0x8]
	movs r1, 0x3
	bl CopyWindowToVram
	b _081C8476
_081C846E:
	ldrb r0, [r4, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
_081C8476:
	movs r0, 0
	b _081C849C
_081C847A:
	ldr r0, [r4, 0x1C]
	ldr r1, [r4, 0x18]
	adds r0, r1
	str r0, [r4, 0x1C]
	ldr r0, [r4, 0x14]
	adds r0, 0x1
	str r0, [r4, 0x14]
	movs r0, 0x3
	b _081C849C
_081C848C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081C849A
	movs r0, 0x2
	b _081C849C
_081C849A:
	movs r0, 0x4
_081C849C:
	add sp, 0xC
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81C83F0

	thumb_func_start sub_81C84A4
sub_81C84A4: @ 81C84A4
	push {lr}
	movs r0, 0x11
	bl sub_81C763C
	ldr r1, =0x00000888
	adds r0, r1
	ldrh r1, [r0]
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C84A4

	thumb_func_start sub_81C84C0
sub_81C84C0: @ 81C84C0
	push {lr}
	movs r0, 0x11
	bl sub_81C763C
	ldr r1, =0x00000888
	adds r0, r1
	movs r3, 0
	ldrh r1, [r0]
	ldrh r2, [r0, 0x8]
	adds r1, r2
	ldrh r0, [r0, 0x2]
	cmp r1, r0
	bge _081C84DC
	movs r3, 0x1
_081C84DC:
	adds r0, r3, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C84C0

	thumb_func_start sub_81C84E8
sub_81C84E8: @ 81C84E8
	push {r4-r7,lr}
	sub sp, 0x8
	adds r6, r0, 0
	adds r4, r1, 0
	movs r0, 0x11
	bl sub_81C763C
	adds r7, r0, 0
	ldr r0, =0x00000888
	adds r5, r7, r0
	cmp r6, 0
	bge _081C8524
	ldrh r1, [r5]
	adds r0, r1, r6
	cmp r0, 0
	bge _081C850A
	negs r6, r1
_081C850A:
	cmp r4, 0
	beq _081C854E
	ldr r0, [r5, 0x10]
	adds r1, r6
	negs r2, r6
	ldr r3, [r5, 0xC]
	str r6, [sp]
	str r7, [sp, 0x4]
	bl sub_81C83AC
	b _081C854E
	.pool
_081C8524:
	cmp r4, 0
	beq _081C854E
	ldr r2, =gUnknown_0203CF44
	ldrh r1, [r5]
	ldrh r0, [r5, 0x8]
	adds r4, r1, r0
	str r4, [r2]
	adds r0, r4, r6
	ldrh r1, [r5, 0x2]
	cmp r0, r1
	blt _081C853C
	subs r6, r1, r4
_081C853C:
	ldr r0, [r5, 0x10]
	ldr r3, [r5, 0xC]
	ldrh r1, [r5, 0x8]
	str r1, [sp]
	str r7, [sp, 0x4]
	adds r1, r4, 0
	adds r2, r6, 0
	bl sub_81C83AC
_081C854E:
	adds r0, r6, 0
	adds r1, r7, 0
	bl sub_81C8568
	ldrh r0, [r5]
	adds r0, r6
	strh r0, [r5]
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C84E8

	thumb_func_start sub_81C8568
sub_81C8568: @ 81C8568
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	ldrb r0, [r4]
	bl GetBgY
	str r0, [r4, 0x20]
	lsls r1, r5, 12
	adds r0, r1
	str r0, [r4, 0x24]
	cmp r5, 0
	ble _081C8584
	movs r0, 0x1
	b _081C8586
_081C8584:
	movs r0, 0x2
_081C8586:
	str r0, [r4, 0x30]
	str r5, [r4, 0x2C]
	ldr r0, =sub_81C85A0
	movs r1, 0x6
	bl sub_81C7078
	str r0, [r4, 0x28]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8568

	thumb_func_start sub_81C85A0
sub_81C85A0: @ 81C85A0
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	cmp r5, 0
	beq _081C85B8
	cmp r5, 0x1
	beq _081C85C4
	movs r0, 0x4
	b _081C862A
_081C85B8:
	bl sub_81C83E0
	cmp r0, 0
	bne _081C8628
	movs r0, 0x1
	b _081C862A
_081C85C4:
	movs r6, 0
	ldrb r0, [r4]
	bl GetBgY
	adds r5, r0, 0
	ldrb r0, [r4]
	movs r1, 0x80
	lsls r1, 5
	ldr r2, [r4, 0x30]
	lsls r2, 24
	lsrs r2, 24
	bl ChangeBgY
	adds r1, r0, 0
	ldr r0, [r4, 0x30]
	cmp r0, 0x2
	bne _081C85F8
	ldr r2, [r4, 0x24]
	cmp r5, r2
	bgt _081C85F2
	ldr r0, [r4, 0x20]
	cmp r5, r0
	bgt _081C860A
_081C85F2:
	cmp r1, r2
	bgt _081C860A
	b _081C860E
_081C85F8:
	ldr r2, [r4, 0x24]
	cmp r5, r2
	blt _081C8604
	ldr r0, [r4, 0x20]
	cmp r5, r0
	blt _081C860A
_081C8604:
	cmp r1, r2
	blt _081C860A
	movs r6, 0x1
_081C860A:
	cmp r6, 0
	beq _081C8628
_081C860E:
	ldr r1, [r4, 0x2C]
	ldrh r0, [r4, 0xA]
	adds r0, r1
	movs r1, 0xF
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrb r0, [r4]
	adds r1, r2, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x4
	b _081C862A
_081C8628:
	movs r0, 0x2
_081C862A:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81C85A0

	thumb_func_start sub_81C8630
sub_81C8630: @ 81C8630
	push {lr}
	movs r0, 0x11
	bl sub_81C763C
	ldr r0, [r0, 0x28]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81C8630

	thumb_func_start sub_81C8644
sub_81C8644: @ 81C8644
	push {lr}
	movs r0, 0x11
	bl sub_81C763C
	ldr r1, =0x00000888
	adds r0, r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C8644

	thumb_func_start sub_81C8658
sub_81C8658: @ 81C8658
	push {lr}
	bl sub_81C8644
	adds r1, r0, 0
	ldrh r0, [r1, 0x6]
	cmp r0, 0
	beq _081C866E
	subs r0, 0x1
	strh r0, [r1, 0x6]
	movs r0, 0x1
	b _081C8686
_081C866E:
	bl sub_81C84A4
	cmp r0, 0
	bne _081C867A
	movs r0, 0
	b _081C8686
_081C867A:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x1
	bl sub_81C84E8
	movs r0, 0x2
_081C8686:
	pop {r1}
	bx r1
	thumb_func_end sub_81C8658

	thumb_func_start sub_81C868C
sub_81C868C: @ 81C868C
	push {lr}
	bl sub_81C8644
	adds r2, r0, 0
	ldrh r1, [r2]
	ldrh r3, [r2, 0x6]
	adds r1, r3
	ldrh r0, [r2, 0x2]
	subs r0, 0x1
	cmp r1, r0
	bge _081C86BA
	ldrh r0, [r2, 0x8]
	subs r0, 0x1
	cmp r3, r0
	bge _081C86B2
	adds r0, r3, 0x1
	strh r0, [r2, 0x6]
	movs r0, 0x1
	b _081C86C8
_081C86B2:
	bl sub_81C84C0
	cmp r0, 0
	bne _081C86BE
_081C86BA:
	movs r0, 0
	b _081C86C8
_081C86BE:
	movs r0, 0x1
	movs r1, 0x1
	bl sub_81C84E8
	movs r0, 0x2
_081C86C8:
	pop {r1}
	bx r1
	thumb_func_end sub_81C868C

	thumb_func_start sub_81C86CC
sub_81C86CC: @ 81C86CC
	push {r4,lr}
	bl sub_81C8644
	adds r4, r0, 0
	bl sub_81C84A4
	adds r1, r0, 0
	cmp r1, 0
	beq _081C86F8
	ldrh r0, [r4]
	ldrh r1, [r4, 0x8]
	cmp r0, r1
	bcc _081C86EA
	ldrh r0, [r4, 0x8]
	b _081C86EC
_081C86EA:
	ldrh r0, [r4]
_081C86EC:
	negs r0, r0
	movs r1, 0x1
	bl sub_81C84E8
	movs r0, 0x2
	b _081C8706
_081C86F8:
	ldrh r0, [r4, 0x6]
	cmp r0, 0
	bne _081C8702
	movs r0, 0
	b _081C8706
_081C8702:
	strh r1, [r4, 0x6]
	movs r0, 0x1
_081C8706:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C86CC

	thumb_func_start sub_81C870C
sub_81C870C: @ 81C870C
	push {r4,lr}
	bl sub_81C8644
	adds r4, r0, 0
	bl sub_81C84C0
	cmp r0, 0
	beq _081C8736
	ldrh r0, [r4]
	ldrh r3, [r4, 0x8]
	adds r2, r0, r3
	ldrh r1, [r4, 0x4]
	subs r0, r1, r0
	cmp r2, r1
	bgt _081C872C
	adds r0, r3, 0
_081C872C:
	movs r1, 0x1
	bl sub_81C84E8
	movs r0, 0x2
	b _081C8756
_081C8736:
	ldrh r0, [r4, 0x2]
	ldrh r1, [r4, 0x8]
	cmp r0, r1
	bcc _081C8744
	ldrh r1, [r4, 0x6]
	ldrh r0, [r4, 0x8]
	b _081C8748
_081C8744:
	ldrh r1, [r4, 0x6]
	ldrh r0, [r4, 0x2]
_081C8748:
	subs r0, 0x1
	cmp r1, r0
	bge _081C8754
	strh r0, [r4, 0x6]
	movs r0, 0x1
	b _081C8756
_081C8754:
	movs r0, 0
_081C8756:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C870C

	thumb_func_start sub_81C875C
sub_81C875C: @ 81C875C
	push {lr}
	bl sub_81C8644
	adds r1, r0, 0
	ldrh r0, [r1]
	ldrh r1, [r1, 0x6]
	adds r0, r1
	pop {r1}
	bx r1
	thumb_func_end sub_81C875C

	thumb_func_start sub_81C8770
sub_81C8770: @ 81C8770
	push {lr}
	bl sub_81C8644
	ldrh r0, [r0]
	pop {r1}
	bx r1
	thumb_func_end sub_81C8770

	thumb_func_start sub_81C877C
sub_81C877C: @ 81C877C
	push {r4,lr}
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =0x0000089c
	adds r1, r4, r0
	movs r0, 0
	str r0, [r1]
	ldr r0, =sub_81C8870
	movs r1, 0x6
	bl sub_81C7078
	movs r1, 0x8A
	lsls r1, 4
	adds r4, r1
	str r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C877C

	thumb_func_start sub_81C87AC
sub_81C87AC: @ 81C87AC
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	movs r0, 0x11
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =0x00000888
	adds r1, r5, r0
	ldrh r0, [r1]
	adds r0, r4
	movs r2, 0
	strh r0, [r1]
	ldr r1, =0x0000089c
	adds r0, r5, r1
	str r2, [r0]
	ldr r0, =sub_81C8958
	movs r1, 0x6
	bl sub_81C7078
	movs r1, 0x8A
	lsls r1, 4
	adds r5, r1
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C87AC

	thumb_func_start sub_81C87F0
sub_81C87F0: @ 81C87F0
	push {r4,lr}
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =0x0000089c
	adds r1, r4, r0
	movs r0, 0
	str r0, [r1]
	ldr r0, =sub_81C8A28
	movs r1, 0x6
	bl sub_81C7078
	movs r1, 0x8A
	lsls r1, 4
	adds r4, r1
	str r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C87F0

	thumb_func_start sub_81C8820
sub_81C8820: @ 81C8820
	push {lr}
	movs r0, 0x11
	bl sub_81C763C
	movs r1, 0x8A
	lsls r1, 4
	adds r0, r1
	ldr r0, [r0]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81C8820

	thumb_func_start sub_81C8838
sub_81C8838: @ 81C8838
	push {r4,lr}
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =0x00000888
	adds r2, r4, r0
	ldrh r0, [r4, 0x8]
	ldrh r1, [r2]
	ldrh r3, [r2, 0x6]
	adds r1, r3
	ldrh r2, [r4, 0xA]
	adds r2, r3
	movs r3, 0xF
	ands r2, r3
	ldr r3, [r4, 0x38]
	bl _call_via_r3
	ldrb r0, [r4, 0x8]
	movs r1, 0x1
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8838

	thumb_func_start sub_81C8870
sub_81C8870: @ 81C8870
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	cmp r5, 0x4
	bhi _081C894C
	lsls r0, r5, 2
	ldr r1, =_081C8890
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C8890:
	.4byte _081C88A4
	.4byte _081C88AC
	.4byte _081C88D8
	.4byte _081C8918
	.4byte _081C8938
_081C88A4:
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C9008
_081C88AC:
	ldr r0, =0x0000089c
	adds r5, r4, r0
	ldr r1, =0x0000088e
	adds r0, r4, r1
	ldr r1, [r5]
	ldrh r0, [r0]
	cmp r1, r0
	beq _081C88C4
	adds r0, r4, 0
	movs r2, 0x1
	bl sub_81C8B70
_081C88C4:
	ldr r0, [r5]
	adds r0, 0x1
	str r0, [r5]
_081C88CA:
	movs r0, 0
	b _081C894E
	.pool
_081C88D8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081C8942
	ldr r2, =0x0000089c
	adds r0, r4, r2
	subs r2, 0xC
	adds r1, r4, r2
	ldr r3, [r0]
	ldrh r1, [r1]
	cmp r3, r1
	beq _081C88FC
	movs r0, 0x6
	b _081C894E
	.pool
_081C88FC:
	ldr r0, =0x0000088e
	adds r1, r4, r0
	ldrh r0, [r1]
	cmp r0, 0
	beq _081C88CA
	adds r2, r0, 0
	adds r0, r4, 0
	adds r1, r3, 0
	bl sub_81C8B70
	b _081C88CA
	.pool
_081C8918:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081C8942
	ldr r2, =0x0000088e
	adds r1, r4, r2
	ldrh r0, [r1]
	cmp r0, 0
	beq _081C894C
	movs r1, 0
	bl sub_81C84E8
	b _081C88CA
	.pool
_081C8938:
	bl sub_81C8630
	adds r1, r0, 0
	cmp r1, 0
	beq _081C8946
_081C8942:
	movs r0, 0x2
	b _081C894E
_081C8946:
	ldr r2, =0x0000088e
	adds r0, r4, r2
	strh r1, [r0]
_081C894C:
	movs r0, 0x4
_081C894E:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C8870

	thumb_func_start sub_81C8958
sub_81C8958: @ 81C8958
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081C8972
	movs r0, 0x2
	b _081C8A22
_081C8972:
	cmp r5, 0x7
	bhi _081C8A1C
	lsls r0, r5, 2
	ldr r1, =_081C8984
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C8984:
	.4byte _081C89A4
	.4byte _081C89B4
	.4byte _081C89BE
	.4byte _081C89D0
	.4byte _081C89DA
	.4byte _081C89EC
	.4byte _081C89F6
	.4byte _081C8A08
_081C89A4:
	ldr r1, =0x00000888
	adds r0, r4, r1
	adds r1, r4, 0
	bl sub_81C8CB4
	b _081C8A20
	.pool
_081C89B4:
	adds r0, r4, 0
	movs r1, 0
	bl sub_81C8DBC
	b _081C8A20
_081C89BE:
	ldr r1, =0x00000888
	adds r0, r4, r1
	adds r1, r4, 0
	movs r2, 0
	bl sub_81C8E54
	b _081C8A20
	.pool
_081C89D0:
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C8DBC
	b _081C8A20
_081C89DA:
	ldr r1, =0x00000888
	adds r0, r4, r1
	adds r1, r4, 0
	movs r2, 0x1
	bl sub_81C8E54
	b _081C8A20
	.pool
_081C89EC:
	adds r0, r4, 0
	movs r1, 0x2
	bl sub_81C8DBC
	b _081C8A20
_081C89F6:
	ldr r1, =0x00000888
	adds r0, r4, r1
	adds r1, r4, 0
	movs r2, 0x2
	bl sub_81C8E54
	b _081C8A20
	.pool
_081C8A08:
	ldr r1, =0x00000888
	adds r0, r4, r1
	adds r1, r4, 0
	movs r2, 0x3
	bl sub_81C8E54
	b _081C8A20
	.pool
_081C8A1C:
	movs r0, 0x4
	b _081C8A22
_081C8A20:
	movs r0, 0
_081C8A22:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81C8958

	thumb_func_start sub_81C8A28
sub_81C8A28: @ 81C8A28
	push {r4-r7,lr}
	sub sp, 0x8
	adds r5, r0, 0
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081C8AA6
	movs r0, 0x11
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =0x00000888
	adds r6, r4, r0
	adds r2, r4, 0
	cmp r5, 0x6
	bls _081C8A4C
	b _081C8B64
_081C8A4C:
	lsls r0, r5, 2
	ldr r1, =_081C8A60
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C8A60:
	.4byte _081C8A7C
	.4byte _081C8A88
	.4byte _081C8AE8
	.4byte _081C8AFC
	.4byte _081C8B14
	.4byte _081C8B34
	.4byte _081C8B5C
_081C8A7C:
	adds r0, r6, 0
	adds r1, r2, 0
	bl sub_81C8D4C
	movs r0, 0
	b _081C8B66
_081C8A88:
	ldr r1, =0x0000089c
	adds r7, r4, r1
	ldr r0, [r7]
	adds r1, r0, 0x1
	str r1, [r7]
	movs r3, 0x89
	lsls r3, 4
	adds r0, r4, r3
	ldrh r0, [r0]
	cmp r1, r0
	bge _081C8AB0
	adds r0, r2, 0
	movs r2, 0x1
	bl sub_81C8B70
_081C8AA6:
	movs r0, 0x2
	b _081C8B66
	.pool
_081C8AB0:
	movs r0, 0
	str r0, [r7]
	ldrh r0, [r6, 0x2]
	ldrh r1, [r6, 0x8]
	cmp r0, r1
	bhi _081C8AC6
	ldrh r0, [r6]
	cmp r0, 0
	beq _081C8B52
	adds r4, r0, 0
	b _081C8AD4
_081C8AC6:
	ldrh r1, [r6]
	ldrh r0, [r6, 0x8]
	adds r4, r1, r0
	ldrh r1, [r6, 0x2]
	cmp r4, r1
	ble _081C8B52
	subs r4, r1
_081C8AD4:
	negs r5, r4
	adds r0, r2, 0
	adds r1, r5, 0
	adds r2, r4, 0
	bl sub_81C8B70
	strh r4, [r6, 0x6]
	str r5, [r7]
	movs r0, 0
	b _081C8B66
_081C8AE8:
	ldr r2, =0x0000089c
	adds r0, r4, r2
	ldr r0, [r0]
	movs r1, 0
	bl sub_81C84E8
	movs r0, 0
	b _081C8B66
	.pool
_081C8AFC:
	bl sub_81C8630
	adds r1, r0, 0
	cmp r1, 0
	bne _081C8AA6
	ldr r3, =0x0000089c
	adds r0, r4, r3
	str r1, [r0]
_081C8B0C:
	movs r0, 0x1
	b _081C8B66
	.pool
_081C8B14:
	ldr r0, [r6, 0x10]
	ldrh r1, [r6]
	ldr r3, =0x0000089c
	adds r2, r4, r3
	ldr r2, [r2]
	adds r1, r2
	ldr r3, [r6, 0xC]
	str r2, [sp]
	str r4, [sp, 0x4]
	movs r2, 0x1
	bl sub_81C83AC
	movs r0, 0
	b _081C8B66
	.pool
_081C8B34:
	bl sub_81C83E0
	cmp r0, 0
	bne _081C8AA6
	ldr r0, =0x0000089c
	adds r1, r4, r0
	ldr r0, [r1]
	adds r0, 0x1
	str r0, [r1]
	ldrh r1, [r6, 0x2]
	cmp r0, r1
	bge _081C8B0C
	ldrh r6, [r6, 0x8]
	cmp r0, r6
	bge _081C8B0C
_081C8B52:
	movs r0, 0x9
	b _081C8B66
	.pool
_081C8B5C:
	adds r0, r2, 0
	movs r1, 0
	bl sub_81C9008
_081C8B64:
	movs r0, 0x4
_081C8B66:
	add sp, 0x8
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81C8A28

	thumb_func_start sub_81C8B70
sub_81C8B70: @ 81C8B70
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	mov r9, r0
	adds r7, r1, 0
	adds r6, r2, 0
	ldrb r0, [r0, 0x8]
	movs r1, 0x7
	bl GetWindowAttribute
	mov r10, r0
	mov r1, r9
	ldrb r0, [r1, 0x4]
	lsls r3, r0, 6
	ldrh r0, [r1, 0xA]
	adds r7, r0, r7
	movs r0, 0xF
	ands r7, r0
	adds r0, r7, r6
	cmp r0, 0x10
	bgt _081C8BD4
	ldr r0, =0x11111111
	str r0, [sp]
	adds r1, r7, 0
	muls r1, r3
	add r1, r10
	adds r2, r6, 0
	muls r2, r3
	lsrs r2, 2
	ldr r0, =0x001fffff
	ands r2, r0
	movs r0, 0x80
	lsls r0, 17
	orrs r2, r0
	mov r0, sp
	bl CpuFastSet
	mov r1, r9
	ldrb r0, [r1, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
	b _081C8C1E
	.pool
_081C8BD4:
	movs r2, 0x10
	subs r2, r7
	subs r0, r6, r2
	mov r8, r0
	ldr r1, =0x11111111
	str r1, [sp, 0x4]
	add r0, sp, 0x4
	adds r1, r7, 0
	muls r1, r3
	add r1, r10
	muls r2, r3
	lsrs r2, 2
	ldr r5, =0x001fffff
	ands r2, r5
	movs r4, 0x80
	lsls r4, 17
	orrs r2, r4
	str r3, [sp, 0xC]
	bl CpuFastSet
	ldr r0, =0x11111111
	str r0, [sp, 0x8]
	add r0, sp, 0x8
	ldr r3, [sp, 0xC]
	mov r2, r8
	muls r2, r3
	lsrs r2, 2
	ands r2, r5
	orrs r2, r4
	mov r1, r10
	bl CpuFastSet
	mov r1, r9
	ldrb r0, [r1, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
_081C8C1E:
	subs r6, 0x1
	movs r0, 0x1
	negs r0, r0
	cmp r6, r0
	beq _081C8C40
	movs r5, 0xF
	adds r4, r0, 0
_081C8C2C:
	mov r1, r9
	ldrh r0, [r1, 0x8]
	adds r1, r7, 0
	bl sub_81CBD48
	adds r7, 0x1
	ands r7, r5
	subs r6, 0x1
	cmp r6, r4
	bne _081C8C2C
_081C8C40:
	mov r1, r9
	ldrb r0, [r1, 0x8]
	movs r1, 0x1
	bl CopyWindowToVram
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8B70

	thumb_func_start sub_81C8C64
sub_81C8C64: @ 81C8C64
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	ldrb r0, [r5, 0x8]
	movs r1, 0
	bl GetWindowAttribute
	lsls r0, 24
	lsrs r0, 24
	bl GetBgTilemapBuffer
	adds r2, r0, 0
	ldrh r0, [r5, 0xA]
	lsls r0, 6
	ldrb r1, [r5, 0x2]
	adds r0, r1
	lsls r0, 1
	subs r0, 0x2
	adds r2, r0
	cmp r4, 0
	beq _081C8C98
	ldrb r0, [r5, 0x1]
	lsls r0, 12
	ldrh r1, [r5, 0x6]
	adds r1, 0x1
	b _081C8C9E
_081C8C98:
	ldrb r0, [r5, 0x1]
	lsls r0, 12
	ldrh r1, [r5, 0x6]
_081C8C9E:
	orrs r0, r1
	lsls r0, 16
	lsrs r1, r0, 16
	strh r1, [r2]
	adds r0, r2, 0
	adds r0, 0x40
	strh r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C8C64

	thumb_func_start sub_81C8CB4
sub_81C8CB4: @ 81C8CB4
	push {r4-r6,lr}
	sub sp, 0x10
	adds r5, r0, 0
	adds r4, r1, 0
	ldr r1, =gUnknown_0861FBE4
	add r0, sp, 0xC
	movs r2, 0x3
	bl memcpy
	ldrh r1, [r5]
	ldr r0, [r5, 0xC]
	muls r1, r0
	ldr r0, [r5, 0x10]
	adds r0, r1
	adds r6, r4, 0
	adds r6, 0x48
	ldr r2, [r4, 0x34]
	adds r1, r6, 0
	bl _call_via_r2
	ldrh r0, [r4, 0x8]
	ldrh r1, [r5]
	ldrh r2, [r4, 0xA]
	ldr r3, [r4, 0x38]
	bl _call_via_r3
	ldrb r0, [r4, 0x8]
	ldrh r3, [r4, 0xA]
	lsls r3, 20
	lsrs r3, 16
	ldrb r1, [r4, 0x4]
	lsls r1, 3
	str r1, [sp]
	movs r1, 0x10
	str r1, [sp, 0x4]
	movs r1, 0x44
	movs r2, 0
	bl FillWindowPixelRect
	ldrb r0, [r4, 0x8]
	ldrb r1, [r4, 0x5]
	ldrh r3, [r4, 0xA]
	lsls r3, 4
	adds r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	add r2, sp, 0xC
	str r2, [sp]
	movs r2, 0x1
	negs r2, r2
	str r2, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r2, 0x8
	bl box_print
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81C8C64
	ldrh r0, [r4, 0x8]
	ldrh r3, [r4, 0xA]
	lsls r3, 1
	ldrb r1, [r4, 0x4]
	str r1, [sp]
	movs r1, 0x2
	str r1, [sp, 0x4]
	movs r1, 0x3
	movs r2, 0
	bl CopyWindowRectToVram
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8CB4

	thumb_func_start sub_81C8D4C
sub_81C8D4C: @ 81C8D4C
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r1, 0
	ldrh r2, [r0]
	ldr r1, [r0, 0xC]
	muls r1, r2
	ldr r0, [r0, 0x10]
	adds r0, r1
	adds r5, r4, 0
	adds r5, 0x48
	ldr r2, [r4, 0x34]
	adds r1, r5, 0
	bl _call_via_r2
	ldrb r0, [r4, 0x8]
	ldrh r3, [r4, 0xA]
	lsls r3, 20
	lsrs r3, 16
	ldrb r1, [r4, 0x4]
	lsls r1, 3
	str r1, [sp]
	movs r1, 0x10
	str r1, [sp, 0x4]
	movs r1, 0x11
	movs r2, 0
	bl FillWindowPixelRect
	ldrb r0, [r4, 0x8]
	ldrb r1, [r4, 0x5]
	ldrh r2, [r4, 0xA]
	lsls r2, 4
	adds r2, 0x1
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp]
	movs r2, 0xFF
	str r2, [sp, 0x4]
	movs r2, 0
	str r2, [sp, 0x8]
	adds r2, r5, 0
	movs r3, 0x8
	bl PrintTextOnWindow
	adds r0, r4, 0
	movs r1, 0
	bl sub_81C8C64
	ldrb r0, [r4, 0x8]
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C8D4C

	thumb_func_start sub_81C8DBC
sub_81C8DBC: @ 81C8DBC
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x1C
	adds r6, r0, 0
	mov r8, r1
	add r1, sp, 0xC
	ldr r0, =gUnknown_0861FBE8
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	add r0, sp, 0x18
	mov r9, r0
	ldr r1, =gUnknown_0861FBF4
	movs r2, 0x3
	bl memcpy
	ldrh r4, [r6, 0xA]
	mov r1, r8
	lsls r0, r1, 1
	adds r0, 0x1
	adds r4, r0
	movs r0, 0xF
	ands r4, r0
	ldrb r0, [r6, 0x8]
	lsls r5, r4, 4
	adds r3, r5, 0
	ldrb r1, [r6, 0x4]
	str r1, [sp]
	movs r1, 0x10
	str r1, [sp, 0x4]
	movs r1, 0x11
	movs r2, 0
	bl FillWindowPixelRect
	ldrb r0, [r6, 0x8]
	movs r1, 0x1
	orrs r5, r1
	mov r2, r9
	str r2, [sp]
	subs r1, 0x2
	str r1, [sp, 0x4]
	mov r3, r8
	lsls r3, 2
	mov r8, r3
	mov r1, sp
	add r1, r8
	adds r1, 0xC
	ldr r1, [r1]
	str r1, [sp, 0x8]
	movs r1, 0x7
	movs r2, 0x2
	adds r3, r5, 0
	bl box_print
	ldrh r0, [r6, 0x8]
	lsls r4, 1
	ldrb r1, [r6, 0x4]
	str r1, [sp]
	movs r1, 0x2
	str r1, [sp, 0x4]
	movs r2, 0
	adds r3, r4, 0
	bl CopyWindowRectToVram
	add sp, 0x1C
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8DBC

	thumb_func_start sub_81C8E54
sub_81C8E54: @ 81C8E54
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	adds r7, r1, 0
	adds r1, r2, 0
	ldrh r3, [r7, 0xA]
	ldr r2, =gUnknown_0861FBF7
	adds r2, r1, r2
	ldrb r2, [r2]
	adds r6, r3, r2
	movs r2, 0xF
	ands r6, r2
	ldrh r0, [r0]
	bl sub_81CAFD8
	adds r5, r0, 0
	cmp r5, 0
	beq _081C8EC0
	ldrh r0, [r7, 0x8]
	lsls r4, r6, 1
	ldrb r3, [r7, 0x4]
	subs r3, 0x1
	movs r1, 0x2
	mov r8, r1
	str r1, [sp]
	movs r1, 0x1
	adds r2, r4, 0
	bl sub_81DB620
	ldrb r0, [r7, 0x8]
	lsls r1, r6, 4
	movs r2, 0x1
	orrs r1, r2
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x7
	adds r2, r5, 0
	movs r3, 0x2
	bl PrintTextOnWindow
	ldrh r0, [r7, 0x8]
	ldrb r1, [r7, 0x4]
	str r1, [sp]
	mov r1, r8
	str r1, [sp, 0x4]
	movs r1, 0x2
	movs r2, 0
	adds r3, r4, 0
	bl CopyWindowRectToVram
_081C8EC0:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8E54

	thumb_func_start sub_81C8ED0
sub_81C8ED0: @ 81C8ED0
	push {r4,r5,lr}
	movs r5, 0
	ldr r4, =gUnknown_0861FBFC
_081C8ED6:
	adds r0, r4, 0
	bl LoadCompressedObjectPic
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0
	beq _081C8ED6
	ldr r0, =gUnknown_0861FC04
	bl sub_81C795C
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8ED0

	thumb_func_start sub_81C8EF8
sub_81C8EF8: @ 81C8EF8
	push {r4-r6,lr}
	mov r6, r10
	mov r5, r9
	mov r4, r8
	push {r4-r6}
	adds r4, r0, 0
	adds r5, r1, 0
	ldr r0, =gUnknown_0861FC1C
	ldrb r1, [r5, 0x2]
	lsls r1, 3
	adds r1, 0x3
	ldrb r2, [r5, 0x3]
	adds r2, 0x1
	lsls r2, 3
	movs r3, 0x7
	bl CreateSprite
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r0, r3, 4
	adds r0, r3
	lsls r0, 2
	ldr r1, =gSprites
	mov r8, r1
	add r0, r8
	str r0, [r5, 0x3C]
	ldrb r6, [r5, 0x2]
	lsls r6, 3
	ldrb r0, [r5, 0x4]
	subs r0, 0x1
	lsls r0, 2
	ldr r3, =gUnknown_0861FC3C
	mov r10, r3
	adds r6, r0
	ldrb r2, [r5, 0x3]
	lsls r2, 3
	ldrh r0, [r4, 0x8]
	lsls r0, 4
	adds r2, r0
	lsls r2, 16
	asrs r2, 16
	mov r0, r10
	adds r1, r6, 0
	movs r3, 0x7
	bl CreateSprite
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r2, r3, 4
	adds r2, r3
	lsls r2, 2
	add r2, r8
	str r2, [r5, 0x44]
	ldrh r3, [r2, 0x4]
	lsls r1, r3, 22
	lsrs r1, 22
	adds r1, 0x2
	ldr r0, =0x000003ff
	mov r9, r0
	mov r0, r9
	ands r1, r0
	ldr r4, =0xfffffc00
	adds r0, r4, 0
	ands r0, r3
	orrs r0, r1
	strh r0, [r2, 0x4]
	ldr r1, [r5, 0x44]
	ldr r0, =sub_81C90A0
	str r0, [r1, 0x1C]
	ldrb r2, [r5, 0x3]
	lsls r2, 3
	mov r0, r10
	adds r1, r6, 0
	movs r3, 0x7
	bl CreateSprite
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, r3, 4
	adds r1, r3
	lsls r1, 2
	add r1, r8
	str r1, [r5, 0x40]
	ldrh r2, [r1, 0x4]
	lsls r0, r2, 22
	lsrs r0, 22
	adds r0, 0x4
	mov r3, r9
	ands r0, r3
	ands r4, r2
	orrs r4, r0
	strh r4, [r1, 0x4]
	ldr r1, [r5, 0x40]
	ldr r0, =sub_81C90F4
	str r0, [r1, 0x1C]
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C8EF8

	thumb_func_start sub_81C8FE0
sub_81C8FE0: @ 81C8FE0
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x3C]
	bl DestroySprite
	ldr r0, [r4, 0x40]
	bl DestroySprite
	ldr r0, [r4, 0x44]
	bl DestroySprite
	movs r0, 0xA
	bl FreeSpriteTilesByTag
	movs r0, 0x14
	bl FreeSpritePaletteByTag
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C8FE0

	thumb_func_start sub_81C9008
sub_81C9008: @ 81C9008
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	cmp r4, 0
	beq _081C9028
	ldr r2, [r5, 0x3C]
	ldr r1, =SpriteCallbackDummy
	str r1, [r2, 0x1C]
	ldr r0, [r5, 0x40]
	str r1, [r0, 0x1C]
	ldr r0, [r5, 0x44]
	str r1, [r0, 0x1C]
	b _081C903A
	.pool
_081C9028:
	ldr r2, [r5, 0x3C]
	ldr r0, =sub_81C9080
	str r0, [r2, 0x1C]
	ldr r1, [r5, 0x40]
	ldr r0, =sub_81C90F4
	str r0, [r1, 0x1C]
	ldr r1, [r5, 0x44]
	ldr r0, =sub_81C90A0
	str r0, [r1, 0x1C]
_081C903A:
	adds r3, r2, 0
	adds r3, 0x3E
	movs r0, 0x1
	ands r4, r0
	lsls r4, 2
	ldrb r2, [r3]
	movs r1, 0x5
	negs r1, r1
	adds r0, r1, 0
	ands r0, r2
	orrs r0, r4
	strb r0, [r3]
	ldr r2, [r5, 0x40]
	adds r2, 0x3E
	ldrb r3, [r2]
	adds r0, r1, 0
	ands r0, r3
	orrs r0, r4
	strb r0, [r2]
	ldr r0, [r5, 0x44]
	adds r0, 0x3E
	ldrb r2, [r0]
	ands r1, r2
	orrs r1, r4
	strb r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C9008

	thumb_func_start sub_81C9080
sub_81C9080: @ 81C9080
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x11
	bl sub_81C763C
	ldr r1, =0x0000088e
	adds r0, r1
	ldrh r0, [r0]
	lsls r0, 4
	strh r0, [r4, 0x26]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C9080

	thumb_func_start sub_81C90A0
sub_81C90A0: @ 81C90A0
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0x3C
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081C90C2
	bl sub_81C84C0
	cmp r0, 0
	beq _081C90C2
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	b _081C90CC
_081C90C2:
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
_081C90CC:
	strb r0, [r2]
	ldrh r0, [r4, 0x2E]
	adds r0, 0x1
	strh r0, [r4, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3
	ble _081C90EC
	movs r0, 0
	strh r0, [r4, 0x2E]
	ldrh r0, [r4, 0x30]
	adds r0, 0x1
	movs r1, 0x7
	ands r0, r1
	strh r0, [r4, 0x30]
	strh r0, [r4, 0x26]
_081C90EC:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C90A0

	thumb_func_start sub_81C90F4
sub_81C90F4: @ 81C90F4
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0x3C
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081C9116
	bl sub_81C84A4
	cmp r0, 0
	beq _081C9116
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	b _081C9120
_081C9116:
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
_081C9120:
	strb r0, [r2]
	ldrh r0, [r4, 0x2E]
	adds r0, 0x1
	strh r0, [r4, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3
	ble _081C9142
	movs r0, 0
	strh r0, [r4, 0x2E]
	ldrh r0, [r4, 0x30]
	adds r0, 0x1
	movs r1, 0x7
	ands r0, r1
	strh r0, [r4, 0x30]
	negs r0, r0
	strh r0, [r4, 0x26]
_081C9142:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C90F4

	thumb_func_start sub_81C9148
sub_81C9148: @ 81C9148
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x11
	bl sub_81C763C
	ldr r1, [r0, 0x40]
	strh r4, [r1, 0x3C]
	ldr r0, [r0, 0x44]
	strh r4, [r0, 0x3C]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C9148

	thumb_func_start sub_81C9160
sub_81C9160: @ 81C9160
	push {r4,r5,lr}
	adds r2, r0, 0
	ldr r0, [r1]
	str r0, [r2, 0x10]
	ldrh r4, [r1, 0x6]
	movs r5, 0
	strh r4, [r2]
	ldrh r3, [r1, 0x4]
	strh r3, [r2, 0x2]
	ldrb r0, [r1, 0x8]
	str r0, [r2, 0xC]
	ldrb r1, [r1, 0xC]
	strh r1, [r2, 0x8]
	lsls r0, r3, 16
	lsrs r0, 16
	cmp r1, r0
	bcc _081C918A
	strh r5, [r2]
	strh r5, [r2, 0x4]
	strh r4, [r2, 0x6]
	b _081C91A6
_081C918A:
	subs r0, r3, r1
	strh r0, [r2, 0x4]
	ldrh r1, [r2]
	ldrh r0, [r2, 0x8]
	adds r1, r0
	ldrh r0, [r2, 0x2]
	cmp r1, r0
	ble _081C91A4
	subs r0, r1, r0
	strh r0, [r2, 0x6]
	subs r0, r4, r0
	strh r0, [r2]
	b _081C91A6
_081C91A4:
	strh r5, [r2, 0x6]
_081C91A6:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81C9160

	thumb_func_start sub_81C91AC
sub_81C91AC: @ 81C91AC
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	adds r7, r0, 0
	ldr r4, [r1]
	lsls r4, 30
	lsrs r0, r4, 30
	movs r1, 0
	mov r9, r1
	strb r0, [r7]
	strh r3, [r7, 0x6]
	ldr r0, [r2, 0x10]
	str r0, [r7, 0x34]
	ldr r0, [r2, 0x14]
	str r0, [r7, 0x38]
	ldrb r6, [r2, 0xD]
	strb r6, [r7, 0x1]
	ldrb r1, [r2, 0x9]
	strb r1, [r7, 0x2]
	ldrb r0, [r2, 0xB]
	strb r0, [r7, 0x3]
	ldrb r5, [r2, 0xA]
	strb r5, [r7, 0x4]
	ldrb r0, [r2, 0xE]
	strb r0, [r7, 0x5]
	lsrs r4, 30
	ldr r2, =0xffffff00
	mov r8, r2
	ldr r0, [sp]
	ands r0, r2
	orrs r0, r4
	lsls r1, 24
	lsrs r1, 16
	ldr r2, =0xffff00ff
	ands r0, r2
	orrs r0, r1
	ldr r1, =0xff00ffff
	ands r0, r1
	lsls r5, 24
	ldr r1, =0x00ffffff
	ands r0, r1
	orrs r0, r5
	str r0, [sp]
	ldr r0, [sp, 0x4]
	mov r1, r8
	ands r0, r1
	movs r1, 0x20
	orrs r0, r1
	lsls r6, 24
	lsrs r6, 16
	ands r0, r2
	orrs r0, r6
	adds r3, 0x2
	lsls r3, 16
	ldr r1, =0x0000ffff
	ands r0, r1
	orrs r0, r3
	str r0, [sp, 0x4]
	mov r0, sp
	bl AddWindow
	strh r0, [r7, 0x8]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0xFF
	beq _081C9258
	mov r2, r9
	strh r2, [r7, 0xA]
	mov r0, r9
	str r0, [r7, 0x3C]
	str r0, [r7, 0x40]
	str r0, [r7, 0x44]
	movs r0, 0x1
	b _081C925A
	.pool
_081C9258:
	movs r0, 0
_081C925A:
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81C91AC

	thumb_func_start sub_81C9268
sub_81C9268: @ 81C9268
	push {r4,lr}
	movs r4, 0
	movs r0, 0x98
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081C928A
	movs r4, 0x1
	ldr r0, =0x0000089b
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081C928A
	movs r4, 0x2
_081C928A:
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C9268

	thumb_func_start sub_81C9298
sub_81C9298: @ 81C9298
	push {r4,lr}
	movs r0, 0x1
	movs r1, 0x10
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081C92C4
	bl sub_81C9268
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	strh r0, [r4]
	strh r1, [r4, 0x2]
	strh r1, [r4, 0x4]
	strh r1, [r4, 0x6]
	adds r0, r4, 0
	bl sub_81C939C
	movs r0, 0x1
	b _081C92C6
_081C92C4:
	movs r0, 0
_081C92C6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C9298

	thumb_func_start sub_81C92CC
sub_81C92CC: @ 81C92CC
	push {r4,lr}
	movs r0, 0x1
	movs r1, 0x10
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081C92FA
	bl sub_81C9268
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	strh r0, [r4]
	movs r0, 0x2
	strh r0, [r4, 0x2]
	strh r0, [r4, 0x4]
	strh r1, [r4, 0x6]
	adds r0, r4, 0
	bl sub_81C939C
	movs r0, 0x1
	b _081C92FC
_081C92FA:
	movs r0, 0
_081C92FC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C92CC

	thumb_func_start sub_81C9304
sub_81C9304: @ 81C9304
	push {r4,lr}
	movs r0, 0x1
	movs r1, 0x10
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081C932E
	bl sub_81C9268
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	movs r0, 0x3
	strh r0, [r4, 0x2]
	strh r0, [r4, 0x4]
	adds r0, r4, 0
	bl sub_81C939C
	movs r0, 0x1
	b _081C9330
_081C932E:
	movs r0, 0
_081C9330:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C9304

	thumb_func_start sub_81C9338
sub_81C9338: @ 81C9338
	push {lr}
	movs r0, 0x1
	movs r1, 0x10
	bl sub_81C761C
	adds r2, r0, 0
	cmp r2, 0
	beq _081C9360
	movs r0, 0
	movs r1, 0x3
	strh r1, [r2]
	strh r0, [r2, 0x2]
	movs r1, 0x5
	strh r1, [r2, 0x4]
	strh r0, [r2, 0x6]
	adds r0, r2, 0
	bl sub_81C939C
	movs r0, 0x1
	b _081C9362
_081C9360:
	movs r0, 0
_081C9362:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9338

	thumb_func_start sub_81C9368
sub_81C9368: @ 81C9368
	push {r4,r5,lr}
	movs r0, 0x1
	movs r1, 0x10
	bl sub_81C761C
	adds r5, r0, 0
	cmp r5, 0
	beq _081C9394
	movs r4, 0
	movs r0, 0x4
	strh r0, [r5]
	bl sub_81C76AC
	strh r0, [r5, 0x2]
	adds r0, 0x8
	strh r0, [r5, 0x4]
	strh r4, [r5, 0x6]
	adds r0, r5, 0
	bl sub_81C939C
	movs r0, 0x1
	b _081C9396
_081C9394:
	movs r0, 0
_081C9396:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81C9368

	thumb_func_start sub_81C939C
sub_81C939C: @ 81C939C
	push {r4,lr}
	adds r4, r0, 0
	ldrh r0, [r4]
	cmp r0, 0x4
	bhi _081C93E0
	lsls r0, 2
	ldr r1, =_081C93B4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C93B4:
	.4byte _081C93C8
	.4byte _081C93CE
	.4byte _081C93CE
	.4byte _081C93D4
	.4byte _081C93DC
_081C93C8:
	movs r0, 0
	bl sub_81C7688
_081C93CE:
	bl sub_81C93EC
	b _081C93DE
_081C93D4:
	ldr r0, =sub_81C963C
	b _081C93DE
	.pool
_081C93DC:
	ldr r0, =sub_81C96FC
_081C93DE:
	str r0, [r4, 0xC]
_081C93E0:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C939C

	thumb_func_start sub_81C93EC
sub_81C93EC: @ 81C93EC
	push {lr}
	bl sub_81C767C
	cmp r0, 0x1
	beq _081C9408
	cmp r0, 0x1
	bcc _081C93FE
	cmp r0, 0x2
	beq _081C9410
_081C93FE:
	ldr r0, =sub_81C943C
	b _081C9412
	.pool
_081C9408:
	ldr r0, =sub_81C9520
	b _081C9412
	.pool
_081C9410:
	ldr r0, =c2_pre_battle_1
_081C9412:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C93EC

	thumb_func_start sub_81C941C
sub_81C941C: @ 81C941C
	push {lr}
	movs r0, 0x1
	bl sub_81C763C
	ldr r1, [r0, 0xC]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_81C941C

	thumb_func_start sub_81C9430
sub_81C9430: @ 81C9430
	push {lr}
	movs r0, 0x1
	bl sub_81C7650
	pop {r0}
	bx r0
	thumb_func_end sub_81C9430

	thumb_func_start sub_81C943C
sub_81C943C: @ 81C943C
	push {r4,r5,lr}
	adds r4, r0, 0
	bl sub_81C9814
	cmp r0, 0
	beq _081C944C
	movs r0, 0x1
	b _081C951A
_081C944C:
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r1
	adds r5, r2, 0
	cmp r0, 0
	beq _081C9508
	ldr r3, =gUnknown_0861FC59
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	ldrh r2, [r4]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 1
	adds r1, r0
	adds r1, r3
	ldrb r0, [r1]
	cmp r0, 0x4
	bhi _081C9508
	lsls r0, 2
	ldr r1, =_081C9488
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C9488:
	.4byte _081C949C
	.4byte _081C94BC
	.4byte _081C94D4
	.4byte _081C94E0
	.4byte _081C9516
_081C949C:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r1, [r0, 0x15]
	movs r0, 0x8
	ands r0, r1
	movs r1, 0x1
	cmp r0, 0
	beq _081C94AE
	movs r1, 0x2
_081C94AE:
	strh r1, [r4, 0x6]
	ldr r1, =0x000186a6
	b _081C94EE
	.pool
_081C94BC:
	movs r1, 0
	movs r0, 0x3
	strh r0, [r4]
	strh r1, [r4, 0x2]
	ldrb r0, [r3, 0x12]
	strh r0, [r4, 0x4]
	ldr r0, =sub_81C963C
	str r0, [r4, 0xC]
	movs r0, 0x2
	b _081C951A
	.pool
_081C94D4:
	movs r0, 0x6
	strh r0, [r4, 0x6]
	ldr r1, =0x000186ab
	b _081C94EE
	.pool
_081C94E0:
	bl sub_81C76B8
	cmp r0, 0
	beq _081C94FC
	movs r0, 0x9
	strh r0, [r4, 0x6]
	ldr r1, =0x000186ac
_081C94EE:
	adds r0, r4, 0
	bl sub_81C97B0
	movs r0, 0x8
	b _081C951A
	.pool
_081C94FC:
	ldr r0, =sub_81C9600
	str r0, [r4, 0xC]
	movs r0, 0x6
	b _081C951A
	.pool
_081C9508:
	ldrh r1, [r5, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081C9516
	movs r0, 0
	b _081C951A
_081C9516:
	movs r0, 0x1
	negs r0, r0
_081C951A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81C943C

	thumb_func_start sub_81C9520
sub_81C9520: @ 81C9520
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81C9814
	cmp r0, 0
	beq _081C9530
	movs r0, 0x1
	b _081C9580
_081C9530:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C9570
	ldr r3, =gUnknown_0861FC59
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	ldrh r2, [r4]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 1
	adds r1, r0
	adds r1, r3
	ldrb r0, [r1]
	cmp r0, 0x2
	bne _081C9578
	movs r0, 0x6
	strh r0, [r4, 0x6]
	ldr r1, =0x000186ab
	adds r0, r4, 0
	bl sub_81C97B0
	movs r0, 0x8
	b _081C9580
	.pool
_081C9570:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C957E
_081C9578:
	movs r0, 0x20
	bl PlaySE
_081C957E:
	movs r0, 0
_081C9580:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C9520

	thumb_func_start c2_pre_battle_1
c2_pre_battle_1: @ 81C9588
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81C9814
	cmp r0, 0
	beq _081C9598
	movs r0, 0x1
	b _081C95F8
_081C9598:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C95E8
	ldr r3, =gUnknown_0861FC59
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	ldrh r2, [r4]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 1
	adds r1, r0
	adds r1, r3
	ldrb r0, [r1]
	cmp r0, 0x2
	beq _081C95D4
	cmp r0, 0x4
	beq _081C95F4
	movs r0, 0x20
	bl PlaySE
	movs r0, 0
	b _081C95F8
	.pool
_081C95D4:
	movs r0, 0x6
	strh r0, [r4, 0x6]
	ldr r1, =0x000186ab
	adds r0, r4, 0
	bl sub_81C97B0
	movs r0, 0x8
	b _081C95F8
	.pool
_081C95E8:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081C95F4
	movs r0, 0
	b _081C95F8
_081C95F4:
	movs r0, 0x1
	negs r0, r0
_081C95F8:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end c2_pre_battle_1

	thumb_func_start sub_81C9600
sub_81C9600: @ 81C9600
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81C9814
	cmp r0, 0
	beq _081C9616
	bl sub_81C93EC
	str r0, [r4, 0xC]
	movs r0, 0x1
	b _081C9634
_081C9616:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081C962C
	movs r0, 0
	b _081C9634
	.pool
_081C962C:
	bl sub_81C93EC
	str r0, [r4, 0xC]
	movs r0, 0x7
_081C9634:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C9600

	thumb_func_start sub_81C963C
sub_81C963C: @ 81C963C
	push {r4-r6,lr}
	adds r4, r0, 0
	bl sub_81C9814
	adds r3, r0, 0
	cmp r3, 0
	beq _081C964E
	movs r0, 0x1
	b _081C96F6
_081C964E:
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r1
	adds r6, r2, 0
	cmp r0, 0
	beq _081C96B8
	ldr r5, =gUnknown_0861FC59
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	ldrh r2, [r4]
	lsls r1, r2, 1
	adds r1, r2
	lsls r1, 1
	adds r0, r1
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, 0x6
	beq _081C968E
	cmp r0, 0x6
	bgt _081C9688
	cmp r0, 0x5
	beq _081C96A4
	b _081C96B8
	.pool
_081C9688:
	cmp r0, 0x7
	beq _081C96E4
	b _081C96B8
_081C968E:
	movs r0, 0x4
	strh r0, [r4]
	strh r3, [r4, 0x2]
	ldrb r0, [r5, 0x18]
	strh r0, [r4, 0x4]
	ldr r0, =sub_81C96FC
	str r0, [r4, 0xC]
	movs r0, 0x4
	b _081C96F6
	.pool
_081C96A4:
	strh r3, [r4, 0x6]
	ldr r1, =0x000186a7
	adds r0, r4, 0
	bl sub_81C97B0
	movs r0, 0x8
	b _081C96F6
	.pool
_081C96B8:
	ldrh r1, [r6, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C96F4
	movs r0, 0x2
	ldrsh r2, [r4, r0]
	ldr r1, =gUnknown_0861FC54
	ldrh r0, [r4]
	adds r0, r1
	ldrb r0, [r0]
	cmp r2, r0
	beq _081C96E4
	strh r0, [r4, 0x2]
	ldr r0, =sub_81C9798
	str r0, [r4, 0xC]
	movs r0, 0x1
	b _081C96F6
	.pool
_081C96E4:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81C97C0
	movs r0, 0x3
	b _081C96F6
_081C96F4:
	movs r0, 0
_081C96F6:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81C963C

	thumb_func_start sub_81C96FC
sub_81C96FC: @ 81C96FC
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81C9814
	cmp r0, 0
	beq _081C970C
	movs r0, 0x1
	b _081C9792
_081C970C:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081C9754
	ldr r3, =gUnknown_0861FC59
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	ldrh r2, [r4]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 1
	adds r1, r0
	adds r1, r3
	ldrb r0, [r1]
	cmp r0, 0xD
	beq _081C9780
	subs r0, 0x8
	bl sub_81C7694
	ldr r1, =0x000186a8
	adds r0, r4, 0
	bl sub_81C97B0
	movs r0, 0x3
	strh r0, [r4, 0x6]
	movs r0, 0x8
	b _081C9792
	.pool
_081C9754:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081C9790
	movs r0, 0x2
	ldrsh r2, [r4, r0]
	ldr r1, =gUnknown_0861FC54
	ldrh r0, [r4]
	adds r0, r1
	ldrb r0, [r0]
	cmp r2, r0
	beq _081C9780
	strh r0, [r4, 0x2]
	ldr r0, =sub_81C97A4
	str r0, [r4, 0xC]
	movs r0, 0x1
	b _081C9792
	.pool
_081C9780:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81C97F8
	movs r0, 0x5
	b _081C9792
_081C9790:
	movs r0, 0
_081C9792:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C96FC

	thumb_func_start sub_81C9798
sub_81C9798: @ 81C9798
	push {lr}
	bl sub_81C97C0
	movs r0, 0x3
	pop {r1}
	bx r1
	thumb_func_end sub_81C9798

	thumb_func_start sub_81C97A4
sub_81C97A4: @ 81C97A4
	push {lr}
	bl sub_81C97F8
	movs r0, 0x5
	pop {r1}
	bx r1
	thumb_func_end sub_81C97A4

	thumb_func_start sub_81C97B0
sub_81C97B0: @ 81C97B0
	str r1, [r0, 0x8]
	ldr r1, =sub_81C97BC
	str r1, [r0, 0xC]
	bx lr
	.pool
	thumb_func_end sub_81C97B0

	thumb_func_start sub_81C97BC
sub_81C97BC: @ 81C97BC
	ldr r0, [r0, 0x8]
	bx lr
	thumb_func_end sub_81C97BC

	thumb_func_start sub_81C97C0
sub_81C97C0: @ 81C97C0
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81C9268
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	movs r0, 0x1
	strh r0, [r4, 0x2]
	ldr r2, =gUnknown_0861FC59
	ldrh r1, [r4]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 1
	adds r0, 0x1
	adds r0, r2
	ldrb r0, [r0]
	strh r0, [r4, 0x4]
	ldr r0, =sub_81C943C
	str r0, [r4, 0xC]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C97C0

	thumb_func_start sub_81C97F8
sub_81C97F8: @ 81C97F8
	movs r1, 0x3
	strh r1, [r0]
	movs r1, 0x1
	strh r1, [r0, 0x2]
	ldr r1, =gUnknown_0861FC59
	ldrb r1, [r1, 0x13]
	strh r1, [r0, 0x4]
	ldr r1, =sub_81C963C
	str r1, [r0, 0xC]
	bx lr
	.pool
	thumb_func_end sub_81C97F8

	thumb_func_start sub_81C9814
sub_81C9814: @ 81C9814
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x40
	ands r0, r1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0
	beq _081C9848
	ldrh r0, [r4, 0x2]
	subs r0, 0x1
	strh r0, [r4, 0x2]
	lsls r0, 16
	ldrh r3, [r4]
	cmp r0, 0
	bge _081C986A
	ldr r0, =gUnknown_0861FC54
	adds r0, r3, r0
	ldrb r0, [r0]
	strh r0, [r4, 0x2]
	b _081C986A
	.pool
_081C9848:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081C988C
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	movs r0, 0x2
	ldrsh r2, [r4, r0]
	ldr r0, =gUnknown_0861FC54
	ldrh r1, [r4]
	adds r0, r1, r0
	adds r3, r1, 0
	ldrb r0, [r0]
	cmp r2, r0
	ble _081C986A
	strh r5, [r4, 0x2]
_081C986A:
	ldr r2, =gUnknown_0861FC59
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r3, 1
	adds r0, r3
	lsls r0, 1
	adds r1, r0
	adds r1, r2
	ldrb r0, [r1]
	strh r0, [r4, 0x4]
	movs r0, 0x1
	b _081C988E
	.pool
_081C988C:
	movs r0, 0
_081C988E:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81C9814

	thumb_func_start sub_81C9894
sub_81C9894: @ 81C9894
	push {lr}
	movs r0, 0x1
	bl sub_81C763C
	ldrh r0, [r0]
	pop {r1}
	bx r1
	thumb_func_end sub_81C9894

	thumb_func_start sub_81C98A4
sub_81C98A4: @ 81C98A4
	push {lr}
	movs r0, 0x1
	bl sub_81C763C
	movs r1, 0x2
	ldrsh r0, [r0, r1]
	pop {r1}
	bx r1
	thumb_func_end sub_81C98A4

	thumb_func_start sub_81C98B4
sub_81C98B4: @ 81C98B4
	push {lr}
	movs r0, 0x1
	bl sub_81C763C
	ldrh r0, [r0, 0x4]
	pop {r1}
	bx r1
	thumb_func_end sub_81C98B4

	thumb_func_start sub_81C98C4
sub_81C98C4: @ 81C98C4
	push {lr}
	movs r0, 0x1
	bl sub_81C763C
	ldrh r0, [r0, 0x6]
	pop {r1}
	bx r1
	thumb_func_end sub_81C98C4

	thumb_func_start sub_81C98D4
sub_81C98D4: @ 81C98D4
	push {r4,lr}
	movs r4, 0
_081C98D8:
	adds r0, r4, 0
	bl sub_81CB0C8
	ldr r1, =gMapHeader
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r1, 0x14]
	cmp r0, r1
	bne _081C9914
	adds r0, r4, 0
	bl sub_81CAE08
	cmp r0, 0
	beq _081C9914
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000009ca
	adds r0, r1
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0
	beq _081C9914
	movs r0, 0x1
	b _081C991C
	.pool
_081C9914:
	adds r4, 0x1
	cmp r4, 0x4D
	ble _081C98D8
	movs r0, 0
_081C991C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81C98D4

	thumb_func_start sub_81C9924
sub_81C9924: @ 81C9924
	push {lr}
	bl sub_81C9958
	adds r1, r0, 0
	cmp r1, 0
	beq _081C9938
	movs r0, 0
	strb r0, [r1, 0xD]
	movs r0, 0x1
	b _081C993A
_081C9938:
	movs r0, 0
_081C993A:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9924

	thumb_func_start sub_81C9940
sub_81C9940: @ 81C9940
	push {lr}
	bl sub_81C9958
	adds r1, r0, 0
	cmp r1, 0
	beq _081C9952
	movs r0, 0x1
	strb r0, [r1, 0xD]
	b _081C9954
_081C9952:
	movs r0, 0
_081C9954:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9940

	thumb_func_start sub_81C9958
sub_81C9958: @ 81C9958
	push {r4,lr}
	ldr r1, =0x0000088c
	movs r0, 0x2
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081C997A
	movs r0, 0
	strb r0, [r4, 0xC]
	ldr r0, =sub_81C9A10
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81C99FC
	str r0, [r4]
_081C997A:
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81C9958

	thumb_func_start sub_81C9990
sub_81C9990: @ 81C9990
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x2
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =gUnknown_086201A0
	lsls r4, 2
	adds r4, r0
	ldr r0, [r4]
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r5, 0x4]
	ldr r0, =sub_81C99FC
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C9990

	thumb_func_start sub_81C99C0
sub_81C99C0: @ 81C99C0
	push {lr}
	movs r0, 0x2
	bl sub_81C763C
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	thumb_func_end sub_81C99C0

	thumb_func_start sub_81C99D4
sub_81C99D4: @ 81C99D4
	push {r4,lr}
	movs r0, 0x2
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81CA7F4
	ldrb r0, [r4, 0x8]
	bl RemoveWindow
	bl sub_81C9FEC
	bl sub_81CA994
	movs r0, 0x2
	bl sub_81C7650
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81C99D4

	thumb_func_start sub_81C99FC
sub_81C99FC: @ 81C99FC
	push {lr}
	movs r0, 0x2
	bl sub_81C763C
	ldr r0, [r0, 0x4]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81C99FC

	thumb_func_start sub_81C9A10
sub_81C9A10: @ 81C9A10
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r0, 0x2
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x9
	bls _081C9A24
	b _081C9C60
_081C9A24:
	lsls r0, r4, 2
	ldr r1, =_081C9A34
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081C9A34:
	.4byte _081C9A5C
	.4byte _081C9AEC
	.4byte _081C9B30
	.4byte _081C9B88
	.4byte _081C9B9E
	.4byte _081C9BA4
	.4byte _081C9BB6
	.4byte _081C9BC0
	.4byte _081C9C0E
	.4byte _081C9C4C
_081C9A5C:
	ldr r0, =gUnknown_08620194
	movs r1, 0x3
	bl sub_81C7B54
	ldr r1, =gUnknown_08DC90E0
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	adds r1, r5, 0
	adds r1, 0x8C
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, =gUnknown_08DC9130
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_08DC90C0
	movs r1, 0x10
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
_081C9AD6:
	movs r0, 0
	b _081C9C62
	.pool
_081C9AEC:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _081C9AFA
	b _081C9C5C
_081C9AFA:
	ldr r1, =gUnknown_0861FD6C
	str r0, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_0861FFF4
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =gUnknown_0861FD4C
	movs r1, 0x20
	movs r2, 0x20
	bl sub_81C7944
	b _081C9AD6
	.pool
_081C9B30:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _081C9B3E
	b _081C9C5C
_081C9B3E:
	ldr r1, =gUnknown_0861FC98
	str r0, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_0861FCAC
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =gUnknown_0861FC78
	movs r1, 0x30
	movs r2, 0x20
	bl sub_81C7944
	bl sub_81C9894
	cmp r0, 0x3
	beq _081C9B76
	bl sub_81C9894
	cmp r0, 0x4
	bne _081C9AD6
_081C9B76:
	bl sub_81CA850
	b _081C9AD6
	.pool
_081C9B88:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081C9C5C
	bl sub_81CA6E0
	bl sub_81CA7D4
_081C9B9A:
	movs r0, 0x1
	b _081C9C62
_081C9B9E:
	bl sub_81C9FC4
	b _081C9B9A
_081C9BA4:
	bl sub_81CA714
	bl sub_81CA02C
	bl sub_81CA640
	bl sub_81CA0C8
	b _081C9AD6
_081C9BB6:
	bl sub_81CA7C4
	cmp r0, 0
	bne _081C9C5C
	b _081C9B9A
_081C9BC0:
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	ldrb r0, [r5, 0xD]
	cmp r0, 0
	beq _081C9BE0
	movs r0, 0x1
	bl sub_81C7AC0
	b _081C9BEC
_081C9BE0:
	movs r0, 0x6E
	bl PlaySE
	movs r0, 0x3
	bl sub_81C7AC0
_081C9BEC:
	bl sub_81C9894
	cmp r0, 0x3
	beq _081C9BFE
	cmp r0, 0x4
	bne _081C9C06
	movs r0, 0x7
	bl sub_81C7DFC
_081C9BFE:
	movs r0, 0x1
	bl sub_81C7DFC
	b _081C9AD6
_081C9C06:
	movs r0, 0
	bl sub_81C7DFC
	b _081C9AD6
_081C9C0E:
	bl sub_81C7B34
	cmp r0, 0
	bne _081C9C5C
	bl sub_81C9894
	cmp r0, 0x3
	beq _081C9C2C
	cmp r0, 0x4
	bne _081C9C38
	movs r0, 0x7
	movs r1, 0
	movs r2, 0
	bl sub_81C7FA0
_081C9C2C:
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl sub_81C7FA0
	b _081C9C42
_081C9C38:
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl sub_81C7FA0
_081C9C42:
	bl sub_81CA20C
	bl titlescreen_0
	b _081C9B9A
_081C9C4C:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9C5C
	bl sub_81C8010
	cmp r0, 0
	beq _081C9C60
_081C9C5C:
	movs r0, 0x2
	b _081C9C62
_081C9C60:
	movs r0, 0x4
_081C9C62:
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81C9A10

	thumb_func_start sub_81C9C6C
sub_81C9C6C: @ 81C9C6C
	push {lr}
	cmp r0, 0
	beq _081C9C78
	cmp r0, 0x1
	beq _081C9C8E
	b _081C9CA2
_081C9C78:
	bl sub_81CAA3C
	bl sub_81CA278
	bl sub_81CA714
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	b _081C9CA4
_081C9C8E:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9C9E
	bl sub_81CA7C4
	cmp r0, 0
	beq _081C9CA2
_081C9C9E:
	movs r0, 0x2
	b _081C9CA4
_081C9CA2:
	movs r0, 0x4
_081C9CA4:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9C6C

	thumb_func_start sub_81C9CA8
sub_81C9CA8: @ 81C9CA8
	push {lr}
	cmp r0, 0x1
	beq _081C9CDC
	cmp r0, 0x1
	bgt _081C9CB8
	cmp r0, 0
	beq _081C9CC2
	b _081C9D3C
_081C9CB8:
	cmp r0, 0x2
	beq _081C9CFA
	cmp r0, 0x3
	beq _081C9D14
	b _081C9D3C
_081C9CC2:
	bl sub_81CA9C8
	bl sub_81CA2DC
	movs r0, 0
	movs r1, 0
	bl sub_81C7FC4
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	b _081C9D3E
_081C9CDC:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9D34
	bl sub_81C8010
	cmp r0, 0
	bne _081C9D34
	bl sub_81CA0C8
	movs r0, 0x1
	bl sub_81C7DFC
	movs r0, 0
	b _081C9D3E
_081C9CFA:
	bl sub_81CA20C
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl sub_81C7FA0
	bl sub_81CA818
	bl sub_81CA714
	movs r0, 0
	b _081C9D3E
_081C9D14:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9D34
	bl sub_81C8010
	cmp r0, 0
	bne _081C9D34
	bl sub_81CA89C
	cmp r0, 0
	bne _081C9D34
	bl sub_81CA7C4
	cmp r0, 0
	beq _081C9D38
_081C9D34:
	movs r0, 0x2
	b _081C9D3E
_081C9D38:
	bl sub_81CA9D8
_081C9D3C:
	movs r0, 0x4
_081C9D3E:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9CA8

	thumb_func_start sub_81C9D44
sub_81C9D44: @ 81C9D44
	push {lr}
	cmp r0, 0x1
	beq _081C9D72
	cmp r0, 0x1
	bgt _081C9D54
	cmp r0, 0
	beq _081C9D5E
	b _081C9DD2
_081C9D54:
	cmp r0, 0x2
	beq _081C9D90
	cmp r0, 0x3
	beq _081C9DAA
	b _081C9DD2
_081C9D5E:
	bl sub_81CA9C8
	bl sub_81CA2DC
	movs r0, 0x1
	movs r1, 0
	bl sub_81C7FC4
	movs r0, 0
	b _081C9DD4
_081C9D72:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9DCA
	bl sub_81C8010
	cmp r0, 0
	bne _081C9DCA
	bl sub_81CA0C8
	movs r0, 0
	bl sub_81C7DFC
	movs r0, 0
	b _081C9DD4
_081C9D90:
	bl sub_81CA20C
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl sub_81C7FA0
	bl sub_81CA864
	bl sub_81CA714
	movs r0, 0
	b _081C9DD4
_081C9DAA:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9DCA
	bl sub_81C8010
	cmp r0, 0
	bne _081C9DCA
	bl sub_81CA89C
	cmp r0, 0
	bne _081C9DCA
	bl sub_81CA7C4
	cmp r0, 0
	beq _081C9DCE
_081C9DCA:
	movs r0, 0x2
	b _081C9DD4
_081C9DCE:
	bl sub_81CA9D8
_081C9DD2:
	movs r0, 0x4
_081C9DD4:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9D44

	thumb_func_start sub_81C9DD8
sub_81C9DD8: @ 81C9DD8
	push {lr}
	cmp r0, 0x1
	beq _081C9E04
	cmp r0, 0x1
	bgt _081C9DE8
	cmp r0, 0
	beq _081C9DF2
	b _081C9E50
_081C9DE8:
	cmp r0, 0x2
	beq _081C9E1A
	cmp r0, 0x3
	beq _081C9E30
	b _081C9E50
_081C9DF2:
	bl sub_81CA9C8
	bl sub_81CA2DC
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	b _081C9E52
_081C9E04:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9E48
	movs r0, 0x7
	bl sub_81C7DFC
	bl sub_81CA0C8
	movs r0, 0
	b _081C9E52
_081C9E1A:
	bl sub_81CA20C
	movs r0, 0x7
	movs r1, 0
	movs r2, 0
	bl sub_81C7FA0
	bl sub_81CA714
	movs r0, 0
	b _081C9E52
_081C9E30:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9E48
	bl sub_81C8010
	cmp r0, 0
	bne _081C9E48
	bl sub_81CA89C
	cmp r0, 0
	beq _081C9E4C
_081C9E48:
	movs r0, 0x2
	b _081C9E52
_081C9E4C:
	bl sub_81CA9D8
_081C9E50:
	movs r0, 0x4
_081C9E52:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9DD8

	thumb_func_start sub_81C9E58
sub_81C9E58: @ 81C9E58
	push {lr}
	cmp r0, 0x1
	beq _081C9E86
	cmp r0, 0x1
	bgt _081C9E68
	cmp r0, 0
	beq _081C9E72
	b _081C9EC2
_081C9E68:
	cmp r0, 0x2
	beq _081C9E9E
	cmp r0, 0x3
	beq _081C9EAA
	b _081C9EC2
_081C9E72:
	bl sub_81CA9C8
	bl sub_81CA2DC
	movs r0, 0x7
	movs r1, 0
	bl sub_81C7FC4
	movs r0, 0
	b _081C9EC4
_081C9E86:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9EBA
	bl sub_81C8010
	cmp r0, 0
	bne _081C9EBA
	bl sub_81CA0C8
	movs r0, 0
	b _081C9EC4
_081C9E9E:
	bl sub_81CA20C
	bl sub_81CA714
	movs r0, 0
	b _081C9EC4
_081C9EAA:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9EBA
	bl sub_81CA89C
	cmp r0, 0
	beq _081C9EBE
_081C9EBA:
	movs r0, 0x2
	b _081C9EC4
_081C9EBE:
	bl sub_81CA9D8
_081C9EC2:
	movs r0, 0x4
_081C9EC4:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9E58

	thumb_func_start sub_81C9EC8
sub_81C9EC8: @ 81C9EC8
	push {lr}
	cmp r0, 0
	beq _081C9ED4
	cmp r0, 0x1
	beq _081C9EE2
	b _081C9EF0
_081C9ED4:
	movs r0, 0x20
	bl PlaySE
	bl sub_81CA770
	movs r0, 0
	b _081C9EF2
_081C9EE2:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081C9EF0
	movs r0, 0x2
	b _081C9EF2
_081C9EF0:
	movs r0, 0x4
_081C9EF2:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9EC8

	thumb_func_start sub_81C9EF8
sub_81C9EF8: @ 81C9EF8
	push {lr}
	cmp r0, 0
	beq _081C9F04
	cmp r0, 0x1
	beq _081C9F12
	b _081C9F20
_081C9F04:
	movs r0, 0x5
	bl PlaySE
	bl sub_81CA714
	movs r0, 0
	b _081C9F22
_081C9F12:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081C9F20
	movs r0, 0x2
	b _081C9F22
_081C9F20:
	movs r0, 0x4
_081C9F22:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9EF8

	thumb_func_start sub_81C9F28
sub_81C9F28: @ 81C9F28
	push {lr}
	cmp r0, 0x1
	beq _081C9F52
	cmp r0, 0x1
	bgt _081C9F38
	cmp r0, 0
	beq _081C9F42
	b _081C9FBC
_081C9F38:
	cmp r0, 0x2
	beq _081C9F96
	cmp r0, 0x3
	beq _081C9FB0
	b _081C9FBC
_081C9F42:
	bl sub_81C98C4
	lsls r0, 16
	lsrs r0, 16
	bl sub_81C7BA4
	movs r0, 0
	b _081C9FBE
_081C9F52:
	bl sub_81C7BE8
	cmp r0, 0
	bne _081C9FB8
	bl sub_81C7880
	bl sub_81CA9C8
	bl sub_81CA2DC
	bl sub_81C9894
	cmp r0, 0x3
	beq _081C9F7A
	cmp r0, 0x4
	bne _081C9F84
	movs r0, 0x7
	movs r1, 0
	bl sub_81C7FC4
_081C9F7A:
	movs r0, 0x1
	movs r1, 0
	bl sub_81C7FC4
	b _081C9F8C
_081C9F84:
	movs r0, 0
	movs r1, 0
	bl sub_81C7FC4
_081C9F8C:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	b _081C9FBE
_081C9F96:
	bl sub_81CA324
	cmp r0, 0
	bne _081C9FB8
	bl sub_81C8010
	cmp r0, 0
	bne _081C9FB8
	movs r0, 0
	bl sub_81C7AC0
	movs r0, 0
	b _081C9FBE
_081C9FB0:
	bl sub_81C7B34
	cmp r0, 0
	beq _081C9FBC
_081C9FB8:
	movs r0, 0x2
	b _081C9FBE
_081C9FBC:
	movs r0, 0x4
_081C9FBE:
	pop {r1}
	bx r1
	thumb_func_end sub_81C9F28

	thumb_func_start sub_81C9FC4
sub_81C9FC4: @ 81C9FC4
	push {r4,r5,lr}
	movs r5, 0
	ldr r4, =gUnknown_086201C4
_081C9FCA:
	adds r0, r4, 0
	bl LoadCompressedObjectPic
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0x1
	bls _081C9FCA
	ldr r0, =gUnknown_086201D4
	bl sub_81C795C
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81C9FC4

	thumb_func_start sub_81C9FEC
sub_81C9FEC: @ 81C9FEC
	push {lr}
	movs r0, 0x3
	bl FreeSpriteTilesByTag
	movs r0, 0x1
	bl FreeSpriteTilesByTag
	movs r0, 0x4
	bl FreeSpritePaletteByTag
	movs r0, 0x5
	bl FreeSpritePaletteByTag
	movs r0, 0x6
	bl FreeSpritePaletteByTag
	movs r0, 0x7
	bl FreeSpritePaletteByTag
	movs r0, 0x8
	bl FreeSpritePaletteByTag
	movs r0, 0x3
	bl FreeSpritePaletteByTag
	bl sub_81CA094
	bl sub_81CA698
	pop {r0}
	bx r0
	thumb_func_end sub_81C9FEC

	thumb_func_start sub_81CA02C
sub_81CA02C: @ 81CA02C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r0, 0x2
	bl sub_81C763C
	movs r2, 0
	adds r0, 0x2C
	mov r8, r0
_081CA03E:
	movs r4, 0
	lsls r0, r2, 2
	lsls r1, r2, 4
	adds r7, r2, 0x1
	adds r0, r2
	lsls r0, 18
	movs r2, 0xA0
	lsls r2, 14
	adds r5, r0, r2
	mov r0, r8
	adds r6, r1, r0
_081CA054:
	ldr r0, =gUnknown_0862034C
	movs r1, 0x8C
	asrs r2, r5, 16
	movs r3, 0x3
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	stm r6!, {r1}
	lsls r0, r4, 5
	strh r0, [r1, 0x24]
	adds r4, 0x1
	cmp r4, 0x3
	ble _081CA054
	adds r2, r7, 0
	cmp r2, 0x5
	ble _081CA03E
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA02C

	thumb_func_start sub_81CA094
sub_81CA094: @ 81CA094
	push {r4-r7,lr}
	movs r0, 0x2
	bl sub_81C763C
	movs r1, 0
	adds r7, r0, 0
	adds r7, 0x2C
_081CA0A2:
	lsls r0, r1, 4
	adds r6, r1, 0x1
	adds r4, r0, r7
	movs r5, 0x3
_081CA0AA:
	ldr r0, [r4]
	bl FreeSpriteOamMatrix
	ldm r4!, {r0}
	bl DestroySprite
	subs r5, 0x1
	cmp r5, 0
	bge _081CA0AA
	adds r1, r6, 0
	cmp r1, 0x5
	ble _081CA0A2
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA094

	thumb_func_start sub_81CA0C8
sub_81CA0C8: @ 81CA0C8
	push {lr}
	bl sub_81C9894
	lsls r2, r0, 3
	subs r2, r0
	lsls r2, 2
	ldr r1, =gUnknown_08620244
	adds r0, r2, r1
	subs r1, 0x4
	adds r2, r1
	ldrh r1, [r2]
	ldrh r2, [r2, 0x2]
	bl sub_81CA0EC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA0C8

	thumb_func_start sub_81CA0EC
sub_81CA0EC: @ 81CA0EC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	adds r6, r0, 0
	str r1, [sp, 0x14]
	str r2, [sp]
	movs r0, 0x2
	bl sub_81C763C
	mov r10, r0
	movs r0, 0x3
	bl GetSpriteTileStartByTag
	lsls r0, 16
	lsrs r0, 16
	str r0, [sp, 0x4]
	movs r1, 0
_081CA114:
	ldr r0, [r6]
	cmp r0, 0
	beq _081CA1B0
	movs r5, 0
	lsls r2, r1, 4
	mov r0, r10
	adds r0, 0x2C
	lsls r3, r1, 2
	mov r9, r3
	movs r4, 0x10
	add r4, r10
	mov r8, r4
	adds r7, r6, 0x4
	str r7, [sp, 0xC]
	ldr r3, [sp, 0x14]
	ldr r4, [sp]
	adds r3, r4
	str r3, [sp, 0x8]
	adds r1, 0x1
	str r1, [sp, 0x10]
	adds r4, r2, r0
_081CA13E:
	ldr r3, [r4]
	ldr r0, [r6]
	ldrh r2, [r0]
	ldr r7, [sp, 0x4]
	adds r2, r7
	lsls r0, r5, 3
	adds r2, r0
	ldr r1, =0x000003ff
	adds r0, r1, 0
	ands r2, r0
	ldrh r0, [r3, 0x4]
	ldr r7, =0xfffffc00
	adds r1, r7, 0
	ands r0, r1
	orrs r0, r2
	strh r0, [r3, 0x4]
	ldr r0, [r6]
	ldrh r0, [r0, 0x2]
	adds r0, 0x4
	lsls r0, 16
	lsrs r0, 16
	bl IndexOfSpritePaletteTag
	ldr r3, [r4]
	lsls r0, 4
	ldrb r2, [r3, 0x5]
	movs r1, 0xF
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0x5]
	ldr r2, [r4]
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	ldr r0, [r4]
	mov r1, sp
	ldrh r1, [r1, 0x14]
	strh r1, [r0, 0x22]
	ldr r1, [r4]
	movs r0, 0x8C
	strh r0, [r1, 0x20]
	ldm r4!, {r1}
	lsls r0, r5, 5
	strh r0, [r1, 0x24]
	adds r5, 0x1
	cmp r5, 0x3
	ble _081CA13E
	mov r1, r8
	add r1, r9
	movs r0, 0x1
	b _081CA1EC
	.pool
_081CA1B0:
	lsls r2, r1, 4
	mov r0, r10
	adds r0, 0x2C
	lsls r3, r1, 2
	mov r9, r3
	movs r4, 0x10
	add r4, r10
	mov r8, r4
	adds r6, 0x4
	str r6, [sp, 0xC]
	ldr r7, [sp, 0x14]
	ldr r3, [sp]
	adds r7, r3
	str r7, [sp, 0x8]
	adds r1, 0x1
	str r1, [sp, 0x10]
	movs r3, 0x4
	adds r2, r0
	movs r5, 0x3
_081CA1D6:
	ldm r2!, {r1}
	adds r1, 0x3E
	ldrb r0, [r1]
	orrs r0, r3
	strb r0, [r1]
	subs r5, 0x1
	cmp r5, 0
	bge _081CA1D6
	mov r1, r8
	add r1, r9
	movs r0, 0
_081CA1EC:
	str r0, [r1]
	ldr r6, [sp, 0xC]
	ldr r4, [sp, 0x8]
	str r4, [sp, 0x14]
	ldr r1, [sp, 0x10]
	cmp r1, 0x5
	ble _081CA114
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA0EC

	thumb_func_start sub_81CA20C
sub_81CA20C: @ 81CA20C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r0, 0x2
	bl sub_81C763C
	adds r6, r0, 0
	bl sub_81C98A4
	mov r8, r0
	movs r7, 0
	movs r5, 0
	adds r4, r6, 0
	adds r4, 0x2C
_081CA228:
	lsls r0, r5, 2
	adds r1, r6, 0
	adds r1, 0x10
	adds r1, r0
	ldr r0, [r1]
	cmp r0, 0
	beq _081CA25C
	adds r0, r7, 0
	adds r7, 0x1
	cmp r0, r8
	bne _081CA244
	movs r2, 0x82
	strb r5, [r6, 0xB]
	b _081CA246
_081CA244:
	movs r2, 0x8C
_081CA246:
	adds r0, r4, 0
	movs r1, 0x80
	lsls r1, 1
	movs r3, 0xC
	bl sub_81CA35C
	adds r0, r4, 0
	movs r1, 0
	bl sub_81CA448
	b _081CA264
_081CA25C:
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_81CA448
_081CA264:
	adds r4, 0x10
	adds r5, 0x1
	cmp r5, 0x5
	ble _081CA228
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA20C

	thumb_func_start sub_81CA278
sub_81CA278: @ 81CA278
	push {r4,r5,lr}
	movs r0, 0x2
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81C98A4
	adds r3, r0, 0
	movs r2, 0
	movs r5, 0
	ldr r0, [r4, 0x10]
	cmp r0, 0
	beq _081CA298
	cmp r5, r3
	beq _081CA2B2
_081CA296:
	adds r5, 0x1
_081CA298:
	adds r2, 0x1
	cmp r2, 0x5
	bgt _081CA2B2
	lsls r0, r2, 2
	adds r1, r4, 0
	adds r1, 0x10
	adds r1, r0
	ldr r0, [r1]
	cmp r0, 0
	beq _081CA298
	cmp r5, r3
	bne _081CA296
	adds r5, r2, 0
_081CA2B2:
	ldrb r0, [r4, 0xB]
	lsls r0, 4
	adds r0, 0x2C
	adds r0, r4, r0
	movs r1, 0x82
	movs r2, 0x8C
	movs r3, 0x4
	bl sub_81CA35C
	lsls r0, r5, 4
	adds r0, 0x2C
	adds r0, r4, r0
	movs r1, 0x8C
	movs r2, 0x82
	movs r3, 0x4
	bl sub_81CA35C
	strb r5, [r4, 0xB]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA278

	thumb_func_start sub_81CA2DC
sub_81CA2DC: @ 81CA2DC
	push {r4-r6,lr}
	movs r0, 0x2
	bl sub_81C763C
	adds r6, r0, 0
	movs r5, 0
	adds r4, r6, 0
	adds r4, 0x2C
_081CA2EC:
	lsls r0, r5, 2
	adds r1, r6, 0
	adds r1, 0x10
	adds r1, r0
	ldr r0, [r1]
	cmp r0, 0
	beq _081CA316
	ldrb r0, [r6, 0xB]
	cmp r0, r5
	beq _081CA310
	adds r0, r4, 0
	movs r1, 0x8C
	movs r2, 0x80
	lsls r2, 1
	movs r3, 0x8
	bl sub_81CA35C
	b _081CA316
_081CA310:
	adds r0, r4, 0
	bl sub_81CA3B4
_081CA316:
	adds r4, 0x10
	adds r5, 0x1
	cmp r5, 0x5
	ble _081CA2EC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA2DC

	thumb_func_start sub_81CA324
sub_81CA324: @ 81CA324
	push {r4,lr}
	movs r0, 0x2
	bl sub_81C763C
	adds r3, r0, 0
	movs r2, 0
	ldr r4, =SpriteCallbackDummy
	adds r1, r3, 0
	adds r1, 0x2C
_081CA336:
	ldr r0, [r1]
	ldr r0, [r0, 0x1C]
	cmp r0, r4
	bne _081CA354
	adds r1, 0x10
	adds r2, 0x1
	cmp r2, 0x5
	ble _081CA336
	ldrb r0, [r3, 0xC]
	cmp r0, 0
	bne _081CA354
	movs r0, 0
	b _081CA356
	.pool
_081CA354:
	movs r0, 0x1
_081CA356:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CA324

	thumb_func_start sub_81CA35C
sub_81CA35C: @ 81CA35C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r4, r0, 0
	adds r5, r1, 0
	mov r9, r2
	adds r6, r3, 0
	ldr r0, =sub_81CA474
	mov r8, r0
	subs r0, r2, r5
	lsls r0, 4
	adds r1, r6, 0
	bl __divsi3
	adds r3, r0, 0
	movs r1, 0x3
	lsls r2, r5, 4
_081CA380:
	ldr r0, [r4]
	strh r5, [r0, 0x20]
	ldr r0, [r4]
	strh r6, [r0, 0x2E]
	ldr r0, [r4]
	strh r3, [r0, 0x30]
	ldr r0, [r4]
	strh r2, [r0, 0x32]
	ldr r0, [r4]
	mov r7, r9
	strh r7, [r0, 0x3C]
	ldm r4!, {r0}
	mov r7, r8
	str r7, [r0, 0x1C]
	subs r1, 0x1
	cmp r1, 0
	bge _081CA380
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA35C

	thumb_func_start sub_81CA3B4
sub_81CA3B4: @ 81CA3B4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r4, r0, 0
	movs r0, 0x2
	bl sub_81C763C
	adds r7, r0, 0
	movs r5, 0
	mov r8, r5
_081CA3C8:
	ldr r2, [r4]
	ldrb r1, [r2, 0x1]
	movs r3, 0xD
	negs r3, r3
	adds r0, r3, 0
	ands r1, r0
	movs r0, 0x4
	orrs r1, r0
	strb r1, [r2, 0x1]
	ldr r2, [r4]
	ldrb r0, [r2, 0x1]
	movs r1, 0x3
	orrs r0, r1
	strb r0, [r2, 0x1]
	ldr r1, [r4]
	ldr r0, =sub_81CA4AC
	str r0, [r1, 0x1C]
	movs r6, 0x8
	strh r6, [r1, 0x2E]
	ldr r0, [r4]
	mov r1, r8
	strh r1, [r0, 0x30]
	ldr r0, [r4]
	strh r5, [r0, 0x3C]
	ldr r0, [r4]
	bl InitSpriteAffineAnim
	ldm r4!, {r0}
	movs r1, 0
	bl StartSpriteAffineAnim
	adds r5, 0x1
	cmp r5, 0x3
	ble _081CA3C8
	movs r0, 0x52
	movs r1, 0x10
	bl SetGpuReg
	ldr r0, =sub_81CA580
	movs r1, 0x3
	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 r6, [r1, 0x8]
	ldrb r0, [r7, 0xC]
	adds r0, 0x1
	strb r0, [r7, 0xC]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA3B4

	thumb_func_start sub_81CA448
sub_81CA448: @ 81CA448
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r0, 0x1
	ands r1, r0
	lsls r4, r1, 2
	movs r6, 0x5
	negs r6, r6
	movs r3, 0x3
_081CA458:
	ldm r5!, {r0}
	adds r0, 0x3E
	ldrb r2, [r0]
	adds r1, r6, 0
	ands r1, r2
	orrs r1, r4
	strb r1, [r0]
	subs r3, 0x1
	cmp r3, 0
	bge _081CA458
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA448

	thumb_func_start sub_81CA474
sub_81CA474: @ 81CA474
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2, 0x2E]
	subs r0, 0x1
	strh r0, [r2, 0x2E]
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x1
	negs r1, r1
	cmp r0, r1
	beq _081CA49A
	ldrh r0, [r2, 0x30]
	ldrh r1, [r2, 0x32]
	adds r0, r1
	strh r0, [r2, 0x32]
	lsls r0, 16
	asrs r0, 20
	strh r0, [r2, 0x20]
	b _081CA4A2
_081CA49A:
	ldrh r0, [r2, 0x3C]
	strh r0, [r2, 0x20]
	ldr r0, =SpriteCallbackDummy
	str r0, [r2, 0x1C]
_081CA4A2:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA474

	thumb_func_start sub_81CA4AC
sub_81CA4AC: @ 81CA4AC
	push {r4,r5,lr}
	adds r4, r0, 0
	ldrh r1, [r4, 0x2E]
	movs r2, 0x2E
	ldrsh r0, [r4, r2]
	cmp r0, 0
	bne _081CA574
	movs r0, 0x30
	ldrsh r5, [r4, r0]
	cmp r5, 0
	bne _081CA4E2
	adds r0, r4, 0
	movs r1, 0x1
	bl StartSpriteAffineAnim
	ldrh r0, [r4, 0x30]
	adds r0, 0x1
	strh r0, [r4, 0x30]
	movs r0, 0x80
	lsls r0, 1
	strh r0, [r4, 0x32]
	ldrh r0, [r4, 0x24]
	ldrh r1, [r4, 0x20]
	adds r0, r1
	strh r0, [r4, 0x20]
	strh r5, [r4, 0x24]
	b _081CA578
_081CA4E2:
	ldrh r0, [r4, 0x32]
	adds r0, 0x10
	strh r0, [r4, 0x32]
	movs r2, 0x32
	ldrsh r0, [r4, r2]
	asrs r1, r0, 3
	adds r0, r1, 0
	subs r0, 0x20
	lsrs r1, r0, 31
	adds r0, r1
	asrs r1, r0, 1
	movs r2, 0x3C
	ldrsh r0, [r4, r2]
	cmp r0, 0x1
	beq _081CA518
	cmp r0, 0x1
	bgt _081CA50A
	cmp r0, 0
	beq _081CA514
	b _081CA526
_081CA50A:
	cmp r0, 0x2
	beq _081CA51C
	cmp r0, 0x3
	beq _081CA520
	b _081CA526
_081CA514:
	negs r1, r1
	b _081CA520
_081CA518:
	negs r0, r1
	b _081CA524
_081CA51C:
	strh r1, [r4, 0x24]
	b _081CA526
_081CA520:
	lsls r0, r1, 1
	adds r0, r1
_081CA524:
	strh r0, [r4, 0x24]
_081CA526:
	adds r0, r4, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081CA578
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	ldrb r0, [r4, 0x3]
	lsls r0, 26
	lsrs r0, 27
	bl FreeOamMatrix
	ldrb r1, [r4, 0x1]
	lsrs r1, 6
	ldrb r2, [r4, 0x3]
	lsrs r2, 6
	adds r0, r4, 0
	movs r3, 0
	bl CalcCenterToCornerVec
	ldrb r1, [r4, 0x1]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	movs r1, 0xD
	negs r1, r1
	ands r0, r1
	strb r0, [r4, 0x1]
	ldr r0, =SpriteCallbackDummy
	str r0, [r4, 0x1C]
	b _081CA578
	.pool
_081CA574:
	subs r0, r1, 0x1
	strh r0, [r4, 0x2E]
_081CA578:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA4AC

	thumb_func_start sub_81CA580
sub_81CA580: @ 81CA580
	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
	ldrh r0, [r4]
	movs r1, 0
	ldrsh r2, [r4, r1]
	cmp r2, 0
	bne _081CA634
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	cmp r1, 0
	beq _081CA5AC
	cmp r1, 0x1
	beq _081CA5CC
	b _081CA638
	.pool
_081CA5AC:
	movs r0, 0x10
	strh r0, [r4, 0x4]
	strh r2, [r4, 0x6]
	movs r1, 0xFC
	lsls r1, 6
	movs r0, 0x50
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0x10
	bl SetGpuReg
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	b _081CA638
_081CA5CC:
	ldrh r0, [r4, 0x8]
	ands r1, r0
	cmp r1, 0
	beq _081CA5E4
	ldrh r0, [r4, 0x4]
	subs r0, 0x3
	strh r0, [r4, 0x4]
	lsls r0, 16
	cmp r0, 0
	bge _081CA5F6
	strh r2, [r4, 0x4]
	b _081CA5F6
_081CA5E4:
	ldrh r0, [r4, 0x6]
	adds r0, 0x3
	strh r0, [r4, 0x6]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x10
	ble _081CA5F6
	movs r0, 0x10
	strh r0, [r4, 0x6]
_081CA5F6:
	ldrh r1, [r4, 0x6]
	lsls r1, 8
	ldrh r0, [r4, 0x4]
	orrs r1, r0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x52
	bl SetGpuReg
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xC
	bne _081CA638
	movs r0, 0x2
	bl sub_81C763C
	ldrb r1, [r0, 0xC]
	subs r1, 0x1
	strb r1, [r0, 0xC]
	movs r1, 0x80
	lsls r1, 5
	movs r0, 0x52
	bl SetGpuReg
	adds r0, r5, 0
	bl DestroyTask
	b _081CA638
_081CA634:
	subs r0, 0x1
	strh r0, [r4]
_081CA638:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA580

	thumb_func_start sub_81CA640
sub_81CA640: @ 81CA640
	push {r4,lr}
	movs r0, 0x2
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =gUnknown_0862036C
	movs r1, 0x10
	movs r2, 0x60
	movs r3, 0x4
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r4, 0x28]
	bl sub_81C98D4
	cmp r0, 0
	beq _081CA684
	ldr r1, [r4, 0x28]
	ldr r0, =sub_81CA6AC
	str r0, [r1, 0x1C]
	b _081CA690
	.pool
_081CA684:
	ldr r0, [r4, 0x28]
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
_081CA690:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CA640

	thumb_func_start sub_81CA698
sub_81CA698: @ 81CA698
	push {lr}
	movs r0, 0x2
	bl sub_81C763C
	ldr r0, [r0, 0x28]
	bl DestroySprite
	pop {r0}
	bx r0
	thumb_func_end sub_81CA698

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

	thumb_func_start sub_81CA6E0
sub_81CA6E0: @ 81CA6E0
	push {r4,lr}
	movs r0, 0x2
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =gUnknown_086202CC
	bl AddWindow
	strh r0, [r4, 0x8]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	ldrb r0, [r4, 0x8]
	movs r1, 0x66
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x8]
	movs r1, 0x3
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA6E0

	thumb_func_start sub_81CA714
sub_81CA714: @ 81CA714
	push {r4-r6,lr}
	sub sp, 0xC
	movs r0, 0x2
	bl sub_81C763C
	adds r5, r0, 0
	bl sub_81C98B4
	ldr r1, =gUnknown_086202D4
	lsls r0, 2
	adds r0, r1
	ldr r6, [r0]
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x1
	adds r1, r6, 0
	bl GetStringWidth
	adds r4, r0, 0
	ldrb r0, [r5, 0x8]
	movs r1, 0x66
	bl FillWindowPixelBuffer
	ldrb r0, [r5, 0x8]
	movs r2, 0xC0
	subs r2, r4
	lsrs r2, 1
	lsls r2, 24
	lsrs r2, 24
	ldr r1, =gUnknown_0862030C
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x1
	bl box_print
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA714

	thumb_func_start sub_81CA770
sub_81CA770: @ 81CA770
	push {r4-r6,lr}
	sub sp, 0xC
	movs r0, 0x2
	bl sub_81C763C
	adds r5, r0, 0
	ldr r6, =gUnknown_085EBD4A
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x1
	adds r1, r6, 0
	bl GetStringWidth
	adds r4, r0, 0
	ldrb r0, [r5, 0x8]
	movs r1, 0x66
	bl FillWindowPixelBuffer
	ldrb r0, [r5, 0x8]
	movs r2, 0xC0
	subs r2, r4
	lsrs r2, 1
	lsls r2, 24
	lsrs r2, 24
	ldr r1, =gUnknown_0862030F
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x1
	bl box_print
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA770

	thumb_func_start sub_81CA7C4
sub_81CA7C4: @ 81CA7C4
	push {lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81CA7C4

	thumb_func_start sub_81CA7D4
sub_81CA7D4: @ 81CA7D4
	push {r4,lr}
	movs r0, 0x2
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, =sub_81CA808
	movs r1, 0x2
	bl CreateTask
	strb r0, [r4, 0xA]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA7D4

	thumb_func_start sub_81CA7F4
sub_81CA7F4: @ 81CA7F4
	push {lr}
	movs r0, 0x2
	bl sub_81C763C
	ldrb r0, [r0, 0xA]
	bl DestroyTask
	pop {r0}
	bx r0
	thumb_func_end sub_81CA7F4

	thumb_func_start sub_81CA808
sub_81CA808: @ 81CA808
	push {lr}
	movs r0, 0x3
	movs r1, 0x80
	movs r2, 0x1
	bl ChangeBgX
	pop {r0}
	bx r0
	thumb_func_end sub_81CA808

	thumb_func_start sub_81CA818
sub_81CA818: @ 81CA818
	push {r4,r5,lr}
	ldr r0, =sub_81CA8B0
	movs r1, 0x3
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r5, =gUnknown_0861FC7A
	adds r0, r4, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl SetWordTaskArg
	adds r5, 0xC
	adds r0, r4, 0
	movs r1, 0x3
	adds r2, r5, 0
	bl SetWordTaskArg
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA818

	thumb_func_start sub_81CA850
sub_81CA850: @ 81CA850
	push {lr}
	ldr r0, =gUnknown_0861FC86
	movs r1, 0x31
	movs r2, 0x4
	bl sub_81C7944
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA850

	thumb_func_start sub_81CA864
sub_81CA864: @ 81CA864
	push {r4,r5,lr}
	ldr r0, =sub_81CA8B0
	movs r1, 0x3
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r5, =gUnknown_0861FC86
	adds r0, r4, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl SetWordTaskArg
	subs r5, 0xC
	adds r0, r4, 0
	movs r1, 0x3
	adds r2, r5, 0
	bl SetWordTaskArg
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA864

	thumb_func_start sub_81CA89C
sub_81CA89C: @ 81CA89C
	push {lr}
	ldr r0, =sub_81CA8B0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CA89C

	thumb_func_start sub_81CA8B0
sub_81CA8B0: @ 81CA8B0
	push {r4-r6,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r4, r6, 2
	adds r4, r6
	lsls r4, 3
	ldr r0, =gTasks + 0x8
	adds r4, r0
	adds r0, r6, 0
	movs r1, 0x1
	bl GetWordTaskArg
	adds r5, r0, 0
	adds r0, r6, 0
	movs r1, 0x3
	bl GetWordTaskArg
	adds r1, r0, 0
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	lsls r0, 16
	asrs r0, 16
	str r0, [sp]
	add r0, sp, 0x8
	str r0, [sp, 0x4]
	adds r0, r5, 0
	movs r2, 0x2
	movs r3, 0xC
	bl sub_81C79BC
	add r0, sp, 0x8
	movs r1, 0x31
	movs r2, 0x4
	bl LoadPalette
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0xC
	bne _081CA908
	adds r0, r6, 0
	bl DestroyTask
_081CA908:
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA8B0

	thumb_func_start sub_81CA914
sub_81CA914: @ 81CA914
	push {lr}
	bl TransferPlttBuffer
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl sub_80BA0A8
	pop {r0}
	bx r0
	thumb_func_end sub_81CA914

	thumb_func_start titlescreen_0
titlescreen_0: @ 81CA92C
	push {lr}
	movs r0, 0x50
	movs r1, 0x90
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	movs r1, 0x80
	lsls r1, 6
	movs r0, 0
	bl SetGpuRegBits
	movs r0, 0x48
	movs r1, 0x3F
	bl SetGpuRegBits
	movs r0, 0x4A
	movs r1, 0x1F
	bl SetGpuRegBits
	movs r0, 0x44
	movs r1, 0xA0
	bl SetGpuRegBits
	bl remove_some_task
	bl sub_81CAA3C
	ldr r2, =gUnknown_08620384
	ldr r0, [r2]
	ldr r1, [r2, 0x4]
	ldr r2, [r2, 0x8]
	bl sub_80BA038
	ldr r0, =sub_81CA914
	bl c3args_set_0toR1_1to0
	ldr r0, =sub_81CA9EC
	movs r1, 0x3
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end titlescreen_0

	thumb_func_start sub_81CA994
sub_81CA994: @ 81CA994
	push {lr}
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r1, 0x80
	lsls r1, 6
	movs r0, 0
	bl ClearGpuRegBits
	bl remove_some_task
	ldr r0, =sub_81CA9EC
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	bl sub_81C760C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA994

	thumb_func_start sub_81CA9C8
sub_81CA9C8: @ 81CA9C8
	push {lr}
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	pop {r0}
	bx r0
	thumb_func_end sub_81CA9C8

	thumb_func_start sub_81CA9D8
sub_81CA9D8: @ 81CA9D8
	push {lr}
	bl sub_81CAA3C
	movs r0, 0x50
	movs r1, 0x90
	bl SetGpuReg
	pop {r0}
	bx r0
	thumb_func_end sub_81CA9D8

	thumb_func_start sub_81CA9EC
sub_81CA9EC: @ 81CA9EC
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r2, r1, r0
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	cmp r0, 0
	ble _081CAA30
	movs r0, 0
	strh r0, [r2]
	ldrh r0, [r2, 0x2]
	adds r0, 0x3
	movs r1, 0x7F
	ands r0, r1
	strh r0, [r2, 0x2]
	ldr r1, =gSineTable
	movs r3, 0x2
	ldrsh r0, [r2, r3]
	lsls r0, 1
	adds r0, r1
	ldrh r1, [r0]
	lsls r1, 16
	asrs r1, 21
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x54
	bl SetGpuReg
_081CAA30:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CA9EC

	thumb_func_start sub_81CAA3C
sub_81CAA3C: @ 81CAA3C
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x8
	bl sub_81C9894
	adds r4, r0, 0
	bl sub_81C98A4
	ldr r2, =gUnknown_08620240
	lsls r1, r4, 3
	subs r1, r4
	lsls r1, 2
	adds r1, r2
	ldrh r2, [r1, 0x2]
	adds r4, r2, 0
	muls r4, r0
	ldrh r1, [r1]
	adds r4, r1
	subs r4, 0x8
	mov r0, sp
	movs r6, 0
	strh r6, [r0]
	ldr r5, =gUnknown_02038C28
	ldr r0, =0x010000a0
	mov r8, r0
	mov r0, sp
	adds r1, r5, 0
	mov r2, r8
	bl CpuSet
	mov r0, sp
	adds r0, 0x2
	strh r6, [r0]
	movs r1, 0xF0
	lsls r1, 3
	adds r1, r5
	mov r9, r1
	mov r2, r8
	bl CpuSet
	add r0, sp, 0x4
	ldr r1, =0x000072f0
	adds r6, r1, 0
	strh r6, [r0]
	lsls r4, 1
	adds r5, r4, r5
	ldr r1, =0x01000010
	mov r8, r1
	adds r1, r5, 0
	mov r2, r8
	bl CpuSet
	mov r0, sp
	adds r0, 0x6
	strh r6, [r0]
	add r4, r9
	adds r1, r4, 0
	mov r2, r8
	bl CpuSet
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CAA3C

	thumb_func_start sub_81CAADC
sub_81CAADC: @ 81CAADC
	push {lr}
	bl sub_81CA9C8
	pop {r0}
	bx r0
	thumb_func_end sub_81CAADC

	thumb_func_start sub_81CAAE8
sub_81CAAE8: @ 81CAAE8
	push {r4,lr}
	movs r1, 0xD4
	lsls r1, 1
	movs r0, 0x5
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CAB1C
	ldr r0, =sub_81CAB44
	str r0, [r4, 0x18]
	movs r0, 0
	strh r0, [r4, 0x8]
	str r0, [r4, 0x10]
	ldr r0, =sub_81CAD20
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x14]
	movs r0, 0x1
	b _081CAB1E
	.pool
_081CAB1C:
	movs r0, 0
_081CAB1E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CAAE8

	thumb_func_start sub_81CAB24
sub_81CAB24: @ 81CAB24
	push {lr}
	movs r0, 0x5
	bl sub_81C763C
	ldr r1, [r0, 0x18]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_81CAB24

	thumb_func_start sub_81CAB38
sub_81CAB38: @ 81CAB38
	push {lr}
	movs r0, 0x5
	bl sub_81C7650
	pop {r0}
	bx r0
	thumb_func_end sub_81CAB38

	thumb_func_start sub_81CAB44
sub_81CAB44: @ 81CAB44
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r3, =gMain
	ldrh r1, [r3, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081CAB5C
	movs r0, 0x2
	b _081CABF4
	.pool
_081CAB5C:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081CAB68
	movs r0, 0x1
	b _081CABF4
_081CAB68:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081CAB74
	movs r0, 0x4
	b _081CABF4
_081CAB74:
	movs r0, 0x10
	ands r0, r1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0
	beq _081CAB84
	movs r0, 0x3
	b _081CABF4
_081CAB84:
	ldrh r1, [r3, 0x2E]
	movs r5, 0x1
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0
	beq _081CABD0
	ldr r0, =sub_81CAC04
	str r0, [r4, 0x18]
	strh r2, [r4]
	bl sub_81C875C
	lsls r0, 2
	adds r1, r4, r0
	ldrb r0, [r1, 0x1C]
	cmp r0, 0
	beq _081CABAE
	ldrh r0, [r1, 0x1E]
	bl sub_81D17E8
	cmp r0, 0
	beq _081CABC0
_081CABAE:
	ldr r0, =gUnknown_0862250A
	str r0, [r4, 0x4]
	movs r0, 0x2
	strh r0, [r4, 0x2]
	b _081CABC6
	.pool
_081CABC0:
	ldr r0, =gUnknown_08622508
	str r0, [r4, 0x4]
	strh r5, [r4, 0x2]
_081CABC6:
	movs r0, 0x5
	b _081CABF4
	.pool
_081CABD0:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081CABF2
	bl sub_81C767C
	cmp r0, 0x1
	beq _081CABEC
	ldr r0, =sub_81CABFC
	str r0, [r4, 0x18]
	movs r0, 0xF
	b _081CABF4
	.pool
_081CABEC:
	movs r0, 0x20
	bl PlaySE
_081CABF2:
	movs r0, 0
_081CABF4:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CAB44

	thumb_func_start sub_81CABFC
sub_81CABFC: @ 81CABFC
	ldr r0, =0x000186a4
	bx lr
	.pool
	thumb_func_end sub_81CABFC

	thumb_func_start sub_81CAC04
sub_81CAC04: @ 81CAC04
	push {r4,lr}
	adds r4, r0, 0
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081CAC24
	ldrh r0, [r4]
	cmp r0, 0
	beq _081CAC24
	subs r0, 0x1
	b _081CAC38
	.pool
_081CAC24:
	ldrh r1, [r2, 0x2E]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081CAC3E
	ldrh r0, [r4]
	ldrh r1, [r4, 0x2]
	cmp r0, r1
	bcs _081CAC3E
	adds r0, 0x1
_081CAC38:
	strh r0, [r4]
	movs r0, 0x6
	b _081CACAC
_081CAC3E:
	ldrh r1, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081CAC98
	ldrh r1, [r4]
	ldr r0, [r4, 0x4]
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081CAC8C
	cmp r0, 0x1
	bgt _081CAC5E
	cmp r0, 0
	beq _081CAC64
	b _081CAC98
_081CAC5E:
	cmp r0, 0x2
	bne _081CAC98
	b _081CACA6
_081CAC64:
	bl sub_81C767C
	cmp r0, 0x1
	bne _081CAC72
	movs r0, 0x2
	bl sub_81C7688
_081CAC72:
	ldr r0, =sub_81CACF8
	str r0, [r4, 0x18]
	bl sub_81CB1D0
	cmp r0, 0
	beq _081CAC88
	movs r0, 0x9
	b _081CACAC
	.pool
_081CAC88:
	movs r0, 0x8
	b _081CACAC
_081CAC8C:
	ldr r0, =sub_81CACB8
	str r0, [r4, 0x18]
	movs r0, 0xB
	b _081CACAC
	.pool
_081CAC98:
	ldrh r1, [r2, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081CACA6
	movs r0, 0
	b _081CACAC
_081CACA6:
	ldr r0, =sub_81CAB44
	str r0, [r4, 0x18]
	movs r0, 0x7
_081CACAC:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CAC04

	thumb_func_start sub_81CACB8
sub_81CACB8: @ 81CACB8
	push {lr}
	adds r3, r0, 0
	ldr r2, =gMain
	ldrh r1, [r2, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081CACD0
	movs r0, 0xC
	b _081CACF0
	.pool
_081CACD0:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081CACDC
	movs r0, 0xD
	b _081CACF0
_081CACDC:
	ldrh r1, [r2, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081CACEA
	movs r0, 0
	b _081CACF0
_081CACEA:
	ldr r0, =sub_81CAB44
	str r0, [r3, 0x18]
	movs r0, 0xE
_081CACF0:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CACB8

	thumb_func_start sub_81CACF8
sub_81CACF8: @ 81CACF8
	push {lr}
	adds r2, r0, 0
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081CAD10
	movs r0, 0
	b _081CAD16
	.pool
_081CAD10:
	ldr r0, =sub_81CAB44
	str r0, [r2, 0x18]
	movs r0, 0xA
_081CAD16:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CACF8

	thumb_func_start sub_81CAD20
sub_81CAD20: @ 81CAD20
	push {r4-r7,lr}
	adds r5, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	adds r4, r0, 0
	cmp r5, 0x1
	beq _081CAD4C
	cmp r5, 0x1
	bgt _081CAD3A
	cmp r5, 0
	beq _081CAD44
	b _081CAE00
_081CAD3A:
	cmp r5, 0x2
	beq _081CAD9C
	cmp r5, 0x3
	beq _081CADFC
	b _081CAE00
_081CAD44:
	strh r5, [r4, 0x8]
	strh r5, [r4, 0xA]
_081CAD48:
	movs r0, 0x1
	b _081CAE02
_081CAD4C:
	movs r6, 0
	ldrh r5, [r4, 0x8]
_081CAD50:
	adds r0, r5, 0
	bl sub_81D15F4
	cmp r0, 0
	beq _081CAD80
	ldrh r0, [r4, 0xA]
	lsls r0, 2
	adds r0, r4, r0
	strh r5, [r0, 0x1E]
	ldrh r0, [r4, 0xA]
	lsls r0, 2
	adds r0, r4, r0
	movs r1, 0x1
	strb r1, [r0, 0x1C]
	adds r0, r5, 0
	bl sub_81D16DC
	ldrh r1, [r4, 0xA]
	lsls r1, 2
	adds r1, r4, r1
	strb r0, [r1, 0x1D]
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
_081CAD80:
	ldrh r0, [r4, 0x8]
	adds r1, r0, 0x1
	movs r2, 0
	strh r1, [r4, 0x8]
	lsls r0, r1, 16
	lsrs r0, 16
	cmp r0, 0x14
	bhi _081CADF6
	adds r6, 0x1
	adds r5, 0x1
	cmp r6, 0x1D
	ble _081CAD50
	movs r0, 0x3
	b _081CAE02
_081CAD9C:
	movs r6, 0
	ldrh r5, [r4, 0x8]
	movs r7, 0
_081CADA2:
	ldrh r0, [r4, 0x8]
	bl sub_81D1BF8
	cmp r0, 0
	bne _081CADDC
	ldrh r0, [r4, 0x8]
	bl sub_81CAE08
	cmp r0, 0
	beq _081CADDC
	ldrh r0, [r4, 0xA]
	lsls r0, 2
	adds r0, r4, r0
	ldrh r1, [r4, 0x8]
	strh r1, [r0, 0x1E]
	ldrh r0, [r4, 0xA]
	lsls r0, 2
	adds r0, r4, r0
	strb r7, [r0, 0x1C]
	adds r0, r5, 0
	bl sub_81CB0C8
	ldrh r1, [r4, 0xA]
	lsls r1, 2
	adds r1, r4, r1
	strb r0, [r1, 0x1D]
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
_081CADDC:
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x4D
	bhi _081CAD48
	adds r6, 0x1
	adds r5, 0x1
	cmp r6, 0x1D
	ble _081CADA2
	movs r0, 0x3
	b _081CAE02
_081CADF6:
	strh r1, [r4, 0xC]
	strh r2, [r4, 0x8]
	b _081CAD48
_081CADFC:
	movs r0, 0x1
	str r0, [r4, 0x10]
_081CAE00:
	movs r0, 0x4
_081CAE02:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81CAD20

	thumb_func_start sub_81CAE08
sub_81CAE08: @ 81CAE08
	push {lr}
	cmp r0, 0x4D
	ble _081CAE12
	movs r0, 0
	b _081CAE24
_081CAE12:
	movs r1, 0xAE
	lsls r1, 1
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
_081CAE24:
	pop {r1}
	bx r1
	thumb_func_end sub_81CAE08

	thumb_func_start sub_81CAE28
sub_81CAE28: @ 81CAE28
	push {lr}
	movs r0, 0x5
	bl sub_81C763C
	ldr r0, [r0, 0x10]
	pop {r1}
	bx r1
	thumb_func_end sub_81CAE28

	thumb_func_start sub_81CAE38
sub_81CAE38: @ 81CAE38
	push {lr}
	movs r0, 0x5
	bl sub_81C763C
	ldrh r0, [r0, 0xA]
	pop {r1}
	bx r1
	thumb_func_end sub_81CAE38

	thumb_func_start sub_81CAE48
sub_81CAE48: @ 81CAE48
	push {lr}
	movs r0, 0x5
	bl sub_81C763C
	ldrh r0, [r0, 0xC]
	pop {r1}
	bx r1
	thumb_func_end sub_81CAE48

	thumb_func_start sub_81CAE58
sub_81CAE58: @ 81CAE58
	push {lr}
	movs r0, 0x5
	bl sub_81C763C
	adds r1, r0, 0
	ldrh r0, [r1, 0xA]
	ldrh r1, [r1, 0xC]
	subs r0, r1
	pop {r1}
	bx r1
	thumb_func_end sub_81CAE58

	thumb_func_start sub_81CAE6C
sub_81CAE6C: @ 81CAE6C
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	adds r1, r0, 0
	ldrh r0, [r1, 0xC]
	adds r4, r0
	ldrh r0, [r1, 0xA]
	cmp r4, r0
	bge _081CAE8A
	lsls r0, r4, 2
	adds r0, r1, r0
	ldrh r0, [r0, 0x1E]
	b _081CAE8C
_081CAE8A:
	movs r0, 0x4E
_081CAE8C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CAE6C

	thumb_func_start sub_81CAE94
sub_81CAE94: @ 81CAE94
	push {lr}
	movs r0, 0x5
	bl sub_81C763C
	adds r0, 0x1C
	pop {r1}
	bx r1
	thumb_func_end sub_81CAE94

	thumb_func_start sub_81CAEA4
sub_81CAEA4: @ 81CAEA4
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	lsls r4, 2
	adds r0, r4
	ldrb r0, [r0, 0x1D]
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CAEA4

	thumb_func_start sub_81CAEBC
sub_81CAEBC: @ 81CAEBC
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	lsls r1, r4, 2
	adds r1, r0, r1
	ldrb r0, [r1, 0x1C]
	cmp r0, 0
	bne _081CAED4
	ldrh r4, [r1, 0x1E]
	b _081CAEDC
_081CAED4:
	ldrh r0, [r1, 0x1E]
	bl sub_81D1854
	adds r4, r0, 0
_081CAEDC:
	cmp r4, 0x4E
	beq _081CAEFC
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000009ca
	adds r0, r1
	adds r0, r4
	ldrb r1, [r0]
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	b _081CAEFE
	.pool
_081CAEFC:
	movs r0, 0
_081CAEFE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CAEBC

	thumb_func_start sub_81CAF04
sub_81CAF04: @ 81CAF04
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	lsls r1, r4, 2
	adds r1, r0, r1
	ldrb r0, [r1, 0x1C]
	cmp r0, 0
	bne _081CAF34
	ldrh r0, [r1, 0x1E]
	bl sub_81D15BC
	adds r4, r0, 0
	ldr r1, =gTrainers
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldrb r0, [r0, 0x3]
	b _081CAF6C
	.pool
_081CAF34:
	ldrh r5, [r1, 0x1E]
	adds r0, r5, 0
	bl sub_81D1854
	adds r4, r0, 0
	cmp r4, 0x4E
	bne _081CAF58
	adds r0, r5, 0
	bl sub_81D1BD0
	adds r4, r0, 0
	ldr r0, =gUnknown_0831F578
	adds r0, r4, r0
	ldrb r0, [r0]
	b _081CAF6C
	.pool
_081CAF58:
	adds r0, r4, 0
	bl sub_81D15BC
	adds r4, r0, 0
	ldr r0, =gTrainers
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldrb r0, [r1, 0x3]
_081CAF6C:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CAF04

	thumb_func_start sub_81CAF78
sub_81CAF78: @ 81CAF78
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	movs r0, 0x5
	bl sub_81C763C
	adds r4, r0, 0
	movs r0, 0
	strb r0, [r6]
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x17]
	bl is_light_level_1_2_3_or_6
	lsls r0, 24
	cmp r0, 0
	bne _081CAFA4
	ldr r0, =gUnknown_085EEB0B
	b _081CAFCE
	.pool
_081CAFA4:
	lsls r0, r5, 2
	adds r1, r4, r0
	ldrb r0, [r1, 0x1C]
	cmp r0, 0
	bne _081CAFC4
	ldrh r0, [r1, 0x1E]
	bl sub_81D15BC
	ldr r1, =gStringVar4
	bl sub_81967AC
	strb r0, [r6]
	b _081CAFCC
	.pool
_081CAFC4:
	ldrh r0, [r1, 0x1E]
	ldr r1, =gStringVar4
	bl sub_81D189C
_081CAFCC:
	ldr r0, =gStringVar4
_081CAFCE:
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CAF78

	thumb_func_start sub_81CAFD8
sub_81CAFD8: @ 81CAFD8
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	movs r0, 0x5
	bl sub_81C763C
	lsls r4, 2
	adds r4, r0, r4
	ldrb r0, [r4, 0x1C]
	cmp r0, 0
	beq _081CB004
	ldrh r0, [r4, 0x1E]
	bl sub_81D1854
	adds r1, r0, 0
	cmp r1, 0x4E
	bne _081CB006
	ldrh r0, [r4, 0x1E]
	adds r1, r5, 0
	bl sub_81D1B40
	b _081CB012
_081CB004:
	ldrh r1, [r4, 0x1E]
_081CB006:
	ldr r2, =gUnknown_08622028
	lsls r0, r5, 2
	lsls r1, 4
	adds r0, r1
	adds r0, r2
	ldr r0, [r0]
_081CB012:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CAFD8

	thumb_func_start sub_81CB01C
sub_81CB01C: @ 81CB01C
	push {lr}
	movs r0, 0x5
	bl sub_81C763C
	ldrh r0, [r0]
	pop {r1}
	bx r1
	thumb_func_end sub_81CB01C

	thumb_func_start sub_81CB02C
sub_81CB02C: @ 81CB02C
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	adds r1, r0, 0
	ldrh r0, [r1, 0x2]
	cmp r0, r4
	blt _081CB046
	ldr r0, [r1, 0x4]
	adds r0, r4
	ldrb r0, [r0]
	b _081CB048
_081CB046:
	movs r0, 0x3
_081CB048:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB02C

	thumb_func_start sub_81CB050
sub_81CB050: @ 81CB050
	push {r4,lr}
	sub sp, 0x8
	adds r2, r0, 0
	adds r4, r1, 0
	ldrb r0, [r2]
	cmp r0, 0
	bne _081CB088
	ldrh r0, [r2, 0x2]
	bl sub_81D15BC
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTrainers
	adds r1, r0
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	muls r0, r2
	ldr r2, =gTrainerClassNames
	adds r0, r2
	str r0, [sp]
	adds r1, 0x4
	str r1, [sp, 0x4]
	b _081CB092
	.pool
_081CB088:
	ldrh r0, [r2, 0x2]
	add r2, sp, 0x4
	mov r1, sp
	bl sub_81D1A78
_081CB092:
	ldr r2, [sp]
	cmp r2, 0
	beq _081CB0B4
	ldr r0, [sp, 0x4]
	cmp r0, 0
	beq _081CB0B4
	adds r0, r4, 0
	movs r1, 0x7
	movs r3, 0x45
	bl sub_81DB494
	ldr r2, [sp, 0x4]
	movs r1, 0x7
	movs r3, 0x33
	bl sub_81DB494
	b _081CB0C0
_081CB0B4:
	adds r0, r4, 0
	movs r1, 0x7
	movs r2, 0
	movs r3, 0x78
	bl sub_81DB494
_081CB0C0:
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CB050

	thumb_func_start sub_81CB0C8
sub_81CB0C8: @ 81CB0C8
	push {lr}
	ldr r1, =gUnknown_085500A4
	lsls r0, 4
	adds r0, r1
	ldrh r2, [r0, 0xA]
	ldrh r1, [r0, 0xC]
	adds r0, r2, 0
	bl get_mapheader_by_bank_and_number
	ldrb r0, [r0, 0x14]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CB0C8

	thumb_func_start sub_81CB0E4
sub_81CB0E4: @ 81CB0E4
	push {r4-r7,lr}
	adds r5, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	adds r7, r0, 0
	movs r6, 0x1
	adds r5, 0x1
	ldrh r0, [r7, 0xA]
	cmp r5, r0
	bge _081CB120
	lsls r0, r5, 2
	adds r0, 0x1C
	adds r4, r0, r7
_081CB100:
	ldrb r0, [r4]
	cmp r0, 0
	beq _081CB110
	ldrh r0, [r4, 0x2]
	bl sub_81D17E8
	cmp r0, 0
	beq _081CB114
_081CB110:
	adds r0, r6, 0
	b _081CB122
_081CB114:
	adds r6, 0x1
	adds r4, 0x4
	adds r5, 0x1
	ldrh r0, [r7, 0xA]
	cmp r5, r0
	blt _081CB100
_081CB120:
	movs r0, 0
_081CB122:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB0E4

	thumb_func_start sub_81CB128
sub_81CB128: @ 81CB128
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r0, 0x5
	bl sub_81C763C
	adds r1, r0, 0
	movs r6, 0x1
	negs r6, r6
	subs r5, 0x1
	cmp r5, 0
	blt _081CB162
	lsls r0, r5, 2
	adds r0, 0x1C
	adds r4, r0, r1
_081CB144:
	ldrb r0, [r4]
	cmp r0, 0
	beq _081CB154
	ldrh r0, [r4, 0x2]
	bl sub_81D17E8
	cmp r0, 0
	beq _081CB158
_081CB154:
	adds r0, r6, 0
	b _081CB164
_081CB158:
	subs r6, 0x1
	subs r4, 0x4
	subs r5, 0x1
	cmp r5, 0
	bge _081CB144
_081CB162:
	movs r0, 0
_081CB164:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB128

	thumb_func_start sub_81CB16C
sub_81CB16C: @ 81CB16C
	push {r4,lr}
	movs r4, 0
_081CB170:
	adds r0, r4, 0
	bl sub_81CAE08
	cmp r0, 0
	beq _081CB18A
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000009ca
	adds r0, r1
	adds r0, r4
	ldrb r0, [r0]
	cmp r0, 0
	bne _081CB1B2
_081CB18A:
	adds r4, 0x1
	cmp r4, 0x4D
	ble _081CB170
	movs r4, 0
_081CB192:
	adds r0, r4, 0
	bl sub_81D15F4
	cmp r0, 0
	beq _081CB1C0
	adds r0, r4, 0
	bl sub_81D1854
	ldr r1, =gSaveBlock1Ptr
	ldr r1, [r1]
	ldr r2, =0x000009ca
	adds r1, r2
	adds r1, r0
	ldrb r0, [r1]
	cmp r0, 0
	beq _081CB1C0
_081CB1B2:
	movs r0, 0x1
	b _081CB1C8
	.pool
_081CB1C0:
	adds r4, 0x1
	cmp r4, 0x14
	ble _081CB192
	movs r0, 0
_081CB1C8:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB16C

	thumb_func_start sub_81CB1D0
sub_81CB1D0: @ 81CB1D0
	push {r4,lr}
	movs r0, 0x5
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81C875C
	adds r1, r0, 0
	lsls r0, r1, 2
	adds r4, r0
	ldrb r0, [r4, 0x1C]
	cmp r0, 0
	bne _081CB218
	adds r0, r1, 0
	bl sub_81CAEA4
	ldr r1, =gMapHeader
	lsls r0, 16
	lsrs r0, 16
	ldrb r1, [r1, 0x14]
	cmp r0, r1
	bne _081CB258
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000009ca
	adds r0, r1
	ldrh r4, [r4, 0x1E]
	adds r0, r4
	ldrb r0, [r0]
	b _081CB246
	.pool
_081CB218:
	ldrh r0, [r4, 0x1E]
	cmp r0, 0xB
	bne _081CB258
	adds r0, r1, 0
	bl sub_81CAEA4
	ldr r1, =gMapHeader
	lsls r0, 16
	lsrs r0, 16
	ldrb r1, [r1, 0x14]
	cmp r0, r1
	bne _081CB258
	ldr r0, =0x0000086b
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081CB258
	movs r0, 0x5B
	bl FlagGet
	lsls r0, 24
_081CB246:
	cmp r0, 0
	bne _081CB258
	movs r0, 0x1
	b _081CB25A
	.pool
_081CB258:
	movs r0, 0
_081CB25A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB1D0

	thumb_func_start sub_81CB260
sub_81CB260: @ 81CB260
	push {r4,lr}
	ldr r1, =0x00002048
	movs r0, 0x6
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CB294
	movs r0, 0
	strb r0, [r4, 0x19]
	ldr r0, =sub_81CB324
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81CB310
	str r0, [r4]
	movs r0, 0x1
	b _081CB296
	.pool
_081CB294:
	movs r0, 0
_081CB296:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB260

	thumb_func_start sub_81CB29C
sub_81CB29C: @ 81CB29C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =gUnknown_08622798
	lsls r4, 2
	adds r4, r0
	ldr r0, [r4]
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r5, 0x4]
	ldr r0, =sub_81CB310
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CB29C

	thumb_func_start sub_81CB2CC
sub_81CB2CC: @ 81CB2CC
	push {lr}
	movs r0, 0x6
	bl sub_81C763C
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	thumb_func_end sub_81CB2CC

	thumb_func_start sub_81CB2E0
sub_81CB2E0: @ 81CB2E0
	push {r4,lr}
	movs r0, 0x6
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81CC2B4
	bl sub_81CBC1C
	ldrb r0, [r4, 0x12]
	bl RemoveWindow
	ldrb r0, [r4, 0x10]
	bl RemoveWindow
	ldrb r0, [r4, 0x14]
	bl RemoveWindow
	movs r0, 0x6
	bl sub_81C7650
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CB2E0

	thumb_func_start sub_81CB310
sub_81CB310: @ 81CB310
	push {lr}
	movs r0, 0x6
	bl sub_81C763C
	ldr r0, [r0, 0x4]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81CB310

	thumb_func_start sub_81CB324
sub_81CB324: @ 81CB324
	push {r4,r5,lr}
	sub sp, 0x8
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x7
	bls _081CB338
	b _081CB504
_081CB338:
	lsls r0, r4, 2
	ldr r1, =_081CB348
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CB348:
	.4byte _081CB368
	.4byte _081CB3D4
	.4byte _081CB424
	.4byte _081CB468
	.4byte _081CB482
	.4byte _081CB494
	.4byte _081CB4A6
	.4byte _081CB4EA
_081CB368:
	ldr r0, =gUnknown_0862278C
	movs r1, 0x3
	bl sub_81C7B54
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldr r1, =gUnknown_08622530
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =0x00001024
	adds r1, r5, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	ldr r1, =gUnknown_086225D4
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_08622510
	movs r1, 0x20
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0x2
	b _081CB418
	.pool
_081CB3D4:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _081CB3E0
	b _081CB4FA
_081CB3E0:
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_8199DF0
	adds r1, r5, 0
	adds r1, 0x24
	movs r0, 0x1
	bl SetBgTilemapBuffer
	movs r1, 0x80
	lsls r1, 5
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	ldr r0, =gUnknown_086226E0
	movs r1, 0x10
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0x1
_081CB418:
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	b _081CB506
	.pool
_081CB424:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _081CB4FA
	adds r0, r5, 0
	bl sub_81CC034
	ldr r1, =gUnknown_08622760
	str r4, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =gUnknown_08622700
	movs r1, 0x30
	movs r2, 0x20
	bl sub_81C7944
	ldr r0, =gUnknown_08622720
	movs r1, 0x50
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0
	b _081CB506
	.pool
_081CB468:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081CB4FA
	bl sub_81CAE28
	cmp r0, 0
	beq _081CB4FA
	bl sub_81CBBB8
	movs r0, 0
	b _081CB506
_081CB482:
	bl sub_81C8224
	cmp r0, 0
	bne _081CB4FA
	adds r0, r5, 0
	bl sub_81CBD78
	movs r0, 0
	b _081CB506
_081CB494:
	adds r0, r5, 0
	bl sub_81CBDC0
	adds r0, r5, 0
	movs r1, 0
	bl sub_81CBEF8
	movs r0, 0
	b _081CB506
_081CB4A6:
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	bl sub_81CC214
	movs r0, 0x3
	bl sub_81C7DFC
	movs r0, 0x3
	movs r1, 0x1
	movs r2, 0
	bl sub_81C7FA0
	movs r0, 0x1
	bl sub_81C7AC0
	movs r0, 0
	b _081CB506
_081CB4EA:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CB4FA
	bl sub_81C8010
	cmp r0, 0
	beq _081CB4FE
_081CB4FA:
	movs r0, 0x2
	b _081CB506
_081CB4FE:
	movs r0, 0x1
	bl sub_81CBC38
_081CB504:
	movs r0, 0x4
_081CB506:
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB324

	thumb_func_start sub_81CB510
sub_81CB510: @ 81CB510
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CB55E
	cmp r4, 0x1
	bgt _081CB52A
	cmp r4, 0
	beq _081CB534
	b _081CB580
_081CB52A:
	cmp r4, 0x2
	beq _081CB566
	cmp r4, 0x3
	beq _081CB572
	b _081CB580
_081CB534:
	bl sub_81C868C
	cmp r0, 0x1
	beq _081CB54C
	cmp r0, 0x1
	bgt _081CB546
	cmp r0, 0
	beq _081CB580
	b _081CB56E
_081CB546:
	cmp r0, 0x2
	beq _081CB556
	b _081CB56E
_081CB54C:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CB582
_081CB556:
	movs r0, 0x5
	bl PlaySE
	b _081CB56E
_081CB55E:
	bl sub_81C8630
	cmp r0, 0
	bne _081CB57C
_081CB566:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81CBEF8
_081CB56E:
	movs r0, 0
	b _081CB582
_081CB572:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CB580
_081CB57C:
	movs r0, 0x2
	b _081CB582
_081CB580:
	movs r0, 0x4
_081CB582:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB510

	thumb_func_start sub_81CB588
sub_81CB588: @ 81CB588
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CB5D6
	cmp r4, 0x1
	bgt _081CB5A2
	cmp r4, 0
	beq _081CB5AC
	b _081CB5F8
_081CB5A2:
	cmp r4, 0x2
	beq _081CB5DE
	cmp r4, 0x3
	beq _081CB5EA
	b _081CB5F8
_081CB5AC:
	bl sub_81C8658
	cmp r0, 0x1
	beq _081CB5C4
	cmp r0, 0x1
	bgt _081CB5BE
	cmp r0, 0
	beq _081CB5F8
	b _081CB5E6
_081CB5BE:
	cmp r0, 0x2
	beq _081CB5CE
	b _081CB5E6
_081CB5C4:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CB5FA
_081CB5CE:
	movs r0, 0x5
	bl PlaySE
	b _081CB5E6
_081CB5D6:
	bl sub_81C8630
	cmp r0, 0
	bne _081CB5F4
_081CB5DE:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81CBEF8
_081CB5E6:
	movs r0, 0
	b _081CB5FA
_081CB5EA:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CB5F8
_081CB5F4:
	movs r0, 0x2
	b _081CB5FA
_081CB5F8:
	movs r0, 0x4
_081CB5FA:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB588

	thumb_func_start sub_81CB600
sub_81CB600: @ 81CB600
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CB64E
	cmp r4, 0x1
	bgt _081CB61A
	cmp r4, 0
	beq _081CB624
	b _081CB670
_081CB61A:
	cmp r4, 0x2
	beq _081CB656
	cmp r4, 0x3
	beq _081CB662
	b _081CB670
_081CB624:
	bl sub_81C870C
	cmp r0, 0x1
	beq _081CB63C
	cmp r0, 0x1
	bgt _081CB636
	cmp r0, 0
	beq _081CB670
	b _081CB65E
_081CB636:
	cmp r0, 0x2
	beq _081CB646
	b _081CB65E
_081CB63C:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CB672
_081CB646:
	movs r0, 0x5
	bl PlaySE
	b _081CB65E
_081CB64E:
	bl sub_81C8630
	cmp r0, 0
	bne _081CB66C
_081CB656:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81CBEF8
_081CB65E:
	movs r0, 0
	b _081CB672
_081CB662:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CB670
_081CB66C:
	movs r0, 0x2
	b _081CB672
_081CB670:
	movs r0, 0x4
_081CB672:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB600

	thumb_func_start sub_81CB678
sub_81CB678: @ 81CB678
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CB6C6
	cmp r4, 0x1
	bgt _081CB692
	cmp r4, 0
	beq _081CB69C
	b _081CB6E8
_081CB692:
	cmp r4, 0x2
	beq _081CB6CE
	cmp r4, 0x3
	beq _081CB6DA
	b _081CB6E8
_081CB69C:
	bl sub_81C86CC
	cmp r0, 0x1
	beq _081CB6B4
	cmp r0, 0x1
	bgt _081CB6AE
	cmp r0, 0
	beq _081CB6E8
	b _081CB6D6
_081CB6AE:
	cmp r0, 0x2
	beq _081CB6BE
	b _081CB6D6
_081CB6B4:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CB6EA
_081CB6BE:
	movs r0, 0x5
	bl PlaySE
	b _081CB6D6
_081CB6C6:
	bl sub_81C8630
	cmp r0, 0
	bne _081CB6E4
_081CB6CE:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81CBEF8
_081CB6D6:
	movs r0, 0
	b _081CB6EA
_081CB6DA:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CB6E8
_081CB6E4:
	movs r0, 0x2
	b _081CB6EA
_081CB6E8:
	movs r0, 0x4
_081CB6EA:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB678

	thumb_func_start sub_81CB6F0
sub_81CB6F0: @ 81CB6F0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0
	beq _081CB706
	cmp r4, 0x1
	beq _081CB71C
	b _081CB72A
_081CB706:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81CBF60
	movs r0, 0x7
	bl sub_81C7BA4
	movs r0, 0
	b _081CB72C
_081CB71C:
	adds r0, r5, 0
	bl sub_81CBFC4
	cmp r0, 0
	beq _081CB72A
	movs r0, 0x2
	b _081CB72C
_081CB72A:
	movs r0, 0x4
_081CB72C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB6F0

	thumb_func_start sub_81CB734
sub_81CB734: @ 81CB734
	push {r4,lr}
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x6
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81CB01C
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl sub_81CC344
	movs r0, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB734

	thumb_func_start sub_81CB75C
sub_81CB75C: @ 81CB75C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0
	beq _081CB772
	cmp r4, 0x1
	beq _081CB788
	b _081CB796
_081CB772:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81CBFF0
	movs r0, 0x6
	bl sub_81C7BA4
	movs r0, 0
	b _081CB798
_081CB788:
	adds r0, r5, 0
	bl sub_81CC004
	cmp r0, 0
	beq _081CB796
	movs r0, 0x2
	b _081CB798
_081CB796:
	movs r0, 0x4
_081CB798:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB75C

	thumb_func_start sub_81CB7A0
sub_81CB7A0: @ 81CB7A0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CB7D4
	cmp r4, 0x1
	bgt _081CB7BA
	cmp r4, 0
	beq _081CB7C4
	b _081CB81A
_081CB7BA:
	cmp r4, 0x2
	beq _081CB7F8
	cmp r4, 0x3
	beq _081CB80C
	b _081CB81A
_081CB7C4:
	movs r0, 0x1
	bl sub_81C9148
	adds r0, r5, 0
	bl sub_81CC058
	movs r0, 0
	b _081CB81C
_081CB7D4:
	adds r0, r5, 0
	bl sub_81CC0D0
	adds r4, r0, 0
	cmp r4, 0
	bne _081CB816
	adds r0, r5, 0
	bl sub_81CC0E0
	ldr r0, =0x00000107
	bl PlaySE
	strb r4, [r5, 0xE]
	movs r0, 0
	b _081CB81C
	.pool
_081CB7F8:
	adds r0, r5, 0
	bl sub_81CC104
	cmp r0, 0
	bne _081CB816
	adds r0, r5, 0
	bl sub_81CC158
	movs r0, 0
	b _081CB81C
_081CB80C:
	adds r0, r5, 0
	bl sub_81CC194
	cmp r0, 0
	beq _081CB81A
_081CB816:
	movs r0, 0x2
	b _081CB81C
_081CB81A:
	movs r0, 0x4
_081CB81C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB7A0

	thumb_func_start sub_81CB824
sub_81CB824: @ 81CB824
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CB85E
	cmp r4, 0x1
	bgt _081CB83E
	cmp r4, 0
	beq _081CB844
	b _081CB880
_081CB83E:
	cmp r4, 0x2
	beq _081CB872
	b _081CB880
_081CB844:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81CC09C
	movs r0, 0x1
	bl sub_81C9148
	movs r0, 0x1
	strb r0, [r5, 0xE]
	movs r0, 0
	b _081CB882
_081CB85E:
	adds r0, r5, 0
	bl sub_81CC0D0
	cmp r0, 0
	bne _081CB87C
	adds r0, r5, 0
	bl sub_81CC11C
	movs r0, 0
	b _081CB882
_081CB872:
	adds r0, r5, 0
	bl sub_81CC140
	cmp r0, 0
	beq _081CB880
_081CB87C:
	movs r0, 0x2
	b _081CB882
_081CB880:
	movs r0, 0x4
_081CB882:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB824

	thumb_func_start sub_81CB888
sub_81CB888: @ 81CB888
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r4, r0, 0
	movs r6, 0
	cmp r5, 0x6
	bhi _081CB934
	lsls r0, r5, 2
	ldr r1, =_081CB8A8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CB8A8:
	.4byte _081CB8C4
	.4byte _081CB8DA
	.4byte _081CB8E2
	.4byte _081CB8F0
	.4byte _081CB8F8
	.4byte _081CB90C
	.4byte _081CB922
_081CB8C4:
	ldrb r0, [r4, 0xE]
	cmp r0, 0
	bne _081CB8D2
	movs r0, 0x84
	lsls r0, 1
	bl PlaySE
_081CB8D2:
	movs r0, 0x5
	bl PlaySE
	b _081CB934
_081CB8DA:
	adds r0, r4, 0
	bl sub_81CC1DC
	b _081CB934
_081CB8E2:
	adds r0, r4, 0
	bl sub_81CC204
	cmp r0, 0
	beq _081CB934
_081CB8EC:
	movs r6, 0x2
	b _081CB934
_081CB8F0:
	adds r0, r4, 0
	bl sub_81CBFF0
	b _081CB934
_081CB8F8:
	adds r0, r4, 0
	bl sub_81CC004
	cmp r0, 0
	beq _081CB904
	movs r6, 0x2
_081CB904:
	movs r0, 0x6
	bl sub_81C7BA4
	b _081CB934
_081CB90C:
	bl sub_81C7BE8
	cmp r0, 0
	bne _081CB8EC
	ldrb r0, [r4, 0xF]
	cmp r0, 0
	beq _081CB92C
	bl sub_81C8838
	movs r6, 0x1
	b _081CB934
_081CB922:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081CB8EC
_081CB92C:
	movs r0, 0
	bl sub_81C9148
	movs r6, 0x4
_081CB934:
	adds r0, r6, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB888

	thumb_func_start sub_81CB93C
sub_81CB93C: @ 81CB93C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CB974
	cmp r4, 0x1
	bgt _081CB956
	cmp r4, 0
	beq _081CB960
	b _081CB9BE
_081CB956:
	cmp r4, 0x2
	beq _081CB990
	cmp r4, 0x3
	beq _081CB9A0
	b _081CB9BE
_081CB960:
	movs r0, 0x5
	bl PlaySE
	bl sub_81C877C
	adds r0, r5, 0
	bl sub_81CC014
	movs r0, 0
	b _081CB9C0
_081CB974:
	bl sub_81C8820
	cmp r0, 0
	bne _081CB9BA
	adds r0, r5, 0
	bl sub_81CC004
	cmp r0, 0
	bne _081CB9BA
	movs r0, 0x8
	bl sub_81C7BA4
	movs r0, 0
	b _081CB9C0
_081CB990:
	movs r0, 0
	bl sub_81C87AC
	adds r0, r5, 0
	bl sub_81CC39C
	movs r0, 0
	b _081CB9C0
_081CB9A0:
	bl sub_81C8820
	cmp r0, 0
	bne _081CB9BA
	adds r0, r5, 0
	bl sub_81CC42C
	cmp r0, 0
	bne _081CB9BA
	bl sub_81C7BE8
	cmp r0, 0
	beq _081CB9BE
_081CB9BA:
	movs r0, 0x2
	b _081CB9C0
_081CB9BE:
	movs r0, 0x4
_081CB9C0:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB93C

	thumb_func_start sub_81CB9C8
sub_81CB9C8: @ 81CB9C8
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r4, r0, 0
	cmp r5, 0x4
	bhi _081CBA60
	lsls r0, r5, 2
	ldr r1, =_081CB9E8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CB9E8:
	.4byte _081CB9FC
	.4byte _081CBA1C
	.4byte _081CBA34
	.4byte _081CBA40
	.4byte _081CBA4A
_081CB9FC:
	bl sub_81C8770
	bl sub_81CB0E4
	adds r5, r0, 0
	cmp r5, 0
	beq _081CBA60
	movs r0, 0x5
	bl PlaySE
	strh r5, [r4, 0x16]
	adds r0, r4, 0
	bl sub_81CC420
	movs r0, 0
	b _081CBA62
_081CBA1C:
	adds r0, r4, 0
	bl sub_81CC42C
	cmp r0, 0
	bne _081CBA5C
	movs r0, 0x16
	ldrsh r1, [r4, r0]
	adds r0, r4, 0
	bl sub_81CBEF8
	movs r0, 0
	b _081CBA62
_081CBA34:
	movs r1, 0x16
	ldrsh r0, [r4, r1]
	bl sub_81C87AC
	movs r0, 0
	b _081CBA62
_081CBA40:
	adds r0, r4, 0
	bl sub_81CC39C
	movs r0, 0
	b _081CBA62
_081CBA4A:
	bl sub_81C8820
	cmp r0, 0
	bne _081CBA5C
	adds r0, r4, 0
	bl sub_81CC42C
	cmp r0, 0
	beq _081CBA60
_081CBA5C:
	movs r0, 0x2
	b _081CBA62
_081CBA60:
	movs r0, 0x4
_081CBA62:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CB9C8

	thumb_func_start sub_81CBA68
sub_81CBA68: @ 81CBA68
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CBA9C
	cmp r4, 0x1
	bgt _081CBA82
	cmp r4, 0
	beq _081CBA88
	b _081CBACC
_081CBA82:
	cmp r4, 0x2
	beq _081CBABE
	b _081CBACC
_081CBA88:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81CC420
	bl sub_81C87F0
	movs r0, 0
	b _081CBACE
_081CBA9C:
	bl sub_81C8820
	cmp r0, 0
	bne _081CBAC8
	adds r0, r5, 0
	bl sub_81CC42C
	cmp r0, 0
	bne _081CBAC8
	movs r0, 0x6
	bl sub_81C7BA4
	adds r0, r5, 0
	bl sub_81CBDC0
	movs r0, 0
	b _081CBACE
_081CBABE:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CBACC
_081CBAC8:
	movs r0, 0x2
	b _081CBACE
_081CBACC:
	movs r0, 0x4
_081CBACE:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CBA68

	thumb_func_start sub_81CBAD4
sub_81CBAD4: @ 81CBAD4
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0x6
	bl sub_81C763C
	adds r4, r0, 0
	cmp r5, 0x4
	bhi _081CBB6C
	lsls r0, r5, 2
	ldr r1, =_081CBAF4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CBAF4:
	.4byte _081CBB08
	.4byte _081CBB28
	.4byte _081CBB40
	.4byte _081CBB4C
	.4byte _081CBB56
_081CBB08:
	bl sub_81C8770
	bl sub_81CB128
	adds r5, r0, 0
	cmp r5, 0
	beq _081CBB6C
	movs r0, 0x5
	bl PlaySE
	strh r5, [r4, 0x16]
	adds r0, r4, 0
	bl sub_81CC420
	movs r0, 0
	b _081CBB6E
_081CBB28:
	adds r0, r4, 0
	bl sub_81CC42C
	cmp r0, 0
	bne _081CBB68
	movs r0, 0x16
	ldrsh r1, [r4, r0]
	adds r0, r4, 0
	bl sub_81CBEF8
	movs r0, 0
	b _081CBB6E
_081CBB40:
	movs r1, 0x16
	ldrsh r0, [r4, r1]
	bl sub_81C87AC
	movs r0, 0
	b _081CBB6E
_081CBB4C:
	adds r0, r4, 0
	bl sub_81CC39C
	movs r0, 0
	b _081CBB6E
_081CBB56:
	bl sub_81C8820
	cmp r0, 0
	bne _081CBB68
	adds r0, r4, 0
	bl sub_81CC42C
	cmp r0, 0
	beq _081CBB6C
_081CBB68:
	movs r0, 0x2
	b _081CBB6E
_081CBB6C:
	movs r0, 0x4
_081CBB6E:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CBAD4

	thumb_func_start sub_81CBB74
sub_81CBB74: @ 81CBB74
	push {lr}
	cmp r0, 0
	beq _081CBB80
	cmp r0, 0x1
	beq _081CBB9A
	b _081CBBB2
_081CBB80:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81CBC38
	movs r0, 0
	bl sub_81C7AC0
	bl sub_81C78A0
	movs r0, 0
	b _081CBBB4
_081CBB9A:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CBBAA
	bl sub_81C78C0
	cmp r0, 0
	beq _081CBBAE
_081CBBAA:
	movs r0, 0x2
	b _081CBBB4
_081CBBAE:
	bl sub_81C7FDC
_081CBBB2:
	movs r0, 0x4
_081CBBB4:
	pop {r1}
	bx r1
	thumb_func_end sub_81CBB74

	thumb_func_start sub_81CBBB8
sub_81CBBB8: @ 81CBBB8
	push {lr}
	sub sp, 0x18
	bl sub_81CAE94
	str r0, [sp]
	bl sub_81CAE38
	mov r1, sp
	movs r2, 0
	strh r0, [r1, 0x4]
	movs r0, 0x4
	strb r0, [r1, 0x8]
	mov r0, sp
	strh r2, [r0, 0x6]
	movs r0, 0xD
	strb r0, [r1, 0x9]
	movs r0, 0x10
	strb r0, [r1, 0xA]
	movs r0, 0x1
	strb r0, [r1, 0xB]
	movs r0, 0x8
	strb r0, [r1, 0xC]
	movs r0, 0x3
	strb r0, [r1, 0xD]
	movs r0, 0x7
	strb r0, [r1, 0xE]
	ldr r0, =sub_81CB050
	str r0, [sp, 0x10]
	ldr r0, =sub_81CBCEC
	str r0, [sp, 0x14]
	ldr r0, =gUnknown_08622794
	movs r2, 0x2
	bl sub_81C81D4
	ldr r0, =sub_81CBC64
	movs r1, 0x7
	bl CreateTask
	add sp, 0x18
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBBB8

	thumb_func_start sub_81CBC1C
sub_81CBC1C: @ 81CBC1C
	push {lr}
	bl sub_81C8234
	ldr r0, =sub_81CBC64
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBC1C

	thumb_func_start sub_81CBC38
sub_81CBC38: @ 81CBC38
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =sub_81CBC64
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	beq _081CBC56
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	strh r4, [r0, 0x26]
_081CBC56:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBC38

	thumb_func_start sub_81CBC64
sub_81CBC64: @ 81CBC64
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r2, r1, r0
	movs r1, 0x1E
	ldrsh r0, [r2, r1]
	cmp r0, 0
	beq _081CBCC8
	ldrh r0, [r2]
	adds r0, 0x4
	movs r1, 0x7F
	ands r0, r1
	strh r0, [r2]
	ldr r1, =gSineTable
	movs r3, 0
	ldrsh r0, [r2, r3]
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	lsls r0, 16
	asrs r0, 20
	strh r0, [r2, 0x2]
	ldr r0, =gUnknown_08622720
	adds r1, r0, 0
	adds r1, 0x20
	movs r3, 0x2
	ldrsh r2, [r2, r3]
	str r2, [sp]
	ldr r4, =gPlttBufferUnfaded + 0xA0
	str r4, [sp, 0x4]
	movs r2, 0x10
	movs r3, 0x10
	bl sub_81C79BC
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081CBCC8
	ldr r1, =gPlttBufferFaded + 0xA0
	ldr r2, =0x04000008
	adds r0, r4, 0
	bl CpuSet
_081CBCC8:
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBC64

	thumb_func_start sub_81CBCEC
sub_81CBCEC: @ 81CBCEC
	push {r4-r6,lr}
	adds r5, r1, 0
	adds r4, r2, 0
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl GetWindowAttribute
	lsls r0, 24
	lsrs r0, 24
	bl GetBgTilemapBuffer
	adds r6, r0, 0
	lsls r4, 7
	adds r4, 0x3A
	adds r6, r4
	adds r0, r5, 0
	bl sub_81CAEBC
	cmp r0, 0
	beq _081CBD30
	movs r1, 0xA0
	lsls r1, 7
	adds r0, r1, 0
	strh r0, [r6]
	adds r1, r6, 0
	adds r1, 0x40
	ldr r2, =0x00005001
	adds r0, r2, 0
	strh r0, [r1]
	b _081CBD3C
	.pool
_081CBD30:
	ldr r0, =0x00005002
	adds r1, r0, 0
	strh r1, [r6]
	adds r0, r6, 0
	adds r0, 0x40
	strh r1, [r0]
_081CBD3C:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBCEC

	thumb_func_start sub_81CBD48
sub_81CBD48: @ 81CBD48
	push {r4,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl GetWindowAttribute
	lsls r0, 24
	lsrs r0, 24
	bl GetBgTilemapBuffer
	lsls r4, 7
	adds r4, 0x3A
	adds r0, r4
	ldr r2, =0x00005002
	adds r1, r2, 0
	strh r1, [r0]
	adds r0, 0x40
	strh r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBD48

	thumb_func_start sub_81CBD78
sub_81CBD78: @ 81CBD78
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_086227D8
	bl AddWindow
	strh r0, [r4, 0x10]
	ldr r0, =gUnknown_086227E0
	bl AddWindow
	strh r0, [r4, 0x12]
	ldrb r0, [r4, 0x10]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x10]
	bl PutWindowTilemap
	ldrb r0, [r4, 0x12]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x12]
	bl PutWindowTilemap
	ldrb r0, [r4, 0x10]
	movs r1, 0x1
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBD78

	thumb_func_start sub_81CBDC0
sub_81CBDC0: @ 81CBDC0
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4, 0x12]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrh r0, [r4, 0x12]
	bl sub_81CBDF4
	ldrh r0, [r4, 0x12]
	bl sub_81CBE0C
	ldrh r0, [r4, 0x12]
	bl sub_81CBE38
	ldrh r0, [r4, 0x12]
	bl sub_81CBE50
	ldrb r0, [r4, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CBDC0

	thumb_func_start sub_81CBDF4
sub_81CBDF4: @ 81CBDF4
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =gUnknown_085EBE5F
	movs r2, 0
	bl sub_81CBE88
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBDF4

	thumb_func_start sub_81CBE0C
sub_81CBE0C: @ 81CBE0C
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_81CAE38
	adds r1, r0, 0
	mov r0, sp
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r0, r4, 0
	mov r1, sp
	movs r2, 0x1
	bl sub_81CBEB4
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CBE0C

	thumb_func_start sub_81CBE38
sub_81CBE38: @ 81CBE38
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =gUnknown_085EBE6E
	movs r2, 0x2
	bl sub_81CBE88
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBE38

	thumb_func_start sub_81CBE50
sub_81CBE50: @ 81CBE50
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 16
	lsrs r4, r0, 16
	movs r0, 0x9
	bl GetGameStat
	adds r1, r0, 0
	ldr r0, =0x0001869f
	cmp r1, r0
	ble _081CBE68
	adds r1, r0, 0
_081CBE68:
	mov r0, sp
	movs r2, 0
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	adds r0, r4, 0
	mov r1, sp
	movs r2, 0x3
	bl sub_81CBEB4
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBE50

	thumb_func_start sub_81CBE88
sub_81CBE88: @ 81CBE88
	push {lr}
	sub sp, 0xC
	adds r3, r1, 0
	lsls r2, 4
	adds r2, 0x1
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x7
	adds r2, r3, 0
	movs r3, 0x2
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r0}
	bx r0
	thumb_func_end sub_81CBE88

	thumb_func_start sub_81CBEB4
sub_81CBEB4: @ 81CBEB4
	push {r4-r6,lr}
	sub sp, 0xC
	adds r5, r0, 0
	adds r6, r1, 0
	adds r4, r2, 0
	lsls r5, 16
	lsrs r5, 16
	movs r0, 0x7
	movs r2, 0x56
	bl GetStringRightAlignXOffset
	adds r3, r0, 0
	lsls r4, 4
	adds r4, 0x1
	lsls r5, 24
	lsrs r5, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	str r4, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r5, 0
	movs r1, 0x7
	adds r2, r6, 0
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81CBEB4

	thumb_func_start sub_81CBEF8
sub_81CBEF8: @ 81CBEF8
	push {r4,r5,lr}
	sub sp, 0x2C
	adds r5, r0, 0
	adds r4, r1, 0
	bl sub_81C875C
	adds r0, r4
	bl sub_81CAEA4
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0xD5
	beq _081CBF1C
	add r0, sp, 0xC
	movs r2, 0
	bl GetMapName
	b _081CBF24
_081CBF1C:
	ldr r1, =gUnknown_085EC00F
	add r0, sp, 0xC
	bl StringCopy
_081CBF24:
	movs r0, 0x7
	add r1, sp, 0xC
	movs r2, 0x58
	bl GetStringCenterAlignXOffset
	adds r4, r0, 0
	ldrb r0, [r5, 0x10]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r5, 0x10]
	lsls r4, 24
	lsrs r4, 24
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x7
	add r2, sp, 0xC
	adds r3, r4, 0
	bl PrintTextOnWindow
	add sp, 0x2C
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBEF8

	thumb_func_start sub_81CBF60
sub_81CBF60: @ 81CBF60
	push {r4-r6,lr}
	sub sp, 0xC
	adds r5, r0, 0
	ldrb r0, [r5, 0x12]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r4, 0
	movs r6, 0x80
	lsls r6, 17
	b _081CBF9C
_081CBF76:
	ldrb r0, [r5, 0x12]
	ldr r2, =gUnknown_086227E8
	lsls r1, 2
	adds r1, r2
	ldr r2, [r1]
	lsrs r1, r6, 24
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x7
	movs r3, 0x10
	bl PrintTextOnWindow
	movs r0, 0x80
	lsls r0, 21
	adds r6, r0
	adds r4, 0x1
_081CBF9C:
	cmp r4, 0x2
	bhi _081CBFAE
	adds r0, r4, 0
	bl sub_81CB02C
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x3
	bne _081CBF76
_081CBFAE:
	ldrb r0, [r5, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CBF60

	thumb_func_start sub_81CBFC4
sub_81CBFC4: @ 81CBFC4
	push {r4,lr}
	adds r4, r0, 0
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CBFD6
	movs r0, 0x1
	b _081CBFE8
_081CBFD6:
	bl sub_81CB01C
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	bl sub_81CC2F0
	movs r0, 0
_081CBFE8:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CBFC4

	thumb_func_start sub_81CBFF0
sub_81CBFF0: @ 81CBFF0
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81CC330
	adds r0, r4, 0
	bl sub_81CBDC0
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CBFF0

	thumb_func_start sub_81CC004
sub_81CC004: @ 81CC004
	push {lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81CC004

	thumb_func_start sub_81CC014
sub_81CC014: @ 81CC014
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81CC330
	ldrb r0, [r4, 0x12]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x12]
	movs r1, 0x2
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC014

	thumb_func_start sub_81CC034
sub_81CC034: @ 81CC034
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_08622808
	bl AddWindow
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x14]
	movs r1, 0x1
	movs r2, 0x4
	bl sub_8197184
	bl sub_81C7B40
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC034

	thumb_func_start sub_81CC058
sub_81CC058: @ 81CC058
	push {r4,lr}
	adds r4, r0, 0
	ldrh r0, [r4, 0x14]
	movs r1, 0x1
	movs r2, 0x4
	bl sub_8197184
	ldrh r0, [r4, 0x14]
	movs r1, 0x1
	movs r2, 0x4
	bl sub_81971C4
	ldrb r0, [r4, 0x14]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x14]
	bl PutWindowTilemap
	ldrb r0, [r4, 0x14]
	movs r1, 0x3
	bl CopyWindowToVram
	bl sub_81C7CCC
	movs r2, 0
	movs r1, 0x18
	strh r1, [r0, 0x20]
	movs r1, 0x70
	strh r1, [r0, 0x22]
	strh r2, [r0, 0x26]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC058

	thumb_func_start sub_81CC09C
sub_81CC09C: @ 81CC09C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4, 0x14]
	movs r1, 0x1
	movs r2, 0x40
	bl sub_809882C
	ldrb r0, [r4, 0x14]
	movs r1, 0x1
	movs r2, 0x4
	bl sub_8098858
	ldrb r0, [r4, 0x14]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x14]
	bl PutWindowTilemap
	ldrb r0, [r4, 0x14]
	movs r1, 0x3
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC09C

	thumb_func_start sub_81CC0D0
sub_81CC0D0: @ 81CC0D0
	push {lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81CC0D0

	thumb_func_start sub_81CC0E0
sub_81CC0E0: @ 81CC0E0
	push {lr}
	sub sp, 0xC
	ldrb r0, [r0, 0x14]
	ldr r2, =gUnknown_086227F4
	movs r1, 0x1
	str r1, [sp]
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x20
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC0E0

	thumb_func_start sub_81CC104
sub_81CC104: @ 81CC104
	push {r4,lr}
	adds r4, r0, 0
	bl RunTextPrinters
	ldrb r0, [r4, 0x14]
	bl IsTextPrinterActive
	lsls r0, 16
	lsrs r0, 16
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CC104

	thumb_func_start sub_81CC11C
sub_81CC11C: @ 81CC11C
	push {lr}
	sub sp, 0xC
	ldrb r0, [r0, 0x14]
	ldr r2, =gUnknown_085EBF95
	movs r1, 0x1
	str r1, [sp]
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC11C

	thumb_func_start sub_81CC140
sub_81CC140: @ 81CC140
	push {r4,lr}
	adds r4, r0, 0
	bl RunTextPrinters
	ldrb r0, [r4, 0x14]
	bl IsTextPrinterActive
	lsls r0, 16
	lsrs r0, 16
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CC140

	thumb_func_start sub_81CC158
sub_81CC158: @ 81CC158
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	bl sub_81C875C
	adds r1, r4, 0
	adds r1, 0xF
	bl sub_81CAF78
	adds r5, r0, 0
	bl sav2_get_text_speed
	lsls r0, 24
	lsrs r0, 24
	ldrb r2, [r4, 0x14]
	movs r1, 0x1
	str r1, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r2, 0
	adds r2, r5, 0
	movs r3, 0x20
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC158

	thumb_func_start sub_81CC194
sub_81CC194: @ 81CC194
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gMain
	ldrh r1, [r0, 0x2C]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081CC1B8
	ldr r0, =gTextFlags
	ldrb r1, [r0]
	movs r2, 0x1
	orrs r1, r2
	strb r1, [r0]
	b _081CC1C4
	.pool
_081CC1B8:
	ldr r2, =gTextFlags
	ldrb r1, [r2]
	movs r0, 0x2
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
_081CC1C4:
	bl RunTextPrinters
	ldrb r0, [r4, 0x14]
	bl IsTextPrinterActive
	lsls r0, 16
	lsrs r0, 16
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CC194

	thumb_func_start sub_81CC1DC
sub_81CC1DC: @ 81CC1DC
	push {lr}
	sub sp, 0x8
	bl sub_81C7CE4
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	add sp, 0x8
	pop {r0}
	bx r0
	thumb_func_end sub_81CC1DC

	thumb_func_start sub_81CC204
sub_81CC204: @ 81CC204
	push {lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81CC204

	thumb_func_start sub_81CC214
sub_81CC214: @ 81CC214
	push {r4-r6,lr}
	sub sp, 0x8
	movs r0, 0x6
	bl sub_81C763C
	adds r6, r0, 0
	movs r5, 0
	ldr r4, =gUnknown_08622810
_081CC224:
	adds r0, r4, 0
	bl LoadCompressedObjectPic
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0
	beq _081CC224
	ldr r0, =gUnknown_08622818
	bl sub_81C795C
	movs r0, 0
	str r0, [r6, 0x1C]
	ldr r1, =0x00001828
	adds r0, r6, r1
	str r0, [sp]
	ldr r1, =0xffff0000
	ldr r0, [sp, 0x4]
	ands r0, r1
	movs r1, 0x80
	lsls r1, 4
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0x80
	lsls r1, 12
	orrs r0, r1
	str r0, [sp, 0x4]
	mov r0, sp
	bl LoadSpriteSheet
	ldr r2, =0x00001824
	adds r1, r6, r2
	lsls r0, 16
	lsrs r0, 11
	ldr r2, =0x06010000
	adds r0, r2
	str r0, [r1]
	movs r0, 0xD
	bl AllocSpritePalette
	lsls r0, 24
	lsrs r0, 20
	movs r1, 0x80
	lsls r1, 1
	adds r0, r1
	strh r0, [r6, 0x1A]
	bl sub_81CC370
	str r0, [r6, 0x20]
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC214

	thumb_func_start sub_81CC2B4
sub_81CC2B4: @ 81CC2B4
	push {r4,lr}
	movs r0, 0x6
	bl sub_81C763C
	adds r4, r0, 0
	ldr r0, [r4, 0x1C]
	cmp r0, 0
	beq _081CC2C8
	bl DestroySprite
_081CC2C8:
	ldr r0, [r4, 0x20]
	cmp r0, 0
	beq _081CC2D2
	bl DestroySprite
_081CC2D2:
	movs r0, 0x8
	bl FreeSpriteTilesByTag
	movs r0, 0x7
	bl FreeSpriteTilesByTag
	movs r0, 0xC
	bl FreeSpritePaletteByTag
	movs r0, 0xD
	bl FreeSpritePaletteByTag
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC2B4

	thumb_func_start sub_81CC2F0
sub_81CC2F0: @ 81CC2F0
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldr r0, [r4, 0x1C]
	cmp r0, 0
	bne _081CC320
	ldr r0, =gUnknown_08622830
	movs r1, 0x4
	movs r2, 0x50
	movs r3, 0x5
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r4, 0x1C]
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_81CC344
_081CC320:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC2F0

	thumb_func_start sub_81CC330
sub_81CC330: @ 81CC330
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x1C]
	bl DestroySprite
	movs r0, 0
	str r0, [r4, 0x1C]
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC330

	thumb_func_start sub_81CC344
sub_81CC344: @ 81CC344
	ldr r0, [r0, 0x1C]
	lsls r1, 4
	strh r1, [r0, 0x26]
	bx lr
	thumb_func_end sub_81CC344

	thumb_func_start sub_81CC34C
sub_81CC34C: @ 81CC34C
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2, 0x2E]
	adds r0, 0x1
	strh r0, [r2, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3
	ble _081CC36C
	movs r0, 0
	strh r0, [r2, 0x2E]
	ldrh r0, [r2, 0x24]
	adds r0, 0x1
	movs r1, 0x7
	ands r0, r1
	strh r0, [r2, 0x24]
_081CC36C:
	pop {r0}
	bx r0
	thumb_func_end sub_81CC34C

	thumb_func_start sub_81CC370
sub_81CC370: @ 81CC370
	push {lr}
	ldr r0, =gUnknown_08622850
	movs r1, 0x2C
	movs r2, 0x68
	movs r3, 0x6
	bl CreateSprite
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CC370

	thumb_func_start sub_81CC39C
sub_81CC39C: @ 81CC39C
	push {r4-r7,lr}
	adds r7, r0, 0
	bl sub_81C875C
	bl sub_81CAF04
	cmp r0, 0
	blt _081CC400
	lsls r4, r0, 3
	ldr r0, =gTrainerFrontPicTable
	adds r0, r4, r0
	ldr r1, =0x00001828
	adds r5, r7, r1
	adds r1, r5, 0
	movs r2, 0
	bl DecompressPicFromTable
	ldr r0, =gTrainerFrontPicPaletteTable
	adds r4, r0
	ldr r0, [r4]
	ldr r1, =0x00002028
	adds r6, r7, r1
	adds r1, r6, 0
	bl LZ77UnCompWram
	ldr r1, =0x00001824
	adds r0, r7, r1
	ldr r1, [r0]
	movs r2, 0x80
	lsls r2, 4
	adds r0, r5, 0
	movs r3, 0x1
	bl RequestDma3Copy
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldrh r1, [r7, 0x1A]
	adds r0, r6, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r1, [r7, 0x20]
	movs r0, 0
	strh r0, [r1, 0x2E]
	ldr r0, [r7, 0x20]
	strh r4, [r0, 0x3C]
	ldr r1, [r7, 0x20]
	ldr r0, =sub_81CC440
	str r0, [r1, 0x1C]
_081CC400:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC39C

	thumb_func_start sub_81CC420
sub_81CC420: @ 81CC420
	ldr r1, [r0, 0x20]
	ldr r0, =sub_81CC4A4
	str r0, [r1, 0x1C]
	bx lr
	.pool
	thumb_func_end sub_81CC420

	thumb_func_start sub_81CC42C
sub_81CC42C: @ 81CC42C
	ldr r0, [r0, 0x20]
	ldr r1, [r0, 0x1C]
	ldr r0, =SpriteCallbackDummy
	eors r1, r0
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	bx lr
	.pool
	thumb_func_end sub_81CC42C

	thumb_func_start sub_81CC440
sub_81CC440: @ 81CC440
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0x2E
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081CC452
	cmp r0, 0x1
	beq _081CC484
	b _081CC498
_081CC452:
	movs r1, 0x3C
	ldrsh r0, [r4, r1]
	bl CheckForSpaceForDma3Request
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x1
	negs r1, r1
	cmp r0, r1
	beq _081CC498
	ldr r0, =0x0000ffb0
	strh r0, [r4, 0x24]
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	ldrh r0, [r4, 0x2E]
	adds r0, 0x1
	strh r0, [r4, 0x2E]
	b _081CC498
	.pool
_081CC484:
	ldrh r0, [r4, 0x24]
	adds r0, 0x8
	strh r0, [r4, 0x24]
	lsls r0, 16
	cmp r0, 0
	blt _081CC498
	movs r0, 0
	strh r0, [r4, 0x24]
	ldr r0, =SpriteCallbackDummy
	str r0, [r4, 0x1C]
_081CC498:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC440

	thumb_func_start sub_81CC4A4
sub_81CC4A4: @ 81CC4A4
	push {lr}
	adds r3, r0, 0
	ldrh r0, [r3, 0x24]
	subs r0, 0x8
	strh r0, [r3, 0x24]
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x50
	negs r1, r1
	cmp r0, r1
	bgt _081CC4CA
	adds r2, r3, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	ldr r0, =SpriteCallbackDummy
	str r0, [r3, 0x1C]
_081CC4CA:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC4A4

	thumb_func_start sub_81CC4D4
sub_81CC4D4: @ 81CC4D4
	push {r4,lr}
	movs r0, 0x3
	movs r1, 0x14
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CC4F0
	ldr r1, =0x00000884
	movs r0, 0x10
	bl sub_81C761C
	cmp r0, 0
	bne _081CC4F8
_081CC4F0:
	movs r0, 0
	b _081CC51A
	.pool
_081CC4F8:
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x14]
	bl sub_8124668
	str r0, [r4, 0xC]
	cmp r0, 0
	bne _081CC514
	ldr r0, =sub_81CC568
	b _081CC516
	.pool
_081CC514:
	ldr r0, =sub_81CC5B4
_081CC516:
	str r0, [r4, 0x10]
	movs r0, 0x1
_081CC51A:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CC4D4

	thumb_func_start sub_81CC524
sub_81CC524: @ 81CC524
	push {lr}
	bl sub_8124658
	ldr r1, =gSaveBlock2Ptr
	ldr r3, [r1]
	movs r1, 0x1
	ands r1, r0
	lsls r1, 3
	ldrb r2, [r3, 0x15]
	movs r0, 0x9
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0x15]
	movs r0, 0x10
	bl sub_81C7650
	movs r0, 0x3
	bl sub_81C7650
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC524

	thumb_func_start sub_81CC554
sub_81CC554: @ 81CC554
	push {lr}
	movs r0, 0x3
	bl sub_81C763C
	ldr r1, [r0, 0x10]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_81CC554

	thumb_func_start sub_81CC568
sub_81CC568: @ 81CC568
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81230AC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	beq _081CC58C
	cmp r0, 0x4
	bgt _081CC582
	cmp r0, 0x3
	beq _081CC588
	b _081CC5AC
_081CC582:
	cmp r0, 0x5
	beq _081CC59E
	b _081CC5AC
_081CC588:
	movs r0, 0x1
	b _081CC5AE
_081CC58C:
	bl sub_8124658
	lsls r0, 24
	cmp r0, 0
	bne _081CC59A
	movs r0, 0x3
	b _081CC5AE
_081CC59A:
	movs r0, 0x2
	b _081CC5AE
_081CC59E:
	ldr r0, =sub_81CC5DC
	str r0, [r4, 0x10]
	movs r0, 0x4
	b _081CC5AE
	.pool
_081CC5AC:
	movs r0, 0
_081CC5AE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CC568

	thumb_func_start sub_81CC5B4
sub_81CC5B4: @ 81CC5B4
	push {lr}
	adds r2, r0, 0
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081CC5CC
	movs r0, 0
	b _081CC5D2
	.pool
_081CC5CC:
	ldr r0, =sub_81CC5DC
	str r0, [r2, 0x10]
	movs r0, 0x4
_081CC5D2:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CC5B4

	thumb_func_start sub_81CC5DC
sub_81CC5DC: @ 81CC5DC
	ldr r0, =0x000186a1
	bx lr
	.pool
	thumb_func_end sub_81CC5DC

	thumb_func_start sub_81CC5E4
sub_81CC5E4: @ 81CC5E4
	push {lr}
	movs r0, 0x3
	bl sub_81C763C
	ldr r0, [r0, 0xC]
	pop {r1}
	bx r1
	thumb_func_end sub_81CC5E4

	thumb_func_start sub_81CC5F4
sub_81CC5F4: @ 81CC5F4
	push {r4,lr}
	ldr r1, =0x00001948
	movs r0, 0x4
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CC624
	ldr r0, =sub_81CC6F4
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81CC6BC
	str r0, [r4]
	movs r0, 0x1
	b _081CC626
	.pool
_081CC624:
	movs r0, 0
_081CC626:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CC5F4

	thumb_func_start sub_81CC62C
sub_81CC62C: @ 81CC62C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x4
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =gUnknown_086230E4
	lsls r4, 2
	adds r4, r0
	ldr r0, [r4]
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r5, 0x4]
	ldr r0, =sub_81CC6BC
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC62C

	thumb_func_start sub_81CC65C
sub_81CC65C: @ 81CC65C
	push {lr}
	movs r0, 0x4
	bl sub_81C763C
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	thumb_func_end sub_81CC65C

	thumb_func_start sub_81CC670
sub_81CC670: @ 81CC670
	push {r4,lr}
	movs r0, 0x4
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_812305C
	bl sub_81CC9EC
	ldrb r0, [r4, 0x8]
	bl RemoveWindow
	movs r0, 0x10
	bl sub_81C7650
	movs r0, 0x4
	bl sub_81C7650
	bl sub_81C760C
	movs r0, 0
	bl SetBgMode
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC670

	thumb_func_start sub_81CC6A4
sub_81CC6A4: @ 81CC6A4
	push {lr}
	bl TransferPlttBuffer
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl sub_81237B4
	pop {r0}
	bx r0
	thumb_func_end sub_81CC6A4

	thumb_func_start sub_81CC6BC
sub_81CC6BC: @ 81CC6BC
	push {lr}
	movs r0, 0x4
	bl sub_81C763C
	ldr r0, [r0, 0x4]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81CC6BC

	thumb_func_start sub_81CC6D0
sub_81CC6D0: @ 81CC6D0
	push {lr}
	bl sub_81CC5E4
	cmp r0, 0
	bne _081CC6EC
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x15]
	lsrs r0, 3
	movs r1, 0x1
	ands r0, r1
	b _081CC6EE
	.pool
_081CC6EC:
	movs r0, 0
_081CC6EE:
	pop {r1}
	bx r1
	thumb_func_end sub_81CC6D0

	thumb_func_start sub_81CC6F4
sub_81CC6F4: @ 81CC6F4
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x4
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x7
	bls _081CC706
	b _081CC83E
_081CC706:
	lsls r0, r4, 2
	ldr r1, =_081CC714
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CC714:
	.4byte _081CC734
	.4byte _081CC784
	.4byte _081CC7B6
	.4byte _081CC7BE
	.4byte _081CC7CE
	.4byte _081CC7E2
	.4byte _081CC804
	.4byte _081CC82A
_081CC734:
	movs r0, 0
	bl c3args_set_0toR1_1to0
	movs r0, 0x1
	bl HideBg
	movs r0, 0x2
	bl HideBg
	movs r0, 0x3
	bl HideBg
	movs r0, 0x1
	bl SetBgMode
	ldr r4, =gUnknown_086230D8
	adds r0, r4, 0
	movs r1, 0x2
	bl sub_81C7B54
	movs r0, 0x10
	bl sub_81C763C
	adds r5, r0, 0
	adds r4, 0x4
	bl sub_81CC6D0
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_8122CF8
	bl sub_81CC9C0
_081CC77C:
	movs r0, 0
	b _081CC840
	.pool
_081CC784:
	bl sub_8122DB0
	lsls r0, 24
	cmp r0, 0
	bne _081CC83A
	bl sub_81CC5E4
	cmp r0, 0
	bne _081CC7AC
	movs r0, 0x4
	movs r1, 0x9
	bl sub_8124288
	movs r0, 0x5
	movs r1, 0xA
	bl sub_81240D4
	bl sub_812454C
	b _081CC77C
_081CC7AC:
	movs r0, 0
	movs r1, 0x6
	bl sub_8123030
	b _081CC77C
_081CC7B6:
	bl sub_81CCD10
_081CC7BA:
	movs r0, 0x1
	b _081CC840
_081CC7BE:
	bl sub_81CCD24
	cmp r0, 0
	bne _081CC83A
	adds r0, r5, 0
	bl sub_81CCA1C
	b _081CC7BA
_081CC7CE:
	bl sub_81CCAFC
	cmp r0, 0
	bne _081CC83A
	adds r0, r5, 0
	bl sub_81CCB0C
	bl sub_81C7B40
	b _081CC77C
_081CC7E2:
	adds r0, r5, 0
	bl sub_81CCC4C
	cmp r0, 0
	bne _081CC83A
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	ldr r0, =sub_81CC6A4
	bl c3args_set_0toR1_1to0
	b _081CC77C
	.pool
_081CC804:
	bl sub_81CC6D0
	lsls r0, 24
	movs r4, 0x5
	cmp r0, 0
	bne _081CC812
	movs r4, 0x4
_081CC812:
	adds r0, r4, 0
	bl sub_81C7DFC
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0x1
	bl sub_81C7FA0
	movs r0, 0x1
	bl sub_81C7AC0
	b _081CC77C
_081CC82A:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CC83A
	bl sub_81C8010
	cmp r0, 0
	beq _081CC7BA
_081CC83A:
	movs r0, 0x2
	b _081CC840
_081CC83E:
	movs r0, 0x4
_081CC840:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CC6F4

	thumb_func_start sub_81CC848
sub_81CC848: @ 81CC848
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x4
	bl sub_81C763C
	cmp r4, 0
	beq _081CC85C
	cmp r4, 0x1
	beq _081CC864
	b _081CC870
_081CC85C:
	bl sub_81CCB0C
	movs r0, 0
	b _081CC872
_081CC864:
	bl sub_81CCC4C
	cmp r0, 0
	beq _081CC870
	movs r0, 0x2
	b _081CC872
_081CC870:
	movs r0, 0x4
_081CC872:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CC848

	thumb_func_start sub_81CC878
sub_81CC878: @ 81CC878
	push {lr}
	cmp r0, 0x1
	beq _081CC8A2
	cmp r0, 0x1
	bgt _081CC888
	cmp r0, 0
	beq _081CC88E
	b _081CC8D0
_081CC888:
	cmp r0, 0x2
	beq _081CC8BE
	b _081CC8D0
_081CC88E:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81CCC5C
	bl sub_8123418
	movs r0, 0
	b _081CC8D2
_081CC8A2:
	bl sub_8123514
	lsls r0, 24
	cmp r0, 0
	bne _081CC8C6
	bl sub_81CCC88
	cmp r0, 0
	bne _081CC8C6
	movs r0, 0x1
	bl sub_81C7BA4
	movs r0, 0
	b _081CC8D2
_081CC8BE:
	bl sub_81C7BE8
	cmp r0, 0
	beq _081CC8CA
_081CC8C6:
	movs r0, 0x2
	b _081CC8D2
_081CC8CA:
	movs r0, 0x4
	bl sub_81C7E14
_081CC8D0:
	movs r0, 0x4
_081CC8D2:
	pop {r1}
	bx r1
	thumb_func_end sub_81CC878

	thumb_func_start sub_81CC8D8
sub_81CC8D8: @ 81CC8D8
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x4
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CC90C
	cmp r4, 0x1
	bgt _081CC8F2
	cmp r4, 0
	beq _081CC8FC
	b _081CC952
_081CC8F2:
	cmp r4, 0x2
	beq _081CC924
	cmp r4, 0x3
	beq _081CC940
	b _081CC952
_081CC8FC:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81CCB0C
	movs r0, 0
	b _081CC954
_081CC90C:
	adds r0, r5, 0
	bl sub_81CCC4C
	cmp r0, 0
	bne _081CC948
	movs r0, 0x1
	bl sub_81CCC5C
	bl sub_8123418
	movs r0, 0
	b _081CC954
_081CC924:
	bl sub_8123514
	lsls r0, 24
	cmp r0, 0
	bne _081CC948
	bl sub_81CCC88
	cmp r0, 0
	bne _081CC948
	movs r0, 0x2
	bl sub_81C7BA4
	movs r0, 0
	b _081CC954
_081CC940:
	bl sub_81C7BE8
	cmp r0, 0
	beq _081CC94C
_081CC948:
	movs r0, 0x2
	b _081CC954
_081CC94C:
	movs r0, 0x5
	bl sub_81C7E14
_081CC952:
	movs r0, 0x4
_081CC954:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CC8D8

	thumb_func_start sub_81CC95C
sub_81CC95C: @ 81CC95C
	push {lr}
	cmp r0, 0x1
	beq _081CC982
	cmp r0, 0x1
	bgt _081CC96C
	cmp r0, 0
	beq _081CC972
	b _081CC9B8
_081CC96C:
	cmp r0, 0x2
	beq _081CC996
	b _081CC9B8
_081CC972:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81C7AC0
	movs r0, 0
	b _081CC9BA
_081CC982:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CC99E
	bl sub_81C7FDC
	bl sub_81C78A0
	movs r0, 0
	b _081CC9BA
_081CC996:
	bl sub_81C78C0
	cmp r0, 0
	beq _081CC9A2
_081CC99E:
	movs r0, 0x2
	b _081CC9BA
_081CC9A2:
	movs r0, 0x1
	bl HideBg
	movs r0, 0x2
	bl HideBg
	movs r0, 0x3
	bl HideBg
	movs r0, 0
	b _081CC9BA
_081CC9B8:
	movs r0, 0x4
_081CC9BA:
	pop {r1}
	bx r1
	thumb_func_end sub_81CC95C

	thumb_func_start sub_81CC9C0
sub_81CC9C0: @ 81CC9C0
	push {r4,r5,lr}
	movs r5, 0
	ldr r4, =gUnknown_086230F8
_081CC9C6:
	adds r0, r4, 0
	bl LoadCompressedObjectPic
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0
	beq _081CC9C6
	ldr r0, =gUnknown_08623100
	bl sub_81C795C
	bl sub_81CCE58
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CC9C0

	thumb_func_start sub_81CC9EC
sub_81CC9EC: @ 81CC9EC
	push {r4,r5,lr}
	movs r0, 0x4
	bl sub_81C763C
	adds r4, r0, 0
	movs r0, 0x6
	bl FreeSpriteTilesByTag
	movs r0, 0xB
	bl FreeSpritePaletteByTag
	adds r5, r4, 0
	adds r5, 0xC
	movs r4, 0x2
_081CCA08:
	ldm r5!, {r0}
	bl DestroySprite
	subs r4, 0x1
	cmp r4, 0
	bge _081CCA08
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CC9EC

	thumb_func_start sub_81CCA1C
sub_81CCA1C: @ 81CCA1C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r5, r0, 0
	movs r0, 0x1
	movs r1, 0
	movs r2, 0x40
	movs r3, 0x1
	bl sub_8199DF0
	movs r0, 0x1
	movs r1, 0x11
	movs r2, 0x41
	movs r3, 0x1
	bl sub_8199DF0
	add r1, sp, 0x4
	movs r2, 0x82
	lsls r2, 5
	adds r0, r2, 0
	strh r0, [r1]
	adds r4, r5, 0
	adds r4, 0x18
	ldr r2, =0x01000400
	adds r0, r1, 0
	adds r1, r4, 0
	bl CpuSet
	movs r0, 0x1
	adds r1, r4, 0
	bl SetBgTilemapBuffer
	ldr r0, =gUnknown_08623110
	bl AddWindow
	movs r4, 0
	strh r0, [r5, 0x8]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x42
	movs r2, 0x40
	bl box_border_load_tiles_and_pal
	ldrb r0, [r5, 0x8]
	movs r1, 0x42
	movs r2, 0x4
	bl sub_8098858
	ldr r1, =gUnknown_08622888
	str r4, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldrb r0, [r5, 0x8]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r5, 0x8]
	bl PutWindowTilemap
	ldrb r0, [r5, 0x8]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, =gUnknown_08622868
	movs r1, 0x10
	movs r2, 0x20
	bl sub_81C7944
	ldr r0, =gUnknown_08DC91E8
	movs r1, 0x30
	movs r2, 0x20
	bl sub_81C7944
	bl sub_8124658
	lsls r0, 24
	cmp r0, 0
	bne _081CCAE0
	ldr r1, =0xffffa000
	movs r0, 0x1
	movs r2, 0
	bl ChangeBgY
	b _081CCAEA
	.pool
_081CCAE0:
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
_081CCAEA:
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CCA1C

	thumb_func_start sub_81CCAFC
sub_81CCAFC: @ 81CCAFC
	push {lr}
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81CCAFC

	thumb_func_start sub_81CCB0C
sub_81CCB0C: @ 81CCB0C
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0x10
	bl sub_81C763C
	adds r5, r0, 0
	ldrb r0, [r5, 0x2]
	cmp r0, 0x4
	bls _081CCB22
	b _081CCC40
_081CCB22:
	lsls r0, 2
	ldr r1, =_081CCB30
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CCB30:
	.4byte _081CCC1C
	.4byte _081CCBDC
	.4byte _081CCB44
	.4byte _081CCB8E
	.4byte _081CCBDC
_081CCB44:
	ldrb r0, [r4, 0x8]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x8]
	movs r1, 0x2
	str r1, [sp]
	movs r1, 0
	movs r2, 0
	movs r3, 0xC
	bl PutWindowRectTilemap
	ldrb r0, [r4, 0x8]
	adds r2, r5, 0x4
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x7
	movs r3, 0
	bl PrintTextOnWindow
	ldrh r1, [r5]
	ldrb r2, [r5, 0x3]
	adds r0, r4, 0
	bl sub_81CCD70
	ldrb r0, [r4, 0x8]
	movs r1, 0x3
	bl CopyWindowToVram
	movs r0, 0
	bl sub_81CCFA4
	b _081CCC40
_081CCB8E:
	ldrb r0, [r4, 0x8]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x8]
	movs r1, 0x2
	str r1, [sp]
	movs r1, 0
	movs r2, 0
	movs r3, 0xC
	bl PutWindowRectTilemap
	ldrb r0, [r4, 0x8]
	adds r2, r5, 0x4
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x7
	movs r3, 0
	bl PrintTextOnWindow
	ldr r1, =0x00001041
	movs r0, 0xC
	str r0, [sp]
	movs r0, 0xB
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0x11
	movs r3, 0x6
	bl FillBgTilemapBufferRect
	b _081CCC0C
	.pool
_081CCBDC:
	ldrb r0, [r4, 0x8]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0x8]
	bl PutWindowTilemap
	ldrb r0, [r4, 0x8]
	adds r2, r5, 0x4
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x7
	movs r3, 0
	bl PrintTextOnWindow
	ldrh r1, [r5]
	ldrb r2, [r5, 0x3]
	adds r0, r4, 0
	bl sub_81CCDE8
_081CCC0C:
	ldrb r0, [r4, 0x8]
	movs r1, 0x3
	bl CopyWindowToVram
	movs r0, 0x1
	bl sub_81CCFA4
	b _081CCC40
_081CCC1C:
	ldr r1, =0x00001041
	movs r0, 0xC
	str r0, [sp]
	movs r0, 0xD
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r2, 0x11
	movs r3, 0x4
	bl FillBgTilemapBufferRect
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	bl sub_81CCFA4
_081CCC40:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CCB0C

	thumb_func_start sub_81CCC4C
sub_81CCC4C: @ 81CCC4C
	push {lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81CCC4C

	thumb_func_start sub_81CCC5C
sub_81CCC5C: @ 81CCC5C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =sub_81CCC9C
	movs r1, 0x3
	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]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CCC5C

	thumb_func_start sub_81CCC88
sub_81CCC88: @ 81CCC88
	push {lr}
	ldr r0, =sub_81CCC9C
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CCC88

	thumb_func_start sub_81CCC9C
sub_81CCC9C: @ 81CCC9C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	movs r1, 0x8
	ldrsh r0, [r0, r1]
	cmp r0, 0
	beq _081CCCE0
	movs r1, 0x90
	lsls r1, 3
	movs r0, 0x1
	movs r2, 0x1
	bl ChangeBgY
	cmp r0, 0
	blt _081CCCD6
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	adds r0, r4, 0
	bl DestroyTask
_081CCCD6:
	bl sub_81CCF78
	b _081CCD04
	.pool
_081CCCE0:
	movs r1, 0x90
	lsls r1, 3
	movs r0, 0x1
	movs r2, 0x2
	bl ChangeBgY
	ldr r1, =0xffffa000
	cmp r0, r1
	bgt _081CCD00
	movs r0, 0x1
	movs r2, 0
	bl ChangeBgY
	adds r0, r5, 0
	bl DestroyTask
_081CCD00:
	bl sub_81CCF78
_081CCD04:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CCC9C

	thumb_func_start sub_81CCD10
sub_81CCD10: @ 81CCD10
	push {lr}
	ldr r0, =sub_81CCD34
	movs r1, 0x1
	bl sub_81C7078
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CCD10

	thumb_func_start sub_81CCD24
sub_81CCD24: @ 81CCD24
	push {lr}
	ldr r0, =sub_81CCD34
	bl sub_81C7124
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CCD24

	thumb_func_start sub_81CCD34
sub_81CCD34: @ 81CCD34
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x4
	bl sub_81C763C
	adds r2, r0, 0
	cmp r4, 0x15
	ble _081CCD48
	movs r0, 0x4
	b _081CCD62
_081CCD48:
	ldr r0, =gUnknown_08623118
	lsls r1, r4, 3
	adds r0, 0x4
	adds r1, r0
	ldr r0, [r1]
	movs r1, 0xC8
	muls r1, r4
	ldr r3, =0x00000818
	adds r1, r3
	adds r1, r2, r1
	bl LZ77UnCompWram
	movs r0, 0x1
_081CCD62:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CCD34

	thumb_func_start sub_81CCD70
sub_81CCD70: @ 81CCD70
	push {r4-r6,lr}
	sub sp, 0x8
	adds r6, r0, 0
	adds r3, r1, 0
	movs r4, 0
	ldr r0, =gUnknown_08623118
	ldrh r1, [r0]
	adds r5, r0, 0
	cmp r1, r3
	bne _081CCD8A
	ldrh r0, [r5, 0x2]
	cmp r0, r2
	beq _081CCDA0
_081CCD8A:
	adds r4, 0x1
	cmp r4, 0x15
	bgt _081CCDA0
	lsls r0, r4, 3
	adds r1, r0, r5
	ldrh r0, [r1]
	cmp r0, r3
	bne _081CCD8A
	ldrh r0, [r1, 0x2]
	cmp r0, r2
	bne _081CCD8A
_081CCDA0:
	cmp r4, 0x16
	beq _081CCDD4
	ldr r1, =0x00001041
	movs r0, 0xC
	str r0, [sp]
	movs r0, 0xB
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r2, 0x11
	movs r3, 0x6
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0xC8
	adds r1, r4, 0
	muls r1, r0
	ldr r0, =0x00000818
	adds r1, r0
	adds r1, r6, r1
	movs r0, 0xA
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r2, 0x12
	movs r3, 0x6
	bl CopyToBgTilemapBufferRect
_081CCDD4:
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CCD70

	thumb_func_start sub_81CCDE8
sub_81CCDE8: @ 81CCDE8
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0xC
	mov r9, r0
	movs r5, 0
	ldr r6, =gStringVar1
	movs r4, 0x88
	lsls r4, 21
	lsls r1, 24
	mov r8, r1
	lsls r7, r2, 24
	b _081CCE34
	.pool
_081CCE08:
	adds r0, r6, 0
	movs r2, 0
	movs r3, 0xC
	bl StringCopyPadded
	mov r1, r9
	ldrb r0, [r1, 0x8]
	lsrs r1, r4, 24
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x7
	adds r2, r6, 0
	movs r3, 0
	bl PrintTextOnWindow
	movs r0, 0x80
	lsls r0, 21
	adds r4, r0
	adds r5, 0x1
_081CCE34:
	lsls r2, r5, 24
	lsrs r2, 24
	mov r1, r8
	lsrs r0, r1, 24
	lsrs r1, r7, 24
	bl sub_8145CF4
	adds r1, r0, 0
	cmp r1, 0
	bne _081CCE08
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81CCDE8

	thumb_func_start sub_81CCE58
sub_81CCE58: @ 81CCE58
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r0, 0x4
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_8124658
	lsls r0, 24
	movs r2, 0x84
	cmp r0, 0
	bne _081CCE74
	movs r2, 0xE4
_081CCE74:
	movs r5, 0
	lsls r7, r2, 16
	adds r4, 0xC
	mov r8, r4
	movs r6, 0x98
	lsls r6, 16
_081CCE80:
	asrs r1, r6, 16
	ldr r0, =gUnknown_086231D0
	asrs r2, r7, 16
	movs r3, 0x8
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	ldr r0, =gSprites
	adds r2, r0
	movs r0, 0
	strh r0, [r2, 0x2E]
	lsls r4, r5, 2
	strh r4, [r2, 0x30]
	ldrh r3, [r2, 0x4]
	lsls r1, r3, 22
	lsrs r0, r1, 22
	adds r1, r0, 0
	strh r0, [r2, 0x32]
	movs r0, 0x96
	strh r0, [r2, 0x34]
	strh r4, [r2, 0x36]
	adds r1, r4
	ldr r4, =0x000003ff
	adds r0, r4, 0
	ands r1, r0
	ldr r4, =0xfffffc00
	adds r0, r4, 0
	ands r3, r0
	orrs r3, r1
	strh r3, [r2, 0x4]
	mov r0, r8
	adds r0, 0x4
	mov r8, r0
	subs r0, 0x4
	stm r0!, {r2}
	movs r4, 0x80
	lsls r4, 14
	adds r6, r4
	adds r5, 0x1
	cmp r5, 0x2
	ble _081CCE80
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CCE58

	thumb_func_start sub_81CCEF4
sub_81CCEF4: @ 81CCEF4
	push {r4,r5,lr}
	adds r3, r0, 0
	ldrh r0, [r3, 0x34]
	movs r1, 0x34
	ldrsh r4, [r3, r1]
	cmp r4, 0
	beq _081CCF06
	subs r0, 0x1
	b _081CCF6E
_081CCF06:
	ldrh r0, [r3, 0x2E]
	adds r0, 0x1
	strh r0, [r3, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xB
	ble _081CCF16
	strh r4, [r3, 0x2E]
_081CCF16:
	ldrh r0, [r3, 0x30]
	adds r0, 0x1
	strh r0, [r3, 0x30]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3C
	ble _081CCF26
	strh r4, [r3, 0x30]
_081CCF26:
	ldrh r5, [r3, 0x30]
	ldrh r2, [r3, 0x32]
	adds r1, r5, r2
	ldr r2, =0x000003ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r2, [r3, 0x4]
	ldr r0, =0xfffffc00
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x4]
	ldrh r1, [r3, 0x38]
	movs r2, 0x38
	ldrsh r0, [r3, r2]
	cmp r0, 0x3
	bgt _081CCF5C
	movs r2, 0x2E
	ldrsh r0, [r3, r2]
	cmp r0, 0
	bne _081CCF70
	adds r0, r1, 0x1
	strh r0, [r3, 0x38]
	b _081CCF6C
	.pool
_081CCF5C:
	lsls r0, r5, 16
	asrs r0, 16
	movs r2, 0x36
	ldrsh r1, [r3, r2]
	cmp r0, r1
	bne _081CCF70
	strh r4, [r3, 0x38]
	strh r4, [r3, 0x2E]
_081CCF6C:
	movs r0, 0x78
_081CCF6E:
	strh r0, [r3, 0x34]
_081CCF70:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CCEF4

	thumb_func_start sub_81CCF78
sub_81CCF78: @ 81CCF78
	push {r4,lr}
	movs r0, 0x4
	bl sub_81C763C
	adds r4, r0, 0
	movs r0, 0x1
	bl GetBgY
	asrs r0, 8
	movs r1, 0x84
	subs r1, r0
	adds r4, 0xC
	movs r2, 0x2
_081CCF92:
	ldm r4!, {r0}
	strh r1, [r0, 0x22]
	subs r2, 0x1
	cmp r2, 0
	bge _081CCF92
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CCF78

	thumb_func_start sub_81CCFA4
sub_81CCFA4: @ 81CCFA4
	push {r4-r6,lr}
	adds r4, r0, 0
	movs r0, 0x4
	bl sub_81C763C
	movs r1, 0x1
	ands r4, r1
	lsls r5, r4, 2
	movs r6, 0x5
	negs r6, r6
	adds r4, r0, 0
	adds r4, 0xC
	movs r3, 0x2
_081CCFBE:
	ldm r4!, {r0}
	adds r0, 0x3E
	ldrb r2, [r0]
	adds r1, r6, 0
	ands r1, r2
	orrs r1, r5
	strb r1, [r0]
	subs r3, 0x1
	cmp r3, 0
	bge _081CCFBE
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81CCFA4

	thumb_func_start sub_81CCFD8
sub_81CCFD8: @ 81CCFD8
	push {r4,lr}
	ldr r1, =0x0000678c
	movs r0, 0xB
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CD01C
	ldr r1, =0x00006428
	adds r0, r4, r1
	bl sub_81D1ED4
	bl sub_81CD970
	ldr r1, =gKeyRepeatStartDelay
	movs r0, 0x14
	strh r0, [r1]
	ldr r0, =0x00006304
	adds r1, r4, r0
	ldr r0, =sub_81CD08C
	str r0, [r1]
	movs r0, 0x1
	b _081CD01E
	.pool
_081CD01C:
	movs r0, 0
_081CD01E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CCFD8

	thumb_func_start sub_81CD024
sub_81CD024: @ 81CD024
	push {r4,lr}
	ldr r1, =0x0000678c
	movs r0, 0xB
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CD068
	ldr r1, =0x00006428
	adds r0, r4, r1
	bl sub_81D1ED4
	bl sub_81CD9F8
	ldr r1, =gKeyRepeatStartDelay
	movs r0, 0x14
	strh r0, [r1]
	ldr r0, =0x00006304
	adds r1, r4, r0
	ldr r0, =sub_81CD08C
	str r0, [r1]
	movs r0, 0x1
	b _081CD06A
	.pool
_081CD068:
	movs r0, 0
_081CD06A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CD024

	thumb_func_start sub_81CD070
sub_81CD070: @ 81CD070
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	ldr r2, =0x00006304
	adds r1, r0, r2
	ldr r1, [r1]
	bl _call_via_r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CD070

	thumb_func_start sub_81CD08C
sub_81CD08C: @ 81CD08C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x12
	bl sub_81C763C
	adds r5, r0, 0
	adds r0, r4, 0
	bl sub_81CD1E4
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0
	bne _081CD100
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081CD0D0
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081CD100
	movs r1, 0xC6
	lsls r1, 7
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081CD0F0
	ldrh r1, [r5, 0x2]
	ldrh r0, [r5]
	subs r0, 0x1
	cmp r1, r0
	bne _081CD100
_081CD0D0:
	movs r0, 0x5
	bl PlaySE
	ldr r0, =0x00006304
	adds r1, r4, r0
	ldr r0, =sub_81CD19C
	str r0, [r1]
	movs r2, 0x2
	b _081CD100
	.pool
_081CD0F0:
	movs r0, 0x5
	bl PlaySE
	movs r2, 0x5
	ldr r0, =0x00006304
	adds r1, r4, r0
	ldr r0, =sub_81CD110
	str r0, [r1]
_081CD100:
	adds r0, r2, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CD08C

	thumb_func_start sub_81CD110
sub_81CD110: @ 81CD110
	push {r4-r6,lr}
	sub sp, 0x4
	adds r6, r0, 0
	movs r4, 0
	bl sub_811FBA4
	lsls r0, 24
	cmp r0, 0
	bne _081CD18A
	bl sub_81CEF14
	ldr r1, =0x00006786
	adds r5, r6, r1
	movs r1, 0
	ldrsb r1, [r5, r1]
	ldr r2, =0x00006783
	adds r4, r6, r2
	adds r1, r4, r1
	strb r0, [r1]
	movs r0, 0x12
	bl sub_81C763C
	ldrh r1, [r0, 0x2]
	lsls r1, 2
	adds r0, r1
	ldrb r2, [r0, 0x4]
	ldrb r3, [r0, 0x5]
	movs r0, 0
	ldrsb r0, [r5, r0]
	adds r4, r0
	ldrb r1, [r4]
	mov r0, sp
	strb r1, [r0]
	cmp r2, 0xE
	bne _081CD174
	movs r0, 0x64
	muls r0, r3
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x8
	mov r2, sp
	bl SetMonData
	b _081CD180
	.pool
_081CD174:
	adds r0, r2, 0
	adds r1, r3, 0
	movs r2, 0x8
	mov r3, sp
	bl SetBoxMonDataFromAnyBox
_081CD180:
	ldr r0, =0x00006304
	adds r1, r6, r0
	ldr r0, =sub_81CD08C
	str r0, [r1]
	movs r4, 0x6
_081CD18A:
	adds r0, r4, 0
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CD110

	thumb_func_start sub_81CD19C
sub_81CD19C: @ 81CD19C
	push {lr}
	movs r1, 0xC6
	lsls r1, 7
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _081CD1B4
	ldr r0, =0x000186aa
	b _081CD1B6
	.pool
_081CD1B4:
	ldr r0, =0x000186a2
_081CD1B6:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CD19C

	thumb_func_start sub_81CD1C0
sub_81CD1C0: @ 81CD1C0
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	movs r1, 0xC6
	lsls r1, 7
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081CD1DA
	movs r0, 0x12
	bl sub_81C7650
_081CD1DA:
	movs r0, 0xB
	bl sub_81C7650
	pop {r0}
	bx r0
	thumb_func_end sub_81CD1C0

	thumb_func_start sub_81CD1E4
sub_81CD1E4: @ 81CD1E4
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x12
	bl sub_81C763C
	adds r2, r0, 0
	movs r3, 0
	ldr r0, =gMain
	ldrh r1, [r0, 0x2C]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081CD220
	movs r1, 0xC6
	lsls r1, 7
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _081CD210
	ldrh r0, [r2, 0x2]
	cmp r0, 0
	beq _081CD24E
_081CD210:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	b _081CD246
	.pool
_081CD220:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081CD24E
	movs r1, 0xC6
	lsls r1, 7
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _081CD23E
	ldrh r1, [r2, 0x2]
	ldrh r0, [r2]
	subs r0, 0x1
	cmp r1, r0
	bge _081CD24E
_081CD23E:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
_081CD246:
	bl sub_81CD258
	lsls r0, 24
	lsrs r3, r0, 24
_081CD24E:
	adds r0, r3, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CD1E4

	thumb_func_start sub_81CD258
sub_81CD258: @ 81CD258
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	movs r0, 0xB
	bl sub_81C763C
	adds r4, r0, 0
	movs r0, 0x12
	bl sub_81C763C
	adds r5, r0, 0
	mov r0, r8
	cmp r0, 0
	beq _081CD284
	ldr r1, =0x00006788
	adds r0, r4, r1
	b _081CD288
	.pool
_081CD284:
	ldr r2, =0x00006787
	adds r0, r4, r2
_081CD288:
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	lsls r0, 16
	lsrs r0, 16
	adds r7, r0, 0
	ldr r1, =0x00006428
	adds r0, r4, r1
	ldr r2, =0x00006786
	adds r1, r4, r2
	movs r2, 0
	ldrsb r2, [r1, r2]
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 2
	ldr r3, =0x0000643c
	adds r1, r3
	adds r1, r4, r1
	lsls r2, r7, 2
	adds r2, r7
	lsls r2, 2
	adds r2, r3
	adds r2, r4, r2
	bl sub_81D1F84
	ldrh r6, [r5, 0x2]
	bl sub_81CDD5C
	cmp r0, 0
	beq _081CD2D8
	ldrh r1, [r5]
	b _081CD2DC
	.pool
_081CD2D8:
	ldrh r1, [r5]
	subs r1, 0x1
_081CD2DC:
	eors r1, r6
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	adds r6, r0, 0
	mov r0, r8
	cmp r0, 0
	beq _081CD332
	ldr r1, =0x00006787
	adds r2, r4, r1
	ldrb r0, [r2]
	adds r1, 0x1
	adds r3, r4, r1
	strb r0, [r3]
	ldr r0, =0x00006786
	adds r1, r4, r0
	ldrb r0, [r1]
	strb r0, [r2]
	strb r7, [r1]
	ldrb r1, [r3]
	ldr r2, =0x00006789
	adds r0, r4, r2
	strb r1, [r0]
	ldrh r0, [r5, 0x2]
	cmp r0, 0
	bne _081CD312
	ldrh r0, [r5]
_081CD312:
	subs r1, r0, 0x1
	strh r1, [r5, 0x2]
	lsls r0, r1, 16
	cmp r0, 0
	beq _081CD32C
	subs r1, 0x1
	b _081CD384
	.pool
_081CD32C:
	ldrh r0, [r5]
	subs r1, r0, 0x1
	b _081CD384
_081CD332:
	ldr r0, =0x00006788
	adds r2, r4, r0
	ldrb r0, [r2]
	ldr r1, =0x00006787
	adds r3, r4, r1
	strb r0, [r3]
	ldr r0, =0x00006786
	adds r1, r4, r0
	ldrb r0, [r1]
	strb r0, [r2]
	strb r7, [r1]
	ldrb r1, [r3]
	ldr r2, =0x00006789
	adds r0, r4, r2
	strb r1, [r0]
	ldrh r1, [r5, 0x2]
	ldrh r0, [r5]
	subs r0, 0x1
	cmp r1, r0
	bge _081CD370
	adds r0, r1, 0x1
	b _081CD372
	.pool
_081CD370:
	movs r0, 0
_081CD372:
	strh r0, [r5, 0x2]
	ldrh r1, [r5, 0x2]
	ldrh r0, [r5]
	subs r0, 0x1
	cmp r1, r0
	bge _081CD382
	adds r1, 0x1
	b _081CD384
_081CD382:
	movs r1, 0
_081CD384:
	ldr r2, =0x00006302
	adds r0, r4, r2
	strh r1, [r0]
	ldrh r4, [r5, 0x2]
	bl sub_81CDD5C
	cmp r0, 0
	beq _081CD39C
	ldrh r1, [r5]
	b _081CD3A0
	.pool
_081CD39C:
	ldrh r1, [r5]
	subs r1, 0x1
_081CD3A0:
	eors r1, r4
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	cmp r6, 0
	bne _081CD3B0
	movs r0, 0x3
	b _081CD3BA
_081CD3B0:
	cmp r0, 0
	beq _081CD3B8
	movs r0, 0x1
	b _081CD3BA
_081CD3B8:
	movs r0, 0x4
_081CD3BA:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81CD258

	thumb_func_start sub_81CD3C4
sub_81CD3C4: @ 81CD3C4
	push {r4,lr}
	movs r0, 0xB
	bl sub_81C763C
	adds r4, r0, 0
	movs r0, 0x12
	bl sub_81C763C
	adds r2, r0, 0
	ldr r1, =0x0000678a
	adds r0, r4, r1
	ldrb r0, [r0]
	cmp r0, 0x9
	bls _081CD3E2
	b _081CD530
_081CD3E2:
	lsls r0, 2
	ldr r1, =_081CD3F4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CD3F4:
	.4byte _081CD41C
	.4byte _081CD428
	.4byte _081CD434
	.4byte _081CD440
	.4byte _081CD490
	.4byte _081CD4A8
	.4byte _081CD4C0
	.4byte _081CD4D8
	.4byte _081CD4F0
	.4byte _081CD508
_081CD41C:
	movs r1, 0x2
	ldrsh r0, [r2, r1]
	movs r1, 0
	bl sub_81CD824
	b _081CD530
_081CD428:
	movs r1, 0x2
	ldrsh r0, [r2, r1]
	movs r1, 0
	bl sub_81CDA1C
	b _081CD530
_081CD434:
	movs r1, 0x2
	ldrsh r0, [r2, r1]
	movs r1, 0
	bl sub_81CDB98
	b _081CD530
_081CD440:
	ldrh r0, [r2]
	cmp r0, 0x1
	bne _081CD468
	ldr r2, =0x00006786
	adds r0, r4, r2
	movs r1, 0
	strb r1, [r0]
	adds r2, 0x1
	adds r0, r4, r2
	strb r1, [r0]
	adds r2, 0x1
	adds r0, r4, r2
	strb r1, [r0]
	adds r2, 0x2
	adds r0, r4, r2
	strb r1, [r0]
	movs r0, 0x1
	b _081CD53C
	.pool
_081CD468:
	ldr r0, =0x00006786
	adds r1, r4, r0
	movs r0, 0
	strb r0, [r1]
	ldr r2, =0x00006787
	adds r1, r4, r2
	movs r0, 0x1
	strb r0, [r1]
	ldr r0, =0x00006788
	adds r1, r4, r0
	movs r0, 0x2
	strb r0, [r1]
	b _081CD530
	.pool
_081CD490:
	ldrh r0, [r2, 0x2]
	adds r0, 0x1
	ldrh r2, [r2]
	cmp r0, r2
	blt _081CD49C
	movs r0, 0
_081CD49C:
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x1
	bl sub_81CD824
	b _081CD530
_081CD4A8:
	ldrh r0, [r2, 0x2]
	adds r0, 0x1
	ldrh r2, [r2]
	cmp r0, r2
	blt _081CD4B4
	movs r0, 0
_081CD4B4:
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x1
	bl sub_81CDA1C
	b _081CD530
_081CD4C0:
	ldrh r0, [r2, 0x2]
	adds r0, 0x1
	ldrh r2, [r2]
	cmp r0, r2
	blt _081CD4CC
	movs r0, 0
_081CD4CC:
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x1
	bl sub_81CDB98
	b _081CD530
_081CD4D8:
	ldrh r0, [r2, 0x2]
	subs r0, 0x1
	cmp r0, 0
	bge _081CD4E4
	ldrh r0, [r2]
	subs r0, 0x1
_081CD4E4:
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x2
	bl sub_81CD824
	b _081CD530
_081CD4F0:
	ldrh r0, [r2, 0x2]
	subs r0, 0x1
	cmp r0, 0
	bge _081CD4FC
	ldrh r0, [r2]
	subs r0, 0x1
_081CD4FC:
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x2
	bl sub_81CDA1C
	b _081CD530
_081CD508:
	ldrh r0, [r2, 0x2]
	subs r0, 0x1
	cmp r0, 0
	bge _081CD514
	ldrh r0, [r2]
	subs r0, 0x1
_081CD514:
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x2
	bl sub_81CDB98
	ldr r2, =0x0000678a
	adds r1, r4, r2
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x1
	b _081CD53C
	.pool
_081CD530:
	ldr r0, =0x0000678a
	adds r1, r4, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	movs r0, 0
_081CD53C:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CD3C4

	thumb_func_start sub_81CD548
sub_81CD548: @ 81CD548
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	adds r5, r4, 0
	movs r0, 0xB
	bl sub_81C763C
	adds r1, r0, 0
	cmp r4, 0x1
	beq _081CD588
	cmp r4, 0x1
	bgt _081CD566
	cmp r4, 0
	beq _081CD56C
	b _081CD5C4
_081CD566:
	cmp r5, 0x2
	beq _081CD5A4
	b _081CD5C4
_081CD56C:
	ldr r2, =0x00006302
	adds r0, r1, r2
	movs r2, 0
	ldrsh r0, [r0, r2]
	ldr r2, =0x00006789
	adds r1, r2
	ldrb r1, [r1]
	bl sub_81CD824
	b _081CD5C4
	.pool
_081CD588:
	ldr r2, =0x00006302
	adds r0, r1, r2
	movs r2, 0
	ldrsh r0, [r0, r2]
	ldr r2, =0x00006789
	adds r1, r2
	ldrb r1, [r1]
	bl sub_81CDA1C
	b _081CD5C4
	.pool
_081CD5A4:
	ldr r2, =0x00006302
	adds r0, r1, r2
	movs r2, 0
	ldrsh r0, [r0, r2]
	ldr r2, =0x00006789
	adds r1, r2
	ldrb r1, [r1]
	bl sub_81CDB98
	movs r0, 0x1
	b _081CD5C6
	.pool
_081CD5C4:
	movs r0, 0
_081CD5C6:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CD548

	thumb_func_start sub_81CD5CC
sub_81CD5CC: @ 81CD5CC
	push {r4,lr}
	adds r4, r0, 0
	lsls r2, 16
	lsrs r2, 16
	b _081CD5E4
_081CD5D6:
	strb r3, [r4]
	adds r1, 0x1
	adds r4, 0x1
	lsls r0, r2, 16
	ldr r2, =0xffff0000
	adds r0, r2
	lsrs r2, r0, 16
_081CD5E4:
	ldrb r3, [r1]
	adds r0, r3, 0
	cmp r0, 0xFF
	bne _081CD5D6
	adds r1, r2, 0
	lsls r0, r1, 16
	ldr r2, =0xffff0000
	adds r0, r2
	lsrs r2, r0, 16
	lsls r1, 16
	cmp r1, 0
	ble _081CD612
	movs r3, 0
_081CD5FE:
	strb r3, [r4]
	adds r4, 0x1
	adds r1, r2, 0
	lsls r0, r1, 16
	ldr r2, =0xffff0000
	adds r0, r2
	lsrs r2, r0, 16
	lsls r1, 16
	cmp r1, 0
	bgt _081CD5FE
_081CD612:
	movs r0, 0xFF
	strb r0, [r4]
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CD5CC

	thumb_func_start sub_81CD624
sub_81CD624: @ 81CD624
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r5, r0, 0
	adds r4, r1, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r2, 24
	lsrs r2, 24
	mov r10, r2
	movs r0, 0x12
	bl sub_81C763C
	lsls r4, 2
	adds r0, r4
	ldrb r4, [r0, 0x4]
	mov r8, r4
	ldrb r6, [r0, 0x5]
	mov r9, r6
	movs r0, 0xFC
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0x4
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0x8
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0x9
	strb r0, [r5]
	adds r5, 0x1
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0x2D
	movs r3, 0
	bl sub_81D2C68
	cmp r0, 0
	beq _081CD690
	ldr r1, =gText_EggNickname
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0xC
	bl StringCopyPadded
	b _081CD80E
	.pool
_081CD690:
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0x2
	adds r3, r5, 0
	bl sub_81D2C68
	adds r0, r5, 0
	bl StringGetEnd10
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0xB
	movs r3, 0
	bl sub_81D2C68
	lsls r0, 16
	lsrs r7, r0, 16
	cmp r4, 0xE
	bne _081CD6E0
	movs r0, 0x64
	adds r4, r6, 0
	muls r4, r0
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	adds r0, r4, 0
	bl GetMonGender
	lsls r0, 24
	lsrs r6, r0, 24
	b _081CD6FE
	.pool
_081CD6E0:
	mov r0, r8
	mov r1, r9
	bl GetBoxedMonPtr
	adds r4, r0, 0
	bl GetBoxMonGender
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r4, 0
	bl GetLevelFromBoxMonExp
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
_081CD6FE:
	cmp r7, 0x1D
	beq _081CD706
	cmp r7, 0x20
	bne _081CD71C
_081CD706:
	movs r0, 0xB
	adds r1, r7, 0
	muls r1, r0
	ldr r0, =gSpeciesNames
	adds r1, r0
	adds r0, r5, 0
	bl StringCompare
	cmp r0, 0
	bne _081CD71C
	movs r6, 0xFF
_081CD71C:
	adds r3, r5, 0
	b _081CD726
	.pool
_081CD724:
	adds r3, 0x1
_081CD726:
	ldrb r0, [r3]
	cmp r0, 0xFF
	bne _081CD724
	movs r1, 0xFC
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x12
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x3C
	strb r0, [r3]
	adds r3, 0x1
	cmp r6, 0
	beq _081CD74A
	cmp r6, 0xFE
	beq _081CD76E
	movs r0, 0x77
	b _081CD790
_081CD74A:
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x1
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x4
	strb r0, [r3]
	adds r3, 0x1
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x3
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x5
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xB5
	b _081CD790
_081CD76E:
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x1
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x6
	strb r0, [r3]
	adds r3, 0x1
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x3
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x7
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xB6
_081CD790:
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xFC
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x4
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x8
	strb r0, [r3]
	adds r3, 0x1
	movs r5, 0
	strb r5, [r3]
	adds r3, 0x1
	movs r0, 0x9
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xBA
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xF9
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x5
	strb r0, [r3]
	adds r3, 0x1
	adds r4, r3, 0
	adds r0, r4, 0
	mov r1, r8
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r3, r0, 0
	subs r4, r3, r4
	lsls r4, 16
	lsrs r4, 16
	strb r5, [r3]
	adds r3, 0x1
	mov r0, r10
	cmp r0, 0
	bne _081CD808
	movs r0, 0x3
	subs r0, r4
	lsls r0, 16
	ldr r1, =0xffff0000
	adds r0, r1
	lsrs r4, r0, 16
	ldr r0, =0x0000ffff
	cmp r4, r0
	beq _081CD808
	movs r2, 0
	adds r1, r0, 0
_081CD7FA:
	strb r2, [r3]
	adds r3, 0x1
	subs r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, r1
	bne _081CD7FA
_081CD808:
	movs r0, 0xFF
	strb r0, [r3]
	adds r0, r3, 0
_081CD80E:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CD624

	thumb_func_start sub_81CD824
sub_81CD824: @ 81CD824
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r1, 24
	lsrs r6, r1, 24
	movs r0, 0xB
	bl sub_81C763C
	adds r5, r0, 0
	movs r0, 0x12
	bl sub_81C763C
	adds r7, r0, 0
	mov r1, r8
	lsls r0, r1, 16
	asrs r4, r0, 16
	bl sub_81CDD5C
	cmp r0, 0
	beq _081CD85A
	ldrh r2, [r7]
	cmp r4, r2
	bne _081CD862
	b _081CD900
_081CD85A:
	ldrh r0, [r7]
	subs r0, 0x1
	cmp r4, r0
	beq _081CD900
_081CD862:
	lsls r0, r6, 6
	ldr r1, =0x00006368
	adds r0, r1
	adds r0, r5, r0
	mov r2, r8
	lsls r4, r2, 16
	lsrs r1, r4, 16
	movs r2, 0
	bl sub_81CD624
	asrs r4, 14
	adds r4, r7, r4
	ldrb r3, [r4, 0x4]
	lsls r0, r6, 1
	adds r0, r6
	lsls r4, r0, 3
	ldr r1, =0x00006320
	adds r0, r5, r1
	adds r0, r4
	movs r2, 0
	movs r1, 0xFC
	strb r1, [r0]
	ldr r1, =0x00006321
	adds r0, r5, r1
	adds r0, r4
	movs r1, 0x4
	strb r1, [r0]
	ldr r1, =0x00006322
	adds r0, r5, r1
	adds r0, r4
	movs r1, 0x8
	strb r1, [r0]
	ldr r1, =0x00006323
	adds r0, r5, r1
	adds r0, r4
	strb r2, [r0]
	ldr r2, =0x00006324
	adds r0, r5, r2
	adds r0, r4
	movs r1, 0x9
	strb r1, [r0]
	cmp r3, 0xE
	bne _081CD8E4
	adds r0, r4, r5
	ldr r1, =0x00006325
	adds r0, r1
	ldr r1, =gUnknown_085EBFCE
	b _081CD8F4
	.pool
_081CD8E4:
	adds r4, r5
	ldr r2, =0x00006325
	adds r4, r2
	adds r0, r3, 0
	bl sav3_get_box_name
	adds r1, r0, 0
	adds r0, r4, 0
_081CD8F4:
	movs r2, 0x8
	bl sub_81CD5CC
	b _081CD95C
	.pool
_081CD900:
	movs r1, 0
	lsls r4, r6, 6
	lsls r0, r6, 1
	mov r8, r0
	adds r3, r4, 0
	ldr r0, =0x00006368
	adds r2, r5, r0
	movs r7, 0
_081CD910:
	adds r0, r1, r3
	adds r0, r2, r0
	strb r7, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0xB
	bls _081CD910
	adds r1, r4
	ldr r2, =0x00006368
	adds r0, r5, r2
	adds r0, r1
	movs r1, 0xFF
	strb r1, [r0]
	movs r1, 0
	mov r2, r8
	adds r0, r2, r6
	lsls r3, r0, 3
	ldr r0, =0x00006320
	adds r2, r5, r0
	movs r4, 0
_081CD93A:
	adds r0, r1, r3
	adds r0, r2, r0
	strb r4, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x7
	bls _081CD93A
	mov r2, r8
	adds r0, r2, r6
	lsls r0, 3
	adds r0, r1, r0
	ldr r2, =0x00006320
	adds r1, r5, r2
	adds r1, r0
	movs r0, 0xFF
	strb r0, [r1]
_081CD95C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CD824

	thumb_func_start sub_81CD970
sub_81CD970: @ 81CD970
	push {r4-r7,lr}
	movs r0, 0xB
	bl sub_81C763C
	adds r7, r0, 0
	ldr r1, =0x000006ac
	movs r0, 0x12
	bl sub_81C761C
	adds r6, r0, 0
	movs r0, 0xC6
	lsls r0, 7
	adds r1, r7, r0
	movs r0, 0
	strb r0, [r1]
	movs r4, 0
	movs r5, 0
	b _081CD9C4
	.pool
_081CD998:
	movs r0, 0x64
	muls r0, r4
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x2D
	bl GetMonData
	adds r2, r0, 0
	cmp r2, 0
	bne _081CD9BE
	lsls r1, r5, 2
	adds r1, r6, r1
	movs r0, 0xE
	strb r0, [r1, 0x4]
	strb r4, [r1, 0x5]
	strh r2, [r1, 0x6]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
_081CD9BE:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
_081CD9C4:
	bl CalculatePlayerPartyCount
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	bcc _081CD998
	lsls r0, r5, 2
	adds r0, r6, r0
	movs r1, 0
	strb r1, [r0, 0x4]
	strb r1, [r0, 0x5]
	movs r2, 0
	strh r1, [r0, 0x6]
	strh r1, [r6, 0x2]
	adds r0, r5, 0x1
	strh r0, [r6]
	ldr r1, =0x0000678a
	adds r0, r7, r1
	strb r2, [r0]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CD970

	thumb_func_start sub_81CD9F8
sub_81CD9F8: @ 81CD9F8
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	movs r1, 0xC6
	lsls r1, 7
	adds r2, r0, r1
	movs r3, 0
	movs r1, 0x1
	strb r1, [r2]
	ldr r1, =0x0000678a
	adds r0, r1
	strb r3, [r0]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CD9F8

	thumb_func_start sub_81CDA1C
sub_81CDA1C: @ 81CDA1C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	movs r0, 0xB
	bl sub_81C763C
	mov r8, r0
	movs r0, 0x12
	bl sub_81C763C
	adds r4, r0, 0
	lsls r0, r6, 16
	asrs r5, r0, 16
	bl sub_81CDD5C
	cmp r0, 0
	beq _081CDA52
	ldrh r0, [r4]
	cmp r5, r0
	bne _081CDA5A
	b _081CDB48
_081CDA52:
	ldrh r0, [r4]
	subs r0, 0x1
	cmp r5, r0
	beq _081CDB48
_081CDA5A:
	lsls r0, r6, 16
	asrs r0, 14
	adds r0, r4, r0
	ldrb r6, [r0, 0x4]
	ldrb r7, [r0, 0x5]
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x16
	movs r3, 0
	bl sub_81D2C68
	mov r1, r9
	lsls r5, r1, 2
	adds r4, r5, r1
	ldr r1, =0x00006428
	add r1, r8
	adds r1, r4
	strb r0, [r1]
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x2F
	movs r3, 0
	bl sub_81D2C68
	ldr r1, =0x00006429
	add r1, r8
	adds r1, r4
	strb r0, [r1]
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x21
	movs r3, 0
	bl sub_81D2C68
	ldr r1, =0x0000642a
	add r1, r8
	adds r1, r4
	strb r0, [r1]
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x18
	movs r3, 0
	bl sub_81D2C68
	ldr r1, =0x0000642b
	add r1, r8
	adds r1, r4
	strb r0, [r1]
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x17
	movs r3, 0
	bl sub_81D2C68
	ldr r1, =0x0000642c
	add r1, r8
	adds r1, r4
	strb r0, [r1]
	movs r0, 0xCF
	lsls r0, 7
	add r0, r8
	mov r2, r9
	adds r4, r0, r2
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x30
	movs r3, 0
	bl sub_81D2C68
	cmp r0, 0xFF
	beq _081CDB10
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x30
	movs r3, 0
	bl sub_81D2C68
	movs r1, 0x1D
	bl __udivsi3
	b _081CDB12
	.pool
_081CDB10:
	movs r0, 0x9
_081CDB12:
	strb r0, [r4]
	adds r0, r6, 0
	adds r1, r7, 0
	movs r2, 0x8
	movs r3, 0
	bl sub_81D2C68
	ldr r1, =0x00006783
	add r1, r8
	add r1, r9
	strb r0, [r1]
	mov r0, r9
	adds r1, r5, r0
	ldr r2, =0x00006428
	adds r0, r1, r2
	add r0, r8
	lsls r1, 2
	adds r2, 0x14
	adds r1, r2
	add r1, r8
	bl sub_81D2754
	b _081CDB80
	.pool
_081CDB48:
	movs r2, 0
	mov r0, r9
	lsls r5, r0, 2
	add r5, r9
	ldr r4, =0x00006428
	add r4, r8
	lsls r3, r5, 2
	mov r9, r2
	ldr r7, =0x0000643c
	movs r6, 0x9B
_081CDB5C:
	adds r0, r2, r5
	adds r0, r4, r0
	mov r1, r9
	strb r1, [r0]
	lsls r0, r2, 2
	adds r0, r3
	add r0, r8
	adds r1, r0, r7
	strh r6, [r1]
	ldr r1, =0x0000643e
	adds r0, r1
	movs r1, 0x5B
	strh r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x4
	bls _081CDB5C
_081CDB80:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CDA1C

	thumb_func_start sub_81CDB98
sub_81CDB98: @ 81CDB98
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	movs r0, 0xB
	bl sub_81C763C
	adds r7, r0, 0
	movs r0, 0x12
	bl sub_81C763C
	adds r4, r0, 0
	lsls r0, r6, 16
	asrs r5, r0, 16
	bl sub_81CDD5C
	cmp r0, 0
	beq _081CDBCC
	ldrh r0, [r4]
	b _081CDBD0
_081CDBCC:
	ldrh r0, [r4]
	subs r0, 0x1
_081CDBD0:
	cmp r5, r0
	beq _081CDC3E
	lsls r0, r6, 16
	asrs r0, 14
	adds r0, r4, r0
	ldrb r5, [r0, 0x4]
	ldrb r6, [r0, 0x5]
	adds r0, r5, 0
	adds r1, r6, 0
	movs r2, 0x41
	movs r3, 0
	bl sub_81D2C68
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r5, 0
	adds r1, r6, 0
	movs r2, 0x1
	movs r3, 0
	bl sub_81D2C68
	mov r8, r0
	adds r0, r5, 0
	adds r1, r6, 0
	movs r2, 0
	movs r3, 0
	bl sub_81D2C68
	adds r5, r0, 0
	lsls r0, r4, 3
	ldr r1, =gMonFrontPicTable
	adds r0, r1
	mov r2, r9
	lsls r1, r2, 13
	movs r2, 0xC0
	lsls r2, 2
	adds r1, r2
	adds r1, r7, r1
	movs r2, 0x1
	str r2, [sp]
	adds r2, r4, 0
	adds r3, r5, 0
	bl LoadSpecialPokePic
	adds r0, r4, 0
	mov r1, r8
	adds r2, r5, 0
	bl species_and_otid_get_pal
	mov r2, r9
	lsls r1, r2, 7
	adds r1, r7, r1
	bl LZ77UnCompWram
_081CDC3E:
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CDB98

	thumb_func_start sub_81CDC50
sub_81CDC50: @ 81CDC50
	push {lr}
	movs r0, 0x12
	bl sub_81C763C
	ldrh r0, [r0]
	pop {r1}
	bx r1
	thumb_func_end sub_81CDC50

	thumb_func_start sub_81CDC60
sub_81CDC60: @ 81CDC60
	push {lr}
	movs r0, 0x12
	bl sub_81C763C
	ldrh r0, [r0, 0x2]
	pop {r1}
	bx r1
	thumb_func_end sub_81CDC60

	thumb_func_start sub_81CDC70
sub_81CDC70: @ 81CDC70
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	ldr r1, =0x00006428
	adds r0, r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDC70

	thumb_func_start sub_81CDC84
sub_81CDC84: @ 81CDC84
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	ldr r1, =0x00006786
	adds r0, r1
	ldrb r0, [r0]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDC84

	thumb_func_start sub_81CDC9C
sub_81CDC9C: @ 81CDC9C
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	ldr r1, =0x00006302
	adds r0, r1
	ldrb r0, [r0]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDC9C

	thumb_func_start sub_81CDCB4
sub_81CDCB4: @ 81CDCB4
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0xB
	bl sub_81C763C
	lsls r4, 13
	movs r1, 0xC0
	lsls r1, 2
	adds r4, r1
	adds r0, r4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CDCB4

	thumb_func_start sub_81CDCD4
sub_81CDCD4: @ 81CDCD4
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0xB
	bl sub_81C763C
	lsls r4, 7
	adds r0, r4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CDCD4

	thumb_func_start sub_81CDCEC
sub_81CDCEC: @ 81CDCEC
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	ldr r1, =0x00006789
	adds r0, r1
	ldrb r0, [r0]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDCEC

	thumb_func_start sub_81CDD04
sub_81CDD04: @ 81CDD04
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0xB
	bl sub_81C763C
	lsls r4, 6
	ldr r1, =0x00006368
	adds r4, r1
	adds r0, r4
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDD04

	thumb_func_start sub_81CDD24
sub_81CDD24: @ 81CDD24
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0xB
	bl sub_81C763C
	lsls r1, r4, 1
	adds r1, r4
	lsls r1, 3
	ldr r2, =0x00006320
	adds r1, r2
	adds r0, r1
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDD24

	thumb_func_start sub_81CDD48
sub_81CDD48: @ 81CDD48
	push {lr}
	movs r0, 0x12
	bl sub_81C763C
	ldrh r1, [r0, 0x2]
	lsls r1, 2
	adds r0, r1
	ldrh r0, [r0, 0x6]
	pop {r1}
	bx r1
	thumb_func_end sub_81CDD48

	thumb_func_start sub_81CDD5C
sub_81CDD5C: @ 81CDD5C
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	movs r1, 0xC6
	lsls r1, 7
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081CDD74
	movs r0, 0
	b _081CDD76
_081CDD74:
	movs r0, 0x1
_081CDD76:
	pop {r1}
	bx r1
	thumb_func_end sub_81CDD5C

	thumb_func_start sub_81CDD7C
sub_81CDD7C: @ 81CDD7C
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	adds r2, r0, 0
	movs r1, 0xC6
	lsls r1, 7
	adds r0, r2, r1
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081CDD96
	movs r0, 0
	b _081CDDA6
_081CDD96:
	ldr r3, =0x00006786
	adds r0, r2, r3
	movs r1, 0
	ldrsb r1, [r0, r1]
	subs r3, 0x3
	adds r0, r2, r3
	adds r0, r1
	ldrb r0, [r0]
_081CDDA6:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDD7C

	thumb_func_start sub_81CDDB0
sub_81CDDB0: @ 81CDDB0
	push {lr}
	movs r0, 0xB
	bl sub_81C763C
	ldr r2, =0x00006786
	adds r1, r0, r2
	ldrb r1, [r1]
	lsls r1, 24
	asrs r1, 24
	subs r2, 0x6
	adds r0, r2
	adds r0, r1
	ldrb r0, [r0]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDDB0

	thumb_func_start sub_81CDDD4
sub_81CDDD4: @ 81CDDD4
	push {r4,lr}
	ldr r1, =0x000038ac
	movs r0, 0xC
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CDE24
	ldr r0, =0x00001816
	adds r1, r4, r0
	movs r0, 0xFF
	strb r0, [r1]
	ldr r0, =sub_81CDE94
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4]
	ldr r0, =0x00001810
	adds r1, r4, r0
	ldr r0, =sub_81CDE80
	str r0, [r1]
	ldr r0, =0x00002908
	adds r1, r4, r0
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x1
	b _081CDE26
	.pool
_081CDE24:
	movs r0, 0
_081CDE26:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CDDD4

	thumb_func_start sub_81CDE2C
sub_81CDE2C: @ 81CDE2C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xC
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =gUnknown_08623384
	lsls r4, 2
	adds r4, r0
	ldr r0, [r4]
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r5]
	ldr r0, =0x00001810
	adds r5, r0
	ldr r0, =sub_81CDE80
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CDE2C

	thumb_func_start sub_81CDE64
sub_81CDE64: @ 81CDE64
	push {lr}
	movs r0, 0xC
	bl sub_81C763C
	ldr r1, =0x00001810
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CDE64

	thumb_func_start sub_81CDE80
sub_81CDE80: @ 81CDE80
	push {lr}
	movs r0, 0xC
	bl sub_81C763C
	ldr r0, [r0]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81CDE80

	thumb_func_start sub_81CDE94
sub_81CDE94: @ 81CDE94
	push {r4-r6,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0xC
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x14
	bls _081CDEA8
	b _081CE2C4
_081CDEA8:
	lsls r0, r4, 2
	ldr r1, =_081CDEB8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CDEB8:
	.4byte _081CDF0C
	.4byte _081CDF18
	.4byte _081CDF94
	.4byte _081CDFB8
	.4byte _081CE030
	.4byte _081CE074
	.4byte _081CE0B0
	.4byte _081CE118
	.4byte _081CE120
	.4byte _081CE126
	.4byte _081CE136
	.4byte _081CE146
	.4byte _081CE156
	.4byte _081CE16C
	.4byte _081CE1C8
	.4byte _081CE1EC
	.4byte _081CE218
	.4byte _081CE23C
	.4byte _081CE24A
	.4byte _081CE25A
	.4byte _081CE262
_081CDF0C:
	bl sub_81CD3C4
	cmp r0, 0x1
	beq _081CDF16
	b _081CE2C0
_081CDF16:
	b _081CDFB0
_081CDF18:
	ldr r0, =gUnknown_08623358
	movs r1, 0x3
	bl sub_81C7B54
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldr r1, =0x00007940
	movs r0, 0
	bl SetGpuReg
	ldr r1, =0x00000844
	movs r0, 0x50
	bl SetGpuReg
	ldr r1, =0x0000040b
	movs r0, 0x52
	bl SetGpuReg
	ldr r1, =gUnknown_08DC6548
	movs r0, 0
	str r0, [sp]
	movs r0, 0x3
	b _081CDFA8
	.pool
_081CDF94:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _081CDFA2
	b _081CE2C0
_081CDFA2:
	ldr r1, =gUnknown_08623228
	str r0, [sp]
	movs r0, 0x2
_081CDFA8:
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
_081CDFB0:
	movs r0, 0
	b _081CE2C6
	.pool
_081CDFB8:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _081CDFC4
	b _081CE2C0
_081CDFC4:
	ldr r0, =gUnknown_08DC6DFC
	adds r4, r5, 0x4
	adds r1, r4, 0
	bl LZ77UnCompVram
	movs r0, 0x3
	adds r1, r4, 0
	bl SetBgTilemapBuffer
	bl sub_81CDD5C
	cmp r0, 0x1
	bne _081CDFF2
	ldr r1, =gUnknown_08DC7070
	movs r0, 0x9
	str r0, [sp]
	movs r0, 0x4
	str r0, [sp, 0x4]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0x5
	bl CopyToBgTilemapBufferRect
_081CDFF2:
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_08DC6528
	movs r1, 0x10
	movs r2, 0x20
	bl sub_81C7944
	ldr r0, =gUnknown_08623208
	movs r1, 0xF0
	movs r2, 0x20
	bl sub_81C7944
	ldr r0, =0x00001814
	adds r1, r5, r0
	ldr r0, =0x0000ffb0
	strh r0, [r1]
	b _081CDFB0
	.pool
_081CE030:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _081CE03C
	b _081CE2C0
_081CE03C:
	ldr r0, =gUnknown_0862323C
	ldr r1, =0x00001004
	adds r4, r5, r1
	adds r1, r4, 0
	bl LZ77UnCompVram
	movs r0, 0x2
	adds r1, r4, 0
	bl SetBgTilemapBuffer
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_086231E8
	movs r1, 0x30
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0x2
	bl sub_81D21DC
	b _081CDFB0
	.pool
_081CE074:
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_8199DF0
	movs r0, 0x1
	movs r1, 0x11
	movs r2, 0x1
	movs r3, 0x1
	bl sub_8199DF0
	movs r0, 0
	str r0, [sp, 0x8]
	ldr r2, =0x00000804
	adds r4, r5, r2
	ldr r2, =0x05000200
	add r0, sp, 0x8
	adds r1, r4, 0
	bl CpuSet
	movs r0, 0x1
	adds r1, r4, 0
	bl SetBgTilemapBuffer
	b _081CDFB0
	.pool
_081CE0B0:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _081CE0BC
	b _081CE2C0
_081CE0BC:
	ldr r0, =gUnknown_08623364
	bl AddWindow
	movs r2, 0xC1
	lsls r2, 5
	adds r1, r5, r2
	strb r0, [r1]
	bl sub_81CDD5C
	cmp r0, 0x1
	bne _081CE0F6
	ldr r0, =gUnknown_0862336C
	bl AddWindow
	ldr r2, =0x00001821
	adds r1, r5, r2
	strb r0, [r1]
	ldr r0, =gUnknown_08623374
	bl AddWindow
	ldr r2, =0x00001822
	adds r1, r5, r2
	strb r0, [r1]
	ldr r0, =gUnknown_0862337C
	bl AddWindow
	ldr r2, =0x00001823
	adds r1, r5, r2
	strb r0, [r1]
_081CE0F6:
	bl DeactivateAllTextPrinters
	b _081CDFB0
	.pool
_081CE118:
	movs r0, 0
	bl sub_81CED30
	b _081CDFB0
_081CE120:
	bl sub_81CE9E4
	b _081CDFB0
_081CE126:
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CE130
	b _081CDFB0
_081CE130:
	bl sub_81CE934
	b _081CDFB0
_081CE136:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0
	b _081CE164
_081CE146:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x1
	b _081CE164
_081CE156:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x2
_081CE164:
	movs r2, 0x1
	bl sub_81CE754
	b _081CDFB0
_081CE16C:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x3
	movs r2, 0x1
	bl sub_81CE754
	cmp r0, 0x1
	beq _081CE186
	b _081CE2C0
_081CE186:
	movs r1, 0xC1
	lsls r1, 5
	adds r0, r5, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CE19C
	b _081CDFB0
_081CE19C:
	ldr r2, =0x00001821
	adds r0, r5, r2
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r1, =0x00001822
	adds r0, r5, r1
	ldrb r0, [r0]
	bl PutWindowTilemap
	ldr r2, =0x00001823
	adds r0, r5, r2
	ldrb r0, [r0]
	bl PutWindowTilemap
	b _081CDFB0
	.pool
_081CE1C8:
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl HideBg
	movs r0, 0x3
	bl ShowBg
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CE1E4
	b _081CDFB0
_081CE1E4:
	movs r0, 0x4
	bl sub_81C7BA4
	b _081CDFB0
_081CE1EC:
	movs r0, 0x1
	bl sub_81C7AC0
	bl sub_81CDD5C
	cmp r0, 0
	beq _081CE1FC
	b _081CDFB0
_081CE1FC:
	movs r0, 0x6
	bl sub_81C7DFC
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	bl sub_81C7FA0
	movs r0, 0x6
	movs r1, 0x1
	movs r2, 0
	bl sub_81C7FA0
	b _081CDFB0
_081CE218:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CE2C0
	bl sub_81CDD5C
	cmp r0, 0
	bne _081CE230
	bl sub_81C8010
	cmp r0, 0
	bne _081CE2C0
_081CE230:
	ldr r0, =sub_81CEE44
	bl c3args_set_0toR1_1to0
	b _081CDFB0
	.pool
_081CE23C:
	bl sub_81CEE90
	bl sub_81CDC70
	bl sub_81D20AC
	b _081CDFB0
_081CE24A:
	bl sub_81CDC70
	bl sub_81D20BC
	lsls r0, 24
	cmp r0, 0
	bne _081CE2C0
	b _081CDFB0
_081CE25A:
	movs r0, 0x1
	bl sub_81CEE74
	b _081CDFB0
_081CE262:
	bl sub_81CDC70
	ldr r2, =0x00001814
	adds r1, r5, r2
	bl sub_81D3178
	lsls r0, 24
	cmp r0, 0
	bne _081CE2C0
	ldr r0, =0x000028e0
	adds r6, r5, r0
	adds r0, r6, 0
	bl sub_81D3464
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CE298
	bl sub_81CDC60
	adds r4, r0, 0
	bl sub_81CDC50
	lsls r4, 16
	lsls r0, 16
	cmp r4, r0
	beq _081CE2C4
_081CE298:
	ldr r1, =0x00001816
	adds r0, r5, r1
	ldrb r4, [r0]
	bl sub_81CDDB0
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r6, 0
	adds r1, r4, 0
	bl sub_81D3480
	b _081CE2C4
	.pool
_081CE2C0:
	movs r0, 0x2
	b _081CE2C6
_081CE2C4:
	movs r0, 0x4
_081CE2C6:
	add sp, 0xC
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81CDE94

	thumb_func_start sub_81CE2D0
sub_81CE2D0: @ 81CE2D0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xC
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CE308
	cmp r4, 0x1
	bgt _081CE2EA
	cmp r4, 0
	beq _081CE2F4
	b _081CE374
_081CE2EA:
	cmp r4, 0x2
	beq _081CE328
	cmp r4, 0x3
	beq _081CE33E
	b _081CE374
_081CE2F4:
	bl sub_81CEEC8
	ldr r1, =0x000028e0
	adds r0, r5, r1
	bl sub_81D3520
	movs r0, 0x1
	b _081CE376
	.pool
_081CE308:
	bl sub_81CDC70
	ldr r2, =0x00001814
	adds r1, r5, r2
	bl sub_81D31A4
	lsls r0, 24
	cmp r0, 0
	bne _081CE34E
	movs r0, 0
	bl sub_81CEE74
	movs r0, 0x1
	b _081CE376
	.pool
_081CE328:
	movs r0, 0
	bl sub_81C7AC0
	bl sub_81CDD5C
	cmp r0, 0
	bne _081CE33A
	bl sub_81C78A0
_081CE33A:
	movs r0, 0
	b _081CE376
_081CE33E:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CE34E
	bl sub_81C78C0
	cmp r0, 0
	beq _081CE352
_081CE34E:
	movs r0, 0x2
	b _081CE376
_081CE352:
	ldr r1, =0x000028e0
	adds r0, r5, r1
	bl sub_81D354C
	movs r0, 0x1
	bl HideBg
	movs r0, 0x2
	bl HideBg
	movs r0, 0x3
	bl HideBg
	movs r0, 0x1
	b _081CE376
	.pool
_081CE374:
	movs r0, 0x4
_081CE376:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CE2D0

	thumb_func_start sub_81CE37C
sub_81CE37C: @ 81CE37C
	push {r4-r6,lr}
	adds r4, r0, 0
	movs r0, 0xC
	bl sub_81C763C
	adds r6, r0, 0
	bl sub_81CDC70
	adds r2, r0, 0
	cmp r4, 0x9
	bls _081CE394
	b _081CE4D0
_081CE394:
	lsls r0, r4, 2
	ldr r1, =_081CE3A4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CE3A4:
	.4byte _081CE3CC
	.4byte _081CE3D0
	.4byte _081CE3DA
	.4byte _081CE3F0
	.4byte _081CE3F8
	.4byte _081CE418
	.4byte _081CE428
	.4byte _081CE438
	.4byte _081CE44E
	.4byte _081CE468
_081CE3CC:
	movs r0, 0
	b _081CE3D2
_081CE3D0:
	movs r0, 0x1
_081CE3D2:
	bl sub_81CD548
_081CE3D6:
	movs r0, 0x1
	b _081CE4D2
_081CE3DA:
	movs r0, 0x2
	bl sub_81CD548
	ldr r1, =0x000028e0
	adds r0, r6, r1
	bl sub_81D3520
	b _081CE3D6
	.pool
_081CE3F0:
	adds r0, r2, 0
	bl sub_81D2074
	b _081CE3D6
_081CE3F8:
	ldr r1, =0x00001814
	adds r0, r6, r1
	bl sub_81D3150
	lsls r0, 24
	cmp r0, 0
	bne _081CE4CC
	bl sub_81CDC84
	lsls r0, 24
	lsrs r0, 24
	bl sub_81CED30
	b _081CE3D6
	.pool
_081CE418:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0
	b _081CE446
_081CE428:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x1
	b _081CE446
_081CE438:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x2
_081CE446:
	movs r2, 0
	bl sub_81CE754
	b _081CE3D6
_081CE44E:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x3
	movs r2, 0
	bl sub_81CE754
	cmp r0, 0x1
	beq _081CE3D6
	b _081CE4CC
_081CE468:
	bl sub_81CDC70
	adds r2, r0, 0
	ldr r0, =0x00001814
	adds r1, r6, r0
	adds r0, r2, 0
	bl sub_81D3178
	lsls r0, 24
	cmp r0, 0
	bne _081CE4CC
	ldr r1, =0x000028e0
	adds r0, r6, r1
	bl sub_81D3464
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CE4A0
	bl sub_81CDC60
	adds r4, r0, 0
	bl sub_81CDC50
	lsls r4, 16
	lsls r0, 16
	cmp r4, r0
	beq _081CE3D6
_081CE4A0:
	ldr r0, =0x000028e0
	adds r5, r6, r0
	ldr r1, =0x00001816
	adds r0, r6, r1
	ldrb r4, [r0]
	bl sub_81CDDB0
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_81D3480
	b _081CE3D6
	.pool
_081CE4CC:
	movs r0, 0x2
	b _081CE4D2
_081CE4D0:
	movs r0, 0x4
_081CE4D2:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81CE37C

	thumb_func_start sub_81CE4D8
sub_81CE4D8: @ 81CE4D8
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xC
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x8
	bhi _081CE5DC
	lsls r0, r4, 2
	ldr r1, =_081CE4F8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CE4F8:
	.4byte _081CE51C
	.4byte _081CE520
	.4byte _081CE524
	.4byte _081CE52E
	.4byte _081CE53E
	.4byte _081CE54E
	.4byte _081CE55E
	.4byte _081CE576
	.4byte _081CE592
_081CE51C:
	movs r0, 0
	b _081CE526
_081CE520:
	movs r0, 0x1
	b _081CE526
_081CE524:
	movs r0, 0x2
_081CE526:
	bl sub_81CD548
	movs r0, 0x1
	b _081CE5DE
_081CE52E:
	bl sub_81CDC84
	lsls r0, 24
	lsrs r0, 24
	bl sub_81CED30
	movs r0, 0x1
	b _081CE5DE
_081CE53E:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0
	b _081CE56C
_081CE54E:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x1
	b _081CE56C
_081CE55E:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x2
_081CE56C:
	movs r2, 0
	bl sub_81CE754
	movs r0, 0x1
	b _081CE5DE
_081CE576:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x3
	movs r2, 0
	bl sub_81CE754
	cmp r0, 0x1
	bne _081CE5D8
	movs r0, 0x1
	b _081CE5DE
_081CE592:
	bl sub_81CDC70
	ldr r2, =0x00001814
	adds r1, r5, r2
	bl sub_81D3178
	lsls r0, 24
	cmp r0, 0
	bne _081CE5D8
	ldr r0, =0x000028e0
	adds r4, r5, r0
	adds r0, r4, 0
	bl sub_81D3464
	ldr r1, =0x00001816
	adds r0, r5, r1
	ldrb r5, [r0]
	bl sub_81CDDB0
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_81D3480
	movs r0, 0x1
	b _081CE5DE
	.pool
_081CE5D8:
	movs r0, 0x2
	b _081CE5DE
_081CE5DC:
	movs r0, 0x4
_081CE5DE:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CE4D8

	thumb_func_start sub_81CE5E4
sub_81CE5E4: @ 81CE5E4
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xC
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x7
	bhi _081CE6B2
	lsls r0, r4, 2
	ldr r1, =_081CE604
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CE604:
	.4byte _081CE624
	.4byte _081CE628
	.4byte _081CE632
	.4byte _081CE648
	.4byte _081CE660
	.4byte _081CE670
	.4byte _081CE680
	.4byte _081CE696
_081CE624:
	movs r0, 0
	b _081CE62A
_081CE628:
	movs r0, 0x1
_081CE62A:
	bl sub_81CD548
_081CE62E:
	movs r0, 0x1
	b _081CE6B4
_081CE632:
	movs r0, 0x2
	bl sub_81CD548
	ldr r1, =0x000028e0
	adds r0, r5, r1
	bl sub_81D3520
	b _081CE62E
	.pool
_081CE648:
	bl sub_81CDC70
	ldr r2, =0x00001814
	adds r1, r5, r2
	bl sub_81D31A4
	lsls r0, 24
	cmp r0, 0
	beq _081CE62E
	b _081CE6AE
	.pool
_081CE660:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0
	b _081CE68E
_081CE670:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x1
	b _081CE68E
_081CE680:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x2
_081CE68E:
	movs r2, 0
	bl sub_81CE754
	b _081CE62E
_081CE696:
	bl sub_81CDC84
	adds r1, r0, 0
	lsls r1, 24
	asrs r1, 8
	lsrs r1, 16
	movs r0, 0x3
	movs r2, 0
	bl sub_81CE754
	cmp r0, 0x1
	beq _081CE62E
_081CE6AE:
	movs r0, 0x2
	b _081CE6B4
_081CE6B2:
	movs r0, 0x4
_081CE6B4:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CE5E4

	thumb_func_start sub_81CE6BC
sub_81CE6BC: @ 81CE6BC
	push {lr}
	cmp r0, 0x1
	beq _081CE6E6
	cmp r0, 0x1
	bgt _081CE6CC
	cmp r0, 0
	beq _081CE6D2
	b _081CE6FA
_081CE6CC:
	cmp r0, 0x2
	beq _081CE6EE
	b _081CE6FA
_081CE6D2:
	bl sub_81CDD7C
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0xB0
	movs r2, 0x20
	bl sub_811FAA4
_081CE6E2:
	movs r0, 0x1
	b _081CE6FC
_081CE6E6:
	movs r0, 0x5
	bl sub_81C7BA4
	b _081CE6E2
_081CE6EE:
	bl sub_81C7BE8
	cmp r0, 0x1
	bne _081CE6E2
	movs r0, 0x2
	b _081CE6FC
_081CE6FA:
	movs r0, 0x4
_081CE6FC:
	pop {r1}
	bx r1
	thumb_func_end sub_81CE6BC

	thumb_func_start sub_81CE700
sub_81CE700: @ 81CE700
	push {lr}
	cmp r0, 0x1
	beq _081CE71E
	cmp r0, 0x1
	bgt _081CE710
	cmp r0, 0
	beq _081CE716
	b _081CE732
_081CE710:
	cmp r0, 0x2
	beq _081CE726
	b _081CE732
_081CE716:
	bl sub_811FAF8
_081CE71A:
	movs r0, 0x1
	b _081CE734
_081CE71E:
	movs r0, 0x4
	bl sub_81C7BA4
	b _081CE71A
_081CE726:
	bl sub_81C7BE8
	cmp r0, 0x1
	bne _081CE71A
	movs r0, 0x2
	b _081CE734
_081CE732:
	movs r0, 0x4
_081CE734:
	pop {r1}
	bx r1
	thumb_func_end sub_81CE700

	thumb_func_start sub_81CE738
sub_81CE738: @ 81CE738
	push {lr}
	lsls r1, 16
	lsrs r1, 16
	movs r2, 0x1
	movs r3, 0x4
	bl ConvertIntToDecimalStringN
	ldr r1, =gUnknown_085EBFD7
	bl StringCopy
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CE738

	thumb_func_start sub_81CE754
sub_81CE754: @ 81CE754
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x2C
	lsls r0, 24
	lsrs r4, r0, 24
	adds r7, r4, 0
	lsls r1, 16
	lsrs r1, 16
	mov r8, r1
	lsls r2, 24
	lsrs r5, r2, 24
	movs r0, 0xC
	bl sub_81C763C
	adds r6, r0, 0
	cmp r4, 0x1
	beq _081CE7B8
	cmp r4, 0x1
	bgt _081CE782
	cmp r4, 0
	beq _081CE78E
	b _081CE924
_081CE782:
	cmp r4, 0x2
	beq _081CE800
	cmp r4, 0x3
	bne _081CE78C
	b _081CE89C
_081CE78C:
	b _081CE924
_081CE78E:
	movs r1, 0xC1
	lsls r1, 5
	adds r0, r6, r1
	ldrb r0, [r0]
	movs r1, 0
	bl FillWindowPixelBuffer
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CE7A6
	b _081CE924
_081CE7A6:
	ldr r1, =0x00001821
	adds r0, r6, r1
	ldrb r0, [r0]
	movs r1, 0
	bl FillWindowPixelBuffer
	b _081CE924
	.pool
_081CE7B8:
	bl sub_81CDC60
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_81CDC50
	lsls r0, 16
	lsrs r0, 16
	subs r0, 0x1
	cmp r4, r0
	bne _081CE7DA
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CE7DA
	b _081CE924
_081CE7DA:
	mov r1, r8
	lsls r0, r1, 24
	lsrs r0, 24
	bl sub_81CDD04
	adds r2, r0, 0
	movs r1, 0xC1
	lsls r1, 5
	adds r0, r6, r1
	ldrb r0, [r0]
	str r7, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	b _081CE924
_081CE800:
	bl sub_81CDD5C
	adds r7, r0, 0
	cmp r7, 0x1
	beq _081CE80C
	b _081CE924
_081CE80C:
	mov r1, r8
	lsls r0, r1, 24
	lsrs r0, 24
	bl sub_81CDD24
	adds r2, r0, 0
	movs r1, 0xC1
	lsls r1, 5
	adds r0, r6, r1
	ldrb r0, [r0]
	movs r1, 0x11
	str r1, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	add r1, sp, 0xC
	movs r0, 0xFC
	strb r0, [r1]
	movs r0, 0x4
	strb r0, [r1, 0x1]
	movs r0, 0x8
	strb r0, [r1, 0x2]
	adds r0, r1, 0
	strb r4, [r0, 0x3]
	movs r0, 0x9
	strb r0, [r1, 0x4]
	mov r5, sp
	adds r5, 0x11
	ldr r1, =gUnknown_085EBFD7
	adds r0, r5, 0
	bl StringCopy
	ldr r0, =0x00001821
	adds r6, r0
	ldrb r0, [r6]
	str r7, [sp]
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	add r2, sp, 0xC
	movs r3, 0x4
	bl PrintTextOnWindow
	bl sub_81CDD48
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r5, 0
	movs r2, 0x1
	movs r3, 0x4
	bl ConvertIntToDecimalStringN
	ldrb r0, [r6]
	str r7, [sp]
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	add r2, sp, 0xC
	movs r3, 0x1C
	bl PrintTextOnWindow
	b _081CE924
	.pool
_081CE89C:
	ldr r1, =0x00002908
	adds r0, r6, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _081CE8B0
	cmp r0, 0x1
	beq _081CE8EC
	b _081CE924
	.pool
_081CE8B0:
	cmp r5, 0
	beq _081CE8C4
	movs r1, 0xC1
	lsls r1, 5
	adds r0, r6, r1
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	b _081CE8D2
_081CE8C4:
	movs r1, 0xC1
	lsls r1, 5
	adds r0, r6, r1
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
_081CE8D2:
	bl sub_81CDD5C
	cmp r0, 0x1
	bne _081CE910
	ldr r0, =0x00002908
	adds r1, r6, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _081CE924
	.pool
_081CE8EC:
	cmp r5, 0
	beq _081CE904
	ldr r1, =0x00001821
	adds r0, r6, r1
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	b _081CE910
	.pool
_081CE904:
	ldr r1, =0x00001821
	adds r0, r6, r1
	ldrb r0, [r0]
	movs r1, 0x2
	bl CopyWindowToVram
_081CE910:
	ldr r0, =0x00002908
	adds r1, r6, r0
	movs r0, 0
	strb r0, [r1]
	movs r0, 0x1
	b _081CE926
	.pool
_081CE924:
	movs r0, 0
_081CE926:
	add sp, 0x2C
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81CE754

	thumb_func_start sub_81CE934
sub_81CE934: @ 81CE934
	push {r4,lr}
	movs r0, 0xC
	bl sub_81C763C
	adds r4, r0, 0
	ldr r1, =0x00001822
	adds r0, r4, r1
	ldrb r0, [r0]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, =0x00001823
	adds r4, r0
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CE934

	thumb_func_start sub_81CE964
sub_81CE964: @ 81CE964
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0x2E
	ldrsh r4, [r5, r0]
	bl sub_81CDC60
	lsls r0, 16
	lsrs r0, 16
	cmp r4, r0
	bne _081CE982
	adds r0, r5, 0
	movs r1, 0
	bl StartSpriteAnim
	b _081CE98A
_081CE982:
	adds r0, r5, 0
	movs r1, 0x1
	bl StartSpriteAnim
_081CE98A:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CE964

	thumb_func_start sub_81CE990
sub_81CE990: @ 81CE990
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_81CDC60
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_81CDC50
	lsls r0, 16
	lsrs r0, 16
	subs r0, 0x1
	cmp r4, r0
	bne _081CE9B0
	movs r0, 0x65
	b _081CE9B2
_081CE9B0:
	movs r0, 0x66
_081CE9B2:
	bl IndexOfSpritePaletteTag
	lsls r0, 4
	ldrb r2, [r5, 0x5]
	movs r1, 0xF
	ands r1, r2
	orrs r1, r0
	strb r1, [r5, 0x5]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CE990

	thumb_func_start sub_81CE9C8
sub_81CE9C8: @ 81CE9C8
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81CDD7C
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl StartSpriteAnim
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CE9C8

	thumb_func_start sub_81CE9E4
sub_81CE9E4: @ 81CE9E4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x58
	movs r0, 0xC
	bl sub_81C763C
	adds r6, r0, 0
	add r4, sp, 0x20
	add r5, sp, 0x38
	mov r0, sp
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_81D321C
	bl sub_81CDD5C
	adds r7, r4, 0
	mov r10, r5
	cmp r0, 0x1
	bne _081CEA78
	ldr r1, =0x00001824
	adds r0, r6, r1
	movs r2, 0x6A
	strh r2, [r0]
	ldr r3, =0x00001826
	adds r1, r6, r3
	strh r2, [r1]
	bl sub_811F90C
	bl sub_811FA90
	ldr r2, =gUnknown_08623338
	movs r0, 0x69
	movs r1, 0x69
	bl sub_811FF94
	ldrb r1, [r0, 0x5]
	movs r2, 0xC
	orrs r1, r2
	strb r1, [r0, 0x5]
	movs r1, 0xC0
	strh r1, [r0, 0x20]
	movs r1, 0x20
	strh r1, [r0, 0x22]
	ldr r1, =sub_81CE9C8
	str r1, [r0, 0x1C]
	ldr r2, =0x000028dc
	adds r1, r6, r2
	str r0, [r1]
	movs r0, 0x69
	bl IndexOfSpritePaletteTag
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl sub_81C7990
	add r3, sp, 0x50
	mov r8, r3
	b _081CEBC6
	.pool
_081CEA78:
	mov r0, sp
	bl LoadSpriteSheets
	mov r0, r10
	bl sub_81C795C
	movs r4, 0
	add r0, sp, 0x50
	mov r8, r0
	b _081CEAE8
_081CEA8C:
	lsls r2, r4, 2
	adds r2, r4
	lsls r2, 18
	movs r1, 0x80
	lsls r1, 12
	adds r2, r1
	asrs r2, 16
	adds r0, r7, 0
	movs r1, 0xE2
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x40
	beq _081CEAD8
	ldr r2, =0x00001806
	adds r0, r6, r2
	adds r0, r4
	strb r3, [r0]
	ldr r2, =gSprites
	lsls r0, r3, 4
	adds r0, r3
	lsls r0, 2
	adds r1, r0, r2
	strh r4, [r1, 0x2E]
	adds r2, 0x1C
	adds r0, r2
	ldr r1, =sub_81CE964
	str r1, [r0]
	b _081CEAE2
	.pool
_081CEAD8:
	ldr r3, =0x00001806
	adds r0, r6, r3
	adds r0, r4
	movs r1, 0xFF
	strb r1, [r0]
_081CEAE2:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
_081CEAE8:
	bl sub_81CDC50
	lsls r0, 16
	lsrs r0, 16
	subs r0, 0x1
	cmp r4, r0
	blt _081CEA8C
	movs r0, 0x67
	strh r0, [r7]
	ldr r0, =SpriteCallbackDummy
	str r0, [r7, 0x14]
	cmp r4, 0x5
	bhi _081CEB5C
	ldr r0, =0x00001806
	adds r5, r6, r0
	ldr r1, =gSprites
	mov r9, r1
_081CEB0A:
	lsls r2, r4, 2
	adds r2, r4
	lsls r2, 18
	movs r3, 0x80
	lsls r3, 12
	adds r2, r3
	asrs r2, 16
	adds r0, r7, 0
	movs r1, 0xE6
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x40
	beq _081CEB4C
	adds r0, r5, r4
	strb r3, [r0]
	lsls r1, r3, 4
	adds r1, r3
	lsls r1, 2
	add r1, r9
	ldrb r2, [r1, 0x3]
	movs r0, 0x3F
	ands r0, r2
	strb r0, [r1, 0x3]
	b _081CEB52
	.pool
_081CEB4C:
	adds r1, r5, r4
	movs r0, 0xFF
	strb r0, [r1]
_081CEB52:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x5
	bls _081CEB0A
_081CEB5C:
	movs r0, 0x66
	strh r0, [r7]
	ldr r0, =sub_81CE990
	str r0, [r7, 0x14]
	lsls r2, r4, 2
	adds r2, r4
	lsls r2, 18
	movs r0, 0x80
	lsls r0, 12
	adds r2, r0
	asrs r2, 16
	adds r0, r7, 0
	movs r1, 0xDE
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x40
	beq _081CEBBC
	ldr r1, =0x00001806
	adds r0, r6, r1
	adds r0, r4
	strb r3, [r0]
	ldr r0, =gSprites
	lsls r2, r3, 4
	adds r2, r3
	lsls r2, 2
	adds r2, r0
	ldrb r3, [r2, 0x1]
	movs r1, 0x3F
	adds r0, r1, 0
	ands r0, r3
	movs r3, 0x40
	orrs r0, r3
	strb r0, [r2, 0x1]
	ldrb r0, [r2, 0x3]
	ands r1, r0
	movs r0, 0x80
	orrs r1, r0
	strb r1, [r2, 0x3]
	b _081CEBC6
	.pool
_081CEBBC:
	ldr r2, =0x00001806
	adds r0, r6, r2
	adds r0, r4
	movs r1, 0xFF
	strb r1, [r0]
_081CEBC6:
	mov r0, r8
	mov r1, r10
	bl sub_81D32B0
	mov r0, r8
	bl LoadSpriteSheet
	movs r0, 0
	mov r3, r10
	str r0, [r3, 0x8]
	mov r0, r10
	bl sub_81C795C
	add sp, 0x58
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CE9E4

	thumb_func_start sub_81CEBF4
sub_81CEBF4: @ 81CEBF4
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_81CDD5C
	cmp r0, 0x1
	bne _081CEC28
	ldr r1, =0x000028dc
	adds r0, r5, r1
	ldr r0, [r0]
	bl DestroySprite
	movs r0, 0x6A
	bl FreeSpriteTilesByTag
	movs r0, 0x69
	bl FreeSpriteTilesByTag
	movs r0, 0x6A
	bl FreeSpritePaletteByTag
	movs r0, 0x69
	bl FreeSpritePaletteByTag
	b _081CEC68
	.pool
_081CEC28:
	movs r4, 0
_081CEC2A:
	ldr r1, =0x00001806
	adds r0, r5, r1
	adds r0, r4
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySprite
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x6
	bls _081CEC2A
	movs r0, 0x65
	bl FreeSpriteTilesByTag
	movs r0, 0x66
	bl FreeSpriteTilesByTag
	movs r0, 0x67
	bl FreeSpriteTilesByTag
	movs r0, 0x65
	bl FreeSpritePaletteByTag
	movs r0, 0x66
	bl FreeSpritePaletteByTag
_081CEC68:
	ldr r0, =0x00001816
	adds r1, r5, r0
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _081CEC8E
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySprite
	movs r0, 0x64
	bl FreeSpriteTilesByTag
	movs r0, 0x64
	bl FreeSpritePaletteByTag
_081CEC8E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CEBF4

	thumb_func_start sub_81CECA0
sub_81CECA0: @ 81CECA0
	push {r4,lr}
	movs r0, 0xC
	bl sub_81C763C
	adds r4, r0, 0
	movs r1, 0xC1
	lsls r1, 5
	adds r0, r4, r1
	ldrb r0, [r0]
	bl RemoveWindow
	bl sub_81CDD5C
	cmp r0, 0x1
	bne _081CECEC
	ldr r1, =0x00001821
	adds r0, r4, r1
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r1, =0x00001822
	adds r0, r4, r1
	ldrb r0, [r0]
	bl RemoveWindow
	ldr r1, =0x00001823
	adds r0, r4, r1
	ldrb r0, [r0]
	bl RemoveWindow
	b _081CECF0
	.pool
_081CECEC:
	bl sub_81C7FDC
_081CECF0:
	movs r1, 0x8A
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	adds r0, r4, 0
	bl sub_81CEBF4
	bl sub_81CEE68
	movs r0, 0xC
	bl sub_81C7650
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CECA0

	thumb_func_start sub_81CED10
sub_81CED10: @ 81CED10
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0xC
	bl sub_81C763C
	ldr r1, =0x00001814
	adds r0, r1
	ldrh r0, [r0]
	adds r0, 0x26
	strh r0, [r4, 0x20]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CED10

	thumb_func_start sub_81CED30
sub_81CED30: @ 81CED30
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x28
	lsls r0, 24
	lsrs r6, r0, 24
	movs r0, 0xC
	bl sub_81C763C
	mov r8, r0
	ldr r7, =0x00001816
	add r7, r8
	ldrb r0, [r7]
	cmp r0, 0xFF
	bne _081CEDFC
	add r5, sp, 0x18
	add r4, sp, 0x20
	adds r0, r5, 0
	mov r1, sp
	adds r2, r4, 0
	bl sub_81D31D0
	adds r0, r6, 0
	bl sub_81CDCB4
	str r0, [sp, 0x18]
	adds r0, r6, 0
	bl sub_81CDCD4
	str r0, [sp, 0x20]
	adds r0, r4, 0
	bl LoadSpritePalette
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =0x00001818
	add r4, r8
	strh r0, [r4]
	adds r0, r5, 0
	bl LoadSpriteSheet
	ldr r5, =0x0000181a
	add r5, r8
	strh r0, [r5]
	mov r0, sp
	movs r1, 0x26
	movs r2, 0x68
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strb r0, [r7]
	cmp r0, 0x40
	bne _081CEDBC
	movs r0, 0x64
	bl FreeSpriteTilesByTag
	movs r0, 0x64
	bl FreeSpritePaletteByTag
	movs r0, 0xFF
	strb r0, [r7]
	b _081CEE26
	.pool
_081CEDBC:
	strb r0, [r7]
	ldr r2, =gSprites
	ldrb r1, [r7]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, =sub_81CED10
	str r1, [r0]
	ldr r1, =0x0000181c
	add r1, r8
	ldrh r0, [r5]
	lsls r0, 5
	ldr r2, =0x06010000
	adds r0, r2
	str r0, [r1]
	ldrh r0, [r4]
	lsls r0, 4
	movs r1, 0x80
	lsls r1, 1
	adds r0, r1
	strh r0, [r4]
	b _081CEE26
	.pool
_081CEDFC:
	adds r0, r6, 0
	bl sub_81CDCB4
	ldr r1, =0x0000181c
	add r1, r8
	ldr r2, [r1]
	ldr r1, =0x040000d4
	str r0, [r1]
	str r2, [r1, 0x4]
	ldr r0, =0x80000400
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	adds r0, r6, 0
	bl sub_81CDCD4
	ldr r1, =0x00001818
	add r1, r8
	ldrh r1, [r1]
	movs r2, 0x20
	bl LoadPalette
_081CEE26:
	add sp, 0x28
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CED30

	thumb_func_start sub_81CEE44
sub_81CEE44: @ 81CEE44
	push {r4,lr}
	bl sub_81CDC70
	adds r4, r0, 0
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	adds r0, r4, 0
	bl sub_81D2108
	bl sub_80BA0A8
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CEE44

	thumb_func_start sub_81CEE68
sub_81CEE68: @ 81CEE68
	push {lr}
	bl sub_81C760C
	pop {r0}
	bx r0
	thumb_func_end sub_81CEE68

	thumb_func_start sub_81CEE74
sub_81CEE74: @ 81CEE74
	push {lr}
	lsls r0, 24
	cmp r0, 0
	beq _081CEE84
	movs r0, 0x2
	bl ShowBg
	b _081CEE8A
_081CEE84:
	movs r0, 0x2
	bl HideBg
_081CEE8A:
	pop {r0}
	bx r0
	thumb_func_end sub_81CEE74

	thumb_func_start sub_81CEE90
sub_81CEE90: @ 81CEE90
	push {r4,lr}
	bl sub_81CDC70
	adds r4, r0, 0
	bl sub_81CDC84
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_030012BC
	strb r0, [r1]
	adds r1, r4, 0
	adds r1, 0x50
	lsls r2, r0, 2
	adds r2, r0
	lsls r2, 2
	adds r2, 0x14
	adds r2, r4, r2
	adds r0, r4, 0
	bl sub_81D1F84
	adds r0, r4, 0
	bl sub_81D2074
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CEE90

	thumb_func_start sub_81CEEC8
sub_81CEEC8: @ 81CEEC8
	push {r4,r5,lr}
	bl sub_81CDC70
	adds r5, r0, 0
	bl sub_81CDD5C
	cmp r0, 0
	bne _081CEEF0
	bl sub_81CDC60
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_81CDC50
	lsls r0, 16
	lsrs r0, 16
	subs r0, 0x1
	cmp r4, r0
	beq _081CEF0C
_081CEEF0:
	bl sub_81CDC84
	lsls r0, 24
	asrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	adds r1, 0x14
	adds r1, r5, r1
	adds r2, r5, 0
	adds r2, 0x50
	adds r0, r5, 0
	bl sub_81D1F84
_081CEF0C:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81CEEC8

	thumb_func_start sub_81CEF14
sub_81CEF14: @ 81CEF14
	push {r4,lr}
	movs r0, 0xC
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81CDD5C
	cmp r0, 0x1
	beq _081CEF2A
	movs r0, 0
	b _081CEF30
_081CEF2A:
	ldr r1, =0x00001828
	adds r0, r4, r1
	ldrb r0, [r0]
_081CEF30:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CEF14

	thumb_func_start sub_81CEF3C
sub_81CEF3C: @ 81CEF3C
	push {r4,lr}
	movs r0, 0x7
	movs r1, 0x24
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CEF90
	ldr r1, =0x000006ac
	movs r0, 0x12
	bl sub_81C761C
	str r0, [r4, 0x20]
	cmp r0, 0
	beq _081CEF90
	ldr r0, =sub_81CF010
	str r0, [r4]
	ldr r0, =sub_81CF11C
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	movs r0, 0
	str r0, [r4, 0x18]
	bl sub_81C76AC
	ldr r1, =gUnknown_086233A0
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	str r0, [r4, 0x14]
	movs r0, 0x1
	b _081CEF92
	.pool
_081CEF90:
	movs r0, 0
_081CEF92:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CEF3C

	thumb_func_start sub_81CEF98
sub_81CEF98: @ 81CEF98
	push {r4,lr}
	movs r0, 0x7
	movs r1, 0x24
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CEFD4
	movs r0, 0x12
	bl sub_81C763C
	str r0, [r4, 0x20]
	ldr r0, =sub_81CF030
	str r0, [r4]
	movs r0, 0x1
	str r0, [r4, 0x18]
	bl sub_81C76AC
	ldr r1, =gUnknown_086233A0
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	str r0, [r4, 0x14]
	movs r0, 0x1
	b _081CEFD6
	.pool
_081CEFD4:
	movs r0, 0
_081CEFD6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CEF98

	thumb_func_start sub_81CEFDC
sub_81CEFDC: @ 81CEFDC
	push {lr}
	movs r0, 0x7
	bl sub_81C763C
	ldr r1, [r0]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_81CEFDC

	thumb_func_start sub_81CEFF0
sub_81CEFF0: @ 81CEFF0
	push {lr}
	movs r0, 0x7
	bl sub_81C763C
	ldr r0, [r0, 0x1C]
	cmp r0, 0
	bne _081CF004
	movs r0, 0x12
	bl sub_81C7650
_081CF004:
	movs r0, 0x7
	bl sub_81C7650
	pop {r0}
	bx r0
	thumb_func_end sub_81CEFF0

	thumb_func_start sub_81CF010
sub_81CF010: @ 81CF010
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x4]
	bl sub_81C70D8
	cmp r0, 0
	bne _081CF022
	ldr r0, =sub_81CF030
	str r0, [r4]
_081CF022:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CF010

	thumb_func_start sub_81CF030
sub_81CF030: @ 81CF030
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r2, =gMain
	ldrh r1, [r2, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081CF048
	movs r0, 0x1
	b _081CF0A6
	.pool
_081CF048:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081CF054
	movs r0, 0x2
	b _081CF0A6
_081CF054:
	ldrh r1, [r2, 0x2E]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081CF062
	movs r0, 0x3
	b _081CF0A6
_081CF062:
	movs r0, 0x10
	ands r0, r1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0
	beq _081CF072
	movs r0, 0x4
	b _081CF0A6
_081CF072:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081CF088
	str r2, [r4, 0x1C]
	ldr r0, =sub_81CF0B0
	str r0, [r4]
	movs r0, 0x5
	b _081CF0A6
	.pool
_081CF088:
	movs r5, 0x1
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0
	bne _081CF096
	movs r0, 0
	b _081CF0A6
_081CF096:
	bl sub_81C875C
	ldr r1, [r4, 0x20]
	strh r0, [r1, 0x2]
	str r5, [r4, 0x1C]
	ldr r0, =sub_81CF0B8
	str r0, [r4]
	movs r0, 0x6
_081CF0A6:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CF030

	thumb_func_start sub_81CF0B0
sub_81CF0B0: @ 81CF0B0
	ldr r0, =0x000186a3
	bx lr
	.pool
	thumb_func_end sub_81CF0B0

	thumb_func_start sub_81CF0B8
sub_81CF0B8: @ 81CF0B8
	ldr r0, =0x000186a9
	bx lr
	.pool
	thumb_func_end sub_81CF0B8

	thumb_func_start sub_81CF0C0
sub_81CF0C0: @ 81CF0C0
	push {lr}
	movs r0, 0x7
	bl sub_81C763C
	ldr r0, [r0, 0x18]
	pop {r1}
	bx r1
	thumb_func_end sub_81CF0C0

	thumb_func_start sub_81CF0D0
sub_81CF0D0: @ 81CF0D0
	push {lr}
	movs r0, 0x7
	bl sub_81C763C
	ldr r0, [r0, 0x20]
	adds r0, 0x4
	pop {r1}
	bx r1
	thumb_func_end sub_81CF0D0

	thumb_func_start sub_81CF0E0
sub_81CF0E0: @ 81CF0E0
	push {lr}
	movs r0, 0x7
	bl sub_81C763C
	ldr r0, [r0, 0x20]
	ldrh r0, [r0]
	pop {r1}
	bx r1
	thumb_func_end sub_81CF0E0

	thumb_func_start sub_81CF0F0
sub_81CF0F0: @ 81CF0F0
	push {r4,lr}
	movs r0, 0x7
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81C875C
	ldr r1, [r4, 0x20]
	lsls r0, 2
	adds r1, r0
	ldrh r0, [r1, 0x6]
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF0F0

	thumb_func_start sub_81CF10C
sub_81CF10C: @ 81CF10C
	push {lr}
	movs r0, 0x7
	bl sub_81C763C
	ldr r0, [r0, 0x20]
	ldrh r0, [r0, 0x2]
	pop {r1}
	bx r1
	thumb_func_end sub_81CF10C

	thumb_func_start sub_81CF11C
sub_81CF11C: @ 81CF11C
	push {lr}
	ldr r2, =gUnknown_086233B4
	lsls r1, r0, 2
	adds r1, r2
	ldr r1, [r1]
	bl _call_via_r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CF11C

	thumb_func_start sub_81CF134
sub_81CF134: @ 81CF134
	push {r4-r6,lr}
	sub sp, 0x4
	movs r0, 0x7
	bl sub_81C763C
	adds r6, r0, 0
	ldr r0, [r6, 0x20]
	movs r1, 0
	strh r1, [r0]
	ldr r0, [r6, 0x20]
	strh r1, [r0, 0x2]
	ldr r1, =0xffffff00
	ldr r0, [sp]
	ands r0, r1
	movs r1, 0xE
	orrs r0, r1
	str r0, [sp]
	movs r5, 0
_081CF158:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x5
	bl GetMonData
	cmp r0, 0
	beq _081CF1AA
	adds r0, r4, 0
	movs r1, 0x6
	bl GetMonData
	cmp r0, 0
	bne _081CF1A4
	lsls r1, r5, 24
	lsrs r1, 16
	ldr r2, =0xffff00ff
	ldr r0, [sp]
	ands r0, r2
	orrs r0, r1
	str r0, [sp]
	ldr r1, [r6, 0x14]
	adds r0, r4, 0
	bl GetMonData
	lsls r0, 16
	ldr r2, =0x0000ffff
	ldr r1, [sp]
	ands r1, r2
	orrs r1, r0
	str r1, [sp]
	adds r0, r6, 0
	mov r1, sp
	bl sub_81CF2C4
_081CF1A4:
	adds r5, 0x1
	cmp r5, 0x5
	ble _081CF158
_081CF1AA:
	movs r0, 0x1
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CF134

	thumb_func_start sub_81CF1C4
sub_81CF1C4: @ 81CF1C4
	push {lr}
	movs r0, 0x7
	bl sub_81C763C
	movs r1, 0
	str r1, [r0, 0x10]
	str r1, [r0, 0xC]
	movs r0, 0x1
	pop {r1}
	bx r1
	thumb_func_end sub_81CF1C4

	thumb_func_start sub_81CF1D8
sub_81CF1D8: @ 81CF1D8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	movs r0, 0x7
	bl sub_81C763C
	adds r6, r0, 0
	ldr r5, [r6, 0xC]
	ldr r4, [r6, 0x10]
	movs r0, 0
	mov r8, r0
	cmp r5, 0xD
	bgt _081CF268
_081CF1F4:
	cmp r4, 0x1D
	bgt _081CF260
	lsls r0, r5, 24
	lsrs r7, r0, 24
_081CF1FC:
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_80D2270
	cmp r0, 0
	beq _081CF23A
	ldr r1, =0xffffff00
	ldr r0, [sp]
	ands r0, r1
	orrs r0, r7
	lsls r1, r4, 24
	lsrs r1, 24
	lsls r3, r1, 8
	ldr r2, =0xffff00ff
	ands r0, r2
	orrs r0, r3
	str r0, [sp]
	ldr r2, [r6, 0x14]
	adds r0, r7, 0
	bl GetBoxMonDataFromAnyBox
	lsls r0, 16
	ldr r2, =0x0000ffff
	ldr r1, [sp]
	ands r1, r2
	orrs r1, r0
	str r1, [sp]
	adds r0, r6, 0
	mov r1, sp
	bl sub_81CF2C4
_081CF23A:
	movs r0, 0x1
	add r8, r0
	adds r4, 0x1
	mov r0, r8
	cmp r0, 0xE
	ble _081CF25C
	str r5, [r6, 0xC]
	str r4, [r6, 0x10]
	movs r0, 0x3
	b _081CF26A
	.pool
_081CF25C:
	cmp r4, 0x1D
	ble _081CF1FC
_081CF260:
	movs r4, 0
	adds r5, 0x1
	cmp r5, 0xD
	ble _081CF1F4
_081CF268:
	movs r0, 0x1
_081CF26A:
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF1D8

	thumb_func_start sub_81CF278
sub_81CF278: @ 81CF278
	push {r4-r6,lr}
	movs r0, 0x7
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, [r5, 0x20]
	ldrh r6, [r0]
	ldrh r4, [r0, 0x6]
	movs r1, 0x1
	strh r1, [r0, 0x6]
	movs r3, 0x1
	cmp r3, r6
	bge _081CF2B8
_081CF292:
	ldr r2, [r5, 0x20]
	lsls r0, r3, 2
	adds r1, r2, r0
	ldrh r0, [r1, 0x6]
	cmp r0, r4
	bne _081CF2AC
	subs r0, r3, 0x1
	lsls r0, 2
	adds r0, r2, r0
	ldrh r0, [r0, 0x6]
	strh r0, [r1, 0x6]
	adds r0, r3, 0x1
	b _081CF2B2
_081CF2AC:
	adds r4, r0, 0
	adds r0, r3, 0x1
	strh r0, [r1, 0x6]
_081CF2B2:
	adds r3, r0, 0
	cmp r3, r6
	blt _081CF292
_081CF2B8:
	movs r0, 0x1
	str r0, [r5, 0x18]
	movs r0, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF278

	thumb_func_start sub_81CF2C4
sub_81CF2C4: @ 81CF2C4
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r7, r1, 0
	movs r1, 0
	ldr r0, [r5, 0x20]
	ldrh r2, [r0]
	lsrs r3, r2, 1
	cmp r2, r3
	beq _081CF2F4
	adds r6, r0, 0
	ldrh r4, [r7, 0x2]
_081CF2DA:
	lsls r0, r3, 2
	adds r0, r6, r0
	ldrh r0, [r0, 0x6]
	cmp r4, r0
	bls _081CF2E8
	adds r2, r3, 0
	b _081CF2EA
_081CF2E8:
	adds r1, r3, 0x1
_081CF2EA:
	subs r0, r2, r1
	lsrs r0, 1
	adds r3, r1, r0
	cmp r2, r3
	bne _081CF2DA
_081CF2F4:
	ldr r0, [r5, 0x20]
	ldrh r2, [r0]
	lsls r6, r3, 2
	cmp r2, r3
	bls _081CF318
	lsls r0, r2, 2
	subs r4, r0, 0x4
_081CF302:
	ldr r0, [r5, 0x20]
	lsls r1, r2, 2
	adds r0, 0x4
	adds r1, r0, r1
	adds r0, r4
	ldr r0, [r0]
	str r0, [r1]
	subs r4, 0x4
	subs r2, 0x1
	cmp r2, r3
	bhi _081CF302
_081CF318:
	ldr r0, [r5, 0x20]
	adds r0, 0x4
	adds r0, r6
	ldr r1, [r7]
	str r1, [r0]
	ldr r1, [r5, 0x20]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81CF2C4

	thumb_func_start sub_81CF330
sub_81CF330: @ 81CF330
	push {r4,lr}
	movs r1, 0x81
	lsls r1, 4
	movs r0, 0x8
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CF360
	ldr r0, =sub_81CF418
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81CF3E4
	str r0, [r4]
	movs r0, 0
	str r0, [r4, 0xC]
	movs r0, 0x1
	b _081CF362
	.pool
_081CF360:
	movs r0, 0
_081CF362:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF330

	thumb_func_start sub_81CF368
sub_81CF368: @ 81CF368
	push {r4,lr}
	movs r1, 0x81
	lsls r1, 4
	movs r0, 0x8
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CF398
	ldr r0, =sub_81CF418
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81CF3E4
	str r0, [r4]
	movs r0, 0x1
	str r0, [r4, 0xC]
	b _081CF39A
	.pool
_081CF398:
	movs r0, 0
_081CF39A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF368

	thumb_func_start sub_81CF3A0
sub_81CF3A0: @ 81CF3A0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x8
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =gUnknown_08623598
	lsls r4, 2
	adds r4, r0
	ldr r0, [r4]
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r5, 0x4]
	ldr r0, =sub_81CF3E4
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CF3A0

	thumb_func_start sub_81CF3D0
sub_81CF3D0: @ 81CF3D0
	push {lr}
	movs r0, 0x8
	bl sub_81C763C
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	thumb_func_end sub_81CF3D0

	thumb_func_start sub_81CF3E4
sub_81CF3E4: @ 81CF3E4
	push {lr}
	movs r0, 0x8
	bl sub_81C763C
	ldr r0, [r0, 0x4]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81CF3E4

	thumb_func_start sub_81CF3F8
sub_81CF3F8: @ 81CF3F8
	push {r4,lr}
	movs r0, 0x8
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81C8234
	ldrb r0, [r4, 0x8]
	bl RemoveWindow
	movs r0, 0x8
	bl sub_81C7650
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CF3F8

	thumb_func_start sub_81CF418
sub_81CF418: @ 81CF418
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r0, 0x8
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x5
	bls _081CF42C
	b _081CF56E
_081CF42C:
	lsls r0, r4, 2
	ldr r1, =_081CF43C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CF43C:
	.4byte _081CF454
	.4byte _081CF4AC
	.4byte _081CF4C0
	.4byte _081CF4E0
	.4byte _081CF4F6
	.4byte _081CF55A
_081CF454:
	ldr r0, =gUnknown_08623590
	movs r1, 0x2
	bl sub_81C7B54
	ldr r1, =gUnknown_086233E4
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	adds r1, r5, 0
	adds r1, 0x10
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, =gUnknown_086234AC
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_086233C4
	movs r1, 0x10
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
_081CF498:
	movs r0, 0
	b _081CF570
	.pool
_081CF4AC:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081CF56A
	bl sub_81CF0C0
	cmp r0, 0
	beq _081CF56A
	b _081CF498
_081CF4C0:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081CF56A
	ldr r0, =gUnknown_08623570
	movs r1, 0x20
	movs r2, 0x20
	bl sub_81C7944
	bl sub_81CF88C
	b _081CF498
	.pool
_081CF4E0:
	bl sub_81C8224
	cmp r0, 0
	bne _081CF56A
	adds r0, r5, 0
	bl sub_81CF7C8
	movs r0, 0x3
	bl sub_81C7BA4
	b _081CF498
_081CF4F6:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081CF56A
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl HideBg
	ldr r0, [r5, 0xC]
	cmp r0, 0
	bne _081CF552
	bl sub_81C76AC
	adds r4, r0, 0
	adds r4, 0x8
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	bl sub_81C7DFC
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0
	bl sub_81C7FA0
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	bl sub_81C7FA0
_081CF552:
	movs r0, 0x1
	bl sub_81C7AC0
	b _081CF498
_081CF55A:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CF56A
	bl sub_81C8010
	cmp r0, 0
	beq _081CF56E
_081CF56A:
	movs r0, 0x2
	b _081CF570
_081CF56E:
	movs r0, 0x4
_081CF570:
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF418

	thumb_func_start sub_81CF578
sub_81CF578: @ 81CF578
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x8
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CF5C6
	cmp r4, 0x1
	bgt _081CF592
	cmp r4, 0
	beq _081CF59C
	b _081CF5E6
_081CF592:
	cmp r4, 0x2
	beq _081CF5CE
	cmp r4, 0x3
	beq _081CF5D8
	b _081CF5E6
_081CF59C:
	bl sub_81C8658
	cmp r0, 0x1
	beq _081CF5B4
	cmp r0, 0x1
	bgt _081CF5AE
	cmp r0, 0
	beq _081CF5E6
	b _081CF5D4
_081CF5AE:
	cmp r0, 0x2
	beq _081CF5BE
	b _081CF5D4
_081CF5B4:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CF5E8
_081CF5BE:
	movs r0, 0x5
	bl PlaySE
	b _081CF5D4
_081CF5C6:
	bl sub_81C8630
	cmp r0, 0
	bne _081CF5E2
_081CF5CE:
	adds r0, r5, 0
	bl sub_81CF7F4
_081CF5D4:
	movs r0, 0
	b _081CF5E8
_081CF5D8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CF5E6
_081CF5E2:
	movs r0, 0x2
	b _081CF5E8
_081CF5E6:
	movs r0, 0x4
_081CF5E8:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF578

	thumb_func_start sub_81CF5F0
sub_81CF5F0: @ 81CF5F0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x8
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CF63E
	cmp r4, 0x1
	bgt _081CF60A
	cmp r4, 0
	beq _081CF614
	b _081CF65E
_081CF60A:
	cmp r4, 0x2
	beq _081CF646
	cmp r4, 0x3
	beq _081CF650
	b _081CF65E
_081CF614:
	bl sub_81C868C
	cmp r0, 0x1
	beq _081CF62C
	cmp r0, 0x1
	bgt _081CF626
	cmp r0, 0
	beq _081CF65E
	b _081CF64C
_081CF626:
	cmp r0, 0x2
	beq _081CF636
	b _081CF64C
_081CF62C:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CF660
_081CF636:
	movs r0, 0x5
	bl PlaySE
	b _081CF64C
_081CF63E:
	bl sub_81C8630
	cmp r0, 0
	bne _081CF65A
_081CF646:
	adds r0, r5, 0
	bl sub_81CF7F4
_081CF64C:
	movs r0, 0
	b _081CF660
_081CF650:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CF65E
_081CF65A:
	movs r0, 0x2
	b _081CF660
_081CF65E:
	movs r0, 0x4
_081CF660:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF5F0

	thumb_func_start sub_81CF668
sub_81CF668: @ 81CF668
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x8
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CF6B6
	cmp r4, 0x1
	bgt _081CF682
	cmp r4, 0
	beq _081CF68C
	b _081CF6D6
_081CF682:
	cmp r4, 0x2
	beq _081CF6BE
	cmp r4, 0x3
	beq _081CF6C8
	b _081CF6D6
_081CF68C:
	bl sub_81C86CC
	cmp r0, 0x1
	beq _081CF6A4
	cmp r0, 0x1
	bgt _081CF69E
	cmp r0, 0
	beq _081CF6D6
	b _081CF6C4
_081CF69E:
	cmp r0, 0x2
	beq _081CF6AE
	b _081CF6C4
_081CF6A4:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CF6D8
_081CF6AE:
	movs r0, 0x5
	bl PlaySE
	b _081CF6C4
_081CF6B6:
	bl sub_81C8630
	cmp r0, 0
	bne _081CF6D2
_081CF6BE:
	adds r0, r5, 0
	bl sub_81CF7F4
_081CF6C4:
	movs r0, 0
	b _081CF6D8
_081CF6C8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CF6D6
_081CF6D2:
	movs r0, 0x2
	b _081CF6D8
_081CF6D6:
	movs r0, 0x4
_081CF6D8:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF668

	thumb_func_start sub_81CF6E0
sub_81CF6E0: @ 81CF6E0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x8
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081CF72E
	cmp r4, 0x1
	bgt _081CF6FA
	cmp r4, 0
	beq _081CF704
	b _081CF74E
_081CF6FA:
	cmp r4, 0x2
	beq _081CF736
	cmp r4, 0x3
	beq _081CF740
	b _081CF74E
_081CF704:
	bl sub_81C870C
	cmp r0, 0x1
	beq _081CF71C
	cmp r0, 0x1
	bgt _081CF716
	cmp r0, 0
	beq _081CF74E
	b _081CF73C
_081CF716:
	cmp r0, 0x2
	beq _081CF726
	b _081CF73C
_081CF71C:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081CF750
_081CF726:
	movs r0, 0x5
	bl PlaySE
	b _081CF73C
_081CF72E:
	bl sub_81C8630
	cmp r0, 0
	bne _081CF74A
_081CF736:
	adds r0, r5, 0
	bl sub_81CF7F4
_081CF73C:
	movs r0, 0
	b _081CF750
_081CF740:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081CF74E
_081CF74A:
	movs r0, 0x2
	b _081CF750
_081CF74E:
	movs r0, 0x4
_081CF750:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF6E0

	thumb_func_start sub_81CF758
sub_81CF758: @ 81CF758
	push {lr}
	cmp r0, 0
	beq _081CF764
	cmp r0, 0x1
	beq _081CF778
	b _081CF790
_081CF764:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81C7AC0
	bl sub_81C78A0
	movs r0, 0
	b _081CF792
_081CF778:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CF788
	bl sub_81C78C0
	cmp r0, 0
	beq _081CF78C
_081CF788:
	movs r0, 0x2
	b _081CF792
_081CF78C:
	bl sub_81C7FDC
_081CF790:
	movs r0, 0x4
_081CF792:
	pop {r1}
	bx r1
	thumb_func_end sub_81CF758

	thumb_func_start sub_81CF798
sub_81CF798: @ 81CF798
	push {lr}
	cmp r0, 0
	beq _081CF7A4
	cmp r0, 0x1
	beq _081CF7B4
	b _081CF7C0
_081CF7A4:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81C7AC0
	movs r0, 0
	b _081CF7C2
_081CF7B4:
	bl sub_81C7B34
	cmp r0, 0
	beq _081CF7C0
	movs r0, 0x2
	b _081CF7C2
_081CF7C0:
	movs r0, 0x4
_081CF7C2:
	pop {r1}
	bx r1
	thumb_func_end sub_81CF798

	thumb_func_start sub_81CF7C8
sub_81CF7C8: @ 81CF7C8
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_086235B4
	bl AddWindow
	strh r0, [r4, 0x8]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	ldrb r0, [r4, 0x8]
	movs r1, 0x1
	bl CopyWindowToVram
	adds r0, r4, 0
	bl sub_81CF7F4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CF7C8

	thumb_func_start sub_81CF7F4
sub_81CF7F4: @ 81CF7F4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	mov r8, r0
	bl sub_81CF0F0
	adds r7, r0, 0
	bl sub_81AFBF0
	ldr r4, =gStringVar1
	movs r0, 0
	adds r1, r4, 0
	bl sub_81AFC0C
	movs r0, 0xFF
	strb r0, [r4]
	ldr r5, =gStringVar2
	ldr r1, =gUnknown_085EC029
	adds r0, r5, 0
	bl sub_81AFC28
	mov r1, r8
	ldrb r0, [r1, 0x8]
	movs r1, 0x1
	mov r10, r1
	str r1, [sp]
	movs r1, 0xFF
	mov r9, r1
	str r1, [sp, 0x4]
	movs r6, 0
	str r6, [sp, 0x8]
	movs r1, 0x1
	adds r2, r5, 0
	movs r3, 0x4
	bl PrintTextOnWindow
	adds r0, r4, 0
	adds r1, r7, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	mov r1, r8
	ldrb r0, [r1, 0x8]
	mov r1, r10
	str r1, [sp]
	mov r1, r9
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x22
	bl PrintTextOnWindow
	mov r1, r8
	ldrb r0, [r1, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
	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_81CF7F4

	thumb_func_start sub_81CF88C
sub_81CF88C: @ 81CF88C
	push {r4,lr}
	sub sp, 0x18
	bl sub_81CF0D0
	str r0, [sp]
	bl sub_81CF0E0
	mov r1, sp
	movs r4, 0
	strh r0, [r1, 0x4]
	movs r0, 0x4
	strb r0, [r1, 0x8]
	bl sub_81CF10C
	mov r1, sp
	strh r0, [r1, 0x6]
	movs r0, 0xD
	strb r0, [r1, 0x9]
	movs r0, 0x11
	strb r0, [r1, 0xA]
	mov r0, sp
	movs r2, 0x1
	strb r2, [r0, 0xB]
	movs r0, 0x8
	strb r0, [r1, 0xC]
	movs r0, 0x2
	strb r0, [r1, 0xD]
	mov r0, sp
	strb r2, [r0, 0xE]
	ldr r0, =sub_81CF8E4
	str r0, [sp, 0x10]
	str r4, [sp, 0x14]
	ldr r0, =gUnknown_08623594
	movs r2, 0
	bl sub_81C81D4
	add sp, 0x18
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CF88C

	thumb_func_start sub_81CF8E4
sub_81CF8E4: @ 81CF8E4
	push {r4-r7,lr}
	adds r2, r0, 0
	adds r6, r1, 0
	ldrb r0, [r2]
	cmp r0, 0xE
	bne _081CF924
	ldrb r1, [r2, 0x1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	bl GetMonGender
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl GetLevelFromMonExp
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r2, =gStringVar3
	adds r0, r4, 0
	movs r1, 0x2
	bl GetMonData
	b _081CF94A
	.pool
_081CF924:
	ldrb r0, [r2]
	ldrb r1, [r2, 0x1]
	bl GetBoxedMonPtr
	adds r4, r0, 0
	bl GetBoxMonGender
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl GetLevelFromBoxMonExp
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r2, =gStringVar3
	adds r0, r4, 0
	movs r1, 0x2
	bl GetBoxMonData
_081CF94A:
	ldr r4, =gStringVar3
	adds r0, r4, 0
	bl StringGetEnd10
	adds r0, r6, 0
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x3C
	bl sub_81DB494
	adds r6, r0, 0
	cmp r5, 0
	beq _081CF974
	cmp r5, 0xFE
	beq _081CF97C
	ldr r1, =gUnknown_086235D4
	b _081CF97E
	.pool
_081CF974:
	ldr r1, =gUnknown_086235BC
	b _081CF97E
	.pool
_081CF97C:
	ldr r1, =gUnknown_086235C8
_081CF97E:
	ldr r4, =gStringVar1
	adds r0, r4, 0
	bl StringCopy
	movs r1, 0xBA
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0xF9
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0x5
	strb r1, [r0]
	adds r0, 0x1
	adds r1, r7, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r0, r6, 0
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x28
	bl sub_81DB494
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CF8E4

	thumb_func_start sub_81CF9BC
sub_81CF9BC: @ 81CF9BC
	push {r4,lr}
	movs r0, 0x9
	movs r1, 0x20
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CF9FC
	ldr r1, =0x000006ac
	movs r0, 0x12
	bl sub_81C761C
	str r0, [r4, 0x1C]
	cmp r0, 0
	beq _081CF9FC
	ldr r0, =sub_81CFA68
	str r0, [r4]
	ldr r0, =sub_81CFB74
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	movs r0, 0
	str r0, [r4, 0x14]
	movs r0, 0x1
	b _081CF9FE
	.pool
_081CF9FC:
	movs r0, 0
_081CF9FE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CF9BC

	thumb_func_start sub_81CFA04
sub_81CFA04: @ 81CFA04
	push {r4,lr}
	movs r0, 0x9
	movs r1, 0x20
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CFA2C
	movs r0, 0x12
	bl sub_81C763C
	str r0, [r4, 0x1C]
	ldr r0, =sub_81CFA88
	str r0, [r4]
	movs r0, 0x1
	str r0, [r4, 0x14]
	b _081CFA2E
	.pool
_081CFA2C:
	movs r0, 0
_081CFA2E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFA04

	thumb_func_start sub_81CFA34
sub_81CFA34: @ 81CFA34
	push {lr}
	movs r0, 0x9
	bl sub_81C763C
	ldr r1, [r0]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_81CFA34

	thumb_func_start sub_81CFA48
sub_81CFA48: @ 81CFA48
	push {lr}
	movs r0, 0x9
	bl sub_81C763C
	ldr r0, [r0, 0x18]
	cmp r0, 0
	bne _081CFA5C
	movs r0, 0x12
	bl sub_81C7650
_081CFA5C:
	movs r0, 0x9
	bl sub_81C7650
	pop {r0}
	bx r0
	thumb_func_end sub_81CFA48

	thumb_func_start sub_81CFA68
sub_81CFA68: @ 81CFA68
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, [r4, 0x4]
	bl sub_81C70D8
	cmp r0, 0
	bne _081CFA7A
	ldr r0, =sub_81CFA88
	str r0, [r4]
_081CFA7A:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CFA68

	thumb_func_start sub_81CFA88
sub_81CFA88: @ 81CFA88
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r2, =gMain
	ldrh r1, [r2, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081CFAA0
	movs r0, 0x1
	b _081CFAFE
	.pool
_081CFAA0:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081CFAAC
	movs r0, 0x2
	b _081CFAFE
_081CFAAC:
	ldrh r1, [r2, 0x2E]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081CFABA
	movs r0, 0x3
	b _081CFAFE
_081CFABA:
	movs r0, 0x10
	ands r0, r1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0
	beq _081CFACA
	movs r0, 0x4
	b _081CFAFE
_081CFACA:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081CFAE0
	str r2, [r4, 0x18]
	ldr r0, =sub_81CFB08
	str r0, [r4]
	movs r0, 0x5
	b _081CFAFE
	.pool
_081CFAE0:
	movs r5, 0x1
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0
	bne _081CFAEE
	movs r0, 0
	b _081CFAFE
_081CFAEE:
	bl sub_81C875C
	ldr r1, [r4, 0x1C]
	strh r0, [r1, 0x2]
	str r5, [r4, 0x18]
	ldr r0, =sub_81CFB10
	str r0, [r4]
	movs r0, 0x6
_081CFAFE:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CFA88

	thumb_func_start sub_81CFB08
sub_81CFB08: @ 81CFB08
	ldr r0, =0x000186a5
	bx lr
	.pool
	thumb_func_end sub_81CFB08

	thumb_func_start sub_81CFB10
sub_81CFB10: @ 81CFB10
	ldr r0, =0x000186ad
	bx lr
	.pool
	thumb_func_end sub_81CFB10

	thumb_func_start sub_81CFB18
sub_81CFB18: @ 81CFB18
	push {lr}
	movs r0, 0x9
	bl sub_81C763C
	ldr r0, [r0, 0x14]
	pop {r1}
	bx r1
	thumb_func_end sub_81CFB18

	thumb_func_start sub_81CFB28
sub_81CFB28: @ 81CFB28
	push {lr}
	movs r0, 0x9
	bl sub_81C763C
	ldr r0, [r0, 0x1C]
	adds r0, 0x4
	pop {r1}
	bx r1
	thumb_func_end sub_81CFB28

	thumb_func_start sub_81CFB38
sub_81CFB38: @ 81CFB38
	push {lr}
	movs r0, 0x9
	bl sub_81C763C
	ldr r0, [r0, 0x1C]
	ldrh r0, [r0]
	pop {r1}
	bx r1
	thumb_func_end sub_81CFB38

	thumb_func_start sub_81CFB48
sub_81CFB48: @ 81CFB48
	push {r4,lr}
	movs r0, 0x9
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81C875C
	ldr r1, [r4, 0x1C]
	lsls r0, 2
	adds r1, r0
	ldrh r0, [r1, 0x6]
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFB48

	thumb_func_start sub_81CFB64
sub_81CFB64: @ 81CFB64
	push {lr}
	movs r0, 0x9
	bl sub_81C763C
	ldr r0, [r0, 0x1C]
	ldrh r0, [r0, 0x2]
	pop {r1}
	bx r1
	thumb_func_end sub_81CFB64

	thumb_func_start sub_81CFB74
sub_81CFB74: @ 81CFB74
	push {lr}
	ldr r2, =gUnknown_086235D8
	lsls r1, r0, 2
	adds r1, r2
	ldr r1, [r1]
	bl _call_via_r1
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CFB74

	thumb_func_start sub_81CFB8C
sub_81CFB8C: @ 81CFB8C
	push {r4-r6,lr}
	sub sp, 0x4
	movs r0, 0x9
	bl sub_81C763C
	adds r6, r0, 0
	ldr r0, [r6, 0x1C]
	movs r1, 0
	strh r1, [r0]
	ldr r0, [r6, 0x1C]
	strh r1, [r0, 0x2]
	ldr r1, =0xffffff00
	ldr r0, [sp]
	ands r0, r1
	movs r1, 0xE
	orrs r0, r1
	str r0, [sp]
	movs r5, 0
_081CFBB0:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x5
	bl GetMonData
	cmp r0, 0
	beq _081CFC10
	adds r0, r4, 0
	movs r1, 0x6
	bl GetMonData
	cmp r0, 0
	bne _081CFC0A
	adds r0, r4, 0
	movs r1, 0x4
	bl GetMonData
	cmp r0, 0
	bne _081CFC0A
	adds r0, r4, 0
	movs r1, 0x52
	bl GetMonData
	adds r3, r0, 0
	cmp r3, 0
	beq _081CFC0A
	lsls r1, r5, 24
	lsrs r1, 16
	ldr r2, =0xffff00ff
	ldr r0, [sp]
	ands r0, r2
	orrs r0, r1
	lsls r2, r3, 16
	ldr r1, =0x0000ffff
	ands r0, r1
	orrs r0, r2
	str r0, [sp]
	adds r0, r6, 0
	mov r1, sp
	bl sub_81CFCEC
_081CFC0A:
	adds r5, 0x1
	cmp r5, 0x5
	ble _081CFBB0
_081CFC10:
	movs r0, 0x1
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81CFB8C

	thumb_func_start sub_81CFC2C
sub_81CFC2C: @ 81CFC2C
	push {lr}
	movs r0, 0x9
	bl sub_81C763C
	movs r1, 0
	str r1, [r0, 0x10]
	str r1, [r0, 0xC]
	movs r0, 0x1
	pop {r1}
	bx r1
	thumb_func_end sub_81CFC2C

	thumb_func_start sub_81CFC40
sub_81CFC40: @ 81CFC40
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	movs r0, 0x9
	bl sub_81C763C
	mov r8, r0
	ldr r7, [r0, 0xC]
	ldr r6, [r0, 0x10]
	movs r0, 0
	mov r9, r0
	cmp r7, 0xD
	bgt _081CFCD4
	b _081CFCC8
_081CFC60:
	adds r0, r7, 0
	adds r1, r6, 0
	bl sub_80D2270
	cmp r0, 0
	beq _081CFCA6
	lsls r0, r7, 24
	lsrs r5, r0, 24
	lsls r0, r6, 24
	lsrs r4, r0, 24
	adds r0, r5, 0
	adds r1, r4, 0
	movs r2, 0x52
	bl GetBoxMonDataFromAnyBox
	adds r3, r0, 0
	cmp r3, 0
	beq _081CFCA6
	ldr r1, =0xffffff00
	ldr r0, [sp]
	ands r0, r1
	orrs r0, r5
	lsls r2, r4, 8
	ldr r1, =0xffff00ff
	ands r0, r1
	orrs r0, r2
	lsls r2, r3, 16
	ldr r1, =0x0000ffff
	ands r0, r1
	orrs r0, r2
	str r0, [sp]
	mov r0, r8
	mov r1, sp
	bl sub_81CFCEC
_081CFCA6:
	movs r1, 0x1
	add r9, r1
	adds r6, 0x1
	mov r0, r9
	cmp r0, 0xE
	ble _081CFCC8
	mov r1, r8
	str r7, [r1, 0xC]
	str r6, [r1, 0x10]
	movs r0, 0x3
	b _081CFCDC
	.pool
_081CFCC8:
	cmp r6, 0x1D
	ble _081CFC60
	movs r6, 0
	adds r7, 0x1
	cmp r7, 0xD
	ble _081CFCC8
_081CFCD4:
	movs r0, 0x1
	mov r1, r8
	str r0, [r1, 0x14]
	movs r0, 0x4
_081CFCDC:
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFC40

	thumb_func_start sub_81CFCEC
sub_81CFCEC: @ 81CFCEC
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r7, r1, 0
	movs r1, 0
	ldr r0, [r5, 0x1C]
	ldrh r2, [r0]
	lsrs r3, r2, 1
	cmp r2, r3
	beq _081CFD1C
	adds r6, r0, 0
	ldrh r4, [r7, 0x2]
_081CFD02:
	lsls r0, r3, 2
	adds r0, r6, r0
	ldrh r0, [r0, 0x6]
	cmp r4, r0
	bls _081CFD10
	adds r2, r3, 0
	b _081CFD12
_081CFD10:
	adds r1, r3, 0x1
_081CFD12:
	subs r0, r2, r1
	lsrs r0, 1
	adds r3, r1, r0
	cmp r2, r3
	bne _081CFD02
_081CFD1C:
	ldr r0, [r5, 0x1C]
	ldrh r2, [r0]
	lsls r6, r3, 2
	cmp r2, r3
	bls _081CFD40
	lsls r0, r2, 2
	subs r4, r0, 0x4
_081CFD2A:
	ldr r0, [r5, 0x1C]
	lsls r1, r2, 2
	adds r0, 0x4
	adds r1, r0, r1
	adds r0, r4
	ldr r0, [r0]
	str r0, [r1]
	subs r4, 0x4
	subs r2, 0x1
	cmp r2, r3
	bhi _081CFD2A
_081CFD40:
	ldr r0, [r5, 0x1C]
	adds r0, 0x4
	adds r0, r6
	ldr r1, [r7]
	str r1, [r0]
	ldr r1, [r5, 0x1C]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81CFCEC

	thumb_func_start sub_81CFD58
sub_81CFD58: @ 81CFD58
	push {r4-r6,lr}
	movs r5, 0
_081CFD5C:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x5
	bl GetMonData
	cmp r0, 0
	beq _081CFD8A
	adds r0, r4, 0
	movs r1, 0x6
	bl GetMonData
	cmp r0, 0
	bne _081CFD8A
	adds r0, r4, 0
	movs r1, 0x53
	bl GetMonData
	cmp r0, 0
	bne _081CFDB2
_081CFD8A:
	adds r5, 0x1
	cmp r5, 0x5
	ble _081CFD5C
	movs r5, 0
_081CFD92:
	movs r4, 0
	lsls r6, r5, 24
_081CFD96:
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_80D2270
	cmp r0, 0
	beq _081CFDBC
	lsls r1, r4, 24
	lsrs r1, 24
	lsrs r0, r6, 24
	movs r2, 0x53
	bl GetBoxMonDataFromAnyBox
	cmp r0, 0
	beq _081CFDBC
_081CFDB2:
	movs r0, 0x1
	b _081CFDCA
	.pool
_081CFDBC:
	adds r4, 0x1
	cmp r4, 0x1D
	ble _081CFD96
	adds r5, 0x1
	cmp r5, 0xD
	ble _081CFD92
	movs r0, 0
_081CFDCA:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFD58

	thumb_func_start sub_81CFDD0
sub_81CFDD0: @ 81CFDD0
	push {r4,lr}
	movs r1, 0x81
	lsls r1, 4
	movs r0, 0xA
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CFE00
	ldr r0, =sub_81CFEB8
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81CFE84
	str r0, [r4]
	movs r0, 0
	str r0, [r4, 0xC]
	movs r0, 0x1
	b _081CFE02
	.pool
_081CFE00:
	movs r0, 0
_081CFE02:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFDD0

	thumb_func_start sub_81CFE08
sub_81CFE08: @ 81CFE08
	push {r4,lr}
	movs r1, 0x81
	lsls r1, 4
	movs r0, 0xA
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081CFE38
	ldr r0, =sub_81CFEB8
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81CFE84
	str r0, [r4]
	movs r0, 0x1
	str r0, [r4, 0xC]
	b _081CFE3A
	.pool
_081CFE38:
	movs r0, 0
_081CFE3A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFE08

	thumb_func_start sub_81CFE40
sub_81CFE40: @ 81CFE40
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =gUnknown_086237B8
	lsls r4, 2
	adds r4, r0
	ldr r0, [r4]
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r5, 0x4]
	ldr r0, =sub_81CFE84
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81CFE40

	thumb_func_start sub_81CFE70
sub_81CFE70: @ 81CFE70
	push {lr}
	movs r0, 0xA
	bl sub_81C763C
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	thumb_func_end sub_81CFE70

	thumb_func_start sub_81CFE84
sub_81CFE84: @ 81CFE84
	push {lr}
	movs r0, 0xA
	bl sub_81C763C
	ldr r0, [r0, 0x4]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81CFE84

	thumb_func_start sub_81CFE98
sub_81CFE98: @ 81CFE98
	push {r4,lr}
	movs r0, 0xA
	bl sub_81C763C
	adds r4, r0, 0
	bl sub_81C8234
	ldrb r0, [r4, 0x8]
	bl RemoveWindow
	movs r0, 0xA
	bl sub_81C7650
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81CFE98

	thumb_func_start sub_81CFEB8
sub_81CFEB8: @ 81CFEB8
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r0, 0xA
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x5
	bls _081CFECC
	b _081CFFF2
_081CFECC:
	lsls r0, r4, 2
	ldr r1, =_081CFEDC
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081CFEDC:
	.4byte _081CFEF4
	.4byte _081CFF48
	.4byte _081CFF76
	.4byte _081CFF94
	.4byte _081CFFA4
	.4byte _081CFFDE
_081CFEF4:
	ldr r0, =gUnknown_086237B0
	movs r1, 0x2
	bl sub_81C7B54
	ldr r1, =gUnknown_08623604
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	adds r1, r5, 0
	adds r1, 0x10
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, =gUnknown_086236CC
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r0, =gUnknown_086235E4
	movs r1, 0x10
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
_081CFF32:
	movs r0, 0
	b _081CFFF4
	.pool
_081CFF48:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081CFFEE
	bl sub_81CFB18
	cmp r0, 0
	beq _081CFFEE
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	bl ShowBg
	b _081CFF32
_081CFF76:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081CFFEE
	ldr r0, =gUnknown_08623790
	movs r1, 0x20
	movs r2, 0x20
	bl sub_81C7944
	bl sub_81D0304
	b _081CFF32
	.pool
_081CFF94:
	bl sub_81C8224
	cmp r0, 0
	bne _081CFFEE
	adds r0, r5, 0
	bl sub_81D024C
	b _081CFF32
_081CFFA4:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081CFFEE
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl HideBg
	movs r0, 0x9
	bl sub_81C7BA4
	movs r0, 0x1
	bl sub_81C7AC0
	ldr r0, [r5, 0xC]
	cmp r0, 0
	bne _081CFF32
	movs r0, 0x2
	bl sub_81C7DFC
	movs r0, 0x2
	movs r1, 0x1
	movs r2, 0
	bl sub_81C7FA0
	b _081CFF32
_081CFFDE:
	bl sub_81C7B34
	cmp r0, 0
	bne _081CFFEE
	bl sub_81C8010
	cmp r0, 0
	beq _081CFFF2
_081CFFEE:
	movs r0, 0x2
	b _081CFFF4
_081CFFF2:
	movs r0, 0x4
_081CFFF4:
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFEB8

	thumb_func_start sub_81CFFFC
sub_81CFFFC: @ 81CFFFC
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081D004A
	cmp r4, 0x1
	bgt _081D0016
	cmp r4, 0
	beq _081D0020
	b _081D006A
_081D0016:
	cmp r4, 0x2
	beq _081D0052
	cmp r4, 0x3
	beq _081D005C
	b _081D006A
_081D0020:
	bl sub_81C8658
	cmp r0, 0x1
	beq _081D0038
	cmp r0, 0x1
	bgt _081D0032
	cmp r0, 0
	beq _081D006A
	b _081D0058
_081D0032:
	cmp r0, 0x2
	beq _081D0042
	b _081D0058
_081D0038:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081D006C
_081D0042:
	movs r0, 0x5
	bl PlaySE
	b _081D0058
_081D004A:
	bl sub_81C8630
	cmp r0, 0
	bne _081D0066
_081D0052:
	adds r0, r5, 0
	bl sub_81D0288
_081D0058:
	movs r0, 0
	b _081D006C
_081D005C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081D006A
_081D0066:
	movs r0, 0x2
	b _081D006C
_081D006A:
	movs r0, 0x4
_081D006C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81CFFFC

	thumb_func_start sub_81D0074
sub_81D0074: @ 81D0074
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081D00C2
	cmp r4, 0x1
	bgt _081D008E
	cmp r4, 0
	beq _081D0098
	b _081D00E2
_081D008E:
	cmp r4, 0x2
	beq _081D00CA
	cmp r4, 0x3
	beq _081D00D4
	b _081D00E2
_081D0098:
	bl sub_81C868C
	cmp r0, 0x1
	beq _081D00B0
	cmp r0, 0x1
	bgt _081D00AA
	cmp r0, 0
	beq _081D00E2
	b _081D00D0
_081D00AA:
	cmp r0, 0x2
	beq _081D00BA
	b _081D00D0
_081D00B0:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081D00E4
_081D00BA:
	movs r0, 0x5
	bl PlaySE
	b _081D00D0
_081D00C2:
	bl sub_81C8630
	cmp r0, 0
	bne _081D00DE
_081D00CA:
	adds r0, r5, 0
	bl sub_81D0288
_081D00D0:
	movs r0, 0
	b _081D00E4
_081D00D4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081D00E2
_081D00DE:
	movs r0, 0x2
	b _081D00E4
_081D00E2:
	movs r0, 0x4
_081D00E4:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0074

	thumb_func_start sub_81D00EC
sub_81D00EC: @ 81D00EC
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081D013A
	cmp r4, 0x1
	bgt _081D0106
	cmp r4, 0
	beq _081D0110
	b _081D015A
_081D0106:
	cmp r4, 0x2
	beq _081D0142
	cmp r4, 0x3
	beq _081D014C
	b _081D015A
_081D0110:
	bl sub_81C86CC
	cmp r0, 0x1
	beq _081D0128
	cmp r0, 0x1
	bgt _081D0122
	cmp r0, 0
	beq _081D015A
	b _081D0148
_081D0122:
	cmp r0, 0x2
	beq _081D0132
	b _081D0148
_081D0128:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081D015C
_081D0132:
	movs r0, 0x5
	bl PlaySE
	b _081D0148
_081D013A:
	bl sub_81C8630
	cmp r0, 0
	bne _081D0156
_081D0142:
	adds r0, r5, 0
	bl sub_81D0288
_081D0148:
	movs r0, 0
	b _081D015C
_081D014C:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081D015A
_081D0156:
	movs r0, 0x2
	b _081D015C
_081D015A:
	movs r0, 0x4
_081D015C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D00EC

	thumb_func_start sub_81D0164
sub_81D0164: @ 81D0164
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081D01B2
	cmp r4, 0x1
	bgt _081D017E
	cmp r4, 0
	beq _081D0188
	b _081D01D2
_081D017E:
	cmp r4, 0x2
	beq _081D01BA
	cmp r4, 0x3
	beq _081D01C4
	b _081D01D2
_081D0188:
	bl sub_81C870C
	cmp r0, 0x1
	beq _081D01A0
	cmp r0, 0x1
	bgt _081D019A
	cmp r0, 0
	beq _081D01D2
	b _081D01C0
_081D019A:
	cmp r0, 0x2
	beq _081D01AA
	b _081D01C0
_081D01A0:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x7
	b _081D01D4
_081D01AA:
	movs r0, 0x5
	bl PlaySE
	b _081D01C0
_081D01B2:
	bl sub_81C8630
	cmp r0, 0
	bne _081D01CE
_081D01BA:
	adds r0, r5, 0
	bl sub_81D0288
_081D01C0:
	movs r0, 0
	b _081D01D4
_081D01C4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081D01D2
_081D01CE:
	movs r0, 0x2
	b _081D01D4
_081D01D2:
	movs r0, 0x4
_081D01D4:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0164

	thumb_func_start sub_81D01DC
sub_81D01DC: @ 81D01DC
	push {lr}
	cmp r0, 0
	beq _081D01E8
	cmp r0, 0x1
	beq _081D01FC
	b _081D0214
_081D01E8:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81C7AC0
	bl sub_81C78A0
	movs r0, 0
	b _081D0216
_081D01FC:
	bl sub_81C7B34
	cmp r0, 0
	bne _081D020C
	bl sub_81C78C0
	cmp r0, 0
	beq _081D0210
_081D020C:
	movs r0, 0x2
	b _081D0216
_081D0210:
	bl sub_81C7FDC
_081D0214:
	movs r0, 0x4
_081D0216:
	pop {r1}
	bx r1
	thumb_func_end sub_81D01DC

	thumb_func_start sub_81D021C
sub_81D021C: @ 81D021C
	push {lr}
	cmp r0, 0
	beq _081D0228
	cmp r0, 0x1
	beq _081D0238
	b _081D0244
_081D0228:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81C7AC0
	movs r0, 0
	b _081D0246
_081D0238:
	bl sub_81C7B34
	cmp r0, 0
	beq _081D0244
	movs r0, 0x2
	b _081D0246
_081D0244:
	movs r0, 0x4
_081D0246:
	pop {r1}
	bx r1
	thumb_func_end sub_81D021C

	thumb_func_start sub_81D024C
sub_81D024C: @ 81D024C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_086237D4
	bl AddWindow
	strh r0, [r4, 0x8]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	bl sub_81CFB38
	adds r2, r0, 0
	ldrh r0, [r4, 0x8]
	movs r1, 0
	bl sub_81D02B0
	ldrb r0, [r4, 0x8]
	movs r1, 0x1
	bl CopyWindowToVram
	adds r0, r4, 0
	bl sub_81D0288
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D024C

	thumb_func_start sub_81D0288
sub_81D0288: @ 81D0288
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_81C875C
	adds r4, r0, 0
	bl sub_81CFB38
	adds r2, r0, 0
	ldrh r0, [r5, 0x8]
	adds r4, 0x1
	adds r1, r4, 0
	bl sub_81D02B0
	ldrb r0, [r5, 0x8]
	movs r1, 0x2
	bl CopyWindowToVram
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D0288

	thumb_func_start sub_81D02B0
sub_81D02B0: @ 81D02B0
	push {r4,r5,lr}
	sub sp, 0x1C
	adds r4, r0, 0
	adds r5, r2, 0
	add r0, sp, 0xC
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r1, 0xBA
	strb r1, [r0]
	adds r0, 0x1
	adds r1, r5, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0x38
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	add r2, sp, 0xC
	bl PrintTextOnWindow
	add sp, 0x1C
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D02B0

	thumb_func_start sub_81D0304
sub_81D0304: @ 81D0304
	push {r4,lr}
	sub sp, 0x18
	bl sub_81CFB28
	str r0, [sp]
	bl sub_81CFB38
	mov r1, sp
	movs r4, 0
	strh r0, [r1, 0x4]
	movs r0, 0x4
	strb r0, [r1, 0x8]
	bl sub_81CFB64
	mov r1, sp
	strh r0, [r1, 0x6]
	movs r0, 0xD
	strb r0, [r1, 0x9]
	movs r0, 0x11
	strb r0, [r1, 0xA]
	mov r0, sp
	movs r2, 0x1
	strb r2, [r0, 0xB]
	movs r0, 0x8
	strb r0, [r1, 0xC]
	movs r0, 0x2
	strb r0, [r1, 0xD]
	mov r0, sp
	strb r2, [r0, 0xE]
	ldr r0, =sub_81D035C
	str r0, [sp, 0x10]
	str r4, [sp, 0x14]
	ldr r0, =gUnknown_086237B4
	movs r2, 0
	bl sub_81C81D4
	add sp, 0x18
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D0304

	thumb_func_start sub_81D035C
sub_81D035C: @ 81D035C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r1, 0
	adds r7, r0, 0
	ldrb r0, [r7]
	cmp r0, 0xE
	bne _081D03A4
	ldrb r1, [r7, 0x1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	bl GetMonGender
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl GetLevelFromMonExp
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r2, =gStringVar3
	adds r0, r4, 0
	movs r1, 0x2
	bl GetMonData
	b _081D03CC
	.pool
_081D03A4:
	ldrb r0, [r7]
	ldrb r1, [r7, 0x1]
	bl GetBoxedMonPtr
	adds r4, r0, 0
	bl GetBoxMonGender
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	bl GetLevelFromBoxMonExp
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r2, =gStringVar3
	adds r0, r4, 0
	movs r1, 0x2
	bl GetBoxMonData
_081D03CC:
	ldr r4, =gStringVar3
	adds r0, r4, 0
	bl StringGetEnd10
	adds r0, r6, 0
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x3C
	bl sub_81DB494
	adds r6, r0, 0
	cmp r5, 0
	beq _081D03F8
	cmp r5, 0xFE
	beq _081D0400
	ldr r1, =gUnknown_086237F4
	b _081D0402
	.pool
_081D03F8:
	ldr r1, =gUnknown_086237DC
	b _081D0402
	.pool
_081D0400:
	ldr r1, =gUnknown_086237E8
_081D0402:
	ldr r4, =gStringVar1
	adds r0, r4, 0
	bl StringCopy
	movs r1, 0xBA
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0xF9
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0x5
	strb r1, [r0]
	adds r0, 0x1
	mov r1, r8
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r0, r6, 0
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0x36
	bl sub_81DB494
	adds r6, r0, 0
	ldrh r1, [r7, 0x2]
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D035C

	thumb_func_start sub_81D0450
sub_81D0450: @ 81D0450
	push {r4,lr}
	movs r0, 0xD
	movs r1, 0x9C
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081D0498
	movs r0, 0x12
	bl sub_81C763C
	str r0, [r4, 0x8]
	cmp r0, 0
	beq _081D0498
	adds r0, r4, 0
	bl sub_81D0814
	adds r1, r4, 0
	adds r1, 0x98
	ldr r0, =sub_81D04C4
	str r0, [r1]
	ldr r1, =gKeyRepeatContinueDelay
	movs r0, 0x3
	strh r0, [r1]
	ldr r1, =gKeyRepeatStartDelay
	movs r0, 0xA
	strh r0, [r1]
	movs r0, 0x1
	b _081D049A
	.pool
_081D0498:
	movs r0, 0
_081D049A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0450

	thumb_func_start sub_81D04A0
sub_81D04A0: @ 81D04A0
	push {lr}
	movs r0, 0xD
	bl sub_81C763C
	adds r1, r0, 0
	adds r1, 0x98
	ldr r1, [r1]
	bl _call_via_r1
	pop {r1}
	bx r1
	thumb_func_end sub_81D04A0

	thumb_func_start sub_81D04B8
sub_81D04B8: @ 81D04B8
	push {lr}
	movs r0, 0xD
	bl sub_81C7650
	pop {r0}
	bx r0
	thumb_func_end sub_81D04B8

	thumb_func_start sub_81D04C4
sub_81D04C4: @ 81D04C4
	push {r4,lr}
	adds r4, r0, 0
	ldr r2, =gMain
	ldrh r1, [r2, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081D04E4
	ldr r3, [r4, 0x8]
	ldrh r0, [r3, 0x2]
	cmp r0, 0
	beq _081D04E4
	subs r0, 0x1
	b _081D04FC
	.pool
_081D04E4:
	ldrh r1, [r2, 0x30]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081D050C
	ldr r3, [r4, 0x8]
	ldrh r1, [r3, 0x2]
	ldrh r0, [r3]
	subs r0, 0x1
	cmp r1, r0
	bge _081D050C
	adds r0, r1, 0x1
_081D04FC:
	movs r1, 0
	strh r0, [r3, 0x2]
	strh r1, [r4, 0xC]
	adds r0, r4, 0
	bl sub_81D0814
	movs r0, 0x1
	b _081D053E
_081D050C:
	ldrh r2, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r2
	cmp r0, 0
	beq _081D0528
	adds r1, r4, 0
	adds r1, 0x98
	ldr r0, =sub_81D0548
	str r0, [r1]
	movs r0, 0x2
	b _081D053E
	.pool
_081D0528:
	movs r0, 0x2
	ands r0, r2
	cmp r0, 0
	bne _081D0534
	movs r0, 0
	b _081D053E
_081D0534:
	adds r1, r4, 0
	adds r1, 0x98
	ldr r0, =sub_81D05D4
	str r0, [r1]
	movs r0, 0x5
_081D053E:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D04C4

	thumb_func_start sub_81D0548
sub_81D0548: @ 81D0548
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gMain
	ldrh r1, [r0, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081D0562
	adds r0, r4, 0
	bl sub_81D05DC
	cmp r0, 0
	bne _081D05A4
_081D0562:
	ldr r0, =gMain
	ldrh r1, [r0, 0x30]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081D0578
	adds r0, r4, 0
	bl sub_81D061C
	cmp r0, 0
	bne _081D05A4
_081D0578:
	ldr r0, =gMain
	ldrh r1, [r0, 0x30]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081D058E
	adds r0, r4, 0
	bl sub_81D0664
	cmp r0, 0
	bne _081D05A4
_081D058E:
	ldr r0, =gMain
	ldrh r1, [r0, 0x30]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _081D05AC
	adds r0, r4, 0
	bl sub_81D0688
	cmp r0, 0
	beq _081D05AC
_081D05A4:
	movs r0, 0x3
	b _081D05CA
	.pool
_081D05AC:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081D05C0
	movs r0, 0
	b _081D05CA
	.pool
_081D05C0:
	adds r1, r4, 0
	adds r1, 0x98
	ldr r0, =sub_81D04C4
	str r0, [r1]
	movs r0, 0x4
_081D05CA:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D0548

	thumb_func_start sub_81D05D4
sub_81D05D4: @ 81D05D4
	ldr r0, =0x000186ae
	bx lr
	.pool
	thumb_func_end sub_81D05D4

	thumb_func_start sub_81D05DC
sub_81D05DC: @ 81D05DC
	push {r4,lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0xC]
	adds r2, r0, 0
	cmp r2, 0x18
	bhi _081D05F0
	cmp r2, 0x8
	bls _081D0612
	subs r0, 0x9
	b _081D060C
_081D05F0:
	ldrh r3, [r1, 0x10]
	adds r2, r3, 0
	cmp r2, 0
	beq _081D0612
	ldrh r0, [r1, 0xC]
	subs r0, 0x1B
	ldrh r4, [r1, 0xE]
	adds r0, r4
	strh r0, [r1, 0xC]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r2
	bcc _081D060E
	subs r0, r3, 0x1
_081D060C:
	strh r0, [r1, 0xC]
_081D060E:
	movs r0, 0x1
	b _081D0614
_081D0612:
	movs r0, 0
_081D0614:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D05DC

	thumb_func_start sub_81D061C
sub_81D061C: @ 81D061C
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2, 0xC]
	adds r1, r0, 0
	cmp r1, 0x18
	bhi _081D065C
	ldrh r3, [r2, 0xE]
	cmp r1, r3
	bcs _081D0640
	adds r0, 0x9
	strh r0, [r2, 0xC]
	ldrh r1, [r2, 0x10]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r1
	bcc _081D0658
	subs r0, r1, 0x1
	b _081D0656
_081D0640:
	ldrh r0, [r2, 0x12]
	cmp r0, 0
	beq _081D065C
	ldrh r1, [r2, 0xC]
	ldrh r0, [r2, 0xE]
	subs r0, r1, r0
	ldrh r1, [r2, 0x12]
	cmp r0, r1
	blt _081D0654
	subs r0, r1, 0x1
_081D0654:
	adds r0, 0x1B
_081D0656:
	strh r0, [r2, 0xC]
_081D0658:
	movs r0, 0x1
	b _081D065E
_081D065C:
	movs r0, 0
_081D065E:
	pop {r1}
	bx r1
	thumb_func_end sub_81D061C

	thumb_func_start sub_81D0664
sub_81D0664: @ 81D0664
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrh r4, [r5, 0xC]
	adds r0, r4, 0
	movs r1, 0x9
	bl __umodsi3
	lsls r0, 16
	cmp r0, 0
	bne _081D067C
	movs r0, 0
	b _081D0682
_081D067C:
	subs r0, r4, 0x1
	strh r0, [r5, 0xC]
	movs r0, 0x1
_081D0682:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0664

	thumb_func_start sub_81D0688
sub_81D0688: @ 81D0688
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrh r4, [r5, 0xC]
	adds r0, r4, 0
	movs r1, 0x9
	bl __umodsi3
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x7
	bgt _081D06BC
	cmp r4, 0x1A
	bhi _081D06AC
	ldrh r0, [r5, 0x10]
	subs r0, 0x1
	cmp r4, r0
	bge _081D06BC
	b _081D06B4
_081D06AC:
	ldrh r0, [r5, 0x12]
	subs r0, 0x1
	cmp r1, r0
	bge _081D06BC
_081D06B4:
	adds r0, r4, 0x1
	strh r0, [r5, 0xC]
	movs r0, 0x1
	b _081D06BE
_081D06BC:
	movs r0, 0
_081D06BE:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0688

	thumb_func_start sub_81D06C4
sub_81D06C4: @ 81D06C4
	push {lr}
	movs r0, 0xD
	bl sub_81C763C
	ldr r0, [r0, 0x8]
	ldrh r0, [r0, 0x2]
	pop {r1}
	bx r1
	thumb_func_end sub_81D06C4

	thumb_func_start sub_81D06D4
sub_81D06D4: @ 81D06D4
	push {lr}
	movs r0, 0xD
	bl sub_81C763C
	ldr r0, [r0, 0x8]
	ldrh r0, [r0]
	pop {r1}
	bx r1
	thumb_func_end sub_81D06D4

	thumb_func_start sub_81D06E4
sub_81D06E4: @ 81D06E4
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r7, r1, 0
	adds r6, r2, 0
	movs r0, 0xD
	bl sub_81C763C
	ldr r1, [r0, 0x8]
	ldrh r0, [r1, 0x2]
	lsls r0, 2
	adds r0, 0x4
	adds r1, r0
	ldrb r0, [r1]
	cmp r0, 0xE
	bne _081D0730
	ldrb r1, [r1, 0x1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	movs r1, 0x2
	adds r2, r5, 0
	bl GetMonData
	adds r0, r4, 0
	bl GetLevelFromMonExp
	strb r0, [r7]
	adds r0, r4, 0
	bl GetMonGender
	strb r0, [r6]
	b _081D0752
	.pool
_081D0730:
	ldrb r0, [r1]
	ldrb r1, [r1, 0x1]
	bl GetBoxedMonPtr
	adds r4, r0, 0
	bl GetBoxMonGender
	strb r0, [r6]
	adds r0, r4, 0
	bl GetLevelFromBoxMonExp
	strb r0, [r7]
	adds r0, r4, 0
	movs r1, 0x2
	adds r2, r5, 0
	bl GetBoxMonData
_081D0752:
	adds r0, r5, 0
	bl StringGetEnd10
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D06E4

	thumb_func_start sub_81D0760
sub_81D0760: @ 81D0760
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	adds r7, r2, 0
	movs r0, 0xD
	bl sub_81C763C
	ldr r1, [r0, 0x8]
	ldrh r0, [r1, 0x2]
	lsls r0, 2
	adds r0, 0x4
	adds r1, r0
	ldrb r0, [r1]
	cmp r0, 0xE
	bne _081D07AC
	ldrb r1, [r1, 0x1]
	movs r0, 0x64
	adds r4, r1, 0
	muls r4, r0
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	strh r0, [r5]
	adds r0, r4, 0
	movs r1, 0
	bl GetMonData
	str r0, [r6]
	adds r0, r4, 0
	movs r1, 0x1
	bl GetMonData
	b _081D07D0
	.pool
_081D07AC:
	ldrb r0, [r1]
	ldrb r1, [r1, 0x1]
	bl GetBoxedMonPtr
	adds r4, r0, 0
	movs r1, 0xB
	bl GetBoxMonData
	strh r0, [r5]
	adds r0, r4, 0
	movs r1, 0
	bl GetBoxMonData
	str r0, [r6]
	adds r0, r4, 0
	movs r1, 0x1
	bl GetBoxMonData
_081D07D0:
	str r0, [r7]
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D0760

	thumb_func_start sub_81D07D8
sub_81D07D8: @ 81D07D8
	push {lr}
	movs r0, 0xD
	bl sub_81C763C
	ldr r1, [r0, 0x8]
	ldrh r0, [r1, 0x2]
	lsls r0, 2
	adds r0, 0x4
	adds r1, r0
	ldrb r0, [r1]
	cmp r0, 0xE
	beq _081D07FA
	ldrb r1, [r1, 0x1]
	movs r2, 0x52
	bl GetBoxMonDataFromAnyBox
	b _081D080A
_081D07FA:
	ldrb r1, [r1, 0x1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x52
	bl GetMonData
_081D080A:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D07D8

	thumb_func_start sub_81D0814
sub_81D0814: @ 81D0814
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r5, r0, 0
	ldr r0, [r5, 0x8]
	ldrh r1, [r0, 0x2]
	lsls r1, 2
	adds r1, 0x4
	adds r1, r0, r1
	ldrb r0, [r1]
	cmp r0, 0xE
	bne _081D0848
	ldrb r1, [r1, 0x1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x53
	bl GetMonData
	b _081D0852
	.pool
_081D0848:
	ldrb r0, [r1]
	ldrb r1, [r1, 0x1]
	movs r2, 0x53
	bl GetBoxMonDataFromAnyBox
_081D0852:
	mov r12, r0
	movs r0, 0
	strh r0, [r5, 0x10]
	strh r0, [r5, 0x12]
	movs r6, 0
	ldr r0, =gUnknown_086237F8
	mov r9, r0
	mov r10, r9
_081D0862:
	lsls r2, r6, 2
	mov r3, r9
	adds r1, r2, r3
	movs r0, 0x1
	ldrb r3, [r1]
	lsls r0, r3
	subs r4, r0, 0x1
	mov r0, r12
	ands r4, r0
	ldrb r0, [r1, 0x3]
	adds r7, r2, 0
	cmp r0, 0
	bne _081D08AC
	movs r3, 0
	adds r6, 0x1
	mov r8, r6
	cmp r3, r4
	bge _081D08D6
	adds r6, r5, 0
	adds r6, 0x14
	mov r1, r10
	adds r0, r7, r1
	ldrb r2, [r0, 0x2]
_081D0890:
	ldrh r0, [r5, 0x10]
	adds r1, r0, 0x1
	strh r1, [r5, 0x10]
	lsls r0, 16
	lsrs r0, 14
	adds r0, r6, r0
	adds r1, r2, r3
	str r1, [r0]
	adds r3, 0x1
	cmp r3, r4
	blt _081D0890
	b _081D08D6
	.pool
_081D08AC:
	movs r3, 0
	adds r6, 0x1
	mov r8, r6
	cmp r3, r4
	bge _081D08D6
	adds r6, r5, 0
	adds r6, 0x78
	mov r1, r10
	adds r0, r7, r1
	ldrb r2, [r0, 0x2]
_081D08C0:
	ldrh r0, [r5, 0x12]
	adds r1, r0, 0x1
	strh r1, [r5, 0x12]
	lsls r0, 16
	lsrs r0, 14
	adds r0, r6, r0
	adds r1, r2, r3
	str r1, [r0]
	adds r3, 0x1
	cmp r3, r4
	blt _081D08C0
_081D08D6:
	mov r3, r9
	adds r0, r7, r3
	mov r1, r12
	ldrb r0, [r0]
	lsrs r1, r0
	mov r12, r1
	mov r6, r8
	cmp r6, 0x10
	bls _081D0862
	ldrh r0, [r5, 0x10]
	cmp r0, 0
	beq _081D0900
	subs r0, 0x1
	movs r1, 0x9
	bl __divsi3
	lsls r1, r0, 3
	adds r1, r0
	movs r0, 0
	strh r1, [r5, 0xE]
	b _081D0904
_081D0900:
	strh r0, [r5, 0xE]
	movs r0, 0x1B
_081D0904:
	strh r0, [r5, 0xC]
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D0814

	thumb_func_start sub_81D0914
sub_81D0914: @ 81D0914
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0xD
	bl sub_81C763C
	ldrh r1, [r0, 0x10]
	str r1, [r4]
	adds r0, 0x14
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0914

	thumb_func_start sub_81D092C
sub_81D092C: @ 81D092C
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0xD
	bl sub_81C763C
	ldrh r1, [r0, 0x12]
	str r1, [r4]
	adds r0, 0x78
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D092C

	thumb_func_start sub_81D0944
sub_81D0944: @ 81D0944
	push {lr}
	movs r0, 0xD
	bl sub_81C763C
	ldrh r0, [r0, 0xC]
	pop {r1}
	bx r1
	thumb_func_end sub_81D0944

	thumb_func_start sub_81D0954
sub_81D0954: @ 81D0954
	push {lr}
	movs r0, 0xD
	bl sub_81C763C
	adds r1, r0, 0
	ldrh r0, [r1, 0xC]
	cmp r0, 0x18
	ble _081D096C
	subs r0, 0x1B
	lsls r0, 2
	adds r1, 0x78
	b _081D0970
_081D096C:
	lsls r0, 2
	adds r1, 0x14
_081D0970:
	adds r1, r0
	ldr r0, [r1]
	pop {r1}
	bx r1
	thumb_func_end sub_81D0954

	thumb_func_start sub_81D0978
sub_81D0978: @ 81D0978
	push {r4,lr}
	ldr r1, =0x0000101c
	movs r0, 0xE
	bl sub_81C761C
	adds r4, r0, 0
	cmp r4, 0
	beq _081D09A8
	ldr r0, =sub_81D0A6C
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r4, 0x4]
	ldr r0, =sub_81D0A58
	str r0, [r4]
	movs r0, 0x1
	b _081D09AA
	.pool
_081D09A8:
	movs r0, 0
_081D09AA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0978

	thumb_func_start sub_81D09B0
sub_81D09B0: @ 81D09B0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xE
	bl sub_81C763C
	adds r5, r0, 0
	ldr r0, =gUnknown_08624BA0
	lsls r4, 2
	adds r4, r0
	ldr r0, [r4]
	movs r1, 0x1
	bl sub_81C7078
	str r0, [r5, 0x4]
	ldr r0, =sub_81D0A58
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D09B0

	thumb_func_start sub_81D09E0
sub_81D09E0: @ 81D09E0
	push {lr}
	movs r0, 0xE
	bl sub_81C763C
	ldr r0, [r0]
	bl _call_via_r0
	pop {r1}
	bx r1
	thumb_func_end sub_81D09E0

	thumb_func_start sub_81D09F4
sub_81D09F4: @ 81D09F4
	push {r4,lr}
	movs r0, 0xE
	bl sub_81C763C
	adds r4, r0, 0
	ldrb r0, [r4, 0xA]
	bl RemoveWindow
	ldrb r0, [r4, 0x8]
	bl RemoveWindow
	ldrb r0, [r4, 0xC]
	bl RemoveWindow
	ldrb r0, [r4, 0xE]
	bl RemoveWindow
	adds r0, r4, 0
	bl sub_81D1178
	movs r0, 0x9
	bl FreeSpriteTilesByTag
	movs r0, 0xF
	bl FreeSpritePaletteByTag
	movs r0, 0x10
	bl FreeSpritePaletteByTag
	movs r0, 0x11
	bl FreeSpritePaletteByTag
	movs r0, 0x12
	bl FreeSpritePaletteByTag
	movs r0, 0x13
	bl FreeSpritePaletteByTag
	ldr r0, [r4, 0x14]
	bl FreeSpriteOamMatrix
	ldr r0, [r4, 0x14]
	bl DestroySprite
	movs r0, 0xE
	bl sub_81C7650
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81D09F4

	thumb_func_start sub_81D0A58
sub_81D0A58: @ 81D0A58
	push {lr}
	movs r0, 0xE
	bl sub_81C763C
	ldr r0, [r0, 0x4]
	bl sub_81C70D8
	pop {r1}
	bx r1
	thumb_func_end sub_81D0A58

	thumb_func_start sub_81D0A6C
sub_81D0A6C: @ 81D0A6C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r4, r0, 0
	movs r0, 0xE
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x9
	bls _081D0A80
	b _081D0C48
_081D0A80:
	lsls r0, r4, 2
	ldr r1, =_081D0A90
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D0A90:
	.4byte _081D0AB8
	.4byte _081D0B04
	.4byte _081D0B74
	.4byte _081D0B88
	.4byte _081D0B9C
	.4byte _081D0BB0
	.4byte _081D0BC4
	.4byte _081D0BD8
	.4byte _081D0BE8
	.4byte _081D0C3C
_081D0AB8:
	ldr r0, =gUnknown_08624B98
	movs r1, 0x2
	bl sub_81C7B54
	ldr r1, =gUnknown_08DDE030
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	adds r1, r5, 0
	adds r1, 0x1C
	movs r0, 0x2
	bl SetBgTilemapBuffer
	ldr r1, =gUnknown_08DDE12C
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	ldr r0, =gUnknown_08DDE010
	movs r1, 0x10
	movs r2, 0x20
	bl sub_81C7944
	b _081D0BBA
	.pool
_081D0B04:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	beq _081D0B12
	b _081D0C44
_081D0B12:
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0x1
	bl sub_8199DF0
	ldr r1, =gUnknown_086240B8
	str r4, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0x1
	bl decompress_and_copy_tile_data_to_vram
	ldr r0, =0x0000081c
	adds r1, r5, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	ldr r0, =gUnknown_08623FF8
	movs r1, 0x20
	movs r2, 0xA0
	bl sub_81C7944
	ldr r0, =gUnknown_08624098
	movs r1, 0xA0
	movs r2, 0x20
	bl sub_81C7944
	movs r0, 0x1
	b _081D0BBC
	.pool
_081D0B74:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081D0C44
	adds r0, r5, 0
	bl sub_81D0E60
	movs r0, 0
	b _081D0C4A
_081D0B88:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081D0C44
	adds r0, r5, 0
	bl sub_81D0FCC
	movs r0, 0
	b _081D0C4A
_081D0B9C:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081D0C44
	adds r0, r5, 0
	bl sub_81D10A4
	movs r0, 0
	b _081D0C4A
_081D0BB0:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081D0C44
_081D0BBA:
	movs r0, 0x2
_081D0BBC:
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	b _081D0C4A
_081D0BC4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081D0C44
	adds r0, r5, 0
	bl sub_81D1148
	movs r0, 0x1
	b _081D0C4A
_081D0BD8:
	adds r0, r5, 0
	bl sub_81D12D8
	movs r0, 0xA
	bl sub_81C7BA4
	movs r0, 0
	b _081D0C4A
_081D0BE8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081D0C44
	adds r0, r5, 0
	bl sub_81D13FC
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl HideBg
	movs r0, 0x1
	bl sub_81C7AC0
	movs r0, 0
	b _081D0C4A
_081D0C3C:
	bl sub_81C7B34
	cmp r0, 0
	beq _081D0C48
_081D0C44:
	movs r0, 0x2
	b _081D0C4A
_081D0C48:
	movs r0, 0x4
_081D0C4A:
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0A6C

	thumb_func_start sub_81D0C54
sub_81D0C54: @ 81D0C54
	push {lr}
	cmp r0, 0
	beq _081D0C60
	cmp r0, 0x1
	beq _081D0C70
	b _081D0C7C
_081D0C60:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	bl sub_81C7AC0
	movs r0, 0
	b _081D0C7E
_081D0C70:
	bl sub_81C7B34
	cmp r0, 0
	beq _081D0C7C
	movs r0, 0x2
	b _081D0C7E
_081D0C7C:
	movs r0, 0x4
_081D0C7E:
	pop {r1}
	bx r1
	thumb_func_end sub_81D0C54

	thumb_func_start sub_81D0C84
sub_81D0C84: @ 81D0C84
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r0, 0xE
	bl sub_81C763C
	adds r4, r0, 0
	cmp r5, 0x6
	bhi _081D0D24
	lsls r0, r5, 2
	ldr r1, =_081D0CA4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D0CA4:
	.4byte _081D0CC0
	.4byte _081D0CD0
	.4byte _081D0CE4
	.4byte _081D0CEE
	.4byte _081D0CF8
	.4byte _081D0D02
	.4byte _081D0D16
_081D0CC0:
	movs r0, 0x5
	bl PlaySE
	adds r0, r4, 0
	bl sub_81D11D8
	movs r0, 0
	b _081D0D26
_081D0CD0:
	adds r0, r4, 0
	bl sub_81D1234
	cmp r0, 0
	bne _081D0D20
	adds r0, r4, 0
	bl sub_81D0FF0
	movs r0, 0x1
	b _081D0D26
_081D0CE4:
	adds r0, r4, 0
	bl sub_81D12D8
	movs r0, 0x1
	b _081D0D26
_081D0CEE:
	adds r0, r4, 0
	bl sub_81D10D0
	movs r0, 0x1
	b _081D0D26
_081D0CF8:
	adds r0, r4, 0
	bl sub_81D0E84
	movs r0, 0x1
	b _081D0D26
_081D0D02:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _081D0D20
	adds r0, r4, 0
	bl sub_81D11FC
	movs r0, 0
	b _081D0D26
_081D0D16:
	adds r0, r4, 0
	bl sub_81D1234
	cmp r0, 0
	beq _081D0D24
_081D0D20:
	movs r0, 0x2
	b _081D0D26
_081D0D24:
	movs r0, 0x4
_081D0D26:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0C84

	thumb_func_start sub_81D0D2C
sub_81D0D2C: @ 81D0D2C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xE
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081D0D5C
	cmp r4, 0x1
	bgt _081D0D46
	cmp r4, 0
	beq _081D0D4C
	b _081D0D84
_081D0D46:
	cmp r4, 0x2
	beq _081D0D76
	b _081D0D84
_081D0D4C:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81D1448
	movs r0, 0
	b _081D0D86
_081D0D5C:
	adds r0, r5, 0
	bl sub_81D1524
	cmp r0, 0
	bne _081D0D80
	adds r0, r5, 0
	bl sub_81D0EFC
	movs r0, 0xB
	bl sub_81C7BA4
	movs r0, 0
	b _081D0D86
_081D0D76:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081D0D84
_081D0D80:
	movs r0, 0x2
	b _081D0D86
_081D0D84:
	movs r0, 0x4
_081D0D86:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0D2C

	thumb_func_start sub_81D0D8C
sub_81D0D8C: @ 81D0D8C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xE
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081D0DC0
	cmp r4, 0x1
	bgt _081D0DA6
	cmp r4, 0
	beq _081D0DB0
	b _081D0DF6
_081D0DA6:
	cmp r4, 0x2
	beq _081D0DD4
	cmp r4, 0x3
	beq _081D0DE8
	b _081D0DF6
_081D0DB0:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81D1500
	movs r0, 0
	b _081D0DF8
_081D0DC0:
	adds r0, r5, 0
	bl sub_81D1524
	cmp r0, 0
	bne _081D0DF2
	adds r0, r5, 0
	bl sub_81D1448
	movs r0, 0
	b _081D0DF8
_081D0DD4:
	adds r0, r5, 0
	bl sub_81D1524
	cmp r0, 0
	bne _081D0DF2
	adds r0, r5, 0
	bl sub_81D0EFC
	movs r0, 0
	b _081D0DF8
_081D0DE8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081D0DF6
_081D0DF2:
	movs r0, 0x2
	b _081D0DF8
_081D0DF6:
	movs r0, 0x4
_081D0DF8:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0D8C

	thumb_func_start sub_81D0E00
sub_81D0E00: @ 81D0E00
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xE
	bl sub_81C763C
	adds r5, r0, 0
	cmp r4, 0x1
	beq _081D0E30
	cmp r4, 0x1
	bgt _081D0E1A
	cmp r4, 0
	beq _081D0E20
	b _081D0E58
_081D0E1A:
	cmp r4, 0x2
	beq _081D0E4A
	b _081D0E58
_081D0E20:
	movs r0, 0x5
	bl PlaySE
	adds r0, r5, 0
	bl sub_81D1500
	movs r0, 0
	b _081D0E5A
_081D0E30:
	adds r0, r5, 0
	bl sub_81D1524
	cmp r0, 0
	bne _081D0E54
	adds r0, r5, 0
	bl sub_81D0E84
	movs r0, 0xA
	bl sub_81C7BA4
	movs r0, 0
	b _081D0E5A
_081D0E4A:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	beq _081D0E58
_081D0E54:
	movs r0, 0x2
	b _081D0E5A
_081D0E58:
	movs r0, 0x4
_081D0E5A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D0E00

	thumb_func_start sub_81D0E60
sub_81D0E60: @ 81D0E60
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_08624BB8
	bl AddWindow
	strh r0, [r4, 0xA]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	adds r0, r4, 0
	bl sub_81D0E84
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D0E60

	thumb_func_start sub_81D0E84
sub_81D0E84: @ 81D0E84
	push {r4,r5,lr}
	sub sp, 0x10
	adds r5, r0, 0
	ldr r1, =gUnknown_08624BC0
	add r0, sp, 0xC
	movs r2, 0x3
	bl memcpy
	ldr r4, =gStringVar1
	bl sub_81D07D8
	adds r1, r0, 0
	adds r0, r4, 0
	movs r2, 0
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	bl sub_81AFBF0
	movs r0, 0
	adds r1, r4, 0
	bl sub_81AFC0C
	ldr r4, =gStringVar4
	ldr r1, =gUnknown_085EC030
	adds r0, r4, 0
	bl sub_81AFC28
	ldrb r0, [r5, 0xA]
	movs r1, 0x44
	bl FillWindowPixelBuffer
	ldrb r0, [r5, 0xA]
	add r1, sp, 0xC
	str r1, [sp]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	ldrb r0, [r5, 0xA]
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D0E84

	thumb_func_start sub_81D0EFC
sub_81D0EFC: @ 81D0EFC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x10
	adds r7, r0, 0
	bl sub_81D0954
	adds r5, r0, 0
	ldr r1, =gUnknown_08624BC0
	add r0, sp, 0xC
	movs r2, 0x3
	bl memcpy
	ldrb r0, [r7, 0xA]
	movs r1, 0x44
	bl FillWindowPixelBuffer
	cmp r5, 0x18
	bhi _081D0F60
	lsls r1, r5, 3
	ldr r0, =gRibbonDescriptionPointers
	adds r6, r1, r0
	movs r5, 0x80
	lsls r5, 17
	movs r4, 0x1
_081D0F2E:
	ldrb r0, [r7, 0xA]
	lsrs r3, r5, 24
	add r1, sp, 0xC
	str r1, [sp]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp, 0x4]
	ldm r6!, {r1}
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0
	bl box_print
	movs r0, 0x80
	lsls r0, 21
	adds r5, r0
	subs r4, 0x1
	cmp r4, 0
	bge _081D0F2E
	b _081D0FAA
	.pool
_081D0F60:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	adds r0, r5
	ldr r1, =0x0000318f
	adds r0, r1
	ldrb r5, [r0]
	cmp r5, 0
	beq _081D0FB2
	subs r5, 0x1
	movs r4, 0
	ldr r0, =gGiftRibbonDescriptionPointers
	mov r8, r0
	movs r6, 0x80
	lsls r6, 17
_081D0F7C:
	ldrb r0, [r7, 0xA]
	lsrs r3, r6, 24
	add r1, sp, 0xC
	str r1, [sp]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp, 0x4]
	lsls r1, r4, 2
	lsls r2, r5, 3
	adds r1, r2
	add r1, r8
	ldr r1, [r1]
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r2, 0
	bl box_print
	movs r0, 0x80
	lsls r0, 21
	adds r6, r0
	adds r4, 0x1
	cmp r4, 0x1
	ble _081D0F7C
_081D0FAA:
	ldrb r0, [r7, 0xA]
	movs r1, 0x2
	bl CopyWindowToVram
_081D0FB2:
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D0EFC

	thumb_func_start sub_81D0FCC
sub_81D0FCC: @ 81D0FCC
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_08624BC4
	bl AddWindow
	strh r0, [r4, 0x8]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	adds r0, r4, 0
	bl sub_81D0FF0
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D0FCC

	thumb_func_start sub_81D0FF0
sub_81D0FF0: @ 81D0FF0
	push {r4-r7,lr}
	sub sp, 0x10
	ldrh r7, [r0, 0x8]
	ldrb r5, [r0, 0x8]
	adds r0, r5, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r4, =gStringVar3
	mov r6, sp
	adds r6, 0xD
	adds r0, r4, 0
	add r1, sp, 0xC
	adds r2, r6, 0
	bl sub_81D06E4
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r5, 0
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r6]
	cmp r0, 0
	beq _081D1040
	cmp r0, 0xFE
	beq _081D1048
	ldr r1, =gUnknown_08624BE4
	b _081D104A
	.pool
_081D1040:
	ldr r1, =gUnknown_08624BCC
	b _081D104A
	.pool
_081D1048:
	ldr r1, =gUnknown_08624BD8
_081D104A:
	ldr r5, =gStringVar1
	adds r0, r5, 0
	bl StringCopy
	movs r1, 0xBA
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0xF9
	strb r1, [r0]
	adds r0, 0x1
	movs r1, 0x5
	strb r1, [r0]
	adds r0, 0x1
	add r1, sp, 0xC
	ldrb r1, [r1]
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	lsls r4, r7, 24
	lsrs r4, 24
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	adds r2, r5, 0
	movs r3, 0x3C
	bl PrintTextOnWindow
	adds r0, r4, 0
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x10
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D0FF0

	thumb_func_start sub_81D10A4
sub_81D10A4: @ 81D10A4
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_08624BE8
	bl AddWindow
	strh r0, [r4, 0xC]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldrb r0, [r4, 0xC]
	bl PutWindowTilemap
	adds r0, r4, 0
	bl sub_81D10D0
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D10A4

	thumb_func_start sub_81D10D0
sub_81D10D0: @ 81D10D0
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0xC
	mov r8, r0
	bl sub_81D06C4
	adds r4, r0, 0
	adds r4, 0x1
	bl sub_81D06D4
	adds r6, r0, 0
	ldr r5, =gStringVar1
	adds r0, r5, 0
	adds r1, r4, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r1, 0xBA
	strb r1, [r0]
	adds r0, 0x1
	adds r1, r6, 0
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x38
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	mov r1, r8
	ldrb r0, [r1, 0xC]
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r5, 0
	bl PrintTextOnWindow
	mov r1, r8
	ldrb r0, [r1, 0xC]
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D10D0

	thumb_func_start sub_81D1148
sub_81D1148: @ 81D1148
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	add r1, sp, 0x4
	add r2, sp, 0x8
	mov r0, sp
	bl sub_81D0760
	bl dp13_810BB8C
	movs r0, 0x28
	movs r1, 0x68
	bl sub_81D1184
	strh r0, [r4, 0x10]
	movs r0, 0xF
	movs r1, 0
	bl sub_81C7990
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81D1148

	thumb_func_start sub_81D1178
sub_81D1178: @ 81D1178
	push {lr}
	ldrh r0, [r0, 0x10]
	bl sub_818D820
	pop {r0}
	bx r0
	thumb_func_end sub_81D1178

	thumb_func_start sub_81D1184
sub_81D1184: @ 81D1184
	push {lr}
	sub sp, 0x1C
	add r1, sp, 0x14
	add r2, sp, 0x18
	add r0, sp, 0x10
	bl sub_81D0760
	add r0, sp, 0x10
	ldrh r0, [r0]
	ldr r1, [sp, 0x18]
	ldr r2, [sp, 0x14]
	movs r3, 0x28
	str r3, [sp]
	movs r3, 0x68
	str r3, [sp, 0x4]
	movs r3, 0xF
	str r3, [sp, 0x8]
	ldr r3, =0x0000ffff
	str r3, [sp, 0xC]
	movs r3, 0x1
	bl sub_818D7D8
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =gSprites
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r1
	ldrb r3, [r2, 0x5]
	movs r1, 0xD
	negs r1, r1
	ands r1, r3
	strb r1, [r2, 0x5]
	add sp, 0x1C
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D1184

	thumb_func_start sub_81D11D8
sub_81D11D8: @ 81D11D8
	push {lr}
	ldrh r1, [r0, 0x10]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	movs r2, 0x20
	negs r2, r2
	movs r1, 0x28
	movs r3, 0x6
	bl sub_81D1258
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D11D8

	thumb_func_start sub_81D11FC
sub_81D11FC: @ 81D11FC
	push {r4,r5,lr}
	adds r4, r0, 0
	ldrh r0, [r4, 0x10]
	bl sub_818D820
	movs r5, 0x20
	negs r5, r5
	adds r0, r5, 0
	movs r1, 0x68
	bl sub_81D1184
	strh r0, [r4, 0x10]
	ldrh r1, [r4, 0x10]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	adds r1, r5, 0
	movs r2, 0x28
	movs r3, 0x6
	bl sub_81D1258
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D11FC

	thumb_func_start sub_81D1234
sub_81D1234: @ 81D1234
	ldr r2, =gSprites
	ldrh r1, [r0, 0x10]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, [r0]
	ldr r0, =SpriteCallbackDummy
	eors r1, r0
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	bx lr
	.pool
	thumb_func_end sub_81D1234

	thumb_func_start sub_81D1258
sub_81D1258: @ 81D1258
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r6, r2, 0
	adds r5, r3, 0
	subs r0, r6, r1
	strh r1, [r4, 0x20]
	lsls r1, 4
	strh r1, [r4, 0x2E]
	lsls r0, 4
	adds r1, r5, 0
	bl __udivsi3
	strh r0, [r4, 0x30]
	strh r5, [r4, 0x32]
	strh r6, [r4, 0x34]
	ldr r0, =sub_81D1284
	str r0, [r4, 0x1C]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1258

	thumb_func_start sub_81D1284
sub_81D1284: @ 81D1284
	push {lr}
	adds r2, r0, 0
	ldrh r1, [r2, 0x32]
	movs r3, 0x32
	ldrsh r0, [r2, r3]
	cmp r0, 0
	beq _081D12C8
	subs r0, r1, 0x1
	strh r0, [r2, 0x32]
	ldrh r0, [r2, 0x30]
	ldrh r1, [r2, 0x2E]
	adds r0, r1
	strh r0, [r2, 0x2E]
	lsls r0, 16
	asrs r0, 20
	strh r0, [r2, 0x20]
	movs r1, 0x20
	negs r1, r1
	cmp r0, r1
	bgt _081D12BA
	adds r0, r2, 0
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	b _081D12D0
_081D12BA:
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	b _081D12D0
_081D12C8:
	ldrh r0, [r2, 0x34]
	strh r0, [r2, 0x20]
	ldr r0, =SpriteCallbackDummy
	str r0, [r2, 0x1C]
_081D12D0:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1284

	thumb_func_start sub_81D12D8
sub_81D12D8: @ 81D12D8
	push {r4-r6,lr}
	bl sub_81D1350
	ldr r5, =gUnknown_030012C0
	adds r0, r5, 0
	bl sub_81D0914
	adds r6, r0, 0
	ldr r2, =gUnknown_030012C4
	movs r1, 0
	str r1, [r2]
	ldr r0, [r5]
	cmp r1, r0
	bcs _081D130A
	adds r4, r2, 0
_081D12F6:
	ldr r0, [r4]
	ldm r6!, {r1}
	bl sub_81D1370
	ldr r1, [r4]
	adds r1, 0x1
	str r1, [r4]
	ldr r0, [r5]
	cmp r1, r0
	bcc _081D12F6
_081D130A:
	ldr r4, =gUnknown_030012C0
	adds r0, r4, 0
	bl sub_81D092C
	adds r6, r0, 0
	ldr r2, =gUnknown_030012C4
	movs r1, 0
	str r1, [r2]
	ldr r0, [r4]
	cmp r1, r0
	bcs _081D133A
	adds r4, r2, 0
_081D1322:
	ldr r0, [r4]
	adds r0, 0x1B
	ldm r6!, {r1}
	bl sub_81D1370
	ldr r1, [r4]
	adds r1, 0x1
	str r1, [r4]
	ldr r0, =gUnknown_030012C0
	ldr r0, [r0]
	cmp r1, r0
	bcc _081D1322
_081D133A:
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D12D8

	thumb_func_start sub_81D1350
sub_81D1350: @ 81D1350
	push {lr}
	sub sp, 0x8
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	add sp, 0x8
	pop {r0}
	bx r0
	thumb_func_end sub_81D1350

	thumb_func_start sub_81D1370
sub_81D1370: @ 81D1370
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r0, 0
	adds r6, r1, 0
	movs r1, 0x9
	bl __umodsi3
	adds r5, r0, 0
	lsls r5, 1
	adds r5, 0xB
	adds r0, r4, 0
	movs r1, 0x9
	bl __udivsi3
	adds r4, r0, 0
	lsls r4, 1
	adds r4, 0x4
	add r0, sp, 0x8
	adds r1, r6, 0
	bl sub_81D13BC
	lsls r5, 24
	lsrs r5, 24
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x2
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x1
	add r1, sp, 0x8
	adds r2, r5, 0
	adds r3, r4, 0
	bl CopyToBgTilemapBufferRect
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81D1370

	thumb_func_start sub_81D13BC
sub_81D13BC: @ 81D13BC
	push {r4,r5,lr}
	ldr r2, =gUnknown_08624BF8
	lsls r1, 2
	adds r1, r2
	ldrh r3, [r1, 0x2]
	adds r3, 0x2
	lsls r3, 16
	ldrh r1, [r1]
	lsls r1, 1
	adds r1, 0x1
	lsls r1, 16
	lsrs r1, 16
	lsrs r3, 4
	adds r2, r1, 0
	orrs r2, r3
	strh r2, [r0]
	movs r5, 0x80
	lsls r5, 3
	adds r4, r5, 0
	orrs r2, r4
	strh r2, [r0, 0x2]
	adds r1, 0x1
	orrs r1, r3
	strh r1, [r0, 0x4]
	orrs r1, r4
	strh r1, [r0, 0x6]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D13BC

	thumb_func_start sub_81D13FC
sub_81D13FC: @ 81D13FC
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_08624C78
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_08624C80
	bl sub_81C795C
	ldr r0, =gUnknown_08624D04
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r4, 0x14]
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D13FC

	thumb_func_start sub_81D1448
sub_81D1448: @ 81D1448
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r6, r0, 0
	bl sub_81D0944
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r4, 0
	movs r1, 0x9
	bl __modsi3
	adds r5, r0, 0
	lsls r5, 4
	adds r5, 0x60
	adds r0, r4, 0
	movs r1, 0x9
	bl __divsi3
	lsls r0, 4
	adds r0, 0x28
	ldr r1, [r6, 0x14]
	movs r2, 0
	mov r8, r2
	strh r5, [r1, 0x20]
	ldr r1, [r6, 0x14]
	strh r0, [r1, 0x22]
	bl sub_81D0954
	adds r4, r0, 0
	movs r0, 0x9
	bl GetSpriteTileStartByTag
	ldr r3, [r6, 0x14]
	ldr r1, =gUnknown_08624BF8
	lsls r4, 2
	adds r4, r1
	ldrh r1, [r4]
	lsls r1, 4
	adds r0, r1
	ldr r2, =0x000003ff
	adds r1, r2, 0
	ands r0, r1
	ldrh r2, [r3, 0x4]
	ldr r1, =0xfffffc00
	ands r1, r2
	orrs r1, r0
	strh r1, [r3, 0x4]
	ldrh r0, [r4, 0x2]
	adds r0, 0xF
	lsls r0, 16
	lsrs r0, 16
	bl IndexOfSpritePaletteTag
	ldr r3, [r6, 0x14]
	lsls r0, 4
	ldrb r2, [r3, 0x5]
	movs r1, 0xF
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0x5]
	ldr r0, [r6, 0x14]
	movs r1, 0x1
	bl StartSpriteAffineAnim
	ldr r1, [r6, 0x14]
	adds r1, 0x3E
	ldrb r2, [r1]
	movs r0, 0x5
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r0, [r6, 0x14]
	mov r1, r8
	strh r1, [r0, 0x2E]
	ldr r1, [r6, 0x14]
	ldr r0, =sub_81D1538
	str r0, [r1, 0x1C]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1448

	thumb_func_start sub_81D1500
sub_81D1500: @ 81D1500
	push {r4,lr}
	adds r4, r0, 0
	ldr r1, [r4, 0x14]
	movs r0, 0x1
	strh r0, [r1, 0x2E]
	ldr r0, [r4, 0x14]
	movs r1, 0x2
	bl StartSpriteAffineAnim
	ldr r1, [r4, 0x14]
	ldr r0, =sub_81D1538
	str r0, [r1, 0x1C]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1500

	thumb_func_start sub_81D1524
sub_81D1524: @ 81D1524
	ldr r0, [r0, 0x14]
	ldr r1, [r0, 0x1C]
	ldr r0, =SpriteCallbackDummy
	eors r1, r0
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	bx lr
	.pool
	thumb_func_end sub_81D1524

	thumb_func_start sub_81D1538
sub_81D1538: @ 81D1538
	push {lr}
	adds r3, r0, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _081D156A
	movs r0, 0x3E
	adds r0, r3
	mov r12, r0
	movs r0, 0x1
	ldrh r1, [r3, 0x2E]
	ands r1, r0
	lsls r1, 2
	mov r0, r12
	ldrb r2, [r0]
	movs r0, 0x5
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	mov r1, r12
	strb r0, [r1]
	ldr r0, =SpriteCallbackDummy
	str r0, [r3, 0x1C]
_081D156A:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1538

	thumb_func_start sub_81D1574
sub_81D1574: @ 81D1574
	push {lr}
	ldrb r0, [r0]
	cmp r0, 0x5
	bhi _081D15A4
	lsls r0, 2
	ldr r1, =_081D158C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D158C:
	.4byte _081D15A4
	.4byte _081D15A8
	.4byte _081D15AC
	.4byte _081D15B4
	.4byte _081D15B0
	.4byte _081D15A8
_081D15A4:
	movs r0, 0
	b _081D15B6
_081D15A8:
	movs r0, 0x1
	b _081D15B6
_081D15AC:
	movs r0, 0x2
	b _081D15B6
_081D15B0:
	movs r0, 0x3
	b _081D15B6
_081D15B4:
	movs r0, 0x4
_081D15B6:
	pop {r1}
	bx r1
	thumb_func_end sub_81D1574

	thumb_func_start sub_81D15BC
sub_81D15BC: @ 81D15BC
	ldr r1, =gUnknown_085500A4
	lsls r0, 4
	adds r0, r1
	ldrh r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_81D15BC

	thumb_func_start sub_81D15CC
sub_81D15CC: @ 81D15CC
	push {lr}
	adds r3, r0, 0
	movs r1, 0
	ldr r2, =gUnknown_085500A4
_081D15D4:
	ldrh r0, [r2]
	cmp r0, r3
	bne _081D15E4
	adds r0, r1, 0
	b _081D15F0
	.pool
_081D15E4:
	adds r2, 0x10
	adds r1, 0x1
	cmp r1, 0x4D
	ble _081D15D4
	movs r0, 0x1
	negs r0, r0
_081D15F0:
	pop {r1}
	bx r1
	thumb_func_end sub_81D15CC

	thumb_func_start sub_81D15F4
sub_81D15F4: @ 81D15F4
	push {r4,lr}
	cmp r0, 0x14
	bhi _081D1620
	ldr r1, =gUnknown_086252A8
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	adds r0, r4, 0
	bl sub_81D1574
	ldr r1, =gUnknown_086252FC
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	b _081D1622
	.pool
_081D1620:
	movs r0, 0
_081D1622:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D15F4

	thumb_func_start sub_81D1628
sub_81D1628: @ 81D1628
	push {lr}
	adds r2, r0, 0
	ldrh r1, [r2, 0x2]
	ldr r0, =0x0000ffff
	cmp r1, r0
	beq _081D1644
	adds r0, r1, 0
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	b _081D1646
	.pool
_081D1644:
	movs r0, 0x1
_081D1646:
	pop {r1}
	bx r1
	thumb_func_end sub_81D1628

	thumb_func_start sub_81D164C
sub_81D164C: @ 81D164C
	push {lr}
	adds r2, r0, 0
	ldrh r1, [r2, 0x2]
	ldr r0, =0x0000ffff
	cmp r1, r0
	beq _081D1668
	adds r0, r1, 0
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	b _081D166A
	.pool
_081D1668:
	movs r0, 0x1
_081D166A:
	pop {r1}
	bx r1
	thumb_func_end sub_81D164C

	thumb_func_start sub_81D1670
sub_81D1670: @ 81D1670
	push {lr}
	adds r2, r0, 0
	ldrh r1, [r2, 0x2]
	ldr r0, =0x0000ffff
	cmp r1, r0
	beq _081D168C
	adds r0, r1, 0
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	b _081D168E
	.pool
_081D168C:
	movs r0, 0x1
_081D168E:
	pop {r1}
	bx r1
	thumb_func_end sub_81D1670

	thumb_func_start sub_81D1694
sub_81D1694: @ 81D1694
	push {lr}
	adds r2, r0, 0
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	ldrb r0, [r2, 0x1]
	ldrb r1, [r1, 0x8]
	cmp r0, r1
	beq _081D16AC
	movs r0, 0
	b _081D16C6
	.pool
_081D16AC:
	ldrh r1, [r2, 0x2]
	ldr r0, =0x0000ffff
	cmp r1, r0
	beq _081D16C4
	adds r0, r1, 0
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	b _081D16C6
	.pool
_081D16C4:
	movs r0, 0x1
_081D16C6:
	pop {r1}
	bx r1
	thumb_func_end sub_81D1694

	thumb_func_start sub_81D16CC
sub_81D16CC: @ 81D16CC
	push {lr}
	ldrh r0, [r0, 0x2]
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_81D16CC

	thumb_func_start sub_81D16DC
sub_81D16DC: @ 81D16DC
	push {r4,lr}
	cmp r0, 0x14
	bhi _081D170C
	ldr r1, =gUnknown_086252A8
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	adds r0, r4, 0
	bl sub_81D1574
	ldr r1, =gUnknown_08625310
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	lsrs r0, 24
	b _081D170E
	.pool
_081D170C:
	movs r0, 0
_081D170E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D16DC

	thumb_func_start sub_81D1714
sub_81D1714: @ 81D1714
	ldrb r0, [r0, 0x1]
	bx lr
	thumb_func_end sub_81D1714

	thumb_func_start sub_81D1718
sub_81D1718: @ 81D1718
	ldrb r0, [r0, 0x1]
	bx lr
	thumb_func_end sub_81D1718

	thumb_func_start sub_81D171C
sub_81D171C: @ 81D171C
	push {r4-r7,lr}
	adds r5, r0, 0
	movs r6, 0
	ldr r7, =0x0000ffff
	b _081D172E
	.pool
_081D172C:
	adds r6, 0x1
_081D172E:
	ldr r0, [r5, 0x10]
	lsls r4, r6, 2
	adds r1, r4, r0
	ldrh r0, [r1]
	cmp r0, r7
	beq _081D1744
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _081D172C
_081D1744:
	ldr r0, [r5, 0x10]
	adds r0, r4, r0
	ldrb r0, [r0, 0x2]
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D171C

	thumb_func_start sub_81D1750
sub_81D1750: @ 81D1750
	movs r0, 0xD5
	bx lr
	thumb_func_end sub_81D1750

	thumb_func_start sub_81D1754
sub_81D1754: @ 81D1754
	movs r0, 0xD5
	bx lr
	thumb_func_end sub_81D1754

	thumb_func_start sub_81D1758
sub_81D1758: @ 81D1758
	push {r4,lr}
	cmp r0, 0x14
	bhi _081D1784
	ldr r1, =gUnknown_086252A8
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	adds r0, r4, 0
	bl sub_81D1574
	ldr r1, =gUnknown_08625324
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	b _081D1786
	.pool
_081D1784:
	movs r0, 0
_081D1786:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D1758

	thumb_func_start sub_81D178C
sub_81D178C: @ 81D178C
	movs r0, 0
	bx lr
	thumb_func_end sub_81D178C

	thumb_func_start sub_81D1790
sub_81D1790: @ 81D1790
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0x4]
	cmp r0, 0x48
	bhi _081D17B8
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x000009ca
	adds r0, r2
	ldrh r1, [r1, 0x4]
	adds r0, r1
	ldrb r1, [r0]
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	b _081D17BA
	.pool
_081D17B8:
	movs r0, 0
_081D17BA:
	pop {r1}
	bx r1
	thumb_func_end sub_81D1790

	thumb_func_start sub_81D17C0
sub_81D17C0: @ 81D17C0
	ldr r1, =gSaveBlock1Ptr
	ldr r1, [r1]
	ldr r2, =0x000009ca
	adds r1, r2
	ldrh r0, [r0, 0x4]
	adds r1, r0
	ldrb r1, [r1]
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	bx lr
	.pool
	thumb_func_end sub_81D17C0

	thumb_func_start sub_81D17E0
sub_81D17E0: @ 81D17E0
	movs r0, 0
	bx lr
	thumb_func_end sub_81D17E0

	thumb_func_start sub_81D17E4
sub_81D17E4: @ 81D17E4
	movs r0, 0
	bx lr
	thumb_func_end sub_81D17E4

	thumb_func_start sub_81D17E8
sub_81D17E8: @ 81D17E8
	push {r4,r5,lr}
	adds r5, r0, 0
	cmp r5, 0x14
	bhi _081D1832
	ldr r1, =gUnknown_086252A8
	lsls r0, r5, 2
	adds r0, r1
	ldr r4, [r0]
	adds r0, r4, 0
	bl sub_81D1574
	adds r2, r0, 0
	ldr r1, =gUnknown_08625338
	lsls r0, r2, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	cmp r0, 0
	beq _081D1820
_081D1812:
	movs r0, 0x1
	b _081D1834
	.pool
_081D1820:
	movs r2, 0
	ldr r1, =gUnknown_08625388
_081D1824:
	ldrh r0, [r1]
	cmp r0, r5
	beq _081D1812
	adds r1, 0x18
	adds r2, 0x1
	cmp r2, 0x3
	bls _081D1824
_081D1832:
	movs r0, 0
_081D1834:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D17E8

	thumb_func_start sub_81D1840
sub_81D1840: @ 81D1840
	movs r0, 0
	bx lr
	thumb_func_end sub_81D1840

	thumb_func_start sub_81D1844
sub_81D1844: @ 81D1844
	movs r0, 0x1
	bx lr
	thumb_func_end sub_81D1844

	thumb_func_start sub_81D1848
sub_81D1848: @ 81D1848
	movs r0, 0x1
	bx lr
	thumb_func_end sub_81D1848

	thumb_func_start sub_81D184C
sub_81D184C: @ 81D184C
	movs r0, 0
	bx lr
	thumb_func_end sub_81D184C

	thumb_func_start sub_81D1850
sub_81D1850: @ 81D1850
	movs r0, 0
	bx lr
	thumb_func_end sub_81D1850

	thumb_func_start sub_81D1854
sub_81D1854: @ 81D1854
	push {r4,lr}
	cmp r0, 0x14
	bhi _081D1880
	ldr r1, =gUnknown_086252A8
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	adds r0, r4, 0
	bl sub_81D1574
	ldr r1, =gUnknown_0862534C
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	b _081D1882
	.pool
_081D1880:
	movs r0, 0x4E
_081D1882:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D1854

	thumb_func_start sub_81D1888
sub_81D1888: @ 81D1888
	movs r0, 0x4E
	bx lr
	thumb_func_end sub_81D1888

	thumb_func_start sub_81D188C
sub_81D188C: @ 81D188C
	ldrh r0, [r0, 0x4]
	bx lr
	thumb_func_end sub_81D188C

	thumb_func_start sub_81D1890
sub_81D1890: @ 81D1890
	ldrh r0, [r0, 0x4]
	bx lr
	thumb_func_end sub_81D1890

	thumb_func_start sub_81D1894
sub_81D1894: @ 81D1894
	movs r0, 0x4E
	bx lr
	thumb_func_end sub_81D1894

	thumb_func_start sub_81D1898
sub_81D1898: @ 81D1898
	movs r0, 0x4E
	bx lr
	thumb_func_end sub_81D1898

	thumb_func_start sub_81D189C
sub_81D189C: @ 81D189C
	push {r4,r5,lr}
	adds r5, r1, 0
	cmp r0, 0x14
	bhi _081D18C2
	ldr r1, =gUnknown_086252A8
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	adds r0, r4, 0
	bl sub_81D1574
	ldr r1, =gUnknown_08625360
	lsls r0, 2
	adds r0, r1
	ldr r2, [r0]
	adds r0, r4, 0
	adds r1, r5, 0
	bl _call_via_r2
_081D18C2:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D189C

	thumb_func_start sub_81D18D0
sub_81D18D0: @ 81D18D0
	push {lr}
	ldr r0, [r0, 0xC]
	bl sub_81D1920
	pop {r0}
	bx r0
	thumb_func_end sub_81D18D0

	thumb_func_start sub_81D18DC
sub_81D18DC: @ 81D18DC
	push {lr}
	adds r3, r0, 0
	adds r2, r1, 0
	ldrb r0, [r3]
	cmp r0, 0x5
	beq _081D18F0
	ldr r0, [r3, 0x10]
	bl sub_81D1920
	b _081D18F8
_081D18F0:
	ldr r0, [r3, 0x10]
	ldrh r1, [r3, 0x4]
	bl sub_81D199C
_081D18F8:
	pop {r0}
	bx r0
	thumb_func_end sub_81D18DC

	thumb_func_start sub_81D18FC
sub_81D18FC: @ 81D18FC
	push {lr}
	ldr r0, [r0, 0xC]
	bl sub_81D1920
	pop {r0}
	bx r0
	thumb_func_end sub_81D18FC

	thumb_func_start sub_81D1908
sub_81D1908: @ 81D1908
	push {lr}
	ldr r0, [r0, 0xC]
	bl sub_81D1920
	pop {r0}
	bx r0
	thumb_func_end sub_81D1908

	thumb_func_start sub_81D1914
sub_81D1914: @ 81D1914
	push {lr}
	adds r0, r1, 0
	bl sub_8197080
	pop {r0}
	bx r0
	thumb_func_end sub_81D1914

	thumb_func_start sub_81D1920
sub_81D1920: @ 81D1920
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r6, r0, 0
	mov r9, r1
	movs r5, 0
	ldr r0, [r6]
	cmp r0, 0
	beq _081D1940
	adds r1, r6, 0
_081D1936:
	adds r1, 0x8
	adds r5, 0x1
	ldr r0, [r1]
	cmp r0, 0
	bne _081D1936
_081D1940:
	cmp r5, 0
	beq _081D1946
	subs r5, 0x1
_081D1946:
	ldr r0, =0x0000ffff
	mov r8, r0
	lsls r0, r5, 3
	adds r0, 0x4
	adds r4, r0, r6
	b _081D195C
	.pool
_081D1958:
	subs r4, 0x8
	subs r5, 0x1
_081D195C:
	lsls r7, r5, 3
	cmp r5, 0
	beq _081D1974
	ldrh r0, [r4]
	cmp r0, r8
	beq _081D1958
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081D1958
_081D1974:
	adds r4, r7, r6
	ldrh r1, [r4, 0x6]
	ldr r0, =0x0000ffff
	cmp r1, r0
	beq _081D1984
	adds r0, r1, 0
	bl FlagSet
_081D1984:
	ldr r1, [r4]
	mov r0, r9
	bl StringExpandPlaceholders
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1920

	thumb_func_start sub_81D199C
sub_81D199C: @ 81D199C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r6, r0, 0
	mov r10, r2
	lsls r1, 16
	lsrs r7, r1, 16
	movs r5, 0
	ldr r0, [r6]
	cmp r0, 0
	beq _081D19E6
	ldrh r0, [r6, 0x4]
	ldr r1, =0x0000fffe
	cmp r0, r1
	beq _081D1A24
	ldr r0, =0x0000ffff
	mov r9, r0
	mov r8, r1
	adds r4, r6, 0
_081D19C6:
	ldrh r0, [r4, 0x4]
	cmp r0, r9
	beq _081D19D6
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081D19E6
_081D19D6:
	adds r4, 0x8
	adds r5, 0x1
	ldr r0, [r4]
	cmp r0, 0
	beq _081D19E6
	ldrh r0, [r4, 0x4]
	cmp r0, r8
	bne _081D19C6
_081D19E6:
	lsls r0, r5, 3
	adds r0, r6
	ldrh r1, [r0, 0x4]
	ldr r0, =0x0000fffe
	cmp r1, r0
	beq _081D1A24
	cmp r5, 0
	beq _081D19F8
	subs r5, 0x1
_081D19F8:
	lsls r0, r5, 3
	adds r4, r0, r6
	ldrh r1, [r4, 0x6]
	ldr r0, =0x0000ffff
	cmp r1, r0
	beq _081D1A0A
	adds r0, r1, 0
	bl FlagSet
_081D1A0A:
	ldr r1, [r4]
	mov r0, r10
	bl StringExpandPlaceholders
	b _081D1A5C
	.pool
_081D1A1C:
	adds r5, 0x2
	b _081D1A50
_081D1A20:
	adds r5, 0x3
	b _081D1A50
_081D1A24:
	ldr r0, =0x00000864
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081D1A50
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x000009ca
	adds r0, r1
	adds r0, r7
	ldrb r0, [r0]
	cmp r0, 0
	bne _081D1A1C
	adds r0, r7, 0
	bl sub_80B2318
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	bhi _081D1A20
	adds r5, 0x1
_081D1A50:
	lsls r0, r5, 3
	adds r0, r6
	ldr r1, [r0]
	mov r0, r10
	bl StringExpandPlaceholders
_081D1A5C:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D199C

	thumb_func_start sub_81D1A78
sub_81D1A78: @ 81D1A78
	push {r4-r6,lr}
	adds r5, r1, 0
	adds r6, r2, 0
	cmp r0, 0x14
	bhi _081D1AA2
	ldr r1, =gUnknown_086252A8
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	adds r0, r4, 0
	bl sub_81D1574
	ldr r1, =gUnknown_08625374
	lsls r0, 2
	adds r0, r1
	ldr r3, [r0]
	adds r0, r4, 0
	adds r1, r5, 0
	adds r2, r6, 0
	bl _call_via_r3
_081D1AA2:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1A78

	thumb_func_start sub_81D1AB0
sub_81D1AB0: @ 81D1AB0
	ldr r3, [r0, 0x4]
	str r3, [r1]
	ldr r0, [r0, 0x8]
	str r0, [r2]
	bx lr
	thumb_func_end sub_81D1AB0

	thumb_func_start sub_81D1ABC
sub_81D1ABC: @ 81D1ABC
	push {r4,r5,lr}
	adds r5, r1, 0
	adds r4, r0, 0
	ldr r0, [r4, 0xC]
	cmp r0, 0
	bne _081D1AD0
	ldrh r0, [r4, 0x4]
	bl sub_81D1B0C
	b _081D1AD2
_081D1AD0:
	str r0, [r2]
_081D1AD2:
	ldr r0, [r4, 0x8]
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D1ABC

	thumb_func_start sub_81D1ADC
sub_81D1ADC: @ 81D1ADC
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldrh r0, [r4, 0x4]
	bl sub_81D1B0C
	ldr r0, [r4, 0x8]
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D1ADC

	thumb_func_start sub_81D1AF4
sub_81D1AF4: @ 81D1AF4
	ldr r3, [r0, 0x4]
	str r3, [r1]
	ldr r0, [r0, 0x8]
	str r0, [r2]
	bx lr
	thumb_func_end sub_81D1AF4

	thumb_func_start sub_81D1B00
sub_81D1B00: @ 81D1B00
	ldr r3, [r0, 0x4]
	str r3, [r1]
	ldr r0, [r0, 0x8]
	str r0, [r2]
	bx lr
	thumb_func_end sub_81D1B00

	thumb_func_start sub_81D1B0C
sub_81D1B0C: @ 81D1B0C
	push {r4,r5,lr}
	adds r4, r1, 0
	adds r5, r2, 0
	bl sub_81D15BC
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTrainers
	adds r1, r0
	ldrb r2, [r1, 0x1]
	movs r0, 0xD
	muls r0, r2
	ldr r2, =gTrainerClassNames
	adds r0, r2
	str r0, [r4]
	adds r1, 0x4
	str r1, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1B0C

	thumb_func_start sub_81D1B40
sub_81D1B40: @ 81D1B40
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r6, r0, 0
	movs r5, 0
	ldr r2, =gUnknown_08625388
	movs r0, 0x8
	adds r0, r2
	mov r9, r0
_081D1B54:
	lsls r0, r5, 1
	adds r0, r5
	lsls r0, 3
	adds r0, r2
	ldrh r0, [r0]
	cmp r0, r6
	bne _081D1BBC
	adds r4, r5, 0x1
	lsls r1, 2
	mov r8, r1
	cmp r4, 0x3
	bhi _081D1BA8
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 3
	adds r0, r2
	ldrh r0, [r0]
	cmp r0, r6
	bne _081D1BA8
	ldr r7, =gUnknown_08625388
_081D1B7C:
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 3
	adds r1, r7, 0x4
	adds r0, r1
	ldrh r0, [r0]
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081D1BA8
	adds r5, r4, 0
	adds r4, r5, 0x1
	cmp r4, 0x3
	bhi _081D1BA8
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 3
	adds r0, r7
	ldrh r0, [r0]
	cmp r0, r6
	beq _081D1B7C
_081D1BA8:
	lsls r0, r5, 1
	adds r0, r5
	lsls r0, 3
	add r0, r8
	add r0, r9
	ldr r0, [r0]
	b _081D1BC4
	.pool
_081D1BBC:
	adds r5, 0x1
	cmp r5, 0x3
	bls _081D1B54
	movs r0, 0
_081D1BC4:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D1B40

	thumb_func_start sub_81D1BD0
sub_81D1BD0: @ 81D1BD0
	push {lr}
	adds r3, r0, 0
	movs r2, 0
	ldr r1, =gUnknown_08625388
_081D1BD8:
	ldrh r0, [r1]
	cmp r0, r3
	bne _081D1BE8
	ldrh r0, [r1, 0x2]
	b _081D1BF4
	.pool
_081D1BE8:
	adds r1, 0x18
	adds r2, 0x1
	cmp r2, 0x3
	bls _081D1BD8
	movs r0, 0x1
	negs r0, r0
_081D1BF4:
	pop {r1}
	bx r1
	thumb_func_end sub_81D1BD0

	thumb_func_start sub_81D1BF8
sub_81D1BF8: @ 81D1BF8
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r4, 0
_081D1BFE:
	adds r0, r4, 0
	bl sub_81D1854
	cmp r0, 0x4E
	beq _081D1C10
	cmp r0, r5
	bne _081D1C10
	movs r0, 0x1
	b _081D1C18
_081D1C10:
	adds r4, 0x1
	cmp r4, 0x14
	ble _081D1BFE
	movs r0, 0
_081D1C18:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D1BF8

	thumb_func_start sub_81D1C20
sub_81D1C20: @ 81D1C20
	push {lr}
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	bl sub_81D15CC
	cmp r0, 0
	blt _081D1C3C
	movs r1, 0xAE
	lsls r1, 1
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bl FlagSet
_081D1C3C:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1C20

	thumb_func_start sub_81D1C44
sub_81D1C44: @ 81D1C44
	push {r4,lr}
	lsls r0, 24
	ldr r4, =gUnknown_0203CF4C
	lsrs r0, 21
	adds r0, 0x8
	bl Alloc
	str r0, [r4]
	cmp r0, 0
	bne _081D1C60
	movs r0, 0
	b _081D1C7A
	.pool
_081D1C60:
	movs r2, 0
	ldr r4, =gUnknown_0203CF48
	movs r3, 0xFF
_081D1C66:
	adds r0, r2, r4
	ldrb r1, [r0]
	orrs r1, r3
	strb r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x2
	bls _081D1C66
	movs r0, 0x1
_081D1C7A:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D1C44

	thumb_func_start sub_81D1C84
sub_81D1C84: @ 81D1C84
	push {r4-r6,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r6, =gUnknown_0203CF48
	adds r5, r4, r6
	ldrb r0, [r5]
	cmp r0, 0xFF
	bne _081D1CEC
	cmp r4, 0x2
	bne _081D1CD4
	ldr r0, =gUnknown_086253E8
	ldr r1, [r0, 0x14]
	ldr r0, [r0, 0x10]
	str r0, [sp]
	str r1, [sp, 0x4]
	ldr r0, =gUnknown_085DFF04
	movs r1, 0x4
	bl GetMaxWidthInMenuTable
	lsls r0, 24
	ldr r2, =0x00ffffff
	ldr r1, [sp]
	ands r1, r2
	orrs r1, r0
	str r1, [sp]
	mov r0, sp
	bl AddWindow
	strb r0, [r6, 0x2]
	b _081D1CE0
	.pool
_081D1CD4:
	lsls r0, r4, 3
	ldr r1, =gUnknown_086253E8
	adds r0, r1
	bl AddWindow
	strb r0, [r5]
_081D1CE0:
	ldr r0, =gUnknown_0203CF48
	adds r0, r4, r0
	ldrb r0, [r0]
	movs r1, 0
	bl SetStandardWindowBorderStyle
_081D1CEC:
	ldr r0, =gUnknown_0203CF48
	adds r0, r4, r0
	ldrb r0, [r0]
	add sp, 0x8
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D1C84

	thumb_func_start sub_81D1D04
sub_81D1D04: @ 81D1D04
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CF48
	adds r4, r0
	ldrb r0, [r4]
	movs r1, 0
	bl sub_8198070
	ldrb r0, [r4]
	bl ClearWindowTilemap
	ldrb r0, [r4]
	bl RemoveWindow
	movs r0, 0xFF
	strb r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1D04

	thumb_func_start sub_81D1D34
sub_81D1D34: @ 81D1D34
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203CF48
	adds r0, r1
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_81D1D34

	thumb_func_start sub_81D1D44
sub_81D1D44: @ 81D1D44
	push {r4,r5,lr}
	sub sp, 0x34
	adds r3, r1, 0
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r2, 24
	lsrs r5, r2, 24
	movs r0, 0x2
	negs r0, r0
	cmp r3, r0
	beq _081D1DAC
	ldr r0, =gSaveBlock1Ptr
	lsls r1, r3, 3
	adds r1, r3
	lsls r1, 2
	ldr r0, [r0]
	adds r1, r0
	ldr r0, =0x00002cca
	adds r1, r0
	add r0, sp, 0x14
	bl StringCopy
	add r0, sp, 0x14
	bl sub_81DB52C
	add r0, sp, 0x14
	bl StringLength
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x5
	bhi _081D1D8C
	add r0, sp, 0x14
	movs r1, 0x1
	bl ConvertInternationalString
_081D1D8C:
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	ldr r0, =gUnknown_08625400
	str r0, [sp, 0x8]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0xC]
	add r0, sp, 0x14
	str r0, [sp, 0x10]
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0x8
	adds r3, r5, 0
	bl AddTextPrinterParametrized2
_081D1DAC:
	add sp, 0x34
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1D44

	thumb_func_start sub_81D1DC0
sub_81D1DC0: @ 81D1DC0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r5, r0, 0
	movs r3, 0
	ldr r7, =gUnknown_0203CF4C
	ldr r0, =gText_Cancel2
	mov r12, r0
	ldr r4, =gUnknown_03006310
	ldr r1, =gUnknown_0203CF48
	mov r8, r1
	ldr r2, =sub_81D1E7C
	mov r9, r2
	ldr r0, =sub_81D1D44
	mov r10, r0
	ldrb r1, [r5, 0x5]
	cmp r3, r1
	bcs _081D1E02
	adds r6, r7, 0
	ldr r2, =gUnknown_08625403
_081D1DEC:
	ldr r1, [r6]
	lsls r0, r3, 3
	adds r0, r1
	str r2, [r0]
	str r3, [r0, 0x4]
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	ldrb r0, [r5, 0x5]
	cmp r3, r0
	bcc _081D1DEC
_081D1E02:
	ldr r2, [r7]
	lsls r0, r3, 3
	adds r0, r2
	mov r1, r12
	str r1, [r0]
	movs r1, 0x2
	negs r1, r1
	str r1, [r0, 0x4]
	str r2, [r4]
	ldrb r0, [r5, 0x5]
	adds r0, 0x1
	movs r1, 0
	strh r0, [r4, 0xC]
	mov r2, r8
	ldrb r0, [r2, 0x1]
	strb r0, [r4, 0x10]
	strb r1, [r4, 0x11]
	movs r0, 0x8
	strb r0, [r4, 0x12]
	strb r1, [r4, 0x13]
	strh r0, [r4, 0xE]
	movs r0, 0x29
	strb r0, [r4, 0x14]
	movs r0, 0x31
	strb r0, [r4, 0x15]
	mov r0, r9
	str r0, [r4, 0x4]
	mov r1, r10
	str r1, [r4, 0x8]
	movs r0, 0x1
	strb r0, [r4, 0x17]
	movs r0, 0
	strb r0, [r4, 0x16]
	ldrh r1, [r5, 0x2]
	ldrh r2, [r5]
	adds r0, r4, 0
	bl ListMenuInit
	lsls r0, 24
	lsrs r0, 24
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D1DC0

	thumb_func_start sub_81D1E7C
sub_81D1E7C: @ 81D1E7C
	push {lr}
	lsls r1, 24
	lsrs r1, 24
	cmp r1, 0x1
	beq _081D1E8C
	movs r0, 0x5
	bl PlaySE
_081D1E8C:
	pop {r0}
	bx r0
	thumb_func_end sub_81D1E7C

	thumb_func_start sub_81D1E90
sub_81D1E90: @ 81D1E90
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	ldrb r0, [r4, 0x5]
	ldrb r1, [r4, 0x4]
	subs r0, r1
	adds r0, 0x1
	str r0, [sp]
	movs r0, 0x6E
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	adds r0, r4, 0x2
	str r0, [sp, 0xC]
	movs r0, 0x2
	movs r1, 0xC8
	movs r2, 0xC
	movs r3, 0x94
	bl AddScrollIndicatorArrowPairParametrized
	strb r0, [r4, 0x9]
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81D1E90

	thumb_func_start sub_81D1EC0
sub_81D1EC0: @ 81D1EC0
	push {lr}
	ldr r0, =gUnknown_0203CF4C
	ldr r0, [r0]
	bl Free
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1EC0

	thumb_func_start sub_81D1ED4
sub_81D1ED4: @ 81D1ED4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r3, r0, 0
	movs r6, 0
	movs r7, 0
_081D1EE6:
	movs r2, 0
	lsls r5, r6, 2
	adds r0, r6, 0x1
	mov r10, r0
	adds r4, r5, 0
_081D1EF0:
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	adds r0, r4, r0
	adds r0, r3, r0
	adds r1, r0, 0
	adds r1, 0x64
	strh r7, [r1]
	adds r0, 0x66
	strh r7, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x9
	bls _081D1EF0
	movs r2, 0
	mov r9, r2
	str r5, [sp]
	movs r1, 0x9B
	mov r8, r1
	movs r4, 0x5B
	mov r12, r4
_081D1F1C:
	lsls r0, r2, 2
	adds r0, r2
	adds r1, r6, r0
	adds r1, r3, r1
	mov r4, r9
	strb r4, [r1]
	lsls r0, 2
	ldr r1, [sp]
	adds r0, r1, r0
	adds r0, r3, r0
	mov r4, r8
	strh r4, [r0, 0x14]
	mov r1, r12
	strh r1, [r0, 0x16]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _081D1F1C
	adds r1, r3, r5
	movs r2, 0x96
	lsls r2, 1
	adds r0, r1, r2
	strh r7, [r0]
	movs r4, 0x97
	lsls r4, 1
	adds r0, r1, r4
	strh r7, [r0]
	mov r1, r10
	lsls r0, r1, 24
	lsrs r6, r0, 24
	cmp r6, 0x4
	bls _081D1EE6
	movs r2, 0xD5
	lsls r2, 2
	adds r0, r3, r2
	movs r1, 0
	strb r1, [r0]
	ldr r4, =0x00000352
	adds r0, r3, r4
	strh r1, [r0]
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D1ED4

	thumb_func_start sub_81D1F84
sub_81D1F84: @ 81D1F84
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r8, r0
	str r1, [sp]
	mov r9, r2
	movs r7, 0
_081D1F98:
	lsls r4, r7, 2
	ldr r1, [sp]
	adds r0, r4, r1
	ldrh r1, [r0]
	lsls r5, r1, 8
	mov r2, r9
	adds r0, r4, r2
	ldrh r0, [r0]
	subs r0, r1
	lsls r0, 8
	movs r1, 0xA
	bl __divsi3
	adds r6, r0, 0
	movs r3, 0
	adds r7, 0x1
	mov r10, r7
	mov r12, r4
_081D1FBC:
	lsls r0, r3, 2
	adds r0, r3
	lsls r0, 2
	add r0, r12
	add r0, r8
	asrs r2, r5, 8
	asrs r1, r5, 7
	movs r7, 0x1
	ands r1, r7
	adds r2, r1
	adds r0, 0x64
	strh r2, [r0]
	adds r5, r6
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x8
	bls _081D1FBC
	lsls r0, r3, 2
	adds r0, r3
	lsls r0, 2
	adds r0, r4, r0
	add r0, r8
	mov r1, r9
	adds r2, r4, r1
	ldrh r1, [r2]
	adds r0, 0x64
	strh r1, [r0]
	ldr r7, [sp]
	adds r0, r4, r7
	ldrh r1, [r0, 0x2]
	lsls r5, r1, 8
	ldrh r0, [r2, 0x2]
	subs r0, r1
	lsls r0, 8
	movs r1, 0xA
	bl __divsi3
	adds r6, r0, 0
	movs r3, 0
	str r4, [sp, 0x4]
	movs r0, 0x1
	mov r12, r0
_081D2012:
	lsls r0, r3, 2
	adds r0, r3
	lsls r0, 2
	ldr r1, [sp, 0x4]
	adds r0, r1, r0
	add r0, r8
	asrs r2, r5, 8
	asrs r1, r5, 7
	mov r7, r12
	ands r1, r7
	adds r2, r1
	adds r0, 0x66
	strh r2, [r0]
	adds r5, r6
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x8
	bls _081D2012
	lsls r0, r3, 2
	adds r0, r3
	lsls r0, 2
	adds r0, r4, r0
	add r0, r8
	mov r2, r9
	adds r1, r4, r2
	ldrh r1, [r1, 0x2]
	adds r0, 0x66
	strh r1, [r0]
	mov r7, r10
	lsls r0, r7, 16
	lsrs r7, r0, 16
	cmp r7, 0x4
	bls _081D1F98
	ldr r1, =0x00000352
	add r1, r8
	movs r0, 0
	strh r0, [r1]
	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_81D1F84

	thumb_func_start sub_81D2074
sub_81D2074: @ 81D2074
	push {r4,lr}
	adds r1, r0, 0
	ldr r0, =0x00000352
	adds r4, r1, r0
	ldrh r0, [r4]
	cmp r0, 0x9
	bls _081D208C
	movs r0, 0
	b _081D20A6
	.pool
_081D208C:
	adds r0, r1, 0
	bl sub_81D2230
	ldrh r1, [r4]
	adds r1, 0x1
	strh r1, [r4]
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0xA
	eors r1, r0
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
_081D20A6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D2074

	thumb_func_start sub_81D20AC
sub_81D20AC: @ 81D20AC
	ldr r1, =0x00000355
	adds r0, r1
	movs r1, 0
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_81D20AC

	thumb_func_start sub_81D20BC
sub_81D20BC: @ 81D20BC
	push {r4,r5,lr}
	sub sp, 0xC
	ldr r1, =0x00000355
	adds r4, r0, r1
	ldrb r0, [r4]
	cmp r0, 0
	beq _081D20D4
	cmp r0, 0x1
	beq _081D20E2
	b _081D20FA
	.pool
_081D20D4:
	bl dp12_8087EA4
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	movs r0, 0x1
	b _081D20FC
_081D20E2:
	mov r0, sp
	ldr r1, =gUnknown_08625404
	ldm r1!, {r2,r3,r5}
	stm r0!, {r2,r3,r5}
	ldr r0, [sp]
	ldr r1, [sp, 0x4]
	ldr r2, [sp, 0x8]
	bl sub_80BA038
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
_081D20FA:
	movs r0, 0
_081D20FC:
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D20BC

	thumb_func_start sub_81D2108
sub_81D2108: @ 81D2108
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	adds r6, r0, 0
	movs r1, 0xD5
	lsls r1, 2
	adds r0, r6, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _081D21BE
	adds r0, r6, 0
	bl sub_81D24A4
	adds r0, r6, 0
	bl sub_81D2634
	movs r7, 0
	ldr r5, =gUnknown_02038C28
	mov r12, r5
	movs r0, 0xF0
	lsls r0, 3
	add r0, r12
	mov r9, r0
	movs r1, 0xA0
	lsls r1, 1
	adds r1, r6, r1
	str r1, [sp]
	ldr r5, =0x0000ffff
	mov r8, r5
	movs r0, 0xA1
	lsls r0, 1
	adds r0, r6, r0
	str r0, [sp, 0x4]
	movs r1, 0x92
	lsls r1, 2
	adds r1, r6, r1
	str r1, [sp, 0x8]
	ldr r5, =0x0000024a
	adds r5, r6
	mov r10, r5
_081D215E:
	adds r2, r7, 0
	adds r2, 0x37
	lsls r3, r2, 2
	mov r0, r9
	adds r0, r3, r0
	str r0, [sp, 0xC]
	add r3, r12
	lsls r4, r7, 2
	ldr r1, [sp]
	adds r0, r1, r4
	ldrh r0, [r0]
	lsls r0, 8
	ldr r5, [sp, 0x4]
	adds r1, r5, r4
	ldrh r1, [r1]
	orrs r0, r1
	strh r0, [r3]
	mov r1, r8
	ands r0, r1
	ldr r5, [sp, 0xC]
	strh r0, [r5]
	lsls r2, 1
	adds r2, 0x1
	lsls r2, 1
	mov r0, r9
	adds r3, r2, r0
	add r2, r12
	ldr r1, [sp, 0x8]
	adds r0, r1, r4
	ldrh r0, [r0]
	lsls r0, 8
	add r4, r10
	ldrh r1, [r4]
	orrs r0, r1
	strh r0, [r2]
	mov r5, r8
	ands r0, r5
	strh r0, [r3]
	adds r0, r7, 0x1
	lsls r0, 16
	lsrs r7, r0, 16
	cmp r7, 0x41
	bls _081D215E
	movs r0, 0xD5
	lsls r0, 2
	adds r1, r6, r0
	movs r0, 0
	strb r0, [r1]
_081D21BE:
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D2108

	thumb_func_start sub_81D21DC
sub_81D21DC: @ 81D21DC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x3
	bls _081D21E8
	movs r1, 0
_081D21E8:
	movs r0, 0x1
	lsls r0, r1
	movs r5, 0x1F
	bics r5, r0
	movs r0, 0x40
	movs r1, 0xF0
	bl SetGpuReg
	movs r0, 0x42
	movs r1, 0x9B
	bl SetGpuReg
	ldr r4, =0x00003879
	movs r0, 0x44
	adds r1, r4, 0
	bl SetGpuReg
	movs r0, 0x46
	adds r1, r4, 0
	bl SetGpuReg
	ldr r1, =0x00003f3f
	movs r0, 0x48
	bl SetGpuReg
	movs r0, 0x4A
	adds r1, r5, 0
	bl SetGpuReg
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D21DC

	thumb_func_start sub_81D2230
sub_81D2230: @ 81D2230
	push {r4-r7,lr}
	mov r12, r0
	movs r4, 0
	movs r7, 0x96
	lsls r7, 1
	add r7, r12
	ldr r6, =0x00000352
	add r6, r12
	mov r5, r12
	adds r5, 0x64
_081D2244:
	lsls r2, r4, 2
	adds r3, r7, r2
	ldrh r1, [r6]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r2, r0
	adds r2, r5, r2
	ldr r0, [r2]
	str r0, [r3]
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x4
	bls _081D2244
	movs r1, 0xD5
	lsls r1, 2
	add r1, r12
	movs r0, 0x1
	strb r0, [r1]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D2230

	thumb_func_start sub_81D2278
sub_81D2278: @ 81D2278
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	str r0, [sp]
	adds r6, r1, 0
	adds r5, r2, 0
	str r3, [sp, 0x4]
	ldr r0, [sp, 0x38]
	ldr r7, [sp, 0x3C]
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r0, 0
	str r0, [sp, 0xC]
	ldrh r0, [r5, 0x2]
	ldrh r1, [r3, 0x2]
	cmp r0, r1
	bcs _081D22B2
	adds r2, r0, 0
	mov r10, r2
	ldrh r0, [r3, 0x2]
	ldrh r1, [r5]
	lsls r4, r1, 10
	ldrh r3, [r3]
	str r3, [sp, 0x8]
	b _081D22C6
_081D22B2:
	ldrh r0, [r5, 0x2]
	ldr r1, [sp, 0x4]
	ldrh r1, [r1, 0x2]
	mov r10, r1
	ldr r2, [sp, 0x4]
	ldrh r1, [r2]
	lsls r4, r1, 10
	ldrh r3, [r5]
	str r3, [sp, 0x8]
	mov r2, r10
_081D22C6:
	subs r0, r2
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	cmp r0, 0
	beq _081D22DE
	subs r0, r3, r1
	lsls r0, 10
	mov r1, r8
	bl __divsi3
	str r0, [sp, 0xC]
_081D22DE:
	mov r0, r8
	adds r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	cmp r7, 0
	bne _081D2328
	mov r0, r10
	subs r0, 0x38
	lsls r0, 2
	adds r6, r0
	movs r5, 0
	mov r3, r9
	lsls r3, 1
	mov r12, r3
	ldr r0, [sp, 0x8]
	add r0, r9
	str r0, [sp, 0x10]
	cmp r7, r8
	bcs _081D23B6
	movs r7, 0x1
_081D2308:
	adds r2, r3, r6
	asrs r1, r4, 10
	asrs r0, r4, 9
	ands r0, r7
	adds r1, r0
	add r1, r9
	strh r1, [r2]
	ldr r1, [sp, 0xC]
	adds r4, r1
	adds r6, 0x4
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r8
	bcc _081D2308
	b _081D23B6
_081D2328:
	ldr r2, [sp, 0xC]
	cmp r2, 0
	ble _081D23C0
	mov r0, r10
	subs r0, 0x38
	lsls r0, 2
	adds r7, r0
	movs r5, 0
	mov r3, r9
	lsls r3, 1
	mov r12, r3
	ldr r0, [sp, 0x8]
	add r0, r9
	str r0, [sp, 0x10]
	cmp r5, r8
	bcs _081D237A
	ldr r0, =0x00026bff
	cmp r4, r0
	bgt _081D237A
	mov r1, r12
	str r1, [sp, 0x14]
_081D2352:
	ldr r3, [sp, 0x14]
	adds r2, r3, r7
	asrs r1, r4, 10
	asrs r0, r4, 9
	movs r3, 0x1
	ands r0, r3
	adds r1, r0
	add r1, r9
	strh r1, [r2]
	ldr r0, [sp, 0xC]
	adds r4, r0
	adds r7, 0x4
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r8
	bcs _081D237A
	ldr r1, =0x00026bff
	cmp r4, r1
	ble _081D2352
_081D237A:
	mov r2, r10
	adds r1, r2, r5
	ldr r3, [sp]
	movs r2, 0xD4
	lsls r2, 2
	adds r0, r3, r2
	strh r1, [r0]
	ldrh r0, [r0]
	subs r0, 0x38
	lsls r0, 2
	adds r6, r0
	cmp r5, r8
	bcs _081D23B6
	mov r3, r12
	movs r7, 0x1
_081D2398:
	adds r2, r3, r6
	asrs r1, r4, 10
	asrs r0, r4, 9
	ands r0, r7
	adds r1, r0
	add r1, r9
	strh r1, [r2]
	ldr r0, [sp, 0xC]
	adds r4, r0
	adds r6, 0x4
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r8
	bcc _081D2398
_081D23B6:
	subs r0, r6, 0x4
	b _081D248C
	.pool
_081D23C0:
	ldr r1, [sp, 0xC]
	cmp r1, 0
	bge _081D2464
	mov r0, r10
	subs r0, 0x38
	lsls r0, 2
	adds r6, r0
	movs r5, 0
	mov r2, r9
	lsls r2, 1
	mov r12, r2
	ldr r3, [sp, 0x8]
	add r3, r9
	str r3, [sp, 0x10]
	cmp r5, r8
	bcs _081D241E
	adds r3, r2, r6
	asrs r1, r4, 10
	asrs r0, r4, 9
	movs r2, 0x1
	ands r0, r2
	adds r1, r0
	add r1, r9
	strh r1, [r3]
	b _081D2414
_081D23F2:
	ldr r0, [sp, 0xC]
	adds r4, r0
	adds r6, 0x4
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r8
	bcs _081D241E
	mov r1, r12
	adds r3, r1, r6
	asrs r2, r4, 10
	asrs r0, r4, 9
	movs r1, 0x1
	ands r0, r1
	adds r2, r0
	add r2, r9
	strh r2, [r3]
_081D2414:
	ldr r0, =0x00026bff
	cmp r4, r0
	bgt _081D23F2
	movs r0, 0x9B
	strh r0, [r3]
_081D241E:
	mov r2, r10
	adds r1, r2, r5
	ldr r3, [sp]
	movs r2, 0xD4
	lsls r2, 2
	adds r0, r3, r2
	strh r1, [r0]
	ldrh r0, [r0]
	subs r0, 0x38
	lsls r0, 2
	adds r7, r0
	cmp r5, r8
	bcs _081D245A
	mov r3, r12
	movs r6, 0x1
_081D243C:
	adds r2, r3, r7
	asrs r1, r4, 10
	asrs r0, r4, 9
	ands r0, r6
	adds r1, r0
	add r1, r9
	strh r1, [r2]
	ldr r0, [sp, 0xC]
	adds r4, r0
	adds r7, 0x4
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r8
	bcc _081D243C
_081D245A:
	subs r0, r7, 0x4
	b _081D248C
	.pool
_081D2464:
	ldr r1, [sp]
	movs r2, 0xD4
	lsls r2, 2
	adds r0, r1, r2
	mov r3, r10
	strh r3, [r0]
	mov r0, r10
	subs r0, 0x38
	lsls r0, 2
	adds r6, r0
	adds r7, r0
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r6, 0x2]
	ldr r1, [sp, 0x4]
	ldrh r0, [r1]
	strh r0, [r7]
	movs r0, 0x9B
	strh r0, [r7, 0x2]
	b _081D2494
_081D248C:
	add r0, r12
	mov r2, sp
	ldrh r2, [r2, 0x10]
	strh r2, [r0]
_081D2494:
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D2278

	thumb_func_start sub_81D24A4
sub_81D24A4: @ 81D24A4
	push {r4-r7,lr}
	sub sp, 0x8
	adds r4, r0, 0
	movs r0, 0x97
	lsls r0, 1
	adds r2, r4, r0
	movs r3, 0x99
	lsls r3, 1
	adds r1, r4, r3
	ldrh r0, [r2]
	ldrh r3, [r1]
	cmp r0, r3
	bcs _081D24E0
	adds r7, r0, 0
	movs r0, 0xA0
	lsls r0, 1
	adds r1, r4, r0
	movs r3, 0x96
	lsls r3, 1
	adds r2, r4, r3
	subs r0, 0x10
	adds r3, r4, r0
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	adds r0, r4, 0
	bl sub_81D2278
	b _081D2500
_081D24E0:
	ldrh r7, [r1]
	movs r2, 0xA0
	lsls r2, 1
	adds r1, r4, r2
	movs r3, 0x98
	lsls r3, 1
	adds r2, r4, r3
	movs r0, 0x96
	lsls r0, 1
	adds r3, r4, r0
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r4, 0
	bl sub_81D2278
_081D2500:
	movs r1, 0xA0
	lsls r1, 1
	adds r5, r4, r1
	movs r3, 0x98
	lsls r3, 1
	adds r2, r4, r3
	movs r0, 0x9A
	lsls r0, 1
	adds r6, r4, r0
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	adds r0, r4, 0
	adds r1, r5, 0
	adds r3, r6, 0
	bl sub_81D2278
	movs r2, 0
	movs r1, 0x9B
	lsls r1, 1
	adds r0, r4, r1
	movs r3, 0x9D
	lsls r3, 1
	adds r1, r4, r3
	ldrh r0, [r0]
	ldrh r1, [r1]
	cmp r0, r1
	bhi _081D253C
	movs r2, 0x1
_081D253C:
	movs r0, 0x9C
	lsls r0, 1
	adds r3, r4, r0
	str r2, [sp]
	movs r1, 0x92
	lsls r1, 2
	adds r0, r4, r1
	str r0, [sp, 0x4]
	adds r0, r4, 0
	adds r1, r5, 0
	adds r2, r6, 0
	bl sub_81D2278
	movs r2, 0x38
	cmp r2, r7
	bcs _081D257E
	adds r6, r5, 0
	movs r3, 0
	movs r0, 0xA1
	lsls r0, 1
	adds r5, r4, r0
_081D2566:
	adds r0, r2, 0
	subs r0, 0x38
	lsls r0, 2
	adds r1, r6, r0
	strh r3, [r1]
	adds r0, r5, r0
	strh r3, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, r7
	bcc _081D2566
_081D257E:
	movs r1, 0x97
	lsls r1, 1
	adds r0, r4, r1
	ldrh r2, [r0]
	movs r3, 0xD4
	lsls r3, 2
	adds r0, r4, r3
	ldrh r1, [r0]
	cmp r2, r1
	bhi _081D25B2
	movs r1, 0xA0
	lsls r1, 1
	adds r3, r4, r1
	movs r5, 0x9B
	adds r1, r0, 0
_081D259C:
	adds r0, r2, 0
	subs r0, 0x38
	lsls r0, 2
	adds r0, r3, r0
	strh r5, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	ldrh r0, [r1]
	cmp r2, r0
	bls _081D259C
_081D25B2:
	movs r2, 0x9B
	lsls r2, 1
	adds r1, r4, r2
	movs r3, 0xD4
	lsls r3, 2
	adds r0, r4, r3
	ldrh r0, [r0]
	ldrh r1, [r1]
	cmp r0, r1
	bcs _081D25C8
	adds r0, r1, 0
_081D25C8:
	adds r0, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x79
	bhi _081D25F8
	movs r0, 0xA0
	lsls r0, 1
	adds r6, r4, r0
	movs r3, 0
	movs r1, 0xA1
	lsls r1, 1
	adds r5, r4, r1
_081D25E0:
	adds r0, r2, 0
	subs r0, 0x38
	lsls r0, 2
	adds r1, r6, r0
	strh r3, [r1]
	adds r0, r5, r0
	strh r3, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x79
	bls _081D25E0
_081D25F8:
	movs r2, 0x38
	movs r3, 0xA0
	lsls r3, 1
	adds r5, r4, r3
	movs r0, 0xA1
	lsls r0, 1
	adds r4, r0
	movs r6, 0x9B
_081D2608:
	adds r0, r2, 0
	subs r0, 0x38
	lsls r1, r0, 2
	adds r3, r5, r1
	ldrh r0, [r3]
	cmp r0, 0
	bne _081D2620
	adds r0, r4, r1
	ldrh r0, [r0]
	cmp r0, 0
	beq _081D2620
	strh r6, [r3]
_081D2620:
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x79
	bls _081D2608
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D24A4

	thumb_func_start sub_81D2634
sub_81D2634: @ 81D2634
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	movs r0, 0x97
	lsls r0, 1
	adds r2, r4, r0
	movs r3, 0x9F
	lsls r3, 1
	adds r1, r4, r3
	ldrh r0, [r2]
	ldrh r5, [r1]
	cmp r0, r5
	bcs _081D266E
	adds r6, r0, 0
	movs r0, 0x92
	lsls r0, 2
	adds r1, r4, r0
	subs r3, 0x12
	adds r2, r4, r3
	movs r5, 0x9E
	lsls r5, 1
	adds r3, r4, r5
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r4, 0
	bl sub_81D2278
	b _081D2690
_081D266E:
	ldrh r6, [r1]
	movs r0, 0x92
	lsls r0, 2
	adds r1, r4, r0
	movs r3, 0x9E
	lsls r3, 1
	adds r2, r4, r3
	movs r5, 0x96
	lsls r5, 1
	adds r3, r4, r5
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	adds r0, r4, 0
	bl sub_81D2278
_081D2690:
	movs r0, 0x92
	lsls r0, 2
	adds r5, r4, r0
	movs r1, 0x9E
	lsls r1, 1
	adds r2, r4, r1
	movs r0, 0x9C
	lsls r0, 1
	adds r3, r4, r0
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_81D2278
	cmp r6, 0x38
	ble _081D26C8
	movs r0, 0
	adds r1, r5, 0
	adds r2, r6, 0
	subs r2, 0x38
_081D26BC:
	strh r0, [r1]
	strh r0, [r1, 0x2]
	adds r1, 0x4
	subs r2, 0x1
	cmp r2, 0
	bne _081D26BC
_081D26C8:
	movs r1, 0x97
	lsls r1, 1
	adds r0, r4, r1
	ldrh r2, [r0]
	movs r3, 0xD4
	lsls r3, 2
	adds r0, r4, r3
	ldrh r5, [r0]
	cmp r2, r5
	bgt _081D26F6
	movs r3, 0x9B
	adds r1, r0, 0
	lsls r0, r2, 2
	movs r5, 0xB5
	lsls r5, 1
	adds r0, r5
	adds r0, r4
_081D26EA:
	strh r3, [r0]
	adds r0, 0x4
	adds r2, 0x1
	ldrh r5, [r1]
	cmp r2, r5
	ble _081D26EA
_081D26F6:
	movs r1, 0x9D
	lsls r1, 1
	adds r0, r4, r1
	ldrh r0, [r0]
	adds r1, r0, 0x1
	movs r2, 0xD4
	lsls r2, 2
	adds r0, r4, r2
	ldrh r0, [r0]
	cmp r0, r1
	bge _081D270E
	adds r0, r1, 0
_081D270E:
	adds r2, r0, 0
	cmp r2, 0x79
	bgt _081D272C
	movs r1, 0
	lsls r0, r2, 2
	movs r3, 0xB4
	lsls r3, 1
	adds r0, r3
	adds r0, r4
_081D2720:
	strh r1, [r0]
	strh r1, [r0, 0x2]
	adds r0, 0x4
	adds r2, 0x1
	cmp r2, 0x79
	ble _081D2720
_081D272C:
	movs r3, 0
	movs r5, 0x92
	lsls r5, 2
	adds r1, r4, r5
	movs r2, 0x41
_081D2736:
	ldrh r0, [r1]
	ldrh r4, [r1, 0x2]
	cmp r0, r4
	bcc _081D2742
	strh r3, [r1, 0x2]
	strh r3, [r1]
_081D2742:
	adds r1, 0x4
	subs r2, 0x1
	cmp r2, 0
	bge _081D2736
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81D2634

	thumb_func_start sub_81D2754
sub_81D2754: @ 81D2754
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r6, r0, 0
	mov r8, r1
	ldr r1, =gUnknown_08625410
	ldrb r0, [r6]
	adds r0, r1
	ldrb r2, [r0]
	adds r6, 0x1
	movs r0, 0x9B
	mov r3, r8
	strh r0, [r3]
	movs r0, 0x5B
	subs r0, r2
	strh r0, [r3, 0x2]
	movs r7, 0x40
	movs r0, 0
	mov r12, r0
	movs r2, 0x1
	mov r9, r2
	ldr r3, =gSineTable
	mov r10, r3
_081D2786:
	adds r0, r7, 0
	adds r0, 0x33
	lsls r0, 24
	lsrs r7, r0, 24
	mov r1, r12
	lsls r0, r1, 24
	movs r2, 0xFF
	lsls r2, 24
	adds r0, r2
	lsrs r3, r0, 24
	mov r12, r3
	cmp r0, 0
	bge _081D27A4
	movs r0, 0x4
	mov r12, r0
_081D27A4:
	mov r1, r12
	lsls r0, r1, 24
	asrs r4, r0, 24
	cmp r4, 0x2
	bne _081D27B4
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
_081D27B4:
	ldrb r0, [r6]
	ldr r2, =gUnknown_08625410
	adds r0, r2
	ldrb r2, [r0]
	adds r6, 0x1
	lsls r0, r4, 2
	mov r1, r8
	adds r3, r0, r1
	adds r0, r7, 0
	adds r0, 0x40
	lsls r0, 1
	add r0, r10
	movs r1, 0
	ldrsh r0, [r0, r1]
	muls r0, r2
	asrs r5, r0, 8
	adds r0, r5, 0
	adds r0, 0x9B
	strh r0, [r3]
	lsls r0, r7, 1
	add r0, r10
	movs r1, 0
	ldrsh r0, [r0, r1]
	adds r1, r2, 0
	muls r1, r0
	asrs r1, 8
	movs r0, 0x5B
	subs r0, r1
	strh r0, [r3, 0x2]
	cmp r4, 0x2
	bgt _081D2800
	cmp r2, 0x20
	bne _081D27FA
	cmp r4, 0x2
	beq _081D2800
_081D27FA:
	adds r0, r5, 0
	adds r0, 0x9C
	strh r0, [r3]
_081D2800:
	mov r0, r9
	adds r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	mov r9, r0
	cmp r0, 0x4
	bls _081D2786
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D2754

	thumb_func_start sub_81D2824
sub_81D2824: @ 81D2824
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, =gUnknown_08625510
	bl InitWindows
	bl DeactivateAllTextPrinters
	movs r0, 0
	movs r1, 0x1
	movs r2, 0xE0
	bl sub_809882C
	ldr r0, =gUnknown_0860F074
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	movs r4, 0
_081D284A:
	adds r0, r4, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x4
	bls _081D284A
	cmp r5, 0
	bne _081D287C
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0
	movs r2, 0x1
	movs r3, 0xE
	bl SetWindowBorderStyle
	b _081D288E
	.pool
_081D287C:
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0x1
	movs r1, 0
	movs r2, 0x1
	movs r3, 0xE
	bl SetWindowBorderStyle
_081D288E:
	movs r0, 0x2
	bl PutWindowTilemap
	movs r0, 0x3
	bl PutWindowTilemap
	movs r0, 0x2
	movs r1, 0
	movs r2, 0x1
	movs r3, 0xE
	bl SetWindowBorderStyle
	movs r0, 0x3
	movs r1, 0
	movs r2, 0x1
	movs r3, 0xE
	bl SetWindowBorderStyle
	bl nullsub_79
	movs r0, 0x1
	bl schedule_bg_copy_tilemap_to_vram
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D2824

	thumb_func_start nullsub_79
nullsub_79: @ 81D28C4
	bx lr
	thumb_func_end nullsub_79

	thumb_func_start sub_81D28C8
sub_81D28C8: @ 81D28C8
	push {r4-r7,lr}
	lsls r1, 16
	lsrs r4, r1, 16
	ldr r3, =gUnknown_03006310
	adds r2, r3, 0
	ldr r1, =gUnknown_08625548
	ldm r1!, {r5-r7}
	stm r2!, {r5-r7}
	ldm r1!, {r5-r7}
	stm r2!, {r5-r7}
	strh r4, [r3, 0xC]
	str r0, [r3]
	cmp r4, 0x5
	bhi _081D28F0
	strh r4, [r3, 0xE]
	b _081D28F4
	.pool
_081D28F0:
	movs r0, 0x6
	strh r0, [r3, 0xE]
_081D28F4:
	ldrb r0, [r3, 0xE]
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D28C8

	thumb_func_start sub_81D28FC
sub_81D28FC: @ 81D28FC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	mov r9, r0
	movs r0, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_085EFA31
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x80
	bl GetStringCenterAlignXOffset
	adds r4, r0, 0
	lsls r3, r4, 24
	lsrs r3, 24
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	mov r8, r0
	str r0, [sp, 0x4]
	movs r7, 0
	str r7, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl PrintTextOnWindow
	ldr r5, =gUnknown_085EFA52
	movs r1, 0x29
	mov r10, r1
	str r1, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	str r7, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	adds r2, r5, 0
	movs r3, 0x4
	bl PrintTextOnWindow
	ldr r5, =gUnknown_085EFA56
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x6A
	bl GetStringRightAlignXOffset
	adds r4, r0, 0
	lsls r3, r4, 24
	lsrs r3, 24
	movs r1, 0x19
	str r1, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	str r7, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl PrintTextOnWindow
	ldr r5, =gUnknown_085EFA5D
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x6A
	bl GetStringRightAlignXOffset
	adds r4, r0, 0
	lsls r3, r4, 24
	lsrs r3, 24
	mov r1, r10
	str r1, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	str r7, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl PrintTextOnWindow
	movs r0, 0x2
	negs r0, r0
	cmp r9, r0
	bne _081D29C4
	movs r0, 0
	movs r1, 0x2
	bl CopyWindowToVram
	b _081D2AB6
	.pool
_081D29C4:
	mov r1, r9
	lsls r0, r1, 1
	add r0, r9
	lsls r0, 2
	ldr r1, =gBattleMoves
	adds r6, r0, r1
	ldrb r1, [r6, 0x2]
	lsls r0, r1, 3
	subs r0, r1
	ldr r1, =gTypeNames
	adds r5, r0, r1
	movs r0, 0x19
	str r0, [sp]
	mov r1, r8
	str r1, [sp, 0x4]
	str r7, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	adds r2, r5, 0
	movs r3, 0x4
	bl PrintTextOnWindow
	ldr r1, =gUnknown_085EFA52
	movs r0, 0x1
	movs r2, 0
	bl GetStringWidth
	adds r4, r0, 0x4
	ldrb r1, [r6, 0x4]
	add r0, sp, 0xC
	movs r2, 0
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	lsls r3, r4, 24
	lsrs r3, 24
	mov r0, r10
	str r0, [sp]
	mov r1, r8
	str r1, [sp, 0x4]
	str r7, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	add r2, sp, 0xC
	bl PrintTextOnWindow
	ldrb r0, [r6, 0x1]
	cmp r0, 0x1
	bhi _081D2A3C
	ldr r5, =gText_ThreeDashes
	b _081D2A4A
	.pool
_081D2A3C:
	ldrb r1, [r6, 0x1]
	add r0, sp, 0xC
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	add r5, sp, 0xC
_081D2A4A:
	movs r0, 0x19
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r1, 0x1
	adds r2, r5, 0
	movs r3, 0x6A
	bl PrintTextOnWindow
	ldrb r0, [r6, 0x3]
	cmp r0, 0
	bne _081D2A70
	ldr r5, =gText_ThreeDashes
	b _081D2A7E
	.pool
_081D2A70:
	ldrb r1, [r6, 0x3]
	add r0, sp, 0xC
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	add r5, sp, 0xC
_081D2A7E:
	movs r0, 0x29
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r4, 0
	str r4, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	adds r2, r5, 0
	movs r3, 0x6A
	bl PrintTextOnWindow
	ldr r1, =gMoveDescriptionPointers
	mov r0, r9
	subs r0, 0x1
	lsls r0, 2
	adds r0, r1
	ldr r5, [r0]
	movs r0, 0x41
	str r0, [sp]
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0
	movs r1, 0x7
	adds r2, r5, 0
	movs r3, 0
	bl PrintTextOnWindow
_081D2AB6:
	add sp, 0x2C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D28FC

	thumb_func_start sub_81D2ACC
sub_81D2ACC: @ 81D2ACC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	adds r4, r0, 0
	bl sub_816137C
	movs r0, 0x1
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_085EFA3E
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x80
	bl GetStringCenterAlignXOffset
	lsls r3, r0, 24
	lsrs r3, 24
	movs r0, 0x1
	str r0, [sp]
	movs r7, 0xFF
	str r7, [sp, 0x4]
	movs r6, 0
	str r6, [sp, 0x8]
	movs r1, 0x1
	adds r2, r5, 0
	bl PrintTextOnWindow
	ldr r5, =gUnknown_085EFA67
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x5C
	bl GetStringRightAlignXOffset
	lsls r3, r0, 24
	lsrs r3, 24
	movs r0, 0x19
	mov r8, r0
	str r0, [sp]
	str r7, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	adds r2, r5, 0
	bl PrintTextOnWindow
	ldr r5, =gUnknown_085EFA6E
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x5C
	bl GetStringRightAlignXOffset
	lsls r3, r0, 24
	lsrs r3, 24
	movs r0, 0x29
	str r0, [sp]
	str r7, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	adds r2, r5, 0
	bl PrintTextOnWindow
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	bne _081D2B6C
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
	b _081D2BB8
	.pool
_081D2B6C:
	lsls r4, 3
	ldr r0, =gContestMoves
	adds r4, r0
	ldr r1, =gContestMoveTypeTextPointers
	ldrb r0, [r4, 0x1]
	lsls r0, 29
	lsrs r0, 27
	adds r0, r1
	ldr r5, [r0]
	mov r0, r8
	str r0, [sp]
	str r7, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	adds r2, r5, 0
	movs r3, 0x4
	bl PrintTextOnWindow
	ldr r1, =gContestEffectDescriptionPointers
	ldrb r0, [r4]
	lsls r0, 2
	adds r0, r1
	ldr r5, [r0]
	movs r0, 0x41
	str r0, [sp]
	str r7, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x7
	adds r2, r5, 0
	movs r3, 0
	bl PrintTextOnWindow
	movs r0, 0x1
	movs r1, 0x2
	bl CopyWindowToVram
_081D2BB8:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D2ACC

	thumb_func_start sub_81D2BD0
sub_81D2BD0: @ 81D2BD0
	push {r4,lr}
	adds r4, r0, 0
	lsls r1, 24
	lsrs r1, 24
	cmp r1, 0x1
	beq _081D2BE2
	movs r0, 0x5
	bl PlaySE
_081D2BE2:
	adds r0, r4, 0
	bl sub_81D28FC
	adds r0, r4, 0
	bl sub_81D2ACC
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81D2BD0

	thumb_func_start sub_81D2BF4
sub_81D2BF4: @ 81D2BF4
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	movs r0, 0x3
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r2, =gTextFlags
	ldrb r0, [r2]
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2]
	bl sav2_get_text_speed
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r1, 0x1
	adds r2, r4, 0
	bl AddTextPrinterParametrized
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D2BF4

	thumb_func_start sub_81D2C3C
sub_81D2C3C: @ 81D2C3C
	push {lr}
	bl RunTextPrinters
	movs r0, 0x3
	bl IsTextPrinterActive
	lsls r0, 16
	lsrs r0, 16
	pop {r1}
	bx r1
	thumb_func_end sub_81D2C3C

	thumb_func_start sub_81D2C50
sub_81D2C50: @ 81D2C50
	push {lr}
	ldr r0, =gUnknown_08625540
	movs r1, 0x1
	movs r2, 0xE
	movs r3, 0
	bl CreateYesNoMenu
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D2C50

	thumb_func_start sub_81D2C68
sub_81D2C68: @ 81D2C68
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	lsls r1, 16
	lsrs r1, 16
	cmp r0, 0xE
	bne _081D2CA8
	cmp r2, 0x2
	beq _081D2C7E
	cmp r2, 0x7
	bne _081D2C94
_081D2C7E:
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	adds r1, r2, 0
	adds r2, r3, 0
	bl GetMonData
	b _081D2CCA
	.pool
_081D2C94:
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	adds r1, r2, 0
	bl GetMonData
	b _081D2CCA
	.pool
_081D2CA8:
	cmp r2, 0x2
	beq _081D2CB0
	cmp r2, 0x7
	bne _081D2CBE
_081D2CB0:
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	bl GetAndCopyBoxMonDataFromAnyBox
	b _081D2CCA
_081D2CBE:
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	bl GetBoxMonDataFromAnyBox
_081D2CCA:
	pop {r1}
	bx r1
	thumb_func_end sub_81D2C68

	thumb_func_start sub_81D2CD0
sub_81D2CD0: @ 81D2CD0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r5, r0, 0
	lsls r1, 16
	lsrs r4, r1, 16
	lsls r2, 16
	lsrs r6, r2, 16
	movs r0, 0xFC
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0x4
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0x8
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0
	strb r0, [r5]
	adds r5, 0x1
	movs r0, 0x9
	strb r0, [r5]
	adds r5, 0x1
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0x2D
	movs r3, 0
	bl sub_81D2C68
	cmp r0, 0
	beq _081D2D20
	ldr r1, =gText_EggNickname
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0xC
	bl StringCopyPadded
	b _081D2E70
	.pool
_081D2D20:
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0x2
	adds r3, r5, 0
	bl sub_81D2C68
	adds r0, r5, 0
	bl StringGetEnd10
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0xB
	movs r3, 0
	bl sub_81D2C68
	lsls r0, 16
	lsrs r7, r0, 16
	cmp r4, 0xE
	bne _081D2D70
	movs r0, 0x64
	adds r4, r6, 0
	muls r4, r0
	ldr r0, =gPlayerParty
	adds r4, r0
	adds r0, r4, 0
	movs r1, 0x38
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	adds r0, r4, 0
	bl GetMonGender
	lsls r0, 24
	lsrs r6, r0, 24
	b _081D2D92
	.pool
_081D2D70:
	lsls r0, r4, 24
	lsrs r0, 24
	lsls r1, r6, 24
	lsrs r1, 24
	bl GetBoxedMonPtr
	adds r4, r0, 0
	bl GetBoxMonGender
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r4, 0
	bl GetLevelFromBoxMonExp
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
_081D2D92:
	cmp r7, 0x1D
	beq _081D2D9A
	cmp r7, 0x20
	bne _081D2DB0
_081D2D9A:
	movs r0, 0xB
	adds r1, r7, 0
	muls r1, r0
	ldr r0, =gSpeciesNames
	adds r1, r0
	adds r0, r5, 0
	bl StringCompare
	cmp r0, 0
	bne _081D2DB0
	movs r6, 0xFF
_081D2DB0:
	adds r3, r5, 0
	b _081D2DBA
	.pool
_081D2DB8:
	adds r3, 0x1
_081D2DBA:
	ldrb r0, [r3]
	cmp r0, 0xFF
	bne _081D2DB8
	movs r1, 0xFC
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x12
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x3C
	strb r0, [r3]
	adds r3, 0x1
	cmp r6, 0
	beq _081D2DDE
	cmp r6, 0xFE
	beq _081D2E02
	movs r0, 0
	b _081D2E24
_081D2DDE:
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x1
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x4
	strb r0, [r3]
	adds r3, 0x1
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x3
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x5
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xB5
	b _081D2E24
_081D2E02:
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x1
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x6
	strb r0, [r3]
	adds r3, 0x1
	strb r1, [r3]
	adds r3, 0x1
	movs r0, 0x3
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x7
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xB6
_081D2E24:
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xFC
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x4
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x8
	strb r0, [r3]
	adds r3, 0x1
	movs r4, 0
	strb r4, [r3]
	adds r3, 0x1
	movs r0, 0x9
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xBA
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0xF9
	strb r0, [r3]
	adds r3, 0x1
	movs r0, 0x5
	strb r0, [r3]
	adds r3, 0x1
	adds r0, r3, 0
	mov r1, r8
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r3, r0, 0
	strb r4, [r3]
	adds r3, 0x1
	movs r0, 0xFF
	strb r0, [r3]
	adds r0, r3, 0
_081D2E70:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D2CD0

	thumb_func_start sub_81D2E7C
sub_81D2E7C: @ 81D2E7C
	push {r4,lr}
	adds r4, r0, 0
	lsls r2, 16
	lsrs r2, 16
	b _081D2E94
_081D2E86:
	strb r3, [r4]
	adds r1, 0x1
	adds r4, 0x1
	lsls r0, r2, 16
	ldr r2, =0xffff0000
	adds r0, r2
	lsrs r2, r0, 16
_081D2E94:
	ldrb r3, [r1]
	adds r0, r3, 0
	cmp r0, 0xFF
	bne _081D2E86
	adds r1, r2, 0
	lsls r0, r1, 16
	ldr r2, =0xffff0000
	adds r0, r2
	lsrs r2, r0, 16
	lsls r1, 16
	cmp r1, 0
	ble _081D2EC2
	movs r3, 0
_081D2EAE:
	strb r3, [r4]
	adds r4, 0x1
	adds r1, r2, 0
	lsls r0, r1, 16
	ldr r2, =0xffff0000
	adds r0, r2
	lsrs r2, r0, 16
	lsls r1, 16
	cmp r1, 0
	bgt _081D2EAE
_081D2EC2:
	movs r0, 0xFF
	strb r0, [r4]
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D2E7C

	thumb_func_start sub_81D2ED4
sub_81D2ED4: @ 81D2ED4
	push {r4-r7,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	ldr r0, [sp, 0x14]
	ldr r1, [sp, 0x18]
	ldr r4, [sp, 0x1C]
	lsls r2, 16
	lsrs r7, r2, 16
	lsls r3, 16
	lsrs r3, 16
	lsls r0, 16
	lsrs r2, r0, 16
	lsls r1, 16
	lsrs r0, r1, 16
	lsls r4, 24
	cmp r4, 0
	bne _081D2EFC
	subs r0, 0x1
	lsls r0, 16
	lsrs r0, 16
_081D2EFC:
	cmp r2, r0
	beq _081D2F42
	adds r0, r6, 0
	adds r1, r7, 0
	adds r2, r3, 0
	bl sub_81D2CD0
	movs r0, 0xFC
	strb r0, [r5]
	movs r0, 0x4
	strb r0, [r5, 0x1]
	movs r0, 0x8
	strb r0, [r5, 0x2]
	movs r0, 0
	strb r0, [r5, 0x3]
	movs r0, 0x9
	strb r0, [r5, 0x4]
	cmp r7, 0xE
	bne _081D2F2C
	adds r0, r5, 0x5
	ldr r1, =gUnknown_085EBFCE
	b _081D2F3A
	.pool
_081D2F2C:
	adds r4, r5, 0x5
	lsls r0, r7, 24
	lsrs r0, 24
	bl sav3_get_box_name
	adds r1, r0, 0
	adds r0, r4, 0
_081D2F3A:
	movs r2, 0x8
	bl sub_81D2E7C
	b _081D2F72
_081D2F42:
	movs r1, 0
	movs r2, 0
_081D2F46:
	adds r0, r6, r1
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0xB
	bls _081D2F46
	adds r1, r6, r1
	movs r0, 0xFF
	strb r0, [r1]
	movs r1, 0
	movs r2, 0
_081D2F5E:
	adds r0, r5, r1
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x7
	bls _081D2F5E
	adds r1, r5, r1
	movs r0, 0xFF
	strb r0, [r1]
_081D2F72:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D2ED4

	thumb_func_start sub_81D2F78
sub_81D2F78: @ 81D2F78
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	mov r8, r0
	mov r10, r1
	ldr r0, [sp, 0x20]
	ldr r1, [sp, 0x24]
	ldr r4, [sp, 0x28]
	ldr r5, [sp, 0x2C]
	lsls r2, 16
	lsrs r7, r2, 16
	lsls r3, 16
	lsrs r6, r3, 16
	lsls r0, 16
	lsrs r2, r0, 16
	lsls r1, 16
	lsrs r1, 16
	mov r9, r1
	lsls r4, 16
	lsrs r0, r4, 16
	lsls r5, 24
	cmp r5, 0
	bne _081D2FB0
	subs r0, 0x1
	lsls r0, 16
	lsrs r0, 16
_081D2FB0:
	cmp r2, r0
	beq _081D305C
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x16
	movs r3, 0
	bl sub_81D2C68
	mov r1, r9
	lsls r5, r1, 2
	adds r4, r5, r1
	mov r2, r8
	adds r1, r2, r4
	strb r0, [r1]
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x2F
	movs r3, 0
	bl sub_81D2C68
	mov r1, r8
	adds r1, 0x1
	adds r1, r4
	strb r0, [r1]
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x21
	movs r3, 0
	bl sub_81D2C68
	mov r1, r8
	adds r1, 0x2
	adds r1, r4
	strb r0, [r1]
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x18
	movs r3, 0
	bl sub_81D2C68
	mov r1, r8
	adds r1, 0x3
	adds r1, r4
	strb r0, [r1]
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x17
	movs r3, 0
	bl sub_81D2C68
	mov r1, r8
	adds r1, 0x4
	adds r1, r4
	strb r0, [r1]
	mov r4, r10
	add r4, r9
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x30
	movs r3, 0
	bl sub_81D2C68
	cmp r0, 0xFF
	beq _081D3044
	adds r0, r7, 0
	adds r1, r6, 0
	movs r2, 0x30
	movs r3, 0
	bl sub_81D2C68
	movs r1, 0x1D
	bl __udivsi3
	b _081D3046
_081D3044:
	movs r0, 0x9
_081D3046:
	strb r0, [r4]
	mov r0, r9
	adds r1, r5, r0
	mov r2, r8
	adds r0, r2, r1
	lsls r1, 2
	adds r1, 0x14
	add r1, r8
	bl sub_81D2754
	b _081D3086
_081D305C:
	movs r2, 0
	mov r0, r9
	lsls r5, r0, 2
	adds r1, r5, r0
	movs r6, 0
	lsls r3, r1, 2
	movs r5, 0x9B
	movs r4, 0x5B
_081D306C:
	adds r0, r2, r1
	add r0, r8
	strb r6, [r0]
	lsls r0, r2, 2
	adds r0, r3
	add r0, r8
	strh r5, [r0, 0x14]
	strh r4, [r0, 0x16]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x4
	bls _081D306C
_081D3086:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D2F78

	thumb_func_start sub_81D3094
sub_81D3094: @ 81D3094
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	mov r8, r0
	mov r9, r1
	ldr r0, [sp, 0x20]
	ldr r1, [sp, 0x24]
	ldr r4, [sp, 0x28]
	lsls r2, 16
	lsrs r7, r2, 16
	lsls r3, 16
	lsrs r5, r3, 16
	lsls r0, 16
	lsrs r2, r0, 16
	lsls r1, 16
	lsrs r0, r1, 16
	lsls r4, 24
	cmp r4, 0
	bne _081D30C4
	subs r0, 0x1
	lsls r0, 16
	lsrs r0, 16
_081D30C4:
	cmp r2, r0
	beq _081D311A
	adds r0, r7, 0
	adds r1, r5, 0
	movs r2, 0x41
	movs r3, 0
	bl sub_81D2C68
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	adds r0, r7, 0
	adds r1, r5, 0
	movs r2, 0x1
	movs r3, 0
	bl sub_81D2C68
	adds r6, r0, 0
	adds r0, r7, 0
	adds r1, r5, 0
	movs r2, 0
	movs r3, 0
	bl sub_81D2C68
	adds r5, r0, 0
	lsls r0, r4, 3
	ldr r1, =gMonFrontPicTable
	adds r0, r1
	movs r1, 0x1
	str r1, [sp]
	mov r1, r8
	adds r2, r4, 0
	adds r3, r5, 0
	bl LoadSpecialPokePic
	adds r0, r4, 0
	adds r1, r6, 0
	adds r2, r5, 0
	bl species_and_otid_get_pal
	mov r1, r9
	bl LZ77UnCompWram
_081D311A:
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3094

	thumb_func_start sub_81D312C
sub_81D312C: @ 81D312C
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1]
	adds r0, 0x18
	strh r0, [r1]
	lsls r0, 16
	cmp r0, 0
	ble _081D3140
	movs r0, 0
	strh r0, [r1]
_081D3140:
	movs r0, 0
	ldrsh r1, [r1, r0]
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	pop {r1}
	bx r1
	thumb_func_end sub_81D312C

	thumb_func_start sub_81D3150
sub_81D3150: @ 81D3150
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1]
	subs r0, 0x18
	strh r0, [r1]
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x50
	negs r2, r2
	cmp r0, r2
	bge _081D3168
	strh r2, [r1]
_081D3168:
	movs r0, 0
	ldrsh r1, [r1, r0]
	eors r1, r2
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	pop {r1}
	bx r1
	thumb_func_end sub_81D3150

	thumb_func_start sub_81D3178
sub_81D3178: @ 81D3178
	push {r4,r5,lr}
	adds r5, r1, 0
	bl sub_81D2074
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	bl sub_81D312C
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	cmp r4, 0
	bne _081D319A
	cmp r0, 0
	beq _081D319C
_081D319A:
	movs r1, 0x1
_081D319C:
	adds r0, r1, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D3178

	thumb_func_start sub_81D31A4
sub_81D31A4: @ 81D31A4
	push {r4,r5,lr}
	adds r5, r1, 0
	bl sub_81D2074
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	bl sub_81D3150
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	cmp r4, 0
	bne _081D31C6
	cmp r0, 0
	beq _081D31C8
_081D31C6:
	movs r1, 0x1
_081D31C8:
	adds r0, r1, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D31A4

	thumb_func_start sub_81D31D0
sub_81D31D0: @ 81D31D0
	push {r4-r7,lr}
	sub sp, 0x20
	ldr r3, =gUnknown_08625A48
	ldr r4, [r3]
	ldr r5, [r3, 0x4]
	str r4, [sp, 0x18]
	str r5, [sp, 0x1C]
	mov r4, sp
	ldr r3, =gUnknown_08625A50
	ldm r3!, {r5-r7}
	stm r4!, {r5-r7}
	ldm r3!, {r5-r7}
	stm r4!, {r5-r7}
	ldr r3, =gUnknown_08625A68
	ldr r4, [r3, 0x4]
	ldr r3, [r3]
	ldr r5, [sp, 0x18]
	ldr r6, [sp, 0x1C]
	str r5, [r0]
	str r6, [r0, 0x4]
	mov r0, sp
	ldm r0!, {r5-r7}
	stm r1!, {r5-r7}
	ldm r0!, {r5-r7}
	stm r1!, {r5-r7}
	str r3, [r2]
	str r4, [r2, 0x4]
	add sp, 0x20
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D31D0

	thumb_func_start sub_81D321C
sub_81D321C: @ 81D321C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x50
	adds r5, r0, 0
	mov r12, r1
	mov r8, r2
	mov r1, sp
	ldr r0, =gUnknown_08625A70
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2,r6,r7}
	stm r1!, {r2,r6,r7}
	ldm r0!, {r3,r4}
	stm r1!, {r3,r4}
	add r3, sp, 0x20
	adds r1, r3, 0
	ldr r0, =gUnknown_08625A90
	ldm r0!, {r2,r6,r7}
	stm r1!, {r2,r6,r7}
	ldm r0!, {r4,r6,r7}
	stm r1!, {r4,r6,r7}
	add r2, sp, 0x38
	adds r1, r2, 0
	ldr r0, =gUnknown_08625AA8
	ldm r0!, {r4,r6,r7}
	stm r1!, {r4,r6,r7}
	ldm r0!, {r4,r6,r7}
	stm r1!, {r4,r6,r7}
	movs r4, 0
_081D3258:
	lsls r0, r4, 3
	add r0, sp
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	stm r5!, {r0,r1}
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _081D3258
	mov r1, r12
	adds r0, r2, 0
	ldm r0!, {r2,r4,r5}
	stm r1!, {r2,r4,r5}
	ldm r0!, {r2,r6,r7}
	stm r1!, {r2,r6,r7}
	movs r4, 0
_081D327A:
	lsls r0, r4, 3
	adds r0, r3, r0
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	mov r5, r8
	adds r5, 0x8
	mov r8, r5
	subs r5, 0x8
	stm r5!, {r0,r1}
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x2
	bls _081D327A
	add sp, 0x50
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D321C

	thumb_func_start sub_81D32B0
sub_81D32B0: @ 81D32B0
	push {r4,r5,lr}
	ldr r2, =gUnknown_08625AC0
	ldr r4, [r2]
	ldr r5, [r2, 0x4]
	ldr r2, =gUnknown_08625AC8
	ldr r3, [r2, 0x4]
	ldr r2, [r2]
	str r4, [r0]
	str r5, [r0, 0x4]
	str r2, [r1]
	str r3, [r1, 0x4]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D32B0

	thumb_func_start sub_81D32D4
sub_81D32D4: @ 81D32D4
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0x30]
	adds r0, 0x1
	strh r0, [r1, 0x30]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3C
	ble _081D32F0
	movs r0, 0
	strh r0, [r1, 0x30]
	adds r0, r1, 0
	bl sub_81D3408
_081D32F0:
	pop {r0}
	bx r0
	thumb_func_end sub_81D32D4

	thumb_func_start sub_81D32F4
sub_81D32F4: @ 81D32F4
	push {lr}
	adds r2, r0, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _081D330C
	movs r0, 0
	strh r0, [r2, 0x30]
	ldr r0, =sub_81D32D4
	str r0, [r2, 0x1C]
_081D330C:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D32F4

	thumb_func_start sub_81D3314
sub_81D3314: @ 81D3314
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r1, 0x36
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r3, r1, r0
	cmp r3, 0
	beq _081D3360
	ldrh r1, [r3, 0x24]
	ldrh r2, [r3, 0x20]
	adds r1, r2
	ldr r2, =gUnknown_08625B2C
	movs r5, 0x2E
	ldrsh r0, [r4, r5]
	lsls r0, 2
	adds r0, r2
	ldrh r0, [r0]
	adds r0, r1
	strh r0, [r4, 0x20]
	ldrh r1, [r3, 0x26]
	ldrh r3, [r3, 0x22]
	adds r1, r3
	movs r3, 0x2E
	ldrsh r0, [r4, r3]
	lsls r0, 2
	adds r2, 0x2
	adds r0, r2
	ldrh r0, [r0]
	adds r0, r1
	b _081D337E
	.pool
_081D3360:
	ldr r1, =gUnknown_08625B2C
	movs r5, 0x2E
	ldrsh r0, [r4, r5]
	lsls r0, 2
	adds r0, r1
	ldrh r0, [r0]
	adds r0, 0x28
	strh r0, [r4, 0x20]
	movs r2, 0x2E
	ldrsh r0, [r4, r2]
	lsls r0, 2
	adds r1, 0x2
	adds r0, r1
	ldrh r0, [r0]
	adds r0, 0x68
_081D337E:
	strh r0, [r4, 0x22]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3314

	thumb_func_start sub_81D338C
sub_81D338C: @ 81D338C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r2
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 24
	lsrs r7, r1, 24
	movs r5, 0
_081D339E:
	lsls r0, r5, 2
	mov r1, r8
	adds r4, r0, r1
	ldr r0, [r4]
	cmp r0, 0
	beq _081D33F0
	strh r5, [r0, 0x2E]
	ldr r1, [r4]
	lsls r0, r5, 4
	adds r0, 0x1
	strh r0, [r1, 0x30]
	ldr r0, [r4]
	strh r6, [r0, 0x32]
	ldr r0, [r4]
	strh r5, [r0, 0x34]
	cmp r7, 0
	beq _081D33C4
	cmp r6, 0x9
	beq _081D33D0
_081D33C4:
	ldr r1, [r4]
	ldr r0, =sub_81D3564
	str r0, [r1, 0x1C]
	b _081D33F0
	.pool
_081D33D0:
	ldr r0, [r4]
	bl sub_81D3314
	ldr r0, [r4]
	bl sub_81D35E8
	ldr r2, [r4]
	ldr r0, =sub_81D32F4
	str r0, [r2, 0x1C]
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r3, 0x5
	negs r3, r3
	adds r1, r3, 0
	ands r0, r1
	strb r0, [r2]
_081D33F0:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x9
	bls _081D339E
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D338C

	thumb_func_start sub_81D3408
sub_81D3408: @ 81D3408
	push {r4-r7,lr}
	adds r4, r0, 0
	ldrh r0, [r4, 0x38]
	lsls r0, 24
	lsrs r2, r0, 24
	movs r3, 0
	movs r1, 0x32
	ldrsh r0, [r4, r1]
	adds r0, 0x1
	cmp r3, r0
	bge _081D3454
	ldr r5, =gSprites
	movs r7, 0x1C
	adds r7, r5
	mov r12, r7
	ldr r6, =sub_81D3564
_081D3428:
	lsls r1, r2, 4
	adds r1, r2
	lsls r1, 2
	adds r2, r1, r5
	movs r7, 0x2E
	ldrsh r0, [r2, r7]
	lsls r0, 4
	adds r0, 0x1
	strh r0, [r2, 0x30]
	add r1, r12
	str r6, [r1]
	ldrh r0, [r2, 0x38]
	lsls r0, 24
	lsrs r2, r0, 24
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	movs r1, 0x32
	ldrsh r0, [r4, r1]
	adds r0, 0x1
	cmp r3, r0
	blt _081D3428
_081D3454:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3408

	thumb_func_start sub_81D3464
sub_81D3464: @ 81D3464
	push {lr}
	adds r2, r0, 0
	movs r1, 0
	movs r3, 0
_081D346C:
	lsls r0, r1, 2
	adds r0, r2
	str r3, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x9
	bls _081D346C
	pop {r0}
	bx r0
	thumb_func_end sub_81D3464

	thumb_func_start sub_81D3480
sub_81D3480: @ 81D3480
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	mov r8, r0
	lsls r1, 24
	lsrs r1, 24
	mov r10, r1
	lsls r2, 24
	movs r0, 0
	mov r9, r0
	lsrs r7, r2, 24
	movs r5, 0
	adds r0, r7, 0x1
	cmp r9, r0
	bge _081D34FE
_081D34A2:
	ldr r0, =gUnknown_08625B14
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r3, r0, 24
	adds r6, r3, 0
	cmp r3, 0x40
	beq _081D34FE
	lsls r0, r5, 2
	mov r1, r8
	adds r4, r0, r1
	lsls r0, r3, 4
	adds r0, r3
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r4]
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r4]
	mov r1, r10
	strh r1, [r0, 0x36]
	cmp r5, 0
	beq _081D34F0
	subs r0, r4, 0x4
	ldr r0, [r0]
	strh r3, [r0, 0x38]
	b _081D34F2
	.pool
_081D34F0:
	mov r9, r6
_081D34F2:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	adds r0, r7, 0x1
	cmp r5, r0
	blt _081D34A2
_081D34FE:
	lsls r0, r7, 2
	add r0, r8
	ldr r0, [r0]
	mov r1, r9
	strh r1, [r0, 0x38]
	adds r0, r7, 0
	movs r1, 0x1
	mov r2, r8
	bl sub_81D338C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D3480

	thumb_func_start sub_81D3520
sub_81D3520: @ 81D3520
	push {r4-r6,lr}
	adds r6, r0, 0
	movs r5, 0
_081D3526:
	cmp r5, 0x9
	bhi _081D3544
	lsls r0, r5, 2
	adds r4, r0, r6
	ldr r0, [r4]
	cmp r0, 0
	beq _081D3544
	bl DestroySprite
	movs r0, 0
	str r0, [r4]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	b _081D3526
_081D3544:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81D3520

	thumb_func_start sub_81D354C
sub_81D354C: @ 81D354C
	push {lr}
	bl sub_81D3520
	movs r0, 0x68
	bl FreeSpriteTilesByTag
	movs r0, 0x68
	bl FreeSpritePaletteByTag
	pop {r0}
	bx r0
	thumb_func_end sub_81D354C

	thumb_func_start sub_81D3564
sub_81D3564: @ 81D3564
	push {r4,lr}
	adds r4, r0, 0
	ldrh r1, [r4, 0x30]
	movs r2, 0x30
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _081D3592
	subs r0, r1, 0x1
	strh r0, [r4, 0x30]
	lsls r0, 16
	cmp r0, 0
	bne _081D35DC
	adds r0, r4, 0
	movs r1, 0
	bl SeekSpriteAnim
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
_081D3592:
	adds r0, r4, 0
	bl sub_81D3314
	adds r0, r4, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _081D35DC
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	movs r0, 0x34
	ldrsh r1, [r4, r0]
	movs r2, 0x32
	ldrsh r0, [r4, r2]
	cmp r1, r0
	bne _081D35D8
	cmp r1, 0x9
	bne _081D35D0
	adds r0, r4, 0
	bl sub_81D35E8
	ldr r0, =sub_81D32F4
	b _081D35DA
	.pool
_081D35D0:
	ldr r0, =sub_81D32D4
	b _081D35DA
	.pool
_081D35D8:
	ldr r0, =SpriteCallbackDummy
_081D35DA:
	str r0, [r4, 0x1C]
_081D35DC:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3564

	thumb_func_start sub_81D35E8
sub_81D35E8: @ 81D35E8
	push {r4-r7,lr}
	adds r6, r0, 0
	ldrh r0, [r6, 0x38]
	lsls r0, 24
	lsrs r1, r0, 24
	movs r5, 0
	movs r2, 0x32
	ldrsh r0, [r6, r2]
	adds r0, 0x1
	cmp r5, r0
	bge _081D3636
	movs r0, 0x5
	negs r0, r0
	adds r7, r0, 0
_081D3604:
	lsls r4, r1, 4
	adds r4, r1
	lsls r4, 2
	ldr r0, =gSprites
	adds r4, r0
	adds r0, r4, 0
	movs r1, 0
	bl SeekSpriteAnim
	adds r1, r4, 0
	adds r1, 0x3E
	ldrb r0, [r1]
	ands r0, r7
	strb r0, [r1]
	ldrh r0, [r4, 0x38]
	lsls r0, 24
	lsrs r1, r0, 24
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	movs r2, 0x32
	ldrsh r0, [r6, r2]
	adds r0, 0x1
	cmp r5, r0
	blt _081D3604
_081D3636:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D35E8

	thumb_func_start sub_81D3640
sub_81D3640: @ 81D3640
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	mov r8, r0
	adds r6, r1, 0
	adds r5, r2, 0
	adds r4, r3, 0
	ldr r3, [sp, 0x4C]
	ldr r0, [sp, 0x50]
	mov r9, r0
	lsls r4, 24
	lsrs r4, 24
	lsls r3, 24
	lsrs r3, 24
	mov r1, r9
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, r4, 4
	orrs r1, r4
	lsls r1, 24
	lsrs r1, 24
	str r3, [sp, 0x28]
	bl FillWindowPixelBuffer
	add r2, sp, 0xC
	ldrh r0, [r5]
	ldrh r1, [r6]
	subs r0, r1
	strh r0, [r2]
	ldrh r0, [r5, 0x2]
	ldrh r1, [r6, 0x2]
	subs r0, r1
	strh r0, [r2, 0x2]
	ldrh r0, [r5, 0x4]
	ldrh r1, [r6, 0x4]
	subs r0, r1
	strh r0, [r2, 0x4]
	ldrh r0, [r5, 0x8]
	ldrh r1, [r6, 0x8]
	subs r0, r1
	strh r0, [r2, 0x6]
	ldrh r0, [r5, 0xA]
	ldrh r1, [r6, 0xA]
	subs r0, r1
	strh r0, [r2, 0x8]
	ldrh r0, [r5, 0x6]
	ldrh r1, [r6, 0x6]
	subs r0, r1
	strh r0, [r2, 0xA]
	add r0, sp, 0x24
	strb r4, [r0]
	ldr r3, [sp, 0x28]
	strb r3, [r0, 0x1]
	mov r1, r9
	strb r1, [r0, 0x2]
	movs r7, 0
	mov r10, r0
	movs r0, 0x1
	negs r0, r0
	mov r9, r0
	add r6, sp, 0x18
_081D36CA:
	lsls r0, r7, 4
	subs r0, r7
	lsls r0, 24
	lsrs r5, r0, 24
	mov r1, r10
	str r1, [sp]
	mov r0, r9
	str r0, [sp, 0x4]
	ldr r1, =gUnknown_08625B54
	lsls r0, r7, 2
	adds r0, r1
	ldr r0, [r0]
	str r0, [sp, 0x8]
	mov r0, r8
	movs r1, 0x1
	movs r2, 0
	adds r3, r5, 0
	bl box_print
	lsls r0, r7, 1
	mov r4, sp
	adds r4, r0
	adds r4, 0xC
	movs r1, 0
	ldrsh r0, [r4, r1]
	ldr r1, =gUnknown_085EEA76
	cmp r0, 0
	blt _081D3704
	ldr r1, =gUnknown_085EEA73
_081D3704:
	adds r0, r6, 0
	bl StringCopy
	mov r0, r10
	str r0, [sp]
	mov r1, r9
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	movs r1, 0x1
	movs r2, 0x38
	adds r3, r5, 0
	bl box_print
	movs r0, 0
	ldrsh r1, [r4, r0]
	adds r0, r1, 0
	cmp r1, 0
	bge _081D372C
	negs r0, r1
_081D372C:
	movs r4, 0xC
	cmp r0, 0x9
	bgt _081D3734
	movs r4, 0x12
_081D3734:
	cmp r1, 0
	bge _081D373A
	negs r1, r1
_081D373A:
	adds r0, r6, 0
	movs r2, 0
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	adds r2, r4, 0
	adds r2, 0x38
	mov r1, r10
	str r1, [sp]
	mov r0, r9
	str r0, [sp, 0x4]
	str r6, [sp, 0x8]
	mov r0, r8
	movs r1, 0x1
	adds r3, r5, 0
	bl box_print
	adds r0, r7, 0x1
	lsls r0, 16
	lsrs r7, r0, 16
	cmp r7, 0x5
	bls _081D36CA
	add sp, 0x2C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3640

	thumb_func_start sub_81D3784
sub_81D3784: @ 81D3784
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	mov r8, r0
	adds r5, r1, 0
	adds r4, r2, 0
	adds r6, r3, 0
	ldr r2, [sp, 0x4C]
	lsls r4, 24
	lsrs r4, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, r4, 4
	orrs r1, r4
	lsls r1, 24
	lsrs r1, 24
	str r2, [sp, 0x28]
	bl FillWindowPixelBuffer
	add r1, sp, 0xC
	ldrh r0, [r5]
	strh r0, [r1]
	ldrh r0, [r5, 0x2]
	strh r0, [r1, 0x2]
	ldrh r0, [r5, 0x4]
	strh r0, [r1, 0x4]
	ldrh r0, [r5, 0x8]
	strh r0, [r1, 0x6]
	ldrh r0, [r5, 0xA]
	strh r0, [r1, 0x8]
	ldrh r0, [r5, 0x6]
	strh r0, [r1, 0xA]
	add r0, sp, 0x24
	strb r4, [r0]
	strb r6, [r0, 0x1]
	ldr r2, [sp, 0x28]
	strb r2, [r0, 0x2]
	movs r6, 0
	add r1, sp, 0x18
	mov r9, r1
	mov r7, r8
	mov r10, r0
	movs r2, 0x1
	negs r2, r2
	mov r8, r2
_081D37EE:
	lsls r1, r6, 1
	mov r0, sp
	adds r0, r1
	adds r0, 0xC
	movs r2, 0
	ldrsh r0, [r0, r2]
	movs r4, 0x3
	cmp r0, 0x63
	bgt _081D3808
	movs r4, 0x1
	cmp r0, 0x9
	ble _081D3808
	movs r4, 0x2
_081D3808:
	mov r0, sp
	adds r0, r1
	adds r0, 0xC
	movs r2, 0
	ldrsh r1, [r0, r2]
	mov r0, r9
	movs r2, 0
	adds r3, r4, 0
	bl ConvertIntToDecimalStringN
	movs r0, 0x4
	subs r0, r4
	lsls r4, r0, 1
	adds r4, r0
	lsls r4, 17
	lsrs r4, 16
	lsls r5, r6, 4
	subs r5, r6
	lsls r5, 24
	lsrs r5, 24
	mov r0, r10
	str r0, [sp]
	mov r1, r8
	str r1, [sp, 0x4]
	ldr r1, =gUnknown_08625B54
	lsls r0, r6, 2
	adds r0, r1
	ldr r0, [r0]
	str r0, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	movs r2, 0
	adds r3, r5, 0
	bl box_print
	adds r4, 0x38
	lsls r4, 24
	lsrs r4, 24
	mov r2, r10
	str r2, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	mov r1, r9
	str r1, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	adds r2, r4, 0
	adds r3, r5, 0
	bl box_print
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0x5
	bls _081D37EE
	add sp, 0x2C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3784

	thumb_func_start sub_81D388C
sub_81D388C: @ 81D388C
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	movs r1, 0x3A
	bl GetMonData
	strh r0, [r5]
	adds r0, r4, 0
	movs r1, 0x3B
	bl GetMonData
	strh r0, [r5, 0x2]
	adds r0, r4, 0
	movs r1, 0x3C
	bl GetMonData
	strh r0, [r5, 0x4]
	adds r0, r4, 0
	movs r1, 0x3D
	bl GetMonData
	strh r0, [r5, 0x6]
	adds r0, r4, 0
	movs r1, 0x3E
	bl GetMonData
	strh r0, [r5, 0x8]
	adds r0, r4, 0
	movs r1, 0x3F
	bl GetMonData
	strh r0, [r5, 0xA]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D388C

	thumb_func_start sub_81D38D4
sub_81D38D4: @ 81D38D4
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003d6d
	adds r0, r1
	ldrb r1, [r0]
	adds r2, r1, 0x1
	adds r0, r2, 0
	asrs r0, 8
	lsls r0, 8
	subs r0, r2, r0
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D38D4

	thumb_func_start sub_81D38FC
sub_81D38FC: @ 81D38FC
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r5, 0x9C
	lsls r5, 2
	adds r1, r5, 0
	bl CalcByteArraySum
	adds r4, r5
	ldr r1, [r4]
	cmp r0, r1
	bne _081D3916
	movs r0, 0x1
	b _081D3918
_081D3916:
	movs r0, 0
_081D3918:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D38FC

	thumb_func_start sub_81D3920
sub_81D3920: @ 81D3920
	push {r4-r7,lr}
	adds r7, r0, 0
	ldrb r6, [r7]
	subs r0, r6, 0x1
	cmp r0, 0x7
	bhi _081D3964
	movs r5, 0
	cmp r5, r6
	bcs _081D394C
	adds r4, r7, 0
	adds r4, 0x8
_081D3936:
	adds r0, r4, 0
	bl sub_81D38FC
	cmp r0, 0
	beq _081D3964
	movs r0, 0x9D
	lsls r0, 2
	adds r4, r0
	adds r5, 0x1
	cmp r5, r6
	bcc _081D3936
_081D394C:
	adds r0, r7, 0
	adds r0, 0x8
	movs r1, 0x9D
	lsls r1, 2
	muls r1, r6
	bl CalcByteArraySum
	ldr r1, [r7, 0x4]
	cmp r0, r1
	bne _081D3964
	movs r0, 0x1
	b _081D3966
_081D3964:
	movs r0, 0
_081D3966:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D3920

	thumb_func_start sub_81D396C
sub_81D396C: @ 81D396C
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	subs r0, 0x1
	cmp r0, 0x7
	bhi _081D398E
	adds r0, r4, 0
	adds r0, 0x8
	movs r1, 0xEE
	lsls r1, 4
	bl CalcByteArraySum
	ldr r1, [r4, 0x4]
	cmp r0, r1
	bne _081D398E
	movs r0, 0x1
	b _081D3990
_081D398E:
	movs r0, 0
_081D3990:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D396C

	thumb_func_start sub_81D3998
sub_81D3998: @ 81D3998
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r7, r0, 0
	mov r8, r1
	movs r2, 0x80
	lsls r2, 5
	mov r0, r8
	movs r1, 0
	bl memset
	ldrb r0, [r7]
	mov r1, r8
	strb r0, [r1]
	bl sub_81D38D4
	mov r2, r8
	strb r0, [r2, 0x1]
	ldrb r0, [r7]
	adds r0, 0x1
	asrs r0, 1
	strb r0, [r2, 0x2]
	movs r6, 0
	b _081D3A42
_081D39C8:
	movs r0, 0x1
	ands r0, r6
	cmp r0, 0
	bne _081D3A14
	lsrs r0, r6, 31
	adds r0, r6, r0
	asrs r0, 1
	lsls r4, r0, 4
	subs r4, r0
	lsls r4, 3
	subs r4, r0
	lsls r4, 3
	add r4, r8
	movs r0, 0x9D
	lsls r0, 2
	adds r5, r6, 0
	muls r5, r0
	adds r5, r7, r5
	ldrb r0, [r5, 0x8]
	strb r0, [r4, 0x8]
	movs r1, 0xA7
	lsls r1, 2
	adds r0, r4, r1
	movs r2, 0xAA
	lsls r2, 1
	adds r1, r5, r2
	subs r2, 0x30
	bl memcpy
	adds r4, 0xC
	adds r5, 0xC
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0xA4
	lsls r2, 1
	bl memcpy
	b _081D3A40
_081D3A14:
	lsrs r1, r6, 31
	adds r1, r6, r1
	asrs r1, 1
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 3
	subs r0, r1
	lsls r0, 3
	add r0, r8
	movs r1, 0x9D
	lsls r1, 2
	muls r1, r6
	adds r1, r7, r1
	ldrb r2, [r1, 0x8]
	strb r2, [r0, 0x9]
	movs r2, 0xAA
	lsls r2, 1
	adds r0, r2
	adds r1, 0xC
	subs r2, 0xC
	bl memcpy
_081D3A40:
	adds r6, 0x1
_081D3A42:
	ldrb r0, [r7]
	cmp r6, r0
	blt _081D39C8
	movs r0, 0x1
	ands r0, r6
	cmp r0, 0
	beq _081D3A7E
	lsrs r2, r6, 31
	adds r2, r6, r2
	asrs r2, 1
	lsls r0, r2, 4
	subs r0, r2
	lsls r0, 3
	subs r0, r2
	lsls r0, 3
	add r0, r8
	movs r1, 0xAA
	lsls r1, 1
	adds r0, r1
	ldr r3, =gUnknown_08625B6C
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r2
	lsls r1, 3
	adds r1, r3
	movs r2, 0xA4
	lsls r2, 1
	bl memcpy
_081D3A7E:
	mov r0, r8
	adds r0, 0x8
	movs r1, 0xEE
	lsls r1, 4
	bl CalcByteArraySum
	mov r2, r8
	str r0, [r2, 0x4]
	movs r0, 0x1E
	mov r1, r8
	bl sub_8153634
	cmp r0, 0x1
	bne _081D3AA4
	movs r0, 0x1
	b _081D3AA6
	.pool
_081D3AA4:
	movs r0, 0
_081D3AA6:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D3998

	thumb_func_start sub_81D3AB0
sub_81D3AB0: @ 81D3AB0
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x80
	lsls r0, 5
	bl AllocZeroed
	adds r5, r0, 0
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_81D3998
	adds r4, r0, 0
	adds r0, r5, 0
	bl Free
	adds r0, r4, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D3AB0

	thumb_func_start sub_81D3AD8
sub_81D3AD8: @ 81D3AD8
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r1, 0
	movs r0, 0x1E
	bl sub_81535DC
	cmp r0, 0x1
	bne _081D3B04
	ldr r2, =0x00000ee8
	adds r0, r5, 0
	adds r1, r4, 0
	bl memcpy
	adds r0, r5, 0
	bl sub_81D396C
	cmp r0, 0
	beq _081D3B04
	movs r0, 0x1
	b _081D3B06
	.pool
_081D3B04:
	movs r0, 0
_081D3B06:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D3AD8

	thumb_func_start sub_81D3B0C
sub_81D3B0C: @ 81D3B0C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x80
	lsls r0, 5
	bl AllocZeroed
	adds r5, r0, 0
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_81D3AD8
	adds r4, r0, 0
	adds r0, r5, 0
	bl Free
	adds r0, r4, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D3B0C

	thumb_func_start sub_81D3B34
sub_81D3B34: @ 81D3B34
	push {r4,r5,lr}
	movs r0, 0x80
	lsls r0, 5
	bl AllocZeroed
	adds r4, r0, 0
	bl sub_81D3B0C
	adds r5, r0, 0
	adds r0, r4, 0
	bl Free
	adds r0, r5, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D3B34

	thumb_func_start sub_81D3B54
sub_81D3B54: @ 81D3B54
	push {r4-r7,lr}
	sub sp, 0x4
	adds r6, r0, 0
	adds r5, r1, 0
	bl sub_81D41A0
	movs r7, 0x2
	ldr r4, =gUnknown_03003144
_081D3B64:
	bl sub_81D4170
	ldr r0, =gUnknown_030012E2
	ldrh r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081D3B76
	strb r7, [r4]
_081D3B76:
	movs r0, 0x1
	adds r1, r6, 0
	adds r2, r5, 0
	movs r3, 0
	bl sub_81D3D70
	adds r1, r0, 0
	ldr r0, =gUnknown_030012E4
	strh r1, [r0]
	movs r0, 0x13
	ands r0, r1
	cmp r0, 0x10
	bne _081D3BA0
	movs r4, 0
	b _081D3BC2
	.pool
_081D3BA0:
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _081D3BAC
	movs r4, 0x1
	b _081D3BC2
_081D3BAC:
	movs r0, 0x4
	ands r0, r1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	bne _081D3BC0
	strb r0, [r4]
	bl VBlankIntrWait
	b _081D3B64
_081D3BC0:
	movs r4, 0x2
_081D3BC2:
	movs r0, 0
	str r0, [sp]
	ldr r1, =gUnknown_030012C8
	ldr r2, =0x05000006
	mov r0, sp
	bl CpuSet
	bl sub_81D41F4
	adds r0, r4, 0
	add sp, 0x4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D3B54

	thumb_func_start sub_81D3BE8
sub_81D3BE8: @ 81D3BE8
	push {r4-r6,lr}
	sub sp, 0x4
	adds r5, r0, 0
	bl sub_81D41A0
	movs r6, 0x2
	ldr r4, =gUnknown_03003144
_081D3BF6:
	bl sub_81D4170
	ldr r0, =gUnknown_030012E2
	ldrh r1, [r0]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081D3C08
	strb r6, [r4]
_081D3C08:
	movs r0, 0
	movs r1, 0
	movs r2, 0
	adds r3, r5, 0
	bl sub_81D3D70
	adds r1, r0, 0
	ldr r0, =gUnknown_030012E4
	strh r1, [r0]
	movs r0, 0x13
	ands r0, r1
	cmp r0, 0x10
	bne _081D3C34
	movs r4, 0
	b _081D3C56
	.pool
_081D3C34:
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _081D3C40
	movs r4, 0x1
	b _081D3C56
_081D3C40:
	movs r0, 0x4
	ands r0, r1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	bne _081D3C54
	strb r0, [r4]
	bl VBlankIntrWait
	b _081D3BF6
_081D3C54:
	movs r4, 0x2
_081D3C56:
	movs r0, 0
	str r0, [sp]
	ldr r1, =gUnknown_030012C8
	ldr r2, =0x05000006
	mov r0, sp
	bl CpuSet
	bl sub_81D41F4
	adds r0, r4, 0
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D3BE8

	thumb_func_start sub_81D3C7C
sub_81D3C7C: @ 81D3C7C
	push {r4,lr}
	ldr r4, =0x04000208
	movs r3, 0
	strh r3, [r4]
	ldr r2, =0x04000200
	ldrh r1, [r2]
	ldr r0, =0x0000ff3f
	ands r0, r1
	strh r0, [r2]
	movs r0, 0x1
	strh r0, [r4]
	ldr r0, =0x04000128
	strh r3, [r0]
	subs r0, 0x1A
	strh r3, [r0]
	ldr r1, =0x04000202
	movs r0, 0xC0
	strh r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3C7C

	thumb_func_start sub_81D3CBC
sub_81D3CBC: @ 81D3CBC
	push {r4-r7,lr}
	sub sp, 0x4
	ldr r5, =0x04000208
	movs r4, 0
	strh r4, [r5]
	ldr r3, =0x04000200
	ldrh r1, [r3]
	ldr r0, =0x0000ff3f
	ands r0, r1
	strh r0, [r3]
	movs r6, 0x1
	strh r6, [r5]
	ldr r0, =0x04000134
	strh r4, [r0]
	ldr r2, =0x04000128
	movs r1, 0x80
	lsls r1, 6
	adds r0, r1, 0
	strh r0, [r2]
	ldrh r0, [r2]
	ldr r7, =0x00004003
	adds r1, r7, 0
	orrs r0, r1
	strh r0, [r2]
	strh r4, [r5]
	ldrh r0, [r3]
	movs r1, 0x80
	orrs r0, r1
	strh r0, [r3]
	strh r6, [r5]
	ldr r1, =gUnknown_030012C8
	ldrb r0, [r1, 0x1]
	cmp r0, 0
	bne _081D3D0A
	str r0, [sp]
	ldr r2, =0x05000006
	mov r0, sp
	bl CpuSet
_081D3D0A:
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3CBC

	thumb_func_start sub_81D3D34
sub_81D3D34: @ 81D3D34
	ldr r0, =0x04000134
	movs r3, 0
	strh r3, [r0]
	ldr r2, =0x04000128
	movs r1, 0xA0
	lsls r1, 7
	adds r0, r1, 0
	strh r0, [r2]
	ldrh r0, [r2]
	movs r1, 0x8
	orrs r0, r1
	strh r0, [r2]
	ldr r0, =gUnknown_03003144
	strb r3, [r0]
	ldr r0, =gUnknown_030012E6
	strh r3, [r0]
	ldr r1, =gUnknown_030012E8
	movs r0, 0
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D3D34

	thumb_func_start sub_81D3D70
sub_81D3D70: @ 81D3D70
	push {r4-r6,lr}
	adds r4, r1, 0
	adds r5, r2, 0
	adds r6, r3, 0
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =gUnknown_030012C8
	ldrb r0, [r0, 0x1]
	cmp r0, 0x6
	bls _081D3D86
	b _081D3ECC
_081D3D86:
	lsls r0, 2
	ldr r1, =_081D3D98
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D3D98:
	.4byte _081D3DB4
	.4byte _081D3DC8
	.4byte _081D3DE8
	.4byte _081D3DFC
	.4byte _081D3E74
	.4byte _081D3E84
	.4byte _081D3EBC
_081D3DB4:
	bl sub_81D3CBC
	ldr r1, =gUnknown_030012C8
	movs r0, 0x1
	strb r0, [r1, 0x2]
	strb r0, [r1, 0x1]
	b _081D3ECC
	.pool
_081D3DC8:
	adds r0, r2, 0
	bl sub_81D3EE8
	lsls r0, 16
	cmp r0, 0
	beq _081D3DD8
	bl sub_81D413C
_081D3DD8:
	ldr r0, =gUnknown_03003144
	ldrb r0, [r0]
	cmp r0, 0x2
	beq _081D3DE2
	b _081D3ECC
_081D3DE2:
	b _081D3E04
	.pool
_081D3DE8:
	bl sub_81D3D34
	adds r0, r4, 0
	adds r1, r5, 0
	adds r2, r6, 0
	bl sub_81D3F1C
	ldr r1, =gUnknown_030012C8
	movs r0, 0x3
	strb r0, [r1, 0x1]
_081D3DFC:
	ldr r0, =gUnknown_03003144
	ldrb r0, [r0]
	cmp r0, 0x2
	bne _081D3E18
_081D3E04:
	ldr r1, =gUnknown_030012C8
	strb r0, [r1, 0x4]
	movs r0, 0x6
	strb r0, [r1, 0x1]
	b _081D3ECC
	.pool
_081D3E18:
	ldr r2, =gUnknown_030012E6
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	ldr r1, =gUnknown_030012E8
	ldr r0, [r1]
	adds r3, r0, 0x1
	str r3, [r1]
	ldr r1, =gUnknown_030012C8
	ldrb r0, [r1]
	cmp r0, 0
	bne _081D3E3C
	cmp r3, 0x3C
	bls _081D3E3C
	movs r0, 0x1
	strb r0, [r1, 0x4]
	movs r0, 0x6
	strb r0, [r1, 0x1]
_081D3E3C:
	ldr r4, =gUnknown_030012C8
	ldrb r0, [r4, 0x2]
	cmp r0, 0x2
	beq _081D3ECC
	ldrb r0, [r4]
	cmp r0, 0
	beq _081D3E64
	ldrh r0, [r2]
	cmp r0, 0x2
	bls _081D3E64
	bl sub_81D413C
	movs r0, 0x2
	b _081D3ECA
	.pool
_081D3E64:
	bl sub_81D413C
	ldr r1, =gUnknown_030012C8
	movs r0, 0x2
	strb r0, [r1, 0x2]
	b _081D3ECC
	.pool
_081D3E74:
	bl sub_81D3CBC
	ldr r1, =gUnknown_030012C8
	movs r0, 0x5
	strb r0, [r1, 0x1]
	b _081D3ECC
	.pool
_081D3E84:
	ldr r0, =gUnknown_030012C8
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081D3E98
	ldr r0, =gUnknown_030012E6
	ldrh r0, [r0]
	cmp r0, 0x2
	bls _081D3E98
	bl sub_81D413C
_081D3E98:
	ldr r1, =gUnknown_030012E6
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x3C
	bls _081D3ECC
	ldr r0, =gUnknown_030012C8
	movs r1, 0x1
	strb r1, [r0, 0x4]
	movs r1, 0x6
	strb r1, [r0, 0x1]
	b _081D3ECC
	.pool
_081D3EBC:
	ldr r4, =gUnknown_030012C8
	ldrb r0, [r4, 0x2]
	cmp r0, 0
	beq _081D3ECC
	bl sub_81D3C7C
	movs r0, 0
_081D3ECA:
	strb r0, [r4, 0x2]
_081D3ECC:
	ldr r2, =gUnknown_030012C8
	ldrb r0, [r2, 0x2]
	ldrb r1, [r2, 0x4]
	lsls r1, 2
	orrs r0, r1
	ldrb r1, [r2, 0x3]
	lsls r1, 4
	orrs r0, r1
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D3D70

	thumb_func_start sub_81D3EE8
sub_81D3EE8: @ 81D3EE8
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =0x04000128
	ldr r0, [r0]
	movs r1, 0xC
	ands r0, r1
	cmp r0, 0x8
	bne _081D3F0C
	cmp r2, 0
	beq _081D3F0C
	ldr r1, =gUnknown_030012C8
	movs r0, 0x1
	b _081D3F10
	.pool
_081D3F0C:
	ldr r1, =gUnknown_030012C8
	movs r0, 0
_081D3F10:
	strb r0, [r1]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D3EE8

	thumb_func_start sub_81D3F1C
sub_81D3F1C: @ 81D3F1C
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldr r3, =gUnknown_030012C8
	ldrb r0, [r3]
	cmp r0, 0
	beq _081D3F54
	ldr r2, =0x04000128
	ldrh r0, [r2]
	movs r1, 0x1
	orrs r0, r1
	strh r0, [r2]
	str r5, [r3, 0x8]
	ldr r0, =0x04000120
	str r4, [r0]
	lsrs r0, r4, 2
	adds r0, 0x1
	str r0, [r3, 0x10]
	bl sub_81D3F68
	b _081D3F5C
	.pool
_081D3F54:
	ldr r1, =0x04000128
	ldrh r0, [r1]
	strh r0, [r1]
	str r2, [r3, 0x8]
_081D3F5C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3F1C

	thumb_func_start sub_81D3F68
sub_81D3F68: @ 81D3F68
	ldr r1, =0x0400010c
	ldr r2, =0x0000fda7
	adds r0, r2, 0
	strh r0, [r1]
	ldr r0, =0x0400010e
	movs r2, 0x40
	strh r2, [r0]
	ldr r3, =0x04000208
	movs r0, 0
	strh r0, [r3]
	adds r1, 0xF4
	ldrh r0, [r1]
	orrs r0, r2
	strh r0, [r1]
	movs r0, 0x1
	strh r0, [r3]
	bx lr
	.pool
	thumb_func_end sub_81D3F68

	thumb_func_start sub_81D3F9C
sub_81D3F9C: @ 81D3F9C
	push {lr}
	bl sub_81D414C
	bl sub_81D413C
	pop {r0}
	bx r0
	thumb_func_end sub_81D3F9C

	thumb_func_start sub_81D3FAC
sub_81D3FAC: @ 81D3FAC
	push {r4-r6,lr}
	sub sp, 0x8
	ldr r2, =gUnknown_030012C8
	ldrb r0, [r2, 0x1]
	adds r3, r2, 0
	cmp r0, 0x3
	beq _081D4034
	cmp r0, 0x3
	bgt _081D3FC8
	cmp r0, 0x1
	beq _081D3FD0
	b _081D412A
	.pool
_081D3FC8:
	cmp r0, 0x5
	bne _081D3FCE
	b _081D40FC
_081D3FCE:
	b _081D412A
_081D3FD0:
	ldr r1, =0x0400012a
	ldr r2, =0x0000ccd0
	adds r0, r2, 0
	strh r0, [r1]
	ldr r0, =0x04000120
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp]
	str r1, [sp, 0x4]
	movs r1, 0
	movs r2, 0
	movs r4, 0
	ldr r6, =0x0000ccd0
	ldr r5, =0x0000ffff
_081D3FEC:
	lsls r0, r1, 1
	add r0, sp
	ldrh r0, [r0]
	cmp r0, r6
	bne _081D4010
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	b _081D401A
	.pool
_081D4010:
	cmp r0, r5
	beq _081D401A
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
_081D401A:
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x3
	bls _081D3FEC
	cmp r2, 0x2
	beq _081D402A
	b _081D412A
_081D402A:
	cmp r4, 0
	beq _081D4030
	b _081D412A
_081D4030:
	strb r2, [r3, 0x1]
	b _081D412A
_081D4034:
	ldr r0, =0x04000120
	ldr r4, [r0]
	ldr r0, [r2, 0xC]
	cmp r0, 0
	bne _081D404A
	ldrb r0, [r2]
	cmp r0, 0
	bne _081D404A
	lsrs r0, r4, 2
	adds r0, 0x1
	str r0, [r2, 0x10]
_081D404A:
	ldrb r0, [r3]
	cmp r0, 0x1
	bne _081D4080
	ldr r1, [r3, 0xC]
	ldr r0, [r3, 0x10]
	cmp r1, r0
	bge _081D4074
	ldr r2, =0x04000120
	ldr r0, [r3, 0x8]
	lsls r1, 2
	adds r1, r0
	ldr r0, [r1]
	str r0, [r2]
	ldr r0, [r3, 0x14]
	ldr r1, [r1]
	adds r0, r1
	str r0, [r3, 0x14]
	b _081D40BA
	.pool
_081D4074:
	ldr r1, =0x04000120
	ldr r0, [r3, 0x14]
	b _081D40B8
	.pool
_081D4080:
	ldr r1, [r3, 0xC]
	cmp r1, 0
	ble _081D40A0
	ldr r0, [r3, 0x10]
	adds r0, 0x1
	cmp r1, r0
	bge _081D40A0
	ldr r0, [r3, 0x8]
	lsls r1, 2
	adds r1, r0
	subs r1, 0x4
	str r4, [r1]
	ldr r0, [r3, 0x14]
	adds r0, r4
	str r0, [r3, 0x14]
	b _081D40B4
_081D40A0:
	ldr r0, [r3, 0xC]
	cmp r0, 0
	beq _081D40B4
	ldr r0, [r3, 0x14]
	cmp r0, r4
	bne _081D40B0
	movs r0, 0x1
	b _081D40B2
_081D40B0:
	movs r0, 0x2
_081D40B2:
	strb r0, [r3, 0x3]
_081D40B4:
	ldr r1, =gUnknown_030012E8
	movs r0, 0
_081D40B8:
	str r0, [r1]
_081D40BA:
	ldr r1, [r3, 0xC]
	adds r1, 0x1
	str r1, [r3, 0xC]
	ldr r0, [r3, 0x10]
	adds r0, 0x2
	cmp r1, r0
	bge _081D40EA
	ldrb r0, [r3]
	cmp r0, 0
	beq _081D40E4
	ldr r0, =0x0400010e
	ldrh r1, [r0]
	movs r2, 0x80
	orrs r1, r2
	strh r1, [r0]
	b _081D412A
	.pool
_081D40E4:
	bl sub_81D413C
	b _081D412A
_081D40EA:
	movs r0, 0
	movs r1, 0x4
	strb r1, [r3, 0x1]
	ldr r1, =gUnknown_030012E6
	strh r0, [r1]
	b _081D412A
	.pool
_081D40FC:
	ldrb r3, [r2]
	cmp r3, 0
	bne _081D4108
	ldr r1, =0x0400012a
	ldrb r0, [r2, 0x3]
	strh r0, [r1]
_081D4108:
	ldr r0, =0x04000120
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp]
	str r1, [sp, 0x4]
	mov r0, sp
	ldrh r1, [r0, 0x2]
	subs r0, r1, 0x1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	bhi _081D412A
	cmp r3, 0x1
	bne _081D4126
	strb r1, [r2, 0x3]
_081D4126:
	movs r0, 0x6
	strb r0, [r2, 0x1]
_081D412A:
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D3FAC

	thumb_func_start sub_81D413C
sub_81D413C: @ 81D413C
	ldr r0, =0x04000128
	ldrh r1, [r0]
	movs r2, 0x80
	orrs r1, r2
	strh r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_81D413C

	thumb_func_start sub_81D414C
sub_81D414C: @ 81D414C
	ldr r2, =0x0400010e
	ldrh r1, [r2]
	ldr r0, =0x0000ff7f
	ands r0, r1
	strh r0, [r2]
	ldr r1, =0x0400010c
	ldr r2, =0x0000fda7
	adds r0, r2, 0
	strh r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D414C

	thumb_func_start sub_81D4170
sub_81D4170: @ 81D4170
	push {r4,lr}
	ldr r0, =0x04000130
	ldrh r0, [r0]
	ldr r2, =0x000003ff
	adds r1, r2, 0
	eors r1, r0
	ldr r4, =gUnknown_030012E2
	ldr r3, =gUnknown_030012E0
	ldrh r2, [r3]
	adds r0, r1, 0
	bics r0, r2
	strh r0, [r4]
	strh r1, [r3]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D4170

	thumb_func_start sub_81D41A0
sub_81D41A0: @ 81D41A0
	ldr r1, =gUnknown_030012EC
	ldr r0, =0x04000208
	ldrh r0, [r0]
	strh r0, [r1]
	ldr r1, =gUnknown_030012EE
	ldr r0, =0x04000200
	ldrh r0, [r0]
	strh r0, [r1]
	ldr r1, =gUnknown_030012F0
	ldr r0, =0x0400010e
	ldrh r0, [r0]
	strh r0, [r1]
	ldr r1, =gUnknown_030012F2
	ldr r0, =0x04000128
	ldrh r0, [r0]
	strh r0, [r1]
	ldr r1, =gUnknown_030012F4
	ldr r0, =0x04000134
	ldrh r0, [r0]
	strh r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D41A0

	thumb_func_start sub_81D41F4
sub_81D41F4: @ 81D41F4
	ldr r1, =0x04000208
	ldr r0, =gUnknown_030012EC
	ldrh r0, [r0]
	strh r0, [r1]
	subs r1, 0x8
	ldr r0, =gUnknown_030012EE
	ldrh r0, [r0]
	strh r0, [r1]
	subs r1, 0xF2
	ldr r0, =gUnknown_030012F0
	ldrh r0, [r0]
	strh r0, [r1]
	adds r1, 0x1A
	ldr r0, =gUnknown_030012F2
	ldrh r0, [r0]
	strh r0, [r1]
	adds r1, 0xC
	ldr r0, =gUnknown_030012F4
	ldrh r0, [r0]
	strh r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D41F4

	thumb_func_start sub_81D4238
sub_81D4238: @ 81D4238
	push {lr}
	sub sp, 0x4
	movs r0, 0
	str r0, [sp]
	ldr r1, =gUnknown_030012C8
	ldr r2, =0x05000006
	mov r0, sp
	bl CpuSet
	add sp, 0x4
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D4238

	thumb_func_start sub_81D4258
sub_81D4258: @ 81D4258
	push {lr}
	sub sp, 0x4
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrb r1, [r0, 0x5]
	ldrb r2, [r0, 0x4]
	movs r0, 0x1
	mov r3, sp
	bl TryGetFieldObjectIdByLocalIdAndMap
	mov r0, sp
	ldrb r0, [r0]
	add sp, 0x4
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D4258

	thumb_func_start sub_81D427C
sub_81D427C: @ 81D427C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	bl sub_81D4258
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 2
	ldr r2, =gMapObjects
	adds r5, r1, r2
	ldr r4, =gUnknown_030012F8
	ldr r3, =gUnknown_02037590
	ldrb r1, [r3, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r0, [r0, 0x14]
	ldrh r1, [r5, 0x10]
	subs r0, r1
	strh r0, [r4]
	ldr r4, =gUnknown_030012FA
	ldrb r1, [r3, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r0, [r0, 0x16]
	ldrh r1, [r5, 0x12]
	subs r0, r1
	strh r0, [r4]
	movs r0, 0
	mov r8, r0
	ldr r2, =gUnknown_030012FC
	movs r1, 0
_081D42CA:
	mov r3, r8
	adds r0, r3, r2
	strb r1, [r0]
	mov r0, r8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	cmp r0, 0x3
	bls _081D42CA
	ldr r2, =gMapObjects
	ldr r0, =gUnknown_02037590
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	adds r2, r0, r2
	movs r4, 0x14
	ldrsh r1, [r2, r4]
	movs r6, 0x10
	ldrsh r0, [r2, r6]
	cmp r1, r0
	bne _081D4304
	movs r0, 0x16
	ldrsh r1, [r2, r0]
	movs r3, 0x12
	ldrsh r0, [r2, r3]
	cmp r1, r0
	beq _081D4356
_081D4304:
	ldr r0, =0x0000403a
	bl VarGet
	lsls r0, 16
	movs r1, 0xE0
	lsls r1, 11
	ands r1, r0
	cmp r1, 0
	bne _081D4338
	ldrb r1, [r5, 0x1]
	movs r0, 0x21
	negs r0, r0
	ands r0, r1
	b _081D433E
	.pool
_081D4338:
	ldrb r0, [r5, 0x1]
	movs r1, 0x20
	orrs r0, r1
_081D433E:
	strb r0, [r5, 0x1]
	ldr r0, =0x0000403a
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x9
	bl __umodsi3
	lsls r0, 16
	cmp r0, 0
	bne _081D4360
_081D4356:
	movs r0, 0
	b _081D4816
	.pool
_081D4360:
	movs r4, 0
	mov r8, r4
	ldr r6, =gMapObjects
	mov r10, r6
_081D4368:
	ldr r3, =gUnknown_02037590
	ldrb r1, [r3, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	mov r1, r10
	adds r4, r0, r1
	mov r2, r8
	lsls r1, r2, 2
	ldr r6, =gUnknown_0862608C
	adds r0, r1, r6
	movs r6, 0x14
	ldrsh r2, [r4, r6]
	movs r6, 0
	ldrsh r0, [r0, r6]
	ldr r6, =gMapObjects
	mov r9, r6
	mov r12, r3
	adds r7, r1, 0
	cmp r2, r0
	beq _081D4394
	b _081D449E
_081D4394:
	movs r3, 0
	ldr r1, =gUnknown_0862608E
	adds r0, r7, r1
	movs r2, 0x16
	ldrsh r1, [r4, r2]
	movs r4, 0
	ldrsh r2, [r0, r4]
	cmp r1, r2
	bge _081D43C0
	movs r6, 0x12
	ldrsh r0, [r5, r6]
	cmp r0, r2
	bgt _081D43CA
	b _081D449E
	.pool
_081D43C0:
	movs r1, 0x12
	ldrsh r0, [r5, r1]
	cmp r0, r2
	blt _081D43CA
	movs r3, 0x1
_081D43CA:
	cmp r3, 0
	bne _081D449E
	ldr r0, =gUnknown_030012F8
	movs r2, 0
	ldrsh r0, [r0, r2]
	cmp r0, 0
	ble _081D4410
	movs r3, 0x10
	ldrsh r2, [r5, r3]
	adds r2, 0x1
	mov r4, r12
	ldrb r1, [r4, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	add r0, r9
	movs r6, 0x14
	ldrsh r0, [r0, r6]
	cmp r2, r0
	bne _081D4446
	ldrh r0, [r5, 0x10]
	adds r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x12
	ldrsh r1, [r5, r2]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4446
_081D4408:
	movs r0, 0x4
	b _081D4816
	.pool
_081D4410:
	cmp r0, 0
	bge _081D4446
	movs r3, 0x10
	ldrsh r2, [r5, r3]
	subs r2, 0x1
	mov r4, r12
	ldrb r1, [r4, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	add r0, r9
	movs r6, 0x14
	ldrsh r0, [r0, r6]
	cmp r2, r0
	bne _081D4446
	ldrh r0, [r5, 0x10]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x12
	ldrsh r1, [r5, r2]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4446
	b _081D45AA
_081D4446:
	ldr r0, =gUnknown_02037590
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	add r0, r10
	movs r3, 0x10
	ldrsh r1, [r5, r3]
	movs r4, 0x14
	ldrsh r0, [r0, r4]
	cmp r1, r0
	bne _081D449E
	ldr r0, =gUnknown_030012FA
	movs r6, 0
	ldrsh r0, [r0, r6]
	cmp r0, 0
	ble _081D4488
	adds r0, r1, 0
	ldrh r1, [r5, 0x12]
	subs r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D449E
_081D447C:
	movs r0, 0x2
	b _081D4816
	.pool
_081D4488:
	movs r2, 0x10
	ldrsh r0, [r5, r2]
	ldrh r1, [r5, 0x12]
	adds r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	bne _081D4538
_081D449E:
	ldr r2, =gUnknown_02037590
	ldrb r1, [r2, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	mov r3, r10
	adds r4, r0, r3
	ldr r6, =gUnknown_0862608C
	ldr r1, =gUnknown_0862608E
	adds r0, r7, r1
	movs r3, 0x16
	ldrsh r1, [r4, r3]
	movs r3, 0
	ldrsh r0, [r0, r3]
	ldr r3, =gMapObjects
	mov r9, r3
	mov r12, r2
	cmp r1, r0
	beq _081D44C6
	b _081D45D0
_081D44C6:
	movs r3, 0
	adds r0, r7, r6
	movs r6, 0x14
	ldrsh r1, [r4, r6]
	movs r4, 0
	ldrsh r2, [r0, r4]
	cmp r1, r2
	bge _081D44F0
	movs r6, 0x10
	ldrsh r0, [r5, r6]
	cmp r0, r2
	bgt _081D44FA
	b _081D45D0
	.pool
_081D44F0:
	movs r1, 0x10
	ldrsh r0, [r5, r1]
	cmp r0, r2
	blt _081D44FA
	movs r3, 0x1
_081D44FA:
	cmp r3, 0
	bne _081D45D0
	ldr r0, =gUnknown_030012FA
	movs r2, 0
	ldrsh r0, [r0, r2]
	cmp r0, 0
	ble _081D4540
	movs r3, 0x12
	ldrsh r2, [r5, r3]
	adds r2, 0x1
	mov r4, r12
	ldrb r1, [r4, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	add r0, r9
	movs r6, 0x16
	ldrsh r0, [r0, r6]
	cmp r2, r0
	bne _081D4576
	movs r1, 0x10
	ldrsh r0, [r5, r1]
	ldrh r1, [r5, 0x12]
	adds r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4576
_081D4538:
	movs r0, 0x1
	b _081D4816
	.pool
_081D4540:
	cmp r0, 0
	bge _081D4576
	movs r3, 0x12
	ldrsh r2, [r5, r3]
	subs r2, 0x1
	mov r4, r12
	ldrb r1, [r4, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	add r0, r9
	movs r6, 0x16
	ldrsh r0, [r0, r6]
	cmp r2, r0
	bne _081D4576
	movs r1, 0x10
	ldrsh r0, [r5, r1]
	ldrh r1, [r5, 0x12]
	subs r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4576
	b _081D447C
_081D4576:
	ldr r0, =gUnknown_02037590
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	add r0, r10
	movs r2, 0x12
	ldrsh r1, [r5, r2]
	movs r3, 0x16
	ldrsh r0, [r0, r3]
	cmp r1, r0
	bne _081D45D0
	ldr r0, =gUnknown_030012F8
	movs r4, 0
	ldrsh r0, [r0, r4]
	cmp r0, 0
	ble _081D45B8
	ldrh r0, [r5, 0x10]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D45D0
_081D45AA:
	movs r0, 0x3
	b _081D4816
	.pool
_081D45B8:
	ldrh r0, [r5, 0x10]
	adds r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x12
	ldrsh r1, [r5, r2]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D45D0
	b _081D4408
_081D45D0:
	mov r0, r8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	cmp r0, 0x3
	bhi _081D45E0
	b _081D4368
_081D45E0:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81D4C14
	lsls r0, 24
	cmp r0, 0
	beq _081D461C
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4C58
	lsls r0, 24
	cmp r0, 0
	beq _081D4604
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D4604:
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4CE0
	lsls r0, 24
	cmp r0, 0
	bne _081D4614
	b _081D447C
_081D4614:
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D461C:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81D4C9C
	lsls r0, 24
	cmp r0, 0
	beq _081D4658
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4C58
	lsls r0, 24
	cmp r0, 0
	beq _081D4640
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D4640:
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4CE0
	lsls r0, 24
	cmp r0, 0
	bne _081D4650
	b _081D4538
_081D4650:
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D4658:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81D4C58
	lsls r0, 24
	cmp r0, 0
	beq _081D4694
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4C14
	lsls r0, 24
	cmp r0, 0
	beq _081D467C
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D467C:
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4C9C
	lsls r0, 24
	cmp r0, 0
	bne _081D468C
	b _081D4408
_081D468C:
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D4694:
	adds r0, r5, 0
	movs r1, 0
	bl sub_81D4CE0
	lsls r0, 24
	cmp r0, 0
	beq _081D46D0
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4C14
	lsls r0, 24
	cmp r0, 0
	beq _081D46B8
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D46B8:
	adds r0, r5, 0
	movs r1, 0x1
	bl sub_81D4C9C
	lsls r0, 24
	cmp r0, 0
	bne _081D46C8
	b _081D45AA
_081D46C8:
	movs r0, 0x2
	bl sub_81D4D24
	b _081D4812
_081D46D0:
	ldr r0, =gUnknown_030012FA
	movs r3, 0
	ldrsh r0, [r0, r3]
	cmp r0, 0
	bne _081D476E
	ldr r2, =gMapObjects
	ldr r0, =gUnknown_02037590
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r4, 0x12
	ldrsh r1, [r0, r4]
	ldrh r2, [r5, 0x12]
	movs r6, 0x12
	ldrsh r0, [r5, r6]
	cmp r1, r0
	ble _081D470C
	movs r1, 0x10
	ldrsh r0, [r5, r1]
	subs r1, r2, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D470C
	b _081D447C
_081D470C:
	ldr r2, =gMapObjects
	ldr r0, =gUnknown_02037590
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r2, 0x12
	ldrsh r1, [r0, r2]
	ldrh r2, [r5, 0x12]
	movs r3, 0x12
	ldrsh r0, [r5, r3]
	cmp r1, r0
	bge _081D473E
	movs r4, 0x10
	ldrsh r0, [r5, r4]
	adds r1, r2, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D473E
	b _081D4538
_081D473E:
	movs r6, 0x10
	ldrsh r0, [r5, r6]
	ldrh r1, [r5, 0x12]
	subs r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4756
	b _081D447C
_081D4756:
	movs r1, 0x10
	ldrsh r0, [r5, r1]
	ldrh r1, [r5, 0x12]
	adds r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D476E
	b _081D4538
_081D476E:
	ldr r0, =gUnknown_030012F8
	movs r2, 0
	ldrsh r0, [r0, r2]
	cmp r0, 0
	bne _081D480C
	ldr r2, =gMapObjects
	ldr r0, =gUnknown_02037590
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r3, 0x10
	ldrsh r1, [r0, r3]
	ldrh r2, [r5, 0x10]
	movs r4, 0x10
	ldrsh r0, [r5, r4]
	cmp r1, r0
	ble _081D47AA
	subs r0, r2, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r6, 0x12
	ldrsh r1, [r5, r6]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D47AA
	b _081D45AA
_081D47AA:
	ldr r2, =gMapObjects
	ldr r0, =gUnknown_02037590
	ldrb r1, [r0, 0x5]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r2, 0x10
	ldrsh r1, [r0, r2]
	ldrh r2, [r5, 0x10]
	movs r3, 0x10
	ldrsh r0, [r5, r3]
	cmp r1, r0
	bge _081D47DC
	adds r0, r2, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r4, 0x12
	ldrsh r1, [r5, r4]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D47DC
	b _081D4408
_081D47DC:
	ldrh r0, [r5, 0x10]
	adds r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r6, 0x12
	ldrsh r1, [r5, r6]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D47F4
	b _081D4408
_081D47F4:
	ldrh r0, [r5, 0x10]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x12
	ldrsh r1, [r5, r2]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D480C
	b _081D45AA
_081D480C:
	movs r0, 0
	bl sub_81D4890
_081D4812:
	lsls r0, 24
	lsrs r0, 24
_081D4816:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D427C

	thumb_func_start sub_81D4834
sub_81D4834: @ 81D4834
	push {r4,lr}
	lsls r0, 16
	lsls r1, 16
	lsrs r4, r1, 16
	ldr r3, =gMapObjects
	ldr r1, =gUnknown_02037590
	ldrb r2, [r1, 0x5]
	lsls r1, r2, 3
	adds r1, r2
	lsls r1, 2
	adds r2, r1, r3
	movs r3, 0x10
	ldrsh r1, [r2, r3]
	lsrs r3, r0, 16
	asrs r0, 16
	cmp r1, r0
	bne _081D4870
	movs r0, 0x12
	ldrsh r1, [r2, r0]
	lsls r0, r4, 16
	asrs r0, 16
	cmp r1, r0
	bne _081D4870
	movs r0, 0
	b _081D4888
	.pool
_081D4870:
	lsls r0, r3, 16
	asrs r0, 16
	lsls r1, r4, 16
	asrs r1, 16
	bl MapGridGetMetatileBehaviorAt
	lsls r0, 24
	lsrs r0, 24
	bl sub_8088E64
	lsls r0, 24
	lsrs r0, 24
_081D4888:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D4834

	thumb_func_start sub_81D4890
sub_81D4890: @ 81D4890
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	movs r5, 0
	bl sub_81D4258
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 2
	ldr r0, =gMapObjects
	adds r4, r1, r0
	movs r1, 0
	ldr r3, =gUnknown_030012FC
	movs r2, 0
_081D48B0:
	adds r0, r1, r3
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x3
	bls _081D48B0
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	ldrh r1, [r4, 0x12]
	subs r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081D48E8
	cmp r6, 0x2
	beq _081D48E8
	ldr r0, =gUnknown_030012FC
	adds r0, r5, r0
	movs r1, 0x2
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_081D48E8:
	ldrh r0, [r4, 0x10]
	adds r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x12
	ldrsh r1, [r4, r2]
	bl sub_81D4834
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081D4912
	cmp r6, 0x4
	beq _081D4912
	ldr r0, =gUnknown_030012FC
	adds r0, r5, r0
	movs r1, 0x4
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_081D4912:
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	ldrh r1, [r4, 0x12]
	adds r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x1
	bne _081D493A
	cmp r6, 0x1
	beq _081D493A
	ldr r0, =gUnknown_030012FC
	adds r0, r5, r0
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_081D493A:
	ldrh r0, [r4, 0x10]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x12
	ldrsh r1, [r4, r2]
	bl sub_81D4834
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081D4964
	cmp r6, 0x3
	beq _081D4964
	ldr r0, =gUnknown_030012FC
	adds r0, r5, r0
	movs r1, 0x3
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_081D4964:
	cmp r5, 0x1
	bhi _081D4974
	ldr r0, =gUnknown_030012FC
	b _081D4988
	.pool
_081D4974:
	ldr r4, =gUnknown_030012FC
	ldr r0, =0x0000403a
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	adds r1, r5, 0
	bl __modsi3
	adds r0, r4
_081D4988:
	ldrb r0, [r0]
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D4890

	thumb_func_start sub_81D4998
sub_81D4998: @ 81D4998
	push {r4,lr}
	ldr r4, =0x0000403a
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	lsrs r2, r0, 16
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldr r0, =0x0000391a
	cmp r1, r0
	bne _081D49E0
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	ldr r0, =0x0000270e
	cmp r2, r0
	bls _081D49D8
	adds r0, r4, 0
	movs r1, 0
	bl VarSet
	b _081D49E0
	.pool
_081D49D8:
	adds r0, r4, 0
	adds r1, r2, 0
	bl VarSet
_081D49E0:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81D4998

	thumb_func_start FieldObjectIsFarawayIslandMew
@ bool8 FieldObjectIsFarawayIslandMew(struct npc_state *fieldObject)
FieldObjectIsFarawayIslandMew: @ 81D49E8
	push {lr}
	adds r2, r0, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldr r0, =0x0000391a
	cmp r1, r0
	bne _081D4A0C
	ldrb r0, [r2, 0x5]
	cmp r0, 0xE5
	bne _081D4A0C
	movs r0, 0x1
	b _081D4A0E
	.pool
_081D4A0C:
	movs r0, 0
_081D4A0E:
	pop {r1}
	bx r1
	thumb_func_end FieldObjectIsFarawayIslandMew

	thumb_func_start unown_chamber_related
unown_chamber_related: @ 81D4A14
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldr r0, =0x0000391a
	cmp r1, r0
	bne _081D4A50
	movs r0, 0xE5
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081D4A50
	ldr r0, =0x000002ce
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _081D4A50
	movs r0, 0x1
	b _081D4A52
	.pool
_081D4A50:
	movs r0, 0
_081D4A52:
	pop {r1}
	bx r1
	thumb_func_end unown_chamber_related

	thumb_func_start sub_81D4A58
sub_81D4A58: @ 81D4A58
	push {r4,lr}
	ldr r4, =0x0000403a
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	ldr r1, =0xffff0000
	cmp r0, r1
	beq _081D4A88
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	movs r1, 0xC0
	lsls r1, 10
	ands r1, r0
	cmp r1, 0
	bne _081D4A88
	movs r0, 0x1
	b _081D4A8A
	.pool
_081D4A88:
	movs r0, 0
_081D4A8A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D4A58

	thumb_func_start sub_81D4A90
sub_81D4A90: @ 81D4A90
	push {r4-r6,lr}
	sub sp, 0x4
	bl sub_81D4258
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 2
	ldr r0, =gMapObjects
	adds r5, r1, r0
	ldrb r1, [r5, 0x1]
	movs r0, 0x21
	negs r0, r0
	ands r0, r1
	strb r0, [r5, 0x1]
	ldr r0, =gSpecialVar_0x8004
	ldrh r4, [r0]
	cmp r4, 0x1
	bne _081D4AF8
	ldrb r0, [r5, 0x3]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r5, 0x3]
	ldr r3, =gSprites
	ldrb r1, [r5, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x42
	ldrb r2, [r0]
	movs r1, 0x3F
	ands r1, r2
	movs r2, 0x80
	orrs r1, r2
	strb r1, [r0]
	ldrb r1, [r5, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x43
	strb r4, [r0]
	b _081D4BC4
	.pool
_081D4AF8:
	ldr r0, =0x0000403a
	ldr r1, =0x0000ffff
	bl VarSet
	ldrb r0, [r5, 0x3]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r5, 0x3]
	ldr r6, =gSprites
	ldrb r1, [r5, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x42
	ldrb r2, [r0]
	movs r1, 0x3F
	ands r1, r2
	movs r2, 0x80
	orrs r1, r2
	strb r1, [r0]
	ldr r0, =gScriptFacing
	ldrh r0, [r0]
	cmp r0, 0x2
	beq _081D4B3A
	ldrb r0, [r5, 0x4]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r6
	adds r1, 0x43
	movs r0, 0x1
	strb r0, [r1]
_081D4B3A:
	ldr r4, =gFieldEffectObjectPaletteInfo1
	adds r0, r4, 0
	bl LoadSpritePalette
	ldrh r0, [r4, 0x4]
	bl IndexOfSpritePaletteTag
	lsls r0, 24
	lsrs r0, 24
	bl sub_80ABE18
	ldrh r1, [r5, 0x10]
	mov r0, sp
	strh r1, [r0]
	ldrh r0, [r5, 0x12]
	mov r4, sp
	adds r4, 0x2
	strh r0, [r4]
	mov r0, sp
	adds r1, r4, 0
	movs r2, 0x8
	movs r3, 0x8
	bl sub_80930E0
	ldr r0, =gFieldEffectObjectTemplatePointers
	ldr r0, [r0, 0x3C]
	mov r1, sp
	movs r2, 0
	ldrsh r1, [r1, r2]
	movs r3, 0
	ldrsh r2, [r4, r3]
	ldrb r4, [r5, 0x4]
	lsls r3, r4, 4
	adds r3, r4
	lsls r3, 2
	adds r3, r6
	adds r3, 0x43
	ldrb r3, [r3]
	subs r3, 0x1
	lsls r3, 24
	lsrs r3, 24
	bl CreateSpriteAtEnd
	ldr r1, =gUnknown_0203CF50
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x40
	beq _081D4BC4
	ldrb r0, [r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r6
	adds r3, r1, 0
	adds r3, 0x3E
	ldrb r0, [r3]
	movs r2, 0x2
	orrs r0, r2
	strb r0, [r3]
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	movs r2, 0x8
	orrs r0, r2
	strb r0, [r1, 0x5]
	ldr r0, =SpriteCallbackDummy
	str r0, [r1, 0x1C]
_081D4BC4:
	add sp, 0x4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D4A90

	thumb_func_start sub_81D4BEC
sub_81D4BEC: @ 81D4BEC
	push {lr}
	ldr r1, =gUnknown_0203CF50
	ldrb r0, [r1]
	cmp r0, 0x40
	beq _081D4C06
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySprite
_081D4C06:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D4BEC

	thumb_func_start sub_81D4C14
sub_81D4C14: @ 81D4C14
	push {r4,lr}
	adds r2, r0, 0
	lsls r1, 24
	lsrs r4, r1, 24
	ldr r0, =gUnknown_030012FA
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0
	ble _081D4C50
	movs r1, 0x10
	ldrsh r0, [r2, r1]
	ldrh r1, [r2, 0x12]
	subs r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4C50
	ldr r0, =gUnknown_030012FC
	adds r0, r4, r0
	movs r1, 0x2
	strb r1, [r0]
	movs r0, 0x1
	b _081D4C52
	.pool
_081D4C50:
	movs r0, 0
_081D4C52:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D4C14

	thumb_func_start sub_81D4C58
sub_81D4C58: @ 81D4C58
	push {r4,lr}
	adds r2, r0, 0
	lsls r1, 24
	lsrs r4, r1, 24
	ldr r0, =gUnknown_030012F8
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0
	bge _081D4C94
	ldrh r0, [r2, 0x10]
	adds r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r3, 0x12
	ldrsh r1, [r2, r3]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4C94
	ldr r0, =gUnknown_030012FC
	adds r0, r4, r0
	movs r1, 0x4
	strb r1, [r0]
	movs r0, 0x1
	b _081D4C96
	.pool
_081D4C94:
	movs r0, 0
_081D4C96:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D4C58

	thumb_func_start sub_81D4C9C
sub_81D4C9C: @ 81D4C9C
	push {r4,lr}
	adds r2, r0, 0
	lsls r1, 24
	lsrs r4, r1, 24
	ldr r0, =gUnknown_030012FA
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0
	bge _081D4CD8
	movs r1, 0x10
	ldrsh r0, [r2, r1]
	ldrh r1, [r2, 0x12]
	adds r1, 0x1
	lsls r1, 16
	asrs r1, 16
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4CD8
	ldr r0, =gUnknown_030012FC
	adds r0, r4, r0
	movs r1, 0x1
	strb r1, [r0]
	movs r0, 0x1
	b _081D4CDA
	.pool
_081D4CD8:
	movs r0, 0
_081D4CDA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D4C9C

	thumb_func_start sub_81D4CE0
sub_81D4CE0: @ 81D4CE0
	push {r4,lr}
	adds r2, r0, 0
	lsls r1, 24
	lsrs r4, r1, 24
	ldr r0, =gUnknown_030012F8
	movs r1, 0
	ldrsh r0, [r0, r1]
	cmp r0, 0
	ble _081D4D1C
	ldrh r0, [r2, 0x10]
	subs r0, 0x1
	lsls r0, 16
	asrs r0, 16
	movs r3, 0x12
	ldrsh r1, [r2, r3]
	bl sub_81D4834
	lsls r0, 24
	cmp r0, 0
	beq _081D4D1C
	ldr r0, =gUnknown_030012FC
	adds r0, r4, r0
	movs r1, 0x3
	strb r1, [r0]
	movs r0, 0x1
	b _081D4D1E
	.pool
_081D4D1C:
	movs r0, 0
_081D4D1E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D4CE0

	thumb_func_start sub_81D4D24
sub_81D4D24: @ 81D4D24
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r5, =gUnknown_030012FC
	ldr r0, =0x0000403a
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	adds r1, r4, 0
	bl __modsi3
	adds r0, r5
	ldrb r0, [r0]
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D4D24

	thumb_func_start sub_81D4D50
sub_81D4D50: @ 81D4D50
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	mov r8, r2
	mov r1, sp
	ldr r4, =0x04000208
	ldrh r0, [r4]
	strh r0, [r1]
	movs r0, 0
	strh r0, [r4]
	ldr r1, =gIntrTable
	ldr r0, =sub_81D3FAC
	str r0, [r1, 0x4]
	ldr r0, =sub_81D3F9C
	str r0, [r1, 0x8]
	bl sub_81D41A0
	bl sub_81D4238
	ldr r2, =0x04000200
	ldrh r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strh r0, [r2]
	mov r0, sp
	ldrh r0, [r0]
	strh r0, [r4]
	movs r0, 0
	strh r0, [r5]
	str r6, [r5, 0x4]
	mov r0, r8
	str r0, [r5, 0x8]
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D4D50

	thumb_func_start sub_81D4DB8
sub_81D4DB8: @ 81D4DB8
	push {r4,lr}
	sub sp, 0x4
	mov r1, sp
	ldr r4, =0x04000208
	ldrh r0, [r4]
	strh r0, [r1]
	movs r0, 0
	strh r0, [r4]
	bl sub_81D4238
	bl sub_81D41F4
	bl RestoreSerialTimer3IntrHandlers
	mov r0, sp
	ldrh r0, [r0]
	strh r0, [r4]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D4DB8

	thumb_func_start sub_81D4DE8
sub_81D4DE8: @ 81D4DE8
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r5, 0
	ldr r1, [r4, 0x4]
	ldr r2, [r4, 0x8]
	movs r0, 0x1
	movs r3, 0
	bl sub_81D3D70
	adds r1, r0, 0
	strh r1, [r4]
	movs r0, 0x13
	ands r0, r1
	cmp r0, 0x10
	bne _081D4E08
	movs r5, 0x1
_081D4E08:
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _081D4E12
	movs r5, 0x2
_081D4E12:
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _081D4E1C
	movs r5, 0x3
_081D4E1C:
	ldr r1, =gUnknown_03003144
	movs r0, 0
	strb r0, [r1]
	adds r0, r5, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D4DE8

	thumb_func_start sub_81D4E30
sub_81D4E30: @ 81D4E30
	push {lr}
	ldr r0, =0x0201c000
	movs r2, 0x80
	lsls r2, 6
	movs r1, 0
	bl memset
	ldr r1, =gUnknown_020229C6
	ldr r2, =0x00005503
	adds r0, r2, 0
	strh r0, [r1]
	bl sub_8009734
	movs r0, 0x1
	bl sub_800B330
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D4E30

	thumb_func_start sub_81D4E60
sub_81D4E60: @ 81D4E60
	push {lr}
	sub sp, 0xC
	mov r1, sp
	ldr r2, =0x04000208
	ldrh r0, [r2]
	strh r0, [r1]
	movs r0, 0
	strh r0, [r2]
	ldr r0, =gUnknown_03003174
	ldr r1, [r0, 0x4]
	ldr r0, [r0]
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	mov r0, sp
	ldrh r0, [r0]
	strh r0, [r2]
	add r2, sp, 0x4
	ldrh r1, [r2]
	ldr r0, =0x0000b9a0
	cmp r1, r0
	bne _081D4EB8
	ldrh r1, [r2, 0x2]
	ldr r0, =0x0000ccd0
	cmp r1, r0
	bne _081D4EB8
	ldrh r1, [r2, 0x4]
	ldr r0, =0x0000ffff
	cmp r1, r0
	bne _081D4EB8
	ldrh r0, [r2, 0x6]
	cmp r0, r1
	bne _081D4EB8
	movs r0, 0x1
	b _081D4EBA
	.pool
_081D4EB8:
	movs r0, 0
_081D4EBA:
	add sp, 0xC
	pop {r1}
	bx r1
	thumb_func_end sub_81D4E60

	thumb_func_start sub_81D4EC0
sub_81D4EC0: @ 81D4EC0
	push {lr}
	bl sub_800ABBC
	lsls r0, 24
	cmp r0, 0
	beq _081D4EDC
	bl sub_800ABAC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _081D4EDC
	movs r0, 0x1
	b _081D4EDE
_081D4EDC:
	movs r0, 0
_081D4EDE:
	pop {r1}
	bx r1
	thumb_func_end sub_81D4EC0

	thumb_func_start sub_81D4EE4
sub_81D4EE4: @ 81D4EE4
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	ldrb r0, [r4]
	subs r0, 0x3
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bhi _081D4F08
	bl sub_800B33C
	lsls r0, 24
	cmp r0, 0
	beq _081D4F08
	movs r0, 0
	strb r0, [r4]
	movs r0, 0x3
	b _081D500E
_081D4F08:
	ldrb r0, [r4]
	cmp r0, 0x5
	bls _081D4F10
	b _081D500C
_081D4F10:
	lsls r0, 2
	ldr r1, =_081D4F20
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D4F20:
	.4byte _081D4F38
	.4byte _081D4F54
	.4byte _081D4F6C
	.4byte _081D4FA0
	.4byte _081D4FEC
	.4byte _081D4FF8
_081D4F38:
	bl sub_800ABBC
	lsls r0, 24
	cmp r0, 0
	beq _081D4F88
	bl sub_800ABAC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _081D4F88
	movs r0, 0x1
	strb r0, [r4]
	b _081D500C
_081D4F54:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x5
	bls _081D500C
	movs r0, 0
	strh r0, [r5]
	movs r0, 0x2
	strb r0, [r4]
	b _081D500C
_081D4F6C:
	bl sub_800ABAC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _081D4F88
	movs r0, 0x49
	bl PlaySE
	bl sub_800A620
	movs r0, 0
	strh r0, [r5]
	b _081D4FE6
_081D4F88:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081D500C
	movs r0, 0
	strb r0, [r4]
	movs r0, 0x1
	b _081D500E
	.pool
_081D4FA0:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1E
	bls _081D4FB6
	movs r0, 0
	strb r0, [r4]
	movs r0, 0x5
	b _081D500E
_081D4FB6:
	bl sub_800B320
	lsls r0, 24
	cmp r0, 0
	beq _081D500C
	ldr r0, =gUnknown_03003124
	ldrb r0, [r0]
	cmp r0, 0
	beq _081D4FE6
	bl sub_800A23C
	lsls r0, 24
	cmp r0, 0
	beq _081D4FE0
	movs r0, 0
	strb r0, [r4]
	movs r0, 0x2
	b _081D500E
	.pool
_081D4FE0:
	movs r0, 0x4
	strb r0, [r4]
	b _081D500C
_081D4FE6:
	movs r0, 0x3
	strb r0, [r4]
	b _081D500C
_081D4FEC:
	movs r0, 0
	bl sub_800ABF4
	movs r0, 0x5
	strb r0, [r4]
	b _081D500C
_081D4FF8:
	ldr r0, =gUnknown_03003124
	ldrb r0, [r0]
	cmp r0, 0
	bne _081D500C
	strb r0, [r4]
	movs r0, 0x4
	b _081D500E
	.pool
_081D500C:
	movs r0, 0
_081D500E:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81D4EE4

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

	thumb_func_start sub_81D505C
sub_81D505C: @ 81D505C
	movs r1, 0
	strh r1, [r0]
	bx lr
	thumb_func_end sub_81D505C

	thumb_func_start sub_81D5064
sub_81D5064: @ 81D5064
	push {lr}
	adds r2, r0, 0
	lsls r1, 16
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	lsls r0, 16
	cmp r0, r1
	bhi _081D507A
	movs r0, 0
	b _081D5080
_081D507A:
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x1
_081D5080:
	pop {r1}
	bx r1
	thumb_func_end sub_81D5064

	thumb_func_start sub_81D5084
sub_81D5084: @ 81D5084
	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
	ldrb r0, [r4, 0x8]
	cmp r0, 0x1A
	bls _081D509C
	b _081D548A
_081D509C:
	lsls r0, 2
	ldr r1, =_081D50B0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D50B0:
	.4byte _081D511C
	.4byte _081D5138
	.4byte _081D5148
	.4byte _081D515C
	.4byte _081D516C
	.4byte _081D5198
	.4byte _081D51D0
	.4byte _081D524C
	.4byte _081D5268
	.4byte _081D5290
	.4byte _081D52AC
	.4byte _081D52DC
	.4byte _081D52F2
	.4byte _081D5308
	.4byte _081D536A
	.4byte _081D5390
	.4byte _081D53A8
	.4byte _081D53C6
	.4byte _081D53F2
	.4byte _081D5418
	.4byte _081D5448
	.4byte _081D5454
	.4byte _081D5460
	.4byte _081D5430
	.4byte _081D548A
	.4byte _081D548A
	.4byte _081D5478
_081D511C:
	adds r0, r4, 0
	adds r0, 0x9
	ldr r1, =gUnknown_085EDFD6
	bl mevent_0814257C
	cmp r0, 0
	bne _081D512C
	b _081D548A
_081D512C:
	movs r0, 0x1
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5138:
	bl sub_81D4E30
	adds r0, r4, 0
	bl sub_81D505C
	movs r0, 0x2
	strb r0, [r4, 0x8]
	b _081D548A
_081D5148:
	adds r0, r4, 0
	movs r1, 0xA
	bl sub_81D5064
	cmp r0, 0
	bne _081D5156
	b _081D548A
_081D5156:
	movs r0, 0x3
	strb r0, [r4, 0x8]
	b _081D548A
_081D515C:
	bl sub_81D4EC0
	cmp r0, 0
	beq _081D5166
	b _081D52FC
_081D5166:
	bl sub_80097E8
	b _081D525C
_081D516C:
	adds r0, r4, 0
	adds r0, 0x9
	ldr r1, =gUnknown_085EDFF5
	bl mevent_0814257C
	cmp r0, 0
	bne _081D517C
	b _081D548A
_081D517C:
	ldr r0, =gUnknown_085EE014
	bl sub_8018884
	adds r0, r4, 0
	bl sub_81D505C
	movs r0, 0x5
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5198:
	adds r0, r4, 0
	movs r1, 0x5A
	bl sub_81D5064
	cmp r0, 0
	beq _081D51AE
	bl sub_81D4E30
	movs r0, 0x6
	strb r0, [r4, 0x8]
	b _081D548A
_081D51AE:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _081D51BC
	b _081D548A
_081D51BC:
	adds r0, r4, 0
	bl sub_81D505C
	movs r0, 0x5
	bl PlaySE
	b _081D535A
	.pool
_081D51D0:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081D51F4
	movs r0, 0x5
	bl PlaySE
	bl sub_80097E8
	adds r0, r4, 0
	bl sub_81D505C
	b _081D535A
	.pool
_081D51F4:
	bl sub_800ABAC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _081D5210
	adds r0, r4, 0
	bl sub_81D505C
	bl sub_80097E8
	movs r0, 0x7
	strb r0, [r4, 0x8]
	b _081D548A
_081D5210:
	bl sub_81D4E60
	cmp r0, 0
	beq _081D522E
	movs r0, 0x5
	bl PlaySE
	bl sub_80097E8
	adds r0, r4, 0
	bl sub_81D505C
	movs r0, 0x8
	strb r0, [r4, 0x8]
	b _081D548A
_081D522E:
	adds r0, r4, 0
	movs r1, 0xA
	bl sub_81D5064
	cmp r0, 0
	bne _081D523C
	b _081D548A
_081D523C:
	bl sub_80097E8
	bl sub_81D4E30
	adds r0, r4, 0
	bl sub_81D505C
	b _081D548A
_081D524C:
	adds r0, r4, 0
	adds r0, 0x9
	ldr r1, =gUnknown_085EE05C
	bl mevent_0814257C
	cmp r0, 0
	bne _081D525C
	b _081D548A
_081D525C:
	movs r0, 0x4
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5268:
	ldr r0, =gUnknown_085EE097
	bl sub_8018884
	ldr r0, =gUnknown_03006370
	ldr r1, =gUnknown_089A6550
	ldr r2, =gUnknown_089A3470
	subs r1, r2
	bl sub_81D4D50
	movs r0, 0x9
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5290:
	ldr r0, =gUnknown_03006370
	bl sub_81D4DE8
	strb r0, [r4, 0xE]
	lsls r0, 24
	cmp r0, 0
	bne _081D52A0
	b _081D548A
_081D52A0:
	movs r0, 0xA
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D52AC:
	ldr r0, =gUnknown_03006370
	bl sub_81D4DB8
	ldrb r0, [r4, 0xE]
	cmp r0, 0x3
	bne _081D52BA
	b _081D53C0
_081D52BA:
	cmp r0, 0x1
	beq _081D52C0
	b _081D546E
_081D52C0:
	adds r0, r4, 0
	bl sub_81D505C
	ldr r0, =gUnknown_085EE120
	bl sub_8018884
	movs r0, 0xB
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D52DC:
	movs r1, 0xD2
	lsls r1, 2
	adds r0, r4, 0
	bl sub_81D5064
	cmp r0, 0
	bne _081D52EC
	b _081D548A
_081D52EC:
	movs r0, 0xC
	strb r0, [r4, 0x8]
	b _081D548A
_081D52F2:
	bl sub_81D4E30
	ldr r0, =gUnknown_085EE0DC
	bl sub_8018884
_081D52FC:
	movs r0, 0xD
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5308:
	adds r0, r4, 0
	adds r0, 0x9
	adds r1, r4, 0
	bl sub_81D4EE4
	cmp r0, 0x5
	bls _081D5318
	b _081D548A
_081D5318:
	lsls r0, 2
	ldr r1, =_081D5328
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D5328:
	.4byte _081D548A
	.4byte _081D5350
	.4byte _081D5340
	.4byte _081D5374
	.4byte _081D5374
	.4byte _081D5360
_081D5340:
	ldr r0, =gUnknown_085EE097
	bl sub_8018884
	movs r0, 0xE
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5350:
	movs r0, 0x5
	bl PlaySE
	bl sub_80097E8
_081D535A:
	movs r0, 0x17
	strb r0, [r4, 0x8]
	b _081D548A
_081D5360:
	bl sub_80097E8
	movs r0, 0x15
	strb r0, [r4, 0x8]
	b _081D548A
_081D536A:
	bl sub_800B33C
	lsls r0, 24
	cmp r0, 0
	beq _081D537A
_081D5374:
	bl sub_80097E8
	b _081D53C0
_081D537A:
	bl sub_800A550
	lsls r0, 24
	cmp r0, 0
	bne _081D5386
	b _081D548A
_081D5386:
	bl sub_800A5B4
	movs r0, 0xF
	strb r0, [r4, 0x8]
	b _081D548A
_081D5390:
	ldr r0, =0x0201c000
	bl sub_81D3920
	strb r0, [r4, 0xE]
	ldrb r0, [r4, 0xE]
	bl sub_800ABF4
	movs r0, 0x10
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D53A8:
	ldr r0, =gUnknown_03003124
	ldrb r0, [r0]
	cmp r0, 0
	bne _081D548A
	ldrb r0, [r4, 0xE]
	cmp r0, 0x1
	bne _081D53C0
	movs r0, 0x11
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D53C0:
	movs r0, 0x14
	strb r0, [r4, 0x8]
	b _081D548A
_081D53C6:
	ldr r0, =0x0201c000
	bl sub_81D3AB0
	cmp r0, 0
	beq _081D53EC
	ldr r0, =gUnknown_085EE0FA
	bl sub_8018884
	adds r0, r4, 0
	bl sub_81D505C
	movs r0, 0x12
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D53EC:
	movs r0, 0x16
	strb r0, [r4, 0x8]
	b _081D548A
_081D53F2:
	adds r0, r4, 0
	movs r1, 0x78
	bl sub_81D5064
	cmp r0, 0
	beq _081D548A
	ldr r0, =gUnknown_085EE107
	bl sub_8018884
	movs r0, 0xB9
	lsls r0, 1
	bl PlayFanfare
	movs r0, 0x13
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5418:
	bl IsFanfareTaskInactive
	lsls r0, 24
	cmp r0, 0
	beq _081D548A
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	b _081D543A
	.pool
_081D5430:
	adds r0, r4, 0
	adds r0, 0x9
	ldr r1, =gUnknown_085EE06B
	bl mevent_0814257C
_081D543A:
	cmp r0, 0
	beq _081D548A
	movs r0, 0x1A
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5448:
	adds r0, r4, 0
	adds r0, 0x9
	ldr r1, =gUnknown_085EE0A3
	b _081D5466
	.pool
_081D5454:
	adds r0, r4, 0
	adds r0, 0x9
	ldr r1, =gUnknown_085EE0BF
	b _081D5466
	.pool
_081D5460:
	adds r0, r4, 0
	adds r0, 0x9
	ldr r1, =gUnknown_085EE12D
_081D5466:
	bl mevent_0814257C
	cmp r0, 0
	beq _081D548A
_081D546E:
	movs r0, 0
	strb r0, [r4, 0x8]
	b _081D548A
	.pool
_081D5478:
	ldr r0, [r4, 0x10]
	bl Free
	adds r0, r5, 0
	bl DestroyTask
	ldr r0, =sub_80186A4
	bl SetMainCallback2
_081D548A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5084

	thumb_func_start sp194_trainer_tower
sp194_trainer_tower: @ 81D5494
	push {lr}
	bl sub_81D56B0
	ldr r1, =gUnknown_0862A618
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl _call_via_r0
	bl sub_81D5710
	pop {r0}
	bx r0
	.pool
	thumb_func_end sp194_trainer_tower

	thumb_func_start sub_81D54BC
sub_81D54BC: @ 81D54BC
	push {r4-r6,lr}
	ldr r4, =gSaveBlock2Ptr
	ldr r1, [r4]
	ldr r3, =0x00000ef9
	adds r1, r3
	ldrb r2, [r1]
	movs r0, 0x7F
	ands r0, r2
	strb r0, [r1]
	ldr r1, [r4]
	adds r1, r3
	ldrb r2, [r1]
	movs r0, 0x80
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r2, =gSaveBlock1Ptr
	ldr r0, [r2]
	ldr r1, =0x00003d68
	adds r0, r1
	movs r1, 0
	str r1, [r0]
	adds r6, r2, 0
	ldr r5, =0x00003718
	movs r4, 0x3
_081D54EE:
	ldr r0, [r6]
	adds r0, r5
	ldr r1, =0x00034bbf
	bl sub_81D5DF4
	adds r5, 0x4
	subs r4, 0x1
	cmp r4, 0
	bge _081D54EE
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D54BC

	thumb_func_start sub_81D5520
sub_81D5520: @ 81D5520
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x12]
	adds r0, 0x61
	lsls r0, 24
	lsrs r0, 24
	bx lr
	.pool
	thumb_func_end sub_81D5520

	thumb_func_start sub_81D5530
sub_81D5530: @ 81D5530
	lsls r0, 24
	movs r1, 0xFF
	lsls r1, 24
	adds r0, r1
	lsrs r0, 24
	ldr r2, =gTrainerClassToNameIndex
	ldr r1, =gUnknown_0203CF58
	ldr r1, [r1]
	adds r1, 0x16
	adds r1, r0
	ldrb r0, [r1]
	adds r0, r2
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_81D5530

	thumb_func_start sub_81D5554
sub_81D5554: @ 81D5554
	push {r4,lr}
	adds r4, r0, 0
	lsls r1, 24
	movs r0, 0xFF
	lsls r0, 24
	adds r1, r0
	lsrs r1, 24
	movs r3, 0
	ldr r0, =gUnknown_0203CF58
	ldr r2, [r0]
	movs r0, 0xB
	muls r0, r1
	adds r2, r0, r2
_081D556E:
	adds r1, r4, r3
	ldrb r0, [r2]
	strb r0, [r1]
	adds r2, 0x1
	adds r3, 0x1
	cmp r3, 0xA
	ble _081D556E
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5554

	thumb_func_start sub_81D5588
sub_81D5588: @ 81D5588
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_81D56B0
	subs r4, 0x1
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CF54
	ldr r3, [r0]
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r4
	ldrb r2, [r3]
	lsls r0, r2, 4
	subs r0, r2
	lsls r0, 3
	subs r0, r2
	adds r0, r1
	lsls r0, 3
	adds r3, r0
	ldrb r4, [r3, 0x1B]
	bl sub_81D5710
	ldr r0, =gUnknown_0831F578
	adds r4, r0
	ldrb r0, [r4]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D5588

	thumb_func_start sub_81D55D0
sub_81D55D0: @ 81D55D0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	bl sub_81D56B0
	ldr r4, =gUnknown_0203CF58
	movs r0, 0x18
	bl AllocZeroed
	str r0, [r4]
	movs r6, 0
	ldr r0, =gUnknown_0203CF54
	mov r10, r0
_081D55EE:
	movs r5, 0
	lsls r1, r6, 2
	mov r8, r1
	adds r0, r6, 0x1
	mov r9, r0
	movs r0, 0xB
	adds r1, r6, 0
	muls r1, r0
	mov r12, r1
	mov r1, r8
	adds r0, r1, r6
	lsls r0, 3
	adds r0, r6
	lsls r7, r0, 3
_081D560A:
	ldr r0, =gUnknown_0203CF58
	ldr r4, [r0]
	mov r1, r12
	adds r0, r5, r1
	adds r4, r0
	mov r0, r10
	ldr r2, [r0]
	adds r3, r5, r7
	ldrb r1, [r2]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 3
	subs r0, r1
	lsls r0, 3
	adds r3, r0
	adds r2, 0x10
	adds r2, r3
	ldrb r0, [r2]
	strb r0, [r4]
	adds r5, 0x1
	cmp r5, 0xA
	ble _081D560A
	ldr r1, =gUnknown_0203CF58
	ldr r4, [r1]
	adds r4, 0x16
	adds r4, r6
	mov r0, r10
	ldr r3, [r0]
	mov r1, r8
	adds r2, r1, r6
	lsls r2, 3
	adds r2, r6
	ldrb r1, [r3]
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 3
	subs r0, r1
	adds r0, r2
	lsls r0, 3
	adds r3, r0
	ldrb r0, [r3, 0x1B]
	strb r0, [r4]
	mov r6, r9
	cmp r6, 0x1
	ble _081D55EE
	ldr r1, =gSaveBlock1Ptr
	ldr r0, [r1]
	ldr r1, =0x00003d64
	adds r0, r1
	bl sub_80008DC
	bl sub_81D5710
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D55D0

	thumb_func_start sub_81D5694
sub_81D5694: @ 81D5694
	push {r4,lr}
	ldr r4, =gUnknown_0203CF58
	ldr r0, [r4]
	cmp r0, 0
	beq _081D56A6
	bl Free
	movs r0, 0
	str r0, [r4]
_081D56A6:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5694

	thumb_func_start sub_81D56B0
sub_81D56B0: @ 81D56B0
	push {r4,lr}
	ldr r4, =gUnknown_0203CF54
	ldr r0, [r4]
	cmp r0, 0
	bne _081D56EC
	ldr r0, =0x00000eec
	bl AllocZeroed
	str r0, [r4]
	ldr r1, =gMapHeader
	ldrb r1, [r1, 0x12]
	adds r1, 0x61
	strb r1, [r0]
	ldr r1, =gUnknown_0862A5F8
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x00003d6e
	adds r0, r2
	ldrb r0, [r0]
	lsrs r0, 6
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	ldr r1, [r4]
	adds r1, 0x4
	ldr r2, =0x040003ba
	bl CpuSet
	bl nullsub_2
_081D56EC:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D56B0

	thumb_func_start sub_81D5710
sub_81D5710: @ 81D5710
	push {r4,lr}
	ldr r4, =gUnknown_0203CF54
	ldr r0, [r4]
	cmp r0, 0
	beq _081D5722
	bl Free
	movs r0, 0
	str r0, [r4]
_081D5722:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5710

	thumb_func_start sub_81D572C
sub_81D572C: @ 81D572C
	push {r4-r6,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	adds r6, r5, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_81D56B0
	bl sub_81D5520
	lsls r0, 24
	lsrs r2, r0, 24
	subs r4, 0x1
	lsls r4, 24
	lsrs r4, 24
	cmp r5, 0x3
	beq _081D5790
	cmp r5, 0x3
	bgt _081D575A
	cmp r5, 0x2
	beq _081D5764
	b _081D580E
_081D575A:
	cmp r6, 0x4
	beq _081D57BC
	cmp r6, 0x5
	beq _081D57E8
	b _081D580E
_081D5764:
	ldr r0, =gUnknown_0203CF54
	lsls r1, r2, 4
	subs r1, r2
	lsls r1, 3
	subs r1, r2
	lsls r1, 3
	adds r1, 0xC
	ldr r0, [r0]
	adds r0, r1
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r4
	lsls r1, 3
	adds r1, 0x4
	adds r0, r1
	adds r0, 0x10
	bl ConvertBattleFrontierTrainerSpeechToString
	b _081D580E
	.pool
_081D5790:
	ldr r0, =gUnknown_0203CF54
	lsls r1, r2, 4
	subs r1, r2
	lsls r1, 3
	subs r1, r2
	lsls r1, 3
	adds r1, 0xC
	ldr r0, [r0]
	adds r0, r1
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r4
	lsls r1, 3
	adds r1, 0x4
	adds r0, r1
	adds r0, 0x1C
	bl ConvertBattleFrontierTrainerSpeechToString
	b _081D580E
	.pool
_081D57BC:
	ldr r0, =gUnknown_0203CF54
	lsls r1, r2, 4
	subs r1, r2
	lsls r1, 3
	subs r1, r2
	lsls r1, 3
	adds r1, 0xC
	ldr r0, [r0]
	adds r0, r1
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r4
	lsls r1, 3
	adds r1, 0x4
	adds r0, r1
	adds r0, 0x28
	bl ConvertBattleFrontierTrainerSpeechToString
	b _081D580E
	.pool
_081D57E8:
	ldr r0, =gUnknown_0203CF54
	lsls r1, r2, 4
	subs r1, r2
	lsls r1, 3
	subs r1, r2
	lsls r1, 3
	adds r1, 0xC
	ldr r0, [r0]
	adds r0, r1
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r4
	lsls r1, 3
	adds r1, 0x4
	adds r0, r1
	adds r0, 0x34
	bl ConvertBattleFrontierTrainerSpeechToString
_081D580E:
	bl sub_81D5710
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D572C

	thumb_func_start sub_81D581C
sub_81D581C: @ 81D581C
	push {r4-r6,lr}
	bl nullsub_2
	bl sub_81D3B34
	cmp r0, 0
	bne _081D5844
	ldr r3, =gSaveBlock1Ptr
	ldr r1, [r3]
	ldr r0, =0x00003d6e
	adds r1, r0
	ldrb r0, [r1]
	movs r2, 0x20
	orrs r0, r2
	b _081D5854
	.pool
_081D5844:
	ldr r3, =gSaveBlock1Ptr
	ldr r1, [r3]
	ldr r0, =0x00003d6e
	adds r1, r0
	ldrb r2, [r1]
	movs r0, 0x21
	negs r0, r0
	ands r0, r2
_081D5854:
	strb r0, [r1]
	adds r6, r3, 0
	ldr r0, [r6]
	ldr r1, =0x00003d6c
	adds r0, r1
	movs r5, 0
	strb r5, [r0]
	ldr r0, [r6]
	ldr r4, =0x00003d64
	adds r0, r4
	bl sub_80008DC
	ldr r1, [r6]
	adds r4, r1, r4
	str r5, [r4]
	ldr r3, =0x00003d6e
	adds r1, r3
	ldrb r2, [r1]
	movs r0, 0x5
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r1, [r6]
	adds r1, r3
	ldrb r2, [r1]
	movs r0, 0x3
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r1, [r6]
	adds r1, r3
	ldrb r2, [r1]
	movs r0, 0x11
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xEE
	lsls r1, 4
	adds r0, r1
	strb r5, [r0]
	ldr r0, =gBattleOutcome
	strb r5, [r0]
	ldr r1, [r6]
	adds r1, r3
	ldrb r2, [r1]
	movs r0, 0x2
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D581C

	thumb_func_start sub_81D58D8
sub_81D58D8: @ 81D58D8
	push {lr}
	bl sub_80008E8
	ldr r3, =gScriptResult
	movs r0, 0
	strh r0, [r3]
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003d6e
	adds r2, r0, r1
	ldrb r1, [r2]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _081D58FA
	movs r0, 0x1
	strh r0, [r3]
_081D58FA:
	ldrb r1, [r2]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x3
	bne _081D590A
	ldrh r0, [r3]
	adds r0, 0x1
	strh r0, [r3]
_081D590A:
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D58D8

	thumb_func_start sub_81D5924
sub_81D5924: @ 81D5924
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	bl sub_81D6640
	lsls r0, 16
	lsrs r5, r0, 16
	ldr r0, =gUnknown_0203CF54
	ldr r0, [r0]
	ldrb r0, [r0, 0x6]
	cmp r0, 0x4
	bne _081D5952
	ldr r0, =gSaveBlock1Ptr
	mov r8, r0
	ldr r0, [r0]
	ldr r7, =0x00003d6e
	adds r0, r7
	ldrb r0, [r0]
	movs r6, 0x1
	adds r4, r6, 0
	ands r4, r0
	cmp r4, 0
	beq _081D596C
_081D5952:
	ldr r1, =gScriptResult
	movs r0, 0x2
	strh r0, [r1]
	b _081D59C0
	.pool
_081D596C:
	adds r0, r5, 0
	movs r1, 0x1
	bl AddBagItem
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081D59BC
	ldr r1, =gStringVar2
	adds r0, r5, 0
	bl CopyItemName
	mov r0, r8
	ldr r1, [r0]
	adds r1, r7
	ldrb r0, [r1]
	movs r2, 0x1
	orrs r0, r2
	strb r0, [r1]
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	ldr r0, =0x00000ef9
	adds r1, r0
	ldrb r2, [r1]
	movs r0, 0x80
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r0, =gScriptResult
	strh r4, [r0]
	b _081D59C0
	.pool
_081D59BC:
	ldr r0, =gScriptResult
	strh r6, [r0]
_081D59C0:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5924

	thumb_func_start sub_81D59D0
sub_81D59D0: @ 81D59D0
	push {r4-r6,lr}
	ldr r4, =gSaveBlock1Ptr
	ldr r2, [r4]
	ldr r6, =0x00003d6e
	adds r0, r2, r6
	ldrb r1, [r0]
	movs r3, 0x2
	adds r0, r3, 0
	ands r0, r1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	beq _081D59FC
	ldr r0, =gScriptResult
	strh r3, [r0]
	b _081D5A4E
	.pool
_081D59FC:
	ldr r1, =0x00003d68
	adds r0, r2, r1
	bl free_203F458
	ldr r2, [r4]
	ldr r3, =0x00003d64
	adds r1, r2, r3
	ldr r1, [r1]
	cmp r0, r1
	bls _081D5A48
	adds r3, 0x4
	adds r0, r2, r3
	bl sub_81D5DF4
	ldr r2, [r4]
	adds r0, r2, r6
	ldrb r0, [r0]
	lsrs r0, 6
	lsls r0, 2
	ldr r3, =0x00003718
	adds r1, r2, r3
	adds r1, r0
	ldr r0, =0x00003d68
	adds r2, r0
	ldr r0, [r2]
	str r0, [r1]
	ldr r0, =gScriptResult
	strh r5, [r0]
	b _081D5A4E
	.pool
_081D5A48:
	ldr r1, =gScriptResult
	movs r0, 0x1
	strh r0, [r1]
_081D5A4E:
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r3, =0x00003d6e
	adds r1, r3
	ldrb r0, [r1]
	movs r2, 0x2
	orrs r0, r2
	strb r0, [r1]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D59D0

	thumb_func_start sub_81D5A70
sub_81D5A70: @ 81D5A70
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r1, =0x00003d6e
	adds r0, r2, r1
	ldrb r1, [r0]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	bne _081D5AAE
	ldr r0, =0x00003d64
	adds r2, r0
	ldr r1, [r2]
	ldr r0, =0x00034bbe
	cmp r1, r0
	bls _081D5AA8
	adds r0, 0x1
	str r0, [r2]
	b _081D5AAE
	.pool
_081D5AA8:
	adds r0, r2, 0
	bl sub_80008DC
_081D5AAE:
	pop {r0}
	bx r0
	thumb_func_end sub_81D5A70

	thumb_func_start sub_81D5AB4
sub_81D5AB4: @ 81D5AB4
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x00003d6e
	adds r1, r0
	ldrb r0, [r1]
	movs r2, 0x8
	orrs r0, r2
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D5AB4

	thumb_func_start sub_81D5AD0
sub_81D5AD0: @ 81D5AD0
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003d6e
	adds r2, r0, r1
	ldrb r1, [r2]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _081D5B00
	movs r0, 0x9
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	ldr r1, =gScriptResult
	movs r0, 0
	b _081D5B20
	.pool
_081D5B00:
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _081D5B1C
	movs r0, 0x11
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	ldr r1, =gScriptResult
	movs r0, 0x1
	b _081D5B20
	.pool
_081D5B1C:
	ldr r1, =gScriptResult
	movs r0, 0x2
_081D5B20:
	strh r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5AD0

	thumb_func_start sub_81D5B2C
sub_81D5B2C: @ 81D5B2C
	push {r4-r7,lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003d64
	adds r0, r1
	ldr r7, [r0]
	ldr r0, =0x00034bbe
	cmp r7, r0
	ble _081D5B40
	ldr r7, =0x00034bbf
_081D5B40:
	movs r4, 0xE1
	lsls r4, 4
	adds r0, r7, 0
	adds r1, r4, 0
	bl __divsi3
	adds r6, r0, 0
	adds r0, r7, 0
	adds r1, r4, 0
	bl __modsi3
	adds r7, r0, 0
	movs r1, 0x3C
	bl __divsi3
	adds r5, r0, 0
	adds r0, r7, 0
	movs r1, 0x3C
	bl __modsi3
	adds r7, r0, 0
	movs r0, 0xA8
	muls r0, r7
	movs r1, 0x64
	bl __divsi3
	adds r4, r0, 0
	ldr r0, =gStringVar1
	adds r1, r6, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r0, =gStringVar2
	adds r1, r5, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r0, =gStringVar3
	adds r1, r4, 0
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5B2C

	thumb_func_start sub_81D5BBC
sub_81D5BBC: @ 81D5BBC
	push {lr}
	bl sub_81D56B0
	ldr r0, =gUnknown_0203CF54
	ldr r1, [r0]
	ldrb r0, [r1, 0x6]
	cmp r0, 0x4
	beq _081D5BEC
	ldr r0, =gStringVar1
	ldrb r1, [r1, 0x6]
	movs r2, 0
	movs r3, 0x1
	bl ConvertIntToDecimalStringN
	ldr r1, =gScriptResult
	movs r0, 0
	b _081D5BF0
	.pool
_081D5BEC:
	ldr r1, =gScriptResult
	movs r0, 0x1
_081D5BF0:
	strh r0, [r1]
	bl sub_81D5710
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5BBC

	thumb_func_start sub_81D5C00
sub_81D5C00: @ 81D5C00
	push {lr}
	bl sub_81D56B0
	ldr r1, =gScriptResult
	movs r0, 0
	strh r0, [r1]
	bl sub_81D5710
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5C00

	thumb_func_start sub_81D5C18
sub_81D5C18: @ 81D5C18
	push {lr}
	ldr r0, =0x000040d6
	bl VarGet
	lsls r0, 16
	cmp r0, 0
	beq _081D5C42
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003d6e
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	bne _081D5C42
	bl GetCurrentTrainerHillMapId
	lsls r0, 24
	cmp r0, 0
	bne _081D5C54
_081D5C42:
	movs r0, 0
	b _081D5C56
	.pool
_081D5C54:
	movs r0, 0x1
_081D5C56:
	pop {r1}
	bx r1
	thumb_func_end sub_81D5C18

	thumb_func_start sub_81D5C5C
sub_81D5C5C: @ 81D5C5C
	push {lr}
	bl sub_81D5C18
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	bne _081D5C74
	ldr r0, =gScriptResult
	strh r1, [r0]
	b _081D5C7A
	.pool
_081D5C74:
	ldr r1, =gScriptResult
	movs r0, 0x1
	strh r0, [r1]
_081D5C7A:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5C5C

	thumb_func_start nullsub_129
nullsub_129: @ 81D5C84
	bx lr
	thumb_func_end nullsub_129

	thumb_func_start nullsub_2
nullsub_2: @ 81D5C88
	bx lr
	thumb_func_end nullsub_2

	thumb_func_start sub_81D5C8C
sub_81D5C8C: @ 81D5C8C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	bl sub_81D56B0
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	ldr r5, =gUnknown_085EF88A
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0xD0
	bl GetStringCenterAlignXOffset
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r6, =gUnknown_0862A5F4
	str r6, [sp]
	movs r4, 0x1
	negs r4, r4
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0x2
	bl box_print
	movs r7, 0x12
	movs r0, 0
	mov r8, r0
	mov r10, r4
	ldr r1, =gStringVar4
	mov r9, r1
_081D5CD6:
	lsls r3, r7, 24
	lsrs r3, 24
	ldr r0, =gUnknown_0862A5F4
	str r0, [sp]
	mov r1, r10
	str r1, [sp, 0x4]
	ldr r0, =gUnknown_0862A660
	mov r1, r8
	lsls r4, r1, 2
	adds r0, r4, r0
	ldr r0, [r0]
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	bl box_print
	adds r7, 0xF
	ldr r0, =gSaveBlock1Ptr
	ldr r1, =0x00003718
	adds r4, r1
	ldr r0, [r0]
	adds r0, r4
	bl free_203F458
	adds r4, r0, 0
	movs r5, 0xE1
	lsls r5, 4
	adds r1, r5, 0
	bl __udivsi3
	adds r6, r0, 0
	adds r0, r4, 0
	adds r1, r5, 0
	bl __umodsi3
	adds r5, r0, 0
	ldr r0, =gStringVar1
	adds r1, r6, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	adds r0, r5, 0
	movs r1, 0x3C
	bl __udivsi3
	adds r4, r0, 0
	adds r0, r5, 0
	movs r1, 0x3C
	bl __umodsi3
	adds r5, r0, 0
	ldr r0, =gStringVar2
	adds r1, r4, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	movs r0, 0xA8
	muls r0, r5
	movs r1, 0x64
	bl __udivsi3
	adds r1, r0, 0
	ldr r0, =gStringVar3
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	mov r0, r9
	ldr r1, =gUnknown_085EF895
	bl StringCopy
	ldr r1, =gUnknown_085EF8A3
	bl StringExpandPlaceholders
	movs r0, 0x1
	mov r1, r9
	movs r2, 0xD0
	bl GetStringRightAlignXOffset
	lsls r2, r0, 24
	lsrs r2, 24
	lsls r3, r7, 24
	lsrs r3, 24
	ldr r0, =gUnknown_0862A5F4
	str r0, [sp]
	mov r1, r10
	str r1, [sp, 0x4]
	mov r0, r9
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	bl box_print
	adds r7, 0x11
	movs r1, 0x1
	add r8, r1
	mov r0, r8
	cmp r0, 0x3
	ble _081D5CD6
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	bl sub_81D5710
	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_81D5C8C

	thumb_func_start free_203F458
free_203F458: @ 81D5DF0
	ldr r0, [r0]
	bx lr
	thumb_func_end free_203F458

	thumb_func_start sub_81D5DF4
sub_81D5DF4: @ 81D5DF4
	str r1, [r0]
	bx lr
	thumb_func_end sub_81D5DF4

	thumb_func_start sub_81D5DF8
sub_81D5DF8: @ 81D5DF8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	movs r1, 0xC7
	lsls r1, 4
	adds r1, r0, r1
	str r1, [sp, 0x4]
	bl sub_81D5F48
	cmp r0, 0
	beq _081D5F0E
	bl sub_81D56B0
	movs r7, 0
	ldr r4, =gSaveBlock2Ptr
	ldr r3, =0x00000cb4
	ldr r0, =0x0000ffff
	adds r2, r0, 0
_081D5E26:
	ldr r1, [r4]
	lsls r0, r7, 1
	adds r1, r3
	adds r1, r0
	ldrh r0, [r1]
	orrs r0, r2
	strh r0, [r1]
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	cmp r7, 0x1
	bls _081D5E26
	movs r0, 0
	str r0, [sp]
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	movs r2, 0xC7
	lsls r2, 4
	adds r1, r2
	ldr r2, =0x05000180
	mov r0, sp
	bl CpuSet
	bl sub_81D5520
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r7, 0
	ldr r3, =gUnknown_0203CF54
	mov r10, r3
_081D5E64:
	lsls r4, r7, 1
	mov r8, r4
	adds r5, r4, r7
	lsls r5, 3
	ldr r0, [sp, 0x4]
	adds r5, r0
	adds r1, r5, 0
	ldr r0, =gUnknown_0862A670
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	adds r6, r7, 0x1
	strb r6, [r5]
	mov r0, r10
	ldr r1, [r0]
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r7
	lsls r0, 3
	mov r2, r9
	lsls r4, r2, 4
	subs r4, r2
	lsls r4, 3
	subs r4, r2
	lsls r4, 3
	adds r0, r4
	adds r1, r0
	ldrb r0, [r1, 0x1B]
	bl sub_81660B8
	strb r0, [r5, 0x1]
	mov r0, r10
	ldr r3, [r0]
	adds r0, r7, r4
	movs r2, 0xF0
	lsls r2, 2
	adds r1, r3, r2
	adds r1, r0
	ldrb r2, [r1]
	movs r0, 0xF
	ands r0, r2
	strh r0, [r5, 0x4]
	ldrb r0, [r1]
	lsrs r0, 4
	movs r1, 0xF
	ands r0, r1
	adds r0, 0x5
	strh r0, [r5, 0x6]
	lsls r1, r7, 26
	lsrs r1, 24
	adds r3, r4
	ldr r2, =0x000003c2
	adds r3, r2
	ldrb r0, [r3]
	asrs r0, r1
	movs r3, 0xF
	ands r0, r3
	adds r0, 0x7
	strb r0, [r5, 0x9]
	mov r2, r10
	ldr r0, [r2]
	adds r0, r4
	ldr r3, =0x000003c3
	adds r0, r3
	ldrb r0, [r0]
	asrs r0, r1
	movs r1, 0xF
	ands r0, r1
	strh r0, [r5, 0xE]
	ldr r0, =gUnknown_082C83F0
	str r0, [r5, 0x10]
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r4, =0x00000cb4
	adds r0, r4
	add r0, r8
	strh r6, [r0]
	lsls r6, 24
	lsrs r7, r6, 24
	cmp r7, 0x1
	bls _081D5E64
	bl sub_81D5710
_081D5F0E:
	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_81D5DF8

	thumb_func_start sub_81D5F48
sub_81D5F48: @ 81D5F48
	push {lr}
	bl sub_81D56B0
	bl sub_81D5710
	movs r0, 0x1
	pop {r1}
	bx r1
	thumb_func_end sub_81D5F48

	thumb_func_start sub_81D5F58
sub_81D5F58: @ 81D5F58
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =gUnknown_0203CF54
	ldr r4, [r4]
	mov r12, r4
	lsls r4, r2, 1
	lsls r5, r0, 4
	subs r5, r0
	lsls r5, 3
	subs r5, r0
	lsls r5, 3
	adds r4, r5
	movs r0, 0xE8
	lsls r0, 2
	add r0, r12
	adds r0, r4
	ldrh r0, [r0]
	movs r4, 0xF
	subs r4, r1
	asrs r0, r4
	movs r4, 0x1
	ands r0, r4
	muls r2, r3
	adds r2, r1
	adds r2, r5
	movs r1, 0xA8
	lsls r1, 2
	add r1, r12
	adds r1, r2
	ldrb r1, [r1]
	movs r2, 0x80
	lsls r2, 2
	adds r3, r2, 0
	movs r2, 0xC0
	lsls r2, 6
	lsls r0, 10
	orrs r0, r2
	orrs r1, r3
	orrs r0, r1
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D5F58

	thumb_func_start sub_81D5FB4
sub_81D5FB4: @ 81D5FB4
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r4, r0, 0
	bl GetCurrentTrainerHillMapId
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	cmp r0, 0x6
	bne _081D5FD2
	bl sub_8087D74
	b _081D605E
_081D5FD2:
	bl sub_81D56B0
	mov r0, r9
	cmp r0, 0x5
	bne _081D5FE6
	bl sub_8087D74
	bl sub_81D5710
	b _081D605E
_081D5FE6:
	bl sub_81D5520
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	ldr r0, =gMapHeader
	ldr r0, [r0]
	ldr r2, [r0, 0xC]
	ldr r1, =gUnknown_03005DC0
	str r4, [r1, 0x8]
	movs r0, 0x1F
	str r0, [r1]
	movs r0, 0x23
	str r0, [r1, 0x4]
	movs r0, 0xE0
	lsls r0, 1
	adds r3, r4, r0
	movs r6, 0x4
_081D600A:
	adds r4, r2, 0
	adds r4, 0x20
	adds r1, r3, 0
	movs r5, 0xF
_081D6012:
	ldrh r0, [r2]
	strh r0, [r1]
	adds r2, 0x2
	adds r1, 0x2
	subs r5, 0x1
	cmp r5, 0
	bge _081D6012
	adds r3, 0x3E
	adds r2, r4, 0
	subs r6, 0x1
	cmp r6, 0
	bge _081D600A
	movs r6, 0
_081D602C:
	movs r5, 0
	adds r7, r3, 0
	adds r7, 0x3E
	adds r0, r6, 0x1
	mov r8, r0
	adds r4, r3, 0
_081D6038:
	mov r0, r9
	adds r1, r5, 0
	adds r2, r6, 0
	movs r3, 0x10
	bl sub_81D5F58
	strh r0, [r4]
	adds r4, 0x2
	adds r5, 0x1
	cmp r5, 0xF
	ble _081D6038
	adds r3, r7, 0
	mov r6, r8
	cmp r6, 0xF
	ble _081D602C
	bl mapheader_run_script_with_tag_x1
	bl sub_81D5710
_081D605E:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D5FB4

	thumb_func_start InTrainerHill
InTrainerHill: @ 81D6074
	push {lr}
	ldr r1, =gMapHeader
	ldr r2, =0xfffffe61
	adds r0, r2, 0
	ldrh r1, [r1, 0x12]
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0
	cmp r0, 0x3
	bhi _081D608C
	movs r1, 0x1
_081D608C:
	adds r0, r1, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end InTrainerHill

	thumb_func_start GetCurrentTrainerHillMapId
@ u8 GetCurrentTrainerHillMapId()
GetCurrentTrainerHillMapId: @ 81D609C
	push {lr}
	ldr r0, =gMapHeader
	ldrh r2, [r0, 0x12]
	ldr r0, =0x0000019f
	cmp r2, r0
	bne _081D60B4
	movs r1, 0x1
	b _081D60F8
	.pool
_081D60B4:
	movs r0, 0xD0
	lsls r0, 1
	cmp r2, r0
	bne _081D60C0
	movs r1, 0x2
	b _081D60F8
_081D60C0:
	ldr r0, =0x000001a1
	cmp r2, r0
	bne _081D60D0
	movs r1, 0x3
	b _081D60F8
	.pool
_081D60D0:
	movs r0, 0xD1
	lsls r0, 1
	cmp r2, r0
	bne _081D60DC
	movs r1, 0x4
	b _081D60F8
_081D60DC:
	ldr r0, =0x000001a3
	cmp r2, r0
	bne _081D60EC
	movs r1, 0x5
	b _081D60F8
	.pool
_081D60EC:
	movs r0, 0xCF
	lsls r0, 1
	movs r1, 0
	cmp r2, r0
	bne _081D60F8
	movs r1, 0x6
_081D60F8:
	adds r0, r1, 0
	pop {r1}
	bx r1
	thumb_func_end GetCurrentTrainerHillMapId

	thumb_func_start sub_81D6100
sub_81D6100: @ 81D6100
	push {lr}
	ldr r0, =gMapHeader
	ldrh r1, [r0, 0x12]
	ldr r0, =0x000001a3
	movs r2, 0
	cmp r1, r0
	bne _081D6110
	movs r2, 0x1
_081D6110:
	adds r0, r2, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D6100

	thumb_func_start sub_81D6120
sub_81D6120: @ 81D6120
	push {lr}
	movs r0, 0x1A
	movs r1, 0x40
	bl get_mapheader_by_bank_and_number
	ldr r0, [r0, 0x4]
	ldr r0, [r0, 0x8]
	adds r0, 0x8
	pop {r1}
	bx r1
	thumb_func_end sub_81D6120

	thumb_func_start sub_81D6134
sub_81D6134: @ 81D6134
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081D614C
	ldr r0, =gMapHeader
	ldr r0, [r0, 0x4]
	ldr r0, [r0, 0x8]
	adds r0, 0x8
	b _081D6176
	.pool
_081D614C:
	bl sub_81D6490
	lsls r0, 24
	lsrs r2, r0, 24
	movs r1, 0xFF
	lsls r1, 24
	adds r0, r1
	lsrs r0, 24
	cmp r0, 0x3
	bls _081D6162
	movs r2, 0x4
_081D6162:
	ldr r1, =gUnknown_0862A688
	subs r0, r2, 0x1
	lsls r0, 2
	adds r0, r1
	ldrh r1, [r0]
	movs r0, 0x1A
	bl get_mapheader_by_bank_and_number
	ldr r0, [r0, 0x4]
	ldr r0, [r0, 0x8]
_081D6176:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D6134

	thumb_func_start battle_init
battle_init: @ 81D6180
	lsls r0, 24
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	lsrs r0, 23
	adds r1, r0
	ldr r0, =0x00000cb2
	adds r1, r0
	ldrh r0, [r1]
	bx lr
	.pool
	thumb_func_end battle_init

	thumb_func_start GetTrainerHillTrainerFlag
@ u8 GetTrainerHillTrainerFlag(u8 fieldObjectId)
GetTrainerHillTrainerFlag: @ 81D619C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_81D5520
	lsls r0, 24
	lsrs r0, 23
	ldr r2, =gMapObjects
	lsls r1, r4, 3
	adds r1, r4
	lsls r1, 2
	adds r1, r2
	adds r0, 0xFF
	ldrb r1, [r1, 0x8]
	adds r0, r1
	lsls r0, 24
	ldr r1, =gSaveBlock2Ptr
	ldr r1, [r1]
	movs r2, 0xEE
	lsls r2, 4
	adds r1, r2
	ldr r2, =gBitTable
	lsrs r0, 22
	adds r0, r2
	ldr r0, [r0]
	ldrb r1, [r1]
	ands r0, r1
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end GetTrainerHillTrainerFlag

	thumb_func_start sub_81D61E8
sub_81D61E8: @ 81D61E8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	bl sub_81D5520
	lsls r0, 25
	lsrs r4, r0, 24
	movs r3, 0
	ldr r0, =gTrainerBattleOpponent_A
	mov r8, r0
	ldr r6, =gSaveBlock2Ptr
	ldr r1, =gBitTable
	mov r12, r1
	adds r5, r6, 0
_081D6204:
	ldr r2, [r5]
	lsls r0, r3, 1
	ldr r7, =0x00000cb4
	adds r1, r2, r7
	adds r1, r0
	ldrh r0, [r1]
	mov r1, r8
	ldrh r1, [r1]
	cmp r0, r1
	bne _081D6240
	movs r7, 0xEE
	lsls r7, 4
	adds r2, r7
	adds r0, r4, r3
	lsls r0, 2
	add r0, r12
	ldr r0, [r0]
	ldrb r1, [r2]
	orrs r0, r1
	strb r0, [r2]
	b _081D624A
	.pool
_081D6240:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x1
	bls _081D6204
_081D624A:
	ldr r0, =gBattleTypeFlags
	ldr r0, [r0]
	movs r1, 0x80
	lsls r1, 8
	ands r0, r1
	cmp r0, 0
	beq _081D62A2
	movs r3, 0
	ldr r5, =gTrainerBattleOpponent_B
	ldr r0, =gBitTable
	mov r8, r0
_081D6260:
	ldr r2, [r6]
	lsls r0, r3, 1
	ldr r7, =0x00000cb4
	adds r1, r2, r7
	adds r1, r0
	ldrh r0, [r1]
	ldrh r1, [r5]
	cmp r0, r1
	bne _081D6298
	movs r7, 0xEE
	lsls r7, 4
	adds r2, r7
	adds r0, r4, r3
	lsls r0, 2
	add r0, r8
	ldr r0, [r0]
	ldrb r1, [r2]
	orrs r0, r1
	strb r0, [r2]
	b _081D62A2
	.pool
_081D6298:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x1
	bls _081D6260
_081D62A2:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D61E8

	thumb_func_start sub_81D62AC
sub_81D62AC: @ 81D62AC
	ldr r0, =gUnknown_082C83F0
	bx lr
	.pool
	thumb_func_end sub_81D62AC

	thumb_func_start sub_81D62B4
sub_81D62B4: @ 81D62B4
	push {lr}
	ldr r0, =gScriptLastTalked
	ldrh r1, [r0]
	movs r0, 0x5
	bl sub_81D572C
	bl sub_80982B8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D62B4

	thumb_func_start sub_81D62CC
sub_81D62CC: @ 81D62CC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 16
	lsrs r0, 16
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	subs r1, r0, 0x1
	lsls r0, r1, 16
	lsrs r0, 16
	cmp r0, 0x1
	bhi _081D636A
	lsls r0, r1, 24
	lsrs r6, r0, 24
	bl sub_81D56B0
	bl sub_8165CB4
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	bl sub_81D5520
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	mov r5, r9
	adds r0, r5, 0x3
	cmp r5, r0
	bge _081D6366
	ldr r1, =gUnknown_0862A698
	lsls r0, r6, 1
	adds r0, r6
	adds r7, r0, r1
_081D6316:
	ldrb r2, [r7]
	movs r0, 0x64
	adds r4, r5, 0
	muls r4, r0
	ldr r0, =gEnemyParty
	adds r4, r0
	mov r1, r8
	lsls r0, r1, 4
	subs r0, r1
	lsls r0, 3
	subs r0, r1
	lsls r0, 3
	adds r0, 0xC
	ldr r3, =gUnknown_0203CF54
	ldr r1, [r3]
	adds r1, r0
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r6
	lsls r0, 3
	adds r0, 0x4
	adds r1, r0
	movs r0, 0x2C
	muls r0, r2
	adds r0, 0x40
	adds r1, r0
	adds r0, r4, 0
	bl sub_806819C
	adds r0, r4, 0
	mov r1, r10
	bl sub_81D642C
	adds r5, 0x1
	adds r7, 0x1
	mov r0, r9
	adds r0, 0x3
	cmp r5, r0
	blt _081D6316
_081D6366:
	bl sub_81D5710
_081D636A:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D62CC

	thumb_func_start sub_81D6384
sub_81D6384: @ 81D6384
	push {lr}
	bl ZeroEnemyPartyMons
	ldr r0, =gTrainerBattleOpponent_A
	ldrh r0, [r0]
	movs r1, 0
	bl sub_81D62CC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6384

	thumb_func_start sub_81D639C
sub_81D639C: @ 81D639C
	push {lr}
	bl ZeroEnemyPartyMons
	ldr r0, =gTrainerBattleOpponent_A
	ldrh r0, [r0]
	movs r1, 0
	bl sub_81D62CC
	ldr r0, =gTrainerBattleOpponent_B
	ldrh r0, [r0]
	movs r1, 0x3
	bl sub_81D62CC
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D639C

	thumb_func_start sub_81D63C4
sub_81D63C4: @ 81D63C4
	movs r0, 0x7
	bx lr
	thumb_func_end sub_81D63C4

	thumb_func_start sub_81D63C8
sub_81D63C8: @ 81D63C8
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_81D56B0
	subs r4, 0x1
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CF54
	ldr r3, [r0]
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r4
	ldrb r2, [r3]
	lsls r0, r2, 4
	subs r0, r2
	lsls r0, 3
	subs r0, r2
	adds r0, r1
	lsls r0, 3
	adds r3, r0
	ldrb r4, [r3, 0x1B]
	bl sub_81D5710
	movs r2, 0
	ldr r0, =gTrainerClassToNameIndex
	adds r4, r0
	ldrb r3, [r4]
	ldr r1, =gUnknown_0862A3B4
_081D6406:
	ldrb r0, [r1]
	cmp r0, r3
	bne _081D641C
	ldrb r0, [r1, 0x1]
	b _081D6426
	.pool
_081D641C:
	adds r1, 0x4
	adds r2, 0x1
	cmp r2, 0x35
	bls _081D6406
	movs r0, 0
_081D6426:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D63C8

	thumb_func_start sub_81D642C
sub_81D642C: @ 81D642C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r4, r0, 0
	mov r0, sp
	strb r1, [r0]
	adds r0, r4, 0
	movs r1, 0xB
	movs r2, 0
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	ldr r5, =gExperienceTables
	mov r1, sp
	ldrb r2, [r1]
	lsls r2, 2
	ldr r3, =gBaseStats
	lsls r1, r0, 3
	subs r1, r0
	lsls r1, 2
	adds r1, r3
	ldrb r1, [r1, 0x13]
	movs r0, 0xCA
	lsls r0, 1
	muls r0, r1
	adds r2, r0
	adds r2, r5
	ldr r0, [r2]
	str r0, [sp, 0x4]
	add r2, sp, 0x4
	adds r0, r4, 0
	movs r1, 0x19
	bl SetMonData
	adds r0, r4, 0
	movs r1, 0x38
	mov r2, sp
	bl SetMonData
	adds r0, r4, 0
	bl CalculateMonStats
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D642C

	thumb_func_start sub_81D6490
sub_81D6490: @ 81D6490
	push {r4,lr}
	bl sub_81D56B0
	ldr r0, =gUnknown_0203CF54
	ldr r0, [r0]
	ldrb r4, [r0, 0x6]
	bl sub_81D5710
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D6490

	thumb_func_start sub_81D64AC
sub_81D64AC: @ 81D64AC
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r1, 0xEE
	lsls r1, 4
	adds r0, r1
	movs r1, 0xFF
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_81D64AC

	thumb_func_start sub_81D64C0
sub_81D64C0: @ 81D64C0
	push {lr}
	bl sub_81D6534
	cmp r0, 0x1
	bne _081D64D4
	ldr r0, =gUnknown_0862A5D4
	movs r1, 0x70
	movs r2, 0x20
	bl LoadPalette
_081D64D4:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D64C0

	thumb_func_start sub_81D64DC
sub_81D64DC: @ 81D64DC
	ldr r1, =gScriptResult
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r2, =0x00000ef9
	adds r0, r2
	ldrb r0, [r0]
	lsrs r0, 7
	strh r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D64DC

	thumb_func_start sub_81D64FC
sub_81D64FC: @ 81D64FC
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	ldr r0, =0x00000ef9
	adds r1, r0
	ldrb r0, [r1]
	movs r2, 0x80
	orrs r0, r2
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D64FC

	thumb_func_start sub_81D6518
sub_81D6518: @ 81D6518
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	ldr r0, =0x00000ef9
	adds r1, r0
	ldrb r2, [r1]
	movs r0, 0x7F
	ands r0, r2
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_81D6518

	thumb_func_start sub_81D6534
sub_81D6534: @ 81D6534
	push {lr}
	bl sub_81D5C18
	lsls r0, 24
	cmp r0, 0
	beq _081D6560
	bl GetCurrentTrainerHillMapId
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x6
	beq _081D6560
	bl sub_81D5C00
	ldr r0, =gScriptResult
	ldrh r0, [r0]
	cmp r0, 0
	beq _081D6560
	movs r0, 0x1
	b _081D6562
	.pool
_081D6560:
	movs r0, 0
_081D6562:
	pop {r1}
	bx r1
	thumb_func_end sub_81D6534

	thumb_func_start sub_81D6568
sub_81D6568: @ 81D6568
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003d6e
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _081D6590
	ldr r1, =gScriptResult
	movs r0, 0
	b _081D6594
	.pool
_081D6590:
	ldr r1, =gScriptResult
	movs r0, 0x1
_081D6594:
	strh r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6568

	thumb_func_start sub_81D65A0
sub_81D65A0: @ 81D65A0
	push {r4,r5,lr}
	ldr r4, =gSaveBlock1Ptr
	ldr r2, [r4]
	ldr r5, =gSpecialVar_0x8005
	ldr r0, =0x00003d6e
	adds r2, r0
	ldrb r1, [r5]
	lsls r1, 6
	ldrb r3, [r2]
	movs r0, 0x3F
	ands r0, r3
	orrs r0, r1
	strb r0, [r2]
	ldr r1, [r4]
	ldr r3, =0x00003d68
	adds r2, r1, r3
	ldrh r0, [r5]
	lsls r0, 2
	ldr r3, =0x00003718
	adds r1, r3
	adds r1, r0
	ldr r0, [r1]
	str r0, [r2]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D65A0

	thumb_func_start sub_81D65E8
sub_81D65E8: @ 81D65E8
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r7, r0, 24
	movs r3, 0
	movs r4, 0
	ldr r0, =gUnknown_0203CF54
	ldr r6, [r0]
	movs r5, 0x1F
_081D65F8:
	lsls r1, r4, 4
	subs r1, r4
	lsls r1, 3
	subs r1, r4
	lsls r1, 3
	adds r1, r6, r1
	ldrb r2, [r1, 0xC]
	adds r0, r5, 0
	ands r0, r2
	eors r3, r0
	ldrb r1, [r1, 0xD]
	adds r0, r5, 0
	ands r0, r1
	eors r3, r0
	lsls r0, r3, 24
	lsrs r3, r0, 24
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _081D65F8
	movs r1, 0x5
	cmp r7, 0
	beq _081D662A
	movs r1, 0xA
_081D662A:
	adds r0, r3, 0
	bl __umodsi3
	lsls r0, 24
	lsrs r3, r0, 24
	adds r0, r3, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D65E8

	thumb_func_start sub_81D6640
sub_81D6640: @ 81D6640
	push {r4,r5,lr}
	movs r3, 0
	movs r2, 0
	ldr r0, =gUnknown_0203CF54
	ldr r4, [r0]
_081D664A:
	lsls r0, r2, 4
	subs r0, r2
	lsls r0, 3
	subs r0, r2
	lsls r0, 3
	adds r0, r4, r0
	ldrb r1, [r0, 0xC]
	adds r1, r3, r1
	ldrb r0, [r0, 0xD]
	adds r3, r1, r0
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _081D664A
	adds r0, r3, 0
	cmp r0, 0
	bge _081D6670
	adds r0, 0xFF
_081D6670:
	asrs r4, r0, 8
	lsrs r0, 31
	adds r0, r4, r0
	asrs r0, 1
	lsls r0, 1
	subs r4, r0
	ldr r0, =0x00000864
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081D66A0
	ldr r0, =gUnknown_0203CF54
	ldr r0, [r0]
	ldrb r0, [r0, 0x4]
	cmp r0, 0x8
	bne _081D66A0
	movs r0, 0x1
	b _081D66A2
	.pool
_081D66A0:
	movs r0, 0
_081D66A2:
	bl sub_81D65E8
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =gSaveBlock1Ptr
	ldr r5, [r0]
	ldr r1, =0x00003d6e
	adds r0, r5, r1
	ldrb r1, [r0]
	movs r0, 0xC0
	ands r0, r1
	cmp r0, 0xC0
	bne _081D66C8
	adds r0, r2, 0x1
	movs r1, 0xA
	bl __modsi3
	lsls r0, 24
	lsrs r2, r0, 24
_081D66C8:
	ldr r1, =gUnknown_0862A5CC
	lsls r0, r4, 2
	adds r0, r1
	ldr r1, [r0]
	lsls r0, r2, 2
	adds r0, r1
	ldr r4, [r0]
	ldr r1, =0x00003d64
	adds r0, r5, r1
	ldr r0, [r0]
	movs r1, 0xE1
	lsls r1, 4
	bl __divsi3
	movs r1, 0
	cmp r0, 0xB
	ble _081D6704
	movs r1, 0x1
	cmp r0, 0xC
	ble _081D6704
	movs r1, 0x2
	cmp r0, 0xD
	ble _081D6704
	movs r1, 0x3
	cmp r0, 0xF
	ble _081D6704
	movs r1, 0x5
	cmp r0, 0x11
	bgt _081D6704
	movs r1, 0x4
_081D6704:
	lsls r0, r1, 1
	adds r0, r4
	ldrh r0, [r0]
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D6640

	thumb_func_start sub_81D6720
sub_81D6720: @ 81D6720
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r4, r0, 0
	adds r5, r1, 0
	mov r8, r2
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	ldr r6, =gUnknown_0203CF60
	ldr r0, =0x00002018
	bl AllocZeroed
	str r0, [r6]
	ldr r1, =0x00002006
	adds r0, r1
	strb r4, [r0]
	ldr r0, [r6]
	mov r1, r8
	str r1, [r0]
	ldr r1, =0x00002007
	adds r0, r1
	strb r5, [r0]
	ldr r0, =sub_81D6774
	bl SetMainCallback2
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6720

	thumb_func_start sub_81D6774
sub_81D6774: @ 81D6774
	push {lr}
	bl SetVBlankHBlankCallbacksToNull
	bl clear_scheduled_bg_copies_to_vram
	bl remove_some_task
	bl FreeAllSpritePalettes
	bl ResetPaletteFade
	bl ResetSpriteData
	bl ResetTasks
	movs r0, 0
	movs r1, 0xF0
	movs r2, 0x20
	bl FillPalette
	ldr r1, =gUnknown_0862A6A0
	ldr r0, =gUnknown_0203CF60
	ldr r0, [r0]
	ldr r2, =0x00002006
	adds r0, r2
	ldrb r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0
	bl CreateTask
	ldr r0, =sub_81D67D0
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6774

	thumb_func_start sub_81D67D0
sub_81D67D0: @ 81D67D0
	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_81D67D0

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

	thumb_func_start sub_81D6800
sub_81D6800: @ 81D6800
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081D6830
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	ldr r4, =gUnknown_0203CF60
	ldr r0, [r4]
	ldr r0, [r0]
	bl SetMainCallback2
	ldr r0, [r4]
	bl Free
	adds r0, r5, 0
	bl DestroyTask
_081D6830:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6800

	thumb_func_start sub_81D6840
sub_81D6840: @ 81D6840
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	adds r6, r3, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	bne _081D68B2
	ldr r2, =gUnknown_0203CF60
	ldr r1, [r2]
	ldr r4, =0x00002007
	adds r0, r1, r4
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081D6888
	ldr r0, =gTasks
	lsls r1, r3, 2
	adds r1, r3
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81D6800
	b _081D68B0
	.pool
_081D6888:
	ldr r4, =0x00002006
	adds r1, r4
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	ldr r2, [r2]
	ldr r1, =0x00002004
	adds r0, r2, r1
	strh r5, [r0]
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r3, =gUnknown_0862A6A0
	adds r2, r4
	ldrb r0, [r2]
	lsls r0, 2
	adds r0, r3
	ldr r0, [r0]
_081D68B0:
	str r0, [r1]
_081D68B2:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6840

	thumb_func_start sub_81D68C8
sub_81D68C8: @ 81D68C8
	push {lr}
	movs r0, 0x48
	movs r1, 0x3F
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x40
	movs r1, 0xF0
	bl SetGpuReg
	ldr r1, =0x00001888
	movs r0, 0x44
	bl SetGpuReg
	ldr r0, =gPlttBufferUnfaded
	movs r1, 0
	strh r1, [r0]
	ldr r0, =gPlttBufferFaded
	strh r1, [r0]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D68C8

	thumb_func_start sub_81D6904
sub_81D6904: @ 81D6904
	push {lr}
	movs r0, 0x48
	movs r1, 0x3F
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x3F
	bl SetGpuReg
	pop {r0}
	bx r0
	thumb_func_end sub_81D6904

	thumb_func_start sub_81D691C
sub_81D691C: @ 81D691C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r4, r0, 0
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r5, r0, r1
	bl sub_81D750C
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081D697E
	movs r0, 0
	ldrsh r1, [r5, r0]
	cmp r1, 0x40
	bne _081D6954
	bl sub_81D7438
	b _081D6978
	.pool
_081D6954:
	cmp r1, 0x90
	bne _081D695E
	bl sub_81D7480
	b _081D6978
_081D695E:
	cmp r1, 0x94
	beq _081D6974
	movs r0, 0xA4
	lsls r0, 1
	cmp r1, r0
	bne _081D6978
	adds r0, r4, 0
	movs r1, 0
	bl sub_81D75B4
	b _081D697E
_081D6974:
	bl sub_81D74C8
_081D6978:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
_081D697E:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D691C

	thumb_func_start sub_81D6984
sub_81D6984: @ 81D6984
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r0, =gUnknown_0862A72C
	mov r8, r0
	movs r1, 0x58
	movs r2, 0x48
	movs r3, 0x3
	bl CreateSprite
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r6, =gSprites
	lsls r4, r5, 4
	adds r4, r5
	lsls r4, 2
	adds r0, r6, 0
	adds r0, 0x1C
	adds r0, r4, r0
	ldr r1, =sub_81D6A20
	str r1, [r0]
	adds r0, r6, 0
	adds r0, 0x2E
	adds r4, r0
	mov r0, r8
	movs r1, 0x38
	movs r2, 0x68
	movs r3, 0x3
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	ldr r0, =gUnknown_0862A750
	movs r1, 0x4B
	movs r2, 0x65
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x2]
	ldr r0, =gUnknown_0862A774
	movs r1, 0x6D
	movs r2, 0x72
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x4]
	movs r0, 0
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x1
	bl StartSpriteAnim
	adds r0, r5, 0
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D6984

	thumb_func_start sub_81D6A20
sub_81D6A20: @ 81D6A20
	push {r4,lr}
	adds r3, r0, 0
	movs r0, 0x2E
	adds r0, r3
	mov r12, r0
	ldrh r0, [r0, 0xA]
	adds r0, 0x1
	movs r1, 0x1F
	ands r0, r1
	mov r1, r12
	strh r0, [r1, 0xA]
	cmp r0, 0
	bne _081D6A84
	ldrh r1, [r3, 0x20]
	movs r2, 0x20
	ldrsh r0, [r3, r2]
	cmp r0, 0x48
	beq _081D6A84
	subs r0, r1, 0x1
	strh r0, [r3, 0x20]
	ldr r2, =gSprites
	movs r4, 0x2E
	ldrsh r1, [r3, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, 0x1
	strh r1, [r0, 0x20]
	mov r0, r12
	movs r4, 0x2
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, 0x1
	strh r1, [r0, 0x20]
	mov r0, r12
	movs r4, 0x4
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, 0x1
	strh r1, [r0, 0x20]
_081D6A84:
	adds r0, r3, 0
	adds r0, 0x2B
	ldrb r3, [r0]
	cmp r3, 0x1
	beq _081D6AE4
	cmp r3, 0x1
	bgt _081D6A9C
	cmp r3, 0
	beq _081D6AA6
	b _081D6B68
	.pool
_081D6A9C:
	cmp r3, 0x2
	beq _081D6B24
	cmp r3, 0x3
	beq _081D6AE4
	b _081D6B68
_081D6AA6:
	ldr r2, =gSprites
	mov r0, r12
	movs r4, 0x2
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x24]
	mov r0, r12
	movs r4, 0x2
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x26]
	mov r0, r12
	movs r4, 0x4
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x24]
	mov r0, r12
	movs r4, 0x4
	ldrsh r1, [r0, r4]
	b _081D6B5E
	.pool
_081D6AE4:
	ldr r2, =gSprites
	mov r0, r12
	movs r3, 0x2
	ldrsh r1, [r0, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000ffff
	strh r1, [r0, 0x24]
	mov r4, r12
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r3, 0
	strh r3, [r0, 0x26]
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0x1
	negs r1, r1
	b _081D6B58
	.pool
_081D6B24:
	ldr r2, =gSprites
	mov r3, r12
	movs r4, 0x2
	ldrsh r1, [r3, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000ffff
	strh r1, [r0, 0x24]
	movs r0, 0x2
	ldrsh r1, [r3, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r3, 0x1
	strh r3, [r0, 0x26]
	mov r4, r12
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000fffe
_081D6B58:
	strh r1, [r0, 0x24]
	movs r0, 0x4
	ldrsh r1, [r4, r0]
_081D6B5E:
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x26]
_081D6B68:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6A20

	thumb_func_start sub_81D6B7C
sub_81D6B7C: @ 81D6B7C
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r5, =gUnknown_0862A81C
	adds r0, r5, 0
	movs r1, 0x88
	movs r2, 0x60
	movs r3, 0x1
	bl CreateSprite
	mov r8, r0
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r6, =gSprites
	lsls r4, r0, 4
	add r4, r8
	lsls r4, 2
	adds r0, r6, 0
	adds r0, 0x1C
	adds r0, r4, r0
	ldr r1, =sub_81D6D20
	str r1, [r0]
	adds r0, r6, 0
	adds r0, 0x2E
	adds r4, r0
	adds r0, r5, 0
	movs r1, 0xA8
	movs r2, 0x60
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4]
	adds r0, r5, 0
	movs r1, 0x88
	movs r2, 0x70
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4]
	orrs r0, r1
	strh r0, [r4]
	adds r0, r5, 0
	movs r1, 0xA8
	movs r2, 0x70
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x2]
	adds r0, r5, 0
	movs r1, 0x88
	movs r2, 0x80
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x2]
	orrs r0, r1
	strh r0, [r4, 0x2]
	adds r0, r5, 0
	movs r1, 0xA8
	movs r2, 0x80
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x4]
	adds r0, r5, 0
	movs r1, 0x68
	movs r2, 0x80
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x4]
	orrs r0, r1
	strh r0, [r4, 0x4]
	adds r0, r5, 0
	movs r1, 0x88
	movs r2, 0x80
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x6]
	adds r0, r5, 0
	movs r1, 0xB8
	movs r2, 0x80
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x6]
	orrs r0, r1
	strh r0, [r4, 0x6]
	ldr r0, =gUnknown_0862A84C
	movs r1, 0xD0
	movs r2, 0x84
	movs r3, 0
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x8]
	ldr r0, =gUnknown_0862A864
	movs r1, 0xC8
	movs r2, 0x78
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x8]
	orrs r0, r1
	strh r0, [r4, 0x8]
	ldrh r1, [r4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x1
	bl StartSpriteAnim
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x2
	bl StartSpriteAnim
	ldrh r1, [r4, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x3
	bl StartSpriteAnim
	ldrb r1, [r4, 0x2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x4
	bl StartSpriteAnim
	ldrh r1, [r4, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x5
	bl StartSpriteAnim
	ldrb r1, [r4, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x6
	bl StartSpriteAnim
	ldrh r1, [r4, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x7
	bl StartSpriteAnim
	ldrb r1, [r4, 0x6]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x8
	bl StartSpriteAnim
	mov r0, r8
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D6B7C

	thumb_func_start sub_81D6D20
sub_81D6D20: @ 81D6D20
	push {r4-r7,lr}
	adds r4, r0, 0
	adds r3, r4, 0
	adds r3, 0x2E
	ldrh r0, [r3, 0xA]
	adds r0, 0x1
	movs r1, 0x1F
	ands r0, r1
	strh r0, [r3, 0xA]
	ldr r7, =gSprites
	cmp r0, 0
	bne _081D6E0E
	ldrh r1, [r4, 0x20]
	movs r2, 0x20
	ldrsh r0, [r4, r2]
	cmp r0, 0x98
	beq _081D6E0E
	adds r0, r1, 0x1
	strh r0, [r4, 0x20]
	ldrh r1, [r4, 0x2E]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r4, 0x2E]
	movs r2, 0xFF
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x2]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x4]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x6]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x8]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x8]
	ands r2, r0
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
_081D6E0E:
	adds r6, r7, 0
	movs r5, 0xFF
	ldrb r1, [r3, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x2B
	ldrb r2, [r0]
	cmp r2, 0x1
	beq _081D6EE0
	cmp r2, 0x1
	bgt _081D6E34
	cmp r2, 0
	beq _081D6E40
	b _081D6FC8
	.pool
_081D6E34:
	cmp r2, 0x2
	bne _081D6E3A
	b _081D6F68
_081D6E3A:
	cmp r2, 0x3
	beq _081D6EE0
	b _081D6FC8
_081D6E40:
	strh r2, [r4, 0x26]
	ldrh r1, [r3]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x2]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x4]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x6]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	ands r1, r5
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	b _081D6FC6
_081D6EE0:
	movs r2, 0x1
	strh r2, [r4, 0x26]
	ldrh r1, [r3]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x6]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x8]
	b _081D6FBE
_081D6F68:
	strh r2, [r4, 0x26]
	ldrh r1, [r3]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r0, [r3]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x2]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	ands r1, r5
_081D6FBE:
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
_081D6FC6:
	strh r2, [r0, 0x26]
_081D6FC8:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D6D20

	thumb_func_start sub_81D6FD0
sub_81D6FD0: @ 81D6FD0
	push {lr}
	bl sub_81D67EC
	bl sub_80BA0A8
	pop {r0}
	bx r0
	thumb_func_end sub_81D6FD0

	thumb_func_start sub_81D6FE0
sub_81D6FE0: @ 81D6FE0
	push {r4,lr}
	bl sub_8121DA0
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0862A888
	movs r0, 0
	movs r2, 0x3
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00000804
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001004
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	bl sub_8121E10
	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 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 {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D6FE0

	thumb_func_start sub_81D706C
sub_81D706C: @ 81D706C
	push {r4,lr}
	sub sp, 0x4
	bl reset_temp_tile_data_buffers
	ldr r1, =gUnknown_08DA33C0
	movs r0, 0
	str r0, [sp]
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
_081D7082:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081D7082
	ldr r0, =gUnknown_08DA3988
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA3824
	ldr r1, [r4]
	ldr r2, =0x00000804
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA3A88
	ldr r1, [r4]
	ldr r2, =0x00001004
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA37E8
	movs r1, 0
	movs r2, 0x40
	bl LoadCompressedPalette
	ldr r0, =gUnknown_0862A8C4
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862A8F8
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862A924
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862A9D4
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AA14
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AA34
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862A8CC
	bl LoadCompressedObjectPalette
	ldr r0, =gUnknown_0862A9DC
	bl LoadCompressedObjectPalette
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D706C

	thumb_func_start task_add_00_WIN0V_open_close_above_and_more
task_add_00_WIN0V_open_close_above_and_more: @ 81D7134
	push {r4-r7,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r6, r1, 3
	ldr r7, =gTasks + 0x8
	adds r5, r6, r7
	bl dp12_8087EA4
	bl sub_81D6FE0
	bl sub_81D706C
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r1, =gUnknown_02038C28
	ldr r2, =0x010003c0
	add r0, sp, 0x4
	bl CpuFastSet
	ldr r2, =gUnknown_0862A87C
	ldr r0, [r2]
	ldr r1, [r2, 0x4]
	ldr r2, [r2, 0x8]
	bl sub_80BA038
	strh r4, [r5]
	ldr r0, =sub_81D7228
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x2]
	ldr r0, =gUnknown_0203CF60
	ldr r0, [r0]
	ldr r1, =0x00002006
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081D71CC
	bl sub_81D6984
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x4]
	bl sub_81D6B7C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x6]
	adds r0, r7, 0
	subs r0, 0x8
	adds r0, r6, r0
	ldr r1, =sub_81D691C
	str r1, [r0]
	b _081D71EE
	.pool
_081D71CC:
	bl sub_81D7664
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x4]
	bl sub_81D78BC
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x6]
	adds r0, r7, 0
	subs r0, 0x8
	adds r0, r6, r0
	ldr r1, =sub_81D736C
	str r1, [r0]
	bl StopMapMusic
_081D71EE:
	movs r4, 0x1
	negs r4, r4
	adds r0, r4, 0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	str r0, [sp]
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	ldr r0, =sub_81D6FD0
	bl SetVBlankCallback
	movs r0, 0x53
	bl PlaySE
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_add_00_WIN0V_open_close_above_and_more

	thumb_func_start sub_81D7228
sub_81D7228: @ 81D7228
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r3, r1, r0
	movs r1, 0x18
	ldr r7, =gUnknown_0203CF60
	ldr r4, =gUnknown_02038C28
	movs r0, 0xF0
	lsls r0, 3
	adds r5, r4, r0
_081D7244:
	lsls r0, r1, 16
	asrs r1, r0, 16
	adds r6, r0, 0
	cmp r1, 0x2F
	bgt _081D726C
	lsls r1, 1
	adds r2, r1, r4
	ldrh r0, [r3]
	lsrs r0, 8
	strh r0, [r2]
	adds r1, r5
	ldrh r0, [r3]
	b _081D72CA
	.pool
_081D726C:
	cmp r1, 0x3F
	bgt _081D7280
	lsls r1, 1
	adds r2, r1, r4
	ldrh r0, [r3, 0x2]
	lsrs r0, 8
	strh r0, [r2]
	adds r1, r5
	ldrh r0, [r3, 0x2]
	b _081D72CA
_081D7280:
	cmp r1, 0x4B
	bgt _081D7294
	lsls r1, 1
	adds r2, r1, r4
	ldrh r0, [r3, 0x4]
	lsrs r0, 8
	strh r0, [r2]
	adds r1, r5
	ldrh r0, [r3, 0x4]
	b _081D72CA
_081D7294:
	cmp r1, 0x53
	bgt _081D72A8
	lsls r1, 1
	adds r2, r1, r4
	ldrh r0, [r3, 0x6]
	lsrs r0, 8
	strh r0, [r2]
	adds r1, r5
	ldrh r0, [r3, 0x6]
	b _081D72CA
_081D72A8:
	cmp r1, 0x57
	bgt _081D72BC
	lsls r1, 1
	adds r2, r1, r4
	ldrh r0, [r3, 0x8]
	lsrs r0, 8
	strh r0, [r2]
	adds r1, r5
	ldrh r0, [r3, 0x8]
	b _081D72CA
_081D72BC:
	lsls r1, 1
	adds r2, r1, r4
	ldrh r0, [r3, 0xA]
	lsrs r0, 8
	strh r0, [r2]
	adds r1, r5
	ldrh r0, [r3, 0xA]
_081D72CA:
	lsrs r0, 8
	strh r0, [r1]
	movs r1, 0x80
	lsls r1, 9
	adds r0, r6, r1
	lsrs r1, r0, 16
	asrs r0, 16
	cmp r0, 0x5B
	ble _081D7244
	ldr r0, [r7]
	ldr r1, =0x00002006
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081D7324
	movs r1, 0xE0
	lsls r1, 1
	adds r0, r1, 0
	ldrh r1, [r3]
	adds r0, r1
	strh r0, [r3]
	movs r1, 0xC0
	lsls r1, 1
	adds r0, r1, 0
	ldrh r1, [r3, 0x2]
	adds r0, r1
	strh r0, [r3, 0x2]
	movs r1, 0xA0
	lsls r1, 1
	adds r0, r1, 0
	ldrh r1, [r3, 0x4]
	adds r0, r1
	strh r0, [r3, 0x4]
	movs r1, 0x80
	lsls r1, 1
	adds r0, r1, 0
	ldrh r1, [r3, 0x6]
	adds r0, r1
	strh r0, [r3, 0x6]
	ldrh r0, [r3, 0x8]
	adds r0, 0xC0
	b _081D735E
	.pool
_081D7324:
	movs r1, 0xC0
	lsls r1, 2
	adds r0, r1, 0
	ldrh r1, [r3]
	adds r0, r1
	strh r0, [r3]
	movs r1, 0xA0
	lsls r1, 2
	adds r0, r1, 0
	ldrh r1, [r3, 0x2]
	adds r0, r1
	strh r0, [r3, 0x2]
	movs r1, 0x80
	lsls r1, 2
	adds r0, r1, 0
	ldrh r1, [r3, 0x4]
	adds r0, r1
	strh r0, [r3, 0x4]
	movs r1, 0xC0
	lsls r1, 1
	adds r0, r1, 0
	ldrh r1, [r3, 0x6]
	adds r0, r1
	strh r0, [r3, 0x6]
	movs r1, 0x80
	lsls r1, 1
	adds r0, r1, 0
	ldrh r1, [r3, 0x8]
	adds r0, r1
_081D735E:
	strh r0, [r3, 0x8]
	ldrh r0, [r3, 0xA]
	adds r0, 0x80
	strh r0, [r3, 0xA]
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D7228

	thumb_func_start sub_81D736C
sub_81D736C: @ 81D736C
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r7, =gTasks + 0x8
	adds r4, r0, r7
	bl sub_81D750C
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0
	bne _081D742E
	movs r0, 0
	ldrsh r1, [r4, r0]
	cmp r1, 0x20
	beq _081D739C
	cmp r1, 0x70
	bne _081D73AC
_081D739C:
	bl sub_81D7438
	b _081D7428
	.pool
_081D73AC:
	cmp r1, 0xD8
	bne _081D73B6
	bl sub_81D7480
	b _081D7428
_081D73B6:
	cmp r1, 0xDC
	bne _081D73C0
	bl sub_81D74C8
	b _081D7428
_081D73C0:
	movs r0, 0xBE
	lsls r0, 1
	cmp r1, r0
	beq _081D73D8
	adds r0, 0x20
	cmp r1, r0
	bne _081D7428
	adds r0, r5, 0
	movs r1, 0x2
	bl sub_81D75B4
	b _081D742E
_081D73D8:
	movs r1, 0x91
	lsls r1, 2
	movs r0, 0x50
	bl SetGpuReg
	adds r2, r7, 0
	subs r2, 0x8
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldr r1, =sub_81D752C
	str r1, [r0]
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	strh r6, [r0, 0x8]
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrh r1, [r4, 0x4]
	strh r1, [r0, 0xC]
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrh r1, [r4, 0x6]
	strh r1, [r0, 0xE]
	bl remove_some_task
_081D7428:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_081D742E:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D736C

	thumb_func_start sub_81D7438
sub_81D7438: @ 81D7438
	push {r4,lr}
	sub sp, 0xC
	movs r0, 0x57
	bl PlaySE
	ldr r0, =0x00007fff
	ldr r1, =0x0000ffff
	str r1, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl sub_80A2C44
	ldr r0, =0xffff0000
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r1, 0x1
	str r1, [sp, 0x8]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl sub_80A2C44
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7438

	thumb_func_start sub_81D7480
sub_81D7480: @ 81D7480
	push {r4,lr}
	sub sp, 0xC
	movs r0, 0x57
	bl PlaySE
	ldr r0, =0x00007fff
	ldr r1, =0x0000ffff
	str r1, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0x10
	bl sub_80A2C44
	ldr r0, =0xffff0000
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r1, 0x1
	str r1, [sp, 0x8]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0x10
	bl sub_80A2C44
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7480

	thumb_func_start sub_81D74C8
sub_81D74C8: @ 81D74C8
	push {r4,lr}
	sub sp, 0xC
	ldr r0, =0x00007fff
	ldr r1, =0x0000ffff
	str r1, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x4
	movs r2, 0x10
	movs r3, 0
	bl sub_80A2C44
	ldr r0, =0xffff0000
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r1, 0x1
	str r1, [sp, 0x8]
	movs r1, 0x4
	movs r2, 0x10
	movs r3, 0
	bl sub_80A2C44
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D74C8

	thumb_func_start sub_81D750C
sub_81D750C: @ 81D750C
	push {lr}
	movs r1, 0x80
	lsls r1, 3
	movs r0, 0x2
	movs r2, 0x1
	bl ChangeBgX
	movs r1, 0x80
	lsls r1, 4
	movs r0, 0x2
	movs r2, 0x2
	bl ChangeBgY
	pop {r0}
	bx r0
	thumb_func_end sub_81D750C

	thumb_func_start sub_81D752C
sub_81D752C: @ 81D752C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r5, r1, r0
	movs r0, 0x4
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r4, =gSprites
	adds r0, r4
	bl sub_81D7860
	movs r0, 0x6
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	bl sub_81D7D14
	movs r0, 0x1
	bl GetBgY
	lsls r0, 16
	lsrs r4, r0, 16
	movs r0, 0x1
	bl GetBgY
	cmp r0, 0
	beq _081D757A
	movs r0, 0x80
	lsls r0, 8
	cmp r4, r0
	bls _081D7586
_081D757A:
	movs r1, 0x80
	lsls r1, 3
	movs r0, 0x1
	movs r2, 0x2
	bl ChangeBgY
_081D7586:
	ldrh r2, [r5]
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0x10
	beq _081D75A6
	adds r2, 0x1
	strh r2, [r5]
	lsls r1, r2, 8
	movs r0, 0x10
	subs r0, r2
	orrs r1, r0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x52
	bl SetGpuReg
_081D75A6:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D752C

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

	thumb_func_start sub_81D7600
sub_81D7600: @ 81D7600
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r6, r1, 3
	ldr r7, =gTasks + 0x8
	adds r5, r6, r7
	bl sub_81D750C
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _081D7652
	ldrb r0, [r5, 0x2]
	bl DestroyTask
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0
	bl SetVBlankCallback
	bl remove_some_task
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	strh r4, [r5]
	adds r0, r7, 0
	subs r0, 0x8
	adds r0, r6, r0
	ldr r1, =sub_81D6840
	str r1, [r0]
_081D7652:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7600

	thumb_func_start sub_81D7664
sub_81D7664: @ 81D7664
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r0, =gUnknown_0862A8D4
	mov r8, r0
	movs r1, 0x62
	movs r2, 0x48
	movs r3, 0x3
	bl CreateSprite
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	ldr r6, =gSprites
	lsls r4, r5, 4
	adds r4, r5
	lsls r4, 2
	adds r0, r6, 0
	adds r0, 0x1C
	adds r0, r4, r0
	ldr r1, =sub_81D7700
	str r1, [r0]
	adds r0, r6, 0
	adds r0, 0x2E
	adds r4, r0
	mov r0, r8
	movs r1, 0x42
	movs r2, 0x68
	movs r3, 0x3
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	ldr r0, =gUnknown_0862A900
	movs r1, 0x55
	movs r2, 0x65
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x2]
	ldr r0, =gUnknown_0862A92C
	movs r1, 0x77
	movs r2, 0x72
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x4]
	movs r0, 0
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x1
	bl StartSpriteAnim
	adds r0, r5, 0
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D7664

	thumb_func_start sub_81D7700
sub_81D7700: @ 81D7700
	push {r4,lr}
	adds r3, r0, 0
	movs r0, 0x2E
	adds r0, r3
	mov r12, r0
	ldrh r0, [r0, 0xA]
	adds r0, 0x1
	movs r1, 0xF
	ands r0, r1
	mov r1, r12
	strh r0, [r1, 0xA]
	movs r1, 0x7
	ands r1, r0
	cmp r1, 0
	bne _081D7768
	ldrh r1, [r3, 0x20]
	movs r2, 0x20
	ldrsh r0, [r3, r2]
	cmp r0, 0x48
	beq _081D7768
	subs r0, r1, 0x1
	strh r0, [r3, 0x20]
	ldr r2, =gSprites
	movs r4, 0x2E
	ldrsh r1, [r3, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, 0x1
	strh r1, [r0, 0x20]
	mov r0, r12
	movs r4, 0x2
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, 0x1
	strh r1, [r0, 0x20]
	mov r0, r12
	movs r4, 0x4
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, 0x1
	strh r1, [r0, 0x20]
_081D7768:
	adds r0, r3, 0
	adds r0, 0x2B
	ldrb r3, [r0]
	cmp r3, 0x1
	beq _081D77C8
	cmp r3, 0x1
	bgt _081D7780
	cmp r3, 0
	beq _081D778A
	b _081D784C
	.pool
_081D7780:
	cmp r3, 0x2
	beq _081D7808
	cmp r3, 0x3
	beq _081D77C8
	b _081D784C
_081D778A:
	ldr r2, =gSprites
	mov r0, r12
	movs r4, 0x2
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x24]
	mov r0, r12
	movs r4, 0x2
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x26]
	mov r0, r12
	movs r4, 0x4
	ldrsh r1, [r0, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x24]
	mov r0, r12
	movs r4, 0x4
	ldrsh r1, [r0, r4]
	b _081D7842
	.pool
_081D77C8:
	ldr r2, =gSprites
	mov r0, r12
	movs r3, 0x2
	ldrsh r1, [r0, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000ffff
	strh r1, [r0, 0x24]
	mov r4, r12
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r3, 0
	strh r3, [r0, 0x26]
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0x1
	negs r1, r1
	b _081D783C
	.pool
_081D7808:
	ldr r2, =gSprites
	mov r3, r12
	movs r4, 0x2
	ldrsh r1, [r3, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000ffff
	strh r1, [r0, 0x24]
	movs r0, 0x2
	ldrsh r1, [r3, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r3, 0x1
	strh r3, [r0, 0x26]
	mov r4, r12
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000fffe
_081D783C:
	strh r1, [r0, 0x24]
	movs r0, 0x4
	ldrsh r1, [r4, r0]
_081D7842:
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x26]
_081D784C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7700

	thumb_func_start sub_81D7860
sub_81D7860: @ 81D7860
	push {r4,lr}
	adds r1, r0, 0
	adds r3, r1, 0
	adds r3, 0x2E
	ldrh r2, [r1, 0x22]
	movs r4, 0x22
	ldrsh r0, [r1, r4]
	cmp r0, 0xA0
	bgt _081D78B0
	adds r0, r2, 0
	adds r0, 0x8
	strh r0, [r1, 0x22]
	ldr r2, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r1, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	movs r4, 0x2
	ldrsh r1, [r3, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	movs r0, 0x4
	ldrsh r1, [r3, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
_081D78B0:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7860

	thumb_func_start sub_81D78BC
sub_81D78BC: @ 81D78BC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r5, =gUnknown_0862A9E4
	adds r0, r5, 0
	movs r1, 0x7E
	movs r2, 0x60
	movs r3, 0x1
	bl CreateSprite
	mov r8, r0
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r6, =gSprites
	lsls r4, r0, 4
	add r4, r8
	lsls r4, 2
	adds r0, r6, 0
	adds r0, 0x1C
	adds r0, r4, r0
	ldr r1, =sub_81D7A60
	str r1, [r0]
	adds r0, r6, 0
	adds r0, 0x2E
	adds r4, r0
	adds r0, r5, 0
	movs r1, 0x9E
	movs r2, 0x60
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4]
	adds r0, r5, 0
	movs r1, 0x7E
	movs r2, 0x70
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4]
	orrs r0, r1
	strh r0, [r4]
	adds r0, r5, 0
	movs r1, 0x9E
	movs r2, 0x70
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x2]
	adds r0, r5, 0
	movs r1, 0x7E
	movs r2, 0x80
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x2]
	orrs r0, r1
	strh r0, [r4, 0x2]
	adds r0, r5, 0
	movs r1, 0x9E
	movs r2, 0x80
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x4]
	adds r0, r5, 0
	movs r1, 0x5E
	movs r2, 0x80
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x4]
	orrs r0, r1
	strh r0, [r4, 0x4]
	adds r0, r5, 0
	movs r1, 0x7E
	movs r2, 0x80
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x6]
	adds r0, r5, 0
	movs r1, 0xAE
	movs r2, 0x80
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x6]
	orrs r0, r1
	strh r0, [r4, 0x6]
	ldr r0, =gUnknown_0862AA1C
	movs r1, 0xC6
	movs r2, 0x84
	movs r3, 0
	bl CreateSprite
	lsls r0, 8
	strh r0, [r4, 0x8]
	ldr r0, =gUnknown_0862AA3C
	movs r1, 0xBE
	movs r2, 0x78
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldrh r1, [r4, 0x8]
	orrs r0, r1
	strh r0, [r4, 0x8]
	ldrh r1, [r4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x1
	bl StartSpriteAnim
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x2
	bl StartSpriteAnim
	ldrh r1, [r4, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x3
	bl StartSpriteAnim
	ldrb r1, [r4, 0x2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x4
	bl StartSpriteAnim
	ldrh r1, [r4, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x5
	bl StartSpriteAnim
	ldrb r1, [r4, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x6
	bl StartSpriteAnim
	ldrh r1, [r4, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x7
	bl StartSpriteAnim
	ldrb r1, [r4, 0x6]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	movs r1, 0x8
	bl StartSpriteAnim
	mov r0, r8
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D78BC

	thumb_func_start sub_81D7A60
sub_81D7A60: @ 81D7A60
	push {r4-r7,lr}
	adds r4, r0, 0
	adds r3, r4, 0
	adds r3, 0x2E
	ldrh r0, [r3, 0xA]
	adds r0, 0x1
	movs r1, 0xF
	ands r0, r1
	strh r0, [r3, 0xA]
	movs r1, 0x7
	ands r1, r0
	ldr r7, =gSprites
	cmp r1, 0
	bne _081D7B52
	ldrh r1, [r4, 0x20]
	movs r2, 0x20
	ldrsh r0, [r4, r2]
	cmp r0, 0x98
	beq _081D7B52
	adds r0, r1, 0x1
	strh r0, [r4, 0x20]
	ldrh r1, [r4, 0x2E]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r4, 0x2E]
	movs r2, 0xFF
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x2]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x4]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x6]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r1, [r3, 0x8]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
	ldrh r0, [r3, 0x8]
	ands r2, r0
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r7
	ldrh r1, [r0, 0x20]
	adds r1, 0x1
	strh r1, [r0, 0x20]
_081D7B52:
	adds r6, r7, 0
	movs r5, 0xFF
	ldrb r1, [r3, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x2B
	ldrb r2, [r0]
	cmp r2, 0x1
	beq _081D7C24
	cmp r2, 0x1
	bgt _081D7B78
	cmp r2, 0
	beq _081D7B84
	b _081D7D0C
	.pool
_081D7B78:
	cmp r2, 0x2
	bne _081D7B7E
	b _081D7CAC
_081D7B7E:
	cmp r2, 0x3
	beq _081D7C24
	b _081D7D0C
_081D7B84:
	strh r2, [r4, 0x26]
	ldrh r1, [r3]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x2]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x4]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x6]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	ands r1, r5
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	b _081D7D0A
_081D7C24:
	movs r2, 0x1
	strh r2, [r4, 0x26]
	ldrh r1, [r3]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x6]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrb r1, [r3, 0x8]
	b _081D7D02
_081D7CAC:
	strh r2, [r4, 0x26]
	ldrh r1, [r3]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r0, [r3]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x2]
	adds r1, r5, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	strh r2, [r0, 0x26]
	ldrh r1, [r3, 0x8]
	ands r1, r5
_081D7D02:
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
_081D7D0A:
	strh r2, [r0, 0x26]
_081D7D0C:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D7A60

	thumb_func_start sub_81D7D14
sub_81D7D14: @ 81D7D14
	push {lr}
	adds r2, r0, 0
	movs r0, 0x2E
	adds r0, r2
	mov r12, r0
	ldrh r1, [r2, 0x22]
	movs r3, 0x22
	ldrsh r0, [r2, r3]
	cmp r0, 0xA0
	bgt _081D7E08
	adds r0, r1, 0
	adds r0, 0x8
	strh r0, [r2, 0x22]
	ldr r3, =gSprites
	ldrh r1, [r2, 0x2E]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	ldrh r0, [r2, 0x2E]
	movs r2, 0xFF
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r0, r12
	ldrh r1, [r0, 0x2]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r1, r12
	ldrh r0, [r1, 0x2]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r0, r12
	ldrh r1, [r0, 0x4]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r1, r12
	ldrh r0, [r1, 0x4]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r0, r12
	ldrh r1, [r0, 0x6]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r1, r12
	ldrh r0, [r1, 0x6]
	adds r1, r2, 0
	ands r1, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r0, r12
	ldrh r1, [r0, 0x8]
	lsls r1, 16
	asrs r1, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
	mov r1, r12
	ldrh r0, [r1, 0x8]
	ands r2, r0
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x22]
	adds r1, 0x8
	strh r1, [r0, 0x22]
_081D7E08:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7D14

	thumb_func_start sub_81D7E10
sub_81D7E10: @ 81D7E10
	push {r4,lr}
	bl sub_8121DA0
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0862AA54
	movs r0, 0x1
	movs r2, 0x3
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00000804
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001004
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	bl sub_8121E10
	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 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 {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7E10

	thumb_func_start sub_81D7E9C
sub_81D7E9C: @ 81D7E9C
	push {r4,lr}
	sub sp, 0x4
	bl reset_temp_tile_data_buffers
	ldr r1, =gUnknown_08DA33C0
	movs r4, 0
	str r4, [sp]
	movs r0, 0
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_08DA4F70
	str r4, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_08DA3C94
	str r4, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
_081D7ED0:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081D7ED0
	ldr r0, =gUnknown_08DA3988
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA60B8
	ldr r1, [r4]
	ldr r2, =0x00000804
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA4DEC
	ldr r1, [r4]
	ldr r2, =0x00001004
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA4DA8
	movs r1, 0
	movs r2, 0x40
	bl LoadCompressedPalette
	ldr r0, =gUnknown_0862AA90
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AA98
	bl LoadCompressedObjectPalette
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7E9C

	thumb_func_start sub_81D7F4C
sub_81D7F4C: @ 81D7F4C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r5, =gTasks + 0x8
	adds r6, r4, r5
	movs r0, 0xE8
	lsls r0, 1
	bl PlayNewMapMusic
	bl sub_81D7E10
	bl sub_81D7E9C
	movs r1, 0x94
	lsls r1, 2
	movs r0, 0x50
	bl SetGpuReg
	ldr r1, =0x00000808
	movs r0, 0x52
	bl SetGpuReg
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r0, =sub_81D67EC
	bl SetVBlankCallback
	ldr r0, =sub_81D81A4
	movs r1, 0
	bl CreateTask
	movs r0, 0
	strh r0, [r6]
	strh r0, [r6, 0x2]
	subs r5, 0x8
	adds r4, r5
	ldr r0, =sub_81D7FC0
	str r0, [r4]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D7F4C

	thumb_func_start sub_81D7FC0
sub_81D7FC0: @ 81D7FC0
	push {r4-r6,lr}
	sub sp, 0x10
	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
	movs r0, 0
	ldrsh r5, [r4, r0]
	cmp r5, 0x1
	beq _081D802A
	cmp r5, 0x1
	bgt _081D7FE8
	cmp r5, 0
	beq _081D7FF4
	b _081D815A
	.pool
_081D7FE8:
	cmp r5, 0x2
	beq _081D80A4
	cmp r5, 0x3
	bne _081D7FF2
	b _081D8124
_081D7FF2:
	b _081D815A
_081D7FF4:
	ldrh r1, [r4, 0x2]
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0x8
	bne _081D8024
	movs r0, 0x1
	negs r0, r0
	str r5, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	strh r5, [r4, 0x4]
	movs r0, 0x1E
	strh r0, [r4, 0x6]
	strh r5, [r4, 0x8]
	movs r0, 0x7
	strh r0, [r4, 0xA]
	strh r5, [r4, 0x2]
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _081D815A
_081D8024:
	adds r0, r1, 0x1
	strh r0, [r4, 0x2]
	b _081D815A
_081D802A:
	ldrh r1, [r4, 0x6]
	ldrh r3, [r4, 0x4]
	adds r0, r1, r3
	strh r0, [r4, 0x4]
	ldrh r2, [r4, 0xA]
	ldrh r3, [r4, 0x8]
	adds r0, r2, r3
	strh r0, [r4, 0x8]
	lsls r0, r1, 16
	asrs r0, 16
	cmp r0, 0x3
	ble _081D8046
	subs r0, r1, 0x3
	strh r0, [r4, 0x6]
_081D8046:
	lsls r0, r2, 16
	cmp r0, 0
	beq _081D8050
	subs r0, r2, 0x1
	strh r0, [r4, 0xA]
_081D8050:
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	cmp r0, 0xFF
	ble _081D8078
	movs r2, 0x80
	lsls r2, 1
	adds r0, r2, 0
	strh r0, [r4, 0x4]
	movs r1, 0
	strh r1, [r4, 0x6]
	movs r0, 0xC
	strh r0, [r4, 0xC]
	movs r3, 0x1
	negs r3, r3
	adds r0, r3, 0
	strh r0, [r4, 0xE]
	strh r1, [r4, 0x2]
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
_081D8078:
	movs r1, 0xF0
	lsls r1, 7
	movs r2, 0xC0
	lsls r2, 5
	ldrh r0, [r4, 0x8]
	adds r0, 0x20
	lsls r0, 16
	asrs r0, 16
	str r0, [sp]
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	str r0, [sp, 0x4]
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	str r0, [sp, 0x8]
	movs r0, 0
	str r0, [sp, 0xC]
	movs r0, 0x2
	movs r3, 0x78
	bl SetBgAffine
	b _081D815A
_081D80A4:
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	movs r1, 0xF0
	lsls r1, 7
	movs r2, 0xC0
	lsls r2, 5
	ldrh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 18
	adds r0, 0x20
	ldrh r3, [r4, 0x8]
	adds r0, r3
	lsls r0, 16
	asrs r0, 16
	str r0, [sp]
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	str r0, [sp, 0x4]
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	str r0, [sp, 0x8]
	movs r5, 0
	str r5, [sp, 0xC]
	movs r0, 0x2
	movs r3, 0x78
	bl SetBgAffine
	ldrh r0, [r4, 0xE]
	ldrh r1, [r4, 0xC]
	adds r0, r1
	strh r0, [r4, 0xC]
	lsls r0, 16
	asrs r1, r0, 16
	cmp r1, 0xC
	beq _081D80F4
	movs r0, 0xC
	negs r0, r0
	cmp r1, r0
	bne _081D815A
_081D80F4:
	movs r2, 0xE
	ldrsh r0, [r4, r2]
	negs r0, r0
	strh r0, [r4, 0xE]
	movs r3, 0x2
	ldrsh r1, [r4, r3]
	ldr r0, =0x00000127
	cmp r1, r0
	ble _081D815A
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	movs r0, 0x1
	negs r0, r0
	str r5, [sp]
	movs r1, 0x6
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	b _081D815A
	.pool
_081D8124:
	ldrh r0, [r4, 0x4]
	adds r0, 0x10
	strh r0, [r4, 0x4]
	movs r1, 0xF0
	lsls r1, 7
	movs r2, 0xC0
	lsls r2, 5
	ldrh r0, [r4, 0x8]
	adds r0, 0x20
	lsls r0, 16
	asrs r0, 16
	str r0, [sp]
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	str r0, [sp, 0x4]
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	str r0, [sp, 0x8]
	movs r0, 0
	str r0, [sp, 0xC]
	movs r0, 0x2
	movs r3, 0x78
	bl SetBgAffine
	adds r0, r6, 0
	bl sub_81D8164
_081D815A:
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81D7FC0

	thumb_func_start sub_81D8164
sub_81D8164: @ 81D8164
	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 _081D8192
	movs r0, 0
	bl SetVBlankCallback
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81D6840
	str r0, [r1]
_081D8192:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8164

	thumb_func_start sub_81D81A4
sub_81D81A4: @ 81D81A4
	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
	ldrh r1, [r4, 0x2]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081D8254
	ldr r0, =gUnknown_0862AAA0
	ldr r3, =gUnknown_0862AAB8
	movs r1, 0
	ldrsh r2, [r4, r1]
	lsls r2, 1
	adds r1, r2, r3
	ldrb r1, [r1]
	lsls r1, 24
	asrs r1, 24
	lsls r1, 18
	movs r6, 0xF0
	lsls r6, 15
	adds r1, r6
	asrs r1, 16
	adds r3, 0x1
	adds r2, r3
	ldrb r2, [r2]
	lsls r2, 24
	asrs r2, 24
	lsls r2, 18
	movs r3, 0xA0
	lsls r3, 15
	adds r2, r3
	asrs r2, 16
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gSprites
	lsls r3, r0, 4
	adds r3, r0
	lsls r3, 2
	adds r3, r1
	movs r0, 0
	ldrsb r0, [r4, r0]
	strh r0, [r3, 0x2E]
	ldrb r2, [r3, 0x1]
	movs r1, 0xD
	negs r1, r1
	adds r0, r1, 0
	ands r0, r2
	movs r2, 0x4
	orrs r0, r2
	movs r2, 0x3
	orrs r0, r2
	strb r0, [r3, 0x1]
	ldrb r0, [r3, 0x5]
	ands r1, r0
	movs r0, 0x8
	orrs r1, r0
	strb r1, [r3, 0x5]
	adds r0, r3, 0
	bl InitSpriteAffineAnim
	ldrh r1, [r4]
	movs r6, 0
	ldrsh r0, [r4, r6]
	cmp r0, 0x9
	bne _081D8250
	adds r0, r5, 0
	bl DestroyTask
	b _081D825A
	.pool
_081D8250:
	adds r0, r1, 0x1
	strh r0, [r4]
_081D8254:
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
_081D825A:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81D81A4

	thumb_func_start sub_81D8260
sub_81D8260: @ 81D8260
	push {lr}
	adds r2, r0, 0
	movs r1, 0x30
	ldrsh r0, [r2, r1]
	cmp r0, 0
	bne _081D8270
	strh r0, [r2, 0x24]
	b _081D829A
_081D8270:
	ldr r1, =gUnknown_0862AAB8
	movs r3, 0x2E
	ldrsh r0, [r2, r3]
	lsls r0, 1
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	ldrh r3, [r2, 0x24]
	adds r0, r3
	strh r0, [r2, 0x24]
	movs r3, 0x2E
	ldrsh r0, [r2, r3]
	lsls r0, 1
	adds r1, 0x1
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	ldrh r1, [r2, 0x26]
	adds r0, r1
_081D829A:
	strh r0, [r2, 0x26]
	ldrh r0, [r2, 0x30]
	adds r0, 0x1
	movs r1, 0xF
	ands r0, r1
	strh r0, [r2, 0x30]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8260

	thumb_func_start sub_81D82B0
sub_81D82B0: @ 81D82B0
	push {r4,lr}
	bl sub_8121DA0
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0862AACC
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00000804
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001004
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001804
	adds r1, r0
	movs r0, 0x3
	bl SetBgTilemapBuffer
	bl sub_8121E10
	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, 0x3
	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, 0x3
	bl ShowBg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D82B0

	thumb_func_start sub_81D8358
sub_81D8358: @ 81D8358
	push {r4-r7,lr}
	sub sp, 0xC
	bl reset_temp_tile_data_buffers
	ldr r1, =gUnknown_08DA7528
	movs r4, 0
	str r4, [sp]
	movs r0, 0
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_08DA69BC
	str r4, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	add r7, sp, 0x8
_081D8380:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0
	bne _081D8380
	ldr r0, =gUnknown_08DA7AAC
	ldr r5, =gUnknown_0203CF60
	ldr r1, [r5]
	adds r1, 0x4
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA7784
	ldr r1, [r5]
	ldr r4, =0x00001804
	adds r1, r4
	bl LZDecompressWram
	str r6, [sp, 0x4]
	ldr r1, [r5]
	ldr r0, =0x00001004
	adds r1, r0
	ldr r2, =0x01000200
	add r0, sp, 0x4
	bl CpuFastSet
	ldr r1, [r5]
	adds r4, r1, r4
	ldr r0, =0x00000804
	adds r1, r0
	movs r2, 0x80
	lsls r2, 2
	adds r0, r4, 0
	bl CpuFastSet
	str r6, [sp, 0x8]
	ldr r1, [r5]
	ldr r0, =0x00000904
	adds r1, r0
	ldr r2, =0x010000d0
	adds r0, r7, 0
	bl CpuFastSet
	ldr r0, =gUnknown_08DA7744
	movs r1, 0
	movs r2, 0x40
	bl LoadCompressedPalette
	ldr r0, =gPlttBufferUnfaded
	ldr r1, =0x00007fff
	strh r1, [r0]
	ldr r0, =gPlttBufferFaded
	strh r1, [r0]
	ldr r0, =gUnknown_0862AAFC
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AB04
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AB0C
	bl LoadCompressedObjectPalette
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8358

	thumb_func_start sub_81D844C
sub_81D844C: @ 81D844C
	push {r4,r5,lr}
	movs r0, 0x6
	bl GetGpuReg
	lsls r0, 16
	lsrs r2, r0, 16
	adds r1, r2, 0
	subs r1, 0x18
	lsls r0, r1, 16
	lsrs r0, 16
	cmp r0, 0x6F
	bhi _081D848C
	ldr r0, =gUnknown_0203CF60
	ldr r0, [r0]
	ldr r3, =0x00002008
	adds r0, r3
	movs r3, 0
	ldrsh r0, [r0, r3]
	cmp r1, r0
	bgt _081D848C
	ldr r1, =0x04000052
	ldr r3, =0x00000d08
	b _081D8492
	.pool
_081D848C:
	ldr r1, =0x04000052
	movs r3, 0x80
	lsls r3, 5
_081D8492:
	adds r0, r3, 0
	strh r0, [r1]
	cmp r2, 0
	bne _081D84E0
	ldr r0, =gUnknown_0203CF60
	ldr r1, [r0]
	ldr r2, =0x00002008
	adds r3, r1, r2
	ldrh r4, [r3]
	movs r1, 0
	ldrsh r2, [r3, r1]
	ldr r1, =0x00001fff
	adds r5, r0, 0
	cmp r2, r1
	bgt _081D84D4
	cmp r2, 0x27
	bgt _081D84C8
	adds r0, r4, 0x4
	b _081D84D2
	.pool
_081D84C8:
	cmp r2, 0x4F
	bgt _081D84D0
	adds r0, r4, 0x2
	b _081D84D2
_081D84D0:
	adds r0, r4, 0x1
_081D84D2:
	strh r0, [r3]
_081D84D4:
	ldr r1, [r5]
	ldr r2, =0x0000200a
	adds r1, r2
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_081D84E0:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D844C

	thumb_func_start sub_81D84EC
sub_81D84EC: @ 81D84EC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r6, =gTasks + 0x8
	adds r5, r4, r6
	bl sub_81D82B0
	bl sub_81D8358
	ldr r1, =0x00001e41
	movs r0, 0x50
	bl SetGpuRegBits
	movs r0, 0x80
	lsls r0, 5
	mov r8, r0
	movs r0, 0x52
	mov r1, r8
	bl SetGpuReg
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r0, =sub_81D67EC
	bl SetVBlankCallback
	ldr r0, =gUnknown_0203CF60
	ldr r0, [r0]
	ldr r1, =0x00002008
	adds r2, r0, r1
	movs r1, 0
	strh r1, [r2]
	ldr r2, =0x0000200a
	adds r0, r2
	strh r1, [r0]
	strh r1, [r5]
	strh r1, [r5, 0x2]
	strh r1, [r5, 0x4]
	strh r1, [r5, 0x6]
	mov r0, r8
	strh r0, [r5, 0x8]
	subs r6, 0x8
	adds r4, r6
	ldr r0, =sub_81D857C
	str r0, [r4]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D84EC

	thumb_func_start sub_81D857C
sub_81D857C: @ 81D857C
	push {r4,r5,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r5, r0, r1
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0x4
	bhi _081D8674
	lsls r0, 2
	ldr r1, =_081D85A8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D85A8:
	.4byte _081D85BC
	.4byte _081D85DC
	.4byte _081D861A
	.4byte _081D863A
	.4byte _081D8656
_081D85BC:
	ldrh r1, [r5, 0x2]
	movs r2, 0x2
	ldrsh r0, [r5, r2]
	cmp r0, 0x8
	bne _081D8634
	movs r0, 0x1
	negs r0, r0
	movs r4, 0
	str r4, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	strh r4, [r5, 0x2]
	b _081D864E
_081D85DC:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0
	bne _081D8674
	ldrh r2, [r5, 0x2]
	movs r3, 0x2
	ldrsh r0, [r5, r3]
	cmp r0, 0xA
	bne _081D8614
	strh r1, [r5, 0x2]
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	ldr r0, =sub_81D844C
	bl SetHBlankCallback
	movs r0, 0x3
	bl EnableInterrupts
	b _081D8674
	.pool
_081D8614:
	adds r0, r2, 0x1
	strh r0, [r5, 0x2]
	b _081D8674
_081D861A:
	ldrh r1, [r5, 0x2]
	movs r2, 0x2
	ldrsh r0, [r5, r2]
	cmp r0, 0x50
	bne _081D8634
	movs r0, 0
	strh r0, [r5, 0x2]
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	bl sub_81D86CC
	b _081D8674
_081D8634:
	adds r0, r1, 0x1
	strh r0, [r5, 0x2]
	b _081D8674
_081D863A:
	ldrh r0, [r5, 0x2]
	adds r0, 0x1
	strh r0, [r5, 0x2]
	lsls r0, 16
	movs r1, 0xB8
	lsls r1, 17
	cmp r0, r1
	bne _081D8674
	movs r0, 0
	strh r0, [r5, 0x2]
_081D864E:
	ldrh r0, [r5]
	adds r0, 0x1
	strh r0, [r5]
	b _081D8674
_081D8656:
	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_81D8684
	str r1, [r0]
_081D8674:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D857C

	thumb_func_start sub_81D8684
sub_81D8684: @ 81D8684
	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 _081D86B8
	movs r0, 0
	bl SetVBlankCallback
	movs r0, 0
	bl SetHBlankCallback
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81D6840
	str r0, [r1]
_081D86B8:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8684

	thumb_func_start sub_81D86CC
sub_81D86CC: @ 81D86CC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r0, =gUnknown_0862AB14
	movs r1, 0xA0
	movs r2, 0
	movs r3, 0
	bl CreateSprite
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	lsls r5, r6, 4
	adds r5, r6
	lsls r5, 2
	ldr r4, =gSprites + 0x2E
	adds r0, r5, r4
	mov r8, r0
	ldr r0, =gUnknown_0862AB2C
	movs r2, 0x30
	negs r2, r2
	movs r1, 0xB8
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	strh r0, [r1]
	adds r3, r4, 0
	subs r3, 0x2E
	subs r4, 0x12
	adds r4, r5, r4
	ldr r0, =sub_81D874C
	str r0, [r4]
	adds r5, r3
	ldrb r0, [r5, 0x5]
	movs r2, 0xC
	orrs r0, r2
	strb r0, [r5, 0x5]
	movs r4, 0
	ldrsh r1, [r1, r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrb r1, [r0, 0x5]
	orrs r1, r2
	strb r1, [r0, 0x5]
	adds r0, r6, 0
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D86CC

	thumb_func_start sub_81D874C
sub_81D874C: @ 81D874C
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r5, 0
	adds r4, 0x2E
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	cmp r1, 0
	bne _081D8764
	movs r0, 0xC
	strh r0, [r4, 0x6]
	movs r0, 0x8
	b _081D87C2
_081D8764:
	movs r0, 0x80
	lsls r0, 1
	cmp r1, r0
	bne _081D8774
	movs r0, 0x9
	strh r0, [r4, 0x6]
	movs r0, 0x7
	b _081D87C2
_081D8774:
	movs r0, 0x86
	lsls r0, 1
	cmp r1, r0
	bne _081D8784
	movs r0, 0x8
	strh r0, [r4, 0x6]
	movs r0, 0x6
	b _081D87C2
_081D8784:
	movs r0, 0x8C
	lsls r0, 1
	cmp r1, r0
	bne _081D8794
	movs r0, 0x7
	strh r0, [r4, 0x6]
	movs r0, 0x5
	b _081D87C2
_081D8794:
	movs r0, 0x92
	lsls r0, 1
	cmp r1, r0
	bne _081D87A4
	movs r0, 0x6
	strh r0, [r4, 0x6]
	movs r0, 0x4
	b _081D87C2
_081D87A4:
	movs r0, 0x98
	lsls r0, 1
	cmp r1, r0
	bne _081D87B4
	movs r0, 0x5
	strh r0, [r4, 0x6]
	movs r0, 0x3
	b _081D87C2
_081D87B4:
	movs r0, 0xA0
	lsls r0, 1
	cmp r1, r0
	bne _081D87C4
	movs r0, 0x4
	strh r0, [r4, 0x6]
	movs r0, 0x2
_081D87C2:
	strh r0, [r4, 0x8]
_081D87C4:
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	movs r2, 0x6
	ldrsh r1, [r4, r2]
	bl __modsi3
	cmp r0, 0
	bne _081D87EE
	ldrh r0, [r5, 0x24]
	subs r0, 0x1
	strh r0, [r5, 0x24]
	ldr r2, =gSprites
	movs r0, 0
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x24]
	subs r1, 0x1
	strh r1, [r0, 0x24]
_081D87EE:
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	movs r2, 0x8
	ldrsh r1, [r4, r2]
	bl __modsi3
	cmp r0, 0
	bne _081D8818
	ldrh r0, [r5, 0x26]
	adds r0, 0x1
	strh r0, [r5, 0x26]
	ldr r2, =gSprites
	movs r0, 0
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x26]
	adds r1, 0x1
	strh r1, [r0, 0x26]
_081D8818:
	ldrh r0, [r4, 0x4]
	adds r0, 0x1
	strh r0, [r4, 0x4]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D874C

	thumb_func_start sub_81D8828
sub_81D8828: @ 81D8828
	push {r4,lr}
	bl sub_8121DA0
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0862AB44
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00000804
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001004
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001804
	adds r1, r0
	movs r0, 0x3
	bl SetBgTilemapBuffer
	bl sub_8121E10
	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, 0x3
	bl schedule_bg_copy_tilemap_to_vram
	movs r1, 0xC1
	lsls r1, 6
	movs r0, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8828

	thumb_func_start sub_81D88D0
sub_81D88D0: @ 81D88D0
	push {r4,lr}
	sub sp, 0x4
	bl reset_temp_tile_data_buffers
	ldr r1, =gUnknown_08DA80BC
	movs r4, 0
	str r4, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_08DA7EAC
	str r4, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_08DA7C30
	str r4, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
_081D8904:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081D8904
	ldr r0, =gUnknown_08DA8D6C
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA8B40
	ldr r1, [r4]
	ldr r2, =0x00000804
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA7FB4
	ldr r1, [r4]
	ldr r2, =0x00001004
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA7D6C
	ldr r1, [r4]
	ldr r2, =0x00001804
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DA8E84
	movs r1, 0
	movs r2, 0x80
	bl LoadCompressedPalette
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D88D0

	thumb_func_start sub_81D8980
sub_81D8980: @ 81D8980
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r5, =gTasks + 0x8
	adds r6, r4, r5
	bl sub_81D8828
	bl sub_81D88D0
	bl sub_81D68C8
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r0, =sub_81D67EC
	bl SetVBlankCallback
	movs r0, 0
	strh r0, [r6]
	strh r0, [r6, 0x2]
	ldr r0, =sub_81D8AD8
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x4]
	subs r5, 0x8
	adds r4, r5
	ldr r0, =sub_81D89E0
	str r0, [r4]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8980

	thumb_func_start sub_81D89E0
sub_81D89E0: @ 81D89E0
	push {r4-r6,lr}
	sub sp, 0x4
	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
	bl sub_81D8BB4
	ldrh r1, [r4, 0x6]
	movs r0, 0x7
	ands r0, r1
	cmp r0, 0
	bne _081D8A16
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	bgt _081D8A16
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0x59
	bgt _081D8A16
	movs r0, 0x67
	bl PlaySE
_081D8A16:
	ldrh r0, [r4, 0x6]
	adds r0, 0x1
	strh r0, [r4, 0x6]
	movs r0, 0
	ldrsh r5, [r4, r0]
	cmp r5, 0x1
	beq _081D8A5C
	cmp r5, 0x1
	bgt _081D8A34
	cmp r5, 0
	beq _081D8A3E
	b _081D8AC6
	.pool
_081D8A34:
	cmp r5, 0x2
	beq _081D8A8C
	cmp r5, 0x3
	beq _081D8AA8
	b _081D8AC6
_081D8A3E:
	ldrh r1, [r4, 0x2]
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0x8
	bne _081D8AA2
	movs r0, 0x1
	negs r0, r0
	str r5, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	strh r5, [r4, 0x2]
	b _081D8A9A
_081D8A5C:
	ldrh r1, [r4, 0x2]
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0x7F
	bne _081D8AA2
	movs r0, 0
	strh r0, [r4, 0x2]
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	ldr r2, =gTasks
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldr r1, =sub_81D8B2C
	b _081D8AC4
	.pool
_081D8A8C:
	ldrh r1, [r4, 0x2]
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0xC
	bne _081D8AA2
	movs r0, 0
	strh r0, [r4, 0x2]
_081D8A9A:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _081D8AC6
_081D8AA2:
	adds r0, r1, 0x1
	strh r0, [r4, 0x2]
	b _081D8AC6
_081D8AA8:
	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, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81D8BEC
_081D8AC4:
	str r1, [r0]
_081D8AC6:
	add sp, 0x4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D89E0

	thumb_func_start sub_81D8AD8
sub_81D8AD8: @ 81D8AD8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r5, r1, r0
	ldrh r1, [r5, 0x1E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081D8B1C
	bl Random
	movs r4, 0x7
	adds r1, r4, 0
	ands r1, r0
	subs r1, 0x4
	lsls r1, 8
	movs r0, 0x1
	movs r2, 0
	bl ChangeBgX
	bl Random
	ands r4, r0
	subs r4, 0x4
	lsls r4, 8
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0
	bl ChangeBgY
_081D8B1C:
	ldrh r0, [r5, 0x1E]
	adds r0, 0x1
	strh r0, [r5, 0x1E]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8AD8

	thumb_func_start sub_81D8B2C
sub_81D8B2C: @ 81D8B2C
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r4, r1, r0
	movs r1, 0
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081D8B70
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	movs r0, 0xA
	strh r0, [r4, 0x2]
	movs r1, 0x1
	negs r1, r1
	adds r0, r1, 0
	b _081D8BAA
	.pool
_081D8B70:
	cmp r0, 0x1
	bne _081D8BAC
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r1, 8
	movs r0, 0x1
	movs r2, 0x2
	bl ChangeBgX
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r1, 8
	movs r0, 0x1
	movs r2, 0x1
	bl ChangeBgY
	ldrh r0, [r4, 0x4]
	ldrh r1, [r4, 0x2]
	adds r0, r1
	strh r0, [r4, 0x2]
	lsls r0, 16
	asrs r0, 16
	movs r1, 0xA
	negs r1, r1
	cmp r0, r1
	bne _081D8BAC
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	negs r0, r0
_081D8BAA:
	strh r0, [r4, 0x4]
_081D8BAC:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81D8B2C

	thumb_func_start sub_81D8BB4
sub_81D8BB4: @ 81D8BB4
	push {r4,lr}
	movs r4, 0x80
	lsls r4, 3
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0x2
	bl ChangeBgX
	movs r0, 0x2
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	movs r4, 0x80
	lsls r4, 4
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0x2
	bl ChangeBgX
	movs r0, 0
	adds r1, r4, 0
	movs r2, 0x1
	bl ChangeBgY
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81D8BB4

	thumb_func_start sub_81D8BEC
sub_81D8BEC: @ 81D8BEC
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r5, r1, 3
	ldr r6, =gTasks + 0x8
	adds r4, r5, r6
	bl sub_81D8BB4
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081D8C26
	movs r0, 0
	bl SetVBlankCallback
	bl sub_81D6904
	ldrb r0, [r4, 0x4]
	bl DestroyTask
	adds r0, r6, 0
	subs r0, 0x8
	adds r0, r5, r0
	ldr r1, =sub_81D6840
	str r1, [r0]
_081D8C26:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8BEC

	thumb_func_start sub_81D8C38
sub_81D8C38: @ 81D8C38
	push {r4,lr}
	bl sub_8121DA0
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_0862AD08
	movs r0, 0x1
	movs r2, 0x3
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	adds r1, 0x4
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00000804
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001004
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	bl sub_8121E10
	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 r1, 0xC1
	lsls r1, 6
	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 {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8C38

	thumb_func_start sub_81D8CC4
sub_81D8CC4: @ 81D8CC4
	push {r4,lr}
	sub sp, 0x4
	bl reset_temp_tile_data_buffers
	ldr r1, =gUnknown_08DAAB24
	movs r4, 0
	str r4, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	ldr r1, =gUnknown_08DAA8B4
	str r4, [sp]
	movs r0, 0
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
_081D8CEA:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	bne _081D8CEA
	ldr r0, =gUnknown_08DAAE54
	ldr r4, =gUnknown_0203CF60
	ldr r1, [r4]
	ldr r2, =0x00000804
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DAAC1C
	ldr r1, [r4]
	adds r1, 0x4
	bl LZDecompressWram
	ldr r0, =gUnknown_08DAAF98
	ldr r1, [r4]
	ldr r2, =0x00001004
	adds r1, r2
	bl LZDecompressWram
	ldr r0, =gUnknown_08DAAFEC
	movs r1, 0
	movs r2, 0x60
	bl LoadCompressedPalette
	ldr r0, =gUnknown_0862AC28
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AC30
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AC38
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AC40
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AC48
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AC50
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862AC58
	bl LoadCompressedObjectPalette
	ldr r0, =gUnknown_0862AC60
	bl LoadCompressedObjectPalette
	ldr r0, =gUnknown_0862AC68
	bl LoadCompressedObjectPalette
	ldr r0, =gUnknown_0862AC70
	bl LoadCompressedObjectPalette
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8CC4

	thumb_func_start sub_81D8DB4
sub_81D8DB4: @ 81D8DB4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r5, =gTasks + 0x8
	adds r6, r4, r5
	bl sub_81D8C38
	bl sub_81D8CC4
	bl sub_81D68C8
	movs r1, 0x80
	lsls r1, 3
	movs r0, 0
	bl ClearGpuRegBits
	ldr r1, =0x00000241
	movs r0, 0x50
	bl SetGpuReg
	ldr r1, =0x00000e09
	movs r0, 0x52
	bl SetGpuReg
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r0, =sub_81D67EC
	bl SetVBlankCallback
	movs r0, 0
	strh r0, [r6]
	strh r0, [r6, 0x2]
	subs r5, 0x8
	adds r4, r5
	ldr r0, =sub_81D8E80
	str r0, [r4]
	ldr r0, =sub_81D8FB0
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x4]
	movs r0, 0x4
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r5
	movs r2, 0
	strh r2, [r0, 0x8]
	movs r0, 0x4
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r5
	strh r2, [r0, 0xA]
	movs r0, 0x4
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r5
	strh r2, [r0, 0xC]
	movs r0, 0x4
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r5
	movs r2, 0x1
	strh r2, [r0, 0xE]
	movs r0, 0x4
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r5
	strh r2, [r0, 0x10]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8DB4

	thumb_func_start sub_81D8E80
sub_81D8E80: @ 81D8E80
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r0, r6, 2
	adds r0, r6
	lsls r7, r0, 3
	ldr r0, =gTasks + 0x8
	mov r8, r0
	adds r4, r7, r0
	movs r1, 0
	ldrsh r5, [r4, r1]
	cmp r5, 0x1
	beq _081D8EDE
	cmp r5, 0x1
	bgt _081D8EB0
	cmp r5, 0
	beq _081D8EBA
	b _081D8FA0
	.pool
_081D8EB0:
	cmp r5, 0x2
	beq _081D8F1E
	cmp r5, 0x3
	beq _081D8F84
	b _081D8FA0
_081D8EBA:
	ldrh r1, [r4, 0x2]
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0x8
	bne _081D8F18
	adds r0, r6, 0
	bl sub_81D90A8
	movs r0, 0x1
	negs r0, r0
	str r5, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	strh r5, [r4, 0x2]
	b _081D8F30
_081D8EDE:
	ldr r2, =gSprites
	movs r0, 0xA
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, [r0]
	ldr r0, =sub_81D97E0
	cmp r1, r0
	bne _081D8FA0
	ldrh r1, [r4, 0x2]
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0x40
	bne _081D8F18
	adds r0, r6, 0
	bl sub_81D94D4
	adds r0, r6, 0
	bl sub_81D93D8
	b _081D8F2C
	.pool
_081D8F18:
	adds r0, r1, 0x1
	strh r0, [r4, 0x2]
	b _081D8FA0
_081D8F1E:
	ldrh r2, [r4, 0x2]
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	movs r0, 0xE0
	lsls r0, 1
	cmp r1, r0
	bne _081D8F38
_081D8F2C:
	movs r0, 0
	strh r0, [r4, 0x2]
_081D8F30:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _081D8FA0
_081D8F38:
	adds r0, r2, 0x1
	strh r0, [r4, 0x2]
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	movs r1, 0x90
	bl __modsi3
	lsls r0, 16
	asrs r4, r0, 16
	cmp r4, 0
	bne _081D8FA0
	ldr r0, =0x0000fffe
	ldr r1, =0x0000ffff
	str r1, [sp]
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl sub_80A2C44
	ldr r0, =0xffff0000
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r1, 0x1
	str r1, [sp, 0x8]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl sub_80A2C44
	b _081D8FA0
	.pool
_081D8F84:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r1, 0x4
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	mov r0, r8
	subs r0, 0x8
	adds r0, r7, r0
	ldr r1, =sub_81D9034
	str r1, [r0]
_081D8FA0:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8E80

	thumb_func_start sub_81D8FB0
sub_81D8FB0: @ 81D8FB0
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r4, r1, r0
	ldrh r1, [r4]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0
	bne _081D9024
	ldrh r1, [r4, 0x2]
	adds r1, 0xE
	lsls r1, 8
	movs r2, 0xF8
	lsls r2, 5
	adds r0, r2, 0
	ands r1, r0
	ldrh r0, [r4, 0x4]
	adds r0, 0x9
	movs r2, 0xF
	ands r0, r2
	orrs r1, r0
	movs r0, 0x52
	bl SetGpuReg
	ldrh r1, [r4, 0x2]
	ldrh r0, [r4, 0x6]
	subs r1, r0
	strh r1, [r4, 0x2]
	ldrh r0, [r4, 0x8]
	ldrh r2, [r4, 0x4]
	adds r0, r2
	strh r0, [r4, 0x4]
	lsls r1, 16
	asrs r1, 16
	movs r0, 0x3
	negs r0, r0
	cmp r1, r0
	beq _081D9008
	cmp r1, 0
	bne _081D9010
_081D9008:
	movs r1, 0x6
	ldrsh r0, [r4, r1]
	negs r0, r0
	strh r0, [r4, 0x6]
_081D9010:
	movs r2, 0x4
	ldrsh r0, [r4, r2]
	cmp r0, 0x3
	beq _081D901C
	cmp r0, 0
	bne _081D9024
_081D901C:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	negs r0, r0
	strh r0, [r4, 0x8]
_081D9024:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D8FB0

	thumb_func_start sub_81D9034
sub_81D9034: @ 81D9034
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r6, r1, 3
	ldr r7, =gTasks + 0x8
	adds r4, r6, r7
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	bne _081D90A0
	bl StopMapMusic
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081D9078
	movs r0, 0
	bl SetVBlankCallback
	bl sub_81D6904
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	ldrb r0, [r4, 0x4]
	bl DestroyTask
_081D9078:
	ldrh r1, [r4, 0x2]
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	cmp r0, 0x20
	bne _081D909C
	strh r5, [r4, 0x2]
	adds r0, r7, 0
	subs r0, 0x8
	adds r0, r6, r0
	ldr r1, =sub_81D6840
	str r1, [r0]
	b _081D90A0
	.pool
_081D909C:
	adds r0, r1, 0x1
	strh r0, [r4, 0x2]
_081D90A0:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D9034

	thumb_func_start sub_81D90A8
sub_81D90A8: @ 81D90A8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	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_0862AC78
	movs r1, 0x40
	movs r2, 0x78
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x6]
	movs r0, 0x6
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites + 0x2E
	mov r10, r1
	adds r7, r0, r1
	ldr r0, =gUnknown_0862AC90
	movs r1, 0x10
	movs r2, 0x82
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r7]
	movs r2, 0x2E
	negs r2, r2
	add r2, r10
	mov r8, r2
	movs r1, 0x6
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	add r1, r8
	ldrb r2, [r1, 0x5]
	movs r6, 0xD
	negs r6, r6
	adds r0, r6, 0
	ands r0, r2
	movs r2, 0x4
	mov r9, r2
	mov r2, r9
	orrs r0, r2
	strb r0, [r1, 0x5]
	movs r1, 0
	ldrsh r0, [r7, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	add r1, r8
	ldrb r2, [r1, 0x5]
	adds r0, r6, 0
	ands r0, r2
	mov r2, r9
	orrs r0, r2
	strb r0, [r1, 0x5]
	ldr r5, =gUnknown_0862ACA8
	adds r0, r5, 0
	movs r1, 0xA0
	movs r2, 0x80
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x8]
	movs r0, 0x8
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	mov r1, r10
	adds r7, r0, r1
	adds r0, r5, 0
	movs r1, 0xC0
	movs r2, 0x80
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r7]
	adds r0, r5, 0
	movs r1, 0xE0
	movs r2, 0x80
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r7, 0x2]
	movs r2, 0x8
	ldrsh r0, [r4, r2]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	add r1, r8
	ldrb r2, [r1, 0x5]
	adds r0, r6, 0
	ands r0, r2
	mov r2, r9
	orrs r0, r2
	strb r0, [r1, 0x5]
	movs r1, 0
	ldrsh r0, [r7, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	add r1, r8
	ldrb r2, [r1, 0x5]
	adds r0, r6, 0
	ands r0, r2
	mov r2, r9
	orrs r0, r2
	strb r0, [r1, 0x5]
	movs r1, 0x2
	ldrsh r0, [r7, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	add r1, r8
	ldrb r2, [r1, 0x5]
	adds r0, r6, 0
	ands r0, r2
	mov r2, r9
	orrs r0, r2
	strb r0, [r1, 0x5]
	movs r0, 0
	ldrsh r1, [r7, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	movs r1, 0x1
	bl StartSpriteAnim
	movs r2, 0x2
	ldrsh r1, [r7, r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	movs r1, 0x2
	bl StartSpriteAnim
	ldr r0, =gUnknown_0862ACC0
	movs r2, 0x41
	negs r2, r2
	movs r1, 0x78
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0xA]
	movs r0, 0xA
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	mov r1, r10
	adds r7, r0, r1
	ldr r0, =gUnknown_0862ACD8
	movs r2, 0x71
	negs r2, r2
	movs r1, 0x78
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r7]
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	add r1, r8
	ldrb r2, [r1, 0x5]
	adds r0, r6, 0
	ands r0, r2
	mov r2, r9
	orrs r0, r2
	strb r0, [r1, 0x5]
	movs r0, 0
	ldrsh r1, [r7, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	ldrb r1, [r0, 0x5]
	ands r6, r1
	orrs r6, r2
	strb r6, [r0, 0x5]
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D90A8

	thumb_func_start sub_81D9274
sub_81D9274: @ 81D9274
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 2
	adds r2, r0
	lsls r2, 3
	ldr r0, =gTasks + 0x8
	adds r2, r0
	ldr r3, =gSprites
	movs r0, 0x6
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	movs r1, 0x1C
	adds r1, r3
	mov r8, r1
	add r0, r8
	ldr r6, =pokemon_alive_on_battle_side
	str r6, [r0]
	movs r0, 0x6
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	movs r4, 0
	strh r4, [r0, 0x36]
	movs r0, 0x6
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	strh r4, [r0, 0x38]
	movs r0, 0x6
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	movs r5, 0x4
	strh r5, [r0, 0x3A]
	movs r0, 0x6
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	strh r4, [r0, 0x3C]
	movs r0, 0x8
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	str r6, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	strh r4, [r0, 0x36]
	movs r0, 0x8
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	strh r4, [r0, 0x38]
	movs r0, 0x8
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	strh r5, [r0, 0x3A]
	movs r0, 0x8
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	movs r1, 0x1
	strh r1, [r0, 0x3C]
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9274

	thumb_func_start pokemon_alive_on_battle_side
pokemon_alive_on_battle_side: @ 81D9338
	push {r4,lr}
	adds r4, r0, 0
	ldrh r1, [r4, 0x36]
	movs r0, 0x7
	ands r0, r1
	cmp r0, 0
	bne _081D93CC
	movs r1, 0x3C
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081D9370
	ldrh r0, [r4, 0x20]
	ldrh r3, [r4, 0x3A]
	subs r0, r3
	strh r0, [r4, 0x20]
	ldr r2, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, r3
	b _081D939E
	.pool
_081D9370:
	ldrh r2, [r4, 0x3A]
	ldrh r1, [r4, 0x20]
	adds r0, r2, r1
	strh r0, [r4, 0x20]
	ldr r3, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r0, 0x20]
	adds r2, r1
	strh r2, [r0, 0x20]
	movs r2, 0x30
	ldrsh r1, [r4, r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrh r1, [r4, 0x3A]
	ldrh r2, [r0, 0x20]
	adds r1, r2
_081D939E:
	strh r1, [r0, 0x20]
	ldrh r1, [r4, 0x38]
	adds r1, 0x1
	movs r2, 0
	strh r1, [r4, 0x38]
	ldrh r0, [r4, 0x3A]
	subs r0, r1
	strh r0, [r4, 0x3A]
	lsls r1, 16
	asrs r1, 16
	cmp r1, 0x3
	bne _081D93CC
	strh r2, [r4, 0x36]
	strh r2, [r4, 0x38]
	strh r2, [r4, 0x3A]
	ldr r0, =SpriteCallbackDummy
	str r0, [r4, 0x1C]
	b _081D93D2
	.pool
_081D93CC:
	ldrh r0, [r4, 0x36]
	adds r0, 0x1
	strh r0, [r4, 0x36]
_081D93D2:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end pokemon_alive_on_battle_side

	thumb_func_start sub_81D93D8
sub_81D93D8: @ 81D93D8
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r2, r0, 2
	adds r2, r0
	lsls r2, 3
	ldr r0, =gTasks + 0x8
	adds r2, r0
	ldr r3, =gSprites
	movs r0, 0x6
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r3, 0
	adds r1, 0x1C
	adds r0, r1
	ldr r1, =sub_81D9420
	str r1, [r0]
	movs r0, 0x6
	ldrsh r1, [r2, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	movs r1, 0x1
	bl StartSpriteAnim
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D93D8

	thumb_func_start sub_81D9420
sub_81D9420: @ 81D9420
	push {r4,lr}
	adds r4, r0, 0
	adds r0, 0x2B
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _081D9488
	cmp r0, 0x1
	bgt _081D9436
	cmp r0, 0
	beq _081D9440
	b _081D94C4
_081D9436:
	cmp r0, 0x2
	beq _081D9440
	cmp r0, 0x3
	beq _081D9488
	b _081D94C4
_081D9440:
	adds r0, r4, 0
	adds r0, 0x2C
	ldrb r0, [r0]
	lsls r0, 26
	lsrs r0, 26
	movs r1, 0xC
	bl __umodsi3
	lsls r0, 24
	ldr r2, =gSprites
	cmp r0, 0
	bne _081D9470
	ldrh r0, [r4, 0x20]
	subs r0, 0x2
	strh r0, [r4, 0x20]
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x20]
	subs r1, 0x2
	strh r1, [r0, 0x20]
_081D9470:
	movs r1, 0x2E
	ldrsh r0, [r4, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	movs r0, 0
	strh r0, [r1, 0x26]
	b _081D94C4
	.pool
_081D9488:
	ldr r2, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000fffe
	strh r1, [r0, 0x26]
	adds r0, r4, 0
	adds r0, 0x2C
	ldrb r1, [r0]
	lsls r1, 26
	lsrs r1, 26
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0
	bne _081D94C4
	ldrh r0, [r4, 0x22]
	adds r0, 0x1
	strh r0, [r4, 0x22]
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldrh r1, [r0, 0x22]
	adds r1, 0x1
	strh r1, [r0, 0x22]
_081D94C4:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9420

	thumb_func_start sub_81D94D4
sub_81D94D4: @ 81D94D4
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r1, r0
	movs r0, 0x8
	ldrsh r1, [r1, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r2, =gSprites + 0x2E
	adds r4, r0, r2
	subs r2, 0x12
	adds r0, r2
	ldr r3, =sub_81D9528
	str r3, [r0]
	movs r0, 0
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	str r3, [r0]
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	str r3, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D94D4

	thumb_func_start sub_81D9528
sub_81D9528: @ 81D9528
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r7, r0, 0
	ldrh r1, [r7, 0x36]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081D9550
	ldrh r1, [r7, 0x24]
	movs r2, 0x24
	ldrsh r0, [r7, r2]
	cmp r0, 0x1
	bne _081D954C
	ldr r0, =0x0000ffff
	b _081D954E
	.pool
_081D954C:
	movs r0, 0x1
_081D954E:
	strh r0, [r7, 0x24]
_081D9550:
	movs r1, 0x38
	ldrsh r0, [r7, r1]
	cmp r0, 0x80
	bne _081D95CE
	ldr r2, =gUnknown_0862ACF0
	mov r8, r2
	mov r0, r8
	movs r1, 0x98
	movs r2, 0x84
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r7, 0x3C]
	ldr r5, =gSprites
	movs r1, 0x3C
	ldrsh r0, [r7, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r5
	ldrb r2, [r1, 0x5]
	movs r4, 0xD
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	movs r6, 0x4
	orrs r0, r6
	strb r0, [r1, 0x5]
	mov r0, r8
	movs r1, 0xE0
	movs r2, 0x84
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r7, 0x3C]
	movs r2, 0x3C
	ldrsh r1, [r7, r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrb r1, [r0, 0x5]
	ands r4, r1
	orrs r4, r6
	strb r4, [r0, 0x5]
	movs r0, 0x3C
	ldrsh r1, [r7, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r2, 0x1
	orrs r1, r2
	strb r1, [r0]
	ldrh r0, [r7, 0x38]
	adds r0, 0x1
	strh r0, [r7, 0x38]
_081D95CE:
	ldrh r1, [r7, 0x38]
	movs r2, 0x38
	ldrsh r0, [r7, r2]
	cmp r0, 0x7F
	ble _081D95F8
	movs r1, 0x26
	ldrsh r0, [r7, r1]
	cmp r0, 0x20
	beq _081D95FC
	ldrh r0, [r7, 0x3A]
	adds r0, 0x1
	strh r0, [r7, 0x3A]
	lsls r0, 16
	asrs r0, 20
	strh r0, [r7, 0x26]
	b _081D95FC
	.pool
_081D95F8:
	adds r0, r1, 0x1
	strh r0, [r7, 0x38]
_081D95FC:
	ldrh r0, [r7, 0x36]
	movs r1, 0x3F
	ands r0, r1
	cmp r0, 0
	bne _081D960C
	movs r0, 0xA5
	bl PlaySE
_081D960C:
	ldrh r0, [r7, 0x36]
	adds r0, 0x1
	strh r0, [r7, 0x36]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D9528

	thumb_func_start sub_81D961C
sub_81D961C: @ 81D961C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0x3C
	ldrsh r1, [r4, r0]
	cmp r1, 0x40
	bgt _081D968C
	ldrh r0, [r4, 0x26]
	adds r0, 0x2
	strh r0, [r4, 0x26]
	ldr r5, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrh r1, [r0, 0x26]
	adds r1, 0x2
	strh r1, [r0, 0x26]
	movs r1, 0x3C
	ldrsh r0, [r4, r1]
	cmp r0, 0x40
	beq _081D964C
	b _081D979E
_081D964C:
	movs r3, 0x30
	negs r3, r3
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0
	bl sub_81D9868
	movs r2, 0x5
	strh r2, [r4, 0x36]
	ldr r0, =0x0000ffff
	strh r0, [r4, 0x38]
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	movs r1, 0x3
	strh r1, [r0, 0x36]
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	strh r2, [r0, 0x38]
	b _081D979E
	.pool
_081D968C:
	cmp r1, 0x6F
	bgt _081D96BE
	adds r0, r4, 0
	bl sub_81D97E0
	movs r1, 0x36
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081D96A4
	movs r0, 0x68
	bl PlaySE
_081D96A4:
	movs r0, 0x36
	ldrsh r1, [r4, r0]
	movs r0, 0x3
	negs r0, r0
	cmp r1, r0
	bne _081D979E
	adds r0, r4, 0
	movs r1, 0x2
	movs r2, 0x30
	movs r3, 0x10
	bl sub_81D9868
	b _081D979E
_081D96BE:
	cmp r1, 0x70
	bne _081D96EC
	ldr r2, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0x7
	strh r1, [r0, 0x36]
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r1, 0x3
	strh r1, [r0, 0x38]
	b _081D96F2
	.pool
_081D96EC:
	ldr r0, =0x00000147
	cmp r1, r0
	bgt _081D9700
_081D96F2:
	adds r0, r4, 0
	bl sub_81D97E0
	b _081D979E
	.pool
_081D9700:
	movs r0, 0xA4
	lsls r0, 1
	cmp r1, r0
	bne _081D974C
	adds r0, r4, 0
	bl sub_81D97E0
	adds r0, r4, 0
	movs r1, 0x3
	movs r2, 0x30
	movs r3, 0x10
	bl sub_81D9868
	movs r3, 0x1
	strh r3, [r4, 0x24]
	ldr r2, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x24]
	movs r0, 0xCB
	lsls r0, 1
	movs r1, 0
	bl PlayCry1
	ldr r0, =sub_81D98B4
	movs r1, 0
	bl CreateTask
	b _081D979E
	.pool
_081D974C:
	movs r0, 0xB0
	lsls r0, 1
	cmp r1, r0
	beq _081D9790
	adds r0, 0x18
	cmp r1, r0
	bne _081D979E
	movs r3, 0
	strh r3, [r4, 0x24]
	ldr r2, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x24]
	adds r0, r4, 0
	bl sub_81D97E0
	adds r0, r4, 0
	movs r1, 0x2
	movs r2, 0x30
	movs r3, 0x10
	bl sub_81D9868
	ldr r0, =sub_81D97E0
	str r0, [r4, 0x1C]
	b _081D97D2
	.pool
_081D9790:
	ldr r0, =sub_81D8E80
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl sub_81D9274
_081D979E:
	ldrh r2, [r4, 0x3C]
	movs r0, 0x3C
	ldrsh r1, [r4, r0]
	movs r0, 0xA4
	lsls r0, 1
	cmp r1, r0
	ble _081D97CC
	movs r0, 0x1
	ands r0, r2
	cmp r0, 0
	bne _081D97CC
	movs r1, 0x24
	ldrsh r2, [r4, r1]
	negs r2, r2
	strh r2, [r4, 0x24]
	ldr r3, =gSprites
	movs r0, 0x2E
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	strh r2, [r0, 0x24]
_081D97CC:
	ldrh r0, [r4, 0x3C]
	adds r0, 0x1
	strh r0, [r4, 0x3C]
_081D97D2:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D961C

	thumb_func_start sub_81D97E0
sub_81D97E0: @ 81D97E0
	push {r4-r7,lr}
	adds r3, r0, 0
	movs r0, 0x2E
	ldrsh r1, [r3, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r5, =gSprites
	adds r4, r0, r5
	ldrh r1, [r3, 0x3A]
	ldrh r0, [r4, 0x36]
	ands r0, r1
	cmp r0, 0
	bne _081D985C
	ldrh r2, [r3, 0x36]
	ldrh r1, [r3, 0x26]
	adds r0, r2, r1
	strh r0, [r3, 0x26]
	movs r7, 0x2E
	ldrsh r1, [r3, r7]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrh r1, [r0, 0x26]
	adds r2, r1
	strh r2, [r0, 0x26]
	ldrh r0, [r3, 0x38]
	ldrh r2, [r3, 0x36]
	adds r0, r2
	strh r0, [r3, 0x36]
	lsls r0, 16
	asrs r5, r0, 16
	ldrh r6, [r4, 0x38]
	movs r7, 0x38
	ldrsh r2, [r4, r7]
	cmp r5, r2
	bge _081D9836
	movs r0, 0x36
	ldrsh r1, [r3, r0]
	adds r0, r2, 0
	cmn r1, r0
	bgt _081D985C
_081D9836:
	cmp r5, r2
	ble _081D9844
	strh r6, [r3, 0x36]
	b _081D9854
	.pool
_081D9844:
	movs r0, 0x36
	ldrsh r1, [r3, r0]
	movs r2, 0x38
	ldrsh r0, [r4, r2]
	cmn r1, r0
	bge _081D9854
	negs r0, r6
	strh r0, [r3, 0x36]
_081D9854:
	movs r7, 0x38
	ldrsh r0, [r3, r7]
	negs r0, r0
	strh r0, [r3, 0x38]
_081D985C:
	ldrh r0, [r3, 0x3A]
	adds r0, 0x1
	strh r0, [r3, 0x3A]
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D97E0

	thumb_func_start sub_81D9868
sub_81D9868: @ 81D9868
	push {r4,r5,lr}
	adds r5, r1, 0
	lsls r5, 24
	lsrs r5, 24
	movs r4, 0x2E
	ldrsh r1, [r0, r4]
	lsls r4, r1, 4
	adds r4, r1
	lsls r4, 2
	ldr r1, =gSprites
	adds r4, r1
	lsls r2, 16
	asrs r2, 16
	ldrh r1, [r0, 0x20]
	adds r2, r1
	strh r2, [r4, 0x20]
	lsls r3, 16
	asrs r3, 16
	ldrh r1, [r0, 0x22]
	adds r3, r1
	strh r3, [r4, 0x22]
	ldrh r1, [r0, 0x24]
	strh r1, [r4, 0x24]
	ldrh r1, [r0, 0x26]
	strh r1, [r4, 0x26]
	adds r1, r5, 0
	bl StartSpriteAnim
	adds r0, r4, 0
	adds r1, r5, 0
	bl StartSpriteAnim
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9868

	thumb_func_start sub_81D98B4
sub_81D98B4: @ 81D98B4
	push {r4,r5,lr}
	sub sp, 0x10
	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 r0, 0
	ldrsh r1, [r4, r0]
	cmp r1, 0x1
	beq _081D990C
	cmp r1, 0x1
	bgt _081D98DC
	cmp r1, 0
	beq _081D98E2
	b _081D99B4
	.pool
_081D98DC:
	cmp r1, 0x2
	beq _081D99A4
	b _081D99B4
_081D98E2:
	movs r2, 0x80
	lsls r2, 7
	movs r0, 0x40
	str r0, [sp]
	adds r0, 0xC0
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	movs r0, 0x2
	adds r1, r2, 0
	movs r3, 0x78
	bl SetBgAffine
	movs r1, 0x80
	lsls r1, 3
	movs r0, 0
	bl SetGpuRegBits
	movs r0, 0x10
	strh r0, [r4, 0x8]
	b _081D9922
_081D990C:
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0x8
	bne _081D991A
	movs r0, 0x12
	bl PlaySE
_081D991A:
	movs r3, 0x4
	ldrsh r0, [r4, r3]
	cmp r0, 0x2
	bne _081D992A
_081D9922:
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	b _081D99B4
_081D992A:
	ldrh r5, [r4, 0x8]
	ldrh r1, [r4, 0x2]
	adds r0, r5, r1
	strh r0, [r4, 0x2]
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	movs r3, 0x6
	ldrsh r0, [r4, r3]
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _081D9954
	lsls r0, r5, 16
	asrs r0, 16
	cmp r0, 0x4
	beq _081D9954
	subs r0, r5, 0x2
	strh r0, [r4, 0x8]
_081D9954:
	ldrh r0, [r4, 0x6]
	adds r0, 0x1
	strh r0, [r4, 0x6]
	movs r2, 0x80
	lsls r2, 7
	movs r0, 0x40
	str r0, [sp]
	ldrh r0, [r4, 0x2]
	movs r3, 0x80
	lsls r3, 1
	adds r1, r3, 0
	subs r0, r1, r0
	lsls r0, 16
	asrs r0, 16
	str r0, [sp, 0x4]
	ldrh r0, [r4, 0x2]
	subs r1, r0
	lsls r1, 16
	asrs r1, 16
	str r1, [sp, 0x8]
	movs r5, 0
	str r5, [sp, 0xC]
	movs r0, 0x2
	adds r1, r2, 0
	movs r3, 0x78
	bl SetBgAffine
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	cmp r0, 0xFF
	ble _081D99B4
	strh r5, [r4, 0x2]
	strh r5, [r4, 0x6]
	strh r5, [r4, 0xA]
	movs r0, 0x10
	strh r0, [r4, 0x8]
	ldrh r0, [r4, 0x4]
	adds r0, 0x1
	strh r0, [r4, 0x4]
	b _081D99B4
_081D99A4:
	movs r1, 0x80
	lsls r1, 3
	movs r0, 0
	bl ClearGpuRegBits
	adds r0, r5, 0
	bl DestroyTask
_081D99B4:
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81D98B4

	thumb_func_start sub_81D99BC
sub_81D99BC: @ 81D99BC
	push {r4,lr}
	bl sub_80D2578
	cmp r0, 0
	bne _081D99DC
	ldr r4, =gStringVar1
	bl sub_80D2548
	adds r1, r0, 0
	adds r0, r4, 0
	bl StringCopy
	movs r0, 0x1
	b _081D99DE
	.pool
_081D99DC:
	movs r0, 0
_081D99DE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D99BC

	thumb_func_start walda_maybe
walda_maybe: @ 81D99E4
	push {r4,lr}
	sub sp, 0x8
	ldr r4, =gStringVar2
	bl sub_80D2548
	adds r1, r0, 0
	adds r0, r4, 0
	bl StringCopy
	movs r0, 0
	str r0, [sp]
	ldr r0, =sub_81D9A1C
	str r0, [sp, 0x4]
	movs r0, 0x4
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0
	bl do_choose_name_or_words_screen
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end walda_maybe

	thumb_func_start sub_81D9A1C
sub_81D9A1C: @ 81D9A1C
	push {r4,r5,lr}
	ldr r4, =gSpecialVar_0x8004
	ldr r5, =gStringVar2
	adds r0, r5, 0
	bl sub_81D9A98
	strh r0, [r4]
	ldrh r0, [r4]
	cmp r0, 0x1
	beq _081D9A68
	cmp r0, 0x1
	bgt _081D9A44
	cmp r0, 0
	beq _081D9A62
	b _081D9A68
	.pool
_081D9A44:
	cmp r0, 0x2
	bne _081D9A68
	bl sub_80D2578
	cmp r0, 0
	beq _081D9A5C
	ldr r0, =gUnknown_085EE49A
	bl sub_80D255C
	b _081D9A68
	.pool
_081D9A5C:
	movs r0, 0x1
	strh r0, [r4]
	b _081D9A68
_081D9A62:
	adds r0, r5, 0
	bl sub_80D255C
_081D9A68:
	ldr r4, =gStringVar1
	bl sub_80D2548
	adds r1, r0, 0
	adds r0, r4, 0
	bl StringCopy
	ldr r1, =gUnknown_03005DAC
	ldr r0, =sub_80AF168
	str r0, [r1]
	ldr r0, =c2_exit_to_overworld_2_switch
	bl SetMainCallback2
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9A1C

	thumb_func_start sub_81D9A98
sub_81D9A98: @ 81D9A98
	push {r4,lr}
	adds r4, r0, 0
	ldrb r0, [r4]
	cmp r0, 0xFF
	bne _081D9AA6
	movs r0, 0x2
	b _081D9ABC
_081D9AA6:
	bl sub_80D2548
	adds r1, r0, 0
	adds r0, r4, 0
	bl StringCompare
	cmp r0, 0
	beq _081D9ABA
	movs r0, 0
	b _081D9ABC
_081D9ABA:
	movs r0, 0x1
_081D9ABC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81D9A98

	thumb_func_start sub_81D9AC4
sub_81D9AC4: @ 81D9AC4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x10
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	adds r0, 0xA
	bl ReadUnalignedWord
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r0, =gScriptResult
	mov r8, r0
	bl sub_80D2548
	mov r7, sp
	adds r7, 0xA
	add r6, sp, 0xC
	mov r5, sp
	adds r5, 0xD
	str r4, [sp]
	str r0, [sp, 0x4]
	add r0, sp, 0x8
	adds r1, r7, 0
	adds r2, r6, 0
	adds r3, r5, 0
	bl sub_81D9B68
	mov r1, r8
	strh r0, [r1]
	lsls r0, 16
	cmp r0, 0
	beq _081D9B1E
	ldrb r0, [r5]
	bl sub_80D24BC
	ldrb r0, [r6]
	bl sub_80D24F0
	add r0, sp, 0x8
	ldrh r0, [r0]
	ldrh r1, [r7]
	bl sub_80D2524
_081D9B1E:
	mov r1, r8
	ldrh r0, [r1]
	bl sub_80D2480
	mov r1, r8
	ldrb r0, [r1]
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81D9AC4

	thumb_func_start sub_81D9B40
sub_81D9B40: @ 81D9B40
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	movs r1, 0
	ldr r3, =gUnknown_0862AD14
_081D9B4A:
	adds r0, r1, r3
	ldrb r0, [r0]
	cmp r0, r2
	bne _081D9B5C
	lsls r0, r1, 24
	lsrs r0, 24
	b _081D9B64
	.pool
_081D9B5C:
	adds r1, 0x1
	cmp r1, 0x1F
	bls _081D9B4A
	movs r0, 0x20
_081D9B64:
	pop {r1}
	bx r1
	thumb_func_end sub_81D9B40

	thumb_func_start sub_81D9B68
sub_81D9B68: @ 81D9B68
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	mov r10, r0
	str r1, [sp, 0x20]
	str r2, [sp, 0x24]
	str r3, [sp, 0x28]
	ldr r0, [sp, 0x4C]
	ldr r5, [sp, 0x50]
	lsls r0, 16
	lsrs r0, 16
	mov r9, r0
	adds r0, r5, 0
	bl StringLength
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0xF
	bne _081D9C7E
	movs r4, 0
	add r7, sp, 0x10
_081D9B98:
	adds r0, r5, r4
	ldrb r0, [r0]
	bl sub_81D9B40
	adds r1, r7, r4
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x20
	beq _081D9C7E
	adds r4, 0x1
	cmp r4, 0xE
	ble _081D9B98
	movs r6, 0x3
	movs r5, 0
	movs r0, 0x5
	mov r8, r0
	movs r4, 0xD
_081D9BBC:
	mov r1, r8
	str r1, [sp]
	add r0, sp, 0x4
	adds r1, r7, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl sub_81D9D5C
	adds r6, 0x8
	adds r5, 0x5
	subs r4, 0x1
	cmp r4, 0
	bge _081D9BBC
	movs r0, 0x2
	str r0, [sp]
	add r0, sp, 0x4
	adds r1, r7, 0
	movs r2, 0x46
	movs r3, 0x73
	bl sub_81D9D5C
	add r0, sp, 0x4
	movs r1, 0
	movs r2, 0x3
	bl sub_81D9DAC
	adds r4, r0, 0
	adds r0, r7, 0
	movs r1, 0x75
	movs r2, 0x3
	bl sub_81D9DAC
	cmp r4, r0
	bne _081D9C7E
	add r0, sp, 0x4
	movs r1, 0x9
	movs r2, 0x15
	bl sub_81D9C90
	add r0, sp, 0x4
	ldrb r0, [r0, 0x8]
	movs r2, 0xF
	ands r2, r0
	add r0, sp, 0x4
	movs r1, 0x8
	bl sub_81D9C90
	add r0, sp, 0x4
	ldrb r2, [r0, 0x8]
	lsrs r2, 4
	movs r1, 0x8
	bl sub_81D9CDC
	add r0, sp, 0x4
	ldrb r2, [r0, 0x6]
	adds r1, r0, 0
	ldrb r0, [r0]
	ldrb r1, [r1, 0x2]
	eors r0, r1
	add r1, sp, 0x4
	ldrb r4, [r1, 0x4]
	eors r0, r4
	mov r3, r9
	lsrs r1, r3, 8
	eors r0, r1
	cmp r2, r0
	bne _081D9C7E
	add r0, sp, 0x4
	ldrb r3, [r0, 0x7]
	adds r2, r0, 0
	ldrb r1, [r0, 0x1]
	ldrb r0, [r2, 0x3]
	eors r1, r0
	adds r0, r2, 0
	ldrb r2, [r0, 0x5]
	eors r1, r2
	movs r0, 0xFF
	mov r5, r9
	ands r0, r5
	eors r1, r0
	cmp r3, r1
	bne _081D9C7E
	add r0, sp, 0x4
	ldrh r0, [r0]
	mov r1, r10
	strh r0, [r1]
	mov r0, sp
	adds r0, 0x6
	ldrh r0, [r0]
	ldr r3, [sp, 0x20]
	strh r0, [r3]
	ldr r5, [sp, 0x24]
	strb r4, [r5]
	ldr r0, [sp, 0x28]
	strb r2, [r0]
	movs r0, 0x1
	b _081D9C80
_081D9C7E:
	movs r0, 0
_081D9C80:
	add sp, 0x2C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D9B68

	thumb_func_start sub_81D9C90
sub_81D9C90: @ 81D9C90
	push {r4-r7,lr}
	adds r7, r0, 0
	mov r12, r1
	subs r3, r2, 0x1
	cmp r2, 0
	beq _081D9CD6
_081D9C9C:
	ldrb r1, [r7]
	movs r0, 0x80
	ands r0, r1
	lsls r0, 24
	lsrs r4, r0, 31
	mov r2, r12
	subs r2, 0x1
	subs r5, r3, 0x1
	cmp r2, 0
	blt _081D9CCC
	movs r6, 0x80
	adds r3, r2, r7
_081D9CB4:
	ldrb r1, [r3]
	adds r0, r6, 0
	ands r0, r1
	lsls r0, 24
	lsls r1, 1
	orrs r4, r1
	strb r4, [r3]
	lsrs r4, r0, 31
	subs r3, 0x1
	subs r2, 0x1
	cmp r2, 0
	bge _081D9CB4
_081D9CCC:
	adds r3, r5, 0
	movs r0, 0x1
	negs r0, r0
	cmp r3, r0
	bne _081D9C9C
_081D9CD6:
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D9C90

	thumb_func_start sub_81D9CDC
sub_81D9CDC: @ 81D9CDC
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r5, r1, 0
	lsls r2, 24
	lsrs r3, r2, 24
	lsls r0, r3, 4
	orrs r3, r0
	lsls r0, r3, 24
	lsrs r3, r0, 24
	movs r4, 0
	cmp r4, r5
	bcs _081D9D04
_081D9CF4:
	adds r2, r6, r4
	ldrb r1, [r2]
	adds r0, r3, 0
	eors r0, r1
	strb r0, [r2]
	adds r4, 0x1
	cmp r4, r5
	bcc _081D9CF4
_081D9D04:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_81D9CDC

	thumb_func_start sub_81D9D0C
sub_81D9D0C: @ 81D9D0C
	push {lr}
	lsrs r3, r1, 3
	movs r2, 0x7
	ands r2, r1
	movs r1, 0x80
	asrs r1, r2
	adds r0, r3
	ldrb r0, [r0]
	ands r0, r1
	cmp r0, 0
	beq _081D9D24
	movs r0, 0x1
_081D9D24:
	pop {r1}
	bx r1
	thumb_func_end sub_81D9D0C

	thumb_func_start sub_81D9D28
sub_81D9D28: @ 81D9D28
	lsrs r3, r1, 3
	movs r2, 0x7
	ands r2, r1
	movs r1, 0x80
	asrs r1, r2
	lsls r1, 24
	lsrs r1, 24
	adds r0, r3
	ldrb r2, [r0]
	orrs r1, r2
	strb r1, [r0]
	bx lr
	thumb_func_end sub_81D9D28

	thumb_func_start sub_81D9D40
sub_81D9D40: @ 81D9D40
	lsrs r3, r1, 3
	movs r2, 0x7
	ands r2, r1
	movs r1, 0x80
	asrs r1, r2
	mvns r1, r1
	lsls r1, 24
	lsrs r1, 24
	adds r0, r3
	ldrb r2, [r0]
	ands r1, r2
	strb r1, [r0]
	bx lr
	thumb_func_end sub_81D9D40

	thumb_func_start sub_81D9D5C
sub_81D9D5C: @ 81D9D5C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r6, r0, 0
	mov r9, r1
	adds r1, r2, 0
	mov r8, r3
	ldr r7, [sp, 0x1C]
	movs r5, 0
	cmp r5, r7
	bcs _081D9DA0
	adds r4, r1, 0
_081D9D76:
	mov r0, r8
	adds r1, r0, r5
	mov r0, r9
	bl sub_81D9D0C
	lsls r0, 24
	cmp r0, 0
	beq _081D9D90
	adds r0, r6, 0
	adds r1, r4, 0
	bl sub_81D9D28
	b _081D9D98
_081D9D90:
	adds r0, r6, 0
	adds r1, r4, 0
	bl sub_81D9D40
_081D9D98:
	adds r4, 0x1
	adds r5, 0x1
	cmp r5, r7
	bcc _081D9D76
_081D9DA0:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81D9D5C

	thumb_func_start sub_81D9DAC
sub_81D9DAC: @ 81D9DAC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	adds r7, r1, 0
	adds r6, r2, 0
	movs r4, 0
	movs r5, 0
	cmp r4, r6
	bcs _081D9DD6
_081D9DC0:
	lsls r4, 1
	adds r1, r7, r5
	mov r0, r8
	bl sub_81D9D0C
	lsls r0, 24
	lsrs r0, 24
	orrs r4, r0
	adds r5, 0x1
	cmp r5, r6
	bcc _081D9DC0
_081D9DD6:
	adds r0, r4, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81D9DAC

	thumb_func_start sub_81D9DE4
sub_81D9DE4: @ 81D9DE4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	movs r1, 0x1A
	ldrsh r0, [r0, r1]
	cmp r0, 0x4
	bhi _081D9EA4
	lsls r0, 2
	ldr r1, =_081D9E10
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081D9E10:
	.4byte _081D9E24
	.4byte _081D9E44
	.4byte _081D9E64
	.4byte _081D9E84
	.4byte _081D9EA4
_081D9E24:
	ldr r4, =gUnknown_02039F31
	ldr r0, =gUnknown_02039F24
	ldrb r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x32
	b _081D9EB4
	.pool
_081D9E44:
	ldr r4, =gUnknown_02039F31
	ldr r0, =gUnknown_02039F24
	ldrb r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x33
	b _081D9EB4
	.pool
_081D9E64:
	ldr r4, =gUnknown_02039F31
	ldr r0, =gUnknown_02039F24
	ldrb r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x34
	b _081D9EB4
	.pool
_081D9E84:
	ldr r4, =gUnknown_02039F31
	ldr r0, =gUnknown_02039F24
	ldrb r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x35
	b _081D9EB4
	.pool
_081D9EA4:
	ldr r4, =gUnknown_02039F31
	ldr r0, =gUnknown_02039F24
	ldrb r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x36
_081D9EB4:
	bl GetMonData
	strb r0, [r4]
	ldr r5, =gUnknown_02039E00
	ldr r4, =gUnknown_02039F25
	ldrb r0, [r4]
	lsls r0, 6
	adds r0, r5
	ldr r1, =gUnknown_02039F31
	ldrb r1, [r1]
	adds r0, 0x2C
	strb r1, [r0]
	ldr r0, =0x00000864
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	negs r0, r0
	lsrs r0, 31
	ldrb r1, [r4]
	lsls r1, 6
	adds r1, r5
	adds r1, 0x2D
	strb r0, [r1]
	ldr r1, =sub_81DA160
	ldr r2, =sub_81D9F14
	adds r0, r6, 0
	bl SetTaskFuncWithFollowupFunc
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9DE4

	thumb_func_start sub_81D9F14
sub_81D9F14: @ 81D9F14
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =sub_81DA244
	ldr r2, =sub_81D9F30
	bl SetTaskFuncWithFollowupFunc
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9F14

	thumb_func_start sub_81D9F30
sub_81D9F30: @ 81D9F30
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =sub_81DA2E8
	ldr r2, =sub_81D9F4C
	bl SetTaskFuncWithFollowupFunc
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9F30

	thumb_func_start sub_81D9F4C
sub_81D9F4C: @ 81D9F4C
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =sub_81DA3B8
	ldr r2, =sub_81D9F68
	bl SetTaskFuncWithFollowupFunc
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9F4C

	thumb_func_start sub_81D9F68
sub_81D9F68: @ 81D9F68
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	lsls r0, 24
	lsrs r6, r0, 24
	movs r0, 0
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r3, 0
	ldr r5, =gUnknown_02039F30
	mov r8, r5
	ldr r0, =gSpecialVar_0x8004
	mov r12, r0
	add r1, sp, 0x4
	mov r9, r1
	ldrb r4, [r5]
	cmp r3, r4
	bcs _081D9FB2
	lsls r0, r6, 2
	adds r0, r6
	lsls r4, r0, 3
	ldr r7, =gTasks + 0x8
_081D9F98:
	mov r0, sp
	adds r2, r0, r3
	adds r1, r3, 0x1
	lsls r0, r1, 1
	adds r0, r4
	adds r0, r7
	ldrh r0, [r0]
	strb r0, [r2]
	lsls r1, 24
	lsrs r3, r1, 24
	ldrb r1, [r5]
	cmp r3, r1
	bcc _081D9F98
_081D9FB2:
	movs r3, 0
	mov r4, r8
	ldrb r0, [r4]
	cmp r3, r0
	bcs _081D9FD6
	adds r4, r0, 0
	mov r2, sp
_081D9FC0:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, r4
	bcs _081D9FD6
	mov r7, sp
	adds r1, r7, r3
	ldrb r0, [r2]
	ldrb r1, [r1]
	cmp r0, r1
	beq _081D9FC0
_081D9FD6:
	mov r0, r8
	ldrb r0, [r0]
	cmp r3, r0
	bne _081D9FF4
	movs r0, 0
	mov r1, r12
	strh r0, [r1]
	b _081D9FFA
	.pool
_081D9FF4:
	movs r0, 0x1
	mov r4, r12
	strh r0, [r4]
_081D9FFA:
	movs r3, 0
	mov r7, r8
	mov r0, r8
	ldrb r0, [r0]
	cmp r3, r0
	bcs _081DA02A
	mov r4, r9
	lsls r0, r6, 2
	adds r0, r6
	lsls r2, r0, 3
	ldr r5, =gTasks + 0x8
_081DA010:
	adds r1, r4, r3
	adds r0, r3, 0x5
	lsls r0, 1
	adds r0, r2
	adds r0, r5
	ldrh r0, [r0]
	strb r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	ldrb r1, [r7]
	cmp r3, r1
	bcc _081DA010
_081DA02A:
	mov r4, r8
	ldrb r0, [r4]
	cmp r0, 0x4
	beq _081DA0B8
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _081DA0B8
	ldr r0, =gUnknown_02039E00
	adds r1, r0, 0
	adds r1, 0x2C
	ldrb r2, [r1]
	movs r3, 0x1
	ldrb r1, [r4]
	adds r5, r0, 0
	cmp r3, r1
	bcs _081DA06C
	adds r4, r5, 0
	mov r7, r8
	ldrb r1, [r7]
_081DA054:
	lsls r0, r3, 6
	adds r0, r4
	adds r0, 0x2C
	ldrb r7, [r0]
	cmp r2, r7
	bcs _081DA062
	ldrb r2, [r0]
_081DA062:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, r1
	bcc _081DA054
_081DA06C:
	cmp r2, 0
	beq _081DA076
	subs r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
_081DA076:
	movs r4, 0x1
	movs r3, 0
	mov r0, r8
	ldrb r0, [r0]
	cmp r3, r0
	bcs _081DA0AC
	adds r0, r5, 0
	b _081DA0A2
	.pool
_081DA090:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	mov r1, r8
	ldrb r1, [r1]
	cmp r3, r1
	bcs _081DA0AC
	lsls r0, r3, 6
	adds r0, r5
_081DA0A2:
	adds r0, 0x2D
	ldrb r0, [r0]
	cmp r0, 0
	bne _081DA090
	movs r4, 0
_081DA0AC:
	mov r0, sp
	ldrb r0, [r0]
	adds r1, r2, 0
	adds r2, r4, 0
	bl sub_80DACBC
_081DA0B8:
	mov r0, r9
	bl sub_80F86E0
	ldr r1, =gUnknown_02039F2B
	strb r0, [r1]
	ldr r0, =gUnknown_02039F30
	ldrb r0, [r0]
	cmp r0, 0x3
	bhi _081DA0E8
	ldr r1, =sub_81DA488
	ldr r2, =sub_81DA10C
	adds r0, r6, 0
	bl SetTaskFuncWithFollowupFunc
	b _081DA0F6
	.pool
_081DA0E8:
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81DA10C
	str r0, [r1]
_081DA0F6:
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81D9F68

	thumb_func_start sub_81DA10C
sub_81DA10C: @ 81DA10C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_02039F2C
	ldrb r0, [r0]
	bl sub_80DB09C
	ldr r1, =sub_80FCF40
	ldr r2, =sub_81DA138
	adds r0, r4, 0
	bl SetTaskFuncWithFollowupFunc
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA10C

	thumb_func_start sub_81DA138
sub_81DA138: @ 81DA138
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	bl sub_80DCE58
	ldr r1, =sub_80FCFD0
	ldr r2, =sub_80F8714
	adds r0, r4, 0
	bl SetTaskFuncWithFollowupFunc
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA138

	thumb_func_start sub_81DA160
sub_81DA160: @ 81DA160
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r6, r7, 2
	adds r0, r6, r7
	lsls r4, r0, 3
	ldr r5, =gTasks + 0x8
	adds r0, r4, r5
	adds r0, 0x18
	bl sub_80FC670
	cmp r0, 0
	beq _081DA224
	adds r0, r5, 0
	subs r0, 0x8
	adds r4, r0
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081DA1A4
	cmp r0, 0x1
	beq _081DA1D4
	movs r0, 0
	strh r0, [r4, 0x8]
	strh r0, [r4, 0x20]
	adds r0, r7, 0
	bl SwitchTaskToFollowupFunc
	b _081DA224
	.pool
_081DA1A4:
	bl sub_800A520
	lsls r0, 24
	cmp r0, 0
	beq _081DA224
	ldr r0, =gUnknown_02039F25
	ldrb r0, [r0]
	lsls r0, 6
	ldr r1, =gUnknown_02039E00
	adds r0, r1
	movs r1, 0x40
	bl sub_80FC4F4
	cmp r0, 0x1
	bne _081DA224
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _081DA224
	.pool
_081DA1D4:
	bl sub_80FC55C
	lsls r0, 24
	cmp r0, 0
	beq _081DA224
	movs r5, 0
	ldr r0, =gUnknown_02039F30
	mov r8, r6
	ldrb r0, [r0]
	cmp r5, r0
	bge _081DA214
	ldr r6, =gLinkPlayers
_081DA1EC:
	lsls r4, r5, 6
	ldr r0, =gUnknown_02039E00
	adds r4, r0
	lsls r1, r5, 8
	ldr r0, =gUnknown_020223C4
	adds r1, r0
	adds r0, r4, 0
	movs r2, 0x40
	bl memcpy
	ldrh r1, [r6, 0x1A]
	adds r0, r4, 0
	bl sub_80DFA08
	adds r6, 0x1C
	adds r5, 0x1
	ldr r0, =gUnknown_02039F30
	ldrb r0, [r0]
	cmp r5, r0
	blt _081DA1EC
_081DA214:
	ldr r0, =gTasks
	mov r2, r8
	adds r1, r2, r7
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_081DA224:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA160

	thumb_func_start sub_81DA244
sub_81DA244: @ 81DA244
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r5, r0, 3
	ldr r6, =gTasks + 0x8
	adds r0, r5, r6
	adds r0, 0x18
	bl sub_80FC670
	cmp r0, 0
	beq _081DA2D4
	adds r0, r6, 0
	subs r0, 0x8
	adds r5, r0
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r0, 0
	beq _081DA284
	cmp r0, 0x1
	beq _081DA2AC
	movs r0, 0
	strh r0, [r5, 0x8]
	strh r0, [r5, 0x20]
	adds r0, r4, 0
	bl SwitchTaskToFollowupFunc
	b _081DA2D4
	.pool
_081DA284:
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _081DA2CE
	bl sub_800A520
	lsls r0, 24
	cmp r0, 0
	beq _081DA2D4
	ldr r0, =gRngValue
	movs r1, 0x4
	bl sub_80FC4F4
	cmp r0, 0x1
	bne _081DA2D4
	b _081DA2CE
	.pool
_081DA2AC:
	movs r0, 0
	bl sub_80FC530
	lsls r0, 24
	cmp r0, 0
	beq _081DA2D4
	ldr r0, =gRngValue
	ldr r4, =gUnknown_020223C4
	adds r1, r4, 0
	movs r2, 0x4
	bl memcpy
	ldr r0, =gUnknown_030060B8
	adds r1, r4, 0
	movs r2, 0x4
	bl memcpy
_081DA2CE:
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
_081DA2D4:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA244

	thumb_func_start sub_81DA2E8
sub_81DA2E8: @ 81DA2E8
	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
	lsls r0, r6, 2
	mov r9, r0
	adds r0, r6
	lsls r5, r0, 3
	ldr r1, =gTasks + 0x8
	mov r8, r1
	adds r0, r5, r1
	adds r0, 0x18
	bl sub_80FC670
	cmp r0, 0
	beq _081DA39E
	movs r0, 0x8
	negs r0, r0
	add r0, r8
	mov r10, r0
	adds r4, r5, r0
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081DA338
	cmp r0, 0x1
	beq _081DA35A
	movs r0, 0
	strh r0, [r4, 0x8]
	strh r0, [r4, 0x20]
	adds r0, r6, 0
	bl SwitchTaskToFollowupFunc
	b _081DA39E
	.pool
_081DA338:
	bl sub_800A520
	lsls r0, 24
	cmp r0, 0
	beq _081DA39E
	add r0, sp, 0x8
	movs r1, 0x6E
	strh r1, [r0]
	movs r1, 0x2
	bl sub_80FC4F4
	cmp r0, 0x1
	bne _081DA39E
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _081DA39E
_081DA35A:
	bl sub_80FC55C
	lsls r0, 24
	cmp r0, 0
	beq _081DA39E
	movs r1, 0
	ldr r7, =gUnknown_02039F30
	ldrb r0, [r7]
	cmp r1, r0
	bge _081DA390
	mov r0, r8
	adds r0, 0xA
	adds r3, r5, r0
	ldr r4, =gUnknown_020223C4
	mov r2, sp
	movs r5, 0x80
	lsls r5, 1
_081DA37C:
	ldrh r0, [r4]
	strh r0, [r2]
	strh r0, [r3]
	adds r3, 0x2
	adds r4, r5
	adds r2, 0x2
	adds r1, 0x1
	ldrb r0, [r7]
	cmp r1, r0
	blt _081DA37C
_081DA390:
	mov r0, r9
	adds r1, r0, r6
	lsls r1, 3
	add r1, r10
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_081DA39E:
	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_81DA2E8

	thumb_func_start sub_81DA3B8
sub_81DA3B8: @ 81DA3B8
	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
	lsls r0, r6, 2
	mov r9, r0
	adds r0, r6
	lsls r5, r0, 3
	ldr r1, =gTasks + 0x8
	mov r8, r1
	adds r0, r5, r1
	adds r0, 0x18
	bl sub_80FC670
	cmp r0, 0
	beq _081DA46E
	movs r0, 0x8
	negs r0, r0
	add r0, r8
	mov r10, r0
	adds r4, r5, r0
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081DA408
	cmp r0, 0x1
	beq _081DA42A
	movs r0, 0
	strh r0, [r4, 0x8]
	strh r0, [r4, 0x20]
	adds r0, r6, 0
	bl SwitchTaskToFollowupFunc
	b _081DA46E
	.pool
_081DA408:
	bl sub_800A520
	lsls r0, 24
	cmp r0, 0
	beq _081DA46E
	ldrh r1, [r4, 0x1A]
	add r0, sp, 0x8
	strh r1, [r0]
	movs r1, 0x2
	bl sub_80FC4F4
	cmp r0, 0x1
	bne _081DA46E
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _081DA46E
_081DA42A:
	bl sub_80FC55C
	lsls r0, 24
	cmp r0, 0
	beq _081DA46E
	movs r1, 0
	ldr r7, =gUnknown_02039F30
	ldrb r0, [r7]
	cmp r1, r0
	bge _081DA460
	mov r0, r8
	adds r0, 0x2
	adds r3, r5, r0
	ldr r4, =gUnknown_020223C4
	mov r2, sp
	movs r5, 0x80
	lsls r5, 1
_081DA44C:
	ldrh r0, [r4]
	strh r0, [r2]
	strh r0, [r3]
	adds r3, 0x2
	adds r4, r5
	adds r2, 0x2
	adds r1, 0x1
	ldrb r0, [r7]
	cmp r1, r0
	blt _081DA44C
_081DA460:
	mov r0, r9
	adds r1, r0, r6
	lsls r1, 3
	add r1, r10
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_081DA46E:
	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_81DA3B8

	thumb_func_start sub_81DA488
sub_81DA488: @ 81DA488
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r7, r6, 2
	adds r0, r7, r6
	lsls r4, r0, 3
	ldr r5, =gTasks + 0x8
	adds r0, r4, r5
	adds r0, 0x18
	bl sub_80FC670
	cmp r0, 0
	beq _081DA55C
	adds r0, r5, 0
	subs r0, 0x8
	adds r4, r0
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081DA4CC
	cmp r0, 0x1
	beq _081DA50C
	movs r0, 0
	strh r0, [r4, 0x8]
	strh r0, [r4, 0x20]
	adds r0, r6, 0
	bl SwitchTaskToFollowupFunc
	b _081DA55C
	.pool
_081DA4CC:
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _081DA4FA
	bl sub_800A520
	lsls r0, 24
	cmp r0, 0
	beq _081DA55C
	ldr r0, =gUnknown_02039F30
	ldrb r2, [r0]
	lsls r0, r2, 6
	ldr r1, =gUnknown_02039E00
	adds r0, r1
	movs r1, 0x4
	subs r1, r2
	lsls r1, 22
	lsrs r1, 16
	bl sub_80FC4F4
	cmp r0, 0x1
	bne _081DA55C
_081DA4FA:
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _081DA55C
	.pool
_081DA50C:
	movs r0, 0
	bl sub_80FC530
	lsls r0, 24
	cmp r0, 0
	beq _081DA55C
	ldr r4, =gUnknown_02039F30
	ldrb r3, [r4]
	lsls r0, r3, 6
	ldr r5, =gUnknown_02039E00
	adds r0, r5
	ldr r1, =gUnknown_020223C4
	movs r2, 0x4
	subs r2, r3
	lsls r2, 6
	bl memcpy
	ldrb r4, [r4]
	mov r8, r7
	cmp r4, 0x3
	bgt _081DA54C
	lsls r0, r4, 6
	adds r5, r0, r5
	ldr r7, =gLinkPlayers
_081DA53C:
	ldrh r1, [r7, 0x1A]
	adds r0, r5, 0
	bl sub_80DFA08
	adds r5, 0x40
	adds r4, 0x1
	cmp r4, 0x3
	ble _081DA53C
_081DA54C:
	ldr r0, =gTasks
	mov r2, r8
	adds r1, r2, r6
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_081DA55C:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA488

	thumb_func_start sub_81DA57C
sub_81DA57C: @ 81DA57C
	push {lr}
	ldr r0, =0x00000864
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081DA5CA
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x64
	bl __umodsi3
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1E
	bhi _081DA5CA
	movs r0, 0x5B
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081DA5C0
	ldr r0, =gUnknown_0862AD34
	movs r1, 0x8
	movs r2, 0x5
	bl sub_81DA5D4
	b _081DA5CA
	.pool
_081DA5C0:
	ldr r0, =gUnknown_0862AD44
	movs r1, 0x7
	movs r2, 0x1
	bl sub_81DA5D4
_081DA5CA:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA57C

	thumb_func_start sub_81DA5D4
sub_81DA5D4: @ 81DA5D4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r9, r0
	adds r7, r1, 0
	mov r10, r2
	movs r6, 0
	movs r0, 0x5
	mov r8, r0
	movs r5, 0
	cmp r5, r7
	bcs _081DA61C
	mov r4, r9
_081DA5F4:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r4]
	ldr r2, =0x000009ca
	adds r0, r2
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081DA614
	adds r0, r1, 0
	bl sub_81DA6CC
	cmp r8, r0
	ble _081DA612
	mov r8, r0
_081DA612:
	adds r6, 0x1
_081DA614:
	adds r4, 0x2
	adds r5, 0x1
	cmp r5, r7
	bcc _081DA5F4
_081DA61C:
	cmp r6, 0
	beq _081DA6BA
	cmp r8, r10
	bhi _081DA6BA
	movs r6, 0
	movs r5, 0
	cmp r5, r7
	bcs _081DA654
	mov r4, r9
_081DA62E:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r4]
	ldr r2, =0x000009ca
	adds r0, r2
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081DA64C
	adds r0, r1, 0
	bl sub_81DA6CC
	cmp r0, r8
	bne _081DA64C
	adds r6, 0x1
_081DA64C:
	adds r4, 0x2
	adds r5, 0x1
	cmp r5, r7
	bcc _081DA62E
_081DA654:
	cmp r6, 0
	beq _081DA6BA
	bl Random
	lsls r0, 16
	lsrs r0, 16
	adds r1, r6, 0
	bl __modsi3
	adds r6, r0, 0
	movs r5, 0
	cmp r5, r7
	bcs _081DA6BA
	ldr r2, =gSaveBlock1Ptr
	ldr r3, =0x000009ca
	mov r4, r9
_081DA674:
	ldr r0, [r2]
	ldrh r1, [r4]
	adds r0, r3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	bne _081DA6B2
	adds r0, r1, 0
	str r2, [sp]
	str r3, [sp, 0x4]
	bl sub_81DA6CC
	ldr r2, [sp]
	ldr r3, [sp, 0x4]
	cmp r0, r8
	bne _081DA6B2
	cmp r6, 0
	bne _081DA6B0
	ldr r0, [r2]
	adds r0, r3
	ldrh r4, [r4]
	adds r0, r4
	mov r1, r8
	strb r1, [r0]
	b _081DA6BA
	.pool
_081DA6B0:
	subs r6, 0x1
_081DA6B2:
	adds r4, 0x2
	adds r5, 0x1
	cmp r5, r7
	bcc _081DA674
_081DA6BA:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81DA5D4

	thumb_func_start sub_81DA6CC
sub_81DA6CC: @ 81DA6CC
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r4, 0
	ldr r6, =gUnknown_085500A4
_081DA6D4:
	lsls r0, r4, 1
	lsls r1, r5, 4
	adds r0, r1
	adds r0, r6
	ldrh r0, [r0]
	bl trainer_flag_check
	lsls r0, 24
	cmp r0, 0
	bne _081DA6F0
	adds r0, r4, 0
	b _081DA6F8
	.pool
_081DA6F0:
	adds r4, 0x1
	cmp r4, 0x4
	ble _081DA6D4
	movs r0, 0x5
_081DA6F8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81DA6CC

	thumb_func_start sub_81DA700
sub_81DA700: @ 81DA700
	push {lr}
	sub sp, 0x8
	add r1, sp, 0x4
	mov r0, sp
	bl sub_8149F58
	ldr r0, =gUnknown_0862AD54
	ldr r1, [sp, 0x4]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_0862AF30
	ldr r1, [sp]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_0862B53C
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_0862B724
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0862B72C
	bl LoadSpritePalette
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA700

	thumb_func_start sub_81DA74C
sub_81DA74C: @ 81DA74C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	ldr r0, [sp, 0x24]
	ldr r1, [sp, 0x28]
	ldr r4, [sp, 0x2C]
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp]
	lsls r3, 24
	lsrs r3, 24
	mov r10, r3
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	lsls r4, 24
	lsrs r7, r4, 24
	ldr r0, =gUnknown_0862B758
	lsls r5, 16
	asrs r5, 16
	lsls r6, 16
	asrs r6, 16
	adds r1, r5, 0
	adds r2, r6, 0
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r7, 0x1
	beq _081DA7D0
	cmp r7, 0x1
	bgt _081DA7A8
	cmp r7, 0
	beq _081DA7B8
	b _081DA7AC
	.pool
_081DA7A8:
	cmp r7, 0x2
	beq _081DA7E4
_081DA7AC:
	ldr r6, =gSprites
	lsls r3, r5, 4
	b _081DA7F8
	.pool
_081DA7B8:
	ldr r2, =gSprites
	lsls r3, r5, 4
	adds r0, r3, r5
	lsls r0, 2
	adds r0, r2
	movs r1, 0x78
	strh r1, [r0, 0x2E]
	movs r1, 0x2D
	b _081DA7F4
	.pool
_081DA7D0:
	ldr r2, =gSprites
	lsls r3, r5, 4
	adds r0, r3, r5
	lsls r0, 2
	adds r0, r2
	movs r1, 0x59
	b _081DA7F0
	.pool
_081DA7E4:
	ldr r2, =gSprites
	lsls r3, r5, 4
	adds r0, r3, r5
	lsls r0, 2
	adds r0, r2
	movs r1, 0x97
_081DA7F0:
	strh r1, [r0, 0x2E]
	movs r1, 0x61
_081DA7F4:
	strh r1, [r0, 0x30]
	adds r6, r2, 0
_081DA7F8:
	adds r4, r3, r5
	lsls r4, 2
	adds r0, r4, r6
	mov r2, r8
	lsls r1, r2, 24
	asrs r1, 24
	movs r2, 0
	strh r1, [r0, 0x32]
	mov r3, r9
	lsls r1, r3, 24
	asrs r1, 24
	strh r1, [r0, 0x34]
	mov r1, sp
	ldrh r1, [r1]
	strh r1, [r0, 0x3A]
	mov r3, r10
	strh r3, [r0, 0x3C]
	strh r2, [r0, 0x36]
	strh r2, [r0, 0x38]
	adds r1, r7, 0
	bl StartSpriteAnim
	adds r0, r6, 0
	adds r0, 0x1C
	adds r4, r0
	ldr r0, =sub_81DA848
	str r0, [r4]
	adds r0, r5, 0
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DA74C

	thumb_func_start sub_81DA848
sub_81DA848: @ 81DA848
	push {r4,r5,lr}
	adds r3, r0, 0
	adds r2, r3, 0
	adds r2, 0x2E
	movs r0, 0x20
	ldrsh r1, [r3, r0]
	movs r4, 0x2E
	ldrsh r0, [r3, r4]
	cmp r1, r0
	bne _081DA874
	movs r5, 0x22
	ldrsh r1, [r3, r5]
	movs r4, 0x2
	ldrsh r0, [r2, r4]
	cmp r1, r0
	bne _081DA874
	ldr r0, =SpriteCallbackDummy
	str r0, [r3, 0x1C]
	b _081DA8B4
	.pool
_081DA874:
	ldrh r4, [r2, 0x8]
	movs r5, 0x8
	ldrsh r1, [r2, r5]
	movs r5, 0xC
	ldrsh r0, [r2, r5]
	cmp r1, r0
	bne _081DA890
	ldrh r0, [r2, 0x4]
	ldrh r1, [r3, 0x20]
	adds r0, r1
	movs r1, 0
	strh r0, [r3, 0x20]
	strh r1, [r2, 0x8]
	b _081DA894
_081DA890:
	adds r0, r4, 0x1
	strh r0, [r2, 0x8]
_081DA894:
	ldrh r4, [r2, 0xA]
	movs r5, 0xA
	ldrsh r1, [r2, r5]
	movs r5, 0xE
	ldrsh r0, [r2, r5]
	cmp r1, r0
	bne _081DA8B0
	ldrh r0, [r2, 0x6]
	ldrh r1, [r3, 0x22]
	adds r0, r1
	movs r1, 0
	strh r0, [r3, 0x22]
	strh r1, [r2, 0xA]
	b _081DA8B4
_081DA8B0:
	adds r0, r4, 0x1
	strh r0, [r2, 0xA]
_081DA8B4:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81DA848

	thumb_func_start sub_81DA8BC
sub_81DA8BC: @ 81DA8BC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	adds r6, r0, 0
	mov r8, r1
	ldr r0, [sp, 0x2C]
	ldr r1, [sp, 0x30]
	ldr r4, [sp, 0x34]
	ldr r5, [sp, 0x38]
	lsls r2, 16
	lsrs r2, 16
	str r2, [sp]
	lsls r3, 16
	lsrs r3, 16
	str r3, [sp, 0x4]
	lsls r0, 16
	lsrs r0, 16
	mov r10, r0
	lsls r1, 16
	lsrs r1, 16
	mov r9, r1
	lsls r4, 16
	lsrs r7, r4, 16
	lsls r5, 24
	lsrs r5, 24
	ldr r0, =gUnknown_0862B758
	lsls r6, 16
	asrs r6, 16
	mov r1, r8
	lsls r1, 16
	asrs r1, 16
	mov r8, r1
	adds r1, r6, 0
	mov r2, r8
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r5, 0x1
	beq _081DA94C
	cmp r5, 0x1
	bgt _081DA924
	cmp r5, 0
	beq _081DA934
	b _081DA928
	.pool
_081DA924:
	cmp r5, 0x2
	beq _081DA960
_081DA928:
	ldr r2, =gSprites
	lsls r3, r6, 4
	b _081DA972
	.pool
_081DA934:
	ldr r2, =gSprites
	lsls r3, r6, 4
	adds r0, r3, r6
	lsls r0, 2
	adds r0, r2
	movs r1, 0x78
	strh r1, [r0, 0x2E]
	movs r1, 0x2D
	b _081DA970
	.pool
_081DA94C:
	ldr r2, =gSprites
	lsls r3, r6, 4
	adds r0, r3, r6
	lsls r0, 2
	adds r0, r2
	movs r1, 0x59
	b _081DA96C
	.pool
_081DA960:
	ldr r2, =gSprites
	lsls r3, r6, 4
	adds r0, r3, r6
	lsls r0, 2
	adds r0, r2
	movs r1, 0x97
_081DA96C:
	strh r1, [r0, 0x2E]
	movs r1, 0x61
_081DA970:
	strh r1, [r0, 0x30]
_081DA972:
	adds r4, r3, r6
	lsls r4, 2
	adds r0, r4, r2
	mov r3, sp
	ldrh r3, [r3]
	strh r3, [r0, 0x32]
	mov r1, sp
	ldrh r1, [r1, 0x4]
	strh r1, [r0, 0x34]
	mov r3, r10
	strh r3, [r0, 0x36]
	mov r1, r9
	strh r1, [r0, 0x38]
	strh r7, [r0, 0x3A]
	adds r1, r5, 0
	str r2, [sp, 0x8]
	bl StartSpriteAnim
	ldr r2, [sp, 0x8]
	adds r0, r2, 0
	adds r0, 0x1C
	adds r4, r0
	ldr r0, =sub_81DA9BC
	str r0, [r4]
	adds r0, r6, 0
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DA8BC

	thumb_func_start sub_81DA9BC
sub_81DA9BC: @ 81DA9BC
	push {r4,lr}
	adds r4, r0, 0
	ldrh r0, [r4, 0x32]
	bl Sin2
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x36
	ldrsh r1, [r4, r2]
	muls r0, r1
	asrs r0, 12
	strh r0, [r4, 0x24]
	ldrh r0, [r4, 0x32]
	bl Cos2
	lsls r0, 16
	asrs r0, 16
	movs r3, 0x36
	ldrsh r1, [r4, r3]
	muls r0, r1
	asrs r0, 12
	strh r0, [r4, 0x26]
	movs r1, 0x32
	ldrsh r0, [r4, r1]
	movs r2, 0x34
	ldrsh r1, [r4, r2]
	adds r0, r1
	movs r1, 0xB4
	lsls r1, 1
	bl __modsi3
	strh r0, [r4, 0x32]
	ldrh r2, [r4, 0x36]
	movs r3, 0x36
	ldrsh r1, [r4, r3]
	movs r3, 0x38
	ldrsh r0, [r4, r3]
	cmp r1, r0
	beq _081DAA12
	ldrh r0, [r4, 0x3A]
	adds r0, r2, r0
	strh r0, [r4, 0x36]
	b _081DAA16
_081DAA12:
	ldr r0, =SpriteCallbackDummy
	str r0, [r4, 0x1C]
_081DAA16:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DA9BC

	thumb_func_start sub_81DAA20
sub_81DAA20: @ 81DAA20
	push {r4,r5,lr}
	adds r5, r0, 0
	ldr r4, =0x00002e90
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
	movs r0, 0x10
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r4, =gSprites
	adds r0, r4
	bl DestroySprite
	movs r0, 0x12
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	bl DestroySprite
	movs r0, 0x14
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	bl DestroySprite
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DAA20

	thumb_func_start sub_81DAA74
sub_81DAA74: @ 81DAA74
	push {r4,r5,lr}
	adds r3, r0, 0
	ldr r2, =gSprites
	movs r0, 0x10
	ldrsh r1, [r3, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r5, r2, 0
	adds r5, 0x1C
	adds r0, r5
	ldr r4, [r0]
	ldr r0, =SpriteCallbackDummy
	cmp r4, r0
	bne _081DAAC4
	movs r0, 0x12
	ldrsh r1, [r3, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldr r2, [r0]
	cmp r2, r4
	bne _081DAAC4
	movs r1, 0x14
	ldrsh r0, [r3, r1]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r5
	ldr r0, [r1]
	cmp r0, r2
	bne _081DAAC4
	movs r0, 0x1
	b _081DAAC6
	.pool
_081DAAC4:
	movs r0, 0
_081DAAC6:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81DAA74

	thumb_func_start sub_81DAACC
sub_81DAACC: @ 81DAACC
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _081DAB20
	bl sub_81DA700
	ldr r1, =0x00003f41
	movs r0, 0x50
	bl SetGpuReg
	movs r1, 0x80
	lsls r1, 5
	movs r0, 0x52
	bl SetGpuReg
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r1, 0xA0
	lsls r1, 3
	movs r0, 0
	movs r2, 0x2
	bl ChangeBgY
	movs r0, 0
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
	b _081DAB46
	.pool
_081DAB20:
	movs r1, 0x80
	lsls r1, 6
	movs r0, 0
	bl ClearGpuRegBits
	movs r1, 0x80
	lsls r1, 7
	movs r0, 0
	bl ClearGpuRegBits
	movs r1, 0x80
	lsls r1, 1
	movs r0, 0
	bl ClearGpuRegBits
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	movs r0, 0
_081DAB46:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81DAACC

	thumb_func_start sub_81DAB4C
sub_81DAB4C: @ 81DAB4C
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r1, 0xC
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _081DAB64
	movs r1, 0x80
	lsls r1, 1
	movs r0, 0
	bl SetGpuRegBits
_081DAB64:
	ldrh r1, [r4, 0xC]
	movs r2, 0xC
	ldrsh r0, [r4, r2]
	cmp r0, 0x10
	bne _081DAB98
	ldrh r1, [r4, 0xE]
	movs r2, 0xE
	ldrsh r0, [r4, r2]
	cmp r0, 0x1F
	bne _081DAB92
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	str r0, [sp]
	adds r0, r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _081DABB0
_081DAB92:
	adds r0, r1, 0x1
	strh r0, [r4, 0xE]
	b _081DABB0
_081DAB98:
	adds r0, r1, 0x1
	strh r0, [r4, 0xC]
	ldrh r1, [r4, 0xC]
	movs r0, 0x10
	subs r0, r1
	lsls r0, 8
	orrs r1, r0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x52
	bl SetGpuReg
_081DABB0:
	movs r0, 0
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81DAB4C

	thumb_func_start sub_81DABBC
sub_81DABBC: @ 81DABBC
	push {r4,lr}
	adds r4, r0, 0
	bl sub_81DAA74
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081DABD2
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081DABD2:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81DABBC

	thumb_func_start sub_81DABDC
sub_81DABDC: @ 81DABDC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B770
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DABEE:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DABEE
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DABDC

	thumb_func_start sub_81DAC14
sub_81DAC14: @ 81DAC14
	push {r4-r6,lr}
	sub sp, 0xC
	adds r6, r0, 0
	movs r1, 0x33
	negs r1, r1
	movs r0, 0
	str r0, [sp]
	movs r5, 0x2
	str r5, [sp, 0x4]
	str r0, [sp, 0x8]
	movs r0, 0x78
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x10]
	movs r0, 0x7
	negs r0, r0
	str r5, [sp]
	movs r4, 0x2
	negs r4, r4
	str r4, [sp, 0x4]
	movs r1, 0x1
	str r1, [sp, 0x8]
	movs r1, 0xC1
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x12]
	str r4, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0xF7
	movs r1, 0xC1
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x14]
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81DAC14

	thumb_func_start sub_81DAC80
sub_81DAC80: @ 81DAC80
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DACA4
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DABDC
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DACA4:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DAC80

	thumb_func_start sub_81DACB4
sub_81DACB4: @ 81DACB4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B784
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DACC6:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DACC6
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DACB4

	thumb_func_start sub_81DACEC
sub_81DACEC: @ 81DACEC
	push {r4,r5,lr}
	sub sp, 0xC
	adds r5, r0, 0
	movs r0, 0
	str r0, [sp]
	movs r4, 0x4
	negs r4, r4
	str r4, [sp, 0x4]
	str r0, [sp, 0x8]
	movs r0, 0x78
	movs r1, 0xC5
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x10]
	str r4, [sp]
	movs r4, 0x2
	str r4, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0xF1
	movs r1, 0x3B
	movs r2, 0
	movs r3, 0x1
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x12]
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x4
	str r1, [sp]
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x3B
	movs r2, 0
	movs r3, 0x1
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x14]
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81DACEC

	thumb_func_start sub_81DAD58
sub_81DAD58: @ 81DAD58
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DAD7C
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DACB4
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DAD7C:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DAD58

	thumb_func_start sub_81DAD8C
sub_81DAD8C: @ 81DAD8C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B798
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DAD9E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DAD9E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DAD8C

	thumb_func_start sub_81DADC4
sub_81DADC4: @ 81DADC4
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x10
	mov r8, r0
	movs r6, 0x80
	str r6, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	movs r5, 0x4
	negs r5, r5
	str r5, [sp, 0x8]
	str r4, [sp, 0xC]
	movs r0, 0x78
	movs r1, 0x2D
	movs r2, 0xC
	movs r3, 0x4
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	strh r0, [r1, 0x10]
	str r6, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x1
	str r0, [sp, 0xC]
	movs r0, 0x59
	movs r1, 0x61
	movs r2, 0xFC
	movs r3, 0x4
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	strh r0, [r1, 0x12]
	str r6, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0x2
	str r0, [sp, 0xC]
	movs r0, 0x97
	movs r1, 0x61
	movs r2, 0x84
	movs r3, 0x4
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	strh r0, [r1, 0x14]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81DADC4

	thumb_func_start sub_81DAE44
sub_81DAE44: @ 81DAE44
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DAE68
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DAD8C
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DAE68:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DAE44

	thumb_func_start sub_81DAE78
sub_81DAE78: @ 81DAE78
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B7AC
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DAE8A:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DAE8A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DAE78

	thumb_func_start sub_81DAEB0
sub_81DAEB0: @ 81DAEB0
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x10
	mov r8, r0
	movs r2, 0x8E
	lsls r2, 1
	movs r6, 0x83
	str r6, [sp]
	movs r5, 0x23
	str r5, [sp, 0x4]
	movs r4, 0x3
	negs r4, r4
	str r4, [sp, 0x8]
	movs r0, 0
	str r0, [sp, 0xC]
	movs r0, 0x78
	movs r1, 0x50
	movs r3, 0x8
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	strh r0, [r1, 0x10]
	str r6, [sp]
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x1
	str r0, [sp, 0xC]
	movs r0, 0x78
	movs r1, 0x50
	movs r2, 0x2C
	movs r3, 0x8
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	strh r0, [r1, 0x12]
	str r6, [sp]
	str r5, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x2
	str r0, [sp, 0xC]
	movs r0, 0x79
	movs r1, 0x50
	movs r2, 0xA4
	movs r3, 0x8
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	mov r1, r8
	strh r0, [r1, 0x14]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81DAEB0

	thumb_func_start sub_81DAF34
sub_81DAF34: @ 81DAF34
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DAF58
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DAE78
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DAF58:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DAF34

	thumb_func_start sub_81DAF68
sub_81DAF68: @ 81DAF68
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B7C0
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DAF7A:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DAF7A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DAF68

	thumb_func_start sub_81DAFA0
sub_81DAFA0: @ 81DAFA0
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r2, [r4, r0]
	cmp r2, 0
	bne _081DAFCC
	movs r1, 0x33
	negs r1, r1
	str r2, [sp]
	movs r0, 0x4
	str r0, [sp, 0x4]
	str r2, [sp, 0x8]
	movs r0, 0x78
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x10]
	b _081DB01A
_081DAFCC:
	cmp r2, 0x10
	bne _081DAFF2
	movs r0, 0x7
	negs r0, r0
	movs r1, 0x4
	str r1, [sp]
	subs r1, 0x8
	str r1, [sp, 0x4]
	movs r1, 0x1
	str r1, [sp, 0x8]
	movs r1, 0xC1
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x12]
	b _081DB01A
_081DAFF2:
	cmp r2, 0x20
	bne _081DB01A
	movs r0, 0x4
	negs r0, r0
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x2
	str r0, [sp, 0x8]
	movs r0, 0xF7
	movs r1, 0xC1
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081DB01A:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81DAFA0

	thumb_func_start sub_81DB02C
sub_81DB02C: @ 81DB02C
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DB050
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DAF68
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DB050:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DB02C

	thumb_func_start sub_81DB060
sub_81DB060: @ 81DB060
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B7D4
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DB072:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DB072
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DB060

	thumb_func_start sub_81DB098
sub_81DB098: @ 81DB098
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r1, [r4, r0]
	cmp r1, 0
	bne _081DB0C4
	str r1, [sp]
	movs r0, 0x8
	negs r0, r0
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r0, 0x78
	movs r1, 0xC5
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x10]
	b _081DB112
_081DB0C4:
	cmp r1, 0x10
	bne _081DB0E8
	movs r0, 0x8
	negs r0, r0
	str r0, [sp]
	movs r0, 0x1
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	movs r0, 0xF1
	movs r1, 0x4E
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x12]
	b _081DB112
_081DB0E8:
	cmp r1, 0x20
	bne _081DB112
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x8
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	movs r1, 0x2
	str r1, [sp, 0x8]
	movs r1, 0x4E
	movs r2, 0
	movs r3, 0
	bl sub_81DA74C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081DB112:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81DB098

	thumb_func_start sub_81DB124
sub_81DB124: @ 81DB124
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DB148
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DB060
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DB148:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DB124

	thumb_func_start sub_81DB158
sub_81DB158: @ 81DB158
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B7E8
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DB16A:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DB16A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DB158

	thumb_func_start sub_81DB190
sub_81DB190: @ 81DB190
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r1, [r4, r0]
	cmp r1, 0
	bne _081DB1BE
	movs r0, 0x80
	str r0, [sp]
	str r1, [sp, 0x4]
	subs r0, 0x84
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	movs r0, 0x78
	movs r1, 0x2D
	movs r2, 0xC
	movs r3, 0x4
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x10]
	b _081DB212
_081DB1BE:
	cmp r1, 0x10
	bne _081DB1E6
	movs r0, 0x80
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	subs r0, 0x4
	str r0, [sp, 0x8]
	movs r0, 0x1
	str r0, [sp, 0xC]
	movs r0, 0x59
	movs r1, 0x61
	movs r2, 0xFC
	movs r3, 0x4
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x12]
	b _081DB212
_081DB1E6:
	cmp r1, 0x20
	bne _081DB212
	movs r0, 0x80
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	subs r0, 0x4
	str r0, [sp, 0x8]
	movs r0, 0x2
	str r0, [sp, 0xC]
	movs r0, 0x97
	movs r1, 0x61
	movs r2, 0x84
	movs r3, 0x4
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081DB212:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	movs r0, 0
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81DB190

	thumb_func_start sub_81DB224
sub_81DB224: @ 81DB224
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DB248
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DB158
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DB248:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DB224

	thumb_func_start sub_81DB258
sub_81DB258: @ 81DB258
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0862B7FC
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081DB26A:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081DB26A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DB258

	thumb_func_start sub_81DB290
sub_81DB290: @ 81DB290
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r1, [r4, r0]
	cmp r1, 0
	bne _081DB2C2
	movs r2, 0x8E
	lsls r2, 1
	movs r0, 0x83
	str r0, [sp]
	movs r0, 0x23
	str r0, [sp, 0x4]
	subs r0, 0x26
	str r0, [sp, 0x8]
	str r1, [sp, 0xC]
	movs r0, 0x78
	movs r1, 0x50
	movs r3, 0x8
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x10]
	b _081DB316
_081DB2C2:
	cmp r1, 0x10
	bne _081DB2EA
	movs r0, 0x83
	str r0, [sp]
	movs r0, 0x23
	str r0, [sp, 0x4]
	subs r0, 0x26
	str r0, [sp, 0x8]
	movs r0, 0x1
	str r0, [sp, 0xC]
	movs r0, 0x78
	movs r1, 0x50
	movs r2, 0x2C
	movs r3, 0x8
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x12]
	b _081DB316
_081DB2EA:
	cmp r1, 0x20
	bne _081DB316
	movs r0, 0x83
	str r0, [sp]
	movs r0, 0x23
	str r0, [sp, 0x4]
	subs r0, 0x26
	str r0, [sp, 0x8]
	movs r0, 0x2
	str r0, [sp, 0xC]
	movs r0, 0x79
	movs r1, 0x50
	movs r2, 0xA4
	movs r3, 0x8
	bl sub_81DA8BC
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081DB316:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	movs r0, 0
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81DB290

	thumb_func_start sub_81DB328
sub_81DB328: @ 81DB328
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081DB34C
	adds r0, r2, 0
	bl sub_81DAA20
	ldr r0, =sub_81DB258
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081DB34C:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81DB328

	thumb_func_start GetStringCenterAlignXOffset
@ s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth)
GetStringCenterAlignXOffset: @ 81DB35C
	push {lr}
	movs r3, 0
	bl GetStringCenterAlignXOffsetWithLetterSpacing
	pop {r1}
	bx r1
	thumb_func_end GetStringCenterAlignXOffset

	thumb_func_start GetStringRightAlignXOffset
@ s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth)
GetStringRightAlignXOffset: @ 81DB368
	push {lr}
	movs r3, 0
	bl GetStringWidthDifference
	pop {r1}
	bx r1
	thumb_func_end GetStringRightAlignXOffset

	thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
@ s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing)
GetStringCenterAlignXOffsetWithLetterSpacing: @ 81DB374
	push {lr}
	bl GetStringWidthDifference
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	pop {r1}
	bx r1
	thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing

	thumb_func_start GetStringWidthDifference
@ s32 GetStringWidthDifference(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing)
GetStringWidthDifference: @ 81DB384
	push {r4,lr}
	adds r4, r2, 0
	adds r2, r3, 0
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 16
	asrs r2, 16
	bl GetStringWidth
	cmp r4, r0
	bgt _081DB39E
	movs r0, 0
	b _081DB3A0
_081DB39E:
	subs r0, r4, r0
_081DB3A0:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end GetStringWidthDifference

	thumb_func_start GetMaxWidthInMenuTable
GetMaxWidthInMenuTable: @ 81DB3A8
	push {r4-r6,lr}
	movs r6, 0
	cmp r6, r1
	bge _081DB3CC
	adds r5, r0, 0
	adds r4, r1, 0
_081DB3B4:
	ldr r1, [r5]
	movs r0, 0x1
	movs r2, 0
	bl GetStringWidth
	cmp r0, r6
	ble _081DB3C4
	adds r6, r0, 0
_081DB3C4:
	adds r5, 0x8
	subs r4, 0x1
	cmp r4, 0
	bne _081DB3B4
_081DB3CC:
	adds r0, r6, 0
	bl convert_pixel_width_to_tile_width
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end GetMaxWidthInMenuTable

	thumb_func_start sub_81DB3D8
sub_81DB3D8: @ 81DB3D8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	adds r7, r1, 0
	adds r5, r2, 0
	movs r6, 0
	movs r4, 0
	cmp r6, r5
	bge _081DB40A
_081DB3EC:
	adds r0, r7, r4
	ldrb r0, [r0]
	lsls r0, 3
	add r0, r8
	ldr r1, [r0]
	movs r0, 0x1
	movs r2, 0
	bl GetStringWidth
	cmp r0, r6
	ble _081DB404
	adds r6, r0, 0
_081DB404:
	adds r4, 0x1
	cmp r4, r5
	blt _081DB3EC
_081DB40A:
	adds r0, r6, 0
	bl convert_pixel_width_to_tile_width
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81DB3D8

	thumb_func_start sub_81DB41C
sub_81DB41C: @ 81DB41C
	push {r4-r7,lr}
	adds r4, r0, 0
	ldr r1, [r4]
	movs r7, 0
	movs r6, 0
	ldrh r0, [r4, 0xC]
	cmp r7, r0
	bge _081DB44C
	adds r5, r1, 0
_081DB42E:
	ldrb r0, [r4, 0x17]
	lsls r0, 26
	lsrs r0, 26
	ldr r1, [r5]
	movs r2, 0
	bl GetStringWidth
	cmp r0, r7
	ble _081DB442
	adds r7, r0, 0
_081DB442:
	adds r5, 0x8
	adds r6, 0x1
	ldrh r0, [r4, 0xC]
	cmp r6, r0
	blt _081DB42E
_081DB44C:
	ldrb r0, [r4, 0x12]
	adds r1, r7, r0
	adds r0, r1, 0
	adds r0, 0x9
	cmp r0, 0
	bge _081DB45A
	adds r0, 0x7
_081DB45A:
	asrs r0, 3
	cmp r0, 0x1C
	ble _081DB462
	movs r0, 0x1C
_081DB462:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81DB41C

	thumb_func_start sub_81DB468
sub_81DB468: @ 81DB468
	push {lr}
	adds r2, r0, 0
	adds r0, r1, 0
	lsls r2, 5
	ldr r1, =gPokedexEntries
	adds r2, r1
	adds r1, r2, 0
	bl StringCopy
	movs r1, 0
	strb r1, [r0]
	adds r0, 0x1
	ldr r1, =gText_Pokemon
	bl StringCopy
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DB468

	thumb_func_start sub_81DB494
sub_81DB494: @ 81DB494
	push {r4-r7,lr}
	adds r6, r1, 0
	adds r5, r2, 0
	adds r7, r3, 0
	cmp r5, 0
	beq _081DB4B6
	adds r1, r5, 0
	bl StringCopy
	adds r4, r0, 0
	lsls r0, r6, 24
	lsrs r0, 24
	adds r1, r5, 0
	movs r2, 0
	bl GetStringWidth
	b _081DB4BA
_081DB4B6:
	adds r4, r0, 0
	movs r0, 0
_081DB4BA:
	subs r3, r7, r0
	cmp r3, 0
	ble _081DB4D4
	movs r0, 0xFC
	strb r0, [r4]
	adds r4, 0x1
	movs r0, 0x11
	strb r0, [r4]
	adds r4, 0x1
	strb r3, [r4]
	adds r4, 0x1
	movs r0, 0xFF
	strb r0, [r4]
_081DB4D4:
	adds r0, r4, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81DB494

	thumb_func_start sub_81DB4DC
sub_81DB4DC: @ 81DB4DC
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r1, 24
	lsrs r5, r1, 24
	bl StripExtCtrlCodes
	adds r0, r4, 0
	bl StringLength
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r5, 0xFC
	bne _081DB51A
	cmp r1, 0x5
	bhi _081DB51E
	movs r3, 0xFC
	movs r2, 0x7
_081DB4FE:
	adds r0, r4, r1
	strb r3, [r0]
	strb r2, [r0, 0x1]
	adds r0, r1, 0x2
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x5
	bls _081DB4FE
	b _081DB51E
_081DB510:
	adds r0, r4, r1
	strb r5, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
_081DB51A:
	cmp r1, 0x5
	bls _081DB510
_081DB51E:
	adds r1, r4, r1
	movs r0, 0xFF
	strb r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81DB4DC

	thumb_func_start sub_81DB52C
sub_81DB52C: @ 81DB52C
	push {r4,lr}
	adds r4, r0, 0
	bl StringLength
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x5
	bhi _081DB546
	adds r0, r4, 0
	movs r1, 0x1
	bl ConvertInternationalString
	b _081DB54C
_081DB546:
	adds r0, r4, 0
	bl StripExtCtrlCodes
_081DB54C:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81DB52C

	thumb_func_start sub_81DB554
sub_81DB554: @ 81DB554
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r1, 24
	lsrs r5, r1, 24
	bl StringLength
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x5
	bhi _081DB572
	adds r0, r4, 0
	movs r1, 0x1
	bl ConvertInternationalString
	b _081DB5A4
_081DB572:
	cmp r5, 0xFC
	bne _081DB57E
	adds r0, r4, 0
	bl StripExtCtrlCodes
	b _081DB5A4
_081DB57E:
	adds r1, r4, 0
	b _081DB584
_081DB582:
	adds r1, 0x1
_081DB584:
	ldrb r0, [r1, 0x1]
	cmp r0, 0xFF
	bne _081DB582
	cmp r1, r4
	bcc _081DB5A4
	ldrb r0, [r1]
	cmp r0, r5
	bne _081DB5A4
	movs r2, 0xFF
_081DB596:
	strb r2, [r1]
	subs r1, 0x1
	cmp r1, r4
	bcc _081DB5A4
	ldrb r0, [r1]
	cmp r0, r5
	beq _081DB596
_081DB5A4:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81DB554

	thumb_func_start sub_81DB5AC
sub_81DB5AC: @ 81DB5AC
	push {lr}
	adds r2, r0, 0
	ldrb r0, [r2]
	adds r2, 0x1
	cmp r0, 0xFC
	bne _081DB5E4
	ldrb r0, [r2]
	adds r2, 0x1
	cmp r0, 0x15
	bne _081DB5E4
	b _081DB5CE
_081DB5C2:
	cmp r1, 0xFC
	bne _081DB5CC
	ldrb r0, [r2, 0x1]
	cmp r0, 0x16
	beq _081DB5E4
_081DB5CC:
	adds r2, 0x1
_081DB5CE:
	ldrb r1, [r2]
	adds r0, r1, 0
	cmp r0, 0xFF
	bne _081DB5C2
	movs r0, 0xFC
	strb r0, [r2]
	adds r2, 0x1
	movs r0, 0x16
	strb r0, [r2]
	movs r0, 0xFF
	strb r0, [r2, 0x1]
_081DB5E4:
	pop {r0}
	bx r0
	thumb_func_end sub_81DB5AC

	thumb_func_start sub_81DB5E8
sub_81DB5E8: @ 81DB5E8
	push {r4,r5,lr}
	adds r5, r0, 0
	adds r4, r2, 0
	bl StringCopy
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	adds r1, r4, 0
	bl ConvertInternationalString
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81DB5E8

	thumb_func_start sub_81DB604
sub_81DB604: @ 81DB604
	push {lr}
	adds r1, r0, 0
	ldrb r0, [r1]
	cmp r0, 0xFC
	bne _081DB618
	ldrb r0, [r1, 0x1]
	cmp r0, 0x15
	bne _081DB618
	movs r0, 0x1
	b _081DB61A
_081DB618:
	movs r0, 0x2
_081DB61A:
	pop {r1}
	bx r1
	thumb_func_end sub_81DB604

	thumb_func_start sub_81DB620
sub_81DB620: @ 81DB620
	push {r4-r7,lr}
	sub sp, 0x4
	lsls r4, r0, 1
	adds r4, r0
	lsls r4, 2
	ldr r0, =gWindows
	adds r4, r0
	lsls r7, r3, 5
	ldrb r0, [r4, 0x3]
	lsls r6, r0, 5
	muls r2, r6
	ldr r0, [r4, 0x8]
	adds r0, r2
	lsls r1, 5
	adds r5, r0, r1
	ldr r0, [sp, 0x18]
	cmp r0, 0
	ble _081DB66C
	adds r4, r0, 0
_081DB646:
	ldr r0, =0x11111111
	str r0, [sp]
	adds r2, r7, 0
	cmp r2, 0
	bge _081DB652
	adds r2, 0x3
_081DB652:
	lsls r2, 9
	lsrs r2, 11
	movs r0, 0x80
	lsls r0, 17
	orrs r2, r0
	mov r0, sp
	adds r1, r5, 0
	bl CpuFastSet
	adds r5, r6
	subs r4, 0x1
	cmp r4, 0
	bne _081DB646
_081DB66C:
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81DB620

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