	.include "asm/macros.inc"
	.include "global.inc"
	.section .text
	.balign 4, 0

	thumb_func_start ov63_021D8890
ov63_021D8890: ; 0x021D8890
	push {r4, lr}
	sub sp, #0x28
	ldr r4, _021D88AC ; =ov63_021DBD70
	add r3, sp, #0
	mov r2, #5
_021D889A:
	ldmia r4!, {r0, r1}
	stmia r3!, {r0, r1}
	sub r2, r2, #1
	bne _021D889A
	add r0, sp, #0
	bl GfGfx_SetBanks
	add sp, #0x28
	pop {r4, pc}
	.align 2, 0
_021D88AC: .word ov63_021DBD70
	thumb_func_end ov63_021D8890

	thumb_func_start ov63_021D88B0
ov63_021D88B0: ; 0x021D88B0
	push {r4, lr}
	sub sp, #0x28
	ldr r4, _021D88CC ; =ov63_021DBD98
	add r3, sp, #0
	mov r2, #5
_021D88BA:
	ldmia r4!, {r0, r1}
	stmia r3!, {r0, r1}
	sub r2, r2, #1
	bne _021D88BA
	add r0, sp, #0
	bl GfGfx_SetBanks
	add sp, #0x28
	pop {r4, pc}
	.align 2, 0
_021D88CC: .word ov63_021DBD98
	thumb_func_end ov63_021D88B0

	thumb_func_start ov63_021D88D0
ov63_021D88D0: ; 0x021D88D0
	push {r4, lr}
	sub sp, #0x28
	ldr r4, _021D88EC ; =ov63_021DBDC0
	add r3, sp, #0
	mov r2, #5
_021D88DA:
	ldmia r4!, {r0, r1}
	stmia r3!, {r0, r1}
	sub r2, r2, #1
	bne _021D88DA
	add r0, sp, #0
	bl GfGfx_SetBanks
	add sp, #0x28
	pop {r4, pc}
	.align 2, 0
_021D88EC: .word ov63_021DBDC0
	thumb_func_end ov63_021D88D0

	thumb_func_start ov63_021D88F0
ov63_021D88F0: ; 0x021D88F0
	push {r3, r4, r5, lr}
	sub sp, #0xb8
	add r4, r0, #0
	ldr r0, [r4]
	bl BgConfig_Alloc
	add r3, sp, #0xa8
	ldr r5, _021D89E8 ; =ov63_021DBB4C
	str r0, [r4, #0xc]
	add r2, r3, #0
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	add r0, r2, #0
	bl SetBothScreensModesAndDisable
	ldr r5, _021D89EC ; =ov63_021DBC88
	add r3, sp, #0x8c
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #1
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D89F0 ; =ov63_021DBC6C
	add r3, sp, #0x70
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #2
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D89F4 ; =ov63_021DBBC4
	add r3, sp, #0x54
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #3
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D89F8 ; =ov63_021DBBFC
	add r3, sp, #0x38
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #5
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D89FC ; =ov63_021DBC18
	add r3, sp, #0x1c
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r1, #6
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D8A00 ; =ov63_021DBC34
	add r3, sp, #0
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #7
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	mov r0, #0
	add r1, r0, #0
	bl BG_SetMaskColor
	mov r0, #4
	mov r1, #0
	bl BG_SetMaskColor
	add sp, #0xb8
	pop {r3, r4, r5, pc}
	nop
_021D89E8: .word ov63_021DBB4C
_021D89EC: .word ov63_021DBC88
_021D89F0: .word ov63_021DBC6C
_021D89F4: .word ov63_021DBBC4
_021D89F8: .word ov63_021DBBFC
_021D89FC: .word ov63_021DBC18
_021D8A00: .word ov63_021DBC34
	thumb_func_end ov63_021D88F0

	thumb_func_start ov63_021D8A04
ov63_021D8A04: ; 0x021D8A04
	push {r3, r4, r5, lr}
	sub sp, #0x80
	add r4, r0, #0
	ldr r0, [r4]
	bl BgConfig_Alloc
	add r3, sp, #0x70
	ldr r5, _021D8AC4 ; =ov63_021DBB3C
	str r0, [r4, #0xc]
	add r2, r3, #0
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	add r0, r2, #0
	bl SetBothScreensModesAndDisable
	mov r2, #1
	lsl r2, r2, #0x1a
	ldr r1, [r2]
	ldr r0, _021D8AC8 ; =0xC7FFFFFF
	ldr r5, _021D8ACC ; =ov63_021DBC50
	and r1, r0
	lsl r0, r2, #1
	orr r0, r1
	str r0, [r2]
	add r3, sp, #0x54
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #3
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D8AD0 ; =ov63_021DBCA4
	add r3, sp, #0x38
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #1
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D8AD4 ; =ov63_021DBCC0
	add r3, sp, #0x1c
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #2
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D8AD8 ; =ov63_021DBCDC
	add r3, sp, #0
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #4
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	mov r0, #4
	mov r1, #0
	bl BG_SetMaskColor
	add sp, #0x80
	pop {r3, r4, r5, pc}
	nop
_021D8AC4: .word ov63_021DBB3C
_021D8AC8: .word 0xC7FFFFFF
_021D8ACC: .word ov63_021DBC50
_021D8AD0: .word ov63_021DBCA4
_021D8AD4: .word ov63_021DBCC0
_021D8AD8: .word ov63_021DBCDC
	thumb_func_end ov63_021D8A04

	thumb_func_start ov63_021D8ADC
ov63_021D8ADC: ; 0x021D8ADC
	push {r4, r5, lr}
	sub sp, #0x9c
	add r4, r0, #0
	ldr r0, [r4]
	bl BgConfig_Alloc
	add r3, sp, #0x8c
	ldr r5, _021D8BBC ; =ov63_021DBB6C
	str r0, [r4, #0xc]
	add r2, r3, #0
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	add r0, r2, #0
	bl SetBothScreensModesAndDisable
	mov r2, #1
	lsl r2, r2, #0x1a
	ldr r1, [r2]
	ldr r0, _021D8BC0 ; =0xC7FFFFFF
	ldr r5, _021D8BC4 ; =ov63_021DBCF8
	and r1, r0
	lsl r0, r2, #1
	orr r0, r1
	str r0, [r2]
	add r3, sp, #0x70
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #1
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	ldr r5, _021D8BC8 ; =ov63_021DBD14
	add r3, sp, #0x54
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #2
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #1
	bl InitBgFromTemplate
	ldr r5, _021D8BCC ; =ov63_021DBD30
	add r3, sp, #0x38
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #3
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #1
	bl InitBgFromTemplate
	ldr r5, _021D8BD0 ; =ov63_021DBBA8
	add r3, sp, #0x1c
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #0
	str r0, [r3]
	ldr r0, [r4, #0xc]
	add r3, r1, #0
	bl InitBgFromTemplate
	ldr r5, _021D8BD4 ; =ov63_021DBBE0
	add r3, sp, #0
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldmia r5!, {r0, r1}
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	mov r1, #5
	str r0, [r3]
	ldr r0, [r4, #0xc]
	mov r3, #0
	bl InitBgFromTemplate
	mov r0, #4
	mov r1, #0
	bl BG_SetMaskColor
	add sp, #0x9c
	pop {r4, r5, pc}
	nop
_021D8BBC: .word ov63_021DBB6C
_021D8BC0: .word 0xC7FFFFFF
_021D8BC4: .word ov63_021DBCF8
_021D8BC8: .word ov63_021DBD14
_021D8BCC: .word ov63_021DBD30
_021D8BD0: .word ov63_021DBBA8
_021D8BD4: .word ov63_021DBBE0
	thumb_func_end ov63_021D8ADC

	thumb_func_start ov63_021D8BD8
ov63_021D8BD8: ; 0x021D8BD8
	push {r4, lr}
	sub sp, #8
	add r4, r0, #0
	mov r0, #4
	str r0, [sp]
	ldr r0, _021D8C14 ; =ov63_021D8C20
	mov r1, #0
	str r0, [sp, #4]
	ldr r0, [r4]
	mov r2, #1
	add r3, r1, #0
	bl sub_02022318
	str r0, [r4, #0x10]
	ldr r3, _021D8C18 ; =NNS_GfdDefaultFuncAllocTexVram
	mov r0, #2
	mov r1, #0
	ldr r3, [r3]
	lsl r0, r0, #0xe
	add r2, r1, #0
	blx r3
	ldr r3, _021D8C1C ; =NNS_GfdDefaultFuncAllocPlttVram
	mov r0, #0x80
	ldr r3, [r3]
	mov r1, #0
	mov r2, #1
	blx r3
	add sp, #8
	pop {r4, pc}
	nop
_021D8C14: .word ov63_021D8C20
_021D8C18: .word NNS_GfdDefaultFuncAllocTexVram
_021D8C1C: .word NNS_GfdDefaultFuncAllocPlttVram
	thumb_func_end ov63_021D8BD8

	thumb_func_start ov63_021D8C20
ov63_021D8C20: ; 0x021D8C20
	push {r3, lr}
	ldr r0, _021D8C8C ; =0x04000008
	mov r1, #3
	ldrh r2, [r0]
	bic r2, r1
	strh r2, [r0]
	add r0, #0x58
	ldrh r2, [r0]
	ldr r1, _021D8C90 ; =0xFFFFCFFD
	and r2, r1
	strh r2, [r0]
	ldrh r3, [r0]
	add r2, r1, #2
	and r3, r2
	mov r2, #0x10
	orr r2, r3
	strh r2, [r0]
	ldrh r3, [r0]
	ldr r2, _021D8C94 ; =0x0000CFFB
	and r2, r3
	strh r2, [r0]
	add r2, r1, #2
	ldrh r3, [r0]
	add r1, r1, #2
	and r3, r2
	mov r2, #8
	orr r2, r3
	strh r2, [r0]
	ldrh r2, [r0]
	and r2, r1
	mov r1, #0x20
	orr r1, r2
	strh r1, [r0]
	ldr r0, _021D8C98 ; =ov63_021DBB5C
	bl G3X_SetEdgeColorTable
	mov r0, #0
	add r1, r0, #0
	add r2, r0, #0
	add r3, r0, #0
	bl G3X_SetFog
	mov r0, #0
	ldr r2, _021D8C9C ; =0x00007FFF
	add r1, r0, #0
	mov r3, #0x3f
	str r0, [sp]
	bl G3X_SetClearColor
	ldr r1, _021D8CA0 ; =0xBFFF0000
	ldr r0, _021D8CA4 ; =0x04000580
	str r1, [r0]
	pop {r3, pc}
	nop
_021D8C8C: .word 0x04000008
_021D8C90: .word 0xFFFFCFFD
_021D8C94: .word 0x0000CFFB
_021D8C98: .word ov63_021DBB5C
_021D8C9C: .word 0x00007FFF
_021D8CA0: .word 0xBFFF0000
_021D8CA4: .word 0x04000580
	thumb_func_end ov63_021D8C20

	thumb_func_start ov63_021D8CA8
ov63_021D8CA8: ; 0x021D8CA8
	ldr r3, _021D8CAC ; =ApplyAndResetOamManagerBuffer
	bx r3
	.align 2, 0
_021D8CAC: .word ApplyAndResetOamManagerBuffer
	thumb_func_end ov63_021D8CA8

	thumb_func_start ov63_021D8CB0
ov63_021D8CB0: ; 0x021D8CB0
	push {r4, lr}
	add r4, r0, #0
	bl ApplyAndResetOamManagerBuffer
	ldr r0, [r4, #0x4c]
	bl ov63_021DB598
	pop {r4, pc}
	thumb_func_end ov63_021D8CB0

	thumb_func_start ov63_021D8CC0
ov63_021D8CC0: ; 0x021D8CC0
	push {r4, r5}
	mov r0, #1
	lsl r0, r0, #0x1a
	ldr r2, [r0]
	ldr r1, _021D8D08 ; =0xFFFF1FFF
	add r4, r0, #0
	and r2, r1
	lsr r1, r0, #0xd
	orr r1, r2
	str r1, [r0]
	add r4, #0x48
	ldrh r3, [r4]
	mov r2, #0x3f
	mov r1, #0x1f
	bic r3, r2
	orr r1, r3
	mov r3, #0x20
	orr r1, r3
	strh r1, [r4]
	add r4, r0, #0
	add r4, #0x4a
	ldrh r5, [r4]
	mov r1, #0x11
	bic r5, r2
	orr r1, r5
	orr r1, r3
	strh r1, [r4]
	add r1, r0, #0
	mov r2, #0xff
	add r1, #0x40
	strh r2, [r1]
	ldr r1, _021D8D0C ; =0x0000209F
	add r0, #0x44
	strh r1, [r0]
	pop {r4, r5}
	bx lr
	.align 2, 0
_021D8D08: .word 0xFFFF1FFF
_021D8D0C: .word 0x0000209F
	thumb_func_end ov63_021D8CC0

	thumb_func_start ov63_021D8D10
ov63_021D8D10: ; 0x021D8D10
	push {r4, lr}
	add r4, r0, #0
	bl ScreenBrightnessData_InitAll
	ldr r1, _021D8D90 ; =0x00007FFF
	mov r0, #0
	bl sub_0200E3A0
	ldr r1, _021D8D90 ; =0x00007FFF
	mov r0, #1
	bl sub_0200E3A0
	mov r0, #0
	add r1, r0, #0
	bl Main_SetVBlankIntrCB
	mov r0, #0
	add r1, r0, #0
	bl Main_SetHBlankIntrCB
	bl GfGfx_DisableEngineAPlanes
	bl GfGfx_DisableEngineBPlanes
	mov r0, #4
	mov r1, #8
	bl SetKeyRepeatTimers
	mov r0, #3
	mov r1, #0x4c
	lsl r2, r0, #0x11
	bl CreateHeap
	mov r1, #0xab
	add r0, r4, #0
	lsl r1, r1, #2
	mov r2, #0x4c
	bl OverlayManager_CreateAndGetData
	mov r2, #0xab
	mov r1, #0
	lsl r2, r2, #2
	add r4, r0, #0
	bl memset
	mov r0, #0x4c
	str r0, [r4]
	mov r1, #0
	mov r0, #0xaa
	str r1, [r4, #8]
	lsl r0, r0, #2
	strb r1, [r4, r0]
	ldr r0, _021D8D94 ; =gSystem + 0x60
	strb r1, [r0, #5]
	bl GfGfx_SwapDisplay
	bl GetLCRNGSeed
	str r0, [r4, #0x14]
	mov r0, #0
	bl SetLCRNGSeed
	mov r0, #1
	pop {r4, pc}
	.align 2, 0
_021D8D90: .word 0x00007FFF
_021D8D94: .word gSystem + 0x60
	thumb_func_end ov63_021D8D10

	thumb_func_start ov63_021D8D98
ov63_021D8D98: ; 0x021D8D98
	push {r3, r4, r5, lr}
	add r4, r1, #0
	bl OverlayManager_GetData
	add r5, r0, #0
	mov r0, #0xaa
	lsl r0, r0, #2
	ldrb r0, [r5, r0]
	cmp r0, #0
	beq _021D8DD4
	ldr r0, _021D8E5C ; =gSystem
	ldr r1, [r0, #0x48]
	mov r0, #1
	tst r0, r1
	bne _021D8DBC
	mov r0, #8
	tst r0, r1
	beq _021D8DD4
_021D8DBC:
	mov r0, #1
	str r0, [r5, #8]
	ldr r1, _021D8E5C ; =gSystem
	mov r0, #0
	str r0, [r1, #0x6c]
	ldr r1, _021D8E60 ; =0x00007FFF
	bl sub_0200E3A0
	ldr r1, _021D8E60 ; =0x00007FFF
	mov r0, #1
	bl sub_0200E3A0
_021D8DD4:
	ldr r0, [r4]
	cmp r0, #4
	bhi _021D8E42
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_021D8DE6: ; jump table
	.short _021D8DF0 - _021D8DE6 - 2 ; case 0
	.short _021D8E00 - _021D8DE6 - 2 ; case 1
	.short _021D8E12 - _021D8DE6 - 2 ; case 2
	.short _021D8E24 - _021D8DE6 - 2 ; case 3
	.short _021D8E36 - _021D8DE6 - 2 ; case 4
_021D8DF0:
	mov r0, #0xaa
	lsl r0, r0, #2
	add r0, r5, r0
	str r0, [r5, #0x30]
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021D8E46
_021D8E00:
	add r0, r5, #0
	bl ov63_021D8E9C
	cmp r0, #0
	beq _021D8E46
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021D8E46
_021D8E12:
	add r0, r5, #0
	bl ov63_021D93F0
	cmp r0, #0
	beq _021D8E46
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021D8E46
_021D8E24:
	add r0, r5, #0
	bl ov63_021DA0A8
	cmp r0, #0
	beq _021D8E46
	ldr r0, [r4]
	add r0, r0, #1
	str r0, [r4]
	b _021D8E46
_021D8E36:
	ldr r1, [r5, #4]
	ldr r0, _021D8E64 ; =0x00000A8C
	cmp r1, r0
	blt _021D8E46
	mov r0, #1
	pop {r3, r4, r5, pc}
_021D8E42:
	bl GF_AssertFail
_021D8E46:
	ldr r0, [r5, #8]
	cmp r0, #0
	beq _021D8E50
	mov r0, #1
	pop {r3, r4, r5, pc}
_021D8E50:
	ldr r0, [r5, #4]
	add r0, r0, #1
	str r0, [r5, #4]
	mov r0, #0
	pop {r3, r4, r5, pc}
	nop
_021D8E5C: .word gSystem
_021D8E60: .word 0x00007FFF
_021D8E64: .word 0x00000A8C
	thumb_func_end ov63_021D8D98

	thumb_func_start ov63_021D8E68
ov63_021D8E68: ; 0x021D8E68
	push {r3, r4, r5, lr}
	add r5, r0, #0
	bl OverlayManager_GetData
	add r4, r0, #0
	bl sub_0200E31C
	ldr r0, [r4, #0x14]
	bl SetLCRNGSeed
	add r0, r5, #0
	bl OverlayManager_FreeData
	mov r0, #0x4c
	bl DestroyHeap
	ldr r0, _021D8E94 ; =SDK_OVERLAY_OVERLAY_63_ID
	ldr r1, _021D8E98 ; =ov63_021DBAB8
	bl RegisterMainOverlay
	mov r0, #1
	pop {r3, r4, r5, pc}
	.align 2, 0
_021D8E94: .word SDK_OVERLAY_OVERLAY_63_ID
_021D8E98: .word ov63_021DBAB8
	thumb_func_end ov63_021D8E68

	thumb_func_start ov63_021D8E9C
ov63_021D8E9C: ; 0x021D8E9C
	push {r4, lr}
	add r1, r0, #0
	ldr r0, [r1, #8]
	add r4, r1, #0
	add r4, #0x18
	cmp r0, #0
	beq _021D8EAE
	mov r0, #3
	strb r0, [r4]
_021D8EAE:
	ldrb r0, [r4]
	cmp r0, #3
	bhi _021D8F06
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_021D8EC0: ; jump table
	.short _021D8EC8 - _021D8EC0 - 2 ; case 0
	.short _021D8ED6 - _021D8EC0 - 2 ; case 1
	.short _021D8EE6 - _021D8EC0 - 2 ; case 2
	.short _021D8EFC - _021D8EC0 - 2 ; case 3
_021D8EC8:
	add r0, r1, #0
	bl ov63_021D8F0C
	ldrb r0, [r4]
	add r0, r0, #1
	strb r0, [r4]
	b _021D8F06
_021D8ED6:
	add r1, #0x18
	add r0, r1, #0
	bl ov63_021D8F38
	ldrb r0, [r4]
	add r0, r0, #1
	strb r0, [r4]
	b _021D8F06
_021D8EE6:
	add r0, r1, #0
	ldr r1, [r1, #4]
	add r0, #0x18
	bl ov63_021D90D0
	cmp r0, #0
	beq _021D8F06
	ldrb r0, [r4]
	add r0, r0, #1
	strb r0, [r4]
	b _021D8F06
_021D8EFC:
	add r0, r1, #0
	bl ov63_021D9234
	mov r0, #1
	pop {r4, pc}
_021D8F06:
	mov r0, #0
	pop {r4, pc}
	.align 2, 0
	thumb_func_end ov63_021D8E9C

	thumb_func_start ov63_021D8F0C
ov63_021D8F0C: ; 0x021D8F0C
	push {r4, lr}
	add r4, r0, #0
	bl ov63_021D8890
	add r0, r4, #0
	bl ov63_021D88F0
	ldr r0, [r4, #0xc]
	str r0, [r4, #0x24]
	bl ov63_021DAEF8
	str r0, [r4, #0x2c]
	ldr r0, _021D8F34 ; =ov63_021D8CA8
	add r1, r4, #0
	bl Main_SetVBlankIntrCB
	mov r0, #1
	strb r0, [r4, #0x1a]
	pop {r4, pc}
	nop
_021D8F34: .word ov63_021D8CA8
	thumb_func_end ov63_021D8F0C

	thumb_func_start ov63_021D8F38
ov63_021D8F38: ; 0x021D8F38
	push {r4, lr}
	sub sp, #0x10
	add r4, r0, #0
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x13
	mov r3, #2
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x13
	mov r3, #6
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x14
	mov r3, #2
	bl GfGfxLoader_LoadScrnData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x15
	mov r3, #6
	bl GfGfxLoader_LoadScrnData
	mov r2, #0
	str r2, [sp]
	mov r0, #0x4c
	str r0, [sp, #4]
	mov r0, #0x80
	mov r1, #0x12
	add r3, r2, #0
	bl GfGfxLoader_GXLoadPal
	mov r3, #0
	str r3, [sp]
	mov r0, #0x4c
	str r0, [sp, #4]
	mov r0, #0x80
	mov r1, #0x12
	mov r2, #4
	bl GfGfxLoader_GXLoadPal
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	mov r1, #1
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	add r3, r1, #0
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #2
	mov r3, #1
	bl GfGfxLoader_LoadScrnData
	mov r1, #0
	mov r0, #0x20
	str r0, [sp]
	mov r0, #0x4c
	str r0, [sp, #4]
	mov r0, #0x80
	add r2, r1, #0
	add r3, r1, #0
	bl GfGfxLoader_GXLoadPal
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x16
	mov r3, #3
	bl GfGfxLoader_LoadScrnData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x16
	mov r3, #7
	bl GfGfxLoader_LoadScrnData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x48
	mov r3, #5
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x49
	mov r3, #5
	bl GfGfxLoader_LoadScrnData
	mov r0, #0x20
	str r0, [sp]
	mov r0, #0x4c
	str r0, [sp, #4]
	mov r0, #0x80
	mov r1, #0x47
	mov r2, #4
	mov r3, #0
	bl GfGfxLoader_GXLoadPal
	mov r0, #4
	mov r1, #0
	bl GfGfx_EngineATogglePlanes
	mov r0, #4
	mov r1, #0
	bl GfGfx_EngineBTogglePlanes
	mov r0, #0x10
	str r0, [sp]
	ldr r0, _021D90C8 ; =0x04000050
	mov r1, #2
	mov r2, #8
	mov r3, #0
	bl G2x_SetBlendAlpha_
	mov r0, #0x10
	str r0, [sp]
	ldr r0, _021D90CC ; =0x04001050
	mov r1, #2
	mov r2, #8
	mov r3, #0
	bl G2x_SetBlendAlpha_
	mov r0, #1
	add r1, r0, #0
	bl OS_WaitIrq
	mov r0, #0
	bl SetMasterBrightnessNeutral
	mov r0, #1
	bl SetMasterBrightnessNeutral
	bl GfGfx_BothDispOn
	add sp, #0x10
	pop {r4, pc}
	nop
_021D90C8: .word 0x04000050
_021D90CC: .word 0x04001050
	thumb_func_end ov63_021D8F38

	thumb_func_start ov63_021D90D0
ov63_021D90D0: ; 0x021D90D0
	push {r4, r5, lr}
	sub sp, #0xc
	add r4, r0, #0
	ldr r0, [r4, #0x14]
	add r5, r1, #0
	bl ov63_021DB1AC
	ldrb r0, [r4, #1]
	cmp r0, #5
	bls _021D90E6
	b _021D9208
_021D90E6:
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_021D90F2: ; jump table
	.short _021D90FE - _021D90F2 - 2 ; case 0
	.short _021D9122 - _021D90F2 - 2 ; case 1
	.short _021D9148 - _021D90F2 - 2 ; case 2
	.short _021D91AE - _021D90F2 - 2 ; case 3
	.short _021D91CE - _021D90F2 - 2 ; case 4
	.short _021D91FA - _021D90F2 - 2 ; case 5
_021D90FE:
	mov r2, #0
	strb r2, [r4, #7]
	strb r2, [r4, #6]
	ldr r0, _021D9210 ; =ov63_021D92A4
	strb r2, [r4, #8]
	add r1, r4, #0
	bl SysTask_CreateOnMainQueue
	str r0, [r4, #0x10]
	mov r0, #1
	ldr r1, _021D9214 ; =0x00000494
	add r2, r0, #0
	bl sub_0200433C
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9208
_021D9122:
	ldrb r0, [r4, #8]
	cmp r0, #0
	beq _021D9208
	cmp r5, #0x73
	blt _021D9208
	mov r2, #0
	strb r2, [r4, #7]
	mov r0, #0x10
	strb r0, [r4, #6]
	ldr r0, _021D9218 ; =ov63_021D9300
	strb r2, [r4, #8]
	add r1, r4, #0
	bl SysTask_CreateOnMainQueue
	str r0, [r4, #0x10]
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9208
_021D9148:
	ldrb r0, [r4, #8]
	cmp r0, #0
	beq _021D9208
	ldr r0, _021D921C ; =0x00000109
	cmp r5, r0
	blt _021D9208
	mov r0, #2
	mov r1, #0
	bl GfGfx_EngineATogglePlanes
	mov r0, #2
	mov r1, #0
	bl GfGfx_EngineBTogglePlanes
	mov r0, #0x10
	str r0, [sp]
	ldr r0, _021D9220 ; =0x04000050
	mov r1, #4
	mov r2, #8
	mov r3, #0
	bl G2x_SetBlendAlpha_
	mov r0, #0x10
	str r0, [sp]
	ldr r0, _021D9224 ; =0x04001050
	mov r1, #4
	mov r2, #8
	mov r3, #0
	bl G2x_SetBlendAlpha_
	mov r0, #4
	mov r1, #1
	bl GfGfx_EngineATogglePlanes
	mov r0, #4
	mov r1, #1
	bl GfGfx_EngineBTogglePlanes
	mov r2, #0
	strb r2, [r4, #7]
	strb r2, [r4, #6]
	ldr r0, _021D9228 ; =ov63_021D9360
	strb r2, [r4, #8]
	add r1, r4, #0
	bl SysTask_CreateOnMainQueue
	str r0, [r4, #0x10]
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9208
_021D91AE:
	ldrb r0, [r4, #8]
	cmp r0, #0
	beq _021D9208
	mov r2, #0
	strb r2, [r4, #7]
	strb r2, [r4, #6]
	ldr r0, _021D922C ; =ov63_021D93A8
	strb r2, [r4, #8]
	add r1, r4, #0
	bl SysTask_CreateOnMainQueue
	str r0, [r4, #0x10]
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9208
_021D91CE:
	ldrb r0, [r4, #8]
	cmp r0, #0
	beq _021D9208
	ldr r0, _021D9230 ; =0x000001EA
	cmp r5, r0
	blt _021D9208
	mov r0, #0x12
	str r0, [sp]
	mov r1, #0
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #2
	add r2, r1, #0
	add r3, r1, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9208
_021D91FA:
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9208
	add sp, #0xc
	mov r0, #1
	pop {r4, r5, pc}
_021D9208:
	mov r0, #0
	add sp, #0xc
	pop {r4, r5, pc}
	nop
_021D9210: .word ov63_021D92A4
_021D9214: .word 0x00000494
_021D9218: .word ov63_021D9300
_021D921C: .word 0x00000109
_021D9220: .word 0x04000050
_021D9224: .word 0x04001050
_021D9228: .word ov63_021D9360
_021D922C: .word ov63_021D93A8
_021D9230: .word 0x000001EA
	thumb_func_end ov63_021D90D0

	thumb_func_start ov63_021D9234
ov63_021D9234: ; 0x021D9234
	push {r4, lr}
	add r4, r0, #0
	mov r0, #0
	add r1, r0, #0
	bl Main_SetVBlankIntrCB
	ldrb r0, [r4, #0x1a]
	cmp r0, #0
	beq _021D9286
	ldr r0, [r4, #0x2c]
	bl ov63_021DAF9C
	ldr r0, [r4, #0xc]
	mov r1, #1
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #2
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #6
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #3
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #7
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #5
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	bl FreeToHeap
	mov r0, #0
	strb r0, [r4, #0x1a]
_021D9286:
	ldr r0, [r4, #0x28]
	cmp r0, #0
	beq _021D92A0
	ldr r0, [r4, #8]
	cmp r0, #0
	bne _021D9296
	bl GF_AssertFail
_021D9296:
	ldr r0, [r4, #0x28]
	bl SysTask_Destroy
	mov r0, #0
	str r0, [r4, #0x28]
_021D92A0:
	pop {r4, pc}
	.align 2, 0
	thumb_func_end ov63_021D9234

	thumb_func_start ov63_021D92A4
ov63_021D92A4: ; 0x021D92A4
	push {r3, r4, lr}
	sub sp, #4
	add r4, r1, #0
	ldrb r1, [r4, #7]
	add r1, r1, #1
	strb r1, [r4, #7]
	ldrb r1, [r4, #7]
	cmp r1, #6
	blo _021D92C0
	mov r1, #0
	strb r1, [r4, #7]
	ldrb r1, [r4, #6]
	add r1, r1, #1
	strb r1, [r4, #6]
_021D92C0:
	ldrb r1, [r4, #6]
	cmp r1, #0x10
	blo _021D92D2
	bl SysTask_Destroy
	mov r0, #0
	str r0, [r4, #0x10]
	mov r0, #1
	strb r0, [r4, #8]
_021D92D2:
	mov r0, #0x10
	str r0, [sp]
	ldrb r3, [r4, #6]
	ldr r0, _021D92F8 ; =0x04000050
	mov r1, #2
	mov r2, #8
	bl G2x_SetBlendAlpha_
	mov r0, #0x10
	str r0, [sp]
	ldrb r3, [r4, #6]
	ldr r0, _021D92FC ; =0x04001050
	mov r1, #2
	mov r2, #8
	bl G2x_SetBlendAlpha_
	add sp, #4
	pop {r3, r4, pc}
	nop
_021D92F8: .word 0x04000050
_021D92FC: .word 0x04001050
	thumb_func_end ov63_021D92A4

	thumb_func_start ov63_021D9300
ov63_021D9300: ; 0x021D9300
	push {r3, r4, lr}
	sub sp, #4
	add r4, r1, #0
	ldrb r1, [r4, #7]
	add r1, r1, #1
	strb r1, [r4, #7]
	ldrb r1, [r4, #7]
	cmp r1, #4
	blo _021D931C
	mov r1, #0
	strb r1, [r4, #7]
	ldrb r1, [r4, #6]
	sub r1, r1, #1
	strb r1, [r4, #6]
_021D931C:
	ldrb r1, [r4, #6]
	cmp r1, #0
	bne _021D9332
	bl SysTask_Destroy
	mov r0, #0
	str r0, [r4, #0x10]
	mov r1, #1
	strb r1, [r4, #8]
	ldr r0, [r4, #0x18]
	strb r1, [r0]
_021D9332:
	mov r0, #0x10
	str r0, [sp]
	ldrb r3, [r4, #6]
	ldr r0, _021D9358 ; =0x04000050
	mov r1, #2
	mov r2, #8
	bl G2x_SetBlendAlpha_
	mov r0, #0x10
	str r0, [sp]
	ldrb r3, [r4, #6]
	ldr r0, _021D935C ; =0x04001050
	mov r1, #2
	mov r2, #8
	bl G2x_SetBlendAlpha_
	add sp, #4
	pop {r3, r4, pc}
	nop
_021D9358: .word 0x04000050
_021D935C: .word 0x04001050
	thumb_func_end ov63_021D9300

	thumb_func_start ov63_021D9360
ov63_021D9360: ; 0x021D9360
	push {r3, r4, lr}
	sub sp, #4
	add r4, r1, #0
	ldrb r1, [r4, #7]
	add r1, r1, #1
	strb r1, [r4, #7]
	ldrb r1, [r4, #7]
	cmp r1, #4
	blo _021D937C
	mov r1, #0
	strb r1, [r4, #7]
	ldrb r1, [r4, #6]
	add r1, r1, #1
	strb r1, [r4, #6]
_021D937C:
	ldrb r1, [r4, #6]
	cmp r1, #0x10
	blo _021D938E
	bl SysTask_Destroy
	mov r0, #0
	str r0, [r4, #0x10]
	mov r0, #1
	strb r0, [r4, #8]
_021D938E:
	mov r0, #0x10
	str r0, [sp]
	ldrb r3, [r4, #6]
	ldr r0, _021D93A4 ; =0x04000050
	mov r1, #4
	mov r2, #8
	bl G2x_SetBlendAlpha_
	add sp, #4
	pop {r3, r4, pc}
	nop
_021D93A4: .word 0x04000050
	thumb_func_end ov63_021D9360

	thumb_func_start ov63_021D93A8
ov63_021D93A8: ; 0x021D93A8
	push {r3, r4, lr}
	sub sp, #4
	add r4, r1, #0
	ldrb r1, [r4, #7]
	add r1, r1, #1
	strb r1, [r4, #7]
	ldrb r1, [r4, #7]
	cmp r1, #4
	blo _021D93C4
	mov r1, #0
	strb r1, [r4, #7]
	ldrb r1, [r4, #6]
	add r1, r1, #1
	strb r1, [r4, #6]
_021D93C4:
	ldrb r1, [r4, #6]
	cmp r1, #0x10
	blo _021D93D6
	bl SysTask_Destroy
	mov r0, #0
	str r0, [r4, #0x10]
	mov r0, #1
	strb r0, [r4, #8]
_021D93D6:
	mov r0, #0x10
	str r0, [sp]
	ldrb r3, [r4, #6]
	ldr r0, _021D93EC ; =0x04001050
	mov r1, #4
	mov r2, #8
	bl G2x_SetBlendAlpha_
	add sp, #4
	pop {r3, r4, pc}
	nop
_021D93EC: .word 0x04001050
	thumb_func_end ov63_021D93A8

	thumb_func_start ov63_021D93F0
ov63_021D93F0: ; 0x021D93F0
	push {r3, r4, r5, lr}
	add r5, r0, #0
	ldr r0, [r5, #8]
	add r4, r5, #0
	add r4, #0x34
	cmp r0, #0
	beq _021D9402
	mov r0, #4
	strb r0, [r4]
_021D9402:
	ldrb r0, [r4]
	cmp r0, #4
	bhi _021D9492
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_021D9414: ; jump table
	.short _021D941E - _021D9414 - 2 ; case 0
	.short _021D942C - _021D9414 - 2 ; case 1
	.short _021D943C - _021D9414 - 2 ; case 2
	.short _021D9452 - _021D9414 - 2 ; case 3
	.short _021D9488 - _021D9414 - 2 ; case 4
_021D941E:
	add r0, r5, #0
	bl ov63_021D9498
	ldrb r0, [r4]
	add r0, r0, #1
	strb r0, [r4]
	b _021D9492
_021D942C:
	add r5, #0x34
	add r0, r5, #0
	bl ov63_021D96A0
	ldrb r0, [r4]
	add r0, r0, #1
	strb r0, [r4]
	b _021D9492
_021D943C:
	add r0, r5, #0
	add r0, #0x34
	bl ov63_021D9810
	mov r0, #1
	add r5, #0x39
	strb r0, [r5]
	ldrb r0, [r4]
	add r0, r0, #1
	strb r0, [r4]
	b _021D9492
_021D9452:
	add r0, r5, #0
	ldr r1, [r5, #4]
	add r0, #0x34
	bl ov63_021D99EC
	cmp r0, #0
	beq _021D9466
	ldrb r0, [r4]
	add r0, r0, #1
	strb r0, [r4]
_021D9466:
	ldr r0, [r5, #0x44]
	bl ov63_021DAC18
	add r0, r5, #0
	add r0, #0x39
	ldrb r0, [r0]
	cmp r0, #0
	beq _021D9480
	add r5, #0x34
	add r0, r5, #0
	bl ov63_021D9980
	b _021D9492
_021D9480:
	ldr r0, [r5, #0x4c]
	bl ov63_021DB5A8
	b _021D9492
_021D9488:
	add r0, r5, #0
	bl ov63_021D95A8
	mov r0, #1
	pop {r3, r4, r5, pc}
_021D9492:
	mov r0, #0
	pop {r3, r4, r5, pc}
	.align 2, 0
	thumb_func_end ov63_021D93F0

	thumb_func_start ov63_021D9498
ov63_021D9498: ; 0x021D9498
	push {r3, r4, r5, r6, r7, lr}
	sub sp, #8
	add r5, r0, #0
	bl ov63_021D88B0
	add r0, r5, #0
	bl ov63_021D8A04
	add r0, r5, #0
	bl ov63_021D8BD8
	bl ov63_021DA6E0
	add r4, r0, #0
	bl ov63_021DB498
	add r6, r0, #0
	mov r0, #0x4c
	add r1, r4, #0
	bl AllocFromHeap
	str r0, [r5, #0x44]
	mov r0, #0x10
	bl ov63_021DAF20
	str r0, [r5, #0x48]
	mov r0, #0x4c
	add r1, r6, #0
	bl AllocFromHeap
	str r0, [r5, #0x4c]
	ldr r0, [r5, #0x44]
	mov r1, #0
	add r2, r4, #0
	bl memset
	ldr r0, [r5, #0x4c]
	mov r1, #0
	add r2, r6, #0
	bl memset
	add r0, r5, #0
	mov r1, #4
	add r0, #0x3b
	strb r1, [r0]
	ldr r0, [r5, #0x4c]
	bl Title_SetupMonAnimationSprites
	ldr r0, [r5, #0xc]
	mov r1, #1
	str r0, [r5, #0x40]
	ldr r0, _021D9588 ; =gSystem + 0x60
	strb r1, [r0, #5]
	bl GfGfx_SwapDisplay
	ldr r6, _021D958C ; =ov63_021DBDE8
	ldr r7, _021D9590 ; =ov63_021DBAD0
	mov r4, #0
_021D950C:
	mov r0, #0xc
	add r1, r4, #0
	mul r1, r0
	add r3, r6, r1
	ldr r2, [r3, #4]
	ldr r1, [r6, r1]
	ldr r3, [r3, #8]
	lsl r1, r1, #0x10
	lsl r2, r2, #0x10
	lsl r3, r3, #0x10
	add r0, r4, #0
	asr r1, r1, #0x10
	asr r2, r2, #0x10
	asr r3, r3, #0x10
	bl NNS_G3dGlbLightVector
	lsl r1, r4, #1
	ldrh r1, [r7, r1]
	add r0, r4, #0
	bl NNS_G3dGlbLightColor
	add r0, r4, #1
	lsl r0, r0, #0x18
	lsr r4, r0, #0x18
	cmp r4, #4
	blo _021D950C
	ldr r0, _021D9594 ; =0x00004210
	ldr r1, _021D9598 ; =0x0000318A
	mov r2, #0
	bl NNS_G3dGlbMaterialColorDiffAmb
	ldr r0, _021D959C ; =0x00004A52
	ldr r1, _021D95A0 ; =0x000039CE
	mov r2, #0
	bl NNS_G3dGlbMaterialColorSpecEmi
	mov r0, #0x1f
	str r0, [sp]
	mov r0, #2
	lsl r0, r0, #0xe
	mov r1, #0
	str r0, [sp, #4]
	mov r0, #0xd
	mov r2, #2
	add r3, r1, #0
	bl NNS_G3dGlbPolygonAttr
	ldr r0, _021D95A4 ; =ov63_021D8CB0
	add r1, r5, #0
	bl Main_SetVBlankIntrCB
	mov r0, #0x10
	mov r1, #1
	mov r2, #2
	bl SetBlendBrightness
	mov r0, #1
	add r5, #0x36
	strb r0, [r5]
	add sp, #8
	pop {r3, r4, r5, r6, r7, pc}
	nop
_021D9588: .word gSystem + 0x60
_021D958C: .word ov63_021DBDE8
_021D9590: .word ov63_021DBAD0
_021D9594: .word 0x00004210
_021D9598: .word 0x0000318A
_021D959C: .word 0x00004A52
_021D95A0: .word 0x000039CE
_021D95A4: .word ov63_021D8CB0
	thumb_func_end ov63_021D9498

	thumb_func_start ov63_021D95A8
ov63_021D95A8: ; 0x021D95A8
	push {r4, r5, r6, lr}
	mov r2, #1
	lsl r2, r2, #0x1a
	add r5, r0, #0
	ldr r1, [r2]
	ldr r0, _021D969C ; =0xFFFF1FFF
	and r0, r1
	str r0, [r2]
	add r0, r5, #0
	add r0, #0x38
	ldrb r0, [r0]
	cmp r0, #0
	beq _021D95F6
	bl Camera_UnsetStaticPtr
	ldr r0, [r5, #0x78]
	bl Camera_Delete
	mov r4, #0
	mov r6, #0x58
_021D95D0:
	add r0, r4, #0
	mul r0, r6
	add r0, r5, r0
	add r0, #0xd0
	ldr r0, [r0]
	bl FreeToHeap
	add r0, r4, #1
	lsl r0, r0, #0x18
	lsr r4, r0, #0x18
	cmp r4, #6
	blo _021D95D0
	ldr r0, [r5, #0x70]
	bl FreeToHeap
	add r0, r5, #0
	mov r1, #0
	add r0, #0x38
	strb r1, [r0]
_021D95F6:
	add r0, r5, #0
	add r0, #0x37
	ldrb r0, [r0]
	cmp r0, #0
	beq _021D9624
	ldr r0, [r5, #0x44]
	bl ov63_021DAA04
	mov r4, #0
_021D9608:
	lsl r0, r4, #2
	add r0, r5, r0
	ldr r0, [r0, #0x50]
	bl FreeToHeap
	add r0, r4, #1
	lsl r0, r0, #0x18
	lsr r4, r0, #0x18
	cmp r4, #4
	blo _021D9608
	add r0, r5, #0
	mov r1, #0
	add r0, #0x37
	strb r1, [r0]
_021D9624:
	add r0, r5, #0
	add r0, #0x36
	ldrb r0, [r0]
	cmp r0, #0
	beq _021D9690
	ldr r0, [r5, #0x48]
	cmp r0, #0
	beq _021D963C
	bl ov63_021DAF4C
	mov r0, #0
	str r0, [r5, #0x48]
_021D963C:
	ldr r0, [r5, #0x44]
	cmp r0, #0
	beq _021D964A
	bl FreeToHeap
	mov r0, #0
	str r0, [r5, #0x44]
_021D964A:
	ldr r0, [r5, #0x4c]
	cmp r0, #0
	beq _021D965E
	bl ov63_021DB580
	ldr r0, [r5, #0x4c]
	bl FreeToHeap
	mov r0, #0
	str r0, [r5, #0x4c]
_021D965E:
	ldr r0, [r5, #0xc]
	mov r1, #3
	bl FreeBgTilemapBuffer
	ldr r0, [r5, #0xc]
	mov r1, #1
	bl FreeBgTilemapBuffer
	ldr r0, [r5, #0xc]
	mov r1, #2
	bl FreeBgTilemapBuffer
	ldr r0, [r5, #0xc]
	mov r1, #4
	bl FreeBgTilemapBuffer
	ldr r0, [r5, #0xc]
	bl FreeToHeap
	ldr r0, [r5, #0x10]
	bl sub_020223BC
	mov r0, #0
	add r5, #0x36
	strb r0, [r5]
_021D9690:
	mov r0, #0
	add r1, r0, #0
	bl Main_SetVBlankIntrCB
	pop {r4, r5, r6, pc}
	nop
_021D969C: .word 0xFFFF1FFF
	thumb_func_end ov63_021D95A8

	thumb_func_start ov63_021D96A0
ov63_021D96A0: ; 0x021D96A0
	push {r3, r4, r5, r6, r7, lr}
	sub sp, #0x28
	ldr r3, _021D980C ; =ov63_021DBB2C
	add r2, sp, #0x18
	add r5, r0, #0
	ldmia r3!, {r0, r1}
	stmia r2!, {r0, r1}
	ldmia r3!, {r0, r1}
	stmia r2!, {r0, r1}
	mov r0, #0x80
	mov r1, #0x4c
	bl NARC_New
	str r0, [sp, #0x10]
	add r0, r5, #0
	str r0, [sp, #0x14]
	add r0, #0x2c
	mov r4, #0
	str r0, [sp, #0x14]
_021D96C6:
	lsl r7, r4, #2
	add r1, sp, #0x18
	ldr r0, [sp, #0x10]
	ldr r1, [r1, r7]
	mov r2, #0x4c
	add r6, r5, r7
	bl NARC_AllocAndReadWholeMember
	str r0, [r6, #0x1c]
	cmp r0, #0
	beq _021D96F4
	ldr r1, [sp, #0x14]
	add r1, r1, r7
	bl NNS_G2dGetUnpackedPaletteData
	cmp r0, #0
	bne _021D96F8
	ldr r0, [r6, #0x2c]
	bl FreeToHeap
	bl GF_AssertFail
	b _021D96F8
_021D96F4:
	bl GF_AssertFail
_021D96F8:
	add r0, r4, #1
	lsl r0, r0, #0x18
	lsr r4, r0, #0x18
	cmp r4, #4
	blo _021D96C6
	ldr r0, [sp, #0x10]
	bl NARC_Delete
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r5, #0xc]
	mov r0, #0x80
	mov r1, #0x1c
	mov r3, #3
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r5, #0xc]
	mov r0, #0x80
	mov r1, #0x1a
	mov r3, #3
	bl GfGfxLoader_LoadScrnData
	mov r1, #0
	str r1, [sp]
	ldr r0, [r5, #0x2c]
	mov r2, #0xa
	add r3, r1, #0
	bl ov63_021D9EA8
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r5, #0xc]
	mov r0, #0x80
	mov r1, #0x11
	mov r3, #4
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r5, #0xc]
	mov r0, #0x80
	mov r1, #0xf
	mov r3, #4
	bl GfGfxLoader_LoadScrnData
	mov r0, #1
	lsl r0, r0, #8
	str r0, [sp]
	mov r0, #0x4c
	str r0, [sp, #4]
	mov r0, #0x80
	mov r1, #0x10
	mov r2, #4
	mov r3, #0
	bl GfGfxLoader_GXLoadPal
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r5, #0xc]
	mov r0, #0x80
	mov r1, #0x1b
	mov r3, #1
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r5, #0xc]
	mov r0, #0x80
	mov r1, #0x19
	mov r3, #1
	bl GfGfxLoader_LoadScrnData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r5, #0xc]
	mov r0, #0x80
	mov r1, #0x18
	mov r3, #2
	bl GfGfxLoader_LoadScrnData
	ldr r0, [r5, #0x10]
	bl ov63_021DA6E8
	ldr r0, [r5, #0x10]
	bl ov63_021DAA5C
	ldr r0, [r5, #0x10]
	ldr r1, [r5, #0x14]
	bl ov63_021DABCC
	mov r0, #0xe
	mov r1, #0
	bl GfGfx_EngineATogglePlanes
	mov r0, #1
	mov r1, #0
	bl GfGfx_EngineBTogglePlanes
	mov r0, #0
	bl SetMasterBrightnessNeutral
	mov r0, #1
	bl SetMasterBrightnessNeutral
	mov r0, #1
	strb r0, [r5, #3]
	add sp, #0x28
	pop {r3, r4, r5, r6, r7, pc}
	.align 2, 0
_021D980C: .word ov63_021DBB2C
	thumb_func_end ov63_021D96A0

	thumb_func_start ov63_021D9810
ov63_021D9810: ; 0x021D9810
	push {r4, r5, r6, r7, lr}
	sub sp, #0x2c
	add r5, r0, #0
	mov r0, #0x80
	mov r1, #0x46
	mov r2, #0x4c
	bl AllocAndReadWholeNarcMemberByIdPair
	str r0, [r5, #0x3c]
	bl NNS_G3dGetTex
	str r0, [r5, #0x40]
	bl sub_0201B3C4
	cmp r0, #0
	bne _021D9834
	bl GF_AssertFail
_021D9834:
	ldr r0, [r5, #0x40]
	ldr r0, [r0, #0x14]
	cmp r0, #0
	bne _021D9840
	bl GF_AssertFail
_021D9840:
	ldr r2, [r5, #0x40]
	ldr r0, [r5, #0x3c]
	ldr r1, [r2, #0x14]
	add r1, r2, r1
	sub r1, r1, r0
	bl ReallocFromHeap
	mov r0, #0x80
	mov r1, #0x4c
	bl NARC_New
	str r0, [sp, #0xc]
	add r0, r5, #0
	str r0, [sp, #0x10]
	add r0, #0x48
	mov r7, #0
	str r0, [sp, #0x10]
_021D9862:
	ldr r1, _021D9964 ; =ov63_021DBB90
	lsl r2, r7, #2
	ldr r1, [r1, r2]
	mov r0, #0x58
	add r6, r7, #0
	mul r6, r0
	ldr r0, [sp, #0xc]
	mov r2, #0x4c
	bl NARC_AllocAndReadWholeMember
	add r1, r5, r6
	add r1, #0x9c
	str r0, [r1]
	add r0, r5, r6
	add r0, #0x9c
	ldr r0, [r0]
	ldr r1, [r5, #0x40]
	bl sub_0201B3A8
	cmp r0, #0
	bne _021D9890
	bl GF_AssertFail
_021D9890:
	add r0, r5, r6
	add r0, #0x9c
	ldr r0, [r0]
	bl NNS_G3dGetMdlSet
	ldrb r0, [r0, #9]
	cmp r0, #1
	beq _021D98A4
	bl GF_AssertFail
_021D98A4:
	add r0, r5, r6
	add r0, #0x9c
	ldr r0, [r0]
	bl NNS_G3dGetMdlSet
	ldrh r1, [r0, #0xe]
	add r1, r0, r1
	ldr r1, [r1, #0xc]
	add r4, r0, r1
	bne _021D98BC
	bl GF_AssertFail
_021D98BC:
	ldr r0, [sp, #0x10]
	add r1, r4, #0
	add r0, r0, r6
	bl NNS_G3dRenderObjInit
	add r0, r4, #0
	mov r1, #0
	mov r2, #0x40
	bl NNSi_G3dModifyMatFlag
	add r0, r4, #0
	mov r1, #0
	mov r2, #0x80
	bl NNSi_G3dModifyMatFlag
	mov r2, #2
	add r0, r4, #0
	mov r1, #0
	lsl r2, r2, #8
	bl NNSi_G3dModifyMatFlag
	mov r2, #1
	add r0, r4, #0
	mov r1, #0
	lsl r2, r2, #0xa
	bl NNSi_G3dModifyMatFlag
	add r0, r4, #0
	mov r1, #0
	mov r2, #0xf
	bl NNSi_G3dModifyPolygonAttrMask
	add r0, r7, #1
	lsl r0, r0, #0x18
	lsr r7, r0, #0x18
	cmp r7, #6
	blo _021D9862
	ldr r0, [sp, #0xc]
	bl NARC_Delete
	mov r0, #0x4c
	bl Camera_New
	add r3, sp, #0x20
	ldr r4, _021D9968 ; =ov63_021DBAE4
	str r0, [r5, #0x44]
	ldmia r4!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldr r0, [r4]
	ldr r1, _021D996C ; =0x0029AEC1
	str r0, [r3]
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	ldr r0, [r5, #0x44]
	ldr r3, _021D9970 ; =0x000005C1
	str r0, [sp, #8]
	add r0, r2, #0
	ldr r2, _021D9974 ; =ov63_021DBB80
	bl Camera_Init_FromTargetDistanceAndAngle
	ldr r0, _021D9978 ; =0x00000981
	ldr r1, [r5, #0x44]
	bl Camera_SetPerspectiveAngle
	ldr r4, _021D997C ; =ov63_021DBB08
	add r3, sp, #0x14
	ldmia r4!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldr r0, [r4]
	str r0, [r3]
	ldr r1, [r5, #0x44]
	add r0, r2, #0
	bl Camera_OffsetLookAtPosAndTarget
	ldr r0, [r5, #0x44]
	bl Camera_SetStaticPtr
	mov r0, #1
	strb r0, [r5, #4]
	add sp, #0x2c
	pop {r4, r5, r6, r7, pc}
	.align 2, 0
_021D9964: .word ov63_021DBB90
_021D9968: .word ov63_021DBAE4
_021D996C: .word 0x0029AEC1
_021D9970: .word 0x000005C1
_021D9974: .word ov63_021DBB80
_021D9978: .word 0x00000981
_021D997C: .word ov63_021DBB08
	thumb_func_end ov63_021D9810

	thumb_func_start ov63_021D9980
ov63_021D9980: ; 0x021D9980
	push {r4, r5, r6, r7, lr}
	sub sp, #0x3c
	ldr r4, _021D99E4 ; =ov63_021DBD4C
	add r5, r0, #0
	add r3, sp, #0x18
	mov r2, #4
_021D998C:
	ldmia r4!, {r0, r1}
	stmia r3!, {r0, r1}
	sub r2, r2, #1
	bne _021D998C
	ldr r0, [r4]
	add r2, sp, #0xc
	str r0, [r3]
	ldr r3, _021D99E8 ; =ov63_021DBAFC
	ldmia r3!, {r0, r1}
	stmia r2!, {r0, r1}
	ldr r0, [r3]
	add r1, sp, #0
	str r0, [r2]
	mov r0, #0
	str r0, [r1]
	str r0, [r1, #4]
	str r0, [r1, #8]
	bl sub_020222AC
	bl Camera_PushLookAtToNNSGlb
	mov r4, #0
	add r5, #0x48
	add r7, sp, #0
	mov r6, #0x58
_021D99BE:
	add r0, r4, #0
	mul r0, r6
	add r0, r5, r0
	add r1, r7, #0
	add r2, sp, #0x18
	add r3, sp, #0xc
	bl sub_0201B26C
	add r0, r4, #1
	lsl r0, r0, #0x18
	lsr r4, r0, #0x18
	cmp r4, #6
	blo _021D99BE
	mov r0, #0
	mov r1, #1
	bl sub_020222B4
	add sp, #0x3c
	pop {r4, r5, r6, r7, pc}
	.align 2, 0
_021D99E4: .word ov63_021DBD4C
_021D99E8: .word ov63_021DBAFC
	thumb_func_end ov63_021D9980

	thumb_func_start ov63_021D99EC
ov63_021D99EC: ; 0x021D99EC
	push {r4, r5, lr}
	sub sp, #0xc
	add r4, r0, #0
	ldrb r0, [r4, #6]
	add r5, r1, #0
	cmp r0, #0
	bne _021D9A00
	ldr r0, [r4, #0x14]
	bl ov63_021DB38C
_021D9A00:
	ldrb r0, [r4, #6]
	ldrb r1, [r4, #7]
	add r0, r0, #1
	bl _s32_div_f
	strb r1, [r4, #6]
	ldrb r0, [r4, #1]
	cmp r0, #0x11
	bhi _021D9B0C
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_021D9A1E: ; jump table
	.short _021D9A42 - _021D9A1E - 2 ; case 0
	.short _021D9A6A - _021D9A1E - 2 ; case 1
	.short _021D9A7A - _021D9A1E - 2 ; case 2
	.short _021D9AB8 - _021D9A1E - 2 ; case 3
	.short _021D9AEE - _021D9A1E - 2 ; case 4
	.short _021D9B3E - _021D9A1E - 2 ; case 5
	.short _021D9B72 - _021D9A1E - 2 ; case 6
	.short _021D9BC8 - _021D9A1E - 2 ; case 7
	.short _021D9C04 - _021D9A1E - 2 ; case 8
	.short _021D9C70 - _021D9A1E - 2 ; case 9
	.short _021D9CB4 - _021D9A1E - 2 ; case 10
	.short _021D9CFC - _021D9A1E - 2 ; case 11
	.short _021D9D38 - _021D9A1E - 2 ; case 12
	.short _021D9D94 - _021D9A1E - 2 ; case 13
	.short _021D9DF8 - _021D9A1E - 2 ; case 14
	.short _021D9E48 - _021D9A1E - 2 ; case 15
	.short _021D9E84 - _021D9A1E - 2 ; case 16
	.short _021D9E9A - _021D9A1E - 2 ; case 17
_021D9A42:
	mov r0, #0xa
	lsl r0, r0, #6
	cmp r5, r0
	blt _021D9B0C
	mov r0, #1
	add r1, r0, #0
	bl GfGfx_EngineBTogglePlanes
	mov r0, #2
	str r0, [sp]
	mov r0, #8
	mov r1, #0
	mov r2, #0x10
	mov r3, #1
	bl StartBrightnessTransition
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9A6A:
	ldr r0, [r4, #0x10]
	mov r1, #1
	bl ov63_021DACA0
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9A7A:
	ldr r0, _021D9DCC ; =0x000002E9
	cmp r5, r0
	bne _021D9A88
	mov r0, #0x10
	mov r1, #1
	bl GfGfx_EngineBTogglePlanes
_021D9A88:
	ldr r0, _021D9DD0 ; =0x000003C5
	cmp r5, r0
	blt _021D9B0C
	mov r0, #7
	mov r1, #1
	bl GfGfx_EngineATogglePlanes
	mov r0, #0x12
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	ldr r3, _021D9DD4 ; =0x00007FFF
	mov r0, #3
	add r2, r1, #0
	bl BeginNormalPaletteFade
	mov r0, #0x10
	strb r0, [r4, #7]
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9AB8:
	add r0, r4, #0
	add r1, r5, #0
	bl ov63_021D9F38
	ldr r0, [r4, #0x10]
	add r1, r5, #0
	bl ov63_021DAD6C
	ldr r0, _021D9DD8 ; =0x00000631
	cmp r5, r0
	blt _021D9B0C
	mov r0, #0x12
	str r0, [sp]
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	mov r1, #0
	str r0, [sp, #8]
	ldr r3, _021D9DD4 ; =0x00007FFF
	mov r0, #3
	add r2, r1, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9AEE:
	add r0, r4, #0
	add r1, r5, #0
	bl ov63_021D9F38
	ldr r0, [r4, #0x10]
	add r1, r5, #0
	bl ov63_021DAD6C
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9B0C
	ldr r0, _021D9DDC ; =0x0000064A
	cmp r5, r0
	bge _021D9B0E
_021D9B0C:
	b _021D9EA0
_021D9B0E:
	ldr r0, [r4, #0x10]
	mov r1, #0
	mov r2, #1
	bl ov63_021DAC24
	bl ov63_021D8CC0
	mov r0, #0
	strb r0, [r4, #5]
	mov r0, #0x12
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	ldr r3, _021D9DD4 ; =0x00007FFF
	mov r0, #3
	add r2, r1, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9B3E:
	add r0, r4, #0
	bl ov63_021D9EE0
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9C12
	ldr r0, _021D9DE0 ; =0x000006B3
	cmp r5, r0
	blt _021D9C12
	mov r0, #4
	str r0, [sp]
	mov r1, #0
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	add r3, r1, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9B72:
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9C12
	mov r1, #0
	ldr r0, _021D9DE4 ; =0x04000050
	mov r2, #0x38
	add r3, r1, #0
	str r1, [sp]
	bl G2x_SetBlendAlpha_
	mov r0, #6
	mov r1, #0
	bl GfGfx_EngineATogglePlanes
	mov r0, #8
	mov r1, #1
	bl GfGfx_EngineATogglePlanes
	mov r0, #1
	add r1, r0, #0
	bl GfGfx_EngineATogglePlanes
	mov r1, #0
	ldr r0, [r4, #0x10]
	add r2, r1, #0
	bl ov63_021DAD18
	mov r0, #4
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	mov r3, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9BC8:
	add r0, r4, #0
	bl ov63_021D9F20
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9C12
	ldr r0, [r4, #0x18]
	mov r1, #0
	add r2, r5, #0
	bl ov63_021DB5CC
	cmp r0, #0
	beq _021D9C12
	mov r0, #4
	str r0, [sp]
	mov r1, #0
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	add r3, r1, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9C04:
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9C12
	ldr r0, _021D9DE8 ; =0x00000721
	cmp r5, r0
	bge _021D9C14
_021D9C12:
	b _021D9EA0
_021D9C14:
	ldr r0, [r4, #0x10]
	mov r1, #1
	bl ov63_021DACA0
	mov r1, #0
	ldr r0, [r4, #0x10]
	add r2, r1, #0
	bl ov63_021DAC24
	mov r1, #1
	ldr r0, [r4, #0x10]
	add r2, r1, #0
	bl ov63_021DAC24
	ldr r0, [r4, #0x10]
	mov r1, #0
	mov r2, #1
	bl ov63_021DAD18
	mov r1, #0
	str r1, [sp]
	ldr r0, [r4, #0x38]
	mov r2, #7
	add r3, r1, #0
	bl ov63_021D9EA8
	ldr r0, [r4, #0x10]
	mov r1, #2
	mov r2, #1
	bl ov63_021DAC24
	mov r0, #4
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	mov r3, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9C70:
	add r0, r4, #0
	bl ov63_021D9F20
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9D46
	ldr r0, _021D9DE8 ; =0x00000721
	cmp r5, r0
	blt _021D9D46
	ldr r0, [r4, #0x10]
	bl ov63_021DACC0
	cmp r0, #0
	beq _021D9D46
	ldr r0, _021D9DEC ; =0x00000785
	cmp r5, r0
	blt _021D9D46
	mov r0, #4
	str r0, [sp]
	mov r1, #0
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	add r3, r1, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9CB4:
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9D46
	ldr r0, [r4, #0x10]
	mov r1, #1
	mov r2, #0
	bl ov63_021DAD18
	mov r1, #0
	str r1, [sp]
	ldr r0, [r4, #0x30]
	mov r2, #7
	add r3, r1, #0
	bl ov63_021D9EA8
	ldr r0, [r4, #0x10]
	mov r1, #2
	mov r2, #0
	bl ov63_021DAC24
	mov r0, #4
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	mov r3, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9CFC:
	add r0, r4, #0
	bl ov63_021D9F20
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9D46
	ldr r0, [r4, #0x18]
	mov r1, #1
	add r2, r5, #0
	bl ov63_021DB5CC
	cmp r0, #0
	beq _021D9D46
	mov r0, #4
	str r0, [sp]
	mov r1, #0
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	add r3, r1, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9D38:
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9D46
	ldr r0, _021D9DF0 ; =0x000007F8
	cmp r5, r0
	bgt _021D9D48
_021D9D46:
	b _021D9EA0
_021D9D48:
	mov r1, #1
	ldr r0, [r4, #0x10]
	add r2, r1, #0
	bl ov63_021DAD18
	mov r0, #4
	mov r1, #1
	bl GfGfx_EngineATogglePlanes
	ldr r0, [r4, #0x10]
	mov r1, #0
	mov r2, #1
	bl ov63_021DAC24
	ldr r0, [r4, #0x10]
	bl ov63_021DAC6C
	ldr r0, [r4, #0x10]
	mov r1, #4
	bl ov63_021DAC80
	mov r0, #4
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	mov r3, #0
	bl BeginNormalPaletteFade
	mov r0, #0
	str r0, [r4, #8]
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9D94:
	add r0, r4, #0
	bl ov63_021D9F00
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9EA0
	ldr r0, _021D9DF4 ; =0x00000861
	cmp r5, r0
	ble _021D9EA0
	mov r0, #4
	str r0, [sp]
	mov r1, #0
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	add r3, r1, #0
	bl BeginNormalPaletteFade
	mov r0, #0
	str r0, [r4, #8]
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
	.align 2, 0
_021D9DCC: .word 0x000002E9
_021D9DD0: .word 0x000003C5
_021D9DD4: .word 0x00007FFF
_021D9DD8: .word 0x00000631
_021D9DDC: .word 0x0000064A
_021D9DE0: .word 0x000006B3
_021D9DE4: .word 0x04000050
_021D9DE8: .word 0x00000721
_021D9DEC: .word 0x00000785
_021D9DF0: .word 0x000007F8
_021D9DF4: .word 0x00000861
_021D9DF8:
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9EA0
	mov r1, #0
	ldr r0, [r4, #0x10]
	add r2, r1, #0
	bl ov63_021DAD18
	ldr r0, [r4, #0x10]
	mov r1, #1
	mov r2, #0
	bl ov63_021DAD18
	mov r1, #0
	str r1, [sp]
	ldr r0, [r4, #0x34]
	mov r2, #7
	add r3, r1, #0
	bl ov63_021D9EA8
	mov r0, #4
	mov r1, #0
	bl GfGfx_EngineATogglePlanes
	mov r0, #4
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #3
	add r2, r1, #0
	mov r3, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9E48:
	add r0, r4, #0
	bl ov63_021D9F20
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9EA0
	ldr r0, [r4, #0x18]
	mov r1, #2
	add r2, r5, #0
	bl ov63_021DB5CC
	cmp r0, #0
	beq _021D9EA0
	mov r0, #0x12
	str r0, [sp]
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #0
	add r1, r0, #0
	add r2, r0, #0
	add r3, r0, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9E84:
	add r0, r4, #0
	bl ov63_021D9F20
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021D9EA0
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021D9EA0
_021D9E9A:
	add sp, #0xc
	mov r0, #1
	pop {r4, r5, pc}
_021D9EA0:
	mov r0, #0
	add sp, #0xc
	pop {r4, r5, pc}
	.align 2, 0
	thumb_func_end ov63_021D99EC

	thumb_func_start ov63_021D9EA8
ov63_021D9EA8: ; 0x021D9EA8
	push {r3, r4, r5, r6, r7, lr}
	add r5, r0, #0
	lsl r7, r2, #5
	add r6, r1, #0
	ldr r0, [r5, #0xc]
	add r1, r7, #0
	add r4, r3, #0
	bl DC_FlushRange
	ldr r1, [r5, #0xc]
	cmp r6, #0
	bne _021D9ED0
	lsl r0, r4, #1
	add r0, r1, r0
	add r1, sp, #8
	ldrb r1, [r1, #0x10]
	add r2, r7, #0
	bl GX_LoadBGPltt
	pop {r3, r4, r5, r6, r7, pc}
_021D9ED0:
	lsl r0, r4, #1
	add r0, r1, r0
	add r1, sp, #8
	ldrb r1, [r1, #0x10]
	add r2, r7, #0
	bl GXS_LoadBGPltt
	pop {r3, r4, r5, r6, r7, pc}
	thumb_func_end ov63_021D9EA8

	thumb_func_start ov63_021D9EE0
ov63_021D9EE0: ; 0x021D9EE0
	push {r4, lr}
	add r4, r0, #0
	ldr r1, [r4, #8]
	add r0, r1, #1
	str r0, [r4, #8]
	cmp r1, #0x18
	ble _021D9EFE
	mov r2, #4
	ldr r0, [r4, #0xc]
	mov r1, #1
	sub r3, r2, #5
	bl BgSetPosTextAndCommit
	mov r0, #0
	str r0, [r4, #8]
_021D9EFE:
	pop {r4, pc}
	thumb_func_end ov63_021D9EE0

	thumb_func_start ov63_021D9F00
ov63_021D9F00: ; 0x021D9F00
	push {r4, lr}
	add r4, r0, #0
	ldr r1, [r4, #8]
	add r0, r1, #1
	str r0, [r4, #8]
	cmp r1, #3
	ble _021D9F1E
	mov r2, #1
	ldr r0, [r4, #0xc]
	mov r1, #2
	add r3, r2, #0
	bl BgSetPosTextAndCommit
	mov r0, #0
	str r0, [r4, #8]
_021D9F1E:
	pop {r4, pc}
	thumb_func_end ov63_021D9F00

	thumb_func_start ov63_021D9F20
ov63_021D9F20: ; 0x021D9F20
	push {r4, lr}
	add r4, r0, #0
	mov r2, #1
	add r3, r2, #0
	ldr r0, [r4, #0xc]
	mov r1, #3
	sub r3, #0x11
	bl BgSetPosTextAndCommit
	mov r0, #0
	str r0, [r4, #8]
	pop {r4, pc}
	thumb_func_end ov63_021D9F20

	thumb_func_start ov63_021D9F38
ov63_021D9F38: ; 0x021D9F38
	push {r4, r5, r6, lr}
	sub sp, #0x50
	add r4, r0, #0
	add r5, r1, #0
	add r0, sp, #0x44
	mov r1, #0
	str r1, [r0]
	str r1, [r0, #4]
	str r1, [r0, #8]
	ldr r1, _021DA078 ; =0x000004AB
	cmp r5, r1
	bgt _021D9FE2
	ldr r0, [r4, #0x44]
	bl Camera_GetPerspectiveAngle
	ldr r1, _021DA07C ; =0x000005C1
	sub r0, #0x20
	cmp r0, r1
	ble _021D9F68
	ldr r0, _021DA080 ; =0x0000FFE0
	ldr r1, [r4, #0x44]
	bl Camera_AdjustPerspectiveAngle
	b _021D9F70
_021D9F68:
	add r0, r1, #0
	ldr r1, [r4, #0x44]
	bl Camera_SetPerspectiveAngle
_021D9F70:
	mov r0, #2
	ldr r1, [sp, #0x4c]
	lsl r0, r0, #0xc
	sub r0, r1, r0
	str r0, [sp, #0x4c]
	ldr r1, [r4, #0x44]
	add r0, sp, #0x44
	bl Camera_OffsetLookAtPosAndTarget
	ldr r0, _021DA078 ; =0x000004AB
	cmp r5, r0
	bne _021DA074
	ldr r5, _021DA084 ; =ov63_021DBAD8
	add r3, sp, #0x38
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	ldr r1, _021DA088 ; =0x0029AEC1
	str r0, [r3]
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	ldr r0, [r4, #0x44]
	ldr r3, _021DA07C ; =0x000005C1
	str r0, [sp, #8]
	add r0, r2, #0
	ldr r2, _021DA08C ; =ov63_021DBB80
	bl Camera_Init_FromTargetDistanceAndAngle
	ldr r5, _021DA090 ; =ov63_021DBB20
	add r3, sp, #0x2c
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	str r0, [r3]
	ldr r1, [r4, #0x44]
	add r0, r2, #0
	bl Camera_OffsetLookAtPosAndTarget
	ldr r2, _021DA094 ; =ov63_021DBAC8
	add r1, sp, #0xc
	ldrh r3, [r2]
	add r0, sp, #0xc
	strh r3, [r1]
	ldrh r3, [r2, #2]
	strh r3, [r1, #2]
	ldrh r3, [r2, #4]
	ldrh r2, [r2, #6]
	strh r3, [r1, #4]
	strh r2, [r1, #6]
	ldr r1, [r4, #0x44]
	bl Camera_AdjustAngleTarget
	add sp, #0x50
	pop {r4, r5, r6, pc}
_021D9FE2:
	add r1, #0xd2
	cmp r5, r1
	bgt _021DA044
	mov r1, #1
	ldr r2, [sp, #0x44]
	lsl r1, r1, #0xc
	add r1, r2, r1
	str r1, [sp, #0x44]
	ldr r1, [r4, #0x44]
	bl Camera_OffsetLookAtPosAndTarget
	ldr r3, _021DA098 ; =0x0000057D
	cmp r5, r3
	bne _021DA074
	ldr r6, _021DA09C ; =ov63_021DBB14
	add r5, sp, #0x20
	ldmia r6!, {r0, r1}
	add r2, r5, #0
	stmia r5!, {r0, r1}
	ldr r0, [r6]
	ldr r1, _021DA088 ; =0x0029AEC1
	str r0, [r5]
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	ldr r0, [r4, #0x44]
	add r3, #0x44
	str r0, [sp, #8]
	add r0, r2, #0
	ldr r2, _021DA08C ; =ov63_021DBB80
	bl Camera_Init_FromTargetDistanceAndAngle
	ldr r0, _021DA07C ; =0x000005C1
	ldr r1, [r4, #0x44]
	bl Camera_SetPerspectiveAngle
	ldr r5, _021DA0A0 ; =ov63_021DBAF0
	add r3, sp, #0x14
	ldmia r5!, {r0, r1}
	add r2, r3, #0
	stmia r3!, {r0, r1}
	ldr r0, [r5]
	str r0, [r3]
	ldr r1, [r4, #0x44]
	add r0, r2, #0
	bl Camera_OffsetLookAtPosAndTarget
	add sp, #0x50
	pop {r4, r5, r6, pc}
_021DA044:
	ldr r0, _021DA0A4 ; =0x00000618
	cmp r5, r0
	blt _021DA062
	ldr r0, [r4, #0x44]
	bl Camera_GetPerspectiveAngle
	mov r1, #1
	add r0, #0x20
	lsl r1, r1, #0xe
	cmp r0, r1
	bge _021DA062
	ldr r1, [r4, #0x44]
	mov r0, #0x20
	bl Camera_AdjustPerspectiveAngle
_021DA062:
	mov r0, #1
	ldr r1, [sp, #0x4c]
	lsl r0, r0, #0xe
	add r0, r1, r0
	str r0, [sp, #0x4c]
	ldr r1, [r4, #0x44]
	add r0, sp, #0x44
	bl Camera_OffsetLookAtPosAndTarget
_021DA074:
	add sp, #0x50
	pop {r4, r5, r6, pc}
	.align 2, 0
_021DA078: .word 0x000004AB
_021DA07C: .word 0x000005C1
_021DA080: .word 0x0000FFE0
_021DA084: .word ov63_021DBAD8
_021DA088: .word 0x0029AEC1
_021DA08C: .word ov63_021DBB80
_021DA090: .word ov63_021DBB20
_021DA094: .word ov63_021DBAC8
_021DA098: .word 0x0000057D
_021DA09C: .word ov63_021DBB14
_021DA0A0: .word ov63_021DBAF0
_021DA0A4: .word 0x00000618
	thumb_func_end ov63_021D9F38

	thumb_func_start ov63_021DA0A8
ov63_021DA0A8: ; 0x021DA0A8
	push {r3, r4, r5, lr}
	add r4, r0, #0
	ldr r0, [r4, #8]
	mov r5, #0xa3
	lsl r5, r5, #2
	cmp r0, #0
	beq _021DA0BA
	mov r0, #3
	strb r0, [r4, r5]
_021DA0BA:
	ldrb r0, [r4, r5]
	cmp r0, #3
	bhi _021DA116
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_021DA0CC: ; jump table
	.short _021DA0D4 - _021DA0CC - 2 ; case 0
	.short _021DA0E2 - _021DA0CC - 2 ; case 1
	.short _021DA0F4 - _021DA0CC - 2 ; case 2
	.short _021DA10C - _021DA0CC - 2 ; case 3
_021DA0D4:
	add r0, r4, #0
	bl ov63_021DA11C
	ldrb r0, [r4, r5]
	add r0, r0, #1
	strb r0, [r4, r5]
	b _021DA116
_021DA0E2:
	mov r0, #0xa3
	lsl r0, r0, #2
	add r0, r4, r0
	bl ov63_021DA158
	ldrb r0, [r4, r5]
	add r0, r0, #1
	strb r0, [r4, r5]
	b _021DA116
_021DA0F4:
	mov r0, #0xa3
	lsl r0, r0, #2
	ldr r1, [r4, #4]
	add r0, r4, r0
	bl ov63_021DA30C
	cmp r0, #0
	beq _021DA116
	ldrb r0, [r4, r5]
	add r0, r0, #1
	strb r0, [r4, r5]
	b _021DA116
_021DA10C:
	add r0, r4, #0
	bl ov63_021DA418
	mov r0, #1
	pop {r3, r4, r5, pc}
_021DA116:
	mov r0, #0
	pop {r3, r4, r5, pc}
	.align 2, 0
	thumb_func_end ov63_021DA0A8

	thumb_func_start ov63_021DA11C
ov63_021DA11C: ; 0x021DA11C
	push {r4, lr}
	add r4, r0, #0
	bl ov63_021D88D0
	add r0, r4, #0
	bl ov63_021D8ADC
	mov r0, #0xa6
	ldr r1, [r4, #0xc]
	lsl r0, r0, #2
	str r1, [r4, r0]
	mov r0, #0
	add r1, r0, #0
	bl sub_0200E3A0
	mov r0, #1
	mov r1, #0
	bl sub_0200E3A0
	ldr r0, _021DA150 ; =0x04000050
	mov r1, #0
	strh r1, [r0]
	ldr r0, _021DA154 ; =0x0000028E
	mov r1, #1
	strb r1, [r4, r0]
	pop {r4, pc}
	.align 2, 0
_021DA150: .word 0x04000050
_021DA154: .word 0x0000028E
	thumb_func_end ov63_021DA11C

	thumb_func_start ov63_021DA158
ov63_021DA158: ; 0x021DA158
	push {r3, r4, r5, lr}
	sub sp, #0x20
	add r4, r0, #0
	mov r0, #0x80
	mov r1, #0x4c
	bl NARC_New
	mov r1, #0x35
	mov r2, #0x4c
	add r5, r0, #0
	bl NARC_AllocAndReadWholeMember
	str r0, [r4, #0x10]
	cmp r0, #0
	beq _021DA18E
	add r1, r4, #0
	add r1, #0x14
	bl NNS_G2dGetUnpackedPaletteData
	cmp r0, #0
	bne _021DA192
	ldr r0, [r4, #0x14]
	bl FreeToHeap
	bl GF_AssertFail
	b _021DA192
_021DA18E:
	bl GF_AssertFail
_021DA192:
	add r0, r5, #0
	bl NARC_Delete
	mov r1, #0
	str r1, [sp]
	ldr r0, [r4, #0x14]
	mov r2, #9
	add r3, r1, #0
	bl ov63_021D9EA8
	mov r3, #0
	str r3, [sp]
	ldr r0, [r4, #0x14]
	mov r1, #1
	mov r2, #9
	bl ov63_021D9EA8
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x36
	mov r3, #1
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x3b
	mov r3, #1
	bl GfGfxLoader_LoadScrnData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x38
	mov r3, #2
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x3d
	mov r3, #2
	bl GfGfxLoader_LoadScrnData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x39
	mov r3, #3
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x3e
	mov r3, #3
	bl GfGfxLoader_LoadScrnData
	mov r3, #0
	str r3, [sp]
	str r3, [sp, #4]
	str r3, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x3a
	bl GfGfxLoader_LoadCharData
	mov r3, #0
	str r3, [sp]
	str r3, [sp, #4]
	str r3, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x3f
	bl GfGfxLoader_LoadScrnData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x37
	mov r3, #5
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	str r0, [sp, #8]
	mov r0, #0x4c
	str r0, [sp, #0xc]
	ldr r2, [r4, #0xc]
	mov r0, #0x80
	mov r1, #0x3c
	mov r3, #5
	bl GfGfxLoader_LoadScrnData
	mov r0, #0xe
	mov r1, #1
	bl GfGfx_EngineATogglePlanes
	mov r0, #1
	mov r1, #0
	bl GfGfx_EngineATogglePlanes
	mov r0, #2
	mov r1, #1
	bl GfGfx_EngineBTogglePlanes
	ldr r0, [r4, #0xc]
	mov r1, #3
	mov r2, #1
	mov r3, #0x40
	bl BgSetPosTextAndCommit
	mov r0, #1
	lsl r0, r0, #0xc
	bl FX_Inv
	add r5, r0, #0
	mov r0, #1
	lsl r0, r0, #0xc
	bl FX_Inv
	mov r1, #0
	str r5, [sp, #0x10]
	str r1, [sp, #0x14]
	str r1, [sp, #0x18]
	str r0, [sp, #0x1c]
	bl OS_WaitVBlankIntr
	mov r0, #0x60
	str r0, [sp]
	ldr r0, [r4, #0xc]
	mov r1, #2
	add r2, sp, #0x10
	mov r3, #0x80
	bl SetBgAffine
	mov r0, #0x60
	str r0, [sp]
	ldr r0, [r4, #0xc]
	mov r1, #3
	add r2, sp, #0x10
	mov r3, #0xc0
	bl SetBgAffine
	mov r0, #1
	strb r0, [r4, #3]
	add sp, #0x20
	pop {r3, r4, r5, pc}
	thumb_func_end ov63_021DA158

	thumb_func_start ov63_021DA30C
ov63_021DA30C: ; 0x021DA30C
	push {r4, r5, lr}
	sub sp, #0xc
	add r4, r0, #0
	add r5, r1, #0
	ldrb r1, [r4, #1]
	cmp r1, #3
	bhi _021DA3EC
	add r1, r1, r1
	add r1, pc
	ldrh r1, [r1, #6]
	lsl r1, r1, #0x10
	asr r1, r1, #0x10
	add pc, r1
_021DA326: ; jump table
	.short _021DA32E - _021DA326 - 2 ; case 0
	.short _021DA352 - _021DA326 - 2 ; case 1
	.short _021DA36A - _021DA326 - 2 ; case 2
	.short _021DA3DA - _021DA326 - 2 ; case 3
_021DA32E:
	ldr r0, _021DA3F8 ; =0x000008E3
	cmp r5, r0
	blt _021DA3EC
	mov r0, #0x78
	str r0, [sp]
	mov r1, #1
	str r1, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #0
	add r2, r1, #0
	add r3, r0, #0
	bl BeginNormalPaletteFade
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021DA3EC
_021DA352:
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021DA3EC
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	mov r0, #1
	lsl r0, r0, #0xc
	str r0, [r4, #4]
	str r0, [r4, #8]
	b _021DA3EC
_021DA36A:
	ldr r0, _021DA3FC ; =0x0000097E
	cmp r5, r0
	bne _021DA378
	add r0, r4, #0
	add r0, #0x18
	bl ov63_021DA588
_021DA378:
	ldr r0, _021DA400 ; =0x000009D3
	cmp r5, r0
	bne _021DA386
	add r0, r4, #0
	add r0, #0x18
	bl ov63_021DA588
_021DA386:
	ldr r0, _021DA404 ; =0x000009F1
	cmp r5, r0
	bne _021DA394
	add r0, r4, #0
	add r0, #0x18
	bl ov63_021DA588
_021DA394:
	ldr r0, _021DA408 ; =0x00000A1E
	cmp r5, r0
	bne _021DA3A2
	add r0, r4, #0
	add r0, #0x18
	bl ov63_021DA588
_021DA3A2:
	ldr r0, _021DA40C ; =0x00000A64
	cmp r5, r0
	blt _021DA3AE
	add r0, r4, #0
	bl ov63_021DA478
_021DA3AE:
	ldr r0, _021DA410 ; =0x00000A78
	cmp r5, r0
	blt _021DA3EC
	mov r0, #0x12
	str r0, [sp]
	mov r0, #1
	str r0, [sp, #4]
	mov r0, #0x4c
	str r0, [sp, #8]
	mov r0, #0
	ldr r3, _021DA414 ; =0x00007FFF
	add r1, r0, #0
	add r2, r0, #0
	bl BeginNormalPaletteFade
	add r0, r4, #0
	bl ov63_021DA504
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	b _021DA3EC
_021DA3DA:
	bl ov63_021DA504
	bl IsPaletteFadeFinished
	cmp r0, #0
	beq _021DA3EC
	add sp, #0xc
	mov r0, #1
	pop {r4, r5, pc}
_021DA3EC:
	add r0, r4, #0
	bl ov63_021DA5A0
	mov r0, #0
	add sp, #0xc
	pop {r4, r5, pc}
	.align 2, 0
_021DA3F8: .word 0x000008E3
_021DA3FC: .word 0x0000097E
_021DA400: .word 0x000009D3
_021DA404: .word 0x000009F1
_021DA408: .word 0x00000A1E
_021DA40C: .word 0x00000A64
_021DA410: .word 0x00000A78
_021DA414: .word 0x00007FFF
	thumb_func_end ov63_021DA30C

	thumb_func_start ov63_021DA418
ov63_021DA418: ; 0x021DA418
	push {r4, lr}
	add r4, r0, #0
	ldr r0, _021DA470 ; =0x0000028E
	ldrb r0, [r4, r0]
	cmp r0, #0
	beq _021DA458
	ldr r0, [r4, #0xc]
	mov r1, #1
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #2
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #3
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #0
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	mov r1, #5
	bl FreeBgTilemapBuffer
	ldr r0, [r4, #0xc]
	bl FreeToHeap
	ldr r0, _021DA470 ; =0x0000028E
	mov r1, #0
	strb r1, [r4, r0]
_021DA458:
	ldr r0, _021DA474 ; =0x0000028F
	ldrb r1, [r4, r0]
	cmp r1, #0
	beq _021DA46E
	add r0, #0xd
	ldr r0, [r4, r0]
	bl FreeToHeap
	ldr r0, _021DA474 ; =0x0000028F
	mov r1, #0
	strb r1, [r4, r0]
_021DA46E:
	pop {r4, pc}
	.align 2, 0
_021DA470: .word 0x0000028E
_021DA474: .word 0x0000028F
	thumb_func_end ov63_021DA418

	thumb_func_start ov63_021DA478
ov63_021DA478: ; 0x021DA478
	push {r4, r5, lr}
	sub sp, #0x2c
	add r4, r0, #0
	ldr r0, [r4, #4]
	bl FX_Inv
	add r5, r0, #0
	ldr r0, [r4, #4]
	bl FX_Inv
	mov r1, #0
	str r5, [sp, #0x1c]
	str r1, [sp, #0x20]
	str r1, [sp, #0x24]
	str r0, [sp, #0x28]
	ldr r0, [r4, #8]
	bl FX_Inv
	add r5, r0, #0
	ldr r0, [r4, #8]
	bl FX_Inv
	mov r1, #0
	str r5, [sp, #0xc]
	str r1, [sp, #0x10]
	str r1, [sp, #0x14]
	str r0, [sp, #0x18]
	bl OS_WaitVBlankIntr
	mov r0, #1
	ldr r1, [r4, #4]
	lsl r0, r0, #0xa
	add r1, r1, r0
	mov r0, #3
	lsl r0, r0, #0xc
	cmp r1, r0
	bgt _021DA4FE
	str r1, [r4, #4]
	add r0, sp, #0x1c
	str r0, [sp]
	mov r0, #0x80
	str r0, [sp, #4]
	mov r0, #0x5a
	str r0, [sp, #8]
	ldr r0, [r4, #0xc]
	mov r1, #2
	mov r2, #4
	mov r3, #1
	bl Bg_SetTextDimAndAffineParams
	mov r0, #1
	ldr r1, [r4, #8]
	lsl r0, r0, #0xa
	add r0, r1, r0
	str r0, [r4, #8]
	add r0, sp, #0xc
	str r0, [sp]
	mov r0, #0xc0
	str r0, [sp, #4]
	mov r0, #0x5a
	str r0, [sp, #8]
	ldr r0, [r4, #0xc]
	mov r1, #3
	mov r2, #4
	mov r3, #1
	bl Bg_SetTextDimAndAffineParams
_021DA4FE:
	add sp, #0x2c
	pop {r4, r5, pc}
	.align 2, 0
	thumb_func_end ov63_021DA478

	thumb_func_start ov63_021DA504
ov63_021DA504: ; 0x021DA504
	push {r4, r5, lr}
	sub sp, #0x2c
	add r4, r0, #0
	ldr r0, [r4, #4]
	bl FX_Inv
	add r5, r0, #0
	ldr r0, [r4, #4]
	bl FX_Inv
	mov r1, #0
	str r5, [sp, #0x1c]
	str r1, [sp, #0x20]
	str r1, [sp, #0x24]
	str r0, [sp, #0x28]
	ldr r0, [r4, #8]
	bl FX_Inv
	add r5, r0, #0
	ldr r0, [r4, #8]
	bl FX_Inv
	mov r1, #0
	str r5, [sp, #0xc]
	str r1, [sp, #0x10]
	str r1, [sp, #0x14]
	str r0, [sp, #0x18]
	bl OS_WaitVBlankIntr
	mov r0, #2
	ldr r1, [r4, #4]
	lsl r0, r0, #0xa
	add r0, r1, r0
	str r0, [r4, #4]
	add r0, sp, #0x1c
	str r0, [sp]
	mov r0, #0x80
	str r0, [sp, #4]
	mov r0, #0x5a
	str r0, [sp, #8]
	ldr r0, [r4, #0xc]
	mov r1, #2
	mov r2, #4
	mov r3, #1
	bl Bg_SetTextDimAndAffineParams
	mov r0, #2
	ldr r1, [r4, #8]
	lsl r0, r0, #0xa
	add r0, r1, r0
	str r0, [r4, #8]
	add r0, sp, #0xc
	str r0, [sp]
	mov r0, #0xc0
	str r0, [sp, #4]
	mov r0, #0x5a
	str r0, [sp, #8]
	ldr r0, [r4, #0xc]
	mov r1, #3
	mov r2, #4
	mov r3, #1
	bl Bg_SetTextDimAndAffineParams
	add sp, #0x2c
	pop {r4, r5, pc}
	.align 2, 0
	thumb_func_end ov63_021DA504

	thumb_func_start ov63_021DA588
ov63_021DA588: ; 0x021DA588
	mov r1, #1
	strb r1, [r0]
	mov r2, #6
	strb r2, [r0, #3]
	mov r2, #0
	strb r2, [r0, #1]
	ldr r3, _021DA59C ; =GfGfx_EngineATogglePlanes
	add r0, r1, #0
	bx r3
	nop
_021DA59C: .word GfGfx_EngineATogglePlanes
	thumb_func_end ov63_021DA588

	thumb_func_start ov63_021DA5A0
ov63_021DA5A0: ; 0x021DA5A0
	push {r3, r4, r5, r6, lr}
	sub sp, #4
	add r5, r0, #0
	ldrb r0, [r5, #0x18]
	add r4, r5, #0
	add r4, #0x18
	cmp r0, #0
	beq _021DA630
	ldrb r3, [r4, #1]
	ldr r0, _021DA634 ; =ov63_021DBF40
	ldrb r1, [r4, #3]
	ldrb r0, [r0, r3]
	cmp r1, r0
	blo _021DA614
	mov r1, #0
	str r1, [sp]
	ldr r6, _021DA638 ; =ov63_021DBF48
	ldr r0, [r5, #0x14]
	ldrb r3, [r6, r3]
	mov r2, #1
	lsl r3, r3, #0x1c
	lsr r3, r3, #0x18
	bl ov63_021D9EA8
	mov r0, #0x20
	str r0, [sp]
	ldrb r6, [r4, #1]
	ldr r3, _021DA63C ; =ov63_021DBF44
	ldr r0, [r5, #0x14]
	ldrb r3, [r3, r6]
	mov r1, #0
	mov r2, #1
	lsl r3, r3, #0x1c
	lsr r3, r3, #0x18
	bl ov63_021D9EA8
	mov r0, #0x20
	str r0, [sp]
	ldr r0, [r5, #0x14]
	mov r1, #1
	ldrb r5, [r4, #1]
	ldr r3, _021DA63C ; =ov63_021DBF44
	add r2, r1, #0
	ldrb r3, [r3, r5]
	lsl r3, r3, #0x1c
	lsr r3, r3, #0x18
	bl ov63_021D9EA8
	mov r1, #0
	strb r1, [r4, #3]
	ldrb r0, [r4, #1]
	add r0, r0, #1
	strb r0, [r4, #1]
	ldrb r0, [r4, #1]
	cmp r0, #4
	blo _021DA618
	strb r1, [r4]
	b _021DA618
_021DA614:
	add r0, r1, #1
	strb r0, [r4, #3]
_021DA618:
	ldrb r0, [r4, #1]
	cmp r0, #0
	bne _021DA630
	ldr r0, _021DA634 ; =ov63_021DBF40
	ldrb r1, [r4, #3]
	ldrb r0, [r0]
	cmp r1, r0
	blo _021DA630
	mov r0, #1
	mov r1, #0
	bl GfGfx_EngineATogglePlanes
_021DA630:
	add sp, #4
	pop {r3, r4, r5, r6, pc}
	.align 2, 0
_021DA634: .word ov63_021DBF40
_021DA638: .word ov63_021DBF48
_021DA63C: .word ov63_021DBF44
	thumb_func_end ov63_021DA5A0

	.section .rodata

	.global ov63_021DBAB8
ov63_021DBAB8: ; 0x021DBAB8
	.word ov63_021D74E0, ov63_021D759C, ov63_021D77B4, 0xFFFFFFFF

	.global ov63_021DBAC8
ov63_021DBAC8: ; 0x021DBAC8
	.byte 0x00, 0x00, 0x80, 0xF6, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBAD0
ov63_021DBAD0: ; 0x021DBAD0
	.byte 0x18, 0x4B, 0x00, 0x00, 0x42, 0x30, 0xFF, 0x7F

	.global ov63_021DBAD8
ov63_021DBAD8: ; 0x021DBAD8
	.byte 0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0xE4, 0xFF

	.global ov63_021DBAE4
ov63_021DBAE4: ; 0x021DBAE4
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00

	.global ov63_021DBAF0
ov63_021DBAF0: ; 0x021DBAF0
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBAFC
ov63_021DBAFC: ; 0x021DBAFC
	.byte 0x00, 0x10, 0x00, 0x00
	.byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00

	.global ov63_021DBB08
ov63_021DBB08: ; 0x021DBB08
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
	.byte 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBB14
ov63_021DBB14: ; 0x021DBB14
	.byte 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF

	.global ov63_021DBB20
ov63_021DBB20: ; 0x021DBB20
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBB2C
ov63_021DBB2C: ; 0x021DBB2C
	.byte 0x1D, 0x00, 0x00, 0x00
	.byte 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00

	.global ov63_021DBB3C
ov63_021DBB3C: ; 0x021DBB3C
	.byte 0x01, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00

	.global ov63_021DBB4C
ov63_021DBB4C: ; 0x021DBB4C
	.byte 0x01, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBB5C
ov63_021DBB5C: ; 0x021DBB5C
	.byte 0x00, 0x00, 0x84, 0x10
	.byte 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10

	.global ov63_021DBB6C
ov63_021DBB6C: ; 0x021DBB6C
	.byte 0x01, 0x00, 0x00, 0x00
	.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xAE, 0x29, 0x00

	.global ov63_021DBB80
ov63_021DBB80: ; 0x021DBB80
	.byte 0x02, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x05, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBB90
ov63_021DBB90: ; 0x021DBB90
	.byte 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00
	.byte 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00

	.global ov63_021DBBA8
ov63_021DBBA8: ; 0x021DBBA8
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x17, 0x03, 0x00, 0x02, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBBC4
ov63_021DBBC4: ; 0x021DBBC4
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBBE0
ov63_021DBBE0: ; 0x021DBBE0
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBBFC
ov63_021DBBFC: ; 0x021DBBFC
	.byte 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBC18
ov63_021DBC18: ; 0x021DBC18
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBC34
ov63_021DBC34: ; 0x021DBC34
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBC50
ov63_021DBC50: ; 0x021DBC50
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x03, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBC6C
ov63_021DBC6C: ; 0x021DBC6C
	.byte 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02
	.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBC88
ov63_021DBC88: ; 0x021DBC88
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBCA4
ov63_021DBCA4: ; 0x021DBCA4
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBCC0
ov63_021DBCC0: ; 0x021DBCC0
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x01, 0x00, 0x03, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBCDC
ov63_021DBCDC: ; 0x021DBCDC
	.byte 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBCF8
ov63_021DBCF8: ; 0x021DBCF8
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x03, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBD14
ov63_021DBD14: ; 0x021DBD14
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBD30
ov63_021DBD30: ; 0x021DBD30
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x04, 0x01, 0x1B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBD4C
ov63_021DBD4C: ; 0x021DBD4C
	.byte 0x00, 0x10, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00

	.global ov63_021DBD70
ov63_021DBD70: ; 0x021DBD70
	.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00

	.global ov63_021DBD98
ov63_021DBD98: ; 0x021DBD98
	.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00

	.global ov63_021DBDC0
ov63_021DBDC0: ; 0x021DBDC0
	.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.global ov63_021DBDE8
ov63_021DBDE8: ; 0x021DBDE8
	.byte 0x05, 0xF8, 0xFF, 0xFF, 0x24, 0xF2, 0xFF, 0xFF
	.byte 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00

	.global ov63_021DBE18
ov63_021DBE18: ; 0x021DBE18
	.word ov63_021D8D10, ov63_021D8D98, ov63_021D8E68, 0xFFFFFFFF

	.section .data

	.global ov63_021DBF40
ov63_021DBF40: ; 0x021DBF40
	.byte 0x08, 0x06, 0x06, 0x04

	.global ov63_021DBF44
ov63_021DBF44: ; 0x021DBF44
	.byte 0x05, 0x04, 0x03, 0x01

	.global ov63_021DBF48
ov63_021DBF48: ; 0x021DBF48
	.byte 0x08, 0x07, 0x06, 0x00
