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

	.syntax unified

	.text

	thumb_func_start sub_8140238
sub_8140238: @ 8140238
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r1, r0, 0
	adds r1, 0xB8
	ldrb r0, [r1]
	cmp r0, 0
	beq _0814025A
	adds r0, r1, 0
	bl task_tutorial_controls_fadein
_0814025A:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140238

	thumb_func_start sub_8140264
sub_8140264: @ 8140264
	push {r4,lr}
	sub sp, 0x4
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	bl sub_8142814
	ldr r4, =gUnknown_0203AB88
	ldr r0, [r4]
	ldrh r0, [r0, 0x26]
	movs r2, 0x80
	lsls r2, 2
	adds r1, r2, 0
	subs r1, r0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x14
	bl SetGpuReg
	ldr r1, [r4]
	ldrb r0, [r1, 0x1]
	cmp r0, 0
	beq _081402A0
	ldrh r1, [r1, 0x34]
	movs r0, 0x52
	bl SetGpuReg
_081402A0:
	ldr r2, [r4]
	movs r3, 0x2A
	ldrsh r0, [r2, r3]
	cmp r0, 0
	beq _081402C0
	ldr r1, =0x040000d4
	ldr r3, =0x0000133c
	adds r0, r2, r3
	str r0, [r1]
	ldr r0, =0x060021c0
	str r0, [r1, 0x4]
	ldr r0, =0x800001a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	movs r0, 0
	strh r0, [r2, 0x2A]
_081402C0:
	ldr r0, [r4]
	movs r2, 0x28
	ldrsh r1, [r0, r2]
	cmp r1, 0x1
	beq _081402EC
	cmp r1, 0x1
	ble _08140374
	cmp r1, 0x2
	beq _08140324
	cmp r1, 0xFF
	beq _08140348
	b _08140374
	.pool
_081402EC:
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	bl SetBgAttribute
	movs r0, 0
	bl ShowBg
	ldr r1, =0x040000d4
	ldr r2, [r4]
	movs r3, 0xCF
	lsls r3, 2
	adds r0, r2, r3
	str r0, [r1]
	ldr r0, =0x0600f9c0
	str r0, [r1, 0x4]
	ldr r0, =0x800001a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	movs r0, 0x2
	strh r0, [r2, 0x28]
	b _08140374
	.pool
_08140324:
	ldr r1, =0x040000d4
	movs r2, 0xCF
	lsls r2, 2
	adds r0, r2
	str r0, [r1]
	ldr r0, =0x0600f9c0
	str r0, [r1, 0x4]
	ldr r0, =0x800001a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	b _08140374
	.pool
_08140348:
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x2
	bl SetBgAttribute
	movs r0, 0
	bl ShowBg
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	ldr r1, =0x040000d4
	mov r3, sp
	str r3, [r1]
	ldr r0, =0x0600f9c0
	str r0, [r1, 0x4]
	ldr r0, =0x810001a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	ldr r1, [r4]
	movs r0, 0
	strh r0, [r1, 0x28]
_08140374:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140264

	thumb_func_start sub_8140388
sub_8140388: @ 8140388
	push {r4,r5,lr}
	sub sp, 0x4
	movs r5, 0
	str r5, [sp]
	ldr r4, =gUnknown_0203AB88
	movs r0, 0xE6
	lsls r0, 6
	bl AllocZeroed
	str r0, [r4]
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_085B6140
	movs r0, 0x1
	movs r2, 0x3
	bl InitBgsFromTemplates
	ldr r1, [r4]
	movs r0, 0xBE
	lsls r0, 1
	adds r1, r0
	movs r0, 0
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r2, =0x0000117c
	adds r1, r2
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	ldr r0, =0x0000317c
	adds r1, r0
	movs r0, 0x2
	bl SetBgTilemapBuffer
	ldr r0, =gUnknown_085B614C
	bl InitWindows
	bl sub_8197200
	ldr r0, =gUnknown_0203AB8C
	strb r5, [r0]
	ldr r0, =gUnknown_085B5DFC
	mov r1, sp
	bl malloc_and_decompress
	ldr r1, [r4]
	ldr r2, =0x0000397c
	adds r1, r2
	str r0, [r1]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140388

	thumb_func_start sub_8140418
sub_8140418: @ 8140418
	push {r4,r5,lr}
	ldr r5, =gUnknown_0203AB88
	ldr r0, [r5]
	ldr r4, =0x0000397c
	adds r0, r4
	ldr r0, [r0]
	bl Free
	ldr r0, [r5]
	adds r0, r4
	movs r4, 0
	str r4, [r0]
	bl FreeAllWindowBuffers
	movs r0, 0
	bl UnsetBgTilemapBuffer
	movs r0, 0x1
	bl UnsetBgTilemapBuffer
	movs r0, 0x2
	bl UnsetBgTilemapBuffer
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r0, [r5]
	movs r2, 0xE6
	lsls r2, 6
	movs r1, 0
	bl memset
	ldr r0, [r5]
	bl Free
	str r4, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140418

	thumb_func_start sub_8140470
sub_8140470: @ 8140470
	push {r4-r6,lr}
	sub sp, 0x8
	ldr r1, =gUnknown_085B6418
	mov r0, sp
	movs r2, 0x6
	bl memcpy
	ldr r5, =gUnknown_0203AB88
	ldr r3, [r5]
	ldr r4, =gSpecialVar_0x8004
	ldrb r0, [r4]
	movs r1, 0x1
	ands r1, r0
	ldrb r2, [r3, 0x4]
	movs r0, 0x4
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0x4]
	ldrh r1, [r4]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081404AA
	ldr r0, [r5]
	ldrb r1, [r0, 0x4]
	movs r2, 0x80
	orrs r1, r2
	strb r1, [r0, 0x4]
_081404AA:
	ldr r1, [r5]
	ldr r2, =gUnknown_085B6348
	ldrb r0, [r1, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r2
	ldrb r0, [r0, 0x3]
	adds r1, 0x22
	strb r0, [r1]
	ldr r1, [r5]
	ldrb r0, [r1, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r2
	ldrb r0, [r0, 0x4]
	adds r1, 0x23
	strb r0, [r1]
	ldr r2, [r5]
	ldr r3, =gUnknown_085B6344
	ldrb r1, [r2, 0x4]
	lsls r0, r1, 30
	lsrs r0, 30
	lsrs r1, 7
	lsls r1, 1
	adds r0, r1
	adds r0, r3
	ldrb r0, [r0]
	strb r0, [r2, 0x19]
	ldr r2, [r5]
	ldrb r1, [r2, 0x1A]
	movs r0, 0xF
	ands r0, r1
	movs r1, 0x10
	orrs r0, r1
	strb r0, [r2, 0x1A]
	ldr r0, [r5]
	ldrb r0, [r0, 0x19]
	cmp r0, 0x1
	bne _08140520
	ldr r4, =gPlttBufferUnfaded
	ldr r3, =gPlttBufferFaded
	mov r0, sp
	ldrh r2, [r0]
	b _08140528
	.pool
_08140520:
	ldr r4, =gPlttBufferUnfaded
	ldr r3, =gPlttBufferFaded
	mov r0, sp
	ldrh r2, [r0, 0x2]
_08140528:
	adds r0, r3, 0
	adds r0, 0xA2
	strh r2, [r0]
	ldr r1, =0x0000ffff
	adds r0, r1, 0
	ands r0, r2
	strh r0, [r3]
	ands r0, r1
	adds r2, r4, 0
	adds r2, 0xA2
	strh r0, [r2]
	ands r0, r1
	strh r0, [r4]
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0xB8
	bl sub_8151678
	movs r4, 0
_0814054E:
	ldr r5, =gUnknown_0203AB88
	ldr r0, [r5]
	adds r0, 0xB8
	lsls r2, r4, 3
	ldr r1, =gUnknown_085B6388
	adds r2, r1
	adds r1, r4, 0
	bl sub_815168C
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0xC
	bls _0814054E
	movs r4, 0
_0814056C:
	movs r0, 0x64
	muls r0, r4
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x41
	bl GetMonData
	adds r1, r0, 0
	movs r0, 0x98
	lsls r0, 1
	cmp r1, r0
	beq _081405AC
	adds r0, 0x2
	cmp r1, r0
	bne _081405B6
	ldr r0, [r5]
	ldrb r1, [r0, 0x2]
	movs r2, 0x1
	b _081405B2
	.pool
_081405AC:
	ldr r0, [r5]
	ldrb r1, [r0, 0x2]
	movs r2, 0x2
_081405B2:
	orrs r1, r2
	strb r1, [r0, 0x2]
_081405B6:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _0814056C
	bl RtcCalcLocalTime
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_8140470

	thumb_func_start sub_81405CC
sub_81405CC: @ 81405CC
	push {r4,r5,lr}
	sub sp, 0xC
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0x8
	bls _081405E0
	b _081407F8
_081405E0:
	lsls r0, 2
	ldr r1, =_081405F4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081405F4:
	.4byte _08140618
	.4byte _08140630
	.4byte _08140650
	.4byte _08140662
	.4byte _0814069C
	.4byte _081406C0
	.4byte _081406E0
	.4byte _08140750
	.4byte _0814077A
_08140618:
	movs r0, 0
	bl SetVBlankCallback
	bl ScanlineEffect_Stop
	bl SetVBlankHBlankCallbacksToNull
	bl ResetVramOamAndBgCntRegs
	bl ResetAllBgsCoordinates
	b _081407F8
_08140630:
	bl sub_8140388
	bl DeactivateAllTextPrinters
	movs r1, 0x90
	lsls r1, 6
	movs r0, 0x50
	bl SetGpuReg
	ldr r1, =0x0000060a
	movs r0, 0x52
	bl SetGpuReg
	b _081407F8
	.pool
_08140650:
	bl ResetPaletteFade
	bl ResetSpriteData
	bl ResetTasks
	bl reset_temp_tile_data_buffers
	b _081407F8
_08140662:
	ldr r0, =gUnknown_085B5BFC
	movs r2, 0xE0
	lsls r2, 1
	movs r1, 0
	bl LoadPalette
	ldr r1, =gRouletteMenuTiles
	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, =gRouletteWheelTiles
	str r4, [sp]
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl decompress_and_copy_tile_data_to_vram
	b _081407F8
	.pool
_0814069C:
	bl free_temp_tile_data_buffers_if_possible
	lsls r0, 24
	cmp r0, 0
	beq _081406A8
	b _08140806
_081406A8:
	bl sub_8140470
	ldr r1, =gUnknown_085B5FA0
	movs r0, 0x2
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	b _081407F8
	.pool
_081406C0:
	movs r0, 0
	bl sub_8142C0C
	bl sub_81439C8
	bl sub_814391C
	bl sub_8143314
	bl sub_8142CD0
	bl sub_8142F7C
	bl sub_81431E4
	b _081407F8
_081406E0:
	bl AnimateSprites
	bl BuildOamBuffer
	bl GetCoins
	lsls r0, 16
	lsrs r0, 16
	bl sub_8143514
	movs r0, 0x6
	bl sub_814372C
	movs r0, 0
	bl sub_81436D0
	movs r0, 0
	bl sub_81424FC
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5B89
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r5, 0
	str r5, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =gSpriteCoordOffsetX
	movs r2, 0x3C
	negs r2, r2
	adds r0, r2, 0
	strh r0, [r1]
	ldr r0, =gSpriteCoordOffsetY
	strh r5, [r0]
	b _081407F8
	.pool
_08140750:
	movs r1, 0x82
	lsls r1, 5
	movs r0, 0
	bl SetGpuReg
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	b _081407F8
_0814077A:
	movs r0, 0x1
	bl EnableInterrupts
	ldr r0, =sub_8140264
	bl SetVBlankCallback
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	movs r1, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginHardwarePaletteFade
	ldr r0, =sub_81408A8
	movs r1, 0
	bl CreateTask
	ldr r5, =gUnknown_0203AB88
	ldr r1, [r5]
	adds r1, 0xA4
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	movs r0, 0x6
	strh r0, [r4, 0x14]
	bl GetCoins
	strh r0, [r4, 0x22]
	bl GetCoins
	lsls r0, 16
	lsrs r0, 16
	bl sub_80EDE84
	ldr r0, =sub_8140814
	movs r1, 0x1
	bl CreateTask
	ldr r1, [r5]
	adds r1, 0xA5
	strb r0, [r1]
	ldr r0, =sub_8140238
	bl SetMainCallback2
	b _08140806
	.pool
_081407F8:
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_08140806:
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81405CC

	thumb_func_start sub_8140814
sub_8140814: @ 8140814
	push {r4-r6,lr}
	ldr r3, =gUnknown_0203AB88
	ldr r0, [r3]
	adds r0, 0x21
	ldrb r2, [r0]
	adds r1, r2, 0x1
	strb r1, [r0]
	ldr r1, [r3]
	adds r0, r1, 0
	adds r0, 0x23
	lsls r2, 24
	lsrs r2, 24
	adds r6, r3, 0
	ldrb r0, [r0]
	cmp r2, r0
	bne _0814085A
	adds r1, 0x21
	movs r0, 0
	strb r0, [r1]
	ldr r2, [r6]
	adds r3, r2, 0
	adds r3, 0x22
	ldrb r1, [r3]
	ldrh r0, [r2, 0x24]
	subs r0, r1
	strh r0, [r2, 0x24]
	lsls r0, 16
	cmp r0, 0
	bge _0814085A
	ldrb r1, [r3]
	movs r3, 0xB4
	lsls r3, 1
	adds r0, r3, 0
	subs r0, r1
	strh r0, [r2, 0x24]
_0814085A:
	adds r4, r6, 0
	ldr r0, [r4]
	ldrh r0, [r0, 0x24]
	bl Sin2
	lsls r0, 16
	lsrs r5, r0, 16
	ldr r0, [r4]
	ldrh r0, [r0, 0x24]
	bl Cos2
	lsls r0, 16
	lsrs r1, r0, 16
	lsls r0, r5, 16
	asrs r0, 16
	cmp r0, 0
	bge _0814087E
	adds r0, 0xF
_0814087E:
	lsls r0, 12
	lsrs r5, r0, 16
	ldr r3, [r6]
	lsls r0, r1, 16
	asrs r0, 16
	cmp r0, 0
	bge _0814088E
	adds r0, 0xF
_0814088E:
	asrs r0, 4
	strh r0, [r3, 0x32]
	strh r0, [r3, 0x2C]
	strh r5, [r3, 0x2E]
	lsls r0, r5, 16
	asrs r0, 16
	negs r0, r0
	strh r0, [r3, 0x30]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140814

	thumb_func_start sub_81408A8
sub_81408A8: @ 81408A8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl UpdatePaletteFade
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	bne _081408FE
	movs r1, 0x90
	lsls r1, 6
	movs r0, 0x50
	bl SetGpuReg
	ldr r1, =0x00000808
	movs r0, 0x52
	bl SetGpuReg
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	strh r5, [r0, 0x14]
	adds r0, r4, 0
	bl sub_8141FF4
	bl sub_8142070
	bl sub_8143A40
	movs r0, 0
	bl sub_81424FC
	movs r0, 0x6
	bl sub_814372C
	ldr r1, =sub_8140968
	ldr r2, =0x0000ffff
	adds r0, r4, 0
	movs r3, 0x3
	bl sub_8141F7C
_081408FE:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81408A8

	thumb_func_start sub_8140914
sub_8140914: @ 8140914
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_8197930
	ldr r5, =gUnknown_0203AB8C
	ldrb r0, [r5]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r5]
	ldr r2, =gUnknown_082A5C13
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r5]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =gUnknown_085B6410
	adds r0, r4, 0
	bl sub_8121F68
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140914

	thumb_func_start sub_8140968
sub_8140968: @ 8140968
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	movs r1, 0x1
	bl sub_819746C
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_8140BD0
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140968

	thumb_func_start sub_8140994
sub_8140994: @ 8140994
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0xA5
	ldrb r0, [r0]
	bl DestroyTask
	adds r0, r4, 0
	bl sub_8141DE4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140994

	thumb_func_start sub_81409B8
sub_81409B8: @ 81409B8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0xF
	bls _081409CA
	b _08140AE8
_081409CA:
	lsls r0, r4, 2
	ldr r1, =_081409D8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081409D8:
	.4byte _08140A18
	.4byte _08140A3C
	.4byte _08140A3C
	.4byte _08140A3C
	.4byte _08140A3C
	.4byte _08140A90
	.4byte _08140AE8
	.4byte _08140AE8
	.4byte _08140AE8
	.4byte _08140AE8
	.4byte _08140A90
	.4byte _08140AE8
	.4byte _08140AE8
	.4byte _08140AE8
	.4byte _08140AE8
	.4byte _08140A90
_08140A18:
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	movs r1, 0xBE
	lsls r1, 1
	adds r0, r1
	movs r1, 0x10
	str r1, [sp]
	movs r1, 0xD
	str r1, [sp, 0x4]
	movs r1, 0
	movs r2, 0xE
	movs r3, 0x7
	bl sub_8152008
	b _08140B4E
	.pool
_08140A3C:
	lsls r0, r4, 1
	adds r0, r4
	adds r0, 0xE
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r5, =gUnknown_0203AB88
	ldr r0, [r5]
	movs r4, 0xBE
	lsls r4, 1
	adds r0, r4
	movs r1, 0x10
	str r1, [sp]
	movs r6, 0xD
	str r6, [sp, 0x4]
	movs r1, 0
	movs r2, 0xE
	movs r3, 0x7
	bl sub_8152008
	ldr r0, [r5]
	adds r4, r0, r4
	ldr r1, =0x0000397c
	adds r0, r1
	ldr r1, [r0]
	ldr r0, =0x00000232
	adds r1, r0
	movs r0, 0x3
	str r0, [sp]
	str r6, [sp, 0x4]
	adds r0, r4, 0
	mov r2, r8
	movs r3, 0x7
	bl sub_8152058
	b _08140B4E
	.pool
_08140A90:
	subs r0, r4, 0x1
	movs r1, 0x5
	bl __divsi3
	lsls r1, r0, 1
	adds r1, r0
	adds r1, 0xA
	lsls r1, 24
	lsrs r7, r1, 24
	ldr r5, =gUnknown_0203AB88
	ldr r0, [r5]
	movs r4, 0xBE
	lsls r4, 1
	adds r0, r4
	movs r6, 0x10
	str r6, [sp]
	movs r1, 0xD
	str r1, [sp, 0x4]
	movs r1, 0
	movs r2, 0xE
	movs r3, 0x7
	bl sub_8152008
	ldr r0, [r5]
	adds r4, r0, r4
	ldr r1, =0x0000397c
	adds r0, r1
	ldr r1, [r0]
	movs r0, 0xA0
	lsls r0, 2
	adds r1, r0
	str r6, [sp]
	movs r0, 0x3
	str r0, [sp, 0x4]
	adds r0, r4, 0
	movs r2, 0xE
	adds r3, r7, 0
	bl sub_8152058
	b _08140B4E
	.pool
_08140AE8:
	adds r0, r4, 0
	movs r1, 0x5
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 1
	adds r1, r0
	adds r1, 0xE
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	subs r0, r4, 0x1
	movs r1, 0x5
	bl __divsi3
	lsls r1, r0, 1
	adds r1, r0
	adds r1, 0x7
	lsls r1, 24
	lsrs r7, r1, 24
	ldr r5, =gUnknown_0203AB88
	ldr r0, [r5]
	movs r4, 0xBE
	lsls r4, 1
	adds r0, r4
	movs r1, 0x10
	str r1, [sp]
	movs r1, 0xD
	str r1, [sp, 0x4]
	movs r1, 0
	movs r2, 0xE
	movs r3, 0x7
	bl sub_8152008
	ldr r0, [r5]
	adds r4, r0, r4
	ldr r1, =0x0000397c
	adds r0, r1
	ldr r1, [r0]
	movs r0, 0x88
	lsls r0, 2
	adds r1, r0
	movs r0, 0x3
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r4, 0
	mov r2, r8
	adds r3, r7, 0
	bl sub_8152058
_08140B4E:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81409B8

	thumb_func_start sub_8140B64
sub_8140B64: @ 8140B64
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	ldrb r0, [r4, 0x10]
	bl sub_81436D0
	ldrb r0, [r4, 0x10]
	bl sub_81409B8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140B64

	thumb_func_start sub_8140B8C
sub_8140B8C: @ 8140B8C
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0203AB88
	ldr r2, [r5]
	movs r6, 0
	movs r1, 0x1
	strh r1, [r2, 0x28]
	ldr r1, =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	ldrb r0, [r4, 0x10]
	bl sub_81409B8
	ldr r0, [r5]
	adds r0, 0x23
	movs r1, 0x2
	strb r1, [r0]
	ldr r0, [r5]
	adds r0, 0x21
	strb r6, [r0]
	ldr r0, =sub_8141040
	str r0, [r4]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140B8C

	thumb_func_start sub_8140BD0
sub_8140BD0: @ 8140BD0
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r1, =gUnknown_0203AB88
	ldr r0, [r1]
	ldr r2, [r0, 0x8]
	movs r0, 0x20
	ands r0, r2
	cmp r0, 0
	beq _08140C30
	movs r3, 0xB
	ldr r5, =gUnknown_085B6154
	adds r0, r5, 0
	adds r0, 0xE4
	ldr r0, [r0]
	ands r2, r0
	ldr r0, =gTasks
	mov r12, r0
	lsls r7, r6, 2
	cmp r2, 0
	beq _08140C6E
	adds r4, r1, 0
	adds r5, 0x8
_08140BFE:
	lsls r0, r3, 16
	movs r1, 0x80
	lsls r1, 9
	adds r0, r1
	lsrs r3, r0, 16
	asrs r2, r0, 16
	cmp r2, 0xD
	bgt _08140C6E
	ldr r1, [r4]
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	adds r0, r5
	ldr r1, [r1, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	bne _08140BFE
	b _08140C6E
	.pool
_08140C30:
	movs r3, 0x6
	ldr r5, =gUnknown_085B6154
	adds r0, r5, 0
	adds r0, 0x80
	ldr r0, [r0]
	ands r2, r0
	ldr r0, =gTasks
	mov r12, r0
	lsls r7, r6, 2
	cmp r2, 0
	beq _08140C6E
	adds r4, r1, 0
	adds r5, 0x8
_08140C4A:
	lsls r0, r3, 16
	movs r1, 0x80
	lsls r1, 9
	adds r0, r1
	lsrs r3, r0, 16
	asrs r2, r0, 16
	cmp r2, 0x9
	bgt _08140C6E
	ldr r1, [r4]
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 2
	adds r0, r5
	ldr r1, [r1, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	bne _08140C4A
_08140C6E:
	adds r4, r7, r6
	lsls r4, 3
	add r4, r12
	movs r5, 0
	strh r3, [r4, 0x10]
	adds r0, r6, 0
	bl sub_8141FF4
	ldrb r0, [r4, 0x10]
	bl sub_81424FC
	ldrb r0, [r4, 0x10]
	bl sub_81436D0
	ldrb r0, [r4, 0x10]
	bl sub_8142284
	strh r5, [r4, 0xA]
	ldr r0, =sub_8140B8C
	str r0, [r4]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140BD0

	thumb_func_start sub_8140CA8
sub_8140CA8: @ 8140CA8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r1, 24
	lsrs r5, r1, 24
	movs r6, 0
	movs r7, 0
	ldr r1, =gUnknown_085B641E
	mov r0, sp
	movs r2, 0x4
	bl memcpy
	ldrb r0, [r4]
	mov r8, r0
	cmp r5, 0
	blt _08140D1C
	cmp r5, 0x1
	bgt _08140CF4
	movs r1, 0
	ldrsh r0, [r4, r1]
	movs r1, 0x5
	bl __modsi3
	lsls r0, 24
	lsrs r6, r0, 24
	movs r2, 0xF0
	lsls r2, 20
	adds r1, r0, r2
	lsrs r7, r1, 24
	cmp r0, 0
	bne _08140D1C
	movs r6, 0x5
	b _08140D1C
	.pool
_08140CF4:
	cmp r5, 0x3
	bgt _08140D1C
	movs r1, 0
	ldrsh r0, [r4, r1]
	movs r1, 0x5
	bl __divsi3
	lsls r0, 16
	asrs r0, 16
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 24
	lsrs r6, r1, 24
	movs r2, 0x80
	lsls r2, 19
	adds r0, r1, r2
	lsrs r7, r0, 24
	cmp r1, 0
	bne _08140D1C
	movs r6, 0x1
_08140D1C:
	mov r1, sp
	adds r0, r1, r5
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	ldrh r2, [r4]
	adds r0, r2
	strh r0, [r4]
	lsls r1, r6, 24
	asrs r3, r1, 24
	lsls r0, 16
	asrs r0, 16
	lsls r2, r7, 24
	cmp r0, r3
	bge _08140D3E
	asrs r0, r2, 24
	strh r0, [r4]
_08140D3E:
	movs r0, 0
	ldrsh r1, [r4, r0]
	asrs r0, r2, 24
	cmp r1, r0
	ble _08140D4A
	strh r3, [r4]
_08140D4A:
	mov r1, r8
	lsls r0, r1, 24
	movs r2, 0
	ldrsh r1, [r4, r2]
	asrs r0, 24
	cmp r1, r0
	bne _08140D5C
	movs r0, 0
	b _08140D5E
_08140D5C:
	movs r0, 0x1
_08140D5E:
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8140CA8

	thumb_func_start sub_8140D6C
sub_8140D6C: @ 8140D6C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 24
	lsrs r7, r0, 24
	movs r0, 0
	mov r9, r0
	movs r5, 0
	ldr r4, =gMain
	ldrh r1, [r4, 0x2E]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _08140DA8
	movs r5, 0x1
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r0, r1
	adds r0, 0x8
	movs r1, 0
	bl sub_8140CA8
	lsls r0, 24
	cmp r0, 0
	bne _08140DA8
	b _08140F3A
_08140DA8:
	ldrh r1, [r4, 0x2E]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _08140DCE
	movs r5, 0x1
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r0, r1
	adds r0, 0x8
	movs r1, 0x1
	bl sub_8140CA8
	lsls r0, 24
	cmp r0, 0
	bne _08140DCE
	b _08140F3A
_08140DCE:
	ldrh r1, [r4, 0x2E]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _08140DF4
	movs r5, 0x1
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r0, r1
	adds r0, 0x8
	movs r1, 0x2
	bl sub_8140CA8
	lsls r0, 24
	cmp r0, 0
	bne _08140DF4
	b _08140F3A
_08140DF4:
	ldrh r1, [r4, 0x2E]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _08140E1A
	movs r5, 0x1
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r0, r1
	adds r0, 0x8
	movs r1, 0x3
	bl sub_8140CA8
	lsls r0, 24
	cmp r0, 0
	bne _08140E1A
	b _08140F3A
_08140E1A:
	cmp r5, 0
	bne _08140E20
	b _08140F3A
_08140E20:
	ldr r0, =gTasks
	lsls r6, r7, 2
	adds r4, r6, r7
	lsls r4, 3
	adds r4, r0
	ldrb r0, [r4, 0x10]
	bl sub_81424FC
	adds r0, r7, 0
	bl sub_8140B64
	mov r1, r9
	strh r1, [r4, 0xA]
	movs r0, 0x5
	bl PlaySE
	ldr r5, =gUnknown_0203AB88
	ldr r0, [r5]
	adds r0, 0xB8
	ldr r1, =0x0000ffff
	bl sub_8151A9C
	ldr r5, [r5]
	movs r2, 0xB8
	lsls r2, 1
	adds r3, r5, r2
	ldrb r2, [r3]
	movs r1, 0x7F
	adds r0, r1, 0
	ands r0, r2
	strb r0, [r3]
	movs r0, 0xB2
	lsls r0, 1
	adds r3, r5, r0
	ldrb r2, [r3]
	adds r0, r1, 0
	ands r0, r2
	strb r0, [r3]
	movs r0, 0xAC
	lsls r0, 1
	adds r2, r5, r0
	ldrb r0, [r2]
	ands r1, r0
	strb r1, [r2]
	ldrb r0, [r4, 0x10]
	bl sub_8142284
	movs r4, 0
	mov r9, r6
	ldr r1, =gSprites
	mov r12, r1
	movs r2, 0x8
	add r2, r12
	mov r10, r2
_08140E8C:
	ldr r0, =gUnknown_0203AB88
	ldr r5, [r0]
	adds r0, r4, 0
	adds r0, 0x29
	adds r6, r5, 0
	adds r6, 0x3C
	adds r0, r6, r0
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	mov r1, r12
	adds r3, r0, r1
	adds r2, r3, 0
	adds r2, 0x40
	add r0, r10
	ldr r0, [r0]
	ldr r0, [r0]
	ldrh r1, [r0]
	ldrh r2, [r2]
	adds r1, r2
	ldr r2, =0x000003ff
	mov r8, r2
	mov r0, r8
	ands r1, r0
	ldrh r2, [r3, 0x4]
	ldr r0, =0xfffffc00
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x4]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _08140E8C
	ldr r0, =gTasks
	mov r2, r9
	adds r1, r2, r7
	lsls r1, 3
	adds r1, r0
	ldrh r3, [r1, 0x10]
	subs r0, r3, 0x1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x3
	bhi _08140F3A
	ldr r2, =gUnknown_085B6154
	movs r0, 0x10
	ldrsh r1, [r1, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r2, 0x8
	adds r0, r2
	ldr r1, [r5, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	bne _08140F3A
	subs r0, r3, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	adds r0, 0x29
	adds r0, r6, r0
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r3, r0, r1
	adds r2, r3, 0
	adds r2, 0x40
	adds r1, 0x8
	adds r0, r1
	ldr r0, [r0]
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldrh r2, [r2]
	adds r1, r2
	mov r2, r8
	ands r1, r2
	ldrh r2, [r3, 0x4]
	ldr r0, =0xfffffc00
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x4]
_08140F3A:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140D6C

	thumb_func_start sub_8140F6C
sub_8140F6C: @ 8140F6C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_80EECA4
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	movs r0, 0xFF
	strh r0, [r1, 0x28]
	ldrb r2, [r1, 0x19]
	cmp r2, 0x1
	bne _08140F90
	adds r0, r1, 0
	adds r0, 0x23
	strb r2, [r0]
	b _08140F96
	.pool
_08140F90:
	adds r1, 0x23
	movs r0, 0
	strb r0, [r1]
_08140F96:
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x21
	movs r1, 0
	strb r1, [r0]
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	movs r1, 0x20
	strh r1, [r0, 0xA]
	ldr r1, =sub_81410FC
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140F6C

	thumb_func_start sub_8140FC4
sub_8140FC4: @ 8140FC4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =gUnknown_0203AB88
	ldr r2, [r4]
	ldrb r1, [r2, 0x1A]
	lsls r1, 28
	lsrs r1, 28
	adds r2, 0x1B
	adds r2, r1
	ldr r3, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r5, r1, r3
	ldrh r0, [r5, 0x10]
	strb r0, [r2]
	ldr r1, [r4]
	ldrb r0, [r1, 0x1A]
	lsls r0, 28
	lsrs r0, 28
	adds r1, 0x1B
	adds r1, r0
	ldrb r0, [r1]
	bl sub_8142758
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0xC]
	ldr r1, [r4]
	ldrb r0, [r1, 0x1A]
	lsls r0, 28
	lsrs r0, 28
	adds r1, 0x1B
	adds r1, r0
	ldrb r0, [r1]
	bl sub_81436D0
	ldr r0, [r4]
	ldrb r1, [r0, 0x19]
	ldrh r0, [r5, 0x22]
	subs r0, r1
	strh r0, [r5, 0x22]
	lsls r0, 16
	cmp r0, 0
	bge _08141024
	movs r0, 0
	strh r0, [r5, 0x22]
_08141024:
	ldrh r0, [r5, 0x22]
	bl sub_8143514
	ldr r0, =sub_8140F6C
	str r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8140FC4

	thumb_func_start sub_8141040
sub_8141040: @ 8141040
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r5, 0
	bl sub_8140D6C
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0x1E
	beq _08141076
	cmp r0, 0x1E
	bgt _0814106C
	cmp r0, 0
	beq _08141072
	b _0814108A
	.pool
_0814106C:
	cmp r0, 0x3B
	beq _08141084
	b _0814108A
_08141072:
	ldrb r0, [r4, 0x10]
	b _08141078
_08141076:
	movs r0, 0
_08141078:
	bl sub_81409B8
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	b _0814109A
_08141084:
	movs r0, 0
	strh r0, [r4, 0xA]
	b _0814109A
_0814108A:
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	strh r0, [r1, 0xA]
_0814109A:
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081410F2
	ldr r0, =gUnknown_0203AB88
	ldr r3, [r0]
	ldr r2, =gUnknown_085B6154
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r0, 0x10
	ldrsh r1, [r4, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r2, 0x8
	adds r0, r2
	ldr r1, [r3, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	beq _081410E8
	movs r0, 0x16
	bl PlaySE
	b _081410F2
	.pool
_081410E8:
	movs r0, 0x5F
	bl m4aSongNumStart
	ldr r0, =sub_8140FC4
	str r0, [r4]
_081410F2:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141040

	thumb_func_start sub_81410FC
sub_81410FC: @ 81410FC
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
	ldrh r0, [r4, 0xA]
	subs r1, r0, 0x1
	strh r1, [r4, 0xA]
	lsls r0, 16
	cmp r0, 0
	ble _08141168
	lsls r0, r1, 16
	asrs r0, 16
	cmp r0, 0x2
	ble _08141128
	ldr r1, =gSpriteCoordOffsetX
	ldrh r0, [r1]
	adds r0, 0x2
	strh r0, [r1]
_08141128:
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	ldrh r0, [r1, 0x26]
	adds r0, 0x4
	strh r0, [r1, 0x26]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x68
	bne _08141180
	ldr r2, =gSprites
	adds r0, r1, 0
	adds r0, 0x55
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, =SpriteCallbackDummy
	str r1, [r0]
	b _08141180
	.pool
_08141168:
	movs r0, 0x1
	movs r1, 0xFF
	bl sub_8142E70
	movs r0, 0x1
	movs r1, 0xFF
	bl sub_8143038
	ldr r0, =sub_8141344
	str r0, [r4]
	movs r0, 0
	strh r0, [r4, 0xA]
_08141180:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81410FC

	thumb_func_start sub_814118C
sub_814118C: @ 814118C
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r4, r0, 16
	lsls r1, 16
	lsrs r1, 16
	ldr r0, =gUnknown_0203AB88
	ldr r3, [r0]
	ldrb r2, [r3, 0x2]
	adds r5, r0, 0
	cmp r2, 0x2
	bgt _081411AC
	cmp r2, 0x1
	bge _081411B2
	b _08141280
	.pool
_081411AC:
	cmp r2, 0x3
	beq _08141214
	b _08141280
_081411B2:
	ldr r0, =gLocalTime
	ldrb r0, [r0, 0x2]
	subs r0, 0x4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bhi _081411E4
	cmp r4, 0xB
	bls _081411CC
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08141296
_081411CC:
	ldr r0, =gUnknown_085B6348
	ldrb r1, [r3, 0x4]
	lsls r1, 30
	lsrs r1, 25
	adds r1, r0
	ldrb r0, [r1, 0x2]
	lsrs r0, 1
	b _0814133A
	.pool
_081411E4:
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _08141200
	ldr r0, =gUnknown_085B6348
	ldrb r1, [r3, 0x4]
	lsls r1, 30
	lsrs r1, 25
	adds r1, r0
	ldrb r0, [r1, 0x2]
	lsrs r0, 1
	b _0814133A
	.pool
_08141200:
	ldr r0, =gUnknown_085B6348
	ldrb r1, [r3, 0x4]
	lsls r1, 30
	lsrs r1, 25
	adds r1, r0
	ldrb r0, [r1, 0x2]
	b _0814133A
	.pool
_08141214:
	ldr r0, =gLocalTime
	ldrb r0, [r0, 0x2]
	subs r0, 0x4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x6
	bhi _08141248
	cmp r4, 0x5
	bls _0814122E
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08141296
_0814122E:
	ldr r0, =gUnknown_085B6348
	ldrb r1, [r3, 0x4]
	lsls r1, 30
	lsrs r1, 25
	adds r1, r0
	ldrb r0, [r1, 0x2]
	lsrs r0, 1
	b _0814133A
	.pool
_08141248:
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08141268
	cmp r4, 0x6
	bls _08141268
	ldr r0, =gUnknown_085B6348
	ldrb r1, [r3, 0x4]
	lsls r1, 30
	lsrs r1, 25
	adds r1, r0
	ldrb r0, [r1, 0x2]
	lsrs r0, 2
	b _0814133A
	.pool
_08141268:
	ldr r1, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrb r0, [r0, 0x2]
	lsrs r0, 1
	b _0814133A
	.pool
_08141280:
	ldr r0, =gLocalTime
	ldrb r0, [r0, 0x2]
	subs r0, 0x4
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bhi _081412B8
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081412A0
_08141296:
	movs r0, 0x1
	b _0814133A
	.pool
_081412A0:
	ldr r1, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrb r0, [r0, 0x2]
	lsrs r0, 1
	b _0814133A
	.pool
_081412B8:
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081412F0
	cmp r4, 0xC
	bls _081412DC
	ldr r1, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrb r0, [r0, 0x2]
	lsrs r0, 1
	b _0814133A
	.pool
_081412DC:
	ldr r1, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrb r0, [r0, 0x2]
	b _0814133A
	.pool
_081412F0:
	movs r0, 0x80
	lsls r0, 8
	ands r0, r1
	cmp r0, 0
	beq _08141328
	cmp r4, 0xC
	bls _08141314
	ldr r1, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrb r0, [r0, 0x2]
	b _0814133A
	.pool
_08141314:
	ldr r1, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrb r0, [r0, 0x1]
	b _0814133A
	.pool
_08141328:
	ldr r1, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrb r0, [r0, 0x1]
	lsls r0, 25
	lsrs r0, 24
_0814133A:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814118C

	thumb_func_start sub_8141344
sub_8141344: @ 8141344
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	movs r4, 0
	ldr r1, =gUnknown_085B6422
	mov r0, sp
	movs r2, 0x8
	bl memcpy
	bl Random
	lsls r0, 16
	lsrs r7, r0, 16
	adds r0, r7, 0
	movs r1, 0x64
	bl __umodsi3
	lsls r0, 16
	lsrs r6, r0, 16
	ldr r3, =gUnknown_0203AB88
	ldr r0, [r3]
	ldr r2, =gTasks
	mov r5, r10
	lsls r1, r5, 2
	add r1, r10
	lsls r1, 3
	adds r1, r2
	ldrh r2, [r1, 0x14]
	adds r0, 0x7C
	strb r2, [r0]
	ldr r0, [r3]
	adds r2, r0, 0
	adds r2, 0x7F
	strb r4, [r2]
	subs r2, 0x1
	strb r4, [r2]
	adds r0, 0x7D
	strb r4, [r0]
	ldrh r0, [r1, 0x18]
	adds r1, r7, 0
	bl sub_814118C
	adds r4, r0, 0
	lsls r4, 24
	lsrs r1, r4, 24
	adds r0, r7, 0
	bl __modsi3
	lsrs r4, 25
	subs r0, r4
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gLocalTime
	ldrb r0, [r0, 0x2]
	lsls r0, 24
	asrs r0, 24
	movs r5, 0x1
	cmp r0, 0xC
	bgt _081413C8
	movs r5, 0
_081413C8:
	cmp r6, 0x4F
	bhi _081413E0
	lsls r0, r5, 25
	b _081413EA
	.pool
_081413E0:
	lsls r1, r5, 24
	asrs r1, 24
	movs r0, 0x1
	subs r0, r1
	lsls r0, 25
_081413EA:
	lsrs r5, r0, 24
	ldr r0, _08141530  @ =gUnknown_0203AB88
	ldr r6, [r0]
	ldrb r0, [r6, 0x4]
	lsls r0, 30
	lsrs r0, 25
	ldr r1, _08141534  @ =gUnknown_085B6348
	adds r0, r1
	lsls r4, 24
	asrs r4, 24
	ldrh r0, [r0, 0x1A]
	adds r4, r0
	adds r0, r6, 0
	adds r0, 0x80
	strh r4, [r0]
	lsls r4, 16
	asrs r4, 16
	adds r0, r4, 0
	bl __floatsisf
	cmp r4, 0
	bge _0814141C
	ldr r1, _08141538  @ =0x47800000
	bl __addsf3
_0814141C:
	ldr r1, _0814153C  @ =0x40A00000
	bl __divsf3
	bl __fixunssfsi
	lsls r0, 16
	lsrs r4, r0, 16
	lsls r0, r4, 1
	adds r0, r4
	movs r2, 0x82
	adds r2, r6
	mov r8, r2
	strh r0, [r2]
	adds r0, r6, 0
	adds r0, 0x84
	strh r4, [r0]
	adds r0, 0x2
	strh r4, [r0]
	movs r0, 0x88
	adds r0, r6
	mov r9, r0
	movs r0, 0x1
	ands r0, r7
	lsls r1, r5, 24
	asrs r1, 24
	adds r0, r1
	lsls r0, 1
	add r0, sp
	movs r1, 0
	ldrsh r4, [r0, r1]
	adds r0, r4, 0
	bl __floatsisf
	cmp r4, 0
	bge _08141468
	ldr r1, _08141538  @ =0x47800000
	bl __addsf3
_08141468:
	mov r2, r9
	str r0, [r2]
	adds r7, r6, 0
	adds r7, 0x8C
	ldrb r0, [r6, 0x4]
	lsls r0, 30
	lsrs r0, 25
	ldr r5, _08141534  @ =gUnknown_085B6348
	adds r0, r5
	movs r1, 0x18
	ldrsh r4, [r0, r1]
	adds r0, r4, 0
	bl __floatsisf
	adds r5, r0, 0
	cmp r4, 0
	bge _08141492
	ldr r1, _08141538  @ =0x47800000
	bl __addsf3
	adds r5, r0, 0
_08141492:
	str r5, [r7]
	adds r7, r6, 0
	adds r7, 0x90
	ldr r1, _08141540  @ =0x3F000000
	adds r0, r5, 0
	bl __mulsf3
	adds r1, r5, 0
	bl __subsf3
	adds r5, r0, 0
	mov r2, r8
	movs r0, 0
	ldrsh r4, [r2, r0]
	adds r0, r4, 0
	bl __floatsisf
	adds r2, r0, 0
	cmp r4, 0
	bge _081414C2
	ldr r1, _08141538  @ =0x47800000
	bl __addsf3
	adds r2, r0, 0
_081414C2:
	adds r0, r5, 0
	adds r1, r2, 0
	bl __divsf3
	str r0, [r7]
	adds r1, r6, 0
	adds r1, 0x94
	ldr r0, _08141544  @ =0x42880000
	str r0, [r1]
	adds r1, 0x8
	ldr r0, _08141548  @ =0x00000000
	str r0, [r1]
	adds r5, r6, 0
	adds r5, 0x98
	mov r1, r8
	movs r2, 0
	ldrsh r4, [r1, r2]
	adds r0, r4, 0
	bl __floatsisf
	adds r2, r0, 0
	cmp r4, 0
	bge _081414F8
	ldr r1, _08141538  @ =0x47800000
	bl __addsf3
	adds r2, r0, 0
_081414F8:
	ldr r0, _0814154C  @ =0x41000000
	adds r1, r2, 0
	bl __divsf3
	bl __negsf2
	str r0, [r5]
	adds r1, r6, 0
	adds r1, 0xA0
	ldr r0, _08141550  @ =0x42100000
	str r0, [r1]
	ldr r1, _08141554  @ =gTasks
	mov r5, r10
	lsls r0, r5, 2
	add r0, r10
	lsls r0, 3
	adds r0, r1
	ldr r1, _08141558  @ =sub_814155C
	str r1, [r0]
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08141530:
	.4byte gUnknown_0203AB88
_08141534:
	.4byte gUnknown_085B6348
_08141538:
	.4byte 0x47800000
_0814153C:
	.4byte 0x40A00000
_08141540:
	.4byte 0x3F000000
_08141544:
	.4byte 0x42880000
_08141548:
	.4byte 0x00000000
_0814154C:
	.4byte 0x41000000
_08141550:
	.4byte 0x42100000
_08141554:
	.4byte gTasks
_08141558:
	.4byte sub_814155C
	thumb_func_end sub_8141344

	thumb_func_start sub_814155C
sub_814155C: @ 814155C
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r4, =gUnknown_0203AB88
	ldr r3, [r4]
	ldrb r1, [r3, 0x3]
	movs r2, 0x80
	orrs r1, r2
	strb r1, [r3, 0x3]
	ldr r3, [r4]
	adds r2, r3, 0
	adds r2, 0x7C
	adds r1, r3, 0
	adds r1, 0x3C
	ldrb r2, [r2]
	adds r1, r2
	ldrb r2, [r1]
	lsls r1, r2, 4
	adds r1, r2
	lsls r1, 2
	ldr r2, =gSprites
	adds r1, r2
	str r1, [r3, 0x38]
	ldr r2, =sub_81446AC
	str r2, [r1, 0x1C]
	ldr r1, =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	ldrh r1, [r4, 0x14]
	adds r1, 0x1
	strh r1, [r4, 0x14]
	ldrh r0, [r4, 0x18]
	adds r0, 0x1
	strh r0, [r4, 0x18]
	movs r0, 0x6
	subs r0, r1
	lsls r0, 24
	lsrs r0, 24
	bl sub_814372C
	movs r0, 0x5C
	bl m4aSongNumStart
	ldr r0, =sub_81415D4
	str r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814155C

	thumb_func_start sub_81415D4
sub_81415D4: @ 81415D4
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r6, =gUnknown_0203AB88
	ldr r3, [r6]
	adds r0, r3, 0
	adds r0, 0x7D
	ldrb r0, [r0]
	cmp r0, 0
	beq _081416C6
	ldrb r1, [r3, 0x3]
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _08141614
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081416C6
	movs r0, 0x41
	negs r0, r0
	ands r0, r1
	strb r0, [r3, 0x3]
	ldr r2, [r6]
	ldrb r1, [r2, 0x3]
	movs r0, 0x21
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x3]
	b _081416C6
	.pool
_08141614:
	ldr r2, =gTasks
	lsls r1, r4, 2
	adds r0, r1, r4
	lsls r0, 3
	adds r5, r0, r2
	movs r2, 0xA
	ldrsh r0, [r5, r2]
	adds r7, r1, 0
	cmp r0, 0
	bne _08141660
	adds r0, r3, 0
	adds r0, 0x7E
	ldrb r1, [r0]
	adds r0, r4, 0
	bl sub_81420D0
	lsls r0, 24
	lsrs r0, 24
	ldr r2, [r6]
	ldrb r1, [r2, 0x1A]
	lsls r1, 28
	lsrs r1, 28
	adds r2, 0x1B
	adds r2, r1
	ldrb r1, [r2]
	bl sub_81421E8
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r5, 0x12]
	cmp r0, 0x1
	bne _08141660
	ldr r0, [r6]
	adds r0, 0xB8
	movs r1, 0x80
	lsls r1, 5
	bl sub_8151A48
_08141660:
	ldr r0, =gTasks
	adds r1, r7, r4
	lsls r1, 3
	adds r4, r1, r0
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0x3C
	bgt _08141690
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08141680
	movs r0, 0x3C
	strh r0, [r4, 0xA]
_08141680:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	b _081416C6
	.pool
_08141690:
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	ldrb r0, [r1, 0x1A]
	lsls r0, 28
	lsrs r0, 28
	adds r1, 0x1B
	adds r1, r0
	ldrb r0, [r1]
	bl sub_81424FC
	ldrh r1, [r4, 0x20]
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	bl sub_8142E70
	ldrb r1, [r4, 0x14]
	subs r1, 0x1
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	bl sub_8143038
	movs r0, 0x20
	strh r0, [r4, 0xA]
	ldr r0, =sub_81416D4
	str r0, [r4]
_081416C6:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81415D4

	thumb_func_start sub_81416D4
sub_81416D4: @ 81416D4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	ldrh r0, [r4, 0xA]
	subs r1, r0, 0x1
	strh r1, [r4, 0xA]
	lsls r0, 16
	cmp r0, 0
	ble _08141740
	lsls r0, r1, 16
	asrs r0, 16
	cmp r0, 0x2
	ble _08141700
	ldr r1, =gSpriteCoordOffsetX
	ldrh r0, [r1]
	subs r0, 0x2
	strh r0, [r1]
_08141700:
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	ldrh r0, [r1, 0x26]
	subs r0, 0x4
	strh r0, [r1, 0x26]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x68
	bne _08141768
	ldr r2, =gSprites
	adds r0, r1, 0
	adds r0, 0x55
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, =sub_814390C
	str r1, [r0]
	b _08141768
	.pool
_08141740:
	ldrh r0, [r4, 0x20]
	lsls r0, 24
	lsrs r0, 24
	bl sub_8143150
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	bne _08141756
	movs r0, 0x79
	b _08141758
_08141756:
	movs r0, 0x3D
_08141758:
	strh r0, [r4, 0xA]
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	ldr r0, =sub_8141778
	str r0, [r1]
_08141768:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81416D4

	thumb_func_start sub_8141778
sub_8141778: @ 8141778
	push {r4,lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r4, r0, r1
	ldrh r0, [r4, 0xA]
	subs r1, r0, 0x1
	strh r1, [r4, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x1
	ble _081417E8
	movs r0, 0xA
	ldrsh r1, [r4, r0]
	adds r0, r1, 0
	cmp r1, 0
	bge _081417A2
	adds r0, 0xF
_081417A2:
	asrs r0, 4
	lsls r0, 4
	subs r0, r1, r0
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	beq _081417CC
	cmp r0, 0x8
	bne _081417F4
	movs r0, 0
	movs r1, 0xFF
	bl sub_8142E70
	movs r0, 0
	movs r1, 0xFF
	bl sub_8143038
	b _081417F4
	.pool
_081417CC:
	ldrh r1, [r4, 0x20]
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	bl sub_8142E70
	ldrb r1, [r4, 0x14]
	subs r1, 0x1
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	bl sub_8143038
	b _081417F4
_081417E8:
	ldr r1, =sub_814189C
	adds r0, r2, 0
	movs r2, 0x1E
	movs r3, 0
	bl sub_8141F7C
_081417F4:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141778

	thumb_func_start sub_8141800
sub_8141800: @ 8141800
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r4, r0, r1
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _08141864
	cmp r0, 0
	blt _08141864
	cmp r0, 0x2
	bgt _08141864
	bl IsFanfareTaskInactive
	lsls r0, 24
	cmp r0, 0
	beq _08141888
	movs r0, 0x1D
	bl GetGameStat
	ldrh r1, [r4, 0x1E]
	adds r1, 0x1
	strh r1, [r4, 0x1E]
	lsls r1, 16
	asrs r1, 16
	cmp r0, r1
	bcs _08141848
	movs r0, 0x1E
	ldrsh r1, [r4, r0]
	movs r0, 0x1D
	bl SetGameStat
_08141848:
	ldr r1, =sub_8141A18
	ldr r2, =0x0000ffff
	adds r0, r5, 0
	movs r3, 0x3
	bl sub_8141F7C
	b _08141888
	.pool
_08141864:
	bl IsSEPlaying
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0
	bne _08141888
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	strh r2, [r0, 0x1E]
	ldr r1, =sub_8141AC0
	ldr r2, =0x0000ffff
	adds r0, r5, 0
	movs r3, 0x3
	bl sub_8141F7C
_08141888:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141800

	thumb_func_start sub_814189C
sub_814189C: @ 814189C
	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 r2, 0x12
	ldrsh r1, [r0, r2]
	cmp r1, 0
	beq _08141928
	cmp r1, 0
	blt _08141928
	cmp r1, 0x2
	bgt _08141928
	movs r1, 0xC
	ldrsh r0, [r0, r1]
	cmp r0, 0xC
	bne _081418EC
	ldr r0, =0x00000185
	bl PlayFanfare
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5BD7
	b _08141902
	.pool
_081418EC:
	movs r0, 0xC3
	lsls r0, 1
	bl PlayFanfare
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5BCB
_08141902:
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	b _08141958
	.pool
_08141928:
	movs r0, 0x20
	bl m4aSongNumStart
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5BE0
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
_08141958:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0
	strh r1, [r0, 0xA]
	ldr r1, =sub_8141800
	str r1, [r0]
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814189C

	thumb_func_start sub_8141984
sub_8141984: @ 8141984
	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 r4, r0, r1
	movs r0, 0x16
	ldrsh r5, [r4, r0]
	cmp r5, 0
	beq _081419AC
	cmp r5, 0x3
	beq _081419DC
	ldrh r0, [r4, 0x16]
	adds r0, 0x1
	b _081419E4
	.pool
_081419AC:
	ldrh r0, [r4, 0x22]
	adds r0, 0x1
	strh r0, [r4, 0x22]
	movs r0, 0x15
	bl m4aSongNumStart
	ldrh r0, [r4, 0x22]
	bl sub_8143514
	movs r2, 0x22
	ldrsh r1, [r4, r2]
	ldr r0, =0x0000270e
	cmp r1, r0
	ble _081419D0
	strh r5, [r4, 0xA]
	b _081419E6
	.pool
_081419D0:
	ldrh r0, [r4, 0xA]
	subs r0, 0x1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0x16]
	adds r0, 0x1
	b _081419E4
_081419DC:
	movs r0, 0x15
	bl m4aSongNumStop
	movs r0, 0
_081419E4:
	strh r0, [r4, 0x16]
_081419E6:
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r1, r0
	movs r2, 0xA
	ldrsh r0, [r1, r2]
	cmp r0, 0
	bne _08141A04
	ldr r1, =sub_8141AC0
	ldr r2, =0x0000ffff
	adds r0, r6, 0
	movs r3, 0x3
	bl sub_8141F7C
_08141A04:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141984

	thumb_func_start sub_8141A18
sub_8141A18: @ 8141A18
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	ldr r3, =gStringVar1
	ldr r1, =gUnknown_0203AB88
	mov r9, r1
	ldr r1, [r1]
	ldrb r2, [r1, 0x19]
	ldr r1, =gTasks
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	adds r4, r1
	movs r1, 0xC
	ldrsh r0, [r4, r1]
	adds r1, r2, 0
	muls r1, r0
	adds r0, r3, 0
	movs r2, 0
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r2, =gStringVar4
	mov r8, r2
	ldr r1, =gUnknown_082A5BEF
	mov r0, r8
	bl StringExpandPlaceholders
	ldr r5, =gUnknown_0203AB8C
	ldrb r0, [r5]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r5]
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r6, 0
	str r6, [sp, 0x8]
	movs r1, 0x1
	mov r2, r8
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r5]
	movs r1, 0x3
	bl CopyWindowToVram
	mov r1, r9
	ldr r0, [r1]
	ldrb r1, [r0, 0x19]
	movs r2, 0xC
	ldrsh r0, [r4, r2]
	muls r0, r1
	strh r0, [r4, 0xA]
	strh r6, [r4, 0x16]
	ldr r0, =sub_8141984
	str r0, [r4]
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141A18

	thumb_func_start sub_8141AC0
sub_8141AC0: @ 8141AC0
	push {r4-r6,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r5, =gUnknown_0203AB88
	ldr r0, [r5]
	adds r0, 0xB8
	ldr r1, =0x0000ffff
	bl sub_8151A9C
	ldr r6, [r5]
	movs r0, 0xB8
	lsls r0, 1
	adds r3, r6, r0
	ldrb r2, [r3]
	movs r1, 0x7F
	adds r0, r1, 0
	ands r0, r2
	strb r0, [r3]
	movs r0, 0xB2
	lsls r0, 1
	adds r3, r6, r0
	ldrb r2, [r3]
	adds r0, r1, 0
	ands r0, r2
	strb r0, [r3]
	movs r0, 0xAC
	lsls r0, 1
	adds r2, r6, r0
	ldrb r0, [r2]
	ands r1, r0
	strb r1, [r2]
	ldr r6, =gSprites
	ldr r2, [r5]
	ldr r5, =gUnknown_085B6154
	ldr r0, =gTasks
	lsls r3, r4, 2
	adds r3, r4
	lsls r3, 3
	adds r3, r0
	movs r0, 0x20
	ldrsh r1, [r3, r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrb r0, [r0]
	adds r2, r0
	adds r2, 0x43
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	ldr r0, =sub_8141B58
	str r0, [r3]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141AC0

	thumb_func_start sub_8141B58
sub_8141B58: @ 8141B58
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r6, r0, 24
	movs r5, 0
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	movs r2, 0
	strh r5, [r0, 0x10]
	ldr r4, =gUnknown_0203AB88
	ldr r1, [r4]
	ldrb r0, [r1, 0x1A]
	lsls r0, 28
	lsrs r0, 28
	adds r1, 0x1B
	adds r1, r0
	strb r2, [r1]
	movs r0, 0
	bl sub_81424FC
	ldr r3, =gSprites
	ldr r0, [r4]
	adds r0, 0x6C
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	adds r7, r3, 0
	movs r0, 0x8
	adds r0, r7
	mov r12, r0
	ldr r1, =0xfffffc00
	mov r8, r1
_08141BB0:
	ldr r0, =gUnknown_0203AB88
	ldr r4, [r0]
	adds r0, r4, r5
	adds r0, 0x65
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r3, r0, r7
	adds r2, r3, 0
	adds r2, 0x40
	add r0, r12
	ldr r0, [r0]
	ldr r0, [r0]
	ldrh r1, [r0]
	ldrh r2, [r2]
	adds r1, r2
	ldr r2, =0x000003ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r2, [r3, 0x4]
	mov r0, r8
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x4]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _08141BB0
	ldr r0, =gTasks
	lsls r1, r6, 2
	adds r1, r6
	lsls r1, 3
	adds r2, r1, r0
	movs r1, 0x22
	ldrsh r0, [r2, r1]
	ldrb r4, [r4, 0x19]
	cmp r0, r4
	blt _08141CBC
	movs r1, 0x14
	ldrsh r0, [r2, r1]
	cmp r0, 0x6
	bne _08141C58
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5C21
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =dp01t_12_3_battle_menu
	b _08141C8E
	.pool
_08141C58:
	movs r0, 0x22
	ldrsh r1, [r2, r0]
	ldr r0, =0x0000270f
	cmp r1, r0
	bne _08141CB0
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5C61
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =sub_8140914
_08141C8E:
	ldr r2, =0x0000ffff
	adds r0, r6, 0
	movs r3, 0x3
	bl sub_8141F7C
	b _08141CF2
	.pool
_08141CB0:
	ldr r0, =sub_8140914
	str r0, [r2]
	b _08141CF2
	.pool
_08141CBC:
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5C04
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =sub_8140994
	adds r0, r6, 0
	movs r2, 0x3C
	movs r3, 0x3
	bl sub_8141F7C
_08141CF2:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141B58

	thumb_func_start dp01t_12_3_battle_menu
dp01t_12_3_battle_menu: @ 8141D0C
	push {r4-r7,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	strh r4, [r0, 0x14]
	adds r0, r5, 0
	bl sub_8141FF4
	bl sub_8142070
	bl sub_8143A40
	movs r0, 0
	bl sub_81424FC
	movs r0, 0x6
	bl sub_814372C
	ldr r7, =gSprites
	ldr r3, =gUnknown_0203AB88
	movs r6, 0x5
	negs r6, r6
_08141D44:
	ldr r0, [r3]
	adds r0, r4
	adds r0, 0x43
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	adds r1, 0x3E
	ldrb r2, [r1]
	adds r0, r6, 0
	ands r0, r2
	strb r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0xB
	bls _08141D44
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r2, r0, r1
	movs r0, 0x22
	ldrsh r1, [r2, r0]
	ldr r0, =0x0000270f
	cmp r1, r0
	bne _08141DD4
	ldr r4, =gUnknown_0203AB8C
	ldrb r0, [r4]
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldrb r0, [r4]
	ldr r2, =gUnknown_082A5C61
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =sub_8140914
	ldr r2, =0x0000ffff
	adds r0, r5, 0
	movs r3, 0x3
	bl sub_8141F7C
	b _08141DD8
	.pool
_08141DD4:
	ldr r0, =sub_8140914
	str r0, [r2]
_08141DD8:
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end dp01t_12_3_battle_menu

	thumb_func_start sub_8141DE4
sub_8141DE4: @ 8141DE4
	push {r4,r5,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r4, =gUnknown_0203AB88
	ldr r0, [r4]
	adds r0, 0xB8
	ldr r1, =0x0000ffff
	bl sub_8151A9C
	ldr r0, [r4]
	adds r0, 0xB8
	bl sub_8151678
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldrh r0, [r0, 0x22]
	bl SetCoins
	bl GetCoins
	ldr r1, [r4]
	lsls r0, 16
	lsrs r0, 16
	ldrb r1, [r1, 0x19]
	cmp r0, r1
	bcs _08141E38
	ldr r1, =gSpecialVar_0x8004
	movs r0, 0x1
	b _08141E3C
	.pool
_08141E38:
	ldr r1, =gSpecialVar_0x8004
	movs r0, 0
_08141E3C:
	strh r0, [r1]
	bl GetCoins
	lsls r0, 16
	lsrs r0, 16
	bl sub_80EDD78
	movs r0, 0
	str r0, [sp]
	movs r0, 0xFF
	movs r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginHardwarePaletteFade
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_8141E7C
	str r1, [r0]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141DE4

	thumb_func_start sub_8141E7C
sub_8141E7C: @ 8141E7C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	bl UpdatePaletteFade
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0
	bne _08141EDE
	movs r0, 0
	bl SetVBlankCallback
	ldr r1, =gSpriteCoordOffsetX
	ldr r0, =gSpriteCoordOffsetY
	strh r4, [r0]
	strh r4, [r1]
	bl ResetVramOamAndBgCntRegs
	bl ResetAllBgsCoordinates
	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 FreeAllSpritePalettes
	bl ResetPaletteFade
	bl ResetSpriteData
	bl sub_8140418
	ldr r1, =gFieldCallback
	ldr r0, =sub_80AF168
	str r0, [r1]
	ldr r0, =CB2_ReturnToField
	bl SetMainCallback2
	adds r0, r5, 0
	bl DestroyTask
_08141EDE:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141E7C

	thumb_func_start sub_8141EF8
sub_8141EF8: @ 8141EF8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gUnknown_0203AB88
	ldr r3, [r1]
	adds r0, r3, 0
	adds r0, 0xA8
	ldrh r0, [r0]
	adds r5, r1, 0
	cmp r0, 0
	beq _08141F1E
	ldr r0, =gMain
	adds r2, r3, 0
	adds r2, 0xAA
	ldrh r1, [r0, 0x2E]
	ldrh r0, [r2]
	ands r0, r1
	cmp r0, 0
	beq _08141F52
_08141F1E:
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	adds r1, r3, 0
	adds r1, 0xAC
	ldr r1, [r1]
	str r1, [r0]
	adds r0, r3, 0
	adds r0, 0xAA
	ldrh r0, [r0]
	cmp r0, 0
	beq _08141F40
	movs r0, 0x5
	bl PlaySE
_08141F40:
	ldr r2, [r5]
	adds r0, r2, 0
	adds r0, 0xAC
	movs r1, 0
	str r1, [r0]
	subs r0, 0x2
	strh r1, [r0]
	subs r0, 0x2
	strh r1, [r0]
_08141F52:
	ldr r0, [r5]
	adds r1, r0, 0
	adds r1, 0xA8
	ldrh r2, [r1]
	ldr r0, =0x0000ffff
	cmp r2, r0
	beq _08141F64
	subs r0, r2, 0x1
	strh r0, [r1]
_08141F64:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141EF8

	thumb_func_start sub_8141F7C
sub_8141F7C: @ 8141F7C
	push {r4-r7,lr}
	adds r5, r1, 0
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r2, 16
	lsrs r4, r2, 16
	lsls r3, 16
	lsrs r7, r3, 16
	ldr r2, =gUnknown_0203AB88
	ldr r0, [r2]
	mov r12, r0
	mov r3, r12
	adds r3, 0xB4
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r0, [r0]
	str r0, [r3]
	adds r3, r1, 0
	cmp r5, 0
	bne _08141FAC
	adds r5, r0, 0
_08141FAC:
	mov r0, r12
	adds r0, 0xAC
	str r5, [r0]
	subs r0, 0x4
	strh r4, [r0]
	ldr r0, =0x0000ffff
	cmp r4, r0
	bne _08141FD8
	cmp r7, 0
	bne _08141FD8
	mov r1, r12
	adds r1, 0xAA
	ldrh r0, [r1]
	orrs r4, r0
	strh r4, [r1]
	b _08141FDE
	.pool
_08141FD8:
	ldr r0, [r2]
	adds r0, 0xAA
	strh r7, [r0]
_08141FDE:
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r3
	ldr r1, =sub_8141EF8
	str r1, [r0]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141F7C

	thumb_func_start sub_8141FF4
sub_8141FF4: @ 8141FF4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
	ldr r3, =gUnknown_0203AB88
	ldr r0, [r3]
	strb r4, [r0]
	ldr r2, [r3]
	ldrb r1, [r2, 0x3]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x3]
	ldr r2, [r3]
	ldrb r1, [r2, 0x3]
	movs r0, 0x21
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x3]
	ldr r2, [r3]
	ldrb r1, [r2, 0x3]
	movs r0, 0x41
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x3]
	ldr r2, [r3]
	ldrb r1, [r2, 0x3]
	movs r0, 0x20
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x3]
	ldr r6, =gTasks
	adds r2, r3, 0
	movs r1, 0
_08142036:
	ldr r0, [r2]
	adds r0, 0x1B
	adds r0, r4
	strb r1, [r0]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _08142036
	ldr r2, [r3]
	ldrb r1, [r2, 0x1A]
	movs r0, 0x10
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x1A]
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r6
	movs r1, 0
	strh r1, [r0, 0xA]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8141FF4

	thumb_func_start sub_8142070
sub_8142070: @ 8142070
	push {lr}
	ldr r2, =gUnknown_0203AB88
	ldr r1, [r2]
	movs r0, 0
	str r0, [r1, 0x8]
	movs r1, 0
	movs r3, 0
_0814207E:
	ldr r0, [r2]
	adds r0, 0xC
	adds r0, r1
	strb r3, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x5
	bls _0814207E
	movs r1, 0
	ldr r3, =gUnknown_0203AB88
	movs r2, 0
_08142096:
	ldr r0, [r3]
	adds r0, 0x12
	adds r0, r1
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x3
	bls _08142096
	movs r1, 0
	ldr r3, =gUnknown_0203AB88
	movs r2, 0
_081420AE:
	ldr r0, [r3]
	adds r0, 0x16
	adds r0, r1
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x2
	bls _081420AE
	movs r0, 0x1
	movs r1, 0xFF
	bl sub_8143038
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142070

	thumb_func_start sub_81420D0
sub_81420D0: @ 81420D0
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x1C
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	mov r1, sp
	ldr r0, =gUnknown_085B642C
	ldm r0!, {r2,r3,r6}
	stm r1!, {r2,r3,r6}
	ldr r0, [r0]
	str r0, [r1]
	add r2, sp, 0x10
	adds r1, r2, 0
	ldr r0, =gUnknown_085B643C
	ldm r0!, {r3,r6,r7}
	stm r1!, {r3,r6,r7}
	mov r8, r2
	cmp r5, 0xB
	bls _0814210C
	movs r0, 0
	b _081421C8
	.pool
_0814210C:
	ldr r6, =gUnknown_0203AB88
	ldr r3, [r6]
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	movs r7, 0x14
	ldrsh r1, [r0, r7]
	adds r3, r1
	ldr r4, =gUnknown_085B62E4
	lsls r5, 3
	adds r2, r5, r4
	ldrb r1, [r2, 0x2]
	strb r1, [r3, 0xB]
	ldrb r1, [r2, 0x2]
	strh r1, [r0, 0x20]
	ldr r2, [r6]
	adds r0, r4, 0x4
	adds r0, r5, r0
	ldr r1, [r2, 0x8]
	ldr r0, [r0]
	orrs r1, r0
	str r1, [r2, 0x8]
	movs r3, 0
	mov r9, r4
	mov r12, r5
	adds r5, r0, 0
_08142144:
	lsls r0, r3, 2
	mov r1, sp
	adds r4, r1, r0
	ldr r0, [r4]
	ands r0, r5
	cmp r0, 0
	beq _0814215E
	ldr r1, [r6]
	adds r1, 0x12
	adds r1, r3
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_0814215E:
	ldr r2, [r6]
	adds r0, r2, 0
	adds r0, 0x12
	adds r0, r3
	ldrb r0, [r0]
	cmp r0, 0x2
	bls _08142174
	ldr r0, [r2, 0x8]
	ldr r1, [r4]
	orrs r0, r1
	str r0, [r2, 0x8]
_08142174:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _08142144
	movs r6, 0
	ldr r0, =gUnknown_085B62E4+0x4
	add r0, r12
	ldr r7, [r0]
	ldr r4, =gUnknown_0203AB88
	mov r5, r8
_0814218A:
	lsls r0, r6, 2
	adds r2, r5, r0
	ldr r0, [r2]
	ands r0, r7
	cmp r0, 0
	beq _081421A2
	ldr r1, [r4]
	adds r1, 0x16
	adds r1, r6
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_081421A2:
	ldr r3, [r4]
	adds r0, r3, 0
	adds r0, 0x16
	adds r0, r6
	ldrb r0, [r0]
	cmp r0, 0x3
	bls _081421B8
	ldr r0, [r3, 0x8]
	ldr r1, [r2]
	orrs r0, r1
	str r0, [r3, 0x8]
_081421B8:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x2
	bls _0814218A
	mov r0, r12
	add r0, r9
	ldrb r0, [r0, 0x2]
_081421C8:
	add sp, 0x1C
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81420D0

	thumb_func_start sub_81421E8
sub_81421E8: @ 81421E8
	push {lr}
	lsls r0, 24
	lsls r1, 24
	lsrs r2, r1, 24
	lsrs r3, r0, 24
	movs r1, 0xFF
	lsls r1, 24
	adds r0, r1
	lsrs r0, 24
	cmp r0, 0x12
	bhi _0814227C
	cmp r2, 0xF
	bhi _08142278
	lsls r0, r2, 2
	ldr r1, =_08142210
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08142210:
	.4byte _08142250
	.4byte _08142254
	.4byte _08142254
	.4byte _08142254
	.4byte _08142254
	.4byte _08142268
	.4byte _08142278
	.4byte _08142278
	.4byte _08142278
	.4byte _08142278
	.4byte _08142268
	.4byte _08142278
	.4byte _08142278
	.4byte _08142278
	.4byte _08142278
	.4byte _08142268
_08142250:
	movs r0, 0x3
	b _0814227E
_08142254:
	adds r0, r2, 0x5
	cmp r3, r0
	beq _08142274
	adds r0, 0x5
	cmp r3, r0
	beq _08142274
	adds r0, 0x5
	cmp r3, r0
	bne _0814227C
	b _08142274
_08142268:
	adds r0, r2, 0x1
	cmp r3, r0
	blt _0814227C
	adds r0, r2, 0x4
	cmp r3, r0
	bgt _0814227C
_08142274:
	movs r0, 0x1
	b _0814227E
_08142278:
	cmp r3, r2
	beq _08142274
_0814227C:
	movs r0, 0
_0814227E:
	pop {r1}
	bx r1
	thumb_func_end sub_81421E8

	thumb_func_start sub_8142284
sub_8142284: @ 8142284
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	lsls r0, 24
	lsrs r7, r0, 24
	movs r0, 0
	str r0, [sp, 0x18]
	cmp r7, 0xA
	beq _081422AA
	cmp r7, 0xA
	bgt _081422A6
	cmp r7, 0x5
	beq _081422AA
	b _0814230C
_081422A6:
	cmp r7, 0xF
	bne _0814230C
_081422AA:
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	adds r2, r7, 0x5
	ldr r1, =gUnknown_0203AB88
	mov r12, r1
	cmp r4, r2
	bge _081422E8
	ldr r0, [r1]
	ldr r3, =gUnknown_085B6154
	ldr r5, [r0, 0x8]
	adds r6, r3, 0
	adds r6, 0x8
_081422C4:
	lsls r0, r4, 2
	adds r0, r4
	lsls r1, r0, 2
	adds r0, r1, r6
	ldr r0, [r0]
	ands r0, r5
	cmp r0, 0
	bne _081422DE
	adds r0, r1, r3
	ldrh r0, [r0, 0x10]
	ldr r1, [sp, 0x18]
	orrs r1, r0
	str r1, [sp, 0x18]
_081422DE:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r2
	blt _081422C4
_081422E8:
	mov r2, r12
	ldr r0, [r2]
	adds r0, 0xB8
	ldr r1, =0x0000dfff
	ldr r3, [sp, 0x18]
	ands r3, r1
	str r3, [sp, 0x18]
	adds r1, r3, 0
	bl sub_8151A48
	b _081424E2
	.pool
_0814230C:
	mov r0, sp
	ldr r1, =gUnknown_085B63F0
	ldm r1!, {r2,r4,r5}
	stm r0!, {r2,r4,r5}
	ldm r1!, {r3-r5}
	stm r0!, {r3-r5}
	subs r0, r7, 0x1
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1
	mov r9, r1
	cmp r0, 0x3
	bhi _0814232A
	movs r2, 0x3
	mov r9, r2
_0814232A:
	adds r0, r7, 0
	movs r1, 0x5
	bl __udivsi3
	lsls r0, 24
	lsrs r0, 8
	ldr r3, =0xffff0000
	adds r0, r3
	lsrs r0, 16
	mov r8, r0
	adds r0, r7, 0
	movs r1, 0x5
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	beq _08142390
	cmp r0, 0x2
	bgt _08142368
	cmp r0, 0x1
	beq _0814237C
	ldr r4, =gUnknown_0203AB88
	mov r12, r4
	b _081423D4
	.pool
_08142368:
	cmp r0, 0x3
	beq _081423A4
	cmp r0, 0x4
	beq _081423B8
	ldr r5, =gUnknown_0203AB88
	mov r12, r5
	b _081423D4
	.pool
_0814237C:
	ldr r3, =gSprites
	ldr r2, =gUnknown_0203AB88
	ldr r0, [r2]
	adds r0, 0x43
	b _081423C0
	.pool
_08142390:
	ldr r3, =gSprites
	ldr r2, =gUnknown_0203AB88
	ldr r0, [r2]
	adds r0, 0x44
	b _081423C0
	.pool
_081423A4:
	ldr r3, =gSprites
	ldr r2, =gUnknown_0203AB88
	ldr r0, [r2]
	adds r0, 0x45
	b _081423C0
	.pool
_081423B8:
	ldr r3, =gSprites
	ldr r2, =gUnknown_0203AB88
	ldr r0, [r2]
	adds r0, 0x46
_081423C0:
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrb r0, [r0, 0x5]
	lsrs r0, 4
	lsls r0, 4
	mov r8, r0
	mov r12, r2
_081423D4:
	mov r0, r9
	cmp r0, 0x1
	bne _08142430
	mov r1, r12
	ldr r4, [r1]
	ldr r1, =gUnknown_085B6154
	lsls r2, r7, 2
	adds r0, r2, r7
	lsls r0, 2
	adds r1, 0x8
	adds r0, r1
	ldr r1, [r4, 0x8]
	ldr r0, [r0]
	ands r1, r0
	str r2, [sp, 0x1C]
	cmp r1, 0
	bne _081424E2
	adds r0, r7, 0
	movs r1, 0x5
	bl __udivsi3
	lsls r0, 24
	lsrs r0, 24
	subs r1, r0, 0x1
	lsls r1, 3
	mov r3, sp
	adds r2, r3, r1
	ldrh r1, [r2, 0x2]
	add r1, r8
	strh r1, [r2, 0x2]
	adds r1, r4, 0
	adds r1, 0xB8
	lsls r0, 3
	subs r0, 0x8
	adds r2, r3, r0
	adds r0, r1, 0
	movs r1, 0xD
	bl sub_815168C
	b _081424C4
	.pool
_08142430:
	movs r4, 0
	lsls r5, r7, 2
	str r5, [sp, 0x1C]
	ldr r0, =gUnknown_085B6154
	mov r10, r0
_0814243A:
	lsls r0, r4, 2
	adds r0, r4
	adds r0, r7, r0
	adds r0, 0x5
	lsls r0, 24
	lsrs r3, r0, 24
	mov r1, r12
	ldr r5, [r1]
	lsls r0, r3, 2
	adds r0, r3
	lsls r6, r0, 2
	mov r0, r10
	adds r0, 0x8
	adds r0, r6, r0
	ldr r1, [r5, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	bne _081424B0
	adds r0, r3, 0
	movs r1, 0x5
	bl __udivsi3
	lsls r0, 24
	lsrs r0, 24
	subs r1, r0, 0x1
	lsls r1, 3
	mov r3, sp
	adds r2, r3, r1
	ldrh r1, [r2, 0x2]
	add r1, r8
	strh r1, [r2, 0x2]
	adds r3, r5, 0
	adds r3, 0xB8
	adds r1, r4, 0
	adds r1, 0xD
	lsls r1, 24
	lsrs r1, 24
	lsls r0, 3
	subs r0, 0x8
	mov r5, sp
	adds r2, r5, r0
	adds r0, r3, 0
	bl sub_815168C
	mov r0, r9
	cmp r0, 0x3
	bne _081424A2
	mov r1, r10
	adds r0, r6, r1
	ldrh r0, [r0, 0x10]
	str r0, [sp, 0x18]
_081424A2:
	mov r0, r9
	subs r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	ldr r2, =gUnknown_0203AB88
	mov r12, r2
_081424B0:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x2
	bls _0814243A
	mov r3, r9
	cmp r3, 0x2
	beq _081424C4
	movs r4, 0
	str r4, [sp, 0x18]
_081424C4:
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0xB8
	ldr r2, =gUnknown_085B6154
	ldr r5, [sp, 0x1C]
	adds r1, r5, r7
	lsls r1, 2
	adds r1, r2
	ldrh r1, [r1, 0x10]
	ldr r2, [sp, 0x18]
	orrs r2, r1
	str r2, [sp, 0x18]
	adds r1, r2, 0
	bl sub_8151A48
_081424E2:
	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_8142284

	thumb_func_start sub_81424FC
sub_81424FC: @ 81424FC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r4, =gUnknown_0203AB88
	ldr r1, [r4]
	movs r0, 0x1
	strh r0, [r1, 0x2A]
	movs r0, 0
	movs r1, 0
	bl sub_8142E70
	ldr r1, [r4]
	ldr r2, =0x0000117c
	adds r0, r1, r2
	ldr r2, =0x0000397c
	adds r1, r2
	ldr r1, [r1]
	movs r2, 0x10
	str r2, [sp]
	movs r2, 0xD
	str r2, [sp, 0x4]
	movs r2, 0xE
	movs r3, 0x7
	bl sub_8152058
	cmp r5, 0xF
	bhi _081425FC
	lsls r0, r5, 2
	ldr r1, =_08142558
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08142558:
	.4byte _08142738
	.4byte _08142598
	.4byte _08142598
	.4byte _08142598
	.4byte _08142598
	.4byte _081425CC
	.4byte _081425FC
	.4byte _081425FC
	.4byte _081425FC
	.4byte _081425FC
	.4byte _081425CC
	.4byte _081425FC
	.4byte _081425FC
	.4byte _081425FC
	.4byte _081425FC
	.4byte _081425CC
_08142598:
	movs r0, 0x4
	str r0, [sp, 0x18]
	add r1, sp, 0x8
	movs r0, 0
	strb r0, [r1]
	adds r0, r1, 0
	ldrb r0, [r0]
	cmp r0, 0x3
	bhi _08142604
	add r4, sp, 0x10
	adds r3, r1, 0
_081425AE:
	ldrb r2, [r3]
	adds r2, r4
	ldrb r1, [r3]
	lsls r0, r1, 2
	adds r0, r1
	adds r0, r5, r0
	strb r0, [r2]
	ldrb r0, [r3]
	adds r0, 0x1
	strb r0, [r3]
	ldrb r0, [r3]
	ldr r1, [sp, 0x18]
	cmp r0, r1
	bcc _081425AE
	b _08142604
_081425CC:
	movs r2, 0x5
	str r2, [sp, 0x18]
	add r1, sp, 0x8
	movs r0, 0
	strb r0, [r1]
	adds r0, r1, 0
	ldrb r0, [r0]
	cmp r0, 0x4
	bhi _08142604
	add r3, sp, 0x10
	adds r2, r1, 0
_081425E2:
	ldrb r1, [r2]
	adds r1, r3
	ldrb r0, [r2]
	adds r0, r5, r0
	strb r0, [r1]
	ldrb r0, [r2]
	adds r0, 0x1
	strb r0, [r2]
	ldrb r0, [r2]
	ldr r1, [sp, 0x18]
	cmp r0, r1
	bcc _081425E2
	b _08142604
_081425FC:
	movs r2, 0x1
	str r2, [sp, 0x18]
	add r0, sp, 0x10
	strb r5, [r0]
_08142604:
	add r1, sp, 0x8
	movs r0, 0
	strb r0, [r1]
	adds r0, r1, 0
	ldrb r0, [r0]
	ldr r1, [sp, 0x18]
	cmp r0, r1
	bcc _08142616
	b _08142738
_08142616:
	mov r2, sp
	adds r2, 0xE
	str r2, [sp, 0x1C]
	add r0, sp, 0x10
	mov r10, r0
	add r1, sp, 0x8
	mov r9, r1
	subs r2, 0x4
	str r2, [sp, 0x20]
_08142628:
	mov r1, r9
	ldrb r0, [r1]
	add r0, r10
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	ldr r2, =gUnknown_085B6154
	adds r0, r2
	ldrb r0, [r0, 0x6]
	ldr r1, [sp, 0x1C]
	strb r0, [r1]
	mov r2, r9
	ldrb r0, [r2]
	add r0, r10
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	ldr r1, =gUnknown_085B6154
	adds r0, r1
	ldrb r0, [r0, 0x3]
	ldr r2, [sp, 0x20]
	strh r0, [r2]
	mov r7, sp
	adds r7, 0x9
	movs r0, 0
	strb r0, [r7]
	ldrb r0, [r7]
	cmp r0, 0x2
	bhi _08142726
	add r6, sp, 0xC
	mov r8, r2
	ldr r0, [sp, 0x1C]
	mov r12, r0
	ldr r1, =gUnknown_0203AB88
	str r1, [sp, 0x28]
_08142672:
	mov r2, r9
	ldrb r0, [r2]
	add r0, r10
	ldrb r0, [r0]
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	ldr r0, =gUnknown_085B6154
	adds r1, r0
	str r7, [sp, 0x24]
	ldrb r0, [r7]
	ldrb r1, [r1, 0x4]
	adds r0, r1
	lsls r0, 5
	strh r0, [r6]
	ldr r1, [sp, 0x28]
	ldr r4, [r1]
	mov r2, r8
	ldrh r0, [r2]
	ldrh r2, [r6]
	adds r2, r0
	lsls r2, 1
	ldr r0, =0x0000117c
	adds r5, r4, r0
	adds r2, r5, r2
	mov r1, r12
	ldrb r0, [r1]
	ldrb r1, [r7]
	adds r1, r0
	ldr r0, =0x0000397c
	adds r4, r0
	ldr r3, [r4]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 1
	adds r0, r3
	movs r1, 0xD0
	lsls r1, 1
	adds r0, r1
	ldrh r0, [r0]
	strh r0, [r2]
	mov r2, r8
	ldrh r0, [r2]
	ldrh r2, [r6]
	adds r2, r0
	adds r2, 0x1
	lsls r2, 1
	adds r2, r5, r2
	mov r1, r12
	ldrb r0, [r1]
	ldrb r1, [r7]
	adds r1, r0
	ldr r3, [r4]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 1
	adds r0, r3
	movs r1, 0xD1
	lsls r1, 1
	adds r0, r1
	ldrh r0, [r0]
	strh r0, [r2]
	mov r2, r8
	ldrh r1, [r2]
	ldrh r0, [r6]
	adds r0, r1
	adds r0, 0x2
	lsls r0, 1
	adds r5, r0
	mov r1, r12
	ldrb r0, [r1]
	ldrb r1, [r7]
	adds r1, r0
	ldr r2, [r4]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 1
	adds r0, r2
	movs r2, 0xD2
	lsls r2, 1
	adds r0, r2
	ldrh r0, [r0]
	strh r0, [r5]
	ldrb r0, [r7]
	adds r0, 0x1
	strb r0, [r7]
	ldr r1, [sp, 0x24]
	ldrb r0, [r1]
	cmp r0, 0x2
	bls _08142672
_08142726:
	mov r2, r9
	ldrb r0, [r2]
	adds r0, 0x1
	strb r0, [r2]
	ldrb r0, [r2]
	ldr r1, [sp, 0x18]
	cmp r0, r1
	bcs _08142738
	b _08142628
_08142738:
	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_81424FC

	thumb_func_start sub_8142758
sub_8142758: @ 8142758
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gUnknown_085B6448
	mov r0, sp
	movs r2, 0x5
	bl memcpy
	cmp r4, 0x13
	bls _08142770
	movs r4, 0
_08142770:
	ldr r3, =gUnknown_085B6154
	lsls r0, r4, 2
	adds r0, r4
	lsls r2, r0, 2
	adds r0, r2, r3
	ldrb r0, [r0, 0x1]
	lsls r0, 28
	lsrs r0, 28
	cmp r0, 0x4
	beq _081427C4
	cmp r0, 0x4
	bgt _08142798
	cmp r0, 0x3
	beq _0814279E
	b _08142808
	.pool
_08142798:
	cmp r0, 0xC
	beq _081427E8
	b _08142808
_0814279E:
	adds r0, r4, 0
	movs r1, 0x5
	bl __udivsi3
	subs r0, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x16
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0x3
	bhi _08142808
	ldrb r0, [r1]
	adds r0, 0x1
	b _081427DC
	.pool
_081427C4:
	subs r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x12
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0x2
	bhi _08142808
	ldrb r0, [r1]
	adds r0, 0x2
_081427DC:
	add r0, sp
	ldrb r0, [r0]
	b _0814280A
	.pool
_081427E8:
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	adds r0, r3, 0
	adds r0, 0x8
	adds r0, r2, r0
	ldr r1, [r1, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	bne _08142808
	mov r0, sp
	ldrb r0, [r0, 0x4]
	b _0814280A
	.pool
_08142808:
	movs r0, 0
_0814280A:
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8142758

	thumb_func_start sub_8142814
sub_8142814: @ 8142814
	push {r4-r6,lr}
	ldr r4, =gUnknown_0203AB88
	ldr r0, [r4]
	ldrh r1, [r0, 0x2C]
	movs r0, 0x20
	bl SetGpuReg
	ldr r0, [r4]
	ldrh r1, [r0, 0x2E]
	movs r0, 0x22
	bl SetGpuReg
	ldr r0, [r4]
	ldrh r1, [r0, 0x30]
	movs r0, 0x24
	bl SetGpuReg
	ldr r0, [r4]
	ldrh r1, [r0, 0x32]
	movs r0, 0x26
	bl SetGpuReg
	ldr r3, [r4]
	movs r0, 0x2E
	ldrsh r1, [r3, r0]
	ldr r0, =gSpriteCoordOffsetY
	movs r4, 0
	ldrsh r2, [r0, r4]
	adds r2, 0x50
	adds r0, r1, 0
	muls r0, r2
	movs r4, 0xE8
	lsls r4, 7
	subs r4, r0
	movs r6, 0x2C
	ldrsh r5, [r3, r6]
	ldr r0, =gSpriteCoordOffsetX
	movs r6, 0
	ldrsh r1, [r0, r6]
	adds r1, 0x74
	adds r0, r5, 0
	muls r0, r1
	subs r4, r0
	movs r5, 0x32
	ldrsh r0, [r3, r5]
	muls r0, r2
	movs r5, 0xA8
	lsls r5, 7
	subs r5, r0
	movs r6, 0x30
	ldrsh r0, [r3, r6]
	muls r0, r1
	subs r5, r0
	lsls r1, r4, 16
	lsrs r1, 16
	movs r0, 0x28
	bl SetGpuReg
	ldr r6, =0x0fff0000
	ands r4, r6
	lsrs r4, 16
	movs r0, 0x2A
	adds r1, r4, 0
	bl SetGpuReg
	lsls r1, r5, 16
	lsrs r1, 16
	movs r0, 0x2C
	bl SetGpuReg
	ands r5, r6
	lsrs r5, 16
	movs r0, 0x2E
	adds r1, r5, 0
	bl SetGpuReg
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142814

	thumb_func_start sub_81428C4
sub_81428C4: @ 81428C4
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl sub_8197930
	ldr r1, =gUnknown_085B6408
	adds r0, r4, 0
	bl sub_8121F68
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81428C4

	thumb_func_start sub_81428E4
sub_81428E4: @ 81428E4
	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 _08142908
	movs r0, 0
	bl SetVBlankCallback
	ldr r0, =sub_81405CC
	bl SetMainCallback2
	adds r0, r4, 0
	bl DestroyTask
_08142908:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81428E4

	thumb_func_start sub_8142918
sub_8142918: @ 8142918
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	movs r1, 0x1
	bl sub_819746C
	bl HideCoinsWindow
	bl FreeAllWindowBuffers
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r2, =gPaletteFade
	ldrb r1, [r2, 0x8]
	lsls r1, 26
	lsrs r1, 26
	ldrb r3, [r2, 0x4]
	movs r0, 0x40
	negs r0, r0
	ands r0, r3
	orrs r0, r1
	strb r0, [r2, 0x4]
	bl UpdatePaletteFade
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81428E4
	str r1, [r0]
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142918

	thumb_func_start sub_814297C
sub_814297C: @ 814297C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0
	movs r1, 0
	bl sub_819746C
	bl HideCoinsWindow
	bl ScriptContext2_Disable
	adds r0, r4, 0
	bl DestroyTask
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_814297C

	thumb_func_start sub_81429A0
sub_81429A0: @ 81429A0
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldrh r1, [r0, 0x8]
	adds r1, 0x1
	strh r1, [r0, 0x8]
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _081429DE
	ldr r1, =gSpecialVar_0x8004
	movs r0, 0x1
	strh r0, [r1]
	bl HideCoinsWindow
	movs r0, 0
	movs r1, 0x1
	bl sub_819746C
	bl ScriptContext2_Disable
	adds r0, r4, 0
	bl DestroyTask
_081429DE:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81429A0

	thumb_func_start sub_81429F0
sub_81429F0: @ 81429F0
	push {r4-r6,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _08142A60
	ldr r2, =gUnknown_085B6344
	ldr r0, =gSpecialVar_0x8004
	ldrh r1, [r0]
	movs r5, 0x1
	adds r0, r5, 0
	ands r0, r1
	lsrs r1, 7
	lsls r1, 1
	adds r0, r1
	adds r0, r2
	ldrb r1, [r0]
	ldr r0, =gStringVar1
	movs r2, 0x2
	movs r3, 0x1
	bl ConvertIntToDecimalStringN
	ldr r4, =gStringVar4
	ldr r1, =gUnknown_082A5B12
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	str r5, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0
	bl PrintTextOnWindow
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =gTasks
	lsls r0, r6, 2
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81428C4
	str r1, [r0]
_08142A60:
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81429F0

	thumb_func_start sub_8142A88
sub_8142A88: @ 8142A88
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r6, r0, r1
	movs r1, 0x22
	ldrsh r0, [r6, r1]
	bl PrintCoinsString
	ldr r2, =gUnknown_085B6344
	ldr r0, =gSpecialVar_0x8004
	mov r8, r0
	ldrh r1, [r0]
	movs r7, 0x1
	adds r0, r7, 0
	ands r0, r1
	lsrs r1, 7
	lsls r1, 1
	adds r0, r1
	adds r0, r2
	ldrb r4, [r0]
	ldr r0, =gStringVar1
	adds r1, r4, 0
	movs r2, 0x2
	movs r3, 0x1
	bl ConvertIntToDecimalStringN
	movs r1, 0x22
	ldrsh r0, [r6, r1]
	cmp r0, r4
	blt _08142B78
	mov r0, r8
	ldrh r1, [r0]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _08142B28
	adds r0, r7, 0
	ands r0, r1
	cmp r0, 0
	beq _08142B28
	movs r0, 0
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	ldr r2, =gUnknown_082A5B6B
	str r7, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, =sub_81429F0
	str r0, [r6]
	b _08142BB0
	.pool
_08142B28:
	ldr r4, =gStringVar4
	ldr r1, =gUnknown_082A5B12
	adds r0, r4, 0
	bl StringExpandPlaceholders
	movs r0, 0
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r1, 0x1
	adds r2, r4, 0
	movs r3, 0
	bl PrintTextOnWindow
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_81428C4
	str r1, [r0]
	b _08142BB0
	.pool
_08142B78:
	ldr r5, =gStringVar4
	ldr r1, =gUnknown_082A5B4E
	adds r0, r5, 0
	bl StringExpandPlaceholders
	movs r0, 0
	movs r1, 0
	bl NewMenuHelpers_DrawStdWindowFrame
	str r7, [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, 0
	bl PrintTextOnWindow
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
	ldr r0, =sub_81429A0
	str r0, [r6]
	strh r4, [r6, 0x22]
	strh r4, [r6, 0x8]
_08142BB0:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142A88

	thumb_func_start sub_8142BC8
sub_8142BC8: @ 8142BC8
	push {r4,lr}
	bl ScriptContext2_Enable
	bl GetCoins
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x1
	movs r2, 0x1
	bl ShowCoinsWindow
	ldr r0, =sub_8142A88
	movs r1, 0
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl GetCoins
	ldr r2, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r2
	strh r0, [r1, 0x22]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142BC8

	thumb_func_start sub_8142C0C
sub_8142C0C: @ 8142C0C
	push {lr}
	lsls r0, 24
	cmp r0, 0
	bne _08142C44
	bl FreeAllSpritePalettes
	ldr r0, =gUnknown_085B7384
	bl LoadSpritePalettes
	ldr r0, =gUnknown_085B7864
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_085B7978
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_085B7A40
	bl LoadCompressedObjectPic
	b _08142C5A
	.pool
_08142C44:
	movs r0, 0xE
	bl FreeSpriteTilesByTag
	movs r0, 0xD
	bl FreeSpriteTilesByTag
	movs r0, 0xC
	bl FreeSpriteTilesByTag
	bl FreeAllSpritePalettes
_08142C5A:
	pop {r0}
	bx r0
	thumb_func_end sub_8142C0C

	thumb_func_start sub_8142C60
sub_8142C60: @ 8142C60
	push {r4-r6,lr}
	adds r4, r1, 0
	adds r6, r2, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r1, [r0, 0x4]
	ldrb r3, [r1]
	movs r1, 0x74
	movs r2, 0x50
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	adds r5, r0, 0
	ldr r0, =gSprites
	lsls r1, r5, 4
	adds r1, r5
	lsls r1, 2
	adds r1, r0
	ldrh r0, [r6]
	strh r0, [r1, 0x2E]
	strh r4, [r1, 0x30]
	adds r3, r1, 0
	adds r3, 0x3E
	ldrb r0, [r3]
	movs r2, 0x2
	orrs r0, r2
	strb r0, [r3]
	adds r1, 0x2C
	ldrb r0, [r1]
	movs r2, 0x40
	orrs r0, r2
	movs r2, 0x80
	orrs r0, r2
	strb r0, [r1]
	ldrh r2, [r6]
	adds r0, r2, 0
	adds r0, 0x1E
	strh r0, [r6]
	lsls r0, 16
	ldr r1, =0x01670000
	cmp r0, r1
	bls _08142CBC
	ldr r1, =0xfffffeb6
	adds r0, r2, r1
	strh r0, [r6]
_08142CBC:
	adds r0, r5, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8142C60

	thumb_func_start sub_8142CD0
sub_8142CD0: @ 8142CD0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	ldr r4, =gUnknown_085B7488
	ldr r0, [r4]
	ldr r5, =0x0201c000
	adds r1, r5, 0
	bl LZ77UnCompWram
	str r5, [sp]
	mov r6, sp
	ldrh r1, [r4, 0x6]
	lsls r1, 16
	ldrh r0, [r4, 0x4]
	orrs r0, r1
	str r0, [sp, 0x4]
	mov r0, sp
	bl LoadSpriteSheet
	ldr r4, =gUnknown_085B7490
	ldr r0, [r4]
	adds r1, r5, 0
	bl LZ77UnCompWram
	str r5, [sp]
	ldrh r0, [r4, 0x4]
	strh r0, [r6, 0x4]
	ldrh r0, [r4, 0x6]
	strh r0, [r6, 0x6]
	mov r0, sp
	bl LoadSpriteSheet
	movs r6, 0
	ldr r0, =gSprites
	mov r8, r0
_08142D18:
	lsls r0, r6, 1
	adds r0, r6
	lsls r0, 27
	lsrs r4, r0, 24
	movs r5, 0
	lsls r7, r6, 2
_08142D24:
	lsls r1, r5, 1
	adds r1, r5
	lsls r1, 3
	ldr r0, =gSpriteTemplate_85B75B0
	adds r0, r1, r0
	adds r1, 0x94
	adds r2, r4, 0
	adds r2, 0x5C
	movs r3, 0x1E
	bl CreateSprite
	ldr r1, =gUnknown_0203AB88
	ldr r1, [r1]
	adds r2, r5, 0
	adds r2, 0x1D
	adds r2, r7, r2
	adds r1, 0x3C
	adds r1, r2
	strb r0, [r1]
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r8
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x40
	orrs r1, r2
	strb r1, [r0]
	adds r0, r4, 0
	adds r0, 0x18
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x47
	bls _08142D6E
	movs r4, 0
_08142D6E:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _08142D24
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x2
	bls _08142D18
	movs r6, 0
	ldr r4, =gSprites
_08142D86:
	lsls r1, r6, 1
	adds r1, r6
	lsls r1, 3
	ldr r0, =gSpriteTemplate_85B7508
	adds r0, r1, r0
	adds r1, 0x94
	lsls r1, 16
	asrs r1, 16
	movs r2, 0x46
	movs r3, 0x1E
	bl CreateSprite
	ldr r1, =gUnknown_0203AB88
	ldr r1, [r1]
	adds r1, r6
	adds r1, 0x65
	strb r0, [r1]
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x40
	orrs r1, r2
	strb r1, [r0]
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bls _08142D86
	movs r6, 0
	ldr r4, =gSprites
_08142DCC:
	lsls r2, r6, 1
	adds r2, r6
	lsls r2, 3
	ldr r0, =gSpriteTemplate_85B7568
	adds r0, r2, r0
	adds r2, 0x5C
	lsls r2, 16
	asrs r2, 16
	movs r1, 0x7E
	movs r3, 0x1E
	bl CreateSprite
	ldr r1, =gUnknown_0203AB88
	ldr r1, [r1]
	adds r1, r6
	adds r1, 0x69
	strb r0, [r1]
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x40
	orrs r1, r2
	strb r1, [r0]
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x2
	bls _08142DCC
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142CD0

	thumb_func_start sub_8142E3C
sub_8142E3C: @ 8142E3C
	push {r4,lr}
	movs r4, 0
_08142E40:
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, r4
	adds r0, 0x59
	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, 0xB
	bls _08142E40
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142E3C

	thumb_func_start sub_8142E70
sub_8142E70: @ 8142E70
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r12, r1
	cmp r0, 0
	beq _08142EC0
	cmp r0, 0x1
	bne _08142F66
	movs r4, 0
	ldr r5, =gSprites
	ldr r3, =gUnknown_0203AB88
	movs r2, 0x4
_08142E92:
	ldr r0, [r3]
	adds r0, r4
	adds r0, 0x59
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x12
	bls _08142E92
	b _08142F66
	.pool
_08142EC0:
	movs r4, 0
	ldr r0, =gUnknown_0203AB88
	mov r9, r0
	ldr r7, =gUnknown_085B62E4
	adds r1, r7, 0x4
	mov r8, r1
	ldr r5, =gSprites
	movs r6, 0x5
	negs r6, r6
_08142ED2:
	mov r0, r9
	ldr r2, [r0]
	lsls r3, r4, 3
	mov r1, r8
	adds r0, r3, r1
	ldr r1, [r2, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	beq _08142F14
	adds r0, r3, r7
	ldrb r0, [r0, 0x2]
	cmp r0, r12
	beq _08142F14
	adds r0, r2, r4
	adds r0, 0x59
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	b _08142F2C
	.pool
_08142F14:
	adds r0, r2, r4
	adds r0, 0x59
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r5
	adds r1, 0x3E
	ldrb r2, [r1]
	adds r0, r6, 0
	ands r0, r2
	strb r0, [r1]
_08142F2C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0xB
	bls _08142ED2
	cmp r4, 0x12
	bhi _08142F66
	ldr r6, =gSprites
	ldr r3, =gUnknown_0203AB88
	movs r5, 0x5
	negs r5, r5
_08142F42:
	ldr r0, [r3]
	adds r0, r4
	adds r0, 0x59
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r6
	adds r1, 0x3E
	ldrb r2, [r1]
	adds r0, r5, 0
	ands r0, r2
	strb r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x12
	bls _08142F42
_08142F66:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142E70

	thumb_func_start sub_8142F7C
sub_8142F7C: @ 8142F7C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r5, 0
	ldr r6, =gUnknown_0203AB88
	ldr r4, =gSprites
	movs r0, 0x4
	mov r8, r0
_08142F8C:
	ldr r0, =gSpriteTemplate_85B7928
	movs r1, 0x74
	movs r2, 0x14
	movs r3, 0xA
	bl CreateSprite
	ldr r1, [r6]
	adds r3, r5, 0
	adds r3, 0x31
	adds r1, 0x3C
	adds r1, r3
	strb r0, [r1]
	ldr r0, [r6]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r1, [r0]
	mov r2, r8
	orrs r1, r2
	strb r1, [r0]
	ldr r2, [r6]
	adds r2, 0x3C
	adds r2, r3
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	movs r1, 0x1
	strh r1, [r0, 0x2E]
	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, =sub_814390C
	str r1, [r0]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	ldrb r1, [r0, 0x5]
	movs r7, 0xD
	negs r7, r7
	adds r2, r7, 0
	ands r1, r2
	mov r2, r8
	orrs r1, r2
	strb r1, [r0, 0x5]
	ldr r0, [r6]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	movs r1, 0x8
	bl StartSpriteAnim
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x5
	bls _08142F8C
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8142F7C

	thumb_func_start sub_8143038
sub_8143038: @ 8143038
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	movs r6, 0
	cmp r0, 0
	beq _08143084
	ldr r4, =gSprites
	ldr r3, =gUnknown_0203AB88
	movs r2, 0x4
_08143056:
	ldr r0, [r3]
	adds r0, r6
	adds r0, 0x6D
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x5
	bls _08143056
	b _08143142
	.pool
_08143084:
	ldr r0, =gUnknown_0203AB88
	mov r8, r0
	ldr r7, =gSprites
	ldr r0, =gUnknown_085B6154
	mov r12, r0
	movs r0, 0x5
	negs r0, r0
	mov r10, r0
_08143094:
	mov r0, r8
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0xC
	adds r0, r6
	ldrb r0, [r0]
	cmp r0, 0
	beq _081430A8
	cmp r6, r9
	bne _081430D0
_081430A8:
	adds r0, r1, r6
	adds r0, 0x6D
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	b _08143138
	.pool
_081430D0:
	adds r5, r6, 0
	adds r5, 0x31
	adds r0, r1, 0
	adds r0, 0x3C
	adds r0, r5
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	adds r1, 0x3E
	ldrb r2, [r1]
	mov r0, r10
	ands r0, r2
	strb r0, [r1]
	mov r0, r8
	ldr r3, [r0]
	adds r4, r3, 0
	adds r4, 0x3C
	adds r4, r5
	ldrb r0, [r4]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r7
	adds r3, 0xC
	adds r3, r6
	ldrb r1, [r3]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	add r0, r12
	ldrb r0, [r0, 0x3]
	adds r0, 0x1
	lsls r0, 3
	adds r0, 0x4
	strh r0, [r2, 0x20]
	ldrb r0, [r4]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r7
	ldrb r1, [r3]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	add r0, r12
	ldrb r0, [r0, 0x4]
	adds r0, 0x1
	lsls r0, 3
	adds r0, 0x3
	strh r0, [r2, 0x22]
_08143138:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x5
	bls _08143094
_08143142:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8143038

	thumb_func_start sub_8143150
sub_8143150: @ 8143150
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	bne _08143180
	ldr r2, =gSprites
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x6C
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	b _081431D0
	.pool
_08143180:
	ldr r4, =gSprites
	ldr r3, =gUnknown_0203AB88
	ldr r0, [r3]
	adds r0, 0x6C
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r2, [r0]
	movs r1, 0x5
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	ldr r3, [r3]
	adds r3, 0x6C
	ldrb r0, [r3]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	ldr r0, =gUnknown_085B6154
	lsls r2, r5, 2
	adds r2, r5
	lsls r2, 2
	adds r2, r0
	ldrb r0, [r2, 0x3]
	adds r0, 0x2
	lsls r0, 3
	strh r0, [r1, 0x20]
	ldrb r0, [r3]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	ldrb r0, [r2, 0x4]
	adds r0, 0x2
	lsls r0, 3
	strh r0, [r1, 0x22]
_081431D0:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8143150

	thumb_func_start sub_81431E4
sub_81431E4: @ 81431E4
	push {r4-r7,lr}
	sub sp, 0xC
	ldr r4, =gUnknown_085B741C
	ldr r0, [r4]
	ldr r5, =0x0201c000
	adds r1, r5, 0
	bl LZ77UnCompWram
	str r5, [sp, 0x4]
	add r0, sp, 0x4
	ldrh r2, [r4, 0x6]
	lsls r2, 16
	ldrh r1, [r4, 0x4]
	orrs r1, r2
	str r1, [r0, 0x4]
	bl LoadSpriteSheet
	movs r1, 0xF
	mov r0, sp
	strh r1, [r0]
	movs r0, 0
	ldr r7, =gSprites
_08143210:
	movs r4, 0
	adds r6, r0, 0x1
	lsls r5, r0, 2
_08143216:
	adds r1, r5, r4
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	ldr r1, =gSpriteTemplate_85B7610
	adds r0, r1
	movs r1, 0x28
	mov r2, sp
	bl sub_8142C60
	ldr r1, =gUnknown_0203AB88
	ldr r1, [r1]
	adds r2, r4, 0x7
	adds r2, r5, r2
	adds r1, 0x3C
	adds r1, r2
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r7
	adds r1, 0x2C
	ldrb r0, [r1]
	movs r2, 0x40
	orrs r0, r2
	movs r2, 0x80
	orrs r0, r2
	strb r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _08143216
	lsls r0, r6, 24
	lsrs r0, 24
	cmp r0, 0x2
	bls _08143210
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81431E4

	thumb_func_start sub_8143280
sub_8143280: @ 8143280
	push {r4-r6,lr}
	adds r6, r0, 0
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	ldrh r0, [r6, 0x2E]
	ldrh r1, [r1, 0x24]
	adds r0, r1
	lsls r0, 16
	lsrs r4, r0, 16
	asrs r1, r0, 16
	ldr r0, =0x00000167
	cmp r1, r0
	ble _081432A2
	ldr r2, =0xfffffe98
	adds r0, r1, r2
	lsls r0, 16
	lsrs r4, r0, 16
_081432A2:
	adds r0, r4, 0
	bl Sin2
	lsls r0, 16
	lsrs r5, r0, 16
	adds r0, r4, 0
	bl Cos2
	lsls r2, r5, 16
	asrs r2, 16
	movs r3, 0x30
	ldrsh r1, [r6, r3]
	muls r1, r2
	asrs r1, 12
	strh r1, [r6, 0x24]
	lsls r0, 16
	asrs r4, r0, 16
	negs r1, r4
	movs r3, 0x30
	ldrsh r0, [r6, r3]
	muls r0, r1
	asrs r0, 12
	strh r0, [r6, 0x26]
	ldrb r0, [r6, 0x3]
	lsls r0, 26
	lsrs r3, r0, 27
	cmp r2, 0
	bge _081432DC
	adds r2, 0xF
_081432DC:
	lsls r0, r2, 12
	lsrs r5, r0, 16
	ldr r1, =gOamMatrices
	lsls r0, r3, 3
	adds r1, r0, r1
	adds r0, r4, 0
	cmp r0, 0
	bge _081432EE
	adds r0, 0xF
_081432EE:
	asrs r0, 4
	strh r0, [r1, 0x6]
	strh r0, [r1]
	strh r5, [r1, 0x2]
	lsls r0, r5, 16
	asrs r0, 16
	negs r0, r0
	strh r0, [r1, 0x4]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8143280

	thumb_func_start sub_8143314
sub_8143314: @ 8143314
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	movs r5, 0
	ldr r7, =0x0201c000
	mov r6, sp
_08143322:
	ldr r0, =gUnknown_085B7750
	lsls r4, r5, 3
	adds r4, r0
	ldr r0, [r4]
	adds r1, r7, 0
	bl LZ77UnCompWram
	str r7, [sp]
	ldrh r2, [r4, 0x4]
	ldr r0, =0xffff0000
	ldr r1, [r6, 0x4]
	ands r1, r0
	orrs r1, r2
	str r1, [r6, 0x4]
	ldrh r2, [r4, 0x6]
	lsls r2, 16
	ldr r0, =0x0000ffff
	ands r0, r1
	orrs r0, r2
	str r0, [r6, 0x4]
	mov r0, sp
	bl LoadSpriteSheet
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x4
	bls _08143322
	ldr r0, =gSpriteTemplate_85B77E4
	movs r1, 0xD0
	movs r2, 0x10
	movs r3, 0x4
	bl CreateSprite
	ldr r3, =gUnknown_0203AB88
	ldr r1, [r3]
	adds r1, 0x50
	strb r0, [r1]
	ldr r4, =gSprites
	ldr r0, [r3]
	adds r0, 0x50
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x40
	orrs r1, r2
	strb r1, [r0]
	movs r5, 0
	adds r7, r3, 0
_0814338C:
	lsls r1, r5, 19
	movs r0, 0xC4
	lsls r0, 16
	adds r1, r0
	asrs r1, 16
	ldr r0, =gUnknown_085B77FC
	movs r2, 0x18
	movs r3, 0
	bl CreateSprite
	ldr r1, [r7]
	adds r3, r5, 0
	adds r3, 0x15
	adds r1, 0x3C
	adds r1, r3
	strb r0, [r1]
	ldr r0, [r7]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r7]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r6, 0x40
	orrs r1, r6
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _0814338C
	ldr r0, =gUnknown_085B7814
	movs r1, 0x78
	movs r2, 0x44
	movs r3, 0x4
	bl CreateSprite
	ldr r2, =gUnknown_0203AB88
	ldr r1, [r2]
	adds r1, 0x55
	strb r0, [r1]
	ldr r3, =gSprites
	ldr r0, [r2]
	adds r0, 0x55
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	adds r0, 0x2C
	ldrb r1, [r0]
	orrs r1, r6
	strb r1, [r0]
	movs r5, 0
	adds r4, r2, 0
	adds r7, r3, 0
_0814341C:
	lsls r1, r5, 20
	movs r2, 0xC0
	lsls r2, 16
	adds r1, r2
	asrs r1, 16
	ldr r0, =gUnknown_085B782C
	movs r2, 0x24
	movs r3, 0x4
	bl CreateSprite
	ldr r1, [r4]
	adds r2, r5, 0
	adds r2, 0x1A
	adds r1, 0x3C
	adds r1, r2
	strb r0, [r1]
	ldr r0, [r4]
	adds r0, 0x3C
	adds r0, r2
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r3, 0x4
	mov r8, r3
	mov r3, r8
	orrs r1, r3
	strb r1, [r0]
	ldr r0, [r4]
	adds r0, 0x3C
	adds r0, r2
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r7
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r6, 0x40
	orrs r1, r6
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x2
	bls _0814341C
	ldr r0, =gUnknown_085B7844
	movs r1, 0x98
	movs r2, 0x60
	movs r3, 0x9
	bl CreateSprite
	ldr r3, =gUnknown_0203AB88
	ldr r1, [r3]
	adds r1, 0x6C
	strb r0, [r1]
	ldr r4, =gSprites
	ldr r0, [r3]
	adds r0, 0x6C
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	mov r2, r8
	orrs r0, r2
	strb r0, [r1, 0x5]
	ldr r0, [r3]
	adds r0, 0x6C
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x2C
	ldrb r1, [r0]
	orrs r1, r6
	strb r1, [r0]
	ldr r0, [r3]
	adds r0, 0x6C
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	adds r0, 0x3E
	ldrb r1, [r0]
	orrs r1, r2
	strb r1, [r0]
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8143314

	thumb_func_start sub_8143514
sub_8143514: @ 8143514
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 16
	lsrs r7, r0, 16
	movs r0, 0xFA
	lsls r0, 2
	mov r8, r0
	movs r4, 0
	movs r6, 0
	ldr r1, =gSprites
	mov r9, r1
	ldr r0, =gUnknown_0203AB88
	mov r10, r0
_08143534:
	adds r0, r7, 0
	mov r1, r8
	bl __udivsi3
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, =gUnknown_0203AB88
	ldr r0, [r1]
	adds r3, r6, 0
	adds r3, 0x15
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	cmp r5, 0
	bne _0814356E
	cmp r4, 0
	bne _0814356E
	cmp r6, 0x3
	bne _081435CC
_0814356E:
	mov r4, r10
	ldr r0, [r4]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	add r0, r9
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r4, 0x5
	negs r4, r4
	adds r2, r4, 0
	ands r1, r2
	strb r1, [r0]
	mov r1, r10
	ldr r0, [r1]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	mov r4, r9
	adds r3, r0, r4
	adds r4, r3, 0
	adds r4, 0x40
	ldr r1, =gSprites + 8
	adds r0, r1
	ldr r0, [r0]
	ldr r1, [r0]
	lsls r0, r5, 2
	adds r0, r1
	ldrh r2, [r0]
	ldrh r4, [r4]
	adds r2, r4
	ldr r4, =0x000003ff
	adds r0, r4, 0
	ands r2, r0
	ldrh r0, [r3, 0x4]
	ldr r4, =0xfffffc00
	adds r1, r4, 0
	ands r0, r1
	orrs r0, r2
	strh r0, [r3, 0x4]
	movs r4, 0x1
_081435CC:
	adds r0, r7, 0
	mov r1, r8
	bl __umodsi3
	lsls r0, 16
	lsrs r7, r0, 16
	mov r0, r8
	movs r1, 0xA
	bl __udivsi3
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bls _08143534
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8143514

	thumb_func_start sub_8143614
sub_8143614: @ 8143614
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gUnknown_085B7B04
	mov r0, sp
	movs r2, 0x5
	bl memcpy
	cmp r4, 0x13
	bls _0814362C
	movs r4, 0
_0814362C:
	ldr r3, =gUnknown_085B6154
	lsls r0, r4, 2
	adds r0, r4
	lsls r2, r0, 2
	adds r0, r2, r3
	ldrb r0, [r0, 0x1]
	lsls r0, 28
	lsrs r0, 28
	cmp r0, 0x4
	beq _08143680
	cmp r0, 0x4
	bgt _08143654
	cmp r0, 0x3
	beq _0814365A
	b _081436C4
	.pool
_08143654:
	cmp r0, 0xC
	beq _081436A4
	b _081436C4
_0814365A:
	adds r0, r4, 0
	movs r1, 0x5
	bl __udivsi3
	subs r0, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x16
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0x3
	bhi _081436C4
	ldrb r0, [r1]
	adds r0, 0x1
	b _08143698
	.pool
_08143680:
	subs r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x12
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0x2
	bhi _081436C4
	ldrb r0, [r1]
	adds r0, 0x2
_08143698:
	add r0, sp
	ldrb r0, [r0]
	b _081436C6
	.pool
_081436A4:
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	adds r0, r3, 0
	adds r0, 0x8
	adds r0, r2, r0
	ldr r1, [r1, 0x8]
	ldr r0, [r0]
	ands r1, r0
	cmp r1, 0
	bne _081436C4
	mov r0, sp
	ldrb r0, [r0, 0x4]
	b _081436C6
	.pool
_081436C4:
	movs r0, 0
_081436C6:
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8143614

	thumb_func_start sub_81436D0
sub_81436D0: @ 81436D0
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203AB88
	ldr r1, [r1]
	adds r1, 0x55
	ldrb r2, [r1]
	lsls r1, r2, 4
	adds r1, r2
	lsls r1, 2
	ldr r2, =gSprites
	adds r4, r1, r2
	bl sub_8143614
	adds r3, r4, 0
	adds r3, 0x2B
	strb r0, [r3]
	adds r2, r4, 0
	adds r2, 0x40
	ldr r1, [r4, 0x8]
	ldrb r0, [r3]
	ldr r1, [r1]
	lsls r0, 2
	adds r0, r1
	ldrh r1, [r0]
	ldrh r2, [r2]
	adds r1, r2
	ldr r2, =0x000003ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r2, [r4, 0x4]
	ldr r0, =0xfffffc00
	ands r0, r2
	orrs r0, r1
	strh r0, [r4, 0x4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81436D0

	thumb_func_start sub_814372C
sub_814372C: @ 814372C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r2, r0, 24
	movs r6, 0
	ldr r1, =gUnknown_0203AB88
	ldr r0, [r1]
	ldrb r0, [r0, 0x19]
	adds r5, r1, 0
	cmp r0, 0x1
	bne _08143746
	movs r6, 0x2
_08143746:
	cmp r2, 0x6
	bls _0814374C
	b _081438A8
_0814374C:
	lsls r0, r2, 2
	ldr r1, =_08143760
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08143760:
	.4byte _081438A8
	.4byte _08143864
	.4byte _0814383C
	.4byte _08143830
	.4byte _08143808
	.4byte _081437FC
	.4byte _0814377C
_0814377C:
	movs r4, 0
	ldr r5, =gSprites
	ldr r6, =gUnknown_0203AB88
	movs r0, 0x5
	negs r0, r0
	mov r12, r0
	adds r7, r5, 0
	adds r7, 0x8
	ldr r2, =0xfffffc00
	mov r8, r2
_08143790:
	ldr r0, [r6]
	adds r3, r4, 0
	adds r3, 0x1A
	adds r0, 0x3C
	adds r0, r3
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r5
	adds r1, 0x3E
	ldrb r2, [r1]
	mov r0, r12
	ands r0, r2
	strb r0, [r1]
	ldr r0, [r6]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r3, r0, r5
	adds r2, r3, 0
	adds r2, 0x40
	adds r0, r7
	ldr r0, [r0]
	ldr r0, [r0]
	ldrh r1, [r0]
	ldrh r2, [r2]
	adds r1, r2
	ldr r2, =0x000003ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r2, [r3, 0x4]
	mov r0, r8
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x4]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x2
	bls _08143790
	b _081438F4
	.pool
_081437FC:
	ldr r2, =gSprites
	ldr r0, [r5]
	adds r0, 0x58
	b _0814386A
	.pool
_08143808:
	ldr r2, =gSprites
	ldr r0, [r5]
	adds r0, 0x58
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r3, r0, r2
	adds r4, r3, 0
	adds r4, 0x40
	adds r2, 0x8
	adds r0, r2
	ldr r0, [r0]
	ldr r1, [r0]
	lsls r0, r6, 2
	adds r0, r1
	ldrh r1, [r0, 0x8]
	b _08143886
	.pool
_08143830:
	ldr r2, =gSprites
	ldr r0, [r5]
	adds r0, 0x57
	b _0814386A
	.pool
_0814383C:
	ldr r2, =gSprites
	ldr r0, [r5]
	adds r0, 0x57
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r3, r0, r2
	adds r4, r3, 0
	adds r4, 0x40
	adds r2, 0x8
	adds r0, r2
	ldr r0, [r0]
	ldr r1, [r0]
	lsls r0, r6, 2
	adds r0, r1
	ldrh r1, [r0, 0x8]
	b _08143886
	.pool
_08143864:
	ldr r2, =gSprites
	ldr r0, [r5]
	adds r0, 0x56
_0814386A:
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r3, r0, r2
	adds r4, r3, 0
	adds r4, 0x40
	adds r2, 0x8
	adds r0, r2
	ldr r0, [r0]
	ldr r1, [r0]
	lsls r0, r6, 2
	adds r0, r1
	ldrh r1, [r0, 0x4]
_08143886:
	ldrh r4, [r4]
	adds r1, r4
	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]
	b _081438F4
	.pool
_081438A8:
	movs r4, 0
	lsls r7, r6, 2
	ldr r6, =gSprites
	movs r0, 0x8
	adds r0, r6
	mov r12, r0
	ldr r2, =0xfffffc00
	mov r8, r2
_081438B8:
	ldr r0, [r5]
	adds r0, r4
	adds r0, 0x56
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r3, r0, r6
	adds r2, r3, 0
	adds r2, 0x40
	add r0, r12
	ldr r0, [r0]
	ldr r0, [r0]
	adds r0, r7, r0
	ldrh r1, [r0, 0x8]
	ldrh r2, [r2]
	adds r1, r2
	ldr r2, =0x000003ff
	adds r0, r2, 0
	ands r1, r0
	ldrh r2, [r3, 0x4]
	mov r0, r8
	ands r0, r2
	orrs r0, r1
	strh r0, [r3, 0x4]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x2
	bls _081438B8
_081438F4:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814372C

	thumb_func_start sub_814390C
sub_814390C: @ 814390C
	ldr r1, =gUnknown_0203AB88
	ldr r1, [r1]
	ldrh r1, [r1, 0x26]
	strh r1, [r0, 0x24]
	bx lr
	.pool
	thumb_func_end sub_814390C

	thumb_func_start sub_814391C
sub_814391C: @ 814391C
	push {r4,r5,lr}
	sub sp, 0x8
	ldr r4, =gUnknown_085B7948
	ldr r0, [r4]
	ldr r5, =0x0201c000
	adds r1, r5, 0
	bl LZ77UnCompWram
	str r5, [sp]
	ldrh r1, [r4, 0x6]
	lsls r1, 16
	ldrh r0, [r4, 0x4]
	orrs r0, r1
	str r0, [sp, 0x4]
	mov r0, sp
	bl LoadSpriteSheet
	ldr r0, =gSpriteTemplate_85B7950
	movs r1, 0x74
	movs r2, 0x50
	movs r3, 0x51
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gSprites
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldrh r0, [r0, 0x24]
	movs r2, 0
	strh r0, [r1, 0x2E]
	strh r2, [r1, 0x30]
	adds r3, r1, 0
	adds r3, 0x2C
	ldrb r0, [r3]
	movs r2, 0x40
	orrs r0, r2
	movs r2, 0x80
	orrs r0, r2
	strb r0, [r3]
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x2
	orrs r0, r2
	strb r0, [r1]
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814391C

	thumb_func_start sub_814399C
sub_814399C: @ 814399C
	ldrb r0, [r0, 0x3]
	lsls r0, 26
	lsrs r0, 27
	ldr r1, =gOamMatrices
	lsls r0, 3
	adds r0, r1
	ldr r1, =gUnknown_0203AB88
	ldr r2, [r1]
	ldrh r1, [r2, 0x2C]
	strh r1, [r0, 0x6]
	ldrh r1, [r2, 0x2C]
	strh r1, [r0]
	ldrh r1, [r2, 0x2E]
	strh r1, [r0, 0x2]
	ldrh r1, [r2, 0x30]
	strh r1, [r0, 0x4]
	bx lr
	.pool
	thumb_func_end sub_814399C

	thumb_func_start sub_81439C8
sub_81439C8: @ 81439C8
	push {r4-r6,lr}
	movs r4, 0
	ldr r5, =gUnknown_0203AB88
	ldr r6, =gSprites
_081439D0:
	movs r3, 0x39
	subs r3, r4
	lsls r3, 24
	lsrs r3, 24
	ldr r0, =gSpriteTemplate_85B7928
	movs r1, 0x74
	movs r2, 0x50
	bl CreateSprite
	ldr r1, [r5]
	adds r1, 0x3C
	adds r1, r4
	strb r0, [r1]
	ldr r0, [r5]
	adds r0, 0x3C
	adds r1, r0, r4
	ldrb r0, [r1]
	cmp r0, 0x40
	beq _08143A24
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r5]
	adds r0, 0x3C
	adds r0, r4
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x2
	orrs r1, r2
	strb r1, [r0]
_08143A24:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _081439D0
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81439C8

	thumb_func_start sub_8143A40
sub_8143A40: @ 8143A40
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x3C
	ldrb r5, [r0]
	movs r6, 0
	ldr r7, =gSprites
	movs r0, 0x1C
	adds r0, r7
	mov r10, r0
	movs r1, 0x2E
	adds r1, r7
	mov r9, r1
	mov r8, r6
_08143A64:
	lsls r4, r5, 4
	adds r4, r5
	lsls r4, 2
	adds r0, r4, r7
	adds r3, r0, 0
	adds r3, 0x3E
	ldrb r1, [r3]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r3]
	mov r1, r10
	adds r2, r4, r1
	ldr r1, =SpriteCallbackDummy
	str r1, [r2]
	movs r1, 0
	bl StartSpriteAnim
	movs r1, 0
	adds r2, r5, 0x1
	adds r3, r6, 0x1
_08143A8C:
	lsls r0, r1, 1
	adds r0, r4
	add r0, r9
	mov r5, r8
	strh r5, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x7
	bls _08143A8C
	lsls r0, r2, 24
	lsrs r5, r0, 24
	lsls r0, r3, 24
	lsrs r6, r0, 24
	cmp r6, 0x5
	bls _08143A64
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8143A40

	thumb_func_start sub_8143AC8
sub_8143AC8: @ 8143AC8
	push {r4,r5,lr}
	adds r3, r0, 0
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldrh r4, [r0, 0x24]
	movs r2, 0x24
	ldrsh r1, [r0, r2]
	ldrh r2, [r3, 0x34]
	movs r5, 0x34
	ldrsh r0, [r3, r5]
	cmp r1, r0
	ble _08143B04
	movs r1, 0xB4
	lsls r1, 1
	adds r0, r2, r1
	subs r2, r0, r4
	strh r2, [r3, 0x3A]
	lsls r1, r2, 16
	ldr r0, =0x01670000
	cmp r1, r0
	ble _08143B08
	ldr r5, =0xfffffe98
	adds r0, r2, r5
	b _08143B06
	.pool
_08143B04:
	subs r0, r2, r4
_08143B06:
	strh r0, [r3, 0x3A]
_08143B08:
	movs r1, 0x3A
	ldrsh r0, [r3, r1]
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8143AC8

	thumb_func_start sub_8143B14
sub_8143B14: @ 8143B14
	push {r4,r5,lr}
	bl sub_8143AC8
	ldr r5, =gUnknown_0203AB88
	ldr r4, [r5]
	lsls r0, 16
	asrs r0, 16
	bl __floatsisf
	ldr r1, =0x41f00000
	bl __divsf3
	bl __fixunssfsi
	adds r4, 0x7E
	strb r0, [r4]
	ldr r0, [r5]
	adds r0, 0x7E
	ldrb r0, [r0]
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8143B14

	thumb_func_start sub_8143B48
sub_8143B48: @ 8143B48
	push {r4,lr}
	adds r4, r0, 0
	bl sub_8143AC8
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x1E
	bl __modsi3
	lsls r0, 16
	asrs r1, r0, 16
	cmp r1, 0xE
	bne _08143B68
	movs r0, 0
	strh r0, [r4, 0x32]
	b _08143B7E
_08143B68:
	cmp r1, 0xD
	bgt _08143B70
	movs r0, 0xE
	b _08143B72
_08143B70:
	movs r0, 0x2B
_08143B72:
	subs r0, r1
	lsls r0, 16
	lsrs r0, 16
	strh r0, [r4, 0x32]
	lsls r0, 16
	asrs r0, 16
_08143B7E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8143B48

	thumb_func_start sub_8143B84
sub_8143B84: @ 8143B84
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r7, r0, 0
	ldr r5, _08143BCC  @ =gUnknown_0203AB88
	ldr r6, [r5]
	adds r4, r6, 0
	adds r4, 0x8C
	adds r1, r6, 0
	adds r1, 0x90
	ldr r0, [r4]
	ldr r1, [r1]
	bl __addsf3
	adds r1, r0, 0
	str r1, [r4]
	subs r4, 0x4
	ldr r0, [r4]
	bl __addsf3
	adds r6, r0, 0
	str r6, [r4]
	ldr r0, _08143BD0  @ =0x43B40000
	mov r8, r0
	adds r0, r6, 0
	mov r1, r8
	bl __gesf2
	cmp r0, 0
	blt _08143BD4
	adds r0, r6, 0
	mov r1, r8
	bl __subsf3
	b _08143BE8
	.align 2, 0
_08143BCC:
	.4byte gUnknown_0203AB88
_08143BD0:
	.4byte 0x43B40000
_08143BD4:
	ldr r1, _08143C80  @ =0x00000000
	adds r0, r6, 0
	bl __ltsf2
	cmp r0, 0
	bge _08143BEA
	adds r0, r6, 0
	mov r1, r8
	bl __addsf3
_08143BE8:
	str r0, [r4]
_08143BEA:
	ldr r5, [r5]
	adds r0, r5, 0
	adds r0, 0x88
	ldr r0, [r0]
	bl __fixsfsi
	strh r0, [r7, 0x34]
	adds r4, r5, 0
	adds r4, 0x98
	adds r1, r5, 0
	adds r1, 0x9C
	ldr r0, [r4]
	ldr r1, [r1]
	bl __addsf3
	adds r1, r0, 0
	str r1, [r4]
	subs r4, 0x4
	ldr r0, [r4]
	bl __addsf3
	str r0, [r4]
	bl __fixsfsi
	strh r0, [r7, 0x36]
	ldrh r0, [r7, 0x34]
	bl Sin2
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldrh r0, [r7, 0x34]
	bl Cos2
	lsls r4, 16
	asrs r4, 16
	movs r2, 0x36
	ldrsh r1, [r7, r2]
	muls r1, r4
	asrs r1, 12
	strh r1, [r7, 0x24]
	lsls r0, 16
	asrs r0, 16
	negs r0, r0
	movs r2, 0x36
	ldrsh r1, [r7, r2]
	muls r0, r1
	asrs r0, 12
	strh r0, [r7, 0x26]
	bl IsSEPlaying
	lsls r0, 24
	cmp r0, 0
	beq _08143C74
	ldr r0, _08143C84  @ =gMPlayInfo_SE1
	ldr r4, _08143C88  @ =0x0000FFFF
	ldrh r2, [r7, 0x24]
	lsls r2, 24
	asrs r2, 24
	adds r1, r4, 0
	bl m4aMPlayPanpotControl
	ldr r0, _08143C8C  @ =gMPlayInfo_SE2
	ldrh r2, [r7, 0x24]
	lsls r2, 24
	asrs r2, 24
	adds r1, r4, 0
	bl m4aMPlayPanpotControl
_08143C74:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08143C80:
	.4byte 0x00000000
_08143C84:
	.4byte gMPlayInfo_SE1
_08143C88:
	.4byte 0x0000FFFF
_08143C8C:
	.4byte gMPlayInfo_SE2
	thumb_func_end sub_8143B84

	thumb_func_start sub_8143C90
sub_8143C90: @ 8143C90
	push {r4,r5,lr}
	adds r5, r0, 0
	ldr r0, =gUnknown_0203AB88
	ldr r1, [r0]
	ldrh r0, [r5, 0x3A]
	ldrh r1, [r1, 0x24]
	adds r2, r0, r1
	strh r2, [r5, 0x34]
	lsls r1, r2, 16
	ldr r0, =0x01670000
	cmp r1, r0
	ble _08143CAE
	ldr r1, =0xfffffe98
	adds r0, r2, r1
	strh r0, [r5, 0x34]
_08143CAE:
	ldrh r0, [r5, 0x34]
	bl Sin2
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldrh r0, [r5, 0x34]
	bl Cos2
	lsls r4, 16
	asrs r4, 16
	movs r2, 0x36
	ldrsh r1, [r5, r2]
	muls r1, r4
	asrs r1, 12
	strh r1, [r5, 0x24]
	lsls r0, 16
	asrs r0, 16
	negs r0, r0
	movs r2, 0x36
	ldrsh r1, [r5, r2]
	muls r0, r1
	ldr r1, =gSpriteCoordOffsetY
	asrs r0, 12
	ldrh r1, [r1]
	adds r0, r1
	strh r0, [r5, 0x26]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8143C90

	thumb_func_start sub_8143CFC
sub_8143CFC: @ 8143CFC
	push {r4-r7,lr}
	adds r5, r0, 0
	bl sub_8143B84
	ldrh r0, [r5, 0x32]
	adds r0, 0x1
	strh r0, [r5, 0x32]
	ldrh r0, [r5, 0x36]
	adds r0, 0x84
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0xD4
	bls _08143D22
	adds r2, r5, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	b _08143D2E
_08143D22:
	adds r2, r5, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
_08143D2E:
	strb r0, [r2]
	movs r1, 0x32
	ldrsh r0, [r5, r1]
	cmp r0, 0x1D
	ble _08143DF8
	movs r1, 0x2E
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _08143D6C
	ldr r7, _08143D64  @ =gUnknown_0203AB88
	ldr r6, [r7]
	adds r4, r6, 0
	adds r4, 0x94
	adds r0, r6, 0
	adds r0, 0xA0
	ldr r0, [r0]
	ldr r1, _08143D68  @ =0x40000000
	bl __subsf3
	adds r1, r0, 0
	ldr r0, [r4]
	bl __lesf2
	cmp r0, 0
	bgt _08143DF8
	b _08143D8C
	.align 2, 0
_08143D64:
	.4byte gUnknown_0203AB88
_08143D68:
	.4byte 0x40000000
_08143D6C:
	ldr r7, _08143E00  @ =gUnknown_0203AB88
	ldr r6, [r7]
	adds r4, r6, 0
	adds r4, 0x94
	adds r0, r6, 0
	adds r0, 0xA0
	ldr r0, [r0]
	ldr r1, _08143E04  @ =0x40000000
	bl __subsf3
	adds r1, r0, 0
	ldr r0, [r4]
	bl __gesf2
	cmp r0, 0
	blt _08143DF8
_08143D8C:
	adds r1, r6, 0
	adds r1, 0x7D
	movs r0, 0xFF
	strb r0, [r1]
	ldr r2, [r7]
	ldrb r1, [r2, 0x3]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x3]
	adds r0, r5, 0
	adds r0, 0x2B
	ldrb r1, [r0]
	adds r1, 0x3
	lsls r1, 24
	lsrs r1, 24
	adds r0, r5, 0
	bl StartSpriteAnim
	adds r0, r5, 0
	bl sub_8143B14
	movs r0, 0x1E
	strh r0, [r5, 0x36]
	adds r0, r5, 0
	bl sub_8143AC8
	movs r1, 0x3A
	ldrsh r0, [r5, r1]
	movs r1, 0x1E
	bl __divsi3
	lsls r0, 16
	asrs r0, 16
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 1
	adds r1, 0xF
	strh r1, [r5, 0x3A]
	ldr r0, _08143E08  @ =sub_8143C90
	str r0, [r5, 0x1C]
	movs r0, 0x47
	bl m4aSongNumStartOrChange
	ldr r3, [r7]
	adds r2, r3, 0
	adds r2, 0x9C
	adds r1, r3, 0
	adds r1, 0x98
	ldr r0, _08143E0C  @ =0x00000000
	str r0, [r1]
	str r0, [r2]
	subs r1, 0xC
	ldr r0, _08143E10  @ =0xBF800000
	str r0, [r1]
_08143DF8:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08143E00:
	.4byte gUnknown_0203AB88
_08143E04:
	.4byte 0x40000000
_08143E08:
	.4byte sub_8143C90
_08143E0C:
	.4byte 0x00000000
_08143E10:
	.4byte 0xBF800000
	thumb_func_end sub_8143CFC

	thumb_func_start sub_8143E14
sub_8143E14: @ 8143E14
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r7, r0, 0
	bl sub_8143B84
	movs r1, 0x34
	ldrsh r0, [r7, r1]
	cmp r0, 0
	beq _08143E32
	cmp r0, 0xB4
	beq _08143E9C
	b _08143F80
_08143E32:
	movs r1, 0x2E
	ldrsh r0, [r7, r1]
	cmp r0, 0x1
	bne _08143E3C
	b _08143F80
_08143E3C:
	movs r1, 0x3C
	ldrsh r0, [r7, r1]
	bl __floatsisf
	mov r9, r0
	ldr r0, =gUnknown_085B6348
	mov r10, r0
	ldr r1, =gUnknown_0203AB88
	mov r8, r1
	ldr r0, [r1]
	ldrb r4, [r0, 0x4]
	lsls r4, 30
	lsrs r0, r4, 25
	add r0, r10
	ldrb r0, [r0, 0x1]
	bl __floatsisf
	adds r1, r0, 0
	mov r0, r9
	bl __mulsf3
	adds r6, r0, 0
	lsrs r0, r4, 25
	add r0, r10
	ldrb r0, [r0, 0x2]
	subs r0, 0x1
	bl __floatsisf
	adds r1, r0, 0
	adds r0, r6, 0
	bl __addsf3
	adds r5, r0, 0
	lsrs r4, 25
	add r4, r10
	ldrh r0, [r4, 0xC]
	bl __floatsisf
	adds r1, r0, 0
	mov r0, r9
	bl __divsf3
	b _08143EFC
	.pool
_08143E9C:
	movs r1, 0x2E
	ldrsh r0, [r7, r1]
	cmp r0, 0
	beq _08143F80
	movs r1, 0x3C
	ldrsh r0, [r7, r1]
	bl __floatsisf
	mov r9, r0
	ldr r0, _08143F90  @ =gUnknown_085B6348
	mov r10, r0
	ldr r1, _08143F94  @ =gUnknown_0203AB88
	mov r8, r1
	ldr r0, [r1]
	ldrb r4, [r0, 0x4]
	lsls r4, 30
	lsrs r0, r4, 25
	add r0, r10
	ldrb r0, [r0, 0x1]
	bl __floatsisf
	adds r1, r0, 0
	mov r0, r9
	bl __mulsf3
	adds r6, r0, 0
	lsrs r0, r4, 25
	add r0, r10
	ldrb r0, [r0, 0x2]
	subs r0, 0x1
	bl __floatsisf
	adds r1, r0, 0
	adds r0, r6, 0
	bl __addsf3
	adds r5, r0, 0
	lsrs r4, 25
	add r4, r10
	ldrh r0, [r4, 0xC]
	bl __floatsisf
	adds r1, r0, 0
	mov r0, r9
	bl __divsf3
	bl __negsf2
_08143EFC:
	adds r2, r0, 0
	mov r0, r8
	ldr r6, [r0]
	adds r1, r6, 0
	adds r1, 0xA0
	adds r0, r6, 0
	adds r0, 0x94
	ldr r0, [r0]
	str r0, [r1]
	adds r0, r6, 0
	adds r0, 0x98
	str r2, [r0]
	movs r0, 0x9C
	adds r0, r6
	mov r8, r0
	adds r0, r2, 0
	adds r1, r2, 0
	bl __addsf3
	adds r1, r5, 0
	bl __divsf3
	adds r4, r0, 0
	adds r0, r5, 0
	adds r1, r5, 0
	bl __mulsf3
	adds r1, r0, 0
	ldr r0, _08143F98  @ =0x40000000
	bl __divsf3
	adds r1, r0, 0
	adds r0, r4, 0
	bl __addsf3
	bl __negsf2
	mov r1, r8
	str r0, [r1]
	adds r1, r6, 0
	adds r1, 0x8C
	ldr r0, _08143F9C  @ =0x00000000
	str r0, [r1]
	adds r2, r7, 0
	adds r2, 0x2C
	ldrb r1, [r2]
	movs r0, 0x41
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	adds r0, r7, 0
	adds r0, 0x2A
	movs r2, 0
	strb r2, [r0]
	adds r3, r7, 0
	adds r3, 0x3F
	ldrb r0, [r3]
	movs r1, 0x4
	orrs r0, r1
	movs r1, 0x11
	negs r1, r1
	ands r0, r1
	strb r0, [r3]
	ldr r0, _08143FA0  @ =sub_8143CFC
	str r0, [r7, 0x1C]
	strh r2, [r7, 0x32]
_08143F80:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08143F90:
	.4byte gUnknown_085B6348
_08143F94:
	.4byte gUnknown_0203AB88
_08143F98:
	.4byte 0x40000000
_08143F9C:
	.4byte 0x00000000
_08143FA0:
	.4byte sub_8143CFC
	thumb_func_end sub_8143E14

	thumb_func_start sub_8143FA4
sub_8143FA4: @ 8143FA4
	push {r4,r5,lr}
	adds r5, r0, 0
	movs r1, 0x32
	ldrsh r0, [r5, r1]
	bl __floatsisf
	adds r4, r0, 0
	ldr r1, =0x3d4ccccd
	bl __mulsf3
	adds r1, r4, 0
	bl __mulsf3
	bl __fixsfsi
	adds r1, r0, 0
	subs r1, 0x2D
	strh r1, [r5, 0x26]
	ldrh r0, [r5, 0x32]
	adds r0, 0x1
	strh r0, [r5, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x1D
	ble _0814403E
	lsls r0, r1, 16
	cmp r0, 0
	blt _0814403E
	ldr r4, =gUnknown_0203AB88
	ldr r0, [r4]
	adds r0, 0x7D
	movs r1, 0xFF
	strb r1, [r0]
	ldr r2, [r4]
	ldrb r1, [r2, 0x3]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x3]
	adds r0, r5, 0
	adds r0, 0x2B
	ldrb r1, [r0]
	adds r1, 0x3
	lsls r1, 24
	lsrs r1, 24
	adds r0, r5, 0
	bl StartSpriteAnim
	adds r0, r5, 0
	bl sub_8143B14
	movs r0, 0x1E
	strh r0, [r5, 0x36]
	adds r0, r5, 0
	bl sub_8143AC8
	movs r1, 0x3A
	ldrsh r0, [r5, r1]
	movs r1, 0x1E
	bl __divsi3
	lsls r0, 16
	asrs r0, 16
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 1
	adds r1, 0xF
	strh r1, [r5, 0x3A]
	ldr r0, =sub_8143C90
	str r0, [r5, 0x1C]
	movs r0, 0x47
	bl m4aSongNumStartOrChange
	ldr r2, [r4]
	ldrb r0, [r2, 0x3]
	movs r1, 0x40
	orrs r0, r1
	strb r0, [r2, 0x3]
_0814403E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8143FA4

	thumb_func_start sub_8144050
sub_8144050: @ 8144050
	push {r4,lr}
	adds r3, r0, 0
	ldrh r0, [r3, 0x32]
	adds r1, r0, 0x1
	strh r1, [r3, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x2C
	bgt _08144098
	ldrh r4, [r3, 0x26]
	subs r0, r4, 0x1
	strh r0, [r3, 0x26]
	lsls r0, r1, 16
	asrs r0, 16
	cmp r0, 0x2D
	bne _0814411E
	ldr r2, =gSprites
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x73
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x2B
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0814411E
	strh r4, [r3, 0x26]
	b _0814411E
	.pool
_08144098:
	lsls r0, r1, 16
	asrs r0, 16
	movs r2, 0x3C
	ldrsh r1, [r3, r2]
	cmp r0, r1
	bge _081440E4
	ldr r2, =gSprites
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x73
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r0, r2
	adds r0, r1, 0
	adds r0, 0x2C
	ldrb r0, [r0]
	lsls r0, 26
	cmp r0, 0
	bne _0814411E
	adds r0, r1, 0
	adds r0, 0x2B
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081440DC
	ldrh r0, [r3, 0x26]
	adds r0, 0x1
	strh r0, [r3, 0x26]
	b _0814411E
	.pool
_081440DC:
	ldrh r0, [r3, 0x26]
	subs r0, 0x1
	strh r0, [r3, 0x26]
	b _0814411E
_081440E4:
	adds r2, r3, 0
	adds r2, 0x2C
	ldrb r1, [r2]
	movs r0, 0x41
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	adds r1, r3, 0
	adds r1, 0x2A
	movs r2, 0
	movs r0, 0x1
	strb r0, [r1]
	movs r0, 0x3F
	adds r0, r3
	mov r12, r0
	ldrb r0, [r0]
	movs r1, 0x4
	orrs r0, r1
	movs r1, 0x11
	negs r1, r1
	ands r0, r1
	mov r1, r12
	strb r0, [r1]
	strh r2, [r3, 0x32]
	ldr r0, =sub_8143FA4
	str r0, [r3, 0x1C]
	movs r0, 0x3D
	bl m4aSongNumStart
_0814411E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144050

	thumb_func_start sub_8144128
sub_8144128: @ 8144128
	push {r4,lr}
	adds r4, r0, 0
	bl sub_8143B84
	movs r0, 0x34
	ldrsh r1, [r4, r0]
	cmp r1, 0x5A
	beq _08144142
	movs r0, 0x87
	lsls r0, 1
	cmp r1, r0
	beq _0814414C
	b _0814415C
_08144142:
	movs r1, 0x2E
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	beq _0814415C
	b _08144154
_0814414C:
	movs r1, 0x2E
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _0814415C
_08144154:
	ldr r0, =sub_8144050
	str r0, [r4, 0x1C]
	movs r0, 0
	strh r0, [r4, 0x32]
_0814415C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144128

	thumb_func_start sub_8144168
sub_8144168: @ 8144168
	push {r4,lr}
	adds r4, r0, 0
	bl sub_8143B84
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldrb r0, [r0, 0x3]
	lsls r0, 27
	lsrs r0, 27
	cmp r0, 0
	beq _08144182
	cmp r0, 0x1
	beq _08144194
_08144182:
	adds r0, r4, 0
	bl sub_81446DC
	ldr r0, =sub_8143E14
	b _0814419C
	.pool
_08144194:
	adds r0, r4, 0
	bl sub_81448B8
	ldr r0, =sub_8144128
_0814419C:
	str r0, [r4, 0x1C]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144168

	thumb_func_start prev_quest_read_x24_hm_usage
prev_quest_read_x24_hm_usage: @ 81441A8
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_8143B84
	ldrh r0, [r5, 0x32]
	subs r0, 0x1
	strh r0, [r5, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xF
	bne _081441CE
	ldr r0, =gUnknown_0203AB88
	ldr r4, [r0]
	adds r4, 0x98
	ldr r0, [r4]
	ldr r1, =0xbf800000
	bl __mulsf3
	str r0, [r4]
_081441CE:
	movs r1, 0x32
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _0814425C
	movs r1, 0x2E
	ldrsh r0, [r5, r1]
	cmp r0, 0
	bne _08144244
	ldr r2, =gUnknown_0203AB88
	ldr r0, [r2]
	adds r0, 0x7D
	movs r1, 0xFF
	strb r1, [r0]
	ldr r2, [r2]
	ldrb r1, [r2, 0x3]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x3]
	adds r0, r5, 0
	adds r0, 0x2B
	ldrb r1, [r0]
	adds r1, 0x3
	lsls r1, 24
	lsrs r1, 24
	adds r0, r5, 0
	bl StartSpriteAnim
	adds r0, r5, 0
	bl sub_8143B14
	movs r0, 0x1E
	strh r0, [r5, 0x36]
	adds r0, r5, 0
	bl sub_8143AC8
	movs r1, 0x3A
	ldrsh r0, [r5, r1]
	movs r1, 0x1E
	bl __divsi3
	lsls r0, 16
	asrs r0, 16
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 1
	adds r1, 0xF
	strh r1, [r5, 0x3A]
	ldr r0, =sub_8143C90
	str r0, [r5, 0x1C]
	movs r0, 0x47
	bl m4aSongNumStartOrChange
	b _0814425C
	.pool
_08144244:
	adds r0, r5, 0
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x40
	orrs r1, r2
	strb r1, [r0]
	movs r0, 0x38
	bl m4aSongNumStart
	adds r0, r5, 0
	bl sub_8144A24
_0814425C:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end prev_quest_read_x24_hm_usage

	thumb_func_start sub_8144264
sub_8144264: @ 8144264
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r0, 0
	bl sub_8143B84
	movs r0, 0
	strh r0, [r6, 0x32]
	adds r0, r6, 0
	bl sub_8143B14
	ldr r1, _081442F0  @ =gUnknown_085B62E4
	ldr r4, _081442F4  @ =gUnknown_0203AB88
	ldr r2, [r4]
	adds r0, r2, 0
	adds r0, 0x7E
	ldrb r0, [r0]
	lsls r0, 3
	adds r1, 0x4
	adds r0, r1
	ldr r0, [r0]
	ldr r1, [r2, 0x8]
	ands r0, r1
	cmp r0, 0
	bne _081442FC
	adds r1, r2, 0
	adds r1, 0x7D
	movs r0, 0xFF
	strb r0, [r1]
	ldr r2, [r4]
	ldrb r1, [r2, 0x3]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2, 0x3]
	adds r0, r6, 0
	adds r0, 0x2B
	ldrb r1, [r0]
	adds r1, 0x3
	lsls r1, 24
	lsrs r1, 24
	adds r0, r6, 0
	bl StartSpriteAnim
	adds r0, r6, 0
	bl sub_8143B14
	movs r0, 0x1E
	strh r0, [r6, 0x36]
	adds r0, r6, 0
	bl sub_8143AC8
	movs r1, 0x3A
	ldrsh r0, [r6, r1]
	movs r1, 0x1E
	bl __divsi3
	lsls r0, 16
	asrs r0, 16
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 1
	adds r1, 0xF
	strh r1, [r6, 0x3A]
	ldr r0, _081442F8  @ =sub_8143C90
	str r0, [r6, 0x1C]
	movs r0, 0x47
	bl m4aSongNumStartOrChange
	b _081443F8
	.align 2, 0
_081442F0:
	.4byte gUnknown_085B62E4
_081442F4:
	.4byte gUnknown_0203AB88
_081442F8:
	.4byte sub_8143C90
_081442FC:
	movs r0, 0x38
	bl m4aSongNumStart
	bl Random
	movs r1, 0x1
	mov r8, r1
	ands r1, r0
	mov r8, r1
	cmp r1, 0
	beq _08144340
	ldr r4, [r4]
	adds r1, r4, 0
	adds r1, 0x8C
	ldr r0, _08144338  @ =0x00000000
	str r0, [r1]
	adds r0, r4, 0
	adds r0, 0x7E
	ldrb r0, [r0]
	adds r0, 0x1
	movs r1, 0xC
	bl __modsi3
	lsls r1, r0, 24
	lsrs r2, r1, 24
	adds r1, r4, 0
	adds r1, 0x7F
	strb r0, [r1]
	ldr r5, _0814433C  @ =gUnknown_085B6348
	b _08144378
_08144338:
	.4byte 0x00000000
_0814433C:
	.4byte gUnknown_085B6348
_08144340:
	ldr r7, [r4]
	adds r4, r7, 0
	adds r4, 0x8C
	ldr r5, =gUnknown_085B6348
	ldrb r0, [r7, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r1, r5, 0
	adds r1, 0x1C
	adds r0, r1
	ldr r1, [r0]
	adds r0, r1, 0
	bl __addsf3
	str r0, [r4]
	adds r0, r7, 0
	adds r0, 0x7E
	ldrb r4, [r0]
	adds r0, r4, 0
	adds r0, 0xB
	movs r1, 0xC
	bl __modsi3
	lsls r0, 24
	lsrs r2, r0, 24
	adds r0, r7, 0
	adds r0, 0x7F
	strb r4, [r0]
_08144378:
	ldr r0, =gUnknown_085B62E4
	lsls r1, r2, 3
	adds r0, 0x4
	adds r1, r0
	ldr r2, =gUnknown_0203AB88
	ldr r3, [r2]
	ldr r1, [r1]
	ldr r0, [r3, 0x8]
	ands r1, r0
	cmp r1, 0
	beq _081443AC
	movs r0, 0x1
	strh r0, [r6, 0x2E]
	ldrb r0, [r3, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r5
	ldrb r0, [r0, 0x2]
	strh r0, [r6, 0x32]
	b _081443E8
	.pool
_081443AC:
	strh r1, [r6, 0x2E]
	ldrb r1, [r3, 0x4]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	beq _081443C4
	lsls r0, r1, 30
	lsrs r0, 25
	adds r0, r5
	ldrb r0, [r0, 0x1]
	strh r0, [r6, 0x32]
	b _081443E8
_081443C4:
	lsls r0, r1, 30
	lsrs r0, 25
	adds r0, r5
	ldrb r0, [r0, 0x2]
	strh r0, [r6, 0x32]
	mov r0, r8
	cmp r0, 0
	beq _081443E0
	adds r1, r3, 0
	adds r1, 0x8C
	ldr r0, =0x3f000000
	b _081443E6
	.pool
_081443E0:
	adds r1, r3, 0
	adds r1, 0x8C
	ldr r0, =0xbfc00000
_081443E6:
	str r0, [r1]
_081443E8:
	ldr r0, [r2]
	adds r0, 0x98
	ldr r1, =0x3dae147b
	str r1, [r0]
	ldr r0, =prev_quest_read_x24_hm_usage
	str r0, [r6, 0x1C]
	movs r0, 0x5
	strh r0, [r6, 0x30]
_081443F8:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144264

	thumb_func_start sub_8144410
sub_8144410: @ 8144410
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r6, r0, 0
	bl sub_8143B84
	ldr r4, _081444A4  @ =gUnknown_0203AB88
	ldr r0, [r4]
	adds r0, 0x8C
	ldr r0, [r0]
	ldr r1, _081444A8  @ =0x3F000000
	bl __gtsf2
	cmp r0, 0
	bgt _081444FA
	adds r0, r6, 0
	bl sub_8143B14
	adds r0, r6, 0
	bl sub_8143B48
	lsls r0, 16
	cmp r0, 0
	bne _081444BC
	ldr r2, [r4]
	adds r1, r2, 0
	adds r1, 0x90
	ldr r0, _081444AC  @ =0x00000000
	str r0, [r1]
	movs r0, 0x8C
	adds r0, r2
	mov r8, r0
	ldr r1, _081444B0  @ =gUnknown_085B6348
	mov r9, r1
	ldrb r0, [r2, 0x4]
	lsls r7, r0, 30
	lsrs r0, r7, 25
	add r0, r9
	movs r4, 0x3
	ldrsb r4, [r0, r4]
	adds r0, r4, 0
	bl __floatsisf
	adds r5, r0, 0
	cmp r4, 0
	bge _08144476
	ldr r1, _081444B4  @ =0x43800000
	bl __addsf3
	adds r5, r0, 0
_08144476:
	lsrs r0, r7, 25
	add r0, r9
	ldrb r0, [r0, 0x4]
	adds r0, 0x1
	bl __floatsisf
	adds r1, r0, 0
	adds r0, r5, 0
	bl __divsf3
	adds r1, r0, 0
	mov r2, r8
	ldr r0, [r2]
	bl __subsf3
	mov r1, r8
	str r0, [r1]
	movs r0, 0x4
	strh r0, [r6, 0x30]
	ldr r0, _081444B8  @ =sub_8144264
	str r0, [r6, 0x1C]
	b _081444FA
	.align 2, 0
_081444A4:
	.4byte gUnknown_0203AB88
_081444A8:
	.4byte 0x3F000000
_081444AC:
	.4byte 0x00000000
_081444B0:
	.4byte gUnknown_085B6348
_081444B4:
	.4byte 0x43800000
_081444B8:
	.4byte sub_8144264
_081444BC:
	ldr r4, [r4]
	adds r7, r4, 0
	adds r7, 0x90
	ldr r0, [r7]
	ldr r6, _08144508  @ =0x00000000
	adds r1, r6, 0
	bl __nesf2
	cmp r0, 0
	beq _081444FA
	adds r5, r4, 0
	adds r5, 0x8C
	ldr r0, [r5]
	adds r1, r6, 0
	bl __ltsf2
	cmp r0, 0
	bge _081444FA
	str r6, [r7]
	str r6, [r5]
	adds r4, 0x98
	ldr r0, [r4]
	bl __extendsfdf2
	ldr r2, _0814450C  @ =0x3FF33333
	ldr r3, _08144510  @ =0x33333333
	bl __divdf3
	bl __truncdfsf2
	str r0, [r4]
_081444FA:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08144508:
	.4byte 0x00000000
_0814450C:
	.4byte 0x3FF33333
_08144510:
	.4byte 0x33333333
	thumb_func_end sub_8144410

	thumb_func_start sub_8144514
sub_8144514: @ 8144514
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r0, 0
	bl sub_8143B84
	ldr r0, =gUnknown_0203AB88
	ldr r5, [r0]
	adds r0, r5, 0
	adds r0, 0x94
	ldr r0, [r0]
	ldr r1, =0x42200000
	bl __gtsf2
	cmp r0, 0
	bgt _081445B8
	movs r0, 0x98
	adds r0, r5
	mov r8, r0
	adds r7, r5, 0
	adds r7, 0x86
	movs r1, 0
	ldrsh r4, [r7, r1]
	adds r0, r4, 0
	bl __floatsisf
	adds r2, r0, 0
	cmp r4, 0
	bge _08144556
	ldr r1, =0x47800000
	bl __addsf3
	adds r2, r0, 0
_08144556:
	ldr r0, =0x40800000
	adds r1, r2, 0
	bl __divsf3
	bl __negsf2
	mov r1, r8
	str r0, [r1]
	movs r0, 0x90
	adds r0, r5
	mov r8, r0
	adds r5, 0x8C
	movs r1, 0
	ldrsh r4, [r7, r1]
	adds r0, r4, 0
	bl __floatsisf
	adds r2, r0, 0
	cmp r4, 0
	bge _08144586
	ldr r1, =0x47800000
	bl __addsf3
	adds r2, r0, 0
_08144586:
	ldr r0, [r5]
	adds r1, r2, 0
	bl __divsf3
	bl __negsf2
	mov r1, r8
	str r0, [r1]
	adds r1, r6, 0
	adds r1, 0x2A
	movs r0, 0x2
	strb r0, [r1]
	adds r2, r6, 0
	adds r2, 0x3F
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	movs r1, 0x11
	negs r1, r1
	ands r0, r1
	strb r0, [r2]
	movs r0, 0x3
	strh r0, [r6, 0x30]
	ldr r0, =sub_8144410
	str r0, [r6, 0x1C]
_081445B8:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144514

	thumb_func_start sub_81445D8
sub_81445D8: @ 81445D8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r0, 0
	bl sub_8143B84
	ldr r4, =gUnknown_0203AB88
	ldr r0, [r4]
	adds r0, 0x94
	ldr r0, [r0]
	ldr r1, =0x42700000
	bl __gtsf2
	cmp r0, 0
	bgt _0814468A
	movs r0, 0x5D
	bl m4aSongNumStartOrChange
	ldr r5, [r4]
	movs r0, 0x98
	adds r0, r5
	mov r8, r0
	adds r7, r5, 0
	adds r7, 0x84
	movs r1, 0
	ldrsh r4, [r7, r1]
	adds r0, r4, 0
	bl __floatsisf
	adds r2, r0, 0
	cmp r4, 0
	bge _08144620
	ldr r1, =0x47800000
	bl __addsf3
	adds r2, r0, 0
_08144620:
	ldr r0, =0x41a00000
	adds r1, r2, 0
	bl __divsf3
	bl __negsf2
	mov r1, r8
	str r0, [r1]
	movs r0, 0x90
	adds r0, r5
	mov r8, r0
	adds r0, r5, 0
	adds r0, 0x8C
	ldr r1, [r0]
	ldr r0, =0x3f800000
	bl __subsf3
	adds r5, r0, 0
	movs r1, 0
	ldrsh r4, [r7, r1]
	adds r0, r4, 0
	bl __floatsisf
	adds r2, r0, 0
	cmp r4, 0
	bge _0814465C
	ldr r1, =0x47800000
	bl __addsf3
	adds r2, r0, 0
_0814465C:
	adds r0, r5, 0
	adds r1, r2, 0
	bl __divsf3
	mov r1, r8
	str r0, [r1]
	adds r1, r6, 0
	adds r1, 0x2A
	movs r0, 0x1
	strb r0, [r1]
	adds r2, r6, 0
	adds r2, 0x3F
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	movs r1, 0x11
	negs r1, r1
	ands r0, r1
	strb r0, [r2]
	movs r0, 0x2
	strh r0, [r6, 0x30]
	ldr r0, =sub_8144514
	str r0, [r6, 0x1C]
_0814468A:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81445D8

	thumb_func_start sub_81446AC
sub_81446AC: @ 81446AC
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0
	movs r0, 0x1
	strh r0, [r4, 0x30]
	strh r1, [r4, 0x32]
	adds r0, r4, 0
	bl sub_8143B84
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r1, [r2]
	movs r0, 0x5
	negs r0, r0
	ands r0, r1
	strb r0, [r2]
	ldr r0, =sub_81445D8
	str r0, [r4, 0x1C]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81446AC

	thumb_func_start sub_81446DC
sub_81446DC: @ 81446DC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r8, r0
	ldr r1, =gUnknown_085B7B0A
	mov r0, sp
	movs r2, 0x8
	bl memcpy
	mov r1, r8
	ldrh r0, [r1, 0x3C]
	subs r0, 0x2
	lsls r0, 16
	lsrs r0, 16
	mov r9, r0
	ldr r5, =gUnknown_0203AB88
	ldr r0, =gSpriteTemplate_85B79F8
	movs r2, 0xC
	negs r2, r2
	movs r1, 0x24
	movs r3, 0x32
	bl CreateSprite
	ldr r1, [r5]
	adds r1, 0x73
	strb r0, [r1]
	ldr r4, =gSpriteTemplate_85B7ABC
	mov r3, r8
	movs r0, 0x2E
	ldrsh r2, [r3, r0]
	lsls r2, 2
	mov r1, sp
	adds r0, r1, r2
	movs r3, 0
	ldrsh r1, [r0, r3]
	mov r0, sp
	adds r0, 0x2
	adds r0, r2
	movs r3, 0
	ldrsh r2, [r0, r3]
	adds r0, r4, 0
	movs r3, 0x3B
	bl CreateSprite
	ldr r1, [r5]
	adds r1, 0x74
	strb r0, [r1]
	adds r4, 0x18
	adds r0, r4, 0
	movs r1, 0x24
	movs r2, 0x8C
	movs r3, 0x33
	bl CreateSprite
	ldr r1, [r5]
	adds r1, 0x75
	strb r0, [r1]
	ldr r3, =gSprites
	ldr r0, [r5]
	adds r0, 0x75
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	ldrb r2, [r0, 0x1]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0, 0x1]
	movs r7, 0
	adds r6, r3, 0
	ldr r0, =gUnknown_085B6348
	mov r12, r0
	mov r10, r5
_0814477C:
	ldr r0, [r5]
	adds r3, r7, 0
	adds r3, 0x37
	adds r0, 0x3C
	adds r0, r3
	ldrb r0, [r0]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r6
	adds r1, 0x3E
	ldrb r2, [r1]
	movs r0, 0x3
	negs r0, r0
	ands r0, r2
	strb r0, [r1]
	ldr r0, [r5]
	adds r0, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x4
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r5]
	adds r0, 0x3C
	adds r0, r3
	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, 0x3C
	adds r0, r3
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x80
	orrs r1, r2
	strb r1, [r0]
	ldr r4, [r5]
	adds r2, r4, 0
	adds r2, 0x3C
	adds r2, r3
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r1, r4, 0
	adds r1, 0x73
	ldrb r1, [r1]
	strh r1, [r0, 0x36]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r1, r4, 0
	adds r1, 0x74
	ldrb r1, [r1]
	strh r1, [r0, 0x38]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r1, r4, 0
	adds r1, 0x75
	ldrb r1, [r1]
	strh r1, [r0, 0x3A]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	mov r1, r9
	strh r1, [r0, 0x32]
	ldrb r0, [r2]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r6
	mov r0, r8
	movs r1, 0x3C
	ldrsh r3, [r0, r1]
	ldrb r1, [r4, 0x4]
	lsls r1, 30
	lsrs r0, r1, 25
	add r0, r12
	ldrb r0, [r0, 0x1]
	muls r3, r0
	lsrs r1, 25
	add r1, r12
	ldrb r0, [r1, 0x2]
	ldr r1, =0x0000ffff
	adds r0, r1
	adds r3, r0
	strh r3, [r2, 0x34]
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r2, =gSprites
	cmp r7, 0x2
	bls _0814477C
	mov r3, r10
	ldr r0, [r3]
	adds r0, 0x74
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r1, [r0]
	movs r2, 0x2
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r3]
	mov r1, r8
	str r1, [r0, 0x38]
	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_81446DC

	thumb_func_start sub_81448B8
sub_81448B8: @ 81448B8
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	adds r7, r0, 0
	movs r0, 0
	mov r8, r0
	ldr r1, =gUnknown_085B7B12
	mov r0, sp
	movs r2, 0x8
	bl memcpy
	ldrh r0, [r7, 0x3C]
	subs r0, 0x2
	lsls r0, 16
	lsrs r0, 16
	mov r9, r0
	ldr r0, =gSpriteTemplate_85B7A10
	movs r1, 0x2E
	ldrsh r2, [r7, r1]
	lsls r2, 2
	mov r3, sp
	adds r1, r3, r2
	movs r3, 0
	ldrsh r1, [r1, r3]
	mov r4, sp
	adds r4, 0x2
	adds r2, r4, r2
	movs r3, 0
	ldrsh r2, [r2, r3]
	movs r3, 0x32
	bl CreateSprite
	ldr r5, =gUnknown_0203AB88
	ldr r1, [r5]
	adds r1, 0x73
	strb r0, [r1]
	ldr r0, [r5]
	adds r0, 0x73
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r6, =gSprites
	adds r0, r6
	ldrh r1, [r7, 0x2E]
	lsls r1, 24
	lsrs r1, 24
	bl StartSpriteAnim
	ldr r0, =gUnknown_085B7AEC
	movs r1, 0x2E
	ldrsh r2, [r7, r1]
	lsls r2, 2
	mov r3, sp
	adds r1, r3, r2
	movs r3, 0
	ldrsh r1, [r1, r3]
	adds r4, r2
	movs r3, 0
	ldrsh r2, [r4, r3]
	movs r3, 0x33
	bl CreateSprite
	ldr r1, [r5]
	adds r1, 0x74
	strb r0, [r1]
	ldr r0, [r5]
	adds r0, 0x74
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r2, 0x80
	orrs r1, r2
	strb r1, [r0]
	ldr r0, [r5]
	adds r0, 0x74
	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]
	mov r0, r9
	lsls r2, r0, 16
	asrs r2, 16
	ldr r3, =gUnknown_085B6348
	ldr r0, [r5]
	ldrb r1, [r0, 0x4]
	lsls r1, 30
	lsrs r0, r1, 25
	adds r0, r3
	ldrb r0, [r0, 0x1]
	muls r2, r0
	lsrs r1, 25
	adds r1, r3
	ldrh r0, [r1, 0x10]
	adds r0, 0x2D
	adds r2, r0
	strh r2, [r7, 0x3C]
_08144992:
	ldr r0, =gUnknown_0203AB88
	ldr r4, [r0]
	mov r1, r8
	adds r2, r4, r1
	adds r2, 0x73
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r1, r4, 0
	adds r1, 0x73
	ldrb r1, [r1]
	strh r1, [r0, 0x36]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	adds r3, r4, 0
	adds r3, 0x74
	ldrb r1, [r3]
	strh r1, [r0, 0x38]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	ldrb r1, [r3]
	strh r1, [r0, 0x3A]
	ldrb r1, [r2]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r6
	mov r3, r9
	strh r3, [r0, 0x32]
	ldrb r0, [r2]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r6
	ldrh r0, [r7, 0x3C]
	subs r0, 0x2D
	strh r0, [r1, 0x34]
	mov r0, r8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	cmp r0, 0x1
	bls _08144992
	str r7, [r4, 0x38]
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81448B8

	thumb_func_start sub_8144A24
sub_8144A24: @ 8144A24
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x14
	adds r7, r0, 0
	movs r0, 0
	mov r9, r0
	movs r1, 0x5
	mov r8, r1
	str r0, [sp, 0xC]
	mov r0, sp
	movs r1, 0
	movs r2, 0xA
	bl memset
	bl Random
	lsls r0, 16
	lsrs r0, 16
	str r0, [sp, 0x10]
	ldr r3, _08144B10  @ =gUnknown_0203AB88
	ldr r0, [r3]
	adds r0, 0x7D
	movs r5, 0x1
	strb r5, [r0]
	ldr r2, [r3]
	ldrb r0, [r2, 0x3]
	movs r1, 0x20
	orrs r0, r1
	strb r0, [r2, 0x3]
	ldr r2, [r3]
	ldrb r1, [r2, 0x3]
	movs r0, 0x41
	negs r0, r0
	ands r0, r1
	strb r0, [r2, 0x3]
	ldr r0, [r3]
	adds r0, 0x7E
	movs r1, 0xFF
	strb r1, [r0]
	ldr r6, [r3]
	adds r4, r6, 0
	adds r4, 0x88
	movs r1, 0x34
	ldrsh r0, [r7, r1]
	bl __floatsisf
	str r0, [r4]
	adds r1, r6, 0
	adds r1, 0x98
	ldr r0, _08144B14  @ =0x00000000
	str r0, [r1]
	adds r2, r6, 0
	adds r2, 0x8C
	ldr r1, _08144B18  @ =gUnknown_085B6348
	ldrb r0, [r6, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r1, 0x1C
	adds r0, r1
	ldr r0, [r0]
	str r0, [r2]
	ldrb r0, [r6, 0x4]
	lsls r0, 30
	lsrs r0, 30
	lsls r1, r0, 4
	subs r1, r0
	lsls r1, 1
	adds r1, 0x21
	ldrb r0, [r6, 0x3]
	lsls r0, 27
	lsrs r0, 27
	subs r5, r0
	lsls r0, r5, 4
	subs r0, r5
	adds r1, r0
	lsls r1, 16
	lsrs r1, 16
	mov r5, r9
	movs r0, 0x34
	ldrsh r2, [r7, r0]
_08144ACA:
	cmp r1, r2
	bge _08144AD6
	adds r0, r1, 0
	adds r0, 0x5A
	cmp r2, r0
	ble _08144B38
_08144AD6:
	cmp r5, 0x3
	beq _08144B1C
	adds r0, r1, 0
	adds r0, 0x5A
	lsls r0, 16
	lsrs r1, r0, 16
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _08144ACA
_08144AEC:
	ldr r0, _08144B10  @ =gUnknown_0203AB88
	ldr r0, [r0]
	ldrb r1, [r0, 0x3]
	movs r0, 0x1F
	ands r0, r1
	cmp r0, 0
	beq _08144B64
	movs r1, 0x2E
	ldrsh r0, [r7, r1]
	cmp r0, 0
	beq _08144B58
	movs r0, 0x98
	lsls r0, 1
	movs r1, 0x3F
	negs r1, r1
	bl PlayCry1
	b _08144B70
	.align 2, 0
_08144B10:
	.4byte gUnknown_0203AB88
_08144B14:
	.4byte 0x00000000
_08144B18:
	.4byte gUnknown_085B6348
_08144B1C:
	movs r0, 0x1
	strh r0, [r7, 0x2E]
	ldr r0, =gUnknown_0203AB88
	ldr r2, [r0]
	ldrb r1, [r2, 0x3]
	movs r0, 0x20
	negs r0, r0
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r2, 0x3]
	b _08144AEC
	.pool
_08144B38:
	lsrs r0, r5, 1
	strh r0, [r7, 0x2E]
	ldr r0, =gUnknown_0203AB88
	ldr r3, [r0]
	movs r1, 0x1
	ands r1, r5
	ldrb r2, [r3, 0x3]
	movs r0, 0x20
	negs r0, r0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0x3]
	b _08144AEC
	.pool
_08144B58:
	movs r0, 0x98
	lsls r0, 1
	movs r1, 0x3F
	bl PlayCry1
	b _08144B70
_08144B64:
	movs r0, 0x99
	lsls r0, 1
	movs r1, 0x3F
	negs r1, r1
	bl PlayCry1
_08144B70:
	movs r0, 0x2
	mov r10, r0
	ldr r4, =gUnknown_0203AB88
	ldr r5, [r4]
	adds r0, r5, 0
	adds r0, 0x7F
	ldrb r0, [r0]
	adds r0, 0x2
	movs r1, 0xC
	bl __modsi3
	lsls r0, 24
	lsrs r6, r0, 24
	ldrb r1, [r5, 0x3]
	movs r0, 0x1F
	ands r0, r1
	cmp r0, 0x1
	bne _08144BA8
	ldrb r1, [r5, 0x4]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0x1
	bne _08144BA8
	mov r0, r8
	adds r0, 0x6
	b _08144BAC
	.pool
_08144BA8:
	mov r0, r8
	add r0, r10
_08144BAC:
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	mov r5, r10
	cmp r5, r8
	bcs _08144C18
	ldr r1, =gUnknown_085B6154+0xC
	mov r10, r1
_08144BBC:
	ldr r3, [r4]
	lsls r0, r6, 3
	ldr r1, =gUnknown_085B62E4+0x4
	adds r0, r1
	ldr r1, [r3, 0x8]
	ldr r2, [r0]
	ands r1, r2
	cmp r1, 0
	bne _08144C02
	mov r0, r9
	adds r1, r0, 0x1
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	add r0, sp
	strb r5, [r0]
	ldr r0, [sp, 0xC]
	cmp r0, 0
	bne _08144C02
	ldrb r1, [r3, 0x1A]
	lsls r1, 28
	lsrs r1, 28
	adds r0, r3, 0
	adds r0, 0x1B
	adds r0, r1
	ldrb r1, [r0]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 2
	add r0, r10
	ldr r0, [r0]
	ands r2, r0
	cmp r2, 0
	beq _08144C02
	str r5, [sp, 0xC]
_08144C02:
	adds r0, r6, 0x1
	movs r1, 0xC
	bl __modsi3
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r8
	bcc _08144BBC
_08144C18:
	ldr r0, [r4]
	ldrb r1, [r0, 0x3]
	lsls r1, 27
	lsrs r1, 27
	adds r1, 0x1
	ldrb r0, [r0, 0x2]
	ands r1, r0
	cmp r1, 0
	beq _08144C48
	ldr r1, [sp, 0xC]
	cmp r1, 0
	beq _08144C48
	movs r0, 0xFF
	ldr r1, [sp, 0x10]
	ands r0, r1
	cmp r0, 0xBF
	bhi _08144C48
	mov r0, sp
	ldrh r0, [r0, 0xC]
	b _08144C54
	.pool
_08144C48:
	ldr r0, [sp, 0x10]
	mov r1, r9
	bl __modsi3
	add r0, sp
	ldrb r0, [r0]
_08144C54:
	strh r0, [r7, 0x3C]
	ldr r1, =sub_8144168
	str r1, [r7, 0x1C]
	add sp, 0x14
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144A24

	thumb_func_start sub_8144C70
sub_8144C70: @ 8144C70
	push {r4,lr}
	adds r2, r0, 0
	ldrh r0, [r2, 0x30]
	adds r1, r0, 0x1
	strh r1, [r2, 0x30]
	lsls r0, 16
	asrs r0, 16
	movs r3, 0x34
	ldrsh r1, [r2, r3]
	cmp r0, r1
	blt _08144CC0
	ldrh r0, [r2, 0x20]
	subs r0, 0x2
	strh r0, [r2, 0x20]
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x10
	negs r1, r1
	cmp r0, r1
	bge _08144CC0
	ldr r4, =gUnknown_0203AB88
	ldr r3, [r4]
	ldrb r1, [r3, 0x3]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	bne _08144CAC
	movs r0, 0x40
	orrs r0, r1
	strb r0, [r3, 0x3]
_08144CAC:
	adds r0, r2, 0
	bl DestroySprite
	ldr r1, [r4]
	movs r0, 0
	strb r0, [r1, 0x1]
	ldr r1, [r4]
	ldr r0, =gUnknown_085B7B1A
	ldrh r0, [r0]
	strh r0, [r1, 0x34]
_08144CC0:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144C70

	thumb_func_start sub_8144CD0
sub_8144CD0: @ 8144CD0
	push {r4,lr}
	sub sp, 0x18
	adds r4, r0, 0
	ldr r1, =gUnknown_085B7B2E
	mov r0, sp
	movs r2, 0x18
	bl memcpy
	ldrh r0, [r4, 0x30]
	adds r2, r0, 0x1
	strh r2, [r4, 0x30]
	lsls r0, 16
	asrs r0, 16
	movs r3, 0x34
	ldrsh r1, [r4, r3]
	cmp r0, r1
	bge _08144D54
	movs r0, 0x1
	ands r2, r0
	cmp r2, 0
	beq _08144D2E
	ldr r3, =gSpriteCoordOffsetY
	movs r0, 0x3C
	ldrsh r2, [r4, r0]
	lsls r2, 1
	movs r1, 0x32
	ldrsh r0, [r4, r1]
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	lsls r0, 3
	adds r2, r0
	mov r1, sp
	adds r0, r1, r2
	ldrh r0, [r0]
	strh r0, [r3]
	movs r3, 0x3C
	ldrsh r2, [r4, r3]
	adds r1, r2, 0x1
	adds r0, r1, 0
	cmp r1, 0
	bge _08144D26
	adds r0, r2, 0x4
_08144D26:
	asrs r0, 2
	lsls r0, 2
	subs r0, r1, r0
	strh r0, [r4, 0x3C]
_08144D2E:
	adds r3, r4, 0
	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]
	b _08144D7E
	.pool
_08144D54:
	ldr r1, =gSpriteCoordOffsetY
	movs r0, 0
	strh r0, [r1]
	ldr r2, =gSprites
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	adds r0, 0x73
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x2C
	ldrb r2, [r0]
	movs r1, 0x41
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	adds r0, r4, 0
	bl DestroySprite
_08144D7E:
	add sp, 0x18
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144CD0

	thumb_func_start sub_8144D94
sub_8144D94: @ 8144D94
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrh r0, [r5, 0x30]
	adds r0, 0x1
	strh r0, [r5, 0x30]
	movs r1, 0x30
	ldrsh r0, [r5, r1]
	bl __floatsisf
	adds r4, r0, 0
	ldr r1, =0x3d1fbe77
	bl __mulsf3
	adds r1, r4, 0
	bl __mulsf3
	bl __fixsfsi
	strh r0, [r5, 0x26]
	ldr r0, =gUnknown_0203AB88
	ldr r3, [r0]
	ldr r2, =gUnknown_085B7B1A
	ldrb r0, [r3, 0x1]
	subs r0, 0x1
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	lsls r0, 1
	adds r0, r2
	ldrh r0, [r0]
	strh r0, [r3, 0x34]
	ldrb r0, [r3, 0x1]
	cmp r0, 0x12
	bhi _08144DDC
	adds r0, 0x1
	strb r0, [r3, 0x1]
_08144DDC:
	movs r1, 0x30
	ldrsh r0, [r5, r1]
	cmp r0, 0x3C
	ble _08144E3E
	movs r0, 0
	strh r0, [r5, 0x30]
	ldr r3, =sub_8144C70
	str r3, [r5, 0x1C]
	ldr r2, =gSprites
	movs r0, 0x3A
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r4, r2, 0
	adds r4, 0x1C
	adds r0, r4
	str r3, [r0]
	movs r0, 0x3A
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =0x0000fffe
	strh r1, [r0, 0x30]
	movs r0, 0x38
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r2, [r0]
	movs r1, 0x5
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	movs r0, 0x38
	ldrsh r1, [r5, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r4
	ldr r1, =sub_8144CD0
	str r1, [r0]
	movs r0, 0xD6
	bl m4aSongNumStart
_08144E3E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144D94

	thumb_func_start sub_8144E60
sub_8144E60: @ 8144E60
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r1, 0x3C
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _08144EE4
	ldr r0, =gUnknown_0203AB88
	ldr r3, [r0]
	ldr r1, [r3, 0x38]
	movs r2, 0x2E
	ldrsh r0, [r1, r2]
	cmp r0, 0
	bne _08144E94
	movs r0, 0x34
	ldrsh r2, [r1, r0]
	ldr r1, =gUnknown_085B6348
	ldrb r0, [r3, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrh r0, [r0, 0x8]
	b _08144EA6
	.pool
_08144E94:
	movs r0, 0x34
	ldrsh r2, [r1, r0]
	ldr r1, =gUnknown_085B6348
	ldrb r0, [r3, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrh r0, [r0, 0x8]
	adds r0, 0xB4
_08144EA6:
	cmp r2, r0
	bne _08144F7C
	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, 0x3C]
	adds r0, 0x1
	strh r0, [r4, 0x3C]
	movs r0, 0x2B
	bl m4aSongNumStart
	ldr r2, =gUnknown_0203AB88
	ldr r1, [r2]
	movs r0, 0x1
	strb r0, [r1, 0x1]
	ldr r1, [r2]
	ldr r0, =gUnknown_085B7B1A
	ldrh r0, [r0]
	strh r0, [r1, 0x34]
	b _08144F7C
	.pool
_08144EE4:
	ldr r5, =gUnknown_0203AB88
	ldr r3, [r5]
	ldr r2, =gUnknown_085B7B1A
	ldrb r0, [r3, 0x1]
	subs r0, 0x1
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	lsls r0, 1
	adds r0, r2
	ldrh r0, [r0]
	strh r0, [r3, 0x34]
	ldrb r0, [r3, 0x1]
	cmp r0, 0x12
	bhi _08144F06
	adds r0, 0x1
	strb r0, [r3, 0x1]
_08144F06:
	ldr r3, [r5]
	ldr r1, [r3, 0x38]
	movs r2, 0x2E
	ldrsh r0, [r1, r2]
	cmp r0, 0
	bne _08144F30
	movs r0, 0x34
	ldrsh r2, [r1, r0]
	ldr r1, =gUnknown_085B6348
	ldrb r0, [r3, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrh r0, [r0, 0xA]
	b _08144F42
	.pool
_08144F30:
	movs r0, 0x34
	ldrsh r2, [r1, r0]
	ldr r1, =gUnknown_085B6348
	ldrb r0, [r3, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrh r0, [r0, 0xA]
	adds r0, 0xB4
_08144F42:
	cmp r2, r0
	bne _08144F7C
	ldr r2, =gSprites
	movs r0, 0x36
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r1, r2, 0
	adds r1, 0x1C
	adds r0, r1
	ldr r1, =sub_8144D94
	str r1, [r0]
	movs r0, 0x36
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x3E
	ldrb r2, [r0]
	movs r1, 0x5
	negs r1, r1
	ands r1, r2
	strb r1, [r0]
	ldr r0, =SpriteCallbackDummy
	str r0, [r4, 0x1C]
	movs r0, 0
	strh r0, [r4, 0x3C]
_08144F7C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144E60

	thumb_func_start sub_8144F94
sub_8144F94: @ 8144F94
	adds r0, 0x3E
	ldrb r3, [r0]
	lsls r1, r3, 29
	lsrs r1, 31
	movs r2, 0x1
	eors r2, r1
	lsls r2, 2
	movs r1, 0x5
	negs r1, r1
	ands r1, r3
	orrs r1, r2
	strb r1, [r0]
	bx lr
	thumb_func_end sub_8144F94

	thumb_func_start sub_8144FB0
sub_8144FB0: @ 8144FB0
	push {r4,r5,lr}
	adds r4, r0, 0
	ldrh r2, [r4, 0x22]
	movs r0, 0x22
	ldrsh r1, [r4, r0]
	movs r0, 0x10
	negs r0, r0
	cmp r1, r0
	ble _08144FC8
	subs r0, r2, 0x1
	strh r0, [r4, 0x22]
	b _0814501C
_08144FC8:
	ldr r0, =SpriteCallbackDummy
	str r0, [r4, 0x1C]
	adds r2, r4, 0
	adds r2, 0x3E
	ldrb r0, [r2]
	movs r1, 0x4
	orrs r0, r1
	strb r0, [r2]
	subs r2, 0x12
	ldrb r0, [r2]
	movs r1, 0x40
	orrs r0, r1
	strb r0, [r2]
	movs r0, 0x5E
	bl m4aSongNumStop
	adds r0, r4, 0
	bl DestroySprite
	ldr r5, =gSprites
	ldr r4, =gUnknown_0203AB88
	ldr r0, [r4]
	adds r0, 0x74
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrb r0, [r0, 0x3]
	lsls r0, 26
	lsrs r0, 27
	bl FreeOamMatrix
	ldr r0, [r4]
	adds r0, 0x74
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	bl DestroySprite
_0814501C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8144FB0

	thumb_func_start sub_8145030
sub_8145030: @ 8145030
	push {r4,lr}
	adds r4, r0, 0
	ldrh r1, [r4, 0x30]
	movs r2, 0x30
	ldrsh r0, [r4, r2]
	cmp r0, 0
	blt _0814505A
	subs r1, 0x1
	strh r1, [r4, 0x30]
	ldrh r0, [r4, 0x22]
	subs r0, 0x1
	strh r0, [r4, 0x22]
	lsls r1, 16
	cmp r1, 0
	bne _081450C6
	adds r0, r4, 0
	adds r0, 0x2B
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _081450C6
	b _08145080
_0814505A:
	ldrh r1, [r4, 0x34]
	movs r2, 0x34
	ldrsh r0, [r4, r2]
	cmp r0, 0
	blt _08145090
	subs r0, r1, 0x1
	strh r0, [r4, 0x34]
	adds r0, r4, 0
	adds r0, 0x2C
	ldrb r1, [r0]
	movs r0, 0x3F
	ands r0, r1
	cmp r0, 0
	bne _081450C6
	adds r0, r4, 0
	adds r0, 0x2B
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _08145088
_08145080:
	ldrh r0, [r4, 0x26]
	adds r0, 0x1
	strh r0, [r4, 0x26]
	b _081450C6
_08145088:
	ldrh r0, [r4, 0x26]
	subs r0, 0x1
	strh r0, [r4, 0x26]
	b _081450C6
_08145090:
	movs r0, 0x2B
	bl m4aSongNumStart
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldr r0, [r0, 0x38]
	ldrh r1, [r0, 0x2E]
	adds r1, 0x4
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl StartSpriteAnim
	ldr r0, =sub_8144FB0
	str r0, [r4, 0x1C]
	ldr r2, =gSprites
	movs r0, 0x3A
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	adds r0, 0x2C
	ldrb r2, [r0]
	movs r1, 0x7F
	ands r1, r2
	strb r1, [r0]
_081450C6:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8145030

	thumb_func_start sub_81450D8
sub_81450D8: @ 81450D8
	push {r4,r5,lr}
	sub sp, 0x14
	adds r4, r0, 0
	ldr r1, =gUnknown_085B7B46
	mov r0, sp
	movs r2, 0x2
	bl memcpy
	add r5, sp, 0x4
	ldr r1, =gUnknown_085B7B48
	adds r0, r5, 0
	movs r2, 0x10
	bl memcpy
	ldrh r0, [r4, 0x30]
	subs r1, r0, 0x1
	strh r1, [r4, 0x30]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	ble _0814516C
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldr r0, [r0, 0x38]
	movs r1, 0x2E
	ldrsh r0, [r0, r1]
	add r0, sp
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	lsls r0, 1
	ldrh r2, [r4, 0x20]
	adds r0, r2
	strh r0, [r4, 0x20]
	bl IsSEPlaying
	lsls r0, 24
	cmp r0, 0
	beq _08145208
	movs r1, 0x20
	ldrsh r0, [r4, r1]
	movs r4, 0x74
	subs r4, r0
	lsrs r0, r4, 31
	adds r4, r0
	asrs r4, 1
	negs r4, r4
	ldr r0, =gMPlayInfo_SE1
	ldr r5, =0x0000ffff
	lsls r4, 24
	asrs r4, 24
	adds r1, r5, 0
	adds r2, r4, 0
	bl m4aMPlayPanpotControl
	ldr r0, =gMPlayInfo_SE2
	adds r1, r5, 0
	adds r2, r4, 0
	bl m4aMPlayPanpotControl
	b _08145208
	.pool
_0814516C:
	lsls r0, r1, 16
	cmp r0, 0
	blt _081451BC
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldr r0, [r0, 0x38]
	movs r2, 0x2E
	ldrsh r0, [r0, r2]
	add r0, sp
	movs r2, 0
	ldrsb r2, [r0, r2]
	movs r1, 0x30
	ldrsh r0, [r4, r1]
	movs r1, 0x7
	subs r0, r1, r0
	lsls r0, 1
	adds r0, r5, r0
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	muls r0, r2
	ldrh r2, [r4, 0x20]
	adds r0, r2
	strh r0, [r4, 0x20]
	movs r2, 0x30
	ldrsh r0, [r4, r2]
	subs r1, r0
	lsls r1, 1
	mov r0, sp
	adds r0, 0x5
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	ldrh r1, [r4, 0x22]
	adds r0, r1
	strh r0, [r4, 0x22]
	b _08145208
	.pool
_081451BC:
	movs r0, 0x5E
	bl m4aSongNumStartOrChange
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldr r0, [r0, 0x38]
	movs r2, 0x2E
	ldrsh r0, [r0, r2]
	cmp r0, 0
	bne _081451E0
	movs r0, 0x98
	lsls r0, 1
	movs r1, 0x3F
	bl PlayCry1
	b _081451EC
	.pool
_081451E0:
	movs r0, 0x98
	lsls r0, 1
	movs r1, 0x3F
	negs r1, r1
	bl PlayCry1
_081451EC:
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldr r0, [r0, 0x38]
	ldrh r1, [r0, 0x2E]
	adds r1, 0x2
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl StartSpriteAnim
	movs r0, 0x2D
	strh r0, [r4, 0x30]
	ldr r0, =sub_8145030
	str r0, [r4, 0x1C]
_08145208:
	add sp, 0x14
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81450D8

	thumb_func_start sub_8145218
sub_8145218: @ 8145218
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	ldr r1, =gUnknown_085B7B46
	mov r0, sp
	movs r2, 0x2
	bl memcpy
	ldrh r0, [r4, 0x30]
	subs r1, r0, 0x1
	strh r1, [r4, 0x30]
	lsls r0, 16
	cmp r0, 0
	blt _08145284
	ldr r0, =gUnknown_0203AB88
	ldr r0, [r0]
	ldr r0, [r0, 0x38]
	movs r1, 0x2E
	ldrsh r0, [r0, r1]
	add r0, sp
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	lsls r0, 1
	ldrh r2, [r4, 0x20]
	adds r0, r2
	strh r0, [r4, 0x20]
	ldr r1, =gSprites
	movs r2, 0x3A
	ldrsh r0, [r4, r2]
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r1
	adds r2, 0x3E
	ldrb r3, [r2]
	lsls r0, r3, 29
	lsrs r0, 31
	movs r1, 0x1
	eors r1, r0
	lsls r1, 2
	movs r0, 0x5
	negs r0, r0
	ands r0, r3
	orrs r0, r1
	strb r0, [r2]
	b _08145288
	.pool
_08145284:
	ldr r0, =sub_8144F94
	str r0, [r4, 0x1C]
_08145288:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8145218

	thumb_func_start sub_8145294
sub_8145294: @ 8145294
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gUnknown_0203AB88
	ldr r3, [r0]
	ldr r1, [r3, 0x38]
	movs r2, 0x2E
	ldrsh r0, [r1, r2]
	cmp r0, 0
	bne _081452DC
	movs r0, 0x34
	ldrsh r2, [r1, r0]
	ldr r1, =gUnknown_085B6348
	ldrb r0, [r3, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrh r0, [r0, 0x12]
	adds r0, 0x5A
	cmp r2, r0
	bne _0814533E
	ldr r2, =gSprites
	movs r0, 0x3A
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r3, 0x34
	b _08145306
	.pool
_081452DC:
	movs r0, 0x34
	ldrsh r2, [r1, r0]
	ldr r1, =gUnknown_085B6348
	ldrb r0, [r3, 0x4]
	lsls r0, 30
	lsrs r0, 25
	adds r0, r1
	ldrh r0, [r0, 0x14]
	movs r1, 0x87
	lsls r1, 1
	adds r0, r1
	cmp r2, r0
	bne _0814533E
	ldr r2, =gSprites
	movs r0, 0x3A
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	movs r3, 0x2E
_08145306:
	strh r3, [r0, 0x30]
	movs r0, 0x36
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	strh r3, [r0, 0x30]
	movs r0, 0x3A
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r2, 0x1C
	adds r0, r2
	ldr r1, =sub_8145218
	str r1, [r0]
	movs r0, 0x36
	ldrsh r1, [r4, r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r2
	ldr r1, =sub_81450D8
	str r1, [r0]
	movs r0, 0x2B
	bl m4aSongNumStart
_0814533E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8145294

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