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

	.syntax unified

	.text
    
   thumb_func_start CB2_TestBattleTransition
CB2_TestBattleTransition: @ 8145E84
	push {r4,lr}
	ldr r4, =sTestingTransitionState
	ldrb r0, [r4]
	cmp r0, 0
	beq _08145E98
	cmp r0, 0x1
	beq _08145EAC
	b _08145EC0
	.pool
_08145E98:
	ldr r0, =sTestingTransitionId
	ldrb r0, [r0]
	bl LaunchBattleTransitionTask
	ldrb r0, [r4]
	adds r0, 0x1
	strb r0, [r4]
	b _08145EC0
	.pool
_08145EAC:
	bl IsBattleTransitionDone
	lsls r0, 24
	cmp r0, 0
	beq _08145EC0
	movs r0, 0
	strb r0, [r4]
	ldr r0, =c2_exit_to_overworld_2_switch
	bl SetMainCallback2
_08145EC0:
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end CB2_TestBattleTransition

	thumb_func_start TestBattleTransition
TestBattleTransition: @ 8145EDC
	push {lr}
	ldr r1, =sTestingTransitionId
	strb r0, [r1]
	ldr r0, =CB2_TestBattleTransition
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end TestBattleTransition

	thumb_func_start sub_8145EF4
sub_8145EF4: @ 8145EF4
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gMain
	ldr r1, =sub_8085E50
	str r1, [r2, 0x4]
	bl LaunchBattleTransitionTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8145EF4

	thumb_func_start sub_8145F10
sub_8145F10: @ 8145F10
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	bl LaunchBattleTransitionTask
	pop {r0}
	bx r0
	thumb_func_end sub_8145F10

	thumb_func_start IsBattleTransitionDone
IsBattleTransitionDone: @ 8145F20
	push {r4,lr}
	ldr r0, =Task_BattleTransitionMain
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r1, =gTasks
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	adds r0, r1
	movs r1, 0x26
	ldrsh r0, [r0, r1]
	cmp r0, 0
	bne _08145F4C
	movs r0, 0
	b _08145F60
	.pool
_08145F4C:
	adds r0, r2, 0
	bl DestroyTask
	ldr r4, =sTransitionStructPtr
	ldr r0, [r4]
	bl Free
	movs r0, 0
	str r0, [r4]
	movs r0, 0x1
_08145F60:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end IsBattleTransitionDone

	thumb_func_start LaunchBattleTransitionTask
LaunchBattleTransitionTask: @ 8145F6C
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =Task_BattleTransitionMain
	movs r1, 0x2
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	strh r4, [r1, 0xA]
	ldr r4, =sTransitionStructPtr
	movs r0, 0x3C
	bl AllocZeroed
	str r0, [r4]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end LaunchBattleTransitionTask

	thumb_func_start Task_BattleTransitionMain
Task_BattleTransitionMain: @ 8145FA8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8A98
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08145FBA:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08145FBA
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_BattleTransitionMain

	thumb_func_start sub_8145FE0
sub_8145FE0: @ 8145FE0
	push {r4,lr}
	adds r4, r0, 0
	bl sub_80AC3D0
	ldr r0, =gPlttBufferFaded
	ldr r1, =gPlttBufferUnfaded
	ldr r2, =0x04000100
	bl CpuSet
	ldr r1, =gUnknown_085C8948
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	cmp r0, 0
	bne _0814601C
	movs r0, 0x2
	strh r0, [r4, 0x8]
	movs r0, 0x1
	b _0814602A
	.pool
_0814601C:
	movs r1, 0x4
	bl CreateTask
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
_0814602A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8145FE0

	thumb_func_start sub_8146030
sub_8146030: @ 8146030
	push {r4,lr}
	adds r4, r0, 0
	ldr r1, =gUnknown_085C8948
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _08146054
	movs r0, 0
	b _0814605C
	.pool
_08146054:
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
_0814605C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8146030

	thumb_func_start sub_8146064
sub_8146064: @ 8146064
	push {r4,lr}
	adds r4, r0, 0
	ldr r1, =gUnknown_085C89F0
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0
	bl CreateTask
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146064

	thumb_func_start sub_814608C
sub_814608C: @ 814608C
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0
	strh r0, [r4, 0x26]
	ldr r1, =gUnknown_085C89F0
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	bne _081460B0
	movs r0, 0x1
	strh r0, [r4, 0x26]
_081460B0:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814608C

	thumb_func_start sub_81460BC
sub_81460BC: @ 81460BC
	push {r4,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	adds r4, r0, 0
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r1, r0, r1
	ldrh r2, [r1, 0x8]
	movs r3, 0x8
	ldrsh r0, [r1, r3]
	cmp r0, 0
	bne _081460F4
	adds r0, r2, 0x1
	strh r0, [r1, 0x8]
	movs r0, 0x2
	str r0, [sp]
	movs r0, 0
	movs r1, 0
	movs r2, 0x3
	movs r3, 0x2
	bl sub_8149D78
	b _08146104
	.pool
_081460F4:
	bl sub_8149DDC
	lsls r0, 24
	cmp r0, 0
	beq _08146104
	adds r0, r4, 0
	bl DestroyTask
_08146104:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_81460BC

	thumb_func_start sub_814610C
sub_814610C: @ 814610C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8AA8
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814611E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814611E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814610C

	thumb_func_start sub_8146144
sub_8146144: @ 8146144
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0x4C
	movs r1, 0
	bl SetGpuReg
	movs r0, 0xA
	movs r1, 0x40
	bl SetGpuRegBits
	movs r0, 0xC
	movs r1, 0x40
	bl SetGpuRegBits
	movs r0, 0xE
	movs r1, 0x40
	bl SetGpuRegBits
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8146144

	thumb_func_start sub_8146178
sub_8146178: @ 8146178
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	ldrh r0, [r4, 0xA]
	movs r1, 0xA
	ldrsh r2, [r4, r1]
	cmp r2, 0
	beq _0814618E
	subs r0, 0x1
	strh r0, [r4, 0xA]
	b _081461CE
_0814618E:
	movs r0, 0x4
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xC]
	adds r0, 0x1
	strh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xA
	bne _081461B0
	movs r1, 0x1
	negs r1, r1
	str r2, [sp]
	adds r0, r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
_081461B0:
	ldrh r1, [r4, 0xC]
	movs r0, 0xF
	ands r0, r1
	lsls r1, r0, 4
	orrs r1, r0
	movs r0, 0x4C
	bl SetGpuReg
	movs r1, 0xC
	ldrsh r0, [r4, r1]
	cmp r0, 0xE
	ble _081461CE
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081461CE:
	movs r0, 0
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8146178

	thumb_func_start sub_81461D8
sub_81461D8: @ 81461D8
	push {lr}
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081461F4
	ldr r0, =sub_814610C
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081461F4:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81461D8

	thumb_func_start sub_8146204
sub_8146204: @ 8146204
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8AB4
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08146216:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08146216
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146204

	thumb_func_start sub_814623C
sub_814623C: @ 814623C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r5, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	movs r0, 0x1
	negs r0, r0
	movs r4, 0
	str r4, [sp]
	movs r1, 0x4
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r0, =gUnknown_020393A8
	ldr r1, =sTransitionStructPtr
	ldr r1, [r1]
	movs r2, 0x14
	ldrsh r1, [r1, r2]
	str r4, [sp]
	movs r2, 0xA0
	str r2, [sp, 0x4]
	movs r2, 0
	movs r3, 0x2
	bl sub_8149F98
	ldr r0, =sub_8146320
	bl SetVBlankCallback
	ldr r0, =sub_8146358
	bl SetHBlankCallback
	movs r0, 0x3
	bl EnableInterrupts
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814623C

	thumb_func_start sub_81462A8
sub_81462A8: @ 81462A8
	push {r4,r5,lr}
	sub sp, 0x8
	ldr r4, =sTransitionStructPtr
	ldr r2, [r4]
	ldrb r1, [r2]
	movs r1, 0
	strb r1, [r2]
	ldrh r1, [r0, 0xA]
	adds r1, 0x4
	strh r1, [r0, 0xA]
	ldrh r1, [r0, 0xC]
	adds r1, 0x8
	strh r1, [r0, 0xC]
	ldr r3, =gUnknown_02038C28
	ldr r1, [r4]
	movs r2, 0x14
	ldrsh r1, [r1, r2]
	movs r5, 0xA
	ldrsh r2, [r0, r5]
	movs r5, 0xC
	ldrsh r0, [r0, r5]
	str r0, [sp]
	movs r0, 0xA0
	str r0, [sp, 0x4]
	adds r0, r3, 0
	movs r3, 0x2
	bl sub_8149F98
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _081462FA
	ldr r0, =sub_8146204
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081462FA:
	ldr r0, [r4]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81462A8

	thumb_func_start sub_8146320
sub_8146320: @ 8146320
	push {lr}
	bl sub_8149F2C
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0
	beq _08146344
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_08146344:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146320

	thumb_func_start sub_8146358
sub_8146358: @ 8146358
	ldr r1, =gUnknown_02038C28
	ldr r0, =0x04000006
	ldrh r0, [r0]
	lsls r0, 1
	movs r2, 0xF0
	lsls r2, 3
	adds r1, r2
	adds r0, r1
	ldrh r1, [r0]
	ldr r0, =0x04000014
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_8146358

	thumb_func_start sub_8146384
sub_8146384: @ 8146384
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8ABC
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08146396:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08146396
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146384

	thumb_func_start sub_81463BC
sub_81463BC: @ 81463BC
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r1, 0x4
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldr r0, =gUnknown_020393A8
	movs r2, 0x16
	ldrsh r1, [r1, r2]
	movs r2, 0xA0
	lsls r2, 1
	bl memset
	ldr r0, =sub_81464B0
	bl SetVBlankCallback
	ldr r0, =sub_81464E8
	bl SetHBlankCallback
	movs r0, 0x3
	bl EnableInterrupts
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81463BC

	thumb_func_start sub_8146420
sub_8146420: @ 8146420
	push {r4-r7,lr}
	ldr r1, =sTransitionStructPtr
	ldr r2, [r1]
	ldrb r1, [r2]
	movs r1, 0
	strb r1, [r2]
	ldrh r4, [r0, 0xA]
	ldrh r2, [r0, 0xC]
	lsls r3, r2, 16
	asrs r3, 24
	movs r5, 0x84
	lsls r5, 5
	adds r1, r4, r5
	strh r1, [r0, 0xA]
	movs r1, 0xC0
	lsls r1, 1
	adds r2, r1
	strh r2, [r0, 0xC]
	movs r5, 0
	lsls r7, r3, 16
_08146448:
	lsrs r0, r4, 8
	asrs r1, r7, 16
	bl Sin
	ldr r1, =gUnknown_02038C28
	lsls r2, r5, 1
	adds r2, r1
	ldr r6, =sTransitionStructPtr
	ldr r1, [r6]
	ldrh r1, [r1, 0x16]
	adds r0, r1
	strh r0, [r2]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	movs r1, 0x84
	lsls r1, 5
	adds r0, r4, r1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r5, 0x9F
	bls _08146448
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0814648E
	ldr r0, =sub_8146384
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_0814648E:
	ldr r0, [r6]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146420

	thumb_func_start sub_81464B0
sub_81464B0: @ 81464B0
	push {lr}
	bl sub_8149F2C
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0
	beq _081464D4
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_081464D4:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81464B0

	thumb_func_start sub_81464E8
sub_81464E8: @ 81464E8
	ldr r1, =gUnknown_02038C28
	ldr r0, =0x04000006
	ldrh r0, [r0]
	lsls r0, 1
	movs r2, 0xF0
	lsls r2, 3
	adds r1, r2
	adds r0, r1
	ldrh r1, [r0]
	ldr r0, =0x04000016
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_81464E8

	thumb_func_start sub_8146514
sub_8146514: @ 8146514
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8AFC
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08146526:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08146526
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146514

	thumb_func_start sub_814654C
sub_814654C: @ 814654C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8AC4
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814655E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814655E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814654C

	thumb_func_start sub_8146584
sub_8146584: @ 8146584
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8AE0
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08146596:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08146596
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146584

	thumb_func_start sub_81465BC
sub_81465BC: @ 81465BC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8B14
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081465CE:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081465CE
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81465BC

	thumb_func_start sub_81465F4
sub_81465F4: @ 81465F4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8B2C
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08146606:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08146606
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81465F4

	thumb_func_start sub_814662C
sub_814662C: @ 814662C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8B44
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814663E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814663E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814662C

	thumb_func_start sub_8146664
sub_8146664: @ 8146664
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8B5C
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08146676:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08146676
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146664

	thumb_func_start sub_814669C
sub_814669C: @ 814669C
	push {r4,lr}
	adds r4, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	movs r1, 0
	movs r0, 0x10
	strh r0, [r4, 0xA]
	strh r1, [r4, 0xC]
	strh r1, [r4, 0x10]
	movs r0, 0x80
	lsls r0, 7
	strh r0, [r4, 0x12]
	ldr r0, =sTransitionStructPtr
	ldr r2, [r0]
	movs r0, 0x3F
	strh r0, [r2, 0x2]
	strh r1, [r2, 0x4]
	movs r0, 0xF0
	strh r0, [r2, 0x6]
	movs r0, 0xA0
	strh r0, [r2, 0x8]
	ldr r0, =0x00003f41
	strh r0, [r2, 0xE]
	ldrh r0, [r4, 0xA]
	lsls r0, 8
	ldrh r1, [r4, 0xC]
	orrs r0, r1
	strh r0, [r2, 0x10]
	ldr r0, =gUnknown_02038C28
	movs r2, 0xF0
	movs r1, 0x9F
	ldr r3, =0x000008be
	adds r0, r3
_081466E2:
	strh r2, [r0]
	subs r0, 0x2
	subs r1, 0x1
	cmp r1, 0
	bge _081466E2
	ldr r0, =sub_8146F3C
	bl SetVBlankCallback
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814669C

	thumb_func_start sub_814670C
sub_814670C: @ 814670C
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r5, 0
	movs r0, 0x3C
	strh r0, [r4, 0x18]
	adds r0, r4, 0
	bl sub_814669C
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r0, sp
	strh r5, [r0]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	bl CpuSet
	ldr r0, =gUnknown_085BAED0
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_085BAEB0
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814670C

	thumb_func_start sub_8146760
sub_8146760: @ 8146760
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r5, 0
	movs r0, 0x3C
	strh r0, [r4, 0x18]
	adds r0, r4, 0
	bl sub_814669C
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r0, sp
	strh r5, [r0]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	bl CpuSet
	ldr r0, =gUnknown_085BB4A4
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_085BAEB0
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146760

	thumb_func_start sub_81467B4
sub_81467B4: @ 81467B4
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r0, 0
	movs r5, 0
	movs r0, 0x3C
	strh r0, [r4, 0x18]
	adds r0, r4, 0
	bl sub_814669C
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r0, sp
	strh r5, [r0]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	bl CpuSet
	ldr r0, =gUnknown_085BBC14
	ldr r1, [sp, 0x8]
	movs r2, 0x80
	lsls r2, 5
	bl CpuSet
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81467B4

	thumb_func_start sub_8146800
sub_8146800: @ 8146800
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	bl sub_814669C
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	mov r0, sp
	bl CpuSet
	ldr r0, =gUnknown_085B9330
	ldr r1, [sp, 0x8]
	movs r2, 0xB0
	lsls r2, 2
	bl CpuSet
	ldr r0, =gFieldEffectObjectPalette10
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146800

	thumb_func_start sub_8146854
sub_8146854: @ 8146854
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	adds r7, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r5, =gUnknown_085C9020
	movs r1, 0
	ldr r0, [sp, 0x8]
	mov r9, r0
	ldr r6, =gUnknown_02038C28
	mov r8, r6
	movs r0, 0xF0
	lsls r0, 8
	mov r12, r0
_0814687A:
	movs r0, 0
	lsls r3, r1, 16
	asrs r4, r3, 11
_08146880:
	lsls r2, r0, 16
	asrs r2, 16
	adds r1, r4, r2
	lsls r1, 1
	add r1, r9
	ldrh r0, [r5]
	mov r6, r12
	orrs r0, r6
	strh r0, [r1]
	adds r2, 0x1
	lsls r2, 16
	adds r5, 0x2
	lsrs r0, r2, 16
	asrs r2, 16
	cmp r2, 0x1D
	ble _08146880
	movs r1, 0x80
	lsls r1, 9
	adds r0, r3, r1
	lsrs r1, r0, 16
	asrs r0, 16
	cmp r0, 0x13
	ble _0814687A
	movs r6, 0x10
	ldrsh r2, [r7, r6]
	movs r1, 0x12
	ldrsh r0, [r7, r1]
	str r0, [sp]
	movs r0, 0xA0
	str r0, [sp, 0x4]
	mov r0, r8
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldrh r0, [r7, 0x8]
	adds r0, 0x1
	strh r0, [r7, 0x8]
	movs r0, 0x1
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146854

	thumb_func_start sub_81468E4
sub_81468E4: @ 81468E4
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085BB248
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_02038C28
	movs r1, 0x10
	ldrsh r2, [r4, r1]
	movs r3, 0x12
	ldrsh r1, [r4, r3]
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81468E4

	thumb_func_start sub_814692C
sub_814692C: @ 814692C
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085BB930
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_02038C28
	movs r1, 0x10
	ldrsh r2, [r4, r1]
	movs r3, 0x12
	ldrsh r1, [r4, r3]
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814692C

	thumb_func_start sub_8146974
sub_8146974: @ 8146974
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085BC2B4
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_085BC314
	ldr r1, [sp, 0x8]
	movs r2, 0xA0
	lsls r2, 2
	bl CpuSet
	ldr r0, =gUnknown_02038C28
	movs r1, 0x10
	ldrsh r2, [r4, r1]
	movs r3, 0x12
	ldrsh r1, [r4, r3]
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146974

	thumb_func_start sub_81469CC
sub_81469CC: @ 81469CC
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085BC2D4
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_085BCB14
	ldr r1, [sp, 0x8]
	movs r2, 0xA0
	lsls r2, 2
	bl CpuSet
	ldr r0, =gUnknown_02038C28
	movs r1, 0x10
	ldrsh r2, [r4, r1]
	movs r3, 0x12
	ldrsh r1, [r4, r3]
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81469CC

	thumb_func_start sub_8146A24
sub_8146A24: @ 8146A24
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085BC2F4
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_085BD314
	ldr r1, [sp, 0x8]
	movs r2, 0xA0
	lsls r2, 2
	bl CpuSet
	ldr r0, =gUnknown_02038C28
	movs r1, 0x10
	ldrsh r2, [r4, r1]
	movs r3, 0x12
	ldrsh r1, [r4, r3]
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146A24

	thumb_func_start sub_8146A7C
sub_8146A7C: @ 8146A7C
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	mov r0, sp
	bl CpuSet
	ldr r0, =gUnknown_085BDB34
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_085BE1E8
	ldr r1, [sp, 0x4]
	bl LZ77UnCompVram
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146A7C

	thumb_func_start sub_8146AC8
sub_8146AC8: @ 8146AC8
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r5, [r4, r0]
	adds r0, r5, 0
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _08146B00
	adds r0, r5, 0
	movs r1, 0x1E
	bl __modsi3
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x3
	bl __udivsi3
	lsls r0, 16
	lsrs r0, 11
	ldr r1, =gUnknown_085BEDA0
	adds r0, r1
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
_08146B00:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3A
	ble _08146B18
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	strh r0, [r4, 0xA]
_08146B18:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146AC8

	thumb_func_start sub_8146B24
sub_8146B24: @ 8146B24
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r5, [r4, r0]
	adds r0, r5, 0
	movs r1, 0x5
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _08146B52
	adds r0, r5, 0
	movs r1, 0x5
	bl __divsi3
	lsls r0, 16
	asrs r0, 11
	ldr r1, =gUnknown_085BEEE0
	adds r0, r1
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
_08146B52:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x44
	ble _08146B6E
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	strh r0, [r4, 0xA]
	movs r0, 0x1E
	strh r0, [r4, 0x18]
_08146B6E:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146B24

	thumb_func_start sub_8146B7C
sub_8146B7C: @ 8146B7C
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	ldr r0, =0xffff8000
	movs r1, 0
	str r1, [sp]
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146B7C

	thumb_func_start sub_8146BA8
sub_8146BA8: @ 8146BA8
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08146BDE
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, [r4]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_08146BDE:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146BA8

	thumb_func_start sub_8146BF8
sub_8146BF8: @ 8146BF8
	push {r4,r5,lr}
	sub sp, 0x8
	adds r3, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldrh r1, [r3, 0xE]
	movs r4, 0xE
	ldrsh r0, [r3, r4]
	adds r4, r2, 0
	cmp r0, 0
	beq _08146C1E
	subs r0, r1, 0x1
	strh r0, [r3, 0xE]
	lsls r0, 16
	cmp r0, 0
	bne _08146C28
_08146C1E:
	ldrh r0, [r3, 0xC]
	adds r0, 0x1
	strh r0, [r3, 0xC]
	movs r0, 0x2
	strh r0, [r3, 0xE]
_08146C28:
	ldr r2, [r4]
	ldrh r0, [r3, 0xA]
	lsls r0, 8
	ldrh r1, [r3, 0xC]
	orrs r0, r1
	strh r0, [r2, 0x10]
	movs r5, 0xC
	ldrsh r0, [r3, r5]
	cmp r0, 0xF
	ble _08146C42
	ldrh r0, [r3, 0x8]
	adds r0, 0x1
	strh r0, [r3, 0x8]
_08146C42:
	ldrh r0, [r3, 0x10]
	adds r0, 0x8
	strh r0, [r3, 0x10]
	ldr r0, =0xffffff00
	adds r1, r0, 0
	ldrh r5, [r3, 0x12]
	adds r1, r5
	strh r1, [r3, 0x12]
	ldr r0, =gUnknown_02038C28
	movs r5, 0x10
	ldrsh r2, [r3, r5]
	lsls r1, 16
	asrs r1, 24
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldr r1, [r4]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146BF8

	thumb_func_start sub_8146C8C
sub_8146C8C: @ 8146C8C
	push {r4,r5,lr}
	sub sp, 0x8
	adds r3, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldrh r1, [r3, 0xE]
	movs r4, 0xE
	ldrsh r0, [r3, r4]
	adds r4, r2, 0
	cmp r0, 0
	beq _08146CB2
	subs r0, r1, 0x1
	strh r0, [r3, 0xE]
	lsls r0, 16
	cmp r0, 0
	bne _08146CBC
_08146CB2:
	ldrh r0, [r3, 0xA]
	subs r0, 0x1
	strh r0, [r3, 0xA]
	movs r0, 0x2
	strh r0, [r3, 0xE]
_08146CBC:
	ldr r2, [r4]
	ldrh r0, [r3, 0xA]
	lsls r0, 8
	ldrh r1, [r3, 0xC]
	orrs r0, r1
	strh r0, [r2, 0x10]
	movs r5, 0xA
	ldrsh r0, [r3, r5]
	cmp r0, 0
	bne _08146CD6
	ldrh r0, [r3, 0x8]
	adds r0, 0x1
	strh r0, [r3, 0x8]
_08146CD6:
	ldrh r0, [r3, 0x10]
	adds r0, 0x8
	strh r0, [r3, 0x10]
	ldr r0, =0xffffff00
	adds r1, r0, 0
	ldrh r5, [r3, 0x12]
	adds r1, r5
	strh r1, [r3, 0x12]
	ldr r0, =gUnknown_02038C28
	movs r5, 0x10
	ldrsh r2, [r3, r5]
	lsls r1, 16
	asrs r1, 24
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldr r1, [r4]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146C8C

	thumb_func_start sub_8146D20
sub_8146D20: @ 8146D20
	push {r4-r7,lr}
	sub sp, 0x8
	adds r4, r0, 0
	ldr r7, =sTransitionStructPtr
	ldr r0, [r7]
	ldrb r1, [r0]
	movs r6, 0
	strb r6, [r0]
	ldrh r0, [r4, 0x10]
	adds r0, 0x8
	strh r0, [r4, 0x10]
	ldr r0, =0xffffff00
	adds r1, r0, 0
	ldrh r3, [r4, 0x12]
	adds r1, r3
	strh r1, [r4, 0x12]
	ldr r0, =gUnknown_02038C28
	movs r3, 0x10
	ldrsh r2, [r4, r3]
	lsls r1, 16
	asrs r1, 24
	str r1, [sp]
	movs r5, 0xA0
	str r5, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bgt _08146D70
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	strh r5, [r4, 0xA]
	movs r0, 0x80
	lsls r0, 1
	strh r0, [r4, 0xC]
	strh r6, [r4, 0xE]
_08146D70:
	ldr r0, [r7]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	add sp, 0x8
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146D20

	thumb_func_start sub_8146D90
sub_8146D90: @ 8146D90
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0x18]
	subs r0, 0x1
	strh r0, [r1, 0x18]
	lsls r0, 16
	cmp r0, 0
	bne _08146DA6
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_08146DA6:
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_8146D90

	thumb_func_start sub_8146DAC
sub_8146DAC: @ 8146DAC
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	ldr r0, =0x0000ffff
	movs r1, 0
	str r1, [sp]
	movs r1, 0x1
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146DAC

	thumb_func_start sub_8146DD8
sub_8146DD8: @ 8146DD8
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08146DEE
	ldrh r0, [r2, 0x8]
	adds r0, 0x1
	strh r0, [r2, 0x8]
_08146DEE:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146DD8

	thumb_func_start sub_8146DF8
sub_8146DF8: @ 8146DF8
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	ldrb r1, [r0]
	movs r3, 0
	strb r3, [r0]
	ldrh r2, [r4, 0xC]
	movs r0, 0xC
	ldrsh r1, [r4, r0]
	ldr r0, =0x000003ff
	cmp r1, r0
	bgt _08146E18
	adds r0, r2, 0
	adds r0, 0x80
	strh r0, [r4, 0xC]
_08146E18:
	ldrh r1, [r4, 0xA]
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _08146E34
	ldrh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 24
	subs r0, r1, r0
	strh r0, [r4, 0xA]
	lsls r0, 16
	cmp r0, 0
	bge _08146E34
	strh r3, [r4, 0xA]
_08146E34:
	ldr r0, =gUnknown_02038C28
	movs r1, 0xA
	ldrsh r3, [r4, r1]
	movs r1, 0x78
	movs r2, 0x50
	bl sub_814A014
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	cmp r0, 0
	bne _08146E90
	movs r0, 0
	bl SetVBlankCallback
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, [r4]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	b _08146EB0
	.pool
_08146E90:
	ldrh r1, [r4, 0xE]
	movs r2, 0xE
	ldrsh r0, [r4, r2]
	cmp r0, 0
	bne _08146EA4
	adds r0, r1, 0x1
	strh r0, [r4, 0xE]
	ldr r0, =sub_8146F68
	bl SetVBlankCallback
_08146EA4:
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
_08146EB0:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146DF8

	thumb_func_start sub_8146EC0
sub_8146EC0: @ 8146EC0
	push {lr}
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F2C
	ldr r2, =sTransitionStructPtr
	ldr r0, [r2]
	ldrb r0, [r0]
	cmp r0, 0
	beq _08146EF8
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r3, 0xF0
	lsls r3, 3
	adds r0, r3
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_08146EF8:
	ldr r1, =0x04000048
	ldr r2, [r2]
	ldrh r0, [r2, 0x2]
	strh r0, [r1]
	adds r1, 0x2
	ldrh r0, [r2, 0x4]
	strh r0, [r1]
	subs r1, 0x6
	ldrh r0, [r2, 0x8]
	strh r0, [r1]
	adds r1, 0xC
	ldrh r0, [r2, 0xE]
	strh r0, [r1]
	adds r1, 0x2
	ldrh r0, [r2, 0x10]
	strh r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146EC0

	thumb_func_start sub_8146F3C
sub_8146F3C: @ 8146F3C
	push {lr}
	bl sub_8146EC0
	ldr r1, =0x040000b0
	ldr r0, =gUnknown_020393A8
	str r0, [r1]
	ldr r0, =0x04000010
	str r0, [r1, 0x4]
	ldr r0, =0xa2400001
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146F3C

	thumb_func_start sub_8146F68
sub_8146F68: @ 8146F68
	push {lr}
	bl sub_8146EC0
	ldr r1, =0x040000b0
	ldr r0, =gUnknown_020393A8
	str r0, [r1]
	ldr r0, =0x04000040
	str r0, [r1, 0x4]
	ldr r0, =0xa2400001
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146F68

	thumb_func_start sub_8146F94
sub_8146F94: @ 8146F94
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8B7C
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08146FA6:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08146FA6
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8146F94

	thumb_func_start sub_8146FCC
sub_8146FCC: @ 8146FCC
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085B98B0
	ldr r1, [sp, 0x8]
	movs r2, 0x20
	bl CpuSet
	movs r0, 0
	str r0, [sp]
	ldr r1, [sp, 0x4]
	ldr r2, =0x05000200
	mov r0, sp
	bl CpuSet
	ldr r0, =gFieldEffectObjectPalette10
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8146FCC

	thumb_func_start sub_8147018
sub_8147018: @ 8147018
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x10
	adds r7, r0, 0
	ldr r1, =gUnknown_085C8B88
	mov r0, sp
	movs r2, 0x4
	bl memcpy
	add r4, sp, 0x4
	ldr r1, =gUnknown_085C8B8C
	adds r0, r4, 0
	movs r2, 0xA
	bl memcpy
	bl Random
	movs r5, 0x1
	ands r5, r0
	movs r1, 0
	mov r8, r4
	ldr r6, =gFieldEffectSpawnParams
_08147046:
	lsls r5, 16
	asrs r5, 16
	lsls r0, r5, 1
	add r0, sp
	movs r2, 0
	ldrsh r0, [r0, r2]
	str r0, [r6]
	lsls r4, r1, 16
	asrs r4, 16
	lsls r0, r4, 5
	adds r0, 0x10
	str r0, [r6, 0x4]
	str r5, [r6, 0x8]
	lsls r0, r4, 1
	add r0, r8
	movs r1, 0
	ldrsh r0, [r0, r1]
	str r0, [r6, 0xC]
	movs r0, 0x2D
	bl FieldEffectStart
	adds r4, 0x1
	lsls r4, 16
	movs r0, 0x1
	eors r5, r0
	lsls r5, 16
	lsrs r5, 16
	lsrs r1, r4, 16
	asrs r4, 16
	cmp r4, 0x4
	ble _08147046
	ldrh r0, [r7, 0x8]
	adds r0, 0x1
	strh r0, [r7, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147018

	thumb_func_start sub_81470A4
sub_81470A4: @ 81470A4
	push {lr}
	movs r0, 0x2D
	bl FieldEffectActiveListContains
	lsls r0, 24
	cmp r0, 0
	bne _081470C4
	bl sub_8149F84
	ldr r0, =sub_8146F94
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_081470C4:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81470A4

	thumb_func_start sub_81470D0
sub_81470D0: @ 81470D0
	push {r4,r5,lr}
	ldr r0, =gUnknown_085C8E68
	ldr r5, =gFieldEffectSpawnParams
	movs r2, 0
	ldrsh r1, [r5, r2]
	movs r3, 0x4
	ldrsh r2, [r5, r3]
	movs r3, 0
	bl CreateSpriteAtEnd
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gSprites
	lsls r4, r0, 4
	adds r4, r0
	lsls r4, 2
	adds r4, r1
	ldrb r1, [r4, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r1
	strb r0, [r4, 0x5]
	ldrb r1, [r4, 0x1]
	movs r0, 0x4
	negs r0, r0
	ands r0, r1
	movs r1, 0x1
	orrs r0, r1
	strb r0, [r4, 0x1]
	ldr r0, [r5, 0x8]
	strh r0, [r4, 0x2E]
	ldr r0, [r5, 0xC]
	strh r0, [r4, 0x30]
	ldr r0, =0x0000ffff
	strh r0, [r4, 0x32]
	adds r0, r4, 0
	bl InitSpriteAffineAnim
	ldrb r1, [r5, 0x8]
	adds r0, r4, 0
	bl StartSpriteAffineAnim
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81470D0

	thumb_func_start sub_814713C
sub_814713C: @ 814713C
	push {r4-r6,lr}
	sub sp, 0x4
	adds r4, r0, 0
	ldr r1, =gUnknown_085C8B96
	mov r0, sp
	movs r2, 0x4
	bl memcpy
	ldrh r1, [r4, 0x30]
	movs r2, 0x30
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _08147160
	subs r0, r1, 0x1
	strh r0, [r4, 0x30]
	b _081471F2
	.pool
_08147160:
	ldrh r0, [r4, 0x20]
	lsls r1, r0, 16
	lsrs r0, r1, 16
	cmp r0, 0xF0
	bhi _081471CE
	asrs r0, r1, 19
	lsls r0, 16
	ldrh r1, [r4, 0x22]
	lsls r1, 16
	asrs r1, 19
	lsls r1, 16
	lsrs r1, 16
	lsrs r2, r0, 16
	asrs r5, r0, 16
	movs r3, 0x32
	ldrsh r0, [r4, r3]
	cmp r5, r0
	beq _081471CE
	strh r2, [r4, 0x32]
	ldr r0, =0x04000008
	ldrh r2, [r0]
	lsrs r2, 8
	movs r0, 0x1F
	ands r2, r0
	lsls r2, 11
	movs r0, 0xC0
	lsls r0, 19
	adds r2, r0
	lsls r1, 16
	asrs r1, 16
	subs r0, r1, 0x2
	lsls r0, 5
	adds r0, r5
	lsls r0, 1
	adds r0, r2
	ldr r6, =0x0000f001
	adds r3, r6, 0
	strh r3, [r0]
	subs r0, r1, 0x1
	lsls r0, 5
	adds r0, r5
	lsls r0, 1
	adds r0, r2
	strh r3, [r0]
	lsls r0, r1, 5
	adds r0, r5
	lsls r0, 1
	adds r0, r2
	strh r3, [r0]
	adds r1, 0x1
	lsls r1, 5
	adds r1, r5
	lsls r1, 1
	adds r1, r2
	strh r3, [r1]
_081471CE:
	movs r1, 0x2E
	ldrsh r0, [r4, r1]
	lsls r0, 1
	add r0, sp
	ldrh r0, [r0]
	ldrh r2, [r4, 0x20]
	adds r0, r2
	strh r0, [r4, 0x20]
	adds r0, 0xF
	lsls r0, 16
	movs r1, 0x87
	lsls r1, 17
	cmp r0, r1
	bls _081471F2
	adds r0, r4, 0
	movs r1, 0x2D
	bl FieldEffectStop
_081471F2:
	add sp, 0x4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814713C

	thumb_func_start sub_8147204
sub_8147204: @ 8147204
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8B9C
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08147216:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08147216
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147204

	thumb_func_start sub_814723C
sub_814723C: @ 814723C
	push {r4,lr}
	adds r4, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1, 0x2]
	movs r0, 0x3F
	strh r0, [r1, 0x4]
	ldr r0, =0x0000f0f1
	strh r0, [r1, 0x6]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	movs r1, 0
	ldr r3, =gUnknown_020393A8
	ldr r2, =0x0000f3f4
_08147262:
	lsls r0, r1, 1
	adds r0, r3
	strh r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x9F
	bls _08147262
	ldr r0, =sub_8147688
	bl SetVBlankCallback
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r0, 0x78
	strh r0, [r1, 0x2C]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814723C

	thumb_func_start sub_81472A4
sub_81472A4: @ 81472A4
	push {r4-r7,lr}
	sub sp, 0xC
	adds r6, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r1, [r2]
	adds r0, r1, 0
	adds r0, 0x24
	movs r2, 0x2C
	ldrsh r3, [r1, r2]
	movs r1, 0x1
	negs r1, r1
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x78
	movs r2, 0x50
	bl sub_814A1AC
	ldr r5, =gUnknown_02038C28
_081472D4:
	ldr r4, =sTransitionStructPtr
	ldr r0, [r4]
	movs r7, 0x2A
	ldrsh r3, [r0, r7]
	lsls r3, 1
	adds r3, r5
	ldrh r1, [r0, 0x28]
	adds r1, 0x1
	movs r7, 0xF0
	lsls r7, 7
	adds r2, r7, 0
	orrs r1, r2
	strh r1, [r3]
	adds r0, 0x24
	movs r1, 0x1
	movs r2, 0x1
	bl sub_814A228
	lsls r0, 24
	cmp r0, 0
	beq _081472D4
	ldr r1, [r4]
	ldrh r0, [r1, 0x2C]
	adds r0, 0x10
	strh r0, [r1, 0x2C]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0xEF
	ble _08147318
	movs r0, 0
	strh r0, [r1, 0x2E]
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
_08147318:
	ldr r0, [r4]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	add sp, 0xC
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81472A4

	thumb_func_start sub_8147334
sub_8147334: @ 8147334
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	mov r8, r0
	add r1, sp, 0xC
	movs r0, 0
	strb r0, [r1]
	ldr r4, =sTransitionStructPtr
	ldr r1, [r4]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x24
	movs r2, 0x2E
	ldrsh r1, [r1, r2]
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x78
	movs r2, 0x50
	movs r3, 0xF0
	bl sub_814A1AC
	mov r9, r4
	mov r7, r9
	add r5, sp, 0xC
_08147372:
	movs r1, 0x78
	ldr r3, [r7]
	ldrh r0, [r3, 0x28]
	adds r0, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	movs r2, 0x2E
	ldrsh r0, [r3, r2]
	cmp r0, 0x4F
	ble _0814738A
	ldrh r1, [r3, 0x28]
	movs r4, 0xF0
_0814738A:
	ldr r6, =gUnknown_02038C28
	movs r0, 0x2A
	ldrsh r2, [r3, r0]
	lsls r2, 1
	adds r2, r6
	lsls r1, 16
	asrs r1, 8
	lsls r0, r4, 16
	asrs r4, r0, 16
	orrs r4, r1
	strh r4, [r2]
	ldrb r0, [r5]
	cmp r0, 0
	bne _081473C0
	adds r0, r3, 0
	adds r0, 0x24
	movs r1, 0x1
	movs r2, 0x1
	bl sub_814A228
	strb r0, [r5]
	b _08147372
	.pool
_081473C0:
	ldr r1, [r7]
	ldrh r0, [r1, 0x2E]
	adds r0, 0x8
	strh r0, [r1, 0x2E]
	lsls r0, 16
	asrs r2, r0, 16
	cmp r2, 0x9F
	ble _081473DE
	movs r0, 0xF0
	strh r0, [r1, 0x2C]
	mov r1, r8
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _08147406
_081473DE:
	movs r3, 0x2A
	ldrsh r0, [r1, r3]
	cmp r0, r2
	bge _08147406
	adds r3, r4, 0
	ldr r5, =sTransitionStructPtr
_081473EA:
	ldr r2, [r5]
	ldrh r0, [r2, 0x2A]
	adds r0, 0x1
	strh r0, [r2, 0x2A]
	lsls r0, 16
	asrs r0, 15
	adds r0, r6
	strh r3, [r0]
	movs r4, 0x2A
	ldrsh r1, [r2, r4]
	movs r4, 0x2E
	ldrsh r0, [r2, r4]
	cmp r1, r0
	blt _081473EA
_08147406:
	mov r1, r9
	ldr r0, [r1]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147334

	thumb_func_start sub_8147428
sub_8147428: @ 8147428
	push {r4-r6,lr}
	sub sp, 0xC
	adds r6, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r1, [r2]
	adds r0, r1, 0
	adds r0, 0x24
	movs r2, 0x2C
	ldrsh r3, [r1, r2]
	movs r1, 0xA0
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x78
	movs r2, 0x50
	bl sub_814A1AC
	ldr r5, =gUnknown_02038C28
_08147456:
	ldr r4, =sTransitionStructPtr
	ldr r0, [r4]
	movs r1, 0x2A
	ldrsh r3, [r0, r1]
	lsls r3, 1
	adds r3, r5
	ldrh r1, [r0, 0x28]
	lsls r1, 8
	movs r2, 0xF0
	orrs r1, r2
	strh r1, [r3]
	adds r0, 0x24
	movs r1, 0x1
	movs r2, 0x1
	bl sub_814A228
	lsls r0, 24
	cmp r0, 0
	beq _08147456
	ldr r1, [r4]
	ldrh r0, [r1, 0x2C]
	subs r0, 0x10
	strh r0, [r1, 0x2C]
	lsls r0, 16
	cmp r0, 0
	bgt _08147494
	movs r0, 0xA0
	strh r0, [r1, 0x2E]
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
_08147494:
	ldr r0, [r4]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	add sp, 0xC
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147428

	thumb_func_start sub_81474B0
sub_81474B0: @ 81474B0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	mov r9, r0
	add r1, sp, 0xC
	movs r0, 0
	strb r0, [r1]
	ldr r4, =sTransitionStructPtr
	ldr r1, [r4]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x24
	movs r2, 0x2E
	ldrsh r1, [r1, r2]
	str r1, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x78
	movs r2, 0x50
	movs r3, 0
	bl sub_814A1AC
	ldr r7, =gUnknown_02038C28
	mov r10, r7
	ldr r0, =sTransitionStructPtr
	mov r8, r0
	add r6, sp, 0xC
_081474F4:
	mov r1, r8
	ldr r4, [r1]
	movs r2, 0x2A
	ldrsh r0, [r4, r2]
	lsls r0, 1
	mov r7, r10
	adds r5, r0, r7
	ldrb r1, [r5]
	ldrh r2, [r4, 0x28]
	adds r3, r2, 0
	movs r7, 0x2E
	ldrsh r0, [r4, r7]
	cmp r0, 0x50
	bgt _08147514
	movs r2, 0x78
	adds r1, r3, 0
_08147514:
	lsls r0, r2, 16
	asrs r0, 8
	lsls r1, 16
	asrs r1, 16
	orrs r1, r0
	movs r7, 0
	strh r1, [r5]
	ldrb r0, [r6]
	cmp r0, 0
	bne _08147540
	adds r0, r4, 0
	adds r0, 0x24
	movs r1, 0x1
	movs r2, 0x1
	bl sub_814A228
	strb r0, [r6]
	b _081474F4
	.pool
_08147540:
	mov r0, r8
	ldr r2, [r0]
	ldrh r0, [r2, 0x2E]
	subs r0, 0x8
	strh r0, [r2, 0x2E]
	lsls r0, 16
	asrs r3, r0, 16
	cmp r3, 0
	bgt _0814755E
	strh r7, [r2, 0x2C]
	mov r1, r9
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _08147588
_0814755E:
	movs r4, 0x2A
	ldrsh r0, [r2, r4]
	cmp r0, r3
	ble _08147588
	ldr r6, =gUnknown_02038C28
	adds r3, r1, 0
	ldr r5, =sTransitionStructPtr
_0814756C:
	ldr r2, [r5]
	ldrh r0, [r2, 0x2A]
	subs r0, 0x1
	strh r0, [r2, 0x2A]
	lsls r0, 16
	asrs r0, 15
	adds r0, r6
	strh r3, [r0]
	movs r7, 0x2A
	ldrsh r1, [r2, r7]
	movs r4, 0x2E
	ldrsh r0, [r2, r4]
	cmp r1, r0
	bgt _0814756C
_08147588:
	ldr r7, =sTransitionStructPtr
	ldr r0, [r7]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81474B0

	thumb_func_start sub_81475B0
sub_81475B0: @ 81475B0
	push {r4-r7,lr}
	sub sp, 0xC
	adds r7, r0, 0
	ldr r1, =sTransitionStructPtr
	ldr r0, [r1]
	ldrb r2, [r0]
	movs r2, 0
	strb r2, [r0]
	ldr r1, [r1]
	adds r0, r1, 0
	adds r0, 0x24
	movs r4, 0x2C
	ldrsh r3, [r1, r4]
	str r2, [sp]
	movs r1, 0x1
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x78
	movs r2, 0x50
	bl sub_814A1AC
	ldr r6, =gUnknown_02038C28
_081475DC:
	movs r2, 0x78
	ldr r5, =sTransitionStructPtr
	ldr r3, [r5]
	ldrh r4, [r3, 0x28]
	movs r1, 0x28
	ldrsh r0, [r3, r1]
	cmp r0, 0x77
	ble _081475F0
	movs r2, 0
	movs r4, 0xF0
_081475F0:
	movs r0, 0x2A
	ldrsh r1, [r3, r0]
	lsls r1, 1
	adds r1, r6
	lsls r2, 8
	lsls r0, r4, 16
	asrs r0, 16
	orrs r0, r2
	strh r0, [r1]
	adds r0, r3, 0
	adds r0, 0x24
	movs r1, 0x1
	movs r2, 0x1
	bl sub_814A228
	lsls r0, 24
	cmp r0, 0
	beq _081475DC
	ldr r0, [r5]
	ldrh r1, [r0, 0x2C]
	adds r1, 0x10
	strh r1, [r0, 0x2C]
	movs r1, 0x28
	ldrsh r0, [r0, r1]
	cmp r0, 0x78
	ble _0814762A
	ldrh r0, [r7, 0x8]
	adds r0, 0x1
	strh r0, [r7, 0x8]
_0814762A:
	ldr r0, [r5]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	add sp, 0xC
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81475B0

	thumb_func_start sub_8147648
sub_8147648: @ 8147648
	push {lr}
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, =sub_8147204
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147648

	thumb_func_start sub_8147688
sub_8147688: @ 8147688
	push {r4,lr}
	ldr r4, =0x040000b0
	ldrh r1, [r4, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r1, [r4, 0xA]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xA]
	bl sub_8149F2C
	ldr r3, =sTransitionStructPtr
	ldr r0, [r3]
	ldrb r0, [r0]
	cmp r0, 0
	beq _081476C0
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_081476C0:
	ldr r2, =0x04000048
	ldr r1, [r3]
	ldrh r0, [r1, 0x2]
	strh r0, [r2]
	adds r2, 0x2
	ldrh r0, [r1, 0x4]
	strh r0, [r2]
	subs r2, 0x6
	ldrh r0, [r1, 0x8]
	strh r0, [r2]
	subs r2, 0x4
	ldr r0, =gUnknown_02038C28
	movs r1, 0xF0
	lsls r1, 3
	adds r0, r1
	ldrh r1, [r0]
	strh r1, [r2]
	str r0, [r4]
	str r2, [r4, 0x4]
	ldr r0, =0xa2400001
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147688

	thumb_func_start sub_8147718
sub_8147718: @ 8147718
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8BB8
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814772A:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814772A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147718

	thumb_func_start sub_8147750
sub_8147750: @ 8147750
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	movs r2, 0
	ldr r4, =gUnknown_020393A8
	ldr r3, =sTransitionStructPtr
_08147762:
	lsls r1, r2, 1
	adds r1, r4
	ldr r0, [r3]
	ldrh r0, [r0, 0x16]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x9F
	bls _08147762
	ldr r0, =sub_8147888
	bl SetVBlankCallback
	ldr r0, =sub_81478C0
	bl SetHBlankCallback
	movs r0, 0x2
	bl EnableInterrupts
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0x1
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147750

	thumb_func_start sub_81477A8
sub_81477A8: @ 81477A8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	adds r6, r0, 0
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldrh r2, [r6, 0xC]
	lsls r1, r2, 16
	asrs r0, r1, 24
	lsls r0, 16
	lsrs r3, r0, 16
	ldrh r4, [r6, 0xA]
	movs r0, 0xC0
	lsls r0, 1
	mov r8, r0
	movs r5, 0x80
	lsls r5, 3
	adds r0, r4, r5
	strh r0, [r6, 0xA]
	ldr r0, =0x1fff0000
	cmp r1, r0
	bgt _081477E4
	movs r1, 0xC0
	lsls r1, 1
	adds r0, r2, r1
	strh r0, [r6, 0xC]
_081477E4:
	movs r5, 0
	lsls r7, r3, 16
_081477E8:
	lsrs r0, r4, 8
	asrs r1, r7, 16
	bl Sin
	ldr r1, =gUnknown_02038C28
	lsls r2, r5, 1
	adds r2, r1
	ldr r1, =sTransitionStructPtr
	ldr r1, [r1]
	ldrh r1, [r1, 0x16]
	adds r0, r1
	strh r0, [r2]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	mov r1, r8
	adds r0, r4, r1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r5, 0x9F
	bls _081477E8
	ldrh r0, [r6, 0xE]
	adds r0, 0x1
	strh r0, [r6, 0xE]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x51
	bne _08147838
	ldrh r0, [r6, 0x10]
	adds r0, 0x1
	strh r0, [r6, 0x10]
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
	movs r3, 0x10
	bl BeginNormalPaletteFade
_08147838:
	movs r5, 0x10
	ldrsh r0, [r6, r5]
	cmp r0, 0
	beq _0814785A
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0814785A
	ldr r0, =sub_8147718
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_0814785A:
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81477A8

	thumb_func_start sub_8147888
sub_8147888: @ 8147888
	push {lr}
	bl sub_8149F2C
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0
	beq _081478AC
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_081478AC:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147888

	thumb_func_start sub_81478C0
sub_81478C0: @ 81478C0
	ldr r1, =gUnknown_02038C28
	ldr r0, =0x04000006
	ldrh r0, [r0]
	lsls r0, 1
	movs r2, 0xF0
	lsls r2, 3
	adds r1, r2
	adds r0, r1
	ldrh r1, [r0]
	ldr r0, =0x04000016
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_81478C0

	thumb_func_start sub_81478EC
sub_81478EC: @ 81478EC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8BC0
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081478FE:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081478FE
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81478EC

	thumb_func_start sub_8147924
sub_8147924: @ 8147924
	push {r4,lr}
	adds r4, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r2, 0
	movs r0, 0x3F
	strh r0, [r1, 0x2]
	strh r2, [r1, 0x4]
	movs r0, 0xF0
	strh r0, [r1, 0x6]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	movs r1, 0
	ldr r3, =gUnknown_020393A8
	movs r2, 0xF2
_0814794A:
	lsls r0, r1, 1
	adds r0, r3
	strh r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x9F
	bls _0814794A
	ldr r0, =sub_8147A58
	bl SetVBlankCallback
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147924

	thumb_func_start sub_814797C
sub_814797C: @ 814797C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r4, r0, 0
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r7, =gUnknown_02038C28
	ldrh r0, [r4, 0xC]
	ldrb r5, [r4, 0xC]
	adds r0, 0x10
	strh r0, [r4, 0xC]
	ldrh r0, [r4, 0xA]
	adds r0, 0x8
	strh r0, [r4, 0xA]
	movs r6, 0
	movs r0, 0x1
	mov r8, r0
_081479A4:
	adds r0, r5, 0
	movs r1, 0x28
	bl Sin
	ldrh r1, [r4, 0xA]
	adds r0, r1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r0, 0
	bge _081479BA
	movs r1, 0
_081479BA:
	lsls r0, r1, 16
	asrs r0, 16
	cmp r0, 0xF0
	ble _081479C4
	movs r1, 0xF0
_081479C4:
	lsls r0, r1, 16
	asrs r0, 16
	lsls r1, r0, 8
	movs r2, 0xF1
	orrs r1, r2
	strh r1, [r7]
	cmp r0, 0xEF
	bgt _081479D8
	movs r0, 0
	mov r8, r0
_081479D8:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	adds r0, r5, 0x4
	lsls r0, 24
	lsrs r5, r0, 24
	adds r7, 0x2
	cmp r6, 0x9F
	bls _081479A4
	mov r1, r8
	cmp r1, 0
	beq _081479F6
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081479F6:
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814797C

	thumb_func_start sub_8147A18
sub_8147A18: @ 8147A18
	push {lr}
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, =sub_81478EC
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147A18

	thumb_func_start sub_8147A58
sub_8147A58: @ 8147A58
	push {r4,lr}
	ldr r4, =0x040000b0
	ldrh r1, [r4, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r1, [r4, 0xA]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xA]
	bl sub_8149F2C
	ldr r3, =sTransitionStructPtr
	ldr r0, [r3]
	ldrb r0, [r0]
	cmp r0, 0
	beq _08147A90
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_08147A90:
	ldr r2, =0x04000048
	ldr r1, [r3]
	ldrh r0, [r1, 0x2]
	strh r0, [r2]
	adds r2, 0x2
	ldrh r0, [r1, 0x4]
	strh r0, [r2]
	subs r2, 0x6
	ldrh r0, [r1, 0x8]
	strh r0, [r2]
	ldr r0, =gUnknown_020393A8
	str r0, [r4]
	ldr r0, =0x04000040
	str r0, [r4, 0x4]
	ldr r0, =0xa2400001
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147A58

	thumb_func_start sub_8147AE4
sub_8147AE4: @ 8147AE4
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0
	strh r2, [r1, 0x26]
	bl sub_8147B84
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147AE4

	thumb_func_start sub_8147B04
sub_8147B04: @ 8147B04
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0x1
	strh r2, [r1, 0x26]
	bl sub_8147B84
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147B04

	thumb_func_start sub_8147B24
sub_8147B24: @ 8147B24
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0x2
	strh r2, [r1, 0x26]
	bl sub_8147B84
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147B24

	thumb_func_start sub_8147B44
sub_8147B44: @ 8147B44
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0x3
	strh r2, [r1, 0x26]
	bl sub_8147B84
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147B44

	thumb_func_start sub_8147B64
sub_8147B64: @ 8147B64
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0x4
	strh r2, [r1, 0x26]
	bl sub_8147B84
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147B64

	thumb_func_start sub_8147B84
sub_8147B84: @ 8147B84
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8BCC
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08147B96:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08147B96
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8147B84

	thumb_func_start sub_8147BBC
sub_8147BBC: @ 8147BBC
	push {r4,lr}
	adds r4, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	adds r0, r4, 0
	bl sub_8148218
	movs r0, 0
	strh r0, [r4, 0xA]
	movs r0, 0x1
	strh r0, [r4, 0xC]
	movs r0, 0xEF
	strh r0, [r4, 0xE]
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r0, 0x3F
	strh r0, [r1, 0x2]
	movs r0, 0x3E
	strh r0, [r1, 0x4]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	movs r1, 0
	ldr r3, =gUnknown_020393A8
	ldr r2, =0x0000f0f1
_08147BF0:
	lsls r0, r1, 1
	adds r0, r3
	strh r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x9F
	bls _08147BF0
	ldr r0, =sub_81480CC
	bl SetVBlankCallback
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147BBC

	thumb_func_start sub_8147C24
sub_8147C24: @ 8147C24
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	mov r8, r0
	ldr r6, =gUnknown_085C94D0
	add r1, sp, 0x4
	mov r0, sp
	bl sub_8149F58
	ldr r0, =gUnknown_085B9AF0
	ldr r1, [sp, 0x4]
	movs r2, 0xF0
	bl CpuSet
	ldr r1, =gUnknown_085C8FDC
	mov r2, r8
	movs r3, 0x26
	ldrsh r0, [r2, r3]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldr r1, =gUnknown_085C8FF0
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0xFA
	movs r2, 0xC
	bl LoadPalette
	movs r1, 0
	ldr r5, [sp]
	movs r0, 0xF0
	lsls r0, 8
	adds r7, r0, 0
_08147C78:
	movs r0, 0
	lsls r3, r1, 16
	asrs r4, r3, 11
_08147C7E:
	lsls r2, r0, 16
	asrs r2, 16
	adds r1, r4, r2
	lsls r1, 1
	adds r1, r5
	ldrh r0, [r6]
	orrs r0, r7
	strh r0, [r1]
	adds r2, 0x1
	lsls r2, 16
	adds r6, 0x2
	lsrs r0, r2, 16
	asrs r2, 16
	cmp r2, 0x1F
	ble _08147C7E
	movs r1, 0x80
	lsls r1, 9
	adds r0, r3, r1
	lsrs r1, r0, 16
	asrs r0, 16
	cmp r0, 0x13
	ble _08147C78
	movs r0, 0x2
	bl EnableInterrupts
	ldr r0, =sub_81481E0
	bl SetHBlankCallback
	mov r2, r8
	ldrh r0, [r2, 0x8]
	adds r0, 0x1
	strh r0, [r2, 0x8]
	movs r0, 0
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147C24

	thumb_func_start sub_8147CE4
sub_8147CE4: @ 8147CE4
	push {r4-r7,lr}
	adds r4, r0, 0
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r7, =gUnknown_02038C28
	ldrh r0, [r4, 0xA]
	ldrb r5, [r4, 0xA]
	adds r0, 0x10
	strh r0, [r4, 0xA]
	movs r6, 0
_08147CFE:
	adds r0, r5, 0
	movs r1, 0x10
	bl Sin
	ldrh r1, [r4, 0xC]
	adds r0, r1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r0, 0
	bge _08147D14
	movs r2, 0x1
_08147D14:
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0xF0
	ble _08147D1E
	movs r2, 0xF0
_08147D1E:
	strh r2, [r7]
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	adds r7, 0x2
	adds r0, r5, 0
	adds r0, 0x10
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r6, 0x4F
	bls _08147CFE
	cmp r6, 0x9F
	bhi _08147D76
_08147D38:
	adds r0, r5, 0
	movs r1, 0x10
	bl Sin
	ldrh r1, [r4, 0xE]
	subs r1, r0
	lsls r1, 16
	lsrs r2, r1, 16
	cmp r1, 0
	bge _08147D4E
	movs r2, 0
_08147D4E:
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0xEF
	ble _08147D58
	movs r2, 0xEF
_08147D58:
	lsls r0, r2, 16
	asrs r0, 8
	movs r1, 0xF0
	orrs r0, r1
	strh r0, [r7]
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	adds r7, 0x2
	adds r0, r5, 0
	adds r0, 0x10
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r6, 0x9F
	bls _08147D38
_08147D76:
	ldrh r1, [r4, 0xC]
	adds r1, 0x8
	strh r1, [r4, 0xC]
	ldrh r0, [r4, 0xE]
	subs r0, 0x8
	strh r0, [r4, 0xE]
	lsls r1, 16
	asrs r1, 16
	cmp r1, 0xF0
	ble _08147D8E
	movs r0, 0xF0
	strh r0, [r4, 0xC]
_08147D8E:
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bge _08147D9A
	movs r0, 0
	strh r0, [r4, 0xE]
_08147D9A:
	ldr r0, [r4, 0xC]
	cmp r0, 0xF0
	bne _08147DA6
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_08147DA6:
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrh r0, [r1, 0x18]
	subs r0, 0x8
	strh r0, [r1, 0x18]
	ldrh r0, [r1, 0x1A]
	adds r0, 0x8
	strh r0, [r1, 0x1A]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147CE4

	thumb_func_start sub_8147DD0
sub_8147DD0: @ 8147DD0
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r1, =gUnknown_02038C28
	adds r5, r2, 0
	movs r2, 0xF0
_08147DE4:
	strh r2, [r1]
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	adds r1, 0x2
	cmp r0, 0x9F
	bls _08147DE4
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	movs r1, 0
	strh r0, [r4, 0x8]
	strh r1, [r4, 0xA]
	strh r1, [r4, 0xC]
	strh r1, [r4, 0xE]
	ldr r1, [r5]
	ldrh r0, [r1, 0x18]
	subs r0, 0x8
	strh r0, [r1, 0x18]
	ldrh r0, [r1, 0x1A]
	adds r0, 0x8
	strh r0, [r1, 0x1A]
	movs r1, 0x22
	ldrsh r0, [r4, r1]
	movs r1, 0
	bl sub_8148484
	movs r1, 0x24
	ldrsh r0, [r4, r1]
	movs r1, 0x1
	bl sub_8148484
	movs r1, 0x22
	ldrsh r0, [r4, r1]
	bl sub_814849C
	movs r0, 0x68
	bl PlaySE
	ldr r1, [r5]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147DD0

	thumb_func_start sub_8147E4C
sub_8147E4C: @ 8147E4C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrh r0, [r1, 0x18]
	subs r0, 0x8
	strh r0, [r1, 0x18]
	ldrh r0, [r1, 0x1A]
	adds r0, 0x8
	strh r0, [r1, 0x1A]
	movs r1, 0x22
	ldrsh r0, [r4, r1]
	bl sub_81484B8
	lsls r0, 16
	cmp r0, 0
	beq _08147E7C
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r1, 0x24
	ldrsh r0, [r4, r1]
	bl sub_814849C
_08147E7C:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147E4C

	thumb_func_start sub_8147E88
sub_8147E88: @ 8147E88
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r6, r0, 0
	ldr r7, =sTransitionStructPtr
	ldr r1, [r7]
	ldrh r0, [r1, 0x18]
	subs r0, 0x8
	movs r2, 0
	mov r8, r2
	strh r0, [r1, 0x18]
	ldrh r0, [r1, 0x1A]
	adds r0, 0x8
	strh r0, [r1, 0x1A]
	movs r1, 0x24
	ldrsh r0, [r6, r1]
	bl sub_81484B8
	lsls r0, 16
	cmp r0, 0
	beq _08147F1C
	ldr r1, [r7]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	movs r0, 0
	bl SetVBlankCallback
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	ldr r4, =gUnknown_02038C28
	movs r5, 0xA0
	lsls r5, 1
	adds r0, r4, 0
	movs r1, 0
	adds r2, r5, 0
	bl memset
	movs r2, 0xF0
	lsls r2, 3
	adds r4, r2
	adds r0, r4, 0
	movs r1, 0
	adds r2, r5, 0
	bl memset
	movs r0, 0x40
	movs r1, 0xF0
	bl SetGpuReg
	movs r0, 0x54
	movs r1, 0
	bl SetGpuReg
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
	mov r0, r8
	strh r0, [r6, 0xE]
	strh r0, [r6, 0x10]
	ldr r1, [r7]
	movs r0, 0xBF
	strh r0, [r1, 0xE]
	ldr r0, =sub_8148160
	bl SetVBlankCallback
_08147F1C:
	movs r0, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147E88

	thumb_func_start sub_8147F40
sub_8147F40: @ 8147F40
	push {r4-r7,lr}
	adds r4, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	movs r6, 0x1
	ldr r1, [r2]
	ldrh r0, [r1, 0x18]
	subs r0, 0x8
	strh r0, [r1, 0x18]
	ldrh r0, [r1, 0x1A]
	adds r0, 0x8
	strh r0, [r1, 0x1A]
	ldrh r1, [r4, 0x10]
	movs r3, 0x10
	ldrsh r0, [r4, r3]
	mov r12, r2
	cmp r0, 0x4F
	bgt _08147F6E
	adds r0, r1, 0x2
	strh r0, [r4, 0x10]
_08147F6E:
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	cmp r0, 0x50
	ble _08147F7A
	movs r0, 0x50
	strh r0, [r4, 0x10]
_08147F7A:
	ldrh r0, [r4, 0xE]
	adds r0, 0x1
	strh r0, [r4, 0xE]
	movs r1, 0x1
	ands r0, r1
	ldrh r3, [r4, 0x10]
	cmp r0, 0
	beq _08147FDC
	movs r2, 0
	lsls r0, r3, 16
	movs r6, 0
	cmp r0, 0
	blt _08147FDC
	movs r7, 0x50
	ldr r5, =gUnknown_02038C28
_08147F98:
	lsls r0, r2, 16
	asrs r3, r0, 16
	subs r1, r7, r3
	adds r0, r3, 0
	adds r0, 0x50
	lsls r0, 16
	lsrs r2, r0, 16
	lsls r1, 16
	asrs r1, 15
	adds r1, r5
	ldrh r0, [r1]
	cmp r0, 0xF
	bhi _08147FB8
	movs r6, 0x1
	adds r0, 0x1
	strh r0, [r1]
_08147FB8:
	lsls r0, r2, 16
	asrs r0, 15
	adds r1, r0, r5
	ldrh r0, [r1]
	cmp r0, 0xF
	bhi _08147FCA
	movs r6, 0x1
	adds r0, 0x1
	strh r0, [r1]
_08147FCA:
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	asrs r0, 16
	movs r3, 0x10
	ldrsh r1, [r4, r3]
	ldrh r3, [r4, 0x10]
	cmp r0, r1
	ble _08147F98
_08147FDC:
	cmp r3, 0x50
	bne _08147FEA
	cmp r6, 0
	bne _08147FEA
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_08147FEA:
	mov r1, r12
	ldr r0, [r1]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8147F40

	thumb_func_start sub_8148008
sub_8148008: @ 8148008
	push {r4-r6,lr}
	adds r4, r0, 0
	ldr r5, =sTransitionStructPtr
	ldr r0, [r5]
	ldrb r1, [r0]
	movs r6, 0
	strb r6, [r0]
	movs r0, 0x1
	negs r0, r0
	ldr r2, =0x00007fff
	movs r1, 0x10
	bl BlendPalettes
	ldr r1, [r5]
	movs r0, 0xFF
	strh r0, [r1, 0xE]
	strh r6, [r4, 0xE]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148008

	thumb_func_start sub_8148040
sub_8148040: @ 8148040
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r5, =sTransitionStructPtr
	ldr r1, [r5]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldrh r0, [r4, 0xE]
	adds r0, 0x1
	strh r0, [r4, 0xE]
	ldr r0, =gUnknown_02038C28
	movs r2, 0xE
	ldrsh r1, [r4, r2]
	movs r2, 0xA0
	lsls r2, 1
	bl memset
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	cmp r0, 0xF
	ble _08148070
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_08148070:
	ldr r0, [r5]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148040

	thumb_func_start sub_814808C
sub_814808C: @ 814808C
	push {r4,lr}
	adds r4, r0, 0
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, [r4]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814808C

	thumb_func_start sub_81480CC
sub_81480CC: @ 81480CC
	push {r4,lr}
	ldr r4, =0x040000b0
	ldrh r1, [r4, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r1, [r4, 0xA]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xA]
	bl sub_8149F2C
	ldr r3, =sTransitionStructPtr
	ldr r0, [r3]
	ldrb r0, [r0]
	cmp r0, 0
	beq _08148104
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_08148104:
	ldr r2, =0x04000012
	ldr r1, [r3]
	ldrh r0, [r1, 0x1C]
	strh r0, [r2]
	adds r2, 0x36
	ldrh r0, [r1, 0x2]
	strh r0, [r2]
	adds r2, 0x2
	ldrh r0, [r1, 0x4]
	strh r0, [r2]
	subs r2, 0x6
	ldrh r0, [r1, 0x8]
	strh r0, [r2]
	ldr r0, =gUnknown_020393A8
	str r0, [r4]
	ldr r0, =0x04000040
	str r0, [r4, 0x4]
	ldr r0, =0xa2400001
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81480CC

	thumb_func_start sub_8148160
sub_8148160: @ 8148160
	push {r4,lr}
	ldr r4, =0x040000b0
	ldrh r1, [r4, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r1, [r4, 0xA]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xA]
	bl sub_8149F2C
	ldr r2, =sTransitionStructPtr
	ldr r0, [r2]
	ldrb r0, [r0]
	cmp r0, 0
	beq _08148198
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r3, 0xF0
	lsls r3, 3
	adds r0, r3
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_08148198:
	ldr r1, =0x04000050
	ldr r0, [r2]
	ldrh r0, [r0, 0xE]
	strh r0, [r1]
	ldr r0, =gUnknown_020393A8
	str r0, [r4]
	ldr r0, =0x04000054
	str r0, [r4, 0x4]
	ldr r0, =0xa2400001
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148160

	thumb_func_start sub_81481E0
sub_81481E0: @ 81481E0
	push {lr}
	ldr r0, =0x04000006
	ldrh r0, [r0]
	cmp r0, 0x4F
	bhi _08148200
	ldr r1, =0x04000010
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	ldrh r0, [r0, 0x18]
	b _08148208
	.pool
_08148200:
	ldr r1, =0x04000010
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	ldrh r0, [r0, 0x1A]
_08148208:
	strh r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81481E0

	thumb_func_start sub_8148218
sub_8148218: @ 8148218
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x4
	adds r4, r0, 0
	ldr r0, =gUnknown_085C8BF4
	movs r2, 0x26
	ldrsh r1, [r4, r2]
	mov r8, r1
	add r0, r8
	ldrb r0, [r0]
	ldr r2, =gUnknown_085C8C0E
	lsls r1, 2
	mov r8, r1
	adds r1, r2
	ldrh r1, [r1]
	subs r1, 0x20
	lsls r1, 16
	asrs r1, 16
	adds r2, 0x2
	add r2, r8
	ldrh r2, [r2]
	adds r2, 0x2A
	lsls r2, 16
	asrs r2, 16
	ldr r5, =0x0201c000
	str r5, [sp]
	movs r3, 0
	bl sub_80B5E6C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x22]
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	bl sub_806F000
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x88
	lsls r1, 1
	str r5, [sp]
	movs r2, 0x6A
	movs r3, 0
	bl sub_80B5E6C
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x24]
	movs r3, 0x22
	ldrsh r0, [r4, r3]
	lsls r5, r0, 4
	adds r5, r0
	lsls r5, 2
	ldr r1, =gSprites
	adds r5, r1
	movs r2, 0x24
	ldrsh r0, [r4, r2]
	lsls r6, r0, 4
	adds r6, r0
	lsls r6, 2
	adds r6, r1
	ldr r0, =sub_8148380
	str r0, [r5, 0x1C]
	str r0, [r6, 0x1C]
	ldrb r0, [r5, 0x1]
	movs r1, 0x3
	orrs r0, r1
	strb r0, [r5, 0x1]
	ldrb r0, [r6, 0x1]
	orrs r0, r1
	strb r0, [r6, 0x1]
	bl AllocOamMatrix
	lsls r0, 24
	lsrs r0, 24
	movs r3, 0x1F
	mov r9, r3
	mov r4, r9
	ands r0, r4
	lsls r0, 1
	ldrb r2, [r5, 0x3]
	movs r4, 0x3F
	negs r4, r4
	adds r1, r4, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r5, 0x3]
	bl AllocOamMatrix
	lsls r0, 24
	lsrs r0, 24
	mov r1, r9
	ands r0, r1
	lsls r0, 1
	ldrb r1, [r6, 0x3]
	ands r4, r1
	orrs r4, r0
	strb r4, [r6, 0x3]
	ldrb r2, [r5, 0x1]
	movs r1, 0x3F
	adds r0, r1, 0
	ands r0, r2
	movs r2, 0x40
	orrs r0, r2
	strb r0, [r5, 0x1]
	ldrb r0, [r6, 0x1]
	ands r1, r0
	orrs r1, r2
	strb r1, [r6, 0x1]
	ldrb r0, [r5, 0x3]
	movs r1, 0xC0
	orrs r0, r1
	strb r0, [r5, 0x3]
	ldrb r0, [r6, 0x3]
	orrs r0, r1
	strb r0, [r6, 0x3]
	adds r0, r5, 0
	movs r1, 0x1
	movs r2, 0x3
	movs r3, 0x3
	bl CalcCenterToCornerVec
	adds r0, r6, 0
	movs r1, 0x1
	movs r2, 0x3
	movs r3, 0x3
	bl CalcCenterToCornerVec
	ldrb r0, [r5, 0x3]
	lsls r0, 26
	lsrs r0, 27
	ldr r2, =gUnknown_085C8BFA
	mov r3, r8
	adds r1, r3, r2
	movs r4, 0
	ldrsh r1, [r1, r4]
	adds r2, 0x2
	add r8, r2
	mov r3, r8
	movs r4, 0
	ldrsh r2, [r3, r4]
	movs r3, 0
	bl SetOamMatrixRotationScaling
	ldrb r0, [r6, 0x3]
	lsls r0, 26
	lsrs r0, 27
	ldr r1, =0xfffffe00
	movs r2, 0x80
	lsls r2, 2
	movs r3, 0
	bl SetOamMatrixRotationScaling
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148218

	thumb_func_start sub_8148380
sub_8148380: @ 8148380
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r5, =gUnknown_085C8C24
_08148386:
	movs r1, 0x2E
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08148386
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148380

	thumb_func_start sub_81483A8
sub_81483A8: @ 81483A8
	movs r0, 0
	bx lr
	thumb_func_end sub_81483A8

	thumb_func_start sub_81483AC
sub_81483AC: @ 81483AC
	push {r4,r5,lr}
	sub sp, 0x8
	adds r5, r0, 0
	ldr r1, =gUnknown_085C8C40
	mov r0, sp
	movs r2, 0x4
	bl memcpy
	add r4, sp, 0x4
	ldr r1, =gUnknown_085C8C44
	adds r0, r4, 0
	movs r2, 0x4
	bl memcpy
	ldrh r0, [r5, 0x2E]
	adds r0, 0x1
	strh r0, [r5, 0x2E]
	movs r1, 0x3C
	ldrsh r0, [r5, r1]
	lsls r0, 1
	add r0, sp
	ldrh r0, [r0]
	strh r0, [r5, 0x30]
	movs r1, 0x3C
	ldrsh r0, [r5, r1]
	lsls r0, 1
	adds r4, r0
	ldrh r0, [r4]
	strh r0, [r5, 0x32]
	movs r0, 0x1
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81483AC

	thumb_func_start sub_81483F8
sub_81483F8: @ 81483F8
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0x30]
	ldrh r3, [r1, 0x20]
	adds r2, r0, r3
	strh r2, [r1, 0x20]
	movs r3, 0x3C
	ldrsh r0, [r1, r3]
	cmp r0, 0
	beq _08148416
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0x84
	bgt _08148424
	b _0814841E
_08148416:
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0x67
	ble _08148424
_0814841E:
	ldrh r0, [r1, 0x2E]
	adds r0, 0x1
	strh r0, [r1, 0x2E]
_08148424:
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_81483F8

	thumb_func_start sub_814842C
sub_814842C: @ 814842C
	push {lr}
	adds r2, r0, 0
	ldrh r3, [r2, 0x32]
	ldrh r0, [r2, 0x30]
	adds r1, r3, r0
	strh r1, [r2, 0x30]
	ldrh r0, [r2, 0x20]
	adds r0, r1
	strh r0, [r2, 0x20]
	lsls r1, 16
	cmp r1, 0
	bne _08148452
	ldrh r0, [r2, 0x2E]
	adds r0, 0x1
	strh r0, [r2, 0x2E]
	negs r0, r3
	strh r0, [r2, 0x32]
	movs r0, 0x1
	strh r0, [r2, 0x3A]
_08148452:
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_814842C

	thumb_func_start sub_8148458
sub_8148458: @ 8148458
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2, 0x32]
	ldrh r1, [r2, 0x30]
	adds r0, r1
	strh r0, [r2, 0x30]
	ldrh r1, [r2, 0x20]
	adds r1, r0
	strh r1, [r2, 0x20]
	adds r1, 0x1F
	lsls r1, 16
	movs r0, 0x97
	lsls r0, 17
	cmp r1, r0
	bls _0814847C
	ldrh r0, [r2, 0x2E]
	adds r0, 0x1
	strh r0, [r2, 0x2E]
_0814847C:
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_8148458

	thumb_func_start sub_8148484
sub_8148484: @ 8148484
	ldr r3, =gSprites
	lsls r0, 16
	asrs r0, 16
	lsls r2, r0, 4
	adds r2, r0
	lsls r2, 2
	adds r2, r3
	strh r1, [r2, 0x3C]
	bx lr
	.pool
	thumb_func_end sub_8148484

	thumb_func_start sub_814849C
sub_814849C: @ 814849C
	ldr r2, =gSprites
	lsls r0, 16
	asrs r0, 16
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrh r0, [r1, 0x2E]
	adds r0, 0x1
	strh r0, [r1, 0x2E]
	bx lr
	.pool
	thumb_func_end sub_814849C

	thumb_func_start sub_81484B8
sub_81484B8: @ 81484B8
	ldr r2, =gSprites
	lsls r0, 16
	asrs r0, 16
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	movs r2, 0x3A
	ldrsh r0, [r1, r2]
	bx lr
	.pool
	thumb_func_end sub_81484B8

	thumb_func_start sub_81484D0
sub_81484D0: @ 81484D0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8C48
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_081484E2:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _081484E2
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81484D0

	thumb_func_start sub_8148508
sub_8148508: @ 8148508
	push {r4-r6,lr}
	adds r5, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	movs r4, 0
	movs r3, 0
	movs r0, 0x80
	lsls r0, 1
	strh r0, [r5, 0xC]
	movs r0, 0x1
	strh r0, [r5, 0xE]
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	movs r0, 0x3F
	strh r0, [r1, 0x2]
	strh r3, [r1, 0x4]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	ldrb r0, [r1]
	strb r4, [r1]
	ldr r4, =gUnknown_020393A8
	adds r6, r2, 0
	movs r2, 0xF0
_0814853A:
	lsls r1, r3, 1
	adds r1, r4
	ldr r0, [r6]
	ldrh r0, [r0, 0x14]
	strh r0, [r1]
	adds r0, r3, 0
	adds r0, 0xA0
	lsls r0, 1
	adds r0, r4
	strh r2, [r0]
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x9F
	bls _0814853A
	movs r0, 0x2
	bl EnableInterrupts
	movs r0, 0x4
	movs r1, 0x10
	bl SetGpuRegBits
	ldr r0, =sub_814869C
	bl SetVBlankCallback
	ldr r0, =sub_8148728
	bl SetHBlankCallback
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0x1
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148508

	thumb_func_start sub_8148590
sub_8148590: @ 8148590
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r3, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldrh r0, [r3, 0xC]
	lsls r0, 16
	asrs r0, 24
	ldrh r1, [r3, 0xA]
	adds r0, r1
	strh r0, [r3, 0xA]
	lsls r0, 16
	asrs r0, 16
	mov r8, r2
	cmp r0, 0xF0
	ble _081485BC
	movs r0, 0xF0
	strh r0, [r3, 0xA]
_081485BC:
	ldrh r4, [r3, 0xC]
	movs r0, 0xC
	ldrsh r1, [r3, r0]
	ldr r0, =0x00000fff
	ldrh r2, [r3, 0xE]
	cmp r1, r0
	bgt _081485CE
	adds r0, r4, r2
	strh r0, [r3, 0xC]
_081485CE:
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0x7F
	bgt _081485DA
	lsls r0, r2, 1
	strh r0, [r3, 0xE]
_081485DA:
	movs r5, 0
	ldr r7, =gUnknown_02038C28
	movs r1, 0xA0
	lsls r1, 1
	adds r1, r7
	mov r12, r1
	mov r6, r8
_081485E8:
	lsls r0, r5, 1
	adds r2, r0, r7
	mov r1, r12
	adds r4, r0, r1
	movs r0, 0x1
	ands r0, r5
	cmp r0, 0
	beq _08148618
	ldr r1, [r6]
	ldrh r0, [r3, 0xA]
	ldrh r1, [r1, 0x14]
	adds r0, r1
	strh r0, [r2]
	ldrh r1, [r3, 0xA]
	movs r0, 0xF0
	subs r0, r1
	b _0814862A
	.pool
_08148618:
	ldr r0, [r6]
	ldrh r0, [r0, 0x14]
	ldrh r1, [r3, 0xA]
	subs r0, r1
	strh r0, [r2]
	ldrh r0, [r3, 0xA]
	lsls r0, 8
	movs r1, 0xF1
	orrs r0, r1
_0814862A:
	strh r0, [r4]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x9F
	bls _081485E8
	movs r1, 0xA
	ldrsh r0, [r3, r1]
	cmp r0, 0xEF
	ble _08148644
	ldrh r0, [r3, 0x8]
	adds r0, 0x1
	strh r0, [r3, 0x8]
_08148644:
	mov r1, r8
	ldr r0, [r1]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8148590

	thumb_func_start sub_814865C
sub_814865C: @ 814865C
	push {lr}
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, =sub_81484D0
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814865C

	thumb_func_start sub_814869C
sub_814869C: @ 814869C
	push {r4,lr}
	ldr r4, =0x040000b0
	ldrh r1, [r4, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r1, [r4, 0xA]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xA]
	bl sub_8149F2C
	ldr r2, =0x04000048
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrh r0, [r1, 0x2]
	strh r0, [r2]
	adds r2, 0x2
	ldrh r0, [r1, 0x4]
	strh r0, [r2]
	subs r2, 0x6
	ldrh r0, [r1, 0x8]
	strh r0, [r2]
	ldrb r0, [r1]
	cmp r0, 0
	beq _081486E6
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x80000140
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_081486E6:
	ldr r0, =gUnknown_020394E8
	str r0, [r4]
	ldr r0, =0x04000040
	str r0, [r4, 0x4]
	ldr r0, =0xa2400001
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814869C

	thumb_func_start sub_8148728
sub_8148728: @ 8148728
	push {lr}
	ldr r2, =0x04000006
	ldrh r0, [r2]
	cmp r0, 0x9F
	bhi _0814874E
	ldr r1, =gUnknown_02038C28
	ldrh r0, [r2]
	lsls r0, 1
	movs r2, 0xF0
	lsls r2, 3
	adds r1, r2
	adds r0, r1
	ldrh r1, [r0]
	ldr r0, =0x04000014
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
	adds r0, 0x4
	strh r1, [r0]
_0814874E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148728

	thumb_func_start sub_8148760
sub_8148760: @ 8148760
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8C54
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08148772:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08148772
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148760

	thumb_func_start sub_8148798
sub_8148798: @ 8148798
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r6, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r2, 0
	movs r0, 0x3F
	strh r0, [r1, 0x2]
	strh r2, [r1, 0x4]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	movs r4, 0
	ldr r5, =gUnknown_02038C28
	movs r0, 0xF0
	lsls r0, 3
	adds r0, r5
	mov r12, r0
	mov r8, r4
	movs r1, 0xF0
	mov r9, r1
_081487CC:
	lsls r2, r4, 1
	mov r7, r12
	adds r1, r2, r7
	ldr r0, =sTransitionStructPtr
	ldr r3, [r0]
	ldrh r0, [r3, 0x14]
	strh r0, [r1]
	adds r1, r4, 0
	adds r1, 0xA0
	lsls r1, 1
	adds r0, r1, r7
	mov r7, r9
	strh r7, [r0]
	adds r2, r5
	ldrh r0, [r3, 0x14]
	strh r0, [r2]
	adds r1, r5
	mov r0, r9
	strh r0, [r1]
	movs r1, 0xA0
	lsls r1, 1
	adds r0, r4, r1
	lsls r0, 1
	adds r0, r5
	mov r7, r8
	strh r7, [r0]
	adds r1, 0xA0
	adds r0, r4, r1
	lsls r0, 1
	adds r0, r5
	subs r1, 0xE0
	strh r1, [r0]
	movs r7, 0xA0
	lsls r7, 2
	adds r0, r4, r7
	lsls r0, 1
	adds r0, r5
	movs r1, 0x1
	strh r1, [r0]
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x9F
	bls _081487CC
	movs r0, 0
	strh r0, [r6, 0x10]
	strh r0, [r6, 0x12]
	movs r0, 0x7
	strh r0, [r6, 0x14]
	movs r0, 0x2
	bl EnableInterrupts
	ldr r0, =sub_814869C
	bl SetVBlankCallback
	ldr r0, =sub_8148728
	bl SetHBlankCallback
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
	movs r0, 0x1
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148798

	thumb_func_start sub_8148864
sub_8148864: @ 8148864
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	mov r9, r0
	ldr r1, =gUnknown_085C8C64
	mov r0, sp
	movs r2, 0x2
	bl memcpy
	add r4, sp, 0x4
	ldr r1, =gUnknown_085C8C66
	adds r0, r4, 0
	movs r2, 0x4
	bl memcpy
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	str r0, [sp, 0x8]
	mov r10, r0
	mov r1, r9
	movs r3, 0x12
	ldrsh r0, [r1, r3]
	ldr r1, [sp, 0x8]
	cmp r1, r0
	ble _081488A4
	b _08148A68
_081488A4:
	movs r7, 0
	mov r2, r10
	negs r2, r2
	str r2, [sp, 0xC]
	mov r3, r10
	adds r3, 0x1
	str r3, [sp, 0x10]
_081488B2:
	movs r6, 0
	mov r0, sp
	adds r0, r7
	mov r12, r0
_081488BA:
	lsls r0, r6, 1
	add r0, sp
	adds r0, 0x4
	movs r1, 0
	ldrsh r0, [r0, r1]
	ldr r2, [sp, 0xC]
	muls r0, r2
	lsls r0, 1
	mov r3, r12
	ldrb r3, [r3]
	adds r0, r3
	lsls r0, 16
	lsrs r5, r0, 16
	asrs r0, 16
	cmp r0, 0
	blt _08148966
	cmp r0, 0x4F
	bne _081488E2
	cmp r7, 0x1
	beq _08148966
_081488E2:
	lsls r1, r0, 1
	ldr r0, =gUnknown_02038EA8
	adds r4, r1, r0
	movs r2, 0xA0
	lsls r2, 1
	adds r0, r2
	adds r3, r1, r0
	ldr r0, =gUnknown_02039128
	adds r1, r0
	ldrh r2, [r4]
	cmp r2, 0xEF
	bls _08148920
	movs r1, 0xF0
	strh r1, [r4]
	ldr r0, [sp, 0x8]
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x8]
	b _08148940
	.pool
_08148920:
	ldrh r0, [r3]
	lsrs r0, 8
	adds r0, r2, r0
	strh r0, [r4]
	ldrh r0, [r1]
	cmp r0, 0x7F
	bhi _08148932
	lsls r0, 1
	strh r0, [r1]
_08148932:
	ldrh r2, [r3]
	ldr r0, =0x00000fff
	cmp r2, r0
	bhi _08148940
	ldrh r0, [r1]
	adds r0, r2, r0
	strh r0, [r3]
_08148940:
	lsls r0, r5, 16
	asrs r0, 15
	ldr r1, =gUnknown_02038C28
	adds r2, r0, r1
	ldr r1, =gUnknown_02038D68
	adds r3, r0, r1
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrh r0, [r4]
	ldrh r1, [r1, 0x14]
	adds r0, r1
	strh r0, [r2]
	ldrh r0, [r4]
	movs r1, 0xF0
	subs r0, r1, r0
	strh r0, [r3]
	mov r2, r10
	cmp r2, 0
	beq _08148970
_08148966:
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0x1
	bls _081488BA
_08148970:
	adds r0, r7, 0x1
	lsls r0, 16
	lsrs r7, r0, 16
	cmp r7, 0x1
	bls _081488B2
	movs r7, 0
	ldr r3, =gUnknown_02038EA8
	mov r8, r3
_08148980:
	movs r6, 0
	mov r0, sp
	adds r0, r7
	mov r12, r0
	adds r1, r7, 0x1
	str r1, [sp, 0x14]
_0814898C:
	mov r2, r12
	ldrb r1, [r2]
	adds r1, 0x1
	lsls r0, r6, 1
	add r0, sp
	adds r0, 0x4
	movs r3, 0
	ldrsh r0, [r0, r3]
	ldr r2, [sp, 0xC]
	muls r0, r2
	lsls r0, 1
	adds r1, r0
	lsls r1, 16
	lsrs r5, r1, 16
	asrs r1, 16
	cmp r1, 0xA0
	bgt _08148A40
	cmp r1, 0x50
	bne _081489B6
	cmp r7, 0x1
	beq _08148A40
_081489B6:
	lsls r1, 1
	mov r3, r8
	adds r4, r1, r3
	movs r0, 0xA0
	lsls r0, 1
	add r0, r8
	adds r3, r1, r0
	ldr r0, =gUnknown_02039128
	adds r1, r0
	ldrh r2, [r4]
	cmp r2, 0xEF
	bls _081489F8
	movs r1, 0xF0
	strh r1, [r4]
	ldr r0, [sp, 0x8]
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x8]
	b _08148A18
	.pool
_081489F8:
	ldrh r0, [r3]
	lsrs r0, 8
	adds r0, r2, r0
	strh r0, [r4]
	ldrh r0, [r1]
	cmp r0, 0x7F
	bhi _08148A0A
	lsls r0, 1
	strh r0, [r1]
_08148A0A:
	ldrh r2, [r3]
	ldr r0, =0x00000fff
	cmp r2, r0
	bhi _08148A18
	ldrh r0, [r1]
	adds r0, r2, r0
	strh r0, [r3]
_08148A18:
	lsls r0, r5, 16
	asrs r0, 15
	ldr r1, =gUnknown_02038C28
	adds r2, r0, r1
	ldr r1, =gUnknown_02038D68
	adds r3, r0, r1
	ldr r1, =sTransitionStructPtr
	ldr r0, [r1]
	ldrh r1, [r0, 0x14]
	ldrh r0, [r4]
	subs r1, r0
	strh r1, [r2]
	ldrh r0, [r4]
	lsls r0, 8
	movs r1, 0xF1
	orrs r0, r1
	strh r0, [r3]
	mov r2, r10
	cmp r2, 0
	beq _08148A4A
_08148A40:
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0x1
	bls _0814898C
_08148A4A:
	ldr r3, [sp, 0x14]
	lsls r0, r3, 16
	lsrs r7, r0, 16
	cmp r7, 0x1
	bls _08148980
	ldr r1, [sp, 0x10]
	lsls r0, r1, 16
	lsrs r0, 16
	mov r10, r0
	mov r2, r9
	movs r3, 0x12
	ldrsh r0, [r2, r3]
	cmp r10, r0
	bgt _08148A68
	b _081488A4
_08148A68:
	mov r1, r9
	ldrh r0, [r1, 0x10]
	subs r0, 0x1
	strh r0, [r1, 0x10]
	lsls r0, 16
	cmp r0, 0
	bge _08148A7A
	movs r0, 0
	strh r0, [r1, 0x10]
_08148A7A:
	mov r2, r9
	movs r3, 0x10
	ldrsh r0, [r2, r3]
	cmp r0, 0
	bgt _08148A98
	movs r1, 0x12
	ldrsh r0, [r2, r1]
	adds r0, 0x1
	cmp r0, 0x14
	bgt _08148A98
	ldrh r0, [r2, 0x14]
	strh r0, [r2, 0x10]
	ldrh r0, [r2, 0x12]
	adds r0, 0x1
	strh r0, [r2, 0x12]
_08148A98:
	ldr r2, [sp, 0x8]
	cmp r2, 0x9F
	bls _08148AA6
	mov r3, r9
	ldrh r0, [r3, 0x8]
	adds r0, 0x1
	strh r0, [r3, 0x8]
_08148AA6:
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148864

	thumb_func_start sub_8148AD4
sub_8148AD4: @ 8148AD4
	push {r4,r5,lr}
	adds r3, r0, 0
	movs r2, 0x1
	ldr r5, =0x0000ff10
	movs r1, 0
	ldr r4, =gUnknown_020393A8
_08148AE0:
	lsls r0, r1, 1
	adds r0, r4
	ldrh r0, [r0]
	cmp r0, 0xF0
	beq _08148AF0
	cmp r0, r5
	beq _08148AF0
	movs r2, 0
_08148AF0:
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x9F
	bls _08148AE0
	cmp r2, 0x1
	bne _08148B04
	ldrh r0, [r3, 0x8]
	adds r0, 0x1
	strh r0, [r3, 0x8]
_08148B04:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148AD4

	thumb_func_start sub_8148B14
sub_8148B14: @ 8148B14
	push {lr}
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, =sub_8148760
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148B14

	thumb_func_start sub_8148B54
sub_8148B54: @ 8148B54
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8C6C
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08148B66:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08148B66
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148B54

	thumb_func_start sub_8148B8C
sub_8148B8C: @ 8148B8C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8C78
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08148B9E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08148B9E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148B8C

	thumb_func_start sub_8148BC4
sub_8148BC4: @ 8148BC4
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1, 0x2]
	movs r0, 0x3F
	strh r0, [r1, 0x4]
	movs r0, 0xF0
	strh r0, [r1, 0x6]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	ldr r0, =gUnknown_02038C28
	movs r2, 0
	movs r1, 0x9F
	ldr r3, =0x000008be
	adds r0, r3
_08148BEE:
	strh r2, [r0]
	subs r0, 0x2
	subs r1, 0x1
	cmp r1, 0
	bge _08148BEE
	movs r4, 0
	ldr r0, =sub_8146F68
	bl SetVBlankCallback
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0x1
	strh r0, [r5, 0xA]
	adds r0, 0xFF
	strh r0, [r5, 0xC]
	strh r4, [r5, 0x16]
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148BC4

	thumb_func_start sub_8148C28
sub_8148C28: @ 8148C28
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r1, 0x16
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	bne _08148C6C
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	movs r0, 0
	bl SetVBlankCallback
	ldr r0, [r4]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	b _08148CDE
	.pool
_08148C6C:
	ldr r5, =sTransitionStructPtr
	ldr r1, [r5]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldrh r2, [r4, 0xC]
	movs r0, 0xC
	ldrsh r1, [r4, r0]
	ldr r0, =0x000003ff
	cmp r1, r0
	bgt _08148C88
	adds r0, r2, 0
	adds r0, 0x80
	strh r0, [r4, 0xC]
_08148C88:
	ldrh r1, [r4, 0xA]
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	cmp r0, 0x9F
	bgt _08148C9C
	ldrh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 24
	adds r0, r1, r0
	strh r0, [r4, 0xA]
_08148C9C:
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0xA0
	ble _08148CA8
	movs r0, 0xA0
	strh r0, [r4, 0xA]
_08148CA8:
	ldr r0, =gUnknown_02038C28
	movs r2, 0xA
	ldrsh r3, [r4, r2]
	movs r1, 0x78
	movs r2, 0x50
	bl sub_814A014
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0xA0
	bne _08148CD4
	movs r0, 0x1
	strh r0, [r4, 0x16]
	bl sub_8149F84
	b _08148CDE
	.pool
_08148CD4:
	ldr r0, [r5]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
_08148CDE:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_8148C28

	thumb_func_start sub_8148CE8
sub_8148CE8: @ 8148CE8
	push {r4-r6,lr}
	adds r4, r0, 0
	ldr r6, =sTransitionStructPtr
	ldr r0, [r6]
	ldrb r1, [r0]
	movs r5, 0
	strb r5, [r0]
	ldrh r1, [r4, 0x16]
	movs r2, 0x16
	ldrsh r0, [r4, r2]
	cmp r0, 0
	bne _08148D0A
	adds r0, r1, 0x1
	strh r0, [r4, 0x16]
	movs r0, 0x30
	strh r0, [r4, 0xA]
	strh r5, [r4, 0x14]
_08148D0A:
	ldr r1, =gUnknown_085C8C80
	movs r2, 0x14
	ldrsh r0, [r4, r2]
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	ldrh r1, [r4, 0xA]
	adds r0, r1
	strh r0, [r4, 0xA]
	movs r2, 0x14
	ldrsh r1, [r4, r2]
	adds r1, 0x1
	lsrs r0, r1, 31
	adds r0, r1, r0
	asrs r0, 1
	lsls r0, 1
	subs r1, r0
	strh r1, [r4, 0x14]
	ldr r0, =gUnknown_02038C28
	movs r1, 0xA
	ldrsh r3, [r4, r1]
	movs r1, 0x78
	movs r2, 0x50
	bl sub_814A014
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	cmp r0, 0x8
	bgt _08148D4C
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	strh r5, [r4, 0x16]
_08148D4C:
	ldr r0, [r6]
	ldrb r1, [r0]
	adds r1, 0x1
	ldrb r2, [r0]
	strb r1, [r0]
	movs r0, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148CE8

	thumb_func_start sub_8148D6C
sub_8148D6C: @ 8148D6C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldrh r1, [r4, 0x16]
	movs r2, 0x16
	ldrsh r0, [r4, r2]
	cmp r0, 0
	bne _08148D8E
	adds r0, r1, 0x1
	strh r0, [r4, 0x16]
	movs r0, 0x2
	strh r0, [r4, 0x12]
	strh r0, [r4, 0x14]
_08148D8E:
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0xA0
	ble _08148D9A
	movs r0, 0xA0
	strh r0, [r4, 0xA]
_08148D9A:
	ldr r0, =gUnknown_02038C28
	movs r2, 0xA
	ldrsh r3, [r4, r2]
	movs r1, 0x78
	movs r2, 0x50
	bl sub_814A014
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0xA0
	bne _08148DD6
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, [r4]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_08148DD6:
	ldrh r2, [r4, 0x12]
	ldrb r0, [r4, 0x12]
	cmp r0, 0x80
	bgt _08148DFC
	ldrh r1, [r4, 0x14]
	adds r0, r2, 0
	adds r0, 0x8
	b _08148E08
	.pool
_08148DFC:
	ldrh r0, [r4, 0x14]
	subs r0, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	adds r0, r2, 0
	adds r0, 0x10
_08148E08:
	strh r0, [r4, 0x12]
	movs r0, 0xFF
	ands r2, r0
	lsls r1, 16
	asrs r1, 16
	adds r0, r2, 0
	bl Sin
	ldrh r2, [r4, 0xA]
	adds r0, r2
	strh r0, [r4, 0xA]
	lsls r0, 16
	cmp r0, 0
	bgt _08148E28
	movs r0, 0x1
	strh r0, [r4, 0xA]
_08148E28:
	ldrh r0, [r4, 0x12]
	lsls r1, r0, 16
	asrs r0, r1, 16
	cmp r0, 0xFE
	ble _08148E3C
	asrs r0, r1, 24
	strh r0, [r4, 0x12]
	ldrh r0, [r4, 0x14]
	adds r0, 0x1
	strh r0, [r4, 0x14]
_08148E3C:
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148D6C

	thumb_func_start sub_8148E54
sub_8148E54: @ 8148E54
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8C84
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08148E66:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08148E66
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8148E54

	thumb_func_start sub_8148E8C
sub_8148E8C: @ 8148E8C
	push {r4,r5,lr}
	sub sp, 0xC
	adds r5, r0, 0
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	ldr r4, =gUnknown_085BACD0
	ldr r1, [sp, 0x8]
	adds r0, r4, 0
	movs r2, 0x10
	bl CpuSet
	movs r0, 0xE0
	lsls r0, 1
	adds r4, r0
	ldr r1, [sp, 0x8]
	adds r1, 0x40
	adds r0, r4, 0
	movs r2, 0x10
	bl CpuSet
	mov r1, sp
	movs r2, 0xF0
	lsls r2, 8
	adds r0, r2, 0
	strh r0, [r1]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	mov r0, sp
	bl CpuSet
	ldr r0, =gFieldEffectObjectPalette10
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	movs r1, 0
	movs r4, 0x1
	movs r0, 0x1
	strh r0, [r5, 0xE]
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	ldr r5, =gUnknown_03001210
	strb r1, [r5]
	ldr r0, =0x0000ffff
	strh r0, [r5, 0x2]
	strb r4, [r5, 0x4]
	movs r2, 0x9A
	lsls r2, 1
	strh r2, [r5, 0x6]
	strb r1, [r5, 0x8]
	strb r1, [r5, 0xC]
	movs r0, 0x1
	negs r0, r0
	strh r0, [r5, 0xE]
	strb r4, [r5, 0x10]
	strh r2, [r5, 0x12]
	strb r1, [r5, 0x14]
	strb r1, [r5, 0x18]
	ldr r2, =0x0000fffd
	strh r2, [r5, 0x1A]
	strb r4, [r5, 0x1C]
	ldr r3, =0x00000133
	strh r3, [r5, 0x1E]
	adds r0, r5, 0
	adds r0, 0x20
	strb r1, [r0]
	adds r0, 0x4
	strb r1, [r0]
	strh r2, [r5, 0x26]
	adds r0, 0x4
	strb r4, [r0]
	strh r3, [r5, 0x2A]
	adds r0, 0x4
	strb r1, [r0]
	movs r0, 0
	add sp, 0xC
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148E8C

	thumb_func_start sub_8148F4C
sub_8148F4C: @ 8148F4C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	mov r8, r0
	movs r7, 0x1
	add r1, sp, 0x4
	mov r0, sp
	bl sub_8149F58
	movs r0, 0
_08148F62:
	movs r5, 0
	adds r6, r0, 0x1
_08148F66:
	ldr r1, =gUnknown_085C8D38
	lsrs r0, r5, 1
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
	lsls r1, r5, 1
	adds r1, r5
	lsls r1, 2
	ldr r2, =gUnknown_03001210
	adds r4, r1, r2
	adds r1, r4, 0
	bl sub_8149048
	lsls r0, 16
	cmp r0, 0
	beq _08148FCA
	movs r7, 0
	ldrh r2, [r4, 0x2]
	movs r0, 0x1
	ands r0, r5
	cmp r0, 0x1
	bne _08148FA0
	ldr r0, =0x0000027d
	adds r1, r0, 0
	lsls r0, r2, 16
	asrs r0, 16
	subs r1, r0
	lsls r1, 16
	lsrs r2, r1, 16
_08148FA0:
	lsls r0, r2, 16
	asrs r1, r0, 16
	adds r0, r1, 0
	cmp r1, 0
	bge _08148FAC
	adds r0, 0x1F
_08148FAC:
	asrs r2, r0, 5
	lsls r0, r2, 5
	subs r0, r1, r0
	lsls r0, 16
	lsrs r0, 16
	lsls r1, r2, 5
	lsls r0, 16
	asrs r0, 16
	adds r1, r0
	ldr r0, [sp]
	lsls r1, 1
	adds r1, r0
	ldr r2, =0x0000f002
	adds r0, r2, 0
	strh r0, [r1]
_08148FCA:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x3
	bls _08148F66
	lsls r0, r6, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _08148F62
	cmp r7, 0x1
	bne _08148FE8
	mov r1, r8
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
_08148FE8:
	movs r0, 0
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8148F4C

	thumb_func_start sub_8149008
sub_8149008: @ 8149008
	push {r4,lr}
	adds r4, r0, 0
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, [r4]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149008

	thumb_func_start sub_8149048
sub_8149048: @ 8149048
	push {r4,lr}
	adds r2, r1, 0
	ldrb r1, [r2]
	lsls r1, 2
	adds r1, r0
	ldr r3, [r1]
	ldrb r0, [r2, 0x4]
	lsls r0, 1
	adds r0, r3
	movs r4, 0
	ldrsh r1, [r0, r4]
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _081490CE
	ldr r1, =gUnknown_03001208
	ldrh r0, [r3]
	strh r0, [r1]
	ldrh r0, [r3, 0x2]
	strh r0, [r1]
	ldrh r0, [r3, 0x4]
	strh r0, [r1]
	ldrh r0, [r3, 0x6]
	strh r0, [r1]
	movs r1, 0
	ldrsh r0, [r3, r1]
	cmp r0, 0x2
	beq _081490A0
	cmp r0, 0x2
	bgt _08149090
	cmp r0, 0x1
	beq _0814909A
	b _081490B2
	.pool
_08149090:
	cmp r0, 0x3
	beq _081490A6
	cmp r0, 0x4
	beq _081490AC
	b _081490B2
_0814909A:
	ldrh r0, [r2, 0x2]
	adds r0, 0x1
	b _081490B0
_081490A0:
	ldrh r0, [r2, 0x2]
	subs r0, 0x1
	b _081490B0
_081490A6:
	ldrh r0, [r2, 0x2]
	subs r0, 0x20
	b _081490B0
_081490AC:
	ldrh r0, [r2, 0x2]
	adds r0, 0x20
_081490B0:
	strh r0, [r2, 0x2]
_081490B2:
	movs r4, 0x2
	ldrsh r1, [r2, r4]
	ldr r0, =0x0000027f
	cmp r1, r0
	bgt _081490CE
	ldrb r0, [r2, 0x4]
	lsls r0, 1
	adds r0, r3
	movs r4, 0
	ldrsh r1, [r0, r4]
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	bne _081490D8
_081490CE:
	movs r0, 0
	b _08149138
	.pool
_081490D8:
	ldrb r0, [r2, 0x8]
	cmp r0, 0
	bne _081490F4
	movs r0, 0x2
	negs r0, r0
	cmp r1, r0
	bne _081490F4
	movs r0, 0x1
	strb r0, [r2, 0x8]
	strb r0, [r2, 0x4]
	ldrh r0, [r2, 0x6]
	strh r0, [r2, 0x2]
	movs r0, 0x4
	strb r0, [r2]
_081490F4:
	ldrb r0, [r2, 0x4]
	lsls r0, 1
	adds r0, r3
	movs r3, 0x2
	ldrsh r1, [r2, r3]
	movs r4, 0
	ldrsh r0, [r0, r4]
	cmp r1, r0
	bne _08149136
	ldrb r0, [r2]
	adds r1, r0, 0x1
	strb r1, [r2]
	ldrb r0, [r2, 0x8]
	cmp r0, 0x1
	bne _08149124
	lsls r0, r1, 24
	lsrs r0, 24
	cmp r0, 0x7
	bls _08149136
	ldrb r0, [r2, 0x4]
	adds r0, 0x1
	strb r0, [r2, 0x4]
	movs r0, 0x4
	b _08149134
_08149124:
	lsls r0, r1, 24
	lsrs r0, 24
	cmp r0, 0x3
	bls _08149136
	ldrb r0, [r2, 0x4]
	adds r0, 0x1
	strb r0, [r2, 0x4]
	movs r0, 0
_08149134:
	strb r0, [r2]
_08149136:
	movs r0, 0x1
_08149138:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8149048

	thumb_func_start sub_8149140
sub_8149140: @ 8149140
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8D40
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08149152:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08149152
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149140

	thumb_func_start sub_8149178
sub_8149178: @ 8149178
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	mov r0, sp
	bl CpuSet
	ldr r0, =gUnknown_085BE51C
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_085BEA88
	ldr r1, [sp, 0x4]
	bl LZ77UnCompVram
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	movs r1, 0
	strh r0, [r4, 0x8]
	strh r1, [r4, 0xA]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149178

	thumb_func_start sub_81491C8
sub_81491C8: @ 81491C8
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r5, [r4, r0]
	adds r0, r5, 0
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _08149200
	adds r0, r5, 0
	movs r1, 0x1E
	bl __modsi3
	lsls r0, 16
	asrs r0, 16
	movs r1, 0x3
	bl __divsi3
	lsls r0, 16
	lsrs r0, 11
	ldr r1, =gUnknown_085BF0A0
	adds r0, r1
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
_08149200:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3A
	ble _08149218
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	strh r0, [r4, 0xA]
_08149218:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81491C8

	thumb_func_start sub_8149224
sub_8149224: @ 8149224
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r5, [r4, r0]
	adds r0, r5, 0
	movs r1, 0x5
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _08149252
	adds r0, r5, 0
	movs r1, 0x5
	bl __divsi3
	lsls r0, 16
	asrs r0, 11
	ldr r1, =gUnknown_085BF2A0
	adds r0, r1
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
_08149252:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x44
	ble _0814926E
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	strh r0, [r4, 0xA]
	movs r0, 0x1E
	strh r0, [r4, 0x18]
_0814926E:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149224

	thumb_func_start sub_814927C
sub_814927C: @ 814927C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8D60
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814928E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814928E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814927C

	thumb_func_start sub_81492B4
sub_81492B4: @ 81492B4
	push {r4-r6,lr}
	sub sp, 0xC
	adds r4, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	ldr r1, =0x00009a08
	movs r0, 0x8
	bl SetGpuReg
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	mov r0, sp
	bl CpuSet
	ldr r0, =gUnknown_085BF6A0
	ldr r1, [sp, 0x8]
	movs r2, 0x80
	lsls r2, 5
	bl CpuSet
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1, 0x20]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	ldr r0, =gUnknown_085BF540
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	movs r2, 0
	ldr r3, =gUnknown_02038C28
	movs r6, 0
	movs r0, 0xF0
	lsls r0, 3
	adds r5, r3, r0
	movs r4, 0x80
	lsls r4, 1
_08149316:
	lsls r1, r2, 1
	adds r0, r1, r3
	strh r6, [r0]
	adds r1, r5
	strh r4, [r1]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x9F
	bls _08149316
	ldr r0, =sub_8149508
	bl SetVBlankCallback
	movs r0, 0
	add sp, 0xC
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81492B4

	thumb_func_start sub_8149358
sub_8149358: @ 8149358
	push {r4,lr}
	sub sp, 0x8
	adds r4, r0, 0
	add r1, sp, 0x4
	mov r0, sp
	bl sub_8149F58
	ldr r0, =gUnknown_085C6BE0
	ldr r1, [sp]
	movs r2, 0x80
	lsls r2, 4
	bl CpuSet
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149358

	thumb_func_start sub_8149388
sub_8149388: @ 8149388
	push {r4,lr}
	adds r4, r0, 0
	ldrh r0, [r4, 0xA]
	movs r1, 0x3
	ands r0, r1
	cmp r0, 0
	bne _081493B4
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bge _081493A0
	adds r0, 0x3
_081493A0:
	lsls r0, 14
	lsrs r0, 16
	adds r0, 0x5
	lsls r0, 5
	ldr r1, =gUnknown_085BF4A0
	adds r0, r1
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
_081493B4:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x28
	ble _081493CC
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	strh r0, [r4, 0xA]
_081493CC:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149388

	thumb_func_start sub_81493D8
sub_81493D8: @ 81493D8
	push {lr}
	sub sp, 0x4
	adds r1, r0, 0
	ldrh r0, [r1, 0xA]
	adds r0, 0x1
	movs r2, 0
	strh r0, [r1, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x14
	ble _08149402
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	strh r2, [r1, 0xA]
	ldr r0, =0xffff8000
	str r2, [sp]
	movs r1, 0x2
	movs r3, 0x10
	bl BeginNormalPaletteFade
_08149402:
	movs r0, 0
	add sp, 0x4
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81493D8

	thumb_func_start sub_8149410
sub_8149410: @ 8149410
	push {lr}
	adds r2, r0, 0
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0814942E
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r0, 0x1
	strh r0, [r1, 0x20]
	ldrh r0, [r2, 0x8]
	adds r0, 0x1
	strh r0, [r2, 0x8]
_0814942E:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149410

	thumb_func_start sub_814943C
sub_814943C: @ 814943C
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =0x00007fff
	movs r1, 0x8
	movs r2, 0
	bl BlendPalettes
	ldr r0, =0xffff8000
	movs r1, 0
	movs r2, 0
	bl BlendPalettes
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814943C

	thumb_func_start sub_814946C
sub_814946C: @ 814946C
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0xA
	ldrsh r5, [r4, r0]
	adds r0, r5, 0
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _0814949A
	adds r0, r5, 0
	movs r1, 0x3
	bl __divsi3
	lsls r0, 16
	lsrs r0, 11
	ldr r1, =gUnknown_085BF4A0
	adds r0, r1
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
_0814949A:
	ldrh r0, [r4, 0xA]
	adds r0, 0x1
	strh r0, [r4, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x27
	ble _081494F0
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r0, 0
	strh r0, [r1, 0x2]
	movs r0, 0x3F
	strh r0, [r1, 0x4]
	movs r0, 0xF0
	strh r0, [r1, 0x6]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	movs r1, 0
	ldr r5, =sub_8146F68
	ldr r3, =gUnknown_020393A8
	movs r2, 0
_081494C4:
	lsls r0, r1, 1
	adds r0, r3
	strh r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x9F
	bls _081494C4
	adds r0, r5, 0
	bl SetVBlankCallback
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	movs r2, 0
	strh r0, [r4, 0x8]
	movs r1, 0x80
	lsls r1, 1
	strh r1, [r4, 0xC]
	strh r2, [r4, 0x16]
	movs r0, 0
	bl ClearGpuRegBits
_081494F0:
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814946C

	thumb_func_start sub_8149508
sub_8149508: @ 8149508
	push {lr}
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F2C
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	movs r1, 0x20
	ldrsh r0, [r0, r1]
	cmp r0, 0
	bne _08149548
	ldr r2, =gUnknown_02038C28
	b _08149554
	.pool
_08149548:
	ldr r2, =gUnknown_02038C28
	cmp r0, 0x1
	bne _08149554
	movs r0, 0xF0
	lsls r0, 3
	adds r2, r0
_08149554:
	ldr r1, =0x040000b0
	str r2, [r1]
	ldr r0, =0x04000012
	str r0, [r1, 0x4]
	ldr r0, =0xa2400001
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149508

	thumb_func_start sub_8149578
sub_8149578: @ 8149578
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8D8C
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814958A:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814958A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149578

	thumb_func_start sub_81495B0
sub_81495B0: @ 81495B0
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r2, 0
	movs r0, 0xBF
	strh r0, [r1, 0xE]
	strh r2, [r1, 0x12]
	movs r0, 0x1E
	strh r0, [r1, 0x2]
	movs r0, 0x3F
	strh r0, [r1, 0x4]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	movs r1, 0
	ldr r2, =gUnknown_020393A8
	movs r4, 0
	movs r3, 0xF0
_081495DC:
	lsls r0, r1, 1
	adds r0, r2
	strh r4, [r0]
	adds r0, r1, 0
	adds r0, 0xA0
	lsls r0, 1
	adds r0, r2
	strh r3, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x9F
	bls _081495DC
	movs r0, 0x2
	bl EnableInterrupts
	ldr r0, =sub_8149840
	bl SetHBlankCallback
	ldr r0, =sub_8149774
	bl SetVBlankCallback
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81495B0

	thumb_func_start sub_8149628
sub_8149628: @ 8149628
	push {r4-r6,lr}
	sub sp, 0x10
	adds r6, r0, 0
	ldr r1, =gUnknown_085C8DA0
	mov r0, sp
	movs r2, 0x10
	bl memcpy
	movs r5, 0
	movs r4, 0
_0814963C:
	ldr r0, =sub_8149864
	bl CreateInvisibleSprite
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r2, r1, r0
	movs r0, 0xF0
	strh r0, [r2, 0x20]
	strh r4, [r2, 0x22]
	lsls r1, r5, 16
	asrs r1, 16
	lsls r0, r1, 1
	add r0, sp
	ldrh r0, [r0]
	strh r0, [r2, 0x38]
	adds r1, 0x1
	lsls r1, 16
	lsls r0, r4, 16
	movs r3, 0xA0
	lsls r3, 13
	adds r0, r3
	lsrs r4, r0, 16
	lsrs r5, r1, 16
	asrs r1, 16
	cmp r1, 0x7
	ble _0814963C
	ldrh r0, [r2, 0x3A]
	adds r0, 0x1
	strh r0, [r2, 0x3A]
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149628

	thumb_func_start sub_814969C
sub_814969C: @ 814969C
	push {r4,lr}
	adds r4, r0, 0
	ldr r2, =sTransitionStructPtr
	ldr r1, [r2]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	ldr r0, [r2]
	movs r1, 0x20
	ldrsh r0, [r0, r1]
	cmp r0, 0x7
	ble _081496C6
	movs r0, 0x1
	negs r0, r0
	ldr r2, =0x00007fff
	movs r1, 0x10
	bl BlendPalettes
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_081496C6:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814969C

	thumb_func_start sub_81496D8
sub_81496D8: @ 81496D8
	push {r4-r6,lr}
	adds r6, r0, 0
	ldr r4, =sTransitionStructPtr
	ldr r0, [r4]
	ldrb r1, [r0]
	movs r5, 0
	strb r5, [r0]
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	movs r0, 0
	bl SetVBlankCallback
	movs r0, 0
	bl SetHBlankCallback
	ldr r1, [r4]
	movs r0, 0xF0
	strh r0, [r1, 0x6]
	strh r5, [r1, 0x12]
	movs r0, 0xFF
	strh r0, [r1, 0xE]
	movs r0, 0x3F
	strh r0, [r1, 0x2]
	ldr r0, =sub_8149804
	bl SetVBlankCallback
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
	movs r0, 0
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81496D8

	thumb_func_start sub_8149740
sub_8149740: @ 8149740
	push {lr}
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrh r0, [r1, 0x12]
	adds r0, 0x1
	strh r0, [r1, 0x12]
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x10
	bls _08149766
	bl sub_8149F84
	ldr r0, =sub_8149578
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_08149766:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149740

	thumb_func_start sub_8149774
sub_8149774: @ 8149774
	push {r4,lr}
	ldr r4, =0x040000b0
	ldrh r1, [r4, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r1, [r4, 0xA]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xA]
	bl sub_8149F2C
	ldr r2, =0x04000050
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrh r0, [r1, 0xE]
	strh r0, [r2]
	subs r2, 0x8
	ldrh r0, [r1, 0x2]
	strh r0, [r2]
	adds r2, 0x2
	ldrh r0, [r1, 0x4]
	strh r0, [r2]
	subs r2, 0x6
	ldrh r0, [r1, 0x8]
	strh r0, [r2]
	ldrb r0, [r1]
	cmp r0, 0
	beq _081497C4
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x80000140
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_081497C4:
	ldr r0, =gUnknown_020394E8
	str r0, [r4]
	ldr r0, =0x04000040
	str r0, [r4, 0x4]
	ldr r0, =0xa2400001
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149774

	thumb_func_start sub_8149804
sub_8149804: @ 8149804
	push {lr}
	bl sub_8149F2C
	ldr r1, =0x04000054
	ldr r0, =sTransitionStructPtr
	ldr r2, [r0]
	ldrh r0, [r2, 0x12]
	strh r0, [r1]
	subs r1, 0x4
	ldrh r0, [r2, 0xE]
	strh r0, [r1]
	subs r1, 0x8
	ldrh r0, [r2, 0x2]
	strh r0, [r1]
	adds r1, 0x2
	ldrh r0, [r2, 0x4]
	strh r0, [r1]
	subs r1, 0xA
	ldrh r0, [r2, 0x6]
	strh r0, [r1]
	adds r1, 0x4
	ldrh r0, [r2, 0x8]
	strh r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149804

	thumb_func_start sub_8149840
sub_8149840: @ 8149840
	ldr r2, =0x04000054
	ldr r1, =gUnknown_02038C28
	ldr r0, =0x04000006
	ldrh r0, [r0]
	lsls r0, 1
	movs r3, 0xF0
	lsls r3, 3
	adds r1, r3
	adds r0, r1
	ldrh r0, [r0]
	strh r0, [r2]
	bx lr
	.pool
	thumb_func_end sub_8149840

	thumb_func_start sub_8149864
sub_8149864: @ 8149864
	push {r4-r6,lr}
	adds r3, r0, 0
	ldrh r1, [r3, 0x38]
	movs r2, 0x38
	ldrsh r0, [r3, r2]
	cmp r0, 0
	beq _08149890
	subs r0, r1, 0x1
	strh r0, [r3, 0x38]
	movs r1, 0x3A
	ldrsh r0, [r3, r1]
	cmp r0, 0
	beq _0814994C
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	movs r0, 0x1
	strb r0, [r1]
	b _0814994C
	.pool
_08149890:
	movs r2, 0x22
	ldrsh r1, [r3, r2]
	lsls r1, 1
	ldr r0, =gUnknown_02038C28
	adds r6, r1, r0
	movs r2, 0xA0
	lsls r2, 1
	adds r0, r2
	adds r5, r1, r0
	movs r4, 0
_081498A4:
	lsls r1, r4, 1
	adds r2, r1, r6
	ldrh r0, [r3, 0x2E]
	lsls r0, 16
	asrs r0, 24
	strh r0, [r2]
	adds r1, r5
	ldrh r0, [r3, 0x20]
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x13
	bls _081498A4
	movs r1, 0x20
	ldrsh r0, [r3, r1]
	ldrh r2, [r3, 0x20]
	cmp r0, 0
	bne _081498DE
	movs r0, 0x2E
	ldrsh r1, [r3, r0]
	movs r0, 0x80
	lsls r0, 5
	cmp r1, r0
	bne _081498DE
	movs r0, 0x1
	strh r0, [r3, 0x30]
_081498DE:
	adds r1, r2, 0
	subs r1, 0x10
	strh r1, [r3, 0x20]
	ldrh r0, [r3, 0x2E]
	adds r0, 0x80
	strh r0, [r3, 0x2E]
	lsls r1, 16
	cmp r1, 0
	bge _081498F4
	movs r0, 0
	strh r0, [r3, 0x20]
_081498F4:
	movs r1, 0x2E
	ldrsh r0, [r3, r1]
	movs r1, 0x80
	lsls r1, 5
	cmp r0, r1
	ble _08149902
	strh r1, [r3, 0x2E]
_08149902:
	movs r2, 0x3A
	ldrsh r0, [r3, r2]
	cmp r0, 0
	beq _08149914
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	movs r0, 0x1
	strb r0, [r1]
_08149914:
	movs r1, 0x30
	ldrsh r0, [r3, r1]
	cmp r0, 0
	beq _0814994C
	movs r2, 0x3A
	ldrsh r0, [r3, r2]
	ldr r2, =sTransitionStructPtr
	cmp r0, 0
	beq _0814993E
	ldr r0, [r2]
	movs r1, 0x20
	ldrsh r0, [r0, r1]
	cmp r0, 0x6
	ble _0814994C
	ldrh r0, [r3, 0x32]
	adds r1, r0, 0x1
	strh r1, [r3, 0x32]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	ble _0814994C
_0814993E:
	ldr r1, [r2]
	ldrh r0, [r1, 0x20]
	adds r0, 0x1
	strh r0, [r1, 0x20]
	adds r0, r3, 0
	bl DestroySprite
_0814994C:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149864

	thumb_func_start sub_814995C
sub_814995C: @ 814995C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8DB0
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814996E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814996E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814995C

	thumb_func_start sub_8149994
sub_8149994: @ 8149994
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085BACD0
	ldr r1, [sp, 0x8]
	movs r2, 0x10
	bl CpuSet
	mov r1, sp
	movs r2, 0xF0
	lsls r2, 8
	adds r0, r2, 0
	strh r0, [r1]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	mov r0, sp
	bl CpuSet
	ldr r0, =gFieldEffectObjectPalette10
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149994

	thumb_func_start sub_81499E8
sub_81499E8: @ 81499E8
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r1, 0xA
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _08149A2A
	mov r0, sp
	bl sub_8149F40
	movs r0, 0x3
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xC]
	adds r0, 0x1
	strh r0, [r4, 0xC]
	movs r1, 0xC
	ldrsh r0, [r4, r1]
	lsls r0, 5
	ldr r1, =gUnknown_085BACD0
	adds r0, r1
	ldr r1, [sp]
	movs r2, 0x10
	bl CpuSet
	movs r1, 0xC
	ldrsh r0, [r4, r1]
	cmp r0, 0xD
	ble _08149A2A
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x10
	strh r0, [r4, 0xA]
_08149A2A:
	ldrh r0, [r4, 0xA]
	subs r0, 0x1
	strh r0, [r4, 0xA]
	movs r0, 0
	add sp, 0x4
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81499E8

	thumb_func_start sub_8149A40
sub_8149A40: @ 8149A40
	push {lr}
	ldrh r1, [r0, 0xA]
	subs r1, 0x1
	strh r1, [r0, 0xA]
	lsls r1, 16
	cmp r1, 0
	bne _08149A60
	bl sub_8149F84
	ldr r0, =sub_814995C
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_08149A60:
	movs r0, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149A40

	thumb_func_start sub_8149A6C
sub_8149A6C: @ 8149A6C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8DBC
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08149A7E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08149A7E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149A6C

	thumb_func_start sub_8149AA4
sub_8149AA4: @ 8149AA4
	push {r4,r5,lr}
	adds r5, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	movs r2, 0
	movs r0, 0x3F
	strh r0, [r1, 0x2]
	strh r2, [r1, 0x4]
	movs r0, 0xA0
	strh r0, [r1, 0x8]
	movs r1, 0
	ldr r2, =gUnknown_02038C28
	movs r3, 0xF0
	adds r4, r2, 0
_08149AC8:
	lsls r0, r1, 1
	adds r0, r2
	strh r3, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x9F
	bls _08149AC8
	movs r0, 0xF0
	lsls r0, 3
	adds r1, r4, r0
	adds r0, r4, 0
	movs r2, 0xA0
	bl CpuSet
	ldr r0, =sub_8149CE8
	bl SetVBlankCallback
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0x1
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149AA4

	thumb_func_start sub_8149B08
sub_8149B08: @ 8149B08
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0xC
	mov r8, r0
	ldr r0, =sTransitionStructPtr
	ldr r0, [r0]
	adds r0, 0x24
	ldr r6, =gUnknown_085C8DD0
	mov r2, r8
	movs r3, 0xA
	ldrsh r1, [r2, r3]
	lsls r4, r1, 2
	adds r4, r1
	lsls r4, 1
	adds r1, r4, r6
	movs r5, 0
	ldrsh r1, [r1, r5]
	adds r2, r6, 0x2
	adds r2, r4, r2
	movs r3, 0
	ldrsh r2, [r2, r3]
	adds r3, r6, 0x4
	adds r3, r4, r3
	movs r5, 0
	ldrsh r3, [r3, r5]
	adds r5, r6, 0x6
	adds r4, r5
	movs r5, 0
	ldrsh r4, [r4, r5]
	str r4, [sp]
	movs r4, 0x1
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	bl sub_814A1AC
	mov r0, r8
	movs r2, 0xA
	ldrsh r1, [r0, r2]
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 1
	adds r6, 0x8
	adds r0, r6
	ldrh r0, [r0]
	mov r3, r8
	strh r0, [r3, 0xC]
	ldrh r0, [r3, 0x8]
	adds r0, 0x1
	strh r0, [r3, 0x8]
	movs r0, 0x1
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149B08

	thumb_func_start sub_8149B84
sub_8149B84: @ 8149B84
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	adds r6, r0, 0
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	movs r0, 0
	strb r0, [r1]
	mov r8, r0
	movs r7, 0
	ldr r0, =gUnknown_02038C28
	mov r9, r0
_08149BA0:
	ldr r1, =gUnknown_02038C28
	ldr r0, =sTransitionStructPtr
	ldr r2, [r0]
	movs r3, 0x2A
	ldrsh r0, [r2, r3]
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	lsrs r3, r0, 8
	movs r5, 0xFF
	ands r5, r0
	movs r4, 0xC
	ldrsh r0, [r6, r4]
	cmp r0, 0
	bne _08149BDC
	movs r1, 0x28
	ldrsh r0, [r2, r1]
	cmp r3, r0
	bge _08149BC8
	ldrh r3, [r2, 0x28]
_08149BC8:
	lsls r0, r3, 16
	lsls r1, r5, 16
	cmp r0, r1
	ble _08149BF4
	lsrs r3, r1, 16
	b _08149BF4
	.pool
_08149BDC:
	lsls r0, r5, 16
	asrs r0, 16
	movs r4, 0x28
	ldrsh r1, [r2, r4]
	cmp r0, r1
	ble _08149BEA
	ldrh r5, [r2, 0x28]
_08149BEA:
	lsls r0, r5, 16
	lsls r1, r3, 16
	cmp r0, r1
	bgt _08149BF4
	lsrs r5, r1, 16
_08149BF4:
	ldr r0, =sTransitionStructPtr
	ldr r4, [r0]
	movs r0, 0x2A
	ldrsh r2, [r4, r0]
	lsls r2, 1
	add r2, r9
	lsls r1, r3, 16
	asrs r1, 8
	lsls r0, r5, 16
	asrs r0, 16
	orrs r0, r1
	strh r0, [r2]
	cmp r7, 0
	beq _08149C1C
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
	b _08149C40
	.pool
_08149C1C:
	adds r0, r4, 0
	adds r0, 0x24
	movs r1, 0x1
	movs r2, 0x1
	bl sub_814A228
	lsls r0, 24
	lsrs r7, r0, 24
	mov r1, r8
	lsls r0, r1, 16
	movs r3, 0x80
	lsls r3, 9
	adds r0, r3
	lsrs r4, r0, 16
	mov r8, r4
	asrs r0, 16
	cmp r0, 0xF
	ble _08149BA0
_08149C40:
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149B84

	thumb_func_start sub_8149C60
sub_8149C60: @ 8149C60
	push {lr}
	adds r2, r0, 0
	ldrh r0, [r2, 0xA]
	adds r0, 0x1
	strh r0, [r2, 0xA]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x6
	ble _08149CAC
	ldr r1, =0x040000b0
	ldrh r2, [r1, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r2, [r1, 0xA]
	ldr r0, =0x00007fff
	ands r0, r2
	strh r0, [r1, 0xA]
	ldrh r0, [r1, 0xA]
	bl sub_8149F84
	ldr r0, =sub_8149A6C
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	b _08149CC4
	.pool
_08149CAC:
	ldrh r0, [r2, 0x8]
	adds r0, 0x1
	strh r0, [r2, 0x8]
	ldr r1, =gUnknown_085C8E16
	movs r3, 0xA
	ldrsh r0, [r2, r3]
	subs r0, 0x1
	lsls r0, 1
	adds r0, r1
	ldrh r0, [r0]
	strh r0, [r2, 0xE]
	movs r0, 0x1
_08149CC4:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149C60

	thumb_func_start sub_8149CCC
sub_8149CCC: @ 8149CCC
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0xE]
	subs r0, 0x1
	strh r0, [r1, 0xE]
	lsls r0, 16
	cmp r0, 0
	beq _08149CE0
	movs r0, 0
	b _08149CE4
_08149CE0:
	movs r0, 0x1
	strh r0, [r1, 0x8]
_08149CE4:
	pop {r1}
	bx r1
	thumb_func_end sub_8149CCC

	thumb_func_start sub_8149CE8
sub_8149CE8: @ 8149CE8
	push {r4,lr}
	ldr r4, =0x040000b0
	ldrh r1, [r4, 0xA]
	ldr r0, =0x0000c5ff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r1, [r4, 0xA]
	ldr r0, =0x00007fff
	ands r0, r1
	strh r0, [r4, 0xA]
	ldrh r0, [r4, 0xA]
	bl sub_8149F2C
	ldr r3, =sTransitionStructPtr
	ldr r0, [r3]
	ldrb r0, [r0]
	cmp r0, 0
	beq _08149D20
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_08149D20:
	ldr r2, =0x04000048
	ldr r1, [r3]
	ldrh r0, [r1, 0x2]
	strh r0, [r2]
	adds r2, 0x2
	ldrh r0, [r1, 0x4]
	strh r0, [r2]
	subs r2, 0x6
	ldrh r0, [r1, 0x8]
	strh r0, [r2]
	subs r2, 0x4
	ldr r0, =gUnknown_02038C28
	movs r1, 0xF0
	lsls r1, 3
	adds r0, r1
	ldrh r1, [r0]
	strh r1, [r2]
	str r0, [r4]
	str r2, [r4, 0x4]
	ldr r0, =0xa2400001
	str r0, [r4, 0x8]
	ldr r0, [r4, 0x8]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149CE8

	thumb_func_start sub_8149D78
sub_8149D78: @ 8149D78
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x4
	mov r8, r0
	adds r4, r1, 0
	adds r5, r2, 0
	adds r6, r3, 0
	ldr r3, [sp, 0x18]
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 16
	lsrs r5, 16
	lsls r6, 16
	lsrs r6, 16
	lsls r3, 16
	lsrs r3, 16
	ldr r0, =sub_8149DFC
	movs r1, 0x3
	str r3, [sp]
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	mov r0, r8
	strh r0, [r1, 0xA]
	strh r4, [r1, 0xC]
	strh r5, [r1, 0xE]
	strh r6, [r1, 0x10]
	ldr r3, [sp]
	strh r3, [r1, 0x12]
	strh r0, [r1, 0x14]
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149D78

	thumb_func_start sub_8149DDC
sub_8149DDC: @ 8149DDC
	push {lr}
	ldr r0, =sub_8149DFC
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _08149DF4
	movs r0, 0
	b _08149DF6
	.pool
_08149DF4:
	movs r0, 0x1
_08149DF6:
	pop {r1}
	bx r1
	thumb_func_end sub_8149DDC

	thumb_func_start sub_8149DFC
sub_8149DFC: @ 8149DFC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C8E24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_08149E0E:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _08149E0E
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149DFC

	thumb_func_start sub_8149E34
sub_8149E34: @ 8149E34
	push {r4,lr}
	adds r4, r0, 0
	ldrh r1, [r4, 0x14]
	movs r2, 0x14
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _08149E4C
	subs r0, r1, 0x1
	strh r0, [r4, 0x14]
	lsls r0, 16
	cmp r0, 0
	bne _08149E70
_08149E4C:
	ldrh r0, [r4, 0xA]
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x10]
	ldrh r1, [r4, 0x16]
	adds r0, r1
	strh r0, [r4, 0x16]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x10
	ble _08149E64
	movs r0, 0x10
	strh r0, [r4, 0x16]
_08149E64:
	movs r0, 0x1
	negs r0, r0
	ldrb r1, [r4, 0x16]
	ldr r2, =0x00002d6b
	bl BlendPalettes
_08149E70:
	movs r2, 0x16
	ldrsh r0, [r4, r2]
	cmp r0, 0xF
	ble _08149E82
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	ldrh r0, [r4, 0xC]
	strh r0, [r4, 0x14]
_08149E82:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8149E34

	thumb_func_start sub_8149E90
sub_8149E90: @ 8149E90
	push {r4,lr}
	adds r4, r0, 0
	ldrh r1, [r4, 0x14]
	movs r2, 0x14
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _08149EA8
	subs r0, r1, 0x1
	strh r0, [r4, 0x14]
	lsls r0, 16
	cmp r0, 0
	bne _08149ECA
_08149EA8:
	ldrh r0, [r4, 0xC]
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x16]
	ldrh r1, [r4, 0x12]
	subs r0, r1
	strh r0, [r4, 0x16]
	lsls r0, 16
	cmp r0, 0
	bge _08149EBE
	movs r0, 0
	strh r0, [r4, 0x16]
_08149EBE:
	movs r0, 0x1
	negs r0, r0
	ldrb r1, [r4, 0x16]
	ldr r2, =0x00002d6b
	bl BlendPalettes
_08149ECA:
	movs r0, 0x16
	ldrsh r1, [r4, r0]
	cmp r1, 0
	bne _08149EFE
	ldrh r0, [r4, 0xE]
	subs r0, 0x1
	strh r0, [r4, 0xE]
	lsls r0, 16
	cmp r0, 0
	bne _08149EF8
	ldr r0, =sub_8149DFC
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	b _08149EFE
	.pool
_08149EF8:
	ldrh r0, [r4, 0xA]
	strh r0, [r4, 0x14]
	strh r1, [r4, 0x8]
_08149EFE:
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8149E90

	thumb_func_start sub_8149F08
sub_8149F08: @ 8149F08
	push {r4,lr}
	ldr r4, =sTransitionStructPtr
	ldr r0, [r4]
	movs r1, 0
	movs r2, 0x3C
	bl memset
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x14
	adds r1, 0x16
	bl sub_8089C08
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149F08

	thumb_func_start sub_8149F2C
sub_8149F2C: @ 8149F2C
	push {lr}
	bl LoadOam
	bl ProcessSpriteCopyRequests
	bl TransferPlttBuffer
	pop {r0}
	bx r0
	thumb_func_end sub_8149F2C

	thumb_func_start sub_8149F40
sub_8149F40: @ 8149F40
	ldr r1, =0x04000008
	ldrh r1, [r1]
	lsrs r1, 2
	lsls r1, 30
	lsrs r1, 16
	movs r2, 0xC0
	lsls r2, 19
	adds r1, r2
	str r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_8149F40

	thumb_func_start sub_8149F58
sub_8149F58: @ 8149F58
	push {r4,lr}
	ldr r3, =0x04000008
	ldrh r2, [r3]
	lsrs r2, 8
	ldrh r3, [r3]
	lsrs r3, 2
	lsls r2, 27
	lsrs r2, 16
	lsls r3, 30
	lsrs r3, 16
	movs r4, 0xC0
	lsls r4, 19
	adds r2, r4
	str r2, [r0]
	adds r3, r4
	str r3, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149F58

	thumb_func_start sub_8149F84
sub_8149F84: @ 8149F84
	push {lr}
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	pop {r0}
	bx r0
	thumb_func_end sub_8149F84

	thumb_func_start sub_8149F98
sub_8149F98: @ 8149F98
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	mov r10, r0
	ldr r0, [sp, 0x20]
	ldr r4, [sp, 0x24]
	lsls r1, 16
	lsrs r7, r1, 16
	lsls r2, 16
	lsrs r2, 16
	lsls r3, 16
	lsrs r3, 16
	lsls r0, 16
	lsrs r1, r0, 16
	lsls r4, 16
	movs r6, 0
	lsrs r5, r4, 16
	cmp r4, 0
	ble _0814A000
	lsls r0, r7, 16
	asrs r0, 16
	mov r9, r0
	lsls r1, 16
	mov r8, r1
	lsls r0, r3, 16
	asrs r7, r0, 16
_08149FD0:
	lsls r4, r2, 16
	asrs r4, 16
	movs r0, 0xFF
	ands r0, r4
	mov r2, r8
	asrs r1, r2, 16
	bl Sin
	lsls r1, r6, 1
	add r1, r10
	add r0, r9
	strh r0, [r1]
	lsls r1, r5, 16
	ldr r0, =0xffff0000
	adds r1, r0
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	adds r4, r7
	lsls r4, 16
	lsrs r2, r4, 16
	lsrs r5, r1, 16
	cmp r1, 0
	bgt _08149FD0
_0814A000:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8149F98

	thumb_func_start sub_814A014
sub_814A014: @ 814A014
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x14
	mov r9, r0
	adds r5, r2, 0
	adds r4, r3, 0
	lsls r1, 16
	lsrs r1, 16
	str r1, [sp]
	lsls r5, 16
	lsrs r5, 16
	lsls r4, 16
	lsrs r4, 16
	movs r2, 0xA0
	lsls r2, 1
	movs r1, 0xA
	bl memset
	movs r1, 0
	lsls r4, 16
	asrs r4, 16
	str r4, [sp, 0x4]
	lsls r5, 16
	asrs r5, 16
	str r5, [sp, 0x8]
_0814A04C:
	lsls r5, r1, 16
	asrs r0, r5, 16
	mov r10, r0
	ldr r1, [sp, 0x4]
	bl Sin
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	mov r0, r10
	ldr r1, [sp, 0x4]
	bl Cos
	ldr r2, [sp]
	lsls r1, r2, 16
	asrs r1, 16
	lsls r4, 16
	asrs r4, 16
	subs r2, r1, r4
	lsls r2, 16
	adds r1, r4
	lsls r1, 16
	lsrs r6, r1, 16
	lsls r0, 16
	asrs r0, 16
	ldr r3, [sp, 0x8]
	subs r1, r3, r0
	lsls r1, 16
	lsrs r7, r1, 16
	adds r0, r3, r0
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	lsrs r1, r2, 16
	str r5, [sp, 0x10]
	cmp r2, 0
	bge _0814A098
	movs r1, 0
_0814A098:
	lsls r0, r6, 16
	asrs r0, 16
	cmp r0, 0xF0
	ble _0814A0A2
	movs r6, 0xF0
_0814A0A2:
	lsls r0, r7, 16
	cmp r0, 0
	bge _0814A0AA
	movs r7, 0
_0814A0AA:
	mov r2, r8
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0x9F
	ble _0814A0B8
	movs r3, 0x9F
	mov r8, r3
_0814A0B8:
	lsls r0, r1, 24
	lsrs r0, 16
	orrs r6, r0
	lsls r0, r7, 16
	asrs r0, 16
	str r0, [sp, 0xC]
	lsls r0, 1
	add r0, r9
	strh r6, [r0]
	mov r0, r8
	lsls r4, r0, 16
	asrs r0, r4, 15
	add r0, r9
	strh r6, [r0]
	mov r0, r10
	adds r0, 0x1
	lsls r0, 16
	asrs r0, 16
	ldr r1, [sp, 0x4]
	bl Cos
	lsls r0, 16
	asrs r0, 16
	ldr r2, [sp, 0x8]
	subs r1, r2, r0
	lsls r1, 16
	adds r0, r2, r0
	lsls r0, 16
	lsrs r2, r0, 16
	lsrs r3, r1, 16
	cmp r1, 0
	bge _0814A0FA
	movs r3, 0
_0814A0FA:
	lsls r0, r2, 16
	asrs r0, 16
	cmp r0, 0x9F
	ble _0814A104
	movs r2, 0x9F
_0814A104:
	lsls r0, r3, 16
	asrs r1, r0, 16
	adds r3, r0, 0
	lsls r5, r2, 16
	ldr r0, [sp, 0xC]
	cmp r0, r1
	ble _0814A128
	adds r2, r1, 0
_0814A114:
	lsls r1, r7, 16
	ldr r0, =0xffff0000
	adds r1, r0
	asrs r0, r1, 15
	add r0, r9
	strh r6, [r0]
	lsrs r7, r1, 16
	asrs r1, 16
	cmp r1, r2
	bgt _0814A114
_0814A128:
	lsls r1, r7, 16
	asrs r0, r3, 16
	cmp r1, r3
	bge _0814A146
	adds r2, r0, 0
_0814A132:
	movs r3, 0x80
	lsls r3, 9
	adds r0, r1, r3
	asrs r1, r0, 15
	add r1, r9
	strh r6, [r1]
	adds r1, r0, 0
	asrs r0, r1, 16
	cmp r0, r2
	blt _0814A132
_0814A146:
	asrs r0, r5, 16
	cmp r4, r5
	ble _0814A164
	adds r1, r0, 0
_0814A14E:
	ldr r2, =0xffff0000
	adds r0, r4, r2
	lsrs r3, r0, 16
	mov r8, r3
	asrs r0, 15
	add r0, r9
	strh r6, [r0]
	lsls r4, r3, 16
	asrs r0, r4, 16
	cmp r0, r1
	bgt _0814A14E
_0814A164:
	mov r0, r8
	lsls r4, r0, 16
	asrs r0, r5, 16
	cmp r4, r5
	bge _0814A184
	adds r2, r0, 0
_0814A170:
	movs r1, 0x80
	lsls r1, 9
	adds r0, r4, r1
	asrs r1, r0, 15
	add r1, r9
	strh r6, [r1]
	adds r4, r0, 0
	asrs r0, r4, 16
	cmp r0, r2
	blt _0814A170
_0814A184:
	ldr r2, [sp, 0x10]
	movs r3, 0x80
	lsls r3, 9
	adds r0, r2, r3
	lsrs r1, r0, 16
	asrs r0, 16
	cmp r0, 0x3F
	bgt _0814A196
	b _0814A04C
_0814A196:
	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_814A014

	thumb_func_start sub_814A1AC
sub_814A1AC: @ 814A1AC
	push {r4-r7,lr}
	adds r6, r0, 0
	ldr r0, [sp, 0x14]
	ldr r5, [sp, 0x18]
	ldr r4, [sp, 0x1C]
	lsls r1, 16
	lsrs r1, 16
	lsls r2, 16
	lsrs r2, 16
	lsls r3, 16
	lsrs r3, 16
	lsls r0, 16
	lsrs r0, 16
	adds r7, r0, 0
	lsls r5, 16
	lsrs r5, 16
	lsls r4, 16
	lsrs r4, 16
	strh r1, [r6]
	strh r2, [r6, 0x2]
	strh r1, [r6, 0x4]
	strh r2, [r6, 0x6]
	strh r3, [r6, 0x8]
	strh r7, [r6, 0xA]
	strh r5, [r6, 0xC]
	strh r4, [r6, 0xE]
	lsls r3, 16
	asrs r3, 16
	lsls r1, 16
	asrs r1, 16
	subs r3, r1
	strh r3, [r6, 0x10]
	lsls r0, r3, 16
	cmp r0, 0
	bge _0814A1FE
	negs r0, r3
	strh r0, [r6, 0x10]
	lsls r0, r5, 16
	asrs r0, 16
	negs r0, r0
	strh r0, [r6, 0xC]
_0814A1FE:
	lsls r0, r7, 16
	asrs r0, 16
	lsls r1, r2, 16
	asrs r1, 16
	subs r1, r0, r1
	strh r1, [r6, 0x12]
	lsls r0, r1, 16
	cmp r0, 0
	bge _0814A21C
	negs r0, r1
	strh r0, [r6, 0x12]
	lsls r0, r4, 16
	asrs r0, 16
	negs r0, r0
	strh r0, [r6, 0xE]
_0814A21C:
	movs r0, 0
	strh r0, [r6, 0x14]
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_814A1AC

	thumb_func_start sub_814A228
sub_814A228: @ 814A228
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r3, r0, 0
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	lsls r2, 24
	lsrs r2, 24
	mov r10, r2
	ldrh r0, [r3, 0x10]
	mov r8, r0
	movs r1, 0x10
	ldrsh r6, [r3, r1]
	ldrh r2, [r3, 0x12]
	mov r12, r2
	movs r4, 0x12
	ldrsh r5, [r3, r4]
	cmp r6, r5
	ble _0814A278
	ldrh r0, [r3, 0xC]
	ldrh r2, [r3, 0x4]
	adds r1, r0, r2
	strh r1, [r3, 0x4]
	ldrh r2, [r3, 0x14]
	add r2, r12
	strh r2, [r3, 0x14]
	lsls r1, r2, 16
	asrs r1, 16
	adds r4, r0, 0
	ldrh r7, [r3, 0xE]
	cmp r1, r6
	ble _0814A29E
	ldrh r1, [r3, 0x6]
	adds r0, r7, r1
	strh r0, [r3, 0x6]
	mov r1, r8
	b _0814A29A
_0814A278:
	ldrh r0, [r3, 0xE]
	ldrh r2, [r3, 0x6]
	adds r1, r0, r2
	strh r1, [r3, 0x6]
	ldrh r2, [r3, 0x14]
	add r2, r8
	strh r2, [r3, 0x14]
	lsls r1, r2, 16
	asrs r1, 16
	ldrh r4, [r3, 0xC]
	adds r7, r0, 0
	cmp r1, r5
	ble _0814A29E
	ldrh r1, [r3, 0x4]
	adds r0, r4, r1
	strh r0, [r3, 0x4]
	mov r1, r12
_0814A29A:
	subs r0, r2, r1
	strh r0, [r3, 0x14]
_0814A29E:
	movs r5, 0
	lsls r0, r4, 16
	asrs r2, r0, 16
	cmp r2, 0
	ble _0814A2B6
	movs r4, 0x4
	ldrsh r1, [r3, r4]
	movs r4, 0x8
	ldrsh r0, [r3, r4]
	ldrh r4, [r3, 0x8]
	cmp r1, r0
	bge _0814A2C8
_0814A2B6:
	cmp r2, 0
	bge _0814A2D6
	movs r0, 0x4
	ldrsh r1, [r3, r0]
	movs r2, 0x8
	ldrsh r0, [r3, r2]
	ldrh r4, [r3, 0x8]
	cmp r1, r0
	bgt _0814A2D6
_0814A2C8:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	mov r0, r9
	cmp r0, 0
	beq _0814A2D6
	strh r4, [r3, 0x4]
_0814A2D6:
	lsls r0, r7, 16
	asrs r2, r0, 16
	cmp r2, 0
	ble _0814A2EC
	movs r4, 0x6
	ldrsh r1, [r3, r4]
	movs r4, 0xA
	ldrsh r0, [r3, r4]
	ldrh r4, [r3, 0xA]
	cmp r1, r0
	bge _0814A2FE
_0814A2EC:
	cmp r2, 0
	bge _0814A30C
	movs r0, 0x6
	ldrsh r1, [r3, r0]
	movs r2, 0xA
	ldrsh r0, [r3, r2]
	ldrh r4, [r3, 0xA]
	cmp r1, r0
	bgt _0814A30C
_0814A2FE:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	mov r0, r10
	cmp r0, 0
	beq _0814A30C
	strh r4, [r3, 0x6]
_0814A30C:
	cmp r5, 0x2
	beq _0814A314
	movs r0, 0
	b _0814A316
_0814A314:
	movs r0, 0x1
_0814A316:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_814A228

	thumb_func_start sub_814A324
sub_814A324: @ 814A324
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	bl sub_814669C
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	mov r0, sp
	bl CpuSet
	ldr r0, =gUnknown_085C7C00
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_085C7BE0
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A324

	thumb_func_start sub_814A374
sub_814A374: @ 814A374
	push {r4,lr}
	sub sp, 0x10
	adds r4, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085C828C
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_02038C28
	movs r1, 0x10
	ldrsh r2, [r4, r1]
	movs r3, 0x12
	ldrsh r1, [r4, r3]
	str r1, [sp]
	movs r1, 0xA0
	str r1, [sp, 0x4]
	movs r1, 0
	movs r3, 0x84
	bl sub_8149F98
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
	add sp, 0x10
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A374

	thumb_func_start sub_814A3BC
sub_814A3BC: @ 814A3BC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C99D0
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814A3CE:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814A3CE
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814A3BC

	thumb_func_start sub_814A3F4
sub_814A3F4: @ 814A3F4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C99E8
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814A406:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814A406
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814A3F4

	thumb_func_start sub_814A42C
sub_814A42C: @ 814A42C
	push {r4-r6,lr}
	sub sp, 0xC
	adds r4, r0, 0
	bl sub_8149F08
	bl dp12_8087EA4
	movs r1, 0xC0
	lsls r1, 7
	movs r0, 0
	bl ClearGpuRegBits
	movs r5, 0
	movs r0, 0x80
	lsls r0, 6
	strh r0, [r4, 0xC]
	ldr r0, =0x00007fff
	strh r0, [r4, 0xA]
	strh r5, [r4, 0x12]
	movs r0, 0x10
	strh r0, [r4, 0x14]
	movs r0, 0xA0
	lsls r0, 4
	strh r0, [r4, 0x16]
	ldr r6, =sTransitionStructPtr
	ldr r2, [r6]
	ldr r3, =0x00003f41
	strh r3, [r2, 0xE]
	ldrh r0, [r4, 0x14]
	lsls r0, 8
	ldrh r1, [r4, 0x12]
	orrs r0, r1
	strh r0, [r2, 0x10]
	ldr r0, =0x04000050
	strh r3, [r0]
	ldr r1, =0x04000052
	ldrh r0, [r2, 0x10]
	strh r0, [r1]
	add r0, sp, 0x4
	add r1, sp, 0x8
	bl sub_8149F58
	mov r0, sp
	strh r5, [r0]
	ldr r1, [sp, 0x4]
	ldr r2, =0x01000400
	bl CpuSet
	ldr r0, =gUnknown_085C7C00
	ldr r1, [sp, 0x8]
	bl LZ77UnCompVram
	ldr r0, =gUnknown_085C7BE0
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, [r6]
	strh r5, [r0, 0x16]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	add sp, 0xC
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A42C

	thumb_func_start sub_814A4D4
sub_814A4D4: @ 814A4D4
	push {r4,lr}
	sub sp, 0x8
	adds r4, r0, 0
	add r1, sp, 0x4
	mov r0, sp
	bl sub_8149F58
	ldr r0, =gUnknown_085C828C
	ldr r1, [sp]
	bl LZ77UnCompVram
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0x1
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A4D4

	thumb_func_start sub_814A500
sub_814A500: @ 814A500
	push {r4-r6,lr}
	adds r5, r0, 0
	movs r2, 0
	ldr r6, =sub_814A684
	ldr r4, =gUnknown_020393A8
	ldr r3, =sTransitionStructPtr
_0814A50C:
	lsls r1, r2, 1
	adds r1, r4
	ldr r0, [r3]
	ldrh r0, [r0, 0x16]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x9F
	bls _0814A50C
	adds r0, r6, 0
	bl SetVBlankCallback
	ldr r0, =sub_814A6CC
	bl SetHBlankCallback
	movs r0, 0x2
	bl EnableInterrupts
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0x1
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A500

	thumb_func_start sub_814A550
sub_814A550: @ 814A550
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	adds r4, r0, 0
	ldr r1, =sTransitionStructPtr
	ldr r0, [r1]
	ldrb r2, [r0]
	movs r3, 0
	strb r3, [r0]
	ldrh r2, [r4, 0xC]
	lsls r0, r2, 16
	asrs r0, 24
	lsls r0, 16
	lsrs r7, r0, 16
	ldrh r6, [r4, 0xA]
	movs r0, 0xC0
	lsls r0, 1
	mov r8, r0
	ldrh r0, [r4, 0x16]
	subs r0, r6, r0
	strh r0, [r4, 0xA]
	movs r5, 0xE
	ldrsh r0, [r4, r5]
	adds r5, r1, 0
	cmp r0, 0x45
	ble _0814A5A2
	movs r1, 0xC
	ldrsh r0, [r4, r1]
	ldr r1, =0xfffffe80
	adds r0, r1
	cmp r0, 0
	blt _0814A5A0
	adds r0, r2, r1
	strh r0, [r4, 0xC]
	b _0814A5A2
	.pool
_0814A5A0:
	strh r3, [r4, 0xC]
_0814A5A2:
	movs r2, 0xE
	ldrsh r0, [r4, r2]
	cmp r0, 0
	blt _0814A5E0
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	cmp r0, 0
	bne _0814A5E0
	ldrh r1, [r4, 0x12]
	movs r2, 0x12
	ldrsh r0, [r4, r2]
	cmp r0, 0xF
	bgt _0814A5C6
	adds r0, r1, 0x1
	strh r0, [r4, 0x12]
	b _0814A5D4
_0814A5C6:
	ldrh r1, [r4, 0x14]
	movs r2, 0x14
	ldrsh r0, [r4, r2]
	cmp r0, 0
	ble _0814A5D4
	subs r0, r1, 0x1
	strh r0, [r4, 0x14]
_0814A5D4:
	ldr r0, [r5]
	ldrh r1, [r4, 0x14]
	lsls r1, 8
	ldrh r2, [r4, 0x12]
	orrs r1, r2
	strh r1, [r0, 0x10]
_0814A5E0:
	movs r5, 0
	lsls r7, 16
_0814A5E4:
	lsrs r0, r6, 8
	asrs r1, r7, 16
	bl Sin
	ldr r1, =gUnknown_02038C28
	lsls r2, r5, 1
	adds r2, r1
	ldr r1, =sTransitionStructPtr
	ldr r1, [r1]
	ldrh r1, [r1, 0x16]
	adds r0, r1
	strh r0, [r2]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	mov r1, r8
	adds r0, r6, r1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r5, 0x9F
	bls _0814A5E4
	ldrh r0, [r4, 0xE]
	adds r0, 0x1
	strh r0, [r4, 0xE]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x65
	bne _0814A632
	ldrh r0, [r4, 0x10]
	adds r0, 0x1
	strh r0, [r4, 0x10]
	movs r0, 0x1
	negs r0, r0
	movs r1, 0
	str r1, [sp]
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
_0814A632:
	movs r2, 0x10
	ldrsh r0, [r4, r2]
	cmp r0, 0
	beq _0814A654
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0814A654
	ldr r0, =sub_814A3F4
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
_0814A654:
	ldrh r0, [r4, 0x16]
	subs r0, 0x11
	strh r0, [r4, 0x16]
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x1
	ldrb r2, [r1]
	strb r0, [r1]
	movs r0, 0
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A550

	thumb_func_start sub_814A684
sub_814A684: @ 814A684
	push {lr}
	bl sub_8149F2C
	ldr r2, =0x04000050
	ldr r0, =sTransitionStructPtr
	ldr r1, [r0]
	ldrh r0, [r1, 0xE]
	strh r0, [r2]
	adds r2, 0x2
	ldrh r0, [r1, 0x10]
	strh r0, [r2]
	ldrb r0, [r1]
	cmp r0, 0
	beq _0814A6B4
	ldr r1, =0x040000d4
	ldr r0, =gUnknown_02038C28
	str r0, [r1]
	movs r2, 0xF0
	lsls r2, 3
	adds r0, r2
	str r0, [r1, 0x4]
	ldr r0, =0x800000a0
	str r0, [r1, 0x8]
	ldr r0, [r1, 0x8]
_0814A6B4:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814A684

	thumb_func_start sub_814A6CC
sub_814A6CC: @ 814A6CC
	ldr r1, =gUnknown_02038C28
	ldr r0, =0x04000006
	ldrh r0, [r0]
	lsls r0, 1
	movs r2, 0xF0
	lsls r2, 3
	adds r1, r2
	adds r0, r1
	ldrh r1, [r0]
	ldr r0, =0x04000012
	strh r1, [r0]
	bx lr
	.pool
	thumb_func_end sub_814A6CC

	thumb_func_start sub_814A6F0
sub_814A6F0: @ 814A6F0
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C99F8
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814A702:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814A702
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814A6F0

	thumb_func_start sub_814A728
sub_814A728: @ 814A728
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C9A08
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814A73A:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814A73A
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814A728

	thumb_func_start sub_814A760
sub_814A760: @ 814A760
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_085C9A1C
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r4, r1, r2
_0814A772:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	lsls r0, 2
	adds r0, r5
	ldr r1, [r0]
	adds r0, r4, 0
	bl _call_via_r1
	lsls r0, 24
	cmp r0, 0
	bne _0814A772
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814A760

	thumb_func_start sub_814A798
sub_814A798: @ 814A798
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x14
	mov r8, r0
	add r1, sp, 0x10
	add r0, sp, 0xC
	bl sub_8149F58
	ldr r0, =gUnknown_085C8598
	ldr r1, [sp, 0x10]
	bl LZ77UnCompVram
	movs r4, 0x20
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r6, 0x1
	str r6, [sp]
	str r4, [sp, 0x4]
	movs r5, 0xF
	str r5, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	str r6, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x1D
	movs r3, 0
	bl FillBgTilemapBufferRect
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_085C8578
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0
	mov r1, r8
	strh r6, [r1, 0xC]
	strh r0, [r1, 0xE]
	strh r0, [r1, 0x10]
	movs r0, 0xA
	strh r0, [r1, 0x16]
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	movs r0, 0
	add sp, 0x14
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A798

	thumb_func_start sub_814A828
sub_814A828: @ 814A828
	push {r4,r5,lr}
	sub sp, 0x24
	adds r4, r0, 0
	ldr r1, =gUnknown_085C8928
	movs r2, 0x4
	str r2, [sp]
	str r2, [sp, 0x4]
	ldrb r0, [r4, 0xC]
	str r0, [sp, 0x8]
	ldrb r0, [r4, 0xE]
	str r0, [sp, 0xC]
	str r2, [sp, 0x10]
	str r2, [sp, 0x14]
	movs r0, 0xF
	str r0, [sp, 0x18]
	movs r5, 0
	str r5, [sp, 0x1C]
	str r5, [sp, 0x20]
	movs r0, 0
	movs r2, 0
	movs r3, 0
	bl CopyRectToBgTilemapBufferRect
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldrh r0, [r4, 0xC]
	adds r0, 0x4
	strh r0, [r4, 0xC]
	ldrh r0, [r4, 0x10]
	adds r0, 0x1
	strh r0, [r4, 0x10]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x7
	bne _0814A88A
	movs r0, 0x1
	strh r0, [r4, 0xC]
	ldrh r0, [r4, 0xE]
	adds r0, 0x4
	strh r0, [r4, 0xE]
	strh r5, [r4, 0x10]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x13
	ble _0814A88A
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_0814A88A:
	movs r0, 0
	add sp, 0x24
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A828

	thumb_func_start sub_814A898
sub_814A898: @ 814A898
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r0, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldrh r0, [r4, 0x14]
	adds r1, r0, 0x1
	strh r1, [r4, 0x14]
	lsls r0, 16
	asrs r0, 16
	movs r2, 0x16
	ldrsh r1, [r4, r2]
	cmp r0, r1
	blt _0814A956
	movs r1, 0x12
	ldrsh r0, [r4, r1]
	cmp r0, 0x1
	beq _0814A8FC
	cmp r0, 0x1
	bgt _0814A8CA
	cmp r0, 0
	beq _0814A8D4
	b _0814A92C
_0814A8CA:
	cmp r0, 0x2
	beq _0814A914
	cmp r0, 0x3
	beq _0814A91C
	b _0814A92C
_0814A8D4:
	movs r2, 0xFA
	ldr r6, =gPlttBufferUnfaded
	movs r3, 0
	ldr r5, =gPlttBufferFaded
_0814A8DC:
	lsls r1, r2, 1
	adds r0, r1, r6
	strh r3, [r0]
	adds r1, r5
	strh r3, [r1]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFE
	bls _0814A8DC
	b _0814A94C
	.pool
_0814A8FC:
	ldr r0, =0xffff7fff
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r0, =gUnknown_085C86F4
	b _0814A91E
	.pool
_0814A914:
	ldr r0, =gUnknown_085C87F4
	b _0814A91E
	.pool
_0814A91C:
	ldr r0, =gUnknown_085C88A4
_0814A91E:
	ldr r1, [sp, 0xC]
	bl LZ77UnCompVram
	b _0814A94C
	.pool
_0814A92C:
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	b _0814A956
_0814A94C:
	movs r0, 0
	strh r0, [r4, 0x14]
	ldrh r0, [r4, 0x12]
	adds r0, 0x1
	strh r0, [r4, 0x12]
_0814A956:
	movs r0, 0
	add sp, 0x10
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_814A898

	thumb_func_start sub_814A960
sub_814A960: @ 814A960
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x14
	mov r8, r0
	add r1, sp, 0x10
	add r0, sp, 0xC
	bl sub_8149F58
	ldr r0, =gUnknown_085C8598
	ldr r1, [sp, 0x10]
	bl LZ77UnCompVram
	movs r4, 0x20
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r6, 0x1
	str r6, [sp]
	str r4, [sp, 0x4]
	movs r5, 0xF
	str r5, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	str r6, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0x1D
	movs r3, 0
	bl FillBgTilemapBufferRect
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r4, =gUnknown_085C8578
	adds r0, r4, 0
	movs r1, 0xE0
	movs r2, 0x20
	bl LoadPalette
	adds r0, r4, 0
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	movs r0, 0xE0
	movs r1, 0x10
	movs r2, 0x8
	movs r3, 0
	bl BlendPalette
	movs r1, 0
	movs r0, 0x22
	mov r2, r8
	strh r0, [r2, 0xC]
	strh r1, [r2, 0xE]
	ldrh r0, [r2, 0x8]
	adds r0, 0x1
	strh r0, [r2, 0x8]
	movs r0, 0
	add sp, 0x14
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814A960

	thumb_func_start sub_814AA04
sub_814AA04: @ 814AA04
	push {r4-r6,lr}
	sub sp, 0x24
	adds r6, r0, 0
	ldr r1, =gUnknown_085C9A30
	movs r2, 0xC
	ldrsh r0, [r6, r2]
	adds r0, r1
	ldrb r5, [r0]
	adds r0, r5, 0
	movs r1, 0x7
	bl __umodsi3
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	movs r1, 0x7
	bl __udivsi3
	ldr r1, =gUnknown_085C8928
	movs r2, 0x4
	str r2, [sp]
	str r2, [sp, 0x4]
	lsls r4, 2
	adds r4, 0x1
	lsls r4, 24
	lsrs r4, 24
	str r4, [sp, 0x8]
	lsls r0, 26
	lsrs r0, 24
	str r0, [sp, 0xC]
	str r2, [sp, 0x10]
	str r2, [sp, 0x14]
	movs r0, 0xF
	str r0, [sp, 0x18]
	movs r0, 0
	str r0, [sp, 0x1C]
	str r0, [sp, 0x20]
	movs r2, 0
	movs r3, 0
	bl CopyRectToBgTilemapBufferRect
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldrh r0, [r6, 0xC]
	subs r0, 0x1
	strh r0, [r6, 0xC]
	lsls r0, 16
	cmp r0, 0
	bge _0814AA70
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
_0814AA70:
	movs r0, 0
	add sp, 0x24
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814AA04

	thumb_func_start sub_814AA84
sub_814AA84: @ 814AA84
	push {r4,lr}
	adds r4, r0, 0
	movs r0, 0xE0
	movs r1, 0x10
	movs r2, 0x3
	movs r3, 0
	bl BlendPalette
	ldr r0, =0xffff3fff
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	strh r0, [r4, 0xC]
	strh r0, [r4, 0xE]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814AA84

	thumb_func_start sub_814AAB8
sub_814AAB8: @ 814AAB8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x24
	adds r7, r0, 0
	ldrh r0, [r7, 0xE]
	movs r1, 0x1
	eors r0, r1
	movs r6, 0
	strh r0, [r7, 0xE]
	cmp r0, 0
	beq _0814AB2C
	ldr r0, =gUnknown_085C8928
	mov r8, r0
	movs r4, 0x4
	str r4, [sp]
	str r4, [sp, 0x4]
	ldr r5, =gUnknown_085C9A30
	movs r1, 0xC
	ldrsh r0, [r7, r1]
	adds r0, r5
	ldrb r0, [r0]
	movs r1, 0x7
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 22
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x8]
	movs r2, 0xC
	ldrsh r0, [r7, r2]
	adds r0, r5
	ldrb r0, [r0]
	movs r1, 0x7
	bl __udivsi3
	lsls r0, 26
	lsrs r0, 24
	str r0, [sp, 0xC]
	str r4, [sp, 0x10]
	str r4, [sp, 0x14]
	movs r0, 0xE
	str r0, [sp, 0x18]
	str r6, [sp, 0x1C]
	str r6, [sp, 0x20]
	movs r0, 0
	mov r1, r8
	movs r2, 0
	movs r3, 0
	bl CopyRectToBgTilemapBufferRect
	b _0814AB78
	.pool
_0814AB2C:
	movs r1, 0xC
	ldrsh r0, [r7, r1]
	cmp r0, 0
	ble _0814AB72
	ldr r1, =gUnknown_085C9A30
	subs r0, 0x1
	adds r0, r1
	ldrb r5, [r0]
	adds r0, r5, 0
	movs r1, 0x7
	bl __umodsi3
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 22
	adds r4, 0x1
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	movs r1, 0x7
	bl __udivsi3
	adds r3, r0, 0
	lsls r3, 26
	lsrs r3, 24
	movs r0, 0x4
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	adds r2, r4, 0
	bl FillBgTilemapBufferRect
_0814AB72:
	ldrh r0, [r7, 0xC]
	adds r0, 0x1
	strh r0, [r7, 0xC]
_0814AB78:
	movs r1, 0xC
	ldrsh r0, [r7, r1]
	cmp r0, 0x22
	ble _0814AB86
	ldrh r0, [r7, 0x8]
	adds r0, 0x1
	strh r0, [r7, 0x8]
_0814AB86:
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	add sp, 0x24
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814AAB8

	thumb_func_start sub_814ABA0
sub_814ABA0: @ 814ABA0
	push {r4,lr}
	sub sp, 0x8
	adds r4, r0, 0
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r0, [r4]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	movs r0, 0
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_814ABA0

	thumb_func_start sub_814ABE4
sub_814ABE4: @ 814ABE4
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r6, r1, r2
	ldrh r0, [r6, 0xC]
	movs r1, 0x1
	eors r0, r1
	strh r0, [r6, 0xC]
	cmp r0, 0
	bne _0814AC24
	ldr r5, =gUnknown_02022E14
	ldrh r1, [r5]
	movs r0, 0x12
	bl SetGpuReg
	ldr r4, =gUnknown_02022E16
	ldrh r1, [r4]
	movs r0, 0x10
	bl SetGpuReg
	ldrh r0, [r6, 0x8]
	ldrh r1, [r5]
	adds r0, r1
	strh r0, [r5]
	ldrh r0, [r6, 0xA]
	ldrh r1, [r4]
	adds r0, r1
	strh r0, [r4]
_0814AC24:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_814ABE4

	thumb_func_start sub_814AC38
sub_814AC38: @ 814AC38
	push {r4-r6,lr}
	sub sp, 0x10
	adds r6, r0, 0
	movs r5, 0
	add r1, sp, 0xC
	add r0, sp, 0x8
	bl sub_8149F58
	ldr r0, =gUnknown_085C8598
	ldr r1, [sp, 0xC]
	bl LZ77UnCompVram
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldr r0, =gUnknown_085C8578
	movs r1, 0xF0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_02022E14
	strh r5, [r0]
	ldr r4, =gUnknown_02022E16
	strh r5, [r4]
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	ldrh r1, [r4]
	movs r0, 0x10
	bl SetGpuReg
	strh r5, [r6, 0xC]
	ldr r0, =sub_814ABE4
	movs r1, 0x1
	bl CreateTask
	lsls r0, 24
	lsrs r5, r0, 24
	bl Random
	lsls r0, 16
	movs r1, 0xC0
	lsls r1, 10
	ands r1, r0
	lsrs r1, 16
	cmp r1, 0x1
	beq _0814ACE4
	cmp r1, 0x1
	bgt _0814ACC8
	cmp r1, 0
	beq _0814ACCE
	b _0814AD1C
	.pool
_0814ACC8:
	cmp r1, 0x2
	beq _0814AD00
	b _0814AD1C
_0814ACCE:
	ldr r0, =gTasks
	lsls r1, r5, 2
	adds r1, r5
	lsls r1, 3
	adds r1, r0
	movs r0, 0x1
	strh r0, [r1, 0x8]
	strh r0, [r1, 0xA]
	b _0814AD2E
	.pool
_0814ACE4:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, =0x0000ffff
	strh r1, [r0, 0x8]
	movs r1, 0x1
	negs r1, r1
	b _0814AD2C
	.pool
_0814AD00:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	movs r1, 0x1
	strh r1, [r0, 0x8]
	ldr r1, =0x0000ffff
	b _0814AD2C
	.pool
_0814AD1C:
	ldr r1, =gTasks
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	adds r0, r1
	ldr r1, =0x0000ffff
	strh r1, [r0, 0x8]
	movs r1, 0x1
_0814AD2C:
	strh r1, [r0, 0xA]
_0814AD2E:
	ldrh r0, [r6, 0x8]
	adds r0, 0x1
	strh r0, [r6, 0x8]
	movs r0, 0
	add sp, 0x10
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814AC38

	thumb_func_start sub_814AD48
sub_814AD48: @ 814AD48
	push {r4,lr}
	sub sp, 0x24
	adds r4, r0, 0
	ldr r1, =gUnknown_085C9A53
	movs r2, 0xC
	ldrsh r0, [r4, r2]
	adds r0, r1
	ldrb r3, [r0]
	lsrs r2, r3, 3
	movs r0, 0x7
	ands r3, r0
	ldr r1, =gUnknown_085C8928
	movs r0, 0x4
	str r0, [sp]
	str r0, [sp, 0x4]
	lsls r2, 2
	adds r2, 0x1
	str r2, [sp, 0x8]
	lsls r3, 2
	str r3, [sp, 0xC]
	str r0, [sp, 0x10]
	str r0, [sp, 0x14]
	movs r0, 0xF
	str r0, [sp, 0x18]
	movs r0, 0
	str r0, [sp, 0x1C]
	str r0, [sp, 0x20]
	movs r2, 0
	movs r3, 0
	bl CopyRectToBgTilemapBufferRect
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldrh r0, [r4, 0xC]
	adds r0, 0x1
	strh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3F
	ble _0814ADA0
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_0814ADA0:
	movs r0, 0
	add sp, 0x24
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814AD48

	thumb_func_start sub_814ADB4
sub_814ADB4: @ 814ADB4
	push {r4,lr}
	adds r4, r0, 0
	ldr r0, =0xffff7fff
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	strh r0, [r4, 0xC]
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
	movs r0, 0
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814ADB4

	thumb_func_start sub_814ADD8
sub_814ADD8: @ 814ADD8
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	ldr r1, =gUnknown_085C9A53
	movs r2, 0xC
	ldrsh r0, [r4, r2]
	adds r0, r1
	ldrb r3, [r0]
	lsrs r2, r3, 3
	movs r0, 0x7
	ands r3, r0
	lsls r2, 2
	adds r2, 0x1
	lsls r3, 2
	movs r0, 0x4
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0x1
	bl FillBgTilemapBufferRect
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	ldrh r0, [r4, 0xC]
	adds r0, 0x1
	strh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3F
	ble _0814AE2E
	ldr r0, =sub_814ABE4
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	ldrh r0, [r4, 0x8]
	adds r0, 0x1
	strh r0, [r4, 0x8]
_0814AE2E:
	movs r0, 0
	add sp, 0xC
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814ADD8

	thumb_func_start sub_814AE40
sub_814AE40: @ 814AE40
	push {r4,r5,lr}
	sub sp, 0x8
	adds r5, r0, 0
	ldr r0, =gUnknown_02022E14
	movs r1, 0
	strh r1, [r0]
	ldr r4, =gUnknown_02022E16
	strh r1, [r4]
	movs r0, 0x12
	movs r1, 0
	bl SetGpuReg
	ldrh r1, [r4]
	movs r0, 0x10
	bl SetGpuReg
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0x1
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect_Palette0
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	ldr r0, [r5]
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	ldrh r0, [r5, 0x8]
	adds r0, 0x1
	strh r0, [r5, 0x8]
	movs r0, 0
	add sp, 0x8
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_814AE40

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