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

	.syntax unified

	.text

	thumb_func_start sub_817354C
sub_817354C: @ 817354C
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_817354C

	thumb_func_start sub_8173560
sub_8173560: @ 8173560
	push {lr}
	bl RunTasks
	bl RunTextPrinters
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_8173560

	thumb_func_start sub_817357C
sub_817357C: @ 817357C
	push {r4,lr}
	sub sp, 0x4
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x4
	bls _08173590
	b _08173688
_08173590:
	lsls r0, 2
	ldr r1, =_081735A4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081735A4:
	.4byte _081735B8
	.4byte _081735E8
	.4byte _081735EE
	.4byte _08173620
	.4byte _0817365C
_081735B8:
	movs r0, 0
	bl SetVBlankCallback
	bl sub_8174EC4
	ldr r4, =gUnknown_0203BCDC
	ldr r0, =0x00002014
	bl AllocZeroed
	str r0, [r4]
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	movs r1, 0x1
	strb r1, [r0]
	b _08173688
	.pool
_081735E8:
	bl sub_8174F70
	b _08173642
_081735EE:
	ldr r1, =0x00003f42
	movs r0, 0x50
	bl SetGpuReg
	movs r1, 0xE2
	lsls r1, 3
	movs r0, 0x52
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	bl sub_8174FAC
	ldr r0, =gUnknown_0203BCDC
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1]
	b _08173642
	.pool
_08173620:
	bl sub_8175024
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _08173688
	ldr r0, =sub_817354C
	bl SetVBlankCallback
	movs r0, 0x1
	negs r0, r0
	str r4, [sp]
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
_08173642:
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _08173688
	.pool
_0817365C:
	bl UpdatePaletteFade
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08173688
	ldr r0, =sub_8173560
	bl SetMainCallback2
	movs r0, 0xDA
	lsls r0, 1
	bl PlayBGM
	movs r0, 0
	b _0817368A
	.pool
_08173688:
	movs r0, 0x1
_0817368A:
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_817357C

	thumb_func_start sub_8173694
sub_8173694: @ 8173694
	push {r4,lr}
	bl sub_817357C
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _081736C4
	ldr r0, =sub_817371C
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	strh r4, [r1, 0x8]
	ldr r4, =gUnknown_0203BCD8
	movs r0, 0x78
	bl AllocZeroed
	str r0, [r4]
_081736C4:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173694

	thumb_func_start sub_81736D8
sub_81736D8: @ 81736D8
	push {r4,lr}
	bl sub_817357C
	lsls r0, 24
	cmp r0, 0
	bne _08173708
	ldr r0, =sub_817371C
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r0, 0x1
	strh r0, [r1, 0x8]
	ldr r4, =gUnknown_0203BCD8
	movs r0, 0x78
	bl AllocZeroed
	str r0, [r4]
_08173708:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81736D8

	thumb_func_start sub_817371C
sub_817371C: @ 817371C
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r1, =gTasks
	lsls r0, 2
	add r0, r8
	lsls r0, 3
	adds r0, r1
	movs r1, 0
	strh r1, [r0, 0xC]
	movs r7, 0
	ldr r0, =gUnknown_0203BCD8
	mov r9, r0
_08173740:
	movs r0, 0x64
	adds r1, r7, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r6, r1, r0
	adds r0, r6, 0
	movs r1, 0xB
	bl GetMonData
	adds r5, r0, 0
	cmp r5, 0
	beq _0817380C
	adds r0, r6, 0
	movs r1, 0x41
	bl GetMonData
	mov r1, r9
	ldr r3, [r1]
	lsls r4, r7, 2
	adds r4, r7
	lsls r4, 2
	adds r3, r4
	ldr r2, =0x000001ff
	adds r1, r2, 0
	ands r0, r1
	ldrh r1, [r3, 0x8]
	ldr r5, =0xfffffe00
	adds r2, r5, 0
	ands r1, r2
	orrs r1, r0
	strh r1, [r3, 0x8]
	adds r0, r6, 0
	movs r1, 0x1
	bl GetMonData
	mov r2, r9
	ldr r1, [r2]
	adds r1, r4
	str r0, [r1]
	adds r0, r6, 0
	movs r1, 0
	bl GetMonData
	mov r5, r9
	ldr r1, [r5]
	adds r1, 0x4
	adds r1, r4
	str r0, [r1]
	adds r0, r6, 0
	movs r1, 0x38
	bl GetMonData
	ldr r2, [r5]
	adds r2, r4
	lsls r0, 1
	ldrb r3, [r2, 0x9]
	movs r1, 0x1
	ands r1, r3
	orrs r1, r0
	strb r1, [r2, 0x9]
	adds r0, r6, 0
	movs r1, 0x2
	mov r2, sp
	bl GetMonData
	movs r2, 0
	mov r6, r8
	lsls r5, r6, 2
	ldr r3, =gUnknown_0203BCD8
_081737CA:
	ldr r0, [r3]
	adds r1, r2, r4
	adds r0, 0xA
	adds r0, r1
	mov r6, sp
	adds r1, r6, r2
	ldrb r1, [r1]
	strb r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x9
	bls _081737CA
	ldr r0, =gTasks
	mov r2, r8
	adds r1, r5, r2
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0xC]
	adds r0, 0x1
	strh r0, [r1, 0xC]
	b _08173840
	.pool
_0817380C:
	mov r6, r9
	ldr r3, [r6]
	lsls r2, r7, 2
	adds r2, r7
	lsls r2, 2
	adds r4, r3, r2
	ldrh r0, [r4, 0x8]
	ldr r6, =0xfffffe00
	adds r1, r6, 0
	ands r0, r1
	strh r0, [r4, 0x8]
	str r5, [r4]
	adds r3, 0x4
	adds r3, r2
	str r5, [r3]
	ldrb r1, [r4, 0x9]
	movs r0, 0x1
	ands r0, r1
	strb r0, [r4, 0x9]
	mov r1, r9
	ldr r0, [r1]
	adds r0, r2
	movs r1, 0xFF
	strb r1, [r0, 0xA]
	mov r2, r8
	lsls r5, r2, 2
_08173840:
	adds r0, r7, 0x1
	lsls r0, 16
	lsrs r7, r0, 16
	cmp r7, 0x5
	bhi _0817384C
	b _08173740
_0817384C:
	ldr r0, =gUnknown_0203BCD4
	movs r3, 0
	str r3, [r0]
	ldr r4, =gTasks
	mov r6, r8
	adds r1, r5, r6
	lsls r1, 3
	adds r2, r1, r4
	strh r3, [r2, 0xA]
	movs r0, 0xFF
	strh r0, [r2, 0x10]
	movs r7, 0
	adds r3, r4, 0
	adds r3, 0x8
	movs r2, 0xFF
_0817386A:
	adds r0, r7, 0x5
	lsls r0, 1
	adds r0, r1
	adds r0, r3
	strh r2, [r0]
	adds r0, r7, 0x1
	lsls r0, 16
	lsrs r7, r0, 16
	cmp r7, 0x5
	bls _0817386A
	mov r1, r8
	adds r0, r5, r1
	lsls r0, 3
	adds r1, r0, r4
	movs r2, 0x8
	ldrsh r0, [r1, r2]
	cmp r0, 0
	beq _081738A4
	ldr r0, =sub_8173A8C
	b _081738A6
	.pool
_081738A4:
	ldr r0, =sub_81738BC
_081738A6:
	str r0, [r1]
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_817371C

	thumb_func_start sub_81738BC
sub_81738BC: @ 81738BC
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	ldr r7, =0x0201c000
	ldr r0, =gUnknown_0203BCE4
	ldrb r0, [r0]
	cmp r0, 0
	bne _081738EC
	movs r2, 0x80
	lsls r2, 6
	adds r0, r7, 0
	movs r1, 0
	bl memset
	b _08173906
	.pool
_081738EC:
	movs r0, 0x3
	bl sub_81534D0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08173906
	movs r2, 0x80
	lsls r2, 6
	adds r0, r7, 0
	movs r1, 0
	bl memset
_08173906:
	movs r5, 0
	ldrh r1, [r7, 0x8]
	ldr r2, =0x000001ff
	adds r0, r2, 0
	ands r0, r1
	mov r1, r9
	lsls r1, 2
	mov r8, r1
	cmp r0, 0
	beq _08173930
_0817391A:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	adds r7, 0x78
	cmp r5, 0x31
	bhi _08173934
	ldrh r1, [r7, 0x8]
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	bne _0817391A
_08173930:
	cmp r5, 0x31
	bls _08173956
_08173934:
	ldr r4, =0x0201c000
	adds r6, r4, 0
	adds r4, 0x78
	movs r5, 0
	subs r7, 0x78
_0817393E:
	adds r0, r6, 0
	adds r1, r4, 0
	movs r2, 0x78
	bl memcpy
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	adds r6, 0x78
	adds r4, 0x78
	cmp r5, 0x30
	bls _0817393E
_08173956:
	ldr r0, =gUnknown_0203BCD8
	ldr r1, [r0]
	adds r0, r7, 0
	movs r2, 0x78
	bl memcpy
	movs r0, 0
	movs r1, 0
	bl sub_81973C4
	ldr r2, =gUnknown_082C8959
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParametrized
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =gTasks
	mov r0, r8
	add r0, r9
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81739C4
	str r1, [r0]
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81738BC

	thumb_func_start sub_81739C4
sub_81739C4: @ 81739C4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gGameContinueCallback
	ldr r0, =sub_81736D8
	str r0, [r1]
	movs r0, 0x3
	bl TrySavingData
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	bne _08173A34
	ldr r0, =gDamagedSaveSectors
	ldr r0, [r0]
	cmp r0, 0
	beq _08173A34
	movs r0, 0x1
	bl UnsetBgTilemapBuffer
	movs r0, 0x3
	bl UnsetBgTilemapBuffer
	bl FreeAllWindowBuffers
	ldr r5, =gUnknown_0203BCDC
	ldr r0, [r5]
	cmp r0, 0
	beq _08173A06
	bl Free
	movs r0, 0
	str r0, [r5]
_08173A06:
	ldr r5, =gUnknown_0203BCD8
	ldr r0, [r5]
	cmp r0, 0
	beq _08173A16
	bl Free
	movs r0, 0
	str r0, [r5]
_08173A16:
	adds r0, r4, 0
	bl DestroyTask
	b _08173A4C
	.pool
_08173A34:
	movs r0, 0x37
	bl PlaySE
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_8173A5C
	str r1, [r0]
	movs r1, 0x20
	strh r1, [r0, 0xE]
_08173A4C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81739C4

	thumb_func_start sub_8173A5C
sub_8173A5C: @ 8173A5C
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldrh r2, [r1, 0xE]
	movs r3, 0xE
	ldrsh r0, [r1, r3]
	cmp r0, 0
	beq _08173A80
	subs r0, r2, 0x1
	strh r0, [r1, 0xE]
	b _08173A84
	.pool
_08173A80:
	ldr r0, =sub_8173A8C
	str r0, [r1]
_08173A84:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173A5C

	thumb_func_start sub_8173A8C
sub_8173A8C: @ 8173A8C
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldr r0, =sub_8173AA8
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_8173A8C

	thumb_func_start sub_8173AA8
sub_8173AA8: @ 8173AA8
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r0, =gTasks
	mov r2, r8
	lsls r1, r2, 2
	add r1, r8
	lsls r1, 3
	adds r1, r0
	ldrh r6, [r1, 0xA]
	ldr r2, =gUnknown_0203BCD8
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 2
	ldr r2, [r2]
	adds r7, r2, r0
	movs r2, 0xC
	ldrsh r0, [r1, r2]
	cmp r0, 0x3
	ble _08173AEC
	ldr r1, =gUnknown_085E53B4
	b _08173AEE
	.pool
_08173AEC:
	ldr r1, =gUnknown_085E53E4
_08173AEE:
	lsls r2, r6, 3
	adds r0, r2, r1
	ldrh r3, [r0]
	adds r0, r1, 0x2
	adds r0, r2, r0
	ldrh r4, [r0]
	adds r0, r1, 0x4
	adds r0, r2, r0
	ldrh r0, [r0]
	mov r9, r0
	adds r1, 0x6
	adds r2, r1
	ldrh r5, [r2]
	ldrh r2, [r7, 0x8]
	ldr r0, =0x000001ff
	ands r0, r2
	movs r1, 0xCE
	lsls r1, 1
	cmp r0, r1
	bne _08173B20
	lsls r0, r5, 16
	movs r1, 0xA0
	lsls r1, 12
	adds r0, r1
	lsrs r5, r0, 16
_08173B20:
	lsls r0, r2, 23
	lsrs r0, 23
	ldr r1, [r7]
	ldr r2, [r7, 0x4]
	lsls r3, 16
	asrs r3, 16
	str r3, [sp]
	lsls r3, r4, 16
	asrs r3, 16
	str r3, [sp, 0x4]
	lsls r3, r6, 24
	lsrs r3, 24
	str r3, [sp, 0x8]
	ldr r3, =0x0000ffff
	str r3, [sp, 0xC]
	movs r3, 0x1
	bl sub_818D3E4
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =gSprites
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r3, r2, r4
	movs r1, 0
	mov r12, r1
	mov r1, r9
	strh r1, [r3, 0x30]
	strh r5, [r3, 0x32]
	mov r1, r12
	strh r1, [r3, 0x2E]
	ldrh r1, [r7, 0x8]
	lsls r1, 23
	lsrs r1, 23
	strh r1, [r3, 0x3C]
	adds r4, 0x1C
	adds r2, r4
	ldr r1, =sub_8175120
	str r1, [r2]
	ldr r5, =gTasks
	adds r1, r6, 0x5
	lsls r1, 1
	mov r2, r8
	lsls r4, r2, 2
	add r4, r8
	lsls r4, 3
	adds r1, r4
	adds r2, r5, 0
	adds r2, 0x8
	adds r1, r2
	strh r0, [r1]
	movs r0, 0
	movs r1, 0x1
	bl sub_8197434
	adds r4, r5
	ldr r0, =sub_8173BC0
	str r0, [r4]
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173AA8

	thumb_func_start sub_8173BC0
sub_8173BC0: @ 8173BC0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =gTasks
	lsls r3, r0, 2
	adds r3, r0
	lsls r3, 3
	adds r5, r3, r4
	ldrh r0, [r5, 0xA]
	ldr r2, =gUnknown_0203BCD8
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	ldr r2, [r2]
	adds r2, r1
	adds r0, 0x5
	lsls r0, 1
	adds r0, r3
	adds r4, 0x8
	adds r0, r4
	movs r3, 0
	ldrsh r1, [r0, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r3, r0, r1
	ldr r1, [r3, 0x1C]
	ldr r0, =SpriteCallbackDummy
	cmp r1, r0
	bne _08173C1A
	ldrb r1, [r3, 0x1]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	strb r0, [r3, 0x1]
	adds r0, r2, 0
	movs r1, 0
	movs r2, 0xE
	bl sub_8174A88
	movs r0, 0x78
	strh r0, [r5, 0xE]
	ldr r0, =sub_8173C34
	str r0, [r5]
_08173C1A:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173BC0

	thumb_func_start sub_8173C34
sub_8173C34: @ 8173C34
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r2, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r6, r0, 3
	adds r4, r6, r2
	ldrh r3, [r4, 0xA]
	ldr r1, =gUnknown_0203BCD8
	lsls r0, r3, 2
	adds r0, r3
	lsls r0, 2
	ldr r1, [r1]
	adds r1, r0
	mov r9, r1
	ldrh r1, [r4, 0xE]
	movs r7, 0xE
	ldrsh r0, [r4, r7]
	mov r12, r2
	cmp r0, 0
	beq _08173C78
	subs r0, r1, 0x1
	strh r0, [r4, 0xE]
	b _08173D10
	.pool
_08173C78:
	ldr r2, =gUnknown_0203BCD4
	ldr r0, =gSprites
	mov r8, r0
	adds r0, r3, 0x5
	lsls r0, 1
	adds r0, r6
	mov r1, r12
	adds r1, 0x8
	adds r6, r0, r1
	movs r7, 0
	ldrsh r1, [r6, r7]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	ldrb r0, [r0, 0x5]
	lsrs r0, 4
	movs r1, 0x80
	lsls r1, 9
	lsls r1, r0
	ldr r3, [r2]
	orrs r3, r1
	str r3, [r2]
	ldrh r2, [r4, 0xA]
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0x4
	bgt _08173D04
	mov r7, r9
	ldrh r1, [r7, 0x1C]
	ldr r0, =0x000001ff
	ands r0, r1
	cmp r0, 0
	beq _08173D04
	adds r0, r2, 0x1
	strh r0, [r4, 0xA]
	ldr r0, =0x000063b0
	str r0, [sp]
	adds r0, r3, 0
	movs r1, 0
	movs r2, 0xC
	movs r3, 0xC
	bl BeginNormalPaletteFade
	movs r0, 0
	ldrsh r1, [r6, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	ldrb r2, [r0, 0x5]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0, 0x5]
	ldr r0, =sub_8173AA8
	str r0, [r4]
	b _08173D10
	.pool
_08173D04:
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	add r0, r12
	ldr r1, =sub_8173D24
	str r1, [r0]
_08173D10:
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173C34

	thumb_func_start sub_8173D24
sub_8173D24: @ 8173D24
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =0xffff0000
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0
	bl BeginNormalPaletteFade
	movs r3, 0
	lsls r1, r4, 2
	adds r0, r1, r4
	lsls r5, r0, 3
	ldr r0, =gTasks + 0x8
	mov r12, r0
	mov r8, r1
	ldr r6, =gSprites
	movs r7, 0xD
	negs r7, r7
_08173D52:
	adds r0, r3, 0x5
	lsls r0, 1
	adds r0, r5
	mov r2, r12
	adds r1, r0, r2
	movs r2, 0
	ldrsh r0, [r1, r2]
	cmp r0, 0xFF
	beq _08173D74
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r6
	ldrb r2, [r1, 0x5]
	adds r0, r7, 0
	ands r0, r2
	strb r0, [r1, 0x5]
_08173D74:
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x5
	bls _08173D52
	movs r0, 0
	movs r1, 0xF
	bl sub_8174A38
	movs r0, 0x69
	bl PlaySE
	ldr r1, =gTasks
	mov r2, r8
	adds r0, r2, r4
	lsls r0, 3
	adds r0, r1
	movs r1, 0xC8
	lsls r1, 1
	strh r1, [r0, 0xE]
	ldr r1, =sub_8173DC0
	str r1, [r0]
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173D24

	thumb_func_start sub_8173DC0
sub_8173DC0: @ 8173DC0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r7, =gTasks
	lsls r4, r6, 2
	adds r0, r4, r6
	lsls r5, r0, 3
	adds r1, r5, r7
	ldrh r2, [r1, 0xE]
	movs r3, 0xE
	ldrsh r0, [r1, r3]
	cmp r0, 0
	beq _08173E04
	subs r2, 0x1
	strh r2, [r1, 0xE]
	movs r0, 0x3
	ands r0, r2
	cmp r0, 0
	bne _08173E7E
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0x6E
	ble _08173E7E
	bl sub_81751FC
	b _08173E7E
	.pool
_08173E04:
	movs r3, 0
	mov r9, r4
	ldr r0, =gUnknown_0203BCD4
	mov r10, r0
	adds r4, r5, 0
	adds r7, 0x8
	mov r8, r7
	ldr r7, =gSprites
	movs r1, 0xD
	negs r1, r1
	mov r12, r1
	movs r5, 0x4
_08173E1C:
	adds r0, r3, 0x5
	lsls r0, 1
	adds r0, r4
	mov r2, r8
	adds r1, r0, r2
	movs r2, 0
	ldrsh r0, [r1, r2]
	cmp r0, 0xFF
	beq _08173E40
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	ldrb r2, [r1, 0x5]
	mov r0, r12
	ands r0, r2
	orrs r0, r5
	strb r0, [r1, 0x5]
_08173E40:
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x5
	bls _08173E1C
	mov r3, r10
	ldr r0, [r3]
	ldr r1, =0x000063b0
	str r1, [sp]
	movs r1, 0
	movs r2, 0xC
	movs r3, 0xC
	bl BeginNormalPaletteFade
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =gTasks
	mov r2, r9
	adds r0, r2, r6
	lsls r0, 3
	adds r0, r1
	movs r1, 0x7
	strh r1, [r0, 0xE]
	ldr r1, =sub_8173EA4
	str r1, [r0]
_08173E7E:
	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_8173DC0

	thumb_func_start sub_8173EA4
sub_8173EA4: @ 8173EA4
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldrh r2, [r1, 0xE]
	movs r3, 0xE
	ldrsh r0, [r1, r3]
	cmp r0, 0xF
	ble _08173ECC
	ldr r0, =sub_8173EE4
	str r0, [r1]
	b _08173EDE
	.pool
_08173ECC:
	adds r0, r2, 0x1
	strh r0, [r1, 0xE]
	movs r0, 0xE
	ldrsh r1, [r1, r0]
	lsls r1, 24
	lsrs r1, 16
	movs r0, 0x52
	bl SetGpuReg
_08173EDE:
	pop {r0}
	bx r0
	thumb_func_end sub_8173EA4

	thumb_func_start sub_8173EE4
sub_8173EE4: @ 8173EE4
	push {r4-r6,lr}
	sub sp, 0x8
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	ldr r6, =gSaveBlock2Ptr
	ldr r0, [r6]
	ldrb r0, [r0, 0x8]
	movs r1, 0x1
	bl sub_818D97C
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x6
	str r1, [sp]
	ldr r1, =0x0000ffff
	str r1, [sp, 0x4]
	movs r1, 0x1
	movs r2, 0x78
	movs r3, 0x48
	bl sub_818D8AC
	ldr r1, =gTasks
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	adds r4, r1
	strh r0, [r4, 0x10]
	ldr r0, =gUnknown_085E5380
	bl AddWindow
	ldr r0, [r6]
	ldrb r1, [r0, 0x14]
	lsrs r1, 3
	ldr r2, =0x0000021d
	movs r0, 0x1
	movs r3, 0xD0
	bl sub_80987D4
	movs r0, 0x1
	bl stdpal_get
	movs r1, 0xE0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0x78
	strh r0, [r4, 0xE]
	ldr r0, =sub_8173F84
	str r0, [r4]
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173EE4

	thumb_func_start sub_8173F84
sub_8173F84: @ 8173F84
	push {r4,r5,lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
	ldrh r0, [r4, 0xE]
	movs r1, 0xE
	ldrsh r5, [r4, r1]
	cmp r5, 0
	beq _08173FAC
	subs r0, 0x1
	strh r0, [r4, 0xE]
	b _08174018
	.pool
_08173FAC:
	ldr r2, =gSprites
	movs r3, 0x10
	ldrsh r1, [r4, r3]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r0, r2
	ldrh r2, [r1, 0x20]
	movs r3, 0x20
	ldrsh r0, [r1, r3]
	cmp r0, 0xC0
	beq _08173FD0
	adds r0, r2, 0x1
	strh r0, [r1, 0x20]
	b _08174018
	.pool
_08173FD0:
	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, 0x2
	bl sub_8174C98
	movs r0, 0
	movs r1, 0
	bl sub_81973C4
	ldr r2, =gUnknown_085E8C14
	str r5, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParametrized
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, =sub_8174028
	str r0, [r4]
_08174018:
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8173F84

	thumb_func_start sub_8174028
sub_8174028: @ 8174028
	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 _0817404E
	movs r0, 0x4
	bl FadeOutBGM
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_8174060
	str r0, [r1]
_0817404E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174028

	thumb_func_start sub_8174060
sub_8174060: @ 8174060
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gPlttBufferFaded
	ldr r1, =gPlttBufferUnfaded
	movs r2, 0x80
	lsls r2, 2
	bl CpuSet
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r1, 0x8
	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_81740B0
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174060

	thumb_func_start sub_81740B0
sub_81740B0: @ 81740B0
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08174164
	lsls r0, r7, 2
	mov r8, r0
	ldr r1, =gTasks
	adds r0, r7
	lsls r0, 3
	adds r1, 0x12
	adds r5, r0, r1
	ldr r2, =gSprites
	mov r9, r2
	movs r6, 0x5
_081740DC:
	ldrb r4, [r5]
	cmp r4, 0xFF
	beq _081740FA
	lsls r0, r4, 4
	adds r0, r4
	lsls r0, 2
	add r0, r9
	ldrb r0, [r0, 0x3]
	lsls r0, 26
	lsrs r0, 27
	bl FreeOamMatrix
	adds r0, r4, 0
	bl sub_818D820
_081740FA:
	adds r5, 0x2
	subs r6, 0x1
	cmp r6, 0
	bge _081740DC
	ldr r0, =gTasks
	mov r2, r8
	adds r1, r2, r7
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x10]
	bl sub_818D8F0
	movs r0, 0
	bl HideBg
	movs r0, 0x1
	bl HideBg
	movs r0, 0x3
	bl HideBg
	bl FreeAllWindowBuffers
	movs r0, 0x1
	bl UnsetBgTilemapBuffer
	movs r0, 0x3
	bl UnsetBgTilemapBuffer
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	adds r0, r7, 0
	bl DestroyTask
	ldr r4, =gUnknown_0203BCDC
	ldr r0, [r4]
	cmp r0, 0
	beq _08174150
	bl Free
	movs r0, 0
	str r0, [r4]
_08174150:
	ldr r4, =gUnknown_0203BCD8
	ldr r0, [r4]
	cmp r0, 0
	beq _08174160
	bl Free
	movs r0, 0
	str r0, [r4]
_08174160:
	bl sub_8174184
_08174164:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81740B0

	thumb_func_start sub_8174184
sub_8174184: @ 8174184
	push {lr}
	ldr r0, =sub_8175620
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174184

	thumb_func_start sub_8174194
sub_8174194: @ 8174194
	push {r4,lr}
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x5
	bhi _081741D0
	lsls r0, 2
	ldr r1, =_081741B8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081741B8:
	.4byte _081741D0
	.4byte _08174200
	.4byte _08174214
	.4byte _08174240
	.4byte _08174280
	.4byte _081742B0
_081741D0:
	movs r0, 0
	bl SetVBlankCallback
	bl sub_8174EC4
	ldr r4, =gUnknown_0203BCDC
	ldr r0, =0x00002014
	bl AllocZeroed
	str r0, [r4]
	ldr r0, =gMain
	movs r2, 0x87
	lsls r2, 3
	adds r0, r2
	movs r1, 0x1
	strb r1, [r0]
	b _08174308
	.pool
_08174200:
	bl sub_8174F70
	ldr r1, =gMain
	movs r3, 0x87
	lsls r3, 3
	adds r1, r3
	b _081742A2
	.pool
_08174214:
	movs r0, 0x50
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x52
	movs r1, 0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	bl sub_8174FAC
	ldr r1, =gMain
	movs r4, 0x87
	lsls r4, 3
	adds r1, r4
	b _081742A2
	.pool
_08174240:
	bl sub_8175024
	lsls r0, 24
	cmp r0, 0
	bne _08174308
	ldr r1, =0x0201c000
	ldr r0, =gUnknown_085E56D4
	ldm r0!, {r2-r4}
	stm r1!, {r2-r4}
	ldm r0!, {r2,r3}
	stm r1!, {r2,r3}
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl sub_80F9BCC
	ldr r0, =sub_817354C
	bl SetVBlankCallback
	ldr r1, =gMain
	movs r4, 0x87
	lsls r4, 3
	adds r1, r4
	b _081742A2
	.pool
_08174280:
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	bl sub_80F9C1C
	lsls r0, 24
	cmp r0, 0
	bne _08174308
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
_081742A2:
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	b _08174308
	.pool
_081742B0:
	ldr r1, =0x00003f42
	movs r0, 0x50
	bl SetGpuReg
	movs r1, 0xE2
	lsls r1, 3
	movs r0, 0x52
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	ldr r0, =sub_8174324
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	movs r2, 0
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r4, =gTasks + 0x8
	movs r3, 0xFF
_081742E2:
	adds r0, r2, 0x5
	lsls r0, 1
	adds r0, r1
	adds r0, r4
	strh r3, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x5
	bls _081742E2
	ldr r4, =gUnknown_0203BCD8
	movs r0, 0x80
	lsls r0, 6
	bl AllocZeroed
	str r0, [r4]
	ldr r0, =sub_8173560
	bl SetMainCallback2
_08174308:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174194

	thumb_func_start sub_8174324
sub_8174324: @ 8174324
	push {r4-r6,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, =0x00000226
	str r0, [sp]
	movs r0, 0
	movs r1, 0x1E
	movs r2, 0
	movs r3, 0xC
	bl sub_81980F0
	movs r0, 0x3
	bl sub_81534D0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08174364
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81749A0
	b _081743DA
	.pool
_08174364:
	ldr r0, =0x0201c000
	ldr r4, =gUnknown_0203BCD8
	ldr r1, [r4]
	movs r2, 0x80
	lsls r2, 5
	bl CpuSet
	ldr r4, [r4]
	movs r2, 0
	ldrh r1, [r4, 0x8]
	ldr r3, =0x000001ff
	adds r0, r3, 0
	ands r0, r1
	lsls r5, r6, 2
	cmp r0, 0
	beq _0817439A
_08174384:
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	adds r4, 0x78
	cmp r2, 0x31
	bhi _081743BC
	ldrh r1, [r4, 0x8]
	adds r0, r3, 0
	ands r0, r1
	cmp r0, 0
	bne _08174384
_0817439A:
	cmp r2, 0x31
	bhi _081743BC
	ldr r0, =gTasks
	adds r1, r5, r6
	lsls r1, 3
	adds r1, r0
	subs r0, r2, 0x1
	b _081743C6
	.pool
_081743BC:
	ldr r0, =gTasks
	adds r1, r5, r6
	lsls r1, 3
	adds r1, r0
	movs r0, 0x31
_081743C6:
	strh r0, [r1, 0x8]
	movs r0, 0xA
	bl GetGameStat
	ldr r2, =gTasks
	adds r1, r5, r6
	lsls r1, 3
	adds r1, r2
	strh r0, [r1, 0xA]
	ldr r0, =sub_81743EC
_081743DA:
	str r0, [r1]
	add sp, 0x4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174324

	thumb_func_start sub_81743EC
sub_81743EC: @ 81743EC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r0, =gUnknown_0203BCD8
	ldr r3, [r0]
	movs r5, 0
	ldr r1, =gTasks
	mov r2, r8
	lsls r0, r2, 2
	add r0, r8
	lsls r0, 3
	adds r0, r1
	movs r4, 0x8
	ldrsh r0, [r0, r4]
	adds r4, r1, 0
	ldr r2, =gUnknown_0203BCD4
	cmp r5, r0
	bge _0817442A
	adds r1, r0, 0
_0817441E:
	adds r3, 0x78
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, r1
	blt _0817441E
_0817442A:
	adds r6, r3, 0
	movs r0, 0
	str r0, [r2]
	mov r5, r8
	lsls r2, r5, 2
	adds r1, r2, r5
	lsls r1, 3
	adds r1, r4
	strh r0, [r1, 0xC]
	strh r0, [r1, 0x10]
	movs r5, 0
	str r2, [sp, 0x14]
	ldr r4, =0x000001ff
	adds r2, r1, 0
_08174446:
	ldrh r1, [r6, 0x8]
	adds r0, r4, 0
	ands r0, r1
	cmp r0, 0
	beq _08174456
	ldrh r0, [r2, 0x10]
	adds r0, 0x1
	strh r0, [r2, 0x10]
_08174456:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	adds r6, 0x14
	cmp r5, 0x5
	bls _08174446
	adds r6, r3, 0
	movs r5, 0
	ldr r1, =gTasks
	ldr r0, [sp, 0x14]
	add r0, r8
	lsls r0, 3
	mov r9, r0
	adds r0, r1
	str r0, [sp, 0x10]
	ldr r1, =0x000001ff
	mov r10, r1
_08174478:
	ldrh r0, [r6, 0x8]
	mov r1, r10
	ands r1, r0
	adds r7, r0, 0
	cmp r1, 0
	beq _08174540
	ldr r2, [sp, 0x10]
	movs r4, 0x10
	ldrsh r0, [r2, r4]
	cmp r0, 0x3
	ble _081744B8
	lsls r1, r5, 3
	ldr r0, =gUnknown_085E53B4
	adds r0, 0x4
	adds r0, r1, r0
	ldrh r3, [r0]
	ldr r0, =gUnknown_085E53BA
	adds r1, r0
	ldrh r4, [r1]
	b _081744C8
	.pool
_081744B8:
	ldr r0, =gUnknown_085E53E4
	lsls r2, r5, 3
	adds r1, r0, 0x4
	adds r1, r2, r1
	ldrh r3, [r1]
	adds r0, 0x6
	adds r2, r0
	ldrh r4, [r2]
_081744C8:
	mov r1, r10
	ands r1, r7
	movs r0, 0xCE
	lsls r0, 1
	cmp r1, r0
	bne _081744DE
	lsls r0, r4, 16
	movs r1, 0xA0
	lsls r1, 12
	adds r0, r1
	lsrs r4, r0, 16
_081744DE:
	lsls r0, r7, 23
	lsrs r0, 23
	ldr r1, [r6]
	ldr r2, [r6, 0x4]
	lsls r3, 16
	asrs r3, 16
	str r3, [sp]
	lsls r3, r4, 16
	asrs r3, 16
	str r3, [sp, 0x4]
	lsls r3, r5, 24
	lsrs r3, 24
	str r3, [sp, 0x8]
	ldr r3, =0x0000ffff
	str r3, [sp, 0xC]
	movs r3, 0x1
	bl sub_818D7D8
	lsls r0, 16
	lsrs r0, 16
	ldr r2, =gSprites
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r3, [r1, 0x5]
	movs r4, 0xD
	negs r4, r4
	adds r2, r4, 0
	ands r3, r2
	movs r2, 0x4
	orrs r3, r2
	strb r3, [r1, 0x5]
	adds r1, r5, 0x5
	lsls r1, 1
	add r1, r9
	ldr r2, =gTasks + 0x8
	adds r1, r2
	strh r0, [r1]
	b _0817454E
	.pool
_08174540:
	adds r0, r5, 0x5
	lsls r0, 1
	add r0, r9
	ldr r4, =gTasks + 0x8
	adds r0, r4
	movs r1, 0xFF
	strh r1, [r0]
_0817454E:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	adds r6, 0x14
	cmp r5, 0x5
	bls _08174478
	ldr r0, =0xffff0000
	ldr r2, =0x000063b0
	movs r1, 0xC
	bl BlendPalettes
	ldr r0, =gStringVar1
	ldr r1, =gTasks
	ldr r4, [sp, 0x14]
	add r4, r8
	lsls r4, 3
	adds r4, r1
	movs r5, 0xA
	ldrsh r1, [r4, r5]
	movs r2, 0x1
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	ldr r5, =gStringVar4
	ldr r1, =gUnknown_085E8C00
	adds r0, r5, 0
	bl StringExpandPlaceholders
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bgt _081745C0
	ldr r1, =gUnknown_085E8574
	movs r0, 0x1
	str r0, [sp]
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0
	bl sub_8198204
	b _081745D0
	.pool
_081745C0:
	ldr r1, =gUnknown_085E855C
	movs r0, 0x1
	str r0, [sp]
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0
	bl sub_8198204
_081745D0:
	ldr r0, =gTasks
	ldr r1, [sp, 0x14]
	add r1, r8
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_81745FC
	str r0, [r1]
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81743EC

	thumb_func_start sub_81745FC
sub_81745FC: @ 81745FC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gUnknown_0203BCD8
	ldr r5, [r0]
	movs r3, 0
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	movs r2, 0x8
	ldrsh r0, [r0, r2]
	cmp r3, r0
	bge _08174630
	adds r1, r0, 0
_08174624:
	adds r5, 0x78
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, r1
	blt _08174624
_08174630:
	movs r3, 0
	lsls r7, r4, 2
	adds r0, r7, r4
	lsls r6, r0, 3
	ldr r0, =gTasks + 0x8
	mov r10, r0
	ldr r1, =gSprites
	mov r8, r1
	movs r2, 0xD
	negs r2, r2
	mov r9, r2
	movs r0, 0x4
	mov r12, r0
_0817464A:
	adds r0, r3, 0x5
	lsls r0, 1
	adds r0, r6
	add r0, r10
	ldrh r1, [r0]
	cmp r1, 0xFF
	beq _0817466C
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	ldrb r2, [r0, 0x5]
	mov r1, r9
	ands r1, r2
	mov r2, r12
	orrs r1, r2
	strb r1, [r0, 0x5]
_0817466C:
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x5
	bls _0817464A
	adds r1, r7, r4
	lsls r1, 3
	ldr r0, =gTasks
	adds r6, r1, r0
	movs r2, 0xC
	ldrsh r0, [r6, r2]
	adds r0, 0x5
	lsls r0, 1
	adds r0, r1
	ldr r1, =gTasks
	adds r1, 0x8
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	ldrb r2, [r0, 0x5]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	strb r1, [r0, 0x5]
	lsrs r1, 4
	movs r0, 0x80
	lsls r0, 9
	lsls r0, r1
	ldr r1, =0xffff0000
	eors r0, r1
	ldr r2, =gUnknown_0203BCD4
	str r0, [r2]
	ldr r2, =0x000063b0
	movs r1, 0xC
	bl BlendPalettesUnfaded
	movs r0, 0xC
	ldrsh r1, [r6, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r4, r5, r0
	ldrh r1, [r4, 0x8]
	ldr r0, =0x000001ff
	ands r0, r1
	movs r1, 0xCE
	lsls r1, 1
	cmp r0, r1
	beq _081746E6
	bl StopCryAndClearCrySongs
	ldrh r0, [r4, 0x8]
	lsls r0, 23
	lsrs r0, 23
	movs r1, 0
	bl PlayCry1
_081746E6:
	adds r0, r4, 0
	movs r1, 0
	movs r2, 0xE
	bl sub_8174A88
	ldr r0, =sub_8174728
	str r0, [r6]
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81745FC

	thumb_func_start sub_8174728
sub_8174728: @ 8174728
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r1, =gMain
	ldrh r2, [r1, 0x2E]
	movs r0, 0x1
	ands r0, r2
	adds r3, r1, 0
	cmp r0, 0
	beq _081747E4
	ldr r0, =gTasks
	mov r12, r0
	lsls r0, r6, 2
	adds r1, r0, r6
	lsls r3, r1, 3
	mov r1, r12
	adds r4, r3, r1
	ldrh r2, [r4, 0x8]
	movs r5, 0x8
	ldrsh r1, [r4, r5]
	mov r9, r0
	cmp r1, 0
	beq _081747B8
	subs r0, r2, 0x1
	strh r0, [r4, 0x8]
	movs r5, 0
	adds r7, r3, 0
	movs r0, 0x8
	add r0, r12
	mov r8, r0
_0817476A:
	adds r0, r5, 0x5
	lsls r0, 1
	adds r0, r7
	mov r1, r8
	adds r4, r0, r1
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _08174782
	bl sub_818D820
	movs r0, 0xFF
	strh r0, [r4]
_08174782:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x5
	bls _0817476A
	ldr r0, =gTasks
	mov r2, r9
	adds r1, r2, r6
	lsls r1, 3
	adds r1, r0
	ldrh r2, [r1, 0xA]
	movs r3, 0xA
	ldrsh r0, [r1, r3]
	cmp r0, 0
	beq _081747A4
	subs r0, r2, 0x1
	strh r0, [r1, 0xA]
_081747A4:
	ldr r0, =sub_81743EC
	str r0, [r1]
	b _08174884
	.pool
_081747B8:
	bl IsCryPlayingOrClearCrySongs
	lsls r0, 24
	cmp r0, 0
	beq _081747D2
	bl StopCryAndClearCrySongs
	ldr r0, =gMPlay_BGM
	ldr r1, =0x0000ffff
	movs r2, 0x80
	lsls r2, 1
	bl m4aMPlayVolumeControl
_081747D2:
	ldr r0, =sub_8174898
	str r0, [r4]
	b _08174884
	.pool
_081747E4:
	movs r0, 0x2
	ands r0, r2
	cmp r0, 0
	beq _08174828
	bl IsCryPlayingOrClearCrySongs
	lsls r0, 24
	cmp r0, 0
	beq _08174806
	bl StopCryAndClearCrySongs
	ldr r0, =gMPlay_BGM
	ldr r1, =0x0000ffff
	movs r2, 0x80
	lsls r2, 1
	bl m4aMPlayVolumeControl
_08174806:
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_8174898
	str r0, [r1]
	b _08174884
	.pool
_08174828:
	movs r0, 0x40
	ands r0, r2
	cmp r0, 0
	beq _08174858
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	ldrh r2, [r1, 0xC]
	movs r4, 0xC
	ldrsh r0, [r1, r4]
	cmp r0, 0
	beq _08174858
	subs r0, r2, 0x1
	strh r0, [r1, 0xC]
	ldr r0, =sub_81745FC
	str r0, [r1]
	b _08174884
	.pool
_08174858:
	ldrh r1, [r3, 0x2E]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _08174884
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r2, r0, r1
	movs r5, 0xC
	ldrsh r1, [r2, r5]
	movs r3, 0x10
	ldrsh r0, [r2, r3]
	subs r0, 0x1
	cmp r1, r0
	bge _08174884
	ldrh r0, [r2, 0xC]
	adds r0, 0x1
	strh r0, [r2, 0xC]
	ldr r0, =sub_81745FC
	str r0, [r2]
_08174884:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174728

	thumb_func_start sub_8174898
sub_8174898: @ 8174898
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gPlttBufferFaded
	ldr r1, =gPlttBufferUnfaded
	movs r2, 0x80
	lsls r2, 2
	bl CpuSet
	ldr r1, =0x0201c000
	ldr r0, =gUnknown_085E56D4
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldm r0!, {r2,r3}
	stm r1!, {r2,r3}
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl sub_80F9BF4
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81748F0
	str r1, [r0]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174898

	thumb_func_start sub_81748F0
sub_81748F0: @ 81748F0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r6, r0, 24
	bl sub_80F9C30
	lsls r0, 24
	cmp r0, 0
	bne _08174988
	movs r5, 0
	lsls r0, r6, 2
	adds r0, r6
	lsls r7, r0, 3
	ldr r0, =gTasks + 0x8
	mov r8, r0
_08174910:
	adds r0, r5, 0x5
	lsls r0, 1
	adds r0, r7
	mov r1, r8
	adds r4, r0, r1
	ldrh r0, [r4]
	cmp r0, 0xFF
	beq _08174928
	bl sub_818D820
	movs r0, 0xFF
	strh r0, [r4]
_08174928:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x5
	bls _08174910
	movs r0, 0
	bl HideBg
	movs r0, 0x1
	bl HideBg
	movs r0, 0x3
	bl HideBg
	bl sub_8198314
	bl FreeAllWindowBuffers
	movs r0, 0x1
	bl UnsetBgTilemapBuffer
	movs r0, 0x3
	bl UnsetBgTilemapBuffer
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	adds r0, r6, 0
	bl DestroyTask
	ldr r4, =gUnknown_0203BCDC
	ldr r0, [r4]
	cmp r0, 0
	beq _08174974
	bl Free
	movs r0, 0
	str r0, [r4]
_08174974:
	ldr r4, =gUnknown_0203BCD8
	ldr r0, [r4]
	cmp r0, 0
	beq _08174984
	bl Free
	movs r0, 0
	str r0, [r4]
_08174984:
	bl sub_8137C3C
_08174988:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81748F0

	thumb_func_start sub_81749A0
sub_81749A0: @ 81749A0
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_085E8588
	movs r1, 0x8
	movs r2, 0x1
	bl sub_8198180
	movs r0, 0
	movs r1, 0
	bl sub_81973C4
	ldr r2, =gUnknown_085E8BDC
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParametrized
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_8174A08
	str r1, [r0]
	add sp, 0x10
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81749A0

	thumb_func_start sub_8174A08
sub_8174A08: @ 8174A08
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08174A28
	ldr r0, =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_8174898
	str r0, [r1]
_08174A28:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174A08

	thumb_func_start sub_8174A38
sub_8174A38: @ 8174A38
	push {r4,lr}
	sub sp, 0xC
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0
	bl PutWindowTilemap
	ldr r4, =gUnknown_085E8B3E
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0xD0
	bl GetStringCenterAlignXOffset
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	ldr r0, =gUnknown_085E5388
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0x1
	bl box_print
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174A38

	thumb_func_start sub_8174A88
sub_8174A88: @ 8174A88
	push {r4-r7,lr}
	sub sp, 0x2C
	adds r7, r0, 0
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	movs r0, 0
	bl PutWindowTilemap
	ldrh r0, [r7, 0x8]
	ldr r1, =0x000001ff
	ands r1, r0
	movs r0, 0xCE
	lsls r0, 1
	cmp r1, r0
	beq _08174B30
	ldr r1, =gUnknown_085E8C36
	add r0, sp, 0xC
	bl StringCopy
	adds r6, r0, 0
	ldrh r0, [r7, 0x8]
	lsls r0, 23
	lsrs r0, 23
	bl SpeciesToPokedexNum
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =0x0000ffff
	cmp r4, r0
	beq _08174B04
	adds r0, r4, 0
	movs r1, 0x64
	bl __divsi3
	subs r0, 0x5F
	strb r0, [r6]
	adds r6, 0x1
	adds r0, r4, 0
	movs r1, 0x64
	bl __modsi3
	adds r4, r0, 0
	movs r1, 0xA
	bl __divsi3
	subs r0, 0x5F
	strb r0, [r6]
	adds r6, 0x1
	adds r0, r4, 0
	movs r1, 0xA
	bl __modsi3
	subs r0, 0x5F
	b _08174B0E
	.pool
_08174B04:
	movs r0, 0xAC
	strb r0, [r6]
	adds r6, 0x1
	strb r0, [r6]
	adds r6, 0x1
_08174B0E:
	strb r0, [r6]
	adds r6, 0x1
	movs r0, 0xFF
	strb r0, [r6]
	ldr r0, =gUnknown_085E5388
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x10
	movs r3, 0x1
	bl box_print
_08174B30:
	adds r1, r7, 0
	adds r1, 0xA
	add r0, sp, 0xC
	movs r2, 0xA
	bl memcpy
	add r1, sp, 0xC
	movs r0, 0xFF
	strb r0, [r1, 0xA]
	ldrh r1, [r7, 0x8]
	ldr r4, =0x000001ff
	adds r0, r4, 0
	ands r0, r1
	movs r1, 0xCE
	lsls r1, 1
	cmp r0, r1
	bne _08174B8C
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0xD0
	bl GetStringCenterAlignXOffset
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r0, =gUnknown_085E5388
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0x1
	bl box_print
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	b _08174C82
	.pool
_08174B8C:
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0x80
	bl GetStringRightAlignXOffset
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r0, =gUnknown_085E5388
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0x1
	bl box_print
	add r1, sp, 0xC
	movs r0, 0xBA
	strb r0, [r1]
	mov r0, sp
	adds r0, 0xD
	ldrh r1, [r7, 0x8]
	lsls r1, 23
	lsrs r1, 23
	movs r2, 0xB
	muls r1, r2
	ldr r2, =gSpeciesNames
	adds r1, r2
	bl StringCopy
	adds r6, r0, 0
	ldrh r1, [r7, 0x8]
	adds r0, r4, 0
	ands r0, r1
	cmp r0, 0x20
	beq _08174C0A
	cmp r0, 0x1D
	beq _08174C0A
	lsls r0, r1, 23
	lsrs r0, 23
	ldr r1, [r7, 0x4]
	bl GetGenderFromSpeciesAndPersonality
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _08174C00
	cmp r0, 0xFE
	beq _08174C04
	b _08174C0A
	.pool
_08174C00:
	movs r0, 0xB5
	b _08174C06
_08174C04:
	movs r0, 0xB6
_08174C06:
	strb r0, [r6]
	adds r6, 0x1
_08174C0A:
	movs r0, 0xFF
	strb r0, [r6]
	ldr r5, =gUnknown_085E5388
	str r5, [sp]
	movs r4, 0x1
	negs r4, r4
	str r4, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x80
	movs r3, 0x1
	bl box_print
	ldr r1, =gUnknown_085E8C3B
	add r0, sp, 0xC
	bl StringCopy
	adds r6, r0, 0
	ldrb r1, [r7, 0x9]
	lsrs r1, 1
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	str r5, [sp]
	str r4, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x24
	movs r3, 0x11
	bl box_print
	ldr r1, =gUnknown_085E8C4D
	add r0, sp, 0xC
	bl StringCopy
	adds r6, r0, 0
	ldrh r1, [r7]
	movs r2, 0x2
	movs r3, 0x5
	bl ConvertIntToDecimalStringN
	str r5, [sp]
	str r4, [sp, 0x4]
	add r0, sp, 0xC
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x68
	movs r3, 0x11
	bl box_print
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
_08174C82:
	add sp, 0x2C
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174A88

	thumb_func_start sub_8174C98
sub_8174C98: @ 8174C98
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	movs r0, 0x1
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r0, 0x1
	bl PutWindowTilemap
	ldr r2, =0x0000021d
	movs r0, 0x1
	movs r1, 0
	movs r3, 0xD
	bl SetWindowBorderStyle
	ldr r0, =gUnknown_085E538C
	mov r8, r0
	str r0, [sp]
	movs r1, 0x1
	negs r1, r1
	mov r9, r1
	str r1, [sp, 0x4]
	ldr r0, =gUnknown_085E8C48
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x1
	bl box_print
	ldr r0, =gSaveBlock2Ptr
	mov r10, r0
	ldr r1, [r0]
	movs r0, 0x1
	movs r2, 0x70
	bl GetStringRightAlignXOffset
	lsls r2, r0, 24
	lsrs r2, 24
	mov r1, r8
	str r1, [sp]
	mov r0, r9
	str r0, [sp, 0x4]
	mov r1, r10
	ldr r0, [r1]
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r3, 0x1
	bl box_print
	mov r1, r10
	ldr r0, [r1]
	ldrb r4, [r0, 0xA]
	ldrb r0, [r0, 0xB]
	lsls r0, 8
	orrs r4, r0
	mov r0, r8
	str r0, [sp]
	movs r7, 0
	str r7, [sp, 0x4]
	ldr r0, =gUnknown_085E8C4D
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x11
	bl box_print
	add r6, sp, 0xC
	ldr r1, =0x000186a0
	adds r0, r4, 0
	bl __modsi3
	ldr r5, =0x00002710
	adds r1, r5, 0
	bl __divsi3
	subs r0, 0x5F
	strb r0, [r6]
	add r6, sp, 0xC
	adds r0, r4, 0
	adds r1, r5, 0
	bl __umodsi3
	lsls r0, 16
	lsrs r0, 16
	movs r5, 0xFA
	lsls r5, 2
	adds r1, r5, 0
	bl __udivsi3
	adds r0, 0xA1
	strb r0, [r6, 0x1]
	add r6, sp, 0xC
	adds r0, r4, 0
	adds r1, r5, 0
	bl __umodsi3
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x64
	bl __udivsi3
	adds r0, 0xA1
	strb r0, [r6, 0x2]
	add r5, sp, 0xC
	adds r0, r4, 0
	movs r1, 0x64
	bl __umodsi3
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xA
	bl __udivsi3
	adds r0, 0xA1
	strb r0, [r5, 0x3]
	add r5, sp, 0xC
	adds r0, r4, 0
	movs r1, 0xA
	bl __umodsi3
	adds r0, 0xA1
	strb r0, [r5, 0x4]
	add r1, sp, 0xC
	movs r0, 0xFF
	strb r0, [r1, 0x5]
	movs r0, 0x1
	movs r2, 0x70
	bl GetStringRightAlignXOffset
	lsls r2, r0, 24
	lsrs r2, 24
	mov r1, r8
	str r1, [sp]
	mov r0, r9
	str r0, [sp, 0x4]
	add r1, sp, 0xC
	str r1, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r3, 0x11
	bl box_print
	mov r0, r8
	str r0, [sp]
	mov r1, r9
	str r1, [sp, 0x4]
	ldr r0, =gUnknown_085E84CE
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x21
	bl box_print
	add r5, sp, 0xC
	mov r0, r10
	ldr r4, [r0]
	ldrh r0, [r4, 0xE]
	movs r1, 0x64
	bl __udivsi3
	adds r0, 0xA1
	strb r0, [r5]
	add r5, sp, 0xC
	ldrh r0, [r4, 0xE]
	movs r1, 0x64
	bl __umodsi3
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xA
	bl __udivsi3
	adds r0, 0xA1
	strb r0, [r5, 0x1]
	add r5, sp, 0xC
	ldrh r0, [r4, 0xE]
	movs r1, 0xA
	bl __umodsi3
	adds r0, 0xA1
	strb r0, [r5, 0x2]
	add r0, sp, 0xC
	ldrb r0, [r0]
	cmp r0, 0xA1
	bne _08174E1E
	add r0, sp, 0xC
	strb r7, [r0]
_08174E1E:
	add r0, sp, 0xC
	ldrb r1, [r0]
	cmp r1, 0
	bne _08174E30
	ldrb r0, [r0, 0x1]
	cmp r0, 0xA1
	bne _08174E30
	add r0, sp, 0xC
	strb r1, [r0, 0x8]
_08174E30:
	add r1, sp, 0xC
	movs r0, 0xF0
	strb r0, [r1, 0x3]
	adds r4, r1, 0
	ldr r0, =gSaveBlock2Ptr
	ldr r5, [r0]
	ldrb r0, [r5, 0x10]
	movs r1, 0x64
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0xA
	bl __udivsi3
	adds r0, 0xA1
	strb r0, [r4, 0x4]
	add r4, sp, 0xC
	ldrb r0, [r5, 0x10]
	movs r1, 0xA
	bl __umodsi3
	adds r0, 0xA1
	strb r0, [r4, 0x5]
	add r1, sp, 0xC
	movs r0, 0xFF
	strb r0, [r1, 0x6]
	movs r0, 0x1
	movs r2, 0x70
	bl GetStringRightAlignXOffset
	lsls r2, r0, 24
	lsrs r2, 24
	ldr r0, =gUnknown_085E538C
	str r0, [sp]
	movs r0, 0x1
	negs r0, r0
	str r0, [sp, 0x4]
	add r1, sp, 0xC
	str r1, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r3, 0x21
	bl box_print
	movs r0, 0x1
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0x20
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174C98

	thumb_func_start sub_8174EC4
sub_8174EC4: @ 8174EC4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	movs r3, 0xC0
	lsls r3, 19
	movs r4, 0xC0
	lsls r4, 9
	add r0, sp, 0x4
	mov r8, r0
	mov r2, sp
	movs r6, 0
	ldr r1, =0x040000d4
	movs r5, 0x80
	lsls r5, 5
	ldr r7, =0x81000800
	movs r0, 0x81
	lsls r0, 24
	mov r12, r0
_08174EEA:
	strh r6, [r2]
	mov r0, sp
	str r0, [r1]
	str r3, [r1, 0x4]
	str r7, [r1, 0x8]
	ldr r0, [r1, 0x8]
	adds r3, r5
	subs r4, r5
	cmp r4, r5
	bhi _08174EEA
	strh r6, [r2]
	mov r2, sp
	str r2, [r1]
	str r3, [r1, 0x4]
	lsrs r0, r4, 1
	mov r2, r12
	orrs r0, r2
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	movs r0, 0xE0
	lsls r0, 19
	movs r3, 0x80
	lsls r3, 3
	movs r4, 0
	str r4, [sp, 0x4]
	ldr r2, =0x040000d4
	mov r1, r8
	str r1, [r2]
	str r0, [r2, 0x4]
	lsrs r0, r3, 2
	movs r1, 0x85
	lsls r1, 24
	orrs r0, r1
	str r0, [r2, 0x8]
	ldr r0, [r2, 0x8]
	movs r1, 0xA0
	lsls r1, 19
	mov r0, sp
	strh r4, [r0]
	str r0, [r2]
	str r1, [r2, 0x4]
	lsrs r3, 1
	movs r0, 0x81
	lsls r0, 24
	orrs r3, r0
	str r3, [r2, 0x8]
	ldr r0, [r2, 0x8]
	bl ResetPaletteFade
	ldr r0, =gUnknown_085E54E8
	movs r1, 0
	movs r2, 0x20
	bl LoadPalette
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174EC4

	thumb_func_start sub_8174F70
sub_8174F70: @ 8174F70
	push {lr}
	bl remove_some_task
	bl ResetTasks
	bl ResetSpriteData
	bl reset_temp_tile_data_buffers
	bl dp13_810BB8C
	bl FreeAllSpritePalettes
	ldr r1, =gReservedSpritePaletteCount
	movs r0, 0x8
	strb r0, [r1]
	ldr r0, =gUnknown_085E5394
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_085E53A4
	bl LoadCompressedObjectPalette
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174F70

	thumb_func_start sub_8174FAC
sub_8174FAC: @ 8174FAC
	push {r4,lr}
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_085E5374
	movs r0, 0
	movs r2, 0x3
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203BCDC
	ldr r1, [r4]
	adds r1, 0x12
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x00001012
	adds r1, r0
	movs r0, 0x3
	bl SetBgTilemapBuffer
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	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
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8174FAC

	thumb_func_start sub_8175024
sub_8175024: @ 8175024
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203BCDC
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x4
	bhi _08175108
	lsls r0, 2
	ldr r1, =_08175044
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08175044:
	.4byte _08175058
	.4byte _08175070
	.4byte _0817507C
	.4byte _081750D2
	.4byte _081750DC
_08175058:
	ldr r1, =gUnknown_085E5508
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	b _08175108
	.pool
_08175070:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _08175108
	b _08175112
_0817507C:
	movs r4, 0x20
	str r4, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	movs r0, 0xB
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0x3
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	movs r0, 0x6
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0
	movs r3, 0xE
	bl FillBgTilemapBufferRect_Palette0
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0x3
	movs r1, 0x2
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	b _08175108
_081750D2:
	bl sub_81971D0
	bl sub_8197200
	b _08175108
_081750DC:
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x3
	bl ShowBg
	ldr r0, =gUnknown_0203BCDC
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1]
	b _08175114
	.pool
_08175108:
	ldr r0, =gUnknown_0203BCDC
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_08175112:
	movs r0, 0x1
_08175114:
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8175024

	thumb_func_start sub_8175120
sub_8175120: @ 8175120
	push {r4,lr}
	adds r2, r0, 0
	ldr r1, [r2, 0x20]
	ldr r0, [r2, 0x30]
	cmp r1, r0
	beq _08175176
	ldrh r3, [r2, 0x20]
	movs r1, 0x20
	ldrsh r0, [r2, r1]
	movs r4, 0x30
	ldrsh r1, [r2, r4]
	cmp r0, r1
	bge _08175140
	adds r0, r3, 0
	adds r0, 0xF
	strh r0, [r2, 0x20]
_08175140:
	ldrh r3, [r2, 0x20]
	movs r4, 0x20
	ldrsh r0, [r2, r4]
	cmp r0, r1
	ble _08175150
	adds r0, r3, 0
	subs r0, 0xF
	strh r0, [r2, 0x20]
_08175150:
	ldrh r3, [r2, 0x22]
	movs r1, 0x22
	ldrsh r0, [r2, r1]
	movs r4, 0x32
	ldrsh r1, [r2, r4]
	cmp r0, r1
	bge _08175164
	adds r0, r3, 0
	adds r0, 0xA
	strh r0, [r2, 0x22]
_08175164:
	ldrh r3, [r2, 0x22]
	movs r4, 0x22
	ldrsh r0, [r2, r4]
	cmp r0, r1
	ble _0817519C
	adds r0, r3, 0
	subs r0, 0xA
	strh r0, [r2, 0x22]
	b _0817519C
_08175176:
	ldrh r0, [r2, 0x3C]
	lsls r1, r0, 16
	movs r0, 0xCE
	lsls r0, 17
	cmp r1, r0
	bne _08175190
	lsrs r1, 16
	adds r0, r2, 0
	movs r2, 0x1
	movs r3, 0x3
	bl sub_806ED40
	b _0817519C
_08175190:
	lsrs r1, 16
	adds r0, r2, 0
	movs r2, 0
	movs r3, 0x3
	bl sub_806ED40
_0817519C:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8175120

	thumb_func_start sub_81751A4
sub_81751A4: @ 81751A4
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrh r1, [r5, 0x26]
	movs r2, 0x26
	ldrsh r0, [r5, r2]
	cmp r0, 0x78
	ble _081751BA
	adds r0, r5, 0
	bl DestroySprite
	b _081751F2
_081751BA:
	adds r0, r1, 0x1
	ldrh r1, [r5, 0x30]
	adds r0, r1
	strh r0, [r5, 0x26]
	ldrh r4, [r5, 0x2E]
	lsls r4, 24
	lsrs r4, 24
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x3
	ands r0, r1
	adds r0, 0x8
	ldr r1, =gSineTable
	lsls r4, 1
	adds r4, r1
	movs r2, 0
	ldrsh r1, [r4, r2]
	muls r0, r1
	cmp r0, 0
	bge _081751E8
	adds r0, 0xFF
_081751E8:
	asrs r0, 8
	strh r0, [r5, 0x24]
	ldrh r0, [r5, 0x2E]
	adds r0, 0x4
	strh r0, [r5, 0x2E]
_081751F2:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81751A4

	thumb_func_start sub_81751FC
sub_81751FC: @ 81751FC
	push {r4,lr}
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xF0
	bl __umodsi3
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl Random
	adds r2, r0, 0
	lsls r2, 16
	lsrs r2, 16
	movs r0, 0x7
	ands r2, r0
	negs r2, r2
	ldr r0, =gUnknown_085E54D0
	lsls r4, 16
	asrs r4, 16
	lsls r2, 16
	asrs r2, 16
	adds r1, r4, 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 r4, r1, r0
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x11
	bl __umodsi3
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl StartSpriteAnim
	bl Random
	movs r1, 0x3
	ands r1, r0
	cmp r1, 0
	beq _08175274
	movs r0, 0
	b _08175276
	.pool
_08175274:
	movs r0, 0x1
_08175276:
	strh r0, [r4, 0x30]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81751FC

	thumb_func_start sub_8175280
sub_8175280: @ 8175280
	push {r4,lr}
	ldr r4, =gSpecialVar_0x8004
	movs r0, 0xB4
	strh r0, [r4]
	ldr r0, =sub_8175364
	movs r1, 0
	bl CreateTask
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	beq _081752AA
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	ldrh r1, [r4]
	strh r1, [r0, 0xA]
	ldr r0, =gSpecialVar_0x8005
	strh r2, [r0]
_081752AA:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8175280

	thumb_func_start sub_81752C0
sub_81752C0: @ 81752C0
	push {r4,lr}
	ldr r0, =sub_8175364
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _081752D4
	bl DestroyTask
_081752D4:
	bl sub_8152254
	ldr r4, =0x000003e9
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81752C0

	thumb_func_start sub_81752F4
sub_81752F4: @ 81752F4
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrh r1, [r5, 0xE]
	movs r2, 0xE
	ldrsh r0, [r5, r2]
	cmp r0, 0x6E
	ble _08175324
	ldr r2, =gTasks
	movs r0, 0x28
	ldrsh r1, [r5, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrh r1, [r0, 0x26]
	subs r1, 0x1
	strh r1, [r0, 0x26]
	ldrb r0, [r5, 0x16]
	bl sub_81525D0
	b _08175358
	.pool
_08175324:
	adds r0, r1, 0x1
	ldrh r1, [r5, 0x1C]
	adds r0, r1
	strh r0, [r5, 0xE]
	ldrb r4, [r5, 0x1A]
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x3
	ands r0, r1
	adds r0, 0x8
	ldr r1, =gSineTable
	lsls r4, 1
	adds r4, r1
	movs r2, 0
	ldrsh r1, [r4, r2]
	muls r0, r1
	cmp r0, 0
	bge _0817534E
	adds r0, 0xFF
_0817534E:
	asrs r0, 8
	strh r0, [r5, 0xC]
	ldrh r0, [r5, 0x1A]
	adds r0, 0x4
	strh r0, [r5, 0x1A]
_08175358:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81752F4

	thumb_func_start sub_8175364
sub_8175364: @ 8175364
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r4, r0, 24
	mov r8, r4
	movs r7, 0
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	ldrh r0, [r6]
	cmp r0, 0x1
	beq _081753E0
	cmp r0, 0x1
	bgt _08175394
	cmp r0, 0
	beq _0817539C
	b _081754B0
	.pool
_08175394:
	cmp r0, 0xFF
	bne _0817539A
	b _081754A0
_0817539A:
	b _081754B0
_0817539C:
	movs r0, 0x40
	bl sub_81521C0
	cmp r0, 0
	bne _081753B8
	adds r0, r4, 0
	bl DestroyTask
	ldr r0, =gSpecialVar_0x8004
	strh r7, [r0]
	ldr r1, =gSpecialVar_0x8005
	ldr r2, =0x0000ffff
	adds r0, r2, 0
	strh r0, [r1]
_081753B8:
	ldr r0, =gUnknown_085E5394
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_085E53A4
	bl LoadCompressedObjectPalette
	ldrh r0, [r6]
	adds r0, 0x1
	strh r0, [r6]
	b _081754B0
	.pool
_081753E0:
	ldrh r0, [r6, 0x2]
	cmp r0, 0
	beq _08175478
	movs r1, 0x3
	bl __umodsi3
	lsls r0, 16
	cmp r0, 0
	bne _08175478
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xF0
	bl __umodsi3
	adds r5, r0, 0
	lsls r5, 16
	asrs r5, 16
	bl Random
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	movs r0, 0x7
	ands r4, r0
	negs r4, r4
	lsls r4, 16
	asrs r4, 16
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x11
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_085E53FC
	ldr r2, =0x000003e9
	str r4, [sp]
	str r0, [sp, 0x4]
	str r7, [sp, 0x8]
	adds r0, r1, 0
	adds r1, r2, 0
	adds r3, r5, 0
	bl sub_81524C4
	lsls r0, 24
	lsrs r7, r0, 24
	cmp r7, 0xFF
	beq _08175478
	adds r4, r7, 0
	ldr r1, =sub_81752F4
	adds r0, r4, 0
	bl sub_8152438
	bl Random
	movs r1, 0x3
	ands r1, r0
	cmp r1, 0
	bne _08175468
	adds r0, r4, 0
	movs r1, 0x1
	movs r2, 0x1
	bl sub_8152474
_08175468:
	adds r0, r4, 0
	movs r1, 0x7
	mov r2, r8
	bl sub_8152474
	ldrh r0, [r6, 0x1E]
	adds r0, 0x1
	strh r0, [r6, 0x1E]
_08175478:
	bl sub_81522D4
	ldrh r0, [r6, 0x2]
	cmp r0, 0
	beq _08175494
	subs r0, 0x1
	strh r0, [r6, 0x2]
	b _081754B0
	.pool
_08175494:
	ldrh r0, [r6, 0x1E]
	cmp r0, 0
	bne _081754B0
	movs r0, 0xFF
	strh r0, [r6]
	b _081754B0
_081754A0:
	bl sub_81752C0
	ldr r0, =gSpecialVar_0x8004
	strh r7, [r0]
	ldr r1, =gSpecialVar_0x8005
	ldr r2, =0x0000ffff
	adds r0, r2, 0
	strh r0, [r1]
_081754B0:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8175364

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