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

	.syntax unified

	.text

	thumb_func_start sub_8006554
sub_8006554:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x24
	str r0, [sp, 0x4]
	adds r7, r1, 0
	adds r6, r2, 0
	str r3, [sp, 0x8]
	ldr r1, [sp, 0x4C]
	ldr r3, [sp, 0x50]
	ldr r2, [sp, 0x54]
	ldr r0, [sp, 0x58]
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0xC]
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x10]
	ldr r1, [sp, 0x44]
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 3
	ldr r4, [sp, 0x4]
	adds r5, r4, r0
	ldr r0, [sp, 0x48]
	movs r4, 0x8
	ldrsh r1, [r0, r4]
	movs r4, 0
	ldrsh r0, [r2, r4]
	adds r1, r0
	str r1, [sp, 0x14]
	ldr r0, [sp, 0x48]
	movs r4, 0xA
	ldrsh r1, [r0, r4]
	movs r4, 0x2
	ldrsh r0, [r2, r4]
	adds r4, r1, r0
	mov r0, sp
	ldrh r0, [r0, 0x14]
	strh r0, [r5]
	strh r4, [r5, 0x2]
	ldr r1, [sp, 0x48]
	ldrh r0, [r1, 0xC]
	strh r0, [r5, 0x4]
	ldrh r0, [r1, 0x10]
	strh r0, [r5, 0x8]
	ldrh r0, [r1, 0xE]
	strh r0, [r5, 0x6]
	ldr r0, [r1, 0x4]
	str r0, [r5, 0xC]
	str r3, [r5, 0x10]
	cmp r0, 0x6
	bne _080065C6
	str r3, [r5, 0x14]
	b _080065D6
_080065C6:
	ldr r2, [sp, 0x48]
	movs r0, 0x12
	ldrsh r1, [r2, r0]
	movs r2, 0x4
	ldrsh r0, [r5, r2]
	muls r0, r1
	adds r0, r3, r0
	str r0, [r5, 0x14]
_080065D6:
	ldr r0, [r5, 0x10]
	lsls r0, 5
	adds r0, r6, r0
	str r0, [r5, 0x18]
	ldr r0, [r5, 0x14]
	lsls r0, 5
	adds r1, r6, r0
	str r1, [r5, 0x1C]
	ldr r3, [sp, 0x48]
	movs r6, 0x12
	ldrsh r1, [r3, r6]
	str r1, [r5, 0x24]
	adds r0, r7, r0
	str r0, [r5, 0x28]
	ldr r3, [r5, 0xC]
	cmp r3, 0x6
	bne _0800660C
	movs r7, 0x4
	ldrsh r2, [r5, r7]
	movs r1, 0x6
	ldrsh r0, [r5, r1]
	ldr r6, [sp, 0x48]
	movs r7, 0x12
	ldrsh r1, [r6, r7]
	adds r0, r1
	muls r0, r2
	b _08006616
_0800660C:
	movs r0, 0x4
	ldrsh r1, [r5, r0]
	movs r2, 0x6
	ldrsh r0, [r5, r2]
	muls r0, r1
_08006616:
	lsls r0, 5
	str r0, [r5, 0x2C]
	movs r0, 0
	str r0, [r5, 0x30]
	str r0, [r5, 0x34]
	str r0, [r5, 0x38]
	movs r6, 0x4
	ldrsh r0, [r5, r6]
	lsls r0, 3
	subs r0, 0x8
	str r0, [r5, 0x20]
	movs r1, 0
	cmp r3, 0
	bne _08006634
	movs r1, 0x1
_08006634:
	adds r0, r5, 0
	adds r0, 0x45
	strb r1, [r0]
	movs r7, 0x8
	ldrsh r0, [r5, r7]
	cmp r0, 0
	bne _08006644
	b _0800676C
_08006644:
	ldr r0, [sp, 0x48]
	ldrb r1, [r0]
	movs r0, 0xA0
	ands r0, r1
	adds r1, r5, 0
	adds r1, 0x46
	str r1, [sp, 0x1C]
	cmp r0, 0x80
	beq _08006752
	subs r7, r4, 0x1
	ldr r0, [r5, 0xC]
	cmp r0, 0x6
	bne _080066A8
	movs r2, 0
	mov r8, r2
	ldr r3, [sp, 0xC]
	cmp r3, 0
	beq _0800666C
	ldr r6, [r5, 0x14]
	mov r8, r6
_0800666C:
	ldr r0, [sp, 0x48]
	ldr r3, [r0, 0x14]
	ldr r1, [sp, 0x8]
	str r1, [sp]
	adds r0, r5, 0
	adds r1, r7, 0
	mov r2, r8
	bl sub_8006E94
	adds r7, r4, 0x2
	ldr r2, [sp, 0xC]
	cmp r2, 0
	beq _0800669A
	movs r3, 0x4
	ldrsh r1, [r5, r3]
	ldr r4, [sp, 0x48]
	movs r6, 0x12
	ldrsh r0, [r4, r6]
	adds r0, 0x2
	muls r1, r0
	ldr r0, [r5, 0x14]
	adds r0, r1
	b _0800669C
_0800669A:
	movs r0, 0
_0800669C:
	mov r8, r0
	movs r1, 0x6
	ldrsh r0, [r5, r1]
	subs r0, 0x2
	str r0, [sp, 0x18]
	b _080066CA
_080066A8:
	adds r0, r5, 0
	adds r1, r7, 0
	ldr r2, [sp, 0x8]
	ldr r3, [sp, 0x10]
	bl sub_800677C
	adds r7, r4, 0
	movs r2, 0
	mov r8, r2
	ldr r3, [sp, 0xC]
	cmp r3, 0
	beq _080066C4
	ldr r4, [r5, 0x14]
	mov r8, r4
_080066C4:
	movs r0, 0x6
	ldrsh r6, [r5, r0]
	str r6, [sp, 0x18]
_080066CA:
	movs r1, 0
	mov r9, r1
	adds r2, r5, 0
	adds r2, 0x46
	str r2, [sp, 0x1C]
	ldr r3, [sp, 0x18]
	cmp r9, r3
	bge _08006746
_080066DA:
	ldr r4, [sp, 0x14]
	subs r4, 0x1
	ldr r6, [sp, 0x8]
	str r6, [sp]
	adds r0, r5, 0
	adds r1, r4, 0
	adds r2, r7, 0
	mov r3, r9
	bl sub_80069CC
	ldr r4, [sp, 0x14]
	movs r6, 0
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	adds r2, r7, 0x1
	mov r10, r2
	mov r3, r9
	adds r3, 0x1
	str r3, [sp, 0x20]
	cmp r6, r0
	bge _0800672A
_08006704:
	ldr r0, [sp, 0x8]
	str r0, [sp]
	adds r0, r5, 0
	adds r1, r4, 0
	adds r2, r7, 0
	mov r3, r8
	bl sub_8006AC4
	adds r4, 0x1
	ldr r1, [sp, 0xC]
	cmp r1, 0
	beq _08006720
	movs r2, 0x1
	add r8, r2
_08006720:
	adds r6, 0x1
	movs r3, 0x4
	ldrsh r0, [r5, r3]
	cmp r6, r0
	blt _08006704
_0800672A:
	ldr r6, [sp, 0x8]
	str r6, [sp]
	adds r0, r5, 0
	adds r1, r4, 0
	adds r2, r7, 0
	mov r3, r9
	bl sub_8006B70
	mov r7, r10
	ldr r0, [sp, 0x20]
	mov r9, r0
	ldr r1, [sp, 0x18]
	cmp r9, r1
	blt _080066DA
_08006746:
	adds r0, r5, 0
	adds r1, r7, 0
	ldr r2, [sp, 0x8]
	ldr r3, [sp, 0x10]
	bl sub_8006C44
_08006752:
	ldr r2, [sp, 0x48]
	ldrb r1, [r2]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _08006766
	ldr r0, [sp, 0x4]
	ldr r1, [sp, 0x44]
	bl sub_8008C6C
_08006766:
	movs r0, 0
	ldr r3, [sp, 0x1C]
	strb r0, [r3]
_0800676C:
	add sp, 0x24
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8006554

	thumb_func_start sub_800677C
sub_800677C:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r6, r0, 0
	adds r4, r1, 0
	str r2, [sp]
	lsls r3, 24
	lsrs r3, 24
	mov r9, r3
	movs r1, 0
	ldrsh r0, [r6, r1]
	subs r3, r0, 0x1
	cmp r4, 0x1C
	ble _080067A0
	b _080069AE
_080067A0:
	cmp r4, 0
	bge _080067A6
	b _080069AE
_080067A6:
	ldr r0, [r6, 0xC]
	cmp r0, 0x7
	bls _080067AE
	b _080069AE
_080067AE:
	lsls r0, 2
	ldr r1, _080067B8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_080067B8: .4byte _080067BC
	.align 2, 0
_080067BC:
	.4byte _080069AE
	.4byte _080069AE
	.4byte _080069AE
	.4byte _080067DC
	.4byte _0800689C
	.4byte _08006920
	.4byte _080069AE
	.4byte _0800696C
_080067DC:
	lsls r1, r3, 1
	lsls r2, r4, 6
	ldr r4, [sp]
	adds r0, r2, r4
	adds r1, r0
	ldr r7, _08006800
	adds r0, r7, 0
	strh r0, [r1]
	adds r5, r2, 0
	mov r0, r9
	cmp r0, 0
	beq _08006808
	movs r2, 0x80
	lsls r2, 4
	adds r1, r2
	ldr r4, _08006804
	adds r0, r4, 0
	b _08006812
	.align 2, 0
_08006800: .4byte 0x0000f2d8
_08006804: .4byte 0x0000f293
_08006808:
	movs r7, 0x80
	lsls r7, 4
	adds r1, r7
	ldr r2, _08006878
	adds r0, r2, 0
_08006812:
	strh r0, [r1]
	adds r3, 0x1
	movs r4, 0
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	cmp r4, r0
	bge _08006856
	ldr r0, _0800687C
	mov r8, r0
	lsls r0, r3, 1
	ldr r2, [sp]
	movs r7, 0x80
	lsls r7, 4
	adds r1, r2, r7
	adds r1, r5, r1
	adds r2, r0, r1
	ldr r7, [sp]
	adds r1, r5, r7
	adds r1, r0, r1
	ldr r0, _08006878
	mov r12, r0
_0800683C:
	mov r7, r8
	strh r7, [r1]
	mov r0, r12
	strh r0, [r2]
	adds r2, 0x2
	adds r1, 0x2
	adds r3, 0x1
	adds r4, 0x1
	movs r0, 0x4
	ldrsh r7, [r6, r0]
	mov r10, r7
	cmp r4, r10
	blt _0800683C
_08006856:
	lsls r0, r3, 1
	ldr r2, [sp]
	adds r1, r5, r2
	adds r1, r0, r1
	ldr r4, _08006880
	adds r0, r4, 0
	strh r0, [r1]
	mov r7, r9
	cmp r7, 0
	beq _08006888
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	ldr r2, _08006884
	adds r0, r2, 0
	strh r0, [r1]
	b _080069AE
	.align 2, 0
_08006878: .4byte 0x0000f2db
_0800687C: .4byte 0x0000f2d9
_08006880: .4byte 0x0000f6d8
_08006884: .4byte 0x0000f693
_08006888:
	movs r4, 0x80
	lsls r4, 4
	adds r1, r4
	ldr r7, _08006898
	adds r0, r7, 0
	strh r0, [r1]
	b _080069AE
	.align 2, 0
_08006898: .4byte 0x0000f2db
_0800689C:
	lsls r1, r3, 1
	lsls r2, r4, 6
	ldr r0, [sp]
	adds r0, r2
	mov r12, r0
	add r1, r12
	ldr r4, _08006910
	adds r0, r4, 0
	strh r0, [r1]
	movs r7, 0x80
	lsls r7, 4
	mov r8, r7
	add r1, r8
	ldr r0, _08006914
	mov r9, r0
	strh r0, [r1]
	adds r3, 0x1
	movs r4, 0
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	adds r5, r2, 0
	cmp r4, r0
	bge _080068F6
	ldr r2, _08006918
	mov r10, r2
	lsls r1, r3, 1
	ldr r0, [sp]
	add r0, r8
	adds r0, r5, r0
	adds r2, r1, r0
	add r1, r12
	mov r12, r9
_080068DC:
	mov r7, r10
	strh r7, [r1]
	mov r0, r12
	strh r0, [r2]
	adds r2, 0x2
	adds r1, 0x2
	adds r3, 0x1
	adds r4, 0x1
	movs r0, 0x4
	ldrsh r7, [r6, r0]
	mov r8, r7
	cmp r4, r8
	blt _080068DC
_080068F6:
	lsls r0, r3, 1
	ldr r2, [sp]
	adds r1, r5, r2
	adds r0, r1
	ldr r4, _0800691C
	adds r1, r4, 0
	strh r1, [r0]
	movs r7, 0x80
	lsls r7, 4
	adds r0, r7
	ldr r2, _08006914
	adds r1, r2, 0
	b _080069AC
	.align 2, 0
_08006910: .4byte 0x0000f2e8
_08006914: .4byte 0x0000f2db
_08006918: .4byte 0x0000f2e9
_0800691C: .4byte 0x0000f6e8
_08006920:
	lsls r0, r3, 1
	lsls r2, r4, 6
	ldr r4, [sp]
	adds r4, r2
	mov r12, r4
	add r0, r12
	ldr r7, _08006960
	adds r1, r7, 0
	strh r1, [r0]
	adds r3, 0x1
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	adds r5, r2, 0
	cmp r0, 0
	ble _08006954
	ldr r2, _08006964
	adds r1, r2, 0
	adds r4, r0, 0
	lsls r0, r3, 1
	add r0, r12
_08006948:
	strh r1, [r0]
	adds r0, 0x2
	adds r3, 0x1
	subs r4, 0x1
	cmp r4, 0
	bne _08006948
_08006954:
	lsls r0, r3, 1
	ldr r4, [sp]
	adds r1, r5, r4
	adds r0, r1
	ldr r7, _08006968
	b _080069AA
	.align 2, 0
_08006960: .4byte 0x0000f2dc
_08006964: .4byte 0x0000f2dd
_08006968: .4byte 0x0000f6dc
_0800696C:
	lsls r0, r3, 1
	lsls r2, r4, 6
	ldr r1, [sp]
	adds r1, r2
	mov r12, r1
	add r0, r12
	ldr r4, _080069C0
	adds r1, r4, 0
	strh r1, [r0]
	adds r3, 0x1
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	adds r5, r2, 0
	cmp r0, 0
	ble _080069A0
	ldr r2, _080069C4
	adds r1, r2, 0
	adds r4, r0, 0
	lsls r0, r3, 1
	add r0, r12
_08006994:
	strh r1, [r0]
	adds r0, 0x2
	adds r3, 0x1
	subs r4, 0x1
	cmp r4, 0
	bne _08006994
_080069A0:
	lsls r0, r3, 1
	ldr r4, [sp]
	adds r1, r5, r4
	adds r0, r1
	ldr r7, _080069C8
_080069AA:
	adds r1, r7, 0
_080069AC:
	strh r1, [r0]
_080069AE:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_080069C0: .4byte 0x0000f293
_080069C4: .4byte 0x0000f297
_080069C8: .4byte 0x0000f693
	thumb_func_end sub_800677C

	thumb_func_start sub_80069CC
sub_80069CC:
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r3, 0
	ldr r3, [sp, 0x10]
	cmp r2, 0x1C
	bgt _08006ABA
	cmp r2, 0
	blt _08006ABA
	ldr r0, [r6, 0xC]
	cmp r0, 0x7
	bhi _08006ABA
	lsls r0, 2
	ldr r1, _080069F0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_080069F0: .4byte _080069F4
	.align 2, 0
_080069F4:
	.4byte _08006A14
	.4byte _08006ABA
	.4byte _08006ABA
	.4byte _08006A60
	.4byte _08006A7C
	.4byte _08006A9C
	.4byte _08006A60
	.4byte _08006AAC
_08006A14:
	cmp r5, 0
	bne _08006A34
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006A30
	adds r0, r2, 0
	strh r0, [r1]
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	adds r2, 0x44
	b _08006A92
	.align 2, 0
_08006A30: .4byte 0x0000f297
_08006A34:
	movs r1, 0x6
	ldrsh r0, [r6, r1]
	subs r0, 0x1
	cmp r5, r0
	bne _08006A60
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006A58
	adds r0, r2, 0
	strh r0, [r1]
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	ldr r2, _08006A5C
	b _08006A92
	.align 2, 0
_08006A58: .4byte 0x0000fa97
_08006A5C: .4byte 0x0000f2db
_08006A60:
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006A78
	adds r0, r2, 0
	strh r0, [r1]
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	adds r2, 0x1
	b _08006A92
	.align 2, 0
_08006A78: .4byte 0x0000f2da
_08006A7C:
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006A98
	adds r0, r2, 0
	strh r0, [r1]
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	subs r2, 0xF
_08006A92:
	adds r0, r2, 0
	strh r0, [r1]
	b _08006ABA
	.align 2, 0
_08006A98: .4byte 0x0000f2ea
_08006A9C:
	lsls r0, r4, 1
	lsls r1, r2, 6
	adds r1, r3
	adds r0, r1
	ldr r2, _08006AA8
	b _08006AB6
	.align 2, 0
_08006AA8: .4byte 0x0000f2de
_08006AAC:
	lsls r0, r4, 1
	lsls r1, r2, 6
	adds r1, r3
	adds r0, r1
	ldr r2, _08006AC0
_08006AB6:
	adds r1, r2, 0
	strh r1, [r0]
_08006ABA:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08006AC0: .4byte 0x0000f2b6
	thumb_func_end sub_80069CC

	thumb_func_start sub_8006AC4
sub_8006AC4:
	push {r4,r5,lr}
	adds r4, r1, 0
	ldr r5, [sp, 0xC]
	cmp r2, 0x1C
	bgt _08006B64
	cmp r2, 0
	blt _08006B64
	ldr r0, [r0, 0xC]
	cmp r0, 0x7
	bhi _08006B64
	lsls r0, 2
	ldr r1, _08006AE4
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08006AE4: .4byte _08006AE8
	.align 2, 0
_08006AE8:
	.4byte _08006B2C
	.4byte _08006B2C
	.4byte _08006B08
	.4byte _08006B2C
	.4byte _08006B2C
	.4byte _08006B54
	.4byte _08006B2C
	.4byte _08006B54
_08006B08:
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r5
	adds r1, r0
	ldr r2, _08006B24
	adds r0, r2, 0
	orrs r3, r0
	strh r3, [r1]
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	ldr r2, _08006B28
	b _08006B44
	.align 2, 0
_08006B24: .4byte 0xfffff000
_08006B28: .4byte 0x0000f278
_08006B2C:
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r5
	adds r1, r0
	ldr r2, _08006B4C
	adds r0, r2, 0
	orrs r3, r0
	strh r3, [r1]
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	ldr r2, _08006B50
_08006B44:
	adds r0, r2, 0
	strh r0, [r1]
	b _08006B64
	.align 2, 0
_08006B4C: .4byte 0xfffff000
_08006B50: .4byte 0x0000f2db
_08006B54:
	lsls r0, r4, 1
	lsls r1, r2, 6
	adds r1, r5
	adds r0, r1
	ldr r2, _08006B6C
	adds r1, r2, 0
	orrs r3, r1
	strh r3, [r0]
_08006B64:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08006B6C: .4byte 0xfffff000
	thumb_func_end sub_8006AC4

	thumb_func_start sub_8006B70
sub_8006B70:
	push {r4-r6,lr}
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r3, 0
	ldr r3, [sp, 0x10]
	cmp r2, 0x1C
	bgt _08006C3A
	cmp r2, 0
	blt _08006C3A
	ldr r0, [r6, 0xC]
	cmp r0, 0x7
	bhi _08006C3A
	lsls r0, 2
	ldr r1, _08006B94
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08006B94: .4byte _08006B98
	.align 2, 0
_08006B98:
	.4byte _08006BB8
	.4byte _08006C3A
	.4byte _08006C3A
	.4byte _08006BE8
	.4byte _08006BF8
	.4byte _08006C1C
	.4byte _08006BE8
	.4byte _08006C2C
_08006BB8:
	cmp r5, 0
	bne _08006BCC
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006BC8
	b _08006C02
	.align 2, 0
_08006BC8: .4byte 0x0000f697
_08006BCC:
	movs r1, 0x6
	ldrsh r0, [r6, r1]
	subs r0, 0x1
	cmp r5, r0
	bne _08006BE8
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006BE4
	b _08006C02
	.align 2, 0
_08006BE4: .4byte 0x0000fe97
_08006BE8:
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006BF4
	b _08006C02
	.align 2, 0
_08006BF4: .4byte 0x0000f6da
_08006BF8:
	lsls r1, r4, 1
	lsls r0, r2, 6
	adds r0, r3
	adds r1, r0
	ldr r2, _08006C14
_08006C02:
	adds r0, r2, 0
	strh r0, [r1]
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	ldr r2, _08006C18
	adds r0, r2, 0
	strh r0, [r1]
	b _08006C3A
	.align 2, 0
_08006C14: .4byte 0x0000f6ea
_08006C18: .4byte 0x0000f2db
_08006C1C:
	lsls r0, r4, 1
	lsls r1, r2, 6
	adds r1, r3
	adds r0, r1
	ldr r2, _08006C28
	b _08006C36
	.align 2, 0
_08006C28: .4byte 0x0000f6de
_08006C2C:
	lsls r0, r4, 1
	lsls r1, r2, 6
	adds r1, r3
	adds r0, r1
	ldr r2, _08006C40
_08006C36:
	adds r1, r2, 0
	strh r1, [r0]
_08006C3A:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08006C40: .4byte 0x0000f6b6
	thumb_func_end sub_8006B70

	thumb_func_start sub_8006C44
sub_8006C44:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r6, r0, 0
	adds r4, r1, 0
	str r2, [sp]
	lsls r3, 24
	lsrs r3, 24
	mov r9, r3
	movs r1, 0
	ldrsh r0, [r6, r1]
	subs r3, r0, 0x1
	cmp r4, 0x1C
	ble _08006C68
	b _08006E76
_08006C68:
	cmp r4, 0
	bge _08006C6E
	b _08006E76
_08006C6E:
	ldr r0, [r6, 0xC]
	cmp r0, 0x7
	bls _08006C76
	b _08006E76
_08006C76:
	lsls r0, 2
	ldr r1, _08006C80
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_08006C80: .4byte _08006C84
	.align 2, 0
_08006C84:
	.4byte _08006E76
	.4byte _08006E76
	.4byte _08006E76
	.4byte _08006CA4
	.4byte _08006D64
	.4byte _08006DE8
	.4byte _08006CA4
	.4byte _08006E34
_08006CA4:
	lsls r1, r3, 1
	lsls r2, r4, 6
	ldr r4, [sp]
	adds r0, r2, r4
	adds r1, r0
	ldr r7, _08006CC8
	adds r0, r7, 0
	strh r0, [r1]
	adds r5, r2, 0
	mov r0, r9
	cmp r0, 0
	beq _08006CD0
	movs r2, 0x80
	lsls r2, 4
	adds r1, r2
	ldr r4, _08006CCC
	adds r0, r4, 0
	b _08006CDA
	.align 2, 0
_08006CC8: .4byte 0x0000fad8
_08006CCC: .4byte 0x0000fa93
_08006CD0:
	movs r7, 0x80
	lsls r7, 4
	adds r1, r7
	ldr r2, _08006D40
	adds r0, r2, 0
_08006CDA:
	strh r0, [r1]
	adds r3, 0x1
	movs r4, 0
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	cmp r4, r0
	bge _08006D1E
	ldr r0, _08006D44
	mov r8, r0
	lsls r0, r3, 1
	ldr r2, [sp]
	movs r7, 0x80
	lsls r7, 4
	adds r1, r2, r7
	adds r1, r5, r1
	adds r2, r0, r1
	ldr r7, [sp]
	adds r1, r5, r7
	adds r1, r0, r1
	ldr r0, _08006D40
	mov r12, r0
_08006D04:
	mov r7, r8
	strh r7, [r1]
	mov r0, r12
	strh r0, [r2]
	adds r2, 0x2
	adds r1, 0x2
	adds r3, 0x1
	adds r4, 0x1
	movs r0, 0x4
	ldrsh r7, [r6, r0]
	mov r10, r7
	cmp r4, r10
	blt _08006D04
_08006D1E:
	lsls r0, r3, 1
	ldr r2, [sp]
	adds r1, r5, r2
	adds r1, r0, r1
	ldr r4, _08006D48
	adds r0, r4, 0
	strh r0, [r1]
	mov r7, r9
	cmp r7, 0
	beq _08006D50
	movs r0, 0x80
	lsls r0, 4
	adds r1, r0
	ldr r2, _08006D4C
	adds r0, r2, 0
	strh r0, [r1]
	b _08006E76
	.align 2, 0
_08006D40: .4byte 0x0000f2db
_08006D44: .4byte 0x0000fad9
_08006D48: .4byte 0x0000fed8
_08006D4C: .4byte 0x0000fe93
_08006D50:
	movs r4, 0x80
	lsls r4, 4
	adds r1, r4
	ldr r7, _08006D60
	adds r0, r7, 0
	strh r0, [r1]
	b _08006E76
	.align 2, 0
_08006D60: .4byte 0x0000f2db
_08006D64:
	lsls r1, r3, 1
	lsls r2, r4, 6
	ldr r0, [sp]
	adds r0, r2
	mov r12, r0
	add r1, r12
	ldr r4, _08006DD8
	adds r0, r4, 0
	strh r0, [r1]
	movs r7, 0x80
	lsls r7, 4
	mov r8, r7
	add r1, r8
	ldr r0, _08006DDC
	mov r9, r0
	strh r0, [r1]
	adds r3, 0x1
	movs r4, 0
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	adds r5, r2, 0
	cmp r4, r0
	bge _08006DBE
	ldr r2, _08006DE0
	mov r10, r2
	lsls r1, r3, 1
	ldr r0, [sp]
	add r0, r8
	adds r0, r5, r0
	adds r2, r1, r0
	add r1, r12
	mov r12, r9
_08006DA4:
	mov r7, r10
	strh r7, [r1]
	mov r0, r12
	strh r0, [r2]
	adds r2, 0x2
	adds r1, 0x2
	adds r3, 0x1
	adds r4, 0x1
	movs r0, 0x4
	ldrsh r7, [r6, r0]
	mov r8, r7
	cmp r4, r8
	blt _08006DA4
_08006DBE:
	lsls r0, r3, 1
	ldr r2, [sp]
	adds r1, r5, r2
	adds r0, r1
	ldr r4, _08006DE4
	adds r1, r4, 0
	strh r1, [r0]
	movs r7, 0x80
	lsls r7, 4
	adds r0, r7
	ldr r2, _08006DDC
	adds r1, r2, 0
	b _08006E74
	.align 2, 0
_08006DD8: .4byte 0x0000fae8
_08006DDC: .4byte 0x0000f2db
_08006DE0: .4byte 0x0000fae9
_08006DE4: .4byte 0x0000fee8
_08006DE8:
	lsls r0, r3, 1
	lsls r2, r4, 6
	ldr r4, [sp]
	adds r4, r2
	mov r12, r4
	add r0, r12
	ldr r7, _08006E28
	adds r1, r7, 0
	strh r1, [r0]
	adds r3, 0x1
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	adds r5, r2, 0
	cmp r0, 0
	ble _08006E1C
	ldr r2, _08006E2C
	adds r1, r2, 0
	adds r4, r0, 0
	lsls r0, r3, 1
	add r0, r12
_08006E10:
	strh r1, [r0]
	adds r0, 0x2
	adds r3, 0x1
	subs r4, 0x1
	cmp r4, 0
	bne _08006E10
_08006E1C:
	lsls r0, r3, 1
	ldr r4, [sp]
	adds r1, r5, r4
	adds r0, r1
	ldr r7, _08006E30
	b _08006E72
	.align 2, 0
_08006E28: .4byte 0x0000fadc
_08006E2C: .4byte 0x0000fadd
_08006E30: .4byte 0x0000fedc
_08006E34:
	lsls r0, r3, 1
	lsls r2, r4, 6
	ldr r1, [sp]
	adds r1, r2
	mov r12, r1
	add r0, r12
	ldr r4, _08006E88
	adds r1, r4, 0
	strh r1, [r0]
	adds r3, 0x1
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	adds r5, r2, 0
	cmp r0, 0
	ble _08006E68
	ldr r2, _08006E8C
	adds r1, r2, 0
	adds r4, r0, 0
	lsls r0, r3, 1
	add r0, r12
_08006E5C:
	strh r1, [r0]
	adds r0, 0x2
	adds r3, 0x1
	subs r4, 0x1
	cmp r4, 0
	bne _08006E5C
_08006E68:
	lsls r0, r3, 1
	ldr r4, [sp]
	adds r1, r5, r4
	adds r0, r1
	ldr r7, _08006E90
_08006E72:
	adds r1, r7, 0
_08006E74:
	strh r1, [r0]
_08006E76:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08006E88: .4byte 0x0000fa93
_08006E8C: .4byte 0x0000fa97
_08006E90: .4byte 0x0000fe93
	thumb_func_end sub_8006C44

	thumb_func_start sub_8006E94
sub_8006E94:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x30
	str r0, [sp]
	adds r4, r1, 0
	adds r7, r2, 0
	str r3, [sp, 0x4]
	movs r1, 0
	ldrsh r0, [r0, r1]
	mov r10, r0
	movs r2, 0x1
	negs r2, r2
	add r2, r10
	movs r3, 0
	str r3, [sp, 0x8]
	cmp r4, 0x1C
	ble _08006EBE
	b _080072FE
_08006EBE:
	cmp r4, 0
	bge _08006EC4
	b _080072FE
_08006EC4:
	lsls r1, r2, 1
	lsls r4, 6
	ldr r6, [sp, 0x50]
	adds r5, r4, r6
	adds r1, r5
	ldr r0, _08006F9C
	adds r3, r0, 0
	strh r3, [r1]
	movs r2, 0x80
	lsls r2, 4
	adds r0, r1, r2
	ldr r6, _08006FA0
	adds r2, r6, 0
	strh r2, [r0]
	adds r0, r1, 0
	adds r0, 0x40
	strh r3, [r0]
	movs r0, 0x84
	lsls r0, 4
	adds r0, r1, r0
	strh r2, [r0]
	adds r2, r1, 0
	adds r2, 0x80
	ldr r3, _08006FA4
	adds r0, r3, 0
	strh r0, [r2]
	movs r6, 0x88
	lsls r6, 4
	adds r1, r6
	ldr r2, _08006FA8
	adds r0, r2, 0
	strh r0, [r1]
	mov r12, r10
	movs r3, 0
	str r4, [sp, 0x18]
	ldr r4, [sp, 0x4]
	ldrb r4, [r4]
	cmp r3, r4
	blt _08006F14
	b _08007238
_08006F14:
	adds r2, r5, 0
	mov r5, r12
	lsls r1, r5, 1
	ldr r0, [sp, 0x50]
	adds r0, 0x80
	ldr r6, [sp, 0x18]
	adds r0, r6, r0
	adds r0, r1
	mov r9, r0
	ldr r0, [sp, 0x50]
	adds r0, 0x40
	adds r0, r6, r0
	adds r0, r1
	mov r8, r0
	ldr r4, [sp, 0x50]
	movs r5, 0x80
	lsls r5, 4
	adds r0, r4, r5
	adds r0, r6, r0
	adds r0, r1, r0
	str r0, [sp, 0x20]
	movs r6, 0x84
	lsls r6, 4
	adds r0, r4, r6
	ldr r4, [sp, 0x18]
	adds r0, r4, r0
	adds r0, r1
	mov r10, r0
	adds r4, r1, r2
	ldr r5, [sp, 0x18]
	str r5, [sp, 0x10]
	str r2, [sp, 0x1C]
	str r1, [sp, 0x24]
_08006F56:
	ldr r6, [sp, 0x4]
	ldrb r6, [r6, 0x1]
	cmp r3, r6
	bne _08006F60
	b _080070C8
_08006F60:
	ldr r0, [sp, 0x8]
	cmp r0, 0
	bne _08007008
	ldr r1, [sp, 0x4]
	ldrb r0, [r1, 0x3]
	asrs r0, r3
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08006FB8
	movs r1, 0x1F
	cmp r3, 0
	bne _08006F7C
	movs r1, 0x1B
_08006F7C:
	movs r2, 0x9E
	lsls r2, 2
	adds r0, r1, r2
	ldr r5, _08006FAC
	adds r1, r5, 0
	orrs r0, r1
	strh r0, [r4]
	ldr r6, _08006FB0
	adds r0, r6, 0
	mov r1, r8
	strh r0, [r1]
	ldr r5, _08006FB4
	mov r2, r9
	strh r5, [r2]
	b _08006FDC
	.align 2, 0
_08006F9C: .4byte 0x0000f278
_08006FA0: .4byte 0x0000f27a
_08006FA4: .4byte 0x0000f2d8
_08006FA8: .4byte 0x0000f2db
_08006FAC: .4byte 0xfffff400
_08006FB0: .4byte 0x0000f2b6
_08006FB4: .4byte 0x0000f2d9
_08006FB8:
	movs r1, 0x6B
	cmp r3, 0
	bne _08006FC0
	movs r1, 0x67
_08006FC0:
	movs r6, 0x9E
	lsls r6, 2
	adds r0, r1, r6
	ldr r2, _08006FF4
	adds r1, r2, 0
	orrs r0, r1
	strh r0, [r4]
	ldr r5, _08006FF8
	adds r0, r5, 0
	mov r6, r8
	strh r0, [r6]
	ldr r1, _08006FFC
	mov r0, r9
	strh r1, [r0]
_08006FDC:
	ldr r2, _08007000
	adds r0, r2, 0
	ldr r5, [sp, 0x20]
	strh r0, [r5]
	ldr r0, _08007004
	mov r6, r10
	strh r0, [r6]
	movs r1, 0x88
	lsls r1, 4
	adds r0, r4, r1
	adds r2, 0x61
	b _0800708E
	.align 2, 0
_08006FF4: .4byte 0xfffff400
_08006FF8: .4byte 0x0000f2ef
_08006FFC: .4byte 0x0000f2d9
_08007000: .4byte 0x0000f27a
_08007004: .4byte 0x0000f2db
_08007008:
	ldr r5, [sp, 0x4]
	ldrb r0, [r5, 0x3]
	asrs r0, r3
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0800704C
	ldrb r0, [r5]
	subs r0, 0x1
	movs r1, 0x1F
	cmp r3, r0
	bne _08007022
	movs r1, 0x1B
_08007022:
	movs r6, 0x9E
	lsls r6, 2
	adds r0, r1, r6
	ldr r2, _08007040
	adds r1, r2, 0
	orrs r0, r1
	strh r0, [r4]
	ldr r5, _08007044
	adds r0, r5, 0
	mov r6, r8
	strh r0, [r6]
	ldr r1, _08007048
	mov r0, r9
	strh r1, [r0]
	b _08007076
	.align 2, 0
_08007040: .4byte 0xfffff000
_08007044: .4byte 0x0000f6b6
_08007048: .4byte 0x0000f2d9
_0800704C:
	ldr r2, [sp, 0x4]
	ldrb r0, [r2]
	subs r0, 0x1
	movs r1, 0x6B
	cmp r3, r0
	bne _0800705A
	movs r1, 0x67
_0800705A:
	movs r5, 0x9E
	lsls r5, 2
	adds r0, r1, r5
	ldr r6, _080070B0
	adds r1, r6, 0
	orrs r0, r1
	strh r0, [r4]
	ldr r1, _080070B4
	adds r0, r1, 0
	mov r2, r8
	strh r0, [r2]
	ldr r6, _080070B8
	mov r5, r9
	strh r6, [r5]
_08007076:
	ldr r1, _080070BC
	adds r0, r1, 0
	ldr r2, [sp, 0x20]
	strh r0, [r2]
	ldr r5, _080070C0
	adds r0, r5, 0
	mov r6, r10
	strh r0, [r6]
	movs r1, 0x88
	lsls r1, 4
	adds r0, r4, r1
	ldr r2, _080070C4
_0800708E:
	strh r2, [r0]
	movs r5, 0x2
	add r9, r5
	add r8, r5
	ldr r6, [sp, 0x20]
	adds r6, 0x2
	str r6, [sp, 0x20]
	add r10, r5
	adds r4, 0x2
	ldr r0, [sp, 0x24]
	adds r0, 0x2
	str r0, [sp, 0x24]
	movs r1, 0x1
	add r12, r1
	adds r3, 0x1
	str r3, [sp, 0x14]
	b _08007226
	.align 2, 0
_080070B0: .4byte 0xfffff000
_080070B4: .4byte 0x0000f6ef
_080070B8: .4byte 0x0000f2d9
_080070BC: .4byte 0x0000f27a
_080070C0: .4byte 0x0000f6db
_080070C4: .4byte 0x0000f2db
_080070C8:
	movs r2, 0x1
	str r2, [sp, 0x8]
	ldr r5, _08007128
	adds r0, r5, 0
	strh r0, [r4]
	ldr r6, _0800712C
	adds r0, r6, 0
	ldr r1, [sp, 0x20]
	strh r0, [r1]
	ldr r2, _08007130
	adds r0, r2, 0
	mov r5, r8
	strh r0, [r5]
	ldr r0, _08007134
	mov r6, r10
	strh r0, [r6]
	ldr r1, _08007138
	adds r0, r1, 0
	mov r2, r9
	strh r0, [r2]
	movs r5, 0x88
	lsls r5, 4
	adds r0, r4, r5
	ldr r6, _08007134
	strh r6, [r0]
	movs r0, 0x2
	add r9, r0
	add r8, r0
	ldr r1, [sp, 0x20]
	adds r1, 0x2
	str r1, [sp, 0x20]
	add r10, r0
	adds r4, 0x2
	ldr r2, [sp, 0x24]
	adds r2, 0x2
	str r2, [sp, 0x24]
	movs r5, 0x1
	add r12, r5
	cmp r7, 0
	beq _0800713C
	adds r7, 0x1
	cmp r7, 0
	beq _0800713C
	ldr r6, [sp]
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	adds r2, r7, r0
	b _0800713E
	.align 2, 0
_08007128: .4byte 0x0000f2e0
_0800712C: .4byte 0x0000f2e2
_08007130: .4byte 0x0000f2da
_08007134: .4byte 0x0000f2db
_08007138: .4byte 0x0000f6e7
_0800713C:
	movs r2, 0
_0800713E:
	movs r5, 0
	str r5, [sp, 0xC]
	adds r3, 0x1
	str r3, [sp, 0x14]
	ldr r6, [sp, 0x4]
	ldrb r6, [r6, 0x2]
	cmp r5, r6
	bge _080071E0
	ldr r0, [sp, 0x50]
	adds r0, 0x80
	ldr r1, [sp, 0x10]
	adds r0, r1, r0
	ldr r3, [sp, 0x24]
	adds r0, r3, r0
	str r0, [sp, 0x2C]
	ldr r0, [sp, 0x50]
	adds r0, 0x40
	adds r0, r1, r0
	adds r5, r3, r0
	ldr r6, [sp, 0x1C]
	adds r3, r6
_08007168:
	ldr r1, _08007310
	adds r0, r1, 0
	strh r0, [r3]
	movs r6, 0x80
	lsls r6, 4
	adds r6, r3, r6
	str r6, [sp, 0x28]
	adds r1, 0x1
	adds r0, r1, 0
	strh r0, [r6]
	adds r0, r7, 0
	ldr r6, _08007314
	orrs r0, r6
	strh r0, [r5]
	movs r1, 0x84
	lsls r1, 4
	adds r0, r3, r1
	ldr r6, _08007318
	strh r6, [r0]
	adds r0, r2, 0
	ldr r1, _08007314
	orrs r0, r1
	ldr r6, [sp, 0x2C]
	strh r0, [r6]
	movs r1, 0x88
	lsls r1, 4
	adds r0, r3, r1
	ldr r6, _08007318
	strh r6, [r0]
	ldr r0, [sp, 0x2C]
	adds r0, 0x2
	str r0, [sp, 0x2C]
	adds r5, 0x2
	adds r3, 0x2
	movs r1, 0x2
	add r9, r1
	add r8, r1
	ldr r6, [sp, 0x20]
	adds r6, 0x2
	str r6, [sp, 0x20]
	add r10, r1
	adds r4, 0x2
	ldr r0, [sp, 0x24]
	adds r0, 0x2
	str r0, [sp, 0x24]
	movs r1, 0x1
	add r12, r1
	cmp r7, 0
	beq _080071CC
	adds r7, 0x1
_080071CC:
	cmp r2, 0
	beq _080071D2
	adds r2, 0x1
_080071D2:
	ldr r6, [sp, 0xC]
	adds r6, 0x1
	str r6, [sp, 0xC]
	ldr r0, [sp, 0x4]
	ldrb r0, [r0, 0x2]
	cmp r6, r0
	blt _08007168
_080071E0:
	ldr r1, _0800731C
	adds r0, r1, 0
	strh r0, [r4]
	ldr r2, _08007320
	adds r0, r2, 0
	ldr r3, [sp, 0x20]
	strh r0, [r3]
	ldr r5, _08007324
	adds r0, r5, 0
	mov r6, r8
	strh r0, [r6]
	ldr r1, _08007318
	mov r0, r10
	strh r1, [r0]
	adds r2, 0x5
	adds r0, r2, 0
	mov r3, r9
	strh r0, [r3]
	movs r5, 0x88
	lsls r5, 4
	adds r0, r4, r5
	strh r1, [r0]
	movs r6, 0x2
	add r9, r6
	add r8, r6
	ldr r0, [sp, 0x20]
	adds r0, 0x2
	str r0, [sp, 0x20]
	add r10, r6
	adds r4, 0x2
	ldr r1, [sp, 0x24]
	adds r1, 0x2
	str r1, [sp, 0x24]
	movs r2, 0x1
	add r12, r2
_08007226:
	cmp r7, 0
	beq _0800722C
	adds r7, 0x1
_0800722C:
	ldr r3, [sp, 0x14]
	ldr r5, [sp, 0x4]
	ldrb r5, [r5]
	cmp r3, r5
	bge _08007238
	b _08006F56
_08007238:
	ldr r6, [sp]
	movs r0, 0
	ldrsh r1, [r6, r0]
	movs r2, 0x4
	ldrsh r0, [r6, r2]
	adds r0, r1, r0
	cmp r12, r0
	bge _080072BC
	ldr r3, _08007328
	adds r4, r3, 0
	mov r8, r0
	mov r5, r12
	lsls r1, r5, 1
	ldr r0, [sp, 0x50]
	adds r0, 0x80
	ldr r6, [sp, 0x18]
	adds r0, r6, r0
	adds r5, r1, r0
	ldr r0, [sp, 0x50]
	adds r0, 0x40
	adds r0, r6, r0
	adds r3, r1, r0
	ldr r0, [sp, 0x50]
	adds r6, r0
	adds r2, r1, r6
	movs r1, 0x80
	lsls r1, 4
	mov r10, r1
	movs r6, 0x84
	lsls r6, 4
	mov r9, r6
	mov r0, r8
	mov r1, r12
	subs r0, r1
	mov r12, r0
_0800727E:
	strh r4, [r2]
	mov r6, r10
	adds r0, r2, r6
	ldr r1, _0800732C
	strh r1, [r0]
	strh r4, [r3]
	mov r6, r9
	adds r0, r2, r6
	strh r1, [r0]
	adds r1, 0x5F
	adds r0, r1, 0
	strh r0, [r5]
	movs r6, 0x88
	lsls r6, 4
	adds r1, r2, r6
	ldr r6, _08007318
	adds r0, r6, 0
	strh r0, [r1]
	adds r5, 0x2
	adds r3, 0x2
	adds r2, 0x2
	movs r0, 0x1
	negs r0, r0
	add r12, r0
	cmp r7, 0
	beq _080072B4
	adds r7, 0x1
_080072B4:
	mov r1, r12
	cmp r1, 0
	bne _0800727E
	mov r12, r8
_080072BC:
	mov r2, r12
	lsls r1, r2, 1
	ldr r3, [sp, 0x18]
	ldr r4, [sp, 0x50]
	adds r0, r3, r4
	adds r1, r0
	ldr r5, _08007328
	adds r3, r5, 0
	strh r3, [r1]
	movs r6, 0x80
	lsls r6, 4
	adds r0, r1, r6
	ldr r4, _0800732C
	adds r2, r4, 0
	strh r2, [r0]
	adds r0, r1, 0
	adds r0, 0x40
	strh r3, [r0]
	movs r5, 0x84
	lsls r5, 4
	adds r0, r1, r5
	strh r2, [r0]
	adds r2, r1, 0
	adds r2, 0x80
	ldr r6, _08007330
	adds r0, r6, 0
	strh r0, [r2]
	movs r0, 0x88
	lsls r0, 4
	adds r1, r0
	ldr r2, _08007318
	adds r0, r2, 0
	strh r0, [r1]
_080072FE:
	add sp, 0x30
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08007310: .4byte 0x0000f2e1
_08007314: .4byte 0xfffff000
_08007318: .4byte 0x0000f2db
_0800731C: .4byte 0x0000f6e0
_08007320: .4byte 0x0000f2e2
_08007324: .4byte 0x0000f6da
_08007328: .4byte 0x0000f278
_0800732C: .4byte 0x0000f27a
_08007330: .4byte 0x0000f6d8
	thumb_func_end sub_8006E94

	thumb_func_start sub_8007334
sub_8007334:
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 3
	ldr r0, _080073AC
	adds r3, r1, r0
	ldr r5, [r3, 0x14]
	movs r0, 0x2
	ldrsh r6, [r3, r0]
	movs r2, 0
	movs r1, 0x6
	ldrsh r0, [r3, r1]
	cmp r2, r0
	bge _080073A0
	ldr r7, _080073B0
	mov r9, r7
_0800735A:
	movs r0, 0
	ldrsh r1, [r3, r0]
	movs r4, 0
	movs r7, 0x4
	ldrsh r0, [r3, r7]
	adds r7, r6, 0x1
	adds r2, 0x1
	mov r12, r2
	cmp r4, r0
	bge _08007394
	movs r0, 0xFC
	lsls r0, 8
	mov r8, r0
	lsls r1, 1
	lsls r0, r6, 6
	add r0, r9
	adds r2, r1, r0
_0800737C:
	ldrh r0, [r2]
	mov r1, r8
	ands r1, r0
	orrs r1, r5
	strh r1, [r2]
	adds r2, 0x2
	adds r5, 0x1
	adds r4, 0x1
	movs r1, 0x4
	ldrsh r0, [r3, r1]
	cmp r4, r0
	blt _0800737C
_08007394:
	adds r6, r7, 0
	mov r2, r12
	movs r7, 0x6
	ldrsh r0, [r3, r7]
	cmp r2, r0
	blt _0800735A
_080073A0:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_080073AC: .4byte gUnknown_2027370
_080073B0: .4byte gUnknown_202B038
	thumb_func_end sub_8007334

	thumb_func_start nullsub_154
nullsub_154:
	bx lr
	thumb_func_end nullsub_154

	thumb_func_start sub_80073B8
sub_80073B8:
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 3
	ldr r0, _080073D8
	adds r1, r0
	ldr r0, [r1, 0x2C]
	lsrs r0, 2
	lsls r0, 2
	ldr r2, [r1, 0x1C]
	adds r0, r2, r0
	str r0, [r1, 0x3C]
	str r2, [r1, 0x40]
	adds r1, 0x46
	movs r0, 0x1
	strb r0, [r1]
	bx lr
	.align 2, 0
_080073D8: .4byte gUnknown_2027370
	thumb_func_end sub_80073B8

	thumb_func_start nullsub_155
nullsub_155:
	bx lr
	thumb_func_end nullsub_155

	thumb_func_start sub_80073E0
sub_80073E0:
	push {r4,lr}
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 3
	ldr r0, _08007434
	adds r3, r1, r0
	adds r0, r3, 0
	adds r0, 0x44
	ldrb r4, [r0]
	cmp r4, 0
	bne _08007424
	ldr r2, [r3, 0x3C]
	ldr r0, [r3, 0x1C]
	subs r0, r2, r0
	asrs r0, 2
	lsls r0, 2
	ldr r1, [r3, 0x28]
	adds r1, r0
	str r1, [r3, 0x30]
	str r2, [r3, 0x34]
	ldr r0, [r3, 0x40]
	subs r0, r2
	asrs r0, 2
	adds r0, 0x1
	lsls r0, 2
	str r0, [r3, 0x38]
	ldr r1, [r3, 0x2C]
	cmp r0, r1
	blt _0800741C
	str r1, [r3, 0x38]
_0800741C:
	ldr r0, [r3, 0x38]
	cmp r0, 0
	bge _08007424
	str r4, [r3, 0x38]
_08007424:
	adds r1, r3, 0
	adds r1, 0x46
	movs r0, 0
	strb r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08007434: .4byte gUnknown_2027370
	thumb_func_end sub_80073E0

	thumb_func_start nullsub_156
nullsub_156:
	bx lr
	thumb_func_end nullsub_156

	thumb_func_start xxx_call_draw_char
xxx_call_draw_char:
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x18]
	ldr r0, _08007460
	str r3, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl xxx_draw_char
	add sp, 0x8
	pop {r4-r6}
	pop {r1}
	bx r1
	.align 2, 0
_08007460: .4byte gUnknown_2027370
	thumb_func_end xxx_call_draw_char

	thumb_func_start sub_8007464
sub_8007464:
	movs r0, 0
	bx lr
	thumb_func_end sub_8007464

	thumb_func_start xxx_draw_char
xxx_draw_char:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x28
	adds r6, r1, 0
	mov r10, r2
	adds r4, r3, 0
	ldr r2, [sp, 0x48]
	ldr r3, [sp, 0x4C]
	lsls r1, r3, 3
	adds r1, r3
	lsls r1, 3
	adds r5, r0, r1
	ldr r1, _080074B8
	movs r0, 0xF
	ands r2, r0
	lsls r2, 2
	adds r2, r1
	ldr r2, [r2]
	str r2, [sp, 0x18]
	ldr r0, _080074BC
	ldr r0, [r0]
	cmp r0, 0x1
	bne _080074CC
	cmp r4, 0x70
	beq _080074B0
	cmp r4, 0x6A
	beq _080074B0
	cmp r4, 0x71
	beq _080074B0
	cmp r4, 0x79
	beq _080074B0
	cmp r4, 0x67
	bne _080074C0
_080074B0:
	movs r0, 0x2
	add r10, r0
	b _080074CC
	.align 2, 0
_080074B8: .4byte gUnknown_80B853C
_080074BC: .4byte gCurrentCharmap
_080074C0:
	ldr r0, _080074F8
	cmp r4, r0
	bne _080074CC
	movs r1, 0x2
	negs r1, r1
	add r10, r1
_080074CC:
	adds r0, r4, 0
	bl GetCharacter
	str r0, [sp]
	ldr r2, [r0]
	str r2, [sp, 0x4]
	str r2, [sp, 0xC]
	adds r3, r2, 0
	subs r3, 0x6
	str r3, [sp, 0x8]
	ldr r0, _080074FC
	ldrb r0, [r0]
	cmp r0, 0
	beq _08007500
	ldr r4, [sp]
	ldrb r1, [r4, 0xA]
	lsrs r7, r1, 1
	movs r0, 0x1
	adds r2, r7, 0
	ands r2, r0
	str r2, [sp, 0x1C]
	b _08007508
	.align 2, 0
_080074F8: .4byte 0x00008199
_080074FC: .4byte gUnknown_202B034
_08007500:
	movs r3, 0
	str r3, [sp, 0x1C]
	ldr r4, [sp]
	ldrb r1, [r4, 0xA]
_08007508:
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	bne _08007512
	b _08007670
_08007512:
	mov r0, r10
	cmp r0, 0
	bge _0800751A
	adds r0, 0x7
_0800751A:
	asrs r4, r0, 3
	movs r7, 0x4
	ldrsh r0, [r5, r7]
	muls r0, r4
	adds r2, r6, 0
	cmp r6, 0
	bge _0800752A
	adds r2, r6, 0x7
_0800752A:
	asrs r2, 3
	adds r0, r2
	lsls r0, 5
	ldr r1, [r5, 0x18]
	adds r3, r1, r0
	lsls r0, r4, 3
	mov r1, r10
	subs r0, r1, r0
	lsls r0, 2
	adds r3, r0
	lsls r0, r2, 3
	subs r0, r6, r0
	lsls r0, 4
	ldr r1, _08007664
	adds r0, r1
	mov r12, r0
	mov r9, r2
	str r4, [sp, 0x14]
	movs r2, 0x8
	ldrsh r0, [r5, r2]
	cmp r4, r0
	blt _08007558
	b _0800786C
_08007558:
	movs r4, 0
	str r4, [sp, 0x10]
	ldr r2, _08007668
	ldr r1, _0800766C
	ldr r0, [r1]
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	cmp r4, r0
	blt _0800756E
	b _0800786C
_0800756E:
	adds r4, r2, 0
_08007570:
	ldr r6, [sp, 0x4]
	ldrh r0, [r6, 0x2]
	lsls r2, r0, 16
	ldrh r0, [r6]
	orrs r2, r0
	cmp r2, 0
	beq _080075CC
	movs r7, 0x4
	ldrsh r0, [r5, r7]
	cmp r9, r0
	bge _080075A6
	mov r0, r12
	ldr r1, [r0]
	ands r1, r2
	ldr r0, [r0, 0x8]
	lsls r1, r0
	ldr r0, [r3]
	orrs r0, r1
	str r0, [r3]
	ldr r0, [r5, 0x3C]
	cmp r0, r3
	bls _0800759E
	str r3, [r5, 0x3C]
_0800759E:
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _080075A6
	str r3, [r5, 0x40]
_080075A6:
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	subs r0, 0x1
	cmp r9, r0
	bge _080075CC
	adds r3, 0x20
	mov r6, r12
	ldr r0, [r6, 0x4]
	ands r2, r0
	ldr r0, [r6, 0xC]
	lsrs r2, r0
	ldr r0, [r3]
	orrs r0, r2
	str r0, [r3]
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _080075CA
	str r3, [r5, 0x40]
_080075CA:
	subs r3, 0x20
_080075CC:
	ldr r7, [sp, 0x4]
	ldrh r2, [r7, 0x4]
	cmp r2, 0
	beq _08007620
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	subs r0, 0x1
	cmp r9, r0
	bge _080075FA
	adds r3, 0x20
	mov r6, r12
	ldr r1, [r6]
	ands r1, r2
	ldr r0, [r6, 0x8]
	lsls r1, r0
	ldr r0, [r3]
	orrs r0, r1
	str r0, [r3]
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _080075F8
	str r3, [r5, 0x40]
_080075F8:
	subs r3, 0x20
_080075FA:
	movs r7, 0x4
	ldrsh r0, [r5, r7]
	subs r0, 0x2
	cmp r9, r0
	bge _08007620
	adds r3, 0x40
	mov r1, r12
	ldr r0, [r1, 0x4]
	ands r2, r0
	ldr r0, [r1, 0xC]
	lsrs r2, r0
	ldr r0, [r3]
	orrs r0, r2
	str r0, [r3]
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _0800761E
	str r3, [r5, 0x40]
_0800761E:
	subs r3, 0x40
_08007620:
	ldr r2, [sp, 0x4]
	adds r2, 0x6
	str r2, [sp, 0x4]
	adds r3, 0x4
	movs r6, 0x1
	add r10, r6
	movs r0, 0x7
	mov r7, r10
	ands r0, r7
	cmp r0, 0
	bne _0800764E
	ldr r0, [r5, 0x20]
	lsls r0, 2
	adds r3, r0
	ldr r0, [sp, 0x14]
	adds r0, 0x1
	str r0, [sp, 0x14]
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	ldr r2, [sp, 0x14]
	cmp r2, r0
	blt _0800764E
	b _0800786C
_0800764E:
	ldr r6, [sp, 0x10]
	adds r6, 0x1
	str r6, [sp, 0x10]
	ldr r7, _0800766C
	ldr r0, [r7]
	lsls r0, 2
	adds r0, r4
	ldr r0, [r0]
	cmp r6, r0
	blt _08007570
	b _0800786C
	.align 2, 0
_08007664: .4byte gUnknown_80B85DC
_08007668: .4byte gUnknown_202B028
_0800766C: .4byte gCurrentCharmap
_08007670:
	movs r0, 0
	str r0, [sp, 0x20]
	mov r0, r10
	cmp r0, 0
	bge _0800767C
	adds r0, 0x7
_0800767C:
	asrs r4, r0, 3
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	adds r1, r4, 0
	muls r1, r0
	adds r0, r6, 0
	cmp r6, 0
	bge _0800768E
	adds r0, r6, 0x7
_0800768E:
	asrs r2, r0, 3
	adds r0, r1, r2
	lsls r0, 5
	ldr r1, [r5, 0x18]
	adds r3, r1, r0
	lsls r0, r4, 3
	mov r7, r10
	subs r0, r7, r0
	lsls r0, 2
	adds r3, r0
	lsls r0, r2, 3
	subs r0, r6, r0
	lsls r0, 4
	ldr r1, _0800788C
	adds r0, r1
	mov r12, r0
	mov r9, r2
	str r4, [sp, 0x14]
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r4, r0
	blt _080076BC
	b _0800786C
_080076BC:
	movs r2, 0
	str r2, [sp, 0x10]
	ldr r2, _08007890
	ldr r1, _08007894
	ldr r0, [r1]
	lsls r0, 2
	adds r0, r2
	ldr r0, [r0]
	ldr r4, [sp, 0x10]
	cmp r4, r0
	blt _080076D4
	b _0800786C
_080076D4:
	ldr r6, [sp, 0x4]
	ldrh r0, [r6, 0x2]
	lsls r4, r0, 16
	ldrh r0, [r6]
	orrs r4, r0
	ldr r1, _08007898
	ands r1, r4
	ldr r0, [sp, 0x18]
	ands r0, r4
	adds r2, r1, r0
	ldr r7, [sp, 0x1C]
	cmp r7, 0
	beq _08007724
	ldr r1, [sp, 0xC]
	ldrh r0, [r1, 0x2]
	lsls r0, 16
	ldrh r1, [r1]
	orrs r0, r1
	lsls r1, r0, 4
	mvns r6, r4
	mov r8, r6
	bics r1, r4
	ldr r7, _0800789C
	ldr r6, [r7]
	ands r1, r6
	orrs r2, r1
	ldr r0, [sp, 0x20]
	cmp r0, 0
	beq _08007724
	ldr r1, [sp, 0x8]
	ldrh r0, [r1, 0x2]
	lsls r0, 16
	ldrh r1, [r1]
	orrs r0, r1
	lsls r1, r0, 4
	eors r1, r4
	mov r4, r8
	ands r1, r4
	ands r1, r6
	orrs r2, r1
_08007724:
	cmp r2, 0
	beq _08007776
	movs r6, 0x4
	ldrsh r0, [r5, r6]
	cmp r9, r0
	bge _08007750
	mov r7, r12
	ldr r1, [r7]
	ands r1, r2
	ldr r0, [r7, 0x8]
	lsls r1, r0
	ldr r0, [r3]
	orrs r0, r1
	str r0, [r3]
	ldr r0, [r5, 0x3C]
	cmp r0, r3
	bls _08007748
	str r3, [r5, 0x3C]
_08007748:
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _08007750
	str r3, [r5, 0x40]
_08007750:
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	subs r0, 0x1
	cmp r9, r0
	bge _08007776
	adds r3, 0x20
	mov r4, r12
	ldr r0, [r4, 0x4]
	ands r2, r0
	ldr r0, [r4, 0xC]
	lsrs r2, r0
	ldr r0, [r3]
	orrs r0, r2
	str r0, [r3]
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _08007774
	str r3, [r5, 0x40]
_08007774:
	subs r3, 0x20
_08007776:
	ldr r6, [sp, 0x4]
	ldrh r4, [r6, 0x4]
	ldr r1, _08007898
	ands r1, r4
	ldr r0, [sp, 0x18]
	ands r0, r4
	adds r2, r1, r0
	ldr r7, [sp, 0x1C]
	cmp r7, 0
	beq _080077CC
	ldr r1, [sp, 0xC]
	ldrh r0, [r1, 0x4]
	lsls r1, r0, 4
	ldr r6, [sp, 0xC]
	ldrh r0, [r6, 0x2]
	movs r7, 0xF
	mov r8, r7
	lsrs r0, 12
	orrs r1, r0
	mvns r0, r4
	str r0, [sp, 0x24]
	bics r1, r4
	ldr r7, _0800789C
	ldr r6, [r7]
	ands r1, r6
	orrs r2, r1
	ldr r0, [sp, 0x20]
	cmp r0, 0
	beq _080077CC
	ldr r1, [sp, 0x8]
	ldrh r0, [r1, 0x4]
	lsls r1, r0, 4
	ldr r7, [sp, 0x8]
	ldrh r0, [r7, 0x2]
	lsrs r0, 12
	mov r7, r8
	ands r0, r7
	orrs r1, r0
	eors r1, r4
	ldr r0, [sp, 0x24]
	ands r1, r0
	ands r1, r6
	orrs r2, r1
_080077CC:
	cmp r2, 0
	beq _0800781C
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	subs r0, 0x1
	cmp r9, r0
	bge _080077F6
	adds r3, 0x20
	mov r4, r12
	ldr r1, [r4]
	ands r1, r2
	ldr r0, [r4, 0x8]
	lsls r1, r0
	ldr r0, [r3]
	orrs r0, r1
	str r0, [r3]
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _080077F4
	str r3, [r5, 0x40]
_080077F4:
	subs r3, 0x20
_080077F6:
	movs r6, 0x4
	ldrsh r0, [r5, r6]
	subs r0, 0x2
	cmp r9, r0
	bge _0800781C
	adds r3, 0x40
	mov r7, r12
	ldr r0, [r7, 0x4]
	ands r2, r0
	ldr r0, [r7, 0xC]
	lsrs r2, r0
	ldr r0, [r3]
	orrs r0, r2
	str r0, [r3]
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _0800781A
	str r3, [r5, 0x40]
_0800781A:
	subs r3, 0x40
_0800781C:
	movs r0, 0x1
	str r0, [sp, 0x20]
	ldr r1, [sp, 0x4]
	adds r1, 0x6
	str r1, [sp, 0x4]
	ldr r2, [sp, 0x8]
	adds r2, 0x6
	str r2, [sp, 0x8]
	ldr r4, [sp, 0xC]
	adds r4, 0x6
	str r4, [sp, 0xC]
	adds r3, 0x4
	add r10, r0
	movs r0, 0x7
	mov r6, r10
	ands r0, r6
	cmp r0, 0
	bne _08007854
	ldr r0, [r5, 0x20]
	lsls r0, 2
	adds r3, r0
	ldr r7, [sp, 0x14]
	adds r7, 0x1
	str r7, [sp, 0x14]
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r7, r0
	bge _0800786C
_08007854:
	ldr r2, [sp, 0x10]
	adds r2, 0x1
	str r2, [sp, 0x10]
	ldr r4, _08007894
	ldr r0, [r4]
	lsls r0, 2
	ldr r6, _08007890
	adds r0, r6
	ldr r0, [r0]
	cmp r2, r0
	bge _0800786C
	b _080076D4
_0800786C:
	ldr r7, [sp]
	movs r1, 0x6
	ldrsh r0, [r7, r1]
	ldr r2, _080078A0
	movs r3, 0
	ldrsh r1, [r2, r3]
	adds r0, r1
	add sp, 0x28
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_0800788C: .4byte gUnknown_80B85DC
_08007890: .4byte gUnknown_202B028
_08007894: .4byte gCurrentCharmap
_08007898: .4byte 0x11111111
_0800789C: .4byte gUnknown_202B030
_080078A0: .4byte gCharacterSpacing
	thumb_func_end xxx_draw_char

	thumb_func_start sub_80078A4
sub_80078A4:
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	adds r4, r2, 0
	mov r8, r3
	ldr r0, [sp, 0x18]
	str r0, [sp]
	adds r0, r5, 0
	bl sub_800792C
	adds r4, 0x1
	ldr r0, _080078E4
	ldr r0, [r0]
	movs r1, 0xF
	ands r0, r1
	str r0, [sp]
	adds r0, r5, 0
	adds r1, r6, 0
	adds r2, r4, 0
	mov r3, r8
	bl sub_800792C
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_080078E4: .4byte gUnknown_202B030
	thumb_func_end sub_80078A4

	thumb_func_start sub_80078E8
sub_80078E8:
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x4
	adds r5, r0, 0
	adds r6, r1, 0
	adds r4, r2, 0
	mov r8, r3
	ldr r0, [sp, 0x18]
	str r0, [sp]
	adds r0, r5, 0
	bl nullsub_129
	adds r4, 0x1
	ldr r0, _08007928
	ldr r0, [r0]
	movs r1, 0xF
	ands r0, r1
	str r0, [sp]
	adds r0, r5, 0
	adds r1, r6, 0
	adds r2, r4, 0
	mov r3, r8
	bl nullsub_129
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08007928: .4byte gUnknown_202B030
	thumb_func_end sub_80078E8

	thumb_func_start sub_800792C
sub_800792C:
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x18]
	ldr r0, _08007950
	str r3, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl sub_8007958
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08007950: .4byte gUnknown_2027370
	thumb_func_end sub_800792C

	thumb_func_start nullsub_129
nullsub_129:
	bx lr
	thumb_func_end nullsub_129

	thumb_func_start sub_8007958
sub_8007958:
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x24
	mov r8, r2
	adds r7, r3, 0
	ldr r2, [sp, 0x40]
	mov r12, r2
	ldr r3, [sp, 0x44]
	lsls r2, r1, 3
	adds r2, r1
	lsls r2, 3
	adds r5, r0, r2
	ldr r1, _08007A68
	movs r0, 0xF
	ands r3, r0
	lsls r3, 2
	adds r3, r1
	ldr r3, [r3]
	mov r9, r3
	adds r0, r7, 0
	cmp r7, 0
	bge _0800798A
	adds r0, r7, 0x7
_0800798A:
	asrs r4, r0, 3
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	muls r0, r4
	mov r2, r8
	cmp r2, 0
	bge _0800799A
	adds r2, 0x7
_0800799A:
	asrs r2, 3
	adds r0, r2
	lsls r0, 5
	ldr r1, [r5, 0x18]
	adds r3, r1, r0
	lsls r0, r4, 3
	subs r0, r7, r0
	lsls r0, 2
	adds r3, r0
	adds r6, r2, 0
	movs r2, 0x8
	ldrsh r0, [r5, r2]
	cmp r4, r0
	bge _08007A58
	mov r1, sp
	ldr r0, _08007A6C
	ldm r0!, {r2,r4,r7}
	stm r1!, {r2,r4,r7}
	ldm r0!, {r2,r4,r7}
	stm r1!, {r2,r4,r7}
	ldm r0!, {r2,r4,r7}
	stm r1!, {r2,r4,r7}
	mov r4, r12
	cmp r4, 0
	ble _08007A58
	ldr r7, _08007A70
_080079CE:
	mov r1, r12
	cmp r1, 0x7
	ble _080079D6
	movs r1, 0x8
_080079D6:
	mov r0, r8
	cmp r0, 0
	bge _080079DE
	adds r0, 0x7
_080079DE:
	asrs r0, 3
	lsls r0, 3
	mov r2, r8
	subs r0, r2, r0
	lsls r0, 4
	adds r4, r0, r7
	lsls r0, r1, 2
	add r0, sp
	ldr r2, [r0]
	ldr r1, _08007A74
	ands r1, r2
	mov r0, r9
	ands r0, r2
	adds r2, r1, r0
	cmp r2, 0
	beq _08007A48
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	cmp r6, r0
	bge _08007A24
	ldr r1, [r4]
	ands r1, r2
	ldr r0, [r4, 0x8]
	lsls r1, r0
	ldr r0, [r3]
	orrs r0, r1
	str r0, [r3]
	ldr r0, [r5, 0x3C]
	cmp r0, r3
	bls _08007A1C
	str r3, [r5, 0x3C]
_08007A1C:
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _08007A24
	str r3, [r5, 0x40]
_08007A24:
	movs r1, 0x4
	ldrsh r0, [r5, r1]
	subs r0, 0x1
	cmp r6, r0
	bge _08007A48
	adds r3, 0x20
	ldr r0, [r4, 0x4]
	ands r2, r0
	ldr r0, [r4, 0xC]
	lsrs r2, r0
	ldr r0, [r3]
	orrs r0, r2
	str r0, [r3]
	ldr r0, [r5, 0x40]
	cmp r0, r3
	bcs _08007A46
	str r3, [r5, 0x40]
_08007A46:
	subs r3, 0x20
_08007A48:
	adds r6, 0x1
	adds r3, 0x20
	movs r2, 0x8
	negs r2, r2
	add r12, r2
	mov r4, r12
	cmp r4, 0
	bgt _080079CE
_08007A58:
	add sp, 0x24
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08007A68: .4byte gUnknown_80B853C
_08007A6C: .4byte gUnknown_80B8824
_08007A70: .4byte gUnknown_80B85DC
_08007A74: .4byte 0x11111111
	thumb_func_end sub_8007958

	thumb_func_start sub_8007A78
sub_8007A78:
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x18]
	ldr r0, _08007A9C
	str r3, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl sub_8007AA4
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08007A9C: .4byte gUnknown_2027370
	thumb_func_end sub_8007A78

	thumb_func_start nullsub_157
nullsub_157:
	bx lr
	thumb_func_end nullsub_157

	thumb_func_start sub_8007AA4
sub_8007AA4:
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x20
	mov r9, r2
	adds r5, r3, 0
	ldr r7, [sp, 0x3C]
	ldr r3, [sp, 0x40]
	lsls r2, r1, 3
	adds r2, r1
	lsls r2, 3
	adds r4, r0, r2
	ldr r1, _08007B28
	movs r0, 0xF
	ands r3, r0
	lsls r3, 2
	adds r3, r1
	ldr r0, [r3]
	ldr r1, _08007B2C
	adds r1, r0
	mov r12, r1
	mov r1, sp
	ldr r0, _08007B30
	ldm r0!, {r2,r3,r6}
	stm r1!, {r2,r3,r6}
	ldm r0!, {r2,r3,r6}
	stm r1!, {r2,r3,r6}
	ldm r0!, {r2,r3}
	stm r1!, {r2,r3}
	adds r0, r5, 0
	cmp r5, 0
	bge _08007AE8
	adds r0, r5, 0x7
_08007AE8:
	asrs r3, r0, 3
	movs r0, 0x4
	ldrsh r6, [r4, r0]
	mov r8, r6
	mov r0, r8
	muls r0, r3
	mov r2, r9
	cmp r2, 0
	bge _08007AFC
	adds r2, 0x7
_08007AFC:
	asrs r2, 3
	adds r0, r2
	lsls r0, 5
	ldr r1, [r4, 0x18]
	adds r1, r0
	lsls r0, r3, 3
	subs r0, r5, r0
	lsls r0, 2
	adds r1, r0
	movs r0, 0x7
	mov r6, r9
	ands r0, r6
	lsls r0, 2
	add r0, sp
	ldr r0, [r0]
	mov r6, r12
	ands r6, r0
	mov r12, r6
	cmp r2, r8
	bge _08007B6E
	b _08007B48
	.align 2, 0
_08007B28: .4byte gUnknown_80B853C
_08007B2C: .4byte 0x11111111
_08007B30: .4byte gUnknown_80B8848
_08007B34:
	adds r5, 0x1
	adds r1, 0x4
	movs r0, 0x7
	ands r0, r5
	cmp r0, 0
	bne _08007B46
	ldr r0, [r4, 0x20]
	lsls r0, 2
	adds r1, r0
_08007B46:
	subs r7, 0x1
_08007B48:
	cmp r7, 0
	ble _08007B6E
	movs r2, 0x8
	ldrsh r0, [r4, r2]
	cmp r3, r0
	bge _08007B6E
	ldr r0, [r1]
	mov r6, r12
	orrs r0, r6
	str r0, [r1]
	ldr r0, [r4, 0x3C]
	cmp r0, r1
	bls _08007B64
	str r1, [r4, 0x3C]
_08007B64:
	ldr r0, [r4, 0x40]
	cmp r0, r1
	bcs _08007B34
	str r1, [r4, 0x40]
	b _08007B34
_08007B6E:
	add sp, 0x20
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8007AA4

	thumb_func_start sub_8007B7C
sub_8007B7C:
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x18]
	ldr r0, _08007BA0
	str r3, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl sub_8007BA8
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08007BA0: .4byte gUnknown_2027370
	thumb_func_end sub_8007B7C

	thumb_func_start nullsub_158
nullsub_158:
	bx lr
	thumb_func_end nullsub_158

	thumb_func_start sub_8007BA8
sub_8007BA8:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	str r2, [sp]
	lsls r2, r1, 3
	adds r2, r1
	lsls r2, 3
	adds r0, r2
	mov r12, r0
	adds r0, r3, 0
	cmp r3, 0
	bge _08007BC8
	adds r0, r3, 0x7
_08007BC8:
	asrs r0, 3
	str r0, [sp, 0x8]
	mov r1, r12
	movs r2, 0x8
	ldrsh r0, [r1, r2]
	ldr r4, [sp, 0x8]
	cmp r4, r0
	bge _08007CC4
	movs r7, 0x4
	ldrsh r0, [r1, r7]
	adds r1, r4, 0
	muls r1, r0
	ldr r0, [sp]
	cmp r0, 0
	bge _08007BE8
	adds r0, 0x7
_08007BE8:
	asrs r0, 3
	adds r0, r1, r0
	lsls r0, 5
	mov r2, r12
	ldr r1, [r2, 0x18]
	adds r4, r1, r0
	ldr r7, [sp, 0x8]
	lsls r0, r7, 3
	subs r0, r3, r0
	lsls r0, 2
	adds r4, r0
	movs r0, 0
	str r0, [sp, 0x4]
	ldr r1, [sp, 0x44]
	cmp r0, r1
	bge _08007CC4
_08007C08:
	adds r2, r4, 0
	ldr r0, [sp]
	cmp r0, 0
	bge _08007C12
	adds r0, 0x7
_08007C12:
	asrs r1, r0, 3
	movs r7, 0
	mov r8, r7
	adds r3, 0x1
	str r3, [sp, 0xC]
	adds r4, 0x4
	str r4, [sp, 0x14]
	ldr r0, [sp, 0x40]
	cmp r8, r0
	bge _08007C94
_08007C26:
	mov r3, r12
	movs r4, 0x4
	ldrsh r0, [r3, r4]
	cmp r1, r0
	bge _08007C94
	movs r6, 0xF0
	lsls r6, 24
	movs r5, 0xE0
	lsls r5, 24
	movs r7, 0
	str r7, [sp, 0x1C]
	ldr r4, [r2]
	adds r3, r4, 0
	mov r0, r12
	ldr r0, [r0, 0x3C]
	mov r9, r0
	mov r7, r12
	ldr r7, [r7, 0x40]
	mov r10, r7
	adds r1, 0x1
	str r1, [sp, 0x10]
	adds r0, r2, 0
	adds r0, 0x20
	str r0, [sp, 0x18]
	movs r1, 0x8
	add r8, r1
	movs r1, 0x7
_08007C5C:
	adds r0, r4, 0
	ands r0, r6
	cmp r0, 0
	bne _08007C6A
	ldr r7, [sp, 0x1C]
	orrs r7, r5
	str r7, [sp, 0x1C]
_08007C6A:
	lsrs r6, 4
	lsrs r5, 4
	subs r1, 0x1
	cmp r1, 0
	bge _08007C5C
	ldr r0, [sp, 0x1C]
	orrs r3, r0
	str r3, [r2]
	cmp r9, r2
	bls _08007C82
	mov r1, r12
	str r2, [r1, 0x3C]
_08007C82:
	cmp r10, r2
	bcs _08007C8A
	mov r3, r12
	str r2, [r3, 0x40]
_08007C8A:
	ldr r1, [sp, 0x10]
	ldr r2, [sp, 0x18]
	ldr r4, [sp, 0x40]
	cmp r8, r4
	blt _08007C26
_08007C94:
	ldr r3, [sp, 0xC]
	ldr r4, [sp, 0x14]
	movs r0, 0x7
	ands r0, r3
	cmp r0, 0
	bne _08007CB8
	mov r7, r12
	ldr r0, [r7, 0x20]
	lsls r0, 2
	adds r4, r0
	ldr r0, [sp, 0x8]
	adds r0, 0x1
	str r0, [sp, 0x8]
	movs r1, 0x8
	ldrsh r0, [r7, r1]
	ldr r2, [sp, 0x8]
	cmp r2, r0
	bge _08007CC4
_08007CB8:
	ldr r7, [sp, 0x4]
	adds r7, 0x1
	str r7, [sp, 0x4]
	ldr r0, [sp, 0x44]
	cmp r7, r0
	blt _08007C08
_08007CC4:
	add sp, 0x20
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8007BA8

	thumb_func_start sub_8007CD4
sub_8007CD4:
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x18]
	ldr r0, _08007CF8
	str r3, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl sub_8007D00
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08007CF8: .4byte gUnknown_2027370
	thumb_func_end sub_8007CD4

	thumb_func_start nullsub_159
nullsub_159:
	bx lr
	thumb_func_end nullsub_159

	thumb_func_start sub_8007D00
sub_8007D00:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	str r2, [sp]
	lsls r2, r1, 3
	adds r2, r1
	lsls r2, 3
	adds r0, r2
	mov r12, r0
	adds r0, r3, 0
	cmp r3, 0
	bge _08007D20
	adds r0, r3, 0x7
_08007D20:
	asrs r0, 3
	str r0, [sp, 0x8]
	mov r1, r12
	movs r2, 0x8
	ldrsh r0, [r1, r2]
	ldr r4, [sp, 0x8]
	cmp r4, r0
	bge _08007E0E
	movs r5, 0x4
	ldrsh r0, [r1, r5]
	adds r1, r4, 0
	muls r1, r0
	ldr r0, [sp]
	cmp r0, 0
	bge _08007D40
	adds r0, 0x7
_08007D40:
	asrs r0, 3
	adds r0, r1, r0
	lsls r0, 5
	mov r2, r12
	ldr r1, [r2, 0x18]
	adds r4, r1, r0
	ldr r5, [sp, 0x8]
	lsls r0, r5, 3
	subs r0, r3, r0
	lsls r0, 2
	adds r4, r0
	movs r0, 0
	b _08007E06
_08007D5A:
	adds r2, r4, 0
	ldr r0, [sp]
	cmp r0, 0
	bge _08007D64
	adds r0, 0x7
_08007D64:
	asrs r1, r0, 3
	movs r5, 0
	mov r8, r5
	adds r3, 0x1
	str r3, [sp, 0xC]
	adds r4, 0x4
	str r4, [sp, 0x14]
	ldr r0, [sp, 0x40]
	cmp r8, r0
	bge _08007DE0
_08007D78:
	mov r3, r12
	movs r4, 0x4
	ldrsh r0, [r3, r4]
	cmp r1, r0
	bge _08007DE0
	movs r4, 0xF0
	lsls r4, 24
	movs r6, 0xE0
	lsls r6, 24
	movs r7, 0
	ldr r5, [r2]
	str r5, [sp, 0x1C]
	adds r3, r5, 0
	mov r0, r12
	ldr r0, [r0, 0x3C]
	mov r9, r0
	mov r5, r12
	ldr r5, [r5, 0x40]
	mov r10, r5
	adds r1, 0x1
	str r1, [sp, 0x10]
	adds r0, r2, 0
	adds r0, 0x20
	str r0, [sp, 0x18]
	movs r1, 0x8
	add r8, r1
	movs r1, 0x7
_08007DAE:
	ldr r0, [sp, 0x1C]
	ands r0, r4
	cmp r0, r6
	bne _08007DB8
	orrs r7, r4
_08007DB8:
	lsrs r4, 4
	lsrs r6, 4
	subs r1, 0x1
	cmp r1, 0
	bge _08007DAE
	bics r3, r7
	str r3, [r2]
	cmp r9, r2
	bls _08007DCE
	mov r3, r12
	str r2, [r3, 0x3C]
_08007DCE:
	cmp r10, r2
	bcs _08007DD6
	mov r4, r12
	str r2, [r4, 0x40]
_08007DD6:
	ldr r1, [sp, 0x10]
	ldr r2, [sp, 0x18]
	ldr r5, [sp, 0x40]
	cmp r8, r5
	blt _08007D78
_08007DE0:
	ldr r3, [sp, 0xC]
	ldr r4, [sp, 0x14]
	movs r0, 0x7
	ands r0, r3
	cmp r0, 0
	bne _08007E02
	mov r1, r12
	ldr r0, [r1, 0x20]
	lsls r0, 2
	adds r4, r0
	ldr r2, [sp, 0x8]
	adds r2, 0x1
	str r2, [sp, 0x8]
	movs r5, 0x8
	ldrsh r0, [r1, r5]
	cmp r2, r0
	bge _08007E0E
_08007E02:
	ldr r0, [sp, 0x4]
	adds r0, 0x1
_08007E06:
	str r0, [sp, 0x4]
	ldr r1, [sp, 0x44]
	cmp r0, r1
	blt _08007D5A
_08007E0E:
	add sp, 0x20
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8007D00

	thumb_func_start sub_8007E20
sub_8007E20:
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x14
	mov r8, r0
	mov r9, r1
	ldr r4, [sp, 0x2C]
	ldr r5, [sp, 0x30]
	ldr r6, [sp, 0x34]
	ldr r0, _08007E58
	ldr r1, _08007E5C
	str r2, [sp]
	str r3, [sp, 0x4]
	str r4, [sp, 0x8]
	str r5, [sp, 0xC]
	str r6, [sp, 0x10]
	mov r2, r8
	mov r3, r9
	bl sub_8007E64
	add sp, 0x14
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08007E58: .4byte gUnknown_2027370
_08007E5C: .4byte gUnknown_202B038
	thumb_func_end sub_8007E20

	thumb_func_start nullsub_160
nullsub_160:
	bx lr
	thumb_func_end nullsub_160

	thumb_func_start sub_8007E64
sub_8007E64:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	str r1, [sp]
	str r3, [sp, 0x4]
	ldr r7, [sp, 0x30]
	ldr r1, [sp, 0x34]
	mov r9, r1
	ldr r1, [sp, 0x38]
	mov r10, r1
	ldr r5, [sp, 0x3C]
	lsls r1, r2, 3
	adds r1, r2
	lsls r1, 3
	adds r4, r0, r1
	adds r0, r3, 0
	cmp r0, 0
	bge _08007E90
	adds r0, 0x7
_08007E90:
	asrs r0, 3
	str r0, [sp, 0x4]
	adds r0, r7, 0
	cmp r7, 0
	bge _08007E9C
	adds r0, r7, 0x7
_08007E9C:
	asrs r7, r0, 3
	mov r0, r9
	cmp r0, 0
	bge _08007EA6
	adds r0, 0x7
_08007EA6:
	asrs r0, 3
	mov r9, r0
	mov r0, r10
	cmp r0, 0
	bge _08007EB2
	adds r0, 0x7
_08007EB2:
	asrs r0, 3
	mov r10, r0
	ldr r2, [sp, 0x40]
	lsls r2, 12
	str r2, [sp, 0x40]
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r7, r0
	bge _08007F98
	movs r2, 0x4
	ldrsh r0, [r4, r2]
	muls r0, r7
	ldr r1, [sp, 0x4]
	adds r0, r1
	lsls r0, 5
	ldr r1, [r4, 0x18]
	adds r1, r0
	mov r8, r1
	movs r2, 0
	b _08007F92
_08007EDA:
	ldr r6, [sp, 0x4]
	mov r3, r8
	adds r0, r7, 0x1
	str r0, [sp, 0xC]
	mov r1, r9
	cmp r1, 0
	ble _08007F7A
	mov r12, r9
_08007EEA:
	movs r2, 0x4
	ldrsh r0, [r4, r2]
	cmp r6, r0
	bge _08007F68
	ldr r0, [r4, 0x3C]
	cmp r0, r3
	bls _08007EFA
	str r3, [r4, 0x3C]
_08007EFA:
	ldm r5!, {r0}
	stm r3!, {r0}
	ldm r5!, {r0}
	stm r3!, {r0}
	ldm r5!, {r0}
	stm r3!, {r0}
	ldm r5!, {r0}
	stm r3!, {r0}
	ldm r5!, {r0}
	stm r3!, {r0}
	ldm r5!, {r0}
	stm r3!, {r0}
	ldm r5!, {r0}
	stm r3!, {r0}
	ldr r0, [r5]
	stm r3!, {r0}
	ldr r0, [r4, 0x40]
	cmp r0, r3
	bcs _08007F22
	str r3, [r4, 0x40]
_08007F22:
	adds r5, 0x4
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	adds r0, r7
	movs r2, 0
	ldrsh r1, [r4, r2]
	adds r1, r6
	lsls r1, 1
	lsls r0, 6
	ldr r2, [sp]
	adds r0, r2
	adds r1, r0
	ldrh r2, [r1]
	ldr r0, _08007F64
	ands r0, r2
	strh r0, [r1]
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	adds r0, r7
	movs r2, 0
	ldrsh r1, [r4, r2]
	adds r1, r6
	lsls r1, 1
	lsls r0, 6
	ldr r2, [sp]
	adds r0, r2
	adds r1, r0
	ldrh r2, [r1]
	ldr r0, [sp, 0x40]
	orrs r0, r2
	strh r0, [r1]
	b _08007F6C
	.align 2, 0
_08007F64: .4byte 0x00000fff
_08007F68:
	adds r3, 0x20
	adds r5, 0x20
_08007F6C:
	adds r6, 0x1
	movs r0, 0x1
	negs r0, r0
	add r12, r0
	mov r1, r12
	cmp r1, 0
	bne _08007EEA
_08007F7A:
	ldr r7, [sp, 0xC]
	ldr r0, [r4, 0x20]
	lsls r0, 2
	add r8, r0
	movs r2, 0x20
	add r8, r2
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r7, r0
	bge _08007F98
	ldr r2, [sp, 0x8]
	adds r2, 0x1
_08007F92:
	str r2, [sp, 0x8]
	cmp r2, r10
	blt _08007EDA
_08007F98:
	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_8007E64

	thumb_func_start sub_8007FA8
sub_8007FA8:
	adds r3, r0, 0
	lsrs r0, r3, 28
	lsrs r1, r3, 20
	movs r2, 0xF0
	ands r1, r2
	orrs r0, r1
	lsrs r1, r3, 12
	movs r2, 0xF0
	lsls r2, 4
	ands r1, r2
	orrs r0, r1
	lsrs r1, r3, 4
	movs r2, 0xF0
	lsls r2, 8
	ands r1, r2
	orrs r0, r1
	lsls r1, r3, 4
	movs r2, 0xF0
	lsls r2, 12
	ands r1, r2
	orrs r0, r1
	lsls r1, r3, 12
	movs r2, 0xF0
	lsls r2, 16
	ands r1, r2
	orrs r0, r1
	lsls r1, r3, 20
	movs r2, 0xF0
	lsls r2, 20
	ands r1, r2
	orrs r0, r1
	lsls r3, 28
	orrs r0, r3
	bx lr
	thumb_func_end sub_8007FA8

	thumb_func_start sub_8007FEC
sub_8007FEC:
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x14
	mov r8, r0
	mov r9, r1
	ldr r4, [sp, 0x2C]
	ldr r5, [sp, 0x30]
	ldr r6, [sp, 0x34]
	ldr r0, _08008024
	ldr r1, _08008028
	str r2, [sp]
	str r3, [sp, 0x4]
	str r4, [sp, 0x8]
	str r5, [sp, 0xC]
	str r6, [sp, 0x10]
	mov r2, r8
	mov r3, r9
	bl sub_8008030
	add sp, 0x14
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08008024: .4byte gUnknown_2027370
_08008028: .4byte gUnknown_202B038
	thumb_func_end sub_8007FEC

	thumb_func_start nullsub_161
nullsub_161:
	bx lr
	thumb_func_end nullsub_161

	thumb_func_start sub_8008030
sub_8008030:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	str r1, [sp]
	ldr r1, [sp, 0x30]
	mov r8, r1
	ldr r6, [sp, 0x3C]
	lsls r1, r2, 3
	adds r1, r2
	lsls r1, 3
	adds r5, r0, r1
	adds r0, r3, 0
	cmp r3, 0
	bge _08008054
	adds r0, r3, 0x7
_08008054:
	asrs r3, r0, 3
	mov r0, r8
	cmp r0, 0
	bge _0800805E
	adds r0, 0x7
_0800805E:
	asrs r0, 3
	mov r8, r0
	ldr r0, [sp, 0x34]
	cmp r0, 0
	bge _0800806A
	adds r0, 0x7
_0800806A:
	asrs r0, 3
	str r0, [sp, 0x34]
	ldr r0, [sp, 0x38]
	cmp r0, 0
	bge _08008076
	adds r0, 0x7
_08008076:
	asrs r0, 3
	str r0, [sp, 0x38]
	ldr r2, [sp, 0x40]
	lsls r2, 12
	str r2, [sp, 0x40]
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r8, r0
	blt _0800808A
	b _08008194
_0800808A:
	movs r2, 0x4
	ldrsh r0, [r5, r2]
	mov r1, r8
	muls r1, r0
	adds r0, r1, 0
	ldr r1, [sp, 0x34]
	adds r2, r3, r1
	adds r0, r2
	lsls r0, 5
	ldr r1, [r5, 0x18]
	adds r1, r0
	mov r10, r1
	movs r3, 0
	str r3, [sp, 0x4]
	str r2, [sp, 0xC]
	ldr r0, [sp, 0x38]
	cmp r3, r0
	bge _08008194
_080080AE:
	ldr r7, [sp, 0xC]
	mov r4, r10
	mov r1, r8
	adds r1, 0x1
	str r1, [sp, 0x8]
	ldr r2, [sp, 0x34]
	cmp r2, 0
	ble _08008172
	mov r9, r2
_080080C0:
	subs r7, 0x1
	subs r4, 0x20
	movs r3, 0x4
	ldrsh r0, [r5, r3]
	cmp r7, r0
	bge _08008164
	ldr r0, [r5, 0x3C]
	cmp r0, r4
	bls _080080D4
	str r4, [r5, 0x3C]
_080080D4:
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4]
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4, 0x4]
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4, 0x8]
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4, 0xC]
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4, 0x10]
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4, 0x14]
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4, 0x18]
	ldm r6!, {r0}
	bl sub_8007FA8
	str r0, [r4, 0x1C]
	adds r1, r4, 0
	adds r1, 0x20
	ldr r0, [r5, 0x40]
	cmp r0, r1
	bcs _08008120
	str r1, [r5, 0x40]
_08008120:
	movs r1, 0x2
	ldrsh r0, [r5, r1]
	add r0, r8
	movs r2, 0
	ldrsh r1, [r5, r2]
	adds r1, r7
	lsls r1, 1
	lsls r0, 6
	ldr r3, [sp]
	adds r0, r3
	adds r1, r0
	ldrh r0, [r1]
	ldr r3, _08008160
	adds r2, r3, 0
	ands r0, r2
	strh r0, [r1]
	movs r1, 0x2
	ldrsh r0, [r5, r1]
	add r0, r8
	movs r2, 0
	ldrsh r1, [r5, r2]
	adds r1, r7
	lsls r1, 1
	lsls r0, 6
	ldr r3, [sp]
	adds r0, r3
	adds r1, r0
	ldrh r2, [r1]
	ldr r0, [sp, 0x40]
	orrs r0, r2
	strh r0, [r1]
	b _08008166
	.align 2, 0
_08008160: .4byte 0x00000fff
_08008164:
	adds r6, 0x20
_08008166:
	movs r0, 0x1
	negs r0, r0
	add r9, r0
	mov r1, r9
	cmp r1, 0
	bne _080080C0
_08008172:
	ldr r2, [sp, 0x8]
	mov r8, r2
	ldr r0, [r5, 0x20]
	lsls r0, 2
	add r10, r0
	movs r3, 0x20
	add r10, r3
	movs r1, 0x8
	ldrsh r0, [r5, r1]
	cmp r8, r0
	bge _08008194
	ldr r2, [sp, 0x4]
	adds r2, 0x1
	str r2, [sp, 0x4]
	ldr r3, [sp, 0x38]
	cmp r2, r3
	blt _080080AE
_08008194:
	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_8008030

	thumb_func_start sub_80081A4
sub_80081A4:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	str r1, [sp]
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 3
	ldr r0, _08008234
	adds r6, r1, r0
	lsls r3, 7
	ldr r0, _08008238
	adds r3, r0
	ldr r0, [sp]
	cmp r0, 0
	bge _080081CA
	adds r0, 0x7
_080081CA:
	asrs r0, 3
	str r0, [sp]
	adds r0, r2, 0
	cmp r2, 0
	bge _080081D6
	adds r0, r2, 0x7
_080081D6:
	asrs r2, r0, 3
	movs r0, 0x2
	mov r9, r0
	mov r10, r0
	movs r1, 0x8
	ldrsh r0, [r6, r1]
	cmp r2, r0
	bge _08008262
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	muls r0, r2
	ldr r1, [sp]
	adds r0, r1
	lsls r0, 5
	ldr r1, [r6, 0x28]
	adds r5, r1, r0
	movs r7, 0
	mov r8, r7
_080081FA:
	ldr r4, [sp]
	adds r1, r5, 0
	adds r2, 0x1
	mov r12, r2
	mov r0, r9
	cmp r0, 0
	beq _08008248
	mov r2, r9
_0800820A:
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	cmp r4, r0
	bge _0800823C
	ldm r3!, {r0}
	stm r1!, {r0}
	ldm r3!, {r0}
	stm r1!, {r0}
	ldm r3!, {r0}
	stm r1!, {r0}
	ldm r3!, {r0}
	stm r1!, {r0}
	ldm r3!, {r0}
	stm r1!, {r0}
	ldm r3!, {r0}
	stm r1!, {r0}
	ldm r3!, {r0}
	stm r1!, {r0}
	ldm r3!, {r0}
	stm r1!, {r0}
	b _08008240
	.align 2, 0
_08008234: .4byte gUnknown_2027370
_08008238: .4byte gUnknown_80B86B4
_0800823C:
	adds r1, 0x20
	adds r3, 0x20
_08008240:
	adds r4, 0x1
	subs r2, 0x1
	cmp r2, 0
	bne _0800820A
_08008248:
	mov r2, r12
	ldr r0, [r6, 0x20]
	lsls r0, 2
	adds r5, r0
	adds r5, 0x20
	movs r1, 0x8
	ldrsh r0, [r6, r1]
	cmp r2, r0
	bge _08008262
	movs r7, 0x1
	add r8, r7
	cmp r8, r10
	blt _080081FA
_08008262:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_80081A4

	thumb_func_start sub_8008274
sub_8008274:
	push {r4,lr}
	sub sp, 0x4
	adds r4, r0, 0
	adds r3, r1, 0
	ldr r0, _08008290
	ldr r1, _08008294
	str r2, [sp]
	adds r2, r4, 0
	bl sub_800829C
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08008290: .4byte gUnknown_2027370
_08008294: .4byte gUnknown_202B038
	thumb_func_end sub_8008274

	thumb_func_start nullsub_162
nullsub_162:
	bx lr
	thumb_func_end nullsub_162

	thumb_func_start sub_800829C
sub_800829C:
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r1
	ldr r7, [sp, 0x18]
	lsls r1, r2, 3
	adds r1, r2
	lsls r1, 3
	adds r4, r0, r1
	lsls r7, 12
	ldr r0, [r4, 0x18]
	movs r1, 0x4
	ldrsh r2, [r4, r1]
	movs r5, 0x8
	ldrsh r1, [r4, r5]
	lsls r1, 5
	muls r1, r2
	adds r2, r3, 0
	bl DecompressAT
	movs r2, 0
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r2, r0
	bge _08008312
	movs r0, 0x4
	ldrsh r5, [r4, r0]
	mov r12, r5
_080082D4:
	adds r5, r2, 0x1
	mov r1, r12
	cmp r1, 0
	ble _08008308
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	adds r1, r2
	movs r2, 0
	ldrsh r0, [r4, r2]
	lsls r1, 6
	ldr r6, _08008330
	lsls r0, 1
	adds r0, r1
	mov r1, r8
	adds r2, r0, r1
	movs r0, 0x4
	ldrsh r3, [r4, r0]
_080082F6:
	ldrh r1, [r2]
	adds r0, r6, 0
	ands r0, r1
	orrs r0, r7
	strh r0, [r2]
	adds r2, 0x2
	subs r3, 0x1
	cmp r3, 0
	bne _080082F6
_08008308:
	adds r2, r5, 0
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r2, r0
	blt _080082D4
_08008312:
	ldr r0, [r4, 0x28]
	str r0, [r4, 0x30]
	ldr r0, [r4, 0x1C]
	str r0, [r4, 0x34]
	ldr r0, [r4, 0x2C]
	str r0, [r4, 0x38]
	adds r1, r4, 0
	adds r1, 0x44
	movs r0, 0x1
	strb r0, [r1]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08008330: .4byte 0x00000fff
	thumb_func_end sub_800829C

	thumb_func_start sub_8008334
sub_8008334:
	push {r4-r7,lr}
	adds r7, r0, 0
	mov r12, r1
	ldr r4, [r7]
	ldr r1, [r1]
	movs r3, 0
	movs r2, 0
	movs r6, 0xF
	movs r5, 0x1C
_08008346:
	lsls r2, 4
	lsls r3, 4
	adds r0, r4, 0
	ands r0, r6
	orrs r2, r0
	adds r0, r1, 0
	ands r0, r6
	orrs r3, r0
	lsrs r4, 4
	lsrs r1, 4
	subs r5, 0x4
	cmp r5, 0
	bge _08008346
	str r3, [r7]
	mov r0, r12
	str r2, [r0]
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8008334

	thumb_func_start sub_800836C
sub_800836C:
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	adds r3, r2, 0
	ldr r0, _08008384
	adds r1, r4, 0
	adds r2, r5, 0
	bl sub_800838C
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_08008384: .4byte gUnknown_2027370
	thumb_func_end sub_800836C

	thumb_func_start nullsub_163
nullsub_163:
	bx lr
	thumb_func_end nullsub_163

	thumb_func_start sub_800838C
sub_800838C:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r4, r1, 3
	adds r4, r1
	lsls r4, 3
	adds r7, r0, r4
	adds r0, r1, 0
	adds r1, r2, 0
	adds r2, r3, 0
	bl sub_8008274
	movs r0, 0
	mov r9, r0
	b _08008452
_080083AE:
	movs r1, 0x4
	ldrsh r0, [r7, r1]
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	mov r8, r0
	ldrh r1, [r7, 0x4]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _080083C8
	movs r0, 0x1
	add r8, r0
_080083C8:
	movs r6, 0
	movs r1, 0x1
	add r1, r9
	mov r10, r1
	cmp r6, r8
	bge _08008450
_080083D4:
	movs r0, 0x4
	ldrsh r1, [r7, r0]
	mov r0, r9
	muls r0, r1
	adds r4, r0, r6
	lsls r4, 5
	ldr r5, [r7, 0x18]
	adds r4, r5, r4
	subs r0, 0x1
	subs r1, r6
	adds r0, r1
	lsls r0, 5
	adds r5, r0
	adds r0, r4, 0
	adds r4, 0x4
	adds r1, r5, 0
	adds r5, 0x4
	bl sub_8008334
	adds r0, r4, 0
	adds r4, 0x4
	adds r1, r5, 0
	adds r5, 0x4
	bl sub_8008334
	adds r0, r4, 0
	adds r4, 0x4
	adds r1, r5, 0
	adds r5, 0x4
	bl sub_8008334
	adds r0, r4, 0
	adds r4, 0x4
	adds r1, r5, 0
	adds r5, 0x4
	bl sub_8008334
	adds r0, r4, 0
	adds r4, 0x4
	adds r1, r5, 0
	adds r5, 0x4
	bl sub_8008334
	adds r0, r4, 0
	adds r4, 0x4
	adds r1, r5, 0
	adds r5, 0x4
	bl sub_8008334
	adds r0, r4, 0
	adds r4, 0x4
	adds r1, r5, 0
	adds r5, 0x4
	bl sub_8008334
	adds r0, r4, 0
	adds r1, r5, 0
	bl sub_8008334
	adds r6, 0x1
	cmp r6, r8
	blt _080083D4
_08008450:
	mov r9, r10
_08008452:
	movs r1, 0x8
	ldrsh r0, [r7, r1]
	cmp r9, r0
	blt _080083AE
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_800838C

	thumb_func_start sub_8008468
sub_8008468:
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x10
	adds r6, r0, 0
	mov r8, r1
	ldr r4, [sp, 0x24]
	ldr r5, [sp, 0x28]
	ldr r0, _08008498
	ldr r1, _0800849C
	str r2, [sp]
	str r3, [sp, 0x4]
	str r4, [sp, 0x8]
	str r5, [sp, 0xC]
	adds r2, r6, 0
	mov r3, r8
	bl sub_80084A4
	add sp, 0x10
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08008498: .4byte gUnknown_2027370
_0800849C: .4byte gUnknown_202B038
	thumb_func_end sub_8008468

	thumb_func_start nullsub_164
nullsub_164:
	bx lr
	thumb_func_end nullsub_164

	thumb_func_start sub_80084A4
sub_80084A4:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	str r1, [sp]
	mov r10, r3
	ldr r6, [sp, 0x24]
	ldr r7, [sp, 0x28]
	ldr r1, [sp, 0x2C]
	mov r12, r1
	lsls r1, r2, 3
	adds r1, r2
	lsls r1, 3
	adds r4, r0, r1
	mov r0, r10
	cmp r0, 0
	bge _080084CC
	adds r0, 0x7
_080084CC:
	asrs r0, 3
	mov r10, r0
	adds r0, r6, 0
	cmp r6, 0
	bge _080084D8
	adds r0, r6, 0x7
_080084D8:
	asrs r6, r0, 3
	adds r0, r7, 0
	cmp r7, 0
	bge _080084E2
	adds r0, r7, 0x7
_080084E2:
	asrs r7, r0, 3
	mov r0, r12
	cmp r0, 0
	bge _080084EC
	adds r0, 0x7
_080084EC:
	asrs r0, 3
	mov r12, r0
	ldr r2, [sp, 0x30]
	lsls r2, 12
	str r2, [sp, 0x30]
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r6, r0
	bge _08008570
	movs r2, 0
	mov r8, r2
	cmp r8, r12
	bge _08008570
_08008506:
	mov r3, r10
	adds r0, r6, 0x1
	mov r9, r0
	cmp r7, 0
	ble _0800855E
	adds r5, r7, 0
_08008512:
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	cmp r3, r0
	bge _08008556
	movs r2, 0x2
	ldrsh r0, [r4, r2]
	adds r0, r6
	movs r2, 0
	ldrsh r1, [r4, r2]
	adds r1, r3
	lsls r1, 1
	lsls r0, 6
	ldr r2, [sp]
	adds r0, r2
	adds r1, r0
	ldrh r2, [r1]
	ldr r0, _08008580
	ands r0, r2
	strh r0, [r1]
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	adds r0, r6
	movs r2, 0
	ldrsh r1, [r4, r2]
	adds r1, r3
	lsls r1, 1
	lsls r0, 6
	ldr r2, [sp]
	adds r0, r2
	adds r1, r0
	ldrh r2, [r1]
	ldr r0, [sp, 0x30]
	orrs r0, r2
	strh r0, [r1]
_08008556:
	adds r3, 0x1
	subs r5, 0x1
	cmp r5, 0
	bne _08008512
_0800855E:
	mov r6, r9
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	cmp r6, r0
	bge _08008570
	movs r2, 0x1
	add r8, r2
	cmp r8, r12
	blt _08008506
_08008570:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08008580: .4byte 0x00000fff
	thumb_func_end sub_80084A4

	thumb_func_start GetCharacter
GetCharacter:
	push {r4,r5,lr}
	adds r3, r0, 0
	ldr r1, _080085C4
	ldr r0, _080085C8
	ldr r0, [r0]
	lsls r0, 2
	adds r0, r1
	ldr r2, [r0]
	ldr r5, [r2, 0x4]
	ldr r0, _080085CC
	adds r1, r3, r0
	ldr r0, _080085D0
	cmp r1, r0
	bhi _080085D4
	movs r2, 0xFF
	ands r2, r3
	movs r1, 0xFF
	lsls r1, 8
	ands r1, r3
	asrs r1, 8
	subs r2, 0x20
	subs r1, 0xF8
	lsls r0, r1, 3
	subs r0, r1
	lsls r0, 5
	adds r0, r2
	lsls r1, r0, 1
	adds r1, r0
	lsls r1, 2
	adds r1, r5, r1
	b _08008624
	.align 2, 0
_080085C4: .4byte gCharmaps
_080085C8: .4byte gCurrentCharmap
_080085CC: .4byte 0xffff0800
_080085D0: .4byte 0x000007fe
_080085D4:
	movs r4, 0
	ldr r0, [r2]
	subs r2, r0, 0x1
	cmp r4, r2
	bge _08008614
	lsrs r0, r2, 31
	adds r0, r2, r0
	b _08008602
_080085E4:
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrh r0, [r0, 0x4]
	cmp r0, r3
	bge _080085F6
	adds r4, r1, 0x1
	b _080085F8
_080085F6:
	adds r2, r1, 0
_080085F8:
	cmp r4, r2
	bge _08008614
	adds r0, r4, r2
	lsrs r1, r0, 31
	adds r0, r1
_08008602:
	asrs r1, r0, 1
	lsls r0, r1, 1
	adds r0, r1
	lsls r0, 2
	adds r0, r5
	ldrh r0, [r0, 0x4]
	cmp r0, r3
	bne _080085E4
	adds r4, r1, 0
_08008614:
	lsls r0, r4, 1
	adds r0, r4
	lsls r0, 2
	adds r1, r5, r0
	ldrh r0, [r1, 0x4]
	cmp r0, r3
	beq _08008624
	ldr r1, _0800862C
_08008624:
	adds r0, r1, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.align 2, 0
_0800862C: .4byte gUnknown_80B86A4
	thumb_func_end GetCharacter

	thumb_func_start sub_8008630
sub_8008630:
	push {lr}
	lsls r0, 24
	lsrs r1, r0, 24
	adds r3, r1, 0
	adds r2, r1, 0
	subs r2, 0x30
	lsls r0, r2, 24
	lsrs r0, 24
	cmp r0, 0x9
	bhi _08008648
	adds r0, r2, 0
	b _0800865C
_08008648:
	adds r0, r1, 0
	subs r0, 0x61
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bls _08008658
	movs r0, 0x1
	b _0800865C
_08008658:
	adds r0, r3, 0
	subs r0, 0x57
_0800865C:
	pop {r1}
	bx r1
	thumb_func_end sub_8008630

	thumb_func_start xxx_get_next_char_from_string
xxx_get_next_char_from_string:
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	ldrb r1, [r5]
	cmp r1, 0x7E
	bne _08008696
	adds r5, 0x1
	ldrb r0, [r5]
	bl sub_8008630
	adds r4, r0, 0
	ldrb r0, [r5, 0x1]
	bl sub_8008630
	lsls r4, 4
	adds r4, r0
	ldrb r0, [r5]
	cmp r0, 0
	beq _08008690
	adds r5, 0x1
	ldrb r0, [r5]
	cmp r0, 0
	beq _08008690
	adds r5, 0x1
_08008690:
	str r4, [r6]
	adds r0, r5, 0
	b _080086B2
_08008696:
	adds r0, r1, 0
	subs r0, 0x81
	cmp r0, 0x3
	bls _080086A2
	cmp r1, 0x87
	bne _080086AE
_080086A2:
	ldrb r0, [r5, 0x1]
	lsls r1, 8
	orrs r0, r1
	str r0, [r6]
	adds r0, r5, 0x2
	b _080086B2
_080086AE:
	str r1, [r6]
	adds r0, r5, 0x1
_080086B2:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end xxx_get_next_char_from_string

	thumb_func_start nullsub_165
nullsub_165:
	bx lr
	thumb_func_end nullsub_165

	thumb_func_start nullsub_166
nullsub_166:
	bx lr
	thumb_func_end nullsub_166

	thumb_func_start nullsub_167
nullsub_167:
	bx lr
	thumb_func_end nullsub_167

	thumb_func_start nullsub_168
nullsub_168:
	bx lr
	thumb_func_end nullsub_168

	thumb_func_start sub_80086C8
sub_80086C8:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	mov r9, r2
	ldr r7, [sp, 0x30]
	lsls r2, r1, 3
	adds r2, r1
	lsls r2, 3
	adds r0, r2
	mov r12, r0
	mov r0, r9
	cmp r0, 0
	bge _080086F2
	ldr r1, [sp, 0x2C]
	add r1, r9
	str r1, [sp, 0x2C]
	movs r2, 0
	mov r9, r2
_080086F2:
	cmp r3, 0
	bge _080086FA
	adds r7, r3
	movs r3, 0
_080086FA:
	ldr r0, [sp, 0x2C]
	add r0, r9
	mov r4, r12
	movs r5, 0x4
	ldrsh r2, [r4, r5]
	lsls r1, r2, 3
	cmp r0, r1
	ble _08008710
	mov r0, r9
	subs r0, r1, r0
	str r0, [sp, 0x2C]
_08008710:
	adds r1, r3, r7
	mov r4, r12
	movs r5, 0x8
	ldrsh r0, [r4, r5]
	lsls r0, 3
	cmp r1, r0
	ble _08008720
	subs r7, r0, r3
_08008720:
	adds r1, r3, 0
	cmp r3, 0
	bge _08008728
	adds r1, r3, 0x7
_08008728:
	asrs r1, 3
	muls r2, r1
	mov r0, r9
	cmp r0, 0
	bge _08008734
	adds r0, 0x7
_08008734:
	asrs r0, 3
	adds r0, r2, r0
	lsls r0, 3
	lsls r1, 3
	subs r1, r3, r1
	adds r0, r1
	lsls r0, 2
	mov r2, r12
	ldr r1, [r2, 0x18]
	b _080087D6
_08008748:
	adds r2, r5, 0
	ldr r4, [sp, 0x2C]
	mov r6, r9
	mov r1, r12
	ldr r0, [r1, 0x3C]
	cmp r0, r5
	bls _08008758
	str r5, [r1, 0x3C]
_08008758:
	subs r0, r7, 0x1
	str r0, [sp, 0x4]
	adds r3, 0x1
	str r3, [sp, 0x8]
	mov r1, r12
	ldr r1, [r1, 0x40]
	str r1, [sp]
	adds r0, r5, 0x4
	mov r10, r0
	cmp r4, 0
	ble _080087B6
	ldr r1, _0800878C
	mov r8, r1
	movs r7, 0x7
_08008774:
	cmp r4, 0x7
	bgt _08008790
	adds r3, r4, 0
	adds r0, r4, 0
	ands r0, r7
	adds r0, 0x8
	lsls r0, 2
	add r0, r8
	ldr r1, [r2]
	ldr r0, [r0]
	ands r1, r0
	b _080087AA
	.align 2, 0
_0800878C: .4byte gUnknown_80B8868
_08008790:
	adds r1, r6, 0
	ands r1, r7
	cmp r1, 0
	beq _080087A8
	movs r0, 0x8
	subs r3, r0, r1
	lsls r0, r1, 2
	add r0, r8
	ldr r1, [r2]
	ldr r0, [r0]
	ands r1, r0
	b _080087AA
_080087A8:
	movs r3, 0x8
_080087AA:
	str r1, [r2]
	adds r2, 0x20
	subs r4, r3
	adds r6, r3
	cmp r4, 0
	bgt _08008774
_080087B6:
	ldr r7, [sp, 0x4]
	ldr r3, [sp, 0x8]
	ldr r2, [sp]
	cmp r2, r5
	bcs _080087C4
	mov r4, r12
	str r5, [r4, 0x40]
_080087C4:
	mov r5, r10
	movs r0, 0x7
	ands r0, r3
	cmp r0, 0
	bne _080087D8
	mov r5, r12
	ldr r0, [r5, 0x20]
	lsls r0, 2
	mov r1, r10
_080087D6:
	adds r5, r1, r0
_080087D8:
	cmp r7, 0
	bgt _08008748
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_80086C8

	thumb_func_start sub_80087EC
sub_80087EC:
	push {r4-r6,lr}
	sub sp, 0x8
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x18]
	ldr r0, _08008810
	str r3, [sp]
	str r1, [sp, 0x4]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl sub_8008818
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08008810: .4byte gUnknown_2027370
	thumb_func_end sub_80087EC

	thumb_func_start nullsub_176
nullsub_176:
	bx lr
	thumb_func_end nullsub_176

	thumb_func_start sub_8008818
sub_8008818:
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r5, r3, 0
	ldr r7, [sp, 0x18]
	ldr r3, [sp, 0x1C]
	mov r12, r3
	lsls r3, r1, 3
	adds r3, r1
	lsls r3, 3
	adds r4, r0, r3
	cmp r2, 0
	bge _08008834
	adds r2, 0x7
_08008834:
	asrs r2, 3
	mov r8, r2
	adds r3, r5, 0
	cmp r3, 0
	bge _08008840
	adds r3, 0x7
_08008840:
	asrs r3, 3
	movs r2, 0
	cmp r2, r12
	bge _08008892
_08008848:
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	muls r0, r3
	add r0, r8
	lsls r0, 5
	ldr r1, [r4, 0x18]
	adds r1, r0
	movs r5, 0
	adds r3, 0x1
	adds r6, r2, 0
	adds r6, 0x8
	cmp r5, r7
	bge _0800888C
	movs r2, 0
_08008864:
	ldr r0, [r4, 0x3C]
	cmp r0, r1
	bls _0800886C
	str r1, [r4, 0x3C]
_0800886C:
	stm r1!, {r2}
	stm r1!, {r2}
	stm r1!, {r2}
	stm r1!, {r2}
	stm r1!, {r2}
	stm r1!, {r2}
	stm r1!, {r2}
	str r2, [r1]
	ldr r0, [r4, 0x40]
	cmp r0, r1
	bcs _08008884
	str r1, [r4, 0x40]
_08008884:
	adds r1, 0x4
	adds r5, 0x8
	cmp r5, r7
	blt _08008864
_0800888C:
	adds r2, r6, 0
	cmp r2, r12
	blt _08008848
_08008892:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8008818

	thumb_func_start xxx_call_update_bg_vram
xxx_call_update_bg_vram:
	push {lr}
	movs r1, 0
	ldr r2, _080088C0
	ldrb r0, [r2]
	cmp r0, 0
	beq _080088AE
	strb r1, [r2]
	bl sub_80099C0
_080088AE:
	ldr r0, _080088C4
	bl xxx_update_bg_vram
	lsls r0, 24
	lsrs r1, r0, 24
	adds r0, r1, 0
	pop {r1}
	bx r1
	.align 2, 0
_080088C0: .4byte gUnknown_20274A5
_080088C4: .4byte gUnknown_2027370
	thumb_func_end xxx_call_update_bg_vram

	thumb_func_start xxx_update_bg_vram
xxx_update_bg_vram:
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	movs r2, 0
	movs r1, 0
	movs r7, 0xD0
	lsls r7, 4
_080088D8:
	lsls r0, r1, 3
	adds r0, r1
	lsls r0, 3
	mov r3, r8
	adds r4, r3, r0
	movs r5, 0x4
	ldrsh r0, [r4, r5]
	adds r6, r1, 0x1
	cmp r0, 0
	beq _0800897A
	ldr r5, [r4, 0x38]
	cmp r5, 0
	beq _0800897A
	adds r0, r4, 0
	adds r0, 0x45
	ldrb r0, [r0]
	cmp r0, 0
	beq _0800894C
	ldr r0, [r4, 0x28]
	ldr r1, [r4, 0x18]
	adds r2, r7, 0
	bl CpuCopy
	ldr r0, [r4, 0x18]
	adds r2, r0, r7
	ldr r0, [r4, 0x28]
	adds r1, r0, r7
	movs r3, 0
	b _08008938
_08008912:
	ldm r2!, {r0}
	stm r1!, {r0}
	ldm r2!, {r0}
	stm r1!, {r0}
	ldm r2!, {r0}
	stm r1!, {r0}
	ldm r2!, {r0}
	stm r1!, {r0}
	ldm r2!, {r0}
	stm r1!, {r0}
	ldr r0, _08008944
	stm r1!, {r0}
	ldr r0, _08008948
	stm r1!, {r0}
	movs r0, 0x1
	negs r0, r0
	stm r1!, {r0}
	adds r2, 0xC
	adds r3, 0x1
_08008938:
	movs r5, 0x4
	ldrsh r0, [r4, r5]
	cmp r3, r0
	blt _08008912
	movs r0, 0
	b _0800896A
	.align 2, 0
_08008944: .4byte 0xdddddddd
_08008948: .4byte 0xeeeeeeee
_0800894C:
	ldr r0, [r4, 0x30]
	ldr r1, [r4, 0x34]
	adds r2, r5, 0
	bl CpuCopy
	lsrs r1, r5, 2
	lsls r1, 2
	ldr r0, [r4, 0x34]
	adds r0, r1
	str r0, [r4, 0x34]
	ldr r0, [r4, 0x30]
	adds r0, r5
	str r0, [r4, 0x30]
	ldr r0, [r4, 0x38]
	subs r0, r5
_0800896A:
	str r0, [r4, 0x38]
	ldr r1, [r4, 0x38]
	cmp r1, 0
	bne _08008978
	adds r0, r4, 0
	adds r0, 0x44
	strb r1, [r0]
_08008978:
	movs r2, 0x1
_0800897A:
	adds r1, r6, 0
	cmp r1, 0x3
	ble _080088D8
	adds r0, r2, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end xxx_update_bg_vram

	thumb_func_start sub_800898C
sub_800898C:
	push {lr}
	ldr r1, _080089A4
	ldr r2, _080089A8
	movs r3, 0xA0
	lsls r3, 1
	adds r0, r1, r3
_08008998:
	strh r2, [r0]
	subs r0, 0x2
	cmp r0, r1
	bge _08008998
	pop {r0}
	bx r0
	.align 2, 0
_080089A4: .4byte gUnknown_3000E94
_080089A8: .4byte 0x0000f0f0
	thumb_func_end sub_800898C

	thumb_func_start sub_80089AC
sub_80089AC:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r4, r0, 0
	adds r5, r1, 0
	ldrb r1, [r4]
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _080089C8
	b _08008C44
_080089C8:
	ldr r6, _08008A3C
	ldr r7, [r4, 0x4]
	cmp r7, 0x1
	bne _08008A60
	movs r0, 0x8
	ldrsh r2, [r4, r0]
	movs r1, 0
	ldrsh r0, [r5, r1]
	adds r2, r0
	lsls r3, r2, 3
	mov r12, r3
	movs r7, 0xA
	ldrsh r1, [r4, r7]
	movs r3, 0x2
	ldrsh r0, [r5, r3]
	adds r1, r0
	lsls r5, r1, 3
	movs r7, 0xC
	ldrsh r0, [r4, r7]
	adds r2, r0
	lsls r7, r2, 3
	movs r2, 0xE
	ldrsh r0, [r4, r2]
	adds r1, r0
	lsls r2, r1, 3
	cmp r0, 0
	bne _08008A00
	b _08008C44
_08008A00:
	cmp r5, 0
	bge _08008A06
	movs r5, 0
_08008A06:
	cmp r2, 0
	bge _08008A0C
	movs r2, 0
_08008A0C:
	cmp r5, 0xA0
	ble _08008A12
	movs r5, 0xA0
_08008A12:
	cmp r2, 0xA0
	ble _08008A18
	movs r2, 0xA0
_08008A18:
	cmp r5, r2
	blt _08008A1E
	b _08008C44
_08008A1E:
	lsls r3, r5, 1
	adds r1, r6, r3
	ldrb r0, [r1]
	cmp r0, 0xF0
	bne _08008A40
	ldrb r0, [r1, 0x1]
	cmp r0, 0xF0
	bne _08008A40
	strb r7, [r1]
	adds r3, 0x1
	adds r0, r6, r3
	mov r1, r12
	strb r1, [r0]
	b _08008A58
	.align 2, 0
_08008A3C: .4byte gUnknown_3000E94
_08008A40:
	adds r1, r6, r3
	ldrb r0, [r1]
	cmp r0, r7
	bge _08008A4A
	strb r7, [r1]
_08008A4A:
	adds r3, 0x1
	adds r3, r6, r3
	ldrb r0, [r3]
	cmp r0, r12
	ble _08008A58
	mov r0, r12
	strb r0, [r3]
_08008A58:
	adds r5, 0x1
	cmp r5, r2
	blt _08008A1E
	b _08008C44
_08008A60:
	cmp r7, 0x6
	beq _08008A66
	b _08008BA8
_08008A66:
	movs r2, 0x8
	ldrsh r1, [r4, r2]
	movs r3, 0
	ldrsh r0, [r5, r3]
	adds r1, r0
	lsls r3, r1, 3
	subs r7, r3, 0x5
	mov r9, r7
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	movs r7, 0x2
	ldrsh r2, [r5, r7]
	adds r0, r2
	lsls r2, r0, 3
	subs r5, r2, 0x4
	movs r7, 0xC
	ldrsh r2, [r4, r7]
	adds r1, r2
	lsls r1, 3
	adds r1, 0x5
	str r1, [sp]
	movs r2, 0xE
	ldrsh r1, [r4, r2]
	adds r0, r1
	lsls r0, 3
	adds r0, 0x5
	mov r8, r0
	adds r3, 0x3
	mov r12, r3
	ldr r2, [r4, 0x14]
	ldrb r1, [r2, 0x2]
	subs r0, r1, 0x1
	ldrb r3, [r2]
	adds r0, r3
	adds r0, 0x2
	lsls r0, 3
	add r0, r12
	subs r0, 0x4
	mov r10, r0
	ldrb r0, [r2, 0x1]
	adds r0, 0x1
	lsls r0, 3
	mov r7, r9
	adds r4, r7, r0
	adds r1, 0x2
	lsls r1, 3
	adds r1, r4, r1
	subs r7, r1, 0x4
	cmp r5, 0
	bge _08008ACC
	movs r5, 0
_08008ACC:
	mov r0, r8
	cmp r0, 0
	bge _08008AD6
	movs r1, 0
	mov r8, r1
_08008AD6:
	cmp r5, 0xA0
	ble _08008ADC
	movs r5, 0xA0
_08008ADC:
	mov r2, r8
	cmp r2, 0xA0
	ble _08008AE6
	movs r3, 0xA0
	mov r8, r3
_08008AE6:
	movs r3, 0x3
_08008AE8:
	lsls r2, r5, 1
	adds r1, r6, r2
	ldrb r0, [r1]
	cmp r0, 0xF0
	bne _08008B02
	ldrb r0, [r1, 0x1]
	cmp r0, 0xF0
	bne _08008B02
	strb r7, [r1]
	adds r2, 0x1
	adds r0, r6, r2
	strb r4, [r0]
	b _08008B18
_08008B02:
	adds r1, r6, r2
	ldrb r0, [r1]
	cmp r0, r7
	bge _08008B0C
	strb r7, [r1]
_08008B0C:
	adds r2, 0x1
	adds r2, r6, r2
	ldrb r0, [r2]
	cmp r0, r4
	ble _08008B18
	strb r4, [r2]
_08008B18:
	adds r5, 0x1
	subs r3, 0x1
	cmp r3, 0
	bge _08008AE8
	movs r3, 0x7
_08008B22:
	lsls r1, r5, 1
	adds r2, r6, r1
	ldrb r0, [r2]
	cmp r0, 0xF0
	bne _08008B40
	ldrb r0, [r2, 0x1]
	cmp r0, 0xF0
	bne _08008B40
	mov r7, r10
	strb r7, [r2]
	adds r1, 0x1
	adds r0, r6, r1
	mov r1, r12
	strb r1, [r0]
	b _08008B5A
_08008B40:
	adds r2, r6, r1
	ldrb r0, [r2]
	cmp r0, r10
	bge _08008B4C
	mov r7, r10
	strb r7, [r2]
_08008B4C:
	adds r1, 0x1
	adds r1, r6, r1
	ldrb r0, [r1]
	cmp r0, r12
	ble _08008B5A
	mov r0, r12
	strb r0, [r1]
_08008B5A:
	adds r5, 0x1
	subs r3, 0x1
	cmp r3, 0
	bge _08008B22
	cmp r5, r8
	bge _08008C44
_08008B66:
	lsls r1, r5, 1
	adds r2, r6, r1
	ldrb r0, [r2]
	cmp r0, 0xF0
	bne _08008B86
	ldrb r0, [r2, 0x1]
	cmp r0, 0xF0
	bne _08008B86
	mov r3, sp
	ldrb r3, [r3]
	strb r3, [r2]
	adds r1, 0x1
	adds r0, r6, r1
	mov r7, r9
	strb r7, [r0]
	b _08008BA0
_08008B86:
	adds r2, r6, r1
	ldrb r0, [r2]
	ldr r3, [sp]
	cmp r0, r3
	bge _08008B92
	strb r3, [r2]
_08008B92:
	adds r1, 0x1
	adds r1, r6, r1
	ldrb r0, [r1]
	cmp r0, r9
	ble _08008BA0
	mov r0, r9
	strb r0, [r1]
_08008BA0:
	adds r5, 0x1
	cmp r5, r8
	blt _08008B66
	b _08008C44
_08008BA8:
	movs r1, 0x8
	ldrsh r0, [r4, r1]
	movs r2, 0
	ldrsh r1, [r5, r2]
	adds r0, r1
	lsls r1, r0, 3
	subs r1, 0x5
	mov r8, r1
	movs r3, 0xA
	ldrsh r2, [r4, r3]
	movs r3, 0x2
	ldrsh r1, [r5, r3]
	adds r2, r1
	lsls r5, r2, 3
	mov r9, r5
	mov r3, r9
	subs r3, 0x5
	movs r5, 0xC
	ldrsh r1, [r4, r5]
	adds r0, r1
	lsls r0, 3
	adds r0, 0x5
	mov r12, r0
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	adds r2, r0
	lsls r1, r2, 3
	adds r5, r1, 0x5
	cmp r0, 0
	beq _08008C44
	cmp r7, 0
	bne _08008BEC
	adds r3, 0x8
	subs r5, r1, 0x3
_08008BEC:
	cmp r3, 0
	bge _08008BF2
	movs r3, 0
_08008BF2:
	cmp r5, 0
	bge _08008BF8
	movs r5, 0
_08008BF8:
	cmp r3, 0xA0
	ble _08008BFE
	movs r3, 0xA0
_08008BFE:
	cmp r5, 0xA0
	ble _08008C40
	movs r5, 0xA0
	b _08008C40
_08008C06:
	lsls r1, r3, 1
	adds r2, r6, r1
	ldrb r0, [r2]
	cmp r0, 0xF0
	bne _08008C24
	ldrb r0, [r2, 0x1]
	cmp r0, 0xF0
	bne _08008C24
	mov r7, r12
	strb r7, [r2]
	adds r1, 0x1
	adds r0, r6, r1
	mov r1, r8
	strb r1, [r0]
	b _08008C3E
_08008C24:
	adds r2, r6, r1
	ldrb r0, [r2]
	cmp r0, r12
	bge _08008C30
	mov r7, r12
	strb r7, [r2]
_08008C30:
	adds r1, 0x1
	adds r1, r6, r1
	ldrb r0, [r1]
	cmp r0, r8
	ble _08008C3E
	mov r0, r8
	strb r0, [r1]
_08008C3E:
	adds r3, 0x1
_08008C40:
	cmp r3, r5
	blt _08008C06
_08008C44:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_80089AC

	thumb_func_start sub_8008C54
sub_8008C54:
	push {lr}
	adds r1, r0, 0
	ldr r0, _08008C64
	bl sub_8008C6C
	pop {r0}
	bx r0
	.align 2, 0
_08008C64: .4byte gUnknown_2027370
	thumb_func_end sub_8008C54

	thumb_func_start nullsub_169
nullsub_169:
	bx lr
	thumb_func_end nullsub_169

	thumb_func_start sub_8008C6C
sub_8008C6C:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	mov r9, r0
	mov r8, r1
	lsls r0, r1, 3
	add r0, r8
	lsls r0, 3
	mov r1, r9
	adds r6, r1, r0
	adds r0, r6, 0
	adds r0, 0x45
	ldrb r0, [r0]
	cmp r0, 0
	bne _08008CBE
	movs r2, 0x4
	ldrsh r0, [r6, r2]
	movs r7, 0x8
	ldrsh r1, [r6, r7]
	muls r0, r1
	lsls r4, r0, 5
	movs r5, 0
	movs r0, 0x44
	adds r0, r6
	mov r10, r0
	cmp r5, r4
	bge _08008D1E
_08008CA8:
	lsrs r1, r5, 2
	lsls r1, 2
	ldr r0, [r6, 0x18]
	adds r0, r1
	movs r1, 0x20
	bl CpuClear
	adds r5, 0x20
	cmp r5, r4
	blt _08008CA8
	b _08008D1E
_08008CBE:
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	movs r2, 0x8
	ldrsh r1, [r6, r2]
	subs r1, 0x1
	muls r1, r0
	lsls r1, 5
	str r1, [sp, 0x8]
	ldr r4, [r6, 0x18]
	movs r5, 0
	movs r7, 0x44
	adds r7, r6
	mov r10, r7
	cmp r5, r0
	bge _08008D04
	movs r0, 0x1
	negs r0, r0
	mov r12, r0
	movs r1, 0
	ldr r3, _08008D84
	ldr r2, _08008D88
_08008CE8:
	mov r7, r12
	stm r4!, {r7}
	stm r4!, {r3}
	stm r4!, {r2}
	stm r4!, {r1}
	stm r4!, {r1}
	stm r4!, {r1}
	stm r4!, {r1}
	stm r4!, {r1}
	adds r5, 0x1
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	cmp r5, r0
	blt _08008CE8
_08008D04:
	movs r5, 0
	ldr r0, [sp, 0x8]
	cmp r5, r0
	bge _08008D1E
_08008D0C:
	adds r0, r4, 0
	movs r1, 0x20
	bl CpuClear
	adds r4, 0x20
	adds r5, 0x20
	ldr r1, [sp, 0x8]
	cmp r5, r1
	blt _08008D0C
_08008D1E:
	ldr r0, [r6, 0xC]
	cmp r0, 0x6
	bne _08008D60
	adds r5, r6, 0
	adds r5, 0x46
	movs r4, 0
	movs r0, 0x1
	strb r0, [r5]
	movs r2, 0x4
	ldrsh r0, [r6, r2]
	lsls r0, 3
	str r0, [sp]
	movs r0, 0xE
	str r0, [sp, 0x4]
	mov r0, r9
	mov r1, r8
	movs r2, 0
	movs r3, 0xA
	bl sub_8007958
	movs r7, 0x4
	ldrsh r0, [r6, r7]
	lsls r0, 3
	str r0, [sp]
	movs r0, 0xD
	str r0, [sp, 0x4]
	mov r0, r9
	mov r1, r8
	movs r2, 0
	movs r3, 0xB
	bl sub_8007958
	strb r4, [r5]
_08008D60:
	ldr r0, [r6, 0x28]
	str r0, [r6, 0x30]
	ldr r0, [r6, 0x1C]
	str r0, [r6, 0x34]
	ldr r0, [r6, 0x2C]
	str r0, [r6, 0x38]
	movs r0, 0x1
	mov r1, r10
	strb r0, [r1]
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08008D84: .4byte 0xeeeeeeee
_08008D88: .4byte 0xdddddddd
	thumb_func_end sub_8008C6C

	thumb_func_start sub_8008D8C
sub_8008D8C:
	push {lr}
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 3
	ldr r0, _08008DA4
	adds r1, r0
	ldr r0, [r1, 0x38]
	cmp r0, 0
	beq _08008DA0
	movs r0, 0x1
_08008DA0:
	pop {r1}
	bx r1
	.align 2, 0
_08008DA4: .4byte gUnknown_2027370
	thumb_func_end sub_8008D8C

	thumb_func_start sub_8008DA8
sub_8008DA8:
	movs r0, 0
	bx lr
	thumb_func_end sub_8008DA8

	thumb_func_start sub_8008DAC
sub_8008DAC:
	ldr r3, _08008DC0
	lsls r0, 1
	lsls r1, 6
	adds r0, r1
	adds r0, r3
	strh r2, [r0]
	ldr r1, _08008DC4
	movs r0, 0x1
	strb r0, [r1]
	bx lr
	.align 2, 0
_08008DC0: .4byte gUnknown_202B038
_08008DC4: .4byte gUnknown_20274A5
	thumb_func_end sub_8008DAC

	thumb_func_start sub_8008DC8
sub_8008DC8:
	push {r4,lr}
	ldr r4, _08008DEC
	lsls r0, 1
	lsls r1, 6
	adds r0, r1
	adds r1, r0, r4
	strh r2, [r1]
	movs r1, 0x80
	lsls r1, 4
	adds r4, r1
	adds r0, r4
	strh r3, [r0]
	ldr r1, _08008DF0
	movs r0, 0x1
	strb r0, [r1]
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_08008DEC: .4byte gUnknown_202B038
_08008DF0: .4byte gUnknown_20274A5
	thumb_func_end sub_8008DC8

	thumb_func_start sub_8008DF4
sub_8008DF4:
	push {r4-r7,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	adds r3, r2, 0
	ldrb r0, [r3]
	ldr r1, _08008E4C
	mov r12, r1
	cmp r0, 0
	beq _08008E3E
	ldr r6, _08008E50
_08008E08:
	ldrb r1, [r3]
	adds r0, r1, 0
	subs r0, 0x61
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x19
	bhi _08008E1E
	adds r0, r1, 0
	subs r0, 0x20
	lsls r0, 24
	lsrs r1, r0, 24
_08008E1E:
	lsls r2, r4, 1
	lsls r0, r5, 6
	adds r2, r0
	adds r2, r6
	movs r7, 0x96
	lsls r7, 2
	adds r0, r1, r7
	ldr r7, _08008E54
	adds r1, r7, 0
	orrs r0, r1
	strh r0, [r2]
	adds r3, 0x1
	adds r4, 0x1
	ldrb r0, [r3]
	cmp r0, 0
	bne _08008E08
_08008E3E:
	movs r0, 0x1
	mov r1, r12
	strb r0, [r1]
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08008E4C: .4byte gUnknown_20274A5
_08008E50: .4byte gUnknown_202B038
_08008E54: .4byte 0xfffff000
	thumb_func_end sub_8008DF4

	thumb_func_start sub_8008E58
sub_8008E58:
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r5, r0, 0
	mov r8, r1
	adds r4, r2, 0
	ldrb r0, [r4]
	ldr r7, _08008EC4
	cmp r0, 0
	beq _08008EB4
	adds r1, r0, 0
	cmp r3, 0
	beq _08008EB4
	ldr r0, _08008EC8
	mov r12, r0
_08008E76:
	adds r0, r1, 0
	subs r0, 0x61
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x19
	bhi _08008E8A
	adds r0, r1, 0
	subs r0, 0x20
	lsls r0, 24
	lsrs r1, r0, 24
_08008E8A:
	lsls r2, r5, 1
	mov r6, r8
	lsls r0, r6, 6
	adds r2, r0
	add r2, r12
	movs r6, 0x96
	lsls r6, 2
	adds r0, r1, r6
	ldr r6, _08008ECC
	adds r1, r6, 0
	orrs r0, r1
	strh r0, [r2]
	adds r4, 0x1
	adds r5, 0x1
	subs r3, 0x1
	ldrb r0, [r4]
	cmp r0, 0
	beq _08008EB4
	adds r1, r0, 0
	cmp r3, 0
	bne _08008E76
_08008EB4:
	movs r0, 0x1
	strb r0, [r7]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08008EC4: .4byte gUnknown_20274A5
_08008EC8: .4byte gUnknown_202B038
_08008ECC: .4byte 0xfffff000
	thumb_func_end sub_8008E58

	thumb_func_start sub_8008ED0
sub_8008ED0:
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	movs r5, 0
	b _08008F64
_08008EDA:
	ldr r0, _08008F18
	cmp r1, r0
	beq _08008F64
	adds r0, 0x2
	cmp r1, r0
	beq _08008F64
	cmp r1, 0x1B
	beq _08008F7E
	cmp r1, 0x23
	bne _08008F44
	ldrb r0, [r2]
	cmp r0, 0x6E
	beq _08008F7E
	cmp r0, 0x5B
	beq _08008F7E
	cmp r0, 0x50
	beq _08008F7E
	cmp r0, 0x57
	beq _08008F40
	cmp r0, 0x57
	bgt _08008F22
	cmp r0, 0x43
	beq _08008F38
	cmp r0, 0x43
	bgt _08008F1C
	cmp r0, 0x2B
	beq _08008F40
	cmp r0, 0x3D
	beq _08008F34
	b _08008F64
	.align 2, 0
_08008F18: .4byte 0x000082a0
_08008F1C:
	cmp r0, 0x52
	beq _08008F3C
	b _08008F64
_08008F22:
	cmp r0, 0x72
	beq _08008F3C
	cmp r0, 0x72
	bgt _08008F30
	cmp r0, 0x63
	beq _08008F38
	b _08008F64
_08008F30:
	cmp r0, 0x7E
	bne _08008F64
_08008F34:
	adds r4, r2, 0x2
	b _08008F64
_08008F38:
	adds r4, 0x2
	b _08008F64
_08008F3C:
	adds r4, 0x1
	b _08008F64
_08008F40:
	adds r4, r2, 0x1
	b _08008F64
_08008F44:
	cmp r1, 0x60
	bne _08008F4C
	adds r5, 0x6
	b _08008F64
_08008F4C:
	adds r0, r1, 0
	bl GetCharacter
	cmp r0, 0
	beq _08008F64
	movs r1, 0x6
	ldrsh r0, [r0, r1]
	ldr r1, _08008F88
	movs r2, 0
	ldrsh r1, [r1, r2]
	adds r0, r1
	adds r5, r0
_08008F64:
	adds r0, r4, 0
	mov r1, sp
	bl xxx_get_next_char_from_string
	adds r2, r0, 0
	adds r4, r2, 0
	ldr r1, [sp]
	cmp r1, 0
	beq _08008F7E
	cmp r1, 0xD
	beq _08008F7E
	cmp r1, 0xA
	bne _08008EDA
_08008F7E:
	adds r0, r5, 0
	add sp, 0x4
	pop {r4,r5}
	pop {r1}
	bx r1
	.align 2, 0
_08008F88: .4byte gCharacterSpacing
	thumb_func_end sub_8008ED0

	thumb_func_start sub_8008F8C
sub_8008F8C:
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x20]
	ldr r2, [sp, 0x24]
	ldr r0, _08008FB8
	str r3, [sp]
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	str r2, [sp, 0xC]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl xxx_draw_string
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08008FB8: .4byte gUnknown_2027370
	thumb_func_end sub_8008F8C

	thumb_func_start xxx_call_draw_string
xxx_call_draw_string:
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x20]
	ldr r0, _08008FE8
	str r3, [sp]
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0xD
	str r1, [sp, 0xC]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl xxx_draw_string
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_08008FE8: .4byte gUnknown_2027370
	thumb_func_end xxx_call_draw_string

	thumb_func_start nullsub_170
nullsub_170:
	bx lr
	thumb_func_end nullsub_170

	thumb_func_start sub_8008FF0
sub_8008FF0:
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r1, [sp, 0x20]
	ldr r0, _0800901C
	str r3, [sp]
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0xD
	str r1, [sp, 0xC]
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl xxx_draw_string
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_0800901C: .4byte gUnknown_2027370
	thumb_func_end sub_8008FF0

	thumb_func_start nullsub_171
nullsub_171:
	bx lr
	thumb_func_end nullsub_171

	thumb_func_start xxx_draw_string
xxx_draw_string:
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x40
	adds r5, r0, 0
	adds r4, r3, 0
	ldr r0, [sp, 0x5C]
	mov r8, r0
	ldr r7, [sp, 0x64]
	add r0, sp, 0x8
	strh r1, [r0]
	strh r2, [r0, 0x2]
	str r1, [sp, 0x14]
	movs r0, 0x7
	str r0, [sp, 0x18]
	add r2, sp, 0x3C
	mov r9, r2
	b _08009128
_0800904A:
	ldr r0, _08009058
	cmp r3, r0
	bne _08009060
	ldr r1, _0800905C
	movs r0, 0
	str r0, [r1]
	b _08009128
	.align 2, 0
_08009058: .4byte 0x000082a0
_0800905C: .4byte gCurrentCharmap
_08009060:
	ldr r0, _08009070
	cmp r3, r0
	bne _08009078
	ldr r1, _08009074
	movs r0, 0x1
	str r0, [r1]
	b _08009128
	.align 2, 0
_08009070: .4byte 0x000082a2
_08009074: .4byte gCurrentCharmap
_08009078:
	cmp r3, 0x1B
	beq _0800914A
	cmp r3, 0xD
	beq _08009084
	cmp r3, 0xA
	bne _08009096
_08009084:
	add r1, sp, 0x8
	ldr r0, [sp, 0x14]
	strh r0, [r1]
	adds r0, r1, 0
	ldrh r0, [r0, 0x2]
	ldr r3, [sp, 0x68]
	adds r0, r3
	strh r0, [r1, 0x2]
	b _08009128
_08009096:
	cmp r3, 0x1D
	bne _080090AA
	add r1, sp, 0x8
	ldr r0, [sp, 0x14]
	strh r0, [r1]
	adds r0, r1, 0
	ldrh r0, [r0, 0x2]
	adds r0, 0x5
	strh r0, [r1, 0x2]
	b _08009128
_080090AA:
	cmp r3, 0x60
	bne _080090B8
	add r1, sp, 0x8
	adds r0, r1, 0
	ldrh r0, [r0]
	adds r0, 0x6
	b _08009126
_080090B8:
	cmp r7, 0
	bne _080090E0
	add r0, sp, 0x8
	movs r6, 0
	ldrsh r1, [r0, r6]
	movs r6, 0x2
	ldrsh r2, [r0, r6]
	ldr r0, [sp, 0x18]
	str r0, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	adds r0, r5, 0
	bl xxx_draw_char
	add r2, sp, 0x8
	adds r1, r2, 0
	ldrh r1, [r1]
	adds r1, r0
	strh r1, [r2]
	b _08009128
_080090E0:
	adds r0, r3, 0
	bl GetCharacter
	adds r2, r0, 0
	cmp r2, 0
	beq _08009128
	add r0, sp, 0x8
	movs r3, 0
	ldrsh r1, [r0, r3]
	ldr r0, _08009158
	movs r6, 0
	ldrsh r0, [r0, r6]
	adds r0, 0xA
	movs r3, 0x6
	ldrsh r2, [r2, r3]
	subs r0, r2
	lsrs r2, r0, 31
	adds r0, r2
	asrs r0, 1
	adds r1, r0
	add r0, sp, 0x8
	movs r6, 0x2
	ldrsh r2, [r0, r6]
	ldr r3, [sp, 0x3C]
	ldr r0, [sp, 0x18]
	str r0, [sp]
	mov r0, r8
	str r0, [sp, 0x4]
	adds r0, r5, 0
	bl xxx_draw_char
	add r1, sp, 0x8
	adds r0, r1, 0
	ldrh r0, [r0]
	adds r0, r7
_08009126:
	strh r0, [r1]
_08009128:
	adds r0, r5, 0
	adds r1, r4, 0
	add r2, sp, 0x8
	bl HandleTextFormat
	adds r4, r0, 0
	mov r1, r9
	bl xxx_get_next_char_from_string
	adds r4, r0, 0
	ldr r3, [sp, 0x3C]
	cmp r3, 0
	beq _0800914A
	ldr r2, [sp, 0x60]
	cmp r3, r2
	beq _0800914A
	b _0800904A
_0800914A:
	add sp, 0x40
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08009158: .4byte gCharacterSpacing
	thumb_func_end xxx_draw_string

	thumb_func_start sub_800915C
sub_800915C:
	push {r4,lr}
	adds r3, r0, 0
	movs r2, 0
_08009162:
	ldrb r0, [r1]
	cmp r0, 0x2E
	beq _08009184
	subs r0, 0x30
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x9
	bhi _08009186
	lsls r0, r2, 2
	adds r0, r2
	lsls r2, r0, 1
	adds r0, r2, 0
	subs r0, 0x30
	ldrb r4, [r1]
	adds r2, r0, r4
	adds r1, 0x1
	b _08009162
_08009184:
	adds r1, 0x1
_08009186:
	strh r2, [r3]
	adds r0, r1, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_800915C

	thumb_func_start sub_8009190
sub_8009190:
	push {lr}
	adds r3, r0, 0
	adds r2, r1, 0
	ldr r0, _080091A4
	adds r1, r3, 0
	bl HandleTextFormat
	pop {r1}
	bx r1
	.align 2, 0
_080091A4: .4byte gUnknown_2027370
	thumb_func_end sub_8009190

	thumb_func_start sub_80091A8
sub_80091A8:
	adds r0, 0x1
	bx lr
	thumb_func_end sub_80091A8

	thumb_func_start HandleTextFormat
HandleTextFormat:
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	mov r8, r0
	adds r4, r1, 0
	adds r5, r2, 0
	movs r0, 0
	mov r9, r0
	movs r7, 0x1
_080091C0:
	ldrb r0, [r4]
	cmp r0, 0x23
	beq _080091C8
	b _0800937A
_080091C8:
	ldrb r0, [r4, 0x1]
	adds r1, r0, 0
	cmp r1, 0x5B
	bne _08009216
	adds r2, r4, 0
	adds r4, 0x2
	adds r0, r5, 0
	adds r0, 0x21
	mov r1, r9
	strb r1, [r0]
	ldrb r1, [r4]
	adds r6, r0, 0
	cmp r1, 0
	beq _080091F6
	cmp r1, 0x5D
	beq _080091F4
_080091E8:
	adds r4, 0x1
	ldrb r0, [r4]
	cmp r0, 0
	beq _080091F6
	cmp r0, 0x5D
	bne _080091E8
_080091F4:
	adds r4, 0x1
_080091F6:
	ldr r3, [r5, 0x24]
	cmp r3, 0
	beq _0800920C
	adds r0, r2, 0
	adds r1, r4, 0
	adds r2, r5, 0
	bl _call_via_r3
	cmp r0, 0
	beq _0800920C
	adds r4, r0, 0
_0800920C:
	ldrb r0, [r6]
	cmp r0, 0
	beq _08009214
	b _0800937A
_08009214:
	b _080091C0
_08009216:
	cmp r1, 0x3D
	bne _08009220
	ldrb r0, [r4, 0x2]
	strh r0, [r5]
	b _080092BA
_08009220:
	cmp r1, 0x79
	bne _0800922A
	ldrb r0, [r4, 0x2]
	strh r0, [r5, 0x2]
	b _080092BA
_0800922A:
	cmp r1, 0x3E
	bne _0800923A
	adds r1, r4, 0x2
	adds r0, r5, 0
	bl sub_800915C
	adds r4, r0, 0
	b _080091C0
_0800923A:
	cmp r1, 0x2E
	bne _08009246
	ldrh r0, [r5]
	ldrb r2, [r4, 0x2]
	adds r0, r2
	b _0800926E
_08009246:
	cmp r1, 0x6E
	bne _08009258
	ldr r0, [r5, 0xC]
	strh r0, [r5]
	ldrh r0, [r5, 0x2]
	adds r0, 0xB
	strh r0, [r5, 0x2]
	adds r4, 0x2
	b _080091C0
_08009258:
	cmp r1, 0x3A
	bne _08009264
	ldrh r0, [r5]
	strh r0, [r5, 0x4]
	adds r4, 0x2
	b _080091C0
_08009264:
	cmp r1, 0x3B
	bne _08009274
	ldrh r0, [r5, 0x4]
	ldrb r3, [r4, 0x2]
	adds r0, r3
_0800926E:
	strh r0, [r5]
	adds r4, 0x3
	b _080091C0
_08009274:
	cmp r1, 0x2B
	bne _0800929A
	adds r4, 0x2
	adds r0, r4, 0
	bl sub_8008ED0
	mov r2, r8
	movs r3, 0x4
	ldrsh r1, [r2, r3]
	lsls r1, 3
	subs r1, r0
	strh r1, [r5]
	movs r1, 0
	ldrsh r0, [r5, r1]
	lsrs r1, r0, 31
	adds r0, r1
	asrs r0, 1
	strh r0, [r5]
	b _080091C0
_0800929A:
	cmp r1, 0x43
	bne _080092A4
	ldr r0, [r5, 0x10]
	str r0, [r5, 0x14]
	b _080092DC
_080092A4:
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5F
	bne _080092CC
	ldr r0, [r5, 0x10]
	str r0, [r5, 0x14]
	ldr r1, _080092C8
	ldrb r0, [r4, 0x2]
	adds r0, r1
	ldrb r0, [r0]
	str r0, [r5, 0x10]
_080092BA:
	adds r4, 0x3
	ldrb r0, [r4]
	cmp r0, 0x2E
	beq _080092C4
	b _080091C0
_080092C4:
	adds r4, 0x1
	b _080091C0
	.align 2, 0
_080092C8: .4byte gUnknown_202749A
_080092CC:
	cmp r0, 0x52
	bne _080092D4
	ldr r0, [r5, 0x14]
	b _080092EE
_080092D4:
	cmp r0, 0x63
	bne _080092E8
	ldr r0, [r5, 0x10]
	str r0, [r5, 0x18]
_080092DC:
	ldrb r0, [r4, 0x2]
	bl sub_800963C
	str r0, [r5, 0x10]
	adds r4, 0x3
	b _080091C0
_080092E8:
	cmp r0, 0x72
	bne _080092F4
	ldr r0, [r5, 0x18]
_080092EE:
	str r0, [r5, 0x10]
	adds r4, 0x2
	b _080091C0
_080092F4:
	cmp r0, 0x53
	bne _08009314
	ldr r3, _08009310
	ldrb r2, [r4, 0x2]
	movs r0, 0x7F
	adds r1, r0, 0
	ands r1, r2
	adds r1, r3
	ldrb r2, [r4, 0x3]
	ands r0, r2
	strb r0, [r1]
	adds r4, 0x4
	b _080091C0
	.align 2, 0
_08009310: .4byte gUnknown_20274A6
_08009314:
	cmp r0, 0x57
	bne _0800933A
	adds r4, 0x2
	mov r2, r8
	movs r3, 0
	ldrsh r0, [r2, r3]
	lsls r0, 3
	ldrh r1, [r5]
	adds r0, r1
	subs r0, 0x2
	strh r0, [r5, 0x8]
	movs r3, 0x2
	ldrsh r0, [r2, r3]
	lsls r0, 3
	ldrh r1, [r5, 0x2]
	adds r0, r1
	adds r0, 0x3
	strh r0, [r5, 0xA]
	b _0800935C
_0800933A:
	cmp r0, 0x50
	bne _08009350
	adds r4, 0x2
	ldr r0, _0800934C
	strh r0, [r5, 0x2]
	mov r2, r9
	str r2, [r5, 0x1C]
	b _0800935C
	.align 2, 0
_0800934C: .4byte 0x0000270f
_08009350:
	cmp r0, 0x70
	bne _08009368
	adds r4, 0x2
	ldr r0, _08009364
	strh r0, [r5, 0x2]
	str r7, [r5, 0x1C]
_0800935C:
	adds r0, r5, 0
	adds r0, 0x20
	strb r7, [r0]
	b _0800937A
	.align 2, 0
_08009364: .4byte 0x0000270f
_08009368:
	cmp r0, 0x7E
	bne _0800937A
	ldrb r0, [r4, 0x2]
	str r0, [r5, 0x2C]
	adds r0, r5, 0
	adds r0, 0x21
	strb r7, [r0]
	adds r4, 0x3
	b _080091C0
_0800937A:
	adds r0, r4, 0
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end HandleTextFormat

	thumb_func_start sub_8009388
sub_8009388:
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	ldr r2, _080093F4
	ldr r6, _080093F8
	strh r6, [r2]
	movs r0, 0x80
	lsls r0, 4
	adds r5, r2, r0
	ldr r4, _080093FC
	strh r4, [r5]
	ldr r0, _08009400
	ldr r3, [r0]
	ldr r0, _08009404
	ldr r1, [r0]
	mov r9, r0
	cmp r3, r1
	bge _080093E6
	mov r8, r2
	mov r12, r6
	adds r6, r5, 0
	movs r5, 0
	adds r7, r6, 0
_080093B8:
	lsls r0, r3, 6
	mov r1, r8
	adds r2, r0, r1
	mov r1, r12
	strh r1, [r2]
	adds r1, r0, r6
	strh r4, [r1]
	adds r3, 0x1
	adds r0, r7
	adds r0, 0x2
	adds r2, 0x2
	movs r1, 0x1E
_080093D0:
	strh r5, [r2]
	strh r4, [r0]
	adds r0, 0x2
	adds r2, 0x2
	subs r1, 0x1
	cmp r1, 0
	bge _080093D0
	mov r1, r9
	ldr r0, [r1]
	cmp r3, r0
	blt _080093B8
_080093E6:
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_080093F4: .4byte gUnknown_202B038
_080093F8: .4byte 0x0000f279
_080093FC: .4byte 0x0000f27a
_08009400: .4byte gUnknown_202B020
_08009404: .4byte gUnknown_202B024
	thumb_func_end sub_8009388

	thumb_func_start sub_8009408
sub_8009408:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	adds r5, r1, 0
	ldr r1, _08009478
	ldr r6, _0800947C
	strh r6, [r1]
	movs r2, 0x80
	lsls r2, 4
	adds r4, r1, r2
	ldr r2, _08009480
	strh r2, [r4]
	adds r3, r0, 0
	ldr r0, _08009484
	mov r10, r0
	cmp r3, r5
	bge _08009464
	mov r9, r1
	mov r8, r6
	adds r7, r4, 0
	adds r4, r2, 0
	movs r6, 0
	mov r12, r7
_0800943A:
	lsls r0, r3, 6
	mov r1, r9
	adds r2, r0, r1
	mov r1, r8
	strh r1, [r2]
	adds r1, r0, r7
	strh r4, [r1]
	adds r3, 0x1
	add r0, r12
	adds r0, 0x2
	adds r2, 0x2
	movs r1, 0x1E
_08009452:
	strh r6, [r2]
	strh r4, [r0]
	adds r0, 0x2
	adds r2, 0x2
	subs r1, 0x1
	cmp r1, 0
	bge _08009452
	cmp r3, r5
	blt _0800943A
_08009464:
	movs r0, 0x1
	mov r2, r10
	strb r0, [r2]
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08009478: .4byte gUnknown_202B038
_0800947C: .4byte 0x0000f279
_08009480: .4byte 0x0000f27a
_08009484: .4byte gUnknown_20274A5
	thumb_func_end sub_8009408

	thumb_func_start sub_8009488
sub_8009488:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 3
	ldr r0, _08009514
	adds r4, r1, r0
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	movs r3, 0
	movs r2, 0x6
	ldrsh r0, [r4, r2]
	cmp r3, r0
	bge _08009506
	ldr r6, _08009518
	mov r9, r6
	ldr r0, _0800951C
	mov r8, r0
	movs r2, 0x80
	lsls r2, 4
	add r2, r8
	mov r10, r2
_080094BA:
	movs r6, 0
	ldrsh r2, [r4, r6]
	movs r5, 0
	movs r6, 0x4
	ldrsh r0, [r4, r6]
	adds r6, r1, 0x1
	adds r7, r3, 0x1
	cmp r5, r0
	bge _080094FA
	movs r0, 0xFC
	lsls r0, 8
	mov r12, r0
	lsls r2, 1
	lsls r1, 6
	mov r3, r10
	adds r0, r1, r3
	adds r3, r2, r0
	add r1, r8
	adds r2, r1
_080094E0:
	ldrh r0, [r2]
	mov r1, r12
	ands r1, r0
	strh r1, [r2]
	mov r0, r9
	strh r0, [r3]
	adds r3, 0x2
	adds r2, 0x2
	adds r5, 0x1
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	cmp r5, r0
	blt _080094E0
_080094FA:
	adds r1, r6, 0
	adds r3, r7, 0
	movs r2, 0x6
	ldrsh r0, [r4, r2]
	cmp r3, r0
	blt _080094BA
_08009506:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_08009514: .4byte gUnknown_2027370
_08009518: .4byte 0x0000f27a
_0800951C: .4byte gUnknown_202B038
	thumb_func_end sub_8009488

	thumb_func_start nullsub_172
nullsub_172:
	bx lr
	thumb_func_end nullsub_172

	thumb_func_start sub_8009524
sub_8009524:
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 3
	ldr r0, _080095BC
	adds r4, r1, r0
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	subs r1, r0, 0x1
	movs r3, 0
	movs r2, 0x6
	ldrsh r0, [r4, r2]
	adds r0, 0x2
	cmp r3, r0
	bge _080095AE
	ldr r6, _080095C0
	mov r9, r6
	ldr r0, _080095C4
	mov r8, r0
	movs r2, 0x80
	lsls r2, 4
	add r2, r8
	mov r10, r2
_0800955A:
	movs r6, 0
	ldrsh r0, [r4, r6]
	subs r2, r0, 0x1
	movs r5, 0
	movs r6, 0x4
	ldrsh r0, [r4, r6]
	adds r0, 0x2
	adds r6, r1, 0x1
	adds r7, r3, 0x1
	cmp r5, r0
	bge _080095A0
	movs r0, 0xFC
	lsls r0, 8
	mov r12, r0
	lsls r2, 1
	lsls r1, 6
	mov r3, r10
	adds r0, r1, r3
	adds r3, r2, r0
	add r1, r8
	adds r2, r1
_08009584:
	ldrh r0, [r2]
	mov r1, r12
	ands r1, r0
	strh r1, [r2]
	mov r0, r9
	strh r0, [r3]
	adds r3, 0x2
	adds r2, 0x2
	adds r5, 0x1
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	adds r0, 0x2
	cmp r5, r0
	blt _08009584
_080095A0:
	adds r1, r6, 0
	adds r3, r7, 0
	movs r2, 0x6
	ldrsh r0, [r4, r2]
	adds r0, 0x2
	cmp r3, r0
	blt _0800955A
_080095AE:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_080095BC: .4byte gUnknown_2027370
_080095C0: .4byte 0x0000f27a
_080095C4: .4byte gUnknown_202B038
	thumb_func_end sub_8009524

	thumb_func_start nullsub_173
nullsub_173:
	bx lr
	thumb_func_end nullsub_173

	thumb_func_start sub_80095CC
sub_80095CC:
	ldr r2, _080095D8
	str r0, [r2]
	ldr r0, _080095DC
	str r1, [r0]
	bx lr
	.align 2, 0
_080095D8: .4byte gUnknown_202B020
_080095DC: .4byte gUnknown_202B024
	thumb_func_end sub_80095CC

	thumb_func_start nullsub_174
nullsub_174:
	bx lr
	thumb_func_end nullsub_174

	thumb_func_start sub_80095E4
sub_80095E4:
	push {lr}
	cmp r1, 0
	bne _080095EC
	movs r1, 0xA
_080095EC:
	muls r1, r0
	movs r0, 0x7
	ands r0, r1
	cmp r0, 0
	beq _08009604
	adds r0, r1, 0
	cmp r1, 0
	bge _080095FE
	adds r0, r1, 0x7
_080095FE:
	asrs r0, 3
	adds r0, 0x1
	b _0800960E
_08009604:
	adds r0, r1, 0
	cmp r0, 0
	bge _0800960C
	adds r0, 0x7
_0800960C:
	asrs r0, 3
_0800960E:
	pop {r1}
	bx r1
	thumb_func_end sub_80095E4

	thumb_func_start sub_8009614
sub_8009614:
	push {lr}
	muls r1, r0
	movs r0, 0x7
	ands r0, r1
	cmp r0, 0
	beq _0800962E
	adds r0, r1, 0
	cmp r1, 0
	bge _08009628
	adds r0, r1, 0x7
_08009628:
	asrs r0, 3
	adds r0, 0x1
	b _08009638
_0800962E:
	adds r0, r1, 0
	cmp r0, 0
	bge _08009636
	adds r0, 0x7
_08009636:
	asrs r0, 3
_08009638:
	pop {r1}
	bx r1
	thumb_func_end sub_8009614

	thumb_func_start sub_800963C
sub_800963C:
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	adds r2, r0, 0
	cmp r0, 0xF
	bls _080096DA
	adds r1, r0, 0
	subs r1, 0x30
	lsls r0, r1, 24
	lsrs r0, 24
	cmp r0, 0xF
	bhi _08009658
	adds r0, r1, 0
	b _080096DA
_08009658:
	adds r0, r2, 0
	subs r0, 0x43
	cmp r0, 0x14
	bhi _080096D8
	lsls r0, 2
	ldr r1, _0800966C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.align 2, 0
_0800966C: .4byte _08009670
	.align 2, 0
_08009670:
	.4byte _080096D0
	.4byte _080096D0
	.4byte _080096C8
	.4byte _080096D8
	.4byte _080096CC
	.4byte _080096C4
	.4byte _080096C4
	.4byte _080096D8
	.4byte _080096D8
	.4byte _080096D8
	.4byte _080096CC
	.4byte _080096D0
	.4byte _080096D8
	.4byte _080096D8
	.4byte _080096D8
	.4byte _080096D8
	.4byte _080096C8
	.4byte _080096C8
	.4byte _080096D8
	.4byte _080096D8
	.4byte _080096D4
_080096C4:
	movs r0, 0x4
	b _080096DA
_080096C8:
	movs r0, 0xF
	b _080096DA
_080096CC:
	movs r0, 0x5
	b _080096DA
_080096D0:
	movs r0, 0x6
	b _080096DA
_080096D4:
	movs r0, 0x2
	b _080096DA
_080096D8:
	movs r0, 0x7
_080096DA:
	pop {r1}
	bx r1
	thumb_func_end sub_800963C

	thumb_func_start InitGraphics
InitGraphics:
	push {r4-r6,lr}
	ldr r1, _0800978C
	movs r0, 0x1
	strb r0, [r1]
	movs r1, 0xC0
	lsls r1, 19
	movs r5, 0
	ldr r3, _08009790
	ldr r0, _08009794
	movs r2, 0
_080096F4:
	stm r1!, {r2}
	adds r5, 0x1
	cmp r5, r3
	bls _080096F4
	movs r1, 0xA0
	lsls r1, 19
	movs r5, 0
	movs r2, 0
_08009704:
	stm r1!, {r2}
	adds r5, 0x1
	cmp r5, 0xFF
	bls _08009704
	movs r1, 0xE0
	lsls r1, 19
	movs r5, 0
	ldr r2, _08009798
_08009714:
	stm r1!, {r2}
	adds r5, 0x1
	cmp r5, 0xFF
	bls _08009714
	ldr r4, _0800979C
	adds r1, r4, 0
	bl OpenFileAndGetFileDataPtr
	adds r6, r0, 0
	ldr r1, [r6, 0x4]
	ldm r1!, {r5}
	ldr r0, _080097A0
	lsls r2, r5, 5
	bl CpuCopy
	adds r0, r6, 0
	bl CloseFile
	ldr r0, _080097A4
	adds r1, r4, 0
	bl OpenFileAndGetFileDataPtr
	adds r6, r0, 0
	ldr r1, [r6, 0x4]
	ldm r1!, {r5}
	ldr r0, _080097A8
	lsls r2, r5, 5
	bl CpuCopy
	adds r0, r6, 0
	bl CloseFile
	bl sub_80097B0
	ldr r0, _080097AC
	adds r1, r4, 0
	bl OpenFileAndGetFileDataPtr
	adds r6, r0, 0
	ldr r4, [r6, 0x4]
	movs r5, 0
_08009766:
	movs r1, 0xF8
	lsls r1, 1
	adds r0, r5, r1
	adds r1, r4, 0
	bl SetBGPaletteBufferColorArray
	adds r4, 0x4
	adds r5, 0x1
	cmp r5, 0xF
	ble _08009766
	adds r0, r6, 0
	bl CloseFile
	bl TransferBGPaletteBuffer
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_0800978C: .4byte gUnknown_203B090
_08009790: .4byte 0x00005fff
_08009794: .4byte gUnknown_80B88B0
_08009798: .4byte 0x00a000a0
_0800979C: .4byte gSystemFileArchive
_080097A0: .4byte 0x06004f00
_080097A4: .4byte gUnknown_80B88B8
_080097A8: .4byte 0x06017e00
_080097AC: .4byte gUnknown_80B88C0
	thumb_func_end InitGraphics

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