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

	.syntax unified

	.text

	thumb_func_start sub_811A20C
sub_811A20C: @ 811A20C
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	adds r6, r0, 0
	mov r8, r1
	mov r9, r2
	adds r5, r3, 0
	lsls r6, 24
	lsrs r6, 24
	lsls r5, 24
	lsrs r5, 24
	bl ResetTasks
	ldr r0, =sub_811A2C0
	movs r1, 0
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	strh r6, [r0, 0xA]
	strh r5, [r0, 0x16]
	adds r0, r4, 0
	movs r1, 0x2
	mov r2, r8
	bl SetWordTaskArg
	adds r0, r4, 0
	movs r1, 0x4
	mov r2, r9
	bl SetWordTaskArg
	ldr r0, =sub_811A278
	bl SetMainCallback2
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A20C

	thumb_func_start sub_811A278
sub_811A278: @ 811A278
	push {lr}
	bl RunTasks
	bl AnimateSprites
	bl BuildOamBuffer
	bl UpdatePaletteFade
	pop {r0}
	bx r0
	thumb_func_end sub_811A278

	thumb_func_start sub_811A290
sub_811A290: @ 811A290
	push {lr}
	bl TransferPlttBuffer
	bl LoadOam
	bl ProcessSpriteCopyRequests
	pop {r0}
	bx r0
	thumb_func_end sub_811A290

	thumb_func_start sub_811A2A4
sub_811A2A4: @ 811A2A4
	lsls r0, 24
	lsrs r0, 24
	ldr r3, =gTasks
	lsls r2, r0, 2
	adds r2, r0
	lsls r2, 3
	adds r2, r3
	str r1, [r2]
	movs r0, 0
	strh r0, [r2, 0x8]
	bx lr
	.pool
	thumb_func_end sub_811A2A4

	thumb_func_start sub_811A2C0
sub_811A2C0: @ 811A2C0
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	bl is_c1_link_related_active
	cmp r0, 0
	bne _0811A2DC
_0811A2CE:
	adds r0, r4, 0
	bl sub_811A428
	lsls r0, 24
	cmp r0, 0
	bne _0811A2CE
	b _0811A2EA
_0811A2DC:
	adds r0, r4, 0
	bl sub_811A428
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811A2F2
_0811A2EA:
	ldr r1, =sub_811A2FC
	adds r0, r4, 0
	bl sub_811A2A4
_0811A2F2:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A2C0

	thumb_func_start sub_811A2FC
sub_811A2FC: @ 811A2FC
	push {r4-r6,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r0, r2, 2
	adds r0, r2
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r5, r0, r1
	movs r1, 0
	ldrsh r0, [r5, r1]
	cmp r0, 0x5
	bls _0811A318
	b _0811A41C
_0811A318:
	lsls r0, 2
	ldr r1, =_0811A32C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811A32C:
	.4byte _0811A344
	.4byte _0811A370
	.4byte _0811A3CC
	.4byte _0811A3D4
	.4byte _0811A3EC
	.4byte _0811A40C
_0811A344:
	ldr r0, =sub_811A290
	bl SetVBlankCallback
	movs r4, 0x1
	negs r4, r4
	adds r0, r4, 0
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	movs r0, 0
	str r0, [sp]
	adds r0, r4, 0
	adds r1, r4, 0
	movs r2, 0x10
	movs r3, 0
	bl BeginNormalPaletteFade
	movs r0, 0x5
	b _0811A41A
	.pool
_0811A370:
	bl sub_811AAAC
	lsls r0, 16
	lsrs r4, r0, 16
	adds r6, r4, 0
	adds r0, r4, 0
	bl sub_811A88C
	cmp r0, 0
	beq _0811A39E
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x2
	negs r1, r1
	movs r2, 0
	str r2, [sp]
	movs r3, 0x10
	bl BeginNormalPaletteFade
	movs r0, 0x3
	strh r0, [r5]
	strh r4, [r5, 0xC]
	b _0811A41C
_0811A39E:
	cmp r4, 0x18
	bne _0811A3B6
	movs r1, 0x1
	negs r1, r1
	str r0, [sp]
	adds r0, r1, 0
	movs r2, 0
	movs r3, 0x10
	bl BeginNormalPaletteFade
	movs r0, 0x4
	b _0811A41A
_0811A3B6:
	cmp r6, 0
	beq _0811A41C
	movs r0, 0x5
	bl PlaySE
	adds r0, r6, 0
	bl sub_811C158
	ldrh r0, [r5]
	adds r0, 0x1
	b _0811A41A
_0811A3CC:
	bl sub_811C170
	lsls r0, 24
	b _0811A414
_0811A3D4:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0811A41C
	ldrh r0, [r5, 0xC]
	bl sub_811A8A4
	b _0811A41C
	.pool
_0811A3EC:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0811A41C
	adds r0, r2, 0
	movs r1, 0x4
	bl GetWordTaskArg
	bl sub_811A4D0
	b _0811A41C
	.pool
_0811A40C:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
_0811A414:
	cmp r0, 0
	bne _0811A41C
	movs r0, 0x1
_0811A41A:
	strh r0, [r5]
_0811A41C:
	add sp, 0x4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A2FC

	thumb_func_start sub_811A428
sub_811A428: @ 811A428
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	movs r1, 0
	ldrsh r0, [r6, r1]
	cmp r0, 0x4
	bhi _0811A4BC
	lsls r0, 2
	ldr r1, =_0811A454
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811A454:
	.4byte _0811A468
	.4byte _0811A47C
	.4byte _0811A482
	.4byte _0811A498
	.4byte _0811A4B0
_0811A468:
	movs r0, 0
	bl SetVBlankCallback
	bl ResetSpriteData
	bl FreeAllSpritePalettes
	bl ResetPaletteFade
	b _0811A4C0
_0811A47C:
	bl sub_811F28C
	b _0811A49C
_0811A482:
	ldrb r4, [r6, 0x2]
	adds r0, r5, 0
	movs r1, 0x2
	bl GetWordTaskArg
	adds r1, r0, 0
	ldrb r2, [r6, 0xE]
	adds r0, r4, 0
	bl sub_811A95C
	b _0811A49C
_0811A498:
	bl sub_811BF8C
_0811A49C:
	lsls r0, 24
	cmp r0, 0
	bne _0811A4C0
	adds r0, r5, 0
	movs r1, 0x4
	bl GetWordTaskArg
	bl sub_811A4D0
	b _0811A4C0
_0811A4B0:
	bl sub_811BFA4
	lsls r0, 24
	cmp r0, 0
	beq _0811A4C0
	b _0811A4C6
_0811A4BC:
	movs r0, 0
	b _0811A4C8
_0811A4C0:
	ldrh r0, [r6]
	adds r0, 0x1
	strh r0, [r6]
_0811A4C6:
	movs r0, 0x1
_0811A4C8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_811A428

	thumb_func_start sub_811A4D0
sub_811A4D0: @ 811A4D0
	push {r4,lr}
	adds r4, r0, 0
	bl sub_811C13C
	bl sub_811AA90
	bl sub_811F2B8
	bl FreeAllWindowBuffers
	adds r0, r4, 0
	bl SetMainCallback2
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811A4D0

	thumb_func_start easy_chat_input_maybe
easy_chat_input_maybe: @ 811A4F0
	push {r4,r5,lr}
	movs r5, 0x3
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0x14
	bls _0811A4FE
	b _0811A7D4
_0811A4FE:
	lsls r0, 2
	ldr r1, =_0811A510
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811A510:
	.4byte _0811A564
	.4byte _0811A578
	.4byte _0811A58C
	.4byte _0811A5A0
	.4byte _0811A5B4
	.4byte _0811A604
	.4byte _0811A5D8
	.4byte _0811A630
	.4byte _0811A664
	.4byte _0811A688
	.4byte _0811A6B4
	.4byte _0811A6D4
	.4byte _0811A708
	.4byte _0811A72C
	.4byte _0811A73C
	.4byte _0811A770
	.4byte _0811A7D4
	.4byte _0811A784
	.4byte _0811A798
	.4byte _0811A7AC
	.4byte _0811A7BC
_0811A564:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002bb0
	adds r4, r0, r1
	b _0811A7C2
	.pool
_0811A578:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x00002bbc
	adds r4, r0, r2
	b _0811A7C2
	.pool
_0811A58C:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r3, =0x00002bc8
	adds r4, r0, r3
	b _0811A7C2
	.pool
_0811A5A0:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002bd4
	adds r4, r0, r1
	b _0811A7C2
	.pool
_0811A5B4:
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8005
	ldrh r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r3, =0x00002be0
	adds r0, r3
	ldr r1, [r2]
	adds r4, r1, r0
	b _0811A7C2
	.pool
_0811A5D8:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x00002e36
	adds r1, r0, r2
	ldr r3, =0x00002e2a
	adds r2, r0, r3
	movs r3, 0x5
_0811A5E6:
	ldrh r0, [r2]
	strh r0, [r2, 0xC]
	adds r2, 0x2
	subs r3, 0x1
	cmp r3, 0
	bge _0811A5E6
	adds r4, r1, 0
	b _0811A7C2
	.pool
_0811A604:
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8005
	ldrh r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, [r2]
	adds r0, r1
	ldr r1, =0x000027d0
	adds r4, r0, r1
	ldr r0, =gSpecialVar_0x8006
	ldrb r5, [r0]
	b _0811A7C2
	.pool
_0811A630:
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8005
	ldrh r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r3, =0x000027cc
	adds r0, r3
	ldr r1, [r2]
	adds r1, r0
	ldr r0, =gSpecialVar_0x8006
	ldrh r0, [r0]
	lsls r0, 1
	adds r0, 0x1C
	adds r4, r1, r0
	movs r5, 0x1
	b _0811A7C2
	.pool
_0811A664:
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8005
	ldrh r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, [r2]
	adds r0, r1
	ldr r1, =0x000027ce
	adds r4, r0, r1
	movs r5, 0
	b _0811A7C2
	.pool
_0811A688:
	ldr r4, =gStringVar3
	ldr r1, =gSaveBlock1Ptr
	ldr r0, [r1]
	ldr r2, =0x00002e6c
	adds r0, r2
	ldrh r0, [r0]
	strh r0, [r4]
	ldr r0, [r1]
	ldr r3, =0x00002e6e
	adds r0, r3
	ldrh r0, [r0]
	strh r0, [r4, 0x2]
	b _0811A7C2
	.pool
_0811A6B4:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002baa
	adds r4, r0, r1
	ldr r2, =0x0000ffff
	adds r0, r2, 0
	strh r0, [r4]
	movs r5, 0x1
	b _0811A7C2
	.pool
_0811A6D4:
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8005
	ldrh r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r3, =0x000027cc
	adds r0, r3
	ldr r1, [r2]
	adds r1, r0
	ldr r0, =gSpecialVar_0x8006
	ldrh r0, [r0]
	lsls r0, 1
	adds r0, 0x4
	adds r4, r1, r0
	movs r5, 0
	b _0811A7C2
	.pool
_0811A708:
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8005
	ldrh r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r1, [r2]
	adds r0, r1
	ldr r1, =0x000027e4
	adds r4, r0, r1
	movs r5, 0x1
	b _0811A7C2
	.pool
_0811A72C:
	ldr r4, =gStringVar3
	adds r0, r4, 0
	movs r1, 0x2
	bl InitializeEasyChatWordArray
	b _0811A7C2
	.pool
_0811A73C:
	ldr r2, =gSaveBlock1Ptr
	ldr r0, =gSpecialVar_0x8005
	ldrh r1, [r0]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 2
	ldr r3, =0x000027cc
	adds r0, r3
	ldr r1, [r2]
	adds r1, r0
	adds r4, r1, 0
	adds r4, 0x14
	ldr r2, =0x0000ffff
	adds r0, r2, 0
	strh r0, [r1, 0x14]
	movs r5, 0x2
	b _0811A7C2
	.pool
_0811A770:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r3, =0x00003b6e
	adds r4, r0, r3
	b _0811A7C2
	.pool
_0811A784:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003b5a
	adds r4, r0, r1
	b _0811A7C2
	.pool
_0811A798:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x00003b6c
	adds r4, r0, r2
	b _0811A7C2
	.pool
_0811A7AC:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r3, 0x82
	lsls r3, 1
	adds r4, r0, r3
	b _0811A7C2
	.pool
_0811A7BC:
	bl sub_801B058
	adds r4, r0, 0
_0811A7C2:
	bl overworld_free_bg_tilemaps
	ldr r0, =gSpecialVar_0x8004
	ldrb r0, [r0]
	ldr r2, =sub_80861B0
	adds r1, r4, 0
	adds r3, r5, 0
	bl sub_811A20C
_0811A7D4:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end easy_chat_input_maybe

	thumb_func_start sub_811A7E4
sub_811A7E4: @ 811A7E4
	push {lr}
	bl UpdatePaletteFade
	ldr r0, =gMain
	movs r1, 0x87
	lsls r1, 3
	adds r0, r1
	ldrb r0, [r0]
	cmp r0, 0
	beq _0811A804
	cmp r0, 0x1
	beq _0811A80E
	b _0811A840
	.pool
_0811A804:
	movs r0, 0x1
	movs r1, 0
	bl FadeScreen
	b _0811A840
_0811A80E:
	ldr r0, =gPaletteFade
	ldrb r1, [r0, 0x7]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0811A84E
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003b58
	adds r0, r1
	ldr r1, =0x0000ffff
	strh r1, [r0, 0x16]
	bl overworld_free_bg_tilemaps
	bl sub_811A8F0
	b _0811A84E
	.pool
_0811A840:
	ldr r1, =gMain
	movs r0, 0x87
	lsls r0, 3
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
_0811A84E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A7E4

	thumb_func_start sub_811A858
sub_811A858: @ 811A858
	push {lr}
	ldr r0, =sub_811A7E4
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A858

	thumb_func_start sub_811A868
sub_811A868: @ 811A868
	push {lr}
	lsls r0, 16
	lsrs r2, r0, 16
	movs r0, 0
	ldr r1, =gUnknown_08597530
_0811A872:
	ldrh r3, [r1]
	cmp r2, r3
	beq _0811A884
	adds r1, 0x8
	adds r0, 0x1
	cmp r0, 0x3
	bls _0811A872
	movs r0, 0x1
	negs r0, r0
_0811A884:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811A868

	thumb_func_start sub_811A88C
sub_811A88C: @ 811A88C
	push {lr}
	lsls r0, 16
	lsrs r0, 16
	bl sub_811A868
	adds r1, r0, 0
	mvns r1, r1
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	pop {r1}
	bx r1
	thumb_func_end sub_811A88C

	thumb_func_start sub_811A8A4
sub_811A8A4: @ 811A8A4
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	bl sub_811A868
	adds r4, r0, 0
	bl ResetTasks
	ldr r0, =gUnknown_08597530
	lsls r4, 3
	adds r0, 0x4
	adds r4, r0
	ldr r0, [r4]
	bl sub_811A4D0
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A8A4

	thumb_func_start sub_811A8CC
sub_811A8CC: @ 811A8CC
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x00003b6e
	adds r1, r0
	ldr r2, =sub_80861B0
	movs r0, 0xF
	movs r3, 0x3
	bl sub_811A20C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A8CC

	thumb_func_start sub_811A8F0
sub_811A8F0: @ 811A8F0
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x00003b5a
	adds r1, r0
	ldr r2, =sub_80861B0
	movs r0, 0x10
	movs r3, 0x3
	bl sub_811A20C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A8F0

	thumb_func_start sub_811A914
sub_811A914: @ 811A914
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x00003b6c
	adds r1, r0
	ldr r2, =sub_80861B0
	movs r0, 0x12
	movs r3, 0x3
	bl sub_811A20C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A914

	thumb_func_start sub_811A938
sub_811A938: @ 811A938
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x00003b5a
	adds r1, r0
	ldr r2, =sub_80861B0
	movs r0, 0x11
	movs r3, 0x3
	bl sub_811A20C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811A938

	thumb_func_start sub_811A95C
sub_811A95C: @ 811A95C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r1
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r2, 24
	lsrs r6, r2, 24
	ldr r4, =gUnknown_0203A118
	movs r0, 0x50
	bl Alloc
	str r0, [r4]
	cmp r0, 0
	bne _0811A984
	movs r0, 0
	b _0811AA7E
	.pool
_0811A984:
	movs r7, 0
	strb r5, [r0]
	ldr r0, [r4]
	mov r1, r8
	str r1, [r0, 0x38]
	strb r7, [r0, 0x5]
	ldr r0, [r4]
	strb r7, [r0, 0x6]
	ldr r0, [r4]
	strb r7, [r0, 0x9]
	ldr r0, [r4]
	strb r6, [r0, 0x12]
	ldr r0, [r4]
	strb r7, [r0, 0x13]
	adds r0, r5, 0
	bl sub_811BCC8
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r5, 0x10
	bne _0811A9C6
	ldr r0, [r4]
	adds r0, 0x14
	bl sub_811BDF0
	ldr r0, [r4]
	adds r1, r0, 0
	adds r1, 0x14
	str r1, [r0, 0x34]
	movs r1, 0x7
	strb r1, [r0, 0x4]
	lsls r0, r6, 1
	b _0811A9DE
_0811A9C6:
	ldr r0, [r4]
	strb r7, [r0, 0x4]
	ldr r3, [r4]
	ldr r1, =gUnknown_08597550
	lsls r2, r6, 1
	adds r0, r2, r6
	lsls r0, 3
	adds r1, 0x4
	adds r0, r1
	ldr r0, [r0]
	str r0, [r3, 0x34]
	adds r0, r2, 0
_0811A9DE:
	ldr r3, =gUnknown_0203A118
	ldr r2, [r3]
	ldr r1, =gUnknown_08597550
	adds r0, r6
	lsls r0, 3
	adds r0, r1
	ldrb r1, [r0, 0x1]
	strb r1, [r2, 0x2]
	ldr r1, [r3]
	ldrb r0, [r0, 0x2]
	strb r0, [r1, 0x3]
	ldr r0, [r3]
	ldrb r2, [r0, 0x2]
	ldrb r1, [r0, 0x3]
	adds r4, r2, 0
	muls r4, r1
	adds r1, r4, 0
	strb r1, [r0, 0x7]
	ldr r0, [r3]
	strb r6, [r0, 0x1]
	ldr r1, [r3]
	ldrb r0, [r1, 0x7]
	adds r4, r3, 0
	cmp r0, 0x9
	bls _0811AA14
	movs r0, 0x9
	strb r0, [r1, 0x7]
_0811AA14:
	mov r0, r8
	cmp r0, 0
	beq _0811AA34
	ldr r0, [r4]
	adds r1, r0, 0
	adds r1, 0x3C
	ldrb r2, [r0, 0x7]
	mov r0, r8
	bl CpuSet
	b _0811AA64
	.pool
_0811AA34:
	movs r3, 0
	ldr r0, [r4]
	ldrb r0, [r0, 0x7]
	cmp r3, r0
	bge _0811AA5C
	adds r6, r4, 0
	ldr r1, =0x0000ffff
	adds r5, r1, 0
_0811AA44:
	ldr r2, [r6]
	lsls r0, r3, 1
	adds r1, r2, 0
	adds r1, 0x3C
	adds r1, r0
	ldrh r0, [r1]
	orrs r0, r5
	strh r0, [r1]
	adds r3, 0x1
	ldrb r2, [r2, 0x7]
	cmp r3, r2
	blt _0811AA44
_0811AA5C:
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x3C
	str r0, [r1, 0x38]
_0811AA64:
	bl sub_811F3AC
	ldr r1, =gUnknown_0203A118
	ldr r2, [r1]
	lsls r0, 24
	lsrs r0, 24
	subs r0, 0x1
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	adds r0, 0x1
	strb r0, [r2, 0xD]
	movs r0, 0x1
_0811AA7E:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811A95C

	thumb_func_start sub_811AA90
sub_811AA90: @ 811AA90
	push {r4,lr}
	ldr r4, =gUnknown_0203A118
	ldr r0, [r4]
	cmp r0, 0
	beq _0811AAA2
	bl Free
	movs r0, 0
	str r0, [r4]
_0811AAA2:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811AA90

	thumb_func_start sub_811AAAC
sub_811AAAC: @ 811AAAC
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x4]
	cmp r0, 0xA
	bhi _0811AB3E
	lsls r0, 2
	ldr r1, =_0811AACC
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811AACC:
	.4byte _0811AAF8
	.4byte _0811AAFE
	.4byte _0811AB04
	.4byte _0811AB0A
	.4byte _0811AB10
	.4byte _0811AB16
	.4byte _0811AB1C
	.4byte _0811AB22
	.4byte _0811AB28
	.4byte _0811AB2E
	.4byte _0811AB34
_0811AAF8:
	bl sub_811AB68
	b _0811AB38
_0811AAFE:
	bl sub_811ACDC
	b _0811AB38
_0811AB04:
	bl sub_811AE44
	b _0811AB38
_0811AB0A:
	bl sub_811AF00
	b _0811AB38
_0811AB10:
	bl sub_811AF8C
	b _0811AB38
_0811AB16:
	bl sub_811B040
	b _0811AB38
_0811AB1C:
	bl sub_811AFEC
	b _0811AB38
_0811AB22:
	bl sub_811B08C
	b _0811AB38
_0811AB28:
	bl sub_811B0BC
	b _0811AB38
_0811AB2E:
	bl sub_811B0E8
	b _0811AB38
_0811AB34:
	bl sub_811B0F8
_0811AB38:
	lsls r0, 16
	lsrs r0, 16
	b _0811AB40
_0811AB3E:
	movs r0, 0
_0811AB40:
	pop {r1}
	bx r1
	thumb_func_end sub_811AAAC

	thumb_func_start sub_811AB44
sub_811AB44: @ 811AB44
	push {lr}
	bl sub_811BA68
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	beq _0811AB5E
	cmp r0, 0x2
	blt _0811AB62
	cmp r0, 0x8
	bgt _0811AB62
	cmp r0, 0x7
	blt _0811AB62
_0811AB5E:
	movs r0, 0x1
	b _0811AB64
_0811AB62:
	movs r0, 0
_0811AB64:
	pop {r1}
	bx r1
	thumb_func_end sub_811AB44

	thumb_func_start sub_811AB68
sub_811AB68: @ 811AB68
	push {r4-r7,lr}
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0811ABB8
	bl sub_811BF78
	ldr r1, =gUnknown_0203A118
	ldr r3, [r1]
	movs r2, 0
	movs r0, 0x2
	strb r0, [r3, 0x4]
	ldr r0, [r1]
	strb r2, [r0, 0xA]
	ldr r0, [r1]
	strb r2, [r0, 0xB]
	ldr r0, [r1]
	strb r2, [r0, 0xC]
	movs r0, 0x9
	b _0811ACCC
	.pool
_0811AB9C:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	bne _0811AC68
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _0811AC58
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _0811AC48
	movs r0, 0
	b _0811ACCC
_0811ABB8:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _0811AC78
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	bne _0811AC7E
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _0811AB9C
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x6]
	subs r0, 0x1
_0811ABD8:
	strb r0, [r1, 0x6]
_0811ABDA:
	adds r7, r2, 0
	adds r4, r7, 0
	ldr r2, [r4]
	movs r0, 0x6
	ldrsb r0, [r2, r0]
	ldr r6, =gUnknown_08597550
	cmp r0, 0
	bge _0811ABF8
	ldrb r0, [r2, 0x1]
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 3
	adds r1, r6
	ldrb r0, [r1, 0x2]
	strb r0, [r2, 0x6]
_0811ABF8:
	ldr r3, [r4]
	movs r2, 0x6
	ldrsb r2, [r3, r2]
	adds r5, r6, 0
	ldrb r1, [r3, 0x1]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	adds r0, r5
	ldrb r0, [r0, 0x2]
	cmp r2, r0
	ble _0811AC14
	movs r0, 0
	strb r0, [r3, 0x6]
_0811AC14:
	ldr r3, [r4]
	movs r2, 0x6
	ldrsb r2, [r3, r2]
	ldrb r1, [r3, 0x1]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	adds r1, r0, r5
	ldrb r0, [r1, 0x2]
	cmp r2, r0
	bne _0811AC88
	movs r0, 0x5
	ldrsb r0, [r3, r0]
	cmp r0, 0x2
	ble _0811AC36
	movs r0, 0x2
	strb r0, [r3, 0x5]
_0811AC36:
	ldr r1, [r4]
	movs r0, 0x1
	strb r0, [r1, 0x4]
	movs r0, 0x3
	b _0811ACCC
	.pool
_0811AC48:
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x5]
	adds r0, 0x1
	strb r0, [r1, 0x5]
	b _0811ABDA
	.pool
_0811AC58:
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x6]
	adds r0, 0x1
	b _0811ABD8
	.pool
_0811AC68:
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x5]
	subs r0, 0x1
	strb r0, [r1, 0x5]
	b _0811ABDA
	.pool
_0811AC78:
	bl sub_811B150
	b _0811AC82
_0811AC7E:
	bl sub_811B1B4
_0811AC82:
	lsls r0, 16
	lsrs r0, 16
	b _0811ACCC
_0811AC88:
	movs r0, 0x5
	ldrsb r0, [r3, r0]
	cmp r0, 0
	bge _0811AC96
	ldrb r0, [r1, 0x1]
	subs r0, 0x1
	strb r0, [r3, 0x5]
_0811AC96:
	ldr r3, [r4]
	movs r2, 0x5
	ldrsb r2, [r3, r2]
	ldrb r1, [r3, 0x1]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	adds r0, r6
	ldrb r0, [r0, 0x1]
	cmp r2, r0
	blt _0811ACB0
	movs r0, 0
	strb r0, [r3, 0x5]
_0811ACB0:
	bl sub_811AB44
	cmp r0, 0
	beq _0811ACCA
	ldr r2, [r7]
	ldr r0, [r2, 0x4]
	ldr r1, =0x00ffff00
	ands r0, r1
	ldr r1, =0x00040100
	cmp r0, r1
	bne _0811ACCA
	movs r0, 0
	strb r0, [r2, 0x5]
_0811ACCA:
	movs r0, 0x2
_0811ACCC:
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811AB68

	thumb_func_start sub_811ACDC
sub_811ACDC: @ 811ACDC
	push {r4-r6,lr}
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0811AD4A
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x5]
	lsls r0, 24
	asrs r0, 24
	cmp r0, 0x1
	beq _0811AD3E
	b _0811AD24
	.pool
_0811AD04:
	movs r0, 0x20
	ands r0, r2
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0
	bne _0811ADE0
	movs r0, 0x80
	ands r0, r2
	cmp r0, 0
	bne _0811ADD0
	movs r0, 0x10
	ands r0, r2
	cmp r0, 0
	bne _0811ADC0
	movs r0, 0
	b _0811AE32
_0811AD24:
	cmp r0, 0x1
	bgt _0811AD2E
	cmp r0, 0
	beq _0811AD38
	b _0811AD4A
_0811AD2E:
	cmp r0, 0x2
	beq _0811ADF6
	cmp r0, 0x3
	beq _0811AD44
	b _0811AD4A
_0811AD38:
	bl sub_811B184
	b _0811ADFA
_0811AD3E:
	bl sub_811B150
	b _0811ADFA
_0811AD44:
	bl sub_811B264
	b _0811ADFA
_0811AD4A:
	ldrh r2, [r2, 0x2E]
	movs r0, 0x2
	ands r0, r2
	cmp r0, 0
	bne _0811ADF0
	movs r0, 0x8
	ands r0, r2
	cmp r0, 0
	bne _0811ADF6
	movs r0, 0x40
	ands r0, r2
	cmp r0, 0
	beq _0811AD04
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x6]
	subs r0, 0x1
	strb r0, [r1, 0x6]
_0811AD6E:
	adds r6, r2, 0
_0811AD70:
	adds r5, r6, 0
	ldr r4, [r5]
	movs r3, 0x6
	ldrsb r3, [r4, r3]
	ldr r2, =gUnknown_08597550
	ldrb r1, [r4, 0x1]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	adds r1, r0, r2
	ldrb r0, [r1, 0x2]
	cmp r3, r0
	bne _0811AE00
	bl sub_811BA3C
	movs r2, 0x3
	cmp r0, 0
	beq _0811AD96
	movs r2, 0x4
_0811AD96:
	ldr r1, [r5]
	movs r0, 0x5
	ldrsb r0, [r1, r0]
	cmp r0, 0
	bge _0811ADA4
	subs r0, r2, 0x1
	strb r0, [r1, 0x5]
_0811ADA4:
	ldr r1, [r5]
	movs r0, 0x5
	ldrsb r0, [r1, r0]
	cmp r0, r2
	blt _0811ADB2
	movs r0, 0
	strb r0, [r1, 0x5]
_0811ADB2:
	movs r0, 0x3
	b _0811AE32
	.pool
_0811ADC0:
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x5]
	adds r0, 0x1
	strb r0, [r1, 0x5]
	b _0811AD6E
	.pool
_0811ADD0:
	ldr r1, =gUnknown_0203A118
	ldr r0, [r1]
	strb r3, [r0, 0x6]
	adds r6, r1, 0
	b _0811AD70
	.pool
_0811ADE0:
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x5]
	subs r0, 0x1
	strb r0, [r1, 0x5]
	b _0811AD6E
	.pool
_0811ADF0:
	bl sub_811B150
	b _0811ADFA
_0811ADF6:
	bl sub_811B1B4
_0811ADFA:
	lsls r0, 16
	lsrs r0, 16
	b _0811AE32
_0811AE00:
	movs r0, 0x5
	ldrsb r0, [r4, r0]
	ldrb r1, [r1, 0x1]
	cmp r0, r1
	blt _0811AE0E
	subs r0, r1, 0x1
	strb r0, [r4, 0x5]
_0811AE0E:
	bl sub_811AB44
	cmp r0, 0
	beq _0811AE28
	ldr r2, [r6]
	ldr r0, [r2, 0x4]
	ldr r1, =0x00ffff00
	ands r0, r1
	ldr r1, =0x00040100
	cmp r0, r1
	bne _0811AE28
	movs r0, 0
	strb r0, [r2, 0x5]
_0811AE28:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0
	strb r0, [r1, 0x4]
	movs r0, 0x2
_0811AE32:
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811ACDC

	thumb_func_start sub_811AE44
sub_811AE44: @ 811AE44
	push {lr}
	ldr r1, =gMain
	ldrh r2, [r1, 0x2E]
	movs r0, 0x2
	ands r0, r2
	adds r3, r1, 0
	cmp r0, 0
	beq _0811AE60
	bl sub_811B32C
	b _0811AEF6
	.pool
_0811AE60:
	movs r0, 0x1
	ands r0, r2
	cmp r0, 0
	beq _0811AEAE
	ldr r0, =gUnknown_0203A118
	ldr r2, [r0]
	movs r1, 0xA
	ldrsb r1, [r2, r1]
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0811AE84
	bl sub_811B2B0
	b _0811AEF6
	.pool
_0811AE84:
	movs r0, 0xB
	ldrsb r0, [r2, r0]
	cmp r0, 0x1
	beq _0811AEA2
	cmp r0, 0x1
	bgt _0811AE96
	cmp r0, 0
	beq _0811AE9C
	b _0811AEAE
_0811AE96:
	cmp r0, 0x2
	beq _0811AEA8
	b _0811AEAE
_0811AE9C:
	bl sub_811B33C
	b _0811AEF6
_0811AEA2:
	bl sub_811B368
	b _0811AEF6
_0811AEA8:
	bl sub_811B32C
	b _0811AEF6
_0811AEAE:
	ldrh r1, [r3, 0x2E]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _0811AEBE
	bl sub_811B33C
	b _0811AEF6
_0811AEBE:
	ldrh r1, [r3, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _0811AECC
	movs r0, 0x2
	b _0811AEF2
_0811AECC:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _0811AED8
	movs r0, 0x3
	b _0811AEF2
_0811AED8:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _0811AEE4
	movs r0, 0x1
	b _0811AEF2
_0811AEE4:
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _0811AEF0
	movs r0, 0
	b _0811AEFA
_0811AEF0:
	movs r0, 0
_0811AEF2:
	bl sub_811B528
_0811AEF6:
	lsls r0, 16
	lsrs r0, 16
_0811AEFA:
	pop {r1}
	bx r1
	thumb_func_end sub_811AE44

	thumb_func_start sub_811AF00
sub_811AF00: @ 811AF00
	push {lr}
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0811AF24
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0x2
	strb r0, [r1, 0x4]
	movs r0, 0xE
	b _0811AF86
	.pool
_0811AF24:
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0811AF32
	bl sub_811B394
	b _0811AF82
_0811AF32:
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _0811AF3E
	movs r0, 0x4
	b _0811AF7E
_0811AF3E:
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _0811AF4A
	movs r0, 0x5
	b _0811AF7E
_0811AF4A:
	ldrh r1, [r2, 0x30]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _0811AF58
	movs r0, 0x2
	b _0811AF7E
_0811AF58:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _0811AF64
	movs r0, 0x3
	b _0811AF7E
_0811AF64:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	beq _0811AF70
	movs r0, 0x1
	b _0811AF7E
_0811AF70:
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _0811AF7C
	movs r0, 0
	b _0811AF86
_0811AF7C:
	movs r0, 0
_0811AF7E:
	bl sub_811B794
_0811AF82:
	lsls r0, 16
	lsrs r0, 16
_0811AF86:
	pop {r1}
	bx r1
	thumb_func_end sub_811AF00

	thumb_func_start sub_811AF8C
sub_811AF8C: @ 811AF8C
	push {lr}
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0811AFC0
	cmp r1, 0
	bgt _0811AFA8
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0811AFAC
	b _0811AFE4
_0811AFA8:
	cmp r1, 0x1
	bne _0811AFE4
_0811AFAC:
	bl sub_811B2A4
	ldr r1, =gUnknown_0203A118
	ldr r1, [r1]
	strb r0, [r1, 0x4]
	movs r0, 0x7
	b _0811AFE6
	.pool
_0811AFC0:
	ldr r0, =gSpecialVar_Result
	strh r1, [r0]
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0]
	subs r0, 0x11
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _0811AFD8
	bl sub_811B3E4
_0811AFD8:
	movs r0, 0x18
	b _0811AFE6
	.pool
_0811AFE4:
	movs r0, 0
_0811AFE6:
	pop {r1}
	bx r1
	thumb_func_end sub_811AF8C

	thumb_func_start sub_811AFEC
sub_811AFEC: @ 811AFEC
	push {r4,lr}
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0811B020
	cmp r1, 0
	bgt _0811B008
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0811B00C
	b _0811B038
_0811B008:
	cmp r1, 0x1
	bne _0811B038
_0811B00C:
	bl sub_811B2A4
	ldr r1, =gUnknown_0203A118
	ldr r1, [r1]
	strb r0, [r1, 0x4]
	movs r0, 0x7
	b _0811B03A
	.pool
_0811B020:
	bl sub_811BE9C
	ldr r4, =gSpecialVar_Result
	bl sub_811B4EC
	strh r0, [r4]
	bl sub_811B3E4
	movs r0, 0x18
	b _0811B03A
	.pool
_0811B038:
	movs r0, 0
_0811B03A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811AFEC

	thumb_func_start sub_811B040
sub_811B040: @ 811B040
	push {lr}
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0811B070
	cmp r1, 0
	bgt _0811B05C
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0811B060
	b _0811B084
_0811B05C:
	cmp r1, 0x1
	bne _0811B084
_0811B060:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0x1
	strb r0, [r1, 0x4]
	movs r0, 0x7
	b _0811B086
	.pool
_0811B070:
	bl sub_811B418
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0x1
	strb r0, [r1, 0x4]
	movs r0, 0x8
	b _0811B086
	.pool
_0811B084:
	movs r0, 0
_0811B086:
	pop {r1}
	bx r1
	thumb_func_end sub_811B040

	thumb_func_start sub_811B08C
sub_811B08C: @ 811B08C
	push {lr}
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0811B0A4
	movs r0, 0x1A
	b _0811B0B8
	.pool
_0811B0A4:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _0811B0B0
	movs r0, 0
	b _0811B0B8
_0811B0B0:
	bl sub_811B150
	lsls r0, 16
	lsrs r0, 16
_0811B0B8:
	pop {r1}
	bx r1
	thumb_func_end sub_811B08C

	thumb_func_start sub_811B0BC
sub_811B0BC: @ 811B0BC
	push {lr}
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x3
	ands r0, r1
	cmp r0, 0
	bne _0811B0D4
	movs r0, 0
	b _0811B0E0
	.pool
_0811B0D4:
	bl sub_811B2A4
	ldr r1, =gUnknown_0203A118
	ldr r1, [r1]
	strb r0, [r1, 0x4]
	movs r0, 0x7
_0811B0E0:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811B0BC

	thumb_func_start sub_811B0E8
sub_811B0E8: @ 811B0E8
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0xA
	strb r0, [r1, 0x4]
	movs r0, 0x6
	bx lr
	.pool
	thumb_func_end sub_811B0E8

	thumb_func_start sub_811B0F8
sub_811B0F8: @ 811B0F8
	push {r4,lr}
	bl ProcessMenuInputNoWrap_
	lsls r0, 24
	asrs r1, r0, 24
	cmp r1, 0
	beq _0811B134
	cmp r1, 0
	bgt _0811B114
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0811B118
	b _0811B148
_0811B114:
	cmp r1, 0x1
	bne _0811B148
_0811B118:
	bl sub_811B454
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	movs r0, 0
	strb r0, [r1, 0x8]
	ldr r1, [r2]
	movs r0, 0x8
	strb r0, [r1, 0x4]
	movs r0, 0x1F
	b _0811B14A
	.pool
_0811B134:
	ldr r4, =gSpecialVar_Result
	bl sub_811B4EC
	strh r0, [r4]
	bl sub_811B3E4
	movs r0, 0x18
	b _0811B14A
	.pool
_0811B148:
	movs r0, 0
_0811B14A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811B0F8

	thumb_func_start sub_811B150
sub_811B150: @ 811B150
	push {lr}
	ldr r1, =gUnknown_0203A118
	ldr r2, [r1]
	ldrb r0, [r2]
	cmp r0, 0x13
	beq _0811B160
	cmp r0, 0xB
	bne _0811B174
_0811B160:
	ldrb r0, [r2, 0x4]
	strb r0, [r2, 0x8]
	ldr r1, [r1]
	movs r0, 0x8
	strb r0, [r1, 0x4]
	movs r0, 0x22
	b _0811B180
	.pool
_0811B174:
	ldrb r0, [r2, 0x4]
	strb r0, [r2, 0x8]
	ldr r1, [r1]
	movs r0, 0x4
	strb r0, [r1, 0x4]
	movs r0, 0x5
_0811B180:
	pop {r1}
	bx r1
	thumb_func_end sub_811B150

	thumb_func_start sub_811B184
sub_811B184: @ 811B184
	push {lr}
	ldr r2, =gUnknown_0203A118
	ldr r0, [r2]
	ldrb r1, [r0, 0x4]
	strb r1, [r0, 0x8]
	ldr r1, [r2]
	ldrb r0, [r1]
	cmp r0, 0x6
	bne _0811B1A8
	ldrb r0, [r1, 0x4]
	strb r0, [r1, 0x8]
	ldr r1, [r2]
	movs r0, 0x8
	strb r0, [r1, 0x4]
	movs r0, 0x20
	b _0811B1AE
	.pool
_0811B1A8:
	movs r0, 0x5
	strb r0, [r1, 0x4]
	movs r0, 0x4
_0811B1AE:
	pop {r1}
	bx r1
	thumb_func_end sub_811B184

	thumb_func_start sub_811B1B4
sub_811B1B4: @ 811B1B4
	push {r4,lr}
	ldr r4, =gUnknown_0203A118
	ldr r1, [r4]
	ldrb r0, [r1, 0x4]
	strb r0, [r1, 0x8]
	ldr r1, [r4]
	ldrb r0, [r1]
	cmp r0, 0x11
	bne _0811B1DC
	bl sub_811BD64
	cmp r0, 0
	bne _0811B1FA
	bl sub_811BDB0
	cmp r0, 0
	bne _0811B1E8
	b _0811B256
	.pool
_0811B1DC:
	cmp r0, 0x12
	bne _0811B204
	bl sub_811BDB0
	cmp r0, 0
	beq _0811B1F2
_0811B1E8:
	ldr r1, [r4]
	movs r0, 0x8
	strb r0, [r1, 0x4]
	movs r0, 0x1E
	b _0811B25C
_0811B1F2:
	bl sub_811BD64
	cmp r0, 0
	beq _0811B256
_0811B1FA:
	ldr r1, [r4]
	movs r0, 0x8
	strb r0, [r1, 0x4]
	movs r0, 0x1D
	b _0811B25C
_0811B204:
	cmp r0, 0x9
	beq _0811B20C
	cmp r0, 0xD
	bne _0811B21E
_0811B20C:
	bl sub_811BD2C
	cmp r0, 0
	bne _0811B256
	ldr r1, [r4]
	movs r0, 0x8
	strb r0, [r1, 0x4]
	movs r0, 0x21
	b _0811B25C
_0811B21E:
	cmp r0, 0x13
	beq _0811B226
	cmp r0, 0xB
	bne _0811B238
_0811B226:
	bl sub_811BCF4
	cmp r0, 0
	beq _0811B256
	ldr r1, [r4]
	movs r0, 0x8
	strb r0, [r1, 0x4]
	movs r0, 0x22
	b _0811B25C
_0811B238:
	cmp r0, 0x14
	beq _0811B258
	bl sub_811BCF4
	cmp r0, 0x1
	beq _0811B24C
	bl sub_811B4EC
	cmp r0, 0
	bne _0811B256
_0811B24C:
	ldr r1, [r4]
	movs r0, 0x4
	strb r0, [r1, 0x4]
	movs r0, 0x5
	b _0811B25C
_0811B256:
	ldr r1, [r4]
_0811B258:
	movs r0, 0x6
	strb r0, [r1, 0x4]
_0811B25C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811B1B4

	thumb_func_start sub_811B264
sub_811B264: @ 811B264
	push {lr}
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0x4]
	strb r0, [r1, 0x8]
	ldr r0, [r2]
	ldrb r0, [r0]
	cmp r0, 0x11
	beq _0811B28E
	cmp r0, 0x11
	bgt _0811B284
	cmp r0, 0xF
	beq _0811B28A
	b _0811B29E
	.pool
_0811B284:
	cmp r0, 0x12
	beq _0811B296
	b _0811B29E
_0811B28A:
	movs r0, 0x19
	b _0811B2A0
_0811B28E:
	bl sub_811B3E4
	movs r0, 0x1C
	b _0811B2A0
_0811B296:
	bl sub_811B3E4
	movs r0, 0x1B
	b _0811B2A0
_0811B29E:
	movs r0, 0
_0811B2A0:
	pop {r1}
	bx r1
	thumb_func_end sub_811B264

	thumb_func_start sub_811B2A4
sub_811B2A4: @ 811B2A4
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	bx lr
	.pool
	thumb_func_end sub_811B2A4

	thumb_func_start sub_811B2B0
sub_811B2B0: @ 811B2B0
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x9]
	cmp r0, 0
	bne _0811B2DC
	bl sub_811B8E8
	lsls r0, 24
	lsrs r0, 24
	bl sub_811F3B8
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	movs r0, 0
	bl sub_811F548
	b _0811B2EC
	.pool
_0811B2DC:
	bl sub_811B908
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x1
	bl sub_811F548
_0811B2EC:
	bl sub_811F5B0
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0
	beq _0811B324
	ldr r2, =gUnknown_0203A118
	ldr r3, [r2]
	subs r0, 0x1
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	movs r1, 0
	strb r0, [r3, 0xF]
	ldr r0, [r2]
	strb r1, [r0, 0xE]
	ldr r0, [r2]
	strb r1, [r0, 0x10]
	ldr r0, [r2]
	strb r1, [r0, 0x11]
	ldr r1, [r2]
	movs r0, 0x3
	strb r0, [r1, 0x4]
	movs r0, 0xB
	b _0811B326
	.pool
_0811B324:
	movs r0, 0
_0811B326:
	pop {r1}
	bx r1
	thumb_func_end sub_811B2B0

	thumb_func_start sub_811B32C
sub_811B32C: @ 811B32C
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0
	strb r0, [r1, 0x4]
	movs r0, 0xA
	bx lr
	.pool
	thumb_func_end sub_811B32C

	thumb_func_start sub_811B33C
sub_811B33C: @ 811B33C
	push {lr}
	ldr r1, =gUnknown_0203A118
	ldr r0, [r1]
	movs r2, 0
	strb r2, [r0, 0xA]
	ldr r0, [r1]
	strb r2, [r0, 0xB]
	ldr r0, [r1]
	strb r2, [r0, 0xC]
	ldr r1, [r1]
	ldrb r0, [r1, 0x9]
	cmp r0, 0
	bne _0811B360
	movs r0, 0x1
	strb r0, [r1, 0x9]
	b _0811B362
	.pool
_0811B360:
	strb r2, [r1, 0x9]
_0811B362:
	movs r0, 0x17
	pop {r1}
	bx r1
	thumb_func_end sub_811B33C

	thumb_func_start sub_811B368
sub_811B368: @ 811B368
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x6
	beq _0811B388
	ldr r0, =0x0000ffff
	bl sub_811B488
	movs r0, 0x1
	b _0811B390
	.pool
_0811B388:
	movs r0, 0x20
	bl PlaySE
	movs r0, 0
_0811B390:
	pop {r1}
	bx r1
	thumb_func_end sub_811B368

	thumb_func_start sub_811B394
sub_811B394: @ 811B394
	push {r4,r5,lr}
	bl sub_811B940
	lsls r0, 16
	lsrs r0, 16
	bl sub_811F578
	lsls r0, 16
	lsrs r4, r0, 16
	adds r0, r4, 0
	bl sub_811BF88
	adds r5, r0, 0
	cmp r5, 0
	beq _0811B3BC
	movs r0, 0x20
	bl PlaySE
	movs r0, 0
	b _0811B3DC
_0811B3BC:
	adds r0, r4, 0
	bl sub_811B488
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r0, [r1]
	cmp r0, 0x6
	bne _0811B3D8
	movs r0, 0x9
	strb r0, [r1, 0x4]
	movs r0, 0xD
	b _0811B3DC
	.pool
_0811B3D8:
	strb r5, [r1, 0x4]
	movs r0, 0xC
_0811B3DC:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811B394

	thumb_func_start sub_811B3E4
sub_811B3E4: @ 811B3E4
	push {r4,r5,lr}
	movs r4, 0
	ldr r3, =gUnknown_0203A118
	ldr r0, [r3]
	ldrb r0, [r0, 0x7]
	cmp r4, r0
	bge _0811B40E
	adds r5, r3, 0
_0811B3F4:
	ldr r3, [r5]
	ldr r1, [r3, 0x38]
	lsls r2, r4, 1
	adds r1, r2, r1
	adds r0, r3, 0
	adds r0, 0x3C
	adds r0, r2
	ldrh r0, [r0]
	strh r0, [r1]
	adds r4, 0x1
	ldrb r3, [r3, 0x7]
	cmp r4, r3
	blt _0811B3F4
_0811B40E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811B3E4

	thumb_func_start sub_811B418
sub_811B418: @ 811B418
	push {r4,r5,lr}
	movs r3, 0
	ldr r2, =gUnknown_0203A118
	ldr r0, [r2]
	ldrb r0, [r0, 0x7]
	cmp r3, r0
	bge _0811B444
	adds r5, r2, 0
	ldr r0, =0x0000ffff
	adds r4, r0, 0
_0811B42C:
	ldr r2, [r5]
	lsls r0, r3, 1
	adds r1, r2, 0
	adds r1, 0x3C
	adds r1, r0
	ldrh r0, [r1]
	orrs r0, r4
	strh r0, [r1]
	adds r3, 0x1
	ldrb r2, [r2, 0x7]
	cmp r3, r2
	blt _0811B42C
_0811B444:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811B418

	thumb_func_start sub_811B454
sub_811B454: @ 811B454
	push {r4,r5,lr}
	movs r4, 0
	ldr r3, =gUnknown_0203A118
	ldr r0, [r3]
	ldrb r0, [r0, 0x7]
	cmp r4, r0
	bge _0811B47E
	adds r5, r3, 0
_0811B464:
	ldr r3, [r5]
	lsls r1, r4, 1
	adds r2, r3, 0
	adds r2, 0x3C
	adds r2, r1
	ldr r0, [r3, 0x38]
	adds r1, r0
	ldrh r0, [r1]
	strh r0, [r2]
	adds r4, 0x1
	ldrb r3, [r3, 0x7]
	cmp r4, r3
	blt _0811B464
_0811B47E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811B454

	thumb_func_start sub_811B488
sub_811B488: @ 811B488
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	bl sub_811B8C8
	lsls r0, 16
	ldr r1, =gUnknown_0203A118
	ldr r1, [r1]
	lsrs r0, 15
	adds r1, 0x3C
	adds r1, r0
	strh r4, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811B488

	thumb_func_start sub_811B4AC
sub_811B4AC: @ 811B4AC
	push {r4,r5,lr}
	movs r2, 0
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r1, [r0, 0x7]
	cmp r2, r1
	bcs _0811B4E2
	adds r5, r1, 0
	adds r4, r0, 0
	adds r4, 0x3C
	ldr r3, [r0, 0x38]
_0811B4C2:
	lsls r0, r2, 1
	adds r1, r4, r0
	adds r0, r3
	ldrh r1, [r1]
	ldrh r0, [r0]
	cmp r1, r0
	beq _0811B4D8
	movs r0, 0x1
	b _0811B4E4
	.pool
_0811B4D8:
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, r5
	bcc _0811B4C2
_0811B4E2:
	movs r0, 0
_0811B4E4:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811B4AC

	thumb_func_start sub_811B4EC
sub_811B4EC: @ 811B4EC
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0]
	subs r0, 0x11
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _0811B51C
	bl sub_811BD64
	cmp r0, 0
	bne _0811B50E
	bl sub_811BDB0
	cmp r0, 0
	beq _0811B518
_0811B50E:
	movs r0, 0
	b _0811B524
	.pool
_0811B518:
	movs r0, 0x1
	b _0811B524
_0811B51C:
	bl sub_811B4AC
	lsls r0, 24
	lsrs r0, 24
_0811B524:
	pop {r1}
	bx r1
	thumb_func_end sub_811B4EC

	thumb_func_start sub_811B528
sub_811B528: @ 811B528
	push {lr}
	adds r2, r0, 0
	ldr r0, =gUnknown_0203A118
	ldr r3, [r0]
	movs r1, 0xA
	ldrsb r1, [r3, r1]
	movs r0, 0x1
	negs r0, r0
	cmp r1, r0
	beq _0811B558
	ldrb r0, [r3, 0x9]
	cmp r0, 0
	bne _0811B550
	adds r0, r2, 0
	bl sub_811B568
	b _0811B55E
	.pool
_0811B550:
	adds r0, r2, 0
	bl sub_811B634
	b _0811B55E
_0811B558:
	adds r0, r2, 0
	bl sub_811B6C4
_0811B55E:
	lsls r0, 16
	lsrs r0, 16
	pop {r1}
	bx r1
	thumb_func_end sub_811B528

	thumb_func_start sub_811B568
sub_811B568: @ 811B568
	push {r4,lr}
	cmp r0, 0x1
	beq _0811B5DE
	cmp r0, 0x1
	bcc _0811B5FE
	cmp r0, 0x2
	beq _0811B57C
	cmp r0, 0x3
	beq _0811B5A4
	b _0811B62A
_0811B57C:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0xB
	ldrsb r0, [r1, r0]
	ldrb r3, [r1, 0xC]
	cmn r0, r3
	beq _0811B62A
	ldrb r2, [r1, 0xB]
	cmp r0, 0
	beq _0811B59C
	subs r0, r2, 0x1
	strb r0, [r1, 0xB]
_0811B594:
	movs r0, 0xF
	b _0811B62C
	.pool
_0811B59C:
	subs r0, r3, 0x1
	strb r0, [r1, 0xC]
	movs r0, 0x11
	b _0811B62C
_0811B5A4:
	ldr r0, =gUnknown_0203A118
	ldr r2, [r0]
	movs r1, 0xB
	ldrsb r1, [r2, r1]
	ldrb r3, [r2, 0xC]
	adds r1, r3
	ldrb r0, [r2, 0xD]
	subs r0, 0x1
	cmp r1, r0
	bge _0811B62A
	ldrb r1, [r2, 0xB]
	movs r0, 0xB
	ldrsb r0, [r2, r0]
	cmp r0, 0x2
	bgt _0811B5D0
	adds r0, r1, 0x1
	strb r0, [r2, 0xB]
	movs r4, 0xF
	b _0811B5D6
	.pool
_0811B5D0:
	adds r0, r3, 0x1
	strb r0, [r2, 0xC]
	movs r4, 0x10
_0811B5D6:
	bl sub_811B978
	adds r0, r4, 0
	b _0811B62C
_0811B5DE:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0xA]
	movs r0, 0xA
	ldrsb r0, [r1, r0]
	cmp r0, 0
	beq _0811B5F8
	subs r0, r2, 0x1
	strb r0, [r1, 0xA]
	b _0811B594
	.pool
_0811B5F8:
	bl sub_811B744
	b _0811B594
_0811B5FE:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0xA]
	movs r0, 0xA
	ldrsb r0, [r1, r0]
	cmp r0, 0
	bgt _0811B624
	adds r0, r2, 0x1
	strb r0, [r1, 0xA]
	bl sub_811B9C8
	lsls r0, 24
	cmp r0, 0
	beq _0811B594
	bl sub_811B744
	b _0811B594
	.pool
_0811B624:
	bl sub_811B744
	b _0811B594
_0811B62A:
	movs r0, 0
_0811B62C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811B568

	thumb_func_start sub_811B634
sub_811B634: @ 811B634
	push {lr}
	cmp r0, 0x1
	beq _0811B6A0
	cmp r0, 0x1
	bcc _0811B684
	cmp r0, 0x2
	beq _0811B64A
	cmp r0, 0x3
	beq _0811B66A
	movs r0, 0
	b _0811B6BC
_0811B64A:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0xB]
	movs r0, 0xB
	ldrsb r0, [r1, r0]
	cmp r0, 0
	ble _0811B660
	subs r0, r2, 0x1
	b _0811B662
	.pool
_0811B660:
	movs r0, 0x3
_0811B662:
	strb r0, [r1, 0xB]
	bl sub_811B978
	b _0811B6BA
_0811B66A:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0xB]
	movs r0, 0xB
	ldrsb r0, [r1, r0]
	cmp r0, 0x2
	bgt _0811B680
	adds r0, r2, 0x1
	b _0811B662
	.pool
_0811B680:
	movs r0, 0
	b _0811B662
_0811B684:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r0, [r1, 0xA]
	adds r0, 0x1
	strb r0, [r1, 0xA]
	bl sub_811B9C8
	lsls r0, 24
	cmp r0, 0
	beq _0811B6BA
	b _0811B6B6
	.pool
_0811B6A0:
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	ldrb r0, [r1, 0xA]
	subs r0, 0x1
	strb r0, [r1, 0xA]
	ldr r0, [r2]
	ldrb r0, [r0, 0xA]
	lsls r0, 24
	asrs r0, 24
	cmp r0, 0
	bge _0811B6BA
_0811B6B6:
	bl sub_811B744
_0811B6BA:
	movs r0, 0xF
_0811B6BC:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811B634

	thumb_func_start sub_811B6C4
sub_811B6C4: @ 811B6C4
	push {lr}
	adds r2, r0, 0
	cmp r2, 0x1
	beq _0811B714
	cmp r2, 0x1
	bcc _0811B728
	cmp r2, 0x2
	beq _0811B6DC
	cmp r2, 0x3
	beq _0811B6F8
	movs r0, 0
	b _0811B73A
_0811B6DC:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r3, [r1, 0xB]
	movs r0, 0xB
	ldrsb r0, [r1, r0]
	cmp r0, 0
	beq _0811B6F4
	subs r0, r3, 0x1
	b _0811B736
	.pool
_0811B6F4:
	strb r2, [r1, 0xB]
	b _0811B738
_0811B6F8:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0xB]
	movs r0, 0xB
	ldrsb r0, [r1, r0]
	cmp r0, 0x1
	bgt _0811B710
	adds r0, r2, 0x1
	b _0811B736
	.pool
_0811B710:
	movs r0, 0
	b _0811B736
_0811B714:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r0, [r1, 0xB]
	adds r0, 0x1
	strb r0, [r1, 0xB]
	bl sub_811B768
	b _0811B738
	.pool
_0811B728:
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	movs r0, 0
	strb r0, [r1, 0xA]
	ldr r1, [r2]
	ldrb r0, [r1, 0xB]
	adds r0, 0x1
_0811B736:
	strb r0, [r1, 0xB]
_0811B738:
	movs r0, 0xF
_0811B73A:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811B6C4

	thumb_func_start sub_811B744
sub_811B744: @ 811B744
	push {lr}
	ldr r2, =gUnknown_0203A118
	ldr r1, [r2]
	movs r0, 0xFF
	strb r0, [r1, 0xA]
	ldr r2, [r2]
	ldrb r1, [r2, 0xB]
	movs r0, 0xB
	ldrsb r0, [r2, r0]
	cmp r0, 0
	beq _0811B75E
	subs r0, r1, 0x1
	strb r0, [r2, 0xB]
_0811B75E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811B744

	thumb_func_start sub_811B768
sub_811B768: @ 811B768
	push {r4,lr}
	ldr r4, =gUnknown_0203A118
	ldr r1, [r4]
	ldrb r0, [r1, 0x9]
	cmp r0, 0
	bne _0811B784
	movs r0, 0x1
	strb r0, [r1, 0xA]
	bl sub_811B978
	b _0811B78E
	.pool
_0811B784:
	ldrb r0, [r1, 0xB]
	bl sub_811B960
	ldr r1, [r4]
	strb r0, [r1, 0xA]
_0811B78E:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811B768

	thumb_func_start sub_811B794
sub_811B794: @ 811B794
	push {r4,lr}
	cmp r0, 0x5
	bls _0811B79C
	b _0811B8C0
_0811B79C:
	lsls r0, 2
	ldr r1, =_0811B7AC
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811B7AC:
	.4byte _0811B848
	.4byte _0811B826
	.4byte _0811B7C4
	.4byte _0811B7F0
	.4byte _0811B870
	.4byte _0811B890
_0811B7C4:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0x11
	ldrsb r0, [r1, r0]
	ldrb r3, [r1, 0xE]
	adds r0, r3
	cmp r0, 0
	bgt _0811B7D6
	b _0811B8C0
_0811B7D6:
	ldrb r2, [r1, 0x11]
	movs r0, 0x11
	ldrsb r0, [r1, r0]
	cmp r0, 0
	ble _0811B7E8
	subs r0, r2, 0x1
	b _0811B80E
	.pool
_0811B7E8:
	subs r0, r3, 0x1
	strb r0, [r1, 0xE]
	movs r4, 0x13
	b _0811B81E
_0811B7F0:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0x11
	ldrsb r0, [r1, r0]
	ldrb r3, [r1, 0xE]
	adds r0, r3
	ldrb r2, [r1, 0xF]
	cmp r0, r2
	bge _0811B8C0
	ldrb r2, [r1, 0x11]
	movs r0, 0x11
	ldrsb r0, [r1, r0]
	cmp r0, 0x2
	bgt _0811B818
	adds r0, r2, 0x1
_0811B80E:
	strb r0, [r1, 0x11]
	movs r4, 0x12
	b _0811B81E
	.pool
_0811B818:
	adds r0, r3, 0x1
	strb r0, [r1, 0xE]
	movs r4, 0x14
_0811B81E:
	bl sub_811B9A0
	adds r0, r4, 0
	b _0811B8C2
_0811B826:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0x10]
	movs r0, 0x10
	ldrsb r0, [r1, r0]
	cmp r0, 0
	ble _0811B83C
	subs r0, r2, 0x1
	b _0811B83E
	.pool
_0811B83C:
	movs r0, 0x1
_0811B83E:
	strb r0, [r1, 0x10]
	bl sub_811B9A0
_0811B844:
	movs r0, 0x12
	b _0811B8C2
_0811B848:
	ldr r4, =gUnknown_0203A118
	ldr r1, [r4]
	ldrb r2, [r1, 0x10]
	movs r0, 0x10
	ldrsb r0, [r1, r0]
	cmp r0, 0
	bgt _0811B866
	adds r0, r2, 0x1
	strb r0, [r1, 0x10]
	bl sub_811BA1C
	lsls r0, 24
	cmp r0, 0
	beq _0811B844
	ldr r1, [r4]
_0811B866:
	movs r0, 0
	strb r0, [r1, 0x10]
	b _0811B844
	.pool
_0811B870:
	ldr r0, =gUnknown_0203A118
	ldr r2, [r0]
	ldrb r0, [r2, 0xE]
	adds r1, r0, 0
	cmp r1, 0
	beq _0811B8C0
	cmp r1, 0x3
	bls _0811B888
	subs r0, 0x4
	b _0811B88A
	.pool
_0811B888:
	movs r0, 0
_0811B88A:
	strb r0, [r2, 0xE]
	movs r0, 0x15
	b _0811B8C2
_0811B890:
	ldr r3, =gUnknown_0203A118
	ldr r1, [r3]
	ldrb r2, [r1, 0xE]
	ldrb r0, [r1, 0xF]
	subs r0, 0x4
	cmp r2, r0
	bgt _0811B8C0
	adds r0, r2, 0x4
	strb r0, [r1, 0xE]
	ldr r2, [r3]
	ldrb r1, [r2, 0xE]
	ldrb r3, [r2, 0xF]
	subs r0, r3, 0x3
	cmp r1, r0
	ble _0811B8B4
	adds r0, r3, 0
	adds r0, 0xFD
	strb r0, [r2, 0xE]
_0811B8B4:
	bl sub_811B9A0
	movs r0, 0x16
	b _0811B8C2
	.pool
_0811B8C0:
	movs r0, 0
_0811B8C2:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811B794

	thumb_func_start sub_811B8C8
sub_811B8C8: @ 811B8C8
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	movs r2, 0x6
	ldrsb r2, [r0, r2]
	ldrb r1, [r0, 0x2]
	muls r1, r2
	ldrb r0, [r0, 0x5]
	lsls r0, 24
	asrs r0, 24
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bx lr
	.pool
	thumb_func_end sub_811B8C8

	thumb_func_start sub_811B8E8
sub_811B8E8: @ 811B8E8
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	movs r1, 0xB
	ldrsb r1, [r0, r1]
	ldrb r2, [r0, 0xC]
	adds r1, r2
	lsls r1, 1
	ldrb r0, [r0, 0xA]
	lsls r0, 24
	asrs r0, 24
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bx lr
	.pool
	thumb_func_end sub_811B8E8

	thumb_func_start sub_811B908
sub_811B908: @ 811B908
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r0, [r1, 0xA]
	movs r3, 0
	cmp r0, 0x6
	bhi _0811B91A
	movs r3, 0xA
	ldrsb r3, [r1, r3]
_0811B91A:
	ldrb r0, [r1, 0xB]
	movs r2, 0
	cmp r0, 0x3
	bhi _0811B926
	movs r2, 0xB
	ldrsb r2, [r1, r2]
_0811B926:
	ldr r0, =gUnknown_08597748
	lsls r1, r2, 3
	subs r1, r2
	adds r1, r3, r1
	adds r1, r0
	ldrb r0, [r1]
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811B908

	thumb_func_start sub_811B940
sub_811B940: @ 811B940
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	movs r1, 0x11
	ldrsb r1, [r0, r1]
	ldrb r2, [r0, 0xE]
	adds r1, r2
	lsls r1, 1
	ldrb r0, [r0, 0x10]
	lsls r0, 24
	asrs r0, 24
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bx lr
	.pool
	thumb_func_end sub_811B940

	thumb_func_start sub_811B960
sub_811B960: @ 811B960
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0
	beq _0811B96E
	cmp r0, 0x1
	beq _0811B972
_0811B96E:
	movs r0, 0x6
	b _0811B974
_0811B972:
	movs r0, 0x5
_0811B974:
	pop {r1}
	bx r1
	thumb_func_end sub_811B960

	thumb_func_start sub_811B978
sub_811B978: @ 811B978
	push {lr}
	b _0811B98E
_0811B97C:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0xA]
	movs r0, 0xA
	ldrsb r0, [r1, r0]
	cmp r0, 0
	beq _0811B998
	subs r0, r2, 0x1
	strb r0, [r1, 0xA]
_0811B98E:
	bl sub_811B9C8
	lsls r0, 24
	cmp r0, 0
	bne _0811B97C
_0811B998:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811B978

	thumb_func_start sub_811B9A0
sub_811B9A0: @ 811B9A0
	push {lr}
	b _0811B9B6
_0811B9A4:
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r2, [r1, 0x10]
	movs r0, 0x10
	ldrsb r0, [r1, r0]
	cmp r0, 0
	beq _0811B9C0
	subs r0, r2, 0x1
	strb r0, [r1, 0x10]
_0811B9B6:
	bl sub_811BA1C
	lsls r0, 24
	cmp r0, 0
	bne _0811B9A4
_0811B9C0:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811B9A0

	thumb_func_start sub_811B9C8
sub_811B9C8: @ 811B9C8
	push {r4,lr}
	ldr r4, =gUnknown_0203A118
	ldr r1, [r4]
	ldrb r0, [r1, 0x9]
	cmp r0, 0
	bne _0811B9F8
	bl sub_811B8E8
	adds r4, r0, 0
	bl sub_811F3AC
	movs r1, 0
	lsls r0, 24
	lsls r4, 16
	lsrs r4, 16
	lsrs r0, 24
	cmp r4, r0
	bcc _0811B9EE
	movs r1, 0x1
_0811B9EE:
	adds r0, r1, 0
	b _0811BA14
	.pool
_0811B9F8:
	ldrb r0, [r1, 0xB]
	bl sub_811B960
	movs r2, 0
	ldr r1, [r4]
	ldrb r1, [r1, 0xA]
	lsls r1, 24
	asrs r1, 24
	lsls r0, 24
	lsrs r0, 24
	cmp r1, r0
	ble _0811BA12
	movs r2, 0x1
_0811BA12:
	adds r0, r2, 0
_0811BA14:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811B9C8

	thumb_func_start sub_811BA1C
sub_811BA1C: @ 811BA1C
	push {r4,lr}
	bl sub_811B940
	adds r4, r0, 0
	bl sub_811F5B0
	movs r1, 0
	lsls r4, 16
	lsls r0, 16
	cmp r4, r0
	bcc _0811BA34
	movs r1, 0x1
_0811BA34:
	adds r0, r1, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811BA1C

	thumb_func_start sub_811BA3C
sub_811BA3C: @ 811BA3C
	ldr r2, =gUnknown_08597550
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r1, [r0, 0x1]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrb r0, [r0, 0x3]
	lsrs r0, 7
	bx lr
	.pool
	thumb_func_end sub_811BA3C

	thumb_func_start sub_811BA5C
sub_811BA5C: @ 811BA5C
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_811BA5C

	thumb_func_start sub_811BA68
sub_811BA68: @ 811BA68
	ldr r2, =gUnknown_08597550
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r1, [r0, 0x1]
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 3
	adds r0, r2
	ldrb r0, [r0, 0x3]
	lsls r0, 25
	lsrs r0, 25
	bx lr
	.pool
	thumb_func_end sub_811BA68

	thumb_func_start sub_811BA88
sub_811BA88: @ 811BA88
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldr r0, [r0, 0x34]
	bx lr
	.pool
	thumb_func_end sub_811BA88

	thumb_func_start sub_811BA94
sub_811BA94: @ 811BA94
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	adds r0, 0x3C
	bx lr
	.pool
	thumb_func_end sub_811BA94

	thumb_func_start sub_811BAA0
sub_811BAA0: @ 811BAA0
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x3]
	bx lr
	.pool
	thumb_func_end sub_811BAA0

	thumb_func_start sub_811BAAC
sub_811BAAC: @ 811BAAC
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x2]
	bx lr
	.pool
	thumb_func_end sub_811BAAC

	thumb_func_start sub_811BAB8
sub_811BAB8: @ 811BAB8
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x5]
	bx lr
	.pool
	thumb_func_end sub_811BAB8

	thumb_func_start sub_811BAC4
sub_811BAC4: @ 811BAC4
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x6]
	bx lr
	.pool
	thumb_func_end sub_811BAC4

	thumb_func_start sub_811BAD0
sub_811BAD0: @ 811BAD0
	push {r4,r5,lr}
	ldr r4, =gUnknown_08597550
	ldr r2, =gUnknown_0203A118
	ldr r5, [r2]
	ldrb r3, [r5, 0x1]
	lsls r2, r3, 1
	adds r2, r3
	lsls r2, 3
	adds r3, r4, 0
	adds r3, 0x8
	adds r2, r3
	ldr r2, [r2]
	str r2, [r0]
	ldrb r2, [r5, 0x1]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 3
	adds r4, 0xC
	adds r0, r4
	ldr r0, [r0]
	str r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811BAD0

	thumb_func_start sub_811BB08
sub_811BB08: @ 811BB08
	push {r4,r5,lr}
	ldr r4, =gUnknown_08597550
	ldr r2, =gUnknown_0203A118
	ldr r5, [r2]
	ldrb r3, [r5, 0x1]
	lsls r2, r3, 1
	adds r2, r3
	lsls r2, 3
	adds r3, r4, 0
	adds r3, 0x10
	adds r2, r3
	ldr r2, [r2]
	str r2, [r0]
	ldrb r2, [r5, 0x1]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 3
	adds r4, 0x14
	adds r0, r4
	ldr r0, [r0]
	str r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811BB08

	thumb_func_start sub_811BB40
sub_811BB40: @ 811BB40
	push {lr}
	adds r2, r0, 0
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x4
	bne _0811BB5C
	ldr r0, =gText_StopGivingPkmnMail
	b _0811BB7A
	.pool
_0811BB5C:
	cmp r0, 0x4
	blt _0811BB78
	cmp r0, 0x10
	bgt _0811BB78
	cmp r0, 0xF
	blt _0811BB78
	ldr r0, =gText_LikeToQuitQuiz
	str r0, [r2]
	ldr r0, =gText_ChallengeQuestionMark
	b _0811BB7E
	.pool
_0811BB78:
	ldr r0, =gText_QuitEditing
_0811BB7A:
	str r0, [r2]
	movs r0, 0
_0811BB7E:
	str r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811BB40

	thumb_func_start sub_811BB88
sub_811BB88: @ 811BB88
	ldr r2, =gText_AllTextBeingEditedWill
	str r2, [r0]
	ldr r0, =gText_BeDeletedThatOkay
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_811BB88

	thumb_func_start sub_811BB9C
sub_811BB9C: @ 811BB9C
	ldr r2, =gUnknown_0203A118
	ldr r3, [r2]
	ldrb r2, [r3, 0xA]
	strb r2, [r0]
	ldrb r0, [r3, 0xB]
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_811BB9C

	thumb_func_start sub_811BBB0
sub_811BBB0: @ 811BBB0
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x9]
	bx lr
	.pool
	thumb_func_end sub_811BBB0

	thumb_func_start sub_811BBBC
sub_811BBBC: @ 811BBBC
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0xC]
	bx lr
	.pool
	thumb_func_end sub_811BBBC

	thumb_func_start sub_811BBC8
sub_811BBC8: @ 811BBC8
	ldr r2, =gUnknown_0203A118
	ldr r3, [r2]
	ldrb r2, [r3, 0x10]
	strb r2, [r0]
	ldrb r0, [r3, 0x11]
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_811BBC8

	thumb_func_start sub_811BBDC
sub_811BBDC: @ 811BBDC
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0xE]
	bx lr
	.pool
	thumb_func_end sub_811BBDC

	thumb_func_start sub_811BBE8
sub_811BBE8: @ 811BBE8
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0xF]
	bx lr
	.pool
	thumb_func_end sub_811BBE8

	thumb_func_start sub_811BBF4
sub_811BBF4: @ 811BBF4
	movs r0, 0
	bx lr
	thumb_func_end sub_811BBF4

	thumb_func_start sub_811BBF8
sub_811BBF8: @ 811BBF8
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	ldrb r0, [r1, 0x4]
	cmp r0, 0x2
	beq _0811BC10
	cmp r0, 0x3
	beq _0811BC1A
	b _0811BC24
	.pool
_0811BC10:
	ldrb r0, [r1, 0x9]
	cmp r0, 0
	bne _0811BC24
	ldrb r0, [r1, 0xC]
	b _0811BC1C
_0811BC1A:
	ldrb r0, [r1, 0xE]
_0811BC1C:
	cmp r0, 0
	beq _0811BC24
	movs r0, 0x1
	b _0811BC26
_0811BC24:
	movs r0, 0
_0811BC26:
	pop {r1}
	bx r1
	thumb_func_end sub_811BBF8

	thumb_func_start sub_811BC2C
sub_811BC2C: @ 811BC2C
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r2, [r0]
	ldrb r0, [r2, 0x4]
	cmp r0, 0x2
	beq _0811BC44
	cmp r0, 0x3
	beq _0811BC5A
	b _0811BC68
	.pool
_0811BC44:
	ldrb r0, [r2, 0x9]
	cmp r0, 0
	bne _0811BC68
	ldrb r1, [r2, 0xC]
	adds r1, 0x4
	ldrb r0, [r2, 0xD]
	subs r0, 0x1
	cmp r1, r0
	bgt _0811BC68
	movs r0, 0x1
	b _0811BC6A
_0811BC5A:
	ldrb r0, [r2, 0xE]
	adds r0, 0x4
	ldrb r2, [r2, 0xF]
	cmp r0, r2
	bgt _0811BC68
	movs r0, 0x1
	b _0811BC6A
_0811BC68:
	movs r0, 0
_0811BC6A:
	pop {r1}
	bx r1
	thumb_func_end sub_811BC2C

	thumb_func_start sub_811BC70
sub_811BC70: @ 811BC70
	push {lr}
	bl sub_811BA3C
	pop {r1}
	bx r1
	thumb_func_end sub_811BC70

	thumb_func_start sub_811BC7C
sub_811BC7C: @ 811BC7C
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r1, 24
	lsrs r3, r1, 24
	movs r2, 0
	cmp r2, r3
	bcs _0811BCB2
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	adds r4, r0, 0
	adds r4, 0x3C
_0811BC92:
	lsls r0, r2, 1
	adds r1, r0, r5
	adds r0, r4, r0
	ldrh r1, [r1]
	ldrh r0, [r0]
	cmp r1, r0
	beq _0811BCA8
	movs r0, 0x1
	b _0811BCB4
	.pool
_0811BCA8:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, r3
	bcc _0811BC92
_0811BCB2:
	movs r0, 0
_0811BCB4:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811BC7C

	thumb_func_start sub_811BCBC
sub_811BCBC: @ 811BCBC
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0, 0x12]
	bx lr
	.pool
	thumb_func_end sub_811BCBC

	thumb_func_start sub_811BCC8
sub_811BCC8: @ 811BCC8
	push {lr}
	lsls r0, 24
	lsrs r3, r0, 24
	movs r1, 0
	ldr r2, =gUnknown_08597550
_0811BCD2:
	ldrb r0, [r2]
	cmp r0, r3
	bne _0811BCE4
	lsls r0, r1, 24
	lsrs r0, 24
	b _0811BCEE
	.pool
_0811BCE4:
	adds r2, 0x18
	adds r1, 0x1
	cmp r1, 0x14
	bls _0811BCD2
	movs r0, 0
_0811BCEE:
	pop {r1}
	bx r1
	thumb_func_end sub_811BCC8

	thumb_func_start sub_811BCF4
sub_811BCF4: @ 811BCF4
	push {r4,lr}
	movs r2, 0
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r1, [r0, 0x7]
	cmp r2, r1
	bge _0811BD24
	ldr r4, =0x0000ffff
	adds r3, r1, 0
	adds r1, r0, 0
	adds r1, 0x3C
_0811BD0A:
	ldrh r0, [r1]
	cmp r0, r4
	beq _0811BD1C
	movs r0, 0
	b _0811BD26
	.pool
_0811BD1C:
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, r3
	blt _0811BD0A
_0811BD24:
	movs r0, 0x1
_0811BD26:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811BCF4

	thumb_func_start sub_811BD2C
sub_811BD2C: @ 811BD2C
	push {r4,lr}
	movs r2, 0
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r1, [r0, 0x7]
	cmp r2, r1
	bge _0811BD5C
	ldr r4, =0x0000ffff
	adds r3, r1, 0
	adds r1, r0, 0
	adds r1, 0x3C
_0811BD42:
	ldrh r0, [r1]
	cmp r0, r4
	bne _0811BD54
	movs r0, 0
	b _0811BD5E
	.pool
_0811BD54:
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, r3
	blt _0811BD42
_0811BD5C:
	movs r0, 0x1
_0811BD5E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811BD2C

	thumb_func_start sub_811BD64
sub_811BD64: @ 811BD64
	push {r4,lr}
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x11
	bne _0811BD80
	bl sub_811BCF4
	b _0811BD9C
	.pool
_0811BD7C:
	movs r0, 0
	b _0811BD9C
_0811BD80:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	movs r2, 0
	ldr r3, =0x0000ffff
	ldr r4, =0x00003b5a
	adds r1, r0, r4
_0811BD8C:
	ldrh r0, [r1]
	cmp r0, r3
	bne _0811BD7C
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, 0x8
	ble _0811BD8C
	movs r0, 0x1
_0811BD9C:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811BD64

	thumb_func_start sub_811BDB0
sub_811BDB0: @ 811BDB0
	push {lr}
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x12
	bne _0811BDC8
	bl sub_811BCF4
	b _0811BDDE
	.pool
_0811BDC8:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003b58
	adds r0, r1
	movs r2, 0
	ldrh r1, [r0, 0x14]
	ldr r0, =0x0000ffff
	cmp r1, r0
	bne _0811BDDC
	movs r2, 0x1
_0811BDDC:
	adds r0, r2, 0
_0811BDDE:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811BDB0

	thumb_func_start sub_811BDF0
sub_811BDF0: @ 811BDF0
	push {r4-r6,lr}
	sub sp, 0x20
	adds r6, r0, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r4, [r0]
	bl UnkTextUtil_Reset
	ldr r0, =0x00003b70
	adds r5, r4, r0
	adds r0, r5, 0
	bl StringLength
	lsls r0, 16
	cmp r0, 0
	beq _0811BE34
	ldr r1, =0x00003b85
	adds r0, r4, r1
	ldrb r2, [r0]
	mov r0, sp
	adds r1, r5, 0
	bl TVShowConvertInternationalString
	movs r0, 0
	mov r1, sp
	bl UnkTextUtil_SetPtrI
	b _0811BE3C
	.pool
_0811BE34:
	ldr r1, =gText_Lady
	movs r0, 0
	bl UnkTextUtil_SetPtrI
_0811BE3C:
	ldr r1, =gText_F700sQuiz
	adds r0, r6, 0
	bl UnkTextUtil_StringExpandPlaceholders
	add sp, 0x20
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811BDF0

	thumb_func_start sub_811BE54
sub_811BE54: @ 811BE54
	push {r4,r5,lr}
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
	adds r4, r0, 0
	adds r4, 0x3C
	ldr r2, =gStringVar2
	movs r5, 0
	b _0811BE86
	.pool
_0811BE6C:
	ldrh r1, [r4]
	adds r0, r2, 0
	movs r2, 0
	bl CopyEasyChatWordPadded
	adds r2, r0, 0
	movs r0, 0
	strb r0, [r2]
	adds r2, 0x1
	adds r4, 0x2
	adds r5, 0x1
	ldr r0, =gUnknown_0203A118
	ldr r0, [r0]
_0811BE86:
	ldrb r0, [r0, 0x7]
	cmp r5, r0
	blt _0811BE6C
	subs r2, 0x1
	movs r0, 0xFF
	strb r0, [r2]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811BE54

	thumb_func_start sub_811BE9C
sub_811BE9C: @ 811BE9C
	push {r4,r5,lr}
	ldr r5, =gUnknown_0203A118
	ldr r0, [r5]
	ldrb r0, [r0]
	cmp r0, 0x9
	beq _0811BEF0
	cmp r0, 0x9
	bgt _0811BEB8
	cmp r0, 0
	beq _0811BEC2
	b _0811BF14
	.pool
_0811BEB8:
	cmp r0, 0xD
	beq _0811BF0C
	cmp r0, 0x14
	beq _0811BED0
	b _0811BF14
_0811BEC2:
	ldr r0, =0x00000865
	bl FlagSet
	b _0811BF14
	.pool
_0811BED0:
	bl sub_811BF20
	adds r1, r0, 0
	cmp r1, 0
	beq _0811BEE4
	ldr r1, =gSpecialVar_0x8004
	movs r0, 0x2
	b _0811BF12
	.pool
_0811BEE4:
	ldr r0, =gSpecialVar_0x8004
	strh r1, [r0]
	b _0811BF14
	.pool
_0811BEF0:
	bl sub_811BE54
	ldr r4, =gSpecialVar_0x8004
	ldr r0, [r5]
	adds r0, 0x3C
	bl sub_81226D8
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4]
	b _0811BF14
	.pool
_0811BF0C:
	bl sub_811BF40
	ldr r1, =gSpecialVar_0x8004
_0811BF12:
	strh r0, [r1]
_0811BF14:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811BE9C

	thumb_func_start sub_811BF20
sub_811BF20: @ 811BF20
	push {lr}
	ldr r0, =gUnknown_08597764
	movs r1, 0x4
	bl sub_811BC7C
	movs r1, 0
	lsls r0, 24
	cmp r0, 0
	bne _0811BF34
	movs r1, 0x1
_0811BF34:
	adds r0, r1, 0
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811BF20

	thumb_func_start sub_811BF40
sub_811BF40: @ 811BF40
	push {r4,r5,lr}
	movs r4, 0
	movs r5, 0x80
	lsls r5, 9
_0811BF48:
	lsls r0, r4, 2
	ldr r1, =gUnknown_0859776C
	adds r0, r1
	movs r1, 0x2
	bl sub_811BC7C
	lsls r0, 24
	cmp r0, 0
	bne _0811BF64
	lsrs r0, r5, 16
	b _0811BF72
	.pool
_0811BF64:
	movs r0, 0x80
	lsls r0, 9
	adds r5, r0
	adds r4, 0x1
	cmp r4, 0x4
	ble _0811BF48
	movs r0, 0
_0811BF72:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811BF40

	thumb_func_start sub_811BF78
sub_811BF78: @ 811BF78
	ldr r0, =gUnknown_0203A118
	ldr r1, [r0]
	movs r0, 0
	strb r0, [r1, 0x13]
	bx lr
	.pool
	thumb_func_end sub_811BF78

	thumb_func_start sub_811BF88
sub_811BF88: @ 811BF88
	movs r0, 0
	bx lr
	thumb_func_end sub_811BF88

	thumb_func_start sub_811BF8C
sub_811BF8C: @ 811BF8C
	push {lr}
	bl sub_811CE94
	lsls r0, 24
	cmp r0, 0
	beq _0811BF9C
	movs r0, 0x1
	b _0811BF9E
_0811BF9C:
	movs r0, 0
_0811BF9E:
	pop {r1}
	bx r1
	thumb_func_end sub_811BF8C

	thumb_func_start sub_811BFA4
sub_811BFA4: @ 811BFA4
	push {r4,lr}
	sub sp, 0x8
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x5
	bls _0811BFB4
	b _0811C120
_0811BFB4:
	lsls r0, 2
	ldr r1, =_0811BFC8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811BFC8:
	.4byte _0811BFE0
	.4byte _0811C044
	.4byte _0811C090
	.4byte _0811C0AC
	.4byte _0811C0BE
	.4byte _0811C0D4
_0811BFE0:
	movs r0, 0
	bl ResetBgsAndClearDma3BusyFlags
	ldr r1, =gUnknown_08597C54
	movs r0, 0
	movs r2, 0x4
	bl InitBgsFromTemplates
	ldr r4, =gUnknown_0203A11C
	ldr r1, [r4]
	movs r0, 0xB0
	lsls r0, 4
	adds r1, r0
	movs r0, 0x3
	bl SetBgTilemapBuffer
	ldr r1, [r4]
	movs r0, 0xC0
	lsls r0, 2
	adds r1, r0
	movs r0, 0x1
	bl SetBgTilemapBuffer
	ldr r0, =gUnknown_08597C64
	bl InitWindows
	bl DeactivateAllTextPrinters
	bl sub_811CF64
	bl sub_811CF04
	movs r0, 0
	str r0, [sp, 0x4]
	movs r1, 0xE0
	lsls r1, 19
	ldr r2, =0x01000100
	add r0, sp, 0x4
	bl CpuFastSet
	b _0811C124
	.pool
_0811C044:
	ldr r1, =gEasyChatWindow_Gfx
	movs r0, 0
	str r0, [sp]
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl copy_decompressed_tile_data_to_vram_autofree
	ldr r1, =gEasyChatWindow_Tilemap
	movs r0, 0x3
	movs r2, 0
	movs r3, 0
	bl CopyToBgTilemapBuffer
	bl sub_811D60C
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xC0
	lsls r1, 2
	adds r0, r1
	bl sub_811D424
	bl sub_811D230
	bl sub_811E948
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	b _0811C124
	.pool
_0811C090:
	ldr r1, =gUnknown_08597B54
	movs r0, 0
	str r0, [sp]
	movs r0, 0x1
	movs r2, 0
	movs r3, 0
	bl copy_decompressed_tile_data_to_vram_autofree
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	b _0811C124
	.pool
_0811C0AC:
	bl sub_811CFCC
	bl sub_811D0BC
	bl sub_811D2C8
	bl sub_811D684
	b _0811C124
_0811C0BE:
	bl sub_811DE90
	bl sub_811BA5C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x10
	beq _0811C124
	bl sub_811DEC4
	b _0811C124
_0811C0D4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C12E
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl sub_811DE5C
	movs r0, 0x48
	movs r1, 0x3F
	bl SetGpuReg
	movs r0, 0x4A
	movs r1, 0x3B
	bl SetGpuReg
	movs r0, 0x3
	bl ShowBg
	movs r0, 0x1
	bl ShowBg
	movs r0, 0x2
	bl ShowBg
	movs r0, 0
	bl ShowBg
	bl sub_811E5D4
	bl sub_811E720
	bl sub_811E828
	b _0811C124
_0811C120:
	movs r0, 0
	b _0811C130
_0811C124:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C12E:
	movs r0, 0x1
_0811C130:
	add sp, 0x8
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811BFA4

	thumb_func_start sub_811C13C
sub_811C13C: @ 811C13C
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	cmp r0, 0
	beq _0811C14E
	bl Free
	movs r0, 0
	str r0, [r4]
_0811C14E:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811C13C

	thumb_func_start sub_811C158
sub_811C158: @ 811C158
	push {lr}
	ldr r1, =gUnknown_0203A11C
	ldr r1, [r1]
	movs r2, 0
	strh r0, [r1, 0x4]
	strh r2, [r1]
	bl sub_811C170
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811C158

	thumb_func_start sub_811C170
sub_811C170: @ 811C170
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0, 0x4]
	cmp r0, 0x22
	bls _0811C17E
	b _0811C2CE
_0811C17E:
	lsls r0, 2
	ldr r1, =_0811C190
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811C190:
	.4byte _0811C2CE
	.4byte _0811C21C
	.4byte _0811C222
	.4byte _0811C228
	.4byte _0811C22E
	.4byte _0811C234
	.4byte _0811C23A
	.4byte _0811C240
	.4byte _0811C246
	.4byte _0811C24C
	.4byte _0811C252
	.4byte _0811C258
	.4byte _0811C25E
	.4byte _0811C264
	.4byte _0811C26A
	.4byte _0811C270
	.4byte _0811C276
	.4byte _0811C27C
	.4byte _0811C282
	.4byte _0811C288
	.4byte _0811C28E
	.4byte _0811C294
	.4byte _0811C29A
	.4byte _0811C2A0
	.4byte _0811C2CE
	.4byte _0811C2CE
	.4byte _0811C2CE
	.4byte _0811C2CE
	.4byte _0811C2CE
	.4byte _0811C2A6
	.4byte _0811C2AC
	.4byte _0811C2B2
	.4byte _0811C2B8
	.4byte _0811C2BE
	.4byte _0811C2C4
_0811C21C:
	bl sub_811C2D4
	b _0811C2C8
_0811C222:
	bl sub_811C30C
	b _0811C2C8
_0811C228:
	bl sub_811C3E4
	b _0811C2C8
_0811C22E:
	bl sub_811C48C
	b _0811C2C8
_0811C234:
	bl sub_811C404
	b _0811C2C8
_0811C23A:
	bl sub_811C448
	b _0811C2C8
_0811C240:
	bl sub_811C4D0
	b _0811C2C8
_0811C246:
	bl sub_811C518
	b _0811C2C8
_0811C24C:
	bl sub_811C554
	b _0811C2C8
_0811C252:
	bl sub_811C620
	b _0811C2C8
_0811C258:
	bl sub_811C830
	b _0811C2C8
_0811C25E:
	bl sub_811C8F0
	b _0811C2C8
_0811C264:
	bl sub_811C99C
	b _0811C2C8
_0811C26A:
	bl sub_811CA5C
	b _0811C2C8
_0811C270:
	bl sub_811C780
	b _0811C2C8
_0811C276:
	bl sub_811C78C
	b _0811C2C8
_0811C27C:
	bl sub_811C7D4
	b _0811C2C8
_0811C282:
	bl sub_811CB18
	b _0811C2C8
_0811C288:
	bl sub_811CB98
	b _0811C2C8
_0811C28E:
	bl sub_811CB24
	b _0811C2C8
_0811C294:
	bl sub_811CC90
	b _0811C2C8
_0811C29A:
	bl sub_811CC08
	b _0811C2C8
_0811C2A0:
	bl sub_811C6C0
	b _0811C2C8
_0811C2A6:
	bl sub_811CD14
	b _0811C2C8
_0811C2AC:
	bl sub_811CD54
	b _0811C2C8
_0811C2B2:
	bl sub_811CD94
	b _0811C2C8
_0811C2B8:
	bl sub_811CDD4
	b _0811C2C8
_0811C2BE:
	bl sub_811CE14
	b _0811C2C8
_0811C2C4:
	bl sub_811CE54
_0811C2C8:
	lsls r0, 24
	lsrs r0, 24
	b _0811C2D0
_0811C2CE:
	movs r0, 0
_0811C2D0:
	pop {r1}
	bx r1
	thumb_func_end sub_811C170

	thumb_func_start sub_811C2D4
sub_811C2D4: @ 811C2D4
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811C2EC
	cmp r0, 0x1
	beq _0811C2FA
	b _0811C304
	.pool
_0811C2EC:
	bl sub_811D2C8
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C304
_0811C2FA:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811C306
_0811C304:
	movs r0, 0x1
_0811C306:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C2D4

	thumb_func_start sub_811C30C
sub_811C30C: @ 811C30C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x40
	bl sub_811BA94
	adds r4, r0, 0
	bl sub_811BA68
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	bl sub_811BAB8
	lsls r0, 24
	lsrs r7, r0, 24
	bl sub_811BAC4
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	bl sub_811BAAC
	lsls r0, 24
	lsrs r0, 24
	mov r1, r9
	muls r1, r0
	adds r0, r1, 0
	lsls r0, 1
	adds r4, r0
	ldr r1, =gUnknown_08597C30
	mov r2, r10
	lsls r0, r2, 2
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 27
	lsrs r0, 8
	movs r1, 0xD0
	lsls r1, 12
	adds r0, r1
	lsrs r6, r0, 16
	movs r5, 0
	cmp r5, r7
	bcs _0811C3AA
	ldr r2, =0x0000ffff
	mov r8, r2
_0811C36C:
	ldrh r0, [r4]
	cmp r0, r8
	bne _0811C380
	movs r0, 0x48
	b _0811C392
	.pool
_0811C380:
	ldrh r1, [r4]
	mov r0, sp
	bl CopyEasyChatWord
	movs r0, 0x1
	mov r1, sp
	movs r2, 0
	bl GetStringWidth
_0811C392:
	adds r0, 0x11
	lsls r1, r6, 16
	asrs r1, 16
	adds r1, r0
	lsls r1, 16
	lsrs r6, r1, 16
	adds r4, 0x2
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r7
	bcc _0811C36C
_0811C3AA:
	ldr r1, =gUnknown_08597C30
	mov r2, r10
	lsls r0, r2, 2
	adds r0, r1
	ldrb r1, [r0]
	lsrs r1, 5
	mov r2, r9
	lsls r0, r2, 1
	adds r1, r0
	lsls r1, 27
	lsls r0, r6, 24
	lsrs r0, 24
	movs r2, 0x80
	lsls r2, 20
	adds r1, r2
	lsrs r1, 24
	bl sub_811DF60
	movs r0, 0
	add sp, 0x40
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811C30C

	thumb_func_start sub_811C3E4
sub_811C3E4: @ 811C3E4
	push {lr}
	bl sub_811BAB8
	lsls r0, 24
	lsrs r0, 24
	bl sub_811E920
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x60
	bl sub_811DF60
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_811C3E4

	thumb_func_start sub_811C404
sub_811C404: @ 811C404
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811C41C
	cmp r0, 0x1
	beq _0811C436
	b _0811C440
	.pool
_0811C41C:
	bl sub_811DF90
	movs r0, 0x2
	bl sub_811D104
	movs r0, 0x1
	bl sub_811D214
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C440
_0811C436:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811C442
_0811C440:
	movs r0, 0x1
_0811C442:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C404

	thumb_func_start sub_811C448
sub_811C448: @ 811C448
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811C460
	cmp r0, 0x1
	beq _0811C47A
	b _0811C484
	.pool
_0811C460:
	bl sub_811DF90
	movs r0, 0x3
	bl sub_811D104
	movs r0, 0
	bl sub_811D214
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C484
_0811C47A:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811C486
_0811C484:
	movs r0, 0x1
_0811C486:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C448

	thumb_func_start sub_811C48C
sub_811C48C: @ 811C48C
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811C4A4
	cmp r0, 0x1
	beq _0811C4BE
	b _0811C4C8
	.pool
_0811C4A4:
	bl sub_811DF90
	movs r0, 0x1
	bl sub_811D104
	movs r0, 0x1
	bl sub_811D214
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C4C8
_0811C4BE:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811C4CA
_0811C4C8:
	movs r0, 0x1
_0811C4CA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C48C

	thumb_func_start sub_811C4D0
sub_811C4D0: @ 811C4D0
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811C4E8
	cmp r0, 0x1
	beq _0811C506
	b _0811C510
	.pool
_0811C4E8:
	bl sub_811DFB0
	movs r0, 0
	bl sub_811D104
	bl sub_811D2C8
	movs r0, 0
	bl ShowBg
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C510
_0811C506:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811C512
_0811C510:
	movs r0, 0x1
_0811C512:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C4D0

	thumb_func_start sub_811C518
sub_811C518: @ 811C518
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811C530
	cmp r0, 0x1
	beq _0811C546
	movs r0, 0x1
	b _0811C54E
	.pool
_0811C530:
	bl sub_811DFB0
	movs r0, 0
	bl sub_811D104
	bl sub_811D2C8
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C546:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
_0811C54E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C518

	thumb_func_start sub_811C554
sub_811C554: @ 811C554
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x4
	bhi _0811C60E
	lsls r0, 2
	ldr r1, =_0811C574
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811C574:
	.4byte _0811C588
	.4byte _0811C5A4
	.4byte _0811C5B6
	.4byte _0811C5CC
	.4byte _0811C5EC
_0811C588:
	bl sub_811DF90
	movs r0, 0
	bl HideBg
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl sub_811DE5C
	bl sub_811D6D4
	b _0811C5DA
_0811C5A4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C618
	movs r0, 0
	bl sub_811D9CC
	b _0811C5DA
_0811C5B6:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C618
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811C618
	b _0811C5DA
_0811C5CC:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C618
	bl sub_811E3AC
_0811C5DA:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C618
	.pool
_0811C5EC:
	bl sub_811E418
	lsls r0, 24
	cmp r0, 0
	bne _0811C618
	bl sub_811DFC8
	movs r0, 0
	bl sub_811E6E0
	bl sub_811E64C
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C60E:
	movs r0, 0
	b _0811C61A
	.pool
_0811C618:
	movs r0, 0x1
_0811C61A:
	pop {r1}
	bx r1
	thumb_func_end sub_811C554

	thumb_func_start sub_811C620
sub_811C620: @ 811C620
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x4
	bhi _0811C6B8
	lsls r0, 2
	ldr r1, =_0811C640
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811C640:
	.4byte _0811C654
	.4byte _0811C662
	.4byte _0811C67E
	.4byte _0811C690
	.4byte _0811C6B4
_0811C654:
	bl sub_811E050
	bl sub_811E4AC
	bl sub_811E6B0
	b _0811C6A4
_0811C662:
	bl sub_811E4D0
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811C6B8
	movs r0, 0x1
	bl sub_811D9CC
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C67E:
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811C6B8
	b _0811C6A4
	.pool
_0811C690:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C6B8
	bl sub_811DFB0
	movs r0, 0
	bl ShowBg
_0811C6A4:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C6B8
	.pool
_0811C6B4:
	movs r0, 0
	b _0811C6BA
_0811C6B8:
	movs r0, 0x1
_0811C6BA:
	pop {r1}
	bx r1
	thumb_func_end sub_811C620

	thumb_func_start sub_811C6C0
sub_811C6C0: @ 811C6C0
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x4
	bhi _0811C778
	lsls r0, 2
	ldr r1, =_0811C6E0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811C6E0:
	.4byte _0811C6F4
	.4byte _0811C708
	.4byte _0811C722
	.4byte _0811C748
	.4byte _0811C76E
_0811C6F4:
	bl sub_811E050
	bl sub_811E6B0
	bl sub_811E55C
	movs r0, 0x5
	bl sub_811D9CC
	b _0811C736
_0811C708:
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811C778
	bl sub_811E5B8
	lsls r0, 24
	cmp r0, 0
	bne _0811C778
	bl sub_811D6D4
	b _0811C736
_0811C722:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C778
	movs r0, 0x6
	bl sub_811D9CC
	bl sub_811E578
_0811C736:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C778
	.pool
_0811C748:
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811C778
	bl sub_811E5B8
	lsls r0, 24
	cmp r0, 0
	bne _0811C778
	bl sub_811E64C
	bl sub_811DFC8
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C76E:
	movs r0, 0
	b _0811C77A
	.pool
_0811C778:
	movs r0, 0x1
_0811C77A:
	pop {r1}
	bx r1
	thumb_func_end sub_811C6C0

	thumb_func_start sub_811C780
sub_811C780: @ 811C780
	push {lr}
	bl sub_811E088
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_811C780

	thumb_func_start sub_811C78C
sub_811C78C: @ 811C78C
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811C7A4
	cmp r0, 0x1
	beq _0811C7B4
	b _0811C7CA
	.pool
_0811C7A4:
	movs r0, 0x1
	movs r1, 0x4
	bl sub_811DDAC
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C7B4:
	bl sub_811DE10
	lsls r0, 24
	cmp r0, 0
	bne _0811C7CA
	bl sub_811E088
	bl sub_811E64C
	movs r0, 0
	b _0811C7CC
_0811C7CA:
	movs r0, 0x1
_0811C7CC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C78C

	thumb_func_start sub_811C7D4
sub_811C7D4: @ 811C7D4
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0x1
	beq _0811C808
	cmp r0, 0x1
	bgt _0811C7F0
	cmp r0, 0
	beq _0811C7F6
	b _0811C828
	.pool
_0811C7F0:
	cmp r0, 0x2
	beq _0811C820
	b _0811C828
_0811C7F6:
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x4
	bl sub_811DDAC
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C808:
	bl sub_811DE10
	lsls r0, 24
	cmp r0, 0
	bne _0811C828
	bl sub_811E64C
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C820:
	movs r0, 0
	b _0811C82A
	.pool
_0811C828:
	movs r0, 0x1
_0811C82A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811C7D4

	thumb_func_start sub_811C830
sub_811C830: @ 811C830
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x5
	bhi _0811C8E8
	lsls r0, 2
	ldr r1, =_0811C850
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811C850:
	.4byte _0811C868
	.4byte _0811C876
	.4byte _0811C886
	.4byte _0811C898
	.4byte _0811C8B8
	.4byte _0811C8DE
_0811C868:
	bl sub_811E050
	bl sub_811E4AC
	bl sub_811E6B0
	b _0811C8A8
_0811C876:
	bl sub_811E4D0
	lsls r0, 24
	cmp r0, 0
	bne _0811C8E8
	bl sub_811D9B4
	b _0811C8A8
_0811C886:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C8E8
	movs r0, 0x2
	bl sub_811D9CC
	b _0811C8A8
_0811C898:
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811C8E8
	movs r0, 0x2
	bl sub_811D698
_0811C8A8:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C8E8
	.pool
_0811C8B8:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C8E8
	bl sub_811E288
	movs r0, 0x1
	bl sub_811E6E0
	bl sub_811E64C
	bl sub_811E794
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C8DE:
	movs r0, 0
	b _0811C8EA
	.pool
_0811C8E8:
	movs r0, 0x1
_0811C8EA:
	pop {r1}
	bx r1
	thumb_func_end sub_811C830

	thumb_func_start sub_811C8F0
sub_811C8F0: @ 811C8F0
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x5
	bhi _0811C994
	lsls r0, 2
	ldr r1, =_0811C910
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811C910:
	.4byte _0811C928
	.4byte _0811C92E
	.4byte _0811C940
	.4byte _0811C952
	.4byte _0811C974
	.4byte _0811C98C
_0811C928:
	bl sub_811D2C8
	b _0811C962
_0811C92E:
	bl sub_811E380
	bl sub_811E6B0
	bl sub_811E7F8
	bl sub_811D9B4
	b _0811C962
_0811C940:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C994
	movs r0, 0x3
	bl sub_811D9CC
	b _0811C962
_0811C952:
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811C994
	movs r0, 0
	bl ShowBg
_0811C962:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811C994
	.pool
_0811C974:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811C994
	bl sub_811DFB0
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811C98C:
	movs r0, 0
	b _0811C996
	.pool
_0811C994:
	movs r0, 0x1
_0811C996:
	pop {r1}
	bx r1
	thumb_func_end sub_811C8F0

	thumb_func_start sub_811C99C
sub_811C99C: @ 811C99C
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x6
	bhi _0811CA54
	lsls r0, 2
	ldr r1, =_0811C9BC
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811C9BC:
	.4byte _0811C9D8
	.4byte _0811C9DE
	.4byte _0811C9F0
	.4byte _0811CA02
	.4byte _0811CA14
	.4byte _0811CA34
	.4byte _0811CA4C
_0811C9D8:
	bl sub_811D2C8
	b _0811CA24
_0811C9DE:
	bl sub_811E380
	bl sub_811E6B0
	bl sub_811E7F8
	bl sub_811D9B4
	b _0811CA24
_0811C9F0:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CA54
	movs r0, 0x3
	bl sub_811D9CC
	b _0811CA24
_0811CA02:
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811CA54
	movs r0, 0x3
	bl sub_811D104
	b _0811CA24
_0811CA14:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CA54
	movs r0, 0
	bl ShowBg
_0811CA24:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CA54
	.pool
_0811CA34:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CA54
	bl sub_811DFB0
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811CA4C:
	movs r0, 0
	b _0811CA56
	.pool
_0811CA54:
	movs r0, 0x1
_0811CA56:
	pop {r1}
	bx r1
	thumb_func_end sub_811C99C

	thumb_func_start sub_811CA5C
sub_811CA5C: @ 811CA5C
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, 0x4
	bhi _0811CB10
	lsls r0, 2
	ldr r1, =_0811CA7C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811CA7C:
	.4byte _0811CA90
	.4byte _0811CAA2
	.4byte _0811CAB4
	.4byte _0811CAC4
	.4byte _0811CAE4
_0811CA90:
	bl sub_811E380
	bl sub_811E6B0
	bl sub_811E7F8
	bl sub_811D9B4
	b _0811CAD2
_0811CAA2:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CB10
	movs r0, 0x4
	bl sub_811D9CC
	b _0811CAD2
_0811CAB4:
	bl sub_811DAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811CB10
	bl sub_811D6D4
	b _0811CAD2
_0811CAC4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CB10
	bl sub_811E3AC
_0811CAD2:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CB10
	.pool
_0811CAE4:
	bl sub_811E418
	lsls r0, 24
	cmp r0, 0
	bne _0811CB10
	bl sub_811DFC8
	movs r0, 0
	bl sub_811E6E0
	bl sub_811E64C
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	movs r0, 0
	b _0811CB12
	.pool
_0811CB10:
	movs r0, 0x1
_0811CB12:
	pop {r1}
	bx r1
	thumb_func_end sub_811CA5C

	thumb_func_start sub_811CB18
sub_811CB18: @ 811CB18
	push {lr}
	bl sub_811E30C
	movs r0, 0
	pop {r1}
	bx r1
	thumb_func_end sub_811CB18

	thumb_func_start sub_811CB24
sub_811CB24: @ 811CB24
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0x1
	beq _0811CB50
	cmp r0, 0x1
	bgt _0811CB40
	cmp r0, 0
	beq _0811CB4A
	b _0811CB8E
	.pool
_0811CB40:
	cmp r0, 0x2
	beq _0811CB6C
	cmp r0, 0x3
	beq _0811CB8A
	b _0811CB8E
_0811CB4A:
	bl sub_811D7A4
	b _0811CB62
_0811CB50:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CB8E
	movs r0, 0x1
	movs r1, 0x4
	bl sub_811DDAC
_0811CB62:
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CB8E
_0811CB6C:
	bl sub_811DE10
	lsls r0, 24
	cmp r0, 0
	bne _0811CB8E
	bl sub_811E30C
	bl sub_811E64C
	bl sub_811E794
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811CB8A:
	movs r0, 0
	b _0811CB90
_0811CB8E:
	movs r0, 0x1
_0811CB90:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CB24

	thumb_func_start sub_811CB98
sub_811CB98: @ 811CB98
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0x1
	beq _0811CBC4
	cmp r0, 0x1
	bgt _0811CBB4
	cmp r0, 0
	beq _0811CBBE
	b _0811CC00
	.pool
_0811CBB4:
	cmp r0, 0x2
	beq _0811CBE2
	cmp r0, 0x3
	beq _0811CBFC
	b _0811CC00
_0811CBBE:
	bl sub_811D7C8
	b _0811CBD8
_0811CBC4:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CC00
	movs r0, 0x1
	negs r0, r0
	movs r1, 0x4
	bl sub_811DDAC
_0811CBD8:
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CC00
_0811CBE2:
	bl sub_811DE10
	lsls r0, 24
	cmp r0, 0
	bne _0811CC00
	bl sub_811E64C
	bl sub_811E794
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811CBFC:
	movs r0, 0
	b _0811CC02
_0811CC00:
	movs r0, 0x1
_0811CC02:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CB98

	thumb_func_start sub_811CC08
sub_811CC08: @ 811CC08
	push {r4,r5,lr}
	ldr r5, =gUnknown_0203A11C
	ldr r0, [r5]
	ldrh r0, [r0]
	cmp r0, 0x1
	beq _0811CC34
	cmp r0, 0x1
	bgt _0811CC24
	cmp r0, 0
	beq _0811CC2E
	b _0811CC86
	.pool
_0811CC24:
	cmp r0, 0x2
	beq _0811CC64
	cmp r0, 0x3
	beq _0811CC82
	b _0811CC86
_0811CC2E:
	bl sub_811D7EC
	b _0811CC5A
_0811CC34:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CC86
	bl sub_811BBDC
	adds r4, r0, 0
	bl sub_811DE48
	lsls r4, 24
	lsrs r4, 24
	subs r4, r0
	lsls r4, 16
	asrs r4, 16
	adds r0, r4, 0
	movs r1, 0x8
	bl sub_811DDAC
_0811CC5A:
	ldr r1, [r5]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CC86
_0811CC64:
	bl sub_811DE10
	lsls r0, 24
	cmp r0, 0
	bne _0811CC86
	bl sub_811E30C
	bl sub_811E64C
	bl sub_811E794
	ldr r1, [r5]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811CC82:
	movs r0, 0
	b _0811CC88
_0811CC86:
	movs r0, 0x1
_0811CC88:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811CC08

	thumb_func_start sub_811CC90
sub_811CC90: @ 811CC90
	push {r4,r5,lr}
	ldr r5, =gUnknown_0203A11C
	ldr r0, [r5]
	ldrh r0, [r0]
	cmp r0, 0x1
	beq _0811CCBC
	cmp r0, 0x1
	bgt _0811CCAC
	cmp r0, 0
	beq _0811CCB6
	b _0811CD0A
	.pool
_0811CCAC:
	cmp r0, 0x2
	beq _0811CCEC
	cmp r0, 0x3
	beq _0811CD06
	b _0811CD0A
_0811CCB6:
	bl sub_811D830
	b _0811CCE2
_0811CCBC:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _0811CD0A
	bl sub_811BBDC
	adds r4, r0, 0
	bl sub_811DE48
	lsls r4, 24
	lsrs r4, 24
	subs r4, r0
	lsls r4, 16
	asrs r4, 16
	adds r0, r4, 0
	movs r1, 0x8
	bl sub_811DDAC
_0811CCE2:
	ldr r1, [r5]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CD0A
_0811CCEC:
	bl sub_811DE10
	lsls r0, 24
	cmp r0, 0
	bne _0811CD0A
	bl sub_811E64C
	bl sub_811E794
	ldr r1, [r5]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
_0811CD06:
	movs r0, 0
	b _0811CD0C
_0811CD0A:
	movs r0, 0x1
_0811CD0C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811CC90

	thumb_func_start sub_811CD14
sub_811CD14: @ 811CD14
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811CD2C
	cmp r0, 0x1
	beq _0811CD40
	b _0811CD4A
	.pool
_0811CD2C:
	bl sub_811DF90
	movs r0, 0x4
	bl sub_811D104
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CD4A
_0811CD40:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811CD4C
_0811CD4A:
	movs r0, 0x1
_0811CD4C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CD14

	thumb_func_start sub_811CD54
sub_811CD54: @ 811CD54
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811CD6C
	cmp r0, 0x1
	beq _0811CD80
	b _0811CD8A
	.pool
_0811CD6C:
	bl sub_811DF90
	movs r0, 0x5
	bl sub_811D104
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CD8A
_0811CD80:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811CD8C
_0811CD8A:
	movs r0, 0x1
_0811CD8C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CD54

	thumb_func_start sub_811CD94
sub_811CD94: @ 811CD94
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811CDAC
	cmp r0, 0x1
	beq _0811CDC0
	b _0811CDCA
	.pool
_0811CDAC:
	bl sub_811DF90
	movs r0, 0x6
	bl sub_811D104
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CDCA
_0811CDC0:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811CDCC
_0811CDCA:
	movs r0, 0x1
_0811CDCC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CD94

	thumb_func_start sub_811CDD4
sub_811CDD4: @ 811CDD4
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811CDEC
	cmp r0, 0x1
	beq _0811CE00
	b _0811CE0A
	.pool
_0811CDEC:
	bl sub_811DF90
	movs r0, 0x7
	bl sub_811D104
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CE0A
_0811CE00:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811CE0C
_0811CE0A:
	movs r0, 0x1
_0811CE0C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CDD4

	thumb_func_start sub_811CE14
sub_811CE14: @ 811CE14
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811CE2C
	cmp r0, 0x1
	beq _0811CE40
	b _0811CE4A
	.pool
_0811CE2C:
	bl sub_811DF90
	movs r0, 0x8
	bl sub_811D104
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CE4A
_0811CE40:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811CE4C
_0811CE4A:
	movs r0, 0x1
_0811CE4C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CE14

	thumb_func_start sub_811CE54
sub_811CE54: @ 811CE54
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	ldrh r0, [r0]
	cmp r0, 0
	beq _0811CE6C
	cmp r0, 0x1
	beq _0811CE80
	b _0811CE8A
	.pool
_0811CE6C:
	bl sub_811DF90
	movs r0, 0x9
	bl sub_811D104
	ldr r1, [r4]
	ldrh r0, [r1]
	adds r0, 0x1
	strh r0, [r1]
	b _0811CE8A
_0811CE80:
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	lsrs r0, 24
	b _0811CE8C
_0811CE8A:
	movs r0, 0x1
_0811CE8C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CE54

	thumb_func_start sub_811CE94
sub_811CE94: @ 811CE94
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	movs r0, 0x98
	lsls r0, 5
	bl Alloc
	adds r2, r0, 0
	str r2, [r4]
	cmp r2, 0
	beq _0811CEFC
	movs r1, 0
	strh r1, [r2]
	movs r3, 0xB6
	lsls r3, 2
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	adds r3, 0x4
	adds r0, r2, r3
	str r1, [r0]
	bl sub_811BC70
	ldr r1, [r4]
	strb r0, [r1, 0xA]
	movs r0, 0x1
	b _0811CEFE
	.pool
_0811CEFC:
	movs r0, 0
_0811CEFE:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811CE94

	thumb_func_start sub_811CF04
sub_811CF04: @ 811CF04
	push {lr}
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r1, 0xC1
	lsls r1, 6
	movs r0, 0
	bl SetGpuReg
	pop {r0}
	bx r0
	thumb_func_end sub_811CF04

	thumb_func_start sub_811CF64
sub_811CF64: @ 811CF64
	push {r4,lr}
	bl ResetPaletteFade
	ldr r0, =gEasyChatMode_Pal
	movs r1, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_08597B14
	movs r1, 0x10
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_08597B34
	movs r1, 0x40
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_08597C1C
	movs r1, 0xA0
	movs r2, 0x8
	bl LoadPalette
	ldr r4, =gUnknown_08597C24
	adds r0, r4, 0
	movs r1, 0xB0
	movs r2, 0xC
	bl LoadPalette
	adds r0, r4, 0
	movs r1, 0xF0
	movs r2, 0xC
	bl LoadPalette
	adds r0, r4, 0
	movs r1, 0x30
	movs r2, 0xC
	bl LoadPalette
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811CF64

	thumb_func_start sub_811CFCC
sub_811CFCC: @ 811CFCC
	push {r4,r5,lr}
	sub sp, 0x14
	bl sub_811BA88
	adds r5, r0, 0
	cmp r5, 0
	beq _0811D020
	movs r0, 0x1
	adds r1, r5, 0
	movs r2, 0x90
	bl GetStringCenterAlignXOffset
	adds r4, r0, 0
	movs r0, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r0, 0x2
	str r0, [sp, 0xC]
	movs r0, 0x3
	str r0, [sp, 0x10]
	movs r0, 0
	movs r1, 0x1
	adds r2, r5, 0
	adds r3, r4, 0
	bl sub_811D058
	movs r0, 0
	bl PutWindowTilemap
	movs r0, 0
	movs r1, 0x3
	bl CopyWindowToVram
_0811D020:
	add sp, 0x14
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811CFCC

	thumb_func_start sub_811D028
sub_811D028: @ 811D028
	push {r4-r6,lr}
	sub sp, 0xC
	ldr r4, [sp, 0x1C]
	ldr r5, [sp, 0x20]
	ldr r6, [sp, 0x24]
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	str r4, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_811D028

	thumb_func_start sub_811D058
sub_811D058: @ 811D058
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	mov r9, r3
	ldr r3, [sp, 0x30]
	ldr r4, [sp, 0x34]
	mov r8, r4
	ldr r7, [sp, 0x38]
	mov r10, r7
	ldr r5, [sp, 0x3C]
	ldr r6, [sp, 0x40]
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r4, r9
	lsls r4, 24
	lsrs r4, 24
	mov r9, r4
	lsls r3, 24
	lsrs r3, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	add r4, sp, 0xC
	mov r7, r10
	strb r7, [r4]
	strb r5, [r4, 0x1]
	strb r6, [r4, 0x2]
	str r4, [sp]
	mov r4, r8
	lsls r4, 24
	asrs r4, 24
	str r4, [sp, 0x4]
	str r2, [sp, 0x8]
	mov r2, r9
	bl box_print
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_811D058

	thumb_func_start sub_811D0BC
sub_811D0BC: @ 811D0BC
	push {lr}
	sub sp, 0xC
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x14
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0xE0
	bl sub_809882C
	movs r0, 0x1
	movs r1, 0x1
	movs r2, 0xE
	bl sub_8098858
	movs r0, 0
	bl sub_811D104
	movs r0, 0x1
	bl PutWindowTilemap
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	add sp, 0xC
	pop {r0}
	bx r0
	thumb_func_end sub_811D0BC

	thumb_func_start sub_811D104
sub_811D104: @ 811D104
	push {lr}
	sub sp, 0x14
	lsls r0, 24
	lsrs r1, r0, 24
	movs r0, 0
	str r0, [sp, 0x10]
	str r0, [sp, 0xC]
	cmp r1, 0x9
	bhi _0811D1BC
	lsls r0, r1, 2
	ldr r1, =_0811D124
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811D124:
	.4byte _0811D14C
	.4byte _0811D16A
	.4byte _0811D156
	.4byte _0811D160
	.4byte _0811D174
	.4byte _0811D180
	.4byte _0811D18C
	.4byte _0811D19C
	.4byte _0811D1A8
	.4byte _0811D1B4
_0811D14C:
	add r1, sp, 0x10
	add r0, sp, 0xC
	bl sub_811BAD0
	b _0811D1BC
_0811D156:
	add r1, sp, 0x10
	add r0, sp, 0xC
	bl sub_811BB40
	b _0811D1BC
_0811D160:
	add r1, sp, 0x10
	add r0, sp, 0xC
	bl sub_811BB08
	b _0811D1BC
_0811D16A:
	add r1, sp, 0x10
	add r0, sp, 0xC
	bl sub_811BB88
	b _0811D1BC
_0811D174:
	ldr r0, =gText_CreateAQuiz
	str r0, [sp, 0xC]
	b _0811D1BC
	.pool
_0811D180:
	ldr r0, =gText_SelectTheAnswer
	str r0, [sp, 0xC]
	b _0811D1BC
	.pool
_0811D18C:
	ldr r0, =gText_OnlyOnePhrase
	str r0, [sp, 0xC]
	ldr r0, =gText_OriginalSongWillBeUsed
	b _0811D1BA
	.pool
_0811D19C:
	ldr r0, =gText_LyricsCantBeDeleted
	str r0, [sp, 0xC]
	b _0811D1BC
	.pool
_0811D1A8:
	ldr r0, =gText_CombineTwoWordsOrPhrases3
	str r0, [sp, 0xC]
	b _0811D1BC
	.pool
_0811D1B4:
	ldr r0, =gText_YouCannotQuitHere
	str r0, [sp, 0xC]
	ldr r0, =gText_SectionMustBeCompleted
_0811D1BA:
	str r0, [sp, 0x10]
_0811D1BC:
	movs r0, 0x1
	movs r1, 0x11
	bl FillWindowPixelBuffer
	ldr r2, [sp, 0xC]
	cmp r2, 0
	beq _0811D1E0
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r3, 0
	bl sub_811D028
_0811D1E0:
	ldr r2, [sp, 0x10]
	cmp r2, 0
	beq _0811D1FC
	movs r0, 0x11
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r0, 0x1
	movs r1, 0x1
	movs r3, 0
	bl sub_811D028
_0811D1FC:
	movs r0, 0x1
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0x14
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811D104

	thumb_func_start sub_811D214
sub_811D214: @ 811D214
	push {lr}
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	ldr r0, =gUnknown_08597C84
	movs r1, 0x1
	movs r2, 0xE
	bl CreateYesNoMenu
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811D214

	thumb_func_start sub_811D230
sub_811D230: @ 811D230
	push {r4-r6,lr}
	sub sp, 0x8
	bl sub_811BA68
	lsls r0, 24
	ldr r6, =0xffffff00
	ldr r4, [sp]
	ands r4, r6
	movs r1, 0x3
	orrs r4, r1
	str r4, [sp]
	ldr r1, =gUnknown_08597C30
	lsrs r0, 22
	adds r0, r1
	ldrb r3, [r0]
	lsls r1, r3, 27
	lsrs r1, 19
	ldr r5, =0xffff00ff
	adds r2, r5, 0
	ands r2, r4
	orrs r2, r1
	lsrs r3, 5
	lsls r3, 16
	ldr r1, =0xff00ffff
	ands r2, r1
	orrs r2, r3
	str r2, [sp]
	ldrb r3, [r0, 0x1]
	lsls r3, 24
	ldr r1, =0x00ffffff
	ands r1, r2
	orrs r1, r3
	str r1, [sp]
	ldrb r1, [r0, 0x2]
	ldr r0, [sp, 0x4]
	ands r0, r6
	orrs r0, r1
	ands r0, r5
	movs r1, 0xB0
	lsls r1, 4
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0xD8
	lsls r1, 15
	orrs r0, r1
	str r0, [sp, 0x4]
	mov r0, sp
	bl AddWindow
	ldr r1, =gUnknown_0203A11C
	ldr r1, [r1]
	strh r0, [r1, 0x2]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811D230

	thumb_func_start sub_811D2C8
sub_811D2C8: @ 811D2C8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	bl sub_811BA94
	adds r4, r0, 0
	bl sub_811BAAC
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x10]
	bl sub_811BAA0
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x14]
	bl sub_811BA68
	lsls r0, 24
	lsrs r6, r0, 24
	movs r0, 0
	mov r8, r0
	cmp r6, 0x7
	bne _0811D302
	movs r1, 0x1
	mov r8, r1
_0811D302:
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrb r0, [r0, 0x2]
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r7, 0
	ldr r0, [sp, 0x14]
	cmp r7, r0
	bge _0811D402
_0811D316:
	add r0, sp, 0xC
	ldr r1, =gUnknown_08597C8C
	movs r2, 0x4
	bl memcpy
	mov r1, r8
	cmp r1, 0
	beq _0811D32C
	add r1, sp, 0xC
	movs r0, 0x6
	strb r0, [r1, 0x2]
_0811D32C:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	adds r2, r1, 0
	adds r2, 0xB
	movs r0, 0xFF
	strb r0, [r1, 0xB]
	adds r0, r2, 0
	add r1, sp, 0xC
	bl StringAppend
	adds r2, r0, 0
	movs r5, 0
	lsls r0, r7, 4
	mov r9, r0
	adds r1, r7, 0x1
	mov r10, r1
	b _0811D3CE
	.pool
_0811D358:
	ldrh r0, [r4]
	ldr r1, =0x0000ffff
	cmp r0, r1
	beq _0811D374
	adds r1, r0, 0
	adds r0, r2, 0
	bl CopyEasyChatWord
	adds r2, r0, 0
	adds r4, 0x2
	b _0811D3A2
	.pool
_0811D374:
	adds r4, 0x2
	mov r0, r8
	cmp r0, 0
	bne _0811D3A8
	adds r0, r2, 0
	movs r1, 0
	movs r2, 0x4
	bl WriteColorChangeControlCode
	adds r2, r0, 0
	movs r1, 0xAE
	movs r0, 0xB
_0811D38C:
	strb r1, [r2]
	adds r2, 0x1
	subs r0, 0x1
	cmp r0, 0
	bge _0811D38C
	adds r0, r2, 0
	movs r1, 0
	movs r2, 0x2
	bl WriteColorChangeControlCode
	adds r2, r0, 0
_0811D3A2:
	mov r1, r8
	cmp r1, 0
	beq _0811D3AE
_0811D3A8:
	add r1, sp, 0xC
	movs r0, 0x3
	strb r0, [r1, 0x2]
_0811D3AE:
	adds r0, r2, 0
	add r1, sp, 0xC
	bl StringAppend
	adds r2, r0, 0
	cmp r6, 0x2
	beq _0811D3C4
	cmp r6, 0x7
	beq _0811D3C4
	cmp r6, 0x8
	bne _0811D3CC
_0811D3C4:
	cmp r5, 0
	bne _0811D3CC
	cmp r7, 0x4
	beq _0811D3D4
_0811D3CC:
	adds r5, 0x1
_0811D3CE:
	ldr r0, [sp, 0x10]
	cmp r5, r0
	blt _0811D358
_0811D3D4:
	movs r0, 0xFF
	strb r0, [r2]
	ldr r0, =gUnknown_0203A11C
	ldr r2, [r0]
	ldrb r0, [r2, 0x2]
	adds r2, 0xB
	mov r1, r9
	adds r1, 0x1
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp]
	movs r1, 0xFF
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl sub_811D028
	mov r7, r10
	ldr r1, [sp, 0x14]
	cmp r7, r1
	blt _0811D316
_0811D402:
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldrb r0, [r0, 0x2]
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811D2C8

	thumb_func_start sub_811D424
sub_811D424: @ 811D424
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	mov r8, r0
	bl sub_811BA68
	lsls r0, 24
	lsrs r6, r0, 24
	movs r0, 0
	str r0, [sp]
	ldr r2, =0x01000200
	mov r0, sp
	mov r1, r8
	bl CpuFastSet
	cmp r6, 0x2
	beq _0811D450
	cmp r6, 0x8
	bne _0811D4D4
_0811D450:
	ldr r0, =gUnknown_08597C30
	lsls r2, r6, 2
	adds r2, r0
	ldrb r1, [r2]
	lsls r3, r1, 27
	lsrs r0, r3, 27
	ldrb r4, [r2, 0x1]
	adds r5, r0, r4
	lsls r1, 24
	lsrs r0, r1, 29
	ldrb r2, [r2, 0x2]
	adds r2, r0
	mov r12, r2
	adds r6, r0, 0
	cmp r6, r12
	blt _0811D472
	b _0811D5D6
_0811D472:
	mov r9, r3
_0811D474:
	mov r0, r9
	lsrs r3, r0, 27
	subs r7, r3, 0x1
	lsls r2, r6, 5
	adds r0, r2, r7
	lsls r0, 1
	add r0, r8
	ldr r4, =0x00001005
	adds r1, r4, 0
	strh r1, [r0]
	adds r7, r3, 0
	adds r3, r2, 0
	adds r4, r6, 0x1
	cmp r7, r5
	bge _0811D4AE
	movs r0, 0x80
	lsls r0, 5
	adds r2, r0, 0
	lsls r1, r7, 1
	lsls r0, r6, 6
	add r0, r8
	adds r0, r1, r0
	subs r7, r5, r7
_0811D4A2:
	strh r2, [r0]
	adds r0, 0x2
	subs r7, 0x1
	cmp r7, 0
	bne _0811D4A2
	adds r7, r5, 0
_0811D4AE:
	adds r0, r3, r7
	lsls r0, 1
	add r0, r8
	ldr r2, =0x00001007
	adds r1, r2, 0
	strh r1, [r0]
	adds r6, r4, 0
	cmp r6, r12
	blt _0811D474
	b _0811D5D6
	.pool
_0811D4D4:
	ldr r4, =gUnknown_08597C30
	mov r10, r4
	lsls r6, 2
	mov r9, r6
	mov r3, r9
	add r3, r10
	ldrb r0, [r3]
	lsls r2, r0, 24
	lsrs r1, r2, 29
	subs r6, r1, 0x1
	lsls r0, 27
	lsrs r4, r0, 27
	subs r7, r4, 0x1
	adds r0, r4, 0
	ldrb r1, [r3, 0x1]
	adds r5, r0, r1
	lsrs r2, 29
	ldrb r3, [r3, 0x2]
	adds r3, r2
	mov r12, r3
	lsls r0, r6, 5
	adds r0, r7
	lsls r0, 1
	add r0, r8
	ldr r2, =0x00001001
	adds r1, r2, 0
	strh r1, [r0]
	adds r7, r4, 0
	cmp r7, r5
	bge _0811D52A
	ldr r4, =0x00001002
	adds r2, r4, 0
	lsls r1, r7, 1
	lsls r0, r6, 6
	add r0, r8
	adds r1, r0
	subs r7, r5, r7
_0811D51E:
	strh r2, [r1]
	adds r1, 0x2
	subs r7, 0x1
	cmp r7, 0
	bne _0811D51E
	adds r7, r5, 0
_0811D52A:
	lsls r0, r6, 5
	adds r0, r7
	lsls r0, 1
	add r0, r8
	ldr r2, =0x00001003
	adds r1, r2, 0
	strh r1, [r0]
	adds r6, 0x1
	cmp r6, r12
	bge _0811D590
	ldr r0, =gUnknown_08597C30
	add r0, r9
	ldrb r0, [r0]
	lsls r3, r0, 27
_0811D546:
	lsrs r0, r3, 27
	subs r7, r0, 0x1
	lsls r1, r6, 5
	adds r1, r7
	lsls r1, 1
	add r1, r8
	ldr r4, =0x00001005
	adds r2, r4, 0
	strh r2, [r1]
	adds r7, r0, 0
	adds r4, r6, 0x1
	cmp r7, r5
	bge _0811D57C
	movs r0, 0x80
	lsls r0, 5
	adds r2, r0, 0
	lsls r1, r7, 1
	lsls r0, r6, 6
	add r0, r8
	adds r1, r0
	subs r7, r5, r7
_0811D570:
	strh r2, [r1]
	adds r1, 0x2
	subs r7, 0x1
	cmp r7, 0
	bne _0811D570
	adds r7, r5, 0
_0811D57C:
	lsls r0, r6, 5
	adds r0, r7
	lsls r0, 1
	add r0, r8
	ldr r2, =0x00001007
	adds r1, r2, 0
	strh r1, [r0]
	adds r6, r4, 0
	cmp r6, r12
	blt _0811D546
_0811D590:
	mov r0, r9
	add r0, r10
	ldrb r2, [r0]
	lsls r2, 27
	lsrs r2, 27
	subs r7, r2, 0x1
	lsls r3, r6, 5
	adds r0, r3, r7
	lsls r0, 1
	add r0, r8
	ldr r4, =0x00001009
	adds r1, r4, 0
	strh r1, [r0]
	adds r7, r2, 0
	cmp r7, r5
	bge _0811D5CA
	ldr r0, =0x0000100a
	adds r2, r0, 0
	lsls r1, r7, 1
	lsls r0, r6, 6
	add r0, r8
	adds r0, r1, r0
	subs r7, r5, r7
_0811D5BE:
	strh r2, [r0]
	adds r0, 0x2
	subs r7, 0x1
	cmp r7, 0
	bne _0811D5BE
	adds r7, r5, 0
_0811D5CA:
	adds r0, r3, r7
	lsls r0, 1
	add r0, r8
	ldr r2, =0x0000100b
	adds r1, r2, 0
	strh r1, [r0]
_0811D5D6:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811D424

	thumb_func_start sub_811D60C
sub_811D60C: @ 811D60C
	push {r4,lr}
	sub sp, 0x8
	movs r0, 0x3
	bl GetBgTilemapBuffer
	adds r4, r0, 0
	bl sub_811BA68
	lsls r0, 24
	ldr r1, =gUnknown_08597C30
	lsrs r0, 22
	adds r0, r1
	ldrb r1, [r0, 0x3]
	cmp r1, 0x2
	beq _0811D63E
	cmp r1, 0x2
	bgt _0811D638
	cmp r1, 0x1
	beq _0811D64C
	b _0811D67C
	.pool
_0811D638:
	cmp r1, 0x3
	beq _0811D668
	b _0811D67C
_0811D63E:
	movs r0, 0xA8
	lsls r0, 3
	adds r4, r0
	movs r0, 0x20
	str r0, [sp]
	str r1, [sp, 0x4]
	b _0811D65A
_0811D64C:
	movs r0, 0xC0
	lsls r0, 3
	adds r4, r0
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
_0811D65A:
	movs r0, 0x3
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0xB
	bl CopyToBgTilemapBufferRect
	b _0811D67C
_0811D668:
	movs r0, 0x20
	str r0, [sp]
	movs r0, 0x4
	str r0, [sp, 0x4]
	movs r0, 0x3
	adds r1, r4, 0
	movs r2, 0
	movs r3, 0xA
	bl CopyToBgTilemapBufferRect
_0811D67C:
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811D60C

	thumb_func_start sub_811D684
sub_811D684: @ 811D684
	push {lr}
	movs r0, 0x2
	bl PutWindowTilemap
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	pop {r0}
	bx r0
	thumb_func_end sub_811D684

	thumb_func_start sub_811D698
sub_811D698: @ 811D698
	push {r4,lr}
	adds r4, r0, 0
	bl sub_811DD84
	movs r0, 0x2
	movs r1, 0x11
	bl FillWindowPixelBuffer
	cmp r4, 0x1
	beq _0811D6BC
	cmp r4, 0x1
	bcc _0811D6B6
	cmp r4, 0x2
	beq _0811D6C2
	b _0811D6C6
_0811D6B6:
	bl sub_811D6F4
	b _0811D6C6
_0811D6BC:
	bl sub_811D758
	b _0811D6C6
_0811D6C2:
	bl sub_811D794
_0811D6C6:
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811D698

	thumb_func_start sub_811D6D4
sub_811D6D4: @ 811D6D4
	push {lr}
	bl sub_811BBB0
	lsls r0, 24
	cmp r0, 0
	bne _0811D6E8
	movs r0, 0
	bl sub_811D698
	b _0811D6EE
_0811D6E8:
	movs r0, 0x1
	bl sub_811D698
_0811D6EE:
	pop {r0}
	bx r0
	thumb_func_end sub_811D6D4

	thumb_func_start sub_811D6F4
sub_811D6F4: @ 811D6F4
	push {r4-r7,lr}
	sub sp, 0xC
	movs r5, 0
	movs r7, 0x61
_0811D6FC:
	movs r4, 0
	lsls r0, r7, 24
	lsrs r6, r0, 24
_0811D702:
	lsls r0, r5, 24
	lsrs r0, 24
	adds r5, 0x1
	bl sub_811F3B8
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x16
	beq _0811D742
	bl sub_811F424
	adds r2, r0, 0
	movs r0, 0x54
	adds r3, r4, 0
	muls r3, r0
	adds r3, 0xA
	lsls r3, 24
	lsrs r3, 24
	str r6, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	bl sub_811D028
	adds r4, 0x1
	cmp r4, 0x1
	ble _0811D702
	adds r7, 0x10
	b _0811D6FC
_0811D742:
	bl sub_811BBBC
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl sub_811DDAC
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_811D6F4

	thumb_func_start sub_811D758
sub_811D758: @ 811D758
	push {r4-r6,lr}
	sub sp, 0xC
	movs r5, 0
	movs r4, 0xC2
	lsls r4, 23
	ldr r6, =gUnknown_08597C90
_0811D764:
	ldm r6!, {r2}
	lsrs r0, r4, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	movs r3, 0xA
	bl sub_811D028
	movs r0, 0x80
	lsls r0, 21
	adds r4, r0
	adds r5, 0x1
	cmp r5, 0x3
	bls _0811D764
	add sp, 0xC
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811D758

	thumb_func_start sub_811D794
sub_811D794: @ 811D794
	push {lr}
	movs r0, 0
	movs r1, 0x4
	bl sub_811D864
	pop {r0}
	bx r0
	thumb_func_end sub_811D794

	thumb_func_start sub_811D7A4
sub_811D7A4: @ 811D7A4
	push {r4,lr}
	bl sub_811BBDC
	adds r4, r0, 0
	adds r4, 0x3
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_811D950
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_811D864
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811D7A4

	thumb_func_start sub_811D7C8
sub_811D7C8: @ 811D7C8
	push {r4,lr}
	bl sub_811BBDC
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_811D950
	adds r0, r4, 0
	movs r1, 0x1
	bl sub_811D864
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811D7C8

	thumb_func_start sub_811D7EC
sub_811D7EC: @ 811D7EC
	push {r4,r5,lr}
	bl sub_811BBDC
	lsls r0, 24
	lsrs r0, 24
	adds r5, r0, 0
	adds r0, r5, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	bl sub_811BBE8
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	bls _0811D80E
	adds r4, r0, 0
_0811D80E:
	cmp r5, r4
	bcs _0811D828
	subs r4, r5
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_811D950
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_811D864
_0811D828:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811D7EC

	thumb_func_start sub_811D830
sub_811D830: @ 811D830
	push {r4,r5,lr}
	bl sub_811BBDC
	lsls r0, 24
	lsrs r5, r0, 24
	bl sub_811DE48
	lsls r0, 24
	lsrs r0, 24
	cmp r5, r0
	bcs _0811D85C
	subs r4, r0, r5
	lsls r4, 24
	lsrs r4, 24
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_811D950
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_811D864
_0811D85C:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811D830

	thumb_func_start sub_811D864
sub_811D864: @ 811D864
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0x14]
	lsls r1, r0, 1
	mov r8, r1
	lsls r0, 4
	adds r1, r0, 0
	adds r1, 0x60
	movs r0, 0xFF
	ands r1, r0
	adds r1, 0x1
	movs r0, 0
	b _0811D930
_0811D88E:
	movs r6, 0
	movs r2, 0x10
	adds r2, r1
	mov r9, r2
	adds r0, 0x1
	mov r10, r0
	lsls r0, r1, 24
	lsrs r7, r0, 24
_0811D89E:
	mov r1, r8
	lsls r0, r1, 16
	lsrs r0, 16
	movs r2, 0x1
	add r8, r2
	bl sub_811F578
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =0x0000ffff
	cmp r4, r0
	beq _0811D926
	ldr r5, =gUnknown_0203A11C
	ldr r0, [r5]
	adds r0, 0xCC
	adds r1, r4, 0
	movs r2, 0
	bl CopyEasyChatWordPadded
	adds r0, r4, 0
	bl sub_811BF88
	adds r1, r0, 0
	cmp r1, 0
	bne _0811D8FC
	ldr r2, [r5]
	adds r2, 0xCC
	movs r0, 0xD
	adds r3, r6, 0
	muls r3, r0
	adds r3, 0x3
	lsls r3, 27
	lsrs r3, 24
	str r7, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r0, 0x2
	movs r1, 0x1
	bl sub_811D028
	b _0811D926
	.pool
_0811D8FC:
	ldr r2, [r5]
	adds r2, 0xCC
	movs r0, 0xD
	adds r3, r6, 0
	muls r3, r0
	adds r3, 0x3
	lsls r3, 27
	lsrs r3, 24
	str r7, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x5
	str r0, [sp, 0xC]
	movs r0, 0x3
	str r0, [sp, 0x10]
	movs r0, 0x2
	movs r1, 0x1
	bl sub_811D058
_0811D926:
	adds r6, 0x1
	cmp r6, 0x1
	ble _0811D89E
	mov r1, r9
	mov r0, r10
_0811D930:
	ldr r2, [sp, 0x14]
	cmp r0, r2
	blt _0811D88E
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_811D864

	thumb_func_start sub_811D950
sub_811D950: @ 811D950
	push {r4,r5,lr}
	sub sp, 0x8
	lsls r0, 24
	lsls r1, 24
	lsrs r0, 20
	adds r3, r0, 0
	adds r3, 0x60
	movs r0, 0xFF
	ands r3, r0
	lsrs r0, r1, 20
	adds r1, r3, r0
	cmp r1, 0xFF
	ble _0811D97C
	ldr r0, =0xffffff00
	adds r4, r1, r0
	movs r0, 0x80
	lsls r0, 1
	subs r0, r3
	b _0811D97E
	.pool
_0811D97C:
	movs r4, 0
_0811D97E:
	movs r5, 0xE0
	str r5, [sp]
	lsls r0, 16
	lsrs r0, 16
	str r0, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0x11
	movs r2, 0
	bl FillWindowPixelRect
	cmp r4, 0
	beq _0811D9AA
	str r5, [sp]
	lsls r0, r4, 16
	lsrs r0, 16
	str r0, [sp, 0x4]
	movs r0, 0x2
	movs r1, 0x11
	movs r2, 0
	movs r3, 0
	bl FillWindowPixelRect
_0811D9AA:
	add sp, 0x8
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811D950

	thumb_func_start sub_811D9B4
sub_811D9B4: @ 811D9B4
	push {lr}
	movs r0, 0x2
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r0, 0x2
	movs r1, 0x2
	bl CopyWindowToVram
	pop {r0}
	bx r0
	thumb_func_end sub_811D9B4

	thumb_func_start sub_811D9CC
sub_811D9CC: @ 811D9CC
	push {lr}
	ldr r1, =gUnknown_0203A11C
	cmp r0, 0x6
	bhi _0811DA86
	lsls r0, 2
	ldr r1, =_0811D9E8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811D9E8:
	.4byte _0811DA04
	.4byte _0811DA18
	.4byte _0811DA28
	.4byte _0811DA3C
	.4byte _0811DA50
	.4byte _0811DA64
	.4byte _0811DA78
_0811DA04:
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r0, 0
	strb r0, [r2, 0x6]
	ldr r2, [r1]
	movs r0, 0xA
	b _0811DA84
	.pool
_0811DA18:
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r3, 0
	movs r0, 0x9
	b _0811DA44
	.pool
_0811DA28:
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r0, 0xB
	strb r0, [r2, 0x6]
	ldr r2, [r1]
	movs r0, 0x11
	b _0811DA84
	.pool
_0811DA3C:
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r3, 0
	movs r0, 0x11
_0811DA44:
	strb r0, [r2, 0x6]
	ldr r0, [r1]
	strb r3, [r0, 0x7]
	b _0811DA86
	.pool
_0811DA50:
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r0, 0x11
	strb r0, [r2, 0x6]
	ldr r2, [r1]
	movs r0, 0xA
	b _0811DA84
	.pool
_0811DA64:
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r0, 0x12
	strb r0, [r2, 0x6]
	ldr r2, [r1]
	movs r0, 0x16
	b _0811DA84
	.pool
_0811DA78:
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r0, 0x16
	strb r0, [r2, 0x6]
	ldr r2, [r1]
	movs r0, 0x12
_0811DA84:
	strb r0, [r2, 0x7]
_0811DA86:
	ldr r1, [r1]
	ldrb r0, [r1, 0x6]
	movs r3, 0x1
	negs r3, r3
	adds r2, r3, 0
	ldrb r3, [r1, 0x7]
	cmp r0, r3
	bcs _0811DA98
	movs r2, 0x1
_0811DA98:
	strb r2, [r1, 0x8]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811D9CC

	thumb_func_start sub_811DAA4
sub_811DAA4: @ 811DAA4
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r1, [r4]
	ldrb r2, [r1, 0x6]
	ldrb r0, [r1, 0x7]
	cmp r2, r0
	beq _0811DAD4
	ldrb r0, [r1, 0x8]
	adds r0, r2, r0
	strb r0, [r1, 0x6]
	ldr r0, [r4]
	ldrb r0, [r0, 0x6]
	bl sub_811DADC
	ldr r0, [r4]
	ldrb r1, [r0, 0x6]
	ldrb r0, [r0, 0x7]
	eors r1, r0
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	b _0811DAD6
	.pool
_0811DAD4:
	movs r0, 0
_0811DAD6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811DAA4

	thumb_func_start sub_811DADC
sub_811DADC: @ 811DADC
	push {r4,lr}
	sub sp, 0x8
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x1E
	str r0, [sp]
	movs r0, 0xA
	str r0, [sp, 0x4]
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	movs r3, 0xA
	bl FillBgTilemapBufferRect_Palette0
	cmp r4, 0x16
	bls _0811DAFE
	b _0811DC1A
_0811DAFE:
	lsls r0, r4, 2
	ldr r1, =_0811DB0C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811DB0C:
	.4byte _0811DC1A
	.4byte _0811DB68
	.4byte _0811DB70
	.4byte _0811DB78
	.4byte _0811DB80
	.4byte _0811DB88
	.4byte _0811DB90
	.4byte _0811DC00
	.4byte _0811DBF2
	.4byte _0811DBE4
	.4byte _0811DBD6
	.4byte _0811DB9E
	.4byte _0811DBA6
	.4byte _0811DBAE
	.4byte _0811DBB6
	.4byte _0811DBBE
	.4byte _0811DBC6
	.4byte _0811DBCE
	.4byte _0811DBD6
	.4byte _0811DBE4
	.4byte _0811DBF2
	.4byte _0811DC00
	.4byte _0811DC0E
_0811DB68:
	movs r0, 0xB
	movs r1, 0xE
	movs r2, 0x3
	b _0811DB96
_0811DB70:
	movs r0, 0x9
	movs r1, 0xE
	movs r2, 0x7
	b _0811DB96
_0811DB78:
	movs r0, 0x7
	movs r1, 0xE
	movs r2, 0xB
	b _0811DB96
_0811DB80:
	movs r0, 0x5
	movs r1, 0xE
	movs r2, 0xF
	b _0811DB96
_0811DB88:
	movs r0, 0x3
	movs r1, 0xE
	movs r2, 0x13
	b _0811DB96
_0811DB90:
	movs r0, 0x1
	movs r1, 0xE
	movs r2, 0x17
_0811DB96:
	movs r3, 0x2
	bl sub_811DC28
	b _0811DC1A
_0811DB9E:
	movs r0, 0x1
	movs r1, 0xA
	movs r2, 0x18
	b _0811DBDC
_0811DBA6:
	movs r0, 0x1
	movs r1, 0xA
	movs r2, 0x19
	b _0811DBDC
_0811DBAE:
	movs r0, 0x1
	movs r1, 0xA
	movs r2, 0x1A
	b _0811DBDC
_0811DBB6:
	movs r0, 0x1
	movs r1, 0xA
	movs r2, 0x1B
	b _0811DBDC
_0811DBBE:
	movs r0, 0x1
	movs r1, 0xA
	movs r2, 0x1C
	b _0811DBDC
_0811DBC6:
	movs r0, 0x1
	movs r1, 0xA
	movs r2, 0x1D
	b _0811DBDC
_0811DBCE:
	movs r0, 0
	movs r1, 0xA
	movs r2, 0x1E
	b _0811DBDC
_0811DBD6:
	movs r0, 0x1
	movs r1, 0xA
	movs r2, 0x17
_0811DBDC:
	movs r3, 0xA
	bl sub_811DC28
	b _0811DC1A
_0811DBE4:
	movs r0, 0x1
	movs r1, 0xB
	movs r2, 0x17
	movs r3, 0x8
	bl sub_811DC28
	b _0811DC1A
_0811DBF2:
	movs r0, 0x1
	movs r1, 0xC
	movs r2, 0x17
	movs r3, 0x6
	bl sub_811DC28
	b _0811DC1A
_0811DC00:
	movs r0, 0x1
	movs r1, 0xD
	movs r2, 0x17
	movs r3, 0x4
	bl sub_811DC28
	b _0811DC1A
_0811DC0E:
	movs r0, 0x1
	movs r1, 0xE
	movs r2, 0x17
	movs r3, 0x2
	bl sub_811DC28
_0811DC1A:
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	add sp, 0x8
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811DADC

	thumb_func_start sub_811DC28
sub_811DC28: @ 811DC28
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r12, r0
	adds r7, r1, 0
	mov r9, r2
	mov r10, r3
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xC0
	lsls r1, 2
	adds r6, r0, r1
	mov r0, r12
	add r0, r9
	subs r5, r0, 0x1
	adds r0, r7, r3
	subs r0, 0x1
	mov r8, r0
	mov r2, r12
	adds r3, r7, 0
	lsls r0, r3, 5
	adds r0, r2
	lsls r0, 1
	adds r0, r6
	ldr r4, =0x00004001
	adds r1, r4, 0
	strh r1, [r0]
	adds r2, 0x1
	cmp r2, r5
	bge _0811DC84
	ldr r0, =0x00004002
	adds r4, r0, 0
	lsls r1, r2, 1
	lsls r0, r3, 6
	adds r0, r6
	adds r1, r0
	subs r2, r5, r2
_0811DC78:
	strh r4, [r1]
	adds r1, 0x2
	subs r2, 0x1
	cmp r2, 0
	bne _0811DC78
	adds r2, r5, 0
_0811DC84:
	lsls r0, r3, 5
	adds r0, r2
	lsls r0, 1
	adds r0, r6
	ldr r2, =0x00004003
	adds r1, r2, 0
	strh r1, [r0]
	adds r3, 0x1
	mov r4, r12
	adds r4, 0x1
	adds r0, r7, 0x1
	str r0, [sp, 0x4]
	mov r1, r9
	subs r1, 0x2
	str r1, [sp]
	movs r2, 0x2
	negs r2, r2
	add r10, r2
	cmp r3, r8
	bge _0811DCF4
	lsls r7, r4, 1
	mov r9, r7
_0811DCB0:
	lsls r0, r3, 5
	add r0, r12
	lsls r0, 1
	adds r0, r6
	ldr r2, =0x00004005
	adds r1, r2, 0
	strh r1, [r0]
	adds r2, r4, 0
	adds r7, r3, 0x1
	cmp r4, r5
	bge _0811DCE0
	movs r0, 0x80
	lsls r0, 7
	adds r1, r0, 0
	lsls r0, r3, 6
	adds r0, r6
	add r0, r9
	subs r2, r5, r4
_0811DCD4:
	strh r1, [r0]
	adds r0, 0x2
	subs r2, 0x1
	cmp r2, 0
	bne _0811DCD4
	adds r2, r5, 0
_0811DCE0:
	lsls r0, r3, 5
	adds r0, r2
	lsls r0, 1
	adds r0, r6
	ldr r2, =0x00004007
	adds r1, r2, 0
	strh r1, [r0]
	adds r3, r7, 0
	cmp r3, r8
	blt _0811DCB0
_0811DCF4:
	lsls r0, r3, 5
	mov r7, r12
	adds r1, r0, r7
	lsls r1, 1
	adds r1, r6
	ldr r7, =0x00004009
	adds r2, r7, 0
	strh r2, [r1]
	adds r2, r4, 0
	mov r12, r0
	cmp r4, r5
	bge _0811DD26
	ldr r0, =0x0000400a
	adds r7, r0, 0
	lsls r1, r4, 1
	lsls r0, r3, 6
	adds r0, r6
	adds r0, r1, r0
	subs r2, r5, r4
_0811DD1A:
	strh r7, [r0]
	adds r0, 0x2
	subs r2, 0x1
	cmp r2, 0
	bne _0811DD1A
	adds r2, r5, 0
_0811DD26:
	mov r1, r12
	adds r0, r1, r2
	lsls r0, 1
	adds r0, r6
	ldr r2, =0x0000400b
	adds r1, r2, 0
	strh r1, [r0]
	lsls r0, r4, 27
	lsrs r0, 24
	ldr r3, [sp, 0x4]
	lsls r1, r3, 27
	lsrs r1, 24
	ldr r4, [sp]
	lsls r2, r4, 27
	lsrs r2, 24
	mov r7, r10
	lsls r3, r7, 27
	lsrs r3, 24
	bl sub_811DE5C
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811DC28

	thumb_func_start sub_811DD84
sub_811DD84: @ 811DD84
	push {lr}
	movs r1, 0x80
	lsls r1, 4
	movs r0, 0x2
	movs r2, 0
	bl ChangeBgY
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldr r1, =0x000002ce
	adds r0, r1
	movs r1, 0
	strh r1, [r0]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811DD84

	thumb_func_start sub_811DDAC
sub_811DDAC: @ 811DDAC
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r1, 24
	lsrs r5, r1, 24
	movs r0, 0x2
	bl GetBgY
	adds r2, r0, 0
	ldr r0, =gUnknown_0203A11C
	ldr r3, [r0]
	ldr r0, =0x000002ce
	adds r1, r3, r0
	ldrh r0, [r1]
	adds r0, r4
	strh r0, [r1]
	lsls r4, 20
	asrs r4, 16
	lsls r0, r4, 8
	adds r2, r0
	cmp r5, 0
	beq _0811DE00
	movs r1, 0xB4
	lsls r1, 2
	adds r0, r3, r1
	str r2, [r0]
	movs r0, 0xB5
	lsls r0, 2
	adds r1, r3, r0
	lsls r0, r5, 8
	str r0, [r1]
	cmp r4, 0
	bge _0811DE0A
	negs r0, r0
	str r0, [r1]
	b _0811DE0A
	.pool
_0811DE00:
	movs r0, 0x2
	adds r1, r2, 0
	movs r2, 0
	bl ChangeBgY
_0811DE0A:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811DDAC

	thumb_func_start sub_811DE10
sub_811DE10: @ 811DE10
	push {lr}
	movs r0, 0x2
	bl GetBgY
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r3, 0xB4
	lsls r3, 2
	adds r1, r2, r3
	ldr r1, [r1]
	cmp r0, r1
	beq _0811DE40
	movs r1, 0xB5
	lsls r1, 2
	adds r0, r2, r1
	ldr r1, [r0]
	movs r0, 0x2
	movs r2, 0x1
	bl ChangeBgY
	movs r0, 0x1
	b _0811DE42
	.pool
_0811DE40:
	movs r0, 0
_0811DE42:
	pop {r1}
	bx r1
	thumb_func_end sub_811DE10

	thumb_func_start sub_811DE48
sub_811DE48: @ 811DE48
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	ldr r1, =0x000002ce
	adds r0, r1
	ldrh r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_811DE48

	thumb_func_start sub_811DE5C
sub_811DE5C: @ 811DE5C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, r0, 8
	adds r0, r2
	orrs r4, r0
	lsls r5, r1, 8
	adds r1, r3
	orrs r5, r1
	movs r0, 0x40
	adds r1, r4, 0
	bl SetGpuReg
	movs r0, 0x44
	adds r1, r5, 0
	bl SetGpuReg
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_811DE5C

	thumb_func_start sub_811DE90
sub_811DE90: @ 811DE90
	push {r4,r5,lr}
	ldr r0, =gUnknown_08597CA0
	bl LoadSpriteSheets
	ldr r0, =gUnknown_08597CC0
	bl LoadSpritePalettes
	movs r5, 0
	ldr r4, =gUnknown_08597CE8
_0811DEA2:
	adds r0, r4, 0
	bl LoadCompressedObjectPic
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, 0x3
	bls _0811DEA2
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811DE90

	thumb_func_start sub_811DEC4
sub_811DEC4: @ 811DEC4
	push {lr}
	bl sub_811BA68
	lsls r0, 24
	ldr r1, =gUnknown_08597C30
	lsrs r0, 22
	adds r0, r1
	ldrb r2, [r0]
	lsls r1, r2, 27
	lsrs r1, 8
	lsrs r2, 5
	lsls r2, 19
	ldr r0, =gUnknown_08597D18
	movs r3, 0xD0
	lsls r3, 12
	adds r1, r3
	asrs r1, 16
	movs r3, 0x80
	lsls r3, 12
	adds r2, r3
	asrs r2, 16
	movs r3, 0x2
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r1, 0xB6
	lsls r1, 2
	adds r2, r1
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r2]
	movs r0, 0x1
	strh r0, [r1, 0x30]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811DEC4

	thumb_func_start sub_811DF28
sub_811DF28: @ 811DF28
	push {lr}
	adds r1, r0, 0
	movs r2, 0x30
	ldrsh r0, [r1, r2]
	cmp r0, 0
	beq _0811DF56
	ldrh r0, [r1, 0x2E]
	adds r0, 0x1
	strh r0, [r1, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x2
	ble _0811DF56
	movs r0, 0
	strh r0, [r1, 0x2E]
	ldrh r0, [r1, 0x24]
	adds r0, 0x1
	strh r0, [r1, 0x24]
	lsls r0, 16
	cmp r0, 0
	ble _0811DF56
	ldr r0, =0x0000fffa
	strh r0, [r1, 0x24]
_0811DF56:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811DF28

	thumb_func_start sub_811DF60
sub_811DF60: @ 811DF60
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	ldr r2, =gUnknown_0203A11C
	ldr r2, [r2]
	movs r3, 0xB6
	lsls r3, 2
	adds r2, r3
	ldr r3, [r2]
	movs r4, 0
	strh r0, [r3, 0x20]
	ldr r0, [r2]
	strh r1, [r0, 0x22]
	ldr r0, [r2]
	strh r4, [r0, 0x24]
	ldr r0, [r2]
	strh r4, [r0, 0x2E]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811DF60

	thumb_func_start sub_811DF90
sub_811DF90: @ 811DF90
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	movs r0, 0xB6
	lsls r0, 2
	adds r1, r0
	ldr r0, [r1]
	movs r2, 0
	strh r2, [r0, 0x2E]
	ldr r0, [r1]
	strh r2, [r0, 0x30]
	ldr r0, [r1]
	strh r2, [r0, 0x24]
	bx lr
	.pool
	thumb_func_end sub_811DF90

	thumb_func_start sub_811DFB0
sub_811DFB0: @ 811DFB0
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xB6
	lsls r1, 2
	adds r0, r1
	ldr r1, [r0]
	movs r0, 0x1
	strh r0, [r1, 0x30]
	bx lr
	.pool
	thumb_func_end sub_811DFB0

	thumb_func_start sub_811DFC8
sub_811DFC8: @ 811DFC8
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	ldr r6, =gUnknown_08597D68
	adds r0, r6, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x3
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0203A11C
	ldr r2, [r5]
	movs r1, 0xB7
	lsls r1, 2
	mov r8, r1
	add r2, r8
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r4, =gSprites
	adds r1, r4
	str r1, [r2]
	movs r0, 0x20
	strh r0, [r1, 0x24]
	adds r0, r6, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0x3
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r2, [r5]
	movs r1, 0xB8
	lsls r1, 2
	adds r3, r2, r1
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	str r1, [r3]
	ldr r0, =0x0000ffe0
	strh r0, [r1, 0x24]
	add r2, r8
	ldr r1, [r2]
	adds r1, 0x3F
	ldrb r0, [r1]
	movs r2, 0x1
	orrs r0, r2
	strb r0, [r1]
	bl sub_811E088
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811DFC8

	thumb_func_start sub_811E050
sub_811E050: @ 811E050
	push {r4-r6,lr}
	ldr r5, =gUnknown_0203A11C
	ldr r0, [r5]
	movs r4, 0xB7
	lsls r4, 2
	adds r0, r4
	ldr r0, [r0]
	bl DestroySprite
	ldr r0, [r5]
	adds r4, r0, r4
	movs r6, 0
	str r6, [r4]
	movs r4, 0xB8
	lsls r4, 2
	adds r0, r4
	ldr r0, [r0]
	bl DestroySprite
	ldr r0, [r5]
	adds r0, r4
	str r6, [r0]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E050

	thumb_func_start sub_811E088
sub_811E088: @ 811E088
	push {r4,lr}
	sub sp, 0x4
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	movs r2, 0xB7
	lsls r2, 2
	adds r0, r1, r2
	ldr r0, [r0]
	cmp r0, 0
	beq _0811E0E4
	adds r2, 0x4
	adds r0, r1, r2
	ldr r0, [r0]
	cmp r0, 0
	beq _0811E0E4
	mov r4, sp
	adds r4, 0x1
	mov r0, sp
	adds r1, r4, 0
	bl sub_811BB9C
	bl sub_811BBB0
	lsls r0, 24
	cmp r0, 0
	bne _0811E0D4
	mov r0, sp
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	movs r1, 0
	ldrsb r1, [r4, r1]
	bl sub_811E0EC
	b _0811E0E4
	.pool
_0811E0D4:
	mov r0, sp
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	movs r1, 0
	ldrsb r1, [r4, r1]
	bl sub_811E1A4
_0811E0E4:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811E088

	thumb_func_start sub_811E0EC
sub_811E0EC: @ 811E0EC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r0, 24
	asrs r5, r0, 24
	movs r0, 0x1
	negs r0, r0
	cmp r5, r0
	beq _0811E150
	ldr r0, =gUnknown_0203A11C
	mov r8, r0
	ldr r0, [r0]
	movs r4, 0xB7
	lsls r4, 2
	adds r0, r4
	ldr r0, [r0]
	movs r1, 0
	bl StartSpriteAnim
	mov r2, r8
	ldr r1, [r2]
	adds r4, r1, r4
	ldr r2, [r4]
	movs r0, 0x54
	muls r5, r0
	adds r5, 0x3A
	strh r5, [r2, 0x20]
	ldr r0, [r4]
	lsls r4, r7, 24
	asrs r4, 20
	adds r4, 0x60
	strh r4, [r0, 0x22]
	movs r6, 0xB8
	lsls r6, 2
	adds r1, r6
	ldr r0, [r1]
	movs r1, 0
	bl StartSpriteAnim
	mov r1, r8
	ldr r0, [r1]
	adds r0, r6
	ldr r1, [r0]
	strh r5, [r1, 0x20]
	b _0811E192
	.pool
_0811E150:
	ldr r6, =gUnknown_0203A11C
	ldr r0, [r6]
	movs r4, 0xB7
	lsls r4, 2
	adds r0, r4
	ldr r0, [r0]
	movs r1, 0x1
	bl StartSpriteAnim
	ldr r1, [r6]
	adds r4, r1, r4
	ldr r0, [r4]
	movs r2, 0xD8
	mov r8, r2
	mov r2, r8
	strh r2, [r0, 0x20]
	ldr r0, [r4]
	lsls r4, r7, 24
	asrs r4, 20
	adds r4, 0x70
	strh r4, [r0, 0x22]
	movs r5, 0xB8
	lsls r5, 2
	adds r1, r5
	ldr r0, [r1]
	movs r1, 0x1
	bl StartSpriteAnim
	ldr r0, [r6]
	adds r0, r5
	ldr r1, [r0]
	mov r2, r8
	strh r2, [r1, 0x20]
_0811E192:
	ldr r0, [r0]
	strh r4, [r0, 0x22]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E0EC

	thumb_func_start sub_811E1A4
sub_811E1A4: @ 811E1A4
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsls r1, 24
	lsrs r5, r1, 24
	lsrs r4, r0, 24
	asrs r2, r0, 24
	movs r0, 0x1
	negs r0, r0
	cmp r2, r0
	beq _0811E234
	lsls r0, r5, 24
	asrs r1, r0, 24
	lsls r0, r1, 4
	adds r0, 0x60
	mov r8, r0
	movs r7, 0x20
	cmp r2, 0x6
	bne _0811E1D6
	cmp r1, 0
	bne _0811E1D6
	movs r7, 0x9E
	movs r6, 0x2
	b _0811E1EC
_0811E1D6:
	ldr r3, =gUnknown_08597D08
	lsls r1, r4, 24
	lsrs r0, r1, 24
	movs r2, 0
	cmp r0, 0x6
	bhi _0811E1E4
	asrs r2, r1, 24
_0811E1E4:
	adds r0, r2, r3
	ldrb r0, [r0]
	adds r7, r0
	movs r6, 0x3
_0811E1EC:
	ldr r5, =gUnknown_0203A11C
	ldr r0, [r5]
	movs r4, 0xB7
	lsls r4, 2
	adds r0, r4
	ldr r0, [r0]
	adds r1, r6, 0
	bl StartSpriteAnim
	ldr r1, [r5]
	adds r4, r1, r4
	ldr r0, [r4]
	strh r7, [r0, 0x20]
	ldr r0, [r4]
	mov r2, r8
	strh r2, [r0, 0x22]
	movs r4, 0xB8
	lsls r4, 2
	adds r1, r4
	ldr r0, [r1]
	adds r1, r6, 0
	bl StartSpriteAnim
	ldr r0, [r5]
	adds r0, r4
	ldr r1, [r0]
	strh r7, [r1, 0x20]
	ldr r0, [r0]
	mov r1, r8
	strh r1, [r0, 0x22]
	b _0811E27A
	.pool
_0811E234:
	ldr r6, =gUnknown_0203A11C
	ldr r0, [r6]
	movs r4, 0xB7
	lsls r4, 2
	adds r0, r4
	ldr r0, [r0]
	movs r1, 0x1
	bl StartSpriteAnim
	ldr r1, [r6]
	adds r4, r1, r4
	ldr r0, [r4]
	movs r2, 0xD8
	mov r8, r2
	mov r2, r8
	strh r2, [r0, 0x20]
	ldr r0, [r4]
	lsls r4, r5, 24
	asrs r4, 20
	adds r4, 0x70
	strh r4, [r0, 0x22]
	movs r5, 0xB8
	lsls r5, 2
	adds r1, r5
	ldr r0, [r1]
	movs r1, 0x1
	bl StartSpriteAnim
	ldr r0, [r6]
	adds r0, r5
	ldr r1, [r0]
	mov r2, r8
	strh r2, [r1, 0x20]
	ldr r0, [r0]
	strh r4, [r0, 0x22]
_0811E27A:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E1A4

	thumb_func_start sub_811E288
sub_811E288: @ 811E288
	push {lr}
	ldr r0, =gUnknown_08597D18
	movs r1, 0
	movs r2, 0
	movs r3, 0x4
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203A11C
	ldr r2, [r1]
	movs r1, 0xB9
	lsls r1, 2
	adds r2, r1
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	str r1, [r2]
	ldr r0, =sub_811E2DC
	str r0, [r1, 0x1C]
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	movs r2, 0x8
	orrs r0, r2
	strb r0, [r1, 0x5]
	bl sub_811E30C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E288

	thumb_func_start sub_811E2DC
sub_811E2DC: @ 811E2DC
	push {lr}
	adds r1, r0, 0
	ldrh r0, [r1, 0x2E]
	adds r0, 0x1
	strh r0, [r1, 0x2E]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x2
	ble _0811E302
	movs r0, 0
	strh r0, [r1, 0x2E]
	ldrh r0, [r1, 0x24]
	adds r0, 0x1
	strh r0, [r1, 0x24]
	lsls r0, 16
	cmp r0, 0
	ble _0811E302
	ldr r0, =0x0000fffa
	strh r0, [r1, 0x24]
_0811E302:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E2DC

	thumb_func_start sub_811E30C
sub_811E30C: @ 811E30C
	push {r4,lr}
	sub sp, 0x4
	mov r4, sp
	adds r4, 0x1
	mov r0, sp
	adds r1, r4, 0
	bl sub_811BBC8
	mov r0, sp
	movs r1, 0
	ldrsb r1, [r0, r1]
	movs r0, 0xD
	muls r0, r1
	lsls r0, 27
	movs r1, 0
	ldrsb r1, [r4, r1]
	lsls r1, 28
	movs r2, 0xE0
	lsls r2, 21
	adds r0, r2
	lsrs r0, 24
	movs r2, 0xC0
	lsls r2, 23
	adds r1, r2
	lsrs r1, 24
	bl sub_811E34C
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_811E30C

	thumb_func_start sub_811E34C
sub_811E34C: @ 811E34C
	push {r4,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, 24
	lsrs r4, r1, 24
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xB9
	lsls r1, 2
	adds r2, r0, r1
	ldr r0, [r2]
	cmp r0, 0
	beq _0811E376
	movs r1, 0
	strh r3, [r0, 0x20]
	ldr r0, [r2]
	strh r4, [r0, 0x22]
	ldr r0, [r2]
	strh r1, [r0, 0x24]
	ldr r0, [r2]
	strh r1, [r0, 0x2E]
_0811E376:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E34C

	thumb_func_start sub_811E380
sub_811E380: @ 811E380
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r0, [r4]
	movs r1, 0xB9
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	cmp r0, 0
	beq _0811E3A2
	bl DestroySprite
	ldr r0, [r4]
	movs r1, 0xB9
	lsls r1, 2
	adds r0, r1
	movs r1, 0
	str r1, [r0]
_0811E3A2:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E380

	thumb_func_start sub_811E3AC
sub_811E3AC: @ 811E3AC
	push {r4-r6,lr}
	ldr r0, =gUnknown_08597DF0
	movs r1, 0xD0
	movs r2, 0x80
	movs r3, 0x6
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r5, =gUnknown_0203A11C
	ldr r2, [r5]
	movs r1, 0xBA
	lsls r1, 2
	adds r2, r1
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r4, =gSprites
	adds r1, r4
	str r1, [r2]
	movs r6, 0
	ldr r0, =0x0000ffc0
	strh r0, [r1, 0x24]
	ldr r0, =gUnknown_08597DD0
	movs r1, 0xD0
	movs r2, 0x50
	movs r3, 0x5
	bl CreateSprite
	lsls r0, 24
	lsrs r0, 24
	ldr r2, [r5]
	movs r1, 0xBB
	lsls r1, 2
	adds r3, r2, r1
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r4
	str r1, [r3]
	strb r6, [r2, 0x9]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E3AC

	thumb_func_start sub_811E418
sub_811E418: @ 811E418
	push {r4,lr}
	ldr r4, =gUnknown_0203A11C
	ldr r2, [r4]
	ldrb r3, [r2, 0x9]
	cmp r3, 0
	beq _0811E430
	cmp r3, 0x1
	beq _0811E488
	movs r0, 0
	b _0811E4A6
	.pool
_0811E430:
	movs r0, 0xBA
	lsls r0, 2
	adds r2, r0
	ldr r1, [r2]
	ldrh r0, [r1, 0x24]
	adds r0, 0x8
	strh r0, [r1, 0x24]
	ldr r2, [r2]
	movs r1, 0x24
	ldrsh r0, [r2, r1]
	cmp r0, 0
	blt _0811E4A4
	strh r3, [r2, 0x24]
	bl sub_811BBB0
	lsls r0, 24
	cmp r0, 0
	bne _0811E466
	ldr r0, [r4]
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0x1
	bl StartSpriteAnim
	b _0811E476
_0811E466:
	ldr r0, [r4]
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0x2
	bl StartSpriteAnim
_0811E476:
	ldr r0, =gUnknown_0203A11C
	ldr r1, [r0]
	ldrb r0, [r1, 0x9]
	adds r0, 0x1
	strb r0, [r1, 0x9]
	b _0811E4A4
	.pool
_0811E488:
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r2, r1
	ldr r0, [r0]
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _0811E4A4
	movs r0, 0x2
	strb r0, [r2, 0x9]
	movs r0, 0
	b _0811E4A6
_0811E4A4:
	movs r0, 0x1
_0811E4A6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811E418

	thumb_func_start sub_811E4AC
sub_811E4AC: @ 811E4AC
	push {lr}
	ldr r2, =gUnknown_0203A11C
	ldr r1, [r2]
	movs r0, 0
	strb r0, [r1, 0x9]
	ldr r0, [r2]
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0x3
	bl StartSpriteAnim
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E4AC

	thumb_func_start sub_811E4D0
sub_811E4D0: @ 811E4D0
	push {r4-r6,lr}
	ldr r5, =gUnknown_0203A11C
	ldr r3, [r5]
	ldrb r0, [r3, 0x9]
	cmp r0, 0
	beq _0811E4E8
	cmp r0, 0x1
	beq _0811E502
	movs r0, 0
	b _0811E554
	.pool
_0811E4E8:
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r3, r1
	ldr r0, [r0]
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _0811E552
	movs r0, 0x1
	strb r0, [r3, 0x9]
	b _0811E552
_0811E502:
	movs r0, 0xBA
	lsls r0, 2
	adds r2, r3, r0
	ldr r1, [r2]
	ldrh r0, [r1, 0x24]
	subs r0, 0x8
	movs r6, 0
	strh r0, [r1, 0x24]
	ldr r0, [r2]
	movs r2, 0x24
	ldrsh r1, [r0, r2]
	movs r0, 0x40
	negs r0, r0
	cmp r1, r0
	bgt _0811E552
	movs r4, 0xBB
	lsls r4, 2
	adds r0, r3, r4
	ldr r0, [r0]
	bl DestroySprite
	ldr r0, [r5]
	movs r1, 0xBA
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	bl DestroySprite
	ldr r1, [r5]
	adds r4, r1, r4
	str r6, [r4]
	movs r2, 0xBA
	lsls r2, 2
	adds r0, r1, r2
	str r6, [r0]
	ldrb r0, [r1, 0x9]
	adds r0, 0x1
	strb r0, [r1, 0x9]
	movs r0, 0
	b _0811E554
_0811E552:
	movs r0, 0x1
_0811E554:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_811E4D0

	thumb_func_start sub_811E55C
sub_811E55C: @ 811E55C
	push {lr}
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0x4
	bl StartSpriteAnim
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E55C

	thumb_func_start sub_811E578
sub_811E578: @ 811E578
	push {lr}
	bl sub_811BBB0
	lsls r0, 24
	cmp r0, 0
	bne _0811E59C
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0x1
	bl StartSpriteAnim
	b _0811E5AE
	.pool
_0811E59C:
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	movs r1, 0x2
	bl StartSpriteAnim
_0811E5AE:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E578

	thumb_func_start sub_811E5B8
sub_811E5B8: @ 811E5B8
	ldr r0, =gUnknown_0203A11C
	ldr r0, [r0]
	movs r1, 0xBB
	lsls r1, 2
	adds r0, r1
	ldr r0, [r0]
	adds r0, 0x3F
	ldrb r1, [r0]
	lsrs r1, 4
	movs r0, 0x1
	bics r0, r1
	bx lr
	.pool
	thumb_func_end sub_811E5B8

	thumb_func_start sub_811E5D4
sub_811E5D4: @ 811E5D4
	push {r4,lr}
	ldr r4, =gUnknown_08597E48
	adds r0, r4, 0
	movs r1, 0x60
	movs r2, 0x50
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x40
	beq _0811E602
	ldr r0, =gUnknown_0203A11C
	ldr r2, [r0]
	movs r0, 0xBC
	lsls r0, 2
	adds r2, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r2]
_0811E602:
	adds r0, r4, 0
	movs r1, 0x60
	movs r2, 0x9C
	movs r3, 0
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x40
	beq _0811E636
	ldr r0, =gUnknown_0203A11C
	ldr r2, [r0]
	movs r0, 0xBD
	lsls r0, 2
	adds r2, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r2]
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r2, 0x2
	orrs r1, r2
	strb r1, [r0]
_0811E636:
	bl sub_811E6B0
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E5D4

	thumb_func_start sub_811E64C
sub_811E64C: @ 811E64C
	push {r4-r6,lr}
	bl sub_811BBF8
	ldr r6, =gUnknown_0203A11C
	ldr r1, [r6]
	movs r2, 0xBC
	lsls r2, 2
	adds r1, r2
	ldr r1, [r1]
	movs r2, 0
	cmp r0, 0
	bne _0811E666
	movs r2, 0x1
_0811E666:
	adds r3, r1, 0
	adds r3, 0x3E
	movs r4, 0x1
	lsls r2, 2
	ldrb r1, [r3]
	movs r5, 0x5
	negs r5, r5
	adds r0, r5, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3]
	bl sub_811BC2C
	ldr r1, [r6]
	movs r2, 0xBD
	lsls r2, 2
	adds r1, r2
	ldr r1, [r1]
	movs r2, 0
	cmp r0, 0
	bne _0811E692
	movs r2, 0x1
_0811E692:
	adds r3, r1, 0
	adds r3, 0x3E
	adds r1, r4, 0
	ands r1, r2
	lsls r1, 2
	ldrb r2, [r3]
	adds r0, r5, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E64C

	thumb_func_start sub_811E6B0
sub_811E6B0: @ 811E6B0
	ldr r3, =gUnknown_0203A11C
	ldr r0, [r3]
	movs r1, 0xBC
	lsls r1, 2
	adds r0, r1
	ldr r1, [r0]
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1]
	ldr r0, [r3]
	movs r1, 0xBD
	lsls r1, 2
	adds r0, r1
	ldr r1, [r0]
	adds r1, 0x3E
	ldrb r0, [r1]
	orrs r0, r2
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_811E6B0

	thumb_func_start sub_811E6E0
sub_811E6E0: @ 811E6E0
	push {lr}
	cmp r0, 0
	bne _0811E6FC
	ldr r0, =gUnknown_0203A11C
	ldr r2, [r0]
	movs r1, 0xBC
	lsls r1, 2
	adds r0, r2, r1
	ldr r0, [r0]
	movs r1, 0x60
	b _0811E70A
	.pool
_0811E6FC:
	ldr r0, =gUnknown_0203A11C
	ldr r2, [r0]
	movs r1, 0xBC
	lsls r1, 2
	adds r0, r2, r1
	ldr r0, [r0]
	movs r1, 0x78
_0811E70A:
	strh r1, [r0, 0x20]
	movs r3, 0xBD
	lsls r3, 2
	adds r0, r2, r3
	ldr r0, [r0]
	strh r1, [r0, 0x20]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E6E0

	thumb_func_start sub_811E720
sub_811E720: @ 811E720
	push {r4,lr}
	ldr r4, =gUnknown_08597E30
	adds r0, r4, 0
	movs r1, 0xDC
	movs r2, 0x54
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x40
	beq _0811E74E
	ldr r0, =gUnknown_0203A11C
	ldr r2, [r0]
	movs r0, 0xBE
	lsls r0, 2
	adds r2, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r2]
_0811E74E:
	adds r0, r4, 0
	movs r1, 0xDC
	movs r2, 0x9C
	movs r3, 0x1
	bl CreateSprite
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x40
	beq _0811E77E
	ldr r0, =gUnknown_0203A11C
	ldr r2, [r0]
	movs r0, 0xBF
	lsls r0, 2
	adds r2, r0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	str r0, [r2]
	movs r1, 0x1
	bl StartSpriteAnim
_0811E77E:
	bl sub_811E7F8
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E720

	thumb_func_start sub_811E794
sub_811E794: @ 811E794
	push {r4-r6,lr}
	bl sub_811BBF8
	ldr r6, =gUnknown_0203A11C
	ldr r1, [r6]
	movs r2, 0xBE
	lsls r2, 2
	adds r1, r2
	ldr r1, [r1]
	movs r2, 0
	cmp r0, 0
	bne _0811E7AE
	movs r2, 0x1
_0811E7AE:
	adds r3, r1, 0
	adds r3, 0x3E
	movs r4, 0x1
	lsls r2, 2
	ldrb r1, [r3]
	movs r5, 0x5
	negs r5, r5
	adds r0, r5, 0
	ands r0, r1
	orrs r0, r2
	strb r0, [r3]
	bl sub_811BC2C
	ldr r1, [r6]
	movs r2, 0xBF
	lsls r2, 2
	adds r1, r2
	ldr r1, [r1]
	movs r2, 0
	cmp r0, 0
	bne _0811E7DA
	movs r2, 0x1
_0811E7DA:
	adds r3, r1, 0
	adds r3, 0x3E
	adds r1, r4, 0
	ands r1, r2
	lsls r1, 2
	ldrb r2, [r3]
	adds r0, r5, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E794

	thumb_func_start sub_811E7F8
sub_811E7F8: @ 811E7F8
	ldr r3, =gUnknown_0203A11C
	ldr r0, [r3]
	movs r1, 0xBE
	lsls r1, 2
	adds r0, r1
	ldr r1, [r0]
	adds r1, 0x3E
	ldrb r0, [r1]
	movs r2, 0x4
	orrs r0, r2
	strb r0, [r1]
	ldr r0, [r3]
	movs r1, 0xBF
	lsls r1, 2
	adds r0, r1
	ldr r1, [r0]
	adds r1, 0x3E
	ldrb r0, [r1]
	orrs r0, r2
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_811E7F8

	thumb_func_start sub_811E828
sub_811E828: @ 811E828
	push {r4,r5,lr}
	sub sp, 0x4
	bl sub_811BCBC
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0811E84C
	cmp r0, 0x1
	bgt _0811E842
	cmp r0, 0
	beq _0811E848
	b _0811E8D0
_0811E842:
	cmp r0, 0x2
	beq _0811E850
	b _0811E8D0
_0811E848:
	movs r4, 0x43
	b _0811E852
_0811E84C:
	movs r4, 0x44
	b _0811E852
_0811E850:
	movs r4, 0x7
_0811E852:
	bl sub_811BA68
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bne _0811E8D0
	adds r0, r4, 0
	ldr r5, =SpriteCallbackDummy
	movs r4, 0
	str r4, [sp]
	adds r1, r5, 0
	movs r2, 0x4C
	movs r3, 0x28
	bl AddPseudoFieldObject
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x40
	beq _0811E892
	ldr r1, =gSprites
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r1
	ldrb r2, [r0, 0x5]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	strb r1, [r0, 0x5]
	movs r1, 0x2
	bl StartSpriteAnim
_0811E892:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	movs r1, 0x69
	cmp r0, 0
	bne _0811E8A0
	movs r1, 0x64
_0811E8A0:
	str r4, [sp]
	adds r0, r1, 0
	adds r1, r5, 0
	movs r2, 0x34
	movs r3, 0x28
	bl AddPseudoFieldObject
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x40
	beq _0811E8D0
	ldr r1, =gSprites
	lsls r0, r2, 4
	adds r0, r2
	lsls r0, 2
	adds r0, r1
	ldrb r2, [r0, 0x5]
	movs r1, 0xD
	negs r1, r1
	ands r1, r2
	strb r1, [r0, 0x5]
	movs r1, 0x3
	bl StartSpriteAnim
_0811E8D0:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811E828

	thumb_func_start sub_811E8E4
sub_811E8E4: @ 811E8E4
	push {lr}
	bl sub_811BA68
	lsls r0, 24
	ldr r1, =gUnknown_08597C30
	lsrs r0, 22
	adds r0, r1
	ldrb r0, [r0, 0x3]
	cmp r0, 0x1
	beq _0811E90E
	cmp r0, 0x1
	bgt _0811E908
	cmp r0, 0
	beq _0811E916
	b _0811E91A
	.pool
_0811E908:
	cmp r0, 0x2
	beq _0811E912
	b _0811E91A
_0811E90E:
	movs r0, 0x1
	b _0811E91C
_0811E912:
	movs r0, 0x2
	b _0811E91C
_0811E916:
	movs r0, 0
	b _0811E91C
_0811E91A:
	movs r0, 0x3
_0811E91C:
	pop {r1}
	bx r1
	thumb_func_end sub_811E8E4

	thumb_func_start sub_811E920
sub_811E920: @ 811E920
	push {r4,lr}
	adds r4, r0, 0
	bl sub_811E8E4
	adds r1, r0, 0
	cmp r1, 0x2
	ble _0811E932
	movs r0, 0
	b _0811E93E
_0811E932:
	ldr r0, =gUnknown_08597E60
	lsls r1, 2
	adds r1, r4, r1
	adds r1, r0
	ldrb r0, [r1]
	adds r0, 0x4
_0811E93E:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811E920

	thumb_func_start sub_811E948
sub_811E948: @ 811E948
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x14
	bl sub_811E8E4
	mov r8, r0
	cmp r0, 0x3
	beq _0811E9FA
	ldr r3, =0xffffff00
	ldr r0, [sp, 0xC]
	ands r0, r3
	movs r1, 0x3
	orrs r0, r1
	ldr r2, =0xffff00ff
	ands r0, r2
	adds r1, 0xFD
	orrs r0, r1
	ldr r1, =0xff00ffff
	ands r0, r1
	movs r1, 0xB0
	lsls r1, 12
	orrs r0, r1
	ldr r1, =0x00ffffff
	ands r0, r1
	movs r1, 0xE0
	lsls r1, 21
	orrs r0, r1
	str r0, [sp, 0xC]
	ldr r0, [sp, 0x10]
	ands r0, r3
	movs r1, 0x2
	orrs r0, r1
	ands r0, r2
	movs r1, 0xB0
	lsls r1, 4
	orrs r0, r1
	ldr r1, =0x0000ffff
	ands r0, r1
	movs r1, 0xD0
	lsls r1, 14
	orrs r0, r1
	str r0, [sp, 0x10]
	add r0, sp, 0xC
	bl AddWindow
	lsls r0, 16
	lsrs r7, r0, 16
	lsls r4, r7, 24
	lsrs r0, r4, 24
	movs r1, 0x11
	bl FillWindowPixelBuffer
	movs r6, 0
	mov r0, r8
	lsls r1, r0, 4
	ldr r0, =gUnknown_08597E6C
	adds r5, r1, r0
	ldr r1, =gUnknown_08597E60
	mov r10, r1
	mov r9, r4
_0811E9C6:
	ldr r2, [r5]
	lsls r4, r7, 24
	cmp r2, 0
	beq _0811E9EC
	mov r1, r8
	lsls r0, r1, 2
	adds r0, r6, r0
	add r0, r10
	ldrb r3, [r0]
	movs r0, 0x1
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	str r0, [sp, 0x8]
	mov r1, r9
	lsrs r0, r1, 24
	movs r1, 0x1
	bl sub_811D028
_0811E9EC:
	adds r5, 0x4
	adds r6, 0x1
	cmp r6, 0x3
	ble _0811E9C6
	lsrs r0, r4, 24
	bl PutWindowTilemap
_0811E9FA:
	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_811E948

	thumb_func_start sub_811EA28
sub_811EA28: @ 811EA28
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	adds r1, r0, 0
	cmp r0, 0x14
	beq _0811EA4E
	cmp r0, 0x14
	bgt _0811EA48
	cmp r0, 0x11
	blt _0811EA66
	ldr r0, =0x00000864
	bl FlagGet
	b _0811EA60
	.pool
_0811EA48:
	cmp r1, 0x15
	beq _0811EA5C
	b _0811EA66
_0811EA4E:
	ldr r0, =0x00000866
	bl FlagGet
	b _0811EA60
	.pool
_0811EA5C:
	bl sub_811F0F8
_0811EA60:
	lsls r0, 24
	lsrs r0, 24
	b _0811EA68
_0811EA66:
	movs r0, 0x1
_0811EA68:
	pop {r1}
	bx r1
	thumb_func_end sub_811EA28

	thumb_func_start EasyChat_GetNumWordsInGroup
EasyChat_GetNumWordsInGroup: @ 811EA6C
	push {r4,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r4, r0, 0
	cmp r0, 0
	bne _0811EA84
	movs r0, 0
	bl GetNationalPokedexCount
	lsls r0, 16
	lsrs r0, 16
	b _0811EA9A
_0811EA84:
	bl sub_811EA28
	lsls r0, 24
	cmp r0, 0
	bne _0811EA92
	movs r0, 0
	b _0811EA9A
_0811EA92:
	ldr r0, =gEasyChatGroups
	lsls r1, r4, 3
	adds r1, r0
	ldrh r0, [r1, 0x6]
_0811EA9A:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end EasyChat_GetNumWordsInGroup

	thumb_func_start sub_811EAA4
sub_811EAA4: @ 811EAA4
	push {r4,r5,lr}
	lsls r2, r0, 16
	lsrs r1, r2, 16
	ldr r0, =0x0000ffff
	cmp r1, r0
	beq _0811EB04
	lsrs r3, r2, 25
	ldr r5, =0x000001ff
	ands r5, r1
	cmp r3, 0x15
	bhi _0811EB08
	ldr r0, =gEasyChatGroups
	lsls r2, r3, 3
	adds r1, r2, r0
	ldrh r4, [r1, 0x4]
	cmp r3, 0x13
	bgt _0811EADC
	cmp r3, 0x12
	bge _0811EAE0
	cmp r3, 0
	beq _0811EAE0
	b _0811EB00
	.pool
_0811EADC:
	cmp r3, 0x15
	bne _0811EB00
_0811EAE0:
	adds r0, r2, r0
	ldr r2, [r0]
	movs r1, 0
	cmp r1, r4
	bcs _0811EB08
_0811EAEA:
	lsls r0, r1, 1
	adds r0, r2
	ldrh r0, [r0]
	cmp r5, r0
	beq _0811EB04
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, r4
	bcc _0811EAEA
	b _0811EB08
_0811EB00:
	cmp r5, r4
	bcs _0811EB08
_0811EB04:
	movs r0, 0
	b _0811EB0A
_0811EB08:
	movs r0, 0x1
_0811EB0A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811EAA4

	thumb_func_start ECWord_CheckIfOutsideOfValidRange
ECWord_CheckIfOutsideOfValidRange: @ 811EB10
	push {lr}
	lsls r0, 16
	lsrs r2, r0, 25
	lsls r0, 7
	lsrs r3, r0, 23
	cmp r2, 0x15
	bhi _0811EB5C
	cmp r2, 0x13
	bgt _0811EB2C
	cmp r2, 0x12
	bge _0811EB3C
	cmp r2, 0
	beq _0811EB30
	b _0811EB48
_0811EB2C:
	cmp r2, 0x15
	bne _0811EB48
_0811EB30:
	ldr r0, =gUnknown_085F5490
	ldrh r0, [r0]
	b _0811EB50
	.pool
_0811EB3C:
	ldr r0, =gUnknown_085FA1D4
	ldrh r0, [r0]
	b _0811EB50
	.pool
_0811EB48:
	ldr r1, =gEasyChatGroups
	lsls r0, r2, 3
	adds r0, r1
	ldrh r0, [r0, 0x4]
_0811EB50:
	cmp r0, r3
	bls _0811EB5C
	movs r0, 0
	b _0811EB5E
	.pool
_0811EB5C:
	movs r0, 0x1
_0811EB5E:
	pop {r1}
	bx r1
	thumb_func_end ECWord_CheckIfOutsideOfValidRange

	thumb_func_start GetEasyChatWord
@ char *GetEasyChatWord(u8 groupId, u16 wordId)
GetEasyChatWord: @ 811EB64
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 16
	lsrs r2, r1, 16
	cmp r0, 0x13
	bgt _0811EB7C
	cmp r0, 0x12
	bge _0811EB90
	cmp r0, 0
	beq _0811EB80
	b _0811EBA0
_0811EB7C:
	cmp r0, 0x15
	bne _0811EBA0
_0811EB80:
	movs r0, 0xB
	muls r0, r2
	ldr r1, =gSpeciesNames
	adds r0, r1
	b _0811EBB2
	.pool
_0811EB90:
	movs r0, 0xD
	muls r0, r2
	ldr r1, =gMoveNames
	adds r0, r1
	b _0811EBB2
	.pool
_0811EBA0:
	ldr r1, =gEasyChatGroups
	lsls r0, 3
	adds r0, r1
	ldr r1, [r0]
	lsls r0, r2, 1
	adds r0, r2
	lsls r0, 2
	adds r0, r1
	ldr r0, [r0]
_0811EBB2:
	pop {r1}
	bx r1
	.pool
	thumb_func_end GetEasyChatWord

	thumb_func_start CopyEasyChatWord
@ char *CopyEasyChatWord(char *dest, u16 groupIdWordIdPair)
CopyEasyChatWord: @ 811EBBC
	push {r4-r6,lr}
	adds r5, r0, 0
	lsls r6, r1, 16
	lsrs r0, r6, 16
	adds r4, r0, 0
	bl sub_811EAA4
	lsls r0, 24
	cmp r0, 0
	beq _0811EBD8
	ldr r1, =gText_ThreeQuestionMarks
	b _0811EBEA
	.pool
_0811EBD8:
	ldr r0, =0x0000ffff
	cmp r4, r0
	beq _0811EBFC
	ldr r1, =0x000001ff
	ands r1, r4
	lsrs r0, r6, 25
	bl GetEasyChatWord
	adds r1, r0, 0
_0811EBEA:
	adds r0, r5, 0
	bl StringCopy
	b _0811EC02
	.pool
_0811EBFC:
	movs r0, 0xFF
	strb r0, [r5]
	adds r0, r5, 0
_0811EC02:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end CopyEasyChatWord

	thumb_func_start ConvertEasyChatWordsToString
ConvertEasyChatWordsToString: @ 811EC08
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r2, 16
	lsls r3, 16
	lsrs r3, 16
	mov r9, r3
	ldr r0, =0xffff0000
	adds r2, r0
	lsrs r7, r2, 16
	movs r0, 0
	cmp r0, r9
	bcs _0811EC78
_0811EC2A:
	movs r6, 0
	adds r0, 0x1
	mov r8, r0
	cmp r6, r7
	bcs _0811EC5C
	ldr r2, =0x0000ffff
_0811EC36:
	ldrh r1, [r5]
	adds r0, r4, 0
	str r2, [sp]
	bl CopyEasyChatWord
	adds r4, r0, 0
	ldrh r0, [r5]
	ldr r2, [sp]
	cmp r0, r2
	beq _0811EC50
	movs r0, 0
	strb r0, [r4]
	adds r4, 0x1
_0811EC50:
	adds r5, 0x2
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, r7
	bcc _0811EC36
_0811EC5C:
	ldrh r1, [r5]
	adds r5, 0x2
	adds r0, r4, 0
	bl CopyEasyChatWord
	adds r4, r0, 0
	movs r0, 0xFE
	strb r0, [r4]
	adds r4, 0x1
	mov r1, r8
	lsls r0, r1, 16
	lsrs r0, 16
	cmp r0, r9
	bcc _0811EC2A
_0811EC78:
	subs r4, 0x1
	movs r0, 0xFF
	strb r0, [r4]
	adds r0, r4, 0
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end ConvertEasyChatWordsToString

	thumb_func_start sub_811EC98
sub_811EC98: @ 811EC98
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r2, 16
	lsrs r2, 16
	mov r8, r2
	lsls r3, 16
	lsrs r3, 16
	str r3, [sp]
	mov r7, r8
	movs r0, 0
	str r0, [sp, 0x4]
	subs r0, r7, 0x1
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
	movs r0, 0
	cmp r0, r3
	bcs _0811ED62
_0811ECC8:
	adds r3, r5, 0
	movs r2, 0
	movs r1, 0
	adds r0, 0x1
	mov r10, r0
	cmp r2, r7
	bcs _0811ECEE
	ldr r6, =0x0000ffff
_0811ECD8:
	lsls r0, r1, 1
	adds r0, r3
	ldrh r0, [r0]
	cmp r0, r6
	beq _0811ECE4
	movs r2, 0x1
_0811ECE4:
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, r7
	bcc _0811ECD8
_0811ECEE:
	cmp r2, 0
	bne _0811ECFC
	lsls r0, r7, 1
	adds r5, r0
	b _0811ED56
	.pool
_0811ECFC:
	movs r6, 0
	ldr r1, [sp, 0x4]
	adds r1, 0x1
	mov r9, r1
	cmp r6, r8
	bcs _0811ED30
	ldr r2, =0x0000ffff
_0811ED0A:
	ldrh r1, [r5]
	adds r0, r4, 0
	str r2, [sp, 0x8]
	bl CopyEasyChatWord
	adds r4, r0, 0
	ldrh r0, [r5]
	ldr r2, [sp, 0x8]
	cmp r0, r2
	beq _0811ED24
	movs r0, 0
	strb r0, [r4]
	adds r4, 0x1
_0811ED24:
	adds r5, 0x2
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, r8
	bcc _0811ED0A
_0811ED30:
	ldrh r1, [r5]
	adds r5, 0x2
	adds r0, r4, 0
	bl CopyEasyChatWord
	adds r4, r0, 0
	ldr r0, [sp, 0x4]
	cmp r0, 0
	bne _0811ED4C
	movs r0, 0xFE
	b _0811ED4E
	.pool
_0811ED4C:
	movs r0, 0xFA
_0811ED4E:
	strb r0, [r4]
	adds r4, 0x1
	mov r1, r9
	str r1, [sp, 0x4]
_0811ED56:
	mov r1, r10
	lsls r0, r1, 16
	lsrs r0, 16
	ldr r1, [sp]
	cmp r0, r1
	bcc _0811ECC8
_0811ED62:
	subs r4, 0x1
	movs r0, 0xFF
	strb r0, [r4]
	adds r0, r4, 0
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_811EC98

	thumb_func_start sub_811ED7C
sub_811ED7C: @ 811ED7C
	push {r4,r5,lr}
	lsls r5, r0, 16
	lsrs r0, r5, 16
	adds r4, r0, 0
	ldr r0, =0x0000ffff
	cmp r4, r0
	bne _0811ED94
	movs r0, 0
	b _0811EDBA
	.pool
_0811ED94:
	adds r0, r4, 0
	bl sub_811EAA4
	lsls r0, 24
	cmp r0, 0
	bne _0811EDB0
	ldr r1, =0x000001ff
	ands r1, r4
	lsrs r0, r5, 25
	bl GetEasyChatWord
	b _0811EDB2
	.pool
_0811EDB0:
	ldr r0, =gText_ThreeQuestionMarks
_0811EDB2:
	bl StringLength
	lsls r0, 16
	lsrs r0, 16
_0811EDBA:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811ED7C

	thumb_func_start sub_811EDC4
sub_811EDC4: @ 811EDC4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r6, r0, 0
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r3, 16
	lsrs r3, 16
	mov r10, r3
	movs r7, 0
	cmp r7, r8
	bcs _0811EE26
	subs r0, r1, 0x1
	lsls r0, 16
	mov r9, r0
_0811EDEE:
	mov r0, r9
	lsrs r4, r0, 16
	movs r5, 0
	cmp r5, r1
	bcs _0811EE14
_0811EDF8:
	ldrh r0, [r6]
	adds r6, 0x2
	str r1, [sp]
	bl sub_811ED7C
	adds r0, r4, r0
	lsls r0, 16
	lsrs r4, r0, 16
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r1, [sp]
	cmp r5, r1
	bcc _0811EDF8
_0811EE14:
	cmp r4, r10
	bls _0811EE1C
	movs r0, 0x1
	b _0811EE28
_0811EE1C:
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	cmp r7, r8
	bcc _0811EDEE
_0811EE26:
	movs r0, 0
_0811EE28:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_811EDC4

	thumb_func_start sub_811EE38
sub_811EE38: @ 811EE38
	push {r4,lr}
	lsls r0, 16
	lsrs r4, r0, 16
	bl Random
	ldr r2, =gEasyChatGroups
	lsls r1, r4, 3
	adds r1, r2
	lsls r0, 16
	lsrs r0, 16
	ldrh r1, [r1, 0x4]
	bl __umodsi3
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r4, 0
	beq _0811EE66
	cmp r4, 0x15
	beq _0811EE66
	cmp r4, 0x12
	beq _0811EE66
	cmp r4, 0x13
	bne _0811EE74
_0811EE66:
	ldr r1, =gEasyChatGroups
	lsls r0, r4, 3
	adds r0, r1
	ldr r1, [r0]
	lsls r0, r2, 1
	adds r0, r1
	ldrh r2, [r0]
_0811EE74:
	movs r0, 0x7F
	ands r0, r4
	lsls r0, 9
	ldr r1, =0x000001ff
	ands r2, r1
	orrs r0, r2
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811EE38

	thumb_func_start sub_811EE90
sub_811EE90: @ 811EE90
	push {r4,lr}
	lsls r0, 16
	lsrs r0, 16
	adds r4, r0, 0
	lsls r0, r4, 24
	lsrs r0, 24
	bl sub_811EA28
	lsls r0, 24
	cmp r0, 0
	bne _0811EEB0
	ldr r0, =0x0000ffff
	b _0811EEC4
	.pool
_0811EEB0:
	cmp r4, 0
	beq _0811EEBC
	adds r0, r4, 0
	bl sub_811EE38
	b _0811EEC0
_0811EEBC:
	bl sub_811F108
_0811EEC0:
	lsls r0, 16
	lsrs r0, 16
_0811EEC4:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811EE90

	thumb_func_start sub_811EECC
sub_811EECC: @ 811EECC
	push {r4,r5,lr}
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0x1
	beq _0811EF04
	cmp r0, 0x1
	bgt _0811EEE4
	cmp r0, 0
	beq _0811EEEE
	b _0811EF58
	.pool
_0811EEE4:
	cmp r0, 0x2
	beq _0811EF2C
	cmp r0, 0x3
	beq _0811EF3C
	b _0811EF58
_0811EEEE:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002bb0
	adds r5, r0, r1
	movs r2, 0x2
	b _0811EF46
	.pool
_0811EF04:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002bbc
	adds r5, r0, r1
	adds r0, r5, 0
	movs r1, 0x3
	movs r2, 0x2
	movs r3, 0x12
	bl sub_811EDC4
	lsls r0, 24
	cmp r0, 0
	beq _0811EF44
	movs r2, 0x2
	movs r3, 0x3
	b _0811EF48
	.pool
_0811EF2C:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002bc8
	b _0811EF42
	.pool
_0811EF3C:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00002bd4
_0811EF42:
	adds r5, r0, r1
_0811EF44:
	movs r2, 0x3
_0811EF46:
	movs r3, 0x2
_0811EF48:
	ldr r4, =gStringVar4
	adds r0, r4, 0
	adds r1, r5, 0
	bl ConvertEasyChatWordsToString
	adds r0, r4, 0
	bl ShowFieldAutoScrollMessage
_0811EF58:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811EECC

	thumb_func_start sub_811EF6C
sub_811EF6C: @ 811EF6C
	push {lr}
	bl Random
	movs r1, 0x1
	ands r1, r0
	movs r0, 0xC
	cmp r1, 0
	beq _0811EF7E
	movs r0, 0xD
_0811EF7E:
	bl sub_811EE90
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	ldr r0, =gStringVar2
	bl CopyEasyChatWord
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811EF6C

	thumb_func_start sub_811EF98
sub_811EF98: @ 811EF98
	lsls r0, 24
	lsrs r2, r0, 27
	movs r1, 0xE0
	lsls r1, 19
	ands r1, r0
	lsrs r1, 24
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r3, =0x00002e20
	adds r0, r3
	adds r0, r2
	ldrb r0, [r0]
	asrs r0, r1
	movs r1, 0x1
	ands r0, r1
	bx lr
	.pool
	thumb_func_end sub_811EF98

	thumb_func_start sub_811EFC0
sub_811EFC0: @ 811EFC0
	push {lr}
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x20
	bhi _0811EFE4
	lsrs r3, r0, 27
	movs r2, 0x7
	ands r2, r1
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x00002e20
	adds r1, r0
	adds r1, r3
	movs r0, 0x1
	lsls r0, r2
	ldrb r2, [r1]
	orrs r0, r2
	strb r0, [r1]
_0811EFE4:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811EFC0

	thumb_func_start sub_811EFF0
sub_811EFF0: @ 811EFF0
	push {r4,r5,lr}
	movs r4, 0
	movs r5, 0
_0811EFF6:
	adds r0, r4, 0
	bl sub_811EF98
	lsls r0, 24
	cmp r0, 0
	beq _0811F008
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_0811F008:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x20
	bls _0811EFF6
	adds r0, r5, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811EFF0

	thumb_func_start sub_811F01C
sub_811F01C: @ 811F01C
	push {r4-r6,lr}
	bl sub_811EFF0
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x21
	bne _0811F048
	b _0811F082
_0811F02C:
	adds r0, r5, 0
	bl sub_811EFC0
	ldr r0, =0x000001ff
	ands r4, r0
	movs r1, 0xA0
	lsls r1, 6
	adds r0, r1, 0
	orrs r4, r0
	adds r0, r4, 0
	b _0811F084
	.pool
_0811F048:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x21
	subs r1, r4
	bl __modsi3
	lsls r0, 16
	lsrs r6, r0, 16
	movs r4, 0
_0811F05E:
	lsls r0, r4, 24
	lsrs r5, r0, 24
	adds r0, r5, 0
	bl sub_811EF98
	lsls r0, 24
	cmp r0, 0
	bne _0811F078
	cmp r6, 0
	beq _0811F02C
	subs r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
_0811F078:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x20
	bls _0811F05E
_0811F082:
	ldr r0, =0x0000ffff
_0811F084:
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F01C

	thumb_func_start sub_811F090
sub_811F090: @ 811F090
	push {r4,r5,lr}
	bl sub_811EFF0
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	bne _0811F0B4
	b _0811F0EA
_0811F0A0:
	ldr r0, =0x000001ff
	ands r4, r0
	movs r1, 0xA0
	lsls r1, 6
	adds r0, r1, 0
	orrs r4, r0
	adds r0, r4, 0
	b _0811F0EC
	.pool
_0811F0B4:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	adds r1, r5, 0
	bl __umodsi3
	lsls r0, 16
	lsrs r5, r0, 16
	movs r4, 0
_0811F0C8:
	lsls r0, r4, 24
	lsrs r0, 24
	bl sub_811EF98
	lsls r0, 24
	cmp r0, 0
	beq _0811F0E0
	cmp r5, 0
	beq _0811F0A0
	subs r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
_0811F0E0:
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0x20
	bls _0811F0C8
_0811F0EA:
	ldr r0, =0x0000ffff
_0811F0EC:
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F090

	thumb_func_start sub_811F0F8
sub_811F0F8: @ 811F0F8
	push {lr}
	bl IsNationalPokedexEnabled
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_811F0F8

	thumb_func_start sub_811F108
sub_811F108: @ 811F108
	push {r4-r7,lr}
	movs r0, 0
	bl EasyChat_GetNumWordsInGroup
	lsls r0, 16
	lsrs r4, r0, 16
	cmp r4, 0
	bne _0811F128
	b _0811F172
_0811F11A:
	ldrh r1, [r5]
	ldr r0, =0x000001ff
	ands r0, r1
	b _0811F174
	.pool
_0811F128:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	adds r1, r4, 0
	bl __umodsi3
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =gEasyChatGroups
	ldr r5, [r0]
	ldrh r7, [r0, 0x4]
	movs r6, 0
	cmp r6, r7
	bcs _0811F172
_0811F146:
	ldrh r0, [r5]
	bl SpeciesToNationalPokedexNum
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0
	bl GetSetPokedexFlag
	lsls r0, 24
	cmp r0, 0
	beq _0811F166
	cmp r4, 0
	beq _0811F11A
	subs r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
_0811F166:
	adds r5, 0x2
	adds r0, r6, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, r7
	bcc _0811F146
_0811F172:
	ldr r0, =0x0000ffff
_0811F174:
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F108

	thumb_func_start InitEasyChatPhrases
InitEasyChatPhrases: @ 811F184
	push {r4-r7,lr}
	movs r2, 0
	ldr r5, =gSaveBlock1Ptr
	ldr r4, =0x00002bb0
	ldr r3, =gUnknown_0859E62C
_0811F18E:
	ldr r1, [r5]
	lsls r0, r2, 1
	adds r1, r4
	adds r1, r0
	adds r0, r3
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x3
	bls _0811F18E
	movs r2, 0
	ldr r5, =gSaveBlock1Ptr
	ldr r4, =0x00002bbc
	ldr r3, =gUnknown_0859E634
_0811F1AE:
	ldr r1, [r5]
	lsls r0, r2, 1
	adds r1, r4
	adds r1, r0
	adds r0, r3
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x5
	bls _0811F1AE
	movs r2, 0
	ldr r5, =gSaveBlock1Ptr
	ldr r4, =0x00002bc8
	ldr r3, =gUnknown_0859E640
_0811F1CE:
	ldr r1, [r5]
	lsls r0, r2, 1
	adds r1, r4
	adds r1, r0
	adds r0, r3
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x5
	bls _0811F1CE
	movs r2, 0
	ldr r5, =gSaveBlock1Ptr
	ldr r4, =0x00002bd4
	ldr r3, =gUnknown_0859E64C
_0811F1EE:
	ldr r1, [r5]
	lsls r0, r2, 1
	adds r1, r4
	adds r1, r0
	adds r0, r3
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x5
	bls _0811F1EE
	movs r2, 0
	ldr r7, =gSaveBlock1Ptr
	ldr r6, =0x00002be0
	ldr r0, =0x0000ffff
	adds r5, r0, 0
_0811F210:
	movs r3, 0
	lsls r0, r2, 3
	adds r0, r2
	lsls r4, r0, 2
_0811F218:
	ldr r1, [r7]
	lsls r0, r3, 1
	adds r0, r4
	adds r1, r6
	adds r1, r0
	ldrh r0, [r1]
	orrs r0, r5
	strh r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, 0x8
	bls _0811F218
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0xF
	bls _0811F210
	movs r2, 0
	ldr r4, =gSaveBlock1Ptr
	ldr r3, =0x00002e20
	movs r1, 0
_0811F244:
	ldr r0, [r4]
	adds r0, r3
	adds r0, r2
	strb r1, [r0]
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x3F
	bls _0811F244
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end InitEasyChatPhrases

	thumb_func_start sub_811F28C
sub_811F28C: @ 811F28C
	push {r4,lr}
	ldr r4, =gUnknown_0203A120
	ldr r0, =0x00003ba4
	bl Alloc
	str r0, [r4]
	cmp r0, 0
	beq _0811F2B0
	bl sub_811F2D4
	bl sub_811F46C
	movs r0, 0x1
	b _0811F2B2
	.pool
_0811F2B0:
	movs r0, 0
_0811F2B2:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811F28C

	thumb_func_start sub_811F2B8
sub_811F2B8: @ 811F2B8
	push {r4,lr}
	ldr r4, =gUnknown_0203A120
	ldr r0, [r4]
	cmp r0, 0
	beq _0811F2CA
	bl Free
	movs r0, 0
	str r0, [r4]
_0811F2CA:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811F2B8

	thumb_func_start sub_811F2D4
sub_811F2D4: @ 811F2D4
	push {r4,r5,lr}
	ldr r4, =gUnknown_0203A120
	ldr r0, [r4]
	movs r5, 0
	strh r5, [r0]
	movs r0, 0
	bl GetNationalPokedexCount
	lsls r0, 16
	cmp r0, 0
	beq _0811F2FC
	ldr r0, [r4]
	ldrh r1, [r0]
	adds r2, r1, 0x1
	strh r2, [r0]
	lsls r1, 16
	lsrs r1, 15
	adds r0, 0x2
	adds r0, r1
	strh r5, [r0]
_0811F2FC:
	movs r3, 0x1
_0811F2FE:
	ldr r0, [r4]
	ldrh r2, [r0]
	adds r1, r2, 0x1
	strh r1, [r0]
	lsls r2, 16
	lsrs r2, 15
	adds r0, 0x2
	adds r0, r2
	strh r3, [r0]
	adds r3, 0x1
	cmp r3, 0x10
	ble _0811F2FE
	ldr r0, =0x00000864
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _0811F358
	ldr r0, =gUnknown_0203A120
	ldr r2, [r0]
	ldrh r0, [r2]
	adds r1, r0, 0x1
	strh r1, [r2]
	lsls r0, 16
	lsrs r0, 15
	adds r3, r2, 0x2
	adds r0, r3, r0
	movs r1, 0x11
	strh r1, [r0]
	ldrh r0, [r2]
	adds r1, r0, 0x1
	strh r1, [r2]
	lsls r0, 16
	lsrs r0, 15
	adds r0, r3, r0
	movs r1, 0x12
	strh r1, [r0]
	ldrh r0, [r2]
	adds r1, r0, 0x1
	strh r1, [r2]
	lsls r0, 16
	lsrs r0, 15
	adds r3, r0
	movs r0, 0x13
	strh r0, [r3]
_0811F358:
	ldr r0, =0x00000866
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _0811F37A
	ldr r0, =gUnknown_0203A120
	ldr r0, [r0]
	ldrh r1, [r0]
	adds r2, r1, 0x1
	strh r2, [r0]
	lsls r1, 16
	lsrs r1, 15
	adds r0, 0x2
	adds r0, r1
	movs r1, 0x14
	strh r1, [r0]
_0811F37A:
	bl IsNationalPokedexEnabled
	cmp r0, 0
	beq _0811F398
	ldr r0, =gUnknown_0203A120
	ldr r0, [r0]
	ldrh r1, [r0]
	adds r2, r1, 0x1
	strh r2, [r0]
	lsls r1, 16
	lsrs r1, 15
	adds r0, 0x2
	adds r0, r1
	movs r1, 0x15
	strh r1, [r0]
_0811F398:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811F2D4

	thumb_func_start sub_811F3AC
sub_811F3AC: @ 811F3AC
	ldr r0, =gUnknown_0203A120
	ldr r0, [r0]
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_811F3AC

	thumb_func_start sub_811F3B8
sub_811F3B8: @ 811F3B8
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	ldr r0, =gUnknown_0203A120
	ldr r1, [r0]
	ldrh r0, [r1]
	cmp r2, r0
	bcs _0811F3D8
	lsls r0, r2, 1
	adds r1, 0x2
	adds r1, r0
	ldrb r0, [r1]
	b _0811F3DA
	.pool
_0811F3D8:
	movs r0, 0x16
_0811F3DA:
	pop {r1}
	bx r1
	thumb_func_end sub_811F3B8

	thumb_func_start sub_811F3E0
sub_811F3E0: @ 811F3E0
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r1, 24
	lsls r2, 16
	lsrs r5, r2, 16
	ldr r0, =gEasyChatGroupNamePointers
	lsrs r1, 22
	adds r1, r0
	ldr r1, [r1]
	adds r0, r4, 0
	bl StringCopy
	adds r1, r0, 0
	subs r4, r1, r4
	lsls r4, 16
	lsrs r0, r4, 16
	cmp r0, r5
	bcs _0811F414
	movs r2, 0
_0811F406:
	strb r2, [r1]
	adds r1, 0x1
	adds r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r5
	bcc _0811F406
_0811F414:
	movs r0, 0xFF
	strb r0, [r1]
	adds r0, r1, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F3E0

	thumb_func_start sub_811F424
sub_811F424: @ 811F424
	lsls r0, 24
	ldr r1, =gEasyChatGroupNamePointers
	lsrs r0, 22
	adds r0, r1
	ldr r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_811F424

	thumb_func_start CopyEasyChatWordPadded
@ char *CopyEasyChatWordPadded(char *dest, u16 groupIdWordIdPair, u16 minLength)
CopyEasyChatWordPadded: @ 811F434
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r1, 16
	lsrs r1, 16
	lsls r2, 16
	lsrs r5, r2, 16
	bl CopyEasyChatWord
	adds r1, r0, 0
	subs r4, r1, r4
	lsls r4, 16
	lsrs r0, r4, 16
	cmp r0, r5
	bcs _0811F460
	movs r2, 0
_0811F452:
	strb r2, [r1]
	adds r1, 0x1
	adds r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r5
	bcc _0811F452
_0811F460:
	movs r0, 0xFF
	strb r0, [r1]
	adds r0, r1, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end CopyEasyChatWordPadded

	thumb_func_start sub_811F46C
sub_811F46C: @ 811F46C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	movs r3, 0
_0811F47A:
	ldr r2, =gEasyChatWordsByLetterPointers
	lsls r1, r3, 3
	adds r0, r2, 0x4
	adds r0, r1, r0
	ldr r0, [r0]
	str r0, [sp]
	adds r1, r2
	ldr r7, [r1]
	ldr r0, =gUnknown_0203A120
	ldr r1, [r0]
	lsls r2, r3, 1
	adds r1, 0x2E
	adds r1, r2
	movs r0, 0
	strh r0, [r1]
	mov r10, r0
	movs r1, 0
	str r2, [sp, 0x4]
	adds r0, r3, 0x1
	str r0, [sp, 0x8]
	ldr r2, [sp]
	cmp r1, r2
	bge _0811F530
_0811F4A8:
	ldrh r0, [r7]
	ldr r2, =0x0000ffff
	cmp r0, r2
	bne _0811F4FC
	adds r7, 0x2
	ldrh r4, [r7]
	adds r7, 0x2
	adds r0, r1, 0x1
	adds r1, r0, r4
	b _0811F4FE
	.pool
_0811F4C8:
	ldr r0, =gUnknown_0203A120
	ldr r2, [r0]
	mov r0, r10
	lsls r1, r0, 1
	lsls r0, r3, 4
	adds r0, r3
	lsls r0, 3
	subs r0, r3
	lsls r0, 2
	adds r1, r0
	adds r0, r2, 0
	adds r0, 0x64
	adds r0, r1
	ldrh r1, [r5]
	strh r1, [r0]
	movs r0, 0x1
	add r10, r0
	adds r2, 0x2E
	ldr r0, [sp, 0x4]
	adds r2, r0
	ldrh r0, [r2]
	adds r0, 0x1
	strh r0, [r2]
	b _0811F526
	.pool
_0811F4FC:
	movs r4, 0x1
_0811F4FE:
	movs r6, 0
	adds r1, 0x1
	mov r9, r1
	lsls r2, r4, 1
	mov r8, r2
	cmp r6, r4
	bge _0811F526
	adds r5, r7, 0
_0811F50E:
	ldrh r0, [r5]
	str r3, [sp, 0xC]
	bl sub_811F860
	lsls r0, 24
	ldr r3, [sp, 0xC]
	cmp r0, 0
	bne _0811F4C8
	adds r5, 0x2
	adds r6, 0x1
	cmp r6, r4
	blt _0811F50E
_0811F526:
	add r7, r8
	mov r1, r9
	ldr r0, [sp]
	cmp r1, r0
	blt _0811F4A8
_0811F530:
	ldr r3, [sp, 0x8]
	cmp r3, 0x1A
	ble _0811F47A
	add sp, 0x10
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_811F46C

	thumb_func_start sub_811F548
sub_811F548: @ 811F548
	push {lr}
	lsls r1, 16
	lsrs r1, 16
	cmp r0, 0
	bne _0811F55A
	adds r0, r1, 0
	bl sub_811F5C4
	b _0811F560
_0811F55A:
	adds r0, r1, 0
	bl sub_811F6B8
_0811F560:
	ldr r1, =gUnknown_0203A120
	ldr r1, [r1]
	ldr r2, =0x00003ba0
	adds r1, r2
	strh r0, [r1]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811F548

	thumb_func_start sub_811F578
sub_811F578: @ 811F578
	push {lr}
	lsls r0, 16
	lsrs r2, r0, 16
	ldr r0, =gUnknown_0203A120
	ldr r1, [r0]
	ldr r3, =0x00003ba0
	adds r0, r1, r3
	ldrh r0, [r0]
	cmp r2, r0
	bcs _0811F5A4
	lsls r0, r2, 1
	ldr r2, =0x00003984
	adds r1, r2
	adds r1, r0
	ldrh r0, [r1]
	b _0811F5A6
	.pool
_0811F5A4:
	ldr r0, =0x0000ffff
_0811F5A6:
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F578

	thumb_func_start sub_811F5B0
sub_811F5B0: @ 811F5B0
	ldr r0, =gUnknown_0203A120
	ldr r0, [r0]
	ldr r1, =0x00003ba0
	adds r0, r1
	ldrh r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_811F5B0

	thumb_func_start sub_811F5C4
sub_811F5C4: @ 811F5C4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 16
	lsrs r2, r0, 16
	ldr r1, =gEasyChatGroups
	lsls r0, r2, 3
	adds r0, r1
	ldrh r3, [r0, 0x4]
	mov r8, r3
	cmp r2, 0
	beq _0811F5EC
	cmp r2, 0x15
	beq _0811F5EC
	cmp r2, 0x12
	beq _0811F5EC
	cmp r2, 0x13
	bne _0811F64C
_0811F5EC:
	lsls r0, r2, 3
	adds r0, r1
	ldr r1, [r0]
	movs r7, 0
	movs r5, 0
	cmp r5, r8
	bcs _0811F698
	movs r0, 0x7F
	ands r0, r2
	lsls r0, 9
	mov r9, r0
	adds r4, r1, 0
	lsls r6, r2, 24
_0811F606:
	ldrh r0, [r4]
	lsrs r1, r6, 24
	bl sub_811F764
	lsls r0, 24
	cmp r0, 0
	beq _0811F630
	ldr r0, =gUnknown_0203A120
	ldr r2, [r0]
	lsls r0, r5, 1
	ldr r1, =0x00003984
	adds r2, r1
	adds r2, r0
	ldrh r0, [r4]
	ldr r3, =0x000001ff
	adds r1, r3, 0
	ands r0, r1
	mov r1, r9
	orrs r0, r1
	strh r0, [r2]
	adds r5, 0x1
_0811F630:
	adds r4, 0x2
	adds r7, 0x1
	cmp r7, r8
	bcc _0811F606
	b _0811F698
	.pool
_0811F64C:
	ldr r1, [r0]
	movs r7, 0
	movs r5, 0
	cmp r5, r8
	bcs _0811F698
	movs r0, 0x7F
	ands r0, r2
	lsls r0, 9
	mov r10, r0
	adds r6, r1, 0
	lsls r2, 24
	mov r9, r2
_0811F664:
	ldrh r4, [r6, 0x4]
	adds r0, r4, 0
	mov r2, r9
	lsrs r1, r2, 24
	bl sub_811F764
	lsls r0, 24
	cmp r0, 0
	beq _0811F690
	ldr r0, =gUnknown_0203A120
	ldr r1, [r0]
	lsls r0, r5, 1
	ldr r3, =0x00003984
	adds r1, r3
	adds r1, r0
	ldr r2, =0x000001ff
	adds r0, r2, 0
	ands r4, r0
	mov r3, r10
	orrs r4, r3
	strh r4, [r1]
	adds r5, 0x1
_0811F690:
	adds r6, 0xC
	adds r7, 0x1
	cmp r7, r8
	bcc _0811F664
_0811F698:
	lsls r0, r5, 16
	lsrs r0, 16
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F5C4

	thumb_func_start sub_811F6B8
sub_811F6B8: @ 811F6B8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 16
	lsrs r1, r0, 16
	movs r4, 0
	movs r6, 0
	ldr r3, =gUnknown_0203A120
	ldr r0, [r3]
	lsls r5, r1, 1
	adds r0, 0x2E
	adds r0, r5
	ldrh r0, [r0]
	cmp r6, r0
	bcs _0811F718
	mov r8, r3
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 3
	subs r0, r1
	lsls r7, r0, 2
	ldr r0, =0x00003984
	mov r12, r0
_0811F6E6:
	mov r0, r8
	ldr r3, [r0]
	adds r1, r6, 0
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 1
	mov r0, r12
	adds r2, r3, r0
	adds r2, r1
	lsls r1, r4, 1
	adds r1, r7
	adds r0, r3, 0
	adds r0, 0x64
	adds r0, r1
	ldrh r0, [r0]
	strh r0, [r2]
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	adds r3, 0x2E
	adds r3, r5
	ldrh r3, [r3]
	cmp r4, r3
	bcc _0811F6E6
_0811F718:
	adds r0, r6, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F6B8

	thumb_func_start sub_811F72C
sub_811F72C: @ 811F72C
	push {r4,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	movs r2, 0
	ldr r0, =gUnknown_0203A120
	ldr r0, [r0]
	ldrh r1, [r0]
	cmp r2, r1
	bge _0811F75C
	adds r4, r3, 0
	adds r3, r1, 0
	adds r1, r0, 0x2
_0811F744:
	ldrh r0, [r1]
	cmp r0, r4
	bne _0811F754
	movs r0, 0x1
	b _0811F75E
	.pool
_0811F754:
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, r3
	blt _0811F744
_0811F75C:
	movs r0, 0
_0811F75E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_811F72C

	thumb_func_start sub_811F764
sub_811F764: @ 811F764
	push {r4,lr}
	lsls r0, 16
	lsrs r4, r0, 16
	lsls r1, 24
	lsrs r2, r1, 24
	cmp r2, 0x15
	bhi _0811F81A
	lsls r0, r2, 2
	ldr r1, =_0811F780
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0811F780:
	.4byte _0811F7D8
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F81A
	.4byte _0811F808
	.4byte _0811F808
	.4byte _0811F80C
	.4byte _0811F7EE
_0811F7D8:
	adds r0, r4, 0
	bl SpeciesToNationalPokedexNum
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0
	bl GetSetPokedexFlag
	lsls r0, 24
	lsrs r0, 24
	b _0811F82C
_0811F7EE:
	adds r0, r4, 0
	bl sub_811F838
	cmp r0, 0
	beq _0811F808
	adds r0, r4, 0
	bl SpeciesToNationalPokedexNum
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0
	bl GetSetPokedexFlag
_0811F808:
	movs r0, 0x1
	b _0811F82C
_0811F80C:
	lsls r0, r4, 24
	lsrs r0, 24
	bl sub_811EF98
	lsls r0, 24
	lsrs r0, 24
	b _0811F82C
_0811F81A:
	ldr r1, =gEasyChatGroups
	lsls r0, r2, 3
	adds r0, r1
	ldr r1, [r0]
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 2
	adds r0, r1
	ldrb r0, [r0, 0x8]
_0811F82C:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_811F764

	thumb_func_start sub_811F838
sub_811F838: @ 811F838
	push {lr}
	lsls r0, 16
	lsrs r3, r0, 16
	movs r2, 0
	ldr r1, =gUnknown_0859E658
_0811F842:
	ldrh r0, [r1]
	cmp r0, r3
	bne _0811F850
	movs r0, 0x1
	b _0811F85A
	.pool
_0811F850:
	adds r1, 0x2
	adds r2, 0x1
	cmp r2, 0
	beq _0811F842
	movs r0, 0
_0811F85A:
	pop {r1}
	bx r1
	thumb_func_end sub_811F838

	thumb_func_start sub_811F860
sub_811F860: @ 811F860
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r5, r0, 25
	lsls r0, 7
	lsrs r4, r0, 23
	adds r0, r5, 0
	bl sub_811F72C
	lsls r0, 24
	cmp r0, 0
	beq _0811F884
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_811F764
	lsls r0, 24
	lsrs r0, 24
	b _0811F886
_0811F884:
	movs r0, 0
_0811F886:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811F860

	thumb_func_start InitializeEasyChatWordArray
InitializeEasyChatWordArray: @ 811F88C
	push {lr}
	adds r2, r0, 0
	lsls r1, 16
	ldr r0, =0xffff0000
	adds r1, r0
	lsrs r0, r1, 16
	ldr r1, =0x0000ffff
	cmp r0, r1
	beq _0811F8AE
	adds r3, r1, 0
_0811F8A0:
	strh r3, [r2]
	adds r2, 0x2
	subs r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r1
	bne _0811F8A0
_0811F8AE:
	pop {r0}
	bx r0
	.pool
	thumb_func_end InitializeEasyChatWordArray

	thumb_func_start sub_811F8BC
sub_811F8BC: @ 811F8BC
	push {lr}
	bl sub_801B058
	ldr r1, =0x0000ffff
	adds r2, r1, 0
	adds r1, r0, 0x6
_0811F8C8:
	strh r2, [r1]
	subs r1, 0x2
	cmp r1, r0
	bge _0811F8C8
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_811F8BC

	thumb_func_start sub_811F8D8
sub_811F8D8: @ 811F8D8
	push {r4,r5,lr}
	asrs r4, r0, 9
	movs r1, 0x7F
	ldr r5, =0x000001ff
	ands r5, r0
	ands r4, r1
	adds r0, r4, 0
	bl sub_811EA28
	lsls r0, 24
	cmp r0, 0
	beq _0811F904
	adds r0, r5, 0
	adds r1, r4, 0
	bl sub_811F764
	lsls r0, 24
	lsrs r0, 24
	b _0811F906
	.pool
_0811F904:
	movs r0, 0
_0811F906:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_811F8D8

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