    .syntax unified
	push {r4, lr}
	ldr r0, _08056598 @ =gNewWindow
	movs r1, #8
	bl MemClear
	ldr r0, _0805659C @ =gMessageChoices
	movs r1, #0x18
	bl MemClear
	ldr r4, _080565A0 @ =gTextRender
	adds r0, r4, #0
	movs r1, #0xa8
	bl MemClear
	ldr r0, _080565A4 @ =gMessage
	adds r1, r4, #0
	movs r2, #0x20
	bl MemCopy
	ldrb r0, [r4, #2]
	cmp r0, #0x63
	bne _08056520
	movs r0, #0x80
	lsls r0, r0, #0x12
	ldrb r0, [r0, #5]
	strb r0, [r4, #2]
_08056520:
	adds r1, r4, #0
	adds r1, #0x9c
	movs r0, #0xff
	strb r0, [r1]
	adds r0, r4, #0
	adds r0, #0x20
	ldrh r1, [r4, #8]
	bl sub_0805EEB4
	adds r3, r4, #0
	adds r3, #0x5c
	movs r0, #2
	strb r0, [r3]
	movs r0, #0xe
	strb r0, [r3, #1]
	adds r3, #2
	movs r2, #0
	ldr r0, _080565A8 @ =gSave
	adds r0, #0x80
	ldrb r1, [r0]
	cmp r1, #0
	beq _08056560
	adds r4, r0, #0
_0805654E:
	strb r1, [r3]
	adds r3, #1
	adds r2, #1
	cmp r2, #5
	bhi _08056560
	adds r0, r2, r4
	ldrb r1, [r0]
	cmp r1, #0
	bne _0805654E
_08056560:
	movs r0, #2
	strb r0, [r3]
	movs r0, #0xf
	strb r0, [r3, #1]
	movs r0, #0
	strb r0, [r3, #2]
	ldr r4, _080565A0 @ =gTextRender
	adds r0, r4, #0
	bl sub_08056FBC
	ldr r0, _080565AC @ =gUnk_08107BE0
	str r0, [r4, #0x2c]
	ldr r0, _080565B0 @ =gTextGfxBuffer
	str r0, [r4, #0x58]
	adds r4, #0x54
	movs r0, #0xd0
	strh r0, [r4]
	movs r0, #2
	bl SetDoTextBox
	movs r0, #0
	bl MsgChangeLine
	movs r0, #2
	bl StatusUpdate
	movs r0, #1
	pop {r4, pc}
	.align 2, 0
_08056598: .4byte gNewWindow
_0805659C: .4byte gMessageChoices
_080565A0: .4byte gTextRender
_080565A4: .4byte gMessage
_080565A8: .4byte gSave
_080565AC: .4byte gUnk_08107BE0
_080565B0: .4byte gTextGfxBuffer
    .syntax divided
