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

	.syntax unified

	.text

	thumb_func_start AddTextPrinterWithCallbackForMessage
@ void AddTextPrinterWithCallbackForMessage(u8 allowSkippingDelayWithButtonPress, void ( *callback)(u16, struct TextPrinter *))
AddTextPrinterWithCallbackForMessage: @ 8197A9C
	push {r4,r5,lr}
	sub sp, 0x10
	adds r5, r1, 0
	lsls r0, 24
	lsrs r0, 24
	ldr r3, =gTextFlags
	movs r4, 0x1
	ands r0, r4
	ldrb r2, [r3]
	movs r1, 0x2
	negs r1, r1
	ands r1, r2
	orrs r1, r0
	strb r1, [r3]
	bl sav2_get_text_speed
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	ldr r2, =gStringVar4
	str r5, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	bl AddTextPrinterParametrized
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end AddTextPrinterWithCallbackForMessage

	thumb_func_start sub_8197AE8
sub_8197AE8: @ 8197AE8
	push {r4,lr}
	sub sp, 0xC
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	movs r0, 0x11
	str r0, [sp, 0x8]
	movs r0, 0
	movs r1, 0
	movs r2, 0
	movs r3, 0
	bl FillBgTilemapBufferRect
	cmp r4, 0x1
	bne _08197B12
	movs r0, 0
	bl CopyBgTilemapBufferToVram
_08197B12:
	add sp, 0xC
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_8197AE8

	thumb_func_start sub_8197B1C
sub_8197B1C: @ 8197B1C
	push {r4,r5,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CD9C
	strh r2, [r0]
	ldr r0, =gUnknown_0203CD9E
	strb r3, [r0]
	ldr r1, =sub_8197BB4
	adds r0, r5, 0
	bl CallWindowFunction
	adds r0, r5, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r5, 0
	bl PutWindowTilemap
	cmp r4, 0x1
	bne _08197B52
	adds r0, r5, 0
	movs r1, 0x3
	bl CopyWindowToVram
_08197B52:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8197B1C

	thumb_func_start sub_8197B64
sub_8197B64: @ 8197B64
	push {r4-r6,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CD9C
	strh r2, [r0]
	ldr r5, =gUnknown_0203CD9E
	adds r0, r6, 0
	movs r1, 0x5
	bl GetWindowAttribute
	strb r0, [r5]
	ldr r1, =sub_8197BB4
	adds r0, r6, 0
	bl CallWindowFunction
	adds r0, r6, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r6, 0
	bl PutWindowTilemap
	cmp r4, 0x1
	bne _08197BA2
	adds r0, r6, 0
	movs r1, 0x3
	bl CopyWindowToVram
_08197BA2:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8197B64

	thumb_func_start sub_8197BB4
sub_8197BB4: @ 8197BB4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x24
	mov r8, r0
	adds r5, r2, 0
	adds r6, r3, 0
	ldr r2, [sp, 0x44]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r0, r1, 24
	lsls r5, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r1, r2, 24
	lsrs r1, 24
	str r1, [sp, 0x10]
	ldr r2, =gUnknown_0203CD9C
	ldrh r1, [r2]
	adds r1, 0x1
	lsls r1, 16
	lsrs r1, 16
	lsrs r3, r0, 24
	str r3, [sp, 0xC]
	movs r3, 0xFE
	lsls r3, 24
	adds r2, r0, r3
	lsrs r2, 24
	str r2, [sp, 0x14]
	lsrs r0, r5, 24
	mov r9, r0
	movs r2, 0xFF
	lsls r2, 24
	adds r5, r2
	lsrs r5, 24
	movs r4, 0x1
	str r4, [sp]
	str r4, [sp, 0x4]
	ldr r3, =gUnknown_0203CD9E
	mov r10, r3
	ldrb r0, [r3]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x14]
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r0, =gUnknown_0203CD9C
	ldrh r1, [r0]
	adds r1, 0x3
	lsls r1, 16
	lsrs r1, 16
	ldr r0, [sp, 0xC]
	subs r0, 0x1
	lsls r2, r0, 24
	lsrs r2, 24
	str r2, [sp, 0x18]
	str r4, [sp]
	str r4, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x18]
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r3, =gUnknown_0203CD9C
	ldrh r1, [r3]
	adds r1, 0x4
	lsls r1, 16
	lsrs r1, 16
	subs r0, r6, 0x1
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x1C]
	str r0, [sp]
	str r4, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0xC]
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r3, =gUnknown_0203CD9C
	ldrh r1, [r3]
	adds r1, 0x5
	lsls r1, 16
	lsrs r1, 16
	ldr r0, [sp, 0xC]
	adds r7, r0, r6
	subs r0, r7, 0x1
	lsls r2, r0, 24
	lsrs r2, 24
	str r2, [sp, 0x20]
	str r4, [sp]
	str r4, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x20]
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r3, =gUnknown_0203CD9C
	ldrh r1, [r3]
	adds r1, 0x6
	lsls r1, 16
	lsrs r1, 16
	lsls r2, r7, 24
	lsrs r7, r2, 24
	str r4, [sp]
	str r4, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	adds r2, r7, 0
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	ldr r3, =gUnknown_0203CD9C
	ldrh r1, [r3]
	adds r1, 0x7
	lsls r1, 16
	lsrs r1, 16
	str r4, [sp]
	movs r5, 0x5
	str r5, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x14]
	mov r3, r9
	bl FillBgTilemapBufferRect
	ldr r3, =gUnknown_0203CD9C
	ldrh r1, [r3]
	adds r1, 0x9
	lsls r1, 16
	lsrs r1, 16
	adds r6, 0x1
	lsls r6, 24
	lsrs r6, 24
	str r6, [sp]
	str r5, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x18]
	mov r3, r9
	bl FillBgTilemapBufferRect
	ldr r3, =gUnknown_0203CD9C
	ldrh r1, [r3]
	adds r1, 0xA
	lsls r1, 16
	lsrs r1, 16
	str r4, [sp]
	str r5, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	adds r2, r7, 0
	mov r3, r9
	bl FillBgTilemapBufferRect
	ldr r3, =0x00000801
	adds r1, r3, 0
	ldr r0, =gUnknown_0203CD9C
	ldrh r0, [r0]
	adds r1, r0
	lsls r1, 16
	lsrs r1, 16
	ldr r2, [sp, 0x10]
	add r9, r2
	mov r3, r9
	lsls r3, 24
	lsrs r3, 24
	mov r9, r3
	str r4, [sp]
	str r4, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x14]
	bl FillBgTilemapBufferRect
	ldr r3, =0x00000803
	adds r1, r3, 0
	ldr r0, =gUnknown_0203CD9C
	ldrh r0, [r0]
	adds r1, r0
	lsls r1, 16
	lsrs r1, 16
	str r4, [sp]
	str r4, [sp, 0x4]
	mov r2, r10
	ldrb r0, [r2]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x18]
	mov r3, r9
	bl FillBgTilemapBufferRect
	ldr r3, =0x00000804
	adds r1, r3, 0
	ldr r0, =gUnknown_0203CD9C
	ldrh r0, [r0]
	adds r1, r0
	lsls r1, 16
	lsrs r1, 16
	ldr r2, [sp, 0x1C]
	str r2, [sp]
	str r4, [sp, 0x4]
	mov r3, r10
	ldrb r0, [r3]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0xC]
	mov r3, r9
	bl FillBgTilemapBufferRect
	ldr r0, =0x00000805
	adds r1, r0, 0
	ldr r2, =gUnknown_0203CD9C
	ldrh r2, [r2]
	adds r1, r2
	lsls r1, 16
	lsrs r1, 16
	str r4, [sp]
	str r4, [sp, 0x4]
	mov r3, r10
	ldrb r0, [r3]
	str r0, [sp, 0x8]
	mov r0, r8
	ldr r2, [sp, 0x20]
	mov r3, r9
	bl FillBgTilemapBufferRect
	ldr r0, =0x00000806
	adds r1, r0, 0
	ldr r2, =gUnknown_0203CD9C
	ldrh r2, [r2]
	adds r1, r2
	lsls r1, 16
	lsrs r1, 16
	str r4, [sp]
	str r4, [sp, 0x4]
	mov r3, r10
	ldrb r0, [r3]
	str r0, [sp, 0x8]
	mov r0, r8
	adds r2, r7, 0
	mov r3, r9
	bl FillBgTilemapBufferRect
	add sp, 0x24
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8197BB4

	thumb_func_start sub_8197DF8
sub_8197DF8: @ 8197DF8
	push {r4,r5,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r1, =sub_8197E30
	adds r0, r5, 0
	bl CallWindowFunction
	adds r0, r5, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	adds r0, r5, 0
	bl ClearWindowTilemap
	cmp r4, 0x1
	bne _08197E26
	adds r0, r5, 0
	movs r1, 0x3
	bl CopyWindowToVram
_08197E26:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8197DF8

	thumb_func_start sub_8197E30
sub_8197E30: @ 8197E30
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r1, 0
	adds r5, r2, 0
	ldr r1, [sp, 0x18]
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsls r5, 24
	lsls r3, 24
	lsls r1, 24
	movs r2, 0xFD
	lsls r2, 24
	adds r4, r2
	lsrs r4, 24
	movs r2, 0xFF
	lsls r2, 24
	adds r5, r2
	lsrs r5, 24
	movs r2, 0xC0
	lsls r2, 19
	adds r3, r2
	lsrs r3, 24
	str r3, [sp]
	movs r2, 0x80
	lsls r2, 18
	adds r1, r2
	lsrs r1, 24
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	adds r2, r4, 0
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_8197E30

	thumb_func_start SetWindowBorderStyle
@ void SetWindowBorderStyle(u8 windowId, bool copyToVram, s16 tileStart, s8 palette)
SetWindowBorderStyle: @ 8197E80
	push {r4,r5,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CD9C
	strh r2, [r0]
	ldr r0, =gUnknown_0203CD9E
	strb r3, [r0]
	ldr r1, =DrawWindowBorder
	adds r0, r5, 0
	bl CallWindowFunction
	adds r0, r5, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r5, 0
	bl PutWindowTilemap
	cmp r4, 0x1
	bne _08197EB6
	adds r0, r5, 0
	movs r1, 0x3
	bl CopyWindowToVram
_08197EB6:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end SetWindowBorderStyle

	thumb_func_start sub_8197EC8
sub_8197EC8: @ 8197EC8
	push {r4-r6,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =gUnknown_0203CD9C
	strh r2, [r0]
	ldr r5, =gUnknown_0203CD9E
	adds r0, r6, 0
	movs r1, 0x5
	bl GetWindowAttribute
	strb r0, [r5]
	ldr r1, =DrawWindowBorder
	adds r0, r6, 0
	bl CallWindowFunction
	adds r0, r6, 0
	movs r1, 0x11
	bl FillWindowPixelBuffer
	adds r0, r6, 0
	bl PutWindowTilemap
	cmp r4, 0x1
	bne _08197F06
	adds r0, r6, 0
	movs r1, 0x3
	bl CopyWindowToVram
_08197F06:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8197EC8

	thumb_func_start DrawWindowBorder
DrawWindowBorder: @ 8197F18
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	mov r9, r0
	adds r6, r1, 0
	adds r4, r2, 0
	ldr r0, [sp, 0x38]
	mov r1, r9
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	lsls r6, 24
	lsls r4, 24
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x10]
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x14]
	ldr r2, =gUnknown_0203CD9C
	ldrh r1, [r2]
	lsrs r0, r6, 24
	str r0, [sp, 0xC]
	movs r2, 0xFF
	lsls r2, 24
	adds r6, r2
	lsrs r6, 24
	lsrs r0, r4, 24
	mov r8, r0
	adds r4, r2
	lsrs r4, 24
	movs r5, 0x1
	str r5, [sp]
	str r5, [sp, 0x4]
	ldr r7, =gUnknown_0203CD9E
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	adds r2, r6, 0
	adds r3, r4, 0
	bl FillBgTilemapBufferRect
	ldr r2, =gUnknown_0203CD9C
	ldrh r1, [r2]
	adds r1, 0x1
	lsls r1, 16
	lsrs r1, 16
	ldr r0, [sp, 0x10]
	str r0, [sp]
	str r5, [sp, 0x4]
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	ldr r2, [sp, 0xC]
	adds r3, r4, 0
	bl FillBgTilemapBufferRect
	ldr r2, =gUnknown_0203CD9C
	ldrh r1, [r2]
	adds r1, 0x2
	lsls r1, 16
	lsrs r1, 16
	ldr r0, [sp, 0xC]
	ldr r2, [sp, 0x10]
	adds r0, r2
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	str r5, [sp]
	str r5, [sp, 0x4]
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	mov r2, r10
	adds r3, r4, 0
	bl FillBgTilemapBufferRect
	ldr r0, =gUnknown_0203CD9C
	ldrh r1, [r0]
	adds r1, 0x3
	lsls r1, 16
	lsrs r1, 16
	str r5, [sp]
	ldr r2, [sp, 0x14]
	str r2, [sp, 0x4]
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	adds r2, r6, 0
	mov r3, r8
	bl FillBgTilemapBufferRect
	ldr r0, =gUnknown_0203CD9C
	ldrh r1, [r0]
	adds r1, 0x5
	lsls r1, 16
	lsrs r1, 16
	str r5, [sp]
	ldr r2, [sp, 0x14]
	str r2, [sp, 0x4]
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	mov r2, r10
	mov r3, r8
	bl FillBgTilemapBufferRect
	ldr r0, =gUnknown_0203CD9C
	ldrh r1, [r0]
	adds r1, 0x6
	lsls r1, 16
	lsrs r1, 16
	ldr r2, [sp, 0x14]
	add r8, r2
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	str r5, [sp]
	str r5, [sp, 0x4]
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	adds r2, r6, 0
	mov r3, r8
	bl FillBgTilemapBufferRect
	ldr r2, =gUnknown_0203CD9C
	ldrh r1, [r2]
	adds r1, 0x7
	lsls r1, 16
	lsrs r1, 16
	ldr r0, [sp, 0x10]
	str r0, [sp]
	str r5, [sp, 0x4]
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	ldr r2, [sp, 0xC]
	mov r3, r8
	bl FillBgTilemapBufferRect
	ldr r2, =gUnknown_0203CD9C
	ldrh r1, [r2]
	adds r1, 0x8
	lsls r1, 16
	lsrs r1, 16
	str r5, [sp]
	str r5, [sp, 0x4]
	ldrb r0, [r7]
	str r0, [sp, 0x8]
	mov r0, r9
	mov r2, r10
	mov r3, r8
	bl FillBgTilemapBufferRect
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end DrawWindowBorder

	thumb_func_start sub_8198070
sub_8198070: @ 8198070
	push {r4,r5,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r4, 24
	lsrs r4, 24
	ldr r1, =sub_81980A8
	adds r0, r5, 0
	bl CallWindowFunction
	adds r0, r5, 0
	movs r1, 0
	bl FillWindowPixelBuffer
	adds r0, r5, 0
	bl ClearWindowTilemap
	cmp r4, 0x1
	bne _0819809E
	adds r0, r5, 0
	movs r1, 0x3
	bl CopyWindowToVram
_0819809E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8198070

	thumb_func_start sub_81980A8
sub_81980A8: @ 81980A8
	push {r4,r5,lr}
	sub sp, 0xC
	adds r4, r1, 0
	adds r5, r2, 0
	ldr r1, [sp, 0x18]
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsls r5, 24
	lsls r3, 24
	lsls r1, 24
	movs r2, 0xFF
	lsls r2, 24
	adds r4, r2
	lsrs r4, 24
	adds r5, r2
	lsrs r5, 24
	movs r2, 0x80
	lsls r2, 18
	adds r3, r2
	lsrs r3, 24
	str r3, [sp]
	adds r1, r2
	lsrs r1, 24
	str r1, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	adds r2, r4, 0
	adds r3, r5, 0
	bl FillBgTilemapBufferRect
	add sp, 0xC
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_81980A8

	thumb_func_start sub_81980F0
sub_81980F0: @ 81980F0
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	ldr r4, [sp, 0x20]
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r3, 24
	lsrs r5, r3, 24
	lsls r4, 16
	lsrs r4, 16
	mov r0, sp
	movs r1, 0
	movs r2, 0x8
	bl memset
	cmp r6, 0x3
	bls _08198126
	movs r1, 0
	mov r0, sp
	strb r1, [r0]
	b _0819812A
_08198126:
	mov r0, sp
	strb r6, [r0]
_0819812A:
	mov r1, sp
	mov r0, r8
	strb r0, [r1, 0x2]
	movs r0, 0x2
	strb r0, [r1, 0x4]
	movs r0, 0x1E
	subs r0, r7
	strb r0, [r1, 0x1]
	strb r7, [r1, 0x3]
	strb r5, [r1, 0x5]
	strh r4, [r1, 0x6]
	ldr r4, =gUnknown_0203CDA0
	mov r0, sp
	bl AddWindow
	strb r0, [r4]
	cmp r5, 0xF
	bls _08198158
	movs r5, 0xF0
	b _0819815C
	.pool
_08198158:
	lsls r0, r5, 28
	lsrs r5, r0, 24
_0819815C:
	ldr r0, =gUnknown_0860F0B0
	adds r1, r5, 0
	movs r2, 0x20
	bl LoadPalette
	ldr r0, =gUnknown_0203CDA0
	ldrb r0, [r0]
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81980F0

	thumb_func_start sub_8198180
sub_8198180: @ 8198180
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	adds r6, r0, 0
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	ldr r5, =gUnknown_0203CDA0
	ldrb r0, [r5]
	cmp r0, 0xFF
	beq _081981EE
	bl PutWindowTilemap
	ldrb r0, [r5]
	movs r1, 0xFF
	bl FillWindowPixelBuffer
	movs r0, 0
	adds r1, r6, 0
	movs r2, 0
	bl GetStringWidth
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldrb r0, [r5]
	movs r1, 0x1
	bl GetWindowAttribute
	movs r2, 0xEC
	subs r2, r7
	lsls r0, 3
	subs r2, r0
	subs r2, r4
	lsls r2, 24
	lsrs r2, 24
	ldrb r0, [r5]
	ldr r1, =gUnknown_0860F0D0
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r3, 0x1
	bl box_print
	mov r0, r8
	cmp r0, 0
	beq _081981EE
	ldrb r0, [r5]
	movs r1, 0x3
	bl CopyWindowToVram
_081981EE:
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8198180

	thumb_func_start sub_8198204
sub_8198204: @ 8198204
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	mov r10, r0
	adds r6, r1, 0
	ldr r0, [sp, 0x38]
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	mov r8, r3
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r4, 0
	ldr r0, =gUnknown_0203CDA0
	ldrb r1, [r0]
	adds r7, r0, 0
	cmp r1, 0xFF
	beq _081982C8
	cmp r2, 0
	beq _08198244
	add r0, sp, 0x14
	strb r4, [r0]
	adds r1, r0, 0
	b _0819824A
	.pool
_08198244:
	add r1, sp, 0x14
	movs r0, 0xF
	strb r0, [r1]
_0819824A:
	movs r0, 0x1
	strb r0, [r1, 0x1]
	movs r0, 0x2
	strb r0, [r1, 0x2]
	adds r5, r7, 0
	ldrb r0, [r5]
	bl PutWindowTilemap
	ldrb r0, [r5]
	movs r1, 0xFF
	bl FillWindowPixelBuffer
	cmp r6, 0
	beq _0819829E
	movs r0, 0
	adds r1, r6, 0
	movs r2, 0
	bl GetStringWidth
	lsls r0, 16
	lsrs r4, r0, 16
	ldrb r0, [r5]
	movs r1, 0x1
	bl GetWindowAttribute
	movs r2, 0xEC
	mov r1, r8
	subs r2, r1
	lsls r0, 3
	subs r2, r0
	subs r2, r4
	lsls r2, 24
	lsrs r2, 24
	ldrb r0, [r5]
	add r1, sp, 0x14
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r3, 0x1
	bl box_print
_0819829E:
	ldrb r0, [r7]
	movs r1, 0
	str r1, [sp]
	str r1, [sp, 0x4]
	add r2, sp, 0x14
	str r2, [sp, 0x8]
	str r1, [sp, 0xC]
	mov r1, r10
	str r1, [sp, 0x10]
	movs r1, 0x1
	movs r2, 0x4
	movs r3, 0x1
	bl AddTextPrinterParametrized2
	mov r2, r9
	cmp r2, 0
	beq _081982C8
	ldrb r0, [r7]
	movs r1, 0x3
	bl CopyWindowToVram
_081982C8:
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8198204

	thumb_func_start sub_81982D8
sub_81982D8: @ 81982D8
	push {lr}
	ldr r1, =gUnknown_0203CDA0
	ldrb r0, [r1]
	cmp r0, 0xFF
	beq _081982E8
	movs r1, 0x3
	bl CopyWindowToVram
_081982E8:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81982D8

	thumb_func_start sub_81982F0
sub_81982F0: @ 81982F0
	push {r4,lr}
	ldr r4, =gUnknown_0203CDA0
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _08198308
	movs r1, 0xFF
	bl FillWindowPixelBuffer
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
_08198308:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81982F0

	thumb_func_start sub_8198314
sub_8198314: @ 8198314
	push {r4,lr}
	ldr r4, =gUnknown_0203CDA0
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _0819833C
	movs r1, 0
	bl FillWindowPixelBuffer
	ldrb r0, [r4]
	bl ClearWindowTilemap
	ldrb r0, [r4]
	movs r1, 0x3
	bl CopyWindowToVram
	ldrb r0, [r4]
	bl RemoveWindow
	movs r0, 0xFF
	strb r0, [r4]
_0819833C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8198314

	thumb_func_start sub_8198348
sub_8198348: @ 8198348
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r4, [sp, 0x18]
	mov r8, r4
	ldr r4, [sp, 0x1C]
	ldr r5, [sp, 0x20]
	ldr r6, [sp, 0x24]
	mov r12, r6
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r7, r5, 24
	ldr r5, =gUnknown_0203CD90
	movs r6, 0
	strb r2, [r5]
	strb r3, [r5, 0x1]
	strb r6, [r5, 0x3]
	subs r4, 0x1
	strb r4, [r5, 0x4]
	strb r0, [r5, 0x5]
	strb r1, [r5, 0x6]
	mov r0, r8
	strb r0, [r5, 0x8]
	mov r4, r12
	strb r4, [r5, 0xB]
	cmp r7, 0
	blt _08198388
	movs r0, 0x4
	ldrsb r0, [r5, r0]
	cmp r7, r0
	ble _08198390
_08198388:
	strb r6, [r5, 0x2]
	b _08198392
	.pool
_08198390:
	strb r7, [r5, 0x2]
_08198392:
	movs r0, 0
	bl MoveMenuCursor
	ldr r0, =gUnknown_0203CD90
	ldrb r0, [r0, 0x2]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8198348

	thumb_func_start sub_81983AC
sub_81983AC: @ 81983AC
	push {r4-r6,lr}
	sub sp, 0x10
	ldr r4, [sp, 0x20]
	ldr r5, [sp, 0x24]
	ldr r6, [sp, 0x28]
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	str r4, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	movs r4, 0
	str r4, [sp, 0xC]
	bl sub_8198348
	lsls r0, 24
	lsrs r0, 24
	add sp, 0x10
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81983AC

	thumb_func_start sub_81983EC
sub_81983EC: @ 81983EC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x14
	mov r8, r0
	adds r6, r1, 0
	ldr r4, [sp, 0x28]
	ldr r5, [sp, 0x2C]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r6, 24
	lsrs r6, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	adds r0, r6, 0
	movs r1, 0x1
	str r2, [sp, 0xC]
	str r3, [sp, 0x10]
	bl GetMenuCursorDimensionByFont
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	mov r0, r8
	adds r1, r6, 0
	ldr r2, [sp, 0xC]
	ldr r3, [sp, 0x10]
	bl sub_81983AC
	lsls r0, 24
	lsrs r0, 24
	add sp, 0x14
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_81983EC

	thumb_func_start RedrawMenuCursor
@ void RedrawMenuCursor(s8 oldPos, s8 newPos)
RedrawMenuCursor: @ 8198448
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0xC
	adds r6, r0, 0
	mov r8, r1
	lsls r6, 24
	lsrs r6, 24
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r5, =gUnknown_0203CD90
	ldrb r0, [r5, 0x6]
	movs r1, 0
	bl GetMenuCursorDimensionByFont
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldrb r0, [r5, 0x6]
	movs r1, 0x1
	bl GetMenuCursorDimensionByFont
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r5, 0x5]
	mov r9, r1
	ldrb r2, [r5]
	ldrb r1, [r5, 0x8]
	adds r3, r1, 0
	muls r3, r6
	ldrb r6, [r5, 0x1]
	adds r3, r6
	lsls r3, 16
	lsrs r3, 16
	str r4, [sp]
	str r0, [sp, 0x4]
	mov r0, r9
	movs r1, 0x11
	bl FillWindowPixelRect
	ldrb r0, [r5, 0x5]
	ldrb r1, [r5, 0x6]
	ldr r2, =gText_SelectorArrow3
	ldrb r3, [r5]
	ldrb r4, [r5, 0x8]
	mov r6, r8
	muls r6, r4
	adds r4, r6, 0
	ldrb r5, [r5, 0x1]
	adds r4, r5
	lsls r4, 24
	lsrs r4, 24
	str r4, [sp]
	movs r4, 0
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end RedrawMenuCursor

	thumb_func_start MoveMenuCursor
@ s8 MoveMenuCursor(s8 cursorDelta)
MoveMenuCursor: @ 81984D8
	push {r4,r5,lr}
	ldr r1, =gUnknown_0203CD90
	ldrb r5, [r1, 0x2]
	movs r2, 0x2
	ldrsb r2, [r1, r2]
	lsls r0, 24
	asrs r3, r0, 24
	adds r2, r3
	movs r0, 0x3
	ldrsb r0, [r1, r0]
	adds r4, r1, 0
	cmp r2, r0
	bge _081984FC
	ldrb r0, [r4, 0x4]
	b _0819850A
	.pool
_081984FC:
	movs r0, 0x4
	ldrsb r0, [r4, r0]
	cmp r2, r0
	ble _08198508
	ldrb r0, [r4, 0x3]
	b _0819850A
_08198508:
	adds r0, r3, r5
_0819850A:
	strb r0, [r4, 0x2]
	ldrb r1, [r4, 0x2]
	adds r0, r5, 0
	bl RedrawMenuCursor
	ldrb r0, [r4, 0x2]
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end MoveMenuCursor

	thumb_func_start MoveMenuCursorNoWrapAround
@ s8 MoveMenuCursorNoWrapAround(s8 cursorDelta)
MoveMenuCursorNoWrapAround: @ 819851C
	push {r4,r5,lr}
	ldr r1, =gUnknown_0203CD90
	ldrb r5, [r1, 0x2]
	movs r2, 0x2
	ldrsb r2, [r1, r2]
	lsls r0, 24
	asrs r3, r0, 24
	adds r2, r3
	movs r0, 0x3
	ldrsb r0, [r1, r0]
	adds r4, r1, 0
	cmp r2, r0
	bge _08198540
	ldrb r0, [r4, 0x3]
	b _0819854E
	.pool
_08198540:
	movs r0, 0x4
	ldrsb r0, [r4, r0]
	cmp r2, r0
	ble _0819854C
	ldrb r0, [r4, 0x4]
	b _0819854E
_0819854C:
	adds r0, r3, r5
_0819854E:
	strb r0, [r4, 0x2]
	ldrb r1, [r4, 0x2]
	adds r0, r5, 0
	bl RedrawMenuCursor
	ldrb r0, [r4, 0x2]
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end MoveMenuCursorNoWrapAround

	thumb_func_start GetMenuCursorPos
GetMenuCursorPos: @ 8198560
	ldr r0, =gUnknown_0203CD90
	ldrb r0, [r0, 0x2]
	bx lr
	.pool
	thumb_func_end GetMenuCursorPos

	thumb_func_start ProcessMenuInput
ProcessMenuInput: @ 819856C
	push {r4,lr}
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08198598
	ldr r4, =gUnknown_0203CD90
	ldrb r0, [r4, 0xB]
	cmp r0, 0
	bne _08198588
	movs r0, 0x5
	bl PlaySE
_08198588:
	movs r0, 0x2
	ldrsb r0, [r4, r0]
	b _081985D2
	.pool
_08198598:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081985A6
	movs r0, 0x1
	negs r0, r0
	b _081985D2
_081985A6:
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081985BA
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	b _081985CA
_081985BA:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081985CE
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
_081985CA:
	bl MoveMenuCursor
_081985CE:
	movs r0, 0x2
	negs r0, r0
_081985D2:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end ProcessMenuInput

	thumb_func_start ProcessMenuInputNoWrapAround
@ int ProcessMenuInputNoWrapAround()
ProcessMenuInputNoWrapAround: @ 81985D8
	push {r4-r6,lr}
	ldr r4, =gUnknown_0203CD90
	ldrb r5, [r4, 0x2]
	adds r6, r5, 0
	ldr r0, =gMain
	ldrh r1, [r0, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08198608
	ldrb r0, [r4, 0xB]
	cmp r0, 0
	bne _081985F8
	movs r0, 0x5
	bl PlaySE
_081985F8:
	movs r0, 0x2
	ldrsb r0, [r4, r0]
	b _08198650
	.pool
_08198608:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08198616
	movs r0, 0x1
	negs r0, r0
	b _08198650
_08198616:
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _08198630
	movs r0, 0x1
	negs r0, r0
	bl MoveMenuCursorNoWrapAround
	lsls r0, 24
	lsrs r0, 24
	cmp r5, r0
	beq _0819864C
	b _08198646
_08198630:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _0819864C
	movs r0, 0x1
	bl MoveMenuCursorNoWrapAround
	lsls r0, 24
	lsrs r0, 24
	cmp r6, r0
	beq _0819864C
_08198646:
	movs r0, 0x5
	bl PlaySE
_0819864C:
	movs r0, 0x2
	negs r0, r0
_08198650:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end ProcessMenuInputNoWrapAround

	thumb_func_start ProcessMenuInput_other
ProcessMenuInput_other: @ 8198658
	push {r4,lr}
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08198684
	ldr r4, =gUnknown_0203CD90
	ldrb r0, [r4, 0xB]
	cmp r0, 0
	bne _08198674
	movs r0, 0x5
	bl PlaySE
_08198674:
	movs r0, 0x2
	ldrsb r0, [r4, r0]
	b _081986BC
	.pool
_08198684:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08198692
	movs r0, 0x1
	negs r0, r0
	b _081986BC
_08198692:
	ldrh r0, [r2, 0x30]
	movs r1, 0xF0
	ands r1, r0
	cmp r1, 0x40
	bne _081986A8
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	b _081986B4
_081986A8:
	cmp r1, 0x80
	bne _081986B8
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
_081986B4:
	bl MoveMenuCursor
_081986B8:
	movs r0, 0x2
	negs r0, r0
_081986BC:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end ProcessMenuInput_other

	thumb_func_start ProcessMenuInputNoWrapAround_other
ProcessMenuInputNoWrapAround_other: @ 81986C4
	push {r4-r6,lr}
	ldr r4, =gUnknown_0203CD90
	ldrb r5, [r4, 0x2]
	adds r6, r5, 0
	ldr r2, =gMain
	ldrh r1, [r2, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081986F4
	ldrb r0, [r4, 0xB]
	cmp r0, 0
	bne _081986E4
	movs r0, 0x5
	bl PlaySE
_081986E4:
	movs r0, 0x2
	ldrsb r0, [r4, r0]
	b _0819873A
	.pool
_081986F4:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _08198702
	movs r0, 0x1
	negs r0, r0
	b _0819873A
_08198702:
	ldrh r0, [r2, 0x30]
	movs r1, 0xF0
	ands r1, r0
	cmp r1, 0x40
	bne _0819871E
	movs r0, 0x1
	negs r0, r0
	bl MoveMenuCursorNoWrapAround
	lsls r0, 24
	lsrs r0, 24
	cmp r5, r0
	beq _08198736
	b _08198730
_0819871E:
	cmp r1, 0x80
	bne _08198736
	movs r0, 0x1
	bl MoveMenuCursorNoWrapAround
	lsls r0, 24
	lsrs r0, 24
	cmp r6, r0
	beq _08198736
_08198730:
	movs r0, 0x5
	bl PlaySE
_08198736:
	movs r0, 0x2
	negs r0, r0
_0819873A:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end ProcessMenuInputNoWrapAround_other

	thumb_func_start PrintTextArray
PrintTextArray: @ 8198740
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	ldr r4, [sp, 0x2C]
	ldr r5, [sp, 0x30]
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r10, r1
	lsls r2, 24
	lsrs r2, 24
	mov r9, r2
	lsls r3, 24
	lsrs r3, 24
	mov r8, r3
	lsls r4, 24
	lsrs r7, r4, 24
	lsls r5, 24
	lsrs r5, 24
	movs r4, 0
	cmp r4, r5
	bcs _081987A4
_08198774:
	lsls r0, r4, 3
	ldr r1, [sp, 0x34]
	adds r0, r1
	ldr r2, [r0]
	adds r0, r7, 0
	muls r0, r4
	add r0, r8
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r6, 0
	mov r1, r10
	mov r3, r9
	bl PrintTextOnWindow
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08198774
_081987A4:
	adds r0, r6, 0
	movs r1, 0x2
	bl CopyWindowToVram
	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 PrintTextArray

	thumb_func_start sub_81987BC
sub_81987BC: @ 81987BC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	ldr r4, [sp, 0x40]
	ldr r5, [sp, 0x44]
	ldr r6, [sp, 0x4C]
	ldr r7, [sp, 0x50]
	mov r8, r7
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0x14]
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp, 0x18]
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x1C]
	lsls r4, 24
	lsrs r4, 24
	mov r10, r4
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	mov r9, r6
	mov r0, r8
	lsls r0, 24
	lsrs r6, r0, 24
	movs r4, 0
	cmp r4, r5
	bcs _0819883C
_08198804:
	lsls r0, r4, 3
	ldr r1, [sp, 0x48]
	adds r0, r1
	ldr r2, [r0]
	mov r0, r10
	muls r0, r4
	ldr r1, [sp, 0x1C]
	adds r0, r1, r0
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	mov r0, r9
	str r0, [sp, 0xC]
	str r6, [sp, 0x10]
	adds r0, r7, 0
	ldr r1, [sp, 0x14]
	ldr r3, [sp, 0x18]
	bl sub_8199F74
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08198804
_0819883C:
	adds r0, r7, 0
	movs r1, 0x2
	bl CopyWindowToVram
	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_81987BC

	thumb_func_start sub_8198854
sub_8198854: @ 8198854
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	mov r8, r0
	adds r6, r1, 0
	adds r4, r2, 0
	adds r5, r3, 0
	ldr r7, [sp, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r6, 24
	lsrs r6, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	adds r0, r6, 0
	movs r1, 0
	bl GetFontAttribute
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r4, [sp]
	str r5, [sp, 0x4]
	str r7, [sp, 0x8]
	mov r0, r8
	adds r1, r6, 0
	movs r3, 0x1
	bl PrintTextArray
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8198854

	thumb_func_start AddItemMenuActionTextPrinters
AddItemMenuActionTextPrinters: @ 81988A4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	adds r6, r1, 0
	mov r8, r2
	ldr r1, [sp, 0x38]
	mov r9, r1
	ldr r1, [sp, 0x3C]
	ldr r2, [sp, 0x40]
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x10]
	lsls r6, 24
	lsrs r6, 24
	mov r4, r8
	lsls r4, 24
	lsrs r4, 24
	mov r8, r4
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x14]
	mov r0, r9
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r1, 24
	lsrs r1, 24
	mov r10, r1
	lsls r2, 24
	lsrs r7, r2, 24
	mov r0, sp
	ldrb r1, [r0, 0x10]
	strb r1, [r0, 0x4]
	strb r6, [r0, 0x5]
	adds r0, r6, 0
	movs r1, 0x5
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xC]
	movs r5, 0xF
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xC]
	adds r0, r6, 0
	movs r1, 0x6
	bl GetFontAttribute
	mov r3, sp
	adds r1, r5, 0
	ands r1, r0
	ldrb r2, [r3, 0xD]
	movs r4, 0x10
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0xD]
	adds r0, r6, 0
	movs r1, 0x7
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xD]
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xD]
	adds r0, r6, 0
	movs r1, 0x4
	bl GetFontAttribute
	mov r1, sp
	ands r5, r0
	ldrb r0, [r1, 0xC]
	ands r4, r0
	orrs r4, r5
	strb r4, [r1, 0xC]
	mov r0, sp
	mov r2, r9
	strb r2, [r0, 0xA]
	adds r0, r6, 0
	movs r1, 0x3
	bl GetFontAttribute
	mov r1, sp
	strb r0, [r1, 0xB]
	mov r0, sp
	mov r4, r8
	strb r4, [r0, 0x6]
	strb r4, [r0, 0x8]
	movs r4, 0
	cmp r4, r7
	bcs _0819899E
	mov r5, sp
_0819896E:
	ldr r1, [sp, 0x48]
	adds r0, r1, r4
	ldrb r0, [r0]
	lsls r0, 3
	ldr r2, [sp, 0x44]
	adds r0, r2
	ldr r0, [r0]
	str r0, [sp]
	mov r0, r10
	muls r0, r4
	ldr r1, [sp, 0x14]
	adds r0, r1, r0
	strb r0, [r5, 0x7]
	strb r0, [r5, 0x9]
	mov r0, sp
	movs r1, 0xFF
	movs r2, 0
	bl AddTextPrinter
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r7
	bcc _0819896E
_0819899E:
	ldr r0, [sp, 0x10]
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end AddItemMenuActionTextPrinters

	thumb_func_start sub_81989B8
sub_81989B8: @ 81989B8
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x14
	mov r9, r0
	adds r4, r1, 0
	adds r6, r2, 0
	mov r8, r3
	ldr r7, [sp, 0x30]
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r4, 24
	lsrs r4, 24
	lsls r6, 24
	lsrs r6, 24
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	adds r0, r4, 0
	movs r1, 0
	bl GetFontAttribute
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	adds r0, r4, 0
	movs r1, 0x2
	bl GetFontAttribute
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	str r6, [sp, 0x4]
	mov r0, r8
	str r0, [sp, 0x8]
	str r7, [sp, 0xC]
	ldr r0, [sp, 0x34]
	str r0, [sp, 0x10]
	mov r0, r9
	adds r1, r4, 0
	adds r2, r5, 0
	movs r3, 0x1
	bl AddItemMenuActionTextPrinters
	add sp, 0x14
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81989B8

	thumb_func_start SetWindowTemplateFields
@ void SetWindowTemplateFields(WindowTemplate *template, char bg_id, char x, char y, char w, char h, char a7, s16 a8)
SetWindowTemplateFields: @ 8198A24
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r4, [sp, 0x18]
	ldr r5, [sp, 0x1C]
	ldr r6, [sp, 0x20]
	ldr r7, [sp, 0x24]
	mov r8, r7
	strb r1, [r0]
	strb r2, [r0, 0x1]
	strb r3, [r0, 0x2]
	strb r4, [r0, 0x3]
	strb r5, [r0, 0x4]
	strb r6, [r0, 0x5]
	mov r1, r8
	strh r1, [r0, 0x6]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end SetWindowTemplateFields

	thumb_func_start sub_8198A50
sub_8198A50: @ 8198A50
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x18
	mov r8, r0
	ldr r0, [sp, 0x2C]
	ldr r4, [sp, 0x30]
	ldr r5, [sp, 0x34]
	ldr r6, [sp, 0x38]
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r0, 24
	lsrs r0, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 16
	lsrs r6, 16
	str r0, [sp]
	str r4, [sp, 0x4]
	str r5, [sp, 0x8]
	str r6, [sp, 0xC]
	add r0, sp, 0x10
	bl SetWindowTemplateFields
	ldr r0, [sp, 0x10]
	ldr r1, [sp, 0x14]
	mov r2, r8
	str r0, [r2]
	str r1, [r2, 0x4]
	mov r0, r8
	add sp, 0x18
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r2}
	bx r2
	thumb_func_end sub_8198A50

	thumb_func_start sub_8198AA4
sub_8198AA4: @ 8198AA4
	push {r4-r6,lr}
	sub sp, 0x18
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	ldr r0, [sp, 0x28]
	ldr r1, [sp, 0x2C]
	ldr r2, [sp, 0x30]
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 16
	lsrs r2, 16
	str r3, [sp]
	str r0, [sp, 0x4]
	str r1, [sp, 0x8]
	str r2, [sp, 0xC]
	add r0, sp, 0x10
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl SetWindowTemplateFields
	add r0, sp, 0x10
	bl AddWindow
	lsls r0, 16
	lsrs r0, 16
	add sp, 0x18
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8198AA4

	thumb_func_start sub_8198AF8
sub_8198AF8: @ 8198AF8
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x1C
	adds r6, r1, 0
	mov r8, r2
	mov r9, r3
	ldr r4, [sp, 0x3C]
	ldr r5, [sp, 0x40]
	ldr r1, [sp, 0x44]
	mov r10, r1
	lsls r6, 24
	lsrs r6, 24
	mov r1, r8
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	mov r1, r9
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 24
	lsrs r5, 24
	mov r1, r10
	lsls r1, 24
	lsrs r1, 24
	mov r10, r1
	ldr r7, =gUnknown_0203CD9F
	bl AddWindow
	strb r0, [r7]
	ldrb r0, [r7]
	movs r1, 0x1
	adds r2, r4, 0
	adds r3, r5, 0
	bl SetWindowBorderStyle
	ldr r0, =gText_YesNo
	str r0, [sp, 0xC]
	add r1, sp, 0xC
	ldrb r0, [r7]
	strb r0, [r1, 0x4]
	adds r0, r1, 0
	strb r6, [r0, 0x5]
	adds r0, r6, 0
	movs r1, 0
	bl GetFontAttribute
	add r1, sp, 0xC
	add r0, r8
	strb r0, [r1, 0x6]
	adds r0, r1, 0
	mov r1, r9
	strb r1, [r0, 0x7]
	adds r1, r0, 0
	ldrb r0, [r0, 0x6]
	strb r0, [r1, 0x8]
	adds r0, r1, 0
	ldrb r0, [r0, 0x7]
	strb r0, [r1, 0x9]
	adds r0, r6, 0
	movs r1, 0x5
	bl GetFontAttribute
	add r3, sp, 0xC
	lsls r0, 4
	ldrb r2, [r3, 0xC]
	movs r5, 0xF
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xC]
	adds r0, r6, 0
	movs r1, 0x6
	bl GetFontAttribute
	add r3, sp, 0xC
	adds r1, r5, 0
	ands r1, r0
	ldrb r2, [r3, 0xD]
	movs r4, 0x10
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0xD]
	adds r0, r6, 0
	movs r1, 0x7
	bl GetFontAttribute
	add r3, sp, 0xC
	lsls r0, 4
	ldrb r2, [r3, 0xD]
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xD]
	adds r0, r6, 0
	movs r1, 0x4
	bl GetFontAttribute
	add r1, sp, 0xC
	ands r5, r0
	ldrb r0, [r1, 0xC]
	ands r4, r0
	orrs r4, r5
	strb r4, [r1, 0xC]
	adds r0, r6, 0
	movs r1, 0x2
	bl GetFontAttribute
	add r1, sp, 0xC
	strb r0, [r1, 0xA]
	adds r0, r6, 0
	movs r1, 0x3
	bl GetFontAttribute
	add r1, sp, 0xC
	strb r0, [r1, 0xB]
	adds r0, r1, 0
	movs r1, 0xFF
	movs r2, 0
	bl AddTextPrinter
	adds r0, r6, 0
	movs r1, 0x1
	bl GetFontAttribute
	lsls r0, 24
	lsrs r0, 24
	ldrb r1, [r7]
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	mov r0, r10
	str r0, [sp, 0x8]
	adds r0, r1, 0
	adds r1, r6, 0
	mov r2, r8
	mov r3, r9
	bl sub_81983AC
	add sp, 0x1C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8198AF8

	thumb_func_start sub_8198C34
sub_8198C34: @ 8198C34
	push {lr}
	sub sp, 0xC
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 16
	lsrs r2, 16
	lsls r3, 24
	lsrs r3, 24
	str r2, [sp]
	str r3, [sp, 0x4]
	movs r2, 0
	str r2, [sp, 0x8]
	movs r3, 0x1
	bl sub_8198AF8
	add sp, 0xC
	pop {r0}
	bx r0
	thumb_func_end sub_8198C34

	thumb_func_start sub_8198C58
sub_8198C58: @ 8198C58
	push {r4,lr}
	bl ProcessMenuInputNoWrapAround
	lsls r0, 24
	asrs r4, r0, 24
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _08198C6E
	bl sub_8198C78
_08198C6E:
	adds r0, r4, 0
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8198C58

	thumb_func_start sub_8198C78
sub_8198C78: @ 8198C78
	push {r4,lr}
	ldr r4, =gUnknown_0203CD9F
	ldrb r0, [r4]
	movs r1, 0x1
	bl sub_8198070
	ldrb r0, [r4]
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8198C78

	thumb_func_start sub_8198C94
sub_8198C94: @ 8198C94
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	ldr r4, [sp, 0x40]
	ldr r5, [sp, 0x44]
	ldr r6, [sp, 0x48]
	ldr r7, [sp, 0x4C]
	mov r8, r7
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0xC]
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp, 0x10]
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x14]
	lsls r4, 24
	lsrs r4, 24
	str r4, [sp, 0x18]
	lsls r5, 24
	lsrs r5, 24
	str r5, [sp, 0x1C]
	lsls r6, 24
	lsrs r6, 24
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	movs r5, 0
	cmp r5, r9
	bcs _08198D3A
_08198CE0:
	movs r4, 0
	adds r1, r5, 0x1
	mov r8, r1
	cmp r4, r6
	bcs _08198D30
	ldr r7, [sp, 0x1C]
	adds r0, r7, 0
	muls r0, r5
	ldr r1, [sp, 0x14]
	adds r0, r1, r0
	lsls r0, 24
	lsrs r7, r0, 24
_08198CF8:
	adds r0, r5, 0
	muls r0, r6
	adds r0, r4
	lsls r0, 3
	ldr r1, [sp, 0x50]
	adds r0, r1
	ldr r2, [r0]
	ldr r0, [sp, 0x18]
	adds r3, r0, 0
	muls r3, r4
	ldr r1, [sp, 0x10]
	adds r3, r1, r3
	lsls r3, 24
	lsrs r3, 24
	str r7, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	mov r0, r10
	ldr r1, [sp, 0xC]
	bl PrintTextOnWindow
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r6
	bcc _08198CF8
_08198D30:
	mov r7, r8
	lsls r0, r7, 24
	lsrs r5, r0, 24
	cmp r5, r9
	bcc _08198CE0
_08198D3A:
	mov r0, r10
	movs r1, 0x2
	bl CopyWindowToVram
	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_8198C94

	thumb_func_start sub_8198D54
sub_8198D54: @ 8198D54
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x18
	mov r9, r0
	mov r8, r1
	adds r4, r2, 0
	adds r5, r3, 0
	ldr r6, [sp, 0x34]
	ldr r3, [sp, 0x38]
	ldr r7, [sp, 0x3C]
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0
	str r3, [sp, 0x14]
	bl GetFontAttribute
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r4, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	ldr r3, [sp, 0x14]
	str r3, [sp, 0xC]
	str r7, [sp, 0x10]
	mov r0, r9
	mov r1, r8
	movs r3, 0
	bl sub_8198C94
	add sp, 0x18
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8198D54

	thumb_func_start sub_8198DBC
sub_8198DBC: @ 8198DBC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x20
	ldr r4, [sp, 0x40]
	ldr r5, [sp, 0x44]
	ldr r6, [sp, 0x48]
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x10]
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp, 0x14]
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x18]
	lsls r4, 24
	lsrs r4, 24
	str r4, [sp, 0x1C]
	lsls r5, 24
	lsrs r5, 24
	mov r8, r5
	lsls r6, 24
	lsrs r6, 24
	mov r10, r6
	mov r0, sp
	ldrb r1, [r0, 0x10]
	strb r1, [r0, 0x4]
	strb r7, [r0, 0x5]
	adds r0, r7, 0
	movs r1, 0x5
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xC]
	movs r5, 0xF
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xC]
	adds r0, r7, 0
	movs r1, 0x6
	bl GetFontAttribute
	mov r3, sp
	adds r1, r5, 0
	ands r1, r0
	ldrb r2, [r3, 0xD]
	movs r4, 0x10
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0xD]
	adds r0, r7, 0
	movs r1, 0x7
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xD]
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xD]
	adds r0, r7, 0
	movs r1, 0x4
	bl GetFontAttribute
	mov r1, sp
	ands r5, r0
	ldrb r0, [r1, 0xC]
	ands r4, r0
	orrs r4, r5
	strb r4, [r1, 0xC]
	adds r0, r7, 0
	movs r1, 0x2
	bl GetFontAttribute
	mov r1, sp
	strb r0, [r1, 0xA]
	adds r0, r7, 0
	movs r1, 0x3
	bl GetFontAttribute
	mov r1, sp
	strb r0, [r1, 0xB]
	movs r6, 0
	cmp r6, r10
	bcs _08198EDE
_08198E7A:
	movs r5, 0
	adds r2, r6, 0x1
	mov r9, r2
	cmp r5, r8
	bcs _08198ED4
	mov r4, sp
_08198E86:
	mov r0, r8
	muls r0, r6
	adds r0, r5
	ldr r1, [sp, 0x50]
	adds r0, r1, r0
	ldrb r0, [r0]
	lsls r0, 3
	ldr r2, [sp, 0x4C]
	adds r0, r2
	ldr r0, [r0]
	str r0, [sp]
	ldr r1, [sp, 0x1C]
	adds r0, r1, 0
	muls r0, r5
	ldr r2, [sp, 0x14]
	adds r0, r2, r0
	strb r0, [r4, 0x6]
	adds r0, r7, 0
	movs r1, 0x1
	bl GetFontAttribute
	adds r1, r6, 0
	muls r1, r0
	ldr r0, [sp, 0x18]
	adds r1, r0, r1
	strb r1, [r4, 0x7]
	ldrb r0, [r4, 0x6]
	strb r0, [r4, 0x8]
	strb r1, [r4, 0x9]
	mov r0, sp
	movs r1, 0xFF
	movs r2, 0
	bl AddTextPrinter
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r8
	bcc _08198E86
_08198ED4:
	mov r1, r9
	lsls r0, r1, 24
	lsrs r6, r0, 24
	cmp r6, r10
	bcc _08198E7A
_08198EDE:
	ldr r0, [sp, 0x10]
	movs r1, 0x2
	bl CopyWindowToVram
	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_8198DBC

	thumb_func_start sub_8198EF8
sub_8198EF8: @ 8198EF8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x18
	mov r8, r0
	adds r3, r1, 0
	adds r4, r2, 0
	ldr r5, [sp, 0x30]
	ldr r6, [sp, 0x34]
	ldr r7, [sp, 0x38]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	adds r0, r3, 0
	movs r1, 0
	str r3, [sp, 0x14]
	bl GetFontAttribute
	adds r2, r0, 0
	lsls r2, 24
	lsrs r2, 24
	str r4, [sp]
	str r5, [sp, 0x4]
	str r6, [sp, 0x8]
	str r7, [sp, 0xC]
	ldr r0, [sp, 0x3C]
	str r0, [sp, 0x10]
	mov r0, r8
	ldr r3, [sp, 0x14]
	adds r1, r3, 0
	movs r3, 0
	bl sub_8198DBC
	add sp, 0x18
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8198EF8

	thumb_func_start sub_8198F58
sub_8198F58: @ 8198F58
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	ldr r4, [sp, 0x20]
	mov r12, r4
	ldr r4, [sp, 0x24]
	mov r8, r4
	ldr r4, [sp, 0x28]
	mov r9, r4
	ldr r4, [sp, 0x2C]
	mov r10, r4
	ldr r4, [sp, 0x30]
	ldr r5, [sp, 0x34]
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r7, r5, 24
	ldr r5, =gUnknown_0203CD90
	movs r6, 0
	strb r2, [r5]
	strb r3, [r5, 0x1]
	strb r6, [r5, 0x3]
	subs r4, 0x1
	strb r4, [r5, 0x4]
	strb r0, [r5, 0x5]
	strb r1, [r5, 0x6]
	mov r0, r12
	strb r0, [r5, 0x7]
	mov r4, r8
	strb r4, [r5, 0x8]
	mov r0, r9
	strb r0, [r5, 0x9]
	mov r4, r10
	strb r4, [r5, 0xA]
	cmp r7, 0
	blt _08198FAC
	movs r0, 0x4
	ldrsb r0, [r5, r0]
	cmp r7, r0
	ble _08198FB4
_08198FAC:
	strb r6, [r5, 0x2]
	b _08198FB6
	.pool
_08198FB4:
	strb r7, [r5, 0x2]
_08198FB6:
	movs r0, 0
	movs r1, 0
	bl sub_8199134
	ldr r0, =gUnknown_0203CD90
	ldrb r0, [r0, 0x2]
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8198F58

	thumb_func_start sub_8198FD4
sub_8198FD4: @ 8198FD4
	push {r4-r6,lr}
	mov r6, r10
	mov r5, r9
	mov r4, r8
	push {r4-r6}
	sub sp, 0x20
	mov r9, r0
	mov r8, r1
	mov r10, r2
	ldr r6, [sp, 0x3C]
	ldr r4, [sp, 0x40]
	ldr r5, [sp, 0x44]
	ldr r2, [sp, 0x48]
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	mov r0, r8
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	mov r0, r10
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	lsls r3, 24
	lsrs r3, 24
	lsls r6, 24
	lsrs r6, 24
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	lsls r2, 24
	lsrs r2, 24
	mov r0, r8
	movs r1, 0x1
	str r2, [sp, 0x18]
	str r3, [sp, 0x1C]
	bl GetMenuCursorDimensionByFont
	lsls r0, 24
	lsrs r0, 24
	adds r1, r4, 0
	muls r1, r5
	lsls r1, 24
	lsrs r1, 24
	str r6, [sp]
	str r0, [sp, 0x4]
	str r4, [sp, 0x8]
	str r5, [sp, 0xC]
	str r1, [sp, 0x10]
	ldr r2, [sp, 0x18]
	str r2, [sp, 0x14]
	mov r0, r9
	mov r1, r8
	mov r2, r10
	ldr r3, [sp, 0x1C]
	bl sub_8198F58
	lsls r0, 24
	lsrs r0, 24
	add sp, 0x20
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8198FD4

	thumb_func_start sub_8199060
sub_8199060: @ 8199060
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0xC
	mov r8, r0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r0, r1, 24
	lsrs r7, r0, 24
	ldr r5, =gUnknown_0203CD90
	ldrb r0, [r5, 0x6]
	movs r1, 0
	bl GetMenuCursorDimensionByFont
	mov r9, r0
	mov r1, r9
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	ldrb r0, [r5, 0x6]
	movs r1, 0x1
	bl GetMenuCursorDimensionByFont
	adds r6, r0, 0
	lsls r6, 24
	lsrs r6, 24
	ldrb r0, [r5, 0x9]
	mov r10, r0
	mov r0, r8
	mov r1, r10
	bl __umodsi3
	ldrb r1, [r5, 0x7]
	adds r4, r1, 0
	muls r4, r0
	ldrb r1, [r5]
	adds r4, r1
	lsls r4, 24
	lsrs r4, 24
	mov r0, r8
	mov r1, r10
	bl __udivsi3
	ldrb r1, [r5, 0x8]
	adds r3, r1, 0
	muls r3, r0
	ldrb r0, [r5, 0x1]
	adds r3, r0
	lsls r3, 24
	lsrs r3, 24
	ldrb r0, [r5, 0x5]
	mov r1, r9
	str r1, [sp]
	str r6, [sp, 0x4]
	movs r1, 0x11
	adds r2, r4, 0
	bl FillWindowPixelRect
	ldrb r6, [r5, 0x9]
	adds r0, r7, 0
	adds r1, r6, 0
	bl __umodsi3
	ldrb r1, [r5, 0x7]
	adds r4, r1, 0
	muls r4, r0
	ldrb r0, [r5]
	adds r4, r0
	lsls r4, 24
	lsrs r4, 24
	adds r0, r7, 0
	adds r1, r6, 0
	bl __udivsi3
	ldrb r1, [r5, 0x8]
	adds r3, r1, 0
	muls r3, r0
	ldrb r1, [r5, 0x1]
	adds r3, r1
	lsls r3, 24
	lsrs r3, 24
	ldrb r0, [r5, 0x5]
	ldrb r1, [r5, 0x6]
	ldr r2, =gText_SelectorArrow3
	str r3, [sp]
	movs r3, 0
	str r3, [sp, 0x4]
	str r3, [sp, 0x8]
	adds r3, r4, 0
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8199060

	thumb_func_start sub_8199134
sub_8199134: @ 8199134
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	lsls r1, 24
	lsrs r1, 24
	mov r9, r1
	ldr r1, =gUnknown_0203CD90
	ldrb r2, [r1, 0x2]
	mov r8, r2
	lsls r0, 24
	asrs r6, r0, 24
	adds r5, r1, 0
	cmp r6, 0
	beq _0819918A
	movs r7, 0x2
	ldrsb r7, [r5, r7]
	ldrb r4, [r5, 0x9]
	adds r0, r7, 0
	adds r1, r4, 0
	bl __modsi3
	adds r0, r6
	cmp r0, 0
	bge _08199174
	adds r0, r4, 0
	adds r0, 0xFF
	add r0, r8
	b _08199188
	.pool
_08199174:
	cmp r0, r4
	blt _08199184
	adds r0, r7, 0
	adds r1, r4, 0
	bl __divsi3
	muls r0, r4
	b _08199188
_08199184:
	mov r1, r8
	adds r0, r6, r1
_08199188:
	strb r0, [r5, 0x2]
_0819918A:
	mov r2, r9
	lsls r0, r2, 24
	asrs r6, r0, 24
	cmp r6, 0
	beq _081991CE
	movs r0, 0x2
	ldrsb r0, [r5, r0]
	ldrb r4, [r5, 0x9]
	adds r1, r4, 0
	bl __divsi3
	adds r1, r0, r6
	cmp r1, 0
	bge _081991B2
	ldrb r0, [r5, 0xA]
	subs r0, 0x1
	muls r0, r4
	ldrb r1, [r5, 0x2]
	adds r0, r1
	b _081991CC
_081991B2:
	ldrb r0, [r5, 0xA]
	cmp r1, r0
	blt _081991C4
	subs r0, 0x1
	adds r1, r4, 0
	muls r1, r0
	ldrb r0, [r5, 0x2]
	subs r0, r1
	b _081991CC
_081991C4:
	adds r0, r4, 0
	muls r0, r6
	ldrb r2, [r5, 0x2]
	adds r0, r2
_081991CC:
	strb r0, [r5, 0x2]
_081991CE:
	movs r1, 0x2
	ldrsb r1, [r5, r1]
	movs r0, 0x4
	ldrsb r0, [r5, r0]
	cmp r1, r0
	bgt _081991E4
	ldrb r1, [r5, 0x2]
	mov r0, r8
	bl sub_8199060
	b _081991E8
_081991E4:
	mov r0, r8
	strb r0, [r5, 0x2]
_081991E8:
	ldrb r0, [r5, 0x2]
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_8199134

	thumb_func_start sub_81991F8
sub_81991F8: @ 81991F8
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	ldr r1, =gUnknown_0203CD90
	ldrb r7, [r1, 0x2]
	lsls r0, 24
	asrs r4, r0, 24
	adds r5, r1, 0
	cmp r4, 0
	beq _0819922C
	movs r0, 0x2
	ldrsb r0, [r5, r0]
	ldrb r6, [r5, 0x9]
	adds r1, r6, 0
	bl __modsi3
	adds r0, r4
	cmp r0, 0
	blt _0819922C
	cmp r0, r6
	bge _0819922C
	adds r0, r4, r7
	strb r0, [r5, 0x2]
_0819922C:
	mov r1, r8
	lsls r0, r1, 24
	asrs r4, r0, 24
	cmp r4, 0
	beq _08199258
	movs r0, 0x2
	ldrsb r0, [r5, r0]
	ldrb r6, [r5, 0x9]
	adds r1, r6, 0
	bl __divsi3
	adds r0, r4
	cmp r0, 0
	blt _08199258
	ldrb r1, [r5, 0xA]
	cmp r0, r1
	bge _08199258
	adds r0, r6, 0
	muls r0, r4
	ldrb r1, [r5, 0x2]
	adds r0, r1
	strb r0, [r5, 0x2]
_08199258:
	movs r1, 0x2
	ldrsb r1, [r5, r1]
	movs r0, 0x4
	ldrsb r0, [r5, r0]
	cmp r1, r0
	bgt _08199274
	ldrb r1, [r5, 0x2]
	adds r0, r7, 0
	bl sub_8199060
	b _08199276
	.pool
_08199274:
	strb r7, [r5, 0x2]
_08199276:
	ldrb r0, [r5, 0x2]
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_81991F8

	thumb_func_start sub_8199284
sub_8199284: @ 8199284
	push {r4,lr}
	ldr r4, =gMain
	ldrh r1, [r4, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081992AC
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gUnknown_0203CD90
	ldrb r0, [r0, 0x2]
	lsls r0, 24
	asrs r0, 24
	b _0819932C
	.pool
_081992AC:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081992BA
	movs r0, 0x1
	negs r0, r0
	b _0819932C
_081992BA:
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _081992D0
	movs r0, 0x5
	bl PlaySE
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	b _08199324
_081992D0:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _081992E4
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	movs r1, 0x1
	b _08199324
_081992E4:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	bne _081992F8
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08199304
_081992F8:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	b _08199322
_08199304:
	ldrh r1, [r4, 0x2E]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _0819931A
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _08199328
_0819931A:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
_08199322:
	movs r1, 0
_08199324:
	bl sub_8199134
_08199328:
	movs r0, 0x2
	negs r0, r0
_0819932C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_8199284

	thumb_func_start sub_8199334
sub_8199334: @ 8199334
	push {r4-r6,lr}
	ldr r5, =gUnknown_0203CD90
	ldrb r4, [r5, 0x2]
	ldr r6, =gMain
	ldrh r1, [r6, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _0819935C
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x2
	ldrsb r0, [r5, r0]
	b _081993D2
	.pool
_0819935C:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0819936A
	movs r0, 0x1
	negs r0, r0
	b _081993D2
_0819936A:
	movs r0, 0x40
	ands r0, r1
	cmp r0, 0
	beq _0819937A
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	b _081993BC
_0819937A:
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _08199388
	movs r0, 0
	movs r1, 0x1
	b _081993BC
_08199388:
	movs r0, 0x20
	ands r0, r1
	cmp r0, 0
	bne _0819939C
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081993A2
_0819939C:
	movs r0, 0x1
	negs r0, r0
	b _081993BA
_081993A2:
	ldrh r1, [r6, 0x2E]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	bne _081993B8
	bl GetLRKeysState
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _081993CE
_081993B8:
	movs r0, 0x1
_081993BA:
	movs r1, 0
_081993BC:
	bl sub_81991F8
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	beq _081993CE
	movs r0, 0x5
	bl PlaySE
_081993CE:
	movs r0, 0x2
	negs r0, r0
_081993D2:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8199334

	thumb_func_start sub_81993D8
sub_81993D8: @ 81993D8
	push {r4,r5,lr}
	ldr r4, =gMain
	ldrh r1, [r4, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08199400
	movs r0, 0x5
	bl PlaySE
	ldr r0, =gUnknown_0203CD90
	ldrb r0, [r0, 0x2]
	lsls r0, 24
	asrs r0, 24
	b _0819947C
	.pool
_08199400:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _0819940E
	movs r0, 0x1
	negs r0, r0
	b _0819947C
_0819940E:
	ldrh r0, [r4, 0x30]
	movs r5, 0xF0
	adds r1, r5, 0
	ands r1, r0
	cmp r1, 0x40
	bne _08199428
	movs r0, 0x5
	bl PlaySE
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	b _08199474
_08199428:
	cmp r1, 0x80
	bne _08199438
	movs r0, 0x5
	bl PlaySE
	movs r0, 0
	movs r1, 0x1
	b _08199474
_08199438:
	cmp r1, 0x20
	beq _08199448
	bl sub_812210C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _08199454
_08199448:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
	negs r0, r0
	b _08199472
_08199454:
	ldrh r1, [r4, 0x30]
	adds r0, r5, 0
	ands r0, r1
	cmp r0, 0x10
	beq _0819946A
	bl sub_812210C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _08199478
_0819946A:
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x1
_08199472:
	movs r1, 0
_08199474:
	bl sub_8199134
_08199478:
	movs r0, 0x2
	negs r0, r0
_0819947C:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_81993D8

	thumb_func_start sub_8199484
sub_8199484: @ 8199484
	push {r4-r6,lr}
	ldr r6, =gUnknown_0203CD90
	ldrb r4, [r6, 0x2]
	ldr r5, =gMain
	ldrh r1, [r5, 0x2E]
	movs r0, 0x1
	ands r0, r1
	cmp r0, 0
	beq _081994AC
	movs r0, 0x5
	bl PlaySE
	movs r0, 0x2
	ldrsb r0, [r6, r0]
	b _0819951E
	.pool
_081994AC:
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	beq _081994BA
	movs r0, 0x1
	negs r0, r0
	b _0819951E
_081994BA:
	ldrh r0, [r5, 0x30]
	movs r6, 0xF0
	adds r1, r6, 0
	ands r1, r0
	cmp r1, 0x40
	bne _081994CE
	movs r1, 0x1
	negs r1, r1
	movs r0, 0
	b _08199508
_081994CE:
	cmp r1, 0x80
	bne _081994D8
	movs r0, 0
	movs r1, 0x1
	b _08199508
_081994D8:
	cmp r1, 0x20
	beq _081994E8
	bl sub_812210C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _081994EE
_081994E8:
	movs r0, 0x1
	negs r0, r0
	b _08199506
_081994EE:
	ldrh r1, [r5, 0x30]
	adds r0, r6, 0
	ands r0, r1
	cmp r0, 0x10
	beq _08199504
	bl sub_812210C
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x2
	bne _0819951A
_08199504:
	movs r0, 0x1
_08199506:
	movs r1, 0
_08199508:
	bl sub_81991F8
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	beq _0819951A
	movs r0, 0x5
	bl PlaySE
_0819951A:
	movs r0, 0x2
	negs r0, r0
_0819951E:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8199484

	thumb_func_start InitMenuInUpperLeftCorner
@ int InitMenuInUpperLeftCorner(s8 windowId, s8 numItems, u8 initialCursorPos, bool doNotPlaySoundWhenAPressed)
InitMenuInUpperLeftCorner: @ 8199524
	push {r4-r6,lr}
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r5, r2, 24
	ldr r4, =gUnknown_0203CD90
	movs r6, 0
	strb r6, [r4]
	movs r2, 0x1
	strb r2, [r4, 0x1]
	strb r6, [r4, 0x3]
	subs r1, 0x1
	strb r1, [r4, 0x4]
	strb r0, [r4, 0x5]
	strb r2, [r4, 0x6]
	movs r0, 0x10
	strb r0, [r4, 0x8]
	strb r3, [r4, 0xB]
	cmp r5, 0
	blt _08199554
	movs r0, 0x4
	ldrsb r0, [r4, r0]
	cmp r5, r0
	ble _0819955C
_08199554:
	strb r6, [r4, 0x2]
	b _0819955E
	.pool
_0819955C:
	strb r5, [r4, 0x2]
_0819955E:
	movs r0, 0
	bl MoveMenuCursor
	lsls r0, 24
	lsrs r0, 24
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end InitMenuInUpperLeftCorner

	thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 8199570
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r2, 24
	movs r3, 0
	bl InitMenuInUpperLeftCorner
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed

	thumb_func_start PrintMenuTable
PrintMenuTable: @ 819958C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, 24
	lsrs r7, r1, 24
	movs r5, 0
	cmp r5, r7
	bcs _081995D0
	movs r6, 0x80
	lsls r6, 17
	adds r4, r2, 0
_081995AA:
	ldr r2, [r4]
	lsrs r0, r6, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	mov r0, r8
	movs r1, 0x1
	movs r3, 0x8
	bl PrintTextOnWindow
	movs r0, 0x80
	lsls r0, 21
	adds r6, r0
	adds r4, 0x8
	adds r5, 0x1
	cmp r5, r7
	bcc _081995AA
_081995D0:
	mov r0, r8
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end PrintMenuTable

	thumb_func_start sub_81995E4
sub_81995E4: @ 81995E4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x10
	mov r9, r2
	mov r8, r3
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 24
	lsrs r7, r1, 24
	mov r0, sp
	movs r1, 0
	mov r10, r1
	strb r6, [r0, 0x4]
	mov r1, sp
	movs r0, 0x1
	strb r0, [r1, 0x5]
	movs r1, 0x5
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xC]
	movs r5, 0xF
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xC]
	movs r0, 0x1
	movs r1, 0x6
	bl GetFontAttribute
	mov r3, sp
	adds r1, r5, 0
	ands r1, r0
	ldrb r2, [r3, 0xD]
	movs r4, 0x10
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0xD]
	movs r0, 0x1
	movs r1, 0x7
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xD]
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xD]
	movs r0, 0x1
	movs r1, 0x4
	bl GetFontAttribute
	mov r1, sp
	ands r5, r0
	ldrb r0, [r1, 0xC]
	ands r4, r0
	orrs r4, r5
	strb r4, [r1, 0xC]
	mov r0, sp
	mov r1, r10
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	movs r1, 0x8
	strb r1, [r0, 0x6]
	strb r1, [r0, 0x8]
	movs r4, 0
	cmp r4, r7
	bcs _081996A6
	mov r5, sp
_0819967C:
	mov r1, r8
	adds r0, r1, r4
	ldrb r0, [r0]
	lsls r0, 3
	add r0, r9
	ldr r0, [r0]
	str r0, [sp]
	lsls r0, r4, 4
	adds r0, 0x1
	strb r0, [r5, 0x7]
	strb r0, [r5, 0x9]
	mov r0, sp
	movs r1, 0xFF
	movs r2, 0
	bl AddTextPrinter
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r7
	bcc _0819967C
_081996A6:
	adds r0, r6, 0
	movs r1, 0x2
	bl CopyWindowToVram
	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_81995E4

	thumb_func_start CreateYesNoMenu
@ void CreateYesNoMenu(struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos)
CreateYesNoMenu: @ 81996C0
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x10
	adds r4, r1, 0
	adds r5, r2, 0
	adds r6, r3, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 24
	lsrs r5, 24
	lsls r6, 24
	lsrs r6, 24
	ldr r1, =gUnknown_0203CD9F
	mov r8, r1
	bl AddWindow
	mov r2, r8
	strb r0, [r2]
	ldrb r0, [r2]
	movs r1, 0x1
	adds r2, r4, 0
	adds r3, r5, 0
	bl SetWindowBorderStyle
	ldr r0, =gText_YesNo
	str r0, [sp]
	mov r1, sp
	mov r2, r8
	ldrb r0, [r2]
	movs r2, 0
	mov r9, r2
	strb r0, [r1, 0x4]
	mov r0, sp
	movs r2, 0x1
	strb r2, [r0, 0x5]
	movs r0, 0x8
	strb r0, [r1, 0x6]
	mov r0, sp
	strb r2, [r0, 0x7]
	ldrb r0, [r0, 0x6]
	strb r0, [r1, 0x8]
	mov r0, sp
	ldrb r0, [r0, 0x7]
	strb r0, [r1, 0x9]
	movs r0, 0x1
	movs r1, 0x5
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xC]
	movs r5, 0xF
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xC]
	movs r0, 0x1
	movs r1, 0x6
	bl GetFontAttribute
	mov r3, sp
	adds r1, r5, 0
	ands r1, r0
	ldrb r2, [r3, 0xD]
	movs r4, 0x10
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0xD]
	movs r0, 0x1
	movs r1, 0x7
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xD]
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xD]
	movs r0, 0x1
	movs r1, 0x4
	bl GetFontAttribute
	mov r1, sp
	ands r5, r0
	ldrb r0, [r1, 0xC]
	ands r4, r0
	orrs r4, r5
	strb r4, [r1, 0xC]
	mov r0, sp
	mov r1, r9
	strb r1, [r0, 0xA]
	strb r1, [r0, 0xB]
	movs r1, 0xFF
	movs r2, 0
	bl AddTextPrinter
	mov r2, r8
	ldrb r0, [r2]
	movs r1, 0x2
	adds r2, r6, 0
	bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end CreateYesNoMenu

	thumb_func_start sub_81997AC
sub_81997AC: @ 81997AC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x14
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0xC]
	lsls r2, 24
	lsrs r6, r2, 24
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x10]
	movs r7, 0
	cmp r7, r3
	bcs _08199824
_081997D4:
	movs r4, 0
	adds r0, r7, 0x1
	mov r9, r0
	cmp r4, r6
	bcs _0819981C
	lsls r0, r7, 4
	adds r0, 0x1
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	movs r5, 0x80
	lsls r5, 20
_081997EC:
	adds r0, r7, 0
	muls r0, r6
	adds r0, r4
	lsls r0, 3
	ldr r1, [sp, 0x34]
	adds r0, r1
	ldr r2, [r0]
	lsrs r3, r5, 24
	mov r0, r8
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	mov r0, r10
	movs r1, 0x1
	bl PrintTextOnWindow
	ldr r1, [sp, 0xC]
	lsls r0, r1, 24
	adds r5, r0
	adds r4, 0x1
	cmp r4, r6
	bcc _081997EC
_0819981C:
	mov r7, r9
	ldr r4, [sp, 0x10]
	cmp r7, r4
	bcc _081997D4
_08199824:
	mov r0, r10
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x14
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_81997AC

	thumb_func_start sub_819983C
sub_819983C: @ 819983C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x10]
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp, 0x14]
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	lsls r3, 24
	lsrs r3, 24
	mov r10, r3
	mov r0, sp
	movs r6, 0
	ldrb r1, [r0, 0x10]
	strb r1, [r0, 0x4]
	mov r1, sp
	movs r0, 0x1
	strb r0, [r1, 0x5]
	movs r1, 0x5
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xC]
	movs r5, 0xF
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xC]
	movs r0, 0x1
	movs r1, 0x6
	bl GetFontAttribute
	mov r3, sp
	adds r1, r5, 0
	ands r1, r0
	ldrb r2, [r3, 0xD]
	movs r4, 0x10
	negs r4, r4
	adds r0, r4, 0
	ands r0, r2
	orrs r0, r1
	strb r0, [r3, 0xD]
	movs r0, 0x1
	movs r1, 0x7
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xD]
	adds r1, r5, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xD]
	movs r0, 0x1
	movs r1, 0x4
	bl GetFontAttribute
	mov r1, sp
	ands r5, r0
	ldrb r0, [r1, 0xC]
	ands r4, r0
	orrs r4, r5
	strb r4, [r1, 0xC]
	mov r0, sp
	strb r6, [r0, 0xA]
	strb r6, [r0, 0xB]
	movs r7, 0
	cmp r7, r10
	bcs _0819992A
_081998D6:
	movs r5, 0
	adds r2, r7, 0x1
	mov r9, r2
	cmp r5, r8
	bcs _08199920
	mov r4, sp
	lsls r0, r7, 4
	adds r6, r0, 0x1
_081998E6:
	mov r0, r8
	muls r0, r7
	adds r0, r5
	ldr r1, [sp, 0x3C]
	adds r0, r1, r0
	ldrb r0, [r0]
	lsls r0, 3
	ldr r2, [sp, 0x38]
	adds r0, r2
	ldr r0, [r0]
	str r0, [sp]
	ldr r1, [sp, 0x14]
	adds r0, r1, 0
	muls r0, r5
	adds r0, 0x8
	strb r0, [r4, 0x6]
	strb r6, [r4, 0x7]
	strb r0, [r4, 0x8]
	strb r6, [r4, 0x9]
	mov r0, sp
	movs r1, 0xFF
	movs r2, 0
	bl AddTextPrinter
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r8
	bcc _081998E6
_08199920:
	mov r2, r9
	lsls r0, r2, 24
	lsrs r7, r0, 24
	cmp r7, r10
	bcc _081998D6
_0819992A:
	ldr r0, [sp, 0x10]
	movs r1, 0x2
	bl CopyWindowToVram
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_819983C

	thumb_func_start sub_8199944
sub_8199944: @ 8199944
	push {r4-r7,lr}
	ldr r4, [sp, 0x14]
	lsls r2, 24
	lsrs r2, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r7, r4, 24
	ldr r6, =gUnknown_0203CD90
	movs r4, 0
	mov r12, r4
	mov r4, r12
	strb r4, [r6]
	movs r5, 0x1
	strb r5, [r6, 0x1]
	strb r4, [r6, 0x3]
	adds r4, r2, 0
	muls r4, r3
	subs r4, 0x1
	strb r4, [r6, 0x4]
	strb r0, [r6, 0x5]
	strb r5, [r6, 0x6]
	strb r1, [r6, 0x7]
	movs r0, 0x10
	strb r0, [r6, 0x8]
	strb r2, [r6, 0x9]
	strb r3, [r6, 0xA]
	cmp r7, 0
	blt _08199986
	movs r0, 0x4
	ldrsb r0, [r6, r0]
	cmp r7, r0
	ble _08199990
_08199986:
	mov r0, r12
	strb r0, [r6, 0x2]
	b _08199992
	.pool
_08199990:
	strb r7, [r6, 0x2]
_08199992:
	movs r0, 0
	movs r1, 0
	bl sub_8199134
	ldr r0, =gUnknown_0203CD90
	ldrb r0, [r0, 0x2]
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8199944

	thumb_func_start clear_scheduled_bg_copies_to_vram
@ void clear_scheduled_bg_copies_to_vram()
clear_scheduled_bg_copies_to_vram: @ 81999A8
	push {lr}
	ldr r0, =gUnknown_0203CDA4
	movs r1, 0
	movs r2, 0x4
	bl memset
	pop {r0}
	bx r0
	.pool
	thumb_func_end clear_scheduled_bg_copies_to_vram

	thumb_func_start schedule_bg_copy_tilemap_to_vram
@ void schedule_bg_copy_tilemap_to_vram(u8 bg_id)
schedule_bg_copy_tilemap_to_vram: @ 81999BC
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gUnknown_0203CDA4
	adds r0, r1
	movs r1, 0x1
	strb r1, [r0]
	bx lr
	.pool
	thumb_func_end schedule_bg_copy_tilemap_to_vram

	thumb_func_start do_scheduled_bg_tilemap_copies_to_vram
@ void do_scheduled_bg_tilemap_copies_to_vram()
do_scheduled_bg_tilemap_copies_to_vram: @ 81999D0
	push {r4,lr}
	ldr r4, =gUnknown_0203CDA4
	ldrb r0, [r4]
	cmp r0, 0x1
	bne _081999E4
	movs r0, 0
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	strb r0, [r4]
_081999E4:
	ldrb r0, [r4, 0x1]
	cmp r0, 0x1
	bne _081999F4
	movs r0, 0x1
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	strb r0, [r4, 0x1]
_081999F4:
	ldrb r0, [r4, 0x2]
	cmp r0, 0x1
	bne _08199A04
	movs r0, 0x2
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	strb r0, [r4, 0x2]
_08199A04:
	ldrb r0, [r4, 0x3]
	cmp r0, 0x1
	bne _08199A14
	movs r0, 0x3
	bl CopyBgTilemapBufferToVram
	movs r0, 0
	strb r0, [r4, 0x3]
_08199A14:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end do_scheduled_bg_tilemap_copies_to_vram

	thumb_func_start reset_temp_tile_data_buffers
@ void reset_temp_tile_data_buffers()
reset_temp_tile_data_buffers: @ 8199A20
	push {lr}
	ldr r3, =gUnknown_0203CDA8
	ldr r1, =gUnknown_0203CDAC
	movs r2, 0
	adds r0, r1, 0
	adds r0, 0x7C
_08199A2C:
	str r2, [r0]
	subs r0, 0x4
	cmp r0, r1
	bge _08199A2C
	movs r0, 0
	strh r0, [r3]
	pop {r0}
	bx r0
	.pool
	thumb_func_end reset_temp_tile_data_buffers

	thumb_func_start free_temp_tile_data_buffers_if_possible
free_temp_tile_data_buffers_if_possible: @ 8199A44
	push {r4-r6,lr}
	bl IsDma3ManagerBusyWithBgCopy
	lsls r0, 24
	cmp r0, 0
	bne _08199A88
	ldr r1, =gUnknown_0203CDA8
	ldrh r0, [r1]
	cmp r0, 0
	beq _08199A7C
	movs r4, 0
	ldrh r1, [r1]
	cmp r4, r1
	bge _08199A76
	ldr r5, =gUnknown_0203CDAC
	movs r6, 0
_08199A64:
	ldr r0, [r5]
	bl Free
	stm r5!, {r6}
	adds r4, 0x1
	ldr r0, =gUnknown_0203CDA8
	ldrh r0, [r0]
	cmp r4, r0
	blt _08199A64
_08199A76:
	ldr r1, =gUnknown_0203CDA8
	movs r0, 0
	strh r0, [r1]
_08199A7C:
	movs r0, 0
	b _08199A8A
	.pool
_08199A88:
	movs r0, 0x1
_08199A8A:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end free_temp_tile_data_buffers_if_possible

	thumb_func_start decompress_and_copy_tile_data_to_vram
@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, int src, int size, u16 offset, u8 mode)
decompress_and_copy_tile_data_to_vram: @ 8199A90
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	adds r4, r1, 0
	adds r5, r2, 0
	ldr r1, [sp, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r3, 16
	lsrs r3, 16
	mov r9, r3
	lsls r1, 24
	lsrs r7, r1, 24
	ldr r6, =gUnknown_0203CDA8
	ldrh r0, [r6]
	cmp r0, 0x1F
	bhi _08199AF8
	adds r0, r4, 0
	add r1, sp, 0x4
	bl malloc_and_decompress
	adds r4, r0, 0
	cmp r5, 0
	bne _08199AC8
	ldr r5, [sp, 0x4]
_08199AC8:
	cmp r4, 0
	beq _08199AEC
	lsls r2, r5, 16
	lsrs r2, 16
	str r7, [sp]
	mov r0, r8
	adds r1, r4, 0
	mov r3, r9
	bl copy_decompressed_tile_data_to_vram
	ldr r2, =gUnknown_0203CDAC
	ldrh r0, [r6]
	adds r1, r0, 0x1
	strh r1, [r6]
	lsls r0, 16
	lsrs r0, 14
	adds r0, r2
	str r4, [r0]
_08199AEC:
	adds r0, r4, 0
	b _08199AFA
	.pool
_08199AF8:
	movs r0, 0
_08199AFA:
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end decompress_and_copy_tile_data_to_vram

	thumb_func_start copy_decompressed_tile_data_to_vram_autofree
@ void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, int src, u16 size, u16 offset, u8 mode)
copy_decompressed_tile_data_to_vram_autofree: @ 8199B08
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x8
	adds r5, r2, 0
	ldr r2, [sp, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r3, 16
	lsrs r3, 16
	mov r9, r3
	lsls r2, 24
	lsrs r7, r2, 24
	adds r0, r1, 0
	add r1, sp, 0x4
	bl malloc_and_decompress
	adds r6, r0, 0
	cmp r5, 0
	bne _08199B36
	ldr r5, [sp, 0x4]
_08199B36:
	cmp r6, 0
	beq _08199B6E
	ldr r0, =task_free_buf_after_copying_tile_data_to_vram
	movs r1, 0
	bl CreateTask
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r2, r5, 16
	lsrs r2, 16
	str r7, [sp]
	mov r0, r8
	adds r1, r6, 0
	mov r3, r9
	bl copy_decompressed_tile_data_to_vram
	ldr r2, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r2
	strh r0, [r1, 0x8]
	adds r0, r4, 0
	movs r1, 0x1
	adds r2, r6, 0
	bl SetWordTaskArg
_08199B6E:
	add sp, 0x8
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end copy_decompressed_tile_data_to_vram_autofree

	thumb_func_start task_free_buf_after_copying_tile_data_to_vram
@ void task_free_buf_after_copying_tile_data_to_vram(int task_id)
task_free_buf_after_copying_tile_data_to_vram: @ 8199B84
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	movs r1, 0x8
	ldrsh r0, [r0, r1]
	bl CheckForSpaceForDma3Request
	lsls r0, 16
	cmp r0, 0
	bne _08199BB4
	adds r0, r4, 0
	movs r1, 0x1
	bl GetWordTaskArg
	bl Free
	adds r0, r4, 0
	bl DestroyTask
_08199BB4:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_free_buf_after_copying_tile_data_to_vram

	thumb_func_start malloc_and_decompress
@ void *malloc_and_decompress(void *src, int *size)
malloc_and_decompress: @ 8199BC0
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrb r0, [r5, 0x1]
	strb r0, [r1]
	ldrb r0, [r5, 0x2]
	strb r0, [r1, 0x1]
	ldrb r0, [r5, 0x3]
	strb r0, [r1, 0x2]
	movs r0, 0
	strb r0, [r1, 0x3]
	ldr r0, [r1]
	bl Alloc
	adds r4, r0, 0
	cmp r4, 0
	beq _08199BE8
	adds r0, r5, 0
	adds r1, r4, 0
	bl LZ77UnCompWram
_08199BE8:
	adds r0, r4, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end malloc_and_decompress

	thumb_func_start copy_decompressed_tile_data_to_vram
@ s16 copy_decompressed_tile_data_to_vram(u8 bg_id, int src, u16 size, u16 offset, u8 mode)
copy_decompressed_tile_data_to_vram: @ 8199BF0
	push {r4,lr}
	adds r4, r1, 0
	ldr r1, [sp, 0x8]
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 16
	lsrs r2, 16
	lsls r3, 16
	lsrs r3, 16
	lsls r1, 24
	lsrs r1, 24
	cmp r1, 0
	beq _08199C18
	cmp r1, 0x1
	beq _08199C20
	ldr r0, =0x0000ffff
	b _08199C2A
	.pool
_08199C18:
	adds r1, r4, 0
	bl LoadBgTiles
	b _08199C26
_08199C20:
	adds r1, r4, 0
	bl LoadBgTilemap
_08199C26:
	lsls r0, 16
	lsrs r0, 16
_08199C2A:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end copy_decompressed_tile_data_to_vram

	thumb_func_start sub_8199C30
sub_8199C30: @ 8199C30
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	adds r5, r2, 0
	ldr r4, [sp, 0x28]
	ldr r2, [sp, 0x2C]
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsrs r1, 24
	str r1, [sp]
	lsls r5, 24
	lsrs r5, 24
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp, 0x4]
	lsls r4, 24
	lsrs r4, 24
	lsls r2, 24
	lsrs r2, 24
	mov r10, r2
	bl GetBgTilemapBuffer
	mov r8, r0
	adds r0, r5, r4
	cmp r5, r0
	bge _08199CA8
	mov r9, r0
_08199C6E:
	ldr r3, [sp]
	ldr r1, [sp, 0x4]
	adds r0, r3, r1
	adds r7, r5, 0x1
	cmp r3, r0
	bge _08199CA0
	lsls r6, r5, 5
	ldr r1, =0x00000fff
	mov r12, r1
	mov r1, r10
	lsls r5, r1, 12
	adds r4, r0, 0
_08199C86:
	adds r1, r6, r3
	lsls r1, 1
	add r1, r8
	ldrh r2, [r1]
	mov r0, r12
	ands r0, r2
	orrs r0, r5
	strh r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, r4
	blt _08199C86
_08199CA0:
	lsls r0, r7, 24
	lsrs r5, r0, 24
	cmp r5, r9
	blt _08199C6E
_08199CA8:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8199C30

	thumb_func_start sub_8199CBC
sub_8199CBC: @ 8199CBC
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	mov r10, r1
	ldr r1, [sp, 0x24]
	ldr r4, [sp, 0x28]
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	mov r9, r2
	lsls r3, 24
	lsrs r3, 24
	str r3, [sp]
	lsls r1, 24
	lsrs r5, r1, 24
	lsls r4, 24
	lsrs r4, 24
	mov r8, r4
	bl GetBgTilemapBuffer
	adds r7, r0, 0
	movs r0, 0
	cmp r0, r8
	bcs _08199D2A
_08199CF4:
	movs r2, 0
	adds r6, r0, 0x1
	cmp r2, r5
	bcs _08199D22
	adds r4, r0, 0
	muls r4, r5
	ldr r1, [sp]
	adds r0, r1
	lsls r3, r0, 5
_08199D06:
	adds r1, r4, r2
	lsls r1, 1
	add r1, r10
	adds r0, r3, r2
	add r0, r9
	lsls r0, 1
	adds r0, r7
	ldrh r0, [r0]
	strh r0, [r1]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, r5
	bcc _08199D06
_08199D22:
	lsls r0, r6, 24
	lsrs r0, 24
	cmp r0, r8
	bcc _08199CF4
_08199D2A:
	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_8199CBC

	thumb_func_start sub_8199D3C
sub_8199D3C: @ 8199D3C
	push {r4-r7,lr}
	adds r6, r0, 0
	adds r5, r1, 0
	ldr r0, [sp, 0x14]
	adds r4, r2, 0
	muls r4, r3
	cmp r0, 0x1
	bne _08199D64
	adds r3, r6, 0
	movs r2, 0
	cmp r2, r4
	bge _08199D8C
_08199D54:
	adds r1, r3, r2
	ldrb r0, [r1]
	adds r0, r5
	strb r0, [r1]
	adds r2, 0x1
	cmp r2, r4
	blt _08199D54
	b _08199D8C
_08199D64:
	cmp r4, 0
	ble _08199D8C
	movs r0, 0xFC
	lsls r0, 8
	mov r12, r0
	ldr r0, =0x000003ff
	adds r7, r0, 0
	adds r3, r6, 0
	adds r2, r4, 0
_08199D76:
	ldrh r0, [r3]
	mov r1, r12
	ands r1, r0
	adds r0, r5
	ands r0, r7
	orrs r1, r0
	strh r1, [r3]
	adds r3, 0x2
	subs r2, 0x1
	cmp r2, 0
	bne _08199D76
_08199D8C:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8199D3C

	thumb_func_start sub_8199D98
sub_8199D98: @ 8199D98
	push {lr}
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgX
	movs r0, 0
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x1
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x2
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	movs r0, 0x3
	movs r1, 0
	movs r2, 0
	bl ChangeBgY
	pop {r0}
	bx r0
	thumb_func_end sub_8199D98

	thumb_func_start sub_8199DF0
sub_8199DF0: @ 8199DF0
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	mov r8, r2
	mov r9, r3
	lsls r1, 24
	lsrs r6, r1, 24
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r5, 0
	movs r1, 0x4
	bl GetBgAttribute
	lsls r0, 16
	movs r7, 0x40
	cmp r0, 0
	bne _08199E16
	movs r7, 0x20
_08199E16:
	adds r0, r5, 0
	movs r1, 0x1
	bl GetBgAttribute
	adds r4, r0, 0
	adds r0, r5, 0
	movs r1, 0xA
	bl GetBgAttribute
	lsls r4, 16
	lsrs r4, 2
	lsls r0, 16
	lsrs r0, 16
	add r0, r8
	muls r0, r7
	adds r4, r0
	lsls r0, r6, 24
	lsls r1, r6, 16
	orrs r0, r1
	lsls r1, r6, 8
	orrs r0, r1
	orrs r0, r6
	movs r1, 0xC0
	lsls r1, 19
	adds r4, r1
	mov r2, r9
	muls r2, r7
	lsls r2, 16
	lsrs r2, 16
	adds r1, r4, 0
	movs r3, 0x1
	bl RequestDma3Fill
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8199DF0

	thumb_func_start box_print
box_print: @ 8199E64
	push {r4-r6,lr}
	sub sp, 0x10
	adds r4, r1, 0
	ldr r6, [sp, 0x20]
	ldr r5, [sp, 0x24]
	ldr r1, [sp, 0x28]
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	str r1, [sp]
	mov r1, sp
	strb r0, [r1, 0x4]
	mov r0, sp
	strb r4, [r0, 0x5]
	strb r2, [r0, 0x6]
	strb r3, [r0, 0x7]
	ldrb r0, [r0, 0x6]
	strb r0, [r1, 0x8]
	mov r0, sp
	ldrb r0, [r0, 0x7]
	strb r0, [r1, 0x9]
	adds r0, r4, 0
	movs r1, 0x2
	bl GetFontAttribute
	mov r1, sp
	strb r0, [r1, 0xA]
	adds r0, r4, 0
	movs r1, 0x3
	bl GetFontAttribute
	mov r1, sp
	strb r0, [r1, 0xB]
	mov r3, sp
	ldrb r2, [r3, 0xC]
	movs r1, 0x10
	negs r1, r1
	adds r0, r1, 0
	ands r0, r2
	strb r0, [r3, 0xC]
	mov r2, sp
	ldrb r0, [r6, 0x1]
	lsls r0, 4
	movs r4, 0xF
	strb r0, [r2, 0xC]
	ldrb r2, [r6]
	adds r0, r4, 0
	ands r0, r2
	ldrb r2, [r3, 0xD]
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xD]
	mov r2, sp
	ldrb r0, [r6, 0x2]
	lsls r0, 4
	ands r1, r4
	orrs r1, r0
	strb r1, [r2, 0xD]
	mov r0, sp
	adds r1, r5, 0
	movs r2, 0
	bl AddTextPrinter
	add sp, 0x10
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end box_print

	thumb_func_start AddTextPrinterParametrized2
@ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, u8 speed, u8 *str)
AddTextPrinterParametrized2: @ 8199EEC
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0x10
	adds r5, r1, 0
	ldr r1, [sp, 0x28]
	mov r8, r1
	ldr r1, [sp, 0x2C]
	mov r9, r1
	ldr r6, [sp, 0x30]
	ldr r1, [sp, 0x34]
	ldr r4, [sp, 0x38]
	str r4, [sp]
	mov r4, sp
	strb r0, [r4, 0x4]
	mov r0, sp
	strb r5, [r0, 0x5]
	strb r2, [r0, 0x6]
	strb r3, [r0, 0x7]
	mov r2, sp
	ldrb r0, [r0, 0x6]
	strb r0, [r2, 0x8]
	mov r0, sp
	ldrb r0, [r0, 0x7]
	strb r0, [r2, 0x9]
	mov r0, sp
	mov r2, r8
	strb r2, [r0, 0xA]
	mov r2, r9
	strb r2, [r0, 0xB]
	ldrb r3, [r4, 0xC]
	movs r2, 0x10
	negs r2, r2
	adds r0, r2, 0
	ands r0, r3
	strb r0, [r4, 0xC]
	mov r3, sp
	ldrb r0, [r6, 0x1]
	lsls r0, 4
	movs r5, 0xF
	strb r0, [r3, 0xC]
	ldrb r3, [r6]
	adds r0, r5, 0
	ands r0, r3
	ldrb r3, [r4, 0xD]
	ands r2, r3
	orrs r2, r0
	strb r2, [r4, 0xD]
	mov r3, sp
	ldrb r0, [r6, 0x2]
	lsls r0, 4
	ands r2, r5
	orrs r2, r0
	strb r2, [r3, 0xD]
	lsls r1, 24
	lsrs r1, 24
	mov r0, sp
	movs r2, 0
	bl AddTextPrinter
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end AddTextPrinterParametrized2

	thumb_func_start sub_8199F74
sub_8199F74: @ 8199F74
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	adds r6, r1, 0
	ldr r4, [sp, 0x2C]
	ldr r1, [sp, 0x30]
	mov r8, r1
	ldr r7, [sp, 0x34]
	ldr r5, [sp, 0x38]
	ldr r1, [sp, 0x3C]
	mov r9, r1
	lsls r6, 24
	lsrs r6, 24
	lsls r3, 24
	lsrs r3, 24
	lsls r4, 24
	lsrs r4, 24
	mov r1, r8
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	str r2, [sp]
	mov r1, sp
	strb r0, [r1, 0x4]
	mov r0, sp
	strb r6, [r0, 0x5]
	strb r3, [r0, 0x6]
	strb r4, [r0, 0x7]
	strb r3, [r0, 0x8]
	strb r4, [r0, 0x9]
	strb r5, [r0, 0xA]
	mov r1, r9
	strb r1, [r0, 0xB]
	mov r2, sp
	ldrb r1, [r2, 0xC]
	movs r5, 0x10
	negs r5, r5
	adds r0, r5, 0
	ands r0, r1
	strb r0, [r2, 0xC]
	adds r0, r6, 0
	movs r1, 0x5
	bl GetFontAttribute
	mov r3, sp
	lsls r0, 4
	ldrb r2, [r3, 0xC]
	movs r4, 0xF
	adds r1, r4, 0
	ands r1, r2
	orrs r1, r0
	strb r1, [r3, 0xC]
	adds r0, r6, 0
	movs r1, 0x6
	bl GetFontAttribute
	mov r2, sp
	adds r1, r4, 0
	ands r1, r0
	ldrb r0, [r2, 0xD]
	ands r5, r0
	orrs r5, r1
	strb r5, [r2, 0xD]
	adds r0, r6, 0
	movs r1, 0x7
	bl GetFontAttribute
	mov r2, sp
	lsls r0, 4
	ldrb r1, [r2, 0xD]
	ands r4, r1
	orrs r4, r0
	strb r4, [r2, 0xD]
	mov r0, sp
	mov r1, r8
	adds r2, r7, 0
	bl AddTextPrinter
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8199F74

	thumb_func_start sub_819A024
sub_819A024: @ 819A024
	push {r4-r7,lr}
	sub sp, 0xC
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r2, 16
	lsrs r4, r2, 16
	lsls r3, 16
	lsrs r5, r3, 16
	movs r2, 0
	ldr r0, =gSaveBlock2Ptr
	ldr r3, [r0]
	ldrb r0, [r3]
	ldr r6, =gStringVar4
	cmp r0, 0xFF
	beq _0819A04C
_0819A042:
	adds r2, 0x1
	adds r0, r3, r2
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _0819A042
_0819A04C:
	adds r0, r6, 0
	bl StringExpandPlaceholders
	lsls r3, r4, 24
	lsrs r3, 24
	lsls r0, r5, 24
	lsrs r0, 24
	str r0, [sp]
	movs r0, 0xFF
	str r0, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	adds r2, r6, 0
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_819A024

	thumb_func_start sub_819A080
sub_819A080: @ 819A080
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x28
	str r0, [sp]
	str r1, [sp, 0x4]
	ldr r0, [sp, 0x48]
	ldr r4, [sp, 0x4C]
	ldr r1, [sp, 0x50]
	ldr r5, [sp, 0x54]
	lsls r2, 16
	lsrs r2, 16
	str r2, [sp, 0x8]
	lsls r3, 16
	lsrs r3, 16
	lsls r0, 16
	lsrs r0, 16
	str r0, [sp, 0xC]
	lsls r4, 16
	lsrs r4, 16
	lsls r1, 16
	lsrs r1, 16
	lsls r5, 16
	lsrs r5, 16
	ldr r2, [sp, 0x4]
	ldrh r0, [r2, 0x4]
	ldr r2, [sp, 0xC]
	subs r0, r2
	ldr r2, [sp, 0x8]
	adds r2, r1, r2
	str r2, [sp, 0x10]
	cmp r0, r1
	bge _0819A0CC
	ldr r1, [sp, 0x8]
	adds r0, r1
	str r0, [sp, 0x10]
_0819A0CC:
	ldr r2, [sp, 0x4]
	ldrh r1, [r2, 0x6]
	subs r0, r1, r4
	cmp r0, r5
	bge _0819A0DE
	adds r0, r3, r1
	subs r0, r4
	str r0, [sp, 0x14]
	b _0819A0E2
_0819A0DE:
	adds r5, r3, r5
	str r5, [sp, 0x14]
_0819A0E2:
	ldr r0, [sp]
	ldrh r1, [r0, 0x4]
	movs r2, 0x7
	adds r0, r1, 0
	ands r0, r2
	adds r1, r0
	asrs r1, 3
	str r1, [sp, 0x18]
	ldr r0, [sp, 0x4]
	ldrh r1, [r0, 0x4]
	adds r0, r1, 0
	ands r0, r2
	adds r1, r0
	asrs r1, 3
	str r1, [sp, 0x1C]
	mov r12, r3
	mov r8, r4
	ldr r1, [sp, 0x14]
	cmp r12, r1
	blt _0819A10C
	b _0819A24A
_0819A10C:
	ldr r5, [sp, 0x8]
	ldr r6, [sp, 0xC]
	mov r2, r12
	adds r2, 0x1
	str r2, [sp, 0x20]
	mov r0, r8
	adds r0, 0x1
	str r0, [sp, 0x24]
	ldr r1, [sp, 0x10]
	cmp r5, r1
	blt _0819A124
	b _0819A23A
_0819A124:
	movs r7, 0x1
	movs r2, 0xF0
	mov r10, r2
	movs r0, 0xF
	mov r9, r0
_0819A12E:
	asrs r0, r5, 1
	movs r1, 0x3
	ands r0, r1
	ldr r2, [sp]
	ldr r1, [r2]
	adds r1, r0
	asrs r0, r5, 3
	lsls r0, 5
	adds r1, r0
	mov r2, r12
	asrs r0, r2, 3
	ldr r2, [sp, 0x18]
	muls r0, r2
	lsls r0, 5
	adds r1, r0
	mov r2, r12
	lsls r0, r2, 29
	lsrs r0, 27
	adds r3, r1, r0
	asrs r0, r6, 1
	movs r1, 0x3
	ands r0, r1
	ldr r2, [sp, 0x4]
	ldr r1, [r2]
	adds r1, r0
	asrs r0, r6, 3
	lsls r0, 5
	adds r1, r0
	mov r2, r8
	asrs r0, r2, 3
	ldr r2, [sp, 0x1C]
	muls r0, r2
	lsls r0, 5
	adds r1, r0
	mov r2, r8
	lsls r0, r2, 29
	lsrs r0, 27
	adds r4, r1, r0
	adds r0, r4, 0
	ands r0, r7
	cmp r0, 0
	beq _0819A1DA
	subs r4, 0x1
	adds r0, r6, 0
	ands r0, r7
	cmp r0, 0
	beq _0819A1B2
	ldrh r0, [r4]
	ldr r2, =0x00000fff
	ands r2, r0
	adds r0, r5, 0
	ands r0, r7
	cmp r0, 0
	beq _0819A1A8
	ldrb r1, [r3]
	mov r0, r10
	ands r0, r1
	lsls r0, 8
	b _0819A22A
	.pool
_0819A1A8:
	ldrb r1, [r3]
	mov r0, r9
	ands r0, r1
	lsls r0, 12
	b _0819A22A
_0819A1B2:
	ldrh r0, [r4]
	ldr r2, =0x0000f0ff
	ands r2, r0
	adds r0, r5, 0
	ands r0, r7
	cmp r0, 0
	beq _0819A1D0
	ldrb r1, [r3]
	mov r0, r10
	ands r0, r1
	lsls r0, 4
	b _0819A22A
	.pool
_0819A1D0:
	ldrb r1, [r3]
	mov r0, r9
	ands r0, r1
	lsls r0, 8
	b _0819A22A
_0819A1DA:
	adds r0, r6, 0
	ands r0, r7
	cmp r0, 0
	beq _0819A206
	ldrh r0, [r4]
	ldr r2, =0x0000ff0f
	ands r2, r0
	adds r0, r5, 0
	ands r0, r7
	cmp r0, 0
	beq _0819A1FC
	ldrb r1, [r3]
	mov r0, r10
	b _0819A228
	.pool
_0819A1FC:
	ldrb r1, [r3]
	mov r0, r9
	ands r0, r1
	lsls r0, 4
	b _0819A22A
_0819A206:
	ldrh r0, [r4]
	ldr r2, =0x0000fff0
	ands r2, r0
	adds r0, r5, 0
	ands r0, r7
	cmp r0, 0
	beq _0819A224
	ldrb r1, [r3]
	mov r0, r10
	ands r0, r1
	lsrs r0, 4
	b _0819A22A
	.pool
_0819A224:
	ldrb r1, [r3]
	mov r0, r9
_0819A228:
	ands r0, r1
_0819A22A:
	orrs r2, r0
	strh r2, [r4]
	adds r5, 0x1
	adds r6, 0x1
	ldr r0, [sp, 0x10]
	cmp r5, r0
	bge _0819A23A
	b _0819A12E
_0819A23A:
	ldr r1, [sp, 0x20]
	mov r12, r1
	ldr r2, [sp, 0x24]
	mov r8, r2
	ldr r0, [sp, 0x14]
	cmp r12, r0
	bge _0819A24A
	b _0819A10C
_0819A24A:
	add sp, 0x28
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_819A080

	thumb_func_start sub_819A25C
sub_819A25C: @ 819A25C
	push {r4,lr}
	adds r4, r0, 0
	adds r0, r1, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r0, 16
	lsrs r0, 16
	bl GetValidMonIconPalettePtr
	adds r1, r4, 0
	movs r2, 0x20
	bl LoadPalette
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_819A25C

	thumb_func_start sub_819A27C
sub_819A27C: @ 819A27C
	push {r4-r6,lr}
	sub sp, 0x8
	adds r6, r0, 0
	adds r0, r1, 0
	adds r1, r2, 0
	adds r4, r3, 0
	ldr r5, [sp, 0x18]
	lsls r6, 24
	lsrs r6, 24
	lsls r0, 16
	lsrs r0, 16
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 16
	lsrs r5, 16
	movs r2, 0x1
	bl GetMonIconPtr
	adds r1, r0, 0
	movs r0, 0x20
	str r0, [sp]
	str r0, [sp, 0x4]
	adds r0, r6, 0
	adds r2, r4, 0
	adds r3, r5, 0
	bl BlitBitmapToWindow
	add sp, 0x8
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_819A27C

	thumb_func_start sub_819A2BC
sub_819A2BC: @ 819A2BC
	push {lr}
	lsls r0, 24
	lsrs r2, r0, 24
	lsls r1, 24
	lsrs r1, 24
	cmp r1, 0x1
	beq _0819A2DC
	cmp r1, 0x1
	ble _0819A2D2
	cmp r1, 0x2
	beq _0819A2E4
_0819A2D2:
	ldr r0, =gUnknown_08DC4318
	b _0819A2E6
	.pool
_0819A2DC:
	ldr r0, =gUnknown_08DC4338
	b _0819A2E6
	.pool
_0819A2E4:
	ldr r0, =gUnknown_08DC4358
_0819A2E6:
	adds r1, r2, 0
	movs r2, 0x20
	bl LoadPalette
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_819A2BC

	thumb_func_start blit_move_info_icon
@ void blit_move_info_icon(u8 windowId, u8 a2, u16 x, u16 y)
blit_move_info_icon: @ 819A2F8
	push {r4,r5,lr}
	sub sp, 0x18
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 24
	lsls r2, 16
	lsrs r2, 16
	lsls r3, 16
	lsrs r3, 16
	ldr r4, =gUnknown_0860F0D4
	lsrs r1, 22
	adds r1, r4
	ldrh r5, [r1, 0x2]
	lsls r5, 5
	ldr r4, =gUnknown_08DC4378
	adds r5, r4
	movs r4, 0x80
	str r4, [sp]
	str r4, [sp, 0x4]
	str r2, [sp, 0x8]
	str r3, [sp, 0xC]
	ldrb r2, [r1]
	str r2, [sp, 0x10]
	ldrb r1, [r1, 0x1]
	str r1, [sp, 0x14]
	adds r1, r5, 0
	movs r2, 0
	movs r3, 0
	bl BlitBitmapRectToWindow
	add sp, 0x18
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end blit_move_info_icon

	thumb_func_start sub_819A344
sub_819A344: @ 819A344
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r2, 24
	lsrs r2, 24
	adds r5, r1, 0
	movs r1, 0xFC
	strb r1, [r5]
	adds r5, 0x1
	movs r0, 0x1
	strb r0, [r5]
	adds r5, 0x1
	strb r2, [r5]
	adds r5, 0x1
	strb r1, [r5]
	adds r5, 0x1
	movs r0, 0x3
	strb r0, [r5]
	adds r5, 0x1
	adds r2, 0x1
	strb r2, [r5]
	adds r5, 0x1
	cmp r3, 0x4
	bhi _0819A43C
	lsls r0, r3, 2
	ldr r1, =_0819A384
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0819A384:
	.4byte _0819A398
	.4byte _0819A3A8
	.4byte _0819A3D6
	.4byte _0819A404
	.4byte _0819A414
_0819A398:
	ldr r0, =gSaveBlock2Ptr
	ldr r1, [r0]
	adds r0, r5, 0
	bl StringCopy
	b _0819A43C
	.pool
_0819A3A8:
	bl IsNationalPokedexEnabled
	cmp r0, 0
	beq _0819A3B8
	movs r0, 0x1
	bl pokedex_count
	b _0819A3BE
_0819A3B8:
	movs r0, 0x1
	bl sub_80C0844
_0819A3BE:
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r5, r0, 0
	movs r0, 0xFF
	strb r0, [r5]
	b _0819A43C
_0819A3D6:
	ldr r4, =gSaveBlock2Ptr
	ldr r0, [r4]
	ldrh r1, [r0, 0xE]
	adds r0, r5, 0
	movs r2, 0
	movs r3, 0x3
	bl ConvertIntToDecimalStringN
	adds r5, r0, 0
	movs r0, 0xF0
	strb r0, [r5]
	adds r5, 0x1
	ldr r0, [r4]
	ldrb r1, [r0, 0x10]
	adds r0, r5, 0
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	b _0819A43C
	.pool
_0819A404:
	ldr r0, =gMapHeader
	ldrb r1, [r0, 0x14]
	adds r0, r5, 0
	bl sub_81245DC
	b _0819A43C
	.pool
_0819A414:
	ldr r4, =0x00000867
	movs r6, 0
	adds r7, r5, 0x1
_0819A41A:
	lsls r0, r4, 16
	lsrs r0, 16
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _0819A42A
	adds r6, 0x1
_0819A42A:
	adds r4, 0x1
	ldr r0, =0x0000086e
	cmp r4, r0
	ble _0819A41A
	adds r0, r6, 0
	subs r0, 0x5F
	strb r0, [r5]
	movs r0, 0xFF
	strb r0, [r7]
_0819A43C:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_819A344

	thumb_func_start sub_819A44C
sub_819A44C: @ 819A44C
	push {r4,r5,lr}
	adds r5, r0, 0
	ldrb r4, [r5, 0x5]
	lsrs r4, 4
	movs r0, 0x65
	bl IndexOfSpritePaletteTag
	lsls r0, 24
	lsls r4, 16
	lsrs r4, 16
	lsrs r0, 24
	cmp r4, r0
	bne _0819A4BA
	adds r0, r5, 0
	adds r0, 0x3F
	ldrb r1, [r0]
	movs r0, 0x10
	ands r0, r1
	cmp r0, 0
	beq _0819A4B0
	ldrh r1, [r5, 0x2E]
	movs r2, 0x2E
	ldrsh r0, [r5, r2]
	cmp r0, 0
	beq _0819A484
	subs r0, r1, 0x1
	strh r0, [r5, 0x2E]
	b _0819A4C2
_0819A484:
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x5
	bl __umodsi3
	lsls r0, 16
	cmp r0, 0
	bne _0819A4A6
	adds r0, r5, 0
	movs r1, 0
	bl StartSpriteAnim
	movs r0, 0x20
	strh r0, [r5, 0x2E]
	b _0819A4C2
_0819A4A6:
	adds r0, r5, 0
	movs r1, 0x1
	bl StartSpriteAnim
	b _0819A4C2
_0819A4B0:
	adds r0, r5, 0
	movs r1, 0x1
	bl StartSpriteAnimIfDifferent
	b _0819A4C2
_0819A4BA:
	adds r0, r5, 0
	movs r1, 0
	bl StartSpriteAnimIfDifferent
_0819A4C2:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_819A44C

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